@riverbankcms/sdk 0.77.0 → 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-XSX7QKHQ.mjs → PreviewEditorSidebar-RIKFQ72L.mjs} +4916 -4847
- package/dist/{PreviewEditorUI-YZNEZ3QD.mjs → PreviewEditorUI-XO7TUWKK.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +194 -184
- 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/customBlockRegistry.d.ts +20 -1
- package/dist/_dts/blocks/src/index.d.ts +3 -2
- 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/blocks/site-header.d.ts +2 -2
- 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/fieldValidation/index.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/components/multi-step/runtimeFormValidation.d.ts +28 -0
- 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/layout.d.ts +4 -4
- 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/contracts/theme.d.ts +1 -1
- 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/rendering/components/Layout.d.ts +2 -2
- 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 +63 -51
- 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 +90 -48
- 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 +25 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +35 -7
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +96 -34
- 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-EAWHBECW.mjs → chunk-F7RTCZYN.mjs} +229 -50
- package/dist/{chunk-GSQX43EZ.mjs → chunk-NIDXI46P.mjs} +22 -41
- package/dist/{chunk-WLQBJN2Z.mjs → chunk-OECWLDHN.mjs} +4538 -1911
- package/dist/{chunk-VX7B5VAC.mjs → chunk-SVMMM2NA.mjs} +8 -0
- package/dist/{chunk-6SMUFTXD.mjs → chunk-SXOLGNMX.mjs} +1 -1
- package/dist/{chunk-ANKDYZ2E.mjs → chunk-TXDES5P2.mjs} +2 -2
- package/dist/cli/index.mjs +2036 -594
- 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 +8983 -6152
- 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 +1388 -427
- 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 +7395 -4767
- 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-Q6MTR4KL.mjs → sdk-runtime-ZJLKC6DR.mjs} +6 -6
- package/dist/server/components.mjs +4175 -2480
- package/dist/server/config-validation.mjs +1619 -658
- package/dist/server/config.mjs +1619 -658
- package/dist/server/data.mjs +1388 -427
- package/dist/server/index.mjs +488 -246
- package/dist/server/next.mjs +5607 -3354
- package/dist/server/page-converter.mjs +912 -259
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +4176 -2481
- package/dist/server/rendering.mjs +4194 -2486
- package/dist/server/routing.mjs +2078 -639
- package/dist/server/server.mjs +1886 -685
- package/dist/server/theme-bridge.mjs +4441 -1300
- package/dist/server/theme.mjs +89 -12
- package/dist/styles/index.css +1576 -1083
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-5FS5E6BI.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
|
}),
|
|
@@ -9442,25 +9776,81 @@ var blockAppearancePresets = [
|
|
|
9442
9776
|
}
|
|
9443
9777
|
],
|
|
9444
9778
|
design: {
|
|
9445
|
-
sectionSurface: "hero-image",
|
|
9779
|
+
sectionSurface: "hero-image",
|
|
9780
|
+
contentFrame: plainFrame,
|
|
9781
|
+
itemSurface: "none",
|
|
9782
|
+
transitionAfter: "soft-fade-short",
|
|
9783
|
+
emphasis: "high",
|
|
9784
|
+
sectionHeight: "immersive",
|
|
9785
|
+
heroComposition: "center",
|
|
9786
|
+
heroTypographyScale: "display",
|
|
9787
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
|
|
9788
|
+
imageSurfaceMotion: "fixed-frame",
|
|
9789
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
9790
|
+
}
|
|
9791
|
+
}),
|
|
9792
|
+
defineBlockAppearancePreset({
|
|
9793
|
+
kind: "block-design",
|
|
9794
|
+
id: "hero-brand-depth-expressive",
|
|
9795
|
+
target: "hero",
|
|
9796
|
+
label: "Expressive brand-depth hero",
|
|
9797
|
+
blockKinds: ["block.hero"],
|
|
9798
|
+
constraints: {
|
|
9799
|
+
layoutFamilies: ["centered", "compact"]
|
|
9800
|
+
},
|
|
9801
|
+
design: {
|
|
9802
|
+
sectionSurface: "brand-depth-band",
|
|
9803
|
+
contentFrame: plainFrame,
|
|
9804
|
+
itemSurface: "none",
|
|
9805
|
+
transitionAfter: "soft-fade-short",
|
|
9806
|
+
emphasis: "high",
|
|
9807
|
+
heroComposition: "center",
|
|
9808
|
+
heroTypographyScale: "editorial",
|
|
9809
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
9810
|
+
}
|
|
9811
|
+
}),
|
|
9812
|
+
defineBlockAppearancePreset({
|
|
9813
|
+
kind: "block-design",
|
|
9814
|
+
id: "hero-contained-intro",
|
|
9815
|
+
target: "hero",
|
|
9816
|
+
label: "Contained intro hero",
|
|
9817
|
+
blockKinds: ["block.hero"],
|
|
9818
|
+
design: {
|
|
9819
|
+
sectionSurface: "muted-band",
|
|
9820
|
+
contentFrame: panelFrame("inset"),
|
|
9821
|
+
itemSurface: "none",
|
|
9822
|
+
transitionAfter: "none",
|
|
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",
|
|
9446
9839
|
contentFrame: plainFrame,
|
|
9447
9840
|
itemSurface: "none",
|
|
9448
9841
|
transitionAfter: "soft-fade-short",
|
|
9449
9842
|
emphasis: "high",
|
|
9450
|
-
|
|
9451
|
-
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
|
|
9452
|
-
imageSurfaceMotion: "fixed-frame",
|
|
9453
|
-
eyebrowTreatment: "accent-pill-bounce"
|
|
9843
|
+
heroTypographyScale: "editorial"
|
|
9454
9844
|
}
|
|
9455
9845
|
}),
|
|
9456
9846
|
defineBlockAppearancePreset({
|
|
9457
9847
|
kind: "block-design",
|
|
9458
|
-
id: "hero-brand
|
|
9848
|
+
id: "hero-split-brand",
|
|
9459
9849
|
target: "hero",
|
|
9460
|
-
label: "
|
|
9850
|
+
label: "Brand split hero",
|
|
9461
9851
|
blockKinds: ["block.hero"],
|
|
9462
9852
|
constraints: {
|
|
9463
|
-
layoutFamilies: ["
|
|
9853
|
+
layoutFamilies: ["split"]
|
|
9464
9854
|
},
|
|
9465
9855
|
design: {
|
|
9466
9856
|
sectionSurface: "brand-depth-band",
|
|
@@ -9468,21 +9858,44 @@ var blockAppearancePresets = [
|
|
|
9468
9858
|
itemSurface: "none",
|
|
9469
9859
|
transitionAfter: "soft-fade-short",
|
|
9470
9860
|
emphasis: "high",
|
|
9861
|
+
heroTypographyScale: "display",
|
|
9471
9862
|
eyebrowTreatment: "accent-pill-bounce"
|
|
9472
9863
|
}
|
|
9473
9864
|
}),
|
|
9474
9865
|
defineBlockAppearancePreset({
|
|
9475
9866
|
kind: "block-design",
|
|
9476
|
-
id: "hero-
|
|
9867
|
+
id: "hero-split-soft-panel",
|
|
9477
9868
|
target: "hero",
|
|
9478
|
-
label: "
|
|
9869
|
+
label: "Soft panel split hero",
|
|
9479
9870
|
blockKinds: ["block.hero"],
|
|
9871
|
+
constraints: {
|
|
9872
|
+
layoutFamilies: ["split"]
|
|
9873
|
+
},
|
|
9480
9874
|
design: {
|
|
9481
9875
|
sectionSurface: "muted-band",
|
|
9482
|
-
contentFrame: panelFrame("
|
|
9876
|
+
contentFrame: panelFrame("raised"),
|
|
9483
9877
|
itemSurface: "none",
|
|
9484
|
-
transitionAfter: "
|
|
9485
|
-
emphasis: "high"
|
|
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 */
|
|
@@ -11636,8 +12049,19 @@ var headingTypographyStyleSchema = typographyStyleSchema.extend({
|
|
|
11636
12049
|
colorToken: themeColorTokenSchema.nullable().optional()
|
|
11637
12050
|
});
|
|
11638
12051
|
var proseLinkUnderlineStyleSchema = z21.enum(["solid", "dotted", "dashed"]);
|
|
11639
|
-
var proseLinkUnderlineThicknessSchema = z21.enum([
|
|
11640
|
-
|
|
12052
|
+
var proseLinkUnderlineThicknessSchema = z21.enum([
|
|
12053
|
+
"auto",
|
|
12054
|
+
"fromFont",
|
|
12055
|
+
"thin",
|
|
12056
|
+
"medium",
|
|
12057
|
+
"thick"
|
|
12058
|
+
]);
|
|
12059
|
+
var proseLinkUnderlineOffsetSchema = z21.enum([
|
|
12060
|
+
"auto",
|
|
12061
|
+
"tight",
|
|
12062
|
+
"normal",
|
|
12063
|
+
"loose"
|
|
12064
|
+
]);
|
|
11641
12065
|
var proseLinkStyleSchema = z21.object({
|
|
11642
12066
|
colorToken: themeColorTokenSchema.optional(),
|
|
11643
12067
|
hoverColorToken: themeColorTokenSchema.optional(),
|
|
@@ -11648,7 +12072,14 @@ var proseLinkStyleSchema = z21.object({
|
|
|
11648
12072
|
underlineThickness: proseLinkUnderlineThicknessSchema.optional(),
|
|
11649
12073
|
underlineOffset: proseLinkUnderlineOffsetSchema.optional()
|
|
11650
12074
|
});
|
|
11651
|
-
var semanticSpacingSchema = z21.enum([
|
|
12075
|
+
var semanticSpacingSchema = z21.enum([
|
|
12076
|
+
"none",
|
|
12077
|
+
"compact",
|
|
12078
|
+
"cozy",
|
|
12079
|
+
"medium",
|
|
12080
|
+
"comfortable",
|
|
12081
|
+
"spacious"
|
|
12082
|
+
]);
|
|
11652
12083
|
var boxRoundedSchema = z21.enum(["none", "sm", "md", "lg", "xl", "2xl", "full"]);
|
|
11653
12084
|
var boxBackgroundOverlaySchema = z21.object({
|
|
11654
12085
|
type: z21.enum(["none", "color", "gradient"]).nullable().optional(),
|
|
@@ -11694,6 +12125,7 @@ var sectionStylesOverrideSchema = z21.object({
|
|
|
11694
12125
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
11695
12126
|
minHeight: z21.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
11696
12127
|
tileTreatment: z21.enum(tileTreatmentValues).nullable().optional(),
|
|
12128
|
+
eventListTreatment: z21.enum(eventListTreatmentValues).nullable().optional(),
|
|
11697
12129
|
eyebrowTreatment: z21.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
11698
12130
|
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
11699
12131
|
// Author-level override consumed by later block/editor rendering phases.
|
|
@@ -11792,9 +12224,17 @@ var inputStyle = z21.object({
|
|
|
11792
12224
|
focus: z21.enum(["glow", "ring", "underline"]),
|
|
11793
12225
|
label: z21.enum(["inside", "above"])
|
|
11794
12226
|
});
|
|
11795
|
-
var headerVariant = z21.enum(["classic", "centered", "transparent", "floating"
|
|
12227
|
+
var headerVariant = z21.enum(["classic", "centered", "transparent", "floating"]);
|
|
11796
12228
|
var headerPositioning = z21.enum(["static", "sticky", "fixed"]);
|
|
11797
|
-
var headerNavStyle = z21.enum([
|
|
12229
|
+
var headerNavStyle = z21.enum([
|
|
12230
|
+
"minimal",
|
|
12231
|
+
"underline",
|
|
12232
|
+
"underline-grow",
|
|
12233
|
+
"capsule",
|
|
12234
|
+
"scale",
|
|
12235
|
+
"frosted",
|
|
12236
|
+
"solid"
|
|
12237
|
+
]);
|
|
11798
12238
|
var navFontWeight = z21.enum(["regular", "medium", "semibold", "bold"]);
|
|
11799
12239
|
var headerMaxWidth = z21.enum(["container", "full"]);
|
|
11800
12240
|
var headerContainerSchema = z21.object({
|
|
@@ -11842,8 +12282,22 @@ var dropdownStyleSchema = z21.object({
|
|
|
11842
12282
|
textSize: z21.enum(["xs", "sm", "base", "lg"]).optional()
|
|
11843
12283
|
// optional = no override (browser default)
|
|
11844
12284
|
}).optional();
|
|
11845
|
-
var headerCtaGapSchema = z21.enum([
|
|
11846
|
-
|
|
12285
|
+
var headerCtaGapSchema = z21.enum([
|
|
12286
|
+
"none",
|
|
12287
|
+
"tight",
|
|
12288
|
+
"compact",
|
|
12289
|
+
"default",
|
|
12290
|
+
"relaxed",
|
|
12291
|
+
"spacious"
|
|
12292
|
+
]);
|
|
12293
|
+
var headerCtaTreatmentSchema = z21.enum([
|
|
12294
|
+
"default",
|
|
12295
|
+
"primary",
|
|
12296
|
+
"secondary",
|
|
12297
|
+
"inverted",
|
|
12298
|
+
"outline",
|
|
12299
|
+
"ghost"
|
|
12300
|
+
]);
|
|
11847
12301
|
var navContainerSchema = z21.object({
|
|
11848
12302
|
type: z21.enum(["none", "pill", "glass"]).default("none"),
|
|
11849
12303
|
tint: z21.string().nullable().optional(),
|
|
@@ -11898,7 +12352,14 @@ var footerMaxWidth = z21.enum(["container", "full"]);
|
|
|
11898
12352
|
var footerMode = z21.enum(["default", "blocks", "default+blocks", "none"]);
|
|
11899
12353
|
var footerNavLayoutMode = z21.enum(["stack", "inline", "inline-wrap"]);
|
|
11900
12354
|
var footerNavLayoutAlign = z21.enum(["start", "center", "end", "space-between"]);
|
|
11901
|
-
var footerSpacing = z21.enum([
|
|
12355
|
+
var footerSpacing = z21.enum([
|
|
12356
|
+
"none",
|
|
12357
|
+
"tight",
|
|
12358
|
+
"compact",
|
|
12359
|
+
"default",
|
|
12360
|
+
"relaxed",
|
|
12361
|
+
"spacious"
|
|
12362
|
+
]);
|
|
11902
12363
|
var footerLogoPlacement = z21.enum(["left", "right", "above", "below"]);
|
|
11903
12364
|
var footerLogoSize = z21.enum(["sm", "md", "lg", "xl"]);
|
|
11904
12365
|
var footerLogoMaxHeight = z21.enum(["sm", "md", "lg", "xl"]);
|
|
@@ -11963,7 +12424,12 @@ var footerSchema = z21.object({
|
|
|
11963
12424
|
logo: footerLogoSchema.optional(),
|
|
11964
12425
|
bottomBar: footerBottomBarSchema.optional()
|
|
11965
12426
|
});
|
|
11966
|
-
var containerPaddingPresetSchema = z21.enum([
|
|
12427
|
+
var containerPaddingPresetSchema = z21.enum([
|
|
12428
|
+
"tight",
|
|
12429
|
+
"compact",
|
|
12430
|
+
"default",
|
|
12431
|
+
"relaxed"
|
|
12432
|
+
]);
|
|
11967
12433
|
var layoutSchema = z21.object({
|
|
11968
12434
|
containerPadding: z21.object({
|
|
11969
12435
|
mobile: containerPaddingPresetSchema.optional(),
|
|
@@ -11971,8 +12437,24 @@ var layoutSchema = z21.object({
|
|
|
11971
12437
|
desktop: containerPaddingPresetSchema.optional()
|
|
11972
12438
|
}).optional()
|
|
11973
12439
|
}).optional();
|
|
11974
|
-
var heroTypographySizeSchema = z21.enum([
|
|
11975
|
-
|
|
12440
|
+
var heroTypographySizeSchema = z21.enum([
|
|
12441
|
+
"sm",
|
|
12442
|
+
"base",
|
|
12443
|
+
"lg",
|
|
12444
|
+
"xl",
|
|
12445
|
+
"2xl",
|
|
12446
|
+
"3xl",
|
|
12447
|
+
"4xl",
|
|
12448
|
+
"5xl",
|
|
12449
|
+
"6xl",
|
|
12450
|
+
"editorial"
|
|
12451
|
+
]);
|
|
12452
|
+
var heroTypographyLineHeightSchema = z21.enum([
|
|
12453
|
+
"tight",
|
|
12454
|
+
"snug",
|
|
12455
|
+
"normal",
|
|
12456
|
+
"relaxed"
|
|
12457
|
+
]);
|
|
11976
12458
|
var heroResponsiveTypographySchema = z21.object({
|
|
11977
12459
|
headlineSize: heroTypographySizeSchema.optional(),
|
|
11978
12460
|
headlineLineHeight: heroTypographyLineHeightSchema.optional(),
|
|
@@ -12477,6 +12959,34 @@ var paletteVariantsById = new Map(
|
|
|
12477
12959
|
paletteVariants.map((v) => [v.id, v])
|
|
12478
12960
|
);
|
|
12479
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
|
+
|
|
12480
12990
|
// ../theme-core/src/site-styles/headerLooks.ts
|
|
12481
12991
|
function asHeaderLookId(value) {
|
|
12482
12992
|
return value;
|
|
@@ -12526,23 +13036,13 @@ var headerLayoutCatalog = [
|
|
|
12526
13036
|
maxRecommendedNavItems: 5,
|
|
12527
13037
|
allowedLogoShapes: ["none", "text-only", "horizontal", "square"]
|
|
12528
13038
|
},
|
|
12529
|
-
{
|
|
12530
|
-
id: asHeaderLayoutId("editorial"),
|
|
12531
|
-
label: "Editorial",
|
|
12532
|
-
description: "A composed, magazine-like stacked header treatment.",
|
|
12533
|
-
structure: "editorial-stack",
|
|
12534
|
-
variant: "editorial",
|
|
12535
|
-
defaultPositioning: "static",
|
|
12536
|
-
shrinkOnScroll: false,
|
|
12537
|
-
maxRecommendedNavItems: 6
|
|
12538
|
-
},
|
|
12539
13039
|
{
|
|
12540
13040
|
id: asHeaderLayoutId("floating"),
|
|
12541
13041
|
label: "Floating",
|
|
12542
13042
|
description: "Detached header chrome that sits over the opening section.",
|
|
12543
13043
|
structure: "floating-shell",
|
|
12544
13044
|
variant: "floating",
|
|
12545
|
-
defaultPositioning: "
|
|
13045
|
+
defaultPositioning: "sticky",
|
|
12546
13046
|
shrinkOnScroll: true,
|
|
12547
13047
|
maxRecommendedNavItems: 5,
|
|
12548
13048
|
allowedLogoShapes: ["none", "text-only", "horizontal"]
|
|
@@ -12556,17 +13056,23 @@ var headerStyleCatalog = [
|
|
|
12556
13056
|
id: asHeaderStyleId("minimal"),
|
|
12557
13057
|
label: "Minimal",
|
|
12558
13058
|
description: "Quiet surface with simple color-change navigation.",
|
|
12559
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"
|
|
13059
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12560
13060
|
navInteraction: "color-change",
|
|
12561
|
-
surface: "neutral"
|
|
13061
|
+
surface: "neutral",
|
|
13062
|
+
defaultDepth: "none",
|
|
13063
|
+
navTypography: "plain",
|
|
13064
|
+
moods: ["calm", "professional", "editorial"]
|
|
12562
13065
|
},
|
|
12563
13066
|
{
|
|
12564
13067
|
id: asHeaderStyleId("fine-line"),
|
|
12565
13068
|
label: "Fine Line",
|
|
12566
13069
|
description: "Light surface with a crisp lower rule and underline hover.",
|
|
12567
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"
|
|
13070
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12568
13071
|
navInteraction: "underline-grow",
|
|
12569
|
-
surface: "bordered"
|
|
13072
|
+
surface: "bordered",
|
|
13073
|
+
defaultDepth: "line",
|
|
13074
|
+
navTypography: "plain",
|
|
13075
|
+
moods: ["calm", "professional", "editorial"]
|
|
12570
13076
|
},
|
|
12571
13077
|
{
|
|
12572
13078
|
id: asHeaderStyleId("soft-bar"),
|
|
@@ -12574,7 +13080,10 @@ var headerStyleCatalog = [
|
|
|
12574
13080
|
description: "Soft tinted surface with gentle pill hover states.",
|
|
12575
13081
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12576
13082
|
navInteraction: "pill-background",
|
|
12577
|
-
surface: "soft"
|
|
13083
|
+
surface: "soft",
|
|
13084
|
+
defaultDepth: "line",
|
|
13085
|
+
navTypography: "plain",
|
|
13086
|
+
moods: ["calm", "professional"]
|
|
12578
13087
|
},
|
|
12579
13088
|
{
|
|
12580
13089
|
id: asHeaderStyleId("pill-nav"),
|
|
@@ -12582,23 +13091,32 @@ var headerStyleCatalog = [
|
|
|
12582
13091
|
description: "A calm pill navigation rail over a neutral header.",
|
|
12583
13092
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12584
13093
|
navInteraction: "pill-background",
|
|
12585
|
-
surface: "soft"
|
|
13094
|
+
surface: "soft",
|
|
13095
|
+
defaultDepth: "none",
|
|
13096
|
+
navTypography: "plain",
|
|
13097
|
+
moods: ["calm"]
|
|
12586
13098
|
},
|
|
12587
13099
|
{
|
|
12588
13100
|
id: asHeaderStyleId("brand-bar"),
|
|
12589
13101
|
label: "Brand Bar",
|
|
12590
13102
|
description: "Solid brand surface with high-contrast navigation.",
|
|
12591
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"
|
|
13103
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12592
13104
|
navInteraction: "color-change",
|
|
12593
|
-
surface: "brand-solid"
|
|
13105
|
+
surface: "brand-solid",
|
|
13106
|
+
defaultDepth: "none",
|
|
13107
|
+
navTypography: "brand-caps",
|
|
13108
|
+
moods: ["professional", "expressive", "utility"]
|
|
12594
13109
|
},
|
|
12595
13110
|
{
|
|
12596
13111
|
id: asHeaderStyleId("brand-underline"),
|
|
12597
13112
|
label: "Brand Underline",
|
|
12598
13113
|
description: "Brand surface with underline-grow navigation.",
|
|
12599
|
-
supportedLayoutIds: supportedLayouts(["classic"
|
|
13114
|
+
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
12600
13115
|
navInteraction: "underline-grow",
|
|
12601
|
-
surface: "brand-solid"
|
|
13116
|
+
surface: "brand-solid",
|
|
13117
|
+
defaultDepth: "none",
|
|
13118
|
+
navTypography: "brand-caps",
|
|
13119
|
+
moods: ["expressive"]
|
|
12602
13120
|
},
|
|
12603
13121
|
{
|
|
12604
13122
|
id: asHeaderStyleId("brand-pill"),
|
|
@@ -12606,41 +13124,54 @@ var headerStyleCatalog = [
|
|
|
12606
13124
|
description: "Solid brand surface with rounded active and hover states.",
|
|
12607
13125
|
supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
|
|
12608
13126
|
navInteraction: "pill-background",
|
|
12609
|
-
surface: "brand-solid"
|
|
13127
|
+
surface: "brand-solid",
|
|
13128
|
+
defaultDepth: "none",
|
|
13129
|
+
navTypography: "brand-caps",
|
|
13130
|
+
moods: ["expressive"]
|
|
12610
13131
|
},
|
|
12611
13132
|
{
|
|
12612
|
-
id: asHeaderStyleId("
|
|
12613
|
-
label: "
|
|
13133
|
+
id: asHeaderStyleId("serif-line"),
|
|
13134
|
+
label: "Serif Line",
|
|
12614
13135
|
description: "Typographic logo treatment with understated underline navigation.",
|
|
12615
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"
|
|
13136
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12616
13137
|
navInteraction: "underline-grow",
|
|
12617
|
-
surface: "bordered"
|
|
13138
|
+
surface: "bordered",
|
|
13139
|
+
defaultDepth: "line",
|
|
13140
|
+
navTypography: "heading",
|
|
13141
|
+
moods: ["editorial", "calm"]
|
|
12618
13142
|
},
|
|
12619
13143
|
{
|
|
12620
13144
|
id: asHeaderStyleId("flat-tabs"),
|
|
12621
13145
|
label: "Flat Tabs",
|
|
12622
13146
|
description: "Flat block hover and active states with a Swiss utility feel.",
|
|
12623
|
-
supportedLayoutIds: supportedLayouts(["classic", "centered"
|
|
13147
|
+
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
12624
13148
|
navInteraction: "flat-block",
|
|
12625
|
-
surface: "bordered"
|
|
13149
|
+
surface: "bordered",
|
|
13150
|
+
defaultDepth: "shadow",
|
|
13151
|
+
navTypography: "quiet-caps",
|
|
13152
|
+
moods: ["professional", "utility", "expressive"]
|
|
12626
13153
|
},
|
|
12627
13154
|
{
|
|
12628
13155
|
id: asHeaderStyleId("glass"),
|
|
12629
13156
|
label: "Glass",
|
|
12630
|
-
description: "
|
|
13157
|
+
description: "Translucent chrome with frosted navigation backing.",
|
|
12631
13158
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12632
13159
|
navInteraction: "glass-backed",
|
|
12633
13160
|
surface: "floating",
|
|
12634
|
-
|
|
13161
|
+
defaultDepth: "shadow",
|
|
13162
|
+
navTypography: "plain",
|
|
13163
|
+
moods: ["expressive", "calm"]
|
|
12635
13164
|
},
|
|
12636
13165
|
{
|
|
12637
13166
|
id: asHeaderStyleId("minimal-surface"),
|
|
12638
|
-
label: "
|
|
12639
|
-
description: "Floating
|
|
13167
|
+
label: "Clear Split",
|
|
13168
|
+
description: "Floating logo with transparent navigation and no shared shell.",
|
|
12640
13169
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12641
13170
|
navInteraction: "color-change",
|
|
12642
13171
|
surface: "floating",
|
|
12643
|
-
|
|
13172
|
+
defaultDepth: "none",
|
|
13173
|
+
navTypography: "plain",
|
|
13174
|
+
moods: ["editorial", "calm"]
|
|
12644
13175
|
},
|
|
12645
13176
|
{
|
|
12646
13177
|
id: asHeaderStyleId("soft-shell"),
|
|
@@ -12649,7 +13180,31 @@ var headerStyleCatalog = [
|
|
|
12649
13180
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
12650
13181
|
navInteraction: "pill-background",
|
|
12651
13182
|
surface: "floating",
|
|
12652
|
-
|
|
13183
|
+
defaultDepth: "shadow",
|
|
13184
|
+
navTypography: "plain",
|
|
13185
|
+
moods: ["calm", "professional"]
|
|
13186
|
+
},
|
|
13187
|
+
{
|
|
13188
|
+
id: asHeaderStyleId("split-glass"),
|
|
13189
|
+
label: "Split Glass",
|
|
13190
|
+
description: "Logo floats independently while the navigation sits in a glass rail.",
|
|
13191
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
13192
|
+
navInteraction: "glass-backed",
|
|
13193
|
+
surface: "floating",
|
|
13194
|
+
defaultDepth: "shadow",
|
|
13195
|
+
navTypography: "quiet-caps",
|
|
13196
|
+
moods: ["expressive"]
|
|
13197
|
+
},
|
|
13198
|
+
{
|
|
13199
|
+
id: asHeaderStyleId("split-pill"),
|
|
13200
|
+
label: "Split Pill",
|
|
13201
|
+
description: "Logo floats independently with a soft pill-backed navigation rail.",
|
|
13202
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
13203
|
+
navInteraction: "pill-background",
|
|
13204
|
+
surface: "floating",
|
|
13205
|
+
defaultDepth: "shadow",
|
|
13206
|
+
navTypography: "heading",
|
|
13207
|
+
moods: ["calm", "editorial"]
|
|
12653
13208
|
}
|
|
12654
13209
|
];
|
|
12655
13210
|
var headerLayoutsById = new Map(
|
|
@@ -12669,7 +13224,7 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
12669
13224
|
"brand-bar",
|
|
12670
13225
|
"brand-underline",
|
|
12671
13226
|
"brand-pill",
|
|
12672
|
-
"
|
|
13227
|
+
"serif-line",
|
|
12673
13228
|
"flat-tabs"
|
|
12674
13229
|
])
|
|
12675
13230
|
],
|
|
@@ -12682,19 +13237,7 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
12682
13237
|
"pill-nav",
|
|
12683
13238
|
"brand-bar",
|
|
12684
13239
|
"brand-pill",
|
|
12685
|
-
"
|
|
12686
|
-
"flat-tabs"
|
|
12687
|
-
])
|
|
12688
|
-
],
|
|
12689
|
-
[
|
|
12690
|
-
asHeaderLayoutId("editorial"),
|
|
12691
|
-
headerStyleRepairChain([
|
|
12692
|
-
"minimal",
|
|
12693
|
-
"fine-line",
|
|
12694
|
-
"soft-bar",
|
|
12695
|
-
"brand-bar",
|
|
12696
|
-
"brand-underline",
|
|
12697
|
-
"editorial-line",
|
|
13240
|
+
"serif-line",
|
|
12698
13241
|
"flat-tabs"
|
|
12699
13242
|
])
|
|
12700
13243
|
],
|
|
@@ -12703,6 +13246,8 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
12703
13246
|
headerStyleRepairChain([
|
|
12704
13247
|
"glass",
|
|
12705
13248
|
"minimal-surface",
|
|
13249
|
+
"split-glass",
|
|
13250
|
+
"split-pill",
|
|
12706
13251
|
"soft-shell",
|
|
12707
13252
|
"brand-pill"
|
|
12708
13253
|
])
|
|
@@ -12711,20 +13256,69 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
12711
13256
|
function headerStyleRepairChain(values) {
|
|
12712
13257
|
return values.map(asHeaderStyleId);
|
|
12713
13258
|
}
|
|
12714
|
-
var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
12715
|
-
[
|
|
12716
|
-
|
|
12717
|
-
|
|
12718
|
-
|
|
12719
|
-
|
|
12720
|
-
|
|
12721
|
-
|
|
12722
|
-
|
|
12723
|
-
|
|
12724
|
-
|
|
12725
|
-
|
|
12726
|
-
|
|
12727
|
-
]
|
|
13259
|
+
var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
13260
|
+
[
|
|
13261
|
+
[
|
|
13262
|
+
asHeaderStyleId("brand-bar"),
|
|
13263
|
+
headerStyleRepairChain(["brand-bar", "brand-pill", "minimal"])
|
|
13264
|
+
],
|
|
13265
|
+
[
|
|
13266
|
+
asHeaderStyleId("brand-underline"),
|
|
13267
|
+
headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
|
|
13268
|
+
],
|
|
13269
|
+
[
|
|
13270
|
+
asHeaderStyleId("brand-pill"),
|
|
13271
|
+
headerStyleRepairChain(["brand-pill", "brand-bar", "minimal"])
|
|
13272
|
+
],
|
|
13273
|
+
[
|
|
13274
|
+
asHeaderStyleId("pill-nav"),
|
|
13275
|
+
headerStyleRepairChain(["pill-nav", "soft-bar", "minimal"])
|
|
13276
|
+
],
|
|
13277
|
+
[
|
|
13278
|
+
asHeaderStyleId("flat-tabs"),
|
|
13279
|
+
headerStyleRepairChain(["flat-tabs", "pill-nav", "minimal"])
|
|
13280
|
+
],
|
|
13281
|
+
[
|
|
13282
|
+
asHeaderStyleId("serif-line"),
|
|
13283
|
+
headerStyleRepairChain(["serif-line", "fine-line", "minimal"])
|
|
13284
|
+
],
|
|
13285
|
+
[
|
|
13286
|
+
asHeaderStyleId("glass"),
|
|
13287
|
+
headerStyleRepairChain([
|
|
13288
|
+
"glass",
|
|
13289
|
+
"soft-shell",
|
|
13290
|
+
"fine-line",
|
|
13291
|
+
"minimal-surface",
|
|
13292
|
+
"minimal"
|
|
13293
|
+
])
|
|
13294
|
+
],
|
|
13295
|
+
[
|
|
13296
|
+
asHeaderStyleId("soft-shell"),
|
|
13297
|
+
headerStyleRepairChain(["soft-shell", "soft-bar", "minimal"])
|
|
13298
|
+
],
|
|
13299
|
+
[
|
|
13300
|
+
asHeaderStyleId("minimal-surface"),
|
|
13301
|
+
headerStyleRepairChain(["minimal-surface", "minimal"])
|
|
13302
|
+
],
|
|
13303
|
+
[
|
|
13304
|
+
asHeaderStyleId("split-glass"),
|
|
13305
|
+
headerStyleRepairChain(["split-glass", "glass", "minimal-surface"])
|
|
13306
|
+
],
|
|
13307
|
+
[
|
|
13308
|
+
asHeaderStyleId("split-pill"),
|
|
13309
|
+
headerStyleRepairChain(["split-pill", "soft-shell", "brand-pill"])
|
|
13310
|
+
],
|
|
13311
|
+
[
|
|
13312
|
+
asHeaderStyleId("fine-line"),
|
|
13313
|
+
headerStyleRepairChain(["fine-line", "minimal"])
|
|
13314
|
+
],
|
|
13315
|
+
[
|
|
13316
|
+
asHeaderStyleId("soft-bar"),
|
|
13317
|
+
headerStyleRepairChain(["soft-bar", "minimal"])
|
|
13318
|
+
],
|
|
13319
|
+
[asHeaderStyleId("minimal"), headerStyleRepairChain(["minimal"])]
|
|
13320
|
+
]
|
|
13321
|
+
);
|
|
12728
13322
|
var legacyHeaderLookAliases = [
|
|
12729
13323
|
{
|
|
12730
13324
|
lookId: asHeaderLookId("clean-base"),
|
|
@@ -12741,10 +13335,10 @@ var legacyHeaderLookAliases = [
|
|
|
12741
13335
|
}
|
|
12742
13336
|
},
|
|
12743
13337
|
{
|
|
12744
|
-
lookId: asHeaderLookId("
|
|
13338
|
+
lookId: asHeaderLookId("serif-line"),
|
|
12745
13339
|
selection: {
|
|
12746
|
-
layoutId: asHeaderLayoutId("
|
|
12747
|
-
styleId: asHeaderStyleId("
|
|
13340
|
+
layoutId: asHeaderLayoutId("centered"),
|
|
13341
|
+
styleId: asHeaderStyleId("serif-line")
|
|
12748
13342
|
}
|
|
12749
13343
|
},
|
|
12750
13344
|
{
|
|
@@ -12783,9 +13377,7 @@ var legacyHeaderLookAliases = [
|
|
|
12783
13377
|
}
|
|
12784
13378
|
}
|
|
12785
13379
|
];
|
|
12786
|
-
var legacyHeaderLookAliasesById = new Map(
|
|
12787
|
-
legacyHeaderLookAliases.map((alias) => [alias.lookId, alias])
|
|
12788
|
-
);
|
|
13380
|
+
var legacyHeaderLookAliasesById = new Map(legacyHeaderLookAliases.map((alias) => [alias.lookId, alias]));
|
|
12789
13381
|
function getHeaderStyle(id) {
|
|
12790
13382
|
return headerStylesById.get(id) ?? null;
|
|
12791
13383
|
}
|
|
@@ -12803,10 +13395,29 @@ function resolveLegacyHeaderLookAlias(lookId) {
|
|
|
12803
13395
|
return legacyHeaderLookAliasesById.get(lookId)?.selection ?? null;
|
|
12804
13396
|
}
|
|
12805
13397
|
function getCompatibleHeaderStyleIds(layoutId) {
|
|
12806
|
-
return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
|
|
12807
|
-
|
|
12808
|
-
|
|
12809
|
-
|
|
13398
|
+
return (headerStyleCompatibilityOrder.get(layoutId) ?? []).filter(
|
|
13399
|
+
(styleId) => {
|
|
13400
|
+
const style = getHeaderStyleOrThrow(styleId);
|
|
13401
|
+
return isHeaderStyleCompatibleWithLayout(style, layoutId);
|
|
13402
|
+
}
|
|
13403
|
+
);
|
|
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
|
+
}
|
|
12810
13421
|
}
|
|
12811
13422
|
function solidBrandHeader(theme) {
|
|
12812
13423
|
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
@@ -12837,8 +13448,14 @@ function solidBrandHeader(theme) {
|
|
|
12837
13448
|
borderRadius: "none",
|
|
12838
13449
|
effects: {
|
|
12839
13450
|
hover: [
|
|
12840
|
-
{
|
|
12841
|
-
|
|
13451
|
+
{
|
|
13452
|
+
effectId: "text-color-change",
|
|
13453
|
+
options: { hoverColorToken: "secondary" }
|
|
13454
|
+
},
|
|
13455
|
+
{
|
|
13456
|
+
effectId: "nav-underline",
|
|
13457
|
+
options: { style: "grow", colorToken: "secondary" }
|
|
13458
|
+
}
|
|
12842
13459
|
]
|
|
12843
13460
|
}
|
|
12844
13461
|
},
|
|
@@ -12894,10 +13511,10 @@ function cleanBaseHeader(theme) {
|
|
|
12894
13511
|
ctaGap: "default"
|
|
12895
13512
|
};
|
|
12896
13513
|
}
|
|
12897
|
-
function
|
|
13514
|
+
function serifLineHeader(theme) {
|
|
12898
13515
|
return {
|
|
12899
13516
|
...baseHeader(theme),
|
|
12900
|
-
variant: "
|
|
13517
|
+
variant: "centered",
|
|
12901
13518
|
positioning: "sticky",
|
|
12902
13519
|
shrinkOnScroll: false,
|
|
12903
13520
|
background: {
|
|
@@ -12951,9 +13568,7 @@ function practicalUtilityHeader(theme) {
|
|
|
12951
13568
|
navColor: "text",
|
|
12952
13569
|
navStyle: "solid",
|
|
12953
13570
|
navWeight: "semibold",
|
|
12954
|
-
shadow:
|
|
12955
|
-
elevation: "sm"
|
|
12956
|
-
},
|
|
13571
|
+
shadow: themedHeaderShadow(theme),
|
|
12957
13572
|
border: {
|
|
12958
13573
|
style: "solid",
|
|
12959
13574
|
width: "thin",
|
|
@@ -13022,6 +13637,7 @@ function floatingGlassHeader(theme) {
|
|
|
13022
13637
|
return {
|
|
13023
13638
|
...transparentOverlayHeader(theme),
|
|
13024
13639
|
variant: "floating",
|
|
13640
|
+
positioning: "sticky",
|
|
13025
13641
|
navStyle: "frosted",
|
|
13026
13642
|
navContainer: {
|
|
13027
13643
|
type: "glass",
|
|
@@ -13066,27 +13682,27 @@ var headerLookCatalog = [
|
|
|
13066
13682
|
compile: solidBrandHeader
|
|
13067
13683
|
},
|
|
13068
13684
|
{
|
|
13069
|
-
id: asHeaderLookId("
|
|
13070
|
-
label: "
|
|
13071
|
-
visualTreatment: "light-
|
|
13685
|
+
id: asHeaderLookId("serif-line"),
|
|
13686
|
+
label: "Serif line",
|
|
13687
|
+
visualTreatment: "light-serif",
|
|
13072
13688
|
layoutBehavior: "sticky",
|
|
13073
13689
|
configuration: {
|
|
13074
|
-
structure: "
|
|
13075
|
-
treatment: "light-
|
|
13690
|
+
structure: "centered-stack",
|
|
13691
|
+
treatment: "light-serif",
|
|
13076
13692
|
behavior: "sticky"
|
|
13077
13693
|
},
|
|
13078
13694
|
openingRequirement: "none",
|
|
13079
13695
|
maxRecommendedNavItems: 6,
|
|
13080
|
-
compile:
|
|
13696
|
+
compile: serifLineHeader
|
|
13081
13697
|
},
|
|
13082
13698
|
{
|
|
13083
13699
|
id: asHeaderLookId("centered-calm"),
|
|
13084
13700
|
label: "Centered calm",
|
|
13085
|
-
visualTreatment: "light-
|
|
13701
|
+
visualTreatment: "light-serif",
|
|
13086
13702
|
layoutBehavior: "normal-flow",
|
|
13087
13703
|
configuration: {
|
|
13088
13704
|
structure: "centered-stack",
|
|
13089
|
-
treatment: "light-
|
|
13705
|
+
treatment: "light-serif",
|
|
13090
13706
|
behavior: "normal-flow"
|
|
13091
13707
|
},
|
|
13092
13708
|
openingRequirement: "none",
|
|
@@ -13537,7 +14153,7 @@ var typographyPresets = [
|
|
|
13537
14153
|
heroTypography: {
|
|
13538
14154
|
headlineSize: "6xl",
|
|
13539
14155
|
headlineLineHeight: "tight",
|
|
13540
|
-
subheadlineSize: "
|
|
14156
|
+
subheadlineSize: "2xl",
|
|
13541
14157
|
subheadlineLineHeight: "normal",
|
|
13542
14158
|
microHeadlineSize: "6xl",
|
|
13543
14159
|
microHeadlineLineHeight: "tight",
|
|
@@ -13555,6 +14171,8 @@ var typographyPresetsById = new Map(
|
|
|
13555
14171
|
);
|
|
13556
14172
|
|
|
13557
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);
|
|
13558
14176
|
var curatedSiteStyleIdValues = [
|
|
13559
14177
|
"site-style:calm-studio",
|
|
13560
14178
|
"site-style:clear-professional",
|
|
@@ -13566,7 +14184,7 @@ var curatedSiteStyleIdValues = [
|
|
|
13566
14184
|
"site-style:personal-retreat-journal",
|
|
13567
14185
|
"site-style:tactile-workshop",
|
|
13568
14186
|
"site-style:modern-wellness",
|
|
13569
|
-
|
|
14187
|
+
SOFT_EARTH_SITE_STYLE_ID_VALUE,
|
|
13570
14188
|
"site-style:bold-launch",
|
|
13571
14189
|
"site-style:south-west-twerk-school"
|
|
13572
14190
|
];
|
|
@@ -13632,22 +14250,31 @@ var expressiveUnderlineInputs = {
|
|
|
13632
14250
|
}
|
|
13633
14251
|
};
|
|
13634
14252
|
function uniqueContentFrameKinds() {
|
|
13635
|
-
const kinds = [
|
|
13636
|
-
|
|
13637
|
-
|
|
14253
|
+
const kinds = [
|
|
14254
|
+
...new Set(
|
|
14255
|
+
generatedDesignOptionCatalog.contentFrames.map((frame) => frame.kind)
|
|
14256
|
+
)
|
|
14257
|
+
];
|
|
13638
14258
|
const firstKind = kinds[0];
|
|
13639
14259
|
if (!firstKind) {
|
|
13640
|
-
throw new Error(
|
|
14260
|
+
throw new Error(
|
|
14261
|
+
"Expected generated design option catalog to expose at least one content frame kind."
|
|
14262
|
+
);
|
|
13641
14263
|
}
|
|
13642
14264
|
return [firstKind, ...kinds.slice(1)];
|
|
13643
14265
|
}
|
|
13644
14266
|
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
13645
14267
|
function defineCuratedSiteStyle(input) {
|
|
13646
14268
|
const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
|
|
13647
|
-
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
14269
|
+
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
14270
|
+
legacyHeaderLookIds,
|
|
14271
|
+
input.tokenRecipes
|
|
14272
|
+
);
|
|
13648
14273
|
const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
|
|
13649
14274
|
const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
|
|
13650
|
-
if (!typographyPresetChoices.some(
|
|
14275
|
+
if (!typographyPresetChoices.some(
|
|
14276
|
+
(choice) => choice.id === defaultTypographyPresetId
|
|
14277
|
+
)) {
|
|
13651
14278
|
throw new Error(
|
|
13652
14279
|
`Default typography preset ${defaultTypographyPresetId} is not curated for site style ${input.id}.`
|
|
13653
14280
|
);
|
|
@@ -13658,9 +14285,13 @@ function defineCuratedSiteStyle(input) {
|
|
|
13658
14285
|
description: input.description,
|
|
13659
14286
|
generationBrief: input.generationBrief,
|
|
13660
14287
|
selectionKeywordRules: input.selectionKeywordRules ?? [],
|
|
13661
|
-
siteCreatorSelection: input.siteCreatorSelection ?? {
|
|
14288
|
+
siteCreatorSelection: input.siteCreatorSelection ?? {
|
|
14289
|
+
kind: "explicit_only"
|
|
14290
|
+
},
|
|
13662
14291
|
template: {
|
|
13663
|
-
id: asDesignSystemTemplateId(
|
|
14292
|
+
id: asDesignSystemTemplateId(
|
|
14293
|
+
`template:${input.id.replace("site-style:", "")}`
|
|
14294
|
+
),
|
|
13664
14295
|
name: input.name,
|
|
13665
14296
|
version: 1,
|
|
13666
14297
|
tokenRecipes: input.tokenRecipes,
|
|
@@ -13671,6 +14302,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
13671
14302
|
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
13672
14303
|
},
|
|
13673
14304
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
14305
|
+
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
13674
14306
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
13675
14307
|
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
13676
14308
|
layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
|
|
@@ -13678,13 +14310,17 @@ function defineCuratedSiteStyle(input) {
|
|
|
13678
14310
|
} : inferredHeaderCuration.defaultHeaderSelection,
|
|
13679
14311
|
recommendedHeaderLayoutChoices: input.recommendedHeaderLayoutChoices ?? inferredHeaderCuration.recommendedHeaderLayoutChoices,
|
|
13680
14312
|
recommendedHeaderStyleChoicesByLayout: input.recommendedHeaderStyleChoicesByLayout ?? inferredHeaderCuration.recommendedHeaderStyleChoicesByLayout,
|
|
13681
|
-
discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
|
|
13682
|
-
|
|
13683
|
-
|
|
13684
|
-
|
|
14313
|
+
discouragedHeaderSelections: input.discouragedHeaderSelections?.map(
|
|
14314
|
+
(selection) => ({
|
|
14315
|
+
layoutId: asHeaderLayoutId(selection.layoutId),
|
|
14316
|
+
styleId: asHeaderStyleId(selection.styleId)
|
|
14317
|
+
})
|
|
14318
|
+
),
|
|
13685
14319
|
recommendedHeaderLookIds: legacyHeaderLookIds.map(asHeaderLookId),
|
|
13686
14320
|
// Empty is intentional: resolveFooterLook always appends its guaranteed fallback.
|
|
13687
|
-
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
|
|
14321
|
+
recommendedFooterLookIds: (input.recommendedFooterLookIds ?? []).map(
|
|
14322
|
+
asFooterLookId
|
|
14323
|
+
),
|
|
13688
14324
|
buttonPersonalityChoices: input.buttonPersonalityChoices,
|
|
13689
14325
|
paletteVariantChoices: input.paletteVariantChoices,
|
|
13690
14326
|
typographyPresetChoices,
|
|
@@ -13703,7 +14339,7 @@ function headerLayoutChoice(id, note) {
|
|
|
13703
14339
|
function headerStyleChoice(id, note) {
|
|
13704
14340
|
return note ? { id: asHeaderStyleId(id), note } : { id: asHeaderStyleId(id) };
|
|
13705
14341
|
}
|
|
13706
|
-
function
|
|
14342
|
+
function unbrandHeaderLayoutId(id) {
|
|
13707
14343
|
return id;
|
|
13708
14344
|
}
|
|
13709
14345
|
function uniqueHeaderLayoutChoices(choices) {
|
|
@@ -13725,8 +14361,72 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
|
13725
14361
|
};
|
|
13726
14362
|
return [first, ...choices.slice(1)];
|
|
13727
14363
|
}
|
|
13728
|
-
function
|
|
13729
|
-
const
|
|
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
|
+
}
|
|
14419
|
+
}
|
|
14420
|
+
function isExpressiveRecipe(recipes) {
|
|
14421
|
+
return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
|
|
14422
|
+
}
|
|
14423
|
+
function isSerifTypographyRecipe(recipes) {
|
|
14424
|
+
return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
|
|
14425
|
+
}
|
|
14426
|
+
function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
|
|
14427
|
+
const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
|
|
14428
|
+
(selection) => Boolean(selection)
|
|
14429
|
+
);
|
|
13730
14430
|
const defaultHeaderSelection = selections[0] ?? {
|
|
13731
14431
|
layoutId: asHeaderLayoutId("classic"),
|
|
13732
14432
|
styleId: asHeaderStyleId("minimal")
|
|
@@ -13736,9 +14436,13 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
|
|
|
13736
14436
|
);
|
|
13737
14437
|
const stylesByLayout = {};
|
|
13738
14438
|
for (const layoutChoice of layoutChoices) {
|
|
13739
|
-
const
|
|
13740
|
-
|
|
13741
|
-
|
|
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],
|
|
13742
14446
|
layoutChoice.id
|
|
13743
14447
|
);
|
|
13744
14448
|
}
|
|
@@ -13795,7 +14499,11 @@ var curatedSiteStyles = [
|
|
|
13795
14499
|
motion: "subtle"
|
|
13796
14500
|
},
|
|
13797
14501
|
compositionBudget: quietBudget,
|
|
13798
|
-
recommendedHeaderLookIds: [
|
|
14502
|
+
recommendedHeaderLookIds: [
|
|
14503
|
+
"centered-calm",
|
|
14504
|
+
"minimal-transparent",
|
|
14505
|
+
"clean-base"
|
|
14506
|
+
],
|
|
13799
14507
|
buttonPersonalityChoices: [
|
|
13800
14508
|
buttonChoice("soft-pill"),
|
|
13801
14509
|
buttonChoice("pebble"),
|
|
@@ -13824,7 +14532,11 @@ var curatedSiteStyles = [
|
|
|
13824
14532
|
motion: "subtle"
|
|
13825
14533
|
},
|
|
13826
14534
|
compositionBudget: balancedBudget,
|
|
13827
|
-
recommendedHeaderLookIds: [
|
|
14535
|
+
recommendedHeaderLookIds: [
|
|
14536
|
+
"practical-utility",
|
|
14537
|
+
"brand-solid",
|
|
14538
|
+
"clean-base"
|
|
14539
|
+
],
|
|
13828
14540
|
buttonPersonalityChoices: [
|
|
13829
14541
|
buttonChoice("confident-chip"),
|
|
13830
14542
|
buttonChoice("soft-pill"),
|
|
@@ -13851,7 +14563,11 @@ var curatedSiteStyles = [
|
|
|
13851
14563
|
motion: "subtle"
|
|
13852
14564
|
},
|
|
13853
14565
|
compositionBudget: balancedBudget,
|
|
13854
|
-
recommendedHeaderLookIds: [
|
|
14566
|
+
recommendedHeaderLookIds: [
|
|
14567
|
+
"serif-line",
|
|
14568
|
+
"minimal-transparent",
|
|
14569
|
+
"centered-calm"
|
|
14570
|
+
],
|
|
13855
14571
|
buttonPersonalityChoices: [
|
|
13856
14572
|
buttonChoice("editorial-link"),
|
|
13857
14573
|
buttonChoice("soft-pill"),
|
|
@@ -13879,7 +14595,11 @@ var curatedSiteStyles = [
|
|
|
13879
14595
|
motion: "expressive"
|
|
13880
14596
|
},
|
|
13881
14597
|
compositionBudget: balancedBudget,
|
|
13882
|
-
recommendedHeaderLookIds: [
|
|
14598
|
+
recommendedHeaderLookIds: [
|
|
14599
|
+
"brand-solid",
|
|
14600
|
+
"practical-utility",
|
|
14601
|
+
"clean-base"
|
|
14602
|
+
],
|
|
13883
14603
|
buttonPersonalityChoices: [
|
|
13884
14604
|
buttonChoice("pebble"),
|
|
13885
14605
|
buttonChoice("brushed-wash"),
|
|
@@ -13896,7 +14616,10 @@ var curatedSiteStyles = [
|
|
|
13896
14616
|
name: "Quiet Luxury",
|
|
13897
14617
|
description: "Minimal, confident, and refined for premium experiences and private services.",
|
|
13898
14618
|
generationBrief: "Use fewer claims, more specificity, and restrained sensory detail. Favor elegant media and low repetition over dense panels.",
|
|
13899
|
-
siteCreatorSelection: {
|
|
14619
|
+
siteCreatorSelection: {
|
|
14620
|
+
kind: "site_creator_keyword_heuristic",
|
|
14621
|
+
priority: 20
|
|
14622
|
+
},
|
|
13900
14623
|
selectionKeywordRules: [
|
|
13901
14624
|
{ kind: "word", value: "luxury" },
|
|
13902
14625
|
{ kind: "word", value: "premium" },
|
|
@@ -13914,7 +14637,11 @@ var curatedSiteStyles = [
|
|
|
13914
14637
|
motion: "none"
|
|
13915
14638
|
},
|
|
13916
14639
|
compositionBudget: quietBudget,
|
|
13917
|
-
recommendedHeaderLookIds: [
|
|
14640
|
+
recommendedHeaderLookIds: [
|
|
14641
|
+
"minimal-transparent",
|
|
14642
|
+
"serif-line",
|
|
14643
|
+
"clean-base"
|
|
14644
|
+
],
|
|
13918
14645
|
buttonPersonalityChoices: [
|
|
13919
14646
|
buttonChoice("editorial-link"),
|
|
13920
14647
|
buttonChoice("confident-chip"),
|
|
@@ -13950,7 +14677,11 @@ var curatedSiteStyles = [
|
|
|
13950
14677
|
motion: "none"
|
|
13951
14678
|
},
|
|
13952
14679
|
compositionBudget: quietBudget,
|
|
13953
|
-
recommendedHeaderLookIds: [
|
|
14680
|
+
recommendedHeaderLookIds: [
|
|
14681
|
+
"practical-utility",
|
|
14682
|
+
"brand-solid",
|
|
14683
|
+
"clean-base"
|
|
14684
|
+
],
|
|
13954
14685
|
buttonPersonalityChoices: [
|
|
13955
14686
|
buttonChoice("confident-chip"),
|
|
13956
14687
|
buttonChoice("pebble"),
|
|
@@ -13977,7 +14708,11 @@ var curatedSiteStyles = [
|
|
|
13977
14708
|
motion: "subtle"
|
|
13978
14709
|
},
|
|
13979
14710
|
compositionBudget: balancedBudget,
|
|
13980
|
-
recommendedHeaderLookIds: [
|
|
14711
|
+
recommendedHeaderLookIds: [
|
|
14712
|
+
"centered-calm",
|
|
14713
|
+
"minimal-transparent",
|
|
14714
|
+
"clean-base"
|
|
14715
|
+
],
|
|
13981
14716
|
buttonPersonalityChoices: [
|
|
13982
14717
|
buttonChoice("soft-pill"),
|
|
13983
14718
|
buttonChoice("pebble"),
|
|
@@ -13994,7 +14729,10 @@ var curatedSiteStyles = [
|
|
|
13994
14729
|
name: "Quiet Practice",
|
|
13995
14730
|
description: "Grounded, calm, and practical for small appointment-first practices.",
|
|
13996
14731
|
generationBrief: "Make services, practitioner trust, preparation notes, and booking routes easy to scan. Keep the tone warm and specific, with quiet confidence rather than spa cliches or medical claims.",
|
|
13997
|
-
siteCreatorSelection: {
|
|
14732
|
+
siteCreatorSelection: {
|
|
14733
|
+
kind: "site_creator_keyword_heuristic",
|
|
14734
|
+
priority: 30
|
|
14735
|
+
},
|
|
13998
14736
|
selectionKeywordRules: [
|
|
13999
14737
|
{ kind: "substring", value: "massage" },
|
|
14000
14738
|
{ kind: "word", value: "bodywork" },
|
|
@@ -14015,7 +14753,11 @@ var curatedSiteStyles = [
|
|
|
14015
14753
|
motion: "subtle"
|
|
14016
14754
|
},
|
|
14017
14755
|
compositionBudget: quietBudget,
|
|
14018
|
-
recommendedHeaderLookIds: [
|
|
14756
|
+
recommendedHeaderLookIds: [
|
|
14757
|
+
"practical-utility",
|
|
14758
|
+
"clean-base",
|
|
14759
|
+
"centered-calm"
|
|
14760
|
+
],
|
|
14019
14761
|
buttonPersonalityChoices: [
|
|
14020
14762
|
buttonChoice("pebble"),
|
|
14021
14763
|
buttonChoice("soft-pill"),
|
|
@@ -14032,7 +14774,10 @@ var curatedSiteStyles = [
|
|
|
14032
14774
|
name: "Personal Retreat Journal",
|
|
14033
14775
|
description: "Warm, story-led, and readable for solo practitioners with mixed offers.",
|
|
14034
14776
|
generationBrief: "Center the practitioner as the guide, then make private sessions, classes, retreats, and resources feel like clear pathways. Keep retreat copy grounded and practical, with enough editorial warmth for longer reading.",
|
|
14035
|
-
siteCreatorSelection: {
|
|
14777
|
+
siteCreatorSelection: {
|
|
14778
|
+
kind: "site_creator_keyword_heuristic",
|
|
14779
|
+
priority: 40
|
|
14780
|
+
},
|
|
14036
14781
|
selectionKeywordRules: [
|
|
14037
14782
|
{ kind: "substring", value: "retreat" },
|
|
14038
14783
|
{ kind: "phrase", value: "solo practitioner" },
|
|
@@ -14052,7 +14797,11 @@ var curatedSiteStyles = [
|
|
|
14052
14797
|
motion: "subtle"
|
|
14053
14798
|
},
|
|
14054
14799
|
compositionBudget: balancedBudget,
|
|
14055
|
-
recommendedHeaderLookIds: [
|
|
14800
|
+
recommendedHeaderLookIds: [
|
|
14801
|
+
"serif-line",
|
|
14802
|
+
"centered-calm",
|
|
14803
|
+
"minimal-transparent"
|
|
14804
|
+
],
|
|
14056
14805
|
buttonPersonalityChoices: [
|
|
14057
14806
|
buttonChoice("editorial-link"),
|
|
14058
14807
|
buttonChoice("soft-pill"),
|
|
@@ -14069,7 +14818,10 @@ var curatedSiteStyles = [
|
|
|
14069
14818
|
name: "Tactile Workshop",
|
|
14070
14819
|
description: "Bright, hands-on, and image-led for maker studios, workshops, and creative classes.",
|
|
14071
14820
|
generationBrief: "Lead with objects, materials, studio process, and practical booking detail. Keep the tone warm and direct, with useful mess, clear dates, and enough gallery rhythm to feel like a real creative studio.",
|
|
14072
|
-
siteCreatorSelection: {
|
|
14821
|
+
siteCreatorSelection: {
|
|
14822
|
+
kind: "site_creator_keyword_heuristic",
|
|
14823
|
+
priority: 50
|
|
14824
|
+
},
|
|
14073
14825
|
selectionKeywordRules: [
|
|
14074
14826
|
{ kind: "substring", value: "ceramic" },
|
|
14075
14827
|
{ kind: "word", value: "pottery" },
|
|
@@ -14089,8 +14841,15 @@ var curatedSiteStyles = [
|
|
|
14089
14841
|
motion: "subtle"
|
|
14090
14842
|
},
|
|
14091
14843
|
compositionBudget: balancedBudget,
|
|
14092
|
-
recommendedHeaderLookIds: [
|
|
14093
|
-
|
|
14844
|
+
recommendedHeaderLookIds: [
|
|
14845
|
+
"brand-solid",
|
|
14846
|
+
"practical-utility",
|
|
14847
|
+
"clean-base"
|
|
14848
|
+
],
|
|
14849
|
+
recommendedFooterLookIds: [
|
|
14850
|
+
"site-footer-brand-two-band",
|
|
14851
|
+
"footer-muted-grounding"
|
|
14852
|
+
],
|
|
14094
14853
|
buttonPersonalityChoices: [
|
|
14095
14854
|
buttonChoice("pebble"),
|
|
14096
14855
|
buttonChoice("confident-chip"),
|
|
@@ -14105,11 +14864,14 @@ var curatedSiteStyles = [
|
|
|
14105
14864
|
]
|
|
14106
14865
|
}),
|
|
14107
14866
|
defineCuratedSiteStyle({
|
|
14108
|
-
id:
|
|
14867
|
+
id: SOFT_EARTH_SITE_STYLE_ID,
|
|
14109
14868
|
name: "Soft Earth",
|
|
14110
14869
|
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
14111
|
-
generationBrief: "Use cream space, terracotta CTAs, olive
|
|
14112
|
-
siteCreatorSelection: {
|
|
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.",
|
|
14871
|
+
siteCreatorSelection: {
|
|
14872
|
+
kind: "site_creator_keyword_heuristic",
|
|
14873
|
+
priority: 45
|
|
14874
|
+
},
|
|
14113
14875
|
selectionKeywordRules: [
|
|
14114
14876
|
{ kind: "word", value: "meditation" },
|
|
14115
14877
|
{ kind: "word", value: "wellbeing" },
|
|
@@ -14175,18 +14937,29 @@ var curatedSiteStyles = [
|
|
|
14175
14937
|
paragraphSize: "default",
|
|
14176
14938
|
headingSize: "editorial"
|
|
14177
14939
|
}
|
|
14178
|
-
}
|
|
14940
|
+
},
|
|
14941
|
+
accordions: softEarthAccordionSystem
|
|
14942
|
+
},
|
|
14943
|
+
defaultBlockVariants: {
|
|
14944
|
+
"block.faq": "question-columns"
|
|
14179
14945
|
},
|
|
14180
14946
|
recommendedAppearancePresetIds: [
|
|
14181
14947
|
"hero-brand-scrim",
|
|
14182
|
-
"intro-
|
|
14183
|
-
"feature-cards-
|
|
14184
|
-
"
|
|
14185
|
-
"
|
|
14948
|
+
"intro-organic-statement",
|
|
14949
|
+
"feature-cards-raised-rule",
|
|
14950
|
+
"events-lined-panel",
|
|
14951
|
+
"testimonials-brand-background-quotes",
|
|
14186
14952
|
"contact-form-panel"
|
|
14187
14953
|
],
|
|
14188
|
-
recommendedHeaderLookIds: [
|
|
14189
|
-
|
|
14954
|
+
recommendedHeaderLookIds: [
|
|
14955
|
+
"centered-calm",
|
|
14956
|
+
"minimal-transparent",
|
|
14957
|
+
"serif-line"
|
|
14958
|
+
],
|
|
14959
|
+
recommendedFooterLookIds: [
|
|
14960
|
+
"footer-muted-grounding",
|
|
14961
|
+
"site-footer-brand-two-band"
|
|
14962
|
+
],
|
|
14190
14963
|
buttonPersonalityChoices: [
|
|
14191
14964
|
buttonChoice("earth-pill"),
|
|
14192
14965
|
buttonChoice("soft-pill"),
|
|
@@ -14205,7 +14978,10 @@ var curatedSiteStyles = [
|
|
|
14205
14978
|
name: "Bold Launch",
|
|
14206
14979
|
description: "High-energy and punchy for launches, campaigns, and creative offers.",
|
|
14207
14980
|
generationBrief: "Use crisp positioning, bold hero structure, strong calls to action, and confident visual rhythm. Keep it precise, not shouty.",
|
|
14208
|
-
siteCreatorSelection: {
|
|
14981
|
+
siteCreatorSelection: {
|
|
14982
|
+
kind: "site_creator_keyword_heuristic",
|
|
14983
|
+
priority: 10
|
|
14984
|
+
},
|
|
14209
14985
|
selectionKeywordRules: [
|
|
14210
14986
|
{ kind: "substring", value: "launch" },
|
|
14211
14987
|
{ kind: "substring", value: "campaign" },
|
|
@@ -14224,7 +15000,11 @@ var curatedSiteStyles = [
|
|
|
14224
15000
|
motion: "expressive"
|
|
14225
15001
|
},
|
|
14226
15002
|
compositionBudget: expressiveBudget,
|
|
14227
|
-
recommendedHeaderLookIds: [
|
|
15003
|
+
recommendedHeaderLookIds: [
|
|
15004
|
+
"transparent-overlay",
|
|
15005
|
+
"floating-glass",
|
|
15006
|
+
"brand-solid"
|
|
15007
|
+
],
|
|
14228
15008
|
buttonPersonalityChoices: [
|
|
14229
15009
|
buttonChoice("ink-stamp"),
|
|
14230
15010
|
buttonChoice("confident-chip"),
|
|
@@ -14272,11 +15052,18 @@ var curatedSiteStyles = [
|
|
|
14272
15052
|
"hero-brand-scrim-fixed-frame",
|
|
14273
15053
|
"body-text-editorial-intro",
|
|
14274
15054
|
"schedule-details-brand-depth",
|
|
14275
|
-
"testimonials-accent-quote-
|
|
15055
|
+
"testimonials-accent-quote-cards",
|
|
14276
15056
|
"contact-form-brand-depth-card"
|
|
14277
15057
|
],
|
|
14278
|
-
recommendedHeaderLookIds: [
|
|
14279
|
-
|
|
15058
|
+
recommendedHeaderLookIds: [
|
|
15059
|
+
"brand-solid",
|
|
15060
|
+
"transparent-overlay",
|
|
15061
|
+
"practical-utility"
|
|
15062
|
+
],
|
|
15063
|
+
recommendedFooterLookIds: [
|
|
15064
|
+
"site-footer-brand-two-band",
|
|
15065
|
+
"footer-muted-grounding"
|
|
15066
|
+
],
|
|
14280
15067
|
buttonPersonalityChoices: [
|
|
14281
15068
|
buttonChoice("showtime-pill"),
|
|
14282
15069
|
buttonChoice("confident-chip"),
|
|
@@ -14360,6 +15147,7 @@ var themeV2RuntimeStyleFieldNames = [
|
|
|
14360
15147
|
];
|
|
14361
15148
|
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
14362
15149
|
"_contentCardStyles",
|
|
15150
|
+
"_heroLayoutStyles",
|
|
14363
15151
|
"_textCardStyles"
|
|
14364
15152
|
];
|
|
14365
15153
|
var themeV2NormalEditorRawStyleFieldNames = [
|
|
@@ -14369,6 +15157,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
|
|
|
14369
15157
|
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
14370
15158
|
themeV2NormalEditorRawStyleFieldNames
|
|
14371
15159
|
);
|
|
15160
|
+
var themeV2CompilerOwnedFieldNames = [
|
|
15161
|
+
...themeV2RuntimeStyleFieldNames,
|
|
15162
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
15163
|
+
];
|
|
14372
15164
|
|
|
14373
15165
|
// ../theme-core/src/site-styles/designState.ts
|
|
14374
15166
|
var themeV2DesignStateSchemaVersion = 1;
|
|
@@ -14383,6 +15175,16 @@ var heroLegibilityStrategySchema = z23.enum([
|
|
|
14383
15175
|
"scrim-gradient",
|
|
14384
15176
|
"solid-panel"
|
|
14385
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
|
+
]);
|
|
14386
15188
|
var sectionHeightIntentSchema = z23.enum([
|
|
14387
15189
|
"default",
|
|
14388
15190
|
"banner",
|
|
@@ -14418,6 +15220,7 @@ var imageSurfaceTreatmentSchema = z23.discriminatedUnion("kind", [
|
|
|
14418
15220
|
]);
|
|
14419
15221
|
var testimonialCardTreatmentSchema = z23.enum(["default", "accent-quote"]);
|
|
14420
15222
|
var tileTreatmentSchema = z23.enum(tileTreatmentValues);
|
|
15223
|
+
var eventListTreatmentSchema = z23.enum(eventListTreatmentValues);
|
|
14421
15224
|
var eyebrowTreatmentSchema = z23.enum(eyebrowTreatmentValues);
|
|
14422
15225
|
function uniqueNonEmpty(values) {
|
|
14423
15226
|
const uniqueValues = [...new Set(values)];
|
|
@@ -14459,10 +15262,13 @@ var blockDesignPlanSchema = z23.object({
|
|
|
14459
15262
|
emphasis: z23.enum(userDesignOptionCatalog.emphases),
|
|
14460
15263
|
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
14461
15264
|
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
15265
|
+
heroComposition: heroCompositionIntentSchema.optional(),
|
|
15266
|
+
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
14462
15267
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
14463
15268
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
14464
15269
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
14465
15270
|
tileTreatment: tileTreatmentSchema.optional(),
|
|
15271
|
+
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
14466
15272
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
14467
15273
|
}).strict();
|
|
14468
15274
|
var styleAuthoritySchema = z23.discriminatedUnion("kind", [
|
|
@@ -15862,6 +16668,7 @@ function styledSection(config) {
|
|
|
15862
16668
|
renderBackgroundImage = true,
|
|
15863
16669
|
backgroundImageLoading,
|
|
15864
16670
|
backgroundImageFetchPriority,
|
|
16671
|
+
allowOverflow = false,
|
|
15865
16672
|
fullWidthPath
|
|
15866
16673
|
} = config;
|
|
15867
16674
|
const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
|
|
@@ -15896,7 +16703,7 @@ function styledSection(config) {
|
|
|
15896
16703
|
// No fallback needed - transform handles all cases via defaultSpacing
|
|
15897
16704
|
}
|
|
15898
16705
|
},
|
|
15899
|
-
allowOverflow: {
|
|
16706
|
+
allowOverflow: allowOverflow ? true : {
|
|
15900
16707
|
$bind: {
|
|
15901
16708
|
from: `${bindFrom}.background`,
|
|
15902
16709
|
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
@@ -16591,6 +17398,14 @@ var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
|
16591
17398
|
function isTileTreatment(value) {
|
|
16592
17399
|
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
16593
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
|
+
}
|
|
16594
17409
|
var sectionClassNameTransform = {
|
|
16595
17410
|
id: "sectionStyles.resolveClassName",
|
|
16596
17411
|
kind: "string",
|
|
@@ -16658,6 +17473,17 @@ var sectionClassNameTransform = {
|
|
|
16658
17473
|
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
16659
17474
|
);
|
|
16660
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
|
+
}
|
|
16661
17487
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
16662
17488
|
classes.push(fixedFrameScopeClass);
|
|
16663
17489
|
}
|
|
@@ -17093,6 +17919,35 @@ function sectionState(opts) {
|
|
|
17093
17919
|
);
|
|
17094
17920
|
}
|
|
17095
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
|
+
|
|
17096
17951
|
// ../blocks/src/system/fragments/types.ts
|
|
17097
17952
|
import { z as z27 } from "zod";
|
|
17098
17953
|
var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
@@ -17871,6 +18726,10 @@ var testimonialsHeadingFragment = defineFragment({
|
|
|
17871
18726
|
when("content.heading"),
|
|
17872
18727
|
bind("content.heading")
|
|
17873
18728
|
),
|
|
18729
|
+
headingDecoration({
|
|
18730
|
+
family: "short-center-rule",
|
|
18731
|
+
placement: "under-centered-heading"
|
|
18732
|
+
}),
|
|
17874
18733
|
text(
|
|
17875
18734
|
{
|
|
17876
18735
|
as: "p",
|
|
@@ -18542,6 +19401,41 @@ var faqHeadingFragment = defineFragment({
|
|
|
18542
19401
|
});
|
|
18543
19402
|
|
|
18544
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
|
+
}
|
|
18545
19439
|
var faqAccordionFragment = defineFragment({
|
|
18546
19440
|
id: "faqAccordion",
|
|
18547
19441
|
title: "FAQ Accordion",
|
|
@@ -18575,40 +19469,7 @@ var faqAccordionFragment = defineFragment({
|
|
|
18575
19469
|
}
|
|
18576
19470
|
}
|
|
18577
19471
|
],
|
|
18578
|
-
layout:
|
|
18579
|
-
collection: "content.items",
|
|
18580
|
-
itemName: "faqItem",
|
|
18581
|
-
indexName: "faqIndex",
|
|
18582
|
-
accordionProps: {
|
|
18583
|
-
className: "accordion-root",
|
|
18584
|
-
// CSS-first: all styling handled by theme CSS
|
|
18585
|
-
type: "single",
|
|
18586
|
-
collapsible: true
|
|
18587
|
-
},
|
|
18588
|
-
itemProps: {
|
|
18589
|
-
className: {
|
|
18590
|
-
$bind: {
|
|
18591
|
-
from: "content._cardStyles",
|
|
18592
|
-
transforms: [
|
|
18593
|
-
{
|
|
18594
|
-
id: "boxStyles.all",
|
|
18595
|
-
options: {
|
|
18596
|
-
axis: "all",
|
|
18597
|
-
includeSpacing: false,
|
|
18598
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
|
|
18599
|
-
}
|
|
18600
|
-
}
|
|
18601
|
-
]
|
|
18602
|
-
},
|
|
18603
|
-
fallback: "rb-faq-item"
|
|
18604
|
-
},
|
|
18605
|
-
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
18606
|
-
// Legacy theme accordion style
|
|
18607
|
-
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
18608
|
-
},
|
|
18609
|
-
triggerFrom: "faqItem.question",
|
|
18610
|
-
contentFrom: "faqItem.answer"
|
|
18611
|
-
})
|
|
19472
|
+
layout: createFaqAccordionLayout()
|
|
18612
19473
|
});
|
|
18613
19474
|
|
|
18614
19475
|
// ../blocks/src/system/fragments/library/card.ts
|
|
@@ -19661,6 +20522,7 @@ var microLayout = styledSection({
|
|
|
19661
20522
|
function splitLayoutWith(children) {
|
|
19662
20523
|
return styledSection({
|
|
19663
20524
|
children: styledContainer({
|
|
20525
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
19664
20526
|
children: {
|
|
19665
20527
|
type: "grid",
|
|
19666
20528
|
props: {
|
|
@@ -19685,6 +20547,7 @@ function splitLayoutWith(children) {
|
|
|
19685
20547
|
// The split variants render the image as a real grid column, so suppress
|
|
19686
20548
|
// the default absolute background image layer while keeping color/overlay.
|
|
19687
20549
|
renderBackgroundImage: false,
|
|
20550
|
+
allowOverflow: true,
|
|
19688
20551
|
baseClass: ""
|
|
19689
20552
|
});
|
|
19690
20553
|
}
|
|
@@ -19838,6 +20701,21 @@ function introHeading(className) {
|
|
|
19838
20701
|
bind("content.title")
|
|
19839
20702
|
);
|
|
19840
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
|
+
}
|
|
19841
20719
|
function introBody(className = "rb-prose rb-max-w-none") {
|
|
19842
20720
|
return richText({ className }, bind("content.body"));
|
|
19843
20721
|
}
|
|
@@ -19856,6 +20734,10 @@ function introCopyStack(options = {}) {
|
|
|
19856
20734
|
},
|
|
19857
20735
|
[
|
|
19858
20736
|
introHeading(options.headingClassName ?? "rb-intro-title"),
|
|
20737
|
+
headingDecoration({
|
|
20738
|
+
family: "organic-squiggle",
|
|
20739
|
+
placement: "after-heading"
|
|
20740
|
+
}),
|
|
19859
20741
|
introBody(options.bodyClassName),
|
|
19860
20742
|
introCtas(options.ctaJustify)
|
|
19861
20743
|
]
|
|
@@ -19895,7 +20777,7 @@ var statementCopyLayout = styledSection({
|
|
|
19895
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"
|
|
19896
20778
|
},
|
|
19897
20779
|
[
|
|
19898
|
-
|
|
20780
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
19899
20781
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
19900
20782
|
introBody(),
|
|
19901
20783
|
introCtas("start")
|
|
@@ -19916,7 +20798,7 @@ var statementMediaLayout = styledSection({
|
|
|
19916
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"
|
|
19917
20799
|
},
|
|
19918
20800
|
[
|
|
19919
|
-
|
|
20801
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
19920
20802
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
19921
20803
|
introBody(),
|
|
19922
20804
|
introCtas("start")
|
|
@@ -20918,6 +21800,9 @@ function isNodeDefinitionArray(layout) {
|
|
|
20918
21800
|
}
|
|
20919
21801
|
var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
|
|
20920
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
|
+
});
|
|
20921
21806
|
var defaultLayout = styledSection({
|
|
20922
21807
|
children: styledContainer({
|
|
20923
21808
|
baseClassName: "rb-relative rb-isolate",
|
|
@@ -20931,11 +21816,24 @@ var twoColumnLayout = styledSection({
|
|
|
20931
21816
|
children: el(
|
|
20932
21817
|
"div",
|
|
20933
21818
|
{
|
|
20934
|
-
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"
|
|
20935
21820
|
},
|
|
20936
21821
|
[
|
|
20937
|
-
el("div", { className: "rb-faq-
|
|
20938
|
-
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
|
|
20939
21837
|
]
|
|
20940
21838
|
)
|
|
20941
21839
|
}),
|
|
@@ -20960,7 +21858,8 @@ var faqManifest = createBlockManifest({
|
|
|
20960
21858
|
layout: defaultLayout,
|
|
20961
21859
|
variants: {
|
|
20962
21860
|
default: defaultLayout,
|
|
20963
|
-
"two-column": twoColumnLayout
|
|
21861
|
+
"two-column": twoColumnLayout,
|
|
21862
|
+
"question-columns": questionColumnsLayout
|
|
20964
21863
|
},
|
|
20965
21864
|
defaultVariant: "default",
|
|
20966
21865
|
variantOptions: {
|
|
@@ -20971,6 +21870,10 @@ var faqManifest = createBlockManifest({
|
|
|
20971
21870
|
"two-column": {
|
|
20972
21871
|
label: "Two column",
|
|
20973
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."
|
|
20974
21877
|
}
|
|
20975
21878
|
},
|
|
20976
21879
|
description: "Accordion of frequently asked questions and answers.",
|
|
@@ -21092,9 +21995,21 @@ var eyebrowTreatmentClassMap = {
|
|
|
21092
21995
|
"accent-pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent rb-eyebrow-treatment-pill-bounce"
|
|
21093
21996
|
};
|
|
21094
21997
|
var eyebrowTreatmentSet = new Set(eyebrowTreatmentValues);
|
|
21998
|
+
var headingDecorationFamilySet = new Set(visibleHeadingDecorationFamilyValues);
|
|
21999
|
+
var headingDecorationPlacementSet = new Set(visibleHeadingDecorationPlacementValues);
|
|
22000
|
+
var headingDecorationColorTokenSet = new Set(headingDecorationColorTokenValues);
|
|
21095
22001
|
function isEyebrowTreatment(value) {
|
|
21096
22002
|
return typeof value === "string" && eyebrowTreatmentSet.has(value);
|
|
21097
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
|
+
}
|
|
21098
22013
|
var imageGalleryCornerClassMap = {
|
|
21099
22014
|
none: "",
|
|
21100
22015
|
sm: "rb-rounded-sm",
|
|
@@ -21198,6 +22113,10 @@ var sectionStateToneTransform = {
|
|
|
21198
22113
|
summary: "Map semantic section-state kind to feedback tone",
|
|
21199
22114
|
run: (value) => sectionStateToneFromUnknown(value)
|
|
21200
22115
|
};
|
|
22116
|
+
var heroTitleLengthThresholds = {
|
|
22117
|
+
medium: { maxCharacters: 42, maxWords: 6 },
|
|
22118
|
+
long: { maxCharacters: 78, maxWords: 11 }
|
|
22119
|
+
};
|
|
21201
22120
|
function isPlainObject(value) {
|
|
21202
22121
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
21203
22122
|
}
|
|
@@ -21205,6 +22124,14 @@ function readString(obj, key) {
|
|
|
21205
22124
|
const v = obj[key];
|
|
21206
22125
|
return typeof v === "string" ? v : void 0;
|
|
21207
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
|
+
}
|
|
21208
22135
|
function resolveHeroVariant(content) {
|
|
21209
22136
|
const variant = readString(content, "variant");
|
|
21210
22137
|
if (variant && variant.trim()) return variant.trim();
|
|
@@ -21213,14 +22140,14 @@ function resolveHeroVariant(content) {
|
|
|
21213
22140
|
return null;
|
|
21214
22141
|
}
|
|
21215
22142
|
function resolveHeroContentAlignment(content) {
|
|
21216
|
-
const raw =
|
|
22143
|
+
const raw = readHeroLayoutString(content, "contentAlignment");
|
|
21217
22144
|
if (raw === "left" || raw === "center" || raw === "right") return raw;
|
|
21218
22145
|
const variant = resolveHeroVariant(content);
|
|
21219
22146
|
if (variant === "split" || variant === "splitReverse") return "left";
|
|
21220
22147
|
return "center";
|
|
21221
22148
|
}
|
|
21222
22149
|
function resolveHeroVerticalAlignment(content) {
|
|
21223
|
-
const raw =
|
|
22150
|
+
const raw = readHeroLayoutString(content, "verticalAlignment");
|
|
21224
22151
|
if (raw === "top" || raw === "center" || raw === "bottom") return raw;
|
|
21225
22152
|
const sectionStyles = asPartialObject(content._sectionStyles);
|
|
21226
22153
|
const minHeight = sectionStyles?.minHeight;
|
|
@@ -21230,11 +22157,29 @@ function resolveHeroVerticalAlignment(content) {
|
|
|
21230
22157
|
return "top";
|
|
21231
22158
|
}
|
|
21232
22159
|
function resolveHeroContentMaxWidth(content) {
|
|
21233
|
-
const raw =
|
|
22160
|
+
const raw = readHeroLayoutString(content, "contentMaxWidth");
|
|
21234
22161
|
if (raw === "default" || raw === "narrow" || raw === "medium" || raw === "wide")
|
|
21235
22162
|
return raw;
|
|
21236
22163
|
return "default";
|
|
21237
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
|
+
}
|
|
21238
22183
|
var heroContentWrapperClassSchema = z33.object({
|
|
21239
22184
|
base: z33.string().optional()
|
|
21240
22185
|
});
|
|
@@ -21247,6 +22192,8 @@ var heroContentWrapperClassTransform = {
|
|
|
21247
22192
|
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
21248
22193
|
const alignment = resolveHeroContentAlignment(content);
|
|
21249
22194
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
22195
|
+
const typographyScale = resolveHeroTypographyScale(content);
|
|
22196
|
+
const titleLength = resolveHeroTitleLength(content);
|
|
21250
22197
|
const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
|
|
21251
22198
|
const maxWidthClass = maxWidth === "narrow" ? "rb-max-w-2xl" : maxWidth === "medium" ? "rb-max-w-3xl" : maxWidth === "wide" ? "rb-max-w-5xl" : "";
|
|
21252
22199
|
const positionClass = alignment === "center" ? "rb-mx-auto" : alignment === "right" ? "rb-ml-auto" : "";
|
|
@@ -21254,7 +22201,9 @@ var heroContentWrapperClassTransform = {
|
|
|
21254
22201
|
options?.base,
|
|
21255
22202
|
textAlignClass,
|
|
21256
22203
|
maxWidthClass,
|
|
21257
|
-
positionClass
|
|
22204
|
+
positionClass,
|
|
22205
|
+
typographyScale ? `rb-hero-typography-${typographyScale}` : "",
|
|
22206
|
+
`rb-hero-title-${titleLength}`
|
|
21258
22207
|
]);
|
|
21259
22208
|
}
|
|
21260
22209
|
};
|
|
@@ -21554,11 +22503,67 @@ var uiTransforms = [
|
|
|
21554
22503
|
const treatment = isEyebrowTreatment(value) ? value : "plain";
|
|
21555
22504
|
return joinClasses3([baseClass, eyebrowTreatmentClassMap[treatment]]);
|
|
21556
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
|
+
}
|
|
21557
22527
|
}
|
|
21558
22528
|
];
|
|
21559
22529
|
|
|
21560
22530
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
21561
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
|
|
21562
22567
|
var joinClasses4 = (parts) => parts.filter(
|
|
21563
22568
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
21564
22569
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -21674,32 +22679,35 @@ var headerRootClassTransform = {
|
|
|
21674
22679
|
...options
|
|
21675
22680
|
};
|
|
21676
22681
|
const content = asPartialObject(value) ?? {};
|
|
21677
|
-
const positioning =
|
|
22682
|
+
const positioning = parseHeaderPositioning(content.positioning);
|
|
22683
|
+
const placement = planSiteChromePlacement(positioning);
|
|
21678
22684
|
const shrinkOnScroll = Boolean(content.shrinkOnScroll);
|
|
21679
22685
|
const header = asPartialObject(value);
|
|
21680
22686
|
const visuals = resolveHeaderVisualStyles(header, context.theme);
|
|
21681
22687
|
const navContainerType = header?.navContainer?.type ?? "none";
|
|
21682
22688
|
const hasContainedNav = navContainerType === "glass" || navContainerType === "pill";
|
|
21683
22689
|
const backgroundClass = visuals.isTransparent || hasContainedNav ? "rb-bg-transparent" : null;
|
|
21684
|
-
const classes = [
|
|
21685
|
-
config.base,
|
|
21686
|
-
backgroundClass
|
|
21687
|
-
];
|
|
22690
|
+
const classes = [config.base, backgroundClass];
|
|
21688
22691
|
if (!hasContainedNav) {
|
|
21689
22692
|
if (config.blur) classes.push(config.blur);
|
|
21690
22693
|
if (config.blurSupport) classes.push(config.blurSupport);
|
|
21691
22694
|
}
|
|
21692
|
-
if (
|
|
22695
|
+
if (placement.kind === "sticky") {
|
|
21693
22696
|
classes.push(
|
|
21694
22697
|
visuals.isTransparent ? config.stickyTransparent : config.sticky
|
|
21695
22698
|
);
|
|
21696
|
-
} else if (
|
|
22699
|
+
} else if (placement.kind === "fixed") {
|
|
21697
22700
|
classes.push(config.fixed);
|
|
21698
22701
|
}
|
|
21699
|
-
if (shrinkOnScroll &&
|
|
22702
|
+
if (shrinkOnScroll && placement.kind !== "static") {
|
|
21700
22703
|
classes.push(config.shrink);
|
|
21701
22704
|
}
|
|
21702
|
-
const VALID_VARIANTS = [
|
|
22705
|
+
const VALID_VARIANTS = [
|
|
22706
|
+
"classic",
|
|
22707
|
+
"centered",
|
|
22708
|
+
"transparent",
|
|
22709
|
+
"floating"
|
|
22710
|
+
];
|
|
21703
22711
|
const variant = header?.variant;
|
|
21704
22712
|
if (variant && VALID_VARIANTS.includes(variant)) {
|
|
21705
22713
|
classes.push(`header-variant-${variant}`);
|
|
@@ -22226,6 +23234,10 @@ function desktopOnlyDisplay(display) {
|
|
|
22226
23234
|
return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
|
|
22227
23235
|
}
|
|
22228
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
|
+
|
|
22229
23241
|
// ../blocks/src/system/blocks/site-header.ts
|
|
22230
23242
|
var logoRow = link(
|
|
22231
23243
|
{
|
|
@@ -22320,15 +23332,21 @@ var mobileCta = ctaButton({
|
|
|
22320
23332
|
var mobileToggleIcon = stack({ gap: "xs", className: "nav-mobile-icon" }, [
|
|
22321
23333
|
{
|
|
22322
23334
|
type: "div",
|
|
22323
|
-
props: {
|
|
23335
|
+
props: {
|
|
23336
|
+
className: "nav-mobile-bar nav-mobile-bar-top rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
|
|
23337
|
+
}
|
|
22324
23338
|
},
|
|
22325
23339
|
{
|
|
22326
23340
|
type: "div",
|
|
22327
|
-
props: {
|
|
23341
|
+
props: {
|
|
23342
|
+
className: "nav-mobile-bar nav-mobile-bar-middle rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
|
|
23343
|
+
}
|
|
22328
23344
|
},
|
|
22329
23345
|
{
|
|
22330
23346
|
type: "div",
|
|
22331
|
-
props: {
|
|
23347
|
+
props: {
|
|
23348
|
+
className: "nav-mobile-bar nav-mobile-bar-bottom rb-h-0.5 rb-w-5 rb-rounded-full rb-bg-current"
|
|
23349
|
+
}
|
|
22332
23350
|
}
|
|
22333
23351
|
]);
|
|
22334
23352
|
var mobileToggleButton = {
|
|
@@ -22492,6 +23510,7 @@ var transparentLayout = inline(
|
|
|
22492
23510
|
);
|
|
22493
23511
|
var floatingLayout = inline(
|
|
22494
23512
|
{
|
|
23513
|
+
[SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
|
|
22495
23514
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
22496
23515
|
transforms: pipe(
|
|
22497
23516
|
tx("layout.maxWidthClass", {
|
|
@@ -22511,28 +23530,6 @@ var floatingLayout = inline(
|
|
|
22511
23530
|
],
|
|
22512
23531
|
when("$root.theme.header.variant", { equals: "floating" })
|
|
22513
23532
|
);
|
|
22514
|
-
var editorialLayout = stack(
|
|
22515
|
-
{
|
|
22516
|
-
gap: "md",
|
|
22517
|
-
align: "center",
|
|
22518
|
-
className: bindProp("$root.theme.header.maxWidth", {
|
|
22519
|
-
transforms: pipe(
|
|
22520
|
-
tx("layout.maxWidthClass", {
|
|
22521
|
-
base: `rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
|
|
22522
|
-
})
|
|
22523
|
-
),
|
|
22524
|
-
fallback: `rb-container rb-header-layout ${desktopOnlyDisplay("flex")} rb-w-full rb-flex-col rb-items-center rb-gap-6 rb-text-center`
|
|
22525
|
-
})
|
|
22526
|
-
},
|
|
22527
|
-
[
|
|
22528
|
-
centeredLogoRow,
|
|
22529
|
-
createNavRow(
|
|
22530
|
-
`${desktopOnlyDisplay("flex")} rb-flex-wrap rb-justify-center rb-gap-x-8 rb-gap-y-3`,
|
|
22531
|
-
"center"
|
|
22532
|
-
)
|
|
22533
|
-
],
|
|
22534
|
-
when("$root.theme.header.variant", { equals: "editorial" })
|
|
22535
|
-
);
|
|
22536
23533
|
var headerLayout = headerSection(
|
|
22537
23534
|
{
|
|
22538
23535
|
background: bindProp("$root.theme.header", {
|
|
@@ -22546,10 +23543,7 @@ var headerLayout = headerSection(
|
|
|
22546
23543
|
}),
|
|
22547
23544
|
style: bindProp("$root.theme.header", {
|
|
22548
23545
|
transforms: pipe(tx("layout.headerRootStyle")),
|
|
22549
|
-
fallback: mergeStyles(
|
|
22550
|
-
textColorStyle("text"),
|
|
22551
|
-
borderColorStyle("border")
|
|
22552
|
-
)
|
|
23546
|
+
fallback: mergeStyles(textColorStyle("text"), borderColorStyle("border"))
|
|
22553
23547
|
})
|
|
22554
23548
|
},
|
|
22555
23549
|
[
|
|
@@ -22558,7 +23552,6 @@ var headerLayout = headerSection(
|
|
|
22558
23552
|
centeredLayout,
|
|
22559
23553
|
transparentLayout,
|
|
22560
23554
|
floatingLayout,
|
|
22561
|
-
editorialLayout,
|
|
22562
23555
|
mobileOverlay
|
|
22563
23556
|
],
|
|
22564
23557
|
props({
|
|
@@ -23463,6 +24456,10 @@ var sectionHeading = stack(
|
|
|
23463
24456
|
when("content.title"),
|
|
23464
24457
|
bind("content.title")
|
|
23465
24458
|
),
|
|
24459
|
+
headingDecoration({
|
|
24460
|
+
family: "short-center-rule",
|
|
24461
|
+
placement: "under-centered-heading"
|
|
24462
|
+
}),
|
|
23466
24463
|
richText(
|
|
23467
24464
|
{
|
|
23468
24465
|
className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
|
|
@@ -25886,7 +26883,7 @@ var COLUMN_CLASSES = {
|
|
|
25886
26883
|
};
|
|
25887
26884
|
function getContainerClass(layout, columns) {
|
|
25888
26885
|
if (layout === "compact") {
|
|
25889
|
-
return "event-listing-compact-container rb-flex rb-flex-col
|
|
26886
|
+
return "event-listing-compact-container rb-flex rb-flex-col";
|
|
25890
26887
|
}
|
|
25891
26888
|
if (layout === "stack") {
|
|
25892
26889
|
return "rb-flex rb-flex-col rb-gap-6";
|
|
@@ -28714,6 +29711,7 @@ import { z as z53 } from "zod";
|
|
|
28714
29711
|
var storedProductCartItemSchema = z53.object({
|
|
28715
29712
|
kind: z53.literal("product"),
|
|
28716
29713
|
productId: z53.string().min(1),
|
|
29714
|
+
productCategoryId: z53.string().min(1).optional().nullable(),
|
|
28717
29715
|
variantId: z53.string().min(1).optional().nullable(),
|
|
28718
29716
|
title: z53.string().min(1),
|
|
28719
29717
|
variantTitle: z53.string().optional().nullable(),
|
|
@@ -31218,6 +32216,10 @@ var scheduleTileTreatments = [
|
|
|
31218
32216
|
"quiet",
|
|
31219
32217
|
"brand-depth"
|
|
31220
32218
|
];
|
|
32219
|
+
var eventListTreatments = [
|
|
32220
|
+
"plain",
|
|
32221
|
+
"lined-panel"
|
|
32222
|
+
];
|
|
31221
32223
|
function scheduleDetailsCapable() {
|
|
31222
32224
|
return declareBlockDesignCapability({
|
|
31223
32225
|
sectionSurfaces: "supported",
|
|
@@ -31226,6 +32228,14 @@ function scheduleDetailsCapable() {
|
|
|
31226
32228
|
tileTreatments: scheduleTileTreatments
|
|
31227
32229
|
});
|
|
31228
32230
|
}
|
|
32231
|
+
function eventListCapable() {
|
|
32232
|
+
return declareBlockDesignCapability({
|
|
32233
|
+
sectionSurfaces: "supported",
|
|
32234
|
+
contentFrames: ["plain"],
|
|
32235
|
+
itemSurfaces: "unsupported",
|
|
32236
|
+
eventListTreatments
|
|
32237
|
+
});
|
|
32238
|
+
}
|
|
31229
32239
|
function defaultBoundaryBias(visualWeight) {
|
|
31230
32240
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
31231
32241
|
}
|
|
@@ -31445,7 +32455,8 @@ var systemBlockDefinitionsRaw = [
|
|
|
31445
32455
|
flow: bodyFlow,
|
|
31446
32456
|
layoutProfiles: [
|
|
31447
32457
|
layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
|
|
31448
|
-
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" })
|
|
31449
32460
|
]
|
|
31450
32461
|
})),
|
|
31451
32462
|
withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
|
|
@@ -31539,11 +32550,11 @@ var systemBlockDefinitionsRaw = [
|
|
|
31539
32550
|
flow: offeringsFlow,
|
|
31540
32551
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
|
|
31541
32552
|
})),
|
|
31542
|
-
withDesignCapability("block.event-listing", eventListingBlockDefinition,
|
|
32553
|
+
withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
31543
32554
|
flow: offeringsFlow,
|
|
31544
32555
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
31545
32556
|
})),
|
|
31546
|
-
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition,
|
|
32557
|
+
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
31547
32558
|
flow: offeringsFlow,
|
|
31548
32559
|
layoutProfiles: [
|
|
31549
32560
|
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
@@ -32675,6 +33686,15 @@ ${root} {
|
|
|
32675
33686
|
`;
|
|
32676
33687
|
}
|
|
32677
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
|
+
|
|
32678
33698
|
// ../theme-core/src/blocks/vars/customer-portal.ts
|
|
32679
33699
|
function generateCustomerPortalVars({
|
|
32680
33700
|
themeId
|
|
@@ -32688,6 +33708,11 @@ ${root} {
|
|
|
32688
33708
|
--cp-muted: rgb(var(--tb-mutedText));
|
|
32689
33709
|
--cp-border: rgb(var(--tb-border));
|
|
32690
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));
|
|
32691
33716
|
|
|
32692
33717
|
/* Shared tab bar (underline style) */
|
|
32693
33718
|
--rb-tab-border-width: 1px;
|
|
@@ -32738,7 +33763,7 @@ ${root} {
|
|
|
32738
33763
|
--rb-modal-bg: var(--cp-card-bg);
|
|
32739
33764
|
--rb-modal-border: var(--cp-card-border);
|
|
32740
33765
|
--rb-modal-shadow: var(--shadow-lg, var(--shadow-elev));
|
|
32741
|
-
--rb-modal-radius: var(--
|
|
33766
|
+
--rb-modal-radius: var(--cp-card-radius);
|
|
32742
33767
|
--rb-modal-max-width: 560px;
|
|
32743
33768
|
|
|
32744
33769
|
/* Header */
|
|
@@ -34119,6 +35144,9 @@ import { jsx as jsx5 } from "react/jsx-runtime";
|
|
|
34119
35144
|
import * as React from "react";
|
|
34120
35145
|
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
34121
35146
|
|
|
35147
|
+
// ../theme-core/src/fonts/uploadFormat.ts
|
|
35148
|
+
var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
35149
|
+
|
|
34122
35150
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
34123
35151
|
import { z as z61 } from "zod";
|
|
34124
35152
|
var themeBridgeConfigSchema = z61.object({
|
|
@@ -34892,6 +35920,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
|
|
|
34892
35920
|
];
|
|
34893
35921
|
|
|
34894
35922
|
// ../api/src/bookingVerticals.ts
|
|
35923
|
+
import { z as z64 } from "zod";
|
|
34895
35924
|
var VERTICAL_IDS = [
|
|
34896
35925
|
"yoga_wellness",
|
|
34897
35926
|
"fitness_pt",
|
|
@@ -34970,6 +35999,132 @@ var VERTICAL_ID_SET = new Set(VERTICAL_IDS);
|
|
|
34970
35999
|
var VERTICAL_PRESET_ID_SET = new Set(
|
|
34971
36000
|
VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
|
|
34972
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
|
+
};
|
|
34973
36128
|
function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
34974
36129
|
return {
|
|
34975
36130
|
id,
|
|
@@ -34989,51 +36144,51 @@ function isRecord3(value) {
|
|
|
34989
36144
|
}
|
|
34990
36145
|
|
|
34991
36146
|
// ../api/src/appointmentSetup.ts
|
|
34992
|
-
import { z as
|
|
36147
|
+
import { z as z65 } from "zod";
|
|
34993
36148
|
var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
|
|
34994
|
-
var appointmentSetupRefSchema =
|
|
34995
|
-
|
|
34996
|
-
|
|
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) })
|
|
34997
36152
|
]);
|
|
34998
|
-
var appointmentSetupVenueChoiceSchema =
|
|
34999
|
-
|
|
35000
|
-
|
|
35001
|
-
|
|
35002
|
-
kind:
|
|
35003
|
-
draftId:
|
|
35004
|
-
title:
|
|
35005
|
-
description:
|
|
35006
|
-
timezone:
|
|
35007
|
-
addressJson:
|
|
35008
|
-
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()
|
|
35009
36164
|
})
|
|
35010
36165
|
]);
|
|
35011
|
-
var appointmentSetupPaymentDraftSchema =
|
|
35012
|
-
priceType:
|
|
35013
|
-
});
|
|
35014
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
35015
|
-
|
|
35016
|
-
|
|
35017
|
-
kind:
|
|
35018
|
-
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)
|
|
35019
36174
|
})
|
|
35020
36175
|
]);
|
|
35021
|
-
var appointmentSetupServiceDraftSchema =
|
|
36176
|
+
var appointmentSetupServiceDraftSchema = z65.object({
|
|
35022
36177
|
ref: appointmentSetupRefSchema,
|
|
35023
|
-
title:
|
|
35024
|
-
description:
|
|
35025
|
-
durationMinutes:
|
|
35026
|
-
prepMinutes:
|
|
35027
|
-
cleanupMinutes:
|
|
35028
|
-
priceAmount:
|
|
35029
|
-
isActive:
|
|
35030
|
-
locationType:
|
|
35031
|
-
|
|
35032
|
-
|
|
35033
|
-
|
|
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")
|
|
35034
36189
|
]),
|
|
35035
36190
|
venue: appointmentSetupVenueChoiceSchema,
|
|
35036
|
-
timezone:
|
|
36191
|
+
timezone: z65.string().trim().min(1).nullable(),
|
|
35037
36192
|
payment: appointmentSetupPaymentDraftSchema,
|
|
35038
36193
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
35039
36194
|
}).superRefine((service, ctx) => {
|
|
@@ -35052,49 +36207,49 @@ var appointmentSetupServiceDraftSchema = z64.object({
|
|
|
35052
36207
|
});
|
|
35053
36208
|
}
|
|
35054
36209
|
});
|
|
35055
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
36210
|
+
var appointmentSetupPractitionerDraftSchema = z65.object({
|
|
35056
36211
|
ref: appointmentSetupRefSchema,
|
|
35057
|
-
displayName:
|
|
35058
|
-
bio:
|
|
35059
|
-
timezone:
|
|
35060
|
-
colorHex:
|
|
35061
|
-
});
|
|
35062
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
35063
|
-
weekday:
|
|
35064
|
-
startTime:
|
|
35065
|
-
endTime:
|
|
35066
|
-
});
|
|
35067
|
-
var appointmentSetupStartTimePolicyDraftSchema =
|
|
35068
|
-
|
|
35069
|
-
|
|
35070
|
-
kind:
|
|
35071
|
-
intervalMinutes:
|
|
35072
|
-
|
|
35073
|
-
|
|
35074
|
-
|
|
35075
|
-
|
|
35076
|
-
|
|
35077
|
-
|
|
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)
|
|
35078
36233
|
])
|
|
35079
36234
|
})
|
|
35080
36235
|
]);
|
|
35081
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
35082
|
-
kind:
|
|
36236
|
+
var appointmentSetupAvailabilityDraftSchema = z65.object({
|
|
36237
|
+
kind: z65.literal("weekly_windows"),
|
|
35083
36238
|
resourceRef: appointmentSetupRefSchema,
|
|
35084
36239
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
35085
|
-
windows:
|
|
36240
|
+
windows: z65.array(appointmentSetupWeeklyWindowDraftSchema),
|
|
35086
36241
|
startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
|
|
35087
36242
|
});
|
|
35088
36243
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
35089
36244
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
35090
|
-
var appointmentSetupBookingNoticeSchema =
|
|
35091
|
-
minLeadMinutes:
|
|
35092
|
-
maxBookingNoticeMinutes:
|
|
35093
|
-
});
|
|
35094
|
-
var applyAppointmentSetupRequestSchema =
|
|
35095
|
-
services:
|
|
35096
|
-
practitioners:
|
|
35097
|
-
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),
|
|
35098
36253
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
35099
36254
|
});
|
|
35100
36255
|
|
|
@@ -35127,24 +36282,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
35127
36282
|
];
|
|
35128
36283
|
|
|
35129
36284
|
// ../api/src/siteBanner.ts
|
|
35130
|
-
import { z as
|
|
36285
|
+
import { z as z66 } from "zod";
|
|
35131
36286
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
35132
36287
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
35133
36288
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
35134
36289
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
35135
|
-
var siteBannerScopeSchema =
|
|
35136
|
-
var siteBannerToneSchema =
|
|
35137
|
-
var siteBannerBodySchema =
|
|
35138
|
-
var siteBannerCtaSchema =
|
|
35139
|
-
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),
|
|
35140
36295
|
link: linkPayloadSchema
|
|
35141
36296
|
});
|
|
35142
|
-
var siteBannerSettingsSchema =
|
|
35143
|
-
|
|
35144
|
-
enabled:
|
|
36297
|
+
var siteBannerSettingsSchema = z66.discriminatedUnion("enabled", [
|
|
36298
|
+
z66.object({
|
|
36299
|
+
enabled: z66.literal(false)
|
|
35145
36300
|
}),
|
|
35146
|
-
|
|
35147
|
-
enabled:
|
|
36301
|
+
z66.object({
|
|
36302
|
+
enabled: z66.literal(true),
|
|
35148
36303
|
scope: siteBannerScopeSchema,
|
|
35149
36304
|
tone: siteBannerToneSchema,
|
|
35150
36305
|
body: siteBannerBodySchema,
|
|
@@ -35158,7 +36313,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
35158
36313
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
35159
36314
|
for (const issue of analysis.issues) {
|
|
35160
36315
|
ctx.addIssue({
|
|
35161
|
-
code:
|
|
36316
|
+
code: z66.ZodIssueCode.custom,
|
|
35162
36317
|
path: ["body"],
|
|
35163
36318
|
message: siteBannerBodyIssueMessage(issue)
|
|
35164
36319
|
});
|
|
@@ -35346,72 +36501,105 @@ function collectText(node) {
|
|
|
35346
36501
|
return (node.content ?? []).map(collectText).join("");
|
|
35347
36502
|
}
|
|
35348
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
|
+
|
|
35349
36537
|
// ../api/src/aiPlayground.ts
|
|
35350
|
-
import { z as
|
|
35351
|
-
var Rfc6902PatchOp =
|
|
36538
|
+
import { z as z67 } from "zod";
|
|
36539
|
+
var Rfc6902PatchOp = z67.discriminatedUnion("op", [
|
|
35352
36540
|
// Standard RFC-6902 operations
|
|
35353
|
-
|
|
35354
|
-
op:
|
|
35355
|
-
path:
|
|
35356
|
-
value:
|
|
36541
|
+
z67.object({
|
|
36542
|
+
op: z67.literal("add"),
|
|
36543
|
+
path: z67.string(),
|
|
36544
|
+
value: z67.unknown()
|
|
35357
36545
|
}),
|
|
35358
|
-
|
|
35359
|
-
op:
|
|
35360
|
-
path:
|
|
36546
|
+
z67.object({
|
|
36547
|
+
op: z67.literal("remove"),
|
|
36548
|
+
path: z67.string()
|
|
35361
36549
|
}),
|
|
35362
|
-
|
|
35363
|
-
op:
|
|
35364
|
-
path:
|
|
35365
|
-
value:
|
|
36550
|
+
z67.object({
|
|
36551
|
+
op: z67.literal("replace"),
|
|
36552
|
+
path: z67.string(),
|
|
36553
|
+
value: z67.unknown()
|
|
35366
36554
|
}),
|
|
35367
|
-
|
|
35368
|
-
op:
|
|
35369
|
-
from:
|
|
35370
|
-
path:
|
|
36555
|
+
z67.object({
|
|
36556
|
+
op: z67.literal("move"),
|
|
36557
|
+
from: z67.string(),
|
|
36558
|
+
path: z67.string()
|
|
35371
36559
|
}),
|
|
35372
|
-
|
|
35373
|
-
op:
|
|
35374
|
-
from:
|
|
35375
|
-
path:
|
|
36560
|
+
z67.object({
|
|
36561
|
+
op: z67.literal("copy"),
|
|
36562
|
+
from: z67.string(),
|
|
36563
|
+
path: z67.string()
|
|
35376
36564
|
}),
|
|
35377
36565
|
// Block-level operations (Phase 2)
|
|
35378
|
-
|
|
35379
|
-
op:
|
|
35380
|
-
blockKind:
|
|
35381
|
-
afterBlockId:
|
|
35382
|
-
content:
|
|
35383
|
-
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()
|
|
35384
36572
|
}),
|
|
35385
|
-
|
|
35386
|
-
op:
|
|
35387
|
-
blockId:
|
|
35388
|
-
rationale:
|
|
36573
|
+
z67.object({
|
|
36574
|
+
op: z67.literal("delete_block"),
|
|
36575
|
+
blockId: z67.string(),
|
|
36576
|
+
rationale: z67.string()
|
|
35389
36577
|
}),
|
|
35390
|
-
|
|
35391
|
-
op:
|
|
35392
|
-
blockId:
|
|
35393
|
-
afterBlockId:
|
|
35394
|
-
rationale:
|
|
36578
|
+
z67.object({
|
|
36579
|
+
op: z67.literal("reorder_block"),
|
|
36580
|
+
blockId: z67.string(),
|
|
36581
|
+
afterBlockId: z67.string().nullable(),
|
|
36582
|
+
rationale: z67.string()
|
|
35395
36583
|
})
|
|
35396
36584
|
]);
|
|
35397
|
-
var PlaygroundProposeRequest =
|
|
35398
|
-
request:
|
|
36585
|
+
var PlaygroundProposeRequest = z67.object({
|
|
36586
|
+
request: z67.string().min(1).max(2e3)
|
|
35399
36587
|
});
|
|
35400
|
-
var MultiPagePatchEnvelope =
|
|
35401
|
-
pageId:
|
|
35402
|
-
blockId:
|
|
36588
|
+
var MultiPagePatchEnvelope = z67.object({
|
|
36589
|
+
pageId: z67.string(),
|
|
36590
|
+
blockId: z67.string().optional(),
|
|
35403
36591
|
// Not present for page-level ops
|
|
35404
|
-
blockKind:
|
|
35405
|
-
blockPurpose:
|
|
35406
|
-
ops:
|
|
35407
|
-
rationale:
|
|
35408
|
-
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()
|
|
35409
36597
|
});
|
|
35410
|
-
var MultiPageUpdateResponse =
|
|
35411
|
-
patches:
|
|
35412
|
-
assistantMessage:
|
|
35413
|
-
pagesModified:
|
|
35414
|
-
toolCallsUsed:
|
|
36598
|
+
var MultiPageUpdateResponse = z67.object({
|
|
36599
|
+
patches: z67.array(MultiPagePatchEnvelope),
|
|
36600
|
+
assistantMessage: z67.string(),
|
|
36601
|
+
pagesModified: z67.number(),
|
|
36602
|
+
toolCallsUsed: z67.number()
|
|
35415
36603
|
});
|
|
35416
36604
|
|
|
35417
36605
|
// src/data/prefetchBlockData.ts
|
|
@@ -36040,12 +37228,25 @@ function isPageContent(result) {
|
|
|
36040
37228
|
function isEntryContent(result) {
|
|
36041
37229
|
return result.type === "entry";
|
|
36042
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
|
+
}
|
|
36043
37237
|
async function loadContent(params) {
|
|
36044
37238
|
const { client, siteId, path, preview = false, forceSite } = params;
|
|
36045
|
-
const [
|
|
37239
|
+
const [siteResult, contentResult] = await Promise.allSettled([
|
|
36046
37240
|
client.getSite({ id: siteId, ...forceSite ? { force: true } : {} }),
|
|
36047
37241
|
client.getPage({ siteId, path, preview })
|
|
36048
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;
|
|
36049
37250
|
const customBlocks = resolveSiteCustomBlocks(site);
|
|
36050
37251
|
const mediaAssets = Array.isArray(contentResponse.mediaAssets) && contentResponse.mediaAssets.length > 0 ? contentResponse.mediaAssets : void 0;
|
|
36051
37252
|
if (isEntryResponse(contentResponse)) {
|