@touchvue/chat 1.0.0-beta.53 → 1.0.0-beta.55

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 (169) hide show
  1. package/README.md +70 -70
  2. package/es/node_modules/.pnpm/{dompurify@3.3.0 → dompurify@3.4.3}/node_modules/dompurify/dist/purify.es.mjs +299 -143
  3. package/es/node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.mjs.map +1 -0
  4. package/es/package.json.css +1 -1
  5. package/es/package.json.mjs +1 -1
  6. package/es/packages/components/resolver.mjs.map +1 -1
  7. package/es/packages/components/touchchat/component/AiRobot/HelloChat.vue2.mjs.map +1 -1
  8. package/es/packages/components/touchchat/component/AiRobot/letter.vue.mjs +1 -1
  9. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs +9 -9
  10. package/es/packages/components/touchchat/component/AiRobot/letter.vue2.mjs.map +1 -1
  11. package/es/packages/components/touchchat/component/AudioFile.vue.mjs +7 -0
  12. package/es/packages/components/touchchat/component/AudioFile.vue.mjs.map +1 -0
  13. package/es/packages/components/touchchat/component/AudioFile.vue2.mjs +111 -0
  14. package/es/packages/components/touchchat/component/AudioFile.vue2.mjs.map +1 -0
  15. package/es/packages/components/touchchat/component/FileContent.vue2.mjs +3 -3
  16. package/es/packages/components/touchchat/component/FileContent.vue2.mjs.map +1 -1
  17. package/es/packages/components/touchchat/component/FileView.vue2.mjs +2 -2
  18. package/es/packages/components/touchchat/component/FileView.vue2.mjs.map +1 -1
  19. package/es/packages/components/touchchat/component/HelloChat.vue2.mjs.map +1 -1
  20. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs +6 -6
  21. package/es/packages/components/touchchat/component/ImageFile.vue2.mjs.map +1 -1
  22. package/es/packages/components/touchchat/component/ImageView.vue2.mjs +1 -1
  23. package/es/packages/components/touchchat/component/ImageView.vue2.mjs.map +1 -1
  24. package/es/packages/components/touchchat/component/LinkView.vue2.mjs +4 -4
  25. package/es/packages/components/touchchat/component/LinkView.vue2.mjs.map +1 -1
  26. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs +1 -1
  27. package/es/packages/components/touchchat/component/MarkLayer.vue2.mjs.map +1 -1
  28. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs +56 -5
  29. package/es/packages/components/touchchat/component/ModuleSelect.vue2.mjs.map +1 -1
  30. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs +10 -10
  31. package/es/packages/components/touchchat/component/PDFFile.vue2.mjs.map +1 -1
  32. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs +52 -10
  33. package/es/packages/components/touchchat/component/QuoteContent.vue2.mjs.map +1 -1
  34. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs +1 -1
  35. package/es/packages/components/touchchat/component/RealtimeVoice.vue2.mjs.map +1 -1
  36. package/es/packages/components/touchchat/component/UploadView.vue2.mjs.map +1 -1
  37. package/es/packages/components/touchchat/component/VideoFile.vue.mjs +1 -1
  38. package/es/packages/components/touchchat/component/VideoFile.vue2.mjs.map +1 -1
  39. package/es/packages/components/touchchat/component/VoiceView.vue2.mjs +13 -4
  40. package/es/packages/components/touchchat/component/VoiceView.vue2.mjs.map +1 -1
  41. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs +1 -1
  42. package/es/packages/components/touchchat/src/AiChat/AgentsView.vue2.mjs.map +1 -1
  43. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs +30 -30
  44. package/es/packages/components/touchchat/src/AiChat/AiMessage.vue2.mjs.map +1 -1
  45. package/es/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.mjs.map +1 -1
  46. package/es/packages/components/touchchat/src/AiChat/Chat/types.mjs.map +1 -1
  47. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs +11 -8
  48. package/es/packages/components/touchchat/src/AiChat/Chat/useChat.mjs.map +1 -1
  49. package/es/packages/components/touchchat/src/AiChat/Chat/useCopy.mjs.map +1 -1
  50. package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs +1 -1
  51. package/es/packages/components/touchchat/src/AiChat/Chat/useMessageRender.mjs.map +1 -1
  52. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs +16 -11
  53. package/es/packages/components/touchchat/src/AiChat/ChatInput.vue2.mjs.map +1 -1
  54. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs +1 -1
  55. package/es/packages/components/touchchat/src/AiChat/HistoryList.vue2.mjs.map +1 -1
  56. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs +3 -3
  57. package/es/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.mjs.map +1 -1
  58. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs +11 -11
  59. package/es/packages/components/touchchat/src/AiChat/MessageActions.vue2.mjs.map +1 -1
  60. package/es/packages/components/touchchat/src/AiChat/MessageViewed.vue.mjs +33 -0
  61. package/es/packages/components/touchchat/src/AiChat/MessageViewed.vue.mjs.map +1 -0
  62. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs +3 -3
  63. package/es/packages/components/touchchat/src/AiChat/SiderBarView.vue2.mjs.map +1 -1
  64. package/es/packages/components/touchchat/src/AiChat/TouchAgent.vue2.mjs +1 -1
  65. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs +36 -0
  66. package/es/packages/components/touchchat/src/AiChat/TouchChat.vue2.mjs.map +1 -1
  67. package/es/packages/components/touchchat/src/AiChat/TouchHistory.vue2.mjs.map +1 -1
  68. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs +127 -75
  69. package/es/packages/components/touchchat/src/AiChat/UserMessage.vue2.mjs.map +1 -1
  70. package/es/packages/components/touchchat/src/index.vue2.mjs.map +1 -1
  71. package/es/packages/components/touchchat/utils/a2aService.mjs.map +1 -1
  72. package/es/packages/components/touchchat/utils/fetchStream.mjs.map +1 -1
  73. package/es/packages/components/touchchat/utils/markdown.mjs +1 -1
  74. package/lib/node_modules/.pnpm/{dompurify@3.3.0 → dompurify@3.4.3}/node_modules/dompurify/dist/purify.es.js +299 -143
  75. package/lib/node_modules/.pnpm/dompurify@3.4.3/node_modules/dompurify/dist/purify.es.js.map +1 -0
  76. package/lib/package.json.css +1 -1
  77. package/lib/package.json.js +1 -1
  78. package/lib/packages/components/resolver.js.map +1 -1
  79. package/lib/packages/components/touchchat/component/AiRobot/HelloChat.vue2.js.map +1 -1
  80. package/lib/packages/components/touchchat/component/AiRobot/letter.vue.js +1 -1
  81. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js +9 -9
  82. package/lib/packages/components/touchchat/component/AiRobot/letter.vue2.js.map +1 -1
  83. package/lib/packages/components/touchchat/component/AudioFile.vue.js +11 -0
  84. package/lib/packages/components/touchchat/component/AudioFile.vue.js.map +1 -0
  85. package/lib/packages/components/touchchat/component/AudioFile.vue2.js +115 -0
  86. package/lib/packages/components/touchchat/component/AudioFile.vue2.js.map +1 -0
  87. package/lib/packages/components/touchchat/component/FileContent.vue2.js +3 -3
  88. package/lib/packages/components/touchchat/component/FileContent.vue2.js.map +1 -1
  89. package/lib/packages/components/touchchat/component/FileView.vue2.js +2 -2
  90. package/lib/packages/components/touchchat/component/FileView.vue2.js.map +1 -1
  91. package/lib/packages/components/touchchat/component/HelloChat.vue2.js.map +1 -1
  92. package/lib/packages/components/touchchat/component/ImageFile.vue2.js +6 -6
  93. package/lib/packages/components/touchchat/component/ImageFile.vue2.js.map +1 -1
  94. package/lib/packages/components/touchchat/component/ImageView.vue2.js +1 -1
  95. package/lib/packages/components/touchchat/component/ImageView.vue2.js.map +1 -1
  96. package/lib/packages/components/touchchat/component/LinkView.vue2.js +4 -4
  97. package/lib/packages/components/touchchat/component/LinkView.vue2.js.map +1 -1
  98. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js +1 -1
  99. package/lib/packages/components/touchchat/component/MarkLayer.vue2.js.map +1 -1
  100. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js +55 -4
  101. package/lib/packages/components/touchchat/component/ModuleSelect.vue2.js.map +1 -1
  102. package/lib/packages/components/touchchat/component/PDFFile.vue2.js +10 -10
  103. package/lib/packages/components/touchchat/component/PDFFile.vue2.js.map +1 -1
  104. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js +51 -9
  105. package/lib/packages/components/touchchat/component/QuoteContent.vue2.js.map +1 -1
  106. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js +1 -1
  107. package/lib/packages/components/touchchat/component/RealtimeVoice.vue2.js.map +1 -1
  108. package/lib/packages/components/touchchat/component/UploadView.vue2.js.map +1 -1
  109. package/lib/packages/components/touchchat/component/VideoFile.vue.js +1 -1
  110. package/lib/packages/components/touchchat/component/VideoFile.vue2.js.map +1 -1
  111. package/lib/packages/components/touchchat/component/VoiceView.vue2.js +13 -4
  112. package/lib/packages/components/touchchat/component/VoiceView.vue2.js.map +1 -1
  113. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js +1 -1
  114. package/lib/packages/components/touchchat/src/AiChat/AgentsView.vue2.js.map +1 -1
  115. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js +30 -30
  116. package/lib/packages/components/touchchat/src/AiChat/AiMessage.vue2.js.map +1 -1
  117. package/lib/packages/components/touchchat/src/AiChat/Chat/scriptMatcher.js.map +1 -1
  118. package/lib/packages/components/touchchat/src/AiChat/Chat/types.js.map +1 -1
  119. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js +11 -8
  120. package/lib/packages/components/touchchat/src/AiChat/Chat/useChat.js.map +1 -1
  121. package/lib/packages/components/touchchat/src/AiChat/Chat/useCopy.js.map +1 -1
  122. package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js +1 -1
  123. package/lib/packages/components/touchchat/src/AiChat/Chat/useMessageRender.js.map +1 -1
  124. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js +16 -11
  125. package/lib/packages/components/touchchat/src/AiChat/ChatInput.vue2.js.map +1 -1
  126. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js +1 -1
  127. package/lib/packages/components/touchchat/src/AiChat/HistoryList.vue2.js.map +1 -1
  128. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js +3 -3
  129. package/lib/packages/components/touchchat/src/AiChat/HistorySidebar.vue2.js.map +1 -1
  130. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js +11 -11
  131. package/lib/packages/components/touchchat/src/AiChat/MessageActions.vue2.js.map +1 -1
  132. package/lib/packages/components/touchchat/src/AiChat/MessageViewed.vue.js +37 -0
  133. package/lib/packages/components/touchchat/src/AiChat/MessageViewed.vue.js.map +1 -0
  134. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js +3 -3
  135. package/lib/packages/components/touchchat/src/AiChat/SiderBarView.vue2.js.map +1 -1
  136. package/lib/packages/components/touchchat/src/AiChat/TouchAgent.vue2.js +1 -1
  137. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js +36 -0
  138. package/lib/packages/components/touchchat/src/AiChat/TouchChat.vue2.js.map +1 -1
  139. package/lib/packages/components/touchchat/src/AiChat/TouchHistory.vue2.js.map +1 -1
  140. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js +126 -74
  141. package/lib/packages/components/touchchat/src/AiChat/UserMessage.vue2.js.map +1 -1
  142. package/lib/packages/components/touchchat/src/index.vue2.js.map +1 -1
  143. package/lib/packages/components/touchchat/utils/a2aService.js.map +1 -1
  144. package/lib/packages/components/touchchat/utils/fetchStream.js.map +1 -1
  145. package/lib/packages/components/touchchat/utils/markdown.js +1 -1
  146. package/package.json +83 -83
  147. package/theme/components/index.css +167 -18
  148. package/theme/font/iconfont.woff +0 -0
  149. package/theme/font/iconfont.woff2 +0 -0
  150. package/theme/img/file/doc.png +0 -0
  151. package/theme/img/file/docx.png +0 -0
  152. package/theme/img/file/gif.png +0 -0
  153. package/theme/img/file/html.png +0 -0
  154. package/theme/img/file/jpg.png +0 -0
  155. package/theme/img/file/mp3.png +0 -0
  156. package/theme/img/file/mp4.png +0 -0
  157. package/theme/img/file/music.png +0 -0
  158. package/theme/img/file/pdf.png +0 -0
  159. package/theme/img/file/png.png +0 -0
  160. package/theme/img/file/ppt.png +0 -0
  161. package/theme/img/file/pptx.png +0 -0
  162. package/theme/img/file/txt.png +0 -0
  163. package/theme/img/file/unknown.png +0 -0
  164. package/theme/img/file/xls.png +0 -0
  165. package/theme/img/file/xlsx.png +0 -0
  166. package/theme/index.css +167 -18
  167. package/theme/skin/default.css +167 -18
  168. package/es/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.mjs.map +0 -1
  169. package/lib/node_modules/.pnpm/dompurify@3.3.0/node_modules/dompurify/dist/purify.es.js.map +0 -1
