@activecollab/components
Version:
ActiveCollab Components
35 lines • 1.81 kB
TypeScript
import React, { ReactElement, ReactNode } from "react";
import { PortableTextComponents } from "../../components/PortableText";
/**
* The in-app message dialog, as a Presentation mock.
*
* Two pieces, mirroring how the product is split:
*
* - {@link MessageDialog} — the hollow dialog shell (width, closing,
* feedback), built only from design-system parts. In the product this shell
* lives in the application as `InAppMessageDialog`.
* - {@link messageComponents} — a demo message element catalog injected into
* the design-system Portable Text engine, exactly like the typed cards
* injected into the hollow StackedCard shell. In the product the catalog is
* application code; the presentation ships this demo copy so the stories
* need no app imports.
*/
export type MessageDialogSize = "sm" | "md" | "lg";
export interface MessageDialogProps {
open: boolean;
onClose: () => void;
size?: MessageDialogSize;
/** Supplying a handler shows the centred helpful / not-helpful vote. */
onVote?: (vote: "up" | "down") => void;
children: ReactNode;
}
export declare const MessageDialog: ({ open, onClose, size, onVote, children, }: MessageDialogProps) => ReactElement;
/** How a doc-link mark opens its article (by a slug-like reference). The
surface that renders the message supplies the handler — in the product it
closes the dialog and opens the article Sheet. */
export type OpenArticleHandler = (article?: string) => void;
export declare const DocLinkContext: React.Context<OpenArticleHandler>;
/** The demo catalog the presentations inject into the Portable Text engine —
the stand-in for the application's `messageComponents` map. */
export declare const messageComponents: PortableTextComponents;
//# sourceMappingURL=MessageDialog.d.ts.map