@factorialco/f0-react 1.408.0 → 1.409.0

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/f0.d.ts CHANGED
@@ -300,6 +300,8 @@ declare const actionVariants: readonly ["default", "outline", "critical", "neutr
300
300
 
301
301
  /* Excluded from this release type: AgentState */
302
302
 
303
+ export declare type AggregationType = "count" | "sum" | "avg" | "min" | "max" | "countDistinct";
304
+
303
305
  /**
304
306
  * Disclaimer configuration for the chat input
305
307
  */
@@ -334,6 +336,13 @@ export declare type AiChatProviderProps = {
334
336
  * @default false
335
337
  */
336
338
  lockVisualizationMode?: boolean;
339
+ /**
340
+ * Enable chat history UI (clickable header title + history dialog).
341
+ * When false (default), the header shows a simple "New Chat" button instead.
342
+ * Set to true only when the backend supports the /copilotkit/chat-history/threads route.
343
+ * @default false
344
+ */
345
+ historyEnabled?: boolean;
337
346
  /**
338
347
  * Optional footer content rendered below the textarea
339
348
  */
@@ -396,6 +405,18 @@ declare type AiChatProviderReturnValue = {
396
405
  */
397
406
  clear: () => void;
398
407
  /* Excluded from this release type: setClearFunction */
408
+ /**
409
+ * Title of the currently loaded thread, or null for new conversations
410
+ */
411
+ currentThreadTitle: string | null;
412
+ /**
413
+ * Load a thread by ID and set its title in the header
414
+ */
415
+ loadThread: (threadId: string, title: string) => void;
416
+ /* Excluded from this release type: setLoadThreadFunction */
417
+ /** Whether a thread's messages are currently being fetched */
418
+ isLoadingThread: boolean;
419
+ /* Excluded from this release type: setIsLoadingThread */
399
420
  /**
400
421
  * Send a message to the chat
401
422
  * @param message - The message content as a string, or a full Message object
@@ -423,6 +444,7 @@ declare type AiChatProviderReturnValue = {
423
444
  * When true, prevents switching between visualization modes
424
445
  */
425
446
  lockVisualizationMode: boolean;
447
+ historyEnabled: boolean;
426
448
  /**
427
449
  * Optional footer content rendered below the textarea
428
450
  */
@@ -432,10 +454,22 @@ declare type AiChatProviderReturnValue = {
432
454
  */
433
455
  setFooter: React.Dispatch<React.SetStateAction<React.ReactNode | undefined>>;
434
456
  } & Pick<AiChatState, "greeting" | "agent" | "disclaimer" | "resizable" | "entityResolvers" | "toolHints"> & {
457
+ /** The current canvas content, or null when canvas is closed */
458
+ canvasContent: CanvasContent | null;
459
+ /** The dashboard config from the current canvas content, or null */
460
+ canvasDashboard: ChatDashboardConfig | null;
461
+ /** Open the canvas panel with the given content */
462
+ openCanvas: (content: CanvasContent) => void;
463
+ /** Close the canvas panel and restore the previous visualization mode */
464
+ closeCanvas: () => void;
435
465
  /** The currently active tool hint, or null if none is selected */
436
466
  activeToolHint: AiChatToolHint | null;
437
467
  /** Set the active tool hint (pass null to clear) */
438
468
  setActiveToolHint: React.Dispatch<React.SetStateAction<AiChatToolHint | null>>;
469
+ /** Get a saved dashboard config by toolCallId (returns updated config after user edits) */
470
+ getSavedDashboardConfig: (toolCallId: string) => ChatDashboardConfig | undefined;
471
+ /** Save an updated dashboard config keyed by toolCallId */
472
+ updateDashboardConfig: (toolCallId: string, config: ChatDashboardConfig) => void;
439
473
  };
440
474
 
441
475
  /**
@@ -451,6 +485,7 @@ declare interface AiChatState {
451
485
  resizable?: boolean;
452
486
  defaultVisualizationMode?: VisualizationMode;
453
487
  lockVisualizationMode?: boolean;
488
+ historyEnabled?: boolean;
454
489
  footer?: React.ReactNode;
455
490
  entityResolvers?: EntityResolvers;
456
491
  toolHints?: AiChatToolHint[];
@@ -533,6 +568,9 @@ export declare const aiTranslations: {
533
568
  thoughtsGroupTitle: string;
534
569
  resourcesGroupTitle: string;
535
570
  thinking: string;
571
+ closeDashboard: string;
572
+ exportTable: string;
573
+ generatedTableFilename: string;
536
574
  feedbackModal: {
537
575
  positive: {
538
576
  title: string;
@@ -548,9 +586,32 @@ export declare const aiTranslations: {
548
586
  dataDownloadPreview: string;
549
587
  expandChat: string;
550
588
  collapseChat: string;
589
+ chatHistory: string;
590
+ noPreviousChats: string;
591
+ newConversation: string;
592
+ today: string;
593
+ yesterday: string;
594
+ thisMonth: string;
595
+ older: string;
596
+ searchChats: string;
597
+ pinnedChats: string;
598
+ threadOptions: string;
599
+ pinChat: string;
600
+ unpinChat: string;
601
+ deleteChat: string;
551
602
  ask: string;
552
603
  viewProfile: string;
553
604
  tools: string;
605
+ reportCard: {
606
+ reportLabel: string;
607
+ openButton: string;
608
+ };
609
+ dataDownload: {
610
+ download: string;
611
+ };
612
+ unsavedChanges: string;
613
+ saveChanges: string;
614
+ discardChanges: string;
554
615
  };
555
616
  };
556
617
 
@@ -1243,6 +1304,21 @@ declare type CalendarMode = "single" | "range";
1243
1304
 
1244
1305
  declare type CalendarView = "day" | "month" | "year" | "week" | "quarter" | "halfyear";
1245
1306
 
1307
+ /**
1308
+ * Discriminated union for canvas panel content.
1309
+ * Expand this union to support new content types in the canvas.
1310
+ */
1311
+ export declare type CanvasContent = {
1312
+ type: "dashboard";
1313
+ title: string;
1314
+ config: ChatDashboardConfig;
1315
+ apiConfig: {
1316
+ baseUrl: string;
1317
+ headers: Record<string, string>;
1318
+ };
1319
+ toolCallId?: string;
1320
+ };
1321
+
1246
1322
  declare type CardAvatarVariant = AvatarVariant | {
1247
1323
  type: "emoji";
1248
1324
  emoji: string;
@@ -1458,6 +1534,17 @@ declare type ChartColorToken = (typeof chartColorTokens)[number];
1458
1534
  */
1459
1535
  declare const chartColorTokens: readonly ["lilac", "barbie", "smoke", "army", "flubber", "indigo", "camel", "radical", "viridian", "orange", "red", "grass", "malibu", "yellow", "purple"];
1460
1536
 
1537
+ export declare interface ChartComputation {
1538
+ datasetId: string;
1539
+ xAxis: string;
1540
+ yAxis: string;
1541
+ aggregation: AggregationType;
1542
+ series?: string;
1543
+ sortBy?: "value" | "category";
1544
+ sortOrder?: "asc" | "desc";
1545
+ limit?: number;
1546
+ }
1547
+
1461
1548
  declare interface ChartConfigBase {
1462
1549
  /** Show the legend below the chart. @default true */
1463
1550
  showLegend?: boolean;
@@ -1471,6 +1558,148 @@ declare interface ChartConfigBase {
1471
1558
  categoryFormatter?: (value: string) => string;
1472
1559
  }
1473
1560
 
1561
+ export declare interface ChatDashboardBarChartConfig extends ChatDashboardChartConfigBase {
1562
+ type: "bar";
1563
+ orientation?: "vertical" | "horizontal";
1564
+ stacked?: boolean;
1565
+ }
1566
+
1567
+ export declare type ChatDashboardChartConfig = ChatDashboardBarChartConfig | ChatDashboardLineChartConfig | ChatDashboardFunnelChartConfig | ChatDashboardRadarChartConfig | ChatDashboardPieChartConfig | ChatDashboardGaugeChartConfig | ChatDashboardHeatmapChartConfig;
1568
+
1569
+ declare interface ChatDashboardChartConfigBase {
1570
+ showLegend?: boolean;
1571
+ showGrid?: boolean;
1572
+ showLabels?: boolean;
1573
+ valueFormat?: FormatPreset;
1574
+ }
1575
+
1576
+ export declare interface ChatDashboardChartItem extends ChatDashboardItemBase {
1577
+ type: "chart";
1578
+ chart: ChatDashboardChartConfig;
1579
+ computation: ChartComputation | RadarComputation | PieComputation | GaugeComputation | HeatmapComputation;
1580
+ }
1581
+
1582
+ export declare interface ChatDashboardCollectionItem extends ChatDashboardItemBase {
1583
+ type: "collection";
1584
+ columns: ChatDashboardColumn[];
1585
+ computation: CollectionComputation;
1586
+ }
1587
+
1588
+ export declare interface ChatDashboardColumn {
1589
+ /** Column key — must match a key in each row object */
1590
+ id: string;
1591
+ /** Display header label */
1592
+ label: string;
1593
+ /** Optional fixed width in pixels */
1594
+ width?: number;
1595
+ }
1596
+
1597
+ /**
1598
+ * Complete dashboard configuration received via `displayDashboard`.
1599
+ * Contains fetchSpecs that describe how to obtain data server-side —
1600
+ * no raw data is included. Fully JSON-serializable.
1601
+ */
1602
+ export declare interface ChatDashboardConfig {
1603
+ /** Dashboard title displayed in the canvas header and chat report card */
1604
+ title: string;
1605
+ /** Filter definitions — keys become filter IDs */
1606
+ filters?: Record<string, ChatDashboardFilterDefinition>;
1607
+ /** Ordered list of dashboard items with computation specs */
1608
+ items: ChatDashboardItem[];
1609
+ /** Fetch specs for server-side data retrieval, keyed by datasetId */
1610
+ fetchSpecs: Record<string, DashboardFetchSpec>;
1611
+ }
1612
+
1613
+ export declare interface ChatDashboardFilterDefinition {
1614
+ type: "in";
1615
+ label: string;
1616
+ column: string;
1617
+ datasetId: string;
1618
+ }
1619
+
1620
+ export declare interface ChatDashboardFunnelChartConfig {
1621
+ type: "funnel";
1622
+ sort?: "descending" | "ascending" | "none";
1623
+ orient?: "horizontal" | "vertical";
1624
+ labelPosition?: "inside" | "outside";
1625
+ showLegend?: boolean;
1626
+ showLabels?: boolean;
1627
+ showConversion?: boolean;
1628
+ valueFormat?: FormatPreset;
1629
+ }
1630
+
1631
+ declare interface ChatDashboardGaugeChartConfig {
1632
+ type: "gauge";
1633
+ min?: number;
1634
+ max?: number;
1635
+ showValue?: boolean;
1636
+ valueFormat?: FormatPreset;
1637
+ }
1638
+
1639
+ declare interface ChatDashboardHeatmapChartConfig {
1640
+ type: "heatmap";
1641
+ min?: number;
1642
+ max?: number;
1643
+ showLabels?: boolean;
1644
+ showVisualMap?: boolean;
1645
+ valueFormat?: FormatPreset;
1646
+ }
1647
+
1648
+ export declare type ChatDashboardItem = ChatDashboardChartItem | ChatDashboardMetricItem | ChatDashboardCollectionItem;
1649
+
1650
+ declare interface ChatDashboardItemBase {
1651
+ id: string;
1652
+ title: string;
1653
+ description?: string;
1654
+ /** Source attribution shown as a subtitle (e.g. "Based on 8 feedbacks from 3 evaluators") */
1655
+ sourceDescription?: string;
1656
+ colSpan?: number;
1657
+ rowSpan?: number;
1658
+ x?: number;
1659
+ y?: number;
1660
+ }
1661
+
1662
+ export declare interface ChatDashboardLineChartConfig extends ChatDashboardChartConfigBase {
1663
+ type: "line";
1664
+ lineType?: "linear" | "smooth" | "step";
1665
+ showArea?: boolean;
1666
+ showDots?: boolean;
1667
+ }
1668
+
1669
+ export declare type ChatDashboardMetricFormat = {
1670
+ type: "number";
1671
+ } | {
1672
+ type: "currency";
1673
+ currency?: string;
1674
+ } | {
1675
+ type: "percent";
1676
+ } | {
1677
+ type: "custom";
1678
+ suffix?: string;
1679
+ prefix?: string;
1680
+ };
1681
+
1682
+ export declare interface ChatDashboardMetricItem extends ChatDashboardItemBase {
1683
+ type: "metric";
1684
+ format?: ChatDashboardMetricFormat;
1685
+ decimals?: number;
1686
+ computation: MetricComputation;
1687
+ }
1688
+
1689
+ declare interface ChatDashboardPieChartConfig {
1690
+ type: "pie";
1691
+ innerRadius?: number;
1692
+ showLegend?: boolean;
1693
+ showLabels?: boolean;
1694
+ showPercentage?: boolean;
1695
+ valueFormat?: FormatPreset;
1696
+ }
1697
+
1698
+ declare interface ChatDashboardRadarChartConfig extends ChatDashboardChartConfigBase {
1699
+ type: "radar";
1700
+ showArea?: boolean;
1701
+ }
1702
+
1474
1703
  export declare const ChatSpinner: ForwardRefExoticComponent<Omit<SVGProps<SVGSVGElement>, "ref"> & RefAttributes<SVGSVGElement>>;
1475
1704
 
1476
1705
  /**
@@ -1592,6 +1821,13 @@ declare const chipVariants: (props?: ({
1592
1821
 
1593
1822
  declare type ColId = string;
1594
1823
 
1824
+ export declare interface CollectionComputation {
1825
+ datasetId: string;
1826
+ sortBy?: string;
1827
+ sortOrder?: "asc" | "desc";
1828
+ limit?: number;
1829
+ }
1830
+
1595
1831
  /**
1596
1832
  * Props for the Collection component.
1597
1833
  * @template Record - The type of records in the collection
@@ -1866,6 +2102,15 @@ export declare interface DashboardCollectionItem<Filters extends FiltersDefiniti
1866
2102
  visualizations: ReadonlyArray<any>;
1867
2103
  }
1868
2104
 
2105
+ export declare interface DashboardFetchSpec {
2106
+ fetch: Array<{
2107
+ toolId: string;
2108
+ args: Record<string, unknown>;
2109
+ }>;
2110
+ query: string | null;
2111
+ columnLabels?: Record<string, string>;
2112
+ }
2113
+
1869
2114
  /**
1870
2115
  * A single dashboard item. Discriminated on `type`.
1871
2116
  *
@@ -1881,8 +2126,14 @@ export declare interface DashboardItemBase {
1881
2126
  title: string;
1882
2127
  /** Optional description below the title */
1883
2128
  description?: string;
1884
- /** Number of grid columns this item spans (1–3). @default 1 */
1885
- colSpan?: 1 | 2 | 3;
2129
+ /** Number of grid columns this item spans (1–12). */
2130
+ colSpan?: number;
2131
+ /** Number of grid rows this item spans. */
2132
+ rowSpan?: number;
2133
+ /** Grid column position (0-based). When set, skip auto-packing. */
2134
+ x?: number;
2135
+ /** Grid row position (0-based). When set, skip auto-packing. */
2136
+ y?: number;
1886
2137
  /**
1887
2138
  * Whether this item receives dashboard-level filters in its fetchData.
1888
2139
  * When false, fetchData receives an empty object.
@@ -1891,6 +2142,19 @@ export declare interface DashboardItemBase {
1891
2142
  useDashboardFilters?: boolean;
1892
2143
  }
1893
2144
 
2145
+ /**
2146
+ * Minimal descriptor of a dashboard item's position and size.
2147
+ * Used by `onLayoutChange` so the consumer can reconcile layout
2148
+ * edits against its own source-of-truth config items.
2149
+ */
2150
+ declare type DashboardItemLayout = {
2151
+ id: string;
2152
+ colSpan: number;
2153
+ rowSpan: number;
2154
+ x: number;
2155
+ y: number;
2156
+ };
2157
+
1894
2158
  /** Data returned by a metric item's fetchData */
1895
2159
  export declare interface DashboardMetricData {
1896
2160
  /** The main numeric value displayed in large text */
@@ -2726,6 +2990,10 @@ export declare const defaultTranslations: {
2726
2990
  readonly thoughtsGroupTitle: "Reflection";
2727
2991
  readonly resourcesGroupTitle: "Resources";
2728
2992
  readonly thinking: "Thinking...";
2993
+ readonly closeDashboard: "Close dashboard";
2994
+ readonly unsavedChanges: "Unsaved changes";
2995
+ readonly saveChanges: "Save changes";
2996
+ readonly discardChanges: "Discard";
2729
2997
  readonly exportTable: "Download table";
2730
2998
  readonly generatedTableFilename: "OneGeneratedTable";
2731
2999
  readonly feedbackModal: {
@@ -2743,9 +3011,29 @@ export declare const defaultTranslations: {
2743
3011
  readonly dataDownloadPreview: "Preview {{shown}} of {{total}} rows — download the Excel to see all data.";
2744
3012
  readonly expandChat: "Expand chat";
2745
3013
  readonly collapseChat: "Collapse chat";
3014
+ readonly chatHistory: "Chat history";
3015
+ readonly noPreviousChats: "No previous conversations";
3016
+ readonly newConversation: "New conversation";
3017
+ readonly today: "Today";
3018
+ readonly yesterday: "Yesterday";
3019
+ readonly thisMonth: "This month";
3020
+ readonly older: "Older";
3021
+ readonly searchChats: "Search conversations...";
3022
+ readonly pinnedChats: "Pinned";
3023
+ readonly threadOptions: "Thread options";
3024
+ readonly pinChat: "Pin chat";
3025
+ readonly unpinChat: "Unpin chat";
3026
+ readonly deleteChat: "Delete chat";
2746
3027
  readonly ask: "Ask One";
2747
3028
  readonly viewProfile: "View profile";
2748
3029
  readonly tools: "Tools";
3030
+ readonly reportCard: {
3031
+ readonly reportLabel: "Report";
3032
+ readonly openButton: "Open";
3033
+ };
3034
+ readonly dataDownload: {
3035
+ readonly download: "Download {{format}}";
3036
+ };
2749
3037
  readonly growth: {
2750
3038
  readonly demoCard: {
2751
3039
  readonly title: "See {{moduleName}} in action";
@@ -3267,7 +3555,7 @@ export declare const F0AiChat: () => JSX_2.Element | null;
3267
3555
  /**
3268
3556
  * @experimental This is an experimental component use it at your own risk
3269
3557
  */
3270
- export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, footer, entityResolvers, toolHints, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
3558
+ export declare const F0AiChatProvider: ({ enabled, greeting, initialMessage, welcomeScreenSuggestions, disclaimer, resizable, defaultVisualizationMode, lockVisualizationMode, historyEnabled, footer, entityResolvers, toolHints, onThumbsUp, onThumbsDown, children, agent, tracking, ...copilotKitProps }: AiChatProviderProps) => JSX_2.Element;
3271
3559
 
3272
3560
  export declare const F0AiChatTextArea: ({ submitLabel, inProgress, onSend, onStop, placeholders, defaultPlaceholder, autoFocus, entityResolvers, toolHints, activeToolHint, onActiveToolHintChange, }: F0AiChatTextAreaProps) => JSX_2.Element;
3273
3561
 
@@ -3403,7 +3691,7 @@ export declare interface F0AlertProps {
3403
3691
  * @experimental This is an experimental component use it at your own risk
3404
3692
  */
3405
3693
  export declare const F0AnalyticsDashboard: {
3406
- <Filters extends FiltersDefinition_2 = FiltersDefinition_2>({ filters, presets, defaultFilters, items, }: F0AnalyticsDashboardProps_2<Filters>): JSX_2.Element;
3694
+ <Filters extends FiltersDefinition_2 = FiltersDefinition_2>({ filters, presets, defaultFilters, items, editMode, onLayoutChange, }: F0AnalyticsDashboardProps_2<Filters>): JSX_2.Element;
3407
3695
  displayName: string;
3408
3696
  };
3409
3697
 
@@ -3436,6 +3724,16 @@ export declare interface F0AnalyticsDashboardProps<Filters extends FiltersDefini
3436
3724
  * Each item declares its type, visual config, grid span, and data fetcher.
3437
3725
  */
3438
3726
  items: DashboardItem<Filters>[];
3727
+ /**
3728
+ * When true, enables drag-and-drop reordering, resize, and delete controls.
3729
+ */
3730
+ editMode?: boolean;
3731
+ /**
3732
+ * Called when items are reordered, resized, or deleted in edit mode.
3733
+ * Receives a layout descriptor (ordered list of { id, colSpan }) so
3734
+ * the consumer can reconcile against the original config items.
3735
+ */
3736
+ onLayoutChange?: (layout: DashboardItemLayout[]) => void;
3439
3737
  }
3440
3738
 
3441
3739
  /**
@@ -3953,6 +4251,31 @@ compact?: boolean;
3953
4251
 
3954
4252
  export declare type F0CardProps = Omit<CardInternalProps, (typeof privateProps_3)[number]>;
3955
4253
 
4254
+ /**
4255
+ * Compact card shown inline in the AI chat to represent a generated
4256
+ * dashboard report. Uses F0Card with an icon avatar, the dashboard
4257
+ * title/description, and an item summary in metadata. Clicking the
4258
+ * card triggers `onView` to open the canvas panel.
4259
+ *
4260
+ * Subscribes to the external `savedDashboardConfigStore` via
4261
+ * `useSyncExternalStore` so it re-renders when the user edits the
4262
+ * dashboard layout and saves — independently of React context.
4263
+ */
4264
+ export declare function F0ChatReportCard({ config: originalConfig, onView, toolCallId, }: F0ChatReportCardProps): JSX_2.Element;
4265
+
4266
+ export declare namespace F0ChatReportCard {
4267
+ var displayName: string;
4268
+ }
4269
+
4270
+ export declare interface F0ChatReportCardProps {
4271
+ /** The original dashboard config from the agent */
4272
+ config: ChatDashboardConfig;
4273
+ /** Callback when the user clicks the card to view the report */
4274
+ onView: (config: ChatDashboardConfig) => void;
4275
+ /** Tool call ID used to look up saved (edited) dashboard configs */
4276
+ toolCallId?: string;
4277
+ }
4278
+
3956
4279
  /**
3957
4280
  * @experimental This is an experimental component use it at your own risk
3958
4281
  */
@@ -5131,7 +5454,7 @@ export declare type F0FormSubmitResult = {
5131
5454
  };
5132
5455
 
5133
5456
  export declare const F0GridStack: WithDataTestIdReturnType_4< {
5134
- ({ options, widgets, onChange, className, }: F0GridStackProps_2): JSX_2.Element;
5457
+ ({ options, widgets, onChange, className, static: isStatic, forcePositionSync, }: F0GridStackProps_2): JSX_2.Element;
5135
5458
  displayName: string;
5136
5459
  }>;
5137
5460
 
@@ -5140,6 +5463,12 @@ export declare interface F0GridStackProps {
5140
5463
  widgets: GridStackReactWidget[];
5141
5464
  onChange?: (widgets: GridStackReactWidget[]) => void;
5142
5465
  className?: string;
5466
+ /** Toggle static mode imperatively via `gridStack.setStatic()`.
5467
+ * Unlike putting `staticGrid` in options, this does NOT recreate the grid. */
5468
+ static?: boolean;
5469
+ /** Incrementing counter that forces all widget positions to match props.
5470
+ * Used to reset positions on layout discard. */
5471
+ forcePositionSync?: number;
5143
5472
  }
5144
5473
 
5145
5474
  export declare const F0Heading: WithDataTestIdReturnType_3<ForwardRefExoticComponent<Omit<F0HeadingProps, "ref"> & RefAttributes<HTMLElement>>>;
@@ -6226,6 +6555,22 @@ declare type FontSize = (typeof fontSizes)[number];
6226
6555
 
6227
6556
  declare const fontSizes: readonly ["sm", "md", "lg"];
6228
6557
 
6558
+ /**
6559
+ * A preset formatting instruction the LLM can specify instead of a
6560
+ * real formatter function. The wrapper component maps these to actual
6561
+ * `(value: number) => string` functions at render time.
6562
+ */
6563
+ export declare type FormatPreset = {
6564
+ type: "number";
6565
+ } | {
6566
+ type: "currency";
6567
+ currency?: string;
6568
+ } | {
6569
+ type: "percent";
6570
+ } | {
6571
+ type: "compact";
6572
+ };
6573
+
6229
6574
  /* Excluded from this release type: FormDefinitionItem */
6230
6575
 
6231
6576
  /**
@@ -6313,6 +6658,15 @@ export declare interface GaugeChartConfig {
6313
6658
  valueFormatter?: (value: number) => string;
6314
6659
  }
6315
6660
 
6661
+ declare interface GaugeComputation {
6662
+ datasetId: string;
6663
+ aggregation: AggregationType;
6664
+ column?: string;
6665
+ min?: number;
6666
+ max?: number;
6667
+ name?: string;
6668
+ }
6669
+
6316
6670
  /**
6317
6671
  * Generates an anchor ID for a form element
6318
6672
  * Format: forms.[formName].[sectionId].[fieldId]
@@ -6538,6 +6892,14 @@ export declare interface HeatmapChartConfig {
6538
6892
  valueFormatter?: (value: number) => string;
6539
6893
  }
6540
6894
 
6895
+ declare interface HeatmapComputation {
6896
+ datasetId: string;
6897
+ xAxis: string;
6898
+ yAxis: string;
6899
+ valueColumn: string;
6900
+ aggregation: AggregationType;
6901
+ }
6902
+
6541
6903
  declare type heightType = "xxs" | "xs" | "sm" | "md" | "lg" | "xl" | "2xl" | "3xl" | "full" | "auto";
6542
6904
 
6543
6905
  export declare const HomeLayout: WithDataTestIdReturnType_2<ForwardRefExoticComponent<Omit<{
@@ -7141,6 +7503,12 @@ declare interface MetadataProps {
7141
7503
  collapse?: boolean;
7142
7504
  }
7143
7505
 
7506
+ export declare interface MetricComputation {
7507
+ datasetId: string;
7508
+ aggregation: AggregationType;
7509
+ column?: string;
7510
+ }
7511
+
7144
7512
  /** How to format the metric value */
7145
7513
  export declare type MetricFormat = {
7146
7514
  type: "number";
@@ -7756,6 +8124,16 @@ export declare interface PieChartConfig {
7756
8124
  valueFormatter?: (value: number) => string;
7757
8125
  }
7758
8126
 
8127
+ declare interface PieComputation {
8128
+ datasetId: string;
8129
+ nameColumn: string;
8130
+ valueColumn: string;
8131
+ aggregation: AggregationType;
8132
+ sortBy?: "value" | "name";
8133
+ sortOrder?: "asc" | "desc";
8134
+ limit?: number;
8135
+ }
8136
+
7759
8137
  declare type PopupSize = "sm" | "md" | "lg";
7760
8138
 
7761
8139
  /** CSS position */
@@ -8066,6 +8444,19 @@ export declare interface RadarChartConfig {
8066
8444
  valueFormatter?: (value: number) => string;
8067
8445
  }
8068
8446
 
8447
+ declare interface RadarComputation {
8448
+ datasetId: string;
8449
+ seriesColumn: string;
8450
+ indicators: Array<{
8451
+ column: string;
8452
+ label: string;
8453
+ max?: number;
8454
+ }>;
8455
+ limit?: number;
8456
+ sortBy?: string;
8457
+ sortOrder?: "asc" | "desc";
8458
+ }
8459
+
8069
8460
  declare type RatingQuestionProps = BaseQuestionPropsForOtherQuestionComponents & {
8070
8461
  value?: number;
8071
8462
  } & {
@@ -9766,7 +10157,7 @@ declare type VisualizacionTypeDefinition<Props, Settings = Record<string, never>
9766
10157
  /**
9767
10158
  * Visualization mode for the AI chat
9768
10159
  */
9769
- export declare type VisualizationMode = "sidepanel" | "fullscreen";
10160
+ export declare type VisualizationMode = "sidepanel" | "fullscreen" | "canvas";
9770
10161
 
9771
10162
  declare type VisualizationSettings = {
9772
10163
  [K in keyof typeof collectionVisualizations]: ExtractVisualizationSettings<(typeof collectionVisualizations)[K]>;
@@ -9889,13 +10280,8 @@ declare module "gridstack" {
9889
10280
  }
9890
10281
 
9891
10282
 
9892
- declare module "@tiptap/core" {
9893
- interface Commands<ReturnType> {
9894
- aiBlock: {
9895
- insertAIBlock: (data: AIBlockData, config: AIBlockConfig) => ReturnType;
9896
- executeAIAction: (actionType: string, config: AIBlockConfig) => ReturnType;
9897
- };
9898
- }
10283
+ declare namespace Calendar {
10284
+ var displayName: string;
9899
10285
  }
9900
10286
 
9901
10287
 
@@ -9911,8 +10297,9 @@ declare module "@tiptap/core" {
9911
10297
 
9912
10298
  declare module "@tiptap/core" {
9913
10299
  interface Commands<ReturnType> {
9914
- moodTracker: {
9915
- insertMoodTracker: (data: MoodTrackerData) => ReturnType;
10300
+ aiBlock: {
10301
+ insertAIBlock: (data: AIBlockData, config: AIBlockConfig) => ReturnType;
10302
+ executeAIAction: (actionType: string, config: AIBlockConfig) => ReturnType;
9916
10303
  };
9917
10304
  }
9918
10305
  }
@@ -9920,10 +10307,8 @@ declare module "@tiptap/core" {
9920
10307
 
9921
10308
  declare module "@tiptap/core" {
9922
10309
  interface Commands<ReturnType> {
9923
- videoEmbed: {
9924
- setVideoEmbed: (options: {
9925
- src: string;
9926
- }) => ReturnType;
10310
+ moodTracker: {
10311
+ insertMoodTracker: (data: MoodTrackerData) => ReturnType;
9927
10312
  };
9928
10313
  }
9929
10314
  }
@@ -9938,6 +10323,12 @@ declare module "@tiptap/core" {
9938
10323
  }
9939
10324
 
9940
10325
 
9941
- declare namespace Calendar {
9942
- var displayName: string;
10326
+ declare module "@tiptap/core" {
10327
+ interface Commands<ReturnType> {
10328
+ videoEmbed: {
10329
+ setVideoEmbed: (options: {
10330
+ src: string;
10331
+ }) => ReturnType;
10332
+ };
10333
+ }
9943
10334
  }