@epam/ai-dial-conversation-input 1.1.0-dev.23 → 1.1.0-dev.235

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 +10 -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 +1207 -950
  53. package/models/ConversationInput.d.ts +77 -23
  54. package/models/ConversationInput.d.ts.map +1 -1
  55. package/models/Input.d.ts +75 -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, NeutralButton as S, Popup as C, PopupSize as w, PrimaryButton as T, PrimaryIconButton as E, RadioGroupOrientation as D, Skeleton as O, SkeletonVariant as k, StaticIconButton as A, Textarea 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].split("/")[1] ?? "webm", a = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, -1), o = new File([t], `voice-${a}.${r}`, { type: e });
336
+ d.current(o), 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,70 @@ 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: S }) => {
437
+ let C = a({ "--csf-label-text": S?.labelText }), w = o(x, ze.label, "gap-1");
438
+ return /* @__PURE__ */ K("div", {
439
+ className: "flex flex-col gap-4 px-6 pb-3",
440
+ style: C,
441
+ children: [
442
+ e.responseFormat && /* @__PURE__ */ G(p, {
443
+ fieldTitle: u,
444
+ groupLabelClassName: w,
445
+ containerClassName: "!gap-2",
446
+ formItemChildrenClassName: "mb-2",
447
+ elementId: "response-format",
448
+ orientation: D.Column,
449
+ activeRadioButton: t ?? i.Markdown,
450
+ labelDescription: d,
451
+ radioButtons: [{
452
+ id: i.Markdown,
453
+ name: f
454
+ }, {
455
+ id: i.PlainText,
456
+ name: m
457
+ }],
458
+ onChange: (e) => s(e)
459
+ }),
460
+ e.systemPrompt && /* @__PURE__ */ G(j, {
461
+ value: n,
462
+ placeholder: _,
463
+ resize: !0,
464
+ labelProps: {
465
+ className: w,
466
+ label: g
467
+ },
468
+ onChange: (e) => c(e ?? "")
469
+ }),
470
+ e.temperature && /* @__PURE__ */ G(h, {
471
+ labelProps: {
472
+ label: v,
473
+ className: w,
474
+ caption: b
475
+ },
476
+ value: r,
477
+ min: 0,
478
+ max: 1,
479
+ step: .1,
480
+ labels: y,
481
+ onChange: l
482
+ })
483
+ ]
484
+ });
485
+ }, 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 }) => {
486
+ let { responseFormat: E, systemPrompt: D, temperature: O, canSubmit: k, setResponseFormat: A, setSystemPrompt: j, setTemperature: ee, handleSubmit: M } = Re({
506
487
  isOpen: e,
507
- features: o,
488
+ features: s,
508
489
  initialResponseFormat: c,
509
490
  initialSystemPrompt: l,
510
491
  initialTemperature: u,
511
492
  onSave: d,
512
493
  onClose: r
513
494
  });
514
- return /* @__PURE__ */ B(H, {
495
+ return /* @__PURE__ */ K(q, {
515
496
  isOpen: e,
516
497
  title: f,
517
498
  closeLabel: i,
@@ -519,40 +500,40 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
519
500
  onBack: t,
520
501
  backLabel: n,
521
502
  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,
503
+ children: [/* @__PURE__ */ G(Be, {
504
+ features: s,
505
+ responseFormat: E,
506
+ systemPrompt: D,
507
+ temperature: O,
508
+ onResponseFormatChange: A,
509
+ onSystemPromptChange: j,
529
510
  onTemperatureChange: ee,
530
511
  responseFormatLabel: p,
531
512
  responseFormatHint: m,
532
513
  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,
514
+ responseFormatPlainTextLabel: _,
515
+ systemPromptLabel: v,
516
+ systemPromptTooltip: y,
517
+ temperatureLabel: b,
518
+ temperatureLabels: x,
519
+ temperatureHint: S
520
+ }), /* @__PURE__ */ G("div", {
521
+ className: o("px-6 py-4 mobile:pb-8"),
522
+ children: /* @__PURE__ */ G(g, {
523
+ tooltip: w,
524
+ hideTooltip: k || !w,
544
525
  triggerClassName: "w-full",
545
- children: /* @__PURE__ */ z(U, {
546
- label: S,
547
- onClick: j,
548
- disabled: !D,
526
+ children: /* @__PURE__ */ G(T, {
527
+ label: C,
528
+ onClick: M,
529
+ disabled: !k,
549
530
  className: "w-full"
550
531
  })
551
532
  })
552
533
  })]
553
534
  });
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({
535
+ }, He = { modal: "_modal_kl0h0_1" }, Ue = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, title: o = "Chat settings", titleClassName: s = "dial-h1-text", responseFormatLabel: c, responseFormatHint: l, responseFormatMarkdownLabel: u, responseFormatPlainTextLabel: d, systemPromptLabel: f, systemPromptTooltip: p, temperatureLabel: m, temperatureLabels: h, temperatureHint: _, saveLabel: v = "Apply changes", saveDisabledTooltip: y, backgroundClassName: b = He.modal }) => {
536
+ let { responseFormat: x, systemPrompt: S, temperature: E, canSubmit: D, setResponseFormat: O, setSystemPrompt: k, setTemperature: A, handleSubmit: j } = Re({
556
537
  features: e,
557
538
  initialResponseFormat: t,
558
539
  initialSystemPrompt: n,
@@ -560,195 +541,421 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
560
541
  onSave: i,
561
542
  onClose: a
562
543
  });
563
- return /* @__PURE__ */ z(b, {
544
+ return /* @__PURE__ */ G(C, {
564
545
  open: !0,
565
546
  header: o,
566
- size: A.Sm,
547
+ titleClassName: s,
548
+ size: w.Sm,
567
549
  onClose: a,
568
- className: "!bg-layer-2",
569
- footer: /* @__PURE__ */ z("div", {
550
+ className: b,
551
+ footer: /* @__PURE__ */ G("div", {
570
552
  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
553
+ children: /* @__PURE__ */ G(g, {
554
+ tooltip: y,
555
+ hideTooltip: D || !y,
556
+ children: /* @__PURE__ */ G(T, {
557
+ label: v,
558
+ onClick: j,
559
+ disabled: !D
578
560
  })
579
561
  })
580
562
  }),
581
- children: /* @__PURE__ */ z(G, {
563
+ children: /* @__PURE__ */ G(Be, {
582
564
  features: e,
583
- responseFormat: v,
584
- systemPrompt: y,
585
- temperature: x,
586
- onResponseFormatChange: C,
587
- onSystemPromptChange: w,
588
- onTemperatureChange: T,
589
- responseFormatLabel: s,
590
- responseFormatHint: c,
591
- responseFormatMarkdownLabel: l,
592
- responseFormatPlainTextLabel: u,
593
- systemPromptLabel: d,
594
- systemPromptTooltip: f,
595
- temperatureLabel: p,
596
- temperatureLabels: m,
597
- temperatureHint: h
565
+ responseFormat: x,
566
+ systemPrompt: S,
567
+ temperature: E,
568
+ onResponseFormatChange: O,
569
+ onSystemPromptChange: k,
570
+ onTemperatureChange: A,
571
+ responseFormatLabel: c,
572
+ responseFormatHint: l,
573
+ responseFormatMarkdownLabel: u,
574
+ responseFormatPlainTextLabel: d,
575
+ systemPromptLabel: f,
576
+ systemPromptTooltip: p,
577
+ temperatureLabel: m,
578
+ temperatureLabels: h,
579
+ temperatureHint: _
598
580
  })
599
581
  });
600
582
  };
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(() => [
583
+ R(Ue);
584
+ var We = {
585
+ icon: "_icon_1fv6z_1",
586
+ selectedIcon: "_selectedIcon_1fv6z_5"
587
+ }, 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, {
588
+ isOpen: e,
589
+ title: u,
590
+ closeLabel: i,
591
+ onClose: r,
592
+ onBack: t,
593
+ backLabel: n,
594
+ style: s,
595
+ children: /* @__PURE__ */ G("ul", {
596
+ role: "menu",
597
+ className: "flex flex-col pb-4",
598
+ style: a({
599
+ "--tbs-icon-text": m?.iconText,
600
+ "--tbs-selected-icon-text": m?.selectedIconText
601
+ }),
602
+ children: d.map((e) => /* @__PURE__ */ G("li", {
603
+ role: "none",
604
+ children: /* @__PURE__ */ G(l, {
605
+ type: "button",
606
+ role: "menuitemcheckbox",
607
+ "aria-checked": e.isSelected,
608
+ className: "w-full gap-3 px-4 py-[10px] text-start",
609
+ iconBefore: /* @__PURE__ */ G("span", {
610
+ className: o("flex items-center", We.icon),
611
+ children: e.icon
612
+ }),
613
+ iconAfter: e.isSelected ? /* @__PURE__ */ G("span", {
614
+ className: o("ms-auto", We.selectedIcon),
615
+ children: /* @__PURE__ */ G(N, {
616
+ size: c,
617
+ "aria-hidden": !0
618
+ })
619
+ }) : null,
620
+ label: /* @__PURE__ */ G("span", {
621
+ className: p,
622
+ children: e.label
623
+ }),
624
+ onClick: () => f(e.id)
625
+ })
626
+ }, e.id))
627
+ })
628
+ }), Ke = {
629
+ selectedToolIcon: "_selectedToolIcon_r268y_1",
630
+ toolIcon: "_toolIcon_r268y_5",
631
+ chevronIcon: "_chevronIcon_r268y_9"
632
+ }, 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 }) => {
633
+ 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({
634
+ "--aab-selected-tool-icon": E?.selectedToolIcon,
635
+ "--aab-tool-icon": E?.toolIcon,
636
+ "--aab-chevron-icon": E?.chevronIcon
637
+ }), [
638
+ E?.selectedToolIcon,
639
+ E?.toolIcon,
640
+ E?.chevronIcon
641
+ ]), le = g.length > 0 && y != null, ue = V(() => g.map((e) => ({
642
+ key: e.id,
643
+ label: /* @__PURE__ */ K("span", {
644
+ className: "flex flex-1 items-center gap-2",
645
+ children: [/* @__PURE__ */ G("span", {
646
+ className: "flex-1",
647
+ children: e.label
648
+ }), e.isSelected && /* @__PURE__ */ G(N, {
649
+ size: c,
650
+ style: I,
651
+ className: Ke.selectedToolIcon,
652
+ "aria-hidden": !0
653
+ })]
654
+ }),
655
+ icon: /* @__PURE__ */ G("span", {
656
+ style: I,
657
+ className: o("flex items-center", Ke.toolIcon),
658
+ children: e.icon
659
+ }),
660
+ onClick: () => y?.(e.id)
661
+ })), [
662
+ g,
663
+ y,
664
+ I
665
+ ]), L = V(() => [
606
666
  ...e == null ? [] : [{
607
667
  key: "attach",
608
668
  label: t,
609
- icon: /* @__PURE__ */ z(se, {
610
- size: l,
669
+ icon: /* @__PURE__ */ G(ie, {
670
+ size: c,
611
671
  "aria-hidden": !0
612
672
  }),
613
673
  onClick: e
614
674
  }],
615
- ...m ?? [],
616
- ...p == null ? [] : [{
675
+ ...h ?? [],
676
+ ...le ? [{
677
+ key: "tools",
678
+ label: x,
679
+ icon: /* @__PURE__ */ G(ce, {
680
+ size: c,
681
+ "aria-hidden": !0
682
+ }),
683
+ onClick: D ? () => {
684
+ M(!0), k(!1);
685
+ } : () => void 0,
686
+ ...D ? { iconAfter: /* @__PURE__ */ G(P, {
687
+ size: c,
688
+ stroke: 1.5,
689
+ style: I,
690
+ className: o("rtl:scale-x-[-1]", Ke.chevronIcon),
691
+ "aria-hidden": !0
692
+ }) } : { children: ue }
693
+ }] : [],
694
+ ...C == null ? [] : [{
695
+ key: "prompts",
696
+ label: w,
697
+ icon: /* @__PURE__ */ G(oe, {
698
+ size: c,
699
+ "aria-hidden": !0
700
+ }),
701
+ onClick: D ? () => {
702
+ ne(!0), k(!1);
703
+ } : () => void 0,
704
+ ...D ? { iconAfter: /* @__PURE__ */ G(P, {
705
+ size: c,
706
+ stroke: 1.5,
707
+ style: I,
708
+ className: o("rtl:scale-x-[-1]", Ke.chevronIcon),
709
+ "aria-hidden": !0
710
+ }) } : {
711
+ children: [{
712
+ key: "prompts-panel",
713
+ label: ""
714
+ }],
715
+ renderSubMenu: () => C(() => F(!1))
716
+ }
717
+ }],
718
+ ...m == null ? [] : [{
617
719
  key: "chat-settings",
618
- label: p.menuItemLabel ?? "Chat settings",
619
- icon: /* @__PURE__ */ z(de, {
620
- size: l,
720
+ label: m.menuItemLabel ?? "Chat settings",
721
+ icon: /* @__PURE__ */ G(se, {
722
+ size: c,
621
723
  "aria-hidden": !0
622
724
  }),
623
- iconAfter: g ? /* @__PURE__ */ z(ie, {
624
- size: l,
725
+ iconAfter: D ? /* @__PURE__ */ G(P, {
726
+ size: c,
625
727
  stroke: 1.5,
626
- className: "text-secondary rtl:scale-x-[-1]",
728
+ style: I,
729
+ className: o("rtl:scale-x-[-1]", Ke.chevronIcon),
627
730
  "aria-hidden": !0
628
731
  }) : null,
629
- onClick: () => x(!0)
732
+ onClick: () => j(!0)
630
733
  }]
631
734
  ], [
632
735
  t,
633
736
  e,
634
- p,
635
737
  m,
636
- g
738
+ h,
739
+ D,
740
+ le,
741
+ x,
742
+ ue,
743
+ C,
744
+ w,
745
+ I
637
746
  ]);
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,
747
+ if (L.length === 0) return null;
748
+ let R = /* @__PURE__ */ G(_, {
749
+ matchReferenceWidth: !1,
750
+ placement: "bottom-start",
751
+ listClassName: f,
752
+ items: L,
753
+ open: C == null ? void 0 : re,
754
+ onOpenChange: C == null ? void 0 : F,
755
+ children: /* @__PURE__ */ G(b, {
756
+ icon: /* @__PURE__ */ G(ae, {
757
+ size: d.LG,
642
758
  "aria-hidden": !0
643
759
  }),
644
760
  "aria-label": n,
645
761
  tooltipProps: { tooltip: n },
646
- className: s("size-10 flex-shrink-0", d && "pointer-events-none opacity-50"),
647
- onClick: () => y(!0)
762
+ disabled: p
763
+ })
764
+ });
765
+ return /* @__PURE__ */ G(W, { children: D ? /* @__PURE__ */ K(W, { children: [
766
+ /* @__PURE__ */ G(b, {
767
+ icon: /* @__PURE__ */ G(ae, {
768
+ size: d.LG,
769
+ "aria-hidden": !0
770
+ }),
771
+ "aria-label": n,
772
+ size: v.Large,
773
+ tooltipProps: { tooltip: n },
774
+ disabled: p,
775
+ onClick: () => k(!0)
648
776
  }),
649
- /* @__PURE__ */ z(Be, {
650
- isOpen: _,
777
+ /* @__PURE__ */ G(Le, {
778
+ isOpen: O,
651
779
  title: r,
652
- closeLabel: i,
653
- onClose: () => y(!1),
654
- style: o,
655
- items: S,
780
+ closeLabel: l,
781
+ onClose: () => k(!1),
782
+ style: u,
783
+ items: L,
656
784
  className: "pb-4",
657
785
  btnTextClassName: "flex-1"
658
786
  }),
659
- p != null && /* @__PURE__ */ z(Ge, {
660
- isOpen: b,
787
+ le && /* @__PURE__ */ G(Ge, {
788
+ isOpen: ee,
661
789
  onBack: () => {
662
- x(!1), y(!0);
790
+ M(!1), k(!0);
663
791
  },
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
792
+ backLabel: S,
793
+ onClose: () => M(!1),
794
+ closeLabel: l,
795
+ style: u,
796
+ title: x,
797
+ items: g,
798
+ onToolToggle: y
799
+ }),
800
+ C != null && /* @__PURE__ */ G(q, {
801
+ isOpen: te,
802
+ title: w,
803
+ closeLabel: l,
804
+ onBack: () => {
805
+ ne(!1), k(!0);
806
+ },
807
+ backLabel: T,
808
+ onClose: () => ne(!1),
809
+ style: u,
810
+ children: C(() => ne(!1))
811
+ }),
812
+ m != null && /* @__PURE__ */ G(Ve, {
813
+ isOpen: A,
814
+ onBack: () => {
815
+ j(!1), k(!0);
816
+ },
817
+ backLabel: m.backLabel ?? "Back",
818
+ onClose: () => j(!1),
819
+ closeLabel: l,
820
+ style: u,
821
+ features: m.features,
822
+ initialResponseFormat: m.responseFormat ?? i.Markdown,
823
+ initialSystemPrompt: m.systemPrompt,
824
+ initialTemperature: m.temperature,
825
+ onSave: m.onSave,
826
+ title: m.title,
827
+ responseFormatLabel: m.responseFormatLabel,
828
+ responseFormatHint: m.responseFormatHint,
829
+ responseFormatMarkdownLabel: m.responseFormatMarkdownLabel,
830
+ responseFormatPlainTextLabel: m.responseFormatPlainTextLabel,
831
+ systemPromptLabel: m.systemPromptLabel,
832
+ systemPromptTooltip: m.systemPromptTooltip,
833
+ temperatureLabel: m.temperatureLabel,
834
+ temperatureLabels: m.temperatureLabels,
835
+ temperatureHint: m.temperatureHint,
836
+ saveLabel: m.saveLabel,
837
+ saveDisabledTooltip: m.saveDisabledTooltip
700
838
  })
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
839
+ ] }) : /* @__PURE__ */ K(W, { children: [R, m != null && A && /* @__PURE__ */ G(Ue, {
840
+ features: m.features,
841
+ initialResponseFormat: m.responseFormat ?? i.Markdown,
842
+ initialSystemPrompt: m.systemPrompt,
843
+ initialTemperature: m.temperature,
844
+ onSave: m.onSave,
845
+ onClose: () => j(!1),
846
+ title: m.title,
847
+ responseFormatLabel: m.responseFormatLabel,
848
+ responseFormatHint: m.responseFormatHint,
849
+ responseFormatMarkdownLabel: m.responseFormatMarkdownLabel,
850
+ responseFormatPlainTextLabel: m.responseFormatPlainTextLabel,
851
+ systemPromptLabel: m.systemPromptLabel,
852
+ systemPromptTooltip: m.systemPromptTooltip,
853
+ temperatureLabel: m.temperatureLabel,
854
+ temperatureLabels: m.temperatureLabels,
855
+ temperatureHint: m.temperatureHint,
856
+ saveLabel: m.saveLabel,
857
+ saveDisabledTooltip: m.saveDisabledTooltip
720
858
  })] }) });
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) => {
859
+ }, J = {
860
+ chip: "_chip_1gu87_1",
861
+ chipIcon: "_chipIcon_1gu87_6",
862
+ chipText: "_chipText_1gu87_10",
863
+ chipClose: "_chipClose_1gu87_14"
864
+ }, 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 }) => {
865
+ let u = e.filter((e) => e.isSelected);
866
+ if (u.length === 0) return null;
867
+ let d = a({
868
+ "--ci-chip-bg": l?.chipBg,
869
+ "--ci-chip-border": l?.chipBorder,
870
+ "--ci-chip-icon": l?.chipIcon,
871
+ "--ci-chip-text": l?.chipText,
872
+ "--ci-chip-close": l?.chipClose,
873
+ "--ci-chip-close-hover": l?.chipCloseHover
874
+ });
875
+ if (n) {
876
+ let e = u.length === 1, t = e ? u[0].icon : /* @__PURE__ */ G(ce, {
877
+ size: c,
878
+ "aria-hidden": !0
879
+ }), n = e ? u[0].label : r(u.length);
880
+ return /* @__PURE__ */ G("div", {
881
+ className: "flex flex-wrap items-center gap-2",
882
+ style: d,
883
+ children: /* @__PURE__ */ K("div", {
884
+ className: o(J.chip, "flex min-w-0 items-center gap-1.5 rounded-full border px-2 py-1"),
885
+ children: [/* @__PURE__ */ G("span", {
886
+ className: o(J.chipIcon, "shrink-0"),
887
+ "aria-hidden": !0,
888
+ children: t
889
+ }), /* @__PURE__ */ G("span", {
890
+ className: o(J.chipText, s?.fontClassName || "dial-small-paragraph-text", "truncate"),
891
+ children: n
892
+ })]
893
+ })
894
+ });
895
+ }
896
+ return /* @__PURE__ */ G("div", {
897
+ className: "flex flex-wrap items-center gap-2",
898
+ style: d,
899
+ children: u.map((e) => /* @__PURE__ */ K("div", {
900
+ className: o(J.chip, "flex items-center gap-1.5 rounded-full border py-1 pe-1 ps-2"),
901
+ children: [
902
+ /* @__PURE__ */ G("span", {
903
+ className: J.chipIcon,
904
+ "aria-hidden": !0,
905
+ children: e.icon
906
+ }),
907
+ /* @__PURE__ */ G("span", {
908
+ className: o(J.chipText, s?.fontClassName || "dial-small-paragraph-text"),
909
+ children: e.label
910
+ }),
911
+ /* @__PURE__ */ G("button", {
912
+ type: "button",
913
+ onClick: () => t(e.id),
914
+ className: o(J.chipClose, "flex items-center rounded p-0.5 transition-colors"),
915
+ "aria-label": i(e.label),
916
+ children: /* @__PURE__ */ G(le, {
917
+ size: 12,
918
+ "aria-hidden": !0
919
+ })
920
+ })
921
+ ]
922
+ }, e.id))
923
+ });
924
+ }, Y = {
925
+ wrapper: "_wrapper_teqwe_1",
926
+ wrapperDisabled: "_wrapperDisabled_teqwe_8",
927
+ textarea: "_textarea_teqwe_13",
928
+ modelSelectorButton: "_modelSelectorButton_teqwe_24",
929
+ modelSelectorCaret: "_modelSelectorCaret_teqwe_24",
930
+ modelSelectorButtonDisabled: "_modelSelectorButtonDisabled_teqwe_33"
931
+ }, X = {
932
+ wrapperError: "_wrapperError_129ri_1",
933
+ waveformCanvas: "_waveformCanvas_129ri_5",
934
+ recordingDot: "_recordingDot_129ri_19",
935
+ "recording-pulse": "_recording-pulse_129ri_1"
936
+ }, 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 }) => {
937
+ 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
938
  let t = e.getContext("2d");
732
939
  if (!t) return;
733
940
  e.width = e.clientWidth || 200, e.height = e.clientHeight || 32;
734
941
  let { width: n, height: r } = e;
735
942
  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;
943
+ let i = Math.min(Math.max(1, Math.floor(n / Qe)), $e - 1), a = p.current, o = m.current;
737
944
  t.save(), t.beginPath(), t.rect(0, 0, n, r), t.clip(), t.translate(-o, 0);
738
945
  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);
946
+ 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);
947
+ t.fillRect(e * Qe, (r - c) / 2, Ze, c);
741
948
  }
742
949
  t.restore();
743
950
  }, []);
744
- N(() => {
745
- if (!y) return;
746
- let e = p.current;
951
+ B(() => {
952
+ if (!h) return;
953
+ let e = u.current;
747
954
  if (!e) return;
748
- m.current.fill(0), h.current = 0, g.current = 0;
955
+ f.current.fill(0), p.current = 0, m.current = 0;
749
956
  let n, r = () => {
750
- if (g.current += 1, g.current >= Je) {
751
- g.current -= Je;
957
+ if (m.current += 1, m.current >= Qe) {
958
+ m.current -= Qe;
752
959
  let e = t.current;
753
960
  if (e) {
754
961
  let t = new Uint8Array(e.frequencyBinCount);
@@ -758,208 +965,198 @@ var Ke = ({ onAttachClick: e, attachLabel: t, addMenuTitle: n, menuTitle: r, men
758
965
  let r = (t[e] - 128) / 128;
759
966
  n += r * r;
760
967
  }
761
- m.current[h.current % J] = Math.sqrt(n / t.length), h.current++;
968
+ f.current[p.current % $e] = Math.sqrt(n / t.length), p.current++;
762
969
  }
763
970
  }
764
- x(e), n = requestAnimationFrame(r);
971
+ _(e), n = requestAnimationFrame(r);
765
972
  };
766
973
  return n = requestAnimationFrame(r), () => {
767
974
  cancelAnimationFrame(n);
768
975
  };
769
976
  }, [
770
- y,
977
+ h,
771
978
  t,
772
- x
773
- ]), N(() => {
774
- let e = p.current;
979
+ _
980
+ ]), B(() => {
981
+ let e = u.current;
775
982
  if (!e) return;
776
983
  let t = new ResizeObserver(() => {
777
- x(e);
984
+ _(e);
778
985
  });
779
986
  return t.observe(e), () => t.disconnect();
780
- }, [x]);
781
- let S = /* @__PURE__ */ B("div", {
987
+ }, [_]);
988
+ let v = /* @__PURE__ */ K("div", {
782
989
  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,
990
+ children: [/* @__PURE__ */ G(b, {
991
+ icon: /* @__PURE__ */ G(le, {
992
+ size: d.LG,
786
993
  "aria-hidden": !0
787
994
  }),
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,
995
+ "aria-label": s,
996
+ onClick: i
997
+ }), h && /* @__PURE__ */ G(E, {
998
+ icon: /* @__PURE__ */ G(F, {
999
+ size: d.LG,
795
1000
  "aria-hidden": !0
796
1001
  }),
797
- "aria-label": o,
798
- className: "size-10 flex-shrink-0",
799
- onClick: i
1002
+ onClick: () => r?.(),
1003
+ "aria-label": a
800
1004
  })]
801
1005
  });
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,
1006
+ return /* @__PURE__ */ K("div", {
1007
+ className: l,
1008
+ children: [/* @__PURE__ */ K("div", {
1009
+ style: c,
1010
+ 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),
1011
+ children: [/* @__PURE__ */ K("div", {
1012
+ className: "flex min-w-0 flex-1 items-center gap-3",
1013
+ children: [h && /* @__PURE__ */ G("span", {
1014
+ className: o(X.recordingDot, "pointer-events-none block size-[8px] rounded-3xl"),
811
1015
  "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,
1016
+ }), /* @__PURE__ */ G("canvas", {
1017
+ ref: u,
818
1018
  height: 32,
819
- className: s(q.waveformCanvas, "h-8 min-w-0 flex-1 desktop:h-6")
1019
+ className: o(X.waveformCanvas, "h-8 min-w-0 flex-1 desktop:h-6")
820
1020
  })]
821
- }), S]
822
- }), b && r && /* @__PURE__ */ z(_, {
823
- text: r,
1021
+ }), v]
1022
+ }), g && n && /* @__PURE__ */ G(y, {
1023
+ text: n,
824
1024
  className: "mt-1 px-1"
825
1025
  })]
826
1026
  });
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,
1027
+ }, tt = ({ onSend: e, isDisabled: t = !1, ariaLabel: n = "Send message", isExiting: r = !1 }) => /* @__PURE__ */ G(E, {
1028
+ "aria-label": n,
857
1029
  onClick: () => e?.(),
858
- type: "button",
859
- children: /* @__PURE__ */ z(le, {
860
- size: f.LG,
861
- className: Y.stopIcon
1030
+ disabled: t,
1031
+ "aria-hidden": r,
1032
+ icon: /* @__PURE__ */ G(M, {
1033
+ size: d.LG,
1034
+ className: "rtl:scale-x-[-1]"
862
1035
  })
863
- }), $e = ({ size: e = 20 }) => /* @__PURE__ */ z(w, {
864
- variant: T.Circular,
1036
+ }), nt = ({ onStop: e, ariaLabel: t = "Stop streaming" }) => /* @__PURE__ */ G(A, {
1037
+ icon: /* @__PURE__ */ G(I, { size: d.LG }),
1038
+ onClick: () => e?.(),
1039
+ "aria-label": t
1040
+ }), Z = ({ size: e = 20 }) => /* @__PURE__ */ G(O, {
1041
+ variant: k.Circular,
865
1042
  width: e,
866
1043
  height: e,
867
1044
  active: !0
868
- }), et = ({ loadingLabel: e }) => /* @__PURE__ */ B("span", {
1045
+ }), rt = ({ loadingLabel: e }) => /* @__PURE__ */ K("span", {
869
1046
  className: "flex min-w-0 flex-1 items-center",
870
- children: [/* @__PURE__ */ z(w, {
871
- variant: T.Text,
1047
+ children: [/* @__PURE__ */ G(O, {
1048
+ variant: k.Text,
872
1049
  width: "100%",
873
1050
  height: 16,
874
1051
  active: !0
875
- }), e && /* @__PURE__ */ z("span", {
1052
+ }), e && /* @__PURE__ */ G("span", {
876
1053
  className: "sr-only",
877
1054
  children: e
878
1055
  })]
879
- }), tt = ({ loadingLabel: e }) => /* @__PURE__ */ z("div", {
1056
+ }), it = ({ loadingLabel: e }) => /* @__PURE__ */ G("div", {
880
1057
  role: "status",
881
1058
  "aria-label": e,
882
- children: Array.from({ length: 7 }).map((e, t) => /* @__PURE__ */ B("div", {
1059
+ children: Array.from({ length: 7 }).map((e, t) => /* @__PURE__ */ K("div", {
883
1060
  className: "flex h-11 items-center gap-3 px-4",
884
1061
  "aria-hidden": "true",
885
- children: [/* @__PURE__ */ z($e, {}), /* @__PURE__ */ z(et, {})]
1062
+ children: [/* @__PURE__ */ G(Z, {}), /* @__PURE__ */ G(rt, {})]
886
1063
  }, t))
887
- }), nt = (e) => e.displayName ?? e.id, rt = (e, t) => {
1064
+ }), at = (e) => e.displayName ?? e.id, ot = (e, t) => {
888
1065
  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, {
1066
+ return n ? e.filter((e) => at(e).toLowerCase().includes(n)) : e;
1067
+ }, st = (e, t, r, i = 18, a) => /* @__PURE__ */ G(n, {
891
1068
  src: e,
892
1069
  size: i,
893
1070
  labels: { tooltip: a },
894
1071
  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;
1072
+ }), ct = {
1073
+ searchHeader: "_searchHeader_ibyso_1",
1074
+ selectedItem: "_selectedItem_ibyso_5",
1075
+ selectedItemCheck: "_selectedItemCheck_ibyso_9"
1076
+ }, lt = ({ deployments: e, selectedDeploymentId: t, onDeploymentChange: n, modelSelectorLabels: r, searchHeaderClassName: i = ct.searchHeader, selectedItemClassName: s = ct.selectedItem, selectedItemCheckClassName: c = ct.selectedItemCheck, colors: l }) => {
1077
+ let [u, f] = U(""), p = V(() => e?.find((e) => e.id === t), [e, t]), h = r?.loading !== void 0, g = !h && !p && !!t, _ = V(() => h ? /* @__PURE__ */ G(Z, { size: d.LG }) : st(p?.iconUrl, p?.type, p?.displayName ?? p?.id ?? "", d.LG, g ? r?.unavailableTooltip ?? "This deployment is no longer available" : void 0), [
1078
+ h,
1079
+ p,
1080
+ g,
1081
+ r?.unavailableTooltip
1082
+ ]), y = p?.displayName ?? p?.id;
897
1083
  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) => ({
1084
+ selectorIcon: _,
1085
+ selectorAriaLabel: y ? `${r?.ariaLabel ?? "Select model"}: ${y}` : r?.ariaLabel ?? "Select model",
1086
+ selectedLabel: y,
1087
+ menuItems: V(() => {
1088
+ if (h) return Array.from({ length: 7 }, (e, t) => ({
903
1089
  key: `__loading-${t}`,
904
- icon: /* @__PURE__ */ z($e, {}),
905
- label: /* @__PURE__ */ z(et, { loadingLabel: t === 0 ? i?.loading : void 0 }),
1090
+ icon: /* @__PURE__ */ G(Z, {}),
1091
+ label: /* @__PURE__ */ G(rt, { loadingLabel: t === 0 ? r?.loading : void 0 }),
906
1092
  disabled: !0
907
1093
  }));
908
1094
  if (!e || e.length === 0) {
909
- let e = i?.error ?? i?.empty;
1095
+ let e = r?.error ?? r?.empty;
910
1096
  return e ? [{
911
1097
  key: "__state",
912
1098
  label: e,
913
1099
  disabled: !0
914
1100
  }] : [];
915
1101
  }
916
- return rt(e, o).map((e) => {
917
- let i = e.id === t;
1102
+ return ot(e, u).map((e) => {
1103
+ let r = e.id === t;
918
1104
  return {
919
1105
  key: e.id,
920
- label: /* @__PURE__ */ B("span", {
1106
+ label: /* @__PURE__ */ K("span", {
921
1107
  className: "flex w-full items-center justify-between gap-2",
922
- children: [/* @__PURE__ */ z(r, {
923
- text: nt(e),
924
- query: o,
1108
+ style: a({ "--ms-selected-item-check": l?.selectedItemCheck }),
1109
+ children: [/* @__PURE__ */ G(x, {
1110
+ text: at(e),
1111
+ query: u,
925
1112
  maxLines: 1
926
- }), i && /* @__PURE__ */ z(Ve, { gradientId: "ms-check-grad" })]
1113
+ }), r && /* @__PURE__ */ G(N, {
1114
+ size: d.SM,
1115
+ stroke: 2,
1116
+ className: c,
1117
+ "aria-hidden": !0
1118
+ })]
927
1119
  }),
928
- icon: it(e.iconUrl, e.type, e.displayName ?? e.id),
1120
+ icon: st(e.iconUrl, e.type, e.displayName ?? e.id),
929
1121
  onClick: () => n?.(e.id),
930
- className: i ? "bg-accent-primary-alpha" : void 0
1122
+ className: r ? s : void 0
931
1123
  };
932
1124
  });
933
1125
  }, [
934
1126
  e,
1127
+ h,
935
1128
  u,
936
- o,
937
1129
  t,
938
- i,
939
- n
1130
+ r,
1131
+ n,
1132
+ s,
1133
+ c,
1134
+ l?.selectedItemCheck
940
1135
  ]),
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,
1136
+ menuHeader: V(() => !h && e && e.length > 0 ? /* @__PURE__ */ G("div", {
1137
+ style: a({ "--ms-search-header-bg": l?.searchHeaderBackground }),
1138
+ className: o("sticky top-0 z-10 pb-1 pe-2 pt-2", i),
1139
+ children: /* @__PURE__ */ G(m, {
1140
+ value: u,
1141
+ placeholder: r?.searchPlaceholder ?? "Search",
1142
+ size: v.Small,
947
1143
  wrapperClassName: "border-0",
948
- onChange: c
1144
+ onChange: f
949
1145
  })
950
1146
  }) : void 0, [
951
1147
  e,
1148
+ h,
952
1149
  u,
953
- o,
1150
+ r,
954
1151
  i,
955
- a
1152
+ l?.searchHeaderBackground
956
1153
  ]),
957
1154
  onOpenChange: (e) => {
958
- e || c("");
1155
+ e || f("");
959
1156
  }
960
1157
  };
961
- }, X = typeof window < "u" ? ge : N;
962
- function ot(e) {
1158
+ }, ut = typeof window < "u" ? fe : B;
1159
+ function dt(e) {
963
1160
  if (e !== void 0) switch (typeof e) {
964
1161
  case "number": return e;
965
1162
  case "string":
@@ -967,15 +1164,15 @@ function ot(e) {
967
1164
  break;
968
1165
  }
969
1166
  }
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({
1167
+ function ft({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
1168
+ let { styleHeight: s, styleWidth: c } = V(() => ({
1169
+ styleHeight: dt(o?.height),
1170
+ styleWidth: dt(o?.width)
1171
+ }), [o?.height, o?.width]), [l, u] = U({
975
1172
  height: t,
976
1173
  width: n
977
1174
  }), d = r || a === "only-height" && s !== void 0 || a === "only-width" && c !== void 0 || s !== void 0 && c !== void 0;
978
- return X(() => {
1175
+ return ut(() => {
979
1176
  if (i === null || d) return;
980
1177
  let t = new ResizeObserver((e) => {
981
1178
  for (let t of e) {
@@ -995,7 +1192,7 @@ function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
995
1192
  i,
996
1193
  s,
997
1194
  c
998
- ]), F(() => ({
1195
+ ]), V(() => ({
999
1196
  height: s ?? l.height,
1000
1197
  width: c ?? l.width
1001
1198
  }), [
@@ -1004,26 +1201,26 @@ function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
1004
1201
  c
1005
1202
  ]);
1006
1203
  }
1007
- function ct(e) {
1008
- let t = I(() => {
1204
+ function pt(e) {
1205
+ let t = H(() => {
1009
1206
  throw Error("Cannot call during render.");
1010
1207
  });
1011
- return X(() => {
1208
+ return ut(() => {
1012
1209
  t.current = e;
1013
- }, [e]), M((e) => t.current?.(e), [t]);
1210
+ }, [e]), z((e) => t.current?.(e), [t]);
1014
1211
  }
1015
- var Z = null;
1016
- function lt(e = !1) {
1017
- if (Z === null || e) {
1212
+ var mt = null;
1213
+ function ht(e = !1) {
1214
+ if (mt === null || e) {
1018
1215
  let e = document.createElement("div"), t = e.style;
1019
1216
  t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
1020
1217
  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;
1218
+ 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
1219
  }
1023
- return Z;
1220
+ return mt;
1024
1221
  }
1025
- function ut({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1026
- if (t === "horizontal" && n) switch (lt()) {
1222
+ function gt({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1223
+ if (t === "horizontal" && n) switch (ht()) {
1027
1224
  case "negative": return -r;
1028
1225
  case "positive-descending":
1029
1226
  if (e) {
@@ -1037,13 +1234,13 @@ function ut({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1037
1234
  function Q(e, t = "Assertion error") {
1038
1235
  if (!e) throw console.error(t), Error(t);
1039
1236
  }
1040
- function $(e, t) {
1237
+ function _t(e, t) {
1041
1238
  if (e === t) return !0;
1042
1239
  if (!!e != !!t || (Q(e !== void 0), Q(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
1043
1240
  for (let n in e) if (!Object.is(t[n], e[n])) return !1;
1044
1241
  return !0;
1045
1242
  }
1046
- function dt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1243
+ function vt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1047
1244
  if (t === 0) return 0;
1048
1245
  if (typeof n == "number") return t * n;
1049
1246
  {
@@ -1051,9 +1248,9 @@ function dt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1051
1248
  return Q(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
1052
1249
  }
1053
1250
  }
1054
- function ft({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
1251
+ function yt({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
1055
1252
  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({
1253
+ let s = vt({
1057
1254
  cachedBounds: t,
1058
1255
  itemCount: r,
1059
1256
  itemSize: i
@@ -1065,7 +1262,7 @@ function ft({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, co
1065
1262
  default: return a >= u && a <= l ? a : a < u ? u : l;
1066
1263
  }
1067
1264
  }
1068
- function pt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
1265
+ function bt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
1069
1266
  let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
1070
1267
  for (; u < a;) {
1071
1268
  let n = e.get(u);
@@ -1084,7 +1281,7 @@ function pt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemC
1084
1281
  stopIndexOverscan: l
1085
1282
  };
1086
1283
  }
1087
- function mt({ itemCount: e, itemProps: t, itemSize: n }) {
1284
+ function xt({ itemCount: e, itemProps: t, itemSize: n }) {
1088
1285
  let r = /* @__PURE__ */ new Map();
1089
1286
  return {
1090
1287
  get(i) {
@@ -1121,8 +1318,8 @@ function mt({ itemCount: e, itemProps: t, itemSize: n }) {
1121
1318
  }
1122
1319
  };
1123
1320
  }
1124
- function ht({ itemCount: e, itemProps: t, itemSize: n }) {
1125
- return F(() => mt({
1321
+ function St({ itemCount: e, itemProps: t, itemSize: n }) {
1322
+ return V(() => xt({
1126
1323
  itemCount: e,
1127
1324
  itemProps: t,
1128
1325
  itemSize: n
@@ -1132,7 +1329,7 @@ function ht({ itemCount: e, itemProps: t, itemSize: n }) {
1132
1329
  n
1133
1330
  ]);
1134
1331
  }
1135
- function gt({ containerSize: e, itemSize: t }) {
1332
+ function Ct({ containerSize: e, itemSize: t }) {
1136
1333
  let n;
1137
1334
  switch (typeof t) {
1138
1335
  case "string":
@@ -1144,21 +1341,21 @@ function gt({ containerSize: e, itemSize: t }) {
1144
1341
  }
1145
1342
  return n;
1146
1343
  }
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({
1344
+ function wt({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
1345
+ let { height: u = n, width: d = n } = ft({
1149
1346
  defaultHeight: r === "vertical" ? n : void 0,
1150
1347
  defaultWidth: r === "horizontal" ? n : void 0,
1151
1348
  element: e,
1152
1349
  mode: r === "vertical" ? "only-height" : "only-width",
1153
1350
  style: t
1154
- }), f = I({
1351
+ }), f = H({
1155
1352
  height: 0,
1156
1353
  width: 0
1157
- }), p = r === "vertical" ? u : d, m = gt({
1354
+ }), p = r === "vertical" ? u : d, m = Ct({
1158
1355
  containerSize: p,
1159
1356
  itemSize: s
1160
1357
  });
1161
- ge(() => {
1358
+ fe(() => {
1162
1359
  if (typeof c == "function") {
1163
1360
  let e = f.current;
1164
1361
  (e.height !== u || e.width !== d) && (c({
@@ -1171,11 +1368,11 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1171
1368
  c,
1172
1369
  d
1173
1370
  ]);
1174
- let h = ht({
1371
+ let h = St({
1175
1372
  itemCount: a,
1176
1373
  itemProps: o,
1177
1374
  itemSize: m
1178
- }), g = M((e) => h.get(e), [h]), [_, v] = L(() => pt({
1375
+ }), g = z((e) => h.get(e), [h]), [_, v] = U(() => bt({
1179
1376
  cachedBounds: h,
1180
1377
  containerScrollOffset: 0,
1181
1378
  containerSize: p,
@@ -1186,7 +1383,7 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1186
1383
  startIndexOverscan: Math.min(a - 1, _.startIndexOverscan),
1187
1384
  stopIndexVisible: Math.min(a - 1, _.stopIndexVisible),
1188
1385
  stopIndexOverscan: Math.min(a - 1, _.stopIndexOverscan)
1189
- }, C = M(() => dt({
1386
+ }, C = z(() => vt({
1190
1387
  cachedBounds: h,
1191
1388
  itemCount: a,
1192
1389
  itemSize: m
@@ -1194,9 +1391,9 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1194
1391
  h,
1195
1392
  a,
1196
1393
  m
1197
- ]), w = M((t) => pt({
1394
+ ]), w = z((t) => bt({
1198
1395
  cachedBounds: h,
1199
- containerScrollOffset: ut({
1396
+ containerScrollOffset: gt({
1200
1397
  containerElement: e,
1201
1398
  direction: r,
1202
1399
  isRtl: i,
@@ -1214,19 +1411,19 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1214
1411
  a,
1215
1412
  l
1216
1413
  ]);
1217
- return X(() => {
1414
+ return ut(() => {
1218
1415
  v(w((r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0));
1219
1416
  }, [
1220
1417
  e,
1221
1418
  r,
1222
1419
  w
1223
- ]), X(() => {
1420
+ ]), ut(() => {
1224
1421
  if (!e) return;
1225
1422
  let t = () => {
1226
1423
  v((t) => {
1227
- let { scrollLeft: n, scrollTop: o } = e, s = pt({
1424
+ let { scrollLeft: n, scrollTop: o } = e, s = bt({
1228
1425
  cachedBounds: h,
1229
- containerScrollOffset: ut({
1426
+ containerScrollOffset: gt({
1230
1427
  containerElement: e,
1231
1428
  direction: r,
1232
1429
  isRtl: i,
@@ -1236,7 +1433,7 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1236
1433
  itemCount: a,
1237
1434
  overscanCount: l
1238
1435
  });
1239
- return $(s, t) ? t : s;
1436
+ return _t(s, t) ? t : s;
1240
1437
  });
1241
1438
  };
1242
1439
  return e.addEventListener("scroll", t), () => {
@@ -1252,8 +1449,8 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1252
1449
  ]), {
1253
1450
  getCellBounds: g,
1254
1451
  getEstimatedSize: C,
1255
- scrollToIndex: ct(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
1256
- let s = ft({
1452
+ scrollToIndex: pt(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
1453
+ let s = yt({
1257
1454
  align: t,
1258
1455
  cachedBounds: h,
1259
1456
  containerScrollOffset: n,
@@ -1263,14 +1460,14 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1263
1460
  itemSize: m
1264
1461
  });
1265
1462
  if (e) {
1266
- if (s = ut({
1463
+ if (s = gt({
1267
1464
  containerElement: e,
1268
1465
  direction: r,
1269
1466
  isRtl: i,
1270
1467
  scrollOffset: s
1271
1468
  }), typeof e.scrollTo != "function") {
1272
1469
  let e = w(s);
1273
- $(_, e) || v(e);
1470
+ _t(_, e) || v(e);
1274
1471
  }
1275
1472
  return s;
1276
1473
  }
@@ -1281,30 +1478,30 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1281
1478
  stopIndexVisible: x
1282
1479
  };
1283
1480
  }
1284
- function vt(e) {
1285
- return F(() => e, Object.values(e));
1481
+ function $(e) {
1482
+ return V(() => e, Object.values(e));
1286
1483
  }
1287
- function yt(e, t) {
1484
+ function Tt(e, t) {
1288
1485
  let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
1289
- return $(n, a) && $(r, o) && $(i, s);
1486
+ return _t(n, a) && _t(r, o) && _t(i, s);
1290
1487
  }
1291
- function bt(e) {
1488
+ function Et(e) {
1292
1489
  return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
1293
1490
  }
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({
1491
+ var Dt = "data-react-window-index";
1492
+ 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 }) {
1493
+ 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
1494
  containerElement: g,
1298
1495
  containerStyle: f,
1299
1496
  defaultContainerSize: n,
1300
1497
  direction: "vertical",
1301
1498
  itemCount: c,
1302
1499
  itemProps: m,
1303
- itemSize: F(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
1500
+ itemSize: V(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
1304
1501
  onResize: i,
1305
1502
  overscanCount: o
1306
1503
  });
1307
- P(r, () => ({
1504
+ de(r, () => ({
1308
1505
  get element() {
1309
1506
  return g;
1310
1507
  },
@@ -1319,12 +1516,12 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1319
1516
  top: r
1320
1517
  });
1321
1518
  }
1322
- }), [g, x]), X(() => {
1519
+ }), [g, x]), ut(() => {
1323
1520
  if (!g) return;
1324
1521
  let e = Array.from(g.children).filter((e, t) => {
1325
1522
  if (e.hasAttribute("aria-hidden")) return !1;
1326
1523
  let n = `${S + t}`;
1327
- return e.setAttribute(xt, n), !0;
1524
+ return e.setAttribute(Dt, n), !0;
1328
1525
  });
1329
1526
  if (v) return l.observeRowElements(e);
1330
1527
  }, [
@@ -1333,7 +1530,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1333
1530
  l,
1334
1531
  S,
1335
1532
  w
1336
- ]), N(() => {
1533
+ ]), B(() => {
1337
1534
  S >= 0 && w >= 0 && a && a({
1338
1535
  startIndex: C,
1339
1536
  stopIndex: T
@@ -1348,11 +1545,11 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1348
1545
  w,
1349
1546
  T
1350
1547
  ]);
1351
- let E = F(() => {
1548
+ let E = V(() => {
1352
1549
  let e = [];
1353
1550
  if (c > 0) for (let t = S; t <= w; t++) {
1354
1551
  let n = y(t);
1355
- e.push(/* @__PURE__ */ me(h, {
1552
+ e.push(/* @__PURE__ */ L(h, {
1356
1553
  ...m,
1357
1554
  ariaAttributes: {
1358
1555
  "aria-posinset": t + 1,
@@ -1379,7 +1576,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1379
1576
  m,
1380
1577
  S,
1381
1578
  w
1382
- ]), D = /* @__PURE__ */ z("div", {
1579
+ ]), D = /* @__PURE__ */ G("div", {
1383
1580
  "aria-hidden": !0,
1384
1581
  style: {
1385
1582
  height: b(),
@@ -1387,7 +1584,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1387
1584
  zIndex: -1
1388
1585
  }
1389
1586
  });
1390
- return me(d, {
1587
+ return L(d, {
1391
1588
  role: "list",
1392
1589
  ...p,
1393
1590
  className: t,
@@ -1401,119 +1598,131 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1401
1598
  }
1402
1599
  }, E, e, D);
1403
1600
  }
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", {
1601
+ var kt = {
1602
+ divider: "_divider_s5khb_1",
1603
+ item: "_item_s5khb_5",
1604
+ itemIcon: "_itemIcon_s5khb_15",
1605
+ checkIcon: "_checkIcon_s5khb_19",
1606
+ stateLabel: "_stateLabel_s5khb_23"
1607
+ }, At = 44, jt = 8, Mt = ({ index: e, style: t, ariaAttributes: n, items: r, selectedDeploymentId: i, labelClassName: a, query: s, onSelect: c }) => {
1608
+ let u = r[e], f = st(u.iconUrl, u.type, u.displayName ?? u.id, d.SM), p = u.id === i;
1609
+ return /* @__PURE__ */ G("div", {
1413
1610
  style: t,
1414
1611
  ...n,
1415
- children: /* @__PURE__ */ z(p, {
1612
+ children: /* @__PURE__ */ G(l, {
1416
1613
  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
1614
+ className: o(kt.item, "h-full w-full gap-3 px-4"),
1615
+ iconBefore: /* @__PURE__ */ G("span", {
1616
+ className: kt.itemIcon,
1617
+ children: f
1421
1618
  }),
1422
- label: /* @__PURE__ */ B("span", {
1619
+ label: /* @__PURE__ */ K("span", {
1423
1620
  className: "flex flex-1 items-center justify-between gap-2",
1424
- children: [/* @__PURE__ */ z(r, {
1621
+ children: [/* @__PURE__ */ G(x, {
1425
1622
  text: u.displayName ?? u.id,
1426
- query: c,
1623
+ query: s,
1427
1624
  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,
1625
+ className: o(a, "min-w-0 flex-1 text-start")
1626
+ }), p && /* @__PURE__ */ G(N, {
1627
+ size: d.SM,
1628
+ className: kt.checkIcon,
1432
1629
  "aria-hidden": !0
1433
1630
  })]
1434
1631
  }),
1435
- onClick: () => l(u.id)
1632
+ onClick: () => c(u.id)
1436
1633
  })
1437
1634
  });
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("");
1635
+ }, 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: _ }) => {
1636
+ let [y, b] = U("");
1637
+ B(() => {
1638
+ e || b("");
1442
1639
  }, [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, {
1640
+ let x = s && s.length > 0, S = u !== void 0, C = !x && !S ? d ?? f : void 0, w = x ? ot(s, y) : [], T = (e) => {
1641
+ l(e), i();
1642
+ }, E = a({
1643
+ "--ci-sheet-divider": _?.divider,
1644
+ "--ci-sheet-text": _?.itemText,
1645
+ "--ci-sheet-item-hover": _?.itemHoverBg,
1646
+ "--ci-sheet-item-active": _?.itemActiveBg,
1647
+ "--ci-sheet-icon": _?.itemIcon,
1648
+ "--ci-check-icon": _?.checkIcon
1649
+ });
1650
+ return /* @__PURE__ */ G(q, {
1445
1651
  isOpen: e,
1446
1652
  title: t,
1447
1653
  closeLabel: n,
1448
1654
  onClose: i,
1449
- style: f,
1450
- titleClassName: p,
1655
+ style: p,
1656
+ titleClassName: h,
1451
1657
  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();
1658
+ colors: _?.shell,
1659
+ children: /* @__PURE__ */ K("div", {
1660
+ className: "contents",
1661
+ style: E,
1662
+ children: [x && !S && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("div", {
1663
+ className: "flex-shrink-0 px-4 py-[10px]",
1664
+ children: /* @__PURE__ */ G(m, {
1665
+ value: y,
1666
+ placeholder: r,
1667
+ size: v.Standard,
1668
+ onChange: b
1669
+ })
1670
+ }), /* @__PURE__ */ G("div", { className: o(kt.divider, "h-px flex-shrink-0") })] }), S ? /* @__PURE__ */ G(it, { loadingLabel: u }) : C ? /* @__PURE__ */ G("div", {
1671
+ role: "list",
1672
+ className: o(kt.stateLabel, g, "px-4 py-4"),
1673
+ children: C
1674
+ }) : /* @__PURE__ */ G(Ot, {
1675
+ role: "list",
1676
+ className: "overflow-y-auto",
1677
+ style: { height: Math.min(w.length, jt) * At },
1678
+ rowComponent: Mt,
1679
+ rowCount: w.length,
1680
+ rowHeight: At,
1681
+ rowProps: {
1682
+ items: w,
1683
+ selectedDeploymentId: c,
1684
+ labelClassName: g,
1685
+ query: y,
1686
+ onSelect: T
1478
1687
  }
1479
- }
1480
- })]
1688
+ })]
1689
+ })
1481
1690
  });
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({
1691
+ }, 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 }) => {
1692
+ let [h, y] = U(!1), { selectorIcon: x, selectorAriaLabel: S, selectedLabel: C, menuItems: w, menuHeader: T, onOpenChange: E } = lt({
1484
1693
  deployments: e,
1485
1694
  selectedDeploymentId: t,
1486
1695
  onDeploymentChange: n,
1487
1696
  modelSelectorLabels: r
1488
1697
  });
1489
1698
  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,
1699
+ let D = i || s ? "pointer-events-none opacity-50 cursor-not-allowed" : void 0, O = /* @__PURE__ */ G(te, {
1700
+ size: d.SM,
1492
1701
  className: Y.modelSelectorCaret,
1493
1702
  "aria-hidden": !0
1494
1703
  });
1495
- return a ? /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(O, {
1496
- tooltip: S,
1497
- children: /* @__PURE__ */ z(v, {
1498
- icon: /* @__PURE__ */ B("div", {
1704
+ return a ? /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G(g, {
1705
+ tooltip: C,
1706
+ children: /* @__PURE__ */ G(b, {
1707
+ icon: /* @__PURE__ */ K("div", {
1499
1708
  className: "flex items-center gap-1",
1500
- children: [b, D]
1709
+ children: [x, O]
1501
1710
  }),
1502
- "aria-label": x,
1711
+ "aria-label": S,
1503
1712
  onClick: () => {
1504
- c || y(!0);
1713
+ s || y(!0);
1505
1714
  },
1506
- className: s(Y.modelSelectorButton, E)
1715
+ className: o("w-[50px]", Y.modelSelectorButton, D)
1507
1716
  })
1508
- }), u ? /* @__PURE__ */ z(H, {
1509
- isOpen: _,
1717
+ }), l ? /* @__PURE__ */ G(q, {
1718
+ isOpen: h,
1510
1719
  title: r?.ariaLabel ?? "Select model",
1511
1720
  closeLabel: r?.closeLabel ?? "Close",
1512
1721
  onClose: () => y(!1),
1513
- style: l,
1514
- children: u(() => y(!1))
1515
- }) : /* @__PURE__ */ z(Dt, {
1516
- isOpen: _,
1722
+ style: c,
1723
+ children: l(() => y(!1))
1724
+ }) : /* @__PURE__ */ G(Nt, {
1725
+ isOpen: h,
1517
1726
  title: r?.ariaLabel ?? "Select model",
1518
1727
  closeLabel: r?.closeLabel ?? "Close",
1519
1728
  searchPlaceholder: r?.searchPlaceholder ?? "Search",
@@ -1524,337 +1733,385 @@ var Ct = {
1524
1733
  loadingLabel: r?.loading,
1525
1734
  errorLabel: r?.error,
1526
1735
  emptyLabel: r?.empty,
1527
- style: l
1528
- })] }) : u ? /* @__PURE__ */ z(h, {
1736
+ style: c
1737
+ })] }) : l ? /* @__PURE__ */ G(_, {
1529
1738
  placement: "top-end",
1530
1739
  matchReferenceWidth: !1,
1531
- open: d,
1740
+ open: u,
1532
1741
  onOpenChange: m,
1533
1742
  trigger: [],
1534
1743
  outsideClosable: !0,
1535
- renderOverlay: () => u(() => m?.(!1)),
1536
- listClassName: "cp-dropdown-overlay !w-[320px]",
1537
- children: /* @__PURE__ */ z(O, {
1538
- tooltip: S,
1539
- children: /* @__PURE__ */ B("button", {
1744
+ renderOverlay: () => l(() => m?.(!1)),
1745
+ listClassName: "!w-[368px] !bg-layer-raised",
1746
+ children: /* @__PURE__ */ G(g, {
1747
+ tooltip: C,
1748
+ children: /* @__PURE__ */ K("button", {
1540
1749
  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),
1750
+ "aria-label": S,
1751
+ "aria-disabled": s || void 0,
1752
+ className: o("flex items-center justify-center gap-1 rounded-full p-2", Y.modelSelectorButton, D, s && Y.modelSelectorButtonDisabled),
1543
1753
  onClick: () => {
1544
- !o && !i && !c && p?.();
1754
+ !i && !s && p?.();
1545
1755
  },
1546
- children: [b, D]
1756
+ children: [x, O]
1547
1757
  })
1548
1758
  })
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,
1759
+ }) : /* @__PURE__ */ G("div", {
1760
+ className: o(s && D),
1761
+ "aria-disabled": s || void 0,
1762
+ children: /* @__PURE__ */ G(g, {
1763
+ tooltip: C,
1764
+ children: /* @__PURE__ */ G(f, {
1765
+ icon: x,
1766
+ ariaLabel: S,
1767
+ items: w,
1768
+ menuHeader: T,
1559
1769
  placement: "bottom-end",
1560
1770
  matchReferenceWidth: !1,
1561
- 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)
1771
+ listClassName: "!w-[240px] !max-h-80",
1772
+ onOpenChange: s ? void 0 : E,
1773
+ size: v.Standard,
1774
+ caretIcon: O,
1775
+ iconClassName: s ? D : void 0,
1776
+ buttonClassName: o("bg-transparent", Y.modelSelectorButton, s && Y.modelSelectorButtonDisabled)
1567
1777
  })
1568
1778
  })
1569
1779
  });
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 ? [{
1780
+ }, 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: j = [], 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 }) => {
1781
+ let We = s(), [Ge, Ke] = U(!1), J = ke(je), Je = V(() => a({
1782
+ "--ci-bg": D?.background,
1783
+ "--ci-text": D?.text,
1784
+ "--ci-border": D?.border,
1785
+ "--ci-border-focus": D?.borderFocus,
1786
+ "--ci-placeholder": D?.placeholder,
1787
+ "--ci-text-disabled": D?.textDisabled,
1788
+ "--ci-model-selector-caret-color": D?.modelSelectorCaret,
1789
+ "--ci-model-selector-hover-bg": D?.modelSelectorHoverBg,
1790
+ "--ci-model-selector-disabled-color": D?.modelSelectorDisabled,
1791
+ "--ci-voice-error": D?.voiceError,
1792
+ "--ci-voice-waveform": D?.voiceWaveform,
1793
+ "--ci-voice-accent": D?.voiceAccent
1794
+ }), [D]), Ye = V(() => Me ? [{
1584
1795
  key: "dial-fs",
1585
- label: Ee ?? "DIAL file system",
1586
- icon: /* @__PURE__ */ z(ae, {
1587
- size: l,
1796
+ label: Ne ?? "DIAL file system",
1797
+ icon: /* @__PURE__ */ G(ne, {
1798
+ size: c,
1588
1799
  "aria-hidden": !0
1589
1800
  }),
1590
- onClick: Te
1591
- }] : [], [Te, Ee]), { message: U, setMessage: W, textareaRef: Ue, isMultiLine: We } = Ne({
1801
+ onClick: Me
1802
+ }] : [], [Me, Ne]), { message: X, setMessage: Ze, textareaRef: Qe, isMultiLine: $e } = Ae({
1592
1803
  messageProp: e,
1593
1804
  messageRevision: t
1594
- }), { attachments: G, buildAttachments: Ge, addAttachments: K, resetAttachments: q, handleRemove: qe, handleRetry: Je, handleExpand: J, hasBlockedAttachments: Ye } = Oe({
1595
- initialAttachments: de,
1805
+ }), { attachments: Z, buildAttachments: rt, addAttachments: it, resetAttachments: at, handleRemove: ot, handleRetry: st, handleExpand: ct, hasBlockedAttachments: lt } = Te({
1806
+ initialAttachments: oe,
1596
1807
  onUploadAttachment: r,
1597
- onAttachmentsChange: d,
1598
- validateAttachment: H,
1808
+ onAttachmentsChange: f,
1809
+ validateAttachment: Ie,
1599
1810
  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();
1811
+ onDropFilesConsumed: ee,
1812
+ pendingAttachments: M,
1813
+ onPendingAttachmentsConsumed: N,
1814
+ onExpandPastedText: z((e) => {
1815
+ Ze((t) => t ? `${t}\n${e}` : e);
1816
+ }, [Ze]),
1817
+ maximumAttachmentsAmount: ze,
1818
+ baseAttachmentsAmount: me.length,
1819
+ onAttachmentsLimitExceeded: Be
1820
+ }), { state: ut, analyserNodeRef: dt, errorMessage: ft, startRecording: pt, stopRecording: mt, discardRecording: ht } = Pe({ onAttachAudio: z((e) => {
1821
+ it(rt([e]));
1822
+ }, [it, rt]) }), gt = H(null), Q = H(null), { handlePaste: _t } = xe(it, Ve ? te : Infinity), vt = z((e) => {
1823
+ if (!Ve) {
1824
+ let t = e.clipboardData.getData("text/plain");
1825
+ t.length >= P && Ue?.(t.length, P);
1826
+ }
1827
+ _t(e);
1828
+ }, [
1829
+ Ve,
1830
+ P,
1831
+ Ue,
1832
+ _t
1833
+ ]), 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, [
1834
+ fe,
1835
+ St,
1836
+ l
1837
+ ]), Dt = async () => {
1838
+ if (de) return;
1839
+ if (!Ve && X.length >= P) {
1840
+ Ue?.(X.length, P);
1841
+ return;
1842
+ }
1843
+ let e = X, t = Z;
1844
+ Ze(""), J.reset();
1614
1845
  try {
1615
1846
  await n?.(e, t), t.forEach((e) => {
1616
- e.previewUrl && URL.revokeObjectURL(e.previewUrl);
1617
- }), q([]);
1847
+ e.previewUrl && URL.revokeObjectURL(e.previewUrl), e.playUrl && URL.revokeObjectURL(e.playUrl);
1848
+ }), at([]);
1618
1849
  } catch {
1619
- W(e), q(t);
1850
+ Ze(e), at(t);
1620
1851
  }
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);
1852
+ }, Ot = (e) => {
1853
+ if (!e.nativeEvent.isComposing && !R && !l && (e.key === "ArrowUp" || e.key === "ArrowDown")) {
1854
+ let t = e.currentTarget.selectionStart ?? 0, n = J.navigate(e.key === "ArrowUp" ? "up" : "down", X, t);
1624
1855
  if (n !== null) {
1625
- e.preventDefault(), W(n);
1856
+ e.preventDefault(), Ze(n);
1626
1857
  return;
1627
1858
  }
1628
1859
  }
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) => {
1860
+ 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());
1861
+ }, kt = (e) => {
1631
1862
  let t = Array.from(e.target.files ?? []);
1632
1863
  if (t.length === 0) return;
1633
- let n = Ge(t);
1634
- e.target.value = "", K(n);
1864
+ let n = rt(t);
1865
+ e.target.value = "", it(n);
1635
1866
  };
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
1867
+ if (ut !== "idle") return /* @__PURE__ */ G(et, {
1868
+ state: ut,
1869
+ analyserNodeRef: dt,
1870
+ errorMessage: ft,
1871
+ onStop: mt,
1872
+ onDiscard: ht,
1873
+ stopLabel: T,
1874
+ discardLabel: E,
1875
+ style: Je,
1876
+ className: k
1648
1877
  });
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,
1878
+ let At = /* @__PURE__ */ G("textarea", {
1879
+ 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]"),
1880
+ ref: Qe,
1881
+ autoFocus: Oe,
1882
+ value: X,
1654
1883
  onChange: (e) => {
1655
- W(e.target.value), Be.notifyChange(), u?.(e.target.value);
1884
+ Ze(e.target.value), J.notifyChange(), u?.(e.target.value);
1656
1885
  },
1657
- onKeyDown: pt,
1658
- onPaste: st,
1886
+ onKeyDown: Ot,
1887
+ onPaste: vt,
1659
1888
  placeholder: p,
1660
1889
  "aria-label": m,
1661
- disabled: P,
1890
+ disabled: R,
1662
1891
  rows: 1
1663
1892
  });
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],
1893
+ return /* @__PURE__ */ K("div", {
1894
+ ref: Q,
1895
+ style: Je,
1896
+ 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),
1897
+ children: [(me.length > 0 || Z.length > 0) && /* @__PURE__ */ G(ge, {
1898
+ attachments: [...me, ...Z],
1670
1899
  onRemove: (e) => {
1671
- V.some((t) => t.id === e) ? be?.(e) : qe(e);
1900
+ me.some((t) => t.id === e) ? he?.(e) : ot(e);
1672
1901
  },
1673
- onRetry: Je,
1674
- onExpand: J,
1902
+ onRetry: st,
1903
+ onExpand: ct,
1675
1904
  labels: {
1676
- removeLabel: x,
1677
- retryLabel: S
1905
+ removeLabel: b,
1906
+ retryLabel: x
1678
1907
  },
1679
- onAttachmentClick: De == null ? void 0 : (e) => {
1680
- let t = [...V, ...G].find((t) => t.id === e);
1681
- t != null && De(t);
1908
+ onAttachmentClick: Le == null ? void 0 : (e) => {
1909
+ let t = [...me, ...Z].find((t) => t.id === e);
1910
+ t != null && Le(t);
1682
1911
  }
1683
- }), he ? $ && ht : /* @__PURE__ */ B("div", {
1684
- className: s("flex items-center gap-2", $ ? "flex-wrap" : "flex-wrap desktop:flex-nowrap"),
1912
+ }), ue ? $ && At : /* @__PURE__ */ K("div", {
1913
+ className: o("flex items-center gap-2", $ ? "flex-wrap" : "flex-wrap desktop:flex-nowrap"),
1685
1914
  children: [
1686
- !pe && /* @__PURE__ */ B("div", {
1687
- className: s("order-2 flex", !$ && "desktop:order-1"),
1688
- children: [/* @__PURE__ */ z("input", {
1689
- ref: X,
1915
+ !ce && /* @__PURE__ */ K("div", {
1916
+ className: o("flex", "order-2", !$ && "desktop:order-1"),
1917
+ children: [/* @__PURE__ */ G("input", {
1918
+ ref: gt,
1690
1919
  type: "file",
1691
1920
  multiple: !0,
1692
1921
  accept: g,
1693
1922
  className: "sr-only",
1694
1923
  "aria-hidden": !0,
1695
1924
  tabIndex: -1,
1696
- onChange: mt
1697
- }), /* @__PURE__ */ z(Ke, {
1698
- onAttachClick: me ? void 0 : () => X.current?.click(),
1925
+ onChange: kt
1926
+ }), /* @__PURE__ */ G(qe, {
1927
+ onAttachClick: le ? void 0 : () => gt.current?.click(),
1699
1928
  attachLabel: h,
1700
1929
  addMenuTitle: _,
1701
- menuTitle: y,
1702
- menuCloseLabel: b,
1703
- style: Ve,
1704
- isDisabled: P,
1705
- chatSettings: xe,
1706
- extraMenuItems: He
1930
+ menuTitle: v,
1931
+ menuCloseLabel: y,
1932
+ style: Je,
1933
+ isDisabled: R,
1934
+ chatSettings: _e,
1935
+ extraMenuItems: Ye,
1936
+ toolsMenuItems: ve,
1937
+ onToolToggle: ye,
1938
+ toolsMenuTitle: be,
1939
+ toolsBackLabel: Se,
1940
+ promptsMenuOverlay: q,
1941
+ promptsMenuTitle: we,
1942
+ promptsBackLabel: De
1707
1943
  })]
1708
1944
  }),
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
1945
+ $ && wt && /* @__PURE__ */ G("div", {
1946
+ className: "order-3 min-w-0 flex-1",
1947
+ children: /* @__PURE__ */ G(Xe, {
1948
+ items: ve ?? [],
1949
+ onToolToggle: ye,
1950
+ isMobile: We,
1951
+ countLabel: Ce?.countLabel,
1952
+ removeLabel: Ce?.removeLabel
1953
+ })
1954
+ }),
1955
+ /* @__PURE__ */ G("div", {
1956
+ className: o("order-1 flex w-full min-w-0 items-center self-stretch", !$ && "desktop:order-2 desktop:w-auto desktop:flex-1"),
1957
+ children: At
1712
1958
  }),
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,
1959
+ /* @__PURE__ */ K("div", {
1960
+ className: o("flex flex-shrink-0 items-center gap-2", $ && wt ? "order-4" : "order-3", "ms-auto", !$ && "desktop:ms-0"),
1961
+ children: [L ? L({
1962
+ canSend: bt,
1963
+ onSend: Dt
1964
+ }) : /* @__PURE__ */ K(W, { children: [
1965
+ He,
1966
+ /* @__PURE__ */ G(Pt, {
1967
+ deployments: ie,
1968
+ selectedDeploymentId: F,
1969
+ onDeploymentChange: I,
1970
+ modelSelectorLabels: ae,
1971
+ isStreaming: l,
1972
+ isMobile: We,
1973
+ isDisabled: B,
1974
+ style: Je,
1975
+ modelPickerOverlay: Re,
1976
+ isPickerOpen: Ge,
1977
+ onPickerToggle: () => Ke((e) => !e),
1978
+ onPickerOpenChange: Ke
1979
+ }),
1980
+ l && i ? /* @__PURE__ */ G(nt, {
1981
+ onStop: i,
1982
+ ariaLabel: C
1983
+ }) : !l && xt && /* @__PURE__ */ G(tt, {
1984
+ onSend: Dt,
1985
+ isDisabled: !Tt || lt || de,
1986
+ ariaLabel: S,
1987
+ isExiting: St
1988
+ }, Ct)
1989
+ ] }), Et && /* @__PURE__ */ G(A, {
1990
+ icon: /* @__PURE__ */ G(re, {
1991
+ size: d.LG,
1743
1992
  "aria-hidden": !0
1744
1993
  }),
1745
- "aria-label": T,
1994
+ "aria-label": w,
1746
1995
  className: "size-8 flex-shrink-0",
1747
- onClick: rt,
1748
- disabled: P || a
1996
+ onClick: pt,
1997
+ disabled: R || l
1749
1998
  })]
1750
1999
  })
1751
2000
  ]
1752
2001
  })]
1753
2002
  });
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),
2003
+ }, 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 }) => {
2004
+ let { colors: u, typography: d } = r ?? {};
2005
+ return /* @__PURE__ */ K("div", {
2006
+ style: a({ "--ci-welcome-color": u?.welcomeText }),
2007
+ className: o("relative flex w-full flex-col items-center gap-6 px-4 py-5 desktop:p-5", i),
2008
+ children: [n && /* @__PURE__ */ G("h1", {
2009
+ className: o(Lt.welcome, "m-0 text-center", d?.welcomeClassName || "dial-display2-text"),
1764
2010
  children: n
1765
- }), /* @__PURE__ */ z("div", {
2011
+ }), /* @__PURE__ */ G("div", {
1766
2012
  className: "relative w-full max-w-[748px]",
1767
- children: /* @__PURE__ */ z(At, {
2013
+ children: /* @__PURE__ */ G(It, {
1768
2014
  placeholder: t,
1769
2015
  isStreaming: e,
1770
- isInputDisabled: a,
1771
- ...c,
1772
- colors: l?.input,
1773
- typography: u?.input
2016
+ isInputDisabled: c,
2017
+ ...l,
2018
+ className: s,
2019
+ colors: u?.input,
2020
+ typography: d?.input
1774
2021
  })
1775
2022
  })]
1776
2023
  });
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?.());
2024
+ }, 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: C = !1, fileAccept: w, maximumAttachmentsAmount: E, onAttachmentsLimitExceeded: D, onDialFileSystemClick: O, dialFileSystemLabel: k, pendingAttachments: A, onPendingAttachmentsConsumed: j, onAttachmentClick: ee, pasteTextThreshold: M, maxMessageLength: N = 5e4, onMessageTooLong: te }) => {
2025
+ let P = H(null), [re, ie] = U([]);
2026
+ B(() => {
2027
+ v?.length && (ie(v), y?.());
1781
2028
  }, [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) => {
2029
+ 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) => {
2030
+ ce((t) => t.filter((t) => t.id !== e));
2031
+ }, R = z((e, t) => {
2032
+ i(e, se, t);
2033
+ }, [se, i]), de = () => {
2034
+ if (ue) {
2035
+ if (!x && F.length >= N) {
2036
+ te?.(F.length, N);
2037
+ return;
2038
+ }
2039
+ R(F, ae);
2040
+ }
2041
+ }, fe = z(() => ie([]), []), pe = z((e) => {
1789
2042
  let t = Array.from(e.target.files ?? []);
1790
- t.length !== 0 && (e.target.value = "", j(t));
1791
- }, []), he = F(() => T ? [{
2043
+ t.length !== 0 && (e.target.value = "", ie(t));
2044
+ }, []), me = V(() => O ? [{
1792
2045
  key: "dial-fs",
1793
- label: E ?? "DIAL file system",
1794
- icon: /* @__PURE__ */ z(ae, {
1795
- size: l,
2046
+ label: k ?? "DIAL file system",
2047
+ icon: /* @__PURE__ */ G(ne, {
2048
+ size: c,
1796
2049
  "aria-hidden": !0
1797
2050
  }),
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, {
2051
+ onClick: O
2052
+ }] : [], [O, k]);
2053
+ return /* @__PURE__ */ K("div", {
2054
+ className: o("flex w-full flex-col gap-2", _),
2055
+ children: [/* @__PURE__ */ G(It, {
1803
2056
  message: e,
1804
2057
  ariaLabel: u,
1805
2058
  isStacked: !0,
1806
2059
  hideActionBar: !0,
1807
- pendingDropFiles: ee,
1808
- onDropFilesConsumed: pe,
1809
- onSend: de,
2060
+ pendingDropFiles: re,
2061
+ onDropFilesConsumed: fe,
2062
+ onSend: R,
1810
2063
  onUploadAttachment: a,
1811
- onChange: ne,
1812
- onAttachmentsChange: ie,
2064
+ onChange: I,
2065
+ onAttachmentsChange: oe,
1813
2066
  removeLabel: d,
1814
2067
  retryLabel: f,
1815
2068
  className: "max-w-full",
1816
- prefixAttachments: oe,
1817
- onRemovePrefixAttachment: ue,
2069
+ prefixAttachments: se,
2070
+ onRemovePrefixAttachment: L,
1818
2071
  validateAttachment: b,
1819
- maximumAttachmentsAmount: C,
1820
- onAttachmentsLimitExceeded: w,
1821
- pendingAttachments: D,
1822
- onPendingAttachmentsConsumed: O,
1823
- onAttachmentClick: k
1824
- }), /* @__PURE__ */ B("div", {
2072
+ isAttachmentsEnabled: x,
2073
+ maximumAttachmentsAmount: E,
2074
+ onAttachmentsLimitExceeded: D,
2075
+ pendingAttachments: A,
2076
+ onPendingAttachmentsConsumed: j,
2077
+ onAttachmentClick: ee,
2078
+ pasteTextThreshold: M,
2079
+ maxMessageLength: N,
2080
+ onMessageTooLong: te
2081
+ }), /* @__PURE__ */ K("div", {
1825
2082
  className: "flex items-center justify-between",
1826
- children: [/* @__PURE__ */ z("div", {
2083
+ children: [/* @__PURE__ */ G("div", {
1827
2084
  className: "flex",
1828
- children: !x && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z("input", {
1829
- ref: A,
2085
+ children: !C && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("input", {
2086
+ ref: P,
1830
2087
  type: "file",
1831
2088
  multiple: !0,
1832
- accept: S,
2089
+ accept: w,
1833
2090
  className: "sr-only",
1834
2091
  "aria-hidden": !0,
1835
2092
  tabIndex: -1,
1836
- onChange: me
1837
- }), /* @__PURE__ */ z(Ke, {
1838
- onAttachClick: () => A.current?.click(),
2093
+ onChange: pe
2094
+ }), /* @__PURE__ */ G(qe, {
2095
+ onAttachClick: () => P.current?.click(),
1839
2096
  attachLabel: m,
1840
2097
  addMenuTitle: p,
1841
2098
  menuTitle: h,
1842
2099
  menuCloseLabel: g,
1843
- extraMenuItems: he
2100
+ extraMenuItems: me
1844
2101
  })] })
1845
- }), /* @__PURE__ */ B("div", {
2102
+ }), /* @__PURE__ */ K("div", {
1846
2103
  className: "flex gap-2",
1847
- children: [/* @__PURE__ */ z(W, {
1848
- label: o,
2104
+ children: [/* @__PURE__ */ G(S, {
2105
+ label: s,
1849
2106
  onClick: n
1850
- }), /* @__PURE__ */ z(U, {
1851
- label: c,
1852
- onClick: fe,
1853
- disabled: !le
2107
+ }), /* @__PURE__ */ G(T, {
2108
+ label: l,
2109
+ onClick: de,
2110
+ disabled: !ue
1854
2111
  })]
1855
2112
  })]
1856
2113
  })]
1857
2114
  });
1858
2115
  };
1859
2116
  //#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 };
2117
+ 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 };