@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
// src/config/validation.ts
|
|
2
|
-
import { z as
|
|
2
|
+
import { z as z70 } from "zod";
|
|
3
3
|
|
|
4
4
|
// ../api/src/apiEndpointTypes.ts
|
|
5
5
|
function blockedDemoMutationPolicy(classification, publicMessage) {
|
|
@@ -1751,7 +1751,16 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
1751
1751
|
revalidate: 60,
|
|
1752
1752
|
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
1753
1753
|
auth: "user",
|
|
1754
|
-
responseKind: "json"
|
|
1754
|
+
responseKind: "json",
|
|
1755
|
+
errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
|
|
1756
|
+
},
|
|
1757
|
+
reorderContentEntries: {
|
|
1758
|
+
path: "/sites/{siteId}/content/{type}/order",
|
|
1759
|
+
method: "POST",
|
|
1760
|
+
tags: ["site-{siteId}", "content-{siteId}-{type}"],
|
|
1761
|
+
auth: "user",
|
|
1762
|
+
responseKind: "json",
|
|
1763
|
+
errors: ["validation:invalid_input", "resource:not_found", "resource:conflict", "server:internal_error"]
|
|
1755
1764
|
},
|
|
1756
1765
|
getContentTemplate: {
|
|
1757
1766
|
path: "/sites/{siteId}/content/types/{type}/template",
|
|
@@ -3903,6 +3912,14 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
3903
3912
|
responseKind: "json",
|
|
3904
3913
|
errors: []
|
|
3905
3914
|
},
|
|
3915
|
+
applyDiscountCode: {
|
|
3916
|
+
path: "/public/sites/{siteId}/bookings/discounts/apply",
|
|
3917
|
+
method: "POST",
|
|
3918
|
+
tags: ["site-{siteId}", "booking-discounts"],
|
|
3919
|
+
auth: "public",
|
|
3920
|
+
responseKind: "json",
|
|
3921
|
+
errors: ["validation:invalid_input", "rate_limit:exceeded"]
|
|
3922
|
+
},
|
|
3906
3923
|
// Batch endpoint for block loader requests (reduces SSR fan-out)
|
|
3907
3924
|
batchBlockLoaders: {
|
|
3908
3925
|
path: "/public/sites/{siteId}/block-loaders/batch",
|
|
@@ -6242,6 +6259,27 @@ var ENDPOINT_DEFINITIONS = {
|
|
|
6242
6259
|
}
|
|
6243
6260
|
};
|
|
6244
6261
|
|
|
6262
|
+
// ../core/src/location.ts
|
|
6263
|
+
function normalizeLocationAddressText(value) {
|
|
6264
|
+
if (typeof value !== "string") {
|
|
6265
|
+
return null;
|
|
6266
|
+
}
|
|
6267
|
+
const trimmed = value.trim();
|
|
6268
|
+
return trimmed ? trimmed : null;
|
|
6269
|
+
}
|
|
6270
|
+
function hasLocationCoordinates(value) {
|
|
6271
|
+
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
6272
|
+
}
|
|
6273
|
+
function toLocationCoordinates(value) {
|
|
6274
|
+
if (!hasLocationCoordinates(value)) {
|
|
6275
|
+
return null;
|
|
6276
|
+
}
|
|
6277
|
+
return {
|
|
6278
|
+
lat: value.lat,
|
|
6279
|
+
lng: value.lng
|
|
6280
|
+
};
|
|
6281
|
+
}
|
|
6282
|
+
|
|
6245
6283
|
// ../api/src/accessAdmin.ts
|
|
6246
6284
|
import { z } from "zod";
|
|
6247
6285
|
var managedDomainAddOnPricingSnapshotSchema = z.object({
|
|
@@ -6384,27 +6422,6 @@ function formatKeyAsLabel(key) {
|
|
|
6384
6422
|
// ../blocks/src/system/manifest/schema.ts
|
|
6385
6423
|
import { z as z4 } from "zod";
|
|
6386
6424
|
|
|
6387
|
-
// ../core/src/location.ts
|
|
6388
|
-
function normalizeLocationAddressText(value) {
|
|
6389
|
-
if (typeof value !== "string") {
|
|
6390
|
-
return null;
|
|
6391
|
-
}
|
|
6392
|
-
const trimmed = value.trim();
|
|
6393
|
-
return trimmed ? trimmed : null;
|
|
6394
|
-
}
|
|
6395
|
-
function hasLocationCoordinates(value) {
|
|
6396
|
-
return typeof value?.lat === "number" && typeof value?.lng === "number";
|
|
6397
|
-
}
|
|
6398
|
-
function toLocationCoordinates(value) {
|
|
6399
|
-
if (!hasLocationCoordinates(value)) {
|
|
6400
|
-
return null;
|
|
6401
|
-
}
|
|
6402
|
-
return {
|
|
6403
|
-
lat: value.lat,
|
|
6404
|
-
lng: value.lng
|
|
6405
|
-
};
|
|
6406
|
-
}
|
|
6407
|
-
|
|
6408
6425
|
// ../media-core/src/transformRect.ts
|
|
6409
6426
|
function isValidTransformRectStructure(rect) {
|
|
6410
6427
|
if (!Array.isArray(rect) || rect.length !== 4) return false;
|
|
@@ -6487,14 +6504,14 @@ function rotateNormalizedPoint(point, rotation) {
|
|
|
6487
6504
|
const x = point.x;
|
|
6488
6505
|
const y = point.y;
|
|
6489
6506
|
switch (rotation) {
|
|
6507
|
+
case 0:
|
|
6508
|
+
return { x, y };
|
|
6490
6509
|
case 90:
|
|
6491
6510
|
return { x: 1 - y, y: x };
|
|
6492
6511
|
case 180:
|
|
6493
6512
|
return { x: 1 - x, y: 1 - y };
|
|
6494
6513
|
case 270:
|
|
6495
6514
|
return { x: y, y: 1 - x };
|
|
6496
|
-
default:
|
|
6497
|
-
return { x, y };
|
|
6498
6515
|
}
|
|
6499
6516
|
}
|
|
6500
6517
|
|
|
@@ -6787,6 +6804,8 @@ var uiSchema = z4.object({
|
|
|
6787
6804
|
mediaPickerAutoOpen: z4.boolean().optional(),
|
|
6788
6805
|
showMediaPreview: z4.boolean().optional(),
|
|
6789
6806
|
showMediaOverlayActions: z4.boolean().optional(),
|
|
6807
|
+
mediaPreviewMaxWidth: z4.enum(["xs", "sm", "md", "none"]).optional(),
|
|
6808
|
+
preventMediaPreviewUpscale: z4.boolean().optional(),
|
|
6790
6809
|
mediaDelivery: mediaDeliverySchema.optional(),
|
|
6791
6810
|
mediaDeliveryByVariant: z4.record(z4.string(), mediaDeliverySchema).optional(),
|
|
6792
6811
|
// Optional input hints for validators/widgets
|
|
@@ -7036,6 +7055,9 @@ var repeaterFieldSchema = baseFieldSchema.extend({
|
|
|
7036
7055
|
type: z4.literal("repeater"),
|
|
7037
7056
|
itemLabel: z4.string().default("Item"),
|
|
7038
7057
|
itemLabelSource: z4.string().optional(),
|
|
7058
|
+
showSummary: z4.boolean().optional(),
|
|
7059
|
+
summaryFields: z4.string().array().optional(),
|
|
7060
|
+
summaryMaxChars: z4.number().int().positive().optional(),
|
|
7039
7061
|
minItems: z4.number().int().min(0).default(0),
|
|
7040
7062
|
maxItems: z4.number().int().positive().optional(),
|
|
7041
7063
|
// Monomorphic mode
|
|
@@ -7529,6 +7551,9 @@ function makeBoundaryId(previousBlockId, nextBlockId) {
|
|
|
7529
7551
|
const next = encodeURIComponent(nextBlockId);
|
|
7530
7552
|
return asDesignBoundaryId(`boundary:${previous}:${next}`);
|
|
7531
7553
|
}
|
|
7554
|
+
function assertNever(value, message = "Unhandled Theme V2 variant") {
|
|
7555
|
+
throw new Error(`${message}: ${String(value)}`);
|
|
7556
|
+
}
|
|
7532
7557
|
function brandNonEmptyString(value, label) {
|
|
7533
7558
|
if (value.length === 0) {
|
|
7534
7559
|
throw new Error(`${label} must be a non-empty string.`);
|
|
@@ -7556,6 +7581,10 @@ var tileTreatmentValues = [
|
|
|
7556
7581
|
"quiet",
|
|
7557
7582
|
"brand-depth"
|
|
7558
7583
|
];
|
|
7584
|
+
var eventListTreatmentValues = [
|
|
7585
|
+
"plain",
|
|
7586
|
+
"lined-panel"
|
|
7587
|
+
];
|
|
7559
7588
|
var eyebrowTreatmentValues = [
|
|
7560
7589
|
"plain",
|
|
7561
7590
|
"pill",
|
|
@@ -7613,6 +7642,7 @@ function defineBlockDesignCapability(capability) {
|
|
|
7613
7642
|
imageSurfaceMotions: capability.imageSurfaceMotions ?? ["static"],
|
|
7614
7643
|
testimonialCardTreatments: capability.testimonialCardTreatments ?? ["default"],
|
|
7615
7644
|
tileTreatments: capability.tileTreatments ?? ["default"],
|
|
7645
|
+
eventListTreatments: capability.eventListTreatments ?? ["plain"],
|
|
7616
7646
|
eyebrowTreatments: capability.eyebrowTreatments ?? ["plain"],
|
|
7617
7647
|
...capability.headingDecorations ? { headingDecorations: capability.headingDecorations } : {},
|
|
7618
7648
|
...capability.accordionIconSets ? { accordionIconSets: capability.accordionIconSets } : {}
|
|
@@ -7637,9 +7667,98 @@ var blockAppearancePresets = [
|
|
|
7637
7667
|
transitionAfter: "soft-fade-short",
|
|
7638
7668
|
emphasis: "high",
|
|
7639
7669
|
sectionHeight: "hero",
|
|
7670
|
+
heroComposition: "center",
|
|
7671
|
+
heroTypographyScale: "display",
|
|
7640
7672
|
imageSurfaceTreatment: { kind: "neutral-wash" }
|
|
7641
7673
|
}
|
|
7642
7674
|
}),
|
|
7675
|
+
defineBlockAppearancePreset({
|
|
7676
|
+
kind: "block-design",
|
|
7677
|
+
id: "hero-bottom-left-panel",
|
|
7678
|
+
target: "hero",
|
|
7679
|
+
label: "Bottom-left panel hero",
|
|
7680
|
+
blockKinds: ["block.hero"],
|
|
7681
|
+
constraints: {
|
|
7682
|
+
layoutFamilies: ["centered", "compact"]
|
|
7683
|
+
},
|
|
7684
|
+
optionGroups: [
|
|
7685
|
+
{
|
|
7686
|
+
id: "image-surface-treatment",
|
|
7687
|
+
label: "Treatment",
|
|
7688
|
+
selectedOptionId: "neutral-scrim",
|
|
7689
|
+
options: [
|
|
7690
|
+
{
|
|
7691
|
+
id: "neutral-scrim",
|
|
7692
|
+
label: "Neutral scrim",
|
|
7693
|
+
designPatch: {
|
|
7694
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
7695
|
+
}
|
|
7696
|
+
},
|
|
7697
|
+
{
|
|
7698
|
+
id: "brand-scrim-primary",
|
|
7699
|
+
label: "Brand scrim",
|
|
7700
|
+
designPatch: {
|
|
7701
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "balanced" }
|
|
7702
|
+
}
|
|
7703
|
+
}
|
|
7704
|
+
]
|
|
7705
|
+
}
|
|
7706
|
+
],
|
|
7707
|
+
layoutPatches: [
|
|
7708
|
+
{
|
|
7709
|
+
constraints: {
|
|
7710
|
+
layoutVariantKeys: ["micro"]
|
|
7711
|
+
},
|
|
7712
|
+
designPatch: {
|
|
7713
|
+
sectionHeight: "banner",
|
|
7714
|
+
heroTypographyScale: "editorial"
|
|
7715
|
+
}
|
|
7716
|
+
}
|
|
7717
|
+
],
|
|
7718
|
+
design: {
|
|
7719
|
+
sectionSurface: "hero-image",
|
|
7720
|
+
contentFrame: panelFrame("raised"),
|
|
7721
|
+
itemSurface: "none",
|
|
7722
|
+
transitionAfter: "soft-fade-short",
|
|
7723
|
+
emphasis: "high",
|
|
7724
|
+
sectionHeight: "immersive",
|
|
7725
|
+
heroComposition: "bottom-left",
|
|
7726
|
+
heroTypographyScale: "display",
|
|
7727
|
+
imageSurfaceTreatment: { kind: "neutral-scrim", intensity: "balanced" }
|
|
7728
|
+
}
|
|
7729
|
+
}),
|
|
7730
|
+
defineBlockAppearancePreset({
|
|
7731
|
+
kind: "block-design",
|
|
7732
|
+
id: "hero-poster-image",
|
|
7733
|
+
target: "hero",
|
|
7734
|
+
label: "Poster image hero",
|
|
7735
|
+
blockKinds: ["block.hero"],
|
|
7736
|
+
constraints: {
|
|
7737
|
+
layoutFamilies: ["centered", "compact"]
|
|
7738
|
+
},
|
|
7739
|
+
layoutPatches: [
|
|
7740
|
+
{
|
|
7741
|
+
constraints: {
|
|
7742
|
+
layoutVariantKeys: ["micro"]
|
|
7743
|
+
},
|
|
7744
|
+
designPatch: {
|
|
7745
|
+
sectionHeight: "banner",
|
|
7746
|
+
heroTypographyScale: "display"
|
|
7747
|
+
}
|
|
7748
|
+
}
|
|
7749
|
+
],
|
|
7750
|
+
design: {
|
|
7751
|
+
sectionSurface: "hero-image",
|
|
7752
|
+
contentFrame: plainFrame,
|
|
7753
|
+
itemSurface: "none",
|
|
7754
|
+
transitionAfter: "soft-fade-short",
|
|
7755
|
+
emphasis: "high",
|
|
7756
|
+
sectionHeight: "immersive",
|
|
7757
|
+
heroComposition: "center",
|
|
7758
|
+
heroTypographyScale: "poster",
|
|
7759
|
+
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary", intensity: "strong" }
|
|
7760
|
+
}
|
|
7761
|
+
}),
|
|
7643
7762
|
defineBlockAppearancePreset({
|
|
7644
7763
|
kind: "block-design",
|
|
7645
7764
|
id: "hero-brand-scrim",
|
|
@@ -7689,6 +7808,8 @@ var blockAppearancePresets = [
|
|
|
7689
7808
|
transitionAfter: "soft-fade-short",
|
|
7690
7809
|
emphasis: "high",
|
|
7691
7810
|
sectionHeight: "immersive",
|
|
7811
|
+
heroComposition: "center",
|
|
7812
|
+
heroTypographyScale: "display",
|
|
7692
7813
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" }
|
|
7693
7814
|
}
|
|
7694
7815
|
}),
|
|
@@ -7741,6 +7862,8 @@ var blockAppearancePresets = [
|
|
|
7741
7862
|
transitionAfter: "soft-fade-short",
|
|
7742
7863
|
emphasis: "high",
|
|
7743
7864
|
sectionHeight: "immersive",
|
|
7865
|
+
heroComposition: "center",
|
|
7866
|
+
heroTypographyScale: "display",
|
|
7744
7867
|
imageSurfaceTreatment: { kind: "brand-scrim", token: "primary" },
|
|
7745
7868
|
imageSurfaceMotion: "fixed-frame",
|
|
7746
7869
|
eyebrowTreatment: "accent-pill-bounce"
|
|
@@ -7761,6 +7884,8 @@ var blockAppearancePresets = [
|
|
|
7761
7884
|
itemSurface: "none",
|
|
7762
7885
|
transitionAfter: "soft-fade-short",
|
|
7763
7886
|
emphasis: "high",
|
|
7887
|
+
heroComposition: "center",
|
|
7888
|
+
heroTypographyScale: "editorial",
|
|
7764
7889
|
eyebrowTreatment: "accent-pill-bounce"
|
|
7765
7890
|
}
|
|
7766
7891
|
}),
|
|
@@ -7775,7 +7900,82 @@ var blockAppearancePresets = [
|
|
|
7775
7900
|
contentFrame: panelFrame("inset"),
|
|
7776
7901
|
itemSurface: "none",
|
|
7777
7902
|
transitionAfter: "none",
|
|
7778
|
-
emphasis: "high"
|
|
7903
|
+
emphasis: "high",
|
|
7904
|
+
heroComposition: "center",
|
|
7905
|
+
heroTypographyScale: "editorial"
|
|
7906
|
+
}
|
|
7907
|
+
}),
|
|
7908
|
+
defineBlockAppearancePreset({
|
|
7909
|
+
kind: "block-design",
|
|
7910
|
+
id: "hero-split-editorial",
|
|
7911
|
+
target: "hero",
|
|
7912
|
+
label: "Editorial split hero",
|
|
7913
|
+
blockKinds: ["block.hero"],
|
|
7914
|
+
constraints: {
|
|
7915
|
+
layoutFamilies: ["split"]
|
|
7916
|
+
},
|
|
7917
|
+
design: {
|
|
7918
|
+
sectionSurface: "base",
|
|
7919
|
+
contentFrame: plainFrame,
|
|
7920
|
+
itemSurface: "none",
|
|
7921
|
+
transitionAfter: "soft-fade-short",
|
|
7922
|
+
emphasis: "high",
|
|
7923
|
+
heroTypographyScale: "editorial"
|
|
7924
|
+
}
|
|
7925
|
+
}),
|
|
7926
|
+
defineBlockAppearancePreset({
|
|
7927
|
+
kind: "block-design",
|
|
7928
|
+
id: "hero-split-brand",
|
|
7929
|
+
target: "hero",
|
|
7930
|
+
label: "Brand split hero",
|
|
7931
|
+
blockKinds: ["block.hero"],
|
|
7932
|
+
constraints: {
|
|
7933
|
+
layoutFamilies: ["split"]
|
|
7934
|
+
},
|
|
7935
|
+
design: {
|
|
7936
|
+
sectionSurface: "brand-depth-band",
|
|
7937
|
+
contentFrame: plainFrame,
|
|
7938
|
+
itemSurface: "none",
|
|
7939
|
+
transitionAfter: "soft-fade-short",
|
|
7940
|
+
emphasis: "high",
|
|
7941
|
+
heroTypographyScale: "display",
|
|
7942
|
+
eyebrowTreatment: "accent-pill-bounce"
|
|
7943
|
+
}
|
|
7944
|
+
}),
|
|
7945
|
+
defineBlockAppearancePreset({
|
|
7946
|
+
kind: "block-design",
|
|
7947
|
+
id: "hero-split-soft-panel",
|
|
7948
|
+
target: "hero",
|
|
7949
|
+
label: "Soft panel split hero",
|
|
7950
|
+
blockKinds: ["block.hero"],
|
|
7951
|
+
constraints: {
|
|
7952
|
+
layoutFamilies: ["split"]
|
|
7953
|
+
},
|
|
7954
|
+
design: {
|
|
7955
|
+
sectionSurface: "muted-band",
|
|
7956
|
+
contentFrame: panelFrame("raised"),
|
|
7957
|
+
itemSurface: "none",
|
|
7958
|
+
transitionAfter: "soft-fade-short",
|
|
7959
|
+
emphasis: "high",
|
|
7960
|
+
heroTypographyScale: "editorial"
|
|
7961
|
+
}
|
|
7962
|
+
}),
|
|
7963
|
+
defineBlockAppearancePreset({
|
|
7964
|
+
kind: "block-design",
|
|
7965
|
+
id: "hero-split-accent",
|
|
7966
|
+
target: "hero",
|
|
7967
|
+
label: "Accent split hero",
|
|
7968
|
+
blockKinds: ["block.hero"],
|
|
7969
|
+
constraints: {
|
|
7970
|
+
layoutFamilies: ["split"]
|
|
7971
|
+
},
|
|
7972
|
+
design: {
|
|
7973
|
+
sectionSurface: "accent-band",
|
|
7974
|
+
contentFrame: panelFrame("raised"),
|
|
7975
|
+
itemSurface: "none",
|
|
7976
|
+
transitionAfter: "soft-fade-short",
|
|
7977
|
+
emphasis: "high",
|
|
7978
|
+
heroTypographyScale: "display"
|
|
7779
7979
|
}
|
|
7780
7980
|
}),
|
|
7781
7981
|
defineBlockAppearancePreset({
|
|
@@ -7808,9 +8008,9 @@ var blockAppearancePresets = [
|
|
|
7808
8008
|
}),
|
|
7809
8009
|
defineBlockAppearancePreset({
|
|
7810
8010
|
kind: "block-design",
|
|
7811
|
-
id: "intro-
|
|
8011
|
+
id: "intro-organic-statement",
|
|
7812
8012
|
target: "intro",
|
|
7813
|
-
label: "
|
|
8013
|
+
label: "Organic intro statement",
|
|
7814
8014
|
blockKinds: ["block.intro"],
|
|
7815
8015
|
design: {
|
|
7816
8016
|
sectionSurface: "base",
|
|
@@ -7841,9 +8041,9 @@ var blockAppearancePresets = [
|
|
|
7841
8041
|
}),
|
|
7842
8042
|
defineBlockAppearancePreset({
|
|
7843
8043
|
kind: "block-design",
|
|
7844
|
-
id: "feature-cards-
|
|
8044
|
+
id: "feature-cards-raised-rule",
|
|
7845
8045
|
target: "feature-cards",
|
|
7846
|
-
label: "
|
|
8046
|
+
label: "Raised cards with rule",
|
|
7847
8047
|
blockKinds: ["block.feature-cards"],
|
|
7848
8048
|
design: {
|
|
7849
8049
|
sectionSurface: "base",
|
|
@@ -7872,6 +8072,21 @@ var blockAppearancePresets = [
|
|
|
7872
8072
|
emphasis: "medium"
|
|
7873
8073
|
}
|
|
7874
8074
|
}),
|
|
8075
|
+
defineBlockAppearancePreset({
|
|
8076
|
+
kind: "block-design",
|
|
8077
|
+
id: "events-lined-panel",
|
|
8078
|
+
target: "events",
|
|
8079
|
+
label: "Lined event panel",
|
|
8080
|
+
blockKinds: ["block.event-calendar", "block.event-listing"],
|
|
8081
|
+
design: {
|
|
8082
|
+
sectionSurface: "base",
|
|
8083
|
+
contentFrame: plainFrame,
|
|
8084
|
+
itemSurface: "none",
|
|
8085
|
+
transitionAfter: "none",
|
|
8086
|
+
emphasis: "medium",
|
|
8087
|
+
eventListTreatment: "lined-panel"
|
|
8088
|
+
}
|
|
8089
|
+
}),
|
|
7875
8090
|
defineBlockAppearancePreset({
|
|
7876
8091
|
kind: "block-design",
|
|
7877
8092
|
id: "schedule-details-accent-section",
|
|
@@ -7931,9 +8146,9 @@ var blockAppearancePresets = [
|
|
|
7931
8146
|
}),
|
|
7932
8147
|
defineBlockAppearancePreset({
|
|
7933
8148
|
kind: "block-design",
|
|
7934
|
-
id: "testimonials-
|
|
8149
|
+
id: "testimonials-simple-cards",
|
|
7935
8150
|
target: "testimonials",
|
|
7936
|
-
label: "
|
|
8151
|
+
label: "Simple testimonial cards",
|
|
7937
8152
|
blockKinds: ["block.testimonials"],
|
|
7938
8153
|
design: {
|
|
7939
8154
|
sectionSurface: "base",
|
|
@@ -7945,9 +8160,9 @@ var blockAppearancePresets = [
|
|
|
7945
8160
|
}),
|
|
7946
8161
|
defineBlockAppearancePreset({
|
|
7947
8162
|
kind: "block-design",
|
|
7948
|
-
id: "testimonials-
|
|
8163
|
+
id: "testimonials-raised-panel",
|
|
7949
8164
|
target: "testimonials",
|
|
7950
|
-
label: "
|
|
8165
|
+
label: "Raised testimonial panel",
|
|
7951
8166
|
blockKinds: ["block.testimonials"],
|
|
7952
8167
|
design: {
|
|
7953
8168
|
sectionSurface: "muted-band",
|
|
@@ -7959,9 +8174,9 @@ var blockAppearancePresets = [
|
|
|
7959
8174
|
}),
|
|
7960
8175
|
defineBlockAppearancePreset({
|
|
7961
8176
|
kind: "block-design",
|
|
7962
|
-
id: "testimonials-
|
|
8177
|
+
id: "testimonials-accent-panel",
|
|
7963
8178
|
target: "testimonials",
|
|
7964
|
-
label: "
|
|
8179
|
+
label: "Accent testimonial panel",
|
|
7965
8180
|
blockKinds: ["block.testimonials"],
|
|
7966
8181
|
design: {
|
|
7967
8182
|
sectionSurface: "accent-band",
|
|
@@ -7973,9 +8188,9 @@ var blockAppearancePresets = [
|
|
|
7973
8188
|
}),
|
|
7974
8189
|
defineBlockAppearancePreset({
|
|
7975
8190
|
kind: "block-design",
|
|
7976
|
-
id: "testimonials-accent-quote-
|
|
8191
|
+
id: "testimonials-accent-quote-cards",
|
|
7977
8192
|
target: "testimonials",
|
|
7978
|
-
label: "Accent quote
|
|
8193
|
+
label: "Accent quote cards",
|
|
7979
8194
|
blockKinds: ["block.testimonials"],
|
|
7980
8195
|
design: {
|
|
7981
8196
|
sectionSurface: "accent-band",
|
|
@@ -7988,9 +8203,9 @@ var blockAppearancePresets = [
|
|
|
7988
8203
|
}),
|
|
7989
8204
|
defineBlockAppearancePreset({
|
|
7990
8205
|
kind: "block-design",
|
|
7991
|
-
id: "testimonials-
|
|
8206
|
+
id: "testimonials-brand-background-quotes",
|
|
7992
8207
|
target: "testimonials",
|
|
7993
|
-
label: "
|
|
8208
|
+
label: "Brand background quotes",
|
|
7994
8209
|
blockKinds: ["block.testimonials"],
|
|
7995
8210
|
design: {
|
|
7996
8211
|
sectionSurface: "brand-depth-band",
|
|
@@ -8034,25 +8249,6 @@ var blockAppearancePresets = [
|
|
|
8034
8249
|
emphasis: "low"
|
|
8035
8250
|
}
|
|
8036
8251
|
}),
|
|
8037
|
-
defineBlockAppearancePreset({
|
|
8038
|
-
kind: "block-design",
|
|
8039
|
-
id: "faq-soft-earth-two-column",
|
|
8040
|
-
target: "faq",
|
|
8041
|
-
label: "Soft Earth two-column FAQ",
|
|
8042
|
-
blockKinds: ["block.faq"],
|
|
8043
|
-
design: {
|
|
8044
|
-
sectionSurface: "base",
|
|
8045
|
-
contentFrame: plainFrame,
|
|
8046
|
-
itemSurface: "flat",
|
|
8047
|
-
transitionAfter: "none",
|
|
8048
|
-
emphasis: "medium",
|
|
8049
|
-
accordionIconTreatment: {
|
|
8050
|
-
iconSet: "plus",
|
|
8051
|
-
colorToken: "primary",
|
|
8052
|
-
motion: "swap"
|
|
8053
|
-
}
|
|
8054
|
-
}
|
|
8055
|
-
}),
|
|
8056
8252
|
defineBlockAppearancePreset({
|
|
8057
8253
|
kind: "block-design",
|
|
8058
8254
|
id: "contact-form-panel",
|
|
@@ -9431,7 +9627,8 @@ var accordionSystemSchema = z12.object({
|
|
|
9431
9627
|
icon: z12.object({
|
|
9432
9628
|
style: accordionIconSchema,
|
|
9433
9629
|
position: z12.enum(["left", "right"]),
|
|
9434
|
-
size: z12.enum(["sm", "md", "lg"])
|
|
9630
|
+
size: z12.enum(["sm", "md", "lg"]),
|
|
9631
|
+
colorToken: themeColorTokenSchema.optional()
|
|
9435
9632
|
}),
|
|
9436
9633
|
// Trigger (question) styling
|
|
9437
9634
|
trigger: z12.object({
|
|
@@ -9565,6 +9762,7 @@ var navLinkPaddingXSchema = z16.enum(["none", "tight", "compact", "default", "re
|
|
|
9565
9762
|
var navLinkBorderRadiusSchema = z16.enum(["none", "sm", "md", "full"]);
|
|
9566
9763
|
var navLinkTextSizeSchema = z16.enum(["xs", "sm", "base", "lg"]);
|
|
9567
9764
|
var navLinkLetterSpacingSchema = z16.enum(["normal", "wide", "wider", "widest"]);
|
|
9765
|
+
var navLinkContrastTreatmentSchema = z16.enum(["none", "soft-glow"]);
|
|
9568
9766
|
var navLinkStyleSchema = z16.object({
|
|
9569
9767
|
/** Display name for the style */
|
|
9570
9768
|
name: z16.string().min(1).max(30).optional(),
|
|
@@ -9576,6 +9774,8 @@ var navLinkStyleSchema = z16.object({
|
|
|
9576
9774
|
textSize: navLinkTextSizeSchema.optional(),
|
|
9577
9775
|
/** Optional letter spacing override */
|
|
9578
9776
|
letterSpacing: navLinkLetterSpacingSchema.optional(),
|
|
9777
|
+
/** Optional text-only contrast treatment for transparent/overlay navigation */
|
|
9778
|
+
contrastTreatment: navLinkContrastTreatmentSchema.optional(),
|
|
9579
9779
|
/** Hover/active color token (for color-change effects) */
|
|
9580
9780
|
hoverColorToken: themeColorTokenSchema.nullable().optional(),
|
|
9581
9781
|
/** Padding preset */
|
|
@@ -10005,6 +10205,7 @@ var sectionStylesOverrideSchema = z21.object({
|
|
|
10005
10205
|
spacing: semanticSpacingSchema.nullable().optional(),
|
|
10006
10206
|
minHeight: z21.enum(["none", "banner", "hero", "immersive"]).nullable().optional(),
|
|
10007
10207
|
tileTreatment: z21.enum(tileTreatmentValues).nullable().optional(),
|
|
10208
|
+
eventListTreatment: z21.enum(eventListTreatmentValues).nullable().optional(),
|
|
10008
10209
|
eyebrowTreatment: z21.enum(eyebrowTreatmentValues).nullable().optional(),
|
|
10009
10210
|
headingDecoration: headingDecorationSchema.nullable().optional(),
|
|
10010
10211
|
// Author-level override consumed by later block/editor rendering phases.
|
|
@@ -10838,6 +11039,34 @@ var paletteVariantsById = new Map(
|
|
|
10838
11039
|
paletteVariants.map((v) => [v.id, v])
|
|
10839
11040
|
);
|
|
10840
11041
|
|
|
11042
|
+
// ../theme-core/src/accordions/siteStyleDefaults.ts
|
|
11043
|
+
var softEarthAccordionSystem = {
|
|
11044
|
+
background: {
|
|
11045
|
+
type: "solid",
|
|
11046
|
+
colorToken: "background"
|
|
11047
|
+
},
|
|
11048
|
+
spacing: "comfortable",
|
|
11049
|
+
corners: "square",
|
|
11050
|
+
border: null,
|
|
11051
|
+
shadow: null,
|
|
11052
|
+
icon: {
|
|
11053
|
+
style: "plus-minus",
|
|
11054
|
+
position: "right",
|
|
11055
|
+
size: "md",
|
|
11056
|
+
colorToken: "primary"
|
|
11057
|
+
},
|
|
11058
|
+
trigger: {
|
|
11059
|
+
textColorToken: "text",
|
|
11060
|
+
fontWeight: "medium"
|
|
11061
|
+
},
|
|
11062
|
+
hover: {
|
|
11063
|
+
textColorToken: "primary"
|
|
11064
|
+
},
|
|
11065
|
+
content: {
|
|
11066
|
+
textColorToken: "neutral-700"
|
|
11067
|
+
}
|
|
11068
|
+
};
|
|
11069
|
+
|
|
10841
11070
|
// ../theme-core/src/site-styles/headerLooks.ts
|
|
10842
11071
|
function asHeaderLookId(value) {
|
|
10843
11072
|
return value;
|
|
@@ -10893,7 +11122,7 @@ var headerLayoutCatalog = [
|
|
|
10893
11122
|
description: "Detached header chrome that sits over the opening section.",
|
|
10894
11123
|
structure: "floating-shell",
|
|
10895
11124
|
variant: "floating",
|
|
10896
|
-
defaultPositioning: "
|
|
11125
|
+
defaultPositioning: "sticky",
|
|
10897
11126
|
shrinkOnScroll: true,
|
|
10898
11127
|
maxRecommendedNavItems: 5,
|
|
10899
11128
|
allowedLogoShapes: ["none", "text-only", "horizontal"]
|
|
@@ -10910,7 +11139,9 @@ var headerStyleCatalog = [
|
|
|
10910
11139
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10911
11140
|
navInteraction: "color-change",
|
|
10912
11141
|
surface: "neutral",
|
|
10913
|
-
|
|
11142
|
+
defaultDepth: "none",
|
|
11143
|
+
navTypography: "plain",
|
|
11144
|
+
moods: ["calm", "professional", "editorial"]
|
|
10914
11145
|
},
|
|
10915
11146
|
{
|
|
10916
11147
|
id: asHeaderStyleId("fine-line"),
|
|
@@ -10919,7 +11150,9 @@ var headerStyleCatalog = [
|
|
|
10919
11150
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10920
11151
|
navInteraction: "underline-grow",
|
|
10921
11152
|
surface: "bordered",
|
|
10922
|
-
|
|
11153
|
+
defaultDepth: "line",
|
|
11154
|
+
navTypography: "plain",
|
|
11155
|
+
moods: ["calm", "professional", "editorial"]
|
|
10923
11156
|
},
|
|
10924
11157
|
{
|
|
10925
11158
|
id: asHeaderStyleId("soft-bar"),
|
|
@@ -10928,7 +11161,9 @@ var headerStyleCatalog = [
|
|
|
10928
11161
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10929
11162
|
navInteraction: "pill-background",
|
|
10930
11163
|
surface: "soft",
|
|
10931
|
-
|
|
11164
|
+
defaultDepth: "line",
|
|
11165
|
+
navTypography: "plain",
|
|
11166
|
+
moods: ["calm", "professional"]
|
|
10932
11167
|
},
|
|
10933
11168
|
{
|
|
10934
11169
|
id: asHeaderStyleId("pill-nav"),
|
|
@@ -10937,7 +11172,9 @@ var headerStyleCatalog = [
|
|
|
10937
11172
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10938
11173
|
navInteraction: "pill-background",
|
|
10939
11174
|
surface: "soft",
|
|
10940
|
-
|
|
11175
|
+
defaultDepth: "none",
|
|
11176
|
+
navTypography: "plain",
|
|
11177
|
+
moods: ["calm"]
|
|
10941
11178
|
},
|
|
10942
11179
|
{
|
|
10943
11180
|
id: asHeaderStyleId("brand-bar"),
|
|
@@ -10946,7 +11183,9 @@ var headerStyleCatalog = [
|
|
|
10946
11183
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10947
11184
|
navInteraction: "color-change",
|
|
10948
11185
|
surface: "brand-solid",
|
|
10949
|
-
|
|
11186
|
+
defaultDepth: "none",
|
|
11187
|
+
navTypography: "brand-caps",
|
|
11188
|
+
moods: ["professional", "expressive", "utility"]
|
|
10950
11189
|
},
|
|
10951
11190
|
{
|
|
10952
11191
|
id: asHeaderStyleId("brand-underline"),
|
|
@@ -10955,7 +11194,9 @@ var headerStyleCatalog = [
|
|
|
10955
11194
|
supportedLayoutIds: supportedLayouts(["classic"]),
|
|
10956
11195
|
navInteraction: "underline-grow",
|
|
10957
11196
|
surface: "brand-solid",
|
|
10958
|
-
|
|
11197
|
+
defaultDepth: "none",
|
|
11198
|
+
navTypography: "brand-caps",
|
|
11199
|
+
moods: ["expressive"]
|
|
10959
11200
|
},
|
|
10960
11201
|
{
|
|
10961
11202
|
id: asHeaderStyleId("brand-pill"),
|
|
@@ -10964,7 +11205,9 @@ var headerStyleCatalog = [
|
|
|
10964
11205
|
supportedLayoutIds: supportedLayouts(["classic", "centered", "floating"]),
|
|
10965
11206
|
navInteraction: "pill-background",
|
|
10966
11207
|
surface: "brand-solid",
|
|
10967
|
-
|
|
11208
|
+
defaultDepth: "none",
|
|
11209
|
+
navTypography: "brand-caps",
|
|
11210
|
+
moods: ["expressive"]
|
|
10968
11211
|
},
|
|
10969
11212
|
{
|
|
10970
11213
|
id: asHeaderStyleId("serif-line"),
|
|
@@ -10973,7 +11216,9 @@ var headerStyleCatalog = [
|
|
|
10973
11216
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10974
11217
|
navInteraction: "underline-grow",
|
|
10975
11218
|
surface: "bordered",
|
|
10976
|
-
|
|
11219
|
+
defaultDepth: "line",
|
|
11220
|
+
navTypography: "heading",
|
|
11221
|
+
moods: ["editorial", "calm"]
|
|
10977
11222
|
},
|
|
10978
11223
|
{
|
|
10979
11224
|
id: asHeaderStyleId("flat-tabs"),
|
|
@@ -10982,16 +11227,20 @@ var headerStyleCatalog = [
|
|
|
10982
11227
|
supportedLayoutIds: supportedLayouts(["classic", "centered"]),
|
|
10983
11228
|
navInteraction: "flat-block",
|
|
10984
11229
|
surface: "bordered",
|
|
10985
|
-
|
|
11230
|
+
defaultDepth: "shadow",
|
|
11231
|
+
navTypography: "quiet-caps",
|
|
11232
|
+
moods: ["professional", "utility", "expressive"]
|
|
10986
11233
|
},
|
|
10987
11234
|
{
|
|
10988
11235
|
id: asHeaderStyleId("glass"),
|
|
10989
11236
|
label: "Glass",
|
|
10990
11237
|
description: "Translucent chrome with frosted navigation backing.",
|
|
10991
|
-
supportedLayoutIds: supportedLayouts(["
|
|
11238
|
+
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
10992
11239
|
navInteraction: "glass-backed",
|
|
10993
11240
|
surface: "floating",
|
|
10994
|
-
|
|
11241
|
+
defaultDepth: "shadow",
|
|
11242
|
+
navTypography: "plain",
|
|
11243
|
+
moods: ["expressive", "calm"]
|
|
10995
11244
|
},
|
|
10996
11245
|
{
|
|
10997
11246
|
id: asHeaderStyleId("minimal-surface"),
|
|
@@ -11000,7 +11249,9 @@ var headerStyleCatalog = [
|
|
|
11000
11249
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11001
11250
|
navInteraction: "color-change",
|
|
11002
11251
|
surface: "floating",
|
|
11003
|
-
|
|
11252
|
+
defaultDepth: "none",
|
|
11253
|
+
navTypography: "plain",
|
|
11254
|
+
moods: ["editorial", "calm"]
|
|
11004
11255
|
},
|
|
11005
11256
|
{
|
|
11006
11257
|
id: asHeaderStyleId("soft-shell"),
|
|
@@ -11009,7 +11260,9 @@ var headerStyleCatalog = [
|
|
|
11009
11260
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11010
11261
|
navInteraction: "pill-background",
|
|
11011
11262
|
surface: "floating",
|
|
11012
|
-
|
|
11263
|
+
defaultDepth: "shadow",
|
|
11264
|
+
navTypography: "plain",
|
|
11265
|
+
moods: ["calm", "professional"]
|
|
11013
11266
|
},
|
|
11014
11267
|
{
|
|
11015
11268
|
id: asHeaderStyleId("split-glass"),
|
|
@@ -11018,7 +11271,9 @@ var headerStyleCatalog = [
|
|
|
11018
11271
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11019
11272
|
navInteraction: "glass-backed",
|
|
11020
11273
|
surface: "floating",
|
|
11021
|
-
|
|
11274
|
+
defaultDepth: "shadow",
|
|
11275
|
+
navTypography: "quiet-caps",
|
|
11276
|
+
moods: ["expressive"]
|
|
11022
11277
|
},
|
|
11023
11278
|
{
|
|
11024
11279
|
id: asHeaderStyleId("split-pill"),
|
|
@@ -11027,7 +11282,9 @@ var headerStyleCatalog = [
|
|
|
11027
11282
|
supportedLayoutIds: supportedLayouts(["floating"]),
|
|
11028
11283
|
navInteraction: "pill-background",
|
|
11029
11284
|
surface: "floating",
|
|
11030
|
-
|
|
11285
|
+
defaultDepth: "shadow",
|
|
11286
|
+
navTypography: "heading",
|
|
11287
|
+
moods: ["calm", "editorial"]
|
|
11031
11288
|
}
|
|
11032
11289
|
];
|
|
11033
11290
|
var headerLayoutsById = new Map(
|
|
@@ -11041,7 +11298,6 @@ var headerStyleCompatibilityOrder = /* @__PURE__ */ new Map([
|
|
|
11041
11298
|
asHeaderLayoutId("classic"),
|
|
11042
11299
|
headerStyleRepairChain([
|
|
11043
11300
|
"minimal",
|
|
11044
|
-
"glass",
|
|
11045
11301
|
"fine-line",
|
|
11046
11302
|
"soft-bar",
|
|
11047
11303
|
"pill-nav",
|
|
@@ -11108,7 +11364,13 @@ var headerStyleRepairOrder = /* @__PURE__ */ new Map(
|
|
|
11108
11364
|
],
|
|
11109
11365
|
[
|
|
11110
11366
|
asHeaderStyleId("glass"),
|
|
11111
|
-
headerStyleRepairChain([
|
|
11367
|
+
headerStyleRepairChain([
|
|
11368
|
+
"glass",
|
|
11369
|
+
"soft-shell",
|
|
11370
|
+
"fine-line",
|
|
11371
|
+
"minimal-surface",
|
|
11372
|
+
"minimal"
|
|
11373
|
+
])
|
|
11112
11374
|
],
|
|
11113
11375
|
[
|
|
11114
11376
|
asHeaderStyleId("soft-shell"),
|
|
@@ -11220,6 +11482,23 @@ function getCompatibleHeaderStyleIds(layoutId) {
|
|
|
11220
11482
|
}
|
|
11221
11483
|
);
|
|
11222
11484
|
}
|
|
11485
|
+
function themedHeaderShadow(theme) {
|
|
11486
|
+
switch (theme.shadow.elevation) {
|
|
11487
|
+
case "none":
|
|
11488
|
+
return void 0;
|
|
11489
|
+
case "low":
|
|
11490
|
+
return { elevation: "sm" };
|
|
11491
|
+
case "medium":
|
|
11492
|
+
return { elevation: "md" };
|
|
11493
|
+
case "high":
|
|
11494
|
+
return { elevation: "lg" };
|
|
11495
|
+
default:
|
|
11496
|
+
return assertNever(
|
|
11497
|
+
theme.shadow.elevation,
|
|
11498
|
+
"Unhandled theme shadow elevation"
|
|
11499
|
+
);
|
|
11500
|
+
}
|
|
11501
|
+
}
|
|
11223
11502
|
function solidBrandHeader(theme) {
|
|
11224
11503
|
const ctaVariant = resolveHeaderCtaVariant(theme, "inverted");
|
|
11225
11504
|
return {
|
|
@@ -11369,9 +11648,7 @@ function practicalUtilityHeader(theme) {
|
|
|
11369
11648
|
navColor: "text",
|
|
11370
11649
|
navStyle: "solid",
|
|
11371
11650
|
navWeight: "semibold",
|
|
11372
|
-
shadow:
|
|
11373
|
-
elevation: "sm"
|
|
11374
|
-
},
|
|
11651
|
+
shadow: themedHeaderShadow(theme),
|
|
11375
11652
|
border: {
|
|
11376
11653
|
style: "solid",
|
|
11377
11654
|
width: "thin",
|
|
@@ -11440,6 +11717,7 @@ function floatingGlassHeader(theme) {
|
|
|
11440
11717
|
return {
|
|
11441
11718
|
...transparentOverlayHeader(theme),
|
|
11442
11719
|
variant: "floating",
|
|
11720
|
+
positioning: "sticky",
|
|
11443
11721
|
navStyle: "frosted",
|
|
11444
11722
|
navContainer: {
|
|
11445
11723
|
type: "glass",
|
|
@@ -11955,7 +12233,7 @@ var typographyPresets = [
|
|
|
11955
12233
|
heroTypography: {
|
|
11956
12234
|
headlineSize: "6xl",
|
|
11957
12235
|
headlineLineHeight: "tight",
|
|
11958
|
-
subheadlineSize: "
|
|
12236
|
+
subheadlineSize: "2xl",
|
|
11959
12237
|
subheadlineLineHeight: "normal",
|
|
11960
12238
|
microHeadlineSize: "6xl",
|
|
11961
12239
|
microHeadlineLineHeight: "tight",
|
|
@@ -11973,6 +12251,8 @@ var typographyPresetsById = new Map(
|
|
|
11973
12251
|
);
|
|
11974
12252
|
|
|
11975
12253
|
// ../theme-core/src/site-styles/curatedSiteStyles.ts
|
|
12254
|
+
var SOFT_EARTH_SITE_STYLE_ID_VALUE = "site-style:soft-earth";
|
|
12255
|
+
var SOFT_EARTH_SITE_STYLE_ID = asSiteStyleId(SOFT_EARTH_SITE_STYLE_ID_VALUE);
|
|
11976
12256
|
var curatedSiteStyleIdValues = [
|
|
11977
12257
|
"site-style:calm-studio",
|
|
11978
12258
|
"site-style:clear-professional",
|
|
@@ -11984,7 +12264,7 @@ var curatedSiteStyleIdValues = [
|
|
|
11984
12264
|
"site-style:personal-retreat-journal",
|
|
11985
12265
|
"site-style:tactile-workshop",
|
|
11986
12266
|
"site-style:modern-wellness",
|
|
11987
|
-
|
|
12267
|
+
SOFT_EARTH_SITE_STYLE_ID_VALUE,
|
|
11988
12268
|
"site-style:bold-launch",
|
|
11989
12269
|
"site-style:south-west-twerk-school"
|
|
11990
12270
|
];
|
|
@@ -12066,7 +12346,10 @@ function uniqueContentFrameKinds() {
|
|
|
12066
12346
|
var generatedContentFrameKinds = uniqueContentFrameKinds();
|
|
12067
12347
|
function defineCuratedSiteStyle(input) {
|
|
12068
12348
|
const legacyHeaderLookIds = input.recommendedHeaderLookIds ?? ["clean-base"];
|
|
12069
|
-
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
12349
|
+
const inferredHeaderCuration = inferHeaderCurationFromLegacyLooks(
|
|
12350
|
+
legacyHeaderLookIds,
|
|
12351
|
+
input.tokenRecipes
|
|
12352
|
+
);
|
|
12070
12353
|
const typographyPresetChoices = input.typographyPresetChoices ?? defaultTypographyPresetChoicesForRecipe(input.tokenRecipes.typography);
|
|
12071
12354
|
const defaultTypographyPresetId = input.defaultTypographyPresetId ? asTypographyPresetId(input.defaultTypographyPresetId) : typographyPresetChoices[0].id;
|
|
12072
12355
|
if (!typographyPresetChoices.some(
|
|
@@ -12099,6 +12382,7 @@ function defineCuratedSiteStyle(input) {
|
|
|
12099
12382
|
supportedTransitions: generatedDesignOptionCatalog.transitions
|
|
12100
12383
|
},
|
|
12101
12384
|
...input.themeOverrides ? { themeOverrides: input.themeOverrides } : {},
|
|
12385
|
+
...input.defaultBlockVariants ? { defaultBlockVariants: input.defaultBlockVariants } : {},
|
|
12102
12386
|
recommendedAppearancePresetIds: (input.recommendedAppearancePresetIds ?? []).map(asAppearancePresetId),
|
|
12103
12387
|
defaultHeaderSelection: input.defaultHeaderSelection ? {
|
|
12104
12388
|
layoutId: asHeaderLayoutId(input.defaultHeaderSelection.layoutId),
|
|
@@ -12157,7 +12441,69 @@ function nonEmptyHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
|
12157
12441
|
};
|
|
12158
12442
|
return [first, ...choices.slice(1)];
|
|
12159
12443
|
}
|
|
12160
|
-
function
|
|
12444
|
+
function uniqueCompatibleHeaderStyleChoices(choices, fallbackLayoutId) {
|
|
12445
|
+
const compatible = new Set(getCompatibleHeaderStyleIds(fallbackLayoutId));
|
|
12446
|
+
const seen = /* @__PURE__ */ new Set();
|
|
12447
|
+
const unique = choices.filter((choice) => {
|
|
12448
|
+
if (!compatible.has(choice.id)) return false;
|
|
12449
|
+
if (seen.has(choice.id)) return false;
|
|
12450
|
+
seen.add(choice.id);
|
|
12451
|
+
return true;
|
|
12452
|
+
});
|
|
12453
|
+
return nonEmptyHeaderStyleChoices(unique, fallbackLayoutId);
|
|
12454
|
+
}
|
|
12455
|
+
function inferredHeaderStyleValuesForRecipes(layoutId, recipes) {
|
|
12456
|
+
switch (layoutId) {
|
|
12457
|
+
case "classic":
|
|
12458
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12459
|
+
return [
|
|
12460
|
+
"brand-bar",
|
|
12461
|
+
"brand-underline",
|
|
12462
|
+
"flat-tabs",
|
|
12463
|
+
"brand-pill",
|
|
12464
|
+
"fine-line"
|
|
12465
|
+
];
|
|
12466
|
+
}
|
|
12467
|
+
if (recipes.spacing === "compact") {
|
|
12468
|
+
return ["flat-tabs", "fine-line", "minimal", "brand-bar"];
|
|
12469
|
+
}
|
|
12470
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12471
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
12472
|
+
}
|
|
12473
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
12474
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
12475
|
+
}
|
|
12476
|
+
return ["fine-line", "minimal", "soft-bar", "brand-bar"];
|
|
12477
|
+
case "centered":
|
|
12478
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12479
|
+
return ["serif-line", "fine-line", "minimal", "soft-bar"];
|
|
12480
|
+
}
|
|
12481
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12482
|
+
return ["brand-pill", "flat-tabs", "brand-bar", "fine-line"];
|
|
12483
|
+
}
|
|
12484
|
+
if (recipes.radius === "rounded" || recipes.radius === "pill") {
|
|
12485
|
+
return ["soft-bar", "pill-nav", "fine-line", "minimal"];
|
|
12486
|
+
}
|
|
12487
|
+
return ["minimal", "fine-line", "soft-bar"];
|
|
12488
|
+
case "floating":
|
|
12489
|
+
if (isExpressiveRecipe(recipes)) {
|
|
12490
|
+
return ["glass", "split-glass", "brand-pill", "soft-shell"];
|
|
12491
|
+
}
|
|
12492
|
+
if (isSerifTypographyRecipe(recipes)) {
|
|
12493
|
+
return ["split-pill", "minimal-surface", "soft-shell"];
|
|
12494
|
+
}
|
|
12495
|
+
return ["soft-shell", "minimal-surface", "glass"];
|
|
12496
|
+
default:
|
|
12497
|
+
return [];
|
|
12498
|
+
}
|
|
12499
|
+
}
|
|
12500
|
+
function isExpressiveRecipe(recipes) {
|
|
12501
|
+
return recipes.contrast === "maximum" || recipes.shadow === "layered" || recipes.motion === "expressive";
|
|
12502
|
+
}
|
|
12503
|
+
function isSerifTypographyRecipe(recipes) {
|
|
12504
|
+
return recipes.typography === "serif-editorial" || recipes.typography === "classic-serif";
|
|
12505
|
+
}
|
|
12506
|
+
function inferHeaderCurationFromLegacyLooks(lookIds, recipes) {
|
|
12161
12507
|
const selections = lookIds.map((lookId) => resolveLegacyHeaderLookAlias(asHeaderLookId(lookId))).filter(
|
|
12162
12508
|
(selection) => Boolean(selection)
|
|
12163
12509
|
);
|
|
@@ -12170,8 +12516,15 @@ function inferHeaderCurationFromLegacyLooks(lookIds) {
|
|
|
12170
12516
|
);
|
|
12171
12517
|
const stylesByLayout = {};
|
|
12172
12518
|
for (const layoutChoice of layoutChoices) {
|
|
12173
|
-
const
|
|
12174
|
-
|
|
12519
|
+
const legacyStyleChoices = selections.filter((selection) => selection.layoutId === layoutChoice.id).map((selection) => headerStyleChoice(selection.styleId));
|
|
12520
|
+
const inferredStyleChoices = inferredHeaderStyleValuesForRecipes(
|
|
12521
|
+
layoutChoice.id,
|
|
12522
|
+
recipes
|
|
12523
|
+
).map((styleId) => headerStyleChoice(styleId));
|
|
12524
|
+
stylesByLayout[unbrandHeaderLayoutId(layoutChoice.id)] = uniqueCompatibleHeaderStyleChoices(
|
|
12525
|
+
[...legacyStyleChoices, ...inferredStyleChoices],
|
|
12526
|
+
layoutChoice.id
|
|
12527
|
+
);
|
|
12175
12528
|
}
|
|
12176
12529
|
return {
|
|
12177
12530
|
defaultHeaderSelection,
|
|
@@ -12591,10 +12944,10 @@ var curatedSiteStyles = [
|
|
|
12591
12944
|
]
|
|
12592
12945
|
}),
|
|
12593
12946
|
defineCuratedSiteStyle({
|
|
12594
|
-
id:
|
|
12947
|
+
id: SOFT_EARTH_SITE_STYLE_ID,
|
|
12595
12948
|
name: "Soft Earth",
|
|
12596
12949
|
description: "Warm, grounded, and editorial for yoga studios, retreats, and wellbeing communities.",
|
|
12597
|
-
generationBrief: "Use cream space, terracotta CTAs, olive
|
|
12950
|
+
generationBrief: "Use cream space, terracotta CTAs, olive quote bands, natural imagery, generous but composed spacing, and editorial serif headings. Prefer a real intro section, image-led offering cards, warm community quotes, and an FAQ with a full-width intro above two columns of questions when content allows.",
|
|
12598
12951
|
siteCreatorSelection: {
|
|
12599
12952
|
kind: "site_creator_keyword_heuristic",
|
|
12600
12953
|
priority: 45
|
|
@@ -12664,14 +13017,18 @@ var curatedSiteStyles = [
|
|
|
12664
13017
|
paragraphSize: "default",
|
|
12665
13018
|
headingSize: "editorial"
|
|
12666
13019
|
}
|
|
12667
|
-
}
|
|
13020
|
+
},
|
|
13021
|
+
accordions: softEarthAccordionSystem
|
|
13022
|
+
},
|
|
13023
|
+
defaultBlockVariants: {
|
|
13024
|
+
"block.faq": "question-columns"
|
|
12668
13025
|
},
|
|
12669
13026
|
recommendedAppearancePresetIds: [
|
|
12670
13027
|
"hero-brand-scrim",
|
|
12671
|
-
"intro-
|
|
12672
|
-
"feature-cards-
|
|
12673
|
-
"
|
|
12674
|
-
"
|
|
13028
|
+
"intro-organic-statement",
|
|
13029
|
+
"feature-cards-raised-rule",
|
|
13030
|
+
"events-lined-panel",
|
|
13031
|
+
"testimonials-brand-background-quotes",
|
|
12675
13032
|
"contact-form-panel"
|
|
12676
13033
|
],
|
|
12677
13034
|
recommendedHeaderLookIds: [
|
|
@@ -12775,7 +13132,7 @@ var curatedSiteStyles = [
|
|
|
12775
13132
|
"hero-brand-scrim-fixed-frame",
|
|
12776
13133
|
"body-text-editorial-intro",
|
|
12777
13134
|
"schedule-details-brand-depth",
|
|
12778
|
-
"testimonials-accent-quote-
|
|
13135
|
+
"testimonials-accent-quote-cards",
|
|
12779
13136
|
"contact-form-brand-depth-card"
|
|
12780
13137
|
],
|
|
12781
13138
|
recommendedHeaderLookIds: [
|
|
@@ -12870,6 +13227,7 @@ var themeV2RuntimeStyleFieldNames = [
|
|
|
12870
13227
|
];
|
|
12871
13228
|
var themeV2BlockSpecificRawStyleFieldNames = [
|
|
12872
13229
|
"_contentCardStyles",
|
|
13230
|
+
"_heroLayoutStyles",
|
|
12873
13231
|
"_textCardStyles"
|
|
12874
13232
|
];
|
|
12875
13233
|
var themeV2NormalEditorRawStyleFieldNames = [
|
|
@@ -12879,6 +13237,10 @@ var themeV2NormalEditorRawStyleFieldNames = [
|
|
|
12879
13237
|
var themeV2NormalEditorRawStyleFieldNameSet = new Set(
|
|
12880
13238
|
themeV2NormalEditorRawStyleFieldNames
|
|
12881
13239
|
);
|
|
13240
|
+
var themeV2CompilerOwnedFieldNames = [
|
|
13241
|
+
...themeV2RuntimeStyleFieldNames,
|
|
13242
|
+
...themeV2BlockSpecificRawStyleFieldNames
|
|
13243
|
+
];
|
|
12882
13244
|
|
|
12883
13245
|
// ../theme-core/src/site-styles/designState.ts
|
|
12884
13246
|
var themeV2DesignStateSchemaVersion = 1;
|
|
@@ -12893,6 +13255,16 @@ var heroLegibilityStrategySchema = z23.enum([
|
|
|
12893
13255
|
"scrim-gradient",
|
|
12894
13256
|
"solid-panel"
|
|
12895
13257
|
]);
|
|
13258
|
+
var heroCompositionIntentSchema = z23.enum([
|
|
13259
|
+
"center",
|
|
13260
|
+
"bottom-left"
|
|
13261
|
+
]);
|
|
13262
|
+
var heroTypographyScaleIntentSchema = z23.enum([
|
|
13263
|
+
"quiet",
|
|
13264
|
+
"editorial",
|
|
13265
|
+
"display",
|
|
13266
|
+
"poster"
|
|
13267
|
+
]);
|
|
12896
13268
|
var sectionHeightIntentSchema = z23.enum([
|
|
12897
13269
|
"default",
|
|
12898
13270
|
"banner",
|
|
@@ -12928,6 +13300,7 @@ var imageSurfaceTreatmentSchema = z23.discriminatedUnion("kind", [
|
|
|
12928
13300
|
]);
|
|
12929
13301
|
var testimonialCardTreatmentSchema = z23.enum(["default", "accent-quote"]);
|
|
12930
13302
|
var tileTreatmentSchema = z23.enum(tileTreatmentValues);
|
|
13303
|
+
var eventListTreatmentSchema = z23.enum(eventListTreatmentValues);
|
|
12931
13304
|
var eyebrowTreatmentSchema = z23.enum(eyebrowTreatmentValues);
|
|
12932
13305
|
function uniqueNonEmpty(values) {
|
|
12933
13306
|
const uniqueValues = [...new Set(values)];
|
|
@@ -12969,10 +13342,13 @@ var blockDesignPlanSchema = z23.object({
|
|
|
12969
13342
|
emphasis: z23.enum(userDesignOptionCatalog.emphases),
|
|
12970
13343
|
sectionHeight: sectionHeightIntentSchema.optional(),
|
|
12971
13344
|
heroLegibility: heroLegibilityStrategySchema.optional(),
|
|
13345
|
+
heroComposition: heroCompositionIntentSchema.optional(),
|
|
13346
|
+
heroTypographyScale: heroTypographyScaleIntentSchema.optional(),
|
|
12972
13347
|
imageSurfaceTreatment: imageSurfaceTreatmentSchema.optional(),
|
|
12973
13348
|
imageSurfaceMotion: imageSurfaceMotionSchema.optional(),
|
|
12974
13349
|
testimonialCardTreatment: testimonialCardTreatmentSchema.optional(),
|
|
12975
13350
|
tileTreatment: tileTreatmentSchema.optional(),
|
|
13351
|
+
eventListTreatment: eventListTreatmentSchema.optional(),
|
|
12976
13352
|
eyebrowTreatment: eyebrowTreatmentSchema.optional()
|
|
12977
13353
|
}).strict();
|
|
12978
13354
|
var styleAuthoritySchema = z23.discriminatedUnion("kind", [
|
|
@@ -14372,6 +14748,7 @@ function styledSection(config) {
|
|
|
14372
14748
|
renderBackgroundImage = true,
|
|
14373
14749
|
backgroundImageLoading,
|
|
14374
14750
|
backgroundImageFetchPriority,
|
|
14751
|
+
allowOverflow = false,
|
|
14375
14752
|
fullWidthPath
|
|
14376
14753
|
} = config;
|
|
14377
14754
|
const renderedBackgroundNodes = backgroundLayer(`${bindFrom}.background`, {
|
|
@@ -14406,7 +14783,7 @@ function styledSection(config) {
|
|
|
14406
14783
|
// No fallback needed - transform handles all cases via defaultSpacing
|
|
14407
14784
|
}
|
|
14408
14785
|
},
|
|
14409
|
-
allowOverflow: {
|
|
14786
|
+
allowOverflow: allowOverflow ? true : {
|
|
14410
14787
|
$bind: {
|
|
14411
14788
|
from: `${bindFrom}.background`,
|
|
14412
14789
|
transforms: [{ id: "background.resolveAllowOverflow" }],
|
|
@@ -15090,6 +15467,14 @@ var tileTreatmentSet = new Set(tileTreatmentValues);
|
|
|
15090
15467
|
function isTileTreatment(value) {
|
|
15091
15468
|
return typeof value === "string" && tileTreatmentSet.has(value);
|
|
15092
15469
|
}
|
|
15470
|
+
var eventListTreatmentClassMap = {
|
|
15471
|
+
plain: "",
|
|
15472
|
+
"lined-panel": "rb-event-list-treatment-lined-panel"
|
|
15473
|
+
};
|
|
15474
|
+
var eventListTreatmentSet = new Set(eventListTreatmentValues);
|
|
15475
|
+
function isEventListTreatment(value) {
|
|
15476
|
+
return typeof value === "string" && eventListTreatmentSet.has(value);
|
|
15477
|
+
}
|
|
15093
15478
|
var sectionClassNameTransform = {
|
|
15094
15479
|
id: "sectionStyles.resolveClassName",
|
|
15095
15480
|
kind: "string",
|
|
@@ -15157,6 +15542,17 @@ var sectionClassNameTransform = {
|
|
|
15157
15542
|
`[sectionStyles] Invalid tileTreatment value in _sectionStyles: "${tileTreatment}". Expected one of: ${tileTreatmentValues.join(", ")}.`
|
|
15158
15543
|
);
|
|
15159
15544
|
}
|
|
15545
|
+
const eventListTreatment = input?.eventListTreatment;
|
|
15546
|
+
if (isEventListTreatment(eventListTreatment)) {
|
|
15547
|
+
const eventListTreatmentClass = eventListTreatmentClassMap[eventListTreatment];
|
|
15548
|
+
if (eventListTreatmentClass) {
|
|
15549
|
+
classes.push(eventListTreatmentClass);
|
|
15550
|
+
}
|
|
15551
|
+
} else if (typeof eventListTreatment === "string" && process.env.NODE_ENV !== "production") {
|
|
15552
|
+
console.warn(
|
|
15553
|
+
`[sectionStyles] Invalid eventListTreatment value in _sectionStyles: "${eventListTreatment}". Expected one of: ${eventListTreatmentValues.join(", ")}.`
|
|
15554
|
+
);
|
|
15555
|
+
}
|
|
15160
15556
|
if (hasFixedFrameBackgroundMotion(input)) {
|
|
15161
15557
|
classes.push(fixedFrameScopeClass);
|
|
15162
15558
|
}
|
|
@@ -15592,6 +15988,35 @@ function sectionState(opts) {
|
|
|
15592
15988
|
);
|
|
15593
15989
|
}
|
|
15594
15990
|
|
|
15991
|
+
// ../blocks/src/system/node/fragments/headingDecoration.ts
|
|
15992
|
+
var defaultBindFrom = "_sectionStyles.headingDecoration";
|
|
15993
|
+
function headingDecoration({
|
|
15994
|
+
bindFrom = defaultBindFrom,
|
|
15995
|
+
family,
|
|
15996
|
+
placement,
|
|
15997
|
+
className
|
|
15998
|
+
}) {
|
|
15999
|
+
return el(
|
|
16000
|
+
"div",
|
|
16001
|
+
{
|
|
16002
|
+
"aria-hidden": "true",
|
|
16003
|
+
className: {
|
|
16004
|
+
$bind: {
|
|
16005
|
+
from: bindFrom,
|
|
16006
|
+
transforms: [
|
|
16007
|
+
{
|
|
16008
|
+
id: "ui.headingDecorationClassName",
|
|
16009
|
+
options: { baseClass: className, family }
|
|
16010
|
+
}
|
|
16011
|
+
]
|
|
16012
|
+
}
|
|
16013
|
+
}
|
|
16014
|
+
},
|
|
16015
|
+
null,
|
|
16016
|
+
when(`${bindFrom}.placement`, { equals: placement })
|
|
16017
|
+
);
|
|
16018
|
+
}
|
|
16019
|
+
|
|
15595
16020
|
// ../blocks/src/system/fragments/types.ts
|
|
15596
16021
|
import { z as z27 } from "zod";
|
|
15597
16022
|
var FRAGMENT_ID_PATTERN = /^[a-z0-9](?:[a-z0-9._-]*[a-z0-9])?$/i;
|
|
@@ -15677,47 +16102,48 @@ function validateFieldDefinitions(fields3, fragmentId) {
|
|
|
15677
16102
|
function prefixFieldId(field, scope) {
|
|
15678
16103
|
const cloned = cloneFieldDefinition2(field);
|
|
15679
16104
|
cloned.id = `${scope}.${field.id}`;
|
|
15680
|
-
|
|
16105
|
+
const defaultValue = cloned.defaultValue;
|
|
16106
|
+
cloned.defaultValue = cloneUnknown(defaultValue);
|
|
15681
16107
|
cloned.visibleRoles = cloned.visibleRoles ? [...cloned.visibleRoles] : void 0;
|
|
15682
16108
|
cloned.ui = cloneUnknown(cloned.ui);
|
|
15683
16109
|
return cloned;
|
|
15684
16110
|
}
|
|
15685
16111
|
function cloneFieldDefinition2(field) {
|
|
15686
|
-
|
|
15687
|
-
|
|
15688
|
-
|
|
15689
|
-
|
|
15690
|
-
|
|
15691
|
-
|
|
15692
|
-
|
|
15693
|
-
|
|
15694
|
-
|
|
15695
|
-
|
|
15696
|
-
|
|
15697
|
-
|
|
15698
|
-
|
|
15699
|
-
|
|
15700
|
-
|
|
15701
|
-
|
|
15702
|
-
|
|
15703
|
-
return {
|
|
15704
|
-
...field,
|
|
15705
|
-
schema: {
|
|
15706
|
-
fields: field.schema.fields.map(cloneFieldDefinition2)
|
|
15707
|
-
}
|
|
15708
|
-
};
|
|
15709
|
-
}
|
|
15710
|
-
return { ...field };
|
|
15711
|
-
case "group":
|
|
16112
|
+
if (field.type === "repeater") {
|
|
16113
|
+
if (field.polymorphic && field.itemTypes) {
|
|
16114
|
+
return {
|
|
16115
|
+
...field,
|
|
16116
|
+
polymorphic: true,
|
|
16117
|
+
itemTypes: Object.fromEntries(
|
|
16118
|
+
Object.entries(field.itemTypes).map(([key, itemType]) => [
|
|
16119
|
+
key,
|
|
16120
|
+
{
|
|
16121
|
+
...itemType,
|
|
16122
|
+
fields: itemType.fields.map(cloneFieldDefinition2)
|
|
16123
|
+
}
|
|
16124
|
+
])
|
|
16125
|
+
)
|
|
16126
|
+
};
|
|
16127
|
+
}
|
|
16128
|
+
if (field.schema) {
|
|
15712
16129
|
return {
|
|
15713
16130
|
...field,
|
|
15714
16131
|
schema: {
|
|
15715
16132
|
fields: field.schema.fields.map(cloneFieldDefinition2)
|
|
15716
16133
|
}
|
|
15717
16134
|
};
|
|
15718
|
-
|
|
15719
|
-
|
|
16135
|
+
}
|
|
16136
|
+
return { ...field };
|
|
16137
|
+
}
|
|
16138
|
+
if (field.type === "group") {
|
|
16139
|
+
return {
|
|
16140
|
+
...field,
|
|
16141
|
+
schema: {
|
|
16142
|
+
fields: field.schema.fields.map(cloneFieldDefinition2)
|
|
16143
|
+
}
|
|
16144
|
+
};
|
|
15720
16145
|
}
|
|
16146
|
+
return { ...field };
|
|
15721
16147
|
}
|
|
15722
16148
|
function cloneUnknown(value) {
|
|
15723
16149
|
if (value == null || typeof value !== "object") {
|
|
@@ -16370,6 +16796,10 @@ var testimonialsHeadingFragment = defineFragment({
|
|
|
16370
16796
|
when("content.heading"),
|
|
16371
16797
|
bind("content.heading")
|
|
16372
16798
|
),
|
|
16799
|
+
headingDecoration({
|
|
16800
|
+
family: "short-center-rule",
|
|
16801
|
+
placement: "under-centered-heading"
|
|
16802
|
+
}),
|
|
16373
16803
|
text(
|
|
16374
16804
|
{
|
|
16375
16805
|
as: "p",
|
|
@@ -17041,6 +17471,41 @@ var faqHeadingFragment = defineFragment({
|
|
|
17041
17471
|
});
|
|
17042
17472
|
|
|
17043
17473
|
// ../blocks/src/system/fragments/library/faqAccordion.ts
|
|
17474
|
+
function createFaqAccordionLayout(options = {}) {
|
|
17475
|
+
return accordionList({
|
|
17476
|
+
collection: "content.items",
|
|
17477
|
+
itemName: "faqItem",
|
|
17478
|
+
indexName: "faqIndex",
|
|
17479
|
+
accordionProps: {
|
|
17480
|
+
className: options.rootClassName ?? "accordion-root",
|
|
17481
|
+
type: "single",
|
|
17482
|
+
collapsible: true
|
|
17483
|
+
},
|
|
17484
|
+
itemProps: {
|
|
17485
|
+
className: {
|
|
17486
|
+
$bind: {
|
|
17487
|
+
from: "content._cardStyles",
|
|
17488
|
+
transforms: [
|
|
17489
|
+
{
|
|
17490
|
+
id: "boxStyles.all",
|
|
17491
|
+
options: {
|
|
17492
|
+
axis: "all",
|
|
17493
|
+
includeSpacing: false,
|
|
17494
|
+
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden"
|
|
17495
|
+
}
|
|
17496
|
+
}
|
|
17497
|
+
]
|
|
17498
|
+
},
|
|
17499
|
+
fallback: "rb-faq-item"
|
|
17500
|
+
},
|
|
17501
|
+
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
17502
|
+
// Legacy theme accordion style
|
|
17503
|
+
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
17504
|
+
},
|
|
17505
|
+
triggerFrom: "faqItem.question",
|
|
17506
|
+
contentFrom: "faqItem.answer"
|
|
17507
|
+
});
|
|
17508
|
+
}
|
|
17044
17509
|
var faqAccordionFragment = defineFragment({
|
|
17045
17510
|
id: "faqAccordion",
|
|
17046
17511
|
title: "FAQ Accordion",
|
|
@@ -17074,40 +17539,7 @@ var faqAccordionFragment = defineFragment({
|
|
|
17074
17539
|
}
|
|
17075
17540
|
}
|
|
17076
17541
|
],
|
|
17077
|
-
layout:
|
|
17078
|
-
collection: "content.items",
|
|
17079
|
-
itemName: "faqItem",
|
|
17080
|
-
indexName: "faqIndex",
|
|
17081
|
-
accordionProps: {
|
|
17082
|
-
className: "accordion-root",
|
|
17083
|
-
// CSS-first: all styling handled by theme CSS
|
|
17084
|
-
type: "single",
|
|
17085
|
-
collapsible: true
|
|
17086
|
-
},
|
|
17087
|
-
itemProps: {
|
|
17088
|
-
className: {
|
|
17089
|
-
$bind: {
|
|
17090
|
-
from: "content._cardStyles",
|
|
17091
|
-
transforms: [
|
|
17092
|
-
{
|
|
17093
|
-
id: "boxStyles.all",
|
|
17094
|
-
options: {
|
|
17095
|
-
axis: "all",
|
|
17096
|
-
includeSpacing: false,
|
|
17097
|
-
baseClass: "rb-faq-item rb-relative rb-isolate rb-overflow-hidden rb-border"
|
|
17098
|
-
}
|
|
17099
|
-
}
|
|
17100
|
-
]
|
|
17101
|
-
},
|
|
17102
|
-
fallback: "rb-faq-item"
|
|
17103
|
-
},
|
|
17104
|
-
iconStyle: { $bind: { from: "theme.accordions.icon.style" } },
|
|
17105
|
-
// Legacy theme accordion style
|
|
17106
|
-
iconTreatment: { $bind: { from: "content._sectionStyles.accordionIconTreatment" } }
|
|
17107
|
-
},
|
|
17108
|
-
triggerFrom: "faqItem.question",
|
|
17109
|
-
contentFrom: "faqItem.answer"
|
|
17110
|
-
})
|
|
17542
|
+
layout: createFaqAccordionLayout()
|
|
17111
17543
|
});
|
|
17112
17544
|
|
|
17113
17545
|
// ../blocks/src/system/fragments/library/card.ts
|
|
@@ -18054,7 +18486,8 @@ function createBlockManifestWithContentShape(config, _contentShape) {
|
|
|
18054
18486
|
return createBlockManifest(config);
|
|
18055
18487
|
}
|
|
18056
18488
|
function normalizeBlockLayout(layout) {
|
|
18057
|
-
|
|
18489
|
+
const rawLayout = layout;
|
|
18490
|
+
return Array.isArray(rawLayout) ? rawLayout : rawLayout;
|
|
18058
18491
|
}
|
|
18059
18492
|
function deriveComponentName(id) {
|
|
18060
18493
|
const base = id.replace(/^block\./, "");
|
|
@@ -18160,6 +18593,7 @@ var microLayout = styledSection({
|
|
|
18160
18593
|
function splitLayoutWith(children) {
|
|
18161
18594
|
return styledSection({
|
|
18162
18595
|
children: styledContainer({
|
|
18596
|
+
baseClassName: "rb-relative rb-isolate rb-overflow-visible",
|
|
18163
18597
|
children: {
|
|
18164
18598
|
type: "grid",
|
|
18165
18599
|
props: {
|
|
@@ -18184,6 +18618,7 @@ function splitLayoutWith(children) {
|
|
|
18184
18618
|
// The split variants render the image as a real grid column, so suppress
|
|
18185
18619
|
// the default absolute background image layer while keeping color/overlay.
|
|
18186
18620
|
renderBackgroundImage: false,
|
|
18621
|
+
allowOverflow: true,
|
|
18187
18622
|
baseClass: ""
|
|
18188
18623
|
});
|
|
18189
18624
|
}
|
|
@@ -18337,6 +18772,21 @@ function introHeading(className) {
|
|
|
18337
18772
|
bind("content.title")
|
|
18338
18773
|
);
|
|
18339
18774
|
}
|
|
18775
|
+
function introHeadingGroup(className) {
|
|
18776
|
+
return stack(
|
|
18777
|
+
{
|
|
18778
|
+
gap: "sm",
|
|
18779
|
+
className: "rb-intro-heading-group"
|
|
18780
|
+
},
|
|
18781
|
+
[
|
|
18782
|
+
introHeading(className),
|
|
18783
|
+
headingDecoration({
|
|
18784
|
+
family: "organic-squiggle",
|
|
18785
|
+
placement: "after-heading"
|
|
18786
|
+
})
|
|
18787
|
+
]
|
|
18788
|
+
);
|
|
18789
|
+
}
|
|
18340
18790
|
function introBody(className = "rb-prose rb-max-w-none") {
|
|
18341
18791
|
return richText({ className }, bind("content.body"));
|
|
18342
18792
|
}
|
|
@@ -18355,6 +18805,10 @@ function introCopyStack(options = {}) {
|
|
|
18355
18805
|
},
|
|
18356
18806
|
[
|
|
18357
18807
|
introHeading(options.headingClassName ?? "rb-intro-title"),
|
|
18808
|
+
headingDecoration({
|
|
18809
|
+
family: "organic-squiggle",
|
|
18810
|
+
placement: "after-heading"
|
|
18811
|
+
}),
|
|
18358
18812
|
introBody(options.bodyClassName),
|
|
18359
18813
|
introCtas(options.ctaJustify)
|
|
18360
18814
|
]
|
|
@@ -18394,7 +18848,7 @@ var statementCopyLayout = styledSection({
|
|
|
18394
18848
|
className: "rb-intro rb-intro-statement rb-grid rb-grid-cols-1 rb-gap-8 rb-md-grid-cols-2 rb-md-items-start"
|
|
18395
18849
|
},
|
|
18396
18850
|
[
|
|
18397
|
-
|
|
18851
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
18398
18852
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
18399
18853
|
introBody(),
|
|
18400
18854
|
introCtas("start")
|
|
@@ -18415,7 +18869,7 @@ var statementMediaLayout = styledSection({
|
|
|
18415
18869
|
className: "rb-intro rb-intro-statement-media rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-3 rb-lg-items-center"
|
|
18416
18870
|
},
|
|
18417
18871
|
[
|
|
18418
|
-
|
|
18872
|
+
introHeadingGroup("rb-intro-title rb-max-w-xl"),
|
|
18419
18873
|
stack({ gap: "md", className: "rb-intro-copy rb-max-w-xl" }, [
|
|
18420
18874
|
introBody(),
|
|
18421
18875
|
introCtas("start")
|
|
@@ -19417,6 +19871,9 @@ function isNodeDefinitionArray(layout) {
|
|
|
19417
19871
|
}
|
|
19418
19872
|
var headingLayout = fragmentLayoutNode(faqHeadingFragment.layout);
|
|
19419
19873
|
var accordionLayout = fragmentLayoutNode(faqAccordionFragment.layout);
|
|
19874
|
+
var questionColumnsAccordionLayout = createFaqAccordionLayout({
|
|
19875
|
+
rootClassName: "accordion-root rb-faq-question-columns rb-grid rb-grid-cols-1 rb-gap-4 rb-lg-grid-cols-2"
|
|
19876
|
+
});
|
|
19420
19877
|
var defaultLayout = styledSection({
|
|
19421
19878
|
children: styledContainer({
|
|
19422
19879
|
baseClassName: "rb-relative rb-isolate",
|
|
@@ -19430,11 +19887,24 @@ var twoColumnLayout = styledSection({
|
|
|
19430
19887
|
children: el(
|
|
19431
19888
|
"div",
|
|
19432
19889
|
{
|
|
19433
|
-
className: "rb-faq-
|
|
19890
|
+
className: "rb-faq-split-heading rb-grid rb-grid-cols-1 rb-gap-8 rb-lg-grid-cols-2 rb-lg-items-start"
|
|
19434
19891
|
},
|
|
19435
19892
|
[
|
|
19436
|
-
el("div", { className: "rb-faq-
|
|
19437
|
-
el("div", { className: "rb-faq-
|
|
19893
|
+
el("div", { className: "rb-faq-split-heading-copy" }, [headingLayout]),
|
|
19894
|
+
el("div", { className: "rb-faq-split-heading-accordion" }, [accordionLayout])
|
|
19895
|
+
]
|
|
19896
|
+
)
|
|
19897
|
+
}),
|
|
19898
|
+
baseClass: ""
|
|
19899
|
+
});
|
|
19900
|
+
var questionColumnsLayout = styledSection({
|
|
19901
|
+
children: styledContainer({
|
|
19902
|
+
baseClassName: "rb-relative rb-isolate",
|
|
19903
|
+
children: stack(
|
|
19904
|
+
{ gap: "xl", className: "rb-w-full" },
|
|
19905
|
+
[
|
|
19906
|
+
headingLayout,
|
|
19907
|
+
questionColumnsAccordionLayout
|
|
19438
19908
|
]
|
|
19439
19909
|
)
|
|
19440
19910
|
}),
|
|
@@ -19459,7 +19929,8 @@ var faqManifest = createBlockManifest({
|
|
|
19459
19929
|
layout: defaultLayout,
|
|
19460
19930
|
variants: {
|
|
19461
19931
|
default: defaultLayout,
|
|
19462
|
-
"two-column": twoColumnLayout
|
|
19932
|
+
"two-column": twoColumnLayout,
|
|
19933
|
+
"question-columns": questionColumnsLayout
|
|
19463
19934
|
},
|
|
19464
19935
|
defaultVariant: "default",
|
|
19465
19936
|
variantOptions: {
|
|
@@ -19470,6 +19941,10 @@ var faqManifest = createBlockManifest({
|
|
|
19470
19941
|
"two-column": {
|
|
19471
19942
|
label: "Two column",
|
|
19472
19943
|
description: "A left heading column with FAQ items on the right."
|
|
19944
|
+
},
|
|
19945
|
+
"question-columns": {
|
|
19946
|
+
label: "Question columns",
|
|
19947
|
+
description: "A full-width heading above FAQ items split into two columns."
|
|
19473
19948
|
}
|
|
19474
19949
|
},
|
|
19475
19950
|
description: "Accordion of frequently asked questions and answers.",
|
|
@@ -19558,16 +20033,20 @@ var marqueeLoopTransform = {
|
|
|
19558
20033
|
summary: "Repeat an array to a minimum length, then duplicate it for seamless marquee looping",
|
|
19559
20034
|
schema: marqueeLoopOptionsSchema,
|
|
19560
20035
|
run: (value, options) => {
|
|
19561
|
-
|
|
20036
|
+
const items = toUnknownArray(value);
|
|
20037
|
+
if (items.length === 0) return [];
|
|
19562
20038
|
const minItems = options?.minItems ?? 10;
|
|
19563
20039
|
const base = [];
|
|
19564
20040
|
while (base.length < minItems) {
|
|
19565
|
-
base.push(...
|
|
20041
|
+
base.push(...items);
|
|
19566
20042
|
if (base.length > 1e3) break;
|
|
19567
20043
|
}
|
|
19568
20044
|
return [...base, ...base];
|
|
19569
20045
|
}
|
|
19570
20046
|
};
|
|
20047
|
+
function toUnknownArray(value) {
|
|
20048
|
+
return Array.isArray(value) ? value : [];
|
|
20049
|
+
}
|
|
19571
20050
|
var formattingTransforms = [
|
|
19572
20051
|
uppercaseTransform,
|
|
19573
20052
|
fallbackTransform,
|
|
@@ -19591,9 +20070,21 @@ var eyebrowTreatmentClassMap = {
|
|
|
19591
20070
|
"accent-pill-bounce": "rb-eyebrow-treatment-pill rb-eyebrow-treatment-accent rb-eyebrow-treatment-pill-bounce"
|
|
19592
20071
|
};
|
|
19593
20072
|
var eyebrowTreatmentSet = new Set(eyebrowTreatmentValues);
|
|
20073
|
+
var headingDecorationFamilySet = new Set(visibleHeadingDecorationFamilyValues);
|
|
20074
|
+
var headingDecorationPlacementSet = new Set(visibleHeadingDecorationPlacementValues);
|
|
20075
|
+
var headingDecorationColorTokenSet = new Set(headingDecorationColorTokenValues);
|
|
19594
20076
|
function isEyebrowTreatment(value) {
|
|
19595
20077
|
return typeof value === "string" && eyebrowTreatmentSet.has(value);
|
|
19596
20078
|
}
|
|
20079
|
+
function isHeadingDecorationFamily(value) {
|
|
20080
|
+
return typeof value === "string" && headingDecorationFamilySet.has(value);
|
|
20081
|
+
}
|
|
20082
|
+
function isHeadingDecorationPlacement(value) {
|
|
20083
|
+
return typeof value === "string" && headingDecorationPlacementSet.has(value);
|
|
20084
|
+
}
|
|
20085
|
+
function isHeadingDecorationColorToken(value) {
|
|
20086
|
+
return typeof value === "string" && headingDecorationColorTokenSet.has(value);
|
|
20087
|
+
}
|
|
19597
20088
|
var imageGalleryCornerClassMap = {
|
|
19598
20089
|
none: "",
|
|
19599
20090
|
sm: "rb-rounded-sm",
|
|
@@ -19697,6 +20188,10 @@ var sectionStateToneTransform = {
|
|
|
19697
20188
|
summary: "Map semantic section-state kind to feedback tone",
|
|
19698
20189
|
run: (value) => sectionStateToneFromUnknown(value)
|
|
19699
20190
|
};
|
|
20191
|
+
var heroTitleLengthThresholds = {
|
|
20192
|
+
medium: { maxCharacters: 42, maxWords: 6 },
|
|
20193
|
+
long: { maxCharacters: 78, maxWords: 11 }
|
|
20194
|
+
};
|
|
19700
20195
|
function isPlainObject(value) {
|
|
19701
20196
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
19702
20197
|
}
|
|
@@ -19704,6 +20199,14 @@ function readString(obj, key) {
|
|
|
19704
20199
|
const v = obj[key];
|
|
19705
20200
|
return typeof v === "string" ? v : void 0;
|
|
19706
20201
|
}
|
|
20202
|
+
function resolveGeneratedHeroLayoutStyles(content) {
|
|
20203
|
+
const raw = content._heroLayoutStyles;
|
|
20204
|
+
return isPlainObject(raw) ? raw : null;
|
|
20205
|
+
}
|
|
20206
|
+
function readHeroLayoutString(content, generatedKey, fallbackKey = generatedKey) {
|
|
20207
|
+
const generated = resolveGeneratedHeroLayoutStyles(content);
|
|
20208
|
+
return generated && typeof generated[generatedKey] === "string" ? generated[generatedKey] : readString(content, fallbackKey);
|
|
20209
|
+
}
|
|
19707
20210
|
function resolveHeroVariant(content) {
|
|
19708
20211
|
const variant = readString(content, "variant");
|
|
19709
20212
|
if (variant && variant.trim()) return variant.trim();
|
|
@@ -19712,14 +20215,14 @@ function resolveHeroVariant(content) {
|
|
|
19712
20215
|
return null;
|
|
19713
20216
|
}
|
|
19714
20217
|
function resolveHeroContentAlignment(content) {
|
|
19715
|
-
const raw =
|
|
20218
|
+
const raw = readHeroLayoutString(content, "contentAlignment");
|
|
19716
20219
|
if (raw === "left" || raw === "center" || raw === "right") return raw;
|
|
19717
20220
|
const variant = resolveHeroVariant(content);
|
|
19718
20221
|
if (variant === "split" || variant === "splitReverse") return "left";
|
|
19719
20222
|
return "center";
|
|
19720
20223
|
}
|
|
19721
20224
|
function resolveHeroVerticalAlignment(content) {
|
|
19722
|
-
const raw =
|
|
20225
|
+
const raw = readHeroLayoutString(content, "verticalAlignment");
|
|
19723
20226
|
if (raw === "top" || raw === "center" || raw === "bottom") return raw;
|
|
19724
20227
|
const sectionStyles = asPartialObject(content._sectionStyles);
|
|
19725
20228
|
const minHeight = sectionStyles?.minHeight;
|
|
@@ -19729,11 +20232,29 @@ function resolveHeroVerticalAlignment(content) {
|
|
|
19729
20232
|
return "top";
|
|
19730
20233
|
}
|
|
19731
20234
|
function resolveHeroContentMaxWidth(content) {
|
|
19732
|
-
const raw =
|
|
20235
|
+
const raw = readHeroLayoutString(content, "contentMaxWidth");
|
|
19733
20236
|
if (raw === "default" || raw === "narrow" || raw === "medium" || raw === "wide")
|
|
19734
20237
|
return raw;
|
|
19735
20238
|
return "default";
|
|
19736
20239
|
}
|
|
20240
|
+
function resolveHeroTypographyScale(content) {
|
|
20241
|
+
const raw = readHeroLayoutString(
|
|
20242
|
+
content,
|
|
20243
|
+
"typographyScale",
|
|
20244
|
+
"heroTypographyScale"
|
|
20245
|
+
);
|
|
20246
|
+
if (raw === "quiet" || raw === "editorial" || raw === "display" || raw === "poster") {
|
|
20247
|
+
return raw;
|
|
20248
|
+
}
|
|
20249
|
+
return null;
|
|
20250
|
+
}
|
|
20251
|
+
function resolveHeroTitleLength(content) {
|
|
20252
|
+
const headline = readString(content, "headline")?.trim() ?? "";
|
|
20253
|
+
const wordCount = headline.length === 0 ? 0 : headline.split(/\s+/).length;
|
|
20254
|
+
if (headline.length > heroTitleLengthThresholds.long.maxCharacters || wordCount > heroTitleLengthThresholds.long.maxWords) return "long";
|
|
20255
|
+
if (headline.length > heroTitleLengthThresholds.medium.maxCharacters || wordCount > heroTitleLengthThresholds.medium.maxWords) return "medium";
|
|
20256
|
+
return "short";
|
|
20257
|
+
}
|
|
19737
20258
|
var heroContentWrapperClassSchema = z33.object({
|
|
19738
20259
|
base: z33.string().optional()
|
|
19739
20260
|
});
|
|
@@ -19746,6 +20267,8 @@ var heroContentWrapperClassTransform = {
|
|
|
19746
20267
|
const content = isPlainObject(value) ? value : isPlainObject(context.data) ? context.data : {};
|
|
19747
20268
|
const alignment = resolveHeroContentAlignment(content);
|
|
19748
20269
|
const maxWidth = resolveHeroContentMaxWidth(content);
|
|
20270
|
+
const typographyScale = resolveHeroTypographyScale(content);
|
|
20271
|
+
const titleLength = resolveHeroTitleLength(content);
|
|
19749
20272
|
const textAlignClass = alignment === "center" ? "rb-text-center" : alignment === "right" ? "rb-text-right" : "rb-text-left";
|
|
19750
20273
|
const maxWidthClass = maxWidth === "narrow" ? "rb-max-w-2xl" : maxWidth === "medium" ? "rb-max-w-3xl" : maxWidth === "wide" ? "rb-max-w-5xl" : "";
|
|
19751
20274
|
const positionClass = alignment === "center" ? "rb-mx-auto" : alignment === "right" ? "rb-ml-auto" : "";
|
|
@@ -19753,7 +20276,9 @@ var heroContentWrapperClassTransform = {
|
|
|
19753
20276
|
options?.base,
|
|
19754
20277
|
textAlignClass,
|
|
19755
20278
|
maxWidthClass,
|
|
19756
|
-
positionClass
|
|
20279
|
+
positionClass,
|
|
20280
|
+
typographyScale ? `rb-hero-typography-${typographyScale}` : "",
|
|
20281
|
+
`rb-hero-title-${titleLength}`
|
|
19757
20282
|
]);
|
|
19758
20283
|
}
|
|
19759
20284
|
};
|
|
@@ -20053,11 +20578,67 @@ var uiTransforms = [
|
|
|
20053
20578
|
const treatment = isEyebrowTreatment(value) ? value : "plain";
|
|
20054
20579
|
return joinClasses3([baseClass, eyebrowTreatmentClassMap[treatment]]);
|
|
20055
20580
|
}
|
|
20581
|
+
},
|
|
20582
|
+
{
|
|
20583
|
+
id: "ui.headingDecorationClassName",
|
|
20584
|
+
kind: "string",
|
|
20585
|
+
summary: "Apply constrained Theme V2 heading decoration classes",
|
|
20586
|
+
run: (value, options) => {
|
|
20587
|
+
const baseClass = typeof options?.baseClass === "string" && options.baseClass.trim() ? options.baseClass : "rb-heading-decoration";
|
|
20588
|
+
const decoration = asPartialObject(value);
|
|
20589
|
+
const family = isHeadingDecorationFamily(decoration?.family) ? decoration.family : null;
|
|
20590
|
+
const allowedFamily = isHeadingDecorationFamily(options?.family) ? options.family : null;
|
|
20591
|
+
const placement = isHeadingDecorationPlacement(decoration?.placement) ? decoration.placement : null;
|
|
20592
|
+
const colorToken = isHeadingDecorationColorToken(decoration?.colorToken) ? decoration.colorToken : "primary";
|
|
20593
|
+
if (!family || !placement) return "rb-hidden";
|
|
20594
|
+
if (allowedFamily && family !== allowedFamily) return "rb-hidden";
|
|
20595
|
+
return joinClasses3([
|
|
20596
|
+
baseClass,
|
|
20597
|
+
`rb-heading-decoration-${family}`,
|
|
20598
|
+
`rb-heading-decoration-placement-${placement}`,
|
|
20599
|
+
`rb-heading-decoration-color-${colorToken}`
|
|
20600
|
+
]);
|
|
20601
|
+
}
|
|
20056
20602
|
}
|
|
20057
20603
|
];
|
|
20058
20604
|
|
|
20059
20605
|
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20060
20606
|
import { z as z34 } from "zod";
|
|
20607
|
+
|
|
20608
|
+
// ../theme-core/src/siteChromePlacement.ts
|
|
20609
|
+
var HEADER_POSITIONINGS = ["static", "sticky", "fixed"];
|
|
20610
|
+
function parseHeaderPositioning(value) {
|
|
20611
|
+
return isHeaderPositioning(value) ? value : "static";
|
|
20612
|
+
}
|
|
20613
|
+
function isHeaderPositioning(value) {
|
|
20614
|
+
return typeof value === "string" && HEADER_POSITIONINGS.includes(value);
|
|
20615
|
+
}
|
|
20616
|
+
function planSiteChromePlacement(positioning) {
|
|
20617
|
+
switch (positioning) {
|
|
20618
|
+
case "static":
|
|
20619
|
+
return {
|
|
20620
|
+
kind: "static",
|
|
20621
|
+
headerRootClassName: null,
|
|
20622
|
+
standaloneShellClassName: null
|
|
20623
|
+
};
|
|
20624
|
+
case "sticky":
|
|
20625
|
+
return {
|
|
20626
|
+
kind: "sticky",
|
|
20627
|
+
headerRootClassName: "rb-sticky rb-top-0",
|
|
20628
|
+
standaloneShellClassName: "sticky top-0 z-40 w-full"
|
|
20629
|
+
};
|
|
20630
|
+
case "fixed":
|
|
20631
|
+
return {
|
|
20632
|
+
kind: "fixed",
|
|
20633
|
+
headerRootClassName: "rb-fixed rb-top-0 rb-left-0 rb-right-0",
|
|
20634
|
+
standaloneShellClassName: "fixed left-0 right-0 top-0 z-40 w-full"
|
|
20635
|
+
};
|
|
20636
|
+
default:
|
|
20637
|
+
return assertNever(positioning);
|
|
20638
|
+
}
|
|
20639
|
+
}
|
|
20640
|
+
|
|
20641
|
+
// ../blocks/src/system/transforms/registry/layout.ts
|
|
20061
20642
|
var joinClasses4 = (parts) => parts.filter(
|
|
20062
20643
|
(part) => typeof part === "string" && part.trim().length > 0
|
|
20063
20644
|
).join(" ").replace(/\s+/g, " ").trim();
|
|
@@ -20173,7 +20754,8 @@ var headerRootClassTransform = {
|
|
|
20173
20754
|
...options
|
|
20174
20755
|
};
|
|
20175
20756
|
const content = asPartialObject(value) ?? {};
|
|
20176
|
-
const positioning =
|
|
20757
|
+
const positioning = parseHeaderPositioning(content.positioning);
|
|
20758
|
+
const placement = planSiteChromePlacement(positioning);
|
|
20177
20759
|
const shrinkOnScroll = Boolean(content.shrinkOnScroll);
|
|
20178
20760
|
const header = asPartialObject(value);
|
|
20179
20761
|
const visuals = resolveHeaderVisualStyles(header, context.theme);
|
|
@@ -20185,14 +20767,14 @@ var headerRootClassTransform = {
|
|
|
20185
20767
|
if (config.blur) classes.push(config.blur);
|
|
20186
20768
|
if (config.blurSupport) classes.push(config.blurSupport);
|
|
20187
20769
|
}
|
|
20188
|
-
if (
|
|
20770
|
+
if (placement.kind === "sticky") {
|
|
20189
20771
|
classes.push(
|
|
20190
20772
|
visuals.isTransparent ? config.stickyTransparent : config.sticky
|
|
20191
20773
|
);
|
|
20192
|
-
} else if (
|
|
20774
|
+
} else if (placement.kind === "fixed") {
|
|
20193
20775
|
classes.push(config.fixed);
|
|
20194
20776
|
}
|
|
20195
|
-
if (shrinkOnScroll &&
|
|
20777
|
+
if (shrinkOnScroll && placement.kind !== "static") {
|
|
20196
20778
|
classes.push(config.shrink);
|
|
20197
20779
|
}
|
|
20198
20780
|
const VALID_VARIANTS = [
|
|
@@ -20724,6 +21306,10 @@ function desktopOnlyDisplay(display) {
|
|
|
20724
21306
|
return `rb-hidden ${LARGE_DISPLAY_CLASSES[display]}`;
|
|
20725
21307
|
}
|
|
20726
21308
|
|
|
21309
|
+
// ../theme-core/src/siteChromeOverlayClearance.ts
|
|
21310
|
+
var SITE_CHROME_VISIBLE_HEADER_ATTR = "data-site-chrome-visible-header";
|
|
21311
|
+
var SITE_CHROME_VISIBLE_HEADER_SELECTOR = `[${SITE_CHROME_VISIBLE_HEADER_ATTR}="true"]`;
|
|
21312
|
+
|
|
20727
21313
|
// ../blocks/src/system/blocks/site-header.ts
|
|
20728
21314
|
var logoRow = link(
|
|
20729
21315
|
{
|
|
@@ -20996,6 +21582,7 @@ var transparentLayout = inline(
|
|
|
20996
21582
|
);
|
|
20997
21583
|
var floatingLayout = inline(
|
|
20998
21584
|
{
|
|
21585
|
+
[SITE_CHROME_VISIBLE_HEADER_ATTR]: "true",
|
|
20999
21586
|
className: bindProp("$root.theme.header.maxWidth", {
|
|
21000
21587
|
transforms: pipe(
|
|
21001
21588
|
tx("layout.maxWidthClass", {
|
|
@@ -21941,6 +22528,10 @@ var sectionHeading = stack(
|
|
|
21941
22528
|
when("content.title"),
|
|
21942
22529
|
bind("content.title")
|
|
21943
22530
|
),
|
|
22531
|
+
headingDecoration({
|
|
22532
|
+
family: "short-center-rule",
|
|
22533
|
+
placement: "under-centered-heading"
|
|
22534
|
+
}),
|
|
21944
22535
|
richText(
|
|
21945
22536
|
{
|
|
21946
22537
|
className: "rb-feature-cards-description rb-prose rb-mx-auto rb-max-w-none",
|
|
@@ -23122,8 +23713,8 @@ var eventSurfaceScopeValues = [
|
|
|
23122
23713
|
"custom"
|
|
23123
23714
|
];
|
|
23124
23715
|
var eventScheduleScopeValues = ["any", "recurring", "oneOff"];
|
|
23125
|
-
var
|
|
23126
|
-
var
|
|
23716
|
+
var unsafeAsEventCategoryId = (value) => value;
|
|
23717
|
+
var unsafeAsVenueId = (value) => value;
|
|
23127
23718
|
function normalizeEventBlockKind(value) {
|
|
23128
23719
|
return value === "courses" || value === "events" ? value : "all";
|
|
23129
23720
|
}
|
|
@@ -23149,10 +23740,10 @@ function normalizeEventCategoryIds(value) {
|
|
|
23149
23740
|
if (Array.isArray(value)) {
|
|
23150
23741
|
return normalizeIdList(
|
|
23151
23742
|
value.filter((entry) => typeof entry === "string")
|
|
23152
|
-
).map(
|
|
23743
|
+
).map(unsafeAsEventCategoryId);
|
|
23153
23744
|
}
|
|
23154
23745
|
if (typeof value === "string") {
|
|
23155
|
-
return normalizeIdList(value.split(",")).map(
|
|
23746
|
+
return normalizeIdList(value.split(",")).map(unsafeAsEventCategoryId);
|
|
23156
23747
|
}
|
|
23157
23748
|
return [];
|
|
23158
23749
|
}
|
|
@@ -23165,7 +23756,7 @@ function normalizeEventVenueId(value) {
|
|
|
23165
23756
|
return null;
|
|
23166
23757
|
}
|
|
23167
23758
|
const trimmed = value.trim();
|
|
23168
|
-
return trimmed ?
|
|
23759
|
+
return trimmed ? unsafeAsVenueId(trimmed) : null;
|
|
23169
23760
|
}
|
|
23170
23761
|
function normalizeEventStaffMemberId(value) {
|
|
23171
23762
|
if (typeof value !== "string") {
|
|
@@ -24364,7 +24955,7 @@ var COLUMN_CLASSES = {
|
|
|
24364
24955
|
};
|
|
24365
24956
|
function getContainerClass(layout, columns) {
|
|
24366
24957
|
if (layout === "compact") {
|
|
24367
|
-
return "event-listing-compact-container rb-flex rb-flex-col
|
|
24958
|
+
return "event-listing-compact-container rb-flex rb-flex-col";
|
|
24368
24959
|
}
|
|
24369
24960
|
if (layout === "stack") {
|
|
24370
24961
|
return "rb-flex rb-flex-col rb-gap-6";
|
|
@@ -27192,6 +27783,7 @@ import { z as z53 } from "zod";
|
|
|
27192
27783
|
var storedProductCartItemSchema = z53.object({
|
|
27193
27784
|
kind: z53.literal("product"),
|
|
27194
27785
|
productId: z53.string().min(1),
|
|
27786
|
+
productCategoryId: z53.string().min(1).optional().nullable(),
|
|
27195
27787
|
variantId: z53.string().min(1).optional().nullable(),
|
|
27196
27788
|
title: z53.string().min(1),
|
|
27197
27789
|
variantTitle: z53.string().optional().nullable(),
|
|
@@ -29696,6 +30288,10 @@ var scheduleTileTreatments = [
|
|
|
29696
30288
|
"quiet",
|
|
29697
30289
|
"brand-depth"
|
|
29698
30290
|
];
|
|
30291
|
+
var eventListTreatments = [
|
|
30292
|
+
"plain",
|
|
30293
|
+
"lined-panel"
|
|
30294
|
+
];
|
|
29699
30295
|
function scheduleDetailsCapable() {
|
|
29700
30296
|
return declareBlockDesignCapability({
|
|
29701
30297
|
sectionSurfaces: "supported",
|
|
@@ -29704,6 +30300,14 @@ function scheduleDetailsCapable() {
|
|
|
29704
30300
|
tileTreatments: scheduleTileTreatments
|
|
29705
30301
|
});
|
|
29706
30302
|
}
|
|
30303
|
+
function eventListCapable() {
|
|
30304
|
+
return declareBlockDesignCapability({
|
|
30305
|
+
sectionSurfaces: "supported",
|
|
30306
|
+
contentFrames: ["plain"],
|
|
30307
|
+
itemSurfaces: "unsupported",
|
|
30308
|
+
eventListTreatments
|
|
30309
|
+
});
|
|
30310
|
+
}
|
|
29707
30311
|
function defaultBoundaryBias(visualWeight) {
|
|
29708
30312
|
return visualWeight === "featured" || visualWeight === "immersive" ? "clear" : "soft";
|
|
29709
30313
|
}
|
|
@@ -29923,7 +30527,8 @@ var systemBlockDefinitionsRaw = [
|
|
|
29923
30527
|
flow: bodyFlow,
|
|
29924
30528
|
layoutProfiles: [
|
|
29925
30529
|
layoutProfile({ variantKey: "default", family: "stack", weight: "standard" }),
|
|
29926
|
-
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" })
|
|
30530
|
+
layoutProfile({ variantKey: "two-column", family: "split", weight: "standard" }),
|
|
30531
|
+
layoutProfile({ variantKey: "question-columns", family: "grid", weight: "standard" })
|
|
29927
30532
|
]
|
|
29928
30533
|
})),
|
|
29929
30534
|
withDesignCapability("block.site-header", siteHeaderBlockDefinition, declareNoBlockDesignCapability("site-chrome"), defineBlockDesignMetadata({
|
|
@@ -30017,11 +30622,11 @@ var systemBlockDefinitionsRaw = [
|
|
|
30017
30622
|
flow: offeringsFlow,
|
|
30018
30623
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "centered", weight: "featured" })]
|
|
30019
30624
|
})),
|
|
30020
|
-
withDesignCapability("block.event-listing", eventListingBlockDefinition,
|
|
30625
|
+
withDesignCapability("block.event-listing", eventListingBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
30021
30626
|
flow: offeringsFlow,
|
|
30022
30627
|
layoutProfiles: [layoutProfile({ variantKey: "default", family: "stack", weight: "standard" })]
|
|
30023
30628
|
})),
|
|
30024
|
-
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition,
|
|
30629
|
+
withDesignCapability("block.event-calendar", eventCalendarBlockDefinition, eventListCapable(), defineBlockDesignMetadata({
|
|
30025
30630
|
flow: offeringsFlow,
|
|
30026
30631
|
layoutProfiles: [
|
|
30027
30632
|
layoutProfile({ variantKey: "combined", family: "grid", weight: "standard" }),
|
|
@@ -31093,6 +31698,15 @@ ${root} {
|
|
|
31093
31698
|
`;
|
|
31094
31699
|
}
|
|
31095
31700
|
|
|
31701
|
+
// ../theme-core/src/runtime/themeCssVarNames.ts
|
|
31702
|
+
var THEME_RADIUS_CSS_VARS = {
|
|
31703
|
+
block: "--rb-block-radius",
|
|
31704
|
+
button: "--rb-button-radius",
|
|
31705
|
+
input: "--rb-input-radius",
|
|
31706
|
+
legacyCard: "--radius-card",
|
|
31707
|
+
legacyControl: "--radius-control"
|
|
31708
|
+
};
|
|
31709
|
+
|
|
31096
31710
|
// ../theme-core/src/blocks/vars/customer-portal.ts
|
|
31097
31711
|
function generateCustomerPortalVars({
|
|
31098
31712
|
themeId
|
|
@@ -31106,6 +31720,11 @@ ${root} {
|
|
|
31106
31720
|
--cp-muted: rgb(var(--tb-mutedText));
|
|
31107
31721
|
--cp-border: rgb(var(--tb-border));
|
|
31108
31722
|
--cp-shadow: var(--shadow-elev);
|
|
31723
|
+
--cp-primary: rgb(var(--tb-primary));
|
|
31724
|
+
--cp-primary-hover: rgb(var(--tb-primary-700, var(--tb-primary)));
|
|
31725
|
+
--cp-error: rgb(var(--tb-destructive));
|
|
31726
|
+
--cp-card-radius: var(${THEME_RADIUS_CSS_VARS.block}, var(${THEME_RADIUS_CSS_VARS.legacyCard}, 0.75rem));
|
|
31727
|
+
--cp-control-radius: var(${THEME_RADIUS_CSS_VARS.input}, var(${THEME_RADIUS_CSS_VARS.legacyControl}, 0.5rem));
|
|
31109
31728
|
|
|
31110
31729
|
/* Shared tab bar (underline style) */
|
|
31111
31730
|
--rb-tab-border-width: 1px;
|
|
@@ -31156,7 +31775,7 @@ ${root} {
|
|
|
31156
31775
|
--rb-modal-bg: var(--cp-card-bg);
|
|
31157
31776
|
--rb-modal-border: var(--cp-card-border);
|
|
31158
31777
|
--rb-modal-shadow: var(--shadow-lg, var(--shadow-elev));
|
|
31159
|
-
--rb-modal-radius: var(--
|
|
31778
|
+
--rb-modal-radius: var(--cp-card-radius);
|
|
31160
31779
|
--rb-modal-max-width: 560px;
|
|
31161
31780
|
|
|
31162
31781
|
/* Header */
|
|
@@ -32537,6 +33156,9 @@ import { jsx as jsx5 } from "react/jsx-runtime";
|
|
|
32537
33156
|
import * as React from "react";
|
|
32538
33157
|
import { Fragment, jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
32539
33158
|
|
|
33159
|
+
// ../theme-core/src/fonts/uploadFormat.ts
|
|
33160
|
+
var MAX_FONT_UPLOAD_BYTES = 5 * 1024 * 1024;
|
|
33161
|
+
|
|
32540
33162
|
// ../theme-core/src/runtime/buildThemeRuntimeFromBridge.ts
|
|
32541
33163
|
import { z as z60 } from "zod";
|
|
32542
33164
|
var themeBridgeConfigSchema = z60.object({
|
|
@@ -32619,10 +33241,16 @@ var dashboardConfigSchema = z61.object({
|
|
|
32619
33241
|
var fieldDefinitionInputSchema = unsafeRetypeZodSchema(fieldSchema);
|
|
32620
33242
|
var nodeDefinitionSchema = unsafeRetypeZodSchema(NodeSchema);
|
|
32621
33243
|
var sdkLoaderEndpointSchema = z61.enum(SUPPORTED_LOADER_ENDPOINTS);
|
|
33244
|
+
var loaderFallbackScalarSchema = z61.union([
|
|
33245
|
+
z61.string(),
|
|
33246
|
+
z61.number(),
|
|
33247
|
+
z61.boolean(),
|
|
33248
|
+
z61.null()
|
|
33249
|
+
]);
|
|
32622
33250
|
var loaderParamBindingSchema = z61.object({
|
|
32623
33251
|
$bind: z61.object({
|
|
32624
33252
|
from: z61.string().min(1, "Binding path is required"),
|
|
32625
|
-
fallback:
|
|
33253
|
+
fallback: loaderFallbackScalarSchema.optional()
|
|
32626
33254
|
})
|
|
32627
33255
|
});
|
|
32628
33256
|
var loaderParamValueSchema = z61.union([
|
|
@@ -32768,9 +33396,13 @@ var sdkBlockFieldOptionsMapSchema = z61.record(
|
|
|
32768
33396
|
var sdkContentTypeTemplateConfigSchema = z61.object({
|
|
32769
33397
|
blocks: z61.array(z61.unknown())
|
|
32770
33398
|
}).passthrough();
|
|
33399
|
+
var sdkContentTypeOrderingConfigSchema = z61.object({
|
|
33400
|
+
mode: z61.enum(["default", "manual"]).optional()
|
|
33401
|
+
}).optional();
|
|
32771
33402
|
var sdkContentTypeConfigSchema = z61.object({
|
|
32772
33403
|
key: z61.string().min(1),
|
|
32773
33404
|
fields: z61.array(z61.unknown()),
|
|
33405
|
+
ordering: sdkContentTypeOrderingConfigSchema,
|
|
32774
33406
|
template: sdkContentTypeTemplateConfigSchema.nullable().optional()
|
|
32775
33407
|
}).passthrough();
|
|
32776
33408
|
var sdkContentConfigSchema = z61.object({
|
|
@@ -32983,6 +33615,7 @@ var COURSE_ENROLLMENT_REFUND_FAILED_CODES = [
|
|
|
32983
33615
|
];
|
|
32984
33616
|
|
|
32985
33617
|
// ../api/src/bookingVerticals.ts
|
|
33618
|
+
import { z as z63 } from "zod";
|
|
32986
33619
|
var VERTICAL_IDS = [
|
|
32987
33620
|
"yoga_wellness",
|
|
32988
33621
|
"fitness_pt",
|
|
@@ -33061,6 +33694,132 @@ var VERTICAL_ID_SET = new Set(VERTICAL_IDS);
|
|
|
33061
33694
|
var VERTICAL_PRESET_ID_SET = new Set(
|
|
33062
33695
|
VERTICAL_BOOKING_PRESETS.map((presetDefinition) => presetDefinition.id)
|
|
33063
33696
|
);
|
|
33697
|
+
function parseVerticalId(value) {
|
|
33698
|
+
return typeof value === "string" && VERTICAL_ID_SET.has(value) ? value : null;
|
|
33699
|
+
}
|
|
33700
|
+
function parseVerticalPresetId(value) {
|
|
33701
|
+
return typeof value === "string" && VERTICAL_PRESET_ID_SET.has(value) ? value : null;
|
|
33702
|
+
}
|
|
33703
|
+
function getVerticalPresetDefinition(presetId) {
|
|
33704
|
+
const definition = VERTICAL_BOOKING_PRESETS.find((presetDefinition) => presetDefinition.id === presetId);
|
|
33705
|
+
if (!definition) {
|
|
33706
|
+
throw new Error(`Unhandled vertical preset id: ${presetId}`);
|
|
33707
|
+
}
|
|
33708
|
+
return definition;
|
|
33709
|
+
}
|
|
33710
|
+
function toNonEmptyVerticalPresetIds(presetIds) {
|
|
33711
|
+
const firstPresetId = presetIds[0];
|
|
33712
|
+
return firstPresetId ? [firstPresetId, ...presetIds.slice(1)] : null;
|
|
33713
|
+
}
|
|
33714
|
+
function createConfiguredSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
33715
|
+
return {
|
|
33716
|
+
verticalId,
|
|
33717
|
+
selectedPresetIds
|
|
33718
|
+
};
|
|
33719
|
+
}
|
|
33720
|
+
function createSiteVerticalBookingConfig(verticalId, selectedPresetIds) {
|
|
33721
|
+
const nonEmptyPresetIds = toNonEmptyVerticalPresetIds(selectedPresetIds);
|
|
33722
|
+
return nonEmptyPresetIds ? createConfiguredSiteVerticalBookingConfig(verticalId, nonEmptyPresetIds) : null;
|
|
33723
|
+
}
|
|
33724
|
+
function resolveSiteVerticalBookingConfig(rawConfig) {
|
|
33725
|
+
if (!rawConfig) {
|
|
33726
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
33727
|
+
}
|
|
33728
|
+
const verticalId = parseVerticalId(rawConfig.verticalId);
|
|
33729
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
33730
|
+
const selectedPresetIds = rawPresetIds.map(parseVerticalPresetId).filter((presetId) => Boolean(presetId));
|
|
33731
|
+
const config = {
|
|
33732
|
+
verticalId,
|
|
33733
|
+
selectedPresetIds
|
|
33734
|
+
};
|
|
33735
|
+
if (!verticalId && selectedPresetIds.length === 0) {
|
|
33736
|
+
return { kind: "unconfigured", config: DEFAULT_SITE_VERTICAL_BOOKING_CONFIG };
|
|
33737
|
+
}
|
|
33738
|
+
const issues = getSiteVerticalConfigIssues(rawConfig, config);
|
|
33739
|
+
if (issues.length > 0) {
|
|
33740
|
+
return { kind: "invalid", config, issues };
|
|
33741
|
+
}
|
|
33742
|
+
const configuredConfig = verticalId ? createSiteVerticalBookingConfig(verticalId, selectedPresetIds) : null;
|
|
33743
|
+
if (!configuredConfig) {
|
|
33744
|
+
return { kind: "invalid", config, issues: ["empty_selected_presets"] };
|
|
33745
|
+
}
|
|
33746
|
+
return {
|
|
33747
|
+
kind: "configured",
|
|
33748
|
+
config: configuredConfig,
|
|
33749
|
+
selectedPresets: configuredConfig.selectedPresetIds.map(getVerticalPresetDefinition)
|
|
33750
|
+
};
|
|
33751
|
+
}
|
|
33752
|
+
function getSiteVerticalConfigIssues(rawConfig, config) {
|
|
33753
|
+
const issues = /* @__PURE__ */ new Set();
|
|
33754
|
+
if (rawConfig.verticalId != null && !config.verticalId) {
|
|
33755
|
+
issues.add("unknown_vertical");
|
|
33756
|
+
}
|
|
33757
|
+
if (!config.verticalId && config.selectedPresetIds.length > 0) {
|
|
33758
|
+
issues.add("missing_vertical");
|
|
33759
|
+
}
|
|
33760
|
+
const rawPresetIds = Array.isArray(rawConfig.selectedPresetIds) ? rawConfig.selectedPresetIds : [];
|
|
33761
|
+
if (rawPresetIds.some((presetId) => parseVerticalPresetId(presetId) === null)) {
|
|
33762
|
+
issues.add("unknown_preset");
|
|
33763
|
+
}
|
|
33764
|
+
if (config.verticalId && config.selectedPresetIds.length === 0) {
|
|
33765
|
+
issues.add("empty_selected_presets");
|
|
33766
|
+
}
|
|
33767
|
+
const seenBehaviours = /* @__PURE__ */ new Set();
|
|
33768
|
+
for (const presetId of config.selectedPresetIds) {
|
|
33769
|
+
const presetDefinition = getVerticalPresetDefinition(presetId);
|
|
33770
|
+
if (config.verticalId && presetDefinition.verticalId !== config.verticalId) {
|
|
33771
|
+
issues.add("preset_vertical_mismatch");
|
|
33772
|
+
}
|
|
33773
|
+
if (presetDefinition.availability === "future") {
|
|
33774
|
+
issues.add("future_preset_selected");
|
|
33775
|
+
}
|
|
33776
|
+
if (seenBehaviours.has(presetDefinition.canonicalBehaviour)) {
|
|
33777
|
+
issues.add("duplicate_canonical_behaviour");
|
|
33778
|
+
}
|
|
33779
|
+
seenBehaviours.add(presetDefinition.canonicalBehaviour);
|
|
33780
|
+
}
|
|
33781
|
+
return [...issues];
|
|
33782
|
+
}
|
|
33783
|
+
var VerticalIdSchema = z63.string().trim().transform((value, ctx) => {
|
|
33784
|
+
const parsed = parseVerticalId(value);
|
|
33785
|
+
if (!parsed) {
|
|
33786
|
+
ctx.addIssue({
|
|
33787
|
+
code: z63.ZodIssueCode.custom,
|
|
33788
|
+
message: "Unknown booking vertical"
|
|
33789
|
+
});
|
|
33790
|
+
return z63.NEVER;
|
|
33791
|
+
}
|
|
33792
|
+
return parsed;
|
|
33793
|
+
});
|
|
33794
|
+
var VerticalPresetIdSchema = z63.string().trim().transform((value, ctx) => {
|
|
33795
|
+
const parsed = parseVerticalPresetId(value);
|
|
33796
|
+
if (!parsed) {
|
|
33797
|
+
ctx.addIssue({
|
|
33798
|
+
code: z63.ZodIssueCode.custom,
|
|
33799
|
+
message: "Unknown booking preset"
|
|
33800
|
+
});
|
|
33801
|
+
return z63.NEVER;
|
|
33802
|
+
}
|
|
33803
|
+
return parsed;
|
|
33804
|
+
});
|
|
33805
|
+
var BookingVerticalConfigSchema = z63.object({
|
|
33806
|
+
verticalId: VerticalIdSchema.nullable(),
|
|
33807
|
+
selectedPresetIds: z63.array(VerticalPresetIdSchema).max(20)
|
|
33808
|
+
}).transform((value, ctx) => {
|
|
33809
|
+
const resolved = resolveSiteVerticalBookingConfig(value);
|
|
33810
|
+
if (resolved.kind === "invalid") {
|
|
33811
|
+
ctx.addIssue({
|
|
33812
|
+
code: z63.ZodIssueCode.custom,
|
|
33813
|
+
message: `Invalid booking vertical config: ${resolved.issues.join(", ")}`
|
|
33814
|
+
});
|
|
33815
|
+
return z63.NEVER;
|
|
33816
|
+
}
|
|
33817
|
+
return resolved.config;
|
|
33818
|
+
});
|
|
33819
|
+
var DEFAULT_SITE_VERTICAL_BOOKING_CONFIG = {
|
|
33820
|
+
verticalId: null,
|
|
33821
|
+
selectedPresetIds: []
|
|
33822
|
+
};
|
|
33064
33823
|
function preset(id, verticalId, canonicalBehaviour, label, pluralLabel, description, availability = "onboarding") {
|
|
33065
33824
|
return {
|
|
33066
33825
|
id,
|
|
@@ -33080,51 +33839,51 @@ function isRecord3(value) {
|
|
|
33080
33839
|
}
|
|
33081
33840
|
|
|
33082
33841
|
// ../api/src/appointmentSetup.ts
|
|
33083
|
-
import { z as
|
|
33842
|
+
import { z as z64 } from "zod";
|
|
33084
33843
|
var APPOINTMENT_SETUP_MAX_MINUTES = 1440;
|
|
33085
|
-
var appointmentSetupRefSchema =
|
|
33086
|
-
|
|
33087
|
-
|
|
33844
|
+
var appointmentSetupRefSchema = z64.discriminatedUnion("kind", [
|
|
33845
|
+
z64.object({ kind: z64.literal("existing"), id: z64.string().min(1) }),
|
|
33846
|
+
z64.object({ kind: z64.literal("new"), draftId: z64.string().min(1) })
|
|
33088
33847
|
]);
|
|
33089
|
-
var appointmentSetupVenueChoiceSchema =
|
|
33090
|
-
|
|
33091
|
-
|
|
33092
|
-
|
|
33093
|
-
kind:
|
|
33094
|
-
draftId:
|
|
33095
|
-
title:
|
|
33096
|
-
description:
|
|
33097
|
-
timezone:
|
|
33098
|
-
addressJson:
|
|
33099
|
-
locationJson:
|
|
33848
|
+
var appointmentSetupVenueChoiceSchema = z64.discriminatedUnion("kind", [
|
|
33849
|
+
z64.object({ kind: z64.literal("none") }),
|
|
33850
|
+
z64.object({ kind: z64.literal("existing"), venueId: z64.string().min(1) }),
|
|
33851
|
+
z64.object({
|
|
33852
|
+
kind: z64.literal("create"),
|
|
33853
|
+
draftId: z64.string().min(1),
|
|
33854
|
+
title: z64.string().trim().min(1),
|
|
33855
|
+
description: z64.string().nullable(),
|
|
33856
|
+
timezone: z64.string().trim().min(1).nullable(),
|
|
33857
|
+
addressJson: z64.record(z64.string(), z64.unknown()),
|
|
33858
|
+
locationJson: z64.object({ lat: z64.number(), lng: z64.number() }).nullable()
|
|
33100
33859
|
})
|
|
33101
33860
|
]);
|
|
33102
|
-
var appointmentSetupPaymentDraftSchema =
|
|
33103
|
-
priceType:
|
|
33104
|
-
});
|
|
33105
|
-
var appointmentSetupServiceAssignmentDraftSchema =
|
|
33106
|
-
|
|
33107
|
-
|
|
33108
|
-
kind:
|
|
33109
|
-
resourceRefs:
|
|
33861
|
+
var appointmentSetupPaymentDraftSchema = z64.object({
|
|
33862
|
+
priceType: z64.union([z64.literal("free"), z64.literal("paid")])
|
|
33863
|
+
});
|
|
33864
|
+
var appointmentSetupServiceAssignmentDraftSchema = z64.discriminatedUnion("kind", [
|
|
33865
|
+
z64.object({ kind: z64.literal("all_practitioners") }),
|
|
33866
|
+
z64.object({
|
|
33867
|
+
kind: z64.literal("selected_practitioners"),
|
|
33868
|
+
resourceRefs: z64.array(appointmentSetupRefSchema)
|
|
33110
33869
|
})
|
|
33111
33870
|
]);
|
|
33112
|
-
var appointmentSetupServiceDraftSchema =
|
|
33871
|
+
var appointmentSetupServiceDraftSchema = z64.object({
|
|
33113
33872
|
ref: appointmentSetupRefSchema,
|
|
33114
|
-
title:
|
|
33115
|
-
description:
|
|
33116
|
-
durationMinutes:
|
|
33117
|
-
prepMinutes:
|
|
33118
|
-
cleanupMinutes:
|
|
33119
|
-
priceAmount:
|
|
33120
|
-
isActive:
|
|
33121
|
-
locationType:
|
|
33122
|
-
|
|
33123
|
-
|
|
33124
|
-
|
|
33873
|
+
title: z64.string().trim().min(1),
|
|
33874
|
+
description: z64.string().nullable(),
|
|
33875
|
+
durationMinutes: z64.number().int().positive().max(APPOINTMENT_SETUP_MAX_MINUTES),
|
|
33876
|
+
prepMinutes: z64.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
33877
|
+
cleanupMinutes: z64.number().int().nonnegative().max(APPOINTMENT_SETUP_MAX_MINUTES).default(0),
|
|
33878
|
+
priceAmount: z64.number().int().nonnegative().nullable(),
|
|
33879
|
+
isActive: z64.boolean(),
|
|
33880
|
+
locationType: z64.union([
|
|
33881
|
+
z64.literal("virtual"),
|
|
33882
|
+
z64.literal("in_person"),
|
|
33883
|
+
z64.literal("hybrid")
|
|
33125
33884
|
]),
|
|
33126
33885
|
venue: appointmentSetupVenueChoiceSchema,
|
|
33127
|
-
timezone:
|
|
33886
|
+
timezone: z64.string().trim().min(1).nullable(),
|
|
33128
33887
|
payment: appointmentSetupPaymentDraftSchema,
|
|
33129
33888
|
assignment: appointmentSetupServiceAssignmentDraftSchema
|
|
33130
33889
|
}).superRefine((service, ctx) => {
|
|
@@ -33143,49 +33902,49 @@ var appointmentSetupServiceDraftSchema = z63.object({
|
|
|
33143
33902
|
});
|
|
33144
33903
|
}
|
|
33145
33904
|
});
|
|
33146
|
-
var appointmentSetupPractitionerDraftSchema =
|
|
33905
|
+
var appointmentSetupPractitionerDraftSchema = z64.object({
|
|
33147
33906
|
ref: appointmentSetupRefSchema,
|
|
33148
|
-
displayName:
|
|
33149
|
-
bio:
|
|
33150
|
-
timezone:
|
|
33151
|
-
colorHex:
|
|
33152
|
-
});
|
|
33153
|
-
var appointmentSetupWeeklyWindowDraftSchema =
|
|
33154
|
-
weekday:
|
|
33155
|
-
startTime:
|
|
33156
|
-
endTime:
|
|
33157
|
-
});
|
|
33158
|
-
var appointmentSetupStartTimePolicyDraftSchema =
|
|
33159
|
-
|
|
33160
|
-
|
|
33161
|
-
kind:
|
|
33162
|
-
intervalMinutes:
|
|
33163
|
-
|
|
33164
|
-
|
|
33165
|
-
|
|
33166
|
-
|
|
33167
|
-
|
|
33168
|
-
|
|
33907
|
+
displayName: z64.string().trim().min(1),
|
|
33908
|
+
bio: z64.string().nullable(),
|
|
33909
|
+
timezone: z64.string().trim().min(1),
|
|
33910
|
+
colorHex: z64.string().nullable()
|
|
33911
|
+
});
|
|
33912
|
+
var appointmentSetupWeeklyWindowDraftSchema = z64.object({
|
|
33913
|
+
weekday: z64.number().int().min(0).max(6),
|
|
33914
|
+
startTime: z64.string(),
|
|
33915
|
+
endTime: z64.string()
|
|
33916
|
+
});
|
|
33917
|
+
var appointmentSetupStartTimePolicyDraftSchema = z64.discriminatedUnion("kind", [
|
|
33918
|
+
z64.object({ kind: z64.literal("automatic_spacing") }),
|
|
33919
|
+
z64.object({
|
|
33920
|
+
kind: z64.literal("regular_interval"),
|
|
33921
|
+
intervalMinutes: z64.union([
|
|
33922
|
+
z64.literal(10),
|
|
33923
|
+
z64.literal(15),
|
|
33924
|
+
z64.literal(20),
|
|
33925
|
+
z64.literal(30),
|
|
33926
|
+
z64.literal(45),
|
|
33927
|
+
z64.literal(60)
|
|
33169
33928
|
])
|
|
33170
33929
|
})
|
|
33171
33930
|
]);
|
|
33172
|
-
var appointmentSetupAvailabilityDraftSchema =
|
|
33173
|
-
kind:
|
|
33931
|
+
var appointmentSetupAvailabilityDraftSchema = z64.object({
|
|
33932
|
+
kind: z64.literal("weekly_windows"),
|
|
33174
33933
|
resourceRef: appointmentSetupRefSchema,
|
|
33175
33934
|
serviceRef: appointmentSetupRefSchema.nullable(),
|
|
33176
|
-
windows:
|
|
33935
|
+
windows: z64.array(appointmentSetupWeeklyWindowDraftSchema),
|
|
33177
33936
|
startTimePolicy: appointmentSetupStartTimePolicyDraftSchema.optional()
|
|
33178
33937
|
});
|
|
33179
33938
|
var APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX = 28 * 24 * 60;
|
|
33180
33939
|
var APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX = 10 * 365 * 24 * 60;
|
|
33181
|
-
var appointmentSetupBookingNoticeSchema =
|
|
33182
|
-
minLeadMinutes:
|
|
33183
|
-
maxBookingNoticeMinutes:
|
|
33184
|
-
});
|
|
33185
|
-
var applyAppointmentSetupRequestSchema =
|
|
33186
|
-
services:
|
|
33187
|
-
practitioners:
|
|
33188
|
-
availability:
|
|
33940
|
+
var appointmentSetupBookingNoticeSchema = z64.object({
|
|
33941
|
+
minLeadMinutes: z64.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MIN_LEAD_MINUTES_MAX),
|
|
33942
|
+
maxBookingNoticeMinutes: z64.number().int().nonnegative().max(APPOINTMENT_DEFAULT_MAX_BOOKING_NOTICE_MINUTES_MAX)
|
|
33943
|
+
});
|
|
33944
|
+
var applyAppointmentSetupRequestSchema = z64.object({
|
|
33945
|
+
services: z64.array(appointmentSetupServiceDraftSchema),
|
|
33946
|
+
practitioners: z64.array(appointmentSetupPractitionerDraftSchema),
|
|
33947
|
+
availability: z64.array(appointmentSetupAvailabilityDraftSchema),
|
|
33189
33948
|
bookingNotice: appointmentSetupBookingNoticeSchema
|
|
33190
33949
|
});
|
|
33191
33950
|
|
|
@@ -33218,24 +33977,24 @@ var STAFF_CANCELLATION_CONTEXT_CATEGORIES = [
|
|
|
33218
33977
|
];
|
|
33219
33978
|
|
|
33220
33979
|
// ../api/src/siteBanner.ts
|
|
33221
|
-
import { z as
|
|
33980
|
+
import { z as z65 } from "zod";
|
|
33222
33981
|
var SITE_BANNER_SCOPE_VALUES = ["homepage", "all-pages"];
|
|
33223
33982
|
var SITE_BANNER_TONE_VALUES = ["announcement", "promotion", "notice", "warning"];
|
|
33224
33983
|
var SITE_BANNER_MAX_TEXT_LENGTH = 320;
|
|
33225
33984
|
var SITE_BANNER_MAX_PARAGRAPHS = 2;
|
|
33226
|
-
var siteBannerScopeSchema =
|
|
33227
|
-
var siteBannerToneSchema =
|
|
33228
|
-
var siteBannerBodySchema =
|
|
33229
|
-
var siteBannerCtaSchema =
|
|
33230
|
-
label:
|
|
33985
|
+
var siteBannerScopeSchema = z65.enum(SITE_BANNER_SCOPE_VALUES);
|
|
33986
|
+
var siteBannerToneSchema = z65.enum(SITE_BANNER_TONE_VALUES);
|
|
33987
|
+
var siteBannerBodySchema = z65.unknown().transform(unwrapRichTextValue);
|
|
33988
|
+
var siteBannerCtaSchema = z65.object({
|
|
33989
|
+
label: z65.string().trim().min(1),
|
|
33231
33990
|
link: linkPayloadSchema
|
|
33232
33991
|
});
|
|
33233
|
-
var siteBannerSettingsSchema =
|
|
33234
|
-
|
|
33235
|
-
enabled:
|
|
33992
|
+
var siteBannerSettingsSchema = z65.discriminatedUnion("enabled", [
|
|
33993
|
+
z65.object({
|
|
33994
|
+
enabled: z65.literal(false)
|
|
33236
33995
|
}),
|
|
33237
|
-
|
|
33238
|
-
enabled:
|
|
33996
|
+
z65.object({
|
|
33997
|
+
enabled: z65.literal(true),
|
|
33239
33998
|
scope: siteBannerScopeSchema,
|
|
33240
33999
|
tone: siteBannerToneSchema,
|
|
33241
34000
|
body: siteBannerBodySchema,
|
|
@@ -33249,7 +34008,7 @@ var siteBannerSettingsInputSchema = siteBannerSettingsSchema.superRefine((value,
|
|
|
33249
34008
|
const analysis = analyzeSiteBannerBody(value.body);
|
|
33250
34009
|
for (const issue of analysis.issues) {
|
|
33251
34010
|
ctx.addIssue({
|
|
33252
|
-
code:
|
|
34011
|
+
code: z65.ZodIssueCode.custom,
|
|
33253
34012
|
path: ["body"],
|
|
33254
34013
|
message: siteBannerBodyIssueMessage(issue)
|
|
33255
34014
|
});
|
|
@@ -33517,76 +34276,109 @@ function isNavigationMenuValidationItem(value) {
|
|
|
33517
34276
|
return typeof value.label === "string";
|
|
33518
34277
|
}
|
|
33519
34278
|
|
|
34279
|
+
// ../api/src/navigation/dashboardSiteNav.ts
|
|
34280
|
+
var hiddenDemoSiteNavSurfaceIds = [
|
|
34281
|
+
"site.newsletter"
|
|
34282
|
+
];
|
|
34283
|
+
var hiddenDemoSiteNavIds = new Set(
|
|
34284
|
+
hiddenDemoSiteNavSurfaceIds
|
|
34285
|
+
);
|
|
34286
|
+
var websiteSurfaceIds = [
|
|
34287
|
+
"site.content",
|
|
34288
|
+
"site.footerBlocks",
|
|
34289
|
+
"site.navigation",
|
|
34290
|
+
"site.media",
|
|
34291
|
+
"site.style",
|
|
34292
|
+
"site.performance"
|
|
34293
|
+
];
|
|
34294
|
+
var websiteSurfaceIdSet = new Set(
|
|
34295
|
+
websiteSurfaceIds
|
|
34296
|
+
);
|
|
34297
|
+
|
|
34298
|
+
// ../api/src/navigation/dashboardSettingsNav.ts
|
|
34299
|
+
var hiddenDemoSettingsNavSurfaceIds = [
|
|
34300
|
+
"settings.features",
|
|
34301
|
+
"settings.domains",
|
|
34302
|
+
"settings.bookings",
|
|
34303
|
+
"settings.emails",
|
|
34304
|
+
"settings.team",
|
|
34305
|
+
"settings.billing",
|
|
34306
|
+
"settings.developer",
|
|
34307
|
+
"settings.apiKeys",
|
|
34308
|
+
"settings.backup"
|
|
34309
|
+
];
|
|
34310
|
+
var hiddenDemoSettingsNavIds = new Set(hiddenDemoSettingsNavSurfaceIds);
|
|
34311
|
+
|
|
33520
34312
|
// ../api/src/aiPlayground.ts
|
|
33521
|
-
import { z as
|
|
33522
|
-
var Rfc6902PatchOp =
|
|
34313
|
+
import { z as z66 } from "zod";
|
|
34314
|
+
var Rfc6902PatchOp = z66.discriminatedUnion("op", [
|
|
33523
34315
|
// Standard RFC-6902 operations
|
|
33524
|
-
|
|
33525
|
-
op:
|
|
33526
|
-
path:
|
|
33527
|
-
value:
|
|
34316
|
+
z66.object({
|
|
34317
|
+
op: z66.literal("add"),
|
|
34318
|
+
path: z66.string(),
|
|
34319
|
+
value: z66.unknown()
|
|
33528
34320
|
}),
|
|
33529
|
-
|
|
33530
|
-
op:
|
|
33531
|
-
path:
|
|
34321
|
+
z66.object({
|
|
34322
|
+
op: z66.literal("remove"),
|
|
34323
|
+
path: z66.string()
|
|
33532
34324
|
}),
|
|
33533
|
-
|
|
33534
|
-
op:
|
|
33535
|
-
path:
|
|
33536
|
-
value:
|
|
34325
|
+
z66.object({
|
|
34326
|
+
op: z66.literal("replace"),
|
|
34327
|
+
path: z66.string(),
|
|
34328
|
+
value: z66.unknown()
|
|
33537
34329
|
}),
|
|
33538
|
-
|
|
33539
|
-
op:
|
|
33540
|
-
from:
|
|
33541
|
-
path:
|
|
34330
|
+
z66.object({
|
|
34331
|
+
op: z66.literal("move"),
|
|
34332
|
+
from: z66.string(),
|
|
34333
|
+
path: z66.string()
|
|
33542
34334
|
}),
|
|
33543
|
-
|
|
33544
|
-
op:
|
|
33545
|
-
from:
|
|
33546
|
-
path:
|
|
34335
|
+
z66.object({
|
|
34336
|
+
op: z66.literal("copy"),
|
|
34337
|
+
from: z66.string(),
|
|
34338
|
+
path: z66.string()
|
|
33547
34339
|
}),
|
|
33548
34340
|
// Block-level operations (Phase 2)
|
|
33549
|
-
|
|
33550
|
-
op:
|
|
33551
|
-
blockKind:
|
|
33552
|
-
afterBlockId:
|
|
33553
|
-
content:
|
|
33554
|
-
rationale:
|
|
34341
|
+
z66.object({
|
|
34342
|
+
op: z66.literal("add_block"),
|
|
34343
|
+
blockKind: z66.string(),
|
|
34344
|
+
afterBlockId: z66.string().nullable(),
|
|
34345
|
+
content: z66.record(z66.string(), z66.unknown()),
|
|
34346
|
+
rationale: z66.string()
|
|
33555
34347
|
}),
|
|
33556
|
-
|
|
33557
|
-
op:
|
|
33558
|
-
blockId:
|
|
33559
|
-
rationale:
|
|
34348
|
+
z66.object({
|
|
34349
|
+
op: z66.literal("delete_block"),
|
|
34350
|
+
blockId: z66.string(),
|
|
34351
|
+
rationale: z66.string()
|
|
33560
34352
|
}),
|
|
33561
|
-
|
|
33562
|
-
op:
|
|
33563
|
-
blockId:
|
|
33564
|
-
afterBlockId:
|
|
33565
|
-
rationale:
|
|
34353
|
+
z66.object({
|
|
34354
|
+
op: z66.literal("reorder_block"),
|
|
34355
|
+
blockId: z66.string(),
|
|
34356
|
+
afterBlockId: z66.string().nullable(),
|
|
34357
|
+
rationale: z66.string()
|
|
33566
34358
|
})
|
|
33567
34359
|
]);
|
|
33568
|
-
var PlaygroundProposeRequest =
|
|
33569
|
-
request:
|
|
34360
|
+
var PlaygroundProposeRequest = z66.object({
|
|
34361
|
+
request: z66.string().min(1).max(2e3)
|
|
33570
34362
|
});
|
|
33571
|
-
var MultiPagePatchEnvelope =
|
|
33572
|
-
pageId:
|
|
33573
|
-
blockId:
|
|
34363
|
+
var MultiPagePatchEnvelope = z66.object({
|
|
34364
|
+
pageId: z66.string(),
|
|
34365
|
+
blockId: z66.string().optional(),
|
|
33574
34366
|
// Not present for page-level ops
|
|
33575
|
-
blockKind:
|
|
33576
|
-
blockPurpose:
|
|
33577
|
-
ops:
|
|
33578
|
-
rationale:
|
|
33579
|
-
currentContent:
|
|
34367
|
+
blockKind: z66.string().optional(),
|
|
34368
|
+
blockPurpose: z66.string().optional().nullable(),
|
|
34369
|
+
ops: z66.array(Rfc6902PatchOp),
|
|
34370
|
+
rationale: z66.string(),
|
|
34371
|
+
currentContent: z66.record(z66.string(), z66.unknown()).optional()
|
|
33580
34372
|
});
|
|
33581
|
-
var MultiPageUpdateResponse =
|
|
33582
|
-
patches:
|
|
33583
|
-
assistantMessage:
|
|
33584
|
-
pagesModified:
|
|
33585
|
-
toolCallsUsed:
|
|
34373
|
+
var MultiPageUpdateResponse = z66.object({
|
|
34374
|
+
patches: z66.array(MultiPagePatchEnvelope),
|
|
34375
|
+
assistantMessage: z66.string(),
|
|
34376
|
+
pagesModified: z66.number(),
|
|
34377
|
+
toolCallsUsed: z66.number()
|
|
33586
34378
|
});
|
|
33587
34379
|
|
|
33588
34380
|
// src/config/content-validation.ts
|
|
33589
|
-
import { z as
|
|
34381
|
+
import { z as z67 } from "zod";
|
|
33590
34382
|
|
|
33591
34383
|
// src/types/block-kinds.ts
|
|
33592
34384
|
var SYSTEM_BLOCK_KINDS = [
|
|
@@ -33740,32 +34532,36 @@ function describeInvalidBindingTransform(transform) {
|
|
|
33740
34532
|
}
|
|
33741
34533
|
|
|
33742
34534
|
// src/config/content-validation.ts
|
|
33743
|
-
var jsonDataSchema =
|
|
33744
|
-
var contentTypeKeySchema =
|
|
34535
|
+
var jsonDataSchema = z67.record(z67.string(), z67.any());
|
|
34536
|
+
var contentTypeKeySchema = z67.string().min(1).regex(
|
|
33745
34537
|
/^[a-z][a-z0-9-]*$/,
|
|
33746
34538
|
"Key must be lowercase, start with a letter, and contain only letters, numbers, and hyphens"
|
|
33747
34539
|
);
|
|
33748
|
-
var templateConfigSchemaForward =
|
|
33749
|
-
blocks:
|
|
33750
|
-
|
|
33751
|
-
identifier:
|
|
33752
|
-
kind:
|
|
33753
|
-
scope:
|
|
33754
|
-
bindings:
|
|
33755
|
-
content:
|
|
34540
|
+
var templateConfigSchemaForward = z67.object({
|
|
34541
|
+
blocks: z67.array(
|
|
34542
|
+
z67.object({
|
|
34543
|
+
identifier: z67.string().min(1),
|
|
34544
|
+
kind: z67.string(),
|
|
34545
|
+
scope: z67.enum(["entry", "template"]),
|
|
34546
|
+
bindings: z67.record(z67.string(), z67.any()).optional(),
|
|
34547
|
+
content: z67.record(z67.string(), z67.any()).optional()
|
|
33756
34548
|
})
|
|
33757
34549
|
)
|
|
33758
34550
|
}).optional();
|
|
33759
|
-
var
|
|
34551
|
+
var contentTypeOrderingSchema = z67.object({
|
|
34552
|
+
mode: z67.enum(["default", "manual"]).optional()
|
|
34553
|
+
}).optional();
|
|
34554
|
+
var contentTypeConfigSchema = z67.object({
|
|
33760
34555
|
key: contentTypeKeySchema,
|
|
33761
|
-
name:
|
|
33762
|
-
description:
|
|
33763
|
-
hasPages:
|
|
33764
|
-
routePattern:
|
|
34556
|
+
name: z67.string().min(1),
|
|
34557
|
+
description: z67.string().optional(),
|
|
34558
|
+
hasPages: z67.boolean(),
|
|
34559
|
+
routePattern: z67.string().optional(),
|
|
33765
34560
|
// Fields are validated as unknown[] here - deep field validation happens in @riverbankcms/blocks
|
|
33766
|
-
fields:
|
|
33767
|
-
titleField:
|
|
33768
|
-
|
|
34561
|
+
fields: z67.array(z67.any()).min(1, "At least one field is required"),
|
|
34562
|
+
titleField: z67.string().optional(),
|
|
34563
|
+
ordering: contentTypeOrderingSchema,
|
|
34564
|
+
isSingleton: z67.boolean().optional().default(false),
|
|
33769
34565
|
template: templateConfigSchemaForward
|
|
33770
34566
|
}).refine(
|
|
33771
34567
|
(data) => {
|
|
@@ -33787,7 +34583,7 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33787
34583
|
}
|
|
33788
34584
|
if (!data.routePattern) {
|
|
33789
34585
|
ctx.addIssue({
|
|
33790
|
-
code:
|
|
34586
|
+
code: z67.ZodIssueCode.custom,
|
|
33791
34587
|
path: ["routePattern"],
|
|
33792
34588
|
message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
|
|
33793
34589
|
});
|
|
@@ -33796,7 +34592,7 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33796
34592
|
const parseResult = safeParseRouteTemplate(data.routePattern);
|
|
33797
34593
|
if (!parseResult.success) {
|
|
33798
34594
|
ctx.addIssue({
|
|
33799
|
-
code:
|
|
34595
|
+
code: z67.ZodIssueCode.custom,
|
|
33800
34596
|
path: ["routePattern"],
|
|
33801
34597
|
message: describeRouteTemplateParseError(parseResult.error)
|
|
33802
34598
|
});
|
|
@@ -33804,44 +34600,44 @@ var contentTypeConfigSchema = z66.object({
|
|
|
33804
34600
|
}
|
|
33805
34601
|
if (!data.isSingleton && parseResult.routeTemplate.kind !== "slug-template") {
|
|
33806
34602
|
ctx.addIssue({
|
|
33807
|
-
code:
|
|
34603
|
+
code: z67.ZodIssueCode.custom,
|
|
33808
34604
|
path: ["routePattern"],
|
|
33809
34605
|
message: "routePattern is required when hasPages is true. Non-singleton types must include {slug} placeholder."
|
|
33810
34606
|
});
|
|
33811
34607
|
}
|
|
33812
34608
|
});
|
|
33813
|
-
var fieldBindingSchema =
|
|
33814
|
-
source:
|
|
33815
|
-
path:
|
|
34609
|
+
var fieldBindingSchema = z67.object({
|
|
34610
|
+
source: z67.literal("field"),
|
|
34611
|
+
path: z67.string().min(1, "Field path is required")
|
|
33816
34612
|
});
|
|
33817
|
-
var metaBindingSchema =
|
|
33818
|
-
source:
|
|
33819
|
-
path:
|
|
34613
|
+
var metaBindingSchema = z67.object({
|
|
34614
|
+
source: z67.literal("meta"),
|
|
34615
|
+
path: z67.enum(TEMPLATE_BINDING_META_PATHS, {
|
|
33820
34616
|
error: (issue) => describeInvalidTemplateBindingMetaPath(String(issue.input))
|
|
33821
34617
|
})
|
|
33822
34618
|
});
|
|
33823
|
-
var literalBindingSchema =
|
|
33824
|
-
source:
|
|
33825
|
-
value:
|
|
34619
|
+
var literalBindingSchema = z67.object({
|
|
34620
|
+
source: z67.literal("literal"),
|
|
34621
|
+
value: z67.unknown()
|
|
33826
34622
|
});
|
|
33827
|
-
var transformBindingSchema =
|
|
33828
|
-
source:
|
|
33829
|
-
path:
|
|
33830
|
-
transform:
|
|
34623
|
+
var transformBindingSchema = z67.object({
|
|
34624
|
+
source: z67.literal("transform"),
|
|
34625
|
+
path: z67.string().min(1, "Transform path is required"),
|
|
34626
|
+
transform: z67.enum(BINDING_TRANSFORM_VALUES, {
|
|
33831
34627
|
error: (issue) => describeInvalidBindingTransform(String(issue.input))
|
|
33832
34628
|
})
|
|
33833
34629
|
});
|
|
33834
|
-
var baseBindingSchema =
|
|
34630
|
+
var baseBindingSchema = z67.discriminatedUnion("source", [
|
|
33835
34631
|
fieldBindingSchema,
|
|
33836
34632
|
metaBindingSchema,
|
|
33837
34633
|
literalBindingSchema,
|
|
33838
34634
|
transformBindingSchema
|
|
33839
34635
|
]);
|
|
33840
|
-
var fallbackBindingSchema =
|
|
33841
|
-
source:
|
|
33842
|
-
sources:
|
|
34636
|
+
var fallbackBindingSchema = z67.object({
|
|
34637
|
+
source: z67.literal("fallback"),
|
|
34638
|
+
sources: z67.array(z67.lazy(() => bindingSourceSchema)).min(1, "Fallback must have at least one source")
|
|
33843
34639
|
});
|
|
33844
|
-
var bindingSourceSchema =
|
|
34640
|
+
var bindingSourceSchema = z67.union([
|
|
33845
34641
|
baseBindingSchema,
|
|
33846
34642
|
fallbackBindingSchema
|
|
33847
34643
|
]);
|
|
@@ -33855,12 +34651,12 @@ function isValidBlockKind(kind) {
|
|
|
33855
34651
|
return false;
|
|
33856
34652
|
}
|
|
33857
34653
|
var BLOCK_KIND_ERROR_MESSAGE = 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.myBlock")';
|
|
33858
|
-
var blockKindSchema =
|
|
33859
|
-
var templateBlockConfigSchema =
|
|
33860
|
-
identifier:
|
|
34654
|
+
var blockKindSchema = z67.string().refine(isValidBlockKind, { message: BLOCK_KIND_ERROR_MESSAGE });
|
|
34655
|
+
var templateBlockConfigSchema = z67.object({
|
|
34656
|
+
identifier: z67.string().min(1, "Block identifier is required"),
|
|
33861
34657
|
kind: blockKindSchema,
|
|
33862
|
-
scope:
|
|
33863
|
-
bindings:
|
|
34658
|
+
scope: z67.enum(["entry", "template"]),
|
|
34659
|
+
bindings: z67.record(z67.string(), bindingSourceSchema).optional(),
|
|
33864
34660
|
content: jsonDataSchema.optional()
|
|
33865
34661
|
}).refine(
|
|
33866
34662
|
(data) => {
|
|
@@ -33879,8 +34675,8 @@ var templateBlockConfigSchema = z66.object({
|
|
|
33879
34675
|
},
|
|
33880
34676
|
{ message: "Template-scoped blocks should define static content, not bindings" }
|
|
33881
34677
|
);
|
|
33882
|
-
var templateConfigSchema =
|
|
33883
|
-
blocks:
|
|
34678
|
+
var templateConfigSchema = z67.object({
|
|
34679
|
+
blocks: z67.array(templateBlockConfigSchema).min(1, "Template must have at least one block")
|
|
33884
34680
|
}).refine(
|
|
33885
34681
|
(data) => {
|
|
33886
34682
|
const identifiers = data.blocks.map((b) => b.identifier);
|
|
@@ -33889,77 +34685,77 @@ var templateConfigSchema = z66.object({
|
|
|
33889
34685
|
},
|
|
33890
34686
|
{ message: "Template block identifiers must be unique" }
|
|
33891
34687
|
);
|
|
33892
|
-
var blockConfigSchema =
|
|
34688
|
+
var blockConfigSchema = z67.object({
|
|
33893
34689
|
kind: blockKindSchema,
|
|
33894
34690
|
content: jsonDataSchema,
|
|
33895
|
-
orderIndex:
|
|
33896
|
-
});
|
|
33897
|
-
var pageConfigSchema =
|
|
33898
|
-
identifier:
|
|
33899
|
-
title:
|
|
33900
|
-
path:
|
|
33901
|
-
purpose:
|
|
33902
|
-
blocks:
|
|
33903
|
-
status:
|
|
33904
|
-
metaTitle:
|
|
33905
|
-
metaDescription:
|
|
33906
|
-
});
|
|
33907
|
-
var entryConfigSchema =
|
|
33908
|
-
identifier:
|
|
33909
|
-
contentType:
|
|
34691
|
+
orderIndex: z67.number().optional()
|
|
34692
|
+
});
|
|
34693
|
+
var pageConfigSchema = z67.object({
|
|
34694
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34695
|
+
title: z67.string().min(1, "Title is required"),
|
|
34696
|
+
path: z67.string().regex(/^\//, "Path must start with /"),
|
|
34697
|
+
purpose: z67.string().default("content"),
|
|
34698
|
+
blocks: z67.array(blockConfigSchema).optional(),
|
|
34699
|
+
status: z67.enum(["draft", "published"]).default("draft"),
|
|
34700
|
+
metaTitle: z67.string().optional(),
|
|
34701
|
+
metaDescription: z67.string().optional()
|
|
34702
|
+
});
|
|
34703
|
+
var entryConfigSchema = z67.object({
|
|
34704
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34705
|
+
contentType: z67.string().min(1, "Content type is required"),
|
|
33910
34706
|
data: jsonDataSchema,
|
|
33911
|
-
status:
|
|
33912
|
-
slug:
|
|
33913
|
-
summary:
|
|
34707
|
+
status: z67.enum(["draft", "published"]).default("draft"),
|
|
34708
|
+
slug: z67.string().optional(),
|
|
34709
|
+
summary: z67.string().optional(),
|
|
33914
34710
|
// Hard remove legacy config-only titles: titles must live in entry `data`.
|
|
33915
|
-
title:
|
|
34711
|
+
title: z67.any().optional().refine((value) => value === void 0, {
|
|
33916
34712
|
message: "Entry titles are now derived from entry data. Remove `title` and move it into `data` (e.g. `data.title`, or your configured `titleField`). Run `riverbankcms migrate entries` for guided migration."
|
|
33917
34713
|
}),
|
|
33918
|
-
metaTitle:
|
|
33919
|
-
metaDescription:
|
|
34714
|
+
metaTitle: z67.string().optional(),
|
|
34715
|
+
metaDescription: z67.string().optional()
|
|
33920
34716
|
});
|
|
33921
|
-
var dropdownLinkSchema =
|
|
33922
|
-
kind:
|
|
34717
|
+
var dropdownLinkSchema = z67.object({
|
|
34718
|
+
kind: z67.literal("dropdown")
|
|
33923
34719
|
});
|
|
33924
|
-
var navigationLinkSchema =
|
|
34720
|
+
var navigationLinkSchema = z67.discriminatedUnion("kind", [
|
|
33925
34721
|
...navigationLinkInputSchemaOptions,
|
|
33926
34722
|
dropdownLinkSchema
|
|
33927
34723
|
]);
|
|
33928
|
-
var baseNavigationItemSchema =
|
|
33929
|
-
label:
|
|
34724
|
+
var baseNavigationItemSchema = z67.object({
|
|
34725
|
+
label: z67.string().min(1, "Label is required"),
|
|
33930
34726
|
link: navigationLinkSchema,
|
|
33931
|
-
isCta:
|
|
34727
|
+
isCta: z67.boolean().optional()
|
|
33932
34728
|
});
|
|
33933
34729
|
var navigationItemConfigSchema = baseNavigationItemSchema.extend({
|
|
33934
|
-
children:
|
|
33935
|
-
});
|
|
33936
|
-
var navigationMenuConfigSchema =
|
|
33937
|
-
identifier:
|
|
33938
|
-
name:
|
|
33939
|
-
isPrimary:
|
|
33940
|
-
isFooter:
|
|
33941
|
-
items:
|
|
34730
|
+
children: z67.lazy(() => z67.array(navigationItemConfigSchema)).optional()
|
|
34731
|
+
});
|
|
34732
|
+
var navigationMenuConfigSchema = z67.object({
|
|
34733
|
+
identifier: z67.string().min(1, "Identifier is required"),
|
|
34734
|
+
name: z67.string().min(1, "Name is required"),
|
|
34735
|
+
isPrimary: z67.boolean().optional(),
|
|
34736
|
+
isFooter: z67.boolean().optional(),
|
|
34737
|
+
items: z67.array(navigationItemConfigSchema)
|
|
33942
34738
|
}).superRefine((menu, ctx) => {
|
|
33943
34739
|
const portalStats = collectPortalLinkStats(
|
|
33944
34740
|
menu.items
|
|
33945
34741
|
);
|
|
33946
34742
|
if (portalStats.count > 1) {
|
|
33947
34743
|
ctx.addIssue({
|
|
33948
|
-
code:
|
|
34744
|
+
code: z67.ZodIssueCode.custom,
|
|
33949
34745
|
message: "Only one portal link is allowed per navigation menu",
|
|
33950
34746
|
path: ["items"]
|
|
33951
34747
|
});
|
|
33952
34748
|
}
|
|
33953
34749
|
if (portalStats.nestedLabels.length > 0) {
|
|
33954
34750
|
ctx.addIssue({
|
|
33955
|
-
code:
|
|
34751
|
+
code: z67.ZodIssueCode.custom,
|
|
33956
34752
|
message: `Portal links must be root-level items: ${portalStats.nestedLabels.join(", ")}`,
|
|
33957
34753
|
path: ["items"]
|
|
33958
34754
|
});
|
|
33959
34755
|
}
|
|
33960
34756
|
if (portalStats.withChildrenLabels.length > 0) {
|
|
33961
34757
|
ctx.addIssue({
|
|
33962
|
-
code:
|
|
34758
|
+
code: z67.ZodIssueCode.custom,
|
|
33963
34759
|
message: `Portal links cannot contain child items: ${portalStats.withChildrenLabels.join(", ")}`,
|
|
33964
34760
|
path: ["items"]
|
|
33965
34761
|
});
|
|
@@ -33969,44 +34765,44 @@ var navigationMenuConfigSchema = z66.object({
|
|
|
33969
34765
|
);
|
|
33970
34766
|
if (cartStats.nestedLabels.length > 0) {
|
|
33971
34767
|
ctx.addIssue({
|
|
33972
|
-
code:
|
|
34768
|
+
code: z67.ZodIssueCode.custom,
|
|
33973
34769
|
message: `Cart links must be root-level items: ${cartStats.nestedLabels.join(", ")}`,
|
|
33974
34770
|
path: ["items"]
|
|
33975
34771
|
});
|
|
33976
34772
|
}
|
|
33977
34773
|
if (cartStats.withChildrenLabels.length > 0) {
|
|
33978
34774
|
ctx.addIssue({
|
|
33979
|
-
code:
|
|
34775
|
+
code: z67.ZodIssueCode.custom,
|
|
33980
34776
|
message: `Cart links cannot contain child items: ${cartStats.withChildrenLabels.join(", ")}`,
|
|
33981
34777
|
path: ["items"]
|
|
33982
34778
|
});
|
|
33983
34779
|
}
|
|
33984
34780
|
if (cartStats.ctaLabels.length > 0) {
|
|
33985
34781
|
ctx.addIssue({
|
|
33986
|
-
code:
|
|
34782
|
+
code: z67.ZodIssueCode.custom,
|
|
33987
34783
|
message: `Cart links cannot be marked as CTA: ${cartStats.ctaLabels.join(", ")}`,
|
|
33988
34784
|
path: ["items"]
|
|
33989
34785
|
});
|
|
33990
34786
|
}
|
|
33991
34787
|
if (cartStats.missingVisibleTextLabels.length > 0) {
|
|
33992
34788
|
ctx.addIssue({
|
|
33993
|
-
code:
|
|
34789
|
+
code: z67.ZodIssueCode.custom,
|
|
33994
34790
|
message: `Cart links with icon-with-label must provide a visible label: ${cartStats.missingVisibleTextLabels.join(", ")}`,
|
|
33995
34791
|
path: ["items"]
|
|
33996
34792
|
});
|
|
33997
34793
|
}
|
|
33998
34794
|
});
|
|
33999
|
-
var siteSettingsConfigSchema =
|
|
34000
|
-
homepagePath:
|
|
34001
|
-
siteTitle:
|
|
34002
|
-
siteDescription:
|
|
34003
|
-
defaultTemplates:
|
|
34795
|
+
var siteSettingsConfigSchema = z67.object({
|
|
34796
|
+
homepagePath: z67.string().optional(),
|
|
34797
|
+
siteTitle: z67.string().optional(),
|
|
34798
|
+
siteDescription: z67.string().optional(),
|
|
34799
|
+
defaultTemplates: z67.record(z67.string(), z67.string()).optional()
|
|
34004
34800
|
});
|
|
34005
|
-
var contentConfigBaseSchema =
|
|
34006
|
-
contentTypes:
|
|
34007
|
-
entries:
|
|
34008
|
-
pages:
|
|
34009
|
-
navigationMenus:
|
|
34801
|
+
var contentConfigBaseSchema = z67.object({
|
|
34802
|
+
contentTypes: z67.array(contentTypeConfigSchema).optional(),
|
|
34803
|
+
entries: z67.array(entryConfigSchema).optional(),
|
|
34804
|
+
pages: z67.array(pageConfigSchema).optional(),
|
|
34805
|
+
navigationMenus: z67.array(navigationMenuConfigSchema).optional(),
|
|
34010
34806
|
settings: siteSettingsConfigSchema.optional()
|
|
34011
34807
|
});
|
|
34012
34808
|
var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
@@ -34015,7 +34811,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34015
34811
|
const duplicateKeys = keys.filter((key, i) => keys.indexOf(key) !== i);
|
|
34016
34812
|
if (duplicateKeys.length > 0) {
|
|
34017
34813
|
ctx.addIssue({
|
|
34018
|
-
code:
|
|
34814
|
+
code: z67.ZodIssueCode.custom,
|
|
34019
34815
|
message: `Content type keys must be unique. Duplicates: ${duplicateKeys.join(", ")}`,
|
|
34020
34816
|
path: ["contentTypes"]
|
|
34021
34817
|
});
|
|
@@ -34026,7 +34822,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34026
34822
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34027
34823
|
if (duplicateIds.length > 0) {
|
|
34028
34824
|
ctx.addIssue({
|
|
34029
|
-
code:
|
|
34825
|
+
code: z67.ZodIssueCode.custom,
|
|
34030
34826
|
message: `Page identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34031
34827
|
path: ["pages"]
|
|
34032
34828
|
});
|
|
@@ -34035,7 +34831,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34035
34831
|
const duplicatePaths = paths.filter((path, i) => paths.indexOf(path) !== i);
|
|
34036
34832
|
if (duplicatePaths.length > 0) {
|
|
34037
34833
|
ctx.addIssue({
|
|
34038
|
-
code:
|
|
34834
|
+
code: z67.ZodIssueCode.custom,
|
|
34039
34835
|
message: `Page paths must be unique. Duplicates: ${duplicatePaths.join(", ")}`,
|
|
34040
34836
|
path: ["pages"]
|
|
34041
34837
|
});
|
|
@@ -34046,7 +34842,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34046
34842
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34047
34843
|
if (duplicateIds.length > 0) {
|
|
34048
34844
|
ctx.addIssue({
|
|
34049
|
-
code:
|
|
34845
|
+
code: z67.ZodIssueCode.custom,
|
|
34050
34846
|
message: `Entry identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34051
34847
|
path: ["entries"]
|
|
34052
34848
|
});
|
|
@@ -34057,7 +34853,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34057
34853
|
const duplicateIds = identifiers.filter((id, i) => identifiers.indexOf(id) !== i);
|
|
34058
34854
|
if (duplicateIds.length > 0) {
|
|
34059
34855
|
ctx.addIssue({
|
|
34060
|
-
code:
|
|
34856
|
+
code: z67.ZodIssueCode.custom,
|
|
34061
34857
|
message: `Navigation menu identifiers must be unique. Duplicates: ${duplicateIds.join(", ")}`,
|
|
34062
34858
|
path: ["navigationMenus"]
|
|
34063
34859
|
});
|
|
@@ -34071,7 +34867,7 @@ var contentConfigSchema = contentConfigBaseSchema.superRefine((data, ctx) => {
|
|
|
34071
34867
|
const entriesForType = data.entries.filter((e) => e.contentType === singletonKey);
|
|
34072
34868
|
if (entriesForType.length > 1) {
|
|
34073
34869
|
ctx.addIssue({
|
|
34074
|
-
code:
|
|
34870
|
+
code: z67.ZodIssueCode.custom,
|
|
34075
34871
|
message: `Singleton content type "${singletonKey}" cannot have more than one entry. Found ${entriesForType.length} entries.`,
|
|
34076
34872
|
path: ["entries"]
|
|
34077
34873
|
});
|
|
@@ -34184,18 +34980,18 @@ function validateLayout(layout) {
|
|
|
34184
34980
|
}
|
|
34185
34981
|
|
|
34186
34982
|
// src/config/dashboard-validation.ts
|
|
34187
|
-
import { z as
|
|
34188
|
-
var navIdListSchema2 =
|
|
34983
|
+
import { z as z68 } from "zod";
|
|
34984
|
+
var navIdListSchema2 = z68.preprocess((value) => {
|
|
34189
34985
|
if (!Array.isArray(value)) return void 0;
|
|
34190
34986
|
const filtered = value.filter((v) => typeof v === "string" && v.trim().length > 0);
|
|
34191
34987
|
return filtered.length > 0 ? filtered : void 0;
|
|
34192
|
-
},
|
|
34193
|
-
var dashboardNavVisibilityBaseSchema2 =
|
|
34194
|
-
mode:
|
|
34988
|
+
}, z68.array(z68.string()).max(200, "Maximum 200 nav IDs").optional());
|
|
34989
|
+
var dashboardNavVisibilityBaseSchema2 = z68.object({
|
|
34990
|
+
mode: z68.enum(["augment", "restrict"]).optional(),
|
|
34195
34991
|
allowIds: navIdListSchema2,
|
|
34196
34992
|
denyIds: navIdListSchema2
|
|
34197
34993
|
}).strip();
|
|
34198
|
-
var dashboardNavVisibilityRolesSchema2 =
|
|
34994
|
+
var dashboardNavVisibilityRolesSchema2 = z68.object({
|
|
34199
34995
|
administrator: dashboardNavVisibilityBaseSchema2.optional(),
|
|
34200
34996
|
editor: dashboardNavVisibilityBaseSchema2.optional(),
|
|
34201
34997
|
team_member: dashboardNavVisibilityBaseSchema2.optional()
|
|
@@ -34203,20 +34999,20 @@ var dashboardNavVisibilityRolesSchema2 = z67.object({
|
|
|
34203
34999
|
var dashboardNavVisibilitySchema2 = dashboardNavVisibilityBaseSchema2.extend({
|
|
34204
35000
|
roles: dashboardNavVisibilityRolesSchema2
|
|
34205
35001
|
}).strip();
|
|
34206
|
-
var dashboardNavigationConfigSchema2 =
|
|
35002
|
+
var dashboardNavigationConfigSchema2 = z68.object({
|
|
34207
35003
|
siteNav: dashboardNavVisibilitySchema2.optional(),
|
|
34208
35004
|
settingsNav: dashboardNavVisibilitySchema2.optional()
|
|
34209
35005
|
}).strip();
|
|
34210
|
-
var dashboardConfigSchema2 =
|
|
34211
|
-
previewEditingEnabled:
|
|
35006
|
+
var dashboardConfigSchema2 = z68.object({
|
|
35007
|
+
previewEditingEnabled: z68.boolean().optional(),
|
|
34212
35008
|
navigation: dashboardNavigationConfigSchema2.optional()
|
|
34213
35009
|
}).strip();
|
|
34214
35010
|
|
|
34215
35011
|
// src/zod/titleSourceSchema.ts
|
|
34216
|
-
import { z as
|
|
34217
|
-
var titleSourceValueSchema =
|
|
34218
|
-
|
|
34219
|
-
|
|
35012
|
+
import { z as z69 } from "zod";
|
|
35013
|
+
var titleSourceValueSchema = z69.union([
|
|
35014
|
+
z69.string().min(1),
|
|
35015
|
+
z69.array(z69.string().min(1)).min(1)
|
|
34220
35016
|
]);
|
|
34221
35017
|
|
|
34222
35018
|
// src/data/prefetchBlockData.ts
|
|
@@ -34235,11 +35031,11 @@ var SUPPORTED_LOADER_ENDPOINTS2 = [
|
|
|
34235
35031
|
];
|
|
34236
35032
|
|
|
34237
35033
|
// src/config/validation.ts
|
|
34238
|
-
var sdkThemePaletteSchema2 =
|
|
34239
|
-
var sdkThemeConfigSchema2 =
|
|
35034
|
+
var sdkThemePaletteSchema2 = z70.record(z70.string(), z70.string());
|
|
35035
|
+
var sdkThemeConfigSchema2 = z70.object({
|
|
34240
35036
|
palette: sdkThemePaletteSchema2
|
|
34241
35037
|
});
|
|
34242
|
-
var sdkSiteUrlSchema =
|
|
35038
|
+
var sdkSiteUrlSchema = z70.string().url("Must be a valid URL").refine((url) => {
|
|
34243
35039
|
try {
|
|
34244
35040
|
const parsed = new URL(url);
|
|
34245
35041
|
const isLocal = parsed.hostname === "localhost" || parsed.hostname.endsWith(".localhost") || parsed.hostname.endsWith(".local") || parsed.hostname.endsWith(".test");
|
|
@@ -34248,97 +35044,97 @@ var sdkSiteUrlSchema = z69.string().url("Must be a valid URL").refine((url) => {
|
|
|
34248
35044
|
return false;
|
|
34249
35045
|
}
|
|
34250
35046
|
}, { message: "Production URLs must use HTTPS" }).transform((url) => url.replace(/\/$/, ""));
|
|
34251
|
-
var sectionBackgroundSchema =
|
|
34252
|
-
id:
|
|
34253
|
-
label:
|
|
34254
|
-
token:
|
|
35047
|
+
var sectionBackgroundSchema = z70.object({
|
|
35048
|
+
id: z70.string(),
|
|
35049
|
+
label: z70.string(),
|
|
35050
|
+
token: z70.string()
|
|
34255
35051
|
// Reference to theme palette token
|
|
34256
35052
|
});
|
|
34257
|
-
var sectionSpacingSchema =
|
|
34258
|
-
var containerMaxWidthSchema =
|
|
34259
|
-
var containerAlignmentSchema =
|
|
34260
|
-
var sectionOptionsSchema =
|
|
34261
|
-
backgroundColor:
|
|
34262
|
-
backgroundImage:
|
|
34263
|
-
backgroundGradient:
|
|
34264
|
-
spacing:
|
|
34265
|
-
|
|
34266
|
-
|
|
35053
|
+
var sectionSpacingSchema = z70.enum(["compact", "default", "spacious"]);
|
|
35054
|
+
var containerMaxWidthSchema = z70.enum(["narrow", "default", "wide", "full"]);
|
|
35055
|
+
var containerAlignmentSchema = z70.enum(["left", "center", "right"]);
|
|
35056
|
+
var sectionOptionsSchema = z70.object({
|
|
35057
|
+
backgroundColor: z70.boolean().optional(),
|
|
35058
|
+
backgroundImage: z70.boolean().optional(),
|
|
35059
|
+
backgroundGradient: z70.boolean().optional(),
|
|
35060
|
+
spacing: z70.union([
|
|
35061
|
+
z70.array(sectionSpacingSchema),
|
|
35062
|
+
z70.boolean()
|
|
34267
35063
|
]).optional(),
|
|
34268
|
-
textColor:
|
|
35064
|
+
textColor: z70.boolean().optional()
|
|
34269
35065
|
}).optional();
|
|
34270
|
-
var containerOptionsSchema =
|
|
34271
|
-
maxWidth:
|
|
34272
|
-
|
|
34273
|
-
|
|
35066
|
+
var containerOptionsSchema = z70.object({
|
|
35067
|
+
maxWidth: z70.union([
|
|
35068
|
+
z70.array(containerMaxWidthSchema),
|
|
35069
|
+
z70.boolean()
|
|
34274
35070
|
]).optional(),
|
|
34275
|
-
alignment:
|
|
34276
|
-
|
|
34277
|
-
|
|
35071
|
+
alignment: z70.union([
|
|
35072
|
+
z70.array(containerAlignmentSchema),
|
|
35073
|
+
z70.boolean()
|
|
34278
35074
|
]).optional()
|
|
34279
35075
|
}).optional();
|
|
34280
|
-
var siteStyleConfigSchema =
|
|
34281
|
-
sectionBackgrounds:
|
|
35076
|
+
var siteStyleConfigSchema = z70.object({
|
|
35077
|
+
sectionBackgrounds: z70.array(sectionBackgroundSchema).optional(),
|
|
34282
35078
|
sectionOptions: sectionOptionsSchema,
|
|
34283
35079
|
containerOptions: containerOptionsSchema
|
|
34284
35080
|
}).optional();
|
|
34285
|
-
var sdkLoaderEndpointSchema2 =
|
|
35081
|
+
var sdkLoaderEndpointSchema2 = z70.enum(SUPPORTED_LOADER_ENDPOINTS2);
|
|
34286
35082
|
var allowedTransformIds = new Set(builtinTransformDefinitions.map((transform) => transform.id));
|
|
34287
|
-
var loaderTransformStepSchema =
|
|
34288
|
-
id:
|
|
35083
|
+
var loaderTransformStepSchema = z70.object({
|
|
35084
|
+
id: z70.string().refine((id) => allowedTransformIds.has(id), {
|
|
34289
35085
|
message: "Unknown transform id"
|
|
34290
35086
|
}),
|
|
34291
|
-
options:
|
|
35087
|
+
options: z70.record(z70.string(), z70.unknown()).optional()
|
|
34292
35088
|
});
|
|
34293
|
-
var loaderParamBindingSchema2 =
|
|
34294
|
-
$bind:
|
|
34295
|
-
from:
|
|
35089
|
+
var loaderParamBindingSchema2 = z70.object({
|
|
35090
|
+
$bind: z70.object({
|
|
35091
|
+
from: z70.string().min(1, "Binding path is required"),
|
|
34296
35092
|
// Loader params are ultimately string-normalized for query strings, so fallbacks should
|
|
34297
35093
|
// stay scalar. Use transforms (e.g. `value.jsonArray`) when you need to serialize
|
|
34298
35094
|
// more complex values into a string.
|
|
34299
|
-
fallback:
|
|
34300
|
-
transforms:
|
|
34301
|
-
pick:
|
|
34302
|
-
coerce:
|
|
35095
|
+
fallback: loaderFallbackScalarSchema.optional(),
|
|
35096
|
+
transforms: z70.array(loaderTransformStepSchema).default([]),
|
|
35097
|
+
pick: z70.enum(["value", "collection", "context"]).default("value"),
|
|
35098
|
+
coerce: z70.enum(["number", "boolean", "string"]).optional()
|
|
34303
35099
|
})
|
|
34304
35100
|
});
|
|
34305
|
-
var loaderParamValueSchema2 =
|
|
34306
|
-
|
|
34307
|
-
|
|
34308
|
-
|
|
35101
|
+
var loaderParamValueSchema2 = z70.union([
|
|
35102
|
+
z70.string(),
|
|
35103
|
+
z70.number(),
|
|
35104
|
+
z70.boolean(),
|
|
34309
35105
|
loaderParamBindingSchema2
|
|
34310
35106
|
]);
|
|
34311
|
-
var loaderWhenValueSchema =
|
|
34312
|
-
|
|
35107
|
+
var loaderWhenValueSchema = z70.union([
|
|
35108
|
+
z70.boolean(),
|
|
34313
35109
|
loaderParamBindingSchema2
|
|
34314
35110
|
]);
|
|
34315
|
-
var sdkConfigLoaderSchema2 =
|
|
35111
|
+
var sdkConfigLoaderSchema2 = z70.object({
|
|
34316
35112
|
endpoint: sdkLoaderEndpointSchema2,
|
|
34317
|
-
params:
|
|
34318
|
-
mode:
|
|
35113
|
+
params: z70.record(z70.string(), loaderParamValueSchema2),
|
|
35114
|
+
mode: z70.enum(["server", "client"]).default("server"),
|
|
34319
35115
|
when: loaderWhenValueSchema.optional()
|
|
34320
35116
|
});
|
|
34321
|
-
var sdkDataLoadersSchema2 =
|
|
35117
|
+
var sdkDataLoadersSchema2 = z70.record(z70.string(), sdkConfigLoaderSchema2).refine(
|
|
34322
35118
|
(loaders) => Object.keys(loaders).length <= 5,
|
|
34323
35119
|
{ message: "Maximum 5 data loaders per block" }
|
|
34324
35120
|
).optional();
|
|
34325
|
-
var fieldSelectOptionSchema =
|
|
34326
|
-
value:
|
|
34327
|
-
label:
|
|
35121
|
+
var fieldSelectOptionSchema = z70.object({
|
|
35122
|
+
value: z70.string().min(1, "Option value is required"),
|
|
35123
|
+
label: z70.string().min(1, "Option label is required")
|
|
34328
35124
|
});
|
|
34329
|
-
var blockFieldConfigSchema =
|
|
34330
|
-
options:
|
|
35125
|
+
var blockFieldConfigSchema = z70.object({
|
|
35126
|
+
options: z70.array(fieldSelectOptionSchema).min(1, "At least one option is required").optional()
|
|
34331
35127
|
});
|
|
34332
|
-
var blockFieldOptionsSchema =
|
|
34333
|
-
|
|
35128
|
+
var blockFieldOptionsSchema = z70.record(
|
|
35129
|
+
z70.string().regex(/^(block\.|custom\.)[a-z][a-z0-9-]*$/, {
|
|
34334
35130
|
message: "Block ID must be 'block.*' or 'custom.*' format"
|
|
34335
35131
|
}),
|
|
34336
|
-
|
|
34337
|
-
|
|
35132
|
+
z70.record(
|
|
35133
|
+
z70.string().min(1, "Field ID is required"),
|
|
34338
35134
|
blockFieldConfigSchema
|
|
34339
35135
|
)
|
|
34340
35136
|
).optional();
|
|
34341
|
-
var blockFieldExtensionSchema =
|
|
35137
|
+
var blockFieldExtensionSchema = z70.object({
|
|
34342
35138
|
fields: fieldSchema.array().min(1, "At least one field is required")
|
|
34343
35139
|
}).refine(
|
|
34344
35140
|
(data) => {
|
|
@@ -34352,10 +35148,10 @@ var blockFieldExtensionSchema = z69.object({
|
|
|
34352
35148
|
message: "Required fields must have a defaultValue to support existing blocks"
|
|
34353
35149
|
}
|
|
34354
35150
|
);
|
|
34355
|
-
var blockFieldExtensionsMapSchema =
|
|
35151
|
+
var blockFieldExtensionsMapSchema = z70.record(
|
|
34356
35152
|
// System blocks are kebab-case: block.body-text, block.event-calendar, ...
|
|
34357
35153
|
// Enforce: lowercase alphanumerics with single hyphens (no trailing hyphen, no consecutive hyphens).
|
|
34358
|
-
|
|
35154
|
+
z70.string().regex(/^block\.[a-z][a-z0-9]*(?:-[a-z0-9]+)*$/, {
|
|
34359
35155
|
message: "Block ID must be 'block.*' format (system blocks only)"
|
|
34360
35156
|
}),
|
|
34361
35157
|
blockFieldExtensionSchema
|
|
@@ -34371,7 +35167,7 @@ var blockFieldExtensionsMapSchema = z69.record(
|
|
|
34371
35167
|
(field) => field.id === collision.fieldId
|
|
34372
35168
|
);
|
|
34373
35169
|
ctx.addIssue({
|
|
34374
|
-
code:
|
|
35170
|
+
code: z70.ZodIssueCode.custom,
|
|
34375
35171
|
message: collision.message,
|
|
34376
35172
|
path: [
|
|
34377
35173
|
APPOINTMENT_BOOKING_BLOCK_ID,
|
|
@@ -34437,24 +35233,24 @@ function validateFieldIdConflicts(blockFieldExtensions) {
|
|
|
34437
35233
|
}
|
|
34438
35234
|
return conflicts;
|
|
34439
35235
|
}
|
|
34440
|
-
var syncConfigSchema =
|
|
34441
|
-
existingEntries:
|
|
35236
|
+
var syncConfigSchema = z70.object({
|
|
35237
|
+
existingEntries: z70.enum(["skip", "update"]).optional()
|
|
34442
35238
|
}).optional();
|
|
34443
|
-
var deployConfigSchema =
|
|
34444
|
-
verifyCommand:
|
|
34445
|
-
prebuildOutput:
|
|
35239
|
+
var deployConfigSchema = z70.object({
|
|
35240
|
+
verifyCommand: z70.string().optional(),
|
|
35241
|
+
prebuildOutput: z70.string().optional()
|
|
34446
35242
|
}).optional();
|
|
34447
|
-
var sdkCustomBlockSchema =
|
|
35243
|
+
var sdkCustomBlockSchema = z70.object({
|
|
34448
35244
|
// Block ID must start with 'custom.'
|
|
34449
|
-
id:
|
|
35245
|
+
id: z70.string().min(8).regex(/^custom\.[a-z][a-z0-9-]*$/, {
|
|
34450
35246
|
message: "Block ID must start with 'custom.' followed by lowercase letters, numbers, or hyphens"
|
|
34451
35247
|
}),
|
|
34452
|
-
title:
|
|
35248
|
+
title: z70.string().min(1, "Title is required"),
|
|
34453
35249
|
titleSource: titleSourceValueSchema.optional(),
|
|
34454
|
-
description:
|
|
35250
|
+
description: z70.string().optional(),
|
|
34455
35251
|
category: blockCategoryEnum,
|
|
34456
|
-
icon:
|
|
34457
|
-
tags:
|
|
35252
|
+
icon: z70.string().optional(),
|
|
35253
|
+
tags: z70.array(z70.string()).optional(),
|
|
34458
35254
|
// Reuse the exact field schema from @riverbankcms/blocks - all field types supported
|
|
34459
35255
|
fields: fieldSchema.array().min(1, "Custom blocks must have at least one field"),
|
|
34460
35256
|
// Data loaders for CMS endpoints
|
|
@@ -34462,14 +35258,14 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34462
35258
|
// Optional declarative layout - when present, block can render without React override
|
|
34463
35259
|
layout: NodeSchema.optional(),
|
|
34464
35260
|
// Optional variants system (preferred when a block has multiple structural layouts)
|
|
34465
|
-
variants:
|
|
34466
|
-
defaultVariant:
|
|
34467
|
-
variantOptions:
|
|
34468
|
-
|
|
34469
|
-
|
|
34470
|
-
label:
|
|
34471
|
-
description:
|
|
34472
|
-
icon:
|
|
35261
|
+
variants: z70.record(z70.string().min(1), NodeSchema).optional(),
|
|
35262
|
+
defaultVariant: z70.string().min(1).optional(),
|
|
35263
|
+
variantOptions: z70.record(
|
|
35264
|
+
z70.string().min(1),
|
|
35265
|
+
z70.object({
|
|
35266
|
+
label: z70.string().min(1).optional(),
|
|
35267
|
+
description: z70.string().min(1).optional(),
|
|
35268
|
+
icon: z70.string().min(1).optional()
|
|
34473
35269
|
})
|
|
34474
35270
|
).optional()
|
|
34475
35271
|
}).superRefine((data, ctx) => {
|
|
@@ -34480,7 +35276,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34480
35276
|
const exists = fields3.some((field) => field.id === source);
|
|
34481
35277
|
if (!exists) {
|
|
34482
35278
|
ctx.addIssue({
|
|
34483
|
-
code:
|
|
35279
|
+
code: z70.ZodIssueCode.custom,
|
|
34484
35280
|
message: `titleSource must reference a valid field ID (got "${source}")`,
|
|
34485
35281
|
path: Array.isArray(data.titleSource) ? ["titleSource", index] : ["titleSource"]
|
|
34486
35282
|
});
|
|
@@ -34489,7 +35285,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34489
35285
|
}
|
|
34490
35286
|
if (data.layout && data.variants) {
|
|
34491
35287
|
ctx.addIssue({
|
|
34492
|
-
code:
|
|
35288
|
+
code: z70.ZodIssueCode.custom,
|
|
34493
35289
|
message: "Custom block must define either `layout` or `variants`, not both",
|
|
34494
35290
|
path: ["variants"]
|
|
34495
35291
|
});
|
|
@@ -34499,7 +35295,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34499
35295
|
if (!result.valid) {
|
|
34500
35296
|
for (const error of result.errors) {
|
|
34501
35297
|
ctx.addIssue({
|
|
34502
|
-
code:
|
|
35298
|
+
code: z70.ZodIssueCode.custom,
|
|
34503
35299
|
message: error.message,
|
|
34504
35300
|
path: ["layout"]
|
|
34505
35301
|
});
|
|
@@ -34510,14 +35306,14 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34510
35306
|
const keys = Object.keys(data.variants);
|
|
34511
35307
|
if (keys.length === 0) {
|
|
34512
35308
|
ctx.addIssue({
|
|
34513
|
-
code:
|
|
35309
|
+
code: z70.ZodIssueCode.custom,
|
|
34514
35310
|
message: "`variants` must contain at least one variant key",
|
|
34515
35311
|
path: ["variants"]
|
|
34516
35312
|
});
|
|
34517
35313
|
}
|
|
34518
35314
|
if (data.defaultVariant && !Object.prototype.hasOwnProperty.call(data.variants, data.defaultVariant)) {
|
|
34519
35315
|
ctx.addIssue({
|
|
34520
|
-
code:
|
|
35316
|
+
code: z70.ZodIssueCode.custom,
|
|
34521
35317
|
message: "`defaultVariant` must be a key present in `variants`",
|
|
34522
35318
|
path: ["defaultVariant"]
|
|
34523
35319
|
});
|
|
@@ -34527,7 +35323,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34527
35323
|
if (!result.valid) {
|
|
34528
35324
|
for (const error of result.errors) {
|
|
34529
35325
|
ctx.addIssue({
|
|
34530
|
-
code:
|
|
35326
|
+
code: z70.ZodIssueCode.custom,
|
|
34531
35327
|
message: `${key}: ${error.message}`,
|
|
34532
35328
|
path: ["variants", key]
|
|
34533
35329
|
});
|
|
@@ -34538,7 +35334,7 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34538
35334
|
for (const key of Object.keys(data.variantOptions)) {
|
|
34539
35335
|
if (!Object.prototype.hasOwnProperty.call(data.variants, key)) {
|
|
34540
35336
|
ctx.addIssue({
|
|
34541
|
-
code:
|
|
35337
|
+
code: z70.ZodIssueCode.custom,
|
|
34542
35338
|
message: "`variantOptions` key must exist in `variants`",
|
|
34543
35339
|
path: ["variantOptions", key]
|
|
34544
35340
|
});
|
|
@@ -34547,58 +35343,58 @@ var sdkCustomBlockSchema = z69.object({
|
|
|
34547
35343
|
}
|
|
34548
35344
|
}
|
|
34549
35345
|
});
|
|
34550
|
-
var themeSourceSchema =
|
|
34551
|
-
var activeThemeSchema =
|
|
35346
|
+
var themeSourceSchema = z70.enum(["local", "cms"]).optional();
|
|
35347
|
+
var activeThemeSchema = z70.string().regex(/^[a-z0-9][a-z0-9-_]*$/, {
|
|
34552
35348
|
message: "Theme name must be lowercase alphanumeric with hyphens/underscores"
|
|
34553
35349
|
}).max(64, "Theme name too long").optional();
|
|
34554
35350
|
function isValidConfigBlockKind(kind) {
|
|
34555
35351
|
if (getBlockDefinition(kind)) return true;
|
|
34556
35352
|
return /^custom\.[a-z][a-z0-9-]*$/.test(kind);
|
|
34557
35353
|
}
|
|
34558
|
-
var layoutBlockKindSchema =
|
|
35354
|
+
var layoutBlockKindSchema = z70.string().refine(isValidConfigBlockKind, {
|
|
34559
35355
|
message: 'Block kind must be a system block (e.g., "block.hero") or a custom block (e.g., "custom.my-block")'
|
|
34560
35356
|
});
|
|
34561
|
-
var layoutFooterBlockSchema =
|
|
34562
|
-
id:
|
|
35357
|
+
var layoutFooterBlockSchema = z70.object({
|
|
35358
|
+
id: z70.string().min(1).optional(),
|
|
34563
35359
|
kind: layoutBlockKindSchema,
|
|
34564
35360
|
// Allow omitted content for blocks that rely on defaults.
|
|
34565
|
-
content:
|
|
35361
|
+
content: z70.record(z70.string(), z70.unknown()).optional()
|
|
34566
35362
|
}).strict();
|
|
34567
|
-
var layoutConfigSchema =
|
|
34568
|
-
footerBlocks:
|
|
35363
|
+
var layoutConfigSchema = z70.object({
|
|
35364
|
+
footerBlocks: z70.array(layoutFooterBlockSchema).optional()
|
|
34569
35365
|
}).strict();
|
|
34570
|
-
var sdkWorkflowIdSchema2 =
|
|
35366
|
+
var sdkWorkflowIdSchema2 = z70.string().min(1).max(SDK_WORKFLOW_ID_MAX_LENGTH).regex(SDK_WORKFLOW_ID_PATTERN, {
|
|
34571
35367
|
message: "Workflow ID must start with a lowercase letter and use lowercase letters, numbers, dots, underscores, or hyphens"
|
|
34572
35368
|
});
|
|
34573
|
-
var sdkWorkflowEndpointSchema2 =
|
|
34574
|
-
var sdkWorkflowTriggerSchema2 =
|
|
34575
|
-
|
|
35369
|
+
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 "/"' });
|
|
35370
|
+
var sdkWorkflowTriggerSchema2 = z70.discriminatedUnion("type", [
|
|
35371
|
+
z70.object({ type: z70.literal("manual") }).strict()
|
|
34576
35372
|
]);
|
|
34577
|
-
var sdkWorkflowConfirmationSchema2 =
|
|
34578
|
-
title:
|
|
34579
|
-
body:
|
|
35373
|
+
var sdkWorkflowConfirmationSchema2 = z70.object({
|
|
35374
|
+
title: z70.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_TITLE_MAX_LENGTH),
|
|
35375
|
+
body: z70.string().trim().min(1).max(SDK_WORKFLOW_CONFIRMATION_BODY_MAX_LENGTH).optional()
|
|
34580
35376
|
}).strict();
|
|
34581
|
-
var sdkWorkflowConfigSchema2 =
|
|
35377
|
+
var sdkWorkflowConfigSchema2 = z70.object({
|
|
34582
35378
|
id: sdkWorkflowIdSchema2,
|
|
34583
|
-
title:
|
|
34584
|
-
description:
|
|
34585
|
-
contentType:
|
|
35379
|
+
title: z70.string().trim().min(1).max(SDK_WORKFLOW_TITLE_MAX_LENGTH),
|
|
35380
|
+
description: z70.string().trim().min(1).max(SDK_WORKFLOW_DESCRIPTION_MAX_LENGTH).optional(),
|
|
35381
|
+
contentType: z70.string().trim().min(1).max(SDK_WORKFLOW_CONTENT_TYPE_MAX_LENGTH),
|
|
34586
35382
|
endpoint: sdkWorkflowEndpointSchema2,
|
|
34587
|
-
triggers:
|
|
35383
|
+
triggers: z70.array(sdkWorkflowTriggerSchema2).min(1).max(SDK_WORKFLOW_TRIGGER_MAX_COUNT),
|
|
34588
35384
|
confirmation: sdkWorkflowConfirmationSchema2.optional()
|
|
34589
35385
|
}).strict();
|
|
34590
|
-
var sdkWorkflowsSchema2 =
|
|
35386
|
+
var sdkWorkflowsSchema2 = z70.array(sdkWorkflowConfigSchema2).max(SDK_WORKFLOW_MAX_COUNT, "Maximum 50 workflows per site").refine((workflows) => {
|
|
34591
35387
|
const ids = workflows.map((workflow) => workflow.id);
|
|
34592
35388
|
return ids.length === new Set(ids).size;
|
|
34593
35389
|
}, { message: "Workflow IDs must be unique" }).optional();
|
|
34594
|
-
var riverbankSiteConfigSchema =
|
|
34595
|
-
siteId:
|
|
35390
|
+
var riverbankSiteConfigSchema = z70.object({
|
|
35391
|
+
siteId: z70.string().uuid(),
|
|
34596
35392
|
previewUrl: sdkSiteUrlSchema.optional(),
|
|
34597
35393
|
liveUrl: sdkSiteUrlSchema.optional(),
|
|
34598
35394
|
theme: sdkThemeConfigSchema2.optional(),
|
|
34599
35395
|
styles: siteStyleConfigSchema,
|
|
34600
35396
|
layout: layoutConfigSchema.optional(),
|
|
34601
|
-
customBlocks:
|
|
35397
|
+
customBlocks: z70.array(sdkCustomBlockSchema).max(100, "Maximum 100 custom blocks per site").refine(
|
|
34602
35398
|
// Ensure unique block IDs
|
|
34603
35399
|
(blocks) => {
|
|
34604
35400
|
const ids = blocks.map((b) => b.id);
|
|
@@ -34611,7 +35407,7 @@ var riverbankSiteConfigSchema = z69.object({
|
|
|
34611
35407
|
workflows: sdkWorkflowsSchema2,
|
|
34612
35408
|
content: contentConfigSchema.optional(),
|
|
34613
35409
|
// CLI-related configuration (Phase 4)
|
|
34614
|
-
contentDir:
|
|
35410
|
+
contentDir: z70.string().optional(),
|
|
34615
35411
|
sync: syncConfigSchema,
|
|
34616
35412
|
deploy: deployConfigSchema,
|
|
34617
35413
|
// Theme sync configuration (Phase 5)
|