@riverbankcms/sdk 0.60.12 → 0.60.14

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 (91) hide show
  1. package/README.md +10 -7
  2. package/dist/_dts/api/src/bookingConfig.d.ts +31 -1
  3. package/dist/_dts/api/src/bookingManagementEndpoints.d.ts +38 -1
  4. package/dist/_dts/api/src/bookingOperations.d.ts +3 -0
  5. package/dist/_dts/api/src/bookingRecords.d.ts +45 -0
  6. package/dist/_dts/api/src/bookingRefundOutcomes.d.ts +4 -4
  7. package/dist/_dts/api/src/commercePortalEndpoints.d.ts +1 -5
  8. package/dist/_dts/api/src/communications.d.ts +1 -1
  9. package/dist/_dts/api/src/contentRuntime.d.ts +1 -1
  10. package/dist/_dts/api/src/endpoints.d.ts +89 -9
  11. package/dist/_dts/api/src/index.d.ts +2 -1
  12. package/dist/_dts/api/src/publicExperienceEndpoints.d.ts +1 -0
  13. package/dist/_dts/api/src/seoEndpoints.d.ts +2 -0
  14. package/dist/_dts/api/src/siteAssets.d.ts +0 -10
  15. package/dist/_dts/api/src/types.d.ts +1 -1
  16. package/dist/_dts/blocks/src/PageRenderer.d.ts +1 -0
  17. package/dist/_dts/blocks/src/index.d.ts +1 -0
  18. package/dist/_dts/blocks/src/portal/types.d.ts +1 -1
  19. package/dist/_dts/blocks/src/server.d.ts +1 -0
  20. package/dist/_dts/blocks/src/subroutes/fold.d.ts +40 -0
  21. package/dist/_dts/blocks/src/subroutes/formatDate.d.ts +12 -0
  22. package/dist/_dts/blocks/src/subroutes/index.d.ts +3 -0
  23. package/dist/_dts/blocks/src/subroutes/kinds.d.ts +32 -0
  24. package/dist/_dts/blocks/src/system/fields/boxStyles.d.ts +3 -1
  25. package/dist/_dts/blocks/src/system/helpers/resolveBackground.d.ts +2 -0
  26. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration/types.d.ts +1 -0
  27. package/dist/_dts/blocks/src/system/runtime/nodes/course-registration.interactive.d.ts +1 -0
  28. package/dist/_dts/blocks/src/system/spacing.d.ts +2 -1
  29. package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +5 -0
  30. package/dist/_dts/blocks/src/system/transforms/typed.d.ts +5 -1
  31. package/dist/_dts/core/src/booking-refunds.d.ts +8 -0
  32. package/dist/_dts/core/src/participant-identity.d.ts +1 -73
  33. package/dist/_dts/core/src/participants.d.ts +19 -7
  34. package/dist/_dts/db/src/generated/supabase/database.types.d.ts +188 -36
  35. package/dist/_dts/preview-next/src/client/preview/EntryEditorPanel.d.ts +3 -3
  36. package/dist/_dts/preview-next/src/client/preview/PreviewEditorSidebar.d.ts +3 -3
  37. package/dist/_dts/preview-next/src/client/preview/PreviewShell.d.ts +3 -3
  38. package/dist/_dts/preview-next/src/client/preview/PreviewShellLayout.d.ts +3 -3
  39. package/dist/_dts/preview-next/src/client/preview/SubrouteNoticePanel.d.ts +13 -0
  40. package/dist/_dts/preview-next/src/client/preview/subrouteNotice.d.ts +26 -0
  41. package/dist/_dts/sdk/src/contracts/page.d.ts +1 -0
  42. package/dist/_dts/sdk/src/public-api/contracts.d.ts +1 -0
  43. package/dist/_dts/sdk/src/rendering/islands/types.d.ts +1 -0
  44. package/dist/_dts/sdk/src/routing/resolvePageContent.d.ts +4 -5
  45. package/dist/_dts/sdk/src/version.d.ts +1 -1
  46. package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
  47. package/dist/_dts/theme-core/src/buttons/personalities/showtime-pill.d.ts +17 -0
  48. package/dist/_dts/theme-core/src/buttons/types.d.ts +1 -1
  49. package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
  50. package/dist/_dts/theme-core/src/mock-themes/all.d.ts +66 -30
  51. package/dist/_dts/theme-core/src/palette/variants/brand-led.d.ts +16 -0
  52. package/dist/_dts/theme-core/src/palette/variants/index.d.ts +15 -0
  53. package/dist/_dts/theme-core/src/palette/variants/types.d.ts +3 -3
  54. package/dist/_dts/theme-core/src/schema.d.ts +174 -6
  55. package/dist/_dts/theme-core/src/site-styles/appearancePresets.d.ts +328 -15
  56. package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +54 -2
  57. package/dist/_dts/theme-core/src/site-styles/designState.d.ts +124 -0
  58. package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
  59. package/dist/_dts/theme-core/src/site-styles/index.d.ts +1 -0
  60. package/dist/_dts/theme-core/src/site-styles/lookResolution.d.ts +21 -0
  61. package/dist/_dts/theme-core/src/site-styles/pageDesignEditorModel.d.ts +2 -1
  62. package/dist/_dts/theme-core/src/site-styles/previewCompiler.d.ts +1 -1
  63. package/dist/_dts/theme-core/src/site-styles/types.d.ts +135 -2
  64. package/dist/_dts/ui/src/badge.d.ts +1 -1
  65. package/dist/_dts/ui/src/button.d.ts +1 -1
  66. package/dist/cli/index.mjs +744 -176
  67. package/dist/client/bookings.mjs +115 -63
  68. package/dist/client/client.mjs +848 -227
  69. package/dist/client/hooks.mjs +737 -173
  70. package/dist/client/rendering/client.mjs +179 -100
  71. package/dist/client/rendering/islands.mjs +179 -99
  72. package/dist/client/rendering.mjs +847 -226
  73. package/dist/preview-next/before-render.mjs +103 -16
  74. package/dist/preview-next/client/runtime.mjs +1615 -319
  75. package/dist/preview-next/middleware.mjs +103 -16
  76. package/dist/server/components.mjs +838 -227
  77. package/dist/server/config-validation.mjs +737 -173
  78. package/dist/server/config.mjs +737 -173
  79. package/dist/server/data.mjs +737 -173
  80. package/dist/server/index.mjs +106 -79
  81. package/dist/server/next.mjs +841 -229
  82. package/dist/server/page-converter.mjs +589 -144
  83. package/dist/server/prebuild.mjs +1 -1
  84. package/dist/server/rendering/server.mjs +838 -227
  85. package/dist/server/rendering.mjs +838 -227
  86. package/dist/server/routing.mjs +771 -178
  87. package/dist/server/server.mjs +738 -174
  88. package/dist/server/theme-bridge.mjs +216 -39
  89. package/dist/server/theme.mjs +139 -37
  90. package/dist/styles/index.css +44 -2
  91. package/package.json +1 -1
