@handled-ai/design-system 0.1.0 → 0.2.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/README.md +4 -63
- package/dist/index.d.ts +978 -7
- package/dist/index.js +7202 -802
- package/dist/index.js.map +1 -1
- package/package.json +20 -20
package/dist/index.d.ts
CHANGED
|
@@ -1,15 +1,51 @@
|
|
|
1
1
|
import { ClassValue } from 'clsx';
|
|
2
2
|
import * as React$1 from 'react';
|
|
3
|
-
import { Avatar as Avatar$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1, ScrollArea as ScrollArea$1, Select as Select$1, Separator as Separator$1, Tooltip as Tooltip$1, Tabs as Tabs$1 } from 'radix-ui';
|
|
3
|
+
import { Avatar as Avatar$1, Dialog as Dialog$1, DropdownMenu as DropdownMenu$1, Progress as Progress$1, ScrollArea as ScrollArea$1, Select as Select$1, Separator as Separator$1, Tooltip as Tooltip$1, Tabs as Tabs$1 } from 'radix-ui';
|
|
4
4
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
5
5
|
import { VariantProps } from 'class-variance-authority';
|
|
6
6
|
import * as RechartsPrimitive from 'recharts';
|
|
7
|
+
import { SortingState } from '@tanstack/react-table';
|
|
7
8
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
8
9
|
|
|
9
10
|
declare function cn(...inputs: ClassValue[]): string;
|
|
10
11
|
|
|
11
12
|
declare function useIsMobile(): boolean;
|
|
12
13
|
|
|
14
|
+
interface ActivityThreadMessage {
|
|
15
|
+
id: string;
|
|
16
|
+
sender: string;
|
|
17
|
+
time: string;
|
|
18
|
+
content: string;
|
|
19
|
+
isCurrent?: boolean;
|
|
20
|
+
to?: string;
|
|
21
|
+
cc?: string;
|
|
22
|
+
subject?: string;
|
|
23
|
+
}
|
|
24
|
+
interface ActivityParticipant {
|
|
25
|
+
name: string;
|
|
26
|
+
role?: string;
|
|
27
|
+
}
|
|
28
|
+
interface ActivityDetailData {
|
|
29
|
+
icon: React$1.ReactNode;
|
|
30
|
+
title: string;
|
|
31
|
+
details: string;
|
|
32
|
+
content?: string;
|
|
33
|
+
time: string;
|
|
34
|
+
source: string;
|
|
35
|
+
sourceIcon?: React$1.ReactNode;
|
|
36
|
+
type?: "email" | "call" | "meeting" | "signal";
|
|
37
|
+
thread?: ActivityThreadMessage[];
|
|
38
|
+
participants?: ActivityParticipant[];
|
|
39
|
+
tags?: string[];
|
|
40
|
+
externalUrl?: string;
|
|
41
|
+
}
|
|
42
|
+
interface ActivityDetailProps {
|
|
43
|
+
activity: ActivityDetailData;
|
|
44
|
+
onBack?: () => void;
|
|
45
|
+
actions?: React$1.ReactNode;
|
|
46
|
+
}
|
|
47
|
+
declare function ActivityDetail({ activity, onBack, actions }: ActivityDetailProps): React$1.JSX.Element;
|
|
48
|
+
|
|
13
49
|
interface ActivityLogItem {
|
|
14
50
|
id: string;
|
|
15
51
|
type: "workout" | "weighin" | "biometric" | "checkin" | string;
|
|
@@ -38,14 +74,35 @@ declare function AvatarGroup({ className, ...props }: React$1.ComponentProps<"di
|
|
|
38
74
|
declare function AvatarGroupCount({ className, ...props }: React$1.ComponentProps<"div">): React$1.JSX.Element;
|
|
39
75
|
|
|
40
76
|
declare const badgeVariants: (props?: ({
|
|
41
|
-
variant?: "
|
|
77
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
|
|
42
78
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
43
79
|
declare function Badge({ className, variant, asChild, ...props }: React$1.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
44
80
|
asChild?: boolean;
|
|
45
81
|
}): React$1.JSX.Element;
|
|
46
82
|
|
|
83
|
+
interface BarSeries {
|
|
84
|
+
dataKey: string;
|
|
85
|
+
color: string;
|
|
86
|
+
name?: string;
|
|
87
|
+
icon?: React$1.ComponentType<{
|
|
88
|
+
className?: string;
|
|
89
|
+
}>;
|
|
90
|
+
barSize?: number;
|
|
91
|
+
}
|
|
92
|
+
interface BarChartComponentProps {
|
|
93
|
+
data: Record<string, unknown>[];
|
|
94
|
+
bars: BarSeries[];
|
|
95
|
+
height?: number;
|
|
96
|
+
xAxisKey?: string;
|
|
97
|
+
showGrid?: boolean;
|
|
98
|
+
showLegend?: boolean;
|
|
99
|
+
barGap?: number;
|
|
100
|
+
className?: string;
|
|
101
|
+
}
|
|
102
|
+
declare function BarChartComponent({ data, bars, height, xAxisKey, showGrid, showLegend, barGap, className, }: BarChartComponentProps): React$1.JSX.Element;
|
|
103
|
+
|
|
47
104
|
declare const buttonVariants: (props?: ({
|
|
48
|
-
variant?: "
|
|
105
|
+
variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link" | null | undefined;
|
|
49
106
|
size?: "default" | "sm" | "lg" | "icon" | null | undefined;
|
|
50
107
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
51
108
|
declare function Button({ className, variant, size, asChild, ...props }: React$1.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
@@ -120,19 +177,164 @@ declare function ChartLegendContent({ className, hideIcon, payload, verticalAlig
|
|
|
120
177
|
nameKey?: string;
|
|
121
178
|
}): React$1.JSX.Element | null;
|
|
122
179
|
|
|
180
|
+
interface ChartTooltipEntry {
|
|
181
|
+
name?: string;
|
|
182
|
+
value?: number | string;
|
|
183
|
+
dataKey?: string;
|
|
184
|
+
color?: string;
|
|
185
|
+
stroke?: string;
|
|
186
|
+
fill?: string;
|
|
187
|
+
}
|
|
188
|
+
interface SimpleChartTooltipProps {
|
|
189
|
+
active?: boolean;
|
|
190
|
+
payload?: ChartTooltipEntry[];
|
|
191
|
+
label?: string;
|
|
192
|
+
formatter?: (value: number | string, name: string) => [string, string];
|
|
193
|
+
className?: string;
|
|
194
|
+
}
|
|
195
|
+
declare function SimpleChartTooltip({ active, payload, label, formatter, className, }: SimpleChartTooltipProps): React$1.JSX.Element | null;
|
|
196
|
+
declare const CHART_TOOLTIP_STYLE: React$1.CSSProperties;
|
|
197
|
+
declare const CHART_CURSOR_STYLE: {
|
|
198
|
+
stroke: string;
|
|
199
|
+
strokeWidth: number;
|
|
200
|
+
strokeDasharray: string;
|
|
201
|
+
};
|
|
202
|
+
|
|
203
|
+
interface ContactChannel {
|
|
204
|
+
type: "linkedin" | "gmail" | "salesforce" | "phone" | "custom";
|
|
205
|
+
icon: React$1.ReactNode;
|
|
206
|
+
label?: string;
|
|
207
|
+
onClick?: () => void;
|
|
208
|
+
}
|
|
209
|
+
interface ContactItem {
|
|
210
|
+
id: string;
|
|
211
|
+
name: string;
|
|
212
|
+
role: string;
|
|
213
|
+
badge?: {
|
|
214
|
+
label: string;
|
|
215
|
+
color?: "indigo" | "green" | "amber" | "red" | "muted";
|
|
216
|
+
};
|
|
217
|
+
channels?: ContactChannel[];
|
|
218
|
+
action?: {
|
|
219
|
+
label: string;
|
|
220
|
+
onClick?: () => void;
|
|
221
|
+
};
|
|
222
|
+
description?: string;
|
|
223
|
+
onDismiss?: () => void;
|
|
224
|
+
}
|
|
225
|
+
interface ContactListProps {
|
|
226
|
+
title?: string;
|
|
227
|
+
count?: string;
|
|
228
|
+
contacts: ContactItem[];
|
|
229
|
+
onAdd?: () => void;
|
|
230
|
+
addLabel?: string;
|
|
231
|
+
}
|
|
232
|
+
declare function ContactList({ title, count, contacts, onAdd, addLabel }: ContactListProps): React$1.JSX.Element;
|
|
233
|
+
|
|
234
|
+
declare function TopTasksCard({ onViewAll }: {
|
|
235
|
+
onViewAll?: () => void;
|
|
236
|
+
}): React$1.JSX.Element;
|
|
237
|
+
declare function UpcomingMeetingsCard(): React$1.JSX.Element;
|
|
238
|
+
declare function RecentlyCompletedCard(): React$1.JSX.Element;
|
|
239
|
+
declare function CheckInsCard(): React$1.JSX.Element;
|
|
240
|
+
|
|
241
|
+
type DataRow = {
|
|
242
|
+
id: string;
|
|
243
|
+
name: string;
|
|
244
|
+
industry: string[];
|
|
245
|
+
accountRisks: string[];
|
|
246
|
+
riskScore: number;
|
|
247
|
+
expansionScore: number;
|
|
248
|
+
growthIndicators: string[];
|
|
249
|
+
lastInteraction: string;
|
|
250
|
+
lastInteractionDays: number;
|
|
251
|
+
createdAt: string;
|
|
252
|
+
revenue: string;
|
|
253
|
+
headcount: string;
|
|
254
|
+
lastFunding: string;
|
|
255
|
+
owner: string;
|
|
256
|
+
opportunityCount: number;
|
|
257
|
+
productAdoptionScore: number;
|
|
258
|
+
};
|
|
259
|
+
declare function DataTable({ onRowClick }?: {
|
|
260
|
+
onRowClick?: (row: DataRow) => void;
|
|
261
|
+
}): React$1.JSX.Element;
|
|
262
|
+
|
|
263
|
+
interface DataTableDisplayColumn {
|
|
264
|
+
id: string;
|
|
265
|
+
label: string;
|
|
266
|
+
visible: boolean;
|
|
267
|
+
canHide: boolean;
|
|
268
|
+
}
|
|
269
|
+
interface DataTableDisplayProps {
|
|
270
|
+
sorting: SortingState;
|
|
271
|
+
onSortingChange: (next: SortingState) => void;
|
|
272
|
+
columns: DataTableDisplayColumn[];
|
|
273
|
+
onToggleColumn: (columnId: string) => void;
|
|
274
|
+
onReset: () => void;
|
|
275
|
+
}
|
|
276
|
+
declare function DataTableDisplay({ sorting, onSortingChange, columns, onToggleColumn, onReset, }: DataTableDisplayProps): React$1.JSX.Element;
|
|
277
|
+
|
|
278
|
+
interface DataTableFilterCategory {
|
|
279
|
+
id: string;
|
|
280
|
+
label: string;
|
|
281
|
+
icon: React$1.ComponentType<{
|
|
282
|
+
className?: string;
|
|
283
|
+
}>;
|
|
284
|
+
options: string[];
|
|
285
|
+
}
|
|
286
|
+
interface DataTableFilterProps {
|
|
287
|
+
categories: DataTableFilterCategory[];
|
|
288
|
+
selectedFilters: Record<string, string[]>;
|
|
289
|
+
onToggleFilter: (categoryId: string, option: string) => void;
|
|
290
|
+
}
|
|
291
|
+
declare function DataTableFilter({ categories, selectedFilters, onToggleFilter, }: DataTableFilterProps): React$1.JSX.Element;
|
|
292
|
+
|
|
293
|
+
type DataTableQuickViewValue = string | null;
|
|
294
|
+
interface DataTableQuickViewsProps {
|
|
295
|
+
quickViews: string[];
|
|
296
|
+
moreViews: string[];
|
|
297
|
+
activeView: DataTableQuickViewValue;
|
|
298
|
+
onViewChange: (next: DataTableQuickViewValue) => void;
|
|
299
|
+
className?: string;
|
|
300
|
+
}
|
|
301
|
+
declare function DataTableQuickViews({ quickViews, moreViews, activeView, onViewChange, className, }: DataTableQuickViewsProps): React$1.JSX.Element;
|
|
302
|
+
|
|
303
|
+
interface DataTableToolbarProps {
|
|
304
|
+
categories: DataTableFilterCategory[];
|
|
305
|
+
selectedFilters: Record<string, string[]>;
|
|
306
|
+
onToggleFilter: (categoryId: string, option: string) => void;
|
|
307
|
+
sorting: SortingState;
|
|
308
|
+
onSortingChange: (next: SortingState) => void;
|
|
309
|
+
displayColumns: DataTableDisplayColumn[];
|
|
310
|
+
onToggleColumn: (columnId: string) => void;
|
|
311
|
+
onResetDisplay: () => void;
|
|
312
|
+
}
|
|
313
|
+
declare function DataTableToolbar({ categories, selectedFilters, onToggleFilter, sorting, onSortingChange, displayColumns, onToggleColumn, onResetDisplay, }: DataTableToolbarProps): React$1.JSX.Element;
|
|
314
|
+
|
|
123
315
|
declare function DetailViewHeader({ title, breadcrumbs, badges, onBack, }: {
|
|
124
316
|
title: string;
|
|
125
317
|
breadcrumbs: React$1.ReactNode;
|
|
126
318
|
badges: React$1.ReactNode;
|
|
127
319
|
onBack?: () => void;
|
|
128
320
|
}): React$1.JSX.Element;
|
|
129
|
-
declare function DetailViewSummary({ title, children, sources, }: {
|
|
321
|
+
declare function DetailViewSummary({ title, children, sources, actions, }: {
|
|
130
322
|
title?: string;
|
|
131
323
|
children: React$1.ReactNode;
|
|
132
324
|
sources?: React$1.ReactNode;
|
|
325
|
+
actions?: React$1.ReactNode;
|
|
133
326
|
}): React$1.JSX.Element;
|
|
134
|
-
|
|
327
|
+
type SourceDef = {
|
|
328
|
+
id: number | string;
|
|
329
|
+
summary: string;
|
|
330
|
+
meta: string;
|
|
331
|
+
};
|
|
332
|
+
declare function Citation({ number, source, }: {
|
|
135
333
|
number: number | string;
|
|
334
|
+
source?: SourceDef;
|
|
335
|
+
}): React$1.JSX.Element;
|
|
336
|
+
declare function SourceList({ sources }: {
|
|
337
|
+
sources: SourceDef[];
|
|
136
338
|
}): React$1.JSX.Element;
|
|
137
339
|
declare function DetailViewThread({ title, actionCount, children, }: {
|
|
138
340
|
title: string;
|
|
@@ -166,6 +368,24 @@ declare function DialogFooter({ className, showCloseButton, children, ...props }
|
|
|
166
368
|
declare function DialogTitle({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Title>): React$1.JSX.Element;
|
|
167
369
|
declare function DialogDescription({ className, ...props }: React$1.ComponentProps<typeof Dialog$1.Description>): React$1.JSX.Element;
|
|
168
370
|
|
|
371
|
+
interface DonutSegment {
|
|
372
|
+
name: string;
|
|
373
|
+
value: number;
|
|
374
|
+
color: string;
|
|
375
|
+
}
|
|
376
|
+
interface DonutChartProps {
|
|
377
|
+
data: DonutSegment[];
|
|
378
|
+
centerLabel?: string | number;
|
|
379
|
+
size?: number;
|
|
380
|
+
innerRadius?: number;
|
|
381
|
+
outerRadius?: number;
|
|
382
|
+
paddingAngle?: number;
|
|
383
|
+
showTooltip?: boolean;
|
|
384
|
+
showLegend?: boolean;
|
|
385
|
+
className?: string;
|
|
386
|
+
}
|
|
387
|
+
declare function DonutChart({ data, centerLabel, size, innerRadius, outerRadius, paddingAngle, showTooltip, showLegend, className, }: DonutChartProps): React$1.JSX.Element;
|
|
388
|
+
|
|
169
389
|
declare function DropdownMenu({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Root>): React$1.JSX.Element;
|
|
170
390
|
declare function DropdownMenuPortal({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Portal>): React$1.JSX.Element;
|
|
171
391
|
declare function DropdownMenuTrigger({ ...props }: React$1.ComponentProps<typeof DropdownMenu$1.Trigger>): React$1.JSX.Element;
|
|
@@ -189,6 +409,100 @@ declare function DropdownMenuSubTrigger({ className, inset, children, ...props }
|
|
|
189
409
|
}): React$1.JSX.Element;
|
|
190
410
|
declare function DropdownMenuSubContent({ className, ...props }: React$1.ComponentProps<typeof DropdownMenu$1.SubContent>): React$1.JSX.Element;
|
|
191
411
|
|
|
412
|
+
interface TimelineEvent {
|
|
413
|
+
id: string;
|
|
414
|
+
icon: React$1.ReactNode;
|
|
415
|
+
title: React$1.ReactNode;
|
|
416
|
+
time: string;
|
|
417
|
+
preview?: React$1.ReactNode;
|
|
418
|
+
email?: {
|
|
419
|
+
from: string;
|
|
420
|
+
fromEmail?: string;
|
|
421
|
+
to: string;
|
|
422
|
+
cc?: string;
|
|
423
|
+
bcc?: string;
|
|
424
|
+
date?: string;
|
|
425
|
+
subject?: string;
|
|
426
|
+
body: React$1.ReactNode;
|
|
427
|
+
};
|
|
428
|
+
content?: React$1.ReactNode;
|
|
429
|
+
source?: {
|
|
430
|
+
label: string;
|
|
431
|
+
url: string;
|
|
432
|
+
};
|
|
433
|
+
defaultExpanded?: boolean;
|
|
434
|
+
isInteractive?: boolean;
|
|
435
|
+
}
|
|
436
|
+
interface TimelineActivityProps {
|
|
437
|
+
events: TimelineEvent[];
|
|
438
|
+
className?: string;
|
|
439
|
+
}
|
|
440
|
+
declare function TimelineActivity({ events, className }: TimelineActivityProps): React$1.JSX.Element;
|
|
441
|
+
|
|
442
|
+
declare function EntityPanel({ isOpen, onClose, children, }: {
|
|
443
|
+
isOpen: boolean;
|
|
444
|
+
onClose: (open: boolean) => void;
|
|
445
|
+
children?: React$1.ReactNode;
|
|
446
|
+
}): React$1.JSX.Element;
|
|
447
|
+
declare function EntityPanelHeader({ icon, title, badgeLabel, subtitle, }: {
|
|
448
|
+
icon?: React$1.ReactNode;
|
|
449
|
+
title: string;
|
|
450
|
+
badgeLabel?: string;
|
|
451
|
+
subtitle?: string;
|
|
452
|
+
}): React$1.JSX.Element;
|
|
453
|
+
declare function EntityPanelTabs({ tabs, activeTab, onTabChange, }: {
|
|
454
|
+
tabs: {
|
|
455
|
+
id: string;
|
|
456
|
+
label: string;
|
|
457
|
+
}[];
|
|
458
|
+
activeTab: string;
|
|
459
|
+
onTabChange: (id: string) => void;
|
|
460
|
+
}): React$1.JSX.Element;
|
|
461
|
+
interface EntityMetadataField {
|
|
462
|
+
icon: React$1.ComponentType<{
|
|
463
|
+
className?: string;
|
|
464
|
+
}>;
|
|
465
|
+
label: string;
|
|
466
|
+
value: React$1.ReactNode;
|
|
467
|
+
}
|
|
468
|
+
declare function EntityMetadataGrid({ fields }: {
|
|
469
|
+
fields: EntityMetadataField[];
|
|
470
|
+
}): React$1.JSX.Element;
|
|
471
|
+
declare function EntitySection({ title, children, action, }: {
|
|
472
|
+
title: string;
|
|
473
|
+
children: React$1.ReactNode;
|
|
474
|
+
action?: React$1.ReactNode;
|
|
475
|
+
}): React$1.JSX.Element;
|
|
476
|
+
declare function EntityActivityItem({ icon, title, description, date, }: {
|
|
477
|
+
icon?: React$1.ReactNode;
|
|
478
|
+
title: React$1.ReactNode;
|
|
479
|
+
description?: React$1.ReactNode;
|
|
480
|
+
date?: string;
|
|
481
|
+
}): React$1.JSX.Element;
|
|
482
|
+
declare function SystemActivity(): React$1.JSX.Element;
|
|
483
|
+
interface EntityPanelBrandIcons {
|
|
484
|
+
linkedin?: string;
|
|
485
|
+
gmail?: string;
|
|
486
|
+
slack?: string;
|
|
487
|
+
gdoc?: string;
|
|
488
|
+
}
|
|
489
|
+
declare function PotentialContacts({ icons, }: {
|
|
490
|
+
icons?: Pick<EntityPanelBrandIcons, "linkedin" | "gmail">;
|
|
491
|
+
}): React$1.JSX.Element;
|
|
492
|
+
type ActivityItem = TimelineEvent;
|
|
493
|
+
declare function RecentActivity({ title, count, filters, items, }: {
|
|
494
|
+
title?: string;
|
|
495
|
+
count?: string;
|
|
496
|
+
filters?: string[];
|
|
497
|
+
items?: TimelineEvent[];
|
|
498
|
+
}): React$1.JSX.Element;
|
|
499
|
+
declare function ConnectedApps({ icons, }: {
|
|
500
|
+
icons?: Pick<EntityPanelBrandIcons, "slack" | "gdoc">;
|
|
501
|
+
}): React$1.JSX.Element;
|
|
502
|
+
declare function EntityDetails({ onClose }: {
|
|
503
|
+
onClose?: () => void;
|
|
504
|
+
}): React$1.JSX.Element;
|
|
505
|
+
|
|
192
506
|
interface InboxRowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
193
507
|
itemId: string;
|
|
194
508
|
statusColor: "red" | "orange" | "gray";
|
|
@@ -196,6 +510,7 @@ interface InboxRowProps extends React$1.HTMLAttributes<HTMLDivElement> {
|
|
|
196
510
|
secondaryText: string;
|
|
197
511
|
tertiaryText: string;
|
|
198
512
|
isAtRisk?: boolean;
|
|
513
|
+
isSelected?: boolean;
|
|
199
514
|
contactMethods?: {
|
|
200
515
|
phone?: boolean;
|
|
201
516
|
email?: boolean;
|
|
@@ -212,8 +527,94 @@ declare function InboxGroupHeader({ title, count }: {
|
|
|
212
527
|
count: number;
|
|
213
528
|
}): React$1.JSX.Element;
|
|
214
529
|
|
|
530
|
+
type AssigneeFilter = "me" | "team" | "all";
|
|
531
|
+
interface InboxFilterCategory {
|
|
532
|
+
id: string;
|
|
533
|
+
label: string;
|
|
534
|
+
icon: React$1.ReactNode;
|
|
535
|
+
options: string[];
|
|
536
|
+
}
|
|
537
|
+
interface InboxToolbarProps {
|
|
538
|
+
assignee: AssigneeFilter;
|
|
539
|
+
onAssigneeChange: (value: AssigneeFilter) => void;
|
|
540
|
+
filterCategories: InboxFilterCategory[];
|
|
541
|
+
selectedFilters: Record<string, string>;
|
|
542
|
+
onFilterChange: (categoryId: string, value: string) => void;
|
|
543
|
+
onClearFilters: () => void;
|
|
544
|
+
className?: string;
|
|
545
|
+
}
|
|
546
|
+
declare function InboxToolbar({ assignee, onAssigneeChange, filterCategories, selectedFilters, onFilterChange, onClearFilters, className, }: InboxToolbarProps): React$1.JSX.Element;
|
|
547
|
+
|
|
215
548
|
declare function Input({ className, type, ...props }: React$1.ComponentProps<"input">): React$1.JSX.Element;
|
|
216
549
|
|
|
550
|
+
declare function ItemList(): React$1.JSX.Element;
|
|
551
|
+
interface GroupedListGroup<T> {
|
|
552
|
+
key: string;
|
|
553
|
+
label: string;
|
|
554
|
+
items: T[];
|
|
555
|
+
}
|
|
556
|
+
interface GroupedListViewProps<T> {
|
|
557
|
+
groups: GroupedListGroup<T>[];
|
|
558
|
+
renderRow: (item: T, index: number) => React$1.ReactNode;
|
|
559
|
+
getItemKey: (item: T) => string;
|
|
560
|
+
selectedKey?: string;
|
|
561
|
+
onItemClick?: (item: T) => void;
|
|
562
|
+
emptyMessage?: string;
|
|
563
|
+
className?: string;
|
|
564
|
+
}
|
|
565
|
+
declare function GroupedListView<T>({ groups, renderRow, getItemKey, selectedKey, onItemClick, emptyMessage, className, }: GroupedListViewProps<T>): React$1.JSX.Element;
|
|
566
|
+
|
|
567
|
+
type ItemListGrouping = "stage" | "owner" | "risk";
|
|
568
|
+
type ItemListViewMode = "list" | "board";
|
|
569
|
+
interface ItemListDisplayState {
|
|
570
|
+
viewMode: ItemListViewMode;
|
|
571
|
+
grouping: ItemListGrouping;
|
|
572
|
+
subGrouping: "none" | ItemListGrouping;
|
|
573
|
+
ordering: string;
|
|
574
|
+
orderingDirection: "asc" | "desc";
|
|
575
|
+
showContactSignals: boolean;
|
|
576
|
+
showOwner: boolean;
|
|
577
|
+
showStatus: boolean;
|
|
578
|
+
}
|
|
579
|
+
interface ItemListDisplayProps {
|
|
580
|
+
value: ItemListDisplayState;
|
|
581
|
+
onChange: (next: ItemListDisplayState) => void;
|
|
582
|
+
onReset: () => void;
|
|
583
|
+
}
|
|
584
|
+
declare function ItemListDisplay({ value, onChange, onReset, }: ItemListDisplayProps): React$1.JSX.Element;
|
|
585
|
+
|
|
586
|
+
interface ItemListFilterCategory {
|
|
587
|
+
id: string;
|
|
588
|
+
label: string;
|
|
589
|
+
options: string[];
|
|
590
|
+
}
|
|
591
|
+
interface ItemListFilterProps {
|
|
592
|
+
categories: ItemListFilterCategory[];
|
|
593
|
+
selectedFilters: Record<string, string[]>;
|
|
594
|
+
onToggleFilter: (categoryId: string, option: string) => void;
|
|
595
|
+
onClearFilters: () => void;
|
|
596
|
+
}
|
|
597
|
+
declare function ItemListFilter({ categories, selectedFilters, onToggleFilter, onClearFilters, }: ItemListFilterProps): React$1.JSX.Element;
|
|
598
|
+
|
|
599
|
+
interface ItemListQuickView {
|
|
600
|
+
id: string;
|
|
601
|
+
label: string;
|
|
602
|
+
count: number;
|
|
603
|
+
}
|
|
604
|
+
interface ItemListToolbarProps {
|
|
605
|
+
quickViews: ItemListQuickView[];
|
|
606
|
+
activeQuickView: string | null;
|
|
607
|
+
onQuickViewChange: (viewId: string | null) => void;
|
|
608
|
+
filterCategories: ItemListFilterCategory[];
|
|
609
|
+
selectedFilters: Record<string, string[]>;
|
|
610
|
+
onToggleFilter: (categoryId: string, option: string) => void;
|
|
611
|
+
onClearFilters: () => void;
|
|
612
|
+
display: ItemListDisplayState;
|
|
613
|
+
onDisplayChange: (next: ItemListDisplayState) => void;
|
|
614
|
+
onResetDisplay: () => void;
|
|
615
|
+
}
|
|
616
|
+
declare function ItemListToolbar({ quickViews, activeQuickView, onQuickViewChange, filterCategories, selectedFilters, onToggleFilter, onClearFilters, display, onDisplayChange, onResetDisplay, }: ItemListToolbarProps): React$1.JSX.Element;
|
|
617
|
+
|
|
217
618
|
declare function Label({ className, ...props }: React$1.ComponentProps<typeof LabelPrimitive.Root>): React$1.JSX.Element;
|
|
218
619
|
|
|
219
620
|
interface MetricDataPoint {
|
|
@@ -238,6 +639,366 @@ interface MetricCardProps {
|
|
|
238
639
|
}
|
|
239
640
|
declare function MetricCard({ title, value, unit, subtitle, change, footerText, dataPoints, showExternalLink, showInfo, }: MetricCardProps): React$1.JSX.Element;
|
|
240
641
|
|
|
642
|
+
interface PerformanceMetricsTableRow {
|
|
643
|
+
id: string;
|
|
644
|
+
label: string;
|
|
645
|
+
avatarFallback: string;
|
|
646
|
+
role?: string;
|
|
647
|
+
primaryValue: number;
|
|
648
|
+
primaryTarget: number;
|
|
649
|
+
ratePercent: number;
|
|
650
|
+
metricOne: number;
|
|
651
|
+
metricTwo: string;
|
|
652
|
+
metricThree: number;
|
|
653
|
+
metricFour: number;
|
|
654
|
+
}
|
|
655
|
+
interface PerformanceMetricsTableSortOption {
|
|
656
|
+
id: "primary-desc" | "primary-asc" | "rate-desc" | "metric-four-desc";
|
|
657
|
+
label: string;
|
|
658
|
+
}
|
|
659
|
+
interface PerformanceMetricsTableProps {
|
|
660
|
+
title?: string;
|
|
661
|
+
entityColumnLabel?: string;
|
|
662
|
+
primaryMetricColumnLabel?: string;
|
|
663
|
+
rateColumnLabel?: string;
|
|
664
|
+
metricOneColumnLabel?: string;
|
|
665
|
+
metricTwoColumnLabel?: string;
|
|
666
|
+
metricThreeColumnLabel?: string;
|
|
667
|
+
metricFourColumnLabel?: string;
|
|
668
|
+
viewOptions?: string[];
|
|
669
|
+
roleOptions?: string[];
|
|
670
|
+
sortOptions?: PerformanceMetricsTableSortOption[];
|
|
671
|
+
rows?: PerformanceMetricsTableRow[];
|
|
672
|
+
pageSize?: number;
|
|
673
|
+
searchPlaceholder?: string;
|
|
674
|
+
}
|
|
675
|
+
declare function PerformanceMetricsTable({ title, entityColumnLabel, primaryMetricColumnLabel, rateColumnLabel, metricOneColumnLabel, metricTwoColumnLabel, metricThreeColumnLabel, metricFourColumnLabel, viewOptions, roleOptions, sortOptions, rows, pageSize, searchPlaceholder, }: PerformanceMetricsTableProps): React$1.JSX.Element;
|
|
676
|
+
|
|
677
|
+
interface PipelineStage {
|
|
678
|
+
id: string;
|
|
679
|
+
label: string;
|
|
680
|
+
count: number;
|
|
681
|
+
trend: string;
|
|
682
|
+
nextConversion: string | null;
|
|
683
|
+
}
|
|
684
|
+
interface PipelineStageMetrics {
|
|
685
|
+
medianTime: string;
|
|
686
|
+
avgTime: string;
|
|
687
|
+
dropOffs: {
|
|
688
|
+
reason: string;
|
|
689
|
+
count: number;
|
|
690
|
+
pct: string;
|
|
691
|
+
}[];
|
|
692
|
+
}
|
|
693
|
+
interface PipelineStageTiming {
|
|
694
|
+
median: string;
|
|
695
|
+
avg: string;
|
|
696
|
+
}
|
|
697
|
+
interface PipelineFilterBreakdown {
|
|
698
|
+
[stageId: string]: Record<string, number>;
|
|
699
|
+
}
|
|
700
|
+
interface PipelineOverviewProps {
|
|
701
|
+
title?: string;
|
|
702
|
+
stages: PipelineStage[];
|
|
703
|
+
stageMetrics: Record<string, PipelineStageMetrics>;
|
|
704
|
+
stageTimings: (PipelineStageTiming | null)[];
|
|
705
|
+
filterOptions?: string[];
|
|
706
|
+
filterBreakdowns?: Record<string, PipelineFilterBreakdown>;
|
|
707
|
+
countingModes?: string[];
|
|
708
|
+
countingModeTooltip?: string;
|
|
709
|
+
/** Main pipeline flow nodes (after the first stage) */
|
|
710
|
+
flowNodes?: {
|
|
711
|
+
id: string;
|
|
712
|
+
nodeColor: string;
|
|
713
|
+
}[];
|
|
714
|
+
/** Drop-off distribution from initial stage: { "Lost/Other": 56, "Coverage": 40, ... } */
|
|
715
|
+
dropOffDistribution?: Record<string, number>;
|
|
716
|
+
/** Flow links after the first stage (middle of pipeline onward) */
|
|
717
|
+
flowLinks?: {
|
|
718
|
+
source: string;
|
|
719
|
+
target: string;
|
|
720
|
+
value: number;
|
|
721
|
+
}[];
|
|
722
|
+
totalReceived?: number;
|
|
723
|
+
onViewInWorkQueue?: (stageId: string) => void;
|
|
724
|
+
className?: string;
|
|
725
|
+
}
|
|
726
|
+
declare function PipelineOverview({ title, stages, stageMetrics, stageTimings, filterOptions, filterBreakdowns, countingModes, countingModeTooltip, flowNodes, dropOffDistribution, flowLinks, totalReceived, onViewInWorkQueue, className, }: PipelineOverviewProps): React$1.JSX.Element;
|
|
727
|
+
|
|
728
|
+
declare function PreviewList({ children, className, ...props }: React$1.HTMLAttributes<HTMLDivElement>): React$1.JSX.Element;
|
|
729
|
+
interface PreviewListItemProps extends Omit<React$1.HTMLAttributes<HTMLDivElement>, 'title'> {
|
|
730
|
+
icon?: React$1.ReactNode;
|
|
731
|
+
title: React$1.ReactNode;
|
|
732
|
+
subtitle?: React$1.ReactNode;
|
|
733
|
+
meta?: React$1.ReactNode;
|
|
734
|
+
action?: React$1.ReactNode;
|
|
735
|
+
isHoverable?: boolean;
|
|
736
|
+
}
|
|
737
|
+
declare const PreviewListItem: React$1.ForwardRefExoticComponent<PreviewListItemProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
738
|
+
|
|
739
|
+
declare function Progress({ className, value, ...props }: React$1.ComponentProps<typeof Progress$1.Root>): React$1.JSX.Element;
|
|
740
|
+
|
|
741
|
+
type QuickActionPriority$1 = "normal" | "high" | "urgent";
|
|
742
|
+
interface QuickActionSubmitPayload {
|
|
743
|
+
message: string;
|
|
744
|
+
priority: QuickActionPriority$1;
|
|
745
|
+
}
|
|
746
|
+
interface QuickActionChatAreaProps extends Omit<React$1.ComponentProps<"div">, "onSubmit"> {
|
|
747
|
+
placeholder?: string;
|
|
748
|
+
submitLabel?: string;
|
|
749
|
+
value?: string;
|
|
750
|
+
defaultValue?: string;
|
|
751
|
+
onValueChange?: (value: string) => void;
|
|
752
|
+
priority?: QuickActionPriority$1;
|
|
753
|
+
defaultPriority?: QuickActionPriority$1;
|
|
754
|
+
onPriorityChange?: (priority: QuickActionPriority$1) => void;
|
|
755
|
+
onSubmit: (payload: QuickActionSubmitPayload) => void;
|
|
756
|
+
allowEmptySubmit?: boolean;
|
|
757
|
+
clearOnSubmit?: boolean;
|
|
758
|
+
showEnterHint?: boolean;
|
|
759
|
+
}
|
|
760
|
+
declare function QuickActionChatArea({ className, placeholder, submitLabel, value, defaultValue, onValueChange, priority, defaultPriority, onPriorityChange, onSubmit, allowEmptySubmit, clearOnSubmit, showEnterHint, ...props }: QuickActionChatAreaProps): React$1.JSX.Element;
|
|
761
|
+
|
|
762
|
+
type TemplateIcon = React$1.ComponentType<{
|
|
763
|
+
className?: string;
|
|
764
|
+
}>;
|
|
765
|
+
interface QuickActionTemplate {
|
|
766
|
+
id: string;
|
|
767
|
+
label: string;
|
|
768
|
+
description: string;
|
|
769
|
+
icon: TemplateIcon;
|
|
770
|
+
category?: string;
|
|
771
|
+
}
|
|
772
|
+
type QuickActionPriority = "normal" | "high" | "urgent";
|
|
773
|
+
interface QuickActionTaskDraft {
|
|
774
|
+
templateId: string | null;
|
|
775
|
+
message: string;
|
|
776
|
+
priority: QuickActionPriority;
|
|
777
|
+
}
|
|
778
|
+
interface QuickActionModalProps {
|
|
779
|
+
open: boolean;
|
|
780
|
+
onOpenChange: (open: boolean) => void;
|
|
781
|
+
templates?: QuickActionTemplate[];
|
|
782
|
+
title?: string;
|
|
783
|
+
description?: string;
|
|
784
|
+
className?: string;
|
|
785
|
+
onCreateTask?: (draft: QuickActionTaskDraft) => void;
|
|
786
|
+
}
|
|
787
|
+
declare function QuickActionModal({ open, onOpenChange, templates, title, description, className, onCreateTask, }: QuickActionModalProps): React$1.JSX.Element;
|
|
788
|
+
|
|
789
|
+
interface SidebarNavItem {
|
|
790
|
+
id: string;
|
|
791
|
+
label: string;
|
|
792
|
+
icon: React$1.ComponentType<{
|
|
793
|
+
className?: string;
|
|
794
|
+
}>;
|
|
795
|
+
}
|
|
796
|
+
interface SidebarNavSection {
|
|
797
|
+
title?: string;
|
|
798
|
+
items: SidebarNavItem[];
|
|
799
|
+
moreItems?: SidebarNavItem[];
|
|
800
|
+
}
|
|
801
|
+
interface SidebarUserProfile {
|
|
802
|
+
name: string;
|
|
803
|
+
email: string;
|
|
804
|
+
initials?: string;
|
|
805
|
+
}
|
|
806
|
+
interface UserMenuItem {
|
|
807
|
+
id: string;
|
|
808
|
+
label: string;
|
|
809
|
+
icon: React$1.ComponentType<{
|
|
810
|
+
className?: string;
|
|
811
|
+
}>;
|
|
812
|
+
destructive?: boolean;
|
|
813
|
+
}
|
|
814
|
+
interface QuickActionSidebarNavProps extends React$1.ComponentProps<"aside"> {
|
|
815
|
+
brandLabel?: string;
|
|
816
|
+
brandSubtitle?: string;
|
|
817
|
+
navSections?: SidebarNavSection[];
|
|
818
|
+
activeItemId?: string;
|
|
819
|
+
onNavigate?: (itemId: string) => void;
|
|
820
|
+
user?: SidebarUserProfile;
|
|
821
|
+
userMenuItems?: UserMenuItem[];
|
|
822
|
+
onUserMenuAction?: (itemId: string) => void;
|
|
823
|
+
onCreateTask?: (draft: QuickActionTaskDraft) => void;
|
|
824
|
+
defaultCollapsed?: boolean;
|
|
825
|
+
}
|
|
826
|
+
declare function QuickActionSidebarNav({ className, brandLabel, brandSubtitle, navSections, activeItemId, onNavigate, user, userMenuItems, onUserMenuAction, onCreateTask, defaultCollapsed, ...props }: QuickActionSidebarNavProps): React$1.JSX.Element;
|
|
827
|
+
|
|
828
|
+
interface RecommendedAction {
|
|
829
|
+
id: string;
|
|
830
|
+
title: string;
|
|
831
|
+
reason: string;
|
|
832
|
+
category?: "Churn" | "Expand" | "Nurture" | string;
|
|
833
|
+
priority?: "High" | "Medium" | "Low" | string;
|
|
834
|
+
dueDate?: string;
|
|
835
|
+
confidence?: number;
|
|
836
|
+
signals?: string[];
|
|
837
|
+
revenueImpact?: number;
|
|
838
|
+
}
|
|
839
|
+
interface RecommendedActionsSectionProps {
|
|
840
|
+
actions: RecommendedAction[];
|
|
841
|
+
title?: string;
|
|
842
|
+
onQueueAction?: (action: RecommendedAction) => void;
|
|
843
|
+
onDismissAction?: (action: RecommendedAction) => void;
|
|
844
|
+
onFeedback?: (actionId: string, feedback: "useful" | "not_useful", comment: string) => void;
|
|
845
|
+
}
|
|
846
|
+
declare function RecommendedActionsSection({ actions, title, onQueueAction, onDismissAction, onFeedback, }: RecommendedActionsSectionProps): React$1.JSX.Element;
|
|
847
|
+
|
|
848
|
+
interface ReportCardFilterOption {
|
|
849
|
+
label: string;
|
|
850
|
+
value: string;
|
|
851
|
+
}
|
|
852
|
+
interface ReportCardProps {
|
|
853
|
+
title: string;
|
|
854
|
+
subtitle?: string;
|
|
855
|
+
/** Filter pill group rendered top-right */
|
|
856
|
+
filterOptions?: ReportCardFilterOption[];
|
|
857
|
+
selectedFilter?: string;
|
|
858
|
+
onFilterChange?: (value: string) => void;
|
|
859
|
+
/** Secondary toggle (e.g. metric selector) */
|
|
860
|
+
toggleOptions?: string[];
|
|
861
|
+
selectedToggle?: string;
|
|
862
|
+
onToggleChange?: (value: string) => void;
|
|
863
|
+
/** Render slot between header and content */
|
|
864
|
+
headerExtra?: React$1.ReactNode;
|
|
865
|
+
children: React$1.ReactNode;
|
|
866
|
+
className?: string;
|
|
867
|
+
contentClassName?: string;
|
|
868
|
+
}
|
|
869
|
+
declare function ReportCard({ title, subtitle, filterOptions, selectedFilter, onFilterChange, toggleOptions, selectedToggle, onToggleChange, headerExtra, children, className, contentClassName, }: ReportCardProps): React$1.JSX.Element;
|
|
870
|
+
|
|
871
|
+
interface SankeyNode {
|
|
872
|
+
id: string;
|
|
873
|
+
nodeColor?: string;
|
|
874
|
+
}
|
|
875
|
+
interface SankeyLink {
|
|
876
|
+
source: string;
|
|
877
|
+
target: string;
|
|
878
|
+
value: number;
|
|
879
|
+
}
|
|
880
|
+
interface SankeyData {
|
|
881
|
+
nodes: SankeyNode[];
|
|
882
|
+
links: SankeyLink[];
|
|
883
|
+
}
|
|
884
|
+
interface SankeyDropOff {
|
|
885
|
+
reason: string;
|
|
886
|
+
count: number;
|
|
887
|
+
pct?: string;
|
|
888
|
+
}
|
|
889
|
+
interface SankeyStageMetrics {
|
|
890
|
+
conversion: string;
|
|
891
|
+
medianTime: string;
|
|
892
|
+
avgTime: string;
|
|
893
|
+
}
|
|
894
|
+
interface SankeyHoverCardData {
|
|
895
|
+
title: string;
|
|
896
|
+
count: number | string;
|
|
897
|
+
metrics?: SankeyStageMetrics;
|
|
898
|
+
dropOffs?: SankeyDropOff[];
|
|
899
|
+
}
|
|
900
|
+
interface SankeyChartProps {
|
|
901
|
+
data: SankeyData;
|
|
902
|
+
height?: number;
|
|
903
|
+
nodeOpacity?: number;
|
|
904
|
+
nodeThickness?: number;
|
|
905
|
+
nodeBorderWidth?: number;
|
|
906
|
+
linkOpacity?: number;
|
|
907
|
+
linkHoverOpacity?: number;
|
|
908
|
+
enableLabels?: boolean;
|
|
909
|
+
labelTextColor?: string;
|
|
910
|
+
stageMetrics?: Record<string, {
|
|
911
|
+
metrics: SankeyStageMetrics;
|
|
912
|
+
dropOffs: SankeyDropOff[];
|
|
913
|
+
}>;
|
|
914
|
+
onDropOffClick?: (reason: string) => void;
|
|
915
|
+
onViewDetails?: (nodeId: string) => void;
|
|
916
|
+
className?: string;
|
|
917
|
+
}
|
|
918
|
+
declare function SankeyChart({ data, height, nodeOpacity, nodeThickness, nodeBorderWidth, linkOpacity, linkHoverOpacity, enableLabels, labelTextColor, stageMetrics, onDropOffClick, onViewDetails, className, }: SankeyChartProps): React$1.JSX.Element;
|
|
919
|
+
|
|
920
|
+
interface ScoreFactor {
|
|
921
|
+
key: string;
|
|
922
|
+
label: string;
|
|
923
|
+
score: number | null;
|
|
924
|
+
risk?: "Low" | "Medium" | "High";
|
|
925
|
+
why: string;
|
|
926
|
+
}
|
|
927
|
+
interface ScoreBreakdownProps {
|
|
928
|
+
factors: ScoreFactor[];
|
|
929
|
+
onFactorFeedback?: (factorKey: string, type: "up" | "down" | null, detail?: string) => void;
|
|
930
|
+
className?: string;
|
|
931
|
+
}
|
|
932
|
+
declare function ScoreBreakdown({ factors, onFactorFeedback, className }: ScoreBreakdownProps): React$1.JSX.Element;
|
|
933
|
+
|
|
934
|
+
interface ScoreAnalysisModalProps {
|
|
935
|
+
open: boolean;
|
|
936
|
+
onOpenChange: (open: boolean) => void;
|
|
937
|
+
title: string;
|
|
938
|
+
description: string;
|
|
939
|
+
score: number;
|
|
940
|
+
denominator?: number;
|
|
941
|
+
whyNow: string;
|
|
942
|
+
evidence: React$1.ReactNode[];
|
|
943
|
+
factors?: ScoreFactor[];
|
|
944
|
+
onFactorFeedback?: (factorKey: string, type: "up" | "down" | null, detail?: string) => void;
|
|
945
|
+
companyName?: string;
|
|
946
|
+
opportunityUrl?: string;
|
|
947
|
+
onApprove?: () => void;
|
|
948
|
+
onApproveFeedback?: (reasons: string[], detail: string) => void;
|
|
949
|
+
onDismiss?: (reasons: string[], detail: string) => void;
|
|
950
|
+
}
|
|
951
|
+
declare function ScoreAnalysisModal({ open, onOpenChange, title, description, score, denominator, whyNow, evidence, factors, onFactorFeedback, companyName, opportunityUrl, onApprove, onApproveFeedback, onDismiss, }: ScoreAnalysisModalProps): React$1.JSX.Element;
|
|
952
|
+
declare const ScoreAnalysisPanel: typeof ScoreAnalysisModal;
|
|
953
|
+
|
|
954
|
+
interface SubmittedScoreFeedback {
|
|
955
|
+
type: "up" | "down";
|
|
956
|
+
pills: string[];
|
|
957
|
+
detail: string;
|
|
958
|
+
}
|
|
959
|
+
interface ScoreFeedbackState {
|
|
960
|
+
thumbState: "up" | "down" | null;
|
|
961
|
+
selectedPills: string[];
|
|
962
|
+
detailText: string;
|
|
963
|
+
notedType: "up" | "down" | null;
|
|
964
|
+
submittedFeedback: SubmittedScoreFeedback | null;
|
|
965
|
+
otherSelected: boolean;
|
|
966
|
+
hasRequiredInput: boolean;
|
|
967
|
+
handleThumbClick: (type: "up" | "down") => void;
|
|
968
|
+
togglePill: (pill: string) => void;
|
|
969
|
+
setDetailText: (text: string) => void;
|
|
970
|
+
handleSubmit: () => void;
|
|
971
|
+
editSubmitted: () => void;
|
|
972
|
+
}
|
|
973
|
+
declare function useScoreFeedback(): ScoreFeedbackState;
|
|
974
|
+
interface RootProps$1 {
|
|
975
|
+
children: React$1.ReactNode;
|
|
976
|
+
onSubmitFeedback?: (type: "up" | "down", pills: string[], detail: string) => void;
|
|
977
|
+
}
|
|
978
|
+
declare function Root$1({ children, onSubmitFeedback }: RootProps$1): React$1.JSX.Element;
|
|
979
|
+
declare function Trigger({ className }: {
|
|
980
|
+
className?: string;
|
|
981
|
+
}): React$1.JSX.Element;
|
|
982
|
+
declare function Panel({ className }: {
|
|
983
|
+
className?: string;
|
|
984
|
+
}): React$1.JSX.Element | null;
|
|
985
|
+
declare const ScoreFeedback: {
|
|
986
|
+
Root: typeof Root$1;
|
|
987
|
+
Trigger: typeof Trigger;
|
|
988
|
+
Panel: typeof Panel;
|
|
989
|
+
};
|
|
990
|
+
|
|
991
|
+
declare function getScoreColor(score: number, denominator: number): "text-emerald-500" | "text-amber-500" | "text-red-500";
|
|
992
|
+
interface ScoreRingProps {
|
|
993
|
+
score: number;
|
|
994
|
+
denominator?: number;
|
|
995
|
+
size?: number;
|
|
996
|
+
strokeWidth?: number;
|
|
997
|
+
className?: string;
|
|
998
|
+
showLabel?: boolean;
|
|
999
|
+
}
|
|
1000
|
+
declare function ScoreRing({ score, denominator, size, strokeWidth, className, showLabel, }: ScoreRingProps): React$1.JSX.Element;
|
|
1001
|
+
|
|
241
1002
|
declare function ScrollArea({ className, children, ...props }: React$1.ComponentProps<typeof ScrollArea$1.Root>): React$1.JSX.Element;
|
|
242
1003
|
declare function ScrollBar({ className, orientation, ...props }: React$1.ComponentProps<typeof ScrollArea$1.ScrollAreaScrollbar>): React$1.JSX.Element;
|
|
243
1004
|
|
|
@@ -336,8 +1097,148 @@ declare function SidebarMenuSubButton({ asChild, size, isActive, className, ...p
|
|
|
336
1097
|
isActive?: boolean;
|
|
337
1098
|
}): React$1.JSX.Element;
|
|
338
1099
|
|
|
1100
|
+
type ApprovalState = "pending" | "confirming" | "approving-feedback" | "dismissing" | "approved" | "dismissed";
|
|
1101
|
+
interface SignalApprovalContextValue {
|
|
1102
|
+
approvalState: ApprovalState;
|
|
1103
|
+
companyName: string;
|
|
1104
|
+
opportunityUrl?: string;
|
|
1105
|
+
approve: () => void;
|
|
1106
|
+
submitApproveFeedback: (reasons: string[], detail: string) => void;
|
|
1107
|
+
skipApproveFeedback: () => void;
|
|
1108
|
+
dismiss: (reasons: string[], detail: string) => void;
|
|
1109
|
+
requestApproval: () => void;
|
|
1110
|
+
requestDismiss: () => void;
|
|
1111
|
+
cancel: () => void;
|
|
1112
|
+
}
|
|
1113
|
+
declare function useSignalApproval(): SignalApprovalContextValue;
|
|
1114
|
+
interface RootProps {
|
|
1115
|
+
children: React$1.ReactNode;
|
|
1116
|
+
companyName: string;
|
|
1117
|
+
opportunityUrl?: string;
|
|
1118
|
+
onApprove?: () => void;
|
|
1119
|
+
onApproveFeedback?: (reasons: string[], detail: string) => void;
|
|
1120
|
+
onDismiss?: (reasons: string[], detail: string) => void;
|
|
1121
|
+
}
|
|
1122
|
+
declare function Root({ children, companyName, opportunityUrl, onApprove, onApproveFeedback, onDismiss }: RootProps): React$1.JSX.Element;
|
|
1123
|
+
declare function Actions(): React$1.JSX.Element;
|
|
1124
|
+
declare function Gate({ children }: {
|
|
1125
|
+
children: React$1.ReactNode;
|
|
1126
|
+
}): React$1.JSX.Element;
|
|
1127
|
+
|
|
1128
|
+
declare const SignalApproval: {
|
|
1129
|
+
Root: typeof Root;
|
|
1130
|
+
Actions: typeof Actions;
|
|
1131
|
+
Gate: typeof Gate;
|
|
1132
|
+
};
|
|
1133
|
+
|
|
339
1134
|
declare function Skeleton({ className, ...props }: React.ComponentProps<"div">): React$1.JSX.Element;
|
|
340
1135
|
|
|
1136
|
+
interface StyledBarItem {
|
|
1137
|
+
name: string;
|
|
1138
|
+
value: number;
|
|
1139
|
+
href?: string;
|
|
1140
|
+
subtitle?: string;
|
|
1141
|
+
}
|
|
1142
|
+
interface StyledBarListProps {
|
|
1143
|
+
data: StyledBarItem[];
|
|
1144
|
+
valueFormatter?: (value: number) => string;
|
|
1145
|
+
className?: string;
|
|
1146
|
+
showAnimation?: boolean;
|
|
1147
|
+
showSubtitle?: boolean;
|
|
1148
|
+
barColor?: string;
|
|
1149
|
+
}
|
|
1150
|
+
declare function StyledBarList({ data, valueFormatter, className, showAnimation, showSubtitle, barColor, }: StyledBarListProps): React$1.JSX.Element;
|
|
1151
|
+
|
|
1152
|
+
interface SuggestedActionsIconMap {
|
|
1153
|
+
gmail?: string;
|
|
1154
|
+
slack?: string;
|
|
1155
|
+
zendesk?: string;
|
|
1156
|
+
salesforce?: string;
|
|
1157
|
+
}
|
|
1158
|
+
interface SuggestedContact {
|
|
1159
|
+
name: string;
|
|
1160
|
+
role: string;
|
|
1161
|
+
email?: string;
|
|
1162
|
+
emails?: string[];
|
|
1163
|
+
phone?: string;
|
|
1164
|
+
phones?: string[];
|
|
1165
|
+
confirmed: boolean;
|
|
1166
|
+
salesforceUrl?: string;
|
|
1167
|
+
lastActivity?: {
|
|
1168
|
+
date: string;
|
|
1169
|
+
type: string;
|
|
1170
|
+
};
|
|
1171
|
+
}
|
|
1172
|
+
interface SuggestedActionThreadMessage {
|
|
1173
|
+
id: string;
|
|
1174
|
+
from: string;
|
|
1175
|
+
initials: string;
|
|
1176
|
+
time: string;
|
|
1177
|
+
preview: string;
|
|
1178
|
+
content: string;
|
|
1179
|
+
}
|
|
1180
|
+
interface SuggestedActionReplyTo {
|
|
1181
|
+
from: string;
|
|
1182
|
+
time: string;
|
|
1183
|
+
content: string;
|
|
1184
|
+
channel?: string;
|
|
1185
|
+
}
|
|
1186
|
+
interface SuggestedActionTicket {
|
|
1187
|
+
system: string;
|
|
1188
|
+
priority: string;
|
|
1189
|
+
type: string;
|
|
1190
|
+
subject: string;
|
|
1191
|
+
description: string;
|
|
1192
|
+
assignee?: string;
|
|
1193
|
+
tags?: string[];
|
|
1194
|
+
}
|
|
1195
|
+
interface SuggestedActionFollowUp {
|
|
1196
|
+
enabled: boolean;
|
|
1197
|
+
days: number;
|
|
1198
|
+
}
|
|
1199
|
+
interface SuggestedActionEmailMeta {
|
|
1200
|
+
from: string;
|
|
1201
|
+
fromEmail: string;
|
|
1202
|
+
to?: SuggestedContact;
|
|
1203
|
+
cc?: SuggestedContact[];
|
|
1204
|
+
bcc?: string;
|
|
1205
|
+
subject?: string;
|
|
1206
|
+
}
|
|
1207
|
+
interface SuggestedActionCallMeta {
|
|
1208
|
+
contact?: SuggestedContact;
|
|
1209
|
+
talkTrack: string;
|
|
1210
|
+
allowDispatchAgent?: boolean;
|
|
1211
|
+
}
|
|
1212
|
+
interface SuggestedAction {
|
|
1213
|
+
id: number | string;
|
|
1214
|
+
type: "email" | "ticket" | "slack" | "call";
|
|
1215
|
+
label: string;
|
|
1216
|
+
status: "pending" | "sent" | "dismissed";
|
|
1217
|
+
content?: string;
|
|
1218
|
+
replyTo?: SuggestedActionReplyTo;
|
|
1219
|
+
threadMessages?: SuggestedActionThreadMessage[];
|
|
1220
|
+
ticket?: SuggestedActionTicket;
|
|
1221
|
+
followUp?: SuggestedActionFollowUp;
|
|
1222
|
+
emailMeta?: SuggestedActionEmailMeta;
|
|
1223
|
+
callMeta?: SuggestedActionCallMeta;
|
|
1224
|
+
}
|
|
1225
|
+
interface SuggestedActionsProps {
|
|
1226
|
+
actions: SuggestedAction[];
|
|
1227
|
+
title?: string;
|
|
1228
|
+
onDismiss?: (id: number | string) => void;
|
|
1229
|
+
onSend?: (id: number | string) => void;
|
|
1230
|
+
onSaveDraft?: (id: number | string) => void;
|
|
1231
|
+
accountContacts?: SuggestedContact[];
|
|
1232
|
+
signature?: string;
|
|
1233
|
+
onDuplicate?: (id: number | string) => void;
|
|
1234
|
+
onOpenAccountDetails?: () => void;
|
|
1235
|
+
onOpenRecentActivity?: () => void;
|
|
1236
|
+
onMarkComplete?: (id: number | string) => void;
|
|
1237
|
+
onDispatchAgent?: (id: number | string) => void;
|
|
1238
|
+
iconMap?: SuggestedActionsIconMap;
|
|
1239
|
+
}
|
|
1240
|
+
declare function SuggestedActions({ actions, title, onDismiss, onSend, onSaveDraft, accountContacts, signature, onDuplicate, onOpenAccountDetails, onOpenRecentActivity, onMarkComplete, onDispatchAgent, iconMap, }: SuggestedActionsProps): React$1.JSX.Element;
|
|
1241
|
+
|
|
341
1242
|
declare function Table({ className, ...props }: React$1.ComponentProps<"table">): React$1.JSX.Element;
|
|
342
1243
|
declare function TableHeader({ className, ...props }: React$1.ComponentProps<"thead">): React$1.JSX.Element;
|
|
343
1244
|
declare function TableBody({ className, ...props }: React$1.ComponentProps<"tbody">): React$1.JSX.Element;
|
|
@@ -349,7 +1250,7 @@ declare function TableCaption({ className, ...props }: React$1.ComponentProps<"c
|
|
|
349
1250
|
|
|
350
1251
|
declare function Tabs({ className, orientation, ...props }: React$1.ComponentProps<typeof Tabs$1.Root>): React$1.JSX.Element;
|
|
351
1252
|
declare const tabsListVariants: (props?: ({
|
|
352
|
-
variant?: "
|
|
1253
|
+
variant?: "default" | "line" | null | undefined;
|
|
353
1254
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
354
1255
|
declare function TabsList({ className, variant, ...props }: React$1.ComponentProps<typeof Tabs$1.List> & VariantProps<typeof tabsListVariants>): React$1.JSX.Element;
|
|
355
1256
|
declare function TabsTrigger({ className, ...props }: React$1.ComponentProps<typeof Tabs$1.Trigger>): React$1.JSX.Element;
|
|
@@ -357,4 +1258,74 @@ declare function TabsContent({ className, ...props }: React$1.ComponentProps<typ
|
|
|
357
1258
|
|
|
358
1259
|
declare function Textarea({ className, ...props }: React$1.ComponentProps<"textarea">): React$1.JSX.Element;
|
|
359
1260
|
|
|
360
|
-
|
|
1261
|
+
interface MetricCardData {
|
|
1262
|
+
label: string;
|
|
1263
|
+
value: string | number;
|
|
1264
|
+
trend?: {
|
|
1265
|
+
value: number;
|
|
1266
|
+
direction: "up" | "down" | "neutral";
|
|
1267
|
+
};
|
|
1268
|
+
alert?: boolean;
|
|
1269
|
+
}
|
|
1270
|
+
interface TopLineMetricsProps {
|
|
1271
|
+
metrics: MetricCardData[];
|
|
1272
|
+
chartData?: {
|
|
1273
|
+
date: string;
|
|
1274
|
+
value: number;
|
|
1275
|
+
secondary?: number;
|
|
1276
|
+
}[];
|
|
1277
|
+
filters?: string[];
|
|
1278
|
+
activeFilter?: string;
|
|
1279
|
+
onFilterChange?: (filter: string) => void;
|
|
1280
|
+
className?: string;
|
|
1281
|
+
}
|
|
1282
|
+
declare function TopLineMetrics({ metrics, chartData, filters, activeFilter, onFilterChange, className, }: TopLineMetricsProps): React$1.JSX.Element;
|
|
1283
|
+
|
|
1284
|
+
interface TrendSeries {
|
|
1285
|
+
dataKey: string;
|
|
1286
|
+
color: string;
|
|
1287
|
+
label?: string;
|
|
1288
|
+
fillOpacity?: number;
|
|
1289
|
+
}
|
|
1290
|
+
interface TrendAreaChartProps {
|
|
1291
|
+
data: Record<string, unknown>[];
|
|
1292
|
+
series: TrendSeries[];
|
|
1293
|
+
height?: number;
|
|
1294
|
+
xAxisKey?: string;
|
|
1295
|
+
showGrid?: boolean;
|
|
1296
|
+
yDomain?: [number, number];
|
|
1297
|
+
tooltipFormatter?: (value: number | string, name: string) => [string, string];
|
|
1298
|
+
className?: string;
|
|
1299
|
+
}
|
|
1300
|
+
declare function TrendAreaChart({ data, series, height, xAxisKey, showGrid, yDomain, tooltipFormatter, className, }: TrendAreaChartProps): React$1.JSX.Element;
|
|
1301
|
+
|
|
1302
|
+
interface ViewMode {
|
|
1303
|
+
id: string;
|
|
1304
|
+
icon: React$1.ReactNode;
|
|
1305
|
+
label: string;
|
|
1306
|
+
}
|
|
1307
|
+
interface ViewModeToggleProps {
|
|
1308
|
+
modes: ViewMode[];
|
|
1309
|
+
activeMode: string;
|
|
1310
|
+
onModeChange: (modeId: string) => void;
|
|
1311
|
+
className?: string;
|
|
1312
|
+
}
|
|
1313
|
+
declare function ViewModeToggle({ modes, activeMode, onModeChange, className }: ViewModeToggleProps): React$1.JSX.Element;
|
|
1314
|
+
|
|
1315
|
+
interface VolumeDataKey {
|
|
1316
|
+
key: string;
|
|
1317
|
+
color: string;
|
|
1318
|
+
}
|
|
1319
|
+
interface VolumeAnalysisChartProps {
|
|
1320
|
+
data: Record<string, unknown>[];
|
|
1321
|
+
dataKeys: VolumeDataKey[];
|
|
1322
|
+
height?: number;
|
|
1323
|
+
xAxisKey?: string;
|
|
1324
|
+
stacked?: boolean;
|
|
1325
|
+
title?: string;
|
|
1326
|
+
subtitle?: string;
|
|
1327
|
+
className?: string;
|
|
1328
|
+
}
|
|
1329
|
+
declare function VolumeAnalysisChart({ data, dataKeys, height, xAxisKey, stacked, title, subtitle, className, }: VolumeAnalysisChartProps): React$1.JSX.Element;
|
|
1330
|
+
|
|
1331
|
+
export { ActivityDetail, type ActivityDetailData, type ActivityDetailProps, type ActivityItem, ActivityLog, type ActivityLogItem, type ActivityLogProps, type ActivityParticipant, ActivityRow, type ActivityThreadMessage, type AssigneeFilter, Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, BarChartComponent, type BarChartComponentProps, type BarSeries, Button, CHART_CURSOR_STYLE, CHART_TOOLTIP_STYLE, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, type ChartConfig, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, type ChartTooltipEntry, CheckInsCard, Citation, ConnectedApps, type ContactChannel, type ContactItem, ContactList, type ContactListProps, DataTable, DataTableDisplay, type DataTableDisplayColumn, DataTableFilter, type DataTableFilterCategory, type DataTableQuickViewValue, DataTableQuickViews, DataTableToolbar, DetailViewHeader, DetailViewSummary, DetailViewThread, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DonutChart, type DonutChartProps, type DonutSegment, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EntityActivityItem, EntityDetails, type EntityMetadataField, EntityMetadataGrid, EntityPanel, type EntityPanelBrandIcons, EntityPanelHeader, EntityPanelTabs, EntitySection, type GroupedListGroup, GroupedListView, type GroupedListViewProps, type InboxFilterCategory, InboxGroupHeader, InboxRow, type InboxRowProps, InboxToolbar, type InboxToolbarProps, Input, ItemList, ItemListDisplay, type ItemListDisplayState, ItemListFilter, type ItemListFilterCategory, type ItemListGrouping, type ItemListQuickView, ItemListToolbar, type ItemListViewMode, Label, MetricCard, type MetricCardData, type MetricCardProps, type MetricDataPoint, PerformanceMetricsTable, type PerformanceMetricsTableRow, type PerformanceMetricsTableSortOption, type PipelineFilterBreakdown, PipelineOverview, type PipelineOverviewProps, type PipelineStage, type PipelineStageMetrics, type PipelineStageTiming, PotentialContacts, PreviewList, PreviewListItem, type PreviewListItemProps, Progress, QuickActionChatArea, QuickActionModal, type QuickActionPriority$1 as QuickActionPriority, QuickActionSidebarNav, type QuickActionSubmitPayload, type QuickActionTaskDraft, type QuickActionTemplate, RecentActivity, RecentlyCompletedCard, type RecommendedAction, RecommendedActionsSection, ReportCard, type ReportCardProps, SankeyChart, type SankeyData, type SankeyDropOff, type SankeyHoverCardData, type SankeyLink, type SankeyNode, type SankeyStageMetrics, ScoreAnalysisModal, type ScoreAnalysisModalProps, ScoreAnalysisPanel, ScoreBreakdown, type ScoreBreakdownProps, type ScoreFactor, ScoreFeedback, ScoreRing, type ScoreRingProps, ScrollArea, ScrollBar, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, type SidebarNavItem, type SidebarNavSection, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, type SidebarUserProfile, SignalApproval, Actions as SignalApprovalActions, Gate as SignalApprovalGate, Root as SignalApprovalRoot, SimpleChartTooltip, type SimpleChartTooltipProps, Skeleton, type SourceDef, SourceList, type StyledBarItem, StyledBarList, type StyledBarListProps, type SuggestedAction, type SuggestedActionCallMeta, type SuggestedActionEmailMeta, type SuggestedActionFollowUp, type SuggestedActionReplyTo, type SuggestedActionThreadMessage, type SuggestedActionTicket, SuggestedActions, type SuggestedActionsIconMap, type SuggestedActionsProps, type SuggestedContact, SystemActivity, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, ThreadMessage, TimelineActivity, type TimelineActivityProps, type TimelineEvent, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TopLineMetrics, type TopLineMetricsProps, TopTasksCard, TrendAreaChart, type TrendAreaChartProps, type TrendSeries, UpcomingMeetingsCard, type UserMenuItem, type ViewMode, ViewModeToggle, type ViewModeToggleProps, VolumeAnalysisChart, type VolumeAnalysisChartProps, type VolumeDataKey, badgeVariants, buttonVariants, cn, getScoreColor, tabsListVariants, useIsMobile, useScoreFeedback, useSidebar, useSignalApproval };
|