@agentiffai/design 1.3.26 → 1.3.27

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/index.d.cts CHANGED
@@ -5,7 +5,7 @@ import React__default, { ReactNode } from 'react';
5
5
  export { ActionButtons, ActionButtonsProps, BrandType, CategoryItem, CategoryNav, CategoryNavProps, CategorySubItem, Icon, IconName, IconNames, IconProps, Layout, LayoutProps, NavHorizontal, NavHorizontalProps, NavVertical, NavVerticalProps, OAuthConnectionData, PaneMenus, PaneMenusProps, PaneSectionHeader, PaneSectionHeaderProps, ServiceBrand, ServiceIcon, ServiceIconProps, WorkflowStatusCard, WorkflowStatusCardProps } from './layout/index.cjs';
6
6
  import { AriaButtonProps } from '@react-aria/button';
7
7
  export { GlobalStyle, darkTheme, lightTheme, tokens } from './theme/index.cjs';
8
- export { A as Action, c as ActionVariant, d as Actions, a as ActionsLayout, b as ActionsProps, f as AgentState, e as AgentStateProps, t as AssistantMessage, o as AssistantMessageProps, k as Button, B as ButtonProps, i as ButtonSize, j as ButtonVariant, z as CopilotUserMessage, U as CopilotUserMessageProps, u as FileAttachment, p as FileAttachmentProps, l as Footer, F as FooterProps, m as Header, H as HeaderProps, n as Input, I as InputProps, M as Message, v as Messages, w as MessagesList, x as MessagesListContainer, y as MessagesListContent, q as MessagesListProps, s as MessagesProps, D as Response, C as ResponseProps, G as StreamErrorMessage, S as StreamErrorMessageProps, N as StreamStatusIndicator, L as StreamStatusIndicatorProps, K as StreamingText, J as StreamingTextProps, P as Suggestions, O as SuggestionsProps, Q as Window, W as WindowProps, h as clearToolCalls, r as registerToolCall } from './Window-DyRP81dS.cjs';
8
+ export { A as Action, c as ActionVariant, d as Actions, a as ActionsLayout, b as ActionsProps, f as AgentState, e as AgentStateProps, t as AssistantMessage, o as AssistantMessageProps, k as Button, B as ButtonProps, i as ButtonSize, j as ButtonVariant, z as CopilotUserMessage, U as CopilotUserMessageProps, u as FileAttachment, p as FileAttachmentProps, l as Footer, F as FooterProps, m as Header, H as HeaderProps, n as Input, I as InputProps, M as Message, v as Messages, w as MessagesList, x as MessagesListContainer, y as MessagesListContent, q as MessagesListProps, s as MessagesProps, D as Response, C as ResponseProps, G as StreamErrorMessage, S as StreamErrorMessageProps, N as StreamStatusIndicator, L as StreamStatusIndicatorProps, K as StreamingText, J as StreamingTextProps, P as Suggestions, O as SuggestionsProps, Q as Window, W as WindowProps, h as clearToolCalls, r as registerToolCall } from './Window-Dm_I5m8i.cjs';
9
9
  export { FacebookIcon, FacebookIconProps, FacebookIconVariant, GmailIcon, GmailIconProps, GmailIconVariant, InstagramIcon, InstagramIconProps, InstagramVariant, LinkedInIcon, LinkedInIconProps, LinkedInIconVariant, PostizIcon, PostizIconProps, PostizIconVariant, RedditIcon, RedditIconProps, RedditIconVariant, SlackIcon, SlackIconProps, SlackIconVariant, TelegramIcon, TelegramIconProps, TelegramIconVariant, WhatsAppIcon, WhatsAppIconProps, WhatsAppIconVariant, XIcon, XIconProps, XIconVariant, YouTubeIcon, YouTubeIconProps, YouTubeIconVariant } from './icons/index.cjs';
10
10
  export { WorkflowCard, WorkflowCardProps, WorkflowErrorAlert, WorkflowErrorAlertProps, WorkflowIntegration, WorkflowProgressBar, WorkflowProgressBarProps, WorkflowResultPanel, WorkflowResultPanelProps, WorkflowStatusBadge, WorkflowStatusBadgeProps } from './workflow/index.cjs';
