@riverbankcms/sdk 0.77.1 → 0.78.2
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 +114 -43
- package/dist/{PreviewEditorSidebar-DVUG7GK4.mjs → PreviewEditorSidebar-4DXLYX2V.mjs} +4962 -4885
- package/dist/{PreviewEditorUI-P7RN4CDS.mjs → PreviewEditorUI-CS5P4N3P.mjs} +4 -4
- package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +190 -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/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/demoDashboardMutationSurfaces.d.ts +46 -0
- package/dist/_dts/api/src/endpoints.d.ts +17 -0
- package/dist/_dts/api/src/index.d.ts +16 -4
- 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/public/types.d.ts +1 -1
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +55 -26
- package/dist/_dts/api/src/request.d.ts +3 -11
- package/dist/_dts/api/src/sdkConfig/contracts.d.ts +1 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +7 -1
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +10 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +1 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +15 -19
- package/dist/_dts/api/src/staffAccess.d.ts +79 -0
- package/dist/_dts/api/src/types.d.ts +14 -27
- package/dist/_dts/api/src/workflows/automaticWorkflowTriggers.d.ts +21 -0
- package/dist/_dts/block-form/src/fields/types.d.ts +6 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterList.d.ts +3 -2
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRow.d.ts +6 -3
- package/dist/_dts/block-form/src/widgets/RepeaterField/components/RepeaterRowActions.d.ts +8 -3
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/index.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useLinearRepeaterDnd.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useRepeaterPointerDragCapability.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/hooks/useResolvedItemLabel.d.ts +7 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/buildSummary.d.ts +1 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/index.d.ts +3 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterDndDomain.d.ts +1 -1
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterLabelSource.d.ts +15 -0
- package/dist/_dts/block-form/src/widgets/RepeaterField/utils/repeaterRowActionsDomain.d.ts +50 -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 +879 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +879 -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 +885 -289
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +3 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +68 -21
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +879 -288
- package/dist/_dts/blocks/src/system/blocks/team-members.d.ts +3 -0
- 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 +193 -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/hooks/useHeadlessBookingFlow.state.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/booking-form.headless.state.d.ts +1 -1
- 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 +6 -1
- package/dist/_dts/content-editor/src/pageWorkflowContent.d.ts +29 -0
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +2 -2
- package/dist/_dts/content-model/src/content-types/schema.d.ts +17 -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/bindingTypeCompatibility.d.ts +3 -1
- package/dist/_dts/content-model/src/templates/bindingValidation.d.ts +10 -4
- package/dist/_dts/content-model/src/templates/editorState.d.ts +25 -0
- package/dist/_dts/content-model/src/templates/fieldPaths.d.ts +20 -0
- package/dist/_dts/content-model/src/templates/manifestAdapter.d.ts +5 -2
- package/dist/_dts/core/src/branded.d.ts +108 -85
- 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/editor-state.d.ts +7 -7
- 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/participants.d.ts +2 -2
- 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/generated/supabase/database.types.d.ts +11 -0
- package/dist/_dts/db/src/schemas/forms.d.ts +50 -50
- package/dist/_dts/editor-blocks/src/blockPayload.d.ts +1 -1
- 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/MediaEditor.d.ts +3 -1
- package/dist/_dts/media-editor/src/MediaPreview.d.ts +3 -1
- package/dist/_dts/media-editor/src/fieldUi.d.ts +5 -0
- package/dist/_dts/media-editor/src/index.d.ts +1 -1
- 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/cli/commands/push/consts.d.ts +1 -1
- package/dist/_dts/sdk/src/cli/commands/push/metadata.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/commands/push/stale.d.ts +3 -3
- package/dist/_dts/sdk/src/cli/commands/push-execute.d.ts +7 -0
- package/dist/_dts/sdk/src/cli/commands/push.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +13 -0
- package/dist/_dts/sdk/src/cli/content/writer.d.ts +2 -1
- package/dist/_dts/sdk/src/cli/helpers.d.ts +2 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandKeys.d.ts +6 -6
- package/dist/_dts/sdk/src/cli/site-commands/commandRuntime.d.ts +5 -0
- package/dist/_dts/sdk/src/cli/site-commands/commandSurfaceDispatch.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/pageCommands.d.ts +5 -2
- package/dist/_dts/sdk/src/cli/site-commands/pushExecution.d.ts +10 -1
- package/dist/_dts/sdk/src/cli/site-commands/pushExecutionTypes.d.ts +1 -1
- 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/management/types.d.ts +6 -0
- package/dist/_dts/sdk/src/client/types.d.ts +39 -21
- package/dist/_dts/sdk/src/config/content-types.d.ts +7 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +2 -0
- 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 +15 -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/{altcha-B5XGSXP5.mjs → altcha-EKUEQ4RP.mjs} +1 -1
- package/dist/{chunk-IENWFSLO.mjs → chunk-4QEGTLK6.mjs} +1 -1
- package/dist/{chunk-ZYEJLCTN.mjs → chunk-6HYXHRAI.mjs} +5 -5
- package/dist/{chunk-VX7B5VAC.mjs → chunk-CR5HKAGU.mjs} +32 -5
- package/dist/{chunk-KWJPDZH2.mjs → chunk-MCRQMPET.mjs} +3793 -1201
- package/dist/{chunk-6SMUFTXD.mjs → chunk-OKMBEAXY.mjs} +1 -1
- package/dist/{chunk-XGB3TDIC.mjs → chunk-R7POPVJR.mjs} +2 -8
- package/dist/{chunk-2SPENC5M.mjs → chunk-RGTOD4AJ.mjs} +242 -57
- package/dist/cli/index.mjs +2361 -668
- package/dist/cli/init-docs/content/cli-reference.md +3 -2
- package/dist/cli/init-docs/content/content-management.md +2 -2
- package/dist/cli/init-docs/content/workflow-preview-mode.md +68 -2
- package/dist/client/{accordion-RZMQSYLR.mjs → accordion-PLYNJIIM.mjs} +2 -2
- package/dist/client/analytics.mjs +1 -1
- package/dist/client/{bookingForm-NF4ASVNV.mjs → bookingForm-BXAP6AO7.mjs} +76 -72
- package/dist/client/bookings.mjs +3765 -310
- package/dist/client/{carousel-LDX47ZIK.mjs → carousel-TRBXDHGF.mjs} +3 -4
- package/dist/client/{cart-RGXDS5F4.mjs → cart-Z7H3HJRS.mjs} +8 -8
- package/dist/client/{checkout-P7WWSNNY.mjs → checkout-WAFCUBIX.mjs} +8 -8
- package/dist/client/{chunk-II7O4XN3.mjs → chunk-75OUS5MT.mjs} +2 -2
- package/dist/client/{chunk-PMAIXMAB.mjs → chunk-AUJ5DBZJ.mjs} +42 -37
- package/dist/client/{chunk-TQ5MSPDX.mjs → chunk-CE7IBGVW.mjs} +3 -1
- package/dist/client/{chunk-E2TDNXCL.mjs → chunk-CWGTG37I.mjs} +2 -1
- package/dist/client/{chunk-UFSWADAO.mjs → chunk-DNRGY432.mjs} +6 -67
- package/dist/client/{chunk-GMVTOKYG.mjs → chunk-FUXW6VW2.mjs} +512 -66
- package/dist/client/{chunk-R56FQ3RR.mjs → chunk-JGXPTEI2.mjs} +322 -106
- package/dist/client/{chunk-L3DNHIJX.mjs → chunk-JRDUHZCT.mjs} +53 -53
- package/dist/client/{chunk-M3L3KYYR.mjs → chunk-UDNSI5PY.mjs} +12 -0
- package/dist/client/{chunk-JEZECJ3W.mjs → chunk-UVQEJJTN.mjs} +129 -3
- package/dist/client/{chunk-F7LHOKEH.mjs → chunk-XSV6KW4D.mjs} +1 -1
- package/dist/client/chunk-ZFHRN6W2.mjs +66 -0
- package/dist/client/{chunk-JNC7CGHX.mjs → chunk-ZI3LLBPZ.mjs} +3 -3
- package/dist/client/client.mjs +7577 -4979
- package/dist/client/{courseRegistration-7F65K5ZR.mjs → courseRegistration-AHFQHWIJ.mjs} +19 -16
- package/dist/client/{eventCalendar-GLSC5KTL.mjs → eventCalendar-LDXTV5R7.mjs} +10 -10
- package/dist/client/{eventCombined-ZHK4WKUR.mjs → eventCombined-A4JGTNJO.mjs} +10 -10
- package/dist/client/{eventDetails-E3PJYBIN.mjs → eventDetails-4YXTZ7EG.mjs} +10 -10
- package/dist/client/{eventListing-EMS3WC3E.mjs → eventListing-P72TPFFM.mjs} +10 -10
- package/dist/client/{eventRegistration-NZOTVNPI.mjs → eventRegistration-LSYJHGMT.mjs} +10 -10
- package/dist/client/{form-ETFZFATW.mjs → form-AOPYOKOW.mjs} +10 -7
- package/dist/client/{headerSection-4LBP7ULT.mjs → headerSection-5TFYDFVQ.mjs} +3 -3
- package/dist/client/hooks.mjs +1119 -327
- package/dist/client/{locationMap-5M655YSJ.mjs → locationMap-QSZ3ZVAZ.mjs} +3 -3
- package/dist/client/{newsletterForm-QOUYW44O.mjs → newsletterForm-KTRHZY52.mjs} +3 -3
- package/dist/client/{productDetail-O4DOCWQG.mjs → productDetail-N4E775RG.mjs} +8 -8
- package/dist/client/{productList-A5RO5WIS.mjs → productList-UGUQ2S45.mjs} +8 -8
- package/dist/client/rendering/client.mjs +7262 -2775
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +6964 -4587
- package/dist/client/{shop-L4MZH4I2.mjs → shop-VHSZEEQ2.mjs} +8 -8
- package/dist/preview-next/before-render.mjs +18 -1
- package/dist/preview-next/client/runtime.mjs +6 -6
- package/dist/preview-next/editor-chrome.css +10 -0
- package/dist/preview-next/middleware.mjs +18 -1
- package/dist/preview-next/tailwind-sources.css +1 -0
- package/dist/sdk-runtime-WHPJEF5G.mjs +8 -0
- package/dist/server/components.mjs +2736 -1316
- package/dist/server/config-template-validation.mjs +221 -15
- package/dist/server/config-validation.mjs +1346 -550
- package/dist/server/config.mjs +1346 -550
- package/dist/server/data.mjs +1118 -326
- package/dist/server/index.mjs +514 -251
- package/dist/server/next.mjs +4446 -2444
- package/dist/server/page-converter.mjs +631 -155
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2743 -1323
- package/dist/server/rendering.mjs +2764 -1328
- package/dist/server/routing.mjs +1860 -590
- package/dist/server/server.mjs +1622 -575
- package/dist/server/theme-bridge.mjs +3151 -131
- package/dist/server/theme.mjs +10 -1
- package/dist/styles/index.css +488 -48
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-KLPX47SE.mjs +0 -8
- package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/DiscountCodeSection.d.ts +0 -7
- package/dist/_dts/preview-next/src/client/widgets/PreviewMediaField.d.ts +0 -4
- package/dist/client/chunk-OJPZEZU2.mjs +0 -31
- package/dist/client/chunk-RTZ3JKKX.mjs +0 -178
- package/dist/sdk-runtime-6UT2S7KZ.mjs +0 -8
package/dist/server/config.mjs
CHANGED
|
@@ -44,7 +44,7 @@ function fallbackBinding(...sources) {
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
// src/config/validation.ts
|
|
47
|
-
import { z as
|
|
47
|
+
import { z as z70 } from "zod";
|
|
48
48
|
|
|
49
49
|
// ../api/src/apiEndpointTypes.ts
|
|
50
50
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
@@ -1796,7 +1796,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1796
1796
|
revalidate: 60,
|
|
1797
1797
|
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
1798
1798
|
auth: "user",
|
|
1799
|
-
responseKind: "json"
|
|
1799
|
+
responseKind: "json",
|
|
1800
|
+
errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
|
|
1801
|
+
},
|
|
1802
|
+
reorderContentEntries: {
|
|
1803
|
+
path: "/sites/{siteId}/content/{type}/order",
|
|
1804
|
+
method: "POST",
|
|
1805
|
+
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
1806
|
+
auth: "user",
|
|
1807
|
+
responseKind: "json",
|
|
1808
|
+
errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
|
|
1800
1809
|
},
|
|
1801
1810
|
getContentTemplate: {
|
|
1802
1811
|
path: "/sites/{siteId}/content/types/{type}/template",
|
|
@@ -3948,6 +3957,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3948
3957
|
responseKind: "json",
|
|
3949
3958
|
errors: []
|
|
3950
3959
|
},
|
|
3960
|
+
applyDiscountCode: {
|
|
3961
|
+
path: "/public/sites/{siteId}/bookings/discounts/apply",
|
|
3962
|
+
method: "POST",
|
|
3963
|
+
tags: ["site-{siteId}", "booking-discounts"],
|
|
3964
|
+
auth: "public",
|
|
3965
|
+
responseKind: "json",
|
|
3966
|
+
errors: ["validation:invalid_input", "rate_limit:exceeded"]
|
|
3967
|
+
},
|
|
3951
3968
|
// Batch endpoint for block loader requests (reduces SSR fan-out)
|
|
3952
3969
|
batchBlockLoaders: {
|
|
3953
3970
|
path: "/public/sites/{siteId}/block-loaders/batch",
|
|
@@ -6287,6 +6304,27 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
6287
6304
|
}
|
|
6288
6305
|
};
|
|
6289
6306
|
|
|
6307
|
+
// ../core/src/location.ts
|
|
6308
|
+
function normalizeLocationAddressText(value) {
|
|
6309
|
+
if (typeof value !== "string") {
|
|
6310
|
+
return null;
|
|
6311
|
+
}
|
|
6312
|
+
const trimmed = value.trim();
|
|
6313
|
+
return trimmed ? trimmed : null;
|
|
6314
|
+
}
|
|
6315
|
+
function hasLocationCoordinates(value) {
|
|
6316
|
+
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
6317
|
+
}
|
|
6318
|
+
function toLocationCoordinates(value) {
|
|
6319
|
+
if (!hasLocationCoordinates(value)) {
|
|
6320
|
+
return null;
|
|
6321
|
+
}
|
|
6322
|
+
return {
|
|
6323
|
+
lat: value.lat,
|
|
6324
|
+
lng: value.lng
|
|
6325
|
+
};
|
|
6326
|
+
}
|
|
6327
|
+
|
|
6290
6328
|
// ../api/src/accessAdmin.ts
|
|
6291
6329
|
import { z } from "zod";
|
|
6292
6330
|
var managedDomainAddOnPricingSnapshotSchema = z.object({
|
|
@@ -6429,27 +6467,6 @@ function formatKeyAsLabel(key) {
|
|
|
6429
6467
|
// ../blocks/src/system/manifest/schema.ts
|
|
6430
6468
|
import { z as z4 } from "zod";
|
|
6431
6469
|
|
|
6432
|
-
// ../core/src/location.ts
|
|
6433
|
-
function normalizeLocationAddressText(value) {
|
|
6434
|
-
if (typeof value !== "string") {
|
|
6435
|
-
return null;
|
|
6436
|
-
}
|
|
6437
|
-
const trimmed = value.trim();
|
|
6438
|
-
return trimmed ? trimmed : null;
|
|
6439
|
-
}
|
|
6440
|
-
function hasLocationCoordinates(value) {
|
|
6441
|
-
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
6442
|
-
}
|
|
6443
|
-
function toLocationCoordinates(value) {
|
|
6444
|
-
if (!hasLocationCoordinates(value)) {
|
|
6445
|
-
return null;
|
|
6446
|
-
}
|
|
6447
|
-
return {
|
|
6448
|
-
lat: value.lat,
|
|
6449
|
-
lng: value.lng
|
|
6450
|
-
};
|
|
6451
|
-
}
|
|
6452
|
-
|
|
6453
6470
|
// ../media-core/src/transformRect.ts
|
|
6454
6471
|
function isValidTransformRectStructure(rect) {
|
|
6455
6472
|
if (!Array.isArray(rect) || rect.length !== 4) return false;
|
|
@@ -6532,14 +6549,14 @@ function rotateNormalizedPoint(point, rotation) {
|
|
|
6532
6549
|
const x = point.x;
|
|
6533
6550
|
const y = point.y;
|
|
6534
6551
|
switch (rotation) {
|
|
6552
|
+
case 0:
|
|
6553
|
+
return { x, y };
|
|
6535
6554
|
case 90:
|
|
6536
6555
|
return { x: 1 - y, y: x };
|
|
6537
6556
|
case 180:
|
|
6538
6557
|
return { x: 1 - x, y: 1 - y };
|
|
6539
6558
|
case 270:
|
|
6540
6559
|
return { x: y, y: 1 - x };
|
|
6541
|
-
default:
|
|
6542
|
-
return { x, y };
|
|
6543
6560
|
}
|
|
6544
6561
|
}
|
|
6545
6562
|
|
|
@@ -6832,6 +6849,8 @@ var uiSchema = z4.object({
|
|
|
6832
6849
|
mediaPickerAutoOpen: z4.boolean().optional(),
|
|
6833
6850
|
showMediaPreview: z4.boolean().optional(),
|
|
6834
6851
|
showMediaOverlayActions: z4.boolean().optional(),
|
|
6852
|
+
mediaPreviewMaxWidth: z4.enum(["xs", "sm", "md", "none"]).optional(),
|
|
6853
|
+
preventMediaPreviewUpscale: z4.boolean().optional(),
|
|
6835
6854
|
mediaDelivery: mediaDeliverySchema.optional(),
|
|
6836
6855
|
mediaDeliveryByVariant: z4.record(z4.string(), mediaDeliverySchema).optional(),
|
|
6837
6856
|
// Optional input hints for validators/widgets
|
|
@@ -7081,6 +7100,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
7081
7100
|
type: z4.literal("repeater"),
|
|
7082
7101
|
itemLabel: z4.string().default("Item"),
|
|
7083
7102
|
itemLabelSource: z4.string().optional(),
|
|
7103
|
+
showSummary: z4.boolean().optional(),
|
|
7104
|
+
summaryFields: z4.string().array().optional(),
|
|
7105
|
+
summaryMaxChars: z4.number().int().positive().optional(),
|
|
7084
7106
|
minItems: z4.number().int().min(0).default(0),
|
|
7085
7107
|
maxItems: z4.number().int().positive().optional(),
|
|
7086
7108
|
// Monomorphic mode
|
|
@@ -7574,6 +7596,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
|
7574
7596
|
const next = encodeURIComponent(nextBlockId);
|
|
7575
7597
|
return asDesignBoundaryId(`boundary:${previous}:${next}`);
|
|
7576
7598
|
}
|
|
7599
|
+
function assertNever(value, message = "Unhandled Theme V2 variant") {
|
|
7600
|
+
throw new Error(`${message}: ${String(value)}`);
|
|
7601
|
+
}
|
|
7577
7602
|
function brandNonEmptyString(value, label) {
|
|
7578
7603
|
if (value.length === 0) {
|
|
7579
7604
|
throw new Error(`${label} must be a non-empty string.`);
|
|
@@ -7601,6 +7626,10 @@ var tileTreatmentValues = [
|
|
|
7601
7626
|
"quiet",
|
|
7602
7627
|
"brand-depth"
|
|
7603
7628
|
];
|
|
7629
|
+
var eventListTreatmentValues = [
|
|
7630
|
+
"plain",
|
|
7631
|
+
"lined-panel"
|
|
7632
|
+
];
|
|
7604
7633
|
var eyebrowTreatmentValues = [
|
|
7605
7634
|
"plain",
|
|
7606
7635
|
"pill",
|
|
@@ -7658,6 +7687,7 @@ function defineBlockDesignCapability(capability) {
|
|
|
7658
7687
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
7659
7688
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
7660
7689
|
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
7690
|
+
eventListTreatments: capability.eventListTreatments ?? ["plain"],
|
|
7661
7691
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
|
|
7662
7692
|
...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
|
|
7663
7693
|
...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
|
|
@@ -7682,9 +7712,98 @@ var blockAppearancePresets = [
|
|
|
7682
7712
|
transitionAfter: "soft-fade-short",
|
|
7683
7713
|
emphasis: "high",
|
|
7684
7714
|
sectionHeight: "hero",
|
|
7715
|
+
heroComposition: "center",
|
|
7716
|
+
heroTypographyScale: "display",
|
|
7685
7717
|
imageSurfaceTreatment: { kind: "neutral-wash" }
|
|
7686
7718
|
}
|
|
7687
7719
|
}),
|
|
7720
|
+
defineBlockAppearancePreset({
|
|
7721
|
+
kind: "block-design",
|
|
7722
|
+
id: "hero-bottom-left-panel",
|
|
7723
|
+
target: "hero",
|
|
7724
|
+
label: "Bottom-left panel hero",
|
|
7725
|
+
blockKinds: ["block.hero"],
|
|
7726
|
+
constraints: {
|
|
7727
|
+
layoutFamilies: ["centered", "compact"]
|
|
7728
|
+
},
|
|
7729
|
+
optionGroups: [
|
|
7730
|
+
{
|
|
7731
|
+
id: "image-surface-treatment",
|
|
7732
|
+
label: "Treatment",
|
|
7733
|
+
selectedOptionId: "neutral-scrim",
|
|
7734
|
+
options: [
|
|
7735
|
+
{
|
|
7736
|
+
id: "neutral-scrim",
|
|
7737
|
+
label: "Neutral scrim",
|
|
7738
|
+
designPatch: {
|
|
7739
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
7740
|
+
}
|
|
7741
|
+
},
|
|
7742
|
+
{
|
|
7743
|
+
id: "brand-scrim-primary",
|
|
7744
|
+
label: "Brand scrim",
|
|
7745
|
+
designPatch: {
|
|
7746
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
|
|
7747
|
+
}
|
|
7748
|
+
}
|
|
7749
|
+
]
|
|
7750
|
+
}
|
|
7751
|
+
],
|
|
7752
|
+
layoutPatches: [
|
|
7753
|
+
{
|
|
7754
|
+
constraints: {
|
|
7755
|
+
layoutVariantKeys: ["micro"]
|
|
7756
|
+
},
|
|
7757
|
+
designPatch: {
|
|
7758
|
+
sectionHeight: "banner",
|
|
7759
|
+
heroTypographyScale: "editorial"
|
|
7760
|
+
}
|
|
7761
|
+
}
|
|
7762
|
+
],
|
|
7763
|
+
design: {
|
|
7764
|
+
sectionSurface: "hero-image",
|
|
7765
|
+
contentFrame: panelFrame("raised"),
|
|
7766
|
+
itemSurface: "none",
|
|
7767
|
+
transitionAfter: "soft-fade-short",
|
|
7768
|
+
emphasis: "high",
|
|
7769
|
+
sectionHeight: "immersive",
|
|
7770
|
+
heroComposition: "bottom-left",
|
|
7771
|
+
heroTypographyScale: "display",
|
|
7772
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
7773
|
+
}
|
|
7774
|
+
}),
|
|
7775
|
+
defineBlockAppearancePreset({
|
|
7776
|
+
kind: "block-design",
|
|
7777
|
+
id: "hero-poster-image",
|
|
7778
|
+
target: "hero",
|
|
7779
|
+
label: "Poster image hero",
|
|
7780
|
+
blockKinds: ["block.hero"],
|
|
7781
|
+
constraints: {
|
|
7782
|
+
layoutFamilies: ["centered", "compact"]
|
|
7783
|
+
},
|
|
7784
|
+
layoutPatches: [
|
|
7785
|
+
{
|
|
7786
|
+
constraints: {
|
|
7787
|
+
layoutVariantKeys: ["micro"]
|
|
7788
|
+
},
|
|
7789
|
+
designPatch: {
|
|
7790
|
+
sectionHeight: "banner",
|
|
7791
|
+
heroTypographyScale: "display"
|
|
7792
|
+
}
|
|
7793
|
+
}
|
|
7794
|
+
],
|
|
7795
|
+
design: {
|
|
7796
|
+
sectionSurface: "hero-image",
|
|
7797
|
+
contentFrame: plainFrame,
|
|
7798
|
+
itemSurface: "none",
|
|
7799
|
+
transitionAfter: "soft-fade-short",
|
|
7800
|
+
emphasis: "high",
|
|
7801
|
+
sectionHeight: "immersive",
|
|
7802
|
+
heroComposition: "center",
|
|
7803
|
+
heroTypographyScale: "poster",
|
|
7804
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
|
|
7805
|
+
}
|
|
7806
|
+
}),
|
|
7688
7807
|
defineBlockAppearancePreset({
|
|
7689
7808
|
kind: "block-design",
|
|
7690
7809
|
id: "hero-brand-scrim",
|
|
@@ -7734,6 +7853,8 @@ var blockAppearancePresets = [
|
|
|
7734
7853
|
transitionAfter: "soft-fade-short",
|
|
7735
7854
|
emphasis: "high",
|
|
7736
7855
|
sectionHeight: "immersive",
|
|
7856
|
+
heroComposition: "center",
|
|
7857
|
+
heroTypographyScale: "display",
|
|
7737
7858
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
|
|
7738
7859
|
}
|
|
7739
7860
|
}),
|
|
@@ -7786,6 +7907,8 @@ var blockAppearancePresets = [
|
|
|
7786
7907
|
transitionAfter: "soft-fade-short",
|
|
7787
7908
|
emphasis: "high",
|
|
7788
7909
|
sectionHeight: "immersive",
|
|
7910
|
+
heroComposition: "center",
|
|
7911
|
+
heroTypographyScale: "display",
|
|
7789
7912
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
|
|
7790
7913
|
imageSurfaceMotion: "fixed-frame",
|
|
7791
7914
|
eyebrowTreatment: "accent-pill-bounce"
|
|
@@ -7806,6 +7929,8 @@ var blockAppearancePresets = [
|
|
|
7806
7929
|
itemSurface: "none",
|
|
7807
7930
|
transitionAfter: "soft-fade-short",
|
|
7808
7931
|
emphasis: "high",
|
|
7932
|
+
heroComposition: "center",
|
|
7933
|
+
heroTypographyScale: "editorial",
|
|
7809
7934
|
eyebrowTreatment: "accent-pill-bounce"
|
|
7810
7935
|
}
|
|
7811
7936
|
}),
|
|
@@ -7820,7 +7945,82 @@ var blockAppearancePresets = [
|
|
|
7820
7945
|
contentFrame: panelFrame("inset"),
|
|
7821
7946
|
itemSurface: "none",
|
|
7822
7947
|
transitionAfter: "none",
|
|
7823
|
-
emphasis: "high"
|
|
7948
|
+
emphasis: "high",
|
|
7949
|
+
heroComposition: "center",
|
|
7950
|
+
heroTypographyScale: "editorial"
|
|
7951
|
+
}
|
|
7952
|
+
}),
|
|
7953
|
+
defineBlockAppearancePreset({
|
|
7954
|
+
kind: "block-design",
|
|
7955
|
+
id: "hero-split-editorial",
|
|
7956
|
+
target: "hero",
|
|
7957
|
+
label: "Editorial split hero",
|
|
7958
|
+
blockKinds: ["block.hero"],
|
|
7959
|
+
constraints: {
|
|
7960
|
+
layoutFamilies: ["split"]
|
|
7961
|
+
},
|
|
7962
|
+
design: {
|
|
7963
|
+
sectionSurface: "base",
|
|
7964
|
+
contentFrame: plainFrame,
|
|
7965
|
+
itemSurface: "none",
|
|
7966
|
+
transitionAfter: "soft-fade-short",
|
|
7967
|
+
emphasis: "high",
|
|
7968
|
+
heroTypographyScale: "editorial"
|
|
7969
|
+
}
|
|
7970
|
+
}),
|
|
7971
|
+
defineBlockAppearancePreset({
|
|
7972
|
+
kind: "block-design",
|
|
7973
|
+
id: "hero-split-brand",
|
|
7974
|
+
target: "hero",
|
|
7975
|
+
label: "Brand split hero",
|
|
7976
|
+
blockKinds: ["block.hero"],
|
|
7977
|
+
constraints: {
|
|
7978
|
+
layoutFamilies: ["split"]
|
|
7979
|
+
},
|
|
7980
|
+
design: {
|
|
7981
|
+
sectionSurface: "brand-depth-band",
|
|
7982
|
+
contentFrame: plainFrame,
|
|
7983
|
+
itemSurface: "none",
|
|
7984
|
+
transitionAfter: "soft-fade-short",
|
|
7985
|
+
emphasis: "high",
|
|
7986
|
+
heroTypographyScale: "display",
|
|
7987
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
7988
|
+
}
|
|
7989
|
+
}),
|
|
7990
|
+
defineBlockAppearancePreset({
|
|
7991
|
+
kind: "block-design",
|
|
7992
|
+
id: "hero-split-soft-panel",
|
|
7993
|
+
target: "hero",
|
|
7994
|
+
label: "Soft panel split hero",
|
|
7995
|
+
blockKinds: ["block.hero"],
|
|
7996
|
+
constraints: {
|
|
7997
|
+
layoutFamilies: ["split"]
|
|
7998
|
+
},
|
|
7999
|
+
design: {
|
|
8000
|
+
sectionSurface: "muted-band",
|
|
8001
|
+
contentFrame: panelFrame("raised"),
|
|
8002
|
+
itemSurface: "none",
|
|
8003
|
+
transitionAfter: "soft-fade-short",
|
|
8004
|
+
emphasis: "high",
|
|
8005
|
+
heroTypographyScale: "editorial"
|
|
8006
|
+
}
|
|
8007
|
+
}),
|
|
8008
|
+
defineBlockAppearancePreset({
|
|
8009
|
+
kind: "block-design",
|
|
8010
|
+
id: "hero-split-accent",
|
|
8011
|
+
target: "hero",
|
|
8012
|
+
label: "Accent split hero",
|
|
8013
|
+
blockKinds: ["block.hero"],
|
|
8014
|
+
constraints: {
|
|
8015
|
+
layoutFamilies: ["split"]
|
|
8016
|
+
},
|
|
8017
|
+
design: {
|
|
8018
|
+
sectionSurface: "accent-band",
|
|
8019
|
+
contentFrame: panelFrame("raised"),
|
|
8020
|
+
itemSurface: "none",
|
|
8021
|
+
transitionAfter: "soft-fade-short",
|
|
8022
|
+
emphasis: "high",
|
|
8023
|
+
heroTypographyScale: "display"
|
|
7824
8024
|
}
|
|
7825
8025
|
}),
|
|
7826
8026
|
defineBlockAppearancePreset({
|
|
@@ -7853,9 +8053,9 @@ var blockAppearancePresets = [
|
|
|
7853
8053
|
}),
|
|
7854
8054
|
defineBlockAppearancePreset({
|
|
7855
8055
|
kind: "block-design",
|
|
7856
|
-
id: "intro-
|
|
8056
|
+
id: "intro-organic-statement",
|
|
7857
8057
|
target: "intro",
|
|
7858
|
-
label: "
|
|
8058
|
+
label: "Organic intro statement",
|
|
7859
8059
|
blockKinds: ["block.intro"],
|
|
7860
8060
|
design: {
|
|
7861
8061
|
sectionSurface: "base",
|
|
@@ -7886,9 +8086,9 @@ var blockAppearancePresets = [
|
|
|
7886
8086
|
}),
|
|
7887
8087
|
defineBlockAppearancePreset({
|
|
7888
8088
|
kind: "block-design",
|
|
7889
|
-
id: "feature-cards-
|
|
8089
|
+
id: "feature-cards-raised-rule",
|
|
7890
8090
|
target: "feature-cards",
|
|
7891
|
-
label: "
|
|
8091
|
+
label: "Raised cards with rule",
|
|
7892
8092
|
blockKinds: ["block.feature-cards"],
|
|
7893
8093
|
design: {
|
|
7894
8094
|
sectionSurface: "base",
|
|
@@ -7917,6 +8117,21 @@ var blockAppearancePresets = [
|
|
|
7917
8117
|
emphasis: "medium"
|
|
7918
8118
|
}
|
|
7919
8119
|
}),
|
|
8120
|
+
defineBlockAppearancePreset({
|
|
8121
|
+
kind: "block-design",
|
|
8122
|
+
id: "events-lined-panel",
|
|
8123
|
+
target: "events",
|
|
8124
|
+
label: "Lined event panel",
|
|
8125
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
8126
|
+
design: {
|
|
8127
|
+
sectionSurface: "base",
|
|
8128
|
+
contentFrame: plainFrame,
|
|
8129
|
+
itemSurface: "none",
|
|
8130
|
+
transitionAfter: "none",
|
|
8131
|
+
emphasis: "medium",
|
|
8132
|
+
eventListTreatment: "lined-panel"
|
|
8133
|
+
}
|
|
8134
|
+
}),
|
|
7920
8135
|
defineBlockAppearancePreset({
|
|
7921
8136
|
kind: "block-design",
|
|
7922
8137
|
id: "schedule-details-accent-section",
|
|
@@ -7976,9 +8191,9 @@ var blockAppearancePresets = [
|
|
|
7976
8191
|
}),
|
|
7977
8192
|
defineBlockAppearancePreset({
|
|
7978
8193
|
kind: "block-design",
|
|
7979
|
-
id: "testimonials-
|
|
8194
|
+
id: "testimonials-simple-cards",
|
|
7980
8195
|
target: "testimonials",
|
|
7981
|
-
label: "
|
|
8196
|
+
label: "Simple testimonial cards",
|
|
7982
8197
|
blockKinds: ["block.testimonials"],
|
|
7983
8198
|
design: {
|
|
7984
8199
|
sectionSurface: "base",
|
|
@@ -7990,9 +8205,9 @@ var blockAppearancePresets = [
|
|
|
7990
8205
|
}),
|
|
7991
8206
|
defineBlockAppearancePreset({
|
|
7992
8207
|
kind: "block-design",
|
|
7993
|
-
id: "testimonials-
|
|
8208
|
+
id: "testimonials-raised-panel",
|
|
7994
8209
|
target: "testimonials",
|
|
7995
|
-
label: "
|
|
8210
|
+
label: "Raised testimonial panel",
|
|
7996
8211
|
blockKinds: ["block.testimonials"],
|
|
7997
8212
|
design: {
|
|
7998
8213
|
sectionSurface: "muted-band",
|
|
@@ -8004,9 +8219,9 @@ var blockAppearancePresets = [
|
|
|
8004
8219
|
}),
|
|
8005
8220
|
defineBlockAppearancePreset({
|
|
8006
8221
|
kind: "block-design",
|
|
8007
|
-
id: "testimonials-
|
|
8222
|
+
id: "testimonials-accent-panel",
|
|
8008
8223
|
target: "testimonials",
|
|
8009
|
-
label: "
|
|
8224
|
+
label: "Accent testimonial panel",
|
|
8010
8225
|
blockKinds: ["block.testimonials"],
|
|
8011
8226
|
design: {
|
|
8012
8227
|
sectionSurface: "accent-band",
|
|
@@ -8018,9 +8233,9 @@ var blockAppearancePresets = [
|
|
|
8018
8233
|
}),
|
|
8019
8234
|
defineBlockAppearancePreset({
|
|
8020
8235
|
kind: "block-design",
|
|
8021
|
-
id: "testimonials-accent-quote-
|
|
8236
|
+
id: "testimonials-accent-quote-cards",
|
|
8022
8237
|
target: "testimonials",
|
|
8023
|
-
label: "Accent quote
|
|
8238
|
+
label: "Accent quote cards",
|
|
8024
8239
|
blockKinds: ["block.testimonials"],
|
|
8025
8240
|
design: {
|
|
8026
8241
|
sectionSurface: "accent-band",
|
|
@@ -8033,9 +8248,9 @@ var blockAppearancePresets = [
|
|
|
8033
8248
|
}),
|
|
8034
8249
|
defineBlockAppearancePreset({
|
|
8035
8250
|
kind: "block-design",
|
|
8036
|
-
id: "testimonials-
|
|
8251
|
+
id: "testimonials-brand-background-quotes",
|
|
8037
8252
|
target: "testimonials",
|
|
8038
|
-
label: "
|
|
8253
|
+
label: "Brand background quotes",
|
|
8039
8254
|
blockKinds: ["block.testimonials"],
|
|
8040
8255
|
design: {
|
|
8041
8256
|
sectionSurface: "brand-depth-band",
|
|
@@ -8079,25 +8294,6 @@ var blockAppearancePresets = [
|
|
|
8079
8294
|
emphasis: "low"
|
|
8080
8295
|
}
|
|
8081
8296
|
}),
|
|
8082
|
-
defineBlockAppearancePreset({
|
|
8083
|
-
kind: "block-design",
|
|
8084
|
-
id: "faq-soft-earth-two-column",
|
|
8085
|
-
target: "faq",
|
|
8086
|
-
label: "Soft Earth two-column FAQ",
|
|
8087
|
-
blockKinds: ["block.faq"],
|
|
8088
|
-
design: {
|
|
8089
|
-
sectionSurface: "base",
|
|
8090
|
-
contentFrame: plainFrame,
|
|
8091
|
-
itemSurface: "flat",
|
|
8092
|
-
transitionAfter: "none",
|
|
8093
|
-
emphasis: "medium",
|
|
8094
|
-
accordionIconTreatment: {
|
|
8095
|
-
iconSet: "plus",
|
|
8096
|
-
colorToken: "primary",
|
|
8097
|
-
motion: "swap"
|
|
8098
|
-
}
|
|
8099
|
-
}
|
|
8100
|
-
}),
|
|
8101
8297
|
defineBlockAppearancePreset({
|
|
8102
8298
|
kind: "block-design",
|
|
8103
8299
|
id: "contact-form-panel",
|
|
@@ -9476,7 +9672,8 @@ var accordionSystemSchema = z12.object({
|
|
|
9476
9672
|
icon: z12.object({
|
|
9477
9673
|
style: accordionIconSchema,
|
|
9478
9674
|
position: z12.enum(["left", "right"]),
|
|
9479
|
-
size: z12.enum(["sm", "md", "lg"])
|
|
9675
|
+
size: z12.enum(["sm", "md", "lg"]),
|
|
9676
|
+
colorToken: themeColorTokenSchema.optional()
|
|
9480
9677
|
}),
|
|
9481
9678
|
// Trigger (question) styling
|
|
9482
9679
|
trigger: z12.object({
|
|
@@ -9610,6 +9807,7 @@ var navLinkPaddingXSchema = z16.enum(["none", "tight", "compact", "default", "re
|
|
|
9610
9807
|
var navLinkBorderRadiusSchema = z16.enum(["none", "sm", "md", "full"]);
|
|
9611
9808
|
var navLinkTextSizeSchema = z16.enum(["xs", "sm", "base", "lg"]);
|
|
9612
9809
|
var navLinkLetterSpacingSchema = z16.enum(["normal", "wide", "wider", "widest"]);
|
|
9810
|
+
var navLinkContrastTreatmentSchema = z16.enum(["none", "soft-glow"]);
|
|
9613
9811
|
var navLinkStyleSchema = z16.object({
|
|
9614
9812
|
/** Display name for the style */
|
|
9615
9813
|
name: z16.string().min(1).max(30).optional(),
|
|
@@ -9621,6 +9819,8 @@ var navLinkStyleSchema = z16.object({
|
|
|
9621
9819
|
textSize: navLinkTextSizeSchema.optional(),
|
|
9622
9820
|
/** Optional letter spacing override */
|
|
9623
9821
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
9822
|
+
/** Optional text-only contrast treatment for transparent/overlay navigation */
|
|
9823
|
+
contrastTreatment: navLinkContrastTreatmentSchema.optional(),
|
|
9624
9824
|
/** Hover/active color token (for color-change effects) */
|
|
9625
9825
|
hoverColorToken: themeColorTokenSchema.nullable().optional(),
|
|
9626
9826
|
/** Padding preset */
|
|
@@ -10050,6 +10250,7 @@ var sectionStylesOverrideSchema = z21.object({
|
|
|
10050
10250
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
10051
10251
|
minHeight: z21.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
10052
10252
|
tileTreatment: z21.enum(tileTreatmentValues).nullable().optional(),
|
|
10253
|
+
eventListTreatment: z21.enum(eventListTreatmentValues).nullable().optional(),
|
|
10053
10254
|
eyebrowTreatment: z21.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
10054
10255
|
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
10055
10256
|
// Author-level override consumed by later block/editor rendering phases.
|
|
@@ -10883,6 +11084,34 @@ var paletteVariantsById = new Map(
|
|
|
10883
11084
|
paletteVariants.map((v) => [v.id, v])
|
|
10884
11085
|
);
|
|
10885
11086
|
|
|
11087
|
+
// ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
11088
|
+
var softEarthAccordionSystem = {
|
|
11089
|
+
background: {
|
|
11090
|
+
type: "solid",
|
|
11091
|
+
colorToken: "background"
|
|
11092
|
+
},
|
|
11093
|
+
spacing: "comfortable",
|
|
11094
|
+
corners: "square",
|
|
11095
|
+
border: null,
|
|
11096
|
+
shadow: null,
|
|
11097
|
+
icon: {
|
|
11098
|
+
style: "plus-minus",
|
|
11099
|
+
position: "right",
|
|
11100
|
+
size: "md",
|
|
11101
|
+
colorToken: "primary"
|
|
11102
|
+
},
|
|
11103
|
+
trigger: {
|
|
11104
|
+
textColorToken: "text",
|
|
11105
|
+
fontWeight: "medium"
|
|
11106
|
+
},
|
|
11107
|
+
hover: {
|
|
11108
|
+
textColorToken: "primary"
|
|
11109
|
+
},
|
|
11110
|
+
content: {
|
|
11111
|
+
textColorToken: "neutral-700"
|
|
11112
|
+
}
|
|
11113
|
+
};
|
|
11114
|
+
|
|
10886
11115
|
// ../theme-core/src/site-styles/headerLooks.ts
|
|
10887
11116
|
function asHeaderLookId(value) {
|
|
10888
11117
|
return value;
|
|
@@ -10938,7 +11167,7 @@ var headerLayoutCatalog = [
|
|
|
10938
11167
|
description: "Detached header chrome that sits over the opening section.",
|
|
10939
11168
|
structure: "floating-shell",
|
|
10940
11169
|
variant: "floating",
|
|
10941
|
-
defaultPositioning: "
|
|
11170
|
+
defaultPositioning: "sticky",
|
|
10942
11171
|
shrinkOnScroll: true,
|
|
10943
11172
|
maxRecommendedNavItems: 5,
|
|
10944
11173
|
allowedLogoShapes: ["none", "text-only", "horizontal"]
|
|
@@ -10955,7 +11184,9 @@ var headerStyleCatalog = [
|
|
|
10955
11184
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10956
11185
|
navInteraction: "color-change",
|
|
10957
11186
|
surface: "neutral",
|
|
10958
|
-
|
|
11187
|
+
defaultDepth: "none",
|
|
11188
|
+
navTypography: "plain",
|
|
11189
|
+
moods: ["calm", "professional", "editorial"]
|
|
10959
11190
|
},
|
|
10960
11191
|
{
|
|
10961
11192
|
id: asHeaderStyleId("fine-line"),
|
|
@@ -10964,7 +11195,9 @@ var headerStyleCatalog = [
|
|
|
10964
11195
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10965
11196
|
navInteraction: "underline-grow",
|
|
10966
11197
|
surface: "bordered",
|
|
10967
|
-
|
|
11198
|
+
defaultDepth: "line",
|
|
11199
|
+
navTypography: "plain",
|
|
11200
|
+
moods: ["calm", "professional", "editorial"]
|
|
10968
11201
|
},
|
|
10969
11202
|
{
|
|
10970
11203
|
id: asHeaderStyleId("soft-bar"),
|
|
@@ -10973,7 +11206,9 @@ var headerStyleCatalog = [
|
|
|
10973
11206
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10974
11207
|
navInteraction: "pill-background",
|
|
10975
11208
|
surface: "soft",
|
|
10976
|
-
|
|
11209
|
+
defaultDepth: "line",
|
|
11210
|
+
navTypography: "plain",
|
|
11211
|
+
moods: ["calm", "professional"]
|
|
10977
11212
|
},
|
|
10978
11213
|
{
|
|
10979
11214
|
id: asHeaderStyleId("pill-nav"),
|
|
@@ -10982,7 +11217,9 @@ var headerStyleCatalog = [
|
|
|
10982
11217
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10983
11218
|
navInteraction: "pill-background",
|
|
10984
11219
|
surface: "soft",
|
|
10985
|
-
|
|
11220
|
+
defaultDepth: "none",
|
|
11221
|
+
navTypography: "plain",
|
|
11222
|
+
moods: ["calm"]
|
|
10986
11223
|
},
|
|
10987
11224
|
{
|
|
10988
11225
|
id: asHeaderStyleId("brand-bar"),
|
|
@@ -10991,7 +11228,9 @@ var headerStyleCatalog = [
|
|
|
10991
11228
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10992
11229
|
navInteraction: "color-change",
|
|
10993
11230
|
surface: "brand-solid",
|
|
10994
|
-
|
|
11231
|
+
defaultDepth: "none",
|
|
11232
|
+
navTypography: "brand-caps",
|
|
11233
|
+
moods: ["professional", "expressive", "utility"]
|
|
10995
11234
|
},
|
|
10996
11235
|
{
|
|
10997
11236
|
id: asHeaderStyleId("brand-underline"),
|
|
@@ -11000,7 +11239,9 @@ var headerStyleCatalog = [
|
|
|
11000
11239
|
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
11001
11240
|
navInteraction: "underline-grow",
|
|
11002
11241
|
surface: "brand-solid",
|
|
11003
|
-
|
|
11242
|
+
defaultDepth: "none",
|
|
11243
|
+
navTypography: "brand-caps",
|
|
11244
|
+
moods: ["expressive"]
|
|
11004
11245
|
},
|
|
11005
11246
|
{
|
|
11006
11247
|
id: asHeaderStyleId("brand-pill"),
|
|
@@ -11009,7 +11250,9 @@ var headerStyleCatalog = [
|
|
|
11009
11250
|
supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
|
|
11010
11251
|
navInteraction: "pill-background",
|
|
11011
11252
|
surface: "brand-solid",
|
|
11012
|
-
|
|
11253
|
+
defaultDepth: "none",
|
|
11254
|
+
navTypography: "brand-caps",
|
|
11255
|
+
moods: ["expressive"]
|
|
11013
11256
|
},
|
|
11014
11257
|
{
|
|
11015
11258
|
id: asHeaderStyleId("serif-line"),
|
|
@@ -11018,7 +11261,9 @@ var headerStyleCatalog = [
|
|
|
11018
11261
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
11019
11262
|
navInteraction: "underline-grow",
|
|
11020
11263
|
surface: "bordered",
|
|
11021
|
-
|
|
11264
|
+
defaultDepth: "line",
|
|
11265
|
+
navTypography: "heading",
|
|
11266
|
+
moods: ["editorial", "calm"]
|
|
11022
11267
|
},
|
|
11023
11268
|
{
|
|
11024
11269
|
id: asHeaderStyleId("flat-tabs"),
|
|
@@ -11027,16 +11272,20 @@ var headerStyleCatalog = [
|
|
|
11027
11272
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
11028
11273
|
navInteraction: "flat-block",
|
|
11029
11274
|
surface: "bordered",
|
|
11030
|
-
|
|
11275
|
+
defaultDepth: "shadow",
|
|
11276
|
+
navTypography: "quiet-caps",
|
|
11277
|
+
moods: ["professional", "utility", "expressive"]
|
|
11031
11278
|
},
|
|
11032
11279
|
{
|
|
11033
11280
|
id: asHeaderStyleId("glass"),
|
|
11034
11281
|
label: "Glass",
|
|
11035
11282
|
description: "Translucent chrome with frosted navigation backing.",
|
|
11036
|
-
supportedLayoutIds: supportedLayouts(["
|
|
11283
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11037
11284
|
navInteraction: "glass-backed",
|
|
11038
11285
|
surface: "floating",
|
|
11039
|
-
|
|
11286
|
+
defaultDepth: "shadow",
|
|
11287
|
+
navTypography: "plain",
|
|
11288
|
+
moods: ["expressive", "calm"]
|
|
11040
11289
|
},
|
|
11041
11290
|
{
|
|
11042
11291
|
id: asHeaderStyleId("minimal-surface"),
|
|
@@ -11045,7 +11294,9 @@ var headerStyleCatalog = [
|
|
|
11045
11294
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11046
11295
|
navInteraction: "color-change",
|
|
11047
11296
|
surface: "floating",
|
|
11048
|
-
|
|
11297
|
+
defaultDepth: "none",
|
|
11298
|
+
navTypography: "plain",
|
|
11299
|
+
moods: ["editorial", "calm"]
|
|
11049
11300
|
},
|
|
11050
11301
|
{
|
|
11051
11302
|
id: asHeaderStyleId("soft-shell"),
|
|
@@ -11054,7 +11305,9 @@ var headerStyleCatalog = [
|
|
|
11054
11305
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11055
11306
|
navInteraction: "pill-background",
|
|
11056
11307
|
surface: "floating",
|
|
11057
|
-
|
|
11308
|
+
defaultDepth: "shadow",
|
|
11309
|
+
navTypography: "plain",
|
|
11310
|
+
moods: ["calm", "professional"]
|
|
11058
11311
|
},
|
|
11059
11312
|
{
|
|
11060
11313
|
id: asHeaderStyleId("split-glass"),
|
|
@@ -11063,7 +11316,9 @@ var headerStyleCatalog = [
|
|
|
11063
11316
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11064
11317
|
navInteraction: "glass-backed",
|
|
11065
11318
|
surface: "floating",
|
|
11066
|
-
|
|
11319
|
+
defaultDepth: "shadow",
|
|
11320
|
+
navTypography: "quiet-caps",
|
|
11321
|
+
moods: ["expressive"]
|
|
11067
11322
|
},
|
|
11068
11323
|
{
|
|
11069
11324
|
id: asHeaderStyleId("split-pill"),
|
|
@@ -11072,7 +11327,9 @@ var headerStyleCatalog = [
|
|
|
11072
11327
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11073
11328
|
navInteraction: "pill-background",
|
|
11074
11329
|
surface: "floating",
|
|
11075
|
-
|
|
11330
|
+
defaultDepth: "shadow",
|
|
11331
|
+
navTypography: "heading",
|
|
11332
|
+
moods: ["calm", "editorial"]
|
|
11076
11333
|
}
|
|
11077
11334
|
];
|
|
11078
11335
|
var headerLayoutsById = new Map(
|
|
@@ -11086,7 +11343,6 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
11086
11343
|
asHeaderLayoutId("classic"),
|
|
11087
11344
|
headerStyleRepairChain([
|
|
11088
11345
|
"minimal",
|
|
11089
|
-
"glass",
|
|
11090
11346
|
"fine-line",
|
|
11091
11347
|
"soft-bar",
|
|
11092
11348
|
"pill-nav",
|
|
@@ -11153,7 +11409,13 @@ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
|
11153
11409
|
],
|
|
11154
11410
|
[
|
|
11155
11411
|
asHeaderStyleId("glass"),
|
|
11156
|
-
headerStyleRepairChain([
|
|
11412
|
+
headerStyleRepairChain([
|
|
11413
|
+
"glass",
|
|
11414
|
+
"soft-shell",
|
|
11415
|
+
"fine-line",
|
|
11416
|
+
"minimal-surface",
|
|
11417
|
+
"minimal"
|
|
11418
|
+
])
|
|
11157
11419
|
],
|
|
11158
11420
|
[
|
|
11159
11421
|
asHeaderStyleId("soft-shell"),
|
|
@@ -11265,6 +11527,23 @@ function getCompatibleHeaderStyleIds(layoutId) {
|
|
|
11265
11527
|
}
|
|
11266
11528
|
);
|
|
11267
11529
|
}
|
|
11530
|
+
function themedHeaderShadow(theme) {
|
|
11531
|
+
switch (theme.shadow.elevation) {
|
|
11532
|
+
case "none":
|
|
11533
|
+
return void 0;
|
|
11534
|
+
case "low":
|
|
11535
|
+
return { elevation: "sm" };
|
|
11536
|
+
case "medium":
|
|
11537
|
+
return { elevation: "md" };
|
|
11538
|
+
case "high":
|
|
11539
|
+
return { elevation: "lg" };
|
|
11540
|
+
default:
|
|
11541
|
+
return assertNever(
|
|
11542
|
+
theme.shadow.elevation,
|
|
11543
|
+
"Unhandled theme shadow elevation"
|
|
11544
|
+
);
|
|
11545
|
+
}
|
|
11546
|
+
}
|
|
11268
11547
|
function solidBrandHeader(theme) {
|
|
11269
11548
|
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
11270
11549
|
return {
|
|
@@ -11414,9 +11693,7 @@ function practicalUtilityHeader(theme) {
|
|
|
11414
11693
|
navColor: "text",
|
|
11415
11694
|
navStyle: "solid",
|
|
11416
11695
|
navWeight: "semibold",
|
|
11417
|
-
shadow:
|
|
11418
|
-
elevation: "sm"
|
|
11419
|
-
},
|
|
11696
|
+
shadow: themedHeaderShadow(theme),
|
|
11420
11697
|
border: {
|
|
11421
11698
|
style: "solid",
|
|
11422
11699
|
width: "thin",
|
|
@@ -11485,6 +11762,7 @@ function floatingGlassHeader(theme) {
|
|
|
11485
11762
|
return {
|
|
11486
11763
|
...transparentOverlayHeader(theme),
|
|
11487
11764
|
variant: "floating",
|
|
11765
|
+
positioning: "sticky",
|
|
11488
11766
|
navStyle: "frosted",
|
|
11489
11767
|
navContainer: {
|
|
11490
11768
|
type: "glass",
|
|
@@ -12000,7 +12278,7 @@ var typographyPresets = [
|
|
|
12000
12278
|
heroTypography: {
|
|
12001
12279
|
headlineSize: "6xl",
|
|
12002
12280
|
headlineLineHeight: "tight",
|
|
12003
|
-
subheadlineSize: "
|
|
12281
|
+
subheadlineSize: "2xl",
|
|
12004
12282
|
subheadlineLineHeight: "normal",
|
|
12005
12283
|
microHeadlineSize: "6xl",
|
|
12006
12284
|
microHeadlineLineHeight: "tight",
|
|
@@ -12018,6 +12296,8 @@ var typographyPresetsById = new Map(
|
|
|
12018
12296
|
);
|
|
12019
12297
|
|
|
12020
12298
|
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
12299
|
+
var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
|
|
12300
|
+
var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
|
|
12021
12301
|
var curatedSiteStyleIdValues = [
|
|
12022
12302
|
"site-style:calm-studio",
|
|
12023
12303
|
"site-style:clear-professional",
|
|
@@ -12029,7 +12309,7 @@ var curatedSiteStyleIdValues = [
|
|
|
12029
12309
|
"site-style:personal-retreat-journal",
|
|
12030
12310
|
"site-style:tactile-workshop",
|
|
12031
12311
|
"site-style:modern-wellness",
|
|
12032
|
-
|
|
12312
|
+
SOFT_EARTH_SITE_STYLE_ID_VALUE,
|
|
12033
12313
|
"site-style:bold-launch",
|
|
12034
12314
|
"site-style:south-west-twerk-school"
|
|
12035
12315
|
];
|
|
@@ -12111,7 +12391,10 @@ function uniqueContentFrameKinds() {
|
|
|
12111
12391
|
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
12112
12392
|
function defineCuratedSiteStyle(input) {
|
|
12113
12393
|
const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
|
|
12114
|
-
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
12394
|
+
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
12395
|
+
legacyHeaderLookIds,
|
|
12396
|
+
input.tokenRecipes
|
|
12397
|
+
);
|
|
12115
12398
|
const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
|
|
12116
12399
|
const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
|
|
12117
12400
|
if (!typographyPresetChoices.some(
|
|
@@ -12144,6 +12427,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
12144
12427
|
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
12145
12428
|
},
|
|
12146
12429
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
12430
|
+
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
12147
12431
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
12148
12432
|
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
12149
12433
|
layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
|
|
@@ -12202,7 +12486,69 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
|
12202
12486
|
};
|
|
12203
12487
|
return [first, ...choices.slice(1)];
|
|
12204
12488
|
}
|
|
12205
|
-
function
|
|
12489
|
+
function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
12490
|
+
const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
|
|
12491
|
+
const seen = /* @__PURE__ */ new Set();
|
|
12492
|
+
const unique = choices.filter((choice) => {
|
|
12493
|
+
if (!compatible.has(choice.id)) return false;
|
|
12494
|
+
if (seen.has(choice.id)) return false;
|
|
12495
|
+
seen.add(choice.id);
|
|
12496
|
+
return true;
|
|
12497
|
+
});
|
|
12498
|
+
return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
|
|
12499
|
+
}
|
|
12500
|
+
function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
|
|
12501
|
+
switch (layoutId) {
|
|
12502
|
+
case "classic":
|
|
12503
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12504
|
+
return [
|
|
12505
|
+
"brand-bar",
|
|
12506
|
+
"brand-underline",
|
|
12507
|
+
"flat-tabs",
|
|
12508
|
+
"brand-pill",
|
|
12509
|
+
"fine-line"
|
|
12510
|
+
];
|
|
12511
|
+
}
|
|
12512
|
+
if (recipes.spacing === "compact") {
|
|
12513
|
+
return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
|
|
12514
|
+
}
|
|
12515
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12516
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
12517
|
+
}
|
|
12518
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
12519
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
12520
|
+
}
|
|
12521
|
+
return ["fine-line", "minimal", "soft-bar", "brand-bar"];
|
|
12522
|
+
case "centered":
|
|
12523
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12524
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
12525
|
+
}
|
|
12526
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12527
|
+
return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
|
|
12528
|
+
}
|
|
12529
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
12530
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
12531
|
+
}
|
|
12532
|
+
return ["minimal", "fine-line", "soft-bar"];
|
|
12533
|
+
case "floating":
|
|
12534
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12535
|
+
return ["glass", "split-glass", "brand-pill", "soft-shell"];
|
|
12536
|
+
}
|
|
12537
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12538
|
+
return ["split-pill", "minimal-surface", "soft-shell"];
|
|
12539
|
+
}
|
|
12540
|
+
return ["soft-shell", "minimal-surface", "glass"];
|
|
12541
|
+
default:
|
|
12542
|
+
return [];
|
|
12543
|
+
}
|
|
12544
|
+
}
|
|
12545
|
+
function isExpressiveRecipe(recipes) {
|
|
12546
|
+
return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
|
|
12547
|
+
}
|
|
12548
|
+
function isSerifTypographyRecipe(recipes) {
|
|
12549
|
+
return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
|
|
12550
|
+
}
|
|
12551
|
+
function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
|
|
12206
12552
|
const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
|
|
12207
12553
|
(selection) => Boolean(selection)
|
|
12208
12554
|
);
|
|
@@ -12215,8 +12561,15 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
|
|
|
12215
12561
|
);
|
|
12216
12562
|
const stylesByLayout = {};
|
|
12217
12563
|
for (const layoutChoice of layoutChoices) {
|
|
12218
|
-
const
|
|
12219
|
-
|
|
12564
|
+
const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
|
|
12565
|
+
const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
|
|
12566
|
+
layoutChoice.id,
|
|
12567
|
+
recipes
|
|
12568
|
+
).map((styleId) => headerStyleChoice(styleId));
|
|
12569
|
+
stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
|
|
12570
|
+
[...legacyStyleChoices, ...inferredStyleChoices],
|
|
12571
|
+
layoutChoice.id
|
|
12572
|
+
);
|
|
12220
12573
|
}
|
|
12221
12574
|
return {
|
|
12222
12575
|
defaultHeaderSelection,
|
|
@@ -12636,10 +12989,10 @@ var curatedSiteStyles = [
|
|
|
12636
12989
|
]
|
|
12637
12990
|
}),
|
|
12638
12991
|
defineCuratedSiteStyle({
|
|
12639
|
-
id:
|
|
12992
|
+
id: SOFT_EARTH_SITE_STYLE_ID,
|
|
12640
12993
|
name: "Soft Earth",
|
|
12641
12994
|
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
12642
|
-
generationBrief: "Use cream space, terracotta CTAs, olive
|
|
12995
|
+
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.",
|
|
12643
12996
|
siteCreatorSelection: {
|
|
12644
12997
|
kind: "site_creator_keyword_heuristic",
|
|
12645
12998
|
priority: 45
|
|
@@ -12709,14 +13062,18 @@ var curatedSiteStyles = [
|
|
|
12709
13062
|
paragraphSize: "default",
|
|
12710
13063
|
headingSize: "editorial"
|
|
12711
13064
|
}
|
|
12712
|
-
}
|
|
13065
|
+
},
|
|
13066
|
+
accordions: softEarthAccordionSystem
|
|
13067
|
+
},
|
|
13068
|
+
defaultBlockVariants: {
|
|
13069
|
+
"block.faq": "question-columns"
|
|
12713
13070
|
},
|
|
12714
13071
|
recommendedAppearancePresetIds: [
|
|
12715
13072
|
"hero-brand-scrim",
|
|
12716
|
-
"intro-
|
|
12717
|
-
"feature-cards-
|
|
12718
|
-
"
|
|
12719
|
-
"
|
|
13073
|
+
"intro-organic-statement",
|
|
13074
|
+
"feature-cards-raised-rule",
|
|
13075
|
+
"events-lined-panel",
|
|
13076
|
+
"testimonials-brand-background-quotes",
|
|
12720
13077
|
"contact-form-panel"
|
|
12721
13078
|
],
|
|
12722
13079
|
recommendedHeaderLookIds: [
|
|
@@ -12820,7 +13177,7 @@ var curatedSiteStyles = [
|
|
|
12820
13177
|
"hero-brand-scrim-fixed-frame",
|
|
12821
13178
|
"body-text-editorial-intro",
|
|
12822
13179
|
"schedule-details-brand-depth",
|
|
12823
|
-
"testimonials-accent-quote-
|
|
13180
|
+
"testimonials-accent-quote-cards",
|
|
12824
13181
|
"contact-form-brand-depth-card"
|
|
12825
13182
|
],
|
|
12826
13183
|
recommendedHeaderLookIds: [
|
|
@@ -12915,6 +13272,7 @@ var themeV2RuntimeStyleFieldNames = [
|
|
|
12915
13272
|
];
|
|
12916
13273
|
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
12917
13274
|
"_contentCardStyles",
|
|
13275
|
+
"_heroLayoutStyles",
|
|
12918
13276
|
"_textCardStyles"
|
|
12919
13277
|
];
|
|
12920
13278
|
var themeV2NormalEditorRawStyleFieldNames = [
|
|
@@ -12924,6 +13282,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
|
|
|
12924
13282
|
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
12925
13283
|
themeV2NormalEditorRawStyleFieldNames
|
|
12926
13284
|
);
|
|
13285
|
+
var themeV2CompilerOwnedFieldNames = [
|
|
13286
|
+
...themeV2RuntimeStyleFieldNames,
|
|
13287
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
13288
|
+
];
|
|
12927
13289
|
|
|
12928
13290
|
// ../theme-core/src/site-styles/designState.ts
|
|
12929
13291
|
var themeV2DesignStateSchemaVersion = 1;
|
|
@@ -12938,6 +13300,16 @@ var heroLegibilityStrategySchema = z23.enum([
|
|
|
12938
13300
|
"scrim-gradient",
|
|
12939
13301
|
"solid-panel"
|
|
12940
13302
|
]);
|
|
13303
|
+
var heroCompositionIntentSchema = z23.enum([
|
|
13304
|
+
"center",
|
|
13305
|
+
"bottom-left"
|
|
13306
|
+
]);
|
|
13307
|
+
var heroTypographyScaleIntentSchema = z23.enum([
|
|
13308
|
+
"quiet",
|
|
13309
|
+
"editorial",
|
|
13310
|
+
"display",
|
|
13311
|
+
"poster"
|
|
13312
|
+
]);
|
|
12941
13313
|
var sectionHeightIntentSchema = z23.enum([
|
|
12942
13314
|
"default",
|
|
12943
13315
|
"banner",
|
|
@@ -12973,6 +13345,7 @@ var imageSurfaceTreatmentSchema = z23.discriminatedUnion("kind", [
|
|
|
12973
13345
|
]);
|
|
12974
13346
|
var testimonialCardTreatmentSchema = z23.enum(["default", "accent-quote"]);
|
|
12975
13347
|
var tileTreatmentSchema = z23.enum(tileTreatmentValues);
|
|
13348
|
+
var eventListTreatmentSchema = z23.enum(eventListTreatmentValues);
|
|
12976
13349
|
var eyebrowTreatmentSchema = z23.enum(eyebrowTreatmentValues);
|
|
12977
13350
|
function uniqueNonEmpty(values) {
|
|
12978
13351
|
const uniqueValues = [...new Set(values)];
|
|
@@ -13014,10 +13387,13 @@ var blockDesignPlanSchema = z23.object({
|
|
|
13014
13387
|
emphasis: z23.enum(userDesignOptionCatalog.emphases),
|
|
13015
13388
|
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
13016
13389
|
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
13390
|
+
heroComposition: heroCompositionIntentSchema.optional(),
|
|
13391
|
+
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
13017
13392
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
13018
13393
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
13019
13394
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
13020
13395
|
tileTreatment: tileTreatmentSchema.optional(),
|
|
13396
|
+
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
13021
13397
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
13022
13398
|
}).strict();
|
|
13023
13399
|
var styleAuthoritySchema = z23.discriminatedUnion("kind", [
|
|
@@ -14417,6 +14793,7 @@ function styledSection(config) {
|
|
|
14417
14793
|
renderBackgroundImage = true,
|
|
14418
14794
|
backgroundImageLoading,
|
|
14419
14795
|
backgroundImageFetchPriority,
|
|
14796
|
+
allowOverflow = false,
|
|
14420
14797
|
fullWidthPath
|
|
14421
14798
|
} = config;
|
|
14422
14799
|
const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
|
|
@@ -14451,7 +14828,7 @@ function styledSection(config) {
|
|
|
14451
14828
|
// No fallback needed - transform handles all cases via defaultSpacing
|
|
14452
14829
|
}
|
|
14453
14830
|
},
|
|
14454
|
-
allowOverflow: {
|
|
14831
|
+
allowOverflow: allowOverflow ? true : {
|
|
14455
14832
|
$bind: {
|
|
14456
14833
|
from: `${bindFrom}.background`,
|
|
14457
14834
|
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
@@ -15135,6 +15512,14 @@ var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
|
15135
15512
|
function isTileTreatment(value) {
|
|
15136
15513
|
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
15137
15514
|
}
|
|
15515
|
+
var eventListTreatmentClassMap = {
|
|
15516
|
+
plain: "",
|
|
15517
|
+
"lined-panel": "rb-event-list-treatment-lined-panel"
|
|
15518
|
+
};
|
|
15519
|
+
var eventListTreatmentSet = new Set(eventListTreatmentValues);
|
|
15520
|
+
function isEventListTreatment(value) {
|
|
15521
|
+
return typeof value === "string" && eventListTreatmentSet.has(value);
|
|
15522
|
+
}
|
|
15138
15523
|
var sectionClassNameTransform = {
|
|
15139
15524
|
id: "sectionStyles.resolveClassName",
|
|
15140
15525
|
kind: "string",
|
|
@@ -15202,6 +15587,17 @@ var sectionClassNameTransform = {
|
|
|
15202
15587
|
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
15203
15588
|
);
|
|
15204
15589
|
}
|
|
15590
|
+
const eventListTreatment = input?.eventListTreatment;
|
|
15591
|
+
if (isEventListTreatment(eventListTreatment)) {
|
|
15592
|
+
const eventListTreatmentClass = eventListTreatmentClassMap[eventListTreatment];
|
|
15593
|
+
if (eventListTreatmentClass) {
|
|
15594
|
+
classes.push(eventListTreatmentClass);
|
|
15595
|
+
}
|
|
15596
|
+
} else if (typeof eventListTreatment === "string" && process.env.NODE_ENV !== "production") {
|
|
15597
|
+
console.warn(
|
|
15598
|
+
`[sectionStyles] Invalid eventListTreatment value in _sectionStyles: "${eventListTreatment}". Expected one of: ${eventListTreatmentValues.join(", ")}.`
|
|
15599
|
+
);
|
|
15600
|
+
}
|
|
15205
15601
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
15206
15602
|
classes.push(fixedFrameScopeClass);
|
|
15207
15603
|
}
|
|
@@ -15637,6 +16033,35 @@ function sectionState(opts) {
|
|
|
15637
16033
|
);
|
|
15638
16034
|
}
|
|
15639
16035
|
|
|
16036
|
+
// ../blocks/src/system/node/fragments/headingDecoration.ts
|
|
16037
|
+
var defaultBindFrom = "_sectionStyles.headingDecoration";
|
|
16038
|
+
function headingDecoration({
|
|
16039
|
+
bindFrom = defaultBindFrom,
|
|
16040
|
+
family,
|
|
16041
|
+
placement,
|
|
16042
|
+
className
|
|
16043
|
+
}) {
|
|
16044
|
+
return el(
|
|
16045
|
+
"div",
|
|
16046
|
+
{
|
|
16047
|
+
"aria-hidden": "true",
|
|
16048
|
+
className: {
|
|
16049
|
+
$bind: {
|
|
16050
|
+
from: bindFrom,
|
|
16051
|
+
transforms: [
|
|
16052
|
+
{
|
|
16053
|
+
id: "ui.headingDecorationClassName",
|
|
16054
|
+
options: { baseClass: className, family }
|
|
16055
|
+
}
|
|
16056
|
+
]
|
|
16057
|
+
}
|
|
16058
|
+
}
|
|
16059
|
+
},
|
|
16060
|
+
null,
|
|
16061
|
+
when(`${bindFrom}.placement`, { equals: placement })
|
|
16062
|
+
);
|
|
16063
|
+
}
|
|
16064
|
+
|
|
15640
16065
|
// ../blocks/src/system/fragments/types.ts
|
|
15641
16066
|
import { z as z27 } from "zod";
|
|
15642
16067
|
var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
@@ -15722,47 +16147,48 @@ function validateFieldDefinitions(fields3, fragmentId) {
|
|
|
15722
16147
|
function prefixFieldId(field, scope) {
|
|
15723
16148
|
const cloned = cloneFieldDefinition2(field);
|
|
15724
16149
|
cloned.id = `${scope}.${field.id}`;
|
|
15725
|
-
|
|
16150
|
+
const defaultValue = cloned.defaultValue;
|
|
16151
|
+
cloned.defaultValue = cloneUnknown(defaultValue);
|
|
15726
16152
|
cloned.visibleRoles = cloned.visibleRoles ? [...cloned.visibleRoles] : void 0;
|
|
15727
16153
|
cloned.ui = cloneUnknown(cloned.ui);
|
|
15728
16154
|
return cloned;
|
|
15729
16155
|
}
|
|
15730
16156
|
function cloneFieldDefinition2(field) {
|
|
15731
|
-
|
|
15732
|
-
|
|
15733
|
-
|
|
15734
|
-
|
|
15735
|
-
|
|
15736
|
-
|
|
15737
|
-
|
|
15738
|
-
|
|
15739
|
-
|
|
15740
|
-
|
|
15741
|
-
|
|
15742
|
-
|
|
15743
|
-
|
|
15744
|
-
|
|
15745
|
-
|
|
15746
|
-
|
|
15747
|
-
|
|
15748
|
-
return {
|
|
15749
|
-
...field,
|
|
15750
|
-
schema: {
|
|
15751
|
-
fields: field.schema.fields.map(cloneFieldDefinition2)
|
|
15752
|
-
}
|
|
15753
|
-
};
|
|
15754
|
-
}
|
|
15755
|
-
return { ...field };
|
|
15756
|
-
case "group":
|
|
16157
|
+
if (field.type === "repeater") {
|
|
16158
|
+
if (field.polymorphic && field.itemTypes) {
|
|
16159
|
+
return {
|
|
16160
|
+
...field,
|
|
16161
|
+
polymorphic: true,
|
|
16162
|
+
itemTypes: Object.fromEntries(
|
|
16163
|
+
Object.entries(field.itemTypes).map(([key, itemType]) => [
|
|
16164
|
+
key,
|
|
16165
|
+
{
|
|
16166
|
+
...itemType,
|
|
16167
|
+
fields: itemType.fields.map(cloneFieldDefinition2)
|
|
16168
|
+
}
|
|
16169
|
+
])
|
|
16170
|
+
)
|
|
16171
|
+
};
|
|
16172
|
+
}
|
|
16173
|
+
if (field.schema) {
|
|
15757
16174
|
return {
|
|
15758
16175
|
...field,
|
|
15759
16176
|
schema: {
|
|
15760
16177
|
fields: field.schema.fields.map(cloneFieldDefinition2)
|
|
15761
16178
|
}
|
|
15762
16179
|
};
|
|
15763
|
-
|
|
15764
|
-
|
|
16180
|
+
}
|
|
16181
|
+
return { ...field };
|
|
16182
|
+
}
|
|
16183
|
+
if (field.type === "group") {
|
|
16184
|
+
return {
|
|
16185
|
+
...field,
|
|
16186
|
+
schema: {
|
|
16187
|
+
fields: field.schema.fields.map(cloneFieldDefinition2)
|
|
16188
|
+
}
|
|
16189
|
+
};
|
|
15765
16190
|
}
|
|
16191
|
+
return { ...field };
|
|
15766
16192
|
}
|
|
15767
16193
|
function cloneUnknown(value) {
|
|
15768
16194
|
if (value == null || typeof value !== "object") {
|
|
@@ -16415,6 +16841,10 @@ var testimonialsHeadingFragment = defineFragment({
|
|
|
16415
16841
|
when("content.heading"),
|
|
16416
16842
|
bind("content.heading")
|
|
16417
16843
|
),
|
|
16844
|
+
headingDecoration({
|
|
16845
|
+
family: "short-center-rule",
|
|
16846
|
+
placement: "under-centered-heading"
|
|
16847
|
+
}),
|
|
16418
16848
|
text(
|
|
16419
16849
|
{
|
|
16420
16850
|
as: "p",
|
|
@@ -17086,6 +17516,41 @@ var faqHeadingFragment = defineFragment({
|
|
|
17086
17516
|
});
|
|
17087
17517
|
|
|
17088
17518
|
// ../blocks/src/system/fragments/library/faqAccordion.ts
|
|
17519
|
+
function createFaqAccordionLayout(options = {}) {
|
|
17520
|
+
return accordionList({
|
|
17521
|
+
collection: "content.items",
|
|
17522
|
+
itemName: "faqItem",
|
|
17523
|
+
indexName: "faqIndex",
|
|
17524
|
+
accordionProps: {
|
|
17525
|
+
className: options.rootClassName ?? "accordion-root",
|
|
17526
|
+
type: "single",
|
|
17527
|
+
collapsible: true
|
|
17528
|
+
},
|
|
17529
|
+
itemProps: {
|
|
17530
|
+
className: {
|
|
17531
|
+
$bind: {
|
|
17532
|
+
from: "content._cardStyles",
|
|
17533
|
+
transforms: [
|
|
17534
|
+
{
|
|
17535
|
+
id: "boxStyles.all",
|
|
17536
|
+
options: {
|
|
17537
|
+
axis: "all",
|
|
17538
|
+
includeSpacing: false,
|
|
17539
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
|
|
17540
|
+
}
|
|
17541
|
+
}
|
|
17542
|
+
]
|
|
17543
|
+
},
|
|
17544
|
+
fallback: "rb-faq-item"
|
|
17545
|
+
},
|
|
17546
|
+
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
17547
|
+
// Legacy theme accordion style
|
|
17548
|
+
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
17549
|
+
},
|
|
17550
|
+
triggerFrom: "faqItem.question",
|
|
17551
|
+
contentFrom: "faqItem.answer"
|
|
17552
|
+
});
|
|
17553
|
+
}
|
|
17089
17554
|
var faqAccordionFragment = defineFragment({
|
|
17090
17555
|
id: "faqAccordion",
|
|
17091
17556
|
title: "FAQ Accordion",
|
|
@@ -17119,40 +17584,7 @@ var faqAccordionFragment = defineFragment({
|
|
|
17119
17584
|
}
|
|
17120
17585
|
}
|
|
17121
17586
|
],
|
|
17122
|
-
layout:
|
|
17123
|
-
collection: "content.items",
|
|
17124
|
-
itemName: "faqItem",
|
|
17125
|
-
indexName: "faqIndex",
|
|
17126
|
-
accordionProps: {
|
|
17127
|
-
className: "accordion-root",
|
|
17128
|
-
// CSS-first: all styling handled by theme CSS
|
|
17129
|
-
type: "single",
|
|
17130
|
-
collapsible: true
|
|
17131
|
-
},
|
|
17132
|
-
itemProps: {
|
|
17133
|
-
className: {
|
|
17134
|
-
$bind: {
|
|
17135
|
-
from: "content._cardStyles",
|
|
17136
|
-
transforms: [
|
|
17137
|
-
{
|
|
17138
|
-
id: "boxStyles.all",
|
|
17139
|
-
options: {
|
|
17140
|
-
axis: "all",
|
|
17141
|
-
includeSpacing: false,
|
|
17142
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
|
|
17143
|
-
}
|
|
17144
|
-
}
|
|
17145
|
-
]
|
|
17146
|
-
},
|
|
17147
|
-
fallback: "rb-faq-item"
|
|
17148
|
-
},
|
|
17149
|
-
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
17150
|
-
// Legacy theme accordion style
|
|
17151
|
-
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
17152
|
-
},
|
|
17153
|
-
triggerFrom: "faqItem.question",
|
|
17154
|
-
contentFrom: "faqItem.answer"
|
|
17155
|
-
})
|
|
17587
|
+
layout: createFaqAccordionLayout()
|
|
17156
17588
|
});
|
|
17157
17589
|
|
|
17158
17590
|
// ../blocks/src/system/fragments/library/card.ts
|
|
@@ -18099,7 +18531,8 @@ function createBlockManifestWithContentShape(config, _contentShape) {
|
|
|
18099
18531
|
return createBlockManifest(config);
|
|
18100
18532
|
}
|
|
18101
18533
|
function normalizeBlockLayout(layout) {
|
|
18102
|
-
|
|
18534
|
+
const rawLayout = layout;
|
|
18535
|
+
return Array.isArray(rawLayout) ? rawLayout : rawLayout;
|
|
18103
18536
|
}
|
|
18104
18537
|
function deriveComponentName(id) {
|
|
18105
18538
|
const base = id.replace(/^block\./, "");
|
|
@@ -18205,6 +18638,7 @@ var microLayout = styledSection({
|
|
|
18205
18638
|
function splitLayoutWith(children) {
|
|
18206
18639
|
return styledSection({
|
|
18207
18640
|
children: styledContainer({
|
|
18641
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
18208
18642
|
children: {
|
|
18209
18643
|
type: "grid",
|
|
18210
18644
|
props: {
|
|
@@ -18229,6 +18663,7 @@ function splitLayoutWith(children) {
|
|
|
18229
18663
|
// The split variants render the image as a real grid column, so suppress
|
|
18230
18664
|
// the default absolute background image layer while keeping color/overlay.
|
|
18231
18665
|
renderBackgroundImage: false,
|
|
18666
|
+
allowOverflow: true,
|
|
18232
18667
|
baseClass: ""
|
|
18233
18668
|
});
|
|
18234
18669
|
}
|
|
@@ -18382,6 +18817,21 @@ function introHeading(className) {
|
|
|
18382
18817
|
bind("content.title")
|
|
18383
18818
|
);
|
|
18384
18819
|
}
|
|
18820
|
+
function introHeadingGroup(className) {
|
|
18821
|
+
return stack(
|
|
18822
|
+
{
|
|
18823
|
+
gap: "sm",
|
|
18824
|
+
className: "rb-intro-heading-group"
|
|
18825
|
+
},
|
|
18826
|
+
[
|
|
18827
|
+
introHeading(className),
|
|
18828
|
+
headingDecoration({
|
|
18829
|
+
family: "organic-squiggle",
|
|
18830
|
+
placement: "after-heading"
|
|
18831
|
+
})
|
|
18832
|
+
]
|
|
18833
|
+
);
|
|
18834
|
+
}
|
|
18385
18835
|
function introBody(className = "rb-prose rb-max-w-none") {
|
|
18386
18836
|
return richText({ className }, bind("content.body"));
|
|
18387
18837
|
}
|
|
@@ -18400,6 +18850,10 @@ function introCopyStack(options = {}) {
|
|
|
18400
18850
|
},
|
|
18401
18851
|
[
|
|
18402
18852
|
introHeading(options.headingClassName ?? "rb-intro-title"),
|
|
18853
|
+
headingDecoration({
|
|
18854
|
+
family: "organic-squiggle",
|
|
18855
|
+
placement: "after-heading"
|
|
18856
|
+
}),
|
|
18403
18857
|
introBody(options.bodyClassName),
|
|
18404
18858
|
introCtas(options.ctaJustify)
|
|
18405
18859
|
]
|
|
@@ -18439,7 +18893,7 @@ var statementCopyLayout = styledSection({
|
|
|
18439
18893
|
className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
|
|
18440
18894
|
},
|
|
18441
18895
|
[
|
|
18442
|
-
|
|
18896
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
18443
18897
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
18444
18898
|
introBody(),
|
|
18445
18899
|
introCtas("start")
|
|
@@ -18460,7 +18914,7 @@ var statementMediaLayout = styledSection({
|
|
|
18460
18914
|
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"
|
|
18461
18915
|
},
|
|
18462
18916
|
[
|
|
18463
|
-
|
|
18917
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
18464
18918
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
18465
18919
|
introBody(),
|
|
18466
18920
|
introCtas("start")
|
|
@@ -19462,6 +19916,9 @@ function isNodeDefinitionArray(layout) {
|
|
|
19462
19916
|
}
|
|
19463
19917
|
var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
|
|
19464
19918
|
var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
|
|
19919
|
+
var questionColumnsAccordionLayout = createFaqAccordionLayout({
|
|
19920
|
+
rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
|
|
19921
|
+
});
|
|
19465
19922
|
var defaultLayout = styledSection({
|
|
19466
19923
|
children: styledContainer({
|
|
19467
19924
|
baseClassName: "rb-relative rb-isolate",
|
|
@@ -19475,11 +19932,24 @@ var twoColumnLayout = styledSection({
|
|
|
19475
19932
|
children: el(
|
|
19476
19933
|
"div",
|
|
19477
19934
|
{
|
|
19478
|
-
className: "rb-faq-
|
|
19935
|
+
className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
|
|
19479
19936
|
},
|
|
19480
19937
|
[
|
|
19481
|
-
el("div", { className: "rb-faq-
|
|
19482
|
-
el("div", { className: "rb-faq-
|
|
19938
|
+
el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
|
|
19939
|
+
el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
|
|
19940
|
+
]
|
|
19941
|
+
)
|
|
19942
|
+
}),
|
|
19943
|
+
baseClass: ""
|
|
19944
|
+
});
|
|
19945
|
+
var questionColumnsLayout = styledSection({
|
|
19946
|
+
children: styledContainer({
|
|
19947
|
+
baseClassName: "rb-relative rb-isolate",
|
|
19948
|
+
children: stack(
|
|
19949
|
+
{ gap: "xl", className: "rb-w-full" },
|
|
19950
|
+
[
|
|
19951
|
+
headingLayout,
|
|
19952
|
+
questionColumnsAccordionLayout
|
|
19483
19953
|
]
|
|
19484
19954
|
)
|
|
19485
19955
|
}),
|
|
@@ -19504,7 +19974,8 @@ var faqManifest = createBlockManifest({
|
|
|
19504
19974
|
layout: defaultLayout,
|
|
19505
19975
|
variants: {
|
|
19506
19976
|
default: defaultLayout,
|
|
19507
|
-
"two-column": twoColumnLayout
|
|
19977
|
+
"two-column": twoColumnLayout,
|
|
19978
|
+
"question-columns": questionColumnsLayout
|
|
19508
19979
|
},
|
|
19509
19980
|
defaultVariant: "default",
|
|
19510
19981
|
variantOptions: {
|
|
@@ -19515,6 +19986,10 @@ var faqManifest = createBlockManifest({
|
|
|
19515
19986
|
"two-column": {
|
|
19516
19987
|
label: "Two column",
|
|
19517
19988
|
description: "A left heading column with FAQ items on the right."
|
|
19989
|
+
},
|
|
19990
|
+
"question-columns": {
|
|
19991
|
+
label: "Question columns",
|
|
19992
|
+
description: "A full-width heading above FAQ items split into two columns."
|
|
19518
19993
|
}
|
|
19519
19994
|
},
|
|
19520
19995
|
description: "Accordion of frequently asked questions and answers.",
|
|
@@ -19603,16 +20078,20 @@ var marqueeLoopTransform = {
|
|
|
19603
20078
|
summary: "Repeat an array to a minimum length, then duplicate it for seamless marquee looping",
|
|
19604
20079
|
schema: marqueeLoopOptionsSchema,
|
|
19605
20080
|
run: (value, options) => {
|
|
19606
|
-
|
|
20081
|
+
const items = toUnknownArray(value);
|
|
20082
|
+
if (items.length === 0) return [];
|
|
19607
20083
|
const minItems = options?.minItems ?? 10;
|
|
19608
20084
|
const base = [];
|
|
19609
20085
|
while (base.length < minItems) {
|
|
19610
|
-
base.push(...
|
|
20086
|
+
base.push(...items);
|
|
19611
20087
|
if (base.length > 1e3) break;
|
|
19612
20088
|
}
|
|
19613
20089
|
return [...base, ...base];
|
|
19614
20090
|
}
|
|
19615
20091
|
};
|
|
20092
|
+
function toUnknownArray(value) {
|
|
20093
|
+
return Array.isArray(value) ? value : [];
|
|
20094
|
+
}
|
|
19616
20095
|
var formattingTransforms = [
|
|
19617
20096
|
uppercaseTransform,
|
|
19618
20097
|
fallbackTransform,
|
|
@@ -19636,9 +20115,21 @@ var eyebrowTreatmentClassMap = {
|
|
|
19636
20115
|
"accent-pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent rb-eyebrow-treatment-pill-bounce"
|
|
19637
20116
|
};
|
|
19638
20117
|
var eyebrowTreatmentSet = new Set(eyebrowTreatmentValues);
|
|
20118
|
+
var headingDecorationFamilySet = new Set(visibleHeadingDecorationFamilyValues);
|
|
20119
|
+
var headingDecorationPlacementSet = new Set(visibleHeadingDecorationPlacementValues);
|
|
20120
|
+
var headingDecorationColorTokenSet = new Set(headingDecorationColorTokenValues);
|
|
19639
20121
|
function isEyebrowTreatment(value) {
|
|
19640
20122
|
return typeof value === "string" && eyebrowTreatmentSet.has(value);
|
|
19641
20123
|
}
|
|
20124
|
+
function isHeadingDecorationFamily(value) {
|
|
20125
|
+
return typeof value === "string" && headingDecorationFamilySet.has(value);
|
|
20126
|
+
}
|
|
20127
|
+
function isHeadingDecorationPlacement(value) {
|
|
20128
|
+
return typeof value === "string" && headingDecorationPlacementSet.has(value);
|
|
20129
|
+
}
|
|
20130
|
+
function isHeadingDecorationColorToken(value) {
|
|
20131
|
+
return typeof value === "string" && headingDecorationColorTokenSet.has(value);
|
|
20132
|
+
}
|
|
19642
20133
|
var imageGalleryCornerClassMap = {
|
|
19643
20134
|
none: "",
|
|
19644
20135
|
sm: "rb-rounded-sm",
|
|
@@ -19742,6 +20233,10 @@ var sectionStateToneTransform = {
|
|
|
19742
20233
|
summary: "Map semantic section-state kind to feedback tone",
|
|
19743
20234
|
run: (value) => sectionStateToneFromUnknown(value)
|
|
19744
20235
|
};
|
|
20236
|
+
var heroTitleLengthThresholds = {
|
|
20237
|
+
medium: { maxCharacters: 42, maxWords: 6 },
|
|
20238
|
+
long: { maxCharacters: 78, maxWords: 11 }
|
|
20239
|
+
};
|
|
19745
20240
|
function isPlainObject(value) {
|
|
19746
20241
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
19747
20242
|
}
|
|
@@ -19749,6 +20244,14 @@ function readString(obj, key) {
|
|
|
19749
20244
|
const v = obj[key];
|
|
19750
20245
|
return typeof v === "string" ? v : void 0;
|
|
19751
20246
|
}
|
|
20247
|
+
function resolveGeneratedHeroLayoutStyles(content) {
|
|
20248
|
+
const raw = content._heroLayoutStyles;
|
|
20249
|
+
return isPlainObject(raw) ? raw : null;
|
|
20250
|
+
}
|
|
20251
|
+
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
20252
|
+
const generated = resolveGeneratedHeroLayoutStyles(content);
|
|
20253
|
+
return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
|
|
20254
|
+
}
|
|
19752
20255
|
function resolveHeroVariant(content) {
|
|
19753
20256
|
const variant = readString(content, "variant");
|
|
19754
20257
|
if (variant && variant.trim()) return variant.trim();
|
|
@@ -19757,14 +20260,14 @@ function resolveHeroVariant(content) {
|
|
|
19757
20260
|
return null;
|
|
19758
20261
|
}
|
|
19759
20262
|
function resolveHeroContentAlignment(content) {
|
|
19760
|
-
const raw =
|
|
20263
|
+
const raw = readHeroLayoutString(content, "contentAlignment");
|
|
19761
20264
|
if (raw === "left" || raw === "center" || raw === "right") return raw;
|
|
19762
20265
|
const variant = resolveHeroVariant(content);
|
|
19763
20266
|
if (variant === "split" || variant === "splitReverse") return "left";
|
|
19764
20267
|
return "center";
|
|
19765
20268
|
}
|
|
19766
20269
|
function resolveHeroVerticalAlignment(content) {
|
|
19767
|
-
const raw =
|
|
20270
|
+
const raw = readHeroLayoutString(content, "verticalAlignment");
|
|
19768
20271
|
if (raw === "top" || raw === "center" || raw === "bottom") return raw;
|
|
19769
20272
|
const sectionStyles = asPartialObject(content._sectionStyles);
|
|
19770
20273
|
const minHeight = sectionStyles?.minHeight;
|
|
@@ -19774,11 +20277,29 @@ function resolveHeroVerticalAlignment(content) {
|
|
|
19774
20277
|
return "top";
|
|
19775
20278
|
}
|
|
19776
20279
|
function resolveHeroContentMaxWidth(content) {
|
|
19777
|
-
const raw =
|
|
20280
|
+
const raw = readHeroLayoutString(content, "contentMaxWidth");
|
|
19778
20281
|
if (raw === "default" || raw === "narrow" || raw === "medium" || raw === "wide")
|
|
19779
20282
|
return raw;
|
|
19780
20283
|
return "default";
|
|
19781
20284
|
}
|
|
20285
|
+
function resolveHeroTypographyScale(content) {
|
|
20286
|
+
const raw = readHeroLayoutString(
|
|
20287
|
+
content,
|
|
20288
|
+
"typographyScale",
|
|
20289
|
+
"heroTypographyScale"
|
|
20290
|
+
);
|
|
20291
|
+
if (raw === "quiet" || raw === "editorial" || raw === "display" || raw === "poster") {
|
|
20292
|
+
return raw;
|
|
20293
|
+
}
|
|
20294
|
+
return null;
|
|
20295
|
+
}
|
|
20296
|
+
function resolveHeroTitleLength(content) {
|
|
20297
|
+
const headline = readString(content, "headline")?.trim() ?? "";
|
|
20298
|
+
const wordCount = headline.length === 0 ? 0 : headline.split(/\s+/).length;
|
|
20299
|
+
if (headline.length > heroTitleLengthThresholds.long.maxCharacters || wordCount > heroTitleLengthThresholds.long.maxWords) return "long";
|
|
20300
|
+
if (headline.length > heroTitleLengthThresholds.medium.maxCharacters || wordCount > heroTitleLengthThresholds.medium.maxWords) return "medium";
|
|
20301
|
+
return "short";
|
|
20302
|
+
}
|
|
19782
20303
|
var heroContentWrapperClassSchema = z33.object({
|
|
19783
20304
|
base: z33.string().optional()
|
|
19784
20305
|
});
|
|
@@ -19791,6 +20312,8 @@ var heroContentWrapperClassTransform = {
|
|
|
19791
20312
|
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
19792
20313
|
const alignment = resolveHeroContentAlignment(content);
|
|
19793
20314
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
20315
|
+
const typographyScale = resolveHeroTypographyScale(content);
|
|
20316
|
+
const titleLength = resolveHeroTitleLength(content);
|
|
19794
20317
|
const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
|
|
19795
20318
|
const maxWidthClass = maxWidth === "narrow" ? "rb-max-w-2xl" : maxWidth === "medium" ? "rb-max-w-3xl" : maxWidth === "wide" ? "rb-max-w-5xl" : "";
|
|
19796
20319
|
const positionClass = alignment === "center" ? "rb-mx-auto" : alignment === "right" ? "rb-ml-auto" : "";
|
|
@@ -19798,7 +20321,9 @@ var heroContentWrapperClassTransform = {
|
|
|
19798
20321
|
options?.base,
|
|
19799
20322
|
textAlignClass,
|
|
19800
20323
|
maxWidthClass,
|
|
19801
|
-
positionClass
|
|
20324
|
+
positionClass,
|
|
20325
|
+
typographyScale ? `rb-hero-typography-${typographyScale}` : "",
|
|
20326
|
+
`rb-hero-title-${titleLength}`
|
|
19802
20327
|
]);
|
|
19803
20328
|
}
|
|
19804
20329
|
};
|
|
@@ -20098,11 +20623,67 @@ var uiTransforms = [
|
|
|
20098
20623
|
const treatment = isEyebrowTreatment(value) ? value : "plain";
|
|
20099
20624
|
return joinClasses3([baseClass, eyebrowTreatmentClassMap[treatment]]);
|
|
20100
20625
|
}
|
|
20626
|
+
},
|
|
20627
|
+
{
|
|
20628
|
+
id: "ui.headingDecorationClassName",
|
|
20629
|
+
kind: "string",
|
|
20630
|
+
summary: "Apply constrained Theme V2 heading decoration classes",
|
|
20631
|
+
run: (value, options) => {
|
|
20632
|
+
const baseClass = typeof options?.baseClass === "string" && options.baseClass.trim() ? options.baseClass : "rb-heading-decoration";
|
|
20633
|
+
const decoration = asPartialObject(value);
|
|
20634
|
+
const family = isHeadingDecorationFamily(decoration?.family) ? decoration.family : null;
|
|
20635
|
+
const allowedFamily = isHeadingDecorationFamily(options?.family) ? options.family : null;
|
|
20636
|
+
const placement = isHeadingDecorationPlacement(decoration?.placement) ? decoration.placement : null;
|
|
20637
|
+
const colorToken = isHeadingDecorationColorToken(decoration?.colorToken) ? decoration.colorToken : "primary";
|
|
20638
|
+
if (!family || !placement) return "rb-hidden";
|
|
20639
|
+
if (allowedFamily && family !== allowedFamily) return "rb-hidden";
|
|
20640
|
+
return joinClasses3([
|
|
20641
|
+
baseClass,
|
|
20642
|
+
`rb-heading-decoration-${family}`,
|
|
20643
|
+
`rb-heading-decoration-placement-${placement}`,
|
|
20644
|
+
`rb-heading-decoration-color-${colorToken}`
|
|
20645
|
+
]);
|
|
20646
|
+
}
|
|
20101
20647
|
}
|
|
20102
20648
|
];
|
|
20103
20649
|
|
|
20104
20650
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20105
20651
|
import { z as z34 } from "zod";
|
|
20652
|
+
|
|
20653
|
+
// ../theme-core/src/siteChromePlacement.ts
|
|
20654
|
+
var HEADER_POSITIONINGS = ["static", "sticky", "fixed"];
|
|
20655
|
+
function parseHeaderPositioning(value) {
|
|
20656
|
+
return isHeaderPositioning(value) ? value : "static";
|
|
20657
|
+
}
|
|
20658
|
+
function isHeaderPositioning(value) {
|
|
20659
|
+
return typeof value === "string" && HEADER_POSITIONINGS.includes(value);
|
|
20660
|
+
}
|
|
20661
|
+
function planSiteChromePlacement(positioning) {
|
|
20662
|
+
switch (positioning) {
|
|
20663
|
+
case "static":
|
|
20664
|
+
return {
|
|
20665
|
+
kind: "static",
|
|
20666
|
+
headerRootClassName: null,
|
|
20667
|
+
standaloneShellClassName: null
|
|
20668
|
+
};
|
|
20669
|
+
case "sticky":
|
|
20670
|
+
return {
|
|
20671
|
+
kind: "sticky",
|
|
20672
|
+
headerRootClassName: "rb-sticky rb-top-0",
|
|
20673
|
+
standaloneShellClassName: "sticky top-0 z-40 w-full"
|
|
20674
|
+
};
|
|
20675
|
+
case "fixed":
|
|
20676
|
+
return {
|
|
20677
|
+
kind: "fixed",
|
|
20678
|
+
headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
|
|
20679
|
+
standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
|
|
20680
|
+
};
|
|
20681
|
+
default:
|
|
20682
|
+
return assertNever(positioning);
|
|
20683
|
+
}
|
|
20684
|
+
}
|
|
20685
|
+
|
|
20686
|
+
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20106
20687
|
var joinClasses4 = (parts) => parts.filter(
|
|
20107
20688
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
20108
20689
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -20218,7 +20799,8 @@ var headerRootClassTransform = {
|
|
|
20218
20799
|
...options
|
|
20219
20800
|
};
|
|
20220
20801
|
const content = asPartialObject(value) ?? {};
|
|
20221
|
-
const positioning =
|
|
20802
|
+
const positioning = parseHeaderPositioning(content.positioning);
|
|
20803
|
+
const placement = planSiteChromePlacement(positioning);
|
|
20222
20804
|
const shrinkOnScroll = Boolean(content.shrinkOnScroll);
|
|
20223
20805
|
const header = asPartialObject(value);
|
|
20224
20806
|
const visuals = resolveHeaderVisualStyles(header, context.theme);
|
|
@@ -20230,14 +20812,14 @@ var headerRootClassTransform = {
|
|
|
20230
20812
|
if (config.blur) classes.push(config.blur);
|
|
20231
20813
|
if (config.blurSupport) classes.push(config.blurSupport);
|
|
20232
20814
|
}
|
|
20233
|
-
if (
|
|
20815
|
+
if (placement.kind === "sticky") {
|
|
20234
20816
|
classes.push(
|
|
20235
20817
|
visuals.isTransparent ? config.stickyTransparent : config.sticky
|
|
20236
20818
|
);
|
|
20237
|
-
} else if (
|
|
20819
|
+
} else if (placement.kind === "fixed") {
|
|
20238
20820
|
classes.push(config.fixed);
|
|
20239
20821
|
}
|
|
20240
|
-
if (shrinkOnScroll &&
|
|
20822
|
+
if (shrinkOnScroll && placement.kind !== "static") {
|
|
20241
20823
|
classes.push(config.shrink);
|
|
20242
20824
|
}
|
|
20243
20825
|
const VALID_VARIANTS = [
|
|
@@ -20769,6 +21351,10 @@ function desktopOnlyDisplay(display) {
|
|
|
20769
21351
|
return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
|
|
20770
21352
|
}
|
|
20771
21353
|
|
|
21354
|
+
// ../theme-core/src/siteChromeOverlayClearance.ts
|
|
21355
|
+
var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
21356
|
+
var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
|
|
21357
|
+
|
|
20772
21358
|
// ../blocks/src/system/blocks/site-header.ts
|
|
20773
21359
|
var logoRow = link(
|
|
20774
21360
|
{
|
|
@@ -21041,6 +21627,7 @@ var transparentLayout = inline(
|
|
|
21041
21627
|
);
|
|
21042
21628
|
var floatingLayout = inline(
|
|
21043
21629
|
{
|
|
21630
|
+
[SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
|
|
21044
21631
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
21045
21632
|
transforms: pipe(
|
|
21046
21633
|
tx("layout.maxWidthClass", {
|
|
@@ -21986,6 +22573,10 @@ var sectionHeading = stack(
|
|
|
21986
22573
|
when("content.title"),
|
|
21987
22574
|
bind("content.title")
|
|
21988
22575
|
),
|
|
22576
|
+
headingDecoration({
|
|
22577
|
+
family: "short-center-rule",
|
|
22578
|
+
placement: "under-centered-heading"
|
|
22579
|
+
}),
|
|
21989
22580
|
richText(
|
|
21990
22581
|
{
|
|
21991
22582
|
className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
|
|
@@ -23167,8 +23758,8 @@ var eventSurfaceScopeValues = [
|
|
|
23167
23758
|
"custom"
|
|
23168
23759
|
];
|
|
23169
23760
|
var eventScheduleScopeValues = ["any", "recurring", "oneOff"];
|
|
23170
|
-
var
|
|
23171
|
-
var
|
|
23761
|
+
var unsafeAsEventCategoryId = (value) => value;
|
|
23762
|
+
var unsafeAsVenueId = (value) => value;
|
|
23172
23763
|
function normalizeEventBlockKind(value) {
|
|
23173
23764
|
return value === "courses" || value === "events" ? value : "all";
|
|
23174
23765
|
}
|
|
@@ -23194,10 +23785,10 @@ function normalizeEventCategoryIds(value) {
|
|
|
23194
23785
|
if (Array.isArray(value)) {
|
|
23195
23786
|
return normalizeIdList(
|
|
23196
23787
|
value.filter((entry) => typeof entry === "string")
|
|
23197
|
-
).map(
|
|
23788
|
+
).map(unsafeAsEventCategoryId);
|
|
23198
23789
|
}
|
|
23199
23790
|
if (typeof value === "string") {
|
|
23200
|
-
return normalizeIdList(value.split(",")).map(
|
|
23791
|
+
return normalizeIdList(value.split(",")).map(unsafeAsEventCategoryId);
|
|
23201
23792
|
}
|
|
23202
23793
|
return [];
|
|
23203
23794
|
}
|
|
@@ -23210,7 +23801,7 @@ function normalizeEventVenueId(value) {
|
|
|
23210
23801
|
return null;
|
|
23211
23802
|
}
|
|
23212
23803
|
const trimmed = value.trim();
|
|
23213
|
-
return trimmed ?
|
|
23804
|
+
return trimmed ? unsafeAsVenueId(trimmed) : null;
|
|
23214
23805
|
}
|
|
23215
23806
|
function normalizeEventStaffMemberId(value) {
|
|
23216
23807
|
if (typeof value !== "string") {
|
|
@@ -24409,7 +25000,7 @@ var COLUMN_CLASSES = {
|
|
|
24409
25000
|
};
|
|
24410
25001
|
function getContainerClass(layout, columns) {
|
|
24411
25002
|
if (layout === "compact") {
|
|
24412
|
-
return "event-listing-compact-container rb-flex rb-flex-col
|
|
25003
|
+
return "event-listing-compact-container rb-flex rb-flex-col";
|
|
24413
25004
|
}
|
|
24414
25005
|
if (layout === "stack") {
|
|
24415
25006
|
return "rb-flex rb-flex-col rb-gap-6";
|
|
@@ -27237,6 +27828,7 @@ import { z as z53 } from "zod";
|
|
|
27237
27828
|
var storedProductCartItemSchema = z53.object({
|
|
27238
27829
|
kind: z53.literal("product"),
|
|
27239
27830
|
productId: z53.string().min(1),
|
|
27831
|
+
productCategoryId: z53.string().min(1).optional().nullable(),
|
|
27240
27832
|
variantId: z53.string().min(1).optional().nullable(),
|
|
27241
27833
|
title: z53.string().min(1),
|
|
27242
27834
|
variantTitle: z53.string().optional().nullable(),
|
|
@@ -29741,6 +30333,10 @@ var scheduleTileTreatments = [
|
|
|
29741
30333
|
"quiet",
|
|
29742
30334
|
"brand-depth"
|
|
29743
30335
|
];
|
|
30336
|
+
var eventListTreatments = [
|
|
30337
|
+
"plain",
|
|
30338
|
+
"lined-panel"
|
|
30339
|
+
];
|
|
29744
30340
|
function scheduleDetailsCapable() {
|
|
29745
30341
|
return declareBlockDesignCapability({
|
|
29746
30342
|
sectionSurfaces: "supported",
|
|
@@ -29749,6 +30345,14 @@ function scheduleDetailsCapable() {
|
|
|
29749
30345
|
tileTreatments: scheduleTileTreatments
|
|
29750
30346
|
});
|
|
29751
30347
|
}
|
|
30348
|
+
function eventListCapable() {
|
|
30349
|
+
return declareBlockDesignCapability({
|
|
30350
|
+
sectionSurfaces: "supported",
|
|
30351
|
+
contentFrames: ["plain"],
|
|
30352
|
+
itemSurfaces: "unsupported",
|
|
30353
|
+
eventListTreatments
|
|
30354
|
+
});
|
|
30355
|
+
}
|
|
29752
30356
|
function defaultBoundaryBias(visualWeight) {
|
|
29753
30357
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
29754
30358
|
}
|
|
@@ -29968,7 +30572,8 @@ var systemBlockDefinitionsRaw = [
|
|
|
29968
30572
|
flow: bodyFlow,
|
|
29969
30573
|
layoutProfiles: [
|
|
29970
30574
|
layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
|
|
29971
|
-
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
|
|
30575
|
+
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
|
|
30576
|
+
layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
|
|
29972
30577
|
]
|
|
29973
30578
|
})),
|
|
29974
30579
|
withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
|
|
@@ -30062,11 +30667,11 @@ var systemBlockDefinitionsRaw = [
|
|
|
30062
30667
|
flow: offeringsFlow,
|
|
30063
30668
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
|
|
30064
30669
|
})),
|
|
30065
|
-
withDesignCapability("block.event-listing", eventListingBlockDefinition,
|
|
30670
|
+
withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
30066
30671
|
flow: offeringsFlow,
|
|
30067
30672
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
30068
30673
|
})),
|
|
30069
|
-
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition,
|
|
30674
|
+
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
30070
30675
|
flow: offeringsFlow,
|
|
30071
30676
|
layoutProfiles: [
|
|
30072
30677
|
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
@@ -31138,6 +31743,15 @@ ${root} {
|
|
|
31138
31743
|
`;
|
|
31139
31744
|
}
|
|
31140
31745
|
|
|
31746
|
+
// ../theme-core/src/runtime/themeCssVarNames.ts
|
|
31747
|
+
var THEME_RADIUS_CSS_VARS = {
|
|
31748
|
+
block: "--rb-block-radius",
|
|
31749
|
+
button: "--rb-button-radius",
|
|
31750
|
+
input: "--rb-input-radius",
|
|
31751
|
+
legacyCard: "--radius-card",
|
|
31752
|
+
legacyControl: "--radius-control"
|
|
31753
|
+
};
|
|
31754
|
+
|
|
31141
31755
|
// ../theme-core/src/blocks/vars/customer-portal.ts
|
|
31142
31756
|
function generateCustomerPortalVars({
|
|
31143
31757
|
themeId
|
|
@@ -31151,6 +31765,11 @@ ${root} {
|
|
|
31151
31765
|
--cp-muted: rgb(var(--tb-mutedText));
|
|
31152
31766
|
--cp-border: rgb(var(--tb-border));
|
|
31153
31767
|
--cp-shadow: var(--shadow-elev);
|
|
31768
|
+
--cp-primary: rgb(var(--tb-primary));
|
|
31769
|
+
--cp-primary-hover: rgb(var(--tb-primary-700, var(--tb-primary)));
|
|
31770
|
+
--cp-error: rgb(var(--tb-destructive));
|
|
31771
|
+
--cp-card-radius: var(${THEME_RADIUS_CSS_VARS.block}, var(${THEME_RADIUS_CSS_VARS.legacyCard}, 0.75rem));
|
|
31772
|
+
--cp-control-radius: var(${THEME_RADIUS_CSS_VARS.input}, var(${THEME_RADIUS_CSS_VARS.legacyControl}, 0.5rem));
|
|
31154
31773
|
|
|
31155
31774
|
/* Shared tab bar (underline style) */
|
|
31156
31775
|
--rb-tab-border-width: 1px;
|
|
@@ -31201,7 +31820,7 @@ ${root} {
|
|
|
31201
31820
|
--rb-modal-bg: var(--cp-card-bg);
|
|
31202
31821
|
--rb-modal-border: var(--cp-card-border);
|
|
31203
31822
|
--rb-modal-shadow: var(--shadow-lg, var(--shadow-elev));
|
|
31204
|
-
--rb-modal-radius: var(--
|
|
31823
|
+
--rb-modal-radius: var(--cp-card-radius);
|
|
31205
31824
|
--rb-modal-max-width: 560px;
|
|
31206
31825
|
|
|
31207
31826
|
/* Header */
|
|
@@ -32582,6 +33201,9 @@ import { jsx as jsx5 } from "react/jsx-runtime";
|
|
|
32582
33201
|
import * as React from "react";
|
|
32583
33202
|
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
32584
33203
|
|
|
33204
|
+
// ../theme-core/src/fonts/uploadFormat.ts
|
|
33205
|
+
var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
33206
|
+
|
|
32585
33207
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
32586
33208
|
import { z as z60 } from "zod";
|
|
32587
33209
|
var themeBridgeConfigSchema = z60.object({
|
|
@@ -32664,10 +33286,16 @@ var dashboardConfigSchema = z61.object({
|
|
|
32664
33286
|
var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
|
|
32665
33287
|
var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
|
|
32666
33288
|
var sdkLoaderEndpointSchema = z61.enum(SUPPORTED_LOADER_ENDPOINTS);
|
|
33289
|
+
var loaderFallbackScalarSchema = z61.union([
|
|
33290
|
+
z61.string(),
|
|
33291
|
+
z61.number(),
|
|
33292
|
+
z61.boolean(),
|
|
33293
|
+
z61.null()
|
|
33294
|
+
]);
|
|
32667
33295
|
var loaderParamBindingSchema = z61.object({
|
|
32668
33296
|
$bind: z61.object({
|
|
32669
33297
|
from: z61.string().min(1, "Binding path is required"),
|
|
32670
|
-
fallback:
|
|
33298
|
+
fallback: loaderFallbackScalarSchema.optional()
|
|
32671
33299
|
})
|
|
32672
33300
|
});
|
|
32673
33301
|
var loaderParamValueSchema = z61.union([
|
|
@@ -32813,9 +33441,13 @@ var sdkBlockFieldOptionsMapSchema = z61.record(
|
|
|
32813
33441
|
var sdkContentTypeTemplateConfigSchema = z61.object({
|
|
32814
33442
|
blocks: z61.array(z61.unknown())
|
|
32815
33443
|
}).passthrough();
|
|
33444
|
+
var sdkContentTypeOrderingConfigSchema = z61.object({
|
|
33445
|
+
mode: z61.enum(["default", "manual"]).optional()
|
|
33446
|
+
}).optional();
|
|
32816
33447
|
var sdkContentTypeConfigSchema = z61.object({
|
|
32817
33448
|
key: z61.string().min(1),
|
|
32818
33449
|
fields: z61.array(z61.unknown()),
|
|
33450
|
+
ordering: sdkContentTypeOrderingConfigSchema,
|
|
32819
33451
|
template: sdkContentTypeTemplateConfigSchema.nullable().optional()
|
|
32820
33452
|
}).passthrough();
|
|
32821
33453
|
var sdkContentConfigSchema = z61.object({
|
|
@@ -33028,6 +33660,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
|
|
|
33028
33660
|
];
|
|
33029
33661
|
|
|
33030
33662
|
// ../api/src/bookingVerticals.ts
|
|
33663
|
+
import { z as z63 } from "zod";
|
|
33031
33664
|
var VERTICAL_IDS = [
|
|
33032
33665
|
"yoga_wellness",
|
|
33033
33666
|
"fitness_pt",
|
|
@@ -33106,6 +33739,132 @@ var VERTICAL_ID_SET = new Set(VERTICAL_IDS);
|
|
|
33106
33739
|
var VERTICAL_PRESET_ID_SET = new Set(
|
|
33107
33740
|
VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
|
|
33108
33741
|
);
|
|
33742
|
+
function parseVerticalId(value) {
|
|
33743
|
+
return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
|
|
33744
|
+
}
|
|
33745
|
+
function parseVerticalPresetId(value) {
|
|
33746
|
+
return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
|
|
33747
|
+
}
|
|
33748
|
+
function getVerticalPresetDefinition(presetId) {
|
|
33749
|
+
const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
|
|
33750
|
+
if (!definition) {
|
|
33751
|
+
throw new Error(`Unhandled vertical preset id: ${presetId}`);
|
|
33752
|
+
}
|
|
33753
|
+
return definition;
|
|
33754
|
+
}
|
|
33755
|
+
function toNonEmptyVerticalPresetIds(presetIds) {
|
|
33756
|
+
const firstPresetId = presetIds[0];
|
|
33757
|
+
return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
|
|
33758
|
+
}
|
|
33759
|
+
function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
33760
|
+
return {
|
|
33761
|
+
verticalId,
|
|
33762
|
+
selectedPresetIds
|
|
33763
|
+
};
|
|
33764
|
+
}
|
|
33765
|
+
function createSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
33766
|
+
const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
|
|
33767
|
+
return nonEmptyPresetIds ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
|
|
33768
|
+
}
|
|
33769
|
+
function resolveSiteVerticalBookingConfig(rawConfig) {
|
|
33770
|
+
if (!rawConfig) {
|
|
33771
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
33772
|
+
}
|
|
33773
|
+
const verticalId = parseVerticalId(rawConfig.verticalId);
|
|
33774
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
33775
|
+
const selectedPresetIds = rawPresetIds.map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
|
|
33776
|
+
const config = {
|
|
33777
|
+
verticalId,
|
|
33778
|
+
selectedPresetIds
|
|
33779
|
+
};
|
|
33780
|
+
if (!verticalId && selectedPresetIds.length === 0) {
|
|
33781
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
33782
|
+
}
|
|
33783
|
+
const issues = getSiteVerticalConfigIssues(rawConfig, config);
|
|
33784
|
+
if (issues.length > 0) {
|
|
33785
|
+
return { kind: "invalid", config, issues };
|
|
33786
|
+
}
|
|
33787
|
+
const configuredConfig = verticalId ? createSiteVerticalBookingConfig(verticalId, selectedPresetIds) : null;
|
|
33788
|
+
if (!configuredConfig) {
|
|
33789
|
+
return { kind: "invalid", config, issues: ["empty_selected_presets"] };
|
|
33790
|
+
}
|
|
33791
|
+
return {
|
|
33792
|
+
kind: "configured",
|
|
33793
|
+
config: configuredConfig,
|
|
33794
|
+
selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
|
|
33795
|
+
};
|
|
33796
|
+
}
|
|
33797
|
+
function getSiteVerticalConfigIssues(rawConfig, config) {
|
|
33798
|
+
const issues = /* @__PURE__ */ new Set();
|
|
33799
|
+
if (rawConfig.verticalId != null && !config.verticalId) {
|
|
33800
|
+
issues.add("unknown_vertical");
|
|
33801
|
+
}
|
|
33802
|
+
if (!config.verticalId && config.selectedPresetIds.length > 0) {
|
|
33803
|
+
issues.add("missing_vertical");
|
|
33804
|
+
}
|
|
33805
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
33806
|
+
if (rawPresetIds.some((presetId) => parseVerticalPresetId(presetId) === null)) {
|
|
33807
|
+
issues.add("unknown_preset");
|
|
33808
|
+
}
|
|
33809
|
+
if (config.verticalId && config.selectedPresetIds.length === 0) {
|
|
33810
|
+
issues.add("empty_selected_presets");
|
|
33811
|
+
}
|
|
33812
|
+
const seenBehaviours = /* @__PURE__ */ new Set();
|
|
33813
|
+
for (const presetId of config.selectedPresetIds) {
|
|
33814
|
+
const presetDefinition = getVerticalPresetDefinition(presetId);
|
|
33815
|
+
if (config.verticalId && presetDefinition.verticalId !== config.verticalId) {
|
|
33816
|
+
issues.add("preset_vertical_mismatch");
|
|
33817
|
+
}
|
|
33818
|
+
if (presetDefinition.availability === "future") {
|
|
33819
|
+
issues.add("future_preset_selected");
|
|
33820
|
+
}
|
|
33821
|
+
if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) {
|
|
33822
|
+
issues.add("duplicate_canonical_behaviour");
|
|
33823
|
+
}
|
|
33824
|
+
seenBehaviours.add(presetDefinition.canonicalBehaviour);
|
|
33825
|
+
}
|
|
33826
|
+
return [...issues];
|
|
33827
|
+
}
|
|
33828
|
+
var VerticalIdSchema = z63.string().trim().transform((value, ctx) => {
|
|
33829
|
+
const parsed = parseVerticalId(value);
|
|
33830
|
+
if (!parsed) {
|
|
33831
|
+
ctx.addIssue({
|
|
33832
|
+
code: z63.ZodIssueCode.custom,
|
|
33833
|
+
message: "Unknown booking vertical"
|
|
33834
|
+
});
|
|
33835
|
+
return z63.NEVER;
|
|
33836
|
+
}
|
|
33837
|
+
return parsed;
|
|
33838
|
+
});
|
|
33839
|
+
var VerticalPresetIdSchema = z63.string().trim().transform((value, ctx) => {
|
|
33840
|
+
const parsed = parseVerticalPresetId(value);
|
|
33841
|
+
if (!parsed) {
|
|
33842
|
+
ctx.addIssue({
|
|
33843
|
+
code: z63.ZodIssueCode.custom,
|
|
33844
|
+
message: "Unknown booking preset"
|
|
33845
|
+
});
|
|
33846
|
+
return z63.NEVER;
|
|
33847
|
+
}
|
|
33848
|
+
return parsed;
|
|
33849
|
+
});
|
|
33850
|
+
var BookingVerticalConfigSchema = z63.object({
|
|
33851
|
+
verticalId: VerticalIdSchema.nullable(),
|
|
33852
|
+
selectedPresetIds: z63.array(VerticalPresetIdSchema).max(20)
|
|
33853
|
+
}).transform((value, ctx) => {
|
|
33854
|
+
const resolved = resolveSiteVerticalBookingConfig(value);
|
|
33855
|
+
if (resolved.kind === "invalid") {
|
|
33856
|
+
ctx.addIssue({
|
|
33857
|
+
code: z63.ZodIssueCode.custom,
|
|
33858
|
+
message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
|
|
33859
|
+
});
|
|
33860
|
+
return z63.NEVER;
|
|
33861
|
+
}
|
|
33862
|
+
return resolved.config;
|
|
33863
|
+
});
|
|
33864
|
+
var DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
|
|
33865
|
+
verticalId: null,
|
|
33866
|
+
selectedPresetIds: []
|
|
33867
|
+
};
|
|
33109
33868
|
function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
33110
33869
|
return {
|
|
33111
33870
|
id,
|
|
@@ -33125,51 +33884,51 @@ function isRecord3(value) {
|
|
|
33125
33884
|
}
|
|
33126
33885
|
|
|
33127
33886
|
// ../api/src/appointmentSetup.ts
|
|
33128
|
-
import { z as
|
|
33887
|
+
import { z as z64 } from "zod";
|
|
33129
33888
|
var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
|
|
33130
|
-
var appointmentSetupRefSchema =
|
|
33131
|
-
|
|
33132
|
-
|
|
33889
|
+
var appointmentSetupRefSchema = z64.discriminatedUnion("kind", [
|
|
33890
|
+
z64.object({ kind: z64.literal("existing"), id: z64.string().min(1) }),
|
|
33891
|
+
z64.object({ kind: z64.literal("new"), draftId: z64.string().min(1) })
|
|
33133
33892
|
]);
|
|
33134
|
-
var appointmentSetupVenueChoiceSchema =
|
|
33135
|
-
|
|
33136
|
-
|
|
33137
|
-
|
|
33138
|
-
kind:
|
|
33139
|
-
draftId:
|
|
33140
|
-
title:
|
|
33141
|
-
description:
|
|
33142
|
-
timezone:
|
|
33143
|
-
addressJson:
|
|
33144
|
-
locationJson:
|
|
33893
|
+
var appointmentSetupVenueChoiceSchema = z64.discriminatedUnion("kind", [
|
|
33894
|
+
z64.object({ kind: z64.literal("none") }),
|
|
33895
|
+
z64.object({ kind: z64.literal("existing"), venueId: z64.string().min(1) }),
|
|
33896
|
+
z64.object({
|
|
33897
|
+
kind: z64.literal("create"),
|
|
33898
|
+
draftId: z64.string().min(1),
|
|
33899
|
+
title: z64.string().trim().min(1),
|
|
33900
|
+
description: z64.string().nullable(),
|
|
33901
|
+
timezone: z64.string().trim().min(1).nullable(),
|
|
33902
|
+
addressJson: z64.record(z64.string(), z64.unknown()),
|
|
33903
|
+
locationJson: z64.object({ lat: z64.number(), lng: z64.number() }).nullable()
|
|
33145
33904
|
})
|
|
33146
33905
|
]);
|
|
33147
|
-
var appointmentSetupPaymentDraftSchema =
|
|
33148
|
-
priceType:
|
|
33149
|
-
});
|
|
33150
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
33151
|
-
|
|
33152
|
-
|
|
33153
|
-
kind:
|
|
33154
|
-
resourceRefs:
|
|
33906
|
+
var appointmentSetupPaymentDraftSchema = z64.object({
|
|
33907
|
+
priceType: z64.union([z64.literal("free"), z64.literal("paid")])
|
|
33908
|
+
});
|
|
33909
|
+
var appointmentSetupServiceAssignmentDraftSchema = z64.discriminatedUnion("kind", [
|
|
33910
|
+
z64.object({ kind: z64.literal("all_practitioners") }),
|
|
33911
|
+
z64.object({
|
|
33912
|
+
kind: z64.literal("selected_practitioners"),
|
|
33913
|
+
resourceRefs: z64.array(appointmentSetupRefSchema)
|
|
33155
33914
|
})
|
|
33156
33915
|
]);
|
|
33157
|
-
var appointmentSetupServiceDraftSchema =
|
|
33916
|
+
var appointmentSetupServiceDraftSchema = z64.object({
|
|
33158
33917
|
ref: appointmentSetupRefSchema,
|
|
33159
|
-
title:
|
|
33160
|
-
description:
|
|
33161
|
-
durationMinutes:
|
|
33162
|
-
prepMinutes:
|
|
33163
|
-
cleanupMinutes:
|
|
33164
|
-
priceAmount:
|
|
33165
|
-
isActive:
|
|
33166
|
-
locationType:
|
|
33167
|
-
|
|
33168
|
-
|
|
33169
|
-
|
|
33918
|
+
title: z64.string().trim().min(1),
|
|
33919
|
+
description: z64.string().nullable(),
|
|
33920
|
+
durationMinutes: z64.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
|
|
33921
|
+
prepMinutes: z64.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
33922
|
+
cleanupMinutes: z64.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
33923
|
+
priceAmount: z64.number().int().nonnegative().nullable(),
|
|
33924
|
+
isActive: z64.boolean(),
|
|
33925
|
+
locationType: z64.union([
|
|
33926
|
+
z64.literal("virtual"),
|
|
33927
|
+
z64.literal("in_person"),
|
|
33928
|
+
z64.literal("hybrid")
|
|
33170
33929
|
]),
|
|
33171
33930
|
venue: appointmentSetupVenueChoiceSchema,
|
|
33172
|
-
timezone:
|
|
33931
|
+
timezone: z64.string().trim().min(1).nullable(),
|
|
33173
33932
|
payment: appointmentSetupPaymentDraftSchema,
|
|
33174
33933
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
33175
33934
|
}).superRefine((service, ctx) => {
|
|
@@ -33188,49 +33947,49 @@ var appointmentSetupServiceDraftSchema = z63.object({
|
|
|
33188
33947
|
});
|
|
33189
33948
|
}
|
|
33190
33949
|
});
|
|
33191
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
33950
|
+
var appointmentSetupPractitionerDraftSchema = z64.object({
|
|
33192
33951
|
ref: appointmentSetupRefSchema,
|
|
33193
|
-
displayName:
|
|
33194
|
-
bio:
|
|
33195
|
-
timezone:
|
|
33196
|
-
colorHex:
|
|
33197
|
-
});
|
|
33198
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
33199
|
-
weekday:
|
|
33200
|
-
startTime:
|
|
33201
|
-
endTime:
|
|
33202
|
-
});
|
|
33203
|
-
var appointmentSetupStartTimePolicyDraftSchema =
|
|
33204
|
-
|
|
33205
|
-
|
|
33206
|
-
kind:
|
|
33207
|
-
intervalMinutes:
|
|
33208
|
-
|
|
33209
|
-
|
|
33210
|
-
|
|
33211
|
-
|
|
33212
|
-
|
|
33213
|
-
|
|
33952
|
+
displayName: z64.string().trim().min(1),
|
|
33953
|
+
bio: z64.string().nullable(),
|
|
33954
|
+
timezone: z64.string().trim().min(1),
|
|
33955
|
+
colorHex: z64.string().nullable()
|
|
33956
|
+
});
|
|
33957
|
+
var appointmentSetupWeeklyWindowDraftSchema = z64.object({
|
|
33958
|
+
weekday: z64.number().int().min(0).max(6),
|
|
33959
|
+
startTime: z64.string(),
|
|
33960
|
+
endTime: z64.string()
|
|
33961
|
+
});
|
|
33962
|
+
var appointmentSetupStartTimePolicyDraftSchema = z64.discriminatedUnion("kind", [
|
|
33963
|
+
z64.object({ kind: z64.literal("automatic_spacing") }),
|
|
33964
|
+
z64.object({
|
|
33965
|
+
kind: z64.literal("regular_interval"),
|
|
33966
|
+
intervalMinutes: z64.union([
|
|
33967
|
+
z64.literal(10),
|
|
33968
|
+
z64.literal(15),
|
|
33969
|
+
z64.literal(20),
|
|
33970
|
+
z64.literal(30),
|
|
33971
|
+
z64.literal(45),
|
|
33972
|
+
z64.literal(60)
|
|
33214
33973
|
])
|
|
33215
33974
|
})
|
|
33216
33975
|
]);
|
|
33217
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
33218
|
-
kind:
|
|
33976
|
+
var appointmentSetupAvailabilityDraftSchema = z64.object({
|
|
33977
|
+
kind: z64.literal("weekly_windows"),
|
|
33219
33978
|
resourceRef: appointmentSetupRefSchema,
|
|
33220
33979
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
33221
|
-
windows:
|
|
33980
|
+
windows: z64.array(appointmentSetupWeeklyWindowDraftSchema),
|
|
33222
33981
|
startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
|
|
33223
33982
|
});
|
|
33224
33983
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
33225
33984
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
33226
|
-
var appointmentSetupBookingNoticeSchema =
|
|
33227
|
-
minLeadMinutes:
|
|
33228
|
-
maxBookingNoticeMinutes:
|
|
33229
|
-
});
|
|
33230
|
-
var applyAppointmentSetupRequestSchema =
|
|
33231
|
-
services:
|
|
33232
|
-
practitioners:
|
|
33233
|
-
availability:
|
|
33985
|
+
var appointmentSetupBookingNoticeSchema = z64.object({
|
|
33986
|
+
minLeadMinutes: z64.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
|
|
33987
|
+
maxBookingNoticeMinutes: z64.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
|
|
33988
|
+
});
|
|
33989
|
+
var applyAppointmentSetupRequestSchema = z64.object({
|
|
33990
|
+
services: z64.array(appointmentSetupServiceDraftSchema),
|
|
33991
|
+
practitioners: z64.array(appointmentSetupPractitionerDraftSchema),
|
|
33992
|
+
availability: z64.array(appointmentSetupAvailabilityDraftSchema),
|
|
33234
33993
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
33235
33994
|
});
|
|
33236
33995
|
|
|
@@ -33263,24 +34022,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
33263
34022
|
];
|
|
33264
34023
|
|
|
33265
34024
|
// ../api/src/siteBanner.ts
|
|
33266
|
-
import { z as
|
|
34025
|
+
import { z as z65 } from "zod";
|
|
33267
34026
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
33268
34027
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
33269
34028
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
33270
34029
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
33271
|
-
var siteBannerScopeSchema =
|
|
33272
|
-
var siteBannerToneSchema =
|
|
33273
|
-
var siteBannerBodySchema =
|
|
33274
|
-
var siteBannerCtaSchema =
|
|
33275
|
-
label:
|
|
34030
|
+
var siteBannerScopeSchema = z65.enum(SITE_BANNER_SCOPE_VALUES);
|
|
34031
|
+
var siteBannerToneSchema = z65.enum(SITE_BANNER_TONE_VALUES);
|
|
34032
|
+
var siteBannerBodySchema = z65.unknown().transform(unwrapRichTextValue);
|
|
34033
|
+
var siteBannerCtaSchema = z65.object({
|
|
34034
|
+
label: z65.string().trim().min(1),
|
|
33276
34035
|
link: linkPayloadSchema
|
|
33277
34036
|
});
|
|
33278
|
-
var siteBannerSettingsSchema =
|
|
33279
|
-
|
|
33280
|
-
enabled:
|
|
34037
|
+
var siteBannerSettingsSchema = z65.discriminatedUnion("enabled", [
|
|
34038
|
+
z65.object({
|
|
34039
|
+
enabled: z65.literal(false)
|
|
33281
34040
|
}),
|
|
33282
|
-
|
|
33283
|
-
enabled:
|
|
34041
|
+
z65.object({
|
|
34042
|
+
enabled: z65.literal(true),
|
|
33284
34043
|
scope: siteBannerScopeSchema,
|
|
33285
34044
|
tone: siteBannerToneSchema,
|
|
33286
34045
|
body: siteBannerBodySchema,
|
|
@@ -33294,7 +34053,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
33294
34053
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
33295
34054
|
for (const issue of analysis.issues) {
|
|
33296
34055
|
ctx.addIssue({
|
|
33297
|
-
code:
|
|
34056
|
+
code: z65.ZodIssueCode.custom,
|
|
33298
34057
|
path: ["body"],
|
|
33299
34058
|
message: siteBannerBodyIssueMessage(issue)
|
|
33300
34059
|
});
|
|
@@ -33562,76 +34321,109 @@ function isNavigationMenuValidationItem(value) {
|
|
|
33562
34321
|
return typeof value.label === "string";
|
|
33563
34322
|
}
|
|
33564
34323
|
|
|
34324
|
+
// ../api/src/navigation/dashboardSiteNav.ts
|
|
34325
|
+
var hiddenDemoSiteNavSurfaceIds = [
|
|
34326
|
+
"site.newsletter"
|
|
34327
|
+
];
|
|
34328
|
+
var hiddenDemoSiteNavIds = new Set(
|
|
34329
|
+
hiddenDemoSiteNavSurfaceIds
|
|
34330
|
+
);
|
|
34331
|
+
var websiteSurfaceIds = [
|
|
34332
|
+
"site.content",
|
|
34333
|
+
"site.footerBlocks",
|
|
34334
|
+
"site.navigation",
|
|
34335
|
+
"site.media",
|
|
34336
|
+
"site.style",
|
|
34337
|
+
"site.performance"
|
|
34338
|
+
];
|
|
34339
|
+
var websiteSurfaceIdSet = new Set(
|
|
34340
|
+
websiteSurfaceIds
|
|
34341
|
+
);
|
|
34342
|
+
|
|
34343
|
+
// ../api/src/navigation/dashboardSettingsNav.ts
|
|
34344
|
+
var hiddenDemoSettingsNavSurfaceIds = [
|
|
34345
|
+
"settings.features",
|
|
34346
|
+
"settings.domains",
|
|
34347
|
+
"settings.bookings",
|
|
34348
|
+
"settings.emails",
|
|
34349
|
+
"settings.team",
|
|
34350
|
+
"settings.billing",
|
|
34351
|
+
"settings.developer",
|
|
34352
|
+
"settings.apiKeys",
|
|
34353
|
+
"settings.backup"
|
|
34354
|
+
];
|
|
34355
|
+
var hiddenDemoSettingsNavIds = new Set(hiddenDemoSettingsNavSurfaceIds);
|
|
34356
|
+
|
|
33565
34357
|
// ../api/src/aiPlayground.ts
|
|
33566
|
-
import { z as
|
|
33567
|
-
var Rfc6902PatchOp =
|
|
34358
|
+
import { z as z66 } from "zod";
|
|
34359
|
+
var Rfc6902PatchOp = z66.discriminatedUnion("op", [
|
|
33568
34360
|
// Standard RFC-6902 operations
|
|
33569
|
-
|
|
33570
|
-
op:
|
|
33571
|
-
path:
|
|
33572
|
-
value:
|
|
34361
|
+
z66.object({
|
|
34362
|
+
op: z66.literal("add"),
|
|
34363
|
+
path: z66.string(),
|
|
34364
|
+
value: z66.unknown()
|
|
33573
34365
|
}),
|
|
33574
|
-
|
|
33575
|
-
op:
|
|
33576
|
-
path:
|
|
34366
|
+
z66.object({
|
|
34367
|
+
op: z66.literal("remove"),
|
|
34368
|
+
path: z66.string()
|
|
33577
34369
|
}),
|
|
33578
|
-
|
|
33579
|
-
op:
|
|
33580
|
-
path:
|
|
33581
|
-
value:
|
|
34370
|
+
z66.object({
|
|
34371
|
+
op: z66.literal("replace"),
|
|
34372
|
+
path: z66.string(),
|
|
34373
|
+
value: z66.unknown()
|
|
33582
34374
|
}),
|
|
33583
|
-
|
|
33584
|
-
op:
|
|
33585
|
-
from:
|
|
33586
|
-
path:
|
|
34375
|
+
z66.object({
|
|
34376
|
+
op: z66.literal("move"),
|
|
34377
|
+
from: z66.string(),
|
|
34378
|
+
path: z66.string()
|
|
33587
34379
|
}),
|
|
33588
|
-
|
|
33589
|
-
op:
|
|
33590
|
-
from:
|
|
33591
|
-
path:
|
|
34380
|
+
z66.object({
|
|
34381
|
+
op: z66.literal("copy"),
|
|
34382
|
+
from: z66.string(),
|
|
34383
|
+
path: z66.string()
|
|
33592
34384
|
}),
|
|
33593
34385
|
// Block-level operations (Phase 2)
|
|
33594
|
-
|
|
33595
|
-
op:
|
|
33596
|
-
blockKind:
|
|
33597
|
-
afterBlockId:
|
|
33598
|
-
content:
|
|
33599
|
-
rationale:
|
|
34386
|
+
z66.object({
|
|
34387
|
+
op: z66.literal("add_block"),
|
|
34388
|
+
blockKind: z66.string(),
|
|
34389
|
+
afterBlockId: z66.string().nullable(),
|
|
34390
|
+
content: z66.record(z66.string(), z66.unknown()),
|
|
34391
|
+
rationale: z66.string()
|
|
33600
34392
|
}),
|
|
33601
|
-
|
|
33602
|
-
op:
|
|
33603
|
-
blockId:
|
|
33604
|
-
rationale:
|
|
34393
|
+
z66.object({
|
|
34394
|
+
op: z66.literal("delete_block"),
|
|
34395
|
+
blockId: z66.string(),
|
|
34396
|
+
rationale: z66.string()
|
|
33605
34397
|
}),
|
|
33606
|
-
|
|
33607
|
-
op:
|
|
33608
|
-
blockId:
|
|
33609
|
-
afterBlockId:
|
|
33610
|
-
rationale:
|
|
34398
|
+
z66.object({
|
|
34399
|
+
op: z66.literal("reorder_block"),
|
|
34400
|
+
blockId: z66.string(),
|
|
34401
|
+
afterBlockId: z66.string().nullable(),
|
|
34402
|
+
rationale: z66.string()
|
|
33611
34403
|
})
|
|
33612
34404
|
]);
|
|
33613
|
-
var PlaygroundProposeRequest =
|
|
33614
|
-
request:
|
|
34405
|
+
var PlaygroundProposeRequest = z66.object({
|
|
34406
|
+
request: z66.string().min(1).max(2e3)
|
|
33615
34407
|
});
|
|
33616
|
-
var MultiPagePatchEnvelope =
|
|
33617
|
-
pageId:
|
|
33618
|
-
blockId:
|
|
34408
|
+
var MultiPagePatchEnvelope = z66.object({
|
|
34409
|
+
pageId: z66.string(),
|
|
34410
|
+
blockId: z66.string().optional(),
|
|
33619
34411
|
// Not present for page-level ops
|
|
33620
|
-
blockKind:
|
|
33621
|
-
blockPurpose:
|
|
33622
|
-
ops:
|
|
33623
|
-
rationale:
|
|
33624
|
-
currentContent:
|
|
34412
|
+
blockKind: z66.string().optional(),
|
|
34413
|
+
blockPurpose: z66.string().optional().nullable(),
|
|
34414
|
+
ops: z66.array(Rfc6902PatchOp),
|
|
34415
|
+
rationale: z66.string(),
|
|
34416
|
+
currentContent: z66.record(z66.string(), z66.unknown()).optional()
|
|
33625
34417
|
});
|
|
33626
|
-
var MultiPageUpdateResponse =
|
|
33627
|
-
patches:
|
|
33628
|
-
assistantMessage:
|
|
33629
|
-
pagesModified:
|
|
33630
|
-
toolCallsUsed:
|
|
34418
|
+
var MultiPageUpdateResponse = z66.object({
|
|
34419
|
+
patches: z66.array(MultiPagePatchEnvelope),
|
|
34420
|
+
assistantMessage: z66.string(),
|
|
34421
|
+
pagesModified: z66.number(),
|
|
34422
|
+
toolCallsUsed: z66.number()
|
|
33631
34423
|
});
|
|
33632
34424
|
|
|
33633
34425
|
// src/config/content-validation.ts
|
|
33634
|
-
import { z as
|
|
34426
|
+
import { z as z67 } from "zod";
|
|
33635
34427
|
|
|
33636
34428
|
// src/types/block-kinds.ts
|
|
33637
34429
|
var SYSTEM_BLOCK_KINDS = [
|
|
@@ -33773,32 +34565,36 @@ function describeInvalidBindingTransform(transform) {
|
|
|
33773
34565
|
}
|
|
33774
34566
|
|
|
33775
34567
|
// src/config/content-validation.ts
|
|
33776
|
-
var jsonDataSchema =
|
|
33777
|
-
var contentTypeKeySchema =
|
|
34568
|
+
var jsonDataSchema = z67.record(z67.string(), z67.any());
|
|
34569
|
+
var contentTypeKeySchema = z67.string().min(1).regex(
|
|
33778
34570
|
/^[a-z][a-z0-9-]*$/,
|
|
33779
34571
|
"Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
|
|
33780
34572
|
);
|
|
33781
|
-
var templateConfigSchemaForward =
|
|
33782
|
-
blocks:
|
|
33783
|
-
|
|
33784
|
-
identifier:
|
|
33785
|
-
kind:
|
|
33786
|
-
scope:
|
|
33787
|
-
bindings:
|
|
33788
|
-
content:
|
|
34573
|
+
var templateConfigSchemaForward = z67.object({
|
|
34574
|
+
blocks: z67.array(
|
|
34575
|
+
z67.object({
|
|
34576
|
+
identifier: z67.string().min(1),
|
|
34577
|
+
kind: z67.string(),
|
|
34578
|
+
scope: z67.enum(["entry", "template"]),
|
|
34579
|
+
bindings: z67.record(z67.string(), z67.any()).optional(),
|
|
34580
|
+
content: z67.record(z67.string(), z67.any()).optional()
|
|
33789
34581
|
})
|
|
33790
34582
|
)
|
|
33791
34583
|
}).optional();
|
|
33792
|
-
var
|
|
34584
|
+
var contentTypeOrderingSchema = z67.object({
|
|
34585
|
+
mode: z67.enum(["default", "manual"]).optional()
|
|
34586
|
+
}).optional();
|
|
34587
|
+
var contentTypeConfigSchema = z67.object({
|
|
33793
34588
|
key: contentTypeKeySchema,
|
|
33794
|
-
name:
|
|
33795
|
-
description:
|
|
33796
|
-
hasPages:
|
|
33797
|
-
routePattern:
|
|
34589
|
+
name: z67.string().min(1),
|
|
34590
|
+
description: z67.string().optional(),
|
|
34591
|
+
hasPages: z67.boolean(),
|
|
34592
|
+
routePattern: z67.string().optional(),
|
|
33798
34593
|
// Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
|
|
33799
|
-
fields:
|
|
33800
|
-
titleField:
|
|
33801
|
-
|
|
34594
|
+
fields: z67.array(z67.any()).min(1, "At least one field is required"),
|
|
34595
|
+
titleField: z67.string().optional(),
|
|
34596
|
+
ordering: contentTypeOrderingSchema,
|
|
34597
|
+
isSingleton: z67.boolean().optional().default(false),
|
|
33802
34598
|
template: templateConfigSchemaForward
|
|
33803
34599
|
}).refine(
|
|
33804
34600
|
(data) => {
|
|
@@ -33820,7 +34616,7 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33820
34616
|
}
|
|
33821
34617
|
if (!data.routePattern) {
|
|
33822
34618
|
ctx.addIssue({
|
|
33823
|
-
code:
|
|
34619
|
+
code: z67.ZodIssueCode.custom,
|
|
33824
34620
|
path: ["routePattern"],
|
|
33825
34621
|
message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
|
|
33826
34622
|
});
|
|
@@ -33829,7 +34625,7 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33829
34625
|
const parseResult = safeParseRouteTemplate(data.routePattern);
|
|
33830
34626
|
if (!parseResult.success) {
|
|
33831
34627
|
ctx.addIssue({
|
|
33832
|
-
code:
|
|
34628
|
+
code: z67.ZodIssueCode.custom,
|
|
33833
34629
|
path: ["routePattern"],
|
|
33834
34630
|
message: describeRouteTemplateParseError(parseResult.error)
|
|
33835
34631
|
});
|
|
@@ -33837,44 +34633,44 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33837
34633
|
}
|
|
33838
34634
|
if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
|
|
33839
34635
|
ctx.addIssue({
|
|
33840
|
-
code:
|
|
34636
|
+
code: z67.ZodIssueCode.custom,
|
|
33841
34637
|
path: ["routePattern"],
|
|
33842
34638
|
message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
|
|
33843
34639
|
});
|
|
33844
34640
|
}
|
|
33845
34641
|
});
|
|
33846
|
-
var fieldBindingSchema =
|
|
33847
|
-
source:
|
|
33848
|
-
path:
|
|
34642
|
+
var fieldBindingSchema = z67.object({
|
|
34643
|
+
source: z67.literal("field"),
|
|
34644
|
+
path: z67.string().min(1, "Field path is required")
|
|
33849
34645
|
});
|
|
33850
|
-
var metaBindingSchema =
|
|
33851
|
-
source:
|
|
33852
|
-
path:
|
|
34646
|
+
var metaBindingSchema = z67.object({
|
|
34647
|
+
source: z67.literal("meta"),
|
|
34648
|
+
path: z67.enum(TEMPLATE_BINDING_META_PATHS, {
|
|
33853
34649
|
error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
|
|
33854
34650
|
})
|
|
33855
34651
|
});
|
|
33856
|
-
var literalBindingSchema =
|
|
33857
|
-
source:
|
|
33858
|
-
value:
|
|
34652
|
+
var literalBindingSchema = z67.object({
|
|
34653
|
+
source: z67.literal("literal"),
|
|
34654
|
+
value: z67.unknown()
|
|
33859
34655
|
});
|
|
33860
|
-
var transformBindingSchema =
|
|
33861
|
-
source:
|
|
33862
|
-
path:
|
|
33863
|
-
transform:
|
|
34656
|
+
var transformBindingSchema = z67.object({
|
|
34657
|
+
source: z67.literal("transform"),
|
|
34658
|
+
path: z67.string().min(1, "Transform path is required"),
|
|
34659
|
+
transform: z67.enum(BINDING_TRANSFORM_VALUES, {
|
|
33864
34660
|
error: (issue) => describeInvalidBindingTransform(String(issue.input))
|
|
33865
34661
|
})
|
|
33866
34662
|
});
|
|
33867
|
-
var baseBindingSchema =
|
|
34663
|
+
var baseBindingSchema = z67.discriminatedUnion("source", [
|
|
33868
34664
|
fieldBindingSchema,
|
|
33869
34665
|
metaBindingSchema,
|
|
33870
34666
|
literalBindingSchema,
|
|
33871
34667
|
transformBindingSchema
|
|
33872
34668
|
]);
|
|
33873
|
-
var fallbackBindingSchema =
|
|
33874
|
-
source:
|
|
33875
|
-
sources:
|
|
34669
|
+
var fallbackBindingSchema = z67.object({
|
|
34670
|
+
source: z67.literal("fallback"),
|
|
34671
|
+
sources: z67.array(z67.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
|
|
33876
34672
|
});
|
|
33877
|
-
var bindingSourceSchema =
|
|
34673
|
+
var bindingSourceSchema = z67.union([
|
|
33878
34674
|
baseBindingSchema,
|
|
33879
34675
|
fallbackBindingSchema
|
|
33880
34676
|
]);
|
|
@@ -33888,12 +34684,12 @@ function isValidBlockKind(kind) {
|
|
|
33888
34684
|
return false;
|
|
33889
34685
|
}
|
|
33890
34686
|
var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
|
|
33891
|
-
var blockKindSchema =
|
|
33892
|
-
var templateBlockConfigSchema =
|
|
33893
|
-
identifier:
|
|
34687
|
+
var blockKindSchema = z67.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
|
|
34688
|
+
var templateBlockConfigSchema = z67.object({
|
|
34689
|
+
identifier: z67.string().min(1, "Block identifier is required"),
|
|
33894
34690
|
kind: blockKindSchema,
|
|
33895
|
-
scope:
|
|
33896
|
-
bindings:
|
|
34691
|
+
scope: z67.enum(["entry", "template"]),
|
|
34692
|
+
bindings: z67.record(z67.string(), bindingSourceSchema).optional(),
|
|
33897
34693
|
content: jsonDataSchema.optional()
|
|
33898
34694
|
}).refine(
|
|
33899
34695
|
(data) => {
|
|
@@ -33912,8 +34708,8 @@ var templateBlockConfigSchema = z66.object({
|
|
|
33912
34708
|
},
|
|
33913
34709
|
{ message: "Template-scoped blocks should define static content, not bindings" }
|
|
33914
34710
|
);
|
|
33915
|
-
var templateConfigSchema =
|
|
33916
|
-
blocks:
|
|
34711
|
+
var templateConfigSchema = z67.object({
|
|
34712
|
+
blocks: z67.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
|
|
33917
34713
|
}).refine(
|
|
33918
34714
|
(data) => {
|
|
33919
34715
|
const identifiers = data.blocks.map((b) => b.identifier);
|
|
@@ -33922,77 +34718,77 @@ var templateConfigSchema = z66.object({
|
|
|
33922
34718
|
},
|
|
33923
34719
|
{ message: "Template block identifiers must be unique" }
|
|
33924
34720
|
);
|
|
33925
|
-
var blockConfigSchema =
|
|
34721
|
+
var blockConfigSchema = z67.object({
|
|
33926
34722
|
kind: blockKindSchema,
|
|
33927
34723
|
content: jsonDataSchema,
|
|
33928
|
-
orderIndex:
|
|
33929
|
-
});
|
|
33930
|
-
var pageConfigSchema =
|
|
33931
|
-
identifier:
|
|
33932
|
-
title:
|
|
33933
|
-
path:
|
|
33934
|
-
purpose:
|
|
33935
|
-
blocks:
|
|
33936
|
-
status:
|
|
33937
|
-
metaTitle:
|
|
33938
|
-
metaDescription:
|
|
33939
|
-
});
|
|
33940
|
-
var entryConfigSchema =
|
|
33941
|
-
identifier:
|
|
33942
|
-
contentType:
|
|
34724
|
+
orderIndex: z67.number().optional()
|
|
34725
|
+
});
|
|
34726
|
+
var pageConfigSchema = z67.object({
|
|
34727
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34728
|
+
title: z67.string().min(1, "Title is required"),
|
|
34729
|
+
path: z67.string().regex(/^\//, "Path must start with /"),
|
|
34730
|
+
purpose: z67.string().default("content"),
|
|
34731
|
+
blocks: z67.array(blockConfigSchema).optional(),
|
|
34732
|
+
status: z67.enum(["draft", "published"]).default("draft"),
|
|
34733
|
+
metaTitle: z67.string().optional(),
|
|
34734
|
+
metaDescription: z67.string().optional()
|
|
34735
|
+
});
|
|
34736
|
+
var entryConfigSchema = z67.object({
|
|
34737
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34738
|
+
contentType: z67.string().min(1, "Content type is required"),
|
|
33943
34739
|
data: jsonDataSchema,
|
|
33944
|
-
status:
|
|
33945
|
-
slug:
|
|
33946
|
-
summary:
|
|
34740
|
+
status: z67.enum(["draft", "published"]).default("draft"),
|
|
34741
|
+
slug: z67.string().optional(),
|
|
34742
|
+
summary: z67.string().optional(),
|
|
33947
34743
|
// Hard remove legacy config-only titles: titles must live in entry `data`.
|
|
33948
|
-
title:
|
|
34744
|
+
title: z67.any().optional().refine((value) => value === void 0, {
|
|
33949
34745
|
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."
|
|
33950
34746
|
}),
|
|
33951
|
-
metaTitle:
|
|
33952
|
-
metaDescription:
|
|
34747
|
+
metaTitle: z67.string().optional(),
|
|
34748
|
+
metaDescription: z67.string().optional()
|
|
33953
34749
|
});
|
|
33954
|
-
var dropdownLinkSchema =
|
|
33955
|
-
kind:
|
|
34750
|
+
var dropdownLinkSchema = z67.object({
|
|
34751
|
+
kind: z67.literal("dropdown")
|
|
33956
34752
|
});
|
|
33957
|
-
var navigationLinkSchema =
|
|
34753
|
+
var navigationLinkSchema = z67.discriminatedUnion("kind", [
|
|
33958
34754
|
...navigationLinkInputSchemaOptions,
|
|
33959
34755
|
dropdownLinkSchema
|
|
33960
34756
|
]);
|
|
33961
|
-
var baseNavigationItemSchema =
|
|
33962
|
-
label:
|
|
34757
|
+
var baseNavigationItemSchema = z67.object({
|
|
34758
|
+
label: z67.string().min(1, "Label is required"),
|
|
33963
34759
|
link: navigationLinkSchema,
|
|
33964
|
-
isCta:
|
|
34760
|
+
isCta: z67.boolean().optional()
|
|
33965
34761
|
});
|
|
33966
34762
|
var navigationItemConfigSchema = baseNavigationItemSchema.extend({
|
|
33967
|
-
children:
|
|
33968
|
-
});
|
|
33969
|
-
var navigationMenuConfigSchema =
|
|
33970
|
-
identifier:
|
|
33971
|
-
name:
|
|
33972
|
-
isPrimary:
|
|
33973
|
-
isFooter:
|
|
33974
|
-
items:
|
|
34763
|
+
children: z67.lazy(() => z67.array(navigationItemConfigSchema)).optional()
|
|
34764
|
+
});
|
|
34765
|
+
var navigationMenuConfigSchema = z67.object({
|
|
34766
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34767
|
+
name: z67.string().min(1, "Name is required"),
|
|
34768
|
+
isPrimary: z67.boolean().optional(),
|
|
34769
|
+
isFooter: z67.boolean().optional(),
|
|
34770
|
+
items: z67.array(navigationItemConfigSchema)
|
|
33975
34771
|
}).superRefine((menu, ctx) => {
|
|
33976
34772
|
const portalStats = collectPortalLinkStats(
|
|
33977
34773
|
menu.items
|
|
33978
34774
|
);
|
|
33979
34775
|
if (portalStats.count > 1) {
|
|
33980
34776
|
ctx.addIssue({
|
|
33981
|
-
code:
|
|
34777
|
+
code: z67.ZodIssueCode.custom,
|
|
33982
34778
|
message: "Only one portal link is allowed per navigation menu",
|
|
33983
34779
|
path: ["items"]
|
|
33984
34780
|
});
|
|
33985
34781
|
}
|
|
33986
34782
|
if (portalStats.nestedLabels.length > 0) {
|
|
33987
34783
|
ctx.addIssue({
|
|
33988
|
-
code:
|
|
34784
|
+
code: z67.ZodIssueCode.custom,
|
|
33989
34785
|
message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
|
|
33990
34786
|
path: ["items"]
|
|
33991
34787
|
});
|
|
33992
34788
|
}
|
|
33993
34789
|
if (portalStats.withChildrenLabels.length > 0) {
|
|
33994
34790
|
ctx.addIssue({
|
|
33995
|
-
code:
|
|
34791
|
+
code: z67.ZodIssueCode.custom,
|
|
33996
34792
|
message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
|
|
33997
34793
|
path: ["items"]
|
|
33998
34794
|
});
|
|
@@ -34002,44 +34798,44 @@ var navigationMenuConfigSchema = z66.object({
|
|
|
34002
34798
|
);
|
|
34003
34799
|
if (cartStats.nestedLabels.length > 0) {
|
|
34004
34800
|
ctx.addIssue({
|
|
34005
|
-
code:
|
|
34801
|
+
code: z67.ZodIssueCode.custom,
|
|
34006
34802
|
message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
|
|
34007
34803
|
path: ["items"]
|
|
34008
34804
|
});
|
|
34009
34805
|
}
|
|
34010
34806
|
if (cartStats.withChildrenLabels.length > 0) {
|
|
34011
34807
|
ctx.addIssue({
|
|
34012
|
-
code:
|
|
34808
|
+
code: z67.ZodIssueCode.custom,
|
|
34013
34809
|
message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
|
|
34014
34810
|
path: ["items"]
|
|
34015
34811
|
});
|
|
34016
34812
|
}
|
|
34017
34813
|
if (cartStats.ctaLabels.length > 0) {
|
|
34018
34814
|
ctx.addIssue({
|
|
34019
|
-
code:
|
|
34815
|
+
code: z67.ZodIssueCode.custom,
|
|
34020
34816
|
message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
|
|
34021
34817
|
path: ["items"]
|
|
34022
34818
|
});
|
|
34023
34819
|
}
|
|
34024
34820
|
if (cartStats.missingVisibleTextLabels.length > 0) {
|
|
34025
34821
|
ctx.addIssue({
|
|
34026
|
-
code:
|
|
34822
|
+
code: z67.ZodIssueCode.custom,
|
|
34027
34823
|
message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
|
|
34028
34824
|
path: ["items"]
|
|
34029
34825
|
});
|
|
34030
34826
|
}
|
|
34031
34827
|
});
|
|
34032
|
-
var siteSettingsConfigSchema =
|
|
34033
|
-
homepagePath:
|
|
34034
|
-
siteTitle:
|
|
34035
|
-
siteDescription:
|
|
34036
|
-
defaultTemplates:
|
|
34828
|
+
var siteSettingsConfigSchema = z67.object({
|
|
34829
|
+
homepagePath: z67.string().optional(),
|
|
34830
|
+
siteTitle: z67.string().optional(),
|
|
34831
|
+
siteDescription: z67.string().optional(),
|
|
34832
|
+
defaultTemplates: z67.record(z67.string(), z67.string()).optional()
|
|
34037
34833
|
});
|
|
34038
|
-
var contentConfigBaseSchema =
|
|
34039
|
-
contentTypes:
|
|
34040
|
-
entries:
|
|
34041
|
-
pages:
|
|
34042
|
-
navigationMenus:
|
|
34834
|
+
var contentConfigBaseSchema = z67.object({
|
|
34835
|
+
contentTypes: z67.array(contentTypeConfigSchema).optional(),
|
|
34836
|
+
entries: z67.array(entryConfigSchema).optional(),
|
|
34837
|
+
pages: z67.array(pageConfigSchema).optional(),
|
|
34838
|
+
navigationMenus: z67.array(navigationMenuConfigSchema).optional(),
|
|
34043
34839
|
settings: siteSettingsConfigSchema.optional()
|
|
34044
34840
|
});
|
|
34045
34841
|
var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
@@ -34048,7 +34844,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34048
34844
|
const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
|
|
34049
34845
|
if (duplicateKeys.length > 0) {
|
|
34050
34846
|
ctx.addIssue({
|
|
34051
|
-
code:
|
|
34847
|
+
code: z67.ZodIssueCode.custom,
|
|
34052
34848
|
message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
|
|
34053
34849
|
path: ["contentTypes"]
|
|
34054
34850
|
});
|
|
@@ -34059,7 +34855,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34059
34855
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34060
34856
|
if (duplicateIds.length > 0) {
|
|
34061
34857
|
ctx.addIssue({
|
|
34062
|
-
code:
|
|
34858
|
+
code: z67.ZodIssueCode.custom,
|
|
34063
34859
|
message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34064
34860
|
path: ["pages"]
|
|
34065
34861
|
});
|
|
@@ -34068,7 +34864,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34068
34864
|
const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
|
|
34069
34865
|
if (duplicatePaths.length > 0) {
|
|
34070
34866
|
ctx.addIssue({
|
|
34071
|
-
code:
|
|
34867
|
+
code: z67.ZodIssueCode.custom,
|
|
34072
34868
|
message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
|
|
34073
34869
|
path: ["pages"]
|
|
34074
34870
|
});
|
|
@@ -34079,7 +34875,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34079
34875
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34080
34876
|
if (duplicateIds.length > 0) {
|
|
34081
34877
|
ctx.addIssue({
|
|
34082
|
-
code:
|
|
34878
|
+
code: z67.ZodIssueCode.custom,
|
|
34083
34879
|
message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34084
34880
|
path: ["entries"]
|
|
34085
34881
|
});
|
|
@@ -34090,7 +34886,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34090
34886
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34091
34887
|
if (duplicateIds.length > 0) {
|
|
34092
34888
|
ctx.addIssue({
|
|
34093
|
-
code:
|
|
34889
|
+
code: z67.ZodIssueCode.custom,
|
|
34094
34890
|
message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34095
34891
|
path: ["navigationMenus"]
|
|
34096
34892
|
});
|
|
@@ -34104,7 +34900,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34104
34900
|
const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
|
|
34105
34901
|
if (entriesForType.length > 1) {
|
|
34106
34902
|
ctx.addIssue({
|
|
34107
|
-
code:
|
|
34903
|
+
code: z67.ZodIssueCode.custom,
|
|
34108
34904
|
message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
|
|
34109
34905
|
path: ["entries"]
|
|
34110
34906
|
});
|
|
@@ -34217,18 +35013,18 @@ function validateLayout(layout) {
|
|
|
34217
35013
|
}
|
|
34218
35014
|
|
|
34219
35015
|
// src/config/dashboard-validation.ts
|
|
34220
|
-
import { z as
|
|
34221
|
-
var navIdListSchema2 =
|
|
35016
|
+
import { z as z68 } from "zod";
|
|
35017
|
+
var navIdListSchema2 = z68.preprocess((value) => {
|
|
34222
35018
|
if (!Array.isArray(value)) return void 0;
|
|
34223
35019
|
const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
|
|
34224
35020
|
return filtered.length > 0 ? filtered : void 0;
|
|
34225
|
-
},
|
|
34226
|
-
var dashboardNavVisibilityBaseSchema2 =
|
|
34227
|
-
mode:
|
|
35021
|
+
}, z68.array(z68.string()).max(200, "Maximum 200 nav IDs").optional());
|
|
35022
|
+
var dashboardNavVisibilityBaseSchema2 = z68.object({
|
|
35023
|
+
mode: z68.enum(["augment", "restrict"]).optional(),
|
|
34228
35024
|
allowIds: navIdListSchema2,
|
|
34229
35025
|
denyIds: navIdListSchema2
|
|
34230
35026
|
}).strip();
|
|
34231
|
-
var dashboardNavVisibilityRolesSchema2 =
|
|
35027
|
+
var dashboardNavVisibilityRolesSchema2 = z68.object({
|
|
34232
35028
|
administrator: dashboardNavVisibilityBaseSchema2.optional(),
|
|
34233
35029
|
editor: dashboardNavVisibilityBaseSchema2.optional(),
|
|
34234
35030
|
team_member: dashboardNavVisibilityBaseSchema2.optional()
|
|
@@ -34236,20 +35032,20 @@ var dashboardNavVisibilityRolesSchema2 = z67.object({
|
|
|
34236
35032
|
var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
|
|
34237
35033
|
roles: dashboardNavVisibilityRolesSchema2
|
|
34238
35034
|
}).strip();
|
|
34239
|
-
var dashboardNavigationConfigSchema2 =
|
|
35035
|
+
var dashboardNavigationConfigSchema2 = z68.object({
|
|
34240
35036
|
siteNav: dashboardNavVisibilitySchema2.optional(),
|
|
34241
35037
|
settingsNav: dashboardNavVisibilitySchema2.optional()
|
|
34242
35038
|
}).strip();
|
|
34243
|
-
var dashboardConfigSchema2 =
|
|
34244
|
-
previewEditingEnabled:
|
|
35039
|
+
var dashboardConfigSchema2 = z68.object({
|
|
35040
|
+
previewEditingEnabled: z68.boolean().optional(),
|
|
34245
35041
|
navigation: dashboardNavigationConfigSchema2.optional()
|
|
34246
35042
|
}).strip();
|
|
34247
35043
|
|
|
34248
35044
|
// src/zod/titleSourceSchema.ts
|
|
34249
|
-
import { z as
|
|
34250
|
-
var titleSourceValueSchema =
|
|
34251
|
-
|
|
34252
|
-
|
|
35045
|
+
import { z as z69 } from "zod";
|
|
35046
|
+
var titleSourceValueSchema = z69.union([
|
|
35047
|
+
z69.string().min(1),
|
|
35048
|
+
z69.array(z69.string().min(1)).min(1)
|
|
34253
35049
|
]);
|
|
34254
35050
|
|
|
34255
35051
|
// src/data/prefetchBlockData.ts
|
|
@@ -34268,11 +35064,11 @@ var SUPPORTED_LOADER_ENDPOINTS2 = [
|
|
|
34268
35064
|
];
|
|
34269
35065
|
|
|
34270
35066
|
// src/config/validation.ts
|
|
34271
|
-
var sdkThemePaletteSchema2 =
|
|
34272
|
-
var sdkThemeConfigSchema2 =
|
|
35067
|
+
var sdkThemePaletteSchema2 = z70.record(z70.string(), z70.string());
|
|
35068
|
+
var sdkThemeConfigSchema2 = z70.object({
|
|
34273
35069
|
palette: sdkThemePaletteSchema2
|
|
34274
35070
|
});
|
|
34275
|
-
var sdkSiteUrlSchema =
|
|
35071
|
+
var sdkSiteUrlSchema = z70.string().url("Must be a valid URL").refine((url) => {
|
|
34276
35072
|
try {
|
|
34277
35073
|
const parsed = new URL(url);
|
|
34278
35074
|
const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
|
|
@@ -34281,97 +35077,97 @@ var sdkSiteUrlSchema = z69.string().url("Must be a valid URL").refine((url) => {
|
|
|
34281
35077
|
return false;
|
|
34282
35078
|
}
|
|
34283
35079
|
}, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
|
|
34284
|
-
var sectionBackgroundSchema =
|
|
34285
|
-
id:
|
|
34286
|
-
label:
|
|
34287
|
-
token:
|
|
35080
|
+
var sectionBackgroundSchema = z70.object({
|
|
35081
|
+
id: z70.string(),
|
|
35082
|
+
label: z70.string(),
|
|
35083
|
+
token: z70.string()
|
|
34288
35084
|
// Reference to theme palette token
|
|
34289
35085
|
});
|
|
34290
|
-
var sectionSpacingSchema =
|
|
34291
|
-
var containerMaxWidthSchema =
|
|
34292
|
-
var containerAlignmentSchema =
|
|
34293
|
-
var sectionOptionsSchema =
|
|
34294
|
-
backgroundColor:
|
|
34295
|
-
backgroundImage:
|
|
34296
|
-
backgroundGradient:
|
|
34297
|
-
spacing:
|
|
34298
|
-
|
|
34299
|
-
|
|
35086
|
+
var sectionSpacingSchema = z70.enum(["compact", "default", "spacious"]);
|
|
35087
|
+
var containerMaxWidthSchema = z70.enum(["narrow", "default", "wide", "full"]);
|
|
35088
|
+
var containerAlignmentSchema = z70.enum(["left", "center", "right"]);
|
|
35089
|
+
var sectionOptionsSchema = z70.object({
|
|
35090
|
+
backgroundColor: z70.boolean().optional(),
|
|
35091
|
+
backgroundImage: z70.boolean().optional(),
|
|
35092
|
+
backgroundGradient: z70.boolean().optional(),
|
|
35093
|
+
spacing: z70.union([
|
|
35094
|
+
z70.array(sectionSpacingSchema),
|
|
35095
|
+
z70.boolean()
|
|
34300
35096
|
]).optional(),
|
|
34301
|
-
textColor:
|
|
35097
|
+
textColor: z70.boolean().optional()
|
|
34302
35098
|
}).optional();
|
|
34303
|
-
var containerOptionsSchema =
|
|
34304
|
-
maxWidth:
|
|
34305
|
-
|
|
34306
|
-
|
|
35099
|
+
var containerOptionsSchema = z70.object({
|
|
35100
|
+
maxWidth: z70.union([
|
|
35101
|
+
z70.array(containerMaxWidthSchema),
|
|
35102
|
+
z70.boolean()
|
|
34307
35103
|
]).optional(),
|
|
34308
|
-
alignment:
|
|
34309
|
-
|
|
34310
|
-
|
|
35104
|
+
alignment: z70.union([
|
|
35105
|
+
z70.array(containerAlignmentSchema),
|
|
35106
|
+
z70.boolean()
|
|
34311
35107
|
]).optional()
|
|
34312
35108
|
}).optional();
|
|
34313
|
-
var siteStyleConfigSchema =
|
|
34314
|
-
sectionBackgrounds:
|
|
35109
|
+
var siteStyleConfigSchema = z70.object({
|
|
35110
|
+
sectionBackgrounds: z70.array(sectionBackgroundSchema).optional(),
|
|
34315
35111
|
sectionOptions: sectionOptionsSchema,
|
|
34316
35112
|
containerOptions: containerOptionsSchema
|
|
34317
35113
|
}).optional();
|
|
34318
|
-
var sdkLoaderEndpointSchema2 =
|
|
35114
|
+
var sdkLoaderEndpointSchema2 = z70.enum(SUPPORTED_LOADER_ENDPOINTS2);
|
|
34319
35115
|
var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
|
|
34320
|
-
var loaderTransformStepSchema =
|
|
34321
|
-
id:
|
|
35116
|
+
var loaderTransformStepSchema = z70.object({
|
|
35117
|
+
id: z70.string().refine((id) => allowedTransformIds.has(id), {
|
|
34322
35118
|
message: "Unknown transform id"
|
|
34323
35119
|
}),
|
|
34324
|
-
options:
|
|
35120
|
+
options: z70.record(z70.string(), z70.unknown()).optional()
|
|
34325
35121
|
});
|
|
34326
|
-
var loaderParamBindingSchema2 =
|
|
34327
|
-
$bind:
|
|
34328
|
-
from:
|
|
35122
|
+
var loaderParamBindingSchema2 = z70.object({
|
|
35123
|
+
$bind: z70.object({
|
|
35124
|
+
from: z70.string().min(1, "Binding path is required"),
|
|
34329
35125
|
// Loader params are ultimately string-normalized for query strings, so fallbacks should
|
|
34330
35126
|
// stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
|
|
34331
35127
|
// more complex values into a string.
|
|
34332
|
-
fallback:
|
|
34333
|
-
transforms:
|
|
34334
|
-
pick:
|
|
34335
|
-
coerce:
|
|
35128
|
+
fallback: loaderFallbackScalarSchema.optional(),
|
|
35129
|
+
transforms: z70.array(loaderTransformStepSchema).default([]),
|
|
35130
|
+
pick: z70.enum(["value", "collection", "context"]).default("value"),
|
|
35131
|
+
coerce: z70.enum(["number", "boolean", "string"]).optional()
|
|
34336
35132
|
})
|
|
34337
35133
|
});
|
|
34338
|
-
var loaderParamValueSchema2 =
|
|
34339
|
-
|
|
34340
|
-
|
|
34341
|
-
|
|
35134
|
+
var loaderParamValueSchema2 = z70.union([
|
|
35135
|
+
z70.string(),
|
|
35136
|
+
z70.number(),
|
|
35137
|
+
z70.boolean(),
|
|
34342
35138
|
loaderParamBindingSchema2
|
|
34343
35139
|
]);
|
|
34344
|
-
var loaderWhenValueSchema =
|
|
34345
|
-
|
|
35140
|
+
var loaderWhenValueSchema = z70.union([
|
|
35141
|
+
z70.boolean(),
|
|
34346
35142
|
loaderParamBindingSchema2
|
|
34347
35143
|
]);
|
|
34348
|
-
var sdkConfigLoaderSchema2 =
|
|
35144
|
+
var sdkConfigLoaderSchema2 = z70.object({
|
|
34349
35145
|
endpoint: sdkLoaderEndpointSchema2,
|
|
34350
|
-
params:
|
|
34351
|
-
mode:
|
|
35146
|
+
params: z70.record(z70.string(), loaderParamValueSchema2),
|
|
35147
|
+
mode: z70.enum(["server", "client"]).default("server"),
|
|
34352
35148
|
when: loaderWhenValueSchema.optional()
|
|
34353
35149
|
});
|
|
34354
|
-
var sdkDataLoadersSchema2 =
|
|
35150
|
+
var sdkDataLoadersSchema2 = z70.record(z70.string(), sdkConfigLoaderSchema2).refine(
|
|
34355
35151
|
(loaders) => Object.keys(loaders).length <= 5,
|
|
34356
35152
|
{ message: "Maximum 5 data loaders per block" }
|
|
34357
35153
|
).optional();
|
|
34358
|
-
var fieldSelectOptionSchema =
|
|
34359
|
-
value:
|
|
34360
|
-
label:
|
|
35154
|
+
var fieldSelectOptionSchema = z70.object({
|
|
35155
|
+
value: z70.string().min(1, "Option value is required"),
|
|
35156
|
+
label: z70.string().min(1, "Option label is required")
|
|
34361
35157
|
});
|
|
34362
|
-
var blockFieldConfigSchema =
|
|
34363
|
-
options:
|
|
35158
|
+
var blockFieldConfigSchema = z70.object({
|
|
35159
|
+
options: z70.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
|
|
34364
35160
|
});
|
|
34365
|
-
var blockFieldOptionsSchema =
|
|
34366
|
-
|
|
35161
|
+
var blockFieldOptionsSchema = z70.record(
|
|
35162
|
+
z70.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
|
|
34367
35163
|
message: "Block ID must be 'block.*' or 'custom.*' format"
|
|
34368
35164
|
}),
|
|
34369
|
-
|
|
34370
|
-
|
|
35165
|
+
z70.record(
|
|
35166
|
+
z70.string().min(1, "Field ID is required"),
|
|
34371
35167
|
blockFieldConfigSchema
|
|
34372
35168
|
)
|
|
34373
35169
|
).optional();
|
|
34374
|
-
var blockFieldExtensionSchema =
|
|
35170
|
+
var blockFieldExtensionSchema = z70.object({
|
|
34375
35171
|
fields: fieldSchema.array().min(1, "At least one field is required")
|
|
34376
35172
|
}).refine(
|
|
34377
35173
|
(data) => {
|
|
@@ -34385,10 +35181,10 @@ var blockFieldExtensionSchema = z69.object({
|
|
|
34385
35181
|
message: "Required fields must have a defaultValue to support existing blocks"
|
|
34386
35182
|
}
|
|
34387
35183
|
);
|
|
34388
|
-
var blockFieldExtensionsMapSchema =
|
|
35184
|
+
var blockFieldExtensionsMapSchema = z70.record(
|
|
34389
35185
|
// System blocks are kebab-case: block.body-text, block.event-calendar, ...
|
|
34390
35186
|
// Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
|
|
34391
|
-
|
|
35187
|
+
z70.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
|
|
34392
35188
|
message: "Block ID must be 'block.*' format (system blocks only)"
|
|
34393
35189
|
}),
|
|
34394
35190
|
blockFieldExtensionSchema
|
|
@@ -34404,7 +35200,7 @@ var blockFieldExtensionsMapSchema = z69.record(
|
|
|
34404
35200
|
(field) => field.id === collision.fieldId
|
|
34405
35201
|
);
|
|
34406
35202
|
ctx.addIssue({
|
|
34407
|
-
code:
|
|
35203
|
+
code: z70.ZodIssueCode.custom,
|
|
34408
35204
|
message: collision.message,
|
|
34409
35205
|
path: [
|
|
34410
35206
|
APPOINTMENT_BOOKING_BLOCK_ID,
|
|
@@ -34419,24 +35215,24 @@ var blockFieldExtensionsSchema = blockFieldExtensionsMapSchema.optional();
|
|
|
34419
35215
|
function collectAppointmentBookingExtensionReservedFieldCollisions(extension) {
|
|
34420
35216
|
return collectBookingReservedFieldCollisions(extension, { type: "booking" });
|
|
34421
35217
|
}
|
|
34422
|
-
var syncConfigSchema =
|
|
34423
|
-
existingEntries:
|
|
35218
|
+
var syncConfigSchema = z70.object({
|
|
35219
|
+
existingEntries: z70.enum(["skip", "update"]).optional()
|
|
34424
35220
|
}).optional();
|
|
34425
|
-
var deployConfigSchema =
|
|
34426
|
-
verifyCommand:
|
|
34427
|
-
prebuildOutput:
|
|
35221
|
+
var deployConfigSchema = z70.object({
|
|
35222
|
+
verifyCommand: z70.string().optional(),
|
|
35223
|
+
prebuildOutput: z70.string().optional()
|
|
34428
35224
|
}).optional();
|
|
34429
|
-
var sdkCustomBlockSchema =
|
|
35225
|
+
var sdkCustomBlockSchema = z70.object({
|
|
34430
35226
|
// Block ID must start with 'custom.'
|
|
34431
|
-
id:
|
|
35227
|
+
id: z70.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
|
|
34432
35228
|
message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
|
|
34433
35229
|
}),
|
|
34434
|
-
title:
|
|
35230
|
+
title: z70.string().min(1, "Title is required"),
|
|
34435
35231
|
titleSource: titleSourceValueSchema.optional(),
|
|
34436
|
-
description:
|
|
35232
|
+
description: z70.string().optional(),
|
|
34437
35233
|
category: blockCategoryEnum,
|
|
34438
|
-
icon:
|
|
34439
|
-
tags:
|
|
35234
|
+
icon: z70.string().optional(),
|
|
35235
|
+
tags: z70.array(z70.string()).optional(),
|
|
34440
35236
|
// Reuse the exact field schema from @riverbankcms/blocks - all field types supported
|
|
34441
35237
|
fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
|
|
34442
35238
|
// Data loaders for CMS endpoints
|
|
@@ -34444,14 +35240,14 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34444
35240
|
// Optional declarative layout - when present, block can render without React override
|
|
34445
35241
|
layout: NodeSchema.optional(),
|
|
34446
35242
|
// Optional variants system (preferred when a block has multiple structural layouts)
|
|
34447
|
-
variants:
|
|
34448
|
-
defaultVariant:
|
|
34449
|
-
variantOptions:
|
|
34450
|
-
|
|
34451
|
-
|
|
34452
|
-
label:
|
|
34453
|
-
description:
|
|
34454
|
-
icon:
|
|
35243
|
+
variants: z70.record(z70.string().min(1), NodeSchema).optional(),
|
|
35244
|
+
defaultVariant: z70.string().min(1).optional(),
|
|
35245
|
+
variantOptions: z70.record(
|
|
35246
|
+
z70.string().min(1),
|
|
35247
|
+
z70.object({
|
|
35248
|
+
label: z70.string().min(1).optional(),
|
|
35249
|
+
description: z70.string().min(1).optional(),
|
|
35250
|
+
icon: z70.string().min(1).optional()
|
|
34455
35251
|
})
|
|
34456
35252
|
).optional()
|
|
34457
35253
|
}).superRefine((data, ctx) => {
|
|
@@ -34462,7 +35258,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34462
35258
|
const exists = fields3.some((field) => field.id === source);
|
|
34463
35259
|
if (!exists) {
|
|
34464
35260
|
ctx.addIssue({
|
|
34465
|
-
code:
|
|
35261
|
+
code: z70.ZodIssueCode.custom,
|
|
34466
35262
|
message: `titleSource must reference a valid field ID (got "${source}")`,
|
|
34467
35263
|
path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
|
|
34468
35264
|
});
|
|
@@ -34471,7 +35267,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34471
35267
|
}
|
|
34472
35268
|
if (data.layout && data.variants) {
|
|
34473
35269
|
ctx.addIssue({
|
|
34474
|
-
code:
|
|
35270
|
+
code: z70.ZodIssueCode.custom,
|
|
34475
35271
|
message: "Custom block must define either `layout` or `variants`, not both",
|
|
34476
35272
|
path: ["variants"]
|
|
34477
35273
|
});
|
|
@@ -34481,7 +35277,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34481
35277
|
if (!result.valid) {
|
|
34482
35278
|
for (const error of result.errors) {
|
|
34483
35279
|
ctx.addIssue({
|
|
34484
|
-
code:
|
|
35280
|
+
code: z70.ZodIssueCode.custom,
|
|
34485
35281
|
message: error.message,
|
|
34486
35282
|
path: ["layout"]
|
|
34487
35283
|
});
|
|
@@ -34492,14 +35288,14 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34492
35288
|
const keys = Object.keys(data.variants);
|
|
34493
35289
|
if (keys.length === 0) {
|
|
34494
35290
|
ctx.addIssue({
|
|
34495
|
-
code:
|
|
35291
|
+
code: z70.ZodIssueCode.custom,
|
|
34496
35292
|
message: "`variants` must contain at least one variant key",
|
|
34497
35293
|
path: ["variants"]
|
|
34498
35294
|
});
|
|
34499
35295
|
}
|
|
34500
35296
|
if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
|
|
34501
35297
|
ctx.addIssue({
|
|
34502
|
-
code:
|
|
35298
|
+
code: z70.ZodIssueCode.custom,
|
|
34503
35299
|
message: "`defaultVariant` must be a key present in `variants`",
|
|
34504
35300
|
path: ["defaultVariant"]
|
|
34505
35301
|
});
|
|
@@ -34509,7 +35305,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34509
35305
|
if (!result.valid) {
|
|
34510
35306
|
for (const error of result.errors) {
|
|
34511
35307
|
ctx.addIssue({
|
|
34512
|
-
code:
|
|
35308
|
+
code: z70.ZodIssueCode.custom,
|
|
34513
35309
|
message: `${key}: ${error.message}`,
|
|
34514
35310
|
path: ["variants", key]
|
|
34515
35311
|
});
|
|
@@ -34520,7 +35316,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34520
35316
|
for (const key of Object.keys(data.variantOptions)) {
|
|
34521
35317
|
if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
|
|
34522
35318
|
ctx.addIssue({
|
|
34523
|
-
code:
|
|
35319
|
+
code: z70.ZodIssueCode.custom,
|
|
34524
35320
|
message: "`variantOptions` key must exist in `variants`",
|
|
34525
35321
|
path: ["variantOptions", key]
|
|
34526
35322
|
});
|
|
@@ -34529,58 +35325,58 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34529
35325
|
}
|
|
34530
35326
|
}
|
|
34531
35327
|
});
|
|
34532
|
-
var themeSourceSchema =
|
|
34533
|
-
var activeThemeSchema =
|
|
35328
|
+
var themeSourceSchema = z70.enum(["local", "cms"]).optional();
|
|
35329
|
+
var activeThemeSchema = z70.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
|
|
34534
35330
|
message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
|
|
34535
35331
|
}).max(64, "Theme name too long").optional();
|
|
34536
35332
|
function isValidConfigBlockKind(kind) {
|
|
34537
35333
|
if (getBlockDefinition(kind)) return true;
|
|
34538
35334
|
return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
|
|
34539
35335
|
}
|
|
34540
|
-
var layoutBlockKindSchema =
|
|
35336
|
+
var layoutBlockKindSchema = z70.string().refine(isValidConfigBlockKind, {
|
|
34541
35337
|
message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
|
|
34542
35338
|
});
|
|
34543
|
-
var layoutFooterBlockSchema =
|
|
34544
|
-
id:
|
|
35339
|
+
var layoutFooterBlockSchema = z70.object({
|
|
35340
|
+
id: z70.string().min(1).optional(),
|
|
34545
35341
|
kind: layoutBlockKindSchema,
|
|
34546
35342
|
// Allow omitted content for blocks that rely on defaults.
|
|
34547
|
-
content:
|
|
35343
|
+
content: z70.record(z70.string(), z70.unknown()).optional()
|
|
34548
35344
|
}).strict();
|
|
34549
|
-
var layoutConfigSchema =
|
|
34550
|
-
footerBlocks:
|
|
35345
|
+
var layoutConfigSchema = z70.object({
|
|
35346
|
+
footerBlocks: z70.array(layoutFooterBlockSchema).optional()
|
|
34551
35347
|
}).strict();
|
|
34552
|
-
var sdkWorkflowIdSchema2 =
|
|
35348
|
+
var sdkWorkflowIdSchema2 = z70.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
|
|
34553
35349
|
message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
|
|
34554
35350
|
});
|
|
34555
|
-
var sdkWorkflowEndpointSchema2 =
|
|
34556
|
-
var sdkWorkflowTriggerSchema2 =
|
|
34557
|
-
|
|
35351
|
+
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 "/"' });
|
|
35352
|
+
var sdkWorkflowTriggerSchema2 = z70.discriminatedUnion("type", [
|
|
35353
|
+
z70.object({ type: z70.literal("manual") }).strict()
|
|
34558
35354
|
]);
|
|
34559
|
-
var sdkWorkflowConfirmationSchema2 =
|
|
34560
|
-
title:
|
|
34561
|
-
body:
|
|
35355
|
+
var sdkWorkflowConfirmationSchema2 = z70.object({
|
|
35356
|
+
title: z70.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
|
|
35357
|
+
body: z70.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
|
|
34562
35358
|
}).strict();
|
|
34563
|
-
var sdkWorkflowConfigSchema2 =
|
|
35359
|
+
var sdkWorkflowConfigSchema2 = z70.object({
|
|
34564
35360
|
id: sdkWorkflowIdSchema2,
|
|
34565
|
-
title:
|
|
34566
|
-
description:
|
|
34567
|
-
contentType:
|
|
35361
|
+
title: z70.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
|
|
35362
|
+
description: z70.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
|
|
35363
|
+
contentType: z70.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
|
|
34568
35364
|
endpoint: sdkWorkflowEndpointSchema2,
|
|
34569
|
-
triggers:
|
|
35365
|
+
triggers: z70.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
|
|
34570
35366
|
confirmation: sdkWorkflowConfirmationSchema2.optional()
|
|
34571
35367
|
}).strict();
|
|
34572
|
-
var sdkWorkflowsSchema2 =
|
|
35368
|
+
var sdkWorkflowsSchema2 = z70.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
|
|
34573
35369
|
const ids = workflows.map((workflow) => workflow.id);
|
|
34574
35370
|
return ids.length === new Set(ids).size;
|
|
34575
35371
|
}, { message: "Workflow IDs must be unique" }).optional();
|
|
34576
|
-
var riverbankSiteConfigSchema =
|
|
34577
|
-
siteId:
|
|
35372
|
+
var riverbankSiteConfigSchema = z70.object({
|
|
35373
|
+
siteId: z70.string().uuid(),
|
|
34578
35374
|
previewUrl: sdkSiteUrlSchema.optional(),
|
|
34579
35375
|
liveUrl: sdkSiteUrlSchema.optional(),
|
|
34580
35376
|
theme: sdkThemeConfigSchema2.optional(),
|
|
34581
35377
|
styles: siteStyleConfigSchema,
|
|
34582
35378
|
layout: layoutConfigSchema.optional(),
|
|
34583
|
-
customBlocks:
|
|
35379
|
+
customBlocks: z70.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
|
|
34584
35380
|
// Ensure unique block IDs
|
|
34585
35381
|
(blocks) => {
|
|
34586
35382
|
const ids = blocks.map((b) => b.id);
|
|
@@ -34593,7 +35389,7 @@ var riverbankSiteConfigSchema = z69.object({
|
|
|
34593
35389
|
workflows: sdkWorkflowsSchema2,
|
|
34594
35390
|
content: contentConfigSchema.optional(),
|
|
34595
35391
|
// CLI-related configuration (Phase 4)
|
|
34596
|
-
contentDir:
|
|
35392
|
+
contentDir: z70.string().optional(),
|
|
34597
35393
|
sync: syncConfigSchema,
|
|
34598
35394
|
deploy: deployConfigSchema,
|
|
34599
35395
|
// Theme sync configuration (Phase 5)
|