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
 
@@ -304,6 +325,25 @@ class aiAssistantPro extends jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_15__
304
325
  // Just for init getter
305
326
  this.mainPanel.setMod('ready', true);
306
327
  await (0,_core__WEBPACK_IMPORTED_MODULE_9__.loadInitialData)(this.j, this.storage, this.stateManager);
328
+ // Restore pending tool calls from stored conversation
329
+ await this.restorePendingToolCalls();
330
+ }
331
+ /**
332
+ * Restore pending tool calls after loading a conversation from storage.
333
+ * Scans messages for tool calls with non-terminal status and
334
+ * re-runs handleToolCalls to show the permission dialog.
335
+ */ async restorePendingToolCalls() {
336
+ const conversation = this.stateManager.getCurrentConversation();
337
+ if (!conversation) {
338
+ return;
339
+ }
340
+ const messagesWithPending = (0,_core__WEBPACK_IMPORTED_MODULE_9__.findMessagesWithPendingToolCalls)(conversation);
341
+ if (messagesWithPending.length === 0) {
342
+ return;
343
+ }
344
+ for (const message of messagesWithPending){
345
+ await this.handleToolCalls(message.id);
346
+ }
307
347
  }
308
348
  /**
309
349
  * Setup event listeners
@@ -331,6 +371,11 @@ class aiAssistantPro extends jodit_esm_core_plugin__WEBPACK_IMPORTED_MODULE_15__
331
371
  await this.__loadData();
332
372
  await this.deleteConversation(id);
333
373
  });
374
+ // Rename conversation
375
+ this.j.e.on('renameConversation.ai-assistant-pro', async (id, newTitle)=>{
376
+ await this.__loadData();
377
+ await this.renameConversation(id, newTitle);
378
+ });
334
379
  // Back to list
335
380
  this.j.e.on('backToList.ai-assistant-pro', async ()=>{
336
381
  await this.__loadData();
@@ -730,6 +775,27 @@ ${selectedText}`.trim();
730
775
  await this.__loadData();
731
776
  await (0,_core__WEBPACK_IMPORTED_MODULE_9__.deleteConversationWithCleanup)(this.j, conversationId, this.storage, this.stateManager, this.permissionManager);
732
777
  }
778
+ /**
779
+ * Rename conversation
780
+ */ async renameConversation(conversationId, newTitle) {
781
+ const conversation = await this.storage.get(conversationId);
782
+ if (!conversation) {
783
+ return;
784
+ }
785
+ const updated = {
786
+ ...conversation,
787
+ title: newTitle,
788
+ updated: Date.now()
789
+ };
790
+ await this.storage.save(updated);
791
+ // Update current conversation if it's the one being renamed
792
+ if (this.state.currentConversation?.id === conversationId) {
793
+ this.stateManager.setCurrentConversation(updated);
794
+ }
795
+ // Refresh conversation list
796
+ const conversations = await this.storage.list();
797
+ this.stateManager.setConversations(conversations);
798
+ }
733
799
  /**
734
800
  * Search conversations
735
801
  */ async searchConversations(query) {
@@ -751,8 +817,13 @@ ${selectedText}`.trim();
751
817
  if (!toolCalls || toolCalls.length === 0) {
752
818
  return;
753
819
  }
754
- await this.__loadData();
755
- const { approved, needsPermission } = this.permissionManager.filterToolCalls(toolCalls, conversation.permissions);
820
+ // Filter out tool calls that already have a terminal status
821
+ // This makes handleToolCalls safe to call on restored conversations
822
+ const nonTerminalToolCalls = toolCalls.filter((tc)=>!(0,_core__WEBPACK_IMPORTED_MODULE_9__.isTerminalToolCallStatus)(tc.status));
823
+ if (nonTerminalToolCalls.length === 0) {
824
+ return;
825
+ }
826
+ const { approved, needsPermission } = this.permissionManager.filterToolCalls(nonTerminalToolCalls, conversation.permissions);
756
827
  // Set pending tool calls for UI
757
828
  this.stateManager.setPendingToolCalls(needsPermission);
758
829
  // Execute approved tools (pass depth)
@@ -763,7 +834,6 @@ ${selectedText}`.trim();
763
834
  /**
764
835
  * Execute a tool call
765
836
  */ async executeToolCall(messageId, toolCall, depth = 0) {
766
- await this.__loadData();
767
837
  let conversation = this.stateManager.getCurrentConversation();
768
838
  if (!conversation) {
769
839
  return;
@@ -1007,13 +1077,19 @@ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_16__.JoditPro.plugins.add('aiAssist
1007
1077
  /* harmony import */ var _icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_2__);
1008
1078
  /* harmony import */ var _icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75966);
1009
1079
  /* harmony import */ var _icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_3__);
1010
- /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99219);
1011
- /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_icons_send_svg__WEBPACK_IMPORTED_MODULE_4__);
1012
- /* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(53835);
1013
- /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(6441);
1014
- /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12153);
1015
- /* harmony import */ var jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(31974);
1016
- /* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(72573);
1080
+ /* harmony import */ var _icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83207);
1081
+ /* harmony import */ var _icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(_icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_4__);
1082
+ /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(99219);
1083
+ /* harmony import */ var _icons_send_svg__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(_icons_send_svg__WEBPACK_IMPORTED_MODULE_5__);
1084
+ /* harmony import */ var _icons_shield_svg__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63674);
1085
+ /* harmony import */ var _icons_shield_svg__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(_icons_shield_svg__WEBPACK_IMPORTED_MODULE_6__);
1086
+ /* harmony import */ var _icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(4133);
1087
+ /* harmony import */ var _icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(_icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_7__);
1088
+ /* harmony import */ var _tools__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(53835);
1089
+ /* harmony import */ var jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(6441);
1090
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12153);
1091
+ /* harmony import */ var jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(31974);
1092
+ /* harmony import */ var marked__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(72573);
1017
1093
  /*!
1018
1094
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
1019
1095
  * See LICENSE.md in the project root for license information.
@@ -1028,10 +1104,13 @@ jodit_pro_jodit_pro__WEBPACK_IMPORTED_MODULE_16__.JoditPro.plugins.add('aiAssist
1028
1104
 
1029
1105
 
1030
1106
 
1107
+
1108
+
1109
+
1031
1110
  // Register icons
1032
- jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__.Icon.set('ai-assistant-pro', (_icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_2___default())).set('ai-commands-pro', (_icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_3___default())).set('ai-add-context', (_icons_add_context_svg__WEBPACK_IMPORTED_MODULE_1___default())).set('send', (_icons_send_svg__WEBPACK_IMPORTED_MODULE_4___default()));
1111
+ jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_10__.Icon.set('ai-assistant-pro', (_icons_ai_assistant_svg__WEBPACK_IMPORTED_MODULE_2___default())).set('ai-commands-pro', (_icons_ai_commands_svg__WEBPACK_IMPORTED_MODULE_3___default())).set('ai-add-context', (_icons_add_context_svg__WEBPACK_IMPORTED_MODULE_1___default())).set('send', (_icons_send_svg__WEBPACK_IMPORTED_MODULE_5___default())).set('tool-bolt', (_icons_tool_bolt_svg__WEBPACK_IMPORTED_MODULE_7___default())).set('chevron-right', (_icons_chevron_right_svg__WEBPACK_IMPORTED_MODULE_4___default())).set('shield', (_icons_shield_svg__WEBPACK_IMPORTED_MODULE_6___default()));
1033
1112
  // Default configuration
1034
- jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro = {
1113
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.aiAssistantPro = {
1035
1114
  // ===== Display Settings =====
1036
1115
  displayMode: 'right',
1037
1116
  panelWidth: 400,
@@ -1047,7 +1126,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1047
1126
  retryDelay: 1000,
1048
1127
  maxRecursionToolCallDepth: 1000,
1049
1128
  // ===== Tools Configuration =====
1050
- enabledTools: (0,_tools__WEBPACK_IMPORTED_MODULE_5__.getToolNames)(),
1129
+ enabledTools: (0,_tools__WEBPACK_IMPORTED_MODULE_8__.getToolNames)(),
1051
1130
  customTools: [],
1052
1131
  toolPermissions: {},
1053
1132
  // ===== Permission Settings =====
@@ -1086,7 +1165,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1086
1165
  },
1087
1166
  formatMessageContent: (content, role)=>{
1088
1167
  // For user and assistant messages, use markdown
1089
- return marked__WEBPACK_IMPORTED_MODULE_9__.marked.parse(content, {
1168
+ return marked__WEBPACK_IMPORTED_MODULE_12__.marked.parse(content, {
1090
1169
  breaks: true,
1091
1170
  gfm: true
1092
1171
  });
@@ -1155,7 +1234,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1155
1234
  };
1156
1235
  /**
1157
1236
  * Main AI Assistant Pro control for toolbar
1158
- */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.controls.aiAssistantPro = {
1237
+ */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.controls.aiAssistantPro = {
1159
1238
  icon: 'ai-assistant-pro',
1160
1239
  tooltip: 'AI Assistant',
1161
1240
  /**
@@ -1190,7 +1269,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1190
1269
  };
1191
1270
  /**
1192
1271
  * Add Context control for context menu (adds selection to AI context)
1193
- */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.controls.aiAddContext = {
1272
+ */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.controls.aiAddContext = {
1194
1273
  icon: 'ai-add-context',
1195
1274
  tooltip: 'Add to AI Context',
1196
1275
  /**
@@ -1212,7 +1291,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1212
1291
  };
1213
1292
  /**
1214
1293
  * AI Commands control - quick AI commands dropdown
1215
- */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.controls.aiCommandsPro = {
1294
+ */ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.controls.aiCommandsPro = {
1216
1295
  icon: 'ai-commands-pro',
1217
1296
  tooltip: 'AI Commands',
1218
1297
  /**
@@ -1222,7 +1301,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1222
1301
  },
1223
1302
  /**
1224
1303
  * Default list of commands (can be overridden via quickCommands config)
1225
- */ list: jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_8__.aiAssitentCommands,
1304
+ */ list: jodit_esm_plugins_ai_assistant_config__WEBPACK_IMPORTED_MODULE_11__.aiAssitentCommands,
1226
1305
  /**
1227
1306
  * Execute handler - fires event with command name
1228
1307
  */ exec (editor, event, { control }) {
@@ -1231,7 +1310,7 @@ jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.aiAssistantPro =
1231
1310
  };
1232
1311
  /**
1233
1312
  * Extend tune-block popup to include "Add to AI Context" option
1234
- */ const originalTuneBlockPopup = jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock?.popup || {};
1313
+ */ const originalTuneBlockPopup = jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock?.popup || {};
1235
1314
  // Add AI context option to all block types
1236
1315
  const tuneBlockExtension = {};
1237
1316
  // Common block types
@@ -1272,8 +1351,8 @@ blockTypes.forEach((tag)=>{
1272
1351
  ];
1273
1352
  });
1274
1353
  // Merge with existing tune-block configuration
1275
- if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock) {
1276
- jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock.popup = {
1354
+ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock) {
1355
+ jodit_esm_config__WEBPACK_IMPORTED_MODULE_9__.Config.prototype.tuneBlock.popup = {
1277
1356
  ...originalTuneBlockPopup,
1278
1357
  ...tuneBlockExtension
1279
1358
  };
@@ -1522,7 +1601,9 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock) {
1522
1601
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
1523
1602
  /* harmony export */ areAllToolCallsExecuted: function() { return /* binding */ areAllToolCallsExecuted; },
1524
1603
  /* harmony export */ createNewConversation: function() { return /* binding */ createNewConversation; },
1525
- /* harmony export */ findParentMessageId: function() { return /* binding */ findParentMessageId; }
1604
+ /* harmony export */ findMessagesWithPendingToolCalls: function() { return /* binding */ findMessagesWithPendingToolCalls; },
1605
+ /* harmony export */ findParentMessageId: function() { return /* binding */ findParentMessageId; },
1606
+ /* harmony export */ isTerminalToolCallStatus: function() { return /* binding */ isTerminalToolCallStatus; }
1526
1607
  /* harmony export */ });
1527
1608
  /* harmony import */ var _helpers_storage_webstorage_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21064);
1528
1609
  /*!
@@ -1559,6 +1640,16 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock) {
1559
1640
  }
1560
1641
  return null;
1561
1642
  }
1643
+ const TERMINAL_STATUSES = new Set([
1644
+ 'executed',
1645
+ 'denied',
1646
+ 'error'
1647
+ ]);
1648
+ /**
1649
+ * Check if a tool call status is terminal (no further action needed)
1650
+ */ function isTerminalToolCallStatus(status) {
1651
+ return TERMINAL_STATUSES.has(status);
1652
+ }
1562
1653
  /**
1563
1654
  * Check if all tool calls have been executed
1564
1655
  */ function areAllToolCallsExecuted(conversation) {
@@ -1566,7 +1657,13 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock) {
1566
1657
  if (!lastMessage?.toolCalls) {
1567
1658
  return false;
1568
1659
  }
1569
- return lastMessage.toolCalls.every((tc)=>tc.status === 'executed' || tc.status === 'denied' || tc.status === 'error');
1660
+ return lastMessage.toolCalls.every((tc)=>isTerminalToolCallStatus(tc.status));
1661
+ }
1662
+ /**
1663
+ * Find messages that have tool calls with non-terminal status
1664
+ * Used to restore pending tool call state after page refresh
1665
+ */ function findMessagesWithPendingToolCalls(conversation) {
1666
+ return conversation.messages.filter((msg)=>msg.toolCalls && msg.toolCalls.length > 0 && msg.toolCalls.some((tc)=>!isTerminalToolCallStatus(tc.status)));
1570
1667
  }
1571
1668
 
1572
1669
 
@@ -1723,6 +1820,7 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock) {
1723
1820
  /* harmony export */ createUserMessage: function() { return /* reexport safe */ _message_builder__WEBPACK_IMPORTED_MODULE_3__.createUserMessage; },
1724
1821
  /* harmony export */ deleteConversationWithCleanup: function() { return /* reexport safe */ _storage_helpers__WEBPACK_IMPORTED_MODULE_6__.deleteConversationWithCleanup; },
1725
1822
  /* harmony export */ executeToolCall: function() { return /* reexport safe */ _tool_execution__WEBPACK_IMPORTED_MODULE_8__.executeToolCall; },
1823
+ /* harmony export */ findMessagesWithPendingToolCalls: function() { return /* reexport safe */ _conversation__WEBPACK_IMPORTED_MODULE_1__.findMessagesWithPendingToolCalls; },
1726
1824
  /* harmony export */ findParentMessageId: function() { return /* reexport safe */ _conversation__WEBPACK_IMPORTED_MODULE_1__.findParentMessageId; },
1727
1825
  /* harmony export */ getCurrentSelectionContext: function() { return /* reexport safe */ _selection_context__WEBPACK_IMPORTED_MODULE_5__.getCurrentSelectionContext; },
1728
1826
  /* harmony export */ handleBackToList: function() { return /* reexport safe */ _event_handlers__WEBPACK_IMPORTED_MODULE_2__.handleBackToList; },
@@ -1731,6 +1829,7 @@ if (jodit_esm_config__WEBPACK_IMPORTED_MODULE_6__.Config.prototype.tuneBlock) {
1731
1829
  /* harmony export */ handleToolApproval: function() { return /* reexport safe */ _event_handlers__WEBPACK_IMPORTED_MODULE_2__.handleToolApproval; },
1732
1830
  /* harmony export */ handleToolDenial: function() { return /* reexport safe */ _event_handlers__WEBPACK_IMPORTED_MODULE_2__.handleToolDenial; },
1733
1831
  /* harmony export */ invertMode: function() { return /* reexport safe */ _panel_resize__WEBPACK_IMPORTED_MODULE_4__.invertMode; },
1832
+ /* harmony export */ isTerminalToolCallStatus: function() { return /* reexport safe */ _conversation__WEBPACK_IMPORTED_MODULE_1__.isTerminalToolCallStatus; },
1734
1833
  /* harmony export */ loadInitialData: function() { return /* reexport safe */ _storage_helpers__WEBPACK_IMPORTED_MODULE_6__.loadInitialData; },
1735
1834
  /* harmony export */ processArtifacts: function() { return /* reexport safe */ _ai_response_handler__WEBPACK_IMPORTED_MODULE_0__.processArtifacts; },
1736
1835
  /* harmony export */ processFinalResponse: function() { return /* reexport safe */ _ai_response_handler__WEBPACK_IMPORTED_MODULE_0__.processFinalResponse; },
@@ -2358,7 +2457,7 @@ function updateToolCallInMessage(message, updatedToolCall) {
2358
2457
  * See LICENSE.md in the project root for license information.
2359
2458
  * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
2360
2459
  */ function base64ToFile(base64, filename, mimeType = 'image/png') {
2361
- const binary = atob(base64); // декодим base64 в бинарную строку
2460
+ const binary = atob(base64);
2362
2461
  const len = binary.length;
2363
2462
  const bytes = new Uint8Array(len);
2364
2463
  for(let i = 0; i < len; i++){
@@ -4623,7 +4722,7 @@ const requiresPermission = true;
4623
4722
  /* harmony import */ var jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65478);
4624
4723
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67510);
4625
4724
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62843);
4626
- /* harmony import */ var jodit_esm_modules_dialog_confirm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26866);
4725
+ /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80870);
4627
4726
  /*!
4628
4727
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
4629
4728
  * See LICENSE.md in the project root for license information.
@@ -4665,6 +4764,7 @@ class UIConversationListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_
4665
4764
  const content = this.j.c.div('jodit-ui-conversation-list__item-content');
4666
4765
  const title = this.j.c.div('jodit-ui-conversation-list__item-title');
4667
4766
  title.textContent = this.conversation.title;
4767
+ this.titleElement = title;
4668
4768
  content.appendChild(title);
4669
4769
  if (this.opts.showTimestamps) {
4670
4770
  const meta = this.j.c.div('jodit-ui-conversation-list__item-meta');
@@ -4679,48 +4779,121 @@ class UIConversationListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_
4679
4779
  contentWrapper.appendChild(badge);
4680
4780
  }
4681
4781
  item.appendChild(contentWrapper);
4682
- // Delete button
4683
- if (!this.deleteButton) {
4684
- this.deleteButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
4782
+ // Actions "..." button
4783
+ if (!this.actionsButton) {
4784
+ this.actionsButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
4685
4785
  icon: {
4686
- name: 'bin'
4786
+ name: 'dots'
4687
4787
  },
4688
- variant: 'outline',
4689
- size: 'tiny',
4690
- tooltip: 'Delete conversation'
4788
+ tooltip: 'Actions',
4789
+ name: 'conversationActions',
4790
+ size: 'tiny'
4691
4791
  });
4692
- this.deleteButton.container.classList.add('jodit-ui-conversation-list__item-delete');
4693
- this.deleteButton.onAction((e)=>{
4792
+ this.actionsButton.container.classList.add('jodit-ui-conversation-list__item-actions');
4793
+ this.actionsButton.onAction((e)=>{
4694
4794
  e.stopPropagation();
4695
- this.onDelete();
4795
+ this.showActionsMenu(e);
4696
4796
  });
4697
4797
  }
4698
- item.appendChild(this.deleteButton.container);
4798
+ item.appendChild(this.actionsButton.container);
4699
4799
  }
4700
4800
  onClick() {
4801
+ if (this.isRenaming) {
4802
+ return;
4803
+ }
4701
4804
  this.j.e.fire('selectConversation.ai-assistant-pro', this.conversation.id);
4702
4805
  }
4703
- onDelete() {
4704
- 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)=>{
4705
- if (yes) {
4706
- this.j.e.fire('deleteConversation.ai-assistant-pro', this.conversation.id);
4806
+ showActionsMenu(event) {
4807
+ if (!this.contextMenu || !this.actionsButton) return;
4808
+ const actions = [
4809
+ {
4810
+ title: 'Rename',
4811
+ icon: 'pencil',
4812
+ exec: ()=>{
4813
+ this.startInlineRename();
4814
+ }
4815
+ },
4816
+ {
4817
+ title: 'Delete',
4818
+ icon: 'bin',
4819
+ exec: ()=>{
4820
+ this.onDelete();
4821
+ }
4822
+ }
4823
+ ];
4824
+ const buttonRect = this.actionsButton.container.getBoundingClientRect();
4825
+ this.contextMenu.show(buttonRect.left, buttonRect.bottom, actions);
4826
+ event.stopPropagation();
4827
+ }
4828
+ startInlineRename() {
4829
+ if (this.isRenaming || !this.titleElement) {
4830
+ return;
4831
+ }
4832
+ this.isRenaming = true;
4833
+ const titleEl = this.titleElement;
4834
+ const currentTitle = this.conversation.title;
4835
+ const input = this.j.c.element('input');
4836
+ input.type = 'text';
4837
+ input.value = currentTitle;
4838
+ input.className = 'jodit-ui-conversation-list__item-title-input';
4839
+ titleEl.textContent = '';
4840
+ titleEl.appendChild(input);
4841
+ input.focus();
4842
+ input.select();
4843
+ const commit = ()=>{
4844
+ if (!this.isRenaming) {
4845
+ return;
4846
+ }
4847
+ const newTitle = input.value.trim();
4848
+ this.isRenaming = false;
4849
+ if (newTitle && newTitle !== currentTitle) {
4850
+ titleEl.textContent = newTitle;
4851
+ this.j.e.fire('renameConversation.ai-assistant-pro', this.conversation.id, newTitle);
4852
+ } else {
4853
+ titleEl.textContent = currentTitle;
4854
+ }
4855
+ };
4856
+ this.j.e.on(input, 'blur', commit);
4857
+ this.j.e.on(input, 'keydown', (e)=>{
4858
+ if (e.key === 'Enter') {
4859
+ e.preventDefault();
4860
+ input.blur();
4861
+ }
4862
+ if (e.key === 'Escape') {
4863
+ this.isRenaming = false;
4864
+ titleEl.textContent = currentTitle;
4707
4865
  }
4708
4866
  });
4867
+ // Prevent click on input from navigating to conversation
4868
+ this.j.e.on(input, 'click', (e)=>{
4869
+ e.stopPropagation();
4870
+ });
4871
+ }
4872
+ onDelete() {
4873
+ this.j.e.fire('deleteConversation.ai-assistant-pro', this.conversation.id);
4709
4874
  }
4710
4875
  destruct() {
4711
- this.deleteButton?.destruct();
4876
+ this.actionsButton?.destruct();
4877
+ this.contextMenu?.destruct();
4712
4878
  super.destruct();
4713
4879
  }
4714
4880
  constructor(view, conversation, isActive = false, opts){
4715
- 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;
4881
+ 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;
4716
4882
  this.conversation = conversation;
4717
4883
  this.isActive = isActive;
4884
+ this.contextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_5__.ContextMenu(this.j);
4718
4885
  this.updateContent();
4719
4886
  }
4720
4887
  }
4721
4888
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
4722
4889
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.watch)('container:click')
4723
4890
  ], UIConversationListItem.prototype, "onClick", null);
4891
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
4892
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
4893
+ ], UIConversationListItem.prototype, "showActionsMenu", null);
4894
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
4895
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
4896
+ ], UIConversationListItem.prototype, "startInlineRename", null);
4724
4897
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
4725
4898
  jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_2__.autobind
4726
4899
  ], UIConversationListItem.prototype, "onDelete", null);
@@ -4967,7 +5140,7 @@ class UIInputArea extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIEleme
4967
5140
  icon: {
4968
5141
  name: 'send'
4969
5142
  },
4970
- variant: 'primary',
5143
+ variant: 'initial',
4971
5144
  size: 'middle'
4972
5145
  });
4973
5146
  // Stop button
@@ -5153,6 +5326,7 @@ UIInputArea = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorat
5153
5326
  /* harmony import */ var jodit_esm_core_dom_dom__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(2748);
5154
5327
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(67510);
5155
5328
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(62843);
5329
+ /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(80870);
5156
5330
  /*!
5157
5331
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
5158
5332
  * See LICENSE.md in the project root for license information.
@@ -5169,6 +5343,7 @@ UIInputArea = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorat
5169
5343
 
5170
5344
 
5171
5345
 
5346
+
5172
5347
  class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__.UIElement {
5173
5348
  className() {
5174
5349
  return 'UIMainPanel';
@@ -5199,8 +5374,10 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__.UIElem
5199
5374
  addResize() {}
5200
5375
  afterRender() {
5201
5376
  this.content = this.getElm('content');
5377
+ this.headerContextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_12__.ContextMenu(this.j);
5202
5378
  this.createComponents();
5203
5379
  this.createHeaderButtons();
5380
+ this.setupConversationRenameHandler();
5204
5381
  this.__updateView('welcome');
5205
5382
  }
5206
5383
  async __onChangeView() {
@@ -5234,6 +5411,18 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__.UIElem
5234
5411
  this.j.e.fire('backToList.ai-assistant-pro');
5235
5412
  });
5236
5413
  headerLeft.appendChild(backButton.container);
5414
+ // Conversation actions "..." button (visible only in conversation view)
5415
+ this.conversationActionsButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_11__.UIButton(this.j, {
5416
+ icon: {
5417
+ name: 'dots'
5418
+ },
5419
+ size: 'small',
5420
+ tooltip: 'Conversation actions',
5421
+ variant: 'initial'
5422
+ });
5423
+ this.conversationActionsButton.container.classList.add(this.getFullElName('conversation-actions-button'));
5424
+ this.conversationActionsButton.onAction(this.showConversationActionsMenu);
5425
+ headerRight.appendChild(this.conversationActionsButton.container);
5237
5426
  // New conversation button
5238
5427
  const newButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_11__.UIButton(this.j, {
5239
5428
  icon: {
@@ -5277,6 +5466,70 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__.UIElem
5277
5466
  });
5278
5467
  headerRight.appendChild(closeButton.container);
5279
5468
  }
5469
+ setupConversationRenameHandler() {
5470
+ // no-op: rename is handled inline in conversation list items
5471
+ }
5472
+ showConversationActionsMenu(event) {
5473
+ if (!this.headerContextMenu || !this.state.currentConversation) {
5474
+ return;
5475
+ }
5476
+ const conv = this.state.currentConversation;
5477
+ const actions = [
5478
+ {
5479
+ title: 'Rename',
5480
+ icon: 'pencil',
5481
+ exec: ()=>{
5482
+ this.showRenamePrompt(conv.id, conv.title || this.j.i18n('Conversation'));
5483
+ }
5484
+ },
5485
+ {
5486
+ title: 'Delete',
5487
+ icon: 'bin',
5488
+ exec: ()=>{
5489
+ this.j.e.fire('deleteConversation.ai-assistant-pro', conv.id);
5490
+ }
5491
+ }
5492
+ ];
5493
+ const buttonRect = this.conversationActionsButton.container.getBoundingClientRect();
5494
+ this.headerContextMenu.show(buttonRect.left, buttonRect.bottom, actions);
5495
+ event.stopPropagation();
5496
+ }
5497
+ showRenamePrompt(id, currentTitle) {
5498
+ if (this.isEditingTitle) {
5499
+ return;
5500
+ }
5501
+ this.isEditingTitle = true;
5502
+ const headerTitle = this.getElm('header-title');
5503
+ const input = this.j.c.element('input');
5504
+ input.type = 'text';
5505
+ input.value = currentTitle;
5506
+ input.className = this.getFullElName('header-title-input');
5507
+ headerTitle.textContent = '';
5508
+ headerTitle.appendChild(input);
5509
+ input.focus();
5510
+ input.select();
5511
+ const commit = ()=>{
5512
+ const newTitle = input.value.trim();
5513
+ this.isEditingTitle = false;
5514
+ if (newTitle && newTitle !== currentTitle) {
5515
+ this.j.e.fire('renameConversation.ai-assistant-pro', id, newTitle);
5516
+ headerTitle.textContent = newTitle;
5517
+ } else {
5518
+ headerTitle.textContent = currentTitle;
5519
+ }
5520
+ };
5521
+ this.j.e.on(input, 'blur', commit);
5522
+ this.j.e.on(input, 'keydown', (e)=>{
5523
+ if (e.key === 'Enter') {
5524
+ e.preventDefault();
5525
+ input.blur();
5526
+ }
5527
+ if (e.key === 'Escape') {
5528
+ this.isEditingTitle = false;
5529
+ headerTitle.textContent = currentTitle;
5530
+ }
5531
+ });
5532
+ }
5280
5533
  /**
5281
5534
  * Check if current display mode is flight
5282
5535
  */ isFlightMode() {
@@ -5374,10 +5627,12 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__.UIElem
5374
5627
  this.inputArea?.destruct();
5375
5628
  this.permissionRequest?.destruct();
5376
5629
  this.settingsButton?.destruct();
5630
+ this.conversationActionsButton?.destruct();
5631
+ this.headerContextMenu?.destruct();
5377
5632
  super.destruct();
5378
5633
  }
5379
5634
  constructor(view, state, options, updateConversation){
5380
- super(view), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "updateConversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "permissionRequest", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "settingsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "content", void 0), this.state = state, this.options = options, this.updateConversation = updateConversation, this.permissionRequest = null, this.settingsButton = null;
5635
+ super(view), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "state", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "options", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "updateConversation", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "permissionRequest", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "settingsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "content", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "isEditingTitle", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "conversationActionsButton", void 0), (0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(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;
5381
5636
  }
5382
5637
  }
