@assemble-inc/chat-widget 0.1.8 → 0.1.9
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.
- package/dist/Widget.d.ts +7 -0
- package/dist/embed.iife.js +1 -1
- package/dist/index.js +1 -0
- package/package.json +1 -1
package/dist/Widget.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
export interface WidgetConfig {
|
|
2
2
|
/** Chat endpoint. Defaults to '/api/chat'. */
|
|
3
3
|
endpoint?: string;
|
|
4
|
+
/**
|
|
5
|
+
* Extra HTTP headers sent with every chat request.
|
|
6
|
+
* Accepts a plain object or a zero-argument function that returns one —
|
|
7
|
+
* the function form is called on each request so headers can be read from
|
|
8
|
+
* dynamic sources such as localStorage.
|
|
9
|
+
*/
|
|
10
|
+
headers?: Record<string, string> | (() => Record<string, string>);
|
|
4
11
|
/**
|
|
5
12
|
* Full system prompt for this embed.
|
|
6
13
|
* Used when the server has no systemPrompt in ChatHandlerConfig.
|
package/dist/embed.iife.js
CHANGED
|
@@ -376,4 +376,4 @@ ${q}`,E++;break;case"id":b=q.includes("\0")?void 0:q;break;case"retry":/^\d+$/.t
|
|
|
376
376
|
`});++s<a.length;)s&&c.push({type:"text",value:`
|
|
377
377
|
`}),c.push(a[s]);return u&&a.length>0&&c.push({type:"text",value:`
|
|
378
378
|
`}),c}function px(a){let u=0,c=a.charCodeAt(u);for(;c===9||c===32;)u++,c=a.charCodeAt(u);return a.slice(u)}function mx(a,u){const c=i6(a,u),s=c.one(a,void 0),h=J3(c),y=Array.isArray(s)?{type:"root",children:s}:s||{type:"root",children:[]};return h&&y.children.push({type:"text",value:`
|
|
379
|
-
`},h),y}function s6(a,u){return a&&"run"in a?async function(c,s){const h=mx(c,{file:s,...u});await a.run(h,s)}:function(c,s){return mx(c,{file:s,...a||u})}}function yx(a){if(a)throw a}var T1,gx;function f6(){if(gx)return T1;gx=1;var a=Object.prototype.hasOwnProperty,u=Object.prototype.toString,c=Object.defineProperty,s=Object.getOwnPropertyDescriptor,h=function(E){return typeof Array.isArray=="function"?Array.isArray(E):u.call(E)==="[object Array]"},y=function(E){if(!E||u.call(E)!=="[object Object]")return!1;var O=a.call(E,"constructor"),R=E.constructor&&E.constructor.prototype&&a.call(E.constructor.prototype,"isPrototypeOf");if(E.constructor&&!O&&!R)return!1;var z;for(z in E);return typeof z>"u"||a.call(E,z)},v=function(E,O){c&&O.name==="__proto__"?c(E,O.name,{enumerable:!0,configurable:!0,value:O.newValue,writable:!0}):E[O.name]=O.newValue},b=function(E,O){if(O==="__proto__")if(a.call(E,O)){if(s)return s(E,O).value}else return;return E[O]};return T1=function T(){var E,O,R,z,_,Y,ae=arguments[0],G=1,k=arguments.length,q=!1;for(typeof ae=="boolean"&&(q=ae,ae=arguments[1]||{},G=2),(ae==null||typeof ae!="object"&&typeof ae!="function")&&(ae={});G<k;++G)if(E=arguments[G],E!=null)for(O in E)R=b(ae,O),z=b(E,O),ae!==z&&(q&&z&&(y(z)||(_=h(z)))?(_?(_=!1,Y=R&&h(R)?R:[]):Y=R&&y(R)?R:{},v(ae,{name:O,newValue:T(q,Y,z)})):typeof z<"u"&&v(ae,{name:O,newValue:z}));return ae},T1}var d6=f6();const A1=Ob(d6);function x1(a){if(typeof a!="object"||a===null)return!1;const u=Object.getPrototypeOf(a);return(u===null||u===Object.prototype||Object.getPrototypeOf(u)===null)&&!(Symbol.toStringTag in a)&&!(Symbol.iterator in a)}function h6(){const a=[],u={run:c,use:s};return u;function c(...h){let y=-1;const v=h.pop();if(typeof v!="function")throw new TypeError("Expected function as last argument, not "+v);b(null,...h);function b(T,...E){const O=a[++y];let R=-1;if(T){v(T);return}for(;++R<h.length;)(E[R]===null||E[R]===void 0)&&(E[R]=h[R]);h=E,O?p6(O,b)(...E):v(null,...E)}}function s(h){if(typeof h!="function")throw new TypeError("Expected `middelware` to be a function, not "+h);return a.push(h),u}}function p6(a,u){let c;return s;function s(...v){const b=a.length>v.length;let T;b&&v.push(h);try{T=a.apply(this,v)}catch(E){const O=E;if(b&&c)throw O;return h(O)}b||(T&&T.then&&typeof T.then=="function"?T.then(y,h):T instanceof Error?h(T):y(T))}function h(v,...b){c||(c=!0,u(v,...b))}function y(v){h(null,v)}}const Xu={basename:m6,dirname:y6,extname:g6,join:v6,sep:"/"};function m6(a,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');gm(a);let c=0,s=-1,h=a.length,y;if(u===void 0||u.length===0||u.length>a.length){for(;h--;)if(a.codePointAt(h)===47){if(y){c=h+1;break}}else s<0&&(y=!0,s=h+1);return s<0?"":a.slice(c,s)}if(u===a)return"";let v=-1,b=u.length-1;for(;h--;)if(a.codePointAt(h)===47){if(y){c=h+1;break}}else v<0&&(y=!0,v=h+1),b>-1&&(a.codePointAt(h)===u.codePointAt(b--)?b<0&&(s=h):(b=-1,s=v));return c===s?s=v:s<0&&(s=a.length),a.slice(c,s)}function y6(a){if(gm(a),a.length===0)return".";let u=-1,c=a.length,s;for(;--c;)if(a.codePointAt(c)===47){if(s){u=c;break}}else s||(s=!0);return u<0?a.codePointAt(0)===47?"/":".":u===1&&a.codePointAt(0)===47?"//":a.slice(0,u)}function g6(a){gm(a);let u=a.length,c=-1,s=0,h=-1,y=0,v;for(;u--;){const b=a.codePointAt(u);if(b===47){if(v){s=u+1;break}continue}c<0&&(v=!0,c=u+1),b===46?h<0?h=u:y!==1&&(y=1):h>-1&&(y=-1)}return h<0||c<0||y===0||y===1&&h===c-1&&h===s+1?"":a.slice(h,c)}function v6(...a){let u=-1,c;for(;++u<a.length;)gm(a[u]),a[u]&&(c=c===void 0?a[u]:c+"/"+a[u]);return c===void 0?".":b6(c)}function b6(a){gm(a);const u=a.codePointAt(0)===47;let c=S6(a,!u);return c.length===0&&!u&&(c="."),c.length>0&&a.codePointAt(a.length-1)===47&&(c+="/"),u?"/"+c:c}function S6(a,u){let c="",s=0,h=-1,y=0,v=-1,b,T;for(;++v<=a.length;){if(v<a.length)b=a.codePointAt(v);else{if(b===47)break;b=47}if(b===47){if(!(h===v-1||y===1))if(h!==v-1&&y===2){if(c.length<2||s!==2||c.codePointAt(c.length-1)!==46||c.codePointAt(c.length-2)!==46){if(c.length>2){if(T=c.lastIndexOf("/"),T!==c.length-1){T<0?(c="",s=0):(c=c.slice(0,T),s=c.length-1-c.lastIndexOf("/")),h=v,y=0;continue}}else if(c.length>0){c="",s=0,h=v,y=0;continue}}u&&(c=c.length>0?c+"/..":"..",s=2)}else c.length>0?c+="/"+a.slice(h+1,v):c=a.slice(h+1,v),s=v-h-1;h=v,y=0}else b===46&&y>-1?y++:y=-1}return c}function gm(a){if(typeof a!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(a))}const E6={cwd:T6};function T6(){return"/"}function O1(a){return!!(a!==null&&typeof a=="object"&&"href"in a&&a.href&&"protocol"in a&&a.protocol&&a.auth===void 0)}function A6(a){if(typeof a=="string")a=new URL(a);else if(!O1(a)){const u=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+a+"`");throw u.code="ERR_INVALID_ARG_TYPE",u}if(a.protocol!=="file:"){const u=new TypeError("The URL must be of scheme file");throw u.code="ERR_INVALID_URL_SCHEME",u}return x6(a)}function x6(a){if(a.hostname!==""){const s=new TypeError('File URL host must be "localhost" or empty on darwin');throw s.code="ERR_INVALID_FILE_URL_HOST",s}const u=a.pathname;let c=-1;for(;++c<u.length;)if(u.codePointAt(c)===37&&u.codePointAt(c+1)===50){const s=u.codePointAt(c+2);if(s===70||s===102){const h=new TypeError("File URL path must not include encoded / characters");throw h.code="ERR_INVALID_FILE_URL_PATH",h}}return decodeURIComponent(u)}const R1=["history","path","basename","stem","extname","dirname"];class vx{constructor(u){let c;u?O1(u)?c={path:u}:typeof u=="string"||O6(u)?c={value:u}:c=u:c={},this.cwd="cwd"in c?"":E6.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let s=-1;for(;++s<R1.length;){const y=R1[s];y in c&&c[y]!==void 0&&c[y]!==null&&(this[y]=y==="history"?[...c[y]]:c[y])}let h;for(h in c)R1.includes(h)||(this[h]=c[h])}get basename(){return typeof this.path=="string"?Xu.basename(this.path):void 0}set basename(u){z1(u,"basename"),w1(u,"basename"),this.path=Xu.join(this.dirname||"",u)}get dirname(){return typeof this.path=="string"?Xu.dirname(this.path):void 0}set dirname(u){bx(this.basename,"dirname"),this.path=Xu.join(u||"",this.basename)}get extname(){return typeof this.path=="string"?Xu.extname(this.path):void 0}set extname(u){if(w1(u,"extname"),bx(this.dirname,"extname"),u){if(u.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(u.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Xu.join(this.dirname,this.stem+(u||""))}get path(){return this.history[this.history.length-1]}set path(u){O1(u)&&(u=A6(u)),z1(u,"path"),this.path!==u&&this.history.push(u)}get stem(){return typeof this.path=="string"?Xu.basename(this.path,this.extname):void 0}set stem(u){z1(u,"stem"),w1(u,"stem"),this.path=Xu.join(this.dirname||"",u+(this.extname||""))}fail(u,c,s){const h=this.message(u,c,s);throw h.fatal=!0,h}info(u,c,s){const h=this.message(u,c,s);return h.fatal=void 0,h}message(u,c,s){const h=new Ba(u,c,s);return this.path&&(h.name=this.path+":"+h.name,h.file=this.path),h.fatal=!1,this.messages.push(h),h}toString(u){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(u||void 0).decode(this.value)}}function w1(a,u){if(a&&a.includes(Xu.sep))throw new Error("`"+u+"` cannot be a path: did not expect `"+Xu.sep+"`")}function z1(a,u){if(!a)throw new Error("`"+u+"` cannot be empty")}function bx(a,u){if(!a)throw new Error("Setting `"+u+"` requires `path` to be set too")}function O6(a){return!!(a&&typeof a=="object"&&"byteLength"in a&&"byteOffset"in a)}const R6=(function(a){const s=this.constructor.prototype,h=s[a],y=function(){return h.apply(y,arguments)};return Object.setPrototypeOf(y,s),y}),w6={}.hasOwnProperty;class _1 extends R6{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=h6()}copy(){const u=new _1;let c=-1;for(;++c<this.attachers.length;){const s=this.attachers[c];u.use(...s)}return u.data(A1(!0,{},this.namespace)),u}data(u,c){return typeof u=="string"?arguments.length===2?(M1("data",this.frozen),this.namespace[u]=c,this):w6.call(this.namespace,u)&&this.namespace[u]||void 0:u?(M1("data",this.frozen),this.namespace=u,this):this.namespace}freeze(){if(this.frozen)return this;const u=this;for(;++this.freezeIndex<this.attachers.length;){const[c,...s]=this.attachers[this.freezeIndex];if(s[0]===!1)continue;s[0]===!0&&(s[0]=void 0);const h=c.call(u,...s);typeof h=="function"&&this.transformers.use(h)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(u){this.freeze();const c=kv(u),s=this.parser||this.Parser;return C1("parse",s),s(String(c),c)}process(u,c){const s=this;return this.freeze(),C1("process",this.parser||this.Parser),D1("process",this.compiler||this.Compiler),c?h(void 0,c):new Promise(h);function h(y,v){const b=kv(u),T=s.parse(b);s.run(T,b,function(O,R,z){if(O||!R||!z)return E(O);const _=R,Y=s.stringify(_,z);C6(Y)?z.value=Y:z.result=Y,E(O,z)});function E(O,R){O||!R?v(O):y?y(R):c(void 0,R)}}}processSync(u){let c=!1,s;return this.freeze(),C1("processSync",this.parser||this.Parser),D1("processSync",this.compiler||this.Compiler),this.process(u,h),Ex("processSync","process",c),s;function h(y,v){c=!0,yx(y),s=v}}run(u,c,s){Sx(u),this.freeze();const h=this.transformers;return!s&&typeof c=="function"&&(s=c,c=void 0),s?y(void 0,s):new Promise(y);function y(v,b){const T=kv(c);h.run(u,T,E);function E(O,R,z){const _=R||u;O?b(O):v?v(_):s(void 0,_,z)}}}runSync(u,c){let s=!1,h;return this.run(u,c,y),Ex("runSync","run",s),h;function y(v,b){yx(v),h=b,s=!0}}stringify(u,c){this.freeze();const s=kv(c),h=this.compiler||this.Compiler;return D1("stringify",h),Sx(u),h(u,s)}use(u,...c){const s=this.attachers,h=this.namespace;if(M1("use",this.frozen),u!=null)if(typeof u=="function")T(u,c);else if(typeof u=="object")Array.isArray(u)?b(u):v(u);else throw new TypeError("Expected usable value, not `"+u+"`");return this;function y(E){if(typeof E=="function")T(E,[]);else if(typeof E=="object")if(Array.isArray(E)){const[O,...R]=E;T(O,R)}else v(E);else throw new TypeError("Expected usable value, not `"+E+"`")}function v(E){if(!("plugins"in E)&&!("settings"in E))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");b(E.plugins),E.settings&&(h.settings=A1(!0,h.settings,E.settings))}function b(E){let O=-1;if(E!=null)if(Array.isArray(E))for(;++O<E.length;){const R=E[O];y(R)}else throw new TypeError("Expected a list of plugins, not `"+E+"`")}function T(E,O){let R=-1,z=-1;for(;++R<s.length;)if(s[R][0]===E){z=R;break}if(z===-1)s.push([E,...O]);else if(O.length>0){let[_,...Y]=O;const ae=s[z][1];x1(ae)&&x1(_)&&(_=A1(!0,ae,_)),s[z]=[E,_,...Y]}}}}const z6=new _1().freeze();function C1(a,u){if(typeof u!="function")throw new TypeError("Cannot `"+a+"` without `parser`")}function D1(a,u){if(typeof u!="function")throw new TypeError("Cannot `"+a+"` without `compiler`")}function M1(a,u){if(u)throw new Error("Cannot call `"+a+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Sx(a){if(!x1(a)||typeof a.type!="string")throw new TypeError("Expected node, got `"+a+"`")}function Ex(a,u,c){if(!c)throw new Error("`"+a+"` finished async. Use `"+u+"` instead")}function kv(a){return _6(a)?a:new vx(a)}function _6(a){return!!(a&&typeof a=="object"&&"message"in a&&"messages"in a)}function C6(a){return typeof a=="string"||D6(a)}function D6(a){return!!(a&&typeof a=="object"&&"byteLength"in a&&"byteOffset"in a)}const M6="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Tx=[],Ax={allowDangerousHtml:!0},N6=/^(https?|ircs?|mailto|xmpp)$/i,k6=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function U6(a){const u=H6(a),c=j6(a);return B6(u.runSync(u.parse(c),c),a)}function H6(a){const u=a.rehypePlugins||Tx,c=a.remarkPlugins||Tx,s=a.remarkRehypeOptions?{...a.remarkRehypeOptions,...Ax}:Ax;return z6().use(p3).use(c).use(s6,s).use(u)}function j6(a){const u=a.children||"",c=new vx;return typeof u=="string"&&(c.value=u),c}function B6(a,u){const c=u.allowedElements,s=u.allowElement,h=u.components,y=u.disallowedElements,v=u.skipHtml,b=u.unwrapDisallowed,T=u.urlTransform||L6;for(const O of k6)Object.hasOwn(u,O.from)&&(""+O.from+(O.to?"use `"+O.to+"` instead":"remove it")+M6+O.id,void 0);return u.className&&(a={type:"element",tagName:"div",properties:{className:u.className},children:a.type==="root"?a.children:[a]}),hx(a,E),nM(a,{Fragment:We.Fragment,components:h,ignoreInvalidStyle:!0,jsx:We.jsx,jsxs:We.jsxs,passKeys:!0,passNode:!0});function E(O,R,z){if(O.type==="raw"&&z&&typeof R=="number")return v?z.children.splice(R,1):z.children[R]={type:"text",value:O.value},R;if(O.type==="element"){let _;for(_ in o1)if(Object.hasOwn(o1,_)&&Object.hasOwn(O.properties,_)){const Y=O.properties[_],ae=o1[_];(ae===null||ae.includes(O.tagName))&&(O.properties[_]=T(String(Y||""),_,O))}}if(O.type==="element"){let _=c?!c.includes(O.tagName):y?y.includes(O.tagName):!1;if(!_&&s&&typeof R=="number"&&(_=!s(O,R,z)),_&&z&&typeof R=="number")return b&&O.children?z.children.splice(R,1,...O.children):z.children.splice(R,1),R}}}function L6(a){const u=a.indexOf(":"),c=a.indexOf("?"),s=a.indexOf("#"),h=a.indexOf("/");return u===-1||h!==-1&&u>h||c!==-1&&u>c||s!==-1&&u>s||N6.test(a.slice(0,u))?a:""}const xx="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2024%2024'%20stroke-width='1.5'%20stroke='%232e2438'%3e%3cpath%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M19.5%208.25l-7.5%207.5-7.5-7.5'%20/%3e%3c/svg%3e",Z6="data:image/png;base64,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",q6="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%232e2438'%20stroke-width='2.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2019V5M5%2012l7-7%207%207'%20/%3e%3c/svg%3e",Y6=Es(["asw-widget font-inter fixed transition-all"],{variants:{position:{"bottom-right":"bottom-6 right-6","bottom-left":"bottom-6 left-6"},open:{true:"h-5/6 max-h-[800px] w-80",false:"w-16 h-16 overflow-hidden"}},defaultVariants:{position:"bottom-right",open:!1}}),V6=Es(["rounded-2xl flex flex-col justify-between absolute w-80 h-5/6","bg-asm-gray-500 shadow-2xl border border-gray-200/60 transition-all duration-300","motion-reduce:transition-none transform-gpu overflow-hidden"],{variants:{position:{"bottom-right":"right-2 origin-bottom-right","bottom-left":"left-2 origin-bottom-left"},open:{true:"scale-100 bottom-20 opacity-100",false:"scale-0 bottom-2 opacity-0 pointer-events-none"}},defaultVariants:{position:"bottom-right",open:!1}}),G6=Es(["relative w-full z-[2]"]),X6=Es(["absolute right-2 top-1/2 -translate-y-1/2","flex items-center justify-center z-[1]","transition-all motion-reduce:transition-none transform-gpu","rounded-full text-asm-purple bg-transparent border border-asm-purple hover:bg-asm-blue/30 cursor-pointer","w-8 h-8"],{variants:{active:{true:"scale-100 opacity-100",false:"scale-0 opacity-0"}}}),Q6=Es(["absolute left-0 bottom-0 z-[3] h-3/4 w-full mb-24","transition-all duration-300 motion-reduce:transition-none transform-gpu"],{variants:{active:{true:"translate-y-0",false:"translate-y-full"}},defaultVariants:{active:!1}}),I6=Es(["flex gap-2"],{variants:{role:{user:"flex-row-reverse",assistant:"flex-row",system:"flex-row"}}}),J6=Es(["absolute bottom-0 text-white w-16 h-16 flex justify-center items-center","shadow-md cursor-pointer transition-colors duration-300 ease-in-out"],{variants:{position:{"bottom-right":"right-0 rounded-bl-[50%] rounded-tl-[50%] rounded-tr-[50%] rounded-br","bottom-left":"left-0 rounded-br-[50%] rounded-tr-[50%] rounded-tl-[50%] rounded-bl"},open:{true:"bg-asm-pink-400",false:"bg-asm-purple"}},defaultVariants:{position:"bottom-right",open:!1}});function Ox(a){return a!=null&&a.persist?`asm-widget:${a.endpoint??"/api/chat"}:${a.context??""}`:null}function $6(a){if(!a)return null;try{const u=sessionStorage.getItem(a);return u?JSON.parse(u):null}catch{return null}}function K6(a){const u=Ox(a),c=$6(u);return c||((a==null?void 0:a.initialMessages)??[]).map((s,h)=>({id:`initial-${h}`,role:s.role,parts:[{type:"text",text:s.content}],createdAt:new Date}))}const P6=({config:a,open:u,defaultOpen:c=!1,onOpenChange:s,onMessage:h,onError:y,children:v})=>{const b=_n.useRef(null),T=_n.useRef(null),E=_n.useRef(0),O=(a==null?void 0:a.position)??"bottom-right",[R]=_n.useState(()=>new FT({api:(a==null?void 0:a.endpoint)??"/api/chat",body:{...(a==null?void 0:a.systemPrompt)!==void 0&&{systemPrompt:a.systemPrompt},...(a==null?void 0:a.context)!==void 0&&{context:a.context},...(a==null?void 0:a.mcpServerUrl)!==void 0&&{mcpServerUrl:a.mcpServerUrl},...(a==null?void 0:a.model)!==void 0&&{model:a.model},...(a==null?void 0:a.temperature)!==void 0&&{temperature:a.temperature},...(a==null?void 0:a.user)!==void 0&&{user:a.user}}})),[z]=_n.useState(()=>K6(a)),{error:_,stop:Y,status:ae,messages:G,sendMessage:k,addToolResult:q}=RD({transport:R,messages:z}),D=ae==="submitted"||ae==="streaming",ue=u!==void 0,[te,Q]=_n.useState(c),he=ue?u:te,_e=_n.useCallback(se=>{ue||Q(se),s==null||s(se)},[ue,s]),[Se,He]=_n.useState(!1),[be,Ee]=_n.useState(""),Xe=Ox(a);_n.useEffect(()=>{if(Xe&&G.length>0)try{sessionStorage.setItem(Xe,JSON.stringify(G))}catch{}},[G,Xe]),_n.useEffect(()=>{G.length>E.current&&G.slice(E.current).forEach(ke=>{if(ke.role==="assistant"){const A=ke.parts.filter(Av).map(J=>J.text).join("");h==null||h({role:ke.role,content:A})}}),E.current=G.length},[G,h]),_n.useEffect(()=>{_&&(y==null||y(_))},[_,y]),_n.useEffect(()=>{T.current&&(T.current.scrollTop=T.current.scrollHeight)},[G]),_n.useEffect(()=>()=>{Y()},[]);const Ne=()=>{he&&Y(),_e(!he)},Te=se=>{se.preventDefault(),be.trim()&&(k({parts:[{type:"text",text:be}]}),Ee(""),b.current&&(b.current.style.height="auto"))},B=a==null?void 0:a.logo,ie=(a==null?void 0:a.title)??"Ask ASMBL";return We.jsxs("div",{className:Y6({position:O,open:he}),children:[We.jsxs("div",{className:V6({position:O,open:he}),children:[We.jsxs("div",{className:"px-4 pt-6 pb-3 flex items-center gap-3",children:[B&&We.jsx("img",{width:28,height:28,src:B,alt:""}),We.jsx("h2",{className:"text-xl font-bold text-asm-purple",children:ie}),We.jsx("button",{className:"absolute top-4 right-4 text-asm-purple transition-colors bg-transparent hover:bg-asm-blue/30 rounded-full w-9 h-9 flex justify-center items-center cursor-pointer",onClick:()=>He(!1),disabled:!Se,"aria-label":"Hide chat",children:We.jsx("img",{width:20,height:20,src:xx,alt:""})})]}),!D&&Se&&_&&We.jsxs("div",{className:"absolute bg-asm-white w-full opacity-8 z-40 flex flex-col gap-2 items-center justify-center h-full",children:[We.jsx("button",{className:"absolute top-2 right-2 text-asm-purple transition-colors bg-transparent hover:bg-asm-blue/30 rounded-full w-10 h-10 flex justify-center items-center cursor-pointer",onClick:()=>He(!1),"aria-label":"Hide chat",children:We.jsx("img",{width:20,height:20,src:xx,alt:""})}),We.jsxs("h3",{className:"text-center font-bold",children:["Sorry, I'm having trouble",We.jsx("br",{}),"connecting right now."]}),We.jsx("p",{className:"text-center",children:":("})]}),!Se&&!v&&!(a!=null&&a.welcomeHeading)&&B&&We.jsx("div",{className:"flex-1 flex flex-col items-center justify-center pb-20",children:We.jsx("img",{width:52,height:52,src:B,className:"opacity-20",alt:""})}),We.jsx("div",{className:Q6({active:Se||!!v}),children:We.jsx("div",{className:`flex flex-col relative h-full w-full rounded-t-2xl overflow-hidden ${G.length>0||v||D?"bg-asm-white shadow-sm":"bg-transparent"} ${G.length>0?"justify-end":"justify-start"}`,children:G.length>0?We.jsxs("div",{className:"overflow-y-auto h-full flex flex-col",ref:T,children:[We.jsx("div",{className:"flex-1"}),G.map((se,ke)=>{var A;return We.jsx("div",{className:"px-4 py-2 first:pt-4 last:pb-4",style:{overflowAnchor:"none"},children:We.jsxs("div",{className:I6({role:se.role}),children:[We.jsx("div",{className:"relative shrink-0",children:se.role==="user"?We.jsx("div",{className:"rounded-full bg-asm-gray-500 ml-1 w-10 h-10 p-2 flex items-center justify-center",children:(A=a==null?void 0:a.user)!=null&&A.name?We.jsx("span",{className:"text-sm font-semibold leading-none select-none",children:a.user.name.charAt(0).toUpperCase()}):We.jsx("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20",children:We.jsx("path",{fillRule:"evenodd",d:"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",clipRule:"evenodd"})})}):We.jsxs("div",{className:"relative",children:[D&&ke+1===G.length&&We.jsx("span",{className:"shadow text-xs text-asm-gray-400 leading-none absolute -bottom-4 left-4 z-10 bg-white pb-2 px-2 rounded-md",children:"..."}),B&&We.jsx("img",{className:"mr-1",width:36,height:36,src:B,alt:""})]})}),se.role==="user"?We.jsx("div",{className:"bg-asm-pink-400 rounded-xl rounded-tr-none w-full",children:We.jsx("p",{className:"text-gray-600 text-sm p-3 whitespace-pre-wrap",children:se.parts.filter(Av).map(J=>J.text).join("")})}):We.jsxs("div",{className:"bg-asm-gray-500 rounded-xl rounded-tl-none w-full overflow-hidden",children:[se.parts.filter(Av).map(J=>J.text).join("")&&We.jsx("div",{className:"text-gray-600 text-sm p-3 prose prose-sm max-w-none",children:We.jsx(U6,{children:se.parts.filter(Av).map(J=>J.text).join("")})}),se.parts.filter(lm).map(J=>{var Qt,Ge;if(hD(J)!=="ask_multiple_choice")return null;const{toolCallId:oe,state:U}=J,ze=J.input,Be=U==="output-available",Oe=Be?(Qt=J.output)==null?void 0:Qt.selectedId:void 0;return We.jsxs("div",{className:"px-3 pb-3",children:[We.jsx("p",{className:"text-gray-600 text-sm font-medium mb-2",children:ze.question}),We.jsx("div",{className:"flex flex-col gap-1.5",children:(Ge=ze.choices)==null?void 0:Ge.map(At=>We.jsx("button",{disabled:Be,onClick:()=>{Be||q({tool:"ask_multiple_choice",toolCallId:oe,output:{selectedId:At.id,selectedLabel:At.label}})},className:["text-left text-sm px-3 py-2 rounded-lg border transition-colors",Be&&Oe===At.id?"bg-asm-purple text-white border-asm-purple":Be?"bg-transparent text-gray-400 border-gray-200 cursor-default":"bg-white text-gray-700 border-asm-purple/40 hover:bg-asm-purple/10 cursor-pointer"].join(" "),children:At.label},At.id))})]},oe)})]})]})},se.id)})]}):We.jsxs("div",{className:"flex flex-col gap-2 items-center px-4 py-4",children:[v??(a!=null&&a.welcomeHeading?We.jsx("h3",{className:"text-center font-bold",children:a.welcomeHeading}):null),D&&We.jsx("p",{className:"text-center bg-white py-1 px-2 rounded-md text-sm",children:"This should only take a moment…"})]})})}),We.jsx("div",{className:"absolute bottom-0 left-0 w-full flex items-center px-4 py-6 z-50 bg-asm-gray-500",children:We.jsxs("form",{className:G6(),onSubmit:Te,children:[We.jsx("textarea",{ref:b,style:{height:b.current&&document.activeElement===b.current?`${b.current.scrollHeight}px`:"auto"},rows:1,cols:1,onFocus:()=>He(!0),value:be,onChange:se=>{He(!0),Ee(se.target.value)},onKeyDown:se=>{se.key==="Enter"&&!se.shiftKey&&!se.repeat&&(se.preventDefault(),be.trim()&&(k({parts:[{type:"text",text:be}]}),Ee(""),b.current&&(b.current.style.height="auto")))},className:"w-full bg-white rounded-xl pl-4 pr-12 py-3 min-h-[46px] max-h-[500px] shadow-sm ring-1 ring-gray-200 resize-none leading-[1.4]",placeholder:(a==null?void 0:a.placeholder)??""}),We.jsx("button",{className:X6({active:Se}),type:"submit",disabled:!Se,"aria-label":"Send message",children:We.jsx("img",{width:18,height:18,src:q6,alt:"","aria-hidden":"true"})})]})})]}),We.jsx("button",{className:J6({position:O,open:he}),onClick:Ne,"aria-label":he?"Close widget":"Open widget",children:We.jsx("img",{className:"absolute",width:30,height:30,src:B??Z6,alt:""})})]})},F6="asm-widget-root";function W6(a,u=F6){let c=document.getElementById(u);c||(c=document.createElement("div"),c.id=u,document.body.appendChild(c)),kO.createRoot(c).render(_n.createElement(P6,{config:a}))}window.AsmWidget={init:W6}})();
|
|
379
|
+
`},h),y}function s6(a,u){return a&&"run"in a?async function(c,s){const h=mx(c,{file:s,...u});await a.run(h,s)}:function(c,s){return mx(c,{file:s,...a||u})}}function yx(a){if(a)throw a}var T1,gx;function f6(){if(gx)return T1;gx=1;var a=Object.prototype.hasOwnProperty,u=Object.prototype.toString,c=Object.defineProperty,s=Object.getOwnPropertyDescriptor,h=function(E){return typeof Array.isArray=="function"?Array.isArray(E):u.call(E)==="[object Array]"},y=function(E){if(!E||u.call(E)!=="[object Object]")return!1;var O=a.call(E,"constructor"),R=E.constructor&&E.constructor.prototype&&a.call(E.constructor.prototype,"isPrototypeOf");if(E.constructor&&!O&&!R)return!1;var z;for(z in E);return typeof z>"u"||a.call(E,z)},v=function(E,O){c&&O.name==="__proto__"?c(E,O.name,{enumerable:!0,configurable:!0,value:O.newValue,writable:!0}):E[O.name]=O.newValue},b=function(E,O){if(O==="__proto__")if(a.call(E,O)){if(s)return s(E,O).value}else return;return E[O]};return T1=function T(){var E,O,R,z,_,Y,ae=arguments[0],G=1,k=arguments.length,q=!1;for(typeof ae=="boolean"&&(q=ae,ae=arguments[1]||{},G=2),(ae==null||typeof ae!="object"&&typeof ae!="function")&&(ae={});G<k;++G)if(E=arguments[G],E!=null)for(O in E)R=b(ae,O),z=b(E,O),ae!==z&&(q&&z&&(y(z)||(_=h(z)))?(_?(_=!1,Y=R&&h(R)?R:[]):Y=R&&y(R)?R:{},v(ae,{name:O,newValue:T(q,Y,z)})):typeof z<"u"&&v(ae,{name:O,newValue:z}));return ae},T1}var d6=f6();const A1=Ob(d6);function x1(a){if(typeof a!="object"||a===null)return!1;const u=Object.getPrototypeOf(a);return(u===null||u===Object.prototype||Object.getPrototypeOf(u)===null)&&!(Symbol.toStringTag in a)&&!(Symbol.iterator in a)}function h6(){const a=[],u={run:c,use:s};return u;function c(...h){let y=-1;const v=h.pop();if(typeof v!="function")throw new TypeError("Expected function as last argument, not "+v);b(null,...h);function b(T,...E){const O=a[++y];let R=-1;if(T){v(T);return}for(;++R<h.length;)(E[R]===null||E[R]===void 0)&&(E[R]=h[R]);h=E,O?p6(O,b)(...E):v(null,...E)}}function s(h){if(typeof h!="function")throw new TypeError("Expected `middelware` to be a function, not "+h);return a.push(h),u}}function p6(a,u){let c;return s;function s(...v){const b=a.length>v.length;let T;b&&v.push(h);try{T=a.apply(this,v)}catch(E){const O=E;if(b&&c)throw O;return h(O)}b||(T&&T.then&&typeof T.then=="function"?T.then(y,h):T instanceof Error?h(T):y(T))}function h(v,...b){c||(c=!0,u(v,...b))}function y(v){h(null,v)}}const Xu={basename:m6,dirname:y6,extname:g6,join:v6,sep:"/"};function m6(a,u){if(u!==void 0&&typeof u!="string")throw new TypeError('"ext" argument must be a string');gm(a);let c=0,s=-1,h=a.length,y;if(u===void 0||u.length===0||u.length>a.length){for(;h--;)if(a.codePointAt(h)===47){if(y){c=h+1;break}}else s<0&&(y=!0,s=h+1);return s<0?"":a.slice(c,s)}if(u===a)return"";let v=-1,b=u.length-1;for(;h--;)if(a.codePointAt(h)===47){if(y){c=h+1;break}}else v<0&&(y=!0,v=h+1),b>-1&&(a.codePointAt(h)===u.codePointAt(b--)?b<0&&(s=h):(b=-1,s=v));return c===s?s=v:s<0&&(s=a.length),a.slice(c,s)}function y6(a){if(gm(a),a.length===0)return".";let u=-1,c=a.length,s;for(;--c;)if(a.codePointAt(c)===47){if(s){u=c;break}}else s||(s=!0);return u<0?a.codePointAt(0)===47?"/":".":u===1&&a.codePointAt(0)===47?"//":a.slice(0,u)}function g6(a){gm(a);let u=a.length,c=-1,s=0,h=-1,y=0,v;for(;u--;){const b=a.codePointAt(u);if(b===47){if(v){s=u+1;break}continue}c<0&&(v=!0,c=u+1),b===46?h<0?h=u:y!==1&&(y=1):h>-1&&(y=-1)}return h<0||c<0||y===0||y===1&&h===c-1&&h===s+1?"":a.slice(h,c)}function v6(...a){let u=-1,c;for(;++u<a.length;)gm(a[u]),a[u]&&(c=c===void 0?a[u]:c+"/"+a[u]);return c===void 0?".":b6(c)}function b6(a){gm(a);const u=a.codePointAt(0)===47;let c=S6(a,!u);return c.length===0&&!u&&(c="."),c.length>0&&a.codePointAt(a.length-1)===47&&(c+="/"),u?"/"+c:c}function S6(a,u){let c="",s=0,h=-1,y=0,v=-1,b,T;for(;++v<=a.length;){if(v<a.length)b=a.codePointAt(v);else{if(b===47)break;b=47}if(b===47){if(!(h===v-1||y===1))if(h!==v-1&&y===2){if(c.length<2||s!==2||c.codePointAt(c.length-1)!==46||c.codePointAt(c.length-2)!==46){if(c.length>2){if(T=c.lastIndexOf("/"),T!==c.length-1){T<0?(c="",s=0):(c=c.slice(0,T),s=c.length-1-c.lastIndexOf("/")),h=v,y=0;continue}}else if(c.length>0){c="",s=0,h=v,y=0;continue}}u&&(c=c.length>0?c+"/..":"..",s=2)}else c.length>0?c+="/"+a.slice(h+1,v):c=a.slice(h+1,v),s=v-h-1;h=v,y=0}else b===46&&y>-1?y++:y=-1}return c}function gm(a){if(typeof a!="string")throw new TypeError("Path must be a string. Received "+JSON.stringify(a))}const E6={cwd:T6};function T6(){return"/"}function O1(a){return!!(a!==null&&typeof a=="object"&&"href"in a&&a.href&&"protocol"in a&&a.protocol&&a.auth===void 0)}function A6(a){if(typeof a=="string")a=new URL(a);else if(!O1(a)){const u=new TypeError('The "path" argument must be of type string or an instance of URL. Received `'+a+"`");throw u.code="ERR_INVALID_ARG_TYPE",u}if(a.protocol!=="file:"){const u=new TypeError("The URL must be of scheme file");throw u.code="ERR_INVALID_URL_SCHEME",u}return x6(a)}function x6(a){if(a.hostname!==""){const s=new TypeError('File URL host must be "localhost" or empty on darwin');throw s.code="ERR_INVALID_FILE_URL_HOST",s}const u=a.pathname;let c=-1;for(;++c<u.length;)if(u.codePointAt(c)===37&&u.codePointAt(c+1)===50){const s=u.codePointAt(c+2);if(s===70||s===102){const h=new TypeError("File URL path must not include encoded / characters");throw h.code="ERR_INVALID_FILE_URL_PATH",h}}return decodeURIComponent(u)}const R1=["history","path","basename","stem","extname","dirname"];class vx{constructor(u){let c;u?O1(u)?c={path:u}:typeof u=="string"||O6(u)?c={value:u}:c=u:c={},this.cwd="cwd"in c?"":E6.cwd(),this.data={},this.history=[],this.messages=[],this.value,this.map,this.result,this.stored;let s=-1;for(;++s<R1.length;){const y=R1[s];y in c&&c[y]!==void 0&&c[y]!==null&&(this[y]=y==="history"?[...c[y]]:c[y])}let h;for(h in c)R1.includes(h)||(this[h]=c[h])}get basename(){return typeof this.path=="string"?Xu.basename(this.path):void 0}set basename(u){z1(u,"basename"),w1(u,"basename"),this.path=Xu.join(this.dirname||"",u)}get dirname(){return typeof this.path=="string"?Xu.dirname(this.path):void 0}set dirname(u){bx(this.basename,"dirname"),this.path=Xu.join(u||"",this.basename)}get extname(){return typeof this.path=="string"?Xu.extname(this.path):void 0}set extname(u){if(w1(u,"extname"),bx(this.dirname,"extname"),u){if(u.codePointAt(0)!==46)throw new Error("`extname` must start with `.`");if(u.includes(".",1))throw new Error("`extname` cannot contain multiple dots")}this.path=Xu.join(this.dirname,this.stem+(u||""))}get path(){return this.history[this.history.length-1]}set path(u){O1(u)&&(u=A6(u)),z1(u,"path"),this.path!==u&&this.history.push(u)}get stem(){return typeof this.path=="string"?Xu.basename(this.path,this.extname):void 0}set stem(u){z1(u,"stem"),w1(u,"stem"),this.path=Xu.join(this.dirname||"",u+(this.extname||""))}fail(u,c,s){const h=this.message(u,c,s);throw h.fatal=!0,h}info(u,c,s){const h=this.message(u,c,s);return h.fatal=void 0,h}message(u,c,s){const h=new Ba(u,c,s);return this.path&&(h.name=this.path+":"+h.name,h.file=this.path),h.fatal=!1,this.messages.push(h),h}toString(u){return this.value===void 0?"":typeof this.value=="string"?this.value:new TextDecoder(u||void 0).decode(this.value)}}function w1(a,u){if(a&&a.includes(Xu.sep))throw new Error("`"+u+"` cannot be a path: did not expect `"+Xu.sep+"`")}function z1(a,u){if(!a)throw new Error("`"+u+"` cannot be empty")}function bx(a,u){if(!a)throw new Error("Setting `"+u+"` requires `path` to be set too")}function O6(a){return!!(a&&typeof a=="object"&&"byteLength"in a&&"byteOffset"in a)}const R6=(function(a){const s=this.constructor.prototype,h=s[a],y=function(){return h.apply(y,arguments)};return Object.setPrototypeOf(y,s),y}),w6={}.hasOwnProperty;class _1 extends R6{constructor(){super("copy"),this.Compiler=void 0,this.Parser=void 0,this.attachers=[],this.compiler=void 0,this.freezeIndex=-1,this.frozen=void 0,this.namespace={},this.parser=void 0,this.transformers=h6()}copy(){const u=new _1;let c=-1;for(;++c<this.attachers.length;){const s=this.attachers[c];u.use(...s)}return u.data(A1(!0,{},this.namespace)),u}data(u,c){return typeof u=="string"?arguments.length===2?(M1("data",this.frozen),this.namespace[u]=c,this):w6.call(this.namespace,u)&&this.namespace[u]||void 0:u?(M1("data",this.frozen),this.namespace=u,this):this.namespace}freeze(){if(this.frozen)return this;const u=this;for(;++this.freezeIndex<this.attachers.length;){const[c,...s]=this.attachers[this.freezeIndex];if(s[0]===!1)continue;s[0]===!0&&(s[0]=void 0);const h=c.call(u,...s);typeof h=="function"&&this.transformers.use(h)}return this.frozen=!0,this.freezeIndex=Number.POSITIVE_INFINITY,this}parse(u){this.freeze();const c=kv(u),s=this.parser||this.Parser;return C1("parse",s),s(String(c),c)}process(u,c){const s=this;return this.freeze(),C1("process",this.parser||this.Parser),D1("process",this.compiler||this.Compiler),c?h(void 0,c):new Promise(h);function h(y,v){const b=kv(u),T=s.parse(b);s.run(T,b,function(O,R,z){if(O||!R||!z)return E(O);const _=R,Y=s.stringify(_,z);C6(Y)?z.value=Y:z.result=Y,E(O,z)});function E(O,R){O||!R?v(O):y?y(R):c(void 0,R)}}}processSync(u){let c=!1,s;return this.freeze(),C1("processSync",this.parser||this.Parser),D1("processSync",this.compiler||this.Compiler),this.process(u,h),Ex("processSync","process",c),s;function h(y,v){c=!0,yx(y),s=v}}run(u,c,s){Sx(u),this.freeze();const h=this.transformers;return!s&&typeof c=="function"&&(s=c,c=void 0),s?y(void 0,s):new Promise(y);function y(v,b){const T=kv(c);h.run(u,T,E);function E(O,R,z){const _=R||u;O?b(O):v?v(_):s(void 0,_,z)}}}runSync(u,c){let s=!1,h;return this.run(u,c,y),Ex("runSync","run",s),h;function y(v,b){yx(v),h=b,s=!0}}stringify(u,c){this.freeze();const s=kv(c),h=this.compiler||this.Compiler;return D1("stringify",h),Sx(u),h(u,s)}use(u,...c){const s=this.attachers,h=this.namespace;if(M1("use",this.frozen),u!=null)if(typeof u=="function")T(u,c);else if(typeof u=="object")Array.isArray(u)?b(u):v(u);else throw new TypeError("Expected usable value, not `"+u+"`");return this;function y(E){if(typeof E=="function")T(E,[]);else if(typeof E=="object")if(Array.isArray(E)){const[O,...R]=E;T(O,R)}else v(E);else throw new TypeError("Expected usable value, not `"+E+"`")}function v(E){if(!("plugins"in E)&&!("settings"in E))throw new Error("Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither");b(E.plugins),E.settings&&(h.settings=A1(!0,h.settings,E.settings))}function b(E){let O=-1;if(E!=null)if(Array.isArray(E))for(;++O<E.length;){const R=E[O];y(R)}else throw new TypeError("Expected a list of plugins, not `"+E+"`")}function T(E,O){let R=-1,z=-1;for(;++R<s.length;)if(s[R][0]===E){z=R;break}if(z===-1)s.push([E,...O]);else if(O.length>0){let[_,...Y]=O;const ae=s[z][1];x1(ae)&&x1(_)&&(_=A1(!0,ae,_)),s[z]=[E,_,...Y]}}}}const z6=new _1().freeze();function C1(a,u){if(typeof u!="function")throw new TypeError("Cannot `"+a+"` without `parser`")}function D1(a,u){if(typeof u!="function")throw new TypeError("Cannot `"+a+"` without `compiler`")}function M1(a,u){if(u)throw new Error("Cannot call `"+a+"` on a frozen processor.\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.")}function Sx(a){if(!x1(a)||typeof a.type!="string")throw new TypeError("Expected node, got `"+a+"`")}function Ex(a,u,c){if(!c)throw new Error("`"+a+"` finished async. Use `"+u+"` instead")}function kv(a){return _6(a)?a:new vx(a)}function _6(a){return!!(a&&typeof a=="object"&&"message"in a&&"messages"in a)}function C6(a){return typeof a=="string"||D6(a)}function D6(a){return!!(a&&typeof a=="object"&&"byteLength"in a&&"byteOffset"in a)}const M6="https://github.com/remarkjs/react-markdown/blob/main/changelog.md",Tx=[],Ax={allowDangerousHtml:!0},N6=/^(https?|ircs?|mailto|xmpp)$/i,k6=[{from:"astPlugins",id:"remove-buggy-html-in-markdown-parser"},{from:"allowDangerousHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"allowNode",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowElement"},{from:"allowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"allowedElements"},{from:"disallowedTypes",id:"replace-allownode-allowedtypes-and-disallowedtypes",to:"disallowedElements"},{from:"escapeHtml",id:"remove-buggy-html-in-markdown-parser"},{from:"includeElementIndex",id:"#remove-includeelementindex"},{from:"includeNodeIndex",id:"change-includenodeindex-to-includeelementindex"},{from:"linkTarget",id:"remove-linktarget"},{from:"plugins",id:"change-plugins-to-remarkplugins",to:"remarkPlugins"},{from:"rawSourcePos",id:"#remove-rawsourcepos"},{from:"renderers",id:"change-renderers-to-components",to:"components"},{from:"source",id:"change-source-to-children",to:"children"},{from:"sourcePos",id:"#remove-sourcepos"},{from:"transformImageUri",id:"#add-urltransform",to:"urlTransform"},{from:"transformLinkUri",id:"#add-urltransform",to:"urlTransform"}];function U6(a){const u=H6(a),c=j6(a);return B6(u.runSync(u.parse(c),c),a)}function H6(a){const u=a.rehypePlugins||Tx,c=a.remarkPlugins||Tx,s=a.remarkRehypeOptions?{...a.remarkRehypeOptions,...Ax}:Ax;return z6().use(p3).use(c).use(s6,s).use(u)}function j6(a){const u=a.children||"",c=new vx;return typeof u=="string"&&(c.value=u),c}function B6(a,u){const c=u.allowedElements,s=u.allowElement,h=u.components,y=u.disallowedElements,v=u.skipHtml,b=u.unwrapDisallowed,T=u.urlTransform||L6;for(const O of k6)Object.hasOwn(u,O.from)&&(""+O.from+(O.to?"use `"+O.to+"` instead":"remove it")+M6+O.id,void 0);return u.className&&(a={type:"element",tagName:"div",properties:{className:u.className},children:a.type==="root"?a.children:[a]}),hx(a,E),nM(a,{Fragment:We.Fragment,components:h,ignoreInvalidStyle:!0,jsx:We.jsx,jsxs:We.jsxs,passKeys:!0,passNode:!0});function E(O,R,z){if(O.type==="raw"&&z&&typeof R=="number")return v?z.children.splice(R,1):z.children[R]={type:"text",value:O.value},R;if(O.type==="element"){let _;for(_ in o1)if(Object.hasOwn(o1,_)&&Object.hasOwn(O.properties,_)){const Y=O.properties[_],ae=o1[_];(ae===null||ae.includes(O.tagName))&&(O.properties[_]=T(String(Y||""),_,O))}}if(O.type==="element"){let _=c?!c.includes(O.tagName):y?y.includes(O.tagName):!1;if(!_&&s&&typeof R=="number"&&(_=!s(O,R,z)),_&&z&&typeof R=="number")return b&&O.children?z.children.splice(R,1,...O.children):z.children.splice(R,1),R}}}function L6(a){const u=a.indexOf(":"),c=a.indexOf("?"),s=a.indexOf("#"),h=a.indexOf("/");return u===-1||h!==-1&&u>h||c!==-1&&u>c||s!==-1&&u>s||N6.test(a.slice(0,u))?a:""}const xx="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2024%2024'%20stroke-width='1.5'%20stroke='%232e2438'%3e%3cpath%20stroke-linecap='round'%20stroke-linejoin='round'%20d='M19.5%208.25l-7.5%207.5-7.5-7.5'%20/%3e%3c/svg%3e",Z6="data:image/png;base64,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",q6="data:image/svg+xml,%3csvg%20viewBox='0%200%2024%2024'%20fill='none'%20stroke='%232e2438'%20stroke-width='2.5'%20stroke-linecap='round'%20stroke-linejoin='round'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M12%2019V5M5%2012l7-7%207%207'%20/%3e%3c/svg%3e",Y6=Es(["asw-widget font-inter fixed transition-all"],{variants:{position:{"bottom-right":"bottom-6 right-6","bottom-left":"bottom-6 left-6"},open:{true:"h-5/6 max-h-[800px] w-80",false:"w-16 h-16 overflow-hidden"}},defaultVariants:{position:"bottom-right",open:!1}}),V6=Es(["rounded-2xl flex flex-col justify-between absolute w-80 h-5/6","bg-asm-gray-500 shadow-2xl border border-gray-200/60 transition-all duration-300","motion-reduce:transition-none transform-gpu overflow-hidden"],{variants:{position:{"bottom-right":"right-2 origin-bottom-right","bottom-left":"left-2 origin-bottom-left"},open:{true:"scale-100 bottom-20 opacity-100",false:"scale-0 bottom-2 opacity-0 pointer-events-none"}},defaultVariants:{position:"bottom-right",open:!1}}),G6=Es(["relative w-full z-[2]"]),X6=Es(["absolute right-2 top-1/2 -translate-y-1/2","flex items-center justify-center z-[1]","transition-all motion-reduce:transition-none transform-gpu","rounded-full text-asm-purple bg-transparent border border-asm-purple hover:bg-asm-blue/30 cursor-pointer","w-8 h-8"],{variants:{active:{true:"scale-100 opacity-100",false:"scale-0 opacity-0"}}}),Q6=Es(["absolute left-0 bottom-0 z-[3] h-3/4 w-full mb-24","transition-all duration-300 motion-reduce:transition-none transform-gpu"],{variants:{active:{true:"translate-y-0",false:"translate-y-full"}},defaultVariants:{active:!1}}),I6=Es(["flex gap-2"],{variants:{role:{user:"flex-row-reverse",assistant:"flex-row",system:"flex-row"}}}),J6=Es(["absolute bottom-0 text-white w-16 h-16 flex justify-center items-center","shadow-md cursor-pointer transition-colors duration-300 ease-in-out"],{variants:{position:{"bottom-right":"right-0 rounded-bl-[50%] rounded-tl-[50%] rounded-tr-[50%] rounded-br","bottom-left":"left-0 rounded-br-[50%] rounded-tr-[50%] rounded-tl-[50%] rounded-bl"},open:{true:"bg-asm-pink-400",false:"bg-asm-purple"}},defaultVariants:{position:"bottom-right",open:!1}});function Ox(a){return a!=null&&a.persist?`asm-widget:${a.endpoint??"/api/chat"}:${a.context??""}`:null}function $6(a){if(!a)return null;try{const u=sessionStorage.getItem(a);return u?JSON.parse(u):null}catch{return null}}function K6(a){const u=Ox(a),c=$6(u);return c||((a==null?void 0:a.initialMessages)??[]).map((s,h)=>({id:`initial-${h}`,role:s.role,parts:[{type:"text",text:s.content}],createdAt:new Date}))}const P6=({config:a,open:u,defaultOpen:c=!1,onOpenChange:s,onMessage:h,onError:y,children:v})=>{const b=_n.useRef(null),T=_n.useRef(null),E=_n.useRef(0),O=(a==null?void 0:a.position)??"bottom-right",[R]=_n.useState(()=>new FT({api:(a==null?void 0:a.endpoint)??"/api/chat",headers:a==null?void 0:a.headers,body:{...(a==null?void 0:a.systemPrompt)!==void 0&&{systemPrompt:a.systemPrompt},...(a==null?void 0:a.context)!==void 0&&{context:a.context},...(a==null?void 0:a.mcpServerUrl)!==void 0&&{mcpServerUrl:a.mcpServerUrl},...(a==null?void 0:a.model)!==void 0&&{model:a.model},...(a==null?void 0:a.temperature)!==void 0&&{temperature:a.temperature},...(a==null?void 0:a.user)!==void 0&&{user:a.user}}})),[z]=_n.useState(()=>K6(a)),{error:_,stop:Y,status:ae,messages:G,sendMessage:k,addToolResult:q}=RD({transport:R,messages:z}),D=ae==="submitted"||ae==="streaming",ue=u!==void 0,[te,Q]=_n.useState(c),he=ue?u:te,_e=_n.useCallback(se=>{ue||Q(se),s==null||s(se)},[ue,s]),[Se,He]=_n.useState(!1),[be,Ee]=_n.useState(""),Xe=Ox(a);_n.useEffect(()=>{if(Xe&&G.length>0)try{sessionStorage.setItem(Xe,JSON.stringify(G))}catch{}},[G,Xe]),_n.useEffect(()=>{G.length>E.current&&G.slice(E.current).forEach(ke=>{if(ke.role==="assistant"){const A=ke.parts.filter(Av).map(J=>J.text).join("");h==null||h({role:ke.role,content:A})}}),E.current=G.length},[G,h]),_n.useEffect(()=>{_&&(y==null||y(_))},[_,y]),_n.useEffect(()=>{T.current&&(T.current.scrollTop=T.current.scrollHeight)},[G]),_n.useEffect(()=>()=>{Y()},[]);const Ne=()=>{he&&Y(),_e(!he)},Te=se=>{se.preventDefault(),be.trim()&&(k({parts:[{type:"text",text:be}]}),Ee(""),b.current&&(b.current.style.height="auto"))},B=a==null?void 0:a.logo,ie=(a==null?void 0:a.title)??"Ask ASMBL";return We.jsxs("div",{className:Y6({position:O,open:he}),children:[We.jsxs("div",{className:V6({position:O,open:he}),children:[We.jsxs("div",{className:"px-4 pt-6 pb-3 flex items-center gap-3",children:[B&&We.jsx("img",{width:28,height:28,src:B,alt:""}),We.jsx("h2",{className:"text-xl font-bold text-asm-purple",children:ie}),We.jsx("button",{className:"absolute top-4 right-4 text-asm-purple transition-colors bg-transparent hover:bg-asm-blue/30 rounded-full w-9 h-9 flex justify-center items-center cursor-pointer",onClick:()=>He(!1),disabled:!Se,"aria-label":"Hide chat",children:We.jsx("img",{width:20,height:20,src:xx,alt:""})})]}),!D&&Se&&_&&We.jsxs("div",{className:"absolute bg-asm-white w-full opacity-8 z-40 flex flex-col gap-2 items-center justify-center h-full",children:[We.jsx("button",{className:"absolute top-2 right-2 text-asm-purple transition-colors bg-transparent hover:bg-asm-blue/30 rounded-full w-10 h-10 flex justify-center items-center cursor-pointer",onClick:()=>He(!1),"aria-label":"Hide chat",children:We.jsx("img",{width:20,height:20,src:xx,alt:""})}),We.jsxs("h3",{className:"text-center font-bold",children:["Sorry, I'm having trouble",We.jsx("br",{}),"connecting right now."]}),We.jsx("p",{className:"text-center",children:":("})]}),!Se&&!v&&!(a!=null&&a.welcomeHeading)&&B&&We.jsx("div",{className:"flex-1 flex flex-col items-center justify-center pb-20",children:We.jsx("img",{width:52,height:52,src:B,className:"opacity-20",alt:""})}),We.jsx("div",{className:Q6({active:Se||!!v}),children:We.jsx("div",{className:`flex flex-col relative h-full w-full rounded-t-2xl overflow-hidden ${G.length>0||v||D?"bg-asm-white shadow-sm":"bg-transparent"} ${G.length>0?"justify-end":"justify-start"}`,children:G.length>0?We.jsxs("div",{className:"overflow-y-auto h-full flex flex-col",ref:T,children:[We.jsx("div",{className:"flex-1"}),G.map((se,ke)=>{var A;return We.jsx("div",{className:"px-4 py-2 first:pt-4 last:pb-4",style:{overflowAnchor:"none"},children:We.jsxs("div",{className:I6({role:se.role}),children:[We.jsx("div",{className:"relative shrink-0",children:se.role==="user"?We.jsx("div",{className:"rounded-full bg-asm-gray-500 ml-1 w-10 h-10 p-2 flex items-center justify-center",children:(A=a==null?void 0:a.user)!=null&&A.name?We.jsx("span",{className:"text-sm font-semibold leading-none select-none",children:a.user.name.charAt(0).toUpperCase()}):We.jsx("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 20 20",children:We.jsx("path",{fillRule:"evenodd",d:"M10 9a3 3 0 100-6 3 3 0 000 6zm-7 9a7 7 0 1114 0H3z",clipRule:"evenodd"})})}):We.jsxs("div",{className:"relative",children:[D&&ke+1===G.length&&We.jsx("span",{className:"shadow text-xs text-asm-gray-400 leading-none absolute -bottom-4 left-4 z-10 bg-white pb-2 px-2 rounded-md",children:"..."}),B&&We.jsx("img",{className:"mr-1",width:36,height:36,src:B,alt:""})]})}),se.role==="user"?We.jsx("div",{className:"bg-asm-pink-400 rounded-xl rounded-tr-none w-full",children:We.jsx("p",{className:"text-gray-600 text-sm p-3 whitespace-pre-wrap",children:se.parts.filter(Av).map(J=>J.text).join("")})}):We.jsxs("div",{className:"bg-asm-gray-500 rounded-xl rounded-tl-none w-full overflow-hidden",children:[se.parts.filter(Av).map(J=>J.text).join("")&&We.jsx("div",{className:"text-gray-600 text-sm p-3 prose prose-sm max-w-none",children:We.jsx(U6,{children:se.parts.filter(Av).map(J=>J.text).join("")})}),se.parts.filter(lm).map(J=>{var Qt,Ge;if(hD(J)!=="ask_multiple_choice")return null;const{toolCallId:oe,state:U}=J,ze=J.input,Be=U==="output-available",Oe=Be?(Qt=J.output)==null?void 0:Qt.selectedId:void 0;return We.jsxs("div",{className:"px-3 pb-3",children:[We.jsx("p",{className:"text-gray-600 text-sm font-medium mb-2",children:ze.question}),We.jsx("div",{className:"flex flex-col gap-1.5",children:(Ge=ze.choices)==null?void 0:Ge.map(At=>We.jsx("button",{disabled:Be,onClick:()=>{Be||q({tool:"ask_multiple_choice",toolCallId:oe,output:{selectedId:At.id,selectedLabel:At.label}})},className:["text-left text-sm px-3 py-2 rounded-lg border transition-colors",Be&&Oe===At.id?"bg-asm-purple text-white border-asm-purple":Be?"bg-transparent text-gray-400 border-gray-200 cursor-default":"bg-white text-gray-700 border-asm-purple/40 hover:bg-asm-purple/10 cursor-pointer"].join(" "),children:At.label},At.id))})]},oe)})]})]})},se.id)})]}):We.jsxs("div",{className:"flex flex-col gap-2 items-center px-4 py-4",children:[v??(a!=null&&a.welcomeHeading?We.jsx("h3",{className:"text-center font-bold",children:a.welcomeHeading}):null),D&&We.jsx("p",{className:"text-center bg-white py-1 px-2 rounded-md text-sm",children:"This should only take a moment…"})]})})}),We.jsx("div",{className:"absolute bottom-0 left-0 w-full flex items-center px-4 py-6 z-50 bg-asm-gray-500",children:We.jsxs("form",{className:G6(),onSubmit:Te,children:[We.jsx("textarea",{ref:b,style:{height:b.current&&document.activeElement===b.current?`${b.current.scrollHeight}px`:"auto"},rows:1,cols:1,onFocus:()=>He(!0),value:be,onChange:se=>{He(!0),Ee(se.target.value)},onKeyDown:se=>{se.key==="Enter"&&!se.shiftKey&&!se.repeat&&(se.preventDefault(),be.trim()&&(k({parts:[{type:"text",text:be}]}),Ee(""),b.current&&(b.current.style.height="auto")))},className:"w-full bg-white rounded-xl pl-4 pr-12 py-3 min-h-[46px] max-h-[500px] shadow-sm ring-1 ring-gray-200 resize-none leading-[1.4]",placeholder:(a==null?void 0:a.placeholder)??""}),We.jsx("button",{className:X6({active:Se}),type:"submit",disabled:!Se,"aria-label":"Send message",children:We.jsx("img",{width:18,height:18,src:q6,alt:"","aria-hidden":"true"})})]})})]}),We.jsx("button",{className:J6({position:O,open:he}),onClick:Ne,"aria-label":he?"Close widget":"Open widget",children:We.jsx("img",{className:"absolute",width:30,height:30,src:B??Z6,alt:""})})]})},F6="asm-widget-root";function W6(a,u=F6){let c=document.getElementById(u);c||(c=document.createElement("div"),c.id=u,document.body.appendChild(c)),kO.createRoot(c).render(_n.createElement(P6,{config:a}))}window.AsmWidget={init:W6}})();
|
package/dist/index.js
CHANGED
|
@@ -13340,6 +13340,7 @@ const Ry = ({
|
|
|
13340
13340
|
const s = Zt(null), u = Zt(null), l = Zt(0), c = (e == null ? void 0 : e.position) ?? "bottom-right", [p] = _t(
|
|
13341
13341
|
() => new ha({
|
|
13342
13342
|
api: (e == null ? void 0 : e.endpoint) ?? "/api/chat",
|
|
13343
|
+
headers: e == null ? void 0 : e.headers,
|
|
13343
13344
|
body: {
|
|
13344
13345
|
...(e == null ? void 0 : e.systemPrompt) !== void 0 && { systemPrompt: e.systemPrompt },
|
|
13345
13346
|
...(e == null ? void 0 : e.context) !== void 0 && { context: e.context },
|