@epam/ai-dial-conversation-input 1.1.0-dev.29 → 1.1.0-dev.290

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