@salla.sa/ui-ai-kit-core 2.0.0 → 2.1.0
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-agent-error.cjs.entry.js +41 -0
- package/dist/cjs/ai-card.cjs.entry.js +3 -3
- package/dist/cjs/ai-chat-container.cjs.entry.js +3 -3
- package/dist/cjs/ai-chat-header.cjs.entry.js +2 -2
- package/dist/cjs/ai-chat-message.cjs.entry.js +2 -2
- package/dist/cjs/ai-conversation-list.cjs.entry.js +2 -2
- package/dist/cjs/ai-conversation-summary.cjs.entry.js +2 -2
- package/dist/cjs/ai-icon.cjs.entry.js +1 -1
- package/dist/cjs/ai-link.cjs.entry.js +2 -2
- package/dist/cjs/ai-loading.cjs.entry.js +1 -1
- package/dist/cjs/ai-message-input.cjs.entry.js +1 -1
- package/dist/cjs/ai-rating.cjs.entry.js +1 -1
- package/dist/cjs/ai-route-decision.cjs.entry.js +2 -2
- package/dist/cjs/ai-suggestion.cjs.entry.js +3 -3
- package/dist/cjs/ai-voice-input.cjs.entry.js +2 -2
- package/dist/cjs/{index-BkNg07SW.js → index-Bs23yVuF.js} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/ui-ai-kit.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ai-agent-error/ai-agent-error.css +154 -0
- package/dist/collection/components/ai-agent-error/ai-agent-error.js +197 -0
- package/dist/collection/components/ai-card/ai-card.js +2 -2
- package/dist/collection/components/ai-chat-container/ai-chat-container.css +2 -7
- package/dist/collection/components/ai-chat-container/ai-chat-container.js +1 -1
- package/dist/collection/components/ai-chat-header/ai-chat-header.js +1 -1
- package/dist/collection/components/ai-chat-message/ai-chat-message.js +1 -1
- package/dist/collection/components/ai-conversation-list/ai-conversation-list.js +1 -1
- package/dist/collection/components/ai-conversation-summary/ai-conversation-summary.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-agent-error.d.ts +11 -0
- package/dist/components/ai-agent-error.js +1 -0
- package/dist/components/ai-card.js +1 -1
- package/dist/components/ai-chat-container.js +1 -1
- package/dist/components/ai-chat-header.js +1 -1
- package/dist/components/ai-chat-message.js +2 -2
- package/dist/components/ai-conversation-list.js +1 -1
- package/dist/components/ai-conversation-summary.js +1 -1
- package/dist/components/ai-icon.js +1 -1
- package/dist/components/ai-link.js +1 -1
- package/dist/components/ai-loading.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/index.js +1 -1
- package/dist/components/{p-Dr2tAPV7.js → p-Bbmjx9lq.js} +1 -1
- package/dist/components/{p-CX1Yp79q.js → p-C5gkZloN.js} +1 -1
- package/dist/components/p-CAnlgwx0.js +1 -0
- package/dist/esm/ai-agent-error.entry.js +39 -0
- package/dist/esm/ai-card.entry.js +3 -3
- package/dist/esm/ai-chat-container.entry.js +3 -3
- package/dist/esm/ai-chat-header.entry.js +2 -2
- package/dist/esm/ai-chat-message.entry.js +2 -2
- package/dist/esm/ai-conversation-list.entry.js +2 -2
- package/dist/esm/ai-conversation-summary.entry.js +2 -2
- package/dist/esm/ai-icon.entry.js +1 -1
- package/dist/esm/ai-link.entry.js +2 -2
- package/dist/esm/ai-loading.entry.js +1 -1
- package/dist/esm/ai-message-input.entry.js +1 -1
- package/dist/esm/ai-rating.entry.js +1 -1
- package/dist/esm/ai-route-decision.entry.js +2 -2
- package/dist/esm/ai-suggestion.entry.js +3 -3
- package/dist/esm/ai-voice-input.entry.js +2 -2
- package/dist/esm/{index-B0yIzgh4.js → index-hxWjzqcH.js} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/ui-ai-kit.js +3 -3
- package/dist/types/components/ai-agent-error/ai-agent-error.d.ts +19 -0
- package/dist/types/components.d.ts +99 -0
- package/dist/ui-ai-kit/{p-b28af13a.entry.js → p-1cce63d4.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-76195745.entry.js → p-1e7608ee.entry.js} +1 -1
- package/dist/ui-ai-kit/p-2342431f.entry.js +1 -0
- package/dist/ui-ai-kit/{p-9c4c6c01.entry.js → p-27bf454d.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-eb0c7e7a.entry.js → p-2a49ee93.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-5c9e9822.entry.js → p-3268aa48.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-eec6f083.entry.js → p-5ea933a4.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-87e9739b.entry.js → p-6b61d00f.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-74c5c83f.entry.js → p-6b9b1022.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-5caf1c38.entry.js → p-889c6b00.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-2955439f.entry.js → p-999dd7c8.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-ef07638f.entry.js → p-9a4b8c7e.entry.js} +2 -2
- package/dist/ui-ai-kit/{p-a099fcfb.entry.js → p-a424e69b.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-d1bb1ad0.entry.js → p-b33e92ea.entry.js} +1 -1
- package/dist/ui-ai-kit/{p-79c78d8e.entry.js → p-ccaec7b4.entry.js} +1 -1
- package/dist/ui-ai-kit/p-hxWjzqcH.js +2 -0
- package/dist/ui-ai-kit/ui-ai-kit.css +1 -1
- package/dist/ui-ai-kit/ui-ai-kit.esm.js +1 -1
- package/package.json +1 -1
- package/dist/components/p-DnO4dikr.js +0 -1
- package/dist/ui-ai-kit/p-B0yIzgh4.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,c as e,a as t,h as a,H as o}from"./p-
|
|
1
|
+
import{r as i,c as e,a as t,h as a,H as o}from"./p-hxWjzqcH.js";const r=class{constructor(t){i(this,t),this.sendMessage=e(this,"sendMessage"),this.voiceAudioReady=e(this,"voiceAudioReady")}get el(){return t(this)}placeholder="ايش في بالك؟";disabled=!1;showVoiceButton=!0;maxLength=4e3;isRecording=!1;inputValue="";showVoiceRecorder=!1;isMultiline=!1;textareaRef;sendMessage;voiceAudioReady;onIsRecordingChange(i){this.showVoiceRecorder=i}async setInputValue(i){this.inputValue=i,this.textareaRef&&(this.textareaRef.value=i,this.updateHeight(),this.textareaRef.focus())}updateHeight=()=>{this.textareaRef&&(this.textareaRef.style.height="auto",this.textareaRef.style.height=`${this.textareaRef.scrollHeight}px`,this.isMultiline=this.textareaRef.scrollHeight>28)};handleSendMessage=()=>{this.inputValue.trim()&&!this.disabled&&(this.sendMessage.emit(this.inputValue.trim()),this.inputValue="",this.textareaRef&&(this.textareaRef.style.height="auto",this.isMultiline=!1))};handleKeyDown=i=>{"Enter"!==i.key||i.shiftKey||(i.preventDefault(),this.handleSendMessage())};handleVoiceClick=()=>{this.showVoiceRecorder=!0};handleAudioRecorded=i=>{this.showVoiceRecorder=!1,this.voiceAudioReady.emit(i.detail)};handleRecordingCancel=()=>{this.showVoiceRecorder=!1};handleInputChange=i=>{this.inputValue=i.target.value,this.updateHeight()};render(){if(this.showVoiceRecorder)return a(o,null,a("ai-voice-input",{autoStart:!0,onAudioRecorded:this.handleAudioRecorded,onRecordingCancel:this.handleRecordingCancel}));const i=!!this.inputValue.trim()&&!this.disabled,e=this.maxLength-this.inputValue.length;return a(o,null,a("div",{part:"wrapper",class:"wrapper"},a("div",{part:"glow",class:"glow","aria-hidden":"true"}),a("div",{part:"container",class:"input-container"+(this.isMultiline?" multiline":"")},a("div",{class:"input-row"},a("textarea",{part:"textarea",ref:i=>this.textareaRef=i,value:this.inputValue,onInput:this.handleInputChange,onKeyDown:this.handleKeyDown,disabled:this.disabled,placeholder:this.placeholder,rows:1,class:"textarea",maxLength:this.maxLength}),e<200&&a("span",{class:"char-counter"+(e<50?" warning":""),"aria-live":"polite"},e),a("div",{class:"actions"},this.showVoiceButton&&!this.inputValue&&a("button",{part:"voice-button",class:"voice-button",onClick:this.handleVoiceClick,disabled:this.disabled,type:"button","aria-label":"Record voice"},a("ai-icon",{name:"mic",size:16})),a("button",{part:"send-button",class:"send-button"+(i?" active":""),onClick:this.handleSendMessage,disabled:!i,type:"button","aria-label":"Send message"},a("ai-icon",{name:"send",size:16})))))))}static get watchers(){return{isRecording:[{onIsRecordingChange:0}]}}};r.style=":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.9;pointer-events:none}.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;transition:border-radius 0.15s ease}.input-container.multiline{border-radius:var(--ai-input-border-radius-multiline, 20px)}.input-row{display:flex;align-items:center;gap:var(--ai-input-gap, 12px)}.input-container.multiline .input-row{align-items:flex-end}.actions{display:flex;align-items:center;gap:var(--ai-actions-gap, 8px);flex-shrink:0}.send-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:not-allowed;transition:background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;flex-shrink:0}.send-button.active{background-color:var(--ai-send-button-active-bg, var(--ai-accent));border-color:var(--ai-send-button-active-border, var(--ai-accent));color:var(--ai-accent-text);cursor:pointer}.send-button.active: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))}.send-button:focus{outline:none;box-shadow:0 0 0 2px var(--ai-focus-ring-color, var(--ai-focus-ring))}.voice-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:32px;border:none;background-color:transparent;color:var(--ai-text-secondary);cursor:pointer;transition:background-color 0.2s ease, color 0.2s ease;flex-shrink:0}.voice-button:hover:not(:disabled){background-color:var(--ai-hover-overlay);color:var(--ai-voice-button-hover-color, var(--ai-text-secondary))}.voice-button:disabled{cursor:not-allowed;opacity:0.5}.voice-button:focus{outline:none;box-shadow:0 0 0 2px var(--ai-focus-ring-color, var(--ai-focus-ring))}.textarea{flex:1;resize:none;outline:none;border:none;background:transparent;font-size:var(--ai-input-font-size, 14px);line-height:var(--ai-input-line-height, 20px);color:var(--ai-text-primary);font-family:inherit;min-height:20px;max-height:var(--ai-input-max-height, 120px);overflow-y:hidden;text-align:start;padding:0}.textarea::placeholder{color:var(--ai-text-secondary)}.textarea:disabled{cursor:not-allowed;opacity:0.6}.input-container:focus-within{border-color:var(--ai-input-focus-border-color, var(--ai-accent));box-shadow:var(--ai-input-focus-glow)}:host([disabled]) .wrapper{opacity:0.6;pointer-events:none}:host([disabled]) .glow{display:none}.char-counter{font-size:11px;color:var(--ai-text-secondary);flex-shrink:0;transition:color 0.2s ease}.char-counter.warning{color:var(--ai-voice-timer-warning-color, var(--ai-danger-text))}";export{r as ai_message_input}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as t,c as i,h as a,H as e}from"./p-
|
|
1
|
+
import{r as t,c as i,h as a,H as e}from"./p-hxWjzqcH.js";import{i as n}from"./p-SJZ6Ujn9.js";const r=class{constructor(a){t(this,a),this.closeClick=i(this,"closeClick"),this.editClick=i(this,"editClick"),this.dropdownClick=i(this,"dropdownClick"),this.positionClick=i(this,"positionClick"),this.backClick=i(this,"backClick"),this.headerDragStart=i(this,"headerDragStart")}mode="agent";conversation="محادثة جديدة";agentName="";agentStatus="";agentAvatar="";showBack=!0;isDraggable=!1;statusIndicator="online";avatarError=!1;closeClick;editClick;dropdownClick;positionClick;backClick;headerDragStart;renderIcon(t,i,e){const r=n[t];return r?a("span",{class:"icon-wrap",innerHTML:`<svg width="${i}" height="${e}" viewBox="${r.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${r.content}</svg>`}):null}renderAvatar(){const t=this.agentName?this.agentName.charAt(0):"?";return!this.agentAvatar||this.avatarError?a("div",{class:"avatar-fallback"},t):a("img",{class:"avatar",src:this.agentAvatar,alt:this.agentName,onError:()=>{this.avatarError=!0}})}renderDragBtn(){return this.isDraggable&&a("button",{class:"action-btn drag-btn","aria-label":"سحب / Drag",onPointerDown:t=>{t.preventDefault(),this.headerDragStart.emit({clientX:t.clientX,clientY:t.clientY})}},this.renderIcon("drag",11,15))}renderAgentMode(){return[this.renderDragBtn(),a("div",{class:"content agent dropdown-trigger",role:"button",onClick:()=>this.dropdownClick.emit(),"aria-haspopup":"listbox","aria-expanded":!1,"aria-label":`${this.conversation}, افتح قائمة المحادثات`},a("span",{class:"title"},this.conversation),a("span",{class:"dropdown-chevron"},this.renderIcon("chevron-down",24,24))),a("div",{class:"actions"},a("button",{class:"action-btn","aria-label":"تعديل / Edit",onClick:()=>this.editClick.emit()},this.renderIcon("pencil-edit",22,22)),a("button",{class:"action-btn","aria-label":"العرض / Position",onClick:()=>this.positionClick.emit()},this.renderIcon("hand",22,22)),a("button",{class:"action-btn","aria-label":"إغلاق / Close",onClick:()=>this.closeClick.emit()},this.renderIcon("cancel",22,22)))]}renderHumanMode(){return[this.renderDragBtn(),a("div",{class:"content human"},this.showBack&&a("button",{class:"back-btn","aria-label":"رجوع / Back",onClick:()=>this.backClick.emit()},this.renderIcon("arrow-right",24,24)),a("div",{class:"avatar-wrapper"},this.renderAvatar(),a("span",{class:`online-dot status-${this.statusIndicator}`},this.renderIcon("online-dot",10,10))),a("div",{class:"text-block"},a("span",{class:"agent-name"},this.agentName),this.agentStatus&&a("span",{class:"agent-status"},this.agentStatus))),a("div",{class:"actions"},a("button",{class:"action-btn","aria-label":"العرض / Position",onClick:()=>this.positionClick.emit()},this.renderIcon("hand",22,22)),a("button",{class:"action-btn","aria-label":"إغلاق / Close",onClick:()=>this.closeClick.emit()},this.renderIcon("cancel",22,22)))]}render(){return a(e,{key:"66ad39b3b123aebf528b675e9b26a3004693a137"},a("div",{key:"355be9c94e460c995a9fc58484c891c071ed9604",class:"header-container"},"agent"===this.mode?this.renderAgentMode():this.renderHumanMode()))}};r.style=":host{display:block}.header-container{display:flex;align-items:center;gap:8px;padding:16px;background:var(--ai-bg-card);border-bottom:1px solid var(--ai-border-light);width:100%;box-sizing:border-box}.drag-btn{cursor:grab;color:var(--ai-text-muted)}.drag-btn:active{cursor:grabbing}.action-btn,.back-btn{width:40px;height:40px;padding:4px;display:flex;align-items:center;justify-content:center;background:var(--ai-bg-card);border:none;border-radius:8px;cursor:pointer;flex-shrink:0;color:var(--ai-text-primary);transition:background 0.15s ease}.action-btn:hover,.back-btn:hover{background:var(--ai-bg-surface)}.action-btn:focus-visible,.back-btn:focus-visible{outline:2px solid var(--ai-focus-ring);outline-offset:2px}.action-btn:active,.back-btn:active{background:var(--ai-bg-surface)}.actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.content{flex:1 0 0;display:flex;align-items:center;justify-content:flex-start;min-width:0}.content.agent{gap:4px;height:40px}.content.human{gap:8px}.dropdown-trigger{display:flex;align-items:center;gap:4px;background:none;border:none;cursor:pointer;padding:0;flex-shrink:0;color:var(--ai-text-primary)}.dropdown-trigger:focus-visible{outline:2px solid var(--ai-focus-ring);outline-offset:2px}.title{font-size:16px;font-weight:700;color:var(--ai-text-primary);white-space:nowrap;line-height:normal;min-width:0;overflow:hidden;text-overflow:ellipsis}.avatar-wrapper{position:relative;width:40px;height:40px;flex-shrink:0}.avatar{width:40px;height:40px;border-radius:9999px;border:1px solid var(--ai-border-default);object-fit:cover;display:block}.avatar-fallback{width:40px;height:40px;border-radius:9999px;border:1px solid var(--ai-border-default);background:var(--ai-bg-surface);color:var(--ai-text-primary);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0}.online-dot{position:absolute;bottom:0;inset-inline-end:0;width:10px;height:10px;display:inline-flex;align-items:center;justify-content:center;color:var(--ai-bg-card);}.online-dot.status-online{color:#22c55e;}.online-dot.status-offline{color:#9ca3af;}.online-dot.status-busy{color:#ef4444;}.online-dot.status-away{color:#f59e0b;}.text-block{display:flex;flex-direction:column;align-items:flex-start;gap:0;flex-shrink:0}.agent-name{font-size:14px;font-weight:500;color:var(--ai-text-primary);line-height:20px;white-space:nowrap}.agent-status{font-size:14px;font-weight:400;color:var(--ai-text-secondary);line-height:20px;white-space:nowrap}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.icon-wrap svg{display:block}:host-context([dir='ltr']) .back-btn .icon-wrap,:host([dir='ltr']) .back-btn .icon-wrap{transform:scaleX(-1)}";export{r as ai_chat_header}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{r as e,c as r,h as a,H as i}from"./p-hxWjzqcH.js";import{i as o}from"./p-SJZ6Ujn9.js";const s=class{constructor(a){e(this,a),this.retryClick=r(this,"retryClick"),this.dismissClick=r(this,"dismissClick")}headline="حدث خطأ أثناء التنفيذ";message="";errorCode="";retryable=!0;retryLabel="إعادة المحاولة";dismissible=!1;retryClick;dismissClick;renderIcon(e,r,i){const s=o[e];return s?a("span",{class:"icon-wrap",innerHTML:`<svg width="${r}" height="${i}" viewBox="${s.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${s.content}</svg>`}):null}render(){return a(i,{key:"938a7d7ea8f1af9c4523eaf2a4944c4d1d7fb6a2"},a("div",{key:"ad4f04819ac44e4541405674c903f5e2a2ec5e6e",class:"error-card"},a("div",{key:"be863a0a24342ab7c8704e3a9ee0ad2b44633c4d",class:"error-body"},a("div",{key:"0572130fca12b6d341f0e727a5f7f72f281d5cf7",class:"error-icon-wrap"},this.renderIcon("warning",20,20)),a("div",{key:"53bbccb1da858d0f85c50609c2d6ab79d8bdd3cf",class:"error-content"},a("div",{key:"76bbe45588ea39a29f72c4267881d39cc1767ad0",class:"error-headline-row"},a("span",{key:"077fe71637fe1621b5ee532e8634657ff1b5f1ac",class:"error-headline"},this.headline),this.errorCode&&a("span",{key:"45307d3a8f43c3d17daa44e0df7dc7643a9af7da",class:"error-code-badge"},this.errorCode)),this.message&&a("p",{key:"6848d16db67c2ced84785e7762b79a1fac9a4d14",class:"error-message"},this.message)),this.dismissible&&a("button",{key:"c06661ef9c19dbcb9cb6620c9bec69e2a6a35205",class:"dismiss-btn","aria-label":"إغلاق",onClick:()=>this.dismissClick.emit()},this.renderIcon("cancel",16,16))),this.retryable&&a("div",{key:"3b1ed90ee58f872a22f790abd0e5c9acd1480a36",class:"error-footer"},a("button",{key:"d50096dd81d9098c827f564f5c6e120dafe56dac",class:"retry-btn",onClick:()=>this.retryClick.emit()},this.renderIcon("reload",16,16),a("span",{key:"0ef79b60c4de040f57dfd6c7c71fd1d1863baa33"},this.retryLabel)))))}};s.style=":host{display:block}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;line-height:0}@keyframes fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.error-card{background:var(--ai-danger-bg);border:1px solid var(--ai-danger-border);border-radius:16px;box-shadow:var(--ai-shadow-error);overflow:hidden;animation:fade-in 0.3s ease}.error-body{display:flex;align-items:flex-start;gap:12px;padding:16px}.error-icon-wrap{width:36px;height:36px;border-radius:9999px;background:var(--ai-bg-card);border:1px solid var(--ai-danger-border);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ai-danger-text)}.error-content{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.error-headline-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.error-headline{font-size:14px;font-weight:600;color:var(--ai-danger-text);line-height:1.4}.error-code-badge{font-size:11px;font-weight:500;color:var(--ai-danger-text);background:var(--ai-bg-card);border:1px solid var(--ai-danger-border);padding:1px 7px;border-radius:9999px;white-space:nowrap;flex-shrink:0;opacity:0.85}.error-message{margin:0;font-size:13px;font-weight:400;color:var(--ai-text-secondary);line-height:1.5}.dismiss-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:4px;cursor:pointer;color:var(--ai-danger-text);opacity:0.6;flex-shrink:0;border-radius:6px;transition:opacity 0.15s ease, background 0.15s ease}.dismiss-btn:hover{opacity:1;background:var(--ai-hover-overlay)}.error-footer{padding:0 16px 14px}.retry-btn{display:inline-flex;align-items:center;gap:6px;background:var(--ai-bg-card);border:1px solid var(--ai-danger-border);border-radius:9999px;padding:6px 14px;font-size:13px;font-weight:500;color:var(--ai-danger-text);cursor:pointer;transition:box-shadow 0.15s ease, opacity 0.15s ease;font-family:inherit}.retry-btn:hover{box-shadow:var(--ai-shadow-active);opacity:0.9}.retry-btn:active{opacity:0.75}";export{s as ai_agent_error}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,c as t,a as e,h as r,H as a}from"./p-
|
|
1
|
+
import{r as i,c as t,a as e,h as r,H as a}from"./p-hxWjzqcH.js";const o=class{constructor(e){i(this,e),this.audioRecorded=t(this,"audioRecorded"),this.recordingCancel=t(this,"recordingCancel")}get el(){return e(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((i=>i.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 i=await navigator.mediaDevices.getUserMedia({audio:{echoCancellation:!0,noiseSuppression:!0,autoGainControl:!0}});this.streamRef=i;const t=new AudioContext;if(this.audioContextRef=t,this.showWaveform){const e=t.createAnalyser();e.fftSize=256,e.smoothingTimeConstant=.8,this.analyserRef=e,t.createMediaStreamSource(i).connect(e)}this.setupMediaRecorder(i),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(i){console.error("Error starting recording:",i),this.error=this.getErrorText(),this.state="idle"}};setupMediaRecorder=i=>{const t=MediaRecorder.isTypeSupported("audio/webm")?"audio/webm":MediaRecorder.isTypeSupported("audio/ogg")?"audio/ogg":"",e=new MediaRecorder(i,t?{mimeType:t}:{});e.ondataavailable=i=>{i.data.size>0&&this.audioChunks.push(i.data)},e.onstop=()=>{const i=new Blob(this.audioChunks,{type:t||"audio/mp4"});this.audioRecorded.emit({blob:i,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 i=this.canvasRef,t=i.getContext("2d");if(!t)return;const e=this.analyserRef.frequencyBinCount,r=new Uint8Array(e),a=this.waveformColor||getComputedStyle(this.el).getPropertyValue("--ai-waveform-color").trim()||"#9ca3af",o=(i,e,r,a,o)=>{if(t.beginPath(),"function"==typeof t.roundRect)t.roundRect(i,e,r,a,o);else{const s=Math.min(o,r/2,a/2);t.moveTo(i+s,e),t.lineTo(i+r-s,e),t.arcTo(i+r,e,i+r,e+s,s),t.lineTo(i+r,e+a-s),t.arcTo(i+r,e+a,i+r-s,e+a,s),t.lineTo(i+s,e+a),t.arcTo(i,e+a,i,e+a-s,s),t.lineTo(i,e+s),t.arcTo(i,e,i+s,e,s),t.closePath()}},s=()=>{if("recording"!==this.state)return;this.animationFrameId=requestAnimationFrame(s);const n=i.offsetWidth;n>0&&i.width!==n&&(i.width=n);const c=Math.min(100,Math.floor(i.width/3)),l=Math.max(1,Math.floor(e/c));this.prevHeights.length!==c&&(this.prevHeights=new Array(c).fill(4)),this.analyserRef.getByteFrequencyData(r),t.clearRect(0,0,i.width,i.height);const d=i.height/2,h=(i.width-3*c)/2,u=i.height-4;for(let i=0;i<c;i++){let s=0;for(let t=0;t<l;t++){const a=i*l+t;a<e&&(s+=r[a])}const n=Math.min(1,s/l/255);this.prevHeights[i]=.7*this.prevHeights[i]+.3*(4+n*(u-4));const c=this.prevHeights[i],b=h+3*i,p=d-c/2;t.fillStyle=a,o(b,p,1,c,.5),t.fill()}};s()};formatDuration=i=>`${Math.floor(i/60)}:${(i%60).toString().padStart(2,"0")}`;render(){const i=60-this.recordingDuration;return r(a,{key:"8af076ad1ec6bf3ed6a09bb06e03baab91e1bed4"},r("div",{key:"f0ccb0576accd8f6ab47db2b06dd426ab7606c02",class:"wrapper"},r("div",{key:"c95052b95e0f859c406bdeb0991b87cb25b68f9f",class:"glow"+("recording"===this.state?" visible":""),"aria-hidden":"true"}),r("div",{key:"56ab65197d34e2f39c1b73a407561c65f40996f6",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"+(i<=5?" warning":"")},this.formatDuration(this.recordingDuration)),this.showWaveform&&r("canvas",{ref:i=>this.canvasRef=i,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}))))))}};o.style=":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}";export{o as ai_voice_input}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as t,r as a,h as e,H as i}from"./p-
|
|
1
|
+
import{a as t,r as a,h as e,H as i}from"./p-hxWjzqcH.js";const r=class{get el(){return t(this)}isOpen=!1;position="right";width="28rem";autoScroll=!0;showWatermark=!1;floatHeight="600px";theme="light";isMobile=!1;floatLeft="24px";floatTop="24px";containerRef;messagesAreaRef;dragState=null;dragListener=t=>{const a=this.containerRef;if(!a)return;const{clientX:e,clientY:i}=t.detail,r=a.getBoundingClientRect();this.dragState={startX:e,startY:i,initLeft:r.left,initTop:r.top},this.floatLeft=`${r.left}px`,this.floatTop=`${r.top}px`;const o=t=>{if(!this.dragState)return;let e=this.dragState.initLeft+(t.clientX-this.dragState.startX),i=this.dragState.initTop+(t.clientY-this.dragState.startY);const r=window.innerWidth,o=window.innerHeight,s=a.offsetHeight;e=Math.max(0,Math.min(e,r-a.offsetWidth)),i=Math.max(0,Math.min(i,o-s)),this.floatLeft=`${e}px`,this.floatTop=`${i}px`},s=()=>{this.dragState=null,document.removeEventListener("pointermove",o),document.removeEventListener("pointerup",s)};document.addEventListener("pointermove",o),document.addEventListener("pointerup",s)};constructor(t){a(this,t),this.checkMobile=this.checkMobile.bind(this)}componentWillLoad(){this.checkMobile()}componentDidLoad(){"undefined"!=typeof window&&(window.addEventListener("resize",this.checkMobile),"float"===this.position&&this.setupDrag())}isOpenChanged(t){t&&this.autoScroll&&this.messagesAreaRef&&requestAnimationFrame((()=>{this.messagesAreaRef.scrollTop=this.messagesAreaRef.scrollHeight}))}positionChanged(t){"float"===t&&this.setupDrag()}disconnectedCallback(){window.removeEventListener("resize",this.checkMobile),this.el.removeEventListener("headerDragStart",this.dragListener)}async scrollToBottom(){this.messagesAreaRef&&(this.messagesAreaRef.scrollTop=this.messagesAreaRef.scrollHeight)}checkMobile(){"undefined"!=typeof window&&(this.isMobile=window.innerWidth<768)}setupDrag(){this.el.removeEventListener("headerDragStart",this.dragListener),this.el.addEventListener("headerDragStart",this.dragListener)}getContainerClasses(){const t=["chat-container",this.position];return this.isOpen&&t.push("open"),this.isMobile&&t.push("mobile"),t.join(" ")}getContainerStyle(){const t={};return this.isMobile||("float"===this.position?(t.width=this.width,t.height=this.floatHeight,t.left=this.floatLeft,t.top=this.floatTop):t.width=this.width),t}isDark(){return"dark"===this.theme||"auto"===this.theme&&"undefined"!=typeof window&&window.matchMedia("(prefers-color-scheme: dark)").matches}render(){return e(i,{key:"cd4fad0fb3c4e06b8efd4481aef825f4bfc521a2",class:{dark:this.isDark()}},e("div",{key:"4ebc198e353d9e78a4f733bdd728d13a3f7ceade",class:this.getContainerClasses(),style:this.getContainerStyle(),ref:t=>this.containerRef=t},this.showWatermark&&e("div",{key:"3c67cd62b37489274e0f246194a35d1e26d7ae05",class:"watermark"},e("ai-icon",{key:"fd3482b93e53b43f59bd96b995f3ff0472444f05",name:"watermark",size:133})),e("slot",{key:"783c04dafaeecd563c05196620e3b888669614a9",name:"header"}),e("div",{key:"cd44c7e5ca42e659d29cf74720eaf5c1a4264f4e",class:"messages-area",ref:t=>this.messagesAreaRef=t},e("slot",{key:"f1f61eed5585ad3e4d23c16368ad37cfe1b216be"})),e("slot",{key:"fecfd1d232a324ab468b69eed15865a699af956a",name:"footer"})))}static get watchers(){return{isOpen:[{isOpenChanged:0}],position:[{positionChanged:0}]}}};r.style=":host{display:contents}.chat-container{font-family:var(--ai-font-family);display:flex;flex-direction:column;overflow:hidden;position:relative;background-color:var(--ai-container-bg, var(--ai-bg-card));border:1px solid var(--ai-border-default);z-index:50;box-sizing:border-box}.messages-area{flex:1;overflow-y:auto;min-height:0;scrollbar-width:thin;padding:var(--ai-spacing-2xl, 16px);scrollbar-color:var(--ai-scrollbar-thumb) transparent}.messages-area::-webkit-scrollbar{width:3px}.messages-area::-webkit-scrollbar-track{background:transparent}.messages-area::-webkit-scrollbar-thumb{background:var(--ai-scrollbar-thumb);border-radius:99px}.messages-area::-webkit-scrollbar-thumb:hover{background:var(--ai-scrollbar-thumb-hover)}.chat-container.left,.chat-container.right{position:fixed;top:0;bottom:0;transition:transform 300ms cubic-bezier(0.4, 0, 0.2, 1)}.chat-container.left{left:0;transform:translateX(-100%)}.chat-container.right{right:0;transform:translateX(100%)}.chat-container.left.open,.chat-container.right.open{transform:translateX(0)}.chat-container.float{position:fixed;border-radius:16px;box-shadow:var(--ai-shadow-float);opacity:0;pointer-events:none;transform:scale(0.95);transform-origin:bottom left;transition:opacity 200ms ease, transform 200ms ease}.chat-container.float.open{opacity:1;pointer-events:auto;transform:scale(1)}.watermark{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);pointer-events:none}.watermark ai-icon{opacity:var(--ai-watermark-opacity, 0.8);filter:var(--ai-watermark-filter, var(--ai-shadow-watermark))}.chat-container.mobile{width:100% !important}.chat-container.float.mobile{left:0 !important;right:0 !important;top:0 !important;bottom:0 !important;height:100% !important;border-radius:0 !important}@media (max-width: 767px){.chat-container{width:100% !important}.chat-container.float{left:0 !important;right:0 !important;top:0 !important;bottom:0 !important;height:100% !important;border-radius:0 !important}}";export{r as ai_chat_container}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as t,h as s,H as i}from"./p-
|
|
1
|
+
import{r as e,c as t,h as s,H as i}from"./p-hxWjzqcH.js";import{i as a}from"./p-SJZ6Ujn9.js";const r=class{constructor(s){e(this,s),this.toggleExpand=t(this,"toggleExpand"),this.stepClick=t(this,"stepClick")}mode="thinking";statusText="جاري التفكير...";thinkingSubtext="";steps=[];headerTitle="خطة التنفيذ";currentAgent="";showAgentBadges=!1;expanded=!0;collapsible=!0;toggleExpand;stepClick;_expanded=!0;componentWillLoad(){this._expanded=this.expanded}renderIcon(e,t,i){const r=a[e];return r?s("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${i}" viewBox="${r.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${r.content}</svg>`}):null}renderSparkleAvatar(e){return s("div",{class:"sparkle-avatar-wrap"},s("div",{class:"sparkle-avatar"},this.renderIcon("sparkle",14,14)),e&&s("span",{class:"header-agent"},e))}renderStepBadge(e,t){const{status:i}=e,a="completed"===i,r="executing"===i,n="failed"===i,o=s("div",{class:`step-badge-inner ${a?"completed":""} ${r?"executing":""} ${n?"failed":""}`},a&&this.renderIcon("check",14,14),n&&this.renderIcon("cancel",14,14),r&&this.renderIcon("list",14,14),!a&&!n&&!r&&s("span",{class:"step-number"},t+1));return s("div",{class:"step-badge-outer "+(r?"pulse-ring":"")},o)}handleToggle(){this.collapsible&&(this._expanded=!this._expanded,this.expanded=this._expanded,this.toggleExpand.emit(this._expanded))}renderThinkingMode(){return s("div",{class:"thinking-row"},this.renderSparkleAvatar(),s("div",{class:"thinking-col"},s("span",{class:"shimmer-text"},this.statusText),this.thinkingSubtext&&s("span",{class:"shimmer-text subtext"},this.thinkingSubtext)))}renderPlanningShimmer(){return s("div",{class:"steps-body"},s("div",{class:"thinking-row planning-shimmer"},s("div",{class:"sparkle-avatar"},this.renderIcon("sparkle",14,14)),s("span",{class:"shimmer-text"},"جاري التخطيط...")))}renderStepsMode(){const e=this.steps.filter((e=>"completed"===e.status)).length,t=this.steps.length,i=t>0&&e===t,a=this.steps.find((e=>"executing"===e.status));return s("div",{class:"steps-card"},s("div",{class:"steps-header "+(this.collapsible?"collapsible":""),onClick:()=>this.handleToggle()},this.renderSparkleAvatar(this.currentAgent||void 0),s("div",{class:"steps-header-center"},s("span",{class:"steps-title"},this.headerTitle),(()=>0===t?null:!this._expanded&&a?s("span",{class:"progress-badge executing-title"},a.action):s("span",{class:"progress-badge"},i?"مكتمل":`${e}/${t}`))()),this.collapsible&&s("button",{class:"collapse-btn "+(this._expanded?"expanded":"")},this.renderIcon("chevron-down",20,20))),this._expanded&&0===t&&this.renderPlanningShimmer(),this._expanded&&t>0&&s("div",{class:"steps-body"},this.steps.map(((e,t)=>s("div",{class:`step-row ${e.status}`,onClick:()=>this.stepClick.emit(e)},s("div",{class:"step-badge-col"},this.renderStepBadge(e,t),t<this.steps.length-1&&s("div",{class:"step-separator"})),s("div",{class:"step-content"},s("span",{class:"step-text"},e.action),e.reason&&s("span",{class:"step-description"},e.reason)))))))}render(){return s(i,{key:"da2c7fad8bbf4e572972a9b8308204cecb91dd63"},"thinking"===this.mode?this.renderThinkingMode():this.renderStepsMode())}};r.style=":host{display:block}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;line-height:0}.sparkle-avatar-wrap{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}@keyframes sparkle-twinkle{0%,100%{transform:scale(1);opacity:1;filter:brightness(1)}15%{transform:scale(1.4);opacity:0.4;filter:brightness(2)}30%{transform:scale(0.85);opacity:0.9;filter:brightness(0.9)}50%{transform:scale(1.3);opacity:0.5;filter:brightness(1.8)}70%{transform:scale(0.9);opacity:1;filter:brightness(1)}}.sparkle-avatar{width:24px;height:24px;border-radius:9999px;background:var(--ai-bg-card);box-shadow:var(--ai-shadow-inner);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ai-amber)}.sparkle-avatar .icon-wrap{animation:sparkle-twinkle 2.4s ease-in-out infinite;transform-origin:center}.header-agent{font-size:12px;color:var(--ai-text-secondary);white-space:nowrap}.thinking-row{display:inline-flex;align-items:center;gap:8px;flex-direction:row}.thinking-col{display:flex;flex-direction:column;gap:2px}@keyframes shimmer{0%{background-position:200% center}100%{background-position:-200% center}}.shimmer-text{font-size:14px;font-weight:400;line-height:1.5;background:var(--ai-glow-gradient);background-size:200% auto;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:shimmer 2s linear infinite}.shimmer-text.subtext{font-size:12px;opacity:0.75}@keyframes fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.steps-card{background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:16px;box-shadow:var(--ai-shadow-sm);overflow:hidden;animation:fade-in 0.3s ease}.steps-header{padding:16px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--ai-border-default)}.steps-header.collapsible{cursor:pointer;user-select:none}.steps-header-center{flex:1;display:flex;align-items:center;gap:8px;min-width:0}.steps-title{font-size:16px;font-weight:500;color:var(--ai-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.progress-badge{font-size:12px;font-weight:500;color:var(--ai-accent-dark);background:var(--ai-accent-bg);padding:2px 8px;border-radius:9999px;white-space:nowrap;flex-shrink:0}.progress-badge.executing-title{max-width:180px;overflow:hidden;text-overflow:ellipsis}.collapse-btn{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:0;cursor:pointer;color:var(--ai-text-secondary);flex-shrink:0;transition:transform 0.2s ease;transform:rotate(180deg)}.collapse-btn.expanded{transform:rotate(0deg)}.steps-body{padding:12px 16px;display:flex;flex-direction:column}.planning-shimmer{padding:4px 0}.step-row{display:flex;align-items:flex-start;gap:12px;cursor:pointer;padding:4px 0}.step-row:hover .step-text{color:var(--ai-text-primary)}.step-row.pending{opacity:0.5}.step-row.executing .step-text{color:var(--ai-text-primary)}.step-row.failed .step-text{color:var(--ai-error-text, #dc2626)}.step-content{flex:1;display:flex;flex-direction:column;gap:2px;padding-top:4px}.step-text{font-size:14px;font-weight:400;color:var(--ai-text-secondary);line-height:1.5}.step-description{font-size:12px;color:var(--ai-text-secondary);line-height:1.4}.step-duration{font-size:11px;color:var(--ai-text-secondary);opacity:0.7}.agent-chip{display:inline-flex;align-self:flex-start;font-size:11px;padding:1px 6px;border-radius:9999px;border:1px solid var(--ai-border-default);color:var(--ai-text-secondary)}.step-badge-col{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.step-separator{width:1px;height:16px;background:var(--ai-border-default);margin:2px 0}@keyframes pulse-ring{0%{transform:scale(1);opacity:0.6}100%{transform:scale(2);opacity:0}}.step-badge-outer{padding:2px;border-radius:9999px;background:var(--ai-bg-surface);display:inline-flex;align-items:center;justify-content:center;position:relative}.step-badge-outer.pulse-ring::after{content:'';position:absolute;inset:0;border-radius:9999px;border:2px solid var(--ai-amber);animation:pulse-ring 1.2s ease-out infinite}.step-badge-inner{width:26px;height:26px;border-radius:9999px;background:var(--ai-bg-card);box-shadow:var(--ai-shadow-badge);display:flex;align-items:center;justify-content:center;color:var(--ai-text-secondary)}.step-badge-inner.completed{background:var(--ai-success-bg);color:var(--ai-success-text)}.step-badge-inner.executing{color:var(--ai-amber)}.step-badge-inner.failed{background:var(--ai-error-bg, #fee2e2);color:var(--ai-error-text, #dc2626)}.step-number{font-size:14px;font-weight:500;color:var(--ai-text-secondary);line-height:1}";export{r as ai_loading}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as s,h as t,H as i}from"./p-
|
|
1
|
+
import{r as s,h as t,H as i}from"./p-hxWjzqcH.js";import{i as e}from"./p-SJZ6Ujn9.js";const n=class{constructor(t){s(this,t)}name;size=16;render(){const s=e[this.name];return s?t(i,null,t("svg",{width:this.size,height:this.size,viewBox:s.viewBox,xmlns:"http://www.w3.org/2000/svg",ref:t=>t&&(t.innerHTML=s.content),"aria-hidden":"true"})):null}};n.style=":host{display:inline-flex;align-items:center;justify-content:center}svg{display:block}";export{n as ai_icon}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as t,h as i,H as a}from"./p-
|
|
1
|
+
import{r as e,c as t,h as i,H as a}from"./p-hxWjzqcH.js";import{i as r}from"./p-SJZ6Ujn9.js";const n=class{constructor(i){e(this,i),this.conversationSelect=t(this,"conversationSelect"),this.conversationDelete=t(this,"conversationDelete")}items="[]";activeId="";loading=!1;conversationSelect;conversationDelete;renderIcon(e,t,a){const n=r[e];return n?i("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${a}" viewBox="${n.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${n.content}</svg>`}):null}getItems(){try{return JSON.parse(this.items)||[]}catch{return[]}}formatRelativeTime(e){try{const t=new Date(e),i=Date.now()-t.getTime(),a=Math.floor(i/6e4),r=Math.floor(a/60),n=Math.floor(r/24),o="undefined"!=typeof document&&document.documentElement.lang||"ar",s=new Intl.RelativeTimeFormat(o,{numeric:"auto"});return a<1?s.format(0,"second"):a<60?s.format(-a,"minute"):r<24?s.format(-r,"hour"):s.format(-n,"day")}catch{return""}}renderRatingDots(e){return i("div",{class:"rating-dots","aria-label":e?`تقييم ${e} من 5`:void 0},Array.from({length:5},((t,a)=>i("span",{class:"rating-dot "+(a<(e??0)?"rating-dot--filled":"")}))))}renderSkeleton(){return i("div",{class:"skeleton-list"},[1,2,3,4].map((e=>i("div",{key:e,class:"skeleton-item"},i("div",{class:"skeleton-line skeleton-line--title"}),i("div",{class:"skeleton-line skeleton-line--preview"}),i("div",{class:"skeleton-line skeleton-line--meta"})))))}render(){const e=this.getItems();return i(a,{key:"8c3d6b60fbd6fbc9e073d5dcada95a04bf6b22eb"},i("div",{key:"e11e29b8fb0247617b00fca7ab5d76bd547efc69",class:"conversation-list"},i("div",{key:"a24920fd77797e113fe91c96fe033c8301f01d58",class:"list-scroll",role:"list"},this.loading?this.renderSkeleton():e.map((e=>{const t=e.id===this.activeId;return i("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)},i("div",{class:"conv-item__body"},i("p",{class:"conv-item__title"},e.title),i("p",{class:"conv-item__preview"},e.preview),i("div",{class:"conv-item__meta"},i("span",{class:"conv-item__time"},this.formatRelativeTime(e.timestamp)),null!=e.rating&&this.renderRatingDots(e.rating))),i("button",{class:"delete-btn","aria-label":"حذف المحادثة",onClick:t=>{t.stopPropagation(),this.conversationDelete.emit(e.id)}},this.renderIcon("cancel",14,14)))})))))}};n.style=":host{display:block;height:100%}.conversation-list{display:flex;flex-direction:column;gap:8px;height:100%;background:var(--ai-bg-surface)}.list-scroll{flex:1;overflow-y:auto;padding:0 8px 12px;scrollbar-width:thin;scrollbar-color:var(--ai-scrollbar-thumb) var(--ai-scrollbar-track)}.list-scroll::-webkit-scrollbar{width:4px}.list-scroll::-webkit-scrollbar-track{background:var(--ai-scrollbar-track)}.list-scroll::-webkit-scrollbar-thumb{background:var(--ai-scrollbar-thumb);border-radius:4px}.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}.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);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}}";export{n as ai_conversation_list}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,h as d,H as r}from"./p-
|
|
1
|
+
import{r as a,h as d,H as r}from"./p-hxWjzqcH.js";const i=class{constructor(d){a(this,d)}noPadding=!1;noShadow=!1;render(){return d(r,{key:"de29e6d9cef8b521fdf6ac6a3f02732b80a8ebfe"},d("div",{key:"b6b097e595977af04497bf64e68f3b89854bc710",class:{card:!0,"card--no-padding":this.noPadding,"card--no-shadow":this.noShadow}},d("slot",{key:"4a0af40b21edd47f187c8eaad0d6487575f1a6eb"})))}};i.style=":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}";export{i as ai_card}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,c as e,h as a,H as s}from"./p-
|
|
1
|
+
import{r as i,c as e,h as a,H as s}from"./p-hxWjzqcH.js";const t=class{constructor(a){i(this,a),this.suggestionClick=e(this,"suggestionClick")}label="";disabled=!1;suggestionClick;handleClick(){this.disabled||this.suggestionClick.emit(this.label)}render(){return a(s,{key:"6fe8c72e8cb7f039ec86c6e8cecf2f683fa1a815"},a("button",{key:"8c452cabba9714ef32a6dbd333bd3fe5ee6eabfe",class:{chip:!0,"chip--disabled":this.disabled},disabled:this.disabled,onClick:()=>this.handleClick()},a("span",{key:"93b9d1089133e7e03939173cb739ae069c4af022",class:"chip__label"},this.label,a("slot",{key:"f9d093ee7f63b578060557e4288d7c91827a2d1e"}))))}};t.style=":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)}";export{t as ai_suggestion}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as i,h as e,H as n}from"./p-
|
|
1
|
+
import{r as i,h as e,H as n}from"./p-hxWjzqcH.js";import{i as a}from"./p-SJZ6Ujn9.js";const t=class{constructor(e){i(this,e)}label="";href="#";target="_blank";rel="";renderShareIcon(){const i=a.share;return i?e("span",{class:"link__icon",innerHTML:`<svg width="16" height="16" viewBox="${i.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${i.content}</svg>`}):null}render(){const i=this.rel||("_blank"===this.target?"noopener noreferrer":void 0);return e(n,{key:"fbcd3760a7715aafa99b695597570de03c627014"},e("span",{key:"8583d3c2576ea89dd95ffe57dc3a6c25afa6c9c1",class:"link__label"},this.label,e("slot",{key:"272e44ad77cc4534b50e3ccdc34aac3fe43dcf02"})),e("a",{key:"f5527c895f5d309c67da2a3b81accd9b2a263212",class:"link",href:this.href,target:this.target,rel:i},this.renderShareIcon()))}};t.style=":host{--ai-link-font-size:14px;--ai-link-font-weight:700;--ai-link-line-height:20px;--ai-link-gap:4px;--ai-link-icon-size:16px;display:flex;align-items:center;gap:var(--ai-link-gap)}.link{display:inline-flex;align-items:center;justify-content:flex-end;gap:var(--ai-link-gap);color:var(--ai-accent-dark);font-size:var(--ai-link-font-size);font-weight:var(--ai-link-font-weight);font-family:inherit;line-height:var(--ai-link-line-height);text-decoration:none;white-space:nowrap;cursor:pointer;transition:color 0.15s ease;outline:none}.link:hover{color:var(--ai-accent-dark);text-decoration:underline}.link:focus-visible{outline:2px solid var(--ai-accent);outline-offset:2px;border-radius:4px}.link__icon{display:inline-flex;align-items:center;justify-content:center;width:var(--ai-link-icon-size);height:var(--ai-link-icon-size);flex-shrink:0;line-height:0}.link__label{color:var(--ai-accent-dark);font-weight:bold}";export{t as ai_link}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as e,c as t,h as n,H as i}from"./p-
|
|
2
|
-
/*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */const{entries:a,setPrototypeOf:o,isFrozen:s,getPrototypeOf:l,getOwnPropertyDescriptor:c}=Object;let{freeze:u,seal:d,create:p}=Object,{apply:f,construct:m}="undefined"!=typeof Reflect&&Reflect;u||(u=function(e){return e}),d||(d=function(e){return e}),f||(f=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.apply(t,i)}),m||(m=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});const g=L(Array.prototype.forEach),h=L(Array.prototype.lastIndexOf),b=L(Array.prototype.pop),y=L(Array.prototype.push),x=L(Array.prototype.splice),v=L(String.prototype.toLowerCase),w=L(String.prototype.toString),k=L(String.prototype.match),T=L(String.prototype.replace),A=L(String.prototype.indexOf),S=L(String.prototype.trim),E=L(Object.prototype.hasOwnProperty),R=L(RegExp.prototype.test),_=(z=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m(z,t)});var z;function L(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return f(e,t,i)}}function O(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:v;o&&o(e,null);let i=t.length;for(;i--;){let r=t[i];if("string"==typeof r){const e=n(r);e!==r&&(s(t)||(t[i]=e),r=e)}e[r]=!0}return e}function D(e){for(let t=0;t<e.length;t++)E(e,t)||(e[t]=null);return e}function C(e){const t=p(null);for(const[n,i]of a(e))E(e,n)&&(t[n]=Array.isArray(i)?D(i):i&&"object"==typeof i&&i.constructor===Object?C(i):i);return t}function M(e,t){for(;null!==e;){const n=c(e,t);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}e=l(e)}return function(){return null}}const $=u(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),I=u(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),F=u(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),B=u(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),N=u(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),j=u(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),P=u(["#text"]),U=u(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),W=u(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),q=u(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),H=u(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Y=d(/\{\{[\w\W]*|[\w\W]*\}\}/gm),K=d(/<%[\w\W]*|[\w\W]*%>/gm),G=d(/\$\{[\w\W]*/gm),X=d(/^data-[\-\w.\u00B7-\uFFFF]+$/),V=d(/^aria-[\-\w]+$/),J=d(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Z=d(/^(?:\w+script|data):/i),Q=d(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ee=d(/^html$/i),te=d(/^[a-z][.\w]*(-[.\w]+)+$/i);var ne=Object.freeze({__proto__:null,ARIA_ATTR:V,ATTR_WHITESPACE:Q,CUSTOM_ELEMENT:te,DATA_ATTR:X,DOCTYPE_NAME:ee,ERB_EXPR:K,IS_ALLOWED_URI:J,IS_SCRIPT_OR_DATA:Z,MUSTACHE_EXPR:Y,TMPLIT_EXPR:G});const ie=function(){return"undefined"==typeof window?null:window};var re=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ie();const n=t=>e(t);if(n.version="3.3.3",n.removed=[],!t||!t.document||9!==t.document.nodeType||!t.Element)return n.isSupported=!1,n;let{document:i}=t;const r=i,o=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:l,Node:c,Element:d,NodeFilter:f,NamedNodeMap:m=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:z,DOMParser:L,trustedTypes:D}=t,Y=d.prototype,K=M(Y,"cloneNode"),G=M(Y,"remove"),X=M(Y,"nextSibling"),V=M(Y,"childNodes"),Z=M(Y,"parentNode");if("function"==typeof l){const e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let Q,te="";const{implementation:re,createNodeIterator:ae,createDocumentFragment:oe,getElementsByTagName:se}=i,{importNode:le}=r;let ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof a&&"function"==typeof Z&&re&&void 0!==re.createHTMLDocument;const{MUSTACHE_EXPR:ue,ERB_EXPR:de,TMPLIT_EXPR:pe,DATA_ATTR:fe,ARIA_ATTR:me,IS_SCRIPT_OR_DATA:ge,ATTR_WHITESPACE:he,CUSTOM_ELEMENT:be}=ne;let{IS_ALLOWED_URI:ye}=ne,xe=null;const ve=O({},[...$,...I,...F,...N,...P]);let we=null;const ke=O({},[...U,...W,...q,...H]);let Te=Object.seal(p(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,Se=null;const Ee=Object.seal(p(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Re=!0,_e=!0,ze=!1,Le=!0,Oe=!1,De=!0,Ce=!1,Me=!1,$e=!1,Ie=!1,Fe=!1,Be=!1,Ne=!0,je=!1,Pe=!0,Ue=!1,We={},qe=null;const He=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ye=null;const Ke=O({},["audio","video","img","source","image","track"]);let Ge=null;const Xe=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ve="http://www.w3.org/1998/Math/MathML",Je="http://www.w3.org/2000/svg",Ze="http://www.w3.org/1999/xhtml";let Qe=Ze,et=!1,tt=null;const nt=O({},[Ve,Je,Ze],w);let it=O({},["mi","mo","mn","ms","mtext"]),rt=O({},["annotation-xml"]);const at=O({},["title","style","font","a","script"]);let ot=null;const st=["application/xhtml+xml","text/html"];let lt=null,ct=null;const ut=i.createElement("form"),dt=function(e){return e instanceof RegExp||e instanceof Function},pt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=C(e),ot=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===ot?w:v,xe=E(e,"ALLOWED_TAGS")?O({},e.ALLOWED_TAGS,lt):ve,we=E(e,"ALLOWED_ATTR")?O({},e.ALLOWED_ATTR,lt):ke,tt=E(e,"ALLOWED_NAMESPACES")?O({},e.ALLOWED_NAMESPACES,w):nt,Ge=E(e,"ADD_URI_SAFE_ATTR")?O(C(Xe),e.ADD_URI_SAFE_ATTR,lt):Xe,Ye=E(e,"ADD_DATA_URI_TAGS")?O(C(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,qe=E(e,"FORBID_CONTENTS")?O({},e.FORBID_CONTENTS,lt):He,Ae=E(e,"FORBID_TAGS")?O({},e.FORBID_TAGS,lt):C({}),Se=E(e,"FORBID_ATTR")?O({},e.FORBID_ATTR,lt):C({}),We=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,Re=!1!==e.ALLOW_ARIA_ATTR,_e=!1!==e.ALLOW_DATA_ATTR,ze=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Le=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Oe=e.SAFE_FOR_TEMPLATES||!1,De=!1!==e.SAFE_FOR_XML,Ce=e.WHOLE_DOCUMENT||!1,Ie=e.RETURN_DOM||!1,Fe=e.RETURN_DOM_FRAGMENT||!1,Be=e.RETURN_TRUSTED_TYPE||!1,$e=e.FORCE_BODY||!1,Ne=!1!==e.SANITIZE_DOM,je=e.SANITIZE_NAMED_PROPS||!1,Pe=!1!==e.KEEP_CONTENT,Ue=e.IN_PLACE||!1,ye=e.ALLOWED_URI_REGEXP||J,Qe=e.NAMESPACE||Ze,it=e.MATHML_TEXT_INTEGRATION_POINTS||it,rt=e.HTML_INTEGRATION_POINTS||rt,Te=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Oe&&(_e=!1),Fe&&(Ie=!0),We&&(xe=O({},P),we=p(null),!0===We.html&&(O(xe,$),O(we,U)),!0===We.svg&&(O(xe,I),O(we,W),O(we,H)),!0===We.svgFilters&&(O(xe,F),O(we,W),O(we,H)),!0===We.mathMl&&(O(xe,N),O(we,q),O(we,H))),E(e,"ADD_TAGS")||(Ee.tagCheck=null),E(e,"ADD_ATTR")||(Ee.attributeCheck=null),e.ADD_TAGS&&("function"==typeof e.ADD_TAGS?Ee.tagCheck=e.ADD_TAGS:(xe===ve&&(xe=C(xe)),O(xe,e.ADD_TAGS,lt))),e.ADD_ATTR&&("function"==typeof e.ADD_ATTR?Ee.attributeCheck=e.ADD_ATTR:(we===ke&&(we=C(we)),O(we,e.ADD_ATTR,lt))),e.ADD_URI_SAFE_ATTR&&O(Ge,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(qe===He&&(qe=C(qe)),O(qe,e.FORBID_CONTENTS,lt)),e.ADD_FORBID_CONTENTS&&(qe===He&&(qe=C(qe)),O(qe,e.ADD_FORBID_CONTENTS,lt)),Pe&&(xe["#text"]=!0),Ce&&O(xe,["html","head","body"]),xe.table&&(O(xe,["tbody"]),delete Ae.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,te=Q.createHTML("")}else void 0===Q&&(Q=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(n=t.getAttribute(i));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(D,o)),null!==Q&&"string"==typeof te&&(te=Q.createHTML(""));u&&u(e),ct=e}},ft=O({},[...I,...F,...B]),mt=O({},[...N,...j]),gt=function(e){y(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){G(e)}},ht=function(e,t){try{y(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){y(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Ie||Fe)try{gt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},bt=function(e){let t=null,n=null;if($e)e="<remove></remove>"+e;else{const t=k(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ot&&Qe===Ze&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const r=Q?Q.createHTML(e):e;if(Qe===Ze)try{t=(new L).parseFromString(r,ot)}catch(e){}if(!t||!t.documentElement){t=re.createDocument(Qe,"template",null);try{t.documentElement.innerHTML=et?te:r}catch(e){}}const a=t.body||t.documentElement;return e&&n&&a.insertBefore(i.createTextNode(n),a.childNodes[0]||null),Qe===Ze?se.call(t,Ce?"html":"body")[0]:Ce?t.documentElement:a},yt=function(e){return ae.call(e.ownerDocument||e,e,f.SHOW_ELEMENT|f.SHOW_COMMENT|f.SHOW_TEXT|f.SHOW_PROCESSING_INSTRUCTION|f.SHOW_CDATA_SECTION,null)},xt=function(e){return e instanceof z&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof m)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},vt=function(e){return"function"==typeof c&&e instanceof c};function wt(e,t,i){g(e,(e=>{e.call(n,t,i,ct)}))}const kt=function(e){let t=null;if(wt(ce.beforeSanitizeElements,e,null),xt(e))return gt(e),!0;const i=lt(e.nodeName);if(wt(ce.uponSanitizeElement,e,{tagName:i,allowedTags:xe}),De&&e.hasChildNodes()&&!vt(e.firstElementChild)&&R(/<[/\w!]/g,e.innerHTML)&&R(/<[/\w!]/g,e.textContent))return gt(e),!0;if(7===e.nodeType)return gt(e),!0;if(De&&8===e.nodeType&&R(/<[/\w]/g,e.data))return gt(e),!0;if(!(Ee.tagCheck instanceof Function&&Ee.tagCheck(i))&&(!xe[i]||Ae[i])){if(!Ae[i]&&At(i)){if(Te.tagNameCheck instanceof RegExp&&R(Te.tagNameCheck,i))return!1;if(Te.tagNameCheck instanceof Function&&Te.tagNameCheck(i))return!1}if(Pe&&!qe[i]){const t=Z(e)||e.parentNode,n=V(e)||e.childNodes;if(n&&t)for(let i=n.length-1;i>=0;--i){const r=K(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,X(e))}}return gt(e),!0}return e instanceof d&&!function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:Qe,tagName:"template"});const n=v(e.tagName),i=v(t.tagName);return!!tt[e.namespaceURI]&&(e.namespaceURI===Je?t.namespaceURI===Ze?"svg"===n:t.namespaceURI===Ve?"svg"===n&&("annotation-xml"===i||it[i]):Boolean(ft[n]):e.namespaceURI===Ve?t.namespaceURI===Ze?"math"===n:t.namespaceURI===Je?"math"===n&&rt[i]:Boolean(mt[n]):e.namespaceURI===Ze?!(t.namespaceURI===Je&&!rt[i])&&!(t.namespaceURI===Ve&&!it[i])&&!mt[n]&&(at[n]||!ft[n]):!("application/xhtml+xml"!==ot||!tt[e.namespaceURI]))}(e)?(gt(e),!0):"noscript"!==i&&"noembed"!==i&&"noframes"!==i||!R(/<\/no(script|embed|frames)/i,e.innerHTML)?(Oe&&3===e.nodeType&&(t=e.textContent,g([ue,de,pe],(e=>{t=T(t,e," ")})),e.textContent!==t&&(y(n.removed,{element:e.cloneNode()}),e.textContent=t)),wt(ce.afterSanitizeElements,e,null),!1):(gt(e),!0)},Tt=function(e,t,n){if(Se[t])return!1;if(Ne&&("id"===t||"name"===t)&&(n in i||n in ut))return!1;if(_e&&!Se[t]&&R(fe,t));else if(Re&&R(me,t));else if(Ee.attributeCheck instanceof Function&&Ee.attributeCheck(t,e));else if(!we[t]||Se[t]){if(!(At(e)&&(Te.tagNameCheck instanceof RegExp&&R(Te.tagNameCheck,e)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(e))&&(Te.attributeNameCheck instanceof RegExp&&R(Te.attributeNameCheck,t)||Te.attributeNameCheck instanceof Function&&Te.attributeNameCheck(t,e))||"is"===t&&Te.allowCustomizedBuiltInElements&&(Te.tagNameCheck instanceof RegExp&&R(Te.tagNameCheck,n)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))))return!1}else if(Ge[t]);else if(R(ye,T(n,he,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==A(n,"data:")||!Ye[e])if(ze&&!R(ge,T(n,he,"")));else if(n)return!1;return!0},At=function(e){return"annotation-xml"!==e&&k(e,be)},St=function(e){wt(ce.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||xt(e))return;const i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we,forceKeepAttr:void 0};let r=t.length;for(;r--;){const a=t[r],{name:o,namespaceURI:s,value:l}=a,c=lt(o),u=l;let d="value"===o?u:S(u);if(i.attrName=c,i.attrValue=d,i.keepAttr=!0,i.forceKeepAttr=void 0,wt(ce.uponSanitizeAttribute,e,i),d=i.attrValue,!je||"id"!==c&&"name"!==c||(ht(o,e),d="user-content-"+d),De&&R(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ht(o,e);continue}if("attributename"===c&&k(d,"href")){ht(o,e);continue}if(i.forceKeepAttr)continue;if(!i.keepAttr){ht(o,e);continue}if(!Le&&R(/\/>/i,d)){ht(o,e);continue}Oe&&g([ue,de,pe],(e=>{d=T(d,e," ")}));const p=lt(e.nodeName);if(Tt(p,c,d)){if(Q&&"object"==typeof D&&"function"==typeof D.getAttributeType)if(s);else switch(D.getAttributeType(p,c)){case"TrustedHTML":d=Q.createHTML(d);break;case"TrustedScriptURL":d=Q.createScriptURL(d)}if(d!==u)try{s?e.setAttributeNS(s,o,d):e.setAttribute(o,d),xt(e)?gt(e):b(n.removed)}catch(t){ht(o,e)}}else ht(o,e)}wt(ce.afterSanitizeAttributes,e,null)},Et=function e(t){let n=null;const i=yt(t);for(wt(ce.beforeSanitizeShadowDOM,t,null);n=i.nextNode();)wt(ce.uponSanitizeShadowNode,n,null),kt(n),St(n),n.content instanceof s&&e(n.content);wt(ce.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,o=null,l=null;if(et=!e,et&&(e="\x3c!--\x3e"),"string"!=typeof e&&!vt(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Me||pt(t),n.removed=[],"string"==typeof e&&(Ue=!1),Ue){if(e.nodeName){const t=lt(e.nodeName);if(!xe[t]||Ae[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof c)i=bt("\x3c!----\x3e"),a=i.ownerDocument.importNode(e,!0),1===a.nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!Ie&&!Oe&&!Ce&&-1===e.indexOf("<"))return Q&&Be?Q.createHTML(e):e;if(i=bt(e),!i)return Ie?null:Be?te:""}i&&$e&>(i.firstChild);const u=yt(Ue?e:i);for(;o=u.nextNode();)kt(o),St(o),o.content instanceof s&&Et(o.content);if(Ue)return e;if(Ie){if(Fe)for(l=oe.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(we.shadowroot||we.shadowrootmode)&&(l=le.call(r,l,!0)),l}let d=Ce?i.outerHTML:i.innerHTML;return Ce&&xe["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&R(ee,i.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+i.ownerDocument.doctype.name+">\n"+d),Oe&&g([ue,de,pe],(e=>{d=T(d,e," ")})),Q&&Be?Q.createHTML(d):d},n.setConfig=function(){pt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Me=!0},n.clearConfig=function(){ct=null,Me=!1},n.isValidAttribute=function(e,t,n){ct||pt({});const i=lt(e),r=lt(t);return Tt(i,r,n)},n.addHook=function(e,t){"function"==typeof t&&y(ce[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=h(ce[e],t);return-1===n?void 0:x(ce[e],n,1)[0]}return b(ce[e])},n.removeHooks=function(e){ce[e]=[]},n.removeAllHooks=function(){ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}();const ae={ALLOWED_TAGS:["p","br","strong","em","del","code","pre","ul","ol","li","h2","h3","a","blockquote","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","target","rel"]},oe=class{constructor(n){e(this,n),this.messageCopy=t(this,"messageCopy"),this.messageFeedback=t(this,"messageFeedback"),this.messageRegenerate=t(this,"messageRegenerate")}role="user";content="";format="text";agentName="";timestamp="";showActions=!0;enableRegenerate=!1;feedbackValue=null;messageCopy;messageFeedback;messageRegenerate;copySuccess=!1;copyTimeout;disconnectedCallback(){this.copyTimeout&&clearTimeout(this.copyTimeout)}renderIcon(e,t=16){const i=r[e];return i?n("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${t}" viewBox="${i.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${i.content}</svg>`}):null}parseMarkdown(e){let t=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");const n=[];return t=t.replace(/```(?:\w+)?\n?([\s\S]*?)```/g,((e,t)=>{const i=n.length;return n.push(`<pre><code>${t}</code></pre>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\|.+\|\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim()));if(t.length<2)return e;let i="<table>",r=!1;t.forEach(((e,t)=>{if(/^[\s|:-]+$/.test(e))return r=!0,void(i+="<tbody>");const n=e.split("|").filter(((e,t,n)=>t>0&&t<n.length-1));i+=r||0!==t?`<tr>${n.map((e=>`<td>${e.trim()}</td>`)).join("")}</tr>`:`<thead><tr>${n.map((e=>`<th>${e.trim()}</th>`)).join("")}</tr></thead>`})),r&&(i+="</tbody>"),i+="</table>";const a=n.length;return n.push(i),`\0BLOCK${a}\0`})),t=t.replace(/((?:^> .+\n?)+)/gm,(e=>{const t=e.replace(/^> /gm,"").trim(),i=n.length;return n.push(`<blockquote>${t}</blockquote>`),`\0BLOCK${i}\0`})),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/^## (.+)$/gm,"<h2>$1</h2>"),t=t.replace(/^### (.+)$/gm,"<h3>$1</h3>"),t=t.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/~~(.+?)~~/g,"<del>$1</del>"),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),t=t.replace(/((?:^[ \t]*[-*] .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*[-*] /,"")}</li>`)).join(""),i=n.length;return n.push(`<ul>${t}</ul>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\d+\. .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*\d+\. /,"")}</li>`)).join(""),i=n.length;return n.push(`<ol>${t}</ol>`),`\0BLOCK${i}\0`})),t=t.split(/\n{2,}/).map((e=>{const t=e.trim();return t?/^\x00BLOCK\d+\x00$/.test(t)?t:`<p>${t.replace(/\n/g,"<br>")}</p>`:""})).join(""),t=t.replace(/\x00BLOCK(\d+)\x00/g,((e,t)=>n[parseInt(t,10)]||"")),t}getRenderedContent(){return this.content?re.sanitize(this.parseMarkdown(this.content),ae):""}getRelativeTime(){if(!this.timestamp)return"";try{const e=new Date(this.timestamp);if(isNaN(e.getTime()))return this.timestamp;const t=Date.now()-e.getTime(),n=Math.floor(t/6e4),i=Math.floor(n/60),r=Math.floor(i/24),a="undefined"!=typeof document&&document.documentElement.lang||"ar",o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});return n<1?o.format(0,"second"):n<60?o.format(-n,"minute"):i<24?o.format(-i,"hour"):o.format(-r,"day")}catch{return this.timestamp}}async handleCopy(){try{await navigator.clipboard.writeText(this.content)}catch(e){}this.copySuccess=!0,this.messageCopy.emit(),this.copyTimeout=setTimeout((()=>this.copySuccess=!1),1500)}handleFeedback(e){this.feedbackValue=this.feedbackValue===e?null:e,this.messageFeedback.emit(e)}renderActionsBar(){return n("div",{class:"actions-bar"},this.enableRegenerate&&n("button",{class:"action-btn",onClick:()=>this.messageRegenerate.emit(),title:"إعادة تحميل"},this.renderIcon("reload",16)),n("button",{class:"action-btn copy-btn"+(this.copySuccess?" copy-success":""),onClick:()=>this.handleCopy(),title:"نسخ"},this.renderIcon("copy",16)),n("div",{class:"feedback-group"},n("button",{class:"feedback-btn thumbs-down-btn"+("down"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("down"),title:"غير مفيد"},this.renderIcon("thumbs-down",16)),n("button",{class:"feedback-btn thumbs-up-btn"+("up"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("up"),title:"مفيد"},this.renderIcon("thumbs-up",16))))}renderUserMessage(){return n("div",{class:"message-row user-row"},n("div",{class:"bubble user-bubble"},n("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}})))}renderAgentMessage(){const e=this.showActions;return n("div",{class:"message-row agent-row"},n("div",{class:"agent-bubble-wrapper"},n("div",{class:"bubble agent-bubble"},this.content&&n("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}}),n("slot",null),e&&this.renderActionsBar()),(this.agentName||this.timestamp)&&n("div",{class:"agent-info"},this.agentName&&n("span",{class:"agent-info-name"},this.agentName),this.agentName&&this.timestamp&&this.renderIcon("eclipse",10),this.timestamp&&n("span",{class:"agent-info-time"},this.getRelativeTime()))))}render(){return n(i,{key:"a3da55a7f023469f2538b363ff691674c241227e"},"user"===this.role?this.renderUserMessage():this.renderAgentMessage())}};oe.style=":host{--ai-msg-user-bg:var(--ai-user-bubble-bg);--ai-msg-user-border:1px solid var(--ai-border-default);--ai-msg-agent-bg:var(--ai-agent-bubble-bg);--ai-msg-agent-border:1px solid var(--ai-border-default);--ai-msg-border-radius:16px;--ai-msg-padding:16px;--ai-msg-font-size:14px;--ai-msg-action-active-bg:var(--ai-accent);--ai-user-msg-max-width:80%;--ai-agent-msg-max-width:80%;display:block}.message-row{display:flex}.user-row{flex-direction:column;align-items:flex-end}.user-bubble{background:var(--ai-msg-user-bg);color:var(--ai-text-primary);border:var(--ai-msg-user-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);max-width:var(--ai-user-msg-max-width);line-height:1.5;word-break:break-word;box-shadow:var(--ai-shadow-sm)}.user-row .timestamp{font-size:12px;color:var(--ai-text-secondary);margin-top:4px}.agent-row{flex-direction:row;justify-content:flex-start}.agent-bubble-wrapper{display:flex;flex-direction:column;gap:6px;width:100%;max-width:var(--ai-msg-agent-max-width);min-width:0}.agent-bubble{background:var(--ai-msg-agent-bg);color:var(--ai-text-primary);border:var(--ai-msg-agent-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);line-height:1.6;word-break:break-word;box-shadow:var(--ai-shadow-sm);display:flex;flex-direction:column;gap:12px}.message-content{white-space:pre-wrap}.message-content p{margin:0 0 8px 0}.message-content p:last-child{margin-bottom:0}.message-content h2{font-size:16px;font-weight:700;margin:0 0 8px 0}.message-content h3{font-size:15px;font-weight:600;margin:0 0 6px 0}.message-content strong{font-weight:700}.message-content em{font-style:italic}.message-content code{background:var(--ai-bg-surface);border-radius:4px;padding:1px 5px;font-family:var(--ai-font-family-mono);font-size:13px;color:var(--ai-text-primary)}.message-content pre{background:var(--ai-bg-surface);border-radius:8px;padding:10px 12px;overflow-x:auto;margin:8px 0}.message-content pre code{background:none;padding:0;font-size:13px}.message-content ul,.message-content ol{padding-inline-start:20px;margin:4px 0 8px 0}.message-content li{margin-bottom:3px}.actions-bar{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;height:0;overflow:hidden;opacity:0;pointer-events:none;transition:height 0.15s ease, opacity 0.15s ease}.agent-bubble:hover .actions-bar{height:32px;opacity:1;pointer-events:auto}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--ai-bg-card);border:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s;padding:0;flex-shrink:0}.action-btn:hover{background:var(--ai-bg-surface)}.action-btn.copy-success{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text);border-color:var(--ai-accent)}.feedback-group{display:flex;align-items:center;border:1px solid var(--ai-border-default);border-radius:8px;overflow:hidden;background:var(--ai-bg-card)}.feedback-btn{display:flex;align-items:center;justify-content:center;height:32px;padding:0 8px;background:var(--ai-bg-card);border:none;border-inline-start:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s}.feedback-btn:first-child{border-inline-start:none}.feedback-btn:hover{background:var(--ai-bg-surface)}.feedback-btn.active{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text)}.icon-wrap{display:flex;align-items:center;justify-content:center;line-height:0}.agent-info{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;color:var(--ai-text-muted)}.agent-info-name,.agent-info-time{font-size:12px;color:inherit;line-height:16px;white-space:nowrap}.agent-info .icon-wrap{display:flex;align-items:center;color:inherit;opacity:0.6;flex-shrink:0}.typing-indicator{display:flex;align-items:center;gap:5px;padding:4px 2px}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--ai-text-muted);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:0.2s}.typing-dot:nth-child(3){animation-delay:0.4s}@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}.streaming-cursor{display:inline-block;width:2px;height:1em;background:currentColor;vertical-align:text-bottom;margin-inline-start:2px;animation:cursorBlink 0.8s step-start infinite}@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}";export{oe as ai_chat_message}
|
|
1
|
+
import{r as e,c as t,h as n,H as i}from"./p-hxWjzqcH.js";import{i as r}from"./p-SJZ6Ujn9.js";
|
|
2
|
+
/*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */const{entries:a,setPrototypeOf:o,isFrozen:s,getPrototypeOf:l,getOwnPropertyDescriptor:c}=Object;let{freeze:u,seal:d,create:p}=Object,{apply:f,construct:m}="undefined"!=typeof Reflect&&Reflect;u||(u=function(e){return e}),d||(d=function(e){return e}),f||(f=function(e,t){for(var n=arguments.length,i=new Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.apply(t,i)}),m||(m=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});const g=L(Array.prototype.forEach),h=L(Array.prototype.lastIndexOf),b=L(Array.prototype.pop),y=L(Array.prototype.push),x=L(Array.prototype.splice),v=L(String.prototype.toLowerCase),w=L(String.prototype.toString),k=L(String.prototype.match),T=L(String.prototype.replace),A=L(String.prototype.indexOf),S=L(String.prototype.trim),E=L(Object.prototype.hasOwnProperty),R=L(RegExp.prototype.test),_=(z=TypeError,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return m(z,t)});var z;function L(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return f(e,t,i)}}function O(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:v;o&&o(e,null);let i=t.length;for(;i--;){let r=t[i];if("string"==typeof r){const e=n(r);e!==r&&(s(t)||(t[i]=e),r=e)}e[r]=!0}return e}function D(e){for(let t=0;t<e.length;t++)E(e,t)||(e[t]=null);return e}function C(e){const t=p(null);for(const[n,i]of a(e))E(e,n)&&(t[n]=Array.isArray(i)?D(i):i&&"object"==typeof i&&i.constructor===Object?C(i):i);return t}function M(e,t){for(;null!==e;){const n=c(e,t);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}e=l(e)}return function(){return null}}const $=u(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),F=u(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),I=u(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),B=u(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),N=u(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),j=u(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),P=u(["#text"]),U=u(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),W=u(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),q=u(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),H=u(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Y=d(/\{\{[\w\W]*|[\w\W]*\}\}/gm),K=d(/<%[\w\W]*|[\w\W]*%>/gm),G=d(/\$\{[\w\W]*/gm),X=d(/^data-[\-\w.\u00B7-\uFFFF]+$/),V=d(/^aria-[\-\w]+$/),J=d(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Z=d(/^(?:\w+script|data):/i),Q=d(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),ee=d(/^html$/i),te=d(/^[a-z][.\w]*(-[.\w]+)+$/i);var ne=Object.freeze({__proto__:null,ARIA_ATTR:V,ATTR_WHITESPACE:Q,CUSTOM_ELEMENT:te,DATA_ATTR:X,DOCTYPE_NAME:ee,ERB_EXPR:K,IS_ALLOWED_URI:J,IS_SCRIPT_OR_DATA:Z,MUSTACHE_EXPR:Y,TMPLIT_EXPR:G});const ie=function(){return"undefined"==typeof window?null:window};var re=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:ie();const n=t=>e(t);if(n.version="3.3.3",n.removed=[],!t||!t.document||9!==t.document.nodeType||!t.Element)return n.isSupported=!1,n;let{document:i}=t;const r=i,o=r.currentScript,{DocumentFragment:s,HTMLTemplateElement:l,Node:c,Element:d,NodeFilter:f,NamedNodeMap:m=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:z,DOMParser:L,trustedTypes:D}=t,Y=d.prototype,K=M(Y,"cloneNode"),G=M(Y,"remove"),X=M(Y,"nextSibling"),V=M(Y,"childNodes"),Z=M(Y,"parentNode");if("function"==typeof l){const e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let Q,te="";const{implementation:re,createNodeIterator:ae,createDocumentFragment:oe,getElementsByTagName:se}=i,{importNode:le}=r;let ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof a&&"function"==typeof Z&&re&&void 0!==re.createHTMLDocument;const{MUSTACHE_EXPR:ue,ERB_EXPR:de,TMPLIT_EXPR:pe,DATA_ATTR:fe,ARIA_ATTR:me,IS_SCRIPT_OR_DATA:ge,ATTR_WHITESPACE:he,CUSTOM_ELEMENT:be}=ne;let{IS_ALLOWED_URI:ye}=ne,xe=null;const ve=O({},[...$,...F,...I,...N,...P]);let we=null;const ke=O({},[...U,...W,...q,...H]);let Te=Object.seal(p(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,Se=null;const Ee=Object.seal(p(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Re=!0,_e=!0,ze=!1,Le=!0,Oe=!1,De=!0,Ce=!1,Me=!1,$e=!1,Fe=!1,Ie=!1,Be=!1,Ne=!0,je=!1,Pe=!0,Ue=!1,We={},qe=null;const He=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ye=null;const Ke=O({},["audio","video","img","source","image","track"]);let Ge=null;const Xe=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ve="http://www.w3.org/1998/Math/MathML",Je="http://www.w3.org/2000/svg",Ze="http://www.w3.org/1999/xhtml";let Qe=Ze,et=!1,tt=null;const nt=O({},[Ve,Je,Ze],w);let it=O({},["mi","mo","mn","ms","mtext"]),rt=O({},["annotation-xml"]);const at=O({},["title","style","font","a","script"]);let ot=null;const st=["application/xhtml+xml","text/html"];let lt=null,ct=null;const ut=i.createElement("form"),dt=function(e){return e instanceof RegExp||e instanceof Function},pt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=C(e),ot=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===ot?w:v,xe=E(e,"ALLOWED_TAGS")?O({},e.ALLOWED_TAGS,lt):ve,we=E(e,"ALLOWED_ATTR")?O({},e.ALLOWED_ATTR,lt):ke,tt=E(e,"ALLOWED_NAMESPACES")?O({},e.ALLOWED_NAMESPACES,w):nt,Ge=E(e,"ADD_URI_SAFE_ATTR")?O(C(Xe),e.ADD_URI_SAFE_ATTR,lt):Xe,Ye=E(e,"ADD_DATA_URI_TAGS")?O(C(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,qe=E(e,"FORBID_CONTENTS")?O({},e.FORBID_CONTENTS,lt):He,Ae=E(e,"FORBID_TAGS")?O({},e.FORBID_TAGS,lt):C({}),Se=E(e,"FORBID_ATTR")?O({},e.FORBID_ATTR,lt):C({}),We=!!E(e,"USE_PROFILES")&&e.USE_PROFILES,Re=!1!==e.ALLOW_ARIA_ATTR,_e=!1!==e.ALLOW_DATA_ATTR,ze=e.ALLOW_UNKNOWN_PROTOCOLS||!1,Le=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Oe=e.SAFE_FOR_TEMPLATES||!1,De=!1!==e.SAFE_FOR_XML,Ce=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Be=e.RETURN_TRUSTED_TYPE||!1,$e=e.FORCE_BODY||!1,Ne=!1!==e.SANITIZE_DOM,je=e.SANITIZE_NAMED_PROPS||!1,Pe=!1!==e.KEEP_CONTENT,Ue=e.IN_PLACE||!1,ye=e.ALLOWED_URI_REGEXP||J,Qe=e.NAMESPACE||Ze,it=e.MATHML_TEXT_INTEGRATION_POINTS||it,rt=e.HTML_INTEGRATION_POINTS||rt,Te=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Oe&&(_e=!1),Ie&&(Fe=!0),We&&(xe=O({},P),we=p(null),!0===We.html&&(O(xe,$),O(we,U)),!0===We.svg&&(O(xe,F),O(we,W),O(we,H)),!0===We.svgFilters&&(O(xe,I),O(we,W),O(we,H)),!0===We.mathMl&&(O(xe,N),O(we,q),O(we,H))),E(e,"ADD_TAGS")||(Ee.tagCheck=null),E(e,"ADD_ATTR")||(Ee.attributeCheck=null),e.ADD_TAGS&&("function"==typeof e.ADD_TAGS?Ee.tagCheck=e.ADD_TAGS:(xe===ve&&(xe=C(xe)),O(xe,e.ADD_TAGS,lt))),e.ADD_ATTR&&("function"==typeof e.ADD_ATTR?Ee.attributeCheck=e.ADD_ATTR:(we===ke&&(we=C(we)),O(we,e.ADD_ATTR,lt))),e.ADD_URI_SAFE_ATTR&&O(Ge,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(qe===He&&(qe=C(qe)),O(qe,e.FORBID_CONTENTS,lt)),e.ADD_FORBID_CONTENTS&&(qe===He&&(qe=C(qe)),O(qe,e.ADD_FORBID_CONTENTS,lt)),Pe&&(xe["#text"]=!0),Ce&&O(xe,["html","head","body"]),xe.table&&(O(xe,["tbody"]),delete Ae.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw _('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,te=Q.createHTML("")}else void 0===Q&&(Q=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(n=t.getAttribute(i));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(D,o)),null!==Q&&"string"==typeof te&&(te=Q.createHTML(""));u&&u(e),ct=e}},ft=O({},[...F,...I,...B]),mt=O({},[...N,...j]),gt=function(e){y(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){G(e)}},ht=function(e,t){try{y(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){y(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Fe||Ie)try{gt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},bt=function(e){let t=null,n=null;if($e)e="<remove></remove>"+e;else{const t=k(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ot&&Qe===Ze&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const r=Q?Q.createHTML(e):e;if(Qe===Ze)try{t=(new L).parseFromString(r,ot)}catch(e){}if(!t||!t.documentElement){t=re.createDocument(Qe,"template",null);try{t.documentElement.innerHTML=et?te:r}catch(e){}}const a=t.body||t.documentElement;return e&&n&&a.insertBefore(i.createTextNode(n),a.childNodes[0]||null),Qe===Ze?se.call(t,Ce?"html":"body")[0]:Ce?t.documentElement:a},yt=function(e){return ae.call(e.ownerDocument||e,e,f.SHOW_ELEMENT|f.SHOW_COMMENT|f.SHOW_TEXT|f.SHOW_PROCESSING_INSTRUCTION|f.SHOW_CDATA_SECTION,null)},xt=function(e){return e instanceof z&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof m)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},vt=function(e){return"function"==typeof c&&e instanceof c};function wt(e,t,i){g(e,(e=>{e.call(n,t,i,ct)}))}const kt=function(e){let t=null;if(wt(ce.beforeSanitizeElements,e,null),xt(e))return gt(e),!0;const i=lt(e.nodeName);if(wt(ce.uponSanitizeElement,e,{tagName:i,allowedTags:xe}),De&&e.hasChildNodes()&&!vt(e.firstElementChild)&&R(/<[/\w!]/g,e.innerHTML)&&R(/<[/\w!]/g,e.textContent))return gt(e),!0;if(7===e.nodeType)return gt(e),!0;if(De&&8===e.nodeType&&R(/<[/\w]/g,e.data))return gt(e),!0;if(!(Ee.tagCheck instanceof Function&&Ee.tagCheck(i))&&(!xe[i]||Ae[i])){if(!Ae[i]&&At(i)){if(Te.tagNameCheck instanceof RegExp&&R(Te.tagNameCheck,i))return!1;if(Te.tagNameCheck instanceof Function&&Te.tagNameCheck(i))return!1}if(Pe&&!qe[i]){const t=Z(e)||e.parentNode,n=V(e)||e.childNodes;if(n&&t)for(let i=n.length-1;i>=0;--i){const r=K(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,X(e))}}return gt(e),!0}return e instanceof d&&!function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:Qe,tagName:"template"});const n=v(e.tagName),i=v(t.tagName);return!!tt[e.namespaceURI]&&(e.namespaceURI===Je?t.namespaceURI===Ze?"svg"===n:t.namespaceURI===Ve?"svg"===n&&("annotation-xml"===i||it[i]):Boolean(ft[n]):e.namespaceURI===Ve?t.namespaceURI===Ze?"math"===n:t.namespaceURI===Je?"math"===n&&rt[i]:Boolean(mt[n]):e.namespaceURI===Ze?!(t.namespaceURI===Je&&!rt[i])&&!(t.namespaceURI===Ve&&!it[i])&&!mt[n]&&(at[n]||!ft[n]):!("application/xhtml+xml"!==ot||!tt[e.namespaceURI]))}(e)?(gt(e),!0):"noscript"!==i&&"noembed"!==i&&"noframes"!==i||!R(/<\/no(script|embed|frames)/i,e.innerHTML)?(Oe&&3===e.nodeType&&(t=e.textContent,g([ue,de,pe],(e=>{t=T(t,e," ")})),e.textContent!==t&&(y(n.removed,{element:e.cloneNode()}),e.textContent=t)),wt(ce.afterSanitizeElements,e,null),!1):(gt(e),!0)},Tt=function(e,t,n){if(Se[t])return!1;if(Ne&&("id"===t||"name"===t)&&(n in i||n in ut))return!1;if(_e&&!Se[t]&&R(fe,t));else if(Re&&R(me,t));else if(Ee.attributeCheck instanceof Function&&Ee.attributeCheck(t,e));else if(!we[t]||Se[t]){if(!(At(e)&&(Te.tagNameCheck instanceof RegExp&&R(Te.tagNameCheck,e)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(e))&&(Te.attributeNameCheck instanceof RegExp&&R(Te.attributeNameCheck,t)||Te.attributeNameCheck instanceof Function&&Te.attributeNameCheck(t,e))||"is"===t&&Te.allowCustomizedBuiltInElements&&(Te.tagNameCheck instanceof RegExp&&R(Te.tagNameCheck,n)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))))return!1}else if(Ge[t]);else if(R(ye,T(n,he,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==A(n,"data:")||!Ye[e])if(ze&&!R(ge,T(n,he,"")));else if(n)return!1;return!0},At=function(e){return"annotation-xml"!==e&&k(e,be)},St=function(e){wt(ce.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||xt(e))return;const i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we,forceKeepAttr:void 0};let r=t.length;for(;r--;){const a=t[r],{name:o,namespaceURI:s,value:l}=a,c=lt(o),u=l;let d="value"===o?u:S(u);if(i.attrName=c,i.attrValue=d,i.keepAttr=!0,i.forceKeepAttr=void 0,wt(ce.uponSanitizeAttribute,e,i),d=i.attrValue,!je||"id"!==c&&"name"!==c||(ht(o,e),d="user-content-"+d),De&&R(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ht(o,e);continue}if("attributename"===c&&k(d,"href")){ht(o,e);continue}if(i.forceKeepAttr)continue;if(!i.keepAttr){ht(o,e);continue}if(!Le&&R(/\/>/i,d)){ht(o,e);continue}Oe&&g([ue,de,pe],(e=>{d=T(d,e," ")}));const p=lt(e.nodeName);if(Tt(p,c,d)){if(Q&&"object"==typeof D&&"function"==typeof D.getAttributeType)if(s);else switch(D.getAttributeType(p,c)){case"TrustedHTML":d=Q.createHTML(d);break;case"TrustedScriptURL":d=Q.createScriptURL(d)}if(d!==u)try{s?e.setAttributeNS(s,o,d):e.setAttribute(o,d),xt(e)?gt(e):b(n.removed)}catch(t){ht(o,e)}}else ht(o,e)}wt(ce.afterSanitizeAttributes,e,null)},Et=function e(t){let n=null;const i=yt(t);for(wt(ce.beforeSanitizeShadowDOM,t,null);n=i.nextNode();)wt(ce.uponSanitizeShadowNode,n,null),kt(n),St(n),n.content instanceof s&&e(n.content);wt(ce.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,o=null,l=null;if(et=!e,et&&(e="\x3c!--\x3e"),"string"!=typeof e&&!vt(e)){if("function"!=typeof e.toString)throw _("toString is not a function");if("string"!=typeof(e=e.toString()))throw _("dirty is not a string, aborting")}if(!n.isSupported)return e;if(Me||pt(t),n.removed=[],"string"==typeof e&&(Ue=!1),Ue){if(e.nodeName){const t=lt(e.nodeName);if(!xe[t]||Ae[t])throw _("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof c)i=bt("\x3c!----\x3e"),a=i.ownerDocument.importNode(e,!0),1===a.nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!Fe&&!Oe&&!Ce&&-1===e.indexOf("<"))return Q&&Be?Q.createHTML(e):e;if(i=bt(e),!i)return Fe?null:Be?te:""}i&&$e&>(i.firstChild);const u=yt(Ue?e:i);for(;o=u.nextNode();)kt(o),St(o),o.content instanceof s&&Et(o.content);if(Ue)return e;if(Fe){if(Ie)for(l=oe.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(we.shadowroot||we.shadowrootmode)&&(l=le.call(r,l,!0)),l}let d=Ce?i.outerHTML:i.innerHTML;return Ce&&xe["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&R(ee,i.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+i.ownerDocument.doctype.name+">\n"+d),Oe&&g([ue,de,pe],(e=>{d=T(d,e," ")})),Q&&Be?Q.createHTML(d):d},n.setConfig=function(){pt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),Me=!0},n.clearConfig=function(){ct=null,Me=!1},n.isValidAttribute=function(e,t,n){ct||pt({});const i=lt(e),r=lt(t);return Tt(i,r,n)},n.addHook=function(e,t){"function"==typeof t&&y(ce[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=h(ce[e],t);return-1===n?void 0:x(ce[e],n,1)[0]}return b(ce[e])},n.removeHooks=function(e){ce[e]=[]},n.removeAllHooks=function(){ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}();const ae={ALLOWED_TAGS:["p","br","strong","em","del","code","pre","ul","ol","li","h2","h3","a","blockquote","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","target","rel"]},oe=class{constructor(n){e(this,n),this.messageCopy=t(this,"messageCopy"),this.messageFeedback=t(this,"messageFeedback"),this.messageRegenerate=t(this,"messageRegenerate")}role="user";content="";format="text";agentName="";timestamp="";showActions=!0;enableRegenerate=!1;feedbackValue=null;messageCopy;messageFeedback;messageRegenerate;copySuccess=!1;copyTimeout;disconnectedCallback(){this.copyTimeout&&clearTimeout(this.copyTimeout)}renderIcon(e,t=16){const i=r[e];return i?n("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${t}" viewBox="${i.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${i.content}</svg>`}):null}parseMarkdown(e){let t=e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""");const n=[];return t=t.replace(/```(?:\w+)?\n?([\s\S]*?)```/g,((e,t)=>{const i=n.length;return n.push(`<pre><code>${t}</code></pre>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\|.+\|\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim()));if(t.length<2)return e;let i="<table>",r=!1;t.forEach(((e,t)=>{if(/^[\s|:-]+$/.test(e))return r=!0,void(i+="<tbody>");const n=e.split("|").filter(((e,t,n)=>t>0&&t<n.length-1));i+=r||0!==t?`<tr>${n.map((e=>`<td>${e.trim()}</td>`)).join("")}</tr>`:`<thead><tr>${n.map((e=>`<th>${e.trim()}</th>`)).join("")}</tr></thead>`})),r&&(i+="</tbody>"),i+="</table>";const a=n.length;return n.push(i),`\0BLOCK${a}\0`})),t=t.replace(/((?:^> .+\n?)+)/gm,(e=>{const t=e.replace(/^> /gm,"").trim(),i=n.length;return n.push(`<blockquote>${t}</blockquote>`),`\0BLOCK${i}\0`})),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/^## (.+)$/gm,"<h2>$1</h2>"),t=t.replace(/^### (.+)$/gm,"<h3>$1</h3>"),t=t.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/~~(.+?)~~/g,"<del>$1</del>"),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),t=t.replace(/((?:^[ \t]*[-*] .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*[-*] /,"")}</li>`)).join(""),i=n.length;return n.push(`<ul>${t}</ul>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\d+\. .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*\d+\. /,"")}</li>`)).join(""),i=n.length;return n.push(`<ol>${t}</ol>`),`\0BLOCK${i}\0`})),t=t.split(/\n{2,}/).map((e=>{const t=e.trim();return t?/^\x00BLOCK\d+\x00$/.test(t)?t:`<p>${t.replace(/\n/g,"<br>")}</p>`:""})).join(""),t=t.replace(/\x00BLOCK(\d+)\x00/g,((e,t)=>n[parseInt(t,10)]||"")),t}getRenderedContent(){return this.content?re.sanitize(this.parseMarkdown(this.content),ae):""}getRelativeTime(){if(!this.timestamp)return"";try{const e=new Date(this.timestamp);if(isNaN(e.getTime()))return this.timestamp;const t=Date.now()-e.getTime(),n=Math.floor(t/6e4),i=Math.floor(n/60),r=Math.floor(i/24),a="undefined"!=typeof document&&document.documentElement.lang||"ar",o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});return n<1?o.format(0,"second"):n<60?o.format(-n,"minute"):i<24?o.format(-i,"hour"):o.format(-r,"day")}catch{return this.timestamp}}async handleCopy(){try{await navigator.clipboard.writeText(this.content)}catch(e){}this.copySuccess=!0,this.messageCopy.emit(),this.copyTimeout=setTimeout((()=>this.copySuccess=!1),1500)}handleFeedback(e){this.feedbackValue=this.feedbackValue===e?null:e,this.messageFeedback.emit(e)}renderActionsBar(){return n("div",{class:"actions-bar"},this.enableRegenerate&&n("button",{class:"action-btn",onClick:()=>this.messageRegenerate.emit(),title:"إعادة تحميل"},this.renderIcon("reload",16)),n("button",{class:"action-btn copy-btn"+(this.copySuccess?" copy-success":""),onClick:()=>this.handleCopy(),title:"نسخ"},this.renderIcon("copy",16)),n("div",{class:"feedback-group"},n("button",{class:"feedback-btn thumbs-down-btn"+("down"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("down"),title:"غير مفيد"},this.renderIcon("thumbs-down",16)),n("button",{class:"feedback-btn thumbs-up-btn"+("up"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("up"),title:"مفيد"},this.renderIcon("thumbs-up",16))))}renderUserMessage(){return n("div",{class:"message-row user-row"},n("div",{class:"bubble user-bubble"},n("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}})))}renderAgentMessage(){const e=this.showActions;return n("div",{class:"message-row agent-row"},n("div",{class:"agent-bubble-wrapper"},n("div",{class:"bubble agent-bubble"},this.content&&n("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}}),n("slot",null),e&&this.renderActionsBar()),(this.agentName||this.timestamp)&&n("div",{class:"agent-info"},this.agentName&&n("span",{class:"agent-info-name"},this.agentName),this.agentName&&this.timestamp&&this.renderIcon("eclipse",10),this.timestamp&&n("span",{class:"agent-info-time"},this.getRelativeTime()))))}render(){return n(i,{key:"ceb0df75b3fc5ba2bd7494e150e679960707b891"},"user"===this.role?this.renderUserMessage():this.renderAgentMessage())}};oe.style=":host{--ai-msg-user-bg:var(--ai-user-bubble-bg);--ai-msg-user-border:1px solid var(--ai-border-default);--ai-msg-agent-bg:var(--ai-agent-bubble-bg);--ai-msg-agent-border:1px solid var(--ai-border-default);--ai-msg-border-radius:16px;--ai-msg-padding:16px;--ai-msg-font-size:14px;--ai-msg-action-active-bg:var(--ai-accent);--ai-user-msg-max-width:80%;--ai-agent-msg-max-width:80%;display:block}.message-row{display:flex}.user-row{flex-direction:column;align-items:flex-end}.user-bubble{background:var(--ai-msg-user-bg);color:var(--ai-text-primary);border:var(--ai-msg-user-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);max-width:var(--ai-user-msg-max-width);line-height:1.5;word-break:break-word;box-shadow:var(--ai-shadow-sm)}.user-row .timestamp{font-size:12px;color:var(--ai-text-secondary);margin-top:4px}.agent-row{flex-direction:row;justify-content:flex-start}.agent-bubble-wrapper{display:flex;flex-direction:column;gap:6px;width:100%;max-width:var(--ai-msg-agent-max-width);min-width:0}.agent-bubble{background:var(--ai-msg-agent-bg);color:var(--ai-text-primary);border:var(--ai-msg-agent-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);line-height:1.6;word-break:break-word;box-shadow:var(--ai-shadow-sm);display:flex;flex-direction:column;gap:12px}.message-content{white-space:pre-wrap}.message-content p{margin:0 0 8px 0}.message-content p:last-child{margin-bottom:0}.message-content h2{font-size:16px;font-weight:700;margin:0 0 8px 0}.message-content h3{font-size:15px;font-weight:600;margin:0 0 6px 0}.message-content strong{font-weight:700}.message-content em{font-style:italic}.message-content code{background:var(--ai-bg-surface);border-radius:4px;padding:1px 5px;font-family:var(--ai-font-family-mono);font-size:13px;color:var(--ai-text-primary)}.message-content pre{background:var(--ai-bg-surface);border-radius:8px;padding:10px 12px;overflow-x:auto;margin:8px 0}.message-content pre code{background:none;padding:0;font-size:13px}.message-content ul,.message-content ol{padding-inline-start:20px;margin:4px 0 8px 0}.message-content li{margin-bottom:3px}.actions-bar{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;height:0;overflow:hidden;opacity:0;pointer-events:none;transition:height 0.15s ease, opacity 0.15s ease}.agent-bubble:hover .actions-bar{height:32px;opacity:1;pointer-events:auto}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--ai-bg-card);border:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s;padding:0;flex-shrink:0}.action-btn:hover{background:var(--ai-bg-surface)}.action-btn.copy-success{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text);border-color:var(--ai-accent)}.feedback-group{display:flex;align-items:center;border:1px solid var(--ai-border-default);border-radius:8px;overflow:hidden;background:var(--ai-bg-card)}.feedback-btn{display:flex;align-items:center;justify-content:center;height:32px;padding:0 8px;background:var(--ai-bg-card);border:none;border-inline-start:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s}.feedback-btn:first-child{border-inline-start:none}.feedback-btn:hover{background:var(--ai-bg-surface)}.feedback-btn.active{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text)}.icon-wrap{display:flex;align-items:center;justify-content:center;line-height:0}.agent-info{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;color:var(--ai-text-muted)}.agent-info-name,.agent-info-time{font-size:12px;color:inherit;line-height:16px;white-space:nowrap}.agent-info .icon-wrap{display:flex;align-items:center;color:inherit;opacity:0.6;flex-shrink:0}.typing-indicator{display:flex;align-items:center;gap:5px;padding:4px 2px}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--ai-text-muted);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:0.2s}.typing-dot:nth-child(3){animation-delay:0.4s}@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}.streaming-cursor{display:inline-block;width:2px;height:1em;background:currentColor;vertical-align:text-bottom;margin-inline-start:2px;animation:cursorBlink 0.8s step-start infinite}@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}";export{oe as ai_chat_message}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,c as i,h as e,H as t}from"./p-
|
|
1
|
+
import{r as a,c as i,h as e,H as t}from"./p-hxWjzqcH.js";const n=[{value:1,emoji:"😠",label:"سيئ جداً"},{value:2,emoji:"☹️",label:"سيئ"},{value:3,emoji:"😐",label:"مقبول"},{value:4,emoji:"🙂",label:"جيد"},{value:5,emoji:"😍",label:"ممتاز"}],r=class{constructor(e){a(this,e),this.ratingChange=i(this,"ratingChange")}question="كيف كانت تجربتك؟";subtitle="رأيك يساعدنا نحسن الخدمة";value=null;disabled=!1;hovered=null;ratingChange;select(a){this.disabled||(this.value=this.value===a?null:a,null!==this.value&&this.ratingChange.emit(this.value))}get selectedLabel(){return null===this.value?null:n.find((a=>a.value===this.value))?.label??null}render(){const a=this.selectedLabel;return e(t,{key:"e540c94762552fbf2bc8a60f37a9059e1f9b6610"},e("div",{key:"0e5ff97267ee692a19e6e1ba5d6f32b456d6401e",class:"rating"},e("div",{key:"00c30cb515c0d51d7c1f9e8393f15b1d0475ffc7",class:"rating__text"},e("p",{key:"2a390c9465eed30fac0d8f8291f6a7c2dab35a47",class:"rating__question"},this.question),e("p",{key:"09a1010df00e31aa05946e6a1cf1fc23d9fa77a0",class:"rating__subtitle"},this.subtitle)),e("div",{key:"777a46e4157d1c1bc3691bdd0783a7023f7e3d8d",class:"rating__icons",role:"group","aria-label":this.question},n.map((a=>{const i=this.value===a.value;return e("button",{key:a.value,class:{"emoji-btn":!0,"emoji-btn--active":i,"emoji-btn--hovered":this.hovered===a.value&&!i,"emoji-btn--disabled":this.disabled},"aria-label":a.label,"aria-pressed":i?"true":"false",disabled:this.disabled,onClick:()=>this.select(a.value),onMouseEnter:()=>this.hovered=a.value,onMouseLeave:()=>this.hovered=null},e("span",{class:"emoji-btn__icon","aria-hidden":"true"},a.emoji))}))),a&&e("p",{key:"bba5b2ff2bcdd371cb3aefc761a5d7653bbf8630",class:"rating__selected-label"},a)))}};r.style=":host{--ai-rating-question-size:16px;--ai-rating-subtitle-size:14px;--ai-rating-gap:8px;--ai-rating-emoji-size:24px;--ai-rating-btn-padding:6px;--ai-rating-btn-border:1px solid var(--ai-border-light);--ai-rating-btn-radius:9999px;--ai-rating-btn-bg-hover:var(--ai-bg-surface);--ai-rating-btn-border-hover:1px solid var(--ai-border-default);--ai-rating-btn-bg-active:var(--ai-warning-bg);--ai-rating-btn-border-active:1px solid var(--ai-warning-border);--ai-rating-btn-shadow-active:var(--ai-shadow-active);--ai-rating-label-size:16px;display:block}.rating{display:flex;flex-direction:column;align-items:center;gap:var(--ai-rating-gap);width:100%}.rating__text{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;text-align:center}.rating__question{margin:0;font-size:var(--ai-rating-question-size);font-weight:500;line-height:24px;color:var(--ai-text-primary)}.rating__subtitle{margin:0;font-size:var(--ai-rating-subtitle-size);font-weight:400;line-height:20px;color:var(--ai-text-secondary)}.rating__icons{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;flex-wrap:wrap}.emoji-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--ai-rating-btn-padding);border:var(--ai-rating-btn-border);border-radius:var(--ai-rating-btn-radius);background:transparent;cursor:pointer;transition:background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;outline:none}.emoji-btn:focus-visible{outline:2px solid var(--ai-warning-border);outline-offset:2px}.emoji-btn:hover:not(:disabled),.emoji-btn--hovered{background:var(--ai-rating-btn-bg-hover);border:var(--ai-rating-btn-border-hover);transform:scale(1.1)}.emoji-btn--active{background:var(--ai-rating-btn-bg-active) !important;border:var(--ai-rating-btn-border-active) !important;box-shadow:var(--ai-rating-btn-shadow-active);transform:scale(1.18) !important}.emoji-btn--disabled{opacity:0.45;cursor:not-allowed;pointer-events:none}.emoji-btn__icon{font-size:var(--ai-rating-emoji-size);line-height:1;display:inline-flex;align-items:center;justify-content:center;width:var(--ai-rating-emoji-size);height:var(--ai-rating-emoji-size);pointer-events:none}.rating__selected-label{margin:0;font-size:var(--ai-rating-label-size);font-weight:500;line-height:24px;color:var(--ai-text-primary);text-align:center;width:100%;animation:fadeIn 0.15s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}";export{r as ai_rating}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as e,c as a,h as i,H as n}from"./p-
|
|
1
|
+
import{r as e,c as a,h as i,H as n}from"./p-hxWjzqcH.js";import{i as t}from"./p-SJZ6Ujn9.js";const r=class{constructor(i){e(this,i),this.routeExpand=a(this,"routeExpand")}selectedAgent="";agentIcon="";reason="";confidence=0;detectedLanguage="";expanded=!1;_expanded=!1;routeExpand;componentWillLoad(){this._expanded=this.expanded}renderIcon(e,a,n){const r=t[e];return r?i("span",{class:"icon-wrap",innerHTML:`<svg width="${a}" height="${n}" viewBox="${r.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${r.content}</svg>`}):null}handleToggle(){this._expanded=!this._expanded,this.expanded=this._expanded,this.routeExpand.emit(this._expanded)}render(){return i(n,{key:"0dd7087ca8ffd500789fadbb6f33eeeac254348d"},i("div",{key:"24b40d8747448030454300dcdceafc197232fd19",class:"route-pill "+(this._expanded?"expanded":"")},i("button",{key:"a5eabc6ac356b6f0bd4cce34257420b003f28ede",class:"route-pill-main",onClick:()=>this.handleToggle()},i("span",{key:"27e858ed0b66a7edaa2966ea626bd6fe849c04f4",class:"route-icon"},this.renderIcon("route",14,14)),i("span",{key:"140bf4bcdb42501e446c0805a5011d652b3581e3",class:"agent-label"},this.agentIcon&&i("span",{key:"ded6e4a619e7c4ae9d0affaf57b4e68d9ba8f2ea",class:"agent-emoji","aria-hidden":"true"},this.agentIcon),this.selectedAgent),this.confidence>0&&i("span",{key:"d9f59152d831eb001c01ddffdba52b683b706671",class:"confidence-badge"},this.confidence,"%"),i("span",{key:"4c290789b2bc8e3eace308bc81d9dad61b44d095",class:"expand-icon "+(this._expanded?"expanded":"")},this.renderIcon("arrow-right",12,12))),this._expanded&&i("div",{key:"e87b890275e49320579cc20e9a9a9c6cbb5f7522",class:"route-details"},this.reason&&i("p",{key:"47178ce7ea2d73a9699099185afa0d2002db3b96",class:"reason-text"},this.reason),this.confidence>0&&i("div",{key:"ad0fa3ba59e968e07bbc467eab1f5a9bba632f34",class:"confidence-bar-wrap"},i("div",{key:"5c38961fb4b4b68b663cfaf1fddc0d6e35c880f8",class:"confidence-bar",style:{width:`${this.confidence}%`}})),this.detectedLanguage&&i("div",{key:"a33864e670395af9a1545d590cff0142094bca7d",class:"meta-row"},this.renderIcon("list",12,12),i("span",{key:"2685871e51bf706709d8ff06beed9f7cb2f414ba",class:"lang-chip"},this.detectedLanguage)))))}};r.style=":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)}";export{r as ai_route_decision}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as a,h as e,H as r}from"./p-
|
|
1
|
+
import{r as a,h as e,H as r}from"./p-hxWjzqcH.js";import{i as s}from"./p-SJZ6Ujn9.js";const i=class{constructor(e){a(this,e)}conversation="ملخص المحادثة";summary="";messageCount=0;language="";renderIcon(a,r,i){const d=s[a];return d?e("span",{class:"icon-wrap",innerHTML:`<svg width="${r}" height="${i}" viewBox="${d.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${d.content}</svg>`}):null}render(){return e(r,{key:"7d24574485e990986d6325bbf6f04b52b65e6a2d"},e("div",{key:"d55f22088754c266516c242228028c486ec94796",class:"summary-card"},e("div",{key:"b60b8f661a7edbb8a3b133f4a4998eb0ae57371c",class:"summary-header"},e("div",{key:"1a1ce3df47afcf2b92caf2a8fc4dd2c7baca3370",class:"sparkle-avatar"},this.renderIcon("sparkle",14,14)),e("span",{key:"fbebe5e290dfa41a607e32f7159778b5ddb6250c",class:"summary-title"},this.conversation),e("div",{key:"662436df14966ae975116c54dec54bb70ee887f5",class:"summary-badges"},this.messageCount>0&&e("span",{key:"ad3cc08fc5ba060deccafbebe39c53201d520192",class:"badge"},this.renderIcon("list",12,12),this.messageCount),this.language&&e("span",{key:"c1fb40de5cce02913770604508aceae616bf50c4",class:"badge lang-badge"},this.language))),this.summary&&e("p",{key:"d555295af336a739ede2f3453cba567630eaafe1",class:"summary-body",ref:a=>a&&(a.textContent=this.summary)}),e("div",{key:"4cb6f52194b37a037029da491153624749cd9bef",class:"summary-slot"},e("slot",{key:"53cbd9e4d53ae8a51e43960369d7a5b45d7d491d"}))))}};i.style=":host{display:block}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;line-height:0}.summary-card{background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:16px;box-shadow:var(--ai-shadow-sm);overflow:hidden;animation:fade-in 0.3s ease}@keyframes fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.summary-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--ai-border-default)}.sparkle-avatar{width:24px;height:24px;border-radius:9999px;background:var(--ai-bg-surface);box-shadow:var(--ai-shadow-inner);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ai-amber)}.summary-title{font-size:15px;font-weight:500;color:var(--ai-text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-badges{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--ai-accent-dark);background:var(--ai-accent-bg);padding:2px 8px;border-radius:9999px;white-space:nowrap}.lang-badge{color:var(--ai-text-secondary);background:var(--ai-bg-surface)}.summary-body{margin:0;padding:12px 16px;font-size:14px;color:var(--ai-text-secondary);line-height:1.6;border-bottom:1px solid var(--ai-border-default)}.summary-slot{padding:12px 16px}.summary-slot:empty{display:none}";export{i as ai_conversation_summary}
|