jodit-pro 4.11.19 → 4.11.22

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 (333) hide show
  1. package/es2015/jodit.css +2 -2
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +17 -14
  4. package/es2015/jodit.js +45 -13
  5. package/es2015/jodit.min.css +1 -1
  6. package/es2015/jodit.min.js +6 -6
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +356 -75
  9. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  10. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +42 -39
  11. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  12. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  13. package/es2015/plugins/backup/backup.css +1 -1
  14. package/es2015/plugins/backup/backup.js +1 -1
  15. package/es2015/plugins/backup/backup.min.js +1 -1
  16. package/es2015/plugins/button-generator/button-generator.css +1 -1
  17. package/es2015/plugins/button-generator/button-generator.js +1 -1
  18. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  19. package/es2015/plugins/change-case/change-case.js +1 -1
  20. package/es2015/plugins/change-case/change-case.min.js +1 -1
  21. package/es2015/plugins/color-picker/color-picker.css +1 -1
  22. package/es2015/plugins/color-picker/color-picker.js +1 -1
  23. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  24. package/es2015/plugins/emoji/emoji.css +1 -1
  25. package/es2015/plugins/emoji/emoji.js +1 -1
  26. package/es2015/plugins/emoji/emoji.min.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.js +1 -1
  28. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  29. package/es2015/plugins/finder/finder.css +1 -1
  30. package/es2015/plugins/finder/finder.js +10 -4
  31. package/es2015/plugins/finder/finder.min.js +2 -2
  32. package/es2015/plugins/google-maps/google-maps.css +1 -1
  33. package/es2015/plugins/google-maps/google-maps.js +1 -1
  34. package/es2015/plugins/google-maps/google-maps.min.js +1 -1
  35. package/es2015/plugins/google-search/google-search.js +1 -1
  36. package/es2015/plugins/google-search/google-search.min.js +1 -1
  37. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  42. package/es2015/plugins/keyboard/keyboard.css +1 -1
  43. package/es2015/plugins/keyboard/keyboard.js +1 -1
  44. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  45. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  46. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  47. package/es2015/plugins/page-break/page-break.js +1 -1
  48. package/es2015/plugins/page-break/page-break.min.js +1 -1
  49. package/es2015/plugins/paste-code/paste-code.css +1 -1
  50. package/es2015/plugins/paste-code/paste-code.js +1 -1
  51. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  52. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  53. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  54. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  55. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  56. package/es2015/plugins/style/style.css +1 -1
  57. package/es2015/plugins/style/style.js +1 -1
  58. package/es2015/plugins/style/style.min.js +1 -1
  59. package/es2015/plugins/templates/templates.css +1 -1
  60. package/es2015/plugins/templates/templates.js +1 -1
  61. package/es2015/plugins/templates/templates.min.js +1 -1
  62. package/es2015/plugins/todo-list/todo-list.css +1 -1
  63. package/es2015/plugins/todo-list/todo-list.js +1 -1
  64. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  65. package/es2015/plugins/translate/translate.css +1 -1
  66. package/es2015/plugins/translate/translate.js +1 -1
  67. package/es2015/plugins/translate/translate.min.js +1 -1
  68. package/es2015/plugins/tune-block/tune-block.css +1 -1
  69. package/es2015/plugins/tune-block/tune-block.js +1 -1
  70. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  71. package/es2018/jodit.fat.min.css +1 -1
  72. package/es2018/jodit.fat.min.js +17 -14
  73. package/es2018/jodit.min.css +1 -1
  74. package/es2018/jodit.min.js +6 -6
  75. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  76. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +49 -46
  77. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  78. package/es2018/plugins/backup/backup.min.js +1 -1
  79. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  80. package/es2018/plugins/change-case/change-case.min.js +1 -1
  81. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  82. package/es2018/plugins/emoji/emoji.min.js +1 -1
  83. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  84. package/es2018/plugins/finder/finder.min.js +2 -2
  85. package/es2018/plugins/google-maps/google-maps.min.js +1 -1
  86. package/es2018/plugins/google-search/google-search.min.js +1 -1
  87. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  88. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  89. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  90. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  91. package/es2018/plugins/page-break/page-break.min.js +1 -1
  92. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  93. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  94. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  95. package/es2018/plugins/style/style.min.js +1 -1
  96. package/es2018/plugins/templates/templates.min.js +1 -1
  97. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  98. package/es2018/plugins/translate/translate.min.js +1 -1
  99. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  100. package/es2021/jodit.css +2 -2
  101. package/es2021/jodit.fat.min.css +1 -1
  102. package/es2021/jodit.fat.min.js +18 -15
  103. package/es2021/jodit.js +45 -13
  104. package/es2021/jodit.min.css +1 -1
  105. package/es2021/jodit.min.js +6 -6
  106. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
  107. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +350 -73
  108. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  109. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +24 -21
  110. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  111. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  112. package/es2021/plugins/backup/backup.css +1 -1
  113. package/es2021/plugins/backup/backup.js +1 -1
  114. package/es2021/plugins/backup/backup.min.js +1 -1
  115. package/es2021/plugins/button-generator/button-generator.css +1 -1
  116. package/es2021/plugins/button-generator/button-generator.js +1 -1
  117. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  118. package/es2021/plugins/change-case/change-case.js +1 -1
  119. package/es2021/plugins/change-case/change-case.min.js +1 -1
  120. package/es2021/plugins/color-picker/color-picker.css +1 -1
  121. package/es2021/plugins/color-picker/color-picker.js +1 -1
  122. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  123. package/es2021/plugins/emoji/emoji.css +1 -1
  124. package/es2021/plugins/emoji/emoji.js +1 -1
  125. package/es2021/plugins/emoji/emoji.min.js +1 -1
  126. package/es2021/plugins/export-docs/export-docs.js +1 -1
  127. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  128. package/es2021/plugins/finder/finder.css +1 -1
  129. package/es2021/plugins/finder/finder.js +9 -4
  130. package/es2021/plugins/finder/finder.min.js +2 -2
  131. package/es2021/plugins/google-maps/google-maps.css +1 -1
  132. package/es2021/plugins/google-maps/google-maps.js +1 -1
  133. package/es2021/plugins/google-maps/google-maps.min.js +1 -1
  134. package/es2021/plugins/google-search/google-search.js +1 -1
  135. package/es2021/plugins/google-search/google-search.min.js +1 -1
  136. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  137. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  138. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  139. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  140. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  141. package/es2021/plugins/keyboard/keyboard.css +1 -1
  142. package/es2021/plugins/keyboard/keyboard.js +1 -1
  143. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  144. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  145. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  146. package/es2021/plugins/page-break/page-break.js +1 -1
  147. package/es2021/plugins/page-break/page-break.min.js +1 -1
  148. package/es2021/plugins/paste-code/paste-code.css +1 -1
  149. package/es2021/plugins/paste-code/paste-code.js +1 -1
  150. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  151. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  152. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  153. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  154. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  155. package/es2021/plugins/style/style.css +1 -1
  156. package/es2021/plugins/style/style.js +1 -1
  157. package/es2021/plugins/style/style.min.js +1 -1
  158. package/es2021/plugins/templates/templates.css +1 -1
  159. package/es2021/plugins/templates/templates.js +1 -1
  160. package/es2021/plugins/templates/templates.min.js +1 -1
  161. package/es2021/plugins/todo-list/todo-list.css +1 -1
  162. package/es2021/plugins/todo-list/todo-list.js +1 -1
  163. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  164. package/es2021/plugins/translate/translate.css +1 -1
  165. package/es2021/plugins/translate/translate.js +1 -1
  166. package/es2021/plugins/translate/translate.min.js +1 -1
  167. package/es2021/plugins/tune-block/tune-block.css +1 -1
  168. package/es2021/plugins/tune-block/tune-block.js +1 -1
  169. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  170. package/es2021.en/jodit.css +2 -2
  171. package/es2021.en/jodit.fat.min.css +1 -1
  172. package/es2021.en/jodit.fat.min.js +18 -15
  173. package/es2021.en/jodit.js +45 -13
  174. package/es2021.en/jodit.min.css +1 -1
  175. package/es2021.en/jodit.min.js +6 -6
  176. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
  177. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +350 -73
  178. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  179. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +24 -21
  180. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  181. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  182. package/es2021.en/plugins/backup/backup.css +1 -1
  183. package/es2021.en/plugins/backup/backup.js +1 -1
  184. package/es2021.en/plugins/backup/backup.min.js +1 -1
  185. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  186. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  187. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  188. package/es2021.en/plugins/change-case/change-case.js +1 -1
  189. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  190. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  191. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  192. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  193. package/es2021.en/plugins/emoji/emoji.css +1 -1
  194. package/es2021.en/plugins/emoji/emoji.js +1 -1
  195. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  196. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  197. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  198. package/es2021.en/plugins/finder/finder.css +1 -1
  199. package/es2021.en/plugins/finder/finder.js +9 -4
  200. package/es2021.en/plugins/finder/finder.min.js +2 -2
  201. package/es2021.en/plugins/google-maps/google-maps.css +1 -1
  202. package/es2021.en/plugins/google-maps/google-maps.js +1 -1
  203. package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
  204. package/es2021.en/plugins/google-search/google-search.js +1 -1
  205. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  206. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  207. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  208. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  209. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  210. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  211. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  212. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  213. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  214. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  215. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  216. package/es2021.en/plugins/page-break/page-break.js +1 -1
  217. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  218. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  219. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  220. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  221. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  222. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  223. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  224. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  225. package/es2021.en/plugins/style/style.css +1 -1
  226. package/es2021.en/plugins/style/style.js +1 -1
  227. package/es2021.en/plugins/style/style.min.js +1 -1
  228. package/es2021.en/plugins/templates/templates.css +1 -1
  229. package/es2021.en/plugins/templates/templates.js +1 -1
  230. package/es2021.en/plugins/templates/templates.min.js +1 -1
  231. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  232. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  233. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  234. package/es2021.en/plugins/translate/translate.css +1 -1
  235. package/es2021.en/plugins/translate/translate.js +1 -1
  236. package/es2021.en/plugins/translate/translate.min.js +1 -1
  237. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  238. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  239. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  240. package/es5/jodit.css +3 -3
  241. package/es5/jodit.fat.min.css +1 -1
  242. package/es5/jodit.fat.min.js +2 -2
  243. package/es5/jodit.js +45 -13
  244. package/es5/jodit.min.css +3 -3
  245. package/es5/jodit.min.js +2 -2
  246. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +239 -168
  247. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +526 -111
  248. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.css +1 -1
  249. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +2 -2
  250. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  251. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  252. package/es5/plugins/backup/backup.css +1 -1
  253. package/es5/plugins/backup/backup.js +1 -1
  254. package/es5/plugins/backup/backup.min.js +1 -1
  255. package/es5/plugins/button-generator/button-generator.css +1 -1
  256. package/es5/plugins/button-generator/button-generator.js +1 -1
  257. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  258. package/es5/plugins/change-case/change-case.js +1 -1
  259. package/es5/plugins/change-case/change-case.min.js +1 -1
  260. package/es5/plugins/color-picker/color-picker.css +1 -1
  261. package/es5/plugins/color-picker/color-picker.js +1 -1
  262. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  263. package/es5/plugins/emoji/emoji.css +1 -1
  264. package/es5/plugins/emoji/emoji.js +1 -1
  265. package/es5/plugins/emoji/emoji.min.js +1 -1
  266. package/es5/plugins/export-docs/export-docs.js +1 -1
  267. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  268. package/es5/plugins/finder/finder.css +1 -1
  269. package/es5/plugins/finder/finder.js +10 -5
  270. package/es5/plugins/finder/finder.min.js +2 -2
  271. package/es5/plugins/google-maps/google-maps.css +1 -1
  272. package/es5/plugins/google-maps/google-maps.js +1 -1
  273. package/es5/plugins/google-maps/google-maps.min.js +1 -1
  274. package/es5/plugins/google-search/google-search.js +1 -1
  275. package/es5/plugins/google-search/google-search.min.js +1 -1
  276. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  277. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  278. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  279. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  280. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  281. package/es5/plugins/keyboard/keyboard.css +1 -1
  282. package/es5/plugins/keyboard/keyboard.js +1 -1
  283. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  284. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  285. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  286. package/es5/plugins/page-break/page-break.js +1 -1
  287. package/es5/plugins/page-break/page-break.min.js +1 -1
  288. package/es5/plugins/paste-code/paste-code.css +1 -1
  289. package/es5/plugins/paste-code/paste-code.js +1 -1
  290. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  291. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  292. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  293. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  294. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  295. package/es5/plugins/style/style.css +1 -1
  296. package/es5/plugins/style/style.js +1 -1
  297. package/es5/plugins/style/style.min.js +1 -1
  298. package/es5/plugins/templates/templates.css +1 -1
  299. package/es5/plugins/templates/templates.js +1 -1
  300. package/es5/plugins/templates/templates.min.js +1 -1
  301. package/es5/plugins/todo-list/todo-list.css +1 -1
  302. package/es5/plugins/todo-list/todo-list.js +1 -1
  303. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  304. package/es5/plugins/translate/translate.css +1 -1
  305. package/es5/plugins/translate/translate.js +1 -1
  306. package/es5/plugins/translate/translate.min.js +1 -1
  307. package/es5/plugins/tune-block/tune-block.css +1 -1
  308. package/es5/plugins/tune-block/tune-block.js +1 -1
  309. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  310. package/es5/polyfills.fat.min.js +1 -1
  311. package/es5/polyfills.js +1 -1
  312. package/es5/polyfills.min.js +1 -1
  313. package/esm/plugins/ai-assistant-pro/ai-assistant-pro.d.ts +10 -0
  314. package/esm/plugins/ai-assistant-pro/ai-assistant-pro.js +2 -2
  315. package/esm/plugins/ai-assistant-pro/config.js +1 -1
  316. package/esm/plugins/ai-assistant-pro/core/conversation.d.ts +10 -1
  317. package/esm/plugins/ai-assistant-pro/core/conversation.js +1 -1
  318. package/esm/plugins/ai-assistant-pro/icons/chevron-right.svg.js +1 -0
  319. package/esm/plugins/ai-assistant-pro/icons/shield.svg.js +1 -0
  320. package/esm/plugins/ai-assistant-pro/icons/tool-bolt.svg.js +1 -0
  321. package/esm/plugins/ai-assistant-pro/ui/conversation-list/conversation-list-item.d.ts +6 -1
  322. package/esm/plugins/ai-assistant-pro/ui/conversation-list/conversation-list-item.js +1 -1
  323. package/esm/plugins/ai-assistant-pro/ui/input-area/input-area.js +1 -1
  324. package/esm/plugins/ai-assistant-pro/ui/main-panel/main-panel.d.ts +6 -0
  325. package/esm/plugins/ai-assistant-pro/ui/main-panel/main-panel.js +2 -2
  326. package/esm/plugins/ai-assistant-pro/ui/message-list/item/message-list-item.js +1 -1
  327. package/esm/plugins/ai-assistant-pro/ui/permission-request/permission-request.js +7 -4
  328. package/esm/plugins/finder/helpers/loading-manager.js +1 -1
  329. package/package.json +1 -1
  330. package/types/plugins/ai-assistant-pro/ai-assistant-pro.d.ts +10 -0
  331. package/types/plugins/ai-assistant-pro/core/conversation.d.ts +10 -1
  332. package/types/plugins/ai-assistant-pro/ui/conversation-list/conversation-list-item.d.ts +6 -1
  333. package/types/plugins/ai-assistant-pro/ui/main-panel/main-panel.d.ts +6 -0
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.11.19
4
+ * Version: v4.11.22
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -39,6 +39,13 @@ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\
39
39
 
