@riverbankcms/sdk 0.111.0 → 0.119.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/dist/{PreviewEditorSidebar-CTR6LUhN.mjs → PreviewEditorSidebar-C7TXFitV.mjs} +4 -4
- package/dist/{PreviewEditorUI-DZg15Zip.mjs → PreviewEditorUI-_1JIHTXS.mjs} +3 -3
- package/dist/{PreviewQueryProvider-kkmjklLG.mjs → PreviewQueryProvider-nKUT4TL-.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-DeOTAFvR.mjs → SdkPreviewModeRuntime-CvJTVgWa.mjs} +2579 -34325
- package/dist/{SiteChromeCustomizeContext-DOSDLCiJ.mjs → SiteChromeCustomizeContext-66QfCbAS.mjs} +64625 -32791
- package/dist/_dts/ai/src/contracts/proposals.d.ts +5211 -639
- package/dist/_dts/ai/src/designer/themePatch.d.ts +1 -1
- package/dist/_dts/api/src/bookingAdjustments.d.ts +30 -36
- package/dist/_dts/api/src/bookingConfig.d.ts +26 -1
- package/dist/_dts/api/src/bookingRecords.d.ts +6 -74
- package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +3 -3
- package/dist/_dts/api/src/contentRuntime.d.ts +5 -1
- package/dist/_dts/api/src/customerMembershipOutcomes.d.ts +4 -4
- package/dist/_dts/api/src/endpoints.d.ts +35 -0
- package/dist/_dts/api/src/event-presentation.d.ts +4 -0
- package/dist/_dts/api/src/index.d.ts +4 -4
- package/dist/_dts/api/src/navigation/dashboardBookingsNav.d.ts +4 -1
- package/dist/_dts/api/src/navigation/dashboardSettingsNav.d.ts +2 -2
- package/dist/_dts/api/src/sdk-event-upsert.d.ts +2 -2
- package/dist/_dts/api/src/sdkContracts.d.ts +85 -7
- package/dist/_dts/api/src/siteBanner.d.ts +8 -8
- package/dist/_dts/api/src/siteOperations.d.ts +1 -1
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +32 -4
- package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldDefaults.d.ts +3 -12
- package/dist/_dts/block-form/src/widgets/RichTextField/richTextFieldSchema.d.ts +1 -5
- package/dist/_dts/blocks/src/bindings/index.d.ts +1 -10
- package/dist/_dts/blocks/src/index.d.ts +3 -6
- package/dist/_dts/blocks/src/primitives/content/primitives.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/body-text.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/recurring-schedule.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/events/shared/schemas.d.ts +2 -8
- package/dist/_dts/blocks/src/system/blocks/feature-card-icons.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/feature-cards.d.ts +3 -3
- package/dist/_dts/blocks/src/system/blocks/form.d.ts +2 -15
- package/dist/_dts/blocks/src/system/blocks/intro.d.ts +2 -2
- package/dist/_dts/blocks/src/system/blocks/media-text.d.ts +66 -66
- package/dist/_dts/blocks/src/system/blocks/newsletter-signup.d.ts +2 -16
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +0 -3
- package/dist/_dts/blocks/src/system/fragments/index.d.ts +0 -1
- package/dist/_dts/blocks/src/system/manifest/fieldValidation/index.d.ts +19 -2
- package/dist/_dts/blocks/src/system/manifest/richTextSchema.d.ts +8 -70
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/validation.d.ts +6 -0
- package/dist/_dts/blocks/src/system/node/schema.d.ts +4 -4
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +1 -10
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +5 -21
- package/dist/_dts/blocks/src/system/runtime/nodes/richText-coerce.d.ts +14 -2
- package/dist/_dts/blocks/src/system/transforms/typed.d.ts +1 -1
- package/dist/_dts/content-editor/src/controller/seedDraftBaselinesFromBlocks.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useBlockAutosave.d.ts +17 -1
- package/dist/_dts/content-editor/src/hooks/useDebouncedLatestSave.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useSimpleAutosave.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +3 -2
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +2 -2
- package/dist/_dts/content-editor/src/ui/stores/autosaveStore.d.ts +1 -1
- package/dist/_dts/content-editor/src/ui/stores/types.d.ts +1 -1
- package/dist/_dts/content-model/src/content-types/builtins.d.ts +3 -15
- package/dist/_dts/content-model/src/content-types/entryValidation.d.ts +2 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/templates/defaults.d.ts +1 -21
- package/dist/_dts/core/src/editor-state.d.ts +14 -1
- package/dist/_dts/core/src/footer-composition.d.ts +2 -1
- package/dist/_dts/core/src/index.d.ts +1 -0
- package/dist/_dts/core/src/rich-text.d.ts +16 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +189 -86
- package/dist/_dts/editor/src/index.d.ts +1 -1
- package/dist/_dts/editor/src/primitives/rich-text/utils.d.ts +3 -5
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/blockDraftBaselineSeed.d.ts +15 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockBaselineSync.d.ts +3 -7
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +12 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/utils.d.ts +1 -1
- package/dist/_dts/editor-blocks/src/index.d.ts +6 -5
- package/dist/_dts/editor-blocks/src/widgets/rich-text/RichTextField.d.ts +2 -2
- package/dist/_dts/media-core/src/contentMediaAudit.d.ts +104 -0
- package/dist/_dts/media-core/src/contentMediaAuditFieldAdapter.d.ts +8 -0
- package/dist/_dts/media-core/src/contentMediaSnapshotAudit.d.ts +22 -0
- package/dist/_dts/media-core/src/index.d.ts +3 -1
- package/dist/_dts/sdk/src/cli/commands/event.d.ts +18 -1
- package/dist/_dts/sdk/src/cli/commands/push/execute/theme.d.ts +2 -16
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +8 -5
- package/dist/_dts/sdk/src/client/management/events.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +36 -9
- package/dist/_dts/sdk/src/config/typed-entries.d.ts +7 -7
- package/dist/_dts/sdk/src/config/validation.d.ts +7 -7
- package/dist/_dts/sdk/src/contracts/content.d.ts +5 -15
- package/dist/_dts/sdk/src/contracts/index.d.ts +1 -1
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +12 -25
- package/dist/_dts/sdk/src/contracts/theme.d.ts +2 -18
- package/dist/_dts/sdk/src/manifest/passes/pass1-fields.d.ts +1 -1
- package/dist/_dts/sdk/src/manifest/three-pass-converter.d.ts +4 -4
- package/dist/_dts/sdk/src/rendering/helpers/bindings.d.ts +1 -2
- package/dist/_dts/sdk/src/rendering/helpers/index.d.ts +1 -1
- package/dist/_dts/sdk/src/rendering/islands/types.d.ts +2 -13
- package/dist/_dts/sdk/src/theme/index.d.ts +0 -29
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +31 -18
- package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/core.d.ts +0 -1
- package/dist/_dts/theme-core/src/buttons/effectClassification.d.ts +22 -9
- package/dist/_dts/theme-core/src/buttons/effects/presets/background.d.ts +1 -2
- package/dist/_dts/theme-core/src/buttons/effects/presets/border.d.ts +1 -2
- package/dist/_dts/theme-core/src/buttons/effects/presets/overlay.d.ts +3 -1
- package/dist/_dts/theme-core/src/buttons/effects/presets/shadow.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/effects/types.d.ts +8 -18
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/generateDefaultButtonSystem.d.ts +5 -5
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -4
- package/dist/_dts/theme-core/src/buttons/parseThemeForPersistence.d.ts +36 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +1638 -93
- package/dist/_dts/theme-core/src/cards/types.d.ts +13 -13
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +969 -69
- package/dist/_dts/theme-core/src/navigation/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/recommend/generateThemes.d.ts +0 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1100 -116
- package/dist/_dts/theme-core/src/site-styles/backgroundAppearance.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +14 -14
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/pageDesignIntent.d.ts +4 -4
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +6 -0
- package/dist/cli/index.mjs +5706 -4852
- package/dist/cli/init-docs/content/cli-reference.md +40 -1
- package/dist/cli/init-docs/content/content-management.md +6 -0
- package/dist/client/{DiscountCodeDisclosure-C4xvTBux.mjs → DiscountCodeDisclosure-DIWj-P9v.mjs} +1 -1
- package/dist/client/{EventCombined.client-Cr7G131j.mjs → EventCombined.client-De8YWBSr.mjs} +2 -2
- package/dist/client/{EventListing.client-CAjbseNy.mjs → EventListing.client-seHTjimY.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-BMlWfwz3.mjs → LeafletStaticMap-BmQxFcJW.mjs} +1 -1
- package/dist/client/{MagicLinkForm-ChdFz96y.mjs → MagicLinkForm-OoJAIUIj.mjs} +1 -1
- package/dist/client/{StepIndicator-7D3GaBeM.mjs → StepIndicator-CiZ8kdPk.mjs} +2 -2
- package/dist/client/{accordion-D8JTs2Si.mjs → accordion-6lnN__XJ.mjs} +1 -1
- package/dist/client/{bookingForm-H3DCRBHs.mjs → bookingForm-5uyqhONU.mjs} +6 -6
- package/dist/client/bookings.mjs +2219 -527
- package/dist/client/{carousel-DMr_QWlz.mjs → carousel-Dtnifil_.mjs} +1 -1
- package/dist/client/{cart-DWMbfBdR.mjs → cart-5Tc5S7NV.mjs} +3 -3
- package/dist/client/{checkout-zmfdkXLx.mjs → checkout-CYKKN5Hr.mjs} +3 -3
- package/dist/client/client.mjs +2498 -2384
- package/dist/client/{colorTokenParts-FSS3al6l.mjs → colorStyles-BWpj_h4C.mjs} +88 -1
- package/dist/client/{courseRegistration-Z_mn18jy.mjs → courseRegistration-CxCBybB4.mjs} +6 -6
- package/dist/client/{eventCalendar-CYp0YJGF.mjs → eventCalendar-Xj2jZS9X.mjs} +4 -4
- package/dist/client/{eventCombined-rKyYZUa9.mjs → eventCombined-CgcMoOgM.mjs} +2 -2
- package/dist/client/{eventDetails-X0ZaUuMj.mjs → eventDetails-CEAH8Edc.mjs} +3 -3
- package/dist/client/{eventListing-W1SuL7EP.mjs → eventListing-qyPVQ0wP.mjs} +2 -2
- package/dist/client/{eventRegistration-ClWricui.mjs → eventRegistration-DDu79CtL.mjs} +6 -6
- package/dist/client/{form--eKPwAAD.mjs → form-Bc7JKI7I.mjs} +1 -1
- package/dist/client/{headerSection-BSeGr-FS.mjs → headerSection-vTku_LEl.mjs} +2 -2
- package/dist/client/hooks.mjs +373 -555
- package/dist/client/{locationMap-BpOrtNYn.mjs → locationMap-Bg7X4Jna.mjs} +3 -3
- package/dist/client/{media-DoF0dcVx.mjs → media-CNE1Z-wb.mjs} +1 -2
- package/dist/client/{newsletterForm-Bt7it7Dy.mjs → newsletterForm-lpylVdp5.mjs} +1 -1
- package/dist/client/{pricing-BTjSDDr4.mjs → pricing-DE8fjJiT.mjs} +1 -1
- package/dist/client/{productDetail-ICnVTcCg.mjs → productDetail-D7Bo2RMH.mjs} +3 -3
- package/dist/client/{productList-ZHr6D604.mjs → productList-VjnZqiqN.mjs} +3 -3
- package/dist/client/{propsDecoder-wWN0tBDF.mjs → propsDecoder-DreFXjNP.mjs} +2212 -621
- package/dist/client/rendering/client.mjs +21612 -21646
- package/dist/client/rendering/islands.mjs +20 -20
- package/dist/client/rendering.mjs +1571 -1547
- package/dist/client/{shop-C1u_BUn0.mjs → shop-IRsHHbf7.mjs} +5 -5
- package/dist/client/{shop-commerce-CleZdRha.mjs → shop-commerce-gnI8PieZ.mjs} +27 -10
- package/dist/client/{shop-commerce-store-ycnoB2Ce.mjs → shop-commerce-store-BTbrhObn.mjs} +1 -1
- package/dist/client/{shopShared-CPhByt2a.mjs → shopShared-D6KS2_qk.mjs} +3 -3
- package/dist/client/{useDiscountCodeUi-cStSQI6C.mjs → useDiscountCodeUi-DCccGCxV.mjs} +1 -1
- package/dist/client/{useEventFilters-DKPN7hSY.mjs → useEventFilters-eGs3rPZQ.mjs} +3 -104
- package/dist/client/{usePolling-BKAd6pkZ.mjs → usePolling-CvSU2sur.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +57 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +57 -0
- package/dist/{previewAuthStore-BkT1D06A.mjs → previewAuthStore-DN7vcRsv.mjs} +57 -0
- package/dist/{sdk-runtime-hu3wr3ng.mjs → sdk-runtime-DaOiA7ct.mjs} +2 -2
- package/dist/{separator-Bln8izQ9.mjs → separator-CqRhcCxD.mjs} +1 -1
- package/dist/server/components.mjs +4092 -4108
- package/dist/server/config-template-validation.mjs +4 -23
- package/dist/server/config-validation.mjs +373 -555
- package/dist/server/config.mjs +410 -558
- package/dist/server/data.mjs +373 -555
- package/dist/server/index.mjs +58 -1
- package/dist/server/next.mjs +32958 -32926
- package/dist/server/page-converter.mjs +369 -526
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +5371 -3174
- package/dist/server/rendering.mjs +4099 -4124
- package/dist/server/routing.mjs +758 -966
- package/dist/server/server.mjs +448 -632
- package/dist/server/theme-bridge.mjs +472 -525
- package/dist/server/theme.mjs +1074 -392
- package/package.json +1 -1
- package/dist/_dts/blocks/src/primitives/content/components/Button.d.ts +0 -40
- package/dist/_dts/blocks/src/system/fragments/library/footerBottomText.d.ts +0 -19
- package/dist/_dts/media-core/src/legacyMediaValue.d.ts +0 -11
- package/dist/_dts/theme-core/src/styles/buttons.d.ts +0 -27
- package/dist/_dts/theme-core/src/styles/buttonsLibrary.d.ts +0 -2
- package/dist/_dts/theme-core/src/styles/glow.d.ts +0 -3
- package/dist/client/colorStyles-gcTh5yZT.mjs +0 -89
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* These are SDK-owned copies for SDK consumers so override typing does not
|
|
5
5
|
* require importing internal blocks package types.
|
|
6
6
|
*/
|
|
7
|
-
import type { InlineText, LinkValue, Media
|
|
8
|
-
import type { Brand, EventCategoryId, VenueId } from '../../../core/src/index';
|
|
7
|
+
import type { InlineText, LinkValue, Media } from './content';
|
|
8
|
+
import type { Brand, EventCategoryId, RichTextDoc, VenueId } from '../../../core/src/index';
|
|
9
9
|
type UnknownRecord = Record<string, unknown>;
|
|
10
10
|
type ImageMedia = Omit<Media, 'type'> & {
|
|
11
11
|
type: 'image';
|
|
@@ -68,18 +68,7 @@ export type BlockIconValue = {
|
|
|
68
68
|
styleGuideVersionId: Brand<string, 'SiteIconStyleGuideVersionId'>;
|
|
69
69
|
};
|
|
70
70
|
export type FeatureCardIconTreatment = 'plain' | 'soft-badge' | 'utility-badge';
|
|
71
|
-
export type RichTextDoc
|
|
72
|
-
type: 'doc';
|
|
73
|
-
content?: Array<{
|
|
74
|
-
type: string;
|
|
75
|
-
content?: Array<{
|
|
76
|
-
type: string;
|
|
77
|
-
text?: string;
|
|
78
|
-
[key: string]: unknown;
|
|
79
|
-
}>;
|
|
80
|
-
[key: string]: unknown;
|
|
81
|
-
}>;
|
|
82
|
-
};
|
|
71
|
+
export type { RichTextDoc } from '../../../core/src/index';
|
|
83
72
|
export type BlogListingContent = {
|
|
84
73
|
/**
|
|
85
74
|
* First-class layout selector for current blog listings.
|
|
@@ -107,7 +96,7 @@ export type BodyTextAlignment = 'left' | 'center';
|
|
|
107
96
|
export type BodyTextContent = {
|
|
108
97
|
variant?: 'prose' | 'intro' | 'narrow' | null;
|
|
109
98
|
heading?: string | null;
|
|
110
|
-
body:
|
|
99
|
+
body: RichTextDoc;
|
|
111
100
|
alignment?: BodyTextAlignment | null;
|
|
112
101
|
};
|
|
113
102
|
export type BlockCtaContent = {
|
|
@@ -120,7 +109,7 @@ export type BlockCtaContent = {
|
|
|
120
109
|
export type IntroContent = {
|
|
121
110
|
variant?: 'centered-copy' | 'statement-copy' | 'statement-media' | 'media-copy' | null;
|
|
122
111
|
title?: string | null;
|
|
123
|
-
body:
|
|
112
|
+
body: RichTextDoc;
|
|
124
113
|
media?: Media | null;
|
|
125
114
|
imagePosition?: 'left' | 'right' | null;
|
|
126
115
|
gap?: SemanticSpacing | null;
|
|
@@ -361,14 +350,14 @@ export type FeatureCard = {
|
|
|
361
350
|
aspectRatio?: StandardAspectRatio | null;
|
|
362
351
|
icon?: BlockIconValue | SemanticIconId | null;
|
|
363
352
|
title: string;
|
|
364
|
-
body?:
|
|
353
|
+
body?: RichTextDoc | null;
|
|
365
354
|
ctas?: BlockCtaContent[] | null;
|
|
366
355
|
};
|
|
367
356
|
export type FeatureCardsContent = {
|
|
368
357
|
variant?: 'cards' | 'editorial-diptych' | 'editorial-pathways' | null;
|
|
369
358
|
eyebrow?: string | null;
|
|
370
359
|
title?: string | null;
|
|
371
|
-
description?:
|
|
360
|
+
description?: RichTextDoc | null;
|
|
372
361
|
columns?: '2' | '3' | '4' | null;
|
|
373
362
|
cardMarker?: 'icons' | 'numbers' | 'none' | null;
|
|
374
363
|
_iconTreatment?: FeatureCardIconTreatment | null;
|
|
@@ -450,7 +439,7 @@ export type MediaTextContent = {
|
|
|
450
439
|
carouselAutoplayDelay?: '3000' | '5000' | '7000' | '10000' | null;
|
|
451
440
|
carouselArrowVisibility?: 'always' | 'hover' | 'never' | null;
|
|
452
441
|
showDots?: boolean | null;
|
|
453
|
-
text:
|
|
442
|
+
text: RichTextDoc;
|
|
454
443
|
wrapTextInCard?: boolean | null;
|
|
455
444
|
_textCardStyles?: unknown;
|
|
456
445
|
};
|
|
@@ -471,7 +460,7 @@ export type NewsletterSignupContent = {
|
|
|
471
460
|
export type RecurringScheduleContent = {
|
|
472
461
|
eyebrow?: string | null;
|
|
473
462
|
heading?: string | null;
|
|
474
|
-
description?:
|
|
463
|
+
description?: RichTextDoc | null;
|
|
475
464
|
showVenue?: boolean | null;
|
|
476
465
|
buttonVariant?: ButtonVariant | null;
|
|
477
466
|
buttonText?: string | null;
|
|
@@ -547,10 +536,9 @@ export type CheckoutContent = {
|
|
|
547
536
|
emptyStateText?: string | null;
|
|
548
537
|
_sectionStyles?: SectionStylesContent;
|
|
549
538
|
};
|
|
550
|
-
export type SiteFooterContent = {
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
};
|
|
539
|
+
export type SiteFooterContent = Readonly<{
|
|
540
|
+
showBusinessAddress?: boolean | null;
|
|
541
|
+
}>;
|
|
554
542
|
export type SiteHeaderMode = 'default' | 'hidden';
|
|
555
543
|
export type SiteHeaderContent = Readonly<{
|
|
556
544
|
mode?: SiteHeaderMode | null;
|
|
@@ -763,4 +751,3 @@ export type SystemBlockContentByKind = SystemBlockContentByFullKind & {
|
|
|
763
751
|
[K in keyof SystemBlockContentByFullKind as StripBlockPrefix<K & string>]: SystemBlockContentByFullKind[K];
|
|
764
752
|
};
|
|
765
753
|
export type SystemBlockContentFor<K extends string> = K extends keyof SystemBlockContentByKind ? SystemBlockContentByKind[K] : UnknownRecord;
|
|
766
|
-
export {};
|
|
@@ -1,21 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
*
|
|
4
|
-
* The SDK keeps the full theme schema intentionally broad so consumers don't
|
|
5
|
-
* couple to the underlying blocks package, while still exposing the pieces the
|
|
6
|
-
* SDK runtime genuinely reads.
|
|
7
|
-
*/
|
|
8
|
-
export type Theme = {
|
|
9
|
-
header?: {
|
|
10
|
-
variant?: 'classic' | 'centered' | 'transparent' | 'floating';
|
|
11
|
-
[key: string]: unknown;
|
|
12
|
-
};
|
|
13
|
-
footer?: {
|
|
14
|
-
mode?: 'default' | 'blocks' | 'default+blocks' | 'none';
|
|
15
|
-
[key: string]: unknown;
|
|
16
|
-
};
|
|
17
|
-
[key: string]: unknown;
|
|
18
|
-
};
|
|
1
|
+
/** The SDK consumes the same canonical theme contract as Riverbank rendering. */
|
|
2
|
+
export type { Theme } from '../../../theme-core/src/index';
|
|
19
3
|
export declare const colorTokens: readonly ["background/base", "background/elevated", "surface/base", "surface/subtle", "surface/inverted", "content/primary", "content/secondary", "accent/primary", "accent/secondary", "border/base"];
|
|
20
4
|
export declare const typographyTokens: readonly ["display/hero", "display/section", "heading/large", "heading/medium", "heading/small", "body/normal", "body/small", "caption"];
|
|
21
5
|
export declare const spacingTokens: readonly ["none", "3xs", "2xs", "xs", "sm", "md", "lg", "xl", "2xl", "3xl"];
|
|
@@ -21,9 +21,9 @@ export declare const fieldTypeEnum: z.ZodEnum<{
|
|
|
21
21
|
select: "select";
|
|
22
22
|
link: "link";
|
|
23
23
|
media: "media";
|
|
24
|
+
repeater: "repeater";
|
|
24
25
|
group: "group";
|
|
25
26
|
richText: "richText";
|
|
26
|
-
repeater: "repeater";
|
|
27
27
|
}>;
|
|
28
28
|
/**
|
|
29
29
|
* Combined field schema supporting all field types.
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
* This approach ensures CSS rules reference classNames that actually exist
|
|
11
11
|
* in the layout by applying patches programmatically between passes.
|
|
12
12
|
*/
|
|
13
|
-
import { parseRichTextInlineMarkdown, parseRichTextParagraphInlineMarkdown
|
|
13
|
+
import { parseRichTextInlineMarkdown, parseRichTextParagraphInlineMarkdown } from '../../../blocks/src/index';
|
|
14
|
+
import { type RichTextDoc } from '../../../blocks/src/system/manifest/richTextSchema';
|
|
14
15
|
import type { HtmlToManifestInput, HtmlToManifestOutput, ConversionResult, ConverterOptions } from './types';
|
|
15
16
|
import { DEFAULT_MANIFEST_MODEL } from './constants';
|
|
16
17
|
export { DEFAULT_MANIFEST_MODEL };
|
|
@@ -21,15 +22,14 @@ export { DEFAULT_MANIFEST_MODEL };
|
|
|
21
22
|
* current paragraph as TipTap hardBreak nodes for line-oriented content such as
|
|
22
23
|
* addresses and opening hours.
|
|
23
24
|
*/
|
|
24
|
-
declare function stringToTipTapDoc(text: string):
|
|
25
|
+
declare function stringToTipTapDoc(text: string): RichTextDoc;
|
|
25
26
|
/**
|
|
26
27
|
* Coerce a richText defaultValue to TipTap format.
|
|
27
28
|
* Handles:
|
|
28
29
|
* - Plain strings → TipTap doc with paragraphs
|
|
29
30
|
* - Already valid TipTap docs → pass through
|
|
30
|
-
* - Legacy { doc: {...} } wrapper → unwrap
|
|
31
31
|
*/
|
|
32
|
-
declare function coerceRichTextDefaultValue(value: unknown):
|
|
32
|
+
declare function coerceRichTextDefaultValue(value: unknown): RichTextDoc | null;
|
|
33
33
|
export declare function convertHtmlToManifest(input: HtmlToManifestInput, options: ConverterOptions): Promise<ConversionResult>;
|
|
34
34
|
/**
|
|
35
35
|
* Validate HTML-to-manifest output structure.
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* the SDK's public type surface must remain SDK-owned so consumers don't need
|
|
6
6
|
* to install `@riverbankcms/blocks`.
|
|
7
7
|
*/
|
|
8
|
-
import { applyBindings as blocksApplyBindings, applyBindingsToContent as blocksApplyBindingsToContent,
|
|
8
|
+
import { applyBindings as blocksApplyBindings, applyBindingsToContent as blocksApplyBindingsToContent, getPath as blocksGetPath, applyTransform as blocksApplyTransform, extractFirstParagraph as blocksExtractFirstParagraph, isBindingDescriptorLike as blocksIsBindingDescriptorLike, isRecord as blocksIsRecord } from '../../../../blocks/src/bindings/index';
|
|
9
9
|
import type { BindingSource, BindingDescriptor, BindingInput, BindingContext } from '../../contracts';
|
|
10
10
|
export type { BindingSource, BindingDescriptor, BindingInput, BindingMap, BindingContext } from '../../contracts';
|
|
11
11
|
export declare const TRANSFORMS: {
|
|
@@ -19,7 +19,6 @@ export declare const isRecord: typeof blocksIsRecord;
|
|
|
19
19
|
export declare const isBindingDescriptor: (value: unknown) => value is BindingDescriptor;
|
|
20
20
|
export declare const isBindingDescriptorLike: typeof blocksIsBindingDescriptorLike;
|
|
21
21
|
export declare const normalizeBindingInput: (value: BindingInput) => BindingDescriptor | null;
|
|
22
|
-
export declare const normalizeBindingOutput: typeof blocksNormalizeBindingOutput;
|
|
23
22
|
export declare const applyBindings: typeof blocksApplyBindings;
|
|
24
23
|
export declare const applyBindingsToContent: typeof blocksApplyBindingsToContent;
|
|
25
24
|
export declare const resolveBindingValue: (descriptor: BindingDescriptor, context: BindingContext) => unknown;
|
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { loadPage } from './loadPage';
|
|
5
5
|
export type { LoadPageParams, LoadPageResult } from './loadPage';
|
|
6
|
-
export { applyBindings
|
|
6
|
+
export { applyBindings } from './bindings';
|
|
7
7
|
export type { BindingContext } from './bindings';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EventScheduleScope as SystemEventScheduleScope, EventSurfacePreset as SystemEventSurfacePreset } from '../../contracts/system-block-content';
|
|
1
|
+
import type { EventScheduleScope as SystemEventScheduleScope, EventSurfacePreset as SystemEventSurfacePreset, RichTextDoc as SystemRichTextDoc } from '../../contracts/system-block-content';
|
|
2
2
|
import type { PublicTeamMemberSummary } from '../../../../api/src/index';
|
|
3
3
|
import type { BookingFlexibleBalanceConfig, BookingInstalmentPlanConfig, LocationCoordinates, PublicCoursePriceDisplay, PublicEventPriceDisplay, PublicEventPricing, PublicEventPricingType } from '../../../../core/src/index';
|
|
4
4
|
import type { AccordionIslandProps as BlocksAccordionIslandProps, BookingFormConfig as BlocksBookingFormConfig, BookingFormInteractiveIslandProps as BlocksBookingFormIslandProps, BookingFormService as BlocksBookingFormService, CarouselIslandProps as BlocksCarouselIslandProps, CourseRegistrationInteractiveIslandProps as BlocksCourseRegistrationIslandProps, CartDisplay as BlocksCartDisplay, CartInteractiveIslandProps as BlocksCartIslandProps, CartLineDisplay as BlocksCartLineDisplay, CheckoutDisplay as BlocksCheckoutDisplay, CheckoutInteractiveIslandProps as BlocksCheckoutIslandProps, EventCalendarInteractiveIslandProps as BlocksEventCalendarIslandProps, EventCombinedInteractiveIslandProps as BlocksEventCombinedIslandProps, EventDetailsContentEntry as BlocksEventDetailsContentEntry, EventDetailsIslandProps as BlocksEventDetailsIslandProps, EventDetailsOccurrenceContext as BlocksEventDetailsOccurrenceContext, LocationMapIslandProps as BlocksLocationMapIslandProps, EventRegistrationInteractiveIslandProps as BlocksEventRegistrationIslandProps, EventListingDisplay as BlocksEventListingDisplay, EventListingHydration as BlocksEventListingHydration, EventListingInteractiveIslandProps as BlocksEventListingIslandProps, PublicEvent as BlocksPublicEvent, FormInteractiveIslandProps as BlocksFormIslandProps, HeaderSectionIslandProps as BlocksHeaderSectionIslandProps, MembershipCardDisplay as BlocksMembershipCardDisplay, NewsletterFormInteractiveIslandProps as BlocksNewsletterFormIslandProps, PassCardDisplay as BlocksPassCardDisplay, PassesMembershipsDisplay as BlocksPassesMembershipsDisplay, ProductCardDisplay as BlocksProductCardDisplay, ProductDetailDisplay as BlocksProductDetailDisplay, ProductDetailInteractiveIslandProps as BlocksProductDetailIslandProps, ProductListDisplay as BlocksProductListDisplay, ProductListInteractiveIslandProps as BlocksProductListIslandProps, ProductVariantOptionDisplay as BlocksProductVariantOptionDisplay, ShopInteractiveIslandProps as BlocksShopIslandProps } from '../../../../blocks/src/contracts/index';
|
|
@@ -49,18 +49,7 @@ export type EventCategory = {
|
|
|
49
49
|
};
|
|
50
50
|
export type PricingType = PublicEventPricingType;
|
|
51
51
|
export type { PublicCoursePriceDisplay, PublicEventPriceDisplay, PublicEventPricing, };
|
|
52
|
-
export type RichTextDoc =
|
|
53
|
-
type: 'doc';
|
|
54
|
-
content?: Array<{
|
|
55
|
-
type: string;
|
|
56
|
-
content?: Array<{
|
|
57
|
-
type: string;
|
|
58
|
-
text?: string;
|
|
59
|
-
[key: string]: unknown;
|
|
60
|
-
}>;
|
|
61
|
-
[key: string]: unknown;
|
|
62
|
-
}>;
|
|
63
|
-
};
|
|
52
|
+
export type RichTextDoc = SystemRichTextDoc;
|
|
64
53
|
export type EventSurfacePreset = SystemEventSurfacePreset;
|
|
65
54
|
export type EventScheduleScope = Exclude<SystemEventScheduleScope, 'any'>;
|
|
66
55
|
export type AccessRestriction = 'none' | 'category';
|
|
@@ -7,32 +7,3 @@ import type { ZodTypeAny } from 'zod';
|
|
|
7
7
|
export type { Theme } from '../contracts';
|
|
8
8
|
export declare const themeSchema: ZodTypeAny;
|
|
9
9
|
export { loadLocalTheme, listLocalThemes, type LoadedTheme } from './loader';
|
|
10
|
-
/**
|
|
11
|
-
* Apply a Builder theme to the DOM by injecting CSS variables
|
|
12
|
-
*
|
|
13
|
-
* @param theme - The theme object from Riverbank CMS
|
|
14
|
-
* @param element - The element to apply the theme to (default: document.documentElement)
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```ts
|
|
18
|
-
* const site = await client.getSite({ slug: 'my-site' });
|
|
19
|
-
* applyTheme(site.theme);
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
export declare function applyTheme(theme: Record<string, unknown>, element?: HTMLElement): void;
|
|
23
|
-
/**
|
|
24
|
-
* Create a theme object with type-safe defaults
|
|
25
|
-
*
|
|
26
|
-
* @param partial - Partial theme configuration
|
|
27
|
-
* @returns Complete theme object
|
|
28
|
-
*
|
|
29
|
-
* @example
|
|
30
|
-
* ```ts
|
|
31
|
-
* const customTheme = createTheme({
|
|
32
|
-
* colors: {
|
|
33
|
-
* primary: '#007bff',
|
|
34
|
-
* },
|
|
35
|
-
* });
|
|
36
|
-
* ```
|
|
37
|
-
*/
|
|
38
|
-
export declare function createTheme(partial?: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from 'zod';
|
|
2
|
+
import { type RichTextDoc } from '../../core/src/index';
|
|
2
3
|
import { type BlockRef, type BlocksRef, type CommandRef, type ContentEntryRef, type CourseRef, type PassProductRef, type MembershipProductRef, type BookingCustomerRef, type CustomerPassRef, type CustomerMembershipRef, type AppointmentBookingRef, type CourseEnrollmentRef, type EventRegistrationRef, type PassRedemptionRef, type OrderRef, type EventSeriesRef, type FormRef, type FooterRef, type MediaRef, type NavigationRef, type PageRef, type SiteStyleRef, type StaffRef, type TicketTypeRef, type VenueRef, type EventCategoryRef, type AppointmentServiceRef, type AppointmentResourceRef, type AppointmentAvailabilityRef, type SiteCommandSiteRef } from './refs';
|
|
3
4
|
export declare const navigationLocations: readonly ["main", "header", "footer"];
|
|
4
5
|
export type NavigationLocation = (typeof navigationLocations)[number];
|
|
@@ -334,8 +335,8 @@ export declare const applySiteStyleSelectionCommandSchema: z.ZodObject<{
|
|
|
334
335
|
}, z.core.$strip>;
|
|
335
336
|
scale: z.ZodEnum<{
|
|
336
337
|
compact: "compact";
|
|
337
|
-
balanced: "balanced";
|
|
338
338
|
spacious: "spacious";
|
|
339
|
+
balanced: "balanced";
|
|
339
340
|
minorThird: "minorThird";
|
|
340
341
|
majorThird: "majorThird";
|
|
341
342
|
perfectFourth: "perfectFourth";
|
|
@@ -618,7 +619,7 @@ export declare const upsertFooterContentCommandSchema: z.ZodObject<{
|
|
|
618
619
|
type: z.ZodLiteral<"upsertFooterContent">;
|
|
619
620
|
ref: z.ZodPipe<z.ZodString, z.ZodTransform<FooterRef, string>>;
|
|
620
621
|
input: z.ZodObject<{
|
|
621
|
-
bottomText: z.ZodOptional<z.ZodNullable<z.
|
|
622
|
+
bottomText: z.ZodOptional<z.ZodNullable<z.ZodCustom<RichTextDoc, RichTextDoc>>>;
|
|
622
623
|
}, z.core.$strict>;
|
|
623
624
|
}, z.core.$strict>;
|
|
624
625
|
export declare const upsertContentEntryCommandSchema: z.ZodObject<{
|
|
@@ -865,8 +866,10 @@ export declare const upsertEventSeriesCommandSchema: z.ZodObject<{
|
|
|
865
866
|
}, z.core.$strict>>>;
|
|
866
867
|
content: z.ZodOptional<z.ZodObject<{
|
|
867
868
|
summary: z.ZodOptional<z.ZodString>;
|
|
868
|
-
body: z.ZodOptional<z.
|
|
869
|
-
image: z.ZodOptional<z.
|
|
869
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RichTextDoc, RichTextDoc>]>>;
|
|
870
|
+
image: z.ZodOptional<z.ZodObject<{
|
|
871
|
+
identifier: z.ZodString;
|
|
872
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
870
873
|
imageRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>;
|
|
871
874
|
mediaRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>>>;
|
|
872
875
|
contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
|
|
@@ -979,8 +982,10 @@ export declare const upsertCourseCommandSchema: z.ZodObject<{
|
|
|
979
982
|
}, z.core.$strict>>>;
|
|
980
983
|
content: z.ZodOptional<z.ZodObject<{
|
|
981
984
|
summary: z.ZodOptional<z.ZodString>;
|
|
982
|
-
body: z.ZodOptional<z.
|
|
983
|
-
image: z.ZodOptional<z.
|
|
985
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RichTextDoc, RichTextDoc>]>>;
|
|
986
|
+
image: z.ZodOptional<z.ZodObject<{
|
|
987
|
+
identifier: z.ZodString;
|
|
988
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
984
989
|
imageRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>;
|
|
985
990
|
mediaRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>>>;
|
|
986
991
|
contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
|
|
@@ -1710,8 +1715,8 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1710
1715
|
}, z.core.$strip>;
|
|
1711
1716
|
scale: z.ZodEnum<{
|
|
1712
1717
|
compact: "compact";
|
|
1713
|
-
balanced: "balanced";
|
|
1714
1718
|
spacious: "spacious";
|
|
1719
|
+
balanced: "balanced";
|
|
1715
1720
|
minorThird: "minorThird";
|
|
1716
1721
|
majorThird: "majorThird";
|
|
1717
1722
|
perfectFourth: "perfectFourth";
|
|
@@ -1941,7 +1946,7 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1941
1946
|
type: z.ZodLiteral<"upsertFooterContent">;
|
|
1942
1947
|
ref: z.ZodPipe<z.ZodString, z.ZodTransform<FooterRef, string>>;
|
|
1943
1948
|
input: z.ZodObject<{
|
|
1944
|
-
bottomText: z.ZodOptional<z.ZodNullable<z.
|
|
1949
|
+
bottomText: z.ZodOptional<z.ZodNullable<z.ZodCustom<RichTextDoc, RichTextDoc>>>;
|
|
1945
1950
|
}, z.core.$strict>;
|
|
1946
1951
|
}, z.core.$strict>, z.ZodObject<{
|
|
1947
1952
|
type: z.ZodLiteral<"upsertContentEntry">;
|
|
@@ -2191,8 +2196,10 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
2191
2196
|
}, z.core.$strict>>>;
|
|
2192
2197
|
content: z.ZodOptional<z.ZodObject<{
|
|
2193
2198
|
summary: z.ZodOptional<z.ZodString>;
|
|
2194
|
-
body: z.ZodOptional<z.
|
|
2195
|
-
image: z.ZodOptional<z.
|
|
2199
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RichTextDoc, RichTextDoc>]>>;
|
|
2200
|
+
image: z.ZodOptional<z.ZodObject<{
|
|
2201
|
+
identifier: z.ZodString;
|
|
2202
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
2196
2203
|
imageRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>;
|
|
2197
2204
|
mediaRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>>>;
|
|
2198
2205
|
contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
|
|
@@ -2302,8 +2309,10 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
2302
2309
|
}, z.core.$strict>>>;
|
|
2303
2310
|
content: z.ZodOptional<z.ZodObject<{
|
|
2304
2311
|
summary: z.ZodOptional<z.ZodString>;
|
|
2305
|
-
body: z.ZodOptional<z.
|
|
2306
|
-
image: z.ZodOptional<z.
|
|
2312
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RichTextDoc, RichTextDoc>]>>;
|
|
2313
|
+
image: z.ZodOptional<z.ZodObject<{
|
|
2314
|
+
identifier: z.ZodString;
|
|
2315
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
2307
2316
|
imageRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>;
|
|
2308
2317
|
mediaRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>>>;
|
|
2309
2318
|
contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
|
|
@@ -2951,8 +2960,8 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
|
|
|
2951
2960
|
}, z.core.$strip>;
|
|
2952
2961
|
scale: z.ZodEnum<{
|
|
2953
2962
|
compact: "compact";
|
|
2954
|
-
balanced: "balanced";
|
|
2955
2963
|
spacious: "spacious";
|
|
2964
|
+
balanced: "balanced";
|
|
2956
2965
|
minorThird: "minorThird";
|
|
2957
2966
|
majorThird: "majorThird";
|
|
2958
2967
|
perfectFourth: "perfectFourth";
|
|
@@ -3182,7 +3191,7 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
|
|
|
3182
3191
|
type: z.ZodLiteral<"upsertFooterContent">;
|
|
3183
3192
|
ref: z.ZodPipe<z.ZodString, z.ZodTransform<FooterRef, string>>;
|
|
3184
3193
|
input: z.ZodObject<{
|
|
3185
|
-
bottomText: z.ZodOptional<z.ZodNullable<z.
|
|
3194
|
+
bottomText: z.ZodOptional<z.ZodNullable<z.ZodCustom<RichTextDoc, RichTextDoc>>>;
|
|
3186
3195
|
}, z.core.$strict>;
|
|
3187
3196
|
}, z.core.$strict>, z.ZodObject<{
|
|
3188
3197
|
type: z.ZodLiteral<"upsertContentEntry">;
|
|
@@ -3432,8 +3441,10 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
|
|
|
3432
3441
|
}, z.core.$strict>>>;
|
|
3433
3442
|
content: z.ZodOptional<z.ZodObject<{
|
|
3434
3443
|
summary: z.ZodOptional<z.ZodString>;
|
|
3435
|
-
body: z.ZodOptional<z.
|
|
3436
|
-
image: z.ZodOptional<z.
|
|
3444
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RichTextDoc, RichTextDoc>]>>;
|
|
3445
|
+
image: z.ZodOptional<z.ZodObject<{
|
|
3446
|
+
identifier: z.ZodString;
|
|
3447
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
3437
3448
|
imageRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>;
|
|
3438
3449
|
mediaRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>>>;
|
|
3439
3450
|
contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
|
|
@@ -3543,8 +3554,10 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
|
|
|
3543
3554
|
}, z.core.$strict>>>;
|
|
3544
3555
|
content: z.ZodOptional<z.ZodObject<{
|
|
3545
3556
|
summary: z.ZodOptional<z.ZodString>;
|
|
3546
|
-
body: z.ZodOptional<z.
|
|
3547
|
-
image: z.ZodOptional<z.
|
|
3557
|
+
body: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodCustom<RichTextDoc, RichTextDoc>]>>;
|
|
3558
|
+
image: z.ZodOptional<z.ZodObject<{
|
|
3559
|
+
identifier: z.ZodString;
|
|
3560
|
+
}, z.core.$catchall<z.ZodUnknown>>>;
|
|
3548
3561
|
imageRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>;
|
|
3549
3562
|
mediaRefs: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodPipe<z.ZodString, z.ZodTransform<MediaRef, string>>>>>;
|
|
3550
3563
|
contentEntryRef: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContentEntryRef, string>>>;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* A button variant may declare a trailing `affordance` icon (see
|
|
5
5
|
* `ButtonVariantAffordance`). The generated button CSS renders that icon as a
|
|
6
|
-
* masked `::after` pseudo-element, so the
|
|
6
|
+
* masked `::after` pseudo-element, so the theme supplies it to every
|
|
7
7
|
* button of the variant without per-node authoring.
|
|
8
8
|
*
|
|
9
9
|
* Icons live in the `@riverbankcms/blocks` registry, but the button CSS is
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
* the *affordance-eligible* icon path data (arrows/chevrons — the action-oriented
|
|
12
12
|
* subset). The `d` values below are duplicated verbatim from the matching entries
|
|
13
13
|
* in `blocks/src/system/icons/svg.tsx`; ids match the registry ids exactly so a
|
|
14
|
-
* node-level `trailingIcon` and a
|
|
14
|
+
* node-level `trailingIcon` and a theme-owned `affordance` share one id space.
|
|
15
15
|
*
|
|
16
16
|
* Keep this set intentionally tiny. It is not the full CTA icon set — only the
|
|
17
17
|
* shapes that read as a trailing affordance.
|
|
@@ -15,7 +15,6 @@ export interface ButtonVariantCore {
|
|
|
15
15
|
export interface ButtonCoreSettings {
|
|
16
16
|
readonly corners: 'square' | 'soft' | 'rounded' | 'pill';
|
|
17
17
|
readonly shadow: 'none' | 'low' | 'medium' | 'high';
|
|
18
|
-
readonly borderWidth: 'none' | 'thin' | 'medium' | 'thick';
|
|
19
18
|
readonly fontWeight?: number;
|
|
20
19
|
readonly textTransform?: 'none' | 'uppercase' | 'lowercase' | 'capitalize';
|
|
21
20
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { type ButtonEffectApplication } from './types';
|
|
2
|
+
export type ButtonUnsupportedEffectReason = 'alpha_requires_surface' | 'changes_foreground' | 'changes_border' | 'changes_shadow_colour' | 'changes_element_opacity' | 'unresolved_background_overlay' | 'not_button_effect';
|
|
2
3
|
export type ButtonEffectPolicy = Readonly<{
|
|
3
4
|
classification: 'colour-transition';
|
|
4
5
|
transition: Readonly<{
|
|
@@ -9,6 +10,8 @@ export type ButtonEffectPolicy = Readonly<{
|
|
|
9
10
|
}>;
|
|
10
11
|
}> | Readonly<{
|
|
11
12
|
classification: 'non-colour';
|
|
13
|
+
}> | Readonly<{
|
|
14
|
+
classification: 'decorative-colour';
|
|
12
15
|
}> | Readonly<{
|
|
13
16
|
classification: 'unsupported-colour' | 'unsupported-background-overlay' | 'not-button';
|
|
14
17
|
reason: ButtonUnsupportedEffectReason;
|
|
@@ -101,22 +104,24 @@ export declare const BUTTON_EFFECT_POLICIES: {
|
|
|
101
104
|
readonly classification: "non-colour";
|
|
102
105
|
};
|
|
103
106
|
readonly 'border-glow': {
|
|
104
|
-
readonly classification: "
|
|
107
|
+
readonly classification: "unsupported-colour";
|
|
108
|
+
readonly reason: "changes_shadow_colour";
|
|
105
109
|
};
|
|
106
110
|
readonly 'drop-shadow': {
|
|
107
|
-
readonly classification: "
|
|
111
|
+
readonly classification: "decorative-colour";
|
|
108
112
|
};
|
|
109
113
|
readonly 'inner-shadow': {
|
|
110
|
-
readonly classification: "
|
|
114
|
+
readonly classification: "decorative-colour";
|
|
111
115
|
};
|
|
112
116
|
readonly 'neumorphic-shadow': {
|
|
113
|
-
readonly classification: "
|
|
117
|
+
readonly classification: "decorative-colour";
|
|
114
118
|
};
|
|
115
119
|
readonly 'outer-glow': {
|
|
116
|
-
readonly classification: "
|
|
120
|
+
readonly classification: "unsupported-colour";
|
|
121
|
+
readonly reason: "changes_shadow_colour";
|
|
117
122
|
};
|
|
118
123
|
readonly 'retro-3d-shadow': {
|
|
119
|
-
readonly classification: "
|
|
124
|
+
readonly classification: "decorative-colour";
|
|
120
125
|
};
|
|
121
126
|
readonly 'scale-up': {
|
|
122
127
|
readonly classification: "non-colour";
|
|
@@ -137,11 +142,19 @@ export declare const BUTTON_EFFECT_POLICIES: {
|
|
|
137
142
|
readonly classification: "non-colour";
|
|
138
143
|
};
|
|
139
144
|
readonly 'sketchy-border': {
|
|
140
|
-
readonly classification: "
|
|
145
|
+
readonly classification: "decorative-colour";
|
|
141
146
|
};
|
|
142
147
|
readonly 'pulse-animation': {
|
|
143
|
-
readonly classification: "
|
|
148
|
+
readonly classification: "unsupported-colour";
|
|
149
|
+
readonly reason: "changes_element_opacity";
|
|
144
150
|
};
|
|
145
151
|
};
|
|
152
|
+
export type ButtonEffectOptionsValidation = Readonly<{
|
|
153
|
+
ok: true;
|
|
154
|
+
}> | Readonly<{
|
|
155
|
+
ok: false;
|
|
156
|
+
option: string;
|
|
157
|
+
}>;
|
|
158
|
+
export declare function validateButtonEffectOptions(effect: ButtonEffectApplication): ButtonEffectOptionsValidation;
|
|
146
159
|
export declare function getButtonEffectPolicy(effectId: string): ButtonEffectPolicy | null;
|
|
147
160
|
export declare function classifyButtonEffectId(effectId: string): ButtonEffectClassification;
|
|
@@ -20,8 +20,7 @@ export declare const fadeBackgroundEffect: EffectPreset;
|
|
|
20
20
|
/**
|
|
21
21
|
* Reduce opacity on hover (simple opacity reduction)
|
|
22
22
|
*
|
|
23
|
-
*
|
|
24
|
-
* This is useful for default button styles that need simple hover feedback.
|
|
23
|
+
* Navigation-link effect that reduces opacity by a percentage (default 15%).
|
|
25
24
|
*/
|
|
26
25
|
export declare const opacityReduceEffect: EffectPreset;
|
|
27
26
|
/**
|
|
@@ -8,7 +8,6 @@ export declare const borderColorChangeEffect: EffectPreset;
|
|
|
8
8
|
/**
|
|
9
9
|
* Sketchy/hand-drawn border effect
|
|
10
10
|
*
|
|
11
|
-
* Creates an imperfect, hand-drawn appearance using
|
|
12
|
-
* filters, and slight rotation to simulate hand-drawn lines.
|
|
11
|
+
* Creates an imperfect, hand-drawn appearance using slight rotations.
|
|
13
12
|
*/
|
|
14
13
|
export declare const sketchyBorderEffect: EffectPreset;
|
|
@@ -57,8 +57,10 @@ export declare const animatedGradientBorderFillEffect: EffectPreset;
|
|
|
57
57
|
* Creates an animated underline that grows from one side on hover.
|
|
58
58
|
* Uses ::after pseudo-element positioned at the bottom of the button.
|
|
59
59
|
*
|
|
60
|
+
* The underline inherits `currentColor`, so it cannot create a second button
|
|
61
|
+
* colour authority or drift from the canonical foreground.
|
|
62
|
+
*
|
|
60
63
|
* Options:
|
|
61
|
-
* - colorToken: Color token for the border (default: neutral-400)
|
|
62
64
|
* - height: Height of the border in pixels (default: 1)
|
|
63
65
|
* - origin: Transform origin - 'left', 'center', or 'right' (default: left)
|
|
64
66
|
*/
|
|
@@ -31,8 +31,8 @@ export declare const neumorphicShadowEffect: EffectPreset;
|
|
|
31
31
|
/**
|
|
32
32
|
* Outer glow effect
|
|
33
33
|
*
|
|
34
|
-
* Creates an outer glow using box-shadow with no
|
|
35
|
-
*
|
|
34
|
+
* Creates an outer glow around a navigation link using box-shadow with no
|
|
35
|
+
* offset.
|
|
36
36
|
*/
|
|
37
37
|
export declare const outerGlowEffect: EffectPreset;
|
|
38
38
|
/**
|
|
@@ -4,10 +4,10 @@ import type { Theme } from '../../schema';
|
|
|
4
4
|
import type { InteractiveElementConfig } from '../../interactive/types';
|
|
5
5
|
import type { InteractiveElementType } from '../../interactive/types';
|
|
6
6
|
/**
|
|
7
|
-
* Valid effect preset IDs
|
|
7
|
+
* Valid generic interactive-effect preset IDs.
|
|
8
8
|
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Button variants deliberately use the narrower `ButtonEffectApplication`
|
|
10
|
+
* contract from `buttons/types.ts`; this registry also serves navigation.
|
|
11
11
|
*/
|
|
12
12
|
export type EffectId = 'darken-background' | 'lighten-background' | 'fade-background' | 'opacity-reduce' | 'animated-gradient' | 'background-on-hover' | 'background-on-hover-alpha' | 'border-glow' | 'drop-shadow' | 'inner-shadow' | 'neumorphic-shadow' | 'outer-glow' | 'retro-3d-shadow' | 'scale-up' | 'scale-down' | 'lift' | 'press-down' | 'pop' | 'aurora-glow' | 'cosmic-stardust' | 'gradient-border-fill' | 'animated-gradient-border-fill' | 'border-bottom-grow' | 'gradient-text' | 'text-color-change' | 'border-color-change' | 'sketchy-border' | 'pulse-animation' | 'nav-underline' | 'nav-frosted-base' | 'nav-frosted-hover' | 'nav-frosted-active';
|
|
13
13
|
/**
|
|
@@ -66,9 +66,10 @@ export interface CustomizableOption {
|
|
|
66
66
|
options?: unknown[];
|
|
67
67
|
}
|
|
68
68
|
/**
|
|
69
|
-
* Effect preset - a reusable CSS generator for
|
|
69
|
+
* Effect preset - a reusable CSS generator for interactive-element effects.
|
|
70
70
|
*
|
|
71
|
-
*
|
|
71
|
+
* The generic registry serves navigation and button emitters. Button persistence
|
|
72
|
+
* is governed by the closed `ButtonEffectApplication` schema, not this catalog.
|
|
72
73
|
* They must use theme tokens (not hardcoded colors) and declare which category they belong to.
|
|
73
74
|
*/
|
|
74
75
|
export interface EffectPreset {
|
|
@@ -89,13 +90,13 @@ export interface EffectPreset {
|
|
|
89
90
|
/**
|
|
90
91
|
* Which interactive element types can use this effect
|
|
91
92
|
*
|
|
92
|
-
* If undefined, the
|
|
93
|
+
* If undefined, the generic emitter supports all interactive element types.
|
|
93
94
|
* Use this to restrict effects that only make sense for certain elements.
|
|
94
95
|
*
|
|
95
96
|
* Examples:
|
|
96
97
|
* - 'button' only: darken-background, lighten-background (require solid background)
|
|
97
98
|
* - 'nav-link' only: nav-underline, nav-frosted
|
|
98
|
-
* - both: scale-up
|
|
99
|
+
* - both: scale-up
|
|
99
100
|
*/
|
|
100
101
|
applicableTo?: InteractiveElementType[];
|
|
101
102
|
/**
|
|
@@ -128,14 +129,3 @@ export interface EffectPreset {
|
|
|
128
129
|
*/
|
|
129
130
|
isApplicable?: (buttonConfig: ButtonVariant | InteractiveElementConfig) => boolean;
|
|
130
131
|
}
|
|
131
|
-
/**
|
|
132
|
-
* Reference to an effect preset with customization options
|
|
133
|
-
*
|
|
134
|
-
* This is what's stored in ButtonPreset.effects and ButtonVariant.effects
|
|
135
|
-
*/
|
|
136
|
-
export interface EffectReference {
|
|
137
|
-
/** Effect preset ID (type-safe) */
|
|
138
|
-
effectId: EffectId;
|
|
139
|
-
/** User-provided customization options */
|
|
140
|
-
options?: Record<string, unknown>;
|
|
141
|
-
}
|
|
@@ -2,8 +2,8 @@ import type { Theme } from '../schema';
|
|
|
2
2
|
import type { ButtonSystem } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* Class the `button` runtime node adds when it renders its own trailing icon,
|
|
5
|
-
* so a node-level icon suppresses the
|
|
6
|
-
*
|
|
5
|
+
* so a node-level icon suppresses the theme's CSS `::after` affordance.
|
|
6
|
+
* Shared so generator and renderer can't drift.
|
|
7
7
|
*/
|
|
8
8
|
export declare const AFFORDANCE_SUPPRESS_CLASS = "rb-affordance-off";
|
|
9
9
|
export interface GenerateButtonCssOptions {
|
|
@@ -3,11 +3,11 @@ import { type ButtonSystem } from './types';
|
|
|
3
3
|
/**
|
|
4
4
|
* Generate default button system from theme settings.
|
|
5
5
|
*
|
|
6
|
-
* Creates 4 sized variants when theme.buttons is not defined:
|
|
7
|
-
* 1. Primary - primary
|
|
8
|
-
* 2. Secondary - neutral
|
|
9
|
-
* 3. Outline -
|
|
10
|
-
* 4. Ghost -
|
|
6
|
+
* Creates 4 sized canonical variants when theme.buttons is not defined:
|
|
7
|
+
* 1. Primary - solid primary treatment
|
|
8
|
+
* 2. Secondary - solid neutral treatment
|
|
9
|
+
* 3. Outline - surface treatment with a border
|
|
10
|
+
* 4. Ghost - surface treatment without a border
|
|
11
11
|
*
|
|
12
12
|
* All four are sized variants — they inherit padding/fontSize from the theme's
|
|
13
13
|
* `sizes` config (or the system defaults) so they're consistent at any size.
|