@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.
Files changed (271) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/Legend.js +1455 -0
  3. package/dist/accessibility.d.ts +119 -0
  4. package/dist/accessibility.d.ts.map +1 -0
  5. package/dist/assets/index.d.ts +234 -0
  6. package/dist/assets/index.d.ts.map +1 -0
  7. package/dist/components/AI/AIActions.d.ts +104 -0
  8. package/dist/components/AI/AIActions.d.ts.map +1 -0
  9. package/dist/components/AI/AIAvatar.d.ts +32 -0
  10. package/dist/components/AI/AIAvatar.d.ts.map +1 -0
  11. package/dist/components/AI/AIChat.d.ts +142 -0
  12. package/dist/components/AI/AIChat.d.ts.map +1 -0
  13. package/dist/components/AI/AIContainer.d.ts +97 -0
  14. package/dist/components/AI/AIContainer.d.ts.map +1 -0
  15. package/dist/components/AI/AIExplainability.d.ts +46 -0
  16. package/dist/components/AI/AIExplainability.d.ts.map +1 -0
  17. package/dist/components/AI/AILabel.d.ts +43 -0
  18. package/dist/components/AI/AILabel.d.ts.map +1 -0
  19. package/dist/components/AI/AIMessage.d.ts +93 -0
  20. package/dist/components/AI/AIMessage.d.ts.map +1 -0
  21. package/dist/components/AI/AIRelatedQuestions.d.ts +53 -0
  22. package/dist/components/AI/AIRelatedQuestions.d.ts.map +1 -0
  23. package/dist/components/AI/AIResponseRenderer.d.ts +50 -0
  24. package/dist/components/AI/AIResponseRenderer.d.ts.map +1 -0
  25. package/dist/components/AI/AISources.d.ts +66 -0
  26. package/dist/components/AI/AISources.d.ts.map +1 -0
  27. package/dist/components/AI/AISourcesPanel.d.ts +84 -0
  28. package/dist/components/AI/AISourcesPanel.d.ts.map +1 -0
  29. package/dist/components/AI/AITextBlock.d.ts +56 -0
  30. package/dist/components/AI/AITextBlock.d.ts.map +1 -0
  31. package/dist/components/AI/AIVisuals.d.ts +104 -0
  32. package/dist/components/AI/AIVisuals.d.ts.map +1 -0
  33. package/dist/components/AI/AIVoiceInput.d.ts +66 -0
  34. package/dist/components/AI/AIVoiceInput.d.ts.map +1 -0
  35. package/dist/components/AI/ChatHeader.d.ts +52 -0
  36. package/dist/components/AI/ChatHeader.d.ts.map +1 -0
  37. package/dist/components/AI/ChatHistoryList.d.ts +80 -0
  38. package/dist/components/AI/ChatHistoryList.d.ts.map +1 -0
  39. package/dist/components/AI/ChatThread.d.ts +74 -0
  40. package/dist/components/AI/ChatThread.d.ts.map +1 -0
  41. package/dist/components/AI/InsightEngine.d.ts +147 -0
  42. package/dist/components/AI/InsightEngine.d.ts.map +1 -0
  43. package/dist/components/AI/InsightEngineInput.d.ts +94 -0
  44. package/dist/components/AI/InsightEngineInput.d.ts.map +1 -0
  45. package/dist/components/AI/QueryInput.d.ts +114 -0
  46. package/dist/components/AI/QueryInput.d.ts.map +1 -0
  47. package/dist/components/AI/UserAvatar.d.ts +24 -0
  48. package/dist/components/AI/UserAvatar.d.ts.map +1 -0
  49. package/dist/components/AI/UserMessage.d.ts +26 -0
  50. package/dist/components/AI/UserMessage.d.ts.map +1 -0
  51. package/dist/components/AI/index.d.ts +39 -0
  52. package/dist/components/AI/index.d.ts.map +1 -0
  53. package/dist/components/AI/tokens.d.ts +132 -0
  54. package/dist/components/AI/tokens.d.ts.map +1 -0
  55. package/dist/components/AI/types/index.d.ts +6 -0
  56. package/dist/components/AI/types/index.d.ts.map +1 -0
  57. package/dist/components/AI/types/response.d.ts +312 -0
  58. package/dist/components/AI/types/response.d.ts.map +1 -0
  59. package/dist/components/AppLayout/AIFab.d.ts +50 -0
  60. package/dist/components/AppLayout/AIFab.d.ts.map +1 -0
  61. package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts +32 -0
  62. package/dist/components/AppLayout/AIFabLayout.deprecated.d.ts.map +1 -0
  63. package/dist/components/AppLayout/AppLayout.d.ts +154 -0
  64. package/dist/components/AppLayout/AppLayout.d.ts.map +1 -0
  65. package/dist/components/AppLayout/InsightEnginePanel.d.ts +141 -0
  66. package/dist/components/AppLayout/InsightEnginePanel.d.ts.map +1 -0
  67. package/dist/components/AppLayout/ResizablePanel.d.ts +52 -0
  68. package/dist/components/AppLayout/ResizablePanel.d.ts.map +1 -0
  69. package/dist/components/AppLayout/ThreadHistorySidebar.d.ts +53 -0
  70. package/dist/components/AppLayout/ThreadHistorySidebar.d.ts.map +1 -0
  71. package/dist/components/AppLayout/index.d.ts +27 -0
  72. package/dist/components/AppLayout/index.d.ts.map +1 -0
  73. package/dist/components/Charts/AreaChart.d.ts +38 -0
  74. package/dist/components/Charts/AreaChart.d.ts.map +1 -0
  75. package/dist/components/Charts/BarChart.d.ts +47 -0
  76. package/dist/components/Charts/BarChart.d.ts.map +1 -0
  77. package/dist/components/Charts/ChartWrapper.d.ts +48 -0
  78. package/dist/components/Charts/ChartWrapper.d.ts.map +1 -0
  79. package/dist/components/Charts/ComposedChart.d.ts +34 -0
  80. package/dist/components/Charts/ComposedChart.d.ts.map +1 -0
  81. package/dist/components/Charts/CustomLegend.d.ts +69 -0
  82. package/dist/components/Charts/CustomLegend.d.ts.map +1 -0
  83. package/dist/components/Charts/CustomTooltip.d.ts +55 -0
  84. package/dist/components/Charts/CustomTooltip.d.ts.map +1 -0
  85. package/dist/components/Charts/LineChart.d.ts +36 -0
  86. package/dist/components/Charts/LineChart.d.ts.map +1 -0
  87. package/dist/components/Charts/PieChart.d.ts +52 -0
  88. package/dist/components/Charts/PieChart.d.ts.map +1 -0
  89. package/dist/components/Charts/RadialChart.d.ts +51 -0
  90. package/dist/components/Charts/RadialChart.d.ts.map +1 -0
  91. package/dist/components/Charts/ScatterChart.d.ts +55 -0
  92. package/dist/components/Charts/ScatterChart.d.ts.map +1 -0
  93. package/dist/components/Charts/Sparkline.d.ts +44 -0
  94. package/dist/components/Charts/Sparkline.d.ts.map +1 -0
  95. package/dist/components/Charts/index.d.ts +48 -0
  96. package/dist/components/Charts/index.d.ts.map +1 -0
  97. package/dist/components/Charts/tokens.d.ts +200 -0
  98. package/dist/components/Charts/tokens.d.ts.map +1 -0
  99. package/dist/components/Charts/types.d.ts +595 -0
  100. package/dist/components/Charts/types.d.ts.map +1 -0
  101. package/dist/components/Combobox/Combobox.d.ts +99 -0
  102. package/dist/components/Combobox/Combobox.d.ts.map +1 -0
  103. package/dist/components/Combobox/index.d.ts +3 -0
  104. package/dist/components/Combobox/index.d.ts.map +1 -0
  105. package/dist/components/CommandPalette/CommandPalette.d.ts +76 -0
  106. package/dist/components/CommandPalette/CommandPalette.d.ts.map +1 -0
  107. package/dist/components/CommandPalette/index.d.ts +2 -0
  108. package/dist/components/CommandPalette/index.d.ts.map +1 -0
  109. package/dist/components/DataCard/DataCard.d.ts +60 -0
  110. package/dist/components/DataCard/DataCard.d.ts.map +1 -0
  111. package/dist/components/DataCard/index.d.ts +2 -0
  112. package/dist/components/DataCard/index.d.ts.map +1 -0
  113. package/dist/components/DataTable/CellRenderers.d.ts +78 -0
  114. package/dist/components/DataTable/CellRenderers.d.ts.map +1 -0
  115. package/dist/components/DataTable/DataTable.d.ts +36 -0
  116. package/dist/components/DataTable/DataTable.d.ts.map +1 -0
  117. package/dist/components/DataTable/InlineAddRow.d.ts +27 -0
  118. package/dist/components/DataTable/InlineAddRow.d.ts.map +1 -0
  119. package/dist/components/DataTable/index.d.ts +6 -0
  120. package/dist/components/DataTable/index.d.ts.map +1 -0
  121. package/dist/components/DataTable/tokens.d.ts +132 -0
  122. package/dist/components/DataTable/tokens.d.ts.map +1 -0
  123. package/dist/components/DataTable/types.d.ts +334 -0
  124. package/dist/components/DataTable/types.d.ts.map +1 -0
  125. package/dist/components/DiffViewer/DiffViewer.d.ts +63 -0
  126. package/dist/components/DiffViewer/DiffViewer.d.ts.map +1 -0
  127. package/dist/components/DiffViewer/index.d.ts +3 -0
  128. package/dist/components/DiffViewer/index.d.ts.map +1 -0
  129. package/dist/components/DockLayout/DockLayout.d.ts +78 -0
  130. package/dist/components/DockLayout/DockLayout.d.ts.map +1 -0
  131. package/dist/components/DockLayout/index.d.ts +3 -0
  132. package/dist/components/DockLayout/index.d.ts.map +1 -0
  133. package/dist/components/FileUpload/FileUpload.d.ts +93 -0
  134. package/dist/components/FileUpload/FileUpload.d.ts.map +1 -0
  135. package/dist/components/FileUpload/index.d.ts +2 -0
  136. package/dist/components/FileUpload/index.d.ts.map +1 -0
  137. package/dist/components/FilterBar/FilterBar.d.ts +76 -0
  138. package/dist/components/FilterBar/FilterBar.d.ts.map +1 -0
  139. package/dist/components/FilterBar/index.d.ts +2 -0
  140. package/dist/components/FilterBar/index.d.ts.map +1 -0
  141. package/dist/components/Footer.d.ts +30 -0
  142. package/dist/components/Footer.d.ts.map +1 -0
  143. package/dist/components/Icon.d.ts +67 -0
  144. package/dist/components/Icon.d.ts.map +1 -0
  145. package/dist/components/IllustratedMessage.d.ts +99 -0
  146. package/dist/components/IllustratedMessage.d.ts.map +1 -0
  147. package/dist/components/LandingPage/FeatureCard.d.ts +89 -0
  148. package/dist/components/LandingPage/FeatureCard.d.ts.map +1 -0
  149. package/dist/components/LandingPage/LandingPage.d.ts +126 -0
  150. package/dist/components/LandingPage/LandingPage.d.ts.map +1 -0
  151. package/dist/components/LandingPage/index.d.ts +11 -0
  152. package/dist/components/LandingPage/index.d.ts.map +1 -0
  153. package/dist/components/Modal/Modal.d.ts +181 -0
  154. package/dist/components/Modal/Modal.d.ts.map +1 -0
  155. package/dist/components/Modal/index.d.ts +2 -0
  156. package/dist/components/Modal/index.d.ts.map +1 -0
  157. package/dist/components/PageHeader/PageHeader.d.ts +91 -0
  158. package/dist/components/PageHeader/PageHeader.d.ts.map +1 -0
  159. package/dist/components/PageHeader/index.d.ts +2 -0
  160. package/dist/components/PageHeader/index.d.ts.map +1 -0
  161. package/dist/components/RichTextEditor/RichTextEditor.d.ts +52 -0
  162. package/dist/components/RichTextEditor/RichTextEditor.d.ts.map +1 -0
  163. package/dist/components/RichTextEditor/index.d.ts +3 -0
  164. package/dist/components/RichTextEditor/index.d.ts.map +1 -0
  165. package/dist/components/SearchInput/SearchInput.d.ts +66 -0
  166. package/dist/components/SearchInput/SearchInput.d.ts.map +1 -0
  167. package/dist/components/SearchInput/index.d.ts +2 -0
  168. package/dist/components/SearchInput/index.d.ts.map +1 -0
  169. package/dist/components/SimpleTable/SimpleTable.d.ts +93 -0
  170. package/dist/components/SimpleTable/SimpleTable.d.ts.map +1 -0
  171. package/dist/components/SimpleTable/index.d.ts +3 -0
  172. package/dist/components/SimpleTable/index.d.ts.map +1 -0
  173. package/dist/components/SplitPane/SplitPane.d.ts +52 -0
  174. package/dist/components/SplitPane/SplitPane.d.ts.map +1 -0
  175. package/dist/components/SplitPane/index.d.ts +3 -0
  176. package/dist/components/SplitPane/index.d.ts.map +1 -0
  177. package/dist/components/StatusIndicator/Badge.d.ts +71 -0
  178. package/dist/components/StatusIndicator/Badge.d.ts.map +1 -0
  179. package/dist/components/StatusIndicator/Chip.d.ts +64 -0
  180. package/dist/components/StatusIndicator/Chip.d.ts.map +1 -0
  181. package/dist/components/StatusIndicator/Indicators.d.ts +81 -0
  182. package/dist/components/StatusIndicator/Indicators.d.ts.map +1 -0
  183. package/dist/components/StatusIndicator/Legend.d.ts +42 -0
  184. package/dist/components/StatusIndicator/Legend.d.ts.map +1 -0
  185. package/dist/components/StatusIndicator/Shapes.d.ts +32 -0
  186. package/dist/components/StatusIndicator/Shapes.d.ts.map +1 -0
  187. package/dist/components/StatusIndicator/StatusIndicator.d.ts +183 -0
  188. package/dist/components/StatusIndicator/StatusIndicator.d.ts.map +1 -0
  189. package/dist/components/StatusIndicator/index.d.ts +55 -0
  190. package/dist/components/StatusIndicator/index.d.ts.map +1 -0
  191. package/dist/components/StatusIndicator/types.d.ts +37 -0
  192. package/dist/components/StatusIndicator/types.d.ts.map +1 -0
  193. package/dist/components/Timeline/Timeline.d.ts +89 -0
  194. package/dist/components/Timeline/Timeline.d.ts.map +1 -0
  195. package/dist/components/Timeline/index.d.ts +2 -0
  196. package/dist/components/Timeline/index.d.ts.map +1 -0
  197. package/dist/components/Toast/Toast.d.ts +124 -0
  198. package/dist/components/Toast/Toast.d.ts.map +1 -0
  199. package/dist/components/Toast/index.d.ts +2 -0
  200. package/dist/components/Toast/index.d.ts.map +1 -0
  201. package/dist/components/TopNavHeader.d.ts +55 -0
  202. package/dist/components/TopNavHeader.d.ts.map +1 -0
  203. package/dist/components/TopNavWithSidebar.d.ts +64 -0
  204. package/dist/components/TopNavWithSidebar.d.ts.map +1 -0
  205. package/dist/components/TransferList/TransferList.d.ts +62 -0
  206. package/dist/components/TransferList/TransferList.d.ts.map +1 -0
  207. package/dist/components/TransferList/index.d.ts +3 -0
  208. package/dist/components/TransferList/index.d.ts.map +1 -0
  209. package/dist/components/TreeView/TreeView.d.ts +89 -0
  210. package/dist/components/TreeView/TreeView.d.ts.map +1 -0
  211. package/dist/components/TreeView/index.d.ts +3 -0
  212. package/dist/components/TreeView/index.d.ts.map +1 -0
  213. package/dist/components/index.d.ts +119 -0
  214. package/dist/components/index.d.ts.map +1 -0
  215. package/dist/components/internal/index.d.ts +27 -0
  216. package/dist/components/internal/index.d.ts.map +1 -0
  217. package/dist/components/navigation/components.d.ts +85 -0
  218. package/dist/components/navigation/components.d.ts.map +1 -0
  219. package/dist/components/navigation/hooks.d.ts +65 -0
  220. package/dist/components/navigation/hooks.d.ts.map +1 -0
  221. package/dist/components/navigation/index.d.ts +28 -0
  222. package/dist/components/navigation/index.d.ts.map +1 -0
  223. package/dist/components/navigation/styled.d.ts +13 -0
  224. package/dist/components/navigation/styled.d.ts.map +1 -0
  225. package/dist/components/navigation/types.d.ts +58 -0
  226. package/dist/components/navigation/types.d.ts.map +1 -0
  227. package/dist/components/shared/TrinityLogoSvg.d.ts +29 -0
  228. package/dist/components/shared/TrinityLogoSvg.d.ts.map +1 -0
  229. package/dist/components/shared.d.ts +92 -0
  230. package/dist/components/shared.d.ts.map +1 -0
  231. package/dist/components/templates/Dashboard/DashboardTemplate.d.ts +66 -0
  232. package/dist/components/templates/Dashboard/DashboardTemplate.d.ts.map +1 -0
  233. package/dist/components/templates/Dashboard/index.d.ts +2 -0
  234. package/dist/components/templates/Dashboard/index.d.ts.map +1 -0
  235. package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts +88 -0
  236. package/dist/components/templates/ListDetail/ListDetailTemplate.d.ts.map +1 -0
  237. package/dist/components/templates/ListDetail/index.d.ts +2 -0
  238. package/dist/components/templates/ListDetail/index.d.ts.map +1 -0
  239. package/dist/components/templates/Settings/SettingsTemplate.d.ts +78 -0
  240. package/dist/components/templates/Settings/SettingsTemplate.d.ts.map +1 -0
  241. package/dist/components/templates/Settings/index.d.ts +2 -0
  242. package/dist/components/templates/Settings/index.d.ts.map +1 -0
  243. package/dist/components/templates/index.d.ts +5 -0
  244. package/dist/components/templates/index.d.ts.map +1 -0
  245. package/dist/essentials.d.ts +49 -0
  246. package/dist/essentials.d.ts.map +1 -0
  247. package/dist/essentials.js +256 -0
  248. package/dist/form.d.ts +212 -0
  249. package/dist/form.d.ts.map +1 -0
  250. package/dist/hierarchy.d.ts +371 -0
  251. package/dist/hierarchy.d.ts.map +1 -0
  252. package/dist/hooks/useTrinityPalette.d.ts +54 -0
  253. package/dist/hooks/useTrinityPalette.d.ts.map +1 -0
  254. package/dist/hooks.d.ts +217 -0
  255. package/dist/hooks.d.ts.map +1 -0
  256. package/dist/index.d.ts +111 -0
  257. package/dist/index.d.ts.map +1 -0
  258. package/dist/index.js +2293 -3731
  259. package/dist/presets/analytics.d.ts +197 -0
  260. package/dist/presets/analytics.d.ts.map +1 -0
  261. package/dist/presets/crm.d.ts +67 -0
  262. package/dist/presets/crm.d.ts.map +1 -0
  263. package/dist/presets/index.d.ts +21 -0
  264. package/dist/presets/index.d.ts.map +1 -0
  265. package/dist/presets/portal.d.ts +67 -0
  266. package/dist/presets/portal.d.ts.map +1 -0
  267. package/dist/theme.d.ts +221 -0
  268. package/dist/theme.d.ts.map +1 -0
  269. package/dist/tokens.d.ts +4760 -0
  270. package/dist/tokens.d.ts.map +1 -0
  271. package/package.json +2 -2
