@factorialco/f0-react 1.415.0 → 1.416.1

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/ai.d.ts CHANGED
@@ -1,15 +1,13 @@
1
1
  import { AgentState } from '@livekit/components-react';
2
2
  import { AIMessage } from '@copilotkit/shared';
3
- import { AssistantMessageProps } from '@copilotkit/react-ui';
4
3
  import { ClassValue } from 'cva';
5
4
  import { ComponentProps } from 'react';
6
- import { Context } from 'react';
7
5
  import { CopilotKitProps } from '@copilotkit/react-core';
8
6
  import { ForwardRefExoticComponent } from 'react';
7
+ import { InputProps } from '@copilotkit/react-ui';
9
8
  import { JSX as JSX_2 } from 'react';
10
9
  import { LocalAudioTrack } from 'livekit-client';
11
10
  import { Message } from '@copilotkit/shared';
12
- import { MessagesProps } from '@copilotkit/react-ui';
13
11
  import { ReactNode } from 'react';
14
12
  import { RefAttributes } from 'react';
15
13
  import { RemoteAudioTrack } from 'livekit-client';
@@ -18,15 +16,32 @@ import * as SwitchPrimitive from '@radix-ui/react-switch';
18
16
  import { TrackReferenceOrPlaceholder } from '@livekit/components-react';
19
17
  import { VariantProps } from 'cva';
20
18
 
21
- export declare function A({ children, ...props }: React.AnchorHTMLAttributes<HTMLAnchorElement>): JSX_2.Element;
22
-
23
19
  export declare type ActionItemStatus = (typeof actionItemStatuses)[number];
24
20
 
25
21
  export declare const actionItemStatuses: readonly ["inProgress", "executing", "completed"];
26
22
 
27
23
  /* Excluded from this release type: AgentState */
28
24
 
29
- export declare type AggregationType = "count" | "sum" | "avg" | "min" | "max" | "countDistinct";
25
+ declare type AggregationType = "count" | "sum" | "avg" | "min" | "max" | "countDistinct";
26
+
27
+ /**
28
+ * Credits configuration for the AI chat.
29
+ * Groups all credits-related props into a single object.
30
+ *
31
+ * When provided, a credits button is shown in the chat header.
32
+ */
33
+ export declare type AiChatCredits = {
34
+ /** Async function to fetch credits usage. Called each time the popover opens. */
35
+ fetchUsage: () => Promise<CreditsUsage>;
36
+ /** URL to the plan upgrade page. When provided, a link is shown in the popover. */
37
+ upgradePlanUrl?: string;
38
+ /** Company name displayed in the popover header. */
39
+ companyName?: string;
40
+ /** Company logo URL displayed in the popover header. */
41
+ companyLogoUrl?: string;
42
+ /** Plan name displayed below the company name (e.g. "Free plan", "Enterprise"). */
43
+ planName?: string;
44
+ };
30
45
 
31
46
  /**
32
47
  * Disclaimer configuration for the chat input
@@ -95,6 +110,11 @@ export declare type AiChatProviderProps = {
95
110
  * Only one tool hint can be active at a time.
96
111
  */
97
112
  toolHints?: AiChatToolHint[];
