@ckeditor/ckeditor5-ai 48.8.1-alpha.4 → 49.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/aiactions/aiactions.d.ts +109 -73
  3. package/dist/aiactions/model/aiactionsinteraction.d.ts +58 -50
  4. package/dist/aiactions/model/aiactionsreply.d.ts +18 -11
  5. package/dist/aiassistant/adapters/aiadapter.d.ts +48 -48
  6. package/dist/aiassistant/adapters/aitextadapter.d.ts +133 -133
  7. package/dist/aiassistant/adapters/awstextadapter.d.ts +42 -42
  8. package/dist/aiassistant/adapters/openaitextadapter.d.ts +184 -184
  9. package/dist/aiassistant/aiassistant.d.ts +425 -436
  10. package/dist/aiassistant/aiassistantediting.d.ts +51 -51
  11. package/dist/aiassistant/aiassistantui.d.ts +50 -53
  12. package/dist/aiassistant/legacyerrors.d.ts +0 -4
  13. package/dist/aiassistant/ui/aiassistantcontroller.d.ts +106 -105
  14. package/dist/aiassistant/ui/form/aiformcontentarea.d.ts +43 -43
  15. package/dist/aiassistant/ui/form/aiformerrorview.d.ts +19 -19
  16. package/dist/aiassistant/ui/form/aiformpromptview.d.ts +38 -38
  17. package/dist/aiassistant/ui/form/aiformtoolbarview.d.ts +50 -50
  18. package/dist/aiassistant/ui/form/aiformview.d.ts +121 -121
  19. package/dist/aiassistant/ui/form/aihistorylistitemview.d.ts +13 -13
  20. package/dist/aiassistant/ui/form/aihistorylistview.d.ts +27 -27
  21. package/dist/aiassistant/ui/form/prompthistory.d.ts +15 -15
  22. package/dist/aiassistant/ui/showaiassistantcommand.d.ts +35 -35
  23. package/dist/aiassistant/utils/common-translations.d.ts +6 -6
  24. package/dist/aiassistant/utils/normalizecommandsconfig.d.ts +9 -9
  25. package/dist/aiballoon/aiballoon.d.ts +85 -89
  26. package/dist/aiballoon/ui/aiballoondisclaimerview.d.ts +17 -0
  27. package/dist/aiballoon/ui/aiballoontoolbarview.d.ts +56 -0
  28. package/dist/aiballoon/ui/aiballoonview.d.ts +74 -27
  29. package/dist/aiballoon/utils/contentwidth.d.ts +1 -0
  30. package/dist/aichat/aichat.d.ts +88 -87
  31. package/dist/aichat/aichatballoon.d.ts +88 -79
  32. package/dist/aichat/aichatcontroller.d.ts +284 -258
  33. package/dist/aichat/aichatui.d.ts +352 -328
  34. package/dist/aichat/model/aichatcontext.d.ts +655 -654
  35. package/dist/aichat/model/aichatconversation.d.ts +270 -269
  36. package/dist/aichat/model/aichatinteraction.d.ts +45 -49
  37. package/dist/aichat/ui/aichatballoonview.d.ts +73 -101
  38. package/dist/aichat/ui/aichatcontrolsview.d.ts +121 -125
  39. package/dist/aichat/ui/aichatfeedview.d.ts +145 -128
  40. package/dist/aichat/ui/aichatview.d.ts +42 -40
  41. package/dist/aichat/ui/controls/aichatchipsoverflowmanager.d.ts +73 -63
  42. package/dist/aichat/ui/controls/aichatcontextitembuttonview.d.ts +41 -41
  43. package/dist/aichat/ui/controls/aichatcontextpanelurlinputview.d.ts +79 -79
  44. package/dist/aichat/ui/controls/aichatcontextpanelview.d.ts +110 -100
  45. package/dist/aichat/ui/controls/aichatdropzoneview.d.ts +30 -0
  46. package/dist/aichat/ui/controls/aichatpromptcapabilitiesview.d.ts +72 -81
  47. package/dist/aichat/ui/controls/aichatpromptinputview.d.ts +50 -44
  48. package/dist/aichat/ui/controls/aichatpromptsuggestionslistview.d.ts +13 -13
  49. package/dist/aichat/ui/controls/resources/aichatcontextresourceslistview.d.ts +44 -44
  50. package/dist/aichat/ui/controls/resources/aichatcontextresourcesview.d.ts +52 -52
  51. package/dist/aichat/ui/controls/resources/aichatresourcelistitemview.d.ts +57 -56
  52. package/dist/aichat/ui/controls/resources/aichatresourcesballoonview.d.ts +104 -100
  53. package/dist/aichat/ui/controls/resources/aichatresourcessearchinputview.d.ts +53 -53
  54. package/dist/aichat/ui/feed/aichatfeedcontextchipsview.d.ts +22 -22
  55. package/dist/aichat/ui/feed/aichatfeedcustomelementview.d.ts +30 -34
  56. package/dist/aichat/ui/feed/aichatfeederroritemview.d.ts +30 -33
  57. package/dist/aichat/ui/feed/aichatfeedinteractionheaderview.d.ts +24 -24
  58. package/dist/aichat/ui/feed/aichatfeeditemview.d.ts +39 -39
  59. package/dist/aichat/ui/feed/aichatfeedreplyitemview.d.ts +40 -40
  60. package/dist/aichat/ui/feed/aichatfeedsuggestionitemactionsview.d.ts +62 -63
  61. package/dist/aichat/ui/feed/aichatfeedsuggestionitemview.d.ts +87 -82
  62. package/dist/aichat/ui/feed/aichatfeedusermessageitem.d.ts +33 -33
  63. package/dist/aichat/utils/eventnames.d.ts +8 -4
  64. package/dist/aichat/utils/parsesingleurl.d.ts +1 -0
  65. package/dist/aichat/utils/promisequeue.d.ts +26 -25
  66. package/dist/aichat/utils/readdatatransferfiles.d.ts +14 -0
  67. package/dist/aichat/utils/resolvepaste.d.ts +71 -0
  68. package/dist/aichathistory/aichathistory.d.ts +26 -26
  69. package/dist/aichathistory/aichathistorycontroller.d.ts +36 -35
  70. package/dist/aichathistory/aichathistoryui.d.ts +80 -89
  71. package/dist/aichathistory/model/aichathistoryconversations.d.ts +95 -102
  72. package/dist/aichathistory/model/aichathistoryitem.d.ts +52 -53
  73. package/dist/aichathistory/ui/aichathistorylistitemview.d.ts +41 -40
  74. package/dist/aichathistory/ui/aichathistorylistview.d.ts +28 -28
  75. package/dist/aichathistory/ui/aichathistorysectionlistview.d.ts +16 -16
  76. package/dist/aichathistory/ui/aichathistoryview.d.ts +33 -33
  77. package/dist/aichatshortcuts/aichatshortcuts.d.ts +295 -295
  78. package/dist/aichatshortcuts/ui/aichatshortcutsview.d.ts +24 -18
  79. package/dist/aichatshortcuts/ui/aichatshortcutview.d.ts +18 -18
  80. package/dist/aiconfig.d.ts +362 -227
  81. package/dist/aicore/aiconnector.d.ts +428 -334
  82. package/dist/aicore/aicore.d.ts +53 -0
  83. package/dist/aicore/aiediting.d.ts +103 -88
  84. package/dist/aicore/aierrorreporter.d.ts +101 -0
  85. package/dist/aicore/aigateway.d.ts +135 -0
  86. package/dist/aicore/errors/aicoreerror.d.ts +67 -0
  87. package/dist/aicore/errors/geterrorcode.d.ts +17 -0
  88. package/dist/aicore/errors/isaborterror.d.ts +12 -0
  89. package/dist/aicore/errors/normalizeerror.d.ts +23 -0
  90. package/dist/aicore/model/aicapabilities.d.ts +69 -53
  91. package/dist/aicore/model/aicontext.d.ts +116 -77
  92. package/dist/aicore/model/aicontextlibrary.d.ts +71 -0
  93. package/dist/aicore/model/aicontextref.d.ts +37 -0
  94. package/dist/aicore/model/aidefaultcontext.d.ts +83 -0
  95. package/dist/aicore/model/aieditorroot.d.ts +26 -0
  96. package/dist/aicore/model/aiinteraction.d.ts +162 -162
  97. package/dist/aicore/model/aimodels.d.ts +80 -76
  98. package/dist/aicore/model/aireply.d.ts +129 -121
  99. package/dist/aicore/model/airunresult.d.ts +43 -0
  100. package/dist/aicore/model/airunsinglerootresult.d.ts +104 -0
  101. package/dist/aicore/pipeline/airesponseapplier.d.ts +284 -296
  102. package/dist/aicore/pipeline/airesponseparser.d.ts +24 -23
  103. package/dist/aicore/ui/aidisclaimerview.d.ts +12 -13
  104. package/dist/aicore/ui/aidotsloader.d.ts +18 -0
  105. package/dist/aicore/ui/aiheaderview.d.ts +27 -28
  106. package/dist/aicore/ui/aimodelselectorview.d.ts +151 -0
  107. package/dist/aicore/ui/aiseparatorview.d.ts +25 -0
  108. package/dist/aicore/ui/aiskeleton.d.ts +43 -32
  109. package/dist/aicore/ui/aispinner.d.ts +10 -11
  110. package/dist/aicore/ui/suggestioncontainer/aiminitoolbarview.d.ts +55 -56
  111. package/dist/aicore/ui/suggestioncontainer/aisuggestionbodyview.d.ts +95 -80
  112. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontainerview.d.ts +45 -46
  113. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentpartheaderview.d.ts +67 -37
  114. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentpartstateview.d.ts +21 -31
  115. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentparttoolbarview.d.ts +46 -21
  116. package/dist/aicore/ui/suggestioncontainer/aisuggestioncontentpartview.d.ts +91 -58
  117. package/dist/aicore/ui/suggestioncontainer/aisuggestionheaderview.d.ts +26 -35
  118. package/dist/aicore/ui/suggestioncontainer/aisuggestionstreamablecontentview.d.ts +30 -27
  119. package/dist/aicore/ui/suggestioncontainer/aiwebsourcesview.d.ts +24 -24
  120. package/dist/aicore/utils/abortabletimeout.d.ts +11 -11
  121. package/dist/aicore/utils/aitabids.d.ts +11 -0
  122. package/dist/aicore/utils/builddocumentsuggestionsmap.d.ts +30 -0
  123. package/dist/aicore/utils/buttonclasses.d.ts +17 -8
  124. package/dist/aicore/utils/cleanupstreamingartifacts.d.ts +12 -0
  125. package/dist/aicore/utils/common-translations.d.ts +6 -6
  126. package/dist/aicore/utils/contentparttranslationkeys.d.ts +27 -0
  127. package/dist/aicore/utils/createresizebutton.d.ts +8 -9
  128. package/dist/aicore/utils/createstartconversationbutton.d.ts +7 -8
  129. package/dist/aicore/utils/documentposition.d.ts +37 -37
  130. package/dist/aicore/utils/documentrange.d.ts +41 -41
  131. package/dist/aicore/utils/eventnames.d.ts +5 -5
  132. package/dist/aicore/utils/geteditorconfig.d.ts +107 -0
  133. package/dist/aicore/utils/geteditorsfromcontext.d.ts +18 -0
  134. package/dist/aicore/utils/getmodeldisplaymode.d.ts +21 -0
  135. package/dist/aicore/utils/getoperationsfordocumentsuggestions.d.ts +20 -0
  136. package/dist/aicore/utils/getrootinfo.d.ts +45 -0
  137. package/dist/aicore/utils/getsuggestionpartsfromreply.d.ts +24 -18
  138. package/dist/aicore/utils/htmlparser.d.ts +23 -16
  139. package/dist/aicore/utils/htmlstreamer.d.ts +79 -79
  140. package/dist/aicore/utils/inlineroot.d.ts +1 -0
  141. package/dist/aicore/utils/istrackchangesenabled.d.ts +23 -0
  142. package/dist/aicore/utils/markoperationsasai.d.ts +21 -0
  143. package/dist/aicore/utils/replyactions.d.ts +13 -0
  144. package/dist/aicore/utils/scrollmanager.d.ts +24 -23
  145. package/dist/aicore/utils/showaitab.d.ts +1 -0
  146. package/dist/aidocumentprocessing/aidocumentprocessinggateway.d.ts +110 -0
  147. package/dist/aidocumentprocessing/model/aidocumentprocessingrunresult.d.ts +19 -0
  148. package/dist/aieditorintegration/aieditorintegration.d.ts +42 -32
  149. package/dist/aieditorintegration/aitogglebutton/aitogglebuttonui.d.ts +33 -34
  150. package/dist/aieditorintegration/aitogglebutton/toggleaicommand.d.ts +12 -12
  151. package/dist/aiquickactions/aiquickactions.d.ts +303 -252
  152. package/dist/aiquickactions/aiquickactionscommand.d.ts +10 -10
  153. package/dist/aiquickactions/aiquickactionsediting.d.ts +22 -22
  154. package/dist/aiquickactions/aiquickactionsui.d.ts +131 -124
  155. package/dist/aiquickactions/ui/aiquickactionsbuttoncreator.d.ts +57 -57
  156. package/dist/aiquickactions/ui/aiquickactionsdropdowncontentview.d.ts +45 -45
  157. package/dist/aiquickactions/ui/aiquickactionsdropdowncreator.d.ts +59 -59
  158. package/dist/aiquickactions/ui/aiquickactionsfilteredlistview.d.ts +0 -4
  159. package/dist/aiquickactions/ui/balloon/aiactionsballoonview.d.ts +73 -136
  160. package/dist/aiquickactions/ui/dropdownmenubuttonwithhighlightview.d.ts +24 -24
  161. package/dist/aireviewcore/aireviewcorecheckregistry.d.ts +37 -0
  162. package/dist/aireviewcore/aireviewcorecontroller.d.ts +48 -23
  163. package/dist/aireviewcore/aireviewcoreediting.d.ts +296 -224
  164. package/dist/aireviewcore/aireviewcoreui.d.ts +109 -85
  165. package/dist/aireviewcore/model/aichecksinglerootresult.d.ts +22 -0
  166. package/dist/aireviewcore/model/aireviewcheck.d.ts +49 -49
  167. package/dist/aireviewcore/model/aireviewchecklist.d.ts +29 -28
  168. package/dist/aireviewcore/model/aireviewcheckresult.d.ts +36 -35
  169. package/dist/aireviewcore/model/aireviewcheckresultchange.d.ts +62 -50
  170. package/dist/aireviewcore/model/aireviewcheckrun.d.ts +174 -147
  171. package/dist/aireviewcore/model/aireviewsystemcheckrun.d.ts +16 -16
  172. package/dist/aireviewcore/types.d.ts +30 -24
  173. package/dist/aireviewcore/ui/aireviewcoreabstractchecklistview.d.ts +50 -0
  174. package/dist/aireviewcore/ui/aireviewcorechecklistitemresultview.d.ts +53 -76
  175. package/dist/aireviewcore/ui/aireviewcorecompletereviewdropdown.d.ts +29 -0
  176. package/dist/aireviewcore/ui/aireviewcorecustomcheckview.d.ts +38 -56
  177. package/dist/aireviewcore/ui/aireviewcorefinishreviewbuttonview.d.ts +8 -9
  178. package/dist/aireviewcore/ui/aireviewcoregeneralerrorview.d.ts +20 -20
  179. package/dist/aireviewcore/ui/aireviewcorenavigationpanelview.d.ts +169 -0
  180. package/dist/aireviewcore/ui/aireviewcoreprogressbarview.d.ts +32 -0
  181. package/dist/aireviewcore/ui/aireviewcorepromptinputview.d.ts +25 -25
  182. package/dist/aireviewcore/ui/aireviewcorereviewchecklistview.d.ts +42 -23
  183. package/dist/aireviewcore/ui/aireviewcorereviewcommandlistitemview.d.ts +49 -39
  184. package/dist/aireviewcore/ui/aireviewcorereviewcompletedview.d.ts +13 -14
  185. package/dist/aireviewcore/ui/aireviewcoreuicheckresultsview.d.ts +114 -87
  186. package/dist/aireviewcore/ui/aireviewcoreview.d.ts +54 -50
  187. package/dist/aireviewcore/ui/changeevents.d.ts +49 -0
  188. package/dist/aireviewcore/ui/form/aireviewcoreformdropdown.d.ts +16 -16
  189. package/dist/aireviewcore/ui/form/aireviewcoreformmanager.d.ts +12 -12
  190. package/dist/aireviewcore/utils/openleaveconfirmationdialog.d.ts +21 -0
  191. package/dist/aireviewcore/utils/reviewcontentpart.d.ts +25 -0
  192. package/dist/aireviewmode/aireviewcheckdefinitions.d.ts +12 -12
  193. package/dist/aireviewmode/aireviewgateway.d.ts +172 -0
  194. package/dist/aireviewmode/aireviewmode.d.ts +260 -126
  195. package/dist/aireviewmode/aireviewmodecheckregistry.d.ts +46 -0
  196. package/dist/aireviewmode/aireviewmodecontroller.d.ts +24 -17
  197. package/dist/aireviewmode/aireviewmodeui.d.ts +17 -17
  198. package/dist/aireviewmode/model/aireviewcheckcustom.d.ts +16 -16
  199. package/dist/aireviewmode/model/aireviewcheckextra.d.ts +35 -30
  200. package/dist/aireviewmode/model/aireviewcustomcheckrun.d.ts +18 -17
  201. package/dist/aireviewmode/model/aireviewextracheckrun.d.ts +15 -15
  202. package/dist/aireviewmode/model/aireviewmodechecklist.d.ts +22 -18
  203. package/dist/aireviewmode/ui/aireviewmodecheckresultsview.d.ts +41 -0
  204. package/dist/aisdk/dataidassigner.d.ts +20 -0
  205. package/dist/aisdk/documentchanges.d.ts +165 -0
  206. package/dist/aisdk/documentchangesutils.d.ts +15 -0
  207. package/dist/aisdk/documentcompare.d.ts +171 -0
  208. package/dist/aisdk/documentcompareutils.d.ts +16 -0
  209. package/dist/aisdk/documentsnapshot.d.ts +48 -0
  210. package/dist/aisdk/extractselectionfromhtml.d.ts +27 -0
  211. package/dist/aisdk/validateoperations.d.ts +43 -0
  212. package/dist/aitabs/aitabs.d.ts +104 -84
  213. package/dist/aitabs/aitabsmainview.d.ts +70 -46
  214. package/dist/aitabs/tabs/aitabsview.d.ts +191 -188
  215. package/dist/aitranslate/aitranslate.d.ts +165 -129
  216. package/dist/aitranslate/aitranslatecheckregistry.d.ts +27 -0
  217. package/dist/aitranslate/aitranslatecontroller.d.ts +18 -15
  218. package/dist/aitranslate/aitranslategateway.d.ts +89 -0
  219. package/dist/aitranslate/aitranslateui.d.ts +17 -18
  220. package/dist/aitranslate/model/aitranslatecheck.d.ts +12 -12
  221. package/dist/aitranslate/model/aitranslatechecklist.d.ts +11 -11
  222. package/dist/aitranslate/model/aitranslatecheckrun.d.ts +24 -23
  223. package/dist/aitranslate/ui/aitranslatechecklistview.d.ts +28 -7
  224. package/dist/aitranslate/ui/aitranslatecheckresultsview.d.ts +11 -11
  225. package/dist/augmentation.d.ts +79 -63
  226. package/dist/errors.d.ts +0 -4
  227. package/dist/errorsmap.d.ts +5 -5
  228. package/dist/index-content.css +0 -96
  229. package/dist/index-editor.css +3948 -3291
  230. package/dist/index.css +3959 -3307
  231. package/dist/index.d.ts +83 -59
  232. package/dist/index.js +19 -6
  233. package/dist/translations/af.js +1 -1
  234. package/dist/translations/af.umd.js +1 -1
  235. package/dist/translations/ar.js +1 -1
  236. package/dist/translations/ar.umd.js +1 -1
  237. package/dist/translations/ast.js +1 -1
  238. package/dist/translations/ast.umd.js +1 -1
  239. package/dist/translations/az.js +1 -1
  240. package/dist/translations/az.umd.js +1 -1
  241. package/dist/translations/be.js +1 -1
  242. package/dist/translations/be.umd.js +1 -1
  243. package/dist/translations/bg.js +1 -1
  244. package/dist/translations/bg.umd.js +1 -1
  245. package/dist/translations/bn.js +1 -1
  246. package/dist/translations/bn.umd.js +1 -1
  247. package/dist/translations/bs.js +1 -1
  248. package/dist/translations/bs.umd.js +1 -1
  249. package/dist/translations/ca.js +1 -1
  250. package/dist/translations/ca.umd.js +1 -1
  251. package/dist/translations/cs.js +1 -1
  252. package/dist/translations/cs.umd.js +1 -1
  253. package/dist/translations/da.js +1 -1
  254. package/dist/translations/da.umd.js +1 -1
  255. package/dist/translations/de-ch.js +1 -1
  256. package/dist/translations/de-ch.umd.js +1 -1
  257. package/dist/translations/de.js +1 -1
  258. package/dist/translations/de.umd.js +1 -1
  259. package/dist/translations/el.js +1 -1
  260. package/dist/translations/el.umd.js +1 -1
  261. package/dist/translations/en-au.js +1 -1
  262. package/dist/translations/en-au.umd.js +1 -1
  263. package/dist/translations/en-gb.js +1 -1
  264. package/dist/translations/en-gb.umd.js +1 -1
  265. package/dist/translations/en.js +1 -1
  266. package/dist/translations/en.umd.js +1 -1
  267. package/dist/translations/eo.js +1 -1
  268. package/dist/translations/eo.umd.js +1 -1
  269. package/dist/translations/es-co.js +1 -1
  270. package/dist/translations/es-co.umd.js +1 -1
  271. package/dist/translations/es.js +1 -1
  272. package/dist/translations/es.umd.js +1 -1
  273. package/dist/translations/et.js +1 -1
  274. package/dist/translations/et.umd.js +1 -1
  275. package/dist/translations/eu.js +1 -1
  276. package/dist/translations/eu.umd.js +1 -1
  277. package/dist/translations/fa.js +1 -1
  278. package/dist/translations/fa.umd.js +1 -1
  279. package/dist/translations/fi.js +1 -1
  280. package/dist/translations/fi.umd.js +1 -1
  281. package/dist/translations/fr.js +1 -1
  282. package/dist/translations/fr.umd.js +1 -1
  283. package/dist/translations/gl.js +1 -1
  284. package/dist/translations/gl.umd.js +1 -1
  285. package/dist/translations/gu.js +1 -1
  286. package/dist/translations/gu.umd.js +1 -1
  287. package/dist/translations/he.js +1 -1
  288. package/dist/translations/he.umd.js +1 -1
  289. package/dist/translations/hi.js +1 -1
  290. package/dist/translations/hi.umd.js +1 -1
  291. package/dist/translations/hr.js +1 -1
  292. package/dist/translations/hr.umd.js +1 -1
  293. package/dist/translations/hu.js +1 -1
  294. package/dist/translations/hu.umd.js +1 -1
  295. package/dist/translations/hy.js +1 -1
  296. package/dist/translations/hy.umd.js +1 -1
  297. package/dist/translations/id.js +1 -1
  298. package/dist/translations/id.umd.js +1 -1
  299. package/dist/translations/it.js +1 -1
  300. package/dist/translations/it.umd.js +1 -1
  301. package/dist/translations/ja.js +1 -1
  302. package/dist/translations/ja.umd.js +1 -1
  303. package/dist/translations/jv.js +1 -1
  304. package/dist/translations/jv.umd.js +1 -1
  305. package/dist/translations/kk.js +1 -1
  306. package/dist/translations/kk.umd.js +1 -1
  307. package/dist/translations/km.js +1 -1
  308. package/dist/translations/km.umd.js +1 -1
  309. package/dist/translations/kn.js +1 -1
  310. package/dist/translations/kn.umd.js +1 -1
  311. package/dist/translations/ko.js +1 -1
  312. package/dist/translations/ko.umd.js +1 -1
  313. package/dist/translations/ku.js +1 -1
  314. package/dist/translations/ku.umd.js +1 -1
  315. package/dist/translations/lt.js +1 -1
  316. package/dist/translations/lt.umd.js +1 -1
  317. package/dist/translations/lv.js +1 -1
  318. package/dist/translations/lv.umd.js +1 -1
  319. package/dist/translations/ms.js +1 -1
  320. package/dist/translations/ms.umd.js +1 -1
  321. package/dist/translations/nb.js +1 -1
  322. package/dist/translations/nb.umd.js +1 -1
  323. package/dist/translations/ne.js +1 -1
  324. package/dist/translations/ne.umd.js +1 -1
  325. package/dist/translations/nl.js +1 -1
  326. package/dist/translations/nl.umd.js +1 -1
  327. package/dist/translations/no.js +1 -1
  328. package/dist/translations/no.umd.js +1 -1
  329. package/dist/translations/oc.js +1 -1
  330. package/dist/translations/oc.umd.js +1 -1
  331. package/dist/translations/pl.js +1 -1
  332. package/dist/translations/pl.umd.js +1 -1
  333. package/dist/translations/pt-br.js +1 -1
  334. package/dist/translations/pt-br.umd.js +1 -1
  335. package/dist/translations/pt.js +1 -1
  336. package/dist/translations/pt.umd.js +1 -1
  337. package/dist/translations/ro.js +1 -1
  338. package/dist/translations/ro.umd.js +1 -1
  339. package/dist/translations/ru.js +1 -1
  340. package/dist/translations/ru.umd.js +1 -1
  341. package/dist/translations/si.js +1 -1
  342. package/dist/translations/si.umd.js +1 -1
  343. package/dist/translations/sk.js +1 -1
  344. package/dist/translations/sk.umd.js +1 -1
  345. package/dist/translations/sl.js +1 -1
  346. package/dist/translations/sl.umd.js +1 -1
  347. package/dist/translations/sq.js +1 -1
  348. package/dist/translations/sq.umd.js +1 -1
  349. package/dist/translations/sr-latn.js +1 -1
  350. package/dist/translations/sr-latn.umd.js +1 -1
  351. package/dist/translations/sr.js +1 -1
  352. package/dist/translations/sr.umd.js +1 -1
  353. package/dist/translations/sv.js +1 -1
  354. package/dist/translations/sv.umd.js +1 -1
  355. package/dist/translations/th.js +1 -1
  356. package/dist/translations/th.umd.js +1 -1
  357. package/dist/translations/ti.js +1 -1
  358. package/dist/translations/ti.umd.js +1 -1
  359. package/dist/translations/tk.js +1 -1
  360. package/dist/translations/tk.umd.js +1 -1
  361. package/dist/translations/tr.js +1 -1
  362. package/dist/translations/tr.umd.js +1 -1
  363. package/dist/translations/tt.js +1 -1
  364. package/dist/translations/tt.umd.js +1 -1
  365. package/dist/translations/ug.js +1 -1
  366. package/dist/translations/ug.umd.js +1 -1
  367. package/dist/translations/uk.js +1 -1
  368. package/dist/translations/uk.umd.js +1 -1
  369. package/dist/translations/ur.js +1 -1
  370. package/dist/translations/ur.umd.js +1 -1
  371. package/dist/translations/uz.js +1 -1
  372. package/dist/translations/uz.umd.js +1 -1
  373. package/dist/translations/vi.js +1 -1
  374. package/dist/translations/vi.umd.js +1 -1
  375. package/dist/translations/zh-cn.js +1 -1
  376. package/dist/translations/zh-cn.umd.js +1 -1
  377. package/dist/translations/zh.js +1 -1
  378. package/dist/translations/zh.umd.js +1 -1
  379. package/package.json +32 -13
  380. package/dist/aichat/ui/controls/aichatcontrolsloaderview.d.ts +0 -12
  381. package/dist/aicore/ui/suggestioncontainer/aisuggestionloaderview.d.ts +0 -16
  382. package/dist/aicore/utils/geteditorfromcontext.d.ts +0 -19
  383. package/dist/aicore/utils/getoperationsfromreply.d.ts +0 -24
  384. package/dist/aiquickactions/ui/balloon/aiactionsballoondisclaimerview.d.ts +0 -17
  385. package/dist/aiquickactions/ui/balloon/aiactionsballoontoolbarview.d.ts +0 -37
  386. package/dist/aireviewcore/ui/aireviewcoreballoonsuggestionview.d.ts +0 -38
  387. package/dist/aitabs/tabs/tabbuttonview.d.ts +0 -47
  388. package/dist/aitabs/tabs/tabpanelview.d.ts +0 -44