@@ -0,0 +1,312 @@
1
+ /**
2
+ * AI Response Schema
3
+ * Canonical types for AI response architecture.
4
+ *
5
+ * Design Principles:
6
+ * 1. HETEROGENEOUS: A single response can contain mixed content types
7
+ * 2. ORDERED: Block order is preserved and meaningful
8
+ * 3. EXTENSIBLE: New block types can be added without breaking changes
9
+ * 4. TYPED: Discriminated union ensures type safety per block type
10
+ *
11
+ * Architecture:
12
+ * ```
13
+ * AIResponse
14
+ * └── blocks: AIResponseBlock[]
15
+ * ├── TextBlock (type: 'text')
16
+ * ├── TableBlock (type: 'table') [future]
17
+ * ├── ChartBlock (type: 'chart') [future]
18
+ * ├── ImageBlock (type: 'image') [future]
19
+ * ├── FormBlock (type: 'form') [future]
20
+ * └── ActionsBlock (type: 'actions') [future]
21
+ * ```
22
+ *
23
+ * Why This Structure:
24
+ * - Discriminated unions (`type` field) enable exhaustive switch/case handling
25
+ * - Array preserves order without complex ordering logic
26
+ * - Each block is self-contained with its own props
27
+ * - Metadata at response level (id, timestamp) separate from content
28
+ * - Sources/citations link to specific blocks via optional `blockId`
29
+ *
30
+ * @example
31
+ * ```tsx
32
+ * const response: AIResponse = {
33
+ * id: 'resp-123',
34
+ * blocks: [
35
+ * { type: 'text', content: 'Here is the analysis:' },
36
+ * { type: 'table', columns: [...], rows: [...] },
37
+ * { type: 'text', content: 'Key takeaway: growth is 14% YoY.' },
38
+ * ],
39
+ * metadata: {
40
+ * model: 'gpt-4',
41
+ * timestamp: '2026-01-10T10:30:00Z',
42
+ * processingTime: 1250,
43
+ * },
44
+ * };
45
+ * ```
46
+ */
47
+ /**
48
+ * Base interface for all blocks.
49
+ * Every block has a `type` discriminator and optional `id` for targeting.
50
+ */
51
+ export interface BaseBlock {
52
+ /** Discriminator for block type */
53
+ type: string;
54
+ /** Optional unique identifier for this block (for citations, anchoring) */
55
+ id?: string;
56
+ }
57
+ /**
58
+ * Text Block
59
+ * Renders as paragraph text, optionally with markdown formatting.
60
+ *
61
+ * This is the foundational block type - all AI responses will have at least one.
62
+ */
63
+ export interface TextBlock extends BaseBlock {
64
+ type: 'text';
65
+ /** The text content */
66
+ content: string;
67
+ /** Whether to render as markdown (default: false) */
68
+ markdown?: boolean;
69
+ /** Optional semantic role for styling */
70
+ variant?: 'body' | 'caption' | 'heading' | 'quote';
71
+ }
72
+ /**
73
+ * Table Block [FUTURE]
74
+ * @reserved - Schema defined but rendering not yet implemented
75
+ */
76
+ export interface TableBlock extends BaseBlock {
77
+ type: 'table';
78
+ columns: Array<{
79
+ key: string;
80
+ label: string;
81
+ align?: 'left' | 'center' | 'right';
82
+ width?: number | string;
83
+ }>;
84
+ rows: Array<Record<string, unknown>>;
85
+ title?: string;
86
+ compact?: boolean;
87
+ sortable?: boolean;
88
+ }
89
+ /**
90
+ * Chart Block [FUTURE]
91
+ * @reserved - Schema defined but rendering not yet implemented
92
+ */
93
+ export interface ChartBlock extends BaseBlock {
94
+ type: 'chart';
95
+ chartType: 'bar' | 'line' | 'pie' | 'area' | 'donut';
96
+ data: Array<Record<string, unknown>>;
97
+ series: Array<{
98
+ dataKey: string;
99
+ name?: string;
100
+ color?: string;
101
+ }>;
102
+ xAxis?: {
103
+ dataKey: string;
104
+ label?: string;
105
+ };
106
+ yAxis?: {
107
+ label?: string;
108
+ };
109
+ title?: string;
110
+ height?: number;
111
+ }
112
+ /**
113
+ * Image Block [FUTURE]
114
+ * @reserved - Schema defined but rendering not yet implemented
115
+ */
116
+ export interface ImageBlock extends BaseBlock {
117
+ type: 'image';
118
+ src: string;
119
+ alt: string;
120
+ caption?: string;
121
+ maxWidth?: number | string;
122
+ }
123
+ /**
124
+ * Form Block [FUTURE]
125
+ * @reserved - Schema defined but rendering not yet implemented
126
+ */
127
+ export interface FormBlock extends BaseBlock {
128
+ type: 'form';
129
+ fields: Array<{
130
+ name: string;
131
+ label: string;
132
+ type: 'text' | 'number' | 'select' | 'checkbox' | 'textarea';
133
+ value?: unknown;
134
+ options?: Array<{
135
+ value: string;
136
+ label: string;
137
+ }>;
138
+ placeholder?: string;
139
+ required?: boolean;
140
+ }>;
141
+ submitLabel?: string;
142
+ }
143
+ /**
144
+ * Actions Block [FUTURE]
145
+ * @reserved - Schema defined but rendering not yet implemented
146
+ */
147
+ export interface ActionsBlock extends BaseBlock {
148
+ type: 'actions';
149
+ items: Array<{
150
+ id?: string;
151
+ label: string;
152
+ icon?: string;
153
+ variant?: 'text' | 'outlined' | 'contained';
154
+ color?: 'primary' | 'secondary' | 'inherit';
155
+ href?: string;
156
+ disabled?: boolean;
157
+ }>;
158
+ direction?: 'row' | 'column';
159
+ }
160
+ /**
161
+ * AIResponseBlock - Discriminated union of all supported block types.
162
+ *
163
+ * Use `block.type` to narrow the type in switch/case or conditionals.
164
+ *
165
+ * @example
166
+ * ```tsx
167
+ * function renderBlock(block: AIResponseBlock) {
168
+ * switch (block.type) {
169
+ * case 'text':
170
+ * return <TextRenderer content={block.content} />;
171
+ * case 'table':
172
+ * return <TableRenderer columns={block.columns} rows={block.rows} />;
173
+ * // ... exhaustive handling
174
+ * }
175
+ * }
176
+ * ```
177
+ */
178
+ export type AIResponseBlock = TextBlock | TableBlock | ChartBlock | ImageBlock | FormBlock | ActionsBlock;
179
+ /**
180
+ * Extract block type string literals for type guards
181
+ */
182
+ export type AIResponseBlockType = AIResponseBlock['type'];
183
+ /**
184
+ * Metadata about the AI response generation.
185
+ */
186
+ export interface AIResponseMetadata {
187
+ /** Model used to generate response */
188
+ model?: string;
189
+ /** ISO timestamp of response generation */
190
+ timestamp?: string;
191
+ /** Processing time in milliseconds */
192
+ processingTime?: number;
193
+ /** Token usage */
194
+ tokens?: {
195
+ prompt?: number;
196
+ completion?: number;
197
+ total?: number;
198
+ };
199
+ /** Confidence score (0-1) */
200
+ confidence?: number;
201
+ }
202
+ /**
203
+ * Source citation for response content.
204
+ */
205
+ export interface AIResponseSource {
206
+ /** Unique identifier */
207
+ id: string;
208
+ /** Source title/name */
209
+ title: string;
210
+ /** Source URL */
211
+ url?: string;
212
+ /** Source type */
213
+ type?: 'document' | 'webpage' | 'database' | 'api' | 'other';
214
+ /** Relevance score (0-1) */
215
+ relevance?: number;
216
+ /** Which block(s) this source supports */
217
+ blockIds?: string[];
218
+ /** Snippet/excerpt from source */
219
+ excerpt?: string;
220
+ }
221
+ /**
222
+ * AIResponse - Canonical schema for a complete AI response.
223
+ *
224
+ * This is the top-level type that wraps all response content.
225
+ * Use this as the contract between AI service and UI components.
226
+ *
227
+ * Key Design Decisions:
228
+ * 1. `blocks` is an ordered array - sequence matters for narrative
229
+ * 2. `metadata` is optional - not all responses need it
230
+ * 3. `sources` are at response level but can reference specific blocks
231
+ * 4. `relatedQuestions` are response-level suggestions
232
+ *
233
+ * @example
234
+ * ```tsx
235
+ * // Simple text response
236
+ * const simple: AIResponse = {
237
+ * id: 'r1',
238
+ * blocks: [{ type: 'text', content: 'Hello!' }],
239
+ * };
240
+ *
241
+ * // Complex multi-block response
242
+ * const complex: AIResponse = {
243
+ * id: 'r2',
244
+ * blocks: [
245
+ * { type: 'text', id: 'intro', content: 'Analysis summary:' },
246
+ * { type: 'chart', id: 'chart1', chartType: 'bar', data: [...] },
247
+ * { type: 'text', content: 'The data shows growth.' },
248
+ * ],
249
+ * sources: [
250
+ * { id: 's1', title: 'Q4 Report', blockIds: ['chart1'] },
251
+ * ],
252
+ * relatedQuestions: ['What about Q3?', 'Show monthly breakdown'],
253
+ * metadata: { model: 'gpt-4', timestamp: '2026-01-10T10:30:00Z' },
254
+ * };
255
+ * ```
256
+ */
257
+ export interface AIResponse {
258
+ /** Unique identifier for this response */
259
+ id: string;
260
+ /** Ordered array of content blocks */
261
+ blocks: AIResponseBlock[];
262
+ /** Sources/citations for the response content */
263
+ sources?: AIResponseSource[];
264
+ /** Suggested follow-up questions */
265
+ relatedQuestions?: string[];
266
+ /** Response generation metadata */
267
+ metadata?: AIResponseMetadata;
268
+ /** Error state (if response failed) */
269
+ error?: {
270
+ code: string;
271
+ message: string;
272
+ recoverable?: boolean;
273
+ };
274
+ }
275
+ /**
276
+ * Type guard to check if a block is a TextBlock
277
+ */
278
+ export declare function isTextBlock(block: AIResponseBlock): block is TextBlock;
279
+ /**
280
+ * Type guard to check if a block is a TableBlock
281
+ */
282
+ export declare function isTableBlock(block: AIResponseBlock): block is TableBlock;
283
+ /**
284
+ * Type guard to check if a block is a ChartBlock
285
+ */
286
+ export declare function isChartBlock(block: AIResponseBlock): block is ChartBlock;
287
+ /**
288
+ * Type guard to check if a block is an ImageBlock
289
+ */
290
+ export declare function isImageBlock(block: AIResponseBlock): block is ImageBlock;
291
+ /**
292
+ * Type guard to check if a block is a FormBlock
293
+ */
294
+ export declare function isFormBlock(block: AIResponseBlock): block is FormBlock;
295
+ /**
296
+ * Type guard to check if a block is an ActionsBlock
297
+ */
298
+ export declare function isActionsBlock(block: AIResponseBlock): block is ActionsBlock;
299
+ /**
300
+ * Helper type to create a response with only text blocks
301
+ */
302
+ export type TextOnlyResponse = Omit<AIResponse, 'blocks'> & {
303
+ blocks: TextBlock[];
304
+ };
305
+ /**
306
+ * Helper type for response building
307
+ */
308
+ export type PartialAIResponse = Partial<AIResponse> & {
309
+ id: string;
310
+ blocks: AIResponseBlock[];
311
+ };
312
+ //# sourceMappingURL=response.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response.d.ts","sourceRoot":"","sources":["../../../../src/components/AI/types/response.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @fileoverview AIFab component.
3
+ * @module components/AppLayout/AIFab
4
+ * AIFab Component
5
+ * Floating Action Button for launching the AI chat panel
6
+ * @example
7
+ * ```tsx
8
+ * import { AIFab } from '@trinityui/design-system';
9
+ *
10
+ * <AIFab />
11
+ * ```
12
+ */
13
+ import React from 'react';
14
+ /**
15
+ * Props for AIFab component.
16
+ */
17
+ export interface AIFabProps {
18
+ /** Whether the AI panel is currently open */
19
+ open?: boolean;
20
+ /** Callback when the FAB is clicked */
21
+ onClick?: () => void;
22
+ /** Position of the FAB */
23
+ position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
24
+ /** Custom offset from the edge (in pixels) */
25
+ offset?: {
26
+ x?: number;
27
+ y?: number;
28
+ };
29
+ /** Whether to show a badge (e.g., for notifications) */
30
+ showBadge?: boolean;
31
+ /** Badge content (number or dot) */
32
+ badgeContent?: number | string;
33
+ /** Size of the FAB */
34
+ size?: 'small' | 'medium' | 'large';
35
+ /** Tooltip text */
36
+ tooltip?: string;
37
+ /** Whether the FAB is disabled */
38
+ disabled?: boolean;
39
+ /** Custom z-index */
40
+ zIndex?: number;
41
+ }
42
+ /**
43
+ * AIFab - Floating Action Button for launching AI chat
44
+ *
45
+ * A beautifully styled FAB with Trinity AI branding that can be used
46
+ * to open the InsightEnginePanel from anywhere in the application.
47
+ */
48
+ export declare const AIFab: React.FC<AIFabProps>;
49
+ export default AIFab;
50
+ //# sourceMappingURL=AIFab.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIFab.d.ts","sourceRoot":"","sources":["../../../src/components/AppLayout/AIFab.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,6CAA6C;IAC7C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,cAAc,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAC;IACrE,8CAA8C;IAC9C,MAAM,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,oCAAoC;IACpC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpC,mBAAmB;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,UAAU,CA6FtC,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @fileoverview AIFabLayout.deprecated component.
3
+ * @module components/AppLayout/AIFabLayout.deprecated
4
+ * AIFabLayout - DEPRECATED
5
+ *
6
+ * @deprecated Use `AppLayout` with `navStyle="topnav"` and `aiTrigger="fab"` instead.
7
+ * This component will be removed in v2.0.0.
8
+ *
9
+ * Migration:
10
+ * ```tsx
11
+ * // Before (deprecated)
12
+ * import { AIFabLayout } from '@trinityui/design-system';
13
+ * <AIFabLayout navStyle="topnav" />
14
+ *
15
+ * // After
16
+ * import { AppLayout } from '@trinityui/design-system';
17
+ * <AppLayout navStyle="topnav" aiTrigger="fab" />
18
+ * ```
19
+ * @example
20
+ * ```tsx
21
+ * import { AIFabLayout } from '@trinityui/design-system';
22
+ *
23
+ * <AIFabLayout />
24
+ * ```
25
+ */
26
+ import React from 'react';
27
+ import { AppLayoutProps } from './AppLayout';
28
+ /**
29
+ * @deprecated Use `AppLayout` instead. AIFabLayout will be removed in v2.0.0.
30
+ */
31
+ export declare const AIFabLayout: React.FC<AppLayoutProps>;
32
+ //# sourceMappingURL=AIFabLayout.deprecated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AIFabLayout.deprecated.d.ts","sourceRoot":"","sources":["../../../src/components/AppLayout/AIFabLayout.deprecated.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAoB,MAAM,OAAO,CAAC;AACzC,OAAO,EAAa,cAAc,EAAE,MAAM,aAAa,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAchD,CAAC"}
@@ -0,0 +1,154 @@
1
+ /**
2
+ * @fileoverview AppLayout component.
3
+ * @module components/AppLayout/AppLayout
4
+ * AppLayout - Unified Application Shell
5
+ *
6
+ * A flexible application layout that supports multiple navigation styles and AI integration modes.
7
+ * This component consolidates the functionality of the previous AppLayout and AIFabLayout components.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * import { AppLayout } from '@trinityui/design-system';
12
+ *
13
+ * <AppLayout
14
+ * name="Example"
15
+ * >
16
+ * <div>Example content</div>
17
+ * </AppLayout>
18
+ * ```
19
+ *
20
+ * @example Top navigation with FAB AI trigger
21
+ * ```tsx
22
+ * <AppLayout
23
+ * navStyle="topnav"
24
+ * aiTrigger="fab"
25
+ * companyName="Acme Corp"
26
+ * >
27
+ * <YourContent />
28
+ * </AppLayout>
29
+ * ```
30
+ *
31
+ * @example Sidebar navigation with no AI integration
32
+ * ```tsx
33
+ * <AppLayout
34
+ * navStyle="sidebar"
35
+ * aiTrigger="none"
36
+ * companyName="Acme Corp"
37
+ * >
38
+ * <YourContent />
39
+ * </AppLayout>
40
+ * ```
41
+ */
42
+ import React from 'react';
43
+ import { SxProps, Theme } from '@mui/material';
44
+ import { type InsightEnginePanelProps } from './InsightEnginePanel';
45
+ import { type AIFabProps } from './AIFab';
46
+ /**
47
+ * Navigation style determines the overall layout structure
48
+ * - 'sidebar': Full sidebar navigation with collapsible drawer (default)
49
+ * - 'topnav': Simple top navigation bar only
50
+ */
51
+ export type NavStyle = 'sidebar' | 'topnav';
52
+ /**
53
+ * AI trigger mode determines how users access the AI assistant
54
+ * - 'sidebar': AI is accessed via a nav item in the sidebar (default for sidebar nav)
55
+ * - 'fab': AI is accessed via a floating action button (default for topnav)
56
+ * - 'none': No AI integration
57
+ */
58
+ export type AITrigger = 'sidebar' | 'fab' | 'none';
59
+ /**
60
+ * Navigation item for sidebar
61
+ */
62
+ export interface NavItem {
63
+ id: string;
64
+ label: string;
65
+ icon: React.ReactNode;
66
+ badge?: number;
67
+ isSpecial?: boolean;
68
+ }
69
+ /**
70
+ * Props for AppLayout component.
71
+ */
72
+ export interface AppLayoutProps {
73
+ /** Child content to render in the main area */
74
+ children: React.ReactNode;
75
+ /**
76
+ * Navigation style
77
+ * @default 'sidebar'
78
+ */
79
+ navStyle?: NavStyle;
80
+ /**
81
+ * AI trigger mode
82
+ * @default 'sidebar' when navStyle='sidebar', 'fab' when navStyle='topnav'
83
+ */
84
+ aiTrigger?: AITrigger;
85
+ /**
86
+ * Company or app name displayed in the header
87
+ */
88
+ companyName?: string;
89
+ /**
90
+ * Navigation items for sidebar mode.
91
+ * Required when navStyle='sidebar'. If empty or not provided, sidebar navigation will not render.
92
+ * Include an item with id='insight-engine' and isSpecial=true to add AI trigger to sidebar.
93
+ */
94
+ navItems?: NavItem[];
95
+ /**
96
+ * Currently selected navigation item ID (controlled).
97
+ * If not provided, no item will be highlighted.
98
+ */
99
+ selectedNavItem?: string;
100
+ /**
101
+ * Callback when selected navigation item changes.
102
+ * Called when user clicks a non-AI nav item.
103
+ */
104
+ onSelectedNavItemChange?: (itemId: string) => void;
105
+ /**
106
+ * User information for the avatar/menu.
107
+ * The `initials` field should be provided; if omitted, no initials will be displayed.
108
+ */
109
+ user?: {
110
+ name: string;
111
+ email?: string;
112
+ initials?: string;
113
+ };
114
+ /**
115
+ * Client name for the client selector
116
+ */
117
+ clientName?: string;
118
+ /**
119
+ * Available clients for the selector
120
+ */
121
+ clients?: {
122
+ id: string;
123
+ name: string;
124
+ }[];
125
+ /**
126
+ * Callback when client changes
127
+ */
128
+ onClientChange?: (clientId: string) => void;
129
+ /**
130
+ * @deprecated Use onSelectedNavItemChange instead.
131
+ * Callback when navigation item is clicked.
132
+ */
133
+ onNavigate?: (itemId: string) => void;
134
+ /**
135
+ * Props passed to the AIFab component (when aiTrigger='fab')
136
+ */
137
+ fabProps?: Partial<AIFabProps>;
138
+ /**
139
+ * Props passed to the InsightEnginePanel component
140
+ */
141
+ panelProps?: Partial<InsightEnginePanelProps>;
142
+ /**
143
+ * Custom panel width
144
+ * @default 420
145
+ */
146
+ aiPanelWidth?: number;
147
+ /**
148
+ * SX props for the content wrapper
149
+ */
150
+ contentSx?: SxProps<Theme>;
151
+ }
152
+ export declare const AppLayout: React.FC<AppLayoutProps>;
153
+ export default AppLayout;
154
+ //# sourceMappingURL=AppLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AppLayout.d.ts","sourceRoot":"","sources":["../../../src/components/AppLayout/AppLayout.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AAEH,OAAO,KAAgC,MAAM,OAAO,CAAC;AACrD,OAAO,EAAgC,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAI7E,OAAO,EAAsB,KAAK,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAExF,OAAO,EAAS,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAOjD;;;;GAIG;AACH,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5C;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,MAAM,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IAErB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnD;;;OAGG;IACH,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAEzC;;OAEG;IACH,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAE5C;;;OAGG;IACH,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAEtC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IAE/B;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE9C;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;CAC5B;AA8FD,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CA+O9C,CAAC;AAEF,eAAe,SAAS,CAAC"}