@epam/ai-dial-conversation-panel 1.1.0-dev.45 → 1.1.0-dev.456

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 (47) hide show
  1. package/components/ConversationGroupHeader/ConversationGroupHeader.d.ts +3 -6
  2. package/components/ConversationGroupHeader/ConversationGroupHeader.d.ts.map +1 -1
  3. package/components/ConversationPanel/ConversationPanel.d.ts.map +1 -1
  4. package/components/ConversationPanel/utils.d.ts +1 -1
  5. package/components/ConversationPanel/utils.d.ts.map +1 -1
  6. package/components/{ConversationGroup → ConversationRow}/ConversationRow.d.ts +7 -10
  7. package/components/ConversationRow/ConversationRow.d.ts.map +1 -0
  8. package/components/FilterTabs/FilterTabs.d.ts +6 -2
  9. package/components/FilterTabs/FilterTabs.d.ts.map +1 -1
  10. package/components/ImportExportQueue/ImportExportQueue.d.ts +6 -0
  11. package/components/ImportExportQueue/ImportExportQueue.d.ts.map +1 -0
  12. package/components/ImportExportQueueHeader/ImportExportQueueHeader.d.ts +24 -0
  13. package/components/ImportExportQueueHeader/ImportExportQueueHeader.d.ts.map +1 -0
  14. package/components/ImportExportQueueRow/ImportExportQueueRow.d.ts +17 -0
  15. package/components/ImportExportQueueRow/ImportExportQueueRow.d.ts.map +1 -0
  16. package/components/NewChatButton/NewChatButton.d.ts +4 -1
  17. package/components/NewChatButton/NewChatButton.d.ts.map +1 -1
  18. package/components/RenameConversationPopup/RenameConversationPopup.d.ts +6 -0
  19. package/components/RenameConversationPopup/RenameConversationPopup.d.ts.map +1 -0
  20. package/components/RowRenderer/RowRenderer.d.ts +1 -1
  21. package/components/RowRenderer/RowRenderer.d.ts.map +1 -1
  22. package/constants/import-export-queue.d.ts +4 -0
  23. package/constants/import-export-queue.d.ts.map +1 -0
  24. package/index.css +1 -1
  25. package/index.d.ts +6 -3
  26. package/index.d.ts.map +1 -1
  27. package/index.js +779 -470
  28. package/models/import-export-queue.d.ts +113 -0
  29. package/models/import-export-queue.d.ts.map +1 -0
  30. package/models/panel-props.d.ts +71 -64
  31. package/models/panel-props.d.ts.map +1 -1
  32. package/models/rename-conversation-popup.d.ts +47 -0
  33. package/models/rename-conversation-popup.d.ts.map +1 -0
  34. package/models/virtual-row.d.ts +6 -8
  35. package/models/virtual-row.d.ts.map +1 -1
  36. package/package.json +4 -5
  37. package/utils/conversation-row.d.ts +8 -7
  38. package/utils/conversation-row.d.ts.map +1 -1
  39. package/utils/drag.d.ts +3 -15
  40. package/utils/drag.d.ts.map +1 -1
  41. package/utils/transfer-file.d.ts +10 -0
  42. package/utils/transfer-file.d.ts.map +1 -0
  43. package/components/ConversationGroup/ConversationGroup.d.ts +0 -31
  44. package/components/ConversationGroup/ConversationGroup.d.ts.map +0 -1
  45. package/components/ConversationGroup/ConversationRow.d.ts.map +0 -1
  46. package/types/conversation-classification.d.ts +0 -12
  47. package/types/conversation-classification.d.ts.map +0 -1
