@epam/ai-dial-conversation-input 1.1.0-dev.21 → 1.1.0-dev.214

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 +1202 -950
  53. package/models/ConversationInput.d.ts +77 -23
  54. package/models/ConversationInput.d.ts.map +1 -1
  55. package/models/Input.d.ts +73 -23
  56. package/models/Input.d.ts.map +1 -1
  57. package/package.json +4 -5
  58. package/utils/concurrency.d.ts +2 -13
  59. package/utils/concurrency.d.ts.map +1 -1
  60. package/utils/deployment.d.ts +1 -4
  61. package/utils/deployment.d.ts.map +1 -1
package/index.js CHANGED
@@ -1,228 +1,253 @@
1
- import { AttachmentErrorReason as e, AttachmentType as t, DeploymentIcon as n, Highlight as r, RequestStatus as i, ResponseFormat as a, buildCssVars as o, mergeClasses as s, useIsMobile as c } from "@epam/ai-dial-chat-shared";
2
- import { BASE_ICON_SIZE as l, ButtonAppearance as u, ButtonVariant as d, DIAL_ICON_SIZE as f, DialButton as p, DialCloseButton as m, DialDropdown as h, DialDropdownIcon as g, DialErrorText as _, DialGhostIconButton as v, DialInput as y, DialPopup as b, DialPrimaryButton as x, DialRadioGroup as S, DialSearch as C, DialSkeleton as w, DialSkeletonVariant as T, DialSlider as E, DialTag as D, DialTooltip as O, ElementSize as k, PopupSize as A, RadioGroupOrientation as ee } from "@epam/ai-dial-ui-kit";
3
- import { IconArrowLeft as j, IconArrowNarrowRight as te, IconCheck as ne, IconChevronDown as re, IconChevronRight as ie, IconFile as ae, IconMicrophone as oe, IconPaperclip as se, IconPlayerStopFilled as ce, IconPlaystationSquare as le, IconPlus as ue, IconSettings as de, IconX as fe } from "@tabler/icons-react";
4
- import { createPortal as pe } from "react-dom";
5
- import { createElement as me, memo as he, useCallback as M, useEffect as N, useImperativeHandle as P, useLayoutEffect as ge, useMemo as F, useRef as I, useState as L } from "react";
6
- import { Fragment as R, jsx as z, jsxs as B } from "react/jsx-runtime";
7
- import { AttachmentCard as _e, AttachmentGroup as ve, AttachmentTray as V, AttachmentTray as ye, FileDndOverlay as be, MAX_UPLOADS_PER_MINUTE as xe, generateAttachmentId as Se, getAttachmentIcon as Ce, useClipboardPaste as we } from "@epam/ai-dial-attachment-input";
1
+ import { AttachmentErrorReason as e, AttachmentType as t, DeploymentIcon as n, RequestStatus as r, ResponseFormat as i, buildCssVars as a, mergeClasses as o, useIsMobile as s } from "@epam/ai-dial-chat-shared";
2
+ import { BASE_ICON_SIZE as c, Button as l, CloseButton as u, DIAL_ICON_SIZE as d, DialDropdownIcon as f, DialRadioGroup as p, DialSearch as m, DialSlider as h, DialTooltip as g, Dropdown as _, ElementSize as v, ErrorText as y, GhostIconButton as b, Highlight as x, 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], a = r.split("/")[1] ?? "webm", o = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-").slice(0, -1), s = new File([t], `voice-${o}.${a}`, { type: r });
336
+ d.current(s), f(), i(null), n("idle");
316
337
  }, e.stop());
317
- }, [h, g]), y = M(() => {
318
- let e = u.current;
319
- e && e.state === "recording" && (e.ondataavailable = null, e.onstop = null, e.stop()), g(), o(0), i(null), n("idle");
320
- }, [g]);
321
- return N(() => () => {
322
- g();
323
- }, [g]), {
338
+ }, [f]), h = z(() => {
339
+ let e = c.current;
340
+ e && e.state === "recording" && (e.ondataavailable = null, e.onstop = null, e.stop()), f(), i(null), n("idle");
341
+ }, [f]);
342
+ return B(() => () => {
343
+ f();
344
+ }, [f]), {
324
345
  state: t,
325
- analyserNodeRef: l,
326
- elapsedSeconds: a,
346
+ analyserNodeRef: s,
327
347
  errorMessage: r,
328
- startRecording: _,
329
- stopRecording: v,
330
- discardRecording: y
348
+ startRecording: p,
349
+ stopRecording: m,
350
+ discardRecording: h
331
351
  };
