import react__default from 'react'; /** * Theming props for the Matrix Widget. * These map to CSS custom properties used internally. */ interface MatrixThemingProps { /** Container background color */ matrixBackgroundColor?: string; /** Primary text color */ matrixTextColor?: string; /** Secondary text color */ matrixSecondaryTextColor?: string; /** Border color */ matrixBorderColor?: string; /** Container border radius */ matrixBorderRadius?: string; /** Container padding */ matrixPadding?: string; /** Container box shadow */ matrixShadow?: string; /** Primary color */ matrixPrimaryColor?: string; /** Accent color */ matrixAccentColor?: string; /** Card background */ matrixCardBg?: string; /** Card hover background */ matrixCardHoverBg?: string; /** Card border */ matrixCardBorder?: string; /** Card border radius */ matrixCardRadius?: string; /** Card box shadow */ matrixCardShadow?: string; /** Card padding */ matrixCardPadding?: string; /** Card gap */ matrixCardGap?: string; /** Icon background */ matrixIconBg?: string; /** Icon color */ matrixIconColor?: string; /** Icon size */ matrixIconSize?: string; /** Icon border radius */ matrixIconRadius?: string; /** Indicator color */ matrixIndicatorColor?: string; /** Indicator size */ matrixIndicatorSize?: string; /** Badge background */ matrixBadgeBg?: string; /** Badge text color */ matrixBadgeColor?: string; /** Font family */ matrixFontFamily?: string; /** Title font size */ matrixTitleSize?: string; /** Title font weight */ matrixTitleWeight?: string; /** Body text font size */ matrixBodySize?: string; /** Body text font weight */ matrixBodyWeight?: string; /** Timestamp font size */ matrixTimestampSize?: string; /** Timestamp text color */ matrixTimestampColor?: string; /** Empty state icon color */ matrixEmptyIconColor?: string; /** Empty state icon size */ matrixEmptyIconSize?: string; /** Empty state title font size */ matrixEmptyTitleSize?: string; /** Empty state text color */ matrixEmptyTextColor?: string; /** Button background */ matrixButtonBg?: string; /** Button text color */ matrixButtonColor?: string; /** Button border radius */ matrixButtonRadius?: string; /** Button padding */ matrixButtonPadding?: string; /** Transition duration */ matrixTransitionDuration?: string; /** Hover scale factor */ matrixHoverScale?: string; /** Animation timing function */ matrixAnimationTiming?: string; /** Container minimum height */ matrixMinHeight?: string; /** Container maximum width */ matrixMaxWidth?: string; /** Layout gap */ matrixGap?: string; } /** * Core configuration props for the Matrix Widget. */ interface MatrixWidgetProps extends MatrixThemingProps { /** Base URL of the Legion application (required) */ baseUrl: string; /** Theme preset. Default: "light" */ theme?: "light" | "dark"; /** Title shown in empty state. Default: "You're all caught up" */ emptyTitle?: string; /** Subtitle shown in empty state. Default: "No updates right now" */ emptySubtitle?: string; /** Accent color name. Default: "blue" (light) / "gray" (dark) */ accentColor?: string; /** Icon for empty state. Default: "bell" */ emptyIcon?: "bell" | "gift" | "activity" | "trophy"; /** Widget width CSS value. Default: "100%" */ width?: string; /** Widget height CSS value. Default: "400px" */ height?: string; /** Additional CSS class name for the container */ className?: string; /** Additional inline styles for the container */ style?: React.CSSProperties; /** Callback when the widget iframe has loaded */ onLoad?: (detail: { widget: string; theme: string; }) => void; /** Callback when the widget iframe fails to load */ onError?: (message: string) => void; } /** * Mapping from camelCase theming prop names to the kebab-case query * parameter names used by the matrix widget iframe URL. */ declare const MATRIX_THEMING_PROP_TO_PARAM: Record; /** * Ref handle exposed by LegionMatrix for imperative control. */ interface LegionMatrixHandle { /** Reload the widget iframe */ refresh: () => void; } /** * Build the iframe src URL from widget props. */ declare function buildMatrixWidgetUrl(props: MatrixWidgetProps): string; /** * LegionMatrix – a React component that embeds the Legion * Matrix (site-wide notification feed) widget via an iframe. * * @example * ```tsx * import { LegionMatrix } from '@legionhandtech/lht-react-widgets'; * * function App() { * return ( * * ); * } * ``` */ declare const LegionMatrix: react__default.ForwardRefExoticComponent>; export { LegionMatrix, type LegionMatrixHandle, MATRIX_THEMING_PROP_TO_PARAM, type MatrixThemingProps, type MatrixWidgetProps, buildMatrixWidgetUrl };