@epam/ai-dial-conversation-input 1.1.0-dev.18 → 1.1.0-dev.182

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 (61) hide show
  1. package/components/AddAttachmentButton/AddAttachmentButton.d.ts +35 -1
  2. package/components/AddAttachmentButton/AddAttachmentButton.d.ts.map +1 -1
  3. package/components/BottomSheet/BottomSheet.d.ts +18 -5
  4. package/components/BottomSheet/BottomSheet.d.ts.map +1 -1
  5. package/components/BottomSheetShell/BottomSheetShell.d.ts +17 -14
  6. package/components/BottomSheetShell/BottomSheetShell.d.ts.map +1 -1
  7. package/components/ChatSettingsBottomSheet/ChatSettingsBottomSheet.d.ts +1 -4
  8. package/components/ChatSettingsBottomSheet/ChatSettingsBottomSheet.d.ts.map +1 -1
  9. package/components/ChatSettingsFields/ChatSettingsFields.d.ts +9 -0
  10. package/components/ChatSettingsFields/ChatSettingsFields.d.ts.map +1 -1
  11. package/components/ChatSettingsModal/ChatSettingsModal.d.ts +8 -0
  12. package/components/ChatSettingsModal/ChatSettingsModal.d.ts.map +1 -1
  13. package/components/ConversationInput/ConversationInput.d.ts +1 -0
  14. package/components/ConversationInput/ConversationInput.d.ts.map +1 -1
  15. package/components/EditMessageInput/EditMessageInput.d.ts +1 -0
  16. package/components/EditMessageInput/EditMessageInput.d.ts.map +1 -1
  17. package/components/Input/Buttons/SendButton.d.ts +1 -2
  18. package/components/Input/Buttons/SendButton.d.ts.map +1 -1
  19. package/components/Input/Buttons/StopButton.d.ts +1 -0
  20. package/components/Input/Buttons/StopButton.d.ts.map +1 -1
  21. package/components/Input/Input.d.ts +1 -0
  22. package/components/Input/Input.d.ts.map +1 -1
  23. package/components/Input/ModelSelectorControl.d.ts +14 -14
  24. package/components/Input/ModelSelectorControl.d.ts.map +1 -1
  25. package/components/ModelSelectorBottomSheet/ModelSelectorBottomSheet.d.ts +22 -6
  26. package/components/ModelSelectorBottomSheet/ModelSelectorBottomSheet.d.ts.map +1 -1
  27. package/components/ModelSelectorSkeleton/ModelSelectorSkeleton.d.ts +4 -0
  28. package/components/ModelSelectorSkeleton/ModelSelectorSkeleton.d.ts.map +1 -1
  29. package/components/SelectedToolsChips/SelectedToolsChips.d.ts +42 -0
  30. package/components/SelectedToolsChips/SelectedToolsChips.d.ts.map +1 -0
  31. package/components/ToolsBottomSheet/ToolsBottomSheet.d.ts +40 -0
  32. package/components/ToolsBottomSheet/ToolsBottomSheet.d.ts.map +1 -0
  33. package/components/VoiceBar/VoiceBar.d.ts +1 -9
  34. package/components/VoiceBar/VoiceBar.d.ts.map +1 -1
  35. package/hooks/useAttachments.d.ts +1 -5
  36. package/hooks/useAttachments.d.ts.map +1 -1
  37. package/hooks/useBottomSheet.d.ts +1 -4
  38. package/hooks/useBottomSheet.d.ts.map +1 -1
  39. package/hooks/useDelayedUnmount.d.ts +3 -12
  40. package/hooks/useDelayedUnmount.d.ts.map +1 -1
  41. package/hooks/useInputHistoryNavigation.d.ts +1 -12
  42. package/hooks/useInputHistoryNavigation.d.ts.map +1 -1
  43. package/hooks/useMessageState.d.ts +1 -4
  44. package/hooks/useMessageState.d.ts.map +1 -1
  45. package/hooks/useModelSelector.d.ts +21 -2
  46. package/hooks/useModelSelector.d.ts.map +1 -1
  47. package/hooks/useVoiceRecorder.d.ts +1 -9
  48. package/hooks/useVoiceRecorder.d.ts.map +1 -1
  49. package/index.css +1 -1
  50. package/index.d.ts +1 -1
  51. package/index.d.ts.map +1 -1
  52. package/index.js +1188 -940
  53. package/models/ConversationInput.d.ts +77 -23
  54. package/models/ConversationInput.d.ts.map +1 -1
  55. package/models/Input.d.ts +73 -23
  56. package/models/Input.d.ts.map +1 -1
  57. package/package.json +4 -5
  58. package/utils/concurrency.d.ts +2 -13
  59. package/utils/concurrency.d.ts.map +1 -1
  60. package/utils/deployment.d.ts +1 -4
  61. package/utils/deployment.d.ts.map +1 -1
package/index.js CHANGED
@@ -1,228 +1,253 @@
1
- import { AttachmentErrorReason as e, AttachmentType as t, DeploymentIcon as n, Highlight as r, RequestStatus as i, ResponseFormat as a, buildCssVars as o, mergeClasses as s, useIsMobile as c } from "@epam/ai-dial-chat-shared";
2
- import { BASE_ICON_SIZE as l, ButtonAppearance as u, ButtonVariant as d, DIAL_ICON_SIZE as f, DialButton as p, DialCloseButton as m, DialDropdown as h, DialDropdownIcon as g, DialErrorText as _, DialGhostIconButton as v, DialInput as y, DialPopup as b, DialPrimaryButton as x, DialRadioGroup as S, DialSearch as C, DialSkeleton as w, DialSkeletonVariant as T, DialSlider as E, DialTag as D, DialTooltip as O, ElementSize as k, PopupSize as A, RadioGroupOrientation as ee } from "@epam/ai-dial-ui-kit";
3
- import { IconArrowLeft as j, IconArrowNarrowRight as te, IconCheck as ne, IconChevronDown as re, IconChevronRight as ie, IconFile as ae, IconMicrophone as oe, IconPaperclip as se, IconPlayerStopFilled as ce, IconPlaystationSquare as le, IconPlus as ue, IconSettings as de, IconX as fe } from "@tabler/icons-react";
4
- import { createPortal as pe } from "react-dom";
5
- import { createElement as me, memo as he, useCallback as M, useEffect as N, useImperativeHandle as P, useLayoutEffect as ge, useMemo as F, useRef as I, useState as L } from "react";
6
- import { Fragment as R, jsx as z, jsxs as B } from "react/jsx-runtime";
7
- import { AttachmentCard as _e, AttachmentGroup as ve, AttachmentTray as V, AttachmentTray as ye, FileDndOverlay as be, MAX_UPLOADS_PER_MINUTE as xe, generateAttachmentId as Se, getAttachmentIcon as Ce, useClipboardPaste as we } from "@epam/ai-dial-attachment-input";
1
+ import { AttachmentErrorReason as e, AttachmentType as t, DeploymentIcon as n, RequestStatus as r, ResponseFormat as i, buildCssVars as a, mergeClasses as o, useIsMobile as s } from "@epam/ai-dial-chat-shared";
2
+ import { BASE_ICON_SIZE as c, Button as l, CloseButton as u, DIAL_ICON_SIZE as d, DialDropdownIcon as f, DialRadioGroup as p, DialSearch as m, DialSlider as h, DialTooltip as g, Dropdown as _, ElementSize as v, ErrorText as y, GhostIconButton as b, Highlight as x, Input as S, NeutralButton as C, Popup as w, PopupSize as T, PrimaryButton as E, PrimaryIconButton as D, RadioGroupOrientation as O, Skeleton as k, SkeletonVariant as A, StaticIconButton as j } from "@epam/ai-dial-ui-kit";
3
+ import { IconArrowLeft as ee, IconArrowNarrowRight as M, IconCheck as N, IconChevronDown as te, IconChevronRight as P, IconFile as ne, IconMicrophone as re, IconPaperclip as ie, IconPlayerStopFilled as F, IconPlaystationSquare as I, IconPlus as ae, IconPrompt as oe, IconSettings as se, IconTool as ce, IconX as le } from "@tabler/icons-react";
4
+ import { createPortal as ue } from "react-dom";
5
+ import { createElement as L, memo as R, useCallback as z, useEffect as B, useImperativeHandle as de, useLayoutEffect as fe, useMemo as V, useRef as H, useState as U } from "react";
6
+ import { Fragment as W, jsx as G, jsxs as K } from "react/jsx-runtime";
7
+ import { AttachmentCard as pe, AttachmentGroup as me, AttachmentTray as he, AttachmentTray as ge, FileDndOverlay as _e, MAX_UPLOADS_PER_MINUTE as ve, generateAttachmentId as ye, getAttachmentIcon as be, useClipboardPaste as xe } from "@epam/ai-dial-attachment-input";
8
8
  //#region src/hooks/useBottomSheet.ts