332
- }, Re = /* @__PURE__ */ function(e) {
352
+ }, Fe = /* @__PURE__ */ function(e) {
333
353
  return e.Enter = "enter", e.MetaEnter = "meta-enter", e;
334
- }({}), ze = {
335
- item: "_item_vou13_1",
336
- itemIcon: "_itemIcon_vou13_11"
337
- }, Be = ({ isOpen: e, title: t, closeLabel: n, onClose: r, style: i, items: a, className: o, titleClassName: c = "dial-body-semi-text", itemLabelClassName: l = "dial-small-text", btnTextClassName: u = "" }) => {
338
- let d = (e) => {
354
+ }({}), Ie = {
355
+ item: "_item_5iycw_1",
356
+ itemIcon: "_itemIcon_5iycw_11"
357
+ }, Le = ({ isOpen: e, title: t, closeLabel: n, onClose: r, style: i, items: s, className: c, titleClassName: u = "dial-body-semi-text", itemLabelClassName: d = "dial-small-text", btnTextClassName: f = "", colors: p }) => {
358
+ let m = (e) => {
339
359
  e(), r();
340
- };
341
- return /* @__PURE__ */ z(H, {
360
+ }, h = a({
361
+ "--ci-sheet-text": p?.itemText,
362
+ "--ci-sheet-item-hover": p?.itemHoverBg,
363
+ "--ci-sheet-item-active": p?.itemActiveBg,
364
+ "--ci-sheet-icon": p?.itemIcon
365
+ });
366
+ return /* @__PURE__ */ G(q, {
342
367
  isOpen: e,
343
368
  title: t,
344
369
  closeLabel: n,
345
370
  onClose: r,
346
371
  style: i,
347
- className: o,
348
- titleClassName: c,
349
- children: /* @__PURE__ */ z("ul", {
372
+ className: c,
373
+ titleClassName: u,
374
+ colors: p?.shell,
375
+ children: /* @__PURE__ */ G("ul", {
350
376
  role: "list",
351
377
  className: "flex flex-col",
352
- children: a.map(({ key: e, label: t, icon: n, iconAfter: r, onClick: i }) => /* @__PURE__ */ z("li", { children: /* @__PURE__ */ z(p, {
378
+ style: h,
379
+ children: s.map(({ key: e, label: t, icon: n, iconAfter: r, onClick: i }) => /* @__PURE__ */ G("li", { children: /* @__PURE__ */ G(l, {
353
380
  type: "button",
354
- className: s(ze.item, "flex w-full items-center gap-3 px-4 py-[10px] text-start"),
355
- iconBefore: /* @__PURE__ */ z("span", {
356
- className: ze.itemIcon,
381
+ className: o(Ie.item, "w-full gap-3 px-4 py-[10px] text-start"),
382
+ iconBefore: /* @__PURE__ */ G("span", {
383
+ className: Ie.itemIcon,
357
384
  children: n
358
385
  }),
359
- iconAfter: r ? /* @__PURE__ */ z("span", {
386
+ iconAfter: r ? /* @__PURE__ */ G("span", {
360
387
  className: "ms-auto",
361
388
  children: r
362
389
  }) : null,
363
- textClassName: u,
364
- label: /* @__PURE__ */ z("span", {
365
- className: l,
390
+ textClassName: f,
391
+ label: /* @__PURE__ */ G("span", {
392
+ className: d,
366
393
  children: t
367
394
  }),
368
- onClick: () => d(i)
395
+ onClick: () => m(i)
369
396
  }) }, e))
370
397
  })
371
398
  });
372
- }, Ve = ({ gradientId: e = "gradient-check-icon" }) => /* @__PURE__ */ B("svg", {
373
- width: f.SM,
374
- height: f.SM,
375
- viewBox: "0 0 24 24",
376
- fill: "none",
377
- "aria-hidden": !0,
378
- children: [/* @__PURE__ */ z("defs", { children: /* @__PURE__ */ B("linearGradient", {
379
- id: e,
380
- x1: "0",
381
- y1: "0",
382
- x2: "24",
383
- y2: "24",
384
- gradientUnits: "userSpaceOnUse",
385
- children: [/* @__PURE__ */ z("stop", {
386
- offset: "0%",
387
- stopColor: "#4b7be6"
388
- }), /* @__PURE__ */ z("stop", {
389
- offset: "100%",
390
- stopColor: "#9355f4"
391
- })]
392
- }) }), /* @__PURE__ */ z("path", {
393
- d: "M5 12l5 5L20 7",
394
- stroke: `url(#${e})`,
395
- strokeWidth: "2",
396
- strokeLinecap: "round",
397
- strokeLinejoin: "round"
398
- })]
399
- }), He = {
400
- tabContainer: "_tabContainer_rzv03_1",
401
- tabActive: "_tabActive_rzv03_13"
402
- };
403
- he(({ tabs: e, activeTabId: t, onTabChange: n, styles: r }) => {
404
- let { tabClassName: i = "dial-tiny-semi-text" } = r?.typography ?? {};
405
- return /* @__PURE__ */ z("div", {
406
- className: "flex flex-nowrap gap-1",
407
- children: e.map((e) => {
408
- let r = t === e.id;
409
- return /* @__PURE__ */ z(D, {
410
- label: e.label,
411
- selected: r,
412
- onClick: () => n(e.id),
413
- "aria-selected": r,
414
- className: s("box-border h-auto shrink-0 justify-center rounded-full p-2 text-center", i, He.tabContainer, r && He.tabActive)
415
- }, e.id);
416
- })
417
- });
418
- });
419
- //#endregion
420
- //#region ../ai-dial-kit/src/components/Button/Buttons.tsx
421
- var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
422
- ...e,
423
- variant: d.Neutral,
424
- appearance: u.Outlined
425
- }), Ue = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, isOpen: o }) => {
426
- let [s, c] = L(t), [l, u] = L(n), [d, f] = L(r), p = I(o);
427
- N(() => {
399
+ }, Re = ({ features: e, initialResponseFormat: t, initialSystemPrompt: n, initialTemperature: r, onSave: i, onClose: a, isOpen: o }) => {
400
+ let [s, c] = U(t), [l, u] = U(n), [d, f] = U(r), p = H(o);
401
+ B(() => {
428
402
  o && !p.current && (c(t), u(n), f(r)), p.current = o;
429
403
  }, [
430
404
  o,
@@ -441,7 +415,7 @@ var U = (e) => /* @__PURE__ */ z(x, { ...e }), W = (e) => /* @__PURE__ */ z(p, {
441
415
  setResponseFormat: c,
442
416
  setSystemPrompt: u,
443
417
  setTemperature: f,
444
- handleSubmit: M(() => {
418
+ handleSubmit: z(() => {
445
419
  if (!m) return;
446
420
  let t = {};
447
421
  e.responseFormat && s != null && (t.responseFormat = s), e.systemPrompt && (t.systemPrompt = l), e.temperature && (t.temperature = d), i(t), a();
@@ -455,63 +429,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,
758
+ "aria-hidden": !0
759
+ }),
760
+ "aria-label": n,
761
+ tooltipProps: { tooltip: n },
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,
642
769
  "aria-hidden": !0
643
770
  }),
644
771
  "aria-label": n,
772
+ size: v.Large,
645
773
  tooltipProps: { tooltip: n },
646
- className: s("size-10 flex-shrink-0", d && "pointer-events-none opacity-50"),
647
- onClick: () => y(!0)
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,193 @@ 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 = V(() => h ? /* @__PURE__ */ G(Z, { size: d.LG }) : st(p?.iconUrl, p?.type, p?.displayName ?? p?.id ?? "", d.LG), [h, p]), _ = p?.displayName ?? p?.id;
897
1078
  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) => ({
1079
+ selectorIcon: g,
1080
+ selectorAriaLabel: _ ? `${r?.ariaLabel ?? "Select model"}: ${_}` : r?.ariaLabel ?? "Select model",
1081
+ selectedLabel: _,
1082
+ menuItems: V(() => {
1083
+ if (h) return Array.from({ length: 7 }, (e, t) => ({
903
1084
  key: `__loading-${t}`,
904
- icon: /* @__PURE__ */ z($e, {}),
905
- label: /* @__PURE__ */ z(et, { loadingLabel: t === 0 ? i?.loading : void 0 }),
1085
+ icon: /* @__PURE__ */ G(Z, {}),
1086
+ label: /* @__PURE__ */ G(rt, { loadingLabel: t === 0 ? r?.loading : void 0 }),
906
1087
  disabled: !0
907
1088
  }));
908
1089
  if (!e || e.length === 0) {
909
- let e = i?.error ?? i?.empty;
1090
+ let e = r?.error ?? r?.empty;
910
1091
  return e ? [{
911
1092
  key: "__state",
912
1093
  label: e,
913
1094
  disabled: !0
914
1095
  }] : [];
915
1096
  }
916
- return rt(e, o).map((e) => {
917
- let i = e.id === t;
1097
+ return ot(e, u).map((e) => {
1098
+ let r = e.id === t;
918
1099
  return {
919
1100
  key: e.id,
920
- label: /* @__PURE__ */ B("span", {
1101
+ label: /* @__PURE__ */ K("span", {
921
1102
  className: "flex w-full items-center justify-between gap-2",
922
- children: [/* @__PURE__ */ z(r, {
923
- text: nt(e),
924
- query: o,
1103
+ style: a({ "--ms-selected-item-check": l?.selectedItemCheck }),
1104
+ children: [/* @__PURE__ */ G(x, {
1105
+ text: at(e),
1106
+ query: u,
925
1107
  maxLines: 1
926
- }), i && /* @__PURE__ */ z(Ve, { gradientId: "ms-check-grad" })]
1108
+ }), r && /* @__PURE__ */ G(N, {
1109
+ size: d.SM,
1110
+ stroke: 2,
1111
+ className: c,
1112
+ "aria-hidden": !0
1113
+ })]
927
1114
  }),
928
- icon: it(e.iconUrl, e.type, e.displayName ?? e.id),
1115
+ icon: st(e.iconUrl, e.type, e.displayName ?? e.id),
929
1116
  onClick: () => n?.(e.id),
930
- className: i ? "bg-accent-primary-alpha" : void 0
1117
+ className: r ? s : void 0
931
1118
  };
932
1119
  });
933
1120
  }, [
934
1121
  e,
1122
+ h,
935
1123
  u,
936
- o,
937
1124
  t,
938
- i,
939
- n
1125
+ r,
1126
+ n,
1127
+ s,
1128
+ c,
1129
+ l?.selectedItemCheck
940
1130
  ]),
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,
1131
+ menuHeader: V(() => !h && e && e.length > 0 ? /* @__PURE__ */ G("div", {
1132
+ style: a({ "--ms-search-header-bg": l?.searchHeaderBackground }),
1133
+ className: o("sticky top-0 z-10 pb-1 pe-2 pt-2", i),
1134
+ children: /* @__PURE__ */ G(m, {
1135
+ value: u,
1136
+ placeholder: r?.searchPlaceholder ?? "Search",
1137
+ size: v.Small,
947
1138
  wrapperClassName: "border-0",
948
- onChange: c
1139
+ onChange: f
949
1140
  })
950
1141
  }) : void 0, [
951
1142
  e,
1143
+ h,
952
1144
  u,
953
- o,
1145
+ r,
954
1146
  i,
955
- a
1147
+ l?.searchHeaderBackground
956
1148
  ]),
957
1149
  onOpenChange: (e) => {
958
- e || c("");
1150
+ e || f("");
959
1151
  }
960
1152
  };
961
- }, X = typeof window < "u" ? ge : N;
962
- function ot(e) {
1153
+ }, ut = typeof window < "u" ? fe : B;
1154
+ function dt(e) {
963
1155
  if (e !== void 0) switch (typeof e) {
964
1156
  case "number": return e;
965
1157
  case "string":
@@ -967,15 +1159,15 @@ function ot(e) {
967
1159
  break;
968
1160
  }
969
1161
  }
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({
1162
+ function ft({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i, mode: a, style: o }) {
1163
+ let { styleHeight: s, styleWidth: c } = V(() => ({
1164
+ styleHeight: dt(o?.height),
1165
+ styleWidth: dt(o?.width)
1166
+ }), [o?.height, o?.width]), [l, u] = U({
975
1167
  height: t,
976
1168
  width: n
977
1169
  }), d = r || a === "only-height" && s !== void 0 || a === "only-width" && c !== void 0 || s !== void 0 && c !== void 0;
978
- return X(() => {
1170
+ return ut(() => {
979
1171
  if (i === null || d) return;
980
1172
  let t = new ResizeObserver((e) => {
981
1173
  for (let t of e) {
@@ -995,7 +1187,7 @@ function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
995
1187
  i,
996
1188
  s,
997
1189
  c
998
- ]), F(() => ({
1190
+ ]), V(() => ({
999
1191
  height: s ?? l.height,
1000
1192
  width: c ?? l.width
1001
1193
  }), [
@@ -1004,26 +1196,26 @@ function st({ box: e, defaultHeight: t, defaultWidth: n, disabled: r, element: i
1004
1196
  c
1005
1197
  ]);
1006
1198
  }
1007
- function ct(e) {
1008
- let t = I(() => {
1199
+ function pt(e) {
1200
+ let t = H(() => {
1009
1201
  throw Error("Cannot call during render.");
1010
1202
  });
1011
- return X(() => {
1203
+ return ut(() => {
1012
1204
  t.current = e;
1013
- }, [e]), M((e) => t.current?.(e), [t]);
1205
+ }, [e]), z((e) => t.current?.(e), [t]);
1014
1206
  }
1015
- var Z = null;
1016
- function lt(e = !1) {
1017
- if (Z === null || e) {
1207
+ var mt = null;
1208
+ function ht(e = !1) {
1209
+ if (mt === null || e) {
1018
1210
  let e = document.createElement("div"), t = e.style;
1019
1211
  t.width = "50px", t.height = "50px", t.overflow = "scroll", t.direction = "rtl";
1020
1212
  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;
1213
+ 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
1214
  }
1023
- return Z;
1215
+ return mt;
1024
1216
  }
1025
- function ut({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1026
- if (t === "horizontal" && n) switch (lt()) {
1217
+ function gt({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1218
+ if (t === "horizontal" && n) switch (ht()) {
1027
1219
  case "negative": return -r;
1028
1220
  case "positive-descending":
1029
1221
  if (e) {
@@ -1037,13 +1229,13 @@ function ut({ containerElement: e, direction: t, isRtl: n, scrollOffset: r }) {
1037
1229
  function Q(e, t = "Assertion error") {
1038
1230
  if (!e) throw console.error(t), Error(t);
1039
1231
  }
1040
- function $(e, t) {
1232
+ function _t(e, t) {
1041
1233
  if (e === t) return !0;
1042
1234
  if (!!e != !!t || (Q(e !== void 0), Q(t !== void 0), Object.keys(e).length !== Object.keys(t).length)) return !1;
1043
1235
  for (let n in e) if (!Object.is(t[n], e[n])) return !1;
1044
1236
  return !0;
1045
1237
  }
1046
- function dt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1238
+ function vt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1047
1239
  if (t === 0) return 0;
1048
1240
  if (typeof n == "number") return t * n;
1049
1241
  {
@@ -1051,9 +1243,9 @@ function dt({ cachedBounds: e, itemCount: t, itemSize: n }) {
1051
1243
  return Q(n !== void 0, "Unexpected bounds cache miss"), t * ((n.scrollOffset + n.size) / e.size);
1052
1244
  }
1053
1245
  }
1054
- function ft({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
1246
+ function yt({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, containerScrollOffset: a, containerSize: o }) {
1055
1247
  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({
1248
+ let s = vt({
1057
1249
  cachedBounds: t,
1058
1250
  itemCount: r,
1059
1251
  itemSize: i
@@ -1065,7 +1257,7 @@ function ft({ align: e, cachedBounds: t, index: n, itemCount: r, itemSize: i, co
1065
1257
  default: return a >= u && a <= l ? a : a < u ? u : l;
1066
1258
  }
1067
1259
  }
1068
- function pt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
1260
+ function bt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemCount: r, overscanCount: i }) {
1069
1261
  let a = r - 1, o = 0, s = -1, c = 0, l = -1, u = 0;
1070
1262
  for (; u < a;) {
1071
1263
  let n = e.get(u);
@@ -1084,7 +1276,7 @@ function pt({ cachedBounds: e, containerScrollOffset: t, containerSize: n, itemC
1084
1276
  stopIndexOverscan: l
1085
1277
  };
1086
1278
  }
1087
- function mt({ itemCount: e, itemProps: t, itemSize: n }) {
1279
+ function xt({ itemCount: e, itemProps: t, itemSize: n }) {
1088
1280
  let r = /* @__PURE__ */ new Map();
1089
1281
  return {
1090
1282
  get(i) {
@@ -1121,8 +1313,8 @@ function mt({ itemCount: e, itemProps: t, itemSize: n }) {
1121
1313
  }
1122
1314
  };
1123
1315
  }
1124
- function ht({ itemCount: e, itemProps: t, itemSize: n }) {
1125
- return F(() => mt({
1316
+ function St({ itemCount: e, itemProps: t, itemSize: n }) {
1317
+ return V(() => xt({
1126
1318
  itemCount: e,
1127
1319
  itemProps: t,
1128
1320
  itemSize: n
@@ -1132,7 +1324,7 @@ function ht({ itemCount: e, itemProps: t, itemSize: n }) {
1132
1324
  n
1133
1325
  ]);
1134
1326
  }
1135
- function gt({ containerSize: e, itemSize: t }) {
1327
+ function Ct({ containerSize: e, itemSize: t }) {
1136
1328
  let n;
1137
1329
  switch (typeof t) {
1138
1330
  case "string":
@@ -1144,21 +1336,21 @@ function gt({ containerSize: e, itemSize: t }) {
1144
1336
  }
1145
1337
  return n;
1146
1338
  }
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({
1339
+ function wt({ containerElement: e, containerStyle: t, defaultContainerSize: n = 0, direction: r, isRtl: i = !1, itemCount: a, itemProps: o, itemSize: s, onResize: c, overscanCount: l }) {
1340
+ let { height: u = n, width: d = n } = ft({
1149
1341
  defaultHeight: r === "vertical" ? n : void 0,
1150
1342
  defaultWidth: r === "horizontal" ? n : void 0,
1151
1343
  element: e,
1152
1344
  mode: r === "vertical" ? "only-height" : "only-width",
1153
1345
  style: t
1154
- }), f = I({
1346
+ }), f = H({
1155
1347
  height: 0,
1156
1348
  width: 0
1157
- }), p = r === "vertical" ? u : d, m = gt({
1349
+ }), p = r === "vertical" ? u : d, m = Ct({
1158
1350
  containerSize: p,
1159
1351
  itemSize: s
1160
1352
  });
1161
- ge(() => {
1353
+ fe(() => {
1162
1354
  if (typeof c == "function") {
1163
1355
  let e = f.current;
1164
1356
  (e.height !== u || e.width !== d) && (c({
@@ -1171,11 +1363,11 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1171
1363
  c,
1172
1364
  d
1173
1365
  ]);
1174
- let h = ht({
1366
+ let h = St({
1175
1367
  itemCount: a,
1176
1368
  itemProps: o,
1177
1369
  itemSize: m
1178
- }), g = M((e) => h.get(e), [h]), [_, v] = L(() => pt({
1370
+ }), g = z((e) => h.get(e), [h]), [_, v] = U(() => bt({
1179
1371
  cachedBounds: h,
1180
1372
  containerScrollOffset: 0,
1181
1373
  containerSize: p,
@@ -1186,7 +1378,7 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1186
1378
  startIndexOverscan: Math.min(a - 1, _.startIndexOverscan),
1187
1379
  stopIndexVisible: Math.min(a - 1, _.stopIndexVisible),
1188
1380
  stopIndexOverscan: Math.min(a - 1, _.stopIndexOverscan)
1189
- }, C = M(() => dt({
1381
+ }, C = z(() => vt({
1190
1382
  cachedBounds: h,
1191
1383
  itemCount: a,
1192
1384
  itemSize: m
@@ -1194,9 +1386,9 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1194
1386
  h,
1195
1387
  a,
1196
1388
  m
1197
- ]), w = M((t) => pt({
1389
+ ]), w = z((t) => bt({
1198
1390
  cachedBounds: h,
1199
- containerScrollOffset: ut({
1391
+ containerScrollOffset: gt({
1200
1392
  containerElement: e,
1201
1393
  direction: r,
1202
1394
  isRtl: i,
@@ -1214,19 +1406,19 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1214
1406
  a,
1215
1407
  l
1216
1408
  ]);
1217
- return X(() => {
1409
+ return ut(() => {
1218
1410
  v(w((r === "vertical" ? e?.scrollTop : e?.scrollLeft) ?? 0));
1219
1411
  }, [
1220
1412
  e,
1221
1413
  r,
1222
1414
  w
1223
- ]), X(() => {
1415
+ ]), ut(() => {
1224
1416
  if (!e) return;
1225
1417
  let t = () => {
1226
1418
  v((t) => {
1227
- let { scrollLeft: n, scrollTop: o } = e, s = pt({
1419
+ let { scrollLeft: n, scrollTop: o } = e, s = bt({
1228
1420
  cachedBounds: h,
1229
- containerScrollOffset: ut({
1421
+ containerScrollOffset: gt({
1230
1422
  containerElement: e,
1231
1423
  direction: r,
1232
1424
  isRtl: i,
@@ -1236,7 +1428,7 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1236
1428
  itemCount: a,
1237
1429
  overscanCount: l
1238
1430
  });
1239
- return $(s, t) ? t : s;
1431
+ return _t(s, t) ? t : s;
1240
1432
  });
1241
1433
  };
1242
1434
  return e.addEventListener("scroll", t), () => {
@@ -1252,8 +1444,8 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1252
1444
  ]), {
1253
1445
  getCellBounds: g,
1254
1446
  getEstimatedSize: C,
1255
- scrollToIndex: ct(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
1256
- let s = ft({
1447
+ scrollToIndex: pt(({ align: t = "auto", containerScrollOffset: n, index: o }) => {
1448
+ let s = yt({
1257
1449
  align: t,
1258
1450
  cachedBounds: h,
1259
1451
  containerScrollOffset: n,
@@ -1263,14 +1455,14 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1263
1455
  itemSize: m
1264
1456
  });
1265
1457
  if (e) {
1266
- if (s = ut({
1458
+ if (s = gt({
1267
1459
  containerElement: e,
1268
1460
  direction: r,
1269
1461
  isRtl: i,
1270
1462
  scrollOffset: s
1271
1463
  }), typeof e.scrollTo != "function") {
1272
1464
  let e = w(s);
1273
- $(_, e) || v(e);
1465
+ _t(_, e) || v(e);
1274
1466
  }
1275
1467
  return s;
1276
1468
  }
@@ -1281,30 +1473,30 @@ function _t({ containerElement: e, containerStyle: t, defaultContainerSize: n =
1281
1473
  stopIndexVisible: x
1282
1474
  };
1283
1475
  }
1284
- function vt(e) {
1285
- return F(() => e, Object.values(e));
1476
+ function $(e) {
1477
+ return V(() => e, Object.values(e));
1286
1478
  }
1287
- function yt(e, t) {
1479
+ function Tt(e, t) {
1288
1480
  let { ariaAttributes: n, style: r, ...i } = e, { ariaAttributes: a, style: o, ...s } = t;
1289
- return $(n, a) && $(r, o) && $(i, s);
1481
+ return _t(n, a) && _t(r, o) && _t(i, s);
1290
1482
  }
1291
- function bt(e) {
1483
+ function Et(e) {
1292
1484
  return typeof e == "object" && !!e && "getAverageRowHeight" in e && typeof e.getAverageRowHeight == "function";
1293
1485
  }
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({
1486
+ var Dt = "data-react-window-index";
1487
+ 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 }) {
1488
+ 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
1489
  containerElement: g,
1298
1490
  containerStyle: f,
1299
1491
  defaultContainerSize: n,
1300
1492
  direction: "vertical",
1301
1493
  itemCount: c,
1302
1494
  itemProps: m,
1303
- itemSize: F(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
1495
+ itemSize: V(() => v ? (e) => l.getRowHeight(e) ?? l.getAverageRowHeight() : l, [v, l]),
1304
1496
  onResize: i,
1305
1497
  overscanCount: o
1306
1498
  });
1307
- P(r, () => ({
1499
+ de(r, () => ({
1308
1500
  get element() {
1309
1501
  return g;
1310
1502
  },
@@ -1319,12 +1511,12 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1319
1511
  top: r
1320
1512
  });
1321
1513
  }
1322
- }), [g, x]), X(() => {
1514
+ }), [g, x]), ut(() => {
1323
1515
  if (!g) return;
1324
1516
  let e = Array.from(g.children).filter((e, t) => {
1325
1517
  if (e.hasAttribute("aria-hidden")) return !1;
1326
1518
  let n = `${S + t}`;
1327
- return e.setAttribute(xt, n), !0;
1519
+ return e.setAttribute(Dt, n), !0;
1328
1520
  });
1329
1521
  if (v) return l.observeRowElements(e);
1330
1522
  }, [
@@ -1333,7 +1525,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1333
1525
  l,
1334
1526
  S,
1335
1527
  w
1336
- ]), N(() => {
1528
+ ]), B(() => {
1337
1529
  S >= 0 && w >= 0 && a && a({
1338
1530
  startIndex: C,
1339
1531
  stopIndex: T
@@ -1348,11 +1540,11 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1348
1540
  w,
1349
1541
  T
1350
1542
  ]);
1351
- let E = F(() => {
1543
+ let E = V(() => {
1352
1544
  let e = [];
1353
1545
  if (c > 0) for (let t = S; t <= w; t++) {
1354
1546
  let n = y(t);
1355
- e.push(/* @__PURE__ */ me(h, {
1547
+ e.push(/* @__PURE__ */ L(h, {
1356
1548
  ...m,
1357
1549
  ariaAttributes: {
1358
1550
  "aria-posinset": t + 1,
@@ -1379,7 +1571,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1379
1571
  m,
1380
1572
  S,
1381
1573
  w
1382
- ]), D = /* @__PURE__ */ z("div", {
1574
+ ]), D = /* @__PURE__ */ G("div", {
1383
1575
  "aria-hidden": !0,
1384
1576
  style: {
1385
1577
  height: b(),
@@ -1387,7 +1579,7 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1387
1579
  zIndex: -1
1388
1580
  }
1389
1581
  });
1390
- return me(d, {
1582
+ return L(d, {
1391
1583
  role: "list",
1392
1584
  ...p,
1393
1585
  className: t,
@@ -1401,119 +1593,131 @@ function St({ children: e, className: t, defaultHeight: n = 0, listRef: r, onRes
1401
1593
  }
1402
1594
  }, E, e, D);
1403
1595
  }
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", {
1596
+ var kt = {
1597
+ divider: "_divider_s5khb_1",
1598
+ item: "_item_s5khb_5",
1599
+ itemIcon: "_itemIcon_s5khb_15",
1600
+ checkIcon: "_checkIcon_s5khb_19",
1601
+ stateLabel: "_stateLabel_s5khb_23"
1602
+ }, At = 44, jt = 8, Mt = ({ index: e, style: t, ariaAttributes: n, items: r, selectedDeploymentId: i, labelClassName: a, query: s, onSelect: c }) => {
1603
+ let u = r[e], f = st(u.iconUrl, u.type, u.displayName ?? u.id, d.SM), p = u.id === i;
1604
+ return /* @__PURE__ */ G("div", {
1413
1605
  style: t,
1414
1606
  ...n,
1415
- children: /* @__PURE__ */ z(p, {
1607
+ children: /* @__PURE__ */ G(l, {
1416
1608
  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
1609
+ className: o(kt.item, "h-full w-full gap-3 px-4"),
1610
+ iconBefore: /* @__PURE__ */ G("span", {
1611
+ className: kt.itemIcon,
1612
+ children: f
1421
1613
  }),
1422
- label: /* @__PURE__ */ B("span", {
1614
+ label: /* @__PURE__ */ K("span", {
1423
1615
  className: "flex flex-1 items-center justify-between gap-2",
1424
- children: [/* @__PURE__ */ z(r, {
1616
+ children: [/* @__PURE__ */ G(x, {
1425
1617
  text: u.displayName ?? u.id,
1426
- query: c,
1618
+ query: s,
1427
1619
  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,
1620
+ className: o(a, "min-w-0 flex-1 text-start")
1621
+ }), p && /* @__PURE__ */ G(N, {
1622
+ size: d.SM,
1623
+ className: kt.checkIcon,
1432
1624
  "aria-hidden": !0
1433
1625
  })]
1434
1626
  }),
1435
- onClick: () => l(u.id)
1627
+ onClick: () => c(u.id)
1436
1628
  })
1437
1629
  });
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("");
1630
+ }, 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: _ }) => {
1631
+ let [y, b] = U("");
1632
+ B(() => {
1633
+ e || b("");
1442
1634
  }, [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, {
1635
+ let x = s && s.length > 0, S = u !== void 0, C = !x && !S ? d ?? f : void 0, w = x ? ot(s, y) : [], T = (e) => {
1636
+ l(e), i();
1637
+ }, E = a({
1638
+ "--ci-sheet-divider": _?.divider,
1639
+ "--ci-sheet-text": _?.itemText,
1640
+ "--ci-sheet-item-hover": _?.itemHoverBg,
1641
+ "--ci-sheet-item-active": _?.itemActiveBg,
1642
+ "--ci-sheet-icon": _?.itemIcon,
1643
+ "--ci-check-icon": _?.checkIcon
1644
+ });
1645
+ return /* @__PURE__ */ G(q, {
1445
1646
  isOpen: e,
1446
1647
  title: t,
1447
1648
  closeLabel: n,
1448
1649
  onClose: i,
1449
- style: f,
1450
- titleClassName: p,
1650
+ style: p,
1651
+ titleClassName: h,
1451
1652
  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();
1653
+ colors: _?.shell,
1654
+ children: /* @__PURE__ */ K("div", {
1655
+ className: "contents",
1656
+ style: E,
1657
+ children: [x && !S && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("div", {
1658
+ className: "flex-shrink-0 px-4 py-[10px]",
1659
+ children: /* @__PURE__ */ G(m, {
1660
+ value: y,
1661
+ placeholder: r,
1662
+ size: v.Standard,
1663
+ onChange: b
1664
+ })
1665
+ }), /* @__PURE__ */ G("div", { className: o(kt.divider, "h-px flex-shrink-0") })] }), S ? /* @__PURE__ */ G(it, { loadingLabel: u }) : C ? /* @__PURE__ */ G("div", {
1666
+ role: "list",
1667
+ className: o(kt.stateLabel, g, "px-4 py-4"),
1668
+ children: C
1669
+ }) : /* @__PURE__ */ G(Ot, {
1670
+ role: "list",
1671
+ className: "overflow-y-auto",
1672
+ style: { height: Math.min(w.length, jt) * At },
1673
+ rowComponent: Mt,
1674
+ rowCount: w.length,
1675
+ rowHeight: At,
1676
+ rowProps: {
1677
+ items: w,
1678
+ selectedDeploymentId: c,
1679
+ labelClassName: g,
1680
+ query: y,
1681
+ onSelect: T
1478
1682
  }
1479
- }
1480
- })]
1683
+ })]
1684
+ })
1481
1685
  });
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({
1686
+ }, 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 }) => {
1687
+ let [h, y] = U(!1), { selectorIcon: x, selectorAriaLabel: S, selectedLabel: C, menuItems: w, menuHeader: T, onOpenChange: E } = lt({
1484
1688
  deployments: e,
1485
1689
  selectedDeploymentId: t,
1486
1690
  onDeploymentChange: n,
1487
1691
  modelSelectorLabels: r
1488
1692
  });
1489
1693
  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,
1694
+ let D = i || s ? "pointer-events-none opacity-50 cursor-not-allowed" : void 0, O = /* @__PURE__ */ G(te, {
1695
+ size: d.SM,
1492
1696
  className: Y.modelSelectorCaret,
1493
1697
  "aria-hidden": !0
1494
1698
  });
1495
- return a ? /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z(O, {
1496
- tooltip: S,
1497
- children: /* @__PURE__ */ z(v, {
1498
- icon: /* @__PURE__ */ B("div", {
1699
+ return a ? /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G(g, {
1700
+ tooltip: C,
1701
+ children: /* @__PURE__ */ G(b, {
1702
+ icon: /* @__PURE__ */ K("div", {
1499
1703
  className: "flex items-center gap-1",
1500
- children: [b, D]
1704
+ children: [x, O]
1501
1705
  }),
1502
- "aria-label": x,
1706
+ "aria-label": S,
1503
1707
  onClick: () => {
1504
- c || y(!0);
1708
+ s || y(!0);
1505
1709
  },
1506
- className: s(Y.modelSelectorButton, E)
1710
+ className: o("w-[50px]", Y.modelSelectorButton, D)
1507
1711
  })
1508
- }), u ? /* @__PURE__ */ z(H, {
1509
- isOpen: _,
1712
+ }), l ? /* @__PURE__ */ G(q, {
1713
+ isOpen: h,
1510
1714
  title: r?.ariaLabel ?? "Select model",
1511
1715
  closeLabel: r?.closeLabel ?? "Close",
1512
1716
  onClose: () => y(!1),
1513
- style: l,
1514
- children: u(() => y(!1))
1515
- }) : /* @__PURE__ */ z(Dt, {
1516
- isOpen: _,
1717
+ style: c,
1718
+ children: l(() => y(!1))
1719
+ }) : /* @__PURE__ */ G(Nt, {
1720
+ isOpen: h,
1517
1721
  title: r?.ariaLabel ?? "Select model",
1518
1722
  closeLabel: r?.closeLabel ?? "Close",
1519
1723
  searchPlaceholder: r?.searchPlaceholder ?? "Search",
@@ -1524,337 +1728,385 @@ var Ct = {
1524
1728
  loadingLabel: r?.loading,
1525
1729
  errorLabel: r?.error,
1526
1730
  emptyLabel: r?.empty,
1527
- style: l
1528
- })] }) : u ? /* @__PURE__ */ z(h, {
1731
+ style: c
1732
+ })] }) : l ? /* @__PURE__ */ G(_, {
1529
1733
  placement: "top-end",
1530
1734
  matchReferenceWidth: !1,
1531
- open: d,
1735
+ open: u,
1532
1736
  onOpenChange: m,
1533
1737
  trigger: [],
1534
1738
  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", {
1739
+ renderOverlay: () => l(() => m?.(!1)),
1740
+ listClassName: "!w-[368px] !bg-layer-raised",
1741
+ children: /* @__PURE__ */ G(g, {
1742
+ tooltip: C,
1743
+ children: /* @__PURE__ */ K("button", {
1540
1744
  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),
1745
+ "aria-label": S,
1746
+ "aria-disabled": s || void 0,
1747
+ className: o("flex items-center justify-center gap-1 rounded-full p-2", Y.modelSelectorButton, D, s && Y.modelSelectorButtonDisabled),
1543
1748
  onClick: () => {
1544
- !o && !i && !c && p?.();
1749
+ !i && !s && p?.();
1545
1750
  },
1546
- children: [b, D]
1751
+ children: [x, O]
1547
1752
  })
1548
1753
  })
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,
1754
+ }) : /* @__PURE__ */ G("div", {
1755
+ className: o(s && D),
1756
+ "aria-disabled": s || void 0,
1757
+ children: /* @__PURE__ */ G(g, {
1758
+ tooltip: C,
1759
+ children: /* @__PURE__ */ G(f, {
1760
+ icon: x,
1761
+ ariaLabel: S,
1762
+ items: w,
1763
+ menuHeader: T,
1559
1764
  placement: "bottom-end",
1560
1765
  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)
1766
+ listClassName: "!w-[240px] !max-h-80",
1767
+ onOpenChange: s ? void 0 : E,
1768
+ size: v.Standard,
1769
+ caretIcon: O,
1770
+ iconClassName: s ? D : void 0,
1771
+ buttonClassName: o("bg-transparent", Y.modelSelectorButton, s && Y.modelSelectorButtonDisabled)
1567
1772
  })
1568
1773
  })
1569
1774
  });
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 ? [{
1775
+ }, 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 }) => {
1776
+ let We = s(), [Ge, Ke] = U(!1), J = ke(je), Je = V(() => a({
1777
+ "--ci-bg": D?.background,
1778
+ "--ci-text": D?.text,
1779
+ "--ci-border": D?.border,
1780
+ "--ci-border-focus": D?.borderFocus,
1781
+ "--ci-placeholder": D?.placeholder,
1782
+ "--ci-text-disabled": D?.textDisabled,
1783
+ "--ci-model-selector-caret-color": D?.modelSelectorCaret,
1784
+ "--ci-model-selector-hover-bg": D?.modelSelectorHoverBg,
1785
+ "--ci-model-selector-disabled-color": D?.modelSelectorDisabled,
1786
+ "--ci-voice-error": D?.voiceError,
1787
+ "--ci-voice-waveform": D?.voiceWaveform,
1788
+ "--ci-voice-accent": D?.voiceAccent
1789
+ }), [D]), Ye = V(() => Me ? [{
1584
1790
  key: "dial-fs",
1585
- label: Ee ?? "DIAL file system",
1586
- icon: /* @__PURE__ */ z(ae, {
1587
- size: l,
1791
+ label: Ne ?? "DIAL file system",
1792
+ icon: /* @__PURE__ */ G(ne, {
1793
+ size: c,
1588
1794
  "aria-hidden": !0
1589
1795
  }),
1590
- onClick: Te
1591
- }] : [], [Te, Ee]), { message: U, setMessage: W, textareaRef: Ue, isMultiLine: We } = Ne({
1796
+ onClick: Me
1797
+ }] : [], [Me, Ne]), { message: X, setMessage: Ze, textareaRef: Qe, isMultiLine: $e } = Ae({
1592
1798
  messageProp: e,
1593
1799
  messageRevision: t
1594
- }), { attachments: G, buildAttachments: Ge, addAttachments: K, resetAttachments: q, handleRemove: qe, handleRetry: Je, handleExpand: J, hasBlockedAttachments: Ye } = Oe({
1595
- initialAttachments: de,
1800
+ }), { attachments: Z, buildAttachments: rt, addAttachments: it, resetAttachments: at, handleRemove: ot, handleRetry: st, handleExpand: ct, hasBlockedAttachments: lt } = Te({
1801
+ initialAttachments: oe,
1596
1802
  onUploadAttachment: r,
1597
- onAttachmentsChange: d,
1598
- validateAttachment: H,
1803
+ onAttachmentsChange: f,
1804
+ validateAttachment: Ie,
1599
1805
  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();
1806
+ onDropFilesConsumed: ee,
1807
+ pendingAttachments: M,
1808
+ onPendingAttachmentsConsumed: N,
1809
+ onExpandPastedText: z((e) => {
1810
+ Ze((t) => t ? `${t}\n${e}` : e);
1811
+ }, [Ze]),
1812
+ maximumAttachmentsAmount: ze,
1813
+ baseAttachmentsAmount: me.length,
1814
+ onAttachmentsLimitExceeded: Be
1815
+ }), { state: ut, analyserNodeRef: dt, errorMessage: ft, startRecording: pt, stopRecording: mt, discardRecording: ht } = Pe({ onAttachAudio: z((e) => {
1816
+ it(rt([e]));
1817
+ }, [it, rt]) }), gt = H(null), Q = H(null), { handlePaste: _t } = xe(it, Ve ? te : Infinity), vt = z((e) => {
1818
+ if (!Ve) {
1819
+ let t = e.clipboardData.getData("text/plain");
1820
+ t.length >= P && Ue?.(t.length, P);
1821
+ }
1822
+ _t(e);
1823
+ }, [
1824
+ Ve,
1825
+ P,
1826
+ Ue,
1827
+ _t
1828
+ ]), 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, [
1829
+ fe,
1830
+ St,
1831
+ l
1832
+ ]), Dt = async () => {
1833
+ if (de) return;
1834
+ if (!Ve && X.length >= P) {
1835
+ Ue?.(X.length, P);
1836
+ return;
1837
+ }
1838
+ let e = X, t = Z;
1839
+ Ze(""), J.reset();
1614
1840
  try {
1615
1841
  await n?.(e, t), t.forEach((e) => {
1616
- e.previewUrl && URL.revokeObjectURL(e.previewUrl);
1617
- }), q([]);
1842
+ e.previewUrl && URL.revokeObjectURL(e.previewUrl), e.playUrl && URL.revokeObjectURL(e.playUrl);
1843
+ }), at([]);
1618
1844
  } catch {
1619
- W(e), q(t);
1845
+ Ze(e), at(t);
1620
1846
  }
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);
1847
+ }, Ot = (e) => {
1848
+ if (!e.nativeEvent.isComposing && !R && !l && (e.key === "ArrowUp" || e.key === "ArrowDown")) {
1849
+ let t = e.currentTarget.selectionStart ?? 0, n = J.navigate(e.key === "ArrowUp" ? "up" : "down", X, t);
1624
1850
  if (n !== null) {
1625
- e.preventDefault(), W(n);
1851
+ e.preventDefault(), Ze(n);
1626
1852
  return;
1627
1853
  }
1628
1854
  }
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) => {
1855
+ 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());
1856
+ }, kt = (e) => {
1631
1857
  let t = Array.from(e.target.files ?? []);
1632
1858
  if (t.length === 0) return;
1633
- let n = Ge(t);
1634
- e.target.value = "", K(n);
1859
+ let n = rt(t);
1860
+ e.target.value = "", it(n);
1635
1861
  };
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
1862
+ if (ut !== "idle") return /* @__PURE__ */ G(et, {
1863
+ state: ut,
1864
+ analyserNodeRef: dt,
1865
+ errorMessage: ft,
1866
+ onStop: mt,
1867
+ onDiscard: ht,
1868
+ stopLabel: T,
1869
+ discardLabel: E,
1870
+ style: Je,
1871
+ className: k
1648
1872
  });
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,
1873
+ let At = /* @__PURE__ */ G("textarea", {
1874
+ 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]"),
1875
+ ref: Qe,
1876
+ autoFocus: Oe,
1877
+ value: X,
1654
1878
  onChange: (e) => {
1655
- W(e.target.value), Be.notifyChange(), u?.(e.target.value);
1879
+ Ze(e.target.value), J.notifyChange(), u?.(e.target.value);
1656
1880
  },
1657
- onKeyDown: pt,
1658
- onPaste: st,
1881
+ onKeyDown: Ot,
1882
+ onPaste: vt,
1659
1883
  placeholder: p,
1660
1884
  "aria-label": m,
1661
- disabled: P,
1885
+ disabled: R,
1662
1886
  rows: 1
1663
1887
  });
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],
1888
+ return /* @__PURE__ */ K("div", {
1889
+ ref: Q,
1890
+ style: Je,
1891
+ 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),
1892
+ children: [(me.length > 0 || Z.length > 0) && /* @__PURE__ */ G(ge, {
1893
+ attachments: [...me, ...Z],
1670
1894
  onRemove: (e) => {
1671
- V.some((t) => t.id === e) ? be?.(e) : qe(e);
1895
+ me.some((t) => t.id === e) ? he?.(e) : ot(e);
1672
1896
  },
1673
- onRetry: Je,
1674
- onExpand: J,
1897
+ onRetry: st,
1898
+ onExpand: ct,
1675
1899
  labels: {
1676
- removeLabel: x,
1677
- retryLabel: S
1900
+ removeLabel: b,
1901
+ retryLabel: x
1678
1902
  },
1679
- onAttachmentClick: De == null ? void 0 : (e) => {
1680
- let t = [...V, ...G].find((t) => t.id === e);
1681
- t != null && De(t);
1903
+ onAttachmentClick: Le == null ? void 0 : (e) => {
1904
+ let t = [...me, ...Z].find((t) => t.id === e);
1905
+ t != null && Le(t);
1682
1906
  }
1683
- }), he ? $ && ht : /* @__PURE__ */ B("div", {
1684
- className: s("flex items-center gap-2", $ ? "flex-wrap" : "flex-wrap desktop:flex-nowrap"),
1907
+ }), ue ? $ && At : /* @__PURE__ */ K("div", {
1908
+ className: o("flex items-center gap-2", $ ? "flex-wrap" : "flex-wrap desktop:flex-nowrap"),
1685
1909
  children: [
1686
- !pe && /* @__PURE__ */ B("div", {
1687
- className: s("order-2 flex", !$ && "desktop:order-1"),
1688
- children: [/* @__PURE__ */ z("input", {
1689
- ref: X,
1910
+ !ce && /* @__PURE__ */ K("div", {
1911
+ className: o("flex", "order-2", !$ && "desktop:order-1"),
1912
+ children: [/* @__PURE__ */ G("input", {
1913
+ ref: gt,
1690
1914
  type: "file",
1691
1915
  multiple: !0,
1692
1916
  accept: g,
1693
1917
  className: "sr-only",
1694
1918
  "aria-hidden": !0,
1695
1919
  tabIndex: -1,
1696
- onChange: mt
1697
- }), /* @__PURE__ */ z(Ke, {
1698
- onAttachClick: me ? void 0 : () => X.current?.click(),
1920
+ onChange: kt
1921
+ }), /* @__PURE__ */ G(qe, {
1922
+ onAttachClick: le ? void 0 : () => gt.current?.click(),
1699
1923
  attachLabel: h,
1700
1924
  addMenuTitle: _,
1701
- menuTitle: y,
1702
- menuCloseLabel: b,
1703
- style: Ve,
1704
- isDisabled: P,
1705
- chatSettings: xe,
1706
- extraMenuItems: He
1925
+ menuTitle: v,
1926
+ menuCloseLabel: y,
1927
+ style: Je,
1928
+ isDisabled: R,
1929
+ chatSettings: _e,
1930
+ extraMenuItems: Ye,
1931
+ toolsMenuItems: ve,
1932
+ onToolToggle: ye,
1933
+ toolsMenuTitle: be,
1934
+ toolsBackLabel: Se,
1935
+ promptsMenuOverlay: q,
1936
+ promptsMenuTitle: we,
1937
+ promptsBackLabel: De
1707
1938
  })]
1708
1939
  }),
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
1940
+ $ && wt && /* @__PURE__ */ G("div", {
1941
+ className: "order-3 min-w-0 flex-1",
1942
+ children: /* @__PURE__ */ G(Xe, {
1943
+ items: ve ?? [],
1944
+ onToolToggle: ye,
1945
+ isMobile: We,
1946
+ countLabel: Ce?.countLabel,
1947
+ removeLabel: Ce?.removeLabel
1948
+ })
1949
+ }),
1950
+ /* @__PURE__ */ G("div", {
1951
+ className: o("order-1 flex w-full min-w-0 items-center self-stretch", !$ && "desktop:order-2 desktop:w-auto desktop:flex-1"),
1952
+ children: At
1712
1953
  }),
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,
1954
+ /* @__PURE__ */ K("div", {
1955
+ className: o("flex flex-shrink-0 items-center gap-2", $ && wt ? "order-4" : "order-3", "ms-auto", !$ && "desktop:ms-0"),
1956
+ children: [L ? L({
1957
+ canSend: bt,
1958
+ onSend: Dt
1959
+ }) : /* @__PURE__ */ K(W, { children: [
1960
+ He,
1961
+ /* @__PURE__ */ G(Pt, {
1962
+ deployments: ie,
1963
+ selectedDeploymentId: F,
1964
+ onDeploymentChange: I,
1965
+ modelSelectorLabels: ae,
1966
+ isStreaming: l,
1967
+ isMobile: We,
1968
+ isDisabled: B,
1969
+ style: Je,
1970
+ modelPickerOverlay: Re,
1971
+ isPickerOpen: Ge,
1972
+ onPickerToggle: () => Ke((e) => !e),
1973
+ onPickerOpenChange: Ke
1974
+ }),
1975
+ l && i ? /* @__PURE__ */ G(nt, {
1976
+ onStop: i,
1977
+ ariaLabel: C
1978
+ }) : !l && xt && /* @__PURE__ */ G(tt, {
1979
+ onSend: Dt,
1980
+ isDisabled: !Tt || lt || de,
1981
+ ariaLabel: S,
1982
+ isExiting: St
1983
+ }, Ct)
1984
+ ] }), Et && /* @__PURE__ */ G(A, {
1985
+ icon: /* @__PURE__ */ G(re, {
1986
+ size: d.LG,
1743
1987
  "aria-hidden": !0
1744
1988
  }),
1745
- "aria-label": T,
1989
+ "aria-label": w,
1746
1990
  className: "size-8 flex-shrink-0",
1747
- onClick: rt,
1748
- disabled: P || a
1991
+ onClick: pt,
1992
+ disabled: R || l
1749
1993
  })]
1750
1994
  })
1751
1995
  ]
1752
1996
  })]
1753
1997
  });
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),
1998
+ }, 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 }) => {
1999
+ let { colors: u, typography: d } = r ?? {};
2000
+ return /* @__PURE__ */ K("div", {
2001
+ style: a({ "--ci-welcome-color": u?.welcomeText }),
2002
+ className: o("relative flex w-full flex-col items-center gap-6 px-4 py-5 desktop:p-5", i),
2003
+ children: [n && /* @__PURE__ */ G("h1", {
2004
+ className: o(Lt.welcome, "m-0 text-center", d?.welcomeClassName || "dial-display2-text"),
1764
2005
  children: n
1765
- }), /* @__PURE__ */ z("div", {
2006
+ }), /* @__PURE__ */ G("div", {
1766
2007
  className: "relative w-full max-w-[748px]",
1767
- children: /* @__PURE__ */ z(At, {
2008
+ children: /* @__PURE__ */ G(It, {
1768
2009
  placeholder: t,
1769
2010
  isStreaming: e,
1770
- isInputDisabled: a,
1771
- ...c,
1772
- colors: l?.input,
1773
- typography: u?.input
2011
+ isInputDisabled: c,
2012
+ ...l,
2013
+ className: s,
2014
+ colors: u?.input,
2015
+ typography: d?.input
1774
2016
  })
1775
2017
  })]
1776
2018
  });
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?.());
2019
+ }, 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 }) => {
2020
+ let P = H(null), [re, ie] = U([]);
2021
+ B(() => {
2022
+ v?.length && (ie(v), y?.());
1781
2023
  }, [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) => {
2024
+ 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) => {
2025
+ ce((t) => t.filter((t) => t.id !== e));
2026
+ }, R = z((e, t) => {
2027
+ i(e, se, t);
2028
+ }, [se, i]), de = () => {
2029
+ if (ue) {
2030
+ if (!x && F.length >= N) {
2031
+ te?.(F.length, N);
2032
+ return;
2033
+ }
2034
+ R(F, ae);
2035
+ }
2036
+ }, fe = z(() => ie([]), []), pe = z((e) => {
1789
2037
  let t = Array.from(e.target.files ?? []);
1790
- t.length !== 0 && (e.target.value = "", j(t));
1791
- }, []), he = F(() => T ? [{
2038
+ t.length !== 0 && (e.target.value = "", ie(t));
2039
+ }, []), me = V(() => O ? [{
1792
2040
  key: "dial-fs",
1793
- label: E ?? "DIAL file system",
1794
- icon: /* @__PURE__ */ z(ae, {
1795
- size: l,
2041
+ label: k ?? "DIAL file system",
2042
+ icon: /* @__PURE__ */ G(ne, {
2043
+ size: c,
1796
2044
  "aria-hidden": !0
1797
2045
  }),
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, {
2046
+ onClick: O
2047
+ }] : [], [O, k]);
2048
+ return /* @__PURE__ */ K("div", {
2049
+ className: o("flex w-full flex-col gap-2", _),
2050
+ children: [/* @__PURE__ */ G(It, {
1803
2051
  message: e,
1804
2052
  ariaLabel: u,
1805
2053
  isStacked: !0,
1806
2054
  hideActionBar: !0,
1807
- pendingDropFiles: ee,
1808
- onDropFilesConsumed: pe,
1809
- onSend: de,
2055
+ pendingDropFiles: re,
2056
+ onDropFilesConsumed: fe,
2057
+ onSend: R,
1810
2058
  onUploadAttachment: a,
1811
- onChange: ne,
1812
- onAttachmentsChange: ie,
2059
+ onChange: I,
2060
+ onAttachmentsChange: oe,
1813
2061
  removeLabel: d,
1814
2062
  retryLabel: f,
1815
2063
  className: "max-w-full",
1816
- prefixAttachments: oe,
1817
- onRemovePrefixAttachment: ue,
2064
+ prefixAttachments: se,
2065
+ onRemovePrefixAttachment: L,
1818
2066
  validateAttachment: b,
1819
- maximumAttachmentsAmount: C,
1820
- onAttachmentsLimitExceeded: w,
1821
- pendingAttachments: D,
1822
- onPendingAttachmentsConsumed: O,
1823
- onAttachmentClick: k
1824
- }), /* @__PURE__ */ B("div", {
2067
+ isAttachmentsEnabled: x,
2068
+ maximumAttachmentsAmount: E,
2069
+ onAttachmentsLimitExceeded: D,
2070
+ pendingAttachments: A,
2071
+ onPendingAttachmentsConsumed: j,
2072
+ onAttachmentClick: ee,
2073
+ pasteTextThreshold: M,
2074
+ maxMessageLength: N,
2075
+ onMessageTooLong: te
2076
+ }), /* @__PURE__ */ K("div", {
1825
2077
  className: "flex items-center justify-between",
1826
- children: [/* @__PURE__ */ z("div", {
2078
+ children: [/* @__PURE__ */ G("div", {
1827
2079
  className: "flex",
1828
- children: !x && /* @__PURE__ */ B(R, { children: [/* @__PURE__ */ z("input", {
1829
- ref: A,
2080
+ children: !C && /* @__PURE__ */ K(W, { children: [/* @__PURE__ */ G("input", {
2081
+ ref: P,
1830
2082
  type: "file",
1831
2083
  multiple: !0,
1832
- accept: S,
2084
+ accept: w,
1833
2085
  className: "sr-only",
1834
2086
  "aria-hidden": !0,
1835
2087
  tabIndex: -1,
1836
- onChange: me
1837
- }), /* @__PURE__ */ z(Ke, {
1838
- onAttachClick: () => A.current?.click(),
2088
+ onChange: pe
2089
+ }), /* @__PURE__ */ G(qe, {
2090
+ onAttachClick: () => P.current?.click(),
1839
2091
  attachLabel: m,
1840
2092
  addMenuTitle: p,
1841
2093
  menuTitle: h,
1842
2094
  menuCloseLabel: g,
1843
- extraMenuItems: he
2095
+ extraMenuItems: me
1844
2096
  })] })
1845
- }), /* @__PURE__ */ B("div", {
2097
+ }), /* @__PURE__ */ K("div", {
1846
2098
  className: "flex gap-2",
1847
- children: [/* @__PURE__ */ z(W, {
1848
- label: o,
2099
+ children: [/* @__PURE__ */ G(S, {
2100
+ label: s,
1849
2101
  onClick: n
1850
- }), /* @__PURE__ */ z(U, {
1851
- label: c,
1852
- onClick: fe,
1853
- disabled: !le
2102
+ }), /* @__PURE__ */ G(T, {
2103
+ label: l,
2104
+ onClick: de,
2105
+ disabled: !ue
1854
2106
  })]
1855
2107
  })]
1856
2108
  })]
1857
2109
  });
1858
2110
  };
1859
2111
  //#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 };
2112
+ 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 };