@riverbankcms/sdk 0.70.0 → 0.70.3
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 +29 -0
- package/dist/_dts/ai/src/contracts/commandExposure.d.ts +8 -0
- package/dist/_dts/ai/src/contracts/feedback.d.ts +55 -0
- package/dist/_dts/ai/src/contracts/proposals.d.ts +34764 -0
- package/dist/_dts/ai/src/contracts.d.ts +5 -0
- package/dist/_dts/ai/src/designer/rfc6902.d.ts +16 -0
- package/dist/_dts/ai/src/designer/themePatch.d.ts +50 -0
- package/dist/_dts/api/src/aiPlayground.d.ts +1 -1
- package/dist/_dts/api/src/appointmentSetup.d.ts +19 -0
- package/dist/_dts/api/src/availability.d.ts +84 -2
- package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +10 -1
- package/dist/_dts/api/src/contentRuntime.d.ts +1 -0
- package/dist/_dts/api/src/endpoints.d.ts +29 -0
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +4 -0
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +29 -1
- package/dist/_dts/api/src/types.d.ts +1 -1
- package/dist/_dts/billing/src/components/index.d.ts +41 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +219 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/SiteChromeCustomizeContext.d.ts +3 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.d.ts +3 -1
- package/dist/_dts/preview-next/src/client/preview/StyleConfigurator.state.d.ts +1 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorApplyPayload.d.ts +8 -0
- package/dist/_dts/preview-next/src/client/preview/styleConfiguratorSnapshot.d.ts +1 -0
- package/dist/_dts/sdk/src/cli/commands/delete.d.ts +3 -0
- package/dist/_dts/sdk/src/cli/commands/style.d.ts +37 -0
- package/dist/_dts/sdk/src/cli/helpers.d.ts +8 -33
- package/dist/_dts/sdk/src/cli/site-commands/oneOffCommands.d.ts +81 -0
- package/dist/_dts/sdk/src/client/management/index.d.ts +2 -1
- package/dist/_dts/sdk/src/client/management/theme.d.ts +3 -1
- package/dist/_dts/sdk/src/client/management/types.d.ts +23 -0
- package/dist/_dts/sdk/src/components.d.ts +2 -1
- package/dist/_dts/sdk/src/next/types.d.ts +4 -2
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
- package/dist/_dts/sdk/src/rendering/index.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/overrideResolution.d.ts +10 -0
- package/dist/_dts/sdk/src/rendering/overrides.d.ts +12 -0
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +25 -7
- package/dist/_dts/site-commands/src/metadata.d.ts +2 -2
- package/dist/cli/index.mjs +844 -108
- package/dist/client/client.mjs +256 -202
- package/dist/client/hooks.mjs +55 -1
- package/dist/client/rendering.mjs +25467 -25403
- package/dist/preview-next/before-render.mjs +39 -0
- package/dist/preview-next/client/runtime.mjs +160 -39
- package/dist/preview-next/middleware.mjs +39 -0
- package/dist/server/components.mjs +65 -1
- package/dist/server/config-validation.mjs +55 -1
- package/dist/server/config.mjs +55 -1
- package/dist/server/data.mjs +55 -1
- package/dist/server/index.mjs +40 -1
- package/dist/server/next.mjs +137 -4
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +55 -1
- package/dist/server/rendering.mjs +65 -1
- package/dist/server/routing.mjs +56 -2
- package/dist/server/server.mjs +56 -2
- package/package.json +4 -3
|
@@ -486,6 +486,190 @@ export type Database = {
|
|
|
486
486
|
}
|
|
487
487
|
];
|
|
488
488
|
};
|
|
489
|
+
appointment_availability_schedule_services: {
|
|
490
|
+
Row: {
|
|
491
|
+
created_at: string;
|
|
492
|
+
resource_id: string;
|
|
493
|
+
schedule_id: string;
|
|
494
|
+
service_id: string;
|
|
495
|
+
site_id: string;
|
|
496
|
+
};
|
|
497
|
+
Insert: {
|
|
498
|
+
created_at?: string;
|
|
499
|
+
resource_id: string;
|
|
500
|
+
schedule_id: string;
|
|
501
|
+
service_id: string;
|
|
502
|
+
site_id: string;
|
|
503
|
+
};
|
|
504
|
+
Update: {
|
|
505
|
+
created_at?: string;
|
|
506
|
+
resource_id?: string;
|
|
507
|
+
schedule_id?: string;
|
|
508
|
+
service_id?: string;
|
|
509
|
+
site_id?: string;
|
|
510
|
+
};
|
|
511
|
+
Relationships: [
|
|
512
|
+
{
|
|
513
|
+
foreignKeyName: "appointment_availability_schedule_services_schedule_fk";
|
|
514
|
+
columns: ["schedule_id", "site_id", "resource_id"];
|
|
515
|
+
isOneToOne: false;
|
|
516
|
+
referencedRelation: "appointment_availability_schedules";
|
|
517
|
+
referencedColumns: ["id", "site_id", "resource_id"];
|
|
518
|
+
},
|
|
519
|
+
{
|
|
520
|
+
foreignKeyName: "appointment_availability_schedule_services_service_fk";
|
|
521
|
+
columns: ["service_id", "site_id"];
|
|
522
|
+
isOneToOne: false;
|
|
523
|
+
referencedRelation: "appointment_services";
|
|
524
|
+
referencedColumns: ["id", "site_id"];
|
|
525
|
+
}
|
|
526
|
+
];
|
|
527
|
+
};
|
|
528
|
+
appointment_availability_schedule_starts: {
|
|
529
|
+
Row: {
|
|
530
|
+
created_at: string;
|
|
531
|
+
display_order: number;
|
|
532
|
+
id: string;
|
|
533
|
+
resource_id: string;
|
|
534
|
+
schedule_id: string;
|
|
535
|
+
site_id: string;
|
|
536
|
+
start_time: string;
|
|
537
|
+
updated_at: string;
|
|
538
|
+
weekday: number;
|
|
539
|
+
};
|
|
540
|
+
Insert: {
|
|
541
|
+
created_at?: string;
|
|
542
|
+
display_order?: number;
|
|
543
|
+
id?: string;
|
|
544
|
+
resource_id: string;
|
|
545
|
+
schedule_id: string;
|
|
546
|
+
site_id: string;
|
|
547
|
+
start_time: string;
|
|
548
|
+
updated_at?: string;
|
|
549
|
+
weekday: number;
|
|
550
|
+
};
|
|
551
|
+
Update: {
|
|
552
|
+
created_at?: string;
|
|
553
|
+
display_order?: number;
|
|
554
|
+
id?: string;
|
|
555
|
+
resource_id?: string;
|
|
556
|
+
schedule_id?: string;
|
|
557
|
+
site_id?: string;
|
|
558
|
+
start_time?: string;
|
|
559
|
+
updated_at?: string;
|
|
560
|
+
weekday?: number;
|
|
561
|
+
};
|
|
562
|
+
Relationships: [
|
|
563
|
+
{
|
|
564
|
+
foreignKeyName: "appointment_availability_schedule_starts_schedule_fk";
|
|
565
|
+
columns: ["schedule_id", "site_id", "resource_id"];
|
|
566
|
+
isOneToOne: false;
|
|
567
|
+
referencedRelation: "appointment_availability_schedules";
|
|
568
|
+
referencedColumns: ["id", "site_id", "resource_id"];
|
|
569
|
+
}
|
|
570
|
+
];
|
|
571
|
+
};
|
|
572
|
+
appointment_availability_schedule_windows: {
|
|
573
|
+
Row: {
|
|
574
|
+
created_at: string;
|
|
575
|
+
display_order: number;
|
|
576
|
+
end_time: string;
|
|
577
|
+
id: string;
|
|
578
|
+
resource_id: string;
|
|
579
|
+
schedule_id: string;
|
|
580
|
+
site_id: string;
|
|
581
|
+
start_time: string;
|
|
582
|
+
updated_at: string;
|
|
583
|
+
weekday: number;
|
|
584
|
+
};
|
|
585
|
+
Insert: {
|
|
586
|
+
created_at?: string;
|
|
587
|
+
display_order?: number;
|
|
588
|
+
end_time: string;
|
|
589
|
+
id?: string;
|
|
590
|
+
resource_id: string;
|
|
591
|
+
schedule_id: string;
|
|
592
|
+
site_id: string;
|
|
593
|
+
start_time: string;
|
|
594
|
+
updated_at?: string;
|
|
595
|
+
weekday: number;
|
|
596
|
+
};
|
|
597
|
+
Update: {
|
|
598
|
+
created_at?: string;
|
|
599
|
+
display_order?: number;
|
|
600
|
+
end_time?: string;
|
|
601
|
+
id?: string;
|
|
602
|
+
resource_id?: string;
|
|
603
|
+
schedule_id?: string;
|
|
604
|
+
site_id?: string;
|
|
605
|
+
start_time?: string;
|
|
606
|
+
updated_at?: string;
|
|
607
|
+
weekday?: number;
|
|
608
|
+
};
|
|
609
|
+
Relationships: [
|
|
610
|
+
{
|
|
611
|
+
foreignKeyName: "appointment_availability_schedule_windows_schedule_fk";
|
|
612
|
+
columns: ["schedule_id", "site_id", "resource_id"];
|
|
613
|
+
isOneToOne: false;
|
|
614
|
+
referencedRelation: "appointment_availability_schedules";
|
|
615
|
+
referencedColumns: ["id", "site_id", "resource_id"];
|
|
616
|
+
}
|
|
617
|
+
];
|
|
618
|
+
};
|
|
619
|
+
appointment_availability_schedules: {
|
|
620
|
+
Row: {
|
|
621
|
+
created_at: string;
|
|
622
|
+
display_order: number;
|
|
623
|
+
id: string;
|
|
624
|
+
interval_minutes: number | null;
|
|
625
|
+
name: string;
|
|
626
|
+
resource_id: string;
|
|
627
|
+
role_kind: string;
|
|
628
|
+
site_id: string;
|
|
629
|
+
start_policy_kind: string;
|
|
630
|
+
updated_at: string;
|
|
631
|
+
};
|
|
632
|
+
Insert: {
|
|
633
|
+
created_at?: string;
|
|
634
|
+
display_order?: number;
|
|
635
|
+
id?: string;
|
|
636
|
+
interval_minutes?: number | null;
|
|
637
|
+
name?: string;
|
|
638
|
+
resource_id: string;
|
|
639
|
+
role_kind: string;
|
|
640
|
+
site_id: string;
|
|
641
|
+
start_policy_kind: string;
|
|
642
|
+
updated_at?: string;
|
|
643
|
+
};
|
|
644
|
+
Update: {
|
|
645
|
+
created_at?: string;
|
|
646
|
+
display_order?: number;
|
|
647
|
+
id?: string;
|
|
648
|
+
interval_minutes?: number | null;
|
|
649
|
+
name?: string;
|
|
650
|
+
resource_id?: string;
|
|
651
|
+
role_kind?: string;
|
|
652
|
+
site_id?: string;
|
|
653
|
+
start_policy_kind?: string;
|
|
654
|
+
updated_at?: string;
|
|
655
|
+
};
|
|
656
|
+
Relationships: [
|
|
657
|
+
{
|
|
658
|
+
foreignKeyName: "appointment_availability_schedules_resource_id_fkey";
|
|
659
|
+
columns: ["resource_id"];
|
|
660
|
+
isOneToOne: false;
|
|
661
|
+
referencedRelation: "staff_members";
|
|
662
|
+
referencedColumns: ["id"];
|
|
663
|
+
},
|
|
664
|
+
{
|
|
665
|
+
foreignKeyName: "appointment_availability_schedules_site_id_fkey";
|
|
666
|
+
columns: ["site_id"];
|
|
667
|
+
isOneToOne: false;
|
|
668
|
+
referencedRelation: "sites";
|
|
669
|
+
referencedColumns: ["id"];
|
|
670
|
+
}
|
|
671
|
+
];
|
|
672
|
+
};
|
|
489
673
|
appointment_blackouts: {
|
|
490
674
|
Row: {
|
|
491
675
|
created_at: string;
|
|
@@ -13140,6 +13324,7 @@ export type Database = {
|
|
|
13140
13324
|
palette_overrides: Json | null;
|
|
13141
13325
|
palette_variant_id: string | null;
|
|
13142
13326
|
site_id: string;
|
|
13327
|
+
style_selection_version: number;
|
|
13143
13328
|
theme_id: string;
|
|
13144
13329
|
updated_at: string;
|
|
13145
13330
|
user_id: string;
|
|
@@ -13155,6 +13340,7 @@ export type Database = {
|
|
|
13155
13340
|
palette_overrides?: Json | null;
|
|
13156
13341
|
palette_variant_id?: string | null;
|
|
13157
13342
|
site_id: string;
|
|
13343
|
+
style_selection_version?: number;
|
|
13158
13344
|
theme_id: string;
|
|
13159
13345
|
updated_at?: string;
|
|
13160
13346
|
user_id: string;
|
|
@@ -13170,6 +13356,7 @@ export type Database = {
|
|
|
13170
13356
|
palette_overrides?: Json | null;
|
|
13171
13357
|
palette_variant_id?: string | null;
|
|
13172
13358
|
site_id?: string;
|
|
13359
|
+
style_selection_version?: number;
|
|
13173
13360
|
theme_id?: string;
|
|
13174
13361
|
updated_at?: string;
|
|
13175
13362
|
user_id?: string;
|
|
@@ -14802,6 +14989,26 @@ export type Database = {
|
|
|
14802
14989
|
};
|
|
14803
14990
|
Returns: number;
|
|
14804
14991
|
};
|
|
14992
|
+
apply_site_style_selection_atomic: {
|
|
14993
|
+
Args: {
|
|
14994
|
+
p_base_selection_version: number;
|
|
14995
|
+
p_button_personality_id: string | null;
|
|
14996
|
+
p_footer_look_id: string | null;
|
|
14997
|
+
p_header_look_id: string | null;
|
|
14998
|
+
p_palette_overrides: Json | null;
|
|
14999
|
+
p_palette_variant_id: string | null;
|
|
15000
|
+
p_selection_id?: string | null;
|
|
15001
|
+
p_site_id: string;
|
|
15002
|
+
p_theme: Json;
|
|
15003
|
+
};
|
|
15004
|
+
Returns: {
|
|
15005
|
+
outcome: string;
|
|
15006
|
+
selection_id: string | null;
|
|
15007
|
+
selection_updated_at: string | null;
|
|
15008
|
+
style_selection_version: number | null;
|
|
15009
|
+
theme_id: string | null;
|
|
15010
|
+
}[];
|
|
15011
|
+
};
|
|
14805
15012
|
apply_customer_profile_rectification: {
|
|
14806
15013
|
Args: {
|
|
14807
15014
|
audit_actor_user_id: string;
|
|
@@ -15397,6 +15604,12 @@ export type Database = {
|
|
|
15397
15604
|
};
|
|
15398
15605
|
Returns: string;
|
|
15399
15606
|
};
|
|
15607
|
+
ensure_default_appointment_availability_schedule: {
|
|
15608
|
+
Args: {
|
|
15609
|
+
p_resource_id: string;
|
|
15610
|
+
};
|
|
15611
|
+
Returns: string;
|
|
15612
|
+
};
|
|
15400
15613
|
ensure_event_pricing_profile: {
|
|
15401
15614
|
Args: {
|
|
15402
15615
|
p_event_series_id: string;
|
|
@@ -15894,6 +16107,12 @@ export type Database = {
|
|
|
15894
16107
|
};
|
|
15895
16108
|
Returns: undefined;
|
|
15896
16109
|
};
|
|
16110
|
+
sync_default_appointment_availability_schedule_windows: {
|
|
16111
|
+
Args: {
|
|
16112
|
+
p_resource_id: string;
|
|
16113
|
+
};
|
|
16114
|
+
Returns: undefined;
|
|
16115
|
+
};
|
|
15897
16116
|
transactional_email_claim_jobs: {
|
|
15898
16117
|
Args: {
|
|
15899
16118
|
p_limit: number;
|
|
@@ -33,6 +33,7 @@ export type PreviewEditorSidebarProps = {
|
|
|
33
33
|
theme?: Theme | null;
|
|
34
34
|
themeId?: string | null;
|
|
35
35
|
themeSelectionId?: string | null;
|
|
36
|
+
themeSelectionVersion?: number | null;
|
|
36
37
|
themeSelectionUpdatedAt?: string | null;
|
|
37
38
|
/** Persisted Style configurator selections (Phase C / E). */
|
|
38
39
|
themeSelectionButtonPersonalityId?: ButtonPersonalityId | null;
|
|
@@ -64,4 +65,4 @@ export type PreviewEditorSidebarProps = {
|
|
|
64
65
|
onViewportWidthChange: (width: ViewportWidth) => void;
|
|
65
66
|
onZoomChange: (zoom: ZoomLevel) => void;
|
|
66
67
|
};
|
|
67
|
-
export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
68
|
+
export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -34,6 +34,7 @@ export type PreviewShellProps = {
|
|
|
34
34
|
theme: Theme;
|
|
35
35
|
themeId?: string | null;
|
|
36
36
|
themeSelectionId?: string | null;
|
|
37
|
+
themeSelectionVersion?: number | null;
|
|
37
38
|
themeSelectionUpdatedAt?: string | null;
|
|
38
39
|
/**
|
|
39
40
|
* Persisted Style configurator selections. Forwarded into StyleConfigurator
|
|
@@ -68,7 +69,7 @@ export type PreviewShellProps = {
|
|
|
68
69
|
designEditorEligibility?: PreviewDesignEditorEligibility;
|
|
69
70
|
baseFetch?: BaseFetch;
|
|
70
71
|
};
|
|
71
|
-
export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): import("react/jsx-runtime").JSX.Element;
|
|
72
|
+
export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): import("react/jsx-runtime").JSX.Element;
|
|
72
73
|
export declare function defaultDesignEditorEligibility(input: Readonly<{
|
|
73
74
|
pageId: string | null;
|
|
74
75
|
entryData?: PreviewContentEntryData | null;
|
|
@@ -25,6 +25,7 @@ export type PreviewShellLayoutProps = {
|
|
|
25
25
|
bearerToken?: string | null;
|
|
26
26
|
themeId?: string | null;
|
|
27
27
|
themeSelectionId?: string | null;
|
|
28
|
+
themeSelectionVersion?: number | null;
|
|
28
29
|
themeSelectionUpdatedAt?: string | null;
|
|
29
30
|
themeSelectionButtonPersonalityId?: ButtonPersonalityId | null;
|
|
30
31
|
themeSelectionPaletteVariantId?: PaletteVariantId | null;
|
|
@@ -43,4 +44,4 @@ export type PreviewShellLayoutProps = {
|
|
|
43
44
|
useThemeScope?: boolean;
|
|
44
45
|
siteStyleAccess?: SiteStyleAccess;
|
|
45
46
|
};
|
|
46
|
-
export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
47
|
+
export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -31,8 +31,10 @@ export type SiteChromeCustomizeProviderProps = Readonly<{
|
|
|
31
31
|
theme?: Theme | null;
|
|
32
32
|
themeId?: string | null;
|
|
33
33
|
selectionId?: string | null;
|
|
34
|
+
selectionVersion?: number | null;
|
|
34
35
|
selectionUpdatedAt?: string | null;
|
|
35
36
|
initialSelections: Readonly<{
|
|
37
|
+
selectionVersion?: number | null;
|
|
36
38
|
selectionUpdatedAt?: string | null;
|
|
37
39
|
buttonPersonalityId: ButtonPersonalityId | null;
|
|
38
40
|
paletteVariantId: PaletteVariantId | null;
|
|
@@ -44,6 +46,6 @@ export type SiteChromeCustomizeProviderProps = Readonly<{
|
|
|
44
46
|
footerSelectionContext?: Partial<FooterSelectionContext>;
|
|
45
47
|
siteStyleAccess?: SiteStyleAccess;
|
|
46
48
|
}>;
|
|
47
|
-
export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, siteStyleAccess, }: SiteChromeCustomizeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
49
|
+
export declare function SiteChromeCustomizeProvider({ children, siteId, apiClient, theme, themeId, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, siteStyleAccess, }: SiteChromeCustomizeProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
48
50
|
export declare function useSiteChromeCustomizeOptional(): SiteChromeCustomizeContextValue | null;
|
|
49
51
|
export {};
|
|
@@ -11,9 +11,11 @@ export type StyleConfiguratorProps = Readonly<{
|
|
|
11
11
|
theme?: Theme | null;
|
|
12
12
|
themeId?: string | null;
|
|
13
13
|
selectionId?: string | null;
|
|
14
|
+
selectionVersion?: number | null;
|
|
14
15
|
selectionUpdatedAt?: string | null;
|
|
15
16
|
/** Server-persisted design selections. */
|
|
16
17
|
initialSelections: Readonly<{
|
|
18
|
+
selectionVersion?: number | null;
|
|
17
19
|
selectionUpdatedAt?: string | null;
|
|
18
20
|
buttonPersonalityId: ButtonPersonalityId | null;
|
|
19
21
|
paletteVariantId: PaletteVariantId | null;
|
|
@@ -30,4 +32,4 @@ export type StyleConfiguratorProps = Readonly<{
|
|
|
30
32
|
}> | null;
|
|
31
33
|
siteStyleAccess: VisibleSiteStyleAccess;
|
|
32
34
|
}>;
|
|
33
|
-
export declare function StyleConfigurator({ siteId, apiClient, theme,
|
|
35
|
+
export declare function StyleConfigurator({ siteId, apiClient, theme, selectionId, selectionVersion, selectionUpdatedAt, initialSelections, headerSelectionContext, footerSelectionContext, expandedRowRequest, siteStyleAccess, }: StyleConfiguratorProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -38,6 +38,7 @@ export type StyleConfiguratorNotice = Readonly<{
|
|
|
38
38
|
}>;
|
|
39
39
|
export type SelectionSnapshot = Readonly<{
|
|
40
40
|
siteStyleId: SiteStyleId;
|
|
41
|
+
selectionVersion: number;
|
|
41
42
|
selectionUpdatedAt?: string | null;
|
|
42
43
|
headerLookId: HeaderLookId | null;
|
|
43
44
|
footerLookId: FooterLookId | null;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { APIEndpoints } from '../../../../api/src/index';
|
|
2
|
+
import type { SelectionSnapshot } from './StyleConfigurator.state';
|
|
3
|
+
export type ApplySiteStyleSelectionBody = NonNullable<APIEndpoints['applySiteStyleSelection']['body']>;
|
|
4
|
+
export declare function buildApplySiteStyleSelectionBody(input: Readonly<{
|
|
5
|
+
base: SelectionSnapshot;
|
|
6
|
+
previewed: SelectionSnapshot;
|
|
7
|
+
selectionId?: string | null;
|
|
8
|
+
}>): ApplySiteStyleSelectionBody;
|
|
@@ -6,6 +6,7 @@ import type { SelectionSnapshot } from './StyleConfigurator.state';
|
|
|
6
6
|
export declare function resolveStyleConfiguratorInitialSnapshot(input: Readonly<{
|
|
7
7
|
theme?: Theme | null;
|
|
8
8
|
initialSelections: Readonly<{
|
|
9
|
+
selectionVersion?: number | null;
|
|
9
10
|
selectionUpdatedAt?: string | null;
|
|
10
11
|
buttonPersonalityId: ButtonPersonalityId | null;
|
|
11
12
|
paletteVariantId: PaletteVariantId | null;
|
|
@@ -6,6 +6,9 @@
|
|
|
6
6
|
* Usage:
|
|
7
7
|
* riverbankcms delete entry <type> <identifier>
|
|
8
8
|
* riverbankcms delete block <page-identifier> <block-identifier>
|
|
9
|
+
*
|
|
10
|
+
* These destructive one-off commands intentionally remain direct for #931 so
|
|
11
|
+
* their confirmation and remote --yes safety semantics stay unchanged.
|
|
9
12
|
*/
|
|
10
13
|
import { Command } from 'commander';
|
|
11
14
|
export declare const deleteCommand: Command;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Style Command
|
|
3
|
+
*
|
|
4
|
+
* Apply bounded site-style selections via the command-backed theme API.
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { type CuratedSiteStyle } from '../../../../theme-core/src/site-styles/index';
|
|
8
|
+
import type { ThemeStyleSelectionApplyInput } from '../../client/management';
|
|
9
|
+
export type StyleApplyOptions = Readonly<{
|
|
10
|
+
siteStyleId: string;
|
|
11
|
+
baseSelectionVersion: string;
|
|
12
|
+
selectionId?: string;
|
|
13
|
+
buttonPersonalityId?: string;
|
|
14
|
+
paletteVariantId?: string;
|
|
15
|
+
paletteOverrides?: string;
|
|
16
|
+
headerLookId?: string;
|
|
17
|
+
footerLookId?: string;
|
|
18
|
+
}>;
|
|
19
|
+
export type StyleCatalogListOptions = Readonly<{
|
|
20
|
+
siteStyleId?: string;
|
|
21
|
+
}>;
|
|
22
|
+
export type StyleCatalogChoice = Readonly<{
|
|
23
|
+
id: string;
|
|
24
|
+
label: string;
|
|
25
|
+
}>;
|
|
26
|
+
export type StyleCatalogListRow = Readonly<{
|
|
27
|
+
siteStyleId: string;
|
|
28
|
+
name: string;
|
|
29
|
+
palettes: readonly StyleCatalogChoice[];
|
|
30
|
+
buttonPersonalities: readonly StyleCatalogChoice[];
|
|
31
|
+
headerLooks: readonly StyleCatalogChoice[];
|
|
32
|
+
footerLooks: readonly StyleCatalogChoice[];
|
|
33
|
+
}>;
|
|
34
|
+
export declare function buildStyleSelectionApplyInputFromOptions(options: StyleApplyOptions): ThemeStyleSelectionApplyInput;
|
|
35
|
+
export declare function buildStyleCatalogListRows(styles?: readonly CuratedSiteStyle[], options?: StyleCatalogListOptions): readonly StyleCatalogListRow[];
|
|
36
|
+
export declare function formatStyleCatalogListRow(row: StyleCatalogListRow): string[];
|
|
37
|
+
export declare const styleCommand: Command;
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Reduces duplication and ensures consistent behavior.
|
|
6
6
|
*/
|
|
7
7
|
import { Command } from 'commander';
|
|
8
|
+
import type { SiteId } from '../../../core/src/index';
|
|
8
9
|
import type { ManagementClient } from '../client/management/types';
|
|
9
10
|
import { type OutputContext } from './output';
|
|
10
11
|
import { type CliErrorContext } from './errors';
|
|
@@ -52,6 +53,8 @@ export interface CommandContext {
|
|
|
52
53
|
client: ManagementClient;
|
|
53
54
|
isRemote: boolean;
|
|
54
55
|
isJsonOutput: boolean;
|
|
56
|
+
targetEnv: EnvTarget;
|
|
57
|
+
siteId: SiteId;
|
|
55
58
|
/** Environment targets for this operation */
|
|
56
59
|
envTargets: EnvTarget[];
|
|
57
60
|
}
|
|
@@ -271,6 +274,11 @@ export declare function handleCommandError(error: unknown, output: OutputContext
|
|
|
271
274
|
* }))
|
|
272
275
|
*/
|
|
273
276
|
export declare function withErrorHandling<TArgs extends unknown[]>(action: (...args: [...TArgs, Command]) => Promise<void>): (...args: [...TArgs, Command]) => Promise<void>;
|
|
277
|
+
/**
|
|
278
|
+
* Wrap a command action so handlers receive a resolved command context instead
|
|
279
|
+
* of the raw Commander instance.
|
|
280
|
+
*/
|
|
281
|
+
export declare function withCommandContext<TArgs extends unknown[], TOptions = unknown>(action: (ctx: CommandContext, ...args: [...TArgs, TOptions]) => Promise<void>): (...args: [...TArgs, TOptions, Command]) => Promise<void>;
|
|
274
282
|
/**
|
|
275
283
|
* Wrap a destructive command action with confirmation prompt and error handling.
|
|
276
284
|
*
|
|
@@ -289,39 +297,6 @@ export declare function withErrorHandling<TArgs extends unknown[]>(action: (...a
|
|
|
289
297
|
* ))
|
|
290
298
|
*/
|
|
291
299
|
export declare function withConfirmation<TArgs extends unknown[]>(getMessage: (...args: TArgs) => string, action: (ctx: CommandContext, ...args: TArgs) => Promise<void>): (...args: [...TArgs, ConfirmOptions, Command]) => Promise<void>;
|
|
292
|
-
/**
|
|
293
|
-
* Configuration for publish/unpublish command factories.
|
|
294
|
-
*/
|
|
295
|
-
export interface PublishCommandConfig {
|
|
296
|
-
/** Resource name for display (e.g., 'entry', 'page') */
|
|
297
|
-
resourceName: string;
|
|
298
|
-
/** Argument names (e.g., ['type', 'identifier'] or ['identifier']) */
|
|
299
|
-
args: readonly string[];
|
|
300
|
-
/** Function to call the appropriate client method */
|
|
301
|
-
action: (client: ManagementClient, ...args: string[]) => Promise<void>;
|
|
302
|
-
}
|
|
303
|
-
/**
|
|
304
|
-
* Create a publish command for a resource.
|
|
305
|
-
*
|
|
306
|
-
* @example
|
|
307
|
-
* const publishCommand = createPublishCommand({
|
|
308
|
-
* resourceName: 'entry',
|
|
309
|
-
* args: ['type', 'identifier'],
|
|
310
|
-
* action: (client, type, id) => client.entries.publish(type, id),
|
|
311
|
-
* });
|
|
312
|
-
*/
|
|
313
|
-
export declare function createPublishCommand(config: PublishCommandConfig): Command;
|
|
314
|
-
/**
|
|
315
|
-
* Create an unpublish command for a resource.
|
|
316
|
-
*
|
|
317
|
-
* @example
|
|
318
|
-
* const unpublishCommand = createUnpublishCommand({
|
|
319
|
-
* resourceName: 'entry',
|
|
320
|
-
* args: ['type', 'identifier'],
|
|
321
|
-
* action: (client, type, id) => client.entries.unpublish(type, id),
|
|
322
|
-
* });
|
|
323
|
-
*/
|
|
324
|
-
export declare function createUnpublishCommand(config: PublishCommandConfig): Command;
|
|
325
300
|
/**
|
|
326
301
|
* Configuration for get command factory.
|
|
327
302
|
*/
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { type Result, type SiteId } from '../../../../core/src/index';
|
|
2
|
+
import type { ManagementBlock, ManagementClient, ManagementEntry, ManagementNavigationMenu, ManagementPage, NavigationItemInput } from '../../client/management/types';
|
|
3
|
+
import type { EnvTarget } from '../helpers';
|
|
4
|
+
import { type CliCommandCompileBatchSuccessWithReports, type CliCommandValidationCompileError } from './commandRuntime';
|
|
5
|
+
import { type EntryCommandReportSubject, type EntrySiteCommand, type EntrySiteCommandType } from './entryCommands';
|
|
6
|
+
import { type NavigationCommandReportSubject, type NavigationSiteCommand, type NavigationSiteCommandType } from './navigationCommands';
|
|
7
|
+
import { type PageCommandReportSubject, type PageSiteCommand, type PageSiteCommandType } from './pageCommands';
|
|
8
|
+
export type OneOffCommandBatchSource = 'one_off_entry' | 'one_off_page' | 'one_off_block' | 'one_off_navigation';
|
|
9
|
+
type OneOffCompileInput<TMutation> = Readonly<{
|
|
10
|
+
source: OneOffCommandBatchSource;
|
|
11
|
+
siteId: SiteId;
|
|
12
|
+
targetEnv: EnvTarget;
|
|
13
|
+
mutation: TMutation;
|
|
14
|
+
}>;
|
|
15
|
+
export type OneOffEntryMutation = Readonly<{
|
|
16
|
+
kind: 'upsert';
|
|
17
|
+
contentType: string;
|
|
18
|
+
identifier: string;
|
|
19
|
+
data: Record<string, unknown>;
|
|
20
|
+
slug?: string;
|
|
21
|
+
}> | Readonly<{
|
|
22
|
+
kind: 'publish' | 'unpublish';
|
|
23
|
+
contentType: string;
|
|
24
|
+
identifier: string;
|
|
25
|
+
}>;
|
|
26
|
+
export type OneOffPageMutation = Readonly<{
|
|
27
|
+
kind: 'upsert';
|
|
28
|
+
identifier: string;
|
|
29
|
+
title: string;
|
|
30
|
+
path: string;
|
|
31
|
+
seoTitle?: string;
|
|
32
|
+
seoDescription?: string;
|
|
33
|
+
}> | Readonly<{
|
|
34
|
+
kind: 'publish' | 'unpublish';
|
|
35
|
+
identifier: string;
|
|
36
|
+
}>;
|
|
37
|
+
export type OneOffBlockMutation = Readonly<{
|
|
38
|
+
kind: 'upsert';
|
|
39
|
+
pageIdentifier: string;
|
|
40
|
+
blockIdentifier: string;
|
|
41
|
+
blockKind: string;
|
|
42
|
+
data: Record<string, unknown>;
|
|
43
|
+
}> | Readonly<{
|
|
44
|
+
kind: 'reorder';
|
|
45
|
+
pageIdentifier: string;
|
|
46
|
+
blockIdentifiers: readonly string[];
|
|
47
|
+
}>;
|
|
48
|
+
export type OneOffNavigationMutation = Readonly<{
|
|
49
|
+
kind: 'upsert';
|
|
50
|
+
menuName: string;
|
|
51
|
+
items: readonly NavigationItemInput[];
|
|
52
|
+
}>;
|
|
53
|
+
export type OneOffEntryCommandCompileSuccess = CliCommandCompileBatchSuccessWithReports<EntrySiteCommandType, EntryCommandReportSubject>;
|
|
54
|
+
export type OneOffPageCommandCompileSuccess = CliCommandCompileBatchSuccessWithReports<PageSiteCommandType, PageCommandReportSubject>;
|
|
55
|
+
export type OneOffNavigationCommandCompileSuccess = CliCommandCompileBatchSuccessWithReports<NavigationSiteCommandType, NavigationCommandReportSubject>;
|
|
56
|
+
export declare function compileOneOffEntryCommand(input: OneOffCompileInput<OneOffEntryMutation>): Result<OneOffEntryCommandCompileSuccess, CliCommandValidationCompileError>;
|
|
57
|
+
export declare function compileOneOffPageCommand(input: OneOffCompileInput<OneOffPageMutation>): Result<OneOffPageCommandCompileSuccess, CliCommandValidationCompileError>;
|
|
58
|
+
export declare function compileOneOffBlockCommand(input: OneOffCompileInput<OneOffBlockMutation>): Result<OneOffPageCommandCompileSuccess, CliCommandValidationCompileError>;
|
|
59
|
+
export declare function compileOneOffNavigationCommand(input: OneOffCompileInput<OneOffNavigationMutation>): Result<OneOffNavigationCommandCompileSuccess, CliCommandValidationCompileError>;
|
|
60
|
+
export declare function executeOneOffEntryCommand<TResult>(input: Readonly<{
|
|
61
|
+
compiledPlan: Pick<OneOffEntryCommandCompileSuccess, 'plan'>;
|
|
62
|
+
client: Pick<ManagementClient, 'entries'>;
|
|
63
|
+
apply: (command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>) => Promise<TResult>;
|
|
64
|
+
}>): Promise<TResult>;
|
|
65
|
+
export declare function executeOneOffPageCommand<TResult>(input: Readonly<{
|
|
66
|
+
compiledPlan: Pick<OneOffPageCommandCompileSuccess, 'plan'>;
|
|
67
|
+
client: Pick<ManagementClient, 'pages' | 'blocks'>;
|
|
68
|
+
apply: (command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>) => Promise<TResult>;
|
|
69
|
+
}>): Promise<TResult>;
|
|
70
|
+
export declare function executeOneOffNavigationCommand<TResult>(input: Readonly<{
|
|
71
|
+
compiledPlan: Pick<OneOffNavigationCommandCompileSuccess, 'plan'>;
|
|
72
|
+
client: Pick<ManagementClient, 'navigation'>;
|
|
73
|
+
apply: (command: NavigationSiteCommand, client: Pick<ManagementClient, 'navigation'>) => Promise<TResult>;
|
|
74
|
+
}>): Promise<TResult>;
|
|
75
|
+
export declare function applyOneOffEntryCommand(command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>): Promise<ManagementEntry | void>;
|
|
76
|
+
export declare function applyOneOffEntryCommandReturningEntry(command: EntrySiteCommand, client: Pick<ManagementClient, 'entries'>): Promise<ManagementEntry>;
|
|
77
|
+
export declare function applyOneOffPageCommand(command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>): Promise<ManagementPage | ManagementBlock | void>;
|
|
78
|
+
export declare function applyOneOffPageCommandReturningPage(command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>): Promise<ManagementPage>;
|
|
79
|
+
export declare function applyOneOffPageCommandReturningBlock(command: PageSiteCommand, client: Pick<ManagementClient, 'pages' | 'blocks'>): Promise<ManagementBlock>;
|
|
80
|
+
export declare function applyOneOffNavigationCommand(command: NavigationSiteCommand, client: Pick<ManagementClient, 'navigation'>): Promise<ManagementNavigationMenu>;
|
|
81
|
+
export {};
|
|
@@ -36,6 +36,7 @@ import { CourseSessionConflictError } from './courses';
|
|
|
36
36
|
* @returns ManagementClient instance
|
|
37
37
|
*/
|
|
38
38
|
export declare function createManagementClient(config: ManagementClientConfig): ManagementClient;
|
|
39
|
-
export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, ThemeUpsertInput, ThemeUpsertResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
|
|
39
|
+
export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventPricing, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, PageUpsertInput, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInput, ThemeUpsertResult, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, FormOperations, ThemeOperations, VenueOperations, EventCategoryOperations, EventOperations, CourseOperations, PullOperations, IdentifiersOperations, BackfillResult, BackfillPageResult, BackfillBlockResult, BackfillEntryResult, MediaOperations, MediaUploadResult, } from './types';
|
|
40
40
|
export { ManagementApiError, type ManagementApiErrorRequest } from './http';
|
|
41
|
+
export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
|
|
41
42
|
export { CourseSessionConflictError };
|
|
@@ -2,5 +2,7 @@
|
|
|
2
2
|
* Theme Operations for Management Client
|
|
3
3
|
*/
|
|
4
4
|
import type { HttpClient } from './http';
|
|
5
|
-
import type { ThemeOperations } from './types';
|
|
5
|
+
import type { SiteStyleSelectionApplyCommand, ThemeOperations, ThemeStyleSelectionApplyInput } from './types';
|
|
6
|
+
export declare function buildApplySiteStyleSelectionCommand(input: ThemeStyleSelectionApplyInput): SiteStyleSelectionApplyCommand;
|
|
7
|
+
export declare function applySiteStyleSelectionBodyFromCommand(command: SiteStyleSelectionApplyCommand, selectionId?: string | null): ThemeStyleSelectionApplyInput;
|
|
6
8
|
export declare function createThemeOperations(http: HttpClient): ThemeOperations;
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Type definitions for the SDK management client used for write operations.
|
|
5
5
|
*/
|
|
6
6
|
import type { LinkPayload, NavigationLinkInput } from '../../public-api/contracts';
|
|
7
|
+
import type { SiteCommandOf } from '../../../../site-commands/src/index';
|
|
7
8
|
import type { Theme } from '../../contracts';
|
|
8
9
|
export interface ManagementClientConfig {
|
|
9
10
|
/**
|
|
@@ -465,6 +466,27 @@ export interface ThemeUpsertResult {
|
|
|
465
466
|
selectionId: string;
|
|
466
467
|
savedAt: string;
|
|
467
468
|
}
|
|
469
|
+
export type SiteStyleSelectionApplyCommand = SiteCommandOf<'applySiteStyleSelection'>;
|
|
470
|
+
export type SiteStyleSelectionApplyCommandInput = SiteStyleSelectionApplyCommand['input'];
|
|
471
|
+
export interface ThemeStyleSelectionApplyInput extends SiteStyleSelectionApplyCommandInput {
|
|
472
|
+
baseSelectionVersion: number;
|
|
473
|
+
selectionId?: string | null;
|
|
474
|
+
}
|
|
475
|
+
export interface ThemeStyleSelectionApplyResult {
|
|
476
|
+
success: boolean;
|
|
477
|
+
themeId: string;
|
|
478
|
+
selectionId: string;
|
|
479
|
+
selectionVersion: number;
|
|
480
|
+
selectionUpdatedAt: string | null;
|
|
481
|
+
savedAt: string;
|
|
482
|
+
theme: Theme;
|
|
483
|
+
siteStyleId: string;
|
|
484
|
+
buttonPersonalityId: string;
|
|
485
|
+
paletteVariantId: string;
|
|
486
|
+
paletteOverrides: Record<string, string> | null;
|
|
487
|
+
headerLookId: string;
|
|
488
|
+
footerLookId: string;
|
|
489
|
+
}
|
|
468
490
|
/**
|
|
469
491
|
* Footer content for SDK management operations.
|
|
470
492
|
* Matches the structure stored in site_settings.footer_content_json (bottomText only).
|
|
@@ -788,6 +810,7 @@ export interface FormOperations {
|
|
|
788
810
|
}
|
|
789
811
|
export interface ThemeOperations {
|
|
790
812
|
upsert(input: ThemeUpsertInput): Promise<ThemeUpsertResult>;
|
|
813
|
+
applySelection(input: ThemeStyleSelectionApplyInput): Promise<ThemeStyleSelectionApplyResult>;
|
|
791
814
|
}
|
|
792
815
|
export interface FooterOperations {
|
|
793
816
|
/** Get footer content */
|