11
11
  import '@react-types/button';
@@ -99,6 +99,179 @@ interface ChatInputProps extends Omit<AriaTextFieldProps, 'onChange'> {
99
99
  */
100
100
  declare const ChatInput: React__default.FC<ChatInputProps>;
101
101
 
102
+ /**
103
+ * TagInput Component
104
+ *
105
+ * A pill-based input for array values using React Aria's TagGroup.
106
+ * Users can add/remove items as interactive pills instead of comma-separated text.
107
+ */
108
+
109
+ interface TagInputProps {
110
+ /** Current array of values */
111
+ value: string[];
112
+ /** Callback when values change */
113
+ onChange: (values: string[]) => void;
114
+ /** Field label */
115
+ label: string;
116
+ /** Whether the field is required */
117
+ required?: boolean;
118
+ /** Helper text / description */
119
+ description?: string;
120
+ /** Placeholder for the input */
121
+ placeholder?: string;
122
+ /** Default values to show as hint */
123
+ defaultHint?: string[];
124
+ /** Whether the field is disabled */
125
+ disabled?: boolean;
126
+ /** Error message to display */
127
+ error?: string | null;
128
+ /** Minimum number of items required */
129
+ minItems?: number;
130
+ /** Test ID prefix */
131
+ testId?: string;
132
+ }
133
+ /**
134
+ * TagInput - A pill-based array input component
135
+ *
136
+ * Features:
137
+ * - Add items by typing and pressing Enter or clicking Add
138
+ * - Remove items by clicking the X on each pill
139
+ * - Visual feedback for selected/hover states
140
+ * - Keyboard accessible
141
+ */
142
+ declare const TagInput: React__default.FC<TagInputProps>;
143
+
144
+ /**
145
+ * WorkflowLoadingSkeleton Component
146
+ *
147
+ * Shows persistent skeleton during INITIALIZING and PROCESSING phases.
148
+ * Features:
149
+ * - Indeterminate progress bar for INITIALIZING phase
150
+ * - Determinate progress bar for PROCESSING phase (when steps are known)
151
+ * - Current activity message display
152
+ * - Step counter when totalSteps > 0
153
+ * - Divide-by-zero protection for percentage calculation
154
+ * - Minimum display duration (100ms delay) to prevent flash
155
+ */
156
+ interface WorkflowLoadingSkeletonProps {
157
+ /** Current workflow phase (e.g. "INITIALIZING", "PROCESSING") */
158
+ phase: string;
159
+ /** Progress state with step tracking and percentage */
160
+ progress: {
161
+ currentStep: number;
162
+ totalSteps: number;
163
+ currentActivity: string;
164
+ percentage: number;
165
+ };
166
+ }
167
+ /**
168
+ * WorkflowLoadingSkeleton shows a persistent loading state during workflow execution.
169
+ * Adapts visual presentation based on current phase and available progress data.
170
+ */
171
+ declare function WorkflowLoadingSkeleton({ phase, progress, }: WorkflowLoadingSkeletonProps): react_jsx_runtime.JSX.Element | null;
172
+
173
+ /**
174
+ * AuthButton Component
175
+ *
176
+ * Button component with primary/secondary variants, loading states, and disabled states
177
+ */
178
+
179
+ interface AuthButtonProps {
180
+ children: React__default.ReactNode;
181
+ onClick?: () => void;
182
+ type?: "button" | "submit" | "reset";
183
+ variant?: "primary" | "secondary";
184
+ loading?: boolean;
185
+ loadingText?: string;
186
+ disabled?: boolean;
187
+ fullWidth?: boolean;
188
+ icon?: React__default.ReactNode;
189
+ className?: string;
190
+ "data-testid"?: string;
191
+ }
192
+ declare const AuthButton: React__default.FC<AuthButtonProps>;
193
+
194
+ /**
195
+ * AuthInput Component
196
+ *
197
+ * Reusable input field with validation states and error display
198
+ * Uses react-aria for accessibility and styled-components for styling
199
+ */
200
+
201
+ interface AuthInputProps {
202
+ label: string;
203
+ name: string;
204
+ type?: "text" | "email" | "tel" | "password";
205
+ value?: string;
206
+ placeholder?: string;
207
+ error?: string;
208
+ required?: boolean;
209
+ disabled?: boolean;
210
+ autoFocus?: boolean;
211
+ autoComplete?: string;
212
+ /** Prevents browser autofill using readonly workaround (for OTP/verification codes) */
213
+ disableAutofill?: boolean;
214
+ /** Maximum number of characters allowed */
215
+ maxLength?: number;
216
+ /** Input mode for mobile keyboard (e.g., "numeric" for number pad) */
217
+ inputMode?: "text" | "numeric" | "tel" | "email" | "decimal";
218
+ className?: string;
219
+ onChange?: (value: string) => void;
220
+ onBlur?: () => void;
221
+ onValidate?: () => void;
222
+ validateOnBlur?: boolean;
223
+ "data-testid"?: string;
224
+ }
225
+ declare const AuthInput: React__default.FC<AuthInputProps>;
226
+
227
+ /**
228
+ * PasswordInput Component
229
+ *
230
+ * Password input with show/hide toggle icon
231
+ * Inherits from AuthInput with additional password-specific features
232
+ */
233
+
234
+ interface PasswordInputProps extends Omit<AuthInputProps, "type"> {
235
+ clearOnError?: boolean;
236
+ minLength?: number;
237
+ hintText?: string;
238
+ }
239
+ declare const PasswordInput: React__default.FC<PasswordInputProps>;
240
+
241
+ /**
242
+ * SuccessToast Component
243
+ *
244
+ * Displays success notifications with auto-dismiss functionality
245
+ * Styled with green colors for positive feedback
246
+ */
247
+
248
+ interface SuccessToastProps {
249
+ message: string | null;
250
+ onDismiss: () => void;
251
+ autoDismiss?: boolean;
252
+ autoDismissDelay?: number;
253
+ }
254
+ declare const SuccessToast: React__default.FC<SuccessToastProps>;
255
+
256
+ /**
257
+ * ErrorBanner Component
258
+ *
259
+ * Global connectivity error banner that appears at the top of the viewport
260
+ * Displays when the app is offline and automatically dismisses on reconnect
261
+ */
262
+
263
+ interface ErrorBannerProps {
264
+ isOnline: boolean;
265
+ message?: string;
266
+ }
267
+ /**
268
+ * ErrorBanner component displays connectivity errors
269
+ *
270
+ * @param isOnline - Network connectivity status
271
+ * @param message - Optional custom error message (defaults to "No internet connection")
272
+ */
273
+ declare const ErrorBanner: React__default.FC<ErrorBannerProps>;
274
+
102
275
  interface NotificationItem {
103
276
  /** Unique identifier for the item */
104
277
  id: string;
@@ -739,4 +912,56 @@ interface TokenUsageCardProps {
739
912
  }
740
913
  declare function TokenUsageCard({ currentUsage, maxLimit, transactions, periodLabel, onViewAll, className, loading, }: TokenUsageCardProps): React__default.ReactElement;
741
914
 
742
- export { type ApprovalStatus, AssistantThinking, type AssistantThinkingProps, type BillingPeriod, BillingToggle, type BillingToggleProps, CATEGORY_CONFIGS, type CategoryConfig, ChatInput, type ChatInputProps, ConnectionStatusBadge, type ConnectionStatusBadgeProps, DarkNotificationCard, type EngagementOpportunity, type EngagementStatus, IntegrationCard, type IntegrationCardProps, NotificationCard, type NotificationCardProps, type NotificationItem, type NotificationSection, PLATFORM_CONFIGS, type Platform, PlatformCarousel, type PlatformCarouselProps, type PlatformConfig, PlatformGrid, type PlatformGridProps, PostApprovalControls, type PostApprovalControlsProps, PostPreviewCard, type PostPreviewCardProps, type PostViewMode, type ProgressCategory, type ProposedPost, RedditEngagementControls, type RedditEngagementControlsProps, RedditOpportunityCard, type RedditOpportunityCardProps, type ReplyTone, SecretInput, type SecretInputProps, SocialMediaCanvas, type SocialMediaCanvasProps, type TokenTransaction, TokenUsageCard, type TokenUsageCardProps, TrialPlanCard, type TrialPlanCardProps, UserMessage, type UserMessageProps, categorizeProgress, getCategoryColor, getCategoryIcon, getCharacterCount, getCharacterLimitColor, getCharacterLimitPercentage, isWithinCharLimit, normalizePlatform };
915
+ /**
916
+ * useLocalStorage Hook
917
+ *
918
+ * Generic hook for localStorage persistence with type safety
919
+ * Provides state management with automatic localStorage sync
920
+ */
921
+ /**
922
+ * Custom hook for managing state with localStorage persistence
923
+ * @param key - localStorage key to store the value under
924
+ * @param initialValue - initial value to use if no stored value exists
925
+ * @returns tuple of [value, setValue] similar to useState
926
+ */
927
+ declare function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T | ((prev: T) => T)) => void];
928
+
929
+ /**
930
+ * useNetworkStatus Hook - Detects network connectivity changes
931
+ *
932
+ * Uses two detection methods:
933
+ * 1. Browser online/offline events (instant, works on desktop)
934
+ * 2. Ping-based check (fallback for Android WebView where browser events don't fire)
935
+ *
936
+ * @param healthEndpoint - Optional URL to ping for connectivity checks (used in Tauri/WebView environments)
937
+ */
938
+ declare function useNetworkStatus(healthEndpoint?: string): boolean;
939
+
940
+ /**
941
+ * Hook to detect mobile landscape orientation
942
+ * Returns true when device is in landscape mode with limited height (mobile)
943
+ */
944
+ declare function useIsLandscape(): boolean;
945
+
946
+ /**
947
+ * Keyboard Detection Hook
948
+ * Implements keyboard visibility detection and height calculation
949
+ * Per spec section 3.3: Keyboard Detection & Override
950
+ */
951
+ interface KeyboardState {
952
+ isVisible: boolean;
953
+ height: number;
954
+ viewportOffsetTop: number;
955
+ }
956
+ /**
957
+ * Hook to detect virtual keyboard visibility and height on mobile devices
958
+ * Uses Visual Viewport API where available, with fallback methods
959
+ */
960
+ declare const useKeyboardDetection: () => KeyboardState;
961
+ /**
962
+ * Utility function to check if the device is mobile
963
+ * Checks for touch capability and mobile user agents
964
+ */
965
+ declare const isMobileDevice: () => boolean;
966
+
967
+ export { type ApprovalStatus, AssistantThinking, type AssistantThinkingProps, AuthButton, type AuthButtonProps, AuthInput, type AuthInputProps, type BillingPeriod, BillingToggle, type BillingToggleProps, CATEGORY_CONFIGS, type CategoryConfig, ChatInput, type ChatInputProps, ConnectionStatusBadge, type ConnectionStatusBadgeProps, DarkNotificationCard, type EngagementOpportunity, type EngagementStatus, ErrorBanner, type ErrorBannerProps, IntegrationCard, type IntegrationCardProps, NotificationCard, type NotificationCardProps, type NotificationItem, type NotificationSection, PLATFORM_CONFIGS, PasswordInput, type PasswordInputProps, type Platform, PlatformCarousel, type PlatformCarouselProps, type PlatformConfig, PlatformGrid, type PlatformGridProps, PostApprovalControls, type PostApprovalControlsProps, PostPreviewCard, type PostPreviewCardProps, type PostViewMode, type ProgressCategory, type ProposedPost, RedditEngagementControls, type RedditEngagementControlsProps, RedditOpportunityCard, type RedditOpportunityCardProps, type ReplyTone, SecretInput, type SecretInputProps, SocialMediaCanvas, type SocialMediaCanvasProps, SuccessToast, type SuccessToastProps, TagInput, type TagInputProps, type TokenTransaction, TokenUsageCard, type TokenUsageCardProps, TrialPlanCard, type TrialPlanCardProps, UserMessage, type UserMessageProps, WorkflowLoadingSkeleton, type WorkflowLoadingSkeletonProps, categorizeProgress, getCategoryColor, getCategoryIcon, getCharacterCount, getCharacterLimitColor, getCharacterLimitPercentage, isMobileDevice, isWithinCharLimit, normalizePlatform, useIsLandscape, useKeyboardDetection, useLocalStorage, useNetworkStatus };
package/dist/index.d.ts CHANGED
@@ -5,7 +5,7 @@ import React__default, { ReactNode } from 'react';
5
5
  export { ActionButtons, ActionButtonsProps, BrandType, CategoryItem, CategoryNav, CategoryNavProps, CategorySubItem, Icon, IconName, IconNames, IconProps, Layout, LayoutProps, NavHorizontal, NavHorizontalProps, NavVertical, NavVerticalProps, OAuthConnectionData, PaneMenus, PaneMenusProps, PaneSectionHeader, PaneSectionHeaderProps, ServiceBrand, ServiceIcon, ServiceIconProps, WorkflowStatusCard, WorkflowStatusCardProps } from './layout/index.js';
