@inkeep/agents-ui 0.15.3 → 0.15.5

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),w=require("react"),M=require("react-markdown"),f=require("rehype-raw"),y=require("remark-gfm"),g=require("remark-supersub"),S=require("../../providers/markdown-provider.cjs"),b=require("../codeblock/index.cjs"),n=require("./components.cjs"),q=require("./rehype-inline-code-property.cjs");const C=({children:c,componentStyles:h,shouldOpenLinksInNewTab:d,onLinkClick:l,onCodeCopy:m,artifacts:k,...p})=>{if(!c)return null;const x={h1:({children:r})=>e.jsx(n.MarkdownH1,{children:r}),h2:({children:r})=>e.jsx(n.MarkdownH2,{children:r}),p:({children:r})=>e.jsx(n.MarkdownP,{children:r}),li:({children:r})=>e.jsx(n.MarkdownLi,{children:r}),ul:({children:r})=>e.jsx(n.MarkdownUl,{children:r}),hr:()=>e.jsx(n.MarkdownHr,{}),input:({type:r,checked:o,disabled:t,readOnly:i,required:s,value:a})=>e.jsx(n.MarkdownInput,{type:r,checked:o,disabled:t,readOnly:i,required:s,value:a}),ol:({children:r,node:o})=>{const t=o?.properties?.start,i=typeof t=="number"?t:void 0;return e.jsx(n.MarkdownOl,{style:{"--start":t?.toString()??"0"},start:i,children:r})},a:({children:r,href:o})=>{const t=w.Children.toArray(r),i=t[0],s=typeof i=="string"&&/^\(\d+\)$/.test(i)&&t.length===1,a=s?i.match(/\d+/):r,u=e.jsx(n.MarkdownLink,{isExternal:d,href:o,onClick:()=>{l?.(o,a?.toString())},children:a});return s?e.jsx(n.MarkdownSourceLink,{children:u}):u},img:({src:r,alt:o})=>e.jsx(n.MarkdownImg,{src:r,alt:o}),table:({children:r})=>e.jsx(n.MarkdownTable,{children:r}),th:({children:r,isHeader:o})=>o?e.jsx(n.MarkdownTh,{children:r}):e.jsx(n.MarkdownTd,{children:r}),pre:({children:r})=>e.jsx("pre",{children:r}),code:({children:r,inline:o,className:t})=>o?e.jsx(n.MarkdownCode,{children:r}):e.jsx(b.CodeBlock,{className:t,onCopy:m,children:r}),sup:({children:r})=>{if(r&&typeof r=="string"){const o=k?.find(t=>(t.data?.artifactSummary?.title||t.data?.name)===r);if(o){const t=o.data,i=t?.artifactSummary?.url,s=t?.artifactSummary?.title||t?.name||r;return i?e.jsx(n.MarkdownSup,{children:e.jsx(n.MarkdownLink,{href:i,isExternal:d,onClick:()=>l?.(i,s),children:e.jsx("span",{children:s})})}):e.jsx(n.MarkdownSup,{children:e.jsx("span",{children:s})})}}return e.jsx("sup",{children:r})}},j=e.jsx(M,{remarkPlugins:[y,g],rehypePlugins:[f,q.rehypeInlineCodeProperty],components:x,disallowedElements:P,children:c.toString(),...p});return e.jsx(S.ChatMarkdownProvider,{componentStyles:h,children:j})},P=["script","iframe","frame","embed","meta","base","form","style","object"];exports.Markdown=C;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),w=require("react"),f=require("react-markdown"),M=require("rehype-raw"),y=require("remark-gfm"),g=require("remark-supersub"),b=require("../../providers/markdown-provider.cjs"),S=require("../codeblock/index.cjs"),n=require("./components.cjs"),q=require("./rehype-inline-code-property.cjs");const C=({children:c,componentStyles:h,shouldOpenLinksInNewTab:d,onLinkClick:l,onCodeCopy:m,artifacts:x,...j})=>{if(!c)return null;const p={h1:({children:r})=>e.jsx(n.MarkdownH1,{children:r}),h2:({children:r})=>e.jsx(n.MarkdownH2,{children:r}),p:({children:r})=>e.jsx(n.MarkdownP,{children:r}),li:({children:r})=>e.jsx(n.MarkdownLi,{children:r}),ul:({children:r})=>e.jsx(n.MarkdownUl,{children:r}),hr:()=>e.jsx(n.MarkdownHr,{}),input:({type:r,checked:s,disabled:t,readOnly:o,required:i,value:a})=>e.jsx(n.MarkdownInput,{type:r,checked:s,disabled:t,readOnly:o,required:i,value:a}),ol:({children:r,node:s})=>{const t=s?.properties?.start,o=typeof t=="number"?t:void 0;return e.jsx(n.MarkdownOl,{style:{"--start":t?.toString()??"0"},start:o,children:r})},a:({children:r,href:s})=>{const t=w.Children.toArray(r),o=t[0],i=typeof o=="string"&&/^\(\d+\)$/.test(o)&&t.length===1,a=i?o.match(/\d+/):r,u=e.jsx(n.MarkdownLink,{isExternal:d,href:s,onClick:()=>{l?.(s,a?.toString())},children:a});return i?e.jsx(n.MarkdownSourceLink,{children:u}):u},img:({src:r,alt:s})=>e.jsx(n.MarkdownImg,{src:r,alt:s}),table:({children:r})=>e.jsx(n.MarkdownTable,{children:r}),th:({children:r,isHeader:s})=>s?e.jsx(n.MarkdownTh,{children:r}):e.jsx(n.MarkdownTd,{children:r}),pre:({children:r})=>e.jsx("pre",{children:r}),code:({children:r,inline:s,className:t})=>s?e.jsx(n.MarkdownCode,{children:r}):e.jsx(S.CodeBlock,{className:t,onCopy:m,children:r}),sub:({children:r})=>typeof r=="string"&&(r.startsWith(" ")||r.endsWith(" "))?e.jsxs(e.Fragment,{children:["~",r,"~"]}):e.jsx("sub",{children:r}),sup:({children:r})=>{if(r&&typeof r=="string"){const s=x?.find(t=>(t.data?.artifactSummary?.title||t.data?.name)===r);if(s){const t=s.data,o=t?.artifactSummary?.url,i=t?.artifactSummary?.title||t?.name||r;return o?e.jsx(n.MarkdownSup,{children:e.jsx(n.MarkdownLink,{href:o,isExternal:d,onClick:()=>l?.(o,i),children:e.jsx("span",{children:i})})}):e.jsx(n.MarkdownSup,{children:e.jsx("span",{children:i})})}}return e.jsx("sup",{children:r})}},k=e.jsx(f,{remarkPlugins:[[y,{singleTilde:!1}],g],rehypePlugins:[M,q.rehypeInlineCodeProperty],components:p,disallowedElements:P,children:c.toString(),...j});return e.jsx(b.ChatMarkdownProvider,{componentStyles:h,children:k})},P=["script","iframe","frame","embed","meta","base","form","style","object"];exports.Markdown=C;
@@ -1,48 +1,48 @@
1
- import { jsx as n } from "react/jsx-runtime";
2
- import y from "react";
3
- import g from "react-markdown";
4
- import S from "rehype-raw";
5
- import b from "remark-gfm";
6
- import C from "remark-supersub";
7
- import { ChatMarkdownProvider as P } from "../../providers/markdown-provider.js";
8
- import { CodeBlock as x } from "../codeblock/index.js";
9
- import { MarkdownSup as s, MarkdownLink as h, MarkdownCode as E, MarkdownTh as H, MarkdownTd as R, MarkdownTable as j, MarkdownImg as v, MarkdownSourceLink as A, MarkdownOl as I, MarkdownInput as T, MarkdownHr as _, MarkdownUl as B, MarkdownLi as D, MarkdownP as G, MarkdownH2 as L, MarkdownH1 as U } from "./components.js";
1
+ import { jsx as t, jsxs as y, Fragment as g } from "react/jsx-runtime";
2
+ import b from "react";
3
+ import S from "react-markdown";
4
+ import C from "rehype-raw";
5
+ import x from "remark-gfm";
6
+ import P from "remark-supersub";
7
+ import { ChatMarkdownProvider as j } from "../../providers/markdown-provider.js";
8
+ import { CodeBlock as E } from "../codeblock/index.js";
9
+ import { MarkdownSup as m, MarkdownLink as h, MarkdownCode as H, MarkdownTh as R, MarkdownTd as T, MarkdownTable as v, MarkdownImg as A, MarkdownSourceLink as I, MarkdownOl as W, MarkdownInput as _, MarkdownHr as B, MarkdownUl as D, MarkdownLi as F, MarkdownP as G, MarkdownH2 as L, MarkdownH1 as U } from "./components.js";
10
10
  import { rehypeInlineCodeProperty as V } from "./rehype-inline-code-property.js";