5383
5638
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
@@ -5389,6 +5644,12 @@ class UIMainPanel extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_10__.UIElem
5389
5644
  'state.currentConversation'
5390
5645
  ])
5391
5646
  ], UIMainPanel.prototype, "__onChangeView", null);
5647
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5648
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_8__.autobind
5649
+ ], UIMainPanel.prototype, "showConversationActionsMenu", null);
5650
+ (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5651
+ jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_8__.autobind
5652
+ ], UIMainPanel.prototype, "showRenamePrompt", null);
5392
5653
  (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate)([
5393
5654
  (0,jodit_esm_core_decorators__WEBPACK_IMPORTED_MODULE_8__.watch)('state.currentConversation')
5394
5655
  ], UIMainPanel.prototype, "onChangeCurrentConversation", null);
@@ -5706,7 +5967,8 @@ UIArtifact = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
5706
5967
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67510);
5707
5968
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62843);
5708
5969
  /* harmony import */ var jodit_esm_core_ui_group_group__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(62405);
5709
- /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80870);
5970
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12153);
5971
+ /* harmony import */ var jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(80870);
5710
5972
  /*!
5711
5973
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
5712
5974
  * See LICENSE.md in the project root for license information.
@@ -5719,6 +5981,7 @@ UIArtifact = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decorate
5719
5981
 
5720
5982
 
5721
5983
 
5984
+
5722
5985
  class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.UIElement {
5723
5986
  className() {
5724
5987
  return 'UIMessageListItem';
@@ -5728,7 +5991,7 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
5728
5991
  }
5729
5992
  onReady() {
5730
5993
  this.updateContent();
5731
- this.contextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_7__.ContextMenu(this.j);
5994
+ this.contextMenu = new jodit_esm_modules_context_menu_context_menu__WEBPACK_IMPORTED_MODULE_8__.ContextMenu(this.j);
5732
5995
  }
5733
5996
  updateContent() {
5734
5997
  const container = this.container;
@@ -5881,7 +6144,7 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
5881
6144
  const header = this.j.c.div(this.getFullElName('tool-header'));
5882
6145
  const icon = this.j.c.div(this.getFullElName('tool-icon'));
5883
6146
  icon.classList.add(this.getFullElName('tool-icon', toolCall.status, true));
5884
- icon.textContent = '';
6147
+ icon.innerHTML = jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__.Icon.get('tool-bolt') || '';
5885
6148
  const name = this.j.c.div(this.getFullElName('tool-name'));
5886
6149
  name.textContent = this.j.i18n(toolCall.name);
5887
6150
  const status = this.j.c.div(this.getFullElName('tool-status'));
@@ -5909,7 +6172,12 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
5909
6172
  type: 'button',
5910
6173
  class: this.getFullElName('tool-expandable-toggle')
5911
6174
  });
5912
- toggle.textContent = `▶ ${this.j.i18n(title)}`;
6175
+ const chevronSpan = this.j.c.span(this.getFullElName('tool-expandable-chevron'));
6176
+ chevronSpan.innerHTML = jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_7__.Icon.get('chevron-right') || '';
6177
+ const titleSpan = this.j.c.span();
6178
+ titleSpan.textContent = this.j.i18n(title);
6179
+ toggle.appendChild(chevronSpan);
6180
+ toggle.appendChild(titleSpan);
5913
6181
  const contentEl = this.j.c.element('pre', {
5914
6182
  class: this.getFullElName('tool-expandable-content')
5915
6183
  });
@@ -5919,10 +6187,10 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
5919
6187
  const isCurrentlyExpanded = contentEl.style.display !== 'none';
5920
6188
  if (isCurrentlyExpanded) {
5921
6189
  contentEl.style.display = 'none';
5922
- toggle.textContent = `▶ ${this.j.i18n(title)}`;
6190
+ toggle.classList.remove('expanded');
5923
6191
  } else {
5924
6192
  contentEl.style.display = 'block';
5925
- toggle.textContent = `▼ ${this.j.i18n(title)}`;
6193
+ toggle.classList.add('expanded');
5926
6194
  }
5927
6195
  });
5928
6196
  section.appendChild(toggle);
@@ -5933,14 +6201,14 @@ class UIMessageListItem extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_4__.U
5933
6201
  * Get tool status text
5934
6202
  */ getToolStatusText(status) {
5935
6203
  const statusMap = {
5936
- pending: '',
5937
- approved: '',
5938
- denied: '',
5939
- executing: '',
5940
- executed: '',
5941
- error: ''
6204
+ pending: 'pending',
6205
+ approved: 'approved',
6206
+ denied: 'denied',
6207
+ executing: 'running',
6208
+ executed: 'done',
6209
+ error: 'error'
5942
6210
  };
5943
- return statusMap[status] || '●';
6211
+ return statusMap[status] || status;
5944
6212
  }
