@freedom-code-compliance/fcc-redesign 0.1.50 → 0.1.53
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 +18 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +6741 -3909
- package/dist/styles.css +1 -1
- package/index.d.ts +725 -0
- package/package.json +4 -1
package/index.d.ts
ADDED
|
@@ -0,0 +1,725 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react'
|
|
2
|
+
import type { ComponentPropsWithoutRef, ComponentType, JSX } from 'react'
|
|
3
|
+
|
|
4
|
+
type FCCAnyComponent = ComponentType<Record<string, unknown>>
|
|
5
|
+
|
|
6
|
+
export type FCCChatTab = 'hubs' | 'tickets' | 'dms'
|
|
7
|
+
export type FCCChatViewport = 'mobile' | 'smallDesktop' | 'bigDesktop'
|
|
8
|
+
|
|
9
|
+
export interface FCCChatSelection<Item = FCCChatHubItem | FCCChatTicketItem | FCCChatDMItem> {
|
|
10
|
+
tab: FCCChatTab
|
|
11
|
+
kind: FCCChatTab
|
|
12
|
+
id: string
|
|
13
|
+
item: Item
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface FCCChatAvatarGroupItem {
|
|
17
|
+
id?: string
|
|
18
|
+
name?: string
|
|
19
|
+
avatarUrl?: string
|
|
20
|
+
avatarText?: string
|
|
21
|
+
presenceStatus?: 'available' | 'plan_review' | 'unavailable' | 'offline_insp' | 'offline'
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export interface FCCChatBaseItem {
|
|
25
|
+
id: string
|
|
26
|
+
title: ReactNode
|
|
27
|
+
name?: ReactNode
|
|
28
|
+
subtitle?: ReactNode
|
|
29
|
+
description?: ReactNode
|
|
30
|
+
meta?: ReactNode
|
|
31
|
+
time?: ReactNode
|
|
32
|
+
countLabel?: ReactNode
|
|
33
|
+
messageCount?: number
|
|
34
|
+
replyCount?: number
|
|
35
|
+
subscribed?: boolean
|
|
36
|
+
unread?: boolean
|
|
37
|
+
group?: 'open' | 'resolved' | string
|
|
38
|
+
isClosed?: boolean
|
|
39
|
+
isResolved?: boolean
|
|
40
|
+
dotColor?: string
|
|
41
|
+
statusLabel?: ReactNode
|
|
42
|
+
badge?: ReactNode
|
|
43
|
+
avatar?: ReactNode
|
|
44
|
+
avatarUrl?: string
|
|
45
|
+
avatarGroup?: FCCChatAvatarGroupItem[]
|
|
46
|
+
avatarText?: string
|
|
47
|
+
avatarStyle?: CSSProperties
|
|
48
|
+
presenceStatus?: 'available' | 'plan_review' | 'unavailable' | 'offline_insp' | 'offline'
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export interface FCCChatHubItem extends FCCChatBaseItem {}
|
|
52
|
+
export interface FCCChatTicketItem extends FCCChatBaseItem {}
|
|
53
|
+
export interface FCCChatDMItem extends FCCChatBaseItem {}
|
|
54
|
+
|
|
55
|
+
export interface FCCChatFilterState {
|
|
56
|
+
search?: string
|
|
57
|
+
mode?: 'subscribed' | 'all'
|
|
58
|
+
sortBy?: 'last_activity' | 'created_at' | 'title'
|
|
59
|
+
ticketSortBy?: 'last_activity' | 'created_at' | 'title'
|
|
60
|
+
status?: '' | 'open' | 'resolved'
|
|
61
|
+
ticketStatus?: '' | 'open' | 'resolved'
|
|
62
|
+
searchByTab?: Partial<Record<FCCChatTab, string>>
|
|
63
|
+
modeByTab?: Partial<Record<FCCChatTab, 'subscribed' | 'all'>>
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
export interface FCCChatAttachment {
|
|
67
|
+
id?: string
|
|
68
|
+
name?: string
|
|
69
|
+
url?: string
|
|
70
|
+
thumbnailUrl?: string
|
|
71
|
+
alt?: string
|
|
72
|
+
[key: string]: unknown
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface FCCChatReaction {
|
|
76
|
+
emoji?: ReactNode
|
|
77
|
+
label?: ReactNode
|
|
78
|
+
count?: ReactNode
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
export interface FCCChatAuthor {
|
|
82
|
+
id?: string
|
|
83
|
+
name?: string
|
|
84
|
+
avatar?: ReactNode
|
|
85
|
+
avatarUrl?: string
|
|
86
|
+
avatarText?: string
|
|
87
|
+
avatarStyle?: CSSProperties
|
|
88
|
+
presenceStatus?: 'available' | 'plan_review' | 'unavailable' | 'offline_insp' | 'offline'
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export interface FCCChatMessage {
|
|
92
|
+
id?: string
|
|
93
|
+
type?: 'message' | 'divider'
|
|
94
|
+
label?: ReactNode
|
|
95
|
+
from?: string
|
|
96
|
+
isOwn?: boolean
|
|
97
|
+
author?: FCCChatAuthor
|
|
98
|
+
authorName?: ReactNode
|
|
99
|
+
time?: ReactNode
|
|
100
|
+
body?: ReactNode
|
|
101
|
+
text?: ReactNode
|
|
102
|
+
attachments?: FCCChatAttachment[]
|
|
103
|
+
attachmentLayout?: 'default' | 'ticket' | 'hub'
|
|
104
|
+
reactions?: FCCChatReaction[]
|
|
105
|
+
hideReplyAction?: boolean
|
|
106
|
+
hideQuoteReplyAction?: boolean
|
|
107
|
+
onReaction?: (message: FCCChatMessage) => void
|
|
108
|
+
onReply?: (message: FCCChatMessage) => void
|
|
109
|
+
onQuoteReply?: (message: FCCChatMessage) => void
|
|
110
|
+
onMoreActions?: (message: FCCChatMessage) => void
|
|
111
|
+
onCopy?: (message: FCCChatMessage) => void
|
|
112
|
+
[key: string]: unknown
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
export interface FCCChatHubUpdate extends FCCChatMessage {
|
|
116
|
+
author?: FCCChatAuthor
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export interface FCCChatDetailModel {
|
|
120
|
+
id: string
|
|
121
|
+
kind: FCCChatTab
|
|
122
|
+
title?: ReactNode
|
|
123
|
+
subtitle?: ReactNode
|
|
124
|
+
projectId?: string
|
|
125
|
+
participantCount?: number
|
|
126
|
+
tags?: Array<string | { label: ReactNode }>
|
|
127
|
+
actions?: ReactNode
|
|
128
|
+
status?: string
|
|
129
|
+
statusSteps?: string[]
|
|
130
|
+
messages?: FCCChatMessage[]
|
|
131
|
+
updates?: FCCChatHubUpdate[]
|
|
132
|
+
hubAction?: ReactNode
|
|
133
|
+
onOpenProject?: (projectId?: string) => void
|
|
134
|
+
onSelectUpdate?: (update: FCCChatHubUpdate) => void
|
|
135
|
+
onMessageReaction?: (message: FCCChatMessage) => void
|
|
136
|
+
onMessageReply?: (message: FCCChatMessage) => void
|
|
137
|
+
onMessageQuoteReply?: (message: FCCChatMessage) => void
|
|
138
|
+
onMessageMoreActions?: (message: FCCChatMessage) => void
|
|
139
|
+
onMessageCopy?: (message: FCCChatMessage) => void
|
|
140
|
+
composerPlaceholder?: string
|
|
141
|
+
onSubmit?: (value: string) => void
|
|
142
|
+
composer?: FCCChatComposerProps
|
|
143
|
+
[key: string]: unknown
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
export interface FCCChatDetailSlotProps {
|
|
147
|
+
detail: FCCChatDetailModel
|
|
148
|
+
onCloseDetail?: () => void
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
export type FCCChatHubDetailSlotProps = FCCChatDetailSlotProps
|
|
152
|
+
export type FCCChatTicketDetailSlotProps = FCCChatDetailSlotProps
|
|
153
|
+
export type FCCChatDMDetailSlotProps = FCCChatDetailSlotProps
|
|
154
|
+
|
|
155
|
+
export interface FCCChatComposerSlotProps {
|
|
156
|
+
detail: FCCChatDetailModel
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
export interface FCCChatSidebarSlots {
|
|
160
|
+
headerActions?: ReactNode
|
|
161
|
+
hubsToolbarActions?: ReactNode
|
|
162
|
+
ticketsToolbarActions?: ReactNode
|
|
163
|
+
dmsToolbarActions?: ReactNode
|
|
164
|
+
renderHubDetail?: (hub: FCCChatHubDetailSlotProps) => ReactNode
|
|
165
|
+
renderTicketDetail?: (ticket: FCCChatTicketDetailSlotProps) => ReactNode
|
|
166
|
+
renderDMDetail?: (dm: FCCChatDMDetailSlotProps) => ReactNode
|
|
167
|
+
renderComposer?: (props: FCCChatComposerSlotProps) => ReactNode
|
|
168
|
+
renderMessageAttachment?: (attachment: FCCChatAttachment) => ReactNode
|
|
169
|
+
renderInlineReply?: (message: FCCChatMessage) => ReactNode
|
|
170
|
+
footerAction?: ReactNode
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export interface FCCChatSidebarProps extends Omit<ComponentPropsWithoutRef<'section'>, 'title' | 'onSelect'> {
|
|
174
|
+
open: boolean
|
|
175
|
+
activeTab: FCCChatTab
|
|
176
|
+
onTabChange: (tab: FCCChatTab) => void
|
|
177
|
+
onClose: () => void
|
|
178
|
+
title?: ReactNode
|
|
179
|
+
scopedTitle?: ReactNode
|
|
180
|
+
hubs: FCCChatHubItem[]
|
|
181
|
+
tickets: FCCChatTicketItem[]
|
|
182
|
+
dms: FCCChatDMItem[]
|
|
183
|
+
selectedId?: string | null
|
|
184
|
+
detailOpen: boolean
|
|
185
|
+
onSelectItem: (item: FCCChatSelection) => void
|
|
186
|
+
onCloseDetail: () => void
|
|
187
|
+
loading?: Partial<Record<FCCChatTab | 'detail', boolean>>
|
|
188
|
+
error?: Partial<Record<FCCChatTab | 'detail', ReactNode>>
|
|
189
|
+
filters?: FCCChatFilterState
|
|
190
|
+
onFiltersChange?: (filters: FCCChatFilterState) => void
|
|
191
|
+
detail: FCCChatDetailModel | null
|
|
192
|
+
newTicket?: FCCChatNewTicketFormProps & {
|
|
193
|
+
onOpen?: () => void
|
|
194
|
+
onCreated?: (values: FCCChatNewTicketFormValues) => void
|
|
195
|
+
onError?: (error: unknown, values: FCCChatNewTicketFormValues) => void
|
|
196
|
+
}
|
|
197
|
+
newDM?: FCCChatNewDMModalProps & {
|
|
198
|
+
onOpen?: () => void
|
|
199
|
+
onCreated?: (users: FCCChatNewDMUser[], ids: string[]) => void
|
|
200
|
+
onError?: (error: unknown, users: FCCChatNewDMUser[], ids: string[]) => void
|
|
201
|
+
}
|
|
202
|
+
composer?: FCCChatComposerProps & {
|
|
203
|
+
onStartHubUpdate?: () => void
|
|
204
|
+
}
|
|
205
|
+
slots?: FCCChatSidebarSlots
|
|
206
|
+
mobilePortalTargetSelector?: string | null
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
export interface FCCChatMessageListProps {
|
|
210
|
+
messages?: FCCChatMessage[]
|
|
211
|
+
renderMessageAttachment?: (attachment: FCCChatAttachment) => ReactNode
|
|
212
|
+
renderInlineReply?: (message: FCCChatMessage) => ReactNode
|
|
213
|
+
emptyLabel?: ReactNode
|
|
214
|
+
attachmentLayout?: 'default' | 'ticket' | 'hub'
|
|
215
|
+
onMessageReaction?: (message: FCCChatMessage) => void
|
|
216
|
+
onMessageReply?: (message: FCCChatMessage) => void
|
|
217
|
+
onMessageQuoteReply?: (message: FCCChatMessage) => void
|
|
218
|
+
onMessageMoreActions?: (message: FCCChatMessage) => void
|
|
219
|
+
onMessageCopy?: (message: FCCChatMessage) => void
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
export interface FCCChatComposerFrameProps {
|
|
223
|
+
placeholder?: string
|
|
224
|
+
value?: string
|
|
225
|
+
onChange?: (value: string) => void
|
|
226
|
+
onSubmit?: (value: string) => void
|
|
227
|
+
disabled?: boolean
|
|
228
|
+
leadingAction?: ReactNode
|
|
229
|
+
sendLabel?: string
|
|
230
|
+
children?: ReactNode
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
export interface FCCChatComposerSubmitMeta {
|
|
234
|
+
attachments?: FCCChatAttachment[]
|
|
235
|
+
quote?: FCCChatMessage | Record<string, unknown>
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
export interface FCCChatComposerProps {
|
|
239
|
+
placeholder?: string
|
|
240
|
+
value?: string
|
|
241
|
+
onChange?: (value: string) => void
|
|
242
|
+
onSubmit?: (value: string, meta: FCCChatComposerSubmitMeta) => void | Promise<void>
|
|
243
|
+
disabled?: boolean
|
|
244
|
+
attachments?: FCCChatAttachment[]
|
|
245
|
+
onAttach?: (files: File[]) => void
|
|
246
|
+
onRemoveAttachment?: (attachment: FCCChatAttachment, index: number) => void
|
|
247
|
+
quote?: FCCChatMessage | Record<string, unknown>
|
|
248
|
+
onCancelQuote?: () => void
|
|
249
|
+
mentionSuggestions?: FCCChatAvatarGroupItem[]
|
|
250
|
+
departmentSuggestions?: FCCChatAvatarGroupItem[]
|
|
251
|
+
leadingAction?: ReactNode
|
|
252
|
+
sendLabel?: string
|
|
253
|
+
className?: string
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
export interface FCCChatNewTicketFormValues {
|
|
257
|
+
projectId?: string
|
|
258
|
+
projectName?: ReactNode
|
|
259
|
+
departmentCode?: string
|
|
260
|
+
targetType?: string
|
|
261
|
+
title: string
|
|
262
|
+
message?: string
|
|
263
|
+
visibility?: 'internal' | 'public' | string
|
|
264
|
+
files?: File[]
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
export interface FCCChatOption {
|
|
268
|
+
id?: string
|
|
269
|
+
value?: string
|
|
270
|
+
label?: ReactNode
|
|
271
|
+
name?: ReactNode
|
|
272
|
+
title?: ReactNode
|
|
273
|
+
[key: string]: unknown
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
export interface FCCChatNewTicketFormProps {
|
|
277
|
+
title?: ReactNode
|
|
278
|
+
description?: ReactNode
|
|
279
|
+
projects?: FCCChatOption[]
|
|
280
|
+
departments?: FCCChatOption[]
|
|
281
|
+
targetTypes?: FCCChatOption[]
|
|
282
|
+
defaultProjectId?: string
|
|
283
|
+
defaultProjectName?: ReactNode
|
|
284
|
+
lockProject?: boolean
|
|
285
|
+
initialValues?: Partial<FCCChatNewTicketFormValues>
|
|
286
|
+
files?: File[]
|
|
287
|
+
onFilesChange?: (files: File[]) => void
|
|
288
|
+
onAttach?: (files: File[]) => void
|
|
289
|
+
onRemoveFile?: (file: File, index: number) => void
|
|
290
|
+
attachmentAccept?: string
|
|
291
|
+
attachLabel?: ReactNode
|
|
292
|
+
projectLabel?: ReactNode
|
|
293
|
+
departmentLabel?: ReactNode
|
|
294
|
+
targetLabel?: ReactNode
|
|
295
|
+
titleLabel?: ReactNode
|
|
296
|
+
messageLabel?: ReactNode
|
|
297
|
+
titlePlaceholder?: string
|
|
298
|
+
messagePlaceholder?: string
|
|
299
|
+
onSearchProjects?: (query: string) => void
|
|
300
|
+
onSubmit?: (values: FCCChatNewTicketFormValues) => void | Promise<void>
|
|
301
|
+
onClose?: () => void
|
|
302
|
+
isSubmitting?: boolean
|
|
303
|
+
submitLabel?: ReactNode
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
export interface FCCChatNewDMUser extends FCCChatAvatarGroupItem {
|
|
307
|
+
value?: string
|
|
308
|
+
label?: ReactNode
|
|
309
|
+
email?: ReactNode
|
|
310
|
+
role?: ReactNode
|
|
311
|
+
subtitle?: ReactNode
|
|
312
|
+
[key: string]: unknown
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
export interface FCCChatNewDMModalProps {
|
|
316
|
+
open?: boolean
|
|
317
|
+
title?: ReactNode
|
|
318
|
+
users?: FCCChatNewDMUser[]
|
|
319
|
+
selectedUserIds?: string[]
|
|
320
|
+
onSelectedUserIdsChange?: (ids: string[]) => void
|
|
321
|
+
onSearchUsers?: (query: string) => void
|
|
322
|
+
onCreateDM?: (users: FCCChatNewDMUser[], ids: string[]) => void | Promise<void>
|
|
323
|
+
onClose?: () => void
|
|
324
|
+
isSubmitting?: boolean
|
|
325
|
+
emptyLabel?: ReactNode
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
export interface FCCChatHubFeedProps {
|
|
329
|
+
updates?: FCCChatHubUpdate[]
|
|
330
|
+
onSelectUpdate?: (update: FCCChatHubUpdate) => void
|
|
331
|
+
action?: ReactNode
|
|
332
|
+
renderMessageAttachment?: (attachment: FCCChatAttachment) => ReactNode
|
|
333
|
+
renderInlineReply?: (message: FCCChatMessage) => ReactNode
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
export interface FCCChatTicketStatusTrackerProps {
|
|
337
|
+
steps?: string[]
|
|
338
|
+
current?: string
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
export function FCCChatSidebar(props: FCCChatSidebarProps): JSX.Element
|
|
342
|
+
export function FCCChatMessageList(props: FCCChatMessageListProps): JSX.Element
|
|
343
|
+
export function FCCChatComposer(props: FCCChatComposerProps): JSX.Element
|
|
344
|
+
export function FCCChatComposerFrame(props: FCCChatComposerFrameProps): JSX.Element
|
|
345
|
+
export function FCCChatNewTicketForm(props: FCCChatNewTicketFormProps): JSX.Element
|
|
346
|
+
export function FCCChatNewDMModal(props: FCCChatNewDMModalProps): JSX.Element | null
|
|
347
|
+
export function FCCChatHubFeed(props: FCCChatHubFeedProps): JSX.Element
|
|
348
|
+
export function FCCChatTicketStatusTracker(props: FCCChatTicketStatusTrackerProps): JSX.Element
|
|
349
|
+
|
|
350
|
+
export const FCC_CHAT_TABS: Array<{ id: FCCChatTab; label: string }>
|
|
351
|
+
export const FCC_CHAT_WIDTHS: {
|
|
352
|
+
rail: number
|
|
353
|
+
detail: number
|
|
354
|
+
small: number
|
|
355
|
+
mobile: '100%'
|
|
356
|
+
}
|
|
357
|
+
export const FCC_CHAT_BREAKPOINTS: {
|
|
358
|
+
mobile: number
|
|
359
|
+
smallDesktop: number
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
export type FCCCallsSidePanelTab = 'dial' | 'calls' | 'voicemail'
|
|
363
|
+
|
|
364
|
+
export interface FCCCallsDepartmentOption {
|
|
365
|
+
value: string
|
|
366
|
+
label: ReactNode
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
export interface FCCCallsPerson {
|
|
370
|
+
name?: string
|
|
371
|
+
number?: string
|
|
372
|
+
avatarUrl?: string
|
|
373
|
+
[key: string]: unknown
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
export interface FCCCallsTicket {
|
|
377
|
+
number?: string
|
|
378
|
+
department?: string
|
|
379
|
+
[key: string]: unknown
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
export interface FCCCallsHistoryItem {
|
|
383
|
+
id: string
|
|
384
|
+
caller?: FCCCallsPerson
|
|
385
|
+
direction?: 'inbound' | 'outbound' | string
|
|
386
|
+
outcome?: 'completed' | 'voicemail' | 'missed' | 'transferred' | 'callback' | string
|
|
387
|
+
startedAt?: string
|
|
388
|
+
durationSec?: number
|
|
389
|
+
department?: string
|
|
390
|
+
phoneNumber?: string
|
|
391
|
+
number?: string
|
|
392
|
+
ticket?: FCCCallsTicket | null
|
|
393
|
+
[key: string]: unknown
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
export interface FCCCallsQueueItem {
|
|
397
|
+
id: string
|
|
398
|
+
caller?: FCCCallsPerson
|
|
399
|
+
status?: 'open' | 'resolved' | 'called_back' | string
|
|
400
|
+
assignedTo?: { userId?: string; [key: string]: unknown } | null
|
|
401
|
+
department?: string
|
|
402
|
+
ticket?: FCCCallsTicket | null
|
|
403
|
+
[key: string]: unknown
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
export interface FCCCallsVoicemailItem extends FCCCallsQueueItem {
|
|
407
|
+
transcript?: ReactNode
|
|
408
|
+
receivedAt?: string
|
|
409
|
+
durationSec?: number
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
export interface FCCCallsCallbackItem extends FCCCallsQueueItem {
|
|
413
|
+
reason?: ReactNode
|
|
414
|
+
createdAt?: string
|
|
415
|
+
slaDeadlineAt?: string
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
export interface FCCCallsSidePanelProps {
|
|
419
|
+
activeTab?: FCCCallsSidePanelTab
|
|
420
|
+
callbacks?: FCCCallsCallbackItem[]
|
|
421
|
+
className?: string
|
|
422
|
+
currentUserId?: string | null
|
|
423
|
+
defaultDepartment?: string
|
|
424
|
+
defaultDialValue?: string
|
|
425
|
+
defaultTab?: FCCCallsSidePanelTab
|
|
426
|
+
departments?: FCCCallsDepartmentOption[]
|
|
427
|
+
departmentValue?: string
|
|
428
|
+
dialDisabled?: boolean
|
|
429
|
+
dialValue?: string
|
|
430
|
+
headerActions?: ReactNode
|
|
431
|
+
history?: FCCCallsHistoryItem[]
|
|
432
|
+
isDialing?: boolean
|
|
433
|
+
newCount?: number
|
|
434
|
+
onClaimCallback?: (callback: FCCCallsCallbackItem) => void
|
|
435
|
+
onClaimVoicemail?: (voicemail: FCCCallsVoicemailItem) => void
|
|
436
|
+
onClose?: () => void
|
|
437
|
+
onCompleteCallback?: (callback: FCCCallsCallbackItem) => void
|
|
438
|
+
onDepartmentChange?: (department: string) => void
|
|
439
|
+
onDial?: (number: string) => void
|
|
440
|
+
onDialValueChange?: (number: string) => void
|
|
441
|
+
onExpand?: () => void
|
|
442
|
+
onMore?: () => void
|
|
443
|
+
onOpenTicket?: (item: FCCCallsHistoryItem | FCCCallsVoicemailItem | FCCCallsCallbackItem) => void
|
|
444
|
+
onRedial?: (call: FCCCallsHistoryItem) => void
|
|
445
|
+
onResolveVoicemail?: (voicemail: FCCCallsVoicemailItem) => void
|
|
446
|
+
onReviewVoicemail?: (voicemail: FCCCallsVoicemailItem) => void
|
|
447
|
+
onSelectCall?: (call: FCCCallsHistoryItem) => void
|
|
448
|
+
onTabChange?: (tab: FCCCallsSidePanelTab) => void
|
|
449
|
+
recentLimit?: number
|
|
450
|
+
showMoreAction?: boolean
|
|
451
|
+
title?: ReactNode
|
|
452
|
+
voicemails?: FCCCallsVoicemailItem[]
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
export function FCCCallsSidePanel(props: FCCCallsSidePanelProps): JSX.Element
|
|
456
|
+
|
|
457
|
+
export const FCCDesignProvider: FCCAnyComponent
|
|
458
|
+
export const ThemeProvider: FCCAnyComponent
|
|
459
|
+
export function useTheme(): unknown
|
|
460
|
+
export const FCCAppShell: FCCAnyComponent
|
|
461
|
+
export const FCCAppShellContext: unknown
|
|
462
|
+
export function useFCCAppShell(): unknown
|
|
463
|
+
export const FCCSidebar: FCCAnyComponent
|
|
464
|
+
export const FCCMainWindow: FCCAnyComponent
|
|
465
|
+
export const FCCWorkspaceHeader: FCCAnyComponent
|
|
466
|
+
export const FCCBreadcrumbs: FCCAnyComponent
|
|
467
|
+
export const FCCHeaderStatus: FCCAnyComponent
|
|
468
|
+
export const FCCBrandLogo: FCCAnyComponent
|
|
469
|
+
export const FCCThemeToggle: FCCAnyComponent
|
|
470
|
+
export const FCCSidePanel: FCCAnyComponent
|
|
471
|
+
export const FCCSidePanelHeader: FCCAnyComponent
|
|
472
|
+
export const FCCSidePanelBody: FCCAnyComponent
|
|
473
|
+
export const FCCSidePanelTabs: FCCAnyComponent
|
|
474
|
+
export const FCCSidePanelSearch: FCCAnyComponent
|
|
475
|
+
export const FCCSidePanelGroupLabel: FCCAnyComponent
|
|
476
|
+
export const FCCSidePanelItem: FCCAnyComponent
|
|
477
|
+
export const FCCSidePanelCard: FCCAnyComponent
|
|
478
|
+
export const FCCSidePanelContact: FCCAnyComponent
|
|
479
|
+
export const FCCSidePanelAction: FCCAnyComponent
|
|
480
|
+
export const FCCSidePanelChatWrap: FCCAnyComponent
|
|
481
|
+
export const FCCSidePanelConversation: FCCAnyComponent
|
|
482
|
+
export const FCCSidePanelMessage: FCCAnyComponent
|
|
483
|
+
export const FCCDetailsPanel: FCCAnyComponent
|
|
484
|
+
export const FCCFullPagePanel: FCCAnyComponent
|
|
485
|
+
export const FCCFullPagePanelHeader: FCCAnyComponent
|
|
486
|
+
export const FCCFullPagePanelHeaderRevealZone: FCCAnyComponent
|
|
487
|
+
export const FCCFullPagePanelSubHeader: FCCAnyComponent
|
|
488
|
+
export const FCCFullPagePanelToolbar: FCCAnyComponent
|
|
489
|
+
export const FCCFullPagePanelBody: FCCAnyComponent
|
|
490
|
+
export const FCCFullPagePanelMain: FCCAnyComponent
|
|
491
|
+
export const FCCFullPagePanelSidebar: FCCAnyComponent
|
|
492
|
+
export const FCCFullPagePanelResizableSidebar: FCCAnyComponent
|
|
493
|
+
export const FCCFullPagePanelBottomControls: FCCAnyComponent
|
|
494
|
+
export const FCCFullPagePanelFooter: FCCAnyComponent
|
|
495
|
+
export const FCCFullPagePanelSidebarFooter: FCCAnyComponent
|
|
496
|
+
export const Accordion: FCCAnyComponent
|
|
497
|
+
export const AccordionItem: FCCAnyComponent
|
|
498
|
+
export const AppLoader: FCCAnyComponent
|
|
499
|
+
export const Spinner: FCCAnyComponent
|
|
500
|
+
export const FCCLoader: FCCAnyComponent
|
|
501
|
+
export const Avatar: FCCAnyComponent
|
|
502
|
+
export const Badge: FCCAnyComponent
|
|
503
|
+
export const Button: FCCAnyComponent
|
|
504
|
+
export const Card: FCCAnyComponent
|
|
505
|
+
export const CardHeader: FCCAnyComponent
|
|
506
|
+
export const CardTitle: FCCAnyComponent
|
|
507
|
+
export const CardDescription: FCCAnyComponent
|
|
508
|
+
export const CardContent: FCCAnyComponent
|
|
509
|
+
export const CardFooter: FCCAnyComponent
|
|
510
|
+
export const CardLayer: FCCAnyComponent
|
|
511
|
+
export const CardHoverActions: FCCAnyComponent
|
|
512
|
+
export const CardHoverAction: FCCAnyComponent
|
|
513
|
+
export const Dialog: FCCAnyComponent
|
|
514
|
+
export const DialogHeader: FCCAnyComponent
|
|
515
|
+
export const DialogTitle: FCCAnyComponent
|
|
516
|
+
export const DialogDescription: FCCAnyComponent
|
|
517
|
+
export const DialogBody: FCCAnyComponent
|
|
518
|
+
export const DialogFooter: FCCAnyComponent
|
|
519
|
+
export const Input: FCCAnyComponent
|
|
520
|
+
export const DropdownMenu: FCCAnyComponent
|
|
521
|
+
export const DropdownMenuItem: FCCAnyComponent
|
|
522
|
+
export const DropdownMenuCheckboxItem: FCCAnyComponent
|
|
523
|
+
export const DropdownMenuLabel: FCCAnyComponent
|
|
524
|
+
export const DropdownMenuSeparator: FCCAnyComponent
|
|
525
|
+
export const SearchableSelect: FCCAnyComponent
|
|
526
|
+
export const Sheet: FCCAnyComponent
|
|
527
|
+
export const SheetFooter: FCCAnyComponent
|
|
528
|
+
export const StatusMetric: FCCAnyComponent
|
|
529
|
+
export const Switch: FCCAnyComponent
|
|
530
|
+
export const Tabs: FCCAnyComponent
|
|
531
|
+
export const TabsList: FCCAnyComponent
|
|
532
|
+
export const TabsTrigger: FCCAnyComponent
|
|
533
|
+
export const TabsContent: FCCAnyComponent
|
|
534
|
+
export const Textarea: FCCAnyComponent
|
|
535
|
+
export const ToastProvider: FCCAnyComponent
|
|
536
|
+
export function useToast(): unknown
|
|
537
|
+
export const Tooltip: FCCAnyComponent
|
|
538
|
+
export const ViewModeToggle: FCCAnyComponent
|
|
539
|
+
export const DEFAULT_VIEW_MODE_OPTIONS: unknown
|
|
540
|
+
export const DEFAULT_ICON_BY_VALUE: unknown
|
|
541
|
+
export const WorkspaceTabs: FCCAnyComponent
|
|
542
|
+
export const Callbar: FCCAnyComponent
|
|
543
|
+
export const CallCard: FCCAnyComponent
|
|
544
|
+
export const CallControlsBar: FCCAnyComponent
|
|
545
|
+
export const PresenceDot: FCCAnyComponent
|
|
546
|
+
export const PresenceAvatar: FCCAnyComponent
|
|
547
|
+
export const TicketLinkChip: FCCAnyComponent
|
|
548
|
+
export const QueueItem: FCCAnyComponent
|
|
549
|
+
export const ActivityFeed: FCCAnyComponent
|
|
550
|
+
export const CommandBar: FCCAnyComponent
|
|
551
|
+
export const DataTable: FCCAnyComponent
|
|
552
|
+
export const FilterBar: FCCAnyComponent
|
|
553
|
+
export const KanbanBoard: FCCAnyComponent
|
|
554
|
+
export const KanbanColumn: FCCAnyComponent
|
|
555
|
+
export const KanbanCard: FCCAnyComponent
|
|
556
|
+
export const TableBoard: FCCAnyComponent
|
|
557
|
+
export const TableBoardGroup: FCCAnyComponent
|
|
558
|
+
export const TableBoardRow: FCCAnyComponent
|
|
559
|
+
export const KPICard: FCCAnyComponent
|
|
560
|
+
export const StatCard: FCCAnyComponent
|
|
561
|
+
export const NotificationsPanel: FCCAnyComponent
|
|
562
|
+
|
|
563
|
+
export interface FCCNotificationSidePanelItem {
|
|
564
|
+
id: string
|
|
565
|
+
title?: ReactNode
|
|
566
|
+
body?: ReactNode
|
|
567
|
+
message?: ReactNode
|
|
568
|
+
text?: ReactNode
|
|
569
|
+
detail?: ReactNode
|
|
570
|
+
actorName?: string
|
|
571
|
+
userName?: string
|
|
572
|
+
user?: string
|
|
573
|
+
requesterName?: string
|
|
574
|
+
senderName?: string
|
|
575
|
+
avatarUrl?: string | null
|
|
576
|
+
actorAvatarUrl?: string | null
|
|
577
|
+
userAvatar?: string | null
|
|
578
|
+
imageUrl?: string | null
|
|
579
|
+
avatarInitials?: string
|
|
580
|
+
initials?: string
|
|
581
|
+
timestamp?: string | number | Date | null
|
|
582
|
+
createdAt?: string | number | Date | null
|
|
583
|
+
date?: string | number | Date | null
|
|
584
|
+
timeStamp?: string | number | Date | null
|
|
585
|
+
timeLabel?: ReactNode
|
|
586
|
+
time?: ReactNode
|
|
587
|
+
isRead?: boolean
|
|
588
|
+
read?: boolean
|
|
589
|
+
readAt?: string | null
|
|
590
|
+
groupKey?: 'today' | 'yesterday' | 'thisWeek' | 'older' | string
|
|
591
|
+
[key: string]: unknown
|
|
592
|
+
}
|
|
593
|
+
|
|
594
|
+
export interface FCCNotificationSidePanelProps {
|
|
595
|
+
notifications?: FCCNotificationSidePanelItem[]
|
|
596
|
+
loading?: boolean
|
|
597
|
+
title?: ReactNode
|
|
598
|
+
statusLabel?: ReactNode
|
|
599
|
+
emptyTitle?: ReactNode
|
|
600
|
+
emptyUnreadTitle?: ReactNode
|
|
601
|
+
emptyDescription?: ReactNode
|
|
602
|
+
markAllReadLabel?: ReactNode
|
|
603
|
+
closeLabel?: string
|
|
604
|
+
activeFilter?: 'all' | 'unread' | string
|
|
605
|
+
defaultFilter?: 'all' | 'unread' | string
|
|
606
|
+
onFilterChange?: (filter: string) => void
|
|
607
|
+
onNotificationClick?: (notification: FCCNotificationSidePanelItem) => void
|
|
608
|
+
onMarkRead?: (id: string, notification: FCCNotificationSidePanelItem) => void
|
|
609
|
+
onMarkAllRead?: () => void
|
|
610
|
+
onClose?: () => void
|
|
611
|
+
renderNotification?: (
|
|
612
|
+
notification: FCCNotificationSidePanelItem,
|
|
613
|
+
helpers: { onClick: () => void; defaultNode: ReactNode },
|
|
614
|
+
) => ReactNode
|
|
615
|
+
showCloseButton?: boolean
|
|
616
|
+
showMarkAllRead?: boolean
|
|
617
|
+
className?: string
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
export const FCCNotificationSidePanel: ComponentType<FCCNotificationSidePanelProps>
|
|
621
|
+
|
|
622
|
+
export type FCCIconName =
|
|
623
|
+
| 'inbox'
|
|
624
|
+
| 'issues'
|
|
625
|
+
| 'reviews'
|
|
626
|
+
| 'pulse'
|
|
627
|
+
| 'initiatives'
|
|
628
|
+
| 'projects'
|
|
629
|
+
| 'more'
|
|
630
|
+
| 'search'
|
|
631
|
+
| 'edit'
|
|
632
|
+
| 'chevronDown'
|
|
633
|
+
| 'chevronUp'
|
|
634
|
+
| 'chevron-down'
|
|
635
|
+
| 'chevron-up'
|
|
636
|
+
| 'star'
|
|
637
|
+
| 'statusInProgress'
|
|
638
|
+
| 'statusDone'
|
|
639
|
+
| 'statusTodo'
|
|
640
|
+
| 'statusBacklog'
|
|
641
|
+
| 'statusCancelled'
|
|
642
|
+
| 'status-in-progress'
|
|
643
|
+
| 'status-done'
|
|
644
|
+
| 'status-todo'
|
|
645
|
+
| 'status-backlog'
|
|
646
|
+
| 'status-cancelled'
|
|
647
|
+
| 'priorityUrgent'
|
|
648
|
+
| 'priorityHigh'
|
|
649
|
+
| 'priorityMedium'
|
|
650
|
+
| 'priorityLow'
|
|
651
|
+
| 'priority-urgent'
|
|
652
|
+
| 'priority-high'
|
|
653
|
+
| 'priority-medium'
|
|
654
|
+
| 'priority-low'
|
|
655
|
+
| 'link'
|
|
656
|
+
| 'trash'
|
|
657
|
+
| 'settings'
|
|
658
|
+
| 'close'
|
|
659
|
+
| 'check'
|
|
660
|
+
| 'copy'
|
|
661
|
+
| 'bell'
|
|
662
|
+
| 'calendar'
|
|
663
|
+
| 'filter'
|
|
664
|
+
| 'user'
|
|
665
|
+
| 'label'
|
|
666
|
+
|
|
667
|
+
export interface FCCIconProps extends ComponentPropsWithoutRef<'svg'> {
|
|
668
|
+
size?: number | string
|
|
669
|
+
title?: string
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
export interface FCCIconWrapperProps extends FCCIconProps {
|
|
673
|
+
name?: FCCIconName | string
|
|
674
|
+
icon?: ComponentType<FCCIconProps & Record<string, unknown>>
|
|
675
|
+
color?: string
|
|
676
|
+
}
|
|
677
|
+
|
|
678
|
+
export interface FCCHeaderIconButtonProps extends ComponentPropsWithoutRef<'button'> {
|
|
679
|
+
icon?: ReactNode | ComponentType<FCCIconProps & Record<string, unknown>>
|
|
680
|
+
iconName?: FCCIconName | string
|
|
681
|
+
iconSize?: number | string
|
|
682
|
+
label: string
|
|
683
|
+
active?: boolean
|
|
684
|
+
badge?: ReactNode
|
|
685
|
+
badgeLabel?: string
|
|
686
|
+
badgeClassName?: string
|
|
687
|
+
}
|
|
688
|
+
|
|
689
|
+
export const FCC_ICON_MAP: Readonly<Record<string, ComponentType<FCCIconProps>>>
|
|
690
|
+
export const FCC_ICON_ALIASES: Readonly<Record<string, string>>
|
|
691
|
+
export function resolveFCCIconComponent(name?: FCCIconName | string): ComponentType<FCCIconProps> | null
|
|
692
|
+
export function FCCIcon(props?: FCCIconWrapperProps): JSX.Element | null
|
|
693
|
+
export const FCCHeaderIconButton: ComponentType<FCCHeaderIconButtonProps>
|
|
694
|
+
export function InboxIcon(props?: FCCIconProps): JSX.Element
|
|
695
|
+
export function IssuesIcon(props?: FCCIconProps): JSX.Element
|
|
696
|
+
export function ReviewsIcon(props?: FCCIconProps): JSX.Element
|
|
697
|
+
export function PulseIcon(props?: FCCIconProps): JSX.Element
|
|
698
|
+
export function InitiativesIcon(props?: FCCIconProps): JSX.Element
|
|
699
|
+
export function ProjectsIcon(props?: FCCIconProps): JSX.Element
|
|
700
|
+
export function MoreIcon(props?: FCCIconProps): JSX.Element
|
|
701
|
+
export function SearchIcon(props?: FCCIconProps): JSX.Element
|
|
702
|
+
export function EditIcon(props?: FCCIconProps): JSX.Element
|
|
703
|
+
export function ChevronDown(props?: FCCIconProps): JSX.Element
|
|
704
|
+
export function ChevronUp(props?: FCCIconProps): JSX.Element
|
|
705
|
+
export function StarIcon(props?: FCCIconProps): JSX.Element
|
|
706
|
+
export function StatusInProgress(props?: FCCIconProps): JSX.Element
|
|
707
|
+
export function StatusDone(props?: FCCIconProps): JSX.Element
|
|
708
|
+
export function StatusTodo(props?: FCCIconProps): JSX.Element
|
|
709
|
+
export function StatusBacklog(props?: FCCIconProps): JSX.Element
|
|
710
|
+
export function StatusCancelled(props?: FCCIconProps): JSX.Element
|
|
711
|
+
export function PriorityUrgent(props?: FCCIconProps): JSX.Element
|
|
712
|
+
export function PriorityHigh(props?: FCCIconProps): JSX.Element
|
|
713
|
+
export function PriorityMedium(props?: FCCIconProps): JSX.Element
|
|
714
|
+
export function PriorityLow(props?: FCCIconProps): JSX.Element
|
|
715
|
+
export function LinkIcon(props?: FCCIconProps): JSX.Element
|
|
716
|
+
export function TrashIcon(props?: FCCIconProps): JSX.Element
|
|
717
|
+
export function SettingsIcon(props?: FCCIconProps): JSX.Element
|
|
718
|
+
export function CloseIcon(props?: FCCIconProps): JSX.Element
|
|
719
|
+
export function CheckIcon(props?: FCCIconProps): JSX.Element
|
|
720
|
+
export function CopyIcon(props?: FCCIconProps): JSX.Element
|
|
721
|
+
export function BellIcon(props?: FCCIconProps): JSX.Element
|
|
722
|
+
export function CalendarIcon(props?: FCCIconProps): JSX.Element
|
|
723
|
+
export function FilterIcon(props?: FCCIconProps): JSX.Element
|
|
724
|
+
export function UserIcon(props?: FCCIconProps): JSX.Element
|
|
725
|
+
export function LabelIcon(props?: FCCIconProps): JSX.Element
|