@salla.sa/ui-ai-kit-core 1.1.1 → 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.
Files changed (100) hide show
  1. package/dist/cjs/ai-agent-error.cjs.entry.js +41 -0
  2. package/dist/cjs/ai-card.cjs.entry.js +3 -3
  3. package/dist/cjs/ai-chat-container.cjs.entry.js +3 -3
  4. package/dist/cjs/ai-chat-header.cjs.entry.js +6 -6
  5. package/dist/cjs/ai-chat-message.cjs.entry.js +2 -2
  6. package/dist/cjs/ai-conversation-list.cjs.entry.js +2 -2
  7. package/dist/cjs/ai-conversation-summary.cjs.entry.js +3 -3
  8. package/dist/cjs/ai-icon.cjs.entry.js +1 -1
  9. package/dist/cjs/ai-link.cjs.entry.js +2 -2
  10. package/dist/cjs/ai-loading.cjs.entry.js +1 -1
  11. package/dist/cjs/ai-message-input.cjs.entry.js +1 -1
  12. package/dist/cjs/ai-rating.cjs.entry.js +1 -1
  13. package/dist/cjs/ai-route-decision.cjs.entry.js +2 -2
  14. package/dist/cjs/ai-suggestion.cjs.entry.js +3 -3
  15. package/dist/cjs/ai-voice-input.cjs.entry.js +16 -10
  16. package/dist/cjs/{index-BkNg07SW.js → index-Bs23yVuF.js} +1 -1
  17. package/dist/cjs/loader.cjs.js +2 -2
  18. package/dist/cjs/ui-ai-kit.cjs.js +2 -2
  19. package/dist/collection/collection-manifest.json +1 -0
  20. package/dist/collection/components/ai-agent-error/ai-agent-error.css +154 -0
  21. package/dist/collection/components/ai-agent-error/ai-agent-error.js +197 -0
  22. package/dist/collection/components/ai-card/ai-card.js +2 -2
  23. package/dist/collection/components/ai-chat-container/ai-chat-container.css +2 -7
  24. package/dist/collection/components/ai-chat-container/ai-chat-container.js +1 -1
  25. package/dist/collection/components/ai-chat-header/ai-chat-header.js +6 -6
  26. package/dist/collection/components/ai-chat-message/ai-chat-message.js +1 -1
  27. package/dist/collection/components/ai-conversation-list/ai-conversation-list.js +1 -1
  28. package/dist/collection/components/ai-conversation-summary/ai-conversation-summary.js +4 -4
  29. package/dist/collection/components/ai-link/ai-link.js +1 -1
  30. package/dist/collection/components/ai-route-decision/ai-route-decision.js +1 -1
  31. package/dist/collection/components/ai-suggestion/ai-suggestion.js +2 -2
  32. package/dist/collection/components/ai-voice-input/ai-voice-input.css +1 -1
  33. package/dist/collection/components/ai-voice-input/ai-voice-input.js +14 -8
  34. package/dist/components/ai-agent-error.d.ts +11 -0
  35. package/dist/components/ai-agent-error.js +1 -0
  36. package/dist/components/ai-card.js +1 -1
  37. package/dist/components/ai-chat-container.js +1 -1
  38. package/dist/components/ai-chat-header.js +1 -1
  39. package/dist/components/ai-chat-message.js +2 -2
  40. package/dist/components/ai-conversation-list.js +1 -1
  41. package/dist/components/ai-conversation-summary.js +1 -1
  42. package/dist/components/ai-icon.js +1 -1
  43. package/dist/components/ai-link.js +1 -1
  44. package/dist/components/ai-loading.js +1 -1
  45. package/dist/components/ai-message-input.js +1 -1
  46. package/dist/components/ai-rating.js +1 -1
  47. package/dist/components/ai-route-decision.js +1 -1
  48. package/dist/components/ai-suggestion.js +1 -1
  49. package/dist/components/ai-voice-input.js +1 -1
  50. package/dist/components/index.js +1 -1
  51. package/dist/components/{p-Dr2tAPV7.js → p-Bbmjx9lq.js} +1 -1
  52. package/dist/components/p-C5gkZloN.js +1 -0
  53. package/dist/components/p-CAnlgwx0.js +1 -0
  54. package/dist/esm/ai-agent-error.entry.js +39 -0
  55. package/dist/esm/ai-card.entry.js +3 -3
  56. package/dist/esm/ai-chat-container.entry.js +3 -3
  57. package/dist/esm/ai-chat-header.entry.js +6 -6
  58. package/dist/esm/ai-chat-message.entry.js +2 -2
  59. package/dist/esm/ai-conversation-list.entry.js +2 -2
  60. package/dist/esm/ai-conversation-summary.entry.js +3 -3
  61. package/dist/esm/ai-icon.entry.js +1 -1
  62. package/dist/esm/ai-link.entry.js +2 -2
  63. package/dist/esm/ai-loading.entry.js +1 -1
  64. package/dist/esm/ai-message-input.entry.js +1 -1
  65. package/dist/esm/ai-rating.entry.js +1 -1
  66. package/dist/esm/ai-route-decision.entry.js +2 -2
  67. package/dist/esm/ai-suggestion.entry.js +3 -3
  68. package/dist/esm/ai-voice-input.entry.js +16 -10
  69. package/dist/esm/{index-B0yIzgh4.js → index-hxWjzqcH.js} +1 -1
  70. package/dist/esm/loader.js +3 -3
  71. package/dist/esm/ui-ai-kit.js +3 -3
  72. package/dist/types/components/ai-agent-error/ai-agent-error.d.ts +19 -0
  73. package/dist/types/components/ai-chat-header/ai-chat-header.d.ts +1 -1
  74. package/dist/types/components/ai-conversation-summary/ai-conversation-summary.d.ts +1 -1
  75. package/dist/types/components.d.ts +112 -13
  76. package/dist/ui-ai-kit/{p-b28af13a.entry.js → p-1cce63d4.entry.js} +1 -1
  77. package/dist/ui-ai-kit/p-1e7608ee.entry.js +1 -0
  78. package/dist/ui-ai-kit/p-2342431f.entry.js +1 -0
  79. package/dist/ui-ai-kit/p-27bf454d.entry.js +1 -0
  80. package/dist/ui-ai-kit/{p-eb0c7e7a.entry.js → p-2a49ee93.entry.js} +1 -1
  81. package/dist/ui-ai-kit/{p-5c9e9822.entry.js → p-3268aa48.entry.js} +1 -1
  82. package/dist/ui-ai-kit/{p-eec6f083.entry.js → p-5ea933a4.entry.js} +1 -1
  83. package/dist/ui-ai-kit/{p-87e9739b.entry.js → p-6b61d00f.entry.js} +1 -1
  84. package/dist/ui-ai-kit/{p-74c5c83f.entry.js → p-6b9b1022.entry.js} +1 -1
  85. package/dist/ui-ai-kit/{p-5caf1c38.entry.js → p-889c6b00.entry.js} +1 -1
  86. package/dist/ui-ai-kit/{p-2955439f.entry.js → p-999dd7c8.entry.js} +1 -1
  87. package/dist/ui-ai-kit/{p-ef07638f.entry.js → p-9a4b8c7e.entry.js} +2 -2
  88. package/dist/ui-ai-kit/{p-a099fcfb.entry.js → p-a424e69b.entry.js} +1 -1
  89. package/dist/ui-ai-kit/{p-d1bb1ad0.entry.js → p-b33e92ea.entry.js} +1 -1
  90. package/dist/ui-ai-kit/p-ccaec7b4.entry.js +1 -0
  91. package/dist/ui-ai-kit/p-hxWjzqcH.js +2 -0
  92. package/dist/ui-ai-kit/ui-ai-kit.css +1 -1
  93. package/dist/ui-ai-kit/ui-ai-kit.esm.js +1 -1
  94. package/package.json +1 -1
  95. package/dist/components/p-DCr8F_XV.js +0 -1
  96. package/dist/components/p-DnO4dikr.js +0 -1
  97. package/dist/ui-ai-kit/p-21c4fc1f.entry.js +0 -1
  98. package/dist/ui-ai-kit/p-6d3505e9.entry.js +0 -1
  99. package/dist/ui-ai-kit/p-B0yIzgh4.js +0 -2
  100. package/dist/ui-ai-kit/p-a9e4eaef.entry.js +0 -1
