riverbankcms 0.7.0 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/acceptance/matrix.mjs +3 -3
- package/dist/cli/index.mjs +594 -171
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +1 -1
- package/dist/{eventUpsertInputSchema-CWglzaib.mjs → eventUpsertInputSchema-DP8gbZJ9.mjs} +2 -2
- package/dist/{load-config-DBGNYfxV.mjs → load-config-CkSoLJFY.mjs} +1 -1
- package/dist/load-config-Dgi_eByc.mjs +5 -0
- package/dist/{plan-DgjlCWxa.mjs → plan-BFmMfERc.mjs} +1 -1
- package/dist/scaffold/index.mjs +2 -2
- package/dist/{sdk-event-upsert-CS9tY-KW.mjs → sdk-event-upsert-Cp043nSP.mjs} +672 -488
- package/dist/{sdk-peer-BjTmH5Mt.mjs → sdk-peer-CADuG9SR.mjs} +2 -2
- package/dist/{src-DT7DBZtQ.mjs → src-B8fOSKJ6.mjs} +194 -84
- package/dist/{style-D2srLsI5.mjs → style-BiosmAJm.mjs} +3 -3
- package/dist/testing.mjs +4 -4
- package/package.json +1 -1
- package/dist/load-config-CZ9qKC9m.mjs +0 -5
package/dist/cli/index.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { $ as
|
|
3
|
-
import { $ as
|
|
4
|
-
import { $ as createOutputForCommand, A as isExplicitRectCrop, At as formatIgnoredDocumentSyncSectionWarning, B as resolveVideoSelectionIntentForMediaField, Bt as internalResolvedLinkSchema, C as attachRenderableMediaAssetFields, Ct as getEnvPrefix, D as looksLikeUuid$1, Dt as isRemoteConfigured, E as deleteEnvSpecificKeys, Et as isLocalConfigured, F as getImageUrl, Ft as RESOLVED_INTERNAL_LINK_ENTITY_TYPES, G as classifyKnownMimeType, Gt as pageLinkSchema$1, H as asRecord$1, Ht as isInternalResolvedLinkValue, I as isSiteScopedDirectImageStoragePath, It as customLinkSchema$1, J as confirmAction, K as managementMediaLibraryUploadLimitForMimeType, Kt as sdkConfiguredBookingVerticalConfigSchema, L as buildMediaIdentifierFromFilename, Lt as entryLinkSchema$1, M as resolveMediaTransformForAspect, Mt as sdkSettingsUpdateSchema, N as getDirectImageUrlForRelativePath, Nt as sdkThemeWireSchema, O as rotateNormalizedPoint, Ot as loadSdkEnvironment, P as getDirectImageUrlForSiteScopedPath, Pt as linkPayloadSchema, Q as createListCommand, R as parseMediaIdentifier, Rt as externalLinkSchema$1, S as isMediaValue, St as CliExit, T as walkAndCollectImageAttrs, Tt as getEnvironmentDebugInfo, U as parseRelativeStoragePath, Ut as isResolvedInternalLinkEntityType, V as getMimeType, Vt as internalRouteOnlyLinkSchema, W as FILE_SIZE_LIMITS, Wt as linkSchema, X as createCommandContext, Y as createClientForEnv, Z as createGetCommand, _ as extractMediaIdentifiers, _t as planEnvironmentExecution, a as syncLocalMediaForPull, at as mapEntryForOutput, b as hasOwnSettingsField, bt as withRiverbankEnv, c as admitBinaryWriteDestination, ct as parsePaginationOptions, d as sha256, dt as withCommandContext, et as currentInvocationEnvelope, f as normalizeMediaIdentifierInput, ft as withConfirmation, g as downloadMedia, gt as parseEnvironmentSelection, h as buildStorageUrl, ht as executeEnvironmentPlan, it as handleCommandError, j as parseAspectRatioValue, jt as ManagementApiError, k as normalizeWidthCandidates, kt as createManagementClient, l as readStableBinaryFile, lt as resolveCommandPath, m as walkLocalContentMedia, mt as withOutputOnlyErrorHandling, n as createStyleCommand, nt as getOutputContext, o as applyLocalMediaPush, ot as parseJsonArray, p as normalizeMediaValueToIdentifierOnly, pt as withErrorHandling, q as parseSafeDownloadFilename, r as revalidateLocalMediaPushPlan, rt as getOutputOnlyContext, s as prepareLocalMediaForPush, st as parseJsonData, tt as formatDateShort, u as writeBinaryFileAtomic, ut as runWithInvocation, v as SETTINGS_FILE_FIELDS, vt as planEnvironmentWriteAuthorization, w as buildRenderableMediaAssetIndex, wt as getEnvVarName, x as writeMediaManifest, xt as formatError, y as buildSettingsUpdateInput, yt as requireEnvironmentWriteAuthorization, z as deriveVideoSlotPolicy, zt as internalLinkSchema } from "../style-
|
|
5
|
-
import { r as CLI_VERSION } from "../sdk-peer-
|
|
6
|
-
import { t as loadConfigFile } from "../load-config-
|
|
7
|
-
import { a as RichTextDocSchema, c as isRecord$17, i as findUnfilledSentinels, n as buildEntryScaffold, o as isRichTextDoc, r as validateEntryInstance, s as isObjectRecord, t as eventUpsertInputSchema } from "../eventUpsertInputSchema-
|
|
8
|
-
import { a as prepareScaffoldExecution, c as LOCAL_PACKAGE_VENDOR_DIR, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, n as createScaffoldCompletion, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan } from "../plan-
|
|
2
|
+
import { $ as require_react, $n as DEFAULT_SURFACE_TEXT_COLOR, An as ACCORDION_TRIGGER_LETTER_SPACING, Ar as __toESM, At as boxBackgroundOverlaySchema, Bn as mergeStyles, Bt as MQ_LG_UP, C as retargetCompiledBoundaryRuntimeForContentAdjacency, Cn as FONT_WEIGHT_MAP, Cr as createFormRef, Ct as compileButtonColourStates, Dn as ACCORDION_OPEN_ACCENT_THICKNESS, Dr as createVenueRef, Dt as getTextColorForBackground, En as LABEL_FONT_SIZE_MAP, Er as createSiteCommandSiteRef, Et as expandPalette, Fn as generateCardCss, Ft as renderHeaderPaintTargetRules, G as parseGradientPresetId, Gn as onColorTokenName, Gt as headerVariantValues, H as gradientToCss, Hn as textColorStyle, Ht as MQ_SM_DOWN, In as TokenResolver, It as BREAKPOINT_LG, J as backgroundAppearanceColorTokenNames, Jn as ORDINARY_TEXT_MIN_CONTRAST_RATIO, Jt as resolveThemeColorReferenceValue, Kn as buildThemeTokens, Kt as isCssColorLiteral, Ln as backgroundColorStyle, Lt as BREAKPOINT_MD, Mn as ICON_SIZE_PX, Mt as generateHeaderScrollTreatmentStyles, Nn as generateCardCoreCss, Nt as generateMobileOverlayBackdropFilterFix, On as ACCORDION_SPACING_MAP, Or as refSlug, Ot as themeSchema, P as compileTransitionRuntime, Pn as getDefaultCardVariants, Pt as getHeaderPaintTargets, Q as require_jsx_runtime, Qt as asDesignBlockId, Rn as borderColorStyle, Rt as BREAKPOINT_SM, Sn as NAV_LINK_TEXT_SIZE_MAP, Sr as createFooterRef, St as parseThemeForPersistence, T as readHeaderNavFontSizePreference, Tn as INPUT_SPACING_MAP, Tr as createPageRef, Tt as generateShadowValue, U as GRADIENT_PRESET_IDS, Un as resolveSurfaceForeground, Ut as MQ_SM_UP, Vn as rgbColorValue, Vt as MQ_MD_DOWN, W as getGradientPreset, Wn as isOnColorBackgroundCandidateToken, Wt as MQ_TABLET_ONLY, X as parseBackgroundAppearanceColorToken, Xn as featuresFromHex, Xt as pageDesignEditorBackgroundOverrideOwner, Y as backgroundAppearanceQuickColorTokenNames, Yt as resolveTokenOrCssColorValue, Z as defineBlockDesignMetadata, Zn as hexToRgb, _ as entryIdentifierForCommand, _n as parseCustomCssRules, _r as createBlocksRef, _t as generateEffectsCSS, a as classifySdkEventBookingOffer, an as eyebrowTreatmentValues, ar as cardVariantRoleValues, b as pagePathForCommand, bn as NAV_LINK_PADDING_MAP, br as createEventCategoryRef, bt as parseThemeButtonVariantId, c as stableStringify, cn as introCompositionTreatmentValues, cr as mediaIdentifierSchema, ct as generateButtonCss, d as mapEventCommandContent, dn as testimonialsCompositionTreatmentValues, dr as persistableMediaSchema, dt as resolvedButtonFocusDeclarations, en as assertNever$4, er as surfaceForegroundDeclarations, et as pickShadeTowardBackground, f as evaluateSiteCommandBatchExposure, fn as tileTreatmentValues, fr as VARIANT_ROLES, ft as contextualButtonSurfaceResetStyles, g as blockOrderIdentifiersForCommand, gn as parseBlockCustomCssRules, gr as createBlockRef, gt as generateDefaultButtonSystem, h as blockIdentifierForCommand, hn as getComponentShadowVar, hr as parseBlockColorToken, ht as resolveContextualButtonRole, in as eventListTreatmentValues, ir as cardRoleSchema, j as getCuratedSiteStyle, jn as ICON_CONFIG, jt as boxBackgroundSchema, kn as ACCORDION_TRIGGER_FONT_SCALE, kr as slugPart, l as createDryRunReport, ln as makeBoundaryId, lr as mediaSchema, lt as RESOLVED_BUTTON_DISABLED_DECLARATIONS, m as getSiteCommandMetadata, mn as getComponentBorderWidthPx, mr as unsafeAsOpaqueButtonColourToken, mt as deriveButtonSurfaceContext, nn as defineFrameCapability, nr as surfaceForegroundValue, o as venueManagementFields, on as featureCardCompositionTreatmentValues, or as normalizeCardRole, ot as PUBLIC_BUTTON_ROLES, p as evaluateSiteCommandExposure, pn as visibleHeadingDecorationFamilyValues, pr as buttonVariantIdSchema, pt as contextualButtonSurfaceStyles, q as boundaryRuntimeMetricsForTransition, qn as defaultThemeTokens, qt as resolveOnColorForThemeToken, rn as defineNoBlockDesignCapability, rr as generateShadowValue$1, s as sortRecord, sn as headingDecorationColorTokenValues, st as AFFORDANCE_SUPPRESS_CLASS, t as classifySdkEventTiming, tn as defineBlockDesignCapability, tr as surfaceForegroundStyle, tt as generateCssVars, u as parseAndPlanCommandBatchForTypes, un as offeringsPreviewCompositionTreatmentValues, ur as mediaTypeDiscriminants, ut as resolvedButtonColourDeclarations, v as pageIdentifierForBlockCommand, vn as NAV_LINK_BORDER_RADIUS_MAP, vr as createCommandRef, vt as generateBaseInteractiveCSS, w as mergeHeaderNavTypographyPreference, wn as INPUT_FONT_SIZE_MAP, wr as createNavigationRef, wt as formatButtonColourContractError, x as hasConfiguredBookingVertical, xn as NAV_LINK_PADDING_X_MAP, xr as createEventSeriesRef, xt as themeButtonClassName, y as pageIdentifierForCommand, yn as NAV_LINK_LETTER_SPACING_MAP, yr as createContentEntryRef, yt as generateInteractiveChildInheritanceCSS, zn as cssVarValue, zt as BREAKPOINT_XL } from "../sdk-event-upsert-Cp043nSP.mjs";
|
|
3
|
+
import { $ as formatEventPricing, A as parseFooterCompositionV1, B as formatBookingTime, C as parseMailingListContentVersionId, D as DEFAULT_MAILING_LIST_SUCCESS_MESSAGE, E as planMailingListChoicePresentation, Et as unsafeAsMediaAssetId, F as normalizeLocationAddressText, G as getLocalScheduleTime, H as formatLocalScheduleTime, Ht as ok, I as toLocationCoordinates, It as unsafeAsStaffMemberId, J as toScheduledBookingDateRange, L as buildBookingUtcDateWindow, N as assertAllowedPublicUrl, O as parseMailingListProviderScope, Q as formatBookingPriceDisplay, R as formatBookingDate, S as parseMailingListBlockId, T as parseMailingListRuntimeContext, U as getBookingLocalDateKey, V as formatLocalScheduleDate, Vt as err, W as getLocalScheduleDate, Y as toScheduledBookingDateTime, Z as parseEventPageSurfaceSubject, _ as createSecret, at as resolvePricingOptionsPriceDisplay, bt as unsafeAsDemoCapability, c as DEFAULT_EVENT_TYPE_PRESETS, ct as formatCurrencyAmount, d as SURFACE_EVENT_PRESET_VALUES, dt as parseEventSeriesId, et as isPublicEventPricingOptionDisplayable, f as WHOLE_SERIES_EVENT_PRESET_VALUES, ft as parseMediaAssetId, g as resolveWholeSeriesBookingPhase, gt as unsafeAsAppointmentResourceId, h as orderedLiveRunSessions, ht as parseUserId, i as isEventSeriesVerticalPresetDefinition, it as resolveExactOrFreePriceDisplay, j as parseMailingListPlacementTargeting, kt as unsafeAsPositiveByteCount, l as EVENT_PRESET_VALUES, lt as assertNever, m as CANCELLED_SESSION_STATUS, mt as parseSiteId, n as areConfiguredBookingVerticalConfigsEqual, nt as publicEventPricingDisplay, p as publicReadFreshnessSeconds, pt as parsePageId, q as toBookingTimeZone, rt as publicEventPricingType, s as resolveSiteVerticalBookingConfig, t as NAVIGATION_LOCATIONS, tt as publicEventPricingCurrency, ut as parseApiKeyId, v as exposeSecret, w as parseMailingListSignedSourceToken, x as buildMailingListSignupBlockSourceRef, y as parseManagementKey, z as formatBookingDateParts } from "../src-B8fOSKJ6.mjs";
|
|
4
|
+
import { $ as createOutputForCommand, A as isExplicitRectCrop, At as formatIgnoredDocumentSyncSectionWarning, B as resolveVideoSelectionIntentForMediaField, Bt as internalResolvedLinkSchema, C as attachRenderableMediaAssetFields, Ct as getEnvPrefix, D as looksLikeUuid$1, Dt as isRemoteConfigured, E as deleteEnvSpecificKeys, Et as isLocalConfigured, F as getImageUrl, Ft as RESOLVED_INTERNAL_LINK_ENTITY_TYPES, G as classifyKnownMimeType, Gt as pageLinkSchema$1, H as asRecord$1, Ht as isInternalResolvedLinkValue, I as isSiteScopedDirectImageStoragePath, It as customLinkSchema$1, J as confirmAction, K as managementMediaLibraryUploadLimitForMimeType, Kt as sdkConfiguredBookingVerticalConfigSchema, L as buildMediaIdentifierFromFilename, Lt as entryLinkSchema$1, M as resolveMediaTransformForAspect, Mt as sdkSettingsUpdateSchema, N as getDirectImageUrlForRelativePath, Nt as sdkThemeWireSchema, O as rotateNormalizedPoint, Ot as loadSdkEnvironment, P as getDirectImageUrlForSiteScopedPath, Pt as linkPayloadSchema, Q as createListCommand, R as parseMediaIdentifier, Rt as externalLinkSchema$1, S as isMediaValue, St as CliExit, T as walkAndCollectImageAttrs, Tt as getEnvironmentDebugInfo, U as parseRelativeStoragePath, Ut as isResolvedInternalLinkEntityType, V as getMimeType, Vt as internalRouteOnlyLinkSchema, W as FILE_SIZE_LIMITS, Wt as linkSchema, X as createCommandContext, Y as createClientForEnv, Z as createGetCommand, _ as extractMediaIdentifiers, _t as planEnvironmentExecution, a as syncLocalMediaForPull, at as mapEntryForOutput, b as hasOwnSettingsField, bt as withRiverbankEnv, c as admitBinaryWriteDestination, ct as parsePaginationOptions, d as sha256, dt as withCommandContext, et as currentInvocationEnvelope, f as normalizeMediaIdentifierInput, ft as withConfirmation, g as downloadMedia, gt as parseEnvironmentSelection, h as buildStorageUrl, ht as executeEnvironmentPlan, it as handleCommandError, j as parseAspectRatioValue, jt as ManagementApiError, k as normalizeWidthCandidates, kt as createManagementClient, l as readStableBinaryFile, lt as resolveCommandPath, m as walkLocalContentMedia, mt as withOutputOnlyErrorHandling, n as createStyleCommand, nt as getOutputContext, o as applyLocalMediaPush, ot as parseJsonArray, p as normalizeMediaValueToIdentifierOnly, pt as withErrorHandling, q as parseSafeDownloadFilename, r as revalidateLocalMediaPushPlan, rt as getOutputOnlyContext, s as prepareLocalMediaForPush, st as parseJsonData, tt as formatDateShort, u as writeBinaryFileAtomic, ut as runWithInvocation, v as SETTINGS_FILE_FIELDS, vt as planEnvironmentWriteAuthorization, w as buildRenderableMediaAssetIndex, wt as getEnvVarName, x as writeMediaManifest, xt as formatError, y as buildSettingsUpdateInput, yt as requireEnvironmentWriteAuthorization, z as deriveVideoSlotPolicy, zt as internalLinkSchema } from "../style-BiosmAJm.mjs";
|
|
5
|
+
import { r as CLI_VERSION } from "../sdk-peer-CADuG9SR.mjs";
|
|
6
|
+
import { t as loadConfigFile } from "../load-config-CkSoLJFY.mjs";
|
|
7
|
+
import { a as RichTextDocSchema, c as isRecord$17, i as findUnfilledSentinels, n as buildEntryScaffold, o as isRichTextDoc, r as validateEntryInstance, s as isObjectRecord, t as eventUpsertInputSchema } from "../eventUpsertInputSchema-DP8gbZJ9.mjs";
|
|
8
|
+
import { a as prepareScaffoldExecution, c as LOCAL_PACKAGE_VENDOR_DIR, d as loadGeneratedPackageRanges, i as preflightScaffoldTargets, n as createScaffoldCompletion, s as deriveScaffoldLocalManifest, t as deriveScaffoldPlan } from "../plan-BFmMfERc.mjs";
|
|
9
9
|
import { config } from "dotenv";
|
|
10
10
|
import { Command, CommanderError } from "commander";
|
|
11
11
|
import * as fs$1 from "fs/promises";
|
|
@@ -1739,6 +1739,14 @@ const PUBLIC_BOOKING_AVAILABILITY_ENDPOINT_DEFINITIONS = defineEndpointDefinitio
|
|
|
1739
1739
|
auth: "public",
|
|
1740
1740
|
responseKind: "json"
|
|
1741
1741
|
},
|
|
1742
|
+
getPublicBookingServiceBySlug: {
|
|
1743
|
+
path: "/public/bookings/services/by-slug/{slug}",
|
|
1744
|
+
method: "GET",
|
|
1745
|
+
revalidate: publicReadFreshnessSeconds("getPublicBookingService"),
|
|
1746
|
+
tags: [TAG_TEMPLATES.publicBookingServices],
|
|
1747
|
+
auth: "public",
|
|
1748
|
+
responseKind: "json"
|
|
1749
|
+
},
|
|
1742
1750
|
getPublicBookingResourcesReference: {
|
|
1743
1751
|
path: "/public/bookings/resources/reference",
|
|
1744
1752
|
method: "GET",
|
|
@@ -2298,13 +2306,109 @@ const PUBLIC_READ_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
|
2298
2306
|
}
|
|
2299
2307
|
});
|
|
2300
2308
|
|
|
2309
|
+
//#endregion
|
|
2310
|
+
//#region ../api/src/publicOnboardingAttemptEndpointDefinitions.ts
|
|
2311
|
+
/**
|
|
2312
|
+
* The anonymous onboarding attempt, addressed by its opaque resume token.
|
|
2313
|
+
*
|
|
2314
|
+
* Every route here is reached before there is an account, so none of them can
|
|
2315
|
+
* be scoped to a site or a user: the token is the whole credential. They are
|
|
2316
|
+
* kept together so that stays obvious.
|
|
2317
|
+
*/
|
|
2318
|
+
const PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
2319
|
+
createPublicOnboardingAttempt: {
|
|
2320
|
+
path: "/public/onboarding/attempts",
|
|
2321
|
+
method: "POST",
|
|
2322
|
+
auth: "public",
|
|
2323
|
+
errors: [],
|
|
2324
|
+
responseKind: "json"
|
|
2325
|
+
},
|
|
2326
|
+
createPublicOnboardingLogoUploadUrl: {
|
|
2327
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
|
|
2328
|
+
method: "POST",
|
|
2329
|
+
auth: "public",
|
|
2330
|
+
errors: [],
|
|
2331
|
+
responseKind: "json"
|
|
2332
|
+
},
|
|
2333
|
+
uploadPublicOnboardingLogo: {
|
|
2334
|
+
path: "/public/onboarding/attempts/{attemptToken}/logo",
|
|
2335
|
+
method: "POST",
|
|
2336
|
+
auth: "public",
|
|
2337
|
+
errors: [],
|
|
2338
|
+
responseKind: "json"
|
|
2339
|
+
},
|
|
2340
|
+
getPublicOnboardingAttempt: {
|
|
2341
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
2342
|
+
method: "GET",
|
|
2343
|
+
auth: "public",
|
|
2344
|
+
errors: [],
|
|
2345
|
+
responseKind: "json"
|
|
2346
|
+
},
|
|
2347
|
+
getPublicOnboardingAttemptProgress: {
|
|
2348
|
+
path: "/public/onboarding/attempts/{attemptToken}/status",
|
|
2349
|
+
method: "GET",
|
|
2350
|
+
auth: "public",
|
|
2351
|
+
errors: [],
|
|
2352
|
+
responseKind: "json"
|
|
2353
|
+
},
|
|
2354
|
+
updatePublicOnboardingAttempt: {
|
|
2355
|
+
path: "/public/onboarding/attempts/{attemptToken}",
|
|
2356
|
+
method: "PATCH",
|
|
2357
|
+
auth: "public",
|
|
2358
|
+
errors: [],
|
|
2359
|
+
responseKind: "json"
|
|
2360
|
+
},
|
|
2361
|
+
runPublicOnboardingAttempt: {
|
|
2362
|
+
path: "/public/onboarding/attempts/{attemptToken}/run",
|
|
2363
|
+
method: "POST",
|
|
2364
|
+
auth: "public",
|
|
2365
|
+
errors: [],
|
|
2366
|
+
responseKind: "json"
|
|
2367
|
+
},
|
|
2368
|
+
resendPublicOnboardingAttemptConfirmation: {
|
|
2369
|
+
path: "/public/onboarding/attempts/{attemptToken}/resend-confirmation",
|
|
2370
|
+
method: "POST",
|
|
2371
|
+
auth: "public",
|
|
2372
|
+
errors: [],
|
|
2373
|
+
responseKind: "json"
|
|
2374
|
+
}
|
|
2375
|
+
});
|
|
2376
|
+
|
|
2377
|
+
//#endregion
|
|
2378
|
+
//#region ../api/src/billingEndpointDefinitions.ts
|
|
2379
|
+
const BILLING_ENDPOINT_DEFINITIONS = defineEndpointDefinitions({
|
|
2380
|
+
adminChangePlan: {
|
|
2381
|
+
path: "/admin/billing/plan",
|
|
2382
|
+
method: "POST",
|
|
2383
|
+
tags: ["admin", "billing"],
|
|
2384
|
+
auth: "admin",
|
|
2385
|
+
responseKind: "json"
|
|
2386
|
+
},
|
|
2387
|
+
changePlan: {
|
|
2388
|
+
path: "/billing/plan/change",
|
|
2389
|
+
method: "POST",
|
|
2390
|
+
tags: ["billing"],
|
|
2391
|
+
auth: "user",
|
|
2392
|
+
responseKind: "json"
|
|
2393
|
+
},
|
|
2394
|
+
createBillingPortalSession: {
|
|
2395
|
+
path: "/billing/portal/session",
|
|
2396
|
+
method: "POST",
|
|
2397
|
+
tags: ["billing"],
|
|
2398
|
+
auth: "user",
|
|
2399
|
+
responseKind: "json"
|
|
2400
|
+
}
|
|
2401
|
+
});
|
|
2402
|
+
|
|
2301
2403
|
//#endregion
|
|
2302
2404
|
//#region ../api/src/endpoints.ts
|
|
2303
2405
|
const ENDPOINT_DEFINITIONS = {
|
|
2304
2406
|
...ACCOUNT_ENDPOINT_DEFINITIONS,
|
|
2407
|
+
...PUBLIC_ONBOARDING_ATTEMPT_ENDPOINT_DEFINITIONS,
|
|
2305
2408
|
...PUBLIC_EVENT_ENDPOINT_DEFINITIONS,
|
|
2306
2409
|
...GIFTING_ENDPOINT_DEFINITIONS,
|
|
2307
2410
|
...PUBLIC_READ_ENDPOINT_DEFINITIONS,
|
|
2411
|
+
...BILLING_ENDPOINT_DEFINITIONS,
|
|
2308
2412
|
aiContentUpdateChat: {
|
|
2309
2413
|
path: "/ai/content-update-chat",
|
|
2310
2414
|
method: "POST",
|
|
@@ -2458,55 +2562,6 @@ const ENDPOINT_DEFINITIONS = {
|
|
|
2458
2562
|
errors: [],
|
|
2459
2563
|
responseKind: "json"
|
|
2460
2564
|
},
|
|
2461
|
-
createPublicOnboardingAttempt: {
|
|
2462
|
-
path: "/public/onboarding/attempts",
|
|
2463
|
-
method: "POST",
|
|
2464
|
-
auth: "public",
|
|
2465
|
-
errors: [],
|
|
2466
|
-
responseKind: "json"
|
|
2467
|
-
},
|
|
2468
|
-
createPublicOnboardingLogoUploadUrl: {
|
|
2469
|
-
path: "/public/onboarding/attempts/{attemptToken}/logo-upload-url",
|
|
2470
|
-
method: "POST",
|
|
2471
|
-
auth: "public",
|
|
2472
|
-
errors: [],
|
|
2473
|
-
responseKind: "json"
|
|
2474
|
-
},
|
|
2475
|
-
uploadPublicOnboardingLogo: {
|
|
2476
|
-
path: "/public/onboarding/attempts/{attemptToken}/logo",
|
|
2477
|
-
method: "POST",
|
|
2478
|
-
auth: "public",
|
|
2479
|
-
errors: [],
|
|
2480
|
-
responseKind: "json"
|
|
2481
|
-
},
|
|
2482
|
-
getPublicOnboardingAttempt: {
|
|
2483
|
-
path: "/public/onboarding/attempts/{attemptToken}",
|
|
2484
|
-
method: "GET",
|
|
2485
|
-
auth: "public",
|
|
2486
|
-
errors: [],
|
|
2487
|
-
responseKind: "json"
|
|
2488
|
-
},
|
|
2489
|
-
getPublicOnboardingAttemptProgress: {
|
|
2490
|
-
path: "/public/onboarding/attempts/{attemptToken}/status",
|
|
2491
|
-
method: "GET",
|
|
2492
|
-
auth: "public",
|
|
2493
|
-
errors: [],
|
|
2494
|
-
responseKind: "json"
|
|
2495
|
-
},
|
|
2496
|
-
updatePublicOnboardingAttempt: {
|
|
2497
|
-
path: "/public/onboarding/attempts/{attemptToken}",
|
|
2498
|
-
method: "PATCH",
|
|
2499
|
-
auth: "public",
|
|
2500
|
-
errors: [],
|
|
2501
|
-
responseKind: "json"
|
|
2502
|
-
},
|
|
2503
|
-
runPublicOnboardingAttempt: {
|
|
2504
|
-
path: "/public/onboarding/attempts/{attemptToken}/run",
|
|
2505
|
-
method: "POST",
|
|
2506
|
-
auth: "public",
|
|
2507
|
-
errors: [],
|
|
2508
|
-
responseKind: "json"
|
|
2509
|
-
},
|
|
2510
2565
|
aiSiteWizardSuggestGoals: {
|
|
2511
2566
|
path: "/sites/{siteId}/ai/site-wizard/goals",
|
|
2512
2567
|
method: "POST",
|
|
@@ -4022,20 +4077,6 @@ const ENDPOINT_DEFINITIONS = {
|
|
|
4022
4077
|
auth: "admin",
|
|
4023
4078
|
responseKind: "json"
|
|
4024
4079
|
},
|
|
4025
|
-
adminChangePlan: {
|
|
4026
|
-
path: "/admin/billing/plan",
|
|
4027
|
-
method: "POST",
|
|
4028
|
-
tags: ["admin", "billing"],
|
|
4029
|
-
auth: "admin",
|
|
4030
|
-
responseKind: "json"
|
|
4031
|
-
},
|
|
4032
|
-
changePlan: {
|
|
4033
|
-
path: "/billing/plan/change",
|
|
4034
|
-
method: "POST",
|
|
4035
|
-
tags: ["billing"],
|
|
4036
|
-
auth: "user",
|
|
4037
|
-
responseKind: "json"
|
|
4038
|
-
},
|
|
4039
4080
|
mfaTotpEnroll: {
|
|
4040
4081
|
path: "/auth/mfa/totp/enroll",
|
|
4041
4082
|
method: "POST",
|
|
@@ -4384,7 +4425,12 @@ const ENDPOINT_DEFINITIONS = {
|
|
|
4384
4425
|
path: "/public/sites/{siteId}/sitemap",
|
|
4385
4426
|
method: "GET",
|
|
4386
4427
|
revalidate: 60,
|
|
4387
|
-
tags: [
|
|
4428
|
+
tags: [
|
|
4429
|
+
TAG_TEMPLATES.siteRoutableContent,
|
|
4430
|
+
TAG_TEMPLATES.siteSettings,
|
|
4431
|
+
TAG_TEMPLATES.publicEvents,
|
|
4432
|
+
TAG_TEMPLATES.publicBookingServices
|
|
4433
|
+
],
|
|
4388
4434
|
auth: "public",
|
|
4389
4435
|
responseKind: "json"
|
|
4390
4436
|
},
|
|
@@ -7703,6 +7749,17 @@ const ENDPOINT_DEFINITIONS = {
|
|
|
7703
7749
|
auth: "public",
|
|
7704
7750
|
responseKind: "json"
|
|
7705
7751
|
},
|
|
7752
|
+
portalCancelWaitlistEntry: {
|
|
7753
|
+
path: "/portal/waitlists/{entryId}/cancel",
|
|
7754
|
+
method: "POST",
|
|
7755
|
+
auth: "public",
|
|
7756
|
+
responseKind: "json",
|
|
7757
|
+
errors: [
|
|
7758
|
+
"resource:not_found",
|
|
7759
|
+
"resource:conflict",
|
|
7760
|
+
"server:internal_error"
|
|
7761
|
+
]
|
|
7762
|
+
},
|
|
7706
7763
|
portalGetEventGuests: {
|
|
7707
7764
|
path: "/portal/events/{registrationId}/guests",
|
|
7708
7765
|
method: "GET",
|
|
@@ -8971,7 +9028,8 @@ async function pushToDashboard(dashboardUrl, siteId, apiKey, config$1, options)
|
|
|
8971
9028
|
body: {
|
|
8972
9029
|
config: config$1,
|
|
8973
9030
|
forceContentTypes: options?.forceContentTypes ?? false,
|
|
8974
|
-
mode: options?.dryRun ? "preview" : "apply"
|
|
9031
|
+
mode: options?.dryRun ? "preview" : "apply",
|
|
9032
|
+
expectedMailingListProviderScope: options?.expectedMailingListProviderScope ?? undefined
|
|
8975
9033
|
},
|
|
8976
9034
|
options: { signal: AbortSignal.timeout(3e4) }
|
|
8977
9035
|
}));
|
|
@@ -9224,7 +9282,8 @@ async function revalidatePushConfigPlan(context, plan) {
|
|
|
9224
9282
|
async function applyPushConfigPlan(output, context, plan, options, isJsonOutput) {
|
|
9225
9283
|
const response = options.dryRun ? plan.preview : await pushToDashboard(context.dashboard, plan.config.siteId, context.apiKey, plan.config, {
|
|
9226
9284
|
forceContentTypes: plan.forceContentTypes,
|
|
9227
|
-
dryRun: false
|
|
9285
|
+
dryRun: false,
|
|
9286
|
+
expectedMailingListProviderScope: plan.preview.mailingListProviderScope
|
|
9228
9287
|
});
|
|
9229
9288
|
return {
|
|
9230
9289
|
response,
|
|
@@ -10570,9 +10629,9 @@ const DASHBOARD_SITE_NAV_DESCRIPTORS = [
|
|
|
10570
10629
|
},
|
|
10571
10630
|
{
|
|
10572
10631
|
id: "site.newsletter",
|
|
10573
|
-
label: "
|
|
10632
|
+
label: "Mailing list",
|
|
10574
10633
|
stage: "internal",
|
|
10575
|
-
minRole: "
|
|
10634
|
+
minRole: "administrator",
|
|
10576
10635
|
featureFlag: "newsletterVisible"
|
|
10577
10636
|
},
|
|
10578
10637
|
{
|
|
@@ -10677,6 +10736,12 @@ const SETTINGS_SURFACE_POLICIES = {
|
|
|
10677
10736
|
pageAccessPolicy: editorPolicy,
|
|
10678
10737
|
actionIds: []
|
|
10679
10738
|
},
|
|
10739
|
+
"settings.business": {
|
|
10740
|
+
surfaceId: "settings.business",
|
|
10741
|
+
navVisibilityPolicy: editorPolicy,
|
|
10742
|
+
pageAccessPolicy: editorPolicy,
|
|
10743
|
+
actionIds: ["privacy.update"]
|
|
10744
|
+
},
|
|
10680
10745
|
"settings.privacy": {
|
|
10681
10746
|
surfaceId: "settings.privacy",
|
|
10682
10747
|
navVisibilityPolicy: administratorPolicy,
|
|
@@ -10845,6 +10910,21 @@ const DASHBOARD_SETTINGS_NAV_GROUPS = [
|
|
|
10845
10910
|
],
|
|
10846
10911
|
stage: "ga"
|
|
10847
10912
|
},
|
|
10913
|
+
{
|
|
10914
|
+
id: "settings.business",
|
|
10915
|
+
label: "Business details",
|
|
10916
|
+
keywords: [
|
|
10917
|
+
"business",
|
|
10918
|
+
"contact",
|
|
10919
|
+
"email",
|
|
10920
|
+
"phone",
|
|
10921
|
+
"address",
|
|
10922
|
+
"opening hours",
|
|
10923
|
+
"social",
|
|
10924
|
+
"premises"
|
|
10925
|
+
],
|
|
10926
|
+
stage: "ga"
|
|
10927
|
+
},
|
|
10848
10928
|
{
|
|
10849
10929
|
id: "settings.privacy",
|
|
10850
10930
|
label: "Privacy",
|
|
@@ -22878,6 +22958,28 @@ const bookingConsentCarrierSchema = z.union([blockBookingConsentSchema, bookingR
|
|
|
22878
22958
|
|
|
22879
22959
|
//#endregion
|
|
22880
22960
|
//#region ../blocks/src/system/blocks/events/shared/schemas.ts
|
|
22961
|
+
const publicEventLoaderQuerySchemaShape = {
|
|
22962
|
+
limit: z.string().optional(),
|
|
22963
|
+
from: z.string().optional(),
|
|
22964
|
+
to: z.string().optional(),
|
|
22965
|
+
afterStartsAt: z.string().optional(),
|
|
22966
|
+
afterId: z.string().optional(),
|
|
22967
|
+
categoryIds: z.string().optional(),
|
|
22968
|
+
venueId: z.string().optional(),
|
|
22969
|
+
staffMemberId: z.string().optional(),
|
|
22970
|
+
eventSurface: z.string().optional(),
|
|
22971
|
+
eventPresets: z.string().optional(),
|
|
22972
|
+
scheduleScope: z.string().optional(),
|
|
22973
|
+
seriesId: z.string().optional(),
|
|
22974
|
+
seriesIds: z.string().optional(),
|
|
22975
|
+
runSeriesId: z.string().optional(),
|
|
22976
|
+
seriesSlug: z.string().optional(),
|
|
22977
|
+
includeOccurrenceId: z.string().optional(),
|
|
22978
|
+
readIntent: z.string().optional(),
|
|
22979
|
+
detailLevel: z.string().optional(),
|
|
22980
|
+
readProfile: z.string().optional()
|
|
22981
|
+
};
|
|
22982
|
+
const publicEventLoaderQuerySchema = z.object(publicEventLoaderQuerySchemaShape);
|
|
22881
22983
|
const eventPresetSchema = z.enum([
|
|
22882
22984
|
"event",
|
|
22883
22985
|
"class",
|
|
@@ -23374,7 +23476,7 @@ function planCalendarMonthRanges(months) {
|
|
|
23374
23476
|
const sorted = [...new Set(months)].sort();
|
|
23375
23477
|
const ranges = [];
|
|
23376
23478
|
for (const month of sorted) {
|
|
23377
|
-
const previous = ranges.
|
|
23479
|
+
const previous = ranges[ranges.length - 1];
|
|
23378
23480
|
const end = calendarMonthKey(addMonths(calendarMonthDate(month), 1));
|
|
23379
23481
|
if (previous?.endMonthExclusive === month && monthNumber(end) - monthNumber(previous.startMonth) <= 3) previous.endMonthExclusive = end;
|
|
23380
23482
|
else ranges.push({
|
|
@@ -26931,7 +27033,7 @@ const publicPricingSchema = z.object({
|
|
|
26931
27033
|
singlePriceAmount: z.number().nullable(),
|
|
26932
27034
|
slidingMinAmount: z.number().nullable(),
|
|
26933
27035
|
slidingMaxAmount: z.number().nullable(),
|
|
26934
|
-
options: z.array(publicPricingOptionSchema)
|
|
27036
|
+
options: z.array(publicPricingOptionSchema).readonly()
|
|
26935
27037
|
});
|
|
26936
27038
|
const publicAppointmentServiceSchema = z.object({
|
|
26937
27039
|
id: z.string().min(1),
|
|
@@ -37143,6 +37245,49 @@ function getRegistrationStartAt(event, occurrenceContext) {
|
|
|
37143
37245
|
return event?.registrationSubject.kind === "wholeSeries" ? event.startsAt : occurrenceContext?.startsAt ?? event?.startsAt;
|
|
37144
37246
|
}
|
|
37145
37247
|
|
|
37248
|
+
//#endregion
|
|
37249
|
+
//#region ../blocks/src/system/runtime/nodes/event-registration/eventSourceRecovery.ts
|
|
37250
|
+
const { limit: _rawLimit, eventSurface: _rawEventSurface, scheduleScope: _rawScheduleScope, detailLevel: _rawDetailLevel, ...stringEventQueryShape } = publicEventLoaderQuerySchemaShape;
|
|
37251
|
+
const eventRecoveryRequestSchema = z.object({
|
|
37252
|
+
...stringEventQueryShape,
|
|
37253
|
+
limit: z.coerce.number().int().positive().optional(),
|
|
37254
|
+
eventSurface: z.enum(eventSurfaceScopeValues).optional(),
|
|
37255
|
+
scheduleScope: z.enum(eventScheduleScopeValues).optional(),
|
|
37256
|
+
detailLevel: z.enum(["full", "listing"]).optional(),
|
|
37257
|
+
stage: z.enum(["preview", "published"]).optional()
|
|
37258
|
+
});
|
|
37259
|
+
function resolveEventRegistrationEventSource(input) {
|
|
37260
|
+
if (input.wholeSeriesRunEvents != null) {
|
|
37261
|
+
return {
|
|
37262
|
+
kind: "loaded",
|
|
37263
|
+
events: input.wholeSeriesRunEvents
|
|
37264
|
+
};
|
|
37265
|
+
}
|
|
37266
|
+
if (input.events != null) {
|
|
37267
|
+
return {
|
|
37268
|
+
kind: "loaded",
|
|
37269
|
+
events: input.events
|
|
37270
|
+
};
|
|
37271
|
+
}
|
|
37272
|
+
return {
|
|
37273
|
+
kind: "unresolved",
|
|
37274
|
+
request: parseEventLoaderRecoveryRequest(input.failures?.wholeSeriesRunEvents ?? input.failures?.events)
|
|
37275
|
+
};
|
|
37276
|
+
}
|
|
37277
|
+
const eventLoaderFailureSchema = z.object({
|
|
37278
|
+
endpoint: z.literal("listPublicEvents"),
|
|
37279
|
+
params: eventRecoveryRequestSchema.extend({ siteId: z.string().optional() })
|
|
37280
|
+
});
|
|
37281
|
+
function parseEventLoaderRecoveryRequest(value) {
|
|
37282
|
+
const parsed = eventLoaderFailureSchema.safeParse(value);
|
|
37283
|
+
if (!parsed.success) return null;
|
|
37284
|
+
const { siteId: _siteId, stage, ...params } = parsed.data.params;
|
|
37285
|
+
return {
|
|
37286
|
+
...params,
|
|
37287
|
+
stage: stage ?? "published"
|
|
37288
|
+
};
|
|
37289
|
+
}
|
|
37290
|
+
|
|
37146
37291
|
//#endregion
|
|
37147
37292
|
//#region ../blocks/src/system/runtime/nodes/event-registration.interactive.ts
|
|
37148
37293
|
const EVENT_REGISTRATION_GENERIC_SHELL_STEP_LABELS = [
|
|
@@ -37161,8 +37306,6 @@ const eventRegistrationPublicEventSchema = z.preprocess(normalizeEventRegistrati
|
|
|
37161
37306
|
const eventRegistrationHydrationSchemaShape = {
|
|
37162
37307
|
occurrenceContext: occurrenceContextSchema.optional(),
|
|
37163
37308
|
subject: eventRegistrationPageSurfaceSubjectSchema.nullable().optional(),
|
|
37164
|
-
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37165
|
-
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37166
37309
|
maxTickets: z.string().optional(),
|
|
37167
37310
|
showVenue: z.boolean().optional(),
|
|
37168
37311
|
showCapacity: z.boolean().optional(),
|
|
@@ -37174,12 +37317,22 @@ const eventRegistrationHydrationSchemaShape = {
|
|
|
37174
37317
|
sitePasses: publicPassProductCollectionSchema.nullable().optional(),
|
|
37175
37318
|
siteMemberships: publicMembershipProductCollectionSchema.nullable().optional()
|
|
37176
37319
|
};
|
|
37320
|
+
const eventRegistrationEventSourceSchema = z.discriminatedUnion("kind", [z.object({
|
|
37321
|
+
kind: z.literal("loaded"),
|
|
37322
|
+
events: z.array(eventRegistrationPublicEventSchema)
|
|
37323
|
+
}), z.object({
|
|
37324
|
+
kind: z.literal("unresolved"),
|
|
37325
|
+
request: eventRecoveryRequestSchema.nullable()
|
|
37326
|
+
})]);
|
|
37177
37327
|
const eventRegistrationSourceSchema = z.object({
|
|
37178
37328
|
siteId: z.string().optional(),
|
|
37179
37329
|
apiBaseUrl: z.string().optional(),
|
|
37180
37330
|
portalToken: z.string().nullable().optional(),
|
|
37181
37331
|
previewToken: z.string().nullable().optional(),
|
|
37182
37332
|
...eventRegistrationHydrationSchemaShape,
|
|
37333
|
+
events: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37334
|
+
wholeSeriesRunEvents: z.array(eventRegistrationPublicEventSchema).nullable().optional(),
|
|
37335
|
+
eventLoaderFailures: z.record(z.string(), z.unknown()).nullable().optional(),
|
|
37183
37336
|
className: z.string().nullable().optional(),
|
|
37184
37337
|
buttonText: z.string().nullable().optional(),
|
|
37185
37338
|
maxTickets: z.string().nullable().optional(),
|
|
@@ -37200,7 +37353,10 @@ const eventRegistrationDisplaySchema = z.discriminatedUnion("state", [z.object({
|
|
|
37200
37353
|
titleText: z.string(),
|
|
37201
37354
|
bodyText: z.string()
|
|
37202
37355
|
})]);
|
|
37203
|
-
const eventRegistrationHydrationSchema = z.object(
|
|
37356
|
+
const eventRegistrationHydrationSchema = z.object({
|
|
37357
|
+
...eventRegistrationHydrationSchemaShape,
|
|
37358
|
+
eventSource: eventRegistrationEventSourceSchema
|
|
37359
|
+
});
|
|
37204
37360
|
const eventRegistrationRenderSchema = z.object({
|
|
37205
37361
|
display: eventRegistrationDisplaySchema,
|
|
37206
37362
|
hydration: eventRegistrationHydrationSchema
|
|
@@ -37266,17 +37422,13 @@ function buildEventRegistrationShellStepLabels(source, scopedSourceEvents) {
|
|
|
37266
37422
|
function toScopedEventRegistrationEvents(scopedSourceEvents) {
|
|
37267
37423
|
return [...toRegistrationEvents(scopedSourceEvents), ...toWholeSeriesRegistrationEvents(scopedSourceEvents)];
|
|
37268
37424
|
}
|
|
37269
|
-
function scopeEventRegistrationSourceEvents(source) {
|
|
37270
|
-
const sourceEvents =
|
|
37425
|
+
function scopeEventRegistrationSourceEvents(source, eventSource) {
|
|
37426
|
+
const sourceEvents = eventSource.kind === "loaded" ? eventSource.events : [];
|
|
37271
37427
|
return resolveEventRegistrationScopedEvents(sourceEvents, {
|
|
37272
37428
|
occurrenceContext: source.occurrenceContext,
|
|
37273
37429
|
subject: source.subject
|
|
37274
37430
|
});
|
|
37275
37431
|
}
|
|
37276
|
-
function resolveLoadedEventRegistrationSourceEvents(source, scopedSourceEvents) {
|
|
37277
|
-
if (source.events == null && source.wholeSeriesRunEvents == null) return null;
|
|
37278
|
-
return [...scopedSourceEvents];
|
|
37279
|
-
}
|
|
37280
37432
|
/**
|
|
37281
37433
|
* The one run this surface is registering for, when the scoped events describe
|
|
37282
37434
|
* exactly one. More than one run means the visitor still has to choose.
|
|
@@ -37320,14 +37472,21 @@ const eventRegistrationBlockRuntime = defineClientOwnedBlockRuntime({
|
|
|
37320
37472
|
render: createZodCodec(eventRegistrationRenderSchema)
|
|
37321
37473
|
},
|
|
37322
37474
|
buildRender: (source) => {
|
|
37323
|
-
const
|
|
37324
|
-
|
|
37475
|
+
const eventSource = resolveEventRegistrationEventSource({
|
|
37476
|
+
events: source.events,
|
|
37477
|
+
wholeSeriesRunEvents: source.wholeSeriesRunEvents,
|
|
37478
|
+
failures: source.eventLoaderFailures
|
|
37479
|
+
});
|
|
37480
|
+
const scopedSourceEvents = scopeEventRegistrationSourceEvents(source, eventSource);
|
|
37325
37481
|
return {
|
|
37326
37482
|
display: buildEventRegistrationDisplayFromScopedEvents(source, scopedSourceEvents),
|
|
37327
37483
|
hydration: {
|
|
37328
37484
|
occurrenceContext: source.occurrenceContext ?? null,
|
|
37329
37485
|
subject: source.subject ?? null,
|
|
37330
|
-
|
|
37486
|
+
eventSource: eventSource.kind === "loaded" ? {
|
|
37487
|
+
...eventSource,
|
|
37488
|
+
events: [...scopedSourceEvents]
|
|
37489
|
+
} : eventSource,
|
|
37331
37490
|
maxTickets: source.maxTickets ?? undefined,
|
|
37332
37491
|
showVenue: source.showVenue,
|
|
37333
37492
|
showCapacity: source.showCapacity,
|
|
@@ -37552,6 +37711,7 @@ const eventRegistrationManifest = createBlockManifest({
|
|
|
37552
37711
|
} },
|
|
37553
37712
|
events: { $bind: { from: "data.events" } },
|
|
37554
37713
|
wholeSeriesRunEvents: { $bind: { from: "data.wholeSeriesRunEvents" } },
|
|
37714
|
+
loaderFailures: { $bind: { from: "$root.loaderFailures" } },
|
|
37555
37715
|
sitePasses: { $bind: { from: "data.sitePasses" } },
|
|
37556
37716
|
siteMemberships: { $bind: { from: "data.siteMemberships" } },
|
|
37557
37717
|
stage: { $bind: {
|
|
@@ -39628,6 +39788,15 @@ const newsletterFieldSchema = z.object({
|
|
|
39628
39788
|
placeholder: z.string().optional()
|
|
39629
39789
|
});
|
|
39630
39790
|
const mailingListSignupBlockIdSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignupBlockId);
|
|
39791
|
+
const mailingListContentVersionIdSchema = z.string().transform((value, ctx) => {
|
|
39792
|
+
const parsed = parseMailingListContentVersionId(value);
|
|
39793
|
+
if (parsed) return parsed;
|
|
39794
|
+
ctx.addIssue({
|
|
39795
|
+
code: z.ZodIssueCode.custom,
|
|
39796
|
+
message: "Invalid mailing-list content version ID"
|
|
39797
|
+
});
|
|
39798
|
+
return z.NEVER;
|
|
39799
|
+
});
|
|
39631
39800
|
const signedMailingListSourceTokenSchema = z.string().trim().min(1).transform(parseRequiredMailingListSignedSourceToken);
|
|
39632
39801
|
const newsletterSourceCommonSchema = z.object({
|
|
39633
39802
|
siteId: z.string().optional(),
|
|
@@ -39641,7 +39810,8 @@ const newsletterSourceCommonSchema = z.object({
|
|
|
39641
39810
|
const newsletterSourceSchema = z.discriminatedUnion("source", [
|
|
39642
39811
|
newsletterSourceCommonSchema.extend({
|
|
39643
39812
|
source: z.literal("block"),
|
|
39644
|
-
blockId: z.string().nullable().optional()
|
|
39813
|
+
blockId: z.string().nullable().optional(),
|
|
39814
|
+
contentVersionId: z.string().nullable().optional()
|
|
39645
39815
|
}),
|
|
39646
39816
|
newsletterSourceCommonSchema.extend({
|
|
39647
39817
|
source: z.literal("signed-footer"),
|
|
@@ -39657,6 +39827,7 @@ const newsletterDisplaySchema = z.object({
|
|
|
39657
39827
|
availability: z.enum(["ready", "unavailable"]),
|
|
39658
39828
|
className: z.string().nullable(),
|
|
39659
39829
|
buttonLabel: z.string(),
|
|
39830
|
+
successMessage: z.string(),
|
|
39660
39831
|
buttonVariant: newsletterButtonVariantSchema,
|
|
39661
39832
|
privacyNote: z.string().nullable(),
|
|
39662
39833
|
fields: z.array(newsletterFieldSchema),
|
|
@@ -39671,7 +39842,8 @@ const newsletterHydrationSchema = z.object({
|
|
|
39671
39842
|
tag: z.literal("block-source"),
|
|
39672
39843
|
sourceRef: z.object({
|
|
39673
39844
|
tag: z.literal("block_ref"),
|
|
39674
|
-
blockId: mailingListSignupBlockIdSchema
|
|
39845
|
+
blockId: mailingListSignupBlockIdSchema,
|
|
39846
|
+
contentVersionId: mailingListContentVersionIdSchema
|
|
39675
39847
|
}).nullable()
|
|
39676
39848
|
}),
|
|
39677
39849
|
z.object({
|
|
@@ -39711,6 +39883,7 @@ function buildNewsletterDisplay(source) {
|
|
|
39711
39883
|
fields: { preset: "emailOnly" },
|
|
39712
39884
|
includeOptionalPhone: false,
|
|
39713
39885
|
buttonLabel: "Subscribe",
|
|
39886
|
+
successMessage: DEFAULT_MAILING_LIST_SUCCESS_MESSAGE,
|
|
39714
39887
|
privacyNote: null
|
|
39715
39888
|
};
|
|
39716
39889
|
const targeting = source.targeting ?? { mode: "default" };
|
|
@@ -39720,6 +39893,7 @@ function buildNewsletterDisplay(source) {
|
|
|
39720
39893
|
availability: runtimeTargetingIsAvailable(context, targeting, choices) ? "ready" : "unavailable",
|
|
39721
39894
|
className: source.className ?? null,
|
|
39722
39895
|
buttonLabel: form$1.buttonLabel,
|
|
39896
|
+
successMessage: form$1.successMessage,
|
|
39723
39897
|
buttonVariant: source.buttonVariant ?? "primary",
|
|
39724
39898
|
privacyNote: form$1.privacyNote,
|
|
39725
39899
|
fields: getGlobalFormFields(form$1),
|
|
@@ -39750,7 +39924,7 @@ const newsletterFormBlockRuntime = defineProgressiveBlockRuntime({
|
|
|
39750
39924
|
function projectNewsletterFormHydrationTarget(source) {
|
|
39751
39925
|
switch (source.source) {
|
|
39752
39926
|
case "block": {
|
|
39753
|
-
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId);
|
|
39927
|
+
const sourceRef = buildMailingListSignupBlockSourceRef(source.blockId, source.contentVersionId);
|
|
39754
39928
|
if (sourceRef?.tag === "block_ref") {
|
|
39755
39929
|
return {
|
|
39756
39930
|
tag: "block-source",
|
|
@@ -42251,9 +42425,10 @@ function cx(...classes) {
|
|
|
42251
42425
|
* Server-safe placeholder for event registration.
|
|
42252
42426
|
* Provides a static container for island hydration without importing client hooks.
|
|
42253
42427
|
*/
|
|
42254
|
-
function EventRegistrationSSR({ blockId, subject, children, ...sourceProps }) {
|
|
42428
|
+
function EventRegistrationSSR({ blockId, subject, loaderFailures, children, ...sourceProps }) {
|
|
42255
42429
|
const islandProps = buildEventRegistrationInteractiveIslandProps({
|
|
42256
42430
|
...sourceProps,
|
|
42431
|
+
eventLoaderFailures: blockId ? loaderFailures?.[blockId] : undefined,
|
|
42257
42432
|
subject: normalizeEventRegistrationPageSurfaceSubject(subject)
|
|
42258
42433
|
});
|
|
42259
42434
|
const display = islandProps.render.display;
|
|
@@ -42601,7 +42776,7 @@ function NewsletterFormSSR(props$1) {
|
|
|
42601
42776
|
className: clsx_default("newsletter-form-ssr", className),
|
|
42602
42777
|
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", {
|
|
42603
42778
|
role: "status",
|
|
42604
|
-
children: "
|
|
42779
|
+
children: "We can’t accept signups right now. Please try again later."
|
|
42605
42780
|
})
|
|
42606
42781
|
});
|
|
42607
42782
|
}
|
|
@@ -42648,14 +42823,18 @@ function NewsletterFormSSR(props$1) {
|
|
|
42648
42823
|
children: [
|
|
42649
42824
|
fields$2.map(renderField$1),
|
|
42650
42825
|
islandProps.render.hydration.choicePresentation === "visitor_choice" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("fieldset", {
|
|
42651
|
-
className: "newsletter-topics",
|
|
42652
|
-
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("legend", {
|
|
42653
|
-
className: "
|
|
42826
|
+
className: "fb-fieldset newsletter-topics",
|
|
42827
|
+
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("legend", {
|
|
42828
|
+
className: "form-label",
|
|
42829
|
+
children: "What would you like to hear about?"
|
|
42830
|
+
}), display.choices.map((choice) => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("label", {
|
|
42831
|
+
className: "fb-inline form-label newsletter-topic-choice",
|
|
42654
42832
|
children: [/* @__PURE__ */ (0, import_jsx_runtime.jsx)("input", {
|
|
42655
42833
|
type: "checkbox",
|
|
42656
42834
|
name: "mailingListChoice",
|
|
42657
|
-
value: choice.id
|
|
42658
|
-
|
|
42835
|
+
value: choice.id,
|
|
42836
|
+
className: "form-checkbox"
|
|
42837
|
+
}), /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: choice.label })]
|
|
42659
42838
|
}, choice.id))]
|
|
42660
42839
|
}) : null,
|
|
42661
42840
|
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
|
|
@@ -43785,6 +43964,18 @@ function resolveChildren(nodes, context) {
|
|
|
43785
43964
|
function isReactNode(value) {
|
|
43786
43965
|
return value !== null && value !== undefined;
|
|
43787
43966
|
}
|
|
43967
|
+
function resolveNodeMetadata(nodeType, context) {
|
|
43968
|
+
return {
|
|
43969
|
+
pathBase: context.pathBase,
|
|
43970
|
+
blockId: context.blockId,
|
|
43971
|
+
blockKind: context.blockKind,
|
|
43972
|
+
blockContent: context.blockContent,
|
|
43973
|
+
fragmentRegistry: context.fragmentRegistry,
|
|
43974
|
+
previewAuthoring: context.previewAuthoring,
|
|
43975
|
+
...nodeType.toLowerCase() === "newsletter-form" ? { contentVersionId: context.contentVersionId } : {},
|
|
43976
|
+
...nodeType === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {}
|
|
43977
|
+
};
|
|
43978
|
+
}
|
|
43788
43979
|
/**
|
|
43789
43980
|
* Resolves a node definition into a React element.
|
|
43790
43981
|
* Handles conditionals ($when), scopes ($scopes), repeaters ($repeat), bindings ($bind), and children.
|
|
@@ -43827,13 +44018,7 @@ function resolveNode(node, context, indexFallback) {
|
|
|
43827
44018
|
const elementProps = {
|
|
43828
44019
|
...props$1,
|
|
43829
44020
|
key: node.key ?? indexFallback,
|
|
43830
|
-
|
|
43831
|
-
blockId: context.blockId,
|
|
43832
|
-
blockKind: context.blockKind,
|
|
43833
|
-
blockContent: context.blockContent,
|
|
43834
|
-
...node.type === "media" && context.imageResolveContext ? { imageResolveContext: context.imageResolveContext } : {},
|
|
43835
|
-
fragmentRegistry: context.fragmentRegistry,
|
|
43836
|
-
previewAuthoring: context.previewAuthoring
|
|
44021
|
+
...resolveNodeMetadata(node.type, context)
|
|
43837
44022
|
};
|
|
43838
44023
|
const element = import_react.createElement(component, elementProps, ...children);
|
|
43839
44024
|
if (headingDecorationPlan.kind === "skip") {
|
|
@@ -48404,7 +48589,7 @@ function pageBlockPosition(index, blockCount) {
|
|
|
48404
48589
|
//#endregion
|
|
48405
48590
|
//#region ../blocks/src/pageRendererContracts.ts
|
|
48406
48591
|
function buildPageRendererRootRuntime(dataContext) {
|
|
48407
|
-
const { siteId = null, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, bookingOfferingPresets = [], mailingList = { tag: "not_configured" }, eventRegistrationOverlayEnabled = false } = dataContext ?? {};
|
|
48592
|
+
const { siteId = null, pageId = null, pathname = null, bookingTimeZone, previewStage = "published", apiBaseUrl = null, portalToken = null, bookingOfferingPresets = [], mailingList = { tag: "not_configured" }, eventRegistrationOverlayEnabled = false, loaderFailures = {} } = dataContext ?? {};
|
|
48408
48593
|
return {
|
|
48409
48594
|
siteId,
|
|
48410
48595
|
pageId,
|
|
@@ -48415,7 +48600,8 @@ function buildPageRendererRootRuntime(dataContext) {
|
|
|
48415
48600
|
portalToken,
|
|
48416
48601
|
bookingOfferingPresets,
|
|
48417
48602
|
mailingList,
|
|
48418
|
-
eventRegistrationOverlayEnabled
|
|
48603
|
+
eventRegistrationOverlayEnabled,
|
|
48604
|
+
loaderFailures
|
|
48419
48605
|
};
|
|
48420
48606
|
}
|
|
48421
48607
|
|
|
@@ -58558,7 +58744,7 @@ function collectNestedPreviewFieldConstraintEntries(field, path$3) {
|
|
|
58558
58744
|
}
|
|
58559
58745
|
function makeDefaultBlockComponent(args) {
|
|
58560
58746
|
const { manifest } = args;
|
|
58561
|
-
return function DefaultBlockComponent({ content, data, registry, theme, themeConfig, transforms, viewModelOverrides, pathBase, blockId, blockKind, blockBindings, editableRouteMetadataFieldIds, fragmentRegistry: fragmentRegistry$1, imageResolveContext, previewAuthoring }) {
|
|
58747
|
+
return function DefaultBlockComponent({ content, data, registry, theme, themeConfig, transforms, viewModelOverrides, pathBase, blockId, contentVersionId, blockKind, blockBindings, editableRouteMetadataFieldIds, fragmentRegistry: fragmentRegistry$1, imageResolveContext, previewAuthoring }) {
|
|
58562
58748
|
const perf = beginBlockRenderMeasurement();
|
|
58563
58749
|
if (!theme) {
|
|
58564
58750
|
throw new Error("Block rendering requires theme tokens; none were provided to makeDefaultBlockComponent");
|
|
@@ -58587,6 +58773,7 @@ function makeDefaultBlockComponent(args) {
|
|
|
58587
58773
|
theme: themeForTransforms,
|
|
58588
58774
|
pathBase,
|
|
58589
58775
|
blockId,
|
|
58776
|
+
contentVersionId,
|
|
58590
58777
|
blockKind,
|
|
58591
58778
|
blockContent: mergedContent,
|
|
58592
58779
|
blockBindings,
|
|
@@ -59856,6 +60043,7 @@ function buildBlockOverrideProps(input) {
|
|
|
59856
60043
|
...blockSubjectProps(dataContext),
|
|
59857
60044
|
imageResolveContext: input.imageResolveContext,
|
|
59858
60045
|
blockId: block.id ?? null,
|
|
60046
|
+
contentVersionId: block.contentVersionId ?? null,
|
|
59859
60047
|
blockKind: block.kind
|
|
59860
60048
|
};
|
|
59861
60049
|
}
|
|
@@ -59960,6 +60148,7 @@ function toPresentationPage(page) {
|
|
|
59960
60148
|
id: block.id,
|
|
59961
60149
|
kind: block.kind,
|
|
59962
60150
|
purpose: block.purpose,
|
|
60151
|
+
...block.contentVersionId ? { contentVersionId: block.contentVersionId } : {},
|
|
59963
60152
|
...block.bindings ? { bindings: block.bindings } : {}
|
|
59964
60153
|
};
|
|
59965
60154
|
return block.admission.kind === "renderable" ? {
|
|
@@ -71282,7 +71471,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71282
71471
|
text-align: left;
|
|
71283
71472
|
}
|
|
71284
71473
|
|
|
71285
|
-
:where(.theme-scope)
|
|
71474
|
+
:where(.theme-scope)
|
|
71475
|
+
:where([data-block="customer-portal"])
|
|
71476
|
+
.cp-login__subtitle {
|
|
71286
71477
|
color: var(--cp-muted);
|
|
71287
71478
|
font-size: 0.9375rem;
|
|
71288
71479
|
text-align: left;
|
|
@@ -71309,7 +71500,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71309
71500
|
text-align: left;
|
|
71310
71501
|
}
|
|
71311
71502
|
|
|
71312
|
-
:where(.theme-scope)
|
|
71503
|
+
:where(.theme-scope)
|
|
71504
|
+
:where([data-block="customer-portal"])
|
|
71505
|
+
.cp-login__reset-link {
|
|
71313
71506
|
appearance: none;
|
|
71314
71507
|
background: none;
|
|
71315
71508
|
border: 0;
|
|
@@ -71323,11 +71516,15 @@ const containerResponsiveThemeCss = `/*
|
|
|
71323
71516
|
text-underline-offset: 0.15em;
|
|
71324
71517
|
}
|
|
71325
71518
|
|
|
71326
|
-
:where(.theme-scope)
|
|
71519
|
+
:where(.theme-scope)
|
|
71520
|
+
:where([data-block="customer-portal"])
|
|
71521
|
+
.cp-login__reset-link:hover {
|
|
71327
71522
|
color: var(--cp-text);
|
|
71328
71523
|
}
|
|
71329
71524
|
|
|
71330
|
-
:where(.theme-scope)
|
|
71525
|
+
:where(.theme-scope)
|
|
71526
|
+
:where([data-block="customer-portal"])
|
|
71527
|
+
.cp-login__reset-link:focus-visible {
|
|
71331
71528
|
outline: 2px solid currentColor;
|
|
71332
71529
|
outline-offset: 3px;
|
|
71333
71530
|
}
|
|
@@ -71372,7 +71569,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71372
71569
|
border-bottom: none;
|
|
71373
71570
|
}
|
|
71374
71571
|
|
|
71375
|
-
:where(.theme-scope)
|
|
71572
|
+
:where(.theme-scope)
|
|
71573
|
+
:where([data-block="customer-portal"])
|
|
71574
|
+
.cp-header__welcome {
|
|
71376
71575
|
font-size: 1.125rem;
|
|
71377
71576
|
font-weight: 500;
|
|
71378
71577
|
}
|
|
@@ -71388,8 +71587,14 @@ const containerResponsiveThemeCss = `/*
|
|
|
71388
71587
|
}
|
|
71389
71588
|
|
|
71390
71589
|
@keyframes cp-fade-in {
|
|
71391
|
-
from {
|
|
71392
|
-
|
|
71590
|
+
from {
|
|
71591
|
+
opacity: 0;
|
|
71592
|
+
transform: translateY(4px);
|
|
71593
|
+
}
|
|
71594
|
+
to {
|
|
71595
|
+
opacity: 1;
|
|
71596
|
+
transform: translateY(0);
|
|
71597
|
+
}
|
|
71393
71598
|
}
|
|
71394
71599
|
|
|
71395
71600
|
/* Empty state */
|
|
@@ -71478,6 +71683,77 @@ const containerResponsiveThemeCss = `/*
|
|
|
71478
71683
|
margin-top: 1rem;
|
|
71479
71684
|
}
|
|
71480
71685
|
|
|
71686
|
+
/* Event waitlists */
|
|
71687
|
+
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-waitlist-list {
|
|
71688
|
+
display: grid;
|
|
71689
|
+
gap: 1rem;
|
|
71690
|
+
}
|
|
71691
|
+
|
|
71692
|
+
:where(.theme-scope)
|
|
71693
|
+
:where([data-block="customer-portal"])
|
|
71694
|
+
.cp-waitlists
|
|
71695
|
+
> .cp-alert {
|
|
71696
|
+
margin-bottom: 1rem;
|
|
71697
|
+
}
|
|
71698
|
+
|
|
71699
|
+
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-waitlist-card {
|
|
71700
|
+
transition:
|
|
71701
|
+
border-color 180ms ease,
|
|
71702
|
+
box-shadow 180ms ease;
|
|
71703
|
+
}
|
|
71704
|
+
|
|
71705
|
+
:where(.theme-scope)
|
|
71706
|
+
:where([data-block="customer-portal"])
|
|
71707
|
+
.cp-waitlist-card--focused {
|
|
71708
|
+
border-color: var(--cp-primary);
|
|
71709
|
+
box-shadow: 0 0 0 3px color-mix(in srgb, var(--cp-primary) 22%, transparent);
|
|
71710
|
+
}
|
|
71711
|
+
|
|
71712
|
+
:where(.theme-scope)
|
|
71713
|
+
:where([data-block="customer-portal"])
|
|
71714
|
+
.cp-waitlist-card__summary,
|
|
71715
|
+
:where(.theme-scope)
|
|
71716
|
+
:where([data-block="customer-portal"])
|
|
71717
|
+
.cp-waitlist-card__position {
|
|
71718
|
+
font-weight: 600;
|
|
71719
|
+
}
|
|
71720
|
+
|
|
71721
|
+
:where(.theme-scope)
|
|
71722
|
+
:where([data-block="customer-portal"])
|
|
71723
|
+
.cp-waitlist-card
|
|
71724
|
+
.cp-card-body
|
|
71725
|
+
p {
|
|
71726
|
+
margin: 0.4rem 0;
|
|
71727
|
+
}
|
|
71728
|
+
|
|
71729
|
+
@container rb-site (max-width: 640px) {
|
|
71730
|
+
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
71731
|
+
:where(.theme-scope)
|
|
71732
|
+
:where([data-block="customer-portal"])
|
|
71733
|
+
.cp-waitlist-card
|
|
71734
|
+
.cp-card-header {
|
|
71735
|
+
flex-direction: column-reverse;
|
|
71736
|
+
}
|
|
71737
|
+
|
|
71738
|
+
:where(.theme-scope)
|
|
71739
|
+
:where([data-block="customer-portal"])
|
|
71740
|
+
.cp-waitlist-card
|
|
71741
|
+
.cp-card-actions {
|
|
71742
|
+
align-items: stretch;
|
|
71743
|
+
flex-direction: column;
|
|
71744
|
+
}
|
|
71745
|
+
|
|
71746
|
+
:where(.theme-scope)
|
|
71747
|
+
:where([data-block="customer-portal"])
|
|
71748
|
+
.cp-waitlist-card
|
|
71749
|
+
.cp-card-actions
|
|
71750
|
+
> * {
|
|
71751
|
+
justify-content: center;
|
|
71752
|
+
text-align: center;
|
|
71753
|
+
}
|
|
71754
|
+
}
|
|
71755
|
+
}
|
|
71756
|
+
|
|
71481
71757
|
/* Badge */
|
|
71482
71758
|
:where(.theme-scope) :where([data-block="customer-portal"]) .cp-badge {
|
|
71483
71759
|
display: inline-flex;
|
|
@@ -71614,11 +71890,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
71614
71890
|
background: rgba(var(--tb-border), 0.2);
|
|
71615
71891
|
}
|
|
71616
71892
|
|
|
71617
|
-
:where(.theme-scope)
|
|
71893
|
+
:where(.theme-scope)
|
|
71894
|
+
:where([data-block="customer-portal"])
|
|
71895
|
+
.cp-table
|
|
71896
|
+
tbody
|
|
71897
|
+
tr:last-child
|
|
71898
|
+
td {
|
|
71618
71899
|
border-bottom: none;
|
|
71619
71900
|
}
|
|
71620
71901
|
|
|
71621
|
-
:where(.theme-scope)
|
|
71902
|
+
:where(.theme-scope)
|
|
71903
|
+
:where([data-block="customer-portal"])
|
|
71904
|
+
:is(.cp-row--past, .cp-row--muted) {
|
|
71622
71905
|
opacity: 0.65;
|
|
71623
71906
|
}
|
|
71624
71907
|
|
|
@@ -71631,7 +71914,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71631
71914
|
line-height: 1.2;
|
|
71632
71915
|
}
|
|
71633
71916
|
|
|
71634
|
-
:where(.theme-scope)
|
|
71917
|
+
:where(.theme-scope)
|
|
71918
|
+
:where([data-block="customer-portal"])
|
|
71919
|
+
.cp-row-title__badges {
|
|
71635
71920
|
margin-left: auto;
|
|
71636
71921
|
display: flex;
|
|
71637
71922
|
flex-wrap: wrap;
|
|
@@ -71639,7 +71924,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71639
71924
|
gap: 0.375rem;
|
|
71640
71925
|
}
|
|
71641
71926
|
|
|
71642
|
-
:where(.theme-scope)
|
|
71927
|
+
:where(.theme-scope)
|
|
71928
|
+
:where([data-block="customer-portal"])
|
|
71929
|
+
.cp-row-title__text {
|
|
71643
71930
|
min-width: 0;
|
|
71644
71931
|
}
|
|
71645
71932
|
|
|
@@ -71659,12 +71946,16 @@ const containerResponsiveThemeCss = `/*
|
|
|
71659
71946
|
line-height: 1.35;
|
|
71660
71947
|
}
|
|
71661
71948
|
|
|
71662
|
-
:where(.theme-scope)
|
|
71949
|
+
:where(.theme-scope)
|
|
71950
|
+
:where([data-block="customer-portal"])
|
|
71951
|
+
.cp-row-note--success {
|
|
71663
71952
|
border-left-color: rgb(var(--tb-success));
|
|
71664
71953
|
color: rgb(var(--tb-success));
|
|
71665
71954
|
}
|
|
71666
71955
|
|
|
71667
|
-
:where(.theme-scope)
|
|
71956
|
+
:where(.theme-scope)
|
|
71957
|
+
:where([data-block="customer-portal"])
|
|
71958
|
+
.cp-row-note--error {
|
|
71668
71959
|
border-left-color: rgb(var(--tb-destructive));
|
|
71669
71960
|
color: rgb(var(--tb-destructive));
|
|
71670
71961
|
}
|
|
@@ -71683,16 +71974,23 @@ const containerResponsiveThemeCss = `/*
|
|
|
71683
71974
|
white-space: nowrap;
|
|
71684
71975
|
}
|
|
71685
71976
|
|
|
71686
|
-
:where(.theme-scope)
|
|
71977
|
+
:where(.theme-scope)
|
|
71978
|
+
:where([data-block="customer-portal"])
|
|
71979
|
+
.cp-col-actions
|
|
71980
|
+
.btn-sm {
|
|
71687
71981
|
white-space: nowrap;
|
|
71688
71982
|
}
|
|
71689
71983
|
|
|
71690
|
-
:where(.theme-scope)
|
|
71984
|
+
:where(.theme-scope)
|
|
71985
|
+
:where([data-block="customer-portal"])
|
|
71986
|
+
.cp-row-title__link {
|
|
71691
71987
|
color: inherit;
|
|
71692
71988
|
text-decoration: none;
|
|
71693
71989
|
}
|
|
71694
71990
|
|
|
71695
|
-
:where(.theme-scope)
|
|
71991
|
+
:where(.theme-scope)
|
|
71992
|
+
:where([data-block="customer-portal"])
|
|
71993
|
+
.cp-row-title__link:hover {
|
|
71696
71994
|
text-decoration: underline;
|
|
71697
71995
|
text-decoration-thickness: 2px;
|
|
71698
71996
|
text-underline-offset: 2px;
|
|
@@ -71714,7 +72012,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71714
72012
|
}
|
|
71715
72013
|
|
|
71716
72014
|
/* Profile actions */
|
|
71717
|
-
:where(.theme-scope)
|
|
72015
|
+
:where(.theme-scope)
|
|
72016
|
+
:where([data-block="customer-portal"])
|
|
72017
|
+
.cp-profile__actions {
|
|
71718
72018
|
display: flex;
|
|
71719
72019
|
gap: 0.75rem;
|
|
71720
72020
|
margin-top: 1rem;
|
|
@@ -71781,28 +72081,39 @@ const containerResponsiveThemeCss = `/*
|
|
|
71781
72081
|
gap: 0.375rem;
|
|
71782
72082
|
}
|
|
71783
72083
|
|
|
71784
|
-
:where(.theme-scope)
|
|
72084
|
+
:where(.theme-scope)
|
|
72085
|
+
:where([data-block="customer-portal"])
|
|
72086
|
+
.cp-guest-edit-row__index {
|
|
71785
72087
|
font-size: 0.75rem;
|
|
71786
72088
|
font-weight: 500;
|
|
71787
72089
|
color: var(--cp-muted);
|
|
71788
72090
|
}
|
|
71789
72091
|
|
|
71790
|
-
:where(.theme-scope)
|
|
72092
|
+
:where(.theme-scope)
|
|
72093
|
+
:where([data-block="customer-portal"])
|
|
72094
|
+
.cp-guest-edit-row__fields {
|
|
71791
72095
|
display: flex;
|
|
71792
72096
|
gap: 0.5rem;
|
|
71793
72097
|
}
|
|
71794
72098
|
|
|
71795
|
-
:where(.theme-scope)
|
|
72099
|
+
:where(.theme-scope)
|
|
72100
|
+
:where([data-block="customer-portal"])
|
|
72101
|
+
.cp-guest-edit-row__fields
|
|
72102
|
+
input {
|
|
71796
72103
|
flex: 1;
|
|
71797
72104
|
min-width: 0;
|
|
71798
72105
|
}
|
|
71799
72106
|
|
|
71800
|
-
:where(.theme-scope)
|
|
72107
|
+
:where(.theme-scope)
|
|
72108
|
+
:where([data-block="customer-portal"])
|
|
72109
|
+
.cp-guest-edit-row__error {
|
|
71801
72110
|
font-size: 0.75rem;
|
|
71802
72111
|
color: var(--cp-error);
|
|
71803
72112
|
}
|
|
71804
72113
|
|
|
71805
|
-
:where(.theme-scope)
|
|
72114
|
+
:where(.theme-scope)
|
|
72115
|
+
:where([data-block="customer-portal"])
|
|
72116
|
+
.cp-guests__actions {
|
|
71806
72117
|
display: flex;
|
|
71807
72118
|
gap: 0.5rem;
|
|
71808
72119
|
margin-top: 0.5rem;
|
|
@@ -71816,13 +72127,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
71816
72127
|
}
|
|
71817
72128
|
|
|
71818
72129
|
/* In the actions modal, tiles sit on a surface modal, so use "background" for contrast. */
|
|
71819
|
-
:where(.theme-scope)
|
|
72130
|
+
:where(.theme-scope)
|
|
72131
|
+
:where([data-block="customer-portal"])
|
|
72132
|
+
.cp-actions-list
|
|
72133
|
+
:where(.rb-tile) {
|
|
71820
72134
|
--rb-event-tile-bg: rgb(var(--tb-background));
|
|
71821
72135
|
--rb-event-tile-border: rgb(var(--tb-border));
|
|
71822
72136
|
}
|
|
71823
72137
|
|
|
71824
72138
|
/* Actions trigger: icon-only kebab button */
|
|
71825
|
-
:where(.theme-scope)
|
|
72139
|
+
:where(.theme-scope)
|
|
72140
|
+
:where([data-block="customer-portal"])
|
|
72141
|
+
.cp-actions-trigger.btn-sm {
|
|
71826
72142
|
padding: 0.35rem !important;
|
|
71827
72143
|
line-height: 1 !important;
|
|
71828
72144
|
min-width: 32px;
|
|
@@ -71846,17 +72162,24 @@ const containerResponsiveThemeCss = `/*
|
|
|
71846
72162
|
gap: 0.25rem;
|
|
71847
72163
|
}
|
|
71848
72164
|
|
|
71849
|
-
:where(.theme-scope)
|
|
72165
|
+
:where(.theme-scope)
|
|
72166
|
+
:where([data-block="customer-portal"])
|
|
72167
|
+
.cp-action-tile__title {
|
|
71850
72168
|
font-weight: 600;
|
|
71851
72169
|
font-size: 0.9375rem;
|
|
71852
72170
|
}
|
|
71853
72171
|
|
|
71854
|
-
:where(.theme-scope)
|
|
72172
|
+
:where(.theme-scope)
|
|
72173
|
+
:where([data-block="customer-portal"])
|
|
72174
|
+
.cp-action-tile__desc {
|
|
71855
72175
|
font-size: 0.875rem;
|
|
71856
72176
|
line-height: 1.35;
|
|
71857
72177
|
}
|
|
71858
72178
|
|
|
71859
|
-
:where(.theme-scope)
|
|
72179
|
+
:where(.theme-scope)
|
|
72180
|
+
:where([data-block="customer-portal"])
|
|
72181
|
+
.cp-action-tile--danger
|
|
72182
|
+
.cp-action-tile__title {
|
|
71860
72183
|
color: rgb(var(--tb-destructive));
|
|
71861
72184
|
}
|
|
71862
72185
|
|
|
@@ -71878,7 +72201,9 @@ const containerResponsiveThemeCss = `/*
|
|
|
71878
72201
|
text-decoration: underline;
|
|
71879
72202
|
}
|
|
71880
72203
|
|
|
71881
|
-
:where(.theme-scope)
|
|
72204
|
+
:where(.theme-scope)
|
|
72205
|
+
:where([data-block="customer-portal"])
|
|
72206
|
+
.cp-btn--link:hover {
|
|
71882
72207
|
color: var(--cp-primary-hover);
|
|
71883
72208
|
}
|
|
71884
72209
|
|
|
@@ -71917,34 +72242,48 @@ const containerResponsiveThemeCss = `/*
|
|
|
71917
72242
|
margin-top: 0.75rem;
|
|
71918
72243
|
}
|
|
71919
72244
|
|
|
71920
|
-
:where(.theme-scope)
|
|
72245
|
+
:where(.theme-scope)
|
|
72246
|
+
:where([data-block="customer-portal"])
|
|
72247
|
+
.cp-cancel-confirm__title {
|
|
71921
72248
|
font-weight: 600;
|
|
71922
72249
|
margin-bottom: 0.5rem;
|
|
71923
72250
|
}
|
|
71924
72251
|
|
|
71925
|
-
:where(.theme-scope)
|
|
72252
|
+
:where(.theme-scope)
|
|
72253
|
+
:where([data-block="customer-portal"])
|
|
72254
|
+
.cp-cancel-confirm__message {
|
|
71926
72255
|
margin-bottom: 0.25rem;
|
|
71927
72256
|
}
|
|
71928
72257
|
|
|
71929
|
-
:where(.theme-scope)
|
|
72258
|
+
:where(.theme-scope)
|
|
72259
|
+
:where([data-block="customer-portal"])
|
|
72260
|
+
.cp-cancel-confirm__warning {
|
|
71930
72261
|
margin-bottom: 0.75rem;
|
|
71931
72262
|
}
|
|
71932
72263
|
|
|
71933
|
-
:where(.theme-scope)
|
|
72264
|
+
:where(.theme-scope)
|
|
72265
|
+
:where([data-block="customer-portal"])
|
|
72266
|
+
.cp-cancel-confirm__actions {
|
|
71934
72267
|
display: flex;
|
|
71935
72268
|
gap: 0.75rem;
|
|
71936
72269
|
}
|
|
71937
72270
|
|
|
71938
72271
|
/* Membership actions */
|
|
71939
|
-
:where(.theme-scope)
|
|
72272
|
+
:where(.theme-scope)
|
|
72273
|
+
:where([data-block="customer-portal"])
|
|
72274
|
+
.cp-membership-actions {
|
|
71940
72275
|
margin-top: 0.75rem;
|
|
71941
72276
|
}
|
|
71942
72277
|
|
|
71943
|
-
:where(.theme-scope)
|
|
72278
|
+
:where(.theme-scope)
|
|
72279
|
+
:where([data-block="customer-portal"])
|
|
72280
|
+
.cp-section-actions {
|
|
71944
72281
|
margin-top: 1rem;
|
|
71945
72282
|
}
|
|
71946
72283
|
|
|
71947
|
-
:where(.theme-scope)
|
|
72284
|
+
:where(.theme-scope)
|
|
72285
|
+
:where([data-block="customer-portal"])
|
|
72286
|
+
.cp-card-subtitle--spaced {
|
|
71948
72287
|
margin-top: 0.75rem;
|
|
71949
72288
|
}
|
|
71950
72289
|
|
|
@@ -71968,9 +72307,18 @@ const containerResponsiveThemeCss = `/*
|
|
|
71968
72307
|
display: none;
|
|
71969
72308
|
}
|
|
71970
72309
|
|
|
71971
|
-
:where(.theme-scope)
|
|
71972
|
-
|
|
71973
|
-
|
|
72310
|
+
:where(.theme-scope)
|
|
72311
|
+
:where([data-block="customer-portal"])
|
|
72312
|
+
.cp-table
|
|
72313
|
+
:is(th, td).cp-col-guests,
|
|
72314
|
+
:where(.theme-scope)
|
|
72315
|
+
:where([data-block="customer-portal"])
|
|
72316
|
+
.cp-table
|
|
72317
|
+
:is(th, td).cp-col-tickets,
|
|
72318
|
+
:where(.theme-scope)
|
|
72319
|
+
:where([data-block="customer-portal"])
|
|
72320
|
+
.cp-table
|
|
72321
|
+
:is(th, td).cp-col-actions {
|
|
71974
72322
|
display: none;
|
|
71975
72323
|
}
|
|
71976
72324
|
|
|
@@ -71979,24 +72327,34 @@ const containerResponsiveThemeCss = `/*
|
|
|
71979
72327
|
}
|
|
71980
72328
|
|
|
71981
72329
|
/* Make the cell a positioning context for the kebab */
|
|
71982
|
-
:where(.theme-scope)
|
|
72330
|
+
:where(.theme-scope)
|
|
72331
|
+
:where([data-block="customer-portal"])
|
|
72332
|
+
.cp-row
|
|
72333
|
+
> td:first-child {
|
|
71983
72334
|
position: relative;
|
|
71984
72335
|
padding-right: 2.5rem;
|
|
71985
72336
|
}
|
|
71986
72337
|
|
|
71987
72338
|
/* Position kebab in top-right of the cell */
|
|
71988
|
-
:where(.theme-scope)
|
|
72339
|
+
:where(.theme-scope)
|
|
72340
|
+
:where([data-block="customer-portal"])
|
|
72341
|
+
.cp-row-mobile-actions {
|
|
71989
72342
|
position: absolute;
|
|
71990
72343
|
top: 0.5rem;
|
|
71991
72344
|
right: 0.5rem;
|
|
71992
72345
|
margin-top: 0;
|
|
71993
72346
|
}
|
|
71994
72347
|
|
|
71995
|
-
:where(.theme-scope)
|
|
72348
|
+
:where(.theme-scope)
|
|
72349
|
+
:where([data-block="customer-portal"])
|
|
72350
|
+
.cp-row-mobile-actions
|
|
72351
|
+
.btn-sm {
|
|
71996
72352
|
width: auto;
|
|
71997
72353
|
}
|
|
71998
72354
|
|
|
71999
|
-
:where(.theme-scope)
|
|
72355
|
+
:where(.theme-scope)
|
|
72356
|
+
:where([data-block="customer-portal"])
|
|
72357
|
+
.cp-profile__edit {
|
|
72000
72358
|
align-self: stretch;
|
|
72001
72359
|
}
|
|
72002
72360
|
}
|
|
@@ -72444,6 +72802,30 @@ const containerResponsiveThemeCss = `/*
|
|
|
72444
72802
|
gap: 0.25rem;
|
|
72445
72803
|
}
|
|
72446
72804
|
|
|
72805
|
+
/* Topic choices (visitor picks what to hear about). Same treatment as the
|
|
72806
|
+
form block's .fb-fieldset / .fb-inline, defined here because the newsletter
|
|
72807
|
+
form also renders inside contact-newsletter and the site footer. */
|
|
72808
|
+
:where(.theme-scope) .newsletter-topics {
|
|
72809
|
+
display: flex;
|
|
72810
|
+
flex-direction: column;
|
|
72811
|
+
gap: 0.5rem;
|
|
72812
|
+
border: none;
|
|
72813
|
+
padding: 0;
|
|
72814
|
+
margin: 0;
|
|
72815
|
+
min-width: 0;
|
|
72816
|
+
}
|
|
72817
|
+
|
|
72818
|
+
:where(.theme-scope) .newsletter-topics > legend {
|
|
72819
|
+
padding: 0;
|
|
72820
|
+
margin-bottom: 0.25rem;
|
|
72821
|
+
}
|
|
72822
|
+
|
|
72823
|
+
:where(.theme-scope) .newsletter-topic-choice {
|
|
72824
|
+
display: flex;
|
|
72825
|
+
align-items: center;
|
|
72826
|
+
gap: 0.5rem;
|
|
72827
|
+
}
|
|
72828
|
+
|
|
72447
72829
|
/* Required indicator */
|
|
72448
72830
|
:where(.theme-scope) .newsletter-required {
|
|
72449
72831
|
color: rgb(var(--tb-primary));
|
|
@@ -72493,6 +72875,10 @@ const containerResponsiveThemeCss = `/*
|
|
|
72493
72875
|
flex-shrink: 0;
|
|
72494
72876
|
}
|
|
72495
72877
|
|
|
72878
|
+
:where(.theme-scope) .newsletter-inline .newsletter-topics {
|
|
72879
|
+
flex-basis: 100%;
|
|
72880
|
+
}
|
|
72881
|
+
|
|
72496
72882
|
/* Mobile fallback for inline variant */
|
|
72497
72883
|
@container rb-site (max-width: 640px) {
|
|
72498
72884
|
@scope ([data-rb-responsive-mode="container"]) to (:scope [data-rb-responsive-mode]) {
|
|
@@ -75540,27 +75926,21 @@ function normalizeTokenValue(value) {
|
|
|
75540
75926
|
}
|
|
75541
75927
|
return trimmedValue;
|
|
75542
75928
|
}
|
|
75543
|
-
/**
|
|
75544
|
-
* Legacy css-var-only bridge helper. Prefer buildThemeBridgeRuntime() for SDK
|
|
75545
|
-
* sites that need the full ThemeScopeCore runtime contract.
|
|
75546
|
-
*/
|
|
75547
75929
|
function buildThemeRuntimeFromBridge(config$1) {
|
|
75548
75930
|
validateThemeBridgeConfig(config$1);
|
|
75549
75931
|
return buildBridgeCssVars(config$1);
|
|
75550
75932
|
}
|
|
75551
75933
|
function buildThemeBridgeRuntime(config$1) {
|
|
75552
|
-
|
|
75934
|
+
const cssVars = buildThemeRuntimeFromBridge(config$1);
|
|
75553
75935
|
const themeId = THEME_BRIDGE_SCOPE_ID;
|
|
75554
75936
|
const corners = config$1.corners ?? "rounded";
|
|
75555
|
-
const shadows = config$1.shadows ?? "medium";
|
|
75556
|
-
const cssVars = buildBridgeCssVars(config$1);
|
|
75557
75937
|
const generatorTheme = buildBridgeGeneratorTheme(corners);
|
|
75558
75938
|
return {
|
|
75559
75939
|
themeId,
|
|
75560
75940
|
cssVars,
|
|
75561
|
-
buttonCss: shouldGenerateComponent(config$1.components?.buttons) ? generateButtonsCss(config$1, corners, shadows) : undefined,
|
|
75562
|
-
cardCss: generateCardsCss(config$1, corners, shadows),
|
|
75563
|
-
inputCss: shouldGenerateComponent(config$1.components?.inputs) ? generateInputsCss(corners, shadows) : undefined,
|
|
75941
|
+
buttonCss: shouldGenerateComponent(config$1.components?.buttons) ? generateButtonsCss(config$1, corners, config$1.shadows ?? "medium") : undefined,
|
|
75942
|
+
cardCss: generateCardsCss(config$1, corners, config$1.shadows ?? "medium"),
|
|
75943
|
+
inputCss: shouldGenerateComponent(config$1.components?.inputs) ? generateInputsCss(corners, config$1.shadows ?? "medium") : undefined,
|
|
75564
75944
|
statusCss: generateStatusCss({
|
|
75565
75945
|
themeId,
|
|
75566
75946
|
theme: generatorTheme
|
|
@@ -75569,6 +75949,7 @@ function buildThemeBridgeRuntime(config$1) {
|
|
|
75569
75949
|
themeId,
|
|
75570
75950
|
theme: generatorTheme
|
|
75571
75951
|
}),
|
|
75952
|
+
typographyCss: generateTypographyCss({ themeId }),
|
|
75572
75953
|
blockVarsCss: generateAllBlockVarsCss({
|
|
75573
75954
|
themeId,
|
|
75574
75955
|
theme: generatorTheme
|
|
@@ -75889,7 +76270,7 @@ function shouldGenerateComponent(value) {
|
|
|
75889
76270
|
function generateButtonsCss(config$1, corners, shadows) {
|
|
75890
76271
|
let variants = getDefaultButtonVariants();
|
|
75891
76272
|
const buttonConfig = config$1.components?.buttons;
|
|
75892
|
-
if (
|
|
76273
|
+
if (typeof buttonConfig === "object" && buttonConfig.variants) {
|
|
75893
76274
|
const requestedIds = new Set(buttonConfig.variants);
|
|
75894
76275
|
variants = variants.filter((variant) => requestedIds.has(variant.id));
|
|
75895
76276
|
}
|
|
@@ -76381,8 +76762,12 @@ function shouldSkipResolvedLoader(input) {
|
|
|
76381
76762
|
* ```
|
|
76382
76763
|
*/
|
|
76383
76764
|
async function prefetchBlockData(page, context, options) {
|
|
76765
|
+
return (await prefetchBlockDataWithFailures(page, context, options)).resolvedData;
|
|
76766
|
+
}
|
|
76767
|
+
async function prefetchBlockDataWithFailures(page, context, options) {
|
|
76384
76768
|
const { apiClient, isValidEndpoint, onError, getCustomBlockLoaders, getBlockDefinition: getBlockDefinition$1 = getBlockDefinition, resolveParamsBindings: resolveParamsBindings$1 = resolveParamsBindings } = options;
|
|
76385
76769
|
const results = {};
|
|
76770
|
+
const loaderFailures = {};
|
|
76386
76771
|
const tasks = [];
|
|
76387
76772
|
for (const block of page.blocks) {
|
|
76388
76773
|
const blockId = block.id;
|
|
@@ -76443,6 +76828,11 @@ async function prefetchBlockData(page, context, options) {
|
|
|
76443
76828
|
const blockResults = results[blockId] ??= {};
|
|
76444
76829
|
blockResults[key] = data;
|
|
76445
76830
|
} catch (error$1) {
|
|
76831
|
+
const blockFailures = loaderFailures[blockId] ??= {};
|
|
76832
|
+
blockFailures[key] = {
|
|
76833
|
+
endpoint: endpoint$1,
|
|
76834
|
+
params
|
|
76835
|
+
};
|
|
76446
76836
|
if (onError) {
|
|
76447
76837
|
onError(error$1, {
|
|
76448
76838
|
block: block.kind,
|
|
@@ -76456,7 +76846,10 @@ async function prefetchBlockData(page, context, options) {
|
|
|
76456
76846
|
if (tasks.length > 0) {
|
|
76457
76847
|
await Promise.all(tasks);
|
|
76458
76848
|
}
|
|
76459
|
-
return
|
|
76849
|
+
return {
|
|
76850
|
+
resolvedData: results,
|
|
76851
|
+
loaderFailures
|
|
76852
|
+
};
|
|
76460
76853
|
}
|
|
76461
76854
|
|
|
76462
76855
|
//#endregion
|
|
@@ -79569,13 +79962,16 @@ async function listFooterForms(apiClient, siteId) {
|
|
|
79569
79962
|
}));
|
|
79570
79963
|
}
|
|
79571
79964
|
async function getFooterEngagementAuthoringOptions(apiClient, siteId) {
|
|
79572
|
-
const [forms,
|
|
79965
|
+
const [forms, authoringContext] = await Promise.all([listFooterForms(apiClient, siteId), apiClient({
|
|
79573
79966
|
endpoint: "getMailingListAuthoringContext",
|
|
79574
79967
|
params: { siteId }
|
|
79575
79968
|
}).then(unwrapResponse)]);
|
|
79576
79969
|
return {
|
|
79577
79970
|
forms,
|
|
79578
|
-
mailingList
|
|
79971
|
+
mailingList: authoringContext.runtime,
|
|
79972
|
+
expectedMailingListProviderScope: authoringContext.expectedProviderScope,
|
|
79973
|
+
confirmation: authoringContext.confirmation,
|
|
79974
|
+
canManageMailingListSetup: authoringContext.canManageSetup
|
|
79579
79975
|
};
|
|
79580
79976
|
}
|
|
79581
79977
|
async function updateFooterComposition(apiClient, siteId, body) {
|
|
@@ -80255,7 +80651,17 @@ const riverbankSiteConfigInputSchema = z.object({
|
|
|
80255
80651
|
const pushSdkConfigBodySchema = z.object({
|
|
80256
80652
|
config: riverbankSiteConfigInputSchema,
|
|
80257
80653
|
forceContentTypes: z.boolean().optional(),
|
|
80258
|
-
mode: z.enum(["apply", "preview"]).optional()
|
|
80654
|
+
mode: z.enum(["apply", "preview"]).optional(),
|
|
80655
|
+
expectedMailingListProviderScope: z.unknown().transform((value, ctx) => {
|
|
80656
|
+
if (value === undefined) return undefined;
|
|
80657
|
+
const parsed = parseMailingListProviderScope(value);
|
|
80658
|
+
if (parsed.ok) return parsed.value;
|
|
80659
|
+
ctx.addIssue({
|
|
80660
|
+
code: "custom",
|
|
80661
|
+
message: "Invalid mailing-list provider scope"
|
|
80662
|
+
});
|
|
80663
|
+
return z.NEVER;
|
|
80664
|
+
}).optional()
|
|
80259
80665
|
}).strict();
|
|
80260
80666
|
|
|
80261
80667
|
//#endregion
|
|
@@ -81230,6 +81636,7 @@ function resolveEventDestinationMode(input) {
|
|
|
81230
81636
|
const presetOverride = policy.presetOverrides[input.preset];
|
|
81231
81637
|
if (presetOverride) return presetOverride;
|
|
81232
81638
|
}
|
|
81639
|
+
if (input.publicExperience === "hosted_booking") return "system-managed";
|
|
81233
81640
|
return policy.defaultMode;
|
|
81234
81641
|
}
|
|
81235
81642
|
function macadamiaDefaultEventDestinationPolicy(selectedPresets) {
|
|
@@ -82781,7 +83188,8 @@ async function mutateBlockContent(apiClient, args) {
|
|
|
82781
83188
|
if ("data" in args) {
|
|
82782
83189
|
const payload$1 = {
|
|
82783
83190
|
data: args.data,
|
|
82784
|
-
optimistic_hash: args.optimisticHash ?? undefined
|
|
83191
|
+
optimistic_hash: args.optimisticHash ?? undefined,
|
|
83192
|
+
expected_mailing_list_provider_scope: args.expectedMailingListProviderScope
|
|
82785
83193
|
};
|
|
82786
83194
|
return unwrapResponse(await apiClient({
|
|
82787
83195
|
endpoint: "saveBlockContent",
|
|
@@ -82793,7 +83201,8 @@ async function mutateBlockContent(apiClient, args) {
|
|
|
82793
83201
|
const payload = {
|
|
82794
83202
|
path: args.path,
|
|
82795
83203
|
value: args.value,
|
|
82796
|
-
optimistic_hash: args.optimisticHash ?? undefined
|
|
83204
|
+
optimistic_hash: args.optimisticHash ?? undefined,
|
|
83205
|
+
expected_mailing_list_provider_scope: args.expectedMailingListProviderScope
|
|
82797
83206
|
};
|
|
82798
83207
|
return unwrapResponse(await apiClient({
|
|
82799
83208
|
endpoint: "saveBlockContent",
|
|
@@ -83682,11 +84091,12 @@ async function deleteRedirectRule(apiClient, { siteId, ruleId, options }) {
|
|
|
83682
84091
|
|
|
83683
84092
|
//#endregion
|
|
83684
84093
|
//#region ../api/src/billing.ts
|
|
83685
|
-
async function changePlan(apiClient, { planId, interval, prorationBehavior, options }) {
|
|
84094
|
+
async function changePlan(apiClient, { attemptId, planId, interval, prorationBehavior, options }) {
|
|
83686
84095
|
try {
|
|
83687
84096
|
return unwrapResponse(await apiClient({
|
|
83688
84097
|
endpoint: "changePlan",
|
|
83689
84098
|
body: {
|
|
84099
|
+
attemptId,
|
|
83690
84100
|
planId,
|
|
83691
84101
|
interval,
|
|
83692
84102
|
prorationBehavior
|
|
@@ -83697,6 +84107,16 @@ async function changePlan(apiClient, { planId, interval, prorationBehavior, opti
|
|
|
83697
84107
|
return normalizeApiError(error$1, "Failed to update billing plan");
|
|
83698
84108
|
}
|
|
83699
84109
|
}
|
|
84110
|
+
async function createBillingPortalSession(apiClient, options) {
|
|
84111
|
+
try {
|
|
84112
|
+
return unwrapResponse(await apiClient({
|
|
84113
|
+
endpoint: "createBillingPortalSession",
|
|
84114
|
+
options
|
|
84115
|
+
}));
|
|
84116
|
+
} catch (error$1) {
|
|
84117
|
+
return normalizeApiError(error$1, "Failed to open billing details");
|
|
84118
|
+
}
|
|
84119
|
+
}
|
|
83700
84120
|
async function billingCheckout(apiClient, { planId, interval, continuation, options }) {
|
|
83701
84121
|
try {
|
|
83702
84122
|
return unwrapResponse(await apiClient({
|
|
@@ -84287,7 +84707,10 @@ async function adminChangePlan(apiClient, body, options) {
|
|
|
84287
84707
|
try {
|
|
84288
84708
|
return unwrapResponse(await apiClient({
|
|
84289
84709
|
endpoint: "adminChangePlan",
|
|
84290
|
-
body
|
|
84710
|
+
body: {
|
|
84711
|
+
...body,
|
|
84712
|
+
attemptId: body.attemptId ?? crypto.randomUUID()
|
|
84713
|
+
},
|
|
84291
84714
|
options
|
|
84292
84715
|
}));
|
|
84293
84716
|
} catch (error$1) {
|
|
@@ -102630,7 +103053,7 @@ async function loadConfig(configPath, output) {
|
|
|
102630
103053
|
return { errorMessage: "No config path provided." };
|
|
102631
103054
|
}
|
|
102632
103055
|
try {
|
|
102633
|
-
const { loadConfigFile: loadConfigFile$1 } = await import("../load-config-
|
|
103056
|
+
const { loadConfigFile: loadConfigFile$1 } = await import("../load-config-Dgi_eByc.mjs");
|
|
102634
103057
|
const rawConfig = await loadConfigFile$1(configPath);
|
|
102635
103058
|
const parsed = riverbankSiteConfigSchema.safeParse(rawConfig);
|
|
102636
103059
|
if (!parsed.success) {
|