@salla.sa/ui-ai-kit-core 2.2.1 → 2.2.3
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/cjs/ai-card.cjs.entry.js +2 -2
- package/dist/cjs/ai-chat-header.cjs.entry.js +19 -2
- package/dist/cjs/ai-chat-message.cjs.entry.js +1 -1
- package/dist/cjs/ai-conversation-list.cjs.entry.js +10 -4
- package/dist/cjs/ai-conversation-summary.cjs.entry.js +1 -1
- package/dist/cjs/ai-in-chat-browser.cjs.entry.js +1 -1
- package/dist/cjs/ai-link.cjs.entry.js +1 -1
- package/dist/cjs/ai-route-decision.cjs.entry.js +1 -1
- package/dist/cjs/ai-suggestion.cjs.entry.js +2 -2
- package/dist/cjs/ai-voice-input.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/ui-ai-kit.cjs.js +1 -1
- package/dist/collection/components/ai-card/ai-card.css +22 -0
- package/dist/collection/components/ai-card/ai-card.js +1 -1
- package/dist/collection/components/ai-chat-header/ai-chat-header.js +133 -2
- package/dist/collection/components/ai-chat-message/ai-chat-message.js +1 -1
- package/dist/collection/components/ai-conversation-list/ai-conversation-list.css +20 -0
- package/dist/collection/components/ai-conversation-list/ai-conversation-list.js +29 -3
- package/dist/collection/components/ai-conversation-summary/ai-conversation-summary.js +1 -1
- package/dist/collection/components/ai-in-chat-browser/ai-in-chat-browser.js +1 -1
- package/dist/collection/components/ai-link/ai-link.js +1 -1
- package/dist/collection/components/ai-route-decision/ai-route-decision.js +1 -1
- package/dist/collection/components/ai-suggestion/ai-suggestion.js +2 -2
- package/dist/collection/components/ai-voice-input/ai-voice-input.js +1 -1
- package/dist/components/ai-card.js +1 -1
- package/dist/components/ai-chat-header.js +1 -1
- package/dist/components/ai-chat-message.js +1 -1
- package/dist/components/ai-conversation-list.js +1 -1
- package/dist/components/ai-conversation-summary.js +1 -1
- package/dist/components/ai-in-chat-browser.js +1 -1
- package/dist/components/ai-link.js +1 -1
- package/dist/components/ai-message-input.js +1 -1
- package/dist/components/ai-rating.js +1 -1
- package/dist/components/ai-route-decision.js +1 -1
- package/dist/components/ai-suggestion.js +1 -1
- package/dist/components/ai-voice-input.js +1 -1
- package/dist/components/{p-bGFmyIp1.js → p-BlCeQ9Hu.js} +1 -1
- package/dist/components/p-CFSr3KcL.js +1 -0
- package/dist/components/p-DCJWSYj-.js +1 -0
- package/dist/esm/ai-card.entry.js +2 -2
- package/dist/esm/ai-chat-header.entry.js +19 -2
- package/dist/esm/ai-chat-message.entry.js +1 -1
- package/dist/esm/ai-conversation-list.entry.js +10 -4
- package/dist/esm/ai-conversation-summary.entry.js +1 -1
- package/dist/esm/ai-in-chat-browser.entry.js +1 -1
- package/dist/esm/ai-link.entry.js +1 -1
- package/dist/esm/ai-route-decision.entry.js +1 -1
- package/dist/esm/ai-suggestion.entry.js +2 -2
- package/dist/esm/ai-voice-input.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/ui-ai-kit.js +1 -1
- package/dist/types/components/ai-chat-header/ai-chat-header.d.ts +13 -0
- package/dist/types/components/ai-conversation-list/ai-conversation-list.d.ts +2 -0
- package/dist/types/components.d.ts +71 -0
- package/dist/ui-ai-kit/{p-5f005ec5.entry.js → p-11c960d8.entry.js} +1 -1
- package/dist/ui-ai-kit/p-17e5d542.entry.js +1 -0
- package/dist/ui-ai-kit/p-2fd7529e.entry.js +1 -0
- package/dist/ui-ai-kit/{p-d02f2db5.entry.js → p-79309690.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-6bd54e29.entry.js → p-9a8614d0.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-062cad02.entry.js → p-9af03dbd.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-83f46030.entry.js → p-a1ee6005.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-187db371.entry.js → p-a5f53c8c.entry.js} +1 -1
- package/dist/ui-ai-kit/p-cde479ea.entry.js +1 -0
- package/dist/ui-ai-kit/{p-e6236df2.entry.js → p-e1a2a622.entry.js} +1 -1
- package/dist/ui-ai-kit/ui-ai-kit.esm.js +1 -1
- package/package.json +1 -1
- package/dist/components/p-Ba0urr6Q.js +0 -1
- package/dist/components/p-CJzVwMlS.js +0 -1
- package/dist/ui-ai-kit/p-8ac8febb.entry.js +0 -1
- package/dist/ui-ai-kit/p-8fabdbe8.entry.js +0 -1
- package/dist/ui-ai-kit/p-953d4348.entry.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as e,H as a,c as i,h as n,d as t,t as d}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";const r=e(class extends a{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.routeExpand=i(this,"routeExpand")}selectedAgent="";agentIcon="";reason="";confidence=0;detectedLanguage="";expanded=!1;_expanded=!1;routeExpand;componentWillLoad(){this._expanded=this.expanded}renderIcon(e,a,i){const t=s[e];return t?n("span",{class:"icon-wrap",innerHTML:`<svg width="${a}" height="${i}" viewBox="${t.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${t.content}</svg>`}):null}handleToggle(){this._expanded=!this._expanded,this.expanded=this._expanded,this.routeExpand.emit(this._expanded)}render(){return n(t,{key:"
|
|
1
|
+
import{p as e,H as a,c as i,h as n,d as t,t as d}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";const r=e(class extends a{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.routeExpand=i(this,"routeExpand")}selectedAgent="";agentIcon="";reason="";confidence=0;detectedLanguage="";expanded=!1;_expanded=!1;routeExpand;componentWillLoad(){this._expanded=this.expanded}renderIcon(e,a,i){const t=s[e];return t?n("span",{class:"icon-wrap",innerHTML:`<svg width="${a}" height="${i}" viewBox="${t.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${t.content}</svg>`}):null}handleToggle(){this._expanded=!this._expanded,this.expanded=this._expanded,this.routeExpand.emit(this._expanded)}render(){return n(t,{key:"f12718d142cff27d62c0a0299b029be2e2d88b86"},n("div",{key:"4fcef90f887300c4884cd981737bf8ce8b796eca",class:"route-pill "+(this._expanded?"expanded":"")},n("button",{key:"09eadc07b41b96fb56b4bcd937165de92507ac84",class:"route-pill-main",onClick:()=>this.handleToggle()},n("span",{key:"d13744692a45c74976f89b582142ae09339015f5",class:"route-icon"},this.renderIcon("route",14,14)),n("span",{key:"4f995cc09a72ba74310df17cf78735c27a910314",class:"agent-label"},this.agentIcon&&n("span",{key:"272dd78f38bbbb4ef845b7a41530d205368faf7e",class:"agent-emoji","aria-hidden":"true"},this.agentIcon),this.selectedAgent),this.confidence>0&&n("span",{key:"a061317c9d5b8dad243dce0bb80e927eae04eb3d",class:"confidence-badge"},this.confidence,"%"),n("span",{key:"4342bdf38aa85a5c5d6bd054504c91bccc7901e9",class:"expand-icon "+(this._expanded?"expanded":"")},this.renderIcon("arrow-right",12,12))),this._expanded&&n("div",{key:"ab5340148e832baafdd38e17a748a52b83b25c96",class:"route-details"},this.reason&&n("p",{key:"7854838ea405c5fdb5ebe11fb3df36a9898be445",class:"reason-text"},this.reason),this.confidence>0&&n("div",{key:"baf946426ad7cda94d2acfbb9f8945b5b40a823c",class:"confidence-bar-wrap"},n("div",{key:"a6e08f412706ce18e16030dd4d475d57befdd9e7",class:"confidence-bar",style:{width:this.confidence+"%"}})),this.detectedLanguage&&n("div",{key:"58af2dbca56082dcf2910cc44ac553d6f2af015a",class:"meta-row"},this.renderIcon("list",12,12),n("span",{key:"63517ed8802764542de330897372c6a01348d0a6",class:"lang-chip"},this.detectedLanguage)))))}static get style(){return":host{display:inline-block}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;line-height:0}.route-pill{display:inline-flex;flex-direction:column;background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:9999px;box-shadow:var(--ai-shadow-sm);overflow:hidden;transition:border-radius 0.2s ease}.route-pill.expanded{border-radius:12px}.route-pill-main{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:none;border:none;cursor:pointer;color:var(--ai-text-primary);font-size:13px;font-weight:500;white-space:nowrap;width:100%}.route-icon{color:var(--ai-accent-dark);display:inline-flex;flex-shrink:0}.agent-label{display:inline-flex;align-items:center;gap:4px}.agent-emoji{font-size:14px;line-height:1}.confidence-badge{font-size:11px;font-weight:600;color:var(--ai-accent-dark);background:var(--ai-accent-bg);padding:1px 6px;border-radius:9999px}.expand-icon{display:inline-flex;margin-inline-start:auto;color:var(--ai-text-secondary);transition:transform 0.2s ease;transform:rotate(0deg)}.expand-icon.expanded{transform:rotate(90deg)}.route-details{display:flex;flex-direction:column;gap:8px;padding:8px 12px 12px;border-top:1px solid var(--ai-border-default);animation:fade-in 0.2s ease}@keyframes fade-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.reason-text{margin:0;font-size:12px;color:var(--ai-text-secondary);line-height:1.5}.confidence-bar-wrap{height:4px;border-radius:9999px;background:var(--ai-border-default);overflow:hidden}.confidence-bar{height:100%;border-radius:9999px;background:var(--ai-accent-dark);transition:width 0.4s ease}.meta-row{display:inline-flex;align-items:center;gap:4px;color:var(--ai-text-secondary)}.lang-chip{font-size:11px;color:var(--ai-text-secondary)}"}},[513,"ai-route-decision",{selectedAgent:[1,"selected-agent"],agentIcon:[1,"agent-icon"],reason:[1],confidence:[2],detectedLanguage:[1,"detected-language"],expanded:[1028],_expanded:[32]}]),o=r,c=function(){"undefined"!=typeof customElements&&["ai-route-decision"].forEach((e=>{"ai-route-decision"===e&&(customElements.get(d(e))||customElements.define(d(e),r))}))};export{o as AiRouteDecision,c as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as i,H as e,c as s,h as a,d as t,t as n}from"./p-BPkf7wZg.js";const o=i(class extends e{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.suggestionClick=s(this,"suggestionClick")}label="";disabled=!1;suggestionClick;handleClick(){this.disabled||this.suggestionClick.emit(this.label)}render(){return a(t,{key:"
|
|
1
|
+
import{p as i,H as e,c as s,h as a,d as t,t as n}from"./p-BPkf7wZg.js";const o=i(class extends e{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.suggestionClick=s(this,"suggestionClick")}label="";disabled=!1;suggestionClick;handleClick(){this.disabled||this.suggestionClick.emit(this.label)}render(){return a(t,{key:"c2eb388d152586755e9cc10ac57b519e8ff84b4d"},a("button",{key:"0b9f6ec6d8c57365e2c29bfe1bfc33993d3cb498",class:{chip:!0,"chip--disabled":this.disabled},disabled:this.disabled,onClick:()=>this.handleClick()},a("span",{key:"d4fabc4c8176cd6837e609bad369e8edfc779855",class:"chip__label"},this.label,a("slot",{key:"a1074453e53982f10fd2115c2b15d7a7b20eda07"}))))}static get style(){return":host{--ai-suggestion-border:1px solid var(--ai-accent);--ai-suggestion-border-hover:1px solid var(--ai-accent);--ai-suggestion-radius:9999px;--ai-suggestion-padding:8px 12px;--ai-suggestion-gap:4px;--ai-suggestion-font-size:14px;--ai-suggestion-line-height:20px;display:inline-block}.chip{display:inline-flex;align-items:center;justify-content:center;gap:var(--ai-suggestion-gap);background:var(--ai-bg-card);border:var(--ai-suggestion-border);border-radius:var(--ai-suggestion-radius);padding:var(--ai-suggestion-padding);color:var(--ai-accent-dark);font-size:var(--ai-suggestion-font-size);font-weight:400;line-height:var(--ai-suggestion-line-height);font-family:inherit;white-space:nowrap;cursor:pointer;transition:background 0.15s ease, border-color 0.15s ease;outline:none;text-align:start}.chip:hover:not(:disabled){background:var(--ai-accent-bg);border:var(--ai-suggestion-border-hover)}.chip:active:not(:disabled){background:var(--ai-accent-bg)}.chip:focus-visible{outline:2px solid var(--ai-accent);outline-offset:2px}.chip--disabled,.chip:disabled{opacity:0.45;cursor:not-allowed;pointer-events:none}.chip__label{display:inline-flex;align-items:center;gap:var(--ai-suggestion-gap)}"}},[769,"ai-suggestion",{label:[1],disabled:[4]}]),c=o,r=function(){"undefined"!=typeof customElements&&["ai-suggestion"].forEach((i=>{"ai-suggestion"===i&&(customElements.get(n(i))||customElements.define(n(i),o))}))};export{c as AiSuggestion,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{V as o,d as
|
|
1
|
+
import{V as o,d as s}from"./p-BlCeQ9Hu.js";const p=o,r=s;export{p as AiVoiceInput,r as defineCustomElement}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as t,H as i,c as e,h as r,d as a,t as o}from"./p-BPkf7wZg.js";import{d as s}from"./p-DZuBxUde.js";const n=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.audioRecorded=e(this,"audioRecorded"),this.recordingCancel=e(this,"recordingCancel")}get el(){return this}disabled=!1;showWaveform=!0;autoStart=!1;errorText="";waveformColor="";state="idle";error=null;recordingDuration=0;submitPulse=!1;audioRecorded;recordingCancel;streamRef=null;audioContextRef=null;analyserRef=null;mediaRecorderRef=null;audioChunks=[];recordingStartTime=0;recordingTimer=null;maxTimeoutRef=null;canvasRef;animationFrameId=0;prevHeights=[];componentDidLoad(){this.autoStart&&!this.disabled&&this.startRecording()}disconnectedCallback(){this.cleanup()}cleanup=()=>{this.recordingTimer&&(clearInterval(this.recordingTimer),this.recordingTimer=null),this.maxTimeoutRef&&(clearTimeout(this.maxTimeoutRef),this.maxTimeoutRef=null),this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=0),this.mediaRecorderRef&&"inactive"!==this.mediaRecorderRef.state&&(this.mediaRecorderRef.stop(),this.mediaRecorderRef=null),this.audioContextRef&&(this.audioContextRef.close(),this.audioContextRef=null),this.analyserRef&&(this.analyserRef=null),this.streamRef&&(this.streamRef.getTracks().forEach((t=>t.stop())),this.streamRef=null)};getErrorText(){return this.errorText?this.errorText:"en"===document.documentElement.lang?"Microphone access denied":"تعذّر الوصول للميكروفون"}startRecording=async()=>{try{this.error=null,this.audioChunks=[];const t=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}});this.streamRef=t;const i=new AudioContext;if(this.audioContextRef=i,this.showWaveform){const e=i.createAnalyser();e.fftSize=256,e.smoothingTimeConstant=.8,this.analyserRef=e,i.createMediaStreamSource(t).connect(e)}this.setupMediaRecorder(t),this.recordingStartTime=Date.now(),this.recordingDuration=0,this.prevHeights=[],this.state="recording",this.showWaveform&&requestAnimationFrame((()=>{this.drawWaveform()})),this.recordingTimer=window.setInterval((()=>{this.recordingDuration=Math.floor((Date.now()-this.recordingStartTime)/1e3)}),1e3),this.maxTimeoutRef=window.setTimeout((()=>{this.stopRecording()}),6e4)}catch(t){console.error("Error starting recording:",t),this.error=this.getErrorText(),this.state="idle"}};setupMediaRecorder=t=>{const i=MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":MediaRecorder.isTypeSupported("audio/ogg")?"audio/ogg":"",e=new MediaRecorder(t,i?{mimeType:i}:{});e.ondataavailable=t=>{t.data.size>0&&this.audioChunks.push(t.data)},e.onstop=()=>{const t=new Blob(this.audioChunks,{type:i||"audio/mp4"});this.audioRecorded.emit({blob:t,duration:this.recordingDuration})},this.mediaRecorderRef=e,e.start(100)};stopRecording=()=>{if(this.recordingDuration<1)return this.submitPulse=!0,void setTimeout((()=>{this.submitPulse=!1}),400);this.recordingTimer&&(clearInterval(this.recordingTimer),this.recordingTimer=null),this.maxTimeoutRef&&(clearTimeout(this.maxTimeoutRef),this.maxTimeoutRef=null),this.cleanup(),this.state="idle"};cancelRecording=()=>{this.mediaRecorderRef&&"inactive"!==this.mediaRecorderRef.state&&(this.mediaRecorderRef.ondataavailable=null,this.mediaRecorderRef.onstop=null),this.cleanup(),this.state="idle",this.recordingCancel.emit()};drawWaveform=()=>{if(!this.canvasRef||!this.analyserRef)return;const t=this.canvasRef,i=t.getContext("2d");if(!i)return;const e=this.analyserRef.frequencyBinCount,r=new Uint8Array(e),a=this.waveformColor||getComputedStyle(this.el).getPropertyValue("--ai-waveform-color").trim()||"#9ca3af",o=(t,e,r,a,o)=>{if(i.beginPath(),"function"==typeof i.roundRect)i.roundRect(t,e,r,a,o);else{const s=Math.min(o,r/2,a/2);i.moveTo(t+s,e),i.lineTo(t+r-s,e),i.arcTo(t+r,e,t+r,e+s,s),i.lineTo(t+r,e+a-s),i.arcTo(t+r,e+a,t+r-s,e+a,s),i.lineTo(t+s,e+a),i.arcTo(t,e+a,t,e+a-s,s),i.lineTo(t,e+s),i.arcTo(t,e,t+s,e,s),i.closePath()}},s=()=>{if("recording"!==this.state)return;this.animationFrameId=requestAnimationFrame(s);const n=t.offsetWidth;n>0&&t.width!==n&&(t.width=n);const c=Math.min(100,Math.floor(t.width/3)),d=Math.max(1,Math.floor(e/c));this.prevHeights.length!==c&&(this.prevHeights=new Array(c).fill(4)),this.analyserRef.getByteFrequencyData(r),i.clearRect(0,0,t.width,t.height);const l=t.height/2,h=(t.width-3*c)/2,u=t.height-4;for(let t=0;t<c;t++){let s=0;for(let i=0;i<d;i++){const a=t*d+i;a<e&&(s+=r[a])}const n=Math.min(1,s/d/255);this.prevHeights[t]=.7*this.prevHeights[t]+.3*(4+n*(u-4));const c=this.prevHeights[t],p=h+3*t,b=l-c/2;i.fillStyle=a,o(p,b,1,c,.5),i.fill()}};s()};formatDuration=t=>`${Math.floor(t/60)}:${(t%60).toString().padStart(2,"0")}`;render(){const t=60-this.recordingDuration;return r(a,{key:"
|
|
1
|
+
import{p as t,H as i,c as e,h as r,d as a,t as o}from"./p-BPkf7wZg.js";import{d as s}from"./p-DZuBxUde.js";const n=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.audioRecorded=e(this,"audioRecorded"),this.recordingCancel=e(this,"recordingCancel")}get el(){return this}disabled=!1;showWaveform=!0;autoStart=!1;errorText="";waveformColor="";state="idle";error=null;recordingDuration=0;submitPulse=!1;audioRecorded;recordingCancel;streamRef=null;audioContextRef=null;analyserRef=null;mediaRecorderRef=null;audioChunks=[];recordingStartTime=0;recordingTimer=null;maxTimeoutRef=null;canvasRef;animationFrameId=0;prevHeights=[];componentDidLoad(){this.autoStart&&!this.disabled&&this.startRecording()}disconnectedCallback(){this.cleanup()}cleanup=()=>{this.recordingTimer&&(clearInterval(this.recordingTimer),this.recordingTimer=null),this.maxTimeoutRef&&(clearTimeout(this.maxTimeoutRef),this.maxTimeoutRef=null),this.animationFrameId&&(cancelAnimationFrame(this.animationFrameId),this.animationFrameId=0),this.mediaRecorderRef&&"inactive"!==this.mediaRecorderRef.state&&(this.mediaRecorderRef.stop(),this.mediaRecorderRef=null),this.audioContextRef&&(this.audioContextRef.close(),this.audioContextRef=null),this.analyserRef&&(this.analyserRef=null),this.streamRef&&(this.streamRef.getTracks().forEach((t=>t.stop())),this.streamRef=null)};getErrorText(){return this.errorText?this.errorText:"en"===document.documentElement.lang?"Microphone access denied":"تعذّر الوصول للميكروفون"}startRecording=async()=>{try{this.error=null,this.audioChunks=[];const t=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}});this.streamRef=t;const i=new AudioContext;if(this.audioContextRef=i,this.showWaveform){const e=i.createAnalyser();e.fftSize=256,e.smoothingTimeConstant=.8,this.analyserRef=e,i.createMediaStreamSource(t).connect(e)}this.setupMediaRecorder(t),this.recordingStartTime=Date.now(),this.recordingDuration=0,this.prevHeights=[],this.state="recording",this.showWaveform&&requestAnimationFrame((()=>{this.drawWaveform()})),this.recordingTimer=window.setInterval((()=>{this.recordingDuration=Math.floor((Date.now()-this.recordingStartTime)/1e3)}),1e3),this.maxTimeoutRef=window.setTimeout((()=>{this.stopRecording()}),6e4)}catch(t){console.error("Error starting recording:",t),this.error=this.getErrorText(),this.state="idle"}};setupMediaRecorder=t=>{const i=MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":MediaRecorder.isTypeSupported("audio/ogg")?"audio/ogg":"",e=new MediaRecorder(t,i?{mimeType:i}:{});e.ondataavailable=t=>{t.data.size>0&&this.audioChunks.push(t.data)},e.onstop=()=>{const t=new Blob(this.audioChunks,{type:i||"audio/mp4"});this.audioRecorded.emit({blob:t,duration:this.recordingDuration})},this.mediaRecorderRef=e,e.start(100)};stopRecording=()=>{if(this.recordingDuration<1)return this.submitPulse=!0,void setTimeout((()=>{this.submitPulse=!1}),400);this.recordingTimer&&(clearInterval(this.recordingTimer),this.recordingTimer=null),this.maxTimeoutRef&&(clearTimeout(this.maxTimeoutRef),this.maxTimeoutRef=null),this.cleanup(),this.state="idle"};cancelRecording=()=>{this.mediaRecorderRef&&"inactive"!==this.mediaRecorderRef.state&&(this.mediaRecorderRef.ondataavailable=null,this.mediaRecorderRef.onstop=null),this.cleanup(),this.state="idle",this.recordingCancel.emit()};drawWaveform=()=>{if(!this.canvasRef||!this.analyserRef)return;const t=this.canvasRef,i=t.getContext("2d");if(!i)return;const e=this.analyserRef.frequencyBinCount,r=new Uint8Array(e),a=this.waveformColor||getComputedStyle(this.el).getPropertyValue("--ai-waveform-color").trim()||"#9ca3af",o=(t,e,r,a,o)=>{if(i.beginPath(),"function"==typeof i.roundRect)i.roundRect(t,e,r,a,o);else{const s=Math.min(o,r/2,a/2);i.moveTo(t+s,e),i.lineTo(t+r-s,e),i.arcTo(t+r,e,t+r,e+s,s),i.lineTo(t+r,e+a-s),i.arcTo(t+r,e+a,t+r-s,e+a,s),i.lineTo(t+s,e+a),i.arcTo(t,e+a,t,e+a-s,s),i.lineTo(t,e+s),i.arcTo(t,e,t+s,e,s),i.closePath()}},s=()=>{if("recording"!==this.state)return;this.animationFrameId=requestAnimationFrame(s);const n=t.offsetWidth;n>0&&t.width!==n&&(t.width=n);const c=Math.min(100,Math.floor(t.width/3)),d=Math.max(1,Math.floor(e/c));this.prevHeights.length!==c&&(this.prevHeights=new Array(c).fill(4)),this.analyserRef.getByteFrequencyData(r),i.clearRect(0,0,t.width,t.height);const l=t.height/2,h=(t.width-3*c)/2,u=t.height-4;for(let t=0;t<c;t++){let s=0;for(let i=0;i<d;i++){const a=t*d+i;a<e&&(s+=r[a])}const n=Math.min(1,s/d/255);this.prevHeights[t]=.7*this.prevHeights[t]+.3*(4+n*(u-4));const c=this.prevHeights[t],p=h+3*t,b=l-c/2;i.fillStyle=a,o(p,b,1,c,.5),i.fill()}};s()};formatDuration=t=>`${Math.floor(t/60)}:${(t%60).toString().padStart(2,"0")}`;render(){const t=60-this.recordingDuration;return r(a,{key:"ca20fe9dda634af0da1ef6da59880279f0775a9f"},r("div",{key:"dc3328cc1ef74e9683bc6c34e1d3279b2ca2ffa2",class:"wrapper"},r("div",{key:"b4a4d2799b8c541dc03679686107cc486373e76b",class:"glow"+("recording"===this.state?" visible":""),"aria-hidden":"true"}),r("div",{key:"f4fa8c638e68528dffd96db627bd80d4c7103143",class:"input-container"},"idle"===this.state?r("div",{class:"recording-row"},r("button",{type:"button",class:"submit-button",onClick:this.startRecording,disabled:this.disabled,"aria-label":"Start recording"},r("ai-icon",{name:"mic",size:16})),this.error&&r("div",{class:"error-message",role:"alert"},this.error)):r("div",{class:"recording-row"},r("button",{type:"button",class:"cancel-button",onClick:this.cancelRecording,"aria-label":"Cancel"},r("ai-icon",{name:"cancel",size:14})),r("div",{class:"timer"+(t<=5?" warning":"")},this.formatDuration(this.recordingDuration)),this.showWaveform&&r("canvas",{ref:t=>this.canvasRef=t,class:"waveform",height:"32"}),r("button",{type:"button",class:"submit-button"+(this.submitPulse?" pulse":""),onClick:this.stopRecording,"aria-label":"Send"},r("ai-icon",{name:"arrow-up",size:14}))))))}static get style(){return":host{display:block;width:100%}.wrapper{position:relative;padding:var(--Spacing-Sizes-lg, 12px)}.glow{position:absolute;bottom:20px;left:39px;right:39px;height:29px;border-radius:9999px;background:var(--ai-input-glow);filter:blur(20px);opacity:0;pointer-events:none;transition:opacity 0.2s ease}.glow.visible{opacity:0.9}.input-container{position:relative;background-color:var(--ai-bg-input);border-radius:var(--ai-input-border-radius, 9999px);border:1px solid var(--ai-border-default);box-shadow:var(--ai-shadow-sm);padding:var(--ai-input-padding, 12px);overflow:hidden}.recording-row{display:flex;align-items:center;gap:var(--ai-input-gap, 10px)}.cancel-button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;max-height:32px;padding:4px 8px;border-radius:32px;border:2px solid var(--ai-border-default);background-color:var(--ai-border-default);color:var(--ai-text-secondary);cursor:pointer;flex-shrink:0;transition:background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease}.cancel-button:hover{background-color:var(--ai-bg-surface);border-color:var(--ai-bg-surface)}.submit-button{display:inline-flex;align-items:center;justify-content:center;height:32px;width:32px;min-width:32px;padding:4px 8px;border-radius:32px;border:2px solid var(--ai-send-button-active-border, var(--ai-accent));background-color:var(--ai-send-button-active-bg, var(--ai-accent));color:var(--ai-accent-text);cursor:pointer;flex-shrink:0;transition:background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease}.submit-button:hover{background-color:var(--ai-send-button-active-hover-bg, var(--ai-accent));border-color:var(--ai-send-button-active-hover-border, var(--ai-accent))}@keyframes pulse-once{0%{transform:scale(1)}40%{transform:scale(1.18)}100%{transform:scale(1)}}.submit-button.pulse{animation:pulse-once 0.35s ease}.timer{font-size:13px;font-weight:500;color:var(--ai-text-secondary);min-width:36px;text-align:center;flex-shrink:0}.timer.warning{color:var(--ai-voice-timer-warning-color, var(--ai-danger-text))}.waveform{flex:1;min-width:0;height:32px}.error-message{position:absolute;bottom:-40px;left:50%;transform:translateX(-50%);background:var(--ai-voice-error-bg, var(--ai-danger-bg));color:var(--ai-voice-error-color, var(--ai-danger-text));font-size:11px;padding:6px 12px;border-radius:6px;white-space:nowrap;box-shadow:var(--ai-shadow-error);border:1px solid var(--ai-voice-error-border, var(--ai-danger-border));z-index:10}"}},[513,"ai-voice-input",{disabled:[4],showWaveform:[4,"show-waveform"],autoStart:[4,"auto-start"],errorText:[1,"error-text"],waveformColor:[1,"waveform-color"],state:[32],error:[32],recordingDuration:[32],submitPulse:[32]}]);function c(){"undefined"!=typeof customElements&&["ai-voice-input","ai-icon"].forEach((t=>{switch(t){case"ai-voice-input":customElements.get(o(t))||customElements.define(o(t),n);break;case"ai-icon":customElements.get(o(t))||s()}}))}export{n as V,c as d}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as e,H as t,c as i,h as r,d as a,t as n}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";const o=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.conversationSelect=i(this,"conversationSelect"),this.conversationDelete=i(this,"conversationDelete"),this.retryClick=i(this,"retryClick")}items=[];activeId="";loading=!1;emptyText="لا توجد محادثات";error=!1;errorText="تعذّر تحميل المحادثات";retryLabel="إعادة المحاولة";deletingId="";conversationSelect;conversationDelete;retryClick;renderIcon(e,t,i){const a=s[e];return a?r("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${i}" viewBox="${a.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${a.content}</svg>`}):null}formatRelativeTime(e){if(!e)return"";try{const t=new Date(e);if(isNaN(t.getTime()))return e;const i=Date.now()-t.getTime(),r=Math.floor(i/6e4),a=Math.floor(r/60),n=Math.floor(a/24),s="undefined"!=typeof document&&document.documentElement.lang||"ar",o=new Intl.RelativeTimeFormat(s,{numeric:"auto"});return r<1?o.format(0,"second"):r<60?o.format(-r,"minute"):a<24?o.format(-a,"hour"):o.format(-n,"day")}catch{return e}}renderRatingDots(e){return r("div",{class:"rating-dots","aria-label":e?`تقييم ${e} من 5`:void 0},Array.from({length:5},((t,i)=>r("span",{class:"rating-dot "+(i<(e??0)?"rating-dot--filled":"")}))))}renderSkeleton(){return r("div",{class:"skeleton-list"},[1,2,3,4].map((e=>r("div",{key:e,class:"skeleton-item"},r("div",{class:"skeleton-line skeleton-line--title"}),r("div",{class:"skeleton-line skeleton-line--preview"}),r("div",{class:"skeleton-line skeleton-line--meta"})))))}renderEmpty(){return r("div",{class:"empty-state"},r("div",{class:"empty-state__icon"},this.renderIcon("list",24,24)),r("p",{class:"empty-state__text"},this.emptyText))}renderError(){return r("div",{class:"error-state"},r("div",{class:"error-state__icon"},this.renderIcon("wifi-off",24,24)),r("p",{class:"error-state__text"},this.errorText),r("button",{class:"error-state__retry",onClick:()=>this.retryClick.emit()},this.renderIcon("reload",14,14),r("span",null,this.retryLabel)))}render(){const e=!this.loading&&!this.error&&0===this.items.length;return r(a,{key:"8cf17cedd5c41f0d6ffd2d06e557dc370041d1aa"},r("div",{key:"50f5eeb57228f55d72acf517ed5eeb5d79e13a4b",class:"conversation-list"},r("div",{key:"763f7cb557fb9abea75e08379d0ea9090b00ac1e",class:"list-scroll",role:"list"},this.loading?this.renderSkeleton():this.error?this.renderError():e?this.renderEmpty():this.items.map((e=>{const t=e.id===this.activeId;return r("div",{key:e.id,class:{"conv-item":!0,"conv-item--active":t},role:"listitem","aria-current":t?"true":void 0,onClick:()=>this.conversationSelect.emit(e.id)},r("div",{class:"conv-item__body"},r("p",{class:"conv-item__title"},e.title),r("p",{class:"conv-item__preview"},e.preview),r("div",{class:"conv-item__meta"},r("span",{class:"conv-item__time"},this.formatRelativeTime(e.timestamp)),null!=e.rating&&this.renderRatingDots(e.rating))),r("button",{class:{"delete-btn":!0,"delete-btn--deleting":this.deletingId===e.id},"aria-label":"حذف المحادثة",disabled:this.deletingId===e.id,onClick:t=>{t.stopPropagation(),this.deletingId!==e.id&&this.conversationDelete.emit(e.id)}},this.deletingId===e.id?r("span",{class:"delete-spinner","aria-label":"جاري الحذف"}):this.renderIcon("cancel",14,14)))})))))}static get style(){return":host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.conversation-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;background:var(--ai-bg-surface)}.list-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin;scrollbar-color:var(--ai-scrollbar-thumb) transparent}.list-scroll::-webkit-scrollbar{width:3px}.list-scroll::-webkit-scrollbar-track{background:transparent}.list-scroll::-webkit-scrollbar-thumb{background:var(--ai-scrollbar-thumb);border-radius:99px}.list-scroll::-webkit-scrollbar-thumb:hover{background:var(--ai-scrollbar-thumb-hover)}.conv-item{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:10px 10px 10px 6px;border-radius:10px;cursor:pointer;transition:background 0.15s;position:relative}.conv-item:hover{background:var(--ai-bg-card)}.conv-item--active{background:var(--ai-bg-card);box-shadow:var(--ai-shadow-sm)}.conv-item__body{flex:1;min-width:0}.conv-item__title{margin:0 0 3px;font-size:13px;font-weight:600;color:var(--ai-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-item__preview{margin:0 0 5px;font-size:12px;color:var(--ai-text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.conv-item__meta{display:flex;align-items:center;gap:8px}.conv-item__time{font-size:11px;color:var(--ai-text-muted);flex-shrink:0}.rating-dots{display:flex;align-items:center;gap:3px}.rating-dot{width:6px;height:6px;border-radius:50%;background:var(--ai-border-default);transition:background 0.15s}.rating-dot--filled{background:var(--ai-accent-warning, #ffaf44)}.delete-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--ai-text-muted);opacity:0;transition:opacity 0.15s, background 0.15s, color 0.15s;margin-block-start:2px}.conv-item:hover .delete-btn,.conv-item--active .delete-btn{opacity:1}.delete-btn:hover{background:var(--ai-status-danger-bg, rgba(239, 68, 68, 0.1));color:var(--ai-status-danger, #ef4444)}.delete-btn .icon-wrap{display:inline-flex;align-items:center;line-height:0}.delete-btn--deleting{opacity:1;cursor:default;pointer-events:none}.delete-spinner{display:block;width:12px;height:12px;border:2px solid var(--ai-border-default);border-top-color:var(--ai-text-muted);border-radius:50%;animation:delete-spin 0.7s linear infinite}@keyframes delete-spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;text-align:center}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ai-bg-card);color:var(--ai-text-muted);line-height:0}.empty-state__icon .icon-wrap{display:inline-flex;align-items:center;line-height:0}.empty-state__text{margin:0;font-size:13px;color:var(--ai-text-muted);line-height:1.4}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;text-align:center}.error-state__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ai-status-danger-bg, rgba(239, 68, 68, 0.1));color:var(--ai-status-danger, #ef4444);line-height:0}.error-state__icon .icon-wrap{display:inline-flex;align-items:center;line-height:0}.error-state__text{margin:0;font-size:13px;color:var(--ai-text-muted);line-height:1.4}.error-state__retry{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--ai-text-primary);background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:8px;cursor:pointer;transition:background 0.15s, box-shadow 0.15s}.error-state__retry:hover{box-shadow:var(--ai-shadow-sm)}.error-state__retry .icon-wrap{display:inline-flex;align-items:center;line-height:0}.skeleton-list{display:flex;flex-direction:column;gap:4px}.skeleton-item{padding:10px;border-radius:10px;display:flex;flex-direction:column;gap:6px}.skeleton-line{border-radius:6px;background:var(--ai-shimmer-gradient, linear-gradient(90deg, rgba(0, 0, 0, 0.06) 25%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.06) 75%));background-size:200% 100%;animation:shimmer 2s linear infinite;height:12px}.skeleton-line--title{width:65%;height:13px}.skeleton-line--preview{width:100%}.skeleton-line--meta{width:35%;height:10px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}"}},[513,"ai-conversation-list",{items:[16],activeId:[1,"active-id"],loading:[4],emptyText:[1,"empty-text"],error:[4],errorText:[1,"error-text"],retryLabel:[1,"retry-label"],deletingId:[1,"deleting-id"]}]);function l(){"undefined"!=typeof customElements&&["ai-conversation-list"].forEach((e=>{"ai-conversation-list"===e&&(customElements.get(n(e))||customElements.define(n(e),o))}))}export{o as A,l as d}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{p as a,H as d,h as r,d as e,t as i}from"./p-BPkf7wZg.js";const o=a(class extends d{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow()}noPadding=!1;noShadow=!1;render(){return r(e,{key:"849dbf8d8eac913c76e71a10cb9b30f9fda3c320"},r("div",{key:"5d9f75428e6d94cf2c3729698e87fd3185c20129",class:{card:!0,"card--no-padding":this.noPadding,"card--no-shadow":this.noShadow}},r("slot",{key:"149e85041e3318ea8e5dfa7ddf67e6236e49e6e8",name:"header"}),r("slot",{key:"774d0408e091a0603e5feac3bc5927cf698b5c8c"}),r("slot",{key:"be0157314b280caa5c9b4f038ca6ca4aec2f8c8f",name:"footer"})))}static get style(){return':host{--ai-card-border:1px solid var(--ai-border-default);--ai-card-radius:16px;--ai-card-padding:16px;--ai-card-gap:12px;--ai-card-shadow:var(--ai-shadow-sm);--ai-card-header-padding:16px;--ai-card-footer-padding:16px;display:block}.card{background:var(--ai-bg-card);border:var(--ai-card-border);border-radius:var(--ai-card-radius);padding:var(--ai-card-padding);box-shadow:var(--ai-card-shadow);box-sizing:border-box;overflow:hidden;color:var(--ai-text-primary);width:100%;display:flex;flex-direction:column;gap:var(--ai-card-gap);text-align:start;font-size:14px;line-height:20px}.card--no-padding{padding:0}.card--no-shadow{box-shadow:none}::slotted([slot="header"]){padding:var(--ai-card-header-padding);margin:calc(var(--ai-card-padding) * -1) calc(var(--ai-card-padding) * -1) 0}::slotted([slot="footer"]){padding:var(--ai-card-footer-padding);margin:0 calc(var(--ai-card-padding) * -1) calc(var(--ai-card-padding) * -1)}.card--no-padding ::slotted([slot="header"]){margin:0}.card--no-padding ::slotted([slot="footer"]){margin:0}'}},[769,"ai-card",{noPadding:[4,"no-padding"],noShadow:[4,"no-shadow"]}]);function c(){"undefined"!=typeof customElements&&["ai-card"].forEach((a=>{"ai-card"===a&&(customElements.get(i(a))||customElements.define(i(a),o))}))}export{o as A,c as d}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { r as registerInstance, h, H as Host } from './index-VMEwYfaX.js';
|
|
2
2
|
|
|
3
|
-
const aiCardCss = () => `:host{--ai-card-border:1px solid var(--ai-border-default);--ai-card-radius:16px;--ai-card-padding:16px;--ai-card-gap:12px;--ai-card-shadow:var(--ai-shadow-sm);display:block}.card{background:var(--ai-bg-card);border:var(--ai-card-border);border-radius:var(--ai-card-radius);padding:var(--ai-card-padding);box-shadow:var(--ai-card-shadow);box-sizing:border-box;overflow:hidden;color:var(--ai-text-primary);width:100%;display:flex;flex-direction:column;gap:var(--ai-card-gap);text-align:start;font-size:14px;line-height:20px}.card--no-padding{padding:0}.card--no-shadow{box-shadow:none}`;
|
|
3
|
+
const aiCardCss = () => `:host{--ai-card-border:1px solid var(--ai-border-default);--ai-card-radius:16px;--ai-card-padding:16px;--ai-card-gap:12px;--ai-card-shadow:var(--ai-shadow-sm);--ai-card-header-padding:16px;--ai-card-footer-padding:16px;display:block}.card{background:var(--ai-bg-card);border:var(--ai-card-border);border-radius:var(--ai-card-radius);padding:var(--ai-card-padding);box-shadow:var(--ai-card-shadow);box-sizing:border-box;overflow:hidden;color:var(--ai-text-primary);width:100%;display:flex;flex-direction:column;gap:var(--ai-card-gap);text-align:start;font-size:14px;line-height:20px}.card--no-padding{padding:0}.card--no-shadow{box-shadow:none}::slotted([slot="header"]){padding:var(--ai-card-header-padding);margin:calc(var(--ai-card-padding) * -1) calc(var(--ai-card-padding) * -1) 0}::slotted([slot="footer"]){padding:var(--ai-card-footer-padding);margin:0 calc(var(--ai-card-padding) * -1) calc(var(--ai-card-padding) * -1)}.card--no-padding ::slotted([slot="header"]){margin:0}.card--no-padding ::slotted([slot="footer"]){margin:0}`;
|
|
4
4
|
|
|
5
5
|
const AiCard = class {
|
|
6
6
|
constructor(hostRef) {
|
|
@@ -15,7 +15,7 @@ const AiCard = class {
|
|
|
15
15
|
card: true,
|
|
16
16
|
'card--no-padding': this.noPadding,
|
|
17
17
|
'card--no-shadow': this.noShadow,
|
|
18
|
-
} }, h("slot", { key: '
|
|
18
|
+
} }, h("slot", { key: '149e85041e3318ea8e5dfa7ddf67e6236e49e6e8', name: "header" }), h("slot", { key: '774d0408e091a0603e5feac3bc5927cf698b5c8c' }), h("slot", { key: 'be0157314b280caa5c9b4f038ca6ca4aec2f8c8f', name: "footer" }))));
|
|
19
19
|
}
|
|
20
20
|
};
|
|
21
21
|
AiCard.style = aiCardCss();
|
|
@@ -16,6 +16,7 @@ const AiChatHeader = class {
|
|
|
16
16
|
this.openExternal = createEvent(this, "openExternal");
|
|
17
17
|
this.conversationSelect = createEvent(this, "conversationSelect");
|
|
18
18
|
this.conversationDelete = createEvent(this, "conversationDelete");
|
|
19
|
+
this.conversationRetry = createEvent(this, "conversationRetry");
|
|
19
20
|
}
|
|
20
21
|
get el() { return getElement(this); }
|
|
21
22
|
/** Layout variant */
|
|
@@ -42,6 +43,16 @@ const AiChatHeader = class {
|
|
|
42
43
|
conversationActiveId = '';
|
|
43
44
|
/** Conversation list: show skeleton loading state */
|
|
44
45
|
conversationLoading = false;
|
|
46
|
+
/** Conversation list: show error state */
|
|
47
|
+
conversationError = false;
|
|
48
|
+
/** Conversation list: error message text */
|
|
49
|
+
conversationErrorText = 'تعذّر تحميل المحادثات';
|
|
50
|
+
/** Conversation list: retry button label */
|
|
51
|
+
conversationRetryLabel = 'إعادة المحاولة';
|
|
52
|
+
/** Conversation list: empty state label */
|
|
53
|
+
conversationEmptyText = 'لا توجد محادثات';
|
|
54
|
+
/** Conversation list: ID of the conversation currently being deleted — shows a spinner on that item */
|
|
55
|
+
conversationDeletingId = '';
|
|
45
56
|
/** Show a shimmer skeleton in place of the conversation title (e.g. while loading conversation) */
|
|
46
57
|
titleLoading = false;
|
|
47
58
|
avatarError = false;
|
|
@@ -75,6 +86,8 @@ const AiChatHeader = class {
|
|
|
75
86
|
conversationSelect;
|
|
76
87
|
/** Fired when a conversation delete button is clicked */
|
|
77
88
|
conversationDelete;
|
|
89
|
+
/** Fired when the retry button is clicked in the conversation list error state */
|
|
90
|
+
conversationRetry;
|
|
78
91
|
handleDocumentClick(event) {
|
|
79
92
|
if (this.dropdownOpen && !this.el.contains(event.target)) {
|
|
80
93
|
this.dropdownOpen = false;
|
|
@@ -148,10 +161,14 @@ const AiChatHeader = class {
|
|
|
148
161
|
e.stopPropagation();
|
|
149
162
|
this.conversationDelete.emit(e.detail);
|
|
150
163
|
};
|
|
164
|
+
handleConversationRetry = (e) => {
|
|
165
|
+
e.stopPropagation();
|
|
166
|
+
this.conversationRetry.emit();
|
|
167
|
+
};
|
|
151
168
|
renderConversationDropdown() {
|
|
152
169
|
if (!this.dropdownOpen || this.mode !== 'agent')
|
|
153
170
|
return null;
|
|
154
|
-
return (h("div", { class: "conversation-dropdown" }, h("ai-conversation-list", { items: this.conversationItems, activeId: this.conversationActiveId, loading: this.conversationLoading, onConversationSelect: this.handleConversationSelect, onConversationDelete: this.handleConversationDelete })));
|
|
171
|
+
return (h("div", { class: "conversation-dropdown" }, h("ai-conversation-list", { items: this.conversationItems, activeId: this.conversationActiveId, loading: this.conversationLoading, error: this.conversationError, errorText: this.conversationErrorText, retryLabel: this.conversationRetryLabel, emptyText: this.conversationEmptyText, deletingId: this.conversationDeletingId, onConversationSelect: this.handleConversationSelect, onConversationDelete: this.handleConversationDelete, onRetryClick: this.handleConversationRetry })));
|
|
155
172
|
}
|
|
156
173
|
renderAgentMode() {
|
|
157
174
|
return [
|
|
@@ -180,7 +197,7 @@ const AiChatHeader = class {
|
|
|
180
197
|
];
|
|
181
198
|
}
|
|
182
199
|
render() {
|
|
183
|
-
return (h(Host, { key: '
|
|
200
|
+
return (h(Host, { key: '80236bfcbfac98d3efa3955f03aab4ef68c9cfea' }, h("div", { key: 'dcc4142bba1d5f07782dbc7b0a3ec287e0154223', class: "header-wrapper" }, h("div", { key: 'ca0ff9a2946cead0b86cb82390624894ed414378', class: "header-container" }, this.mode === 'agent' ? this.renderAgentMode() : this.mode === 'human' ? this.renderHumanMode() : this.renderBrowserMode()), this.renderConversationDropdown())));
|
|
184
201
|
}
|
|
185
202
|
};
|
|
186
203
|
AiChatHeader.style = aiChatHeaderCss();
|
|
@@ -1595,7 +1595,7 @@ const AiChatMessage = class {
|
|
|
1595
1595
|
} })), h("slot", null), showActions && this.renderActionsBar()), (this.agentName || this.timestamp) && (h("div", { class: "agent-info" }, this.agentName && h("span", { class: "agent-info-name" }, this.agentName), this.agentName && this.timestamp && this.renderIcon('eclipse', 10), this.timestamp && h("span", { class: "agent-info-time" }, this.getRelativeTime()))))));
|
|
1596
1596
|
}
|
|
1597
1597
|
render() {
|
|
1598
|
-
return h(Host, { key: '
|
|
1598
|
+
return h(Host, { key: 'f8a49971896742ae952d84efb1527ed0db440876' }, this.role === 'user' ? this.renderUserMessage() : this.renderAgentMessage());
|
|
1599
1599
|
}
|
|
1600
1600
|
};
|
|
1601
1601
|
AiChatMessage.style = aiChatMessageCss();
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { r as registerInstance, c as createEvent, h, H as Host } from './index-VMEwYfaX.js';
|
|
2
2
|
import { i as iconRegistry } from './icon-registry-DlD8m3rf.js';
|
|
3
3
|
|
|
4
|
-
const aiConversationListCss = () => `:host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.conversation-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;background:var(--ai-bg-surface)}.list-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin;scrollbar-color:var(--ai-scrollbar-thumb) transparent}.list-scroll::-webkit-scrollbar{width:3px}.list-scroll::-webkit-scrollbar-track{background:transparent}.list-scroll::-webkit-scrollbar-thumb{background:var(--ai-scrollbar-thumb);border-radius:99px}.list-scroll::-webkit-scrollbar-thumb:hover{background:var(--ai-scrollbar-thumb-hover)}.conv-item{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:10px 10px 10px 6px;border-radius:10px;cursor:pointer;transition:background 0.15s;position:relative}.conv-item:hover{background:var(--ai-bg-card)}.conv-item--active{background:var(--ai-bg-card);box-shadow:var(--ai-shadow-sm)}.conv-item__body{flex:1;min-width:0}.conv-item__title{margin:0 0 3px;font-size:13px;font-weight:600;color:var(--ai-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-item__preview{margin:0 0 5px;font-size:12px;color:var(--ai-text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.conv-item__meta{display:flex;align-items:center;gap:8px}.conv-item__time{font-size:11px;color:var(--ai-text-muted);flex-shrink:0}.rating-dots{display:flex;align-items:center;gap:3px}.rating-dot{width:6px;height:6px;border-radius:50%;background:var(--ai-border-default);transition:background 0.15s}.rating-dot--filled{background:var(--ai-accent-warning, #ffaf44)}.delete-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--ai-text-muted);opacity:0;transition:opacity 0.15s, background 0.15s, color 0.15s;margin-block-start:2px}.conv-item:hover .delete-btn,.conv-item--active .delete-btn{opacity:1}.delete-btn:hover{background:var(--ai-status-danger-bg, rgba(239, 68, 68, 0.1));color:var(--ai-status-danger, #ef4444)}.delete-btn .icon-wrap{display:inline-flex;align-items:center;line-height:0}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;text-align:center}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ai-bg-card);color:var(--ai-text-muted);line-height:0}.empty-state__icon .icon-wrap{display:inline-flex;align-items:center;line-height:0}.empty-state__text{margin:0;font-size:13px;color:var(--ai-text-muted);line-height:1.4}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;text-align:center}.error-state__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ai-status-danger-bg, rgba(239, 68, 68, 0.1));color:var(--ai-status-danger, #ef4444);line-height:0}.error-state__icon .icon-wrap{display:inline-flex;align-items:center;line-height:0}.error-state__text{margin:0;font-size:13px;color:var(--ai-text-muted);line-height:1.4}.error-state__retry{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--ai-text-primary);background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:8px;cursor:pointer;transition:background 0.15s, box-shadow 0.15s}.error-state__retry:hover{box-shadow:var(--ai-shadow-sm)}.error-state__retry .icon-wrap{display:inline-flex;align-items:center;line-height:0}.skeleton-list{display:flex;flex-direction:column;gap:4px}.skeleton-item{padding:10px;border-radius:10px;display:flex;flex-direction:column;gap:6px}.skeleton-line{border-radius:6px;background:var(--ai-shimmer-gradient, linear-gradient(90deg, rgba(0, 0, 0, 0.06) 25%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.06) 75%));background-size:200% 100%;animation:shimmer 2s linear infinite;height:12px}.skeleton-line--title{width:65%;height:13px}.skeleton-line--preview{width:100%}.skeleton-line--meta{width:35%;height:10px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}`;
|
|
4
|
+
const aiConversationListCss = () => `:host{display:flex;flex-direction:column;height:100%;min-height:0;overflow:hidden}.conversation-list{display:flex;flex-direction:column;gap:8px;flex:1;min-height:0;background:var(--ai-bg-surface)}.list-scroll{flex:1;min-height:0;overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin;scrollbar-color:var(--ai-scrollbar-thumb) transparent}.list-scroll::-webkit-scrollbar{width:3px}.list-scroll::-webkit-scrollbar-track{background:transparent}.list-scroll::-webkit-scrollbar-thumb{background:var(--ai-scrollbar-thumb);border-radius:99px}.list-scroll::-webkit-scrollbar-thumb:hover{background:var(--ai-scrollbar-thumb-hover)}.conv-item{display:flex;align-items:flex-start;gap:6px;margin-top:6px;padding:10px 10px 10px 6px;border-radius:10px;cursor:pointer;transition:background 0.15s;position:relative}.conv-item:hover{background:var(--ai-bg-card)}.conv-item--active{background:var(--ai-bg-card);box-shadow:var(--ai-shadow-sm)}.conv-item__body{flex:1;min-width:0}.conv-item__title{margin:0 0 3px;font-size:13px;font-weight:600;color:var(--ai-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.conv-item__preview{margin:0 0 5px;font-size:12px;color:var(--ai-text-muted);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.conv-item__meta{display:flex;align-items:center;gap:8px}.conv-item__time{font-size:11px;color:var(--ai-text-muted);flex-shrink:0}.rating-dots{display:flex;align-items:center;gap:3px}.rating-dot{width:6px;height:6px;border-radius:50%;background:var(--ai-border-default);transition:background 0.15s}.rating-dot--filled{background:var(--ai-accent-warning, #ffaf44)}.delete-btn{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;padding:0;background:transparent;border:none;border-radius:6px;cursor:pointer;color:var(--ai-text-muted);opacity:0;transition:opacity 0.15s, background 0.15s, color 0.15s;margin-block-start:2px}.conv-item:hover .delete-btn,.conv-item--active .delete-btn{opacity:1}.delete-btn:hover{background:var(--ai-status-danger-bg, rgba(239, 68, 68, 0.1));color:var(--ai-status-danger, #ef4444)}.delete-btn .icon-wrap{display:inline-flex;align-items:center;line-height:0}.delete-btn--deleting{opacity:1;cursor:default;pointer-events:none}.delete-spinner{display:block;width:12px;height:12px;border:2px solid var(--ai-border-default);border-top-color:var(--ai-text-muted);border-radius:50%;animation:delete-spin 0.7s linear infinite}@keyframes delete-spin{to{transform:rotate(360deg)}}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;text-align:center}.empty-state__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ai-bg-card);color:var(--ai-text-muted);line-height:0}.empty-state__icon .icon-wrap{display:inline-flex;align-items:center;line-height:0}.empty-state__text{margin:0;font-size:13px;color:var(--ai-text-muted);line-height:1.4}.error-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:40px 16px;text-align:center}.error-state__icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px;background:var(--ai-status-danger-bg, rgba(239, 68, 68, 0.1));color:var(--ai-status-danger, #ef4444);line-height:0}.error-state__icon .icon-wrap{display:inline-flex;align-items:center;line-height:0}.error-state__text{margin:0;font-size:13px;color:var(--ai-text-muted);line-height:1.4}.error-state__retry{display:inline-flex;align-items:center;gap:4px;margin-top:4px;padding:6px 14px;font-size:12px;font-weight:600;color:var(--ai-text-primary);background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:8px;cursor:pointer;transition:background 0.15s, box-shadow 0.15s}.error-state__retry:hover{box-shadow:var(--ai-shadow-sm)}.error-state__retry .icon-wrap{display:inline-flex;align-items:center;line-height:0}.skeleton-list{display:flex;flex-direction:column;gap:4px}.skeleton-item{padding:10px;border-radius:10px;display:flex;flex-direction:column;gap:6px}.skeleton-line{border-radius:6px;background:var(--ai-shimmer-gradient, linear-gradient(90deg, rgba(0, 0, 0, 0.06) 25%, rgba(0, 0, 0, 0.1) 50%, rgba(0, 0, 0, 0.06) 75%));background-size:200% 100%;animation:shimmer 2s linear infinite;height:12px}.skeleton-line--title{width:65%;height:13px}.skeleton-line--preview{width:100%}.skeleton-line--meta{width:35%;height:10px}@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}`;
|
|
5
5
|
|
|
6
6
|
const AiConversationList = class {
|
|
7
7
|
constructor(hostRef) {
|
|
@@ -24,6 +24,8 @@ const AiConversationList = class {
|
|
|
24
24
|
errorText = 'تعذّر تحميل المحادثات';
|
|
25
25
|
/** Retry button label for error state */
|
|
26
26
|
retryLabel = 'إعادة المحاولة';
|
|
27
|
+
/** ID of the conversation currently being deleted — shows a spinner on that item */
|
|
28
|
+
deletingId = '';
|
|
27
29
|
conversationSelect;
|
|
28
30
|
conversationDelete;
|
|
29
31
|
retryClick;
|
|
@@ -74,7 +76,7 @@ const AiConversationList = class {
|
|
|
74
76
|
}
|
|
75
77
|
render() {
|
|
76
78
|
const showEmpty = !this.loading && !this.error && this.items.length === 0;
|
|
77
|
-
return (h(Host, { key: '
|
|
79
|
+
return (h(Host, { key: '8cf17cedd5c41f0d6ffd2d06e557dc370041d1aa' }, h("div", { key: '50f5eeb57228f55d72acf517ed5eeb5d79e13a4b', class: "conversation-list" }, h("div", { key: '763f7cb557fb9abea75e08379d0ea9090b00ac1e', class: "list-scroll", role: "list" }, this.loading
|
|
78
80
|
? this.renderSkeleton()
|
|
79
81
|
: this.error
|
|
80
82
|
? this.renderError()
|
|
@@ -82,10 +84,14 @@ const AiConversationList = class {
|
|
|
82
84
|
? this.renderEmpty()
|
|
83
85
|
: this.items.map(item => {
|
|
84
86
|
const isActive = item.id === this.activeId;
|
|
85
|
-
return (h("div", { key: item.id, class: { 'conv-item': true, 'conv-item--active': isActive }, role: "listitem", "aria-current": isActive ? 'true' : undefined, onClick: () => this.conversationSelect.emit(item.id) }, h("div", { class: "conv-item__body" }, h("p", { class: "conv-item__title" }, item.title), h("p", { class: "conv-item__preview" }, item.preview), h("div", { class: "conv-item__meta" }, h("span", { class: "conv-item__time" }, this.formatRelativeTime(item.timestamp)), item.rating != null && this.renderRatingDots(item.rating))), h("button", { class:
|
|
87
|
+
return (h("div", { key: item.id, class: { 'conv-item': true, 'conv-item--active': isActive }, role: "listitem", "aria-current": isActive ? 'true' : undefined, onClick: () => this.conversationSelect.emit(item.id) }, h("div", { class: "conv-item__body" }, h("p", { class: "conv-item__title" }, item.title), h("p", { class: "conv-item__preview" }, item.preview), h("div", { class: "conv-item__meta" }, h("span", { class: "conv-item__time" }, this.formatRelativeTime(item.timestamp)), item.rating != null && this.renderRatingDots(item.rating))), h("button", { class: { 'delete-btn': true, 'delete-btn--deleting': this.deletingId === item.id }, "aria-label": "\u062D\u0630\u0641 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629", disabled: this.deletingId === item.id, onClick: e => {
|
|
86
88
|
e.stopPropagation();
|
|
89
|
+
if (this.deletingId === item.id)
|
|
90
|
+
return;
|
|
87
91
|
this.conversationDelete.emit(item.id);
|
|
88
|
-
} }, this.
|
|
92
|
+
} }, this.deletingId === item.id
|
|
93
|
+
? h("span", { class: "delete-spinner", "aria-label": "\u062C\u0627\u0631\u064A \u0627\u0644\u062D\u0630\u0641" })
|
|
94
|
+
: this.renderIcon('cancel', 14, 14))));
|
|
89
95
|
})))));
|
|
90
96
|
}
|
|
91
97
|
};
|
|
@@ -23,7 +23,7 @@ const AiConversationSummary = class {
|
|
|
23
23
|
return h("span", { class: "icon-wrap", innerHTML: svg });
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
|
-
return (h(Host, { key: '
|
|
26
|
+
return (h(Host, { key: 'f69a767b9111f035799fbad9e26f6cd278d2cd5e' }, h("div", { key: '2b598f0ebcf118c75d58a92173d31250b7b71aaa', class: "summary-card" }, h("div", { key: 'fba36d83ef95feaaff7a88847c2ad8eed7b2a009', class: "summary-header" }, h("div", { key: 'f2840d65175456326a9f2c2d389b788f4dfc6622', class: "sparkle-avatar" }, this.renderIcon('sparkle', 14, 14)), h("span", { key: 'e90eca9ddf0b1b610a05d3a68fba69853c3c87e5', class: "summary-title" }, this.conversation), h("div", { key: 'ab9dd453aab0b04b00493dac0a7b5ad74b194190', class: "summary-badges" }, this.messageCount > 0 && (h("span", { key: 'e5664fb004a19d72334f157121125a01ff09f56a', class: "badge" }, this.renderIcon('list', 12, 12), this.messageCount)), this.language && (h("span", { key: 'af0784ee45ed3169514d198dc1236e781fe48ac6', class: "badge lang-badge" }, this.language)))), this.summary && (h("p", { key: 'c0c2be2118abbe62a31adc65e6fa8907f155bb49', class: "summary-body", ref: el => el && (el.textContent = this.summary) })), h("div", { key: '61c139e33e9e247508e830e319fc9cc014451526', class: "summary-slot" }, h("slot", { key: '5ebbbdb3319c6a8ca9f8e98a58c6336e7a25c159' })))));
|
|
27
27
|
}
|
|
28
28
|
};
|
|
29
29
|
AiConversationSummary.style = aiConversationSummaryCss();
|
|
@@ -35,7 +35,7 @@ const AiInChatBrowser = class {
|
|
|
35
35
|
};
|
|
36
36
|
render() {
|
|
37
37
|
const displayTitle = this.getDisplayTitle();
|
|
38
|
-
return (h(Host, { key: '
|
|
38
|
+
return (h(Host, { key: 'd79ede7857bc7edc13a4c8cdbbf5b4f7312d9766' }, h("div", { key: '57ccda6f9670e9ae2ca76b768f31ecf62b9ec8e9', class: "browser-content" }, this.isLoading && (h("div", { key: 'f868050d91fc24f9a13a760d34805b6a443ff865', class: "browser-loading" }, h("div", { key: 'b90a07a822a1978875fd5590783d9e9a6ac319b9', class: "loading-bar" }))), this.hasError ? (h("div", { class: "browser-error" }, h("span", { class: "error-text" }, "\u062A\u0639\u0630\u0651\u0631 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0635\u0641\u062D\u0629"), h("span", { class: "error-url" }, this.url))) : (this.url && (h("iframe", { class: "browser-iframe", src: this.url, onLoad: this.handleIframeLoad, onError: this.handleIframeError, sandbox: "allow-scripts allow-same-origin allow-forms allow-popups", referrerPolicy: "no-referrer", title: displayTitle }))))));
|
|
39
39
|
}
|
|
40
40
|
static get watchers() { return {
|
|
41
41
|
"url": [{
|
|
@@ -24,7 +24,7 @@ const AiLink = class {
|
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
26
|
const rel = this.rel || (this.target === '_blank' ? 'noopener noreferrer' : undefined);
|
|
27
|
-
return (h(Host, { key: '
|
|
27
|
+
return (h(Host, { key: 'e0e34a4c2a3534a3b449bac613c6f7cb512420d3' }, h("span", { key: '5776ddc64676ecaabb4f36a0e9833026dc730c23', class: "link__label" }, this.label, h("slot", { key: '436a334a51bea342b839d5fad9743aaf6b66a94d' })), h("a", { key: '3880c1429a8a24a9dee700c9f0592ac673ce68f0', class: "link", href: this.href, target: this.target, rel: rel }, this.renderShareIcon())));
|
|
28
28
|
}
|
|
29
29
|
};
|
|
30
30
|
AiLink.style = aiLinkCss();
|
|
@@ -38,7 +38,7 @@ const AiRouteDecision = class {
|
|
|
38
38
|
this.routeExpand.emit(this._expanded);
|
|
39
39
|
}
|
|
40
40
|
render() {
|
|
41
|
-
return (h(Host, { key: '
|
|
41
|
+
return (h(Host, { key: 'f12718d142cff27d62c0a0299b029be2e2d88b86' }, h("div", { key: '4fcef90f887300c4884cd981737bf8ce8b796eca', class: `route-pill ${this._expanded ? 'expanded' : ''}` }, h("button", { key: '09eadc07b41b96fb56b4bcd937165de92507ac84', class: "route-pill-main", onClick: () => this.handleToggle() }, h("span", { key: 'd13744692a45c74976f89b582142ae09339015f5', class: "route-icon" }, this.renderIcon('route', 14, 14)), h("span", { key: '4f995cc09a72ba74310df17cf78735c27a910314', class: "agent-label" }, this.agentIcon && h("span", { key: '272dd78f38bbbb4ef845b7a41530d205368faf7e', class: "agent-emoji", "aria-hidden": "true" }, this.agentIcon), this.selectedAgent), this.confidence > 0 && (h("span", { key: 'a061317c9d5b8dad243dce0bb80e927eae04eb3d', class: "confidence-badge" }, this.confidence, "%")), h("span", { key: '4342bdf38aa85a5c5d6bd054504c91bccc7901e9', class: `expand-icon ${this._expanded ? 'expanded' : ''}` }, this.renderIcon('arrow-right', 12, 12))), this._expanded && (h("div", { key: 'ab5340148e832baafdd38e17a748a52b83b25c96', class: "route-details" }, this.reason && h("p", { key: '7854838ea405c5fdb5ebe11fb3df36a9898be445', class: "reason-text" }, this.reason), this.confidence > 0 && (h("div", { key: 'baf946426ad7cda94d2acfbb9f8945b5b40a823c', class: "confidence-bar-wrap" }, h("div", { key: 'a6e08f412706ce18e16030dd4d475d57befdd9e7', class: "confidence-bar", style: { width: `${this.confidence}%` } }))), this.detectedLanguage && (h("div", { key: '58af2dbca56082dcf2910cc44ac553d6f2af015a', class: "meta-row" }, this.renderIcon('list', 12, 12), h("span", { key: '63517ed8802764542de330897372c6a01348d0a6', class: "lang-chip" }, this.detectedLanguage))))))));
|
|
42
42
|
}
|
|
43
43
|
};
|
|
44
44
|
AiRouteDecision.style = aiRouteDecisionCss();
|
|
@@ -18,10 +18,10 @@ const AiSuggestion = class {
|
|
|
18
18
|
this.suggestionClick.emit(this.label);
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
|
-
return (h(Host, { key: '
|
|
21
|
+
return (h(Host, { key: 'c2eb388d152586755e9cc10ac57b519e8ff84b4d' }, h("button", { key: '0b9f6ec6d8c57365e2c29bfe1bfc33993d3cb498', class: {
|
|
22
22
|
chip: true,
|
|
23
23
|
'chip--disabled': this.disabled,
|
|
24
|
-
}, disabled: this.disabled, onClick: () => this.handleClick() }, h("span", { key: '
|
|
24
|
+
}, disabled: this.disabled, onClick: () => this.handleClick() }, h("span", { key: 'd4fabc4c8176cd6837e609bad369e8edfc779855', class: "chip__label" }, this.label, h("slot", { key: 'a1074453e53982f10fd2115c2b15d7a7b20eda07' })))));
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
AiSuggestion.style = aiSuggestionCss();
|
|
@@ -277,7 +277,7 @@ const VoiceInput = class {
|
|
|
277
277
|
};
|
|
278
278
|
render() {
|
|
279
279
|
const remaining = MAX_RECORDING_TIME - this.recordingDuration;
|
|
280
|
-
return (h(Host, { key: '
|
|
280
|
+
return (h(Host, { key: 'ca20fe9dda634af0da1ef6da59880279f0775a9f' }, h("div", { key: 'dc3328cc1ef74e9683bc6c34e1d3279b2ca2ffa2', class: "wrapper" }, h("div", { key: 'b4a4d2799b8c541dc03679686107cc486373e76b', class: `glow${this.state === 'recording' ? ' visible' : ''}`, "aria-hidden": "true" }), h("div", { key: 'f4fa8c638e68528dffd96db627bd80d4c7103143', class: "input-container" }, this.state === 'idle' ? (h("div", { class: "recording-row" }, h("button", { type: "button", class: "submit-button", onClick: this.startRecording, disabled: this.disabled, "aria-label": "Start recording" }, h("ai-icon", { name: "mic", size: 16 })), this.error && (h("div", { class: "error-message", role: "alert" }, this.error)))) : (h("div", { class: "recording-row" }, h("button", { type: "button", class: "cancel-button", onClick: this.cancelRecording, "aria-label": "Cancel" }, h("ai-icon", { name: "cancel", size: 14 })), h("div", { class: `timer${remaining <= 5 ? ' warning' : ''}` }, this.formatDuration(this.recordingDuration)), this.showWaveform && h("canvas", { ref: el => (this.canvasRef = el), class: "waveform", height: "32" }), h("button", { type: "button", class: `submit-button${this.submitPulse ? ' pulse' : ''}`, onClick: this.stopRecording, "aria-label": "Send" }, h("ai-icon", { name: "arrow-up", size: 14 }))))))));
|
|
281
281
|
}
|
|
282
282
|
};
|
|
283
283
|
VoiceInput.style = aiVoiceInputCss();
|
package/dist/esm/loader.js
CHANGED
|
@@ -4,7 +4,7 @@ export { s as setNonce } from './index-VMEwYfaX.js';
|
|
|
4
4
|
const defineCustomElements = async (win, options) => {
|
|
5
5
|
if (typeof window === 'undefined') return undefined;
|
|
6
6
|
await globalScripts();
|
|
7
|
-
return bootstrapLazy([["ai-message-input",[[513,"ai-message-input",{"placeholder":[1],"disabled":[4],"showVoiceButton":[4,"show-voice-button"],"maxLength":[2,"max-length"],"isRecording":[4,"is-recording"],"inputValue":[32],"showVoiceRecorder":[32],"isMultiline":[32],"setInputValue":[64]},null,{"isRecording":[{"onIsRecordingChange":0}]}]]],["ai-rating",[[513,"ai-rating",{"question":[1],"subtitle":[1],"successMessage":[1,"success-message"],"value":[1026],"disabled":[4],"hovered":[32],"submitted":[32]}]]],["ai-chat-header",[[513,"ai-chat-header",{"mode":[1],"conversation":[1],"agentName":[1,"agent-name"],"agentStatus":[1,"agent-status"],"agentAvatar":[1,"agent-avatar"],"showBack":[4,"show-back"],"statusIndicator":[1,"status-indicator"],"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"conversationItems":[16],"conversationActiveId":[1,"conversation-active-id"],"conversationLoading":[4,"conversation-loading"],"titleLoading":[4,"title-loading"],"avatarError":[32],"dropdownOpen":[32],"isFloating":[32]},[[4,"click","handleDocumentClick"]]]]],["ai-agent-error",[[513,"ai-agent-error",{"headline":[1],"message":[1],"errorCode":[1,"error-code"],"retryable":[4],"retryLabel":[1,"retry-label"],"dismissible":[4]}]]],["ai-chat-container",[[769,"ai-chat-container",{"isOpen":[4,"is-open"],"position":[1537],"width":[1],"autoScroll":[4,"auto-scroll"],"showWatermark":[4,"show-watermark"],"floatHeight":[1,"float-height"],"theme":[1],"loading":[4],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"],"direction":[513],"isMobile":[32],"floatLeft":[32],"floatTop":[32],"scrollToBottom":[64],"cyclePosition":[64]},[[0,"headerPositionClick","handleHeaderPositionClick"]],{"isOpen":[{"isOpenChanged":0}],"position":[{"positionChanged":0}]}]]],["ai-chat-message",[[769,"ai-chat-message",{"role":[1],"content":[1],"format":[1],"agentName":[1,"agent-name"],"timestamp":[1],"showActions":[4,"show-actions"],"enableRegenerate":[4,"enable-regenerate"],"feedbackValue":[1025,"feedback-value"],"copySuccess":[32]}]]],["ai-conversation-summary",[[769,"ai-conversation-summary",{"conversation":[1],"summary":[1],"messageCount":[2,"message-count"],"language":[1]}]]],["ai-in-chat-browser",[[513,"ai-in-chat-browser",{"url":[1],"pageTitle":[1,"page-title"],"isLoading":[32],"hasError":[32]},null,{"url":[{"onUrlChange":0}]}]]],["ai-link",[[769,"ai-link",{"label":[1],"href":[1],"target":[1],"rel":[1]}]]],["ai-loading",[[513,"ai-loading",{"mode":[1],"statusText":[1,"status-text"],"thinkingSubtext":[1,"thinking-subtext"],"steps":[16],"headerTitle":[1,"header-title"],"currentAgent":[1,"current-agent"],"showAgentBadges":[4,"show-agent-badges"],"expanded":[1028],"collapsible":[4],"_expanded":[32]}]]],["ai-route-decision",[[513,"ai-route-decision",{"selectedAgent":[1,"selected-agent"],"agentIcon":[1,"agent-icon"],"reason":[1],"confidence":[2],"detectedLanguage":[1,"detected-language"],"expanded":[1028],"_expanded":[32]}]]],["ai-suggestion",[[769,"ai-suggestion",{"label":[1],"disabled":[4]}]]],["ai-voice-input",[[513,"ai-voice-input",{"disabled":[4],"showWaveform":[4,"show-waveform"],"autoStart":[4,"auto-start"],"errorText":[1,"error-text"],"waveformColor":[1,"waveform-color"],"state":[32],"error":[32],"recordingDuration":[32],"submitPulse":[32]}]]],["ai-card",[[769,"ai-card",{"noPadding":[4,"no-padding"],"noShadow":[4,"no-shadow"]}]]],["ai-conversation-list",[[513,"ai-conversation-list",{"items":[16],"activeId":[1,"active-id"],"loading":[4],"emptyText":[1,"empty-text"],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"]}]]],["ai-icon",[[513,"ai-icon",{"name":[1],"size":[2]}]]]], options);
|
|
7
|
+
return bootstrapLazy([["ai-message-input",[[513,"ai-message-input",{"placeholder":[1],"disabled":[4],"showVoiceButton":[4,"show-voice-button"],"maxLength":[2,"max-length"],"isRecording":[4,"is-recording"],"inputValue":[32],"showVoiceRecorder":[32],"isMultiline":[32],"setInputValue":[64]},null,{"isRecording":[{"onIsRecordingChange":0}]}]]],["ai-rating",[[513,"ai-rating",{"question":[1],"subtitle":[1],"successMessage":[1,"success-message"],"value":[1026],"disabled":[4],"hovered":[32],"submitted":[32]}]]],["ai-chat-header",[[513,"ai-chat-header",{"mode":[1],"conversation":[1],"agentName":[1,"agent-name"],"agentStatus":[1,"agent-status"],"agentAvatar":[1,"agent-avatar"],"showBack":[4,"show-back"],"statusIndicator":[1,"status-indicator"],"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"conversationItems":[16],"conversationActiveId":[1,"conversation-active-id"],"conversationLoading":[4,"conversation-loading"],"conversationError":[4,"conversation-error"],"conversationErrorText":[1,"conversation-error-text"],"conversationRetryLabel":[1,"conversation-retry-label"],"conversationEmptyText":[1,"conversation-empty-text"],"conversationDeletingId":[1,"conversation-deleting-id"],"titleLoading":[4,"title-loading"],"avatarError":[32],"dropdownOpen":[32],"isFloating":[32]},[[4,"click","handleDocumentClick"]]]]],["ai-agent-error",[[513,"ai-agent-error",{"headline":[1],"message":[1],"errorCode":[1,"error-code"],"retryable":[4],"retryLabel":[1,"retry-label"],"dismissible":[4]}]]],["ai-chat-container",[[769,"ai-chat-container",{"isOpen":[4,"is-open"],"position":[1537],"width":[1],"autoScroll":[4,"auto-scroll"],"showWatermark":[4,"show-watermark"],"floatHeight":[1,"float-height"],"theme":[1],"loading":[4],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"],"direction":[513],"isMobile":[32],"floatLeft":[32],"floatTop":[32],"scrollToBottom":[64],"cyclePosition":[64]},[[0,"headerPositionClick","handleHeaderPositionClick"]],{"isOpen":[{"isOpenChanged":0}],"position":[{"positionChanged":0}]}]]],["ai-chat-message",[[769,"ai-chat-message",{"role":[1],"content":[1],"format":[1],"agentName":[1,"agent-name"],"timestamp":[1],"showActions":[4,"show-actions"],"enableRegenerate":[4,"enable-regenerate"],"feedbackValue":[1025,"feedback-value"],"copySuccess":[32]}]]],["ai-conversation-summary",[[769,"ai-conversation-summary",{"conversation":[1],"summary":[1],"messageCount":[2,"message-count"],"language":[1]}]]],["ai-in-chat-browser",[[513,"ai-in-chat-browser",{"url":[1],"pageTitle":[1,"page-title"],"isLoading":[32],"hasError":[32]},null,{"url":[{"onUrlChange":0}]}]]],["ai-link",[[769,"ai-link",{"label":[1],"href":[1],"target":[1],"rel":[1]}]]],["ai-loading",[[513,"ai-loading",{"mode":[1],"statusText":[1,"status-text"],"thinkingSubtext":[1,"thinking-subtext"],"steps":[16],"headerTitle":[1,"header-title"],"currentAgent":[1,"current-agent"],"showAgentBadges":[4,"show-agent-badges"],"expanded":[1028],"collapsible":[4],"_expanded":[32]}]]],["ai-route-decision",[[513,"ai-route-decision",{"selectedAgent":[1,"selected-agent"],"agentIcon":[1,"agent-icon"],"reason":[1],"confidence":[2],"detectedLanguage":[1,"detected-language"],"expanded":[1028],"_expanded":[32]}]]],["ai-suggestion",[[769,"ai-suggestion",{"label":[1],"disabled":[4]}]]],["ai-voice-input",[[513,"ai-voice-input",{"disabled":[4],"showWaveform":[4,"show-waveform"],"autoStart":[4,"auto-start"],"errorText":[1,"error-text"],"waveformColor":[1,"waveform-color"],"state":[32],"error":[32],"recordingDuration":[32],"submitPulse":[32]}]]],["ai-card",[[769,"ai-card",{"noPadding":[4,"no-padding"],"noShadow":[4,"no-shadow"]}]]],["ai-conversation-list",[[513,"ai-conversation-list",{"items":[16],"activeId":[1,"active-id"],"loading":[4],"emptyText":[1,"empty-text"],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"],"deletingId":[1,"deleting-id"]}]]],["ai-icon",[[513,"ai-icon",{"name":[1],"size":[2]}]]]], options);
|
|
8
8
|
};
|
|
9
9
|
|
|
10
10
|
export { defineCustomElements };
|
package/dist/esm/ui-ai-kit.js
CHANGED
|
@@ -16,5 +16,5 @@ var patchBrowser = () => {
|
|
|
16
16
|
|
|
17
17
|
patchBrowser().then(async (options) => {
|
|
18
18
|
await globalScripts();
|
|
19
|
-
return bootstrapLazy([["ai-message-input",[[513,"ai-message-input",{"placeholder":[1],"disabled":[4],"showVoiceButton":[4,"show-voice-button"],"maxLength":[2,"max-length"],"isRecording":[4,"is-recording"],"inputValue":[32],"showVoiceRecorder":[32],"isMultiline":[32],"setInputValue":[64]},null,{"isRecording":[{"onIsRecordingChange":0}]}]]],["ai-rating",[[513,"ai-rating",{"question":[1],"subtitle":[1],"successMessage":[1,"success-message"],"value":[1026],"disabled":[4],"hovered":[32],"submitted":[32]}]]],["ai-chat-header",[[513,"ai-chat-header",{"mode":[1],"conversation":[1],"agentName":[1,"agent-name"],"agentStatus":[1,"agent-status"],"agentAvatar":[1,"agent-avatar"],"showBack":[4,"show-back"],"statusIndicator":[1,"status-indicator"],"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"conversationItems":[16],"conversationActiveId":[1,"conversation-active-id"],"conversationLoading":[4,"conversation-loading"],"titleLoading":[4,"title-loading"],"avatarError":[32],"dropdownOpen":[32],"isFloating":[32]},[[4,"click","handleDocumentClick"]]]]],["ai-agent-error",[[513,"ai-agent-error",{"headline":[1],"message":[1],"errorCode":[1,"error-code"],"retryable":[4],"retryLabel":[1,"retry-label"],"dismissible":[4]}]]],["ai-chat-container",[[769,"ai-chat-container",{"isOpen":[4,"is-open"],"position":[1537],"width":[1],"autoScroll":[4,"auto-scroll"],"showWatermark":[4,"show-watermark"],"floatHeight":[1,"float-height"],"theme":[1],"loading":[4],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"],"direction":[513],"isMobile":[32],"floatLeft":[32],"floatTop":[32],"scrollToBottom":[64],"cyclePosition":[64]},[[0,"headerPositionClick","handleHeaderPositionClick"]],{"isOpen":[{"isOpenChanged":0}],"position":[{"positionChanged":0}]}]]],["ai-chat-message",[[769,"ai-chat-message",{"role":[1],"content":[1],"format":[1],"agentName":[1,"agent-name"],"timestamp":[1],"showActions":[4,"show-actions"],"enableRegenerate":[4,"enable-regenerate"],"feedbackValue":[1025,"feedback-value"],"copySuccess":[32]}]]],["ai-conversation-summary",[[769,"ai-conversation-summary",{"conversation":[1],"summary":[1],"messageCount":[2,"message-count"],"language":[1]}]]],["ai-in-chat-browser",[[513,"ai-in-chat-browser",{"url":[1],"pageTitle":[1,"page-title"],"isLoading":[32],"hasError":[32]},null,{"url":[{"onUrlChange":0}]}]]],["ai-link",[[769,"ai-link",{"label":[1],"href":[1],"target":[1],"rel":[1]}]]],["ai-loading",[[513,"ai-loading",{"mode":[1],"statusText":[1,"status-text"],"thinkingSubtext":[1,"thinking-subtext"],"steps":[16],"headerTitle":[1,"header-title"],"currentAgent":[1,"current-agent"],"showAgentBadges":[4,"show-agent-badges"],"expanded":[1028],"collapsible":[4],"_expanded":[32]}]]],["ai-route-decision",[[513,"ai-route-decision",{"selectedAgent":[1,"selected-agent"],"agentIcon":[1,"agent-icon"],"reason":[1],"confidence":[2],"detectedLanguage":[1,"detected-language"],"expanded":[1028],"_expanded":[32]}]]],["ai-suggestion",[[769,"ai-suggestion",{"label":[1],"disabled":[4]}]]],["ai-voice-input",[[513,"ai-voice-input",{"disabled":[4],"showWaveform":[4,"show-waveform"],"autoStart":[4,"auto-start"],"errorText":[1,"error-text"],"waveformColor":[1,"waveform-color"],"state":[32],"error":[32],"recordingDuration":[32],"submitPulse":[32]}]]],["ai-card",[[769,"ai-card",{"noPadding":[4,"no-padding"],"noShadow":[4,"no-shadow"]}]]],["ai-conversation-list",[[513,"ai-conversation-list",{"items":[16],"activeId":[1,"active-id"],"loading":[4],"emptyText":[1,"empty-text"],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"]}]]],["ai-icon",[[513,"ai-icon",{"name":[1],"size":[2]}]]]], options);
|
|
19
|
+
return bootstrapLazy([["ai-message-input",[[513,"ai-message-input",{"placeholder":[1],"disabled":[4],"showVoiceButton":[4,"show-voice-button"],"maxLength":[2,"max-length"],"isRecording":[4,"is-recording"],"inputValue":[32],"showVoiceRecorder":[32],"isMultiline":[32],"setInputValue":[64]},null,{"isRecording":[{"onIsRecordingChange":0}]}]]],["ai-rating",[[513,"ai-rating",{"question":[1],"subtitle":[1],"successMessage":[1,"success-message"],"value":[1026],"disabled":[4],"hovered":[32],"submitted":[32]}]]],["ai-chat-header",[[513,"ai-chat-header",{"mode":[1],"conversation":[1],"agentName":[1,"agent-name"],"agentStatus":[1,"agent-status"],"agentAvatar":[1,"agent-avatar"],"showBack":[4,"show-back"],"statusIndicator":[1,"status-indicator"],"pageTitle":[1,"page-title"],"pageUrl":[1,"page-url"],"conversationItems":[16],"conversationActiveId":[1,"conversation-active-id"],"conversationLoading":[4,"conversation-loading"],"conversationError":[4,"conversation-error"],"conversationErrorText":[1,"conversation-error-text"],"conversationRetryLabel":[1,"conversation-retry-label"],"conversationEmptyText":[1,"conversation-empty-text"],"conversationDeletingId":[1,"conversation-deleting-id"],"titleLoading":[4,"title-loading"],"avatarError":[32],"dropdownOpen":[32],"isFloating":[32]},[[4,"click","handleDocumentClick"]]]]],["ai-agent-error",[[513,"ai-agent-error",{"headline":[1],"message":[1],"errorCode":[1,"error-code"],"retryable":[4],"retryLabel":[1,"retry-label"],"dismissible":[4]}]]],["ai-chat-container",[[769,"ai-chat-container",{"isOpen":[4,"is-open"],"position":[1537],"width":[1],"autoScroll":[4,"auto-scroll"],"showWatermark":[4,"show-watermark"],"floatHeight":[1,"float-height"],"theme":[1],"loading":[4],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"],"direction":[513],"isMobile":[32],"floatLeft":[32],"floatTop":[32],"scrollToBottom":[64],"cyclePosition":[64]},[[0,"headerPositionClick","handleHeaderPositionClick"]],{"isOpen":[{"isOpenChanged":0}],"position":[{"positionChanged":0}]}]]],["ai-chat-message",[[769,"ai-chat-message",{"role":[1],"content":[1],"format":[1],"agentName":[1,"agent-name"],"timestamp":[1],"showActions":[4,"show-actions"],"enableRegenerate":[4,"enable-regenerate"],"feedbackValue":[1025,"feedback-value"],"copySuccess":[32]}]]],["ai-conversation-summary",[[769,"ai-conversation-summary",{"conversation":[1],"summary":[1],"messageCount":[2,"message-count"],"language":[1]}]]],["ai-in-chat-browser",[[513,"ai-in-chat-browser",{"url":[1],"pageTitle":[1,"page-title"],"isLoading":[32],"hasError":[32]},null,{"url":[{"onUrlChange":0}]}]]],["ai-link",[[769,"ai-link",{"label":[1],"href":[1],"target":[1],"rel":[1]}]]],["ai-loading",[[513,"ai-loading",{"mode":[1],"statusText":[1,"status-text"],"thinkingSubtext":[1,"thinking-subtext"],"steps":[16],"headerTitle":[1,"header-title"],"currentAgent":[1,"current-agent"],"showAgentBadges":[4,"show-agent-badges"],"expanded":[1028],"collapsible":[4],"_expanded":[32]}]]],["ai-route-decision",[[513,"ai-route-decision",{"selectedAgent":[1,"selected-agent"],"agentIcon":[1,"agent-icon"],"reason":[1],"confidence":[2],"detectedLanguage":[1,"detected-language"],"expanded":[1028],"_expanded":[32]}]]],["ai-suggestion",[[769,"ai-suggestion",{"label":[1],"disabled":[4]}]]],["ai-voice-input",[[513,"ai-voice-input",{"disabled":[4],"showWaveform":[4,"show-waveform"],"autoStart":[4,"auto-start"],"errorText":[1,"error-text"],"waveformColor":[1,"waveform-color"],"state":[32],"error":[32],"recordingDuration":[32],"submitPulse":[32]}]]],["ai-card",[[769,"ai-card",{"noPadding":[4,"no-padding"],"noShadow":[4,"no-shadow"]}]]],["ai-conversation-list",[[513,"ai-conversation-list",{"items":[16],"activeId":[1,"active-id"],"loading":[4],"emptyText":[1,"empty-text"],"error":[4],"errorText":[1,"error-text"],"retryLabel":[1,"retry-label"],"deletingId":[1,"deleting-id"]}]]],["ai-icon",[[513,"ai-icon",{"name":[1],"size":[2]}]]]], options);
|
|
20
20
|
});
|
|
@@ -26,6 +26,16 @@ export declare class AiChatHeader {
|
|
|
26
26
|
conversationActiveId: string;
|
|
27
27
|
/** Conversation list: show skeleton loading state */
|
|
28
28
|
conversationLoading: boolean;
|
|
29
|
+
/** Conversation list: show error state */
|
|
30
|
+
conversationError: boolean;
|
|
31
|
+
/** Conversation list: error message text */
|
|
32
|
+
conversationErrorText: string;
|
|
33
|
+
/** Conversation list: retry button label */
|
|
34
|
+
conversationRetryLabel: string;
|
|
35
|
+
/** Conversation list: empty state label */
|
|
36
|
+
conversationEmptyText: string;
|
|
37
|
+
/** Conversation list: ID of the conversation currently being deleted — shows a spinner on that item */
|
|
38
|
+
conversationDeletingId: string;
|
|
29
39
|
/** Show a shimmer skeleton in place of the conversation title (e.g. while loading conversation) */
|
|
30
40
|
titleLoading: boolean;
|
|
31
41
|
private avatarError;
|
|
@@ -62,6 +72,8 @@ export declare class AiChatHeader {
|
|
|
62
72
|
conversationSelect: EventEmitter<string>;
|
|
63
73
|
/** Fired when a conversation delete button is clicked */
|
|
64
74
|
conversationDelete: EventEmitter<string>;
|
|
75
|
+
/** Fired when the retry button is clicked in the conversation list error state */
|
|
76
|
+
conversationRetry: EventEmitter<void>;
|
|
65
77
|
handleDocumentClick(event: Event): void;
|
|
66
78
|
connectedCallback(): void;
|
|
67
79
|
componentDidLoad(): void;
|
|
@@ -73,6 +85,7 @@ export declare class AiChatHeader {
|
|
|
73
85
|
private renderDragBtn;
|
|
74
86
|
private handleConversationSelect;
|
|
75
87
|
private handleConversationDelete;
|
|
88
|
+
private handleConversationRetry;
|
|
76
89
|
private renderConversationDropdown;
|
|
77
90
|
private renderAgentMode;
|
|
78
91
|
private renderHumanMode;
|
|
@@ -21,6 +21,8 @@ export declare class AiConversationList {
|
|
|
21
21
|
errorText: string;
|
|
22
22
|
/** Retry button label for error state */
|
|
23
23
|
retryLabel: string;
|
|
24
|
+
/** ID of the conversation currently being deleted — shows a spinner on that item */
|
|
25
|
+
deletingId: string;
|
|
24
26
|
conversationSelect: EventEmitter<string>;
|
|
25
27
|
conversationDelete: EventEmitter<string>;
|
|
26
28
|
retryClick: EventEmitter<void>;
|