@@ -811,6 +811,75 @@ export type Database = {
811
811
  }
812
812
  ];
813
813
  };
814
+ appointment_staff_digest_deliveries: {
815
+ Row: {
816
+ appointment_count: number;
817
+ attempt_count: number;
818
+ claim_expires_at: string;
819
+ created_at: string;
820
+ delivered_at: string | null;
821
+ digest_kind: string;
822
+ id: string;
823
+ last_error: string | null;
824
+ local_date: string;
825
+ recipient_email: string;
826
+ site_id: string;
827
+ staff_member_id: string;
828
+ status: string;
829
+ timezone: string;
830
+ updated_at: string;
831
+ };
832
+ Insert: {
833
+ appointment_count?: number;
834
+ attempt_count?: number;
835
+ claim_expires_at: string;
836
+ created_at?: string;
837
+ delivered_at?: string | null;
838
+ digest_kind?: string;
839
+ id?: string;
840
+ last_error?: string | null;
841
+ local_date: string;
842
+ recipient_email: string;
843
+ site_id: string;
844
+ staff_member_id: string;
845
+ status?: string;
846
+ timezone: string;
847
+ updated_at?: string;
848
+ };
849
+ Update: {
850
+ appointment_count?: number;
851
+ attempt_count?: number;
852
+ claim_expires_at?: string;
853
+ created_at?: string;
854
+ delivered_at?: string | null;
855
+ digest_kind?: string;
856
+ id?: string;
857
+ last_error?: string | null;
858
+ local_date?: string;
859
+ recipient_email?: string;
860
+ site_id?: string;
861
+ staff_member_id?: string;
862
+ status?: string;
863
+ timezone?: string;
864
+ updated_at?: string;
865
+ };
866
+ Relationships: [
867
+ {
868
+ foreignKeyName: "appointment_staff_digest_deliveries_site_id_fkey";
869
+ columns: ["site_id"];
870
+ isOneToOne: false;
871
+ referencedRelation: "sites";
872
+ referencedColumns: ["id"];
873
+ },
874
+ {
875
+ foreignKeyName: "appointment_staff_digest_deliveries_staff_member_id_fkey";
876
+ columns: ["staff_member_id"];
877
+ isOneToOne: false;
878
+ referencedRelation: "staff_members";
879
+ referencedColumns: ["id"];
880
+ }
881
+ ];
882
+ };
814
883
  appointments: {
815
884
  Row: {
816
885
  cancellation_reason: string | null;
@@ -2088,17 +2157,12 @@ export type Database = {
2088
2157
  course_enrollment_id: string | null;
2089
2158
  course_session_attendee_id: string | null;
2090
2159
  created_at: string;
2091
- display_name: string | null;
2092
- email: string | null;
2093
- email_normalized: string | null;
2094
2160
  event_attendee_guest_id: string | null;
2095
2161
  event_attendee_id: string | null;
2096
2162
  id: string;
2097
- identity_state: string;
2098
2163
  metadata: Json;
2099
- participant_id: string | null;
2164
+ participant_id: string;
2100
2165
  participation_kind: string;
2101
- phone: string | null;
2102
2166
  site_id: string;
2103
2167
  updated_at: string;
2104
2168
  };
@@ -2107,17 +2171,12 @@ export type Database = {
2107
2171
  course_enrollment_id?: string | null;
2108
2172
  course_session_attendee_id?: string | null;
2109
2173
  created_at?: string;
2110
- display_name?: string | null;
2111
- email?: string | null;
2112
- email_normalized?: string | null;
2113
2174
  event_attendee_guest_id?: string | null;
2114
2175
  event_attendee_id?: string | null;
2115
2176
  id?: string;
2116
- identity_state: string;
2117
2177
  metadata?: Json;
2118
- participant_id?: string | null;
2178
+ participant_id: string;
2119
2179
  participation_kind: string;
2120
- phone?: string | null;
2121
2180
  site_id: string;
2122
2181
  updated_at?: string;
2123
2182
  };
@@ -2126,17 +2185,12 @@ export type Database = {
2126
2185
  course_enrollment_id?: string | null;
2127
2186
  course_session_attendee_id?: string | null;
2128
2187
  created_at?: string;
2129
- display_name?: string | null;
2130
- email?: string | null;
2131
- email_normalized?: string | null;
2132
2188
  event_attendee_guest_id?: string | null;
2133
2189
  event_attendee_id?: string | null;
2134
2190
  id?: string;
2135
- identity_state?: string;
2136
2191
  metadata?: Json;
2137
- participant_id?: string | null;
2192
+ participant_id?: string;
2138
2193
  participation_kind?: string;
2139
- phone?: string | null;
2140
2194
  site_id?: string;
2141
2195
  updated_at?: string;
2142
2196
  };
@@ -9812,6 +9866,69 @@ export type Database = {
9812
9866
  }
9813
9867
  ];
9814
9868
  };
