@epam/ai-dial-conversation-panel 1.0.0-dev.481 → 1.0.0-dev.484

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.
@@ -11,8 +11,14 @@ export interface ConversationGroupProps {
11
11
  activeConversationId?: string;
12
12
  /** Called when the user selects a conversation row. */
13
13
  onSelectConversation: (id: string) => void;
14
- /** Optional function to provide a list of actions for each conversation row. */
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
+ */
15
19
  getActions?: (item: ConversationItem) => DropdownItem[];
20
+ /** Called when a row action menu opens. */
21
+ onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
16
22
  /** Accessible label for the actions trigger button. Defaults to `"More actions"`. */
17
23
  actionsLabel?: string;
18
24
  /** Typography class applied to the group header button. Defaults to `'dial-tiny-semi-text uppercase'`. */
@@ -1 +1 @@
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,gFAAgF;IAChF,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,YAAY,EAAE,CAAC;IACxD,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,CAiExD,CAAC"}
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"}
@@ -18,6 +18,8 @@ export interface ConversationRowProps {
18
18
  * When omitted or returns an empty array, the actions trigger is not rendered.
19
19
  */
20
20
  getActions?: (item: ConversationItem) => DropdownItem[];
21
+ /** Called when this row's action menu opens. */
22
+ onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
21
23
  /** Accessible label for the actions trigger button. Defaults to `"More actions"`. */
22
24
  actionsLabel?: string;
23
25
  /** Typography class for the conversation title text. Defaults to `'dial-small-text'`. */
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationRow.d.ts","sourceRoot":"","sources":["../../../src/components/ConversationGroup/ConversationRow.tsx"],"names":[],"mappings":"AAKA,OAAO,EASL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAyC,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,IAAI,EAAE,gBAAgB,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,YAAY,EAAE,CAAC;IACxD,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mEAAmE;IACnE,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC1C,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gDAAgD;IAChD,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,IAAI,KACnB,IAAI,CAAC;CACX;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAuKpD,CAAC"}
1
+ {"version":3,"file":"ConversationRow.d.ts","sourceRoot":"","sources":["../../../src/components/ConversationGroup/ConversationRow.tsx"],"names":[],"mappings":"AAKA,OAAO,EASL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAiD,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAKpE,MAAM,WAAW,oBAAoB;IACnC,wCAAwC;IACxC,IAAI,EAAE,gBAAgB,CAAC;IACvB,qDAAqD;IACrD,QAAQ,EAAE,OAAO,CAAC;IAClB,sEAAsE;IACtE,oBAAoB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,YAAY,EAAE,CAAC;IACxD,gDAAgD;IAChD,gBAAgB,CAAC,EAAE,CACjB,IAAI,EAAE,gBAAgB,EACtB,OAAO,EAAE,iBAAiB,KACvB,IAAI,CAAC;IACV,qFAAqF;IACrF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yEAAyE;IACzE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,mEAAmE;IACnE,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,qDAAqD;IACrD,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC1C,qDAAqD;IACrD,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,mDAAmD;IACnD,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gDAAgD;IAChD,MAAM,CAAC,EAAE,CACP,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,SAAS,EACzB,OAAO,EAAE,MAAM,GAAG,IAAI,KACnB,IAAI,CAAC;CACX;AAED,eAAO,MAAM,eAAe,EAAE,EAAE,CAAC,oBAAoB,CAoLpD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConversationPanel.d.ts","sourceRoot":"","sources":["../../../src/components/ConversationPanel/ConversationPanel.tsx"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,EAAE,EAQR,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA4BlE,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA4ZxD,CAAC"}
1
+ {"version":3,"file":"ConversationPanel.d.ts","sourceRoot":"","sources":["../../../src/components/ConversationPanel/ConversationPanel.tsx"],"names":[],"mappings":"AASA,OAAO,EACL,KAAK,EAAE,EAQR,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AA4BlE,sEAAsE;AACtE,eAAO,MAAM,iBAAiB,EAAE,EAAE,CAAC,sBAAsB,CA+ZxD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { RowComponentProps } from 'react-window';
2
2
  import { RowRendererData } from '../../models/virtual-row';
3
3
  /** Renders a single virtual row — either a collapsible group header or a conversation item. */
4
- export declare const RowRenderer: ({ index, style, rows, expandedGroups, onToggleGroup, listId, activeConversationId, searchQuery, onSelectConversation, getActions, actionsLabel, styles, draggingId, dragOverId, allowedDropGroups, onDragStart, onDragEnd, onDragOver, onDragLeave, onDrop, }: RowComponentProps<RowRendererData>) => import("react/jsx-runtime").JSX.Element;
4
+ export declare const RowRenderer: ({ index, style, rows, expandedGroups, onToggleGroup, listId, activeConversationId, searchQuery, onSelectConversation, getActions, onActionMenuOpen, actionsLabel, styles, draggingId, dragOverId, allowedDropGroups, onDragStart, onDragEnd, onDragOver, onDragLeave, onDrop, }: RowComponentProps<RowRendererData>) => import("react/jsx-runtime").JSX.Element;
5
5
  //# sourceMappingURL=RowRenderer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RowRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/RowRenderer/RowRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,0BAA0B,CAAC;AAKhF,+FAA+F;AAC/F,eAAO,MAAM,WAAW,GAAI,+PAqBzB,iBAAiB,CAAC,eAAe,CAAC,4CAmDpC,CAAC"}
1
+ {"version":3,"file":"RowRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/RowRenderer/RowRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,KAAK,eAAe,EAAkB,MAAM,0BAA0B,CAAC;AAKhF,+FAA+F;AAC/F,eAAO,MAAM,WAAW,GAAI,iRAsBzB,iBAAiB,CAAC,eAAe,CAAC,4CAoDpC,CAAC"}
package/index.js CHANGED
@@ -51,7 +51,7 @@ function ee({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
51
51
  c
52
52
  ]);
53
53
  }
54
- function te(e) {
54
+ function L(e) {
55
55
  let t = D(() => {
56
56
  throw Error("Cannot call during render.");
57
57
  });
@@ -59,18 +59,18 @@ function te(e) {
59
59
  t.current = e;
60
60
  }, [e]), x((e) => t.current?.(e), [t]);
61
61
  }
62
- var L = null;
63
- function R(e = !1) {
64
- if (L === null || e) {
62
+ var R = null;
63
+ function z(e = !1) {
64
+ if (R === null || e) {
65
65
  let e = document.createElement("div"), t = e.style;
66
66
  t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
67
67
  let n = document.createElement("div"), r = n.style;
68
- return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? L = "positive-descending" : (e.scrollLeft = 1, L = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), L;
68
+ return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? R = "positive-descending" : (e.scrollLeft = 1, R = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), R;
69
69
  }
70
- return L;
70
+ return R;
71
71
  }
72
- function z({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
73
- if (t === "horizontal" && n) switch (R()) {
72
+ function B({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
73
+ if (t === "horizontal" && n) switch (z()) {
74
74
  case "negative": return -r;
75
75
  case "positive-descending":
76
76
  if (e) {
@@ -81,26 +81,26 @@ function z({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
81
81
  }
82
82
  return r;
83
83
  }
84
- function B(e, t = "Assertion error") {
84
+ function V(e, t = "Assertion error") {
85
85
  if (!e) throw console.error(t), Error(t);
86
86
  }
87
- function V(e, t) {
87
+ function H(e, t) {
88
88
  if (e === t) return !0;
89
- if (!!e != !!t || (B(e !== void 0), B(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
89
+ if (!!e != !!t || (V(e !== void 0), V(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
90
90
  for (let n in e) if (!Object.is(t[n], e[n])) return !1;
91
91
  return !0;
92
92
  }
93
- function H({ cachedBounds: e, itemCount: t, itemSize: n }) {
93
+ function U({ cachedBounds: e, itemCount: t, itemSize: n }) {
94
94
  if (t === 0) return 0;
95
95
  if (typeof n == "number") return t * n;
96
96
  {
97
97
  let n = e.get(e.size === 0 ? 0 : e.size - 1);
98
- return B(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
98
+ return V(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
99
99
  }
100
100
  }
101
- function U({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
101
+ function W({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
102
102
  if (n < 0 || n >= r) throw RangeError(`Invalid index specified: ${n}`, { cause: `Index ${n} is not within the range of 0 - ${r - 1}` });
103
- let s = H({
103
+ let s = U({
104
104
  cachedBounds: t,
105
105
  itemCount: r,
106
106
  itemSize: i
@@ -112,7 +112,7 @@ function U({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, con
112
112
  default: return a >= u && a <= l ? a : a < u ? u : l;
113
113
  }
114
114
  }
115
- function W({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
115
+ function G({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
116
116
  let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
117
117
  for (; u < a;) {
118
118
  let n = e.get(u);
@@ -131,11 +131,11 @@ function W({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCo
131
131
  stopIndexOverscan: l
132
132
  };
133
133
  }
134
- function ne({ itemCount: e, itemProps: t, itemSize: n }) {
134
+ function K({ itemCount: e, itemProps: t, itemSize: n }) {
135
135
  let r = /* @__PURE__ */ new Map();
136
136
  return {
137
137
  get(i) {
138
- for (B(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
138
+ for (V(i < e, `Invalid index ${i}`); r.size - 1 < i;) {
139
139
  let e = r.size, a;
140
140
  switch (typeof n) {
141
141
  case "function":
@@ -151,14 +151,14 @@ function ne({ itemCount: e, itemProps: t, itemSize: n }) {
151
151
  });
152
152
  else {
153
153
  let t = r.get(e - 1);
154
- B(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
154
+ V(t !== void 0, `Unexpected bounds cache miss for index ${i}`), r.set(e, {
155
155
  scrollOffset: t.scrollOffset + t.size,
156
156
  size: a
157
157
  });
158
158
  }
159
159
  }
160
160
  let a = r.get(i);
161
- return B(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
161
+ return V(a !== void 0, `Unexpected bounds cache miss for index ${i}`), a;
162
162
  },
163
163
  set(e, t) {
164
164
  r.set(e, t);
@@ -168,8 +168,8 @@ function ne({ itemCount: e, itemProps: t, itemSize: n }) {
168
168
  }
169
169
  };
170
170
  }
171
- function G({ itemCount: e, itemProps: t, itemSize: n }) {
172
- return E(() => ne({
171
+ function q({ itemCount: e, itemProps: t, itemSize: n }) {
172
+ return E(() => K({
173
173
  itemCount: e,
174
174
  itemProps: t,
175
175
  itemSize: n
@@ -179,11 +179,11 @@ function G({ itemCount: e, itemProps: t, itemSize: n }) {
179
179
  n
180
180
  ]);
181
181
  }
182
- function re({ containerSize: e, itemSize: t }) {
182
+ function J({ containerSize: e, itemSize: t }) {
183
183
  let n;
184
184
  switch (typeof t) {
185
185
  case "string":
186
- B(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), B(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
186
+ V(t.endsWith("%"), `Invalid item size: "${t}"; string values must be percentages (e.g. "100%")`), V(e !== void 0, "Container size must be defined if a percentage item size is specified"), n = e * parseInt(t) / 100;
187
187
  break;
188
188
  default:
189
189
  n = t;
@@ -191,7 +191,7 @@ function re({ containerSize: e, itemSize: t }) {
191
191
  }
192
192
  return n;
193
193
  }
194
- function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
194
+ function te({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
195
195
  let { height: u = n, width: d = n } = ee({
196
196
  defaultHeight: r === "vertical" ? n : void 0,
197
197
  defaultWidth: r === "horizontal" ? n : void 0,
@@ -201,7 +201,7 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
201
201
  }), f = D({
202
202
  height: 0,
203
203
  width: 0
204
- }), p = r === "vertical" ? u : d, m = re({
204
+ }), p = r === "vertical" ? u : d, m = J({
205
205
  containerSize: p,
206
206
  itemSize: s
207
207
  });
@@ -218,11 +218,11 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
218
218
  c,
219
219
  d
220
220
  ]);
221
- let h = G({
221
+ let h = q({
222
222
  itemCount: a,
223
223
  itemProps: o,
224
224
  itemSize: m
225
- }), g = x((e) => h.get(e), [h]), [_, v] = O(() => W({
225
+ }), g = x((e) => h.get(e), [h]), [_, v] = O(() => G({
226
226
  cachedBounds: h,
227
227
  containerScrollOffset: 0,
228
228
  containerSize: p,
@@ -233,7 +233,7 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
233
233
  startIndexOverscan: Math.min(a - 1, _.startIndexOverscan),
234
234
  stopIndexVisible: Math.min(a - 1, _.stopIndexVisible),
235
235
  stopIndexOverscan: Math.min(a - 1, _.stopIndexOverscan)
236
- }, w = x(() => H({
236
+ }, w = x(() => U({
237
237
  cachedBounds: h,
238
238
  itemCount: a,
239
239
  itemSize: m
@@ -241,9 +241,9 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
241
241
  h,
242
242
  a,
243
243
  m
244
- ]), E = x((t) => W({
244
+ ]), E = x((t) => G({
245
245
  cachedBounds: h,
246
- containerScrollOffset: z({
246
+ containerScrollOffset: B({
247
247
  containerElement: e,
248
248
  direction: r,
249
249
  isRtl: i,
@@ -271,9 +271,9 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
271
271
  if (!e) return;
272
272
  let t = () => {
273
273
  v((t) => {
274
- let { scrollLeft: n, scrollTop: o } = e, s = W({
274
+ let { scrollLeft: n, scrollTop: o } = e, s = G({
275
275
  cachedBounds: h,
276
- containerScrollOffset: z({
276
+ containerScrollOffset: B({
277
277
  containerElement: e,
278
278
  direction: r,
279
279
  isRtl: i,
@@ -283,7 +283,7 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
283
283
  itemCount: a,
284
284
  overscanCount: l
285
285
  });
286
- return V(s, t) ? t : s;
286
+ return H(s, t) ? t : s;
287
287
  });
288
288
  };
289
289
  return e.addEventListener("scroll", t), () => {
@@ -299,8 +299,8 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
299
299
  ]), {
300
300
  getCellBounds: g,
301
301
  getEstimatedSize: w,
302
- scrollToIndex: te(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
303
- let s = U({
302
+ scrollToIndex: L(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
303
+ let s = W({
304
304
  align: t,
305
305
  cachedBounds: h,
306
306
  containerScrollOffset: n,
@@ -310,14 +310,14 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
310
310
  itemSize: m
311
311
  });
312
312
  if (e) {
313
- if (s = z({
313
+ if (s = B({
314
314
  containerElement: e,
315
315
  direction: r,
316
316
  isRtl: i,
317
317
  scrollOffset: s
318
318
  }), typeof e.scrollTo != "function") {
319
319
  let e = E(s);
320
- V(_, e) || v(e);
320
+ H(_, e) || v(e);
321
321
  }
322
322
  return s;
323
323
  }
@@ -328,19 +328,19 @@ function ie({ containerElement: e, containerStyle: t, defaultContainerSize: n =
328
328
  stopIndexVisible: S
329
329
  };
330
330
  }
331
- function ae(e) {
331
+ function ne(e) {
332
332
  return E(() => e, Object.values(e));
333
333
  }
334
- function K(e, t) {
334
+ function re(e, t) {
335
335
  let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
336
- return V(n, a) && V(r, o) && V(i, s);
336
+ return H(n, a) && H(r, o) && H(i, s);
337
337
  }
338
- function oe(e) {
338
+ function ie(e) {
339
339
  return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
340
340
  }
341
- var se = "data-react-window-index";
342
- function ce({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: a, overscanCount: o = 3, rowComponent: s, rowCount: c, rowHeight: l, rowProps: u, tagName: d = "div", style: f, ...p }) {
343
- let m = ae(u), h = E(() => b(s, K), [s]), [g, _] = O(null), v = oe(l), { getCellBounds: x, getEstimatedSize: C, scrollToIndex: T, startIndexOverscan: D, startIndexVisible: A, stopIndexOverscan: j, stopIndexVisible: M } = ie({
341
+ var ae = "data-react-window-index";
342
+ function oe({ children: e, className: t, defaultHeight: n = 0, listRef: r, onResize: i, onRowsRendered: a, overscanCount: o = 3, rowComponent: s, rowCount: c, rowHeight: l, rowProps: u, tagName: d = "div", style: f, ...p }) {
343
+ let m = ne(u), h = E(() => b(s, re), [s]), [g, _] = O(null), v = ie(l), { getCellBounds: x, getEstimatedSize: C, scrollToIndex: T, startIndexOverscan: D, startIndexVisible: A, stopIndexOverscan: j, stopIndexVisible: M } = te({
344
344
  containerElement: g,
345
345
  containerStyle: f,
346
346
  defaultContainerSize: n,
@@ -371,7 +371,7 @@ function ce({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
371
371
  let e = Array.from(g.children).filter((e, t) => {
372
372
  if (e.hasAttribute("aria-hidden")) return !1;
373
373
  let n = `${D + t}`;
374
- return e.setAttribute(se, n), !0;
374
+ return e.setAttribute(ae, n), !0;
375
375
  });
376
376
  if (v) return l.observeRowElements(e);
377
377
  }, [
@@ -450,42 +450,42 @@ function ce({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
450
450
  }
451
451
  //#endregion
452
452
  //#region src/types/virtual-row.ts
453
- var q = /* @__PURE__ */ function(e) {
453
+ var Y = /* @__PURE__ */ function(e) {
454
454
  return e.Header = "header", e.Item = "item", e;
455
- }({}), J = /* @__PURE__ */ function(e) {
455
+ }({}), X = /* @__PURE__ */ function(e) {
456
456
  return e.All = "all", e.Pinned = "pinned", e.MyChats = "my-chats", e.Shared = "shared", e.Organization = "organization", e;
457
- }({}), le = (e) => `${60 + e * 23 % 35}%`, ue = (e, t) => e ? t ? "pe-9" : "pe-2 group-hover/conversation:pe-9" : "pe-3", de = (e, t) => t.rows[e].kind === q.Item ? 36 : e === 0 ? 24 : 56, fe = (e) => {
457
+ }({}), se = (e) => `${60 + e * 23 % 35}%`, ce = (e, t) => e ? t ? "pe-9" : "pe-2 group-hover/conversation:pe-9" : "pe-3", le = (e, t) => t.rows[e].kind === Y.Item ? 36 : e === 0 ? 24 : 56, ue = (e) => {
458
458
  switch (e) {
459
- case J.Shared: return J.Shared;
460
- case J.Organization: return J.Organization;
461
- default: return J.MyChats;
459
+ case X.Shared: return X.Shared;
460
+ case X.Organization: return X.Organization;
461
+ default: return X.MyChats;
462
462
  }
463
- }, pe = (e, t) => {
463
+ }, de = (e, t) => {
464
464
  let n = null;
465
- for (let r of e) if (r.kind === q.Header) n = r.groupKey;
465
+ for (let r of e) if (r.kind === Y.Header) n = r.groupKey;
466
466
  else if (r.item.id === t) return n;
467
467
  return null;
468
- }, me = (e, t, n) => {
468
+ }, fe = (e, t, n) => {
469
469
  let r = /* @__PURE__ */ new Set();
470
- if (t != null && r.add(t), t === J.Pinned) {
470
+ if (t != null && r.add(t), t === X.Pinned) {
471
471
  let t = n.find((t) => t.id === e);
472
- t && r.add(fe(t.source));
473
- } else r.add(J.Pinned);
472
+ t && r.add(ue(t.source));
473
+ } else r.add(X.Pinned);
474
474
  return r;
475
- }, he = (e, t, n, r) => {
475
+ }, pe = (e, t, n, r) => {
476
476
  let i = e.currentTarget.getBoundingClientRect();
477
477
  if (e.clientY >= i.top + i.height / 2) return t;
478
478
  let a = null, o = !1;
479
- for (let e of n) if (e.kind === q.Header) o = e.groupKey === r;
479
+ for (let e of n) if (e.kind === Y.Header) o = e.groupKey === r;
480
480
  else if (o) {
481
481
  if (e.item.id === t) return a;
482
482
  a = e.item.id;
483
483
  }
484
484
  return null;
485
- }, Y = {
485
+ }, me = {
486
486
  tab: "_tab_1mi6x_1",
487
487
  tabActive: "_tabActive_1mi6x_13"
488
- }, ge = b(({ tabs: e, activeTabId: t, onTabChange: n, tabClassName: i = "dial-tiny-semi-text" }) => /* @__PURE__ */ k("div", {
488
+ }, he = b(({ tabs: e, activeTabId: t, onTabChange: n, tabClassName: i = "dial-tiny-semi-text" }) => /* @__PURE__ */ k("div", {
489
489
  className: "flex flex-nowrap gap-1",
490
490
  children: e.map((e) => {
491
491
  let a = t === e.id;
@@ -493,30 +493,30 @@ var q = /* @__PURE__ */ function(e) {
493
493
  label: e.label,
494
494
  selected: a,
495
495
  onClick: () => n(e.id),
496
- className: r("box-border h-auto shrink-0 justify-center rounded-full p-2 text-center", i, Y.tab, a && Y.tabActive)
496
+ className: r("box-border h-auto shrink-0 justify-center rounded-full p-2 text-center", i, me.tab, a && me.tabActive)
497
497
  }, e.id);
498
498
  })
499
- })), _e = [
499
+ })), ge = [
500
500
  {
501
- value: J.All,
501
+ value: X.All,
502
502
  labelKey: "all"
503
503
  },
504
504
  {
505
- value: J.MyChats,
505
+ value: X.MyChats,
506
506
  labelKey: "myChats"
507
507
  },
508
508
  {
509
- value: J.Shared,
509
+ value: X.Shared,
510
510
  labelKey: "shared"
511
511
  },
512
512
  {
513
- value: J.Organization,
513
+ value: X.Organization,
514
514
  labelKey: "organization"
515
515
  }
516
- ], ve = b(({ activeTab: e, labels: t, onChange: n, tabClassName: r = "dial-tiny-semi-text" }) => /* @__PURE__ */ k("div", {
516
+ ], _e = b(({ activeTab: e, labels: t, onChange: n, tabClassName: r = "dial-tiny-semi-text" }) => /* @__PURE__ */ k("div", {
517
517
  className: "mx-3 my-2",
518
- children: /* @__PURE__ */ k(ge, {
519
- tabs: _e.map(({ value: e, labelKey: n }) => ({
518
+ children: /* @__PURE__ */ k(he, {
519
+ tabs: ge.map(({ value: e, labelKey: n }) => ({
520
520
  id: e,
521
521
  label: t[n]
522
522
  })),
@@ -524,12 +524,12 @@ var q = /* @__PURE__ */ function(e) {
524
524
  onTabChange: (e) => n(e),
525
525
  tabClassName: r
526
526
  })
527
- })), ye = { button: "_button_1ggx8_1" }, be = b(({ label: e, onClick: t, labelClassName: n = "dial-small-semi-text" }) => /* @__PURE__ */ k("div", {
527
+ })), ve = { button: "_button_1ggx8_1" }, ye = b(({ label: e, onClick: t, labelClassName: n = "dial-small-semi-text" }) => /* @__PURE__ */ k("div", {
528
528
  className: "px-3 py-2",
529
529
  children: /* @__PURE__ */ A("button", {
530
530
  onClick: t,
531
531
  type: "button",
532
- className: r("flex h-[36px] w-full cursor-pointer items-center justify-center gap-2 rounded-full px-3 py-1", ye.button),
532
+ className: r("flex h-[36px] w-full cursor-pointer items-center justify-center gap-2 rounded-full px-3 py-1", ve.button),
533
533
  children: [/* @__PURE__ */ k(P, {
534
534
  size: 18,
535
535
  stroke: 2,
@@ -539,7 +539,7 @@ var q = /* @__PURE__ */ function(e) {
539
539
  children: e
540
540
  })]
541
541
  })
542
- })), X = {
542
+ })), Z = {
543
543
  skeletonColor: "var(--cp-skeleton-color, var(--bg-layer-4, #d1dbea))",
544
544
  header: "_header_dr0k7_1",
545
545
  item: "_item_dr0k7_5",
@@ -549,42 +549,44 @@ var q = /* @__PURE__ */ function(e) {
549
549
  trigger: "_trigger_dr0k7_28",
550
550
  triggerActive: "_triggerActive_dr0k7_28",
551
551
  triggerIcon: "_triggerIcon_dr0k7_31"
552
- }, xe = ({ item: n, isActive: i, onSelectConversation: a, searchQuery: o = "", getActions: s, actionsLabel: c = "More actions", itemTitleClassName: p = "dial-small-text", itemIconBadgeClassName: _, rowGroupKey: y, rows: b, draggingId: S, dragOverId: C, allowedDropGroups: w, onDragStart: T, onDragEnd: E, onDragOver: D, onDragLeave: j, onDrop: M }) => {
553
- let [P, F] = O(!1), I = s?.(n) ?? [], ee = I.length > 0, te = n.isIconLoading ? /* @__PURE__ */ k(h, {
552
+ }, be = ({ item: n, isActive: i, onSelectConversation: a, searchQuery: o = "", getActions: s, onActionMenuOpen: c, actionsLabel: p = "More actions", itemTitleClassName: _ = "dial-small-text", itemIconBadgeClassName: y, rowGroupKey: b, rows: S, draggingId: C, dragOverId: w, allowedDropGroups: T, onDragStart: E, onDragEnd: j, onDragOver: M, onDragLeave: P, onDrop: F }) => {
553
+ let [I, ee] = O(!1), L = D(null), R = x((e) => {
554
+ ee(e), e && L.current && c?.(n, L.current);
555
+ }, [n, c]), z = s?.(n) ?? [], B = z.length > 0, V = n.isIconLoading ? /* @__PURE__ */ k(h, {
554
556
  variant: g.Circular,
555
557
  width: u.LG,
556
558
  height: u.LG,
557
- color: X.skeletonColor,
559
+ color: Z.skeletonColor,
558
560
  "aria-hidden": !0
559
561
  }) : /* @__PURE__ */ k(e, {
560
562
  src: n.iconUrl,
561
563
  size: u.LG,
562
564
  initialsName: n.iconTooltip ?? "",
563
565
  tooltip: n.iconTooltip,
564
- badgeClassName: _
565
- }), L = ue(ee, P), R = y != null, z = x((e) => {
566
- e.currentTarget.contains(e.relatedTarget) || j?.();
567
- }, [j]), B = x((e) => {
568
- if (!y || !b || !M) return;
566
+ badgeClassName: y
567
+ }), H = ce(B, I), U = b != null, W = x((e) => {
568
+ e.currentTarget.contains(e.relatedTarget) || P?.();
569
+ }, [P]), G = x((e) => {
570
+ if (!b || !S || !F) return;
569
571
  e.preventDefault();
570
- let t = he(e, n.id, b, y);
571
- M(n.id, y, t);
572
+ let t = pe(e, n.id, S, b);
573
+ F(n.id, b, t);
572
574
  }, [
573
575
  n.id,
576
+ S,
574
577
  b,
575
- y,
576
- M
577
- ]), V = n.id === S, H = n.id === C, U = y != null && (w?.has(y) ?? !1), W = S != null;
578
+ F
579
+ ]), K = n.id === C, q = n.id === w, J = b != null && (T?.has(b) ?? !1), te = C != null;
578
580
  return /* @__PURE__ */ A("li", {
579
- className: r("group/conversation relative", V && "cursor-grabbing opacity-50", H && U && "rounded", H && U && X.dropZoneActive, W && !V && !U && "cursor-not-allowed"),
580
- draggable: R || void 0,
581
- onDragStart: R ? () => T?.(n.id) : void 0,
582
- onDragEnd: R ? E : void 0,
583
- onDragOver: R ? (e) => {
584
- e.preventDefault(), D?.(n.id);
581
+ className: r("group/conversation relative", K && "cursor-grabbing opacity-50", q && J && "rounded", q && J && Z.dropZoneActive, te && !K && !J && "cursor-not-allowed"),
582
+ draggable: U || void 0,
583
+ onDragStart: U ? () => E?.(n.id) : void 0,
584
+ onDragEnd: U ? j : void 0,
585
+ onDragOver: U ? (e) => {
586
+ e.preventDefault(), M?.(n.id);
585
587
  } : void 0,
586
- onDragLeave: R ? z : void 0,
587
- onDrop: R ? B : void 0,
588
+ onDragLeave: U ? W : void 0,
589
+ onDrop: U ? G : void 0,
588
590
  children: [/* @__PURE__ */ k("a", {
589
591
  href: n.href,
590
592
  className: "contents",
@@ -592,41 +594,42 @@ var q = /* @__PURE__ */ function(e) {
592
594
  n.href && (e.preventDefault(), a(n.id));
593
595
  },
594
596
  children: /* @__PURE__ */ k(d, {
595
- iconBefore: te,
597
+ iconBefore: V,
596
598
  label: /* @__PURE__ */ k(t, {
597
599
  text: n.title,
598
600
  query: o,
599
- className: p,
601
+ className: _,
600
602
  maxLines: 1
601
603
  }),
602
604
  textClassName: "min-w-0",
603
605
  "aria-current": i ? "page" : void 0,
604
606
  onClick: n.href ? void 0 : () => a(n.id),
605
607
  tabIndex: n.href ? -1 : void 0,
606
- className: r("flex h-8 w-full items-center justify-start gap-2 rounded-xl py-2 ps-3", L, X.item, i && X.itemActive, P && X.itemActive)
608
+ className: r("flex h-8 w-full items-center justify-start gap-2 rounded-xl py-2 ps-3", H, Z.item, i && Z.itemActive, I && Z.itemActive)
607
609
  })
608
- }), ee && /* @__PURE__ */ k("div", {
609
- className: r("absolute inset-y-0 end-1 flex items-center", P ? "opacity-100" : "opacity-0 group-focus-within/conversation:opacity-100 group-hover/conversation:opacity-100"),
610
+ }), B && /* @__PURE__ */ k("div", {
611
+ className: r("absolute inset-y-0 end-1 flex items-center", I ? "opacity-100" : "opacity-0 group-focus-within/conversation:opacity-100 group-hover/conversation:opacity-100"),
610
612
  children: /* @__PURE__ */ k(f, {
611
- items: I,
612
- onOpenChange: F,
613
+ items: z,
614
+ onOpenChange: R,
613
615
  matchReferenceWidth: !1,
614
616
  listClassName: "w-[140px] cp-dropdown-overlay",
615
617
  children: /* @__PURE__ */ k(m, {
618
+ ref: L,
616
619
  icon: /* @__PURE__ */ k(N, {
617
620
  size: u.SM,
618
- className: X.triggerIcon,
621
+ className: Z.triggerIcon,
619
622
  "aria-hidden": !0
620
623
  }),
621
624
  appearance: l.Ghost,
622
625
  size: v.Small,
623
- "aria-label": c,
624
- className: r("flex items-center justify-center rounded", X.trigger, P && X.triggerActive)
626
+ "aria-label": p,
627
+ className: r("flex items-center justify-center rounded", Z.trigger, I && Z.triggerActive)
625
628
  })
626
629
  })
627
630
  })]
628
631
  });
629
- }, Se = ({ label: e, isExpanded: t, onToggle: n, listId: i, className: a = "dial-tiny-semi-text uppercase", dropZoneGroupKey: o, isDragOver: s, onDragOver: c, onDragLeave: l, onDrop: u }) => {
632
+ }, xe = ({ label: e, isExpanded: t, onToggle: n, listId: i, className: a = "dial-tiny-semi-text uppercase", dropZoneGroupKey: o, isDragOver: s, onDragOver: c, onDragLeave: l, onDrop: u }) => {
630
633
  let d = o != null;
631
634
  return /* @__PURE__ */ A("button", {
632
635
  type: "button",
@@ -642,7 +645,7 @@ var q = /* @__PURE__ */ function(e) {
642
645
  onDrop: d ? (e) => {
643
646
  d && (e.preventDefault(), u?.(o, o, null));
644
647
  } : void 0,
645
- className: r("flex h-6 w-full items-center gap-1 rounded py-1 pe-3 text-start", a, X.groupHeader, s && X.dropZoneActive),
648
+ className: r("flex h-6 w-full items-center gap-1 rounded py-1 pe-3 text-start", a, Z.groupHeader, s && Z.dropZoneActive),
646
649
  children: [t ? /* @__PURE__ */ k(j, {
647
650
  stroke: .5,
648
651
  size: 12,
@@ -655,25 +658,25 @@ var q = /* @__PURE__ */ function(e) {
655
658
  "aria-hidden": !0
656
659
  }), /* @__PURE__ */ k(p, { text: e })]
657
660
  });
658
- }, Ce = ({ index: e, style: t, rows: n, expandedGroups: r, onToggleGroup: i, listId: a, activeConversationId: o, searchQuery: s, onSelectConversation: c, getActions: l, actionsLabel: u, styles: d, draggingId: f, dragOverId: p, allowedDropGroups: m, onDragStart: h, onDragEnd: g, onDragOver: _, onDragLeave: v, onDrop: y }) => {
659
- let b = n[e];
660
- if (b.kind === q.Header) {
661
- let n = b.groupKey === J.Pinned;
661
+ }, Se = ({ index: e, style: t, rows: n, expandedGroups: r, onToggleGroup: i, listId: a, activeConversationId: o, searchQuery: s, onSelectConversation: c, getActions: l, onActionMenuOpen: u, actionsLabel: d, styles: f, draggingId: p, dragOverId: m, allowedDropGroups: h, onDragStart: g, onDragEnd: _, onDragOver: v, onDragLeave: y, onDrop: b }) => {
662
+ let x = n[e];
663
+ if (x.kind === Y.Header) {
664
+ let n = x.groupKey === X.Pinned;
662
665
  return /* @__PURE__ */ k("div", {
663
666
  role: "presentation",
664
667
  style: t,
665
668
  className: e === 0 ? "pt-0" : "pt-8",
666
- children: /* @__PURE__ */ k(Se, {
667
- label: b.label,
668
- isExpanded: r.has(b.groupKey),
669
- onToggle: () => i(b.groupKey),
669
+ children: /* @__PURE__ */ k(xe, {
670
+ label: x.label,
671
+ isExpanded: r.has(x.groupKey),
672
+ onToggle: () => i(x.groupKey),
670
673
  listId: a,
671
- className: d?.groupHeaderClassName,
672
- dropZoneGroupKey: n ? J.Pinned : void 0,
673
- isDragOver: n && p === J.Pinned,
674
- onDragOver: n ? _ : void 0,
675
- onDragLeave: n ? v : void 0,
676
- onDrop: n ? y : void 0
674
+ className: f?.groupHeaderClassName,
675
+ dropZoneGroupKey: n ? X.Pinned : void 0,
676
+ isDragOver: n && m === X.Pinned,
677
+ onDragOver: n ? v : void 0,
678
+ onDragLeave: n ? y : void 0,
679
+ onDrop: n ? b : void 0
677
680
  })
678
681
  });
679
682
  }
@@ -681,240 +684,243 @@ var q = /* @__PURE__ */ function(e) {
681
684
  role: "presentation",
682
685
  style: t,
683
686
  className: "pt-1",
684
- children: /* @__PURE__ */ k(xe, {
685
- item: b.item,
686
- isActive: b.item.id === o,
687
+ children: /* @__PURE__ */ k(be, {
688
+ item: x.item,
689
+ isActive: x.item.id === o,
687
690
  searchQuery: s,
688
691
  onSelectConversation: c,
689
692
  getActions: l,
690
- actionsLabel: u,
691
- itemTitleClassName: d?.itemTitleClassName,
692
- itemIconBadgeClassName: d?.itemIconBadgeClassName,
693
- rowGroupKey: b.groupKey,
693
+ onActionMenuOpen: u,
694
+ actionsLabel: d,
695
+ itemTitleClassName: f?.itemTitleClassName,
696
+ itemIconBadgeClassName: f?.itemIconBadgeClassName,
697
+ rowGroupKey: x.groupKey,
694
698
  rows: n,
695
- draggingId: f,
696
- dragOverId: p,
697
- allowedDropGroups: m,
698
- onDragStart: h,
699
- onDragEnd: g,
700
- onDragOver: _,
701
- onDragLeave: v,
702
- onDrop: y
699
+ draggingId: p,
700
+ dragOverId: m,
701
+ allowedDropGroups: h,
702
+ onDragStart: g,
703
+ onDragEnd: _,
704
+ onDragOver: v,
705
+ onDragLeave: y,
706
+ onDrop: b
703
707
  })
704
708
  });
705
- }, we = (e, t) => t === J.All ? !0 : e.source === t, Te = (e, t) => t ? e.title.toLowerCase().includes(t.toLowerCase()) : !0, Ee = new Set([
706
- J.Pinned,
707
- J.MyChats,
708
- J.Shared,
709
- J.Organization
710
- ]), Z = b(({ conversations: e, isLoading: t, isOpen: l, onSelectConversation: u, activeConversationId: d, labels: f, onNewChat: p, styles: m, className: g, getActions: _, onToggle: v, headerActions: y, onMoveConversation: b, activeFilter: w, onActiveFilterChange: T }) => {
711
- let { colors: j, typography: M } = m ?? {}, { title: N, emptyLabel: P, noResultsLabel: F, loadingLabel: I = "Loading conversations", newChatLabel: ee, searchPlaceholder: te, searchClearLabel: L, filterLabels: R, groupLabels: z, actionsLabel: B, closeAriaLabel: V } = f, [H, U] = O(""), [W, ne] = O(J.All);
709
+ }, Ce = (e, t) => t === X.All ? !0 : e.source === t, we = (e, t) => t ? e.title.toLowerCase().includes(t.toLowerCase()) : !0, Te = new Set([
710
+ X.Pinned,
711
+ X.MyChats,
712
+ X.Shared,
713
+ X.Organization
714
+ ]), Ee = b(({ conversations: e, isLoading: t, isOpen: l, onSelectConversation: u, activeConversationId: d, labels: f, onNewChat: p, styles: m, className: g, getActions: _, onActionMenuOpen: v, onToggle: y, headerActions: b, onMoveConversation: w, activeFilter: T, onActiveFilterChange: j }) => {
715
+ let { colors: M, typography: N } = m ?? {}, { title: P, emptyLabel: F, noResultsLabel: I, loadingLabel: ee = "Loading conversations", newChatLabel: L, searchPlaceholder: R, searchClearLabel: z, filterLabels: B, groupLabels: V, actionsLabel: H, closeAriaLabel: U } = f, [W, G] = O(""), [K, q] = O(X.All);
712
716
  S(() => {
713
- w != null && (ne(w), T?.(w));
714
- }, [w]);
715
- let [G, re] = O(() => Ee), [ie, ae] = O(5), K = C(), oe = D(null), se = D(null), [ue, fe] = O(null), [he, Y] = O(null), [ge, _e] = O(null), ye = D(null), X = D(null), xe = x(({ height: e }) => {
716
- ae(Math.ceil(e / 36 * 2));
717
- }, []), Se = x((e) => {
718
- re((t) => {
717
+ T != null && (q(T), j?.(T));
718
+ }, [T]);
719
+ let [J, te] = O(() => Te), [ne, re] = O(5), ie = C(), ae = D(null), ce = D(null), [ue, pe] = O(null), [me, he] = O(null), [ge, ve] = O(null), Z = D(null), be = D(null), xe = x(({ height: e }) => {
720
+ re(Math.ceil(e / 36 * 2));
721
+ }, []), Ee = x((e) => {
722
+ te((t) => {
719
723
  let n = new Set(t);
720
724
  return n.has(e) ? n.delete(e) : n.add(e), n;
721
725
  });
722
- }, []), Z = x(() => {
723
- ye.current = null, X.current = null, fe(null), Y(null), _e(null);
724
- }, []), De = x((t, n) => {
725
- let r = me(t, pe(n, t), e);
726
- ye.current = t, X.current = r, fe(t), _e(r);
727
- }, [e]), Oe = x(() => {
728
- Z();
729
- }, [Z]), ke = x((e) => {
730
- Y(e);
731
- }, []), Ae = x(() => {
732
- Y(null);
733
- }, []), je = x((e, t, n) => {
734
- let r = ye.current, i = X.current;
735
- Z(), r != null && r !== e && i?.has(t) && b?.({
726
+ }, []), De = x(() => {
727
+ Z.current = null, be.current = null, pe(null), he(null), ve(null);
728
+ }, []), Oe = x((t, n) => {
729
+ let r = fe(t, de(n, t), e);
730
+ Z.current = t, be.current = r, pe(t), ve(r);
731
+ }, [e]), ke = x(() => {
732
+ De();
733
+ }, [De]), Ae = x((e) => {
734
+ he(e);
735
+ }, []), je = x(() => {
736
+ he(null);
737
+ }, []), Me = x((e, t, n) => {
738
+ let r = Z.current, i = be.current;
739
+ De(), r != null && r !== e && i?.has(t) && w?.({
736
740
  draggedId: r,
737
741
  targetGroupKey: t,
738
742
  afterId: n
739
743
  });
740
- }, [Z, b]), Me = n({
741
- "--cp-bg": j?.background,
742
- "--sb-border": j?.border,
743
- "--cp-item-hover": j?.itemHover,
744
- "--cp-item-active": j?.itemActive,
745
- "--cp-text": j?.text,
746
- "--cp-text-secondary": j?.textSecondary,
747
- "--cp-new-chat-hover": j?.newChatHoverBackground,
748
- "--cp-new-chat-active": j?.newChatActiveBackground,
749
- "--cp-new-chat-bg": j?.newChatBackground,
750
- "--cp-new-chat-text": j?.newChatText,
751
- "--cp-new-chat-shadow-blue": j?.newChatShadowBlue,
752
- "--cp-new-chat-shadow-blue-hover": j?.newChatShadowBlueHover,
753
- "--cp-new-chat-shadow-blue-active": j?.newChatShadowBlueActive,
754
- "--cp-new-chat-shadow-purple": j?.newChatShadowPurple,
755
- "--cp-new-chat-shadow-purple-hover": j?.newChatShadowPurpleHover,
756
- "--cp-new-chat-shadow-purple-active": j?.newChatShadowPurpleActive,
757
- "--cp-drop-zone-ring": j?.dropZoneRing,
758
- "--cp-trigger-bg": j?.triggerBackground,
759
- "--cp-trigger-icon": j?.triggerIcon,
760
- "--cp-trigger-icon-idle": j?.triggerIconIdle,
761
- "--cp-skeleton-color": j?.skeletonColor
762
- }), Q = E(() => e.filter((e) => we(e, W) && Te(e, H)), [
744
+ }, [De, w]), Ne = n({
745
+ "--cp-bg": M?.background,
746
+ "--sb-border": M?.border,
747
+ "--cp-item-hover": M?.itemHover,
748
+ "--cp-item-active": M?.itemActive,
749
+ "--cp-text": M?.text,
750
+ "--cp-text-secondary": M?.textSecondary,
751
+ "--cp-new-chat-hover": M?.newChatHoverBackground,
752
+ "--cp-new-chat-active": M?.newChatActiveBackground,
753
+ "--cp-new-chat-bg": M?.newChatBackground,
754
+ "--cp-new-chat-text": M?.newChatText,
755
+ "--cp-new-chat-shadow-blue": M?.newChatShadowBlue,
756
+ "--cp-new-chat-shadow-blue-hover": M?.newChatShadowBlueHover,
757
+ "--cp-new-chat-shadow-blue-active": M?.newChatShadowBlueActive,
758
+ "--cp-new-chat-shadow-purple": M?.newChatShadowPurple,
759
+ "--cp-new-chat-shadow-purple-hover": M?.newChatShadowPurpleHover,
760
+ "--cp-new-chat-shadow-purple-active": M?.newChatShadowPurpleActive,
761
+ "--cp-drop-zone-ring": M?.dropZoneRing,
762
+ "--cp-trigger-bg": M?.triggerBackground,
763
+ "--cp-trigger-icon": M?.triggerIcon,
764
+ "--cp-trigger-icon-idle": M?.triggerIconIdle,
765
+ "--cp-skeleton-color": M?.skeletonColor
766
+ }), Q = E(() => e.filter((e) => Ce(e, K) && we(e, W)), [
763
767
  e,
764
- W,
765
- H
766
- ]), Ne = E(() => Q.filter((e) => e.isPinned), [Q]), Pe = E(() => Q.filter((e) => !e.isPinned && e.source !== J.Shared && e.source !== J.Organization), [Q]), Fe = E(() => Q.filter((e) => !e.isPinned && e.source === J.Shared), [Q]), Ie = E(() => Q.filter((e) => !e.isPinned && e.source === J.Organization), [Q]), Le = E(() => [
767
- {
768
- key: J.Pinned,
769
- label: z?.pinned ?? "Pinned",
770
- items: Ne
771
- },
768
+ K,
769
+ W
770
+ ]), Pe = E(() => Q.filter((e) => e.isPinned), [Q]), Fe = E(() => Q.filter((e) => !e.isPinned && e.source !== X.Shared && e.source !== X.Organization), [Q]), Ie = E(() => Q.filter((e) => !e.isPinned && e.source === X.Shared), [Q]), Le = E(() => Q.filter((e) => !e.isPinned && e.source === X.Organization), [Q]), Re = E(() => [
772
771
  {
773
- key: J.MyChats,
774
- label: z?.myChats ?? "My chats",
772
+ key: X.Pinned,
773
+ label: V?.pinned ?? "Pinned",
775
774
  items: Pe
776
775
  },
777
776
  {
778
- key: J.Shared,
779
- label: z?.shared ?? "Shared",
777
+ key: X.MyChats,
778
+ label: V?.myChats ?? "My chats",
780
779
  items: Fe
781
780
  },
782
781
  {
783
- key: J.Organization,
784
- label: z?.organization ?? "Organization",
782
+ key: X.Shared,
783
+ label: V?.shared ?? "Shared",
785
784
  items: Ie
785
+ },
786
+ {
787
+ key: X.Organization,
788
+ label: V?.organization ?? "Organization",
789
+ items: Le
786
790
  }
787
791
  ], [
788
- z,
789
- Ne,
792
+ V,
790
793
  Pe,
791
794
  Fe,
792
- Ie
795
+ Ie,
796
+ Le
793
797
  ]), $ = E(() => {
794
798
  let e = [];
795
- for (let t of Le) if (t.items.length !== 0 && (e.push({
796
- kind: q.Header,
799
+ for (let t of Re) if (t.items.length !== 0 && (e.push({
800
+ kind: Y.Header,
797
801
  groupKey: t.key,
798
802
  label: t.label
799
- }), G.has(t.key))) for (let n of t.items) e.push({
800
- kind: q.Item,
803
+ }), J.has(t.key))) for (let n of t.items) e.push({
804
+ kind: Y.Item,
801
805
  item: n,
802
806
  groupKey: t.key
803
807
  });
804
808
  return e;
805
- }, [Le, G]);
809
+ }, [Re, J]);
806
810
  S(() => {
807
811
  if (!d) return;
808
- let e = Le.find((e) => e.items.some((e) => e.id === d))?.key;
809
- if (e && !G.has(e)) {
810
- re((t) => new Set(t).add(e));
812
+ let e = Re.find((e) => e.items.some((e) => e.id === d))?.key;
813
+ if (e && !J.has(e)) {
814
+ te((t) => new Set(t).add(e));
811
815
  return;
812
816
  }
813
- if (se.current === d) return;
814
- let t = $.findIndex((e) => e.kind === q.Item && e.item.id === d);
815
- t >= 0 && (oe.current?.scrollToRow({
817
+ if (ce.current === d) return;
818
+ let t = $.findIndex((e) => e.kind === Y.Item && e.item.id === d);
819
+ t >= 0 && (ae.current?.scrollToRow({
816
820
  index: t,
817
821
  align: "smart",
818
822
  behavior: "smooth"
819
- }), se.current = d);
823
+ }), ce.current = d);
820
824
  }, [
821
825
  d,
822
- Le,
823
- G,
826
+ Re,
827
+ J,
824
828
  $
825
829
  ]);
826
- let Re = E(() => ({
830
+ let ze = E(() => ({
827
831
  rows: $,
828
- expandedGroups: G,
829
- onToggleGroup: Se,
830
- listId: K,
832
+ expandedGroups: J,
833
+ onToggleGroup: Ee,
834
+ listId: ie,
831
835
  activeConversationId: d,
832
- searchQuery: H,
836
+ searchQuery: W,
833
837
  onSelectConversation: u,
834
838
  getActions: _,
835
- actionsLabel: B,
839
+ onActionMenuOpen: v,
840
+ actionsLabel: H,
836
841
  styles: {
837
- groupHeaderClassName: M?.groupHeaderClassName,
838
- itemTitleClassName: M?.itemTitleClassName,
842
+ groupHeaderClassName: N?.groupHeaderClassName,
843
+ itemTitleClassName: N?.itemTitleClassName,
839
844
  itemIconBadgeClassName: m?.itemIconBadgeClassName
840
845
  },
841
846
  draggingId: ue,
842
- dragOverId: he,
847
+ dragOverId: me,
843
848
  allowedDropGroups: ge,
844
- onDragStart: (e) => De(e, $),
845
- onDragEnd: Oe,
846
- onDragOver: ke,
847
- onDragLeave: Ae,
848
- onDrop: je
849
+ onDragStart: (e) => Oe(e, $),
850
+ onDragEnd: ke,
851
+ onDragOver: Ae,
852
+ onDragLeave: je,
853
+ onDrop: Me
849
854
  }), [
850
855
  $,
851
- G,
852
- Se,
853
- K,
856
+ J,
857
+ Ee,
858
+ ie,
854
859
  d,
855
- H,
860
+ W,
856
861
  u,
857
862
  _,
858
- B,
859
- M?.groupHeaderClassName,
860
- M?.itemTitleClassName,
863
+ v,
864
+ H,
865
+ N?.groupHeaderClassName,
866
+ N?.itemTitleClassName,
861
867
  m?.itemIconBadgeClassName,
862
868
  ue,
863
- he,
869
+ me,
864
870
  ge,
865
- De,
866
871
  Oe,
867
872
  ke,
868
873
  Ae,
869
- je
870
- ]), ze = e.length === 0, Be = e.length > 0 && Q.length === 0;
874
+ je,
875
+ Me
876
+ ]), Be = e.length === 0, Ve = e.length > 0 && Q.length === 0;
871
877
  return /* @__PURE__ */ A(c, {
872
878
  isOpen: l,
873
879
  orientation: s.Left,
874
- title: N,
880
+ title: P,
875
881
  labels: {
876
- ariaLabel: N,
877
- closeLabel: V
882
+ ariaLabel: P,
883
+ closeLabel: U
878
884
  },
879
- onClose: v,
885
+ onClose: y,
880
886
  styles: {
881
887
  colors: {
882
- background: j?.background,
883
- border: j?.border
888
+ background: M?.background,
889
+ border: M?.border
884
890
  },
885
- typography: { fontClassName: M?.fontClassName },
891
+ typography: { fontClassName: N?.fontClassName },
886
892
  bodyClassName: "flex flex-col overflow-hidden p-0 gap-3",
887
- cssVars: Me,
888
- titleClassName: M?.fontClassName,
893
+ cssVars: Ne,
894
+ titleClassName: N?.fontClassName,
889
895
  headerClassName: "h-[64px]",
890
896
  className: r(l ? "w-[325px] border-s border-e mobile:w-full" : "w-0", g)
891
897
  },
892
- rightActions: y,
898
+ rightActions: b,
893
899
  children: [
894
- /* @__PURE__ */ k(be, {
895
- label: ee,
900
+ /* @__PURE__ */ k(ye, {
901
+ label: L,
896
902
  onClick: p,
897
- labelClassName: M?.newChatLabelClassName
903
+ labelClassName: N?.newChatLabelClassName
898
904
  }),
899
905
  /* @__PURE__ */ k(o, {
900
- placeholder: te,
901
- value: H,
902
- onChange: U,
903
- clearLabel: L
906
+ placeholder: R,
907
+ value: W,
908
+ onChange: G,
909
+ clearLabel: z
904
910
  }),
905
- /* @__PURE__ */ k(ve, {
906
- activeTab: W,
907
- labels: R,
911
+ /* @__PURE__ */ k(_e, {
912
+ activeTab: K,
913
+ labels: B,
908
914
  onChange: (e) => {
909
- ne(e), T?.(e);
915
+ q(e), j?.(e);
910
916
  },
911
- tabClassName: M?.tabClassName
917
+ tabClassName: N?.tabClassName
912
918
  }),
913
919
  /* @__PURE__ */ k("span", {
914
920
  role: "status",
915
921
  "aria-live": "polite",
916
922
  className: "sr-only",
917
- children: t ? I : ze ? P : Be ? F : ""
923
+ children: t ? ee : Be ? F : Ve ? I : ""
918
924
  }),
919
925
  /* @__PURE__ */ k("div", {
920
926
  className: "flex-1 overflow-hidden px-2 py-1",
@@ -922,26 +928,26 @@ var q = /* @__PURE__ */ function(e) {
922
928
  className: "flex flex-col gap-3 px-2 py-3",
923
929
  children: Array.from({ length: 15 }, (e, t) => /* @__PURE__ */ k(h, {
924
930
  avatar: { size: 24 },
925
- showTitle: { width: le(t) },
931
+ showTitle: { width: se(t) },
926
932
  paragraph: !1,
927
933
  active: !0,
928
934
  color: "var(--bg-layer-4)"
929
935
  }, t))
930
- }) : ze ? /* @__PURE__ */ k(i, { label: P }) : Be ? /* @__PURE__ */ k(a, { label: F }) : /* @__PURE__ */ k(ce, {
931
- listRef: oe,
932
- id: K,
936
+ }) : Be ? /* @__PURE__ */ k(i, { label: F }) : Ve ? /* @__PURE__ */ k(a, { label: I }) : /* @__PURE__ */ k(oe, {
937
+ listRef: ae,
938
+ id: ie,
933
939
  role: "list",
934
940
  style: { height: "100%" },
935
- rowComponent: Ce,
941
+ rowComponent: Se,
936
942
  rowCount: $.length,
937
- rowHeight: de,
938
- overscanCount: ie,
943
+ rowHeight: le,
944
+ overscanCount: ne,
939
945
  onResize: xe,
940
- rowProps: Re
946
+ rowProps: ze
941
947
  })
942
948
  })
943
949
  ]
944
950
  });
945
951
  });
946
952
  //#endregion
947
- export { Z as ConversationPanel, J as FilterTab };
953
+ export { Ee as ConversationPanel, X as FilterTab };
@@ -164,6 +164,8 @@ export interface ConversationPanelProps {
164
164
  * When omitted or returns an empty array, no actions trigger is rendered on rows.
165
165
  */
166
166
  getActions?: (item: ConversationItem) => DropdownItem[];
167
+ /** Called when a row action menu opens, exposing its trigger for host-owned focus restoration. */
168
+ onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
167
169
  /**
168
170
  * Called when the mobile sidebar toggle icon in the panel header is clicked.
169
171
  * When provided, the toggle button becomes visible on mobile screens.
@@ -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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"}
@@ -50,6 +50,8 @@ export interface RowRendererData {
50
50
  onSelectConversation: (id: string) => void;
51
51
  /** Builds dropdown actions for a conversation item. */
52
52
  getActions?: (item: ConversationItem) => DropdownItem[];
53
+ /** Called when a row action menu opens. */
54
+ onActionMenuOpen?: (item: ConversationItem, trigger: HTMLButtonElement) => void;
53
55
  /** Accessible label for the actions trigger button. */
54
56
  actionsLabel?: string;
55
57
  /** Typography/class overrides applied to virtual row elements. */
@@ -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,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;;;;;OAKG;IACH,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.0.0-dev.481",
4
+ "version": "1.0.0-dev.484",
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.0.0-dev.481"
21
+ "@epam/ai-dial-kit": "1.0.0-dev.484"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "react": "^19.0.0",
25
25
  "@tabler/icons-react": "^3.0.0",
26
- "@epam/ai-dial-chat-shared": "1.0.0-dev.481",
26
+ "@epam/ai-dial-chat-shared": "1.0.0-dev.484",
27
27
  "@epam/ai-dial-ui-kit": "0.12.0-dev.28",
28
- "@epam/ai-dial-sidebar": "1.0.0-dev.481"
28
+ "@epam/ai-dial-sidebar": "1.0.0-dev.484"
29
29
  },
30
30
  "repository": {
31
31
  "type": "git",