@riverbankcms/sdk 0.104.0 → 0.104.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{PreviewEditorSidebar-ywqcYjTB.mjs → PreviewEditorSidebar-CBMhU9p_.mjs} +3 -3
- package/dist/{PreviewEditorUI-DApUNF6g.mjs → PreviewEditorUI-C5KEw4M8.mjs} +2 -2
- package/dist/{SdkPreviewModeRuntime-DmHCcIMO.mjs → SdkPreviewModeRuntime-Iq12HjL7.mjs} +1147 -180
- package/dist/{SiteChromeCustomizeContext-BV9GU-3C.mjs → SiteChromeCustomizeContext-Cx0NMdyv.mjs} +1818 -951
- package/dist/_dts/ai/src/contracts/proposals.d.ts +10 -0
- package/dist/_dts/api/src/bookingVerticals.d.ts +64 -1
- package/dist/_dts/blocks/src/primitives/layout/Grid.d.ts +12 -8
- package/dist/_dts/blocks/src/system/blocks/events/event-calendar.d.ts +3 -0
- package/dist/_dts/blocks/src/system/blocks/events/shared/layout.d.ts +11 -1
- package/dist/_dts/blocks/src/system/blocks/testimonials.d.ts +7 -1
- package/dist/_dts/blocks/src/system/constants/events.d.ts +1 -1
- package/dist/_dts/blocks/src/system/fragments/library/testimonialsCarousel.d.ts +12 -0
- package/dist/_dts/blocks/src/system/node/validation-constants.d.ts +2 -2
- package/dist/_dts/blocks/src/system/runtime/nodes/basic.d.ts +14 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/buttonAffordance.d.ts +33 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/WeekBoardView.d.ts +28 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/events/shared/eventCapacity.d.ts +32 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/shared/contract-schemas.d.ts +1 -0
- package/dist/_dts/blocks/src/system/runtime/nodes/svg.d.ts +77 -0
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/surfaceForegroundStyles.d.ts +2 -0
- package/dist/_dts/blocks/src/system/transforms/registry/boxStyles.d.ts +3 -40
- package/dist/_dts/blocks/src/system/transforms/registry/formatting.d.ts +14 -0
- package/dist/_dts/blocks/src/system/transforms/registry/layout.d.ts +11 -0
- package/dist/_dts/core/src/branded.d.ts +5 -0
- package/dist/_dts/db/src/generated/supabase/database.types.d.ts +18 -0
- package/dist/_dts/editor/src/index.d.ts +3 -1
- package/dist/_dts/editor/src/primitives/rich-text/RichTextEditorSurface.d.ts +14 -6
- package/dist/_dts/editor/src/primitives/rich-text/RichTextToolbar.d.ts +23 -4
- package/dist/_dts/editor/src/primitives/rich-text/config.d.ts +6 -0
- package/dist/_dts/editor/src/primitives/rich-text/extensions/RichTextLink.d.ts +1 -0
- package/dist/_dts/editor/src/primitives/rich-text/paste.d.ts +10 -0
- package/dist/_dts/sdk/src/contracts/system-block-content.d.ts +2 -2
- package/dist/_dts/sdk/src/version.d.ts +1 -1
- package/dist/_dts/theme-core/src/ThemeScope.d.ts +1 -1
- package/dist/_dts/theme-core/src/buttons/affordanceIcons.d.ts +29 -0
- package/dist/_dts/theme-core/src/buttons/generateButtonCss.d.ts +6 -0
- package/dist/_dts/theme-core/src/buttons/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/buttons/personalities/flat-ink.d.ts +20 -0
- package/dist/_dts/theme-core/src/buttons/personalities/index.d.ts +11 -0
- package/dist/_dts/theme-core/src/buttons/personalities/types.d.ts +4 -0
- package/dist/_dts/theme-core/src/buttons/types.d.ts +34 -0
- package/dist/_dts/theme-core/src/generated/containerResponsiveThemeCss.d.ts +1 -1
- package/dist/_dts/theme-core/src/gradients/types.d.ts +27 -3
- package/dist/_dts/theme-core/src/mock-themes/all.d.ts +51 -15
- package/dist/_dts/theme-core/src/palette/curated/brand-led.d.ts +13 -0
- package/dist/_dts/theme-core/src/palette/curated/index.d.ts +12 -0
- package/dist/_dts/theme-core/src/palette/historicalThemePalette.d.ts +44 -0
- package/dist/_dts/theme-core/src/palette/index.d.ts +1 -0
- package/dist/_dts/theme-core/src/palette/legacyRuntimeProjection.d.ts +23 -6
- package/dist/_dts/theme-core/src/palette/legacySelection.d.ts +13 -2
- package/dist/_dts/theme-core/src/palette/paletteCompatibilityTransition.d.ts +0 -9
- package/dist/_dts/theme-core/src/palette/persistenceReadSource.d.ts +17 -2
- package/dist/_dts/theme-core/src/palette/themePaletteCompatibility.d.ts +3 -4
- package/dist/_dts/theme-core/src/runtime/themeCssVarNames.d.ts +1 -0
- package/dist/_dts/theme-core/src/schema.d.ts +108 -26
- package/dist/_dts/theme-core/src/site-styles/accessibleSurfaces.d.ts +2 -1
- package/dist/_dts/theme-core/src/site-styles/curatedSiteStyles.d.ts +50 -1
- package/dist/_dts/theme-core/src/site-styles/designState.d.ts +2 -2
- package/dist/_dts/theme-core/src/site-styles/generatedSchemas.d.ts +4 -2
- package/dist/_dts/theme-core/src/site-styles/headerLooks.d.ts +56 -1
- package/dist/_dts/theme-core/src/site-styles/typographyPresets.d.ts +16 -1
- package/dist/_dts/theme-core/src/status/index.d.ts +0 -1
- package/dist/_dts/theme-core/src/surfaces/foregroundContract.d.ts +19 -0
- package/dist/_dts/theme-core/src/surfaces/foregroundRoles.d.ts +9 -0
- package/dist/_dts/theme-core/src/surfaces/index.d.ts +2 -0
- package/dist/_dts/ui/src/button.d.ts +1 -1
- package/dist/cli/index.mjs +1567 -470
- package/dist/client/{DiscountCodeDisclosure-Dit2aItR.mjs → DiscountCodeDisclosure-BXM73_E5.mjs} +1 -1
- package/dist/client/{EventCombined.client-BnREyCjf.mjs → EventCombined.client-DT5elP7j.mjs} +4 -4
- package/dist/client/{EventListing.client-0uHld51x.mjs → EventListing.client-pTYGfV9C.mjs} +2 -2
- package/dist/client/{LeafletStaticMap-DJcvSfmj.mjs → LeafletStaticMap-dQrhlUe3.mjs} +1 -1
- package/dist/client/{MagicLinkForm-EAsIktfw.mjs → MagicLinkForm-u6Dul4j5.mjs} +2 -2
- package/dist/client/{StepIndicator-CRR17tYI.mjs → StepIndicator-nWqineJ2.mjs} +2 -2
- package/dist/client/{accordion-B47HIuuH.mjs → accordion-CSJcTUyH.mjs} +1 -1
- package/dist/client/{bookingForm-I1E-8F9P.mjs → bookingForm-C73wOuVa.mjs} +6 -6
- package/dist/client/bookings.mjs +137 -1
- package/dist/client/{buttons-BbPn8OKA.mjs → buttons-DfYyqt8C.mjs} +138 -2
- package/dist/client/{carousel-OlM7SyBs.mjs → carousel-fMBb0JSc.mjs} +1 -1
- package/dist/client/{cart-BKpG5jz6.mjs → cart-BtaCwT3S.mjs} +3 -3
- package/dist/client/{checkout-Dmmr6qoU.mjs → checkout-DkTwZSnh.mjs} +3 -3
- package/dist/client/client.mjs +2336 -544
- package/dist/client/{colorStyles-DuW4Fjqd.mjs → colorStyles-Wyl6JujD.mjs} +45 -4
- package/dist/client/{courseRegistration-CflZiqGk.mjs → courseRegistration-DnLmapJu.mjs} +7 -7
- package/dist/client/{eventCalendar-BvoLWcp-.mjs → eventCalendar-BvLOc9KY.mjs} +165 -5
- package/dist/client/{eventCombined-DsrO8t_t.mjs → eventCombined-kShgJPQr.mjs} +2 -2
- package/dist/client/{eventDetails-C3hxgcJm.mjs → eventDetails-C5NTM0Vo.mjs} +3 -3
- package/dist/client/{eventListing-C-hb237X.mjs → eventListing-B82ZdKP6.mjs} +2 -2
- package/dist/client/{eventRegistration-B0gyzDGi.mjs → eventRegistration-qJVFqBWo.mjs} +7 -7
- package/dist/client/{form-C_RUi6oJ.mjs → form-BvAcKiuu.mjs} +2 -2
- package/dist/client/{headerSection-IKQiD2U0.mjs → headerSection-NvAiEHAg.mjs} +3 -3
- package/dist/client/hooks.mjs +1023 -337
- package/dist/client/{locationMap-8ZBrMzRJ.mjs → locationMap-D0j52xfI.mjs} +3 -3
- package/dist/client/{media-CZJKL7fi.mjs → media-BCW_g2cQ.mjs} +1 -1
- package/dist/client/{newsletterForm-CYk3ucwj.mjs → newsletterForm-B8_i93qH.mjs} +2 -2
- package/dist/client/{pricing-B5GmvfIH.mjs → pricing-DIYnyHOk.mjs} +1 -1
- package/dist/client/{productDetail-BjS2Dqzo.mjs → productDetail-w0eAHkuQ.mjs} +3 -3
- package/dist/client/{productList-BOHvC8My.mjs → productList-Vsguq5Xt.mjs} +3 -3
- package/dist/client/{propsDecoder-WS6UEJwZ.mjs → propsDecoder-CD2pJ1WB.mjs} +37 -2
- package/dist/client/rendering/client.mjs +1723 -762
- package/dist/client/rendering/islands.mjs +19 -19
- package/dist/client/rendering.mjs +2312 -520
- package/dist/client/{shop-CON03-wN.mjs → shop-Dgxs-Q8F.mjs} +6 -6
- package/dist/client/{shop-commerce-DlqrFgH8.mjs → shop-commerce-DJAhsTaT.mjs} +6 -6
- package/dist/client/{shop-commerce-store-l74-Kne6.mjs → shop-commerce-store-CfCXltXW.mjs} +1 -1
- package/dist/client/{shopShared-CQheEXSg.mjs → shopShared-CmDcPXUt.mjs} +2 -2
- package/dist/client/{useDiscountCodeUi-v6OluyWl.mjs → useDiscountCodeUi-CirrT2bM.mjs} +1 -1
- package/dist/client/{useEventFilters-BqSTcNOf.mjs → useEventFilters-CNZxlCcO.mjs} +5 -5
- package/dist/client/{usePolling-DMfADjIF.mjs → usePolling-Baks_iBI.mjs} +2 -2
- package/dist/preview-next/client/runtime.mjs +3 -3
- package/dist/{sdk-runtime-DWb08Xaz.mjs → sdk-runtime-BfNiFeNJ.mjs} +1 -1
- package/dist/{separator--6yjc914.mjs → separator-BhAR_Xmf.mjs} +1 -1
- package/dist/server/components.mjs +2301 -531
- package/dist/server/config-validation.mjs +1028 -337
- package/dist/server/config.mjs +1028 -337
- package/dist/server/data.mjs +1023 -337
- package/dist/server/index.mjs +1 -1
- package/dist/server/next.mjs +2304 -534
- package/dist/server/page-converter.mjs +1018 -324
- package/dist/server/prebuild.mjs +1 -1
- package/dist/server/rendering/server.mjs +2286 -521
- package/dist/server/rendering.mjs +2301 -531
- package/dist/server/routing.mjs +1100 -338
- package/dist/server/server.mjs +1024 -338
- package/dist/server/theme-bridge.mjs +1240 -77
- package/dist/server/theme.mjs +165 -5
- package/dist/styles/index.css +617 -34
- package/package.json +1 -1
- package/dist/_dts/blocks/src/system/transforms/registry/_utils/sectionForegroundStyles.d.ts +0 -2
- package/dist/_dts/theme-core/src/status/contextualColors.d.ts +0 -6
|
@@ -30,6 +30,7 @@ export type PageSurfaceId = Brand<string, 'PageSurfaceId'>;
|
|
|
30
30
|
export type OccurrenceId = Brand<string, 'OccurrenceId'>;
|
|
31
31
|
export type EventOfferingId = Brand<string, 'EventOfferingId'>;
|
|
32
32
|
export type EventSeriesId = Brand<string, 'EventSeriesId'>;
|
|
33
|
+
export type EventPageRouteSlug = Brand<string, 'EventPageRouteSlug'>;
|
|
33
34
|
export type TicketTypeId = Brand<string, 'TicketTypeId'>;
|
|
34
35
|
export type EventCategoryId = Brand<string, 'EventCategoryId'>;
|
|
35
36
|
export type VenueId = Brand<string, 'VenueId'>;
|
|
@@ -61,6 +62,7 @@ export type FormSubmissionId = Brand<string, 'FormSubmissionId'>;
|
|
|
61
62
|
export type PassId = Brand<string, 'PassId'>;
|
|
62
63
|
export type MembershipId = Brand<string, 'MembershipId'>;
|
|
63
64
|
export type CourseId = Brand<string, 'CourseId'>;
|
|
65
|
+
export type CourseProgramId = Brand<string, 'CourseProgramId'>;
|
|
64
66
|
export type CustomerId = Brand<string, 'CustomerId'>;
|
|
65
67
|
export type OrderId = Brand<string, 'OrderId'>;
|
|
66
68
|
export type OrderItemId = Brand<string, 'OrderItemId'>;
|
|
@@ -149,6 +151,7 @@ export declare const unsafeAsPageSurfaceId: (id: string) => PageSurfaceId;
|
|
|
149
151
|
export declare const unsafeAsOccurrenceId: (id: string) => OccurrenceId;
|
|
150
152
|
export declare const unsafeAsEventOfferingId: (id: string) => EventOfferingId;
|
|
151
153
|
export declare const unsafeAsEventSeriesId: (id: string) => EventSeriesId;
|
|
154
|
+
export declare const unsafeAsEventPageRouteSlug: (value: string) => EventPageRouteSlug;
|
|
152
155
|
export declare const unsafeAsTicketTypeId: (id: string) => TicketTypeId;
|
|
153
156
|
export declare const unsafeAsEventCategoryId: (id: string) => EventCategoryId;
|
|
154
157
|
export declare const unsafeAsVenueId: (id: string) => VenueId;
|
|
@@ -180,6 +183,7 @@ export declare const unsafeAsFormSubmissionId: (id: string) => FormSubmissionId;
|
|
|
180
183
|
export declare const unsafeAsPassId: (id: string) => PassId;
|
|
181
184
|
export declare const unsafeAsMembershipId: (id: string) => MembershipId;
|
|
182
185
|
export declare const unsafeAsCourseId: (id: string) => CourseId;
|
|
186
|
+
export declare const unsafeAsCourseProgramId: (id: string) => CourseProgramId;
|
|
183
187
|
export declare const unsafeAsCustomerId: (id: string) => CustomerId;
|
|
184
188
|
export declare const unsafeAsOrderId: (id: string) => OrderId;
|
|
185
189
|
export declare const unsafeAsOrderItemId: (id: string) => OrderItemId;
|
|
@@ -241,6 +245,7 @@ export declare const parsePageId: (value: unknown) => Result<PageId, BrandedIdPa
|
|
|
241
245
|
export declare const parsePageSurfaceId: (value: unknown) => Result<PageSurfaceId, BrandedIdParseError>;
|
|
242
246
|
export declare const parseOccurrenceId: (value: unknown) => Result<OccurrenceId, BrandedIdParseError>;
|
|
243
247
|
export declare const parseEventOfferingId: (value: unknown) => Result<EventOfferingId, BrandedIdParseError>;
|
|
248
|
+
export declare const parseCourseProgramId: (value: unknown) => Result<CourseProgramId, BrandedIdParseError>;
|
|
244
249
|
export declare const parseTicketTypeId: (value: unknown) => Result<TicketTypeId, BrandedIdParseError>;
|
|
245
250
|
export declare const parsePricingOptionId: (value: unknown) => Result<PricingOptionId, BrandedIdParseError>;
|
|
246
251
|
export declare const parseUserId: (value: unknown) => Result<UserId, BrandedIdParseError>;
|
|
@@ -17047,6 +17047,12 @@ export type Database = {
|
|
|
17047
17047
|
theme_id: string;
|
|
17048
17048
|
}[];
|
|
17049
17049
|
};
|
|
17050
|
+
assert_event_offering_surface_binding: {
|
|
17051
|
+
Args: {
|
|
17052
|
+
p_event_offering_id: string;
|
|
17053
|
+
};
|
|
17054
|
+
Returns: undefined;
|
|
17055
|
+
};
|
|
17050
17056
|
assert_single_subject_participant_roster_atomic: {
|
|
17051
17057
|
Args: {
|
|
17052
17058
|
p_customer_id: string;
|
|
@@ -18307,6 +18313,18 @@ export type Database = {
|
|
|
18307
18313
|
locked_until: string;
|
|
18308
18314
|
}[];
|
|
18309
18315
|
};
|
|
18316
|
+
repair_shared_event_offering_surface: {
|
|
18317
|
+
Args: {
|
|
18318
|
+
p_event_series_ids: string[];
|
|
18319
|
+
p_site_id: string;
|
|
18320
|
+
p_slug: string;
|
|
18321
|
+
p_source_content_entry_id: string;
|
|
18322
|
+
p_source_route_id: string;
|
|
18323
|
+
p_surface_id: string;
|
|
18324
|
+
p_title: string;
|
|
18325
|
+
};
|
|
18326
|
+
Returns: string;
|
|
18327
|
+
};
|
|
18310
18328
|
replace_appointment_availability_schedule_payload: {
|
|
18311
18329
|
Args: {
|
|
18312
18330
|
p_interval_minutes: number;
|
|
@@ -13,9 +13,11 @@ export { EditorPrimitivesProvider } from './primitives/EditorPrimitivesProvider'
|
|
|
13
13
|
export type { InlineFieldAdapter } from './primitives/InlineFieldContext';
|
|
14
14
|
export { deriveChannelId } from './primitives/helpers';
|
|
15
15
|
export { richTextConfigs } from './primitives/rich-text/config';
|
|
16
|
-
export type { RichTextEditorConfig, ToolbarButtonConfig, } from './primitives/rich-text/config';
|
|
16
|
+
export type { RichTextEditorConfig, RichTextPastePolicy, ToolbarButtonConfig, } from './primitives/rich-text/config';
|
|
17
17
|
export { RichTextToolbar } from './primitives/rich-text/RichTextToolbar';
|
|
18
18
|
export { RichTextEditorSurface } from './primitives/rich-text/RichTextEditorSurface';
|
|
19
|
+
export type { RichTextToolbarLayout } from './primitives/rich-text/RichTextEditorSurface';
|
|
20
|
+
export type { RichTextToolbarHost, RichTextToolbarVisibility, } from './primitives/rich-text/RichTextToolbar';
|
|
19
21
|
export type { RichTextRoutableItem } from './primitives/rich-text/toolbar/linkPopoverUtils';
|
|
20
22
|
export { useRichTextEditor } from './primitives/rich-text/useRichTextEditor';
|
|
21
23
|
export { buildRichTextImageAttrs, getRichTextImagePositionFromTarget, getSelectedRichTextImagePosition, insertOrReplaceRichTextImage, } from './primitives/rich-text/imageActions';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
2
|
import { type Editor } from '@tiptap/react';
|
|
3
3
|
import type { RichTextEditorConfig } from './config';
|
|
4
|
+
import { type RichTextToolbarVisibility } from './RichTextToolbar';
|
|
4
5
|
import type { PickedRichTextImage } from './imageActions';
|
|
5
6
|
import type { RichTextRoutableItem } from './toolbar/linkPopoverUtils';
|
|
6
7
|
export type RichTextEditorSurfaceProps = Readonly<{
|
|
@@ -15,13 +16,20 @@ export type RichTextEditorSurfaceProps = Readonly<{
|
|
|
15
16
|
linkItems?: RichTextRoutableItem[];
|
|
16
17
|
onRequestLinkItems?: () => Promise<RichTextRoutableItem[]>;
|
|
17
18
|
onPickImage?: () => Promise<PickedRichTextImage | null | undefined>;
|
|
18
|
-
|
|
19
|
-
toolbarAlwaysVisible?: boolean;
|
|
20
|
-
toolbarPortalToChrome?: boolean;
|
|
21
|
-
hideToolbar?: boolean;
|
|
22
|
-
hideContent?: boolean;
|
|
19
|
+
toolbarLayout: RichTextToolbarLayout;
|
|
23
20
|
onClick?: () => void;
|
|
24
21
|
renderContent?: (content: ReactNode) => ReactNode;
|
|
25
22
|
}>;
|
|
23
|
+
export type RichTextToolbarLayout = Readonly<{
|
|
24
|
+
kind: 'hidden';
|
|
25
|
+
}> | Readonly<{
|
|
26
|
+
kind: 'inline';
|
|
27
|
+
tone: 'light' | 'dark';
|
|
28
|
+
visibility: RichTextToolbarVisibility;
|
|
29
|
+
}> | Readonly<{
|
|
30
|
+
kind: 'chrome';
|
|
31
|
+
tone: 'light' | 'dark';
|
|
32
|
+
visibility: RichTextToolbarVisibility;
|
|
33
|
+
}>;
|
|
26
34
|
export declare function shouldHandleRichTextActivationKey(container: HTMLElement, target: EventTarget | null): boolean;
|
|
27
|
-
export declare function RichTextEditorSurface({ editor, config, isEmpty, className, contentClassName, placeholderClassName, placeholderText, ariaLabel, linkItems, onRequestLinkItems, onPickImage,
|
|
35
|
+
export declare function RichTextEditorSurface({ editor, config, isEmpty, className, contentClassName, placeholderClassName, placeholderText, ariaLabel, linkItems, onRequestLinkItems, onPickImage, toolbarLayout, onClick, renderContent, }: RichTextEditorSurfaceProps): import("react").JSX.Element;
|
|
@@ -2,15 +2,34 @@ import type { Editor } from '@tiptap/react';
|
|
|
2
2
|
import type { ToolbarButtonConfig } from './config';
|
|
3
3
|
import type { PickedRichTextImage } from './imageActions';
|
|
4
4
|
import { type RichTextRoutableItem } from './toolbar/LinkPopover';
|
|
5
|
+
export type RichTextToolbarVisibility = Readonly<{
|
|
6
|
+
kind: 'always';
|
|
7
|
+
}> | Readonly<{
|
|
8
|
+
kind: 'editor-focus';
|
|
9
|
+
}> | Readonly<{
|
|
10
|
+
kind: 'controlled';
|
|
11
|
+
visible: boolean;
|
|
12
|
+
}>;
|
|
13
|
+
export type RichTextToolbarHost = Readonly<{
|
|
14
|
+
kind: 'inline';
|
|
15
|
+
}> | Readonly<{
|
|
16
|
+
kind: 'chrome';
|
|
17
|
+
}>;
|
|
5
18
|
interface RichTextToolbarProps {
|
|
6
19
|
editor: Editor | null;
|
|
7
20
|
buttons: ToolbarButtonConfig[];
|
|
8
21
|
onPickImage?: () => Promise<PickedRichTextImage | null | undefined>;
|
|
9
22
|
linkItems?: RichTextRoutableItem[];
|
|
10
23
|
onRequestLinkItems?: () => Promise<RichTextRoutableItem[]>;
|
|
11
|
-
|
|
12
|
-
tone
|
|
13
|
-
|
|
24
|
+
visibility: RichTextToolbarVisibility;
|
|
25
|
+
tone: 'light' | 'dark';
|
|
26
|
+
host: RichTextToolbarHost;
|
|
14
27
|
}
|
|
15
|
-
export declare function RichTextToolbar({ editor, buttons, onPickImage, linkItems, onRequestLinkItems,
|
|
28
|
+
export declare function RichTextToolbar({ editor, buttons, onPickImage, linkItems, onRequestLinkItems, visibility, tone, host, }: RichTextToolbarProps): import("react").JSX.Element | null;
|
|
29
|
+
type RichTextToolbarTransientState = Readonly<{
|
|
30
|
+
isFocused: boolean;
|
|
31
|
+
isMenuOpen: boolean;
|
|
32
|
+
isHovered: boolean;
|
|
33
|
+
}>;
|
|
34
|
+
export declare function shouldShowToolbar(visibility: RichTextToolbarVisibility, state: RichTextToolbarTransientState): boolean;
|
|
16
35
|
export {};
|
|
@@ -15,9 +15,15 @@ export type ToolbarButtonConfig = {
|
|
|
15
15
|
} | {
|
|
16
16
|
type: 'image';
|
|
17
17
|
};
|
|
18
|
+
export type RichTextPastePolicy = Readonly<{
|
|
19
|
+
kind: 'semantic-clean-with-images';
|
|
20
|
+
}> | Readonly<{
|
|
21
|
+
kind: 'semantic-clean-text-only';
|
|
22
|
+
}>;
|
|
18
23
|
export type RichTextEditorConfig = {
|
|
19
24
|
extensions: AnyExtension[];
|
|
20
25
|
toolbar: ToolbarButtonConfig[];
|
|
21
26
|
placeholder: string;
|
|
27
|
+
pastePolicy: RichTextPastePolicy;
|
|
22
28
|
};
|
|
23
29
|
export declare const richTextConfigs: Record<RichTextVariant, RichTextEditorConfig>;
|
|
@@ -1 +1,2 @@
|
|
|
1
|
+
export declare const RICH_TEXT_LINK_DATA_ATTRIBUTES: ("data-rb-link-kind" | "data-rb-link-identifier" | "data-rb-link-content-type" | "data-rb-link-route-id" | "data-rb-link-entity-id" | "data-rb-link-entity-type" | "data-rb-link-title" | "data-rb-link-type-label" | "data-rb-link-content-type-key" | "data-rb-link-content-type-name" | "data-rb-link-updated-at")[];
|
|
1
2
|
export declare const RichTextLink: import("@tiptap/core").Mark<import("@tiptap/extension-link").LinkOptions, any>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { RichTextPastePolicy } from './config';
|
|
2
|
+
/**
|
|
3
|
+
* Builds the TipTap HTML paste boundary for a specific editor variant.
|
|
4
|
+
*/
|
|
5
|
+
export declare function createRichTextPasteHtmlTransformer(policy: RichTextPastePolicy): (html: string) => string;
|
|
6
|
+
/**
|
|
7
|
+
* Removes source-site presentation while retaining schema-supported semantic
|
|
8
|
+
* structure and Riverbank's own typed link metadata.
|
|
9
|
+
*/
|
|
10
|
+
export declare function sanitizePastedRichTextHtml(html: string, policy: RichTextPastePolicy): string;
|
|
@@ -214,7 +214,7 @@ export type EmbedContent = {
|
|
|
214
214
|
export type EventLayout = 'grid' | 'stack' | 'compact';
|
|
215
215
|
export type ColumnOption = '2' | '3' | '4';
|
|
216
216
|
export type WeekStart = 'sunday' | 'monday';
|
|
217
|
-
export type DisplayMode = 'combined' | 'calendar' | 'list' | 'timetable';
|
|
217
|
+
export type DisplayMode = 'combined' | 'calendar' | 'list' | 'timetable' | 'week-board';
|
|
218
218
|
export type FilterAutoShow = 'auto' | 'always' | 'never';
|
|
219
219
|
export type CalendarTabViews = 'both' | 'month' | 'week';
|
|
220
220
|
export type CalendarView = 'month' | 'week';
|
|
@@ -574,7 +574,7 @@ export type TeamMembersContent = (TeamMembersCommonContent & {
|
|
|
574
574
|
members?: ManualTeamMemberItem[];
|
|
575
575
|
});
|
|
576
576
|
export type TestimonialsBlockContent = {
|
|
577
|
-
variant?: 'carousel' | 'grid' | 'split-grid' | 'highlight' | null;
|
|
577
|
+
variant?: 'carousel' | 'grid' | 'split-grid' | 'featured-editorial' | 'highlight' | null;
|
|
578
578
|
heading?: string | null;
|
|
579
579
|
subheading?: string | null;
|
|
580
580
|
avatarLayout?: 'above-centered' | 'inline-left' | 'hidden' | null;
|
|
@@ -3,7 +3,7 @@ import type { Theme } from "./schema";
|
|
|
3
3
|
import { type ThemeResponsiveMode } from "./responsiveMode";
|
|
4
4
|
type Props = {
|
|
5
5
|
theme: Theme;
|
|
6
|
-
children
|
|
6
|
+
children?: React.ReactNode;
|
|
7
7
|
themeId?: string;
|
|
8
8
|
responsiveMode?: ThemeResponsiveMode;
|
|
9
9
|
/** Additional className to apply to the theme-scope wrapper */
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Affordance icon path data for CSS-emitted button affordances.
|
|
3
|
+
*
|
|
4
|
+
* A button variant may declare a trailing `affordance` icon (see
|
|
5
|
+
* `ButtonVariantAffordance`). The generated button CSS renders that icon as a
|
|
6
|
+
* masked `::after` pseudo-element, so the personality supplies it to every
|
|
7
|
+
* button of the variant without per-node authoring.
|
|
8
|
+
*
|
|
9
|
+
* Icons live in the `@riverbankcms/blocks` registry, but the button CSS is
|
|
10
|
+
* generated here in theme-core, so this module carries a small, curated copy of
|
|
11
|
+
* the *affordance-eligible* icon path data (arrows/chevrons — the action-oriented
|
|
12
|
+
* subset). The `d` values below are duplicated verbatim from the matching entries
|
|
13
|
+
* in `blocks/src/system/icons/svg.tsx`; ids match the registry ids exactly so a
|
|
14
|
+
* node-level `trailingIcon` and a personality `affordance` share one id space.
|
|
15
|
+
*
|
|
16
|
+
* Keep this set intentionally tiny. It is not the full CTA icon set — only the
|
|
17
|
+
* shapes that read as a trailing affordance.
|
|
18
|
+
*/
|
|
19
|
+
/** Registry icon id → the SVG path `d` fragments composing that icon. */
|
|
20
|
+
export declare const AFFORDANCE_ICON_PATHS: Readonly<Record<string, readonly string[]>>;
|
|
21
|
+
export type AffordanceIconId = keyof typeof AFFORDANCE_ICON_PATHS;
|
|
22
|
+
export declare function isAffordanceIconId(value: string): value is AffordanceIconId;
|
|
23
|
+
/**
|
|
24
|
+
* Build a `data:image/svg+xml,...` URL for an affordance icon, suitable for use
|
|
25
|
+
* as a CSS `mask-image`. The stroke is painted solid black so the mask's alpha
|
|
26
|
+
* traces the icon outline; the visible colour is supplied separately by the
|
|
27
|
+
* `::after` rule's `background-color`. Returns `null` for unknown ids.
|
|
28
|
+
*/
|
|
29
|
+
export declare function affordanceIconMaskUrl(iconId: string): string | null;
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import type { Theme } from '../schema';
|
|
2
2
|
import type { ButtonSystem } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Class the `button` runtime node adds when it renders its own trailing icon,
|
|
5
|
+
* so a node-level icon suppresses the personality's CSS `::after` affordance
|
|
6
|
+
* (node overrides personality). Shared so generator and renderer can't drift.
|
|
7
|
+
*/
|
|
8
|
+
export declare const AFFORDANCE_SUPPRESS_CLASS = "rb-affordance-off";
|
|
3
9
|
export interface GenerateButtonCssOptions {
|
|
4
10
|
themeId: string;
|
|
5
11
|
theme: Theme;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flat Ink — a solid ink primary, a hairline ghost secondary, and a single
|
|
3
|
+
* amber accent climax, all completely flat (no drop shadow) with a modest
|
|
4
|
+
* radius. Reads as grounded, editorial and clinician-precise: the Fulcrum
|
|
5
|
+
* physiotherapy voice. The primary shifts to the secondary (moss) on hover and
|
|
6
|
+
* every variant lifts 2px; the amber accent is meant to be used sparingly as
|
|
7
|
+
* the page's one conversion climax.
|
|
8
|
+
*/
|
|
9
|
+
export declare const flatInk: Readonly<{
|
|
10
|
+
id: import("./types").ButtonPersonalityId<"flat-ink">;
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
tags: Readonly<Partial<Readonly<{
|
|
14
|
+
tone: import("../../../../blocks/src/index").StyleTone;
|
|
15
|
+
energy: import("../../../../blocks/src/index").StyleEnergy;
|
|
16
|
+
motion: import("../../../../blocks/src/index").StyleMotion;
|
|
17
|
+
era: import("../../../../blocks/src/index").StyleEra;
|
|
18
|
+
}>>>;
|
|
19
|
+
buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
|
|
20
|
+
}>;
|
|
@@ -75,6 +75,17 @@ export declare const buttonPersonalities: readonly [Readonly<{
|
|
|
75
75
|
era: import("../../../../blocks/src/index").StyleEra;
|
|
76
76
|
}>>>;
|
|
77
77
|
buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
|
|
78
|
+
}>, Readonly<{
|
|
79
|
+
id: ButtonPersonalityId<"flat-ink">;
|
|
80
|
+
name: string;
|
|
81
|
+
description: string;
|
|
82
|
+
tags: Readonly<Partial<Readonly<{
|
|
83
|
+
tone: import("../../../../blocks/src/index").StyleTone;
|
|
84
|
+
energy: import("../../../../blocks/src/index").StyleEnergy;
|
|
85
|
+
motion: import("../../../../blocks/src/index").StyleMotion;
|
|
86
|
+
era: import("../../../../blocks/src/index").StyleEra;
|
|
87
|
+
}>>>;
|
|
88
|
+
buttonSystem: import("../../../../blocks/src/index").ButtonSystem;
|
|
78
89
|
}>, Readonly<{
|
|
79
90
|
id: ButtonPersonalityId<"brushed-wash">;
|
|
80
91
|
name: string;
|
|
@@ -200,6 +200,10 @@ export declare const buttonPersonalitySchema: z.ZodObject<{
|
|
|
200
200
|
fontSize: z.ZodOptional<z.ZodString>;
|
|
201
201
|
}, z.core.$strip>>;
|
|
202
202
|
}, z.core.$strip>>;
|
|
203
|
+
affordance: z.ZodOptional<z.ZodObject<{
|
|
204
|
+
iconId: z.ZodString;
|
|
205
|
+
colorToken: z.ZodOptional<z.ZodString>;
|
|
206
|
+
}, z.core.$strip>>;
|
|
203
207
|
}, z.core.$strip>>;
|
|
204
208
|
sizes: z.ZodOptional<z.ZodPipe<z.ZodObject<{
|
|
205
209
|
sm: z.ZodObject<{
|
|
@@ -95,6 +95,26 @@ export interface ButtonBorder {
|
|
|
95
95
|
widthClass: string;
|
|
96
96
|
colorToken: string;
|
|
97
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Optional trailing affordance icon carried by a button variant.
|
|
100
|
+
*
|
|
101
|
+
* When set, the generated button CSS emits a themed trailing icon (a masked
|
|
102
|
+
* SVG in `colorToken`, or `currentColor` when the token is omitted) after the
|
|
103
|
+
* label — so a personality can supply an affordance (e.g. a CTA arrow) to every
|
|
104
|
+
* button of that variant without per-node authoring. Entirely optional: variants
|
|
105
|
+
* that omit `affordance` are byte-identical to before.
|
|
106
|
+
*
|
|
107
|
+
* `iconId` references the shared icon registry (the same id space a `button`
|
|
108
|
+
* node's `trailingIcon` prop uses, e.g. `'ArrowRight'`). Only a small curated set
|
|
109
|
+
* of affordance-eligible ids is emittable as CSS (see `AFFORDANCE_ICON_PATHS`);
|
|
110
|
+
* unknown ids emit no icon.
|
|
111
|
+
*/
|
|
112
|
+
export interface ButtonVariantAffordance {
|
|
113
|
+
/** Registry icon id, e.g. `'ArrowRight'`. */
|
|
114
|
+
iconId: string;
|
|
115
|
+
/** Optional palette token for the icon colour. Omit to inherit the button text colour. */
|
|
116
|
+
colorToken?: string;
|
|
117
|
+
}
|
|
98
118
|
export declare const cornerStyleSchema: z.ZodEnum<{
|
|
99
119
|
square: "square";
|
|
100
120
|
rounded: "rounded";
|
|
@@ -329,6 +349,10 @@ export declare const buttonBorderSchema: z.ZodObject<{
|
|
|
329
349
|
widthClass: z.ZodString;
|
|
330
350
|
colorToken: z.ZodString;
|
|
331
351
|
}, z.core.$strip>;
|
|
352
|
+
export declare const buttonVariantAffordanceSchema: z.ZodObject<{
|
|
353
|
+
iconId: z.ZodString;
|
|
354
|
+
colorToken: z.ZodOptional<z.ZodString>;
|
|
355
|
+
}, z.core.$strip>;
|
|
332
356
|
/**
|
|
333
357
|
* Per-variant size overrides schema — every entry is optional.
|
|
334
358
|
*
|
|
@@ -445,6 +469,10 @@ export declare const buttonVariantSchema: z.ZodObject<{
|
|
|
445
469
|
fontSize: z.ZodOptional<z.ZodString>;
|
|
446
470
|
}, z.core.$strip>>;
|
|
447
471
|
}, z.core.$strip>>;
|
|
472
|
+
affordance: z.ZodOptional<z.ZodObject<{
|
|
473
|
+
iconId: z.ZodString;
|
|
474
|
+
colorToken: z.ZodOptional<z.ZodString>;
|
|
475
|
+
}, z.core.$strip>>;
|
|
448
476
|
}, z.core.$strip>;
|
|
449
477
|
export declare const buttonSystemSchema: z.ZodObject<{
|
|
450
478
|
global: z.ZodObject<{
|
|
@@ -595,6 +623,10 @@ export declare const buttonSystemSchema: z.ZodObject<{
|
|
|
595
623
|
fontSize: z.ZodOptional<z.ZodString>;
|
|
596
624
|
}, z.core.$strip>>;
|
|
597
625
|
}, z.core.$strip>>;
|
|
626
|
+
affordance: z.ZodOptional<z.ZodObject<{
|
|
627
|
+
iconId: z.ZodString;
|
|
628
|
+
colorToken: z.ZodOptional<z.ZodString>;
|
|
629
|
+
}, z.core.$strip>>;
|
|
598
630
|
}, z.core.$strip>>;
|
|
599
631
|
sizes: z.ZodOptional<z.ZodPipe<z.ZodObject<{
|
|
600
632
|
sm: z.ZodObject<{
|
|
@@ -711,6 +743,8 @@ export interface ButtonVariant {
|
|
|
711
743
|
effects?: VariantEffects;
|
|
712
744
|
/** Per-variant size overrides. See VariantSizeOverrides. */
|
|
713
745
|
sizes?: VariantSizeOverrides;
|
|
746
|
+
/** Optional trailing affordance icon (e.g. a CTA arrow). See ButtonVariantAffordance. */
|
|
747
|
+
affordance?: ButtonVariantAffordance;
|
|
714
748
|
}
|
|
715
749
|
export interface ButtonSystem {
|
|
716
750
|
global: ButtonGlobalSettings;
|