40
40
  /***/ }),
41
41
 
42
+ /***/ 83207:
43
+ /***/ (function(module) {
44
+
45
+ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M9 18l6-6-6-6\"/> </svg>"
46
+
47
+ /***/ }),
48
+
42
49
  /***/ 99219:
43
50
  /***/ (function(module) {
44
51
 
@@ -46,6 +53,20 @@ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\
46
53
 
47
54
  /***/ }),
48
55
 
56
+ /***/ 63674:
57
+ /***/ (function(module) {
58
+
59
+ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"/> </svg>"
60
+
61
+ /***/ }),
62
+
63
+ /***/ 4133:
64
+ /***/ (function(module) {
65
+
66
+ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"> <path d=\"M13 2L4 14h6l-1 8 9-12h-6z\"/> </svg>"
67
+
68
+ /***/ }),
69
+
49
70
  /***/ 62357:
50
71
  /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
51
72
 
@@ -310,6 +331,27 @@ class aiAssistantPro extends jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_18__
310
331
  // Just for init getter
311
332
  this.mainPanel.setMod('ready', true);
312
333
  yield (0,_core__WEBPACK_IMPORTED_MODULE_12__.loadInitialData)(this.j, this.storage, this.stateManager);
334
+ // Restore pending tool calls from stored conversation
335
+ yield this.restorePendingToolCalls();
336
+ }).call(this);
337
+ }
338
+ /**
339
+ * Restore pending tool calls after loading a conversation from storage.
340
+ * Scans messages for tool calls with non-terminal status and
341
+ * re-runs handleToolCalls to show the permission dialog.
342
+ */ restorePendingToolCalls() {
343
+ return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function*() {
344
+ const conversation = this.stateManager.getCurrentConversation();
345
+ if (!conversation) {
346
+ return;
347
+ }
348
+ const messagesWithPending = (0,_core__WEBPACK_IMPORTED_MODULE_12__.findMessagesWithPendingToolCalls)(conversation);
349
+ if (messagesWithPending.length === 0) {
350
+ return;
351
+ }
352
+ for (const message of messagesWithPending){
353
+ yield this.handleToolCalls(message.id);
354
+ }
313
355
  }).call(this);
