@tamyla/ui-components-react
Version:
React-based UI component library with Factory Bridge pattern - integrates seamlessly with @tamyla/ui-components. Enhanced AI agent discoverability with structured component registry, comprehensive Storybook (8 components), and detailed guides.
1,373 lines (1,316 loc) • 97 kB
TypeScript
import * as immer from 'immer';
import * as redux_persist_es_types from 'redux-persist/es/types';
import * as _reduxjs_toolkit from '@reduxjs/toolkit';
import { PayloadAction } from '@reduxjs/toolkit';
import * as redux_thunk from 'redux-thunk';
import * as redux from 'redux';
import * as React from 'react';
import React__default, { Component, ReactNode, ErrorInfo, ComponentType, LazyExoticComponent } from 'react';
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as styled_components from 'styled-components';
import * as redux_persist from 'redux-persist';
import { TypedUseSelectorHook } from 'react-redux';
/**
* Common Type Definitions for UI Components
* Eliminates 'any' types with proper type safety
*/
type ComponentProps = Record<string, string | number | boolean | null | undefined | string[] | number[] | object>;
type ComponentState = Record<string, string | number | boolean | null | undefined | object>;
interface BaseComponentConfig {
id: string;
type: 'atom' | 'molecule' | 'organism';
name: string;
props: ComponentProps;
state: ComponentState;
isVisible: boolean;
isDisabled: boolean;
lastUpdated: string;
}
interface ComponentRegistryEntry {
type: 'atom' | 'molecule' | 'organism';
defaultProps: ComponentProps;
stateSchema: ComponentState;
}
interface UIComponentState {
isVisible: boolean;
isExpanded: boolean;
data: unknown;
}
type SearchResult$2 = {
id: string;
title: string;
type: string;
data?: unknown;
};
type FilterValue = string | number | boolean | string[] | number[];
interface ComponentUpdatePayload {
componentId: string;
props: ComponentProps;
}
interface ComponentStateUpdatePayload {
componentId: string;
stateUpdates: ComponentState;
}
interface FactoryConfig$1 {
name?: string;
version?: string;
dependencies?: string[];
[key: string]: unknown;
}
interface ComponentFactory$1 {
create: (config?: FactoryConfig$1) => unknown;
update?: (config: FactoryConfig$1) => void;
destroy?: () => void;
enableTradingPortalPatterns?: () => void;
[key: string]: unknown;
}
interface ReduxState {
[key: string]: unknown;
}
interface ComponentConfig extends BaseComponentConfig {
}
interface ComponentSliceState {
components: {
[componentId: string]: ComponentConfig;
};
activeComponent: string | null;
componentRegistry: {
[componentName: string]: ComponentRegistryEntry;
};
}
declare const componentActions: _reduxjs_toolkit.CaseReducerActions<{
registerComponent: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<{
id: string;
name: string;
props?: ComponentProps;
initialState?: ComponentState;
}>) => void;
unregisterComponent: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<string>) => void;
updateComponentProps: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<ComponentUpdatePayload>) => void;
updateComponentState: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<ComponentStateUpdatePayload>) => void;
setComponentVisibility: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<{
componentId: string;
isVisible: boolean;
}>) => void;
setComponentDisabled: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<{
componentId: string;
isDisabled: boolean;
}>) => void;
setActiveComponent: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<string | null>) => void;
registerComponentType: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<{
name: string;
config: ComponentRegistryEntry;
}>) => void;
unregisterComponentType: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<string>) => void;
batchUpdateComponents: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<{
updates: Array<{
componentId: string;
props?: ComponentProps;
state?: ComponentState;
isVisible?: boolean;
isDisabled?: boolean;
}>;
}>) => void;
resetComponent: (state: immer.WritableDraft<ComponentSliceState>, action: PayloadAction<string>) => void;
resetAllComponents: (state: immer.WritableDraft<ComponentSliceState>) => void;
}, "components">;
interface ThemeState {
mode: 'light' | 'dark' | 'auto';
currentTheme: 'light' | 'dark';
primaryColor: string;
fontSize: 'sm' | 'md' | 'lg';
animations: boolean;
reducedMotion: boolean;
highContrast: boolean;
customColors: {
[key: string]: string;
};
}
declare const themeActions: _reduxjs_toolkit.CaseReducerActions<{
setThemeMode: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<"light" | "dark" | "auto">) => void;
setPrimaryColor: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<string>) => void;
setFontSize: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<"sm" | "md" | "lg">) => void;
toggleAnimations: (state: immer.WritableDraft<ThemeState>) => void;
setAnimations: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<boolean>) => void;
setReducedMotion: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<boolean>) => void;
setHighContrast: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<boolean>) => void;
setCustomColor: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<{
key: string;
value: string;
}>) => void;
removeCustomColor: (state: immer.WritableDraft<ThemeState>, action: PayloadAction<string>) => void;
resetCustomColors: (state: immer.WritableDraft<ThemeState>) => void;
resetTheme: () => ThemeState;
}, "theme">;
interface Notification$1 {
id: string;
type: 'success' | 'error' | 'warning' | 'info';
title: string;
message: string;
timestamp: string;
autoClose?: boolean;
duration?: number;
}
interface Modal$1 {
isOpen: boolean;
data?: unknown;
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
}
interface UIState {
sidebar: {
isOpen: boolean;
isMobile: boolean;
activeSection: string;
pinnedItems: string[];
};
modals: {
[key: string]: Modal$1;
};
loading: {
global: boolean;
components: {
[key: string]: boolean;
};
};
notifications: Notification$1[];
search: {
query: string;
filters: {
[key: string]: FilterValue;
};
results: SearchResult$2[];
isSearching: boolean;
};
viewport: {
width: number;
height: number;
isMobile: boolean;
isTablet: boolean;
isDesktop: boolean;
};
componentStates: {
[componentId: string]: UIComponentState;
};
}
declare const uiActions: _reduxjs_toolkit.CaseReducerActions<{
toggleSidebar: (state: immer.WritableDraft<UIState>) => void;
setSidebarOpen: (state: immer.WritableDraft<UIState>, action: PayloadAction<boolean>) => void;
setActiveSection: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
pinSidebarItem: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
unpinSidebarItem: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
openModal: (state: immer.WritableDraft<UIState>, action: PayloadAction<{
id: string;
data?: unknown;
size?: Modal$1["size"];
}>) => void;
closeModal: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
closeAllModals: (state: immer.WritableDraft<UIState>) => void;
setGlobalLoading: (state: immer.WritableDraft<UIState>, action: PayloadAction<boolean>) => void;
setComponentLoading: (state: immer.WritableDraft<UIState>, action: PayloadAction<{
component: string;
loading: boolean;
}>) => void;
addNotification: (state: immer.WritableDraft<UIState>, action: PayloadAction<Omit<Notification$1, "id" | "timestamp">>) => void;
removeNotification: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
clearNotifications: (state: immer.WritableDraft<UIState>) => void;
setSearchQuery: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
setSearchFilter: (state: immer.WritableDraft<UIState>, action: PayloadAction<{
key: string;
value: FilterValue;
}>) => void;
clearSearchFilters: (state: immer.WritableDraft<UIState>) => void;
setSearchResults: (state: immer.WritableDraft<UIState>, action: PayloadAction<SearchResult$2[]>) => void;
setSearching: (state: immer.WritableDraft<UIState>, action: PayloadAction<boolean>) => void;
updateViewport: (state: immer.WritableDraft<UIState>, action: PayloadAction<{
width: number;
height: number;
}>) => void;
setComponentState: (state: immer.WritableDraft<UIState>, action: PayloadAction<{
componentId: string;
updates: Partial<UIState["componentStates"][string]>;
}>) => void;
removeComponentState: (state: immer.WritableDraft<UIState>, action: PayloadAction<string>) => void;
}, "ui">;
interface User {
id: string;
email: string;
name: string;
avatar?: string;
role: 'user' | 'admin';
preferences: {
notifications: boolean;
theme: 'light' | 'dark' | 'auto';
language: string;
};
profile: {
firstName?: string;
lastName?: string;
company?: string;
phone?: string;
};
}
interface AuthState {
user: User | null;
token: string | null;
isAuthenticated: boolean;
loading: boolean;
error: string | null;
sessionExpiry: string | null;
}
declare const authActions: _reduxjs_toolkit.CaseReducerActions<{
loginStart: (state: immer.WritableDraft<AuthState>) => void;
loginSuccess: (state: immer.WritableDraft<AuthState>, action: PayloadAction<{
user: User;
token: string;
expiresAt?: string;
}>) => void;
loginFailure: (state: immer.WritableDraft<AuthState>, action: PayloadAction<string>) => void;
logout: (state: immer.WritableDraft<AuthState>) => void;
updateUser: (state: immer.WritableDraft<AuthState>, action: PayloadAction<Partial<User>>) => void;
updateUserProfile: (state: immer.WritableDraft<AuthState>, action: PayloadAction<Partial<User["profile"]>>) => void;
updateUserPreferences: (state: immer.WritableDraft<AuthState>, action: PayloadAction<Partial<User["preferences"]>>) => void;
clearError: (state: immer.WritableDraft<AuthState>) => void;
setLoading: (state: immer.WritableDraft<AuthState>, action: PayloadAction<boolean>) => void;
refreshToken: (state: immer.WritableDraft<AuthState>, action: PayloadAction<{
token: string;
expiresAt?: string;
}>) => void;
}, "auth">;
/**
* Enhanced Card Component - shadcn/ui inspired with Redux integration
*
* A versatile card component that combines shadcn/ui design patterns with enterprise features
* including optional Redux state tracking, analytics, and interactive behaviors.
*
* @example
* ```tsx
* // Basic usage
* <Card>
* <Card.Header>
* <Card.Title>Card Title</Card.Title>
* </Card.Header>
* <Card.Content>
* // Create compound component with proper typing
const CardWithCompound = Card as CardComponent;
CardWithCompound.Header = CardHeader;
CardWithCompound.Title = CardTitle;
CardWithCompound.Content = CardContent;
// Export memoized version
export const MemoizedCard = React.memo(CardWithCompound);
MemoizedCard.displayName = 'MemoizedCard';
export default CardWithCompound;ntent goes here
* </Card.Content>
* </Card>
*
* // With variants and Redux tracking
* <Card
* variant="elevated"
* componentId="my-card"
* enableStateTracking
* enableAnalytics
* >
* <Card.Content>Interactive card content</Card.Content>
* </Card>
* ```
*/
/**
* Props for the Card component
*
* Extends all standard HTML div attributes with additional card-specific features
*/
interface CardProps extends React__default.HTMLAttributes<HTMLDivElement> {
/**
* Visual style variant of the card
* @default 'default'
*/
variant?: 'default' | 'outlined' | 'elevated' | 'filled';
/**
* Padding size for the card content
* @default 'default'
*/
padding?: 'none' | 'xs' | 'sm' | 'default' | 'lg';
/**
* Header content for the card (alternative to Card.Header)
*/
header?: React__default.ReactNode;
/**
* Footer content for the card (alternative to Card.Footer)
*/
footer?: React__default.ReactNode;
/**
* Whether to enable Redux state tracking for this card
* @default false
*/
enableStateTracking?: boolean;
/**
* Unique identifier for the card component (used for state tracking)
*/
componentId?: string;
/**
* Whether the card should be interactive (clickable)
* @default false
*/
interactive?: boolean;
/**
* Callback fired when card is expanded
*/
onExpand?: () => void;
/**
* Callback fired when card is collapsed
*/
onCollapse?: () => void;
/**
* Whether to enable analytics tracking for card interactions
* @default false
*/
enableAnalytics?: boolean;
/**
* Custom analytics event name for tracking
*/
analyticsEvent?: string;
/**
* Render as a different element (shadcn/ui pattern)
* @default false
*/
asChild?: boolean;
}
/**
* Card header sub-component
*
* Provides consistent spacing and styling for card headers.
* Typically contains the card title and any header actions.
*
* @example
* ```tsx
* <Card>
* <Card.Header>
* <Card.Title>Card Title</Card.Title>
* <Button size="sm">Action</Button>
* </Card.Header>
* </Card>
* ```
*/
interface CardHeaderProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
/**
* Card title sub-component
*
* Provides consistent typography styling for card titles.
* Renders as an h3 element for proper semantic structure.
*
* @example
* ```tsx
* <Card.Header>
* <Card.Title>My Card Title</Card.Title>
* </Card.Header>
* ```
*/
interface CardTitleProps extends React__default.HTMLAttributes<HTMLHeadingElement> {
}
/**
* Card content sub-component
*
* Provides consistent spacing for card content areas.
* Removes top padding to align with card headers.
*
* @example
* ```tsx
* <Card.Content>
* <p>This is the main content of the card.</p>
* </Card.Content>
* ```
*/
interface CardContentProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
/**
* Standardized Component Props - shadcn/ui inspired
* Provides consistent prop interfaces across all components
*/
type ComponentVariant = 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost';
type ComponentSize = 'xs' | 'sm' | 'default' | 'lg';
interface StandardizedComponentProps {
variant?: ComponentVariant;
size?: ComponentSize;
enableAnalytics?: boolean;
analyticsEvent?: string;
componentId?: string;
}
interface StandardizedInputProps extends StandardizedComponentProps {
error?: boolean;
errorMessage?: string;
helpText?: string;
startIcon?: React__default.ReactNode;
endIcon?: React__default.ReactNode;
label?: string;
required?: boolean;
}
/**
* Enhanced Input Component - shadcn/ui inspired with Redux integration
* Combines shadcn/ui patterns with your enterprise features
*/
interface InputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'size'>, StandardizedInputProps {
variant?: ComponentVariant;
size?: ComponentSize;
enableAnalytics?: boolean;
analyticsEvent?: string;
error?: boolean;
errorMessage?: string;
helpText?: string;
startIcon?: React__default.ReactNode;
endIcon?: React__default.ReactNode;
label?: string;
required?: boolean;
}
/**
* Enhanced Button Component - shadcn/ui inspired with Redux integration
*
* A versatile button component that combines shadcn/ui design patterns with enterprise features
* including optional Redux integration, analytics tracking, and dynamic theming.
*
* @example
* ```tsx
* // Basic usage
* <Button>Click me</Button>
*
* // With variant and size
* <Button variant="primary" size="lg">Large Button</Button>
*
* // With Redux analytics
* <Button enableAnalytics analyticsEvent="save_click">Save</Button>
*
* // With icons
* <Button leftIcon={<SaveIcon />}>Save</Button>
*
* // Loading state
* <Button isLoading loadingText="Saving...">Save</Button>
* ```
*/
/**
* Props for the Button component
*
* Extends all standard HTML button attributes with additional features
*/
interface ButtonProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
/**
* Visual style variant of the button
* @default 'default'
*/
variant?: 'default' | 'destructive' | 'outline' | 'secondary' | 'ghost' | 'link';
/**
* Size variant of the button
* @default 'default'
*/
size?: 'xs' | 'sm' | 'default' | 'lg' | 'icon';
/**
* Whether the button is in a loading state
* @default false
*/
isLoading?: boolean;
/**
* Icon to display on the left side of the button content
*/
leftIcon?: React__default.ReactNode;
/**
* Icon to display on the right side of the button content
*/
rightIcon?: React__default.ReactNode;
/**
* Whether to enable analytics tracking for button clicks
* @default false
*/
enableAnalytics?: boolean;
/**
* Custom analytics event name for tracking
* @default undefined
*/
analyticsEvent?: string;
/**
* Text to display when button is in loading state
* @default undefined
*/
loadingText?: string;
/**
* Whether to automatically adjust variant based on theme mode
* @default false
*/
useThemeVariant?: boolean;
}
interface Props {
children: ReactNode;
fallback?: ReactNode;
onError?: (error: Error, errorInfo: ErrorInfo) => void;
}
interface State {
hasError: boolean;
error?: Error;
}
declare class ErrorBoundary$1 extends Component<Props, State> {
constructor(props: Props);
static getDerivedStateFromError(error: Error): State;
componentDidCatch(error: Error, errorInfo: ErrorInfo): void;
render(): string | number | boolean | Iterable<React__default.ReactNode> | react_jsx_runtime.JSX.Element | null | undefined;
}
/**
* StatusIndicator Component - React wrapper for ui-components StatusIndicatorFactory
*/
interface StatusIndicatorProps {
status?: 'pending' | 'processing' | 'completed' | 'failed' | 'cancelled' | 'warning';
size?: 'xs' | 'sm' | 'md' | 'lg';
showLabel?: boolean;
label?: string;
animated?: boolean;
pulseEffect?: boolean;
tradingStatus?: 'order-pending' | 'order-filled' | 'order-cancelled' | 'market-open' | 'market-closed';
onClick?: (_: React__default.MouseEvent<HTMLDivElement>) => void;
onMouseEnter?: (_: React__default.MouseEvent<HTMLDivElement>) => void;
onMouseLeave?: (_: React__default.MouseEvent<HTMLDivElement>) => void;
className?: string;
}
declare const StatusIndicator: React__default.FC<StatusIndicatorProps>;
interface ButtonPrimaryProps {
children?: React__default.ReactNode;
onClick?: (_event: React__default.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
loading?: boolean;
size?: 'sm' | 'md' | 'lg';
fullWidth?: boolean;
icon?: string;
iconPosition?: 'left' | 'right';
className?: string;
}
declare const ButtonPrimary: React__default.FC<ButtonPrimaryProps>;
/**
* Factory System Type Definitions
* Provides proper TypeScript types for @tamyla/ui-components integration
*/
interface BaseFactoryComponent {
element: HTMLElement;
destroy(): void;
update(config: Record<string, unknown>): void;
}
type FactoryCreator<TConfig = Record<string, unknown>> = (config?: TConfig) => BaseFactoryComponent;
interface ComponentFactory<TConfig = Record<string, unknown>> {
create: FactoryCreator<TConfig>;
createPrimary?: FactoryCreator<TConfig>;
createSecondary?: FactoryCreator<TConfig>;
createOutline?: FactoryCreator<TConfig>;
createGhost?: FactoryCreator<TConfig>;
}
interface ComponentEventData {
type: string;
target: string;
data?: unknown;
timestamp: number;
}
type ComponentEventHandler = (event: ComponentEventData) => void;
interface FactoryConfig {
id?: string;
className?: string;
style?: Record<string, string>;
disabled?: boolean;
variant?: 'default' | 'primary' | 'secondary' | 'outline' | 'ghost';
size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';
}
interface ButtonFactoryConfig extends FactoryConfig {
text?: string;
onClick?: () => void;
loading?: boolean;
icon?: string;
}
interface InputFactoryConfig extends FactoryConfig {
placeholder?: string;
value?: string;
type?: 'text' | 'email' | 'password' | 'number';
required?: boolean;
pattern?: string;
}
interface CardFactoryConfig extends FactoryConfig {
title?: string;
content?: string;
header?: boolean;
footer?: boolean;
}
interface UIComponentsModule$1 {
ButtonFactory: ComponentFactory<ButtonFactoryConfig>;
InputFactory: ComponentFactory<InputFactoryConfig>;
CardFactory: ComponentFactory<CardFactoryConfig>;
Button: FactoryCreator<ButtonFactoryConfig>;
Input: FactoryCreator<InputFactoryConfig>;
Card: FactoryCreator<CardFactoryConfig>;
createComponent: <TConfig>(type: string, config?: TConfig) => BaseFactoryComponent;
destroyComponent: (component: BaseFactoryComponent) => void;
}
interface FactoryBridgeProps {
componentType: keyof UIComponentsModule$1;
config?: Record<string, unknown>;
children?: React__default.ReactNode;
className?: string;
onEvent?: ComponentEventHandler;
onMount?: (component: BaseFactoryComponent) => void;
onUnmount?: () => void;
}
declare const ReactButtonSecondary: React__default.FC<object & FactoryBridgeProps>;
interface ButtonGhostProps {
children?: React__default.ReactNode;
onClick?: (_event: React__default.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
loading?: boolean;
size?: 'sm' | 'md' | 'lg';
fullWidth?: boolean;
icon?: string;
iconPosition?: 'left' | 'right';
className?: string;
}
declare const ButtonGhost: React__default.FC<ButtonGhostProps>;
interface ButtonDangerProps {
children?: React__default.ReactNode;
onClick?: (_event: React__default.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
loading?: boolean;
size?: 'sm' | 'md' | 'lg';
fullWidth?: boolean;
icon?: string;
iconPosition?: 'left' | 'right';
className?: string;
}
declare const ButtonDanger: React__default.FC<ButtonDangerProps>;
interface ButtonSuccessProps {
children?: React__default.ReactNode;
onClick?: (_event: React__default.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
loading?: boolean;
size?: 'sm' | 'md' | 'lg';
fullWidth?: boolean;
icon?: string;
iconPosition?: 'left' | 'right';
className?: string;
}
declare const ButtonSuccess: React__default.FC<ButtonSuccessProps>;
interface ButtonWithIconProps {
children?: React__default.ReactNode;
onClick?: (_event: React__default.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
loading?: boolean;
size?: 'sm' | 'md' | 'lg';
fullWidth?: boolean;
icon: string;
iconPosition?: 'left' | 'right';
variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'success';
className?: string;
}
declare const ButtonWithIcon: React__default.FC<ButtonWithIconProps>;
interface ButtonIconOnlyProps {
onClick?: (_event: React__default.MouseEvent<HTMLButtonElement>) => void;
disabled?: boolean;
loading?: boolean;
size?: 'sm' | 'md' | 'lg';
icon: string;
variant?: 'primary' | 'secondary' | 'ghost' | 'danger' | 'success';
'aria-label': string;
tooltip?: string;
className?: string;
}
declare const ButtonIconOnly: React__default.FC<ButtonIconOnlyProps>;
/**
* InputGroup Component - React wrapper for InputGroupFactory
*/
interface InputGroupProps {
inputs?: Array<{
type?: string;
name?: string;
placeholder?: string;
required?: boolean;
}>;
layout?: 'horizontal' | 'vertical' | 'inline';
spacing?: 'tight' | 'normal' | 'loose';
validation?: boolean;
className?: string;
}
declare const InputGroup: (props: InputGroupProps) => React.ReactNode;
/**
* Enhanced Form Components - shadcn/ui inspired with Redux integration
* Combines shadcn/ui patterns with your enterprise features
*/
type HTMLLabelElement = globalThis.HTMLLabelElement;
type HTMLParagraphElement$2 = globalThis.HTMLParagraphElement;
type HTMLTextAreaElement = globalThis.HTMLTextAreaElement;
interface FormItemProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const FormItem: React__default.ForwardRefExoticComponent<FormItemProps & React__default.RefAttributes<HTMLDivElement>>;
interface FormLabelProps extends React__default.LabelHTMLAttributes<HTMLLabelElement> {
}
declare const FormLabel: React__default.ForwardRefExoticComponent<FormLabelProps & React__default.RefAttributes<globalThis.HTMLLabelElement>>;
interface FormControlProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const FormControl: React__default.ForwardRefExoticComponent<FormControlProps & React__default.RefAttributes<HTMLDivElement>>;
interface FormDescriptionProps extends React__default.HTMLAttributes<HTMLParagraphElement$2> {
}
declare const FormDescription: React__default.ForwardRefExoticComponent<FormDescriptionProps & React__default.RefAttributes<globalThis.HTMLParagraphElement>>;
interface FormMessageProps extends React__default.HTMLAttributes<HTMLParagraphElement$2> {
}
declare const FormMessage: React__default.ForwardRefExoticComponent<FormMessageProps & React__default.RefAttributes<globalThis.HTMLParagraphElement>>;
interface FormFieldProps {
name: string;
error?: string;
isRequired?: boolean;
children: React__default.ReactNode;
}
declare const FormField: React__default.FC<FormFieldProps>;
interface FormInputProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'size'> {
name: string;
label?: string;
description?: string;
error?: string;
isRequired?: boolean;
enableAnalytics?: boolean;
analyticsEvent?: string;
variant?: 'default' | 'filled' | 'ghost';
size?: 'sm' | 'default' | 'lg';
startIcon?: React__default.ReactNode;
endIcon?: React__default.ReactNode;
}
declare const FormInput: React__default.ForwardRefExoticComponent<FormInputProps & React__default.RefAttributes<HTMLInputElement>>;
interface FormTextareaProps extends React__default.TextareaHTMLAttributes<HTMLTextAreaElement> {
name: string;
label?: string;
description?: string;
error?: string;
isRequired?: boolean;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const FormTextarea: React__default.ForwardRefExoticComponent<FormTextareaProps & React__default.RefAttributes<globalThis.HTMLTextAreaElement>>;
/**
* Missing Form Components - Select, Checkbox, Radio, Switch, Slider
* shadcn/ui inspired with Redux integration
*/
type HTMLSelectElement = globalThis.HTMLSelectElement;
interface SelectProps extends React__default.SelectHTMLAttributes<HTMLSelectElement> {
options: Array<{
value: string;
label: string;
disabled?: boolean;
}>;
placeholder?: string;
error?: string;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Select: React__default.ForwardRefExoticComponent<SelectProps & React__default.RefAttributes<globalThis.HTMLSelectElement>>;
interface CheckboxProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'type'> {
label?: string;
error?: string;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Checkbox: React__default.ForwardRefExoticComponent<CheckboxProps & React__default.RefAttributes<HTMLInputElement>>;
interface RadioGroupProps {
value?: string;
onValueChange?: (value: string) => void;
disabled?: boolean;
className?: string;
children: React__default.ReactNode;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const RadioGroup: React__default.FC<RadioGroupProps>;
interface RadioGroupItemProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'type'> {
value: string;
}
declare const RadioGroupItem: React__default.ForwardRefExoticComponent<RadioGroupItemProps & React__default.RefAttributes<HTMLInputElement>>;
interface SwitchProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'type'> {
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Switch: React__default.ForwardRefExoticComponent<SwitchProps & React__default.RefAttributes<HTMLInputElement>>;
interface SliderProps extends Omit<React__default.InputHTMLAttributes<HTMLInputElement>, 'type'> {
min?: number;
max?: number;
step?: number;
value?: number;
onValueChange?: (value: number) => void;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Slider: React__default.ForwardRefExoticComponent<SliderProps & React__default.RefAttributes<HTMLInputElement>>;
/**
* User Feedback & Status Components - Alert, Progress, Badge
* shadcn/ui inspired with Redux integration
*/
type HTMLHeadingElement$1 = globalThis.HTMLHeadingElement;
type HTMLParagraphElement$1 = globalThis.HTMLParagraphElement;
interface AlertProps extends React__default.HTMLAttributes<HTMLDivElement> {
variant?: 'default' | 'destructive' | 'success' | 'warning' | 'info';
enableAnalytics?: boolean;
analyticsEvent?: string;
autoClose?: boolean;
duration?: number;
}
declare const Alert: React__default.ForwardRefExoticComponent<AlertProps & React__default.RefAttributes<HTMLDivElement>>;
interface AlertTitleProps extends React__default.HTMLAttributes<HTMLHeadingElement$1> {
}
declare const AlertTitle: React__default.ForwardRefExoticComponent<AlertTitleProps & React__default.RefAttributes<globalThis.HTMLParagraphElement>>;
interface AlertDescriptionProps extends React__default.HTMLAttributes<HTMLParagraphElement$1> {
}
declare const AlertDescription: React__default.ForwardRefExoticComponent<AlertDescriptionProps & React__default.RefAttributes<globalThis.HTMLParagraphElement>>;
interface ProgressProps extends React__default.HTMLAttributes<HTMLDivElement> {
value?: number;
max?: number;
variant?: 'default' | 'success' | 'warning' | 'destructive';
size?: 'sm' | 'default' | 'lg';
showValue?: boolean;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Progress: React__default.ForwardRefExoticComponent<ProgressProps & React__default.RefAttributes<HTMLDivElement>>;
interface BadgeProps extends React__default.HTMLAttributes<HTMLDivElement> {
variant?: 'default' | 'secondary' | 'destructive' | 'outline' | 'success' | 'warning';
size?: 'xs' | 'sm' | 'default' | 'lg';
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Badge: React__default.ForwardRefExoticComponent<BadgeProps & React__default.RefAttributes<HTMLDivElement>>;
interface AvatarProps extends React__default.HTMLAttributes<HTMLDivElement> {
src?: string;
alt?: string;
fallback?: string;
size?: 'xs' | 'sm' | 'default' | 'lg' | 'xl';
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Avatar: React__default.ForwardRefExoticComponent<AvatarProps & React__default.RefAttributes<HTMLDivElement>>;
/**
* Data Display Components - Table, Calendar
* shadcn/ui inspired with Redux integration
*/
type HTMLTableElement = globalThis.HTMLTableElement;
type HTMLTableSectionElement = globalThis.HTMLTableSectionElement;
type HTMLTableRowElement = globalThis.HTMLTableRowElement;
type HTMLTableCellElement = globalThis.HTMLTableCellElement;
type HTMLTableCaptionElement = globalThis.HTMLTableCaptionElement;
interface TableProps extends React__default.HTMLAttributes<HTMLTableElement> {
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Table: React__default.ForwardRefExoticComponent<TableProps & React__default.RefAttributes<globalThis.HTMLTableElement>>;
interface TableHeaderProps extends React__default.HTMLAttributes<HTMLTableSectionElement> {
}
declare const TableHeader: React__default.ForwardRefExoticComponent<TableHeaderProps & React__default.RefAttributes<globalThis.HTMLTableSectionElement>>;
interface TableBodyProps extends React__default.HTMLAttributes<HTMLTableSectionElement> {
}
declare const TableBody: React__default.ForwardRefExoticComponent<TableBodyProps & React__default.RefAttributes<globalThis.HTMLTableSectionElement>>;
interface TableFooterProps extends React__default.HTMLAttributes<HTMLTableSectionElement> {
}
declare const TableFooter: React__default.ForwardRefExoticComponent<TableFooterProps & React__default.RefAttributes<globalThis.HTMLTableSectionElement>>;
interface TableRowProps extends React__default.HTMLAttributes<HTMLTableRowElement> {
}
declare const TableRow: React__default.ForwardRefExoticComponent<TableRowProps & React__default.RefAttributes<globalThis.HTMLTableRowElement>>;
interface TableHeadProps extends React__default.ThHTMLAttributes<HTMLTableCellElement> {
}
declare const TableHead: React__default.ForwardRefExoticComponent<TableHeadProps & React__default.RefAttributes<globalThis.HTMLTableCellElement>>;
interface TableCellProps extends React__default.TdHTMLAttributes<HTMLTableCellElement> {
}
declare const TableCell: React__default.ForwardRefExoticComponent<TableCellProps & React__default.RefAttributes<globalThis.HTMLTableCellElement>>;
interface TableCaptionProps extends React__default.HTMLAttributes<HTMLTableCaptionElement> {
}
declare const TableCaption: React__default.ForwardRefExoticComponent<TableCaptionProps & React__default.RefAttributes<globalThis.HTMLTableCaptionElement>>;
interface CalendarProps extends Omit<React__default.HTMLAttributes<HTMLDivElement>, 'onSelect'> {
selected?: Date;
onDateSelect?: (date: Date | undefined) => void;
mode?: 'single' | 'multiple' | 'range';
disabled?: (date: Date) => boolean;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Calendar: React__default.ForwardRefExoticComponent<CalendarProps & React__default.RefAttributes<HTMLDivElement>>;
/**
* Loading & Feedback Components - Skeleton, HoverCard, Popover
* shadcn/ui inspired with Redux integration
*/
interface SkeletonProps extends React__default.HTMLAttributes<HTMLDivElement> {
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Skeleton: React__default.ForwardRefExoticComponent<SkeletonProps & React__default.RefAttributes<HTMLDivElement>>;
interface HoverCardProps extends React__default.HTMLAttributes<HTMLDivElement> {
open?: boolean;
onOpenChange?: (open: boolean) => void;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const HoverCard: React__default.ForwardRefExoticComponent<HoverCardProps & React__default.RefAttributes<HTMLDivElement>>;
interface HoverCardTriggerProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const HoverCardTrigger: React__default.ForwardRefExoticComponent<HoverCardTriggerProps & React__default.RefAttributes<HTMLDivElement>>;
interface HoverCardContentProps extends React__default.HTMLAttributes<HTMLDivElement> {
side?: 'top' | 'right' | 'bottom' | 'left';
align?: 'start' | 'center' | 'end';
size?: 'sm' | 'default' | 'lg';
}
declare const HoverCardContent: React__default.ForwardRefExoticComponent<HoverCardContentProps & React__default.RefAttributes<HTMLDivElement>>;
interface PopoverProps extends React__default.HTMLAttributes<HTMLDivElement> {
open?: boolean;
onOpenChange?: (open: boolean) => void;
enableAnalytics?: boolean;
analyticsEvent?: string;
}
declare const Popover: React__default.ForwardRefExoticComponent<PopoverProps & React__default.RefAttributes<HTMLDivElement>>;
interface PopoverTriggerProps extends React__default.HTMLAttributes<HTMLButtonElement> {
}
declare const PopoverTrigger: React__default.ForwardRefExoticComponent<PopoverTriggerProps & React__default.RefAttributes<HTMLButtonElement>>;
interface PopoverContentProps extends React__default.HTMLAttributes<HTMLDivElement> {
side?: 'top' | 'right' | 'bottom' | 'left';
align?: 'start' | 'center' | 'end';
isOpen?: boolean;
size?: 'sm' | 'default' | 'lg';
}
declare const PopoverContent: React__default.ForwardRefExoticComponent<PopoverContentProps & React__default.RefAttributes<HTMLDivElement>>;
/**
* ActionCard Component - Enhanced React wrapper for ActionCardFactory
* Features: Redux integration, styled-components, accessibility, analytics
*/
interface ActionCardProps {
title?: string;
description?: string;
icon?: string;
variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger';
size?: 'sm' | 'md' | 'lg';
interactive?: boolean;
elevation?: boolean;
disabled?: boolean;
loading?: boolean;
points?: number;
level?: string;
progress?: number;
badge?: string;
onClick?: (event: React__default.MouseEvent<HTMLDivElement>) => void;
onMouseEnter?: (event: React__default.MouseEvent<HTMLDivElement>) => void;
onMouseLeave?: (event: React__default.MouseEvent<HTMLDivElement>) => void;
onFocus?: (event: React__default.FocusEvent<HTMLDivElement>) => void;
onBlur?: (event: React__default.FocusEvent<HTMLDivElement>) => void;
className?: string;
style?: React__default.CSSProperties;
'data-testid'?: string;
}
declare const ActionCard: React__default.FC<ActionCardProps>;
/**
* ContentCard Component - Enhanced React wrapper for ContentCardFactory
* Features: Redux integration, styled-components, accessibility, performance optimization
*/
interface ContentCardProps {
title?: string;
content?: string;
image?: string;
tags?: string[];
author?: string;
date?: string;
readTime?: string;
variant?: 'default' | 'featured' | 'compact';
size?: 'sm' | 'md' | 'lg';
interactive?: boolean;
onClick?: (event: React__default.MouseEvent<HTMLElement>) => void;
onMouseEnter?: (event: React__default.MouseEvent<HTMLElement>) => void;
onMouseLeave?: (event: React__default.MouseEvent<HTMLElement>) => void;
onFocus?: (event: React__default.FocusEvent<HTMLElement>) => void;
onBlur?: (event: React__default.FocusEvent<HTMLElement>) => void;
className?: string;
style?: React__default.CSSProperties;
'data-testid'?: string;
}
declare const ContentCard: React__default.FC<ContentCardProps>;
/**
* FileList Component - Enhanced React wrapper for FileListFactory
* Features: Drag & drop, Redux integration, file validation, progress tracking
*/
interface FileItemData {
id: string;
name: string;
size: number;
type: string;
url?: string;
uploadProgress?: number;
lastModified?: number;
error?: string;
}
interface FileListProps {
files?: FileItemData[];
allowUpload?: boolean;
allowDelete?: boolean;
allowDownload?: boolean;
maxFiles?: number;
acceptedTypes?: string[];
maxFileSize?: number;
onFileAdd?: (files: FileList) => void;
onFileRemove?: (fileId: string) => void;
onFileDownload?: (fileId: string) => void;
onDragOver?: (event: React__default.DragEvent<HTMLDivElement>) => void;
onDragLeave?: (event: React__default.DragEvent<HTMLDivElement>) => void;
onDrop?: (event: React__default.DragEvent<HTMLDivElement>) => void;
onUploadProgress?: (fileId: string, progress: number) => void;
onUploadError?: (fileId: string, error: string) => void;
className?: string;
style?: React__default.CSSProperties;
'data-testid'?: string;
}
declare const FileList: React__default.FC<FileListProps>;
/**
* Notification Component - Enhanced React wrapper for NotificationFactory
* Features: Redux integration, animations, accessibility, auto-dismiss
*/
interface NotificationProps {
type?: 'success' | 'error' | 'warning' | 'info';
title?: string;
message?: string;
duration?: number;
closable?: boolean;
actions?: Array<{
label: string;
action: () => void;
variant?: 'primary' | 'secondary';
}>;
onClose?: () => void;
className?: string;
style?: React__default.CSSProperties;
'data-testid'?: string;
}
declare const Notification: React__default.FC<NotificationProps>;
/**
* Seaconst SearchContainer = styled.div`
width: 100%;
max-width: 100%;
margin: 0 auto;
@media (min-width: ${responsiveSizes.sm}px) {
max-width: ${600}px;
}
`;lecule - Enhanced search with Factory Bridge integration
*/
interface SearchSuggestion {
id: string;
text: string;
category?: string;
}
interface SearchEvent {
detail?: {
query?: string;
};
target?: {
value?: string;
};
}
interface SuggestionEvent {
detail?: SearchSuggestion;
}
interface SearchBarProps$1 {
placeholder?: string;
onSearch?: (query: string) => void;
onSuggestionSelect?: (suggestion: SearchSuggestion) => void;
voiceEnabled?: boolean;
clearable?: boolean;
showSuggestions?: boolean;
onTmylSearch?: (event: SearchEvent) => void;
onTmylSearchSuggestion?: (event: SuggestionEvent) => void;
className?: string;
}
declare const SearchBar$1: React__default.FC<SearchBarProps$1>;
/**
* SearchBar Component - React wrapper for SearchBarFactory
*/
interface SearchBarProps {
placeholder?: string;
size?: 'sm' | 'md' | 'lg';
variant?: 'primary' | 'secondary' | 'ghost';
disabled?: boolean;
loading?: boolean;
voiceEnabled?: boolean;
clearable?: boolean;
showSubmitButton?: boolean;
suggestions?: string[];
showSuggestions?: boolean;
maxSuggestions?: number;
onSearch?: (query: string) => void;
onChange?: (value: string) => void;
className?: string;
}
declare const SearchBar: React.FC<SearchBarProps & FactoryBridgeProps>;
/**
* Enhanced Dialog Component - shadcn/ui inspired with Redux integration
* Combines shadcn/ui patterns with your enterprise features
*/
interface DialogProps {
open?: boolean;
onOpenChange?: (open: boolean) => void;
children: React__default.ReactNode;
enableAnalytics?: boolean;
analyticsEvent?: string;
componentId?: string;
}
declare const Dialog: React__default.FC<DialogProps>;
interface DialogTriggerProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
asChild?: boolean;
}
declare const DialogTrigger: React__default.ForwardRefExoticComponent<DialogTriggerProps & React__default.RefAttributes<HTMLButtonElement>>;
interface DialogContentProps extends React__default.HTMLAttributes<HTMLDivElement> {
size?: 'sm' | 'default' | 'lg' | 'xl';
}
declare const DialogContent: React__default.ForwardRefExoticComponent<DialogContentProps & React__default.RefAttributes<HTMLDivElement>>;
interface DialogHeaderProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const DialogHeader: React__default.ForwardRefExoticComponent<DialogHeaderProps & React__default.RefAttributes<HTMLDivElement>>;
interface DialogTitleProps extends React__default.HTMLAttributes<HTMLHeadingElement> {
}
declare const DialogTitle: React__default.ForwardRefExoticComponent<DialogTitleProps & React__default.RefAttributes<HTMLHeadingElement>>;
interface DialogDescriptionProps extends React__default.HTMLAttributes<HTMLParagraphElement> {
}
declare const DialogDescription: React__default.ForwardRefExoticComponent<DialogDescriptionProps & React__default.RefAttributes<HTMLParagraphElement>>;
interface DialogFooterProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const DialogFooter: React__default.ForwardRefExoticComponent<DialogFooterProps & React__default.RefAttributes<HTMLDivElement>>;
interface DialogCloseProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
asChild?: boolean;
}
declare const DialogClose: React__default.ForwardRefExoticComponent<DialogCloseProps & React__default.RefAttributes<HTMLButtonElement>>;
/**
* Enhanced Navigation Component - shadcn/ui inspired with Redux integration
* Combines shadcn/ui navigation patterns with your enterprise features
*/
interface NavigationItem$1 {
id: string;
label: string;
href?: string;
icon?: React__default.ReactNode;
badge?: string | number;
children?: NavigationItem$1[];
disabled?: boolean;
}
interface NavigationProps extends React__default.HTMLAttributes<HTMLElement> {
items?: NavigationItem$1[];
activeItem?: string;
onItemClick?: (item: NavigationItem$1) => void;
variant?: 'default' | 'pills' | 'underline';
size?: 'sm' | 'default' | 'lg';
orientation?: 'horizontal' | 'vertical';
enableAnalytics?: boolean;
analyticsEvent?: string;
componentId?: string;
}
declare const Navigation: React__default.ForwardRefExoticComponent<NavigationProps & React__default.RefAttributes<HTMLElement>>;
interface NavigationMenuProps extends React__default.HTMLAttributes<HTMLDivElement> {
children: React__default.ReactNode;
}
declare const NavigationMenu: React__default.FC<NavigationMenuProps>;
interface NavigationMenuItemProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const NavigationMenuItem: React__default.FC<NavigationMenuItemProps>;
interface NavigationMenuTriggerProps extends React__default.ButtonHTMLAttributes<HTMLButtonElement> {
}
declare const NavigationMenuTrigger: React__default.ForwardRefExoticComponent<NavigationMenuTriggerProps & React__default.RefAttributes<HTMLButtonElement>>;
interface NavigationMenuContentProps extends React__default.HTMLAttributes<HTMLDivElement> {
}
declare const NavigationMenuContent: React__default.FC<NavigationMenuContentProps>;
interface DashboardWidget {
id: string;
component: string;
props?: Record<string, string | number | boolean | object>;
}
interface SearchFilters$1 {
[key: string]: string | number | boolean | string[];
}
interface SearchResult$1 {
id: string;
title: string;
description?: string;
url?: string;
score: number;
type: string;
metadata?: Record<string, string | number | boolean>;
}
interface DashboardItem {
id: string;
title: string;
type: string;
metadata?: Record<string, string | number | boolean>;
}
interface DashboardActionData {
action: string;
widgetId: string;
payload?: Record<string, string | number | boolean | object>;
}
interface DashboardProps {
type?: 'search' | 'content' | 'knowledge' | 'media';
title?: string;
description?: string;
widgets?: DashboardWidget[];
layout?: 'grid' | 'list' | 'cards' | 'vertical' | 'horizontal';
size?: 'default' | 'compact' | 'large' | 'expanded';
searchAPI?: (query: string, filters: SearchFilters$1) => Promise<SearchResult$1[]>;
onResults?: (results: SearchResult$1[]) => void;
onError?: (error: Error) => void;
onSelection?: (item: DashboardItem) => void;
onWidgetAction?: (action: string, data: DashboardActionData) => void;
className?: string;
style?: React__default.CSSProperties;
}
declare const DashboardSearch: React__default.FC<DashboardProps & FactoryBridgeProps>;
declare const DashboardContent: React__default.FC<DashboardProps & FactoryBridgeProps>;
declare const DashboardKnowledge: React__default.FC<DashboardProps & FactoryBridgeProps>;
declare const DashboardMedia: React__default.FC<DashboardProps & FactoryBridgeProps>;
declare const Dashboard: React__default.FC<DashboardProps>;
/**
* SearchInterface Component - React wrapper for SearchInterfaceFactory
*/
interface FilterOption {
value: string;
label: string;
}
interface Filter {
name: string;
label: string;
type: 'select' | 'checkbox' | 'range';
options?: FilterOption[];
}
interface SearchFilters {
[key: string]: string | number | boolean | string[];
}
interface SearchResult {
id: string;
title: string;
description?: string;
url?: string;
score: number;
type: string;
metadata?: Record<string, unknown>;
}
interface SearchItem {
id: string;
title: string;
type: string;
metadata?: Record<string, unknown>;
}
interface SearchInterfaceProps {
title?: string;
description?: string;
searchProps?: Record<string, unknown>;
filters?: Filter[];
initialQuery?: string;
initialFilters?: SearchFilters;
searchAPI?: (query: string, filters: SearchFilters) => Promise<SearchResult[]>;
onSearch?: (query: string, filters: SearchFilters) => void;
onResults?: (results: SearchResult[]) => void;
onError?: (error: Error) => void;
onSelection?: (item: SearchItem) => void;
showHeader?: boolean;
showFilters?: boolean;
showResultsActions?: boolean;
layout?: 'vertical' | 'horizontal';
size?: 'default' | 'compact' | 'large';
debounceMs?: number;
pageSize?: number;
enableVoiceSearch?: boolean;
enableFiltering?: boolean;
enableSorting?: boolean;
trackAnalytics?: boolean;
className?: string;
}
declare const SearchInterface: React.FC<SearchInterfaceProps & FactoryBridgeProps>;
/**
* Reward System Component - React wrapper