@salla.sa/ui-ai-kit-core 2.2.1 → 2.2.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/dist/cjs/ai-card.cjs.entry.js +2 -2
  2. package/dist/cjs/ai-chat-header.cjs.entry.js +19 -2
  3. package/dist/cjs/ai-chat-message.cjs.entry.js +1 -1
  4. package/dist/cjs/ai-conversation-list.cjs.entry.js +10 -4
  5. package/dist/cjs/ai-conversation-summary.cjs.entry.js +1 -1
  6. package/dist/cjs/ai-in-chat-browser.cjs.entry.js +1 -1
  7. package/dist/cjs/ai-link.cjs.entry.js +1 -1
  8. package/dist/cjs/ai-route-decision.cjs.entry.js +1 -1
  9. package/dist/cjs/ai-suggestion.cjs.entry.js +2 -2
  10. package/dist/cjs/ai-voice-input.cjs.entry.js +1 -1
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/ui-ai-kit.cjs.js +1 -1
  13. package/dist/collection/components/ai-card/ai-card.css +22 -0
  14. package/dist/collection/components/ai-card/ai-card.js +1 -1
  15. package/dist/collection/components/ai-chat-header/ai-chat-header.js +133 -2
  16. package/dist/collection/components/ai-chat-message/ai-chat-message.js +1 -1
  17. package/dist/collection/components/ai-conversation-list/ai-conversation-list.css +20 -0
  18. package/dist/collection/components/ai-conversation-list/ai-conversation-list.js +29 -3
  19. package/dist/collection/components/ai-conversation-summary/ai-conversation-summary.js +1 -1
  20. package/dist/collection/components/ai-in-chat-browser/ai-in-chat-browser.js +1 -1
  21. package/dist/collection/components/ai-link/ai-link.js +1 -1
  22. package/dist/collection/components/ai-route-decision/ai-route-decision.js +1 -1
  23. package/dist/collection/components/ai-suggestion/ai-suggestion.js +2 -2
  24. package/dist/collection/components/ai-voice-input/ai-voice-input.js +1 -1
  25. package/dist/components/ai-card.js +1 -1
  26. package/dist/components/ai-chat-header.js +1 -1
  27. package/dist/components/ai-chat-message.js +1 -1
  28. package/dist/components/ai-conversation-list.js +1 -1
  29. package/dist/components/ai-conversation-summary.js +1 -1
  30. package/dist/components/ai-in-chat-browser.js +1 -1
  31. package/dist/components/ai-link.js +1 -1
  32. package/dist/components/ai-message-input.js +1 -1
  33. package/dist/components/ai-rating.js +1 -1
  34. package/dist/components/ai-route-decision.js +1 -1
  35. package/dist/components/ai-suggestion.js +1 -1
  36. package/dist/components/ai-voice-input.js +1 -1
  37. package/dist/components/{p-bGFmyIp1.js → p-BlCeQ9Hu.js} +1 -1
  38. package/dist/components/p-CFSr3KcL.js +1 -0
  39. package/dist/components/p-DCJWSYj-.js +1 -0
  40. package/dist/esm/ai-card.entry.js +2 -2
  41. package/dist/esm/ai-chat-header.entry.js +19 -2
  42. package/dist/esm/ai-chat-message.entry.js +1 -1
  43. package/dist/esm/ai-conversation-list.entry.js +10 -4
  44. package/dist/esm/ai-conversation-summary.entry.js +1 -1
  45. package/dist/esm/ai-in-chat-browser.entry.js +1 -1
  46. package/dist/esm/ai-link.entry.js +1 -1
  47. package/dist/esm/ai-route-decision.entry.js +1 -1
  48. package/dist/esm/ai-suggestion.entry.js +2 -2
  49. package/dist/esm/ai-voice-input.entry.js +1 -1
  50. package/dist/esm/loader.js +1 -1
  51. package/dist/esm/ui-ai-kit.js +1 -1
  52. package/dist/types/components/ai-chat-header/ai-chat-header.d.ts +13 -0
  53. package/dist/types/components/ai-conversation-list/ai-conversation-list.d.ts +2 -0
  54. package/dist/types/components.d.ts +71 -0
  55. package/dist/ui-ai-kit/{p-5f005ec5.entry.js → p-11c960d8.entry.js} +1 -1
  56. package/dist/ui-ai-kit/p-17e5d542.entry.js +1 -0
  57. package/dist/ui-ai-kit/p-2fd7529e.entry.js +1 -0
  58. package/dist/ui-ai-kit/{p-d02f2db5.entry.js → p-79309690.entry.js} +1 -1
  59. package/dist/ui-ai-kit/{p-6bd54e29.entry.js → p-9a8614d0.entry.js} +1 -1
  60. package/dist/ui-ai-kit/{p-062cad02.entry.js → p-9af03dbd.entry.js} +1 -1
  61. package/dist/ui-ai-kit/{p-83f46030.entry.js → p-a1ee6005.entry.js} +1 -1
  62. package/dist/ui-ai-kit/{p-187db371.entry.js → p-a5f53c8c.entry.js} +1 -1
  63. package/dist/ui-ai-kit/p-cde479ea.entry.js +1 -0
  64. package/dist/ui-ai-kit/{p-e6236df2.entry.js → p-e1a2a622.entry.js} +1 -1
  65. package/dist/ui-ai-kit/ui-ai-kit.esm.js +1 -1
  66. package/package.json +1 -1
  67. package/dist/components/p-Ba0urr6Q.js +0 -1
  68. package/dist/components/p-CJzVwMlS.js +0 -1
  69. package/dist/ui-ai-kit/p-8ac8febb.entry.js +0 -1
  70. package/dist/ui-ai-kit/p-8fabdbe8.entry.js +0 -1
  71. package/dist/ui-ai-kit/p-953d4348.entry.js +0 -1