9869
+ participant_identity_audit_events: {
9870
+ Row: {
9871
+ actor_kind: string;
9872
+ actor_user_id: string | null;
9873
+ changes: Json;
9874
+ created_at: string;
9875
+ event_type: string;
9876
+ id: string;
9877
+ occurred_at: string;
9878
+ participant_id: string;
9879
+ participant_participation_id: string | null;
9880
+ reason: string | null;
9881
+ request_id: string | null;
9882
+ site_id: string;
9883
+ source_context: Json | null;
9884
+ };
9885
+ Insert: {
9886
+ actor_kind: string;
9887
+ actor_user_id?: string | null;
9888
+ changes: Json;
9889
+ created_at?: string;
9890
+ event_type: string;
9891
+ id?: string;
9892
+ occurred_at?: string;
9893
+ participant_id: string;
9894
+ participant_participation_id?: string | null;
9895
+ reason?: string | null;
9896
+ request_id?: string | null;
9897
+ site_id: string;
9898
+ source_context?: Json | null;
9899
+ };
9900
+ Update: {
9901
+ actor_kind?: string;
9902
+ actor_user_id?: string | null;
9903
+ changes?: Json;
9904
+ created_at?: string;
9905
+ event_type?: string;
9906
+ id?: string;
9907
+ occurred_at?: string;
9908
+ participant_id?: string;
9909
+ participant_participation_id?: string | null;
9910
+ reason?: string | null;
9911
+ request_id?: string | null;
9912
+ site_id?: string;
9913
+ source_context?: Json | null;
9914
+ };
9915
+ Relationships: [
9916
+ {
9917
+ foreignKeyName: "participant_identity_audit_ev_participant_participation_id_fkey";
9918
+ columns: ["participant_participation_id"];
9919
+ isOneToOne: false;
9920
+ referencedRelation: "booking_participant_participations";
9921
+ referencedColumns: ["id"];
9922
+ },
9923
+ {
9924
+ foreignKeyName: "participant_identity_audit_events_participant_id_fkey";
9925
+ columns: ["participant_id"];
9926
+ isOneToOne: false;
9927
+ referencedRelation: "booking_participants";
9928
+ referencedColumns: ["id"];
9929
+ }
9930
+ ];
9931
+ };
9815
9932
  participant_roster_assertion_jobs: {
9816
9933
  Row: {
9817
9934
  attempt_count: number;
@@ -13711,6 +13828,29 @@ export type Database = {
13711
13828
  updated_at: string;
13712
13829
  }[];
13713
13830
  };
13831
+ apply_customer_self_service_profile_update: {
13832
+ Args: {
13833
+ audit_changes: Json;
13834
+ audit_request_id?: string;
13835
+ audit_source_context?: Json;
13836
+ expected_updated_at: string;
13837
+ next_name: string;
13838
+ next_phone: string;
13839
+ target_customer_id: string;
13840
+ target_site_id: string;
13841
+ };
13842
+ Returns: {
13843
+ audit_event_id: string;
13844
+ created_at: string;
13845
+ customer_id: string;
13846
+ email: string;
13847
+ email_verified_at: string;
13848
+ name: string;
13849
+ phone: string;
13850
+ site_id: string;
13851
+ updated_at: string;
13852
+ }[];
13853
+ };
13714
13854
  apply_newsletter_subscriber_rectification: {
13715
13855
  Args: {
13716
13856
  audit_actor_user_id: string;
@@ -13771,6 +13911,36 @@ export type Database = {
13771
13911
  };
13772
13912
  Returns: string;
13773
13913
  };
13914
+ apply_participant_identity_rectification: {
13915
+ Args: {
13916
+ audit_actor_user_id: string;
13917
+ audit_changes: Json;
13918
+ audit_participant_participation_id?: string;
13919
+ audit_reason: string;
13920
+ audit_request_id?: string;
13921
+ audit_source_context?: Json;
13922
+ expected_updated_at: string;
13923
+ next_display_name: string;
13924
+ next_email: string;
13925
+ next_identity_state: string;
13926
+ next_phone: string;
13927
+ target_participant_id: string;
13928
+ target_site_id: string;
13929
+ };
13930
+ Returns: {
13931
+ apply_status: string;
13932
+ audit_event_id: string;
13933
+ customer_id: string;
13934
+ display_name: string;
13935
+ email: string;
13936
+ email_normalized: string;
13937
+ identity_state: string;
13938
+ participant_id: string;
13939
+ phone: string;
13940
+ site_id: string;
13941
+ updated_at: string;
13942
+ }[];
13943
+ };
13774
13944
  assert_single_subject_participant_roster_atomic: {
13775
13945
  Args: {
13776
13946
  p_customer_id: string;
@@ -14491,24 +14661,6 @@ export type Database = {
14491
14661
  order_id: string;
14492
14662
  }[];
14493
14663
  };
14494
- postgres_fdw_disconnect: {
14495
- Args: {
14496
- "": string;
14497
- };
14498
- Returns: boolean;
14499
- };
14500
- postgres_fdw_disconnect_all: {
14501
- Args: never;
14502
- Returns: boolean;
14503
- };
14504
- postgres_fdw_get_connections: {
14505
- Args: never;
14506
- Returns: Record<string, unknown>[];
14507
- };
14508
- postgres_fdw_handler: {
14509
- Args: never;
14510
- Returns: unknown;
14511
- };
14512
14664
  redeem_pass_credits: {
14513
14665
  Args: {
14514
14666
  credits_amount?: number;
@@ -2,7 +2,7 @@ import { type ReactNode } from 'react';
2
2
  import type { ApiClient } from '@riverbankcms/api/request';
3
3
  import { type ContentTypeSchema } from '@riverbankcms/content-model';
4
4
  import { type ZoomLevel } from '@riverbankcms/content-editor';
5
- import type { MediaAssetIndexItem, OccurrenceContextData, Theme } from '@riverbankcms/blocks';
5
+ import type { EntrySubrouteContextData, MediaAssetIndexItem, Theme } from '@riverbankcms/blocks';
6
6
  import type { FieldWidgetComponent } from '@riverbankcms/block-form/client';
7
7
  import { type ViewportMode, type ViewportWidth } from './PreviewViewportControls';
8
8
  import type { PreviewEditorSidebarProps, PreviewTemplateData } from './PreviewEditorSidebar';
@@ -17,7 +17,7 @@ type EntryEditorPanelProps = {
17
17
  apiClient: ApiClient;
18
18
  bearerToken?: string | null;
19
19
  supabaseUrl?: string;
20
- occurrenceContext?: OccurrenceContextData | null;
20
+ entrySubrouteContext?: EntrySubrouteContextData | null;
21
21
  metadataPanel: ReactNode;
22
22
  mediaAssets?: MediaAssetIndexItem[];
23
23
  widgets: Record<string, FieldWidgetComponent>;
@@ -28,5 +28,5 @@ type EntryEditorPanelProps = {
28
28
  onViewportWidthChange: (width: ViewportWidth) => void;
29
29
  onZoomChange: (zoom: ZoomLevel) => void;
30
30
  };
31
- export declare function EntryEditorPanel({ siteId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, bearerToken, supabaseUrl, occurrenceContext, metadataPanel, mediaAssets, widgets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: EntryEditorPanelProps): import("react/jsx-runtime").JSX.Element;
31
+ export declare function EntryEditorPanel({ siteId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, metadataPanel, mediaAssets, widgets, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: EntryEditorPanelProps): import("react/jsx-runtime").JSX.Element;
32
32
  export {};
@@ -2,7 +2,7 @@ import { type ReactNode } from "react";
2
2
  import type { ApiClient } from "@riverbankcms/api/request";
3
3
  import type { SdkConfigForBlockPicker } from "@riverbankcms/editor-blocks";
4
4
  import type { SurfaceId } from "@riverbankcms/surfaces";
5
- import type { MediaAssetIndexItem, OccurrenceContextData, Theme } from "@riverbankcms/blocks";
5
+ import type { EntrySubrouteContextData, MediaAssetIndexItem, Theme } from "@riverbankcms/blocks";
6
6
  import { type ContentTypeSchema } from "@riverbankcms/content-model";
7
7
  import { type ZoomLevel } from "@riverbankcms/content-editor";
8
8
  import type { ButtonPersonalityId } from "@riverbankcms/theme-core/buttons";
@@ -38,7 +38,7 @@ export type PreviewEditorSidebarProps = {
38
38
  apiClient: ApiClient;
39
39
  bearerToken?: string | null;
40
40
  supabaseUrl?: string;
41
- occurrenceContext?: OccurrenceContextData | null;
41
+ entrySubrouteContext?: EntrySubrouteContextData | null;
42
42
  assistantPanel?: ReactNode;
43
43
  sdkConfig?: SdkConfigForBlockPicker | null;
44
44
  mediaAssets?: MediaAssetIndexItem[];
@@ -53,4 +53,4 @@ export type PreviewEditorSidebarProps = {
53
53
  onViewportWidthChange: (width: ViewportWidth) => void;
54
54
  onZoomChange: (zoom: ZoomLevel) => void;
55
55
  };
56
- export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, apiClient, bearerToken, supabaseUrl, occurrenceContext, assistantPanel, sdkConfig, mediaAssets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): import("react/jsx-runtime").JSX.Element;
56
+ export declare function PreviewEditorSidebar({ surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, theme, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, apiClient, bearerToken, supabaseUrl, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, siteStyleAccess, activeTab, onTabChange, onClose, viewportMode, viewportWidth, zoom, onViewportModeChange, onViewportWidthChange, onZoomChange, }: PreviewEditorSidebarProps): import("react/jsx-runtime").JSX.Element;
@@ -2,7 +2,7 @@ import { type ComponentProps, type ReactNode } from "react";
2
2
  import { BlockApiProvider } from "@riverbankcms/blocks/client";
3
3
  import type { ButtonPersonalityId } from "@riverbankcms/theme-core/buttons";
4
4
  import type { PaletteOverrides, PaletteVariantId } from "@riverbankcms/theme-core/palette";
5
- import type { MediaAssetIndexItem, OccurrenceContextData, Theme } from "@riverbankcms/blocks";
5
+ import type { EntrySubrouteContextData, MediaAssetIndexItem, Theme } from "@riverbankcms/blocks";
6
6
  import type { ContentTypeSchema } from "@riverbankcms/content-model";
7
7
  import type { SdkConfigForBlockPicker } from "@riverbankcms/editor-blocks";
8
8
  import type { SurfaceId } from "@riverbankcms/surfaces";
@@ -54,7 +54,7 @@ export type PreviewShellProps = {
54
54
  pageMetadata?: PreviewPageMetadata;
55
55
  isSiteLaunched: boolean;
56
56
  maintenanceModeEnabled: boolean;
57
- occurrenceContext?: OccurrenceContextData | null;
57
+ entrySubrouteContext?: EntrySubrouteContextData | null;
58
58
  assistantPanel?: PreviewEditorSidebarProps["assistantPanel"];
59
59
  sdkConfig?: SdkConfigForBlockPicker | null;
60
60
  mediaAssets?: MediaAssetIndexItem[];
@@ -63,7 +63,7 @@ export type PreviewShellProps = {
63
63
  designEditorEligibility?: PreviewDesignEditorEligibility;
64
64
  baseFetch?: BaseFetch;
65
65
  };
66
- export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, occurrenceContext, assistantPanel, sdkConfig, mediaAssets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): import("react/jsx-runtime").JSX.Element;
66
+ export declare function PreviewShell({ children, apiBaseUrl, blockApiConfig, siteId, siteSlug, editableId, previewSession, previewToken, dashboardBaseUrl, surfaceId, theme, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, pageId, routeId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, initialStatus, initialBlocks, pageMetadata, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, supabaseUrl, useThemeScope, designEditorEligibility, baseFetch, }: PreviewShellProps): import("react/jsx-runtime").JSX.Element;
67
67
  export declare function defaultDesignEditorEligibility(input: Readonly<{
68
68
  pageId: string | null;
69
69
  entryData?: PreviewContentEntryData | null;
@@ -1,5 +1,5 @@
1
1
  import { type ReactNode } from "react";
2
- import { type MediaAssetIndexItem, type OccurrenceContextData, type Theme } from "@riverbankcms/blocks";
2
+ import { type EntrySubrouteContextData, type MediaAssetIndexItem, type Theme } from "@riverbankcms/blocks";
3
3
  import type { ButtonPersonalityId } from "@riverbankcms/theme-core/buttons";
4
4
  import type { PaletteOverrides, PaletteVariantId } from "@riverbankcms/theme-core/palette";
5
5
  import type { ContentTypeSchema } from "@riverbankcms/content-model";
@@ -30,11 +30,11 @@ export type PreviewShellLayoutProps = {
30
30
  supabaseUrl?: string;
31
31
  isSiteLaunched: boolean;
32
32
  maintenanceModeEnabled: boolean;
33
- occurrenceContext?: OccurrenceContextData | null;
33
+ entrySubrouteContext?: EntrySubrouteContextData | null;
34
34
  assistantPanel?: ReactNode;
35
35
  sdkConfig?: SdkConfigForBlockPicker | null;
36
36
  mediaAssets?: MediaAssetIndexItem[];
37
37
  useThemeScope?: boolean;
38
38
  siteStyleAccess?: SiteStyleAccess;
39
39
  };
40
- export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, occurrenceContext, assistantPanel, sdkConfig, mediaAssets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): import("react/jsx-runtime").JSX.Element;
40
+ export declare function PreviewShellLayout({ children, theme, surfaceId, siteId, dashboardBaseUrl, pageId, entryData, contentTypeSchema, referenceContentTypeKeys, draftContent, currentTemplate, apiClient, bearerToken, themeId, themeSelectionId, themeSelectionButtonPersonalityId, themeSelectionPaletteVariantId, themeSelectionPaletteOverrides, supabaseUrl, isSiteLaunched, maintenanceModeEnabled, entrySubrouteContext, assistantPanel, sdkConfig, mediaAssets, useThemeScope, siteStyleAccess, }: PreviewShellLayoutProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,13 @@
1
+ import type { SubrouteNoticeModel } from './subrouteNotice';
2
+ type SubrouteNoticeProps = {
3
+ model: SubrouteNoticeModel;
4
+ };
5
+ /**
6
+ * Presentational notice shown above the sidebar editor when previewing a
7
+ * sub-entry (an event occurrence, a course run, …).
8
+ *
9
+ * Render-only — all wording and the CTA target are produced by
10
+ * {@link resolveSubrouteNotice}.
11
+ */
12
+ export declare function SubrouteNotice({ model }: SubrouteNoticeProps): import("react/jsx-runtime").JSX.Element;
13
+ export {};
@@ -0,0 +1,26 @@
1
+ import { type EntrySubrouteContextData } from '@riverbankcms/blocks';
2
+ /**
3
+ * Render-agnostic model for the "you're previewing a sub-entry" notice.
4
+ *
5
+ * Built generically from a {@link SubrouteKindMeta} so consumers (the sidebar
6
+ * notice today, breadcrumbs/SEO tomorrow) share one source of nouns and copy.
7
+ */
8
+ export type SubrouteNoticeModel = {
9
+ title: string;
10
+ body: string;
11
+ cta: {
12
+ label: string;
13
+ href: string;
14
+ } | null;
15
+ /** Shown when the dashboard URL can't be built (e.g. missing env var). */
16
+ fallbackMessage: string | null;
17
+ };
18
+ /**
19
+ * Resolve the notice model for the current subroute context.
20
+ *
21
+ * Returns null when there's no subroute context, meaning the consumer should
22
+ * render nothing.
23
+ */
24
+ export declare function resolveSubrouteNotice(ctx: EntrySubrouteContextData | null, args: {
25
+ siteId: string;
26
+ }): SubrouteNoticeModel | null;
@@ -44,5 +44,6 @@ export type EntrySubrouteContextData = {
44
44
  courseId: string;
45
45
  seriesId: string;
46
46
  runSlug: string;
47
+ runName: string | null;
47
48
  };
48
49
  };
@@ -734,6 +734,7 @@ export type ResolveEntrySubrouteResponse = {
734
734
  courseId: string;
735
735
  seriesId: string;
736
736
  runSlug: string;
737
+ runName: string | null;
737
738
  };
738
739
  } | null;
739
740
  };
@@ -342,6 +342,7 @@ export type CourseEntrySubrouteContext = {
342
342
  courseId: string;
343
343
  seriesId: string;
344
344
  runSlug: string;
345
+ runName: string | null;
345
346
  };
346
347
  } | {
347
348
  kind: 'event-occurrence';
@@ -12,16 +12,15 @@ type ResolvedSubroute = NonNullable<ResolveEntrySubrouteResponse['subroute']>;
12
12
  export type OccurrenceData = Extract<ResolvedSubroute, {
13
13
  kind: 'event-occurrence';
14
14
  }>['occurrence'];
15
+ export type CourseRunData = Extract<ResolvedSubroute, {
16
+ kind: 'course-run';
17
+ }>['run'];
15
18
  export type EntrySubrouteData = {
16
19
  kind: 'event-occurrence';
17
20
  occurrence: OccurrenceData;
18
21
  } | {
19
22
  kind: 'course-run';
20
- run: {
21
- courseId: string;
22
- seriesId: string;
23
- runSlug: string;
24
- };
23
+ run: CourseRunData;
25
24
  };
26
25
  /**
27
26
  * Options for resolving page content.
@@ -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.60.12";
11
+ export declare const SDK_VERSION = "0.60.14";
@@ -75,6 +75,17 @@ export declare const buttonPersonalities: readonly [Readonly<{
75
75
  era: import("../../site-styles").StyleEra;
76
76
  }>>>;
77
77
  buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
78
+ }>, Readonly<{
79
+ id: ButtonPersonalityId<"showtime-pill">;
80
+ name: string;
81
+ description: string;
82
+ tags: Readonly<Partial<Readonly<{
83
+ tone: import("../../site-styles").StyleTone;
84
+ energy: import("../../site-styles").StyleEnergy;
85
+ motion: import("../../site-styles").StyleMotion;
86
+ era: import("../../site-styles").StyleEra;
87
+ }>>>;
88
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
78
89
  }>];
79
90
  type UnbrandedButtonPersonalityId<TValue> = TValue extends infer TRaw & {
80
91
  readonly __brand: 'ButtonPersonalityId';
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Showtime Pill — bold, spacious, fully rounded buttons with playful pop
3
+ * motion. Suits energetic schools, performers, festivals, and community brands
4
+ * that need calls to action to feel loud without becoming visually chaotic.
5
+ */
6
+ export declare const showtimePill: Readonly<{
7
+ id: import("./types").ButtonPersonalityId<"showtime-pill">;
8
+ name: string;
9
+ description: string;
10
+ tags: Readonly<Partial<Readonly<{
11
+ tone: import("../../site-styles").StyleTone;
12
+ energy: import("../../site-styles").StyleEnergy;
13
+ motion: import("../../site-styles").StyleMotion;
14
+ era: import("../../site-styles").StyleEra;
15
+ }>>>;
16
+ buttonSystem: import("@riverbankcms/blocks").ButtonSystem;
17
+ }>;
@@ -148,9 +148,9 @@ export declare const variantRoleSchema: z.ZodEnum<{
148
148
  link: "link";
149
149
  primary: "primary";
150
150
  secondary: "secondary";
151
- accent: "accent";
152
151
  outline: "outline";
153
152
  ghost: "ghost";
153
+ accent: "accent";
154
154
  tertiary: "tertiary";
155
155
  }>;
156
156
  export declare const buttonSizeNameSchema: z.ZodEnum<{