5945
6213
  /**
5946
6214
  * Format message content using custom formatter
@@ -6135,6 +6403,7 @@ UIMessageList = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decor
6135
6403
  /* harmony import */ var jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67510);
6136
6404
  /* harmony import */ var jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62843);
6137
6405
  /* harmony import */ var jodit_esm_core_ui_form_inputs_select_select__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12234);
6406
+ /* harmony import */ var jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(12153);
6138
6407
  /*!
6139
6408
  * Jodit Editor PRO (https://xdsoft.net/jodit/)
6140
6409
  * See LICENSE.md in the project root for license information.
@@ -6145,6 +6414,7 @@ UIMessageList = (0,_swc_helpers_ts_decorate__WEBPACK_IMPORTED_MODULE_1__.__decor
6145
6414
 
6146
6415
 
6147
6416
 
6417
+
6148
6418
  class UIPermissionRequest extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__.UIElement {
6149
6419
  className() {
6150
6420
  return 'UIPermissionRequest';
@@ -6166,31 +6436,38 @@ class UIPermissionRequest extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__
6166
6436
  <div class="&__title">~Permission Required~</div>
6167
6437
  </div>
6168
6438
  <div class="&__tool-info"></div>
6169
- <div class="&__actions"></div>
6439
+ <div class="&__actions">
6440
+ <div class="&__actions-buttons"></div>
6441
+ <div class="&__actions-scope"></div>
6442
+ </div>
6170
6443
  </div>`;
6171
6444
  }
6172
6445
  afterRender() {
6446
+ // Set icon
6447
+ const iconEl = this.getElm('icon');
6448
+ if (iconEl) {
6449
+ iconEl.innerHTML = jodit_esm_core_ui_icon__WEBPACK_IMPORTED_MODULE_6__.Icon.get('shield') || '';
6450
+ }
6173
6451
  this.createControls();
6174
6452
  this.updateContent();
6175
6453
  }
6176
6454
  createControls() {
6177
- const actionsContainer = this.getElm('actions');
6455
+ const buttonsContainer = this.getElm('actions-buttons');
6456
+ const scopeContainer = this.getElm('actions-scope');
6178
6457
  // Deny button
6179
6458
  this.denyButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
6180
- icon: {
6181
- name: 'cancel'
6182
- },
6183
- variant: 'danger',
6184
- size: 'small'
6459
+ text: this.j.i18n('Deny'),
6460
+ variant: 'initial',
6461
+ size: 'small',
6462
+ name: 'deny-permission'
6185
6463
  });
6186
6464
  this.j.e.on(this.denyButton, 'click', this.onDeny);
6187
6465
  // Approve button
6188
6466
  this.approveButton = new jodit_esm_core_ui_button__WEBPACK_IMPORTED_MODULE_4__.UIButton(this.j, {
6189
- icon: {
6190
- name: 'check'
6191
- },
6192
- variant: 'success',
6193
- size: 'small'
6467
+ text: this.j.i18n('Allow'),
6468
+ variant: 'initial',
6469
+ size: 'small',
6470
+ name: 'approve-permission'
6194
6471
  });
6195
6472
  this.j.e.on(this.approveButton, 'click', this.onApprove);
6196
6473
  // Scope select
@@ -6212,9 +6489,9 @@ class UIPermissionRequest extends jodit_esm_core_ui__WEBPACK_IMPORTED_MODULE_3__
6212
6489
  ]
6213
6490
  });
6214
6491
  this.scopeSelect.value = this.state.defaultPermissionScope;
6215
- actionsContainer.appendChild(this.denyButton.container);
6216
- actionsContainer.appendChild(this.approveButton.container);
6217
- actionsContainer.appendChild(this.scopeSelect.container);
6492
+ buttonsContainer.appendChild(this.denyButton.container);
6493
+ buttonsContainer.appendChild(this.approveButton.container);
6494
+ scopeContainer.appendChild(this.scopeSelect.container);
6218
6495
  }
6219
6496
  updateContent() {
6220
6497
  if (!this.toolCall) return;