@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.
Files changed (159) hide show
  1. package/dist/{PreviewEditorSidebar-DpAbAl08.mjs → PreviewEditorSidebar-BBT-kZAM.mjs} +46 -11
  2. package/dist/{PreviewEditorUI-O7cn6Xxv.mjs → PreviewEditorUI-D69xNKT2.mjs} +10 -9
  3. package/dist/{PreviewQueryProvider-D0tnKl0t.mjs → PreviewQueryProvider-RRu7wyQ5.mjs} +1 -1
  4. package/dist/{SdkPreviewModeRuntime-CVB7urtl.mjs → SdkPreviewModeRuntime-CuDjXH6o.mjs} +426 -72
  5. package/dist/{SiteChromeCustomizeContext-C_sizso-.mjs → SiteChromeCustomizeContext-BQUY2dEk.mjs} +3865 -544
  6. package/dist/_dts/ai/src/contracts/proposals.d.ts +3712 -220
  7. package/dist/_dts/api/src/blocks.d.ts +41 -7
  8. package/dist/_dts/api/src/bookingRecords.d.ts +180 -115
  9. package/dist/_dts/api/src/cache-tags.d.ts +3 -0
  10. package/dist/_dts/api/src/contentRuntime.d.ts +19 -1
  11. package/dist/_dts/api/src/endpoints.d.ts +99 -0
  12. package/dist/_dts/api/src/footer-settings.d.ts +1 -0
  13. package/dist/_dts/api/src/footerSettings.d.ts +8 -0
  14. package/dist/_dts/api/src/index.d.ts +5 -2
  15. package/dist/_dts/api/src/navigation/contracts.d.ts +3 -3
  16. package/dist/_dts/api/src/previewContentContract.d.ts +4 -0
  17. package/dist/_dts/api/src/sdkContracts.d.ts +62 -0
  18. package/dist/_dts/api/src/siteBanner.d.ts +2 -2
  19. package/dist/_dts/api/src/siteManagementEndpoints.d.ts +143 -55
  20. package/dist/_dts/api/src/sitePlatformEndpoints.d.ts +7 -1
  21. package/dist/_dts/api/src/siteRuntimeEndpoints.d.ts +41 -1
  22. package/dist/_dts/blocks/src/primitives/layout/Section.d.ts +0 -1
  23. package/dist/_dts/blocks/src/rendering/server.d.ts +1 -0
  24. package/dist/_dts/blocks/src/system/blocks/site-footer-runtime.d.ts +50 -0
  25. package/dist/_dts/blocks/src/system/blocks/site-footer.d.ts +9 -48
  26. package/dist/_dts/blocks/src/system/constants/background.d.ts +1 -1
  27. package/dist/_dts/blocks/src/system/icons/registry.d.ts +2 -1
  28. package/dist/_dts/blocks/src/system/icons/social.d.ts +5 -0
  29. package/dist/_dts/blocks/src/system/icons/svg.d.ts +1 -0
  30. package/dist/_dts/blocks/src/system/manifest/schema.d.ts +2 -2
  31. package/dist/_dts/blocks/src/system/node/fragments/backgroundLayer.d.ts +13 -0
  32. package/dist/_dts/blocks/src/system/node/fragments/footerNav.d.ts +2 -0
  33. package/dist/_dts/blocks/src/system/node/fragments/styledContainer.d.ts +4 -4
  34. package/dist/_dts/blocks/src/system/node/fragments/styledSection.d.ts +3 -12
  35. package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +1 -1
  36. package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -1
  37. package/dist/_dts/blocks/src/system/types/link.d.ts +3 -3
  38. package/dist/_dts/content-editor/src/FooterComposerPanel.d.ts +14 -0
  39. package/dist/_dts/content-editor/src/controller/EntryControllerProvider.d.ts +27 -8
  40. package/dist/_dts/content-editor/src/footerComposer.d.ts +56 -0
  41. package/dist/_dts/content-editor/src/hooks/useEntryActions.d.ts +1 -1
  42. package/dist/_dts/content-editor/src/hooks/useEntryMutations.d.ts +5 -5
  43. package/dist/_dts/content-editor/src/index.d.ts +2 -0
  44. package/dist/_dts/content-editor/src/primitives/PreviewRichTextEditor.d.ts +3 -1
  45. package/dist/_dts/content-editor/src/services/contentEntryServices.d.ts +20 -36
  46. package/dist/_dts/content-editor/src/ui/editorSnapshot.d.ts +5 -1
  47. package/dist/_dts/content-editor/src/ui/editorUiStore.d.ts +11 -0
  48. package/dist/_dts/content-model/src/content-types/schema.d.ts +1 -1
  49. package/dist/_dts/content-model/src/definitions/shared.d.ts +3 -0
  50. package/dist/_dts/core/src/branded.d.ts +3 -0
  51. package/dist/_dts/core/src/editor-state.d.ts +4 -0
  52. package/dist/_dts/core/src/footer-composition.d.ts +143 -0
  53. package/dist/_dts/core/src/index.d.ts +2 -0
  54. package/dist/_dts/core/src/public-profile.d.ts +73 -0
  55. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +3043 -2941
  56. package/dist/_dts/db/src/schemas/forms.d.ts +10 -10
  57. package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +5 -0
  58. package/dist/_dts/editor-blocks/src/BlockEditor.d.ts +1 -0
  59. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockCreation.d.ts +2 -1
  60. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockDuplication.d.ts +2 -1
  61. package/dist/_dts/editor-blocks/src/block-editor/hooks/useBlockReorder.d.ts +2 -1
  62. package/dist/_dts/editor-blocks/src/block-editor/owner.d.ts +10 -0
  63. package/dist/_dts/editor-blocks/src/block-editor/types.d.ts +1 -0
  64. package/dist/_dts/path-utils/src/index.d.ts +5 -0
  65. package/dist/_dts/preview-next/src/client/preview/PreviewChromeLayer.d.ts +5 -0
  66. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +2 -1
  67. package/dist/_dts/preview-next/src/client/preview/PreviewEntryControllerProvider.d.ts +1 -0
  68. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +2 -1
  69. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +2 -1
  70. package/dist/_dts/preview-next/src/client/preview/previewErrorMessages.d.ts +4 -0
  71. package/dist/_dts/sdk/src/cli/content/reader.d.ts +1 -0
  72. package/dist/_dts/sdk/src/client/management/blocks.d.ts +14 -1
  73. package/dist/_dts/sdk/src/client/management/index.d.ts +1 -0
  74. package/dist/_dts/sdk/src/client/management/types.d.ts +15 -1
  75. package/dist/_dts/sdk/src/config/content-types.d.ts +2 -0
  76. package/dist/_dts/sdk/src/config/content-validation.d.ts +4 -0
  77. package/dist/_dts/sdk/src/navigation/index.d.ts +2 -0
  78. package/dist/_dts/sdk/src/public-api/contracts.d.ts +3 -2
  79. package/dist/_dts/sdk/src/rendering/components/Layout.d.ts +2 -1
  80. package/dist/_dts/sdk/src/rendering/helpers/loadContent.d.ts +1 -1
  81. package/dist/_dts/sdk/src/version.d.ts +1 -1
  82. package/dist/_dts/site-commands/src/commands.d.ts +13 -10
  83. package/dist/_dts/theme-core/src/accordions/types.d.ts +2 -2
  84. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  85. package/dist/_dts/theme-core/src/buttons/personalities/two-tone-pill.d.ts +17 -0
  86. package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +1 -1
  87. package/dist/_dts/theme-core/src/buttons/types.d.ts +3 -3
  88. package/dist/_dts/theme-core/src/cards/types.d.ts +3 -3
  89. package/dist/_dts/theme-core/src/footer/mode.d.ts +15 -0
  90. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  91. package/dist/_dts/theme-core/src/interactive/baseSchema.d.ts +1 -1
  92. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +36 -30
  93. package/dist/_dts/theme-core/src/navigation/types.d.ts +1 -1
  94. package/dist/_dts/theme-core/src/schema.d.ts +1186 -34
  95. package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +12 -1
  96. package/dist/_dts/theme-core/src/site-styles/siteChromeNavPreferences.d.ts +15 -0
  97. package/dist/cli/index.mjs +760 -374
  98. package/dist/client/{DiscountCodeDisclosure-BwGkvmVH.mjs → DiscountCodeDisclosure-D6TOf6Hi.mjs} +1 -1
  99. package/dist/client/{EventCombined.client-JnWE6Hzc.mjs → EventCombined.client-Dao3zxRk.mjs} +3 -3
  100. package/dist/client/{EventListing.client-DQewc_kg.mjs → EventListing.client-B2NNt4y1.mjs} +2 -2
  101. package/dist/client/{LeafletStaticMap-DPAU3SFt.mjs → LeafletStaticMap-BhwFo16w.mjs} +1 -1
  102. package/dist/client/{MagicLinkForm-D4kpWCbW.mjs → MagicLinkForm-BWnB7cMR.mjs} +2 -2
  103. package/dist/client/{StepIndicator-CBlkb4rA.mjs → StepIndicator-TzRiQ0BY.mjs} +2 -2
  104. package/dist/client/{accordion-DAIBVpTS.mjs → accordion-BPy-AJ4_.mjs} +1 -1
  105. package/dist/client/{bookingForm-DZ-4l5_1.mjs → bookingForm-BL4PGZds.mjs} +6 -6
  106. package/dist/client/bookings.mjs +143 -94
  107. package/dist/client/{buttons-DJgynGHQ.mjs → buttons-EBjyslaX.mjs} +144 -95
  108. package/dist/client/{carousel-D-SLfX8r.mjs → carousel-C2b7Cn9-.mjs} +1 -1
  109. package/dist/client/{cart-CEgbgJhX.mjs → cart-BQcbXIVD.mjs} +3 -3
  110. package/dist/client/{checkout-CXWrCRAA.mjs → checkout-DEmpGRJu.mjs} +3 -3
  111. package/dist/client/client.mjs +827 -434
  112. package/dist/client/{courseRegistration-DVmLrRVz.mjs → courseRegistration-BqRZPmsq.mjs} +7 -7
  113. package/dist/client/{eventCalendar-DCuyPY_c.mjs → eventCalendar-B8N_tSl5.mjs} +5 -5
  114. package/dist/client/{eventCombined-kP2CA2D4.mjs → eventCombined-Gjn6gtq7.mjs} +2 -2
  115. package/dist/client/{eventDetails-DU0LeF5e.mjs → eventDetails-M-VCxA-r.mjs} +3 -3
  116. package/dist/client/{eventListing-CcHF87BI.mjs → eventListing-DR19hqYi.mjs} +2 -2
  117. package/dist/client/{eventRegistration-DJnR0yFH.mjs → eventRegistration-BR02a0k3.mjs} +7 -7
  118. package/dist/client/{form-CH1lCusH.mjs → form-LY2xIbwg.mjs} +2 -2
  119. package/dist/client/{headerSection-CBPFZoku.mjs → headerSection-CYwwXJfh.mjs} +3 -3
  120. package/dist/client/hooks.mjs +377 -362
  121. package/dist/client/{locationMap-Cx1hBg5n.mjs → locationMap-DWnBXrFq.mjs} +2 -2
  122. package/dist/client/{newsletterForm-1ZL_ti9u.mjs → newsletterForm-D9s-fQ2P.mjs} +2 -2
  123. package/dist/client/{pricing-BIbzmV0G.mjs → pricing-DDq80oYc.mjs} +1 -1
  124. package/dist/client/{productDetail-BTh5gHBV.mjs → productDetail-B0SbWd45.mjs} +3 -3
  125. package/dist/client/{productList-Cc7OMrqN.mjs → productList-PwYlZn0y.mjs} +3 -3
  126. package/dist/client/{propsDecoder-oR-M-ISN.mjs → propsDecoder-BRWBiH7i.mjs} +33 -9
  127. package/dist/client/rendering/client.mjs +247 -40
  128. package/dist/client/rendering/islands.mjs +18 -18
  129. package/dist/client/rendering.mjs +478 -270
  130. package/dist/client/{shop-CQ_YbCnn.mjs → shop-CMwZPYME.mjs} +6 -6
  131. package/dist/client/{shop-commerce-BM-AoD3M.mjs → shop-commerce-BuxsFate.mjs} +5 -5
  132. package/dist/client/{shop-commerce-store-DFMQhU5p.mjs → shop-commerce-store-boYlEJ91.mjs} +1 -1
  133. package/dist/client/{shopShared-D0SKO2Cu.mjs → shopShared-D2naaOes.mjs} +2 -2
  134. package/dist/client/{useDiscountCodeUi-CrG4_ARt.mjs → useDiscountCodeUi-D9RHpVoj.mjs} +1 -1
  135. package/dist/client/{useEventFilters-CxK8Fekl.mjs → useEventFilters-igGiK1re.mjs} +3 -3
  136. package/dist/client/{usePolling-jcVryNgZ.mjs → usePolling-CI7MbsFB.mjs} +2 -2
  137. package/dist/preview-next/before-render.mjs +178 -0
  138. package/dist/preview-next/client/runtime.mjs +4 -4
  139. package/dist/preview-next/middleware.mjs +178 -0
  140. package/dist/{previewAuthStore-BPcJPzdz.mjs → previewAuthStore-a_cBD28m.mjs} +178 -0
  141. package/dist/{sdk-runtime-C39Rsk-x.mjs → sdk-runtime-MBzD-GmP.mjs} +2 -2
  142. package/dist/{separator-BoMSQnsP.mjs → separator-5ahRBC85.mjs} +1 -1
  143. package/dist/server/components.mjs +556 -366
  144. package/dist/server/config-validation.mjs +384 -363
  145. package/dist/server/config.mjs +384 -364
  146. package/dist/server/data.mjs +377 -362
  147. package/dist/server/index.mjs +179 -1
  148. package/dist/server/navigation.mjs +9 -3
  149. package/dist/server/next.mjs +1384 -995
  150. package/dist/server/page-converter.mjs +368 -355
  151. package/dist/server/prebuild.mjs +1 -1
  152. package/dist/server/rendering/server.mjs +539 -360
  153. package/dist/server/rendering.mjs +556 -366
  154. package/dist/server/routing.mjs +613 -543
  155. package/dist/server/server.mjs +554 -361
  156. package/dist/server/theme-bridge.mjs +189 -98
  157. package/dist/server/theme.mjs +161 -95
  158. package/dist/styles/index.css +7 -1
  159. 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;
@@ -62,6 +62,7 @@ export interface LocalNavigationMenu {
62
62
  name: string;
63
63
  isPrimary?: boolean;
64
64
  isFooter?: boolean;
65
+ footerRole?: 'main' | 'legal-policy' | null;
65
66
  items: LocalNavigationItem[];
66
67
  }
67
68
  export interface LocalNavigation {
@@ -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
- * Matches the structure stored in site_settings.footer_content_json (bottomText only).
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;
@@ -8,4 +8,4 @@
8
8
  * 1. This constant
9
9
  * 2. The "version" field in package.json
10
10
  */
11
- export declare const SDK_VERSION = "0.107.0";
11
+ export declare const SDK_VERSION = "0.108.0";
@@ -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
- primary: "primary";
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
- primary: "primary";
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
- primary: "primary";
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;