@riverbankcms/sdk 0.107.0 → 0.108.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-DpAbAl08.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +46 -11
- package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
- package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
- package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +426 -72
- package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +3865 -544
- package/dist/_dts/ai/src/contracts/proposals.d.ts +3712 -220
- package/dist/_dts/api/src/blocks.d.ts +41 -7
- package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
- package/dist/_dts/api/src/cache-tags.d.ts +3 -0
- package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
- package/dist/_dts/api/src/endpoints.d.ts +99 -0
- package/dist/_dts/api/src/footer-settings.d.ts +1 -0
- package/dist/_dts/api/src/footerSettings.d.ts +8 -0
- package/dist/_dts/api/src/index.d.ts +5 -2
- package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
- package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
- package/dist/_dts/api/src/sdkContracts.d.ts +62 -0
- package/dist/_dts/api/src/siteBanner.d.ts +2 -2
- package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
- package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -1
- package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +41 -1
- package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
- package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
- package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
- package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
- package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
- package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
- package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
- package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
- package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
- package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
- package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
- package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
- package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
- package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
- package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
- package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
- package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
- package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
- package/dist/_dts/content-editor/src/index.d.ts +2 -0
- package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
- package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
- package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
- package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
- package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
- package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
- package/dist/_dts/core/src/branded.d.ts +3 -0
- package/dist/_dts/core/src/editor-state.d.ts +4 -0
- package/dist/_dts/core/src/footer-composition.d.ts +143 -0
- package/dist/_dts/core/src/index.d.ts +2 -0
- package/dist/_dts/core/src/public-profile.d.ts +73 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3043 -2941
- package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
- package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
- package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
- package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
- package/dist/_dts/path-utils/src/index.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
- package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
- package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
- 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/previewErrorMessages.d.ts +4 -0
- package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
- package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
- package/dist/_dts/sdk/src/client/management/index.d.ts +1 -0
- package/dist/_dts/sdk/src/client/management/types.d.ts +15 -1
- package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
- package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
- package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
- package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -2
- package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
- package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/site-commands/src/commands.d.ts +13 -10
- package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
- package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -30
- package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
- package/dist/_dts/theme-core/src/schema.d.ts +1186 -34
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
- package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
- package/dist/cli/index.mjs +760 -374
- package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
- package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
- package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
- package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
- package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
- package/dist/client/{accordion-DAIBVpTS.mjs → accordion-BPy-AJ4_.mjs} +1 -1
- package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-BL4PGZds.mjs} +6 -6
- package/dist/client/bookings.mjs +143 -94
- package/dist/client/{buttons-DJgynGHQ.mjs → buttons-EBjyslaX.mjs} +144 -95
- package/dist/client/{carousel-D-SLfX8r.mjs → carousel-C2b7Cn9-.mjs} +1 -1
- package/dist/client/{cart-CEgbgJhX.mjs → cart-BQcbXIVD.mjs} +3 -3
- package/dist/client/{checkout-CXWrCRAA.mjs → checkout-DEmpGRJu.mjs} +3 -3
- package/dist/client/client.mjs +827 -434
- package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-BqRZPmsq.mjs} +7 -7
- package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-B8N_tSl5.mjs} +5 -5
- package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
- package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-M-VCxA-r.mjs} +3 -3
- package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-DR19hqYi.mjs} +2 -2
- package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-BR02a0k3.mjs} +7 -7
- package/dist/client/{form-CH1lCusH.mjs → form-LY2xIbwg.mjs} +2 -2
- package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-CYwwXJfh.mjs} +3 -3
- package/dist/client/hooks.mjs +377 -362
- package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-DWnBXrFq.mjs} +2 -2
- package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-D9s-fQ2P.mjs} +2 -2
- package/dist/client/{pricing-BIbzmV0G.mjs → pricing-DDq80oYc.mjs} +1 -1
- package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-B0SbWd45.mjs} +3 -3
- package/dist/client/{productList-Cc7OMrqN.mjs → productList-PwYlZn0y.mjs} +3 -3
- package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-BRWBiH7i.mjs} +33 -9
- package/dist/client/rendering/client.mjs +247 -40
- package/dist/client/rendering/islands.mjs +18 -18
- package/dist/client/rendering.mjs +478 -270
- package/dist/client/{shop-CQ_YbCnn.mjs → shop-CMwZPYME.mjs} +6 -6
- package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BuxsFate.mjs} +5 -5
- package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
- package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-D2naaOes.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
- package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-igGiK1re.mjs} +3 -3
- package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-CI7MbsFB.mjs} +2 -2
- package/dist/preview-next/before-render.mjs +178 -0
- package/dist/preview-next/client/runtime.mjs +4 -4
- package/dist/preview-next/middleware.mjs +178 -0
- package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-a_cBD28m.mjs} +178 -0
- package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
- package/dist/{separator-BoMSQnsP.mjs → separator-5ahRBC85.mjs} +1 -1
- package/dist/server/components.mjs +556 -366
- package/dist/server/config-validation.mjs +384 -363
- package/dist/server/config.mjs +384 -364
- package/dist/server/data.mjs +377 -362
- package/dist/server/index.mjs +179 -1
- package/dist/server/navigation.mjs +9 -3
- package/dist/server/next.mjs +1384 -995
- package/dist/server/page-converter.mjs +368 -355
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +539 -360
- package/dist/server/rendering.mjs +556 -366
- package/dist/server/routing.mjs +613 -543
- package/dist/server/server.mjs +554 -361
- package/dist/server/theme-bridge.mjs +189 -98
- package/dist/server/theme.mjs +161 -95
- package/dist/styles/index.css +7 -1
- package/package.json +1 -1
|
@@ -364,12 +364,12 @@ export declare const formFieldSchema: z.ZodObject<{
|
|
|
364
364
|
date: "date";
|
|
365
365
|
time: "time";
|
|
366
366
|
email: "email";
|
|
367
|
+
url: "url";
|
|
367
368
|
text: "text";
|
|
368
369
|
textarea: "textarea";
|
|
369
370
|
select: "select";
|
|
370
371
|
checkbox: "checkbox";
|
|
371
372
|
radio: "radio";
|
|
372
|
-
url: "url";
|
|
373
373
|
consent: "consent";
|
|
374
374
|
tel: "tel";
|
|
375
375
|
}>;
|
|
@@ -425,12 +425,12 @@ declare const bookingQuestionScalarFieldSchema: z.ZodObject<{
|
|
|
425
425
|
date: "date";
|
|
426
426
|
time: "time";
|
|
427
427
|
email: "email";
|
|
428
|
+
url: "url";
|
|
428
429
|
text: "text";
|
|
429
430
|
textarea: "textarea";
|
|
430
431
|
select: "select";
|
|
431
432
|
checkbox: "checkbox";
|
|
432
433
|
radio: "radio";
|
|
433
|
-
url: "url";
|
|
434
434
|
tel: "tel";
|
|
435
435
|
}>;
|
|
436
436
|
}, z.core.$strict>;
|
|
@@ -481,12 +481,12 @@ export declare const bookingQuestionFieldSchema: z.ZodDiscriminatedUnion<[z.ZodO
|
|
|
481
481
|
date: "date";
|
|
482
482
|
time: "time";
|
|
483
483
|
email: "email";
|
|
484
|
+
url: "url";
|
|
484
485
|
text: "text";
|
|
485
486
|
textarea: "textarea";
|
|
486
487
|
select: "select";
|
|
487
488
|
checkbox: "checkbox";
|
|
488
489
|
radio: "radio";
|
|
489
|
-
url: "url";
|
|
490
490
|
tel: "tel";
|
|
491
491
|
}>;
|
|
492
492
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -540,12 +540,12 @@ export declare const bookingQuestionsSectionSchema: z.ZodObject<{
|
|
|
540
540
|
date: "date";
|
|
541
541
|
time: "time";
|
|
542
542
|
email: "email";
|
|
543
|
+
url: "url";
|
|
543
544
|
text: "text";
|
|
544
545
|
textarea: "textarea";
|
|
545
546
|
select: "select";
|
|
546
547
|
checkbox: "checkbox";
|
|
547
548
|
radio: "radio";
|
|
548
|
-
url: "url";
|
|
549
549
|
tel: "tel";
|
|
550
550
|
}>;
|
|
551
551
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -602,12 +602,12 @@ export declare const bookingQuestionsDetailedSchemaSchema: z.ZodObject<{
|
|
|
602
602
|
date: "date";
|
|
603
603
|
time: "time";
|
|
604
604
|
email: "email";
|
|
605
|
+
url: "url";
|
|
605
606
|
text: "text";
|
|
606
607
|
textarea: "textarea";
|
|
607
608
|
select: "select";
|
|
608
609
|
checkbox: "checkbox";
|
|
609
610
|
radio: "radio";
|
|
610
|
-
url: "url";
|
|
611
611
|
tel: "tel";
|
|
612
612
|
}>;
|
|
613
613
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -646,12 +646,12 @@ export declare const formSchemaSchema: z.ZodObject<{
|
|
|
646
646
|
date: "date";
|
|
647
647
|
time: "time";
|
|
648
648
|
email: "email";
|
|
649
|
+
url: "url";
|
|
649
650
|
text: "text";
|
|
650
651
|
textarea: "textarea";
|
|
651
652
|
select: "select";
|
|
652
653
|
checkbox: "checkbox";
|
|
653
654
|
radio: "radio";
|
|
654
|
-
url: "url";
|
|
655
655
|
consent: "consent";
|
|
656
656
|
tel: "tel";
|
|
657
657
|
}>;
|
|
@@ -705,12 +705,12 @@ export declare const bookingQuestionsFlatSchemaSchema: z.ZodObject<{
|
|
|
705
705
|
date: "date";
|
|
706
706
|
time: "time";
|
|
707
707
|
email: "email";
|
|
708
|
+
url: "url";
|
|
708
709
|
text: "text";
|
|
709
710
|
textarea: "textarea";
|
|
710
711
|
select: "select";
|
|
711
712
|
checkbox: "checkbox";
|
|
712
713
|
radio: "radio";
|
|
713
|
-
url: "url";
|
|
714
714
|
tel: "tel";
|
|
715
715
|
}>;
|
|
716
716
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -763,12 +763,12 @@ export declare const bookingQuestionsStoredSchemaSchema: z.ZodUnion<readonly [z.
|
|
|
763
763
|
date: "date";
|
|
764
764
|
time: "time";
|
|
765
765
|
email: "email";
|
|
766
|
+
url: "url";
|
|
766
767
|
text: "text";
|
|
767
768
|
textarea: "textarea";
|
|
768
769
|
select: "select";
|
|
769
770
|
checkbox: "checkbox";
|
|
770
771
|
radio: "radio";
|
|
771
|
-
url: "url";
|
|
772
772
|
tel: "tel";
|
|
773
773
|
}>;
|
|
774
774
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -824,12 +824,12 @@ export declare const bookingQuestionsStoredSchemaSchema: z.ZodUnion<readonly [z.
|
|
|
824
824
|
date: "date";
|
|
825
825
|
time: "time";
|
|
826
826
|
email: "email";
|
|
827
|
+
url: "url";
|
|
827
828
|
text: "text";
|
|
828
829
|
textarea: "textarea";
|
|
829
830
|
select: "select";
|
|
830
831
|
checkbox: "checkbox";
|
|
831
832
|
radio: "radio";
|
|
832
|
-
url: "url";
|
|
833
833
|
tel: "tel";
|
|
834
834
|
}>;
|
|
835
835
|
}, z.core.$strict>, z.ZodObject<{
|
|
@@ -900,12 +900,12 @@ export declare const createFormPayloadSchema: z.ZodObject<{
|
|
|
900
900
|
date: "date";
|
|
901
901
|
time: "time";
|
|
902
902
|
email: "email";
|
|
903
|
+
url: "url";
|
|
903
904
|
text: "text";
|
|
904
905
|
textarea: "textarea";
|
|
905
906
|
select: "select";
|
|
906
907
|
checkbox: "checkbox";
|
|
907
908
|
radio: "radio";
|
|
908
|
-
url: "url";
|
|
909
909
|
consent: "consent";
|
|
910
910
|
tel: "tel";
|
|
911
911
|
}>;
|
|
@@ -26,6 +26,11 @@ export type RichTextToolbarLayout = Readonly<{
|
|
|
26
26
|
kind: 'inline';
|
|
27
27
|
tone: 'light' | 'dark';
|
|
28
28
|
visibility: RichTextToolbarVisibility;
|
|
29
|
+
}> | Readonly<{
|
|
30
|
+
kind: 'external';
|
|
31
|
+
tone: 'light' | 'dark';
|
|
32
|
+
visibility: RichTextToolbarVisibility;
|
|
33
|
+
renderHost: (toolbar: ReactNode) => ReactNode;
|
|
29
34
|
}> | Readonly<{
|
|
30
35
|
kind: 'chrome';
|
|
31
36
|
tone: 'light' | 'dark';
|
|
@@ -54,6 +54,7 @@ export type BlockEditorProps = {
|
|
|
54
54
|
enableDeletion?: boolean;
|
|
55
55
|
onBlockSave?: (blockId: string, content: Record<string, unknown>) => void;
|
|
56
56
|
onBlocksChange?: (blocks: BlockItem[]) => void;
|
|
57
|
+
onStructuralRevisionChange?: (revision: string) => void;
|
|
57
58
|
theme?: Theme | null;
|
|
58
59
|
widgetOverrides?: Record<string, FieldWidgetComponent>;
|
|
59
60
|
headerLeftSlot?: ReactNode;
|
|
@@ -10,7 +10,7 @@ type UiStore = {
|
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
12
|
};
|
|
13
|
-
export declare function useBlockCreation({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, uiStore, }: {
|
|
13
|
+
export declare function useBlockCreation({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, uiStore, onStructuralRevisionChange, }: {
|
|
14
14
|
allowCreation: boolean;
|
|
15
15
|
apiClient: ApiClient;
|
|
16
16
|
siteId: string;
|
|
@@ -20,6 +20,7 @@ export declare function useBlockCreation({ allowCreation, apiClient, siteId, own
|
|
|
20
20
|
onBlocksChange?: (blocks: BlockItem[]) => void;
|
|
21
21
|
triggerFocus?: (target: BlockFocusTarget) => void;
|
|
22
22
|
uiStore?: UiStore | null;
|
|
23
|
+
onStructuralRevisionChange?: (revision: string) => void;
|
|
23
24
|
}): {
|
|
24
25
|
pickerOpen: boolean;
|
|
25
26
|
creatingBlockName: string | null;
|
|
@@ -9,7 +9,7 @@ type UiStore = {
|
|
|
9
9
|
};
|
|
10
10
|
};
|
|
11
11
|
};
|
|
12
|
-
export declare function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore, }: {
|
|
12
|
+
export declare function useBlockDuplication({ allowCreation, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, triggerFocus, setErrorMessage, uiStore, onStructuralRevisionChange, }: {
|
|
13
13
|
allowCreation: boolean;
|
|
14
14
|
apiClient: ApiClient;
|
|
15
15
|
siteId: string;
|
|
@@ -20,6 +20,7 @@ export declare function useBlockDuplication({ allowCreation, apiClient, siteId,
|
|
|
20
20
|
triggerFocus?: (target: BlockFocusTarget) => void;
|
|
21
21
|
setErrorMessage: (msg: string | null) => void;
|
|
22
22
|
uiStore?: UiStore | null;
|
|
23
|
+
onStructuralRevisionChange?: (revision: string) => void;
|
|
23
24
|
}): {
|
|
24
25
|
duplicatingBlockId: string | null;
|
|
25
26
|
duplicateBlock: (blockId: string) => Promise<void>;
|
|
@@ -15,7 +15,7 @@ type UiStore = {
|
|
|
15
15
|
};
|
|
16
16
|
subscribe: (listener: () => void) => () => void;
|
|
17
17
|
};
|
|
18
|
-
export declare function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, setErrorMessage, uiStore, }: {
|
|
18
|
+
export declare function useBlockReorder({ allowReordering, apiClient, siteId, owner, blockList, setBlockList, onBlocksChange, setErrorMessage, uiStore, onStructuralRevisionChange, }: {
|
|
19
19
|
allowReordering: boolean;
|
|
20
20
|
apiClient: ApiClient;
|
|
21
21
|
siteId: string;
|
|
@@ -25,6 +25,7 @@ export declare function useBlockReorder({ allowReordering, apiClient, siteId, ow
|
|
|
25
25
|
onBlocksChange?: (blocks: BlockItem[]) => void;
|
|
26
26
|
setErrorMessage: (msg: string | null) => void;
|
|
27
27
|
uiStore?: UiStore | null;
|
|
28
|
+
onStructuralRevisionChange?: (revision: string) => void;
|
|
28
29
|
}): {
|
|
29
30
|
reorderId: string | null;
|
|
30
31
|
handleMove: (blockId: string, direction: number) => void;
|
|
@@ -7,6 +7,11 @@ export type BlockEditorOwner = Readonly<{
|
|
|
7
7
|
type: string;
|
|
8
8
|
entryId: string;
|
|
9
9
|
slotKey: string;
|
|
10
|
+
}> | Readonly<{
|
|
11
|
+
kind: 'surface-slot';
|
|
12
|
+
pageSurfaceId: string;
|
|
13
|
+
slotKey: string;
|
|
14
|
+
compositionHash: string;
|
|
10
15
|
}>;
|
|
11
16
|
export type CreateEditableBlockInput = Readonly<{
|
|
12
17
|
kind: string;
|
|
@@ -18,6 +23,10 @@ export declare function blockEditorOwnerKey(owner: BlockEditorOwner): string;
|
|
|
18
23
|
export declare function createEditableBlockForOwner(apiClient: ApiClient, siteId: string, owner: BlockEditorOwner, input: CreateEditableBlockInput): Promise<{
|
|
19
24
|
ok: boolean;
|
|
20
25
|
block: Record<string, unknown>;
|
|
26
|
+
} | {
|
|
27
|
+
ok: boolean;
|
|
28
|
+
block: import("../../../api/src/index").BlockListItem;
|
|
29
|
+
compositionHash: string;
|
|
21
30
|
}>;
|
|
22
31
|
export declare function reorderEditableBlocksForOwner(apiClient: ApiClient, siteId: string, owner: BlockEditorOwner, blockIds: string[]): Promise<{
|
|
23
32
|
ok: boolean;
|
|
@@ -25,3 +34,4 @@ export declare function reorderEditableBlocksForOwner(apiClient: ApiClient, site
|
|
|
25
34
|
export declare function deleteEditableBlockForOwner(apiClient: ApiClient, siteId: string, owner: BlockEditorOwner, blockId: string): Promise<{
|
|
26
35
|
ok: boolean;
|
|
27
36
|
}>;
|
|
37
|
+
export declare function surfaceCompositionHashFromResponse(response: unknown): string | null;
|
|
@@ -7,6 +7,7 @@ export type BlockItem = {
|
|
|
7
7
|
draftContent?: Record<string, unknown> | null;
|
|
8
8
|
publishedContent?: Record<string, unknown> | null;
|
|
9
9
|
bindings?: Record<string, unknown> | null;
|
|
10
|
+
optimisticHash?: string | null;
|
|
10
11
|
};
|
|
11
12
|
export type DraftBlockSnapshot = EditorStructuralDraftSnapshot;
|
|
12
13
|
/**
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
export type PathSegment = string | number;
|
|
2
|
+
export declare class UnsafePathSegmentError extends Error {
|
|
3
|
+
readonly segment: string;
|
|
4
|
+
constructor(segment: string);
|
|
5
|
+
}
|
|
6
|
+
export declare function isUnsafePathSegment(segment: PathSegment): boolean;
|
|
2
7
|
export declare function parsePath(path: string | Array<PathSegment>): Array<PathSegment>;
|
|
3
8
|
export declare function segmentsToPath(segments: Array<PathSegment>): string | undefined;
|
|
4
9
|
export declare function siblingPath(path: string, siblingFieldPath: string): string;
|
|
@@ -18,4 +18,9 @@ export declare function PreviewChromeFloatingControl({ anchorSelector, anchorTar
|
|
|
18
18
|
forceVisible?: boolean;
|
|
19
19
|
children: ReactNode;
|
|
20
20
|
}): React.JSX.Element;
|
|
21
|
+
export declare function PreviewChromeFloatingBar({ anchorSelector, gapPx, children, }: {
|
|
22
|
+
anchorSelector: string;
|
|
23
|
+
gapPx?: number;
|
|
24
|
+
children: ReactNode;
|
|
25
|
+
}): React.JSX.Element;
|
|
21
26
|
export {};
|
|
@@ -59,6 +59,7 @@ export type PreviewEditorSidebarProps = {
|
|
|
59
59
|
activeTab: PreviewEditorSidebarTab;
|
|
60
60
|
onTabChange: (tab: PreviewEditorSidebarTab) => void;
|
|
61
61
|
onClose: () => void;
|
|
62
|
+
onFooterSaved?: () => void;
|
|
62
63
|
viewportMode: ViewportMode;
|
|
63
64
|
viewportWidth: ViewportWidth;
|
|
64
65
|
zoom: ZoomLevel;
|
|
@@ -66,4 +67,4 @@ export type PreviewEditorSidebarProps = {
|
|
|
66
67
|
onViewportWidthChange: (width: ViewportWidth) => void;
|
|
67
68
|
onZoomChange: (zoom: ZoomLevel) => void;
|
|
68
69
|
};
|
|
69
|
-
export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, runtimePaletteState, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): React.JSX.Element;
|
|
70
|
+
export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, runtimePaletteState, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, designRowRequest, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, siteStyleAccess, activeTab, onTabChange, onClose, onFooterSaved, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): React.JSX.Element;
|
|
@@ -10,6 +10,7 @@ export type PreviewBlock = {
|
|
|
10
10
|
draftContent?: Record<string, unknown> | null;
|
|
11
11
|
publishedContent?: Record<string, unknown> | null;
|
|
12
12
|
bindings?: Record<string, unknown> | null;
|
|
13
|
+
optimisticHash?: string | null;
|
|
13
14
|
};
|
|
14
15
|
export type PreviewPageMetadata = {
|
|
15
16
|
draftTitle: string;
|
|
@@ -72,8 +72,9 @@ export type PreviewShellProps = {
|
|
|
72
72
|
/** Hides site-style controls for runtimes without palette authority. */
|
|
73
73
|
hideSiteStyleConfigurator?: boolean;
|
|
74
74
|
baseFetch?: BaseFetch;
|
|
75
|
+
onFooterSaved?: () => void;
|
|
75
76
|
};
|
|
76
|
-
export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, runtimePaletteState, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime, designEditorEligibility, hideSiteStyleConfigurator, baseFetch, }: PreviewShellProps): React.JSX.Element;
|
|
77
|
+
export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, runtimePaletteState, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, supabaseUrl, themeRuntime, designEditorEligibility, hideSiteStyleConfigurator, baseFetch, onFooterSaved, }: PreviewShellProps): React.JSX.Element;
|
|
77
78
|
export declare function defaultDesignEditorEligibility(input: Readonly<{
|
|
78
79
|
pageId: string | null;
|
|
79
80
|
entryData?: PreviewContentEntryData | null;
|
|
@@ -45,5 +45,6 @@ export type PreviewShellLayoutProps = {
|
|
|
45
45
|
bookingOfferingPresets?: readonly BookingOfferingPresetSummary[] | null;
|
|
46
46
|
themeRuntime?: PreviewThemeRuntime;
|
|
47
47
|
siteStyleAccess?: SiteStyleAccess;
|
|
48
|
+
onFooterSaved?: () => void;
|
|
48
49
|
};
|
|
49
|
-
export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, runtimePaletteState, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime, siteStyleAccess, }: PreviewShellLayoutProps): React.JSX.Element;
|
|
50
|
+
export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionVersion, themeSelectionUpdatedAt, themeSelectionButtonPersonalityId, runtimePaletteState, themeSelectionHeaderLayoutId, themeSelectionHeaderStyleId, themeSelectionHeaderLookId, themeSelectionFooterLookId, themeSelectionHeaderContext, themeSelectionFooterContext, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, bookingOfferingPresets, themeRuntime, siteStyleAccess, onFooterSaved, }: PreviewShellLayoutProps): React.JSX.Element;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare const PREVIEW_DESIGN_SAVE_ERROR_MESSAGE = "We couldn\u2019t save that change just now. Please try again in a minute or two.";
|
|
2
|
+
export declare const PREVIEW_DESIGN_REFRESH_ERROR_MESSAGE = "We couldn\u2019t refresh the latest design just now. Your changes are still here. Please try again in a minute or two.";
|
|
3
|
+
export declare const PREVIEW_DESIGN_LOAD_ERROR_MESSAGE = "We couldn\u2019t load those design options just now. Please try again in a minute or two.";
|
|
4
|
+
export declare function reportPreviewDesignError(operation: string, error: unknown): void;
|
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Block Operations for Management Client
|
|
3
3
|
*/
|
|
4
|
-
import { type HttpClient } from './http';
|
|
4
|
+
import { ManagementApiError, type HttpClient } from './http';
|
|
5
5
|
import type { BlockOperations } from './types';
|
|
6
|
+
/**
|
|
7
|
+
* Discriminated stale-conflict error for `blocks.patch`: the block's draft
|
|
8
|
+
* changed since the caller's read. `currentHash` is the server's current
|
|
9
|
+
* draft content hash — retry the patch with it as `baseContentHash`.
|
|
10
|
+
* Extracted from the typed `SdkPatchPageBlockStaleContentFieldError` wire
|
|
11
|
+
* contract, so callers never parse prose.
|
|
12
|
+
*/
|
|
13
|
+
export declare class BlockPatchStaleContentError extends ManagementApiError {
|
|
14
|
+
readonly kind = "stale-content";
|
|
15
|
+
readonly currentHash: string;
|
|
16
|
+
constructor(source: ManagementApiError, currentHash: string);
|
|
17
|
+
}
|
|
18
|
+
export declare function isBlockPatchStaleContentError(error: unknown): error is BlockPatchStaleContentError;
|
|
6
19
|
export declare function createBlockOperations(http: HttpClient): BlockOperations;
|
|
@@ -38,5 +38,6 @@ import { CourseSessionConflictError } from './courses';
|
|
|
38
38
|
export declare function createManagementClient(config: ManagementClientConfig): ManagementClient;
|
|
39
39
|
export type { ManagementClient, ManagementClientConfig, ManagementEntry, ManagementPage, ManagementBlock, ManagementNavigationMenu, ManagementNavigationItem, ManagementSettings, ManagementForm, ManagementFormField, ManagementFormSchema, ManagementFormSettings, ManagementVenue, VenueAddress, VenueLocation, VenueUpsertInput, ManagementEventCategory, EventCategoryUpsertInput, ManagementEventSeries, EventSchedule, EventScheduleUpsertInput, EventStartDurationSchedule, EventStartEndSchedule, EventPricing, EventPaymentTerms, EventPaymentTermsInput, EventContent, EventSeriesUpsertInput, ManagementCourseRun, CourseRunUpsertInput, CourseSession, CourseProgramContent, CourseSessionConflict, EntryUpsertInput, EntryPublishUpsertResult, UpsertedManagementEntry, PageUpsertInput, PagePublishUpsertResult, BlockUpsertInput, NavigationMenuUpsertInput, NavigationItemInput, FormUpsertInput, SiteStyleSelectionApplyCommand, SiteStyleSelectionApplyCommandInput, ThemeUpsertInitializeInput, ThemeUpsertInput, ThemeUpsertResult, ThemeUpsertUpdateInput, ThemeStyleSelectionApplyInput, ThemeStyleSelectionApplyResult, FooterContent, ManagementFooterContent, FooterContentUpsertInput, FooterOperations, PulledFooter, PulledEntries, PulledPages, PulledDrafts, PulledNavigation, PulledSettings, PulledForms, PulledTheme, PulledVenues, PulledEventCategories, PulledEvents, PulledCourses, PulledSiteInfo, PulledContentType, PulledContentTypes, PulledContent, PaginationOptions, PaginatedResult, EntryOperations, PageOperations, BlockOperations, NavigationOperations, SettingsOperations, SettingsUpdateInput, WebhookOperations, SetupRevalidationWebhookInput, SetupRevalidationWebhookResult, ManagementWebhookEndpoint, RevalidationWebhookPlannedEndpoint, 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 { BlockPatchStaleContentError, isBlockPatchStaleContentError, } from './blocks';
|
|
41
42
|
export { applySiteStyleSelectionBodyFromCommand, buildApplySiteStyleSelectionCommand, } from './theme';
|
|
42
43
|
export { CourseSessionConflictError };
|
|
@@ -16,6 +16,8 @@ import type { PaletteSelection } from '../../../../theme-core/src/palette/index'
|
|
|
16
16
|
import type { Theme } from '../../contracts';
|
|
17
17
|
export type SdkDeletePageResponse = NonNullable<APIEndpoints['sdkDeletePage']['response']>;
|
|
18
18
|
export type SdkGetPageBlockResponse = NonNullable<APIEndpoints['sdkGetPageBlock']['response']>;
|
|
19
|
+
export type SdkPatchPageBlockBody = NonNullable<APIEndpoints['sdkPatchPageBlock']['body']>;
|
|
20
|
+
export type SdkPatchPageBlockResponse = NonNullable<APIEndpoints['sdkPatchPageBlock']['response']>;
|
|
19
21
|
export type SdkPullEntriesAllResponse = NonNullable<APIEndpoints['sdkPullEntriesAll']['response']>;
|
|
20
22
|
export type SdkUpsertEntryResponse = NonNullable<APIEndpoints['sdkUpsertEntry']['response']>;
|
|
21
23
|
export type SdkUpsertPageResponse = NonNullable<APIEndpoints['sdkUpsertPage']['response']>;
|
|
@@ -150,6 +152,7 @@ export interface ManagementNavigationMenu {
|
|
|
150
152
|
name: string;
|
|
151
153
|
isPrimary: boolean;
|
|
152
154
|
isFooter: boolean;
|
|
155
|
+
footerRole: 'main' | 'legal-policy' | null;
|
|
153
156
|
items: ManagementNavigationItem[];
|
|
154
157
|
createdAt: string;
|
|
155
158
|
updatedAt: string;
|
|
@@ -189,6 +192,7 @@ export interface PulledNavigationMenu {
|
|
|
189
192
|
name: string;
|
|
190
193
|
isPrimary: boolean;
|
|
191
194
|
isFooter: boolean;
|
|
195
|
+
footerRole: 'main' | 'legal-policy' | null;
|
|
192
196
|
items: PulledNavigationItem[];
|
|
193
197
|
createdAt: string;
|
|
194
198
|
updatedAt: string;
|
|
@@ -198,6 +202,7 @@ export interface NavigationMenuUpsertInput {
|
|
|
198
202
|
name: string;
|
|
199
203
|
isPrimary?: boolean;
|
|
200
204
|
isFooter?: boolean;
|
|
205
|
+
footerRole?: 'main' | 'legal-policy' | null;
|
|
201
206
|
items: NavigationItemInput[];
|
|
202
207
|
}
|
|
203
208
|
export interface NavigationItemInput {
|
|
@@ -595,7 +600,8 @@ export interface ThemeStyleSelectionApplyResult {
|
|
|
595
600
|
}
|
|
596
601
|
/**
|
|
597
602
|
* Footer content for SDK management operations.
|
|
598
|
-
*
|
|
603
|
+
* A narrow legal-text command. The CMS maps this onto the V1 footer composition's
|
|
604
|
+
* legal module without exposing or replacing the aggregate.
|
|
599
605
|
*/
|
|
600
606
|
export interface FooterContent {
|
|
601
607
|
/** Rich text content in ProseMirror JSON format */
|
|
@@ -944,10 +950,18 @@ export interface PageOperations {
|
|
|
944
950
|
delete(identifier: string): Promise<void>;
|
|
945
951
|
}
|
|
946
952
|
export type ManagementPageBlock = SdkGetPageBlockResponse['block'];
|
|
953
|
+
/**
|
|
954
|
+
* Input for `blocks.patch` — derived from the API contract.
|
|
955
|
+
* `baseContentHash` must be the `contentHash` from a prior `blocks.get`;
|
|
956
|
+
* a stale hash rejects with a 409 whose `fieldErrors[0].message` carries the
|
|
957
|
+
* current hash (field `baseContentHash`, code `STALE_CONTENT`).
|
|
958
|
+
*/
|
|
959
|
+
export type BlockPatchInput = SdkPatchPageBlockBody;
|
|
947
960
|
export interface BlockOperations {
|
|
948
961
|
list(pageIdentifier: string): Promise<ManagementBlock[]>;
|
|
949
962
|
get(pageIdentifier: string, blockIdentifier: string): Promise<ManagementPageBlock | null>;
|
|
950
963
|
upsert(pageIdentifier: string, input: BlockUpsertInput): Promise<ManagementBlock>;
|
|
964
|
+
patch(pageIdentifier: string, blockIdentifier: string, input: BlockPatchInput): Promise<ManagementPageBlock>;
|
|
951
965
|
reorder(pageIdentifier: string, blockIdentifiers: string[]): Promise<void>;
|
|
952
966
|
delete(pageIdentifier: string, blockIdentifier: string): Promise<void>;
|
|
953
967
|
}
|
|
@@ -300,6 +300,8 @@ export interface NavigationMenuConfig {
|
|
|
300
300
|
isPrimary?: boolean;
|
|
301
301
|
/** Is this the footer menu? */
|
|
302
302
|
isFooter?: boolean;
|
|
303
|
+
/** Named footer destination. Prefer this for new configurations. */
|
|
304
|
+
footerRole?: 'main' | 'legal-policy' | null;
|
|
303
305
|
/** Menu items */
|
|
304
306
|
items: NavigationItemConfig[];
|
|
305
307
|
}
|
|
@@ -97,6 +97,10 @@ export declare const navigationMenuConfigSchema: z.ZodObject<{
|
|
|
97
97
|
name: z.ZodString;
|
|
98
98
|
isPrimary: z.ZodOptional<z.ZodBoolean>;
|
|
99
99
|
isFooter: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
footerRole: z.ZodOptional<z.ZodNullable<z.ZodEnum<{
|
|
101
|
+
main: "main";
|
|
102
|
+
"legal-policy": "legal-policy";
|
|
103
|
+
}>>>;
|
|
100
104
|
items: z.ZodArray<z.ZodType<Readonly<{
|
|
101
105
|
label: string;
|
|
102
106
|
link: import("../../../api/src/index").NavigationAuthoringLinkInput;
|
|
@@ -280,6 +280,7 @@ export declare function getPrimaryNavigation(navigation: NavigationMenuWithItems
|
|
|
280
280
|
* ```
|
|
281
281
|
*/
|
|
282
282
|
export declare function getFooterNavigation(navigation: NavigationMenuWithItems[] | null | undefined): NavigationMenuWithItems | null;
|
|
283
|
+
export declare function getFooterNavigationByRole(navigation: NavigationMenuWithItems[] | null | undefined, role: 'main' | 'legal-policy'): NavigationMenuWithItems | null;
|
|
283
284
|
/**
|
|
284
285
|
* Get a navigation menu by name/slug.
|
|
285
286
|
*
|
|
@@ -417,6 +418,7 @@ export declare function buildMenu(navigation: NavigationMenuWithItems[], routes:
|
|
|
417
418
|
* ```
|
|
418
419
|
*/
|
|
419
420
|
export declare function buildFooterMenu(navigation: NavigationMenuWithItems[], routes: RouteMap, options?: NavigationRenderOptions): FooterMenu;
|
|
421
|
+
export declare function buildFooterMenuForRole(navigation: NavigationMenuWithItems[], routes: RouteMap, role: 'main' | 'legal-policy', options?: NavigationRenderOptions): FooterMenu;
|
|
420
422
|
export declare function resolveNavigationLinkHref(link: LinkPayload | null, routes: RouteMap, options?: NavigationRenderOptions): string | null;
|
|
421
423
|
/**
|
|
422
424
|
* Build a Logo from site layout data.
|
|
@@ -184,6 +184,7 @@ export interface NavigationMenuRecord {
|
|
|
184
184
|
name: string;
|
|
185
185
|
isPrimary: boolean;
|
|
186
186
|
isFooter: boolean;
|
|
187
|
+
footerRole: 'main' | 'legal-policy' | null;
|
|
187
188
|
createdAt?: string | null;
|
|
188
189
|
updatedAt?: string | null;
|
|
189
190
|
}
|
|
@@ -315,7 +316,7 @@ export type SiteResponse = {
|
|
|
315
316
|
* Persisted design selections. Optional so legacy
|
|
316
317
|
* payloads without these columns still satisfy the type — consumers fall
|
|
317
318
|
* back to the site style's defaults when null.
|
|
318
|
-
|
|
319
|
+
*/
|
|
319
320
|
selectionButtonPersonalityId?: string | null;
|
|
320
321
|
runtimePaletteState?: RuntimePaletteState | null;
|
|
321
322
|
selectionHeaderLayoutId?: string | null;
|
|
@@ -424,7 +425,7 @@ export type SdkRuntimePageSurfaceContentSource = Readonly<{
|
|
|
424
425
|
export type SdkRuntimePageSurface = {
|
|
425
426
|
id: string;
|
|
426
427
|
routeId: string;
|
|
427
|
-
readinessState: 'shippable';
|
|
428
|
+
readinessState: 'internal_pilot' | 'shippable';
|
|
428
429
|
subject: SdkRuntimePageSurfaceSubject;
|
|
429
430
|
title: string;
|
|
430
431
|
slug: string | null;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Renders site header and footer around content. Fetches site data if not provided.
|
|
5
5
|
*/
|
|
6
|
-
import { buildMenu, buildFooterMenu, buildLogo } from '../../navigation';
|
|
6
|
+
import { buildMenu, buildFooterMenu, buildFooterMenuForRole, buildLogo } from '../../navigation';
|
|
7
7
|
import type { RiverbankClient, SiteResponse } from '../../client/types';
|
|
8
8
|
import { type SdkThemeRuntime } from '../themeRuntime';
|
|
9
9
|
export type HeaderData = {
|
|
@@ -16,6 +16,7 @@ export type HeaderData = {
|
|
|
16
16
|
export type FooterData = {
|
|
17
17
|
menu: ReturnType<typeof buildMenu>;
|
|
18
18
|
footerMenu: ReturnType<typeof buildFooterMenu>;
|
|
19
|
+
legalFooterMenu: ReturnType<typeof buildFooterMenuForRole>;
|
|
19
20
|
logo: ReturnType<typeof buildLogo>;
|
|
20
21
|
site: SiteResponse['site'];
|
|
21
22
|
theme: SiteResponse['theme'];
|
|
@@ -182,7 +182,7 @@ export type EntryContentResult = {
|
|
|
182
182
|
export type PageSurfaceContentData = {
|
|
183
183
|
id: string;
|
|
184
184
|
routeId: string;
|
|
185
|
-
readinessState: 'shippable';
|
|
185
|
+
readinessState: 'internal_pilot' | 'shippable';
|
|
186
186
|
subject: SdkRuntimePageSurfaceSubject;
|
|
187
187
|
title: string;
|
|
188
188
|
slug: string | null;
|
|
@@ -2,7 +2,7 @@ import { z } from 'zod';
|
|
|
2
2
|
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
3
|
export declare const navigationLocations: readonly ["main", "header", "footer"];
|
|
4
4
|
export type NavigationLocation = (typeof navigationLocations)[number];
|
|
5
|
-
export declare const navigationMenuRoles: readonly ["primary", "footer"];
|
|
5
|
+
export declare const navigationMenuRoles: readonly ["primary", "footer", "legal-policy"];
|
|
6
6
|
export type NavigationMenuRole = (typeof navigationMenuRoles)[number];
|
|
7
7
|
export declare const offeringArchetypes: readonly ["class", "workshop", "retreat", "performance", "custom"];
|
|
8
8
|
export type OfferingArchetype = (typeof offeringArchetypes)[number];
|
|
@@ -488,13 +488,14 @@ export declare const upsertNavigationMenuCommandSchema: z.ZodObject<{
|
|
|
488
488
|
identifier: z.ZodOptional<z.ZodString>;
|
|
489
489
|
name: z.ZodOptional<z.ZodString>;
|
|
490
490
|
location: z.ZodOptional<z.ZodEnum<{
|
|
491
|
-
header: "header";
|
|
492
|
-
footer: "footer";
|
|
493
491
|
main: "main";
|
|
492
|
+
footer: "footer";
|
|
493
|
+
header: "header";
|
|
494
494
|
}>>;
|
|
495
495
|
role: z.ZodOptional<z.ZodEnum<{
|
|
496
|
-
|
|
496
|
+
"legal-policy": "legal-policy";
|
|
497
497
|
footer: "footer";
|
|
498
|
+
primary: "primary";
|
|
498
499
|
}>>;
|
|
499
500
|
items: z.ZodReadonly<z.ZodArray<z.ZodType<Readonly<{
|
|
500
501
|
label: string;
|
|
@@ -1750,13 +1751,14 @@ export declare const siteCommandSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
|
1750
1751
|
identifier: z.ZodOptional<z.ZodString>;
|
|
1751
1752
|
name: z.ZodOptional<z.ZodString>;
|
|
1752
1753
|
location: z.ZodOptional<z.ZodEnum<{
|
|
1753
|
-
header: "header";
|
|
1754
|
-
footer: "footer";
|
|
1755
1754
|
main: "main";
|
|
1755
|
+
footer: "footer";
|
|
1756
|
+
header: "header";
|
|
1756
1757
|
}>>;
|
|
1757
1758
|
role: z.ZodOptional<z.ZodEnum<{
|
|
1758
|
-
|
|
1759
|
+
"legal-policy": "legal-policy";
|
|
1759
1760
|
footer: "footer";
|
|
1761
|
+
primary: "primary";
|
|
1760
1762
|
}>>;
|
|
1761
1763
|
items: z.ZodReadonly<z.ZodArray<z.ZodType<Readonly<{
|
|
1762
1764
|
label: string;
|
|
@@ -2928,13 +2930,14 @@ export declare const siteCommandBatchSchema: z.ZodObject<{
|
|
|
2928
2930
|
identifier: z.ZodOptional<z.ZodString>;
|
|
2929
2931
|
name: z.ZodOptional<z.ZodString>;
|
|
2930
2932
|
location: z.ZodOptional<z.ZodEnum<{
|
|
2931
|
-
header: "header";
|
|
2932
|
-
footer: "footer";
|
|
2933
2933
|
main: "main";
|
|
2934
|
+
footer: "footer";
|
|
2935
|
+
header: "header";
|
|
2934
2936
|
}>>;
|
|
2935
2937
|
role: z.ZodOptional<z.ZodEnum<{
|
|
2936
|
-
|
|
2938
|
+
"legal-policy": "legal-policy";
|
|
2937
2939
|
footer: "footer";
|
|
2940
|
+
primary: "primary";
|
|
2938
2941
|
}>>;
|
|
2939
2942
|
items: z.ZodReadonly<z.ZodArray<z.ZodType<Readonly<{
|
|
2940
2943
|
label: string;
|
|
@@ -87,8 +87,8 @@ export declare const accordionSystemSchema: z.ZodObject<{
|
|
|
87
87
|
semibold: "semibold";
|
|
88
88
|
}>>;
|
|
89
89
|
fontFamily: z.ZodOptional<z.ZodEnum<{
|
|
90
|
-
body: "body";
|
|
91
90
|
heading: "heading";
|
|
91
|
+
body: "body";
|
|
92
92
|
}>>;
|
|
93
93
|
fontScale: z.ZodOptional<z.ZodEnum<{
|
|
94
94
|
body: "body";
|
|
@@ -115,9 +115,9 @@ export declare const accordionSystemSchema: z.ZodObject<{
|
|
|
115
115
|
triggerColorToken: z.ZodOptional<z.ZodString>;
|
|
116
116
|
accent: z.ZodOptional<z.ZodObject<{
|
|
117
117
|
edge: z.ZodEnum<{
|
|
118
|
+
bottom: "bottom";
|
|
118
119
|
left: "left";
|
|
119
120
|
top: "top";
|
|
120
|
-
bottom: "bottom";
|
|
121
121
|
}>;
|
|
122
122
|
colorToken: z.ZodString;
|
|
123
123
|
thickness: z.ZodEnum<{
|
|
@@ -20,6 +20,17 @@ export declare const buttonPersonalities: readonly [Readonly<{
|
|
|
20
20
|
era: import("../../../../blocks/src/index").StyleEra;
|
|
21
21
|
}>>>;
|
|
22
22
|
buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
|
|
23
|
+
}>, Readonly<{
|
|
24
|
+
id: ButtonPersonalityId<"two-tone-pill">;
|
|
25
|
+
name: string;
|
|
26
|
+
description: string;
|
|
27
|
+
tags: Readonly<Partial<Readonly<{
|
|
28
|
+
tone: import("../../../../blocks/src/index").StyleTone;
|
|
29
|
+
energy: import("../../../../blocks/src/index").StyleEnergy;
|
|
30
|
+
motion: import("../../../../blocks/src/index").StyleMotion;
|
|
31
|
+
era: import("../../../../blocks/src/index").StyleEra;
|
|
32
|
+
}>>>;
|
|
33
|
+
buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
|
|
23
34
|
}>, Readonly<{
|
|
24
35
|
id: ButtonPersonalityId<"earth-pill">;
|
|
25
36
|
name: string;
|