9
- var Te = (e, t) => {
10
- N(() => {
9
+ var Se = (e, t) => {
10
+ B(() => {
11
11
  if (!e) return;
12
12
  let n = (e) => {
13
13
  e.key === "Escape" && t();
14
14
  };
15
15
  return window.addEventListener("keydown", n), () => window.removeEventListener("keydown", n);
16
- }, [e, t]), N(() => {
16
+ }, [e, t]), B(() => {
17
17
  if (e) return document.body.style.overflow = "hidden", () => {
18
18
  document.body.style.overflow = "";
19
19
  };
20
20
  }, [e]);
21
- }, Ee = {
22
- backdrop: "_backdrop_3xrn0_9",
23
- sheet: "_sheet_3xrn0_13",
24
- "slide-up": "_slide-up_3xrn0_1",
25
- title: "_title_3xrn0_18",
26
- divider: "_divider_3xrn0_22"
27
- }, H = ({ isOpen: e, title: t, closeLabel: n, onClose: r, onBack: i, backLabel: a, "aria-label": o, style: c, titleClassName: l = "dial-body-semi-text", className: u, children: d }) => (Te(e, r), !e || typeof document > "u" ? null : pe(/* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z("div", {
28
- className: s(Ee.backdrop, "fixed inset-0 z-[55]"),
29
- onPointerDown: r,
30
- "aria-hidden": !0
31
- }), /* @__PURE__ */ B("div", {
32
- role: "dialog",
33
- "aria-modal": !0,
34
- "aria-label": t ?? o,
35
- style: c,
36
- className: s(Ee.sheet, "fixed inset-x-0 bottom-0 z-[60] flex max-h-[85dvh] flex-col", u),
37
- children: [t != null && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ B("div", {
38
- className: "relative flex h-[60px] flex-shrink-0 items-center justify-center px-4",
39
- children: [
40
- i && /* @__PURE__ */ z("div", {
41
- className: "absolute start-4",
42
- children: /* @__PURE__ */ z(v, {
43
- icon: /* @__PURE__ */ z(j, {
44
- size: f.LG,
45
- stroke: 1.5,
46
- className: "rtl:scale-x-[-1]"
47
- }),
48
- "aria-label": a,
49
- onClick: i
50
- })
51
- }),
52
- /* @__PURE__ */ z("span", {
53
- className: s(Ee.title, l),
54
- children: t
55
- }),
56
- /* @__PURE__ */ z("div", {
57
- className: "absolute end-4 m-2",
58
- children: /* @__PURE__ */ z(m, {
59
- ariaLabel: n,
60
- size: f.LG,
61
- onClose: r
21
+ }, Ce = {
22
+ backdrop: "_backdrop_1d50f_9",
23
+ sheet: "_sheet_1d50f_13",
24
+ "slide-up": "_slide-up_1d50f_1",
25
+ title: "_title_1d50f_18",
26
+ divider: "_divider_1d50f_22"
27
+ }, q = ({ isOpen: e, title: t, closeLabel: n, onClose: r, onBack: i, backLabel: s, "aria-label": c, style: l, titleClassName: f = "dial-body-semi-text", className: p, colors: m, children: h }) => {
28
+ if (Se(e, r), !e || typeof document > "u") return null;
29
+ let g = a({
30
+ "--ci-backdrop": m?.backdrop,
31
+ "--ci-sheet-bg": m?.sheetBg,
32
+ "--ci-sheet-text": m?.sheetText,
33
+ "--ci-sheet-divider": m?.divider
34
+ });
35
+ return ue(/* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("div", {
36
+ className: o(Ce.backdrop, "fixed inset-0 z-[55]"),
37
+ style: g,
38
+ onPointerDown: r,
39
+ "aria-hidden": !0
40
+ }), /* @__PURE__ */ K("div", {
41
+ role: "dialog",
42
+ "aria-modal": !0,
43
+ "aria-label": t ?? c,
44
+ style: {
45
+ ...g,
46
+ ...l
47
+ },
48
+ className: o(Ce.sheet, "fixed inset-x-0 bottom-0 z-[60] flex max-h-[85dvh] flex-col rounded-t-lg", p),
49
+ children: [t != null && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ K("div", {
50
+ className: "relative flex h-[60px] flex-shrink-0 items-center justify-center px-4",
51
+ children: [
52
+ i && /* @__PURE__ */ G("div", {
53
+ className: "absolute start-4",
54
+ children: /* @__PURE__ */ G(b, {
55
+ icon: /* @__PURE__ */ G(ee, {
56
+ size: d.LG,
57
+ stroke: 1.5,
58
+ className: "rtl:scale-x-[-1]"
59
+ }),
60
+ "aria-label": s,
61
+ onClick: i
62
+ })
63
+ }),
64
+ /* @__PURE__ */ G("span", {
65
+ className: o(Ce.title, f),
66
+ children: t
67
+ }),
68
+ /* @__PURE__ */ G("div", {
69
+ className: "absolute end-4 m-2",
70
+ children: /* @__PURE__ */ G(u, {
71
+ ariaLabel: n,
72
+ onClose: r,
73
+ size: v.Standard
74
+ })
62
75
  })
63
- })
64
- ]
65
- }), /* @__PURE__ */ z("div", { className: "h-px flex-shrink-0" })] }), /* @__PURE__ */ z("div", {
66
- className: "overflow-y-auto",
67
- children: d
68
- })]
69
- })] }), document.body)), De = async (e, t, n) => {
76
+ ]
77
+ }), /* @__PURE__ */ G("div", { className: o(Ce.divider, "h-px flex-shrink-0") })] }), /* @__PURE__ */ G("div", {
78
+ className: "overflow-y-auto",
79
+ children: h
80
+ })]
81
+ })] }), document.body);
82
+ }, we = async (e, t, n) => {
70
83
  let r = 6e4 / t, i = [];
71
84
  for (let t = 0; t < e.length; t++) t > 0 && await new Promise((e) => setTimeout(e, r)), i.push(n(e[t]));
72
85
  await Promise.allSettled(i);
73
- }, Oe = ({ initialAttachments: n, onUploadAttachment: r, onAttachmentsChange: a, validateAttachment: o, pendingDropFiles: s, onDropFilesConsumed: c, pendingAttachments: l, onPendingAttachmentsConsumed: u, onExpandPastedText: d, maximumAttachmentsAmount: f, baseAttachmentsAmount: p = 0, onAttachmentsLimitExceeded: m }) => {
74
- let [h, g] = L(n), _ = I(h);
75
- N(() => {
86
+ }, Te = ({ initialAttachments: n, onUploadAttachment: i, onAttachmentsChange: a, validateAttachment: o, pendingDropFiles: s, onDropFilesConsumed: c, pendingAttachments: l, onPendingAttachmentsConsumed: u, onExpandPastedText: d, maximumAttachmentsAmount: f, baseAttachmentsAmount: p = 0, onAttachmentsLimitExceeded: m }) => {
87
+ let [h, g] = U(n), _ = H(h);
88
+ B(() => {
76
89
  _.current = h;
77
- }, [h]), N(() => () => {
90
+ }, [h]), B(() => () => {
78
91
  _.current.forEach((e) => {
79
92
  e.previewUrl && URL.revokeObjectURL(e.previewUrl), e.playUrl && URL.revokeObjectURL(e.playUrl);
80
93
  });
81
94
  }, []);
82
- let v = M((e) => e.map((e) => {
83
- let n = e.type.startsWith("image/"), r = e.type.startsWith("audio/"), a = n ? URL.createObjectURL(e) : void 0, o = r ? URL.createObjectURL(e) : void 0;
95
+ let v = z((e) => e.map((e) => {
96
+ let n = e.type.startsWith("image/"), i = e.type.startsWith("audio/"), a = n ? URL.createObjectURL(e) : void 0, o = i ? URL.createObjectURL(e) : void 0;
84
97
  return {
85
- id: Se(),
98
+ id: ye(),
86
99
  name: e.name,
87
100
  contentType: e.type,
88
101
  file: e,
89
- type: n ? t.Image : r ? t.Audio : t.File,
90
- status: i.Idle,
102
+ type: n ? t.Image : i ? t.Audio : t.File,
103
+ status: r.Idle,
91
104
  previewUrl: a,
92
105
  playUrl: o
93
106
  };
94
- }), []), y = M((e) => {
107
+ }), []), y = H(a);
108
+ B(() => {
109
+ y.current = a;
110
+ }, [a]);
111
+ let b = H(!0), x = z((e) => {
95
112
  g((t) => {
96
113
  let n = e(t);
97
- return n !== t && a?.(n), n;
114
+ return n === t ? t : n;
98
115
  });
99
- }, [a]), b = M((e) => {
100
- g(e), a?.(e);
101
- }, [a]), x = M(async (t) => {
102
- if (r) {
103
- y((e) => e.map((e) => e.id === t.id ? {
116
+ }, []);
117
+ B(() => {
118
+ if (b.current) {
119
+ b.current = !1;
120
+ return;
121
+ }
122
+ y.current?.(h);
123
+ }, [h]);
124
+ let S = z((e) => {
125
+ g(e);
126
+ }, []), C = z(async (t) => {
127
+ if (i) {
128
+ x((e) => e.map((e) => e.id === t.id ? {
104
129
  ...e,
105
- status: i.Loading
130
+ status: r.Loading
106
131
  } : e));
107
132
  try {
108
- let e = await r(t);
109
- y((n) => n.map((n) => n.id === t.id ? {
133
+ let e = await i(t);
134
+ x((n) => n.map((n) => n.id === t.id ? {
110
135
  ...n,
111
- status: i.Idle,
136
+ status: r.Idle,
112
137
  url: e
113
138
  } : n));
114
139
  } catch (n) {
115
- let r = typeof n == "object" && n && "errorReason" in n && Object.values(e).includes(n.errorReason) ? n.errorReason : void 0;
116
- y((e) => e.map((e) => e.id === t.id ? {
140
+ let i = typeof n == "object" && n && "errorReason" in n && Object.values(e).includes(n.errorReason) ? n.errorReason : void 0;
141
+ x((e) => e.map((e) => e.id === t.id ? {
117
142
  ...e,
118
- status: i.Error,
119
- ...r != null && { errorReason: r }
143
+ status: r.Error,
144
+ ...i != null && { errorReason: i }
120
145
  } : e));
121
146
  }
122
147
  }
123
- }, [r, y]), S = M((e, t = !0) => {
124
- let n = new Set(_.current.map((e) => e.id)), r = e.filter((e) => !n.has(e.id));
125
- if (r.length !== 0) {
148
+ }, [i, x]), w = z((e, t = !0) => {
149
+ let n = new Set(_.current.map((e) => e.id)), i = e.filter((e) => !n.has(e.id));
150
+ if (i.length !== 0) {
126
151
  if (f != null && f > 0 && Number.isFinite(f)) {
127
- let e = p + _.current.length + r.length;
152
+ let e = p + _.current.length + i.length;
128
153
  if (e > f) {
129
- r.forEach((e) => {
130
- e.previewUrl && URL.revokeObjectURL(e.previewUrl);
154
+ i.forEach((e) => {
155
+ e.previewUrl && URL.revokeObjectURL(e.previewUrl), e.playUrl && URL.revokeObjectURL(e.playUrl);
131
156
  }), m?.(e, f);
132
157
  return;
133
158
  }
134
159
  }
135
- if (y((e) => [...e, ...r]), t) {
160
+ if (x((e) => [...e, ...i]), t) {
136
161
  let e = [];
137
- r.forEach((t) => {
162
+ i.forEach((t) => {
138
163
  let n = o?.(t);
139
- n == null ? e.push(t) : y((e) => e.map((e) => e.id === t.id ? {
164
+ n == null ? e.push(t) : x((e) => e.map((e) => e.id === t.id ? {
140
165
  ...e,
141
- status: i.Error,
166
+ status: r.Error,
142
167
  errorReason: n
143
168
  } : e));
144
- }), De(e, xe, x);
169
+ }), we(e, ve, C);
145
170
  }
146
171
  }
147
172
  }, [
148
173
  p,
149
174
  f,
150
175
  m,
151
- y,
152
176
  x,
177
+ C,
153
178
  o
154
179
  ]);
155
- N(() => {
156
- s.length !== 0 && (S(v(s)), c?.());
180
+ B(() => {
181
+ s.length !== 0 && (w(v(s)), c?.());
157
182
  }, [
158
- S,
183
+ w,
159
184
  v,
160
185
  c,
161
186
  s
162
- ]), N(() => {
163
- l.length !== 0 && (S(l, !1), u?.());
187
+ ]), B(() => {
188
+ l.length !== 0 && (w(l, !1), u?.());
164
189
  }, [
165
- S,
190
+ w,
166
191
  u,
167
192
  l
168
- ]), N(() => {
193
+ ]), B(() => {
169
194
  if (!o) return;
170
- let t = !1, n = [], r = _.current.map((r) => {
171
- if (r.status === i.Loading) return r;
172
- let a = o(r);
173
- if (a != null) return r.status === i.Error && r.errorReason === a ? r : (t = !0, {
174
- ...r,
175
- status: i.Error,
195
+ let t = !1, n = [], i = _.current.map((i) => {
196
+ if (i.status === r.Loading) return i;
197
+ let a = o(i);
198
+ if (a != null) return i.status === r.Error && i.errorReason === a ? i : (t = !0, {
199
+ ...i,
200
+ status: r.Error,
176
201
  errorReason: a
177
202
  });
178
- if (r.errorReason === e.UnsupportedType) {
203
+ if (i.errorReason === e.UnsupportedType) {
179
204
  t = !0;
180
205
  let e = {
181
- ...r,
182
- status: i.Idle,
206
+ ...i,
207
+ status: r.Idle,
183
208
  errorReason: void 0
184
209
  };
185
210
  return e.url ?? n.push(e), e;
186
211
  }
187
- return r;
212
+ return i;
188
213
  });
189
- t && y(() => r), n.forEach((e) => void x(e));
214
+ t && x(() => i), n.forEach((e) => void C(e));
190
215
  }, [
191
216
  o,
192
- y,
193
- x
217
+ x,
218
+ C
194
219
  ]);
195
- let C = M((e) => {
196
- y((t) => {
220
+ let T = z((e) => {
221
+ x((t) => {
197
222
  let n = t.find((t) => t.id === e);
198
223
  return n?.previewUrl && URL.revokeObjectURL(n.previewUrl), n?.playUrl && URL.revokeObjectURL(n.playUrl), t.filter((t) => t.id !== e);
199
224
  });
200
- }, [y]);
225
+ }, [x]);
201
226
  return {
202
227
  attachments: h,
203
228
  buildAttachments: v,
204
- addAttachments: S,
205
- resetAttachments: b,
206
- handleRemove: C,
207
- handleRetry: M((e) => {
229
+ addAttachments: w,
230
+ resetAttachments: S,
231
+ handleRemove: T,
232
+ handleRetry: z((e) => {
208
233
  let t = h.find((t) => t.id === e);
209
- t && x(t);
210
- }, [h, x]),
211
- handleExpand: M(async (e) => {
234
+ t && C(t);
235
+ }, [h, C]),
236
+ handleExpand: z(async (e) => {
212
237
  let n = h.find((t) => t.id === e);
213
238
  if (!n || n.type !== t.Pasted) return;
214
239
  let r = await n.file.text();
215
- d?.(r), C(e);
240
+ d?.(r), T(e);
216
241
  }, [
217
242
  h,
218
- C,
243
+ T,
219
244
  d
220
245
  ]),
221
- hasBlockedAttachments: h.some((e) => e.status === i.Loading || e.status === i.Error)
246
+ hasBlockedAttachments: h.some((e) => e.status === r.Loading || e.status === r.Error)
222
247
  };
223
- }, ke = (e, t) => {
224
- let [n, r] = L(e), [i, a] = L(!1), [o, s] = L(0);
225
- return N(() => {
248
+ }, Ee = (e, t) => {
249
+ let [n, r] = U(e), [i, a] = U(!1), [o, s] = U(0);
250
+ return B(() => {
226
251
  if (e) {
227
252
  r(!0), a(!1), s((e) => e + 1);
228
253
  return;
@@ -238,18 +263,18 @@ var Te = (e, t) => {
238
263
  isExiting: i,
239
264
  instanceKey: o
240
265
  };
241
- }, Ae = (e, t) => !e.slice(0, t).includes("\n"), je = (e, t) => !e.slice(t).includes("\n"), Me = (e) => {
242
- let t = I(e);
266
+ }, De = (e, t) => !e.slice(0, t).includes("\n"), Oe = (e, t) => !e.slice(t).includes("\n"), ke = (e) => {
267
+ let t = H(e);
243
268
  t.current = e;
244
- let n = I(-1), r = I(""), i = M((e, i, a) => {
269
+ let n = H(-1), r = H(""), i = z((e, i, a) => {
245
270
  let o = t.current;
246
- return !o || o.length === 0 ? null : e === "up" ? !Ae(i, a) || n.current === 0 ? null : (n.current === -1 ? (r.current = i, n.current = o.length - 1) : --n.current, o[n.current]) : n.current === -1 || !je(i, a) ? null : n.current < o.length - 1 ? (n.current += 1, o[n.current]) : (n.current = -1, r.current);
247
- }, []), a = M(() => {
271
+ return !o || o.length === 0 ? null : e === "up" ? !De(i, a) || n.current === 0 ? null : (n.current === -1 ? (r.current = i, n.current = o.length - 1) : --n.current, o[n.current]) : n.current === -1 || !Oe(i, a) ? null : n.current < o.length - 1 ? (n.current += 1, o[n.current]) : (n.current = -1, r.current);
272
+ }, []), a = z(() => {
248
273
  n.current = -1, r.current = "";
249
- }, []), o = M(() => {
274
+ }, []), o = z(() => {
250
275
  n.current = -1, r.current = "";
251
276
  }, []);
252
- return F(() => ({
277
+ return V(() => ({
253
278
  navigate: i,
254
279
  notifyChange: a,
255
280
  reset: o
@@ -258,13 +283,13 @@ var Te = (e, t) => {
258
283
  a,
259
284
  o
260
285
  ]);
261
- }, Ne = ({ messageProp: e, messageRevision: t }) => {
262
- let [n, r] = L(e), i = I(null), a = I(0), [o, s] = L(!1);
263
- return N(() => {
286
+ }, Ae = ({ messageProp: e, messageRevision: t }) => {
287
+ let [n, r] = U(e), i = H(null), a = H(0), [o, s] = U(!1);
288
+ return B(() => {
264
289
  r(e);
265
- }, [e, t]), N(() => {
290
+ }, [e, t]), B(() => {
266
291
  i.current && (a.current = i.current.offsetHeight);
267
- }, []), ge(() => {
292
+ }, []), fe(() => {
268
293
  if (!i.current || a.current === 0) return;
269
294
  let e = i.current.offsetHeight > a.current;
270
295
  s((t) => e ? !0 : n === "" ? !1 : t);
@@ -274,157 +299,106 @@ var Te = (e, t) => {
274
299
  textareaRef: i,
275
300
  isMultiLine: o
276
301
  };
277
- }, Pe = /* @__PURE__ */ function(e) {
302
+ }, je = /* @__PURE__ */ function(e) {
278
303
  return e.Idle = "idle", e.Recording = "recording", e.Error = "error", e;
279
- }({}), Fe = [
304
+ }({}), Me = [
280
305
  "audio/webm;codecs=opus",
281
306
  "audio/ogg;codecs=opus",
282
307
  "audio/webm"
283
- ], Ie = () => Fe.find((e) => MediaRecorder.isTypeSupported(e)) ?? "", Le = ({ onAttachAudio: e }) => {
284
- let [t, n] = L("idle"), [r, i] = L(null), [a, o] = L(0), s = I(null), c = I(null), l = I(null), u = I(null), d = I([]), f = I(""), p = I(null), m = I(e);
285
- m.current = e;
286
- let h = M(() => {
287
- p.current != null && (clearInterval(p.current), p.current = null);
288
- }, []), g = M(() => {
289
- h(), s.current &&= (s.current.getTracks().forEach((e) => e.stop()), null), c.current &&= (c.current.close(), null), l.current = null, u.current = null;
290
- }, [h]), _ = M(() => {
308
+ ], Ne = () => Me.find((e) => MediaRecorder.isTypeSupported(e)) ?? "", Pe = ({ onAttachAudio: e }) => {
309
+ let [t, n] = U("idle"), [r, i] = U(null), a = H(null), o = H(null), s = H(null), c = H(null), l = H([]), u = H(""), d = H(e);
310
+ d.current = e;
311
+ let f = z(() => {
312
+ a.current &&= (a.current.getTracks().forEach((e) => e.stop()), null), o.current &&= (o.current.close(), null), s.current = null, c.current = null;
313
+ }, []), p = z(() => {
291
314
  (async () => {
292
315
  try {
293
316
  let e = await navigator.mediaDevices.getUserMedia({ audio: !0 });
294
- s.current = e;
317
+ a.current = e;
295
318
  let t = new AudioContext();
296
- c.current = t;
319
+ o.current = t;
297
320
  let r = t.createAnalyser();
298
- r.fftSize = 256, l.current = r, t.createMediaStreamSource(e).connect(r);
299
- let i = Ie();
300
- f.current = i, d.current = [];
301
- let a = new MediaRecorder(e, i ? { mimeType: i } : void 0);
302
- u.current = a, a.ondataavailable = (e) => {
303
- e.data.size > 0 && d.current.push(e.data);
304
- }, a.start(), n("recording"), p.current = setInterval(() => {
305
- o((e) => e + 1);
306
- }, 1e3);
321
+ r.fftSize = 256, s.current = r, t.createMediaStreamSource(e).connect(r);
322
+ let i = Ne();
323
+ u.current = i, l.current = [];
324
+ let d = new MediaRecorder(e, i ? { mimeType: i } : void 0);
325
+ c.current = d, d.ondataavailable = (e) => {
326
+ e.data.size > 0 && l.current.push(e.data);
327
+ }, d.start(), n("recording");
307
328
  } catch (e) {
308
329
  i(e instanceof Error ? e.message : "Microphone access denied"), n("error");
309
330
  }
310
331
  })();
311
- }, []), v = M(() => {
312
- let e = u.current;
313
- !e || e.state !== "recording" || (h(), e.onstop = () => {
314
- let e = f.current || "audio/webm", t = new Blob(d.current, { type: e }), r = e.split(";")[0], a = r.split("/")[1] ?? "webm", s = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, -1), c = new File([t], `voice-${s}.${a}`, { type: r });
315
- m.current(c), g(), o(0), i(null), n("idle");
332
+ }, []), m = z(() => {
333
+ let e = c.current;
334
+ !e || e.state !== "recording" || (e.onstop = () => {
335
+ let e = u.current || "audio/webm", t = new Blob(l.current, { type: e }), r = e.split(";")[0], a = r.split("/")[1] ?? "webm", o = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, -1), s = new File([t], `voice-${o}.${a}`, { type: r });
336
+ d.current(s), f(), i(null), n("idle");
316
337
  }, e.stop());
317
- }, [h, g]), y = M(() => {
318
- let e = u.current;
319
- e && e.state === "recording" && (e.ondataavailable = null, e.onstop = null, e.stop()), g(), o(0), i(null), n("idle");
320
- }, [g]);
321
- return N(() => () => {
322
- g();
323
- }, [g]), {
338
+ }, [f]), h = z(() => {
339
+ let e = c.current;
340
+ e && e.state === "recording" && (e.ondataavailable = null, e.onstop = null, e.stop()), f(), i(null), n("idle");
341
+ }, [f]);
342
+ return B(() => () => {
343
+ f();
344
+ }, [f]), {
324
345
  state: t,
325
- analyserNodeRef: l,
326
- elapsedSeconds: a,
346
+ analyserNodeRef: s,
327
347
  errorMessage: r,
328
- startRecording: _,
329
- stopRecording: v,
330
- discardRecording: y
348
+ startRecording: p,
349
+ stopRecording: m,
350
+ discardRecording: h
331
351
  };
332
- }, Re = /* @__PURE__ */ function(e) {
352
+ }, Fe = /* @__PURE__ */ function(e) {
333
353
  return e.Enter = "enter", e.MetaEnter = "meta-enter", e;
334
- }({}), ze = {
335
- item: "_item_vou13_1",
336
- itemIcon: "_itemIcon_vou13_11"
337
- }, Be = ({ isOpen: e, title: t, closeLabel: n, onClose: r, style: i, items: a, className: o, titleClassName: c = "dial-body-semi-text", itemLabelClassName: l = "dial-small-text", btnTextClassName: u = "" }) => {
338
- let d = (e) => {
354
+ }({}), Ie = {
355
+ item: "_item_5iycw_1",
356
+ itemIcon: "_itemIcon_5iycw_11"
357
+ }, Le = ({ isOpen: e, title: t, closeLabel: n, onClose: r, style: i, items: s, className: c, titleClassName: u = "dial-body-semi-text", itemLabelClassName: d = "dial-small-text", btnTextClassName: f = "", colors: p }) => {
358
+ let m = (e) => {
339
359
  e(), r();
340
- };
341
- return /* @__PURE__ */ z(H, {
360
+ }, h = a({
361
+ "--ci-sheet-text": p?.itemText,
362
+ "--ci-sheet-item-hover": p?.itemHoverBg,
363
+ "--ci-sheet-item-active": p?.itemActiveBg,
364
+ "--ci-sheet-icon": p?.itemIcon
365
+ });
366
+ return /* @__PURE__ */ G(q, {
342
367
  isOpen: e,
343
368
  title: t,
344
369
  closeLabel: n,
345
370
  onClose: r,
346
371
  style: i,
347
- className: o,
348
- titleClassName: c,
349
- children: /* @__PURE__ */ z("ul", {
372
+ className: c,
373
+ titleClassName: u,
374
+ colors: p?.shell,
375
+ children: /* @__PURE__ */ G("ul", {
350
376
  role: "list",
351
377
  className: "flex flex-col",
352
- children: a.map(({ key: e, label: t, icon: n, iconAfter: r, onClick: i }) => /* @__PURE__ */ z("li", { children: /* @__PURE__ */ z(p, {
378
+ style: h,
379
+ children: s.map(({ key: e, label: t, icon: n, iconAfter: r, onClick: i }) => /* @__PURE__ */ G("li", { children: /* @__PURE__ */ G(l, {
353
380
  type: "button",
354
- className: s(ze.item, "flex w-full items-center gap-3 px-4 py-[10px] text-start"),
355
- iconBefore: /* @__PURE__ */ z("span", {
356
- className: ze.itemIcon,
381
+ className: o(Ie.item, "w-full gap-3 px-4 py-[10px] text-start"),
382
+ iconBefore: /* @__PURE__ */ G("span", {
383
+ className: Ie.itemIcon,
357
384
  children: n
358
385
  }),
359
- iconAfter: r ? /* @__PURE__ */ z("span", {
386
+ iconAfter: r ? /* @__PURE__ */ G("span", {
360
387
  className: "ms-auto",
361
388
  children: r
362
389
  }) : null,
363
- textClassName: u,
364
- label: /* @__PURE__ */ z("span", {
365
- className: l,
390
+ textClassName: f,
391
+ label: /* @__PURE__ */ G("span", {
392
+ className: d,
366
393
  children: t
367
394
  }),
368
- onClick: () => d(i)
395
+ onClick: () => m(i)
369
396
  }) }, e))
370
397
  })
371
398
  });
372
- }, Ve = ({ gradientId: e = "gradient-check-icon" }) => /* @__PURE__ */ B("svg", {
373
- width: f.SM,
374
- height: f.SM,
375
- viewBox: "0 0 24 24",
376
- fill: "none",
377
- "aria-hidden": !0,
378
- children: [/* @__PURE__ */ z("defs", { children: /* @__PURE__ */ B("linearGradient", {
379
- id: e,
380
- x1: "0",
381
- y1: "0",
382
- x2: "24",
383
- y2: "24",
384
- gradientUnits: "userSpaceOnUse",
385
- children: [/* @__PURE__ */ z("stop", {
386
- offset: "0%",
387
- stopColor: "#4b7be6"
388
- }), /* @__PURE__ */ z("stop", {
389
- offset: "100%",
390
- stopColor: "#9355f4"
391
- })]
392
- }) }), /* @__PURE__ */ z("path", {
393
- d: "M5 12l5 5L20 7",
394
- stroke: `url(#${e})`,
395
- strokeWidth: "2",
396
- strokeLinecap: "round",
397
- strokeLinejoin: "round"
398
- })]
399
- }), He = {
400
- tabContainer: "_tabContainer_rzv03_1",
401
- tabActive: "_tabActive_rzv03_13"
402
- };
403
- he(({ tabs: e, activeTabId: t, onTabChange: n, styles: r }) => {
404
- let { tabClassName: i = "dial-tiny-semi-text" } = r?.typography ?? {};
405
- return /* @__PURE__ */ z("div", {
406
- className: "flex flex-nowrap gap-1",
407
- children: e.map((e) => {
408
- let r = t === e.id;
409
- return /* @__PURE__ */ z(D, {
410
- label: e.label,
411
- selected: r,
412
- onClick: () => n(e.id),
413
- "aria-selected": r,
414
- className: s("box-border h-auto shrink-0 justify-center rounded-full p-2 text-center", i, He.tabContainer, r && He.tabActive)
415
- }, e.id);
416
- })
417
- });
418
- });
419
- //#endregion
420
- //#region ../ai-dial-kit/src/components/Button/Buttons.tsx
421
- var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
422
- ...e,
423
- variant: d.Neutral,
424
- appearance: u.Outlined
425
- }), Ue = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, isOpen: o }) => {
426
- let [s, c] = L(t), [l, u] = L(n), [d, f] = L(r), p = I(o);
427
- N(() => {
399
+ }, Re = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, isOpen: o }) => {
400
+ let [s, c] = U(t), [l, u] = U(n), [d, f] = U(r), p = H(o);
401
+ B(() => {
428
402
  o && !p.current && (c(t), u(n), f(r)), p.current = o;
429
403
  }, [
430
404
  o,
@@ -441,7 +415,7 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
441
415
  setResponseFormat: c,
442
416
  setSystemPrompt: u,
443
417
  setTemperature: f,
444
- handleSubmit: M(() => {
418
+ handleSubmit: z(() => {
445
419
  if (!m) return;
446
420
  let t = {};
447
421
  e.responseFormat && s != null && (t.responseFormat = s), e.systemPrompt && (t.systemPrompt = l), e.temperature && (t.temperature = d), i(t), a();
@@ -455,63 +429,67 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
455
429
  a
456
430
  ])
457
431
  };
458
- }, We = "!dial-small-semi-text !text-primary gap-1", G = ({ features: e, responseFormat: t, systemPrompt: n, temperature: r, onResponseFormatChange: i, onSystemPromptChange: o, onTemperatureChange: s, responseFormatLabel: c = "Response format", responseFormatHint: l = "Applies to new and existing messages", responseFormatMarkdownLabel: u = "Markdown", responseFormatPlainTextLabel: d = "Plain text", systemPromptLabel: f = "System prompt", systemPromptTooltip: p = "Enter a prompt", temperatureLabel: m = "Temperature", temperatureLabels: h = [
432
+ }, ze = { label: "_label_14i7c_1" }, Be = ({ features: e, responseFormat: t, systemPrompt: n, temperature: r, onResponseFormatChange: s, onSystemPromptChange: c, onTemperatureChange: l, responseFormatLabel: u = "Response format", responseFormatHint: d = "Applies to new and existing messages", responseFormatMarkdownLabel: f = "Markdown", responseFormatPlainTextLabel: m = "Plain text", systemPromptLabel: g = "System prompt", systemPromptTooltip: _ = "Enter a prompt", temperatureLabel: v = "Temperature", temperatureLabels: y = [
459
433
  "Precise",
460
434
  "Neutral",
461
435
  "Creative"
462
- ], temperatureHint: g }) => /* @__PURE__ */ B("div", {
463
- className: "flex flex-col gap-4 px-6 py-3",
464
- children: [
465
- e.responseFormat && /* @__PURE__ */ z(S, {
466
- fieldTitle: c,
467
- labelClassName: We,
468
- elementId: "response-format",
469
- orientation: ee.Column,
470
- activeRadioButton: t ?? a.Markdown,
471
- labelDescription: l,
472
- radioButtons: [{
473
- id: a.Markdown,
474
- name: u
475
- }, {
476
- id: a.PlainText,
477
- name: d
478
- }],
479
- onChange: (e) => i(e)
480
- }),
481
- e.systemPrompt && /* @__PURE__ */ z(y, {
482
- value: n,
483
- placeholder: p,
484
- labelProps: {
485
- className: We,
486
- label: f
487
- },
488
- onChange: (e) => o(e ?? "")
489
- }),
490
- e.temperature && /* @__PURE__ */ z(E, {
491
- labelProps: {
492
- label: m,
493
- className: We,
494
- caption: g
495
- },
496
- value: r,
497
- min: 0,
498
- max: 1,
499
- step: .1,
500
- labels: h,
501
- onChange: s
502
- })
503
- ]
504
- }), Ge = ({ isOpen: e, onBack: t, backLabel: n, onClose: r, closeLabel: i, style: a, features: o, initialResponseFormat: c, initialSystemPrompt: l, initialTemperature: u, onSave: d, title: f = "Chat settings", responseFormatLabel: p, responseFormatHint: m, responseFormatMarkdownLabel: h, responseFormatPlainTextLabel: g, systemPromptLabel: _, systemPromptTooltip: v, temperatureLabel: y, temperatureLabels: b, temperatureHint: x, saveLabel: S = "Apply changes", saveDisabledTooltip: C }) => {
505
- let { responseFormat: w, systemPrompt: T, temperature: E, canSubmit: D, setResponseFormat: k, setSystemPrompt: A, setTemperature: ee, handleSubmit: j } = Ue({
436
+ ], temperatureHint: b, labelClassName: x = "!dial-small-semi-text", colors: C }) => {
437
+ let w = a({ "--csf-label-text": C?.labelText }), T = o(x, ze.label, "gap-1");
438
+ return /* @__PURE__ */ K("div", {
439
+ className: "flex flex-col gap-4 px-6 py-3",
440
+ style: w,
441
+ children: [
442
+ e.responseFormat && /* @__PURE__ */ G(p, {
443
+ fieldTitle: u,
444
+ labelClassName: T,
445
+ elementId: "response-format",
446
+ orientation: O.Column,
447
+ activeRadioButton: t ?? i.Markdown,
448
+ labelDescription: d,
449
+ radioButtons: [{
450
+ id: i.Markdown,
451
+ name: f
452
+ }, {
453
+ id: i.PlainText,
454
+ name: m
455
+ }],
456
+ onChange: (e) => s(e)
457
+ }),
458
+ e.systemPrompt && /* @__PURE__ */ G(S, {
459
+ value: n,
460
+ placeholder: _,
461
+ labelProps: {
462
+ className: T,
463
+ label: g
464
+ },
465
+ onChange: (e) => c(e ?? "")
466
+ }),
467
+ e.temperature && /* @__PURE__ */ G(h, {
468
+ labelProps: {
469
+ label: v,
470
+ className: T,
471
+ caption: b
472
+ },
473
+ value: r,
474
+ min: 0,
475
+ max: 1,
476
+ step: .1,
477
+ labels: y,
478
+ onChange: l
479
+ })
480
+ ]
481
+ });
482
+ }, Ve = ({ isOpen: e, onBack: t, backLabel: n, onClose: r, closeLabel: i, style: a, features: s, initialResponseFormat: c, initialSystemPrompt: l, initialTemperature: u, onSave: d, title: f = "Chat settings", responseFormatLabel: p, responseFormatHint: m, responseFormatMarkdownLabel: h, responseFormatPlainTextLabel: _, systemPromptLabel: v, systemPromptTooltip: y, temperatureLabel: b, temperatureLabels: x, temperatureHint: S, saveLabel: C = "Apply changes", saveDisabledTooltip: w }) => {
483
+ let { responseFormat: T, systemPrompt: D, temperature: O, canSubmit: k, setResponseFormat: A, setSystemPrompt: j, setTemperature: ee, handleSubmit: M } = Re({
506
484
  isOpen: e,
507
- features: o,
485
+ features: s,
508
486
  initialResponseFormat: c,
509
487
  initialSystemPrompt: l,
510
488
  initialTemperature: u,
511
489
  onSave: d,
512
490
  onClose: r
513
491
  });
514
- return /* @__PURE__ */ B(H, {
492
+ return /* @__PURE__ */ K(q, {
515
493
  isOpen: e,
516
494
  title: f,
517
495
  closeLabel: i,
@@ -519,40 +497,40 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
519
497
  onBack: t,
520
498
  backLabel: n,
521
499
  style: a,
522
- children: [/* @__PURE__ */ z(G, {
523
- features: o,
524
- responseFormat: w,
525
- systemPrompt: T,
526
- temperature: E,
527
- onResponseFormatChange: k,
528
- onSystemPromptChange: A,
500
+ children: [/* @__PURE__ */ G(Be, {
501
+ features: s,
502
+ responseFormat: T,
503
+ systemPrompt: D,
504
+ temperature: O,
505
+ onResponseFormatChange: A,
506
+ onSystemPromptChange: j,
529
507
  onTemperatureChange: ee,
530
508
  responseFormatLabel: p,
531
509
  responseFormatHint: m,
532
510
  responseFormatMarkdownLabel: h,
533
- responseFormatPlainTextLabel: g,
534
- systemPromptLabel: _,
535
- systemPromptTooltip: v,
536
- temperatureLabel: y,
537
- temperatureLabels: b,
538
- temperatureHint: x
539
- }), /* @__PURE__ */ z("div", {
540
- className: s("px-6 py-4 mobile:pb-8"),
541
- children: /* @__PURE__ */ z(O, {
542
- tooltip: C,
543
- hideTooltip: D || !C,
511
+ responseFormatPlainTextLabel: _,
512
+ systemPromptLabel: v,
513
+ systemPromptTooltip: y,
514
+ temperatureLabel: b,
515
+ temperatureLabels: x,
516
+ temperatureHint: S
517
+ }), /* @__PURE__ */ G("div", {
518
+ className: o("px-6 py-4 mobile:pb-8"),
519
+ children: /* @__PURE__ */ G(g, {
520
+ tooltip: w,
521
+ hideTooltip: k || !w,
544
522
  triggerClassName: "w-full",
545
- children: /* @__PURE__ */ z(U, {
546
- label: S,
547
- onClick: j,
548
- disabled: !D,
523
+ children: /* @__PURE__ */ G(E, {
524
+ label: C,
525
+ onClick: M,
526
+ disabled: !k,
549
527
  className: "w-full"
550
528
  })
551
529
  })
552
530
  })]
553
531
  });
554
- }, K = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, title: o = "Chat settings", responseFormatLabel: s, responseFormatHint: c, responseFormatMarkdownLabel: l, responseFormatPlainTextLabel: u, systemPromptLabel: d, systemPromptTooltip: f, temperatureLabel: p, temperatureLabels: m, temperatureHint: h, saveLabel: g = "Apply changes", saveDisabledTooltip: _ }) => {
555
- let { responseFormat: v, systemPrompt: y, temperature: x, canSubmit: S, setResponseFormat: C, setSystemPrompt: w, setTemperature: T, handleSubmit: E } = Ue({
532
+ }, He = { modal: "_modal_od073_1" }, Ue = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, title: o = "Chat settings", responseFormatLabel: s, responseFormatHint: c, responseFormatMarkdownLabel: l, responseFormatPlainTextLabel: u, systemPromptLabel: d, systemPromptTooltip: f, temperatureLabel: p, temperatureLabels: m, temperatureHint: h, saveLabel: _ = "Apply changes", saveDisabledTooltip: v, backgroundClassName: y = He.modal }) => {
533
+ let { responseFormat: b, systemPrompt: x, temperature: S, canSubmit: C, setResponseFormat: D, setSystemPrompt: O, setTemperature: k, handleSubmit: A } = Re({
556
534
  features: e,
557
535
  initialResponseFormat: t,
558
536
  initialSystemPrompt: n,
@@ -560,32 +538,32 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
560
538
  onSave: i,
561
539
  onClose: a
562
540
  });
563
- return /* @__PURE__ */ z(b, {
541
+ return /* @__PURE__ */ G(w, {
564
542
  open: !0,
565
543
  header: o,
566
- size: A.Sm,
544
+ size: T.Sm,
567
545
  onClose: a,
568
- className: "!bg-layer-2",
569
- footer: /* @__PURE__ */ z("div", {
546
+ className: y,
547
+ footer: /* @__PURE__ */ G("div", {
570
548
  className: "flex justify-end px-6 py-4",
571
- children: /* @__PURE__ */ z(O, {
572
- tooltip: _,
573
- hideTooltip: S || !_,
574
- children: /* @__PURE__ */ z(U, {
575
- label: g,
576
- onClick: E,
577
- disabled: !S
549
+ children: /* @__PURE__ */ G(g, {
550
+ tooltip: v,
551
+ hideTooltip: C || !v,
552
+ children: /* @__PURE__ */ G(E, {
553
+ label: _,
554
+ onClick: A,
555
+ disabled: !C
578
556
  })
579
557
  })
580
558
  }),
581
- children: /* @__PURE__ */ z(G, {
559
+ children: /* @__PURE__ */ G(Be, {
582
560
  features: e,
583
- responseFormat: v,
584
- systemPrompt: y,
585
- temperature: x,
586
- onResponseFormatChange: C,
587
- onSystemPromptChange: w,
588
- onTemperatureChange: T,
561
+ responseFormat: b,
562
+ systemPrompt: x,
563
+ temperature: S,
564
+ onResponseFormatChange: D,
565
+ onSystemPromptChange: O,
566
+ onTemperatureChange: k,
589
567
  responseFormatLabel: s,
590
568
  responseFormatHint: c,
591
569
  responseFormatMarkdownLabel: l,
@@ -598,157 +576,382 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
598
576
  })
599
577
  });
600
578
  };
601
- he(K);
602
- //#endregion
603
- //#region src/components/AddAttachmentButton/AddAttachmentButton.tsx
604
- var Ke = ({ onAttachClick: e, attachLabel: t, addMenuTitle: n, menuTitle: r, menuCloseLabel: i, style: o, listClassName: u = "cp-dropdown-overlay !w-[240px]", isDisabled: d = !1, chatSettings: p, extraMenuItems: m }) => {
605
- let g = c(), [_, y] = L(!1), [b, x] = L(!1), S = F(() => [
579
+ R(Ue);
580
+ var We = {
581
+ icon: "_icon_1fv6z_1",
582
+ selectedIcon: "_selectedIcon_1fv6z_5"
583
+ }, Ge = ({ isOpen: e, onBack: t, backLabel: n = "Back", onClose: r, closeLabel: i = "Close", style: s, title: u = "Tools", items: d, onToolToggle: f, itemLabelClassName: p = "dial-small-text", colors: m }) => /* @__PURE__ */ G(q, {
584
+ isOpen: e,
585
+ title: u,
586
+ closeLabel: i,
587
+ onClose: r,
588
+ onBack: t,
589
+ backLabel: n,
590
+ style: s,
591
+ children: /* @__PURE__ */ G("ul", {
592
+ role: "menu",
593
+ className: "flex flex-col pb-4",
594
+ style: a({
595
+ "--tbs-icon-text": m?.iconText,
596
+ "--tbs-selected-icon-text": m?.selectedIconText
597
+ }),
598
+ children: d.map((e) => /* @__PURE__ */ G("li", {
599
+ role: "none",
600
+ children: /* @__PURE__ */ G(l, {
601
+ type: "button",
602
+ role: "menuitemcheckbox",
603
+ "aria-checked": e.isSelected,
604
+ className: "w-full gap-3 px-4 py-[10px] text-start",
605
+ iconBefore: /* @__PURE__ */ G("span", {
606
+ className: o("flex items-center", We.icon),
607
+ children: e.icon
608
+ }),
609
+ iconAfter: e.isSelected ? /* @__PURE__ */ G("span", {
610
+ className: o("ms-auto", We.selectedIcon),
611
+ children: /* @__PURE__ */ G(N, {
612
+ size: c,
613
+ "aria-hidden": !0
614
+ })
615
+ }) : null,
616
+ label: /* @__PURE__ */ G("span", {
617
+ className: p,
618
+ children: e.label
619
+ }),
620
+ onClick: () => f(e.id)
621
+ })
622
+ }, e.id))
623
+ })
624
+ }), Ke = {
625
+ selectedToolIcon: "_selectedToolIcon_r268y_1",
626
+ toolIcon: "_toolIcon_r268y_5",
627
+ chevronIcon: "_chevronIcon_r268y_9"
628
+ }, qe = ({ onAttachClick: e, attachLabel: t, addMenuTitle: n, menuTitle: r, menuCloseLabel: l, style: u, listClassName: f = "w-[240px]", isDisabled: p = !1, chatSettings: m, extraMenuItems: h, toolsMenuItems: g = [], onToolToggle: y, toolsMenuTitle: x = "Tools", toolsBackLabel: S = "Back", promptsMenuOverlay: C, promptsMenuTitle: w = "Prompts", promptsBackLabel: T = "Back", colors: E }) => {
629
+ let D = s(), [O, k] = U(!1), [A, j] = U(!1), [ee, M] = U(!1), [te, ne] = U(!1), [re, F] = U(!1), I = V(() => a({
630
+ "--aab-selected-tool-icon": E?.selectedToolIcon,
631
+ "--aab-tool-icon": E?.toolIcon,
632
+ "--aab-chevron-icon": E?.chevronIcon
633
+ }), [
634
+ E?.selectedToolIcon,
635
+ E?.toolIcon,
636
+ E?.chevronIcon
637
+ ]), le = g.length > 0 && y != null, ue = V(() => g.map((e) => ({
638
+ key: e.id,
639
+ label: /* @__PURE__ */ K("span", {
640
+ className: "flex flex-1 items-center gap-2",
641
+ children: [/* @__PURE__ */ G("span", {
642
+ className: "flex-1",
643
+ children: e.label
644
+ }), e.isSelected && /* @__PURE__ */ G(N, {
645
+ size: c,
646
+ style: I,
647
+ className: Ke.selectedToolIcon,
648
+ "aria-hidden": !0
649
+ })]
650
+ }),
651
+ icon: /* @__PURE__ */ G("span", {
652
+ style: I,
653
+ className: o("flex items-center", Ke.toolIcon),
654
+ children: e.icon
655
+ }),
656
+ onClick: () => y?.(e.id)
657
+ })), [
658
+ g,
659
+ y,
660
+ I
661
+ ]), L = V(() => [
606
662
  ...e == null ? [] : [{
607
663
  key: "attach",
608
664
  label: t,
609
- icon: /* @__PURE__ */ z(se, {
610
- size: l,
665
+ icon: /* @__PURE__ */ G(ie, {
666
+ size: c,
611
667
  "aria-hidden": !0
612
668
  }),
613
669
  onClick: e
614
670
  }],
615
- ...m ?? [],
616
- ...p == null ? [] : [{
671
+ ...h ?? [],
672
+ ...le ? [{
673
+ key: "tools",
674
+ label: x,
675
+ icon: /* @__PURE__ */ G(ce, {
676
+ size: c,
677
+ "aria-hidden": !0
678
+ }),
679
+ onClick: D ? () => {
680
+ M(!0), k(!1);
681
+ } : () => void 0,
682
+ ...D ? { iconAfter: /* @__PURE__ */ G(P, {
683
+ size: c,
684
+ stroke: 1.5,
685
+ style: I,
686
+ className: o("rtl:scale-x-[-1]", Ke.chevronIcon),
687
+ "aria-hidden": !0
688
+ }) } : { children: ue }
689
+ }] : [],
690
+ ...C == null ? [] : [{
691
+ key: "prompts",
692
+ label: w,
693
+ icon: /* @__PURE__ */ G(oe, {
694
+ size: c,
695
+ "aria-hidden": !0
696
+ }),
697
+ onClick: D ? () => {
698
+ ne(!0), k(!1);
699
+ } : () => void 0,
700
+ ...D ? { iconAfter: /* @__PURE__ */ G(P, {
701
+ size: c,
702
+ stroke: 1.5,
703
+ style: I,
704
+ className: o("rtl:scale-x-[-1]", Ke.chevronIcon),
705
+ "aria-hidden": !0
706
+ }) } : {
707
+ children: [{
708
+ key: "prompts-panel",
709
+ label: ""
710
+ }],
711
+ renderSubMenu: () => C(() => F(!1))
712
+ }
713
+ }],
714
+ ...m == null ? [] : [{
617
715
  key: "chat-settings",
618
- label: p.menuItemLabel ?? "Chat settings",
619
- icon: /* @__PURE__ */ z(de, {
620
- size: l,
716
+ label: m.menuItemLabel ?? "Chat settings",
717
+ icon: /* @__PURE__ */ G(se, {
718
+ size: c,
621
719
  "aria-hidden": !0
622
720
  }),
623
- iconAfter: g ? /* @__PURE__ */ z(ie, {
624
- size: l,
721
+ iconAfter: D ? /* @__PURE__ */ G(P, {
722
+ size: c,
625
723
  stroke: 1.5,
626
- className: "text-secondary rtl:scale-x-[-1]",
724
+ style: I,
725
+ className: o("rtl:scale-x-[-1]", Ke.chevronIcon),
627
726
  "aria-hidden": !0
628
727
  }) : null,
629
- onClick: () => x(!0)
728
+ onClick: () => j(!0)
630
729
  }]
631
730
  ], [
632
731
  t,
633
732
  e,
634
- p,
635
733
  m,
636
- g
734
+ h,
735
+ D,
736
+ le,
737
+ x,
738
+ ue,
739
+ C,
740
+ w,
741
+ I
637
742
  ]);
638
- return S.length === 0 ? null : /* @__PURE__ */ z(R, { children: g ? /* @__PURE__ */ B(R, { children: [
639
- /* @__PURE__ */ z(v, {
640
- icon: /* @__PURE__ */ z(ue, {
641
- size: f.LG,
743
+ if (L.length === 0) return null;
744
+ let R = /* @__PURE__ */ G(_, {
745
+ matchReferenceWidth: !1,
746
+ placement: "bottom-start",
747
+ listClassName: f,
748
+ items: L,
749
+ open: C == null ? void 0 : re,
750
+ onOpenChange: C == null ? void 0 : F,
751
+ children: /* @__PURE__ */ G(b, {
752
+ icon: /* @__PURE__ */ G(ae, {
753
+ size: d.LG,
642
754
  "aria-hidden": !0
643
755
  }),
644
756
  "aria-label": n,
645
757
  tooltipProps: { tooltip: n },
646
- className: s("size-10 flex-shrink-0", d && "pointer-events-none opacity-50"),
647
- onClick: () => y(!0)
758
+ disabled: p
759
+ })
760
+ });
761
+ return /* @__PURE__ */ G(W, { children: D ? /* @__PURE__ */ K(W, { children: [
762
+ /* @__PURE__ */ G(b, {
763
+ icon: /* @__PURE__ */ G(ae, {
764
+ size: d.LG,
765
+ "aria-hidden": !0
766
+ }),
767
+ "aria-label": n,
768
+ size: v.Large,
769
+ tooltipProps: { tooltip: n },
770
+ disabled: p,
771
+ onClick: () => k(!0)
648
772
  }),
649
- /* @__PURE__ */ z(Be, {
650
- isOpen: _,
773
+ /* @__PURE__ */ G(Le, {
774
+ isOpen: O,
651
775
  title: r,
652
- closeLabel: i,
653
- onClose: () => y(!1),
654
- style: o,
655
- items: S,
776
+ closeLabel: l,
777
+ onClose: () => k(!1),
778
+ style: u,
779
+ items: L,
656
780
  className: "pb-4",
657
781
  btnTextClassName: "flex-1"
658
782
  }),
659
- p != null && /* @__PURE__ */ z(Ge, {
660
- isOpen: b,
783
+ le && /* @__PURE__ */ G(Ge, {
784
+ isOpen: ee,
661
785
  onBack: () => {
662
- x(!1), y(!0);
786
+ M(!1), k(!0);
663
787
  },
664
- backLabel: p.backLabel ?? "Back",
665
- onClose: () => x(!1),
666
- closeLabel: i,
667
- style: o,
668
- features: p.features,
669
- initialResponseFormat: p.responseFormat ?? a.Markdown,
670
- initialSystemPrompt: p.systemPrompt,
671
- initialTemperature: p.temperature,
672
- onSave: p.onSave,
673
- title: p.title,
674
- responseFormatLabel: p.responseFormatLabel,
675
- responseFormatHint: p.responseFormatHint,
676
- responseFormatMarkdownLabel: p.responseFormatMarkdownLabel,
677
- responseFormatPlainTextLabel: p.responseFormatPlainTextLabel,
678
- systemPromptLabel: p.systemPromptLabel,
679
- systemPromptTooltip: p.systemPromptTooltip,
680
- temperatureLabel: p.temperatureLabel,
681
- temperatureLabels: p.temperatureLabels,
682
- temperatureHint: p.temperatureHint,
683
- saveLabel: p.saveLabel,
684
- saveDisabledTooltip: p.saveDisabledTooltip
685
- })
686
- ] }) : /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(h, {
687
- matchReferenceWidth: !1,
688
- placement: "bottom-start",
689
- listClassName: u,
690
- items: S,
691
- children: /* @__PURE__ */ z(v, {
692
- icon: /* @__PURE__ */ z(ue, {
693
- size: f.LG,
694
- "aria-hidden": !0
695
- }),
696
- "aria-label": n,
697
- tooltipProps: { tooltip: n },
698
- className: "size-10 flex-shrink-0",
699
- disabled: d
788
+ backLabel: S,
789
+ onClose: () => M(!1),
790
+ closeLabel: l,
791
+ style: u,
792
+ title: x,
793
+ items: g,
794
+ onToolToggle: y
795
+ }),
796
+ C != null && /* @__PURE__ */ G(q, {
797
+ isOpen: te,
798
+ title: w,
799
+ closeLabel: l,
800
+ onBack: () => {
801
+ ne(!1), k(!0);
802
+ },
803
+ backLabel: T,
804
+ onClose: () => ne(!1),
805
+ style: u,
806
+ children: C(() => ne(!1))
807
+ }),
808
+ m != null && /* @__PURE__ */ G(Ve, {
809
+ isOpen: A,
810
+ onBack: () => {
811
+ j(!1), k(!0);
812
+ },
813
+ backLabel: m.backLabel ?? "Back",
814
+ onClose: () => j(!1),
815
+ closeLabel: l,
816
+ style: u,
817
+ features: m.features,
818
+ initialResponseFormat: m.responseFormat ?? i.Markdown,
819
+ initialSystemPrompt: m.systemPrompt,
820
+ initialTemperature: m.temperature,
821
+ onSave: m.onSave,
822
+ title: m.title,
823
+ responseFormatLabel: m.responseFormatLabel,
824
+ responseFormatHint: m.responseFormatHint,
825
+ responseFormatMarkdownLabel: m.responseFormatMarkdownLabel,
826
+ responseFormatPlainTextLabel: m.responseFormatPlainTextLabel,
827
+ systemPromptLabel: m.systemPromptLabel,
828
+ systemPromptTooltip: m.systemPromptTooltip,
829
+ temperatureLabel: m.temperatureLabel,
830
+ temperatureLabels: m.temperatureLabels,
831
+ temperatureHint: m.temperatureHint,
832
+ saveLabel: m.saveLabel,
833
+ saveDisabledTooltip: m.saveDisabledTooltip
700
834
  })
701
- }), p != null && b && /* @__PURE__ */ z(K, {
702
- features: p.features,
703
- initialResponseFormat: p.responseFormat ?? a.Markdown,
704
- initialSystemPrompt: p.systemPrompt,
705
- initialTemperature: p.temperature,
706
- onSave: p.onSave,
707
- onClose: () => x(!1),
708
- title: p.title,
709
- responseFormatLabel: p.responseFormatLabel,
710
- responseFormatHint: p.responseFormatHint,
711
- responseFormatMarkdownLabel: p.responseFormatMarkdownLabel,
712
- responseFormatPlainTextLabel: p.responseFormatPlainTextLabel,
713
- systemPromptLabel: p.systemPromptLabel,
714
- systemPromptTooltip: p.systemPromptTooltip,
715
- temperatureLabel: p.temperatureLabel,
716
- temperatureLabels: p.temperatureLabels,
717
- temperatureHint: p.temperatureHint,
718
- saveLabel: p.saveLabel,
719
- saveDisabledTooltip: p.saveDisabledTooltip
835
+ ] }) : /* @__PURE__ */ K(W, { children: [R, m != null && A && /* @__PURE__ */ G(Ue, {
836
+ features: m.features,
837
+ initialResponseFormat: m.responseFormat ?? i.Markdown,
838
+ initialSystemPrompt: m.systemPrompt,
839
+ initialTemperature: m.temperature,
840
+ onSave: m.onSave,
841
+ onClose: () => j(!1),
842
+ title: m.title,
843
+ responseFormatLabel: m.responseFormatLabel,
844
+ responseFormatHint: m.responseFormatHint,
845
+ responseFormatMarkdownLabel: m.responseFormatMarkdownLabel,
846
+ responseFormatPlainTextLabel: m.responseFormatPlainTextLabel,
847
+ systemPromptLabel: m.systemPromptLabel,
848
+ systemPromptTooltip: m.systemPromptTooltip,
849
+ temperatureLabel: m.temperatureLabel,
850
+ temperatureLabels: m.temperatureLabels,
851
+ temperatureHint: m.temperatureHint,
852
+ saveLabel: m.saveLabel,
853
+ saveDisabledTooltip: m.saveDisabledTooltip
720
854
  })] }) });
721
- }, q = {
722
- container: "_container_8j81i_1",
723
- containerError: "_containerError_8j81i_14",
724
- waveformCanvas: "_waveformCanvas_8j81i_18",
725
- timer: "_timer_8j81i_22",
726
- stopRecordingIcon: "_stopRecordingIcon_8j81i_28",
727
- recordingDot: "_recordingDot_8j81i_42",
728
- "recording-pulse": "_recording-pulse_8j81i_1"
729
- }, qe = 3, Je = 4, J = 200, Ye = (e) => `${String(Math.floor(e / 60)).padStart(2, "0")}:${String(e % 60).padStart(2, "0")}`, Xe = ({ state: e, analyserNodeRef: t, elapsedSeconds: n, errorMessage: r, onStop: i, onDiscard: a, stopLabel: o = "Stop recording", discardLabel: c = "Discard recording", timerLabel: l = "Recording time", style: u, className: d }) => {
730
- let p = I(null), m = I(new Float32Array(J)), h = I(0), g = I(0), y = e === Pe.Recording, b = e === Pe.Error, x = M((e) => {
855
+ }, J = {
856
+ chip: "_chip_1gu87_1",
857
+ chipIcon: "_chipIcon_1gu87_6",
858
+ chipText: "_chipText_1gu87_10",
859
+ chipClose: "_chipClose_1gu87_14"
860
+ }, Je = (e) => `${e} tool${e === 1 ? "" : "s"}`, Ye = (e) => `Remove ${e}`, Xe = ({ items: e, onToolToggle: t, isMobile: n, countLabel: r = Je, removeLabel: i = Ye, typography: s, colors: l }) => {
861
+ let u = e.filter((e) => e.isSelected);
862
+ if (u.length === 0) return null;
863
+ let d = a({
864
+ "--ci-chip-bg": l?.chipBg,
865
+ "--ci-chip-border": l?.chipBorder,
866
+ "--ci-chip-icon": l?.chipIcon,
867
+ "--ci-chip-text": l?.chipText,
868
+ "--ci-chip-close": l?.chipClose,
869
+ "--ci-chip-close-hover": l?.chipCloseHover
870
+ });
871
+ if (n) {
872
+ let e = u.length === 1, t = e ? u[0].icon : /* @__PURE__ */ G(ce, {
873
+ size: c,
874
+ "aria-hidden": !0
875
+ }), n = e ? u[0].label : r(u.length);
876
+ return /* @__PURE__ */ G("div", {
877
+ className: "flex flex-wrap items-center gap-2",
878
+ style: d,
879
+ children: /* @__PURE__ */ K("div", {
880
+ className: o(J.chip, "flex min-w-0 items-center gap-1.5 rounded-full border px-2 py-1"),
881
+ children: [/* @__PURE__ */ G("span", {
882
+ className: o(J.chipIcon, "shrink-0"),
883
+ "aria-hidden": !0,
884
+ children: t
885
+ }), /* @__PURE__ */ G("span", {
886
+ className: o(J.chipText, s?.fontClassName || "dial-small-paragraph-text", "truncate"),
887
+ children: n
888
+ })]
889
+ })
890
+ });
891
+ }
892
+ return /* @__PURE__ */ G("div", {
893
+ className: "flex flex-wrap items-center gap-2",
894
+ style: d,
895
+ children: u.map((e) => /* @__PURE__ */ K("div", {
896
+ className: o(J.chip, "flex items-center gap-1.5 rounded-full border py-1 pe-1 ps-2"),
897
+ children: [
898
+ /* @__PURE__ */ G("span", {
899
+ className: J.chipIcon,
900
+ "aria-hidden": !0,
901
+ children: e.icon
902
+ }),
903
+ /* @__PURE__ */ G("span", {
904
+ className: o(J.chipText, s?.fontClassName || "dial-small-paragraph-text"),
905
+ children: e.label
906
+ }),
907
+ /* @__PURE__ */ G("button", {
908
+ type: "button",
909
+ onClick: () => t(e.id),
910
+ className: o(J.chipClose, "flex items-center rounded p-0.5 transition-colors"),
911
+ "aria-label": i(e.label),
912
+ children: /* @__PURE__ */ G(le, {
913
+ size: 12,
914
+ "aria-hidden": !0
915
+ })
916
+ })
917
+ ]
918
+ }, e.id))
919
+ });
920
+ }, Y = {
921
+ wrapper: "_wrapper_teqwe_1",
922
+ wrapperDisabled: "_wrapperDisabled_teqwe_8",
923
+ textarea: "_textarea_teqwe_13",
924
+ modelSelectorButton: "_modelSelectorButton_teqwe_24",
925
+ modelSelectorCaret: "_modelSelectorCaret_teqwe_24",
926
+ modelSelectorButtonDisabled: "_modelSelectorButtonDisabled_teqwe_33"
927
+ }, X = {
928
+ wrapperError: "_wrapperError_129ri_1",
929
+ waveformCanvas: "_waveformCanvas_129ri_5",
930
+ recordingDot: "_recordingDot_129ri_19",
931
+ "recording-pulse": "_recording-pulse_129ri_1"
932
+ }, Ze = 3, Qe = 4, $e = 200, et = ({ state: e, analyserNodeRef: t, errorMessage: n, onStop: r, onDiscard: i, stopLabel: a = "Stop recording", discardLabel: s = "Discard recording", style: c, className: l }) => {
933
+ let u = H(null), f = H(new Float32Array($e)), p = H(0), m = H(0), h = e === je.Recording, g = e === je.Error, _ = z((e) => {
731
934
  let t = e.getContext("2d");
732
935
  if (!t) return;
733
936
  e.width = e.clientWidth || 200, e.height = e.clientHeight || 32;
734
937
  let { width: n, height: r } = e;
735
938
  t.clearRect(0, 0, n, r), t.fillStyle = getComputedStyle(e).color;
736
- let i = Math.min(Math.max(1, Math.floor(n / Je)), J - 1), a = h.current, o = g.current;
939
+ let i = Math.min(Math.max(1, Math.floor(n / Qe)), $e - 1), a = p.current, o = m.current;
737
940
  t.save(), t.beginPath(), t.rect(0, 0, n, r), t.clip(), t.translate(-o, 0);
738
941
  for (let e = 0; e <= i; e++) {
739
- let n = ((a - i + e) % J + J) % J, o = m.current[n] ?? 0, s = Math.min(1, o * 6), c = Math.max(3, s * r);
740
- t.fillRect(e * Je, (r - c) / 2, qe, c);
942
+ let n = ((a - i + e) % $e + $e) % $e, o = f.current[n] ?? 0, s = Math.min(1, o * 6), c = Math.max(3, s * r);
943
+ t.fillRect(e * Qe, (r - c) / 2, Ze, c);
741
944
  }
742
945
  t.restore();
743
946
  }, []);
744
- N(() => {
745
- if (!y) return;
746
- let e = p.current;
947
+ B(() => {
948
+ if (!h) return;
949
+ let e = u.current;
747
950
  if (!e) return;
748
- m.current.fill(0), h.current = 0, g.current = 0;
951
+ f.current.fill(0), p.current = 0, m.current = 0;
749
952
  let n, r = () => {
750
- if (g.current += 1, g.current >= Je) {
751
- g.current -= Je;
953
+ if (m.current += 1, m.current >= Qe) {
954
+ m.current -= Qe;
752
955
  let e = t.current;
753
956
  if (e) {
754
957
  let t = new Uint8Array(e.frequencyBinCount);
@@ -758,208 +961,193 @@ var Ke = ({ onAttachClick: e, attachLabel: t, addMenuTitle: n, menuTitle: r, men
758
961
  let r = (t[e] - 128) / 128;
759
962
  n += r * r;
760
963
  }
761
- m.current[h.current % J] = Math.sqrt(n / t.length), h.current++;
964
+ f.current[p.current % $e] = Math.sqrt(n / t.length), p.current++;
762
965
  }
763
966
  }
764
- x(e), n = requestAnimationFrame(r);
967
+ _(e), n = requestAnimationFrame(r);
765
968
  };
766
969
  return n = requestAnimationFrame(r), () => {
767
970
  cancelAnimationFrame(n);
768
971
  };
769
972
  }, [
770
- y,
973
+ h,
771
974
  t,
772
- x
773
- ]), N(() => {
774
- let e = p.current;
975
+ _
976
+ ]), B(() => {
977
+ let e = u.current;
775
978
  if (!e) return;
776
979
  let t = new ResizeObserver(() => {
777
- x(e);
980
+ _(e);
778
981
  });
779
982
  return t.observe(e), () => t.disconnect();
780
- }, [x]);
781
- let S = /* @__PURE__ */ B("div", {
983
+ }, [_]);
984
+ let v = /* @__PURE__ */ K("div", {
782
985
  className: "flex flex-shrink-0 items-center justify-end gap-1",
783
- children: [/* @__PURE__ */ z(v, {
784
- icon: /* @__PURE__ */ z(fe, {
785
- size: f.LG,
986
+ children: [/* @__PURE__ */ G(b, {
987
+ icon: /* @__PURE__ */ G(le, {
988
+ size: d.LG,
786
989
  "aria-hidden": !0
787
990
  }),
788
- "aria-label": c,
789
- className: "size-10 flex-shrink-0",
790
- onClick: a
791
- }), y && /* @__PURE__ */ z(v, {
792
- icon: /* @__PURE__ */ z(ce, {
793
- size: f.LG,
794
- className: q.stopRecordingIcon,
991
+ "aria-label": s,
992
+ onClick: i
993
+ }), h && /* @__PURE__ */ G(D, {
994
+ icon: /* @__PURE__ */ G(F, {
995
+ size: d.LG,
795
996
  "aria-hidden": !0
796
997
  }),
797
- "aria-label": o,
798
- className: "size-10 flex-shrink-0",
799
- onClick: i
998
+ onClick: () => r?.(),
999
+ "aria-label": a
800
1000
  })]
801
1001
  });
802
- return /* @__PURE__ */ B("div", {
803
- className: d,
804
- children: [/* @__PURE__ */ B("div", {
805
- style: u,
806
- className: s(q.container, "flex min-h-[56px] w-full max-w-[748px] flex-col justify-center gap-3 rounded-xl border px-3 desktop:flex-row desktop:items-center desktop:gap-2 desktop:py-2", b && q.containerError),
807
- children: [/* @__PURE__ */ B("div", {
808
- className: "flex min-w-0 flex-1 items-center gap-2",
809
- children: [y && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z("span", {
810
- className: q.recordingDot,
1002
+ return /* @__PURE__ */ K("div", {
1003
+ className: l,
1004
+ children: [/* @__PURE__ */ K("div", {
1005
+ style: c,
1006
+ className: o(Y.wrapper, "flex min-h-[64px] w-full max-w-[748px] flex-col justify-center gap-3 rounded-xl border px-3 shadow-md desktop:flex-row desktop:items-center desktop:gap-2 desktop:py-2", g && X.wrapperError),
1007
+ children: [/* @__PURE__ */ K("div", {
1008
+ className: "flex min-w-0 flex-1 items-center gap-3",
1009
+ children: [h && /* @__PURE__ */ G("span", {
1010
+ className: o(X.recordingDot, "pointer-events-none block size-[8px] rounded-3xl"),
811
1011
  "aria-hidden": !0
812
- }), /* @__PURE__ */ z("span", {
813
- className: s(q.timer, "flex-shrink-0"),
814
- "aria-label": l,
815
- children: Ye(n)
816
- })] }), /* @__PURE__ */ z("canvas", {
817
- ref: p,
1012
+ }), /* @__PURE__ */ G("canvas", {
1013
+ ref: u,
818
1014
  height: 32,
819
- className: s(q.waveformCanvas, "h-8 min-w-0 flex-1 desktop:h-6")
1015
+ className: o(X.waveformCanvas, "h-8 min-w-0 flex-1 desktop:h-6")
820
1016
  })]
821
- }), S]
822
- }), b && r && /* @__PURE__ */ z(_, {
823
- text: r,
1017
+ }), v]
1018
+ }), g && n && /* @__PURE__ */ G(y, {
1019
+ text: n,
824
1020
  className: "mt-1 px-1"
825
1021
  })]
826
1022
  });
827
- }, Y = {
828
- wrapper: "_wrapper_1q2nu_2",
829
- wrapperDisabled: "_wrapperDisabled_1q2nu_15",
830
- textarea: "_textarea_1q2nu_20",
831
- stopIcon: "_stopIcon_1q2nu_34",
832
- modelSelectorButton: "_modelSelectorButton_1q2nu_38",
833
- modelSelectorCaret: "_modelSelectorCaret_1q2nu_38",
834
- modelSelectorButtonDisabled: "_modelSelectorButtonDisabled_1q2nu_44",
835
- sendButton: "_sendButton_1q2nu_55",
836
- sendButtonEnter: "_sendButtonEnter_1q2nu_1",
837
- sendButtonExiting: "_sendButtonExiting_1q2nu_55",
838
- sendButtonExit: "_sendButtonExit_1q2nu_55"
839
- }, Ze = ({ onSend: e, isDisabled: t = !1, ariaLabel: n = "Send message", title: r, isExiting: i = !1 }) => /* @__PURE__ */ z(O, {
840
- tooltip: r,
841
- hideTooltip: !r,
842
- children: /* @__PURE__ */ z("button", {
843
- className: s("flex size-[32px] cursor-pointer items-center justify-center rounded-full disabled:cursor-not-allowed", Y.sendButton, i && Y.sendButtonExiting),
844
- "aria-label": n,
845
- onClick: () => e?.(),
846
- type: "button",
847
- disabled: t,
848
- "aria-hidden": i,
849
- children: /* @__PURE__ */ z(te, {
850
- size: f.LG,
851
- className: "rtl:scale-x-[-1]"
852
- })
853
- })
854
- }), Qe = ({ onStop: e, ariaLabel: t = "Stop streaming" }) => /* @__PURE__ */ z("button", {
855
- className: s("flex cursor-pointer items-center justify-center disabled:cursor-not-allowed"),
856
- "aria-label": t,
1023
+ }, tt = ({ onSend: e, isDisabled: t = !1, ariaLabel: n = "Send message", isExiting: r = !1 }) => /* @__PURE__ */ G(D, {
1024
+ "aria-label": n,
857
1025
  onClick: () => e?.(),
858
- type: "button",
859
- children: /* @__PURE__ */ z(le, {
860
- size: f.LG,
861
- className: Y.stopIcon
1026
+ disabled: t,
1027
+ "aria-hidden": r,
1028
+ icon: /* @__PURE__ */ G(M, {
1029
+ size: d.LG,
1030
+ className: "rtl:scale-x-[-1]"
862
1031
  })
863
- }), $e = ({ size: e = 20 }) => /* @__PURE__ */ z(w, {
864
- variant: T.Circular,
1032
+ }), nt = ({ onStop: e, ariaLabel: t = "Stop streaming" }) => /* @__PURE__ */ G(j, {
1033
+ icon: /* @__PURE__ */ G(I, { size: d.LG }),
1034
+ onClick: () => e?.(),
1035
+ "aria-label": t
1036
+ }), Z = ({ size: e = 20 }) => /* @__PURE__ */ G(k, {
1037
+ variant: A.Circular,
865
1038
  width: e,
866
1039
  height: e,
867
1040
  active: !0
868
- }), et = ({ loadingLabel: e }) => /* @__PURE__ */ B("span", {
1041
+ }), rt = ({ loadingLabel: e }) => /* @__PURE__ */ K("span", {
869
1042
  className: "flex min-w-0 flex-1 items-center",
870
- children: [/* @__PURE__ */ z(w, {
871
- variant: T.Text,
1043
+ children: [/* @__PURE__ */ G(k, {
1044
+ variant: A.Text,
872
1045
  width: "100%",
873
1046
  height: 16,
874
1047
  active: !0
875
- }), e && /* @__PURE__ */ z("span", {
1048
+ }), e && /* @__PURE__ */ G("span", {
876
1049
  className: "sr-only",
877
1050
  children: e
878
1051
  })]
879
- }), tt = ({ loadingLabel: e }) => /* @__PURE__ */ z("div", {
1052
+ }), it = ({ loadingLabel: e }) => /* @__PURE__ */ G("div", {
880
1053
  role: "status",
881
1054
  "aria-label": e,
882
- children: Array.from({ length: 7 }).map((e, t) => /* @__PURE__ */ B("div", {
1055
+ children: Array.from({ length: 7 }).map((e, t) => /* @__PURE__ */ K("div", {
883
1056
  className: "flex h-11 items-center gap-3 px-4",
884
1057
  "aria-hidden": "true",
885
- children: [/* @__PURE__ */ z($e, {}), /* @__PURE__ */ z(et, {})]
1058
+ children: [/* @__PURE__ */ G(Z, {}), /* @__PURE__ */ G(rt, {})]
886
1059
  }, t))
887
- }), nt = (e) => e.displayName ?? e.id, rt = (e, t) => {
1060
+ }), at = (e) => e.displayName ?? e.id, ot = (e, t) => {
888
1061
  let n = t.trim().toLowerCase();
889
- return n ? e.filter((e) => nt(e).toLowerCase().includes(n)) : e;
890
- }, it = (e, t, r, i = 18, a) => /* @__PURE__ */ z(n, {
1062
+ return n ? e.filter((e) => at(e).toLowerCase().includes(n)) : e;
1063
+ }, st = (e, t, r, i = 18, a) => /* @__PURE__ */ G(n, {
891
1064
  src: e,
892
1065
  size: i,
893
1066
  labels: { tooltip: a },
894
1067
  initialsName: r
895
- }), at = ({ deployments: e, selectedDeploymentId: t, onDeploymentChange: n, modelSelectorLabels: i, searchHeaderClassName: a = "bg-layer-0" }) => {
896
- let [o, c] = L(""), l = F(() => e?.find((e) => e.id === t), [e, t]), u = i?.loading !== void 0, d = F(() => u ? /* @__PURE__ */ z($e, { size: f.LG }) : it(l?.iconUrl, l?.type, l?.displayName ?? l?.id ?? "", f.LG), [u, l]), p = l?.displayName ?? l?.id;
1068
+ }), ct = {
1069
+ searchHeader: "_searchHeader_ibyso_1",
1070
+ selectedItem: "_selectedItem_ibyso_5",
1071
+ selectedItemCheck: "_selectedItemCheck_ibyso_9"
1072
+ }, lt = ({ deployments: e, selectedDeploymentId: t, onDeploymentChange: n, modelSelectorLabels: r, searchHeaderClassName: i = ct.searchHeader, selectedItemClassName: s = ct.selectedItem, selectedItemCheckClassName: c = ct.selectedItemCheck, colors: l }) => {
1073
+ let [u, f] = U(""), p = V(() => e?.find((e) => e.id === t), [e, t]), h = r?.loading !== void 0, g = V(() => h ? /* @__PURE__ */ G(Z, { size: d.LG }) : st(p?.iconUrl, p?.type, p?.displayName ?? p?.id ?? "", d.LG), [h, p]), _ = p?.displayName ?? p?.id;
897
1074
  return {
898
- selectorIcon: d,
899
- selectorAriaLabel: p ? `${i?.ariaLabel ?? "Select model"}: ${p}` : i?.ariaLabel ?? "Select model",
900
- selectedLabel: p,
901
- menuItems: F(() => {
902
- if (u) return Array.from({ length: 7 }, (e, t) => ({
1075
+ selectorIcon: g,
1076
+ selectorAriaLabel: _ ? `${r?.ariaLabel ?? "Select model"}: ${_}` : r?.ariaLabel ?? "Select model",
1077
+ selectedLabel: _,
1078
+ menuItems: V(() => {
1079
+ if (h) return Array.from({ length: 7 }, (e, t) => ({
903
1080
  key: `__loading-${t}`,
904
- icon: /* @__PURE__ */ z($e, {}),
905
- label: /* @__PURE__ */ z(et, { loadingLabel: t === 0 ? i?.loading : void 0 }),
1081
+ icon: /* @__PURE__ */ G(Z, {}),
1082
+ label: /* @__PURE__ */ G(rt, { loadingLabel: t === 0 ? r?.loading : void 0 }),
906
1083
  disabled: !0
907
1084
  }));
908
1085
  if (!e || e.length === 0) {
909
- let e = i?.error ?? i?.empty;
1086
+ let e = r?.error ?? r?.empty;
910
1087
  return e ? [{
911
1088
  key: "__state",
912
1089
  label: e,
913
1090
  disabled: !0
914
1091
  }] : [];
915
1092
  }
916
- return rt(e, o).map((e) => {
917
- let i = e.id === t;
1093
+ return ot(e, u).map((e) => {
1094
+ let r = e.id === t;
918
1095
  return {
919
1096
  key: e.id,
920
- label: /* @__PURE__ */ B("span", {
1097
+ label: /* @__PURE__ */ K("span", {
921
1098
  className: "flex w-full items-center justify-between gap-2",
922
- children: [/* @__PURE__ */ z(r, {
923
- text: nt(e),
924
- query: o,
1099
+ style: a({ "--ms-selected-item-check": l?.selectedItemCheck }),
1100
+ children: [/* @__PURE__ */ G(x, {
1101
+ text: at(e),
1102
+ query: u,
925
1103
  maxLines: 1
926
- }), i && /* @__PURE__ */ z(Ve, { gradientId: "ms-check-grad" })]
1104
+ }), r && /* @__PURE__ */ G(N, {
1105
+ size: d.SM,
1106
+ stroke: 2,
1107
+ className: c,
1108
+ "aria-hidden": !0
1109
+ })]
927
1110
  }),
928
- icon: it(e.iconUrl, e.type, e.displayName ?? e.id),
1111
+ icon: st(e.iconUrl, e.type, e.displayName ?? e.id),
929
1112
  onClick: () => n?.(e.id),
930
- className: i ? "bg-accent-primary-alpha" : void 0
1113
+ className: r ? s : void 0
931
1114
  };
932
1115
  });
933
1116
  }, [
934
1117
  e,
1118
+ h,
935
1119
  u,
936
- o,
937
1120
  t,
938
- i,
939
- n
1121
+ r,
1122
+ n,
1123
+ s,
1124
+ c,
1125
+ l?.selectedItemCheck
940
1126
  ]),
941
- menuHeader: F(() => !u && e && e.length > 0 ? /* @__PURE__ */ z("div", {
942
- className: s("sticky top-0 z-10 pb-1 pe-2 pt-2", a),
943
- children: /* @__PURE__ */ z(C, {
944
- value: o,
945
- placeholder: i?.searchPlaceholder ?? "Search",
946
- size: k.Small,
1127
+ menuHeader: V(() => !h && e && e.length > 0 ? /* @__PURE__ */ G("div", {
1128
+ style: a({ "--ms-search-header-bg": l?.searchHeaderBackground }),
1129
+ className: o("sticky top-0 z-10 pb-1 pe-2 pt-2", i),
1130
+ children: /* @__PURE__ */ G(m, {
1131
+ value: u,
1132
+ placeholder: r?.searchPlaceholder ?? "Search",
1133
+ size: v.Small,
947
1134
  wrapperClassName: "border-0",
948
- onChange: c
1135
+ onChange: f
949
1136
  })
950
1137
  }) : void 0, [
951
1138
  e,
1139
+ h,
952
1140
  u,
953
- o,
1141
+ r,
954
1142
  i,
955
- a
1143
+ l?.searchHeaderBackground
956
1144
  ]),
957
1145
  onOpenChange: (e) => {
958
- e || c("");
1146
+ e || f("");
959
1147
  }
960
1148
  };
961
- }, X = typeof window < "u" ? ge : N;
962
- function ot(e) {
1149
+ }, ut = typeof window < "u" ? fe : B;
1150
+ function dt(e) {
963
1151
  if (e !== void 0) switch (typeof e) {
964
1152
  case "number": return e;
965
1153
  case "string":
@@ -967,15 +1155,15 @@ function ot(e) {
967
1155
  break;
968
1156
  }
969
1157
  }
970
- function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
971
- let { styleHeight: s, styleWidth: c } = F(() => ({
972
- styleHeight: ot(o?.height),
973
- styleWidth: ot(o?.width)
974
- }), [o?.height, o?.width]), [l, u] = L({
1158
+ function ft({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
1159
+ let { styleHeight: s, styleWidth: c } = V(() => ({
1160
+ styleHeight: dt(o?.height),
1161
+ styleWidth: dt(o?.width)
1162
+ }), [o?.height, o?.width]), [l, u] = U({
975
1163
  height: t,
976
1164
  width: n
977
1165
  }), d = r || a === "only-height" && s !== void 0 || a === "only-width" && c !== void 0 || s !== void 0 && c !== void 0;
978
- return X(() => {
1166
+ return ut(() => {
979
1167
  if (i === null || d) return;
980
1168
  let t = new ResizeObserver((e) => {
981
1169
  for (let t of e) {
@@ -995,7 +1183,7 @@ function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
995
1183
  i,
996
1184
  s,
997
1185
  c
998
- ]), F(() => ({
1186
+ ]), V(() => ({
999
1187
  height: s ?? l.height,
1000
1188
  width: c ?? l.width
1001
1189
  }), [
@@ -1004,26 +1192,26 @@ function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
1004
1192
  c
1005
1193
  ]);
1006
1194
  }
1007
- function ct(e) {
1008
- let t = I(() => {
1195
+ function pt(e) {
1196
+ let t = H(() => {
1009
1197
  throw Error("Cannot call during render.");
1010
1198
  });
1011
- return X(() => {
1199
+ return ut(() => {
1012
1200
  t.current = e;
1013
- }, [e]), M((e) => t.current?.(e), [t]);
1201
+ }, [e]), z((e) => t.current?.(e), [t]);
1014
1202
  }
1015
- var Z = null;
1016
- function lt(e = !1) {
1017
- if (Z === null || e) {
1203
+ var mt = null;
1204
+ function ht(e = !1) {
1205
+ if (mt === null || e) {
1018
1206
  let e = document.createElement("div"), t = e.style;
1019
1207
  t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
1020
1208
  let n = document.createElement("div"), r = n.style;
1021
- return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? Z = "positive-descending" : (e.scrollLeft = 1, Z = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), Z;
1209
+ return r.width = "100px", r.height = "100px", e.appendChild(n), document.body.appendChild(e), e.scrollLeft > 0 ? mt = "positive-descending" : (e.scrollLeft = 1, mt = e.scrollLeft === 0 ? "negative" : "positive-ascending"), document.body.removeChild(e), mt;
1022
1210
  }
1023
- return Z;
1211
+ return mt;
1024
1212
  }
1025
- function ut({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1026
- if (t === "horizontal" && n) switch (lt()) {
1213
+ function gt({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1214
+ if (t === "horizontal" && n) switch (ht()) {
1027
1215
  case "negative": return -r;
1028
1216
  case "positive-descending":
1029
1217
  if (e) {
@@ -1037,13 +1225,13 @@ function ut({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1037
1225
  function Q(e, t = "Assertion error") {
1038
1226
  if (!e) throw console.error(t), Error(t);
1039
1227
  }
1040
- function $(e, t) {
1228
+ function _t(e, t) {
1041
1229
  if (e === t) return !0;
1042
1230
  if (!!e != !!t || (Q(e !== void 0), Q(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
1043
1231
  for (let n in e) if (!Object.is(t[n], e[n])) return !1;
1044
1232
  return !0;
1045
1233
  }
1046
- function dt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1234
+ function vt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1047
1235
  if (t === 0) return 0;
1048
1236
  if (typeof n == "number") return t * n;
1049
1237
  {
@@ -1051,9 +1239,9 @@ function dt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1051
1239
  return Q(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
1052
1240
  }
1053
1241
  }
1054
- function ft({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
1242
+ function yt({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
1055
1243
  if (n < 0 || n >= r) throw RangeError(`Invalid index specified: ${n}`, { cause: `Index ${n} is not within the range of 0 - ${r - 1}` });
1056
- let s = dt({
1244
+ let s = vt({
1057
1245
  cachedBounds: t,
1058
1246
  itemCount: r,
1059
1247
  itemSize: i
@@ -1065,7 +1253,7 @@ function ft({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, co
1065
1253
  default: return a >= u && a <= l ? a : a < u ? u : l;
1066
1254
  }
1067
1255
  }
1068
- function pt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
1256
+ function bt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
1069
1257
  let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
1070
1258
  for (; u < a;) {
1071
1259
  let n = e.get(u);
@@ -1084,7 +1272,7 @@ function pt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemC
1084
1272
  stopIndexOverscan: l
1085
1273
  };
1086
1274
  }
1087
- function mt({ itemCount: e, itemProps: t, itemSize: n }) {
1275
+ function xt({ itemCount: e, itemProps: t, itemSize: n }) {
1088
1276
  let r = /* @__PURE__ */ new Map();
1089
1277
  return {
1090
1278
  get(i) {
@@ -1121,8 +1309,8 @@ function mt({ itemCount: e, itemProps: t, itemSize: n }) {
1121
1309
  }
1122
1310
  };
1123
1311
  }
1124
- function ht({ itemCount: e, itemProps: t, itemSize: n }) {
1125
- return F(() => mt({
1312
+ function St({ itemCount: e, itemProps: t, itemSize: n }) {
1313
+ return V(() => xt({
1126
1314
  itemCount: e,
1127
1315
  itemProps: t,
1128
1316
  itemSize: n
@@ -1132,7 +1320,7 @@ function ht({ itemCount: e, itemProps: t, itemSize: n }) {
1132
1320
  n
1133
1321
  ]);
1134
1322
  }
1135
- function gt({ containerSize: e, itemSize: t }) {
1323
+ function Ct({ containerSize: e, itemSize: t }) {
1136
1324
  let n;
1137
1325
  switch (typeof t) {
1138
1326
  case "string":
@@ -1144,21 +1332,21 @@ function gt({ containerSize: e, itemSize: t }) {
1144
1332
  }
1145
1333
  return n;
1146
1334
  }
1147
- function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
1148
- let { height: u = n, width: d = n } = st({
1335
+ function wt({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
1336
+ let { height: u = n, width: d = n } = ft({
1149
1337
  defaultHeight: r === "vertical" ? n : void 0,
1150
1338
  defaultWidth: r === "horizontal" ? n : void 0,
1151
1339
  element: e,
1152
1340
  mode: r === "vertical" ? "only-height" : "only-width",
1153
1341
  style: t
1154
- }), f = I({
1342
+ }), f = H({
1155
1343
  height: 0,
1156
1344
  width: 0
1157
- }), p = r === "vertical" ? u : d, m = gt({
1345
+ }), p = r === "vertical" ? u : d, m = Ct({
1158
1346
  containerSize: p,
1159
1347
  itemSize: s
1160
1348
  });
1161
- ge(() => {
1349
+ fe(() => {
1162
1350
  if (typeof c == "function") {
1163
1351
  let e = f.current;
1164
1352
  (e.height !== u || e.width !== d) && (c({
@@ -1171,11 +1359,11 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1171
1359
  c,
1172
1360
  d
1173
1361
  ]);
1174
- let h = ht({
1362
+ let h = St({
1175
1363
  itemCount: a,
1176
1364
  itemProps: o,
1177
1365
  itemSize: m
1178
- }), g = M((e) => h.get(e), [h]), [_, v] = L(() => pt({
1366
+ }), g = z((e) => h.get(e), [h]), [_, v] = U(() => bt({
1179
1367
  cachedBounds: h,
1180
1368
  containerScrollOffset: 0,
1181
1369
  containerSize: p,
@@ -1186,7 +1374,7 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1186
1374
  startIndexOverscan: Math.min(a - 1, _.startIndexOverscan),
1187
1375
  stopIndexVisible: Math.min(a - 1, _.stopIndexVisible),
1188
1376
  stopIndexOverscan: Math.min(a - 1, _.stopIndexOverscan)
1189
- }, C = M(() => dt({
1377
+ }, C = z(() => vt({
1190
1378
  cachedBounds: h,
1191
1379
  itemCount: a,
1192
1380
  itemSize: m
@@ -1194,9 +1382,9 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1194
1382
  h,
1195
1383
  a,
1196
1384
  m
1197
- ]), w = M((t) => pt({
1385
+ ]), w = z((t) => bt({
1198
1386
  cachedBounds: h,
1199
- containerScrollOffset: ut({
1387
+ containerScrollOffset: gt({
1200
1388
  containerElement: e,
1201
1389
  direction: r,
1202
1390
  isRtl: i,
@@ -1214,19 +1402,19 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1214
1402
  a,
1215
1403
  l
1216
1404
  ]);
1217
- return X(() => {
1405
+ return ut(() => {
1218
1406
  v(w((r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0));
1219
1407
  }, [
1220
1408
  e,
1221
1409
  r,
1222
1410
  w
1223
- ]), X(() => {
1411
+ ]), ut(() => {
1224
1412
  if (!e) return;
1225
1413
  let t = () => {
1226
1414
  v((t) => {
1227
- let { scrollLeft: n, scrollTop: o } = e, s = pt({
1415
+ let { scrollLeft: n, scrollTop: o } = e, s = bt({
1228
1416
  cachedBounds: h,
1229
- containerScrollOffset: ut({
1417
+ containerScrollOffset: gt({
1230
1418
  containerElement: e,
1231
1419
  direction: r,
1232
1420
  isRtl: i,
@@ -1236,7 +1424,7 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1236
1424
  itemCount: a,
1237
1425
  overscanCount: l
1238
1426
  });
1239
- return $(s, t) ? t : s;
1427
+ return _t(s, t) ? t : s;
1240
1428
  });
1241
1429
  };
1242
1430
  return e.addEventListener("scroll", t), () => {
@@ -1252,8 +1440,8 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1252
1440
  ]), {
1253
1441
  getCellBounds: g,
1254
1442
  getEstimatedSize: C,
1255
- scrollToIndex: ct(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
1256
- let s = ft({
1443
+ scrollToIndex: pt(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
1444
+ let s = yt({
1257
1445
  align: t,
1258
1446
  cachedBounds: h,
1259
1447
  containerScrollOffset: n,
@@ -1263,14 +1451,14 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1263
1451
  itemSize: m
1264
1452
  });
1265
1453
  if (e) {
1266
- if (s = ut({
1454
+ if (s = gt({
1267
1455
  containerElement: e,
1268
1456
  direction: r,
1269
1457
  isRtl: i,
1270
1458
  scrollOffset: s
1271
1459
  }), typeof e.scrollTo != "function") {
1272
1460
  let e = w(s);
1273
- $(_, e) || v(e);
1461
+ _t(_, e) || v(e);
1274
1462
  }
1275
1463
  return s;
1276
1464
  }
@@ -1281,30 +1469,30 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1281
1469
  stopIndexVisible: x
1282
1470
  };
1283
1471
  }
1284
- function vt(e) {
1285
- return F(() => e, Object.values(e));
1472
+ function $(e) {
1473
+ return V(() => e, Object.values(e));
1286
1474
  }
1287
- function yt(e, t) {
1475
+ function Tt(e, t) {
1288
1476
  let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
1289
- return $(n, a) && $(r, o) && $(i, s);
1477
+ return _t(n, a) && _t(r, o) && _t(i, s);
1290
1478
  }
1291
- function bt(e) {
1479
+ function Et(e) {
1292
1480
  return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
1293
1481
  }
1294
- var xt = "data-react-window-index";
1295
- function St({ 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 }) {
1296
- let m = vt(u), h = F(() => he(s, yt), [s]), [g, _] = L(null), v = bt(l), { getCellBounds: y, getEstimatedSize: b, scrollToIndex: x, startIndexOverscan: S, startIndexVisible: C, stopIndexOverscan: w, stopIndexVisible: T } = _t({
1482
+ var Dt = "data-react-window-index";
1483
+ function Ot({ 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 }) {
1484
+ let m = $(u), h = V(() => R(s, Tt), [s]), [g, _] = U(null), v = Et(l), { getCellBounds: y, getEstimatedSize: b, scrollToIndex: x, startIndexOverscan: S, startIndexVisible: C, stopIndexOverscan: w, stopIndexVisible: T } = wt({
1297
1485
  containerElement: g,
1298
1486
  containerStyle: f,
1299
1487
  defaultContainerSize: n,
1300
1488
  direction: "vertical",
1301
1489
  itemCount: c,
1302
1490
  itemProps: m,
1303
- itemSize: F(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
1491
+ itemSize: V(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
1304
1492
  onResize: i,
1305
1493
  overscanCount: o
1306
1494
  });
1307
- P(r, () => ({
1495
+ de(r, () => ({
1308
1496
  get element() {
1309
1497
  return g;
1310
1498
  },
@@ -1319,12 +1507,12 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1319
1507
  top: r
1320
1508
  });
1321
1509
  }
1322
- }), [g, x]), X(() => {
1510
+ }), [g, x]), ut(() => {
1323
1511
  if (!g) return;
1324
1512
  let e = Array.from(g.children).filter((e, t) => {
1325
1513
  if (e.hasAttribute("aria-hidden")) return !1;
1326
1514
  let n = `${S + t}`;
1327
- return e.setAttribute(xt, n), !0;
1515
+ return e.setAttribute(Dt, n), !0;
1328
1516
  });
1329
1517
  if (v) return l.observeRowElements(e);
1330
1518
  }, [
@@ -1333,7 +1521,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1333
1521
  l,
1334
1522
  S,
1335
1523
  w
1336
- ]), N(() => {
1524
+ ]), B(() => {
1337
1525
  S >= 0 && w >= 0 && a && a({
1338
1526
  startIndex: C,
1339
1527
  stopIndex: T
@@ -1348,11 +1536,11 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1348
1536
  w,
1349
1537
  T
1350
1538
  ]);
1351
- let E = F(() => {
1539
+ let E = V(() => {
1352
1540
  let e = [];
1353
1541
  if (c > 0) for (let t = S; t <= w; t++) {
1354
1542
  let n = y(t);
1355
- e.push(/* @__PURE__ */ me(h, {
1543
+ e.push(/* @__PURE__ */ L(h, {
1356
1544
  ...m,
1357
1545
  ariaAttributes: {
1358
1546
  "aria-posinset": t + 1,
@@ -1379,7 +1567,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1379
1567
  m,
1380
1568
  S,
1381
1569
  w
1382
- ]), D = /* @__PURE__ */ z("div", {
1570
+ ]), D = /* @__PURE__ */ G("div", {
1383
1571
  "aria-hidden": !0,
1384
1572
  style: {
1385
1573
  height: b(),
@@ -1387,7 +1575,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1387
1575
  zIndex: -1
1388
1576
  }
1389
1577
  });
1390
- return me(d, {
1578
+ return L(d, {
1391
1579
  role: "list",
1392
1580
  ...p,
1393
1581
  className: t,
@@ -1401,119 +1589,131 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1401
1589
  }
1402
1590
  }, E, e, D);
1403
1591
  }
1404
- var Ct = {
1405
- divider: "_divider_3wv6u_1",
1406
- item: "_item_3wv6u_5",
1407
- itemIcon: "_itemIcon_3wv6u_15",
1408
- checkIcon: "_checkIcon_3wv6u_19",
1409
- stateLabel: "_stateLabel_3wv6u_23"
1410
- }, wt = 44, Tt = 8, Et = ({ index: e, style: t, ariaAttributes: n, items: i, selectedDeploymentId: a, labelClassName: o, query: c, onSelect: l }) => {
1411
- let u = i[e], d = it(u.iconUrl, u.type, u.displayName ?? u.id, f.SM), m = u.id === a;
1412
- return /* @__PURE__ */ z("div", {
1592
+ var kt = {
1593
+ divider: "_divider_s5khb_1",
1594
+ item: "_item_s5khb_5",
1595
+ itemIcon: "_itemIcon_s5khb_15",
1596
+ checkIcon: "_checkIcon_s5khb_19",
1597
+ stateLabel: "_stateLabel_s5khb_23"
1598
+ }, At = 44, jt = 8, Mt = ({ index: e, style: t, ariaAttributes: n, items: r, selectedDeploymentId: i, labelClassName: a, query: s, onSelect: c }) => {
1599
+ let u = r[e], f = st(u.iconUrl, u.type, u.displayName ?? u.id, d.SM), p = u.id === i;
1600
+ return /* @__PURE__ */ G("div", {
1413
1601
  style: t,
1414
1602
  ...n,
1415
- children: /* @__PURE__ */ z(p, {
1603
+ children: /* @__PURE__ */ G(l, {
1416
1604
  type: "button",
1417
- className: s(Ct.item, "flex h-full w-full items-center gap-3 px-4"),
1418
- iconBefore: /* @__PURE__ */ z("span", {
1419
- className: Ct.itemIcon,
1420
- children: d
1605
+ className: o(kt.item, "h-full w-full gap-3 px-4"),
1606
+ iconBefore: /* @__PURE__ */ G("span", {
1607
+ className: kt.itemIcon,
1608
+ children: f
1421
1609
  }),
1422
- label: /* @__PURE__ */ B("span", {
1610
+ label: /* @__PURE__ */ K("span", {
1423
1611
  className: "flex flex-1 items-center justify-between gap-2",
1424
- children: [/* @__PURE__ */ z(r, {
1612
+ children: [/* @__PURE__ */ G(x, {
1425
1613
  text: u.displayName ?? u.id,
1426
- query: c,
1614
+ query: s,
1427
1615
  maxLines: 1,
1428
- className: s(o, "min-w-0 flex-1 text-start")
1429
- }), m && /* @__PURE__ */ z(ne, {
1430
- size: f.SM,
1431
- className: Ct.checkIcon,
1616
+ className: o(a, "min-w-0 flex-1 text-start")
1617
+ }), p && /* @__PURE__ */ G(N, {
1618
+ size: d.SM,
1619
+ className: kt.checkIcon,
1432
1620
  "aria-hidden": !0
1433
1621
  })]
1434
1622
  }),
1435
- onClick: () => l(u.id)
1623
+ onClick: () => c(u.id)
1436
1624
  })
1437
1625
  });
1438
- }, Dt = ({ isOpen: e, title: t, closeLabel: n, searchPlaceholder: r = "Search", onClose: i, deployments: a, selectedDeploymentId: o, onSelect: c, loadingLabel: l, errorLabel: u, emptyLabel: d, style: f, titleClassName: p = "dial-body-semi-text", labelClassName: m = "dial-small-text" }) => {
1439
- let [h, g] = L("");
1440
- N(() => {
1441
- e || g("");
1626
+ }, Nt = ({ isOpen: e, title: t, closeLabel: n, searchPlaceholder: r = "Search", onClose: i, deployments: s, selectedDeploymentId: c, onSelect: l, loadingLabel: u, errorLabel: d, emptyLabel: f, style: p, titleClassName: h = "dial-body-semi-text", labelClassName: g = "dial-small-text", colors: _ }) => {
1627
+ let [y, b] = U("");
1628
+ B(() => {
1629
+ e || b("");
1442
1630
  }, [e]);
1443
- let _ = a && a.length > 0, v = l !== void 0, y = !_ && !v ? u ?? d : void 0, b = _ ? rt(a, h) : [];
1444
- return /* @__PURE__ */ B(H, {
1631
+ let x = s && s.length > 0, S = u !== void 0, C = !x && !S ? d ?? f : void 0, w = x ? ot(s, y) : [], T = (e) => {
1632
+ l(e), i();
1633
+ }, E = a({
1634
+ "--ci-sheet-divider": _?.divider,
1635
+ "--ci-sheet-text": _?.itemText,
1636
+ "--ci-sheet-item-hover": _?.itemHoverBg,
1637
+ "--ci-sheet-item-active": _?.itemActiveBg,
1638
+ "--ci-sheet-icon": _?.itemIcon,
1639
+ "--ci-check-icon": _?.checkIcon
1640
+ });
1641
+ return /* @__PURE__ */ G(q, {
1445
1642
  isOpen: e,
1446
1643
  title: t,
1447
1644
  closeLabel: n,
1448
1645
  onClose: i,
1449
- style: f,
1450
- titleClassName: p,
1646
+ style: p,
1647
+ titleClassName: h,
1451
1648
  className: "max-h-[80dvh]",
1452
- children: [_ && !v && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z("div", {
1453
- className: "flex-shrink-0 px-4 py-[10px]",
1454
- children: /* @__PURE__ */ z(C, {
1455
- value: h,
1456
- placeholder: r,
1457
- size: k.Standard,
1458
- onChange: g
1459
- })
1460
- }), /* @__PURE__ */ z("div", { className: s(Ct.divider, "h-px flex-shrink-0") })] }), v ? /* @__PURE__ */ z(tt, { loadingLabel: l }) : y ? /* @__PURE__ */ z("div", {
1461
- role: "list",
1462
- className: s(Ct.stateLabel, m, "px-4 py-4"),
1463
- children: y
1464
- }) : /* @__PURE__ */ z(St, {
1465
- role: "list",
1466
- className: "overflow-y-auto",
1467
- style: { height: Math.min(b.length, Tt) * wt },
1468
- rowComponent: Et,
1469
- rowCount: b.length,
1470
- rowHeight: wt,
1471
- rowProps: {
1472
- items: b,
1473
- selectedDeploymentId: o,
1474
- labelClassName: m,
1475
- query: h,
1476
- onSelect: (e) => {
1477
- c(e), i();
1649
+ colors: _?.shell,
1650
+ children: /* @__PURE__ */ K("div", {
1651
+ className: "contents",
1652
+ style: E,
1653
+ children: [x && !S && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("div", {
1654
+ className: "flex-shrink-0 px-4 py-[10px]",
1655
+ children: /* @__PURE__ */ G(m, {
1656
+ value: y,
1657
+ placeholder: r,
1658
+ size: v.Standard,
1659
+ onChange: b
1660
+ })
1661
+ }), /* @__PURE__ */ G("div", { className: o(kt.divider, "h-px flex-shrink-0") })] }), S ? /* @__PURE__ */ G(it, { loadingLabel: u }) : C ? /* @__PURE__ */ G("div", {
1662
+ role: "list",
1663
+ className: o(kt.stateLabel, g, "px-4 py-4"),
1664
+ children: C
1665
+ }) : /* @__PURE__ */ G(Ot, {
1666
+ role: "list",
1667
+ className: "overflow-y-auto",
1668
+ style: { height: Math.min(w.length, jt) * At },
1669
+ rowComponent: Mt,
1670
+ rowCount: w.length,
1671
+ rowHeight: At,
1672
+ rowProps: {
1673
+ items: w,
1674
+ selectedDeploymentId: c,
1675
+ labelClassName: g,
1676
+ query: y,
1677
+ onSelect: T
1478
1678
  }
1479
- }
1480
- })]
1679
+ })]
1680
+ })
1481
1681
  });
1482
- }, Ot = ({ deployments: e, selectedDeploymentId: t, onDeploymentChange: n, modelSelectorLabels: r, isStreaming: i, isMobile: a, isInputDisabled: o = !1, isDisabled: c = !1, style: l, modelPickerOverlay: u, isPickerOpen: d, onPickerToggle: p, onPickerOpenChange: m }) => {
1483
- let [_, y] = L(!1), { selectorIcon: b, selectorAriaLabel: x, selectedLabel: S, menuItems: C, menuHeader: w, onOpenChange: T } = at({
1682
+ }, Pt = ({ deployments: e, selectedDeploymentId: t, onDeploymentChange: n, modelSelectorLabels: r, isStreaming: i, isMobile: a, isDisabled: s = !1, style: c, modelPickerOverlay: l, isPickerOpen: u, onPickerToggle: p, onPickerOpenChange: m }) => {
1683
+ let [h, y] = U(!1), { selectorIcon: x, selectorAriaLabel: S, selectedLabel: C, menuItems: w, menuHeader: T, onOpenChange: E } = lt({
1484
1684
  deployments: e,
1485
1685
  selectedDeploymentId: t,
1486
1686
  onDeploymentChange: n,
1487
1687
  modelSelectorLabels: r
1488
1688
  });
1489
1689
  if (!e) return null;
1490
- let E = i || c ? "pointer-events-none opacity-50 cursor-not-allowed" : void 0, D = /* @__PURE__ */ z(re, {
1491
- size: f.SM,
1690
+ let D = i || s ? "pointer-events-none opacity-50 cursor-not-allowed" : void 0, O = /* @__PURE__ */ G(te, {
1691
+ size: d.SM,
1492
1692
  className: Y.modelSelectorCaret,
1493
1693
  "aria-hidden": !0
1494
1694
  });
1495
- return a ? /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(O, {
1496
- tooltip: S,
1497
- children: /* @__PURE__ */ z(v, {
1498
- icon: /* @__PURE__ */ B("div", {
1695
+ return a ? /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G(g, {
1696
+ tooltip: C,
1697
+ children: /* @__PURE__ */ G(b, {
1698
+ icon: /* @__PURE__ */ K("div", {
1499
1699
  className: "flex items-center gap-1",
1500
- children: [b, D]
1700
+ children: [x, O]
1501
1701
  }),
1502
- "aria-label": x,
1702
+ "aria-label": S,
1503
1703
  onClick: () => {
1504
- c || y(!0);
1704
+ s || y(!0);
1505
1705
  },
1506
- className: s(Y.modelSelectorButton, E)
1706
+ className: o("w-[50px]", Y.modelSelectorButton, D)
1507
1707
  })
1508
- }), u ? /* @__PURE__ */ z(H, {
1509
- isOpen: _,
1708
+ }), l ? /* @__PURE__ */ G(q, {
1709
+ isOpen: h,
1510
1710
  title: r?.ariaLabel ?? "Select model",
1511
1711
  closeLabel: r?.closeLabel ?? "Close",
1512
1712
  onClose: () => y(!1),
1513
- style: l,
1514
- children: u(() => y(!1))
1515
- }) : /* @__PURE__ */ z(Dt, {
1516
- isOpen: _,
1713
+ style: c,
1714
+ children: l(() => y(!1))
1715
+ }) : /* @__PURE__ */ G(Nt, {
1716
+ isOpen: h,
1517
1717
  title: r?.ariaLabel ?? "Select model",
1518
1718
  closeLabel: r?.closeLabel ?? "Close",
1519
1719
  searchPlaceholder: r?.searchPlaceholder ?? "Search",
@@ -1524,337 +1724,385 @@ var Ct = {
1524
1724
  loadingLabel: r?.loading,
1525
1725
  errorLabel: r?.error,
1526
1726
  emptyLabel: r?.empty,
1527
- style: l
1528
- })] }) : u ? /* @__PURE__ */ z(h, {
1727
+ style: c
1728
+ })] }) : l ? /* @__PURE__ */ G(_, {
1529
1729
  placement: "top-end",
1530
1730
  matchReferenceWidth: !1,
1531
- open: d,
1731
+ open: u,
1532
1732
  onOpenChange: m,
1533
1733
  trigger: [],
1534
1734
  outsideClosable: !0,
1535
- renderOverlay: () => u(() => m?.(!1)),
1735
+ renderOverlay: () => l(() => m?.(!1)),
1536
1736
  listClassName: "cp-dropdown-overlay !w-[320px]",
1537
- children: /* @__PURE__ */ z(O, {
1538
- tooltip: S,
1539
- children: /* @__PURE__ */ B("button", {
1737
+ children: /* @__PURE__ */ G(g, {
1738
+ tooltip: C,
1739
+ children: /* @__PURE__ */ K("button", {
1540
1740
  type: "button",
1541
- "aria-label": x,
1542
- className: s("flex items-center justify-center gap-1 rounded-md p-2", Y.modelSelectorButton, o || i || c ? E : void 0, (o || c) && Y.modelSelectorButtonDisabled),
1741
+ "aria-label": S,
1742
+ "aria-disabled": s || void 0,
1743
+ className: o("flex items-center justify-center gap-1 rounded-full p-2", Y.modelSelectorButton, D, s && Y.modelSelectorButtonDisabled),
1543
1744
  onClick: () => {
1544
- !o && !i && !c && p?.();
1745
+ !i && !s && p?.();
1545
1746
  },
1546
- children: [b, D]
1747
+ children: [x, O]
1547
1748
  })
1548
1749
  })
1549
- }) : /* @__PURE__ */ z("div", {
1550
- className: s(c && E),
1551
- "aria-disabled": c || void 0,
1552
- children: /* @__PURE__ */ z(O, {
1553
- tooltip: S,
1554
- children: /* @__PURE__ */ z(g, {
1555
- icon: b,
1556
- ariaLabel: x,
1557
- items: C,
1558
- menuHeader: w,
1750
+ }) : /* @__PURE__ */ G("div", {
1751
+ className: o(s && D),
1752
+ "aria-disabled": s || void 0,
1753
+ children: /* @__PURE__ */ G(g, {
1754
+ tooltip: C,
1755
+ children: /* @__PURE__ */ G(f, {
1756
+ icon: x,
1757
+ ariaLabel: S,
1758
+ items: w,
1759
+ menuHeader: T,
1559
1760
  placement: "bottom-end",
1560
1761
  matchReferenceWidth: !1,
1561
1762
  listClassName: "cp-dropdown-overlay !w-[240px] !max-h-80",
1562
- onOpenChange: c ? void 0 : T,
1563
- size: k.Standard,
1564
- caretIcon: D,
1565
- iconClassName: o || c ? E : void 0,
1566
- buttonClassName: s("bg-transparent", Y.modelSelectorButton, (o || c) && E && Y.modelSelectorButtonDisabled)
1763
+ onOpenChange: s ? void 0 : E,
1764
+ size: v.Standard,
1765
+ caretIcon: O,
1766
+ iconClassName: s ? D : void 0,
1767
+ buttonClassName: o("bg-transparent", Y.modelSelectorButton, s && Y.modelSelectorButtonDisabled)
1567
1768
  })
1568
1769
  })
1569
1770
  });
1570
- }, kt = 160, At = ({ message: e = "", messageRevision: t, onSend: n, onUploadAttachment: r, onStop: i, isStreaming: a = !1, onChange: u, onAttachmentsChange: d, placeholder: p = "Type a message...", ariaLabel: m, attachLabel: h = "Attach file", fileAccept: g, addMenuTitle: _ = "Add", menuTitle: y = "Menu", menuCloseLabel: b = "Close", removeLabel: x, retryLabel: S, sendLabel: C, stopLabel: w, micLabel: T = "Record voice message", stopRecordingLabel: E, discardRecordingLabel: D, timerAriaLabel: O, colors: k, typography: A, className: ee, pendingDropFiles: j = [], onDropFilesConsumed: te, pendingAttachments: ne = [], onPendingAttachmentsConsumed: re, pasteTextThreshold: ie = 4e3, deployments: se, selectedDeploymentId: ce, onDeploymentChange: le, modelSelectorLabels: ue, initialAttachments: de = [], isStacked: fe = !1, hideAddButton: pe = !1, hideAttachFile: me = !1, hideActionBar: he = !1, renderFooterActions: N, isInputDisabled: P = !1, isModelSelectorDisabled: ge = !1, isAudioMessageSupported: _e = !1, sendOnEnter: ve = Re.Enter, prefixAttachments: V = [], onRemovePrefixAttachment: be, chatSettings: xe, autoFocus: Se = !1, messageHistory: Ce, onDialFileSystemClick: Te, dialFileSystemLabel: Ee, validateAttachment: H, onAttachmentClick: De, modelPickerOverlay: Ae, maximumAttachmentsAmount: je, onAttachmentsLimitExceeded: Pe }) => {
1571
- let Fe = c(), [Ie, ze] = L(!1), Be = Me(Ce), Ve = F(() => o({
1572
- "--ci-bg": k?.background,
1573
- "--ci-text": k?.text,
1574
- "--ci-border": k?.border,
1575
- "--ci-border-hover": k?.borderHover,
1576
- "--ci-border-focus": k?.borderFocus,
1577
- "--ci-placeholder": k?.placeholder,
1578
- "--ci-shadow": k?.shadow,
1579
- "--ci-shadow-focus": k?.shadowFocus,
1580
- "--ci-send-bg": k?.sendBackground,
1581
- "--ci-send-text": k?.sendText,
1582
- "--ci-stop-color": k?.stopColor
1583
- }), [k]), He = F(() => Te ? [{
1771
+ }, Ft = 160, It = ({ message: e = "", messageRevision: t, onSend: n, onUploadAttachment: r, onStop: i, isStreaming: l = !1, onChange: u, onAttachmentsChange: f, placeholder: p = "Type a message...", ariaLabel: m, attachLabel: h = "Attach file", fileAccept: g, addMenuTitle: _ = "Add", menuTitle: v = "Menu", menuCloseLabel: y = "Close", removeLabel: b, retryLabel: x, sendLabel: S, stopLabel: C, micLabel: w = "Record voice message", stopRecordingLabel: T, discardRecordingLabel: E, colors: D, typography: O, className: k, pendingDropFiles: A = [], onDropFilesConsumed: ee, pendingAttachments: M = [], onPendingAttachmentsConsumed: N, pasteTextThreshold: te = 4e3, maxMessageLength: P = 5e4, deployments: ie, selectedDeploymentId: F, onDeploymentChange: I, modelSelectorLabels: ae, initialAttachments: oe = [], isStacked: se = !1, hideAddButton: ce = !1, hideAttachFile: le = !1, hideActionBar: ue = !1, renderFooterActions: L, isInputDisabled: R = !1, isModelSelectorDisabled: B = !1, isSendDisabled: de = !1, isAudioMessageSupported: fe = !1, sendOnEnter: pe = Fe.Enter, prefixAttachments: me = [], onRemovePrefixAttachment: he, chatSettings: _e, toolsMenuItems: ve, onToolToggle: ye, toolsMenuTitle: be, toolsBackLabel: Se, toolsChipLabels: Ce, promptsMenuOverlay: q, promptsMenuTitle: we, promptsBackLabel: De, autoFocus: Oe = !1, messageHistory: je, onDialFileSystemClick: Me, dialFileSystemLabel: Ne, validateAttachment: Ie, onAttachmentClick: Le, modelPickerOverlay: Re, maximumAttachmentsAmount: ze, onAttachmentsLimitExceeded: Be, isAttachmentsEnabled: Ve = !0, usageLimitsSlot: He, onMessageTooLong: Ue }) => {
1772
+ let We = s(), [Ge, Ke] = U(!1), J = ke(je), Je = V(() => a({
1773
+ "--ci-bg": D?.background,
1774
+ "--ci-text": D?.text,
1775
+ "--ci-border": D?.border,
1776
+ "--ci-border-focus": D?.borderFocus,
1777
+ "--ci-placeholder": D?.placeholder,
1778
+ "--ci-text-disabled": D?.textDisabled,
1779
+ "--ci-model-selector-caret-color": D?.modelSelectorCaret,
1780
+ "--ci-model-selector-hover-bg": D?.modelSelectorHoverBg,
1781
+ "--ci-model-selector-disabled-color": D?.modelSelectorDisabled,
1782
+ "--ci-voice-error": D?.voiceError,
1783
+ "--ci-voice-waveform": D?.voiceWaveform,
1784
+ "--ci-voice-accent": D?.voiceAccent
1785
+ }), [D]), Ye = V(() => Me ? [{
1584
1786
  key: "dial-fs",
1585
- label: Ee ?? "DIAL file system",
1586
- icon: /* @__PURE__ */ z(ae, {
1587
- size: l,
1787
+ label: Ne ?? "DIAL file system",
1788
+ icon: /* @__PURE__ */ G(ne, {
1789
+ size: c,
1588
1790
  "aria-hidden": !0
1589
1791
  }),
1590
- onClick: Te
1591
- }] : [], [Te, Ee]), { message: U, setMessage: W, textareaRef: Ue, isMultiLine: We } = Ne({
1792
+ onClick: Me
1793
+ }] : [], [Me, Ne]), { message: X, setMessage: Ze, textareaRef: Qe, isMultiLine: $e } = Ae({
1592
1794
  messageProp: e,
1593
1795
  messageRevision: t
1594
- }), { attachments: G, buildAttachments: Ge, addAttachments: K, resetAttachments: q, handleRemove: qe, handleRetry: Je, handleExpand: J, hasBlockedAttachments: Ye } = Oe({
1595
- initialAttachments: de,
1796
+ }), { attachments: Z, buildAttachments: rt, addAttachments: it, resetAttachments: at, handleRemove: ot, handleRetry: st, handleExpand: ct, hasBlockedAttachments: lt } = Te({
1797
+ initialAttachments: oe,
1596
1798
  onUploadAttachment: r,
1597
- onAttachmentsChange: d,
1598
- validateAttachment: H,
1599
- pendingDropFiles: j,
1600
- onDropFilesConsumed: te,
1601
- pendingAttachments: ne,
1602
- onPendingAttachmentsConsumed: re,
1603
- onExpandPastedText: M((e) => {
1604
- W((t) => t ? `${t}\n${e}` : e);
1605
- }, [W]),
1606
- maximumAttachmentsAmount: je,
1607
- baseAttachmentsAmount: V.length,
1608
- onAttachmentsLimitExceeded: Pe
1609
- }), { state: $e, analyserNodeRef: et, elapsedSeconds: tt, errorMessage: nt, startRecording: rt, stopRecording: it, discardRecording: at } = Le({ onAttachAudio: M((e) => {
1610
- K(Ge([e]));
1611
- }, [K, Ge]) }), X = I(null), ot = I(null), { handlePaste: st } = we(K, ie), ct = U.trim().length > 0 || G.length > 0, Z = ct && !Ye, { shouldRender: lt, isExiting: ut, instanceKey: Q } = ke(!a && ct, kt), $ = fe || G.length > 0 || U.includes("\n") || We, dt = se === void 0 || ce != null, ft = async () => {
1612
- let e = U, t = G;
1613
- W(""), Be.reset();
1799
+ onAttachmentsChange: f,
1800
+ validateAttachment: Ie,
1801
+ pendingDropFiles: A,
1802
+ onDropFilesConsumed: ee,
1803
+ pendingAttachments: M,
1804
+ onPendingAttachmentsConsumed: N,
1805
+ onExpandPastedText: z((e) => {
1806
+ Ze((t) => t ? `${t}\n${e}` : e);
1807
+ }, [Ze]),
1808
+ maximumAttachmentsAmount: ze,
1809
+ baseAttachmentsAmount: me.length,
1810
+ onAttachmentsLimitExceeded: Be
1811
+ }), { state: ut, analyserNodeRef: dt, errorMessage: ft, startRecording: pt, stopRecording: mt, discardRecording: ht } = Pe({ onAttachAudio: z((e) => {
1812
+ it(rt([e]));
1813
+ }, [it, rt]) }), gt = H(null), Q = H(null), { handlePaste: _t } = xe(it, Ve ? te : Infinity), vt = z((e) => {
1814
+ if (!Ve) {
1815
+ let t = e.clipboardData.getData("text/plain");
1816
+ t.length >= P && Ue?.(t.length, P);
1817
+ }
1818
+ _t(e);
1819
+ }, [
1820
+ Ve,
1821
+ P,
1822
+ Ue,
1823
+ _t
1824
+ ]), yt = X.trim().length > 0 || Z.length > 0, bt = yt && !lt && !de, { shouldRender: xt, isExiting: St, instanceKey: Ct } = Ee(!l && yt, Ft), wt = (ve?.some((e) => e.isSelected) ?? !1) && ye != null, $ = se || X.includes("\n") || $e || wt, Tt = ie === void 0 || F != null, Et = V(() => fe && !St && !l, [
1825
+ fe,
1826
+ St,
1827
+ l
1828
+ ]), Dt = async () => {
1829
+ if (de) return;
1830
+ if (!Ve && X.length >= P) {
1831
+ Ue?.(X.length, P);
1832
+ return;
1833
+ }
1834
+ let e = X, t = Z;
1835
+ Ze(""), J.reset();
1614
1836
  try {
1615
1837
  await n?.(e, t), t.forEach((e) => {
1616
- e.previewUrl && URL.revokeObjectURL(e.previewUrl);
1617
- }), q([]);
1838
+ e.previewUrl && URL.revokeObjectURL(e.previewUrl), e.playUrl && URL.revokeObjectURL(e.playUrl);
1839
+ }), at([]);
1618
1840
  } catch {
1619
- W(e), q(t);
1841
+ Ze(e), at(t);
1620
1842
  }
1621
- }, pt = (e) => {
1622
- if (!e.nativeEvent.isComposing && !P && !a && (e.key === "ArrowUp" || e.key === "ArrowDown")) {
1623
- let t = e.currentTarget.selectionStart ?? 0, n = Be.navigate(e.key === "ArrowUp" ? "up" : "down", U, t);
1843
+ }, Ot = (e) => {
1844
+ if (!e.nativeEvent.isComposing && !R && !l && (e.key === "ArrowUp" || e.key === "ArrowDown")) {
1845
+ let t = e.currentTarget.selectionStart ?? 0, n = J.navigate(e.key === "ArrowUp" ? "up" : "down", X, t);
1624
1846
  if (n !== null) {
1625
- e.preventDefault(), W(n);
1847
+ e.preventDefault(), Ze(n);
1626
1848
  return;
1627
1849
  }
1628
1850
  }
1629
- e.key === "Enter" && (ve === Re.MetaEnter ? (e.metaKey || e.ctrlKey) && !e.shiftKey : !e.shiftKey && !e.metaKey && !e.ctrlKey) && (e.preventDefault(), !a && Z && dt && !P && ft());
1630
- }, mt = (e) => {
1851
+ e.key === "Enter" && (pe === Fe.MetaEnter ? (e.metaKey || e.ctrlKey) && !e.shiftKey : !e.shiftKey && !e.metaKey && !e.ctrlKey) && (e.preventDefault(), !l && bt && Tt && !R && Dt());
1852
+ }, kt = (e) => {
1631
1853
  let t = Array.from(e.target.files ?? []);
1632
1854
  if (t.length === 0) return;
1633
- let n = Ge(t);
1634
- e.target.value = "", K(n);
1855
+ let n = rt(t);
1856
+ e.target.value = "", it(n);
1635
1857
  };
1636
- if ($e !== "idle") return /* @__PURE__ */ z(Xe, {
1637
- state: $e,
1638
- analyserNodeRef: et,
1639
- elapsedSeconds: tt,
1640
- errorMessage: nt,
1641
- onStop: it,
1642
- onDiscard: at,
1643
- stopLabel: E,
1644
- discardLabel: D,
1645
- timerLabel: O,
1646
- style: Ve,
1647
- className: ee
1858
+ if (ut !== "idle") return /* @__PURE__ */ G(et, {
1859
+ state: ut,
1860
+ analyserNodeRef: dt,
1861
+ errorMessage: ft,
1862
+ onStop: mt,
1863
+ onDiscard: ht,
1864
+ stopLabel: T,
1865
+ discardLabel: E,
1866
+ style: Je,
1867
+ className: k
1648
1868
  });
1649
- let ht = /* @__PURE__ */ z("textarea", {
1650
- className: s(Y.textarea, A?.fontClassName, "max-h-[272px] w-full resize-none overflow-y-auto border-0 bg-transparent outline-none [field-sizing:content]"),
1651
- ref: Ue,
1652
- autoFocus: Se,
1653
- value: U,
1869
+ let At = /* @__PURE__ */ G("textarea", {
1870
+ className: o(Y.textarea, O?.fontClassName || "dial-body-paragraph-text", "max-h-[272px] w-full resize-none overflow-y-auto border-0 bg-transparent outline-none [field-sizing:content]"),
1871
+ ref: Qe,
1872
+ autoFocus: Oe,
1873
+ value: X,
1654
1874
  onChange: (e) => {
1655
- W(e.target.value), Be.notifyChange(), u?.(e.target.value);
1875
+ Ze(e.target.value), J.notifyChange(), u?.(e.target.value);
1656
1876
  },
1657
- onKeyDown: pt,
1658
- onPaste: st,
1877
+ onKeyDown: Ot,
1878
+ onPaste: vt,
1659
1879
  placeholder: p,
1660
1880
  "aria-label": m,
1661
- disabled: P,
1881
+ disabled: R,
1662
1882
  rows: 1
1663
1883
  });
1664
- return /* @__PURE__ */ B("div", {
1665
- ref: ot,
1666
- style: Ve,
1667
- className: s(Y.wrapper, P && Y.wrapperDisabled, "flex min-h-[56px] w-full max-w-[748px] flex-col justify-center gap-3 rounded-xl border", G.length > 6 ? "py-3 ps-3" : "p-3", ee),
1668
- children: [(V.length > 0 || G.length > 0) && /* @__PURE__ */ z(ye, {
1669
- attachments: [...V, ...G],
1884
+ return /* @__PURE__ */ K("div", {
1885
+ ref: Q,
1886
+ style: Je,
1887
+ className: o(Y.wrapper, R && Y.wrapperDisabled, "flex min-h-[64px] w-full max-w-[748px] flex-col justify-center gap-3 rounded-xl border shadow-md", "focus-within:outline focus-within:-outline-offset-1 active:outline active:-outline-offset-1", Z.length > 6 ? "py-3 ps-3" : "p-3", k),
1888
+ children: [(me.length > 0 || Z.length > 0) && /* @__PURE__ */ G(ge, {
1889
+ attachments: [...me, ...Z],
1670
1890
  onRemove: (e) => {
1671
- V.some((t) => t.id === e) ? be?.(e) : qe(e);
1891
+ me.some((t) => t.id === e) ? he?.(e) : ot(e);
1672
1892
  },
1673
- onRetry: Je,
1674
- onExpand: J,
1893
+ onRetry: st,
1894
+ onExpand: ct,
1675
1895
  labels: {
1676
- removeLabel: x,
1677
- retryLabel: S
1896
+ removeLabel: b,
1897
+ retryLabel: x
1678
1898
  },
1679
- onAttachmentClick: De == null ? void 0 : (e) => {
1680
- let t = [...V, ...G].find((t) => t.id === e);
1681
- t != null && De(t);
1899
+ onAttachmentClick: Le == null ? void 0 : (e) => {
1900
+ let t = [...me, ...Z].find((t) => t.id === e);
1901
+ t != null && Le(t);
1682
1902
  }
1683
- }), he ? $ && ht : /* @__PURE__ */ B("div", {
1684
- className: s("flex items-center gap-2", $ ? "flex-wrap" : "flex-wrap desktop:flex-nowrap"),
1903
+ }), ue ? $ && At : /* @__PURE__ */ K("div", {
1904
+ className: o("flex items-center gap-2", $ ? "flex-wrap" : "flex-wrap desktop:flex-nowrap"),
1685
1905
  children: [
1686
- !pe && /* @__PURE__ */ B("div", {
1687
- className: s("order-2 flex", !$ && "desktop:order-1"),
1688
- children: [/* @__PURE__ */ z("input", {
1689
- ref: X,
1906
+ !ce && /* @__PURE__ */ K("div", {
1907
+ className: o("flex", "order-2", !$ && "desktop:order-1"),
1908
+ children: [/* @__PURE__ */ G("input", {
1909
+ ref: gt,
1690
1910
  type: "file",
1691
1911
  multiple: !0,
1692
1912
  accept: g,
1693
1913
  className: "sr-only",
1694
1914
  "aria-hidden": !0,
1695
1915
  tabIndex: -1,
1696
- onChange: mt
1697
- }), /* @__PURE__ */ z(Ke, {
1698
- onAttachClick: me ? void 0 : () => X.current?.click(),
1916
+ onChange: kt
1917
+ }), /* @__PURE__ */ G(qe, {
1918
+ onAttachClick: le ? void 0 : () => gt.current?.click(),
1699
1919
  attachLabel: h,
1700
1920
  addMenuTitle: _,
1701
- menuTitle: y,
1702
- menuCloseLabel: b,
1703
- style: Ve,
1704
- isDisabled: P,
1705
- chatSettings: xe,
1706
- extraMenuItems: He
1921
+ menuTitle: v,
1922
+ menuCloseLabel: y,
1923
+ style: Je,
1924
+ isDisabled: R,
1925
+ chatSettings: _e,
1926
+ extraMenuItems: Ye,
1927
+ toolsMenuItems: ve,
1928
+ onToolToggle: ye,
1929
+ toolsMenuTitle: be,
1930
+ toolsBackLabel: Se,
1931
+ promptsMenuOverlay: q,
1932
+ promptsMenuTitle: we,
1933
+ promptsBackLabel: De
1707
1934
  })]
1708
1935
  }),
1709
- /* @__PURE__ */ z("div", {
1710
- className: s("order-1 flex w-full min-w-0 items-center self-stretch", !$ && "desktop:order-2 desktop:w-auto desktop:flex-1"),
1711
- children: ht
1936
+ $ && wt && /* @__PURE__ */ G("div", {
1937
+ className: "order-3 min-w-0 flex-1",
1938
+ children: /* @__PURE__ */ G(Xe, {
1939
+ items: ve ?? [],
1940
+ onToolToggle: ye,
1941
+ isMobile: We,
1942
+ countLabel: Ce?.countLabel,
1943
+ removeLabel: Ce?.removeLabel
1944
+ })
1945
+ }),
1946
+ /* @__PURE__ */ G("div", {
1947
+ className: o("order-1 flex w-full min-w-0 items-center self-stretch", !$ && "desktop:order-2 desktop:w-auto desktop:flex-1"),
1948
+ children: At
1712
1949
  }),
1713
- /* @__PURE__ */ B("div", {
1714
- className: s("flex flex-shrink-0 items-center gap-2", "order-3 ms-auto", !$ && "desktop:ms-0"),
1715
- children: [N ? N({
1716
- canSend: Z,
1717
- onSend: ft
1718
- }) : /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(Ot, {
1719
- deployments: se,
1720
- selectedDeploymentId: ce,
1721
- onDeploymentChange: le,
1722
- modelSelectorLabels: ue,
1723
- isStreaming: a,
1724
- isMobile: Fe,
1725
- isInputDisabled: P,
1726
- isDisabled: ge,
1727
- style: Ve,
1728
- modelPickerOverlay: Ae,
1729
- isPickerOpen: Ie,
1730
- onPickerToggle: () => ze((e) => !e),
1731
- onPickerOpenChange: ze
1732
- }), a && i ? /* @__PURE__ */ z(Qe, {
1733
- onStop: i,
1734
- ariaLabel: w
1735
- }) : !a && lt && /* @__PURE__ */ z(Ze, {
1736
- onSend: ft,
1737
- isDisabled: !dt || Ye,
1738
- ariaLabel: C,
1739
- isExiting: ut
1740
- }, Q)] }), _e && !ut && /* @__PURE__ */ z(v, {
1741
- icon: /* @__PURE__ */ z(oe, {
1742
- size: f.LG,
1950
+ /* @__PURE__ */ K("div", {
1951
+ className: o("flex flex-shrink-0 items-center gap-2", $ && wt ? "order-4" : "order-3", "ms-auto", !$ && "desktop:ms-0"),
1952
+ children: [L ? L({
1953
+ canSend: bt,
1954
+ onSend: Dt
1955
+ }) : /* @__PURE__ */ K(W, { children: [
1956
+ He,
1957
+ /* @__PURE__ */ G(Pt, {
1958
+ deployments: ie,
1959
+ selectedDeploymentId: F,
1960
+ onDeploymentChange: I,
1961
+ modelSelectorLabels: ae,
1962
+ isStreaming: l,
1963
+ isMobile: We,
1964
+ isDisabled: B,
1965
+ style: Je,
1966
+ modelPickerOverlay: Re,
1967
+ isPickerOpen: Ge,
1968
+ onPickerToggle: () => Ke((e) => !e),
1969
+ onPickerOpenChange: Ke
1970
+ }),
1971
+ l && i ? /* @__PURE__ */ G(nt, {
1972
+ onStop: i,
1973
+ ariaLabel: C
1974
+ }) : !l && xt && /* @__PURE__ */ G(tt, {
1975
+ onSend: Dt,
1976
+ isDisabled: !Tt || lt || de,
1977
+ ariaLabel: S,
1978
+ isExiting: St
1979
+ }, Ct)
1980
+ ] }), Et && /* @__PURE__ */ G(j, {
1981
+ icon: /* @__PURE__ */ G(re, {
1982
+ size: d.LG,
1743
1983
  "aria-hidden": !0
1744
1984
  }),
1745
- "aria-label": T,
1985
+ "aria-label": w,
1746
1986
  className: "size-8 flex-shrink-0",
1747
- onClick: rt,
1748
- disabled: P || a
1987
+ onClick: pt,
1988
+ disabled: R || l
1749
1989
  })]
1750
1990
  })
1751
1991
  ]
1752
1992
  })]
1753
1993
  });
1754
- }, jt = { welcome: "_welcome_n2ph8_1" }, Mt = ({ isStreaming: e = !1, placeholder: t = "Type a prompt or use \"/\" to select one", welcomeText: n, styles: r, className: i, isInputDisabled: a = !1, ...c }) => {
1755
- let { colors: l, typography: u } = r ?? {};
1756
- return /* @__PURE__ */ B("div", {
1757
- style: o({
1758
- "--ci-root-bg": l?.background,
1759
- "--ci-welcome-color": l?.welcomeText
1760
- }),
1761
- className: s("relative flex w-full flex-col items-center gap-6 px-4 py-5 desktop:p-5", i),
1762
- children: [n && /* @__PURE__ */ z("h1", {
1763
- className: s(jt.welcome, "m-0 text-center", u?.welcomeClassName),
1994
+ }, Lt = { welcome: "_welcome_n2ph8_1" }, Rt = ({ isStreaming: e = !1, placeholder: t = "Type a prompt or use \"/\" to select one", welcomeText: n, styles: r, className: i, inputClassName: s, isInputDisabled: c = !1, ...l }) => {
1995
+ let { colors: u, typography: d } = r ?? {};
1996
+ return /* @__PURE__ */ K("div", {
1997
+ style: a({ "--ci-welcome-color": u?.welcomeText }),
1998
+ className: o("relative flex w-full flex-col items-center gap-6 px-4 py-5 desktop:p-5", i),
1999
+ children: [n && /* @__PURE__ */ G("h1", {
2000
+ className: o(Lt.welcome, "m-0 text-center", d?.welcomeClassName || "dial-display2-text"),
1764
2001
  children: n
1765
- }), /* @__PURE__ */ z("div", {
2002
+ }), /* @__PURE__ */ G("div", {
1766
2003
  className: "relative w-full max-w-[748px]",
1767
- children: /* @__PURE__ */ z(At, {
2004
+ children: /* @__PURE__ */ G(It, {
1768
2005
  placeholder: t,
1769
2006
  isStreaming: e,
1770
- isInputDisabled: a,
1771
- ...c,
1772
- colors: l?.input,
1773
- typography: u?.input
2007
+ isInputDisabled: c,
2008
+ ...l,
2009
+ className: s,
2010
+ colors: u?.input,
2011
+ typography: d?.input
1774
2012
  })
1775
2013
  })]
1776
2014
  });
1777
- }, Nt = ({ message: e, initialAttachments: t = [], onCancel: n, onSave: r, onUploadAttachment: a, cancelLabel: o = "Cancel", saveLabel: c = "Save & Submit", ariaLabel: u, removeLabel: d, retryLabel: f, addMenuTitle: p = "Add", attachLabel: m = "Attach file", menuTitle: h = "Menu", menuCloseLabel: g = "Close", className: _, pendingDropFiles: v, onDropFilesConsumed: y, validateAttachment: b, hideAttachFile: x = !1, fileAccept: S, maximumAttachmentsAmount: C, onAttachmentsLimitExceeded: w, onDialFileSystemClick: T, dialFileSystemLabel: E, pendingAttachments: D, onPendingAttachmentsConsumed: O, onAttachmentClick: k }) => {
1778
- let A = I(null), [ee, j] = L([]);
1779
- N(() => {
1780
- v?.length && (j(v), y?.());
2015
+ }, zt = ({ message: e, initialAttachments: t = [], onCancel: n, onSave: i, onUploadAttachment: a, cancelLabel: s = "Cancel", saveLabel: l = "Save & Submit", ariaLabel: u, removeLabel: d, retryLabel: f, addMenuTitle: p = "Add", attachLabel: m = "Attach file", menuTitle: h = "Menu", menuCloseLabel: g = "Close", className: _, pendingDropFiles: v, onDropFilesConsumed: y, validateAttachment: b, isAttachmentsEnabled: x, hideAttachFile: S = !1, fileAccept: w, maximumAttachmentsAmount: T, onAttachmentsLimitExceeded: D, onDialFileSystemClick: O, dialFileSystemLabel: k, pendingAttachments: A, onPendingAttachmentsConsumed: j, onAttachmentClick: ee, pasteTextThreshold: M, maxMessageLength: N = 5e4, onMessageTooLong: te }) => {
2016
+ let P = H(null), [re, ie] = U([]);
2017
+ B(() => {
2018
+ v?.length && (ie(v), y?.());
1781
2019
  }, [v, y]);
1782
- let [te, ne] = L(e ?? ""), [re, ie] = L([]), [oe, se] = L(t), ce = re.some((e) => e.status === i.Loading || e.status === i.Error), le = (te.trim().length > 0 || re.length > 0 || oe.length > 0) && !ce, ue = (e) => {
1783
- se((t) => t.filter((t) => t.id !== e));
1784
- }, de = M((e, t) => {
1785
- r(e, oe, t);
1786
- }, [oe, r]), fe = () => {
1787
- le && de(te, re);
1788
- }, pe = M(() => j([]), []), me = M((e) => {
2020
+ let [F, I] = U(e ?? ""), [ae, oe] = U([]), [se, ce] = U(t), le = ae.some((e) => e.status === r.Loading || e.status === r.Error), ue = (F.trim().length > 0 || ae.length > 0 || se.length > 0) && !le, L = (e) => {
2021
+ ce((t) => t.filter((t) => t.id !== e));
2022
+ }, R = z((e, t) => {
2023
+ i(e, se, t);
2024
+ }, [se, i]), de = () => {
2025
+ if (ue) {
2026
+ if (!x && F.length >= N) {
2027
+ te?.(F.length, N);
2028
+ return;
2029
+ }
2030
+ R(F, ae);
2031
+ }
2032
+ }, fe = z(() => ie([]), []), pe = z((e) => {
1789
2033
  let t = Array.from(e.target.files ?? []);
1790
- t.length !== 0 && (e.target.value = "", j(t));
1791
- }, []), he = F(() => T ? [{
2034
+ t.length !== 0 && (e.target.value = "", ie(t));
2035
+ }, []), me = V(() => O ? [{
1792
2036
  key: "dial-fs",
1793
- label: E ?? "DIAL file system",
1794
- icon: /* @__PURE__ */ z(ae, {
1795
- size: l,
2037
+ label: k ?? "DIAL file system",
2038
+ icon: /* @__PURE__ */ G(ne, {
2039
+ size: c,
1796
2040
  "aria-hidden": !0
1797
2041
  }),
1798
- onClick: T
1799
- }] : [], [T, E]);
1800
- return /* @__PURE__ */ B("div", {
1801
- className: s("flex w-full flex-col gap-2", _),
1802
- children: [/* @__PURE__ */ z(At, {
2042
+ onClick: O
2043
+ }] : [], [O, k]);
2044
+ return /* @__PURE__ */ K("div", {
2045
+ className: o("flex w-full flex-col gap-2", _),
2046
+ children: [/* @__PURE__ */ G(It, {
1803
2047
  message: e,
1804
2048
  ariaLabel: u,
1805
2049
  isStacked: !0,
1806
2050
  hideActionBar: !0,
1807
- pendingDropFiles: ee,
1808
- onDropFilesConsumed: pe,
1809
- onSend: de,
2051
+ pendingDropFiles: re,
2052
+ onDropFilesConsumed: fe,
2053
+ onSend: R,
1810
2054
  onUploadAttachment: a,
1811
- onChange: ne,
1812
- onAttachmentsChange: ie,
2055
+ onChange: I,
2056
+ onAttachmentsChange: oe,
1813
2057
  removeLabel: d,
1814
2058
  retryLabel: f,
1815
2059
  className: "max-w-full",
1816
- prefixAttachments: oe,
1817
- onRemovePrefixAttachment: ue,
2060
+ prefixAttachments: se,
2061
+ onRemovePrefixAttachment: L,
1818
2062
  validateAttachment: b,
1819
- maximumAttachmentsAmount: C,
1820
- onAttachmentsLimitExceeded: w,
1821
- pendingAttachments: D,
1822
- onPendingAttachmentsConsumed: O,
1823
- onAttachmentClick: k
1824
- }), /* @__PURE__ */ B("div", {
2063
+ isAttachmentsEnabled: x,
2064
+ maximumAttachmentsAmount: T,
2065
+ onAttachmentsLimitExceeded: D,
2066
+ pendingAttachments: A,
2067
+ onPendingAttachmentsConsumed: j,
2068
+ onAttachmentClick: ee,
2069
+ pasteTextThreshold: M,
2070
+ maxMessageLength: N,
2071
+ onMessageTooLong: te
2072
+ }), /* @__PURE__ */ K("div", {
1825
2073
  className: "flex items-center justify-between",
1826
- children: [/* @__PURE__ */ z("div", {
2074
+ children: [/* @__PURE__ */ G("div", {
1827
2075
  className: "flex",
1828
- children: !x && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z("input", {
1829
- ref: A,
2076
+ children: !S && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("input", {
2077
+ ref: P,
1830
2078
  type: "file",
1831
2079
  multiple: !0,
1832
- accept: S,
2080
+ accept: w,
1833
2081
  className: "sr-only",
1834
2082
  "aria-hidden": !0,
1835
2083
  tabIndex: -1,
1836
- onChange: me
1837
- }), /* @__PURE__ */ z(Ke, {
1838
- onAttachClick: () => A.current?.click(),
2084
+ onChange: pe
2085
+ }), /* @__PURE__ */ G(qe, {
2086
+ onAttachClick: () => P.current?.click(),
1839
2087
  attachLabel: m,
1840
2088
  addMenuTitle: p,
1841
2089
  menuTitle: h,
1842
2090
  menuCloseLabel: g,
1843
- extraMenuItems: he
2091
+ extraMenuItems: me
1844
2092
  })] })
1845
- }), /* @__PURE__ */ B("div", {
2093
+ }), /* @__PURE__ */ K("div", {
1846
2094
  className: "flex gap-2",
1847
- children: [/* @__PURE__ */ z(W, {
1848
- label: o,
2095
+ children: [/* @__PURE__ */ G(C, {
2096
+ label: s,
1849
2097
  onClick: n
1850
- }), /* @__PURE__ */ z(U, {
1851
- label: c,
1852
- onClick: fe,
1853
- disabled: !le
2098
+ }), /* @__PURE__ */ G(E, {
2099
+ label: l,
2100
+ onClick: de,
2101
+ disabled: !ue
1854
2102
  })]
1855
2103
  })]
1856
2104
  })]
1857
2105
  });
1858
2106
  };
1859
2107
  //#endregion
1860
- export { _e as AttachmentCard, ve as AttachmentGroup, V as AttachmentTray, H as BottomSheetShell, K as ChatSettingsModal, Mt as ConversationInput, Nt as EditMessageInput, be as FileDndOverlay, At as Input, Re as SendOnEnter, Ce as getAttachmentIcon };
2108
+ export { pe as AttachmentCard, me as AttachmentGroup, he as AttachmentTray, q as BottomSheetShell, Ue as ChatSettingsModal, Rt as ConversationInput, zt as EditMessageInput, _e as FileDndOverlay, It as Input, Fe as SendOnEnter, be as getAttachmentIcon };