@ckeditor/ckeditor5-ui 41.3.1 → 41.4.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 (392) hide show
  1. package/dist/index-content.css +4 -0
  2. package/dist/index-editor.css +497 -0
  3. package/dist/index.css +942 -0
  4. package/dist/index.css.map +1 -0
  5. package/dist/index.js +14343 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/translations/af.d.ts +8 -0
  8. package/dist/translations/af.js +5 -0
  9. package/dist/translations/af.umd.js +11 -0
  10. package/dist/translations/ar.d.ts +8 -0
  11. package/dist/translations/ar.js +5 -0
  12. package/dist/translations/ar.umd.js +11 -0
  13. package/dist/translations/ast.d.ts +8 -0
  14. package/dist/translations/ast.js +5 -0
  15. package/dist/translations/ast.umd.js +11 -0
  16. package/dist/translations/az.d.ts +8 -0
  17. package/dist/translations/az.js +5 -0
  18. package/dist/translations/az.umd.js +11 -0
  19. package/dist/translations/bg.d.ts +8 -0
  20. package/dist/translations/bg.js +5 -0
  21. package/dist/translations/bg.umd.js +11 -0
  22. package/dist/translations/bn.d.ts +8 -0
  23. package/dist/translations/bn.js +5 -0
  24. package/dist/translations/bn.umd.js +11 -0
  25. package/dist/translations/bs.d.ts +8 -0
  26. package/dist/translations/bs.js +5 -0
  27. package/dist/translations/bs.umd.js +11 -0
  28. package/dist/translations/ca.d.ts +8 -0
  29. package/dist/translations/ca.js +5 -0
  30. package/dist/translations/ca.umd.js +11 -0
  31. package/dist/translations/cs.d.ts +8 -0
  32. package/dist/translations/cs.js +5 -0
  33. package/dist/translations/cs.umd.js +11 -0
  34. package/dist/translations/da.d.ts +8 -0
  35. package/dist/translations/da.js +5 -0
  36. package/dist/translations/da.umd.js +11 -0
  37. package/dist/translations/de-ch.d.ts +8 -0
  38. package/dist/translations/de-ch.js +5 -0
  39. package/dist/translations/de-ch.umd.js +11 -0
  40. package/dist/translations/de.d.ts +8 -0
  41. package/dist/translations/de.js +5 -0
  42. package/dist/translations/de.umd.js +11 -0
  43. package/dist/translations/el.d.ts +8 -0
  44. package/dist/translations/el.js +5 -0
  45. package/dist/translations/el.umd.js +11 -0
  46. package/dist/translations/en-au.d.ts +8 -0
  47. package/dist/translations/en-au.js +5 -0
  48. package/dist/translations/en-au.umd.js +11 -0
  49. package/dist/translations/en-gb.d.ts +8 -0
  50. package/dist/translations/en-gb.js +5 -0
  51. package/dist/translations/en-gb.umd.js +11 -0
  52. package/dist/translations/en.d.ts +8 -0
  53. package/dist/translations/en.js +5 -0
  54. package/dist/translations/en.umd.js +11 -0
  55. package/dist/translations/eo.d.ts +8 -0
  56. package/dist/translations/eo.js +5 -0
  57. package/dist/translations/eo.umd.js +11 -0
  58. package/dist/translations/es-co.d.ts +8 -0
  59. package/dist/translations/es-co.js +5 -0
  60. package/dist/translations/es-co.umd.js +11 -0
  61. package/dist/translations/es.d.ts +8 -0
  62. package/dist/translations/es.js +5 -0
  63. package/dist/translations/es.umd.js +11 -0
  64. package/dist/translations/et.d.ts +8 -0
  65. package/dist/translations/et.js +5 -0
  66. package/dist/translations/et.umd.js +11 -0
  67. package/dist/translations/eu.d.ts +8 -0
  68. package/dist/translations/eu.js +5 -0
  69. package/dist/translations/eu.umd.js +11 -0
  70. package/dist/translations/fa.d.ts +8 -0
  71. package/dist/translations/fa.js +5 -0
  72. package/dist/translations/fa.umd.js +11 -0
  73. package/dist/translations/fi.d.ts +8 -0
  74. package/dist/translations/fi.js +5 -0
  75. package/dist/translations/fi.umd.js +11 -0
  76. package/dist/translations/fr.d.ts +8 -0
  77. package/dist/translations/fr.js +5 -0
  78. package/dist/translations/fr.umd.js +11 -0
  79. package/dist/translations/gl.d.ts +8 -0
  80. package/dist/translations/gl.js +5 -0
  81. package/dist/translations/gl.umd.js +11 -0
  82. package/dist/translations/he.d.ts +8 -0
  83. package/dist/translations/he.js +5 -0
  84. package/dist/translations/he.umd.js +11 -0
  85. package/dist/translations/hi.d.ts +8 -0
  86. package/dist/translations/hi.js +5 -0
  87. package/dist/translations/hi.umd.js +11 -0
  88. package/dist/translations/hr.d.ts +8 -0
  89. package/dist/translations/hr.js +5 -0
  90. package/dist/translations/hr.umd.js +11 -0
  91. package/dist/translations/hu.d.ts +8 -0
  92. package/dist/translations/hu.js +5 -0
  93. package/dist/translations/hu.umd.js +11 -0
  94. package/dist/translations/id.d.ts +8 -0
  95. package/dist/translations/id.js +5 -0
  96. package/dist/translations/id.umd.js +11 -0
  97. package/dist/translations/it.d.ts +8 -0
  98. package/dist/translations/it.js +5 -0
  99. package/dist/translations/it.umd.js +11 -0
  100. package/dist/translations/ja.d.ts +8 -0
  101. package/dist/translations/ja.js +5 -0
  102. package/dist/translations/ja.umd.js +11 -0
  103. package/dist/translations/jv.d.ts +8 -0
  104. package/dist/translations/jv.js +5 -0
  105. package/dist/translations/jv.umd.js +11 -0
  106. package/dist/translations/km.d.ts +8 -0
  107. package/dist/translations/km.js +5 -0
  108. package/dist/translations/km.umd.js +11 -0
  109. package/dist/translations/kn.d.ts +8 -0
  110. package/dist/translations/kn.js +5 -0
  111. package/dist/translations/kn.umd.js +11 -0
  112. package/dist/translations/ko.d.ts +8 -0
  113. package/dist/translations/ko.js +5 -0
  114. package/dist/translations/ko.umd.js +11 -0
  115. package/dist/translations/ku.d.ts +8 -0
  116. package/dist/translations/ku.js +5 -0
  117. package/dist/translations/ku.umd.js +11 -0
  118. package/dist/translations/lt.d.ts +8 -0
  119. package/dist/translations/lt.js +5 -0
  120. package/dist/translations/lt.umd.js +11 -0
  121. package/dist/translations/lv.d.ts +8 -0
  122. package/dist/translations/lv.js +5 -0
  123. package/dist/translations/lv.umd.js +11 -0
  124. package/dist/translations/ms.d.ts +8 -0
  125. package/dist/translations/ms.js +5 -0
  126. package/dist/translations/ms.umd.js +11 -0
  127. package/dist/translations/nb.d.ts +8 -0
  128. package/dist/translations/nb.js +5 -0
  129. package/dist/translations/nb.umd.js +11 -0
  130. package/dist/translations/ne.d.ts +8 -0
  131. package/dist/translations/ne.js +5 -0
  132. package/dist/translations/ne.umd.js +11 -0
  133. package/dist/translations/nl.d.ts +8 -0
  134. package/dist/translations/nl.js +5 -0
  135. package/dist/translations/nl.umd.js +11 -0
  136. package/dist/translations/no.d.ts +8 -0
  137. package/dist/translations/no.js +5 -0
  138. package/dist/translations/no.umd.js +11 -0
  139. package/dist/translations/pl.d.ts +8 -0
  140. package/dist/translations/pl.js +5 -0
  141. package/dist/translations/pl.umd.js +11 -0
  142. package/dist/translations/pt-br.d.ts +8 -0
  143. package/dist/translations/pt-br.js +5 -0
  144. package/dist/translations/pt-br.umd.js +11 -0
  145. package/dist/translations/pt.d.ts +8 -0
  146. package/dist/translations/pt.js +5 -0
  147. package/dist/translations/pt.umd.js +11 -0
  148. package/dist/translations/ro.d.ts +8 -0
  149. package/dist/translations/ro.js +5 -0
  150. package/dist/translations/ro.umd.js +11 -0
  151. package/dist/translations/ru.d.ts +8 -0
  152. package/dist/translations/ru.js +5 -0
  153. package/dist/translations/ru.umd.js +11 -0
  154. package/dist/translations/sk.d.ts +8 -0
  155. package/dist/translations/sk.js +5 -0
  156. package/dist/translations/sk.umd.js +11 -0
  157. package/dist/translations/sl.d.ts +8 -0
  158. package/dist/translations/sl.js +5 -0
  159. package/dist/translations/sl.umd.js +11 -0
  160. package/dist/translations/sq.d.ts +8 -0
  161. package/dist/translations/sq.js +5 -0
  162. package/dist/translations/sq.umd.js +11 -0
  163. package/dist/translations/sr-latn.d.ts +8 -0
  164. package/dist/translations/sr-latn.js +5 -0
  165. package/dist/translations/sr-latn.umd.js +11 -0
  166. package/dist/translations/sr.d.ts +8 -0
  167. package/dist/translations/sr.js +5 -0
  168. package/dist/translations/sr.umd.js +11 -0
  169. package/dist/translations/sv.d.ts +8 -0
  170. package/dist/translations/sv.js +5 -0
  171. package/dist/translations/sv.umd.js +11 -0
  172. package/dist/translations/th.d.ts +8 -0
  173. package/dist/translations/th.js +5 -0
  174. package/dist/translations/th.umd.js +11 -0
  175. package/dist/translations/ti.d.ts +8 -0
  176. package/dist/translations/ti.js +5 -0
  177. package/dist/translations/ti.umd.js +11 -0
  178. package/dist/translations/tk.d.ts +8 -0
  179. package/dist/translations/tk.js +5 -0
  180. package/dist/translations/tk.umd.js +11 -0
  181. package/dist/translations/tr.d.ts +8 -0
  182. package/dist/translations/tr.js +5 -0
  183. package/dist/translations/tr.umd.js +11 -0
  184. package/dist/translations/tt.d.ts +8 -0
  185. package/dist/translations/tt.js +5 -0
  186. package/dist/translations/tt.umd.js +11 -0
  187. package/dist/translations/ug.d.ts +8 -0
  188. package/dist/translations/ug.js +5 -0
  189. package/dist/translations/ug.umd.js +11 -0
  190. package/dist/translations/uk.d.ts +8 -0
  191. package/dist/translations/uk.js +5 -0
  192. package/dist/translations/uk.umd.js +11 -0
  193. package/dist/translations/ur.d.ts +8 -0
  194. package/dist/translations/ur.js +5 -0
  195. package/dist/translations/ur.umd.js +11 -0
  196. package/dist/translations/uz.d.ts +8 -0
  197. package/dist/translations/uz.js +5 -0
  198. package/dist/translations/uz.umd.js +11 -0
  199. package/dist/translations/vi.d.ts +8 -0
  200. package/dist/translations/vi.js +5 -0
  201. package/dist/translations/vi.umd.js +11 -0
  202. package/dist/translations/zh-cn.d.ts +8 -0
  203. package/dist/translations/zh-cn.js +5 -0
  204. package/dist/translations/zh-cn.umd.js +11 -0
  205. package/dist/translations/zh.d.ts +8 -0
  206. package/dist/translations/zh.js +5 -0
  207. package/dist/translations/zh.umd.js +11 -0
  208. package/dist/types/arialiveannouncer.d.ts +113 -0
  209. package/dist/types/augmentation.d.ts +92 -0
  210. package/dist/types/autocomplete/autocompleteview.d.ts +85 -0
  211. package/dist/types/bindings/addkeyboardhandlingforgrid.d.ts +31 -0
  212. package/dist/types/bindings/clickoutsidehandler.d.ts +32 -0
  213. package/dist/types/bindings/csstransitiondisablermixin.d.ts +44 -0
  214. package/dist/types/bindings/draggableviewmixin.d.ts +50 -0
  215. package/dist/types/bindings/injectcsstransitiondisabler.d.ts +63 -0
  216. package/dist/types/bindings/preventdefault.d.ts +37 -0
  217. package/dist/types/bindings/submithandler.d.ts +61 -0
  218. package/dist/types/button/button.d.ts +185 -0
  219. package/dist/types/button/buttonlabel.d.ts +38 -0
  220. package/dist/types/button/buttonlabelview.d.ts +35 -0
  221. package/dist/types/button/buttonview.d.ts +189 -0
  222. package/dist/types/button/filedialogbuttonview.d.ts +84 -0
  223. package/dist/types/button/switchbuttonview.d.ts +49 -0
  224. package/dist/types/collapsible/collapsibleview.d.ts +74 -0
  225. package/dist/types/colorgrid/colorgridview.d.ts +136 -0
  226. package/dist/types/colorgrid/colortileview.d.ts +32 -0
  227. package/dist/types/colorgrid/utils.d.ts +51 -0
  228. package/dist/types/colorpicker/colorpickerview.d.ts +177 -0
  229. package/dist/types/colorpicker/utils.d.ts +52 -0
  230. package/dist/types/colorselector/colorgridsfragmentview.d.ts +199 -0
  231. package/dist/types/colorselector/colorpickerfragmentview.d.ts +137 -0
  232. package/dist/types/colorselector/colorselectorview.d.ts +246 -0
  233. package/dist/types/colorselector/documentcolorcollection.d.ts +74 -0
  234. package/dist/types/componentfactory.d.ts +85 -0
  235. package/dist/types/dialog/dialog.d.ts +277 -0
  236. package/dist/types/dialog/dialogactionsview.d.ts +73 -0
  237. package/dist/types/dialog/dialogcontentview.d.ts +31 -0
  238. package/dist/types/dialog/dialogview.d.ts +260 -0
  239. package/dist/types/dropdown/button/dropdownbutton.d.ts +29 -0
  240. package/dist/types/dropdown/button/dropdownbuttonview.d.ts +52 -0
  241. package/dist/types/dropdown/button/splitbuttonview.d.ts +166 -0
  242. package/dist/types/dropdown/dropdownpanelfocusable.d.ts +25 -0
  243. package/dist/types/dropdown/dropdownpanelview.d.ts +66 -0
  244. package/dist/types/dropdown/dropdownview.d.ts +319 -0
  245. package/dist/types/dropdown/utils.d.ts +239 -0
  246. package/dist/types/editableui/editableuiview.d.ts +76 -0
  247. package/dist/types/editableui/inline/inlineeditableuiview.d.ts +44 -0
  248. package/dist/types/editorui/accessibilityhelp/accessibilityhelp.d.ts +55 -0
  249. package/dist/types/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +39 -0
  250. package/dist/types/editorui/bodycollection.d.ts +59 -0
  251. package/dist/types/editorui/boxed/boxededitoruiview.d.ts +44 -0
  252. package/dist/types/editorui/editorui.d.ts +292 -0
  253. package/dist/types/editorui/editoruiview.d.ts +43 -0
  254. package/dist/types/editorui/poweredby.d.ts +75 -0
  255. package/dist/types/focuscycler.d.ts +249 -0
  256. package/dist/types/formheader/formheaderview.d.ts +63 -0
  257. package/dist/types/highlightedtext/highlightedtextview.d.ts +42 -0
  258. package/dist/types/icon/iconview.d.ts +92 -0
  259. package/dist/types/iframe/iframeview.d.ts +54 -0
  260. package/dist/types/index.d.ts +87 -0
  261. package/dist/types/input/inputbase.d.ts +123 -0
  262. package/dist/types/input/inputview.d.ts +40 -0
  263. package/dist/types/inputnumber/inputnumberview.d.ts +53 -0
  264. package/dist/types/inputtext/inputtextview.d.ts +22 -0
  265. package/dist/types/label/labelview.d.ts +40 -0
  266. package/dist/types/labeledfield/labeledfieldview.d.ts +191 -0
  267. package/dist/types/labeledfield/utils.d.ts +127 -0
  268. package/dist/types/labeledinput/labeledinputview.d.ts +129 -0
  269. package/dist/types/list/listitemgroupview.d.ts +63 -0
  270. package/dist/types/list/listitemview.d.ts +40 -0
  271. package/dist/types/list/listseparatorview.d.ts +22 -0
  272. package/dist/types/list/listview.d.ts +128 -0
  273. package/dist/types/menubar/menubarmenubuttonview.d.ts +39 -0
  274. package/dist/types/menubar/menubarmenulistitembuttonview.d.ts +25 -0
  275. package/dist/types/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +27 -0
  276. package/dist/types/menubar/menubarmenulistitemview.d.ts +29 -0
  277. package/dist/types/menubar/menubarmenulistview.d.ts +28 -0
  278. package/dist/types/menubar/menubarmenupanelview.d.ts +57 -0
  279. package/dist/types/menubar/menubarmenuview.d.ts +113 -0
  280. package/dist/types/menubar/menubarview.d.ts +168 -0
  281. package/dist/types/menubar/utils.d.ts +443 -0
  282. package/dist/types/model.d.ts +26 -0
  283. package/dist/types/notification/notification.d.ts +215 -0
  284. package/dist/types/panel/balloon/balloonpanelview.d.ts +689 -0
  285. package/dist/types/panel/balloon/contextualballoon.d.ts +303 -0
  286. package/dist/types/panel/sticky/stickypanelview.d.ts +160 -0
  287. package/dist/types/search/filteredview.d.ts +35 -0
  288. package/dist/types/search/searchinfoview.d.ts +49 -0
  289. package/dist/types/search/searchresultsview.d.ts +58 -0
  290. package/dist/types/search/text/searchtextqueryview.d.ts +80 -0
  291. package/dist/types/search/text/searchtextview.d.ts +223 -0
  292. package/dist/types/spinner/spinnerview.d.ts +29 -0
  293. package/dist/types/template.d.ts +946 -0
  294. package/dist/types/textarea/textareaview.d.ts +108 -0
  295. package/dist/types/toolbar/balloon/balloontoolbar.d.ts +121 -0
  296. package/dist/types/toolbar/block/blockbuttonview.d.ts +39 -0
  297. package/dist/types/toolbar/block/blocktoolbar.d.ts +157 -0
  298. package/dist/types/toolbar/normalizetoolbarconfig.d.ts +44 -0
  299. package/dist/types/toolbar/toolbarlinebreakview.d.ts +22 -0
  300. package/dist/types/toolbar/toolbarseparatorview.d.ts +22 -0
  301. package/dist/types/toolbar/toolbarview.d.ts +271 -0
  302. package/dist/types/tooltipmanager.d.ts +199 -0
  303. package/dist/types/view.d.ts +426 -0
  304. package/dist/types/viewcollection.d.ts +143 -0
  305. package/lang/contexts.json +2 -1
  306. package/lang/translations/af.po +4 -0
  307. package/lang/translations/ar.po +4 -0
  308. package/lang/translations/ast.po +4 -0
  309. package/lang/translations/az.po +4 -0
  310. package/lang/translations/bg.po +4 -0
  311. package/lang/translations/bn.po +4 -0
  312. package/lang/translations/bs.po +4 -0
  313. package/lang/translations/ca.po +4 -0
  314. package/lang/translations/cs.po +4 -0
  315. package/lang/translations/da.po +4 -0
  316. package/lang/translations/de-ch.po +4 -0
  317. package/lang/translations/de.po +4 -0
  318. package/lang/translations/el.po +4 -0
  319. package/lang/translations/en-au.po +4 -0
  320. package/lang/translations/en-gb.po +4 -0
  321. package/lang/translations/en.po +4 -0
  322. package/lang/translations/eo.po +4 -0
  323. package/lang/translations/es-co.po +4 -0
  324. package/lang/translations/es.po +4 -0
  325. package/lang/translations/et.po +4 -0
  326. package/lang/translations/eu.po +4 -0
  327. package/lang/translations/fa.po +4 -0
  328. package/lang/translations/fi.po +4 -0
  329. package/lang/translations/fr.po +4 -0
  330. package/lang/translations/gl.po +4 -0
  331. package/lang/translations/he.po +4 -0
  332. package/lang/translations/hi.po +4 -0
  333. package/lang/translations/hr.po +4 -0
  334. package/lang/translations/hu.po +4 -0
  335. package/lang/translations/id.po +4 -0
  336. package/lang/translations/it.po +4 -0
  337. package/lang/translations/ja.po +4 -0
  338. package/lang/translations/jv.po +4 -0
  339. package/lang/translations/km.po +4 -0
  340. package/lang/translations/kn.po +4 -0
  341. package/lang/translations/ko.po +4 -0
  342. package/lang/translations/ku.po +4 -0
  343. package/lang/translations/lt.po +4 -0
  344. package/lang/translations/lv.po +4 -0
  345. package/lang/translations/ms.po +4 -0
  346. package/lang/translations/nb.po +4 -0
  347. package/lang/translations/ne.po +4 -0
  348. package/lang/translations/nl.po +4 -0
  349. package/lang/translations/no.po +4 -0
  350. package/lang/translations/pl.po +4 -0
  351. package/lang/translations/pt-br.po +4 -0
  352. package/lang/translations/pt.po +4 -0
  353. package/lang/translations/ro.po +4 -0
  354. package/lang/translations/ru.po +4 -0
  355. package/lang/translations/sk.po +4 -0
  356. package/lang/translations/sl.po +4 -0
  357. package/lang/translations/sq.po +4 -0
  358. package/lang/translations/sr-latn.po +4 -0
  359. package/lang/translations/sr.po +4 -0
  360. package/lang/translations/sv.po +4 -0
  361. package/lang/translations/th.po +4 -0
  362. package/lang/translations/ti.po +214 -0
  363. package/lang/translations/tk.po +4 -0
  364. package/lang/translations/tr.po +4 -0
  365. package/lang/translations/tt.po +4 -0
  366. package/lang/translations/ug.po +4 -0
  367. package/lang/translations/uk.po +4 -0
  368. package/lang/translations/ur.po +4 -0
  369. package/lang/translations/uz.po +4 -0
  370. package/lang/translations/vi.po +4 -0
  371. package/lang/translations/zh-cn.po +4 -0
  372. package/lang/translations/zh.po +4 -0
  373. package/package.json +4 -3
  374. package/src/arialiveannouncer.d.ts +34 -23
  375. package/src/arialiveannouncer.js +80 -30
  376. package/src/colorgrid/colortileview.d.ts +1 -1
  377. package/src/colorgrid/colortileview.js +3 -1
  378. package/src/colorpicker/colorpickerview.d.ts +32 -1
  379. package/src/colorpicker/colorpickerview.js +62 -13
  380. package/src/colorselector/colorpickerfragmentview.d.ts +4 -0
  381. package/src/colorselector/colorpickerfragmentview.js +13 -5
  382. package/src/colorselector/colorselectorview.js +1 -0
  383. package/src/index.d.ts +4 -4
  384. package/src/index.js +3 -2
  385. package/src/menubar/utils.d.ts +8 -1
  386. package/src/menubar/utils.js +26 -2
  387. package/src/toolbar/toolbarview.js +2 -3
  388. package/theme/components/arialiveannouncer/arialiveannouncer.css +4 -0
  389. package/theme/components/tooltip/tooltip.css +4 -0
  390. package/theme/globals/globals.css +0 -1
  391. package/theme/mixins/_mediacolors.css +20 -0
  392. package/theme/globals/_reset.css +0 -13