@@ -0,0 +1,113 @@
1
+ import { ConversationTransferErrorCode, ConversationTransferJob, ConversationTransferWarningCode } from '@epam/ai-dial-chat-shared';
2
+ import { CSSProperties } from 'react';
3
+ /** Labels for every user-visible string in `ImportExportQueue`. */
4
+ export interface ImportExportQueueLabels {
5
+ /** Returns the accessible name for the cancel control of an in-progress job. */
6
+ cancelJobAriaLabel: (fileName: string) => string;
7
+ /** Trailing text shown on a canceled row. */
8
+ canceledLabel: string;
9
+ /** Returns the tooltip text explaining why a job failed. */
10
+ jobErrorMessage: (code: ConversationTransferErrorCode | undefined) => string;
11
+ /** Returns the accessible name for a row's in-progress spinner. */
12
+ jobProgressAriaLabel: (fileName: string) => string;
13
+ /** Returns the tooltip text explaining what a warned job left out. */
14
+ jobWarningMessage: (code: ConversationTransferWarningCode | undefined) => string;
15
+ /** Accessible name for the collapsed queue's aggregate progress bar. */
16
+ queueProgressAriaLabel: string;
17
+ /**
18
+ * Returns the aggregate bar's `aria-valuetext`. Given settled and total job
19
+ * counts rather than a percentage, because "3 of 10 files" reads better than
20
+ * "36%" when the work is a list of files.
21
+ */
22
+ queueProgressValueText: (completed: number, total: number) => string;
23
+ /** Accessible name for the queue collapse toggle when the panel is expanded. */
24
+ collapseQueueAriaLabel: string;
25
+ /** Accessible name for the queue expand toggle when the panel is collapsed. */
26
+ expandQueueAriaLabel: string;
27
+ /** Accessible name for the queue close button. */
28
+ closeQueueAriaLabel: string;
29
+ /** Heading text of the close-confirmation dialog. */
30
+ closeQueueConfirmHeader: string;
31
+ /** Confirmation dialog description when at least one job is InProgress and none are Failed. */
32
+ closeQueueConfirmDescriptionInProgress: string;
33
+ /** Confirmation dialog description when at least one job is Failed and none are InProgress. */
34
+ closeQueueConfirmDescriptionFailed: string;
35
+ /** Confirmation dialog description when there are both InProgress and Failed jobs. */
36
+ closeQueueConfirmDescriptionMixed: string;
37
+ /** Label for the confirmation dialog's confirm button. */
38
+ closeLabel: string;
39
+ /** Label for the confirmation dialog's cancel button. */
40
+ cancelLabel: string;
41
+ }
42
+ /** Color overrides for `ImportExportQueue`. */
43
+ export interface ImportExportQueueColors {
44
+ /** Queue panel background. */
45
+ background?: string;
46
+ /** Heading and job-label text. */
47
+ text?: string;
48
+ /** Neutral icon color and the canceled row's dimmed file name. */
49
+ textSecondary?: string;
50
+ /** Successful-job status icon color. */
51
+ successIcon?: string;
52
+ /** Failed-job status icon color. */
53
+ errorIcon?: string;
54
+ /**
55
+ * Warned-job status icon color. The aggregate progress bar has no
56
+ * counterpart here: it is the UI kit's `ProgressBar`, which themes its own
57
+ * track and fill from the same 2.0 tokens.
58
+ */
59
+ warningIcon?: string;
60
+ /** Divider between the header and the job rows. */
61
+ divider?: string;
62
+ /** Failed-job count badge background. */
63
+ failureCountBackground?: string;
64
+ /** Failed-job count badge text. */
65
+ failureCountText?: string;
66
+ }
67
+ /** Typography class overrides for `ImportExportQueue`. */
68
+ export interface ImportExportQueueTypography {
69
+ /** Class applied to the queue heading. Defaults to `'dial-small-semi-text'`. */
70
+ titleClassName?: string;
71
+ /** Class applied to a job's file name. Defaults to `'dial-small-text'`. */
72
+ jobLabelClassName?: string;
73
+ /** Class applied to the canceled row's trailing label. Defaults to `'dial-small-text'`. */
74
+ canceledLabelClassName?: string;
75
+ /** Class applied to the failed-job count badge. Defaults to `'dial-small-semi-text'`. */
76
+ failureCountClassName?: string;
77
+ }
78
+ /** Combined style overrides for `ImportExportQueue`. */
79
+ export interface ImportExportQueueStyles {
80
+ /** Color overrides applied as CSS custom properties. */
81
+ colors?: ImportExportQueueColors;
82
+ /** Typography class overrides. */
83
+ typography?: ImportExportQueueTypography;
84
+ /** Extra class name(s) merged onto the queue root. */
85
+ rootClassName?: string;
86
+ /** Extra class name(s) merged onto the scrollable jobs container. */
87
+ bodyClassName?: string;
88
+ /** Arbitrary CSS custom properties applied after typed color overrides. */
89
+ cssVars?: CSSProperties;
90
+ }
91
+ /** Props accepted by `ImportExportQueue`. */
92
+ export interface ImportExportQueueProps {
93
+ /**
94
+ * Queue panel heading, rendered verbatim. The host composes any count into
95
+ * it (e.g. `t(key, { count: jobs.length })`); the component never pluralizes.
96
+ */
97
+ title: string;
98
+ /** Current list of transfer jobs. */
99
+ jobs: ConversationTransferJob[];
100
+ /** Called when the queue should close (after confirmation if needed). */
101
+ onClose: () => void;
102
+ /**
103
+ * Called with the job id when the user cancels an in-progress job. The host
104
+ * is expected to abort the work and leave the job in `jobs` with status
105
+ * `Canceled`.
106
+ */
107
+ onCancel: (jobId: string) => void;
108
+ /** User-visible string labels. */
109
+ labels: ImportExportQueueLabels;
110
+ /** Color, typography, class, and CSS-variable overrides. */
111
+ styles?: ImportExportQueueStyles;
112
+ }
113
+ //# sourceMappingURL=import-export-queue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"import-export-queue.d.ts","sourceRoot":"","sources":["../../src/models/import-export-queue.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
+ import { FilterTab } from '@epam/ai-dial-chat-shared';
1
2
  import { DropdownItem } from '@epam/ai-dial-ui-kit';
2
3
  import { ReactNode } from 'react';
