@agentiffai/design 1.5.2 → 1.5.4

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
@@ -7,7 +7,7 @@ import { AriaButtonProps } from '@react-aria/button';
7
7
  export { GlobalStyle, darkTheme, lightTheme, tokens } from './theme/index.cjs';
8
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 { b as FacebookIcon, F as FacebookIconProps, a as FacebookIconVariant, d as GmailIcon, G as GmailIconProps, c as GmailIconVariant, f as InstagramIcon, I as InstagramIconProps, e as InstagramVariant, h as LinkedInIcon, L as LinkedInIconProps, g as LinkedInIconVariant, j as PostizIcon, P as PostizIconProps, i as PostizIconVariant, l as RedditIcon, R as RedditIconProps, k as RedditIconVariant, n as SlackIcon, S as SlackIconProps, m as SlackIconVariant, p as TelegramIcon, T as TelegramIconProps, o as TelegramIconVariant, s as TwilioIcon, q as TwilioIconProps, r as TwilioIconVariant, u as WhatsAppIcon, W as WhatsAppIconProps, t as WhatsAppIconVariant, w as XIcon, X as XIconProps, v as XIconVariant, y as YouTubeIcon, Y as YouTubeIconProps, x as YouTubeIconVariant } from './YouTubeIcon-B7Y2MfN5.cjs';
10
- export { WorkflowCard, WorkflowCardProps, WorkflowErrorAlert, WorkflowErrorAlertProps, WorkflowIntegration, WorkflowProgressBar, WorkflowProgressBarProps, WorkflowResultPanel, WorkflowResultPanelProps, WorkflowStatusBadge, WorkflowStatusBadgeProps } from './workflow/index.cjs';
10
+ export { b as WorkflowCard, W as WorkflowCardProps, d as WorkflowErrorAlert, c as WorkflowErrorAlertProps, a as WorkflowIntegration, f as WorkflowProgressBar, e as WorkflowProgressBarProps, h as WorkflowResultPanel, g as WorkflowResultPanelProps, j as WorkflowStatusBadge, i as WorkflowStatusBadgeProps } from './WorkflowStatusBadge-47sYxc2F.cjs';
11
11
  import '@react-types/button';
12
12
  import 'styled-components';
13
13
  import '@copilotkit/react-ui';