314
356
  }
315
357
  /**
@@ -338,6 +380,11 @@ class aiAssistantPro extends jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_18__
338
380
  yield this.__loadData();
339
381
  yield this.deleteConversation(id);
340
382
  }).call(this));
383
+ // Rename conversation
384
+ this.j.e.on('renameConversation.ai-assistant-pro', (id, newTitle)=>(0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function*() {
385
+ yield this.__loadData();
386
+ yield this.renameConversation(id, newTitle);
387
+ }).call(this));
341
388
  // Back to list
342
389
  this.j.e.on('backToList.ai-assistant-pro', ()=>(0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function*() {
343
390
  yield this.__loadData();
@@ -755,6 +802,29 @@ ${selectedText}`.trim();
755
802
  yield (0,_core__WEBPACK_IMPORTED_MODULE_12__.deleteConversationWithCleanup)(this.j, conversationId, this.storage, this.stateManager, this.permissionManager);
756
803
  }).call(this);
757
804
  }
805
+ /**
806
+ * Rename conversation
807
+ */ renameConversation(conversationId, newTitle) {
808
+ return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function*() {
809
+ var _this_state_currentConversation;
810
+ const conversation = yield this.storage.get(conversationId);
811
+ if (!conversation) {
812
+ return;
813
+ }
814
+ const updated = (0,_swc_helpers_object_spread_props__WEBPACK_IMPORTED_MODULE_3__._)((0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_2__._)({}, conversation), {
815
+ title: newTitle,
816
+ updated: Date.now()
817
+ });
818
+ yield this.storage.save(updated);
819
+ // Update current conversation if it's the one being renamed
820
+ if (((_this_state_currentConversation = this.state.currentConversation) === null || _this_state_currentConversation === void 0 ? void 0 : _this_state_currentConversation.id) === conversationId) {
821
+ this.stateManager.setCurrentConversation(updated);
822
+ }
823
+ // Refresh conversation list
824
+ const conversations = yield this.storage.list();
825
+ this.stateManager.setConversations(conversations);
826
+ }).call(this);
827
+ }
758
828
  /**
759
829
  * Search conversations
760
830
  */ searchConversations(query) {
@@ -779,8 +849,13 @@ ${selectedText}`.trim();
779
849
  if (!toolCalls || toolCalls.length === 0) {
780
850
  return;
781
851
  }
782
- yield this.__loadData();
783
- const { approved, needsPermission } = this.permissionManager.filterToolCalls(toolCalls, conversation.permissions);
852
+ // Filter out tool calls that already have a terminal status
853
+ // This makes handleToolCalls safe to call on restored conversations
854
+ const nonTerminalToolCalls = toolCalls.filter((tc)=>!(0,_core__WEBPACK_IMPORTED_MODULE_12__.isTerminalToolCallStatus)(tc.status));
855
+ if (nonTerminalToolCalls.length === 0) {
856
+ return;
857
+ }
858
+ const { approved, needsPermission } = this.permissionManager.filterToolCalls(nonTerminalToolCalls, conversation.permissions);
784
859
  // Set pending tool calls for UI
785
860
  this.stateManager.setPendingToolCalls(needsPermission);
786
861
  // Execute approved tools (pass depth)
@@ -793,7 +868,6 @@ ${selectedText}`.trim();
793
868
  * Execute a tool call
794
869
  */ executeToolCall(messageId, toolCall, depth = 0) {
795
870
  return (0,_swc_helpers_async_to_generator__WEBPACK_IMPORTED_MODULE_0__._)(function*() {
796
- yield this.__loadData();
797
871
  let conversation = this.stateManager.getCurrentConversation();
798
872
  if (!conversation) {
799
873
  return;
@@ -1047,13 +1121,19 @@ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_19__.JoditPro.plugins.add('aiAssist
1047
1121
  /* harmony import */ var _icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_5__);
1048
1122
  /* harmony import */ var _icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75966);
1049
1123
  /* harmony import */ var _icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_6__);
1050
- /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(99219);
1051
- /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_icons_send_svg__WEBPACK_IMPORTED_MODULE_7__);
1052
- /* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53835);
1053
- /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6441);
1054
- /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12153);
1055
- /* harmony import */ var jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(31974);
1056
- /* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(72573);
1124
+ /* harmony import */ var _icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(83207);
1125
+ /* harmony import */ var _icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_7__);
1126
+ /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(99219);
1127
+ /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_icons_send_svg__WEBPACK_IMPORTED_MODULE_8__);
1128
+ /* harmony import */ var _icons_shield_svg__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(63674);
1129
+ /* harmony import */ var _icons_shield_svg__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_icons_shield_svg__WEBPACK_IMPORTED_MODULE_9__);
1130
+ /* harmony import */ var _icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4133);
1131
+ /* harmony import */ var _icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(_icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_10__);
1132
+ /* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(53835);
1133
+ /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(6441);
1134
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(12153);
1135
+ /* harmony import */ var jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(31974);
1136
+ /* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(72573);
1057
1137
  /*!
1058
1138
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
1059
1139
  * See LICENSE.md in the project root for license information.
@@ -1072,10 +1152,13 @@ var _Config_prototype_tuneBlock;
1072
1152
 
1073
1153
 
1074
1154
 
1155
+
1156
+
1157
+
1075
1158
  // Register icons
1076
- jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_10__.Icon.set('ai-assistant-pro', (_icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_5___default())).set('ai-commands-pro', (_icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_6___default())).set('ai-add-context', (_icons_add_context_svg__WEBPACK_IMPORTED_MODULE_4___default())).set('send', (_icons_send_svg__WEBPACK_IMPORTED_MODULE_7___default()));
1159
+ jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_13__.Icon.set('ai-assistant-pro', (_icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_5___default())).set('ai-commands-pro', (_icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_6___default())).set('ai-add-context', (_icons_add_context_svg__WEBPACK_IMPORTED_MODULE_4___default())).set('send', (_icons_send_svg__WEBPACK_IMPORTED_MODULE_8___default())).set('tool-bolt', (_icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_10___default())).set('chevron-right', (_icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_7___default())).set('shield', (_icons_shield_svg__WEBPACK_IMPORTED_MODULE_9___default()));
1077
1160
  // Default configuration
1078
- jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro = {
1161
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.aiAssistantPro = {
1079
1162
  // ===== Display Settings =====
1080
1163
  displayMode: 'right',
1081
1164
  panelWidth: 400,
@@ -1091,7 +1174,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1091
1174
  retryDelay: 1000,
1092
1175
  maxRecursionToolCallDepth: 1000,
1093
1176
  // ===== Tools Configuration =====
1094
- enabledTools: (0,_tools__WEBPACK_IMPORTED_MODULE_8__.getToolNames)(),
1177
+ enabledTools: (0,_tools__WEBPACK_IMPORTED_MODULE_11__.getToolNames)(),
1095
1178
  customTools: [],
1096
1179
  toolPermissions: {},
1097
1180
  // ===== Permission Settings =====
@@ -1130,7 +1213,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1130
1213
  },
1131
1214
  formatMessageContent: (content, role)=>{
1132
1215
  // For user and assistant messages, use markdown
1133
- return marked__WEBPACK_IMPORTED_MODULE_12__.marked.parse(content, {
1216
+ return marked__WEBPACK_IMPORTED_MODULE_15__.marked.parse(content, {
1134
1217
  breaks: true,
1135
1218
  gfm: true
1136
1219
  });
@@ -1199,7 +1282,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1199
1282
  };
1200
1283
  /**
1201
1284
  * Main AI Assistant Pro control for toolbar
1202
- */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.controls.aiAssistantPro = {
1285
+ */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.aiAssistantPro = {
1203
1286
  icon: 'ai-assistant-pro',
1204
1287
  tooltip: 'AI Assistant',
1205
1288
  /**
@@ -1234,7 +1317,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1234
1317
  };
1235
1318
  /**
1236
1319
  * Add Context control for context menu (adds selection to AI context)
1237
- */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.controls.aiAddContext = {
1320
+ */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.aiAddContext = {
1238
1321
  icon: 'ai-add-context',
1239
1322
  tooltip: 'Add to AI Context',
1240
1323
  /**
@@ -1256,7 +1339,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1256
1339
  };
1257
1340
  /**
1258
1341
  * AI Commands control - quick AI commands dropdown
1259
- */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.controls.aiCommandsPro = {
1342
+ */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.controls.aiCommandsPro = {
1260
1343
  icon: 'ai-commands-pro',
1261
1344
  tooltip: 'AI Commands',
1262
1345
  /**
@@ -1266,7 +1349,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1266
1349
  },
1267
1350
  /**
1268
1351
  * Default list of commands (can be overridden via quickCommands config)
1269
- */ list: jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_11__.aiAssitentCommands,
1352
+ */ list: jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_14__.aiAssitentCommands,
1270
1353
  /**
1271
1354
  * Execute handler - fires event with command name
1272
1355
  */ exec (editor, event, { control }) {
@@ -1275,7 +1358,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro =
1275
1358
  };
1276
1359
  /**
1277
1360
  * Extend tune-block popup to include "Add to AI Context" option
1278
- */ const originalTuneBlockPopup = ((_Config_prototype_tuneBlock = jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) === null || _Config_prototype_tuneBlock === void 0 ? void 0 : _Config_prototype_tuneBlock.popup) || {};
1361
+ */ const originalTuneBlockPopup = ((_Config_prototype_tuneBlock = jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.tuneBlock) === null || _Config_prototype_tuneBlock === void 0 ? void 0 : _Config_prototype_tuneBlock.popup) || {};
1279
1362
  // Add AI context option to all block types
1280
1363
  const tuneBlockExtension = {};
1281
1364
  // Common block types
@@ -1316,8 +1399,8 @@ blockTypes.forEach((tag)=>{
1316
1399
  ];
1317
1400
  });
1318
1401
  // Merge with existing tune-block configuration
1319
- if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1320
- jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock.popup = (0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, originalTuneBlockPopup, tuneBlockExtension);
1402
+ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.tuneBlock) {
1403
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_12__.Config.prototype.tuneBlock.popup = (0,_swc_helpers_object_spread__WEBPACK_IMPORTED_MODULE_1__._)({}, originalTuneBlockPopup, tuneBlockExtension);
1321
1404
  }
1322
1405
 
1323
1406
 
@@ -1586,7 +1669,9 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1586
1669
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1587
1670
  /* harmony export */ areAllToolCallsExecuted: function() { return /* binding */ areAllToolCallsExecuted; },
1588
1671
  /* harmony export */ createNewConversation: function() { return /* binding */ createNewConversation; },
1589
- /* harmony export */ findParentMessageId: function() { return /* binding */ findParentMessageId; }
1672
+ /* harmony export */ findMessagesWithPendingToolCalls: function() { return /* binding */ findMessagesWithPendingToolCalls; },
1673
+ /* harmony export */ findParentMessageId: function() { return /* binding */ findParentMessageId; },
1674
+ /* harmony export */ isTerminalToolCallStatus: function() { return /* binding */ isTerminalToolCallStatus; }
1590
1675
  /* harmony export */ });
1591
1676
  /* harmony import */ var _helpers_storage_webstorage_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21064);
1592
1677
  /*!
@@ -1623,6 +1708,16 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1623
1708
  }
1624
1709
  return null;
1625
1710
  }
1711
+ const TERMINAL_STATUSES = new Set([
1712
+ 'executed',
1713
+ 'denied',
1714
+ 'error'
1715
+ ]);
1716
+ /**
1717
+ * Check if a tool call status is terminal (no further action needed)
1718
+ */ function isTerminalToolCallStatus(status) {
1719
+ return TERMINAL_STATUSES.has(status);
1720
+ }
1626
1721
  /**
1627
1722
  * Check if all tool calls have been executed
1628
1723
  */ function areAllToolCallsExecuted(conversation) {
@@ -1630,7 +1725,13 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1630
1725
  if (!(lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.toolCalls)) {
1631
1726
  return false;
1632
1727
  }
1633
- return lastMessage.toolCalls.every((tc)=>tc.status === 'executed' || tc.status === 'denied' || tc.status === 'error');
1728
+ return lastMessage.toolCalls.every((tc)=>isTerminalToolCallStatus(tc.status));
1729
+ }
1730
+ /**
1731
+ * Find messages that have tool calls with non-terminal status
1732
+ * Used to restore pending tool call state after page refresh
1733
+ */ function findMessagesWithPendingToolCalls(conversation) {
1734
+ return conversation.messages.filter((msg)=>msg.toolCalls && msg.toolCalls.length > 0 && msg.toolCalls.some((tc)=>!isTerminalToolCallStatus(tc.status)));
1634
1735
  }
1635
1736
 
1636
1737
 
@@ -1801,6 +1902,7 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1801
1902
  /* harmony export */ createUserMessage: function() { return /* reexport safe */ _message_builder__WEBPACK_IMPORTED_MODULE_3__.createUserMessage; },
1802
1903
  /* harmony export */ deleteConversationWithCleanup: function() { return /* reexport safe */ _storage_helpers__WEBPACK_IMPORTED_MODULE_6__.deleteConversationWithCleanup; },
1803
1904
  /* harmony export */ executeToolCall: function() { return /* reexport safe */ _tool_execution__WEBPACK_IMPORTED_MODULE_8__.executeToolCall; },
1905
+ /* harmony export */ findMessagesWithPendingToolCalls: function() { return /* reexport safe */ _conversation__WEBPACK_IMPORTED_MODULE_1__.findMessagesWithPendingToolCalls; },
1804
1906
  /* harmony export */ findParentMessageId: function() { return /* reexport safe */ _conversation__WEBPACK_IMPORTED_MODULE_1__.findParentMessageId; },
1805
1907
  /* harmony export */ getCurrentSelectionContext: function() { return /* reexport safe */ _selection_context__WEBPACK_IMPORTED_MODULE_5__.getCurrentSelectionContext; },
1806
1908
  /* harmony export */ handleBackToList: function() { return /* reexport safe */ _event_handlers__WEBPACK_IMPORTED_MODULE_2__.handleBackToList; },
@@ -1809,6 +1911,7 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1809
1911
  /* harmony export */ handleToolApproval: function() { return /* reexport safe */ _event_handlers__WEBPACK_IMPORTED_MODULE_2__.handleToolApproval; },
1810
1912
  /* harmony export */ handleToolDenial: function() { return /* reexport safe */ _event_handlers__WEBPACK_IMPORTED_MODULE_2__.handleToolDenial; },
1811
1913
  /* harmony export */ invertMode: function() { return /* reexport safe */ _panel_resize__WEBPACK_IMPORTED_MODULE_4__.invertMode; },
1914
+ /* harmony export */ isTerminalToolCallStatus: function() { return /* reexport safe */ _conversation__WEBPACK_IMPORTED_MODULE_1__.isTerminalToolCallStatus; },
1812
1915
  /* harmony export */ loadInitialData: function() { return /* reexport safe */ _storage_helpers__WEBPACK_IMPORTED_MODULE_6__.loadInitialData; },
1813
1916
  /* harmony export */ processArtifacts: function() { return /* reexport safe */ _ai_response_handler__WEBPACK_IMPORTED_MODULE_0__.processArtifacts; },
1814
1917
  /* harmony export */ processFinalResponse: function() { return /* reexport safe */ _ai_response_handler__WEBPACK_IMPORTED_MODULE_0__.processFinalResponse; },
@@ -2467,7 +2570,7 @@ function updateToolCallInMessage(message, updatedToolCall) {
2467
2570
  * See LICENSE.md in the project root for license information.
2468
2571
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
2469
2572
  */ function base64ToFile(base64, filename, mimeType = 'image/png') {
2470
- const binary = atob(base64); // декодим base64 в бинарную строку
2573
+ const binary = atob(base64);
2471
2574
  const len = binary.length;
2472
2575
  const bytes = new Uint8Array(len);
2473
2576
  for(let i = 0; i < len; i++){
@@ -4927,7 +5030,7 @@ const requiresPermission = true;
4927
5030
  /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65478);
4928
5031
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67510);
4929
5032
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62843);
4930
- /* harmony import */ var jodit_esm_modules_dialog_confirm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26866);
5033
+ /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80870);
4931
5034
  /*!
4932
5035
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
4933
5036
  * See LICENSE.md in the project root for license information.
@@ -4969,6 +5072,7 @@ class UIConversationListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_
4969
5072
  const content = this.j.c.div('jodit-ui-conversation-list__item-content');
4970
5073
  const title = this.j.c.div('jodit-ui-conversation-list__item-title');
4971
5074
  title.textContent = this.conversation.title;
5075
+ this.titleElement = title;
4972
5076
  content.appendChild(title);
4973
5077
  if (this.opts.showTimestamps) {
4974
5078
  const meta = this.j.c.div('jodit-ui-conversation-list__item-meta');
@@ -4983,49 +5087,122 @@ class UIConversationListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_
4983
5087
  contentWrapper.appendChild(badge);
4984
5088
  }
4985
5089
  item.appendChild(contentWrapper);
4986
- // Delete button
4987
- if (!this.deleteButton) {
4988
- this.deleteButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
5090
+ // Actions "..." button
5091
+ if (!this.actionsButton) {
5092
+ this.actionsButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
4989
5093
  icon: {
4990
- name: 'bin'
5094
+ name: 'dots'
4991
5095
  },
4992
- variant: 'outline',
4993
- size: 'tiny',
4994
- tooltip: 'Delete conversation'
5096
+ tooltip: 'Actions',
5097
+ name: 'conversationActions',
5098
+ size: 'tiny'
4995
5099
  });
4996
- this.deleteButton.container.classList.add('jodit-ui-conversation-list__item-delete');
4997
- this.deleteButton.onAction((e)=>{
5100
+ this.actionsButton.container.classList.add('jodit-ui-conversation-list__item-actions');
5101
+ this.actionsButton.onAction((e)=>{
4998
5102
  e.stopPropagation();
4999
- this.onDelete();
5103
+ this.showActionsMenu(e);
5000
5104
  });
5001
5105
  }
5002
- item.appendChild(this.deleteButton.container);
5106
+ item.appendChild(this.actionsButton.container);
5003
5107
  }
5004
5108
  onClick() {
5109
+ if (this.isRenaming) {
5110
+ return;
5111
+ }
5005
5112
  this.j.e.fire('selectConversation.ai-assistant-pro', this.conversation.id);
5006
5113
  }
5007
- onDelete() {
5008
- jodit_esm_modules_dialog_confirm__WEBPACK_IMPORTED_MODULE_5__.Confirm.call(undefined, this.j.i18n('Are you sure you want to delete this conversation?'), this.j.i18n('Delete conversation'), (yes)=>{
5009
- if (yes) {
5010
- this.j.e.fire('deleteConversation.ai-assistant-pro', this.conversation.id);
5114
+ showActionsMenu(event) {
5115
+ if (!this.contextMenu || !this.actionsButton) return;
5116
+ const actions = [
5117
+ {
5118
+ title: 'Rename',
5119
+ icon: 'pencil',
5120
+ exec: ()=>{
5121
+ this.startInlineRename();
5122
+ }
5123
+ },
5124
+ {
5125
+ title: 'Delete',
5126
+ icon: 'bin',
5127
+ exec: ()=>{
5128
+ this.onDelete();
5129
+ }
5130
+ }
5131
+ ];
5132
+ const buttonRect = this.actionsButton.container.getBoundingClientRect();
5133
+ this.contextMenu.show(buttonRect.left, buttonRect.bottom, actions);
5134
+ event.stopPropagation();
5135
+ }
5136
+ startInlineRename() {
5137
+ if (this.isRenaming || !this.titleElement) {
5138
+ return;
5139
+ }
5140
+ this.isRenaming = true;
5141
+ const titleEl = this.titleElement;
5142
+ const currentTitle = this.conversation.title;
5143
+ const input = this.j.c.element('input');
5144
+ input.type = 'text';
5145
+ input.value = currentTitle;
5146
+ input.className = 'jodit-ui-conversation-list__item-title-input';
5147
+ titleEl.textContent = '';
5148
+ titleEl.appendChild(input);
5149
+ input.focus();
5150
+ input.select();
5151
+ const commit = ()=>{
5152
+ if (!this.isRenaming) {
5153
+ return;
5011
5154
  }
5155
+ const newTitle = input.value.trim();
5156
+ this.isRenaming = false;
5157
+ if (newTitle && newTitle !== currentTitle) {
5158
+ titleEl.textContent = newTitle;
5159
+ this.j.e.fire('renameConversation.ai-assistant-pro', this.conversation.id, newTitle);
5160
+ } else {
5161
+ titleEl.textContent = currentTitle;
5162
+ }
5163
+ };
5164
+ this.j.e.on(input, 'blur', commit);
5165
+ this.j.e.on(input, 'keydown', (e)=>{
5166
+ if (e.key === 'Enter') {
5167
+ e.preventDefault();
5168
+ input.blur();
5169
+ }
5170
+ if (e.key === 'Escape') {
5171
+ this.isRenaming = false;
5172
+ titleEl.textContent = currentTitle;
5173
+ }
5174
+ });
5175
+ // Prevent click on input from navigating to conversation
5176
+ this.j.e.on(input, 'click', (e)=>{
5177
+ e.stopPropagation();
5012
5178
  });
5013
5179
  }
5180
+ onDelete() {
5181
+ this.j.e.fire('deleteConversation.ai-assistant-pro', this.conversation.id);
5182
+ }
5014
5183
  destruct() {
5015
- var _this_deleteButton;
5016
- (_this_deleteButton = this.deleteButton) === null || _this_deleteButton === void 0 ? void 0 : _this_deleteButton.destruct();
5184
+ var _this_actionsButton, _this_contextMenu;
5185
+ (_this_actionsButton = this.actionsButton) === null || _this_actionsButton === void 0 ? void 0 : _this_actionsButton.destruct();
5186
+ (_this_contextMenu = this.contextMenu) === null || _this_contextMenu === void 0 ? void 0 : _this_contextMenu.destruct();
5017
5187
  super.destruct();
5018
5188
  }
5019
5189
  constructor(view, conversation, isActive = false, opts){
5020
- super(view), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "opts", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "conversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isActive", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "deleteButton", void 0), this.opts = opts;
5190
+ super(view), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "opts", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "conversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isActive", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "actionsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "contextMenu", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "titleElement", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isRenaming", void 0), this.opts = opts, this.actionsButton = null, this.contextMenu = null, this.titleElement = null, this.isRenaming = false;
5021
5191
  this.conversation = conversation;
5022
5192
  this.isActive = isActive;
5193
+ this.contextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_5__.ContextMenu(this.j);
5023
5194
  this.updateContent();
5024
5195
  }
5025
5196
  }
5026
5197
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5027
5198
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:click')
5028
5199
  ], UIConversationListItem.prototype, "onClick", null);
5200
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5201
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
5202
+ ], UIConversationListItem.prototype, "showActionsMenu", null);
5203
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5204
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
5205
+ ], UIConversationListItem.prototype, "startInlineRename", null);
5029
5206
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5030
5207
  jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
5031
5208
  ], UIConversationListItem.prototype, "onDelete", null);
@@ -5276,7 +5453,7 @@ class UIInputArea extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIEleme
5276
5453
  icon: {
5277
5454
  name: 'send'
5278
5455
  },
5279
- variant: 'primary',
5456
+ variant: 'initial',
5280
5457
  size: 'middle'
5281
5458
  });
5282
5459
  // Stop button
@@ -5467,6 +5644,7 @@ UIInputArea = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorat
5467
5644
  /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(2748);
5468
5645
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(67510);
5469
5646
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(62843);
5647
+ /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(80870);
5470
5648
  /*!
5471
5649
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
5472
5650
  * See LICENSE.md in the project root for license information.
@@ -5484,6 +5662,7 @@ UIInputArea = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorat
5484
5662
 
5485
5663
 
5486
5664
 
5665
+
5487
5666
  class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__.UIElement {
5488
5667
  className() {
5489
5668
  return 'UIMainPanel';
@@ -5515,8 +5694,10 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__.UIElem
5515
5694
  addResize() {}
5516
5695
  afterRender() {
5517
5696
  this.content = this.getElm('content');
5697
+ this.headerContextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_13__.ContextMenu(this.j);
5518
5698
  this.createComponents();
5519
5699
  this.createHeaderButtons();
5700
+ this.setupConversationRenameHandler();
5520
5701
  this.__updateView('welcome');
5521
5702
  }
5522
5703
  __onChangeView() {
@@ -5552,6 +5733,18 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__.UIElem
5552
5733
  this.j.e.fire('backToList.ai-assistant-pro');
5553
5734
  });
5554
5735
  headerLeft.appendChild(backButton.container);
5736
+ // Conversation actions "..." button (visible only in conversation view)
5737
+ this.conversationActionsButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_12__.UIButton(this.j, {
5738
+ icon: {
5739
+ name: 'dots'
5740
+ },
5741
+ size: 'small',
5742
+ tooltip: 'Conversation actions',
5743
+ variant: 'initial'
5744
+ });
5745
+ this.conversationActionsButton.container.classList.add(this.getFullElName('conversation-actions-button'));
5746
+ this.conversationActionsButton.onAction(this.showConversationActionsMenu);
5747
+ headerRight.appendChild(this.conversationActionsButton.container);
5555
5748
  // New conversation button
5556
5749
  const newButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_12__.UIButton(this.j, {
5557
5750
  icon: {
@@ -5595,6 +5788,70 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__.UIElem
5595
5788
  });
5596
5789
  headerRight.appendChild(closeButton.container);
5597
5790
  }
5791
+ setupConversationRenameHandler() {
5792
+ // no-op: rename is handled inline in conversation list items
5793
+ }
5794
+ showConversationActionsMenu(event) {
5795
+ if (!this.headerContextMenu || !this.state.currentConversation) {
5796
+ return;
5797
+ }
5798
+ const conv = this.state.currentConversation;
5799
+ const actions = [
5800
+ {
5801
+ title: 'Rename',
5802
+ icon: 'pencil',
5803
+ exec: ()=>{
5804
+ this.showRenamePrompt(conv.id, conv.title || this.j.i18n('Conversation'));
5805
+ }
5806
+ },
5807
+ {
5808
+ title: 'Delete',
5809
+ icon: 'bin',
5810
+ exec: ()=>{
5811
+ this.j.e.fire('deleteConversation.ai-assistant-pro', conv.id);
5812
+ }
5813
+ }
5814
+ ];
5815
+ const buttonRect = this.conversationActionsButton.container.getBoundingClientRect();
5816
+ this.headerContextMenu.show(buttonRect.left, buttonRect.bottom, actions);
5817
+ event.stopPropagation();
5818
+ }
5819
+ showRenamePrompt(id, currentTitle) {
5820
+ if (this.isEditingTitle) {
5821
+ return;
5822
+ }
5823
+ this.isEditingTitle = true;
5824
+ const headerTitle = this.getElm('header-title');
5825
+ const input = this.j.c.element('input');
5826
+ input.type = 'text';
5827
+ input.value = currentTitle;
5828
+ input.className = this.getFullElName('header-title-input');
5829
+ headerTitle.textContent = '';
5830
+ headerTitle.appendChild(input);
5831
+ input.focus();
5832
+ input.select();
5833
+ const commit = ()=>{
5834
+ const newTitle = input.value.trim();
5835
+ this.isEditingTitle = false;
5836
+ if (newTitle && newTitle !== currentTitle) {
5837
+ this.j.e.fire('renameConversation.ai-assistant-pro', id, newTitle);
5838
+ headerTitle.textContent = newTitle;
5839
+ } else {
5840
+ headerTitle.textContent = currentTitle;
5841
+ }
5842
+ };
5843
+ this.j.e.on(input, 'blur', commit);
5844
+ this.j.e.on(input, 'keydown', (e)=>{
5845
+ if (e.key === 'Enter') {
5846
+ e.preventDefault();
5847
+ input.blur();
5848
+ }
5849
+ if (e.key === 'Escape') {
5850
+ this.isEditingTitle = false;
5851
+ headerTitle.textContent = currentTitle;
5852
+ }
5853
+ });
5854
+ }
5598
5855
  /**
5599
5856
  * Check if current display mode is flight
5600
5857
  */ isFlightMode() {
@@ -5687,17 +5944,19 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__.UIElem
5687
5944
  }