@@ -15,6 +15,8 @@ export class AiConversationList {
15
15
  errorText = 'تعذّر تحميل المحادثات';
16
16
  /** Retry button label for error state */
17
17
  retryLabel = 'إعادة المحاولة';
18
+ /** ID of the conversation currently being deleted — shows a spinner on that item */
19
+ deletingId = '';
18
20
  conversationSelect;
19
21
  conversationDelete;
20
22
  retryClick;
@@ -65,7 +67,7 @@ export class AiConversationList {
65
67
  }
66
68
  render() {
67
69
  const showEmpty = !this.loading && !this.error && this.items.length === 0;
68
- return (h(Host, { key: '9be146c657629a6f7ac7f4325e1fbfdbea27f4de' }, h("div", { key: '2e7f5daebdde0c69c5e22d581f9f31fc9f232308', class: "conversation-list" }, h("div", { key: 'f87e9462d0cac6e5d601528ada588aa18385b252', class: "list-scroll", role: "list" }, this.loading
70
+ return (h(Host, { key: '8cf17cedd5c41f0d6ffd2d06e557dc370041d1aa' }, h("div", { key: '50f5eeb57228f55d72acf517ed5eeb5d79e13a4b', class: "conversation-list" }, h("div", { key: '763f7cb557fb9abea75e08379d0ea9090b00ac1e', class: "list-scroll", role: "list" }, this.loading
69
71
  ? this.renderSkeleton()
70
72
  : this.error
71
73
  ? this.renderError()
@@ -73,10 +75,14 @@ export class AiConversationList {
73
75
  ? this.renderEmpty()
74
76
  : this.items.map(item => {
75
77
  const isActive = item.id === this.activeId;
76
- return (h("div", { key: item.id, class: { 'conv-item': true, 'conv-item--active': isActive }, role: "listitem", "aria-current": isActive ? 'true' : undefined, onClick: () => this.conversationSelect.emit(item.id) }, h("div", { class: "conv-item__body" }, h("p", { class: "conv-item__title" }, item.title), h("p", { class: "conv-item__preview" }, item.preview), h("div", { class: "conv-item__meta" }, h("span", { class: "conv-item__time" }, this.formatRelativeTime(item.timestamp)), item.rating != null && this.renderRatingDots(item.rating))), h("button", { class: "delete-btn", "aria-label": "\u062D\u0630\u0641 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629", onClick: e => {
78
+ return (h("div", { key: item.id, class: { 'conv-item': true, 'conv-item--active': isActive }, role: "listitem", "aria-current": isActive ? 'true' : undefined, onClick: () => this.conversationSelect.emit(item.id) }, h("div", { class: "conv-item__body" }, h("p", { class: "conv-item__title" }, item.title), h("p", { class: "conv-item__preview" }, item.preview), h("div", { class: "conv-item__meta" }, h("span", { class: "conv-item__time" }, this.formatRelativeTime(item.timestamp)), item.rating != null && this.renderRatingDots(item.rating))), h("button", { class: { 'delete-btn': true, 'delete-btn--deleting': this.deletingId === item.id }, "aria-label": "\u062D\u0630\u0641 \u0627\u0644\u0645\u062D\u0627\u062F\u062B\u0629", disabled: this.deletingId === item.id, onClick: e => {
77
79
  e.stopPropagation();
80
+ if (this.deletingId === item.id)
81
+ return;
78
82
  this.conversationDelete.emit(item.id);
79
- } }, this.renderIcon('cancel', 14, 14))));
83
+ } }, this.deletingId === item.id
84
+ ? h("span", { class: "delete-spinner", "aria-label": "\u062C\u0627\u0631\u064A \u0627\u0644\u062D\u0630\u0641" })
85
+ : this.renderIcon('cancel', 14, 14))));
80
86
  })))));
81
87
  }
82
88
  static get is() { return "ai-conversation-list"; }
@@ -236,6 +242,26 @@ export class AiConversationList {
236
242
  "reflect": false,
237
243
  "attribute": "retry-label",
238
244
  "defaultValue": "'\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629'"
245
+ },
246
+ "deletingId": {
247
+ "type": "string",
248
+ "mutable": false,
249
+ "complexType": {
250
+ "original": "string",
251
+ "resolved": "string",
252
+ "references": {}
253
+ },
254
+ "required": false,
255
+ "optional": false,
256
+ "docs": {
257
+ "tags": [],
258
+ "text": "ID of the conversation currently being deleted \u2014 shows a spinner on that item"
259
+ },
260
+ "getter": false,
261
+ "setter": false,
262
+ "reflect": false,
263
+ "attribute": "deleting-id",
264
+ "defaultValue": "''"
239
265
  }
240
266
  };
241
267
  }
@@ -17,7 +17,7 @@ export class AiConversationSummary {
17
17
  return h("span", { class: "icon-wrap", innerHTML: svg });
18
18
  }
19
19
  render() {
20
- return (h(Host, { key: 'd8dd368f17be91aaef528ae8092cce78bb19e35a' }, h("div", { key: '0460dcf3531e947c8ad6ea9d38fc76a1f0ec687d', class: "summary-card" }, h("div", { key: '01d46505f838f90ccc4c2d6e57f7b92982f45bd9', class: "summary-header" }, h("div", { key: '33afcdbe1f575a31a04ac7a1de948ab32dc76a83', class: "sparkle-avatar" }, this.renderIcon('sparkle', 14, 14)), h("span", { key: 'a645e52868e63ddcc8be501ae4d2a680ec6b3b27', class: "summary-title" }, this.conversation), h("div", { key: '14ade251a1136afae789c4d097013686f50a18f7', class: "summary-badges" }, this.messageCount > 0 && (h("span", { key: '70bf7e43f5d8f2ee38b2627d7f011d686bbb1b49', class: "badge" }, this.renderIcon('list', 12, 12), this.messageCount)), this.language && (h("span", { key: '9ad21900a26a59dabb2a25809995500363768692', class: "badge lang-badge" }, this.language)))), this.summary && (h("p", { key: '342007bc9de432fb64f71c84b301fbc802f9d119', class: "summary-body", ref: el => el && (el.textContent = this.summary) })), h("div", { key: 'c0ca1841f37918e0e1a805b34f53e2f0b204bbda', class: "summary-slot" }, h("slot", { key: '24cf0b383924109ed50aded7929320c1d66f3ea1' })))));
20
+ return (h(Host, { key: 'f69a767b9111f035799fbad9e26f6cd278d2cd5e' }, h("div", { key: '2b598f0ebcf118c75d58a92173d31250b7b71aaa', class: "summary-card" }, h("div", { key: 'fba36d83ef95feaaff7a88847c2ad8eed7b2a009', class: "summary-header" }, h("div", { key: 'f2840d65175456326a9f2c2d389b788f4dfc6622', class: "sparkle-avatar" }, this.renderIcon('sparkle', 14, 14)), h("span", { key: 'e90eca9ddf0b1b610a05d3a68fba69853c3c87e5', class: "summary-title" }, this.conversation), h("div", { key: 'ab9dd453aab0b04b00493dac0a7b5ad74b194190', class: "summary-badges" }, this.messageCount > 0 && (h("span", { key: 'e5664fb004a19d72334f157121125a01ff09f56a', class: "badge" }, this.renderIcon('list', 12, 12), this.messageCount)), this.language && (h("span", { key: 'af0784ee45ed3169514d198dc1236e781fe48ac6', class: "badge lang-badge" }, this.language)))), this.summary && (h("p", { key: 'c0c2be2118abbe62a31adc65e6fa8907f155bb49', class: "summary-body", ref: el => el && (el.textContent = this.summary) })), h("div", { key: '61c139e33e9e247508e830e319fc9cc014451526', class: "summary-slot" }, h("slot", { key: '5ebbbdb3319c6a8ca9f8e98a58c6336e7a25c159' })))));
21
21
  }
22
22
  static get is() { return "ai-conversation-summary"; }
23
23
  static get encapsulation() { return "shadow"; }
@@ -29,7 +29,7 @@ export class AiInChatBrowser {
29
29
  };
30
30
  render() {
31
31
  const displayTitle = this.getDisplayTitle();
32
- return (h(Host, { key: '2d3bb12516396aaf8ca4df1e63e954cc06b2f01d' }, h("div", { key: '3c6f179eb59c982ab299910b5a1941d9b9d17d09', class: "browser-content" }, this.isLoading && (h("div", { key: '0228954a8cfaafed42f1efb5eb1ca5f160bc29e0', class: "browser-loading" }, h("div", { key: 'ccc49943a0af13afdbf1dcee8be0e3d712ac54d6', class: "loading-bar" }))), this.hasError ? (h("div", { class: "browser-error" }, h("span", { class: "error-text" }, "\u062A\u0639\u0630\u0651\u0631 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0635\u0641\u062D\u0629"), h("span", { class: "error-url" }, this.url))) : (this.url && (h("iframe", { class: "browser-iframe", src: this.url, onLoad: this.handleIframeLoad, onError: this.handleIframeError, sandbox: "allow-scripts allow-same-origin allow-forms allow-popups", referrerPolicy: "no-referrer", title: displayTitle }))))));
32
+ return (h(Host, { key: 'd79ede7857bc7edc13a4c8cdbbf5b4f7312d9766' }, h("div", { key: '57ccda6f9670e9ae2ca76b768f31ecf62b9ec8e9', class: "browser-content" }, this.isLoading && (h("div", { key: 'f868050d91fc24f9a13a760d34805b6a443ff865', class: "browser-loading" }, h("div", { key: 'b90a07a822a1978875fd5590783d9e9a6ac319b9', class: "loading-bar" }))), this.hasError ? (h("div", { class: "browser-error" }, h("span", { class: "error-text" }, "\u062A\u0639\u0630\u0651\u0631 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u0635\u0641\u062D\u0629"), h("span", { class: "error-url" }, this.url))) : (this.url && (h("iframe", { class: "browser-iframe", src: this.url, onLoad: this.handleIframeLoad, onError: this.handleIframeError, sandbox: "allow-scripts allow-same-origin allow-forms allow-popups", referrerPolicy: "no-referrer", title: displayTitle }))))));
33
33
  }
34
34
  static get is() { return "ai-in-chat-browser"; }
35
35
  static get encapsulation() { return "shadow"; }
@@ -18,7 +18,7 @@ export class AiLink {
18
18
  }
19
19
  render() {
20
20
  const rel = this.rel || (this.target === '_blank' ? 'noopener noreferrer' : undefined);
21
- return (h(Host, { key: '98087503b9a0803425b23f7ee00c95025493679d' }, h("span", { key: '41495d6375d1c539b777b3cd38e7b7af8fcbbb9b', class: "link__label" }, this.label, h("slot", { key: 'f416955b31900039f03b0e7ee2e537a22964d553' })), h("a", { key: '4f1d74ff6c600d17fcf80686aeebc5a92a4c7305', class: "link", href: this.href, target: this.target, rel: rel }, this.renderShareIcon())));
21
+ return (h(Host, { key: 'e0e34a4c2a3534a3b449bac613c6f7cb512420d3' }, h("span", { key: '5776ddc64676ecaabb4f36a0e9833026dc730c23', class: "link__label" }, this.label, h("slot", { key: '436a334a51bea342b839d5fad9743aaf6b66a94d' })), h("a", { key: '3880c1429a8a24a9dee700c9f0592ac673ce68f0', class: "link", href: this.href, target: this.target, rel: rel }, this.renderShareIcon())));
22
22
  }
23
23
  static get is() { return "ai-link"; }
24
24
  static get encapsulation() { return "shadow"; }
@@ -31,7 +31,7 @@ export class AiRouteDecision {
31
31
  this.routeExpand.emit(this._expanded);
32
32
  }
33
33
  render() {
34
- return (h(Host, { key: 'fa9b966cf28225fa458fb00d1114fade995258c5' }, h("div", { key: '5263c969fd1672e1d302f06173dcdbe4450b162e', class: `route-pill ${this._expanded ? 'expanded' : ''}` }, h("button", { key: 'bf7800e828b0b61174f75343fcf9bca3134dfb2a', class: "route-pill-main", onClick: () => this.handleToggle() }, h("span", { key: '8531aeab0872f59417a37294e780d46962b21ead', class: "route-icon" }, this.renderIcon('route', 14, 14)), h("span", { key: '754529860d90a3ceb4f226ff85b1aecb40f4649e', class: "agent-label" }, this.agentIcon && h("span", { key: '39682d3a761d2cd6fae794fcb6036b0044f8f2dc', class: "agent-emoji", "aria-hidden": "true" }, this.agentIcon), this.selectedAgent), this.confidence > 0 && (h("span", { key: '36b3a921ab75c1faa0ece5f286703bf1b0aaca16', class: "confidence-badge" }, this.confidence, "%")), h("span", { key: 'c5199e986bf35d187cad16027f23e62addc45ecb', class: `expand-icon ${this._expanded ? 'expanded' : ''}` }, this.renderIcon('arrow-right', 12, 12))), this._expanded && (h("div", { key: '2a18ae8297ad0d71b14d01d250e15cff452c4b07', class: "route-details" }, this.reason && h("p", { key: '55f5123399929c590fc5c2122fd7220209e5ecac', class: "reason-text" }, this.reason), this.confidence > 0 && (h("div", { key: 'fbc69e8cb7820c87764f46630af8f4a77d2d879b', class: "confidence-bar-wrap" }, h("div", { key: '1db1d454ef64dcf9e4c673d0a26780bd55f563d2', class: "confidence-bar", style: { width: `${this.confidence}%` } }))), this.detectedLanguage && (h("div", { key: '8553d1a20678252b8d4f9a1e9f8b64ce3f509ae5', class: "meta-row" }, this.renderIcon('list', 12, 12), h("span", { key: 'ec104948a04498d06ed73be89778c5b6d84582a2', class: "lang-chip" }, this.detectedLanguage))))))));
34
+ return (h(Host, { key: 'f12718d142cff27d62c0a0299b029be2e2d88b86' }, h("div", { key: '4fcef90f887300c4884cd981737bf8ce8b796eca', class: `route-pill ${this._expanded ? 'expanded' : ''}` }, h("button", { key: '09eadc07b41b96fb56b4bcd937165de92507ac84', class: "route-pill-main", onClick: () => this.handleToggle() }, h("span", { key: 'd13744692a45c74976f89b582142ae09339015f5', class: "route-icon" }, this.renderIcon('route', 14, 14)), h("span", { key: '4f995cc09a72ba74310df17cf78735c27a910314', class: "agent-label" }, this.agentIcon && h("span", { key: '272dd78f38bbbb4ef845b7a41530d205368faf7e', class: "agent-emoji", "aria-hidden": "true" }, this.agentIcon), this.selectedAgent), this.confidence > 0 && (h("span", { key: 'a061317c9d5b8dad243dce0bb80e927eae04eb3d', class: "confidence-badge" }, this.confidence, "%")), h("span", { key: '4342bdf38aa85a5c5d6bd054504c91bccc7901e9', class: `expand-icon ${this._expanded ? 'expanded' : ''}` }, this.renderIcon('arrow-right', 12, 12))), this._expanded && (h("div", { key: 'ab5340148e832baafdd38e17a748a52b83b25c96', class: "route-details" }, this.reason && h("p", { key: '7854838ea405c5fdb5ebe11fb3df36a9898be445', class: "reason-text" }, this.reason), this.confidence > 0 && (h("div", { key: 'baf946426ad7cda94d2acfbb9f8945b5b40a823c', class: "confidence-bar-wrap" }, h("div", { key: 'a6e08f412706ce18e16030dd4d475d57befdd9e7', class: "confidence-bar", style: { width: `${this.confidence}%` } }))), this.detectedLanguage && (h("div", { key: '58af2dbca56082dcf2910cc44ac553d6f2af015a', class: "meta-row" }, this.renderIcon('list', 12, 12), h("span", { key: '63517ed8802764542de330897372c6a01348d0a6', class: "lang-chip" }, this.detectedLanguage))))))));
35
35
  }
36
36
  static get is() { return "ai-route-decision"; }
37
37
  static get encapsulation() { return "shadow"; }
@@ -11,10 +11,10 @@ export class AiSuggestion {
11
11
  this.suggestionClick.emit(this.label);
12
12
  }
13
13
  render() {
14
- return (h(Host, { key: '510e649f8778e2298270d320f0555c4d960fb056' }, h("button", { key: 'a4ee17cbd432596804279d8a852635608125452a', class: {
14
+ return (h(Host, { key: 'c2eb388d152586755e9cc10ac57b519e8ff84b4d' }, h("button", { key: '0b9f6ec6d8c57365e2c29bfe1bfc33993d3cb498', class: {
15
15
  chip: true,
16
16
  'chip--disabled': this.disabled,
17
- }, disabled: this.disabled, onClick: () => this.handleClick() }, h("span", { key: 'cb2d97459b0dd6effe83bbfb81a0af9144759477', class: "chip__label" }, this.label, h("slot", { key: 'ce84f07883f24c216c45da9266af5160baea9cdc' })))));
17
+ }, disabled: this.disabled, onClick: () => this.handleClick() }, h("span", { key: 'd4fabc4c8176cd6837e609bad369e8edfc779855', class: "chip__label" }, this.label, h("slot", { key: 'a1074453e53982f10fd2115c2b15d7a7b20eda07' })))));
18
18
  }
19
19
  static get is() { return "ai-suggestion"; }
20
20
  static get encapsulation() { return "shadow"; }
@@ -269,7 +269,7 @@ export class VoiceInput {
269
269
  };
270
270
  render() {
271
271
  const remaining = MAX_RECORDING_TIME - this.recordingDuration;
272
- return (h(Host, { key: '93565ead1262f192811d4783ac4567b8eb7d59de' }, h("div", { key: '9317e2a24533435e5ac967f3eddaad3d1f6c4613', class: "wrapper" }, h("div", { key: '35631eb88e495be9b2bdabf1b8f15d237d327c4b', class: `glow${this.state === 'recording' ? ' visible' : ''}`, "aria-hidden": "true" }), h("div", { key: 'c65050758e58402c5b341c8d24a0ca58f9f53361', class: "input-container" }, this.state === 'idle' ? (h("div", { class: "recording-row" }, h("button", { type: "button", class: "submit-button", onClick: this.startRecording, disabled: this.disabled, "aria-label": "Start recording" }, h("ai-icon", { name: "mic", size: 16 })), this.error && (h("div", { class: "error-message", role: "alert" }, this.error)))) : (h("div", { class: "recording-row" }, h("button", { type: "button", class: "cancel-button", onClick: this.cancelRecording, "aria-label": "Cancel" }, h("ai-icon", { name: "cancel", size: 14 })), h("div", { class: `timer${remaining <= 5 ? ' warning' : ''}` }, this.formatDuration(this.recordingDuration)), this.showWaveform && h("canvas", { ref: el => (this.canvasRef = el), class: "waveform", height: "32" }), h("button", { type: "button", class: `submit-button${this.submitPulse ? ' pulse' : ''}`, onClick: this.stopRecording, "aria-label": "Send" }, h("ai-icon", { name: "arrow-up", size: 14 }))))))));
272
+ return (h(Host, { key: 'ca20fe9dda634af0da1ef6da59880279f0775a9f' }, h("div", { key: 'dc3328cc1ef74e9683bc6c34e1d3279b2ca2ffa2', class: "wrapper" }, h("div", { key: 'b4a4d2799b8c541dc03679686107cc486373e76b', class: `glow${this.state === 'recording' ? ' visible' : ''}`, "aria-hidden": "true" }), h("div", { key: 'f4fa8c638e68528dffd96db627bd80d4c7103143', class: "input-container" }, this.state === 'idle' ? (h("div", { class: "recording-row" }, h("button", { type: "button", class: "submit-button", onClick: this.startRecording, disabled: this.disabled, "aria-label": "Start recording" }, h("ai-icon", { name: "mic", size: 16 })), this.error && (h("div", { class: "error-message", role: "alert" }, this.error)))) : (h("div", { class: "recording-row" }, h("button", { type: "button", class: "cancel-button", onClick: this.cancelRecording, "aria-label": "Cancel" }, h("ai-icon", { name: "cancel", size: 14 })), h("div", { class: `timer${remaining <= 5 ? ' warning' : ''}` }, this.formatDuration(this.recordingDuration)), this.showWaveform && h("canvas", { ref: el => (this.canvasRef = el), class: "waveform", height: "32" }), h("button", { type: "button", class: `submit-button${this.submitPulse ? ' pulse' : ''}`, onClick: this.stopRecording, "aria-label": "Send" }, h("ai-icon", { name: "arrow-up", size: 14 }))))))));
273
273
  }
274
274
  static get is() { return "ai-voice-input"; }
275
275
  static get encapsulation() { return "shadow"; }
@@ -1 +1 @@
1
- import{A as r,d as o}from"./p-Ba0urr6Q.js";const s=r,a=o;export{s as AiCard,a as defineCustomElement}
1
+ import{A as o,d as s}from"./p-DCJWSYj-.js";const p=o,r=s;export{p as AiCard,r as defineCustomElement}
@@ -1 +1 @@
1
- import{p as t,H as i,c as e,h as a,d as n,t as o}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";import{d as r}from"./p-CJzVwMlS.js";const l=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.closeClick=e(this,"closeClick"),this.newChatClick=e(this,"newChatClick"),this.dropdownClick=e(this,"dropdownClick"),this.positionClick=e(this,"positionClick"),this.headerPositionClick=e(this,"headerPositionClick"),this.backClick=e(this,"backClick"),this.headerDragStart=e(this,"headerDragStart"),this.openExternal=e(this,"openExternal"),this.conversationSelect=e(this,"conversationSelect"),this.conversationDelete=e(this,"conversationDelete")}get el(){return this}mode="agent";conversation="محادثة جديدة";agentName="";agentStatus="";agentAvatar="";showBack=!0;statusIndicator="online";pageTitle="";pageUrl="";conversationItems=[];conversationActiveId="";conversationLoading=!1;titleLoading=!1;avatarError=!1;dropdownOpen=!1;isFloating=!1;parentPositionObserver=null;closeClick;newChatClick;dropdownClick;positionClick;headerPositionClick;backClick;headerDragStart;openExternal;conversationSelect;conversationDelete;handleDocumentClick(t){this.dropdownOpen&&!this.el.contains(t.target)&&(this.dropdownOpen=!1)}connectedCallback(){}componentDidLoad(){requestAnimationFrame((()=>{this.syncFloatingState(),this.observeParentPosition()}))}disconnectedCallback(){this.parentPositionObserver?.disconnect(),this.parentPositionObserver=null}observeParentPosition(){if(this.parentPositionObserver)return;const t=this.el.closest("ai-chat-container");t&&(this.parentPositionObserver=new MutationObserver((()=>this.syncFloatingState())),this.parentPositionObserver.observe(t,{attributes:!0,attributeFilter:["position"]}))}syncFloatingState(){const t=this.el.closest("ai-chat-container");if(t){const i="float"===t.getAttribute("position");this.isFloating!==i&&(this.isFloating=i)}else!1!==this.isFloating&&(this.isFloating=!1)}renderIcon(t,i,e){const n=s[t];return n?a("span",{class:"icon-wrap",innerHTML:`<svg width="${i}" height="${e}" viewBox="${n.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${n.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.isFloating&&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))}handleConversationSelect=t=>{t.stopPropagation(),this.conversationSelect.emit(t.detail),this.dropdownOpen=!1};handleConversationDelete=t=>{t.stopPropagation(),this.conversationDelete.emit(t.detail)};renderConversationDropdown(){return this.dropdownOpen&&"agent"===this.mode?a("div",{class:"conversation-dropdown"},a("ai-conversation-list",{items:this.conversationItems,activeId:this.conversationActiveId,loading:this.conversationLoading,onConversationSelect:this.handleConversationSelect,onConversationDelete:this.handleConversationDelete})):null}renderAgentMode(){return[this.renderDragBtn(),a("div",{class:"content agent dropdown-trigger",role:"button",onClick:()=>{this.titleLoading||(this.dropdownOpen=!this.dropdownOpen,this.dropdownClick.emit())},"aria-haspopup":"listbox","aria-expanded":this.dropdownOpen,"aria-label":this.conversation+", افتح قائمة المحادثات"},this.titleLoading?a("span",{class:"title-skeleton","aria-busy":"true","aria-label":"جاري التحميل"}):a("span",{class:"title"},this.conversation),!this.titleLoading&&a("span",{class:"dropdown-chevron"+(this.dropdownOpen?" open":"")},this.renderIcon("chevron-down",24,24))),a("div",{class:"actions"},a("button",{class:"action-btn","aria-label":"محادثة جديدة / New Chat",onClick:()=>this.newChatClick.emit()},this.renderIcon("pencil-edit",22,22)),a("button",{class:"action-btn","aria-label":"العرض / Position",onClick:()=>{this.positionClick.emit(),this.headerPositionClick.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.headerPositionClick.emit()}},this.renderIcon("hand",22,22)),a("button",{class:"action-btn","aria-label":"إغلاق / Close",onClick:()=>this.closeClick.emit()},this.renderIcon("cancel",22,22)))]}renderBrowserMode(){return[this.renderDragBtn(),a("div",{class:"content browser"},a("button",{class:"back-btn","aria-label":"رجوع / Back",onClick:()=>this.backClick.emit()},this.renderIcon("arrow-right",24,24)),a("span",{class:"browser-title"},this.pageTitle),a("button",{class:"browser-link-btn","aria-label":"فتح في نافذة جديدة / Open externally",onClick:()=>this.openExternal.emit(this.pageUrl)},this.renderIcon("link",14,14))),a("div",{class:"actions"},a("button",{class:"action-btn","aria-label":"العرض / Position",onClick:()=>{this.positionClick.emit(),this.headerPositionClick.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(n,{key:"b11b4d03d7f1980ec91b0fdba7db314971b7e7d3"},a("div",{key:"47f40b54a6861b69adee00bea45ab8a6691c13f2",class:"header-wrapper"},a("div",{key:"dcc18d4cb88457c2eb959bfccb2c8d72655d610a",class:"header-container"},"agent"===this.mode?this.renderAgentMode():"human"===this.mode?this.renderHumanMode():this.renderBrowserMode()),this.renderConversationDropdown()))}static get style(){return":host{display:block;position:relative;z-index:10}.header-wrapper{position:relative;display:flex;flex-direction:column}.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}.content.browser{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-chevron{display:inline-flex;transition:transform 0.2s ease}.dropdown-chevron.open{transform:rotate(180deg)}.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}@keyframes title-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.title-skeleton{display:inline-block;width:120px;height:16px;border-radius:8px;background:var(--ai-shimmer-gradient, linear-gradient(90deg, rgba(0,0,0,0.06) 25%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.06) 75%));background-size:200% 100%;animation:title-shimmer 1.6s ease-in-out infinite}.browser-title{font-size:14px;font-weight:600;color:var(--ai-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:20px}.browser-link-btn{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;cursor:pointer;flex-shrink:0;color:var(--ai-text-secondary)}.browser-link-btn:focus-visible{outline:2px solid var(--ai-focus-ring);outline-offset:2px}.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)}.conversation-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;height:360px;display:flex;flex-direction:column;background:var(--ai-bg-surface);border-bottom:1px solid var(--ai-border-light);box-shadow:var(--ai-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));animation:slideDown 0.2s ease;overflow:hidden}.conversation-dropdown ai-conversation-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}"}},[513,"ai-chat-header",{mode:[1],conversation:[1],agentName:[1,"agent-name"],agentStatus:[1,"agent-status"],agentAvatar:[1,"agent-avatar"],showBack:[4,"show-back"],statusIndicator:[1,"status-indicator"],pageTitle:[1,"page-title"],pageUrl:[1,"page-url"],conversationItems:[16],conversationActiveId:[1,"conversation-active-id"],conversationLoading:[4,"conversation-loading"],titleLoading:[4,"title-loading"],avatarError:[32],dropdownOpen:[32],isFloating:[32]},[[4,"click","handleDocumentClick"]]]),c=l,d=function(){"undefined"!=typeof customElements&&["ai-chat-header","ai-conversation-list"].forEach((t=>{switch(t){case"ai-chat-header":customElements.get(o(t))||customElements.define(o(t),l);break;case"ai-conversation-list":customElements.get(o(t))||r()}}))};export{c as AiChatHeader,d as defineCustomElement}
1
+ import{p as t,H as i,c as e,h as a,d as n,t as o}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";import{d as r}from"./p-CFSr3KcL.js";const l=t(class extends i{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.closeClick=e(this,"closeClick"),this.newChatClick=e(this,"newChatClick"),this.dropdownClick=e(this,"dropdownClick"),this.positionClick=e(this,"positionClick"),this.headerPositionClick=e(this,"headerPositionClick"),this.backClick=e(this,"backClick"),this.headerDragStart=e(this,"headerDragStart"),this.openExternal=e(this,"openExternal"),this.conversationSelect=e(this,"conversationSelect"),this.conversationDelete=e(this,"conversationDelete"),this.conversationRetry=e(this,"conversationRetry")}get el(){return this}mode="agent";conversation="محادثة جديدة";agentName="";agentStatus="";agentAvatar="";showBack=!0;statusIndicator="online";pageTitle="";pageUrl="";conversationItems=[];conversationActiveId="";conversationLoading=!1;conversationError=!1;conversationErrorText="تعذّر تحميل المحادثات";conversationRetryLabel="إعادة المحاولة";conversationEmptyText="لا توجد محادثات";conversationDeletingId="";titleLoading=!1;avatarError=!1;dropdownOpen=!1;isFloating=!1;parentPositionObserver=null;closeClick;newChatClick;dropdownClick;positionClick;headerPositionClick;backClick;headerDragStart;openExternal;conversationSelect;conversationDelete;conversationRetry;handleDocumentClick(t){this.dropdownOpen&&!this.el.contains(t.target)&&(this.dropdownOpen=!1)}connectedCallback(){}componentDidLoad(){requestAnimationFrame((()=>{this.syncFloatingState(),this.observeParentPosition()}))}disconnectedCallback(){this.parentPositionObserver?.disconnect(),this.parentPositionObserver=null}observeParentPosition(){if(this.parentPositionObserver)return;const t=this.el.closest("ai-chat-container");t&&(this.parentPositionObserver=new MutationObserver((()=>this.syncFloatingState())),this.parentPositionObserver.observe(t,{attributes:!0,attributeFilter:["position"]}))}syncFloatingState(){const t=this.el.closest("ai-chat-container");if(t){const i="float"===t.getAttribute("position");this.isFloating!==i&&(this.isFloating=i)}else!1!==this.isFloating&&(this.isFloating=!1)}renderIcon(t,i,e){const n=s[t];return n?a("span",{class:"icon-wrap",innerHTML:`<svg width="${i}" height="${e}" viewBox="${n.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${n.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.isFloating&&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))}handleConversationSelect=t=>{t.stopPropagation(),this.conversationSelect.emit(t.detail),this.dropdownOpen=!1};handleConversationDelete=t=>{t.stopPropagation(),this.conversationDelete.emit(t.detail)};handleConversationRetry=t=>{t.stopPropagation(),this.conversationRetry.emit()};renderConversationDropdown(){return this.dropdownOpen&&"agent"===this.mode?a("div",{class:"conversation-dropdown"},a("ai-conversation-list",{items:this.conversationItems,activeId:this.conversationActiveId,loading:this.conversationLoading,error:this.conversationError,errorText:this.conversationErrorText,retryLabel:this.conversationRetryLabel,emptyText:this.conversationEmptyText,deletingId:this.conversationDeletingId,onConversationSelect:this.handleConversationSelect,onConversationDelete:this.handleConversationDelete,onRetryClick:this.handleConversationRetry})):null}renderAgentMode(){return[this.renderDragBtn(),a("div",{class:"content agent dropdown-trigger",role:"button",onClick:()=>{this.titleLoading||(this.dropdownOpen=!this.dropdownOpen,this.dropdownClick.emit())},"aria-haspopup":"listbox","aria-expanded":this.dropdownOpen,"aria-label":this.conversation+", افتح قائمة المحادثات"},this.titleLoading?a("span",{class:"title-skeleton","aria-busy":"true","aria-label":"جاري التحميل"}):a("span",{class:"title"},this.conversation),!this.titleLoading&&a("span",{class:"dropdown-chevron"+(this.dropdownOpen?" open":"")},this.renderIcon("chevron-down",24,24))),a("div",{class:"actions"},a("button",{class:"action-btn","aria-label":"محادثة جديدة / New Chat",onClick:()=>this.newChatClick.emit()},this.renderIcon("pencil-edit",22,22)),a("button",{class:"action-btn","aria-label":"العرض / Position",onClick:()=>{this.positionClick.emit(),this.headerPositionClick.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.headerPositionClick.emit()}},this.renderIcon("hand",22,22)),a("button",{class:"action-btn","aria-label":"إغلاق / Close",onClick:()=>this.closeClick.emit()},this.renderIcon("cancel",22,22)))]}renderBrowserMode(){return[this.renderDragBtn(),a("div",{class:"content browser"},a("button",{class:"back-btn","aria-label":"رجوع / Back",onClick:()=>this.backClick.emit()},this.renderIcon("arrow-right",24,24)),a("span",{class:"browser-title"},this.pageTitle),a("button",{class:"browser-link-btn","aria-label":"فتح في نافذة جديدة / Open externally",onClick:()=>this.openExternal.emit(this.pageUrl)},this.renderIcon("link",14,14))),a("div",{class:"actions"},a("button",{class:"action-btn","aria-label":"العرض / Position",onClick:()=>{this.positionClick.emit(),this.headerPositionClick.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(n,{key:"80236bfcbfac98d3efa3955f03aab4ef68c9cfea"},a("div",{key:"dcc4142bba1d5f07782dbc7b0a3ec287e0154223",class:"header-wrapper"},a("div",{key:"ca0ff9a2946cead0b86cb82390624894ed414378",class:"header-container"},"agent"===this.mode?this.renderAgentMode():"human"===this.mode?this.renderHumanMode():this.renderBrowserMode()),this.renderConversationDropdown()))}static get style(){return":host{display:block;position:relative;z-index:10}.header-wrapper{position:relative;display:flex;flex-direction:column}.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}.content.browser{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-chevron{display:inline-flex;transition:transform 0.2s ease}.dropdown-chevron.open{transform:rotate(180deg)}.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}@keyframes title-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}.title-skeleton{display:inline-block;width:120px;height:16px;border-radius:8px;background:var(--ai-shimmer-gradient, linear-gradient(90deg, rgba(0,0,0,0.06) 25%, rgba(0,0,0,0.1) 50%, rgba(0,0,0,0.06) 75%));background-size:200% 100%;animation:title-shimmer 1.6s ease-in-out infinite}.browser-title{font-size:14px;font-weight:600;color:var(--ai-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;line-height:20px}.browser-link-btn{width:28px;height:28px;padding:0;display:inline-flex;align-items:center;justify-content:center;background:none;border:none;border-radius:8px;cursor:pointer;flex-shrink:0;color:var(--ai-text-secondary)}.browser-link-btn:focus-visible{outline:2px solid var(--ai-focus-ring);outline-offset:2px}.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)}.conversation-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;height:360px;display:flex;flex-direction:column;background:var(--ai-bg-surface);border-bottom:1px solid var(--ai-border-light);box-shadow:var(--ai-shadow-md, 0 4px 12px rgba(0, 0, 0, 0.08));animation:slideDown 0.2s ease;overflow:hidden}.conversation-dropdown ai-conversation-list{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}@keyframes slideDown{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}"}},[513,"ai-chat-header",{mode:[1],conversation:[1],agentName:[1,"agent-name"],agentStatus:[1,"agent-status"],agentAvatar:[1,"agent-avatar"],showBack:[4,"show-back"],statusIndicator:[1,"status-indicator"],pageTitle:[1,"page-title"],pageUrl:[1,"page-url"],conversationItems:[16],conversationActiveId:[1,"conversation-active-id"],conversationLoading:[4,"conversation-loading"],conversationError:[4,"conversation-error"],conversationErrorText:[1,"conversation-error-text"],conversationRetryLabel:[1,"conversation-retry-label"],conversationEmptyText:[1,"conversation-empty-text"],conversationDeletingId:[1,"conversation-deleting-id"],titleLoading:[4,"title-loading"],avatarError:[32],dropdownOpen:[32],isFloating:[32]},[[4,"click","handleDocumentClick"]]]),c=l,h=function(){"undefined"!=typeof customElements&&["ai-chat-header","ai-conversation-list"].forEach((t=>{switch(t){case"ai-chat-header":customElements.get(o(t))||customElements.define(o(t),l);break;case"ai-conversation-list":customElements.get(o(t))||r()}}))};export{c as AiChatHeader,h as defineCustomElement}
@@ -1,2 +1,2 @@
1
1
  import{p as e,H as t,c as n,h as i,d as r,t as a}from"./p-BPkf7wZg.js";import{i as o}from"./p-DlD8m3rf.js";
2
- /*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */const{entries:s,setPrototypeOf:l,isFrozen:c,getPrototypeOf:u,getOwnPropertyDescriptor:d}=Object;let{freeze:p,seal:f,create:m}=Object,{apply:g,construct:h}="undefined"!=typeof Reflect&&Reflect;p||(p=function(e){return e}),f||(f=function(e){return e}),g||(g=function(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.apply(t,i)}),h||(h=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});const b=L(Array.prototype.forEach),y=L(Array.prototype.lastIndexOf),x=L(Array.prototype.pop),v=L(Array.prototype.push),w=L(Array.prototype.splice),k=L(String.prototype.toLowerCase),T=L(String.prototype.toString),A=L(String.prototype.match),S=L(String.prototype.replace),E=L(String.prototype.indexOf),R=L(String.prototype.trim),_=L(Object.prototype.hasOwnProperty),z=L(RegExp.prototype.test),D=function(e){return function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return h(e,n)}}(TypeError);function L(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return g(e,t,i)}}function O(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;l&&l(e,null);let i=t.length;for(;i--;){let r=t[i];if("string"==typeof r){const e=n(r);e!==r&&(c(t)||(t[i]=e),r=e)}e[r]=!0}return e}function C(e){for(let t=0;t<e.length;t++)_(e,t)||(e[t]=null);return e}function $(e){const t=m(null);for(const[n,i]of s(e))_(e,n)&&(t[n]=Array.isArray(i)?C(i):i&&"object"==typeof i&&i.constructor===Object?$(i):i);return t}function M(e,t){for(;null!==e;){const n=d(e,t);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}e=u(e)}return function(){return null}}const F=p(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),I=p(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),N=p(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),B=p(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),P=p(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),j=p(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),U=p(["#text"]),W=p(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),q=p(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),H=p(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Y=p(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),K=f(/\{\{[\w\W]*|[\w\W]*\}\}/gm),G=f(/<%[\w\W]*|[\w\W]*%>/gm),X=f(/\$\{[\w\W]*/gm),V=f(/^data-[\-\w.\u00B7-\uFFFF]+$/),Z=f(/^aria-[\-\w]+$/),J=f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Q=f(/^(?:\w+script|data):/i),ee=f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),te=f(/^html$/i),ne=f(/^[a-z][.\w]*(-[.\w]+)+$/i);var ie=Object.freeze({__proto__:null,ARIA_ATTR:Z,ATTR_WHITESPACE:ee,CUSTOM_ELEMENT:ne,DATA_ATTR:V,DOCTYPE_NAME:te,ERB_EXPR:G,IS_ALLOWED_URI:J,IS_SCRIPT_OR_DATA:Q,MUSTACHE_EXPR:K,TMPLIT_EXPR:X});const re=function(){return"undefined"==typeof window?null:window};var ae=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:re();const n=t=>e(t);if(n.version="3.3.3",n.removed=[],!t||!t.document||9!==t.document.nodeType||!t.Element)return n.isSupported=!1,n;let{document:i}=t;const r=i,a=r.currentScript,{DocumentFragment:o,HTMLTemplateElement:l,Node:c,Element:u,NodeFilter:d,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:g,DOMParser:h,trustedTypes:L}=t,C=u.prototype,K=M(C,"cloneNode"),G=M(C,"remove"),X=M(C,"nextSibling"),V=M(C,"childNodes"),Z=M(C,"parentNode");if("function"==typeof l){const e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let Q,ee="";const{implementation:ne,createNodeIterator:ae,createDocumentFragment:oe,getElementsByTagName:se}=i,{importNode:le}=r;let ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof s&&"function"==typeof Z&&ne&&void 0!==ne.createHTMLDocument;const{MUSTACHE_EXPR:ue,ERB_EXPR:de,TMPLIT_EXPR:pe,DATA_ATTR:fe,ARIA_ATTR:me,IS_SCRIPT_OR_DATA:ge,ATTR_WHITESPACE:he,CUSTOM_ELEMENT:be}=ie;let{IS_ALLOWED_URI:ye}=ie,xe=null;const ve=O({},[...F,...I,...N,...P,...U]);let we=null;const ke=O({},[...W,...q,...H,...Y]);let Te=Object.seal(m(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,Se=null;const Ee=Object.seal(m(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Re=!0,_e=!0,ze=!1,De=!0,Le=!1,Oe=!0,Ce=!1,$e=!1,Me=!1,Fe=!1,Ie=!1,Ne=!1,Be=!0,Pe=!1,je=!0,Ue=!1,We={},qe=null;const He=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ye=null;const Ke=O({},["audio","video","img","source","image","track"]);let Ge=null;const Xe=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ve="http://www.w3.org/1998/Math/MathML",Ze="http://www.w3.org/2000/svg",Je="http://www.w3.org/1999/xhtml";let Qe=Je,et=!1,tt=null;const nt=O({},[Ve,Ze,Je],T);let it=O({},["mi","mo","mn","ms","mtext"]),rt=O({},["annotation-xml"]);const at=O({},["title","style","font","a","script"]);let ot=null;const st=["application/xhtml+xml","text/html"];let lt=null,ct=null;const ut=i.createElement("form"),dt=function(e){return e instanceof RegExp||e instanceof Function},pt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=$(e),ot=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===ot?T:k,xe=_(e,"ALLOWED_TAGS")?O({},e.ALLOWED_TAGS,lt):ve,we=_(e,"ALLOWED_ATTR")?O({},e.ALLOWED_ATTR,lt):ke,tt=_(e,"ALLOWED_NAMESPACES")?O({},e.ALLOWED_NAMESPACES,T):nt,Ge=_(e,"ADD_URI_SAFE_ATTR")?O($(Xe),e.ADD_URI_SAFE_ATTR,lt):Xe,Ye=_(e,"ADD_DATA_URI_TAGS")?O($(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,qe=_(e,"FORBID_CONTENTS")?O({},e.FORBID_CONTENTS,lt):He,Ae=_(e,"FORBID_TAGS")?O({},e.FORBID_TAGS,lt):$({}),Se=_(e,"FORBID_ATTR")?O({},e.FORBID_ATTR,lt):$({}),We=!!_(e,"USE_PROFILES")&&e.USE_PROFILES,Re=!1!==e.ALLOW_ARIA_ATTR,_e=!1!==e.ALLOW_DATA_ATTR,ze=e.ALLOW_UNKNOWN_PROTOCOLS||!1,De=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Le=e.SAFE_FOR_TEMPLATES||!1,Oe=!1!==e.SAFE_FOR_XML,Ce=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Ne=e.RETURN_TRUSTED_TYPE||!1,Me=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,Pe=e.SANITIZE_NAMED_PROPS||!1,je=!1!==e.KEEP_CONTENT,Ue=e.IN_PLACE||!1,ye=e.ALLOWED_URI_REGEXP||J,Qe=e.NAMESPACE||Je,it=e.MATHML_TEXT_INTEGRATION_POINTS||it,rt=e.HTML_INTEGRATION_POINTS||rt,Te=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Le&&(_e=!1),Ie&&(Fe=!0),We&&(xe=O({},U),we=m(null),!0===We.html&&(O(xe,F),O(we,W)),!0===We.svg&&(O(xe,I),O(we,q),O(we,Y)),!0===We.svgFilters&&(O(xe,N),O(we,q),O(we,Y)),!0===We.mathMl&&(O(xe,P),O(we,H),O(we,Y))),_(e,"ADD_TAGS")||(Ee.tagCheck=null),_(e,"ADD_ATTR")||(Ee.attributeCheck=null),e.ADD_TAGS&&("function"==typeof e.ADD_TAGS?Ee.tagCheck=e.ADD_TAGS:(xe===ve&&(xe=$(xe)),O(xe,e.ADD_TAGS,lt))),e.ADD_ATTR&&("function"==typeof e.ADD_ATTR?Ee.attributeCheck=e.ADD_ATTR:(we===ke&&(we=$(we)),O(we,e.ADD_ATTR,lt))),e.ADD_URI_SAFE_ATTR&&O(Ge,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(qe===He&&(qe=$(qe)),O(qe,e.FORBID_CONTENTS,lt)),e.ADD_FORBID_CONTENTS&&(qe===He&&(qe=$(qe)),O(qe,e.ADD_FORBID_CONTENTS,lt)),je&&(xe["#text"]=!0),Ce&&O(xe,["html","head","body"]),xe.table&&(O(xe,["tbody"]),delete Ae.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw D('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw D('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,ee=Q.createHTML("")}else void 0===Q&&(Q=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(n=t.getAttribute(i));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(L,a)),null!==Q&&"string"==typeof ee&&(ee=Q.createHTML(""));p&&p(e),ct=e}},ft=O({},[...I,...N,...B]),mt=O({},[...P,...j]),gt=function(e){v(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){G(e)}},ht=function(e,t){try{v(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){v(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Fe||Ie)try{gt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},bt=function(e){let t=null,n=null;if(Me)e="<remove></remove>"+e;else{const t=A(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ot&&Qe===Je&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const r=Q?Q.createHTML(e):e;if(Qe===Je)try{t=(new h).parseFromString(r,ot)}catch(e){}if(!t||!t.documentElement){t=ne.createDocument(Qe,"template",null);try{t.documentElement.innerHTML=et?ee:r}catch(e){}}const a=t.body||t.documentElement;return e&&n&&a.insertBefore(i.createTextNode(n),a.childNodes[0]||null),Qe===Je?se.call(t,Ce?"html":"body")[0]:Ce?t.documentElement:a},yt=function(e){return ae.call(e.ownerDocument||e,e,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},xt=function(e){return e instanceof g&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof f)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},vt=function(e){return"function"==typeof c&&e instanceof c};function wt(e,t,i){b(e,(e=>{e.call(n,t,i,ct)}))}const kt=function(e){let t=null;if(wt(ce.beforeSanitizeElements,e,null),xt(e))return gt(e),!0;const i=lt(e.nodeName);if(wt(ce.uponSanitizeElement,e,{tagName:i,allowedTags:xe}),Oe&&e.hasChildNodes()&&!vt(e.firstElementChild)&&z(/<[/\w!]/g,e.innerHTML)&&z(/<[/\w!]/g,e.textContent))return gt(e),!0;if(7===e.nodeType)return gt(e),!0;if(Oe&&8===e.nodeType&&z(/<[/\w]/g,e.data))return gt(e),!0;if(!(Ee.tagCheck instanceof Function&&Ee.tagCheck(i))&&(!xe[i]||Ae[i])){if(!Ae[i]&&At(i)){if(Te.tagNameCheck instanceof RegExp&&z(Te.tagNameCheck,i))return!1;if(Te.tagNameCheck instanceof Function&&Te.tagNameCheck(i))return!1}if(je&&!qe[i]){const t=Z(e)||e.parentNode,n=V(e)||e.childNodes;if(n&&t)for(let i=n.length-1;i>=0;--i){const r=K(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,X(e))}}return gt(e),!0}return e instanceof u&&!function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:Qe,tagName:"template"});const n=k(e.tagName),i=k(t.tagName);return!!tt[e.namespaceURI]&&(e.namespaceURI===Ze?t.namespaceURI===Je?"svg"===n:t.namespaceURI===Ve?"svg"===n&&("annotation-xml"===i||it[i]):!!ft[n]:e.namespaceURI===Ve?t.namespaceURI===Je?"math"===n:t.namespaceURI===Ze?"math"===n&&rt[i]:!!mt[n]:e.namespaceURI===Je?!(t.namespaceURI===Ze&&!rt[i])&&!(t.namespaceURI===Ve&&!it[i])&&!mt[n]&&(at[n]||!ft[n]):!("application/xhtml+xml"!==ot||!tt[e.namespaceURI]))}(e)?(gt(e),!0):"noscript"!==i&&"noembed"!==i&&"noframes"!==i||!z(/<\/no(script|embed|frames)/i,e.innerHTML)?(Le&&3===e.nodeType&&(t=e.textContent,b([ue,de,pe],(e=>{t=S(t,e," ")})),e.textContent!==t&&(v(n.removed,{element:e.cloneNode()}),e.textContent=t)),wt(ce.afterSanitizeElements,e,null),!1):(gt(e),!0)},Tt=function(e,t,n){if(Se[t])return!1;if(Be&&("id"===t||"name"===t)&&(n in i||n in ut))return!1;if(_e&&!Se[t]&&z(fe,t));else if(Re&&z(me,t));else if(Ee.attributeCheck instanceof Function&&Ee.attributeCheck(t,e));else if(!we[t]||Se[t]){if(!(At(e)&&(Te.tagNameCheck instanceof RegExp&&z(Te.tagNameCheck,e)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(e))&&(Te.attributeNameCheck instanceof RegExp&&z(Te.attributeNameCheck,t)||Te.attributeNameCheck instanceof Function&&Te.attributeNameCheck(t,e))||"is"===t&&Te.allowCustomizedBuiltInElements&&(Te.tagNameCheck instanceof RegExp&&z(Te.tagNameCheck,n)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))))return!1}else if(Ge[t]);else if(z(ye,S(n,he,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==E(n,"data:")||!Ye[e])if(ze&&!z(ge,S(n,he,"")));else if(n)return!1;return!0},At=function(e){return"annotation-xml"!==e&&A(e,be)},St=function(e){wt(ce.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||xt(e))return;const i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we,forceKeepAttr:void 0};let r=t.length;for(;r--;){const a=t[r],{name:o,namespaceURI:s,value:l}=a,c=lt(o),u=l;let d="value"===o?u:R(u);if(i.attrName=c,i.attrValue=d,i.keepAttr=!0,i.forceKeepAttr=void 0,wt(ce.uponSanitizeAttribute,e,i),d=i.attrValue,!Pe||"id"!==c&&"name"!==c||(ht(o,e),d="user-content-"+d),Oe&&z(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ht(o,e);continue}if("attributename"===c&&A(d,"href")){ht(o,e);continue}if(i.forceKeepAttr)continue;if(!i.keepAttr){ht(o,e);continue}if(!De&&z(/\/>/i,d)){ht(o,e);continue}Le&&b([ue,de,pe],(e=>{d=S(d,e," ")}));const p=lt(e.nodeName);if(Tt(p,c,d)){if(Q&&"object"==typeof L&&"function"==typeof L.getAttributeType)if(s);else switch(L.getAttributeType(p,c)){case"TrustedHTML":d=Q.createHTML(d);break;case"TrustedScriptURL":d=Q.createScriptURL(d)}if(d!==u)try{s?e.setAttributeNS(s,o,d):e.setAttribute(o,d),xt(e)?gt(e):x(n.removed)}catch(t){ht(o,e)}}else ht(o,e)}wt(ce.afterSanitizeAttributes,e,null)},Et=function e(t){let n=null;const i=yt(t);for(wt(ce.beforeSanitizeShadowDOM,t,null);n=i.nextNode();)wt(ce.uponSanitizeShadowNode,n,null),kt(n),St(n),n.content instanceof o&&e(n.content);wt(ce.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,s=null,l=null;if(et=!e,et&&(e="\x3c!--\x3e"),"string"!=typeof e&&!vt(e)){if("function"!=typeof e.toString)throw D("toString is not a function");if("string"!=typeof(e=""+e))throw D("dirty is not a string, aborting")}if(!n.isSupported)return e;if($e||pt(t),n.removed=[],"string"==typeof e&&(Ue=!1),Ue){if(e.nodeName){const t=lt(e.nodeName);if(!xe[t]||Ae[t])throw D("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof c)i=bt("\x3c!----\x3e"),a=i.ownerDocument.importNode(e,!0),1===a.nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!Fe&&!Le&&!Ce&&-1===e.indexOf("<"))return Q&&Ne?Q.createHTML(e):e;if(i=bt(e),!i)return Fe?null:Ne?ee:""}i&&Me&&gt(i.firstChild);const u=yt(Ue?e:i);for(;s=u.nextNode();)kt(s),St(s),s.content instanceof o&&Et(s.content);if(Ue)return e;if(Fe){if(Ie)for(l=oe.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(we.shadowroot||we.shadowrootmode)&&(l=le.call(r,l,!0)),l}let d=Ce?i.outerHTML:i.innerHTML;return Ce&&xe["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&z(te,i.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+i.ownerDocument.doctype.name+">\n"+d),Le&&b([ue,de,pe],(e=>{d=S(d,e," ")})),Q&&Ne?Q.createHTML(d):d},n.setConfig=function(){pt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),$e=!0},n.clearConfig=function(){ct=null,$e=!1},n.isValidAttribute=function(e,t,n){ct||pt({});const i=lt(e),r=lt(t);return Tt(i,r,n)},n.addHook=function(e,t){"function"==typeof t&&v(ce[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=y(ce[e],t);return-1===n?void 0:w(ce[e],n,1)[0]}return x(ce[e])},n.removeHooks=function(e){ce[e]=[]},n.removeAllHooks=function(){ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}();const oe={ALLOWED_TAGS:["p","br","strong","em","del","code","pre","ul","ol","li","h2","h3","a","blockquote","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","target","rel"]},se=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.messageCopy=n(this,"messageCopy"),this.messageFeedback=n(this,"messageFeedback"),this.messageRegenerate=n(this,"messageRegenerate")}role="user";content="";format="text";agentName="";timestamp="";showActions=!0;enableRegenerate=!1;feedbackValue=null;messageCopy;messageFeedback;messageRegenerate;copySuccess=!1;copyTimeout;disconnectedCallback(){this.copyTimeout&&clearTimeout(this.copyTimeout)}renderIcon(e,t=16){const n=o[e];return n?i("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${t}" viewBox="${n.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${n.content}</svg>`}):null}parseMarkdown(e){let t=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");const n=[];return t=t.replace(/```(?:\w+)?\n?([\s\S]*?)```/g,((e,t)=>{const i=n.length;return n.push(`<pre><code>${t}</code></pre>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\|.+\|\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim()));if(t.length<2)return e;let i="<table>",r=!1;t.forEach(((e,t)=>{if((e=>/^[\s|:-]+$/.test(e))(e))return r=!0,void(i+="<tbody>");const n=e.split("|").filter(((e,t,n)=>t>0&&t<n.length-1));i+=r||0!==t?`<tr>${n.map((e=>`<td>${e.trim()}</td>`)).join("")}</tr>`:`<thead><tr>${n.map((e=>`<th>${e.trim()}</th>`)).join("")}</tr></thead>`})),r&&(i+="</tbody>"),i+="</table>";const a=n.length;return n.push(i),`\0BLOCK${a}\0`})),t=t.replace(/((?:^&gt; .+\n?)+)/gm,(e=>{const t=e.replace(/^&gt; /gm,"").trim(),i=n.length;return n.push(`<blockquote>${t}</blockquote>`),`\0BLOCK${i}\0`})),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/^## (.+)$/gm,"<h2>$1</h2>"),t=t.replace(/^### (.+)$/gm,"<h3>$1</h3>"),t=t.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/~~(.+?)~~/g,"<del>$1</del>"),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),t=t.replace(/((?:^[ \t]*[-*] .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*[-*] /,"")}</li>`)).join(""),i=n.length;return n.push(`<ul>${t}</ul>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\d+\. .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*\d+\. /,"")}</li>`)).join(""),i=n.length;return n.push(`<ol>${t}</ol>`),`\0BLOCK${i}\0`})),t=t.split(/\n{2,}/).map((e=>{const t=e.trim();return t?/^\x00BLOCK\d+\x00$/.test(t)?t:`<p>${t.replace(/\n/g,"<br>")}</p>`:""})).join(""),t=t.replace(/\x00BLOCK(\d+)\x00/g,((e,t)=>n[parseInt(t,10)]||"")),t}getRenderedContent(){if(!this.content)return"";try{return ae.sanitize(this.parseMarkdown(this.content),oe)}catch{return ae.sanitize(`<p>${this.content.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>")}</p>`,oe)}}getRelativeTime(){if(!this.timestamp)return"";try{const e=new Date(this.timestamp);if(isNaN(e.getTime()))return this.timestamp;const t=Date.now()-e.getTime(),n=Math.floor(t/6e4),i=Math.floor(n/60),r=Math.floor(i/24),a="undefined"!=typeof document&&document.documentElement.lang||"ar",o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});return n<1?o.format(0,"second"):n<60?o.format(-n,"minute"):i<24?o.format(-i,"hour"):o.format(-r,"day")}catch{return this.timestamp}}async handleCopy(){try{await navigator.clipboard.writeText(this.content)}catch(e){}this.copySuccess=!0,this.messageCopy.emit(),this.copyTimeout=setTimeout((()=>this.copySuccess=!1),1500)}handleFeedback(e){this.feedbackValue=this.feedbackValue===e?null:e,this.messageFeedback.emit(e)}renderActionsBar(){return i("div",{class:"actions-bar"},this.enableRegenerate&&i("button",{class:"action-btn",onClick:()=>this.messageRegenerate.emit(),title:"إعادة تحميل"},this.renderIcon("reload",16)),i("button",{class:"action-btn copy-btn"+(this.copySuccess?" copy-success":""),onClick:()=>this.handleCopy(),title:"نسخ"},this.renderIcon("copy",16)),i("div",{class:"feedback-group"},i("button",{class:"feedback-btn thumbs-down-btn"+("down"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("down"),title:"غير مفيد"},this.renderIcon("thumbs-down",16)),i("button",{class:"feedback-btn thumbs-up-btn"+("up"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("up"),title:"مفيد"},this.renderIcon("thumbs-up",16))))}renderUserMessage(){return i("div",{class:"message-row user-row"},i("div",{class:"bubble user-bubble"},i("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}})))}renderAgentMessage(){const e=this.showActions;return i("div",{class:"message-row agent-row"},i("div",{class:"agent-bubble-wrapper"},i("div",{class:"bubble agent-bubble"},this.content&&i("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}}),i("slot",null),e&&this.renderActionsBar()),(this.agentName||this.timestamp)&&i("div",{class:"agent-info"},this.agentName&&i("span",{class:"agent-info-name"},this.agentName),this.agentName&&this.timestamp&&this.renderIcon("eclipse",10),this.timestamp&&i("span",{class:"agent-info-time"},this.getRelativeTime()))))}render(){return i(r,{key:"b6fe466c9830e69c3ae6f405daa9e77ef3f75aca"},"user"===this.role?this.renderUserMessage():this.renderAgentMessage())}static get style(){return":host{--ai-msg-user-bg:var(--ai-user-bubble-bg);--ai-msg-user-border:1px solid var(--ai-border-default);--ai-msg-agent-bg:var(--ai-agent-bubble-bg);--ai-msg-agent-border:1px solid var(--ai-border-default);--ai-msg-border-radius:16px;--ai-msg-padding:16px;--ai-msg-font-size:14px;--ai-msg-action-active-bg:var(--ai-accent);--ai-user-msg-max-width:80%;--ai-agent-msg-max-width:80%;display:block}.message-row{display:flex}.user-row{flex-direction:column;align-items:flex-end}.user-bubble{background:var(--ai-msg-user-bg);color:var(--ai-text-primary);border:var(--ai-msg-user-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);max-width:var(--ai-user-msg-max-width);line-height:1.5;word-break:break-word;box-shadow:var(--ai-shadow-sm)}.user-row .timestamp{font-size:12px;color:var(--ai-text-secondary);margin-top:4px}.agent-row{flex-direction:row;justify-content:flex-start}.agent-bubble-wrapper{display:flex;flex-direction:column;gap:6px;width:100%;max-width:var(--ai-msg-agent-max-width);min-width:0}.agent-bubble{background:var(--ai-msg-agent-bg);color:var(--ai-text-primary);border:var(--ai-msg-agent-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);line-height:1.6;word-break:break-word;box-shadow:var(--ai-shadow-sm);display:flex;flex-direction:column;gap:12px}.message-content{white-space:pre-wrap}.message-content p{margin:0 0 8px 0}.message-content p:last-child{margin-bottom:0}.message-content h2{font-size:16px;font-weight:700;margin:0 0 8px 0}.message-content h3{font-size:15px;font-weight:600;margin:0 0 6px 0}.message-content strong{font-weight:700}.message-content em{font-style:italic}.message-content code{background:var(--ai-bg-surface);border-radius:4px;padding:1px 5px;font-family:var(--ai-font-family-mono);font-size:13px;color:var(--ai-text-primary)}.message-content pre{background:var(--ai-bg-surface);border-radius:8px;padding:10px 12px;overflow-x:auto;margin:8px 0}.message-content pre code{background:none;padding:0;font-size:13px}.message-content ul,.message-content ol{padding-inline-start:20px;margin:4px 0 8px 0}.message-content li{margin-bottom:3px}.actions-bar{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;height:0;overflow:hidden;opacity:0;pointer-events:none;transition:height 0.15s ease, opacity 0.15s ease}.agent-bubble:hover .actions-bar{height:32px;opacity:1;pointer-events:auto}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--ai-bg-card);border:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s;padding:0;flex-shrink:0}.action-btn:hover{background:var(--ai-bg-surface)}.action-btn.copy-success{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text);border-color:var(--ai-accent)}.feedback-group{display:flex;align-items:center;border:1px solid var(--ai-border-default);border-radius:8px;overflow:hidden;background:var(--ai-bg-card)}.feedback-btn{display:flex;align-items:center;justify-content:center;height:32px;padding:0 8px;background:var(--ai-bg-card);border:none;border-inline-start:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s}.feedback-btn:first-child{border-inline-start:none}.feedback-btn:hover{background:var(--ai-bg-surface)}.feedback-btn.active{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text)}.icon-wrap{display:flex;align-items:center;justify-content:center;line-height:0}.agent-info{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;color:var(--ai-text-muted)}.agent-info-name,.agent-info-time{font-size:12px;color:inherit;line-height:16px;white-space:nowrap}.agent-info .icon-wrap{display:flex;align-items:center;color:inherit;opacity:0.6;flex-shrink:0}.typing-indicator{display:flex;align-items:center;gap:5px;padding:4px 2px}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--ai-text-muted);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:0.2s}.typing-dot:nth-child(3){animation-delay:0.4s}@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}.streaming-cursor{display:inline-block;width:2px;height:1em;background:currentColor;vertical-align:text-bottom;margin-inline-start:2px;animation:cursorBlink 0.8s step-start infinite}@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}"}},[769,"ai-chat-message",{role:[1],content:[1],format:[1],agentName:[1,"agent-name"],timestamp:[1],showActions:[4,"show-actions"],enableRegenerate:[4,"enable-regenerate"],feedbackValue:[1025,"feedback-value"],copySuccess:[32]}]),le=se,ce=function(){"undefined"!=typeof customElements&&["ai-chat-message"].forEach((e=>{"ai-chat-message"===e&&(customElements.get(a(e))||customElements.define(a(e),se))}))};export{le as AiChatMessage,ce as defineCustomElement}
2
+ /*! @license DOMPurify 3.3.3 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.3/LICENSE */const{entries:s,setPrototypeOf:l,isFrozen:c,getPrototypeOf:u,getOwnPropertyDescriptor:d}=Object;let{freeze:p,seal:f,create:m}=Object,{apply:g,construct:h}="undefined"!=typeof Reflect&&Reflect;p||(p=function(e){return e}),f||(f=function(e){return e}),g||(g=function(e,t){for(var n=arguments.length,i=Array(n>2?n-2:0),r=2;r<n;r++)i[r-2]=arguments[r];return e.apply(t,i)}),h||(h=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),i=1;i<t;i++)n[i-1]=arguments[i];return new e(...n)});const b=L(Array.prototype.forEach),y=L(Array.prototype.lastIndexOf),x=L(Array.prototype.pop),v=L(Array.prototype.push),w=L(Array.prototype.splice),k=L(String.prototype.toLowerCase),T=L(String.prototype.toString),A=L(String.prototype.match),S=L(String.prototype.replace),E=L(String.prototype.indexOf),R=L(String.prototype.trim),_=L(Object.prototype.hasOwnProperty),z=L(RegExp.prototype.test),D=function(e){return function(){for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];return h(e,n)}}(TypeError);function L(e){return function(t){t instanceof RegExp&&(t.lastIndex=0);for(var n=arguments.length,i=Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return g(e,t,i)}}function O(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:k;l&&l(e,null);let i=t.length;for(;i--;){let r=t[i];if("string"==typeof r){const e=n(r);e!==r&&(c(t)||(t[i]=e),r=e)}e[r]=!0}return e}function C(e){for(let t=0;t<e.length;t++)_(e,t)||(e[t]=null);return e}function $(e){const t=m(null);for(const[n,i]of s(e))_(e,n)&&(t[n]=Array.isArray(i)?C(i):i&&"object"==typeof i&&i.constructor===Object?$(i):i);return t}function M(e,t){for(;null!==e;){const n=d(e,t);if(n){if(n.get)return L(n.get);if("function"==typeof n.value)return L(n.value)}e=u(e)}return function(){return null}}const F=p(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),I=p(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),N=p(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),B=p(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),P=p(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),j=p(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),U=p(["#text"]),W=p(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),q=p(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),H=p(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),Y=p(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),K=f(/\{\{[\w\W]*|[\w\W]*\}\}/gm),G=f(/<%[\w\W]*|[\w\W]*%>/gm),X=f(/\$\{[\w\W]*/gm),V=f(/^data-[\-\w.\u00B7-\uFFFF]+$/),Z=f(/^aria-[\-\w]+$/),J=f(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Q=f(/^(?:\w+script|data):/i),ee=f(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),te=f(/^html$/i),ne=f(/^[a-z][.\w]*(-[.\w]+)+$/i);var ie=Object.freeze({__proto__:null,ARIA_ATTR:Z,ATTR_WHITESPACE:ee,CUSTOM_ELEMENT:ne,DATA_ATTR:V,DOCTYPE_NAME:te,ERB_EXPR:G,IS_ALLOWED_URI:J,IS_SCRIPT_OR_DATA:Q,MUSTACHE_EXPR:K,TMPLIT_EXPR:X});const re=function(){return"undefined"==typeof window?null:window};var ae=function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:re();const n=t=>e(t);if(n.version="3.3.3",n.removed=[],!t||!t.document||9!==t.document.nodeType||!t.Element)return n.isSupported=!1,n;let{document:i}=t;const r=i,a=r.currentScript,{DocumentFragment:o,HTMLTemplateElement:l,Node:c,Element:u,NodeFilter:d,NamedNodeMap:f=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:g,DOMParser:h,trustedTypes:L}=t,C=u.prototype,K=M(C,"cloneNode"),G=M(C,"remove"),X=M(C,"nextSibling"),V=M(C,"childNodes"),Z=M(C,"parentNode");if("function"==typeof l){const e=i.createElement("template");e.content&&e.content.ownerDocument&&(i=e.content.ownerDocument)}let Q,ee="";const{implementation:ne,createNodeIterator:ae,createDocumentFragment:oe,getElementsByTagName:se}=i,{importNode:le}=r;let ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]};n.isSupported="function"==typeof s&&"function"==typeof Z&&ne&&void 0!==ne.createHTMLDocument;const{MUSTACHE_EXPR:ue,ERB_EXPR:de,TMPLIT_EXPR:pe,DATA_ATTR:fe,ARIA_ATTR:me,IS_SCRIPT_OR_DATA:ge,ATTR_WHITESPACE:he,CUSTOM_ELEMENT:be}=ie;let{IS_ALLOWED_URI:ye}=ie,xe=null;const ve=O({},[...F,...I,...N,...P,...U]);let we=null;const ke=O({},[...W,...q,...H,...Y]);let Te=Object.seal(m(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Ae=null,Se=null;const Ee=Object.seal(m(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Re=!0,_e=!0,ze=!1,De=!0,Le=!1,Oe=!0,Ce=!1,$e=!1,Me=!1,Fe=!1,Ie=!1,Ne=!1,Be=!0,Pe=!1,je=!0,Ue=!1,We={},qe=null;const He=O({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ye=null;const Ke=O({},["audio","video","img","source","image","track"]);let Ge=null;const Xe=O({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ve="http://www.w3.org/1998/Math/MathML",Ze="http://www.w3.org/2000/svg",Je="http://www.w3.org/1999/xhtml";let Qe=Je,et=!1,tt=null;const nt=O({},[Ve,Ze,Je],T);let it=O({},["mi","mo","mn","ms","mtext"]),rt=O({},["annotation-xml"]);const at=O({},["title","style","font","a","script"]);let ot=null;const st=["application/xhtml+xml","text/html"];let lt=null,ct=null;const ut=i.createElement("form"),dt=function(e){return e instanceof RegExp||e instanceof Function},pt=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!ct||ct!==e){if(e&&"object"==typeof e||(e={}),e=$(e),ot=-1===st.indexOf(e.PARSER_MEDIA_TYPE)?"text/html":e.PARSER_MEDIA_TYPE,lt="application/xhtml+xml"===ot?T:k,xe=_(e,"ALLOWED_TAGS")?O({},e.ALLOWED_TAGS,lt):ve,we=_(e,"ALLOWED_ATTR")?O({},e.ALLOWED_ATTR,lt):ke,tt=_(e,"ALLOWED_NAMESPACES")?O({},e.ALLOWED_NAMESPACES,T):nt,Ge=_(e,"ADD_URI_SAFE_ATTR")?O($(Xe),e.ADD_URI_SAFE_ATTR,lt):Xe,Ye=_(e,"ADD_DATA_URI_TAGS")?O($(Ke),e.ADD_DATA_URI_TAGS,lt):Ke,qe=_(e,"FORBID_CONTENTS")?O({},e.FORBID_CONTENTS,lt):He,Ae=_(e,"FORBID_TAGS")?O({},e.FORBID_TAGS,lt):$({}),Se=_(e,"FORBID_ATTR")?O({},e.FORBID_ATTR,lt):$({}),We=!!_(e,"USE_PROFILES")&&e.USE_PROFILES,Re=!1!==e.ALLOW_ARIA_ATTR,_e=!1!==e.ALLOW_DATA_ATTR,ze=e.ALLOW_UNKNOWN_PROTOCOLS||!1,De=!1!==e.ALLOW_SELF_CLOSE_IN_ATTR,Le=e.SAFE_FOR_TEMPLATES||!1,Oe=!1!==e.SAFE_FOR_XML,Ce=e.WHOLE_DOCUMENT||!1,Fe=e.RETURN_DOM||!1,Ie=e.RETURN_DOM_FRAGMENT||!1,Ne=e.RETURN_TRUSTED_TYPE||!1,Me=e.FORCE_BODY||!1,Be=!1!==e.SANITIZE_DOM,Pe=e.SANITIZE_NAMED_PROPS||!1,je=!1!==e.KEEP_CONTENT,Ue=e.IN_PLACE||!1,ye=e.ALLOWED_URI_REGEXP||J,Qe=e.NAMESPACE||Je,it=e.MATHML_TEXT_INTEGRATION_POINTS||it,rt=e.HTML_INTEGRATION_POINTS||rt,Te=e.CUSTOM_ELEMENT_HANDLING||{},e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(Te.tagNameCheck=e.CUSTOM_ELEMENT_HANDLING.tagNameCheck),e.CUSTOM_ELEMENT_HANDLING&&dt(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(Te.attributeNameCheck=e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),e.CUSTOM_ELEMENT_HANDLING&&"boolean"==typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements&&(Te.allowCustomizedBuiltInElements=e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),Le&&(_e=!1),Ie&&(Fe=!0),We&&(xe=O({},U),we=m(null),!0===We.html&&(O(xe,F),O(we,W)),!0===We.svg&&(O(xe,I),O(we,q),O(we,Y)),!0===We.svgFilters&&(O(xe,N),O(we,q),O(we,Y)),!0===We.mathMl&&(O(xe,P),O(we,H),O(we,Y))),_(e,"ADD_TAGS")||(Ee.tagCheck=null),_(e,"ADD_ATTR")||(Ee.attributeCheck=null),e.ADD_TAGS&&("function"==typeof e.ADD_TAGS?Ee.tagCheck=e.ADD_TAGS:(xe===ve&&(xe=$(xe)),O(xe,e.ADD_TAGS,lt))),e.ADD_ATTR&&("function"==typeof e.ADD_ATTR?Ee.attributeCheck=e.ADD_ATTR:(we===ke&&(we=$(we)),O(we,e.ADD_ATTR,lt))),e.ADD_URI_SAFE_ATTR&&O(Ge,e.ADD_URI_SAFE_ATTR,lt),e.FORBID_CONTENTS&&(qe===He&&(qe=$(qe)),O(qe,e.FORBID_CONTENTS,lt)),e.ADD_FORBID_CONTENTS&&(qe===He&&(qe=$(qe)),O(qe,e.ADD_FORBID_CONTENTS,lt)),je&&(xe["#text"]=!0),Ce&&O(xe,["html","head","body"]),xe.table&&(O(xe,["tbody"]),delete Ae.tbody),e.TRUSTED_TYPES_POLICY){if("function"!=typeof e.TRUSTED_TYPES_POLICY.createHTML)throw D('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if("function"!=typeof e.TRUSTED_TYPES_POLICY.createScriptURL)throw D('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Q=e.TRUSTED_TYPES_POLICY,ee=Q.createHTML("")}else void 0===Q&&(Q=function(e,t){if("object"!=typeof e||"function"!=typeof e.createPolicy)return null;let n=null;const i="data-tt-policy-suffix";t&&t.hasAttribute(i)&&(n=t.getAttribute(i));const r="dompurify"+(n?"#"+n:"");try{return e.createPolicy(r,{createHTML:e=>e,createScriptURL:e=>e})}catch(e){return console.warn("TrustedTypes policy "+r+" could not be created."),null}}(L,a)),null!==Q&&"string"==typeof ee&&(ee=Q.createHTML(""));p&&p(e),ct=e}},ft=O({},[...I,...N,...B]),mt=O({},[...P,...j]),gt=function(e){v(n.removed,{element:e});try{Z(e).removeChild(e)}catch(t){G(e)}},ht=function(e,t){try{v(n.removed,{attribute:t.getAttributeNode(e),from:t})}catch(e){v(n.removed,{attribute:null,from:t})}if(t.removeAttribute(e),"is"===e)if(Fe||Ie)try{gt(t)}catch(e){}else try{t.setAttribute(e,"")}catch(e){}},bt=function(e){let t=null,n=null;if(Me)e="<remove></remove>"+e;else{const t=A(e,/^[\r\n\t ]+/);n=t&&t[0]}"application/xhtml+xml"===ot&&Qe===Je&&(e='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+e+"</body></html>");const r=Q?Q.createHTML(e):e;if(Qe===Je)try{t=(new h).parseFromString(r,ot)}catch(e){}if(!t||!t.documentElement){t=ne.createDocument(Qe,"template",null);try{t.documentElement.innerHTML=et?ee:r}catch(e){}}const a=t.body||t.documentElement;return e&&n&&a.insertBefore(i.createTextNode(n),a.childNodes[0]||null),Qe===Je?se.call(t,Ce?"html":"body")[0]:Ce?t.documentElement:a},yt=function(e){return ae.call(e.ownerDocument||e,e,d.SHOW_ELEMENT|d.SHOW_COMMENT|d.SHOW_TEXT|d.SHOW_PROCESSING_INSTRUCTION|d.SHOW_CDATA_SECTION,null)},xt=function(e){return e instanceof g&&("string"!=typeof e.nodeName||"string"!=typeof e.textContent||"function"!=typeof e.removeChild||!(e.attributes instanceof f)||"function"!=typeof e.removeAttribute||"function"!=typeof e.setAttribute||"string"!=typeof e.namespaceURI||"function"!=typeof e.insertBefore||"function"!=typeof e.hasChildNodes)},vt=function(e){return"function"==typeof c&&e instanceof c};function wt(e,t,i){b(e,(e=>{e.call(n,t,i,ct)}))}const kt=function(e){let t=null;if(wt(ce.beforeSanitizeElements,e,null),xt(e))return gt(e),!0;const i=lt(e.nodeName);if(wt(ce.uponSanitizeElement,e,{tagName:i,allowedTags:xe}),Oe&&e.hasChildNodes()&&!vt(e.firstElementChild)&&z(/<[/\w!]/g,e.innerHTML)&&z(/<[/\w!]/g,e.textContent))return gt(e),!0;if(7===e.nodeType)return gt(e),!0;if(Oe&&8===e.nodeType&&z(/<[/\w]/g,e.data))return gt(e),!0;if(!(Ee.tagCheck instanceof Function&&Ee.tagCheck(i))&&(!xe[i]||Ae[i])){if(!Ae[i]&&At(i)){if(Te.tagNameCheck instanceof RegExp&&z(Te.tagNameCheck,i))return!1;if(Te.tagNameCheck instanceof Function&&Te.tagNameCheck(i))return!1}if(je&&!qe[i]){const t=Z(e)||e.parentNode,n=V(e)||e.childNodes;if(n&&t)for(let i=n.length-1;i>=0;--i){const r=K(n[i],!0);r.__removalCount=(e.__removalCount||0)+1,t.insertBefore(r,X(e))}}return gt(e),!0}return e instanceof u&&!function(e){let t=Z(e);t&&t.tagName||(t={namespaceURI:Qe,tagName:"template"});const n=k(e.tagName),i=k(t.tagName);return!!tt[e.namespaceURI]&&(e.namespaceURI===Ze?t.namespaceURI===Je?"svg"===n:t.namespaceURI===Ve?"svg"===n&&("annotation-xml"===i||it[i]):!!ft[n]:e.namespaceURI===Ve?t.namespaceURI===Je?"math"===n:t.namespaceURI===Ze?"math"===n&&rt[i]:!!mt[n]:e.namespaceURI===Je?!(t.namespaceURI===Ze&&!rt[i])&&!(t.namespaceURI===Ve&&!it[i])&&!mt[n]&&(at[n]||!ft[n]):!("application/xhtml+xml"!==ot||!tt[e.namespaceURI]))}(e)?(gt(e),!0):"noscript"!==i&&"noembed"!==i&&"noframes"!==i||!z(/<\/no(script|embed|frames)/i,e.innerHTML)?(Le&&3===e.nodeType&&(t=e.textContent,b([ue,de,pe],(e=>{t=S(t,e," ")})),e.textContent!==t&&(v(n.removed,{element:e.cloneNode()}),e.textContent=t)),wt(ce.afterSanitizeElements,e,null),!1):(gt(e),!0)},Tt=function(e,t,n){if(Se[t])return!1;if(Be&&("id"===t||"name"===t)&&(n in i||n in ut))return!1;if(_e&&!Se[t]&&z(fe,t));else if(Re&&z(me,t));else if(Ee.attributeCheck instanceof Function&&Ee.attributeCheck(t,e));else if(!we[t]||Se[t]){if(!(At(e)&&(Te.tagNameCheck instanceof RegExp&&z(Te.tagNameCheck,e)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(e))&&(Te.attributeNameCheck instanceof RegExp&&z(Te.attributeNameCheck,t)||Te.attributeNameCheck instanceof Function&&Te.attributeNameCheck(t,e))||"is"===t&&Te.allowCustomizedBuiltInElements&&(Te.tagNameCheck instanceof RegExp&&z(Te.tagNameCheck,n)||Te.tagNameCheck instanceof Function&&Te.tagNameCheck(n))))return!1}else if(Ge[t]);else if(z(ye,S(n,he,"")));else if("src"!==t&&"xlink:href"!==t&&"href"!==t||"script"===e||0!==E(n,"data:")||!Ye[e])if(ze&&!z(ge,S(n,he,"")));else if(n)return!1;return!0},At=function(e){return"annotation-xml"!==e&&A(e,be)},St=function(e){wt(ce.beforeSanitizeAttributes,e,null);const{attributes:t}=e;if(!t||xt(e))return;const i={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:we,forceKeepAttr:void 0};let r=t.length;for(;r--;){const a=t[r],{name:o,namespaceURI:s,value:l}=a,c=lt(o),u=l;let d="value"===o?u:R(u);if(i.attrName=c,i.attrValue=d,i.keepAttr=!0,i.forceKeepAttr=void 0,wt(ce.uponSanitizeAttribute,e,i),d=i.attrValue,!Pe||"id"!==c&&"name"!==c||(ht(o,e),d="user-content-"+d),Oe&&z(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,d)){ht(o,e);continue}if("attributename"===c&&A(d,"href")){ht(o,e);continue}if(i.forceKeepAttr)continue;if(!i.keepAttr){ht(o,e);continue}if(!De&&z(/\/>/i,d)){ht(o,e);continue}Le&&b([ue,de,pe],(e=>{d=S(d,e," ")}));const p=lt(e.nodeName);if(Tt(p,c,d)){if(Q&&"object"==typeof L&&"function"==typeof L.getAttributeType)if(s);else switch(L.getAttributeType(p,c)){case"TrustedHTML":d=Q.createHTML(d);break;case"TrustedScriptURL":d=Q.createScriptURL(d)}if(d!==u)try{s?e.setAttributeNS(s,o,d):e.setAttribute(o,d),xt(e)?gt(e):x(n.removed)}catch(t){ht(o,e)}}else ht(o,e)}wt(ce.afterSanitizeAttributes,e,null)},Et=function e(t){let n=null;const i=yt(t);for(wt(ce.beforeSanitizeShadowDOM,t,null);n=i.nextNode();)wt(ce.uponSanitizeShadowNode,n,null),kt(n),St(n),n.content instanceof o&&e(n.content);wt(ce.afterSanitizeShadowDOM,t,null)};return n.sanitize=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=null,a=null,s=null,l=null;if(et=!e,et&&(e="\x3c!--\x3e"),"string"!=typeof e&&!vt(e)){if("function"!=typeof e.toString)throw D("toString is not a function");if("string"!=typeof(e=""+e))throw D("dirty is not a string, aborting")}if(!n.isSupported)return e;if($e||pt(t),n.removed=[],"string"==typeof e&&(Ue=!1),Ue){if(e.nodeName){const t=lt(e.nodeName);if(!xe[t]||Ae[t])throw D("root node is forbidden and cannot be sanitized in-place")}}else if(e instanceof c)i=bt("\x3c!----\x3e"),a=i.ownerDocument.importNode(e,!0),1===a.nodeType&&"BODY"===a.nodeName||"HTML"===a.nodeName?i=a:i.appendChild(a);else{if(!Fe&&!Le&&!Ce&&-1===e.indexOf("<"))return Q&&Ne?Q.createHTML(e):e;if(i=bt(e),!i)return Fe?null:Ne?ee:""}i&&Me&&gt(i.firstChild);const u=yt(Ue?e:i);for(;s=u.nextNode();)kt(s),St(s),s.content instanceof o&&Et(s.content);if(Ue)return e;if(Fe){if(Ie)for(l=oe.call(i.ownerDocument);i.firstChild;)l.appendChild(i.firstChild);else l=i;return(we.shadowroot||we.shadowrootmode)&&(l=le.call(r,l,!0)),l}let d=Ce?i.outerHTML:i.innerHTML;return Ce&&xe["!doctype"]&&i.ownerDocument&&i.ownerDocument.doctype&&i.ownerDocument.doctype.name&&z(te,i.ownerDocument.doctype.name)&&(d="<!DOCTYPE "+i.ownerDocument.doctype.name+">\n"+d),Le&&b([ue,de,pe],(e=>{d=S(d,e," ")})),Q&&Ne?Q.createHTML(d):d},n.setConfig=function(){pt(arguments.length>0&&void 0!==arguments[0]?arguments[0]:{}),$e=!0},n.clearConfig=function(){ct=null,$e=!1},n.isValidAttribute=function(e,t,n){ct||pt({});const i=lt(e),r=lt(t);return Tt(i,r,n)},n.addHook=function(e,t){"function"==typeof t&&v(ce[e],t)},n.removeHook=function(e,t){if(void 0!==t){const n=y(ce[e],t);return-1===n?void 0:w(ce[e],n,1)[0]}return x(ce[e])},n.removeHooks=function(e){ce[e]=[]},n.removeAllHooks=function(){ce={afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},n}();const oe={ALLOWED_TAGS:["p","br","strong","em","del","code","pre","ul","ol","li","h2","h3","a","blockquote","table","thead","tbody","tr","th","td"],ALLOWED_ATTR:["href","target","rel"]},se=e(class extends t{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.messageCopy=n(this,"messageCopy"),this.messageFeedback=n(this,"messageFeedback"),this.messageRegenerate=n(this,"messageRegenerate")}role="user";content="";format="text";agentName="";timestamp="";showActions=!0;enableRegenerate=!1;feedbackValue=null;messageCopy;messageFeedback;messageRegenerate;copySuccess=!1;copyTimeout;disconnectedCallback(){this.copyTimeout&&clearTimeout(this.copyTimeout)}renderIcon(e,t=16){const n=o[e];return n?i("span",{class:"icon-wrap",innerHTML:`<svg width="${t}" height="${t}" viewBox="${n.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${n.content}</svg>`}):null}parseMarkdown(e){let t=e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;");const n=[];return t=t.replace(/```(?:\w+)?\n?([\s\S]*?)```/g,((e,t)=>{const i=n.length;return n.push(`<pre><code>${t}</code></pre>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\|.+\|\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim()));if(t.length<2)return e;let i="<table>",r=!1;t.forEach(((e,t)=>{if((e=>/^[\s|:-]+$/.test(e))(e))return r=!0,void(i+="<tbody>");const n=e.split("|").filter(((e,t,n)=>t>0&&t<n.length-1));i+=r||0!==t?`<tr>${n.map((e=>`<td>${e.trim()}</td>`)).join("")}</tr>`:`<thead><tr>${n.map((e=>`<th>${e.trim()}</th>`)).join("")}</tr></thead>`})),r&&(i+="</tbody>"),i+="</table>";const a=n.length;return n.push(i),`\0BLOCK${a}\0`})),t=t.replace(/((?:^&gt; .+\n?)+)/gm,(e=>{const t=e.replace(/^&gt; /gm,"").trim(),i=n.length;return n.push(`<blockquote>${t}</blockquote>`),`\0BLOCK${i}\0`})),t=t.replace(/`([^`]+)`/g,"<code>$1</code>"),t=t.replace(/^## (.+)$/gm,"<h2>$1</h2>"),t=t.replace(/^### (.+)$/gm,"<h3>$1</h3>"),t=t.replace(/\*\*(.+?)\*\*/g,"<strong>$1</strong>"),t=t.replace(/\*([^*\n]+)\*/g,"<em>$1</em>"),t=t.replace(/~~(.+?)~~/g,"<del>$1</del>"),t=t.replace(/\[([^\]]+)\]\(([^)]+)\)/g,'<a href="$2" target="_blank" rel="noopener noreferrer">$1</a>'),t=t.replace(/((?:^[ \t]*[-*] .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*[-*] /,"")}</li>`)).join(""),i=n.length;return n.push(`<ul>${t}</ul>`),`\0BLOCK${i}\0`})),t=t.replace(/((?:^[ \t]*\d+\. .+\n?)+)/gm,(e=>{const t=e.trim().split("\n").filter((e=>e.trim())).map((e=>`<li>${e.replace(/^[ \t]*\d+\. /,"")}</li>`)).join(""),i=n.length;return n.push(`<ol>${t}</ol>`),`\0BLOCK${i}\0`})),t=t.split(/\n{2,}/).map((e=>{const t=e.trim();return t?/^\x00BLOCK\d+\x00$/.test(t)?t:`<p>${t.replace(/\n/g,"<br>")}</p>`:""})).join(""),t=t.replace(/\x00BLOCK(\d+)\x00/g,((e,t)=>n[parseInt(t,10)]||"")),t}getRenderedContent(){if(!this.content)return"";try{return ae.sanitize(this.parseMarkdown(this.content),oe)}catch{return ae.sanitize(`<p>${this.content.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>")}</p>`,oe)}}getRelativeTime(){if(!this.timestamp)return"";try{const e=new Date(this.timestamp);if(isNaN(e.getTime()))return this.timestamp;const t=Date.now()-e.getTime(),n=Math.floor(t/6e4),i=Math.floor(n/60),r=Math.floor(i/24),a="undefined"!=typeof document&&document.documentElement.lang||"ar",o=new Intl.RelativeTimeFormat(a,{numeric:"auto"});return n<1?o.format(0,"second"):n<60?o.format(-n,"minute"):i<24?o.format(-i,"hour"):o.format(-r,"day")}catch{return this.timestamp}}async handleCopy(){try{await navigator.clipboard.writeText(this.content)}catch(e){}this.copySuccess=!0,this.messageCopy.emit(),this.copyTimeout=setTimeout((()=>this.copySuccess=!1),1500)}handleFeedback(e){this.feedbackValue=this.feedbackValue===e?null:e,this.messageFeedback.emit(e)}renderActionsBar(){return i("div",{class:"actions-bar"},this.enableRegenerate&&i("button",{class:"action-btn",onClick:()=>this.messageRegenerate.emit(),title:"إعادة تحميل"},this.renderIcon("reload",16)),i("button",{class:"action-btn copy-btn"+(this.copySuccess?" copy-success":""),onClick:()=>this.handleCopy(),title:"نسخ"},this.renderIcon("copy",16)),i("div",{class:"feedback-group"},i("button",{class:"feedback-btn thumbs-down-btn"+("down"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("down"),title:"غير مفيد"},this.renderIcon("thumbs-down",16)),i("button",{class:"feedback-btn thumbs-up-btn"+("up"===this.feedbackValue?" active":""),onClick:()=>this.handleFeedback("up"),title:"مفيد"},this.renderIcon("thumbs-up",16))))}renderUserMessage(){return i("div",{class:"message-row user-row"},i("div",{class:"bubble user-bubble"},i("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}})))}renderAgentMessage(){const e=this.showActions;return i("div",{class:"message-row agent-row"},i("div",{class:"agent-bubble-wrapper"},i("div",{class:"bubble agent-bubble"},this.content&&i("div",{class:"message-content",ref:e=>{e&&("markdown"===this.format?e.innerHTML=this.getRenderedContent():e.textContent=this.content)}}),i("slot",null),e&&this.renderActionsBar()),(this.agentName||this.timestamp)&&i("div",{class:"agent-info"},this.agentName&&i("span",{class:"agent-info-name"},this.agentName),this.agentName&&this.timestamp&&this.renderIcon("eclipse",10),this.timestamp&&i("span",{class:"agent-info-time"},this.getRelativeTime()))))}render(){return i(r,{key:"f8a49971896742ae952d84efb1527ed0db440876"},"user"===this.role?this.renderUserMessage():this.renderAgentMessage())}static get style(){return":host{--ai-msg-user-bg:var(--ai-user-bubble-bg);--ai-msg-user-border:1px solid var(--ai-border-default);--ai-msg-agent-bg:var(--ai-agent-bubble-bg);--ai-msg-agent-border:1px solid var(--ai-border-default);--ai-msg-border-radius:16px;--ai-msg-padding:16px;--ai-msg-font-size:14px;--ai-msg-action-active-bg:var(--ai-accent);--ai-user-msg-max-width:80%;--ai-agent-msg-max-width:80%;display:block}.message-row{display:flex}.user-row{flex-direction:column;align-items:flex-end}.user-bubble{background:var(--ai-msg-user-bg);color:var(--ai-text-primary);border:var(--ai-msg-user-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);max-width:var(--ai-user-msg-max-width);line-height:1.5;word-break:break-word;box-shadow:var(--ai-shadow-sm)}.user-row .timestamp{font-size:12px;color:var(--ai-text-secondary);margin-top:4px}.agent-row{flex-direction:row;justify-content:flex-start}.agent-bubble-wrapper{display:flex;flex-direction:column;gap:6px;width:100%;max-width:var(--ai-msg-agent-max-width);min-width:0}.agent-bubble{background:var(--ai-msg-agent-bg);color:var(--ai-text-primary);border:var(--ai-msg-agent-border);border-radius:var(--ai-msg-border-radius);padding:var(--ai-msg-padding);font-size:var(--ai-msg-font-size);line-height:1.6;word-break:break-word;box-shadow:var(--ai-shadow-sm);display:flex;flex-direction:column;gap:12px}.message-content{white-space:pre-wrap}.message-content p{margin:0 0 8px 0}.message-content p:last-child{margin-bottom:0}.message-content h2{font-size:16px;font-weight:700;margin:0 0 8px 0}.message-content h3{font-size:15px;font-weight:600;margin:0 0 6px 0}.message-content strong{font-weight:700}.message-content em{font-style:italic}.message-content code{background:var(--ai-bg-surface);border-radius:4px;padding:1px 5px;font-family:var(--ai-font-family-mono);font-size:13px;color:var(--ai-text-primary)}.message-content pre{background:var(--ai-bg-surface);border-radius:8px;padding:10px 12px;overflow-x:auto;margin:8px 0}.message-content pre code{background:none;padding:0;font-size:13px}.message-content ul,.message-content ol{padding-inline-start:20px;margin:4px 0 8px 0}.message-content li{margin-bottom:3px}.actions-bar{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;height:0;overflow:hidden;opacity:0;pointer-events:none;transition:height 0.15s ease, opacity 0.15s ease}.agent-bubble:hover .actions-bar{height:32px;opacity:1;pointer-events:auto}.action-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:8px;background:var(--ai-bg-card);border:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s;padding:0;flex-shrink:0}.action-btn:hover{background:var(--ai-bg-surface)}.action-btn.copy-success{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text);border-color:var(--ai-accent)}.feedback-group{display:flex;align-items:center;border:1px solid var(--ai-border-default);border-radius:8px;overflow:hidden;background:var(--ai-bg-card)}.feedback-btn{display:flex;align-items:center;justify-content:center;height:32px;padding:0 8px;background:var(--ai-bg-card);border:none;border-inline-start:1px solid var(--ai-border-default);cursor:pointer;color:var(--ai-text-primary);transition:background 0.15s, color 0.15s}.feedback-btn:first-child{border-inline-start:none}.feedback-btn:hover{background:var(--ai-bg-surface)}.feedback-btn.active{background:var(--ai-msg-action-active-bg);color:var(--ai-accent-text)}.icon-wrap{display:flex;align-items:center;justify-content:center;line-height:0}.agent-info{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:6px;color:var(--ai-text-muted)}.agent-info-name,.agent-info-time{font-size:12px;color:inherit;line-height:16px;white-space:nowrap}.agent-info .icon-wrap{display:flex;align-items:center;color:inherit;opacity:0.6;flex-shrink:0}.typing-indicator{display:flex;align-items:center;gap:5px;padding:4px 2px}.typing-dot{width:8px;height:8px;border-radius:50%;background:var(--ai-text-muted);animation:typingBounce 1.2s ease-in-out infinite}.typing-dot:nth-child(2){animation-delay:0.2s}.typing-dot:nth-child(3){animation-delay:0.4s}@keyframes typingBounce{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-6px)}}.streaming-cursor{display:inline-block;width:2px;height:1em;background:currentColor;vertical-align:text-bottom;margin-inline-start:2px;animation:cursorBlink 0.8s step-start infinite}@keyframes cursorBlink{0%,100%{opacity:1}50%{opacity:0}}"}},[769,"ai-chat-message",{role:[1],content:[1],format:[1],agentName:[1,"agent-name"],timestamp:[1],showActions:[4,"show-actions"],enableRegenerate:[4,"enable-regenerate"],feedbackValue:[1025,"feedback-value"],copySuccess:[32]}]),le=se,ce=function(){"undefined"!=typeof customElements&&["ai-chat-message"].forEach((e=>{"ai-chat-message"===e&&(customElements.get(a(e))||customElements.define(a(e),se))}))};export{le as AiChatMessage,ce as defineCustomElement}
@@ -1 +1 @@
1
- import{A as o,d as s}from"./p-CJzVwMlS.js";const p=o,r=s;export{p as AiConversationList,r as defineCustomElement}
1
+ import{A as o,d as r}from"./p-CFSr3KcL.js";const s=o,p=r;export{s as AiConversationList,p as defineCustomElement}
@@ -1 +1 @@
1
- import{p as a,H as e,h as s,d as r,t}from"./p-BPkf7wZg.js";import{i}from"./p-DlD8m3rf.js";const d=a(class extends e{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow()}conversation="ملخص المحادثة";summary="";messageCount=0;language="";renderIcon(a,e,r){const t=i[a];return t?s("span",{class:"icon-wrap",innerHTML:`<svg width="${e}" height="${r}" viewBox="${t.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${t.content}</svg>`}):null}render(){return s(r,{key:"d8dd368f17be91aaef528ae8092cce78bb19e35a"},s("div",{key:"0460dcf3531e947c8ad6ea9d38fc76a1f0ec687d",class:"summary-card"},s("div",{key:"01d46505f838f90ccc4c2d6e57f7b92982f45bd9",class:"summary-header"},s("div",{key:"33afcdbe1f575a31a04ac7a1de948ab32dc76a83",class:"sparkle-avatar"},this.renderIcon("sparkle",14,14)),s("span",{key:"a645e52868e63ddcc8be501ae4d2a680ec6b3b27",class:"summary-title"},this.conversation),s("div",{key:"14ade251a1136afae789c4d097013686f50a18f7",class:"summary-badges"},this.messageCount>0&&s("span",{key:"70bf7e43f5d8f2ee38b2627d7f011d686bbb1b49",class:"badge"},this.renderIcon("list",12,12),this.messageCount),this.language&&s("span",{key:"9ad21900a26a59dabb2a25809995500363768692",class:"badge lang-badge"},this.language))),this.summary&&s("p",{key:"342007bc9de432fb64f71c84b301fbc802f9d119",class:"summary-body",ref:a=>a&&(a.textContent=this.summary)}),s("div",{key:"c0ca1841f37918e0e1a805b34f53e2f0b204bbda",class:"summary-slot"},s("slot",{key:"24cf0b383924109ed50aded7929320c1d66f3ea1"}))))}static get style(){return":host{display:block}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;line-height:0}.summary-card{background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:16px;box-shadow:var(--ai-shadow-sm);overflow:hidden;animation:fade-in 0.3s ease}@keyframes fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.summary-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--ai-border-default)}.sparkle-avatar{width:24px;height:24px;border-radius:9999px;background:var(--ai-bg-surface);box-shadow:var(--ai-shadow-inner);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ai-amber)}.summary-title{font-size:15px;font-weight:500;color:var(--ai-text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-badges{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--ai-accent-dark);background:var(--ai-accent-bg);padding:2px 8px;border-radius:9999px;white-space:nowrap}.lang-badge{color:var(--ai-text-secondary);background:var(--ai-bg-surface)}.summary-body{margin:0;padding:12px 16px;font-size:14px;color:var(--ai-text-secondary);line-height:1.6;border-bottom:1px solid var(--ai-border-default)}.summary-slot{padding:12px 16px}.summary-slot:empty{display:none}"}},[769,"ai-conversation-summary",{conversation:[1],summary:[1],messageCount:[2,"message-count"],language:[1]}]),n=d,o=function(){"undefined"!=typeof customElements&&["ai-conversation-summary"].forEach((a=>{"ai-conversation-summary"===a&&(customElements.get(t(a))||customElements.define(t(a),d))}))};export{n as AiConversationSummary,o as defineCustomElement}
1
+ import{p as a,H as e,h as s,d as r,t}from"./p-BPkf7wZg.js";import{i}from"./p-DlD8m3rf.js";const n=a(class extends e{constructor(a){super(),!1!==a&&this.__registerHost(),this.__attachShadow()}conversation="ملخص المحادثة";summary="";messageCount=0;language="";renderIcon(a,e,r){const t=i[a];return t?s("span",{class:"icon-wrap",innerHTML:`<svg width="${e}" height="${r}" viewBox="${t.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${t.content}</svg>`}):null}render(){return s(r,{key:"f69a767b9111f035799fbad9e26f6cd278d2cd5e"},s("div",{key:"2b598f0ebcf118c75d58a92173d31250b7b71aaa",class:"summary-card"},s("div",{key:"fba36d83ef95feaaff7a88847c2ad8eed7b2a009",class:"summary-header"},s("div",{key:"f2840d65175456326a9f2c2d389b788f4dfc6622",class:"sparkle-avatar"},this.renderIcon("sparkle",14,14)),s("span",{key:"e90eca9ddf0b1b610a05d3a68fba69853c3c87e5",class:"summary-title"},this.conversation),s("div",{key:"ab9dd453aab0b04b00493dac0a7b5ad74b194190",class:"summary-badges"},this.messageCount>0&&s("span",{key:"e5664fb004a19d72334f157121125a01ff09f56a",class:"badge"},this.renderIcon("list",12,12),this.messageCount),this.language&&s("span",{key:"af0784ee45ed3169514d198dc1236e781fe48ac6",class:"badge lang-badge"},this.language))),this.summary&&s("p",{key:"c0c2be2118abbe62a31adc65e6fa8907f155bb49",class:"summary-body",ref:a=>a&&(a.textContent=this.summary)}),s("div",{key:"61c139e33e9e247508e830e319fc9cc014451526",class:"summary-slot"},s("slot",{key:"5ebbbdb3319c6a8ca9f8e98a58c6336e7a25c159"}))))}static get style(){return":host{display:block}.icon-wrap{display:inline-flex;align-items:center;justify-content:center;line-height:0}.summary-card{background:var(--ai-bg-card);border:1px solid var(--ai-border-default);border-radius:16px;box-shadow:var(--ai-shadow-sm);overflow:hidden;animation:fade-in 0.3s ease}@keyframes fade-in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.summary-header{display:flex;align-items:center;gap:8px;padding:14px 16px;border-bottom:1px solid var(--ai-border-default)}.sparkle-avatar{width:24px;height:24px;border-radius:9999px;background:var(--ai-bg-surface);box-shadow:var(--ai-shadow-inner);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ai-amber)}.summary-title{font-size:15px;font-weight:500;color:var(--ai-text-primary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.summary-badges{display:inline-flex;align-items:center;gap:6px;flex-shrink:0}.badge{display:inline-flex;align-items:center;gap:3px;font-size:11px;font-weight:500;color:var(--ai-accent-dark);background:var(--ai-accent-bg);padding:2px 8px;border-radius:9999px;white-space:nowrap}.lang-badge{color:var(--ai-text-secondary);background:var(--ai-bg-surface)}.summary-body{margin:0;padding:12px 16px;font-size:14px;color:var(--ai-text-secondary);line-height:1.6;border-bottom:1px solid var(--ai-border-default)}.summary-slot{padding:12px 16px}.summary-slot:empty{display:none}"}},[769,"ai-conversation-summary",{conversation:[1],summary:[1],messageCount:[2,"message-count"],language:[1]}]),d=n,o=function(){"undefined"!=typeof customElements&&["ai-conversation-summary"].forEach((a=>{"ai-conversation-summary"===a&&(customElements.get(t(a))||customElements.define(t(a),n))}))};export{d as AiConversationSummary,o as defineCustomElement}
@@ -1 +1 @@
1
- import{p as r,H as e,h as a,d as t,t as i}from"./p-BPkf7wZg.js";const s=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow()}url="";pageTitle="";isLoading=!0;hasError=!1;onUrlChange(){this.isLoading=!0,this.hasError=!1}getDisplayTitle(){if(this.pageTitle)return this.pageTitle;try{return new URL(this.url).hostname}catch{return this.url||""}}handleIframeLoad=()=>{this.isLoading=!1};handleIframeError=()=>{this.isLoading=!1,this.hasError=!0};render(){const r=this.getDisplayTitle();return a(t,{key:"2d3bb12516396aaf8ca4df1e63e954cc06b2f01d"},a("div",{key:"3c6f179eb59c982ab299910b5a1941d9b9d17d09",class:"browser-content"},this.isLoading&&a("div",{key:"0228954a8cfaafed42f1efb5eb1ca5f160bc29e0",class:"browser-loading"},a("div",{key:"ccc49943a0af13afdbf1dcee8be0e3d712ac54d6",class:"loading-bar"})),this.hasError?a("div",{class:"browser-error"},a("span",{class:"error-text"},"تعذّر تحميل الصفحة"),a("span",{class:"error-url"},this.url)):this.url&&a("iframe",{class:"browser-iframe",src:this.url,onLoad:this.handleIframeLoad,onError:this.handleIframeError,sandbox:"allow-scripts allow-same-origin allow-forms allow-popups",referrerPolicy:"no-referrer",title:r})))}static get watchers(){return{url:[{onUrlChange:0}]}}static get style(){return":host{display:flex;flex-direction:column;width:calc(100% + 2 * var(--ai-spacing-2xl, 16px));height:calc(100% + 2 * var(--ai-spacing-2xl, 16px));margin:calc(-1 * var(--ai-spacing-2xl, 16px))}.browser-content{flex:1;position:relative;overflow:hidden;background:var(--ai-bg-surface)}.browser-iframe{width:100%;height:100%;border:none;display:block;background:var(--ai-bg-card)}.browser-loading{position:absolute;top:0;left:0;right:0;z-index:2;height:3px;overflow:hidden;background:var(--ai-border-light)}.loading-bar{width:40%;height:100%;background:var(--ai-accent);border-radius:2px;animation:browser-loading-slide 1.2s ease-in-out infinite}@keyframes browser-loading-slide{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}.browser-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;padding:24px;text-align:center}.error-text{font-size:14px;font-weight:600;color:var(--ai-text-primary)}.error-url{font-size:12px;color:var(--ai-text-muted);word-break:break-all;max-width:280px}"}},[513,"ai-in-chat-browser",{url:[1],pageTitle:[1,"page-title"],isLoading:[32],hasError:[32]},void 0,{url:[{onUrlChange:0}]}]),o=s,n=function(){"undefined"!=typeof customElements&&["ai-in-chat-browser"].forEach((r=>{"ai-in-chat-browser"===r&&(customElements.get(i(r))||customElements.define(i(r),s))}))};export{o as AiInChatBrowser,n as defineCustomElement}
1
+ import{p as r,H as e,h as a,d as t,t as i}from"./p-BPkf7wZg.js";const s=r(class extends e{constructor(r){super(),!1!==r&&this.__registerHost(),this.__attachShadow()}url="";pageTitle="";isLoading=!0;hasError=!1;onUrlChange(){this.isLoading=!0,this.hasError=!1}getDisplayTitle(){if(this.pageTitle)return this.pageTitle;try{return new URL(this.url).hostname}catch{return this.url||""}}handleIframeLoad=()=>{this.isLoading=!1};handleIframeError=()=>{this.isLoading=!1,this.hasError=!0};render(){const r=this.getDisplayTitle();return a(t,{key:"d79ede7857bc7edc13a4c8cdbbf5b4f7312d9766"},a("div",{key:"57ccda6f9670e9ae2ca76b768f31ecf62b9ec8e9",class:"browser-content"},this.isLoading&&a("div",{key:"f868050d91fc24f9a13a760d34805b6a443ff865",class:"browser-loading"},a("div",{key:"b90a07a822a1978875fd5590783d9e9a6ac319b9",class:"loading-bar"})),this.hasError?a("div",{class:"browser-error"},a("span",{class:"error-text"},"تعذّر تحميل الصفحة"),a("span",{class:"error-url"},this.url)):this.url&&a("iframe",{class:"browser-iframe",src:this.url,onLoad:this.handleIframeLoad,onError:this.handleIframeError,sandbox:"allow-scripts allow-same-origin allow-forms allow-popups",referrerPolicy:"no-referrer",title:r})))}static get watchers(){return{url:[{onUrlChange:0}]}}static get style(){return":host{display:flex;flex-direction:column;width:calc(100% + 2 * var(--ai-spacing-2xl, 16px));height:calc(100% + 2 * var(--ai-spacing-2xl, 16px));margin:calc(-1 * var(--ai-spacing-2xl, 16px))}.browser-content{flex:1;position:relative;overflow:hidden;background:var(--ai-bg-surface)}.browser-iframe{width:100%;height:100%;border:none;display:block;background:var(--ai-bg-card)}.browser-loading{position:absolute;top:0;left:0;right:0;z-index:2;height:3px;overflow:hidden;background:var(--ai-border-light)}.loading-bar{width:40%;height:100%;background:var(--ai-accent);border-radius:2px;animation:browser-loading-slide 1.2s ease-in-out infinite}@keyframes browser-loading-slide{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}.browser-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:8px;padding:24px;text-align:center}.error-text{font-size:14px;font-weight:600;color:var(--ai-text-primary)}.error-url{font-size:12px;color:var(--ai-text-muted);word-break:break-all;max-width:280px}"}},[513,"ai-in-chat-browser",{url:[1],pageTitle:[1,"page-title"],isLoading:[32],hasError:[32]},void 0,{url:[{onUrlChange:0}]}]),o=s,n=function(){"undefined"!=typeof customElements&&["ai-in-chat-browser"].forEach((r=>{"ai-in-chat-browser"===r&&(customElements.get(i(r))||customElements.define(i(r),s))}))};export{o as AiInChatBrowser,n as defineCustomElement}
@@ -1 +1 @@
1
- import{p as e,H as i,h as n,d as t,t as a}from"./p-BPkf7wZg.js";import{i as l}from"./p-DlD8m3rf.js";const r=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}label="";href="#";target="_blank";rel="";renderShareIcon(){const e=l.share;return e?n("span",{class:"link__icon",innerHTML:`<svg width="16" height="16" viewBox="${e.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${e.content}</svg>`}):null}render(){const e=this.rel||("_blank"===this.target?"noopener noreferrer":void 0);return n(t,{key:"98087503b9a0803425b23f7ee00c95025493679d"},n("span",{key:"41495d6375d1c539b777b3cd38e7b7af8fcbbb9b",class:"link__label"},this.label,n("slot",{key:"f416955b31900039f03b0e7ee2e537a22964d553"})),n("a",{key:"4f1d74ff6c600d17fcf80686aeebc5a92a4c7305",class:"link",href:this.href,target:this.target,rel:e},this.renderShareIcon()))}static get style(){return":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}"}},[769,"ai-link",{label:[1],href:[1],target:[1],rel:[1]}]),s=r,o=function(){"undefined"!=typeof customElements&&["ai-link"].forEach((e=>{"ai-link"===e&&(customElements.get(a(e))||customElements.define(a(e),r))}))};export{s as AiLink,o as defineCustomElement}
1
+ import{p as e,H as i,h as n,d as a,t}from"./p-BPkf7wZg.js";import{i as l}from"./p-DlD8m3rf.js";const r=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow()}label="";href="#";target="_blank";rel="";renderShareIcon(){const e=l.share;return e?n("span",{class:"link__icon",innerHTML:`<svg width="16" height="16" viewBox="${e.viewBox}" fill="none" xmlns="http://www.w3.org/2000/svg">${e.content}</svg>`}):null}render(){const e=this.rel||("_blank"===this.target?"noopener noreferrer":void 0);return n(a,{key:"e0e34a4c2a3534a3b449bac613c6f7cb512420d3"},n("span",{key:"5776ddc64676ecaabb4f36a0e9833026dc730c23",class:"link__label"},this.label,n("slot",{key:"436a334a51bea342b839d5fad9743aaf6b66a94d"})),n("a",{key:"3880c1429a8a24a9dee700c9f0592ac673ce68f0",class:"link",href:this.href,target:this.target,rel:e},this.renderShareIcon()))}static get style(){return":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}"}},[769,"ai-link",{label:[1],href:[1],target:[1],rel:[1]}]),s=r,o=function(){"undefined"!=typeof customElements&&["ai-link"].forEach((e=>{"ai-link"===e&&(customElements.get(t(e))||customElements.define(t(e),r))}))};export{s as AiLink,o as defineCustomElement}
@@ -1 +1 @@
1
- import{p as e,H as i,c as t,h as o,d as a,t as r}from"./p-BPkf7wZg.js";import{d as n}from"./p-DZuBxUde.js";import{d as s}from"./p-bGFmyIp1.js";const c=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.sendMessage=t(this,"sendMessage"),this.voiceAudioReady=t(this,"voiceAudioReady")}get el(){return this}placeholder="ايش في بالك؟";disabled=!1;showVoiceButton=!0;maxLength=4e3;isRecording=!1;inputValue="";showVoiceRecorder=!1;isMultiline=!1;textareaRef;sendMessage;voiceAudioReady;onIsRecordingChange(e){this.showVoiceRecorder=e}async setInputValue(e){const i=e.slice(0,this.maxLength);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=e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),this.handleSendMessage())};handleVoiceClick=()=>{this.showVoiceRecorder=!0};handleAudioRecorded=e=>{this.showVoiceRecorder=!1,this.voiceAudioReady.emit(e.detail)};handleRecordingCancel=()=>{this.showVoiceRecorder=!1};handleInputChange=e=>{let i=e.target.value;i.length>this.maxLength&&(i=i.slice(0,this.maxLength),e.target.value=i),this.inputValue=i,this.updateHeight()};render(){if(this.showVoiceRecorder)return o(a,null,o("div",{class:"voice-recorder-wrapper"},o("ai-voice-input",{autoStart:!0,onAudioRecorded:this.handleAudioRecorded,onRecordingCancel:this.handleRecordingCancel}),o("button",{type:"button",class:"voice-dismiss-btn",onClick:this.handleRecordingCancel,"aria-label":"Close voice recorder"},o("ai-icon",{name:"cancel",size:14}))));const e=!!this.inputValue.trim()&&!this.disabled,i=this.maxLength-this.inputValue.length;return o(a,null,o("div",{part:"wrapper",class:"wrapper"},o("div",{part:"glow",class:"glow","aria-hidden":"true"}),o("div",{part:"container",class:"input-container"+(this.isMultiline?" multiline":"")},o("div",{class:"input-row"},o("textarea",{part:"textarea",ref:e=>this.textareaRef=e,value:this.inputValue,onInput:this.handleInputChange,onKeyDown:this.handleKeyDown,disabled:this.disabled,placeholder:this.placeholder,rows:1,class:"textarea",maxLength:this.maxLength}),i<200&&o("span",{class:"char-counter"+(i<50?" warning":""),"aria-live":"polite"},i),o("div",{class:"actions"},this.showVoiceButton&&!this.inputValue&&o("button",{part:"voice-button",class:"voice-button",onClick:this.handleVoiceClick,disabled:this.disabled,type:"button","aria-label":"Record voice"},o("ai-icon",{name:"mic",size:16})),o("button",{part:"send-button",class:"send-button"+(e?" active":""),onClick:this.handleSendMessage,disabled:!e,type:"button","aria-label":"Send message"},o("ai-icon",{name:"send",size:16})))))))}static get watchers(){return{isRecording:[{onIsRecordingChange:0}]}}static get style(){return":host{display:block;width:100%}.wrapper{position:relative;padding:var(--Spacing-Sizes-lg, 12px)}.glow{position:absolute;bottom:20px;left:39px;right:39px;height:29px;border-radius:9999px;background:var(--ai-input-glow);filter:blur(20px);opacity:0.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;width:32px;height:32px;padding:0;border-radius:9999px;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))}.voice-recorder-wrapper{position:relative}.voice-dismiss-btn{position:absolute;bottom:25px;inset-inline-end:25px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:2px solid var(--ai-border-default);border-radius:50%;background:var(--ai-border-default);color:var(--ai-text-secondary);font-size:0;cursor:pointer;transition:background 0.15s, border-color 0.15s, color 0.15s;z-index:10}.voice-dismiss-btn:hover{background:var(--ai-bg-surface);border-color:var(--ai-bg-surface);color:var(--ai-status-danger, #ef4444)}.voice-dismiss-btn:focus-visible{outline:2px solid var(--ai-focus-ring-color, var(--ai-focus-ring));outline-offset:1px}"}},[513,"ai-message-input",{placeholder:[1],disabled:[4],showVoiceButton:[4,"show-voice-button"],maxLength:[2,"max-length"],isRecording:[4,"is-recording"],inputValue:[32],showVoiceRecorder:[32],isMultiline:[32],setInputValue:[64]},void 0,{isRecording:[{onIsRecordingChange:0}]}]),d=c,l=function(){"undefined"!=typeof customElements&&["ai-message-input","ai-icon","ai-voice-input"].forEach((e=>{switch(e){case"ai-message-input":customElements.get(r(e))||customElements.define(r(e),c);break;case"ai-icon":customElements.get(r(e))||n();break;case"ai-voice-input":customElements.get(r(e))||s()}}))};export{d as AiMessageInput,l as defineCustomElement}
1
+ import{p as e,H as i,c as t,h as o,d as a,t as r}from"./p-BPkf7wZg.js";import{d as n}from"./p-DZuBxUde.js";import{d as s}from"./p-BlCeQ9Hu.js";const c=e(class extends i{constructor(e){super(),!1!==e&&this.__registerHost(),this.__attachShadow(),this.sendMessage=t(this,"sendMessage"),this.voiceAudioReady=t(this,"voiceAudioReady")}get el(){return this}placeholder="ايش في بالك؟";disabled=!1;showVoiceButton=!0;maxLength=4e3;isRecording=!1;inputValue="";showVoiceRecorder=!1;isMultiline=!1;textareaRef;sendMessage;voiceAudioReady;onIsRecordingChange(e){this.showVoiceRecorder=e}async setInputValue(e){const i=e.slice(0,this.maxLength);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=e=>{"Enter"!==e.key||e.shiftKey||(e.preventDefault(),this.handleSendMessage())};handleVoiceClick=()=>{this.showVoiceRecorder=!0};handleAudioRecorded=e=>{this.showVoiceRecorder=!1,this.voiceAudioReady.emit(e.detail)};handleRecordingCancel=()=>{this.showVoiceRecorder=!1};handleInputChange=e=>{let i=e.target.value;i.length>this.maxLength&&(i=i.slice(0,this.maxLength),e.target.value=i),this.inputValue=i,this.updateHeight()};render(){if(this.showVoiceRecorder)return o(a,null,o("div",{class:"voice-recorder-wrapper"},o("ai-voice-input",{autoStart:!0,onAudioRecorded:this.handleAudioRecorded,onRecordingCancel:this.handleRecordingCancel}),o("button",{type:"button",class:"voice-dismiss-btn",onClick:this.handleRecordingCancel,"aria-label":"Close voice recorder"},o("ai-icon",{name:"cancel",size:14}))));const e=!!this.inputValue.trim()&&!this.disabled,i=this.maxLength-this.inputValue.length;return o(a,null,o("div",{part:"wrapper",class:"wrapper"},o("div",{part:"glow",class:"glow","aria-hidden":"true"}),o("div",{part:"container",class:"input-container"+(this.isMultiline?" multiline":"")},o("div",{class:"input-row"},o("textarea",{part:"textarea",ref:e=>this.textareaRef=e,value:this.inputValue,onInput:this.handleInputChange,onKeyDown:this.handleKeyDown,disabled:this.disabled,placeholder:this.placeholder,rows:1,class:"textarea",maxLength:this.maxLength}),i<200&&o("span",{class:"char-counter"+(i<50?" warning":""),"aria-live":"polite"},i),o("div",{class:"actions"},this.showVoiceButton&&!this.inputValue&&o("button",{part:"voice-button",class:"voice-button",onClick:this.handleVoiceClick,disabled:this.disabled,type:"button","aria-label":"Record voice"},o("ai-icon",{name:"mic",size:16})),o("button",{part:"send-button",class:"send-button"+(e?" active":""),onClick:this.handleSendMessage,disabled:!e,type:"button","aria-label":"Send message"},o("ai-icon",{name:"send",size:16})))))))}static get watchers(){return{isRecording:[{onIsRecordingChange:0}]}}static get style(){return":host{display:block;width:100%}.wrapper{position:relative;padding:var(--Spacing-Sizes-lg, 12px)}.glow{position:absolute;bottom:20px;left:39px;right:39px;height:29px;border-radius:9999px;background:var(--ai-input-glow);filter:blur(20px);opacity:0.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;width:32px;height:32px;padding:0;border-radius:9999px;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))}.voice-recorder-wrapper{position:relative}.voice-dismiss-btn{position:absolute;bottom:25px;inset-inline-end:25px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:2px solid var(--ai-border-default);border-radius:50%;background:var(--ai-border-default);color:var(--ai-text-secondary);font-size:0;cursor:pointer;transition:background 0.15s, border-color 0.15s, color 0.15s;z-index:10}.voice-dismiss-btn:hover{background:var(--ai-bg-surface);border-color:var(--ai-bg-surface);color:var(--ai-status-danger, #ef4444)}.voice-dismiss-btn:focus-visible{outline:2px solid var(--ai-focus-ring-color, var(--ai-focus-ring));outline-offset:1px}"}},[513,"ai-message-input",{placeholder:[1],disabled:[4],showVoiceButton:[4,"show-voice-button"],maxLength:[2,"max-length"],isRecording:[4,"is-recording"],inputValue:[32],showVoiceRecorder:[32],isMultiline:[32],setInputValue:[64]},void 0,{isRecording:[{onIsRecordingChange:0}]}]),d=c,l=function(){"undefined"!=typeof customElements&&["ai-message-input","ai-icon","ai-voice-input"].forEach((e=>{switch(e){case"ai-message-input":customElements.get(r(e))||customElements.define(r(e),c);break;case"ai-icon":customElements.get(r(e))||n();break;case"ai-voice-input":customElements.get(r(e))||s()}}))};export{d as AiMessageInput,l as defineCustomElement}
@@ -1 +1 @@
1
- import{p as i,H as e,c as a,h as t,d as n,t as r}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";import{d as o}from"./p-Ba0urr6Q.js";import{d as l}from"./p-DZuBxUde.js";const g=[{value:1,icon:"emoji-angry",label:"سيئ جداً"},{value:2,icon:"emoji-frowning",label:"سيئ"},{value:3,icon:"emoji-neutral",label:"مقبول"},{value:4,icon:"emoji-slightly-smiling",label:"جيد"},{value:5,icon:"emoji-heart-eyes",label:"ممتاز"}],c=i(class extends e{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.ratingChange=a(this,"ratingChange")}question="كيف كانت تجربتك؟";subtitle="رأيك يساعدنا نحسن الخدمة";successMessage="شكراً لتقييمك!";value=null;disabled=!1;hovered=null;submitted=!1;ratingChange;select(i){this.disabled||this.submitted||(this.value=i,this.submitted=!0,this.ratingChange.emit(this.value))}get hoveredLabel(){return null===this.hovered?null:g.find((i=>i.value===this.hovered))?.label??null}render(){const i=this.hoveredLabel;return t(n,null,t("ai-card",null,this.submitted?t("div",{class:"rating rating--success"},t("ai-icon",{name:"check-circle",size:32}),t("p",{class:"rating__success-message"},this.successMessage)):t("div",{class:"rating"},t("div",{class:"rating__text"},t("p",{class:"rating__question"},this.question),t("p",{class:"rating__subtitle"},this.subtitle)),t("div",{class:"rating__icons",role:"group","aria-label":this.question},g.map((i=>{const e=this.value===i.value,a=s[i.icon];return t("button",{key:i.value,class:{"emoji-btn":!0,"emoji-btn--active":e,"emoji-btn--hovered":this.hovered===i.value&&!e,"emoji-btn--disabled":this.disabled},"aria-label":i.label,"aria-pressed":e?"true":"false",disabled:this.disabled,onClick:()=>this.select(i.value),onMouseEnter:()=>this.hovered=i.value,onMouseLeave:()=>this.hovered=null},t("span",{class:"emoji-btn__icon","aria-hidden":"true"},t("svg",{width:24,height:24,viewBox:a.viewBox,xmlns:"http://www.w3.org/2000/svg",ref:i=>i&&(i.innerHTML=a.content)})))}))),i&&t("p",{class:"rating__hover-label"},i))))}static get style(){return":host{--ai-rating-question-size:16px;--ai-rating-subtitle-size:14px;--ai-rating-gap:8px;--ai-rating-emoji-size:24px;--ai-rating-btn-padding:6px;--ai-rating-btn-border:1px solid var(--ai-border-light);--ai-rating-btn-radius:9999px;--ai-rating-btn-bg-hover:var(--ai-bg-surface);--ai-rating-btn-border-hover:1px solid var(--ai-border-default);--ai-rating-btn-bg-active:var(--ai-warning-bg);--ai-rating-btn-border-active:1px solid var(--ai-warning-border);--ai-rating-btn-shadow-active:var(--ai-shadow-active);--ai-rating-label-size:16px;display:block}.rating{display:flex;flex-direction:column;align-items:center;gap:var(--ai-rating-gap);width:100%}.rating__text{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;text-align:center}.rating__question{margin:0;font-size:var(--ai-rating-question-size);font-weight:500;line-height:24px;color:var(--ai-text-primary)}.rating__subtitle{margin:0;font-size:var(--ai-rating-subtitle-size);font-weight:400;line-height:20px;color:var(--ai-text-secondary)}.rating__icons{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;flex-wrap:wrap}.emoji-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--ai-rating-btn-padding);border:var(--ai-rating-btn-border);border-radius:var(--ai-rating-btn-radius);background:transparent;cursor:pointer;transition:background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;outline:none}.emoji-btn:focus-visible{outline:2px solid var(--ai-warning-border);outline-offset:2px}.emoji-btn:hover:not(:disabled),.emoji-btn--hovered{background:var(--ai-rating-btn-bg-hover);border:var(--ai-rating-btn-border-hover);transform:scale(1.1)}.emoji-btn--active{background:var(--ai-rating-btn-bg-active) !important;border:var(--ai-rating-btn-border-active) !important;box-shadow:var(--ai-rating-btn-shadow-active);transform:scale(1.18) !important}.emoji-btn--disabled{opacity:0.45;cursor:not-allowed;pointer-events:none}.emoji-btn__icon{font-size:var(--ai-rating-emoji-size);line-height:1;display:inline-flex;align-items:center;justify-content:center;width:var(--ai-rating-emoji-size);height:var(--ai-rating-emoji-size);pointer-events:none}.rating__hover-label{margin:0;font-size:var(--ai-rating-label-size);font-weight:500;line-height:24px;color:var(--ai-text-primary);text-align:center;width:100%;animation:fadeIn 0.15s ease}.rating--success{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 0;animation:fadeIn 0.2s ease}.rating__success-message{margin:0;font-size:var(--ai-rating-question-size);font-weight:500;line-height:24px;color:var(--ai-text-primary);text-align:center}@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"}},[513,"ai-rating",{question:[1],subtitle:[1],successMessage:[1,"success-message"],value:[1026],disabled:[4],hovered:[32],submitted:[32]}]),d=c,b=function(){"undefined"!=typeof customElements&&["ai-rating","ai-card","ai-icon"].forEach((i=>{switch(i){case"ai-rating":customElements.get(r(i))||customElements.define(r(i),c);break;case"ai-card":customElements.get(r(i))||o();break;case"ai-icon":customElements.get(r(i))||l()}}))};export{d as AiRating,b as defineCustomElement}
1
+ import{p as i,H as e,c as a,h as t,d as n,t as r}from"./p-BPkf7wZg.js";import{i as s}from"./p-DlD8m3rf.js";import{d as o}from"./p-DCJWSYj-.js";import{d as l}from"./p-DZuBxUde.js";const g=[{value:1,icon:"emoji-angry",label:"سيئ جداً"},{value:2,icon:"emoji-frowning",label:"سيئ"},{value:3,icon:"emoji-neutral",label:"مقبول"},{value:4,icon:"emoji-slightly-smiling",label:"جيد"},{value:5,icon:"emoji-heart-eyes",label:"ممتاز"}],c=i(class extends e{constructor(i){super(),!1!==i&&this.__registerHost(),this.__attachShadow(),this.ratingChange=a(this,"ratingChange")}question="كيف كانت تجربتك؟";subtitle="رأيك يساعدنا نحسن الخدمة";successMessage="شكراً لتقييمك!";value=null;disabled=!1;hovered=null;submitted=!1;ratingChange;select(i){this.disabled||this.submitted||(this.value=i,this.submitted=!0,this.ratingChange.emit(this.value))}get hoveredLabel(){return null===this.hovered?null:g.find((i=>i.value===this.hovered))?.label??null}render(){const i=this.hoveredLabel;return t(n,null,t("ai-card",null,this.submitted?t("div",{class:"rating rating--success"},t("ai-icon",{name:"check-circle",size:32}),t("p",{class:"rating__success-message"},this.successMessage)):t("div",{class:"rating"},t("div",{class:"rating__text"},t("p",{class:"rating__question"},this.question),t("p",{class:"rating__subtitle"},this.subtitle)),t("div",{class:"rating__icons",role:"group","aria-label":this.question},g.map((i=>{const e=this.value===i.value,a=s[i.icon];return t("button",{key:i.value,class:{"emoji-btn":!0,"emoji-btn--active":e,"emoji-btn--hovered":this.hovered===i.value&&!e,"emoji-btn--disabled":this.disabled},"aria-label":i.label,"aria-pressed":e?"true":"false",disabled:this.disabled,onClick:()=>this.select(i.value),onMouseEnter:()=>this.hovered=i.value,onMouseLeave:()=>this.hovered=null},t("span",{class:"emoji-btn__icon","aria-hidden":"true"},t("svg",{width:24,height:24,viewBox:a.viewBox,xmlns:"http://www.w3.org/2000/svg",ref:i=>i&&(i.innerHTML=a.content)})))}))),i&&t("p",{class:"rating__hover-label"},i))))}static get style(){return":host{--ai-rating-question-size:16px;--ai-rating-subtitle-size:14px;--ai-rating-gap:8px;--ai-rating-emoji-size:24px;--ai-rating-btn-padding:6px;--ai-rating-btn-border:1px solid var(--ai-border-light);--ai-rating-btn-radius:9999px;--ai-rating-btn-bg-hover:var(--ai-bg-surface);--ai-rating-btn-border-hover:1px solid var(--ai-border-default);--ai-rating-btn-bg-active:var(--ai-warning-bg);--ai-rating-btn-border-active:1px solid var(--ai-warning-border);--ai-rating-btn-shadow-active:var(--ai-shadow-active);--ai-rating-label-size:16px;display:block}.rating{display:flex;flex-direction:column;align-items:center;gap:var(--ai-rating-gap);width:100%}.rating__text{display:flex;flex-direction:column;align-items:center;gap:2px;width:100%;text-align:center}.rating__question{margin:0;font-size:var(--ai-rating-question-size);font-weight:500;line-height:24px;color:var(--ai-text-primary)}.rating__subtitle{margin:0;font-size:var(--ai-rating-subtitle-size);font-weight:400;line-height:20px;color:var(--ai-text-secondary)}.rating__icons{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;flex-wrap:wrap}.emoji-btn{display:inline-flex;align-items:center;justify-content:center;padding:var(--ai-rating-btn-padding);border:var(--ai-rating-btn-border);border-radius:var(--ai-rating-btn-radius);background:transparent;cursor:pointer;transition:background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;outline:none}.emoji-btn:focus-visible{outline:2px solid var(--ai-warning-border);outline-offset:2px}.emoji-btn:hover:not(:disabled),.emoji-btn--hovered{background:var(--ai-rating-btn-bg-hover);border:var(--ai-rating-btn-border-hover);transform:scale(1.1)}.emoji-btn--active{background:var(--ai-rating-btn-bg-active) !important;border:var(--ai-rating-btn-border-active) !important;box-shadow:var(--ai-rating-btn-shadow-active);transform:scale(1.18) !important}.emoji-btn--disabled{opacity:0.45;cursor:not-allowed;pointer-events:none}.emoji-btn__icon{font-size:var(--ai-rating-emoji-size);line-height:1;display:inline-flex;align-items:center;justify-content:center;width:var(--ai-rating-emoji-size);height:var(--ai-rating-emoji-size);pointer-events:none}.rating__hover-label{margin:0;font-size:var(--ai-rating-label-size);font-weight:500;line-height:24px;color:var(--ai-text-primary);text-align:center;width:100%;animation:fadeIn 0.15s ease}.rating--success{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:16px 0;animation:fadeIn 0.2s ease}.rating__success-message{margin:0;font-size:var(--ai-rating-question-size);font-weight:500;line-height:24px;color:var(--ai-text-primary);text-align:center}@keyframes fadeIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}"}},[513,"ai-rating",{question:[1],subtitle:[1],successMessage:[1,"success-message"],value:[1026],disabled:[4],hovered:[32],submitted:[32]}]),d=c,b=function(){"undefined"!=typeof customElements&&["ai-rating","ai-card","ai-icon"].forEach((i=>{switch(i){case"ai-rating":customElements.get(r(i))||customElements.define(r(i),c);break;case"ai-card":customElements.get(r(i))||o();break;case"ai-icon":customElements.get(r(i))||l()}}))};export{d as AiRating,b as defineCustomElement}