113
+ /**
114
+ * Credits configuration. When provided, a credits button is shown in the chat header.
115
+ * Groups fetchUsage, upgradePlanUrl, and company/plan display info.
116
+ */
117
+ credits?: AiChatCredits;
98
118
  onThumbsUp?: (message: AIMessage, { threadId, feedback }: {
99
119
  threadId: string;
100
120
  feedback: string;
@@ -200,7 +220,11 @@ declare type AiChatProviderReturnValue = {
200
220
  * Set the footer content. Use this to update the footer from outside the provider (e.g. per page/route).
201
221
  */
202
222
  setFooter: React.Dispatch<React.SetStateAction<React.ReactNode | undefined>>;
203
- } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityResolvers" | "toolHints"> & {
223
+ /** Whether the assistant is currently generating a response */
224
+ inProgress: boolean;
225
+ /** Set the in-progress state (synced from CopilotKit's isLoading) */
226
+ setInProgress: (value: boolean) => void;
227
+ } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityResolvers" | "toolHints" | "credits"> & {
204
228
  /** The current canvas content, or null when canvas is closed */
205
229
  canvasContent: CanvasContent | null;
206
230
  /** Open the canvas panel with the given content */
@@ -231,6 +255,7 @@ declare interface AiChatState {
231
255
  VoiceMode?: React.ComponentType;
232
256
  entityResolvers?: EntityResolvers;
233
257
  toolHints?: AiChatToolHint[];
258
+ credits?: AiChatCredits;
234
259
  placeholders?: string[];
235
260
  setPlaceholders?: React.Dispatch<React.SetStateAction<string[]>>;
236
261
  onThumbsUp?: (message: AIMessage, { threadId, feedback }: {
@@ -293,78 +318,112 @@ export declare interface AiChatTranslationsProviderProps {
293
318
  }
294
319
 
295
320
  /**
296
- * Default AI chat translations
321
+ * Default AI chat translations — derived from the global defaultTranslations
322
+ * to avoid manual duplication.
297
323
  */
298
324
  export declare const aiTranslations: {
299
325
  ai: {
300
- openChat: string;
301
- closeChat: string;
302
- startNewChat: string;
303
- scrollToBottom: string;
304
- welcome: string;
305
- defaultInitialMessage: string;
306
- inputPlaceholder: string;
307
- stopAnswerGeneration: string;
308
- responseStopped: string;
309
- sendMessage: string;
310
- thoughtsGroupTitle: string;
311
- resourcesGroupTitle: string;
312
- thinking: string;
313
- closeDashboard: string;
314
- exportTable: string;
315
- generatedTableFilename: string;
316
- feedbackModal: {
317
- positive: {
318
- title: string;
319
- label: string;
320
- placeholder: string;
326
+ readonly openChat: "Open Chat with One AI";
327
+ readonly closeChat: "Close Chat with One AI";
328
+ readonly startNewChat: "Start new chat";
329
+ readonly settings: "Settings";
330
+ readonly scrollToBottom: "Scroll to bottom";
331
+ readonly welcome: "Ask or create with One";
332
+ readonly defaultInitialMessage: "How can I help you today?";
333
+ readonly inputPlaceholder: "Ask about time, people, or company info and a lot of other things...";
334
+ readonly stopAnswerGeneration: "Stop generating";
335
+ readonly responseStopped: "You stopped this response";
336
+ readonly sendMessage: "Send message";
337
+ readonly thoughtsGroupTitle: "Reflection";
338
+ readonly resourcesGroupTitle: "Resources";
339
+ readonly thinking: "Thinking...";
340
+ readonly closeDashboard: "Close dashboard";
341
+ readonly unsavedChanges: "Unsaved changes";
342
+ readonly saveChanges: "Save changes";
343
+ readonly discardChanges: "Discard";
344
+ readonly exportTable: "Download table";
345
+ readonly generatedTableFilename: "OneGeneratedTable";
346
+ readonly feedbackModal: {
347
+ readonly positive: {
348
+ readonly title: "What did you like about this response?";
349
+ readonly label: "Your feedback helps us make Factorial AI better";
350
+ readonly placeholder: "Share what worked well";
321
351
  };
322
- negative: {
323
- title: string;
324
- label: string;
325
- placeholder: string;
352
+ readonly negative: {
353
+ readonly title: "What could have been better?";
354
+ readonly label: "Your feedback helps us improve future answers";
355
+ readonly placeholder: "Share what didn’t work";
326
356
  };
327
357
  };
328
- dataDownloadPreview: string;
329
- expandChat: string;
330
- collapseChat: string;
331
- chatHistory: string;
332
- noPreviousChats: string;
333
- newConversation: string;
334
- today: string;
335
- yesterday: string;
336
- thisMonth: string;
337
- older: string;
338
- searchChats: string;
339
- pinnedChats: string;
340
- threadOptions: string;
341
- pinChat: string;
342
- unpinChat: string;
343
- deleteChat: string;
344
- ask: string;
345
- viewProfile: string;
346
- tools: string;
347
- reportCard: {
348
- reportLabel: string;
349
- openButton: string;
358
+ readonly dataDownloadPreview: "Preview {{shown}} of {{total}} rows — download the Excel to see all data.";
359
+ readonly expandChat: "Expand chat";
360
+ readonly collapseChat: "Collapse chat";
361
+ readonly chatHistory: "Chat history";
362
+ readonly noPreviousChats: "No previous conversations";
363
+ readonly newConversation: "New conversation";
364
+ readonly today: "Today";
365
+ readonly yesterday: "Yesterday";
366
+ readonly thisMonth: "This month";
367
+ readonly older: "Older";
368
+ readonly searchChats: "Search conversations...";
369
+ readonly pinnedChats: "Pinned";
370
+ readonly threadOptions: "Thread options";
371
+ readonly pinChat: "Pin chat";
372
+ readonly unpinChat: "Unpin chat";
373
+ readonly deleteChat: "Delete chat";
374
+ readonly ask: "Ask One";
375
+ readonly viewProfile: "View profile";
376
+ readonly tools: "Tools";
377
+ readonly credits: {
378
+ readonly title: "Credits";
379
+ readonly creditsLeft: "{{total}} left";
380
+ readonly monthlyCredits: "Monthly credits";
381
+ readonly creditsError: "Could not load credits";
382
+ readonly upgradePlan: "Upgrade";
383
+ readonly needMoreCredits: "Need more credits?";
350
384
  };
351
- dataDownload: {
352
- download: string;
385
+ readonly reportCard: {
386
+ readonly reportLabel: "Report";
387
+ readonly openButton: "Open";
353
388
  };
354
- pong: {
355
- ai: string;
356
- you: string;
357
- youWin: string;
358
- youLose: string;
389
+ readonly dataDownload: {
390
+ readonly download: "Download {{format}}";
391
+ readonly exportDashboard: "Export dashboard as {{format}}";
392
+ readonly exporting: "Exporting...";
393
+ };
394
+ readonly pong: {
395
+ readonly title: "Pong";
396
+ readonly youWin: "You win!";
397
+ readonly youLose: "You lose!";
398
+ readonly goal: "Goal";
399
+ readonly controls: "← → to move";
400
+ readonly escToExit: "Esc to exit";
401
+ };
402
+ readonly growth: {
403
+ readonly demoCard: {
404
+ readonly title: "See {{moduleName}} in action";
405
+ readonly actionLabel: "Start demo";
406
+ };
407
+ readonly bookAMeetingCard: {
408
+ readonly title: "Talk with an expert";
409
+ readonly schedule: "Mon-Fri · 09:00-21:00 (CEST)";
410
+ readonly actionLabel: "Book a meeting";
411
+ };
412
+ readonly questionCard: {
413
+ readonly actionLabel: "Next";
414
+ readonly skipLabel: "Skip";
415
+ readonly sendLabel: "Send";
416
+ };
417
+ readonly moduleCard: {
418
+ readonly actionLabel: "Learn more";
419
+ };
420
+ readonly faqCard: {
421
+ readonly title: "Questions before getting started";
422
+ };
359
423
  };
360
- unsavedChanges: string;
361
- saveChanges: string;
362
- discardChanges: string;
363
424
  };
364
425
  };
365
426
 
366
- export declare function Blockquote({ children, ...props }: React.HTMLAttributes<HTMLQuoteElement>): JSX_2.Element;
367
-
368
427
  /**
369
428
  * Discriminated union for canvas panel content.
370
429
  * Add new entity types to this union as they are implemented.
@@ -385,13 +444,13 @@ export declare type CanvasContentBase = {
385
444
  * Contract for a canvas entity type.
386
445
  *
387
446
  * Each entity (dashboard, survey, goal, job-posting…) implements this
388
- * interface and registers itself via `registerCanvasEntity()`.
447
+ * interface and is added to the `canvasEntities` record in `registry.ts`.
389
448
  *
390
449
  * To add a new entity type:
391
450
  * 1. Create a folder in `canvas/entities/<your-entity>/`
392
451
  * 2. Define a type extending `CanvasContentBase` in `types.ts`
393
- * 3. Implement `CanvasEntityDefinition` in `index.ts`
394
- * 4. Import the entity module in `canvas/index.ts`
452
+ * 3. Implement and export `CanvasEntityDefinition` in `index.tsx`
453
+ * 4. Add the entity to the record in `canvas/registry.ts`
395
454
  */
396
455
  export declare type CanvasEntityDefinition<T extends CanvasContentBase = CanvasContentBase> = {
397
456
  /** Must match the `type` discriminant on the content object */
@@ -401,13 +460,14 @@ export declare type CanvasEntityDefinition<T extends CanvasContentBase = CanvasC
401
460
  content: T;
402
461
  refreshKey: number;
403
462
  }) => ReactNode;
404
- /** Renders header actions (placed before the close button) */
405
- renderHeaderActions: (props: {
463
+ /** Renders the full header (title, actions, close button) */
464
+ renderHeader: (props: {
406
465
  content: T;
466
+ onClose: () => void;
407
467
  }) => ReactNode;
408
468
  /**
409
469
  * Optional wrapper providing entity-scoped context around
410
- * both header actions and body (e.g. shared edit-mode state).
470
+ * both header and body (e.g. shared edit-mode state).
411
471
  */
412
472
  wrapper?: (props: {
413
473
  content: T;
@@ -415,7 +475,7 @@ export declare type CanvasEntityDefinition<T extends CanvasContentBase = CanvasC
415
475
  }) => ReactNode;
416
476
  };
417
477
 
418
- export declare interface ChartComputation {
478
+ declare interface ChartComputation {
419
479
  datasetId: string;
420
480
  xAxis: string;
421
481
  yAxis: string;
@@ -426,13 +486,13 @@ export declare interface ChartComputation {
426
486
  limit?: number;
427
487
  }
428
488
 
429
- export declare interface ChatDashboardBarChartConfig extends ChatDashboardChartConfigBase {
489
+ declare interface ChatDashboardBarChartConfig extends ChatDashboardChartConfigBase {
430
490
  type: "bar";
431
491
  orientation?: "vertical" | "horizontal";
432
492
  stacked?: boolean;
433
493
  }
434
494
 
435
- export declare type ChatDashboardChartConfig = ChatDashboardBarChartConfig | ChatDashboardLineChartConfig | ChatDashboardFunnelChartConfig | ChatDashboardRadarChartConfig | ChatDashboardPieChartConfig | ChatDashboardGaugeChartConfig | ChatDashboardHeatmapChartConfig;
495
+ declare type ChatDashboardChartConfig = ChatDashboardBarChartConfig | ChatDashboardLineChartConfig | ChatDashboardFunnelChartConfig | ChatDashboardRadarChartConfig | ChatDashboardPieChartConfig | ChatDashboardGaugeChartConfig | ChatDashboardHeatmapChartConfig;
436
496
 
437
497
  declare interface ChatDashboardChartConfigBase {
438
498
  showLegend?: boolean;
@@ -441,19 +501,19 @@ declare interface ChatDashboardChartConfigBase {
441
501
  valueFormat?: FormatPreset;
442
502
  }
443
503
 
444
- export declare interface ChatDashboardChartItem extends ChatDashboardItemBase {
504
+ declare interface ChatDashboardChartItem extends ChatDashboardItemBase {
445
505
  type: "chart";
446
506
  chart: ChatDashboardChartConfig;
447
507
  computation: ChartComputation | RadarComputation | PieComputation | GaugeComputation | HeatmapComputation;
448
508
  }
449
509
 
450
- export declare interface ChatDashboardCollectionItem extends ChatDashboardItemBase {
510
+ declare interface ChatDashboardCollectionItem extends ChatDashboardItemBase {
451
511
  type: "collection";
452
512
  columns: ChatDashboardColumn[];
453
513
  computation: CollectionComputation;
454
514
  }
455
515
 
456
- export declare interface ChatDashboardColumn {
516
+ declare interface ChatDashboardColumn {
457
517
  /** Column key — must match a key in each row object */
458
518
  id: string;
459
519
  /** Display header label */
@@ -467,7 +527,7 @@ export declare interface ChatDashboardColumn {
467
527
  * Contains fetchSpecs that describe how to obtain data server-side —
468
528
  * no raw data is included. Fully JSON-serializable.
469
529
  */
470
- export declare interface ChatDashboardConfig {
530
+ declare interface ChatDashboardConfig {
471
531
  /** Dashboard title displayed in the canvas header and chat report card */
472
532
  title: string;
473
533
  /** Filter definitions — keys become filter IDs */
@@ -478,14 +538,14 @@ export declare interface ChatDashboardConfig {
478
538
  fetchSpecs: Record<string, DashboardFetchSpec>;
479
539
  }
480
540
 
481
- export declare interface ChatDashboardFilterDefinition {
541
+ declare interface ChatDashboardFilterDefinition {
482
542
  type: "in";
483
543
  label: string;
484
544
  column: string;
485
545
  datasetId: string;
486
546
  }
487
547
 
488
- export declare interface ChatDashboardFunnelChartConfig {
548
+ declare interface ChatDashboardFunnelChartConfig {
489
549
  type: "funnel";
490
550
  sort?: "descending" | "ascending" | "none";
491
551
  orient?: "horizontal" | "vertical";
@@ -513,7 +573,7 @@ declare interface ChatDashboardHeatmapChartConfig {
513
573
  valueFormat?: FormatPreset;
514
574
  }
515
575
 
516
- export declare type ChatDashboardItem = ChatDashboardChartItem | ChatDashboardMetricItem | ChatDashboardCollectionItem;
576
+ declare type ChatDashboardItem = ChatDashboardChartItem | ChatDashboardMetricItem | ChatDashboardCollectionItem;
517
577
 
518
578
  declare interface ChatDashboardItemBase {
519
579
  id: string;
@@ -527,14 +587,14 @@ declare interface ChatDashboardItemBase {
527
587
  y?: number;
528
588
  }
529
589
 
530
- export declare interface ChatDashboardLineChartConfig extends ChatDashboardChartConfigBase {
590
+ declare interface ChatDashboardLineChartConfig extends ChatDashboardChartConfigBase {
531
591
  type: "line";
532
592
  lineType?: "linear" | "smooth" | "step";
533
593
  showArea?: boolean;
534
594
  showDots?: boolean;
535
595
  }
536
596
 
537
- export declare type ChatDashboardMetricFormat = {
597
+ declare type ChatDashboardMetricFormat = {
538
598
  type: "number";
539
599
  } | {
540
600
  type: "currency";
@@ -547,7 +607,7 @@ export declare type ChatDashboardMetricFormat = {
547
607
  prefix?: string;
548
608
  };
549
609
 
550
- export declare interface ChatDashboardMetricItem extends ChatDashboardItemBase {
610
+ declare interface ChatDashboardMetricItem extends ChatDashboardItemBase {
551
611
  type: "metric";
552
612
  format?: ChatDashboardMetricFormat;
553
613
  decimals?: number;
@@ -570,13 +630,25 @@ declare interface ChatDashboardRadarChartConfig extends ChatDashboardChartConfig
570
630
 
571
631
  export declare const ChatSpinner: ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement>, "ref"> & RefAttributes<SVGSVGElement>>;
572
632
 
573
- export declare interface CollectionComputation {
633
+ declare type ChatTextareaProps = InputProps & {
634
+ submitLabel?: string;
635
+ };
636
+
637
+ declare interface CollectionComputation {
574
638
  datasetId: string;
575
639
  sortBy?: string;
576
640
  sortOrder?: "asc" | "desc";
577
641
  limit?: number;
578
642
  }
579
643
 
644
+ /**
645
+ * Credits usage data returned by the host app
646
+ */
647
+ export declare type CreditsUsage = {
648
+ used: number;
649
+ total: number;
650
+ };
651
+
580
652
  /**
581
653
  * CSS RGB color string type
582
654
  * @example 'rgb(255, 0, 0)' or 'rgb(255,0,0)'
@@ -595,18 +667,7 @@ export declare type DashboardCanvasContent = CanvasContentBase & {
595
667
  };
596
668
  };
597
669
 
598
- /**
599
- * Dashboard-specific card that wraps CanvasCard with config-store
600
- * subscription logic. Re-renders when the user edits and saves
601
- * the dashboard layout.
602
- */
603
- declare function DashboardCard({ config: originalConfig, onView, toolCallId, }: F0ChatReportCardProps): JSX_2.Element;
604
-
605
- declare namespace DashboardCard {
606
- var displayName: string;
607
- }
608
-
609
- export declare interface DashboardFetchSpec {
670
+ declare interface DashboardFetchSpec {
610
671
  fetch: Array<{
611
672
  toolId: string;
612
673
  args: Record<string, unknown>;
@@ -975,6 +1036,7 @@ export declare const defaultTranslations: {
975
1036
  readonly openChat: "Open Chat with One AI";
976
1037
  readonly closeChat: "Close Chat with One AI";
977
1038
  readonly startNewChat: "Start new chat";
1039
+ readonly settings: "Settings";
978
1040
  readonly scrollToBottom: "Scroll to bottom";
979
1041
  readonly welcome: "Ask or create with One";
980
1042
  readonly defaultInitialMessage: "How can I help you today?";
@@ -1022,18 +1084,30 @@ export declare const defaultTranslations: {
1022
1084
  readonly ask: "Ask One";
1023
1085
  readonly viewProfile: "View profile";
1024
1086
  readonly tools: "Tools";
1087
+ readonly credits: {
1088
+ readonly title: "Credits";
1089
+ readonly creditsLeft: "{{total}} left";
1090
+ readonly monthlyCredits: "Monthly credits";
1091
+ readonly creditsError: "Could not load credits";
1092
+ readonly upgradePlan: "Upgrade";
1093
+ readonly needMoreCredits: "Need more credits?";
1094
+ };
1025
1095
  readonly reportCard: {
1026
1096
  readonly reportLabel: "Report";
1027
1097
  readonly openButton: "Open";
1028
1098
  };
1029
1099
  readonly dataDownload: {
1030
1100
  readonly download: "Download {{format}}";
1101
+ readonly exportDashboard: "Export dashboard as {{format}}";
1102
+ readonly exporting: "Exporting...";
1031
1103
  };
1032
1104
  readonly pong: {
1033
- readonly ai: "AI";
1034
- readonly you: "YOU";
1105
+ readonly title: "Pong";
1035
1106
  readonly youWin: "You win!";
1036
1107
  readonly youLose: "You lose!";
1108
+ readonly goal: "Goal";
1109
+ readonly controls: "← → to move";
1110
+ readonly escToExit: "Esc to exit";
1037
1111
  };
1038
1112
  readonly growth: {
1039
1113
  readonly demoCard: {
@@ -1260,24 +1334,6 @@ export declare const defaultTranslations: {
1260
1334
  };
1261
1335
  };
1262
1336
 
1263
- export declare function Em({ children, ...props }: React.HTMLAttributes<HTMLSpanElement>): JSX_2.Element;
1264
-
1265
- /**
1266
- * Generic entity reference renderer for custom `<entity-ref>` HTML tags
1267
- * embedded in AI chat markdown output.
1268
- *
1269
- * Dispatches to type-specific renderers based on the `type` attribute.
1270
- * Falls back to rendering children as plain text for unknown types.
1271
- *
1272
- * Usage in markdown (via rehype-raw):
1273
- * <entity-ref type="person" id="123">Ana García</entity-ref>
1274
- */
1275
- export declare function EntityRef({ type, id, children, }: {
1276
- type?: string;
1277
- id?: string;
1278
- children?: ReactNode;
1279
- }): JSX_2.Element;
1280
-
1281
1337
  /**
1282
1338
  * Map of async resolver functions keyed by entity type.
1283
1339
  * Each resolver takes an entity ID and returns the profile data
@@ -1322,85 +1378,9 @@ export declare const F0AiChat: () => JSX_2.Element | null;
1322
1378
  /**
1323
1379
  * @experimental This is an experimental component use it at your own risk
1324
1380
  */
1325
- export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, VoiceMode, entityResolvers, toolHints, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
1326
-
1327
- export declare const F0AiChatTextArea: ({ submitLabel, inProgress, onSend, onStop, placeholders, defaultPlaceholder, autoFocus, entityResolvers, toolHints, activeToolHint, onActiveToolHintChange, }: F0AiChatTextAreaProps) => JSX_2.Element;
1328
-
1329
- /**
1330
- * Props for the F0AiChatTextArea component
1331
- */
1332
- export declare interface F0AiChatTextAreaProps {
1333
- /**
1334
- * Whether the chat is currently processing a message
1335
- */
1336
- inProgress: boolean;
1337
- /**
1338
- * Callback when the user sends a message
1339
- */
1340
- onSend: (message: string) => void;
1341
- /**
1342
- * Callback when the user stops the current generation
1343
- */
1344
- onStop?: () => void;
1345
- /**
1346
- * Custom label for the submit button
1347
- */
1348
- submitLabel?: string;
1349
- /**
1350
- * Array of placeholder strings to cycle through with typewriter effect.
1351
- * If multiple placeholders are provided, they will animate in a cycle.
1352
- * If a single placeholder is provided, it will be displayed statically.
1353
- */
1354
- placeholders?: string[];
1355
- /**
1356
- * Default placeholder text when no placeholders are provided or as fallback
1357
- */
1358
- defaultPlaceholder?: string;
1359
- /**
1360
- * Whether the textarea should autofocus on mount
1361
- * @default true
1362
- */
1363
- autoFocus?: boolean;
1364
- /**
1365
- * Entity resolvers for @mention autocomplete and entity reference rendering.
1366
- * When `searchPersons` is provided, typing @ in the textarea opens an
1367
- * autocomplete popover to mention employees.
1368
- */
1369
- entityResolvers?: EntityResolvers;
1370
- /**
1371
- * Available tool hints that the user can activate.
1372
- * Renders a selector button to the left of the send button.
1373
- */
1374
- toolHints?: AiChatToolHint[];
1375
- /**
1376
- * The currently active tool hint, or null if none is selected.
1377
- */
1378
- activeToolHint?: AiChatToolHint | null;
1379
- /**
1380
- * Callback when the active tool hint changes (selection or removal).
1381
- */
1382
- onActiveToolHintChange?: (toolHint: AiChatToolHint | null) => void;
1383
- }
1384
-
1385
- export declare const F0AiCollapsibleMessage: ({ icon, title, children, }: F0AiCollapsibleMessageProps) => JSX_2.Element;
1381
+ export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, VoiceMode, entityResolvers, toolHints, credits, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
1386
1382
 
1387
- /**
1388
- * Props for the F0AiCollapsibleMessage component
1389
- */
1390
- export declare interface F0AiCollapsibleMessageProps {
1391
- /**
1392
- * Icon to display in the collapsible trigger
1393
- */
1394
- icon: IconType;
1395
- /**
1396
- * Title text for the collapsible trigger
1397
- */
1398
- title: string;
1399
- /**
1400
- * Content to show when expanded
1401
- */
1402
- children: ReactNode;
1403
- }
1383
+ export declare const F0AiChatTextArea: ({ submitLabel, inProgress, onSend, onStop, }: ChatTextareaProps) => JSX_2.Element;
1404
1384
 
1405
1385
  /**
1406
1386
  * @experimental This is an experimental component use it at your own risk
@@ -1458,83 +1438,6 @@ declare const F0AuraVoiceAnimationVariants: (props?: ({
1458
1438
  className?: ClassValue;
1459
1439
  })) | undefined) => string;
1460
1440
 
1461
- /**
1462
- * @deprecated Use `DashboardCard` from `canvas/entities/dashboard` directly.
1463
- * This re-export exists for backwards compatibility.
1464
- */
1465
- export declare const F0ChatReportCard: typeof DashboardCard;
1466
-
1467
- export declare type F0ChatReportCardProps = {
1468
- /** The original dashboard config from the agent */
1469
- config: ChatDashboardConfig;
1470
- /** Callback when the user clicks the card to view the report */
1471
- onView: (config: ChatDashboardConfig) => void;
1472
- /** Tool call ID used to look up saved (edited) dashboard configs */
1473
- toolCallId?: string;
1474
- };
1475
-
1476
- /**
1477
- * Component that renders an optional markdown preview followed by
1478
- * a dropdown button with "Download Excel" as the primary action and
1479
- * "Download CSV" as a secondary option. Files are generated client-side
1480
- * from the raw dataset provided by the agent.
1481
- */
1482
- export declare const F0DataDownload: ({ markdown, filename, dataset, }: F0DataDownloadProps) => JSX_2.Element;
1483
-
1484
- /**
1485
- * Inline dataset for client-side file generation (Excel / CSV).
1486
- * Sent by the agent with the raw query results.
1487
- */
1488
- export declare type F0DataDownloadDataset = {
1489
- /**
1490
- * Column headers in display order.
1491
- */
1492
- columns: string[];
1493
- /**
1494
- * Array of row objects keyed by column name.
1495
- */
1496
- rows: Record<string, unknown>[];
1497
- /**
1498
- * Total number of rows returned by the query (before truncation).
1499
- * Used together with previewCount to render the preview note.
1500
- */
1501
- totalCount?: number;
1502
- /**
1503
- * Number of rows shown in the markdown preview table.
1504
- * Used together with totalCount to render the preview note.
1505
- */
1506
- previewCount?: number;
1507
- /**
1508
- * Map of raw column names to human-readable labels in the user's language.
1509
- * Used for Excel/CSV headers. Falls back to the raw column name when absent.
1510
- */
1511
- columnLabels?: Record<string, string>;
1512
- };
1513
-
1514
- /**
1515
- * Props for the F0DataDownload component.
1516
- *
1517
- * Renders an optional markdown preview/description followed by
1518
- * "Download Excel" and "Download CSV" buttons. The component generates
1519
- * the files client-side from the provided dataset.
1520
- */
1521
- export declare type F0DataDownloadProps = {
1522
- /**
1523
- * Optional markdown content to display above the download buttons.
1524
- * Typically a 5-row preview table generated by the agent.
1525
- */
1526
- markdown?: string;
1527
- /**
1528
- * Descriptive filename (without extension) for the downloaded files.
1529
- * Generated by the AI to reflect the query content in the user's language.
1530
- */
1531
- filename?: string;
1532
- /**
1533
- * Raw dataset for client-side Excel and CSV generation.
1534
- */
1535
- dataset: F0DataDownloadDataset;
1536
- };
1537
-
1538
1441
  export declare const F0HILActionConfirmation: ({ text, confirmationText, onConfirm, cancelText, onCancel, }: F0HILActionConfirmationProps) => JSX_2.Element;
1539
1442
 
1540
1443
  /**
@@ -1563,26 +1466,6 @@ export declare type F0HILActionConfirmationProps = {
1563
1466
  onCancel: () => void;
1564
1467
  };
1565
1468
 
1566
- export declare const f0MarkdownRenderers: NonNullable<AssistantMessageProps["markdownTagRenderers"]>;
1567
-
1568
- /**
1569
- * Markdown renderers without the table download button.
1570
- * Use this when the parent component already provides its own download controls.
1571
- */
1572
- export declare const f0MarkdownRenderersSimple: NonNullable<AssistantMessageProps["markdownTagRenderers"]>;
1573
-
1574
- export declare const F0MessageSources: ({ sources }: F0MessageSourcesProps) => JSX_2.Element | null;
1575
-
1576
- /**
1577
- * Props for the F0MessageSources component
1578
- */
1579
- export declare type F0MessageSourcesProps = {
1580
- /**
1581
- * Array of sources to display
1582
- */
1583
- sources: F0Source[];
1584
- };
1585
-
1586
1469
  export declare const F0OneIcon: ForwardRefExoticComponent<Omit<F0OneIconProps, "ref"> & RefAttributes<SVGSVGElement>>;
1587
1470
 
1588
1471
  /**
@@ -1626,66 +1509,12 @@ export declare type F0OneSwitchProps = React.ComponentPropsWithoutRef<typeof Swi
1626
1509
  autoOpen?: boolean;
1627
1510
  };
1628
1511
 
1629
- /**
1630
- * Source object for message sources
1631
- */
1632
- export declare type F0Source = {
1633
- /**
1634
- * Title of the source
1635
- */
1636
- title: string;
1637
- /**
1638
- * Optional link URL
1639
- */
1640
- link?: string;
1641
- /**
1642
- * Optional icon name (from @/icons/app)
1643
- */
1644
- icon?: string;
1645
- /**
1646
- * Whether to open link in new tab
1647
- */
1648
- targetBlank?: boolean;
1649
- };
1650
-
1651
- export declare const F0Thinking: ({ messages, title }: F0ThinkingProps) => JSX_2.Element;
1652
-
1653
- /**
1654
- * Props for the F0Thinking component
1655
- */
1656
- export declare type F0ThinkingProps = {
1657
- /**
1658
- * Array of thinking/reflection messages to display
1659
- */
1660
- messages: Message[];
1661
- /**
1662
- * Whether the thinking process is currently active
1663
- */
1664
- isActive?: boolean;
1665
- /**
1666
- * Custom render function for messages
1667
- */
1668
- RenderMessage?: MessagesProps["RenderMessage"];
1669
- /**
1670
- * Custom assistant message component
1671
- */
1672
- AssistantMessage?: MessagesProps["AssistantMessage"];
1673
- /**
1674
- * Whether the chat is currently in progress
1675
- */
1676
- inProgress?: boolean;
1677
- /**
1678
- * Custom title for the thinking section
1679
- */
1680
- title?: string;
1681
- };
1682
-
1683
1512
  /**
1684
1513
  * A preset formatting instruction the LLM can specify instead of a
1685
1514
  * real formatter function. The wrapper component maps these to actual
1686
1515
  * `(value: number) => string` functions at render time.
1687
1516
  */
1688
- export declare type FormatPreset = {
1517
+ declare type FormatPreset = {
1689
1518
  type: "number";
1690
1519
  } | {
1691
1520
  type: "currency";
@@ -1696,16 +1525,6 @@ export declare type FormatPreset = {
1696
1525
  type: "compact";
1697
1526
  };
1698
1527
 
1699
- export declare const FullscreenChatContext: Context<FullscreenChatContextType>;
1700
-
1701
- /**
1702
- * Context type for fullscreen chat state
1703
- */
1704
- declare type FullscreenChatContextType = {
1705
- inProgress: boolean;
1706
- setInProgress: (value: boolean) => void;
1707
- };
1708
-
1709
1528
  declare interface GaugeComputation {
1710
1529
  datasetId: string;
1711
1530
  aggregation: AggregationType;
@@ -1716,17 +1535,11 @@ declare interface GaugeComputation {
1716
1535
  }
1717
1536
 
1718
1537
  /**
1719
- * Look up a registered entity definition by content type.
1720
- * Returns `undefined` if the type hasn't been registered.
1538
+ * Look up a canvas entity definition by content type.
1539
+ * Returns `undefined` if the type is not configured.
1721
1540
  */
1722
1541
  export declare function getCanvasEntity(type: string): CanvasEntityDefinition<any> | undefined;
1723
1542
 
1724
- export declare function H1({ children, ...props }: React.HTMLAttributes<HTMLHeadingElement>): JSX_2.Element;
1725
-
1726
- export declare function H2({ children, ...props }: React.HTMLAttributes<HTMLHeadingElement>): JSX_2.Element;
1727
-
1728
- export declare function H3({ children, ...props }: React.HTMLAttributes<HTMLHeadingElement>): JSX_2.Element;
1729
-
1730
1543
  declare interface HeatmapComputation {
1731
1544
  datasetId: string;
1732
1545
  xAxis: string;
@@ -1735,8 +1548,6 @@ declare interface HeatmapComputation {
1735
1548
  aggregation: AggregationType;
1736
1549
  }
1737
1550
 
1738
- export declare function Hr({ ...props }: React.HTMLAttributes<HTMLHRElement>): JSX_2.Element;
1739
-
1740
1551
  export declare function I18nProvider({ children, translations, }: I18nProviderProps): JSX.Element;
1741
1552
 
1742
1553
  export declare interface I18nProviderProps {
@@ -1748,13 +1559,8 @@ declare type IconType = ForwardRefExoticComponent<SVGProps<SVGSVGElement> & RefA
1748
1559
  animate?: "normal" | "animate";
1749
1560
  }>;
1750
1561
 
1751
- declare function Image_2({ src, alt, ...props }: React.ImgHTMLAttributes<HTMLImageElement>): JSX_2.Element;
1752
- export { Image_2 as Image }
1753
-
1754
1562
  declare type Join<T extends string[], D extends string> = T extends [] ? never : T extends [infer F] ? F : T extends [infer F, ...infer R] ? F extends string ? `${F}${D}${Join<Extract<R, string[]>, D>}` : never : string;
1755
1563
 
1756
- export declare function Li({ children, ...props }: React.HTMLAttributes<HTMLLIElement>): JSX_2.Element;
1757
-
1758
1564
  export declare type MaskOptions = {
1759
1565
  /**
1760
1566
  * The width of the Mask element.
@@ -1811,20 +1617,16 @@ export declare type MaskOptions = {
1811
1617
  styles?: Partial<CSSStyleDeclaration>;
1812
1618
  };
1813
1619
 
1814
- export declare interface MetricComputation {
1620
+ declare interface MetricComputation {
1815
1621
  datasetId: string;
1816
1622
  aggregation: AggregationType;
1817
1623
  column?: string;
1818
1624
  }
1819
1625
 
1820
- export declare function Ol({ children, ...props }: React.HTMLAttributes<HTMLOListElement>): JSX_2.Element;
1821
-
1822
1626
  export declare type OneIconSize = (typeof oneIconSizes)[number];
1823
1627
 
1824
1628
  export declare const oneIconSizes: readonly ["xs", "sm", "md", "lg"];
1825
1629
 
1826
- export declare function P({ children, ...props }: React.HTMLAttributes<HTMLParagraphElement>): JSX_2.Element;
1827
-
1828
1630
  declare type PathsToStringProps<T> = T extends string ? [] : {
1829
1631
  [K in Extract<keyof T, string>]: [K, ...PathsToStringProps<T[K]>];
1830
1632
  }[Extract<keyof T, string>];
@@ -1851,8 +1653,6 @@ declare interface PieComputation {
1851
1653
  limit?: number;
1852
1654
  }
1853
1655
 
1854
- export declare function Pre({ children, ...props }: React.HTMLAttributes<HTMLPreElement>): JSX_2.Element;
1855
-
1856
1656
  declare interface RadarComputation {
1857
1657
  datasetId: string;
1858
1658
  seriesColumn: string;
@@ -1866,26 +1666,6 @@ declare interface RadarComputation {
1866
1666
  sortOrder?: "asc" | "desc";
1867
1667
  }
1868
1668
 
1869
- /**
1870
- * Register a canvas entity definition.
1871
- * Called as a side-effect when each entity module is imported.
1872
- */
1873
- export declare function registerCanvasEntity<T extends CanvasContentBase>(definition: CanvasEntityDefinition<T>): void;
1874
-
1875
- export declare function Strong({ children, ...props }: React.HTMLAttributes<HTMLSpanElement>): JSX_2.Element;
1876
-
1877
- export declare function Table({ children, ...props }: React.HTMLAttributes<HTMLTableElement>): JSX_2.Element;
1878
-
1879
- /**
1880
- * Table variant without the built-in download button.
1881
- * Used inside components that already provide their own download controls.
1882
- */
1883
- export declare function TableSimple({ children, ...props }: React.HTMLAttributes<HTMLTableElement>): JSX_2.Element;
1884
-
1885
- export declare function Td({ children, ...props }: React.HTMLAttributes<HTMLTableCellElement>): JSX_2.Element;
1886
-
1887
- export declare function Th({ children, ...props }: React.HTMLAttributes<HTMLTableCellElement>): JSX_2.Element;
1888
-
1889
1669
  declare type TranslationKey = Join<PathsToStringProps<typeof defaultTranslations>, ".">;
1890
1670
 
1891
1671
  declare type TranslationShape<T> = {
@@ -1901,53 +1681,15 @@ declare type TranslationShape_2<T> = {
1901
1681
 
1902
1682
  export declare type TranslationsType = TranslationShape<typeof defaultTranslations>;
1903
1683
 
1904
- export declare function Ul({ children, ...props }: React.HTMLAttributes<HTMLUListElement>): JSX_2.Element;
1905
-
1906
1684
  export declare function useAiChat(): AiChatProviderReturnValue;
1907
1685
 
1908
1686
  export declare function useAiChatTranslations(): AiChatTranslations;
1909
1687
 
1910
1688
  /**
1911
- * Hook to register all default copilot actions.
1912
- * This provides a single entry point to enable all standard AI chat actions.
1913
- *
1914
- * @example
1915
- * // Enable all default actions in your component
1916
- * const MyComponent = () => {
1917
- * useDefaultCopilotActions()
1918
- * return <div>...</div>
1919
- * }
1689
+ * Hook that invokes every configured copilot action factory.
1690
+ * Actions are declared in the `copilotActions` array in `registry.ts`.
1920
1691
  */
1921
- export declare const useDefaultCopilotActions: () => void;
1922
-
1923
- /**
1924
- * Hook that registers all AI form interaction tools and pushes
1925
- * form context to the co-agent shared state via `useCoAgent`.
1926
- *
1927
- * Must be called inside a component tree that has both:
1928
- * - A `F0AiFormRegistryProvider` ancestor (for form lookup)
1929
- * - A CopilotKit context (for tool registration + co-agent state)
1930
- * - An `AiChatStateProvider` ancestor (for the agent name)
1931
- */
1932
- export declare const useF0AiFormActions: () => void;
1933
-
1934
- /**
1935
- * AI tool that fills one or more fields in an active F0Form.
1936
- * After setting values, it triggers validation and returns any errors.
1937
- */
1938
- export declare const useFormFillAction: () => void;
1939
-
1940
- /**
1941
- * AI tool that reads the current state of an active F0Form —
1942
- * current values, dirty status, and validation errors.
1943
- */
1944
- export declare const useFormGetStateAction: () => void;
1945
-
1946
- /**
1947
- * AI tool that submits an active F0Form.
1948
- * Triggers validation first — only calls onSubmit if all fields pass.
1949
- */
1950
- export declare const useFormSubmitAction: () => void;
1692
+ export declare function useDefaultCopilotActions(): void;
1951
1693
 
1952
1694
  export declare function useI18n(): TranslationsType & {
1953
1695
  t: (key: TranslationKey, args?: Record<string, string | number>) => string;
@@ -2019,6 +1761,11 @@ declare module "gridstack" {
2019
1761
  }
2020
1762
 
2021
1763
 
1764
+ declare namespace Calendar {
1765
+ var displayName: string;
1766
+ }
1767
+
1768
+
2022
1769
  declare module "@tiptap/core" {
2023
1770
  interface Commands<ReturnType> {
2024
1771
  aiBlock: {
@@ -2066,8 +1813,3 @@ declare module "@tiptap/core" {
2066
1813
  };
2067
1814
  }
2068
1815
  }
2069
-
2070
-
2071
- declare namespace Calendar {
2072
- var displayName: string;
2073
- }