@@ -1,6 +1,6 @@
1
1
  export declare class AiConversationSummary {
2
2
  /** Card heading */
3
- title: string;
3
+ conversation: string;
4
4
  /** Summary body text */
5
5
  summary: string;
6
6
  /** Total message count shown as a badge */
@@ -12,6 +12,38 @@ export { IconName } from "./utils/icon-registry";
12
12
  export { LoadingStep } from "./components/ai-loading/ai-loading";
13
13
  export { RatingValue } from "./components/ai-rating/ai-rating";
14
14
  export namespace Components {
15
+ interface AiAgentError {
16
+ /**
17
+ * Show a dismiss (×) button
18
+ * @default false
19
+ */
20
+ "dismissible": boolean;
21
+ /**
22
+ * Optional error code / identifier shown as a small badge
23
+ * @default ''
24
+ */
25
+ "errorCode": string;
26
+ /**
27
+ * Error card title
28
+ * @default 'حدث خطأ أثناء التنفيذ'
29
+ */
30
+ "headline": string;
31
+ /**
32
+ * Descriptive error message shown below the title
33
+ * @default ''
34
+ */
35
+ "message": string;
36
+ /**
37
+ * Retry button label
38
+ * @default 'إعادة المحاولة'
39
+ */
40
+ "retryLabel": string;
41
+ /**
42
+ * Show a retry button
43
+ * @default true
44
+ */
45
+ "retryable": boolean;
46
+ }
15
47
  interface AiCard {
16
48
  /**
17
49
  * Remove the default padding
@@ -158,6 +190,11 @@ export namespace Components {
158
190
  "loading": boolean;
159
191
  }
160
192
  interface AiConversationSummary {
193
+ /**
194
+ * Card heading
195
+ * @default 'ملخص المحادثة'
196
+ */
197
+ "conversation": string;
161
198
  /**
162
199
  * Conversation language label
163
200
  * @default ''
@@ -173,11 +210,6 @@ export namespace Components {
173
210
  * @default ''
174
211
  */
175
212
  "summary": string;
176
- /**
177
- * Card heading
178
- * @default 'ملخص المحادثة'
179
- */
180
- "title": string;
181
213
  }
182
214
  interface AiIcon {
183
215
  /**
@@ -384,6 +416,10 @@ export namespace Components {
384
416
  "waveformColor": string;
385
417
  }
386
418
  }
419
+ export interface AiAgentErrorCustomEvent<T> extends CustomEvent<T> {
420
+ detail: T;
421
+ target: HTMLAiAgentErrorElement;
422
+ }
387
423
  export interface AiChatHeaderCustomEvent<T> extends CustomEvent<T> {
388
424
  detail: T;
389
425
  target: HTMLAiChatHeaderElement;
@@ -421,6 +457,24 @@ export interface AiVoiceInputCustomEvent<T> extends CustomEvent<T> {
421
457
  target: HTMLAiVoiceInputElement;
422
458
  }
423
459
  declare global {
460
+ interface HTMLAiAgentErrorElementEventMap {
461
+ "retryClick": void;
462
+ "dismissClick": void;
463
+ }
464
+ interface HTMLAiAgentErrorElement extends Components.AiAgentError, HTMLStencilElement {
465
+ addEventListener<K extends keyof HTMLAiAgentErrorElementEventMap>(type: K, listener: (this: HTMLAiAgentErrorElement, ev: AiAgentErrorCustomEvent<HTMLAiAgentErrorElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
466
+ addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
467
+ addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
468
+ addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
469
+ removeEventListener<K extends keyof HTMLAiAgentErrorElementEventMap>(type: K, listener: (this: HTMLAiAgentErrorElement, ev: AiAgentErrorCustomEvent<HTMLAiAgentErrorElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
470
+ removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
471
+ removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
472
+ removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
473
+ }
474
+ var HTMLAiAgentErrorElement: {
475
+ prototype: HTMLAiAgentErrorElement;
476
+ new (): HTMLAiAgentErrorElement;
477
+ };
424
478
  interface HTMLAiCardElement extends Components.AiCard, HTMLStencilElement {
425
479
  }
426
480
  var HTMLAiCardElement: {
@@ -437,7 +491,7 @@ declare global {
437
491
  "closeClick": void;
438
492
  "editClick": void;
439
493
  "dropdownClick": void;
440
- "moreClick": void;
494
+ "positionClick": void;
441
495
  "backClick": void;
442
496
  "headerDragStart": { clientX: number; clientY: number };
443
497
  }
@@ -616,6 +670,7 @@ declare global {
616
670
  new (): HTMLAiVoiceInputElement;
617
671
  };
618
672
  interface HTMLElementTagNameMap {
673
+ "ai-agent-error": HTMLAiAgentErrorElement;
619
674
  "ai-card": HTMLAiCardElement;
620
675
  "ai-chat-container": HTMLAiChatContainerElement;
621
676
  "ai-chat-header": HTMLAiChatHeaderElement;
@@ -633,6 +688,40 @@ declare global {
633
688
  }
634
689
  }
635
690
  declare namespace LocalJSX {
691
+ interface AiAgentError {
692
+ /**
693
+ * Show a dismiss (×) button
694
+ * @default false
695
+ */
696
+ "dismissible"?: boolean;
697
+ /**
698
+ * Optional error code / identifier shown as a small badge
699
+ * @default ''
700
+ */
701
+ "errorCode"?: string;
702
+ /**
703
+ * Error card title
704
+ * @default 'حدث خطأ أثناء التنفيذ'
705
+ */
706
+ "headline"?: string;
707
+ /**
708
+ * Descriptive error message shown below the title
709
+ * @default ''
710
+ */
711
+ "message"?: string;
712
+ "onDismissClick"?: (event: AiAgentErrorCustomEvent<void>) => void;
713
+ "onRetryClick"?: (event: AiAgentErrorCustomEvent<void>) => void;
714
+ /**
715
+ * Retry button label
716
+ * @default 'إعادة المحاولة'
717
+ */
718
+ "retryLabel"?: string;
719
+ /**
720
+ * Show a retry button
721
+ * @default true
722
+ */
723
+ "retryable"?: boolean;
724
+ }
636
725
  interface AiCard {
637
726
  /**
638
727
  * Remove the default padding
@@ -735,7 +824,7 @@ declare namespace LocalJSX {
735
824
  /**
736
825
  * More options button
737
826
  */
738
- "onMoreClick"?: (event: AiChatHeaderCustomEvent<void>) => void;
827
+ "onPositionClick"?: (event: AiChatHeaderCustomEvent<void>) => void;
739
828
  /**
740
829
  * Human mode: show the back button
741
830
  * @default true
@@ -804,6 +893,11 @@ declare namespace LocalJSX {
804
893
  "onConversationSelect"?: (event: AiConversationListCustomEvent<string>) => void;
805
894
  }
806
895
  interface AiConversationSummary {
896
+ /**
897
+ * Card heading
898
+ * @default 'ملخص المحادثة'
899
+ */
900
+ "conversation"?: string;
807
901
  /**
808
902
  * Conversation language label
809
903
  * @default ''
@@ -819,11 +913,6 @@ declare namespace LocalJSX {
819
913
  * @default ''
820
914
  */
821
915
  "summary"?: string;
822
- /**
823
- * Card heading
824
- * @default 'ملخص المحادثة'
825
- */
826
- "title"?: string;
827
916
  }
828
917
  interface AiIcon {
829
918
  /**
@@ -1047,6 +1136,14 @@ declare namespace LocalJSX {
1047
1136
  "waveformColor"?: string;
1048
1137
  }
1049
1138
 
1139
+ interface AiAgentErrorAttributes {
1140
+ "headline": string;
1141
+ "message": string;
1142
+ "errorCode": string;
1143
+ "retryable": boolean;
1144
+ "retryLabel": string;
1145
+ "dismissible": boolean;
1146
+ }
1050
1147
  interface AiCardAttributes {
1051
1148
  "noPadding": boolean;
1052
1149
  "noShadow": boolean;
@@ -1086,7 +1183,7 @@ declare namespace LocalJSX {
1086
1183
  "loading": boolean;
1087
1184
  }
1088
1185
  interface AiConversationSummaryAttributes {
1089
- "title": string;
1186
+ "conversation": string;
1090
1187
  "summary": string;
1091
1188
  "messageCount": number;
1092
1189
  "language": string;
@@ -1145,6 +1242,7 @@ declare namespace LocalJSX {
1145
1242
  }
1146
1243
 
1147
1244
  interface IntrinsicElements {
1245
+ "ai-agent-error": Omit<AiAgentError, keyof AiAgentErrorAttributes> & { [K in keyof AiAgentError & keyof AiAgentErrorAttributes]?: AiAgentError[K] } & { [K in keyof AiAgentError & keyof AiAgentErrorAttributes as `attr:${K}`]?: AiAgentErrorAttributes[K] } & { [K in keyof AiAgentError & keyof AiAgentErrorAttributes as `prop:${K}`]?: AiAgentError[K] };
1148
1246
  "ai-card": Omit<AiCard, keyof AiCardAttributes> & { [K in keyof AiCard & keyof AiCardAttributes]?: AiCard[K] } & { [K in keyof AiCard & keyof AiCardAttributes as `attr:${K}`]?: AiCardAttributes[K] } & { [K in keyof AiCard & keyof AiCardAttributes as `prop:${K}`]?: AiCard[K] };
1149
1247
  "ai-chat-container": Omit<AiChatContainer, keyof AiChatContainerAttributes> & { [K in keyof AiChatContainer & keyof AiChatContainerAttributes]?: AiChatContainer[K] } & { [K in keyof AiChatContainer & keyof AiChatContainerAttributes as `attr:${K}`]?: AiChatContainerAttributes[K] } & { [K in keyof AiChatContainer & keyof AiChatContainerAttributes as `prop:${K}`]?: AiChatContainer[K] };
1150
1248
  "ai-chat-header": Omit<AiChatHeader, keyof AiChatHeaderAttributes> & { [K in keyof AiChatHeader & keyof AiChatHeaderAttributes]?: AiChatHeader[K] } & { [K in keyof AiChatHeader & keyof AiChatHeaderAttributes as `attr:${K}`]?: AiChatHeaderAttributes[K] } & { [K in keyof AiChatHeader & keyof AiChatHeaderAttributes as `prop:${K}`]?: AiChatHeader[K] };
@@ -1165,6 +1263,7 @@ export { LocalJSX as JSX };
1165
1263
  declare module "@stencil/core" {
1166
1264
  export namespace JSX {
1167
1265
  interface IntrinsicElements {
1266
+ "ai-agent-error": LocalJSX.IntrinsicElements["ai-agent-error"] & JSXBase.HTMLAttributes<HTMLAiAgentErrorElement>;
1168
1267
  "ai-card": LocalJSX.IntrinsicElements["ai-card"] & JSXBase.HTMLAttributes<HTMLAiCardElement>;
1169
1268
  "ai-chat-container": LocalJSX.IntrinsicElements["ai-chat-container"] & JSXBase.HTMLAttributes<HTMLAiChatContainerElement>;
1170
1269
  "ai-chat-header": LocalJSX.IntrinsicElements["ai-chat-header"] & JSXBase.HTMLAttributes<HTMLAiChatHeaderElement>;
@@ -1 +1 @@
1
- import{r as i,c as e,a as t,h as a,H as o}from"./p-B0yIzgh4.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
+ 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}
@@ -0,0 +1 @@
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}
@@ -0,0 +1 @@
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-B0yIzgh4.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:"dd656127f6974b6eef12f64c78c072f2c1f92a6a",class:{dark:this.isDark()}},e("div",{key:"0eb43bc5c8b80e5576146f01998e5279eb860162",class:this.getContainerClasses(),style:this.getContainerStyle(),ref:t=>this.containerRef=t},this.showWatermark&&e("div",{key:"363046f0e73ab7aa0209d5f41562031fb34d6c2d",class:"watermark"},e("ai-icon",{key:"1f3c26ba6a145f8532f6e1a40ea344249e8e5b43",name:"watermark",size:133})),e("slot",{key:"3ec10548660ff721c094be36a15a152fdf6dac78",name:"header"}),e("div",{key:"9babb87041287ac400322b910aa64f7a7b1743a5",class:"messages-area",ref:t=>this.messagesAreaRef=t},e("slot",{key:"937c0c0bd675e5a619d46883e7c1f890754aae4b"})),e("slot",{key:"0982b8bc96537c6cecca757926d5849ba386bd69",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:0.8;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}}:host(.dark) .watermark ai-icon{opacity:0.6}";export{r as ai_chat_container}
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-B0yIzgh4.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
+ 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-B0yIzgh4.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
+ 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-B0yIzgh4.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:"4baef00dae7b30e73168684fce1dc512c35e8855"},i("div",{key:"4da38479ba7a29b4f8d95aca4f9c0644361eb486",class:"conversation-list"},i("div",{key:"671e0f54f45ceae32ce4424c1aa4bc72eed851e0",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
+ 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-B0yIzgh4.js";const i=class{constructor(d){a(this,d)}noPadding=!1;noShadow=!1;render(){return d(r,{key:"4805b02b4eee8e01d0233de788a58770a85db2aa"},d("div",{key:"75576f8a791fc49c3a750d491b0e835d0e5ce8cb",class:{card:!0,"card--no-padding":this.noPadding,"card--no-shadow":this.noShadow}},d("slot",{key:"e16cdb10e803451fdd47006a98656168fe2495f4"})))}};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
+ 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-B0yIzgh4.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:"d8a9ff7279fce63faebd187cb69f0173239518ca"},a("button",{key:"42bc023c9c48bafc11b388bb80e130255ea830b8",class:{chip:!0,"chip--disabled":this.disabled},disabled:this.disabled,onClick:()=>this.handleClick()},a("span",{key:"06f0324b97d9f7fb77fb2d4b9dbf0be9b5c4c3f1",class:"chip__label"},this.label,a("slot",{key:"ccd0d639f0b2c001088561b029b08691395e9198"}))))}};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
+ 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-B0yIzgh4.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:"c35f0fd1f17170d32846ebf7066177ca3a6b68f1"},e("span",{key:"34c01b7fa4122659ca01402c76a67dbca5878ffe",class:"link__label"},this.label,e("slot",{key:"d9dd28b4bfba8c1cb5e6f977262942daf504fdc8"})),e("a",{key:"b4da5e53ee8df0b40417c0d0a80a9647ae0b93d2",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
+ 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}