6
6
  import { AriaButtonProps } from '@react-aria/button';
7
7
  export { GlobalStyle, darkTheme, lightTheme, tokens } from './theme/index.js';
8
- export { A as Action, c as ActionVariant, d as Actions, a as ActionsLayout, b as ActionsProps, f as AgentState, e as AgentStateProps, t as AssistantMessage, o as AssistantMessageProps, k as Button, B as ButtonProps, i as ButtonSize, j as ButtonVariant, z as CopilotUserMessage, U as CopilotUserMessageProps, u as FileAttachment, p as FileAttachmentProps, l as Footer, F as FooterProps, m as Header, H as HeaderProps, n as Input, I as InputProps, M as Message, v as Messages, w as MessagesList, x as MessagesListContainer, y as MessagesListContent, q as MessagesListProps, s as MessagesProps, D as Response, C as ResponseProps, G as StreamErrorMessage, S as StreamErrorMessageProps, N as StreamStatusIndicator, L as StreamStatusIndicatorProps, K as StreamingText, J as StreamingTextProps, P as Suggestions, O as SuggestionsProps, Q as Window, W as WindowProps, h as clearToolCalls, r as registerToolCall } from './Window-DyRP81dS.js';
8
+ export { A as Action, c as ActionVariant, d as Actions, a as ActionsLayout, b as ActionsProps, f as AgentState, e as AgentStateProps, t as AssistantMessage, o as AssistantMessageProps, k as Button, B as ButtonProps, i as ButtonSize, j as ButtonVariant, z as CopilotUserMessage, U as CopilotUserMessageProps, u as FileAttachment, p as FileAttachmentProps, l as Footer, F as FooterProps, m as Header, H as HeaderProps, n as Input, I as InputProps, M as Message, v as Messages, w as MessagesList, x as MessagesListContainer, y as MessagesListContent, q as MessagesListProps, s as MessagesProps, D as Response, C as ResponseProps, G as StreamErrorMessage, S as StreamErrorMessageProps, N as StreamStatusIndicator, L as StreamStatusIndicatorProps, K as StreamingText, J as StreamingTextProps, P as Suggestions, O as SuggestionsProps, Q as Window, W as WindowProps, h as clearToolCalls, r as registerToolCall } from './Window-Dm_I5m8i.js';
9
9
  export { FacebookIcon, FacebookIconProps, FacebookIconVariant, GmailIcon, GmailIconProps, GmailIconVariant, InstagramIcon, InstagramIconProps, InstagramVariant, LinkedInIcon, LinkedInIconProps, LinkedInIconVariant, PostizIcon, PostizIconProps, PostizIconVariant, RedditIcon, RedditIconProps, RedditIconVariant, SlackIcon, SlackIconProps, SlackIconVariant, TelegramIcon, TelegramIconProps, TelegramIconVariant, WhatsAppIcon, WhatsAppIconProps, WhatsAppIconVariant, XIcon, XIconProps, XIconVariant, YouTubeIcon, YouTubeIconProps, YouTubeIconVariant } from './icons/index.js';
