@riverbankcms/sdk 0.77.1 → 0.78.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 +69 -0
- package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-RIKFQ72L.mjs} +4916 -4847
- package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-XO7TUWKK.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +154 -154
- package/dist/_dts/api/src/accessAdmin.d.ts +5 -0
- package/dist/_dts/api/src/billing.d.ts +3 -26
- package/dist/_dts/api/src/bookingVerticals.d.ts +4 -0
- package/dist/_dts/api/src/content-editor.d.ts +1 -0
- package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +14 -2
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
- package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
- package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
- package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
- package/dist/_dts/api/src/navigation.d.ts +12 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
- package/dist/_dts/api/src/staffAccess.d.ts +79 -0
- package/dist/_dts/api/src/types.d.ts +3 -1
- package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +4 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +21 -21
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
- package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -29
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
- package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
- package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
- package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
- package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
- package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
- package/dist/_dts/content-editor/src/index.d.ts +5 -0
- package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/content-model/src/index.d.ts +1 -0
- package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
- package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
- package/dist/_dts/core/src/csv-cells.d.ts +10 -0
- package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
- package/dist/_dts/core/src/csv-escape.d.ts +1 -0
- package/dist/_dts/core/src/csv-filename.d.ts +18 -0
- package/dist/_dts/core/src/csv-render.d.ts +4 -0
- package/dist/_dts/core/src/csv-types.d.ts +116 -0
- package/dist/_dts/core/src/currency-format.d.ts +4 -0
- package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
- package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
- package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
- package/dist/_dts/core/src/duration.d.ts +14 -0
- package/dist/_dts/core/src/email-format.d.ts +10 -0
- package/dist/_dts/core/src/field-errors.d.ts +1 -0
- package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
- package/dist/_dts/core/src/index.d.ts +20 -0
- package/dist/_dts/core/src/number-input.d.ts +22 -0
- package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
- package/dist/_dts/core/src/slug.d.ts +39 -0
- package/dist/_dts/core/src/string.d.ts +19 -0
- package/dist/_dts/core/src/uuid.d.ts +6 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
- package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
- package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
- package/dist/_dts/media-core/src/filename.d.ts +1 -0
- package/dist/_dts/media-core/src/index.d.ts +10 -0
- package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
- package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
- package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
- package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +8 -0
- package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
- package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
- package/dist/_dts/sdk/src/client/error.d.ts +3 -0
- package/dist/_dts/sdk/src/client/index.d.ts +2 -2
- package/dist/_dts/sdk/src/client/types.d.ts +37 -19
- package/dist/_dts/sdk/src/index.d.ts +2 -2
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
- package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
- package/dist/_dts/sdk/src/next/index.d.ts +2 -1
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
- package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +12 -12
- package/dist/_dts/site-commands/src/index.d.ts +1 -0
- package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
- package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +3 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
- package/dist/_dts/theme-core/src/schema.d.ts +64 -18
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
- package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
- package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
- package/dist/{chunk-2SPENC5M.mjs → chunk-F7RTCZYN.mjs} +229 -50
- package/dist/{chunk-IENWFSLO.mjs → chunk-NIDXI46P.mjs} +1 -1
- package/dist/{chunk-KWJPDZH2.mjs → chunk-OECWLDHN.mjs} +2770 -620
- package/dist/{chunk-VX7B5VAC.mjs → chunk-SVMMM2NA.mjs} +8 -0
- package/dist/{chunk-6SMUFTXD.mjs → chunk-SXOLGNMX.mjs} +1 -1
- package/dist/{chunk-ZYEJLCTN.mjs → chunk-TXDES5P2.mjs} +2 -2
- package/dist/cli/index.mjs +1677 -440
- package/dist/client/{accordion-RZMQSYLR.mjs → accordion-EVDEOUPR.mjs} +2 -2
- package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-DIHBLC64.mjs} +27 -30
- package/dist/client/bookings.mjs +3707 -259
- package/dist/client/{carousel-LDX47ZIK.mjs → carousel-FEBQHIWI.mjs} +3 -4
- package/dist/client/{cart-RGXDS5F4.mjs → cart-7CKSXAE4.mjs} +8 -8
- package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WKYCANLV.mjs} +8 -8
- package/dist/client/{chunk-JNC7CGHX.mjs → chunk-2SAVKN2M.mjs} +2 -2
- package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-36WJCERQ.mjs} +1 -1
- package/dist/client/{chunk-R56FQ3RR.mjs → chunk-65F47D7Y.mjs} +280 -71
- package/dist/client/{chunk-L3DNHIJX.mjs → chunk-GUK2FPXQ.mjs} +23 -45
- package/dist/client/{chunk-PMAIXMAB.mjs → chunk-IVNCUVAV.mjs} +26 -21
- package/dist/client/{chunk-II7O4XN3.mjs → chunk-OFMSCGNY.mjs} +2 -2
- package/dist/client/chunk-PD6NBCEY.mjs +66 -0
- package/dist/client/{chunk-GMVTOKYG.mjs → chunk-RV6FX7UH.mjs} +510 -64
- package/dist/client/{chunk-E2TDNXCL.mjs → chunk-RZDWX7QW.mjs} +2 -1
- package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
- package/dist/client/{chunk-JEZECJ3W.mjs → chunk-VPPMNXCF.mjs} +129 -3
- package/dist/client/{chunk-UFSWADAO.mjs → chunk-YDSEG6GZ.mjs} +5 -66
- package/dist/client/client.mjs +7070 -4561
- package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-5QF2PHKM.mjs} +14 -11
- package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-4ZOSETDU.mjs} +9 -9
- package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-WQGU7JUX.mjs} +9 -9
- package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-AYWVUJ5Y.mjs} +9 -9
- package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-NT7C6UT5.mjs} +9 -9
- package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-OH24F4ZJ.mjs} +9 -9
- package/dist/client/{form-ETFZFATW.mjs → form-7L42SRBB.mjs} +6 -6
- package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-OZRZNZ52.mjs} +3 -3
- package/dist/client/hooks.mjs +1040 -278
- package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-ZBXRPQ7C.mjs} +2 -2
- package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-SNAGFF2I.mjs} +3 -3
- package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-I46BOFGV.mjs} +8 -8
- package/dist/client/{productList-A5RO5WIS.mjs → productList-BOYHTYI6.mjs} +8 -8
- package/dist/client/rendering/client.mjs +7090 -2645
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +6089 -3792
- package/dist/client/{shop-L4MZH4I2.mjs → shop-XTXPZTKR.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +8 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/editor-chrome.css +10 -0
- package/dist/preview-next/middleware.mjs +8 -0
- package/dist/{sdk-runtime-6UT2S7KZ.mjs → sdk-runtime-ZJLKC6DR.mjs} +6 -6
- package/dist/server/components.mjs +2635 -1262
- package/dist/server/config-validation.mjs +1271 -509
- package/dist/server/config.mjs +1271 -509
- package/dist/server/data.mjs +1040 -278
- package/dist/server/index.mjs +488 -246
- package/dist/server/next.mjs +4087 -2147
- package/dist/server/page-converter.mjs +571 -115
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2636 -1263
- package/dist/server/rendering.mjs +2654 -1268
- package/dist/server/routing.mjs +1729 -489
- package/dist/server/server.mjs +1532 -530
- package/dist/server/theme-bridge.mjs +3151 -131
- package/dist/server/theme.mjs +10 -1
- package/dist/styles/index.css +488 -48
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
- package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
- package/dist/client/chunk-OJPZEZU2.mjs +0 -31
- package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
package/dist/server/server.mjs
CHANGED
|
@@ -3955,6 +3955,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3955
3955
|
responseKind: "json",
|
|
3956
3956
|
errors: []
|
|
3957
3957
|
},
|
|
3958
|
+
applyDiscountCode: {
|
|
3959
|
+
path: "/public/sites/{siteId}/bookings/discounts/apply",
|
|
3960
|
+
method: "POST",
|
|
3961
|
+
tags: ["site-{siteId}", "booking-discounts"],
|
|
3962
|
+
auth: "public",
|
|
3963
|
+
responseKind: "json",
|
|
3964
|
+
errors: ["validation:invalid_input", "rate_limit:exceeded"]
|
|
3965
|
+
},
|
|
3958
3966
|
// Batch endpoint for block loader requests (reduces SSR fan-out)
|
|
3959
3967
|
batchBlockLoaders: {
|
|
3960
3968
|
path: "/public/sites/{siteId}/block-loaders/batch",
|
|
@@ -6842,7 +6850,7 @@ var SimpleCache = class {
|
|
|
6842
6850
|
};
|
|
6843
6851
|
|
|
6844
6852
|
// src/version.ts
|
|
6845
|
-
var SDK_VERSION = "0.
|
|
6853
|
+
var SDK_VERSION = "0.78.0";
|
|
6846
6854
|
|
|
6847
6855
|
// src/client/error.ts
|
|
6848
6856
|
var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
@@ -6987,6 +6995,16 @@ var RiverbankApiError = class _RiverbankApiError extends Error {
|
|
|
6987
6995
|
return lines.join("\n");
|
|
6988
6996
|
}
|
|
6989
6997
|
};
|
|
6998
|
+
var resilienceStatusSymbol = /* @__PURE__ */ Symbol.for("riverbankcms.sdk.resilienceStatus");
|
|
6999
|
+
function attachResilienceStatusToError(error, resilienceStatus) {
|
|
7000
|
+
const target = error !== null && (typeof error === "object" || typeof error === "function") ? error : new Error(error === void 0 ? "Unknown error" : String(error));
|
|
7001
|
+
Object.defineProperty(target, resilienceStatusSymbol, {
|
|
7002
|
+
configurable: true,
|
|
7003
|
+
enumerable: false,
|
|
7004
|
+
value: resilienceStatus
|
|
7005
|
+
});
|
|
7006
|
+
return target;
|
|
7007
|
+
}
|
|
6990
7008
|
|
|
6991
7009
|
// src/client/resilience.ts
|
|
6992
7010
|
var DEFAULT_RETRY_CONFIG = {
|
|
@@ -7245,7 +7263,9 @@ var CircuitOpenError = class extends Error {
|
|
|
7245
7263
|
var prebuildModule = null;
|
|
7246
7264
|
function tryRequire(modulePath) {
|
|
7247
7265
|
try {
|
|
7248
|
-
const req = Function(
|
|
7266
|
+
const req = Function(
|
|
7267
|
+
'return typeof require === "function" ? require : null'
|
|
7268
|
+
)();
|
|
7249
7269
|
return req ? req(modulePath) : null;
|
|
7250
7270
|
} catch {
|
|
7251
7271
|
return null;
|
|
@@ -7264,7 +7284,9 @@ function getPrebuildModule() {
|
|
|
7264
7284
|
return null;
|
|
7265
7285
|
}
|
|
7266
7286
|
try {
|
|
7267
|
-
prebuildModule = tryRequire(
|
|
7287
|
+
prebuildModule = tryRequire(
|
|
7288
|
+
"../prebuild/loader"
|
|
7289
|
+
);
|
|
7268
7290
|
return prebuildModule;
|
|
7269
7291
|
} catch {
|
|
7270
7292
|
return null;
|
|
@@ -7324,7 +7346,9 @@ function normalizePublicFormResult(result) {
|
|
|
7324
7346
|
}
|
|
7325
7347
|
function normalizePublicFormsResponse(response) {
|
|
7326
7348
|
return {
|
|
7327
|
-
forms: response.forms.map(
|
|
7349
|
+
forms: response.forms.map(
|
|
7350
|
+
(form2) => normalizePublicFormResponse({ form: form2 }).form
|
|
7351
|
+
)
|
|
7328
7352
|
};
|
|
7329
7353
|
}
|
|
7330
7354
|
function normalizePublicFormsResult(result) {
|
|
@@ -7523,7 +7547,10 @@ function createRiverbankClient(config) {
|
|
|
7523
7547
|
isDegraded = nowDegraded;
|
|
7524
7548
|
config.resilience?.onDegradedMode?.(nowDegraded, status);
|
|
7525
7549
|
}
|
|
7526
|
-
return
|
|
7550
|
+
return {
|
|
7551
|
+
data,
|
|
7552
|
+
resilience: status
|
|
7553
|
+
};
|
|
7527
7554
|
}
|
|
7528
7555
|
async function resilientFetch(cacheKey, fetcher, options) {
|
|
7529
7556
|
const requestId = generateRequestId2();
|
|
@@ -7547,25 +7574,43 @@ function createRiverbankClient(config) {
|
|
|
7547
7574
|
if (allowFallbacks && !isPreview && staleIfError) {
|
|
7548
7575
|
const stale = cache.getStale(cacheKey);
|
|
7549
7576
|
if (stale) {
|
|
7550
|
-
return emitStatus(
|
|
7551
|
-
|
|
7552
|
-
|
|
7553
|
-
|
|
7577
|
+
return emitStatus(
|
|
7578
|
+
"stale",
|
|
7579
|
+
stale.value,
|
|
7580
|
+
statusDetails({
|
|
7581
|
+
staleAgeSec: stale.staleAgeSec,
|
|
7582
|
+
error: {
|
|
7583
|
+
code: "circuit_open",
|
|
7584
|
+
message: "Circuit breaker is open"
|
|
7585
|
+
}
|
|
7586
|
+
})
|
|
7587
|
+
);
|
|
7554
7588
|
}
|
|
7555
7589
|
}
|
|
7556
7590
|
if (allowFallbacks && !isPreview && options.prebuildFallback) {
|
|
7557
7591
|
const prebuildResult = options.prebuildFallback();
|
|
7558
7592
|
if (prebuildResult) {
|
|
7559
|
-
return emitStatus(
|
|
7560
|
-
|
|
7561
|
-
|
|
7562
|
-
|
|
7593
|
+
return emitStatus(
|
|
7594
|
+
"prebuild",
|
|
7595
|
+
prebuildResult.data,
|
|
7596
|
+
statusDetails({
|
|
7597
|
+
prebuildAgeSec: prebuildResult.prebuildAgeSec,
|
|
7598
|
+
error: {
|
|
7599
|
+
code: "circuit_open",
|
|
7600
|
+
message: "Circuit breaker is open"
|
|
7601
|
+
}
|
|
7602
|
+
})
|
|
7603
|
+
);
|
|
7563
7604
|
}
|
|
7564
7605
|
}
|
|
7565
7606
|
const circuitState = circuitBreaker.getState();
|
|
7566
|
-
emitStatus(
|
|
7567
|
-
error
|
|
7568
|
-
|
|
7607
|
+
emitStatus(
|
|
7608
|
+
"error",
|
|
7609
|
+
null,
|
|
7610
|
+
statusDetails({
|
|
7611
|
+
error: { code: "circuit_open", message: "Circuit breaker is open" }
|
|
7612
|
+
})
|
|
7613
|
+
);
|
|
7569
7614
|
throw new CircuitOpenError(circuitState);
|
|
7570
7615
|
}
|
|
7571
7616
|
try {
|
|
@@ -7592,7 +7637,9 @@ function createRiverbankClient(config) {
|
|
|
7592
7637
|
circuitBreaker.recordSuccess();
|
|
7593
7638
|
} else {
|
|
7594
7639
|
try {
|
|
7595
|
-
const response = await fetcher(
|
|
7640
|
+
const response = await fetcher(
|
|
7641
|
+
options.signal ?? new AbortController().signal
|
|
7642
|
+
);
|
|
7596
7643
|
data = unwrapResponse(response);
|
|
7597
7644
|
} catch (error) {
|
|
7598
7645
|
convertToTypedError(error);
|
|
@@ -7609,28 +7656,51 @@ function createRiverbankClient(config) {
|
|
|
7609
7656
|
if (allowFallbacks && !isPreview && staleIfError && cacheEnabled) {
|
|
7610
7657
|
const stale = cache.getStale(cacheKey);
|
|
7611
7658
|
if (stale) {
|
|
7612
|
-
const errorInfo2 = error instanceof RiverbankApiError ? {
|
|
7613
|
-
|
|
7614
|
-
|
|
7615
|
-
|
|
7616
|
-
}
|
|
7659
|
+
const errorInfo2 = error instanceof RiverbankApiError ? {
|
|
7660
|
+
code: error.code,
|
|
7661
|
+
message: error.message,
|
|
7662
|
+
status: error.status
|
|
7663
|
+
} : { message: error.message };
|
|
7664
|
+
return emitStatus(
|
|
7665
|
+
"stale",
|
|
7666
|
+
stale.value,
|
|
7667
|
+
statusDetails({
|
|
7668
|
+
staleAgeSec: stale.staleAgeSec,
|
|
7669
|
+
error: errorInfo2
|
|
7670
|
+
})
|
|
7671
|
+
);
|
|
7617
7672
|
}
|
|
7618
7673
|
}
|
|
7619
7674
|
if (allowFallbacks && !isPreview && options.prebuildFallback) {
|
|
7620
7675
|
const prebuildResult = options.prebuildFallback();
|
|
7621
7676
|
if (prebuildResult) {
|
|
7622
|
-
const errorInfo2 = error instanceof RiverbankApiError ? {
|
|
7623
|
-
|
|
7624
|
-
|
|
7625
|
-
|
|
7626
|
-
}
|
|
7677
|
+
const errorInfo2 = error instanceof RiverbankApiError ? {
|
|
7678
|
+
code: error.code,
|
|
7679
|
+
message: error.message,
|
|
7680
|
+
status: error.status
|
|
7681
|
+
} : { message: error.message };
|
|
7682
|
+
return emitStatus(
|
|
7683
|
+
"prebuild",
|
|
7684
|
+
prebuildResult.data,
|
|
7685
|
+
statusDetails({
|
|
7686
|
+
prebuildAgeSec: prebuildResult.prebuildAgeSec,
|
|
7687
|
+
error: errorInfo2
|
|
7688
|
+
})
|
|
7689
|
+
);
|
|
7627
7690
|
}
|
|
7628
7691
|
}
|
|
7629
|
-
const errorInfo = error instanceof RiverbankApiError ? { code: error.code, message: error.message } : { message: error.message };
|
|
7630
|
-
|
|
7631
|
-
|
|
7692
|
+
const errorInfo = error instanceof RiverbankApiError ? { code: error.code, message: error.message, status: error.status } : { message: error.message };
|
|
7693
|
+
const failure = emitStatus(
|
|
7694
|
+
"error",
|
|
7695
|
+
null,
|
|
7696
|
+
statusDetails({ error: errorInfo })
|
|
7697
|
+
);
|
|
7698
|
+
throw attachResilienceStatusToError(error, failure.resilience);
|
|
7632
7699
|
}
|
|
7633
7700
|
}
|
|
7701
|
+
async function resilientFetchData(cacheKey, fetcher, options) {
|
|
7702
|
+
return (await resilientFetch(cacheKey, fetcher, options)).data;
|
|
7703
|
+
}
|
|
7634
7704
|
function combineAbortSignals(...signals) {
|
|
7635
7705
|
const controller = new AbortController();
|
|
7636
7706
|
for (const signal of signals) {
|
|
@@ -7638,32 +7708,45 @@ function createRiverbankClient(config) {
|
|
|
7638
7708
|
controller.abort(signal.reason);
|
|
7639
7709
|
break;
|
|
7640
7710
|
}
|
|
7641
|
-
signal.addEventListener("abort", () => controller.abort(signal.reason), {
|
|
7711
|
+
signal.addEventListener("abort", () => controller.abort(signal.reason), {
|
|
7712
|
+
once: true
|
|
7713
|
+
});
|
|
7642
7714
|
}
|
|
7643
7715
|
return controller.signal;
|
|
7644
7716
|
}
|
|
7645
7717
|
async function resolveEntrySubrouteInternal(args) {
|
|
7646
7718
|
const { siteId, entryId, kind, segment, stage, signal } = args;
|
|
7647
7719
|
const cacheKey = `entry-subroute:${siteId}:${entryId}:${kind}:${segment}:${stage ?? "published"}`;
|
|
7648
|
-
return
|
|
7649
|
-
|
|
7650
|
-
|
|
7651
|
-
|
|
7652
|
-
|
|
7653
|
-
|
|
7654
|
-
|
|
7720
|
+
return resilientFetchData(
|
|
7721
|
+
cacheKey,
|
|
7722
|
+
async (sig) => {
|
|
7723
|
+
return await apiClient({
|
|
7724
|
+
endpoint: "resolveEntrySubroute",
|
|
7725
|
+
params: {
|
|
7726
|
+
siteId,
|
|
7727
|
+
entryId,
|
|
7728
|
+
kind,
|
|
7729
|
+
segment,
|
|
7730
|
+
...stage ? { stage } : {}
|
|
7731
|
+
},
|
|
7732
|
+
options: { signal: sig }
|
|
7733
|
+
});
|
|
7734
|
+
},
|
|
7735
|
+
{ signal }
|
|
7736
|
+
);
|
|
7655
7737
|
}
|
|
7656
|
-
|
|
7657
|
-
|
|
7658
|
-
|
|
7659
|
-
|
|
7660
|
-
|
|
7661
|
-
|
|
7662
|
-
|
|
7663
|
-
|
|
7664
|
-
|
|
7665
|
-
|
|
7666
|
-
|
|
7738
|
+
async function getSiteWithResilienceInternal(params) {
|
|
7739
|
+
const { slug, domain, id, signal, force, currentPath } = params;
|
|
7740
|
+
if (!slug && !domain && !id) {
|
|
7741
|
+
throw new Error(
|
|
7742
|
+
`getSite() requires at least one identifier: slug, domain, or id. Received: ${JSON.stringify(params)}`
|
|
7743
|
+
);
|
|
7744
|
+
}
|
|
7745
|
+
const cacheKey = `site:${slug || domain || id}:${currentPath ?? ""}`;
|
|
7746
|
+
const siteId = id || slug || domain;
|
|
7747
|
+
return resilientFetch(
|
|
7748
|
+
cacheKey,
|
|
7749
|
+
async (sig) => {
|
|
7667
7750
|
const apiParams = {};
|
|
7668
7751
|
if (params.slug) apiParams.slug = params.slug;
|
|
7669
7752
|
if (params.domain) apiParams.domain = params.domain;
|
|
@@ -7674,66 +7757,120 @@ function createRiverbankClient(config) {
|
|
|
7674
7757
|
endpoint: "getSite",
|
|
7675
7758
|
params: apiParams,
|
|
7676
7759
|
// When force=true, bypass Next.js fetch caching (revalidate) as well.
|
|
7677
|
-
options: {
|
|
7760
|
+
options: {
|
|
7761
|
+
signal: sig,
|
|
7762
|
+
...force ? { cache: "no-store" } : {}
|
|
7763
|
+
}
|
|
7678
7764
|
});
|
|
7679
|
-
},
|
|
7765
|
+
},
|
|
7766
|
+
{
|
|
7680
7767
|
signal,
|
|
7681
7768
|
force,
|
|
7682
7769
|
prebuildFallback: prebuildLoader && siteId ? () => prebuildLoader.loadSite(siteId) : void 0
|
|
7683
|
-
}
|
|
7684
|
-
|
|
7685
|
-
|
|
7686
|
-
|
|
7687
|
-
|
|
7688
|
-
|
|
7689
|
-
|
|
7690
|
-
|
|
7770
|
+
}
|
|
7771
|
+
);
|
|
7772
|
+
}
|
|
7773
|
+
async function getPageWithResilienceInternal(params) {
|
|
7774
|
+
const { siteId, path, preview = false, signal } = params;
|
|
7775
|
+
const cacheKey = `page:${siteId}:${path}:${preview}`;
|
|
7776
|
+
return resilientFetch(
|
|
7777
|
+
cacheKey,
|
|
7778
|
+
async (sig) => {
|
|
7779
|
+
return await apiClient({
|
|
7780
|
+
endpoint: "getContentByPath",
|
|
7781
|
+
params: { siteId },
|
|
7782
|
+
body: { path, preview },
|
|
7783
|
+
options: { signal: sig }
|
|
7784
|
+
});
|
|
7785
|
+
},
|
|
7786
|
+
{
|
|
7691
7787
|
preview,
|
|
7692
7788
|
signal,
|
|
7693
7789
|
// Prebuild fallback only for published pages (not preview)
|
|
7694
7790
|
prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadPage(siteId, path) : void 0
|
|
7695
|
-
}
|
|
7791
|
+
}
|
|
7792
|
+
);
|
|
7793
|
+
}
|
|
7794
|
+
return {
|
|
7795
|
+
async getSite(params) {
|
|
7796
|
+
return (await getSiteWithResilienceInternal(params)).data;
|
|
7797
|
+
},
|
|
7798
|
+
async getSiteWithResilience(params) {
|
|
7799
|
+
return getSiteWithResilienceInternal(params);
|
|
7800
|
+
},
|
|
7801
|
+
async getPage(params) {
|
|
7802
|
+
return (await getPageWithResilienceInternal(params)).data;
|
|
7803
|
+
},
|
|
7804
|
+
async getPageWithResilience(params) {
|
|
7805
|
+
return getPageWithResilienceInternal(params);
|
|
7696
7806
|
},
|
|
7697
7807
|
async getEntries(params) {
|
|
7698
|
-
const {
|
|
7808
|
+
const {
|
|
7809
|
+
siteId,
|
|
7810
|
+
contentType,
|
|
7811
|
+
limit,
|
|
7812
|
+
offset,
|
|
7813
|
+
order,
|
|
7814
|
+
preview = false,
|
|
7815
|
+
mode,
|
|
7816
|
+
entryIds,
|
|
7817
|
+
includeMeta,
|
|
7818
|
+
signal
|
|
7819
|
+
} = params;
|
|
7699
7820
|
const entryIdsCacheKey = mode === "manual" && entryIds?.length ? entryIds.join(",") : "";
|
|
7700
7821
|
const cacheKey = `entries:${siteId}:${contentType}:${limit ?? ""}:${offset ?? ""}:${order ?? ""}:${preview}:${mode ?? ""}:${entryIdsCacheKey}:${includeMeta ?? ""}`;
|
|
7701
|
-
return
|
|
7702
|
-
|
|
7703
|
-
|
|
7704
|
-
orderParam
|
|
7705
|
-
|
|
7706
|
-
|
|
7707
|
-
|
|
7708
|
-
|
|
7709
|
-
|
|
7710
|
-
|
|
7711
|
-
siteId,
|
|
7712
|
-
type: contentType,
|
|
7713
|
-
...typeof limit === "number" && { limit: String(limit) },
|
|
7714
|
-
...typeof offset === "number" && { offset: String(offset) },
|
|
7715
|
-
...includeMeta && { meta: "true" },
|
|
7716
|
-
...orderParam && { order: orderParam },
|
|
7717
|
-
...preview && { stage: "preview" },
|
|
7718
|
-
...mode === "manual" && entryIds?.length && {
|
|
7719
|
-
mode: "manual",
|
|
7720
|
-
entryIds: JSON.stringify(entryIds)
|
|
7822
|
+
return resilientFetchData(
|
|
7823
|
+
cacheKey,
|
|
7824
|
+
async (sig) => {
|
|
7825
|
+
let orderParam;
|
|
7826
|
+
if (order === "newest") {
|
|
7827
|
+
orderParam = "published_at.desc";
|
|
7828
|
+
} else if (order === "oldest") {
|
|
7829
|
+
orderParam = "published_at.asc";
|
|
7830
|
+
} else if (order === "title") {
|
|
7831
|
+
orderParam = "title.asc";
|
|
7721
7832
|
}
|
|
7722
|
-
|
|
7723
|
-
|
|
7724
|
-
|
|
7725
|
-
|
|
7726
|
-
|
|
7727
|
-
|
|
7728
|
-
|
|
7729
|
-
|
|
7833
|
+
const apiParams = {
|
|
7834
|
+
siteId,
|
|
7835
|
+
type: contentType,
|
|
7836
|
+
...typeof limit === "number" && { limit: String(limit) },
|
|
7837
|
+
...typeof offset === "number" && { offset: String(offset) },
|
|
7838
|
+
...includeMeta && { meta: "true" },
|
|
7839
|
+
...orderParam && { order: orderParam },
|
|
7840
|
+
...preview && { stage: "preview" },
|
|
7841
|
+
...mode === "manual" && entryIds?.length && {
|
|
7842
|
+
mode: "manual",
|
|
7843
|
+
entryIds: JSON.stringify(entryIds)
|
|
7844
|
+
}
|
|
7845
|
+
};
|
|
7846
|
+
return await apiClient({
|
|
7847
|
+
endpoint: "listPublishedEntries",
|
|
7848
|
+
params: apiParams,
|
|
7849
|
+
options: { signal: sig }
|
|
7850
|
+
});
|
|
7851
|
+
},
|
|
7852
|
+
{
|
|
7853
|
+
preview,
|
|
7854
|
+
signal,
|
|
7855
|
+
// Prebuild fallback only for published entries (not preview, not manual mode)
|
|
7856
|
+
prebuildFallback: prebuildLoader && !preview ? () => prebuildLoader.loadEntries(siteId, params) : void 0
|
|
7857
|
+
}
|
|
7858
|
+
);
|
|
7730
7859
|
},
|
|
7731
7860
|
async getEntry(params) {
|
|
7732
7861
|
const { siteId, contentType, slug, signal } = params;
|
|
7733
7862
|
const cacheKey = `entry:${siteId}:${contentType}:${slug}`;
|
|
7734
|
-
return
|
|
7735
|
-
|
|
7736
|
-
|
|
7863
|
+
return resilientFetchData(
|
|
7864
|
+
cacheKey,
|
|
7865
|
+
async (sig) => {
|
|
7866
|
+
return await apiClient({
|
|
7867
|
+
endpoint: "getPublishedEntryPreview",
|
|
7868
|
+
params: { siteId, type: contentType, slug },
|
|
7869
|
+
options: { signal: sig }
|
|
7870
|
+
});
|
|
7871
|
+
},
|
|
7872
|
+
{ signal }
|
|
7873
|
+
);
|
|
7737
7874
|
},
|
|
7738
7875
|
async getPublicFormById(params) {
|
|
7739
7876
|
const { formId, siteId, signal } = params;
|
|
@@ -7741,10 +7878,18 @@ function createRiverbankClient(config) {
|
|
|
7741
7878
|
throw new Error("getPublicFormById() requires formId and siteId");
|
|
7742
7879
|
}
|
|
7743
7880
|
const cacheKey = `public-form:${siteId}:${formId}`;
|
|
7744
|
-
return
|
|
7745
|
-
|
|
7746
|
-
|
|
7747
|
-
|
|
7881
|
+
return resilientFetchData(
|
|
7882
|
+
cacheKey,
|
|
7883
|
+
async (sig) => {
|
|
7884
|
+
const response = await apiClient({
|
|
7885
|
+
endpoint: "getPublicFormById",
|
|
7886
|
+
params: { formId, siteId },
|
|
7887
|
+
options: { signal: sig }
|
|
7888
|
+
});
|
|
7889
|
+
return normalizePublicFormResult(response);
|
|
7890
|
+
},
|
|
7891
|
+
{ signal }
|
|
7892
|
+
);
|
|
7748
7893
|
},
|
|
7749
7894
|
async getForms(params) {
|
|
7750
7895
|
const { siteId, signal } = params;
|
|
@@ -7752,34 +7897,42 @@ function createRiverbankClient(config) {
|
|
|
7752
7897
|
throw new Error("getForms() requires siteId");
|
|
7753
7898
|
}
|
|
7754
7899
|
const cacheKey = `forms:${siteId}`;
|
|
7755
|
-
return
|
|
7756
|
-
|
|
7757
|
-
|
|
7758
|
-
|
|
7759
|
-
|
|
7760
|
-
|
|
7761
|
-
|
|
7762
|
-
|
|
7763
|
-
|
|
7764
|
-
|
|
7765
|
-
|
|
7766
|
-
|
|
7767
|
-
|
|
7768
|
-
|
|
7769
|
-
|
|
7770
|
-
|
|
7771
|
-
|
|
7772
|
-
|
|
7773
|
-
|
|
7774
|
-
|
|
7775
|
-
|
|
7776
|
-
|
|
7777
|
-
|
|
7778
|
-
|
|
7779
|
-
|
|
7780
|
-
|
|
7781
|
-
|
|
7782
|
-
|
|
7900
|
+
return resilientFetchData(
|
|
7901
|
+
cacheKey,
|
|
7902
|
+
async (sig) => {
|
|
7903
|
+
const response = await apiClient({
|
|
7904
|
+
endpoint: "listPublicForms",
|
|
7905
|
+
params: { siteId },
|
|
7906
|
+
options: { signal: sig }
|
|
7907
|
+
});
|
|
7908
|
+
return normalizePublicFormsResult(response);
|
|
7909
|
+
},
|
|
7910
|
+
{
|
|
7911
|
+
signal,
|
|
7912
|
+
prebuildFallback: prebuildLoader ? () => {
|
|
7913
|
+
const result = prebuildLoader.loadForms();
|
|
7914
|
+
if (result) {
|
|
7915
|
+
return {
|
|
7916
|
+
data: {
|
|
7917
|
+
forms: result.data.map((form2) => ({
|
|
7918
|
+
id: form2.id,
|
|
7919
|
+
slug: form2.slug,
|
|
7920
|
+
name: form2.name,
|
|
7921
|
+
schema: form2.schema,
|
|
7922
|
+
settings: form2.settings,
|
|
7923
|
+
schemaJson: form2.schema,
|
|
7924
|
+
settingsJson: form2.settings,
|
|
7925
|
+
createdAt: null,
|
|
7926
|
+
updatedAt: null
|
|
7927
|
+
}))
|
|
7928
|
+
},
|
|
7929
|
+
prebuildAgeSec: result.prebuildAgeSec
|
|
7930
|
+
};
|
|
7931
|
+
}
|
|
7932
|
+
return null;
|
|
7933
|
+
} : void 0
|
|
7934
|
+
}
|
|
7935
|
+
);
|
|
7783
7936
|
},
|
|
7784
7937
|
async getPublicBookingServices(params) {
|
|
7785
7938
|
const { siteId, ids, signal } = params;
|
|
@@ -7787,13 +7940,21 @@ function createRiverbankClient(config) {
|
|
|
7787
7940
|
throw new Error("getPublicBookingServices() requires siteId");
|
|
7788
7941
|
}
|
|
7789
7942
|
const cacheKey = `public-booking-services:${siteId}:${ids ?? ""}`;
|
|
7790
|
-
return
|
|
7791
|
-
|
|
7792
|
-
|
|
7793
|
-
|
|
7794
|
-
|
|
7795
|
-
|
|
7796
|
-
|
|
7943
|
+
return resilientFetchData(
|
|
7944
|
+
cacheKey,
|
|
7945
|
+
async (sig) => {
|
|
7946
|
+
const apiParams = {
|
|
7947
|
+
siteId,
|
|
7948
|
+
...ids && { ids }
|
|
7949
|
+
};
|
|
7950
|
+
return await apiClient({
|
|
7951
|
+
endpoint: "getPublicBookingServices",
|
|
7952
|
+
params: apiParams,
|
|
7953
|
+
options: { signal: sig }
|
|
7954
|
+
});
|
|
7955
|
+
},
|
|
7956
|
+
{ signal }
|
|
7957
|
+
);
|
|
7797
7958
|
},
|
|
7798
7959
|
async listPublicEvents(params) {
|
|
7799
7960
|
const {
|
|
@@ -7814,22 +7975,30 @@ function createRiverbankClient(config) {
|
|
|
7814
7975
|
throw new Error("listPublicEvents() requires siteId");
|
|
7815
7976
|
}
|
|
7816
7977
|
const cacheKey = `public-events:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${kind ?? ""}:${entryId ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`;
|
|
7817
|
-
return
|
|
7818
|
-
|
|
7819
|
-
|
|
7820
|
-
|
|
7821
|
-
|
|
7822
|
-
|
|
7823
|
-
|
|
7824
|
-
|
|
7825
|
-
|
|
7826
|
-
|
|
7827
|
-
|
|
7828
|
-
|
|
7829
|
-
|
|
7830
|
-
|
|
7831
|
-
|
|
7832
|
-
|
|
7978
|
+
return resilientFetchData(
|
|
7979
|
+
cacheKey,
|
|
7980
|
+
async (sig) => {
|
|
7981
|
+
const apiParams = {
|
|
7982
|
+
siteId,
|
|
7983
|
+
...typeof limit === "number" && { limit: String(limit) },
|
|
7984
|
+
...from && { from },
|
|
7985
|
+
...to && { to },
|
|
7986
|
+
...stage && { stage },
|
|
7987
|
+
...categoryIds && { categoryIds },
|
|
7988
|
+
...venueId && { venueId },
|
|
7989
|
+
...kind && { kind },
|
|
7990
|
+
...entryId && { entryId },
|
|
7991
|
+
...seriesId && { seriesId },
|
|
7992
|
+
...includeOccurrenceId && { includeOccurrenceId }
|
|
7993
|
+
};
|
|
7994
|
+
return await apiClient({
|
|
7995
|
+
endpoint: "listPublicEvents",
|
|
7996
|
+
params: apiParams,
|
|
7997
|
+
options: { signal: sig }
|
|
7998
|
+
});
|
|
7999
|
+
},
|
|
8000
|
+
{ signal }
|
|
8001
|
+
);
|
|
7833
8002
|
},
|
|
7834
8003
|
async getPublicEventDetails(params) {
|
|
7835
8004
|
const {
|
|
@@ -7853,37 +8022,44 @@ function createRiverbankClient(config) {
|
|
|
7853
8022
|
throw new Error("getPublicEventDetails() requires siteId");
|
|
7854
8023
|
}
|
|
7855
8024
|
const cacheKey = `public-event-details:${siteId}:${limit ?? ""}:${from ?? ""}:${to ?? ""}:${afterStartsAt ?? ""}:${afterId ?? ""}:${stage ?? ""}:${categoryIds ?? ""}:${venueId ?? ""}:${staffMemberId ?? ""}:${kind ?? ""}:${entryId ?? ""}:${seriesId ?? ""}:${includeOccurrenceId ?? ""}`;
|
|
7856
|
-
return
|
|
7857
|
-
|
|
7858
|
-
|
|
7859
|
-
|
|
7860
|
-
|
|
7861
|
-
|
|
7862
|
-
|
|
7863
|
-
|
|
7864
|
-
|
|
7865
|
-
|
|
7866
|
-
|
|
7867
|
-
|
|
7868
|
-
|
|
7869
|
-
|
|
7870
|
-
|
|
7871
|
-
|
|
7872
|
-
|
|
7873
|
-
|
|
7874
|
-
|
|
7875
|
-
|
|
7876
|
-
|
|
7877
|
-
|
|
7878
|
-
|
|
8025
|
+
return resilientFetchData(
|
|
8026
|
+
cacheKey,
|
|
8027
|
+
async (sig) => {
|
|
8028
|
+
const requestId = "eventDetails";
|
|
8029
|
+
const response = await apiClient({
|
|
8030
|
+
endpoint: "batchBlockLoaders",
|
|
8031
|
+
params: { siteId, ...stage && { stage } },
|
|
8032
|
+
body: {
|
|
8033
|
+
requests: [
|
|
8034
|
+
{
|
|
8035
|
+
id: requestId,
|
|
8036
|
+
endpoint: "getPublicEventDetails",
|
|
8037
|
+
params: {
|
|
8038
|
+
...typeof limit === "number" && { limit: String(limit) },
|
|
8039
|
+
...from && { from },
|
|
8040
|
+
...to && { to },
|
|
8041
|
+
...afterStartsAt && { afterStartsAt },
|
|
8042
|
+
...afterId && { afterId },
|
|
8043
|
+
...categoryIds && { categoryIds },
|
|
8044
|
+
...venueId && { venueId },
|
|
8045
|
+
...staffMemberId && { staffMemberId },
|
|
8046
|
+
...kind && { kind },
|
|
8047
|
+
...entryId && { entryId },
|
|
8048
|
+
...seriesId && { seriesId },
|
|
8049
|
+
...includeOccurrenceId && { includeOccurrenceId }
|
|
8050
|
+
}
|
|
7879
8051
|
}
|
|
7880
|
-
|
|
7881
|
-
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
|
|
7885
|
-
|
|
7886
|
-
|
|
8052
|
+
]
|
|
8053
|
+
},
|
|
8054
|
+
options: { signal: sig }
|
|
8055
|
+
});
|
|
8056
|
+
return normalizeBatchBlockLoaderResult(
|
|
8057
|
+
response,
|
|
8058
|
+
requestId
|
|
8059
|
+
);
|
|
8060
|
+
},
|
|
8061
|
+
{ signal }
|
|
8062
|
+
);
|
|
7887
8063
|
},
|
|
7888
8064
|
async listPublicCourses(params) {
|
|
7889
8065
|
const { siteId, limit, stage, signal } = params;
|
|
@@ -7891,14 +8067,22 @@ function createRiverbankClient(config) {
|
|
|
7891
8067
|
throw new Error("listPublicCourses() requires siteId");
|
|
7892
8068
|
}
|
|
7893
8069
|
const cacheKey = `public-courses:${siteId}:${limit ?? ""}:${stage ?? ""}`;
|
|
7894
|
-
return
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
8070
|
+
return resilientFetchData(
|
|
8071
|
+
cacheKey,
|
|
8072
|
+
async (sig) => {
|
|
8073
|
+
const apiParams = {
|
|
8074
|
+
siteId,
|
|
8075
|
+
...typeof limit === "number" && { limit: String(limit) },
|
|
8076
|
+
...stage && { stage }
|
|
8077
|
+
};
|
|
8078
|
+
return await apiClient({
|
|
8079
|
+
endpoint: "listPublicCourses",
|
|
8080
|
+
params: apiParams,
|
|
8081
|
+
options: { signal: sig }
|
|
8082
|
+
});
|
|
8083
|
+
},
|
|
8084
|
+
{ signal }
|
|
8085
|
+
);
|
|
7902
8086
|
},
|
|
7903
8087
|
async listPublicTeamMembers(params) {
|
|
7904
8088
|
const { siteId, stage, signal } = params;
|
|
@@ -7906,17 +8090,21 @@ function createRiverbankClient(config) {
|
|
|
7906
8090
|
throw new Error("listPublicTeamMembers() requires siteId");
|
|
7907
8091
|
}
|
|
7908
8092
|
const cacheKey = `public-team-members:${siteId}:${stage ?? ""}`;
|
|
7909
|
-
return
|
|
7910
|
-
|
|
7911
|
-
|
|
7912
|
-
|
|
7913
|
-
|
|
7914
|
-
|
|
7915
|
-
|
|
7916
|
-
|
|
7917
|
-
|
|
7918
|
-
|
|
7919
|
-
|
|
8093
|
+
return resilientFetchData(
|
|
8094
|
+
cacheKey,
|
|
8095
|
+
async (sig) => {
|
|
8096
|
+
const apiParams = {
|
|
8097
|
+
siteId,
|
|
8098
|
+
...stage && { stage }
|
|
8099
|
+
};
|
|
8100
|
+
return await apiClient({
|
|
8101
|
+
endpoint: "listPublicTeamMembers",
|
|
8102
|
+
params: apiParams,
|
|
8103
|
+
options: { signal: sig }
|
|
8104
|
+
});
|
|
8105
|
+
},
|
|
8106
|
+
{ signal }
|
|
8107
|
+
);
|
|
7920
8108
|
},
|
|
7921
8109
|
async listPublicProducts(params) {
|
|
7922
8110
|
const { siteId, stage, categorySelector, signal } = params;
|
|
@@ -7925,14 +8113,22 @@ function createRiverbankClient(config) {
|
|
|
7925
8113
|
}
|
|
7926
8114
|
const selectorKey = categorySelector ? categorySelector.kind === "category" ? `category:${categorySelector.productCategoryId}` : `current-category-page:${categorySelector.productCategoryEntryId}` : "";
|
|
7927
8115
|
const cacheKey = `public-products:${siteId}:${stage ?? ""}:${selectorKey}`;
|
|
7928
|
-
return
|
|
7929
|
-
|
|
7930
|
-
|
|
7931
|
-
|
|
7932
|
-
|
|
7933
|
-
|
|
7934
|
-
|
|
7935
|
-
|
|
8116
|
+
return resilientFetchData(
|
|
8117
|
+
cacheKey,
|
|
8118
|
+
async (sig) => {
|
|
8119
|
+
const apiParams = {
|
|
8120
|
+
siteId,
|
|
8121
|
+
...stage && { stage },
|
|
8122
|
+
...encodePublicProductCategorySelector(categorySelector)
|
|
8123
|
+
};
|
|
8124
|
+
return await apiClient({
|
|
8125
|
+
endpoint: "listPublicProducts",
|
|
8126
|
+
params: apiParams,
|
|
8127
|
+
options: { signal: sig }
|
|
8128
|
+
});
|
|
8129
|
+
},
|
|
8130
|
+
{ signal }
|
|
8131
|
+
);
|
|
7936
8132
|
},
|
|
7937
8133
|
async listPublicPasses(params) {
|
|
7938
8134
|
const { siteId, categories, signal } = params;
|
|
@@ -7940,13 +8136,21 @@ function createRiverbankClient(config) {
|
|
|
7940
8136
|
throw new Error("listPublicPasses() requires siteId");
|
|
7941
8137
|
}
|
|
7942
8138
|
const cacheKey = `public-passes:${siteId}:${categories ?? ""}`;
|
|
7943
|
-
return
|
|
7944
|
-
|
|
7945
|
-
|
|
7946
|
-
|
|
7947
|
-
|
|
7948
|
-
|
|
7949
|
-
|
|
8139
|
+
return resilientFetchData(
|
|
8140
|
+
cacheKey,
|
|
8141
|
+
async (sig) => {
|
|
8142
|
+
const apiParams = {
|
|
8143
|
+
siteId,
|
|
8144
|
+
...categories && { categories }
|
|
8145
|
+
};
|
|
8146
|
+
return await apiClient({
|
|
8147
|
+
endpoint: "listPublicPasses",
|
|
8148
|
+
params: apiParams,
|
|
8149
|
+
options: { signal: sig }
|
|
8150
|
+
});
|
|
8151
|
+
},
|
|
8152
|
+
{ signal }
|
|
8153
|
+
);
|
|
7950
8154
|
},
|
|
7951
8155
|
async listPublicMemberships(params) {
|
|
7952
8156
|
const { siteId, categories, signal } = params;
|
|
@@ -7954,25 +8158,44 @@ function createRiverbankClient(config) {
|
|
|
7954
8158
|
throw new Error("listPublicMemberships() requires siteId");
|
|
7955
8159
|
}
|
|
7956
8160
|
const cacheKey = `public-memberships:${siteId}:${categories ?? ""}`;
|
|
7957
|
-
return
|
|
7958
|
-
|
|
7959
|
-
|
|
7960
|
-
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
8161
|
+
return resilientFetchData(
|
|
8162
|
+
cacheKey,
|
|
8163
|
+
async (sig) => {
|
|
8164
|
+
const apiParams = {
|
|
8165
|
+
siteId,
|
|
8166
|
+
...categories && { categories }
|
|
8167
|
+
};
|
|
8168
|
+
return await apiClient({
|
|
8169
|
+
endpoint: "listPublicMemberships",
|
|
8170
|
+
params: apiParams,
|
|
8171
|
+
options: { signal: sig }
|
|
8172
|
+
});
|
|
8173
|
+
},
|
|
8174
|
+
{ signal }
|
|
8175
|
+
);
|
|
7964
8176
|
},
|
|
7965
8177
|
async resolveEntrySubroute(params) {
|
|
7966
8178
|
const { siteId, entryId, kind, segment, stage, signal } = params;
|
|
7967
8179
|
if (!siteId || !entryId || !kind || !segment) {
|
|
7968
|
-
throw new Error(
|
|
8180
|
+
throw new Error(
|
|
8181
|
+
"resolveEntrySubroute() requires siteId, entryId, kind, and segment"
|
|
8182
|
+
);
|
|
7969
8183
|
}
|
|
7970
|
-
return resolveEntrySubrouteInternal({
|
|
8184
|
+
return resolveEntrySubrouteInternal({
|
|
8185
|
+
siteId,
|
|
8186
|
+
entryId,
|
|
8187
|
+
kind,
|
|
8188
|
+
segment,
|
|
8189
|
+
stage,
|
|
8190
|
+
signal
|
|
8191
|
+
});
|
|
7971
8192
|
},
|
|
7972
8193
|
async resolveEventOccurrence(params) {
|
|
7973
8194
|
const { siteId, entryId, segment, signal } = params;
|
|
7974
8195
|
if (!siteId || !entryId || !segment) {
|
|
7975
|
-
throw new Error(
|
|
8196
|
+
throw new Error(
|
|
8197
|
+
"resolveEventOccurrence() requires siteId, entryId, and segment"
|
|
8198
|
+
);
|
|
7976
8199
|
}
|
|
7977
8200
|
const result = await resolveEntrySubrouteInternal({
|
|
7978
8201
|
siteId,
|
|
@@ -7991,13 +8214,17 @@ function createRiverbankClient(config) {
|
|
|
7991
8214
|
throw new Error("checkRedirect() requires siteId and path");
|
|
7992
8215
|
}
|
|
7993
8216
|
const cacheKey = `redirect:${siteId}:${path}`;
|
|
7994
|
-
return
|
|
7995
|
-
|
|
7996
|
-
|
|
7997
|
-
|
|
7998
|
-
|
|
7999
|
-
|
|
8000
|
-
|
|
8217
|
+
return resilientFetchData(
|
|
8218
|
+
cacheKey,
|
|
8219
|
+
async (sig) => {
|
|
8220
|
+
return await apiClient({
|
|
8221
|
+
endpoint: "checkRedirect",
|
|
8222
|
+
params: { site: siteId, path },
|
|
8223
|
+
options: { signal: sig }
|
|
8224
|
+
});
|
|
8225
|
+
},
|
|
8226
|
+
{ signal }
|
|
8227
|
+
);
|
|
8001
8228
|
},
|
|
8002
8229
|
async getAllPublishedRoutes(params) {
|
|
8003
8230
|
const { siteId, signal } = params;
|
|
@@ -8005,13 +8232,17 @@ function createRiverbankClient(config) {
|
|
|
8005
8232
|
throw new Error("getAllPublishedRoutes() requires siteId");
|
|
8006
8233
|
}
|
|
8007
8234
|
const cacheKey = `routable-content:${siteId}:published`;
|
|
8008
|
-
return
|
|
8009
|
-
|
|
8010
|
-
|
|
8011
|
-
|
|
8012
|
-
|
|
8013
|
-
|
|
8014
|
-
|
|
8235
|
+
return resilientFetchData(
|
|
8236
|
+
cacheKey,
|
|
8237
|
+
async (sig) => {
|
|
8238
|
+
return await apiClient({
|
|
8239
|
+
endpoint: "getPublicRoutableContent",
|
|
8240
|
+
params: { siteId, publishedOnly: "true" },
|
|
8241
|
+
options: { signal: sig }
|
|
8242
|
+
});
|
|
8243
|
+
},
|
|
8244
|
+
{ signal }
|
|
8245
|
+
);
|
|
8015
8246
|
},
|
|
8016
8247
|
async getSitemapRoutes(params) {
|
|
8017
8248
|
const { siteId, page, pageSize, signal } = params;
|
|
@@ -8019,17 +8250,21 @@ function createRiverbankClient(config) {
|
|
|
8019
8250
|
throw new Error("getSitemapRoutes() requires siteId");
|
|
8020
8251
|
}
|
|
8021
8252
|
const cacheKey = `sitemap:${siteId}:${page ?? 1}:${pageSize ?? "default"}`;
|
|
8022
|
-
return
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
|
|
8026
|
-
|
|
8027
|
-
|
|
8028
|
-
|
|
8029
|
-
|
|
8030
|
-
|
|
8031
|
-
|
|
8032
|
-
|
|
8253
|
+
return resilientFetchData(
|
|
8254
|
+
cacheKey,
|
|
8255
|
+
async (sig) => {
|
|
8256
|
+
return await apiClient({
|
|
8257
|
+
endpoint: "getPublicSitemapRoutes",
|
|
8258
|
+
params: {
|
|
8259
|
+
siteId,
|
|
8260
|
+
...page ? { page: String(page) } : {},
|
|
8261
|
+
...pageSize ? { pageSize: String(pageSize) } : {}
|
|
8262
|
+
},
|
|
8263
|
+
options: { signal: sig }
|
|
8264
|
+
});
|
|
8265
|
+
},
|
|
8266
|
+
{ signal }
|
|
8267
|
+
);
|
|
8033
8268
|
},
|
|
8034
8269
|
clearCache() {
|
|
8035
8270
|
cache.clear();
|
|
@@ -8049,6 +8284,27 @@ function createRiverbankClient(config) {
|
|
|
8049
8284
|
};
|
|
8050
8285
|
}
|
|
8051
8286
|
|
|
8287
|
+
// ../core/src/location.ts
|
|
8288
|
+
function normalizeLocationAddressText(value) {
|
|
8289
|
+
if (typeof value !== "string") {
|
|
8290
|
+
return null;
|
|
8291
|
+
}
|
|
8292
|
+
const trimmed = value.trim();
|
|
8293
|
+
return trimmed ? trimmed : null;
|
|
8294
|
+
}
|
|
8295
|
+
function hasLocationCoordinates(value) {
|
|
8296
|
+
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
8297
|
+
}
|
|
8298
|
+
function toLocationCoordinates(value) {
|
|
8299
|
+
if (!hasLocationCoordinates(value)) {
|
|
8300
|
+
return null;
|
|
8301
|
+
}
|
|
8302
|
+
return {
|
|
8303
|
+
lat: value.lat,
|
|
8304
|
+
lng: value.lng
|
|
8305
|
+
};
|
|
8306
|
+
}
|
|
8307
|
+
|
|
8052
8308
|
// ../api/src/accessAdmin.ts
|
|
8053
8309
|
import { z } from "zod";
|
|
8054
8310
|
var managedDomainAddOnPricingSnapshotSchema = z.object({
|
|
@@ -8191,27 +8447,6 @@ function formatKeyAsLabel(key) {
|
|
|
8191
8447
|
// ../blocks/src/system/manifest/schema.ts
|
|
8192
8448
|
import { z as z4 } from "zod";
|
|
8193
8449
|
|
|
8194
|
-
// ../core/src/location.ts
|
|
8195
|
-
function normalizeLocationAddressText(value) {
|
|
8196
|
-
if (typeof value !== "string") {
|
|
8197
|
-
return null;
|
|
8198
|
-
}
|
|
8199
|
-
const trimmed = value.trim();
|
|
8200
|
-
return trimmed ? trimmed : null;
|
|
8201
|
-
}
|
|
8202
|
-
function hasLocationCoordinates(value) {
|
|
8203
|
-
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
8204
|
-
}
|
|
8205
|
-
function toLocationCoordinates(value) {
|
|
8206
|
-
if (!hasLocationCoordinates(value)) {
|
|
8207
|
-
return null;
|
|
8208
|
-
}
|
|
8209
|
-
return {
|
|
8210
|
-
lat: value.lat,
|
|
8211
|
-
lng: value.lng
|
|
8212
|
-
};
|
|
8213
|
-
}
|
|
8214
|
-
|
|
8215
8450
|
// ../media-core/src/transformRect.ts
|
|
8216
8451
|
function isValidTransformRectStructure(rect) {
|
|
8217
8452
|
if (!Array.isArray(rect) || rect.length !== 4) return false;
|
|
@@ -9236,6 +9471,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
|
9236
9471
|
const next = encodeURIComponent(nextBlockId);
|
|
9237
9472
|
return asDesignBoundaryId(`boundary:${previous}:${next}`);
|
|
9238
9473
|
}
|
|
9474
|
+
function assertNever(value, message = "Unhandled Theme V2 variant") {
|
|
9475
|
+
throw new Error(`${message}: ${String(value)}`);
|
|
9476
|
+
}
|
|
9239
9477
|
function brandNonEmptyString(value, label) {
|
|
9240
9478
|
if (value.length === 0) {
|
|
9241
9479
|
throw new Error(`${label} must be a non-empty string.`);
|
|
@@ -9263,6 +9501,10 @@ var tileTreatmentValues = [
|
|
|
9263
9501
|
"quiet",
|
|
9264
9502
|
"brand-depth"
|
|
9265
9503
|
];
|
|
9504
|
+
var eventListTreatmentValues = [
|
|
9505
|
+
"plain",
|
|
9506
|
+
"lined-panel"
|
|
9507
|
+
];
|
|
9266
9508
|
var eyebrowTreatmentValues = [
|
|
9267
9509
|
"plain",
|
|
9268
9510
|
"pill",
|
|
@@ -9320,6 +9562,7 @@ function defineBlockDesignCapability(capability) {
|
|
|
9320
9562
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
9321
9563
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
9322
9564
|
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
9565
|
+
eventListTreatments: capability.eventListTreatments ?? ["plain"],
|
|
9323
9566
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
|
|
9324
9567
|
...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
|
|
9325
9568
|
...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
|
|
@@ -9344,9 +9587,98 @@ var blockAppearancePresets = [
|
|
|
9344
9587
|
transitionAfter: "soft-fade-short",
|
|
9345
9588
|
emphasis: "high",
|
|
9346
9589
|
sectionHeight: "hero",
|
|
9590
|
+
heroComposition: "center",
|
|
9591
|
+
heroTypographyScale: "display",
|
|
9347
9592
|
imageSurfaceTreatment: { kind: "neutral-wash" }
|
|
9348
9593
|
}
|
|
9349
9594
|
}),
|
|
9595
|
+
defineBlockAppearancePreset({
|
|
9596
|
+
kind: "block-design",
|
|
9597
|
+
id: "hero-bottom-left-panel",
|
|
9598
|
+
target: "hero",
|
|
9599
|
+
label: "Bottom-left panel hero",
|
|
9600
|
+
blockKinds: ["block.hero"],
|
|
9601
|
+
constraints: {
|
|
9602
|
+
layoutFamilies: ["centered", "compact"]
|
|
9603
|
+
},
|
|
9604
|
+
optionGroups: [
|
|
9605
|
+
{
|
|
9606
|
+
id: "image-surface-treatment",
|
|
9607
|
+
label: "Treatment",
|
|
9608
|
+
selectedOptionId: "neutral-scrim",
|
|
9609
|
+
options: [
|
|
9610
|
+
{
|
|
9611
|
+
id: "neutral-scrim",
|
|
9612
|
+
label: "Neutral scrim",
|
|
9613
|
+
designPatch: {
|
|
9614
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
9615
|
+
}
|
|
9616
|
+
},
|
|
9617
|
+
{
|
|
9618
|
+
id: "brand-scrim-primary",
|
|
9619
|
+
label: "Brand scrim",
|
|
9620
|
+
designPatch: {
|
|
9621
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
|
|
9622
|
+
}
|
|
9623
|
+
}
|
|
9624
|
+
]
|
|
9625
|
+
}
|
|
9626
|
+
],
|
|
9627
|
+
layoutPatches: [
|
|
9628
|
+
{
|
|
9629
|
+
constraints: {
|
|
9630
|
+
layoutVariantKeys: ["micro"]
|
|
9631
|
+
},
|
|
9632
|
+
designPatch: {
|
|
9633
|
+
sectionHeight: "banner",
|
|
9634
|
+
heroTypographyScale: "editorial"
|
|
9635
|
+
}
|
|
9636
|
+
}
|
|
9637
|
+
],
|
|
9638
|
+
design: {
|
|
9639
|
+
sectionSurface: "hero-image",
|
|
9640
|
+
contentFrame: panelFrame("raised"),
|
|
9641
|
+
itemSurface: "none",
|
|
9642
|
+
transitionAfter: "soft-fade-short",
|
|
9643
|
+
emphasis: "high",
|
|
9644
|
+
sectionHeight: "immersive",
|
|
9645
|
+
heroComposition: "bottom-left",
|
|
9646
|
+
heroTypographyScale: "display",
|
|
9647
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
9648
|
+
}
|
|
9649
|
+
}),
|
|
9650
|
+
defineBlockAppearancePreset({
|
|
9651
|
+
kind: "block-design",
|
|
9652
|
+
id: "hero-poster-image",
|
|
9653
|
+
target: "hero",
|
|
9654
|
+
label: "Poster image hero",
|
|
9655
|
+
blockKinds: ["block.hero"],
|
|
9656
|
+
constraints: {
|
|
9657
|
+
layoutFamilies: ["centered", "compact"]
|
|
9658
|
+
},
|
|
9659
|
+
layoutPatches: [
|
|
9660
|
+
{
|
|
9661
|
+
constraints: {
|
|
9662
|
+
layoutVariantKeys: ["micro"]
|
|
9663
|
+
},
|
|
9664
|
+
designPatch: {
|
|
9665
|
+
sectionHeight: "banner",
|
|
9666
|
+
heroTypographyScale: "display"
|
|
9667
|
+
}
|
|
9668
|
+
}
|
|
9669
|
+
],
|
|
9670
|
+
design: {
|
|
9671
|
+
sectionSurface: "hero-image",
|
|
9672
|
+
contentFrame: plainFrame,
|
|
9673
|
+
itemSurface: "none",
|
|
9674
|
+
transitionAfter: "soft-fade-short",
|
|
9675
|
+
emphasis: "high",
|
|
9676
|
+
sectionHeight: "immersive",
|
|
9677
|
+
heroComposition: "center",
|
|
9678
|
+
heroTypographyScale: "poster",
|
|
9679
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
|
|
9680
|
+
}
|
|
9681
|
+
}),
|
|
9350
9682
|
defineBlockAppearancePreset({
|
|
9351
9683
|
kind: "block-design",
|
|
9352
9684
|
id: "hero-brand-scrim",
|
|
@@ -9396,6 +9728,8 @@ var blockAppearancePresets = [
|
|
|
9396
9728
|
transitionAfter: "soft-fade-short",
|
|
9397
9729
|
emphasis: "high",
|
|
9398
9730
|
sectionHeight: "immersive",
|
|
9731
|
+
heroComposition: "center",
|
|
9732
|
+
heroTypographyScale: "display",
|
|
9399
9733
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
|
|
9400
9734
|
}
|
|
9401
9735
|
}),
|
|
@@ -9448,6 +9782,8 @@ var blockAppearancePresets = [
|
|
|
9448
9782
|
transitionAfter: "soft-fade-short",
|
|
9449
9783
|
emphasis: "high",
|
|
9450
9784
|
sectionHeight: "immersive",
|
|
9785
|
+
heroComposition: "center",
|
|
9786
|
+
heroTypographyScale: "display",
|
|
9451
9787
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
|
|
9452
9788
|
imageSurfaceMotion: "fixed-frame",
|
|
9453
9789
|
eyebrowTreatment: "accent-pill-bounce"
|
|
@@ -9468,6 +9804,8 @@ var blockAppearancePresets = [
|
|
|
9468
9804
|
itemSurface: "none",
|
|
9469
9805
|
transitionAfter: "soft-fade-short",
|
|
9470
9806
|
emphasis: "high",
|
|
9807
|
+
heroComposition: "center",
|
|
9808
|
+
heroTypographyScale: "editorial",
|
|
9471
9809
|
eyebrowTreatment: "accent-pill-bounce"
|
|
9472
9810
|
}
|
|
9473
9811
|
}),
|
|
@@ -9482,7 +9820,82 @@ var blockAppearancePresets = [
|
|
|
9482
9820
|
contentFrame: panelFrame("inset"),
|
|
9483
9821
|
itemSurface: "none",
|
|
9484
9822
|
transitionAfter: "none",
|
|
9485
|
-
emphasis: "high"
|
|
9823
|
+
emphasis: "high",
|
|
9824
|
+
heroComposition: "center",
|
|
9825
|
+
heroTypographyScale: "editorial"
|
|
9826
|
+
}
|
|
9827
|
+
}),
|
|
9828
|
+
defineBlockAppearancePreset({
|
|
9829
|
+
kind: "block-design",
|
|
9830
|
+
id: "hero-split-editorial",
|
|
9831
|
+
target: "hero",
|
|
9832
|
+
label: "Editorial split hero",
|
|
9833
|
+
blockKinds: ["block.hero"],
|
|
9834
|
+
constraints: {
|
|
9835
|
+
layoutFamilies: ["split"]
|
|
9836
|
+
},
|
|
9837
|
+
design: {
|
|
9838
|
+
sectionSurface: "base",
|
|
9839
|
+
contentFrame: plainFrame,
|
|
9840
|
+
itemSurface: "none",
|
|
9841
|
+
transitionAfter: "soft-fade-short",
|
|
9842
|
+
emphasis: "high",
|
|
9843
|
+
heroTypographyScale: "editorial"
|
|
9844
|
+
}
|
|
9845
|
+
}),
|
|
9846
|
+
defineBlockAppearancePreset({
|
|
9847
|
+
kind: "block-design",
|
|
9848
|
+
id: "hero-split-brand",
|
|
9849
|
+
target: "hero",
|
|
9850
|
+
label: "Brand split hero",
|
|
9851
|
+
blockKinds: ["block.hero"],
|
|
9852
|
+
constraints: {
|
|
9853
|
+
layoutFamilies: ["split"]
|
|
9854
|
+
},
|
|
9855
|
+
design: {
|
|
9856
|
+
sectionSurface: "brand-depth-band",
|
|
9857
|
+
contentFrame: plainFrame,
|
|
9858
|
+
itemSurface: "none",
|
|
9859
|
+
transitionAfter: "soft-fade-short",
|
|
9860
|
+
emphasis: "high",
|
|
9861
|
+
heroTypographyScale: "display",
|
|
9862
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
9863
|
+
}
|
|
9864
|
+
}),
|
|
9865
|
+
defineBlockAppearancePreset({
|
|
9866
|
+
kind: "block-design",
|
|
9867
|
+
id: "hero-split-soft-panel",
|
|
9868
|
+
target: "hero",
|
|
9869
|
+
label: "Soft panel split hero",
|
|
9870
|
+
blockKinds: ["block.hero"],
|
|
9871
|
+
constraints: {
|
|
9872
|
+
layoutFamilies: ["split"]
|
|
9873
|
+
},
|
|
9874
|
+
design: {
|
|
9875
|
+
sectionSurface: "muted-band",
|
|
9876
|
+
contentFrame: panelFrame("raised"),
|
|
9877
|
+
itemSurface: "none",
|
|
9878
|
+
transitionAfter: "soft-fade-short",
|
|
9879
|
+
emphasis: "high",
|
|
9880
|
+
heroTypographyScale: "editorial"
|
|
9881
|
+
}
|
|
9882
|
+
}),
|
|
9883
|
+
defineBlockAppearancePreset({
|
|
9884
|
+
kind: "block-design",
|
|
9885
|
+
id: "hero-split-accent",
|
|
9886
|
+
target: "hero",
|
|
9887
|
+
label: "Accent split hero",
|
|
9888
|
+
blockKinds: ["block.hero"],
|
|
9889
|
+
constraints: {
|
|
9890
|
+
layoutFamilies: ["split"]
|
|
9891
|
+
},
|
|
9892
|
+
design: {
|
|
9893
|
+
sectionSurface: "accent-band",
|
|
9894
|
+
contentFrame: panelFrame("raised"),
|
|
9895
|
+
itemSurface: "none",
|
|
9896
|
+
transitionAfter: "soft-fade-short",
|
|
9897
|
+
emphasis: "high",
|
|
9898
|
+
heroTypographyScale: "display"
|
|
9486
9899
|
}
|
|
9487
9900
|
}),
|
|
9488
9901
|
defineBlockAppearancePreset({
|
|
@@ -9515,9 +9928,9 @@ var blockAppearancePresets = [
|
|
|
9515
9928
|
}),
|
|
9516
9929
|
defineBlockAppearancePreset({
|
|
9517
9930
|
kind: "block-design",
|
|
9518
|
-
id: "intro-
|
|
9931
|
+
id: "intro-organic-statement",
|
|
9519
9932
|
target: "intro",
|
|
9520
|
-
label: "
|
|
9933
|
+
label: "Organic intro statement",
|
|
9521
9934
|
blockKinds: ["block.intro"],
|
|
9522
9935
|
design: {
|
|
9523
9936
|
sectionSurface: "base",
|
|
@@ -9548,9 +9961,9 @@ var blockAppearancePresets = [
|
|
|
9548
9961
|
}),
|
|
9549
9962
|
defineBlockAppearancePreset({
|
|
9550
9963
|
kind: "block-design",
|
|
9551
|
-
id: "feature-cards-
|
|
9964
|
+
id: "feature-cards-raised-rule",
|
|
9552
9965
|
target: "feature-cards",
|
|
9553
|
-
label: "
|
|
9966
|
+
label: "Raised cards with rule",
|
|
9554
9967
|
blockKinds: ["block.feature-cards"],
|
|
9555
9968
|
design: {
|
|
9556
9969
|
sectionSurface: "base",
|
|
@@ -9579,6 +9992,21 @@ var blockAppearancePresets = [
|
|
|
9579
9992
|
emphasis: "medium"
|
|
9580
9993
|
}
|
|
9581
9994
|
}),
|
|
9995
|
+
defineBlockAppearancePreset({
|
|
9996
|
+
kind: "block-design",
|
|
9997
|
+
id: "events-lined-panel",
|
|
9998
|
+
target: "events",
|
|
9999
|
+
label: "Lined event panel",
|
|
10000
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
10001
|
+
design: {
|
|
10002
|
+
sectionSurface: "base",
|
|
10003
|
+
contentFrame: plainFrame,
|
|
10004
|
+
itemSurface: "none",
|
|
10005
|
+
transitionAfter: "none",
|
|
10006
|
+
emphasis: "medium",
|
|
10007
|
+
eventListTreatment: "lined-panel"
|
|
10008
|
+
}
|
|
10009
|
+
}),
|
|
9582
10010
|
defineBlockAppearancePreset({
|
|
9583
10011
|
kind: "block-design",
|
|
9584
10012
|
id: "schedule-details-accent-section",
|
|
@@ -9638,9 +10066,9 @@ var blockAppearancePresets = [
|
|
|
9638
10066
|
}),
|
|
9639
10067
|
defineBlockAppearancePreset({
|
|
9640
10068
|
kind: "block-design",
|
|
9641
|
-
id: "testimonials-
|
|
10069
|
+
id: "testimonials-simple-cards",
|
|
9642
10070
|
target: "testimonials",
|
|
9643
|
-
label: "
|
|
10071
|
+
label: "Simple testimonial cards",
|
|
9644
10072
|
blockKinds: ["block.testimonials"],
|
|
9645
10073
|
design: {
|
|
9646
10074
|
sectionSurface: "base",
|
|
@@ -9652,9 +10080,9 @@ var blockAppearancePresets = [
|
|
|
9652
10080
|
}),
|
|
9653
10081
|
defineBlockAppearancePreset({
|
|
9654
10082
|
kind: "block-design",
|
|
9655
|
-
id: "testimonials-
|
|
10083
|
+
id: "testimonials-raised-panel",
|
|
9656
10084
|
target: "testimonials",
|
|
9657
|
-
label: "
|
|
10085
|
+
label: "Raised testimonial panel",
|
|
9658
10086
|
blockKinds: ["block.testimonials"],
|
|
9659
10087
|
design: {
|
|
9660
10088
|
sectionSurface: "muted-band",
|
|
@@ -9666,9 +10094,9 @@ var blockAppearancePresets = [
|
|
|
9666
10094
|
}),
|
|
9667
10095
|
defineBlockAppearancePreset({
|
|
9668
10096
|
kind: "block-design",
|
|
9669
|
-
id: "testimonials-
|
|
10097
|
+
id: "testimonials-accent-panel",
|
|
9670
10098
|
target: "testimonials",
|
|
9671
|
-
label: "
|
|
10099
|
+
label: "Accent testimonial panel",
|
|
9672
10100
|
blockKinds: ["block.testimonials"],
|
|
9673
10101
|
design: {
|
|
9674
10102
|
sectionSurface: "accent-band",
|
|
@@ -9680,9 +10108,9 @@ var blockAppearancePresets = [
|
|
|
9680
10108
|
}),
|
|
9681
10109
|
defineBlockAppearancePreset({
|
|
9682
10110
|
kind: "block-design",
|
|
9683
|
-
id: "testimonials-accent-quote-
|
|
10111
|
+
id: "testimonials-accent-quote-cards",
|
|
9684
10112
|
target: "testimonials",
|
|
9685
|
-
label: "Accent quote
|
|
10113
|
+
label: "Accent quote cards",
|
|
9686
10114
|
blockKinds: ["block.testimonials"],
|
|
9687
10115
|
design: {
|
|
9688
10116
|
sectionSurface: "accent-band",
|
|
@@ -9695,9 +10123,9 @@ var blockAppearancePresets = [
|
|
|
9695
10123
|
}),
|
|
9696
10124
|
defineBlockAppearancePreset({
|
|
9697
10125
|
kind: "block-design",
|
|
9698
|
-
id: "testimonials-
|
|
10126
|
+
id: "testimonials-brand-background-quotes",
|
|
9699
10127
|
target: "testimonials",
|
|
9700
|
-
label: "
|
|
10128
|
+
label: "Brand background quotes",
|
|
9701
10129
|
blockKinds: ["block.testimonials"],
|
|
9702
10130
|
design: {
|
|
9703
10131
|
sectionSurface: "brand-depth-band",
|
|
@@ -9741,25 +10169,6 @@ var blockAppearancePresets = [
|
|
|
9741
10169
|
emphasis: "low"
|
|
9742
10170
|
}
|
|
9743
10171
|
}),
|
|
9744
|
-
defineBlockAppearancePreset({
|
|
9745
|
-
kind: "block-design",
|
|
9746
|
-
id: "faq-soft-earth-two-column",
|
|
9747
|
-
target: "faq",
|
|
9748
|
-
label: "Soft Earth two-column FAQ",
|
|
9749
|
-
blockKinds: ["block.faq"],
|
|
9750
|
-
design: {
|
|
9751
|
-
sectionSurface: "base",
|
|
9752
|
-
contentFrame: plainFrame,
|
|
9753
|
-
itemSurface: "flat",
|
|
9754
|
-
transitionAfter: "none",
|
|
9755
|
-
emphasis: "medium",
|
|
9756
|
-
accordionIconTreatment: {
|
|
9757
|
-
iconSet: "plus",
|
|
9758
|
-
colorToken: "primary",
|
|
9759
|
-
motion: "swap"
|
|
9760
|
-
}
|
|
9761
|
-
}
|
|
9762
|
-
}),
|
|
9763
10172
|
defineBlockAppearancePreset({
|
|
9764
10173
|
kind: "block-design",
|
|
9765
10174
|
id: "contact-form-panel",
|
|
@@ -11138,7 +11547,8 @@ var accordionSystemSchema = z12.object({
|
|
|
11138
11547
|
icon: z12.object({
|
|
11139
11548
|
style: accordionIconSchema,
|
|
11140
11549
|
position: z12.enum(["left", "right"]),
|
|
11141
|
-
size: z12.enum(["sm", "md", "lg"])
|
|
11550
|
+
size: z12.enum(["sm", "md", "lg"]),
|
|
11551
|
+
colorToken: themeColorTokenSchema.optional()
|
|
11142
11552
|
}),
|
|
11143
11553
|
// Trigger (question) styling
|
|
11144
11554
|
trigger: z12.object({
|
|
@@ -11272,6 +11682,7 @@ var navLinkPaddingXSchema = z16.enum(["none", "tight", "compact", "default", "re
|
|
|
11272
11682
|
var navLinkBorderRadiusSchema = z16.enum(["none", "sm", "md", "full"]);
|
|
11273
11683
|
var navLinkTextSizeSchema = z16.enum(["xs", "sm", "base", "lg"]);
|
|
11274
11684
|
var navLinkLetterSpacingSchema = z16.enum(["normal", "wide", "wider", "widest"]);
|
|
11685
|
+
var navLinkContrastTreatmentSchema = z16.enum(["none", "soft-glow"]);
|
|
11275
11686
|
var navLinkStyleSchema = z16.object({
|
|
11276
11687
|
/** Display name for the style */
|
|
11277
11688
|
name: z16.string().min(1).max(30).optional(),
|
|
@@ -11283,6 +11694,8 @@ var navLinkStyleSchema = z16.object({
|
|
|
11283
11694
|
textSize: navLinkTextSizeSchema.optional(),
|
|
11284
11695
|
/** Optional letter spacing override */
|
|
11285
11696
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
11697
|
+
/** Optional text-only contrast treatment for transparent/overlay navigation */
|
|
11698
|
+
contrastTreatment: navLinkContrastTreatmentSchema.optional(),
|
|
11286
11699
|
/** Hover/active color token (for color-change effects) */
|
|
11287
11700
|
hoverColorToken: themeColorTokenSchema.nullable().optional(),
|
|
11288
11701
|
/** Padding preset */
|
|
@@ -11712,6 +12125,7 @@ var sectionStylesOverrideSchema = z21.object({
|
|
|
11712
12125
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
11713
12126
|
minHeight: z21.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
11714
12127
|
tileTreatment: z21.enum(tileTreatmentValues).nullable().optional(),
|
|
12128
|
+
eventListTreatment: z21.enum(eventListTreatmentValues).nullable().optional(),
|
|
11715
12129
|
eyebrowTreatment: z21.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
11716
12130
|
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
11717
12131
|
// Author-level override consumed by later block/editor rendering phases.
|
|
@@ -12545,6 +12959,34 @@ var paletteVariantsById = new Map(
|
|
|
12545
12959
|
paletteVariants.map((v) => [v.id, v])
|
|
12546
12960
|
);
|
|
12547
12961
|
|
|
12962
|
+
// ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
12963
|
+
var softEarthAccordionSystem = {
|
|
12964
|
+
background: {
|
|
12965
|
+
type: "solid",
|
|
12966
|
+
colorToken: "background"
|
|
12967
|
+
},
|
|
12968
|
+
spacing: "comfortable",
|
|
12969
|
+
corners: "square",
|
|
12970
|
+
border: null,
|
|
12971
|
+
shadow: null,
|
|
12972
|
+
icon: {
|
|
12973
|
+
style: "plus-minus",
|
|
12974
|
+
position: "right",
|
|
12975
|
+
size: "md",
|
|
12976
|
+
colorToken: "primary"
|
|
12977
|
+
},
|
|
12978
|
+
trigger: {
|
|
12979
|
+
textColorToken: "text",
|
|
12980
|
+
fontWeight: "medium"
|
|
12981
|
+
},
|
|
12982
|
+
hover: {
|
|
12983
|
+
textColorToken: "primary"
|
|
12984
|
+
},
|
|
12985
|
+
content: {
|
|
12986
|
+
textColorToken: "neutral-700"
|
|
12987
|
+
}
|
|
12988
|
+
};
|
|
12989
|
+
|
|
12548
12990
|
// ../theme-core/src/site-styles/headerLooks.ts
|
|
12549
12991
|
function asHeaderLookId(value) {
|
|
12550
12992
|
return value;
|
|
@@ -12600,7 +13042,7 @@ var headerLayoutCatalog = [
|
|
|
12600
13042
|
description: "Detached header chrome that sits over the opening section.",
|
|
12601
13043
|
structure: "floating-shell",
|
|
12602
13044
|
variant: "floating",
|
|
12603
|
-
defaultPositioning: "
|
|
13045
|
+
defaultPositioning: "sticky",
|
|
12604
13046
|
shrinkOnScroll: true,
|
|
12605
13047
|
maxRecommendedNavItems: 5,
|
|
12606
13048
|
allowedLogoShapes: ["none", "text-only", "horizontal"]
|
|
@@ -12617,7 +13059,9 @@ var headerStyleCatalog = [
|
|
|
12617
13059
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12618
13060
|
navInteraction: "color-change",
|
|
12619
13061
|
surface: "neutral",
|
|
12620
|
-
|
|
13062
|
+
defaultDepth: "none",
|
|
13063
|
+
navTypography: "plain",
|
|
13064
|
+
moods: ["calm", "professional", "editorial"]
|
|
12621
13065
|
},
|
|
12622
13066
|
{
|
|
12623
13067
|
id: asHeaderStyleId("fine-line"),
|
|
@@ -12626,7 +13070,9 @@ var headerStyleCatalog = [
|
|
|
12626
13070
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12627
13071
|
navInteraction: "underline-grow",
|
|
12628
13072
|
surface: "bordered",
|
|
12629
|
-
|
|
13073
|
+
defaultDepth: "line",
|
|
13074
|
+
navTypography: "plain",
|
|
13075
|
+
moods: ["calm", "professional", "editorial"]
|
|
12630
13076
|
},
|
|
12631
13077
|
{
|
|
12632
13078
|
id: asHeaderStyleId("soft-bar"),
|
|
@@ -12635,7 +13081,9 @@ var headerStyleCatalog = [
|
|
|
12635
13081
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12636
13082
|
navInteraction: "pill-background",
|
|
12637
13083
|
surface: "soft",
|
|
12638
|
-
|
|
13084
|
+
defaultDepth: "line",
|
|
13085
|
+
navTypography: "plain",
|
|
13086
|
+
moods: ["calm", "professional"]
|
|
12639
13087
|
},
|
|
12640
13088
|
{
|
|
12641
13089
|
id: asHeaderStyleId("pill-nav"),
|
|
@@ -12644,7 +13092,9 @@ var headerStyleCatalog = [
|
|
|
12644
13092
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12645
13093
|
navInteraction: "pill-background",
|
|
12646
13094
|
surface: "soft",
|
|
12647
|
-
|
|
13095
|
+
defaultDepth: "none",
|
|
13096
|
+
navTypography: "plain",
|
|
13097
|
+
moods: ["calm"]
|
|
12648
13098
|
},
|
|
12649
13099
|
{
|
|
12650
13100
|
id: asHeaderStyleId("brand-bar"),
|
|
@@ -12653,7 +13103,9 @@ var headerStyleCatalog = [
|
|
|
12653
13103
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12654
13104
|
navInteraction: "color-change",
|
|
12655
13105
|
surface: "brand-solid",
|
|
12656
|
-
|
|
13106
|
+
defaultDepth: "none",
|
|
13107
|
+
navTypography: "brand-caps",
|
|
13108
|
+
moods: ["professional", "expressive", "utility"]
|
|
12657
13109
|
},
|
|
12658
13110
|
{
|
|
12659
13111
|
id: asHeaderStyleId("brand-underline"),
|
|
@@ -12662,7 +13114,9 @@ var headerStyleCatalog = [
|
|
|
12662
13114
|
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
12663
13115
|
navInteraction: "underline-grow",
|
|
12664
13116
|
surface: "brand-solid",
|
|
12665
|
-
|
|
13117
|
+
defaultDepth: "none",
|
|
13118
|
+
navTypography: "brand-caps",
|
|
13119
|
+
moods: ["expressive"]
|
|
12666
13120
|
},
|
|
12667
13121
|
{
|
|
12668
13122
|
id: asHeaderStyleId("brand-pill"),
|
|
@@ -12671,7 +13125,9 @@ var headerStyleCatalog = [
|
|
|
12671
13125
|
supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
|
|
12672
13126
|
navInteraction: "pill-background",
|
|
12673
13127
|
surface: "brand-solid",
|
|
12674
|
-
|
|
13128
|
+
defaultDepth: "none",
|
|
13129
|
+
navTypography: "brand-caps",
|
|
13130
|
+
moods: ["expressive"]
|
|
12675
13131
|
},
|
|
12676
13132
|
{
|
|
12677
13133
|
id: asHeaderStyleId("serif-line"),
|
|
@@ -12680,7 +13136,9 @@ var headerStyleCatalog = [
|
|
|
12680
13136
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12681
13137
|
navInteraction: "underline-grow",
|
|
12682
13138
|
surface: "bordered",
|
|
12683
|
-
|
|
13139
|
+
defaultDepth: "line",
|
|
13140
|
+
navTypography: "heading",
|
|
13141
|
+
moods: ["editorial", "calm"]
|
|
12684
13142
|
},
|
|
12685
13143
|
{
|
|
12686
13144
|
id: asHeaderStyleId("flat-tabs"),
|
|
@@ -12689,16 +13147,20 @@ var headerStyleCatalog = [
|
|
|
12689
13147
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12690
13148
|
navInteraction: "flat-block",
|
|
12691
13149
|
surface: "bordered",
|
|
12692
|
-
|
|
13150
|
+
defaultDepth: "shadow",
|
|
13151
|
+
navTypography: "quiet-caps",
|
|
13152
|
+
moods: ["professional", "utility", "expressive"]
|
|
12693
13153
|
},
|
|
12694
13154
|
{
|
|
12695
13155
|
id: asHeaderStyleId("glass"),
|
|
12696
13156
|
label: "Glass",
|
|
12697
13157
|
description: "Translucent chrome with frosted navigation backing.",
|
|
12698
|
-
supportedLayoutIds: supportedLayouts(["
|
|
13158
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12699
13159
|
navInteraction: "glass-backed",
|
|
12700
13160
|
surface: "floating",
|
|
12701
|
-
|
|
13161
|
+
defaultDepth: "shadow",
|
|
13162
|
+
navTypography: "plain",
|
|
13163
|
+
moods: ["expressive", "calm"]
|
|
12702
13164
|
},
|
|
12703
13165
|
{
|
|
12704
13166
|
id: asHeaderStyleId("minimal-surface"),
|
|
@@ -12707,7 +13169,9 @@ var headerStyleCatalog = [
|
|
|
12707
13169
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12708
13170
|
navInteraction: "color-change",
|
|
12709
13171
|
surface: "floating",
|
|
12710
|
-
|
|
13172
|
+
defaultDepth: "none",
|
|
13173
|
+
navTypography: "plain",
|
|
13174
|
+
moods: ["editorial", "calm"]
|
|
12711
13175
|
},
|
|
12712
13176
|
{
|
|
12713
13177
|
id: asHeaderStyleId("soft-shell"),
|
|
@@ -12716,7 +13180,9 @@ var headerStyleCatalog = [
|
|
|
12716
13180
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12717
13181
|
navInteraction: "pill-background",
|
|
12718
13182
|
surface: "floating",
|
|
12719
|
-
|
|
13183
|
+
defaultDepth: "shadow",
|
|
13184
|
+
navTypography: "plain",
|
|
13185
|
+
moods: ["calm", "professional"]
|
|
12720
13186
|
},
|
|
12721
13187
|
{
|
|
12722
13188
|
id: asHeaderStyleId("split-glass"),
|
|
@@ -12725,7 +13191,9 @@ var headerStyleCatalog = [
|
|
|
12725
13191
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12726
13192
|
navInteraction: "glass-backed",
|
|
12727
13193
|
surface: "floating",
|
|
12728
|
-
|
|
13194
|
+
defaultDepth: "shadow",
|
|
13195
|
+
navTypography: "quiet-caps",
|
|
13196
|
+
moods: ["expressive"]
|
|
12729
13197
|
},
|
|
12730
13198
|
{
|
|
12731
13199
|
id: asHeaderStyleId("split-pill"),
|
|
@@ -12734,7 +13202,9 @@ var headerStyleCatalog = [
|
|
|
12734
13202
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12735
13203
|
navInteraction: "pill-background",
|
|
12736
13204
|
surface: "floating",
|
|
12737
|
-
|
|
13205
|
+
defaultDepth: "shadow",
|
|
13206
|
+
navTypography: "heading",
|
|
13207
|
+
moods: ["calm", "editorial"]
|
|
12738
13208
|
}
|
|
12739
13209
|
];
|
|
12740
13210
|
var headerLayoutsById = new Map(
|
|
@@ -12748,7 +13218,6 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
12748
13218
|
asHeaderLayoutId("classic"),
|
|
12749
13219
|
headerStyleRepairChain([
|
|
12750
13220
|
"minimal",
|
|
12751
|
-
"glass",
|
|
12752
13221
|
"fine-line",
|
|
12753
13222
|
"soft-bar",
|
|
12754
13223
|
"pill-nav",
|
|
@@ -12815,7 +13284,13 @@ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
|
12815
13284
|
],
|
|
12816
13285
|
[
|
|
12817
13286
|
asHeaderStyleId("glass"),
|
|
12818
|
-
headerStyleRepairChain([
|
|
13287
|
+
headerStyleRepairChain([
|
|
13288
|
+
"glass",
|
|
13289
|
+
"soft-shell",
|
|
13290
|
+
"fine-line",
|
|
13291
|
+
"minimal-surface",
|
|
13292
|
+
"minimal"
|
|
13293
|
+
])
|
|
12819
13294
|
],
|
|
12820
13295
|
[
|
|
12821
13296
|
asHeaderStyleId("soft-shell"),
|
|
@@ -12927,6 +13402,23 @@ function getCompatibleHeaderStyleIds(layoutId) {
|
|
|
12927
13402
|
}
|
|
12928
13403
|
);
|
|
12929
13404
|
}
|
|
13405
|
+
function themedHeaderShadow(theme) {
|
|
13406
|
+
switch (theme.shadow.elevation) {
|
|
13407
|
+
case "none":
|
|
13408
|
+
return void 0;
|
|
13409
|
+
case "low":
|
|
13410
|
+
return { elevation: "sm" };
|
|
13411
|
+
case "medium":
|
|
13412
|
+
return { elevation: "md" };
|
|
13413
|
+
case "high":
|
|
13414
|
+
return { elevation: "lg" };
|
|
13415
|
+
default:
|
|
13416
|
+
return assertNever(
|
|
13417
|
+
theme.shadow.elevation,
|
|
13418
|
+
"Unhandled theme shadow elevation"
|
|
13419
|
+
);
|
|
13420
|
+
}
|
|
13421
|
+
}
|
|
12930
13422
|
function solidBrandHeader(theme) {
|
|
12931
13423
|
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
12932
13424
|
return {
|
|
@@ -13076,9 +13568,7 @@ function practicalUtilityHeader(theme) {
|
|
|
13076
13568
|
navColor: "text",
|
|
13077
13569
|
navStyle: "solid",
|
|
13078
13570
|
navWeight: "semibold",
|
|
13079
|
-
shadow:
|
|
13080
|
-
elevation: "sm"
|
|
13081
|
-
},
|
|
13571
|
+
shadow: themedHeaderShadow(theme),
|
|
13082
13572
|
border: {
|
|
13083
13573
|
style: "solid",
|
|
13084
13574
|
width: "thin",
|
|
@@ -13147,6 +13637,7 @@ function floatingGlassHeader(theme) {
|
|
|
13147
13637
|
return {
|
|
13148
13638
|
...transparentOverlayHeader(theme),
|
|
13149
13639
|
variant: "floating",
|
|
13640
|
+
positioning: "sticky",
|
|
13150
13641
|
navStyle: "frosted",
|
|
13151
13642
|
navContainer: {
|
|
13152
13643
|
type: "glass",
|
|
@@ -13662,7 +14153,7 @@ var typographyPresets = [
|
|
|
13662
14153
|
heroTypography: {
|
|
13663
14154
|
headlineSize: "6xl",
|
|
13664
14155
|
headlineLineHeight: "tight",
|
|
13665
|
-
subheadlineSize: "
|
|
14156
|
+
subheadlineSize: "2xl",
|
|
13666
14157
|
subheadlineLineHeight: "normal",
|
|
13667
14158
|
microHeadlineSize: "6xl",
|
|
13668
14159
|
microHeadlineLineHeight: "tight",
|
|
@@ -13680,6 +14171,8 @@ var typographyPresetsById = new Map(
|
|
|
13680
14171
|
);
|
|
13681
14172
|
|
|
13682
14173
|
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
14174
|
+
var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
|
|
14175
|
+
var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
|
|
13683
14176
|
var curatedSiteStyleIdValues = [
|
|
13684
14177
|
"site-style:calm-studio",
|
|
13685
14178
|
"site-style:clear-professional",
|
|
@@ -13691,7 +14184,7 @@ var curatedSiteStyleIdValues = [
|
|
|
13691
14184
|
"site-style:personal-retreat-journal",
|
|
13692
14185
|
"site-style:tactile-workshop",
|
|
13693
14186
|
"site-style:modern-wellness",
|
|
13694
|
-
|
|
14187
|
+
SOFT_EARTH_SITE_STYLE_ID_VALUE,
|
|
13695
14188
|
"site-style:bold-launch",
|
|
13696
14189
|
"site-style:south-west-twerk-school"
|
|
13697
14190
|
];
|
|
@@ -13773,7 +14266,10 @@ function uniqueContentFrameKinds() {
|
|
|
13773
14266
|
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
13774
14267
|
function defineCuratedSiteStyle(input) {
|
|
13775
14268
|
const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
|
|
13776
|
-
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
14269
|
+
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
14270
|
+
legacyHeaderLookIds,
|
|
14271
|
+
input.tokenRecipes
|
|
14272
|
+
);
|
|
13777
14273
|
const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
|
|
13778
14274
|
const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
|
|
13779
14275
|
if (!typographyPresetChoices.some(
|
|
@@ -13806,6 +14302,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
13806
14302
|
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
13807
14303
|
},
|
|
13808
14304
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
14305
|
+
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
13809
14306
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
13810
14307
|
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
13811
14308
|
layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
|
|
@@ -13856,15 +14353,77 @@ function uniqueHeaderLayoutChoices(choices) {
|
|
|
13856
14353
|
if (!first) {
|
|
13857
14354
|
throw new Error("Expected at least one curated header layout choice.");
|
|
13858
14355
|
}
|
|
13859
|
-
return [first, ...unique.slice(1)];
|
|
14356
|
+
return [first, ...unique.slice(1)];
|
|
14357
|
+
}
|
|
14358
|
+
function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
14359
|
+
const first = choices[0] ?? {
|
|
14360
|
+
id: getCompatibleHeaderStyleIds(fallbackLayoutId)[0] ?? asHeaderStyleId("minimal")
|
|
14361
|
+
};
|
|
14362
|
+
return [first, ...choices.slice(1)];
|
|
14363
|
+
}
|
|
14364
|
+
function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
14365
|
+
const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
|
|
14366
|
+
const seen = /* @__PURE__ */ new Set();
|
|
14367
|
+
const unique = choices.filter((choice) => {
|
|
14368
|
+
if (!compatible.has(choice.id)) return false;
|
|
14369
|
+
if (seen.has(choice.id)) return false;
|
|
14370
|
+
seen.add(choice.id);
|
|
14371
|
+
return true;
|
|
14372
|
+
});
|
|
14373
|
+
return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
|
|
14374
|
+
}
|
|
14375
|
+
function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
|
|
14376
|
+
switch (layoutId) {
|
|
14377
|
+
case "classic":
|
|
14378
|
+
if (isExpressiveRecipe(recipes)) {
|
|
14379
|
+
return [
|
|
14380
|
+
"brand-bar",
|
|
14381
|
+
"brand-underline",
|
|
14382
|
+
"flat-tabs",
|
|
14383
|
+
"brand-pill",
|
|
14384
|
+
"fine-line"
|
|
14385
|
+
];
|
|
14386
|
+
}
|
|
14387
|
+
if (recipes.spacing === "compact") {
|
|
14388
|
+
return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
|
|
14389
|
+
}
|
|
14390
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
14391
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
14392
|
+
}
|
|
14393
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
14394
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
14395
|
+
}
|
|
14396
|
+
return ["fine-line", "minimal", "soft-bar", "brand-bar"];
|
|
14397
|
+
case "centered":
|
|
14398
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
14399
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
14400
|
+
}
|
|
14401
|
+
if (isExpressiveRecipe(recipes)) {
|
|
14402
|
+
return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
|
|
14403
|
+
}
|
|
14404
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
14405
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
14406
|
+
}
|
|
14407
|
+
return ["minimal", "fine-line", "soft-bar"];
|
|
14408
|
+
case "floating":
|
|
14409
|
+
if (isExpressiveRecipe(recipes)) {
|
|
14410
|
+
return ["glass", "split-glass", "brand-pill", "soft-shell"];
|
|
14411
|
+
}
|
|
14412
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
14413
|
+
return ["split-pill", "minimal-surface", "soft-shell"];
|
|
14414
|
+
}
|
|
14415
|
+
return ["soft-shell", "minimal-surface", "glass"];
|
|
14416
|
+
default:
|
|
14417
|
+
return [];
|
|
14418
|
+
}
|
|
13860
14419
|
}
|
|
13861
|
-
function
|
|
13862
|
-
|
|
13863
|
-
id: getCompatibleHeaderStyleIds(fallbackLayoutId)[0] ?? asHeaderStyleId("minimal")
|
|
13864
|
-
};
|
|
13865
|
-
return [first, ...choices.slice(1)];
|
|
14420
|
+
function isExpressiveRecipe(recipes) {
|
|
14421
|
+
return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
|
|
13866
14422
|
}
|
|
13867
|
-
function
|
|
14423
|
+
function isSerifTypographyRecipe(recipes) {
|
|
14424
|
+
return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
|
|
14425
|
+
}
|
|
14426
|
+
function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
|
|
13868
14427
|
const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
|
|
13869
14428
|
(selection) => Boolean(selection)
|
|
13870
14429
|
);
|
|
@@ -13877,8 +14436,15 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
|
|
|
13877
14436
|
);
|
|
13878
14437
|
const stylesByLayout = {};
|
|
13879
14438
|
for (const layoutChoice of layoutChoices) {
|
|
13880
|
-
const
|
|
13881
|
-
|
|
14439
|
+
const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
|
|
14440
|
+
const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
|
|
14441
|
+
layoutChoice.id,
|
|
14442
|
+
recipes
|
|
14443
|
+
).map((styleId) => headerStyleChoice(styleId));
|
|
14444
|
+
stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
|
|
14445
|
+
[...legacyStyleChoices, ...inferredStyleChoices],
|
|
14446
|
+
layoutChoice.id
|
|
14447
|
+
);
|
|
13882
14448
|
}
|
|
13883
14449
|
return {
|
|
13884
14450
|
defaultHeaderSelection,
|
|
@@ -14298,10 +14864,10 @@ var curatedSiteStyles = [
|
|
|
14298
14864
|
]
|
|
14299
14865
|
}),
|
|
14300
14866
|
defineCuratedSiteStyle({
|
|
14301
|
-
id:
|
|
14867
|
+
id: SOFT_EARTH_SITE_STYLE_ID,
|
|
14302
14868
|
name: "Soft Earth",
|
|
14303
14869
|
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
14304
|
-
generationBrief: "Use cream space, terracotta CTAs, olive
|
|
14870
|
+
generationBrief: "Use cream space, terracotta CTAs, olive quote bands, natural imagery, generous but composed spacing, and editorial serif headings. Prefer a real intro section, image-led offering cards, warm community quotes, and an FAQ with a full-width intro above two columns of questions when content allows.",
|
|
14305
14871
|
siteCreatorSelection: {
|
|
14306
14872
|
kind: "site_creator_keyword_heuristic",
|
|
14307
14873
|
priority: 45
|
|
@@ -14371,14 +14937,18 @@ var curatedSiteStyles = [
|
|
|
14371
14937
|
paragraphSize: "default",
|
|
14372
14938
|
headingSize: "editorial"
|
|
14373
14939
|
}
|
|
14374
|
-
}
|
|
14940
|
+
},
|
|
14941
|
+
accordions: softEarthAccordionSystem
|
|
14942
|
+
},
|
|
14943
|
+
defaultBlockVariants: {
|
|
14944
|
+
"block.faq": "question-columns"
|
|
14375
14945
|
},
|
|
14376
14946
|
recommendedAppearancePresetIds: [
|
|
14377
14947
|
"hero-brand-scrim",
|
|
14378
|
-
"intro-
|
|
14379
|
-
"feature-cards-
|
|
14380
|
-
"
|
|
14381
|
-
"
|
|
14948
|
+
"intro-organic-statement",
|
|
14949
|
+
"feature-cards-raised-rule",
|
|
14950
|
+
"events-lined-panel",
|
|
14951
|
+
"testimonials-brand-background-quotes",
|
|
14382
14952
|
"contact-form-panel"
|
|
14383
14953
|
],
|
|
14384
14954
|
recommendedHeaderLookIds: [
|
|
@@ -14482,7 +15052,7 @@ var curatedSiteStyles = [
|
|
|
14482
15052
|
"hero-brand-scrim-fixed-frame",
|
|
14483
15053
|
"body-text-editorial-intro",
|
|
14484
15054
|
"schedule-details-brand-depth",
|
|
14485
|
-
"testimonials-accent-quote-
|
|
15055
|
+
"testimonials-accent-quote-cards",
|
|
14486
15056
|
"contact-form-brand-depth-card"
|
|
14487
15057
|
],
|
|
14488
15058
|
recommendedHeaderLookIds: [
|
|
@@ -14577,6 +15147,7 @@ var themeV2RuntimeStyleFieldNames = [
|
|
|
14577
15147
|
];
|
|
14578
15148
|
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
14579
15149
|
"_contentCardStyles",
|
|
15150
|
+
"_heroLayoutStyles",
|
|
14580
15151
|
"_textCardStyles"
|
|
14581
15152
|
];
|
|
14582
15153
|
var themeV2NormalEditorRawStyleFieldNames = [
|
|
@@ -14586,6 +15157,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
|
|
|
14586
15157
|
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
14587
15158
|
themeV2NormalEditorRawStyleFieldNames
|
|
14588
15159
|
);
|
|
15160
|
+
var themeV2CompilerOwnedFieldNames = [
|
|
15161
|
+
...themeV2RuntimeStyleFieldNames,
|
|
15162
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
15163
|
+
];
|
|
14589
15164
|
|
|
14590
15165
|
// ../theme-core/src/site-styles/designState.ts
|
|
14591
15166
|
var themeV2DesignStateSchemaVersion = 1;
|
|
@@ -14600,6 +15175,16 @@ var heroLegibilityStrategySchema = z23.enum([
|
|
|
14600
15175
|
"scrim-gradient",
|
|
14601
15176
|
"solid-panel"
|
|
14602
15177
|
]);
|
|
15178
|
+
var heroCompositionIntentSchema = z23.enum([
|
|
15179
|
+
"center",
|
|
15180
|
+
"bottom-left"
|
|
15181
|
+
]);
|
|
15182
|
+
var heroTypographyScaleIntentSchema = z23.enum([
|
|
15183
|
+
"quiet",
|
|
15184
|
+
"editorial",
|
|
15185
|
+
"display",
|
|
15186
|
+
"poster"
|
|
15187
|
+
]);
|
|
14603
15188
|
var sectionHeightIntentSchema = z23.enum([
|
|
14604
15189
|
"default",
|
|
14605
15190
|
"banner",
|
|
@@ -14635,6 +15220,7 @@ var imageSurfaceTreatmentSchema = z23.discriminatedUnion("kind", [
|
|
|
14635
15220
|
]);
|
|
14636
15221
|
var testimonialCardTreatmentSchema = z23.enum(["default", "accent-quote"]);
|
|
14637
15222
|
var tileTreatmentSchema = z23.enum(tileTreatmentValues);
|
|
15223
|
+
var eventListTreatmentSchema = z23.enum(eventListTreatmentValues);
|
|
14638
15224
|
var eyebrowTreatmentSchema = z23.enum(eyebrowTreatmentValues);
|
|
14639
15225
|
function uniqueNonEmpty(values) {
|
|
14640
15226
|
const uniqueValues = [...new Set(values)];
|
|
@@ -14676,10 +15262,13 @@ var blockDesignPlanSchema = z23.object({
|
|
|
14676
15262
|
emphasis: z23.enum(userDesignOptionCatalog.emphases),
|
|
14677
15263
|
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
14678
15264
|
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
15265
|
+
heroComposition: heroCompositionIntentSchema.optional(),
|
|
15266
|
+
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
14679
15267
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
14680
15268
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
14681
15269
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
14682
15270
|
tileTreatment: tileTreatmentSchema.optional(),
|
|
15271
|
+
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
14683
15272
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
14684
15273
|
}).strict();
|
|
14685
15274
|
var styleAuthoritySchema = z23.discriminatedUnion("kind", [
|
|
@@ -16079,6 +16668,7 @@ function styledSection(config) {
|
|
|
16079
16668
|
renderBackgroundImage = true,
|
|
16080
16669
|
backgroundImageLoading,
|
|
16081
16670
|
backgroundImageFetchPriority,
|
|
16671
|
+
allowOverflow = false,
|
|
16082
16672
|
fullWidthPath
|
|
16083
16673
|
} = config;
|
|
16084
16674
|
const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
|
|
@@ -16113,7 +16703,7 @@ function styledSection(config) {
|
|
|
16113
16703
|
// No fallback needed - transform handles all cases via defaultSpacing
|
|
16114
16704
|
}
|
|
16115
16705
|
},
|
|
16116
|
-
allowOverflow: {
|
|
16706
|
+
allowOverflow: allowOverflow ? true : {
|
|
16117
16707
|
$bind: {
|
|
16118
16708
|
from: `${bindFrom}.background`,
|
|
16119
16709
|
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
@@ -16808,6 +17398,14 @@ var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
|
16808
17398
|
function isTileTreatment(value) {
|
|
16809
17399
|
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
16810
17400
|
}
|
|
17401
|
+
var eventListTreatmentClassMap = {
|
|
17402
|
+
plain: "",
|
|
17403
|
+
"lined-panel": "rb-event-list-treatment-lined-panel"
|
|
17404
|
+
};
|
|
17405
|
+
var eventListTreatmentSet = new Set(eventListTreatmentValues);
|
|
17406
|
+
function isEventListTreatment(value) {
|
|
17407
|
+
return typeof value === "string" && eventListTreatmentSet.has(value);
|
|
17408
|
+
}
|
|
16811
17409
|
var sectionClassNameTransform = {
|
|
16812
17410
|
id: "sectionStyles.resolveClassName",
|
|
16813
17411
|
kind: "string",
|
|
@@ -16875,6 +17473,17 @@ var sectionClassNameTransform = {
|
|
|
16875
17473
|
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
16876
17474
|
);
|
|
16877
17475
|
}
|
|
17476
|
+
const eventListTreatment = input?.eventListTreatment;
|
|
17477
|
+
if (isEventListTreatment(eventListTreatment)) {
|
|
17478
|
+
const eventListTreatmentClass = eventListTreatmentClassMap[eventListTreatment];
|
|
17479
|
+
if (eventListTreatmentClass) {
|
|
17480
|
+
classes.push(eventListTreatmentClass);
|
|
17481
|
+
}
|
|
17482
|
+
} else if (typeof eventListTreatment === "string" && process.env.NODE_ENV !== "production") {
|
|
17483
|
+
console.warn(
|
|
17484
|
+
`[sectionStyles] Invalid eventListTreatment value in _sectionStyles: "${eventListTreatment}". Expected one of: ${eventListTreatmentValues.join(", ")}.`
|
|
17485
|
+
);
|
|
17486
|
+
}
|
|
16878
17487
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
16879
17488
|
classes.push(fixedFrameScopeClass);
|
|
16880
17489
|
}
|
|
@@ -17310,6 +17919,35 @@ function sectionState(opts) {
|
|
|
17310
17919
|
);
|
|
17311
17920
|
}
|
|
17312
17921
|
|
|
17922
|
+
// ../blocks/src/system/node/fragments/headingDecoration.ts
|
|
17923
|
+
var defaultBindFrom = "_sectionStyles.headingDecoration";
|
|
17924
|
+
function headingDecoration({
|
|
17925
|
+
bindFrom = defaultBindFrom,
|
|
17926
|
+
family,
|
|
17927
|
+
placement,
|
|
17928
|
+
className
|
|
17929
|
+
}) {
|
|
17930
|
+
return el(
|
|
17931
|
+
"div",
|
|
17932
|
+
{
|
|
17933
|
+
"aria-hidden": "true",
|
|
17934
|
+
className: {
|
|
17935
|
+
$bind: {
|
|
17936
|
+
from: bindFrom,
|
|
17937
|
+
transforms: [
|
|
17938
|
+
{
|
|
17939
|
+
id: "ui.headingDecorationClassName",
|
|
17940
|
+
options: { baseClass: className, family }
|
|
17941
|
+
}
|
|
17942
|
+
]
|
|
17943
|
+
}
|
|
17944
|
+
}
|
|
17945
|
+
},
|
|
17946
|
+
null,
|
|
17947
|
+
when(`${bindFrom}.placement`, { equals: placement })
|
|
17948
|
+
);
|
|
17949
|
+
}
|
|
17950
|
+
|
|
17313
17951
|
// ../blocks/src/system/fragments/types.ts
|
|
17314
17952
|
import { z as z27 } from "zod";
|
|
17315
17953
|
var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
@@ -18088,6 +18726,10 @@ var testimonialsHeadingFragment = defineFragment({
|
|
|
18088
18726
|
when("content.heading"),
|
|
18089
18727
|
bind("content.heading")
|
|
18090
18728
|
),
|
|
18729
|
+
headingDecoration({
|
|
18730
|
+
family: "short-center-rule",
|
|
18731
|
+
placement: "under-centered-heading"
|
|
18732
|
+
}),
|
|
18091
18733
|
text(
|
|
18092
18734
|
{
|
|
18093
18735
|
as: "p",
|
|
@@ -18759,6 +19401,41 @@ var faqHeadingFragment = defineFragment({
|
|
|
18759
19401
|
});
|
|
18760
19402
|
|
|
18761
19403
|
// ../blocks/src/system/fragments/library/faqAccordion.ts
|
|
19404
|
+
function createFaqAccordionLayout(options = {}) {
|
|
19405
|
+
return accordionList({
|
|
19406
|
+
collection: "content.items",
|
|
19407
|
+
itemName: "faqItem",
|
|
19408
|
+
indexName: "faqIndex",
|
|
19409
|
+
accordionProps: {
|
|
19410
|
+
className: options.rootClassName ?? "accordion-root",
|
|
19411
|
+
type: "single",
|
|
19412
|
+
collapsible: true
|
|
19413
|
+
},
|
|
19414
|
+
itemProps: {
|
|
19415
|
+
className: {
|
|
19416
|
+
$bind: {
|
|
19417
|
+
from: "content._cardStyles",
|
|
19418
|
+
transforms: [
|
|
19419
|
+
{
|
|
19420
|
+
id: "boxStyles.all",
|
|
19421
|
+
options: {
|
|
19422
|
+
axis: "all",
|
|
19423
|
+
includeSpacing: false,
|
|
19424
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
|
|
19425
|
+
}
|
|
19426
|
+
}
|
|
19427
|
+
]
|
|
19428
|
+
},
|
|
19429
|
+
fallback: "rb-faq-item"
|
|
19430
|
+
},
|
|
19431
|
+
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
19432
|
+
// Legacy theme accordion style
|
|
19433
|
+
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
19434
|
+
},
|
|
19435
|
+
triggerFrom: "faqItem.question",
|
|
19436
|
+
contentFrom: "faqItem.answer"
|
|
19437
|
+
});
|
|
19438
|
+
}
|
|
18762
19439
|
var faqAccordionFragment = defineFragment({
|
|
18763
19440
|
id: "faqAccordion",
|
|
18764
19441
|
title: "FAQ Accordion",
|
|
@@ -18792,40 +19469,7 @@ var faqAccordionFragment = defineFragment({
|
|
|
18792
19469
|
}
|
|
18793
19470
|
}
|
|
18794
19471
|
],
|
|
18795
|
-
layout:
|
|
18796
|
-
collection: "content.items",
|
|
18797
|
-
itemName: "faqItem",
|
|
18798
|
-
indexName: "faqIndex",
|
|
18799
|
-
accordionProps: {
|
|
18800
|
-
className: "accordion-root",
|
|
18801
|
-
// CSS-first: all styling handled by theme CSS
|
|
18802
|
-
type: "single",
|
|
18803
|
-
collapsible: true
|
|
18804
|
-
},
|
|
18805
|
-
itemProps: {
|
|
18806
|
-
className: {
|
|
18807
|
-
$bind: {
|
|
18808
|
-
from: "content._cardStyles",
|
|
18809
|
-
transforms: [
|
|
18810
|
-
{
|
|
18811
|
-
id: "boxStyles.all",
|
|
18812
|
-
options: {
|
|
18813
|
-
axis: "all",
|
|
18814
|
-
includeSpacing: false,
|
|
18815
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
|
|
18816
|
-
}
|
|
18817
|
-
}
|
|
18818
|
-
]
|
|
18819
|
-
},
|
|
18820
|
-
fallback: "rb-faq-item"
|
|
18821
|
-
},
|
|
18822
|
-
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
18823
|
-
// Legacy theme accordion style
|
|
18824
|
-
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
18825
|
-
},
|
|
18826
|
-
triggerFrom: "faqItem.question",
|
|
18827
|
-
contentFrom: "faqItem.answer"
|
|
18828
|
-
})
|
|
19472
|
+
layout: createFaqAccordionLayout()
|
|
18829
19473
|
});
|
|
18830
19474
|
|
|
18831
19475
|
// ../blocks/src/system/fragments/library/card.ts
|
|
@@ -19878,6 +20522,7 @@ var microLayout = styledSection({
|
|
|
19878
20522
|
function splitLayoutWith(children) {
|
|
19879
20523
|
return styledSection({
|
|
19880
20524
|
children: styledContainer({
|
|
20525
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
19881
20526
|
children: {
|
|
19882
20527
|
type: "grid",
|
|
19883
20528
|
props: {
|
|
@@ -19902,6 +20547,7 @@ function splitLayoutWith(children) {
|
|
|
19902
20547
|
// The split variants render the image as a real grid column, so suppress
|
|
19903
20548
|
// the default absolute background image layer while keeping color/overlay.
|
|
19904
20549
|
renderBackgroundImage: false,
|
|
20550
|
+
allowOverflow: true,
|
|
19905
20551
|
baseClass: ""
|
|
19906
20552
|
});
|
|
19907
20553
|
}
|
|
@@ -20055,6 +20701,21 @@ function introHeading(className) {
|
|
|
20055
20701
|
bind("content.title")
|
|
20056
20702
|
);
|
|
20057
20703
|
}
|
|
20704
|
+
function introHeadingGroup(className) {
|
|
20705
|
+
return stack(
|
|
20706
|
+
{
|
|
20707
|
+
gap: "sm",
|
|
20708
|
+
className: "rb-intro-heading-group"
|
|
20709
|
+
},
|
|
20710
|
+
[
|
|
20711
|
+
introHeading(className),
|
|
20712
|
+
headingDecoration({
|
|
20713
|
+
family: "organic-squiggle",
|
|
20714
|
+
placement: "after-heading"
|
|
20715
|
+
})
|
|
20716
|
+
]
|
|
20717
|
+
);
|
|
20718
|
+
}
|
|
20058
20719
|
function introBody(className = "rb-prose rb-max-w-none") {
|
|
20059
20720
|
return richText({ className }, bind("content.body"));
|
|
20060
20721
|
}
|
|
@@ -20073,6 +20734,10 @@ function introCopyStack(options = {}) {
|
|
|
20073
20734
|
},
|
|
20074
20735
|
[
|
|
20075
20736
|
introHeading(options.headingClassName ?? "rb-intro-title"),
|
|
20737
|
+
headingDecoration({
|
|
20738
|
+
family: "organic-squiggle",
|
|
20739
|
+
placement: "after-heading"
|
|
20740
|
+
}),
|
|
20076
20741
|
introBody(options.bodyClassName),
|
|
20077
20742
|
introCtas(options.ctaJustify)
|
|
20078
20743
|
]
|
|
@@ -20112,7 +20777,7 @@ var statementCopyLayout = styledSection({
|
|
|
20112
20777
|
className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
|
|
20113
20778
|
},
|
|
20114
20779
|
[
|
|
20115
|
-
|
|
20780
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
20116
20781
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
20117
20782
|
introBody(),
|
|
20118
20783
|
introCtas("start")
|
|
@@ -20133,7 +20798,7 @@ var statementMediaLayout = styledSection({
|
|
|
20133
20798
|
className: "rb-intro rb-intro-statement-media rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-3 rb-lg-items-center"
|
|
20134
20799
|
},
|
|
20135
20800
|
[
|
|
20136
|
-
|
|
20801
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
20137
20802
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
20138
20803
|
introBody(),
|
|
20139
20804
|
introCtas("start")
|
|
@@ -21135,6 +21800,9 @@ function isNodeDefinitionArray(layout) {
|
|
|
21135
21800
|
}
|
|
21136
21801
|
var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
|
|
21137
21802
|
var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
|
|
21803
|
+
var questionColumnsAccordionLayout = createFaqAccordionLayout({
|
|
21804
|
+
rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
|
|
21805
|
+
});
|
|
21138
21806
|
var defaultLayout = styledSection({
|
|
21139
21807
|
children: styledContainer({
|
|
21140
21808
|
baseClassName: "rb-relative rb-isolate",
|
|
@@ -21148,11 +21816,24 @@ var twoColumnLayout = styledSection({
|
|
|
21148
21816
|
children: el(
|
|
21149
21817
|
"div",
|
|
21150
21818
|
{
|
|
21151
|
-
className: "rb-faq-
|
|
21819
|
+
className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
|
|
21152
21820
|
},
|
|
21153
21821
|
[
|
|
21154
|
-
el("div", { className: "rb-faq-
|
|
21155
|
-
el("div", { className: "rb-faq-
|
|
21822
|
+
el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
|
|
21823
|
+
el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
|
|
21824
|
+
]
|
|
21825
|
+
)
|
|
21826
|
+
}),
|
|
21827
|
+
baseClass: ""
|
|
21828
|
+
});
|
|
21829
|
+
var questionColumnsLayout = styledSection({
|
|
21830
|
+
children: styledContainer({
|
|
21831
|
+
baseClassName: "rb-relative rb-isolate",
|
|
21832
|
+
children: stack(
|
|
21833
|
+
{ gap: "xl", className: "rb-w-full" },
|
|
21834
|
+
[
|
|
21835
|
+
headingLayout,
|
|
21836
|
+
questionColumnsAccordionLayout
|
|
21156
21837
|
]
|
|
21157
21838
|
)
|
|
21158
21839
|
}),
|
|
@@ -21177,7 +21858,8 @@ var faqManifest = createBlockManifest({
|
|
|
21177
21858
|
layout: defaultLayout,
|
|
21178
21859
|
variants: {
|
|
21179
21860
|
default: defaultLayout,
|
|
21180
|
-
"two-column": twoColumnLayout
|
|
21861
|
+
"two-column": twoColumnLayout,
|
|
21862
|
+
"question-columns": questionColumnsLayout
|
|
21181
21863
|
},
|
|
21182
21864
|
defaultVariant: "default",
|
|
21183
21865
|
variantOptions: {
|
|
@@ -21188,6 +21870,10 @@ var faqManifest = createBlockManifest({
|
|
|
21188
21870
|
"two-column": {
|
|
21189
21871
|
label: "Two column",
|
|
21190
21872
|
description: "A left heading column with FAQ items on the right."
|
|
21873
|
+
},
|
|
21874
|
+
"question-columns": {
|
|
21875
|
+
label: "Question columns",
|
|
21876
|
+
description: "A full-width heading above FAQ items split into two columns."
|
|
21191
21877
|
}
|
|
21192
21878
|
},
|
|
21193
21879
|
description: "Accordion of frequently asked questions and answers.",
|
|
@@ -21309,9 +21995,21 @@ var eyebrowTreatmentClassMap = {
|
|
|
21309
21995
|
"accent-pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent rb-eyebrow-treatment-pill-bounce"
|
|
21310
21996
|
};
|
|
21311
21997
|
var eyebrowTreatmentSet = new Set(eyebrowTreatmentValues);
|
|
21998
|
+
var headingDecorationFamilySet = new Set(visibleHeadingDecorationFamilyValues);
|
|
21999
|
+
var headingDecorationPlacementSet = new Set(visibleHeadingDecorationPlacementValues);
|
|
22000
|
+
var headingDecorationColorTokenSet = new Set(headingDecorationColorTokenValues);
|
|
21312
22001
|
function isEyebrowTreatment(value) {
|
|
21313
22002
|
return typeof value === "string" && eyebrowTreatmentSet.has(value);
|
|
21314
22003
|
}
|
|
22004
|
+
function isHeadingDecorationFamily(value) {
|
|
22005
|
+
return typeof value === "string" && headingDecorationFamilySet.has(value);
|
|
22006
|
+
}
|
|
22007
|
+
function isHeadingDecorationPlacement(value) {
|
|
22008
|
+
return typeof value === "string" && headingDecorationPlacementSet.has(value);
|
|
22009
|
+
}
|
|
22010
|
+
function isHeadingDecorationColorToken(value) {
|
|
22011
|
+
return typeof value === "string" && headingDecorationColorTokenSet.has(value);
|
|
22012
|
+
}
|
|
21315
22013
|
var imageGalleryCornerClassMap = {
|
|
21316
22014
|
none: "",
|
|
21317
22015
|
sm: "rb-rounded-sm",
|
|
@@ -21415,6 +22113,10 @@ var sectionStateToneTransform = {
|
|
|
21415
22113
|
summary: "Map semantic section-state kind to feedback tone",
|
|
21416
22114
|
run: (value) => sectionStateToneFromUnknown(value)
|
|
21417
22115
|
};
|
|
22116
|
+
var heroTitleLengthThresholds = {
|
|
22117
|
+
medium: { maxCharacters: 42, maxWords: 6 },
|
|
22118
|
+
long: { maxCharacters: 78, maxWords: 11 }
|
|
22119
|
+
};
|
|
21418
22120
|
function isPlainObject(value) {
|
|
21419
22121
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
21420
22122
|
}
|
|
@@ -21422,6 +22124,14 @@ function readString(obj, key) {
|
|
|
21422
22124
|
const v = obj[key];
|
|
21423
22125
|
return typeof v === "string" ? v : void 0;
|
|
21424
22126
|
}
|
|
22127
|
+
function resolveGeneratedHeroLayoutStyles(content) {
|
|
22128
|
+
const raw = content._heroLayoutStyles;
|
|
22129
|
+
return isPlainObject(raw) ? raw : null;
|
|
22130
|
+
}
|
|
22131
|
+
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
22132
|
+
const generated = resolveGeneratedHeroLayoutStyles(content);
|
|
22133
|
+
return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
|
|
22134
|
+
}
|
|
21425
22135
|
function resolveHeroVariant(content) {
|
|
21426
22136
|
const variant = readString(content, "variant");
|
|
21427
22137
|
if (variant && variant.trim()) return variant.trim();
|
|
@@ -21430,14 +22140,14 @@ function resolveHeroVariant(content) {
|
|
|
21430
22140
|
return null;
|
|
21431
22141
|
}
|
|
21432
22142
|
function resolveHeroContentAlignment(content) {
|
|
21433
|
-
const raw =
|
|
22143
|
+
const raw = readHeroLayoutString(content, "contentAlignment");
|
|
21434
22144
|
if (raw === "left" || raw === "center" || raw === "right") return raw;
|
|
21435
22145
|
const variant = resolveHeroVariant(content);
|
|
21436
22146
|
if (variant === "split" || variant === "splitReverse") return "left";
|
|
21437
22147
|
return "center";
|
|
21438
22148
|
}
|
|
21439
22149
|
function resolveHeroVerticalAlignment(content) {
|
|
21440
|
-
const raw =
|
|
22150
|
+
const raw = readHeroLayoutString(content, "verticalAlignment");
|
|
21441
22151
|
if (raw === "top" || raw === "center" || raw === "bottom") return raw;
|
|
21442
22152
|
const sectionStyles = asPartialObject(content._sectionStyles);
|
|
21443
22153
|
const minHeight = sectionStyles?.minHeight;
|
|
@@ -21447,11 +22157,29 @@ function resolveHeroVerticalAlignment(content) {
|
|
|
21447
22157
|
return "top";
|
|
21448
22158
|
}
|
|
21449
22159
|
function resolveHeroContentMaxWidth(content) {
|
|
21450
|
-
const raw =
|
|
22160
|
+
const raw = readHeroLayoutString(content, "contentMaxWidth");
|
|
21451
22161
|
if (raw === "default" || raw === "narrow" || raw === "medium" || raw === "wide")
|
|
21452
22162
|
return raw;
|
|
21453
22163
|
return "default";
|
|
21454
22164
|
}
|
|
22165
|
+
function resolveHeroTypographyScale(content) {
|
|
22166
|
+
const raw = readHeroLayoutString(
|
|
22167
|
+
content,
|
|
22168
|
+
"typographyScale",
|
|
22169
|
+
"heroTypographyScale"
|
|
22170
|
+
);
|
|
22171
|
+
if (raw === "quiet" || raw === "editorial" || raw === "display" || raw === "poster") {
|
|
22172
|
+
return raw;
|
|
22173
|
+
}
|
|
22174
|
+
return null;
|
|
22175
|
+
}
|
|
22176
|
+
function resolveHeroTitleLength(content) {
|
|
22177
|
+
const headline = readString(content, "headline")?.trim() ?? "";
|
|
22178
|
+
const wordCount = headline.length === 0 ? 0 : headline.split(/\s+/).length;
|
|
22179
|
+
if (headline.length > heroTitleLengthThresholds.long.maxCharacters || wordCount > heroTitleLengthThresholds.long.maxWords) return "long";
|
|
22180
|
+
if (headline.length > heroTitleLengthThresholds.medium.maxCharacters || wordCount > heroTitleLengthThresholds.medium.maxWords) return "medium";
|
|
22181
|
+
return "short";
|
|
22182
|
+
}
|
|
21455
22183
|
var heroContentWrapperClassSchema = z33.object({
|
|
21456
22184
|
base: z33.string().optional()
|
|
21457
22185
|
});
|
|
@@ -21464,6 +22192,8 @@ var heroContentWrapperClassTransform = {
|
|
|
21464
22192
|
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
21465
22193
|
const alignment = resolveHeroContentAlignment(content);
|
|
21466
22194
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
22195
|
+
const typographyScale = resolveHeroTypographyScale(content);
|
|
22196
|
+
const titleLength = resolveHeroTitleLength(content);
|
|
21467
22197
|
const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
|
|
21468
22198
|
const maxWidthClass = maxWidth === "narrow" ? "rb-max-w-2xl" : maxWidth === "medium" ? "rb-max-w-3xl" : maxWidth === "wide" ? "rb-max-w-5xl" : "";
|
|
21469
22199
|
const positionClass = alignment === "center" ? "rb-mx-auto" : alignment === "right" ? "rb-ml-auto" : "";
|
|
@@ -21471,7 +22201,9 @@ var heroContentWrapperClassTransform = {
|
|
|
21471
22201
|
options?.base,
|
|
21472
22202
|
textAlignClass,
|
|
21473
22203
|
maxWidthClass,
|
|
21474
|
-
positionClass
|
|
22204
|
+
positionClass,
|
|
22205
|
+
typographyScale ? `rb-hero-typography-${typographyScale}` : "",
|
|
22206
|
+
`rb-hero-title-${titleLength}`
|
|
21475
22207
|
]);
|
|
21476
22208
|
}
|
|
21477
22209
|
};
|
|
@@ -21771,11 +22503,67 @@ var uiTransforms = [
|
|
|
21771
22503
|
const treatment = isEyebrowTreatment(value) ? value : "plain";
|
|
21772
22504
|
return joinClasses3([baseClass, eyebrowTreatmentClassMap[treatment]]);
|
|
21773
22505
|
}
|
|
22506
|
+
},
|
|
22507
|
+
{
|
|
22508
|
+
id: "ui.headingDecorationClassName",
|
|
22509
|
+
kind: "string",
|
|
22510
|
+
summary: "Apply constrained Theme V2 heading decoration classes",
|
|
22511
|
+
run: (value, options) => {
|
|
22512
|
+
const baseClass = typeof options?.baseClass === "string" && options.baseClass.trim() ? options.baseClass : "rb-heading-decoration";
|
|
22513
|
+
const decoration = asPartialObject(value);
|
|
22514
|
+
const family = isHeadingDecorationFamily(decoration?.family) ? decoration.family : null;
|
|
22515
|
+
const allowedFamily = isHeadingDecorationFamily(options?.family) ? options.family : null;
|
|
22516
|
+
const placement = isHeadingDecorationPlacement(decoration?.placement) ? decoration.placement : null;
|
|
22517
|
+
const colorToken = isHeadingDecorationColorToken(decoration?.colorToken) ? decoration.colorToken : "primary";
|
|
22518
|
+
if (!family || !placement) return "rb-hidden";
|
|
22519
|
+
if (allowedFamily && family !== allowedFamily) return "rb-hidden";
|
|
22520
|
+
return joinClasses3([
|
|
22521
|
+
baseClass,
|
|
22522
|
+
`rb-heading-decoration-${family}`,
|
|
22523
|
+
`rb-heading-decoration-placement-${placement}`,
|
|
22524
|
+
`rb-heading-decoration-color-${colorToken}`
|
|
22525
|
+
]);
|
|
22526
|
+
}
|
|
21774
22527
|
}
|
|
21775
22528
|
];
|
|
21776
22529
|
|
|
21777
22530
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
21778
22531
|
import { z as z34 } from "zod";
|
|
22532
|
+
|
|
22533
|
+
// ../theme-core/src/siteChromePlacement.ts
|
|
22534
|
+
var HEADER_POSITIONINGS = ["static", "sticky", "fixed"];
|
|
22535
|
+
function parseHeaderPositioning(value) {
|
|
22536
|
+
return isHeaderPositioning(value) ? value : "static";
|
|
22537
|
+
}
|
|
22538
|
+
function isHeaderPositioning(value) {
|
|
22539
|
+
return typeof value === "string" && HEADER_POSITIONINGS.includes(value);
|
|
22540
|
+
}
|
|
22541
|
+
function planSiteChromePlacement(positioning) {
|
|
22542
|
+
switch (positioning) {
|
|
22543
|
+
case "static":
|
|
22544
|
+
return {
|
|
22545
|
+
kind: "static",
|
|
22546
|
+
headerRootClassName: null,
|
|
22547
|
+
standaloneShellClassName: null
|
|
22548
|
+
};
|
|
22549
|
+
case "sticky":
|
|
22550
|
+
return {
|
|
22551
|
+
kind: "sticky",
|
|
22552
|
+
headerRootClassName: "rb-sticky rb-top-0",
|
|
22553
|
+
standaloneShellClassName: "sticky top-0 z-40 w-full"
|
|
22554
|
+
};
|
|
22555
|
+
case "fixed":
|
|
22556
|
+
return {
|
|
22557
|
+
kind: "fixed",
|
|
22558
|
+
headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
|
|
22559
|
+
standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
|
|
22560
|
+
};
|
|
22561
|
+
default:
|
|
22562
|
+
return assertNever(positioning);
|
|
22563
|
+
}
|
|
22564
|
+
}
|
|
22565
|
+
|
|
22566
|
+
// ../blocks/src/system/transforms/registry/layout.ts
|
|
21779
22567
|
var joinClasses4 = (parts) => parts.filter(
|
|
21780
22568
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
21781
22569
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -21891,7 +22679,8 @@ var headerRootClassTransform = {
|
|
|
21891
22679
|
...options
|
|
21892
22680
|
};
|
|
21893
22681
|
const content = asPartialObject(value) ?? {};
|
|
21894
|
-
const positioning =
|
|
22682
|
+
const positioning = parseHeaderPositioning(content.positioning);
|
|
22683
|
+
const placement = planSiteChromePlacement(positioning);
|
|
21895
22684
|
const shrinkOnScroll = Boolean(content.shrinkOnScroll);
|
|
21896
22685
|
const header = asPartialObject(value);
|
|
21897
22686
|
const visuals = resolveHeaderVisualStyles(header, context.theme);
|
|
@@ -21903,14 +22692,14 @@ var headerRootClassTransform = {
|
|
|
21903
22692
|
if (config.blur) classes.push(config.blur);
|
|
21904
22693
|
if (config.blurSupport) classes.push(config.blurSupport);
|
|
21905
22694
|
}
|
|
21906
|
-
if (
|
|
22695
|
+
if (placement.kind === "sticky") {
|
|
21907
22696
|
classes.push(
|
|
21908
22697
|
visuals.isTransparent ? config.stickyTransparent : config.sticky
|
|
21909
22698
|
);
|
|
21910
|
-
} else if (
|
|
22699
|
+
} else if (placement.kind === "fixed") {
|
|
21911
22700
|
classes.push(config.fixed);
|
|
21912
22701
|
}
|
|
21913
|
-
if (shrinkOnScroll &&
|
|
22702
|
+
if (shrinkOnScroll && placement.kind !== "static") {
|
|
21914
22703
|
classes.push(config.shrink);
|
|
21915
22704
|
}
|
|
21916
22705
|
const VALID_VARIANTS = [
|
|
@@ -22445,6 +23234,10 @@ function desktopOnlyDisplay(display) {
|
|
|
22445
23234
|
return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
|
|
22446
23235
|
}
|
|
22447
23236
|
|
|
23237
|
+
// ../theme-core/src/siteChromeOverlayClearance.ts
|
|
23238
|
+
var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
23239
|
+
var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
|
|
23240
|
+
|
|
22448
23241
|
// ../blocks/src/system/blocks/site-header.ts
|
|
22449
23242
|
var logoRow = link(
|
|
22450
23243
|
{
|
|
@@ -22717,6 +23510,7 @@ var transparentLayout = inline(
|
|
|
22717
23510
|
);
|
|
22718
23511
|
var floatingLayout = inline(
|
|
22719
23512
|
{
|
|
23513
|
+
[SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
|
|
22720
23514
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
22721
23515
|
transforms: pipe(
|
|
22722
23516
|
tx("layout.maxWidthClass", {
|
|
@@ -23662,6 +24456,10 @@ var sectionHeading = stack(
|
|
|
23662
24456
|
when("content.title"),
|
|
23663
24457
|
bind("content.title")
|
|
23664
24458
|
),
|
|
24459
|
+
headingDecoration({
|
|
24460
|
+
family: "short-center-rule",
|
|
24461
|
+
placement: "under-centered-heading"
|
|
24462
|
+
}),
|
|
23665
24463
|
richText(
|
|
23666
24464
|
{
|
|
23667
24465
|
className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
|
|
@@ -26085,7 +26883,7 @@ var COLUMN_CLASSES = {
|
|
|
26085
26883
|
};
|
|
26086
26884
|
function getContainerClass(layout, columns) {
|
|
26087
26885
|
if (layout === "compact") {
|
|
26088
|
-
return "event-listing-compact-container rb-flex rb-flex-col
|
|
26886
|
+
return "event-listing-compact-container rb-flex rb-flex-col";
|
|
26089
26887
|
}
|
|
26090
26888
|
if (layout === "stack") {
|
|
26091
26889
|
return "rb-flex rb-flex-col rb-gap-6";
|
|
@@ -28913,6 +29711,7 @@ import { z as z53 } from "zod";
|
|
|
28913
29711
|
var storedProductCartItemSchema = z53.object({
|
|
28914
29712
|
kind: z53.literal("product"),
|
|
28915
29713
|
productId: z53.string().min(1),
|
|
29714
|
+
productCategoryId: z53.string().min(1).optional().nullable(),
|
|
28916
29715
|
variantId: z53.string().min(1).optional().nullable(),
|
|
28917
29716
|
title: z53.string().min(1),
|
|
28918
29717
|
variantTitle: z53.string().optional().nullable(),
|
|
@@ -31417,6 +32216,10 @@ var scheduleTileTreatments = [
|
|
|
31417
32216
|
"quiet",
|
|
31418
32217
|
"brand-depth"
|
|
31419
32218
|
];
|
|
32219
|
+
var eventListTreatments = [
|
|
32220
|
+
"plain",
|
|
32221
|
+
"lined-panel"
|
|
32222
|
+
];
|
|
31420
32223
|
function scheduleDetailsCapable() {
|
|
31421
32224
|
return declareBlockDesignCapability({
|
|
31422
32225
|
sectionSurfaces: "supported",
|
|
@@ -31425,6 +32228,14 @@ function scheduleDetailsCapable() {
|
|
|
31425
32228
|
tileTreatments: scheduleTileTreatments
|
|
31426
32229
|
});
|
|
31427
32230
|
}
|
|
32231
|
+
function eventListCapable() {
|
|
32232
|
+
return declareBlockDesignCapability({
|
|
32233
|
+
sectionSurfaces: "supported",
|
|
32234
|
+
contentFrames: ["plain"],
|
|
32235
|
+
itemSurfaces: "unsupported",
|
|
32236
|
+
eventListTreatments
|
|
32237
|
+
});
|
|
32238
|
+
}
|
|
31428
32239
|
function defaultBoundaryBias(visualWeight) {
|
|
31429
32240
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
31430
32241
|
}
|
|
@@ -31644,7 +32455,8 @@ var systemBlockDefinitionsRaw = [
|
|
|
31644
32455
|
flow: bodyFlow,
|
|
31645
32456
|
layoutProfiles: [
|
|
31646
32457
|
layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
|
|
31647
|
-
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
|
|
32458
|
+
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
|
|
32459
|
+
layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
|
|
31648
32460
|
]
|
|
31649
32461
|
})),
|
|
31650
32462
|
withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
|
|
@@ -31738,11 +32550,11 @@ var systemBlockDefinitionsRaw = [
|
|
|
31738
32550
|
flow: offeringsFlow,
|
|
31739
32551
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
|
|
31740
32552
|
})),
|
|
31741
|
-
withDesignCapability("block.event-listing", eventListingBlockDefinition,
|
|
32553
|
+
withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
31742
32554
|
flow: offeringsFlow,
|
|
31743
32555
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
31744
32556
|
})),
|
|
31745
|
-
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition,
|
|
32557
|
+
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
31746
32558
|
flow: offeringsFlow,
|
|
31747
32559
|
layoutProfiles: [
|
|
31748
32560
|
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
@@ -32874,6 +33686,15 @@ ${root} {
|
|
|
32874
33686
|
`;
|
|
32875
33687
|
}
|
|
32876
33688
|
|
|
33689
|
+
// ../theme-core/src/runtime/themeCssVarNames.ts
|
|
33690
|
+
var THEME_RADIUS_CSS_VARS = {
|
|
33691
|
+
block: "--rb-block-radius",
|
|
33692
|
+
button: "--rb-button-radius",
|
|
33693
|
+
input: "--rb-input-radius",
|
|
33694
|
+
legacyCard: "--radius-card",
|
|
33695
|
+
legacyControl: "--radius-control"
|
|
33696
|
+
};
|
|
33697
|
+
|
|
32877
33698
|
// ../theme-core/src/blocks/vars/customer-portal.ts
|
|
32878
33699
|
function generateCustomerPortalVars({
|
|
32879
33700
|
themeId
|
|
@@ -32887,6 +33708,11 @@ ${root} {
|
|
|
32887
33708
|
--cp-muted: rgb(var(--tb-mutedText));
|
|
32888
33709
|
--cp-border: rgb(var(--tb-border));
|
|
32889
33710
|
--cp-shadow: var(--shadow-elev);
|
|
33711
|
+
--cp-primary: rgb(var(--tb-primary));
|
|
33712
|
+
--cp-primary-hover: rgb(var(--tb-primary-700, var(--tb-primary)));
|
|
33713
|
+
--cp-error: rgb(var(--tb-destructive));
|
|
33714
|
+
--cp-card-radius: var(${THEME_RADIUS_CSS_VARS.block}, var(${THEME_RADIUS_CSS_VARS.legacyCard}, 0.75rem));
|
|
33715
|
+
--cp-control-radius: var(${THEME_RADIUS_CSS_VARS.input}, var(${THEME_RADIUS_CSS_VARS.legacyControl}, 0.5rem));
|
|
32890
33716
|
|
|
32891
33717
|
/* Shared tab bar (underline style) */
|
|
32892
33718
|
--rb-tab-border-width: 1px;
|
|
@@ -32937,7 +33763,7 @@ ${root} {
|
|
|
32937
33763
|
--rb-modal-bg: var(--cp-card-bg);
|
|
32938
33764
|
--rb-modal-border: var(--cp-card-border);
|
|
32939
33765
|
--rb-modal-shadow: var(--shadow-lg, var(--shadow-elev));
|
|
32940
|
-
--rb-modal-radius: var(--
|
|
33766
|
+
--rb-modal-radius: var(--cp-card-radius);
|
|
32941
33767
|
--rb-modal-max-width: 560px;
|
|
32942
33768
|
|
|
32943
33769
|
/* Header */
|
|
@@ -34318,6 +35144,9 @@ import { jsx as jsx5 } from "react/jsx-runtime";
|
|
|
34318
35144
|
import * as React from "react";
|
|
34319
35145
|
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
34320
35146
|
|
|
35147
|
+
// ../theme-core/src/fonts/uploadFormat.ts
|
|
35148
|
+
var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
35149
|
+
|
|
34321
35150
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
34322
35151
|
import { z as z61 } from "zod";
|
|
34323
35152
|
var themeBridgeConfigSchema = z61.object({
|
|
@@ -35091,6 +35920,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
|
|
|
35091
35920
|
];
|
|
35092
35921
|
|
|
35093
35922
|
// ../api/src/bookingVerticals.ts
|
|
35923
|
+
import { z as z64 } from "zod";
|
|
35094
35924
|
var VERTICAL_IDS = [
|
|
35095
35925
|
"yoga_wellness",
|
|
35096
35926
|
"fitness_pt",
|
|
@@ -35169,6 +35999,132 @@ var VERTICAL_ID_SET = new Set(VERTICAL_IDS);
|
|
|
35169
35999
|
var VERTICAL_PRESET_ID_SET = new Set(
|
|
35170
36000
|
VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
|
|
35171
36001
|
);
|
|
36002
|
+
function parseVerticalId(value) {
|
|
36003
|
+
return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
|
|
36004
|
+
}
|
|
36005
|
+
function parseVerticalPresetId(value) {
|
|
36006
|
+
return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
|
|
36007
|
+
}
|
|
36008
|
+
function getVerticalPresetDefinition(presetId) {
|
|
36009
|
+
const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
|
|
36010
|
+
if (!definition) {
|
|
36011
|
+
throw new Error(`Unhandled vertical preset id: ${presetId}`);
|
|
36012
|
+
}
|
|
36013
|
+
return definition;
|
|
36014
|
+
}
|
|
36015
|
+
function toNonEmptyVerticalPresetIds(presetIds) {
|
|
36016
|
+
const firstPresetId = presetIds[0];
|
|
36017
|
+
return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
|
|
36018
|
+
}
|
|
36019
|
+
function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
36020
|
+
return {
|
|
36021
|
+
verticalId,
|
|
36022
|
+
selectedPresetIds
|
|
36023
|
+
};
|
|
36024
|
+
}
|
|
36025
|
+
function createSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
36026
|
+
const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
|
|
36027
|
+
return nonEmptyPresetIds ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
|
|
36028
|
+
}
|
|
36029
|
+
function resolveSiteVerticalBookingConfig(rawConfig) {
|
|
36030
|
+
if (!rawConfig) {
|
|
36031
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
36032
|
+
}
|
|
36033
|
+
const verticalId = parseVerticalId(rawConfig.verticalId);
|
|
36034
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
36035
|
+
const selectedPresetIds = rawPresetIds.map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
|
|
36036
|
+
const config = {
|
|
36037
|
+
verticalId,
|
|
36038
|
+
selectedPresetIds
|
|
36039
|
+
};
|
|
36040
|
+
if (!verticalId && selectedPresetIds.length === 0) {
|
|
36041
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
36042
|
+
}
|
|
36043
|
+
const issues = getSiteVerticalConfigIssues(rawConfig, config);
|
|
36044
|
+
if (issues.length > 0) {
|
|
36045
|
+
return { kind: "invalid", config, issues };
|
|
36046
|
+
}
|
|
36047
|
+
const configuredConfig = verticalId ? createSiteVerticalBookingConfig(verticalId, selectedPresetIds) : null;
|
|
36048
|
+
if (!configuredConfig) {
|
|
36049
|
+
return { kind: "invalid", config, issues: ["empty_selected_presets"] };
|
|
36050
|
+
}
|
|
36051
|
+
return {
|
|
36052
|
+
kind: "configured",
|
|
36053
|
+
config: configuredConfig,
|
|
36054
|
+
selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
|
|
36055
|
+
};
|
|
36056
|
+
}
|
|
36057
|
+
function getSiteVerticalConfigIssues(rawConfig, config) {
|
|
36058
|
+
const issues = /* @__PURE__ */ new Set();
|
|
36059
|
+
if (rawConfig.verticalId != null && !config.verticalId) {
|
|
36060
|
+
issues.add("unknown_vertical");
|
|
36061
|
+
}
|
|
36062
|
+
if (!config.verticalId && config.selectedPresetIds.length > 0) {
|
|
36063
|
+
issues.add("missing_vertical");
|
|
36064
|
+
}
|
|
36065
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
36066
|
+
if (rawPresetIds.some((presetId) => parseVerticalPresetId(presetId) === null)) {
|
|
36067
|
+
issues.add("unknown_preset");
|
|
36068
|
+
}
|
|
36069
|
+
if (config.verticalId && config.selectedPresetIds.length === 0) {
|
|
36070
|
+
issues.add("empty_selected_presets");
|
|
36071
|
+
}
|
|
36072
|
+
const seenBehaviours = /* @__PURE__ */ new Set();
|
|
36073
|
+
for (const presetId of config.selectedPresetIds) {
|
|
36074
|
+
const presetDefinition = getVerticalPresetDefinition(presetId);
|
|
36075
|
+
if (config.verticalId && presetDefinition.verticalId !== config.verticalId) {
|
|
36076
|
+
issues.add("preset_vertical_mismatch");
|
|
36077
|
+
}
|
|
36078
|
+
if (presetDefinition.availability === "future") {
|
|
36079
|
+
issues.add("future_preset_selected");
|
|
36080
|
+
}
|
|
36081
|
+
if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) {
|
|
36082
|
+
issues.add("duplicate_canonical_behaviour");
|
|
36083
|
+
}
|
|
36084
|
+
seenBehaviours.add(presetDefinition.canonicalBehaviour);
|
|
36085
|
+
}
|
|
36086
|
+
return [...issues];
|
|
36087
|
+
}
|
|
36088
|
+
var VerticalIdSchema = z64.string().trim().transform((value, ctx) => {
|
|
36089
|
+
const parsed = parseVerticalId(value);
|
|
36090
|
+
if (!parsed) {
|
|
36091
|
+
ctx.addIssue({
|
|
36092
|
+
code: z64.ZodIssueCode.custom,
|
|
36093
|
+
message: "Unknown booking vertical"
|
|
36094
|
+
});
|
|
36095
|
+
return z64.NEVER;
|
|
36096
|
+
}
|
|
36097
|
+
return parsed;
|
|
36098
|
+
});
|
|
36099
|
+
var VerticalPresetIdSchema = z64.string().trim().transform((value, ctx) => {
|
|
36100
|
+
const parsed = parseVerticalPresetId(value);
|
|
36101
|
+
if (!parsed) {
|
|
36102
|
+
ctx.addIssue({
|
|
36103
|
+
code: z64.ZodIssueCode.custom,
|
|
36104
|
+
message: "Unknown booking preset"
|
|
36105
|
+
});
|
|
36106
|
+
return z64.NEVER;
|
|
36107
|
+
}
|
|
36108
|
+
return parsed;
|
|
36109
|
+
});
|
|
36110
|
+
var BookingVerticalConfigSchema = z64.object({
|
|
36111
|
+
verticalId: VerticalIdSchema.nullable(),
|
|
36112
|
+
selectedPresetIds: z64.array(VerticalPresetIdSchema).max(20)
|
|
36113
|
+
}).transform((value, ctx) => {
|
|
36114
|
+
const resolved = resolveSiteVerticalBookingConfig(value);
|
|
36115
|
+
if (resolved.kind === "invalid") {
|
|
36116
|
+
ctx.addIssue({
|
|
36117
|
+
code: z64.ZodIssueCode.custom,
|
|
36118
|
+
message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
|
|
36119
|
+
});
|
|
36120
|
+
return z64.NEVER;
|
|
36121
|
+
}
|
|
36122
|
+
return resolved.config;
|
|
36123
|
+
});
|
|
36124
|
+
var DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
|
|
36125
|
+
verticalId: null,
|
|
36126
|
+
selectedPresetIds: []
|
|
36127
|
+
};
|
|
35172
36128
|
function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
35173
36129
|
return {
|
|
35174
36130
|
id,
|
|
@@ -35188,51 +36144,51 @@ function isRecord3(value) {
|
|
|
35188
36144
|
}
|
|
35189
36145
|
|
|
35190
36146
|
// ../api/src/appointmentSetup.ts
|
|
35191
|
-
import { z as
|
|
36147
|
+
import { z as z65 } from "zod";
|
|
35192
36148
|
var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
|
|
35193
|
-
var appointmentSetupRefSchema =
|
|
35194
|
-
|
|
35195
|
-
|
|
36149
|
+
var appointmentSetupRefSchema = z65.discriminatedUnion("kind", [
|
|
36150
|
+
z65.object({ kind: z65.literal("existing"), id: z65.string().min(1) }),
|
|
36151
|
+
z65.object({ kind: z65.literal("new"), draftId: z65.string().min(1) })
|
|
35196
36152
|
]);
|
|
35197
|
-
var appointmentSetupVenueChoiceSchema =
|
|
35198
|
-
|
|
35199
|
-
|
|
35200
|
-
|
|
35201
|
-
kind:
|
|
35202
|
-
draftId:
|
|
35203
|
-
title:
|
|
35204
|
-
description:
|
|
35205
|
-
timezone:
|
|
35206
|
-
addressJson:
|
|
35207
|
-
locationJson:
|
|
36153
|
+
var appointmentSetupVenueChoiceSchema = z65.discriminatedUnion("kind", [
|
|
36154
|
+
z65.object({ kind: z65.literal("none") }),
|
|
36155
|
+
z65.object({ kind: z65.literal("existing"), venueId: z65.string().min(1) }),
|
|
36156
|
+
z65.object({
|
|
36157
|
+
kind: z65.literal("create"),
|
|
36158
|
+
draftId: z65.string().min(1),
|
|
36159
|
+
title: z65.string().trim().min(1),
|
|
36160
|
+
description: z65.string().nullable(),
|
|
36161
|
+
timezone: z65.string().trim().min(1).nullable(),
|
|
36162
|
+
addressJson: z65.record(z65.string(), z65.unknown()),
|
|
36163
|
+
locationJson: z65.object({ lat: z65.number(), lng: z65.number() }).nullable()
|
|
35208
36164
|
})
|
|
35209
36165
|
]);
|
|
35210
|
-
var appointmentSetupPaymentDraftSchema =
|
|
35211
|
-
priceType:
|
|
35212
|
-
});
|
|
35213
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
35214
|
-
|
|
35215
|
-
|
|
35216
|
-
kind:
|
|
35217
|
-
resourceRefs:
|
|
36166
|
+
var appointmentSetupPaymentDraftSchema = z65.object({
|
|
36167
|
+
priceType: z65.union([z65.literal("free"), z65.literal("paid")])
|
|
36168
|
+
});
|
|
36169
|
+
var appointmentSetupServiceAssignmentDraftSchema = z65.discriminatedUnion("kind", [
|
|
36170
|
+
z65.object({ kind: z65.literal("all_practitioners") }),
|
|
36171
|
+
z65.object({
|
|
36172
|
+
kind: z65.literal("selected_practitioners"),
|
|
36173
|
+
resourceRefs: z65.array(appointmentSetupRefSchema)
|
|
35218
36174
|
})
|
|
35219
36175
|
]);
|
|
35220
|
-
var appointmentSetupServiceDraftSchema =
|
|
36176
|
+
var appointmentSetupServiceDraftSchema = z65.object({
|
|
35221
36177
|
ref: appointmentSetupRefSchema,
|
|
35222
|
-
title:
|
|
35223
|
-
description:
|
|
35224
|
-
durationMinutes:
|
|
35225
|
-
prepMinutes:
|
|
35226
|
-
cleanupMinutes:
|
|
35227
|
-
priceAmount:
|
|
35228
|
-
isActive:
|
|
35229
|
-
locationType:
|
|
35230
|
-
|
|
35231
|
-
|
|
35232
|
-
|
|
36178
|
+
title: z65.string().trim().min(1),
|
|
36179
|
+
description: z65.string().nullable(),
|
|
36180
|
+
durationMinutes: z65.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
|
|
36181
|
+
prepMinutes: z65.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
36182
|
+
cleanupMinutes: z65.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
36183
|
+
priceAmount: z65.number().int().nonnegative().nullable(),
|
|
36184
|
+
isActive: z65.boolean(),
|
|
36185
|
+
locationType: z65.union([
|
|
36186
|
+
z65.literal("virtual"),
|
|
36187
|
+
z65.literal("in_person"),
|
|
36188
|
+
z65.literal("hybrid")
|
|
35233
36189
|
]),
|
|
35234
36190
|
venue: appointmentSetupVenueChoiceSchema,
|
|
35235
|
-
timezone:
|
|
36191
|
+
timezone: z65.string().trim().min(1).nullable(),
|
|
35236
36192
|
payment: appointmentSetupPaymentDraftSchema,
|
|
35237
36193
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
35238
36194
|
}).superRefine((service, ctx) => {
|
|
@@ -35251,49 +36207,49 @@ var appointmentSetupServiceDraftSchema = z64.object({
|
|
|
35251
36207
|
});
|
|
35252
36208
|
}
|
|
35253
36209
|
});
|
|
35254
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
36210
|
+
var appointmentSetupPractitionerDraftSchema = z65.object({
|
|
35255
36211
|
ref: appointmentSetupRefSchema,
|
|
35256
|
-
displayName:
|
|
35257
|
-
bio:
|
|
35258
|
-
timezone:
|
|
35259
|
-
colorHex:
|
|
35260
|
-
});
|
|
35261
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
35262
|
-
weekday:
|
|
35263
|
-
startTime:
|
|
35264
|
-
endTime:
|
|
35265
|
-
});
|
|
35266
|
-
var appointmentSetupStartTimePolicyDraftSchema =
|
|
35267
|
-
|
|
35268
|
-
|
|
35269
|
-
kind:
|
|
35270
|
-
intervalMinutes:
|
|
35271
|
-
|
|
35272
|
-
|
|
35273
|
-
|
|
35274
|
-
|
|
35275
|
-
|
|
35276
|
-
|
|
36212
|
+
displayName: z65.string().trim().min(1),
|
|
36213
|
+
bio: z65.string().nullable(),
|
|
36214
|
+
timezone: z65.string().trim().min(1),
|
|
36215
|
+
colorHex: z65.string().nullable()
|
|
36216
|
+
});
|
|
36217
|
+
var appointmentSetupWeeklyWindowDraftSchema = z65.object({
|
|
36218
|
+
weekday: z65.number().int().min(0).max(6),
|
|
36219
|
+
startTime: z65.string(),
|
|
36220
|
+
endTime: z65.string()
|
|
36221
|
+
});
|
|
36222
|
+
var appointmentSetupStartTimePolicyDraftSchema = z65.discriminatedUnion("kind", [
|
|
36223
|
+
z65.object({ kind: z65.literal("automatic_spacing") }),
|
|
36224
|
+
z65.object({
|
|
36225
|
+
kind: z65.literal("regular_interval"),
|
|
36226
|
+
intervalMinutes: z65.union([
|
|
36227
|
+
z65.literal(10),
|
|
36228
|
+
z65.literal(15),
|
|
36229
|
+
z65.literal(20),
|
|
36230
|
+
z65.literal(30),
|
|
36231
|
+
z65.literal(45),
|
|
36232
|
+
z65.literal(60)
|
|
35277
36233
|
])
|
|
35278
36234
|
})
|
|
35279
36235
|
]);
|
|
35280
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
35281
|
-
kind:
|
|
36236
|
+
var appointmentSetupAvailabilityDraftSchema = z65.object({
|
|
36237
|
+
kind: z65.literal("weekly_windows"),
|
|
35282
36238
|
resourceRef: appointmentSetupRefSchema,
|
|
35283
36239
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
35284
|
-
windows:
|
|
36240
|
+
windows: z65.array(appointmentSetupWeeklyWindowDraftSchema),
|
|
35285
36241
|
startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
|
|
35286
36242
|
});
|
|
35287
36243
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
35288
36244
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
35289
|
-
var appointmentSetupBookingNoticeSchema =
|
|
35290
|
-
minLeadMinutes:
|
|
35291
|
-
maxBookingNoticeMinutes:
|
|
35292
|
-
});
|
|
35293
|
-
var applyAppointmentSetupRequestSchema =
|
|
35294
|
-
services:
|
|
35295
|
-
practitioners:
|
|
35296
|
-
availability:
|
|
36245
|
+
var appointmentSetupBookingNoticeSchema = z65.object({
|
|
36246
|
+
minLeadMinutes: z65.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
|
|
36247
|
+
maxBookingNoticeMinutes: z65.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
|
|
36248
|
+
});
|
|
36249
|
+
var applyAppointmentSetupRequestSchema = z65.object({
|
|
36250
|
+
services: z65.array(appointmentSetupServiceDraftSchema),
|
|
36251
|
+
practitioners: z65.array(appointmentSetupPractitionerDraftSchema),
|
|
36252
|
+
availability: z65.array(appointmentSetupAvailabilityDraftSchema),
|
|
35297
36253
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
35298
36254
|
});
|
|
35299
36255
|
|
|
@@ -35326,24 +36282,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
35326
36282
|
];
|
|
35327
36283
|
|
|
35328
36284
|
// ../api/src/siteBanner.ts
|
|
35329
|
-
import { z as
|
|
36285
|
+
import { z as z66 } from "zod";
|
|
35330
36286
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
35331
36287
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
35332
36288
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
35333
36289
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
35334
|
-
var siteBannerScopeSchema =
|
|
35335
|
-
var siteBannerToneSchema =
|
|
35336
|
-
var siteBannerBodySchema =
|
|
35337
|
-
var siteBannerCtaSchema =
|
|
35338
|
-
label:
|
|
36290
|
+
var siteBannerScopeSchema = z66.enum(SITE_BANNER_SCOPE_VALUES);
|
|
36291
|
+
var siteBannerToneSchema = z66.enum(SITE_BANNER_TONE_VALUES);
|
|
36292
|
+
var siteBannerBodySchema = z66.unknown().transform(unwrapRichTextValue);
|
|
36293
|
+
var siteBannerCtaSchema = z66.object({
|
|
36294
|
+
label: z66.string().trim().min(1),
|
|
35339
36295
|
link: linkPayloadSchema
|
|
35340
36296
|
});
|
|
35341
|
-
var siteBannerSettingsSchema =
|
|
35342
|
-
|
|
35343
|
-
enabled:
|
|
36297
|
+
var siteBannerSettingsSchema = z66.discriminatedUnion("enabled", [
|
|
36298
|
+
z66.object({
|
|
36299
|
+
enabled: z66.literal(false)
|
|
35344
36300
|
}),
|
|
35345
|
-
|
|
35346
|
-
enabled:
|
|
36301
|
+
z66.object({
|
|
36302
|
+
enabled: z66.literal(true),
|
|
35347
36303
|
scope: siteBannerScopeSchema,
|
|
35348
36304
|
tone: siteBannerToneSchema,
|
|
35349
36305
|
body: siteBannerBodySchema,
|
|
@@ -35357,7 +36313,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
35357
36313
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
35358
36314
|
for (const issue of analysis.issues) {
|
|
35359
36315
|
ctx.addIssue({
|
|
35360
|
-
code:
|
|
36316
|
+
code: z66.ZodIssueCode.custom,
|
|
35361
36317
|
path: ["body"],
|
|
35362
36318
|
message: siteBannerBodyIssueMessage(issue)
|
|
35363
36319
|
});
|
|
@@ -35545,72 +36501,105 @@ function collectText(node) {
|
|
|
35545
36501
|
return (node.content ?? []).map(collectText).join("");
|
|
35546
36502
|
}
|
|
35547
36503
|
|
|
36504
|
+
// ../api/src/navigation/dashboardSiteNav.ts
|
|
36505
|
+
var hiddenDemoSiteNavSurfaceIds = [
|
|
36506
|
+
"site.newsletter"
|
|
36507
|
+
];
|
|
36508
|
+
var hiddenDemoSiteNavIds = new Set(
|
|
36509
|
+
hiddenDemoSiteNavSurfaceIds
|
|
36510
|
+
);
|
|
36511
|
+
var websiteSurfaceIds = [
|
|
36512
|
+
"site.content",
|
|
36513
|
+
"site.footerBlocks",
|
|
36514
|
+
"site.navigation",
|
|
36515
|
+
"site.media",
|
|
36516
|
+
"site.style",
|
|
36517
|
+
"site.performance"
|
|
36518
|
+
];
|
|
36519
|
+
var websiteSurfaceIdSet = new Set(
|
|
36520
|
+
websiteSurfaceIds
|
|
36521
|
+
);
|
|
36522
|
+
|
|
36523
|
+
// ../api/src/navigation/dashboardSettingsNav.ts
|
|
36524
|
+
var hiddenDemoSettingsNavSurfaceIds = [
|
|
36525
|
+
"settings.features",
|
|
36526
|
+
"settings.domains",
|
|
36527
|
+
"settings.bookings",
|
|
36528
|
+
"settings.emails",
|
|
36529
|
+
"settings.team",
|
|
36530
|
+
"settings.billing",
|
|
36531
|
+
"settings.developer",
|
|
36532
|
+
"settings.apiKeys",
|
|
36533
|
+
"settings.backup"
|
|
36534
|
+
];
|
|
36535
|
+
var hiddenDemoSettingsNavIds = new Set(hiddenDemoSettingsNavSurfaceIds);
|
|
36536
|
+
|
|
35548
36537
|
// ../api/src/aiPlayground.ts
|
|
35549
|
-
import { z as
|
|
35550
|
-
var Rfc6902PatchOp =
|
|
36538
|
+
import { z as z67 } from "zod";
|
|
36539
|
+
var Rfc6902PatchOp = z67.discriminatedUnion("op", [
|
|
35551
36540
|
// Standard RFC-6902 operations
|
|
35552
|
-
|
|
35553
|
-
op:
|
|
35554
|
-
path:
|
|
35555
|
-
value:
|
|
36541
|
+
z67.object({
|
|
36542
|
+
op: z67.literal("add"),
|
|
36543
|
+
path: z67.string(),
|
|
36544
|
+
value: z67.unknown()
|
|
35556
36545
|
}),
|
|
35557
|
-
|
|
35558
|
-
op:
|
|
35559
|
-
path:
|
|
36546
|
+
z67.object({
|
|
36547
|
+
op: z67.literal("remove"),
|
|
36548
|
+
path: z67.string()
|
|
35560
36549
|
}),
|
|
35561
|
-
|
|
35562
|
-
op:
|
|
35563
|
-
path:
|
|
35564
|
-
value:
|
|
36550
|
+
z67.object({
|
|
36551
|
+
op: z67.literal("replace"),
|
|
36552
|
+
path: z67.string(),
|
|
36553
|
+
value: z67.unknown()
|
|
35565
36554
|
}),
|
|
35566
|
-
|
|
35567
|
-
op:
|
|
35568
|
-
from:
|
|
35569
|
-
path:
|
|
36555
|
+
z67.object({
|
|
36556
|
+
op: z67.literal("move"),
|
|
36557
|
+
from: z67.string(),
|
|
36558
|
+
path: z67.string()
|
|
35570
36559
|
}),
|
|
35571
|
-
|
|
35572
|
-
op:
|
|
35573
|
-
from:
|
|
35574
|
-
path:
|
|
36560
|
+
z67.object({
|
|
36561
|
+
op: z67.literal("copy"),
|
|
36562
|
+
from: z67.string(),
|
|
36563
|
+
path: z67.string()
|
|
35575
36564
|
}),
|
|
35576
36565
|
// Block-level operations (Phase 2)
|
|
35577
|
-
|
|
35578
|
-
op:
|
|
35579
|
-
blockKind:
|
|
35580
|
-
afterBlockId:
|
|
35581
|
-
content:
|
|
35582
|
-
rationale:
|
|
36566
|
+
z67.object({
|
|
36567
|
+
op: z67.literal("add_block"),
|
|
36568
|
+
blockKind: z67.string(),
|
|
36569
|
+
afterBlockId: z67.string().nullable(),
|
|
36570
|
+
content: z67.record(z67.string(), z67.unknown()),
|
|
36571
|
+
rationale: z67.string()
|
|
35583
36572
|
}),
|
|
35584
|
-
|
|
35585
|
-
op:
|
|
35586
|
-
blockId:
|
|
35587
|
-
rationale:
|
|
36573
|
+
z67.object({
|
|
36574
|
+
op: z67.literal("delete_block"),
|
|
36575
|
+
blockId: z67.string(),
|
|
36576
|
+
rationale: z67.string()
|
|
35588
36577
|
}),
|
|
35589
|
-
|
|
35590
|
-
op:
|
|
35591
|
-
blockId:
|
|
35592
|
-
afterBlockId:
|
|
35593
|
-
rationale:
|
|
36578
|
+
z67.object({
|
|
36579
|
+
op: z67.literal("reorder_block"),
|
|
36580
|
+
blockId: z67.string(),
|
|
36581
|
+
afterBlockId: z67.string().nullable(),
|
|
36582
|
+
rationale: z67.string()
|
|
35594
36583
|
})
|
|
35595
36584
|
]);
|
|
35596
|
-
var PlaygroundProposeRequest =
|
|
35597
|
-
request:
|
|
36585
|
+
var PlaygroundProposeRequest = z67.object({
|
|
36586
|
+
request: z67.string().min(1).max(2e3)
|
|
35598
36587
|
});
|
|
35599
|
-
var MultiPagePatchEnvelope =
|
|
35600
|
-
pageId:
|
|
35601
|
-
blockId:
|
|
36588
|
+
var MultiPagePatchEnvelope = z67.object({
|
|
36589
|
+
pageId: z67.string(),
|
|
36590
|
+
blockId: z67.string().optional(),
|
|
35602
36591
|
// Not present for page-level ops
|
|
35603
|
-
blockKind:
|
|
35604
|
-
blockPurpose:
|
|
35605
|
-
ops:
|
|
35606
|
-
rationale:
|
|
35607
|
-
currentContent:
|
|
36592
|
+
blockKind: z67.string().optional(),
|
|
36593
|
+
blockPurpose: z67.string().optional().nullable(),
|
|
36594
|
+
ops: z67.array(Rfc6902PatchOp),
|
|
36595
|
+
rationale: z67.string(),
|
|
36596
|
+
currentContent: z67.record(z67.string(), z67.unknown()).optional()
|
|
35608
36597
|
});
|
|
35609
|
-
var MultiPageUpdateResponse =
|
|
35610
|
-
patches:
|
|
35611
|
-
assistantMessage:
|
|
35612
|
-
pagesModified:
|
|
35613
|
-
toolCallsUsed:
|
|
36598
|
+
var MultiPageUpdateResponse = z67.object({
|
|
36599
|
+
patches: z67.array(MultiPagePatchEnvelope),
|
|
36600
|
+
assistantMessage: z67.string(),
|
|
36601
|
+
pagesModified: z67.number(),
|
|
36602
|
+
toolCallsUsed: z67.number()
|
|
35614
36603
|
});
|
|
35615
36604
|
|
|
35616
36605
|
// src/data/prefetchBlockData.ts
|
|
@@ -36239,12 +37228,25 @@ function isPageContent(result) {
|
|
|
36239
37228
|
function isEntryContent(result) {
|
|
36240
37229
|
return result.type === "entry";
|
|
36241
37230
|
}
|
|
37231
|
+
function isContentLoadNotFoundError(error) {
|
|
37232
|
+
if (typeof error !== "object" || error === null || !("status" in error)) {
|
|
37233
|
+
return false;
|
|
37234
|
+
}
|
|
37235
|
+
return Reflect.get(error, "status") === 404;
|
|
37236
|
+
}
|
|
36242
37237
|
async function loadContent(params) {
|
|
36243
37238
|
const { client, siteId, path, preview = false, forceSite } = params;
|
|
36244
|
-
const [
|
|
37239
|
+
const [siteResult, contentResult] = await Promise.allSettled([
|
|
36245
37240
|
client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
|
|
36246
37241
|
client.getPage({ siteId, path, preview })
|
|
36247
37242
|
]);
|
|
37243
|
+
if (siteResult.status === "rejected" || contentResult.status === "rejected") {
|
|
37244
|
+
const failures = [siteResult, contentResult].filter((result) => result.status === "rejected").map((result) => result.reason);
|
|
37245
|
+
const upstreamFailure = failures.find((error) => !isContentLoadNotFoundError(error));
|
|
37246
|
+
throw upstreamFailure ?? failures[0];
|
|
37247
|
+
}
|
|
37248
|
+
const site = siteResult.value;
|
|
37249
|
+
const contentResponse = contentResult.value;
|
|
36248
37250
|
const customBlocks = resolveSiteCustomBlocks(site);
|
|
36249
37251
|
const mediaAssets = Array.isArray(contentResponse.mediaAssets) && contentResponse.mediaAssets.length > 0 ? contentResponse.mediaAssets : void 0;
|
|
36250
37252
|
if (isEntryResponse(contentResponse)) {
|