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

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.
@@ -1,7 +1,7 @@
1
1
  import { DropdownItem } from '@epam/ai-dial-ui-kit';
2
2
  import { ReactNode } from 'react';
3
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;
@@ -16,7 +16,7 @@ export interface FilterLabels {
16
16
  export interface ConversationItem {
17
17
  /** Unique conversation identifier (path or UUID). */
18
18
  id: string;
19
- /** Human-readable title — typically the first user message. */
19
+ /** Human-readable conversation title. */
20
20
  title: string;
21
21
  /** When true the item is shown in the Pinned section. */
22
22
  isPinned?: boolean;
@@ -24,15 +24,11 @@ export interface ConversationItem {
24
24
  source?: FilterTab;
25
25
  /** URL of the model or conversation icon. When absent a default icon is shown. */
26
26
  iconUrl?: string;
27
- /** Tooltip text shown on the deployment icon. Typically the agent or model display name. */
27
+ /** Tooltip text shown on the deployment icon. */
28
28
  iconTooltip?: string;
29
29
  /** When `true`, a skeleton placeholder is shown instead of the deployment icon. */
30
30
  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
- */
31
+ /** Conversation URL. When provided, middle-click opens it in a new tab. */
36
32
  href?: string;
37
33
  }
38
34
  /** Font overrides for the header title in `ConversationPanel`. */
@@ -48,6 +44,29 @@ export interface ConversationPanelTypography {
48
44
  /** Class applied to each filter tab. Defaults to `'dial-tiny-semi-text'` (an additional `'flex-1'` class is always applied). */
49
45
  tabClassName?: string;
50
46
  }
47
+ /** CSS custom-property overrides for the New chat button. */
48
+ export interface NewChatButtonColors {
49
+ /** Default background. */
50
+ background?: string;
51
+ /** Hover background. */
52
+ hoverBackground?: string;
53
+ /** Active/pressed background. */
54
+ activeBackground?: string;
55
+ /** Label and icon color. */
56
+ text?: string;
57
+ /** Blue shadow in the default state. */
58
+ shadowBlue?: string;
59
+ /** Blue shadow on hover. */
60
+ shadowBlueHover?: string;
61
+ /** Blue shadow while active/pressed. */
62
+ shadowBlueActive?: string;
63
+ /** Purple shadow in the default state. */
64
+ shadowPurple?: string;
65
+ /** Purple shadow on hover. */
66
+ shadowPurpleHover?: string;
67
+ /** Purple shadow while active/pressed. */
68
+ shadowPurpleActive?: string;
69
+ }
51
70
  /** CSS custom-property overrides for `ConversationPanel`. */
52
71
  export interface ConversationColors {
53
72
  /** Panel background color. */
@@ -62,26 +81,6 @@ export interface ConversationColors {
62
81
  text?: string;
63
82
  /** Secondary text color (dates, metadata). */
64
83
  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
84
  /** Ring color shown around a group header acting as a drag-and-drop target. */
86
85
  dropZoneRing?: string;
87
86
  /** Background color of the active row actions trigger button. */
@@ -97,6 +96,8 @@ export interface ConversationColors {
97
96
  export interface ConversationPanelStyles {
98
97
  /** Color overrides applied as CSS custom properties. */
99
98
  colors?: ConversationColors;
99
+ /** Color overrides forwarded to the New chat button. */
100
+ newChatButton?: NewChatButtonColors;
100
101
  /** Typography overrides for the panel and its children. */
101
102
  typography?: ConversationPanelTypography;
102
103
  /** CSS class applied to the icon badge in each conversation row. Defaults to `'rounded-full'`. */
@@ -156,48 +157,22 @@ export interface ConversationPanelProps {
156
157
  styles?: ConversationPanelStyles;
157
158
  /** Extra class name(s) merged onto the panel root element. */
158
159
  className?: string;
159
- /**
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.
163
- */
160
+ /** Builds dropdown actions for a row. When absent or empty, no action trigger is rendered. */
164
161
  getActions?: (item: ConversationItem) => DropdownItem[];
165
- /** Called when a row action menu opens, exposing its trigger for host-owned focus restoration. */
162
+ /** Called when a row action menu opens; receives the trigger button. */
166
163
  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
- */
164
+ /** Called when the panel header toggle button is clicked. When provided, the toggle is visible on mobile. */
172
165
  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
- */
166
+ /** Extra content rendered in the panel header action area. */
177
167
  headerActions?: ReactNode;
178
168
  /**
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
169
+ * Called when the user completes a drag-and-drop move.
170
+ * See `ConversationMove` for the payload shape.
189
171
  */
190
172
  onMoveConversation?: (move: ConversationMove) => void;
191
- /**
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.
195
- */
173
+ /** Programmatically sets the active filter tab. Pass `undefined` to leave the tab unchanged. */
196
174
  activeFilter?: FilterTab;
197
- /**
198
- * Called whenever the active filter tab changes — either because the user
199
- * clicked a tab or because `activeFilter` drove a programmatic switch.
200
- */
175
+ /** Called when the active filter tab changes. */
201
176
  onActiveFilterChange?: (tab: FilterTab) => void;
202
177
  }
203
178
  /** Describes a completed drag-and-drop move in the conversation panel. */
@@ -206,10 +181,7 @@ export interface ConversationMove {
206
181
  draggedId: string;
207
182
  /** The group the item was dropped into. */
208
183
  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
- */
184
+ /** Item to insert after; `null` means top of the target group. */
213
185
  afterId: string | null;
214
186
  }
215
187
  //# 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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"}
@@ -70,12 +70,7 @@ export interface RowRendererData {
70
70
  onDragOver: (id: string) => void;
71
71
  /** Called when the drag cursor leaves a row. */
72
72
  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
- */
73
+ /** Called when the user drops a conversation row onto a target position. */
79
74
  onDrop: (targetId: string, targetGroupKey: FilterTab, afterId: string | null) => void;
80
75
  }
81
76
  //# 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,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,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.49",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
7
7
  "main": "./index.js",
@@ -18,14 +18,14 @@
18
18
  },
19
19
  "dependencies": {
20
20
  "react-window": "^2.2.7",
21
- "@epam/ai-dial-kit": "1.1.0-dev.45",
21
+ "@epam/ai-dial-kit": "1.1.0-dev.49",
22
22
  "@epam/ai-dial-ui-kit": "^0.13.0-dev.12"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "react": "^19.0.0",
26
26
  "@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"
27
+ "@epam/ai-dial-chat-shared": "1.1.0-dev.49",
28
+ "@epam/ai-dial-sidebar": "1.1.0-dev.49"
29
29
  },
30
30
  "repository": {
31
31
  "type": "git",
@@ -1,7 +1,4 @@
1
- /**
2
- * Active filter tab value; also used as the source/ownership of a conversation
3
- * and to identify one of the collapsible groups in the conversation panel.
4
- */
1
+ /** Filter tab identifier; also used as conversation source and group key. */
5
2
  export declare enum FilterTab {
6
3
  All = "all",
7
4
  Pinned = "pinned",
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-classification.d.ts","sourceRoot":"","sources":["../../src/types/conversation-classification.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,aAAa;IACpB,MAAM,WAAW;IACjB,YAAY,iBAAiB;CAC9B"}
1
+ {"version":3,"file":"conversation-classification.d.ts","sourceRoot":"","sources":["../../src/types/conversation-classification.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,oBAAY,SAAS;IACnB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,aAAa;IACpB,MAAM,WAAW;IACjB,YAAY,iBAAiB;CAC9B"}
@@ -5,12 +5,6 @@ export declare const SKELETON_ROW_COUNT = 15;
5
5
  export declare const getSkeletonWidth: (i: number) => string;
6
6
  /** Returns the inline-end padding Tailwind class for the row's ghost button based on action state. */
7
7
  export declare const getButtonPaddingEnd: (hasActions: boolean, isMenuOpen: boolean) => string;
8
- /**
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).
14
- */
8
+ /** Returns the pixel height for a virtual list row (item, first group header, or subsequent group header). */
15
9
  export declare const getRowHeight: (index: number, rowProps: RowRendererData) => number;
16
10
  //# 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,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,8GAA8G;AAC9G,eAAO,MAAM,YAAY,GACvB,OAAO,MAAM,EACb,UAAU,eAAe,KACxB,MAIF,CAAC"}
package/utils/drag.d.ts CHANGED
@@ -6,20 +6,8 @@ import { FilterTab } from '../types/conversation-classification';
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,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,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"}