package/theme/index.css CHANGED
@@ -1010,6 +1010,7 @@ table.touchchat-table tr:hover {
1010
1010
  --action-icon-content: var(--quote-close-fill-content);
1011
1011
  }
1012
1012
  .touchchat-action-item.value-right-arrow {
1013
+ cursor: pointer;
1013
1014
  --action-icon-content: var(--ai-may-like-item-icon-content);
1014
1015
  color: var(--ai-may-like-item-icon-color);
1015
1016
  }
@@ -1661,6 +1662,7 @@ table.touchchat-table tr:hover {
1661
1662
  --user-avatar-pic-width: 2.5em;
1662
1663
  --user-avatar-pic-height: auto;
1663
1664
  --user-avatar-pic-radius: 50%;
1665
+ --user-file-avatar-padding-top: 4em;
1664
1666
  --user-bubble-bg: var(--color-primary);
1665
1667
  --user-bubble-color: #fff;
1666
1668
  --user-bubble-padding: 1em 1.5em;
@@ -1711,6 +1713,27 @@ table.touchchat-table tr:hover {
1711
1713
  --user-send-active-bg: #005fc7;
1712
1714
  --user-send-active-color: var(--user-send-color);
1713
1715
  --user-send-active-border: var(--user-send-border);
1716
+ --audio-icon-width: 2em;
1717
+ --audio-icon-height: 2em;
1718
+ --audio-icon-bg: #fff;
1719
+ --audio-icon-radius: 50%;
1720
+ --audio-icon-shadow: 0 0.2em 0.4em rgba(0, 0, 0, 0.1);
1721
+ --audio-icon-color: #0077fa;
1722
+ --audio-icon-size: 1em;
1723
+ --audio-duration-margin: 0 0 0 1em;
1724
+ --audio-wave-gap: 0.2em;
1725
+ --audio-wave-margin: 0 0 0 0.5em;
1726
+ --audio-wave-width: 0.2em;
1727
+ --audio-wave-height: 0.2em;
1728
+ --audio-wave-bg: #fff;
1729
+ --audio-wave-radius: 0.2em;
1730
+ --audio-wave-start-height: 0.2em;
1731
+ --audio-wave-end-height: 1.25em;
1732
+ --audio-wave-during: 0.2s;
1733
+ --viewed-color: var(--color-primary);
1734
+ --viewed-radius: 50%;
1735
+ --viewed-margin: 0 0 1.7em auto;
1736
+ --viewed-width: 1.5em;
1714
1737
  }
1715
1738
  .touchchat-user {
1716
1739
  display: flex;
@@ -1732,7 +1755,7 @@ table.touchchat-table tr:hover {
1732
1755
  order: 2;
1733
1756
  }
1734
1757
  .file-user-avatar {
1735
- padding-top: 4em;
1758
+ padding-top: var(--user-file-avatar-padding-top);
1736
1759
  }
1737
1760
  .touchchat-user-avatar-pic {
1738
1761
  width: var(--user-avatar-pic-width);
@@ -1740,7 +1763,7 @@ table.touchchat-table tr:hover {
1740
1763
  border-radius: var(--user-avatar-pic-radius);
1741
1764
  order: 2;
1742
1765
  }
1743
- .touch-user-wrapper {
1766
+ .touchchat-user-wrapper {
1744
1767
  display: flex;
1745
1768
  align-items: flex-end;
1746
1769
  }
@@ -1765,6 +1788,15 @@ table.touchchat-table tr:hover {
1765
1788
  background: var(--user-bubble-arrow-bg);
1766
1789
  background-size: var(--user-bubble-arrow-bg-size);
1767
1790
  }
1791
+ .touchchat-user-bubble.is-link {
1792
+ cursor: pointer;
1793
+ }
1794
+ .touchchat-user-bubble.is-link:hover {
1795
+ filter: brightness(1.2);
1796
+ }
1797
+ .touchchat-user-bubble.is-link:active {
1798
+ filter: brightness(0.8);
1799
+ }
1768
1800
  .touchchat-user-bubble-text {
1769
1801
  font-size: var(--user-bubble-text-size);
1770
1802
  font-weight: var(--user-bubble-text-weight);
@@ -1847,6 +1879,93 @@ table.touchchat-table tr:hover {
1847
1879
  .touchchat-user-send-text {
1848
1880
  font-size: var(--user-send-size);
1849
1881
  }
1882
+ .touchchat-audio {
1883
+ display: flex;
1884
+ align-items: center;
1885
+ }
1886
+ .touchchat-audio-icon {
1887
+ flex-shrink: 0;
1888
+ width: var(--audio-icon-width);
1889
+ height: var(--audio-icon-height);
1890
+ display: flex;
1891
+ align-items: center;
1892
+ justify-content: center;
1893
+ background: var(--audio-icon-bg);
1894
+ border-radius: var(--audio-icon-radius);
1895
+ box-shadow: var(--audio-icon-shadow);
1896
+ }
1897
+ .touchchat-audio-icon-play {
1898
+ font-family: 'touchchat-icon';
1899
+ font-size: var(--audio-icon-size);
1900
+ color: var(--audio-icon-color);
1901
+ }
1902
+ .touchchat-audio-icon-play:before {
1903
+ content: '\e619';
1904
+ }
1905
+ .touchchat-audio-icon-pause {
1906
+ font-family: 'touchchat-icon';
1907
+ font-size: var(--audio-icon-size);
1908
+ color: var(--audio-icon-color);
1909
+ }
1910
+ .touchchat-audio-icon-pause:before {
1911
+ content: '\e618';
1912
+ }
1913
+ .touchchat-audio-duration {
1914
+ margin: var(--audio-duration-margin);
1915
+ }
1916
+ .touchchat-audio-wave {
1917
+ display: flex;
1918
+ align-items: center;
1919
+ gap: var(--audio-wave-gap);
1920
+ margin: var(--audio-wave-margin);
1921
+ }
1922
+ .touchchat-audio-wave-bar {
1923
+ width: var(--audio-wave-width);
1924
+ height: var(--audio-wave-start-height);
1925
+ background: var(--audio-wave-bg);
1926
+ border-radius: var(--audio-wave-radius);
1927
+ transition: height var(--audio-wave-during);
1928
+ }
1929
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar {
1930
+ animation: wave 0.8s ease-in-out infinite;
1931
+ }
1932
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(1) {
1933
+ animation-delay: 0s;
1934
+ }
1935
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(2) {
1936
+ animation-delay: 0.1s;
1937
+ }
1938
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(3) {
1939
+ animation-delay: 0.2s;
1940
+ }
1941
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(4) {
1942
+ animation-delay: 0.3s;
1943
+ }
1944
+ @keyframes wave {
1945
+ 0%,
1946
+ 100% {
1947
+ height: var(--audio-wave-start-height);
1948
+ }
1949
+ 50% {
1950
+ height: var(--audio-wave-end-height);
1951
+ }
1952
+ }
1953
+ .touchchat-viewed {
1954
+ padding: 0.15em;
1955
+ width: var(--viewed-width);
1956
+ height: var(--viewed-width);
1957
+ border: 0.15em solid var(--viewed-color);
1958
+ border-radius: var(--viewed-radius);
1959
+ margin: var(--viewed-margin);
1960
+ box-sizing: border-box;
1961
+ align-self: flex-end;
1962
+ }
1963
+ .touchchat-viewed-wrapper {
1964
+ width: 100%;
1965
+ height: 100%;
1966
+ border-radius: var(--viewed-radius);
1967
+ background: conic-gradient(var(--viewed-color) 0%, var(--viewed-color) var(--value), transparent var(--value), transparent 100%);
1968
+ }
1850
1969
  .step-container {
1851
1970
  font-family: Arial, sans-serif;
1852
1971
  }
@@ -2008,49 +2127,49 @@ table.touchchat-table tr:hover {
2008
2127
  background-size: 100% 100%;
2009
2128
  }
2010
2129
  .touchchat-file-icon.type-doc {
2011
- background-image: url(./components/aiChat/img/file/doc.png);
2130
+ background-image: url(./img/file/doc.png);
2012
2131
  }
2013
2132
  .touchchat-file-icon.type-jpg {
2014
- background-image: url(./components/aiChat/img/file/jpg.png);
2133
+ background-image: url(./img/file/jpg.png);
2015
2134
  }
2016
2135
  .touchchat-file-icon.type-pdf {
2017
- background-image: url(./components/aiChat/img/file/pdf.png);
2136
+ background-image: url(./img/file/pdf.png);
2018
2137
  }
2019
2138
  .touchchat-file-icon.type-txt {
2020
- background-image: url(./components/aiChat/img/file/txt.png);
2139
+ background-image: url(./img/file/txt.png);
2021
2140
  }
2022
2141
  .touchchat-file-icon.type-docx {
2023
- background-image: url(./components/aiChat/img/file/docx.png);
2142
+ background-image: url(./img/file/docx.png);
2024
2143
  }
2025
2144
  .touchchat-file-icon.type-mp3 {
2026
- background-image: url(./components/aiChat/img/file/mp3.png);
2145
+ background-image: url(./img/file/mp3.png);
2027
2146
  }
2028
2147
  .touchchat-file-icon.type-png {
2029
- background-image: url(./components/aiChat/img/file/png.png);
2148
+ background-image: url(./img/file/png.png);
2030
2149
  }
2031
2150
  .touchchat-file-icon.type-gif {
2032
- background-image: url(./components/aiChat/img/file/gif.png);
2151
+ background-image: url(./img/file/gif.png);
2033
2152
  }
2034
2153
  .touchchat-file-icon.type-mp4 {
2035
- background-image: url(./components/aiChat/img/file/mp4.png);
2154
+ background-image: url(./img/file/mp4.png);
2036
2155
  }
2037
2156
  .touchchat-file-icon.type-ppt {
2038
- background-image: url(./components/aiChat/img/file/ppt.png);
2157
+ background-image: url(./img/file/ppt.png);
2039
2158
  }
2040
2159
  .touchchat-file-icon.type-xls {
2041
- background-image: url(./components/aiChat/img/file/xls.png);
2160
+ background-image: url(./img/file/xls.png);
2042
2161
  }
2043
2162
  .touchchat-file-icon.type-html {
2044
- background-image: url(./components/aiChat/img/file/html.png);
2163
+ background-image: url(./img/file/html.png);
2045
2164
  }
2046
2165
  .touchchat-file-icon.type-pptx {
2047
- background-image: url(./components/aiChat/img/file/pptx.png);
2166
+ background-image: url(./img/file/pptx.png);
2048
2167
  }
2049
2168
  .touchchat-file-icon.type-xlsx {
2050
- background-image: url(./components/aiChat/img/file/xlsx.png);
2169
+ background-image: url(./img/file/xlsx.png);
2051
2170
  }
2052
2171
  .touchchat-file-icon.type-unknown {
2053
- background-image: url(./components/aiChat/img/file/unknown.png);
2172
+ background-image: url(./img/file/unknown.png);
2054
2173
  }
2055
2174
  .touchchat-file-info {
2056
2175
  flex: 1;
@@ -2328,12 +2447,25 @@ table.touchchat-table tr:hover {
2328
2447
  gap: 0.75em;
2329
2448
  }
2330
2449
  .quote-content-text {
2450
+ cursor: pointer;
2331
2451
  border-radius: 0.5em;
2332
2452
  background: #eaecf0b3;
2333
2453
  font-size: 1em;
2334
2454
  padding: 0.625em 0.5em 0.6875em 0.875em;
2335
2455
  color: #434c59;
2336
2456
  }
2457
+ .quote-highlight {
2458
+ animation: quote-flash 1s ease-in-out 2;
2459
+ }
2460
+ @keyframes quote-flash {
2461
+ 0%,
2462
+ 100% {
2463
+ background-color: transparent;
2464
+ }
2465
+ 50% {
2466
+ background-color: rgba(59, 130, 246, 0.15);
2467
+ }
2468
+ }
2337
2469
  .image-file {
2338
2470
  --image-file-pd: 0.75em;
2339
2471
  }
@@ -2651,6 +2783,21 @@ table.touchchat-table tr:hover {
2651
2783
  min-width: 8.125em;
2652
2784
  font-size: 0.875em;
2653
2785
  outline: none;
2786
+ white-space: nowrap;
2787
+ }
2788
+ .touchchat-custom-select .touchchat-select-measure {
2789
+ position: absolute;
2790
+ left: -9999px;
2791
+ top: -9999px;
2792
+ visibility: hidden;
2793
+ overflow: hidden;
2794
+ }
2795
+ .touchchat-custom-select .touchchat-select-measure .touchchat-select-measure-item {
2796
+ display: inline-block;
2797
+ white-space: nowrap;
2798
+ padding: 0.625em 0.875em;
2799
+ font-size: 0.875em;
2800
+ font-weight: 500;
2654
2801
  }
2655
2802
  .touchchat-custom-select .touchchat-select-trigger {
2656
2803
  display: flex;
@@ -2693,7 +2840,8 @@ table.touchchat-table tr:hover {
2693
2840
  .touchchat-custom-select .touchchat-select-dropdown {
2694
2841
  position: absolute;
2695
2842
  left: 0;
2696
- right: 0;
2843
+ min-width: 100%;
2844
+ width: max-content;
2697
2845
  background: white;
2698
2846
  border: 1px solid #e0e0e0;
2699
2847
  border-radius: 0.5em;
@@ -2717,6 +2865,7 @@ table.touchchat-table tr:hover {
2717
2865
  cursor: pointer;
2718
2866
  transition: background-color 0.2s ease;
2719
2867
  color: #444;
2868
+ white-space: nowrap;
2720
2869
  }
2721
2870
  .touchchat-custom-select .touchchat-select-option:hover {
2722
2871
  background-color: #f5f7fa;
@@ -1010,6 +1010,7 @@ table.touchchat-table tr:hover {
1010
1010
  --action-icon-content: var(--quote-close-fill-content);
1011
1011
  }
1012
1012
  .touchchat-action-item.value-right-arrow {
1013
+ cursor: pointer;
1013
1014
  --action-icon-content: var(--ai-may-like-item-icon-content);
1014
1015
  color: var(--ai-may-like-item-icon-color);
1015
1016
  }
@@ -1661,6 +1662,7 @@ table.touchchat-table tr:hover {
1661
1662
  --user-avatar-pic-width: 2.5em;
1662
1663
  --user-avatar-pic-height: auto;
1663
1664
  --user-avatar-pic-radius: 50%;
1665
+ --user-file-avatar-padding-top: 4em;
1664
1666
  --user-bubble-bg: var(--color-primary);
1665
1667
  --user-bubble-color: #fff;
1666
1668
  --user-bubble-padding: 1em 1.5em;
@@ -1711,6 +1713,27 @@ table.touchchat-table tr:hover {
1711
1713
  --user-send-active-bg: #005fc7;
1712
1714
  --user-send-active-color: var(--user-send-color);
1713
1715
  --user-send-active-border: var(--user-send-border);
1716
+ --audio-icon-width: 2em;
1717
+ --audio-icon-height: 2em;
1718
+ --audio-icon-bg: #fff;
1719
+ --audio-icon-radius: 50%;
1720
+ --audio-icon-shadow: 0 0.2em 0.4em rgba(0, 0, 0, 0.1);
1721
+ --audio-icon-color: #0077fa;
1722
+ --audio-icon-size: 1em;
1723
+ --audio-duration-margin: 0 0 0 1em;
1724
+ --audio-wave-gap: 0.2em;
1725
+ --audio-wave-margin: 0 0 0 0.5em;
1726
+ --audio-wave-width: 0.2em;
1727
+ --audio-wave-height: 0.2em;
1728
+ --audio-wave-bg: #fff;
1729
+ --audio-wave-radius: 0.2em;
1730
+ --audio-wave-start-height: 0.2em;
1731
+ --audio-wave-end-height: 1.25em;
1732
+ --audio-wave-during: 0.2s;
1733
+ --viewed-color: var(--color-primary);
1734
+ --viewed-radius: 50%;
1735
+ --viewed-margin: 0 0 1.7em auto;
1736
+ --viewed-width: 1.5em;
1714
1737
  }
1715
1738
  .touchchat-user {
1716
1739
  display: flex;
@@ -1732,7 +1755,7 @@ table.touchchat-table tr:hover {
1732
1755
  order: 2;
1733
1756
  }
1734
1757
  .file-user-avatar {
1735
- padding-top: 4em;
1758
+ padding-top: var(--user-file-avatar-padding-top);
1736
1759
  }
1737
1760
  .touchchat-user-avatar-pic {
1738
1761
  width: var(--user-avatar-pic-width);
@@ -1740,7 +1763,7 @@ table.touchchat-table tr:hover {
1740
1763
  border-radius: var(--user-avatar-pic-radius);
1741
1764
  order: 2;
1742
1765
  }
1743
- .touch-user-wrapper {
1766
+ .touchchat-user-wrapper {
1744
1767
  display: flex;
1745
1768
  align-items: flex-end;
1746
1769
  }
@@ -1765,6 +1788,15 @@ table.touchchat-table tr:hover {
1765
1788
  background: var(--user-bubble-arrow-bg);
1766
1789
  background-size: var(--user-bubble-arrow-bg-size);
1767
1790
  }
1791
+ .touchchat-user-bubble.is-link {
1792
+ cursor: pointer;
1793
+ }
1794
+ .touchchat-user-bubble.is-link:hover {
1795
+ filter: brightness(1.2);
1796
+ }
1797
+ .touchchat-user-bubble.is-link:active {
1798
+ filter: brightness(0.8);
1799
+ }
1768
1800
  .touchchat-user-bubble-text {
1769
1801
  font-size: var(--user-bubble-text-size);
1770
1802
  font-weight: var(--user-bubble-text-weight);
@@ -1847,6 +1879,93 @@ table.touchchat-table tr:hover {
1847
1879
  .touchchat-user-send-text {
1848
1880
  font-size: var(--user-send-size);
1849
1881
  }
1882
+ .touchchat-audio {
1883
+ display: flex;
1884
+ align-items: center;
1885
+ }
1886
+ .touchchat-audio-icon {
1887
+ flex-shrink: 0;
1888
+ width: var(--audio-icon-width);
1889
+ height: var(--audio-icon-height);
1890
+ display: flex;
1891
+ align-items: center;
1892
+ justify-content: center;
1893
+ background: var(--audio-icon-bg);
1894
+ border-radius: var(--audio-icon-radius);
1895
+ box-shadow: var(--audio-icon-shadow);
1896
+ }
1897
+ .touchchat-audio-icon-play {
1898
+ font-family: 'touchchat-icon';
1899
+ font-size: var(--audio-icon-size);
1900
+ color: var(--audio-icon-color);
1901
+ }
1902
+ .touchchat-audio-icon-play:before {
1903
+ content: '\e619';
1904
+ }
1905
+ .touchchat-audio-icon-pause {
1906
+ font-family: 'touchchat-icon';
1907
+ font-size: var(--audio-icon-size);
1908
+ color: var(--audio-icon-color);
1909
+ }
1910
+ .touchchat-audio-icon-pause:before {
1911
+ content: '\e618';
1912
+ }
1913
+ .touchchat-audio-duration {
1914
+ margin: var(--audio-duration-margin);
1915
+ }
1916
+ .touchchat-audio-wave {
1917
+ display: flex;
1918
+ align-items: center;
1919
+ gap: var(--audio-wave-gap);
1920
+ margin: var(--audio-wave-margin);
1921
+ }
1922
+ .touchchat-audio-wave-bar {
1923
+ width: var(--audio-wave-width);
1924
+ height: var(--audio-wave-start-height);
1925
+ background: var(--audio-wave-bg);
1926
+ border-radius: var(--audio-wave-radius);
1927
+ transition: height var(--audio-wave-during);
1928
+ }
1929
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar {
1930
+ animation: wave 0.8s ease-in-out infinite;
1931
+ }
1932
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(1) {
1933
+ animation-delay: 0s;
1934
+ }
1935
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(2) {
1936
+ animation-delay: 0.1s;
1937
+ }
1938
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(3) {
1939
+ animation-delay: 0.2s;
1940
+ }
1941
+ .touchchat-audio-wave.is-playing .touchchat-audio-wave-bar:nth-child(4) {
1942
+ animation-delay: 0.3s;
1943
+ }
1944
+ @keyframes wave {
1945
+ 0%,
1946
+ 100% {
1947
+ height: var(--audio-wave-start-height);
1948
+ }
1949
+ 50% {
1950
+ height: var(--audio-wave-end-height);
1951
+ }
1952
+ }
1953
+ .touchchat-viewed {
1954
+ padding: 0.15em;
1955
+ width: var(--viewed-width);
1956
+ height: var(--viewed-width);
1957
+ border: 0.15em solid var(--viewed-color);
1958
+ border-radius: var(--viewed-radius);
1959
+ margin: var(--viewed-margin);
1960
+ box-sizing: border-box;
1961
+ align-self: flex-end;
1962
+ }
1963
+ .touchchat-viewed-wrapper {
1964
+ width: 100%;
1965
+ height: 100%;
1966
+ border-radius: var(--viewed-radius);
1967
+ background: conic-gradient(var(--viewed-color) 0%, var(--viewed-color) var(--value), transparent var(--value), transparent 100%);
1968
+ }
1850
1969
  .step-container {
1851
1970
  font-family: Arial, sans-serif;
1852
1971
  }
@@ -2008,49 +2127,49 @@ table.touchchat-table tr:hover {
2008
2127
  background-size: 100% 100%;
2009
2128
  }
2010
2129
  .touchchat-file-icon.type-doc {
2011
- background-image: url(../components/aiChat/img/file/doc.png);
2130
+ background-image: url(../img/file/doc.png);
2012
2131
  }
2013
2132
  .touchchat-file-icon.type-jpg {
2014
- background-image: url(../components/aiChat/img/file/jpg.png);
2133
+ background-image: url(../img/file/jpg.png);
2015
2134
  }
2016
2135
  .touchchat-file-icon.type-pdf {
2017
- background-image: url(../components/aiChat/img/file/pdf.png);
2136
+ background-image: url(../img/file/pdf.png);
2018
2137
  }
2019
2138
  .touchchat-file-icon.type-txt {
2020
- background-image: url(../components/aiChat/img/file/txt.png);
2139
+ background-image: url(../img/file/txt.png);
2021
2140
  }
2022
2141
  .touchchat-file-icon.type-docx {
2023
- background-image: url(../components/aiChat/img/file/docx.png);
2142
+ background-image: url(../img/file/docx.png);
2024
2143
  }
2025
2144
  .touchchat-file-icon.type-mp3 {
2026
- background-image: url(../components/aiChat/img/file/mp3.png);
2145
+ background-image: url(../img/file/mp3.png);
2027
2146
  }
2028
2147
  .touchchat-file-icon.type-png {
2029
- background-image: url(../components/aiChat/img/file/png.png);
2148
+ background-image: url(../img/file/png.png);
2030
2149
  }
2031
2150
  .touchchat-file-icon.type-gif {
2032
- background-image: url(../components/aiChat/img/file/gif.png);
2151
+ background-image: url(../img/file/gif.png);
2033
2152
  }
2034
2153
  .touchchat-file-icon.type-mp4 {
2035
- background-image: url(../components/aiChat/img/file/mp4.png);
2154
+ background-image: url(../img/file/mp4.png);
2036
2155
  }
2037
2156
  .touchchat-file-icon.type-ppt {
2038
- background-image: url(../components/aiChat/img/file/ppt.png);
2157
+ background-image: url(../img/file/ppt.png);
2039
2158
  }
2040
2159
  .touchchat-file-icon.type-xls {
2041
- background-image: url(../components/aiChat/img/file/xls.png);
2160
+ background-image: url(../img/file/xls.png);
2042
2161
  }
2043
2162
  .touchchat-file-icon.type-html {
2044
- background-image: url(../components/aiChat/img/file/html.png);
2163
+ background-image: url(../img/file/html.png);
2045
2164
  }
2046
2165
  .touchchat-file-icon.type-pptx {
2047
- background-image: url(../components/aiChat/img/file/pptx.png);
2166
+ background-image: url(../img/file/pptx.png);
2048
2167
  }
2049
2168
  .touchchat-file-icon.type-xlsx {
2050
- background-image: url(../components/aiChat/img/file/xlsx.png);
2169
+ background-image: url(../img/file/xlsx.png);
2051
2170
  }
2052
2171
  .touchchat-file-icon.type-unknown {
2053
- background-image: url(../components/aiChat/img/file/unknown.png);
2172
+ background-image: url(../img/file/unknown.png);
2054
2173
  }
2055
2174
  .touchchat-file-info {
2056
2175
  flex: 1;
@@ -2328,12 +2447,25 @@ table.touchchat-table tr:hover {
2328
2447
  gap: 0.75em;
2329
2448
  }
2330
2449
  .quote-content-text {
2450
+ cursor: pointer;
2331
2451
  border-radius: 0.5em;
2332
2452
  background: #eaecf0b3;
2333
2453
  font-size: 1em;
2334
2454
  padding: 0.625em 0.5em 0.6875em 0.875em;
2335
2455
  color: #434c59;
2336
2456
  }
2457
+ .quote-highlight {
2458
+ animation: quote-flash 1s ease-in-out 2;
2459
+ }
2460
+ @keyframes quote-flash {
2461
+ 0%,
2462
+ 100% {
2463
+ background-color: transparent;
2464
+ }
2465
+ 50% {
2466
+ background-color: rgba(59, 130, 246, 0.15);
2467
+ }
2468
+ }
2337
2469
  .image-file {
2338
2470
  --image-file-pd: 0.75em;
2339
2471
  }
@@ -2651,6 +2783,21 @@ table.touchchat-table tr:hover {
2651
2783
  min-width: 8.125em;
2652
2784
  font-size: 0.875em;
2653
2785
  outline: none;
2786
+ white-space: nowrap;
2787
+ }
2788
+ .touchchat-custom-select .touchchat-select-measure {
2789
+ position: absolute;
2790
+ left: -9999px;
2791
+ top: -9999px;
2792
+ visibility: hidden;
2793
+ overflow: hidden;
2794
+ }
2795
+ .touchchat-custom-select .touchchat-select-measure .touchchat-select-measure-item {
2796
+ display: inline-block;
2797
+ white-space: nowrap;
2798
+ padding: 0.625em 0.875em;
2799
+ font-size: 0.875em;
2800
+ font-weight: 500;
2654
2801
  }
2655
2802
  .touchchat-custom-select .touchchat-select-trigger {
2656
2803
  display: flex;
@@ -2693,7 +2840,8 @@ table.touchchat-table tr:hover {
2693
2840
  .touchchat-custom-select .touchchat-select-dropdown {
2694
2841
  position: absolute;
2695
2842
  left: 0;
2696
- right: 0;
2843
+ min-width: 100%;
2844
+ width: max-content;
2697
2845
  background: white;
2698
2846
  border: 1px solid #e0e0e0;
2699
2847
  border-radius: 0.5em;
@@ -2717,6 +2865,7 @@ table.touchchat-table tr:hover {
2717
2865
  cursor: pointer;
2718
2866
  transition: background-color 0.2s ease;
2719
2867
  color: #444;
2868
+ white-space: nowrap;
2720
2869
  }
2721
2870
  .touchchat-custom-select .touchchat-select-option:hover {
2722
2871
  background-color: #f5f7fa;