@@ -170,6 +170,173 @@ interface WorkflowLoadingSkeletonProps {
170
170
  */
171
171
  declare function WorkflowLoadingSkeleton({ phase, progress, }: WorkflowLoadingSkeletonProps): react_jsx_runtime.JSX.Element | null;
172
172
 
173
+ /**
174
+ * Reddit Engagement Types
175
+ *
176
+ * Type definitions for Reddit GEO engagement components.
177
+ * Extends existing social-media types for compatibility.
178
+ */
179
+ /**
180
+ * Tone classifications for Reddit replies
181
+ */
182
+ type ReplyTone = 'casual' | 'professional' | 'technical' | 'supportive' | 'humorous';
183
+ /**
184
+ * Status of an engagement opportunity in the queue
185
+ */
186
+ type EngagementStatus = 'pending' | 'posted' | 'skipped' | 'expired' | 'editing';
187
+ /**
188
+ * A Reddit post discovered for potential engagement
189
+ */
190
+ interface EngagementOpportunity {
191
+ /** Unique identifier for this opportunity */
192
+ id: string;
193
+ /** Reddit's post ID (t3_xxxx format) */
194
+ postId: string;
195
+ /** Subreddit name (without r/) */
196
+ subreddit: string;
197
+ /** Post title */
198
+ title: string;
199
+ /** Post body content (selftext) or URL for link posts */
200
+ postContent: string;
201
+ /** Full URL to the Reddit post */
202
+ postUrl: string;
203
+ /** Author username (without u/) */
204
+ postAuthor: string;
205
+ /** Current upvote score */
206
+ postScore: number;
207
+ /** Number of comments */
208
+ postNumComments: number;
209
+ /** Post creation timestamp */
210
+ postCreatedAt: string;
211
+ /** AI-generated draft reply */
212
+ draftReply: string;
213
+ /** User-edited version of the reply (if modified) */
214
+ editedReply?: string;
215
+ /** AI engagement quality score (1-10) */
216
+ engagementScore: number;
217
+ /** Detected/recommended tone for reply */
218
+ toneMatch: ReplyTone;
219
+ /** AI's strategy explanation for the reply */
220
+ strategy: string;
221
+ /** Current status in workflow */
222
+ status: EngagementStatus;
223
+ /** When this opportunity was discovered */
224
+ createdAt: string;
225
+ /** When the reply was posted (if applicable) */
226
+ postedAt?: string;
227
+ /** When skipped (if applicable) */
228
+ skippedAt?: string;
229
+ /** Reason for skipping (if applicable) */
230
+ skipReason?: string;
231
+ /** Post flair if any */
232
+ flair?: string;
233
+ /** Whether post is marked NSFW */
234
+ isNsfw?: boolean;
235
+ /** Whether post is a self/text post */
236
+ isSelfPost?: boolean;
237
+ }
238
+ /**
239
+ * Props for the RedditOpportunityCard component
240
+ */
241
+ interface RedditOpportunityCardProps {
242
+ /** The engagement opportunity to display */
243
+ opportunity: EngagementOpportunity;
244
+ /** Whether this card is currently active/focused */
245
+ isActive?: boolean;
246
+ /** Whether currently in edit mode */
247
+ isEditing?: boolean;
248
+ /** Current edited content (controlled) */
249
+ editContent?: string;
250
+ /** Callback when content changes during editing */
251
+ onContentChange?: (content: string) => void;
252
+ /** Show loading skeleton */
253
+ isLoading?: boolean;
254
+ /** Whether to show condensed view */
255
+ condensed?: boolean;
256
+ }
257
+ /**
258
+ * Props for the RedditEngagementControls component
259
+ */
260
+ interface RedditEngagementControlsProps {
261
+ /** The opportunity being controlled */
262
+ opportunity: EngagementOpportunity;
263
+ /** Current reply content (draft or edited) */
264
+ currentReply: string;
265
+ /** Whether in edit mode */
266
+ isEditing: boolean;
267
+ /** Toggle edit mode */
268
+ onToggleEdit: () => void;
269
+ /** Save edits */
270
+ onSaveEdit: (content: string) => void;
271
+ /** Cancel editing */
272
+ onCancelEdit: () => void;
273
+ /** Copy reply and open post */
274
+ onCopyAndOpen: () => void;
275
+ /** Mark as posted */
276
+ onMarkPosted: () => void;
277
+ /** Skip this opportunity */
278
+ onSkip: (reason?: string) => void;
279
+ /** Regenerate AI reply */
280
+ onRegenerate: (feedback?: string) => void;
281
+ /** Whether actions are disabled */
282
+ isLoading?: boolean;
283
+ /** Whether copy was just performed (for feedback) */
284
+ justCopied?: boolean;
285
+ }
286
+
287
+ interface WorkflowSandboxPrompt {
288
+ label: string;
289
+ message: string;
290
+ }
291
+ interface WorkflowSandboxToolStep {
292
+ id: string;
293
+ label: string;
294
+ detail?: string;
295
+ durationMs?: number;
296
+ }
297
+ interface WorkflowSandboxArtifactField {
298
+ label: string;
299
+ value: string;
300
+ tone?: 'default' | 'success' | 'warning';
301
+ }
302
+ interface WorkflowSandboxArtifactCard {
303
+ title: string;
304
+ eyebrow?: string;
305
+ body: string;
306
+ fields?: WorkflowSandboxArtifactField[];
307
+ }
308
+ interface WorkflowSandboxScenario {
309
+ workflowKind?: 'social-posts' | 'reddit-engagement' | 'generic-results';
310
+ eyebrow?: string;
311
+ title: string;
312
+ subtitle?: string;
313
+ initialMessage: string;
314
+ prompts: WorkflowSandboxPrompt[];
315
+ assistantIntro: string;
316
+ assistantComplete: string;
317
+ toolSteps: WorkflowSandboxToolStep[];
318
+ resultTitle: string;
319
+ resultSubtitle?: string;
320
+ artifacts: WorkflowSandboxArtifactCard[];
321
+ redditOpportunities?: EngagementOpportunity[];
322
+ resultData?: unknown;
323
+ resultVariant?: 'json' | 'formatted' | 'table';
324
+ primaryCta?: {
325
+ label: string;
326
+ href: string;
327
+ };
328
+ secondaryCta?: {
329
+ label: string;
330
+ href: string;
331
+ };
332
+ }
333
+ interface WorkflowSandboxDemoProps {
334
+ scenario: WorkflowSandboxScenario;
335
+ autoStart?: boolean;
336
+ className?: string;
337
+ }
338
+ declare const WorkflowSandboxDemo: React__default.FC<WorkflowSandboxDemoProps>;
339
+
173
340
  /**
174
341
  * AuthButton Component
175
342
  *
@@ -794,120 +961,6 @@ interface SocialMediaCanvasProps {
794
961
  */
795
962
  declare const SocialMediaCanvas: React__default.FC<SocialMediaCanvasProps>;
796
963
 
797
- /**
798
- * Reddit Engagement Types
799
- *
800
- * Type definitions for Reddit GEO engagement components.
801
- * Extends existing social-media types for compatibility.
802
- */
803
- /**
804
- * Tone classifications for Reddit replies
805
- */
806
- type ReplyTone = 'casual' | 'professional' | 'technical' | 'supportive' | 'humorous';
807
- /**
808
- * Status of an engagement opportunity in the queue
809
- */
810
- type EngagementStatus = 'pending' | 'posted' | 'skipped' | 'expired' | 'editing';
811
- /**
812
- * A Reddit post discovered for potential engagement
813
- */
814
- interface EngagementOpportunity {
815
- /** Unique identifier for this opportunity */
816
- id: string;
817
- /** Reddit's post ID (t3_xxxx format) */
818
- postId: string;
819
- /** Subreddit name (without r/) */
820
- subreddit: string;
821
- /** Post title */
822
- title: string;
823
- /** Post body content (selftext) or URL for link posts */
824
- postContent: string;
825
- /** Full URL to the Reddit post */
826
- postUrl: string;
827
- /** Author username (without u/) */
828
- postAuthor: string;
829
- /** Current upvote score */
830
- postScore: number;
831
- /** Number of comments */
832
- postNumComments: number;
833
- /** Post creation timestamp */
834
- postCreatedAt: string;
835
- /** AI-generated draft reply */
836
- draftReply: string;
837
- /** User-edited version of the reply (if modified) */
838
- editedReply?: string;
839
- /** AI engagement quality score (1-10) */
840
- engagementScore: number;
841
- /** Detected/recommended tone for reply */
842
- toneMatch: ReplyTone;
843
- /** AI's strategy explanation for the reply */
844
- strategy: string;
845
- /** Current status in workflow */
846
- status: EngagementStatus;
847
- /** When this opportunity was discovered */
848
- createdAt: string;
849
- /** When the reply was posted (if applicable) */
850
- postedAt?: string;
851
- /** When skipped (if applicable) */
852
- skippedAt?: string;
853
- /** Reason for skipping (if applicable) */
854
- skipReason?: string;
855
- /** Post flair if any */
856
- flair?: string;
857
- /** Whether post is marked NSFW */
858
- isNsfw?: boolean;
859
- /** Whether post is a self/text post */
860
- isSelfPost?: boolean;
861
- }
862
- /**
863
- * Props for the RedditOpportunityCard component
864
- */
865
- interface RedditOpportunityCardProps {
866
- /** The engagement opportunity to display */
867
- opportunity: EngagementOpportunity;
868
- /** Whether this card is currently active/focused */
869
- isActive?: boolean;
870
- /** Whether currently in edit mode */
871
- isEditing?: boolean;
872
- /** Current edited content (controlled) */
873
- editContent?: string;
874
- /** Callback when content changes during editing */
875
- onContentChange?: (content: string) => void;
876
- /** Show loading skeleton */
877
- isLoading?: boolean;
878
- /** Whether to show condensed view */
879
- condensed?: boolean;
880
- }
881
- /**
882
- * Props for the RedditEngagementControls component
883
- */
884
- interface RedditEngagementControlsProps {
885
- /** The opportunity being controlled */
886
- opportunity: EngagementOpportunity;
887
- /** Current reply content (draft or edited) */
888
- currentReply: string;
889
- /** Whether in edit mode */
890
- isEditing: boolean;
891
- /** Toggle edit mode */
892
- onToggleEdit: () => void;
893
- /** Save edits */
894
- onSaveEdit: (content: string) => void;
895
- /** Cancel editing */
896
- onCancelEdit: () => void;
897
- /** Copy reply and open post */
898
- onCopyAndOpen: () => void;
899
- /** Mark as posted */
900
- onMarkPosted: () => void;
901
- /** Skip this opportunity */
902
- onSkip: (reason?: string) => void;
903
- /** Regenerate AI reply */
904
- onRegenerate: (feedback?: string) => void;
905
- /** Whether actions are disabled */
906
- isLoading?: boolean;
907
- /** Whether copy was just performed (for feedback) */
908
- justCopied?: boolean;
909
- }
910
-
911
964
  /**
912
965
  * RedditOpportunityCard Component
913
966
  *
@@ -1012,4 +1065,4 @@ declare const useKeyboardDetection: () => KeyboardState;
1012
1065
  */
1013
1066
  declare const isMobileDevice: () => boolean;
1014
1067
 
1015
- 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, ErrorToast, type ErrorToastProps, 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 };
1068
+ 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, ErrorToast, type ErrorToastProps, 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, type WorkflowSandboxArtifactCard, type WorkflowSandboxArtifactField, WorkflowSandboxDemo, type WorkflowSandboxDemoProps, type WorkflowSandboxPrompt, type WorkflowSandboxScenario, type WorkflowSandboxToolStep, categorizeProgress, getCategoryColor, getCategoryIcon, getCharacterCount, getCharacterLimitColor, getCharacterLimitPercentage, isMobileDevice, isWithinCharLimit, normalizePlatform, useIsLandscape, useKeyboardDetection, useLocalStorage, useNetworkStatus };
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { AriaButtonProps } from '@react-aria/button';
7
7
  export { GlobalStyle, darkTheme, lightTheme, tokens } from './theme/index.js';