5688
5945
  }
5689
5946
  destruct() {
5690
- var _this_welcomeScreen, _this_conversationList, _this_messageList, _this_inputArea, _this_permissionRequest, _this_settingsButton;
5947
+ var _this_welcomeScreen, _this_conversationList, _this_messageList, _this_inputArea, _this_permissionRequest, _this_settingsButton, _this_conversationActionsButton, _this_headerContextMenu;
5691
5948
  (_this_welcomeScreen = this.welcomeScreen) === null || _this_welcomeScreen === void 0 ? void 0 : _this_welcomeScreen.destruct();
5692
5949
  (_this_conversationList = this.conversationList) === null || _this_conversationList === void 0 ? void 0 : _this_conversationList.destruct();
5693
5950
  (_this_messageList = this.messageList) === null || _this_messageList === void 0 ? void 0 : _this_messageList.destruct();
5694
5951
  (_this_inputArea = this.inputArea) === null || _this_inputArea === void 0 ? void 0 : _this_inputArea.destruct();
5695
5952
  (_this_permissionRequest = this.permissionRequest) === null || _this_permissionRequest === void 0 ? void 0 : _this_permissionRequest.destruct();
5696
5953
  (_this_settingsButton = this.settingsButton) === null || _this_settingsButton === void 0 ? void 0 : _this_settingsButton.destruct();
5954
+ (_this_conversationActionsButton = this.conversationActionsButton) === null || _this_conversationActionsButton === void 0 ? void 0 : _this_conversationActionsButton.destruct();
5955
+ (_this_headerContextMenu = this.headerContextMenu) === null || _this_headerContextMenu === void 0 ? void 0 : _this_headerContextMenu.destruct();
5697
5956
  super.destruct();
5698
5957
  }
