@riverbankcms/sdk 0.77.1 → 0.78.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +69 -0
- package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-RIKFQ72L.mjs} +4916 -4847
- package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-XO7TUWKK.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-LAGYMPNF.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +154 -154
- package/dist/_dts/api/src/accessAdmin.d.ts +5 -0
- package/dist/_dts/api/src/billing.d.ts +3 -26
- package/dist/_dts/api/src/bookingVerticals.d.ts +4 -0
- package/dist/_dts/api/src/content-editor.d.ts +1 -0
- package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
- package/dist/_dts/api/src/endpoints.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +14 -2
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +87 -0
- package/dist/_dts/api/src/navigation/dashboardDemoNav.d.ts +5 -0
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +45 -0
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +42 -0
- package/dist/_dts/api/src/navigation/dashboardTeamMemberNav.d.ts +24 -0
- package/dist/_dts/api/src/navigation/linkUrlType.d.ts +3 -0
- package/dist/_dts/api/src/navigation.d.ts +12 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
- package/dist/_dts/api/src/staffAccess.d.ts +79 -0
- package/dist/_dts/api/src/types.d.ts +3 -1
- package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
- package/dist/_dts/blocks/src/client/site-chrome.d.ts +4 -1
- package/dist/_dts/blocks/src/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/courses/shared/schemas.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +21 -21
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/data/index.d.ts +5 -3
- package/dist/_dts/blocks/src/system/data/previewResolvedDataState.d.ts +45 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +2 -1
- package/dist/_dts/blocks/src/system/fragments/library/faqAccordion.d.ts +5 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +29 -29
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +10 -0
- package/dist/_dts/blocks/src/system/node/fragments/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +9 -0
- package/dist/_dts/blocks/src/system/runtime/api/client.d.ts +3 -2
- package/dist/_dts/blocks/src/system/runtime/api/endpoints.d.ts +8 -0
- package/dist/_dts/blocks/src/system/runtime/api/index.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/api/types.d.ts +43 -8
- package/dist/_dts/blocks/src/system/runtime/header/shared.d.ts +8 -7
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCompactRow.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/utils.d.ts +7 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.server.d.ts +2 -9
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-cart-discount-ui.d.ts +5 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout-form.d.ts +76 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-checkout.state.d.ts +1 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce-store.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-commerce.shared.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop-discount-apply.state.d.ts +52 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shop.state.d.ts +2 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/useDiscountApply.d.ts +21 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/DiscountCodeDisclosure.d.ts +54 -0
- package/dist/_dts/blocks/src/system/runtime/shared/components/index.d.ts +2 -0
- package/dist/_dts/blocks/src/system/runtime/shared/index.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/ui.d.ts +1 -1
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
- package/dist/_dts/content-editor/src/contentTypeEditorContentState.d.ts +26 -0
- package/dist/_dts/content-editor/src/definitions/factory.d.ts +75 -0
- package/dist/_dts/content-editor/src/entryWorkflows.d.ts +2 -0
- package/dist/_dts/content-editor/src/footerBlocksEditorState.d.ts +76 -0
- package/dist/_dts/content-editor/src/index.d.ts +5 -0
- package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +3 -3
- package/dist/_dts/content-model/src/index.d.ts +1 -0
- package/dist/_dts/content-model/src/routeTemplate.d.ts +4 -0
- package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
- package/dist/_dts/core/src/csv-cells.d.ts +10 -0
- package/dist/_dts/core/src/csv-date-filter.d.ts +27 -0
- package/dist/_dts/core/src/csv-escape.d.ts +1 -0
- package/dist/_dts/core/src/csv-filename.d.ts +18 -0
- package/dist/_dts/core/src/csv-render.d.ts +4 -0
- package/dist/_dts/core/src/csv-types.d.ts +116 -0
- package/dist/_dts/core/src/currency-format.d.ts +4 -0
- package/dist/_dts/core/src/demo-capability-policy.d.ts +29 -0
- package/dist/_dts/core/src/demo-claim-access.d.ts +14 -0
- package/dist/_dts/core/src/demo-lifecycle-status.d.ts +11 -0
- package/dist/_dts/core/src/demo-runtime.d.ts +47 -0
- package/dist/_dts/core/src/duration.d.ts +14 -0
- package/dist/_dts/core/src/email-format.d.ts +10 -0
- package/dist/_dts/core/src/field-errors.d.ts +1 -0
- package/dist/_dts/core/src/form-submission-preview.d.ts +24 -0
- package/dist/_dts/core/src/index.d.ts +20 -0
- package/dist/_dts/core/src/number-input.d.ts +22 -0
- package/dist/_dts/core/src/public-url-validation.d.ts +12 -0
- package/dist/_dts/core/src/slug.d.ts +39 -0
- package/dist/_dts/core/src/string.d.ts +19 -0
- package/dist/_dts/core/src/uuid.d.ts +6 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
- package/dist/_dts/media-core/src/assetsInUseSummary.d.ts +34 -0
- package/dist/_dts/media-core/src/bulkDeletePlanning.d.ts +24 -0
- package/dist/_dts/media-core/src/canonicalCropReview.d.ts +66 -0
- package/dist/_dts/media-core/src/classifyAllPlanning.d.ts +48 -0
- package/dist/_dts/media-core/src/filename.d.ts +1 -0
- package/dist/_dts/media-core/src/index.d.ts +10 -0
- package/dist/_dts/media-core/src/mediaAssetUsageStatus.d.ts +47 -0
- package/dist/_dts/media-core/src/mediaSettingsState.d.ts +3 -0
- package/dist/_dts/media-core/src/portableMediaReferences.d.ts +38 -0
- package/dist/_dts/media-core/src/uploadVerificationContract.d.ts +28 -0
- package/dist/_dts/media-core/src/videoAssetRepair.d.ts +38 -0
- package/dist/_dts/media-editor/src/mediaEditorDebug.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +8 -0
- package/dist/_dts/path-utils/src/redirectPaths.d.ts +26 -0
- package/dist/_dts/path-utils/src/safeAppPath.d.ts +26 -0
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeButton.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/previewDocumentFrame.d.ts +31 -0
- package/dist/_dts/sdk/src/client/error.d.ts +3 -0
- package/dist/_dts/sdk/src/client/index.d.ts +2 -2
- package/dist/_dts/sdk/src/client/types.d.ts +37 -19
- package/dist/_dts/sdk/src/index.d.ts +2 -2
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +16 -16
- package/dist/_dts/sdk/src/next/content-load-failure.d.ts +51 -0
- package/dist/_dts/sdk/src/next/index.d.ts +2 -1
- package/dist/_dts/sdk/src/next/types.d.ts +19 -0
- package/dist/_dts/sdk/src/portal/redirects.d.ts +1 -1
- package/dist/_dts/sdk/src/routing/index.d.ts +3 -2
- package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +71 -6
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +12 -12
- package/dist/_dts/site-commands/src/index.d.ts +1 -0
- package/dist/_dts/site-commands/src/pagePaths.d.ts +6 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +26 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +1 -0
- package/dist/_dts/theme-core/src/blocks/vars/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/fonts/uploadFormat.d.ts +44 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/index.d.ts +3 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -24
- package/dist/_dts/theme-core/src/navigation/generateNavLinkCSS.d.ts +6 -1
- package/dist/_dts/theme-core/src/navigation/types.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +7 -0
- package/dist/_dts/theme-core/src/schema.d.ts +64 -18
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +5 -2
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +214 -34
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +24 -0
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +31 -3
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +33 -1
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +9 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +27 -2
- package/dist/_dts/theme-core/src/siteChrome.d.ts +17 -34
- package/dist/_dts/theme-core/src/siteChromeOverlayClearance.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlacement.d.ts +22 -0
- package/dist/_dts/theme-core/src/siteChromePlanning.d.ts +32 -0
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -2
- package/dist/{chunk-2SPENC5M.mjs → chunk-F7RTCZYN.mjs} +229 -50
- package/dist/{chunk-IENWFSLO.mjs → chunk-NIDXI46P.mjs} +1 -1
- package/dist/{chunk-KWJPDZH2.mjs → chunk-OECWLDHN.mjs} +2770 -620
- package/dist/{chunk-VX7B5VAC.mjs → chunk-SVMMM2NA.mjs} +8 -0
- package/dist/{chunk-6SMUFTXD.mjs → chunk-SXOLGNMX.mjs} +1 -1
- package/dist/{chunk-ZYEJLCTN.mjs → chunk-TXDES5P2.mjs} +2 -2
- package/dist/cli/index.mjs +1677 -440
- package/dist/client/{accordion-RZMQSYLR.mjs → accordion-EVDEOUPR.mjs} +2 -2
- package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-DIHBLC64.mjs} +27 -30
- package/dist/client/bookings.mjs +3707 -259
- package/dist/client/{carousel-LDX47ZIK.mjs → carousel-FEBQHIWI.mjs} +3 -4
- package/dist/client/{cart-RGXDS5F4.mjs → cart-7CKSXAE4.mjs} +8 -8
- package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WKYCANLV.mjs} +8 -8
- package/dist/client/{chunk-JNC7CGHX.mjs → chunk-2SAVKN2M.mjs} +2 -2
- package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-36WJCERQ.mjs} +1 -1
- package/dist/client/{chunk-R56FQ3RR.mjs → chunk-65F47D7Y.mjs} +280 -71
- package/dist/client/{chunk-L3DNHIJX.mjs → chunk-GUK2FPXQ.mjs} +23 -45
- package/dist/client/{chunk-PMAIXMAB.mjs → chunk-IVNCUVAV.mjs} +26 -21
- package/dist/client/{chunk-II7O4XN3.mjs → chunk-OFMSCGNY.mjs} +2 -2
- package/dist/client/chunk-PD6NBCEY.mjs +66 -0
- package/dist/client/{chunk-GMVTOKYG.mjs → chunk-RV6FX7UH.mjs} +510 -64
- package/dist/client/{chunk-E2TDNXCL.mjs → chunk-RZDWX7QW.mjs} +2 -1
- package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
- package/dist/client/{chunk-JEZECJ3W.mjs → chunk-VPPMNXCF.mjs} +129 -3
- package/dist/client/{chunk-UFSWADAO.mjs → chunk-YDSEG6GZ.mjs} +5 -66
- package/dist/client/client.mjs +7070 -4561
- package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-5QF2PHKM.mjs} +14 -11
- package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-4ZOSETDU.mjs} +9 -9
- package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-WQGU7JUX.mjs} +9 -9
- package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-AYWVUJ5Y.mjs} +9 -9
- package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-NT7C6UT5.mjs} +9 -9
- package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-OH24F4ZJ.mjs} +9 -9
- package/dist/client/{form-ETFZFATW.mjs → form-7L42SRBB.mjs} +6 -6
- package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-OZRZNZ52.mjs} +3 -3
- package/dist/client/hooks.mjs +1040 -278
- package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-ZBXRPQ7C.mjs} +2 -2
- package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-SNAGFF2I.mjs} +3 -3
- package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-I46BOFGV.mjs} +8 -8
- package/dist/client/{productList-A5RO5WIS.mjs → productList-BOYHTYI6.mjs} +8 -8
- package/dist/client/rendering/client.mjs +7090 -2645
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +6089 -3792
- package/dist/client/{shop-L4MZH4I2.mjs → shop-XTXPZTKR.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +8 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/editor-chrome.css +10 -0
- package/dist/preview-next/middleware.mjs +8 -0
- package/dist/{sdk-runtime-6UT2S7KZ.mjs → sdk-runtime-ZJLKC6DR.mjs} +6 -6
- package/dist/server/components.mjs +2635 -1262
- package/dist/server/config-validation.mjs +1271 -509
- package/dist/server/config.mjs +1271 -509
- package/dist/server/data.mjs +1040 -278
- package/dist/server/index.mjs +488 -246
- package/dist/server/next.mjs +4087 -2147
- package/dist/server/page-converter.mjs +571 -115
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2636 -1263
- package/dist/server/rendering.mjs +2654 -1268
- package/dist/server/routing.mjs +1729 -489
- package/dist/server/server.mjs +1532 -530
- package/dist/server/theme-bridge.mjs +3151 -131
- package/dist/server/theme.mjs +10 -1
- package/dist/styles/index.css +488 -48
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
- package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
- package/dist/client/chunk-OJPZEZU2.mjs +0 -31
- package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/config/validation.ts
|
|
2
|
-
import { z as
|
|
2
|
+
import { z as z70 } from "zod";
|
|
3
3
|
|
|
4
4
|
// ../api/src/apiEndpointTypes.ts
|
|
5
5
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
@@ -3903,6 +3903,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3903
3903
|
responseKind: "json",
|
|
3904
3904
|
errors: []
|
|
3905
3905
|
},
|
|
3906
|
+
applyDiscountCode: {
|
|
3907
|
+
path: "/public/sites/{siteId}/bookings/discounts/apply",
|
|
3908
|
+
method: "POST",
|
|
3909
|
+
tags: ["site-{siteId}", "booking-discounts"],
|
|
3910
|
+
auth: "public",
|
|
3911
|
+
responseKind: "json",
|
|
3912
|
+
errors: ["validation:invalid_input", "rate_limit:exceeded"]
|
|
3913
|
+
},
|
|
3906
3914
|
// Batch endpoint for block loader requests (reduces SSR fan-out)
|
|
3907
3915
|
batchBlockLoaders: {
|
|
3908
3916
|
path: "/public/sites/{siteId}/block-loaders/batch",
|
|
@@ -6242,6 +6250,27 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
6242
6250
|
}
|
|
6243
6251
|
};
|
|
6244
6252
|
|
|
6253
|
+
// ../core/src/location.ts
|
|
6254
|
+
function normalizeLocationAddressText(value) {
|
|
6255
|
+
if (typeof value !== "string") {
|
|
6256
|
+
return null;
|
|
6257
|
+
}
|
|
6258
|
+
const trimmed = value.trim();
|
|
6259
|
+
return trimmed ? trimmed : null;
|
|
6260
|
+
}
|
|
6261
|
+
function hasLocationCoordinates(value) {
|
|
6262
|
+
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
6263
|
+
}
|
|
6264
|
+
function toLocationCoordinates(value) {
|
|
6265
|
+
if (!hasLocationCoordinates(value)) {
|
|
6266
|
+
return null;
|
|
6267
|
+
}
|
|
6268
|
+
return {
|
|
6269
|
+
lat: value.lat,
|
|
6270
|
+
lng: value.lng
|
|
6271
|
+
};
|
|
6272
|
+
}
|
|
6273
|
+
|
|
6245
6274
|
// ../api/src/accessAdmin.ts
|
|
6246
6275
|
import { z } from "zod";
|
|
6247
6276
|
var managedDomainAddOnPricingSnapshotSchema = z.object({
|
|
@@ -6384,27 +6413,6 @@ function formatKeyAsLabel(key) {
|
|
|
6384
6413
|
// ../blocks/src/system/manifest/schema.ts
|
|
6385
6414
|
import { z as z4 } from "zod";
|
|
6386
6415
|
|
|
6387
|
-
// ../core/src/location.ts
|
|
6388
|
-
function normalizeLocationAddressText(value) {
|
|
6389
|
-
if (typeof value !== "string") {
|
|
6390
|
-
return null;
|
|
6391
|
-
}
|
|
6392
|
-
const trimmed = value.trim();
|
|
6393
|
-
return trimmed ? trimmed : null;
|
|
6394
|
-
}
|
|
6395
|
-
function hasLocationCoordinates(value) {
|
|
6396
|
-
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
6397
|
-
}
|
|
6398
|
-
function toLocationCoordinates(value) {
|
|
6399
|
-
if (!hasLocationCoordinates(value)) {
|
|
6400
|
-
return null;
|
|
6401
|
-
}
|
|
6402
|
-
return {
|
|
6403
|
-
lat: value.lat,
|
|
6404
|
-
lng: value.lng
|
|
6405
|
-
};
|
|
6406
|
-
}
|
|
6407
|
-
|
|
6408
6416
|
// ../media-core/src/transformRect.ts
|
|
6409
6417
|
function isValidTransformRectStructure(rect) {
|
|
6410
6418
|
if (!Array.isArray(rect) || rect.length !== 4) return false;
|
|
@@ -7529,6 +7537,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
|
7529
7537
|
const next = encodeURIComponent(nextBlockId);
|
|
7530
7538
|
return asDesignBoundaryId(`boundary:${previous}:${next}`);
|
|
7531
7539
|
}
|
|
7540
|
+
function assertNever(value, message = "Unhandled Theme V2 variant") {
|
|
7541
|
+
throw new Error(`${message}: ${String(value)}`);
|
|
7542
|
+
}
|
|
7532
7543
|
function brandNonEmptyString(value, label) {
|
|
7533
7544
|
if (value.length === 0) {
|
|
7534
7545
|
throw new Error(`${label} must be a non-empty string.`);
|
|
@@ -7556,6 +7567,10 @@ var tileTreatmentValues = [
|
|
|
7556
7567
|
"quiet",
|
|
7557
7568
|
"brand-depth"
|
|
7558
7569
|
];
|
|
7570
|
+
var eventListTreatmentValues = [
|
|
7571
|
+
"plain",
|
|
7572
|
+
"lined-panel"
|
|
7573
|
+
];
|
|
7559
7574
|
var eyebrowTreatmentValues = [
|
|
7560
7575
|
"plain",
|
|
7561
7576
|
"pill",
|
|
@@ -7613,6 +7628,7 @@ function defineBlockDesignCapability(capability) {
|
|
|
7613
7628
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
7614
7629
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
7615
7630
|
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
7631
|
+
eventListTreatments: capability.eventListTreatments ?? ["plain"],
|
|
7616
7632
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
|
|
7617
7633
|
...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
|
|
7618
7634
|
...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
|
|
@@ -7637,9 +7653,98 @@ var blockAppearancePresets = [
|
|
|
7637
7653
|
transitionAfter: "soft-fade-short",
|
|
7638
7654
|
emphasis: "high",
|
|
7639
7655
|
sectionHeight: "hero",
|
|
7656
|
+
heroComposition: "center",
|
|
7657
|
+
heroTypographyScale: "display",
|
|
7640
7658
|
imageSurfaceTreatment: { kind: "neutral-wash" }
|
|
7641
7659
|
}
|
|
7642
7660
|
}),
|
|
7661
|
+
defineBlockAppearancePreset({
|
|
7662
|
+
kind: "block-design",
|
|
7663
|
+
id: "hero-bottom-left-panel",
|
|
7664
|
+
target: "hero",
|
|
7665
|
+
label: "Bottom-left panel hero",
|
|
7666
|
+
blockKinds: ["block.hero"],
|
|
7667
|
+
constraints: {
|
|
7668
|
+
layoutFamilies: ["centered", "compact"]
|
|
7669
|
+
},
|
|
7670
|
+
optionGroups: [
|
|
7671
|
+
{
|
|
7672
|
+
id: "image-surface-treatment",
|
|
7673
|
+
label: "Treatment",
|
|
7674
|
+
selectedOptionId: "neutral-scrim",
|
|
7675
|
+
options: [
|
|
7676
|
+
{
|
|
7677
|
+
id: "neutral-scrim",
|
|
7678
|
+
label: "Neutral scrim",
|
|
7679
|
+
designPatch: {
|
|
7680
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
7681
|
+
}
|
|
7682
|
+
},
|
|
7683
|
+
{
|
|
7684
|
+
id: "brand-scrim-primary",
|
|
7685
|
+
label: "Brand scrim",
|
|
7686
|
+
designPatch: {
|
|
7687
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
|
|
7688
|
+
}
|
|
7689
|
+
}
|
|
7690
|
+
]
|
|
7691
|
+
}
|
|
7692
|
+
],
|
|
7693
|
+
layoutPatches: [
|
|
7694
|
+
{
|
|
7695
|
+
constraints: {
|
|
7696
|
+
layoutVariantKeys: ["micro"]
|
|
7697
|
+
},
|
|
7698
|
+
designPatch: {
|
|
7699
|
+
sectionHeight: "banner",
|
|
7700
|
+
heroTypographyScale: "editorial"
|
|
7701
|
+
}
|
|
7702
|
+
}
|
|
7703
|
+
],
|
|
7704
|
+
design: {
|
|
7705
|
+
sectionSurface: "hero-image",
|
|
7706
|
+
contentFrame: panelFrame("raised"),
|
|
7707
|
+
itemSurface: "none",
|
|
7708
|
+
transitionAfter: "soft-fade-short",
|
|
7709
|
+
emphasis: "high",
|
|
7710
|
+
sectionHeight: "immersive",
|
|
7711
|
+
heroComposition: "bottom-left",
|
|
7712
|
+
heroTypographyScale: "display",
|
|
7713
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
7714
|
+
}
|
|
7715
|
+
}),
|
|
7716
|
+
defineBlockAppearancePreset({
|
|
7717
|
+
kind: "block-design",
|
|
7718
|
+
id: "hero-poster-image",
|
|
7719
|
+
target: "hero",
|
|
7720
|
+
label: "Poster image hero",
|
|
7721
|
+
blockKinds: ["block.hero"],
|
|
7722
|
+
constraints: {
|
|
7723
|
+
layoutFamilies: ["centered", "compact"]
|
|
7724
|
+
},
|
|
7725
|
+
layoutPatches: [
|
|
7726
|
+
{
|
|
7727
|
+
constraints: {
|
|
7728
|
+
layoutVariantKeys: ["micro"]
|
|
7729
|
+
},
|
|
7730
|
+
designPatch: {
|
|
7731
|
+
sectionHeight: "banner",
|
|
7732
|
+
heroTypographyScale: "display"
|
|
7733
|
+
}
|
|
7734
|
+
}
|
|
7735
|
+
],
|
|
7736
|
+
design: {
|
|
7737
|
+
sectionSurface: "hero-image",
|
|
7738
|
+
contentFrame: plainFrame,
|
|
7739
|
+
itemSurface: "none",
|
|
7740
|
+
transitionAfter: "soft-fade-short",
|
|
7741
|
+
emphasis: "high",
|
|
7742
|
+
sectionHeight: "immersive",
|
|
7743
|
+
heroComposition: "center",
|
|
7744
|
+
heroTypographyScale: "poster",
|
|
7745
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
|
|
7746
|
+
}
|
|
7747
|
+
}),
|
|
7643
7748
|
defineBlockAppearancePreset({
|
|
7644
7749
|
kind: "block-design",
|
|
7645
7750
|
id: "hero-brand-scrim",
|
|
@@ -7689,6 +7794,8 @@ var blockAppearancePresets = [
|
|
|
7689
7794
|
transitionAfter: "soft-fade-short",
|
|
7690
7795
|
emphasis: "high",
|
|
7691
7796
|
sectionHeight: "immersive",
|
|
7797
|
+
heroComposition: "center",
|
|
7798
|
+
heroTypographyScale: "display",
|
|
7692
7799
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
|
|
7693
7800
|
}
|
|
7694
7801
|
}),
|
|
@@ -7741,6 +7848,8 @@ var blockAppearancePresets = [
|
|
|
7741
7848
|
transitionAfter: "soft-fade-short",
|
|
7742
7849
|
emphasis: "high",
|
|
7743
7850
|
sectionHeight: "immersive",
|
|
7851
|
+
heroComposition: "center",
|
|
7852
|
+
heroTypographyScale: "display",
|
|
7744
7853
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
|
|
7745
7854
|
imageSurfaceMotion: "fixed-frame",
|
|
7746
7855
|
eyebrowTreatment: "accent-pill-bounce"
|
|
@@ -7761,6 +7870,8 @@ var blockAppearancePresets = [
|
|
|
7761
7870
|
itemSurface: "none",
|
|
7762
7871
|
transitionAfter: "soft-fade-short",
|
|
7763
7872
|
emphasis: "high",
|
|
7873
|
+
heroComposition: "center",
|
|
7874
|
+
heroTypographyScale: "editorial",
|
|
7764
7875
|
eyebrowTreatment: "accent-pill-bounce"
|
|
7765
7876
|
}
|
|
7766
7877
|
}),
|
|
@@ -7775,7 +7886,82 @@ var blockAppearancePresets = [
|
|
|
7775
7886
|
contentFrame: panelFrame("inset"),
|
|
7776
7887
|
itemSurface: "none",
|
|
7777
7888
|
transitionAfter: "none",
|
|
7778
|
-
emphasis: "high"
|
|
7889
|
+
emphasis: "high",
|
|
7890
|
+
heroComposition: "center",
|
|
7891
|
+
heroTypographyScale: "editorial"
|
|
7892
|
+
}
|
|
7893
|
+
}),
|
|
7894
|
+
defineBlockAppearancePreset({
|
|
7895
|
+
kind: "block-design",
|
|
7896
|
+
id: "hero-split-editorial",
|
|
7897
|
+
target: "hero",
|
|
7898
|
+
label: "Editorial split hero",
|
|
7899
|
+
blockKinds: ["block.hero"],
|
|
7900
|
+
constraints: {
|
|
7901
|
+
layoutFamilies: ["split"]
|
|
7902
|
+
},
|
|
7903
|
+
design: {
|
|
7904
|
+
sectionSurface: "base",
|
|
7905
|
+
contentFrame: plainFrame,
|
|
7906
|
+
itemSurface: "none",
|
|
7907
|
+
transitionAfter: "soft-fade-short",
|
|
7908
|
+
emphasis: "high",
|
|
7909
|
+
heroTypographyScale: "editorial"
|
|
7910
|
+
}
|
|
7911
|
+
}),
|
|
7912
|
+
defineBlockAppearancePreset({
|
|
7913
|
+
kind: "block-design",
|
|
7914
|
+
id: "hero-split-brand",
|
|
7915
|
+
target: "hero",
|
|
7916
|
+
label: "Brand split hero",
|
|
7917
|
+
blockKinds: ["block.hero"],
|
|
7918
|
+
constraints: {
|
|
7919
|
+
layoutFamilies: ["split"]
|
|
7920
|
+
},
|
|
7921
|
+
design: {
|
|
7922
|
+
sectionSurface: "brand-depth-band",
|
|
7923
|
+
contentFrame: plainFrame,
|
|
7924
|
+
itemSurface: "none",
|
|
7925
|
+
transitionAfter: "soft-fade-short",
|
|
7926
|
+
emphasis: "high",
|
|
7927
|
+
heroTypographyScale: "display",
|
|
7928
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
7929
|
+
}
|
|
7930
|
+
}),
|
|
7931
|
+
defineBlockAppearancePreset({
|
|
7932
|
+
kind: "block-design",
|
|
7933
|
+
id: "hero-split-soft-panel",
|
|
7934
|
+
target: "hero",
|
|
7935
|
+
label: "Soft panel split hero",
|
|
7936
|
+
blockKinds: ["block.hero"],
|
|
7937
|
+
constraints: {
|
|
7938
|
+
layoutFamilies: ["split"]
|
|
7939
|
+
},
|
|
7940
|
+
design: {
|
|
7941
|
+
sectionSurface: "muted-band",
|
|
7942
|
+
contentFrame: panelFrame("raised"),
|
|
7943
|
+
itemSurface: "none",
|
|
7944
|
+
transitionAfter: "soft-fade-short",
|
|
7945
|
+
emphasis: "high",
|
|
7946
|
+
heroTypographyScale: "editorial"
|
|
7947
|
+
}
|
|
7948
|
+
}),
|
|
7949
|
+
defineBlockAppearancePreset({
|
|
7950
|
+
kind: "block-design",
|
|
7951
|
+
id: "hero-split-accent",
|
|
7952
|
+
target: "hero",
|
|
7953
|
+
label: "Accent split hero",
|
|
7954
|
+
blockKinds: ["block.hero"],
|
|
7955
|
+
constraints: {
|
|
7956
|
+
layoutFamilies: ["split"]
|
|
7957
|
+
},
|
|
7958
|
+
design: {
|
|
7959
|
+
sectionSurface: "accent-band",
|
|
7960
|
+
contentFrame: panelFrame("raised"),
|
|
7961
|
+
itemSurface: "none",
|
|
7962
|
+
transitionAfter: "soft-fade-short",
|
|
7963
|
+
emphasis: "high",
|
|
7964
|
+
heroTypographyScale: "display"
|
|
7779
7965
|
}
|
|
7780
7966
|
}),
|
|
7781
7967
|
defineBlockAppearancePreset({
|
|
@@ -7808,9 +7994,9 @@ var blockAppearancePresets = [
|
|
|
7808
7994
|
}),
|
|
7809
7995
|
defineBlockAppearancePreset({
|
|
7810
7996
|
kind: "block-design",
|
|
7811
|
-
id: "intro-
|
|
7997
|
+
id: "intro-organic-statement",
|
|
7812
7998
|
target: "intro",
|
|
7813
|
-
label: "
|
|
7999
|
+
label: "Organic intro statement",
|
|
7814
8000
|
blockKinds: ["block.intro"],
|
|
7815
8001
|
design: {
|
|
7816
8002
|
sectionSurface: "base",
|
|
@@ -7841,9 +8027,9 @@ var blockAppearancePresets = [
|
|
|
7841
8027
|
}),
|
|
7842
8028
|
defineBlockAppearancePreset({
|
|
7843
8029
|
kind: "block-design",
|
|
7844
|
-
id: "feature-cards-
|
|
8030
|
+
id: "feature-cards-raised-rule",
|
|
7845
8031
|
target: "feature-cards",
|
|
7846
|
-
label: "
|
|
8032
|
+
label: "Raised cards with rule",
|
|
7847
8033
|
blockKinds: ["block.feature-cards"],
|
|
7848
8034
|
design: {
|
|
7849
8035
|
sectionSurface: "base",
|
|
@@ -7872,6 +8058,21 @@ var blockAppearancePresets = [
|
|
|
7872
8058
|
emphasis: "medium"
|
|
7873
8059
|
}
|
|
7874
8060
|
}),
|
|
8061
|
+
defineBlockAppearancePreset({
|
|
8062
|
+
kind: "block-design",
|
|
8063
|
+
id: "events-lined-panel",
|
|
8064
|
+
target: "events",
|
|
8065
|
+
label: "Lined event panel",
|
|
8066
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
8067
|
+
design: {
|
|
8068
|
+
sectionSurface: "base",
|
|
8069
|
+
contentFrame: plainFrame,
|
|
8070
|
+
itemSurface: "none",
|
|
8071
|
+
transitionAfter: "none",
|
|
8072
|
+
emphasis: "medium",
|
|
8073
|
+
eventListTreatment: "lined-panel"
|
|
8074
|
+
}
|
|
8075
|
+
}),
|
|
7875
8076
|
defineBlockAppearancePreset({
|
|
7876
8077
|
kind: "block-design",
|
|
7877
8078
|
id: "schedule-details-accent-section",
|
|
@@ -7931,9 +8132,9 @@ var blockAppearancePresets = [
|
|
|
7931
8132
|
}),
|
|
7932
8133
|
defineBlockAppearancePreset({
|
|
7933
8134
|
kind: "block-design",
|
|
7934
|
-
id: "testimonials-
|
|
8135
|
+
id: "testimonials-simple-cards",
|
|
7935
8136
|
target: "testimonials",
|
|
7936
|
-
label: "
|
|
8137
|
+
label: "Simple testimonial cards",
|
|
7937
8138
|
blockKinds: ["block.testimonials"],
|
|
7938
8139
|
design: {
|
|
7939
8140
|
sectionSurface: "base",
|
|
@@ -7945,9 +8146,9 @@ var blockAppearancePresets = [
|
|
|
7945
8146
|
}),
|
|
7946
8147
|
defineBlockAppearancePreset({
|
|
7947
8148
|
kind: "block-design",
|
|
7948
|
-
id: "testimonials-
|
|
8149
|
+
id: "testimonials-raised-panel",
|
|
7949
8150
|
target: "testimonials",
|
|
7950
|
-
label: "
|
|
8151
|
+
label: "Raised testimonial panel",
|
|
7951
8152
|
blockKinds: ["block.testimonials"],
|
|
7952
8153
|
design: {
|
|
7953
8154
|
sectionSurface: "muted-band",
|
|
@@ -7959,9 +8160,9 @@ var blockAppearancePresets = [
|
|
|
7959
8160
|
}),
|
|
7960
8161
|
defineBlockAppearancePreset({
|
|
7961
8162
|
kind: "block-design",
|
|
7962
|
-
id: "testimonials-
|
|
8163
|
+
id: "testimonials-accent-panel",
|
|
7963
8164
|
target: "testimonials",
|
|
7964
|
-
label: "
|
|
8165
|
+
label: "Accent testimonial panel",
|
|
7965
8166
|
blockKinds: ["block.testimonials"],
|
|
7966
8167
|
design: {
|
|
7967
8168
|
sectionSurface: "accent-band",
|
|
@@ -7973,9 +8174,9 @@ var blockAppearancePresets = [
|
|
|
7973
8174
|
}),
|
|
7974
8175
|
defineBlockAppearancePreset({
|
|
7975
8176
|
kind: "block-design",
|
|
7976
|
-
id: "testimonials-accent-quote-
|
|
8177
|
+
id: "testimonials-accent-quote-cards",
|
|
7977
8178
|
target: "testimonials",
|
|
7978
|
-
label: "Accent quote
|
|
8179
|
+
label: "Accent quote cards",
|
|
7979
8180
|
blockKinds: ["block.testimonials"],
|
|
7980
8181
|
design: {
|
|
7981
8182
|
sectionSurface: "accent-band",
|
|
@@ -7988,9 +8189,9 @@ var blockAppearancePresets = [
|
|
|
7988
8189
|
}),
|
|
7989
8190
|
defineBlockAppearancePreset({
|
|
7990
8191
|
kind: "block-design",
|
|
7991
|
-
id: "testimonials-
|
|
8192
|
+
id: "testimonials-brand-background-quotes",
|
|
7992
8193
|
target: "testimonials",
|
|
7993
|
-
label: "
|
|
8194
|
+
label: "Brand background quotes",
|
|
7994
8195
|
blockKinds: ["block.testimonials"],
|
|
7995
8196
|
design: {
|
|
7996
8197
|
sectionSurface: "brand-depth-band",
|
|
@@ -8034,25 +8235,6 @@ var blockAppearancePresets = [
|
|
|
8034
8235
|
emphasis: "low"
|
|
8035
8236
|
}
|
|
8036
8237
|
}),
|
|
8037
|
-
defineBlockAppearancePreset({
|
|
8038
|
-
kind: "block-design",
|
|
8039
|
-
id: "faq-soft-earth-two-column",
|
|
8040
|
-
target: "faq",
|
|
8041
|
-
label: "Soft Earth two-column FAQ",
|
|
8042
|
-
blockKinds: ["block.faq"],
|
|
8043
|
-
design: {
|
|
8044
|
-
sectionSurface: "base",
|
|
8045
|
-
contentFrame: plainFrame,
|
|
8046
|
-
itemSurface: "flat",
|
|
8047
|
-
transitionAfter: "none",
|
|
8048
|
-
emphasis: "medium",
|
|
8049
|
-
accordionIconTreatment: {
|
|
8050
|
-
iconSet: "plus",
|
|
8051
|
-
colorToken: "primary",
|
|
8052
|
-
motion: "swap"
|
|
8053
|
-
}
|
|
8054
|
-
}
|
|
8055
|
-
}),
|
|
8056
8238
|
defineBlockAppearancePreset({
|
|
8057
8239
|
kind: "block-design",
|
|
8058
8240
|
id: "contact-form-panel",
|
|
@@ -9431,7 +9613,8 @@ var accordionSystemSchema = z12.object({
|
|
|
9431
9613
|
icon: z12.object({
|
|
9432
9614
|
style: accordionIconSchema,
|
|
9433
9615
|
position: z12.enum(["left", "right"]),
|
|
9434
|
-
size: z12.enum(["sm", "md", "lg"])
|
|
9616
|
+
size: z12.enum(["sm", "md", "lg"]),
|
|
9617
|
+
colorToken: themeColorTokenSchema.optional()
|
|
9435
9618
|
}),
|
|
9436
9619
|
// Trigger (question) styling
|
|
9437
9620
|
trigger: z12.object({
|
|
@@ -9565,6 +9748,7 @@ var navLinkPaddingXSchema = z16.enum(["none", "tight", "compact", "default", "re
|
|
|
9565
9748
|
var navLinkBorderRadiusSchema = z16.enum(["none", "sm", "md", "full"]);
|
|
9566
9749
|
var navLinkTextSizeSchema = z16.enum(["xs", "sm", "base", "lg"]);
|
|
9567
9750
|
var navLinkLetterSpacingSchema = z16.enum(["normal", "wide", "wider", "widest"]);
|
|
9751
|
+
var navLinkContrastTreatmentSchema = z16.enum(["none", "soft-glow"]);
|
|
9568
9752
|
var navLinkStyleSchema = z16.object({
|
|
9569
9753
|
/** Display name for the style */
|
|
9570
9754
|
name: z16.string().min(1).max(30).optional(),
|
|
@@ -9576,6 +9760,8 @@ var navLinkStyleSchema = z16.object({
|
|
|
9576
9760
|
textSize: navLinkTextSizeSchema.optional(),
|
|
9577
9761
|
/** Optional letter spacing override */
|
|
9578
9762
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
9763
|
+
/** Optional text-only contrast treatment for transparent/overlay navigation */
|
|
9764
|
+
contrastTreatment: navLinkContrastTreatmentSchema.optional(),
|
|
9579
9765
|
/** Hover/active color token (for color-change effects) */
|
|
9580
9766
|
hoverColorToken: themeColorTokenSchema.nullable().optional(),
|
|
9581
9767
|
/** Padding preset */
|
|
@@ -10005,6 +10191,7 @@ var sectionStylesOverrideSchema = z21.object({
|
|
|
10005
10191
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
10006
10192
|
minHeight: z21.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
10007
10193
|
tileTreatment: z21.enum(tileTreatmentValues).nullable().optional(),
|
|
10194
|
+
eventListTreatment: z21.enum(eventListTreatmentValues).nullable().optional(),
|
|
10008
10195
|
eyebrowTreatment: z21.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
10009
10196
|
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
10010
10197
|
// Author-level override consumed by later block/editor rendering phases.
|
|
@@ -10838,6 +11025,34 @@ var paletteVariantsById = new Map(
|
|
|
10838
11025
|
paletteVariants.map((v) => [v.id, v])
|
|
10839
11026
|
);
|
|
10840
11027
|
|
|
11028
|
+
// ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
11029
|
+
var softEarthAccordionSystem = {
|
|
11030
|
+
background: {
|
|
11031
|
+
type: "solid",
|
|
11032
|
+
colorToken: "background"
|
|
11033
|
+
},
|
|
11034
|
+
spacing: "comfortable",
|
|
11035
|
+
corners: "square",
|
|
11036
|
+
border: null,
|
|
11037
|
+
shadow: null,
|
|
11038
|
+
icon: {
|
|
11039
|
+
style: "plus-minus",
|
|
11040
|
+
position: "right",
|
|
11041
|
+
size: "md",
|
|
11042
|
+
colorToken: "primary"
|
|
11043
|
+
},
|
|
11044
|
+
trigger: {
|
|
11045
|
+
textColorToken: "text",
|
|
11046
|
+
fontWeight: "medium"
|
|
11047
|
+
},
|
|
11048
|
+
hover: {
|
|
11049
|
+
textColorToken: "primary"
|
|
11050
|
+
},
|
|
11051
|
+
content: {
|
|
11052
|
+
textColorToken: "neutral-700"
|
|
11053
|
+
}
|
|
11054
|
+
};
|
|
11055
|
+
|
|
10841
11056
|
// ../theme-core/src/site-styles/headerLooks.ts
|
|
10842
11057
|
function asHeaderLookId(value) {
|
|
10843
11058
|
return value;
|
|
@@ -10893,7 +11108,7 @@ var headerLayoutCatalog = [
|
|
|
10893
11108
|
description: "Detached header chrome that sits over the opening section.",
|
|
10894
11109
|
structure: "floating-shell",
|
|
10895
11110
|
variant: "floating",
|
|
10896
|
-
defaultPositioning: "
|
|
11111
|
+
defaultPositioning: "sticky",
|
|
10897
11112
|
shrinkOnScroll: true,
|
|
10898
11113
|
maxRecommendedNavItems: 5,
|
|
10899
11114
|
allowedLogoShapes: ["none", "text-only", "horizontal"]
|
|
@@ -10910,7 +11125,9 @@ var headerStyleCatalog = [
|
|
|
10910
11125
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10911
11126
|
navInteraction: "color-change",
|
|
10912
11127
|
surface: "neutral",
|
|
10913
|
-
|
|
11128
|
+
defaultDepth: "none",
|
|
11129
|
+
navTypography: "plain",
|
|
11130
|
+
moods: ["calm", "professional", "editorial"]
|
|
10914
11131
|
},
|
|
10915
11132
|
{
|
|
10916
11133
|
id: asHeaderStyleId("fine-line"),
|
|
@@ -10919,7 +11136,9 @@ var headerStyleCatalog = [
|
|
|
10919
11136
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10920
11137
|
navInteraction: "underline-grow",
|
|
10921
11138
|
surface: "bordered",
|
|
10922
|
-
|
|
11139
|
+
defaultDepth: "line",
|
|
11140
|
+
navTypography: "plain",
|
|
11141
|
+
moods: ["calm", "professional", "editorial"]
|
|
10923
11142
|
},
|
|
10924
11143
|
{
|
|
10925
11144
|
id: asHeaderStyleId("soft-bar"),
|
|
@@ -10928,7 +11147,9 @@ var headerStyleCatalog = [
|
|
|
10928
11147
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10929
11148
|
navInteraction: "pill-background",
|
|
10930
11149
|
surface: "soft",
|
|
10931
|
-
|
|
11150
|
+
defaultDepth: "line",
|
|
11151
|
+
navTypography: "plain",
|
|
11152
|
+
moods: ["calm", "professional"]
|
|
10932
11153
|
},
|
|
10933
11154
|
{
|
|
10934
11155
|
id: asHeaderStyleId("pill-nav"),
|
|
@@ -10937,7 +11158,9 @@ var headerStyleCatalog = [
|
|
|
10937
11158
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10938
11159
|
navInteraction: "pill-background",
|
|
10939
11160
|
surface: "soft",
|
|
10940
|
-
|
|
11161
|
+
defaultDepth: "none",
|
|
11162
|
+
navTypography: "plain",
|
|
11163
|
+
moods: ["calm"]
|
|
10941
11164
|
},
|
|
10942
11165
|
{
|
|
10943
11166
|
id: asHeaderStyleId("brand-bar"),
|
|
@@ -10946,7 +11169,9 @@ var headerStyleCatalog = [
|
|
|
10946
11169
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10947
11170
|
navInteraction: "color-change",
|
|
10948
11171
|
surface: "brand-solid",
|
|
10949
|
-
|
|
11172
|
+
defaultDepth: "none",
|
|
11173
|
+
navTypography: "brand-caps",
|
|
11174
|
+
moods: ["professional", "expressive", "utility"]
|
|
10950
11175
|
},
|
|
10951
11176
|
{
|
|
10952
11177
|
id: asHeaderStyleId("brand-underline"),
|
|
@@ -10955,7 +11180,9 @@ var headerStyleCatalog = [
|
|
|
10955
11180
|
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
10956
11181
|
navInteraction: "underline-grow",
|
|
10957
11182
|
surface: "brand-solid",
|
|
10958
|
-
|
|
11183
|
+
defaultDepth: "none",
|
|
11184
|
+
navTypography: "brand-caps",
|
|
11185
|
+
moods: ["expressive"]
|
|
10959
11186
|
},
|
|
10960
11187
|
{
|
|
10961
11188
|
id: asHeaderStyleId("brand-pill"),
|
|
@@ -10964,7 +11191,9 @@ var headerStyleCatalog = [
|
|
|
10964
11191
|
supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
|
|
10965
11192
|
navInteraction: "pill-background",
|
|
10966
11193
|
surface: "brand-solid",
|
|
10967
|
-
|
|
11194
|
+
defaultDepth: "none",
|
|
11195
|
+
navTypography: "brand-caps",
|
|
11196
|
+
moods: ["expressive"]
|
|
10968
11197
|
},
|
|
10969
11198
|
{
|
|
10970
11199
|
id: asHeaderStyleId("serif-line"),
|
|
@@ -10973,7 +11202,9 @@ var headerStyleCatalog = [
|
|
|
10973
11202
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10974
11203
|
navInteraction: "underline-grow",
|
|
10975
11204
|
surface: "bordered",
|
|
10976
|
-
|
|
11205
|
+
defaultDepth: "line",
|
|
11206
|
+
navTypography: "heading",
|
|
11207
|
+
moods: ["editorial", "calm"]
|
|
10977
11208
|
},
|
|
10978
11209
|
{
|
|
10979
11210
|
id: asHeaderStyleId("flat-tabs"),
|
|
@@ -10982,16 +11213,20 @@ var headerStyleCatalog = [
|
|
|
10982
11213
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10983
11214
|
navInteraction: "flat-block",
|
|
10984
11215
|
surface: "bordered",
|
|
10985
|
-
|
|
11216
|
+
defaultDepth: "shadow",
|
|
11217
|
+
navTypography: "quiet-caps",
|
|
11218
|
+
moods: ["professional", "utility", "expressive"]
|
|
10986
11219
|
},
|
|
10987
11220
|
{
|
|
10988
11221
|
id: asHeaderStyleId("glass"),
|
|
10989
11222
|
label: "Glass",
|
|
10990
11223
|
description: "Translucent chrome with frosted navigation backing.",
|
|
10991
|
-
supportedLayoutIds: supportedLayouts(["
|
|
11224
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
10992
11225
|
navInteraction: "glass-backed",
|
|
10993
11226
|
surface: "floating",
|
|
10994
|
-
|
|
11227
|
+
defaultDepth: "shadow",
|
|
11228
|
+
navTypography: "plain",
|
|
11229
|
+
moods: ["expressive", "calm"]
|
|
10995
11230
|
},
|
|
10996
11231
|
{
|
|
10997
11232
|
id: asHeaderStyleId("minimal-surface"),
|
|
@@ -11000,7 +11235,9 @@ var headerStyleCatalog = [
|
|
|
11000
11235
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11001
11236
|
navInteraction: "color-change",
|
|
11002
11237
|
surface: "floating",
|
|
11003
|
-
|
|
11238
|
+
defaultDepth: "none",
|
|
11239
|
+
navTypography: "plain",
|
|
11240
|
+
moods: ["editorial", "calm"]
|
|
11004
11241
|
},
|
|
11005
11242
|
{
|
|
11006
11243
|
id: asHeaderStyleId("soft-shell"),
|
|
@@ -11009,7 +11246,9 @@ var headerStyleCatalog = [
|
|
|
11009
11246
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11010
11247
|
navInteraction: "pill-background",
|
|
11011
11248
|
surface: "floating",
|
|
11012
|
-
|
|
11249
|
+
defaultDepth: "shadow",
|
|
11250
|
+
navTypography: "plain",
|
|
11251
|
+
moods: ["calm", "professional"]
|
|
11013
11252
|
},
|
|
11014
11253
|
{
|
|
11015
11254
|
id: asHeaderStyleId("split-glass"),
|
|
@@ -11018,7 +11257,9 @@ var headerStyleCatalog = [
|
|
|
11018
11257
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11019
11258
|
navInteraction: "glass-backed",
|
|
11020
11259
|
surface: "floating",
|
|
11021
|
-
|
|
11260
|
+
defaultDepth: "shadow",
|
|
11261
|
+
navTypography: "quiet-caps",
|
|
11262
|
+
moods: ["expressive"]
|
|
11022
11263
|
},
|
|
11023
11264
|
{
|
|
11024
11265
|
id: asHeaderStyleId("split-pill"),
|
|
@@ -11027,7 +11268,9 @@ var headerStyleCatalog = [
|
|
|
11027
11268
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11028
11269
|
navInteraction: "pill-background",
|
|
11029
11270
|
surface: "floating",
|
|
11030
|
-
|
|
11271
|
+
defaultDepth: "shadow",
|
|
11272
|
+
navTypography: "heading",
|
|
11273
|
+
moods: ["calm", "editorial"]
|
|
11031
11274
|
}
|
|
11032
11275
|
];
|
|
11033
11276
|
var headerLayoutsById = new Map(
|
|
@@ -11041,7 +11284,6 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
11041
11284
|
asHeaderLayoutId("classic"),
|
|
11042
11285
|
headerStyleRepairChain([
|
|
11043
11286
|
"minimal",
|
|
11044
|
-
"glass",
|
|
11045
11287
|
"fine-line",
|
|
11046
11288
|
"soft-bar",
|
|
11047
11289
|
"pill-nav",
|
|
@@ -11108,7 +11350,13 @@ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
|
11108
11350
|
],
|
|
11109
11351
|
[
|
|
11110
11352
|
asHeaderStyleId("glass"),
|
|
11111
|
-
headerStyleRepairChain([
|
|
11353
|
+
headerStyleRepairChain([
|
|
11354
|
+
"glass",
|
|
11355
|
+
"soft-shell",
|
|
11356
|
+
"fine-line",
|
|
11357
|
+
"minimal-surface",
|
|
11358
|
+
"minimal"
|
|
11359
|
+
])
|
|
11112
11360
|
],
|
|
11113
11361
|
[
|
|
11114
11362
|
asHeaderStyleId("soft-shell"),
|
|
@@ -11220,6 +11468,23 @@ function getCompatibleHeaderStyleIds(layoutId) {
|
|
|
11220
11468
|
}
|
|
11221
11469
|
);
|
|
11222
11470
|
}
|
|
11471
|
+
function themedHeaderShadow(theme) {
|
|
11472
|
+
switch (theme.shadow.elevation) {
|
|
11473
|
+
case "none":
|
|
11474
|
+
return void 0;
|
|
11475
|
+
case "low":
|
|
11476
|
+
return { elevation: "sm" };
|
|
11477
|
+
case "medium":
|
|
11478
|
+
return { elevation: "md" };
|
|
11479
|
+
case "high":
|
|
11480
|
+
return { elevation: "lg" };
|
|
11481
|
+
default:
|
|
11482
|
+
return assertNever(
|
|
11483
|
+
theme.shadow.elevation,
|
|
11484
|
+
"Unhandled theme shadow elevation"
|
|
11485
|
+
);
|
|
11486
|
+
}
|
|
11487
|
+
}
|
|
11223
11488
|
function solidBrandHeader(theme) {
|
|
11224
11489
|
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
11225
11490
|
return {
|
|
@@ -11369,9 +11634,7 @@ function practicalUtilityHeader(theme) {
|
|
|
11369
11634
|
navColor: "text",
|
|
11370
11635
|
navStyle: "solid",
|
|
11371
11636
|
navWeight: "semibold",
|
|
11372
|
-
shadow:
|
|
11373
|
-
elevation: "sm"
|
|
11374
|
-
},
|
|
11637
|
+
shadow: themedHeaderShadow(theme),
|
|
11375
11638
|
border: {
|
|
11376
11639
|
style: "solid",
|
|
11377
11640
|
width: "thin",
|
|
@@ -11440,6 +11703,7 @@ function floatingGlassHeader(theme) {
|
|
|
11440
11703
|
return {
|
|
11441
11704
|
...transparentOverlayHeader(theme),
|
|
11442
11705
|
variant: "floating",
|
|
11706
|
+
positioning: "sticky",
|
|
11443
11707
|
navStyle: "frosted",
|
|
11444
11708
|
navContainer: {
|
|
11445
11709
|
type: "glass",
|
|
@@ -11955,7 +12219,7 @@ var typographyPresets = [
|
|
|
11955
12219
|
heroTypography: {
|
|
11956
12220
|
headlineSize: "6xl",
|
|
11957
12221
|
headlineLineHeight: "tight",
|
|
11958
|
-
subheadlineSize: "
|
|
12222
|
+
subheadlineSize: "2xl",
|
|
11959
12223
|
subheadlineLineHeight: "normal",
|
|
11960
12224
|
microHeadlineSize: "6xl",
|
|
11961
12225
|
microHeadlineLineHeight: "tight",
|
|
@@ -11973,6 +12237,8 @@ var typographyPresetsById = new Map(
|
|
|
11973
12237
|
);
|
|
11974
12238
|
|
|
11975
12239
|
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
12240
|
+
var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
|
|
12241
|
+
var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
|
|
11976
12242
|
var curatedSiteStyleIdValues = [
|
|
11977
12243
|
"site-style:calm-studio",
|
|
11978
12244
|
"site-style:clear-professional",
|
|
@@ -11984,7 +12250,7 @@ var curatedSiteStyleIdValues = [
|
|
|
11984
12250
|
"site-style:personal-retreat-journal",
|
|
11985
12251
|
"site-style:tactile-workshop",
|
|
11986
12252
|
"site-style:modern-wellness",
|
|
11987
|
-
|
|
12253
|
+
SOFT_EARTH_SITE_STYLE_ID_VALUE,
|
|
11988
12254
|
"site-style:bold-launch",
|
|
11989
12255
|
"site-style:south-west-twerk-school"
|
|
11990
12256
|
];
|
|
@@ -12066,7 +12332,10 @@ function uniqueContentFrameKinds() {
|
|
|
12066
12332
|
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
12067
12333
|
function defineCuratedSiteStyle(input) {
|
|
12068
12334
|
const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
|
|
12069
|
-
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
12335
|
+
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
12336
|
+
legacyHeaderLookIds,
|
|
12337
|
+
input.tokenRecipes
|
|
12338
|
+
);
|
|
12070
12339
|
const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
|
|
12071
12340
|
const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
|
|
12072
12341
|
if (!typographyPresetChoices.some(
|
|
@@ -12099,6 +12368,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
12099
12368
|
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
12100
12369
|
},
|
|
12101
12370
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
12371
|
+
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
12102
12372
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
12103
12373
|
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
12104
12374
|
layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
|
|
@@ -12157,7 +12427,69 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
|
12157
12427
|
};
|
|
12158
12428
|
return [first, ...choices.slice(1)];
|
|
12159
12429
|
}
|
|
12160
|
-
function
|
|
12430
|
+
function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
12431
|
+
const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
|
|
12432
|
+
const seen = /* @__PURE__ */ new Set();
|
|
12433
|
+
const unique = choices.filter((choice) => {
|
|
12434
|
+
if (!compatible.has(choice.id)) return false;
|
|
12435
|
+
if (seen.has(choice.id)) return false;
|
|
12436
|
+
seen.add(choice.id);
|
|
12437
|
+
return true;
|
|
12438
|
+
});
|
|
12439
|
+
return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
|
|
12440
|
+
}
|
|
12441
|
+
function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
|
|
12442
|
+
switch (layoutId) {
|
|
12443
|
+
case "classic":
|
|
12444
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12445
|
+
return [
|
|
12446
|
+
"brand-bar",
|
|
12447
|
+
"brand-underline",
|
|
12448
|
+
"flat-tabs",
|
|
12449
|
+
"brand-pill",
|
|
12450
|
+
"fine-line"
|
|
12451
|
+
];
|
|
12452
|
+
}
|
|
12453
|
+
if (recipes.spacing === "compact") {
|
|
12454
|
+
return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
|
|
12455
|
+
}
|
|
12456
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12457
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
12458
|
+
}
|
|
12459
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
12460
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
12461
|
+
}
|
|
12462
|
+
return ["fine-line", "minimal", "soft-bar", "brand-bar"];
|
|
12463
|
+
case "centered":
|
|
12464
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12465
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
12466
|
+
}
|
|
12467
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12468
|
+
return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
|
|
12469
|
+
}
|
|
12470
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
12471
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
12472
|
+
}
|
|
12473
|
+
return ["minimal", "fine-line", "soft-bar"];
|
|
12474
|
+
case "floating":
|
|
12475
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12476
|
+
return ["glass", "split-glass", "brand-pill", "soft-shell"];
|
|
12477
|
+
}
|
|
12478
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12479
|
+
return ["split-pill", "minimal-surface", "soft-shell"];
|
|
12480
|
+
}
|
|
12481
|
+
return ["soft-shell", "minimal-surface", "glass"];
|
|
12482
|
+
default:
|
|
12483
|
+
return [];
|
|
12484
|
+
}
|
|
12485
|
+
}
|
|
12486
|
+
function isExpressiveRecipe(recipes) {
|
|
12487
|
+
return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
|
|
12488
|
+
}
|
|
12489
|
+
function isSerifTypographyRecipe(recipes) {
|
|
12490
|
+
return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
|
|
12491
|
+
}
|
|
12492
|
+
function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
|
|
12161
12493
|
const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
|
|
12162
12494
|
(selection) => Boolean(selection)
|
|
12163
12495
|
);
|
|
@@ -12170,8 +12502,15 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
|
|
|
12170
12502
|
);
|
|
12171
12503
|
const stylesByLayout = {};
|
|
12172
12504
|
for (const layoutChoice of layoutChoices) {
|
|
12173
|
-
const
|
|
12174
|
-
|
|
12505
|
+
const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
|
|
12506
|
+
const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
|
|
12507
|
+
layoutChoice.id,
|
|
12508
|
+
recipes
|
|
12509
|
+
).map((styleId) => headerStyleChoice(styleId));
|
|
12510
|
+
stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
|
|
12511
|
+
[...legacyStyleChoices, ...inferredStyleChoices],
|
|
12512
|
+
layoutChoice.id
|
|
12513
|
+
);
|
|
12175
12514
|
}
|
|
12176
12515
|
return {
|
|
12177
12516
|
defaultHeaderSelection,
|
|
@@ -12591,10 +12930,10 @@ var curatedSiteStyles = [
|
|
|
12591
12930
|
]
|
|
12592
12931
|
}),
|
|
12593
12932
|
defineCuratedSiteStyle({
|
|
12594
|
-
id:
|
|
12933
|
+
id: SOFT_EARTH_SITE_STYLE_ID,
|
|
12595
12934
|
name: "Soft Earth",
|
|
12596
12935
|
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
12597
|
-
generationBrief: "Use cream space, terracotta CTAs, olive
|
|
12936
|
+
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.",
|
|
12598
12937
|
siteCreatorSelection: {
|
|
12599
12938
|
kind: "site_creator_keyword_heuristic",
|
|
12600
12939
|
priority: 45
|
|
@@ -12664,14 +13003,18 @@ var curatedSiteStyles = [
|
|
|
12664
13003
|
paragraphSize: "default",
|
|
12665
13004
|
headingSize: "editorial"
|
|
12666
13005
|
}
|
|
12667
|
-
}
|
|
13006
|
+
},
|
|
13007
|
+
accordions: softEarthAccordionSystem
|
|
13008
|
+
},
|
|
13009
|
+
defaultBlockVariants: {
|
|
13010
|
+
"block.faq": "question-columns"
|
|
12668
13011
|
},
|
|
12669
13012
|
recommendedAppearancePresetIds: [
|
|
12670
13013
|
"hero-brand-scrim",
|
|
12671
|
-
"intro-
|
|
12672
|
-
"feature-cards-
|
|
12673
|
-
"
|
|
12674
|
-
"
|
|
13014
|
+
"intro-organic-statement",
|
|
13015
|
+
"feature-cards-raised-rule",
|
|
13016
|
+
"events-lined-panel",
|
|
13017
|
+
"testimonials-brand-background-quotes",
|
|
12675
13018
|
"contact-form-panel"
|
|
12676
13019
|
],
|
|
12677
13020
|
recommendedHeaderLookIds: [
|
|
@@ -12775,7 +13118,7 @@ var curatedSiteStyles = [
|
|
|
12775
13118
|
"hero-brand-scrim-fixed-frame",
|
|
12776
13119
|
"body-text-editorial-intro",
|
|
12777
13120
|
"schedule-details-brand-depth",
|
|
12778
|
-
"testimonials-accent-quote-
|
|
13121
|
+
"testimonials-accent-quote-cards",
|
|
12779
13122
|
"contact-form-brand-depth-card"
|
|
12780
13123
|
],
|
|
12781
13124
|
recommendedHeaderLookIds: [
|
|
@@ -12870,6 +13213,7 @@ var themeV2RuntimeStyleFieldNames = [
|
|
|
12870
13213
|
];
|
|
12871
13214
|
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
12872
13215
|
"_contentCardStyles",
|
|
13216
|
+
"_heroLayoutStyles",
|
|
12873
13217
|
"_textCardStyles"
|
|
12874
13218
|
];
|
|
12875
13219
|
var themeV2NormalEditorRawStyleFieldNames = [
|
|
@@ -12879,6 +13223,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
|
|
|
12879
13223
|
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
12880
13224
|
themeV2NormalEditorRawStyleFieldNames
|
|
12881
13225
|
);
|
|
13226
|
+
var themeV2CompilerOwnedFieldNames = [
|
|
13227
|
+
...themeV2RuntimeStyleFieldNames,
|
|
13228
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
13229
|
+
];
|
|
12882
13230
|
|
|
12883
13231
|
// ../theme-core/src/site-styles/designState.ts
|
|
12884
13232
|
var themeV2DesignStateSchemaVersion = 1;
|
|
@@ -12893,6 +13241,16 @@ var heroLegibilityStrategySchema = z23.enum([
|
|
|
12893
13241
|
"scrim-gradient",
|
|
12894
13242
|
"solid-panel"
|
|
12895
13243
|
]);
|
|
13244
|
+
var heroCompositionIntentSchema = z23.enum([
|
|
13245
|
+
"center",
|
|
13246
|
+
"bottom-left"
|
|
13247
|
+
]);
|
|
13248
|
+
var heroTypographyScaleIntentSchema = z23.enum([
|
|
13249
|
+
"quiet",
|
|
13250
|
+
"editorial",
|
|
13251
|
+
"display",
|
|
13252
|
+
"poster"
|
|
13253
|
+
]);
|
|
12896
13254
|
var sectionHeightIntentSchema = z23.enum([
|
|
12897
13255
|
"default",
|
|
12898
13256
|
"banner",
|
|
@@ -12928,6 +13286,7 @@ var imageSurfaceTreatmentSchema = z23.discriminatedUnion("kind", [
|
|
|
12928
13286
|
]);
|
|
12929
13287
|
var testimonialCardTreatmentSchema = z23.enum(["default", "accent-quote"]);
|
|
12930
13288
|
var tileTreatmentSchema = z23.enum(tileTreatmentValues);
|
|
13289
|
+
var eventListTreatmentSchema = z23.enum(eventListTreatmentValues);
|
|
12931
13290
|
var eyebrowTreatmentSchema = z23.enum(eyebrowTreatmentValues);
|
|
12932
13291
|
function uniqueNonEmpty(values) {
|
|
12933
13292
|
const uniqueValues = [...new Set(values)];
|
|
@@ -12969,10 +13328,13 @@ var blockDesignPlanSchema = z23.object({
|
|
|
12969
13328
|
emphasis: z23.enum(userDesignOptionCatalog.emphases),
|
|
12970
13329
|
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
12971
13330
|
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
13331
|
+
heroComposition: heroCompositionIntentSchema.optional(),
|
|
13332
|
+
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
12972
13333
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
12973
13334
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
12974
13335
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
12975
13336
|
tileTreatment: tileTreatmentSchema.optional(),
|
|
13337
|
+
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
12976
13338
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
12977
13339
|
}).strict();
|
|
12978
13340
|
var styleAuthoritySchema = z23.discriminatedUnion("kind", [
|
|
@@ -14372,6 +14734,7 @@ function styledSection(config) {
|
|
|
14372
14734
|
renderBackgroundImage = true,
|
|
14373
14735
|
backgroundImageLoading,
|
|
14374
14736
|
backgroundImageFetchPriority,
|
|
14737
|
+
allowOverflow = false,
|
|
14375
14738
|
fullWidthPath
|
|
14376
14739
|
} = config;
|
|
14377
14740
|
const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
|
|
@@ -14406,7 +14769,7 @@ function styledSection(config) {
|
|
|
14406
14769
|
// No fallback needed - transform handles all cases via defaultSpacing
|
|
14407
14770
|
}
|
|
14408
14771
|
},
|
|
14409
|
-
allowOverflow: {
|
|
14772
|
+
allowOverflow: allowOverflow ? true : {
|
|
14410
14773
|
$bind: {
|
|
14411
14774
|
from: `${bindFrom}.background`,
|
|
14412
14775
|
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
@@ -15090,6 +15453,14 @@ var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
|
15090
15453
|
function isTileTreatment(value) {
|
|
15091
15454
|
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
15092
15455
|
}
|
|
15456
|
+
var eventListTreatmentClassMap = {
|
|
15457
|
+
plain: "",
|
|
15458
|
+
"lined-panel": "rb-event-list-treatment-lined-panel"
|
|
15459
|
+
};
|
|
15460
|
+
var eventListTreatmentSet = new Set(eventListTreatmentValues);
|
|
15461
|
+
function isEventListTreatment(value) {
|
|
15462
|
+
return typeof value === "string" && eventListTreatmentSet.has(value);
|
|
15463
|
+
}
|
|
15093
15464
|
var sectionClassNameTransform = {
|
|
15094
15465
|
id: "sectionStyles.resolveClassName",
|
|
15095
15466
|
kind: "string",
|
|
@@ -15157,6 +15528,17 @@ var sectionClassNameTransform = {
|
|
|
15157
15528
|
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
15158
15529
|
);
|
|
15159
15530
|
}
|
|
15531
|
+
const eventListTreatment = input?.eventListTreatment;
|
|
15532
|
+
if (isEventListTreatment(eventListTreatment)) {
|
|
15533
|
+
const eventListTreatmentClass = eventListTreatmentClassMap[eventListTreatment];
|
|
15534
|
+
if (eventListTreatmentClass) {
|
|
15535
|
+
classes.push(eventListTreatmentClass);
|
|
15536
|
+
}
|
|
15537
|
+
} else if (typeof eventListTreatment === "string" && process.env.NODE_ENV !== "production") {
|
|
15538
|
+
console.warn(
|
|
15539
|
+
`[sectionStyles] Invalid eventListTreatment value in _sectionStyles: "${eventListTreatment}". Expected one of: ${eventListTreatmentValues.join(", ")}.`
|
|
15540
|
+
);
|
|
15541
|
+
}
|
|
15160
15542
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
15161
15543
|
classes.push(fixedFrameScopeClass);
|
|
15162
15544
|
}
|
|
@@ -15592,6 +15974,35 @@ function sectionState(opts) {
|
|
|
15592
15974
|
);
|
|
15593
15975
|
}
|
|
15594
15976
|
|
|
15977
|
+
// ../blocks/src/system/node/fragments/headingDecoration.ts
|
|
15978
|
+
var defaultBindFrom = "_sectionStyles.headingDecoration";
|
|
15979
|
+
function headingDecoration({
|
|
15980
|
+
bindFrom = defaultBindFrom,
|
|
15981
|
+
family,
|
|
15982
|
+
placement,
|
|
15983
|
+
className
|
|
15984
|
+
}) {
|
|
15985
|
+
return el(
|
|
15986
|
+
"div",
|
|
15987
|
+
{
|
|
15988
|
+
"aria-hidden": "true",
|
|
15989
|
+
className: {
|
|
15990
|
+
$bind: {
|
|
15991
|
+
from: bindFrom,
|
|
15992
|
+
transforms: [
|
|
15993
|
+
{
|
|
15994
|
+
id: "ui.headingDecorationClassName",
|
|
15995
|
+
options: { baseClass: className, family }
|
|
15996
|
+
}
|
|
15997
|
+
]
|
|
15998
|
+
}
|
|
15999
|
+
}
|
|
16000
|
+
},
|
|
16001
|
+
null,
|
|
16002
|
+
when(`${bindFrom}.placement`, { equals: placement })
|
|
16003
|
+
);
|
|
16004
|
+
}
|
|
16005
|
+
|
|
15595
16006
|
// ../blocks/src/system/fragments/types.ts
|
|
15596
16007
|
import { z as z27 } from "zod";
|
|
15597
16008
|
var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
@@ -16370,6 +16781,10 @@ var testimonialsHeadingFragment = defineFragment({
|
|
|
16370
16781
|
when("content.heading"),
|
|
16371
16782
|
bind("content.heading")
|
|
16372
16783
|
),
|
|
16784
|
+
headingDecoration({
|
|
16785
|
+
family: "short-center-rule",
|
|
16786
|
+
placement: "under-centered-heading"
|
|
16787
|
+
}),
|
|
16373
16788
|
text(
|
|
16374
16789
|
{
|
|
16375
16790
|
as: "p",
|
|
@@ -17041,6 +17456,41 @@ var faqHeadingFragment = defineFragment({
|
|
|
17041
17456
|
});
|
|
17042
17457
|
|
|
17043
17458
|
// ../blocks/src/system/fragments/library/faqAccordion.ts
|
|
17459
|
+
function createFaqAccordionLayout(options = {}) {
|
|
17460
|
+
return accordionList({
|
|
17461
|
+
collection: "content.items",
|
|
17462
|
+
itemName: "faqItem",
|
|
17463
|
+
indexName: "faqIndex",
|
|
17464
|
+
accordionProps: {
|
|
17465
|
+
className: options.rootClassName ?? "accordion-root",
|
|
17466
|
+
type: "single",
|
|
17467
|
+
collapsible: true
|
|
17468
|
+
},
|
|
17469
|
+
itemProps: {
|
|
17470
|
+
className: {
|
|
17471
|
+
$bind: {
|
|
17472
|
+
from: "content._cardStyles",
|
|
17473
|
+
transforms: [
|
|
17474
|
+
{
|
|
17475
|
+
id: "boxStyles.all",
|
|
17476
|
+
options: {
|
|
17477
|
+
axis: "all",
|
|
17478
|
+
includeSpacing: false,
|
|
17479
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
|
|
17480
|
+
}
|
|
17481
|
+
}
|
|
17482
|
+
]
|
|
17483
|
+
},
|
|
17484
|
+
fallback: "rb-faq-item"
|
|
17485
|
+
},
|
|
17486
|
+
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
17487
|
+
// Legacy theme accordion style
|
|
17488
|
+
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
17489
|
+
},
|
|
17490
|
+
triggerFrom: "faqItem.question",
|
|
17491
|
+
contentFrom: "faqItem.answer"
|
|
17492
|
+
});
|
|
17493
|
+
}
|
|
17044
17494
|
var faqAccordionFragment = defineFragment({
|
|
17045
17495
|
id: "faqAccordion",
|
|
17046
17496
|
title: "FAQ Accordion",
|
|
@@ -17074,40 +17524,7 @@ var faqAccordionFragment = defineFragment({
|
|
|
17074
17524
|
}
|
|
17075
17525
|
}
|
|
17076
17526
|
],
|
|
17077
|
-
layout:
|
|
17078
|
-
collection: "content.items",
|
|
17079
|
-
itemName: "faqItem",
|
|
17080
|
-
indexName: "faqIndex",
|
|
17081
|
-
accordionProps: {
|
|
17082
|
-
className: "accordion-root",
|
|
17083
|
-
// CSS-first: all styling handled by theme CSS
|
|
17084
|
-
type: "single",
|
|
17085
|
-
collapsible: true
|
|
17086
|
-
},
|
|
17087
|
-
itemProps: {
|
|
17088
|
-
className: {
|
|
17089
|
-
$bind: {
|
|
17090
|
-
from: "content._cardStyles",
|
|
17091
|
-
transforms: [
|
|
17092
|
-
{
|
|
17093
|
-
id: "boxStyles.all",
|
|
17094
|
-
options: {
|
|
17095
|
-
axis: "all",
|
|
17096
|
-
includeSpacing: false,
|
|
17097
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
|
|
17098
|
-
}
|
|
17099
|
-
}
|
|
17100
|
-
]
|
|
17101
|
-
},
|
|
17102
|
-
fallback: "rb-faq-item"
|
|
17103
|
-
},
|
|
17104
|
-
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
17105
|
-
// Legacy theme accordion style
|
|
17106
|
-
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
17107
|
-
},
|
|
17108
|
-
triggerFrom: "faqItem.question",
|
|
17109
|
-
contentFrom: "faqItem.answer"
|
|
17110
|
-
})
|
|
17527
|
+
layout: createFaqAccordionLayout()
|
|
17111
17528
|
});
|
|
17112
17529
|
|
|
17113
17530
|
// ../blocks/src/system/fragments/library/card.ts
|
|
@@ -18160,6 +18577,7 @@ var microLayout = styledSection({
|
|
|
18160
18577
|
function splitLayoutWith(children) {
|
|
18161
18578
|
return styledSection({
|
|
18162
18579
|
children: styledContainer({
|
|
18580
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
18163
18581
|
children: {
|
|
18164
18582
|
type: "grid",
|
|
18165
18583
|
props: {
|
|
@@ -18184,6 +18602,7 @@ function splitLayoutWith(children) {
|
|
|
18184
18602
|
// The split variants render the image as a real grid column, so suppress
|
|
18185
18603
|
// the default absolute background image layer while keeping color/overlay.
|
|
18186
18604
|
renderBackgroundImage: false,
|
|
18605
|
+
allowOverflow: true,
|
|
18187
18606
|
baseClass: ""
|
|
18188
18607
|
});
|
|
18189
18608
|
}
|
|
@@ -18337,6 +18756,21 @@ function introHeading(className) {
|
|
|
18337
18756
|
bind("content.title")
|
|
18338
18757
|
);
|
|
18339
18758
|
}
|
|
18759
|
+
function introHeadingGroup(className) {
|
|
18760
|
+
return stack(
|
|
18761
|
+
{
|
|
18762
|
+
gap: "sm",
|
|
18763
|
+
className: "rb-intro-heading-group"
|
|
18764
|
+
},
|
|
18765
|
+
[
|
|
18766
|
+
introHeading(className),
|
|
18767
|
+
headingDecoration({
|
|
18768
|
+
family: "organic-squiggle",
|
|
18769
|
+
placement: "after-heading"
|
|
18770
|
+
})
|
|
18771
|
+
]
|
|
18772
|
+
);
|
|
18773
|
+
}
|
|
18340
18774
|
function introBody(className = "rb-prose rb-max-w-none") {
|
|
18341
18775
|
return richText({ className }, bind("content.body"));
|
|
18342
18776
|
}
|
|
@@ -18355,6 +18789,10 @@ function introCopyStack(options = {}) {
|
|
|
18355
18789
|
},
|
|
18356
18790
|
[
|
|
18357
18791
|
introHeading(options.headingClassName ?? "rb-intro-title"),
|
|
18792
|
+
headingDecoration({
|
|
18793
|
+
family: "organic-squiggle",
|
|
18794
|
+
placement: "after-heading"
|
|
18795
|
+
}),
|
|
18358
18796
|
introBody(options.bodyClassName),
|
|
18359
18797
|
introCtas(options.ctaJustify)
|
|
18360
18798
|
]
|
|
@@ -18394,7 +18832,7 @@ var statementCopyLayout = styledSection({
|
|
|
18394
18832
|
className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
|
|
18395
18833
|
},
|
|
18396
18834
|
[
|
|
18397
|
-
|
|
18835
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
18398
18836
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
18399
18837
|
introBody(),
|
|
18400
18838
|
introCtas("start")
|
|
@@ -18415,7 +18853,7 @@ var statementMediaLayout = styledSection({
|
|
|
18415
18853
|
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"
|
|
18416
18854
|
},
|
|
18417
18855
|
[
|
|
18418
|
-
|
|
18856
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
18419
18857
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
18420
18858
|
introBody(),
|
|
18421
18859
|
introCtas("start")
|
|
@@ -19417,6 +19855,9 @@ function isNodeDefinitionArray(layout) {
|
|
|
19417
19855
|
}
|
|
19418
19856
|
var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
|
|
19419
19857
|
var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
|
|
19858
|
+
var questionColumnsAccordionLayout = createFaqAccordionLayout({
|
|
19859
|
+
rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
|
|
19860
|
+
});
|
|
19420
19861
|
var defaultLayout = styledSection({
|
|
19421
19862
|
children: styledContainer({
|
|
19422
19863
|
baseClassName: "rb-relative rb-isolate",
|
|
@@ -19430,11 +19871,24 @@ var twoColumnLayout = styledSection({
|
|
|
19430
19871
|
children: el(
|
|
19431
19872
|
"div",
|
|
19432
19873
|
{
|
|
19433
|
-
className: "rb-faq-
|
|
19874
|
+
className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
|
|
19434
19875
|
},
|
|
19435
19876
|
[
|
|
19436
|
-
el("div", { className: "rb-faq-
|
|
19437
|
-
el("div", { className: "rb-faq-
|
|
19877
|
+
el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
|
|
19878
|
+
el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
|
|
19879
|
+
]
|
|
19880
|
+
)
|
|
19881
|
+
}),
|
|
19882
|
+
baseClass: ""
|
|
19883
|
+
});
|
|
19884
|
+
var questionColumnsLayout = styledSection({
|
|
19885
|
+
children: styledContainer({
|
|
19886
|
+
baseClassName: "rb-relative rb-isolate",
|
|
19887
|
+
children: stack(
|
|
19888
|
+
{ gap: "xl", className: "rb-w-full" },
|
|
19889
|
+
[
|
|
19890
|
+
headingLayout,
|
|
19891
|
+
questionColumnsAccordionLayout
|
|
19438
19892
|
]
|
|
19439
19893
|
)
|
|
19440
19894
|
}),
|
|
@@ -19459,7 +19913,8 @@ var faqManifest = createBlockManifest({
|
|
|
19459
19913
|
layout: defaultLayout,
|
|
19460
19914
|
variants: {
|
|
19461
19915
|
default: defaultLayout,
|
|
19462
|
-
"two-column": twoColumnLayout
|
|
19916
|
+
"two-column": twoColumnLayout,
|
|
19917
|
+
"question-columns": questionColumnsLayout
|
|
19463
19918
|
},
|
|
19464
19919
|
defaultVariant: "default",
|
|
19465
19920
|
variantOptions: {
|
|
@@ -19470,6 +19925,10 @@ var faqManifest = createBlockManifest({
|
|
|
19470
19925
|
"two-column": {
|
|
19471
19926
|
label: "Two column",
|
|
19472
19927
|
description: "A left heading column with FAQ items on the right."
|
|
19928
|
+
},
|
|
19929
|
+
"question-columns": {
|
|
19930
|
+
label: "Question columns",
|
|
19931
|
+
description: "A full-width heading above FAQ items split into two columns."
|
|
19473
19932
|
}
|
|
19474
19933
|
},
|
|
19475
19934
|
description: "Accordion of frequently asked questions and answers.",
|
|
@@ -19591,9 +20050,21 @@ var eyebrowTreatmentClassMap = {
|
|
|
19591
20050
|
"accent-pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent rb-eyebrow-treatment-pill-bounce"
|
|
19592
20051
|
};
|
|
19593
20052
|
var eyebrowTreatmentSet = new Set(eyebrowTreatmentValues);
|
|
20053
|
+
var headingDecorationFamilySet = new Set(visibleHeadingDecorationFamilyValues);
|
|
20054
|
+
var headingDecorationPlacementSet = new Set(visibleHeadingDecorationPlacementValues);
|
|
20055
|
+
var headingDecorationColorTokenSet = new Set(headingDecorationColorTokenValues);
|
|
19594
20056
|
function isEyebrowTreatment(value) {
|
|
19595
20057
|
return typeof value === "string" && eyebrowTreatmentSet.has(value);
|
|
19596
20058
|
}
|
|
20059
|
+
function isHeadingDecorationFamily(value) {
|
|
20060
|
+
return typeof value === "string" && headingDecorationFamilySet.has(value);
|
|
20061
|
+
}
|
|
20062
|
+
function isHeadingDecorationPlacement(value) {
|
|
20063
|
+
return typeof value === "string" && headingDecorationPlacementSet.has(value);
|
|
20064
|
+
}
|
|
20065
|
+
function isHeadingDecorationColorToken(value) {
|
|
20066
|
+
return typeof value === "string" && headingDecorationColorTokenSet.has(value);
|
|
20067
|
+
}
|
|
19597
20068
|
var imageGalleryCornerClassMap = {
|
|
19598
20069
|
none: "",
|
|
19599
20070
|
sm: "rb-rounded-sm",
|
|
@@ -19697,6 +20168,10 @@ var sectionStateToneTransform = {
|
|
|
19697
20168
|
summary: "Map semantic section-state kind to feedback tone",
|
|
19698
20169
|
run: (value) => sectionStateToneFromUnknown(value)
|
|
19699
20170
|
};
|
|
20171
|
+
var heroTitleLengthThresholds = {
|
|
20172
|
+
medium: { maxCharacters: 42, maxWords: 6 },
|
|
20173
|
+
long: { maxCharacters: 78, maxWords: 11 }
|
|
20174
|
+
};
|
|
19700
20175
|
function isPlainObject(value) {
|
|
19701
20176
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
19702
20177
|
}
|
|
@@ -19704,6 +20179,14 @@ function readString(obj, key) {
|
|
|
19704
20179
|
const v = obj[key];
|
|
19705
20180
|
return typeof v === "string" ? v : void 0;
|
|
19706
20181
|
}
|
|
20182
|
+
function resolveGeneratedHeroLayoutStyles(content) {
|
|
20183
|
+
const raw = content._heroLayoutStyles;
|
|
20184
|
+
return isPlainObject(raw) ? raw : null;
|
|
20185
|
+
}
|
|
20186
|
+
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
20187
|
+
const generated = resolveGeneratedHeroLayoutStyles(content);
|
|
20188
|
+
return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
|
|
20189
|
+
}
|
|
19707
20190
|
function resolveHeroVariant(content) {
|
|
19708
20191
|
const variant = readString(content, "variant");
|
|
19709
20192
|
if (variant && variant.trim()) return variant.trim();
|
|
@@ -19712,14 +20195,14 @@ function resolveHeroVariant(content) {
|
|
|
19712
20195
|
return null;
|
|
19713
20196
|
}
|
|
19714
20197
|
function resolveHeroContentAlignment(content) {
|
|
19715
|
-
const raw =
|
|
20198
|
+
const raw = readHeroLayoutString(content, "contentAlignment");
|
|
19716
20199
|
if (raw === "left" || raw === "center" || raw === "right") return raw;
|
|
19717
20200
|
const variant = resolveHeroVariant(content);
|
|
19718
20201
|
if (variant === "split" || variant === "splitReverse") return "left";
|
|
19719
20202
|
return "center";
|
|
19720
20203
|
}
|
|
19721
20204
|
function resolveHeroVerticalAlignment(content) {
|
|
19722
|
-
const raw =
|
|
20205
|
+
const raw = readHeroLayoutString(content, "verticalAlignment");
|
|
19723
20206
|
if (raw === "top" || raw === "center" || raw === "bottom") return raw;
|
|
19724
20207
|
const sectionStyles = asPartialObject(content._sectionStyles);
|
|
19725
20208
|
const minHeight = sectionStyles?.minHeight;
|
|
@@ -19729,11 +20212,29 @@ function resolveHeroVerticalAlignment(content) {
|
|
|
19729
20212
|
return "top";
|
|
19730
20213
|
}
|
|
19731
20214
|
function resolveHeroContentMaxWidth(content) {
|
|
19732
|
-
const raw =
|
|
20215
|
+
const raw = readHeroLayoutString(content, "contentMaxWidth");
|
|
19733
20216
|
if (raw === "default" || raw === "narrow" || raw === "medium" || raw === "wide")
|
|
19734
20217
|
return raw;
|
|
19735
20218
|
return "default";
|
|
19736
20219
|
}
|
|
20220
|
+
function resolveHeroTypographyScale(content) {
|
|
20221
|
+
const raw = readHeroLayoutString(
|
|
20222
|
+
content,
|
|
20223
|
+
"typographyScale",
|
|
20224
|
+
"heroTypographyScale"
|
|
20225
|
+
);
|
|
20226
|
+
if (raw === "quiet" || raw === "editorial" || raw === "display" || raw === "poster") {
|
|
20227
|
+
return raw;
|
|
20228
|
+
}
|
|
20229
|
+
return null;
|
|
20230
|
+
}
|
|
20231
|
+
function resolveHeroTitleLength(content) {
|
|
20232
|
+
const headline = readString(content, "headline")?.trim() ?? "";
|
|
20233
|
+
const wordCount = headline.length === 0 ? 0 : headline.split(/\s+/).length;
|
|
20234
|
+
if (headline.length > heroTitleLengthThresholds.long.maxCharacters || wordCount > heroTitleLengthThresholds.long.maxWords) return "long";
|
|
20235
|
+
if (headline.length > heroTitleLengthThresholds.medium.maxCharacters || wordCount > heroTitleLengthThresholds.medium.maxWords) return "medium";
|
|
20236
|
+
return "short";
|
|
20237
|
+
}
|
|
19737
20238
|
var heroContentWrapperClassSchema = z33.object({
|
|
19738
20239
|
base: z33.string().optional()
|
|
19739
20240
|
});
|
|
@@ -19746,6 +20247,8 @@ var heroContentWrapperClassTransform = {
|
|
|
19746
20247
|
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
19747
20248
|
const alignment = resolveHeroContentAlignment(content);
|
|
19748
20249
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
20250
|
+
const typographyScale = resolveHeroTypographyScale(content);
|
|
20251
|
+
const titleLength = resolveHeroTitleLength(content);
|
|
19749
20252
|
const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
|
|
19750
20253
|
const maxWidthClass = maxWidth === "narrow" ? "rb-max-w-2xl" : maxWidth === "medium" ? "rb-max-w-3xl" : maxWidth === "wide" ? "rb-max-w-5xl" : "";
|
|
19751
20254
|
const positionClass = alignment === "center" ? "rb-mx-auto" : alignment === "right" ? "rb-ml-auto" : "";
|
|
@@ -19753,7 +20256,9 @@ var heroContentWrapperClassTransform = {
|
|
|
19753
20256
|
options?.base,
|
|
19754
20257
|
textAlignClass,
|
|
19755
20258
|
maxWidthClass,
|
|
19756
|
-
positionClass
|
|
20259
|
+
positionClass,
|
|
20260
|
+
typographyScale ? `rb-hero-typography-${typographyScale}` : "",
|
|
20261
|
+
`rb-hero-title-${titleLength}`
|
|
19757
20262
|
]);
|
|
19758
20263
|
}
|
|
19759
20264
|
};
|
|
@@ -20053,11 +20558,67 @@ var uiTransforms = [
|
|
|
20053
20558
|
const treatment = isEyebrowTreatment(value) ? value : "plain";
|
|
20054
20559
|
return joinClasses3([baseClass, eyebrowTreatmentClassMap[treatment]]);
|
|
20055
20560
|
}
|
|
20561
|
+
},
|
|
20562
|
+
{
|
|
20563
|
+
id: "ui.headingDecorationClassName",
|
|
20564
|
+
kind: "string",
|
|
20565
|
+
summary: "Apply constrained Theme V2 heading decoration classes",
|
|
20566
|
+
run: (value, options) => {
|
|
20567
|
+
const baseClass = typeof options?.baseClass === "string" && options.baseClass.trim() ? options.baseClass : "rb-heading-decoration";
|
|
20568
|
+
const decoration = asPartialObject(value);
|
|
20569
|
+
const family = isHeadingDecorationFamily(decoration?.family) ? decoration.family : null;
|
|
20570
|
+
const allowedFamily = isHeadingDecorationFamily(options?.family) ? options.family : null;
|
|
20571
|
+
const placement = isHeadingDecorationPlacement(decoration?.placement) ? decoration.placement : null;
|
|
20572
|
+
const colorToken = isHeadingDecorationColorToken(decoration?.colorToken) ? decoration.colorToken : "primary";
|
|
20573
|
+
if (!family || !placement) return "rb-hidden";
|
|
20574
|
+
if (allowedFamily && family !== allowedFamily) return "rb-hidden";
|
|
20575
|
+
return joinClasses3([
|
|
20576
|
+
baseClass,
|
|
20577
|
+
`rb-heading-decoration-${family}`,
|
|
20578
|
+
`rb-heading-decoration-placement-${placement}`,
|
|
20579
|
+
`rb-heading-decoration-color-${colorToken}`
|
|
20580
|
+
]);
|
|
20581
|
+
}
|
|
20056
20582
|
}
|
|
20057
20583
|
];
|
|
20058
20584
|
|
|
20059
20585
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20060
20586
|
import { z as z34 } from "zod";
|
|
20587
|
+
|
|
20588
|
+
// ../theme-core/src/siteChromePlacement.ts
|
|
20589
|
+
var HEADER_POSITIONINGS = ["static", "sticky", "fixed"];
|
|
20590
|
+
function parseHeaderPositioning(value) {
|
|
20591
|
+
return isHeaderPositioning(value) ? value : "static";
|
|
20592
|
+
}
|
|
20593
|
+
function isHeaderPositioning(value) {
|
|
20594
|
+
return typeof value === "string" && HEADER_POSITIONINGS.includes(value);
|
|
20595
|
+
}
|
|
20596
|
+
function planSiteChromePlacement(positioning) {
|
|
20597
|
+
switch (positioning) {
|
|
20598
|
+
case "static":
|
|
20599
|
+
return {
|
|
20600
|
+
kind: "static",
|
|
20601
|
+
headerRootClassName: null,
|
|
20602
|
+
standaloneShellClassName: null
|
|
20603
|
+
};
|
|
20604
|
+
case "sticky":
|
|
20605
|
+
return {
|
|
20606
|
+
kind: "sticky",
|
|
20607
|
+
headerRootClassName: "rb-sticky rb-top-0",
|
|
20608
|
+
standaloneShellClassName: "sticky top-0 z-40 w-full"
|
|
20609
|
+
};
|
|
20610
|
+
case "fixed":
|
|
20611
|
+
return {
|
|
20612
|
+
kind: "fixed",
|
|
20613
|
+
headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
|
|
20614
|
+
standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
|
|
20615
|
+
};
|
|
20616
|
+
default:
|
|
20617
|
+
return assertNever(positioning);
|
|
20618
|
+
}
|
|
20619
|
+
}
|
|
20620
|
+
|
|
20621
|
+
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20061
20622
|
var joinClasses4 = (parts) => parts.filter(
|
|
20062
20623
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
20063
20624
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -20173,7 +20734,8 @@ var headerRootClassTransform = {
|
|
|
20173
20734
|
...options
|
|
20174
20735
|
};
|
|
20175
20736
|
const content = asPartialObject(value) ?? {};
|
|
20176
|
-
const positioning =
|
|
20737
|
+
const positioning = parseHeaderPositioning(content.positioning);
|
|
20738
|
+
const placement = planSiteChromePlacement(positioning);
|
|
20177
20739
|
const shrinkOnScroll = Boolean(content.shrinkOnScroll);
|
|
20178
20740
|
const header = asPartialObject(value);
|
|
20179
20741
|
const visuals = resolveHeaderVisualStyles(header, context.theme);
|
|
@@ -20185,14 +20747,14 @@ var headerRootClassTransform = {
|
|
|
20185
20747
|
if (config.blur) classes.push(config.blur);
|
|
20186
20748
|
if (config.blurSupport) classes.push(config.blurSupport);
|
|
20187
20749
|
}
|
|
20188
|
-
if (
|
|
20750
|
+
if (placement.kind === "sticky") {
|
|
20189
20751
|
classes.push(
|
|
20190
20752
|
visuals.isTransparent ? config.stickyTransparent : config.sticky
|
|
20191
20753
|
);
|
|
20192
|
-
} else if (
|
|
20754
|
+
} else if (placement.kind === "fixed") {
|
|
20193
20755
|
classes.push(config.fixed);
|
|
20194
20756
|
}
|
|
20195
|
-
if (shrinkOnScroll &&
|
|
20757
|
+
if (shrinkOnScroll && placement.kind !== "static") {
|
|
20196
20758
|
classes.push(config.shrink);
|
|
20197
20759
|
}
|
|
20198
20760
|
const VALID_VARIANTS = [
|
|
@@ -20724,6 +21286,10 @@ function desktopOnlyDisplay(display) {
|
|
|
20724
21286
|
return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
|
|
20725
21287
|
}
|
|
20726
21288
|
|
|
21289
|
+
// ../theme-core/src/siteChromeOverlayClearance.ts
|
|
21290
|
+
var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
21291
|
+
var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
|
|
21292
|
+
|
|
20727
21293
|
// ../blocks/src/system/blocks/site-header.ts
|
|
20728
21294
|
var logoRow = link(
|
|
20729
21295
|
{
|
|
@@ -20996,6 +21562,7 @@ var transparentLayout = inline(
|
|
|
20996
21562
|
);
|
|
20997
21563
|
var floatingLayout = inline(
|
|
20998
21564
|
{
|
|
21565
|
+
[SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
|
|
20999
21566
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
21000
21567
|
transforms: pipe(
|
|
21001
21568
|
tx("layout.maxWidthClass", {
|
|
@@ -21941,6 +22508,10 @@ var sectionHeading = stack(
|
|
|
21941
22508
|
when("content.title"),
|
|
21942
22509
|
bind("content.title")
|
|
21943
22510
|
),
|
|
22511
|
+
headingDecoration({
|
|
22512
|
+
family: "short-center-rule",
|
|
22513
|
+
placement: "under-centered-heading"
|
|
22514
|
+
}),
|
|
21944
22515
|
richText(
|
|
21945
22516
|
{
|
|
21946
22517
|
className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
|
|
@@ -24364,7 +24935,7 @@ var COLUMN_CLASSES = {
|
|
|
24364
24935
|
};
|
|
24365
24936
|
function getContainerClass(layout, columns) {
|
|
24366
24937
|
if (layout === "compact") {
|
|
24367
|
-
return "event-listing-compact-container rb-flex rb-flex-col
|
|
24938
|
+
return "event-listing-compact-container rb-flex rb-flex-col";
|
|
24368
24939
|
}
|
|
24369
24940
|
if (layout === "stack") {
|
|
24370
24941
|
return "rb-flex rb-flex-col rb-gap-6";
|
|
@@ -27192,6 +27763,7 @@ import { z as z53 } from "zod";
|
|
|
27192
27763
|
var storedProductCartItemSchema = z53.object({
|
|
27193
27764
|
kind: z53.literal("product"),
|
|
27194
27765
|
productId: z53.string().min(1),
|
|
27766
|
+
productCategoryId: z53.string().min(1).optional().nullable(),
|
|
27195
27767
|
variantId: z53.string().min(1).optional().nullable(),
|
|
27196
27768
|
title: z53.string().min(1),
|
|
27197
27769
|
variantTitle: z53.string().optional().nullable(),
|
|
@@ -29696,6 +30268,10 @@ var scheduleTileTreatments = [
|
|
|
29696
30268
|
"quiet",
|
|
29697
30269
|
"brand-depth"
|
|
29698
30270
|
];
|
|
30271
|
+
var eventListTreatments = [
|
|
30272
|
+
"plain",
|
|
30273
|
+
"lined-panel"
|
|
30274
|
+
];
|
|
29699
30275
|
function scheduleDetailsCapable() {
|
|
29700
30276
|
return declareBlockDesignCapability({
|
|
29701
30277
|
sectionSurfaces: "supported",
|
|
@@ -29704,6 +30280,14 @@ function scheduleDetailsCapable() {
|
|
|
29704
30280
|
tileTreatments: scheduleTileTreatments
|
|
29705
30281
|
});
|
|
29706
30282
|
}
|
|
30283
|
+
function eventListCapable() {
|
|
30284
|
+
return declareBlockDesignCapability({
|
|
30285
|
+
sectionSurfaces: "supported",
|
|
30286
|
+
contentFrames: ["plain"],
|
|
30287
|
+
itemSurfaces: "unsupported",
|
|
30288
|
+
eventListTreatments
|
|
30289
|
+
});
|
|
30290
|
+
}
|
|
29707
30291
|
function defaultBoundaryBias(visualWeight) {
|
|
29708
30292
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
29709
30293
|
}
|
|
@@ -29923,7 +30507,8 @@ var systemBlockDefinitionsRaw = [
|
|
|
29923
30507
|
flow: bodyFlow,
|
|
29924
30508
|
layoutProfiles: [
|
|
29925
30509
|
layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
|
|
29926
|
-
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
|
|
30510
|
+
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
|
|
30511
|
+
layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
|
|
29927
30512
|
]
|
|
29928
30513
|
})),
|
|
29929
30514
|
withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
|
|
@@ -30017,11 +30602,11 @@ var systemBlockDefinitionsRaw = [
|
|
|
30017
30602
|
flow: offeringsFlow,
|
|
30018
30603
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
|
|
30019
30604
|
})),
|
|
30020
|
-
withDesignCapability("block.event-listing", eventListingBlockDefinition,
|
|
30605
|
+
withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
30021
30606
|
flow: offeringsFlow,
|
|
30022
30607
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
30023
30608
|
})),
|
|
30024
|
-
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition,
|
|
30609
|
+
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
30025
30610
|
flow: offeringsFlow,
|
|
30026
30611
|
layoutProfiles: [
|
|
30027
30612
|
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
@@ -31093,6 +31678,15 @@ ${root} {
|
|
|
31093
31678
|
`;
|
|
31094
31679
|
}
|
|
31095
31680
|
|
|
31681
|
+
// ../theme-core/src/runtime/themeCssVarNames.ts
|
|
31682
|
+
var THEME_RADIUS_CSS_VARS = {
|
|
31683
|
+
block: "--rb-block-radius",
|
|
31684
|
+
button: "--rb-button-radius",
|
|
31685
|
+
input: "--rb-input-radius",
|
|
31686
|
+
legacyCard: "--radius-card",
|
|
31687
|
+
legacyControl: "--radius-control"
|
|
31688
|
+
};
|
|
31689
|
+
|
|
31096
31690
|
// ../theme-core/src/blocks/vars/customer-portal.ts
|
|
31097
31691
|
function generateCustomerPortalVars({
|
|
31098
31692
|
themeId
|
|
@@ -31106,6 +31700,11 @@ ${root} {
|
|
|
31106
31700
|
--cp-muted: rgb(var(--tb-mutedText));
|
|
31107
31701
|
--cp-border: rgb(var(--tb-border));
|
|
31108
31702
|
--cp-shadow: var(--shadow-elev);
|
|
31703
|
+
--cp-primary: rgb(var(--tb-primary));
|
|
31704
|
+
--cp-primary-hover: rgb(var(--tb-primary-700, var(--tb-primary)));
|
|
31705
|
+
--cp-error: rgb(var(--tb-destructive));
|
|
31706
|
+
--cp-card-radius: var(${THEME_RADIUS_CSS_VARS.block}, var(${THEME_RADIUS_CSS_VARS.legacyCard}, 0.75rem));
|
|
31707
|
+
--cp-control-radius: var(${THEME_RADIUS_CSS_VARS.input}, var(${THEME_RADIUS_CSS_VARS.legacyControl}, 0.5rem));
|
|
31109
31708
|
|
|
31110
31709
|
/* Shared tab bar (underline style) */
|
|
31111
31710
|
--rb-tab-border-width: 1px;
|
|
@@ -31156,7 +31755,7 @@ ${root} {
|
|
|
31156
31755
|
--rb-modal-bg: var(--cp-card-bg);
|
|
31157
31756
|
--rb-modal-border: var(--cp-card-border);
|
|
31158
31757
|
--rb-modal-shadow: var(--shadow-lg, var(--shadow-elev));
|
|
31159
|
-
--rb-modal-radius: var(--
|
|
31758
|
+
--rb-modal-radius: var(--cp-card-radius);
|
|
31160
31759
|
--rb-modal-max-width: 560px;
|
|
31161
31760
|
|
|
31162
31761
|
/* Header */
|
|
@@ -32537,6 +33136,9 @@ import { jsx as jsx5 } from "react/jsx-runtime";
|
|
|
32537
33136
|
import * as React from "react";
|
|
32538
33137
|
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
32539
33138
|
|
|
33139
|
+
// ../theme-core/src/fonts/uploadFormat.ts
|
|
33140
|
+
var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
33141
|
+
|
|
32540
33142
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
32541
33143
|
import { z as z60 } from "zod";
|
|
32542
33144
|
var themeBridgeConfigSchema = z60.object({
|
|
@@ -32983,6 +33585,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
|
|
|
32983
33585
|
];
|
|
32984
33586
|
|
|
32985
33587
|
// ../api/src/bookingVerticals.ts
|
|
33588
|
+
import { z as z63 } from "zod";
|
|
32986
33589
|
var VERTICAL_IDS = [
|
|
32987
33590
|
"yoga_wellness",
|
|
32988
33591
|
"fitness_pt",
|
|
@@ -33061,6 +33664,132 @@ var VERTICAL_ID_SET = new Set(VERTICAL_IDS);
|
|
|
33061
33664
|
var VERTICAL_PRESET_ID_SET = new Set(
|
|
33062
33665
|
VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
|
|
33063
33666
|
);
|
|
33667
|
+
function parseVerticalId(value) {
|
|
33668
|
+
return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
|
|
33669
|
+
}
|
|
33670
|
+
function parseVerticalPresetId(value) {
|
|
33671
|
+
return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
|
|
33672
|
+
}
|
|
33673
|
+
function getVerticalPresetDefinition(presetId) {
|
|
33674
|
+
const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
|
|
33675
|
+
if (!definition) {
|
|
33676
|
+
throw new Error(`Unhandled vertical preset id: ${presetId}`);
|
|
33677
|
+
}
|
|
33678
|
+
return definition;
|
|
33679
|
+
}
|
|
33680
|
+
function toNonEmptyVerticalPresetIds(presetIds) {
|
|
33681
|
+
const firstPresetId = presetIds[0];
|
|
33682
|
+
return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
|
|
33683
|
+
}
|
|
33684
|
+
function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
33685
|
+
return {
|
|
33686
|
+
verticalId,
|
|
33687
|
+
selectedPresetIds
|
|
33688
|
+
};
|
|
33689
|
+
}
|
|
33690
|
+
function createSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
33691
|
+
const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
|
|
33692
|
+
return nonEmptyPresetIds ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
|
|
33693
|
+
}
|
|
33694
|
+
function resolveSiteVerticalBookingConfig(rawConfig) {
|
|
33695
|
+
if (!rawConfig) {
|
|
33696
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
33697
|
+
}
|
|
33698
|
+
const verticalId = parseVerticalId(rawConfig.verticalId);
|
|
33699
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
33700
|
+
const selectedPresetIds = rawPresetIds.map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
|
|
33701
|
+
const config = {
|
|
33702
|
+
verticalId,
|
|
33703
|
+
selectedPresetIds
|
|
33704
|
+
};
|
|
33705
|
+
if (!verticalId && selectedPresetIds.length === 0) {
|
|
33706
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
33707
|
+
}
|
|
33708
|
+
const issues = getSiteVerticalConfigIssues(rawConfig, config);
|
|
33709
|
+
if (issues.length > 0) {
|
|
33710
|
+
return { kind: "invalid", config, issues };
|
|
33711
|
+
}
|
|
33712
|
+
const configuredConfig = verticalId ? createSiteVerticalBookingConfig(verticalId, selectedPresetIds) : null;
|
|
33713
|
+
if (!configuredConfig) {
|
|
33714
|
+
return { kind: "invalid", config, issues: ["empty_selected_presets"] };
|
|
33715
|
+
}
|
|
33716
|
+
return {
|
|
33717
|
+
kind: "configured",
|
|
33718
|
+
config: configuredConfig,
|
|
33719
|
+
selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
|
|
33720
|
+
};
|
|
33721
|
+
}
|
|
33722
|
+
function getSiteVerticalConfigIssues(rawConfig, config) {
|
|
33723
|
+
const issues = /* @__PURE__ */ new Set();
|
|
33724
|
+
if (rawConfig.verticalId != null && !config.verticalId) {
|
|
33725
|
+
issues.add("unknown_vertical");
|
|
33726
|
+
}
|
|
33727
|
+
if (!config.verticalId && config.selectedPresetIds.length > 0) {
|
|
33728
|
+
issues.add("missing_vertical");
|
|
33729
|
+
}
|
|
33730
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
33731
|
+
if (rawPresetIds.some((presetId) => parseVerticalPresetId(presetId) === null)) {
|
|
33732
|
+
issues.add("unknown_preset");
|
|
33733
|
+
}
|
|
33734
|
+
if (config.verticalId && config.selectedPresetIds.length === 0) {
|
|
33735
|
+
issues.add("empty_selected_presets");
|
|
33736
|
+
}
|
|
33737
|
+
const seenBehaviours = /* @__PURE__ */ new Set();
|
|
33738
|
+
for (const presetId of config.selectedPresetIds) {
|
|
33739
|
+
const presetDefinition = getVerticalPresetDefinition(presetId);
|
|
33740
|
+
if (config.verticalId && presetDefinition.verticalId !== config.verticalId) {
|
|
33741
|
+
issues.add("preset_vertical_mismatch");
|
|
33742
|
+
}
|
|
33743
|
+
if (presetDefinition.availability === "future") {
|
|
33744
|
+
issues.add("future_preset_selected");
|
|
33745
|
+
}
|
|
33746
|
+
if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) {
|
|
33747
|
+
issues.add("duplicate_canonical_behaviour");
|
|
33748
|
+
}
|
|
33749
|
+
seenBehaviours.add(presetDefinition.canonicalBehaviour);
|
|
33750
|
+
}
|
|
33751
|
+
return [...issues];
|
|
33752
|
+
}
|
|
33753
|
+
var VerticalIdSchema = z63.string().trim().transform((value, ctx) => {
|
|
33754
|
+
const parsed = parseVerticalId(value);
|
|
33755
|
+
if (!parsed) {
|
|
33756
|
+
ctx.addIssue({
|
|
33757
|
+
code: z63.ZodIssueCode.custom,
|
|
33758
|
+
message: "Unknown booking vertical"
|
|
33759
|
+
});
|
|
33760
|
+
return z63.NEVER;
|
|
33761
|
+
}
|
|
33762
|
+
return parsed;
|
|
33763
|
+
});
|
|
33764
|
+
var VerticalPresetIdSchema = z63.string().trim().transform((value, ctx) => {
|
|
33765
|
+
const parsed = parseVerticalPresetId(value);
|
|
33766
|
+
if (!parsed) {
|
|
33767
|
+
ctx.addIssue({
|
|
33768
|
+
code: z63.ZodIssueCode.custom,
|
|
33769
|
+
message: "Unknown booking preset"
|
|
33770
|
+
});
|
|
33771
|
+
return z63.NEVER;
|
|
33772
|
+
}
|
|
33773
|
+
return parsed;
|
|
33774
|
+
});
|
|
33775
|
+
var BookingVerticalConfigSchema = z63.object({
|
|
33776
|
+
verticalId: VerticalIdSchema.nullable(),
|
|
33777
|
+
selectedPresetIds: z63.array(VerticalPresetIdSchema).max(20)
|
|
33778
|
+
}).transform((value, ctx) => {
|
|
33779
|
+
const resolved = resolveSiteVerticalBookingConfig(value);
|
|
33780
|
+
if (resolved.kind === "invalid") {
|
|
33781
|
+
ctx.addIssue({
|
|
33782
|
+
code: z63.ZodIssueCode.custom,
|
|
33783
|
+
message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
|
|
33784
|
+
});
|
|
33785
|
+
return z63.NEVER;
|
|
33786
|
+
}
|
|
33787
|
+
return resolved.config;
|
|
33788
|
+
});
|
|
33789
|
+
var DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
|
|
33790
|
+
verticalId: null,
|
|
33791
|
+
selectedPresetIds: []
|
|
33792
|
+
};
|
|
33064
33793
|
function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
33065
33794
|
return {
|
|
33066
33795
|
id,
|
|
@@ -33080,51 +33809,51 @@ function isRecord3(value) {
|
|
|
33080
33809
|
}
|
|
33081
33810
|
|
|
33082
33811
|
// ../api/src/appointmentSetup.ts
|
|
33083
|
-
import { z as
|
|
33812
|
+
import { z as z64 } from "zod";
|
|
33084
33813
|
var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
|
|
33085
|
-
var appointmentSetupRefSchema =
|
|
33086
|
-
|
|
33087
|
-
|
|
33814
|
+
var appointmentSetupRefSchema = z64.discriminatedUnion("kind", [
|
|
33815
|
+
z64.object({ kind: z64.literal("existing"), id: z64.string().min(1) }),
|
|
33816
|
+
z64.object({ kind: z64.literal("new"), draftId: z64.string().min(1) })
|
|
33088
33817
|
]);
|
|
33089
|
-
var appointmentSetupVenueChoiceSchema =
|
|
33090
|
-
|
|
33091
|
-
|
|
33092
|
-
|
|
33093
|
-
kind:
|
|
33094
|
-
draftId:
|
|
33095
|
-
title:
|
|
33096
|
-
description:
|
|
33097
|
-
timezone:
|
|
33098
|
-
addressJson:
|
|
33099
|
-
locationJson:
|
|
33818
|
+
var appointmentSetupVenueChoiceSchema = z64.discriminatedUnion("kind", [
|
|
33819
|
+
z64.object({ kind: z64.literal("none") }),
|
|
33820
|
+
z64.object({ kind: z64.literal("existing"), venueId: z64.string().min(1) }),
|
|
33821
|
+
z64.object({
|
|
33822
|
+
kind: z64.literal("create"),
|
|
33823
|
+
draftId: z64.string().min(1),
|
|
33824
|
+
title: z64.string().trim().min(1),
|
|
33825
|
+
description: z64.string().nullable(),
|
|
33826
|
+
timezone: z64.string().trim().min(1).nullable(),
|
|
33827
|
+
addressJson: z64.record(z64.string(), z64.unknown()),
|
|
33828
|
+
locationJson: z64.object({ lat: z64.number(), lng: z64.number() }).nullable()
|
|
33100
33829
|
})
|
|
33101
33830
|
]);
|
|
33102
|
-
var appointmentSetupPaymentDraftSchema =
|
|
33103
|
-
priceType:
|
|
33104
|
-
});
|
|
33105
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
33106
|
-
|
|
33107
|
-
|
|
33108
|
-
kind:
|
|
33109
|
-
resourceRefs:
|
|
33831
|
+
var appointmentSetupPaymentDraftSchema = z64.object({
|
|
33832
|
+
priceType: z64.union([z64.literal("free"), z64.literal("paid")])
|
|
33833
|
+
});
|
|
33834
|
+
var appointmentSetupServiceAssignmentDraftSchema = z64.discriminatedUnion("kind", [
|
|
33835
|
+
z64.object({ kind: z64.literal("all_practitioners") }),
|
|
33836
|
+
z64.object({
|
|
33837
|
+
kind: z64.literal("selected_practitioners"),
|
|
33838
|
+
resourceRefs: z64.array(appointmentSetupRefSchema)
|
|
33110
33839
|
})
|
|
33111
33840
|
]);
|
|
33112
|
-
var appointmentSetupServiceDraftSchema =
|
|
33841
|
+
var appointmentSetupServiceDraftSchema = z64.object({
|
|
33113
33842
|
ref: appointmentSetupRefSchema,
|
|
33114
|
-
title:
|
|
33115
|
-
description:
|
|
33116
|
-
durationMinutes:
|
|
33117
|
-
prepMinutes:
|
|
33118
|
-
cleanupMinutes:
|
|
33119
|
-
priceAmount:
|
|
33120
|
-
isActive:
|
|
33121
|
-
locationType:
|
|
33122
|
-
|
|
33123
|
-
|
|
33124
|
-
|
|
33843
|
+
title: z64.string().trim().min(1),
|
|
33844
|
+
description: z64.string().nullable(),
|
|
33845
|
+
durationMinutes: z64.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
|
|
33846
|
+
prepMinutes: z64.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
33847
|
+
cleanupMinutes: z64.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
33848
|
+
priceAmount: z64.number().int().nonnegative().nullable(),
|
|
33849
|
+
isActive: z64.boolean(),
|
|
33850
|
+
locationType: z64.union([
|
|
33851
|
+
z64.literal("virtual"),
|
|
33852
|
+
z64.literal("in_person"),
|
|
33853
|
+
z64.literal("hybrid")
|
|
33125
33854
|
]),
|
|
33126
33855
|
venue: appointmentSetupVenueChoiceSchema,
|
|
33127
|
-
timezone:
|
|
33856
|
+
timezone: z64.string().trim().min(1).nullable(),
|
|
33128
33857
|
payment: appointmentSetupPaymentDraftSchema,
|
|
33129
33858
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
33130
33859
|
}).superRefine((service, ctx) => {
|
|
@@ -33143,49 +33872,49 @@ var appointmentSetupServiceDraftSchema = z63.object({
|
|
|
33143
33872
|
});
|
|
33144
33873
|
}
|
|
33145
33874
|
});
|
|
33146
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
33875
|
+
var appointmentSetupPractitionerDraftSchema = z64.object({
|
|
33147
33876
|
ref: appointmentSetupRefSchema,
|
|
33148
|
-
displayName:
|
|
33149
|
-
bio:
|
|
33150
|
-
timezone:
|
|
33151
|
-
colorHex:
|
|
33152
|
-
});
|
|
33153
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
33154
|
-
weekday:
|
|
33155
|
-
startTime:
|
|
33156
|
-
endTime:
|
|
33157
|
-
});
|
|
33158
|
-
var appointmentSetupStartTimePolicyDraftSchema =
|
|
33159
|
-
|
|
33160
|
-
|
|
33161
|
-
kind:
|
|
33162
|
-
intervalMinutes:
|
|
33163
|
-
|
|
33164
|
-
|
|
33165
|
-
|
|
33166
|
-
|
|
33167
|
-
|
|
33168
|
-
|
|
33877
|
+
displayName: z64.string().trim().min(1),
|
|
33878
|
+
bio: z64.string().nullable(),
|
|
33879
|
+
timezone: z64.string().trim().min(1),
|
|
33880
|
+
colorHex: z64.string().nullable()
|
|
33881
|
+
});
|
|
33882
|
+
var appointmentSetupWeeklyWindowDraftSchema = z64.object({
|
|
33883
|
+
weekday: z64.number().int().min(0).max(6),
|
|
33884
|
+
startTime: z64.string(),
|
|
33885
|
+
endTime: z64.string()
|
|
33886
|
+
});
|
|
33887
|
+
var appointmentSetupStartTimePolicyDraftSchema = z64.discriminatedUnion("kind", [
|
|
33888
|
+
z64.object({ kind: z64.literal("automatic_spacing") }),
|
|
33889
|
+
z64.object({
|
|
33890
|
+
kind: z64.literal("regular_interval"),
|
|
33891
|
+
intervalMinutes: z64.union([
|
|
33892
|
+
z64.literal(10),
|
|
33893
|
+
z64.literal(15),
|
|
33894
|
+
z64.literal(20),
|
|
33895
|
+
z64.literal(30),
|
|
33896
|
+
z64.literal(45),
|
|
33897
|
+
z64.literal(60)
|
|
33169
33898
|
])
|
|
33170
33899
|
})
|
|
33171
33900
|
]);
|
|
33172
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
33173
|
-
kind:
|
|
33901
|
+
var appointmentSetupAvailabilityDraftSchema = z64.object({
|
|
33902
|
+
kind: z64.literal("weekly_windows"),
|
|
33174
33903
|
resourceRef: appointmentSetupRefSchema,
|
|
33175
33904
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
33176
|
-
windows:
|
|
33905
|
+
windows: z64.array(appointmentSetupWeeklyWindowDraftSchema),
|
|
33177
33906
|
startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
|
|
33178
33907
|
});
|
|
33179
33908
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
33180
33909
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
33181
|
-
var appointmentSetupBookingNoticeSchema =
|
|
33182
|
-
minLeadMinutes:
|
|
33183
|
-
maxBookingNoticeMinutes:
|
|
33184
|
-
});
|
|
33185
|
-
var applyAppointmentSetupRequestSchema =
|
|
33186
|
-
services:
|
|
33187
|
-
practitioners:
|
|
33188
|
-
availability:
|
|
33910
|
+
var appointmentSetupBookingNoticeSchema = z64.object({
|
|
33911
|
+
minLeadMinutes: z64.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
|
|
33912
|
+
maxBookingNoticeMinutes: z64.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
|
|
33913
|
+
});
|
|
33914
|
+
var applyAppointmentSetupRequestSchema = z64.object({
|
|
33915
|
+
services: z64.array(appointmentSetupServiceDraftSchema),
|
|
33916
|
+
practitioners: z64.array(appointmentSetupPractitionerDraftSchema),
|
|
33917
|
+
availability: z64.array(appointmentSetupAvailabilityDraftSchema),
|
|
33189
33918
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
33190
33919
|
});
|
|
33191
33920
|
|
|
@@ -33218,24 +33947,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
33218
33947
|
];
|
|
33219
33948
|
|
|
33220
33949
|
// ../api/src/siteBanner.ts
|
|
33221
|
-
import { z as
|
|
33950
|
+
import { z as z65 } from "zod";
|
|
33222
33951
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
33223
33952
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
33224
33953
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
33225
33954
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
33226
|
-
var siteBannerScopeSchema =
|
|
33227
|
-
var siteBannerToneSchema =
|
|
33228
|
-
var siteBannerBodySchema =
|
|
33229
|
-
var siteBannerCtaSchema =
|
|
33230
|
-
label:
|
|
33955
|
+
var siteBannerScopeSchema = z65.enum(SITE_BANNER_SCOPE_VALUES);
|
|
33956
|
+
var siteBannerToneSchema = z65.enum(SITE_BANNER_TONE_VALUES);
|
|
33957
|
+
var siteBannerBodySchema = z65.unknown().transform(unwrapRichTextValue);
|
|
33958
|
+
var siteBannerCtaSchema = z65.object({
|
|
33959
|
+
label: z65.string().trim().min(1),
|
|
33231
33960
|
link: linkPayloadSchema
|
|
33232
33961
|
});
|
|
33233
|
-
var siteBannerSettingsSchema =
|
|
33234
|
-
|
|
33235
|
-
enabled:
|
|
33962
|
+
var siteBannerSettingsSchema = z65.discriminatedUnion("enabled", [
|
|
33963
|
+
z65.object({
|
|
33964
|
+
enabled: z65.literal(false)
|
|
33236
33965
|
}),
|
|
33237
|
-
|
|
33238
|
-
enabled:
|
|
33966
|
+
z65.object({
|
|
33967
|
+
enabled: z65.literal(true),
|
|
33239
33968
|
scope: siteBannerScopeSchema,
|
|
33240
33969
|
tone: siteBannerToneSchema,
|
|
33241
33970
|
body: siteBannerBodySchema,
|
|
@@ -33249,7 +33978,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
33249
33978
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
33250
33979
|
for (const issue of analysis.issues) {
|
|
33251
33980
|
ctx.addIssue({
|
|
33252
|
-
code:
|
|
33981
|
+
code: z65.ZodIssueCode.custom,
|
|
33253
33982
|
path: ["body"],
|
|
33254
33983
|
message: siteBannerBodyIssueMessage(issue)
|
|
33255
33984
|
});
|
|
@@ -33517,76 +34246,109 @@ function isNavigationMenuValidationItem(value) {
|
|
|
33517
34246
|
return typeof value.label === "string";
|
|
33518
34247
|
}
|
|
33519
34248
|
|
|
34249
|
+
// ../api/src/navigation/dashboardSiteNav.ts
|
|
34250
|
+
var hiddenDemoSiteNavSurfaceIds = [
|
|
34251
|
+
"site.newsletter"
|
|
34252
|
+
];
|
|
34253
|
+
var hiddenDemoSiteNavIds = new Set(
|
|
34254
|
+
hiddenDemoSiteNavSurfaceIds
|
|
34255
|
+
);
|
|
34256
|
+
var websiteSurfaceIds = [
|
|
34257
|
+
"site.content",
|
|
34258
|
+
"site.footerBlocks",
|
|
34259
|
+
"site.navigation",
|
|
34260
|
+
"site.media",
|
|
34261
|
+
"site.style",
|
|
34262
|
+
"site.performance"
|
|
34263
|
+
];
|
|
34264
|
+
var websiteSurfaceIdSet = new Set(
|
|
34265
|
+
websiteSurfaceIds
|
|
34266
|
+
);
|
|
34267
|
+
|
|
34268
|
+
// ../api/src/navigation/dashboardSettingsNav.ts
|
|
34269
|
+
var hiddenDemoSettingsNavSurfaceIds = [
|
|
34270
|
+
"settings.features",
|
|
34271
|
+
"settings.domains",
|
|
34272
|
+
"settings.bookings",
|
|
34273
|
+
"settings.emails",
|
|
34274
|
+
"settings.team",
|
|
34275
|
+
"settings.billing",
|
|
34276
|
+
"settings.developer",
|
|
34277
|
+
"settings.apiKeys",
|
|
34278
|
+
"settings.backup"
|
|
34279
|
+
];
|
|
34280
|
+
var hiddenDemoSettingsNavIds = new Set(hiddenDemoSettingsNavSurfaceIds);
|
|
34281
|
+
|
|
33520
34282
|
// ../api/src/aiPlayground.ts
|
|
33521
|
-
import { z as
|
|
33522
|
-
var Rfc6902PatchOp =
|
|
34283
|
+
import { z as z66 } from "zod";
|
|
34284
|
+
var Rfc6902PatchOp = z66.discriminatedUnion("op", [
|
|
33523
34285
|
// Standard RFC-6902 operations
|
|
33524
|
-
|
|
33525
|
-
op:
|
|
33526
|
-
path:
|
|
33527
|
-
value:
|
|
34286
|
+
z66.object({
|
|
34287
|
+
op: z66.literal("add"),
|
|
34288
|
+
path: z66.string(),
|
|
34289
|
+
value: z66.unknown()
|
|
33528
34290
|
}),
|
|
33529
|
-
|
|
33530
|
-
op:
|
|
33531
|
-
path:
|
|
34291
|
+
z66.object({
|
|
34292
|
+
op: z66.literal("remove"),
|
|
34293
|
+
path: z66.string()
|
|
33532
34294
|
}),
|
|
33533
|
-
|
|
33534
|
-
op:
|
|
33535
|
-
path:
|
|
33536
|
-
value:
|
|
34295
|
+
z66.object({
|
|
34296
|
+
op: z66.literal("replace"),
|
|
34297
|
+
path: z66.string(),
|
|
34298
|
+
value: z66.unknown()
|
|
33537
34299
|
}),
|
|
33538
|
-
|
|
33539
|
-
op:
|
|
33540
|
-
from:
|
|
33541
|
-
path:
|
|
34300
|
+
z66.object({
|
|
34301
|
+
op: z66.literal("move"),
|
|
34302
|
+
from: z66.string(),
|
|
34303
|
+
path: z66.string()
|
|
33542
34304
|
}),
|
|
33543
|
-
|
|
33544
|
-
op:
|
|
33545
|
-
from:
|
|
33546
|
-
path:
|
|
34305
|
+
z66.object({
|
|
34306
|
+
op: z66.literal("copy"),
|
|
34307
|
+
from: z66.string(),
|
|
34308
|
+
path: z66.string()
|
|
33547
34309
|
}),
|
|
33548
34310
|
// Block-level operations (Phase 2)
|
|
33549
|
-
|
|
33550
|
-
op:
|
|
33551
|
-
blockKind:
|
|
33552
|
-
afterBlockId:
|
|
33553
|
-
content:
|
|
33554
|
-
rationale:
|
|
34311
|
+
z66.object({
|
|
34312
|
+
op: z66.literal("add_block"),
|
|
34313
|
+
blockKind: z66.string(),
|
|
34314
|
+
afterBlockId: z66.string().nullable(),
|
|
34315
|
+
content: z66.record(z66.string(), z66.unknown()),
|
|
34316
|
+
rationale: z66.string()
|
|
33555
34317
|
}),
|
|
33556
|
-
|
|
33557
|
-
op:
|
|
33558
|
-
blockId:
|
|
33559
|
-
rationale:
|
|
34318
|
+
z66.object({
|
|
34319
|
+
op: z66.literal("delete_block"),
|
|
34320
|
+
blockId: z66.string(),
|
|
34321
|
+
rationale: z66.string()
|
|
33560
34322
|
}),
|
|
33561
|
-
|
|
33562
|
-
op:
|
|
33563
|
-
blockId:
|
|
33564
|
-
afterBlockId:
|
|
33565
|
-
rationale:
|
|
34323
|
+
z66.object({
|
|
34324
|
+
op: z66.literal("reorder_block"),
|
|
34325
|
+
blockId: z66.string(),
|
|
34326
|
+
afterBlockId: z66.string().nullable(),
|
|
34327
|
+
rationale: z66.string()
|
|
33566
34328
|
})
|
|
33567
34329
|
]);
|
|
33568
|
-
var PlaygroundProposeRequest =
|
|
33569
|
-
request:
|
|
34330
|
+
var PlaygroundProposeRequest = z66.object({
|
|
34331
|
+
request: z66.string().min(1).max(2e3)
|
|
33570
34332
|
});
|
|
33571
|
-
var MultiPagePatchEnvelope =
|
|
33572
|
-
pageId:
|
|
33573
|
-
blockId:
|
|
34333
|
+
var MultiPagePatchEnvelope = z66.object({
|
|
34334
|
+
pageId: z66.string(),
|
|
34335
|
+
blockId: z66.string().optional(),
|
|
33574
34336
|
// Not present for page-level ops
|
|
33575
|
-
blockKind:
|
|
33576
|
-
blockPurpose:
|
|
33577
|
-
ops:
|
|
33578
|
-
rationale:
|
|
33579
|
-
currentContent:
|
|
34337
|
+
blockKind: z66.string().optional(),
|
|
34338
|
+
blockPurpose: z66.string().optional().nullable(),
|
|
34339
|
+
ops: z66.array(Rfc6902PatchOp),
|
|
34340
|
+
rationale: z66.string(),
|
|
34341
|
+
currentContent: z66.record(z66.string(), z66.unknown()).optional()
|
|
33580
34342
|
});
|
|
33581
|
-
var MultiPageUpdateResponse =
|
|
33582
|
-
patches:
|
|
33583
|
-
assistantMessage:
|
|
33584
|
-
pagesModified:
|
|
33585
|
-
toolCallsUsed:
|
|
34343
|
+
var MultiPageUpdateResponse = z66.object({
|
|
34344
|
+
patches: z66.array(MultiPagePatchEnvelope),
|
|
34345
|
+
assistantMessage: z66.string(),
|
|
34346
|
+
pagesModified: z66.number(),
|
|
34347
|
+
toolCallsUsed: z66.number()
|
|
33586
34348
|
});
|
|
33587
34349
|
|
|
33588
34350
|
// src/config/content-validation.ts
|
|
33589
|
-
import { z as
|
|
34351
|
+
import { z as z67 } from "zod";
|
|
33590
34352
|
|
|
33591
34353
|
// src/types/block-kinds.ts
|
|
33592
34354
|
var SYSTEM_BLOCK_KINDS = [
|
|
@@ -33740,32 +34502,32 @@ function describeInvalidBindingTransform(transform) {
|
|
|
33740
34502
|
}
|
|
33741
34503
|
|
|
33742
34504
|
// src/config/content-validation.ts
|
|
33743
|
-
var jsonDataSchema =
|
|
33744
|
-
var contentTypeKeySchema =
|
|
34505
|
+
var jsonDataSchema = z67.record(z67.string(), z67.any());
|
|
34506
|
+
var contentTypeKeySchema = z67.string().min(1).regex(
|
|
33745
34507
|
/^[a-z][a-z0-9-]*$/,
|
|
33746
34508
|
"Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
|
|
33747
34509
|
);
|
|
33748
|
-
var templateConfigSchemaForward =
|
|
33749
|
-
blocks:
|
|
33750
|
-
|
|
33751
|
-
identifier:
|
|
33752
|
-
kind:
|
|
33753
|
-
scope:
|
|
33754
|
-
bindings:
|
|
33755
|
-
content:
|
|
34510
|
+
var templateConfigSchemaForward = z67.object({
|
|
34511
|
+
blocks: z67.array(
|
|
34512
|
+
z67.object({
|
|
34513
|
+
identifier: z67.string().min(1),
|
|
34514
|
+
kind: z67.string(),
|
|
34515
|
+
scope: z67.enum(["entry", "template"]),
|
|
34516
|
+
bindings: z67.record(z67.string(), z67.any()).optional(),
|
|
34517
|
+
content: z67.record(z67.string(), z67.any()).optional()
|
|
33756
34518
|
})
|
|
33757
34519
|
)
|
|
33758
34520
|
}).optional();
|
|
33759
|
-
var contentTypeConfigSchema =
|
|
34521
|
+
var contentTypeConfigSchema = z67.object({
|
|
33760
34522
|
key: contentTypeKeySchema,
|
|
33761
|
-
name:
|
|
33762
|
-
description:
|
|
33763
|
-
hasPages:
|
|
33764
|
-
routePattern:
|
|
34523
|
+
name: z67.string().min(1),
|
|
34524
|
+
description: z67.string().optional(),
|
|
34525
|
+
hasPages: z67.boolean(),
|
|
34526
|
+
routePattern: z67.string().optional(),
|
|
33765
34527
|
// Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
|
|
33766
|
-
fields:
|
|
33767
|
-
titleField:
|
|
33768
|
-
isSingleton:
|
|
34528
|
+
fields: z67.array(z67.any()).min(1, "At least one field is required"),
|
|
34529
|
+
titleField: z67.string().optional(),
|
|
34530
|
+
isSingleton: z67.boolean().optional().default(false),
|
|
33769
34531
|
template: templateConfigSchemaForward
|
|
33770
34532
|
}).refine(
|
|
33771
34533
|
(data) => {
|
|
@@ -33787,7 +34549,7 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33787
34549
|
}
|
|
33788
34550
|
if (!data.routePattern) {
|
|
33789
34551
|
ctx.addIssue({
|
|
33790
|
-
code:
|
|
34552
|
+
code: z67.ZodIssueCode.custom,
|
|
33791
34553
|
path: ["routePattern"],
|
|
33792
34554
|
message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
|
|
33793
34555
|
});
|
|
@@ -33796,7 +34558,7 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33796
34558
|
const parseResult = safeParseRouteTemplate(data.routePattern);
|
|
33797
34559
|
if (!parseResult.success) {
|
|
33798
34560
|
ctx.addIssue({
|
|
33799
|
-
code:
|
|
34561
|
+
code: z67.ZodIssueCode.custom,
|
|
33800
34562
|
path: ["routePattern"],
|
|
33801
34563
|
message: describeRouteTemplateParseError(parseResult.error)
|
|
33802
34564
|
});
|
|
@@ -33804,44 +34566,44 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33804
34566
|
}
|
|
33805
34567
|
if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
|
|
33806
34568
|
ctx.addIssue({
|
|
33807
|
-
code:
|
|
34569
|
+
code: z67.ZodIssueCode.custom,
|
|
33808
34570
|
path: ["routePattern"],
|
|
33809
34571
|
message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
|
|
33810
34572
|
});
|
|
33811
34573
|
}
|
|
33812
34574
|
});
|
|
33813
|
-
var fieldBindingSchema =
|
|
33814
|
-
source:
|
|
33815
|
-
path:
|
|
34575
|
+
var fieldBindingSchema = z67.object({
|
|
34576
|
+
source: z67.literal("field"),
|
|
34577
|
+
path: z67.string().min(1, "Field path is required")
|
|
33816
34578
|
});
|
|
33817
|
-
var metaBindingSchema =
|
|
33818
|
-
source:
|
|
33819
|
-
path:
|
|
34579
|
+
var metaBindingSchema = z67.object({
|
|
34580
|
+
source: z67.literal("meta"),
|
|
34581
|
+
path: z67.enum(TEMPLATE_BINDING_META_PATHS, {
|
|
33820
34582
|
error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
|
|
33821
34583
|
})
|
|
33822
34584
|
});
|
|
33823
|
-
var literalBindingSchema =
|
|
33824
|
-
source:
|
|
33825
|
-
value:
|
|
34585
|
+
var literalBindingSchema = z67.object({
|
|
34586
|
+
source: z67.literal("literal"),
|
|
34587
|
+
value: z67.unknown()
|
|
33826
34588
|
});
|
|
33827
|
-
var transformBindingSchema =
|
|
33828
|
-
source:
|
|
33829
|
-
path:
|
|
33830
|
-
transform:
|
|
34589
|
+
var transformBindingSchema = z67.object({
|
|
34590
|
+
source: z67.literal("transform"),
|
|
34591
|
+
path: z67.string().min(1, "Transform path is required"),
|
|
34592
|
+
transform: z67.enum(BINDING_TRANSFORM_VALUES, {
|
|
33831
34593
|
error: (issue) => describeInvalidBindingTransform(String(issue.input))
|
|
33832
34594
|
})
|
|
33833
34595
|
});
|
|
33834
|
-
var baseBindingSchema =
|
|
34596
|
+
var baseBindingSchema = z67.discriminatedUnion("source", [
|
|
33835
34597
|
fieldBindingSchema,
|
|
33836
34598
|
metaBindingSchema,
|
|
33837
34599
|
literalBindingSchema,
|
|
33838
34600
|
transformBindingSchema
|
|
33839
34601
|
]);
|
|
33840
|
-
var fallbackBindingSchema =
|
|
33841
|
-
source:
|
|
33842
|
-
sources:
|
|
34602
|
+
var fallbackBindingSchema = z67.object({
|
|
34603
|
+
source: z67.literal("fallback"),
|
|
34604
|
+
sources: z67.array(z67.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
|
|
33843
34605
|
});
|
|
33844
|
-
var bindingSourceSchema =
|
|
34606
|
+
var bindingSourceSchema = z67.union([
|
|
33845
34607
|
baseBindingSchema,
|
|
33846
34608
|
fallbackBindingSchema
|
|
33847
34609
|
]);
|
|
@@ -33855,12 +34617,12 @@ function isValidBlockKind(kind) {
|
|
|
33855
34617
|
return false;
|
|
33856
34618
|
}
|
|
33857
34619
|
var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
|
|
33858
|
-
var blockKindSchema =
|
|
33859
|
-
var templateBlockConfigSchema =
|
|
33860
|
-
identifier:
|
|
34620
|
+
var blockKindSchema = z67.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
|
|
34621
|
+
var templateBlockConfigSchema = z67.object({
|
|
34622
|
+
identifier: z67.string().min(1, "Block identifier is required"),
|
|
33861
34623
|
kind: blockKindSchema,
|
|
33862
|
-
scope:
|
|
33863
|
-
bindings:
|
|
34624
|
+
scope: z67.enum(["entry", "template"]),
|
|
34625
|
+
bindings: z67.record(z67.string(), bindingSourceSchema).optional(),
|
|
33864
34626
|
content: jsonDataSchema.optional()
|
|
33865
34627
|
}).refine(
|
|
33866
34628
|
(data) => {
|
|
@@ -33879,8 +34641,8 @@ var templateBlockConfigSchema = z66.object({
|
|
|
33879
34641
|
},
|
|
33880
34642
|
{ message: "Template-scoped blocks should define static content, not bindings" }
|
|
33881
34643
|
);
|
|
33882
|
-
var templateConfigSchema =
|
|
33883
|
-
blocks:
|
|
34644
|
+
var templateConfigSchema = z67.object({
|
|
34645
|
+
blocks: z67.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
|
|
33884
34646
|
}).refine(
|
|
33885
34647
|
(data) => {
|
|
33886
34648
|
const identifiers = data.blocks.map((b) => b.identifier);
|
|
@@ -33889,77 +34651,77 @@ var templateConfigSchema = z66.object({
|
|
|
33889
34651
|
},
|
|
33890
34652
|
{ message: "Template block identifiers must be unique" }
|
|
33891
34653
|
);
|
|
33892
|
-
var blockConfigSchema =
|
|
34654
|
+
var blockConfigSchema = z67.object({
|
|
33893
34655
|
kind: blockKindSchema,
|
|
33894
34656
|
content: jsonDataSchema,
|
|
33895
|
-
orderIndex:
|
|
33896
|
-
});
|
|
33897
|
-
var pageConfigSchema =
|
|
33898
|
-
identifier:
|
|
33899
|
-
title:
|
|
33900
|
-
path:
|
|
33901
|
-
purpose:
|
|
33902
|
-
blocks:
|
|
33903
|
-
status:
|
|
33904
|
-
metaTitle:
|
|
33905
|
-
metaDescription:
|
|
33906
|
-
});
|
|
33907
|
-
var entryConfigSchema =
|
|
33908
|
-
identifier:
|
|
33909
|
-
contentType:
|
|
34657
|
+
orderIndex: z67.number().optional()
|
|
34658
|
+
});
|
|
34659
|
+
var pageConfigSchema = z67.object({
|
|
34660
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34661
|
+
title: z67.string().min(1, "Title is required"),
|
|
34662
|
+
path: z67.string().regex(/^\//, "Path must start with /"),
|
|
34663
|
+
purpose: z67.string().default("content"),
|
|
34664
|
+
blocks: z67.array(blockConfigSchema).optional(),
|
|
34665
|
+
status: z67.enum(["draft", "published"]).default("draft"),
|
|
34666
|
+
metaTitle: z67.string().optional(),
|
|
34667
|
+
metaDescription: z67.string().optional()
|
|
34668
|
+
});
|
|
34669
|
+
var entryConfigSchema = z67.object({
|
|
34670
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34671
|
+
contentType: z67.string().min(1, "Content type is required"),
|
|
33910
34672
|
data: jsonDataSchema,
|
|
33911
|
-
status:
|
|
33912
|
-
slug:
|
|
33913
|
-
summary:
|
|
34673
|
+
status: z67.enum(["draft", "published"]).default("draft"),
|
|
34674
|
+
slug: z67.string().optional(),
|
|
34675
|
+
summary: z67.string().optional(),
|
|
33914
34676
|
// Hard remove legacy config-only titles: titles must live in entry `data`.
|
|
33915
|
-
title:
|
|
34677
|
+
title: z67.any().optional().refine((value) => value === void 0, {
|
|
33916
34678
|
message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
|
|
33917
34679
|
}),
|
|
33918
|
-
metaTitle:
|
|
33919
|
-
metaDescription:
|
|
34680
|
+
metaTitle: z67.string().optional(),
|
|
34681
|
+
metaDescription: z67.string().optional()
|
|
33920
34682
|
});
|
|
33921
|
-
var dropdownLinkSchema =
|
|
33922
|
-
kind:
|
|
34683
|
+
var dropdownLinkSchema = z67.object({
|
|
34684
|
+
kind: z67.literal("dropdown")
|
|
33923
34685
|
});
|
|
33924
|
-
var navigationLinkSchema =
|
|
34686
|
+
var navigationLinkSchema = z67.discriminatedUnion("kind", [
|
|
33925
34687
|
...navigationLinkInputSchemaOptions,
|
|
33926
34688
|
dropdownLinkSchema
|
|
33927
34689
|
]);
|
|
33928
|
-
var baseNavigationItemSchema =
|
|
33929
|
-
label:
|
|
34690
|
+
var baseNavigationItemSchema = z67.object({
|
|
34691
|
+
label: z67.string().min(1, "Label is required"),
|
|
33930
34692
|
link: navigationLinkSchema,
|
|
33931
|
-
isCta:
|
|
34693
|
+
isCta: z67.boolean().optional()
|
|
33932
34694
|
});
|
|
33933
34695
|
var navigationItemConfigSchema = baseNavigationItemSchema.extend({
|
|
33934
|
-
children:
|
|
33935
|
-
});
|
|
33936
|
-
var navigationMenuConfigSchema =
|
|
33937
|
-
identifier:
|
|
33938
|
-
name:
|
|
33939
|
-
isPrimary:
|
|
33940
|
-
isFooter:
|
|
33941
|
-
items:
|
|
34696
|
+
children: z67.lazy(() => z67.array(navigationItemConfigSchema)).optional()
|
|
34697
|
+
});
|
|
34698
|
+
var navigationMenuConfigSchema = z67.object({
|
|
34699
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34700
|
+
name: z67.string().min(1, "Name is required"),
|
|
34701
|
+
isPrimary: z67.boolean().optional(),
|
|
34702
|
+
isFooter: z67.boolean().optional(),
|
|
34703
|
+
items: z67.array(navigationItemConfigSchema)
|
|
33942
34704
|
}).superRefine((menu, ctx) => {
|
|
33943
34705
|
const portalStats = collectPortalLinkStats(
|
|
33944
34706
|
menu.items
|
|
33945
34707
|
);
|
|
33946
34708
|
if (portalStats.count > 1) {
|
|
33947
34709
|
ctx.addIssue({
|
|
33948
|
-
code:
|
|
34710
|
+
code: z67.ZodIssueCode.custom,
|
|
33949
34711
|
message: "Only one portal link is allowed per navigation menu",
|
|
33950
34712
|
path: ["items"]
|
|
33951
34713
|
});
|
|
33952
34714
|
}
|
|
33953
34715
|
if (portalStats.nestedLabels.length > 0) {
|
|
33954
34716
|
ctx.addIssue({
|
|
33955
|
-
code:
|
|
34717
|
+
code: z67.ZodIssueCode.custom,
|
|
33956
34718
|
message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
|
|
33957
34719
|
path: ["items"]
|
|
33958
34720
|
});
|
|
33959
34721
|
}
|
|
33960
34722
|
if (portalStats.withChildrenLabels.length > 0) {
|
|
33961
34723
|
ctx.addIssue({
|
|
33962
|
-
code:
|
|
34724
|
+
code: z67.ZodIssueCode.custom,
|
|
33963
34725
|
message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
|
|
33964
34726
|
path: ["items"]
|
|
33965
34727
|
});
|
|
@@ -33969,44 +34731,44 @@ var navigationMenuConfigSchema = z66.object({
|
|
|
33969
34731
|
);
|
|
33970
34732
|
if (cartStats.nestedLabels.length > 0) {
|
|
33971
34733
|
ctx.addIssue({
|
|
33972
|
-
code:
|
|
34734
|
+
code: z67.ZodIssueCode.custom,
|
|
33973
34735
|
message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
|
|
33974
34736
|
path: ["items"]
|
|
33975
34737
|
});
|
|
33976
34738
|
}
|
|
33977
34739
|
if (cartStats.withChildrenLabels.length > 0) {
|
|
33978
34740
|
ctx.addIssue({
|
|
33979
|
-
code:
|
|
34741
|
+
code: z67.ZodIssueCode.custom,
|
|
33980
34742
|
message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
|
|
33981
34743
|
path: ["items"]
|
|
33982
34744
|
});
|
|
33983
34745
|
}
|
|
33984
34746
|
if (cartStats.ctaLabels.length > 0) {
|
|
33985
34747
|
ctx.addIssue({
|
|
33986
|
-
code:
|
|
34748
|
+
code: z67.ZodIssueCode.custom,
|
|
33987
34749
|
message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
|
|
33988
34750
|
path: ["items"]
|
|
33989
34751
|
});
|
|
33990
34752
|
}
|
|
33991
34753
|
if (cartStats.missingVisibleTextLabels.length > 0) {
|
|
33992
34754
|
ctx.addIssue({
|
|
33993
|
-
code:
|
|
34755
|
+
code: z67.ZodIssueCode.custom,
|
|
33994
34756
|
message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
|
|
33995
34757
|
path: ["items"]
|
|
33996
34758
|
});
|
|
33997
34759
|
}
|
|
33998
34760
|
});
|
|
33999
|
-
var siteSettingsConfigSchema =
|
|
34000
|
-
homepagePath:
|
|
34001
|
-
siteTitle:
|
|
34002
|
-
siteDescription:
|
|
34003
|
-
defaultTemplates:
|
|
34761
|
+
var siteSettingsConfigSchema = z67.object({
|
|
34762
|
+
homepagePath: z67.string().optional(),
|
|
34763
|
+
siteTitle: z67.string().optional(),
|
|
34764
|
+
siteDescription: z67.string().optional(),
|
|
34765
|
+
defaultTemplates: z67.record(z67.string(), z67.string()).optional()
|
|
34004
34766
|
});
|
|
34005
|
-
var contentConfigBaseSchema =
|
|
34006
|
-
contentTypes:
|
|
34007
|
-
entries:
|
|
34008
|
-
pages:
|
|
34009
|
-
navigationMenus:
|
|
34767
|
+
var contentConfigBaseSchema = z67.object({
|
|
34768
|
+
contentTypes: z67.array(contentTypeConfigSchema).optional(),
|
|
34769
|
+
entries: z67.array(entryConfigSchema).optional(),
|
|
34770
|
+
pages: z67.array(pageConfigSchema).optional(),
|
|
34771
|
+
navigationMenus: z67.array(navigationMenuConfigSchema).optional(),
|
|
34010
34772
|
settings: siteSettingsConfigSchema.optional()
|
|
34011
34773
|
});
|
|
34012
34774
|
var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
@@ -34015,7 +34777,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34015
34777
|
const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
|
|
34016
34778
|
if (duplicateKeys.length > 0) {
|
|
34017
34779
|
ctx.addIssue({
|
|
34018
|
-
code:
|
|
34780
|
+
code: z67.ZodIssueCode.custom,
|
|
34019
34781
|
message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
|
|
34020
34782
|
path: ["contentTypes"]
|
|
34021
34783
|
});
|
|
@@ -34026,7 +34788,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34026
34788
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34027
34789
|
if (duplicateIds.length > 0) {
|
|
34028
34790
|
ctx.addIssue({
|
|
34029
|
-
code:
|
|
34791
|
+
code: z67.ZodIssueCode.custom,
|
|
34030
34792
|
message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34031
34793
|
path: ["pages"]
|
|
34032
34794
|
});
|
|
@@ -34035,7 +34797,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34035
34797
|
const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
|
|
34036
34798
|
if (duplicatePaths.length > 0) {
|
|
34037
34799
|
ctx.addIssue({
|
|
34038
|
-
code:
|
|
34800
|
+
code: z67.ZodIssueCode.custom,
|
|
34039
34801
|
message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
|
|
34040
34802
|
path: ["pages"]
|
|
34041
34803
|
});
|
|
@@ -34046,7 +34808,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34046
34808
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34047
34809
|
if (duplicateIds.length > 0) {
|
|
34048
34810
|
ctx.addIssue({
|
|
34049
|
-
code:
|
|
34811
|
+
code: z67.ZodIssueCode.custom,
|
|
34050
34812
|
message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34051
34813
|
path: ["entries"]
|
|
34052
34814
|
});
|
|
@@ -34057,7 +34819,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34057
34819
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34058
34820
|
if (duplicateIds.length > 0) {
|
|
34059
34821
|
ctx.addIssue({
|
|
34060
|
-
code:
|
|
34822
|
+
code: z67.ZodIssueCode.custom,
|
|
34061
34823
|
message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34062
34824
|
path: ["navigationMenus"]
|
|
34063
34825
|
});
|
|
@@ -34071,7 +34833,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34071
34833
|
const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
|
|
34072
34834
|
if (entriesForType.length > 1) {
|
|
34073
34835
|
ctx.addIssue({
|
|
34074
|
-
code:
|
|
34836
|
+
code: z67.ZodIssueCode.custom,
|
|
34075
34837
|
message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
|
|
34076
34838
|
path: ["entries"]
|
|
34077
34839
|
});
|
|
@@ -34184,18 +34946,18 @@ function validateLayout(layout) {
|
|
|
34184
34946
|
}
|
|
34185
34947
|
|
|
34186
34948
|
// src/config/dashboard-validation.ts
|
|
34187
|
-
import { z as
|
|
34188
|
-
var navIdListSchema2 =
|
|
34949
|
+
import { z as z68 } from "zod";
|
|
34950
|
+
var navIdListSchema2 = z68.preprocess((value) => {
|
|
34189
34951
|
if (!Array.isArray(value)) return void 0;
|
|
34190
34952
|
const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
|
|
34191
34953
|
return filtered.length > 0 ? filtered : void 0;
|
|
34192
|
-
},
|
|
34193
|
-
var dashboardNavVisibilityBaseSchema2 =
|
|
34194
|
-
mode:
|
|
34954
|
+
}, z68.array(z68.string()).max(200, "Maximum 200 nav IDs").optional());
|
|
34955
|
+
var dashboardNavVisibilityBaseSchema2 = z68.object({
|
|
34956
|
+
mode: z68.enum(["augment", "restrict"]).optional(),
|
|
34195
34957
|
allowIds: navIdListSchema2,
|
|
34196
34958
|
denyIds: navIdListSchema2
|
|
34197
34959
|
}).strip();
|
|
34198
|
-
var dashboardNavVisibilityRolesSchema2 =
|
|
34960
|
+
var dashboardNavVisibilityRolesSchema2 = z68.object({
|
|
34199
34961
|
administrator: dashboardNavVisibilityBaseSchema2.optional(),
|
|
34200
34962
|
editor: dashboardNavVisibilityBaseSchema2.optional(),
|
|
34201
34963
|
team_member: dashboardNavVisibilityBaseSchema2.optional()
|
|
@@ -34203,20 +34965,20 @@ var dashboardNavVisibilityRolesSchema2 = z67.object({
|
|
|
34203
34965
|
var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
|
|
34204
34966
|
roles: dashboardNavVisibilityRolesSchema2
|
|
34205
34967
|
}).strip();
|
|
34206
|
-
var dashboardNavigationConfigSchema2 =
|
|
34968
|
+
var dashboardNavigationConfigSchema2 = z68.object({
|
|
34207
34969
|
siteNav: dashboardNavVisibilitySchema2.optional(),
|
|
34208
34970
|
settingsNav: dashboardNavVisibilitySchema2.optional()
|
|
34209
34971
|
}).strip();
|
|
34210
|
-
var dashboardConfigSchema2 =
|
|
34211
|
-
previewEditingEnabled:
|
|
34972
|
+
var dashboardConfigSchema2 = z68.object({
|
|
34973
|
+
previewEditingEnabled: z68.boolean().optional(),
|
|
34212
34974
|
navigation: dashboardNavigationConfigSchema2.optional()
|
|
34213
34975
|
}).strip();
|
|
34214
34976
|
|
|
34215
34977
|
// src/zod/titleSourceSchema.ts
|
|
34216
|
-
import { z as
|
|
34217
|
-
var titleSourceValueSchema =
|
|
34218
|
-
|
|
34219
|
-
|
|
34978
|
+
import { z as z69 } from "zod";
|
|
34979
|
+
var titleSourceValueSchema = z69.union([
|
|
34980
|
+
z69.string().min(1),
|
|
34981
|
+
z69.array(z69.string().min(1)).min(1)
|
|
34220
34982
|
]);
|
|
34221
34983
|
|
|
34222
34984
|
// src/data/prefetchBlockData.ts
|
|
@@ -34235,11 +34997,11 @@ var SUPPORTED_LOADER_ENDPOINTS2 = [
|
|
|
34235
34997
|
];
|
|
34236
34998
|
|
|
34237
34999
|
// src/config/validation.ts
|
|
34238
|
-
var sdkThemePaletteSchema2 =
|
|
34239
|
-
var sdkThemeConfigSchema2 =
|
|
35000
|
+
var sdkThemePaletteSchema2 = z70.record(z70.string(), z70.string());
|
|
35001
|
+
var sdkThemeConfigSchema2 = z70.object({
|
|
34240
35002
|
palette: sdkThemePaletteSchema2
|
|
34241
35003
|
});
|
|
34242
|
-
var sdkSiteUrlSchema =
|
|
35004
|
+
var sdkSiteUrlSchema = z70.string().url("Must be a valid URL").refine((url) => {
|
|
34243
35005
|
try {
|
|
34244
35006
|
const parsed = new URL(url);
|
|
34245
35007
|
const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
|
|
@@ -34248,97 +35010,97 @@ var sdkSiteUrlSchema = z69.string().url("Must be a valid URL").refine((url) => {
|
|
|
34248
35010
|
return false;
|
|
34249
35011
|
}
|
|
34250
35012
|
}, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
|
|
34251
|
-
var sectionBackgroundSchema =
|
|
34252
|
-
id:
|
|
34253
|
-
label:
|
|
34254
|
-
token:
|
|
35013
|
+
var sectionBackgroundSchema = z70.object({
|
|
35014
|
+
id: z70.string(),
|
|
35015
|
+
label: z70.string(),
|
|
35016
|
+
token: z70.string()
|
|
34255
35017
|
// Reference to theme palette token
|
|
34256
35018
|
});
|
|
34257
|
-
var sectionSpacingSchema =
|
|
34258
|
-
var containerMaxWidthSchema =
|
|
34259
|
-
var containerAlignmentSchema =
|
|
34260
|
-
var sectionOptionsSchema =
|
|
34261
|
-
backgroundColor:
|
|
34262
|
-
backgroundImage:
|
|
34263
|
-
backgroundGradient:
|
|
34264
|
-
spacing:
|
|
34265
|
-
|
|
34266
|
-
|
|
35019
|
+
var sectionSpacingSchema = z70.enum(["compact", "default", "spacious"]);
|
|
35020
|
+
var containerMaxWidthSchema = z70.enum(["narrow", "default", "wide", "full"]);
|
|
35021
|
+
var containerAlignmentSchema = z70.enum(["left", "center", "right"]);
|
|
35022
|
+
var sectionOptionsSchema = z70.object({
|
|
35023
|
+
backgroundColor: z70.boolean().optional(),
|
|
35024
|
+
backgroundImage: z70.boolean().optional(),
|
|
35025
|
+
backgroundGradient: z70.boolean().optional(),
|
|
35026
|
+
spacing: z70.union([
|
|
35027
|
+
z70.array(sectionSpacingSchema),
|
|
35028
|
+
z70.boolean()
|
|
34267
35029
|
]).optional(),
|
|
34268
|
-
textColor:
|
|
35030
|
+
textColor: z70.boolean().optional()
|
|
34269
35031
|
}).optional();
|
|
34270
|
-
var containerOptionsSchema =
|
|
34271
|
-
maxWidth:
|
|
34272
|
-
|
|
34273
|
-
|
|
35032
|
+
var containerOptionsSchema = z70.object({
|
|
35033
|
+
maxWidth: z70.union([
|
|
35034
|
+
z70.array(containerMaxWidthSchema),
|
|
35035
|
+
z70.boolean()
|
|
34274
35036
|
]).optional(),
|
|
34275
|
-
alignment:
|
|
34276
|
-
|
|
34277
|
-
|
|
35037
|
+
alignment: z70.union([
|
|
35038
|
+
z70.array(containerAlignmentSchema),
|
|
35039
|
+
z70.boolean()
|
|
34278
35040
|
]).optional()
|
|
34279
35041
|
}).optional();
|
|
34280
|
-
var siteStyleConfigSchema =
|
|
34281
|
-
sectionBackgrounds:
|
|
35042
|
+
var siteStyleConfigSchema = z70.object({
|
|
35043
|
+
sectionBackgrounds: z70.array(sectionBackgroundSchema).optional(),
|
|
34282
35044
|
sectionOptions: sectionOptionsSchema,
|
|
34283
35045
|
containerOptions: containerOptionsSchema
|
|
34284
35046
|
}).optional();
|
|
34285
|
-
var sdkLoaderEndpointSchema2 =
|
|
35047
|
+
var sdkLoaderEndpointSchema2 = z70.enum(SUPPORTED_LOADER_ENDPOINTS2);
|
|
34286
35048
|
var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
|
|
34287
|
-
var loaderTransformStepSchema =
|
|
34288
|
-
id:
|
|
35049
|
+
var loaderTransformStepSchema = z70.object({
|
|
35050
|
+
id: z70.string().refine((id) => allowedTransformIds.has(id), {
|
|
34289
35051
|
message: "Unknown transform id"
|
|
34290
35052
|
}),
|
|
34291
|
-
options:
|
|
35053
|
+
options: z70.record(z70.string(), z70.unknown()).optional()
|
|
34292
35054
|
});
|
|
34293
|
-
var loaderParamBindingSchema2 =
|
|
34294
|
-
$bind:
|
|
34295
|
-
from:
|
|
35055
|
+
var loaderParamBindingSchema2 = z70.object({
|
|
35056
|
+
$bind: z70.object({
|
|
35057
|
+
from: z70.string().min(1, "Binding path is required"),
|
|
34296
35058
|
// Loader params are ultimately string-normalized for query strings, so fallbacks should
|
|
34297
35059
|
// stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
|
|
34298
35060
|
// more complex values into a string.
|
|
34299
|
-
fallback:
|
|
34300
|
-
transforms:
|
|
34301
|
-
pick:
|
|
34302
|
-
coerce:
|
|
35061
|
+
fallback: z70.union([z70.string(), z70.number(), z70.boolean(), z70.null()]).optional(),
|
|
35062
|
+
transforms: z70.array(loaderTransformStepSchema).default([]),
|
|
35063
|
+
pick: z70.enum(["value", "collection", "context"]).default("value"),
|
|
35064
|
+
coerce: z70.enum(["number", "boolean", "string"]).optional()
|
|
34303
35065
|
})
|
|
34304
35066
|
});
|
|
34305
|
-
var loaderParamValueSchema2 =
|
|
34306
|
-
|
|
34307
|
-
|
|
34308
|
-
|
|
35067
|
+
var loaderParamValueSchema2 = z70.union([
|
|
35068
|
+
z70.string(),
|
|
35069
|
+
z70.number(),
|
|
35070
|
+
z70.boolean(),
|
|
34309
35071
|
loaderParamBindingSchema2
|
|
34310
35072
|
]);
|
|
34311
|
-
var loaderWhenValueSchema =
|
|
34312
|
-
|
|
35073
|
+
var loaderWhenValueSchema = z70.union([
|
|
35074
|
+
z70.boolean(),
|
|
34313
35075
|
loaderParamBindingSchema2
|
|
34314
35076
|
]);
|
|
34315
|
-
var sdkConfigLoaderSchema2 =
|
|
35077
|
+
var sdkConfigLoaderSchema2 = z70.object({
|
|
34316
35078
|
endpoint: sdkLoaderEndpointSchema2,
|
|
34317
|
-
params:
|
|
34318
|
-
mode:
|
|
35079
|
+
params: z70.record(z70.string(), loaderParamValueSchema2),
|
|
35080
|
+
mode: z70.enum(["server", "client"]).default("server"),
|
|
34319
35081
|
when: loaderWhenValueSchema.optional()
|
|
34320
35082
|
});
|
|
34321
|
-
var sdkDataLoadersSchema2 =
|
|
35083
|
+
var sdkDataLoadersSchema2 = z70.record(z70.string(), sdkConfigLoaderSchema2).refine(
|
|
34322
35084
|
(loaders) => Object.keys(loaders).length <= 5,
|
|
34323
35085
|
{ message: "Maximum 5 data loaders per block" }
|
|
34324
35086
|
).optional();
|
|
34325
|
-
var fieldSelectOptionSchema =
|
|
34326
|
-
value:
|
|
34327
|
-
label:
|
|
35087
|
+
var fieldSelectOptionSchema = z70.object({
|
|
35088
|
+
value: z70.string().min(1, "Option value is required"),
|
|
35089
|
+
label: z70.string().min(1, "Option label is required")
|
|
34328
35090
|
});
|
|
34329
|
-
var blockFieldConfigSchema =
|
|
34330
|
-
options:
|
|
35091
|
+
var blockFieldConfigSchema = z70.object({
|
|
35092
|
+
options: z70.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
|
|
34331
35093
|
});
|
|
34332
|
-
var blockFieldOptionsSchema =
|
|
34333
|
-
|
|
35094
|
+
var blockFieldOptionsSchema = z70.record(
|
|
35095
|
+
z70.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
|
|
34334
35096
|
message: "Block ID must be 'block.*' or 'custom.*' format"
|
|
34335
35097
|
}),
|
|
34336
|
-
|
|
34337
|
-
|
|
35098
|
+
z70.record(
|
|
35099
|
+
z70.string().min(1, "Field ID is required"),
|
|
34338
35100
|
blockFieldConfigSchema
|
|
34339
35101
|
)
|
|
34340
35102
|
).optional();
|
|
34341
|
-
var blockFieldExtensionSchema =
|
|
35103
|
+
var blockFieldExtensionSchema = z70.object({
|
|
34342
35104
|
fields: fieldSchema.array().min(1, "At least one field is required")
|
|
34343
35105
|
}).refine(
|
|
34344
35106
|
(data) => {
|
|
@@ -34352,10 +35114,10 @@ var blockFieldExtensionSchema = z69.object({
|
|
|
34352
35114
|
message: "Required fields must have a defaultValue to support existing blocks"
|
|
34353
35115
|
}
|
|
34354
35116
|
);
|
|
34355
|
-
var blockFieldExtensionsMapSchema =
|
|
35117
|
+
var blockFieldExtensionsMapSchema = z70.record(
|
|
34356
35118
|
// System blocks are kebab-case: block.body-text, block.event-calendar, ...
|
|
34357
35119
|
// Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
|
|
34358
|
-
|
|
35120
|
+
z70.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
|
|
34359
35121
|
message: "Block ID must be 'block.*' format (system blocks only)"
|
|
34360
35122
|
}),
|
|
34361
35123
|
blockFieldExtensionSchema
|
|
@@ -34371,7 +35133,7 @@ var blockFieldExtensionsMapSchema = z69.record(
|
|
|
34371
35133
|
(field) => field.id === collision.fieldId
|
|
34372
35134
|
);
|
|
34373
35135
|
ctx.addIssue({
|
|
34374
|
-
code:
|
|
35136
|
+
code: z70.ZodIssueCode.custom,
|
|
34375
35137
|
message: collision.message,
|
|
34376
35138
|
path: [
|
|
34377
35139
|
APPOINTMENT_BOOKING_BLOCK_ID,
|
|
@@ -34437,24 +35199,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
|
|
|
34437
35199
|
}
|
|
34438
35200
|
return conflicts;
|
|
34439
35201
|
}
|
|
34440
|
-
var syncConfigSchema =
|
|
34441
|
-
existingEntries:
|
|
35202
|
+
var syncConfigSchema = z70.object({
|
|
35203
|
+
existingEntries: z70.enum(["skip", "update"]).optional()
|
|
34442
35204
|
}).optional();
|
|
34443
|
-
var deployConfigSchema =
|
|
34444
|
-
verifyCommand:
|
|
34445
|
-
prebuildOutput:
|
|
35205
|
+
var deployConfigSchema = z70.object({
|
|
35206
|
+
verifyCommand: z70.string().optional(),
|
|
35207
|
+
prebuildOutput: z70.string().optional()
|
|
34446
35208
|
}).optional();
|
|
34447
|
-
var sdkCustomBlockSchema =
|
|
35209
|
+
var sdkCustomBlockSchema = z70.object({
|
|
34448
35210
|
// Block ID must start with 'custom.'
|
|
34449
|
-
id:
|
|
35211
|
+
id: z70.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
|
|
34450
35212
|
message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
|
|
34451
35213
|
}),
|
|
34452
|
-
title:
|
|
35214
|
+
title: z70.string().min(1, "Title is required"),
|
|
34453
35215
|
titleSource: titleSourceValueSchema.optional(),
|
|
34454
|
-
description:
|
|
35216
|
+
description: z70.string().optional(),
|
|
34455
35217
|
category: blockCategoryEnum,
|
|
34456
|
-
icon:
|
|
34457
|
-
tags:
|
|
35218
|
+
icon: z70.string().optional(),
|
|
35219
|
+
tags: z70.array(z70.string()).optional(),
|
|
34458
35220
|
// Reuse the exact field schema from @riverbankcms/blocks - all field types supported
|
|
34459
35221
|
fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
|
|
34460
35222
|
// Data loaders for CMS endpoints
|
|
@@ -34462,14 +35224,14 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34462
35224
|
// Optional declarative layout - when present, block can render without React override
|
|
34463
35225
|
layout: NodeSchema.optional(),
|
|
34464
35226
|
// Optional variants system (preferred when a block has multiple structural layouts)
|
|
34465
|
-
variants:
|
|
34466
|
-
defaultVariant:
|
|
34467
|
-
variantOptions:
|
|
34468
|
-
|
|
34469
|
-
|
|
34470
|
-
label:
|
|
34471
|
-
description:
|
|
34472
|
-
icon:
|
|
35227
|
+
variants: z70.record(z70.string().min(1), NodeSchema).optional(),
|
|
35228
|
+
defaultVariant: z70.string().min(1).optional(),
|
|
35229
|
+
variantOptions: z70.record(
|
|
35230
|
+
z70.string().min(1),
|
|
35231
|
+
z70.object({
|
|
35232
|
+
label: z70.string().min(1).optional(),
|
|
35233
|
+
description: z70.string().min(1).optional(),
|
|
35234
|
+
icon: z70.string().min(1).optional()
|
|
34473
35235
|
})
|
|
34474
35236
|
).optional()
|
|
34475
35237
|
}).superRefine((data, ctx) => {
|
|
@@ -34480,7 +35242,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34480
35242
|
const exists = fields3.some((field) => field.id === source);
|
|
34481
35243
|
if (!exists) {
|
|
34482
35244
|
ctx.addIssue({
|
|
34483
|
-
code:
|
|
35245
|
+
code: z70.ZodIssueCode.custom,
|
|
34484
35246
|
message: `titleSource must reference a valid field ID (got "${source}")`,
|
|
34485
35247
|
path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
|
|
34486
35248
|
});
|
|
@@ -34489,7 +35251,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34489
35251
|
}
|
|
34490
35252
|
if (data.layout && data.variants) {
|
|
34491
35253
|
ctx.addIssue({
|
|
34492
|
-
code:
|
|
35254
|
+
code: z70.ZodIssueCode.custom,
|
|
34493
35255
|
message: "Custom block must define either `layout` or `variants`, not both",
|
|
34494
35256
|
path: ["variants"]
|
|
34495
35257
|
});
|
|
@@ -34499,7 +35261,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34499
35261
|
if (!result.valid) {
|
|
34500
35262
|
for (const error of result.errors) {
|
|
34501
35263
|
ctx.addIssue({
|
|
34502
|
-
code:
|
|
35264
|
+
code: z70.ZodIssueCode.custom,
|
|
34503
35265
|
message: error.message,
|
|
34504
35266
|
path: ["layout"]
|
|
34505
35267
|
});
|
|
@@ -34510,14 +35272,14 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34510
35272
|
const keys = Object.keys(data.variants);
|
|
34511
35273
|
if (keys.length === 0) {
|
|
34512
35274
|
ctx.addIssue({
|
|
34513
|
-
code:
|
|
35275
|
+
code: z70.ZodIssueCode.custom,
|
|
34514
35276
|
message: "`variants` must contain at least one variant key",
|
|
34515
35277
|
path: ["variants"]
|
|
34516
35278
|
});
|
|
34517
35279
|
}
|
|
34518
35280
|
if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
|
|
34519
35281
|
ctx.addIssue({
|
|
34520
|
-
code:
|
|
35282
|
+
code: z70.ZodIssueCode.custom,
|
|
34521
35283
|
message: "`defaultVariant` must be a key present in `variants`",
|
|
34522
35284
|
path: ["defaultVariant"]
|
|
34523
35285
|
});
|
|
@@ -34527,7 +35289,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34527
35289
|
if (!result.valid) {
|
|
34528
35290
|
for (const error of result.errors) {
|
|
34529
35291
|
ctx.addIssue({
|
|
34530
|
-
code:
|
|
35292
|
+
code: z70.ZodIssueCode.custom,
|
|
34531
35293
|
message: `${key}: ${error.message}`,
|
|
34532
35294
|
path: ["variants", key]
|
|
34533
35295
|
});
|
|
@@ -34538,7 +35300,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34538
35300
|
for (const key of Object.keys(data.variantOptions)) {
|
|
34539
35301
|
if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
|
|
34540
35302
|
ctx.addIssue({
|
|
34541
|
-
code:
|
|
35303
|
+
code: z70.ZodIssueCode.custom,
|
|
34542
35304
|
message: "`variantOptions` key must exist in `variants`",
|
|
34543
35305
|
path: ["variantOptions", key]
|
|
34544
35306
|
});
|
|
@@ -34547,58 +35309,58 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34547
35309
|
}
|
|
34548
35310
|
}
|
|
34549
35311
|
});
|
|
34550
|
-
var themeSourceSchema =
|
|
34551
|
-
var activeThemeSchema =
|
|
35312
|
+
var themeSourceSchema = z70.enum(["local", "cms"]).optional();
|
|
35313
|
+
var activeThemeSchema = z70.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
|
|
34552
35314
|
message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
|
|
34553
35315
|
}).max(64, "Theme name too long").optional();
|
|
34554
35316
|
function isValidConfigBlockKind(kind) {
|
|
34555
35317
|
if (getBlockDefinition(kind)) return true;
|
|
34556
35318
|
return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
|
|
34557
35319
|
}
|
|
34558
|
-
var layoutBlockKindSchema =
|
|
35320
|
+
var layoutBlockKindSchema = z70.string().refine(isValidConfigBlockKind, {
|
|
34559
35321
|
message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
|
|
34560
35322
|
});
|
|
34561
|
-
var layoutFooterBlockSchema =
|
|
34562
|
-
id:
|
|
35323
|
+
var layoutFooterBlockSchema = z70.object({
|
|
35324
|
+
id: z70.string().min(1).optional(),
|
|
34563
35325
|
kind: layoutBlockKindSchema,
|
|
34564
35326
|
// Allow omitted content for blocks that rely on defaults.
|
|
34565
|
-
content:
|
|
35327
|
+
content: z70.record(z70.string(), z70.unknown()).optional()
|
|
34566
35328
|
}).strict();
|
|
34567
|
-
var layoutConfigSchema =
|
|
34568
|
-
footerBlocks:
|
|
35329
|
+
var layoutConfigSchema = z70.object({
|
|
35330
|
+
footerBlocks: z70.array(layoutFooterBlockSchema).optional()
|
|
34569
35331
|
}).strict();
|
|
34570
|
-
var sdkWorkflowIdSchema2 =
|
|
35332
|
+
var sdkWorkflowIdSchema2 = z70.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
|
|
34571
35333
|
message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
|
|
34572
35334
|
});
|
|
34573
|
-
var sdkWorkflowEndpointSchema2 =
|
|
34574
|
-
var sdkWorkflowTriggerSchema2 =
|
|
34575
|
-
|
|
35335
|
+
var sdkWorkflowEndpointSchema2 = z70.string().min(1).max(SDK_WORKFLOW_ENDPOINT_MAX_LENGTH).regex(SDK_WORKFLOW_ENDPOINT_PATTERN, { message: 'Workflow endpoint must be a site-relative path starting with "/"' });
|
|
35336
|
+
var sdkWorkflowTriggerSchema2 = z70.discriminatedUnion("type", [
|
|
35337
|
+
z70.object({ type: z70.literal("manual") }).strict()
|
|
34576
35338
|
]);
|
|
34577
|
-
var sdkWorkflowConfirmationSchema2 =
|
|
34578
|
-
title:
|
|
34579
|
-
body:
|
|
35339
|
+
var sdkWorkflowConfirmationSchema2 = z70.object({
|
|
35340
|
+
title: z70.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
|
|
35341
|
+
body: z70.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
|
|
34580
35342
|
}).strict();
|
|
34581
|
-
var sdkWorkflowConfigSchema2 =
|
|
35343
|
+
var sdkWorkflowConfigSchema2 = z70.object({
|
|
34582
35344
|
id: sdkWorkflowIdSchema2,
|
|
34583
|
-
title:
|
|
34584
|
-
description:
|
|
34585
|
-
contentType:
|
|
35345
|
+
title: z70.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
|
|
35346
|
+
description: z70.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
|
|
35347
|
+
contentType: z70.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
|
|
34586
35348
|
endpoint: sdkWorkflowEndpointSchema2,
|
|
34587
|
-
triggers:
|
|
35349
|
+
triggers: z70.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
|
|
34588
35350
|
confirmation: sdkWorkflowConfirmationSchema2.optional()
|
|
34589
35351
|
}).strict();
|
|
34590
|
-
var sdkWorkflowsSchema2 =
|
|
35352
|
+
var sdkWorkflowsSchema2 = z70.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
|
|
34591
35353
|
const ids = workflows.map((workflow) => workflow.id);
|
|
34592
35354
|
return ids.length === new Set(ids).size;
|
|
34593
35355
|
}, { message: "Workflow IDs must be unique" }).optional();
|
|
34594
|
-
var riverbankSiteConfigSchema =
|
|
34595
|
-
siteId:
|
|
35356
|
+
var riverbankSiteConfigSchema = z70.object({
|
|
35357
|
+
siteId: z70.string().uuid(),
|
|
34596
35358
|
previewUrl: sdkSiteUrlSchema.optional(),
|
|
34597
35359
|
liveUrl: sdkSiteUrlSchema.optional(),
|
|
34598
35360
|
theme: sdkThemeConfigSchema2.optional(),
|
|
34599
35361
|
styles: siteStyleConfigSchema,
|
|
34600
35362
|
layout: layoutConfigSchema.optional(),
|
|
34601
|
-
customBlocks:
|
|
35363
|
+
customBlocks: z70.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
|
|
34602
35364
|
// Ensure unique block IDs
|
|
34603
35365
|
(blocks) => {
|
|
34604
35366
|
const ids = blocks.map((b) => b.id);
|
|
@@ -34611,7 +35373,7 @@ var riverbankSiteConfigSchema = z69.object({
|
|
|
34611
35373
|
workflows: sdkWorkflowsSchema2,
|
|
34612
35374
|
content: contentConfigSchema.optional(),
|
|
34613
35375
|
// CLI-related configuration (Phase 4)
|
|
34614
|
-
contentDir:
|
|
35376
|
+
contentDir: z70.string().optional(),
|
|
34615
35377
|
sync: syncConfigSchema,
|
|
34616
35378
|
deploy: deployConfigSchema,
|
|
34617
35379
|
// Theme sync configuration (Phase 5)
|