11
- const Z = ({
11
+ const rr = ({
12
12
  children: d,
13
- componentStyles: p,
13
+ componentStyles: u,
14
14
  shouldOpenLinksInNewTab: c,
15
15
  onLinkClick: l,
16
- onCodeCopy: u,
16
+ onCodeCopy: p,
17
17
  artifacts: f,
18
18
  ...k
19
19
  }) => {
20
20
  if (!d) return null;
21
21
  const w = {
22
- h1: ({ children: r }) => /* @__PURE__ */ n(U, { children: r }),
23
- h2: ({ children: r }) => /* @__PURE__ */ n(L, { children: r }),
24
- p: ({ children: r }) => /* @__PURE__ */ n(G, { children: r }),
25
- li: ({ children: r }) => /* @__PURE__ */ n(D, { children: r }),
26
- ul: ({ children: r }) => /* @__PURE__ */ n(B, { children: r }),
27
- hr: () => /* @__PURE__ */ n(_, {}),
28
- input: ({ type: r, checked: e, disabled: t, readOnly: o, required: i, value: a }) => /* @__PURE__ */ n(
29
- T,
22
+ h1: ({ children: r }) => /* @__PURE__ */ t(U, { children: r }),
23
+ h2: ({ children: r }) => /* @__PURE__ */ t(L, { children: r }),
24
+ p: ({ children: r }) => /* @__PURE__ */ t(G, { children: r }),
25
+ li: ({ children: r }) => /* @__PURE__ */ t(F, { children: r }),
26
+ ul: ({ children: r }) => /* @__PURE__ */ t(D, { children: r }),
27
+ hr: () => /* @__PURE__ */ t(B, {}),
28
+ input: ({ type: r, checked: e, disabled: n, readOnly: o, required: i, value: a }) => /* @__PURE__ */ t(
29
+ _,
30
30
  {
31
31
  type: r,
32
32
  checked: e,
33
- disabled: t,
33
+ disabled: n,
34
34
  readOnly: o,
35
35
  required: i,
36
36
  value: a
37
37
  }
38
38
  ),
39
39
  ol: ({ children: r, node: e }) => {
40
- const t = e?.properties?.start, o = typeof t == "number" ? t : void 0;
41
- return /* @__PURE__ */ n(
42
- I,
40
+ const n = e?.properties?.start, o = typeof n == "number" ? n : void 0;
41
+ return /* @__PURE__ */ t(
42
+ W,
43
43
  {
44
44
  style: {
45
- "--start": t?.toString() ?? "0"
45
+ "--start": n?.toString() ?? "0"
46
46
  },
47
47
  start: o,
48
48
  children: r
@@ -50,7 +50,7 @@ const Z = ({
50
50
  );
51
51
  },
52
52
  a: ({ children: r, href: e }) => {
53
- const t = y.Children.toArray(r), o = t[0], i = typeof o == "string" && /^\(\d+\)$/.test(o) && t.length === 1, a = i ? o.match(/\d+/) : r, m = /* @__PURE__ */ n(
53
+ const n = b.Children.toArray(r), o = n[0], i = typeof o == "string" && /^\(\d+\)$/.test(o) && n.length === 1, a = i ? o.match(/\d+/) : r, s = /* @__PURE__ */ t(
54
54
  h,
55
55
  {
56
56
  isExternal: c,
@@ -61,45 +61,50 @@ const Z = ({
61
61
  children: a
62
62
  }
63
63
  );
64
- return i ? /* @__PURE__ */ n(A, { children: m }) : m;
64
+ return i ? /* @__PURE__ */ t(I, { children: s }) : s;
65
65
  },
66
- img: ({ src: r, alt: e }) => /* @__PURE__ */ n(v, { src: r, alt: e }),
67
- table: ({ children: r }) => /* @__PURE__ */ n(j, { children: r }),
68
- th: ({ children: r, isHeader: e }) => e ? /* @__PURE__ */ n(H, { children: r }) : /* @__PURE__ */ n(R, { children: r }),
69
- pre: ({ children: r }) => /* @__PURE__ */ n("pre", { children: r }),
70
- code: ({ children: r, inline: e, className: t }) => e ? /* @__PURE__ */ n(E, { children: r }) : /* @__PURE__ */ n(x, { className: t, onCopy: u, children: r }),
66
+ img: ({ src: r, alt: e }) => /* @__PURE__ */ t(A, { src: r, alt: e }),
67
+ table: ({ children: r }) => /* @__PURE__ */ t(v, { children: r }),
68
+ th: ({ children: r, isHeader: e }) => e ? /* @__PURE__ */ t(R, { children: r }) : /* @__PURE__ */ t(T, { children: r }),
69
+ pre: ({ children: r }) => /* @__PURE__ */ t("pre", { children: r }),
70
+ code: ({ children: r, inline: e, className: n }) => e ? /* @__PURE__ */ t(H, { children: r }) : /* @__PURE__ */ t(E, { className: n, onCopy: p, children: r }),
71
+ sub: ({ children: r }) => typeof r == "string" && (r.startsWith(" ") || r.endsWith(" ")) ? /* @__PURE__ */ y(g, { children: [
72
+ "~",
73
+ r,
74
+ "~"
75
+ ] }) : /* @__PURE__ */ t("sub", { children: r }),
71
76
  sup: ({ children: r }) => {
72
77
  if (r && typeof r == "string") {
73
78
  const e = f?.find(
74
- (t) => (t.data?.artifactSummary?.title || t.data?.name) === r
79
+ (n) => (n.data?.artifactSummary?.title || n.data?.name) === r
75
80
  );
76
81
  if (e) {
77
- const t = e.data, o = t?.artifactSummary?.url, i = t?.artifactSummary?.title || t?.name || r;
78
- return o ? /* @__PURE__ */ n(s, { children: /* @__PURE__ */ n(
82
+ const n = e.data, o = n?.artifactSummary?.url, i = n?.artifactSummary?.title || n?.name || r;
83
+ return o ? /* @__PURE__ */ t(m, { children: /* @__PURE__ */ t(
79
84
  h,
80
85
  {
81
86
  href: o,
82
87
  isExternal: c,
83
88
  onClick: () => l?.(o, i),
84
- children: /* @__PURE__ */ n("span", { children: i })
89
+ children: /* @__PURE__ */ t("span", { children: i })
85
90
  }
86
- ) }) : /* @__PURE__ */ n(s, { children: /* @__PURE__ */ n("span", { children: i }) });
91
+ ) }) : /* @__PURE__ */ t(m, { children: /* @__PURE__ */ t("span", { children: i }) });
87
92
  }
88
93
  }
89
- return /* @__PURE__ */ n("sup", { children: r });
94
+ return /* @__PURE__ */ t("sup", { children: r });
90
95
  }
91
- }, M = /* @__PURE__ */ n(
92
- g,
96
+ }, M = /* @__PURE__ */ t(
97
+ S,
93
98
  {
94
- remarkPlugins: [b, C],
95
- rehypePlugins: [S, V],
99
+ remarkPlugins: [[x, { singleTilde: !1 }], P],
100
+ rehypePlugins: [C, V],
96
101
  components: w,
97
102
  disallowedElements: $,
98
103
  children: d.toString(),
99
104
  ...k
100
105
  }
101
106
  );
102
- return /* @__PURE__ */ n(P, { componentStyles: p, children: M });
107
+ return /* @__PURE__ */ t(j, { componentStyles: u, children: M });
103
108
  }, $ = [
104
109
  "script",
105
110
  "iframe",
@@ -112,5 +117,5 @@ const Z = ({
112
117
  "object"
113
118
  ];
114
119
  export {
115
- Z as Markdown
120
+ rr as Markdown
116
121
  };
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),E=require("./use-inkeep-chat.cjs");function L(f,u,d){const[p,D]=n.useState([]),[h,w]=n.useState(new Map),[x,T]=n.useState(Date.now()),[A,y]=n.useState(!1),C=n.useRef(0),S=n.useRef(0),R=n.useRef([]),m=n.useRef(h);m.current=h;const b=n.useCallback(()=>{const t=[];let e="",a=[],i=!1;f.length>C.current&&(T(Date.now()),C.current=f.length),S.current=0;const c=new Map,l=(s=!1)=>{if(a.length>0){const r=`group-${S.current++}`,o=m.current.get(r);o?c.set(r,{...o,isCompleted:s}):c.set(r,{isCompleted:s}),t.push({type:"summary-group",summaries:[...a],groupKey:r}),a=[]}};for(const s of f)if(s.type==="text")l(!0),e+=s.text||"";else if(s.type==="data-summary")e.trim()&&(t.push({type:"text",text:e}),e=""),a.push(s.data);else if(s.type==="data-operation"){e.trim()&&(t.push({type:"text",text:e}),e="");const r=s.data;if(r?.type)switch(r.type){case"agent_initializing":break;case"completion":l(!0);break;case"error":{const o=r.message||"Unknown error";if(console.warn("Data operation error:",o),!t.length)l(!0),d(new Error(o)),i||(t.push({type:"text",text:E.DEFAULT_ERROR_MESSAGE}),i=!0);else{const{type:g,label:v}=r;a.push({type:g,label:v})}break}default:{const{type:o,label:g}=r;a.push({type:o,label:g});break}}}else if(s.type==="data-artifact")if(s.data?.type?.toLowerCase()==="citation"){const r=s.data,o=r.artifactSummary||{title:r.name};e+=` ^${o?.title||r.name}^`}else e.trim()&&(t.push({type:"text",text:e}),e=""),t.push(s);else s.type==="data-component"&&(e.trim()&&(t.push({type:"text",text:e}),e=""),l(!0),t.push(s));return l(!u),e.trim()&&t.push({type:"text",text:e}),{processed:t,newTimings:c}},[f,u,d]);n.useEffect(()=>{if(R.current===f)return;R.current=f;const{processed:t,newTimings:e}=b();D(t),(e.size!==m.current.size||Array.from(e.entries()).some(([i,c])=>{const l=m.current.get(i);return!l||l.isCompleted!==c.isCompleted}))&&w(e)},[b,f]),n.useEffect(()=>{u||w(t=>{const e=new Map(t);let a=!1;for(const[i,c]of e.entries())c.isCompleted||(e.set(i,{...c,isCompleted:!0}),a=!0);return a?e:t})},[u]);const k=n.useCallback(()=>{const t=Date.now()-x,e=Array.from(m.current.values()).some(i=>!i.isCompleted),a=t>1e3&&!e;y(a)},[x]);n.useEffect(()=>{if(!u){y(!1);return}if(!(p.length>0)){y(!1);return}const e=setInterval(k,200);return()=>clearInterval(e)},[u,k,p.length]);const P=n.useMemo(()=>!!(!(p.length>0)&&u),[p.length,u]);return{processedParts:p,summaryTimings:h,shouldShowInitialLoading:P,shouldShowStreamDelayLoading:A}}exports.useStreamProcessor=L;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react"),E=require("./use-inkeep-chat.cjs");function L(f,u,d){const[p,D]=n.useState([]),[h,w]=n.useState(new Map),[C,T]=n.useState(Date.now()),[A,y]=n.useState(!1),x=n.useRef(0),S=n.useRef(0),R=n.useRef([]),m=n.useRef(h);m.current=h;const b=n.useCallback(()=>{const t=[];let e="",a=[],i=!1;f.length>x.current&&(T(Date.now()),x.current=f.length),S.current=0;const c=new Map,l=(s=!1)=>{if(a.length>0){const r=`group-${S.current++}`,o=m.current.get(r);o?c.set(r,{...o,isCompleted:s}):c.set(r,{isCompleted:s}),t.push({type:"summary-group",summaries:[...a],groupKey:r}),a=[]}};for(const s of f)if(s.type==="text")l(!0),e+=s.text||"";else if(s.type==="data-summary")e.trim()&&(t.push({type:"text",text:e}),e=""),a.push(s.data);else if(s.type==="data-operation"){e.trim()&&(t.push({type:"text",text:e}),e="");const r=s.data;if(r?.type)switch(r.type){case"agent_initializing":break;case"completion":{const{type:o}=r;a.push({type:o,label:"Completed"}),l(!0);break}case"error":{const o=r.message||"Unknown error";if(console.warn("Data operation error:",o),!t.length)l(!0),d(new Error(o)),i||(t.push({type:"text",text:E.DEFAULT_ERROR_MESSAGE}),i=!0);else{const{type:g,label:v}=r;a.push({type:g,label:v})}break}default:{const{type:o,label:g}=r;a.push({type:o,label:g});break}}}else if(s.type==="data-artifact")if(s.data?.type?.toLowerCase()==="citation"){const r=s.data,o=r.artifactSummary||{title:r.name};e+=` ^${o?.title||r.name}^`}else e.trim()&&(t.push({type:"text",text:e}),e=""),t.push(s);else s.type==="data-component"&&(e.trim()&&(t.push({type:"text",text:e}),e=""),l(!0),t.push(s));return l(!u),e.trim()&&t.push({type:"text",text:e}),{processed:t,newTimings:c}},[f,u,d]);n.useEffect(()=>{if(R.current===f)return;R.current=f;const{processed:t,newTimings:e}=b();D(t),(e.size!==m.current.size||Array.from(e.entries()).some(([i,c])=>{const l=m.current.get(i);return!l||l.isCompleted!==c.isCompleted}))&&w(e)},[b,f]),n.useEffect(()=>{u||w(t=>{const e=new Map(t);let a=!1;for(const[i,c]of e.entries())c.isCompleted||(e.set(i,{...c,isCompleted:!0}),a=!0);return a?e:t})},[u]);const k=n.useCallback(()=>{const t=Date.now()-C,e=Array.from(m.current.values()).some(i=>!i.isCompleted),a=t>1e3&&!e;y(a)},[C]);n.useEffect(()=>{if(!u){y(!1);return}if(!(p.length>0)){y(!1);return}const e=setInterval(k,200);return()=>clearInterval(e)},[u,k,p.length]);const P=n.useMemo(()=>!!(!(p.length>0)&&u),[p.length,u]);return{processedParts:p,summaryTimings:h,shouldShowInitialLoading:P,shouldShowStreamDelayLoading:A}}exports.useStreamProcessor=L;
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import { useState as m, useRef as h, useCallback as R, useEffect as w, useMemo as z } from "react";
2
+ import { useState as m, useRef as h, useCallback as L, useEffect as w, useMemo as z } from "react";
3
3
  import { DEFAULT_ERROR_MESSAGE as G } from "./use-inkeep-chat.js";
4
4
  function F(l, a, x) {
5
- const [f, b] = m([]), [y, C] = m(/* @__PURE__ */ new Map()), [D, v] = m(Date.now()), [M, g] = m(!1), S = h(0), A = h(0), T = h([]), p = h(y);
5
+ const [f, R] = m([]), [y, C] = m(/* @__PURE__ */ new Map()), [D, v] = m(Date.now()), [M, g] = m(!1), S = h(0), A = h(0), T = h([]), p = h(y);
6
6
  p.current = y;
7
- const k = R(() => {
7
+ const b = L(() => {
8
8
  const e = [];
9
9
  let t = "", n = [], i = !1;
10
10
  l.length > S.current && (v(Date.now()), S.current = l.length), A.current = 0;
@@ -35,9 +35,11 @@ function F(l, a, x) {
35
35
  switch (r.type) {
36
36
  case "agent_initializing":
37
37
  break;
38
- case "completion":
39
- u(!0);
38
+ case "completion": {
39
+ const { type: o } = r;
40
+ n.push({ type: o, label: "Completed" }), u(!0);
40
41
  break;
42
+ }
41
43
  case "error": {
42
44
  const o = r.message || "Unknown error";
43
45
  if (console.warn("Data operation error:", o), !e.length)
@@ -69,12 +71,12 @@ function F(l, a, x) {
69
71
  if (T.current === l)
70
72
  return;
71
73
  T.current = l;
72
- const { processed: e, newTimings: t } = k();
73
- b(e), (t.size !== p.current.size || Array.from(t.entries()).some(([i, c]) => {
74
+ const { processed: e, newTimings: t } = b();
75
+ R(e), (t.size !== p.current.size || Array.from(t.entries()).some(([i, c]) => {
74
76
  const u = p.current.get(i);
75
77
  return !u || u.isCompleted !== c.isCompleted;
76
78
  })) && C(t);
77
- }, [k, l]), w(() => {
79
+ }, [b, l]), w(() => {
78
80
  a || C((e) => {
79
81
  const t = new Map(e);
80
82
  let n = !1;
@@ -86,7 +88,7 @@ function F(l, a, x) {
86
88
  return n ? t : e;
87
89
  });
88
90
  }, [a]);
89
- const L = R(() => {
91
+ const k = L(() => {
90
92
  const e = Date.now() - D, t = Array.from(p.current.values()).some(
91
93
  (i) => !i.isCompleted
92
94
  ), n = e > 1e3 && !t;
@@ -101,9 +103,9 @@ function F(l, a, x) {
101
103
  g(!1);
102
104
  return;
103
105
  }
104
- const t = setInterval(L, 200);
106
+ const t = setInterval(k, 200);
105
107
  return () => clearInterval(t);
106
- }, [a, L, f.length]);
108
+ }, [a, k, f.length]);
107
109
  const P = z(() => !!(!(f.length > 0) && a), [f.length, a]);
108
110
  return {
109
111
  processedParts: f,
@@ -2,7 +2,7 @@
2
2
 
3
3
  Ask me anything about \`${c}\`.`:`
4
4
 
5
- How can I help?`,p={parts:[{type:"text",text:r.introMessage??`${d}${m}`}],id:Ha,...e,role:"assistant"};return n.jsx(se,{message:p,...i})}),an=a.ikp("div",{_id:"aiChatMessageHeader"}),qe=t=>{const{message:e}=_.useMessage();return n.jsx(an,{"data-role":e.role,...t})},nn=a.ikp("div",{_id:"aiChatMessageLoading",children:"Thinking..."}),We=t=>n.jsx(nn,{...t}),rn=a.ikp("div",{_id:"aiChatMessageAvatar"}),Ne=t=>{const{message:e}=_.useMessage();return n.jsx(rn,{"data-role":e.role,...t})},sn=a.ikp(re.Root,{_id:"aiChatMessageAvatarContent"}),Qe=t=>{const{message:e}=_.useMessage(),{baseSettings:i}=b.useInkeepConfig();return n.jsx(sn,{"data-username":u.dataAttr(e.role==="user"&&!!i.userProperties.name),"data-role":e.role,...t})},on=a.ikp(re.Fallback,{_id:"aiChatMessageAvatarFallback"}),Ve=h.memo(t=>{const{baseSettings:e}=b.useInkeepConfig(),{message:i}=_.useMessage();return e.userProperties.name?n.jsx(on,{"data-role":i.role,children:u.getInitials(e.userProperties.name),...t}):null}),me=a.ikp(re.Image,{_id:"aiChatMessageAvatarImage"}),$e=h.memo(t=>{const{onLoadingStatusChange:e,...i}=t,{aiChatSettings:r,baseSettings:{userProperties:s}}=b.useInkeepConfig(),{message:o}=_.useMessage(),{aiAssistantAvatar:d}=r??{},c=typeof d=="string"?d:d?.light,m=(typeof d=="string"?d:d?.dark)??c,l=fa.useColorModeValue(c,m),[p,g]=h.useState(l);h.useEffect(()=>{g(l)},[l]);const v=A=>{A==="error"&&g(null)};return o.role==="user"?s.name?null:r.userAvatar?n.jsx(me,{"data-type":"image",alt:"User avatar","data-role":o.role,src:r.userAvatar,...t}):n.jsx(Pa.default,{"data-type":"icon","data-role":o.role,...t}):p?n.jsx(me,{src:p,alt:"AI assistant avatar","data-type":"image","data-role":o.role,onLoadingStatusChange:C.composeEventHandlers(e,v),...i}):n.jsx(ga.default,{"data-type":"icon","data-role":o.role,...t})}),dn=a.ikp("span",{_id:"aiChatMessageName"}),Ue=t=>{const{message:e}=_.useMessage();return n.jsx(dn,{"data-role":e.role,children:e.role==="user"?"You":"AI assistant",...t})},cn=a.ikp("div",{_id:"aiChatMessageContentWrapper"}),Ke=t=>{const{message:e}=_.useMessage();return n.jsx(cn,{"data-role":e.role,...t})},mn=a.ikp("div",{_id:"aiChatMessageContent"}),ze=t=>{const{message:e}=_.useMessage();return n.jsx(mn,{"data-role":e.role,...t})},ln=a.ikp("div",{_id:"aiChatMessageAttachments"}),Ge=t=>{const{message:e}=_.useMessage(),i=[];return e.role!=="user"||!i?.length?null:n.jsx(q.MessageAttachmentsProvider,{children:n.jsx(ln,{...t})})},hn=a.ikp("div",{_id:"aiChatMessageAttachments__List"}),Ye=t=>{const{children:e,...i}=t,r=[];return r?n.jsx(hn,{children:u.maybeRender(e,r),...i}):null},un=a.ikp("div",{_id:"aiChatMessageAttachments__Item"}),Je=t=>{const{attachment:e,onClick:i,...r}=t,{selectItem:s,onOpen:o}=q.useMessageAttachments(),d=()=>{s(e),o()};return n.jsx(D.AttachmentItemProvider,{attachment:e,children:n.jsx(un,{onClick:C.composeEventHandlers(i,d),...r})})},Cn=a.ikp(T.BuiltInIconRenderer,{_id:"aiChatMessageAttachments__ItemIcon"}),Xe=t=>{const{attachment:e}=D.useAttachmentItem(),i=e.contentType?.attachmentIcon;return i?n.jsx(Cn,{iconSettings:i,...t}):null},pn=a.ikp("span",{_id:"aiChatMessageAttachments__ItemTitle"}),Ze=t=>{const{attachment:e}=D.useAttachmentItem();return n.jsx(pn,{children:e.title,...t})},vn=a.ikp(E.Root,{_id:"aiChatMessageAttachmentsPreview"}),et=t=>{const{onOpenChange:e,...i}=t,{selectItem:r,isOpen:s,onClose:o,selectedItem:d}=q.useMessageAttachments(),c=m=>{m||(o(),r(null))};return n.jsx(vn,{open:s&&d!==null,onOpenChange:C.composeEventHandlers(e,c),...i})},tt=a.ikp(E.Overlay,{_id:"aiChatMessageAttachmentsPreview__Overlay"}),it=a.ikp(E.Content,{_id:"aiChatMessageAttachmentsPreview__Content","aria-describedby":void 0}),bn=a.ikp(E.Title,{_id:"aiChatMessageAttachmentsPreview__Header"}),at=t=>{const{selectedItem:e}=q.useMessageAttachments();return n.jsx(bn,{children:e?.title||"Attachment",...t})},nt=a.ikp(E.Close,{_id:"aiChatMessageAttachmentsPreview__Close",children:n.jsx(f.CustomIcon,{iconKey:"close"})}),gn=a.ikp("p",{_id:"aiChatMessageAttachmentsPreview__Body"}),rt=t=>{const{selectedItem:e}=q.useMessageAttachments();return n.jsx(gn,{children:e?.content,...t})},st=t=>{const{text:e,componentStyles:i,...r}=t,{aiChatSettings:s}=b.useInkeepConfig(),{shouldOpenLinksInNewTab:o}=s;return n.jsx(Q.Markdown,{children:e,componentStyles:i,shouldOpenLinksInNewTab:o,...r})},ot=({name:t,props:e,componentDef:i})=>{const s=ya.useShadow()?.shadowHost,o=h.useRef(void 0),d=h.useRef(null),c=h.useRef(null),m=h.useRef(!1),[l,p]=h.useState(!1),[g,v]=h.useState(!1),A=h.useRef(i);h.useMemo(()=>{i!==A.current&&(typeof i=="function"&&typeof A.current=="function"?i.toString()!==A.current.toString()&&(A.current=i):A.current=i)},[i]);const B=A.current;return h.useEffect(()=>{o.current||(o.current=`dyn:${t}:${crypto.randomUUID()}`,p(!0))},[t]),h.useLayoutEffect(()=>{if(!B||!s||!l||!o.current)return;const k=o.current,I=document.createElement("div");return I.setAttribute("data-ikp-component",""),I.setAttribute("data-component",t),I.setAttribute("slot",k),d.current=I,m.current=!1,s.appendChild(I),v(!0),()=>{m.current=!0,v(!1),queueMicrotask(()=>{try{c.current&&(c.current.unmount(),c.current=null)}catch(M){console.debug("Ignoring unmount error:",M)}I.parentNode===s&&I.remove(),d.current=null})}},[B,s,l,t]),h.useEffect(()=>{const k=d.current;if(!k||m.current)return;const I=x=>{if(typeof x!="function"||x.length>1)return!1;try{if(typeof x=="function"&&x.constructor===Function){const O=x({});return h.isValidElement(O)}return!1}catch{return!0}};let M;if(I(B))try{const x=B;M=h.createElement(x,e||{})}catch(x){console.error("Error creating React element from component:",x);return}else if(typeof B=="function")M=B(e||{},k,null);else{console.error("Invalid component definition");return}if(h.isValidElement(M)||typeof M=="string"){if(m.current)return;c.current||(c.current=ja.createRoot(k)),!m.current&&c.current&&c.current.render(M);return}c.current&&!m.current&&c.current.render(null)},[i,e,g]),n.jsx("slot",{name:o.current})},Pn=a.ikp("div",{_id:"aiChatMessagePart"}),An=a.ikp("div",{_id:"aiChatMessageToolbar"}),dt=t=>{const{isLoading:e,messages:i}=P.useChat(),{message:r}=_.useMessage();return i.at(-1)?.id===r?.id&&e||r.role==="user"?null:n.jsx(An,{...t})},_n=a.ikp("div",{_id:"aiChatMessageCustomActions"}),ct=t=>{const{children:e,...i}=t,{aiChatSettings:r}=b.useInkeepConfig(),{message:s}=_.useMessage(),{isStreaming:o,messages:d}=P.useChat(),c=d.at(-1)?.id===s?.id,m=s.role==="assistant",l=r.messageActions||[];return c&&o||!m?null:n.jsx(_n,{children:u.maybeRender(e,l),...i})},En=a.ikp("a",{_id:"aiChatMessageCustomAction"}),Fn=a.ikp("button",{_id:"aiChatMessageCustomAction"}),mt=t=>{const{onClick:e,action:i,...r}=t,{message:s}=_.useMessage(),{handleAction:o}=te.useChatAction(i,s.id),{logEvent:d}=ne.useBaseEvents(),{conversationId:c}=P.useChat(),m=()=>{o(),d({eventName:"user_escalation_indicated",properties:{escalationType:"contact_us",conversationId:c}})},l=i.label,p=n.jsxs(n.Fragment,{children:[i.icon&&n.jsx(T.BuiltInIconRenderer,{iconSettings:i.icon}),l]});return i.action.type==="open_link"?n.jsx(En,{href:i.action.url,target:"_blank",rel:"noopener","data-type":i.action.type,onClick:C.composeEventHandlers(e,m),children:p,...r}):n.jsx(Fn,{"data-type":i.action.type,onClick:C.composeEventHandlers(e,m),children:p,...r})},kn=a.ikp("button",{_id:"aiChatMessageAction"}),lt=t=>{const{action:e,onClick:i,className:r,...s}=t,{conversationId:o}=P.useChat(),{baseSettings:{onFeedback:d}}=b.useInkeepConfig(),{message:c}=_.useMessage(),{isStreaming:m,messages:l}=P.useChat(),[p,g]=J.useCopyToClipboard(),{feedback:v,submitPositiveFeedback:A,setCurrentFeedback:B,currentFeedback:k}=ee.useMessageFeedback(),{logEvent:I}=ne.useBaseEvents(),[M,x]=Ea.useSettleAction(),O=l.at(-1)?.id===c?.id,z=c.role==="assistant";if(O&&m||!z)return null;const N={copy(){g(u.getMessageContent(c)),I({eventName:"assistant_message_copied",properties:{conversationId:o}})},upvote(){A(c.id).then(()=>{x()})},downvote(){B(c.id)}},G={copy:"Copy Message",upvote:"Upvote Message",downvote:"Downvote Message"},Y={copy:n.jsx(f.CustomIcon,{iconKey:p?"messageCopied":"messageCopy"}),upvote:n.jsx(f.CustomIcon,{iconKey:M?"messageCopied":"thumbsUp"}),downvote:n.jsx(f.CustomIcon,{iconKey:"thumbsDown"})},la={copy:{"data-copied":u.dataAttr(p)},upvote:{"data-upvoted":u.dataAttr(v[c.id]?.type==="positive")},downvote:{"data-downvoted":u.dataAttr(v[c.id]?.type==="negative"),"data-state":k===null?"closed":"open"}};return{copy:!1,upvote:!d,downvote:!d}[e]?null:n.jsx(kn,{"data-action":e,...la[e],children:Y[e],"aria-label":G[e],className:`${r} ${e}`,onClick:C.composeEventHandlers(i,N[e]),...s})},In=a.ikp("div",{_id:"aiChatMessageSources"}),ht=t=>{const{message:e}=_.useMessage();return e.role!=="assistant"||!e.parts.filter(r=>r.type==="data-artifact"&&r.data?.type?.toLowerCase()==="citation")?.length?null:n.jsx(In,{...t})},Mn=a.ikp("div",{_id:"aiChatMessageSources__Header"}),ut=t=>n.jsx(Mn,{children:"Sources",...t}),fn=a.ikp("div",{_id:"aiChatMessageSources__List"}),Ct=t=>{const{message:e}=_.useMessage(),{children:i,...r}=t,{baseSettings:{transformSource:s,organizationDisplayName:o},aiChatSettings:{shouldOpenLinksInNewTab:d},searchSettings:{tabs:c}}=b.useInkeepConfig();if(e.role!=="assistant")return null;const m=e.parts.filter(g=>g.type==="data-artifact"&&g.data?.type?.toLowerCase()==="citation");if(!m?.length)return null;const l=new Map,p=m.filter(g=>{const v=g.data.artifactSummary.url;return!v||l.has(v)?!1:(l.set(v,!0),!0)}).map(g=>{const v=g.data,A={id:v?.artifactId,title:v?.artifactSummary?.title||v?.name,url:v?.artifactSummary?.url||"",description:"",breadcrumbs:[],type:v?.artifactSummary?.record_type,contentType:v?.artifactType,tag:v?.artifactType},k=(s??(M=>({...M,shouldOpenInNewTab:d,icon:Ta.getIcon(M)})))(A,"chatSourceItem",{organizationDisplayName:o,tabs:c}),I=k.shouldOpenInNewTab!==void 0?k.shouldOpenInNewTab:d;return{...k,isExternal:I}});return n.jsx(fn,{children:u.maybeRender(i,p),...r})},Sn=a.ikp(Aa.LinkWithQueryParams,{_id:"aiChatMessageSourceItem"}),pt=t=>{const{source:e,onClick:i,...r}=t,{logEvent:s}=ne.useBaseEvents(),{conversationId:o}=P.useChat(),d=()=>{s({eventName:"assistant_source_item_clicked",properties:{conversationId:o,link:e}})};return n.jsx(j.SourceItemProvider,{source:e,children:n.jsx(Sn,{"data-type":e.type,appendToUrl:e.appendToUrl,isExternal:e.isExternal,"data-breadcrumbs":!!e.breadcrumbs?.length,onClick:C.composeEventHandlers(i,d),...r})})},xn=a.ikp("div",{_id:"aiChatMessageSourceItem__Breadcrumbs"}),vt=t=>{const{source:e}=j.useSourceItem();return e.breadcrumbs?.length?n.jsx(xn,{"data-type":e.type,...t}):null},Bn=a.ikp(f.CustomIcon,{_id:"aiChatMessageSourceItem__BreadcrumbIcon",iconKey:"breadcrumbSeparator"}),yn=a.ikp(T.BuiltInIconRenderer,{_id:"aiChatMessageSourceItem__Icon"}),bt=t=>{const{source:e}=j.useSourceItem();return n.jsx(yn,{iconSettings:e.icon,"data-type":e.type,...t})},Tn=a.ikp("span",{_id:"aiChatMessageSourceItem__Title"}),gt=t=>{const{source:e}=j.useSourceItem();return n.jsx(Tn,{"data-type":e.type,children:e.title,...t})},jn=a.ikp("span",{_id:"aiChatMessageSourceItem__Tag"}),Pt=t=>{const{source:e}=j.useSourceItem();return n.jsx(jn,{"data-type":e.type,...t})},Hn=a.ikp("span",{_id:"aiChatMessageSourceItem__Description"}),At=t=>{const{source:e}=j.useSourceItem(),{children:i,...r}=t,s=h.useMemo(()=>e.description?Ia.highlightEmphasis(e.description):[],[e.description]);return s.length?n.jsx(Hn,{"data-type":e.type,children:u.maybeRender(i,s),...r}):null},wn=a.ikp("span",{_id:"aiChatMessageSourceItem__DescriptionPart"}),_t=t=>{const{part:e,...i}=t,{source:r}=j.useSourceItem();return typeof e=="string"?e:n.jsx(wn,{"data-type":r.type,children:e.content,"data-highlighted":u.dataAttr(e.highlighted),...i})},Ln=a.ikp(f.CustomIcon,{_id:"aiChatMessageSourceItem__Indicator"}),Et=t=>{const{source:e}=j.useSourceItem();return n.jsx(Ln,{iconKey:e.isExternal?"openLinkInNewTab":"openLinkInSameTab",...t})},Ft=a.ikp("div",{_id:"aiChatFooter"}),kt=a.ikp("div",{_id:"aiChatInput__Fieldset"}),It=a.ikp("div",{_id:"aiChatInput__Group"}),Dn=a.ikp("textarea",{_id:"aiChatInput"}),Mt=h.forwardRef(({onChange:t,onKeyDown:e,...i},r)=>{const{handleInputChange:s,handleInputKeyDown:o,input:d,error:c,shouldAutoFocusInput:m,inputRef:l}=P.useChat(),{aiChatSettings:p}=b.useInkeepConfig(),g=ie.useComposedRefs(r,l);return Ba.useWidgetAutoFocus("chat",l,m),n.jsx(Dn,{asChild:!0,ref:g,maxLength:99999,placeholder:p.placeholder,value:d,onChange:C.composeEventHandlers(t,s),onKeyDown:C.composeEventHandlers(e,o),disabled:!!c||p.isViewOnly,...i,children:n.jsx(Z,{})})}),Rn=a.ikp("button",{_id:"aiChatInput__SendButton"}),ft=t=>{const{handleSubmit:e,isSubmitDisabled:i,error:r}=P.useChat(),{aiChatSettings:s}=b.useInkeepConfig(),{onClick:o,...d}=t;return n.jsx(Rn,{onClick:C.composeEventHandlers(o,()=>e()),"aria-label":"Send message",disabled:i||!!r||s.isViewOnly,...d})},St=a.ikp(f.CustomIcon,{_id:"aiChatInput__SendButtonIcon",iconKey:"chatSubmit"}),On=a.ikp("div",{_id:"aiChatAttachmentsBar"}),xt=t=>{const e={supportedInputs:[]};return!e||!e.supportedInputs?.length?null:n.jsx(S.AttachmentsBarProvider,{children:n.jsx(On,{...t})})},qn=a.ikp("div",{_id:"aiChatAttachmentsBar__List"}),Bt=t=>{const{children:e,...i}=t,r=[];return n.jsx(qn,{children:u.maybeRender(e,r),...i})},Wn=a.ikp("div",{_id:"aiChatAttachmentsBar__Attachment"}),yt=t=>{const{attachment:e,...i}=t;return n.jsx(D.AttachmentItemProvider,{attachment:e,children:n.jsx(Wn,{...i})})},Nn=a.ikp(T.BuiltInIconRenderer,{_id:"aiChatAttachmentsBar__AttachmentIcon"}),Tt=t=>{const{attachment:e}=D.useAttachmentItem(),i=e.contentType?.attachmentIcon;return i?n.jsx(Nn,{iconSettings:i,...t}):null},Qn=a.ikp("span",{_id:"aiChatAttachmentsBar__AttachmentTitle"}),jt=t=>{const{attachment:e}=D.useAttachmentItem();return n.jsx(Qn,{children:e.title,...t})},Vn=a.ikp("button",{_id:"aiChatAttachmentsBar__AttachmentDelete"}),Ht=t=>{const{onClick:e,...i}=t,r=()=>{};return n.jsx(Vn,{"aria-label":"Remove attachment",children:n.jsx(f.CustomIcon,{iconKey:"close"}),onClick:C.composeEventHandlers(e,r),...i})},wt=a.ikp("div",{_id:"aiChatAttachmentsBar__Actions"}),Lt=a.ikp(L.Tooltip,{_id:"aiChatAttachmentsBar__InfoTip",delayDuration:0}),Dt=a.ikp(L.Trigger,{_id:"aiChatAttachmentsBar__InfoTipIcon",children:n.jsx(f.CustomIcon,{iconKey:"info"})}),oe=a.ikp(L.Arrow,{_id:"aiChatAttachmentsBar__InfoTipArrow"}),Rt=a.ikp(L.Content,{_id:"aiChatAttachmentsBar__InfoTipText",side:"bottom",sideOffset:3,align:"center",children:n.jsxs(n.Fragment,{children:[n.jsx(oe,{}),"Attachments will be kept in context for the entire conversation."]})}),$n=a.ikp("div",{_id:"aiChatAttachmentsBar__Inputs"}),Ot=t=>{const{children:e,...i}=t,r={supportedInputs:[]};return r?.supportedInputs?n.jsx($n,{children:u.maybeRender(e,r.supportedInputs),...i}):null},Un=a.ikp("button",{_id:"aiChatAttachmentsBar__Input"}),qt=t=>{const{input:e,onClick:i,...r}=t,s={supportedInputs:[]},o=[],d=()=>{},{selectInput:c,onOpen:m}=S.useAttachmentsBar(),l=()=>{if(e.type==="FUNCTIONAL_MULTI_ATTACHMENT")return s?e.onInvoke(s,e,d,[...o]):void 0;c(e),m()};return n.jsx(Un,{children:e.displayName,onClick:C.composeEventHandlers(i,l),...r})},Kn=a.ikp(E.Root,{_id:"aiChatAttachmentsBar__Modal"}),Wt=t=>{const{onOpenChange:e,...i}=t,{selectInput:r,isOpen:s,onClose:o,selectedInput:d}=S.useAttachmentsBar(),c=m=>{m||(o(),r(null))};return n.jsx(Kn,{open:s&&d!==null,onOpenChange:C.composeEventHandlers(e,c),...i})},Nt=a.ikp(E.Overlay,{_id:"aiChatAttachmentsBar__ModalOverlay"}),Qt=a.ikp(E.Content,{_id:"aiChatAttachmentsBar__ModalContent","aria-describedby":void 0}),Vt=a.ikp("div",{_id:"aiChatAttachmentsBar__ModalHeader"}),zn=a.ikp(E.Title,{_id:"aiChatAttachmentsBar__ModalHeading"}),$t=t=>{const{selectedInput:e}=S.useAttachmentsBar(),i=`Add ${e?.displayName}`;return n.jsx(zn,{children:i,...t})},Gn=a.ikp("span",{_id:"aiChatAttachmentsBar__ModalDescription"}),Ut=t=>{const{selectedInput:e}=S.useAttachmentsBar(),i=e?.workflowModalProps?.modalHelpText;return i?n.jsx(Gn,{children:i,...t}):null},Yn=a.ikp("div",{_id:"aiChatAttachmentsBar__ModalHelp"}),Kt=t=>{const{children:e,...i}=t,{selectedInput:r}=S.useAttachmentsBar(),s=r?.workflowModalProps?.modalHelpElement;return s?n.jsx(Yn,{asChild:!e,children:e||s,...i}):null},zt=a.ikp(E.Close,{_id:"aiChatAttachmentsBar__ModalClose",children:n.jsx(f.CustomIcon,{iconKey:"close"})}),Gt=a.ikp("div",{_id:"aiChatAttachmentsBar__ModalBody"}),Jn=a.ikp("form",{_id:"aiChatAttachmentsBar__Form"}),Yt=t=>{const{onSubmit:e,...i}=t,{form:r}=S.useAttachmentsBar();return n.jsx(Jn,{onSubmit:C.composeEventHandlers(e,r.onSubmit),...i})},Jt=a.ikp("div",{_id:"aiChatAttachmentsBar__FormTitle",role:"group"}),Xn=a.ikp("label",{_id:"aiChatAttachmentsBar__FormTitleLabel"}),Xt=t=>{const{form:e,selectedInput:i}=S.useAttachmentsBar();return n.jsx(Xn,{htmlFor:`${i?.id}-title`,children:e.labels.title,...t})},Zn=a.ikp("input",{_id:"aiChatAttachmentsBar__FormTitleInput"}),Zt=t=>{const{onChange:e,...i}=t,{form:r,selectedInput:s}=S.useAttachmentsBar();return n.jsx(Zn,{name:"title",value:r.data.title,id:`${s?.id}-title`,"data-invalid":u.dataAttr(!!r.errors.title),"aria-invalid":!!r.errors.title,onChange:C.composeEventHandlers(e,r.onChange),...i})},er=a.ikp("span",{_id:"aiChatAttachmentsBar__FormTitleError"}),ei=t=>{const{form:e}=S.useAttachmentsBar();return e.errors.title?n.jsx(er,{"aria-live":"polite",children:e.errors.title,...t}):null},ti=a.ikp("div",{_id:"aiChatAttachmentsBar__FormTitle",role:"group"}),tr=a.ikp("label",{_id:"aiChatAttachmentsBar__FormContentLabel"}),ii=t=>{const{form:e,selectedInput:i}=S.useAttachmentsBar();return n.jsx(tr,{htmlFor:`${i?.id}-content`,children:e.labels.content,...t})},ir=a.ikp("textarea",{_id:"aiChatAttachmentsBar__FormTitleInput"}),ai=t=>{const{onChange:e,...i}=t,{form:r,selectedInput:s}=S.useAttachmentsBar();return n.jsx(ir,{asChild:!0,rows:4,name:"content",value:r.data.content,id:`${s?.id}-content`,"data-invalid":u.dataAttr(!!r.errors.content),"aria-invalid":!!r.errors.content,onChange:C.composeEventHandlers(e,r.onChange),...i,children:n.jsx(Z,{maxRows:10})})},ar=a.ikp("span",{_id:"aiChatAttachmentsBar__FormContentError"}),ni=t=>{const{form:e}=S.useAttachmentsBar();return e.errors.content?n.jsx(ar,{"aria-live":"polite",children:e.errors.content,...t}):null},ri=a.ikp("button",{_id:"aiChatAttachmentsBar__FormSubmitButton",children:"Upload",type:"submit"}),si=a.ikp("div",{_id:"aiChatActionBar"}),oi=a.ikp("div",{_id:"aiChat__ChatActions"}),di=a.ikp("div",{_id:"aiChatTagline__Container"}),ci=a.ikp("span",{_id:"aiChatTagline__Text",children:"Powered by"}),mi=a.ikp(_a.default,{_id:"aiChatTagline__Logo"}),li=a.ikp("a",{_id:"aiChatTagline__BrandName",children:"inkeep",href:"https://www.inkeep.com/",target:"_blank",rel:"noopener noreferrer"}),nr=a.ikp(L.Trigger,{_id:"aiChat__ChatAction"}),U=t=>{const{action:e,onClick:i,className:r,...s}=t,o={},{clear:d,stop:c,isLoading:m,isStreaming:l,messages:p}=P.useChat(),{conversationId:g}=P.useChat(),{aiChatSettings:v}=b.useInkeepConfig(),[A,B]=J.useCopyToClipboard(),[k]=J.useCopyToClipboard();if({help:!1,copy:p.length===0||!v.isCopyChatButtonVisible||m||l,share:p.length===0||!v.isShareButtonVisible||!g||!!o||m||l,clear:p.length===0||v.isViewOnly||m||l,stop:!m&&!l}[e])return null;const O={help:()=>{},copy:()=>{const ce=p.map(N=>{const G=`**${N.role==="assistant"?"AI Assistant":"User"}**`,Y=u.getMessageContent(N);return`${G}
5
+ How can I help?`,p={parts:[{type:"text",text:r.introMessage??`${d}${m}`}],id:Ha,...e,role:"assistant"};return n.jsx(se,{message:p,...i})}),an=a.ikp("div",{_id:"aiChatMessageHeader"}),qe=t=>{const{message:e}=_.useMessage();return n.jsx(an,{"data-role":e.role,...t})},nn=a.ikp("div",{_id:"aiChatMessageLoading",children:"Thinking..."}),We=t=>n.jsx(nn,{...t}),rn=a.ikp("div",{_id:"aiChatMessageAvatar"}),Ne=t=>{const{message:e}=_.useMessage();return n.jsx(rn,{"data-role":e.role,...t})},sn=a.ikp(re.Root,{_id:"aiChatMessageAvatarContent"}),Qe=t=>{const{message:e}=_.useMessage(),{baseSettings:i}=b.useInkeepConfig();return n.jsx(sn,{"data-username":u.dataAttr(e.role==="user"&&!!i.userProperties.name),"data-role":e.role,...t})},on=a.ikp(re.Fallback,{_id:"aiChatMessageAvatarFallback"}),Ve=h.memo(t=>{const{baseSettings:e}=b.useInkeepConfig(),{message:i}=_.useMessage();return e.userProperties.name?n.jsx(on,{"data-role":i.role,children:u.getInitials(e.userProperties.name),...t}):null}),me=a.ikp(re.Image,{_id:"aiChatMessageAvatarImage"}),$e=h.memo(t=>{const{onLoadingStatusChange:e,...i}=t,{aiChatSettings:r,baseSettings:{userProperties:s}}=b.useInkeepConfig(),{message:o}=_.useMessage(),{aiAssistantAvatar:d}=r??{},c=typeof d=="string"?d:d?.light,m=(typeof d=="string"?d:d?.dark)??c,l=fa.useColorModeValue(c,m),[p,g]=h.useState(l);h.useEffect(()=>{g(l)},[l]);const v=A=>{A==="error"&&g(null)};return o.role==="user"?s.name?null:r.userAvatar?n.jsx(me,{"data-type":"image",alt:"User avatar","data-role":o.role,src:r.userAvatar,...t}):n.jsx(Pa.default,{"data-type":"icon","data-role":o.role,...t}):p?n.jsx(me,{src:p,alt:"AI assistant avatar","data-type":"image","data-role":o.role,onLoadingStatusChange:C.composeEventHandlers(e,v),...i}):n.jsx(ga.default,{"data-type":"icon","data-role":o.role,...t})}),dn=a.ikp("span",{_id:"aiChatMessageName"}),Ue=t=>{const{message:e}=_.useMessage(),{aiChatSettings:i}=b.useInkeepConfig(),{aiAssistantName:r}=i;return n.jsx(dn,{"data-role":e.role,children:e.role==="user"?"You":r||"AI assistant",...t})},cn=a.ikp("div",{_id:"aiChatMessageContentWrapper"}),Ke=t=>{const{message:e}=_.useMessage();return n.jsx(cn,{"data-role":e.role,...t})},mn=a.ikp("div",{_id:"aiChatMessageContent"}),ze=t=>{const{message:e}=_.useMessage();return n.jsx(mn,{"data-role":e.role,...t})},ln=a.ikp("div",{_id:"aiChatMessageAttachments"}),Ge=t=>{const{message:e}=_.useMessage(),i=[];return e.role!=="user"||!i?.length?null:n.jsx(q.MessageAttachmentsProvider,{children:n.jsx(ln,{...t})})},hn=a.ikp("div",{_id:"aiChatMessageAttachments__List"}),Ye=t=>{const{children:e,...i}=t,r=[];return r?n.jsx(hn,{children:u.maybeRender(e,r),...i}):null},un=a.ikp("div",{_id:"aiChatMessageAttachments__Item"}),Je=t=>{const{attachment:e,onClick:i,...r}=t,{selectItem:s,onOpen:o}=q.useMessageAttachments(),d=()=>{s(e),o()};return n.jsx(D.AttachmentItemProvider,{attachment:e,children:n.jsx(un,{onClick:C.composeEventHandlers(i,d),...r})})},Cn=a.ikp(T.BuiltInIconRenderer,{_id:"aiChatMessageAttachments__ItemIcon"}),Xe=t=>{const{attachment:e}=D.useAttachmentItem(),i=e.contentType?.attachmentIcon;return i?n.jsx(Cn,{iconSettings:i,...t}):null},pn=a.ikp("span",{_id:"aiChatMessageAttachments__ItemTitle"}),Ze=t=>{const{attachment:e}=D.useAttachmentItem();return n.jsx(pn,{children:e.title,...t})},vn=a.ikp(E.Root,{_id:"aiChatMessageAttachmentsPreview"}),et=t=>{const{onOpenChange:e,...i}=t,{selectItem:r,isOpen:s,onClose:o,selectedItem:d}=q.useMessageAttachments(),c=m=>{m||(o(),r(null))};return n.jsx(vn,{open:s&&d!==null,onOpenChange:C.composeEventHandlers(e,c),...i})},tt=a.ikp(E.Overlay,{_id:"aiChatMessageAttachmentsPreview__Overlay"}),it=a.ikp(E.Content,{_id:"aiChatMessageAttachmentsPreview__Content","aria-describedby":void 0}),bn=a.ikp(E.Title,{_id:"aiChatMessageAttachmentsPreview__Header"}),at=t=>{const{selectedItem:e}=q.useMessageAttachments();return n.jsx(bn,{children:e?.title||"Attachment",...t})},nt=a.ikp(E.Close,{_id:"aiChatMessageAttachmentsPreview__Close",children:n.jsx(f.CustomIcon,{iconKey:"close"})}),gn=a.ikp("p",{_id:"aiChatMessageAttachmentsPreview__Body"}),rt=t=>{const{selectedItem:e}=q.useMessageAttachments();return n.jsx(gn,{children:e?.content,...t})},st=t=>{const{text:e,componentStyles:i,...r}=t,{aiChatSettings:s}=b.useInkeepConfig(),{shouldOpenLinksInNewTab:o}=s;return n.jsx(Q.Markdown,{children:e,componentStyles:i,shouldOpenLinksInNewTab:o,...r})},ot=({name:t,props:e,componentDef:i})=>{const s=ya.useShadow()?.shadowHost,o=h.useRef(void 0),d=h.useRef(null),c=h.useRef(null),m=h.useRef(!1),[l,p]=h.useState(!1),[g,v]=h.useState(!1),A=h.useRef(i);h.useMemo(()=>{i!==A.current&&(typeof i=="function"&&typeof A.current=="function"?i.toString()!==A.current.toString()&&(A.current=i):A.current=i)},[i]);const B=A.current;return h.useEffect(()=>{o.current||(o.current=`dyn:${t}:${crypto.randomUUID()}`,p(!0))},[t]),h.useLayoutEffect(()=>{if(!B||!s||!l||!o.current)return;const k=o.current,I=document.createElement("div");return I.setAttribute("data-ikp-component",""),I.setAttribute("data-component",t),I.setAttribute("slot",k),d.current=I,m.current=!1,s.appendChild(I),v(!0),()=>{m.current=!0,v(!1),queueMicrotask(()=>{try{c.current&&(c.current.unmount(),c.current=null)}catch(M){console.debug("Ignoring unmount error:",M)}I.parentNode===s&&I.remove(),d.current=null})}},[B,s,l,t]),h.useEffect(()=>{const k=d.current;if(!k||m.current)return;const I=x=>{if(typeof x!="function"||x.length>1)return!1;try{if(typeof x=="function"&&x.constructor===Function){const O=x({});return h.isValidElement(O)}return!1}catch{return!0}};let M;if(I(B))try{const x=B;M=h.createElement(x,e||{})}catch(x){console.error("Error creating React element from component:",x);return}else if(typeof B=="function")M=B(e||{},k,null);else{console.error("Invalid component definition");return}if(h.isValidElement(M)||typeof M=="string"){if(m.current)return;c.current||(c.current=ja.createRoot(k)),!m.current&&c.current&&c.current.render(M);return}c.current&&!m.current&&c.current.render(null)},[i,e,g]),n.jsx("slot",{name:o.current})},Pn=a.ikp("div",{_id:"aiChatMessagePart"}),An=a.ikp("div",{_id:"aiChatMessageToolbar"}),dt=t=>{const{isLoading:e,messages:i}=P.useChat(),{message:r}=_.useMessage();return i.at(-1)?.id===r?.id&&e||r.role==="user"?null:n.jsx(An,{...t})},_n=a.ikp("div",{_id:"aiChatMessageCustomActions"}),ct=t=>{const{children:e,...i}=t,{aiChatSettings:r}=b.useInkeepConfig(),{message:s}=_.useMessage(),{isStreaming:o,messages:d}=P.useChat(),c=d.at(-1)?.id===s?.id,m=s.role==="assistant",l=r.messageActions||[];return c&&o||!m?null:n.jsx(_n,{children:u.maybeRender(e,l),...i})},En=a.ikp("a",{_id:"aiChatMessageCustomAction"}),Fn=a.ikp("button",{_id:"aiChatMessageCustomAction"}),mt=t=>{const{onClick:e,action:i,...r}=t,{message:s}=_.useMessage(),{handleAction:o}=te.useChatAction(i,s.id),{logEvent:d}=ne.useBaseEvents(),{conversationId:c}=P.useChat(),m=()=>{o(),d({eventName:"user_escalation_indicated",properties:{escalationType:"contact_us",conversationId:c}})},l=i.label,p=n.jsxs(n.Fragment,{children:[i.icon&&n.jsx(T.BuiltInIconRenderer,{iconSettings:i.icon}),l]});return i.action.type==="open_link"?n.jsx(En,{href:i.action.url,target:"_blank",rel:"noopener","data-type":i.action.type,onClick:C.composeEventHandlers(e,m),children:p,...r}):n.jsx(Fn,{"data-type":i.action.type,onClick:C.composeEventHandlers(e,m),children:p,...r})},kn=a.ikp("button",{_id:"aiChatMessageAction"}),lt=t=>{const{action:e,onClick:i,className:r,...s}=t,{conversationId:o}=P.useChat(),{baseSettings:{onFeedback:d}}=b.useInkeepConfig(),{message:c}=_.useMessage(),{isStreaming:m,messages:l}=P.useChat(),[p,g]=J.useCopyToClipboard(),{feedback:v,submitPositiveFeedback:A,setCurrentFeedback:B,currentFeedback:k}=ee.useMessageFeedback(),{logEvent:I}=ne.useBaseEvents(),[M,x]=Ea.useSettleAction(),O=l.at(-1)?.id===c?.id,z=c.role==="assistant";if(O&&m||!z)return null;const N={copy(){g(u.getMessageContent(c)),I({eventName:"assistant_message_copied",properties:{conversationId:o}})},upvote(){A(c.id).then(()=>{x()})},downvote(){B(c.id)}},G={copy:"Copy Message",upvote:"Upvote Message",downvote:"Downvote Message"},Y={copy:n.jsx(f.CustomIcon,{iconKey:p?"messageCopied":"messageCopy"}),upvote:n.jsx(f.CustomIcon,{iconKey:M?"messageCopied":"thumbsUp"}),downvote:n.jsx(f.CustomIcon,{iconKey:"thumbsDown"})},la={copy:{"data-copied":u.dataAttr(p)},upvote:{"data-upvoted":u.dataAttr(v[c.id]?.type==="positive")},downvote:{"data-downvoted":u.dataAttr(v[c.id]?.type==="negative"),"data-state":k===null?"closed":"open"}};return{copy:!1,upvote:!d,downvote:!d}[e]?null:n.jsx(kn,{"data-action":e,...la[e],children:Y[e],"aria-label":G[e],className:`${r} ${e}`,onClick:C.composeEventHandlers(i,N[e]),...s})},In=a.ikp("div",{_id:"aiChatMessageSources"}),ht=t=>{const{message:e}=_.useMessage();return e.role!=="assistant"||!e.parts.filter(r=>r.type==="data-artifact"&&r.data?.type?.toLowerCase()==="citation")?.length?null:n.jsx(In,{...t})},Mn=a.ikp("div",{_id:"aiChatMessageSources__Header"}),ut=t=>n.jsx(Mn,{children:"Sources",...t}),fn=a.ikp("div",{_id:"aiChatMessageSources__List"}),Ct=t=>{const{message:e}=_.useMessage(),{children:i,...r}=t,{baseSettings:{transformSource:s,organizationDisplayName:o},aiChatSettings:{shouldOpenLinksInNewTab:d},searchSettings:{tabs:c}}=b.useInkeepConfig();if(e.role!=="assistant")return null;const m=e.parts.filter(g=>g.type==="data-artifact"&&g.data?.type?.toLowerCase()==="citation");if(!m?.length)return null;const l=new Map,p=m.filter(g=>{const v=g.data.artifactSummary.url;return!v||l.has(v)?!1:(l.set(v,!0),!0)}).map(g=>{const v=g.data,A={id:v?.artifactId,title:v?.artifactSummary?.title||v?.name,url:v?.artifactSummary?.url||"",description:"",breadcrumbs:[],type:v?.artifactSummary?.record_type,contentType:v?.artifactType,tag:v?.artifactType},k=(s??(M=>({...M,shouldOpenInNewTab:d,icon:Ta.getIcon(M)})))(A,"chatSourceItem",{organizationDisplayName:o,tabs:c}),I=k.shouldOpenInNewTab!==void 0?k.shouldOpenInNewTab:d;return{...k,isExternal:I}});return n.jsx(fn,{children:u.maybeRender(i,p),...r})},Sn=a.ikp(Aa.LinkWithQueryParams,{_id:"aiChatMessageSourceItem"}),pt=t=>{const{source:e,onClick:i,...r}=t,{logEvent:s}=ne.useBaseEvents(),{conversationId:o}=P.useChat(),d=()=>{s({eventName:"assistant_source_item_clicked",properties:{conversationId:o,link:e}})};return n.jsx(j.SourceItemProvider,{source:e,children:n.jsx(Sn,{"data-type":e.type,appendToUrl:e.appendToUrl,isExternal:e.isExternal,"data-breadcrumbs":!!e.breadcrumbs?.length,onClick:C.composeEventHandlers(i,d),...r})})},xn=a.ikp("div",{_id:"aiChatMessageSourceItem__Breadcrumbs"}),vt=t=>{const{source:e}=j.useSourceItem();return e.breadcrumbs?.length?n.jsx(xn,{"data-type":e.type,...t}):null},Bn=a.ikp(f.CustomIcon,{_id:"aiChatMessageSourceItem__BreadcrumbIcon",iconKey:"breadcrumbSeparator"}),yn=a.ikp(T.BuiltInIconRenderer,{_id:"aiChatMessageSourceItem__Icon"}),bt=t=>{const{source:e}=j.useSourceItem();return n.jsx(yn,{iconSettings:e.icon,"data-type":e.type,...t})},Tn=a.ikp("span",{_id:"aiChatMessageSourceItem__Title"}),gt=t=>{const{source:e}=j.useSourceItem();return n.jsx(Tn,{"data-type":e.type,children:e.title,...t})},jn=a.ikp("span",{_id:"aiChatMessageSourceItem__Tag"}),Pt=t=>{const{source:e}=j.useSourceItem();return n.jsx(jn,{"data-type":e.type,...t})},Hn=a.ikp("span",{_id:"aiChatMessageSourceItem__Description"}),At=t=>{const{source:e}=j.useSourceItem(),{children:i,...r}=t,s=h.useMemo(()=>e.description?Ia.highlightEmphasis(e.description):[],[e.description]);return s.length?n.jsx(Hn,{"data-type":e.type,children:u.maybeRender(i,s),...r}):null},wn=a.ikp("span",{_id:"aiChatMessageSourceItem__DescriptionPart"}),_t=t=>{const{part:e,...i}=t,{source:r}=j.useSourceItem();return typeof e=="string"?e:n.jsx(wn,{"data-type":r.type,children:e.content,"data-highlighted":u.dataAttr(e.highlighted),...i})},Ln=a.ikp(f.CustomIcon,{_id:"aiChatMessageSourceItem__Indicator"}),Et=t=>{const{source:e}=j.useSourceItem();return n.jsx(Ln,{iconKey:e.isExternal?"openLinkInNewTab":"openLinkInSameTab",...t})},Ft=a.ikp("div",{_id:"aiChatFooter"}),kt=a.ikp("div",{_id:"aiChatInput__Fieldset"}),It=a.ikp("div",{_id:"aiChatInput__Group"}),Dn=a.ikp("textarea",{_id:"aiChatInput"}),Mt=h.forwardRef(({onChange:t,onKeyDown:e,...i},r)=>{const{handleInputChange:s,handleInputKeyDown:o,input:d,error:c,shouldAutoFocusInput:m,inputRef:l}=P.useChat(),{aiChatSettings:p}=b.useInkeepConfig(),g=ie.useComposedRefs(r,l);return Ba.useWidgetAutoFocus("chat",l,m),n.jsx(Dn,{asChild:!0,ref:g,maxLength:99999,placeholder:p.placeholder,value:d,onChange:C.composeEventHandlers(t,s),onKeyDown:C.composeEventHandlers(e,o),disabled:!!c||p.isViewOnly,...i,children:n.jsx(Z,{})})}),Rn=a.ikp("button",{_id:"aiChatInput__SendButton"}),ft=t=>{const{handleSubmit:e,isSubmitDisabled:i,error:r}=P.useChat(),{aiChatSettings:s}=b.useInkeepConfig(),{onClick:o,...d}=t;return n.jsx(Rn,{onClick:C.composeEventHandlers(o,()=>e()),"aria-label":"Send message",disabled:i||!!r||s.isViewOnly,...d})},St=a.ikp(f.CustomIcon,{_id:"aiChatInput__SendButtonIcon",iconKey:"chatSubmit"}),On=a.ikp("div",{_id:"aiChatAttachmentsBar"}),xt=t=>{const e={supportedInputs:[]};return!e||!e.supportedInputs?.length?null:n.jsx(S.AttachmentsBarProvider,{children:n.jsx(On,{...t})})},qn=a.ikp("div",{_id:"aiChatAttachmentsBar__List"}),Bt=t=>{const{children:e,...i}=t,r=[];return n.jsx(qn,{children:u.maybeRender(e,r),...i})},Wn=a.ikp("div",{_id:"aiChatAttachmentsBar__Attachment"}),yt=t=>{const{attachment:e,...i}=t;return n.jsx(D.AttachmentItemProvider,{attachment:e,children:n.jsx(Wn,{...i})})},Nn=a.ikp(T.BuiltInIconRenderer,{_id:"aiChatAttachmentsBar__AttachmentIcon"}),Tt=t=>{const{attachment:e}=D.useAttachmentItem(),i=e.contentType?.attachmentIcon;return i?n.jsx(Nn,{iconSettings:i,...t}):null},Qn=a.ikp("span",{_id:"aiChatAttachmentsBar__AttachmentTitle"}),jt=t=>{const{attachment:e}=D.useAttachmentItem();return n.jsx(Qn,{children:e.title,...t})},Vn=a.ikp("button",{_id:"aiChatAttachmentsBar__AttachmentDelete"}),Ht=t=>{const{onClick:e,...i}=t,r=()=>{};return n.jsx(Vn,{"aria-label":"Remove attachment",children:n.jsx(f.CustomIcon,{iconKey:"close"}),onClick:C.composeEventHandlers(e,r),...i})},wt=a.ikp("div",{_id:"aiChatAttachmentsBar__Actions"}),Lt=a.ikp(L.Tooltip,{_id:"aiChatAttachmentsBar__InfoTip",delayDuration:0}),Dt=a.ikp(L.Trigger,{_id:"aiChatAttachmentsBar__InfoTipIcon",children:n.jsx(f.CustomIcon,{iconKey:"info"})}),oe=a.ikp(L.Arrow,{_id:"aiChatAttachmentsBar__InfoTipArrow"}),Rt=a.ikp(L.Content,{_id:"aiChatAttachmentsBar__InfoTipText",side:"bottom",sideOffset:3,align:"center",children:n.jsxs(n.Fragment,{children:[n.jsx(oe,{}),"Attachments will be kept in context for the entire conversation."]})}),$n=a.ikp("div",{_id:"aiChatAttachmentsBar__Inputs"}),Ot=t=>{const{children:e,...i}=t,r={supportedInputs:[]};return r?.supportedInputs?n.jsx($n,{children:u.maybeRender(e,r.supportedInputs),...i}):null},Un=a.ikp("button",{_id:"aiChatAttachmentsBar__Input"}),qt=t=>{const{input:e,onClick:i,...r}=t,s={supportedInputs:[]},o=[],d=()=>{},{selectInput:c,onOpen:m}=S.useAttachmentsBar(),l=()=>{if(e.type==="FUNCTIONAL_MULTI_ATTACHMENT")return s?e.onInvoke(s,e,d,[...o]):void 0;c(e),m()};return n.jsx(Un,{children:e.displayName,onClick:C.composeEventHandlers(i,l),...r})},Kn=a.ikp(E.Root,{_id:"aiChatAttachmentsBar__Modal"}),Wt=t=>{const{onOpenChange:e,...i}=t,{selectInput:r,isOpen:s,onClose:o,selectedInput:d}=S.useAttachmentsBar(),c=m=>{m||(o(),r(null))};return n.jsx(Kn,{open:s&&d!==null,onOpenChange:C.composeEventHandlers(e,c),...i})},Nt=a.ikp(E.Overlay,{_id:"aiChatAttachmentsBar__ModalOverlay"}),Qt=a.ikp(E.Content,{_id:"aiChatAttachmentsBar__ModalContent","aria-describedby":void 0}),Vt=a.ikp("div",{_id:"aiChatAttachmentsBar__ModalHeader"}),zn=a.ikp(E.Title,{_id:"aiChatAttachmentsBar__ModalHeading"}),$t=t=>{const{selectedInput:e}=S.useAttachmentsBar(),i=`Add ${e?.displayName}`;return n.jsx(zn,{children:i,...t})},Gn=a.ikp("span",{_id:"aiChatAttachmentsBar__ModalDescription"}),Ut=t=>{const{selectedInput:e}=S.useAttachmentsBar(),i=e?.workflowModalProps?.modalHelpText;return i?n.jsx(Gn,{children:i,...t}):null},Yn=a.ikp("div",{_id:"aiChatAttachmentsBar__ModalHelp"}),Kt=t=>{const{children:e,...i}=t,{selectedInput:r}=S.useAttachmentsBar(),s=r?.workflowModalProps?.modalHelpElement;return s?n.jsx(Yn,{asChild:!e,children:e||s,...i}):null},zt=a.ikp(E.Close,{_id:"aiChatAttachmentsBar__ModalClose",children:n.jsx(f.CustomIcon,{iconKey:"close"})}),Gt=a.ikp("div",{_id:"aiChatAttachmentsBar__ModalBody"}),Jn=a.ikp("form",{_id:"aiChatAttachmentsBar__Form"}),Yt=t=>{const{onSubmit:e,...i}=t,{form:r}=S.useAttachmentsBar();return n.jsx(Jn,{onSubmit:C.composeEventHandlers(e,r.onSubmit),...i})},Jt=a.ikp("div",{_id:"aiChatAttachmentsBar__FormTitle",role:"group"}),Xn=a.ikp("label",{_id:"aiChatAttachmentsBar__FormTitleLabel"}),Xt=t=>{const{form:e,selectedInput:i}=S.useAttachmentsBar();return n.jsx(Xn,{htmlFor:`${i?.id}-title`,children:e.labels.title,...t})},Zn=a.ikp("input",{_id:"aiChatAttachmentsBar__FormTitleInput"}),Zt=t=>{const{onChange:e,...i}=t,{form:r,selectedInput:s}=S.useAttachmentsBar();return n.jsx(Zn,{name:"title",value:r.data.title,id:`${s?.id}-title`,"data-invalid":u.dataAttr(!!r.errors.title),"aria-invalid":!!r.errors.title,onChange:C.composeEventHandlers(e,r.onChange),...i})},er=a.ikp("span",{_id:"aiChatAttachmentsBar__FormTitleError"}),ei=t=>{const{form:e}=S.useAttachmentsBar();return e.errors.title?n.jsx(er,{"aria-live":"polite",children:e.errors.title,...t}):null},ti=a.ikp("div",{_id:"aiChatAttachmentsBar__FormTitle",role:"group"}),tr=a.ikp("label",{_id:"aiChatAttachmentsBar__FormContentLabel"}),ii=t=>{const{form:e,selectedInput:i}=S.useAttachmentsBar();return n.jsx(tr,{htmlFor:`${i?.id}-content`,children:e.labels.content,...t})},ir=a.ikp("textarea",{_id:"aiChatAttachmentsBar__FormTitleInput"}),ai=t=>{const{onChange:e,...i}=t,{form:r,selectedInput:s}=S.useAttachmentsBar();return n.jsx(ir,{asChild:!0,rows:4,name:"content",value:r.data.content,id:`${s?.id}-content`,"data-invalid":u.dataAttr(!!r.errors.content),"aria-invalid":!!r.errors.content,onChange:C.composeEventHandlers(e,r.onChange),...i,children:n.jsx(Z,{maxRows:10})})},ar=a.ikp("span",{_id:"aiChatAttachmentsBar__FormContentError"}),ni=t=>{const{form:e}=S.useAttachmentsBar();return e.errors.content?n.jsx(ar,{"aria-live":"polite",children:e.errors.content,...t}):null},ri=a.ikp("button",{_id:"aiChatAttachmentsBar__FormSubmitButton",children:"Upload",type:"submit"}),si=a.ikp("div",{_id:"aiChatActionBar"}),oi=a.ikp("div",{_id:"aiChat__ChatActions"}),di=a.ikp("div",{_id:"aiChatTagline__Container"}),ci=a.ikp("span",{_id:"aiChatTagline__Text",children:"Powered by"}),mi=a.ikp(_a.default,{_id:"aiChatTagline__Logo"}),li=a.ikp("a",{_id:"aiChatTagline__BrandName",children:"inkeep",href:"https://www.inkeep.com/",target:"_blank",rel:"noopener noreferrer"}),nr=a.ikp(L.Trigger,{_id:"aiChat__ChatAction"}),U=t=>{const{action:e,onClick:i,className:r,...s}=t,o={},{clear:d,stop:c,isLoading:m,isStreaming:l,messages:p}=P.useChat(),{conversationId:g}=P.useChat(),{aiChatSettings:v}=b.useInkeepConfig(),[A,B]=J.useCopyToClipboard(),[k]=J.useCopyToClipboard();if({help:!1,copy:p.length===0||!v.isCopyChatButtonVisible||m||l,share:p.length===0||!v.isShareButtonVisible||!g||!!o||m||l,clear:p.length===0||v.isViewOnly||m||l,stop:!m&&!l}[e])return null;const O={help:()=>{},copy:()=>{const ce=p.map(N=>{const G=`**${N.role==="assistant"?"AI Assistant":"User"}**`,Y=u.getMessageContent(N);return`${G}
6
6
 
7
7
  ${Y}`}).join(`
8
8
 
@@ -354,12 +354,12 @@ const rt = "__intro__", st = a("div", {
354
354
  ), wt = a("span", {
355
355
  _id: "aiChatMessageName"
356
356
  }), On = (t) => {
357
- const { message: e } = A();
357
+ const { message: e } = A(), { aiChatSettings: i } = p(), { aiAssistantName: r } = i;
358
358
  return /* @__PURE__ */ n(
359
359
  wt,
360
360
  {
361
361
  "data-role": e.role,
362
- children: e.role === "user" ? "You" : "AI assistant",
362
+ children: e.role === "user" ? "You" : r || "AI assistant",
363
363
  ...t
364
364
  }
365
365
  );
@@ -1 +1 @@
1
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react/jsx-runtime"),t=require("react"),l=require("./config-provider.cjs"),a=t.createContext(void 0),p=({children:e})=>{const{baseSettings:s,componentType:n}=l.useInkeepConfig(),{tags:o,analyticsProperties:r}=s,i=t.useMemo(()=>({widgetLibraryVersion:"0.15.2",componentType:n,tags:o}),[n,o]),u={logEvent:t.useCallback(async c=>{const v={...i,...c.properties,...r},d={eventName:c.eventName,properties:v};return s.onEvent?.(d)},[s,i,r])};return E.jsx(a.Provider,{value:u,children:e})},g=()=>{const e=t.useContext(a);if(!e)throw new Error("useBaseEvents must be used within a BaseEventsProvider");return e};exports.BaseEventsProvider=p;exports.useBaseEvents=g;
1
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const E=require("react/jsx-runtime"),t=require("react"),l=require("./config-provider.cjs"),a=t.createContext(void 0),p=({children:e})=>{const{baseSettings:s,componentType:n}=l.useInkeepConfig(),{tags:o,analyticsProperties:r}=s,i=t.useMemo(()=>({widgetLibraryVersion:"0.15.4",componentType:n,tags:o}),[n,o]),u={logEvent:t.useCallback(async c=>{const v={...i,...c.properties,...r},d={eventName:c.eventName,properties:v};return s.onEvent?.(d)},[s,i,r])};return E.jsx(a.Provider,{value:u,children:e})},g=()=>{const e=t.useContext(a);if(!e)throw new Error("useBaseEvents must be used within a BaseEventsProvider");return e};exports.BaseEventsProvider=p;exports.useBaseEvents=g;
@@ -5,7 +5,7 @@ import { useInkeepConfig as g } from "./config-provider.js";
5
5
  const a = d(void 0), P = ({ children: e }) => {
6
6
  const { baseSettings: t, componentType: o } = g(), { tags: s, analyticsProperties: n } = t, r = u(
7
7
  () => ({
8
- widgetLibraryVersion: "0.15.2",
8
+ widgetLibraryVersion: "0.15.4",
9
9
  componentType: o,
10
10
  tags: s
11
11
  }),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@inkeep/agents-ui",
3
- "version": "0.15.3",
3
+ "version": "0.15.5",
4
4
  "description": "",
5
5
  "homepage": "",
6
6
  "repository": {