5699
5958
  constructor(view, state, options, updateConversation){
5700
- super(view), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "updateConversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "permissionRequest", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "settingsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "content", void 0), this.state = state, this.options = options, this.updateConversation = updateConversation, this.permissionRequest = null, this.settingsButton = null;
5959
+ super(view), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "updateConversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "permissionRequest", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "settingsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "content", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "isEditingTitle", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "conversationActionsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "headerContextMenu", void 0), this.state = state, this.options = options, this.updateConversation = updateConversation, this.permissionRequest = null, this.settingsButton = null, this.isEditingTitle = false, this.conversationActionsButton = null, this.headerContextMenu = null;
5701
5960
  }
5702
5961
  }
5703
5962
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_2__.__decorate)([
@@ -5709,6 +5968,12 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_11__.UIElem
5709
5968
  'state.currentConversation'
5710
5969
  ])
5711
5970
  ], UIMainPanel.prototype, "__onChangeView", null);
5971
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_2__.__decorate)([
5972
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_9__.autobind
5973
+ ], UIMainPanel.prototype, "showConversationActionsMenu", null);
5974
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_2__.__decorate)([
5975
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_9__.autobind
5976
+ ], UIMainPanel.prototype, "showRenamePrompt", null);
5712
5977
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_2__.__decorate)([
5713
5978
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_9__.watch)('state.currentConversation')
5714
5979
  ], UIMainPanel.prototype, "onChangeCurrentConversation", null);