@@ -0,0 +1,171 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aisdk/documentcompare
7
+ * @publicApi
8
+ */
9
+ import { Plugin, type PluginDependenciesOf } from "@ckeditor/ckeditor5-core";
10
+ import { type Operation, type ModelRange } from "@ckeditor/ckeditor5-engine";
11
+ import { DocumentChanges } from "./documentchanges.js";
12
+ import { DocumentCompareUtils } from "./documentcompareutils.js";
13
+ import { type DocumentCompareSnapshot } from "./documentsnapshot.js";
14
+ /**
15
+ * `DocumentCompare` provides a set of tools that allows you to process editor document data by custom external logic,
16
+ * evaluate the differences between original and processed data, and apply them as granular changes or tracked
17
+ * suggestions.
18
+ *
19
+ * Contrary to `editor.setData()`, this does not replace the whole editor
20
+ * data. Instead, atomic changes are evaluated and a small set of changes is applied to the document. This is especially
21
+ * useful when the editor also uses Track Changes, Revision History, and Real-Time Collaboration features.
22
+ *
23
+ * Use {@link #process `process()`}, to run the whole pipeline in one call - it takes document snapshot, processes the data,
24
+ * and applies granular changes:
25
+ *
26
+ * ```ts
27
+ * await documentCompare.process( async snapshot => callMyService( snapshot.content ) );
28
+ *
29
+ * // Or, to apply changes as suggestions:
30
+ * await documentCompare.process( async snapshot => callMyService( snapshot.content ), { asSuggestions: true } );
31
+ * ```
32
+ *
33
+ * Some integrations need to process the data in separate steps (e.g. backend processing, or when changes
34
+ * are not applied immediately to the content). In this case, you can capture a snapshot first and apply the result later:
35
+ *
36
+ * ```ts
37
+ * const snapshot = documentCompare.makeSnapshot();
38
+ * const processed = await callMyService( snapshot.content );
39
+ *
40
+ * // ...
41
+ *
42
+ * const patch = documentCompare.diffSnapshot( snapshot, processed, { asSuggestions: true } );
43
+ * documentCompare.applyPatch( patch );
44
+ * ```
45
+ */
46
+ export declare class DocumentCompare extends Plugin {
47
+ static get pluginName(): "DocumentCompare";
48
+ static get requires(): PluginDependenciesOf<[DocumentChanges, DocumentCompareUtils]>;
49
+ static override get isOfficialPlugin(): true;
50
+ static override get isPremiumPlugin(): true;
51
+ init(): void;
52
+ afterInit(): void;
53
+ /**
54
+ * Captures the current document state as a {@link module:ai/aisdk/documentsnapshot~DocumentCompareSnapshot}.
55
+ *
56
+ * The snapshot contains all data and metadata necessary to process the data and then be able to calculate differences between
57
+ * the original data and the processed data.
58
+ *
59
+ * Importantly, `snapshot.content` holds data for each root (excluding `$graveyard`) serialized to HTML. The data is stamped with
60
+ * `data-id` attributes, assigned to structural elements of the data. During processing, make sure that these `data-id`s are retained.
61
+ *
62
+ * See also {@link module:ai/aisdk/documentsnapshot~DocumentCompareSnapshot}.
63
+ *
64
+ * @param selection Ranges to capture with the snapshot as the user's selection. Must not intersect. By default no
65
+ * selection is captured.
66
+ * @returns The captured snapshot.
67
+ */
68
+ makeSnapshot(selection?: Iterable<ModelRange>): DocumentCompareSnapshot;
69
+ /**
70
+ * Diffs the snapshot against processed data, returning a document patch - a set of granular differences between the two states.
71
+ *
72
+ * Use `options` to set whether the patch should be calculated and applied as tracked changes or as direct changes to the document.
73
+ *
74
+ * You can apply the patch using {@link #applyPatch}.
75
+ *
76
+ * @param snapshot The captured before-state to diff against.
77
+ * @param data The processed data. For multi-root editor, pass an object keyed by root name.
78
+ * @param options How the comparison is computed.
79
+ * @returns The patch bringing the document from the snapshot to the processed state.
80
+ */
81
+ diffSnapshot(snapshot: DocumentCompareSnapshot, data: string | Record<string, string>, options?: DocumentCompareDiffOptions): DocumentComparePatch;
82
+ /**
83
+ * Applies a patch to the current state of the document.
84
+ *
85
+ * As a result, all changes described by the patch are reflected in the document. Note, that this converges with all
86
+ * changes that happened on the document after the snapshot was made, including both local and remote edits
87
+ * (if real-time collaboration is enabled).
88
+ *
89
+ * Note, that the patch can be only applied to the same document as the snapshot, and only during the same editing session.
90
+ * Otherwise, `documentcompare-apply-session-mismatch` error is thrown.
91
+ *
92
+ * The patch is first validated against a copy of the document before anything is committed.
93
+ * In case if any errors or conflict resolution problems surface during this dry-run, `documentcompare-invalid-patch`
94
+ * error is thrown, and the editor data is left intact.
95
+ *
96
+ * The changes can be applied directly to the content or as tracked suggestions (requires
97
+ * {@link module:track-changes/trackchanges~TrackChanges Track changes plugin}). See also {@link #diffSnapshot}.
98
+ *
99
+ * @param patch The patch to apply, as produced by {@link #diffSnapshot}.
100
+ */
101
+ applyPatch(patch: DocumentComparePatch): void;
102
+ /**
103
+ * Runs the whole processing pipeline in one call: snapshots the document, hands the snapshot to `callback` for
104
+ * external processing (e.g. an AI service), then diffs returned data and applies granular changes to the document.
105
+ *
106
+ * If diffing or applying fails, the underlying error is rethrown and can be further handled,
107
+ * unless `options.overwriteOnError` is set, in which case the current document is instead
108
+ * fully replaced with the processed data, the same way as if `editor.setData()` was used.
109
+ * In this case, changes that happened to the document after the snapshot was taken will be overwritten.
110
+ *
111
+ * @param callback Receives the captured snapshot and returns the processed data keyed by root name.
112
+ * @param options Additional processing options.
113
+ * @returns `true` when the process finished successfully and changes were applied granularly,
114
+ * `false` when the full-replacement fallback was used.
115
+ */
116
+ process(callback: (snapshot: DocumentCompareSnapshot) => Promise<string | Record<string, string>>, options?: DocumentCompareProcessOptions): Promise<boolean>;
117
+ }
118
+ /**
119
+ * Describes how a comparison is computed and, once recorded on a {@link ~DocumentComparePatch patch}, how it is applied.
120
+ */
121
+ export interface DocumentCompareDiffOptions {
122
+ /**
123
+ * Whether the operations carry track-changes suggestion markers.
124
+ */
125
+ asSuggestions?: boolean;
126
+ }
127
+ /**
128
+ * Options for {@link module:ai/aisdk/documentcompare~DocumentCompare#process}.
129
+ */
130
+ export interface DocumentCompareProcessOptions extends DocumentCompareDiffOptions {
131
+ /**
132
+ * What to do when the processing fails.
133
+ *
134
+ * By default, the underlying error is rethrown.
135
+ *
136
+ * When the options is set to `true`, the whole document is instead overwritten with the processed data
137
+ * via `editor.setData()` and {@link module:ai/aisdk/documentcompare~DocumentCompare#process} returns `false`.
138
+ *
139
+ * Note, that the overwrite is also performed in real-time collaboration environment, and it may roll back some edits made by remote
140
+ * users while `callback` was processing. Opt in only when overwriting the whole document is acceptable.
141
+ */
142
+ overwriteOnError?: boolean;
143
+ }
144
+ /**
145
+ * The result of comparing a snapshot against processed data: the operations to bring the document to the new state,
146
+ * together with the snapshot metadata.
147
+ *
148
+ * Can be applied via {@link module:ai/aisdk/documentcompare~DocumentCompare#applyPatch}.
149
+ */
150
+ export interface DocumentComparePatch {
151
+ /**
152
+ * The channel of the document the snapshot was captured from, validated on apply.
153
+ */
154
+ channelId: string;
155
+ /**
156
+ * The editing session the snapshot was captured in, validated on apply.
157
+ */
158
+ sessionId: string;
159
+ /**
160
+ * The snapshot version the operations are anchored to (used to reconcile them on apply).
161
+ */
162
+ version: number;
163
+ /**
164
+ * The options the patch was computed with, reused when applying it.
165
+ */
166
+ options: DocumentCompareDiffOptions;
167
+ /**
168
+ * The operations to apply, keyed by root name (a root with no changes maps to an empty array).
169
+ */
170
+ operations: Record<string, Array<Operation>>;
171
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aisdk/documentcompareutils
7
+ * @publicApi
8
+ */
9
+ import { Plugin } from "@ckeditor/ckeditor5-core";
10
+ export declare class DocumentCompareUtils extends Plugin {
11
+ static get pluginName(): "DocumentCompareUtils";
12
+ static override get isOfficialPlugin(): true;
13
+ static override get isPremiumPlugin(): true;
14
+ init(): void;
15
+ override destroy(): void;
16
+ }
@@ -0,0 +1,48 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aisdk/documentsnapshot
7
+ * @publicApi
8
+ */
9
+ import { type AIEditorConfig } from "../aicore/utils/geteditorconfig.js";
10
+ /**
11
+ * A captured selection range as character offsets into its root's serialized HTML.
12
+ */
13
+ export interface DocumentCompareSnapshotRange {
14
+ start: number;
15
+ end: number;
16
+ }
17
+ /**
18
+ * The captured before-state of a document plus the metadata to reconcile changes later.
19
+ * The snapshot is a plain object and is safe to `JSON.stringify`, send between the frontend and backend, store, parse,
20
+ * and later feed back into `DocumentCompare#diffSnapshot`.
21
+ */
22
+ export interface DocumentCompareSnapshot {
23
+ /**
24
+ * The collaboration channel the snapshot was captured from.
25
+ */
26
+ channelId: string;
27
+ /**
28
+ * The editing session the snapshot was captured in.
29
+ */
30
+ sessionId: string;
31
+ /**
32
+ * The document version the snapshot was captured at.
33
+ */
34
+ version: number;
35
+ /**
36
+ * Each root's content, serialized to HTML, keyed by root name (excluding `$graveyard`).
37
+ */
38
+ content: Record<string, string>;
39
+ /**
40
+ * Each root's captured selection as character offsets into its HTML, keyed by root name (omitted if root has no selection).
41
+ */
42
+ selection: Record<string, Array<DocumentCompareSnapshotRange>>;
43
+ /**
44
+ * The editor's feature configuration at capture time, so external processing can interpret the serialized HTML
45
+ * within the editor's capabilities.
46
+ */
47
+ editorConfig: AIEditorConfig;
48
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aisdk/extractselectionfromhtml
7
+ */
8
+ import { type DocumentCompareSnapshotRange } from "./documentsnapshot.js";
9
+ /**
10
+ * The marker group used to render a captured selection into serialized HTML. Each range is added as
11
+ * `documentcompare-selection:<i>` and downcast (opt-in via the `includeDocumentCompareSelection` option) to the
12
+ * boundary elements below.
13
+ */
14
+ export declare const SELECTION_MARKER = "documentcompare-selection";
15
+ /** The boundary element names the selection markers downcast to. */
16
+ export declare const SELECTION_START = "documentcompare-selection-start";
17
+ export declare const SELECTION_END = "documentcompare-selection-end";
18
+ /**
19
+ * Strips the selection boundary elements from HTML serialized with the `includeDocumentCompareSelection` option.
20
+ *
21
+ * @param html HTML serialized with the selection boundary elements included.
22
+ * @returns The clean HTML together with the selection as character offsets into it.
23
+ */
24
+ export declare function extractSelectionFromHtml(html: string): {
25
+ content: string;
26
+ selection: Array<DocumentCompareSnapshotRange>;
27
+ };
@@ -0,0 +1,43 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ /**
6
+ * @module ai/aisdk/validateoperations
7
+ */
8
+ import { type Editor } from "@ckeditor/ckeditor5-core";
9
+ import { type Operation } from "@ckeditor/ckeditor5-engine";
10
+ /**
11
+ * A failure found by {@link ~validateOperations} while trial-applying a patch's operations.
12
+ */
13
+ export interface OperationValidationFailure {
14
+ /**
15
+ * What kind of failure occurred: `'unsupported'` for an operation the `DocumentCompare` API does not support,
16
+ * `'invalid'` for one that failed to trial-apply against a copy of the current document.
17
+ */
18
+ reason: string;
19
+ /**
20
+ * The operation that failed.
21
+ */
22
+ operation: Operation;
23
+ /**
24
+ * The underlying error thrown while trial-applying the operation, set when `reason` is `'invalid'`.
25
+ */
26
+ cause?: Error;
27
+ }
28
+ /**
29
+ * Trial-applies `operations` on temporary copies of the document's roots, to confirm they apply cleanly before they are
30
+ * applied for real, so an unapplicable set is caught up front instead of failing mid-way, leaving the document corrupt.
31
+ *
32
+ * Each root (plus the graveyard, for remove/merge targets) is deep-cloned into a detached
33
+ * {@link module:engine/model/documentfragment~ModelDocumentFragment}, and every operation is cloned and re-rooted onto
34
+ * those copies and trial-applied there — `_validate()` then `_execute()`, as the real apply runs them. Marker
35
+ * operations are skipped: they cannot fail structurally, so there is nothing to validate. Nothing is applied to the
36
+ * live document.
37
+ *
38
+ * The function does not throw errors itself, instead it returns the first failure it finds (or `null` when the
39
+ * operations all apply cleanly), and leaves it to the caller to throw the appropriate error.
40
+ *
41
+ * @returns The first operation failure, or `null` when all operations apply cleanly.
42
+ */
43
+ export declare function validateOperations(editor: Editor, operations: Array<Operation>): OperationValidationFailure | null;
@@ -1,95 +1,115 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module ai/aitabs/aitabs
7
- * @publicApi
8
- */
9
- import { type Context, ContextPlugin, Editor } from '@ckeditor/ckeditor5-core';
10
- import { AITabsMainView } from './aitabsmainview.js';
11
- import type { AIContainerSide, AIContainerType } from '../aiconfig.js';
6
+ * @module ai/aitabs/aitabs
7
+ * @publicApi
8
+ */
9
+ import { type Context, ContextPlugin, Editor } from "@ckeditor/ckeditor5-core";
10
+ import { type BodyCollection } from "@ckeditor/ckeditor5-ui";
11
+ import { AITabsMainView } from "./aitabsmainview.js";
12
+ import type { AIContainerSide, AIContainerType } from "../aiconfig.js";
12
13
  /**
13
- * The AI Tabs plugin. It delivers the tabs view that hosts AI-powered features in the editor
14
- * such as {@link module:ai/aichat/aichat~AIChat AI Chat}, {@link module:ai/aiquickactions/aiquickactions~AIQuickActions AI Quick Actions},
15
- * and {@link module:ai/aireviewmode/aireviewmode~AIReviewMode AI Review Mode}.
16
- *
17
- * The feature is configured via the {@link module:ai/aiconfig~AIConfig#container `config.ai.container`} property.
18
- *
19
- * Learn more about AI features in CKEditor in the {@glink features/ai/ckeditor-ai-overview AI Overview} documentation.
20
- *
21
- * @experimental **Experimental:** This is a production-ready API but may change in minor releases
22
- * without the standard deprecation policy. Check the changelog for migration guidance.
23
- */
14
+ * The AI Tabs plugin. It delivers the tabs view that hosts AI-powered features in the editor
15
+ * such as {@link module:ai/aichat/aichat~AIChat AI Chat}, {@link module:ai/aiquickactions/aiquickactions~AIQuickActions AI Quick Actions},
16
+ * and {@link module:ai/aireviewmode/aireviewmode~AIReviewMode AI Review Mode}.
17
+ *
18
+ * The feature is configured via the {@link module:ai/aiconfig~AIConfig#container `config.ai.container`} property.
19
+ *
20
+ * Learn more about AI features in CKEditor in the {@glink features/ai/ckeditor-ai-overview AI Overview} documentation.
21
+ *
22
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
23
+ * without the standard deprecation policy. Check the changelog for migration guidance.
24
+ */
24
25
  export declare class AITabs extends ContextPlugin {
25
- /**
26
- * The view that allows for hosting AI-powered features in the editor.
27
- */
28
- view: AITabsMainView;
29
- /**
30
- * The container of the AI Tabs view.
31
- */
32
- container: HTMLElement | null;
33
- /**
34
- * Indicates whether the resize button should be displayed.
35
- */
36
- showResizeButton: boolean;
37
- /**
38
- * The type of the AI Tabs view as configured in {@link module:ai/aiconfig~AIConfig#container}
39
- *
40
- * See {@link #switchType} to learn how to switch between the UI types.
41
- */
42
- type: AIContainerType;
43
- /**
44
- * The position of the AI Tabs view.
45
- *
46
- * @default 'right'
47
- */
48
- side: AIContainerSide;
49
- /**
50
- * @inheritDoc
51
- */
52
- static get pluginName(): "AITabs";
53
- /**
54
- * @inheritDoc
55
- */
56
- static get isOfficialPlugin(): true;
57
- /**
58
- * @inheritDoc
59
- */
60
- static get isPremiumPlugin(): true;
61
- /**
62
- * @inheritDoc
63
- */
64
- constructor(context: Context | Editor);
65
- /**
66
- * Switches between the UI type of the tabs.
67
- *
68
- * See {@link module:ai/aiconfig~AIConfig#container} to learn more about possible types.
69
- */
70
- switchType(type: AIContainerType): void;
71
- /**
72
- * Switches between the side of the AI Tabs view.
73
- *
74
- * See {@link module:ai/aiconfig~AIConfig#container} to learn more about possible sides.
75
- */
76
- switchSide(side: AIContainerSide): void;
77
- /**
78
- * @inheritDoc
79
- */
80
- destroy(): void;
26
+ /**
27
+ * The view that allows for hosting AI-powered features in the editor.
28
+ */
29
+ view: AITabsMainView;
30
+ /**
31
+ * The body collection holding the floating UI of the AI features – their balloons, dialogs and the
32
+ * tooltips inside them.
33
+ *
34
+ * Every AI feature that renders floating UI adds its views here instead of mounting a body collection of
35
+ * its own. A collection of their own would go into `document.body`, which is outside whatever shadow root
36
+ * the AI UI lives in: the views would render unstyled, and their tooltips would be hosted in an unrelated
37
+ * tree.
38
+ */
39
+ get bodyCollection(): BodyCollection;
40
+ /**
41
+ * The container the AI Tabs view is mounted in.
42
+ *
43
+ * Observable, and the single source of truth for where the tabs are: setting it moves the view into the new
44
+ * container and re-mounts the floating UI of every AI feature in the DOM tree that container lives in.
45
+ *
46
+ * The `'custom'` type moves nothing – there the integrator places the tab buttons and panels themselves –
47
+ * so set it to the container they were placed in, which tells the floating UI which tree to join. Left
48
+ * unset, that UI falls back to `document.body`: right in the light DOM, but unstyled inside a shadow root.
49
+ *
50
+ * It may be a shadow root, which is what the `'overlay'` type resolves to when the editors live in one.
51
+ */
52
+ container: HTMLElement | ShadowRoot | null;
53
+ /**
54
+ * Indicates whether the resize button should be displayed.
55
+ */
56
+ showResizeButton: boolean;
57
+ /**
58
+ * The type of the AI Tabs view as configured in {@link module:ai/aiconfig~AIConfig#container}
59
+ *
60
+ * See {@link #switchType} to learn how to switch between the UI types.
61
+ */
62
+ type: AIContainerType;
63
+ /**
64
+ * The position of the AI Tabs view.
65
+ *
66
+ * @default 'right'
67
+ */
68
+ side: AIContainerSide;
69
+ /**
70
+ * @inheritDoc
71
+ */
72
+ static get pluginName(): "AITabs";
73
+ /**
74
+ * @inheritDoc
75
+ */
76
+ static override get isOfficialPlugin(): true;
77
+ /**
78
+ * @inheritDoc
79
+ */
80
+ static override get isPremiumPlugin(): true;
81
+ /**
82
+ * @inheritDoc
83
+ */
84
+ constructor(context: Context | Editor);
85
+ /**
86
+ * Switches between the UI type of the tabs.
87
+ *
88
+ * See {@link module:ai/aiconfig~AIConfig#container} to learn more about possible types.
89
+ */
90
+ switchType(type: AIContainerType): void;
91
+ /**
92
+ * Switches between the side of the AI Tabs view.
93
+ *
94
+ * See {@link module:ai/aiconfig~AIConfig#container} to learn more about possible sides.
95
+ */
96
+ switchSide(side: AIContainerSide): void;
97
+ /**
98
+ * @inheritDoc
99
+ */
100
+ override destroy(): void;
81
101
  }
82
102
  /**
83
- * An event fired when the user wants to toggle the chat resizing.
84
- */
103
+ * An event fired when the user wants to toggle the chat resizing.
104
+ */
85
105
  export type AIResizedTabsEvent = {
86
- name: 'resizedTabs';
87
- args: [isMaximized: boolean];
106
+ name: "resizedTabs";
107
+ args: [isMaximized: boolean];
88
108
  };
89
109
  /**
90
- * An event fired when the user wants to resize the chat.
91
- */
110
+ * An event fired when the user wants to resize the chat.
111
+ */
92
112
  export type AIResizeTabsEvent = {
93
- name: 'resizeTabs';
94
- args: [];
113
+ name: "resizeTabs";
114
+ args: [];
95
115
  };
@@ -1,58 +1,82 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module ai/aitabs/aitabsmainview
7
- * @publicApi
8
- */
9
- import type { Locale } from '@ckeditor/ckeditor5-utils';
10
- import { AITabsView, type AITabsViewOptions } from './tabs/aitabsview.js';
11
- import '../../theme/aitabs/aitabsview.css';
6
+ * @module ai/aitabs/aitabsmainview
7
+ * @publicApi
8
+ */
9
+ import { type Locale } from "@ckeditor/ckeditor5-utils";
10
+ import { AITabsView, type AITabsViewOptions } from "./tabs/aitabsview.js";
12
11
  /**
13
- * The supported types of the `AITabsView`.
14
- */
12
+ * The supported types of the `AITabsView`.
13
+ */
15
14
  export declare const AI_TABS_VIEW_TYPES: readonly ["overlay", "sidebar", "custom"];
16
15
  /**
17
- * The supported sides of the `AITabsView`.
18
- */
16
+ * The supported sides of the `AITabsView`.
17
+ */
19
18
  export declare const AI_TABS_VIEW_SIDES: readonly ["left", "right"];
20
19
  /**
21
- * The view that hosts AI-powered features in the editor.
22
- *
23
- * @experimental **Experimental:** This is a production-ready API but may change in minor releases
24
- * without the standard deprecation policy. Check the changelog for migration guidance.
25
- */
20
+ * The view that hosts AI-powered features in the editor.
21
+ *
22
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
23
+ * without the standard deprecation policy. Check the changelog for migration guidance.
24
+ */
26
25
  export declare class AITabsMainView extends AITabsView {
27
- /**
28
- * The type of the view.
29
- */
30
- type: AITabsMainViewOptions['type'];
31
- /**
32
- * Whether the AI tabs view is visible.
33
- *
34
- * @observable
35
- */
36
- isVisible: boolean;
37
- /**
38
- * @inheritDoc
39
- */
40
- constructor(locale: Locale, options?: AITabsMainViewOptions);
26
+ /**
27
+ * The type of the view.
28
+ */
29
+ type: AITabsMainViewOptions["type"];
30
+ /**
31
+ * Whether the AI tabs view is visible.
32
+ *
33
+ * @observable
34
+ */
35
+ isVisible: boolean;
36
+ /**
37
+ * @inheritDoc
38
+ */
39
+ constructor(locale: Locale, options?: AITabsMainViewOptions);
40
+ /**
41
+ * Activates a tab by its ID.
42
+ *
43
+ * Note: Use {@link #getTabIds} to learn how to get the IDs of all tabs.
44
+ *
45
+ * Note: If `null` is passed, the current active tab will be deactivated and its panel will be hidden.
46
+ *
47
+ * The call may be vetoed by a listener (for example a feature warning about unresolved changes before
48
+ * switching away), in which case this method is a no-op and returns `false`. Use
49
+ * `forceActivateTab()` to switch tabs unconditionally, bypassing any such veto, or
50
+ * `activateTabAwaitingConfirmation()` for callers that want to wait for the user's answer instead of
51
+ * treating a veto as a hard failure.
52
+ *
53
+ * `AITabsView#activateTab()` mutates state and only notifies listeners *after* the fact (via its own
54
+ * internal `activateTab:${id}` event), so it cannot be safely wrapped with `this.decorate()` — the
55
+ * decorated proxy would be re-entered by that internal event under the same base event name. Overriding
56
+ * the method to fire a distinctly-named event first, before delegating to `super.activateTab()`, gives
57
+ * listeners a genuine pre-mutation veto point instead.
58
+ *
59
+ * @experimental **Experimental:** This is a production-ready API but may change in minor releases
60
+ * without the standard deprecation policy. Check the changelog for migration guidance.
61
+ *
62
+ * @returns `true` if the tab was actually activated, `false` if a listener vetoed the switch.
63
+ */
64
+ override activateTab(id: string | null): boolean;
41
65
  }
42
66
  /**
43
- * The options for the `AITabsView` class constructor.
44
- */
67
+ * The options for the `AITabsView` class constructor.
68
+ */
45
69
  export type AITabsMainViewOptions = AITabsViewOptions & {
46
- /**
47
- * The type of the AI Tabs view. The possible values are:
48
- *
49
- * * `'overlay'` - the tabs are displayed as an overlay on top of the web page,
50
- * * `'sidebar'` - the tabs are displayed in a user-defined container,
51
- * * `'custom'` - the tabs are displayed as a custom UI, the integrator is responsible for the layout.
52
- */
53
- type?: (typeof AI_TABS_VIEW_TYPES)[number];
54
- /**
55
- * Whether the AI interface should be visible when created.
56
- */
57
- visibleByDefault?: boolean;
70
+ /**
71
+ * The type of the AI Tabs view. The possible values are:
72
+ *
73
+ * * `'overlay'` - the tabs are displayed as an overlay on top of the web page,
74
+ * * `'sidebar'` - the tabs are displayed in a user-defined container,
75
+ * * `'custom'` - the tabs are displayed as a custom UI, the integrator is responsible for the layout.
76
+ */
77
+ type?: (typeof AI_TABS_VIEW_TYPES)[number];
78
+ /**
79
+ * Whether the AI interface should be visible when created.
80
+ */
81
+ visibleByDefault?: boolean;
58
82
  };