@riverbankcms/sdk 0.78.2 → 0.79.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-4DXLYX2V.mjs → PreviewEditorSidebar-56NMJMIK.mjs} +724 -47
- package/dist/{PreviewEditorUI-CS5P4N3P.mjs → PreviewEditorUI-27KJVEET.mjs} +3 -3
- package/dist/SdkPreviewModeRuntime-H4BSP6E7.mjs +8 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +36 -0
- package/dist/_dts/api/src/endpoints.d.ts +55 -0
- package/dist/_dts/api/src/index.d.ts +5 -3
- 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/siteManagementEndpoints.d.ts +16 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -0
- 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/blocks/src/index.d.ts +4 -0
- package/dist/_dts/blocks/src/system/blocks/appointment-booking.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/blog-listing.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/cart.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/checkout.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/collection.d.ts +288 -288
- package/dist/_dts/blocks/src/system/blocks/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 +7 -1
- package/dist/_dts/blocks/src/system/customize/backgrounds.d.ts +170 -0
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +5 -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/runtime/nodes/feature-card-icon.d.ts +13 -0
- 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 +191 -0
- package/dist/_dts/editor-blocks/src/block-editor/BlockCard.d.ts +12 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardBody.d.ts +12 -1
- package/dist/_dts/editor-blocks/src/block-editor/BlockCardHeader.d.ts +12 -2
- package/dist/_dts/editor-blocks/src/block-editor/FeatureCardIconsPanel.d.ts +21 -0
- package/dist/_dts/editor-blocks/src/block-editor/GeneratedIconSetDialog.d.ts +40 -0
- package/dist/_dts/editor-blocks/src/block-editor/SortableBlockItem.d.ts +11 -1
- package/dist/_dts/editor-blocks/src/block-editor/featureCardIconActions.d.ts +82 -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/previewCustomizeActions.d.ts +17 -0
- package/dist/_dts/preview-next/src/client/preview/PageDesignEditorStateContext.d.ts +4 -0
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +3 -2
- package/dist/_dts/preview-next/src/client/preview/previewCustomizeHistory.d.ts +6 -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/types.d.ts +2 -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 +19 -2
- 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/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +3 -3
- package/dist/_dts/theme-core/src/schema.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +25 -2
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +5 -5
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +4 -4
- package/dist/_dts/theme-core/src/tokens/themeColorTokens.d.ts +2 -0
- package/dist/_dts/ui/src/combobox.d.ts +1 -0
- package/dist/{chunk-RGTOD4AJ.mjs → chunk-4HCW7FHJ.mjs} +491 -56
- package/dist/{chunk-OKMBEAXY.mjs → chunk-A3HHFKVT.mjs} +1 -1
- package/dist/{chunk-6HYXHRAI.mjs → chunk-GP555I66.mjs} +177 -7
- package/dist/{chunk-CR5HKAGU.mjs → chunk-K2IIF34C.mjs} +55 -0
- package/dist/{chunk-4QEGTLK6.mjs → chunk-LCY32PXF.mjs} +1 -1
- package/dist/{chunk-MCRQMPET.mjs → chunk-V47ZU33I.mjs} +1745 -157
- package/dist/cli/index.mjs +1169 -171
- package/dist/cli/init-docs/content/workflow-editor-workflows.md +2 -0
- package/dist/cli/init-docs/content/workflow-isr-revalidation.md +138 -0
- package/dist/client/{accordion-PLYNJIIM.mjs → accordion-QLA7KBYO.mjs} +1 -1
- package/dist/client/{bookingForm-BXAP6AO7.mjs → bookingForm-PYZIPA5G.mjs} +3 -3
- package/dist/client/bookings.mjs +110 -2
- package/dist/client/{carousel-TRBXDHGF.mjs → carousel-5EIULWBI.mjs} +2 -2
- package/dist/client/{cart-Z7H3HJRS.mjs → cart-DOP3FNI4.mjs} +5 -5
- package/dist/client/{checkout-WAFCUBIX.mjs → checkout-BVMF6FBV.mjs} +5 -5
- package/dist/client/{chunk-JRDUHZCT.mjs → chunk-44K2U3QI.mjs} +4 -4
- package/dist/client/{chunk-UVQEJJTN.mjs → chunk-CCNTDRCF.mjs} +1 -1
- package/dist/client/{chunk-ZI3LLBPZ.mjs → chunk-GG4M2NP6.mjs} +1 -1
- package/dist/client/{chunk-JGXPTEI2.mjs → chunk-R5ESWNKX.mjs} +6 -3
- package/dist/client/{chunk-CWGTG37I.mjs → chunk-TYONZMST.mjs} +1 -1
- package/dist/client/{chunk-75OUS5MT.mjs → chunk-UDS3NTWA.mjs} +1 -1
- package/dist/client/{chunk-DNRGY432.mjs → chunk-V6M5FCR5.mjs} +1 -1
- package/dist/client/{chunk-FUXW6VW2.mjs → chunk-YLDYVRZL.mjs} +4 -4
- package/dist/client/client.mjs +21329 -19729
- package/dist/client/{courseRegistration-AHFQHWIJ.mjs → courseRegistration-E6EAA6NL.mjs} +3 -3
- package/dist/client/{eventCalendar-LDXTV5R7.mjs → eventCalendar-HBG3HAK6.mjs} +5 -5
- package/dist/client/{eventCombined-A4JGTNJO.mjs → eventCombined-6K5ZZWAK.mjs} +5 -5
- package/dist/client/{eventDetails-4YXTZ7EG.mjs → eventDetails-Q75ICXLT.mjs} +5 -5
- package/dist/client/{eventListing-P72TPFFM.mjs → eventListing-27P5F7DZ.mjs} +5 -5
- package/dist/client/{eventRegistration-LSYJHGMT.mjs → eventRegistration-IQ7AMASR.mjs} +5 -5
- package/dist/client/{form-AOPYOKOW.mjs → form-JRTD65FN.mjs} +1 -1
- package/dist/client/{headerSection-5TFYDFVQ.mjs → headerSection-7FPSSZHS.mjs} +2 -2
- package/dist/client/hooks.mjs +350 -35
- package/dist/client/{locationMap-QSZ3ZVAZ.mjs → locationMap-7NGFNYBH.mjs} +1 -1
- package/dist/client/{newsletterForm-KTRHZY52.mjs → newsletterForm-F3BADCI2.mjs} +1 -1
- package/dist/client/{productDetail-N4E775RG.mjs → productDetail-V3HP7ITJ.mjs} +5 -5
- package/dist/client/{productList-UGUQ2S45.mjs → productList-L3EGJUF2.mjs} +5 -5
- package/dist/client/rendering/client.mjs +2713 -1382
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +2014 -414
- package/dist/client/{shop-VHSZEEQ2.mjs → shop-DQUB5E2C.mjs} +5 -5
- package/dist/preview-next/before-render.mjs +55 -0
- package/dist/preview-next/client/runtime.mjs +5 -5
- package/dist/preview-next/middleware.mjs +55 -0
- package/dist/{sdk-runtime-WHPJEF5G.mjs → sdk-runtime-AF6KXJU4.mjs} +6 -6
- package/dist/server/components.mjs +2169 -781
- package/dist/server/config-validation.mjs +350 -35
- package/dist/server/config.mjs +350 -35
- package/dist/server/data.mjs +350 -35
- package/dist/server/index.mjs +64 -1
- package/dist/server/next/revalidate.mjs +229 -34
- package/dist/server/next.mjs +2307 -818
- package/dist/server/page-converter.mjs +275 -34
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2174 -786
- package/dist/server/rendering.mjs +2187 -799
- package/dist/server/routing.mjs +767 -50
- package/dist/server/server.mjs +351 -36
- package/dist/server/theme-bridge.mjs +164 -2
- package/dist/server/theme.mjs +2 -2
- package/dist/server/webhooks.mjs +129 -25
- package/dist/styles/index.css +55 -0
- package/package.json +2 -1
- package/dist/SdkPreviewModeRuntime-IJDHTW4W.mjs +0 -8
|
@@ -10,6 +10,7 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
|
|
|
10
10
|
readonly variants: {
|
|
11
11
|
readonly carousel: NodeDefinition;
|
|
12
12
|
readonly grid: NodeDefinition;
|
|
13
|
+
readonly 'split-grid': NodeDefinition;
|
|
13
14
|
};
|
|
14
15
|
readonly defaultVariant: "carousel";
|
|
15
16
|
readonly variantOptions: {
|
|
@@ -23,6 +24,11 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
|
|
|
23
24
|
readonly description: "Responsive grid layout";
|
|
24
25
|
readonly icon: "Grid";
|
|
25
26
|
};
|
|
27
|
+
readonly 'split-grid': {
|
|
28
|
+
readonly label: "Split grid";
|
|
29
|
+
readonly description: "Heading on the left with testimonial cards on the right";
|
|
30
|
+
readonly icon: "PanelLeft";
|
|
31
|
+
};
|
|
26
32
|
};
|
|
27
33
|
readonly additionalFields: import("../../../../block-form/src/backend/index").FieldDefinition[];
|
|
28
34
|
readonly description: "Display customer testimonials in carousel or grid layouts.";
|
|
@@ -41,7 +47,7 @@ export declare const testimonialsManifest: import("..").DefinedBlockManifest<imp
|
|
|
41
47
|
};
|
|
42
48
|
}>>;
|
|
43
49
|
export type TestimonialsBlockContent = {
|
|
44
|
-
variant?: 'carousel' | 'grid' | null;
|
|
50
|
+
variant?: 'carousel' | 'grid' | 'split-grid' | null;
|
|
45
51
|
heading?: string | null;
|
|
46
52
|
subheading?: string | null;
|
|
47
53
|
avatarLayout?: 'above-centered' | 'inline-left' | 'hidden' | null;
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
import { type MediaAssetId } from '../../../../core/src/index';
|
|
2
|
+
import { type ThemeColorToken } from '../../../../theme-core/src/tokens/index';
|
|
3
|
+
import type { AppearancePresetId, LayoutVariantKey } from '../../../../theme-core/src/site-styles/index';
|
|
4
|
+
export type BackgroundMode = 'default' | 'color' | 'gradient' | 'image';
|
|
5
|
+
export type BackgroundModeCycleDirection = 'prev' | 'next';
|
|
6
|
+
export type GradientPresetId = string & {
|
|
7
|
+
readonly __brand: 'GradientPresetId';
|
|
8
|
+
};
|
|
9
|
+
export type BackgroundOverride = Readonly<{
|
|
10
|
+
kind: 'default';
|
|
11
|
+
}> | Readonly<{
|
|
12
|
+
kind: 'color';
|
|
13
|
+
token: ThemeColorToken;
|
|
14
|
+
}> | Readonly<{
|
|
15
|
+
kind: 'gradient';
|
|
16
|
+
gradientId: GradientPresetId;
|
|
17
|
+
}> | Readonly<{
|
|
18
|
+
kind: 'image';
|
|
19
|
+
mediaId: MediaAssetId;
|
|
20
|
+
}>;
|
|
21
|
+
export type LegacyBackgroundReason = 'unsupported-shape' | 'unsupported-mode' | 'invalid-color-token' | 'arbitrary-gradient-css' | 'missing-gradient-preset-id' | 'invalid-gradient-preset-id' | 'missing-image-media-id' | 'invalid-image-media-id' | 'video-background';
|
|
22
|
+
export type ParsedBackgroundOverride = Readonly<{
|
|
23
|
+
kind: 'supported';
|
|
24
|
+
override: BackgroundOverride;
|
|
25
|
+
}> | Readonly<{
|
|
26
|
+
kind: 'legacy';
|
|
27
|
+
reason: LegacyBackgroundReason;
|
|
28
|
+
background: Readonly<Record<string, unknown>>;
|
|
29
|
+
}>;
|
|
30
|
+
export type BackgroundImagePoolSource = 'current' | 'generated-ambient' | 'previous-background' | 'general-media';
|
|
31
|
+
export type BackgroundImagePoolItem = Readonly<{
|
|
32
|
+
mediaId: MediaAssetId;
|
|
33
|
+
source: BackgroundImagePoolSource;
|
|
34
|
+
label?: string;
|
|
35
|
+
rank?: number;
|
|
36
|
+
}>;
|
|
37
|
+
export type BackgroundContrastTreatment = Readonly<{
|
|
38
|
+
kind: 'theme-foreground';
|
|
39
|
+
minContrastRatio: 4.5;
|
|
40
|
+
}> | Readonly<{
|
|
41
|
+
kind: 'look-owned-image-overlay';
|
|
42
|
+
minContrastRatio: 4.5;
|
|
43
|
+
minOverlayOpacity: 0.64;
|
|
44
|
+
}>;
|
|
45
|
+
export type BackgroundModeCapability = Readonly<{
|
|
46
|
+
kind: 'default';
|
|
47
|
+
}> | Readonly<{
|
|
48
|
+
kind: 'color';
|
|
49
|
+
recommendedTokens: readonly ThemeColorToken[];
|
|
50
|
+
advancedTokens: readonly ThemeColorToken[];
|
|
51
|
+
selectableTokens: readonly ThemeColorToken[];
|
|
52
|
+
treatment: BackgroundContrastTreatment;
|
|
53
|
+
}> | Readonly<{
|
|
54
|
+
kind: 'gradient';
|
|
55
|
+
gradientIds: readonly GradientPresetId[];
|
|
56
|
+
treatment: BackgroundContrastTreatment;
|
|
57
|
+
}> | Readonly<{
|
|
58
|
+
kind: 'image';
|
|
59
|
+
imagePool: readonly BackgroundImagePoolItem[];
|
|
60
|
+
treatment: BackgroundContrastTreatment;
|
|
61
|
+
}>;
|
|
62
|
+
export type BackgroundCapability = Readonly<{
|
|
63
|
+
modeCapabilities: readonly BackgroundModeCapability[];
|
|
64
|
+
modes: readonly BackgroundMode[];
|
|
65
|
+
recommendedColorTokens?: readonly ThemeColorToken[];
|
|
66
|
+
advancedColorTokens?: readonly ThemeColorToken[];
|
|
67
|
+
colorTokens?: readonly ThemeColorToken[];
|
|
68
|
+
gradientIds?: readonly GradientPresetId[];
|
|
69
|
+
imagePool?: readonly BackgroundImagePoolItem[];
|
|
70
|
+
colorTreatment?: BackgroundContrastTreatment;
|
|
71
|
+
gradientTreatment?: BackgroundContrastTreatment;
|
|
72
|
+
imageTreatment?: BackgroundContrastTreatment;
|
|
73
|
+
}>;
|
|
74
|
+
export type BackgroundTransitionAction = Readonly<{
|
|
75
|
+
kind: 'cycle-mode';
|
|
76
|
+
direction: BackgroundModeCycleDirection;
|
|
77
|
+
}> | Readonly<{
|
|
78
|
+
kind: 'cycle-value';
|
|
79
|
+
direction: BackgroundModeCycleDirection;
|
|
80
|
+
}> | Readonly<{
|
|
81
|
+
kind: 'choose-color';
|
|
82
|
+
token: ThemeColorToken;
|
|
83
|
+
}> | Readonly<{
|
|
84
|
+
kind: 'choose-gradient';
|
|
85
|
+
gradientId: GradientPresetId;
|
|
86
|
+
}> | Readonly<{
|
|
87
|
+
kind: 'choose-image';
|
|
88
|
+
mediaId: MediaAssetId;
|
|
89
|
+
}> | Readonly<{
|
|
90
|
+
kind: 'clear-default';
|
|
91
|
+
}>;
|
|
92
|
+
export type BackgroundPersistenceSideEffect = Readonly<{
|
|
93
|
+
kind: 'mark-background-used';
|
|
94
|
+
mediaId: MediaAssetId;
|
|
95
|
+
}>;
|
|
96
|
+
export type BackgroundTransitionPlan = Readonly<{
|
|
97
|
+
kind: 'apply';
|
|
98
|
+
override: BackgroundOverride;
|
|
99
|
+
sideEffects: readonly BackgroundPersistenceSideEffect[];
|
|
100
|
+
}> | Readonly<{
|
|
101
|
+
kind: 'blocked';
|
|
102
|
+
reason: BackgroundTransitionBlockedReason;
|
|
103
|
+
}>;
|
|
104
|
+
export type BackgroundTransitionBlockedReason = 'mode-unavailable' | 'value-unavailable' | 'empty-image-pool' | 'current-value-not-cycleable';
|
|
105
|
+
export type BackgroundOverridePlan = Readonly<{
|
|
106
|
+
kind: 'apply';
|
|
107
|
+
override: BackgroundOverride;
|
|
108
|
+
fromOverride: BackgroundOverride;
|
|
109
|
+
sideEffects: readonly BackgroundPersistenceSideEffect[];
|
|
110
|
+
}> | Readonly<{
|
|
111
|
+
kind: 'unchanged';
|
|
112
|
+
override: BackgroundOverride;
|
|
113
|
+
}> | Readonly<{
|
|
114
|
+
kind: 'blocked';
|
|
115
|
+
reason: BackgroundOverrideBlockedReason;
|
|
116
|
+
}>;
|
|
117
|
+
export type BackgroundOverrideBlockedReason = 'mode-unavailable' | 'value-unavailable' | 'legacy-current-background';
|
|
118
|
+
export type BackgroundCustomizeContent = Record<string, unknown>;
|
|
119
|
+
export type BackgroundCapabilityBlock = Readonly<{
|
|
120
|
+
blockKind: string;
|
|
121
|
+
layout: Readonly<{
|
|
122
|
+
effectiveValue: LayoutVariantKey;
|
|
123
|
+
}> | null;
|
|
124
|
+
availableLayouts: readonly BackgroundCapabilityLayoutOption[];
|
|
125
|
+
look: Readonly<{
|
|
126
|
+
effectiveValue: AppearancePresetId | null;
|
|
127
|
+
}>;
|
|
128
|
+
availableLooks: readonly BackgroundCapabilityLookOption[];
|
|
129
|
+
}>;
|
|
130
|
+
export type BackgroundCapabilityLayoutOption = Readonly<{
|
|
131
|
+
id: LayoutVariantKey;
|
|
132
|
+
profile: Readonly<{
|
|
133
|
+
layoutFamily: string;
|
|
134
|
+
}>;
|
|
135
|
+
}>;
|
|
136
|
+
export type BackgroundCapabilityLookOption = Readonly<{
|
|
137
|
+
id: AppearancePresetId;
|
|
138
|
+
design: Readonly<{
|
|
139
|
+
sectionSurface: string;
|
|
140
|
+
}>;
|
|
141
|
+
}>;
|
|
142
|
+
export type ResolveBackgroundCapabilityInput = Readonly<{
|
|
143
|
+
block: BackgroundCapabilityBlock;
|
|
144
|
+
imagePool?: readonly BackgroundImagePoolItem[];
|
|
145
|
+
}>;
|
|
146
|
+
export declare const BACKGROUND_MODES: readonly ["default", "color", "gradient", "image"];
|
|
147
|
+
export declare const DEFAULT_BACKGROUND_OVERRIDE: BackgroundOverride;
|
|
148
|
+
export declare const BACKGROUND_CUSTOMIZABLE_BLOCK_KINDS: readonly ["block.hero", "block.testimonials", "block.cta-full", "block.form"];
|
|
149
|
+
export declare const BACKGROUND_RICH_LAYOUT_FAMILIES: readonly ["split"];
|
|
150
|
+
export declare const BACKGROUND_RICH_SECTION_SURFACES: readonly ["hero-image"];
|
|
151
|
+
export declare function isBackgroundCustomizableBlockKind(blockKind: string): boolean;
|
|
152
|
+
export declare const backgroundColorTokens: readonly ThemeColorToken[];
|
|
153
|
+
export declare const recommendedBackgroundColorTokens: readonly ThemeColorToken[];
|
|
154
|
+
export declare const advancedBackgroundColorTokens: ThemeColorToken[];
|
|
155
|
+
export declare function parseGradientPresetId(value: unknown): GradientPresetId | null;
|
|
156
|
+
export declare function isGradientPresetId(value: unknown): value is GradientPresetId;
|
|
157
|
+
export declare function backgroundModeForOverride(override: BackgroundOverride): BackgroundMode;
|
|
158
|
+
export declare function backgroundOverrideEquals(left: BackgroundOverride, right: BackgroundOverride): boolean;
|
|
159
|
+
export declare function imagePoolForOverride(override: BackgroundOverride): readonly BackgroundImagePoolItem[];
|
|
160
|
+
export declare function defaultBackgroundOverrideForMode(mode: BackgroundMode, capability: BackgroundCapability): BackgroundOverride;
|
|
161
|
+
export declare function resolveBackgroundCapability(input: ResolveBackgroundCapabilityInput): BackgroundCapability;
|
|
162
|
+
export declare function backgroundCapabilityFromModes(modeCapabilities: readonly BackgroundModeCapability[]): BackgroundCapability;
|
|
163
|
+
export declare function parseBackgroundOverrideFromContent(content: BackgroundCustomizeContent): ParsedBackgroundOverride;
|
|
164
|
+
export declare function parseBackgroundOverride(value: unknown): ParsedBackgroundOverride;
|
|
165
|
+
export declare function serializeBackgroundOverride(override: BackgroundOverride): Record<string, unknown> | null;
|
|
166
|
+
export declare function applyBackgroundOverrideContentPatch(content: BackgroundCustomizeContent, override: BackgroundOverride): BackgroundCustomizeContent;
|
|
167
|
+
export declare function planBackgroundTransition(current: BackgroundOverride, capability: BackgroundCapability, action: BackgroundTransitionAction): BackgroundTransitionPlan;
|
|
168
|
+
export declare function planBackgroundOverride(current: ParsedBackgroundOverride, capability: BackgroundCapability, override: BackgroundOverride): BackgroundOverridePlan;
|
|
169
|
+
export declare function rankBackgroundImagePoolItems(items: readonly BackgroundImagePoolItem[]): readonly BackgroundImagePoolItem[];
|
|
170
|
+
export declare function enabledBackgroundModes(capability: BackgroundCapability): readonly BackgroundMode[];
|
|
@@ -20,6 +20,11 @@ export declare function buildCarouselLayout(): NodeDefinition;
|
|
|
20
20
|
* Renders testimonials in a responsive grid with configurable columns.
|
|
21
21
|
*/
|
|
22
22
|
export declare function buildGridLayout(): NodeDefinition;
|
|
23
|
+
/**
|
|
24
|
+
* Build just the responsive testimonial card grid, for variants that place
|
|
25
|
+
* heading copy in a sibling column instead of above the cards.
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildGridCardsLayout(className: string): NodeDefinition;
|
|
23
28
|
/**
|
|
24
29
|
* Fragment definition for testimonials carousel.
|
|
25
30
|
* Provides field definitions and data loader configuration.
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* behavior of the default declarative block system.
|
|
7
7
|
*/
|
|
8
8
|
import * as React from "react";
|
|
9
|
-
import type
|
|
9
|
+
import { type ThemeTokens } from "../theme";
|
|
10
10
|
import type { Media } from "../../lib/media";
|
|
11
11
|
import { type BackgroundMedia } from "./backgroundMedia";
|
|
12
12
|
import { type ResolveImageUrlContext } from "../runtime/nodes/media";
|
|
@@ -19,6 +19,8 @@ export type BackgroundInput = {
|
|
|
19
19
|
color?: string | null;
|
|
20
20
|
/** CSS gradient string */
|
|
21
21
|
gradient?: string | null;
|
|
22
|
+
/** Curated gradient preset identifier. Used for Customize-mode backgrounds. */
|
|
23
|
+
gradientPresetId?: string | null;
|
|
22
24
|
/** Background image or decorative video media object */
|
|
23
25
|
image?: Media | null;
|
|
24
26
|
/** Whether decorative background video should play on mobile. Defaults to false. */
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Brand } from '../../../../core/src/index';
|
|
2
|
+
export type GeneratedIconSetId = Brand<string, 'GeneratedIconSetId'>;
|
|
3
|
+
export type GeneratedIconAssetId = Brand<string, 'GeneratedIconAssetId'>;
|
|
4
|
+
export type SiteIconStyleGuideVersionId = Brand<string, 'SiteIconStyleGuideVersionId'>;
|
|
5
|
+
export type ApprovedIconExampleSetId = Brand<string, 'ApprovedIconExampleSetId'>;
|
|
6
|
+
export declare function unsafeAsGeneratedIconSetId(value: string): GeneratedIconSetId;
|
|
7
|
+
export declare function unsafeAsGeneratedIconAssetId(value: string): GeneratedIconAssetId;
|
|
8
|
+
export declare function unsafeAsSiteIconStyleGuideVersionId(value: string): SiteIconStyleGuideVersionId;
|
|
9
|
+
export declare function unsafeAsApprovedIconExampleSetId(value: string): ApprovedIconExampleSetId;
|
|
10
|
+
export declare function parseGeneratedIconSetId(value: unknown): GeneratedIconSetId | null;
|
|
11
|
+
export declare function parseGeneratedIconAssetId(value: unknown): GeneratedIconAssetId | null;
|
|
12
|
+
export declare function parseSiteIconStyleGuideVersionId(value: unknown): SiteIconStyleGuideVersionId | null;
|
|
13
|
+
export declare function parseApprovedIconExampleSetId(value: unknown): ApprovedIconExampleSetId | null;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const ICON_PICKER_PRESETS: readonly ["cta", "feature"];
|
|
2
|
+
export type IconPickerPreset = (typeof ICON_PICKER_PRESETS)[number];
|
|
3
|
+
export declare function isIconPickerPreset(value: unknown): value is IconPickerPreset;
|
|
4
|
+
export declare function resolveIconPickerPreset(value: unknown): IconPickerPreset;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { LucideIcon } from 'lucide-react';
|
|
2
|
+
import { type CtaIconName } from './cta';
|
|
3
|
+
import { type SemanticIconId } from './semantic';
|
|
4
|
+
import { type IconPickerPreset } from './presets';
|
|
5
|
+
export type IconName = CtaIconName | SemanticIconId;
|
|
6
|
+
export type IconIdForPreset<Preset extends IconPickerPreset> = Preset extends 'cta' ? CtaIconName : Preset extends 'feature' ? SemanticIconId : never;
|
|
7
|
+
export type IconPickerOption<Preset extends IconPickerPreset = IconPickerPreset> = {
|
|
8
|
+
id: IconIdForPreset<Preset>;
|
|
9
|
+
label: string;
|
|
10
|
+
searchText: string;
|
|
11
|
+
preset: Preset;
|
|
12
|
+
};
|
|
13
|
+
export declare function getIconPickerOptionsForPreset(preset: 'cta'): readonly IconPickerOption<'cta'>[];
|
|
14
|
+
export declare function getIconPickerOptionsForPreset(preset: 'feature'): readonly IconPickerOption<'feature'>[];
|
|
15
|
+
export declare function getIconPickerOptionsForPreset(preset: IconPickerPreset): readonly IconPickerOption[];
|
|
16
|
+
export declare function getIconPickerOptionsForUnknownPreset(value: unknown): readonly IconPickerOption[];
|
|
17
|
+
export declare function isKnownIconName(value: unknown): value is IconName;
|
|
18
|
+
export declare function getIconComponent(name: unknown): LucideIcon | null;
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
import type { LucideIcon } from 'lucide-react';
|
|
2
|
+
import type { IconPickerPreset } from './presets';
|
|
3
|
+
export declare const ICON_DOMAINS: readonly ["wellbeing", "coaching", "community", "education", "commerce", "events", "services", "hospitality", "creative", "technology"];
|
|
4
|
+
export type IconDomain = (typeof ICON_DOMAINS)[number];
|
|
5
|
+
export declare const ICON_TONES: readonly ["warm", "human", "calm", "trustworthy", "practical", "playful", "premium"];
|
|
6
|
+
export type IconTone = (typeof ICON_TONES)[number];
|
|
7
|
+
export declare const SEMANTIC_ICON_IDS: readonly ["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"];
|
|
8
|
+
export type SemanticIconId = (typeof SEMANTIC_ICON_IDS)[number];
|
|
9
|
+
export type SemanticIconDefinition = {
|
|
10
|
+
id: SemanticIconId;
|
|
11
|
+
label: string;
|
|
12
|
+
tags: readonly string[];
|
|
13
|
+
domains: readonly IconDomain[];
|
|
14
|
+
tone: readonly IconTone[];
|
|
15
|
+
presets: readonly IconPickerPreset[];
|
|
16
|
+
};
|
|
17
|
+
export declare const SEMANTIC_ICON_COMPONENTS: Record<SemanticIconId, LucideIcon>;
|
|
18
|
+
export declare const SEMANTIC_ICON_DEFINITIONS: readonly [{
|
|
19
|
+
readonly id: "protection-trust";
|
|
20
|
+
readonly label: "Protection and trust";
|
|
21
|
+
readonly tags: readonly ["safe", "safety", "security", "trust", "privacy", "confidence"];
|
|
22
|
+
readonly domains: readonly ["wellbeing", "services", "technology"];
|
|
23
|
+
readonly tone: readonly ["trustworthy", "practical"];
|
|
24
|
+
readonly presets: readonly ["feature"];
|
|
25
|
+
}, {
|
|
26
|
+
readonly id: "confidentiality";
|
|
27
|
+
readonly label: "Confidentiality";
|
|
28
|
+
readonly tags: readonly ["confidential", "privacy", "secure", "protected", "private"];
|
|
29
|
+
readonly domains: readonly ["wellbeing", "coaching", "services", "technology"];
|
|
30
|
+
readonly tone: readonly ["trustworthy", "calm"];
|
|
31
|
+
readonly presets: readonly ["feature"];
|
|
32
|
+
}, {
|
|
33
|
+
readonly id: "care-support";
|
|
34
|
+
readonly label: "Care and support";
|
|
35
|
+
readonly tags: readonly ["care", "support", "therapy", "kindness", "help", "compassion"];
|
|
36
|
+
readonly domains: readonly ["wellbeing", "coaching", "community"];
|
|
37
|
+
readonly tone: readonly ["warm", "human"];
|
|
38
|
+
readonly presets: readonly ["feature"];
|
|
39
|
+
}, {
|
|
40
|
+
readonly id: "partnership";
|
|
41
|
+
readonly label: "Partnership";
|
|
42
|
+
readonly tags: readonly ["partnership", "together", "support", "relationship", "collaboration"];
|
|
43
|
+
readonly domains: readonly ["coaching", "community", "services"];
|
|
44
|
+
readonly tone: readonly ["warm", "human", "trustworthy"];
|
|
45
|
+
readonly presets: readonly ["feature"];
|
|
46
|
+
}, {
|
|
47
|
+
readonly id: "warmth";
|
|
48
|
+
readonly label: "Warmth";
|
|
49
|
+
readonly tags: readonly ["heart", "warmth", "care", "love", "wellbeing", "personal"];
|
|
50
|
+
readonly domains: readonly ["wellbeing", "community", "hospitality"];
|
|
51
|
+
readonly tone: readonly ["warm", "human"];
|
|
52
|
+
readonly presets: readonly ["feature"];
|
|
53
|
+
}, {
|
|
54
|
+
readonly id: "community";
|
|
55
|
+
readonly label: "Community";
|
|
56
|
+
readonly tags: readonly ["community", "group", "people", "team", "members", "belonging"];
|
|
57
|
+
readonly domains: readonly ["community", "education", "events"];
|
|
58
|
+
readonly tone: readonly ["human", "warm"];
|
|
59
|
+
readonly presets: readonly ["feature"];
|
|
60
|
+
}, {
|
|
61
|
+
readonly id: "personal-guidance";
|
|
62
|
+
readonly label: "Personal guidance";
|
|
63
|
+
readonly tags: readonly ["guidance", "personal", "coach", "expert", "one to one", "trusted"];
|
|
64
|
+
readonly domains: readonly ["coaching", "services", "education"];
|
|
65
|
+
readonly tone: readonly ["trustworthy", "human"];
|
|
66
|
+
readonly presets: readonly ["feature"];
|
|
67
|
+
}, {
|
|
68
|
+
readonly id: "conversation";
|
|
69
|
+
readonly label: "Conversation";
|
|
70
|
+
readonly tags: readonly ["conversation", "talk", "chat", "communication", "support"];
|
|
71
|
+
readonly domains: readonly ["coaching", "community", "services"];
|
|
72
|
+
readonly tone: readonly ["human", "warm"];
|
|
73
|
+
readonly presets: readonly ["feature"];
|
|
74
|
+
}, {
|
|
75
|
+
readonly id: "friendly-welcome";
|
|
76
|
+
readonly label: "Friendly welcome";
|
|
77
|
+
readonly tags: readonly ["friendly", "welcome", "positive", "happy", "approachable"];
|
|
78
|
+
readonly domains: readonly ["hospitality", "community", "services"];
|
|
79
|
+
readonly tone: readonly ["warm", "playful", "human"];
|
|
80
|
+
readonly presets: readonly ["feature"];
|
|
81
|
+
}, {
|
|
82
|
+
readonly id: "insight-learning";
|
|
83
|
+
readonly label: "Insight and learning";
|
|
84
|
+
readonly tags: readonly ["mind", "insight", "learning", "clarity", "thinking", "therapy"];
|
|
85
|
+
readonly domains: readonly ["wellbeing", "coaching", "education"];
|
|
86
|
+
readonly tone: readonly ["calm", "practical"];
|
|
87
|
+
readonly presets: readonly ["feature"];
|
|
88
|
+
}, {
|
|
89
|
+
readonly id: "natural-wellbeing";
|
|
90
|
+
readonly label: "Natural wellbeing";
|
|
91
|
+
readonly tags: readonly ["natural", "wellbeing", "growth", "eco", "calm", "organic"];
|
|
92
|
+
readonly domains: readonly ["wellbeing", "hospitality", "creative"];
|
|
93
|
+
readonly tone: readonly ["calm", "warm"];
|
|
94
|
+
readonly presets: readonly ["feature"];
|
|
95
|
+
}, {
|
|
96
|
+
readonly id: "growth";
|
|
97
|
+
readonly label: "Growth";
|
|
98
|
+
readonly tags: readonly ["growth", "new", "progress", "development", "nurture"];
|
|
99
|
+
readonly domains: readonly ["wellbeing", "coaching", "education", "community"];
|
|
100
|
+
readonly tone: readonly ["warm", "calm"];
|
|
101
|
+
readonly presets: readonly ["feature"];
|
|
102
|
+
}, {
|
|
103
|
+
readonly id: "gentle-care";
|
|
104
|
+
readonly label: "Gentle care";
|
|
105
|
+
readonly tags: readonly ["gentle", "soft", "care", "wellbeing", "beauty", "calm"];
|
|
106
|
+
readonly domains: readonly ["wellbeing", "creative", "hospitality"];
|
|
107
|
+
readonly tone: readonly ["warm", "calm", "premium"];
|
|
108
|
+
readonly presets: readonly ["feature"];
|
|
109
|
+
}, {
|
|
110
|
+
readonly id: "special-touch";
|
|
111
|
+
readonly label: "Special touch";
|
|
112
|
+
readonly tags: readonly ["special", "sparkle", "magic", "polish", "delight", "creative"];
|
|
113
|
+
readonly domains: readonly ["creative", "commerce", "hospitality"];
|
|
114
|
+
readonly tone: readonly ["playful", "premium"];
|
|
115
|
+
readonly presets: readonly ["feature"];
|
|
116
|
+
}, {
|
|
117
|
+
readonly id: "ideas";
|
|
118
|
+
readonly label: "Ideas";
|
|
119
|
+
readonly tags: readonly ["idea", "innovation", "clarity", "creative", "strategy"];
|
|
120
|
+
readonly domains: readonly ["coaching", "education", "creative", "technology"];
|
|
121
|
+
readonly tone: readonly ["practical", "playful"];
|
|
122
|
+
readonly presets: readonly ["feature"];
|
|
123
|
+
}, {
|
|
124
|
+
readonly id: "direction";
|
|
125
|
+
readonly label: "Direction";
|
|
126
|
+
readonly tags: readonly ["direction", "navigation", "path", "journey", "guidance"];
|
|
127
|
+
readonly domains: readonly ["coaching", "education", "services"];
|
|
128
|
+
readonly tone: readonly ["trustworthy", "practical"];
|
|
129
|
+
readonly presets: readonly ["feature"];
|
|
130
|
+
}, {
|
|
131
|
+
readonly id: "focus";
|
|
132
|
+
readonly label: "Focus";
|
|
133
|
+
readonly tags: readonly ["focus", "goal", "outcome", "aim", "strategy"];
|
|
134
|
+
readonly domains: readonly ["coaching", "services", "technology"];
|
|
135
|
+
readonly tone: readonly ["practical"];
|
|
136
|
+
readonly presets: readonly ["feature"];
|
|
137
|
+
}, {
|
|
138
|
+
readonly id: "quality";
|
|
139
|
+
readonly label: "Quality";
|
|
140
|
+
readonly tags: readonly ["quality", "award", "standard", "achievement", "premium"];
|
|
141
|
+
readonly domains: readonly ["services", "education", "commerce"];
|
|
142
|
+
readonly tone: readonly ["premium", "trustworthy"];
|
|
143
|
+
readonly presets: readonly ["feature"];
|
|
144
|
+
}, {
|
|
145
|
+
readonly id: "highlight";
|
|
146
|
+
readonly label: "Highlight";
|
|
147
|
+
readonly tags: readonly ["highlight", "featured", "favorite", "quality", "special"];
|
|
148
|
+
readonly domains: readonly ["creative", "commerce", "services"];
|
|
149
|
+
readonly tone: readonly ["playful", "premium"];
|
|
150
|
+
readonly presets: readonly ["feature"];
|
|
151
|
+
}, {
|
|
152
|
+
readonly id: "verified-quality";
|
|
153
|
+
readonly label: "Verified quality";
|
|
154
|
+
readonly tags: readonly ["verified", "quality", "approved", "trusted", "check"];
|
|
155
|
+
readonly domains: readonly ["services", "commerce", "education"];
|
|
156
|
+
readonly tone: readonly ["trustworthy", "practical"];
|
|
157
|
+
readonly presets: readonly ["feature"];
|
|
158
|
+
}, {
|
|
159
|
+
readonly id: "learning";
|
|
160
|
+
readonly label: "Learning";
|
|
161
|
+
readonly tags: readonly ["learning", "book", "course", "knowledge", "education"];
|
|
162
|
+
readonly domains: readonly ["education", "coaching", "community"];
|
|
163
|
+
readonly tone: readonly ["calm", "practical"];
|
|
164
|
+
readonly presets: readonly ["feature"];
|
|
165
|
+
}, {
|
|
166
|
+
readonly id: "training";
|
|
167
|
+
readonly label: "Training";
|
|
168
|
+
readonly tags: readonly ["training", "course", "qualification", "school", "education"];
|
|
169
|
+
readonly domains: readonly ["education", "coaching"];
|
|
170
|
+
readonly tone: readonly ["trustworthy", "practical"];
|
|
171
|
+
readonly presets: readonly ["feature"];
|
|
172
|
+
}, {
|
|
173
|
+
readonly id: "programmes-dates";
|
|
174
|
+
readonly label: "Programmes and dates";
|
|
175
|
+
readonly tags: readonly ["calendar", "dates", "schedule", "events", "programme", "classes"];
|
|
176
|
+
readonly domains: readonly ["events", "education", "community"];
|
|
177
|
+
readonly tone: readonly ["practical"];
|
|
178
|
+
readonly presets: readonly ["feature"];
|
|
179
|
+
}, {
|
|
180
|
+
readonly id: "place";
|
|
181
|
+
readonly label: "Place";
|
|
182
|
+
readonly tags: readonly ["place", "location", "local", "venue", "destination"];
|
|
183
|
+
readonly domains: readonly ["events", "hospitality", "services"];
|
|
184
|
+
readonly tone: readonly ["practical"];
|
|
185
|
+
readonly presets: readonly ["feature"];
|
|
186
|
+
}, {
|
|
187
|
+
readonly id: "products";
|
|
188
|
+
readonly label: "Products";
|
|
189
|
+
readonly tags: readonly ["products", "shop", "store", "retail", "commerce"];
|
|
190
|
+
readonly domains: readonly ["commerce"];
|
|
191
|
+
readonly tone: readonly ["practical", "premium"];
|
|
192
|
+
readonly presets: readonly ["feature"];
|
|
193
|
+
}, {
|
|
194
|
+
readonly id: "packages";
|
|
195
|
+
readonly label: "Packages";
|
|
196
|
+
readonly tags: readonly ["package", "bundle", "delivery", "offer", "product"];
|
|
197
|
+
readonly domains: readonly ["commerce", "services"];
|
|
198
|
+
readonly tone: readonly ["practical"];
|
|
199
|
+
readonly presets: readonly ["feature"];
|
|
200
|
+
}, {
|
|
201
|
+
readonly id: "time";
|
|
202
|
+
readonly label: "Time";
|
|
203
|
+
readonly tags: readonly ["time", "duration", "schedule", "availability", "appointment"];
|
|
204
|
+
readonly domains: readonly ["events", "services", "wellbeing"];
|
|
205
|
+
readonly tone: readonly ["practical", "calm"];
|
|
206
|
+
readonly presets: readonly ["feature"];
|
|
207
|
+
}, {
|
|
208
|
+
readonly id: "practical-service";
|
|
209
|
+
readonly label: "Practical service";
|
|
210
|
+
readonly tags: readonly ["service", "repair", "setup", "practical", "tools", "support"];
|
|
211
|
+
readonly domains: readonly ["services", "technology"];
|
|
212
|
+
readonly tone: readonly ["practical"];
|
|
213
|
+
readonly presets: readonly ["feature"];
|
|
214
|
+
}, {
|
|
215
|
+
readonly id: "at-home";
|
|
216
|
+
readonly label: "At home";
|
|
217
|
+
readonly tags: readonly ["home", "domestic", "comfort", "local", "space"];
|
|
218
|
+
readonly domains: readonly ["hospitality", "services", "community"];
|
|
219
|
+
readonly tone: readonly ["warm", "calm"];
|
|
220
|
+
readonly presets: readonly ["feature"];
|
|
221
|
+
}, {
|
|
222
|
+
readonly id: "worldwide";
|
|
223
|
+
readonly label: "Worldwide";
|
|
224
|
+
readonly tags: readonly ["global", "online", "worldwide", "remote", "international"];
|
|
225
|
+
readonly domains: readonly ["technology", "education", "services"];
|
|
226
|
+
readonly tone: readonly ["practical"];
|
|
227
|
+
readonly presets: readonly ["feature"];
|
|
228
|
+
}, {
|
|
229
|
+
readonly id: "professional-service";
|
|
230
|
+
readonly label: "Professional service";
|
|
231
|
+
readonly tags: readonly ["business", "professional", "consulting", "service", "work"];
|
|
232
|
+
readonly domains: readonly ["services", "technology", "coaching"];
|
|
233
|
+
readonly tone: readonly ["practical", "trustworthy"];
|
|
234
|
+
readonly presets: readonly ["feature"];
|
|
235
|
+
}];
|
|
236
|
+
export type SemanticIconOption = Pick<SemanticIconDefinition, 'id' | 'label'>;
|
|
237
|
+
export declare const SEMANTIC_ICON_OPTIONS: SemanticIconOption[];
|
|
238
|
+
export declare function isSemanticIconId(value: unknown): value is SemanticIconId;
|
|
239
|
+
export declare function getSemanticIconComponent(name: unknown): LucideIcon | null;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import type { Brand } from '../../../../core/src/index';
|
|
2
|
+
import { type GeneratedIconAssetId, type GeneratedIconSetId, type SiteIconStyleGuideVersionId } from './ids';
|
|
3
|
+
import type { SemanticIconId } from './semantic';
|
|
4
|
+
export type NoBlockIconValue = {
|
|
5
|
+
kind: 'none';
|
|
6
|
+
};
|
|
7
|
+
export type SemanticBlockIconValue = {
|
|
8
|
+
kind: 'semantic';
|
|
9
|
+
iconId: SemanticIconId;
|
|
10
|
+
};
|
|
11
|
+
export type GeneratedBlockIconValue = {
|
|
12
|
+
kind: 'generated';
|
|
13
|
+
setId: GeneratedIconSetId;
|
|
14
|
+
assetId: GeneratedIconAssetId;
|
|
15
|
+
semanticFallbackIconId: SemanticIconId;
|
|
16
|
+
styleGuideVersionId: SiteIconStyleGuideVersionId;
|
|
17
|
+
};
|
|
18
|
+
export type BlockIconValue = NoBlockIconValue | SemanticBlockIconValue | GeneratedBlockIconValue;
|
|
19
|
+
export declare const NO_BLOCK_ICON_VALUE: NoBlockIconValue;
|
|
20
|
+
export type GeneratedBlockIconAssetSrc = Brand<string, 'GeneratedBlockIconAssetSrc'>;
|
|
21
|
+
export type GeneratedBlockIconRenderAssetInput = Readonly<{
|
|
22
|
+
setId: GeneratedIconSetId;
|
|
23
|
+
assetId: GeneratedIconAssetId;
|
|
24
|
+
src: string;
|
|
25
|
+
width?: number;
|
|
26
|
+
height?: number;
|
|
27
|
+
}>;
|
|
28
|
+
export type GeneratedBlockIconRenderAsset = Readonly<{
|
|
29
|
+
setId: GeneratedIconSetId;
|
|
30
|
+
assetId: GeneratedIconAssetId;
|
|
31
|
+
src: GeneratedBlockIconAssetSrc;
|
|
32
|
+
width?: number;
|
|
33
|
+
height?: number;
|
|
34
|
+
}>;
|
|
35
|
+
export type GeneratedBlockIconRenderAssetLookup = ReadonlyMap<string, GeneratedBlockIconRenderAsset>;
|
|
36
|
+
export type GeneratedBlockIconRenderAssetLookupBuildResult = Readonly<{
|
|
37
|
+
kind: 'ok';
|
|
38
|
+
lookup: GeneratedBlockIconRenderAssetLookup;
|
|
39
|
+
}> | Readonly<{
|
|
40
|
+
kind: 'duplicate_asset';
|
|
41
|
+
setId: GeneratedIconSetId;
|
|
42
|
+
assetId: GeneratedIconAssetId;
|
|
43
|
+
}> | Readonly<{
|
|
44
|
+
kind: 'invalid_src';
|
|
45
|
+
setId: GeneratedIconSetId;
|
|
46
|
+
assetId: GeneratedIconAssetId;
|
|
47
|
+
src: string;
|
|
48
|
+
}>;
|
|
49
|
+
export type GeneratedBlockIconRenderAssetLookupUnknownBuildResult = GeneratedBlockIconRenderAssetLookupBuildResult | Readonly<{
|
|
50
|
+
kind: 'invalid_asset_list';
|
|
51
|
+
}> | Readonly<{
|
|
52
|
+
kind: 'invalid_asset_entry';
|
|
53
|
+
index: number;
|
|
54
|
+
reason: 'not_object' | 'invalid_set_id' | 'invalid_asset_id' | 'invalid_src';
|
|
55
|
+
}>;
|
|
56
|
+
export type ResolvedBlockIconRenderValue = Readonly<{
|
|
57
|
+
kind: 'none';
|
|
58
|
+
}> | Readonly<{
|
|
59
|
+
kind: 'semantic';
|
|
60
|
+
iconId: SemanticIconId;
|
|
61
|
+
}> | Readonly<{
|
|
62
|
+
kind: 'generated_asset';
|
|
63
|
+
asset: GeneratedBlockIconRenderAsset;
|
|
64
|
+
semanticFallbackIconId: SemanticIconId;
|
|
65
|
+
styleGuideVersionId: SiteIconStyleGuideVersionId;
|
|
66
|
+
}> | Readonly<{
|
|
67
|
+
kind: 'generated_fallback';
|
|
68
|
+
setId: GeneratedIconSetId;
|
|
69
|
+
assetId: GeneratedIconAssetId;
|
|
70
|
+
semanticFallbackIconId: SemanticIconId;
|
|
71
|
+
styleGuideVersionId: SiteIconStyleGuideVersionId;
|
|
72
|
+
reason: 'asset_unavailable';
|
|
73
|
+
}>;
|
|
74
|
+
export type GeneratedBlockIconStyleState = Readonly<{
|
|
75
|
+
kind: 'not_generated';
|
|
76
|
+
}> | Readonly<{
|
|
77
|
+
kind: 'invalid_generated';
|
|
78
|
+
}> | Readonly<{
|
|
79
|
+
kind: 'current';
|
|
80
|
+
styleGuideVersionId: SiteIconStyleGuideVersionId;
|
|
81
|
+
}> | Readonly<{
|
|
82
|
+
kind: 'stale';
|
|
83
|
+
previousStyleGuideVersionId: SiteIconStyleGuideVersionId;
|
|
84
|
+
currentStyleGuideVersionId: SiteIconStyleGuideVersionId;
|
|
85
|
+
}>;
|
|
86
|
+
export declare function parseBlockIconValue(value: unknown): BlockIconValue;
|
|
87
|
+
export declare function getBlockIconSemanticFallbackId(value: unknown): SemanticIconId | null;
|
|
88
|
+
export declare function hasRenderableBlockIcon(value: unknown): boolean;
|
|
89
|
+
export declare function parseGeneratedBlockIconAssetSrc(value: unknown): GeneratedBlockIconAssetSrc | null;
|
|
90
|
+
export declare function buildGeneratedBlockIconRenderAssetLookup(assets: readonly GeneratedBlockIconRenderAssetInput[]): GeneratedBlockIconRenderAssetLookupBuildResult;
|
|
91
|
+
export declare function buildGeneratedBlockIconRenderAssetLookupFromUnknown(value: unknown): GeneratedBlockIconRenderAssetLookupUnknownBuildResult;
|
|
92
|
+
export declare function resolveBlockIconRenderValue(value: unknown, generatedAssets?: GeneratedBlockIconRenderAssetLookup): ResolvedBlockIconRenderValue;
|
|
93
|
+
export declare function getGeneratedBlockIconStyleState(value: unknown, currentStyleGuideVersionId: SiteIconStyleGuideVersionId): GeneratedBlockIconStyleState;
|
|
94
|
+
export declare function isGeneratedBlockIconStale(value: unknown, currentStyleGuideVersionId: SiteIconStyleGuideVersionId): boolean;
|
|
@@ -8,6 +8,7 @@ export * from "./blocks";
|
|
|
8
8
|
export * from "./componentFactory";
|
|
9
9
|
export * from "./designCapabilities";
|
|
10
10
|
export * from "./fragments";
|
|
11
|
+
export * from "./icons";
|
|
11
12
|
export * from "./layout";
|
|
12
13
|
export * from "./defineBlock";
|
|
13
14
|
export { SYSTEM_BLOCK_KINDS, type CustomBlockKind } from "./constants/blockKinds";
|
|
@@ -94,7 +94,10 @@ type LinkObjectConstraint = Readonly<{
|
|
|
94
94
|
type ReferenceTextConstraint = Readonly<{
|
|
95
95
|
kind: "referenceText";
|
|
96
96
|
}>;
|
|
97
|
-
type
|
|
97
|
+
type BlockIconValueConstraint = Readonly<{
|
|
98
|
+
kind: "blockIconValue";
|
|
99
|
+
}>;
|
|
100
|
+
type StringConstraint = RequiredConstraint | TextTypeConstraint | MaxLengthConstraint | EmailFormatConstraint | PhoneFormatConstraint | PatternFormatConstraint | UrlFormatConstraint | DateFormatConstraint | TimeFormatConstraint | DateTimeFormatConstraint | SlugFormatConstraint | ReferenceTextConstraint | BlockIconValueConstraint;
|
|
98
101
|
type NumberConstraint = RequiredConstraint | NumberTypeConstraint | NumberMinConstraint | NumberMaxConstraint;
|
|
99
102
|
type SelectConstraint = RequiredConstraint | SelectOptionConstraint;
|
|
100
103
|
type ArrayConstraint = RequiredConstraint | ArrayTypeConstraint | MinItemsConstraint | MaxItemsConstraint;
|