@@ -6029,7 +6294,8 @@ UIArtifact = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
6029
6294
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67510);
6030
6295
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62843);
6031
6296
  /* harmony import */ var jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62405);
6032
- /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80870);
6297
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12153);
6298
+ /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(80870);
6033
6299
  /*!
6034
6300
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
6035
6301
  * See LICENSE.md in the project root for license information.
@@ -6042,6 +6308,7 @@ UIArtifact = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
6042
6308
 
6043
6309
 
6044
6310
 
6311
+
6045
6312
  class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIElement {
6046
6313
  className() {
6047
6314
  return 'UIMessageListItem';
@@ -6051,7 +6318,7 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
6051
6318
  }
6052
6319
  onReady() {
6053
6320
  this.updateContent();
6054
- this.contextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_7__.ContextMenu(this.j);
6321
+ this.contextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_8__.ContextMenu(this.j);
6055
6322
  }
6056
6323
  updateContent() {
6057
6324
  const container = this.container;
@@ -6204,7 +6471,7 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
6204
6471
  const header = this.j.c.div(this.getFullElName('tool-header'));
6205
6472
  const icon = this.j.c.div(this.getFullElName('tool-icon'));
6206
6473
  icon.classList.add(this.getFullElName('tool-icon', toolCall.status, true));
6207
- icon.textContent = '';
6474
+ icon.innerHTML = jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__.Icon.get('tool-bolt') || '';
6208
6475
  const name = this.j.c.div(this.getFullElName('tool-name'));
6209
6476
  name.textContent = this.j.i18n(toolCall.name);
6210
6477
  const status = this.j.c.div(this.getFullElName('tool-status'));
@@ -6232,7 +6499,12 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
6232
6499
  type: 'button',
6233
6500
  class: this.getFullElName('tool-expandable-toggle')
6234
6501
  });
6235
- toggle.textContent = `▶ ${this.j.i18n(title)}`;
6502
+ const chevronSpan = this.j.c.span(this.getFullElName('tool-expandable-chevron'));
6503
+ chevronSpan.innerHTML = jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__.Icon.get('chevron-right') || '';
6504
+ const titleSpan = this.j.c.span();
6505
+ titleSpan.textContent = this.j.i18n(title);
6506
+ toggle.appendChild(chevronSpan);
6507
+ toggle.appendChild(titleSpan);
6236
6508
  const contentEl = this.j.c.element('pre', {
6237
6509
  class: this.getFullElName('tool-expandable-content')
6238
6510
  });
@@ -6242,10 +6514,10 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
6242
6514
  const isCurrentlyExpanded = contentEl.style.display !== 'none';
6243
6515
  if (isCurrentlyExpanded) {
6244
6516
  contentEl.style.display = 'none';
6245
- toggle.textContent = `▶ ${this.j.i18n(title)}`;
6517
+ toggle.classList.remove('expanded');
6246
6518
  } else {
6247
6519
  contentEl.style.display = 'block';
6248
- toggle.textContent = `▼ ${this.j.i18n(title)}`;
6520
+ toggle.classList.add('expanded');
6249
6521
  }
6250
6522
  });
6251
6523
  section.appendChild(toggle);
@@ -6256,14 +6528,14 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
6256
6528
  * Get tool status text
6257
6529
  */ getToolStatusText(status) {
6258
6530
  const statusMap = {
6259
- pending: '',
6260
- approved: '',
6261
- denied: '',
6262
- executing: '',
6263
- executed: '',
6264
- error: ''
6531
+ pending: 'pending',
6532
+ approved: 'approved',
6533
+ denied: 'denied',
6534
+ executing: 'running',
6535
+ executed: 'done',
6536
+ error: 'error'
6265
6537
  };
6266
- return statusMap[status] || '●';
6538
+ return statusMap[status] || status;
6267
6539
  }
