@chaibuilder/sdk 4.0.0-beta.47 → 4.0.0-beta.48

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 (120) hide show
  1. package/dist/{2SSKDMRQ-D9rlRpnI.js → 2SSKDMRQ-CLLNh3td.js} +2 -2
  2. package/dist/{2SSKDMRQ-CVHl6i14.cjs → 2SSKDMRQ-DqwAKdGS.cjs} +1 -1
  3. package/dist/{AP7HFJJL-D18sv0Wh.cjs → AP7HFJJL-BA2SSB20.cjs} +1 -1
  4. package/dist/{AP7HFJJL-CBrphwP9.js → AP7HFJJL-wgsmCJDJ.js} +1 -1
  5. package/dist/{IconPicker-CxEGCcVZ.cjs → IconPicker-BQy4V5jA.cjs} +1 -1
  6. package/dist/{IconPicker-CSewv0kY.js → IconPicker-DsT0ONLh.js} +1 -1
  7. package/dist/{WDYDFRGG-C0G8c0hR.cjs → WDYDFRGG-DyEYv-Y5.cjs} +1 -1
  8. package/dist/{WDYDFRGG-BCmjXFs0.js → WDYDFRGG-EEb06kwn.js} +2 -2
  9. package/dist/{actions-registery-BQ31lpix.cjs → actions-registery-2natwC9b.cjs} +1 -1
  10. package/dist/{actions-registery-B1VeX52Y.js → actions-registery-wRY05tEE.js} +1 -1
  11. package/dist/actions.cjs +1 -1
  12. package/dist/actions.js +2 -2
  13. package/dist/{active-in-another-tab-BhbPijx9.js → active-in-another-tab-DE2fn30l.js} +2 -2
  14. package/dist/{active-in-another-tab-CMmhCRma.cjs → active-in-another-tab-p0hkvIFc.cjs} +1 -1
  15. package/dist/{add-new-language-page-C0sayTSF.js → add-new-language-page-CH7GtcqC.js} +3 -3
  16. package/dist/{add-new-language-page-ChQgjFwb.cjs → add-new-language-page-f2wam593.cjs} +1 -1
  17. package/dist/{add-new-page-DLKzuaNM.js → add-new-page-8d0Nn-zI.js} +2 -2
  18. package/dist/{add-new-page-DLf5Tfb7.cjs → add-new-page-CV7A1XJQ.cjs} +1 -1
  19. package/dist/ai-panel-default-lang-BJLeTdw3.cjs +3 -0
  20. package/dist/ai-panel-default-lang-Dcm4e1o8.js +332 -0
  21. package/dist/ai-panel-other-lang-B48Y5C8z.js +147 -0
  22. package/dist/ai-panel-other-lang-Ch0RHXqZ.cjs +1 -0
  23. package/dist/ai-prompt-input-C1yoNntS.cjs +1 -0
  24. package/dist/{ai-prompt-input-DNb1FKXQ.js → ai-prompt-input-DhVfzVhy.js} +253 -258
  25. package/dist/{ai-translation-prompt-B2MfzTjb.js → ai-translation-prompt-CUYVv2jG.js} +1 -1
  26. package/dist/{ai-translation-prompt-CL3yk8K1.cjs → ai-translation-prompt-mj26BpgQ.cjs} +1 -1
  27. package/dist/{change-password-modal-D_NFPZxI.cjs → change-password-modal-DFupkIGx.cjs} +1 -1
  28. package/dist/{change-password-modal-CbMifP62.js → change-password-modal-DiEQWZez.js} +10 -10
  29. package/dist/{code-editor-CCsljULB.cjs → code-editor-BiLiryYr.cjs} +1 -1
  30. package/dist/{code-editor-53rOkfhX.js → code-editor-CazbxsDv.js} +1 -1
  31. package/dist/{continue-editing-in-this-client-3QLL7tQH.cjs → continue-editing-in-this-client-C3NoncEN.cjs} +1 -1
  32. package/dist/{continue-editing-in-this-client-hB4O3CHJ.js → continue-editing-in-this-client-CpKDDW6u.js} +2 -2
  33. package/dist/core.cjs +1 -1
  34. package/dist/core.js +1 -1
  35. package/dist/{css-import-modal-DCivkVh2.js → css-import-modal-BOQr_e6S.js} +1 -1
  36. package/dist/{css-import-modal-Bmi3LrEJ.cjs → css-import-modal-DFdZ471B.cjs} +1 -1
  37. package/dist/{delete-page-CxVfKrBz.cjs → delete-page-D8Vr-1aC.cjs} +1 -1
  38. package/dist/{delete-page-BW2NxLZu.js → delete-page-DIZhbU2t.js} +15 -15
  39. package/dist/{design-token-usage-WTVjf9c-.js → design-token-usage-Co5Lj1HN.js} +1 -1
  40. package/dist/{design-token-usage-5jsa9ojN.cjs → design-token-usage-N5DLBdWf.cjs} +1 -1
  41. package/dist/{digital-asset-manager-dNK-BYdI.js → digital-asset-manager-CObQa_0R.js} +3 -3
  42. package/dist/{digital-asset-manager-DlFCWUP4.cjs → digital-asset-manager-uXP27Dou.cjs} +1 -1
  43. package/dist/{duplicate-page-0o6G-oY_.cjs → duplicate-page-DomSAvnp.cjs} +1 -1
  44. package/dist/{duplicate-page-BbB2anQO.js → duplicate-page-xpV-pRVU.js} +12 -12
  45. package/dist/{dynamic-page-selector-rFO8457w.js → dynamic-page-selector-Bl5kYPWG.js} +2 -2
  46. package/dist/{dynamic-page-selector-Ds3MqxTF.cjs → dynamic-page-selector-CYZv-SlK.cjs} +1 -1
  47. package/dist/{image-editor-BnVkes6Q.js → image-editor-CDFnNWAz.js} +1 -1
  48. package/dist/{image-editor-DqItmbk1.cjs → image-editor-pOsT95KQ.cjs} +1 -1
  49. package/dist/{index-B7HAfx-2.js → index-BbkBlCE2.js} +15 -9
  50. package/dist/{index-BYjniKhj.js → index-Cyz_Iww4.js} +828 -805
  51. package/dist/{index-DTNHTRZu.cjs → index-DonDtb8f.cjs} +1 -1
  52. package/dist/index-j-XsKW-V.cjs +5 -0
  53. package/dist/{json-diff-viewer-B4rnFiN_.cjs → json-diff-viewer-CoEViavL.cjs} +1 -1
  54. package/dist/{json-diff-viewer-CKlyO9eW.js → json-diff-viewer-amjoEZ5K.js} +6 -6
  55. package/dist/{lang-panel-DiVz4Cay.cjs → lang-panel-BzWstLZ-.cjs} +1 -1
  56. package/dist/{lang-panel-YT96E5Xj.js → lang-panel-DPpIXFl4.js} +9 -9
  57. package/dist/{manage-design-tokens-LwImeKaK.js → manage-design-tokens-BVfEFOrN.js} +2 -2
  58. package/dist/{manage-design-tokens-BwrIc6dS.cjs → manage-design-tokens-CIiwBv2v.cjs} +1 -1
  59. package/dist/{manage-design-tokens-modal-DFVcoyra.js → manage-design-tokens-modal-CBOw_Dg6.js} +2 -2
  60. package/dist/{manage-design-tokens-modal-BEElCTcN.cjs → manage-design-tokens-modal-m3D2luIa.cjs} +1 -1
  61. package/dist/{mark-as-template-DtDkh6jB.cjs → mark-as-template-C2-S_aA2.cjs} +1 -1
  62. package/dist/{mark-as-template-D2Hpz0IE.js → mark-as-template-CQjchLk7.js} +2 -2
  63. package/dist/{models-D0RH2u4C.cjs → models-CQaC3EBW.cjs} +1 -1
  64. package/dist/{models-BCu-p_QK.js → models-DZ9C6CvE.js} +4 -5
  65. package/dist/{nested-path-selector-content-TqjBbNys.js → nested-path-selector-content-BtsI3H0i.js} +1 -1
  66. package/dist/{nested-path-selector-content-CJfN8Hhw.cjs → nested-path-selector-content-Dd3NzUE0.cjs} +1 -1
  67. package/dist/{no-language-page-content-Ce3wniZT.js → no-language-page-content-BrDAjkdi.js} +2 -2
  68. package/dist/{no-language-page-content-CcD-fgMa.cjs → no-language-page-content-CggJC14_.cjs} +1 -1
  69. package/dist/{no-language-page-dialog-CU1zXsYv.js → no-language-page-dialog-DSbcLM8f.js} +2 -2
  70. package/dist/{no-language-page-dialog-B7fhPdob.cjs → no-language-page-dialog-Dkxdu99i.cjs} +1 -1
  71. package/dist/{page-creator-wg3uymVG.js → page-creator-CR-FbJ7C.js} +33 -33
  72. package/dist/{page-creator-C7XEqUx_.cjs → page-creator-DqKFL1sB.cjs} +1 -1
  73. package/dist/{page-lock-BuVma3e5.js → page-lock-CwzMBdD-.js} +2 -2
  74. package/dist/{page-lock-CINb2air.cjs → page-lock-D4Anxwpy.cjs} +1 -1
  75. package/dist/{page-locked-dialog-C7_1gjO5.js → page-locked-dialog-Dv_unUwx.js} +11 -11
  76. package/dist/{page-locked-dialog-s-3ROcy0.cjs → page-locked-dialog-UrTgnXd6.cjs} +1 -1
  77. package/dist/{page-manager-new-zlobCGqL.js → page-manager-new-DpCTazS0.js} +42 -42
  78. package/dist/{page-manager-new-CKWSLVrb.cjs → page-manager-new-DuqhyqMY.cjs} +1 -1
  79. package/dist/{page-manager-search-and-filter-BU_iNmHy.js → page-manager-search-and-filter-B6F-ZvdQ.js} +2 -2
  80. package/dist/{page-manager-search-and-filter-BaOsl_5u.cjs → page-manager-search-and-filter-Yt0pjK_r.cjs} +1 -1
  81. package/dist/{page-revisions-content-BmaNPNoS.cjs → page-revisions-content-C2VMkAt4.cjs} +1 -1
  82. package/dist/{page-revisions-content-D6l_d2jW.js → page-revisions-content-CUPsMEVU.js} +16 -16
  83. package/dist/pages.cjs +1 -1
  84. package/dist/pages.d.ts +60 -1
  85. package/dist/pages.js +19 -19
  86. package/dist/{publish-pages-content-2LG6JOrm.cjs → publish-pages-content-BrjDksNY.cjs} +1 -1
  87. package/dist/{publish-pages-content-CQteRtBA.js → publish-pages-content-CK0ahL2t.js} +32 -32
  88. package/dist/{rte-widget-modal-CFk0Izg5.js → rte-widget-modal-DgEF73WC.js} +1 -1
  89. package/dist/{rte-widget-modal-KzT2hLFt.cjs → rte-widget-modal-Dktetdg4.cjs} +1 -1
  90. package/dist/{save-to-lib-D1V3bNZX.js → save-to-lib-Bs6-wr2u.js} +50 -50
  91. package/dist/{save-to-lib-D82Vrekv.cjs → save-to-lib-CuVYPtm-.cjs} +1 -1
  92. package/dist/{selected-block-display-BHx9N14K.cjs → selected-block-display-BCcwnFzJ.cjs} +1 -1
  93. package/dist/{selected-block-display-BbUH5RaW.js → selected-block-display-D-lzXUfE.js} +2 -2
  94. package/dist/{seo-panel-CyBmGg6k.js → seo-panel-By-TlhHK.js} +25 -25
  95. package/dist/{seo-panel-CPsjZLtL.cjs → seo-panel-DTqsu3I0.cjs} +1 -1
  96. package/dist/{shared-json-ld-SGykyppC.js → shared-json-ld-CMCwFEI0.js} +26 -26
  97. package/dist/{shared-json-ld-DyU9wqrE.cjs → shared-json-ld-C_vaAxgT.cjs} +1 -1
  98. package/dist/{slug-input-BzpnOdXG.cjs → slug-input-DCmvuN69.cjs} +1 -1
  99. package/dist/{slug-input-DpMI4nEB.js → slug-input-bhZSv9VS.js} +1 -1
  100. package/dist/supabase-actions.cjs +1 -1
  101. package/dist/supabase-actions.js +1 -1
  102. package/dist/{take-over-request-wTVLAotu.cjs → take-over-request-BGvKpN5m.cjs} +1 -1
  103. package/dist/{take-over-request-D97Fg-xB.js → take-over-request-f0dbfkLe.js} +5 -5
  104. package/dist/{translation-warning-modal-Du-CnfyH.js → translation-warning-modal-D0-WNJnG.js} +1 -1
  105. package/dist/{translation-warning-modal-Xk6oYGFS.cjs → translation-warning-modal-_0YmCcU8.cjs} +1 -1
  106. package/dist/{unmark-as-template-BRnMhh7n.cjs → unmark-as-template-BE1BO8Z0.cjs} +1 -1
  107. package/dist/{unmark-as-template-BHk2F0ck.js → unmark-as-template-WE3WJ-RJ.js} +2 -2
  108. package/dist/{unpublish-page-BOEjCHLB.js → unpublish-page-B4A-GQEz.js} +8 -8
  109. package/dist/{unpublish-page-Bu75lH33.cjs → unpublish-page-DrZnWLVM.cjs} +1 -1
  110. package/dist/{unpublished-partials-modal-C0_0qNvV.js → unpublished-partials-modal-CGK-4WJ3.js} +1 -1
  111. package/dist/{unpublished-partials-modal-BS_GddEG.cjs → unpublished-partials-modal-KFXm1fG4.cjs} +1 -1
  112. package/dist/{web-preview-C3bbIF6T.js → web-preview-BSmef-RL.js} +1 -1
  113. package/dist/{web-preview-DcOhTGup.cjs → web-preview-ClV1a6hl.cjs} +1 -1
  114. package/package.json +1 -1
  115. package/dist/ai-panel-default-lang-DsGjoITc.cjs +0 -3
  116. package/dist/ai-panel-default-lang-Dy_4L5pH.js +0 -317
  117. package/dist/ai-panel-other-lang-1RYtb71B.js +0 -132
  118. package/dist/ai-panel-other-lang-CL3coL7Z.cjs +0 -1
  119. package/dist/ai-prompt-input-BhTL_-mT.cjs +0 -1
  120. package/dist/index-BeGLwvqs.cjs +0 -5