3
- import { FilterTab } from '../types/conversation-classification';
4
- /** Labels for each filter tab — provided as props so the app supplies i18n strings. */
4
+ /** Labels for each filter tab. */
5
5
  export interface FilterLabels {
6
6
  /** Label for the "All" tab. */
7
7
  all: string;
@@ -11,12 +11,14 @@ export interface FilterLabels {
11
11
  shared: string;
12
12
  /** Label for the "Organization" tab. */
13
13
  organization: string;
14
+ /** Accessible name of the filter row itself. Defaults to `"Filter chats"`. */
15
+ groupAriaLabel?: string;
14
16
  }
15
17
  /** A single conversation entry shown in the history panel. */
16
18
  export interface ConversationItem {
17
19
  /** Unique conversation identifier (path or UUID). */
18
20
  id: string;
19
- /** Human-readable title — typically the first user message. */
21
+ /** Human-readable conversation title. */
20
22
  title: string;
21
23
  /** When true the item is shown in the Pinned section. */
22
24
  isPinned?: boolean;
@@ -24,22 +26,24 @@ export interface ConversationItem {
24
26
  source?: FilterTab;
25
27
  /** URL of the model or conversation icon. When absent a default icon is shown. */
26
28
  iconUrl?: string;
27
- /** Tooltip text shown on the deployment icon. Typically the agent or model display name. */
29
+ /** Tooltip text shown on the deployment icon. */
28
30
  iconTooltip?: string;
29
31
  /** When `true`, a skeleton placeholder is shown instead of the deployment icon. */
30
32
  isIconLoading?: boolean;
31
- /**
32
- * Browser-navigable URL for the conversation (e.g. `/conversations/<id>`).
33
- * When provided, a middle mouse button click on the row opens this URL in a new tab,
34
- * matching standard browser link behaviour.
35
- */
33
+ /** Conversation URL. When provided, middle-click opens it in a new tab. */
36
34
  href?: string;
35
+ /** When `true`, a "TASK" pill badge is rendered at the end of the row. */
36
+ showTaskBadge?: boolean;
37
+ /** Text shown inside the task badge. When `showTaskBadge` is `true` and this is omitted, the badge renders with no text. */
38
+ taskBadgeLabel?: string;
39
+ /** When `true`, an unread indicator dot is rendered before the row's leading icon. */
40
+ isUnread?: boolean;
37
41
  }
38
42
  /** Font overrides for the header title in `ConversationPanel`. */
39
43
  export interface ConversationPanelTypography {
40
44
  /** A single utility class (e.g. `'dial-body-semi-text'`) applied to the title span. */
41
45
  fontClassName?: string;
42
- /** Typography class applied to collapsible group header buttons. Defaults to `'dial-tiny-semi-text uppercase'`. */
46
+ /** Typography class applied to collapsible group header buttons. Defaults to `'dial-tiny-lead-semi-text'`. */
43
47
  groupHeaderClassName?: string;
44
48
  /** Typography class applied to conversation title text in each row. Defaults to `'dial-small-text'`. */
45
49
  itemTitleClassName?: string;
@@ -48,6 +52,15 @@ export interface ConversationPanelTypography {
48
52
  /** Class applied to each filter tab. Defaults to `'dial-tiny-semi-text'` (an additional `'flex-1'` class is always applied). */
49
53
  tabClassName?: string;
50
54
  }
55
+ /** CSS custom-property overrides for the New chat button. */
56
+ export interface NewChatButtonColors {
57
+ /** Default background. */
58
+ background?: string;
59
+ /** Label and icon color. */
60
+ text?: string;
61
+ /** Keyboard focus ring color. Defaults to `--stroke-focus-black`. */
62
+ focusOutline?: string;
63
+ }
51
64
  /** CSS custom-property overrides for `ConversationPanel`. */
52
65
  export interface ConversationColors {
53
66
  /** Panel background color. */
@@ -62,26 +75,6 @@ export interface ConversationColors {
62
75
  text?: string;
63
76
  /** Secondary text color (dates, metadata). */
64
77
  textSecondary?: string;
65
- /** Hover background of the New chat button. */
66
- newChatHoverBackground?: string;
67
- /** Active/pressed background of the New chat button. */
68
- newChatActiveBackground?: string;
69
- /** Background of the New chat button. */
70
- newChatBackground?: string;
71
- /** Label/icon text color of the New chat button. */
72
- newChatText?: string;
73
- /** Blue shadow color of the New chat button in the default state. */
74
- newChatShadowBlue?: string;
75
- /** Blue shadow color of the New chat button on hover. */
76
- newChatShadowBlueHover?: string;
77
- /** Blue shadow color of the New chat button while active/pressed. */
78
- newChatShadowBlueActive?: string;
79
- /** Purple shadow color of the New chat button in the default state. */
80
- newChatShadowPurple?: string;
81
- /** Purple shadow color of the New chat button on hover. */
82
- newChatShadowPurpleHover?: string;
83
- /** Purple shadow color of the New chat button while active/pressed. */
84
- newChatShadowPurpleActive?: string;
85
78
  /** Ring color shown around a group header acting as a drag-and-drop target. */
86
79
  dropZoneRing?: string;
87
80
  /** Background color of the active row actions trigger button. */
@@ -92,15 +85,34 @@ export interface ConversationColors {
92
85
  triggerIconIdle?: string;
93
86
  /** Shimmer color of the loading skeleton avatar. */
94
87
  skeletonColor?: string;
88
+ /** Border color of the task pill badge. Defaults to `--stroke-tertiary`. */
89
+ taskBadgeBorder?: string;
90
+ /** Background color of the task pill badge. Defaults to `--bg-layer-base`. */
91
+ taskBadgeBackground?: string;
92
+ /** Text color of the task pill badge. Defaults to `--text-secondary`. */
93
+ taskBadgeText?: string;
94
+ /** Fill color of the unread indicator dot. Defaults to `--text-accent`. */
95
+ unreadDot?: string;
95
96
  }
96
97
  /** Combined style overrides (colors and typography) for `ConversationPanel`. */
97
98
  export interface ConversationPanelStyles {
98
99
  /** Color overrides applied as CSS custom properties. */
99
100
  colors?: ConversationColors;
101
+ /** Color overrides forwarded to the New chat button. */
102
+ newChatButton?: NewChatButtonColors;
100
103
  /** Typography overrides for the panel and its children. */
101
104
  typography?: ConversationPanelTypography;
102
105
  /** CSS class applied to the icon badge in each conversation row. Defaults to `'rounded-full'`. */
103
106
  itemIconBadgeClassName?: string;
107
+ /** Typography class applied to the task pill badge in each conversation row. Defaults to `'dial-caption-lead-semi-text'`. Colors come from the module stylesheet. */
108
+ taskBadgeClassName?: string;
109
+ /**
110
+ * Extra CSS class merged onto the search field's wrapper. The wrapper's
111
+ * corner radius is themed with the `--cp-search-radius` custom property, so
112
+ * this is only needed for anything the panel's own stylesheet does not
113
+ * cover; a `rounded-*` utility passed here still wins over that property.
114
+ */
115
+ searchWrapperClassName?: string;
104
116
  }
105
117
  /** Localised labels and text content for `ConversationPanel`. */
106
118
  export interface ConversationPanelLabels {
@@ -133,6 +145,8 @@ export interface ConversationPanelLabels {
133
145
  };
134
146
  /** Accessible label for the row actions trigger button. Defaults to `"More actions"`. */
135
147
  actionsLabel?: string;
148
+ /** Accessible (visually hidden) label announced for the unread indicator dot. Defaults to `"Unread"`. */
149
+ unreadIndicatorLabel?: string;
136
150
  /** Accessible label for the sidebar toggle icon button. Required when `onToggle` is provided. */
137
151
  closeAriaLabel?: string;
138
152
  }
@@ -157,48 +171,44 @@ export interface ConversationPanelProps {
157
171
  /** Extra class name(s) merged onto the panel root element. */
158
172
  className?: string;
159
173
  /**
160
- * Builds the dropdown menu items for a conversation row.
161
- * Receives the full item so actions can reflect per-item state (e.g. `isPinned` toggle).
162
- * When omitted or returns an empty array, no actions trigger is rendered on rows.
174
+ * Renders the panel as a drawer that slides over the content instead of
175
+ * collapsing its width beside it. Set it when `className` positions the panel
176
+ * over the page. Defaults to `false`.
163
177
  */
178
+ isOverlay?: boolean;
179
+ /** Builds dropdown actions for a row. When absent or empty, no action trigger is rendered. */
164
180
  getActions?: (item: ConversationItem) => DropdownItem[];
165
- /** Called when a row action menu opens, exposing its trigger for host-owned focus restoration. */
181
+ /** Called when a row action menu opens; receives the trigger button. */
166
182
  onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
167
- /**
168
- * Called when the mobile sidebar toggle icon in the panel header is clicked.
169
- * When provided, the toggle button becomes visible on mobile screens.
170
- * The parent is responsible for managing `isOpen` state in response to this callback.
171
- */
183
+ /** Called when the panel header toggle button is clicked. When provided, the toggle is visible on mobile. */
172
184
  onToggle?: () => void;
173
- /**
174
- * Content rendered in the end action group of the panel header bar.
175
- * The app supplies any ReactNode — the library does not prescribe its content.
176
- */
185
+ /** Extra content rendered in the panel header action area. */
177
186
  headerActions?: ReactNode;
178
187
  /**
179
- * Called when the user completes a valid drag-and-drop move.
180
- * `draggedId` is the conversation that was moved.
181
- * `targetGroupKey` is the group it was dropped into.
182
- * `afterId` is the id of the item the dragged conversation should be placed after,
183
- * or `null` when dropped at the top of the target group.
184
- *
185
- * The app derives the action type from `targetGroupKey`:
186
- * - dropping into `Pinned` → pin the conversation
187
- * - dragging from `Pinned` into another group → unpin
188
- * - same-group drop → reorder
188
+ * Called when the user completes a drag-and-drop move.
189
+ * See `ConversationMove` for the payload shape.
189
190
  */
190
191
  onMoveConversation?: (move: ConversationMove) => void;
192
+ /** Programmatically sets the active filter tab. Pass `undefined` to leave the tab unchanged. */
193
+ activeFilter?: FilterTab;
194
+ /** Called when the active filter tab changes. */
195
+ onActiveFilterChange?: (tab: FilterTab) => void;
191
196
  /**
192
- * Imperatively sets the active filter tab. When provided the panel switches
193
- * to this tab; the user can still change it afterwards. Pass `undefined` to
194
- * leave the current tab unchanged.
197
+ * When `true`, the filter tabs are not rendered and the list stays on
198
+ * whichever tab is active `FilterTab.All` unless `activeFilter` says
199
+ * otherwise. Defaults to `false`.
195
200
  */
196
- activeFilter?: FilterTab;
201
+ isFilterTabsHidden?: boolean;
197
202
  /**
198
- * Called whenever the active filter tab changes either because the user
199
- * clicked a tab or because `activeFilter` drove a programmatic switch.
203
+ * Sources to exclude entirely. A conversation whose `source` is listed here
204
+ * is dropped before filtering/grouping, so it never appears under any tab
205
+ * (including `All`) or in a group heading, and its tab pill is not rendered
206
+ * in `FilterTabs`. Use this to fully gate a source (e.g. `Organization`)
207
+ * behind a deployment/config toggle, as opposed to `isFilterTabsHidden`,
208
+ * which only hides the tab row while leaving every source's conversations
209
+ * visible under `All`.
200
210
  */
201
- onActiveFilterChange?: (tab: FilterTab) => void;
211
+ hiddenSources?: FilterTab[];
202
212
  }
203
213
  /** Describes a completed drag-and-drop move in the conversation panel. */
204
214
  export interface ConversationMove {
@@ -206,10 +216,7 @@ export interface ConversationMove {
206
216
  draggedId: string;
207
217
  /** The group the item was dropped into. */
208
218
  targetGroupKey: FilterTab;
209
- /**
210
- * Id of the item the dragged conversation should be placed after.
211
- * `null` means the item was dropped at the top of the target group.
212
- */
219
+ /** Item to insert after; `null` means top of the target group. */
213
220
  afterId: string | null;
214
221
  }
215
222
  //# sourceMappingURL=panel-props.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"panel-props.d.ts","sourceRoot":"","sources":["../../src/models/panel-props.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"panel-props.d.ts","sourceRoot":"","sources":["../../src/models/panel-props.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { CSSProperties } from 'react';
2
+ /** Labels for every user-visible string in `RenameConversationPopup`. */
3
+ export interface RenameConversationPopupLabels {
4
+ /** Popup dialog heading. */
5
+ popupTitle: string;
6
+ /** Placeholder text for the name input. */
7
+ inputPlaceholder: string;
8
+ /** Accessible name and tooltip for the AI-generation trigger button. */
9
+ renameWithAiLabel: string;
10
+ /** Error shown when the AI name generation request fails. */
11
+ renameWithAiError: string;
12
+ /** Error shown when the trimmed name's UTF-8 byte length exceeds 255. */
13
+ nameTooLongError: string;
14
+ /** Label for the save/confirm button. */
15
+ saveLabel: string;
16
+ /** Label for the cancel button. */
17
+ cancelLabel: string;
18
+ }
19
+ /** Style overrides for `RenameConversationPopup` content. */
20
+ export interface RenameConversationPopupStyles {
21
+ /** Extra class name(s) merged onto the popup body wrapper. */
22
+ bodyClassName?: string;
23
+ /** Arbitrary CSS custom properties inherited by the popup content. */
24
+ cssVars?: CSSProperties;
25
+ }
26
+ /** Props accepted by `RenameConversationPopup`. */
27
+ export interface RenameConversationPopupProps {
28
+ /** Whether the popup is visible. */
29
+ isOpen: boolean;
30
+ /** The conversation's current name, pre-filled into the input on open. */
31
+ currentTitle: string;
32
+ /** While `true`, the input/buttons are replaced by a loading indicator. */
33
+ isSaving: boolean;
34
+ /** API-level error message, or `null` when none. */
35
+ error: string | null;
36
+ /** Called with the trimmed, sanitized new name when the user confirms. */
37
+ onSave: (newTitle: string) => void;
38
+ /** Called when the user cancels or closes the popup. */
39
+ onCancel: () => void;
40
+ /** Called to request an AI-generated name; must resolve with the generated string. */
41
+ onGenerateWithAi: () => Promise<string>;
42
+ /** User-visible string labels. */
43
+ labels: RenameConversationPopupLabels;
44
+ /** Class and CSS-variable overrides for the popup content. */
45
+ styles?: RenameConversationPopupStyles;
46
+ }
47
+ //# sourceMappingURL=rename-conversation-popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rename-conversation-popup.d.ts","sourceRoot":"","sources":["../../src/models/rename-conversation-popup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,yEAAyE;AACzE,MAAM,WAAW,6BAA6B;IAC5C,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,2CAA2C;IAC3C,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,6DAA6D;IAC7D,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yEAAyE;IACzE,gBAAgB,EAAE,MAAM,CAAC;IACzB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,6DAA6D;AAC7D,MAAM,WAAW,6BAA6B;IAC5C,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,mDAAmD;AACnD,MAAM,WAAW,4BAA4B;IAC3C,oCAAoC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0EAA0E;IAC1E,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,wDAAwD;IACxD,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,sFAAsF;IACtF,gBAAgB,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACxC,kCAAkC;IAClC,MAAM,EAAE,6BAA6B,CAAC;IACtC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,6BAA6B,CAAC;CACxC"}
@@ -1,8 +1,7 @@
1
+ import { FilterTab } from '@epam/ai-dial-chat-shared';
1
2
  import { DropdownItem } from '@epam/ai-dial-ui-kit';
2
- import { FilterTab } from '../types/conversation-classification';
3
3
  import { VirtualRowKind } from '../types/virtual-row';
4
4
  import { ConversationItem } from './panel-props';
5
- export { VirtualRowKind };
6
5
  /** A collapsible group header row in the virtual list. */
7
6
  export interface GroupHeaderRow {
8
7
  /** Row discriminant. */
@@ -31,6 +30,8 @@ export interface RowStyles {
31
30
  itemTitleClassName?: string;
32
31
  /** CSS class applied to the icon badge in each conversation row. */
33
32
  itemIconBadgeClassName?: string;
33
+ /** CSS class applied to the task pill badge in each conversation row. */
34
+ taskBadgeClassName?: string;
34
35
  }
35
36
  /** Data passed to every virtual row renderer via `react-window`'s `rowProps`. */
36
37
  export interface RowRendererData {
@@ -54,6 +55,8 @@ export interface RowRendererData {
54
55
  onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
55
56
  /** Accessible label for the actions trigger button. */
56
57
  actionsLabel?: string;
58
+ /** Accessible (visually hidden) label announced for the unread indicator dot. */
59
+ unreadIndicatorLabel?: string;
57
60
  /** Typography/class overrides applied to virtual row elements. */
58
61
  styles?: RowStyles;
59
62
  /** Id of the conversation currently being dragged. `null` when no drag is in progress. */
@@ -70,12 +73,7 @@ export interface RowRendererData {
70
73
  onDragOver: (id: string) => void;
71
74
  /** Called when the drag cursor leaves a row. */
72
75
  onDragLeave: () => void;
73
- /**
74
- * Called when the user drops onto a target row or group header.
75
- * `targetId` is the item id or `FilterTab` sentinel for header drops.
76
- * `targetGroupKey` is the group the item was dropped into.
77
- * `afterId` is the id of the item to insert after, or `null` for top of group.
78
- */
76
+ /** Called when the user drops a conversation row onto a target position. */
79
77
  onDrop: (targetId: string, targetGroupKey: FilterTab, afterId: string | null) => void;
80
78
  }
81
79
  //# sourceMappingURL=virtual-row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-row.d.ts","sourceRoot":"","sources":["../../src/models/virtual-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,EAAE,SAAS,CAAC;IACpB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;IAC1B,kCAAkC;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAE9D,kEAAkE;AAClE,MAAM,WAAW,SAAS;IACxB,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,qDAAqD;IACrD,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,YAAY,EAAE,CAAC;IACxD,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,iBAAiB,KACvB,IAAI,CAAC;IACV,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mGAAmG;IACnG,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzC,+DAA+D;IAC/D,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kDAAkD;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gDAAgD;IAChD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,gDAAgD;IAChD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB;;;;;OAKG;IACH,MAAM,EAAE,CACN,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,IAAI,KACnB,IAAI,CAAC;CACX"}
1
+ {"version":3,"file":"virtual-row.d.ts","sourceRoot":"","sources":["../../src/models/virtual-row.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,0DAA0D;AAC1D,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,IAAI,EAAE,cAAc,CAAC,MAAM,CAAC;IAC5B,qDAAqD;IACrD,QAAQ,EAAE,SAAS,CAAC;IACpB,oCAAoC;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED,0DAA0D;AAC1D,MAAM,WAAW,mBAAmB;IAClC,wBAAwB;IACxB,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC;IAC1B,kCAAkC;IAClC,IAAI,EAAE,gBAAgB,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,mBAAmB,CAAC;AAE9D,kEAAkE;AAClE,MAAM,WAAW,SAAS;IACxB,wDAAwD;IACxD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,2DAA2D;IAC3D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,4DAA4D;IAC5D,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,qDAAqD;IACrD,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC5B,qDAAqD;IACrD,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,iGAAiG;IACjG,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,YAAY,EAAE,CAAC;IACxD,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,iBAAiB,KACvB,IAAI,CAAC;IACV,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iFAAiF;IACjF,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kEAAkE;IAClE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,0FAA0F;IAC1F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,qFAAqF;IACrF,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,mGAAmG;IACnG,iBAAiB,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IACzC,+DAA+D;IAC/D,WAAW,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,kDAAkD;IAClD,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,gDAAgD;IAChD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,gDAAgD;IAChD,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,4EAA4E;IAC5E,MAAM,EAAE,CACN,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,IAAI,KACnB,IAAI,CAAC;CACX"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@epam/ai-dial-conversation-panel",
3
3
  "description": "Virtualized sidebar panel for browsing conversation history with grouping, tabs, and search",
4
- "version": "1.1.0-dev.45",
4
+ "version": "1.1.0-dev.456",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -18,14 +18,13 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "react-window": "^2.2.7",
21
- "@epam/ai-dial-kit": "1.1.0-dev.45",
22
- "@epam/ai-dial-ui-kit": "^0.13.0-dev.12"
21
+ "@epam/ai-dial-ui-kit": "^0.14.0-dev.15"
23
22
  },
24
23
  "peerDependencies": {
25
24
  "react": "^19.0.0",
26
25
  "@tabler/icons-react": "^3.0.0",
27
- "@epam/ai-dial-chat-shared": "1.1.0-dev.45",
28
- "@epam/ai-dial-sidebar": "1.1.0-dev.45"
26
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.456",
27
+ "@epam/ai-dial-sidebar": "1.1.0-dev.456"
29
28
  },
30
29
  "repository": {
31
30
  "type": "git",
@@ -3,14 +3,15 @@ import { RowRendererData } from '../models/virtual-row';
3
3
  export declare const SKELETON_ROW_COUNT = 15;
4
4
  /** Returns a pseudo-randomised width percentage for the skeleton title bar at index `i`. */
5
5
  export declare const getSkeletonWidth: (i: number) => string;
6
- /** Returns the inline-end padding Tailwind class for the row's ghost button based on action state. */
7
- export declare const getButtonPaddingEnd: (hasActions: boolean, isMenuOpen: boolean) => string;
8
6
  /**
9
- * Returns the pixel height for a virtual list row.
10
- *
11
- * Items use `ITEM_ROW_HEIGHT` (32px content + 4px top gap).
12
- * The first group header uses `FIRST_GROUP_HEADER_ROW_HEIGHT` (24px, no gap above).
13
- * Subsequent group headers use `GROUP_HEADER_ROW_HEIGHT` (24px + 8px top gap).
7
+ * Returns the inline-end padding Tailwind class for the row's ghost button based
8
+ * on action state. The reserved gutter has to cover every state in which the
9
+ * actions trigger is actually visible hover *and* focus-within (see the
10
+ * trigger's own visibility classes in `ConversationRow`). A row keeps focus
11
+ * after it is clicked or dragged, so reserving on hover alone left the trigger
12
+ * painted on top of the title's ellipsis once the pointer moved away.
14
13
  */
14
+ export declare const getButtonPaddingEnd: (hasActions: boolean, isMenuOpen: boolean) => string;
15
+ /** Returns the pixel height for a virtual list row (item, first group header, or subsequent group header). */
15
16
  export declare const getRowHeight: (index: number, rowProps: RowRendererData) => number;
16
17
  //# sourceMappingURL=conversation-row.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-row.d.ts","sourceRoot":"","sources":["../../src/utils/conversation-row.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,uBAAuB,CAAC;AAE7E,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,WAA+B,CAAC;AAE1E,sGAAsG;AACtG,eAAO,MAAM,mBAAmB,GAC9B,YAAY,OAAO,EACnB,YAAY,OAAO,KAClB,MAIF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,UAAU,eAAe,KACxB,MAIF,CAAC"}
1
+ {"version":3,"file":"conversation-row.d.ts","sourceRoot":"","sources":["../../src/utils/conversation-row.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,iFAAiF;AACjF,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC,4FAA4F;AAC5F,eAAO,MAAM,gBAAgB,GAAI,GAAG,MAAM,WAA+B,CAAC;AAE1E;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,GAC9B,YAAY,OAAO,EACnB,YAAY,OAAO,KAClB,MAIF,CAAC;AAEF,8GAA8G;AAC9G,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,UAAU,eAAe,KACxB,MAIF,CAAC"}
package/utils/drag.d.ts CHANGED
@@ -1,25 +1,13 @@
1
+ import { FilterTab } from '@epam/ai-dial-chat-shared';
1
2
  import { DragEvent } from 'react';
2
3
  import { ConversationItem } from '../models/panel-props';
3
4
  import { VirtualRow } from '../models/virtual-row';
4
- import { FilterTab } from '../types/conversation-classification';
5
5
  /** Resolves a conversation's `source` to its group, defaulting to `MyChats` when unset. */
6
6
  export declare const sourceToGroupKey: (source?: FilterTab) => FilterTab;
7
7
  /** Returns the `FilterTab` of the virtual row containing the given item id. */
8
8
  export declare const findGroupKeyForItem: (rows: VirtualRow[], id: string) => FilterTab | null;
9
- /**
10
- * Returns the set of groups that are valid drop targets for the given dragged item.
11
- *
12
- * Rules:
13
- * - Same group as the drag source is always allowed (reorder).
14
- * - Any non-Pinned group → Pinned is allowed (pin action).
15
- * - Pinned → non-Pinned is allowed only when the item's `source` matches the target group (unpin action).
16
- */
9
+ /** Returns the set of groups that are valid drop targets for the given dragged item. */
17
10
  export declare const computeAllowedDropGroups: (draggedId: string, draggingGroupKey: FilterTab | null, conversations: ConversationItem[]) => Set<FilterTab>;
18
- /**
19
- * Computes the `afterId` for a drop based on cursor vertical position within a row.
20
- *
21
- * - Bottom half of the row → insert after the item (`afterId = itemId`).
22
- * - Top half → insert before the item (`afterId` = id of the preceding item in the group, or `null` for first).
23
- */
11
+ /** Returns the `afterId` for a drop based on cursor vertical position within a row. */
24
12
  export declare const getDropAfterId: (e: Pick<DragEvent, "currentTarget" | "clientY">, itemId: string, rows: VirtualRow[], targetGroupKey: FilterTab) => string | null;
25
13
  //# sourceMappingURL=drag.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../src/utils/drag.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAGjE,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,KAAG,SASrD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,GAC9B,MAAM,UAAU,EAAE,EAClB,IAAI,MAAM,KACT,SAAS,GAAG,IAUd,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,wBAAwB,GACnC,WAAW,MAAM,EACjB,kBAAkB,SAAS,GAAG,IAAI,EAClC,eAAe,gBAAgB,EAAE,KAChC,GAAG,CAAC,SAAS,CAiBf,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,cAAc,GACzB,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC,EAC/C,QAAQ,MAAM,EACd,MAAM,UAAU,EAAE,EAClB,gBAAgB,SAAS,KACxB,MAAM,GAAG,IAkBX,CAAC"}
1
+ {"version":3,"file":"drag.d.ts","sourceRoot":"","sources":["../../src/utils/drag.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,2FAA2F;AAC3F,eAAO,MAAM,gBAAgB,GAAI,SAAS,SAAS,KAAG,SASrD,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,mBAAmB,GAC9B,MAAM,UAAU,EAAE,EAClB,IAAI,MAAM,KACT,SAAS,GAAG,IAUd,CAAC;AAEF,wFAAwF;AACxF,eAAO,MAAM,wBAAwB,GACnC,WAAW,MAAM,EACjB,kBAAkB,SAAS,GAAG,IAAI,EAClC,eAAe,gBAAgB,EAAE,KAChC,GAAG,CAAC,SAAS,CAiBf,CAAC;AAEF,uFAAuF;AACvF,eAAO,MAAM,cAAc,GACzB,GAAG,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,SAAS,CAAC,EAC/C,QAAQ,MAAM,EACd,MAAM,UAAU,EAAE,EAClB,gBAAgB,SAAS,KACxB,MAAM,GAAG,IAkBX,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { IconFile } from '@tabler/icons-react';
2
+ type TransferFileIcon = typeof IconFile;
3
+ /**
4
+ * Returns the icon for a transfer row, chosen from the file name's extension:
5
+ * the archive icon for `.dial`/`.zip`, the JSON icon for `.json`, and a
6
+ * generic file icon for anything else.
7
+ */
8
+ export declare const getTransferFileIcon: (fileName: string) => TransferFileIcon;
9
+ export {};
10
+ //# sourceMappingURL=transfer-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transfer-file.d.ts","sourceRoot":"","sources":["../../src/utils/transfer-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAyB,MAAM,qBAAqB,CAAC;AAGtE,KAAK,gBAAgB,GAAG,OAAO,QAAQ,CAAC;AAIxC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,UAAU,MAAM,KAAG,gBAStD,CAAC"}
@@ -1,31 +0,0 @@
1
- import { DropdownItem } from '@epam/ai-dial-ui-kit';
2
- import { FC } from 'react';
3
- import { ConversationItem } from '../../models/panel-props';
4
- /** Props for `ConversationGroup`. */
5
- export interface ConversationGroupProps {
6
- /** Section heading label. */
7
- label: string;
8
- /** Conversation items belonging to this group. */
9
- items: ConversationItem[];
10
- /** `id` of the currently active conversation. */
11
- activeConversationId?: string;
12
- /** Called when the user selects a conversation row. */
13
- onSelectConversation: (id: string) => void;
14
- /**
15
- * Builds the dropdown menu items for a row.
16
- * Receives the item so actions can reflect per-item state (e.g. pin toggle).
17
- * When omitted or returns an empty array, no action trigger is rendered.
18
- */
19
- getActions?: (item: ConversationItem) => DropdownItem[];
20
- /** Called when a row action menu opens. */
21
- onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
22
- /** Accessible label for the actions trigger button. Defaults to `"More actions"`. */
23
- actionsLabel?: string;
24
- /** Typography class applied to the group header button. Defaults to `'dial-tiny-semi-text uppercase'`. */
25
- groupHeaderClassName?: string;
26
- /** Typography class applied to the conversation title text. */
27
- itemTitleClassName?: string;
28
- }
29
- /** Collapsible section rendering a labelled group of conversation rows. */
30
- export declare const ConversationGroup: FC<ConversationGroupProps>;
31
- //# sourceMappingURL=ConversationGroup.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConversationGroup.d.ts","sourceRoot":"","sources":["../../../src/components/ConversationGroup/ConversationGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAuB,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAE9E,OAAO,EAAE,KAAK,EAAE,EAAyB,MAAM,OAAO,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAIjE,qCAAqC;AACrC,MAAM,WAAW,sBAAsB;IACrC,6BAA6B;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,iDAAiD;IACjD,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uDAAuD;IACvD,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,YAAY,EAAE,CAAC;IACxD,2CAA2C;IAC3C,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,iBAAiB,KACvB,IAAI,CAAC;IACV,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0GAA0G;IAC1G,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CAmExD,CAAC"}