6268
6540
  /**
6269
6541
  * Format message content using custom formatter
@@ -6459,6 +6731,7 @@ UIMessageList = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decor
6459
6731
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67510);
6460
6732
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62843);
6461
6733
  /* harmony import */ var jodit_esm_core_ui_form_inputs_select_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12234);
6734
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12153);
6462
6735
  /*!
6463
6736
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
6464
6737
  * See LICENSE.md in the project root for license information.
@@ -6469,6 +6742,7 @@ UIMessageList = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decor
6469
6742
 
6470
6743
 
6471
6744
 
6745
+
6472
6746
  class UIPermissionRequest extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__.UIElement {
6473
6747
  className() {
6474
6748
  return 'UIPermissionRequest';
@@ -6491,31 +6765,38 @@ class UIPermissionRequest extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__
6491
6765
  <div class="&__title">~Permission Required~</div>
6492
6766
  </div>
6493
6767
  <div class="&__tool-info"></div>
6494
- <div class="&__actions"></div>
6768
+ <div class="&__actions">
6769
+ <div class="&__actions-buttons"></div>
6770
+ <div class="&__actions-scope"></div>
6771
+ </div>
6495
6772
  </div>`;
6496
6773
  }
6497
6774
  afterRender() {
6775
+ // Set icon
6776
+ const iconEl = this.getElm('icon');
6777
+ if (iconEl) {
6778
+ iconEl.innerHTML = jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_6__.Icon.get('shield') || '';
6779
+ }
6498
6780
  this.createControls();
6499
6781
  this.updateContent();
6500
6782
  }
6501
6783
  createControls() {
6502
- const actionsContainer = this.getElm('actions');
6784
+ const buttonsContainer = this.getElm('actions-buttons');
6785
+ const scopeContainer = this.getElm('actions-scope');
6503
6786
  // Deny button
6504
6787
  this.denyButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
6505
- icon: {
6506
- name: 'cancel'
6507
- },
6508
- variant: 'danger',
6509
- size: 'small'
6788
+ text: this.j.i18n('Deny'),
6789
+ variant: 'initial',
6790
+ size: 'small',
6791
+ name: 'deny-permission'
6510
6792
  });
6511
6793
  this.j.e.on(this.denyButton, 'click', this.onDeny);
6512
6794
  // Approve button
6513
6795
  this.approveButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
6514
- icon: {
6515
- name: 'check'
6516
- },
6517
- variant: 'success',
6518
- size: 'small'
6796
+ text: this.j.i18n('Allow'),
6797
+ variant: 'initial',
6798
+ size: 'small',
6799
+ name: 'approve-permission'
6519
6800
  });
6520
6801
  this.j.e.on(this.approveButton, 'click', this.onApprove);
6521
6802
  // Scope select
@@ -6537,9 +6818,9 @@ class UIPermissionRequest extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__
6537
6818
  ]
6538
6819
  });
6539
6820
  this.scopeSelect.value = this.state.defaultPermissionScope;
6540
- actionsContainer.appendChild(this.denyButton.container);
6541
- actionsContainer.appendChild(this.approveButton.container);
6542
- actionsContainer.appendChild(this.scopeSelect.container);
6821
+ buttonsContainer.appendChild(this.denyButton.container);
6822
+ buttonsContainer.appendChild(this.approveButton.container);
6823
+ scopeContainer.appendChild(this.scopeSelect.container);
6543
6824
  }
6544
6825
  updateContent() {
6545
6826
  if (!this.toolCall) return;