@trinityui/design-system 1.0.3 → 1.0.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/CHANGELOG.md +18 -0
- package/dist/Legend.js +1455 -0
- package/dist/accessibility.d.ts +119 -0
- package/dist/accessibility.d.ts.map +1 -0
- package/dist/assets/index.d.ts +234 -0
- package/dist/assets/index.d.ts.map +1 -0
- package/dist/components/AI/AIActions.d.ts +104 -0
- package/dist/components/AI/AIActions.d.ts.map +1 -0
- package/dist/components/AI/AIAvatar.d.ts +32 -0
- package/dist/components/AI/AIAvatar.d.ts.map +1 -0
- package/dist/components/AI/AIChat.d.ts +142 -0
- package/dist/components/AI/AIChat.d.ts.map +1 -0
- package/dist/components/AI/AIContainer.d.ts +97 -0
- package/dist/components/AI/AIContainer.d.ts.map +1 -0
- package/dist/components/AI/AIExplainability.d.ts +46 -0
- package/dist/components/AI/AIExplainability.d.ts.map +1 -0
- package/dist/components/AI/AILabel.d.ts +43 -0
- package/dist/components/AI/AILabel.d.ts.map +1 -0
- package/dist/components/AI/AIMessage.d.ts +93 -0
- package/dist/components/AI/AIMessage.d.ts.map +1 -0
- package/dist/components/AI/AIRelatedQuestions.d.ts +53 -0
- package/dist/components/AI/AIRelatedQuestions.d.ts.map +1 -0
- package/dist/components/AI/AIResponseRenderer.d.ts +50 -0
- package/dist/components/AI/AIResponseRenderer.d.ts.map +1 -0
- package/dist/components/AI/AISources.d.ts +66 -0
- package/dist/components/AI/AISources.d.ts.map +1 -0
- package/dist/components/AI/AISourcesPanel.d.ts +84 -0
- package/dist/components/AI/AISourcesPanel.d.ts.map +1 -0
- package/dist/components/AI/AITextBlock.d.ts +56 -0
- package/dist/components/AI/AITextBlock.d.ts.map +1 -0
- package/dist/components/AI/AIVisuals.d.ts +104 -0
- package/dist/components/AI/AIVisuals.d.ts.map +1 -0
- package/dist/components/AI/AIVoiceInput.d.ts +66 -0
- package/dist/components/AI/AIVoiceInput.d.ts.map +1 -0
- package/dist/components/AI/ChatHeader.d.ts +52 -0
- package/dist/components/AI/ChatHeader.d.ts.map +1 -0
- package/dist/components/AI/ChatHistoryList.d.ts +80 -0
- package/dist/components/AI/ChatHistoryList.d.ts.map +1 -0
- package/dist/components/AI/ChatThread.d.ts +74 -0
- package/dist/components/AI/ChatThread.d.ts.map +1 -0
- package/dist/components/AI/InsightEngine.d.ts +147 -0
- package/dist/components/AI/InsightEngine.d.ts.map +1 -0
- package/dist/components/AI/InsightEngineInput.d.ts +94 -0
- package/dist/components/AI/InsightEngineInput.d.ts.map +1 -0
- package/dist/components/AI/QueryInput.d.ts +114 -0
- package/dist/components/AI/QueryInput.d.ts.map +1 -0
- package/dist/components/AI/UserAvatar.d.ts +24 -0
- package/dist/components/AI/UserAvatar.d.ts.map +1 -0
- package/dist/components/AI/UserMessage.d.ts +26 -0
- package/dist/components/AI/UserMessage.d.ts.map +1 -0
- package/dist/components/AI/index.d.ts +39 -0
- package/dist/components/AI/index.d.ts.map +1 -0
- package/dist/components/AI/tokens.d.ts +132 -0
- package/dist/components/AI/tokens.d.ts.map +1 -0
- package/dist/components/AI/types/index.d.ts +6 -0
- package/dist/components/AI/types/index.d.ts.map +1 -0
- package/dist/components/AI/types/response.d.ts +312 -0
- package/dist/components/AI/types/response.d.ts.map +1 -0
- package/dist/components/AppLayout/AIFab.d.ts +50 -0
- package/dist/components/AppLayout/AIFab.d.ts.map +1 -0
- package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts +32 -0
- package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts.map +1 -0
- package/dist/components/AppLayout/AppLayout.d.ts +154 -0
- package/dist/components/AppLayout/AppLayout.d.ts.map +1 -0
- package/dist/components/AppLayout/InsightEnginePanel.d.ts +141 -0
- package/dist/components/AppLayout/InsightEnginePanel.d.ts.map +1 -0
- package/dist/components/AppLayout/ResizablePanel.d.ts +52 -0
- package/dist/components/AppLayout/ResizablePanel.d.ts.map +1 -0
- package/dist/components/AppLayout/ThreadHistorySidebar.d.ts +53 -0
- package/dist/components/AppLayout/ThreadHistorySidebar.d.ts.map +1 -0
- package/dist/components/AppLayout/index.d.ts +27 -0
- package/dist/components/AppLayout/index.d.ts.map +1 -0
- package/dist/components/Charts/AreaChart.d.ts +38 -0
- package/dist/components/Charts/AreaChart.d.ts.map +1 -0
- package/dist/components/Charts/BarChart.d.ts +47 -0
- package/dist/components/Charts/BarChart.d.ts.map +1 -0
- package/dist/components/Charts/ChartWrapper.d.ts +48 -0
- package/dist/components/Charts/ChartWrapper.d.ts.map +1 -0
- package/dist/components/Charts/ComposedChart.d.ts +34 -0
- package/dist/components/Charts/ComposedChart.d.ts.map +1 -0
- package/dist/components/Charts/CustomLegend.d.ts +69 -0
- package/dist/components/Charts/CustomLegend.d.ts.map +1 -0
- package/dist/components/Charts/CustomTooltip.d.ts +55 -0
- package/dist/components/Charts/CustomTooltip.d.ts.map +1 -0
- package/dist/components/Charts/LineChart.d.ts +36 -0
- package/dist/components/Charts/LineChart.d.ts.map +1 -0
- package/dist/components/Charts/PieChart.d.ts +52 -0
- package/dist/components/Charts/PieChart.d.ts.map +1 -0
- package/dist/components/Charts/RadialChart.d.ts +51 -0
- package/dist/components/Charts/RadialChart.d.ts.map +1 -0
- package/dist/components/Charts/ScatterChart.d.ts +55 -0
- package/dist/components/Charts/ScatterChart.d.ts.map +1 -0
- package/dist/components/Charts/Sparkline.d.ts +44 -0
- package/dist/components/Charts/Sparkline.d.ts.map +1 -0
- package/dist/components/Charts/index.d.ts +48 -0
- package/dist/components/Charts/index.d.ts.map +1 -0
- package/dist/components/Charts/tokens.d.ts +200 -0
- package/dist/components/Charts/tokens.d.ts.map +1 -0
- package/dist/components/Charts/types.d.ts +595 -0
- package/dist/components/Charts/types.d.ts.map +1 -0
- package/dist/components/Combobox/Combobox.d.ts +99 -0
- package/dist/components/Combobox/Combobox.d.ts.map +1 -0
- package/dist/components/Combobox/index.d.ts +3 -0
- package/dist/components/Combobox/index.d.ts.map +1 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts +76 -0
- package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -0
- package/dist/components/CommandPalette/index.d.ts +2 -0
- package/dist/components/CommandPalette/index.d.ts.map +1 -0
- package/dist/components/DataCard/DataCard.d.ts +60 -0
- package/dist/components/DataCard/DataCard.d.ts.map +1 -0
- package/dist/components/DataCard/index.d.ts +2 -0
- package/dist/components/DataCard/index.d.ts.map +1 -0
- package/dist/components/DataTable/CellRenderers.d.ts +78 -0
- package/dist/components/DataTable/CellRenderers.d.ts.map +1 -0
- package/dist/components/DataTable/DataTable.d.ts +36 -0
- package/dist/components/DataTable/DataTable.d.ts.map +1 -0
- package/dist/components/DataTable/InlineAddRow.d.ts +27 -0
- package/dist/components/DataTable/InlineAddRow.d.ts.map +1 -0
- package/dist/components/DataTable/index.d.ts +6 -0
- package/dist/components/DataTable/index.d.ts.map +1 -0
- package/dist/components/DataTable/tokens.d.ts +132 -0
- package/dist/components/DataTable/tokens.d.ts.map +1 -0
- package/dist/components/DataTable/types.d.ts +334 -0
- package/dist/components/DataTable/types.d.ts.map +1 -0
- package/dist/components/DiffViewer/DiffViewer.d.ts +63 -0
- package/dist/components/DiffViewer/DiffViewer.d.ts.map +1 -0
- package/dist/components/DiffViewer/index.d.ts +3 -0
- package/dist/components/DiffViewer/index.d.ts.map +1 -0
- package/dist/components/DockLayout/DockLayout.d.ts +78 -0
- package/dist/components/DockLayout/DockLayout.d.ts.map +1 -0
- package/dist/components/DockLayout/index.d.ts +3 -0
- package/dist/components/DockLayout/index.d.ts.map +1 -0
- package/dist/components/FileUpload/FileUpload.d.ts +93 -0
- package/dist/components/FileUpload/FileUpload.d.ts.map +1 -0
- package/dist/components/FileUpload/index.d.ts +2 -0
- package/dist/components/FileUpload/index.d.ts.map +1 -0
- package/dist/components/FilterBar/FilterBar.d.ts +76 -0
- package/dist/components/FilterBar/FilterBar.d.ts.map +1 -0
- package/dist/components/FilterBar/index.d.ts +2 -0
- package/dist/components/FilterBar/index.d.ts.map +1 -0
- package/dist/components/Footer.d.ts +30 -0
- package/dist/components/Footer.d.ts.map +1 -0
- package/dist/components/Icon.d.ts +67 -0
- package/dist/components/Icon.d.ts.map +1 -0
- package/dist/components/IllustratedMessage.d.ts +99 -0
- package/dist/components/IllustratedMessage.d.ts.map +1 -0
- package/dist/components/LandingPage/FeatureCard.d.ts +89 -0
- package/dist/components/LandingPage/FeatureCard.d.ts.map +1 -0
- package/dist/components/LandingPage/LandingPage.d.ts +126 -0
- package/dist/components/LandingPage/LandingPage.d.ts.map +1 -0
- package/dist/components/LandingPage/index.d.ts +11 -0
- package/dist/components/LandingPage/index.d.ts.map +1 -0
- package/dist/components/Modal/Modal.d.ts +181 -0
- package/dist/components/Modal/Modal.d.ts.map +1 -0
- package/dist/components/Modal/index.d.ts +2 -0
- package/dist/components/Modal/index.d.ts.map +1 -0
- package/dist/components/PageHeader/PageHeader.d.ts +91 -0
- package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
- package/dist/components/PageHeader/index.d.ts +2 -0
- package/dist/components/PageHeader/index.d.ts.map +1 -0
- package/dist/components/RichTextEditor/RichTextEditor.d.ts +52 -0
- package/dist/components/RichTextEditor/RichTextEditor.d.ts.map +1 -0
- package/dist/components/RichTextEditor/index.d.ts +3 -0
- package/dist/components/RichTextEditor/index.d.ts.map +1 -0
- package/dist/components/SearchInput/SearchInput.d.ts +66 -0
- package/dist/components/SearchInput/SearchInput.d.ts.map +1 -0
- package/dist/components/SearchInput/index.d.ts +2 -0
- package/dist/components/SearchInput/index.d.ts.map +1 -0
- package/dist/components/SimpleTable/SimpleTable.d.ts +93 -0
- package/dist/components/SimpleTable/SimpleTable.d.ts.map +1 -0
- package/dist/components/SimpleTable/index.d.ts +3 -0
- package/dist/components/SimpleTable/index.d.ts.map +1 -0
- package/dist/components/SplitPane/SplitPane.d.ts +52 -0
- package/dist/components/SplitPane/SplitPane.d.ts.map +1 -0
- package/dist/components/SplitPane/index.d.ts +3 -0
- package/dist/components/SplitPane/index.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Badge.d.ts +71 -0
- package/dist/components/StatusIndicator/Badge.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Chip.d.ts +64 -0
- package/dist/components/StatusIndicator/Chip.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Indicators.d.ts +81 -0
- package/dist/components/StatusIndicator/Indicators.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Legend.d.ts +42 -0
- package/dist/components/StatusIndicator/Legend.d.ts.map +1 -0
- package/dist/components/StatusIndicator/Shapes.d.ts +32 -0
- package/dist/components/StatusIndicator/Shapes.d.ts.map +1 -0
- package/dist/components/StatusIndicator/StatusIndicator.d.ts +183 -0
- package/dist/components/StatusIndicator/StatusIndicator.d.ts.map +1 -0
- package/dist/components/StatusIndicator/index.d.ts +55 -0
- package/dist/components/StatusIndicator/index.d.ts.map +1 -0
- package/dist/components/StatusIndicator/types.d.ts +37 -0
- package/dist/components/StatusIndicator/types.d.ts.map +1 -0
- package/dist/components/Timeline/Timeline.d.ts +89 -0
- package/dist/components/Timeline/Timeline.d.ts.map +1 -0
- package/dist/components/Timeline/index.d.ts +2 -0
- package/dist/components/Timeline/index.d.ts.map +1 -0
- package/dist/components/Toast/Toast.d.ts +124 -0
- package/dist/components/Toast/Toast.d.ts.map +1 -0
- package/dist/components/Toast/index.d.ts +2 -0
- package/dist/components/Toast/index.d.ts.map +1 -0
- package/dist/components/TopNavHeader.d.ts +55 -0
- package/dist/components/TopNavHeader.d.ts.map +1 -0
- package/dist/components/TopNavWithSidebar.d.ts +64 -0
- package/dist/components/TopNavWithSidebar.d.ts.map +1 -0
- package/dist/components/TransferList/TransferList.d.ts +62 -0
- package/dist/components/TransferList/TransferList.d.ts.map +1 -0
- package/dist/components/TransferList/index.d.ts +3 -0
- package/dist/components/TransferList/index.d.ts.map +1 -0
- package/dist/components/TreeView/TreeView.d.ts +89 -0
- package/dist/components/TreeView/TreeView.d.ts.map +1 -0
- package/dist/components/TreeView/index.d.ts +3 -0
- package/dist/components/TreeView/index.d.ts.map +1 -0
- package/dist/components/index.d.ts +119 -0
- package/dist/components/index.d.ts.map +1 -0
- package/dist/components/internal/index.d.ts +27 -0
- package/dist/components/internal/index.d.ts.map +1 -0
- package/dist/components/navigation/components.d.ts +85 -0
- package/dist/components/navigation/components.d.ts.map +1 -0
- package/dist/components/navigation/hooks.d.ts +65 -0
- package/dist/components/navigation/hooks.d.ts.map +1 -0
- package/dist/components/navigation/index.d.ts +28 -0
- package/dist/components/navigation/index.d.ts.map +1 -0
- package/dist/components/navigation/styled.d.ts +13 -0
- package/dist/components/navigation/styled.d.ts.map +1 -0
- package/dist/components/navigation/types.d.ts +58 -0
- package/dist/components/navigation/types.d.ts.map +1 -0
- package/dist/components/shared/TrinityLogoSvg.d.ts +29 -0
- package/dist/components/shared/TrinityLogoSvg.d.ts.map +1 -0
- package/dist/components/shared.d.ts +92 -0
- package/dist/components/shared.d.ts.map +1 -0
- package/dist/components/templates/Dashboard/DashboardTemplate.d.ts +66 -0
- package/dist/components/templates/Dashboard/DashboardTemplate.d.ts.map +1 -0
- package/dist/components/templates/Dashboard/index.d.ts +2 -0
- package/dist/components/templates/Dashboard/index.d.ts.map +1 -0
- package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts +88 -0
- package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts.map +1 -0
- package/dist/components/templates/ListDetail/index.d.ts +2 -0
- package/dist/components/templates/ListDetail/index.d.ts.map +1 -0
- package/dist/components/templates/Settings/SettingsTemplate.d.ts +78 -0
- package/dist/components/templates/Settings/SettingsTemplate.d.ts.map +1 -0
- package/dist/components/templates/Settings/index.d.ts +2 -0
- package/dist/components/templates/Settings/index.d.ts.map +1 -0
- package/dist/components/templates/index.d.ts +5 -0
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/essentials.d.ts +49 -0
- package/dist/essentials.d.ts.map +1 -0
- package/dist/essentials.js +256 -0
- package/dist/form.d.ts +212 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/hierarchy.d.ts +371 -0
- package/dist/hierarchy.d.ts.map +1 -0
- package/dist/hooks/useTrinityPalette.d.ts +54 -0
- package/dist/hooks/useTrinityPalette.d.ts.map +1 -0
- package/dist/hooks.d.ts +217 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/index.d.ts +111 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2293 -3731
- package/dist/presets/analytics.d.ts +197 -0
- package/dist/presets/analytics.d.ts.map +1 -0
- package/dist/presets/crm.d.ts +67 -0
- package/dist/presets/crm.d.ts.map +1 -0
- package/dist/presets/index.d.ts +21 -0
- package/dist/presets/index.d.ts.map +1 -0
- package/dist/presets/portal.d.ts +67 -0
- package/dist/presets/portal.d.ts.map +1 -0
- package/dist/theme.d.ts +221 -0
- package/dist/theme.d.ts.map +1 -0
- package/dist/tokens.d.ts +4760 -0
- package/dist/tokens.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview AIVisuals component.
|
|
3
|
+
* @module components/AI/AIVisuals
|
|
4
|
+
* AI Visual Components
|
|
5
|
+
* Gradient text, stat cards, and decorative elements
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* import { AIVisuals } from '@trinityui/design-system';
|
|
9
|
+
*
|
|
10
|
+
* <AIVisuals
|
|
11
|
+
* >
|
|
12
|
+
* <div>Example content</div>
|
|
13
|
+
* </AIVisuals>
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { SxProps, Theme } from '@mui/material';
|
|
18
|
+
/**
|
|
19
|
+
* Props for GradientText component.
|
|
20
|
+
*/
|
|
21
|
+
export interface GradientTextProps {
|
|
22
|
+
/** Text content */
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
/** Gradient start color */
|
|
25
|
+
startColor?: string;
|
|
26
|
+
/** Gradient end color */
|
|
27
|
+
endColor?: string;
|
|
28
|
+
/** Gradient direction */
|
|
29
|
+
direction?: string;
|
|
30
|
+
/** Typography variant */
|
|
31
|
+
variant?: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'body1' | 'body2' | 'subtitle1' | 'subtitle2';
|
|
32
|
+
/** Font weight */
|
|
33
|
+
fontWeight?: number | string;
|
|
34
|
+
/** Custom sx props */
|
|
35
|
+
sx?: SxProps<Theme>;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Gradient Text - Text with gradient fill effect.
|
|
39
|
+
*/
|
|
40
|
+
export declare const GradientText: React.FC<GradientTextProps>;
|
|
41
|
+
/**
|
|
42
|
+
* Props for StatCard component.
|
|
43
|
+
*/
|
|
44
|
+
export interface StatCardProps {
|
|
45
|
+
/** Stat label */
|
|
46
|
+
label: string;
|
|
47
|
+
/** Stat value */
|
|
48
|
+
value: string | number;
|
|
49
|
+
/** Icon name */
|
|
50
|
+
icon?: string;
|
|
51
|
+
/** Trend value (positive or negative number) */
|
|
52
|
+
trend?: number;
|
|
53
|
+
/** Trend label */
|
|
54
|
+
trendLabel?: string;
|
|
55
|
+
/** Card variant */
|
|
56
|
+
variant?: 'default' | 'gradient' | 'outlined';
|
|
57
|
+
/** Size */
|
|
58
|
+
size?: 'small' | 'medium' | 'large';
|
|
59
|
+
/** Custom sx props */
|
|
60
|
+
sx?: SxProps<Theme>;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Stat Card - Display statistical metrics with optional trend.
|
|
64
|
+
*/
|
|
65
|
+
export declare const StatCard: React.FC<StatCardProps>;
|
|
66
|
+
/**
|
|
67
|
+
* Props for GradientIconBadge component.
|
|
68
|
+
*/
|
|
69
|
+
export interface GradientIconBadgeProps {
|
|
70
|
+
/** Icon name */
|
|
71
|
+
icon: string;
|
|
72
|
+
/** Size */
|
|
73
|
+
size?: 'small' | 'medium' | 'large';
|
|
74
|
+
/** Gradient start color */
|
|
75
|
+
startColor?: string;
|
|
76
|
+
/** Gradient end color */
|
|
77
|
+
endColor?: string;
|
|
78
|
+
/** Badge label */
|
|
79
|
+
label?: string;
|
|
80
|
+
/** Custom sx props */
|
|
81
|
+
sx?: SxProps<Theme>;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Gradient Icon Badge - Icon with gradient background.
|
|
85
|
+
*/
|
|
86
|
+
export declare const GradientIconBadge: React.FC<GradientIconBadgeProps>;
|
|
87
|
+
/**
|
|
88
|
+
* Props for AIShimmer component.
|
|
89
|
+
*/
|
|
90
|
+
export interface AIShimmerProps {
|
|
91
|
+
/** Width of shimmer */
|
|
92
|
+
width?: string | number;
|
|
93
|
+
/** Height of shimmer */
|
|
94
|
+
height?: string | number;
|
|
95
|
+
/** Border radius */
|
|
96
|
+
borderRadius?: number;
|
|
97
|
+
/** Custom sx props */
|
|
98
|
+
sx?: SxProps<Theme>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* AI Shimmer - Loading shimmer effect with AI gradient.
|
|
102
|
+
*/
|
|
103
|
+
export declare const AIShimmer: React.FC<AIShimmerProps>;
|
|
104
|
+
//# sourceMappingURL=AIVisuals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIVisuals.d.ts","sourceRoot":"","sources":["../../../src/components/AI/AIVisuals.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAKL,OAAO,EACP,KAAK,EACN,MAAM,eAAe,CAAC;AAkBvB;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mBAAmB;IACnB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,OAAO,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,WAAW,GAAG,WAAW,CAAC;IAClG,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CAwBpD,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,iBAAiB;IACjB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,gBAAgB;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mBAAmB;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;IAC9C,WAAW;IACX,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA8I5C,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,gBAAgB;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW;IACX,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAwC9D,CAAC;AAMF;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA4B9C,CAAC"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview AIVoiceInput component.
|
|
3
|
+
* @module components/AI/AIVoiceInput
|
|
4
|
+
* AI Voice Input Components
|
|
5
|
+
* Voice mode overlay and listening indicator for AI chat
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* import { AIVoiceOverlay } from '@trinityui/design-system';
|
|
10
|
+
*
|
|
11
|
+
* <AIVoiceOverlay
|
|
12
|
+
* open={false}
|
|
13
|
+
* isListening={false}
|
|
14
|
+
* onListeningToggle={() => {}}
|
|
15
|
+
* onClose={() => {}}
|
|
16
|
+
* />
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import React from 'react';
|
|
20
|
+
import { SxProps, Theme } from '@mui/material';
|
|
21
|
+
/**
|
|
22
|
+
* Props for AIVoiceOverlay component.
|
|
23
|
+
*/
|
|
24
|
+
export interface AIVoiceOverlayProps {
|
|
25
|
+
/** Whether the voice overlay is open */
|
|
26
|
+
open: boolean;
|
|
27
|
+
/** Whether currently listening */
|
|
28
|
+
isListening: boolean;
|
|
29
|
+
/** Toggle listening state */
|
|
30
|
+
onListeningToggle: () => void;
|
|
31
|
+
/** Close the voice overlay */
|
|
32
|
+
onClose: () => void;
|
|
33
|
+
/** Listening text */
|
|
34
|
+
listeningText?: string;
|
|
35
|
+
/** Ready text */
|
|
36
|
+
readyText?: string;
|
|
37
|
+
/** Listening instruction */
|
|
38
|
+
listeningInstruction?: string;
|
|
39
|
+
/** Ready instruction */
|
|
40
|
+
readyInstruction?: string;
|
|
41
|
+
/** Custom sx props */
|
|
42
|
+
sx?: SxProps<Theme>;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Props for AIListeningIndicator component.
|
|
46
|
+
*/
|
|
47
|
+
export interface AIListeningIndicatorProps {
|
|
48
|
+
/** Whether currently listening */
|
|
49
|
+
isListening: boolean;
|
|
50
|
+
/** Stop listening callback */
|
|
51
|
+
onStop: () => void;
|
|
52
|
+
/** Display text */
|
|
53
|
+
text?: string;
|
|
54
|
+
/** Custom sx props */
|
|
55
|
+
sx?: SxProps<Theme>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* AI Voice Overlay - Full voice mode interface for hands-free input
|
|
59
|
+
*/
|
|
60
|
+
export declare const AIVoiceOverlay: React.FC<AIVoiceOverlayProps>;
|
|
61
|
+
/**
|
|
62
|
+
* AI Listening Indicator - Inline indicator shown when voice is being captured
|
|
63
|
+
*/
|
|
64
|
+
export declare const AIListeningIndicator: React.FC<AIListeningIndicatorProps>;
|
|
65
|
+
export default AIVoiceOverlay;
|
|
66
|
+
//# sourceMappingURL=AIVoiceInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AIVoiceInput.d.ts","sourceRoot":"","sources":["../../../src/components/AI/AIVoiceInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAQL,OAAO,EACP,KAAK,EACN,MAAM,eAAe,CAAC;AAQvB;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,IAAI,EAAE,OAAO,CAAC;IACd,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,iBAAiB,EAAE,MAAM,IAAI,CAAC;IAC9B,8BAA8B;IAC9B,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,qBAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,mBAAmB;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAMD;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,mBAAmB,CAuFxD,CAAC;AAMF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CA+CpE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview ChatHeader component.
|
|
3
|
+
* @module components/AI/ChatHeader
|
|
4
|
+
* ChatHeader - Minimal header for chat/insight panels
|
|
5
|
+
*
|
|
6
|
+
* Responsibilities:
|
|
7
|
+
* - Display title
|
|
8
|
+
* - Expand/collapse toggle (sidepanel ↔ expanded)
|
|
9
|
+
* - Close button
|
|
10
|
+
* - Stateless UI (callbacks only)
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* import { ChatHeader } from '@trinityui/design-system';
|
|
15
|
+
*
|
|
16
|
+
* <ChatHeader
|
|
17
|
+
* title="Example"
|
|
18
|
+
* viewMode={undefined as never}
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import React from 'react';
|
|
23
|
+
import { SxProps, Theme } from '@mui/material';
|
|
24
|
+
export type ChatViewMode = 'sidepanel' | 'expanded';
|
|
25
|
+
/**
|
|
26
|
+
* Props for ChatHeader component.
|
|
27
|
+
*/
|
|
28
|
+
export interface ChatHeaderProps {
|
|
29
|
+
/** Header title */
|
|
30
|
+
title: string;
|
|
31
|
+
/** Current view mode */
|
|
32
|
+
viewMode: ChatViewMode;
|
|
33
|
+
/** Toggle between sidepanel and expanded view */
|
|
34
|
+
onToggleView?: () => void;
|
|
35
|
+
/** Close the panel */
|
|
36
|
+
onClose?: () => void;
|
|
37
|
+
/** Show gradient AI logo before title */
|
|
38
|
+
showLogo?: boolean;
|
|
39
|
+
/** Custom sx props */
|
|
40
|
+
sx?: SxProps<Theme>;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* ChatHeader - Stateless header with title and view controls.
|
|
44
|
+
*
|
|
45
|
+
* Layout: [Title] -------- [Toggle] [Close]
|
|
46
|
+
*
|
|
47
|
+
* Uses MUI AppBar/Toolbar for consistent elevation and structure.
|
|
48
|
+
* Semantic tokens only - no hardcoded colors.
|
|
49
|
+
*/
|
|
50
|
+
export declare const ChatHeader: React.FC<ChatHeaderProps>;
|
|
51
|
+
export default ChatHeader;
|
|
52
|
+
//# sourceMappingURL=ChatHeader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHeader.d.ts","sourceRoot":"","sources":["../../../src/components/AI/ChatHeader.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAOL,OAAO,EACP,KAAK,EACN,MAAM,eAAe,CAAC;AASvB,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,UAAU,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,QAAQ,EAAE,YAAY,CAAC;IACvB,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,sBAAsB;IACtB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,yCAAyC;IACzC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CA4EhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview ChatHistoryList component.
|
|
3
|
+
* @module components/AI/ChatHistoryList
|
|
4
|
+
* ChatHistoryList - List of past conversations for chat panels
|
|
5
|
+
*
|
|
6
|
+
* Responsibilities:
|
|
7
|
+
* - Render list of past conversations
|
|
8
|
+
* - Allow selecting an active conversation
|
|
9
|
+
* - Visually indicate active chat
|
|
10
|
+
* - Compact for sidepanel, expandable in expanded view
|
|
11
|
+
* - Keyboard navigation support
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* import { ChatHistoryList } from '@trinityui/design-system';
|
|
16
|
+
*
|
|
17
|
+
* <ChatHistoryList
|
|
18
|
+
* chats={[]}
|
|
19
|
+
* />
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
import React from 'react';
|
|
23
|
+
import { SxProps, Theme } from '@mui/material';
|
|
24
|
+
export interface ChatHistoryItem {
|
|
25
|
+
/** Unique identifier */
|
|
26
|
+
id: string;
|
|
27
|
+
/** Conversation title / first message preview */
|
|
28
|
+
title: string;
|
|
29
|
+
/** Human-readable timestamp */
|
|
30
|
+
timestamp: string;
|
|
31
|
+
/** Whether the chat is pinned */
|
|
32
|
+
pinned?: boolean;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Props for ChatHistoryList component.
|
|
36
|
+
*/
|
|
37
|
+
export interface ChatHistoryListProps {
|
|
38
|
+
/** List of chat history items */
|
|
39
|
+
chats: ChatHistoryItem[];
|
|
40
|
+
/** Currently active chat ID */
|
|
41
|
+
activeChatId?: string;
|
|
42
|
+
/** Selection callback */
|
|
43
|
+
onSelectChat?: (id: string) => void;
|
|
44
|
+
/** Rename callback */
|
|
45
|
+
onRename?: (id: string) => void;
|
|
46
|
+
/** Delete callback */
|
|
47
|
+
onDelete?: (id: string) => void;
|
|
48
|
+
/** Share callback */
|
|
49
|
+
onShare?: (id: string) => void;
|
|
50
|
+
/** Pin/unpin callback */
|
|
51
|
+
onPin?: (id: string) => void;
|
|
52
|
+
/** Add to project callback */
|
|
53
|
+
onAddToProject?: (id: string) => void;
|
|
54
|
+
/** Empty state message */
|
|
55
|
+
emptyMessage?: string;
|
|
56
|
+
/** Compact mode for sidepanel */
|
|
57
|
+
compact?: boolean;
|
|
58
|
+
/** Custom sx props */
|
|
59
|
+
sx?: SxProps<Theme>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* ChatHistoryList - Stateless list of conversation history.
|
|
63
|
+
*
|
|
64
|
+
* Layout:
|
|
65
|
+
* ┌────────────────────────────────────┐
|
|
66
|
+
* │ 💬 Q4 Revenue Analysis 2h ago │ ← active (highlighted)
|
|
67
|
+
* │ 💬 Sales Pipeline Review Yesterday │
|
|
68
|
+
* │ 💬 Customer Feedback... 2 days ago │
|
|
69
|
+
* └────────────────────────────────────┘
|
|
70
|
+
*
|
|
71
|
+
* Accessibility:
|
|
72
|
+
* - Uses MUI List/ListItemButton for built-in keyboard navigation
|
|
73
|
+
* - Arrow keys navigate between items
|
|
74
|
+
* - Enter/Space selects item
|
|
75
|
+
* - aria-selected indicates active item
|
|
76
|
+
* - role="listbox" for selection semantics
|
|
77
|
+
*/
|
|
78
|
+
export declare const ChatHistoryList: React.FC<ChatHistoryListProps>;
|
|
79
|
+
export default ChatHistoryList;
|
|
80
|
+
//# sourceMappingURL=ChatHistoryList.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatHistoryList.d.ts","sourceRoot":"","sources":["../../../src/components/AI/ChatHistoryList.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAmB,MAAM,OAAO,CAAC;AACxC,OAAO,EAYL,OAAO,EACP,KAAK,EACN,MAAM,eAAe,CAAC;AAQvB,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,KAAK,EAAE,eAAe,EAAE,CAAC;IACzB,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yBAAyB;IACzB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,sBAAsB;IACtB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,qBAAqB;IACrB,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,yBAAyB;IACzB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7B,8BAA8B;IAC9B,cAAc,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,0BAA0B;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAiP1D,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview ChatThread component.
|
|
3
|
+
* @module components/AI/ChatThread
|
|
4
|
+
* ChatThread - Scrollable messages area
|
|
5
|
+
*
|
|
6
|
+
* Extracted from InsightEngine for reuse and testing.
|
|
7
|
+
*
|
|
8
|
+
* Rendering Logic:
|
|
9
|
+
* - User messages → UserMessage (simple text bubble)
|
|
10
|
+
* - AI messages → AIMessage with:
|
|
11
|
+
* - `response` prop if structured AIResponse is present
|
|
12
|
+
* - `children` with Typography fallback for simple text
|
|
13
|
+
*
|
|
14
|
+
* No AI logic here - purely iterates and renders.
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* import { ChatThread } from '@trinityui/design-system';
|
|
18
|
+
*
|
|
19
|
+
* <ChatThread
|
|
20
|
+
* messages={[]}
|
|
21
|
+
* />
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import React from 'react';
|
|
25
|
+
import { type AISourceCategory } from './AISourcesPanel';
|
|
26
|
+
import { type AIResponse } from './types';
|
|
27
|
+
/**
|
|
28
|
+
* Message in the chat thread.
|
|
29
|
+
*
|
|
30
|
+
* For user messages: only `content` is used.
|
|
31
|
+
* For AI messages: use `response` for structured content, or `content` for simple text.
|
|
32
|
+
*/
|
|
33
|
+
export interface ChatMessage {
|
|
34
|
+
id: string;
|
|
35
|
+
role: 'user' | 'assistant';
|
|
36
|
+
/** Simple text content (required for user, fallback for assistant) */
|
|
37
|
+
content: string;
|
|
38
|
+
/**
|
|
39
|
+
* Structured AI response (for assistant messages only).
|
|
40
|
+
* When present, this is rendered via AIResponseRenderer.
|
|
41
|
+
*/
|
|
42
|
+
response?: AIResponse;
|
|
43
|
+
/** Sources referenced in this response (using AISourcesPanel structure) */
|
|
44
|
+
sources?: AISourceCategory[];
|
|
45
|
+
/** Related questions for this response */
|
|
46
|
+
relatedQuestions?: string[];
|
|
47
|
+
timestamp?: string;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Props for ChatThread component.
|
|
51
|
+
*/
|
|
52
|
+
export interface ChatThreadProps {
|
|
53
|
+
messages: ChatMessage[];
|
|
54
|
+
relatedQuestions?: string[];
|
|
55
|
+
onRelatedQuestionClick?: (q: string) => void;
|
|
56
|
+
suggestedActions?: Array<{
|
|
57
|
+
label: string;
|
|
58
|
+
onClick?: () => void;
|
|
59
|
+
}>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* ChatThread - Scrollable messages area.
|
|
63
|
+
*
|
|
64
|
+
* Rendering Logic:
|
|
65
|
+
* - User messages → UserMessage (simple text bubble)
|
|
66
|
+
* - AI messages → AIMessage with:
|
|
67
|
+
* - `response` prop if structured AIResponse is present
|
|
68
|
+
* - `children` with Typography fallback for simple text
|
|
69
|
+
*
|
|
70
|
+
* No AI logic here - purely iterates and renders.
|
|
71
|
+
*/
|
|
72
|
+
export declare const ChatThread: React.FC<ChatThreadProps>;
|
|
73
|
+
export default ChatThread;
|
|
74
|
+
//# sourceMappingURL=ChatThread.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChatThread.d.ts","sourceRoot":"","sources":["../../../src/components/AI/ChatThread.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGzE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,sEAAsE;IACtE,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,sBAAsB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC7C,gBAAgB,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAC;CACnE;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAkHhD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview InsightEngine component.
|
|
3
|
+
* @module components/AI/InsightEngine
|
|
4
|
+
* InsightEngine - Composition container for AI chat interface
|
|
5
|
+
*
|
|
6
|
+
* This is a pure layout/composition component with NO AI logic.
|
|
7
|
+
* It composes:
|
|
8
|
+
* - ChatHeader
|
|
9
|
+
* - ChatHistoryList (collapsible)
|
|
10
|
+
* - ChatThread (messages area)
|
|
11
|
+
* - AIRelatedQuestions
|
|
12
|
+
* - AISuggestedAction / AIActionsGroup
|
|
13
|
+
* - InsightEngineInput
|
|
14
|
+
*
|
|
15
|
+
* State owned by InsightEngine:
|
|
16
|
+
* - viewMode ('sidepanel' | 'expanded')
|
|
17
|
+
* - isOpen
|
|
18
|
+
* - activeChatId
|
|
19
|
+
* - historyExpanded (for sidepanel mode)
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* import { MOCK_MESSAGES } from '@trinityui/design-system';
|
|
24
|
+
*
|
|
25
|
+
* <MOCK_MESSAGES
|
|
26
|
+
* isOpen={false}
|
|
27
|
+
* onClose={() => {}}
|
|
28
|
+
* />
|
|
29
|
+
* ```
|
|
30
|
+
*/
|
|
31
|
+
import React from 'react';
|
|
32
|
+
import { SxProps, Theme } from '@mui/material';
|
|
33
|
+
import { type ChatViewMode } from './ChatHeader';
|
|
34
|
+
import { type ChatHistoryItem } from './ChatHistoryList';
|
|
35
|
+
import { type ChatMessage } from './ChatThread';
|
|
36
|
+
import { type AISourceCategory, type AISourceItem } from './AISourcesPanel';
|
|
37
|
+
import { type ModelOption, type SourceOption } from './InsightEngineInput';
|
|
38
|
+
/** Re-export source types from AISourcesPanel for convenience */
|
|
39
|
+
export type { AISourceCategory, AISourceItem };
|
|
40
|
+
/** Re-export ChatMessage from ChatThread */
|
|
41
|
+
export type { ChatMessage } from './ChatThread';
|
|
42
|
+
/**
|
|
43
|
+
* Props for InsightEngine component.
|
|
44
|
+
*/
|
|
45
|
+
export interface InsightEngineProps {
|
|
46
|
+
/** Whether the panel is open */
|
|
47
|
+
isOpen: boolean;
|
|
48
|
+
/** Close callback */
|
|
49
|
+
onClose: () => void;
|
|
50
|
+
/** Initial view mode */
|
|
51
|
+
defaultViewMode?: ChatViewMode;
|
|
52
|
+
/** Panel title */
|
|
53
|
+
title?: string;
|
|
54
|
+
/** List of past chats */
|
|
55
|
+
chats?: ChatHistoryItem[];
|
|
56
|
+
/** Currently active chat ID */
|
|
57
|
+
activeChatId?: string;
|
|
58
|
+
/** Chat selection callback */
|
|
59
|
+
onSelectChat?: (id: string) => void;
|
|
60
|
+
/** Chat action callbacks */
|
|
61
|
+
onRenameChat?: (id: string) => void;
|
|
62
|
+
onDeleteChat?: (id: string) => void;
|
|
63
|
+
onShareChat?: (id: string) => void;
|
|
64
|
+
onPinChat?: (id: string) => void;
|
|
65
|
+
onAddChatToProject?: (id: string) => void;
|
|
66
|
+
/** Messages in current thread */
|
|
67
|
+
messages?: ChatMessage[];
|
|
68
|
+
/** Input value */
|
|
69
|
+
inputValue?: string;
|
|
70
|
+
/** Input change callback */
|
|
71
|
+
onInputChange?: (value: string) => void;
|
|
72
|
+
/** Send message callback */
|
|
73
|
+
onSendMessage?: (value: string) => void;
|
|
74
|
+
/** Model options */
|
|
75
|
+
models?: ModelOption[];
|
|
76
|
+
/** Selected model ID */
|
|
77
|
+
selectedModel?: string;
|
|
78
|
+
/** Model selection callback */
|
|
79
|
+
onModelChange?: (id: string) => void;
|
|
80
|
+
/** Source options */
|
|
81
|
+
sources?: SourceOption[];
|
|
82
|
+
/** Source toggle callback */
|
|
83
|
+
onSourceToggle?: (id: string, enabled: boolean) => void;
|
|
84
|
+
/** Related questions to display */
|
|
85
|
+
relatedQuestions?: string[];
|
|
86
|
+
/** Related question click callback */
|
|
87
|
+
onRelatedQuestionClick?: (question: string) => void;
|
|
88
|
+
/** Suggested actions */
|
|
89
|
+
suggestedActions?: Array<{
|
|
90
|
+
label: string;
|
|
91
|
+
onClick?: () => void;
|
|
92
|
+
}>;
|
|
93
|
+
/** Sidepanel width */
|
|
94
|
+
sidepanelWidth?: number;
|
|
95
|
+
/** Expanded width */
|
|
96
|
+
expandedWidth?: number;
|
|
97
|
+
/** Custom sx props */
|
|
98
|
+
sx?: SxProps<Theme>;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Example mock messages for development/testing.
|
|
102
|
+
* Demonstrates both simple text and structured AIResponse formats.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```tsx
|
|
106
|
+
* import { MOCK_MESSAGES } from './InsightEngine';
|
|
107
|
+
*
|
|
108
|
+
* <InsightEngine messages={MOCK_MESSAGES} ... />
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare const MOCK_MESSAGES: ChatMessage[];
|
|
112
|
+
/**
|
|
113
|
+
* InsightEngine - Pure composition container for AI chat interface.
|
|
114
|
+
*
|
|
115
|
+
* Layout Strategy:
|
|
116
|
+
*
|
|
117
|
+
* SIDEPANEL MODE (default):
|
|
118
|
+
* ┌─────────────────────────┐
|
|
119
|
+
* │ ChatHeader │
|
|
120
|
+
* ├─────────────────────────┤
|
|
121
|
+
* │ [History Toggle] │ ← Collapsible
|
|
122
|
+
* │ ┌─────────────────────┐ │
|
|
123
|
+
* │ │ ChatHistoryList │ │
|
|
124
|
+
* │ └─────────────────────┘ │
|
|
125
|
+
* ├─────────────────────────┤
|
|
126
|
+
* │ │
|
|
127
|
+
* │ ChatThread (scroll) │
|
|
128
|
+
* │ │
|
|
129
|
+
* ├─────────────────────────┤
|
|
130
|
+
* │ InsightEngineInput │
|
|
131
|
+
* └─────────────────────────┘
|
|
132
|
+
*
|
|
133
|
+
* EXPANDED MODE:
|
|
134
|
+
* ┌────────────────────────────────────────┐
|
|
135
|
+
* │ ChatHeader │
|
|
136
|
+
* ├───────────┬────────────────────────────┤
|
|
137
|
+
* │ │ │
|
|
138
|
+
* │ History │ ChatThread (scroll) │
|
|
139
|
+
* │ List │ │
|
|
140
|
+
* │ │ │
|
|
141
|
+
* │ ├────────────────────────────┤
|
|
142
|
+
* │ │ InsightEngineInput │
|
|
143
|
+
* └───────────┴────────────────────────────┘
|
|
144
|
+
*/
|
|
145
|
+
export declare const InsightEngine: React.FC<InsightEngineProps>;
|
|
146
|
+
export default InsightEngine;
|
|
147
|
+
//# sourceMappingURL=InsightEngine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsightEngine.d.ts","sourceRoot":"","sources":["../../../src/components/AI/InsightEngine.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview InsightEngineInput component.
|
|
3
|
+
* @module components/AI/InsightEngineInput
|
|
4
|
+
* InsightEngineInput Component
|
|
5
|
+
* Composite input combining text input with secondary controls row
|
|
6
|
+
*
|
|
7
|
+
* Mirrors Perplexity-style input composition with:
|
|
8
|
+
* - Clean text input area (no built-in buttons)
|
|
9
|
+
* - Secondary controls row with:
|
|
10
|
+
* - LEFT: Model dropdown, Source dropdown, Deep thinking toggle
|
|
11
|
+
* - RIGHT: Web search, Attachment, Mic, Send buttons
|
|
12
|
+
* - Optional disclaimer text
|
|
13
|
+
*
|
|
14
|
+
* All controls are UI-only with callbacks - no business logic.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```tsx
|
|
18
|
+
* import { InsightEngineInput } from '@trinityui/design-system';
|
|
19
|
+
*
|
|
20
|
+
* <InsightEngineInput />
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
import React from 'react';
|
|
24
|
+
import { SxProps, Theme } from '@mui/material';
|
|
25
|
+
export interface ModelOption {
|
|
26
|
+
/** Unique identifier */
|
|
27
|
+
id: string;
|
|
28
|
+
/** Display label */
|
|
29
|
+
label: string;
|
|
30
|
+
/** Optional description */
|
|
31
|
+
description?: string;
|
|
32
|
+
/** Optional icon name */
|
|
33
|
+
icon?: string;
|
|
34
|
+
}
|
|
35
|
+
export interface SourceOption {
|
|
36
|
+
/** Unique identifier */
|
|
37
|
+
id: string;
|
|
38
|
+
/** Display label */
|
|
39
|
+
label: string;
|
|
40
|
+
/** Optional icon name */
|
|
41
|
+
icon?: string;
|
|
42
|
+
/** Whether this source is enabled */
|
|
43
|
+
enabled?: boolean;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Props for InsightEngineInput component.
|
|
47
|
+
*/
|
|
48
|
+
export interface InsightEngineInputProps {
|
|
49
|
+
/** Current input value (controlled) */
|
|
50
|
+
value?: string;
|
|
51
|
+
/** Change handler for input */
|
|
52
|
+
onChange?: (value: string) => void;
|
|
53
|
+
/** Submit handler */
|
|
54
|
+
onSubmit?: (value: string) => void;
|
|
55
|
+
/** Placeholder text */
|
|
56
|
+
placeholder?: string;
|
|
57
|
+
/** Whether input is disabled */
|
|
58
|
+
disabled?: boolean;
|
|
59
|
+
/** Available AI models */
|
|
60
|
+
models?: ModelOption[];
|
|
61
|
+
/** Currently selected model ID */
|
|
62
|
+
selectedModel?: string;
|
|
63
|
+
/** Model change handler */
|
|
64
|
+
onModelChange?: (modelId: string) => void;
|
|
65
|
+
/** Available data sources with enabled state */
|
|
66
|
+
sources?: SourceOption[];
|
|
67
|
+
/** Source toggle handler - called when a source is toggled */
|
|
68
|
+
onSourceToggle?: (sourceId: string, enabled: boolean) => void;
|
|
69
|
+
/** Web search enabled state */
|
|
70
|
+
webSearchEnabled?: boolean;
|
|
71
|
+
/** Web search toggle handler */
|
|
72
|
+
onWebSearchToggle?: (enabled: boolean) => void;
|
|
73
|
+
/** Deep thinking enabled state */
|
|
74
|
+
deepThinkingEnabled?: boolean;
|
|
75
|
+
/** Deep thinking toggle handler */
|
|
76
|
+
onDeepThinkingToggle?: (enabled: boolean) => void;
|
|
77
|
+
/** Voice input click handler */
|
|
78
|
+
onVoiceClick?: () => void;
|
|
79
|
+
/** Whether currently listening */
|
|
80
|
+
isListening?: boolean;
|
|
81
|
+
/** Attachment button click handler */
|
|
82
|
+
onAttachmentClick?: () => void;
|
|
83
|
+
/** Number of attached files */
|
|
84
|
+
attachmentCount?: number;
|
|
85
|
+
/** Disclaimer text shown below input */
|
|
86
|
+
disclaimer?: string;
|
|
87
|
+
/** Compact mode for side panel */
|
|
88
|
+
compact?: boolean;
|
|
89
|
+
/** Custom sx props */
|
|
90
|
+
sx?: SxProps<Theme>;
|
|
91
|
+
}
|
|
92
|
+
export declare const InsightEngineInput: React.FC<InsightEngineInputProps>;
|
|
93
|
+
export default InsightEngineInput;
|
|
94
|
+
//# sourceMappingURL=InsightEngineInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InsightEngineInput.d.ts","sourceRoot":"","sources":["../../../src/components/AI/InsightEngineInput.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAwC,MAAM,OAAO,CAAC;AAC7D,OAAO,EAaL,OAAO,EACP,KAAK,EACN,MAAM,eAAe,CAAC;AAQvB,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qCAAqC;IACrC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,uCAAuC;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAGnB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,WAAW,EAAE,CAAC;IACvB,kCAAkC;IAClC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAG1C,gDAAgD;IAChD,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAG9D,+BAA+B;IAC/B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gCAAgC;IAChC,iBAAiB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/C,kCAAkC;IAClC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mCAAmC;IACnC,oBAAoB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAGlD,gCAAgC;IAChC,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,kCAAkC;IAClC,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,+BAA+B;IAC/B,eAAe,CAAC,EAAE,MAAM,CAAC;IAGzB,wCAAwC;IACxC,UAAU,CAAC,EAAE,MAAM,CAAC;IAGpB,kCAAkC;IAClC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB;IACtB,EAAE,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CACrB;AAMD,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CA+fhE,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|