8
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 { b as FacebookIcon, F as FacebookIconProps, a as FacebookIconVariant, d as GmailIcon, G as GmailIconProps, c as GmailIconVariant, f as InstagramIcon, I as InstagramIconProps, e as InstagramVariant, h as LinkedInIcon, L as LinkedInIconProps, g as LinkedInIconVariant, j as PostizIcon, P as PostizIconProps, i as PostizIconVariant, l as RedditIcon, R as RedditIconProps, k as RedditIconVariant, n as SlackIcon, S as SlackIconProps, m as SlackIconVariant, p as TelegramIcon, T as TelegramIconProps, o as TelegramIconVariant, s as TwilioIcon, q as TwilioIconProps, r as TwilioIconVariant, u as WhatsAppIcon, W as WhatsAppIconProps, t as WhatsAppIconVariant, w as XIcon, X as XIconProps, v as XIconVariant, y as YouTubeIcon, Y as YouTubeIconProps, x as YouTubeIconVariant } from './YouTubeIcon-B7Y2MfN5.js';
10
- export { WorkflowCard, WorkflowCardProps, WorkflowErrorAlert, WorkflowErrorAlertProps, WorkflowIntegration, WorkflowProgressBar, WorkflowProgressBarProps, WorkflowResultPanel, WorkflowResultPanelProps, WorkflowStatusBadge, WorkflowStatusBadgeProps } from './workflow/index.js';
10
+ export { b as WorkflowCard, W as WorkflowCardProps, d as WorkflowErrorAlert, c as WorkflowErrorAlertProps, a as WorkflowIntegration, f as WorkflowProgressBar, e as WorkflowProgressBarProps, h as WorkflowResultPanel, g as WorkflowResultPanelProps, j as WorkflowStatusBadge, i as WorkflowStatusBadgeProps } from './WorkflowStatusBadge-47sYxc2F.js';
11
11
  import '@react-types/button';