10
10
  export { WorkflowCard, WorkflowCardProps, WorkflowErrorAlert, WorkflowErrorAlertProps, WorkflowIntegration, WorkflowProgressBar, WorkflowProgressBarProps, WorkflowResultPanel, WorkflowResultPanelProps, WorkflowStatusBadge, WorkflowStatusBadgeProps } from './workflow/index.js';
11
11
  import '@react-types/button';
@@ -99,6 +99,179 @@ interface ChatInputProps extends Omit<AriaTextFieldProps, 'onChange'> {
99
99
  */
100
100
  declare const ChatInput: React__default.FC<ChatInputProps>;
101
101
 
102
+ /**
103
+ * TagInput Component
104
+ *
105
+ * A pill-based input for array values using React Aria's TagGroup.
106
+ * Users can add/remove items as interactive pills instead of comma-separated text.
107
+ */
108
+
109
+ interface TagInputProps {
110
+ /** Current array of values */
111
+ value: string[];
112
+ /** Callback when values change */
113
+ onChange: (values: string[]) => void;
114
+ /** Field label */
115
+ label: string;
116
+ /** Whether the field is required */
117
+ required?: boolean;
118
+ /** Helper text / description */
119
+ description?: string;
120
+ /** Placeholder for the input */
121
+ placeholder?: string;
122
+ /** Default values to show as hint */
123
+ defaultHint?: string[];
124
+ /** Whether the field is disabled */
125
+ disabled?: boolean;
126
+ /** Error message to display */
127
+ error?: string | null;
128
+ /** Minimum number of items required */
129
+ minItems?: number;
130
+ /** Test ID prefix */
131
+ testId?: string;
132
+ }
133
+ /**
134
+ * TagInput - A pill-based array input component
135
+ *
136
+ * Features:
137
+ * - Add items by typing and pressing Enter or clicking Add
138
+ * - Remove items by clicking the X on each pill
139
+ * - Visual feedback for selected/hover states
140
+ * - Keyboard accessible
141
+ */
142
+ declare const TagInput: React__default.FC<TagInputProps>;
143
+
144
+ /**
145
+ * WorkflowLoadingSkeleton Component
146
+ *
147
+ * Shows persistent skeleton during INITIALIZING and PROCESSING phases.
148
+ * Features:
149
+ * - Indeterminate progress bar for INITIALIZING phase
150
+ * - Determinate progress bar for PROCESSING phase (when steps are known)
151
+ * - Current activity message display
152
+ * - Step counter when totalSteps > 0
153
+ * - Divide-by-zero protection for percentage calculation
154
+ * - Minimum display duration (100ms delay) to prevent flash
155
+ */
156
+ interface WorkflowLoadingSkeletonProps {
157
+ /** Current workflow phase (e.g. "INITIALIZING", "PROCESSING") */
158
+ phase: string;
159
+ /** Progress state with step tracking and percentage */
160
+ progress: {
161
+ currentStep: number;
162
+ totalSteps: number;
163
+ currentActivity: string;
164
+ percentage: number;
165
+ };
166
+ }
167
+ /**
168
+ * WorkflowLoadingSkeleton shows a persistent loading state during workflow execution.
169
+ * Adapts visual presentation based on current phase and available progress data.
170
+ */
171
+ declare function WorkflowLoadingSkeleton({ phase, progress, }: WorkflowLoadingSkeletonProps): react_jsx_runtime.JSX.Element | null;
172
+
173
+ /**
174
+ * AuthButton Component
175
+ *
176
+ * Button component with primary/secondary variants, loading states, and disabled states
177
+ */
178
+
179
+ interface AuthButtonProps {
180
+ children: React__default.ReactNode;
181
+ onClick?: () => void;
182
+ type?: "button" | "submit" | "reset";
183
+ variant?: "primary" | "secondary";
184
+ loading?: boolean;
185
+ loadingText?: string;
186
+ disabled?: boolean;
187
+ fullWidth?: boolean;
188
+ icon?: React__default.ReactNode;
189
+ className?: string;
190
+ "data-testid"?: string;
191
+ }
192
+ declare const AuthButton: React__default.FC<AuthButtonProps>;
193
+
194
+ /**
195
+ * AuthInput Component
196
+ *
197
+ * Reusable input field with validation states and error display
198
+ * Uses react-aria for accessibility and styled-components for styling
199
+ */
200
+
201
+ interface AuthInputProps {
202
+ label: string;
203
+ name: string;
204
+ type?: "text" | "email" | "tel" | "password";
205
+ value?: string;
206
+ placeholder?: string;
207
+ error?: string;
208
+ required?: boolean;
209
+ disabled?: boolean;
210
+ autoFocus?: boolean;
211
+ autoComplete?: string;
212
+ /** Prevents browser autofill using readonly workaround (for OTP/verification codes) */
213
+ disableAutofill?: boolean;
214
+ /** Maximum number of characters allowed */
215
+ maxLength?: number;
216
+ /** Input mode for mobile keyboard (e.g., "numeric" for number pad) */
217
+ inputMode?: "text" | "numeric" | "tel" | "email" | "decimal";
218
+ className?: string;
219
+ onChange?: (value: string) => void;
220
+ onBlur?: () => void;
221
+ onValidate?: () => void;
222
+ validateOnBlur?: boolean;
223
+ "data-testid"?: string;
224
+ }
225
+ declare const AuthInput: React__default.FC<AuthInputProps>;
226
+
227
+ /**
228
+ * PasswordInput Component
229
+ *
230
+ * Password input with show/hide toggle icon
231
+ * Inherits from AuthInput with additional password-specific features
232
+ */
233
+
234
+ interface PasswordInputProps extends Omit<AuthInputProps, "type"> {
235
+ clearOnError?: boolean;
236
+ minLength?: number;
237
+ hintText?: string;
238
+ }
239
+ declare const PasswordInput: React__default.FC<PasswordInputProps>;
240
+
241
+ /**
242
+ * SuccessToast Component
243
+ *
244
+ * Displays success notifications with auto-dismiss functionality
245
+ * Styled with green colors for positive feedback
246
+ */
247
+
248
+ interface SuccessToastProps {
249
+ message: string | null;
250
+ onDismiss: () => void;
251
+ autoDismiss?: boolean;
252
+ autoDismissDelay?: number;
253
+ }
254
+ declare const SuccessToast: React__default.FC<SuccessToastProps>;
255
+
256
+ /**
257
+ * ErrorBanner Component
258
+ *
259
+ * Global connectivity error banner that appears at the top of the viewport
260
+ * Displays when the app is offline and automatically dismisses on reconnect
261
+ */
262
+
263
+ interface ErrorBannerProps {
264
+ isOnline: boolean;
265
+ message?: string;
266
+ }
267
+ /**
268
+ * ErrorBanner component displays connectivity errors
269
+ *
270
+ * @param isOnline - Network connectivity status
271
+ * @param message - Optional custom error message (defaults to "No internet connection")
272
+ */
273
+ declare const ErrorBanner: React__default.FC<ErrorBannerProps>;
274
+
102
275
  interface NotificationItem {
103
276
  /** Unique identifier for the item */
104
277
  id: string;
@@ -739,4 +912,56 @@ interface TokenUsageCardProps {
739
912
  }
740
913
  declare function TokenUsageCard({ currentUsage, maxLimit, transactions, periodLabel, onViewAll, className, loading, }: TokenUsageCardProps): React__default.ReactElement;
741
914
 
742
- export { type ApprovalStatus, AssistantThinking, type AssistantThinkingProps, type BillingPeriod, BillingToggle, type BillingToggleProps, CATEGORY_CONFIGS, type CategoryConfig, ChatInput, type ChatInputProps, ConnectionStatusBadge, type ConnectionStatusBadgeProps, DarkNotificationCard, type EngagementOpportunity, type EngagementStatus, IntegrationCard, type IntegrationCardProps, NotificationCard, type NotificationCardProps, type NotificationItem, type NotificationSection, PLATFORM_CONFIGS, type Platform, PlatformCarousel, type PlatformCarouselProps, type PlatformConfig, PlatformGrid, type PlatformGridProps, PostApprovalControls, type PostApprovalControlsProps, PostPreviewCard, type PostPreviewCardProps, type PostViewMode, type ProgressCategory, type ProposedPost, RedditEngagementControls, type RedditEngagementControlsProps, RedditOpportunityCard, type RedditOpportunityCardProps, type ReplyTone, SecretInput, type SecretInputProps, SocialMediaCanvas, type SocialMediaCanvasProps, type TokenTransaction, TokenUsageCard, type TokenUsageCardProps, TrialPlanCard, type TrialPlanCardProps, UserMessage, type UserMessageProps, categorizeProgress, getCategoryColor, getCategoryIcon, getCharacterCount, getCharacterLimitColor, getCharacterLimitPercentage, isWithinCharLimit, normalizePlatform };
915
+ /**
916
+ * useLocalStorage Hook
917
+ *
918
+ * Generic hook for localStorage persistence with type safety
919
+ * Provides state management with automatic localStorage sync
920
+ */
921
+ /**
922
+ * Custom hook for managing state with localStorage persistence
923
+ * @param key - localStorage key to store the value under
924
+ * @param initialValue - initial value to use if no stored value exists
925
+ * @returns tuple of [value, setValue] similar to useState
926
+ */
927
+ declare function useLocalStorage<T>(key: string, initialValue: T): [T, (value: T | ((prev: T) => T)) => void];
928
+
929
+ /**
930
+ * useNetworkStatus Hook - Detects network connectivity changes
931
+ *
932
+ * Uses two detection methods:
933
+ * 1. Browser online/offline events (instant, works on desktop)
934
+ * 2. Ping-based check (fallback for Android WebView where browser events don't fire)
935
+ *
936
+ * @param healthEndpoint - Optional URL to ping for connectivity checks (used in Tauri/WebView environments)
937
+ */
938
+ declare function useNetworkStatus(healthEndpoint?: string): boolean;
939
+
940
+ /**
941
+ * Hook to detect mobile landscape orientation
942
+ * Returns true when device is in landscape mode with limited height (mobile)
943
+ */
944
+ declare function useIsLandscape(): boolean;
945
+
946
+ /**
947
+ * Keyboard Detection Hook
948
+ * Implements keyboard visibility detection and height calculation
949
+ * Per spec section 3.3: Keyboard Detection & Override
950
+ */
951
+ interface KeyboardState {
952
+ isVisible: boolean;
953
+ height: number;
954
+ viewportOffsetTop: number;
955
+ }
956
+ /**
957
+ * Hook to detect virtual keyboard visibility and height on mobile devices
958
+ * Uses Visual Viewport API where available, with fallback methods
959
+ */
960
+ declare const useKeyboardDetection: () => KeyboardState;
961
+ /**
962
+ * Utility function to check if the device is mobile
963
+ * Checks for touch capability and mobile user agents
964
+ */
965
+ declare const isMobileDevice: () => boolean;
966
+
967
+ export { type ApprovalStatus, AssistantThinking, type AssistantThinkingProps, AuthButton, type AuthButtonProps, AuthInput, type AuthInputProps, type BillingPeriod, BillingToggle, type BillingToggleProps, CATEGORY_CONFIGS, type CategoryConfig, ChatInput, type ChatInputProps, ConnectionStatusBadge, type ConnectionStatusBadgeProps, DarkNotificationCard, type EngagementOpportunity, type EngagementStatus, ErrorBanner, type ErrorBannerProps, IntegrationCard, type IntegrationCardProps, NotificationCard, type NotificationCardProps, type NotificationItem, type NotificationSection, PLATFORM_CONFIGS, PasswordInput, type PasswordInputProps, type Platform, PlatformCarousel, type PlatformCarouselProps, type PlatformConfig, PlatformGrid, type PlatformGridProps, PostApprovalControls, type PostApprovalControlsProps, PostPreviewCard, type PostPreviewCardProps, type PostViewMode, type ProgressCategory, type ProposedPost, RedditEngagementControls, type RedditEngagementControlsProps, RedditOpportunityCard, type RedditOpportunityCardProps, type ReplyTone, SecretInput, type SecretInputProps, SocialMediaCanvas, type SocialMediaCanvasProps, SuccessToast, type SuccessToastProps, TagInput, type TagInputProps, type TokenTransaction, TokenUsageCard, type TokenUsageCardProps, TrialPlanCard, type TrialPlanCardProps, UserMessage, type UserMessageProps, WorkflowLoadingSkeleton, type WorkflowLoadingSkeletonProps, categorizeProgress, getCategoryColor, getCategoryIcon, getCharacterCount, getCharacterLimitColor, getCharacterLimitPercentage, isMobileDevice, isWithinCharLimit, normalizePlatform, useIsLandscape, useKeyboardDetection, useLocalStorage, useNetworkStatus };