@@ -0,0 +1,271 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/toolbar/toolbarview
11
+ */
12
+ import View from '../view.js';
13
+ import { type FocusableView } from '../focuscycler.js';
14
+ import type ComponentFactory from '../componentfactory.js';
15
+ import type ViewCollection from '../viewcollection.js';
16
+ import type DropdownPanelFocusable from '../dropdown/dropdownpanelfocusable.js';
17
+ import { FocusTracker, KeystrokeHandler, type Locale } from '@ckeditor/ckeditor5-utils';
18
+ import { type ToolbarConfig } from '@ckeditor/ckeditor5-core';
19
+ import '../../theme/components/toolbar/toolbar.css';
20
+ export declare const NESTED_TOOLBAR_ICONS: Record<string, string | undefined>;
21
+ /**
22
+ * The toolbar view class.
23
+ */
24
+ export default class ToolbarView extends View implements DropdownPanelFocusable {
25
+ /**
26
+ * A reference to the options object passed to the constructor.
27
+ */
28
+ readonly options: ToolbarOptions;
29
+ /**
30
+ * A collection of toolbar items (buttons, dropdowns, etc.).
31
+ */
32
+ readonly items: ViewCollection;
33
+ /**
34
+ * Tracks information about the DOM focus in the toolbar.
35
+ */
36
+ readonly focusTracker: FocusTracker;
37
+ /**
38
+ * An instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}
39
+ * to handle keyboard navigation in the toolbar.
40
+ */
41
+ readonly keystrokes: KeystrokeHandler;
42
+ /**
43
+ * A (child) view containing {@link #items toolbar items}.
44
+ */
45
+ readonly itemsView: ItemsView;
46
+ /**
47
+ * A top–level collection aggregating building blocks of the toolbar.
48
+ *
49
+ * ┌───────────────── ToolbarView ─────────────────┐
50
+ * | ┌──────────────── #children ────────────────┐ |
51
+ * | | ┌──────────── #itemsView ───────────┐ | |
52
+ * | | | [ item1 ] [ item2 ] ... [ itemN ] | | |
53
+ * | | └──────────────────────────────────-┘ | |
54
+ * | └───────────────────────────────────────────┘ |
55
+ * └───────────────────────────────────────────────┘
56
+ *
57
+ * By default, it contains the {@link #itemsView} but it can be extended with additional
58
+ * UI elements when necessary.
59
+ */
60
+ readonly children: ViewCollection;
61
+ /**
62
+ * A collection of {@link #items} that take part in the focus cycling
63
+ * (i.e. navigation using the keyboard). Usually, it contains a subset of {@link #items} with
64
+ * some optional UI elements that also belong to the toolbar and should be focusable
65
+ * by the user.
66
+ */
67
+ readonly focusables: ViewCollection<FocusableView>;
68
+ locale: Locale;
69
+ /**
70
+ * Label used by assistive technologies to describe this toolbar element.
71
+ *
72
+ * @observable
73
+ * @default 'Editor toolbar'
74
+ */
75
+ ariaLabel: string;
76
+ /**
77
+ * The maximum width of the toolbar element.
78
+ *
79
+ * **Note**: When set to a specific value (e.g. `'200px'`), the value will affect the behavior of the
80
+ * {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull}
81
+ * option by changing the number of {@link #items} that will be displayed in the toolbar at a time.
82
+ *
83
+ * @observable
84
+ * @default 'auto'
85
+ */
86
+ maxWidth: string;
87
+ /**
88
+ * An additional CSS class added to the {@link #element}.
89
+ *
90
+ * @observable
91
+ * @member {String} #class
92
+ */
93
+ class: string | undefined;
94
+ /**
95
+ * When set true, makes the toolbar look compact with {@link #element}.
96
+ *
97
+ * @observable
98
+ * @default false
99
+ */
100
+ isCompact: boolean;
101
+ /**
102
+ * Controls the orientation of toolbar items. Only available when
103
+ * {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull dynamic items grouping}
104
+ * is **disabled**.
105
+ *
106
+ * @observable
107
+ */
108
+ isVertical: boolean;
109
+ /**
110
+ * Helps cycling over {@link #focusables focusable items} in the toolbar.
111
+ */
112
+ private readonly _focusCycler;
113
+ /**
114
+ * An instance of the active toolbar behavior that shapes its look and functionality.
115
+ *
116
+ * See {@link module:ui/toolbar/toolbarview~ToolbarBehavior} to learn more.
117
+ */
118
+ private readonly _behavior;
119
+ /**
120
+ * Creates an instance of the {@link module:ui/toolbar/toolbarview~ToolbarView} class.
121
+ *
122
+ * Also see {@link #render}.
123
+ *
124
+ * @param locale The localization services instance.
125
+ * @param options Configuration options of the toolbar.
126
+ */
127
+ constructor(locale: Locale, options?: ToolbarOptions);
128
+ /**
129
+ * @inheritDoc
130
+ */
131
+ render(): void;
132
+ /**
133
+ * @inheritDoc
134
+ */
135
+ destroy(): void;
136
+ /**
137
+ * Focuses the first focusable in {@link #focusables}.
138
+ */
139
+ focus(): void;
140
+ /**
141
+ * Focuses the last focusable in {@link #focusables}.
142
+ */
143
+ focusLast(): void;
144
+ /**
145
+ * A utility that expands the plain toolbar configuration into
146
+ * {@link module:ui/toolbar/toolbarview~ToolbarView#items} using a given component factory.
147
+ *
148
+ * @param itemsOrConfig The toolbar items or the entire toolbar configuration object.
149
+ * @param factory A factory producing toolbar items.
150
+ * @param removeItems An array of items names to be removed from the configuration. When present, applies
151
+ * to this toolbar and all nested ones as well.
152
+ */
153
+ fillFromConfig(itemsOrConfig: ToolbarConfig | undefined, factory: ComponentFactory, removeItems?: Array<string>): void;
154
+ /**
155
+ * A utility that expands the plain toolbar configuration into a list of view items using a given component factory.
156
+ *
157
+ * @param itemsOrConfig The toolbar items or the entire toolbar configuration object.
158
+ * @param factory A factory producing toolbar items.
159
+ * @param removeItems An array of items names to be removed from the configuration. When present, applies
160
+ * to this toolbar and all nested ones as well.
161
+ */
162
+ private _buildItemsFromConfig;
163
+ /**
164
+ * Cleans up the {@link module:ui/toolbar/toolbarview~ToolbarView#items} of the toolbar by removing unwanted items and
165
+ * duplicated (obsolete) separators or line breaks.
166
+ *
167
+ * @param items The toolbar items configuration.
168
+ * @param factory A factory producing toolbar items.
169
+ * @param removeItems An array of items names to be removed from the configuration.
170
+ * @returns Items after the clean-up.
171
+ */
172
+ private _cleanItemsConfiguration;
173
+ /**
174
+ * Remove leading, trailing, and duplicated separators (`-` and `|`).
175
+ *
176
+ * @returns Toolbar items after the separator and line break clean-up.
177
+ */
178
+ private _cleanSeparatorsAndLineBreaks;
179
+ /**
180
+ * Creates a user-defined dropdown containing a toolbar with items.
181
+ *
182
+ * @param definition A definition of the nested toolbar dropdown.
183
+ * @param definition.label A label of the dropdown.
184
+ * @param definition.icon An icon of the drop-down. One of 'bold', 'plus', 'text', 'importExport', 'alignLeft',
185
+ * 'paragraph' or an SVG string. When `false` is passed, no icon will be used.
186
+ * @param definition.withText When set `true`, the label of the dropdown will be visible. See
187
+ * {@link module:ui/button/buttonview~ButtonView#withText} to learn more.
188
+ * @param definition.tooltip A tooltip of the dropdown button. See
189
+ * {@link module:ui/button/buttonview~ButtonView#tooltip} to learn more. Defaults to `true`.
190
+ * @param componentFactory Component factory used to create items
191
+ * of the nested toolbar.
192
+ */
193
+ private _createNestedToolbarDropdown;
194
+ }
195
+ /**
196
+ * Fired when some toolbar {@link ~ToolbarView#items} were grouped or ungrouped as a result of some change
197
+ * in the toolbar geometry.
198
+ *
199
+ * **Note**: This event is always fired **once** regardless of the number of items that were be
200
+ * grouped or ungrouped at a time.
201
+ *
202
+ * **Note**: This event is fired only if the items grouping functionality was enabled in
203
+ * the first place (see {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull}).
204
+ *
205
+ * @eventName ~ToolbarView#groupedItemsUpdate
206
+ */
207
+ export type ToolbarViewGroupedItemsUpdateEvent = {
208
+ name: 'groupedItemsUpdate';
209
+ args: [];
210
+ };
211
+ /**
212
+ * An inner block of the {@link module:ui/toolbar/toolbarview~ToolbarView} hosting its
213
+ * {@link module:ui/toolbar/toolbarview~ToolbarView#items}.
214
+ */
215
+ declare class ItemsView extends View {
216
+ /**
217
+ * A collection of items (buttons, dropdowns, etc.).
218
+ */
219
+ readonly children: ViewCollection;
220
+ /**
221
+ * @inheritDoc
222
+ */
223
+ constructor(locale?: Locale);
224
+ }
225
+ /**
226
+ * Options passed to the {@link module:ui/toolbar/toolbarview~ToolbarView#constructor} of the toolbar.
227
+ */
228
+ export interface ToolbarOptions {
229
+ /**
230
+ * When set to `true`, the toolbar will automatically group {@link module:ui/toolbar/toolbarview~ToolbarView#items} that
231
+ * would normally wrap to the next line when there is not enough space to display them in a single row, for
232
+ * instance, if the parent container of the toolbar is narrow. For toolbars in absolutely positioned containers
233
+ * without width restrictions also the {@link module:ui/toolbar/toolbarview~ToolbarOptions#isFloating} option is required to be `true`.
234
+ *
235
+ * See also: {@link module:ui/toolbar/toolbarview~ToolbarView#maxWidth}.
236
+ */
237
+ shouldGroupWhenFull?: boolean;
238
+ /**
239
+ * This option should be enabled for toolbars in absolutely positioned containers without width restrictions
240
+ * to enable automatic {@link module:ui/toolbar/toolbarview~ToolbarView#items} grouping.
241
+ * When this option is set to `true`, the items will stop wrapping to the next line
242
+ * and together with {@link module:ui/toolbar/toolbarview~ToolbarOptions#shouldGroupWhenFull},
243
+ * this will allow grouping them when there is not enough space in a single row.
244
+ */
245
+ isFloating?: boolean;
246
+ }
247
+ /**
248
+ * A class interface defining the behavior of the {@link module:ui/toolbar/toolbarview~ToolbarView}.
249
+ *
250
+ * Toolbar behaviors extend its look and functionality and have an impact on the
251
+ * {@link module:ui/toolbar/toolbarview~ToolbarView#element} template or
252
+ * {@link module:ui/toolbar/toolbarview~ToolbarView#render rendering}. They can be enabled
253
+ * conditionally, e.g. depending on the configuration of the toolbar.
254
+ */
255
+ export interface ToolbarBehavior {
256
+ /**
257
+ * A method called after the toolbar has been {@link module:ui/toolbar/toolbarview~ToolbarView#render rendered}.
258
+ * It can be used to, for example, customize the behavior of the toolbar when its
259
+ * {@link module:ui/toolbar/toolbarview~ToolbarView#element} is available.
260
+ *
261
+ * @param view An instance of the toolbar being rendered.
262
+ */
263
+ render(view: ToolbarView): void;
264
+ /**
265
+ * A method called after the toolbar has been {@link module:ui/toolbar/toolbarview~ToolbarView#destroy destroyed}.
266
+ * It allows cleaning up after the toolbar behavior, for instance, this is the right place to detach
267
+ * event listeners, free up references, etc.
268
+ */
269
+ destroy(): void;
270
+ }
271
+ export {};
@@ -0,0 +1,199 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/tooltipmanager
11
+ */
12
+ import View from './view.js';
13
+ import BalloonPanelView from './panel/balloon/balloonpanelview.js';
14
+ import { type PositioningFunction } from '@ckeditor/ckeditor5-utils';
15
+ import type { Editor } from '@ckeditor/ckeditor5-core';
16
+ import '../theme/components/tooltip/tooltip.css';
17
+ declare const TooltipManager_base: {
18
+ new (): import("@ckeditor/ckeditor5-utils").DomEmitter;
19
+ prototype: import("@ckeditor/ckeditor5-utils").DomEmitter;
20
+ };
21
+ /**
22
+ * A tooltip manager class for the UI of the editor.
23
+ *
24
+ * **Note**: Most likely you do not have to use the `TooltipManager` API listed below in order to display tooltips. Popular
25
+ * {@glink framework/architecture/ui-library UI components} support tooltips out-of-the-box via observable properties
26
+ * (see {@link module:ui/button/buttonview~ButtonView#tooltip} and {@link module:ui/button/buttonview~ButtonView#tooltipPosition}).
27
+ *
28
+ * # Displaying tooltips
29
+ *
30
+ * To display a tooltip, set `data-cke-tooltip-text` attribute on any DOM element:
31
+ *
32
+ * ```ts
33
+ * domElement.dataset.ckeTooltipText = 'My tooltip';
34
+ * ```
35
+ *
36
+ * The tooltip will show up whenever the user moves the mouse over the element or the element gets focus in DOM.
37
+ *
38
+ * # Positioning tooltips
39
+ *
40
+ * To change the position of the tooltip, use the `data-cke-tooltip-position` attribute (`s`, `se`, `sw`, `n`, `e`, or `w`):
41
+ *
42
+ * ```ts
43
+ * domElement.dataset.ckeTooltipText = 'Tooltip to the north';
44
+ * domElement.dataset.ckeTooltipPosition = 'n';
45
+ * ```
46
+ *
47
+ * # Disabling tooltips
48
+ *
49
+ * In order to disable the tooltip temporarily, use the `data-cke-tooltip-disabled` attribute:
50
+ *
51
+ * ```ts
52
+ * domElement.dataset.ckeTooltipText = 'Disabled. For now.';
53
+ * domElement.dataset.ckeTooltipDisabled = 'true';
54
+ * ```
55
+ *
56
+ * # Styling tooltips
57
+ *
58
+ * By default, the tooltip has `.ck-tooltip` class and its text inner `.ck-tooltip__text`.
59
+ *
60
+ * If your tooltip requires custom styling, using `data-cke-tooltip-class` attribute will add additional class to the balloon
61
+ * displaying the tooltip:
62
+ *
63
+ * ```ts
64
+ * domElement.dataset.ckeTooltipText = 'Tooltip with a red text';
65
+ * domElement.dataset.ckeTooltipClass = 'my-class';
66
+ * ```
67
+ *
68
+ * ```css
69
+ * .ck.ck-tooltip.my-class { color: red }
70
+ * ```
71
+ *
72
+ * **Note**: This class is a singleton. All editor instances re-use the same instance loaded by
73
+ * {@link module:ui/editorui/editorui~EditorUI} of the first editor.
74
+ */
75
+ export default class TooltipManager extends TooltipManager_base {
76
+ /**
77
+ * The view rendering text of the tooltip.
78
+ */
79
+ readonly tooltipTextView: View & {
80
+ text: string;
81
+ };
82
+ /**
83
+ * The instance of the balloon panel that renders and positions the tooltip.
84
+ */
85
+ readonly balloonPanelView: BalloonPanelView;
86
+ /**
87
+ * A set of default {@link module:utils/dom/position~PositioningFunction positioning functions} used by the `TooltipManager`
88
+ * to pin tooltips in different positions.
89
+ */
90
+ static defaultBalloonPositions: Record<string, PositioningFunction>;
91
+ /**
92
+ * Stores the reference to the DOM element the tooltip is attached to. `null` when there's no tooltip
93
+ * in the UI.
94
+ */
95
+ private _currentElementWithTooltip;
96
+ /**
97
+ * Stores the current tooltip position. `null` when there's no tooltip in the UI.
98
+ */
99
+ private _currentTooltipPosition;
100
+ /**
101
+ * An instance of the resize observer that keeps track on target element visibility,
102
+ * when it hides the tooltip should also disappear.
103
+ *
104
+ * {@link module:core/editor/editorconfig~EditorConfig#balloonToolbar configuration}.
105
+ */
106
+ private _resizeObserver;
107
+ /**
108
+ * An instance of the mutation observer that keeps track on target element attributes changes.
109
+ */
110
+ private _mutationObserver;
111
+ /**
112
+ * A debounced version of {@link #_pinTooltip}. Tooltips show with a delay to avoid flashing and
113
+ * to improve the UX.
114
+ */
115
+ private _pinTooltipDebounced;
116
+ /**
117
+ * A debounced version of {@link #_unpinTooltip}. Tooltips hide with a delay to allow hovering of their titles.
118
+ */
119
+ private _unpinTooltipDebounced;
120
+ private readonly _watchdogExcluded;
121
+ /**
122
+ * A set of editors the single tooltip manager instance must listen to.
123
+ * This is mostly to handle `EditorUI#update` listeners from individual editors.
124
+ */
125
+ private static _editors;
126
+ /**
127
+ * A reference to the `TooltipManager` instance. The class is a singleton and as such,
128
+ * successive attempts at creating instances should return this instance.
129
+ */
130
+ private static _instance;
131
+ /**
132
+ * Creates an instance of the tooltip manager.
133
+ */
134
+ constructor(editor: Editor);
135
+ /**
136
+ * Destroys the tooltip manager.
137
+ *
138
+ * **Note**: The manager singleton cannot be destroyed until all editors that use it are destroyed.
139
+ *
140
+ * @param editor The editor the manager was created for.
141
+ */
142
+ destroy(editor: Editor): void;
143
+ /**
144
+ * Returns {@link #balloonPanelView} {@link module:utils/dom/position~PositioningFunction positioning functions} for a given position
145
+ * name.
146
+ *
147
+ * @param position Name of the position (`s`, `se`, `sw`, `n`, `e`, or `w`).
148
+ * @returns Positioning functions to be used by the {@link #balloonPanelView}.
149
+ */
150
+ static getPositioningFunctions(position: TooltipPosition): Array<PositioningFunction>;
151
+ /**
152
+ * Handles hiding tooltips on `keydown` in DOM.
153
+ *
154
+ * @param evt An object containing information about the fired event.
155
+ * @param domEvent The DOM event.
156
+ */
157
+ private _onKeyDown;
158
+ /**
159
+ * Handles displaying tooltips on `mouseenter` and `focus` in DOM.
160
+ *
161
+ * @param evt An object containing information about the fired event.
162
+ * @param domEvent The DOM event.
163
+ */
164
+ private _onEnterOrFocus;
165
+ /**
166
+ * Handles hiding tooltips on `mouseleave` and `blur` in DOM.
167
+ *
168
+ * @param evt An object containing information about the fired event.
169
+ * @param domEvent The DOM event.
170
+ */
171
+ private _onLeaveOrBlur;
172
+ /**
173
+ * Handles hiding tooltips on `scroll` in DOM.
174
+ *
175
+ * @param evt An object containing information about the fired event.
176
+ * @param domEvent The DOM event.
177
+ */
178
+ private _onScroll;
179
+ /**
180
+ * Pins the tooltip to a specific DOM element.
181
+ *
182
+ * @param options.text Text of the tooltip to display.
183
+ * @param options.position The position of the tooltip.
184
+ * @param options.cssClass Additional CSS class of the balloon with the tooltip.
185
+ */
186
+ private _pinTooltip;
187
+ /**
188
+ * Unpins the tooltip and cancels all queued pinning.
189
+ */
190
+ private _unpinTooltip;
191
+ /**
192
+ * Updates the position of the tooltip so it stays in sync with the element it is pinned to.
193
+ *
194
+ * Hides the tooltip when the element is no longer visible in DOM or the tooltip text was removed.
195
+ */
196
+ private _updateTooltipPosition;
197
+ }
198
+ export type TooltipPosition = 's' | 'n' | 'e' | 'w' | 'sw' | 'se';
199
+ export {};