12
12
  import 'styled-components';
13
13
  import '@copilotkit/react-ui';
@@ -170,6 +170,173 @@ interface WorkflowLoadingSkeletonProps {
170
170
  */
171
171
  declare function WorkflowLoadingSkeleton({ phase, progress, }: WorkflowLoadingSkeletonProps): react_jsx_runtime.JSX.Element | null;
172
172
 
173
+ /**
174
+ * Reddit Engagement Types
175
+ *
176
+ * Type definitions for Reddit GEO engagement components.
177
+ * Extends existing social-media types for compatibility.
178
+ */
179
+ /**
180
+ * Tone classifications for Reddit replies
181
+ */
182
+ type ReplyTone = 'casual' | 'professional' | 'technical' | 'supportive' | 'humorous';
183
+ /**
184
+ * Status of an engagement opportunity in the queue
185
+ */
186
+ type EngagementStatus = 'pending' | 'posted' | 'skipped' | 'expired' | 'editing';
187
+ /**
188
+ * A Reddit post discovered for potential engagement
189
+ */
190
+ interface EngagementOpportunity {
191
+ /** Unique identifier for this opportunity */
192
+ id: string;
193
+ /** Reddit's post ID (t3_xxxx format) */
194
+ postId: string;
195
+ /** Subreddit name (without r/) */
196
+ subreddit: string;
197
+ /** Post title */
198
+ title: string;
199
+ /** Post body content (selftext) or URL for link posts */
200
+ postContent: string;
201
+ /** Full URL to the Reddit post */
202
+ postUrl: string;
203
+ /** Author username (without u/) */
204
+ postAuthor: string;
205
+ /** Current upvote score */
206
+ postScore: number;
207
+ /** Number of comments */
208
+ postNumComments: number;
209
+ /** Post creation timestamp */
210
+ postCreatedAt: string;
211
+ /** AI-generated draft reply */
212
+ draftReply: string;
213
+ /** User-edited version of the reply (if modified) */
214
+ editedReply?: string;
215
+ /** AI engagement quality score (1-10) */
216
+ engagementScore: number;
217
+ /** Detected/recommended tone for reply */
218
+ toneMatch: ReplyTone;
219
+ /** AI's strategy explanation for the reply */
220
+ strategy: string;
221
+ /** Current status in workflow */
222
+ status: EngagementStatus;
223
+ /** When this opportunity was discovered */
224
+ createdAt: string;
225
+ /** When the reply was posted (if applicable) */
226
+ postedAt?: string;
227
+ /** When skipped (if applicable) */
228
+ skippedAt?: string;
229
+ /** Reason for skipping (if applicable) */
230
+ skipReason?: string;
231
+ /** Post flair if any */
232
+ flair?: string;
233
+ /** Whether post is marked NSFW */
234
+ isNsfw?: boolean;
235
+ /** Whether post is a self/text post */
236
+ isSelfPost?: boolean;
237
+ }
238
+ /**
239
+ * Props for the RedditOpportunityCard component
240
+ */
241
+ interface RedditOpportunityCardProps {
242
+ /** The engagement opportunity to display */
243
+ opportunity: EngagementOpportunity;
244
+ /** Whether this card is currently active/focused */
245
+ isActive?: boolean;
246
+ /** Whether currently in edit mode */
247
+ isEditing?: boolean;
248
+ /** Current edited content (controlled) */
249
+ editContent?: string;
250
+ /** Callback when content changes during editing */
251
+ onContentChange?: (content: string) => void;
252
+ /** Show loading skeleton */
253
+ isLoading?: boolean;
254
+ /** Whether to show condensed view */
255
+ condensed?: boolean;
256
+ }
257
+ /**
258
+ * Props for the RedditEngagementControls component
259
+ */
260
+ interface RedditEngagementControlsProps {
261
+ /** The opportunity being controlled */
262
+ opportunity: EngagementOpportunity;
263
+ /** Current reply content (draft or edited) */
264
+ currentReply: string;
265
+ /** Whether in edit mode */
266
+ isEditing: boolean;
267
+ /** Toggle edit mode */
268
+ onToggleEdit: () => void;
269
+ /** Save edits */
270
+ onSaveEdit: (content: string) => void;
271
+ /** Cancel editing */
272
+ onCancelEdit: () => void;
273
+ /** Copy reply and open post */
274
+ onCopyAndOpen: () => void;
275
+ /** Mark as posted */
276
+ onMarkPosted: () => void;
277
+ /** Skip this opportunity */
278
+ onSkip: (reason?: string) => void;
279
+ /** Regenerate AI reply */
280
+ onRegenerate: (feedback?: string) => void;
281
+ /** Whether actions are disabled */
282
+ isLoading?: boolean;
283
+ /** Whether copy was just performed (for feedback) */
284
+ justCopied?: boolean;
285
+ }
286
+
287
+ interface WorkflowSandboxPrompt {
288
+ label: string;
289
+ message: string;
290
+ }
291
+ interface WorkflowSandboxToolStep {
292
+ id: string;
293
+ label: string;
294
+ detail?: string;
295
+ durationMs?: number;
296
+ }
297
+ interface WorkflowSandboxArtifactField {
298
+ label: string;
299
+ value: string;
300
+ tone?: 'default' | 'success' | 'warning';
301
+ }
302
+ interface WorkflowSandboxArtifactCard {
303
+ title: string;
304
+ eyebrow?: string;
305
+ body: string;
306
+ fields?: WorkflowSandboxArtifactField[];
307
+ }
308
+ interface WorkflowSandboxScenario {
309
+ workflowKind?: 'social-posts' | 'reddit-engagement' | 'generic-results';
310
+ eyebrow?: string;
311
+ title: string;
312
+ subtitle?: string;
313
+ initialMessage: string;
314
+ prompts: WorkflowSandboxPrompt[];
315
+ assistantIntro: string;
316
+ assistantComplete: string;
317
+ toolSteps: WorkflowSandboxToolStep[];
318
+ resultTitle: string;
319
+ resultSubtitle?: string;
320
+ artifacts: WorkflowSandboxArtifactCard[];
321
+ redditOpportunities?: EngagementOpportunity[];
322
+ resultData?: unknown;
323
+ resultVariant?: 'json' | 'formatted' | 'table';
324
+ primaryCta?: {
325
+ label: string;
326
+ href: string;
327
+ };
328
+ secondaryCta?: {
329
+ label: string;
330
+ href: string;
331
+ };
332
+ }
333
+ interface WorkflowSandboxDemoProps {
334
+ scenario: WorkflowSandboxScenario;
335
+ autoStart?: boolean;
336
+ className?: string;
337
+ }
338
+ declare const WorkflowSandboxDemo: React__default.FC<WorkflowSandboxDemoProps>;
339
+
173
340
  /**
174
341
  * AuthButton Component
175
342
  *
@@ -794,120 +961,6 @@ interface SocialMediaCanvasProps {
794
961
  */
795
962
  declare const SocialMediaCanvas: React__default.FC<SocialMediaCanvasProps>;
796
963
 
797
- /**
798
- * Reddit Engagement Types
799
- *
800
- * Type definitions for Reddit GEO engagement components.
801
- * Extends existing social-media types for compatibility.
802
- */
803
- /**
804
- * Tone classifications for Reddit replies
805
- */
806
- type ReplyTone = 'casual' | 'professional' | 'technical' | 'supportive' | 'humorous';
807
- /**
808
- * Status of an engagement opportunity in the queue
809
- */
810
- type EngagementStatus = 'pending' | 'posted' | 'skipped' | 'expired' | 'editing';
811
- /**
812
- * A Reddit post discovered for potential engagement
813
- */
814
- interface EngagementOpportunity {
815
- /** Unique identifier for this opportunity */
816
- id: string;
817
- /** Reddit's post ID (t3_xxxx format) */
818
- postId: string;
819
- /** Subreddit name (without r/) */
820
- subreddit: string;
821
- /** Post title */
822
- title: string;
823
- /** Post body content (selftext) or URL for link posts */
824
- postContent: string;
825
- /** Full URL to the Reddit post */
826
- postUrl: string;
827
- /** Author username (without u/) */
828
- postAuthor: string;
829
- /** Current upvote score */
830
- postScore: number;
831
- /** Number of comments */
832
- postNumComments: number;
833
- /** Post creation timestamp */
834
- postCreatedAt: string;
835
- /** AI-generated draft reply */
836
- draftReply: string;
837
- /** User-edited version of the reply (if modified) */
838
- editedReply?: string;
839
- /** AI engagement quality score (1-10) */
840
- engagementScore: number;
841
- /** Detected/recommended tone for reply */
842
- toneMatch: ReplyTone;
843
- /** AI's strategy explanation for the reply */
844
- strategy: string;
845
- /** Current status in workflow */
846
- status: EngagementStatus;
847
- /** When this opportunity was discovered */
848
- createdAt: string;
849
- /** When the reply was posted (if applicable) */
850
- postedAt?: string;
851
- /** When skipped (if applicable) */
852
- skippedAt?: string;
853
- /** Reason for skipping (if applicable) */
854
- skipReason?: string;
855
- /** Post flair if any */
856
- flair?: string;
857
- /** Whether post is marked NSFW */
858
- isNsfw?: boolean;
859
- /** Whether post is a self/text post */
860
- isSelfPost?: boolean;
861
- }
862
- /**
863
- * Props for the RedditOpportunityCard component
864
- */
865
- interface RedditOpportunityCardProps {
866
- /** The engagement opportunity to display */
867
- opportunity: EngagementOpportunity;
868
- /** Whether this card is currently active/focused */
869
- isActive?: boolean;
870
- /** Whether currently in edit mode */
871
- isEditing?: boolean;
872
- /** Current edited content (controlled) */
873
- editContent?: string;
874
- /** Callback when content changes during editing */
875
- onContentChange?: (content: string) => void;
876
- /** Show loading skeleton */
877
- isLoading?: boolean;
878
- /** Whether to show condensed view */
879
- condensed?: boolean;
880
- }
881
- /**
882
- * Props for the RedditEngagementControls component
883
- */
884
- interface RedditEngagementControlsProps {
885
- /** The opportunity being controlled */
886
- opportunity: EngagementOpportunity;
887
- /** Current reply content (draft or edited) */
888
- currentReply: string;
889
- /** Whether in edit mode */
890
- isEditing: boolean;
891
- /** Toggle edit mode */
892
- onToggleEdit: () => void;
893
- /** Save edits */
894
- onSaveEdit: (content: string) => void;
895
- /** Cancel editing */
896
- onCancelEdit: () => void;
897
- /** Copy reply and open post */
898
- onCopyAndOpen: () => void;
899
- /** Mark as posted */
900
- onMarkPosted: () => void;
901
- /** Skip this opportunity */
902
- onSkip: (reason?: string) => void;
903
- /** Regenerate AI reply */
904
- onRegenerate: (feedback?: string) => void;
905
- /** Whether actions are disabled */
906
- isLoading?: boolean;
907
- /** Whether copy was just performed (for feedback) */
908
- justCopied?: boolean;
909
- }
910
-
911
964
  /**
912
965
  * RedditOpportunityCard Component
913
966
  *
@@ -1012,4 +1065,4 @@ declare const useKeyboardDetection: () => KeyboardState;
1012
1065
  */
1013
1066
  declare const isMobileDevice: () => boolean;
1014
1067
 
1015
- 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, ErrorToast, type ErrorToastProps, 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 };
1068
+ 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, ErrorToast, type ErrorToastProps, 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, type WorkflowSandboxArtifactCard, type WorkflowSandboxArtifactField, WorkflowSandboxDemo, type WorkflowSandboxDemoProps, type WorkflowSandboxPrompt, type WorkflowSandboxScenario, type WorkflowSandboxToolStep, categorizeProgress, getCategoryColor, getCategoryIcon, getCharacterCount, getCharacterLimitColor, getCharacterLimitPercentage, isMobileDevice, isWithinCharLimit, normalizePlatform, useIsLandscape, useKeyboardDetection, useLocalStorage, useNetworkStatus };