@@ -0,0 +1,147 @@
1
+ import { jsxs as g, Fragment as L, jsx as s } from "react/jsx-runtime";
2
+ import { r as ee, a as te, s as se, t as oe } from "./index-BbkBlCE2.js";
3
+ import { C as ne, a as re, b as ae, R as le, c as ce, d as ie, T as de, M as me, e as ue, f as he, S as pe, g as ye } from "./selected-block-display-D-lzXUfE.js";
4
+ import { Bot as Se } from "lucide-react";
5
+ import { useRef as Te, useEffect as ke, Suspense as P, lazy as _, Fragment as ge, startTransition as F } from "react";
6
+ import { useTranslation as fe } from "react-i18next";
7
+ import { l as we, m as Ae } from "./index-Cyz_Iww4.js";
8
+ const Me = _(() => import("./ai-translation-prompt-CUYVv2jG.js")), Ne = _(() => import("./ai-prompt-input-DhVfzVhy.js")), Ce = ({
9
+ fetch: j,
10
+ input: m,
11
+ messages: f,
12
+ setInput: M,
13
+ isLoading: u,
14
+ handleStop: q,
15
+ setMessages: N,
16
+ setIsLoading: w,
17
+ selectedLang: h,
18
+ currentBlock: z,
19
+ fallbackLang: U,
20
+ abortController: A,
21
+ setAbortController: J,
22
+ setCurrentBlock: b,
23
+ selectedModel: K,
24
+ onModelChange: V
25
+ }) => {
26
+ const { t: r } = fe(), { models: x } = we(), t = Ae(), W = x.find((e) => e.id === "google/gemini-3-flash") || x[0], E = K || W.id, $ = Te(null), p = ee(), [, G] = te(), R = se(), H = oe(), Q = () => {
27
+ var e;
28
+ (e = $.current) == null || e.scrollIntoView({ behavior: "smooth" });
29
+ };
30
+ ke(() => {
31
+ Q();
32
+ }, [f, u]);
33
+ const v = async (e, B, X) => {
34
+ var D, O;
35
+ p && b(p);
36
+ const I = (e == null ? void 0 : e.toLowerCase()) === "translate", C = {
37
+ id: Date.now().toString(),
38
+ role: "user",
39
+ content: ye({
40
+ fallbackLang: U,
41
+ userInput: B || e,
42
+ language: h,
43
+ blocks: I ? R() : R(h)
44
+ }),
45
+ userMessage: B || e || r("Translate the content")
46
+ }, Y = {
47
+ id: (Date.now() + 1).toString(),
48
+ role: "assistant",
49
+ content: "Thinking...",
50
+ isReasoning: !0,
51
+ isStreaming: !0
52
+ };
53
+ w(!0);
54
+ const Z = new AbortController();
55
+ J(Z), N((a) => [...a, C, Y]), w(!0);
56
+ const n = X || E;
57
+ (D = t.onAIEvent) == null || D.call(t, { type: "stream_start", model: n, timestamp: Date.now() });
58
+ try {
59
+ const l = await j({ body: { action: "ASK_AI", data: {
60
+ messages: [C],
61
+ initiator: I ? "TRANSLATE_CONTENT" : "UPDATE_CONTENT",
62
+ model: n
63
+ } }, streamResponse: !0 });
64
+ if (!l.ok)
65
+ throw new Error(r("Failed to get AI response"));
66
+ const c = (O = l.body) == null ? void 0 : O.getReader(), y = new TextDecoder();
67
+ let o = "";
68
+ if (!c) throw new Error(r("Response body is not readable"));
69
+ for (; ; ) {
70
+ const { done: d, value: T } = await c.read();
71
+ if (d)
72
+ break;
73
+ const k = y.decode(T, { stream: !0 });
74
+ o += k, N((i) => (i[i.length - 1].content = o, [...i]));
75
+ }
76
+ const S = JSON.parse(o == null ? void 0 : o.replace("```json", "").replace("```", ""));
77
+ H(S), F(() => {
78
+ var T, k, i;
79
+ const d = Date.now();
80
+ (T = t.onSuccess) == null || T.call(t, { content: o, model: n, timestamp: d }), (k = t.onComplete) == null || k.call(t, { success: !0, content: o, model: n, timestamp: d }), (i = t.onAIEvent) == null || i.call(t, {
81
+ type: "completion",
82
+ content: o,
83
+ model: n,
84
+ timestamp: d
85
+ });
86
+ });
87
+ } catch (a) {
88
+ A == null || A.abort(), F(() => {
89
+ var y, o, S;
90
+ const l = a instanceof Error ? a.message : String(a), c = Date.now();
91
+ (y = t.onError) == null || y.call(t, { error: l, model: n, timestamp: c }), (o = t.onComplete) == null || o.call(t, { success: !1, error: l, model: n, timestamp: c }), (S = t.onAIEvent) == null || S.call(t, { type: "error", error: l, model: n, timestamp: c });
92
+ });
93
+ } finally {
94
+ w(!1), M(""), b(null);
95
+ }
96
+ };
97
+ return /* @__PURE__ */ g(L, { children: [
98
+ /* @__PURE__ */ s("div", { className: "py-2", children: /* @__PURE__ */ s(P, { fallback: /* @__PURE__ */ s("div", { children: r("Loading...") }), children: /* @__PURE__ */ s(
99
+ Me,
100
+ {
101
+ isLoading: u,
102
+ selectedBlock: p,
103
+ selectedLang: h,
104
+ onClick: v
105
+ }
106
+ ) }) }),
107
+ /* @__PURE__ */ s(ne, { children: /* @__PURE__ */ g(re, { className: "gap-4 px-0", children: [
108
+ f.length === 0 && /* @__PURE__ */ s(
109
+ ae,
110
+ {
111
+ icon: /* @__PURE__ */ s(Se, { size: 48, className: "text-gray-300" }),
112
+ title: r("Start a conversation with the AI assistant to translate/edit your content"),
113
+ description: r(
114
+ "Only content can be edited in secondary languages. To edit layout, styles and more, switch to the default language."
115
+ )
116
+ }
117
+ ),
118
+ f.map(
119
+ (e) => e.role !== "system" && /* @__PURE__ */ s(ge, { children: e.isReasoning ? /* @__PURE__ */ g(le, { isStreaming: e.isStreaming, defaultOpen: !0, children: [
120
+ /* @__PURE__ */ s(ce, { className: "text-xs [&_p]:text-muted-foreground" }),
121
+ /* @__PURE__ */ s(ie, { className: "p-0 text-xs", children: e.content })
122
+ ] }) : e.isTask ? /* @__PURE__ */ s(de, { content: e.content, isLoading: e.isTaskLoading }) : /* @__PURE__ */ s(me, { from: e.role, children: /* @__PURE__ */ s(ue, { className: "p-0", children: e.role === "assistant" ? /* @__PURE__ */ s(he, { className: "p-0 text-xs", children: e.content }) : /* @__PURE__ */ s("div", { className: "p-0 text-xs", children: e.userMessage || e.content }) }) }) }, e.id)
123
+ )
124
+ ] }) }),
125
+ /* @__PURE__ */ g("div", { className: "border-gray-200 pb-2", children: [
126
+ /* @__PURE__ */ s(pe, { onRemove: () => G([]), isLoading: u }),
127
+ /* @__PURE__ */ s(P, { fallback: /* @__PURE__ */ s("div", { children: r("Loading...") }), children: /* @__PURE__ */ s(
128
+ Ne,
129
+ {
130
+ input: m,
131
+ setInput: M,
132
+ onSend: v,
133
+ onStop: q,
134
+ isLoading: u,
135
+ selectedLang: h,
136
+ currentBlock: p || z,
137
+ disabled: (m == null ? void 0 : m.length) === 0,
138
+ selectedModel: E,
139
+ onModelChange: V
140
+ }
141
+ ) })
142
+ ] })
143
+ ] });
144
+ };
145
+ export {
146
+ Ce as default
147
+ };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),g=require("./index-DonDtb8f.cjs"),n=require("./selected-block-display-BCcwnFzJ.cjs"),L=require("lucide-react"),r=require("react"),ee=require("react-i18next"),O=require("./index-j-XsKW-V.cjs"),te=r.lazy(()=>Promise.resolve().then(()=>require("./ai-translation-prompt-mj26BpgQ.cjs"))),se=r.lazy(()=>Promise.resolve().then(()=>require("./ai-prompt-input-C1yoNntS.cjs"))),ne=({fetch:_,input:m,messages:w,setInput:b,isLoading:x,handleStop:F,setMessages:A,setIsLoading:v,selectedLang:j,currentBlock:z,fallbackLang:U,abortController:R,setAbortController:J,setCurrentBlock:M,selectedModel:K,onModelChange:V})=>{const{t:l}=ee.useTranslation(),{models:N}=O.useAIModels(),s=O.useAIConfig(),W=N.find(e=>e.id==="google/gemini-3-flash")||N[0],B=K||W.id,G=r.useRef(null),y=g.useSelectedBlock(),[,H]=g.useSelectedBlockIds(),E=g.useI18nBlocks(),Q=g.useStreamMultipleBlocksProps(),X=()=>{var e;(e=G.current)==null||e.scrollIntoView({behavior:"smooth"})};r.useEffect(()=>{X()},[w,x]);const I=async(e,f,Y)=>{var C,D;y&&M(y);const q=(e==null?void 0:e.toLowerCase())==="translate",P={id:Date.now().toString(),role:"user",content:n.getTranslationUserPrompt({fallbackLang:U,userInput:f||e,language:j,blocks:q?E():E(j)}),userMessage:f||e||l("Translate the content")},Z={id:(Date.now()+1).toString(),role:"assistant",content:"Thinking...",isReasoning:!0,isStreaming:!0};v(!0);const $=new AbortController;J($),A(c=>[...c,P,Z]),v(!0);const a=Y||B;(C=s.onAIEvent)==null||C.call(s,{type:"stream_start",model:a,timestamp:Date.now()});try{const i=await _({body:{action:"ASK_AI",data:{messages:[P],initiator:q?"TRANSLATE_CONTENT":"UPDATE_CONTENT",model:a}},streamResponse:!0});if(!i.ok)throw new Error(l("Failed to get AI response"));const d=(D=i.body)==null?void 0:D.getReader(),p=new TextDecoder;let o="";if(!d)throw new Error(l("Response body is not readable"));for(;;){const{done:h,value:T}=await d.read();if(h)break;const k=p.decode(T,{stream:!0});o+=k,A(u=>(u[u.length-1].content=o,[...u]))}const S=JSON.parse(o==null?void 0:o.replace("```json","").replace("```",""));Q(S),r.startTransition(()=>{var T,k,u;const h=Date.now();(T=s.onSuccess)==null||T.call(s,{content:o,model:a,timestamp:h}),(k=s.onComplete)==null||k.call(s,{success:!0,content:o,model:a,timestamp:h}),(u=s.onAIEvent)==null||u.call(s,{type:"completion",content:o,model:a,timestamp:h})})}catch(c){R==null||R.abort(),r.startTransition(()=>{var p,o,S;const i=c instanceof Error?c.message:String(c),d=Date.now();(p=s.onError)==null||p.call(s,{error:i,model:a,timestamp:d}),(o=s.onComplete)==null||o.call(s,{success:!1,error:i,model:a,timestamp:d}),(S=s.onAIEvent)==null||S.call(s,{type:"error",error:i,model:a,timestamp:d})})}finally{v(!1),b(""),M(null)}};return t.jsxs(t.Fragment,{children:[t.jsx("div",{className:"py-2",children:t.jsx(r.Suspense,{fallback:t.jsx("div",{children:l("Loading...")}),children:t.jsx(te,{isLoading:x,selectedBlock:y,selectedLang:j,onClick:I})})}),t.jsx(n.Conversation,{children:t.jsxs(n.ConversationContent,{className:"gap-4 px-0",children:[w.length===0&&t.jsx(n.ConversationEmptyState,{icon:t.jsx(L.Bot,{size:48,className:"text-gray-300"}),title:l("Start a conversation with the AI assistant to translate/edit your content"),description:l("Only content can be edited in secondary languages. To edit layout, styles and more, switch to the default language.")}),w.map(e=>e.role!=="system"&&t.jsx(r.Fragment,{children:e.isReasoning?t.jsxs(n.Reasoning,{isStreaming:e.isStreaming,defaultOpen:!0,children:[t.jsx(n.ReasoningTrigger,{className:"text-xs [&_p]:text-muted-foreground"}),t.jsx(n.ReasoningContent,{className:"p-0 text-xs",children:e.content})]}):e.isTask?t.jsx(n.TaskMessage,{content:e.content,isLoading:e.isTaskLoading}):t.jsx(n.Message,{from:e.role,children:t.jsx(n.MessageContent,{className:"p-0",children:e.role==="assistant"?t.jsx(n.MessageResponse,{className:"p-0 text-xs",children:e.content}):t.jsx("div",{className:"p-0 text-xs",children:e.userMessage||e.content})})})},e.id))]})}),t.jsxs("div",{className:"border-gray-200 pb-2",children:[t.jsx(n.SelectedBlockDisplay,{onRemove:()=>H([]),isLoading:x}),t.jsx(r.Suspense,{fallback:t.jsx("div",{children:l("Loading...")}),children:t.jsx(se,{input:m,setInput:b,onSend:I,onStop:F,isLoading:x,selectedLang:j,currentBlock:y||z,disabled:(m==null?void 0:m.length)===0,selectedModel:B,onModelChange:V})})]})]})};exports.default=ne;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("./register-chai-top-bar-DyW9GPzV.cjs"),y=require("./index-DonDtb8f.cjs"),W=require("class-variance-authority"),k=require("lucide-react"),te=require("nanoid"),c=require("react"),se=require("react-i18next"),_=require("./index-j-XsKW-V.cjs");function ne({className:t,...s}){return e.jsx("div",{"data-slot":"input-group",role:"group",className:b.cn("group/input-group shadow-xs relative flex w-full items-center rounded-md border border-input outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:ring-1 has-[[data-slot=input-group-control]:focus-visible]:ring-ring","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",t),...s})}const re=W.cva("text-muted-foreground flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 text-sm font-medium group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.4rem] has-[>kbd]:mr-[-0.35rem]","block-start":"[.border-b]:pb-3 order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5","block-end":"[.border-t]:pt-3 order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5"}},defaultVariants:{align:"inline-start"}});function H({className:t,align:s="inline-start",...a}){return e.jsx("div",{role:"group","data-slot":"input-group-addon","data-align":s,className:b.cn(re({align:s}),t),onClick:l=>{var o,p;l.target.closest("button")||(p=(o=l.currentTarget.parentElement)==null?void 0:o.querySelector("input"))==null||p.focus()},...a})}const ae=W.cva("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function K({className:t,type:s="button",variant:a="ghost",size:l="xs",...o}){return e.jsx(b.Button,{type:s,"data-size":l,variant:a,className:b.cn(ae({size:l}),t),...o})}function oe({className:t,...s}){return e.jsx(y.Textarea,{"data-slot":"input-group-control",className:b.cn("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",t),...s})}const ie=c.createContext(null),ce=c.createContext(null),X=()=>c.useContext(ie),le=()=>c.useContext(ce),$=c.createContext(null),q=()=>{const t=le(),s=c.useContext($),a=t??s;if(!a)throw new Error("usePromptInputAttachments must be used within a PromptInput or PromptInputProvider");return a};function ue({data:t,className:s,...a}){var h;const l=q(),o=t.filename||"",d=((h=t.mediaType)!=null&&h.startsWith("image/")&&t.url?"image":"file")==="image",g=o||(d?"Image":"Attachment");return e.jsxs(ye,{children:[e.jsx(y.HoverCardTrigger,{asChild:!0,children:e.jsxs("div",{className:b.cn("group relative flex h-8 cursor-default select-none items-center gap-1.5 rounded-md border border-border px-1.5 text-sm font-medium transition-all hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",s),...a,children:[e.jsxs("div",{className:"relative size-5 shrink-0",children:[e.jsx("div",{className:"absolute inset-0 flex size-5 items-center justify-center overflow-hidden rounded bg-background transition-opacity group-hover:opacity-0",children:d?e.jsx("img",{alt:o||"attachment",className:"size-5 object-cover",height:20,src:t.url,width:20}):e.jsx("div",{className:"flex size-5 items-center justify-center text-muted-foreground",children:e.jsx(k.PaperclipIcon,{className:"size-3"})})}),e.jsxs(b.Button,{"aria-label":"Remove attachment",className:"absolute inset-0 size-5 cursor-pointer rounded p-0 opacity-0 transition-opacity group-hover:pointer-events-auto group-hover:opacity-100 [&>svg]:size-2.5",onClick:m=>{m.stopPropagation(),l.remove(t.id)},type:"button",variant:"ghost",children:[e.jsx(k.XIcon,{}),e.jsx("span",{className:"sr-only",children:"Remove"})]})]}),e.jsx("span",{className:"flex-1 truncate",children:g})]},t.id)}),e.jsx(Ie,{className:"w-auto p-2",children:e.jsxs("div",{className:"w-auto space-y-3",children:[d&&e.jsx("div",{className:"flex max-h-96 w-96 items-center justify-center overflow-hidden rounded-md border",children:e.jsx("img",{alt:o||"attachment preview",className:"max-h-full max-w-full object-contain",height:384,src:t.url,width:448})}),e.jsx("div",{className:"flex items-center gap-2.5",children:e.jsxs("div",{className:"min-w-0 flex-1 space-y-1 px-0.5",children:[e.jsx("h4",{className:"truncate text-sm font-semibold leading-none",children:o||(d?"Image":"Attachment")}),t.mediaType&&e.jsx("p",{className:"truncate font-mono text-xs text-muted-foreground",children:t.mediaType})]})})]})})]})}function de({children:t,className:s,...a}){const l=q();return l.files.length?e.jsx("div",{className:b.cn("flex flex-wrap items-center gap-2 p-3",s),...a,children:l.files.map(o=>e.jsx(c.Fragment,{children:t(o)},o.id))}):null}const pe=({label:t="Add photos or files",...s})=>{const a=q();return e.jsxs(y.DropdownMenuItem,{...s,onSelect:l=>{l.preventDefault(),a.openFileDialog()},children:[e.jsx(k.ImageIcon,{className:"mr-2 size-4"})," ",t]})},me=({className:t,accept:s,multiple:a,globalDrop:l,syncHiddenInput:o,maxFiles:p,maxFileSize:d,onError:g,onSubmit:h,children:m,...I})=>{const n=X(),i=!!n,x=c.useRef(null),T=c.useRef(null),S=c.useRef(null);c.useEffect(()=>{var v;const r=(v=T.current)==null?void 0:v.closest("form");r instanceof HTMLFormElement&&(S.current=r)},[]);const[P,z]=c.useState([]),D=i?n.attachments.files:P,O=c.useCallback(()=>{var r;(r=x.current)==null||r.click()},[]),N=c.useCallback(r=>!s||s.trim()===""?!0:s.includes("image/*")?r.type.startsWith("image/"):!0,[s]),L=c.useCallback(r=>{const v=Array.from(r),f=v.filter(w=>N(w));if(v.length&&f.length===0){g==null||g({code:"accept",message:"No files match the accepted types."});return}const u=w=>d?w.size<=d:!0,j=f.filter(u);if(f.length>0&&j.length===0){g==null||g({code:"max_file_size",message:"All files exceed the maximum size."});return}z(w=>{const C=typeof p=="number"?Math.max(0,p-w.length):void 0,ee=typeof C=="number"?j.slice(0,C):j;typeof C=="number"&&j.length>C&&(g==null||g({code:"max_files",message:"Too many files. Some were not added."}));const B=[];for(const E of ee)B.push({id:te.nanoid(),type:"file",url:URL.createObjectURL(E),mediaType:E.type,filename:E.name});return w.concat(B)})},[N,p,d,g]),A=i?r=>n.attachments.add(r):L,M=i?r=>n.attachments.remove(r):r=>z(v=>{const f=v.find(u=>u.id===r);return f!=null&&f.url&&URL.revokeObjectURL(f.url),v.filter(u=>u.id!==r)}),R=i?()=>n.attachments.clear():()=>z(r=>{for(const v of r)v.url&&URL.revokeObjectURL(v.url);return[]}),U=i?()=>n.attachments.openFileDialog():O;c.useEffect(()=>{i&&n.__registerFileInput(x,()=>{var r;return(r=x.current)==null?void 0:r.click()})},[i,n]),c.useEffect(()=>{o&&x.current&&D.length===0&&(x.current.value="")},[D,o]),c.useEffect(()=>{const r=S.current;if(!r)return;const v=u=>{var j,w;(w=(j=u.dataTransfer)==null?void 0:j.types)!=null&&w.includes("Files")&&u.preventDefault()},f=u=>{var j,w,C;(w=(j=u.dataTransfer)==null?void 0:j.types)!=null&&w.includes("Files")&&u.preventDefault(),(C=u.dataTransfer)!=null&&C.files&&u.dataTransfer.files.length>0&&A(u.dataTransfer.files)};return r.addEventListener("dragover",v),r.addEventListener("drop",f),()=>{r.removeEventListener("dragover",v),r.removeEventListener("drop",f)}},[A]),c.useEffect(()=>{if(!l)return;const r=f=>{var u,j;(j=(u=f.dataTransfer)==null?void 0:u.types)!=null&&j.includes("Files")&&f.preventDefault()},v=f=>{var u,j,w;(j=(u=f.dataTransfer)==null?void 0:u.types)!=null&&j.includes("Files")&&f.preventDefault(),(w=f.dataTransfer)!=null&&w.files&&f.dataTransfer.files.length>0&&A(f.dataTransfer.files)};return document.addEventListener("dragover",r),document.addEventListener("drop",v),()=>{document.removeEventListener("dragover",r),document.removeEventListener("drop",v)}},[A,l]),c.useEffect(()=>()=>{if(!i)for(const r of D)r.url&&URL.revokeObjectURL(r.url)},[i,D]);const Y=r=>{r.currentTarget.files&&A(r.currentTarget.files)},J=async r=>{const f=await(await fetch(r)).blob();return new Promise((u,j)=>{const w=new FileReader;w.onloadend=()=>u(w.result),w.onerror=j,w.readAsDataURL(f)})},Q=c.useMemo(()=>({files:D.map(r=>({...r,id:r.id})),add:A,remove:M,clear:R,openFileDialog:U,fileInputRef:x}),[D,A,M,R,U]),Z=r=>{r.preventDefault();const v=r.currentTarget,f=i?n.textInput.value:new FormData(v).get("message")||"";i||v.reset(),Promise.all(D.map(async({...u})=>u.url&&u.url.startsWith("blob:")?{...u,url:await J(u.url)}:u)).then(u=>{try{const j=h({text:f,files:u},r);j instanceof Promise?j.then(()=>{R(),i&&n.textInput.clear()}).catch(()=>{}):(R(),i&&n.textInput.clear())}catch{}})},G=e.jsxs(e.Fragment,{children:[e.jsx("span",{"aria-hidden":"true",className:"hidden",ref:T}),e.jsx("input",{accept:s,"aria-label":"Upload files",className:"hidden",multiple:a,onChange:Y,ref:x,title:"Upload files",type:"file"}),e.jsx("form",{className:b.cn("w-full",t),onSubmit:Z,...I,children:e.jsx(ne,{className:"overflow-hidden",children:m})})]});return i?G:e.jsx($.Provider,{value:Q,children:G})},fe=({onChange:t,className:s,placeholder:a="What would you like to know?",...l})=>{const o=X(),p=q(),[d,g]=c.useState(!1),h=n=>{if(n.key==="Enter"){if(d||n.nativeEvent.isComposing||n.shiftKey)return;n.preventDefault();const i=n.currentTarget.form,x=i==null?void 0:i.querySelector('button[type="submit"]');if(x!=null&&x.disabled)return;i==null||i.requestSubmit()}if(n.key==="Backspace"&&n.currentTarget.value===""&&p.files.length>0){n.preventDefault();const i=p.files.at(-1);i&&p.remove(i.id)}},m=n=>{var T;const i=(T=n.clipboardData)==null?void 0:T.items;if(!i)return;const x=[];for(const S of i)if(S.kind==="file"){const P=S.getAsFile();P&&x.push(P)}x.length>0&&(n.preventDefault(),p.add(x))},I=o?{value:o.textInput.value,onChange:n=>{o.textInput.setInput(n.currentTarget.value),t==null||t(n)}}:{onChange:t};return e.jsx(oe,{className:b.cn("field-sizing-content max-h-48 min-h-16",s),name:"message",onCompositionEnd:()=>g(!1),onCompositionStart:()=>g(!0),onKeyDown:h,onPaste:m,placeholder:a,...l,...I})},he=({className:t,...s})=>e.jsx(H,{align:"block-end",className:b.cn("order-first flex-wrap gap-1",t),...s}),xe=({className:t,...s})=>e.jsx(H,{align:"block-end",className:b.cn("justify-between gap-1",t),...s}),ge=({className:t,...s})=>e.jsx("div",{className:b.cn("flex items-center gap-1",t),...s}),F=({variant:t="ghost",className:s,size:a,...l})=>{const o=a??(c.Children.count(l.children)>1?"sm":"icon-sm");return e.jsx(K,{className:b.cn(s),size:o,type:"button",variant:t,...l})},ve=t=>e.jsx(y.DropdownMenu,{...t}),je=({className:t,children:s,...a})=>e.jsx(y.DropdownMenuTrigger,{asChild:!0,children:e.jsx(F,{className:t,...a,children:s??e.jsx(k.PlusIcon,{className:"size-4"})})}),be=({className:t,...s})=>e.jsx(y.DropdownMenuContent,{align:"start",className:b.cn(t),...s}),we=({className:t,variant:s="default",size:a="icon-sm",status:l,children:o,...p})=>{let d=e.jsx(k.CornerDownLeftIcon,{className:"size-4"});return l==="submitted"?d=e.jsx(k.Loader2Icon,{className:"size-4 animate-spin"}):l==="streaming"?d=e.jsx(k.SquareIcon,{className:"size-4"}):l==="error"&&(d=e.jsx(k.XIcon,{className:"size-4"})),e.jsx(K,{"aria-label":"Submit",className:b.cn(t),size:a,type:"submit",variant:s,...p,children:o??d})},Ne=({className:t,textareaRef:s,onTranscriptionChange:a,...l})=>{const[o,p]=c.useState(!1),[d,g]=c.useState(null),h=c.useRef(null);c.useEffect(()=>{if(typeof window<"u"&&("SpeechRecognition"in window||"webkitSpeechRecognition"in window)){const I=window.SpeechRecognition||window.webkitSpeechRecognition,n=new I;n.continuous=!0,n.interimResults=!0,n.lang="en-US",n.onstart=()=>{p(!0)},n.onend=()=>{p(!1)},n.onresult=i=>{var T;let x="";for(let S=i.resultIndex;S<i.results.length;S++){const P=i.results[S];P.isFinal&&(x+=((T=P[0])==null?void 0:T.transcript)??"")}if(x&&(s!=null&&s.current)){const S=s.current,P=S.value,z=P+(P?" ":"")+x;S.value=z,S.dispatchEvent(new Event("input",{bubbles:!0})),a==null||a(z)}},n.onerror=i=>{console.error("Speech recognition error:",i.error),p(!1)},h.current=n,c.startTransition(()=>g(n))}return()=>{h.current&&h.current.stop()}},[s,a]);const m=c.useCallback(()=>{d&&(o?d.stop():d.start())},[d,o]);return e.jsx(F,{className:b.cn("relative transition-all duration-200",o&&"animate-pulse bg-accent text-accent-foreground",t),disabled:!d,onClick:m,...l,children:e.jsx(k.MicIcon,{className:"size-4"})})},ye=({openDelay:t=0,closeDelay:s=0,...a})=>e.jsx(y.HoverCard,{closeDelay:s,openDelay:t,...a}),Ie=({align:t="start",...s})=>e.jsx(y.HoverCardContent,{align:t,...s}),Se=t=>e.jsx(y.Dialog,{...t}),ke=t=>e.jsx(y.DialogTrigger,{...t}),Pe=({className:t,children:s,title:a="Model Selector",...l})=>e.jsxs(y.DialogContent,{className:b.cn("p-0",t),...l,children:[e.jsx(y.DialogTitle,{className:"sr-only",children:a}),e.jsx(y.Command,{className:"**:data-[slot=command-input-wrapper]:h-auto",children:s})]}),Te=t=>e.jsx(y.CommandList,{...t}),ze=t=>e.jsx(y.CommandGroup,{...t}),De=t=>e.jsx(y.CommandItem,{...t}),Ae=({provider:t,className:s,...a})=>e.jsx("img",{...a,alt:`${t} logo`,className:b.cn("size-3 dark:invert",s),height:12,src:`https://models.dev/logos/${t}.svg`,width:12}),Ce=({className:t,...s})=>e.jsx("span",{className:b.cn("flex-1 truncate text-left",t),...s}),Re=({selectedModel:t,onModelChange:s,disabled:a=!1})=>{const[l,o]=c.useState(!1),{models:p}=_.useAIModels(),d=p.find(m=>m.id===t)||p[0],g=p.reduce((m,I)=>(m[I.provider]||(m[I.provider]=[]),m[I.provider].push(I),m),{}),h=m=>{s(m),o(!1)};return e.jsxs(Se,{open:l,onOpenChange:o,children:[e.jsx(ke,{asChild:!0,children:e.jsxs(b.Button,{variant:"outline",size:"sm",disabled:a,className:"h-8 gap-1 px-2 text-xs",children:[e.jsx(k.Cpu,{size:14}),e.jsx("span",{className:"max-w-20 truncate",children:d.name})]})}),e.jsxs(Pe,{className:"w-96 p-0",children:[e.jsx("h3",{className:"mt-2 px-2 py-2 font-semibold",children:"Models"}),e.jsx(Te,{children:Object.entries(g).map(([m,I])=>e.jsx(ze,{heading:m.charAt(0).toUpperCase()+m.slice(1),children:I.map(n=>e.jsxs(De,{value:n.id,onSelect:()=>h(n.id),className:"flex cursor-pointer items-center gap-2 p-2",children:[e.jsx(Ae,{provider:n.provider}),e.jsxs("div",{className:"flex flex-1 items-center justify-between",children:[e.jsx(Ce,{children:n.name}),e.jsx("span",{className:"text-xs text-muted-foreground",children:n.description})]}),t===n.id&&e.jsx("div",{className:"h-2 w-2 rounded-full bg-blue-500"})]},n.id))},m))})]})]})},V="chai-ai-selected-model",Le=({input:t,setInput:s,onSend:a,onStop:l,isLoading:o,disabled:p,selectedLang:d,selectedModel:g,onModelChange:h})=>{const{t:m}=se.useTranslation(),{models:I}=_.useAIModels(),n=I.find(N=>N.id==="google/gemini-3-flash")||I[0],[i,x]=c.useState(g||n.id),[T,S]=c.useState(null),P=c.useRef(null),[z,D]=c.useState(!1);c.useEffect(()=>{if(!d){const N=localStorage.getItem(V);N?(x(N),h==null||h(N)):(x(n.id),h==null||h(n.id))}},[d,h,n.id]);const O=N=>{var M;const L=N.files.find(R=>{var U;return(U=R.mediaType)==null?void 0:U.startsWith("image/")}),A=(L==null?void 0:L.url)||T;a((M=N.text)==null?void 0:M.trim(),void 0,A,i),S(null)};return e.jsx("div",{className:"relative",children:e.jsx("div",{className:"border-gray-20 rounded-lg border",children:e.jsxs(me,{onSubmit:O,accept:"image/*",className:"flex h-auto w-full flex-col",children:[e.jsx(he,{className:"p-0",children:e.jsx(de,{className:"pb-0",children:N=>e.jsx(ue,{className:"text-xs",data:N})})}),e.jsx(fe,{ref:P,value:t,onChange:N=>s(N.target.value),placeholder:m(d?"Ask to update content":"Ask me anything..."),disabled:o,className:"max-h-[200px] min-h-[60px] w-full",rows:3}),e.jsxs(xe,{children:[d?e.jsx("div",{}):e.jsxs(ge,{children:[e.jsxs(ve,{children:[e.jsx(je,{disabled:o,children:e.jsx(k.Paperclip,{size:16})}),e.jsx(be,{children:e.jsx(pe,{})})]}),e.jsx(Ne,{textareaRef:P,onTranscriptionChange:s,disabled:o}),e.jsx(Re,{selectedModel:i,onModelChange:N=>{x(N),h==null||h(N),localStorage.setItem(V,N)},disabled:o}),e.jsxs(F,{className:"hidden",size:"sm",onClick:()=>D(!z),variant:z?"default":"ghost",children:[e.jsx(k.GlobeIcon,{size:16}),e.jsx("span",{children:"Search"})]})]}),o?e.jsx("button",{onClick:l,className:"z-50 flex items-center gap-x-1 rounded-md bg-red-500 p-1.5 text-white transition-colors hover:bg-red-600",title:m("Stop generation"),children:e.jsx(k.Square,{size:16})}):e.jsx(we,{disabled:!t.trim()||p,children:e.jsx(k.Send,{size:16})})]})]})})})};exports.default=Le;