@riverbankcms/sdk 0.78.2 → 0.80.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +80 -0
- package/dist/PreviewEditorSidebar-QZG37QIF.mjs +2655 -0
- package/dist/{PreviewEditorUI-CS5P4N3P.mjs → PreviewEditorUI-AXIKSMZA.mjs} +27 -4
- package/dist/SdkPreviewModeRuntime-XE5M4UKM.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +56 -0
- package/dist/_dts/api/src/endpoints.d.ts +79 -0
- package/dist/_dts/api/src/index.d.ts +6 -4
- package/dist/_dts/api/src/media.d.ts +8 -1
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +1 -1
- package/dist/_dts/api/src/navigation/dashboardSiteNav.d.ts +8 -8
- package/dist/_dts/api/src/navigation/identity.d.ts +59 -0
- package/dist/_dts/api/src/navigation.d.ts +2 -0
- package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +1 -0
- package/dist/_dts/api/src/siteIcons.d.ts +128 -0
- package/dist/_dts/api/src/siteInfrastructure.d.ts +124 -0
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +16 -0
- package/dist/_dts/api/src/siteOnboarding.d.ts +13 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +17 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +6 -1
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/api/src/webhooks.d.ts +239 -0
- package/dist/_dts/block-form/src/client/index.d.ts +2 -0
- package/dist/_dts/block-form/src/index.d.ts +2 -0
- package/dist/_dts/block-form/src/utils/evaluateVisibility.d.ts +2 -1
- package/dist/_dts/blocks/src/client/header.d.ts +1 -1
- package/dist/_dts/blocks/src/client.d.ts +12 -12
- package/dist/_dts/blocks/src/index.d.ts +5 -1
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/events/event-listing.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/event-spotlight.d.ts +2 -1
- package/dist/_dts/blocks/src/system/blocks/events/shared/types.d.ts +4 -1
- package/dist/_dts/blocks/src/system/blocks/faq.d.ts +294 -289
- package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +57 -0
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/gifting.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/location-map.d.ts +1 -1
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +22 -22
- package/dist/_dts/blocks/src/system/blocks/product-detail.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/product-list.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/shop.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +13 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +179 -0
- package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +4 -2
- package/dist/_dts/blocks/src/system/fragments/library/faqHeading.d.ts +1 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +10 -0
- package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +3 -1
- package/dist/_dts/blocks/src/system/icons/ids.d.ts +13 -0
- package/dist/_dts/blocks/src/system/icons/index.d.ts +6 -0
- package/dist/_dts/blocks/src/system/icons/presets.d.ts +4 -0
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +18 -0
- package/dist/_dts/blocks/src/system/icons/semantic.d.ts +239 -0
- package/dist/_dts/blocks/src/system/icons/value.d.ts +94 -0
- package/dist/_dts/blocks/src/system/index.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +4 -1
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +23 -0
- package/dist/_dts/blocks/src/system/node/fragments/headingDecoration.d.ts +1 -4
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/components/registry.client.d.ts +7 -7
- package/dist/_dts/blocks/src/system/runtime/components/runtime-backed-blocks.d.ts +3 -3
- package/dist/_dts/blocks/src/system/runtime/header/enhanceHeaderSection.d.ts +10 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.interactive.d.ts +5 -5
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventListing.server.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/EventSpotlight.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventCard.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventDetailModal.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/EventModals.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/feature-card-icon.d.ts +13 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/header-section.client.d.ts +2 -2
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +9 -0
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +14 -1
- package/dist/_dts/content-model/src/contentManifest.d.ts +3 -1
- package/dist/_dts/core/src/branded.d.ts +6 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +200 -3
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +8 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +8 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +8 -2
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +17 -0
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +42 -0
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +7 -1
- package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -0
- package/dist/_dts/editor-blocks/src/index.d.ts +2 -0
- package/dist/_dts/editor-blocks/src/widgets/icon-picker/IconPickerField.d.ts +1 -1
- package/dist/_dts/media-core/src/fileDomain.d.ts +8 -1
- package/dist/_dts/media-editor/src/MediaEditor.d.ts +3 -2
- package/dist/_dts/media-react/src/components/MediaLibrary.d.ts +2 -1
- package/dist/_dts/media-react/src/components/MediaPickerMini.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/blocks/BlockToolbar.d.ts +5 -1
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeActions.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/blocks/previewCustomizeControlPlan.d.ts +24 -0
- package/dist/_dts/preview-next/src/client/blocks/useBlockCustomizeControls.d.ts +34 -0
- package/dist/_dts/preview-next/src/client/preview/PageBlockEditorPanel.d.ts +2 -5
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +8 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewBlockCustomizeSelectionContext.d.ts +20 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewOpenEditorButton.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/SelectedBlockCustomizePanel.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeEditorDraftPatch.d.ts +13 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -0
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeRuntimePatch.d.ts +2 -0
- package/dist/_dts/preview-next/src/client/preview/storeTypes.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/widgets/widgetOverrides.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/webhooks.d.ts +44 -0
- package/dist/_dts/sdk/src/cli/navigationIdentity.d.ts +11 -0
- package/dist/_dts/sdk/src/cli/site-commands/navigationCommands.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/sync/diff.d.ts +9 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +58 -0
- package/dist/_dts/sdk/src/client/management/webhooks.d.ts +3 -0
- package/dist/_dts/sdk/src/config/field-definitions.d.ts +3 -1
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +24 -4
- package/dist/_dts/sdk/src/next/index.d.ts +1 -1
- package/dist/_dts/sdk/src/next/revalidate.d.ts +26 -5
- package/dist/_dts/sdk/src/next/static-params.d.ts +28 -3
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +5 -1
- package/dist/_dts/sdk/src/public-api/runtime.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/index.d.ts +1 -1
- package/dist/_dts/sdk/src/webhooks/verify.d.ts +6 -102
- package/dist/_dts/site-commands/src/commands.d.ts +3 -0
- package/dist/_dts/theme-core/src/accordions/siteStyleDefaults.d.ts +220 -0
- package/dist/_dts/theme-core/src/accordions/types.d.ts +45 -2
- package/dist/_dts/theme-core/src/blockOverrides.d.ts +8 -0
- package/dist/_dts/theme-core/src/blocks/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/blocks/vars/testimonials.d.ts +4 -1
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/cards/core.d.ts +20 -0
- package/dist/_dts/theme-core/src/cards/generateDefaultCardSystem.d.ts +6 -3
- package/dist/_dts/theme-core/src/cards/siteStyleDefaults.d.ts +105 -0
- package/dist/_dts/theme-core/src/cards/types.d.ts +177 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +159 -21
- package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
- package/dist/_dts/theme-core/src/palette/variants/soft-natural.d.ts +16 -0
- package/dist/_dts/theme-core/src/palette/variants/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +451 -57
- package/dist/_dts/theme-core/src/site-styles/appearancePresetCatalog.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/appearancePresetTypes.d.ts +2 -3
- package/dist/_dts/theme-core/src/site-styles/blockAppearancePresets.d.ts +86 -17
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +135 -3
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/footerLooks.d.ts +20 -1
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +8 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +286 -6
- package/dist/_dts/theme-core/src/site-styles/index.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/logoBranding.d.ts +193 -0
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -12
- package/dist/_dts/theme-core/src/site-styles/rawStyleFields.d.ts +2 -0
- package/dist/_dts/theme-core/src/site-styles/runtimeCompiler.d.ts +10 -7
- package/dist/_dts/theme-core/src/site-styles/siteStyleThemeCompiler.d.ts +11 -0
- package/dist/_dts/theme-core/src/site-styles/sourceCatalogs.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/styleTags.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/testimonialQuotePresets.d.ts +15 -0
- package/dist/_dts/theme-core/src/site-styles/tokenRecipes.d.ts +1 -1
- package/dist/_dts/theme-core/src/site-styles/types.d.ts +7 -29
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
- package/dist/_dts/ui/src/combobox.d.ts +1 -0
- package/dist/{PreviewEditorSidebar-4DXLYX2V.mjs → chunk-5NZGBSJF.mjs} +2215 -2566
- package/dist/{chunk-RGTOD4AJ.mjs → chunk-7PCYG6YV.mjs} +621 -108
- package/dist/{chunk-CR5HKAGU.mjs → chunk-BBLZSQEY.mjs} +79 -0
- package/dist/{chunk-MCRQMPET.mjs → chunk-GYXKAUFV.mjs} +4500 -912
- package/dist/{chunk-6HYXHRAI.mjs → chunk-HTB4BMKD.mjs} +267 -49
- package/dist/{chunk-OKMBEAXY.mjs → chunk-MPBNEVPB.mjs} +1 -1
- package/dist/cli/index.mjs +3255 -702
- package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +150 -0
- package/dist/client/{accordion-PLYNJIIM.mjs → accordion-QFZMNB7O.mjs} +1 -1
- package/dist/client/{bookingForm-BXAP6AO7.mjs → bookingForm-NCIXFWIG.mjs} +3 -3
- package/dist/client/bookings.mjs +1246 -323
- package/dist/client/{carousel-TRBXDHGF.mjs → carousel-EO4BJMWD.mjs} +2 -2
- package/dist/client/{cart-Z7H3HJRS.mjs → cart-FTYCLYUW.mjs} +5 -5
- package/dist/client/{checkout-WAFCUBIX.mjs → checkout-NFGLVCOX.mjs} +5 -5
- package/dist/client/{chunk-CWGTG37I.mjs → chunk-4W66ALYT.mjs} +1 -1
- package/dist/client/{chunk-JRDUHZCT.mjs → chunk-6GVVWSPU.mjs} +4 -4
- package/dist/client/{chunk-75OUS5MT.mjs → chunk-IWFZSQNZ.mjs} +1 -1
- package/dist/client/{chunk-JGXPTEI2.mjs → chunk-PUOELU4O.mjs} +95 -8
- package/dist/client/{chunk-FUXW6VW2.mjs → chunk-PYRBIURC.mjs} +4 -4
- package/dist/client/{chunk-ZI3LLBPZ.mjs → chunk-T6UIP6UZ.mjs} +1 -1
- package/dist/client/{chunk-DNRGY432.mjs → chunk-VDS5YFLX.mjs} +1 -1
- package/dist/client/{chunk-UVQEJJTN.mjs → chunk-Y37KDO7P.mjs} +1 -1
- package/dist/client/client.mjs +24277 -20796
- package/dist/client/{courseRegistration-AHFQHWIJ.mjs → courseRegistration-2EORROPS.mjs} +3 -3
- package/dist/client/{eventCalendar-LDXTV5R7.mjs → eventCalendar-WZI4VL6N.mjs} +5 -5
- package/dist/client/{eventCombined-A4JGTNJO.mjs → eventCombined-QCB2TCNL.mjs} +5 -5
- package/dist/client/{eventDetails-4YXTZ7EG.mjs → eventDetails-TFTATAPH.mjs} +5 -5
- package/dist/client/{eventListing-P72TPFFM.mjs → eventListing-A2CQEHEQ.mjs} +5 -5
- package/dist/client/{eventRegistration-LSYJHGMT.mjs → eventRegistration-OELPVLUY.mjs} +5 -5
- package/dist/client/{form-AOPYOKOW.mjs → form-NTIFD6WQ.mjs} +1 -1
- package/dist/client/{headerSection-5TFYDFVQ.mjs → headerSection-7TBNKCLA.mjs} +65 -24
- package/dist/client/hooks.mjs +3687 -2024
- package/dist/client/{locationMap-QSZ3ZVAZ.mjs → locationMap-LRLB5A3H.mjs} +1 -1
- package/dist/client/{newsletterForm-KTRHZY52.mjs → newsletterForm-XI52RZSN.mjs} +1 -1
- package/dist/client/{productDetail-N4E775RG.mjs → productDetail-GSNKBFLY.mjs} +5 -5
- package/dist/client/{productList-UGUQ2S45.mjs → productList-BGCGT4KZ.mjs} +5 -5
- package/dist/client/rendering/client.mjs +5274 -3030
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +6271 -2790
- package/dist/client/{shop-VHSZEEQ2.mjs → shop-RQHUCLNY.mjs} +5 -5
- package/dist/preview-next/before-render.mjs +79 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +79 -0
- package/dist/{sdk-runtime-WHPJEF5G.mjs → sdk-runtime-A4LHT2RS.mjs} +6 -6
- package/dist/server/components.mjs +6215 -3057
- package/dist/server/config-validation.mjs +3858 -2194
- package/dist/server/config.mjs +3858 -2194
- package/dist/server/data.mjs +3687 -2024
- package/dist/server/index.mjs +88 -1
- package/dist/server/next/revalidate.mjs +229 -34
- package/dist/server/next.mjs +6295 -3036
- package/dist/server/page-converter.mjs +3055 -1883
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +6220 -3062
- package/dist/server/rendering.mjs +6233 -3075
- package/dist/server/routing.mjs +4251 -2137
- package/dist/server/server.mjs +3705 -2042
- package/dist/server/theme-bridge.mjs +1617 -329
- package/dist/server/theme.mjs +411 -221
- package/dist/server/webhooks.mjs +129 -25
- package/dist/styles/index.css +355 -33
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +0 -8
- package/dist/chunk-4QEGTLK6.mjs +0 -1175
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* require importing internal blocks package types.
|
|
6
6
|
*/
|
|
7
7
|
import type { LinkValue, Media, TipTapNode } from './content';
|
|
8
|
-
import type { EventCategoryId, VenueId } from '../../../core/src/index';
|
|
8
|
+
import type { Brand, EventCategoryId, VenueId } from '../../../core/src/index';
|
|
9
9
|
type UnknownRecord = Record<string, unknown>;
|
|
10
10
|
type ImageMedia = Omit<Media, 'type'> & {
|
|
11
11
|
type: 'image';
|
|
@@ -53,6 +53,20 @@ export type ContainerStylesContent = {
|
|
|
53
53
|
fullWidth?: boolean | null;
|
|
54
54
|
} | null;
|
|
55
55
|
export type CtaIconName = 'ArrowRight' | 'ArrowLeft' | 'ChevronRight' | 'ChevronLeft' | 'ChevronUp' | 'ChevronDown' | 'ExternalLink' | 'Download' | 'Upload' | 'Mail' | 'Phone' | 'Play' | 'ShoppingCart' | 'Calendar' | 'MapPin' | 'Info' | 'Plus' | 'Minus' | 'Check' | 'X';
|
|
56
|
+
export type SemanticIconId = 'protection-trust' | 'confidentiality' | 'care-support' | 'partnership' | 'warmth' | 'community' | 'personal-guidance' | 'conversation' | 'friendly-welcome' | 'insight-learning' | 'natural-wellbeing' | 'growth' | 'gentle-care' | 'special-touch' | 'ideas' | 'direction' | 'focus' | 'quality' | 'highlight' | 'verified-quality' | 'learning' | 'training' | 'programmes-dates' | 'place' | 'products' | 'packages' | 'time' | 'practical-service' | 'at-home' | 'worldwide' | 'professional-service';
|
|
57
|
+
export type BlockIconValue = {
|
|
58
|
+
kind: 'none';
|
|
59
|
+
} | {
|
|
60
|
+
kind: 'semantic';
|
|
61
|
+
iconId: SemanticIconId;
|
|
62
|
+
} | {
|
|
63
|
+
kind: 'generated';
|
|
64
|
+
setId: Brand<string, 'GeneratedIconSetId'>;
|
|
65
|
+
assetId: Brand<string, 'GeneratedIconAssetId'>;
|
|
66
|
+
semanticFallbackIconId: SemanticIconId;
|
|
67
|
+
styleGuideVersionId: Brand<string, 'SiteIconStyleGuideVersionId'>;
|
|
68
|
+
};
|
|
69
|
+
export type FeatureCardIconTreatment = 'plain' | 'soft-badge' | 'utility-badge';
|
|
56
70
|
export type RichTextDoc = {
|
|
57
71
|
type: 'doc';
|
|
58
72
|
content?: Array<{
|
|
@@ -203,6 +217,9 @@ export type DisplayMode = 'combined' | 'month' | 'week' | 'list' | 'timetable';
|
|
|
203
217
|
export type FilterAutoShow = 'auto' | 'always' | 'never';
|
|
204
218
|
export type CalendarTabViews = 'both' | 'month' | 'week';
|
|
205
219
|
export type ButtonVariant = 'primary' | 'secondary' | 'outline' | 'link';
|
|
220
|
+
export type CardVariantRole = 'default' | 'alternative';
|
|
221
|
+
export type LegacyCardVariantRoleAlias = 'variant1' | 'variant2';
|
|
222
|
+
export type EventCardVariantInput = CardVariantRole | LegacyCardVariantRoleAlias;
|
|
206
223
|
export type EventBlockKind = 'all' | 'courses' | 'events';
|
|
207
224
|
export type EventSurfacePreset = 'class' | 'workshop' | 'retreat' | 'performance';
|
|
208
225
|
export type EventSurfaceScope = 'all' | 'regularClassSchedule' | 'specialDatedEvents' | 'custom';
|
|
@@ -256,7 +273,7 @@ export type EventListingContent = {
|
|
|
256
273
|
paginationMode?: 'loadMore' | 'seeAllLink' | null;
|
|
257
274
|
seeAllUrl?: string | null;
|
|
258
275
|
loadMoreText?: string | null;
|
|
259
|
-
cardVariant?:
|
|
276
|
+
cardVariant?: EventCardVariantInput | null;
|
|
260
277
|
buttonVariant?: ButtonVariant | null;
|
|
261
278
|
buttonText?: string | null;
|
|
262
279
|
showVenue?: boolean | null;
|
|
@@ -292,7 +309,7 @@ export type EventSpotlightContent = {
|
|
|
292
309
|
ctaUrl?: LinkValue | string | null;
|
|
293
310
|
layout?: 'grid' | 'stack' | null;
|
|
294
311
|
columns?: '2' | '3' | null;
|
|
295
|
-
cardVariant?:
|
|
312
|
+
cardVariant?: EventCardVariantInput | null;
|
|
296
313
|
buttonVariant?: ButtonVariant | null;
|
|
297
314
|
buttonText?: string | null;
|
|
298
315
|
showVenue?: boolean | null;
|
|
@@ -306,6 +323,7 @@ export type FaqItem = {
|
|
|
306
323
|
answer: unknown;
|
|
307
324
|
};
|
|
308
325
|
export type FaqContent = {
|
|
326
|
+
variant?: 'default' | 'two-column' | 'question-columns' | 'split-heading-columns' | null;
|
|
309
327
|
eyebrow?: string | null;
|
|
310
328
|
title?: string | null;
|
|
311
329
|
description?: unknown;
|
|
@@ -315,6 +333,7 @@ export type FaqContent = {
|
|
|
315
333
|
export type FeatureCard = {
|
|
316
334
|
media?: Media | null;
|
|
317
335
|
aspectRatio?: StandardAspectRatio | null;
|
|
336
|
+
icon?: BlockIconValue | SemanticIconId | null;
|
|
318
337
|
title: string;
|
|
319
338
|
body?: TipTapNode | null;
|
|
320
339
|
ctas?: BlockCtaContent[] | null;
|
|
@@ -324,6 +343,7 @@ export type FeatureCardsContent = {
|
|
|
324
343
|
title?: string | null;
|
|
325
344
|
description?: TipTapNode | null;
|
|
326
345
|
columns?: '2' | '3' | '4' | null;
|
|
346
|
+
_iconTreatment?: FeatureCardIconTreatment | null;
|
|
327
347
|
cards?: FeatureCard[] | null;
|
|
328
348
|
};
|
|
329
349
|
export type HeroCta = {
|
|
@@ -502,7 +522,7 @@ export type TeamMembersContent = (TeamMembersCommonContent & {
|
|
|
502
522
|
members?: ManualTeamMemberItem[];
|
|
503
523
|
});
|
|
504
524
|
export type TestimonialsBlockContent = {
|
|
505
|
-
variant?: 'carousel' | 'grid' | null;
|
|
525
|
+
variant?: 'carousel' | 'grid' | 'split-grid' | 'highlight' | null;
|
|
506
526
|
heading?: string | null;
|
|
507
527
|
subheading?: string | null;
|
|
508
528
|
avatarLayout?: 'above-centered' | 'inline-left' | 'hidden' | null;
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
export { createCatchAllPage } from './catch-all';
|
|
41
41
|
export { RiverbankContentLoadError, SdkContentLoadError, classifyContentLoadError, isSdkContentLoadError, toContentLoadFailureLogFields, type CatchAllContentLoadFailureContext, type CatchAllRequestContext, type ClassifiedContentLoadError, type SdkContentLoadFailure, type SdkContentLoadFailureKind, type SdkContentLoadNotFound, } from './content-load-failure';
|
|
42
42
|
export type { CreateCatchAllPageOptions, CreateCatchAllPageResult, CatchAllPageProps, CatchAllContext, ThemeSwitchConfigV1, ThemeResolverContext, } from './types';
|
|
43
|
-
export { generateAllStaticParams, validateStaticParamsEnv, pathToSlugArray, type StaticParamsEnvResult, } from './static-params';
|
|
43
|
+
export { createGenerateStaticParams, generateAllStaticParams, normalizeStaticRoutePath, validateStaticParamsEnv, pathToSlugArray, routesToStaticParams, type CreateGenerateStaticParamsOptions, type GenerateAllStaticParamsOptions, type StaticParam, type StaticParamsClient, type StaticParamsEnvResult, type StaticParamsFailureContext, type StaticParamsFailureMode, type StaticParamsRoute, } from './static-params';
|
|
44
44
|
export { createSitemap, type CreateSitemapOptions, type SitemapGenerator, } from './sitemap';
|
|
45
45
|
export { createRobots, type CreateRobotsOptions } from './robots';
|
|
46
46
|
/**
|
|
@@ -17,13 +17,34 @@
|
|
|
17
17
|
* import { createRevalidateHandler } from '@riverbankcms/sdk/next/revalidate';
|
|
18
18
|
*
|
|
19
19
|
* export const POST = createRevalidateHandler({
|
|
20
|
-
* onRevalidate: (payload, items) => {
|
|
21
|
-
* console.log(`Revalidated ${items.length} items for ${payload.event}
|
|
20
|
+
* onRevalidate: (payload, items, metadata) => {
|
|
21
|
+
* console.log(`Revalidated ${items.length} items for ${payload.event}`, metadata);
|
|
22
22
|
* },
|
|
23
23
|
* });
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
import { type WebhookPayload } from '../webhooks/verify';
|
|
27
|
+
export type NormalizedRevalidationPaths = Readonly<{
|
|
28
|
+
paths: string[];
|
|
29
|
+
invalidPaths: string[];
|
|
30
|
+
}>;
|
|
31
|
+
export type RevalidationRequestMetadata = Readonly<{
|
|
32
|
+
event: WebhookPayload['event'];
|
|
33
|
+
siteId: string;
|
|
34
|
+
dispatchId?: string;
|
|
35
|
+
pathCount: number;
|
|
36
|
+
tagCount: number;
|
|
37
|
+
itemCount: number;
|
|
38
|
+
requestId?: string;
|
|
39
|
+
correlationId?: string;
|
|
40
|
+
monitorRunId?: string;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* Normalize a public URL path for Next revalidation.
|
|
44
|
+
*/
|
|
45
|
+
export declare function normalizeRevalidationPath(path: string): string | null;
|
|
46
|
+
export declare function normalizeRevalidationPaths(paths?: readonly string[]): NormalizedRevalidationPaths;
|
|
47
|
+
export declare function normalizeRevalidationTags(tags?: readonly string[]): string[];
|
|
27
48
|
/**
|
|
28
49
|
* Options for the revalidation handler.
|
|
29
50
|
*/
|
|
@@ -36,15 +57,15 @@ export interface RevalidateHandlerOptions {
|
|
|
36
57
|
* Callback called after successful revalidation.
|
|
37
58
|
* Useful for logging or analytics.
|
|
38
59
|
*/
|
|
39
|
-
onRevalidate?: (payload: WebhookPayload, revalidatedItems: string[]) => void;
|
|
60
|
+
onRevalidate?: (payload: WebhookPayload, revalidatedItems: string[], metadata: RevalidationRequestMetadata) => void;
|
|
40
61
|
}
|
|
41
62
|
/**
|
|
42
63
|
* Create a Next.js API route handler for webhook revalidation.
|
|
43
64
|
*
|
|
44
65
|
* The handler:
|
|
45
66
|
* 1. Verifies the webhook signature using HMAC-SHA256
|
|
46
|
-
* 2. Calls `revalidateTag()` for each tag in the payload
|
|
47
|
-
* 3. Calls `revalidatePath()`
|
|
67
|
+
* 2. Calls `revalidateTag()` for each normalized tag in the payload
|
|
68
|
+
* 3. Calls `revalidatePath()` for each normalized path in the payload
|
|
48
69
|
* 4. Returns a JSON response with the revalidation results
|
|
49
70
|
*
|
|
50
71
|
* @param options - Configuration options
|
|
@@ -11,6 +11,29 @@
|
|
|
11
11
|
* export { generateAllStaticParams as generateStaticParams };
|
|
12
12
|
* ```
|
|
13
13
|
*/
|
|
14
|
+
import type { RiverbankClient } from '../client/types';
|
|
15
|
+
import type { RoutableContentResponse } from '../public-api/contracts';
|
|
16
|
+
export type StaticParam = Readonly<{
|
|
17
|
+
slug: string[];
|
|
18
|
+
}>;
|
|
19
|
+
export type StaticParamsRoute = Pick<RoutableContentResponse['items'][number], 'path'>;
|
|
20
|
+
export type StaticParamsClient = Pick<RiverbankClient, 'getAllPublishedRoutes'>;
|
|
21
|
+
export type StaticParamsFailureMode = 'throw' | 'fallback';
|
|
22
|
+
export type StaticParamsFailureContext = Readonly<{
|
|
23
|
+
siteId: string;
|
|
24
|
+
error: unknown;
|
|
25
|
+
reason: 'route_discovery_failed' | 'invalid_route_path';
|
|
26
|
+
path?: string;
|
|
27
|
+
}>;
|
|
28
|
+
export type CreateGenerateStaticParamsOptions = Readonly<{
|
|
29
|
+
getClient: () => StaticParamsClient | Promise<StaticParamsClient>;
|
|
30
|
+
siteId: string;
|
|
31
|
+
failureMode?: StaticParamsFailureMode;
|
|
32
|
+
fallbackPaths?: readonly string[];
|
|
33
|
+
onFailure?: (context: StaticParamsFailureContext) => void;
|
|
34
|
+
signal?: AbortSignal;
|
|
35
|
+
}>;
|
|
36
|
+
export type GenerateAllStaticParamsOptions = Pick<CreateGenerateStaticParamsOptions, 'failureMode' | 'fallbackPaths' | 'onFailure' | 'signal'>;
|
|
14
37
|
/**
|
|
15
38
|
* Environment variable validation result
|
|
16
39
|
*/
|
|
@@ -25,6 +48,7 @@ export type StaticParamsEnvResult = {
|
|
|
25
48
|
valid: false;
|
|
26
49
|
missingVars: string[];
|
|
27
50
|
};
|
|
51
|
+
export declare function dashboardUrlToApiBaseUrl(input: string): string;
|
|
28
52
|
/**
|
|
29
53
|
* Validate that all required environment variables are set.
|
|
30
54
|
*
|
|
@@ -36,6 +60,7 @@ export type StaticParamsEnvResult = {
|
|
|
36
60
|
* @returns Validation result with config or missing vars
|
|
37
61
|
*/
|
|
38
62
|
export declare function validateStaticParamsEnv(): StaticParamsEnvResult;
|
|
63
|
+
export declare function normalizeStaticRoutePath(path: string): string;
|
|
39
64
|
/**
|
|
40
65
|
* Convert a route path to a Next.js slug array.
|
|
41
66
|
*
|
|
@@ -50,6 +75,8 @@ export declare function validateStaticParamsEnv(): StaticParamsEnvResult;
|
|
|
50
75
|
* ```
|
|
51
76
|
*/
|
|
52
77
|
export declare function pathToSlugArray(path: string): string[];
|
|
78
|
+
export declare function routesToStaticParams(routes: readonly StaticParamsRoute[]): StaticParam[];
|
|
79
|
+
export declare function createGenerateStaticParams(options: CreateGenerateStaticParamsOptions): () => Promise<StaticParam[]>;
|
|
53
80
|
/**
|
|
54
81
|
* Generate static params for all published routes.
|
|
55
82
|
*
|
|
@@ -79,6 +106,4 @@ export declare function pathToSlugArray(path: string): string[];
|
|
|
79
106
|
* }
|
|
80
107
|
* ```
|
|
81
108
|
*/
|
|
82
|
-
export declare function generateAllStaticParams(): Promise<
|
|
83
|
-
slug: string[];
|
|
84
|
-
}[]>;
|
|
109
|
+
export declare function generateAllStaticParams(options?: GenerateAllStaticParamsOptions): Promise<StaticParam[]>;
|
|
@@ -810,7 +810,7 @@ export type SitemapRoutesResponse = {
|
|
|
810
810
|
pageSize: number;
|
|
811
811
|
allowIndexingInProduction: boolean;
|
|
812
812
|
};
|
|
813
|
-
export type PublicEndpointName = "getSite" | "getContentByPath" | "listPublishedEntries" | "getPublishedEntryPreview" | "getPublicFormById" | "listPublicForms" | "getPublicBookingServices" | "getPublicChallenge" | "listPublicEvents" | "batchBlockLoaders" | "listPublicCourses" | "listPublicTeamMembers" | "listPublicProducts" | "listPublicPasses" | "listPublicMemberships" | "resolveEntrySubroute" | "resolveEventOccurrence" | "checkRedirect" | "getRoutableContent" | "getPublicSitemapRoutes";
|
|
813
|
+
export type PublicEndpointName = "getSite" | "getContentByPath" | "listPublishedEntries" | "getPublishedEntryPreview" | "getPublicFormById" | "listPublicForms" | "getPublicBookingServices" | "getPublicChallenge" | "listPublicEvents" | "batchBlockLoaders" | "listPublicCourses" | "listPublicTeamMembers" | "listPublicProducts" | "listPublicPasses" | "listPublicMemberships" | "resolveEntrySubroute" | "resolveEventOccurrence" | "checkRedirect" | "getRoutableContent" | "getPublicRoutableContent" | "getPublicSitemapRoutes";
|
|
814
814
|
export type PublicAPIEndpoints = {
|
|
815
815
|
getSite: APIEndpointBase<never, {
|
|
816
816
|
id?: string;
|
|
@@ -949,6 +949,10 @@ export type PublicAPIEndpoints = {
|
|
|
949
949
|
siteId: string;
|
|
950
950
|
publishedOnly?: string;
|
|
951
951
|
}, RoutableContentResponse>;
|
|
952
|
+
getPublicRoutableContent: APIEndpointBase<never, {
|
|
953
|
+
siteId: string;
|
|
954
|
+
publishedOnly?: string;
|
|
955
|
+
}, RoutableContentResponse>;
|
|
952
956
|
getPublicSitemapRoutes: APIEndpointBase<never, {
|
|
953
957
|
siteId: string;
|
|
954
958
|
page?: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ApiResult, HTTPMethod, PublicAPIEndpoints, PublicEndpointName } from './contracts';
|
|
2
|
-
export declare const PUBLIC_ENDPOINT_NAMES: readonly ["getSite", "getContentByPath", "listPublishedEntries", "getPublishedEntryPreview", "getPublicFormById", "listPublicForms", "getPublicBookingServices", "getPublicChallenge", "listPublicEvents", "batchBlockLoaders", "listPublicCourses", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "resolveEntrySubroute", "resolveEventOccurrence", "checkRedirect", "getRoutableContent", "getPublicSitemapRoutes"];
|
|
2
|
+
export declare const PUBLIC_ENDPOINT_NAMES: readonly ["getSite", "getContentByPath", "listPublishedEntries", "getPublishedEntryPreview", "getPublicFormById", "listPublicForms", "getPublicBookingServices", "getPublicChallenge", "listPublicEvents", "batchBlockLoaders", "listPublicCourses", "listPublicTeamMembers", "listPublicProducts", "listPublicPasses", "listPublicMemberships", "resolveEntrySubroute", "resolveEventOccurrence", "checkRedirect", "getRoutableContent", "getPublicRoutableContent", "getPublicSitemapRoutes"];
|
|
3
3
|
export type ApiClient = <E extends PublicEndpointName>(params: {
|
|
4
4
|
endpoint: E;
|
|
5
5
|
params?: PublicAPIEndpoints[E]['query'];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Webhook utilities for Riverbank SDK
|
|
3
3
|
*/
|
|
4
|
-
export { verifyWebhookSignature, parseWebhookPayload, WebhookPayloadSchema, type WebhookPayload, type ParseWebhookResult, } from './verify';
|
|
4
|
+
export { SUPPORTED_WEBHOOK_EVENTS, verifyWebhookSignature, parseWebhookPayload, RIVERBANK_SIGNATURE_PREFIX, WebhookPayloadSchema, WebhookEventSchema, normalizeRevalidationPath, parseRevalidationPath, unwrapRevalidationPath, type RevalidationPath, type RevalidationPathParseError, type RevalidationPathParseResult, type WebhookEvent, type WebhookPayload, type ParseWebhookResult, } from './verify';
|
|
@@ -3,116 +3,20 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Provides framework-agnostic webhook signature verification and payload parsing.
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
* Keep in sync with apps/dashboard/src/lib/db/helpers/webhooks.ts
|
|
10
|
-
*/
|
|
11
|
-
export declare const WebhookEventSchema: z.ZodEnum<{
|
|
12
|
-
"page.published": "page.published";
|
|
13
|
-
"entry.published": "entry.published";
|
|
14
|
-
"navigation.updated": "navigation.updated";
|
|
15
|
-
"theme.updated": "theme.updated";
|
|
16
|
-
"site.settings_updated": "site.settings_updated";
|
|
17
|
-
}>;
|
|
18
|
-
export type WebhookEvent = z.infer<typeof WebhookEventSchema>;
|
|
19
|
-
/** Data for page.published events */
|
|
20
|
-
export declare const PagePublishedDataSchema: z.ZodObject<{
|
|
21
|
-
pageId: z.ZodString;
|
|
22
|
-
path: z.ZodString;
|
|
23
|
-
slug: z.ZodOptional<z.ZodString>;
|
|
24
|
-
}, z.core.$strip>;
|
|
25
|
-
/** Data for entry.published events */
|
|
26
|
-
export declare const EntryPublishedDataSchema: z.ZodObject<{
|
|
27
|
-
entryId: z.ZodString;
|
|
28
|
-
path: z.ZodString;
|
|
29
|
-
contentType: z.ZodString;
|
|
30
|
-
}, z.core.$strip>;
|
|
31
|
-
/** Data for navigation.updated events */
|
|
32
|
-
export declare const NavigationUpdatedDataSchema: z.ZodObject<{
|
|
33
|
-
menuId: z.ZodOptional<z.ZodString>;
|
|
34
|
-
}, z.core.$strip>;
|
|
35
|
-
/** Data for theme.updated and site.settings_updated events (empty) */
|
|
36
|
-
export declare const EmptyDataSchema: z.ZodObject<{}, z.core.$strip>;
|
|
37
|
-
/**
|
|
38
|
-
* Combined data schema that accepts any valid event data.
|
|
39
|
-
* The actual shape depends on the event type.
|
|
40
|
-
*/
|
|
41
|
-
export declare const WebhookDataSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
42
|
-
pageId: z.ZodString;
|
|
43
|
-
path: z.ZodString;
|
|
44
|
-
slug: z.ZodOptional<z.ZodString>;
|
|
45
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
46
|
-
entryId: z.ZodString;
|
|
47
|
-
path: z.ZodString;
|
|
48
|
-
contentType: z.ZodString;
|
|
49
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
50
|
-
menuId: z.ZodOptional<z.ZodString>;
|
|
51
|
-
}, z.core.$strip>, z.ZodObject<{}, z.core.$strip>]>;
|
|
52
|
-
export type PagePublishedData = z.infer<typeof PagePublishedDataSchema>;
|
|
53
|
-
export type EntryPublishedData = z.infer<typeof EntryPublishedDataSchema>;
|
|
54
|
-
export type NavigationUpdatedData = z.infer<typeof NavigationUpdatedDataSchema>;
|
|
55
|
-
/**
|
|
56
|
-
* Zod schema for webhook payload validation.
|
|
57
|
-
*/
|
|
58
|
-
export declare const WebhookPayloadSchema: z.ZodObject<{
|
|
59
|
-
event: z.ZodEnum<{
|
|
60
|
-
"page.published": "page.published";
|
|
61
|
-
"entry.published": "entry.published";
|
|
62
|
-
"navigation.updated": "navigation.updated";
|
|
63
|
-
"theme.updated": "theme.updated";
|
|
64
|
-
"site.settings_updated": "site.settings_updated";
|
|
65
|
-
}>;
|
|
66
|
-
timestamp: z.ZodString;
|
|
67
|
-
siteId: z.ZodString;
|
|
68
|
-
data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
69
|
-
tags: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
70
|
-
}, z.core.$strip>;
|
|
71
|
-
/**
|
|
72
|
-
* Webhook payload structure sent by the CMS.
|
|
73
|
-
*/
|
|
74
|
-
export type WebhookPayload = z.infer<typeof WebhookPayloadSchema>;
|
|
6
|
+
import { type EmptyWebhookData, type EntryPathChangedData, type EntryPublishedData, type EntryRemovedData, type NavigationUpdatedData, type PagePathChangedData, type PagePublishedData, type PageRemovedData, type RevalidationPath, type RevalidationPathParseError, type RevalidationPathParseResult, type WebhookEvent, type WebhookPayload } from '../../../api/src/webhooks';
|
|
7
|
+
export { EmptyWebhookDataSchema as EmptyDataSchema, EntryPathChangedDataSchema, EntryPublishedDataSchema, EntryRemovedDataSchema, NavigationUpdatedDataSchema, PagePathChangedDataSchema, PagePublishedDataSchema, PageRemovedDataSchema, RIVERBANK_SIGNATURE_PREFIX, SUPPORTED_WEBHOOK_EVENTS, WebhookEventSchema, WebhookPayloadSchema, normalizeRevalidationPath, parseRevalidationPath, unwrapRevalidationPath, } from '../../../api/src/webhooks';
|
|
8
|
+
export type { EmptyWebhookData as EmptyData, RevalidationPath, RevalidationPathParseError, RevalidationPathParseResult, EntryPathChangedData, EntryPublishedData, EntryRemovedData, NavigationUpdatedData, PagePathChangedData, PagePublishedData, PageRemovedData, WebhookEvent, WebhookPayload, };
|
|
75
9
|
/**
|
|
76
10
|
* Type-safe webhook payload with discriminated data based on event type.
|
|
77
11
|
*/
|
|
78
|
-
export type TypedWebhookPayload =
|
|
79
|
-
event: 'page.published';
|
|
80
|
-
data: PagePublishedData;
|
|
81
|
-
siteId: string;
|
|
82
|
-
timestamp: string;
|
|
83
|
-
tags?: string[];
|
|
84
|
-
} | {
|
|
85
|
-
event: 'entry.published';
|
|
86
|
-
data: EntryPublishedData;
|
|
87
|
-
siteId: string;
|
|
88
|
-
timestamp: string;
|
|
89
|
-
tags?: string[];
|
|
90
|
-
} | {
|
|
91
|
-
event: 'navigation.updated';
|
|
92
|
-
data: NavigationUpdatedData;
|
|
93
|
-
siteId: string;
|
|
94
|
-
timestamp: string;
|
|
95
|
-
tags?: string[];
|
|
96
|
-
} | {
|
|
97
|
-
event: 'theme.updated';
|
|
98
|
-
data: Record<string, never>;
|
|
99
|
-
siteId: string;
|
|
100
|
-
timestamp: string;
|
|
101
|
-
tags?: string[];
|
|
102
|
-
} | {
|
|
103
|
-
event: 'site.settings_updated';
|
|
104
|
-
data: Record<string, never>;
|
|
105
|
-
siteId: string;
|
|
106
|
-
timestamp: string;
|
|
107
|
-
tags?: string[];
|
|
108
|
-
};
|
|
12
|
+
export type TypedWebhookPayload = WebhookPayload;
|
|
109
13
|
/**
|
|
110
|
-
* Verify a webhook signature using HMAC-SHA256.
|
|
14
|
+
* Verify a `sha256=<digest>` webhook signature using HMAC-SHA256.
|
|
111
15
|
*
|
|
112
16
|
* Uses timing-safe comparison to prevent timing attacks.
|
|
113
17
|
*
|
|
114
18
|
* @param payload - The raw request body as a string
|
|
115
|
-
* @param signature - The X-Riverbank-Signature header value
|
|
19
|
+
* @param signature - The X-Riverbank-Signature header value (`sha256=<hex digest>`)
|
|
116
20
|
* @param secret - The webhook signing secret (RIVERBANK_WEBHOOK_SECRET)
|
|
117
21
|
* @returns true if signature is valid, false otherwise
|
|
118
22
|
*
|
|
@@ -188,6 +188,7 @@ export declare const upsertNavigationMenuCommandSchema: z.ZodObject<{
|
|
|
188
188
|
type: z.ZodLiteral<"upsertNavigationMenu">;
|
|
189
189
|
ref: z.ZodPipe<z.ZodString, z.ZodTransform<NavigationRef, string>>;
|
|
190
190
|
input: z.ZodObject<{
|
|
191
|
+
identifier: z.ZodOptional<z.ZodString>;
|
|
191
192
|
name: z.ZodOptional<z.ZodString>;
|
|
192
193
|
location: z.ZodOptional<z.ZodEnum<{
|
|
193
194
|
header: "header";
|
|
@@ -1090,6 +1091,7 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1090
1091
|
type: z.ZodLiteral<"upsertNavigationMenu">;
|
|
1091
1092
|
ref: z.ZodPipe<z.ZodString, z.ZodTransform<NavigationRef, string>>;
|
|
1092
1093
|
input: z.ZodObject<{
|
|
1094
|
+
identifier: z.ZodOptional<z.ZodString>;
|
|
1093
1095
|
name: z.ZodOptional<z.ZodString>;
|
|
1094
1096
|
location: z.ZodOptional<z.ZodEnum<{
|
|
1095
1097
|
header: "header";
|
|
@@ -1924,6 +1926,7 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
|
|
|
1924
1926
|
type: z.ZodLiteral<"upsertNavigationMenu">;
|
|
1925
1927
|
ref: z.ZodPipe<z.ZodString, z.ZodTransform<NavigationRef, string>>;
|
|
1926
1928
|
input: z.ZodObject<{
|
|
1929
|
+
identifier: z.ZodOptional<z.ZodString>;
|
|
1927
1930
|
name: z.ZodOptional<z.ZodString>;
|
|
1928
1931
|
location: z.ZodOptional<z.ZodEnum<{
|
|
1929
1932
|
header: "header";
|
|
@@ -1,3 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Reusable accordion "looks" for curated site styles.
|
|
3
|
+
*
|
|
4
|
+
* Each curated site style should declare one of these (or a bespoke variant)
|
|
5
|
+
* via `themeOverrides.accordions` so its FAQ accordions carry the style's
|
|
6
|
+
* personality instead of falling back to the generic generated default. The
|
|
7
|
+
* looks vary the things that make an accordion read as designed vs. cheap:
|
|
8
|
+
* box vs. boxless, question typography (body vs. heading font + scale), icon,
|
|
9
|
+
* and how an open item is emphasised.
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Boxless editorial list: transparent root, hairline dividers between rows,
|
|
13
|
+
* generous spacing, heading-font questions, plus/minus marks, and an accented
|
|
14
|
+
* tinted band on the open row. The reference "expensive" FAQ look.
|
|
15
|
+
*/
|
|
16
|
+
export declare const editorialDividedAccordionSystem: {
|
|
17
|
+
readonly background: null;
|
|
18
|
+
readonly spacing: "comfortable";
|
|
19
|
+
readonly corners: "square";
|
|
20
|
+
readonly border: null;
|
|
21
|
+
readonly shadow: null;
|
|
22
|
+
readonly icon: {
|
|
23
|
+
readonly style: "plus-minus";
|
|
24
|
+
readonly position: "right";
|
|
25
|
+
readonly size: "md";
|
|
26
|
+
readonly colorToken: "primary";
|
|
27
|
+
};
|
|
28
|
+
readonly trigger: {
|
|
29
|
+
readonly textColorToken: "text";
|
|
30
|
+
readonly fontWeight: "regular";
|
|
31
|
+
readonly fontFamily: "heading";
|
|
32
|
+
readonly fontScale: "lg";
|
|
33
|
+
};
|
|
34
|
+
readonly hover: {
|
|
35
|
+
readonly textColorToken: "primary";
|
|
36
|
+
};
|
|
37
|
+
readonly openState: {
|
|
38
|
+
readonly backgroundColorToken: "surfaceAlt";
|
|
39
|
+
readonly triggerColorToken: "primary";
|
|
40
|
+
readonly accent: {
|
|
41
|
+
readonly edge: "left";
|
|
42
|
+
readonly colorToken: "primary";
|
|
43
|
+
readonly thickness: "medium";
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
readonly content: {
|
|
47
|
+
readonly textColorToken: "neutral-700";
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* Quiet, airy underlined rows: transparent, spacious, large calm heading-font
|
|
52
|
+
* questions, a small subtle chevron, and open emphasis carried only by the
|
|
53
|
+
* question recolouring. For minimal / premium / wellness styles.
|
|
54
|
+
*/
|
|
55
|
+
export declare const quietUnderlinedAccordionSystem: {
|
|
56
|
+
readonly background: null;
|
|
57
|
+
readonly spacing: "spacious";
|
|
58
|
+
readonly corners: "square";
|
|
59
|
+
readonly border: null;
|
|
60
|
+
readonly shadow: null;
|
|
61
|
+
readonly icon: {
|
|
62
|
+
readonly style: "chevron";
|
|
63
|
+
readonly position: "right";
|
|
64
|
+
readonly size: "sm";
|
|
65
|
+
readonly colorToken: "muted";
|
|
66
|
+
};
|
|
67
|
+
readonly trigger: {
|
|
68
|
+
readonly textColorToken: "text";
|
|
69
|
+
readonly fontWeight: "regular";
|
|
70
|
+
readonly fontFamily: "heading";
|
|
71
|
+
readonly fontScale: "lg";
|
|
72
|
+
};
|
|
73
|
+
readonly hover: {
|
|
74
|
+
readonly textColorToken: "primary";
|
|
75
|
+
};
|
|
76
|
+
readonly openState: {
|
|
77
|
+
readonly triggerColorToken: "primary";
|
|
78
|
+
};
|
|
79
|
+
readonly content: {
|
|
80
|
+
readonly textColorToken: "neutral-700";
|
|
81
|
+
};
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Soft contained panel: a gentle surface box with soft corners, a hairline
|
|
85
|
+
* border and a low shadow, heading-font questions at a moderate size, chevron,
|
|
86
|
+
* and a tinted open state. For clean, trustworthy, appointment-led styles.
|
|
87
|
+
*/
|
|
88
|
+
export declare const calmPanelAccordionSystem: {
|
|
89
|
+
readonly background: {
|
|
90
|
+
readonly type: "solid";
|
|
91
|
+
readonly colorToken: "surface";
|
|
92
|
+
};
|
|
93
|
+
readonly spacing: "comfortable";
|
|
94
|
+
readonly corners: "soft";
|
|
95
|
+
readonly border: {
|
|
96
|
+
readonly widthClass: "border";
|
|
97
|
+
readonly colorToken: "border";
|
|
98
|
+
};
|
|
99
|
+
readonly shadow: {
|
|
100
|
+
readonly elevation: "low";
|
|
101
|
+
readonly softness: "soft";
|
|
102
|
+
readonly position: "bottom";
|
|
103
|
+
};
|
|
104
|
+
readonly icon: {
|
|
105
|
+
readonly style: "chevron";
|
|
106
|
+
readonly position: "right";
|
|
107
|
+
readonly size: "md";
|
|
108
|
+
readonly colorToken: "primary";
|
|
109
|
+
};
|
|
110
|
+
readonly trigger: {
|
|
111
|
+
readonly textColorToken: "text";
|
|
112
|
+
readonly fontWeight: "medium";
|
|
113
|
+
readonly fontFamily: "heading";
|
|
114
|
+
readonly fontScale: "md";
|
|
115
|
+
};
|
|
116
|
+
readonly hover: {
|
|
117
|
+
readonly backgroundColorToken: "primary/5";
|
|
118
|
+
readonly textColorToken: "primary";
|
|
119
|
+
};
|
|
120
|
+
readonly openState: {
|
|
121
|
+
readonly backgroundColorToken: "primary/5";
|
|
122
|
+
readonly triggerColorToken: "primary";
|
|
123
|
+
};
|
|
124
|
+
readonly content: {
|
|
125
|
+
readonly textColorToken: "neutral-700";
|
|
126
|
+
};
|
|
127
|
+
};
|
|
128
|
+
/**
|
|
129
|
+
* Bold bordered panel: a strong-bordered surface box, bold heading-font
|
|
130
|
+
* questions, large plus/minus marks, and a high-emphasis tinted + accented
|
|
131
|
+
* open state. For confident, conversion-led, high-energy styles.
|
|
132
|
+
*/
|
|
133
|
+
export declare const boldBorderedAccordionSystem: {
|
|
134
|
+
readonly background: {
|
|
135
|
+
readonly type: "solid";
|
|
136
|
+
readonly colorToken: "surface";
|
|
137
|
+
};
|
|
138
|
+
readonly spacing: "comfortable";
|
|
139
|
+
readonly corners: "soft";
|
|
140
|
+
readonly border: {
|
|
141
|
+
readonly widthClass: "border-2";
|
|
142
|
+
readonly colorToken: "border";
|
|
143
|
+
};
|
|
144
|
+
readonly shadow: null;
|
|
145
|
+
readonly icon: {
|
|
146
|
+
readonly style: "plus-minus";
|
|
147
|
+
readonly position: "right";
|
|
148
|
+
readonly size: "lg";
|
|
149
|
+
readonly colorToken: "primary";
|
|
150
|
+
};
|
|
151
|
+
readonly trigger: {
|
|
152
|
+
readonly textColorToken: "text";
|
|
153
|
+
readonly fontWeight: "bold";
|
|
154
|
+
readonly fontFamily: "heading";
|
|
155
|
+
readonly fontScale: "md";
|
|
156
|
+
};
|
|
157
|
+
readonly hover: {
|
|
158
|
+
readonly backgroundColorToken: "primary/10";
|
|
159
|
+
readonly textColorToken: "primary";
|
|
160
|
+
};
|
|
161
|
+
readonly openState: {
|
|
162
|
+
readonly backgroundColorToken: "primary/10";
|
|
163
|
+
readonly triggerColorToken: "primary";
|
|
164
|
+
readonly accent: {
|
|
165
|
+
readonly edge: "left";
|
|
166
|
+
readonly colorToken: "primary";
|
|
167
|
+
readonly thickness: "thick";
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
readonly content: {
|
|
171
|
+
readonly textColorToken: "neutral-700";
|
|
172
|
+
};
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Warm inset tiles: a tinted (surfaceAlt) root with rounded corners and no
|
|
176
|
+
* border; the open row lifts to the lighter surface colour. Friendly,
|
|
177
|
+
* hands-on, community styles.
|
|
178
|
+
*/
|
|
179
|
+
export declare const warmInsetAccordionSystem: {
|
|
180
|
+
readonly background: {
|
|
181
|
+
readonly type: "solid";
|
|
182
|
+
readonly colorToken: "surfaceAlt";
|
|
183
|
+
};
|
|
184
|
+
readonly spacing: "comfortable";
|
|
185
|
+
readonly corners: "rounded";
|
|
186
|
+
readonly border: null;
|
|
187
|
+
readonly shadow: null;
|
|
188
|
+
readonly icon: {
|
|
189
|
+
readonly style: "circle-plus-minus";
|
|
190
|
+
readonly position: "right";
|
|
191
|
+
readonly size: "md";
|
|
192
|
+
readonly colorToken: "primary";
|
|
193
|
+
};
|
|
194
|
+
readonly trigger: {
|
|
195
|
+
readonly textColorToken: "text";
|
|
196
|
+
readonly fontWeight: "semibold";
|
|
197
|
+
readonly fontFamily: "heading";
|
|
198
|
+
readonly fontScale: "md";
|
|
199
|
+
};
|
|
200
|
+
readonly hover: {
|
|
201
|
+
readonly backgroundColorToken: "primary/5";
|
|
202
|
+
readonly textColorToken: "primary";
|
|
203
|
+
};
|
|
204
|
+
readonly openState: {
|
|
205
|
+
readonly backgroundColorToken: "surface";
|
|
206
|
+
readonly triggerColorToken: "primary";
|
|
207
|
+
};
|
|
208
|
+
readonly content: {
|
|
209
|
+
readonly textColorToken: "neutral-700";
|
|
210
|
+
};
|
|
211
|
+
};
|
|
212
|
+
/**
|
|
213
|
+
* Soft Earth's grounded look: boxless, plus/minus, heading-font questions on
|
|
214
|
+
* a warm ground, with a quiet open recolour.
|
|
215
|
+
*/
|
|
1
216
|
export declare const softEarthAccordionSystem: {
|
|
2
217
|
readonly background: {
|
|
3
218
|
readonly type: "solid";
|
|
@@ -16,10 +231,15 @@ export declare const softEarthAccordionSystem: {
|
|
|
16
231
|
readonly trigger: {
|
|
17
232
|
readonly textColorToken: "text";
|
|
18
233
|
readonly fontWeight: "medium";
|
|
234
|
+
readonly fontFamily: "heading";
|
|
235
|
+
readonly fontScale: "md";
|
|
19
236
|
};
|
|
20
237
|
readonly hover: {
|
|
21
238
|
readonly textColorToken: "primary";
|
|
22
239
|
};
|
|
240
|
+
readonly openState: {
|
|
241
|
+
readonly triggerColorToken: "primary";
|
|
242
|
+
};
|
|
23
243
|
readonly content: {
|
|
24
244
|
readonly textColorToken: "neutral-700";
|
|
25
245
|
};
|