@ckeditor/ckeditor5-ui 0.0.0-internal-20241017.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 (677) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +26 -0
  4. package/ckeditor5-metadata.json +25 -0
  5. package/dist/arialiveannouncer.d.ts +113 -0
  6. package/dist/augmentation.d.ts +92 -0
  7. package/dist/autocomplete/autocompleteview.d.ts +85 -0
  8. package/dist/badge/badge.d.ts +133 -0
  9. package/dist/bindings/addkeyboardhandlingforgrid.d.ts +31 -0
  10. package/dist/bindings/clickoutsidehandler.d.ts +34 -0
  11. package/dist/bindings/csstransitiondisablermixin.d.ts +44 -0
  12. package/dist/bindings/draggableviewmixin.d.ts +50 -0
  13. package/dist/bindings/injectcsstransitiondisabler.d.ts +63 -0
  14. package/dist/bindings/preventdefault.d.ts +37 -0
  15. package/dist/bindings/submithandler.d.ts +61 -0
  16. package/dist/button/button.d.ts +179 -0
  17. package/dist/button/buttonlabel.d.ts +38 -0
  18. package/dist/button/buttonlabelview.d.ts +35 -0
  19. package/dist/button/buttonview.d.ts +201 -0
  20. package/dist/button/filedialogbuttonview.d.ts +111 -0
  21. package/dist/button/listitembuttonview.d.ts +82 -0
  22. package/dist/button/switchbuttonview.d.ts +49 -0
  23. package/dist/collapsible/collapsibleview.d.ts +74 -0
  24. package/dist/colorgrid/colorgridview.d.ts +136 -0
  25. package/dist/colorgrid/colortileview.d.ts +32 -0
  26. package/dist/colorgrid/utils.d.ts +51 -0
  27. package/dist/colorpicker/colorpickerview.d.ts +177 -0
  28. package/dist/colorpicker/utils.d.ts +52 -0
  29. package/dist/colorselector/colorgridsfragmentview.d.ts +199 -0
  30. package/dist/colorselector/colorpickerfragmentview.d.ts +137 -0
  31. package/dist/colorselector/colorselectorview.d.ts +246 -0
  32. package/dist/colorselector/documentcolorcollection.d.ts +74 -0
  33. package/dist/componentfactory.d.ts +85 -0
  34. package/dist/dialog/dialog.d.ts +281 -0
  35. package/dist/dialog/dialogactionsview.d.ts +73 -0
  36. package/dist/dialog/dialogcontentview.d.ts +31 -0
  37. package/dist/dialog/dialogview.d.ts +260 -0
  38. package/dist/dropdown/button/dropdownbutton.d.ts +29 -0
  39. package/dist/dropdown/button/dropdownbuttonview.d.ts +52 -0
  40. package/dist/dropdown/button/splitbuttonview.d.ts +166 -0
  41. package/dist/dropdown/dropdownpanelfocusable.d.ts +25 -0
  42. package/dist/dropdown/dropdownpanelview.d.ts +66 -0
  43. package/dist/dropdown/dropdownview.d.ts +332 -0
  44. package/dist/dropdown/menu/dropdownmenubehaviors.d.ts +48 -0
  45. package/dist/dropdown/menu/dropdownmenubuttonview.d.ts +40 -0
  46. package/dist/dropdown/menu/dropdownmenulistitembuttonview.d.ts +21 -0
  47. package/dist/dropdown/menu/dropdownmenulistitemview.d.ts +26 -0
  48. package/dist/dropdown/menu/dropdownmenulistview.d.ts +28 -0
  49. package/dist/dropdown/menu/dropdownmenunestedmenupanelview.d.ts +38 -0
  50. package/dist/dropdown/menu/dropdownmenunestedmenuview.d.ts +135 -0
  51. package/dist/dropdown/menu/dropdownmenurootlistview.d.ts +144 -0
  52. package/dist/dropdown/menu/utils.d.ts +128 -0
  53. package/dist/dropdown/utils.d.ts +297 -0
  54. package/dist/editableui/editableuiview.d.ts +76 -0
  55. package/dist/editableui/inline/inlineeditableuiview.d.ts +48 -0
  56. package/dist/editorui/accessibilityhelp/accessibilityhelp.d.ts +59 -0
  57. package/dist/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +39 -0
  58. package/dist/editorui/bodycollection.d.ts +59 -0
  59. package/dist/editorui/boxed/boxededitoruiview.d.ts +44 -0
  60. package/dist/editorui/editorui.d.ts +358 -0
  61. package/dist/editorui/editoruiview.d.ts +48 -0
  62. package/dist/editorui/evaluationbadge.d.ts +37 -0
  63. package/dist/editorui/poweredby.d.ts +38 -0
  64. package/dist/focuscycler.d.ts +295 -0
  65. package/dist/formheader/formheaderview.d.ts +62 -0
  66. package/dist/highlightedtext/buttonlabelwithhighlightview.d.ts +34 -0
  67. package/dist/highlightedtext/highlightedtextview.d.ts +42 -0
  68. package/dist/highlightedtext/labelwithhighlightview.d.ts +30 -0
  69. package/dist/icon/iconview.d.ts +92 -0
  70. package/dist/iframe/iframeview.d.ts +54 -0
  71. package/dist/index-content.css +4 -0
  72. package/dist/index-editor.css +754 -0
  73. package/dist/index.css +1063 -0
  74. package/dist/index.css.map +1 -0
  75. package/dist/index.d.ts +97 -0
  76. package/dist/index.js +17688 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/input/inputbase.d.ts +123 -0
  79. package/dist/input/inputview.d.ts +40 -0
  80. package/dist/inputnumber/inputnumberview.d.ts +53 -0
  81. package/dist/inputtext/inputtextview.d.ts +22 -0
  82. package/dist/label/labelview.d.ts +40 -0
  83. package/dist/labeledfield/labeledfieldview.d.ts +191 -0
  84. package/dist/labeledfield/utils.d.ts +127 -0
  85. package/dist/labeledinput/labeledinputview.d.ts +129 -0
  86. package/dist/list/listitemgroupview.d.ts +63 -0
  87. package/dist/list/listitemview.d.ts +40 -0
  88. package/dist/list/listseparatorview.d.ts +22 -0
  89. package/dist/list/listview.d.ts +128 -0
  90. package/dist/menubar/menubarmenubuttonview.d.ts +39 -0
  91. package/dist/menubar/menubarmenulistitembuttonview.d.ts +25 -0
  92. package/dist/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +27 -0
  93. package/dist/menubar/menubarmenulistitemview.d.ts +29 -0
  94. package/dist/menubar/menubarmenulistview.d.ts +33 -0
  95. package/dist/menubar/menubarmenupanelview.d.ts +57 -0
  96. package/dist/menubar/menubarmenuview.d.ts +113 -0
  97. package/dist/menubar/menubarview.d.ts +177 -0
  98. package/dist/menubar/utils.d.ts +451 -0
  99. package/dist/model.d.ts +26 -0
  100. package/dist/notification/notification.d.ts +219 -0
  101. package/dist/panel/balloon/balloonpanelview.d.ts +701 -0
  102. package/dist/panel/balloon/contextualballoon.d.ts +313 -0
  103. package/dist/panel/sticky/stickypanelview.d.ts +160 -0
  104. package/dist/search/filteredview.d.ts +35 -0
  105. package/dist/search/filtergroupanditemnames.d.ts +19 -0
  106. package/dist/search/searchinfoview.d.ts +49 -0
  107. package/dist/search/searchresultsview.d.ts +58 -0
  108. package/dist/search/text/searchtextqueryview.d.ts +80 -0
  109. package/dist/search/text/searchtextview.d.ts +223 -0
  110. package/dist/spinner/spinnerview.d.ts +29 -0
  111. package/dist/template.d.ts +946 -0
  112. package/dist/textarea/textareaview.d.ts +108 -0
  113. package/dist/toolbar/balloon/balloontoolbar.d.ts +130 -0
  114. package/dist/toolbar/block/blockbuttonview.d.ts +39 -0
  115. package/dist/toolbar/block/blocktoolbar.d.ts +175 -0
  116. package/dist/toolbar/normalizetoolbarconfig.d.ts +44 -0
  117. package/dist/toolbar/toolbarlinebreakview.d.ts +22 -0
  118. package/dist/toolbar/toolbarseparatorview.d.ts +22 -0
  119. package/dist/toolbar/toolbarview.d.ts +271 -0
  120. package/dist/tooltipmanager.d.ts +192 -0
  121. package/dist/translations/af.d.ts +8 -0
  122. package/dist/translations/af.js +5 -0
  123. package/dist/translations/af.umd.js +11 -0
  124. package/dist/translations/ar.d.ts +8 -0
  125. package/dist/translations/ar.js +5 -0
  126. package/dist/translations/ar.umd.js +11 -0
  127. package/dist/translations/ast.d.ts +8 -0
  128. package/dist/translations/ast.js +5 -0
  129. package/dist/translations/ast.umd.js +11 -0
  130. package/dist/translations/az.d.ts +8 -0
  131. package/dist/translations/az.js +5 -0
  132. package/dist/translations/az.umd.js +11 -0
  133. package/dist/translations/bg.d.ts +8 -0
  134. package/dist/translations/bg.js +5 -0
  135. package/dist/translations/bg.umd.js +11 -0
  136. package/dist/translations/bn.d.ts +8 -0
  137. package/dist/translations/bn.js +5 -0
  138. package/dist/translations/bn.umd.js +11 -0
  139. package/dist/translations/bs.d.ts +8 -0
  140. package/dist/translations/bs.js +5 -0
  141. package/dist/translations/bs.umd.js +11 -0
  142. package/dist/translations/ca.d.ts +8 -0
  143. package/dist/translations/ca.js +5 -0
  144. package/dist/translations/ca.umd.js +11 -0
  145. package/dist/translations/cs.d.ts +8 -0
  146. package/dist/translations/cs.js +5 -0
  147. package/dist/translations/cs.umd.js +11 -0
  148. package/dist/translations/da.d.ts +8 -0
  149. package/dist/translations/da.js +5 -0
  150. package/dist/translations/da.umd.js +11 -0
  151. package/dist/translations/de-ch.d.ts +8 -0
  152. package/dist/translations/de-ch.js +5 -0
  153. package/dist/translations/de-ch.umd.js +11 -0
  154. package/dist/translations/de.d.ts +8 -0
  155. package/dist/translations/de.js +5 -0
  156. package/dist/translations/de.umd.js +11 -0
  157. package/dist/translations/el.d.ts +8 -0
  158. package/dist/translations/el.js +5 -0
  159. package/dist/translations/el.umd.js +11 -0
  160. package/dist/translations/en-au.d.ts +8 -0
  161. package/dist/translations/en-au.js +5 -0
  162. package/dist/translations/en-au.umd.js +11 -0
  163. package/dist/translations/en-gb.d.ts +8 -0
  164. package/dist/translations/en-gb.js +5 -0
  165. package/dist/translations/en-gb.umd.js +11 -0
  166. package/dist/translations/en.d.ts +8 -0
  167. package/dist/translations/en.js +5 -0
  168. package/dist/translations/en.umd.js +11 -0
  169. package/dist/translations/eo.d.ts +8 -0
  170. package/dist/translations/eo.js +5 -0
  171. package/dist/translations/eo.umd.js +11 -0
  172. package/dist/translations/es-co.d.ts +8 -0
  173. package/dist/translations/es-co.js +5 -0
  174. package/dist/translations/es-co.umd.js +11 -0
  175. package/dist/translations/es.d.ts +8 -0
  176. package/dist/translations/es.js +5 -0
  177. package/dist/translations/es.umd.js +11 -0
  178. package/dist/translations/et.d.ts +8 -0
  179. package/dist/translations/et.js +5 -0
  180. package/dist/translations/et.umd.js +11 -0
  181. package/dist/translations/eu.d.ts +8 -0
  182. package/dist/translations/eu.js +5 -0
  183. package/dist/translations/eu.umd.js +11 -0
  184. package/dist/translations/fa.d.ts +8 -0
  185. package/dist/translations/fa.js +5 -0
  186. package/dist/translations/fa.umd.js +11 -0
  187. package/dist/translations/fi.d.ts +8 -0
  188. package/dist/translations/fi.js +5 -0
  189. package/dist/translations/fi.umd.js +11 -0
  190. package/dist/translations/fr.d.ts +8 -0
  191. package/dist/translations/fr.js +5 -0
  192. package/dist/translations/fr.umd.js +11 -0
  193. package/dist/translations/gl.d.ts +8 -0
  194. package/dist/translations/gl.js +5 -0
  195. package/dist/translations/gl.umd.js +11 -0
  196. package/dist/translations/he.d.ts +8 -0
  197. package/dist/translations/he.js +5 -0
  198. package/dist/translations/he.umd.js +11 -0
  199. package/dist/translations/hi.d.ts +8 -0
  200. package/dist/translations/hi.js +5 -0
  201. package/dist/translations/hi.umd.js +11 -0
  202. package/dist/translations/hr.d.ts +8 -0
  203. package/dist/translations/hr.js +5 -0
  204. package/dist/translations/hr.umd.js +11 -0
  205. package/dist/translations/hu.d.ts +8 -0
  206. package/dist/translations/hu.js +5 -0
  207. package/dist/translations/hu.umd.js +11 -0
  208. package/dist/translations/id.d.ts +8 -0
  209. package/dist/translations/id.js +5 -0
  210. package/dist/translations/id.umd.js +11 -0
  211. package/dist/translations/it.d.ts +8 -0
  212. package/dist/translations/it.js +5 -0
  213. package/dist/translations/it.umd.js +11 -0
  214. package/dist/translations/ja.d.ts +8 -0
  215. package/dist/translations/ja.js +5 -0
  216. package/dist/translations/ja.umd.js +11 -0
  217. package/dist/translations/jv.d.ts +8 -0
  218. package/dist/translations/jv.js +5 -0
  219. package/dist/translations/jv.umd.js +11 -0
  220. package/dist/translations/km.d.ts +8 -0
  221. package/dist/translations/km.js +5 -0
  222. package/dist/translations/km.umd.js +11 -0
  223. package/dist/translations/kn.d.ts +8 -0
  224. package/dist/translations/kn.js +5 -0
  225. package/dist/translations/kn.umd.js +11 -0
  226. package/dist/translations/ko.d.ts +8 -0
  227. package/dist/translations/ko.js +5 -0
  228. package/dist/translations/ko.umd.js +11 -0
  229. package/dist/translations/ku.d.ts +8 -0
  230. package/dist/translations/ku.js +5 -0
  231. package/dist/translations/ku.umd.js +11 -0
  232. package/dist/translations/lt.d.ts +8 -0
  233. package/dist/translations/lt.js +5 -0
  234. package/dist/translations/lt.umd.js +11 -0
  235. package/dist/translations/lv.d.ts +8 -0
  236. package/dist/translations/lv.js +5 -0
  237. package/dist/translations/lv.umd.js +11 -0
  238. package/dist/translations/ms.d.ts +8 -0
  239. package/dist/translations/ms.js +5 -0
  240. package/dist/translations/ms.umd.js +11 -0
  241. package/dist/translations/nb.d.ts +8 -0
  242. package/dist/translations/nb.js +5 -0
  243. package/dist/translations/nb.umd.js +11 -0
  244. package/dist/translations/ne.d.ts +8 -0
  245. package/dist/translations/ne.js +5 -0
  246. package/dist/translations/ne.umd.js +11 -0
  247. package/dist/translations/nl.d.ts +8 -0
  248. package/dist/translations/nl.js +5 -0
  249. package/dist/translations/nl.umd.js +11 -0
  250. package/dist/translations/no.d.ts +8 -0
  251. package/dist/translations/no.js +5 -0
  252. package/dist/translations/no.umd.js +11 -0
  253. package/dist/translations/pl.d.ts +8 -0
  254. package/dist/translations/pl.js +5 -0
  255. package/dist/translations/pl.umd.js +11 -0
  256. package/dist/translations/pt-br.d.ts +8 -0
  257. package/dist/translations/pt-br.js +5 -0
  258. package/dist/translations/pt-br.umd.js +11 -0
  259. package/dist/translations/pt.d.ts +8 -0
  260. package/dist/translations/pt.js +5 -0
  261. package/dist/translations/pt.umd.js +11 -0
  262. package/dist/translations/ro.d.ts +8 -0
  263. package/dist/translations/ro.js +5 -0
  264. package/dist/translations/ro.umd.js +11 -0
  265. package/dist/translations/ru.d.ts +8 -0
  266. package/dist/translations/ru.js +5 -0
  267. package/dist/translations/ru.umd.js +11 -0
  268. package/dist/translations/sk.d.ts +8 -0
  269. package/dist/translations/sk.js +5 -0
  270. package/dist/translations/sk.umd.js +11 -0
  271. package/dist/translations/sl.d.ts +8 -0
  272. package/dist/translations/sl.js +5 -0
  273. package/dist/translations/sl.umd.js +11 -0
  274. package/dist/translations/sq.d.ts +8 -0
  275. package/dist/translations/sq.js +5 -0
  276. package/dist/translations/sq.umd.js +11 -0
  277. package/dist/translations/sr-latn.d.ts +8 -0
  278. package/dist/translations/sr-latn.js +5 -0
  279. package/dist/translations/sr-latn.umd.js +11 -0
  280. package/dist/translations/sr.d.ts +8 -0
  281. package/dist/translations/sr.js +5 -0
  282. package/dist/translations/sr.umd.js +11 -0
  283. package/dist/translations/sv.d.ts +8 -0
  284. package/dist/translations/sv.js +5 -0
  285. package/dist/translations/sv.umd.js +11 -0
  286. package/dist/translations/th.d.ts +8 -0
  287. package/dist/translations/th.js +5 -0
  288. package/dist/translations/th.umd.js +11 -0
  289. package/dist/translations/ti.d.ts +8 -0
  290. package/dist/translations/ti.js +5 -0
  291. package/dist/translations/ti.umd.js +11 -0
  292. package/dist/translations/tk.d.ts +8 -0
  293. package/dist/translations/tk.js +5 -0
  294. package/dist/translations/tk.umd.js +11 -0
  295. package/dist/translations/tr.d.ts +8 -0
  296. package/dist/translations/tr.js +5 -0
  297. package/dist/translations/tr.umd.js +11 -0
  298. package/dist/translations/tt.d.ts +8 -0
  299. package/dist/translations/tt.js +5 -0
  300. package/dist/translations/tt.umd.js +11 -0
  301. package/dist/translations/ug.d.ts +8 -0
  302. package/dist/translations/ug.js +5 -0
  303. package/dist/translations/ug.umd.js +11 -0
  304. package/dist/translations/uk.d.ts +8 -0
  305. package/dist/translations/uk.js +5 -0
  306. package/dist/translations/uk.umd.js +11 -0
  307. package/dist/translations/ur.d.ts +8 -0
  308. package/dist/translations/ur.js +5 -0
  309. package/dist/translations/ur.umd.js +11 -0
  310. package/dist/translations/uz.d.ts +8 -0
  311. package/dist/translations/uz.js +5 -0
  312. package/dist/translations/uz.umd.js +11 -0
  313. package/dist/translations/vi.d.ts +8 -0
  314. package/dist/translations/vi.js +5 -0
  315. package/dist/translations/vi.umd.js +11 -0
  316. package/dist/translations/zh-cn.d.ts +8 -0
  317. package/dist/translations/zh-cn.js +5 -0
  318. package/dist/translations/zh-cn.umd.js +11 -0
  319. package/dist/translations/zh.d.ts +8 -0
  320. package/dist/translations/zh.js +5 -0
  321. package/dist/translations/zh.umd.js +11 -0
  322. package/dist/view.d.ts +426 -0
  323. package/dist/viewcollection.d.ts +143 -0
  324. package/lang/contexts.json +51 -0
  325. package/lang/translations/af.po +214 -0
  326. package/lang/translations/ar.po +214 -0
  327. package/lang/translations/ast.po +214 -0
  328. package/lang/translations/az.po +214 -0
  329. package/lang/translations/bg.po +214 -0
  330. package/lang/translations/bn.po +214 -0
  331. package/lang/translations/bs.po +214 -0
  332. package/lang/translations/ca.po +214 -0
  333. package/lang/translations/cs.po +214 -0
  334. package/lang/translations/da.po +214 -0
  335. package/lang/translations/de-ch.po +214 -0
  336. package/lang/translations/de.po +214 -0
  337. package/lang/translations/el.po +214 -0
  338. package/lang/translations/en-au.po +214 -0
  339. package/lang/translations/en-gb.po +214 -0
  340. package/lang/translations/en.po +214 -0
  341. package/lang/translations/eo.po +214 -0
  342. package/lang/translations/es-co.po +214 -0
  343. package/lang/translations/es.po +214 -0
  344. package/lang/translations/et.po +214 -0
  345. package/lang/translations/eu.po +214 -0
  346. package/lang/translations/fa.po +214 -0
  347. package/lang/translations/fi.po +214 -0
  348. package/lang/translations/fr.po +214 -0
  349. package/lang/translations/gl.po +214 -0
  350. package/lang/translations/he.po +214 -0
  351. package/lang/translations/hi.po +214 -0
  352. package/lang/translations/hr.po +214 -0
  353. package/lang/translations/hu.po +214 -0
  354. package/lang/translations/id.po +214 -0
  355. package/lang/translations/it.po +214 -0
  356. package/lang/translations/ja.po +214 -0
  357. package/lang/translations/jv.po +214 -0
  358. package/lang/translations/km.po +214 -0
  359. package/lang/translations/kn.po +214 -0
  360. package/lang/translations/ko.po +214 -0
  361. package/lang/translations/ku.po +214 -0
  362. package/lang/translations/lt.po +214 -0
  363. package/lang/translations/lv.po +214 -0
  364. package/lang/translations/ms.po +214 -0
  365. package/lang/translations/nb.po +214 -0
  366. package/lang/translations/ne.po +214 -0
  367. package/lang/translations/nl.po +214 -0
  368. package/lang/translations/no.po +214 -0
  369. package/lang/translations/pl.po +214 -0
  370. package/lang/translations/pt-br.po +214 -0
  371. package/lang/translations/pt.po +214 -0
  372. package/lang/translations/ro.po +214 -0
  373. package/lang/translations/ru.po +214 -0
  374. package/lang/translations/sk.po +214 -0
  375. package/lang/translations/sl.po +214 -0
  376. package/lang/translations/sq.po +214 -0
  377. package/lang/translations/sr-latn.po +214 -0
  378. package/lang/translations/sr.po +214 -0
  379. package/lang/translations/sv.po +214 -0
  380. package/lang/translations/th.po +214 -0
  381. package/lang/translations/ti.po +214 -0
  382. package/lang/translations/tk.po +214 -0
  383. package/lang/translations/tr.po +214 -0
  384. package/lang/translations/tt.po +214 -0
  385. package/lang/translations/ug.po +214 -0
  386. package/lang/translations/uk.po +214 -0
  387. package/lang/translations/ur.po +214 -0
  388. package/lang/translations/uz.po +214 -0
  389. package/lang/translations/vi.po +214 -0
  390. package/lang/translations/zh-cn.po +214 -0
  391. package/lang/translations/zh.po +214 -0
  392. package/package.json +42 -0
  393. package/src/arialiveannouncer.d.ts +109 -0
  394. package/src/arialiveannouncer.js +165 -0
  395. package/src/augmentation.d.ts +88 -0
  396. package/src/augmentation.js +5 -0
  397. package/src/autocomplete/autocompleteview.d.ts +81 -0
  398. package/src/autocomplete/autocompleteview.js +154 -0
  399. package/src/badge/badge.d.ts +129 -0
  400. package/src/badge/badge.js +218 -0
  401. package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -0
  402. package/src/bindings/addkeyboardhandlingforgrid.js +107 -0
  403. package/src/bindings/clickoutsidehandler.d.ts +30 -0
  404. package/src/bindings/clickoutsidehandler.js +37 -0
  405. package/src/bindings/csstransitiondisablermixin.d.ts +40 -0
  406. package/src/bindings/csstransitiondisablermixin.js +55 -0
  407. package/src/bindings/draggableviewmixin.d.ts +46 -0
  408. package/src/bindings/draggableviewmixin.js +144 -0
  409. package/src/bindings/injectcsstransitiondisabler.d.ts +59 -0
  410. package/src/bindings/injectcsstransitiondisabler.js +71 -0
  411. package/src/bindings/preventdefault.d.ts +33 -0
  412. package/src/bindings/preventdefault.js +34 -0
  413. package/src/bindings/submithandler.d.ts +57 -0
  414. package/src/bindings/submithandler.js +47 -0
  415. package/src/button/button.d.ts +175 -0
  416. package/src/button/button.js +5 -0
  417. package/src/button/buttonlabel.d.ts +34 -0
  418. package/src/button/buttonlabel.js +5 -0
  419. package/src/button/buttonlabelview.d.ts +31 -0
  420. package/src/button/buttonlabelview.js +42 -0
  421. package/src/button/buttonview.d.ts +197 -0
  422. package/src/button/buttonview.js +248 -0
  423. package/src/button/filedialogbuttonview.d.ts +107 -0
  424. package/src/button/filedialogbuttonview.js +145 -0
  425. package/src/button/listitembuttonview.d.ts +78 -0
  426. package/src/button/listitembuttonview.js +129 -0
  427. package/src/button/switchbuttonview.d.ts +45 -0
  428. package/src/button/switchbuttonview.js +75 -0
  429. package/src/collapsible/collapsibleview.d.ts +70 -0
  430. package/src/collapsible/collapsibleview.js +95 -0
  431. package/src/colorgrid/colorgridview.d.ts +132 -0
  432. package/src/colorgrid/colorgridview.js +124 -0
  433. package/src/colorgrid/colortileview.d.ts +28 -0
  434. package/src/colorgrid/colortileview.js +42 -0
  435. package/src/colorgrid/utils.d.ts +47 -0
  436. package/src/colorgrid/utils.js +84 -0
  437. package/src/colorpicker/colorpickerview.d.ts +173 -0
  438. package/src/colorpicker/colorpickerview.js +326 -0
  439. package/src/colorpicker/utils.d.ts +48 -0
  440. package/src/colorpicker/utils.js +108 -0
  441. package/src/colorselector/colorgridsfragmentview.d.ts +195 -0
  442. package/src/colorselector/colorgridsfragmentview.js +291 -0
  443. package/src/colorselector/colorpickerfragmentview.d.ts +133 -0
  444. package/src/colorselector/colorpickerfragmentview.js +212 -0
  445. package/src/colorselector/colorselectorview.d.ts +242 -0
  446. package/src/colorselector/colorselectorview.js +257 -0
  447. package/src/colorselector/documentcolorcollection.d.ts +70 -0
  448. package/src/colorselector/documentcolorcollection.js +42 -0
  449. package/src/componentfactory.d.ts +81 -0
  450. package/src/componentfactory.js +104 -0
  451. package/src/dialog/dialog.d.ts +277 -0
  452. package/src/dialog/dialog.js +279 -0
  453. package/src/dialog/dialogactionsview.d.ts +69 -0
  454. package/src/dialog/dialogactionsview.js +98 -0
  455. package/src/dialog/dialogcontentview.d.ts +27 -0
  456. package/src/dialog/dialogcontentview.js +35 -0
  457. package/src/dialog/dialogview.d.ts +256 -0
  458. package/src/dialog/dialogview.js +453 -0
  459. package/src/dropdown/button/dropdownbutton.d.ts +25 -0
  460. package/src/dropdown/button/dropdownbutton.js +5 -0
  461. package/src/dropdown/button/dropdownbuttonview.d.ts +48 -0
  462. package/src/dropdown/button/dropdownbuttonview.js +66 -0
  463. package/src/dropdown/button/splitbuttonview.d.ts +162 -0
  464. package/src/dropdown/button/splitbuttonview.js +154 -0
  465. package/src/dropdown/dropdownpanelfocusable.d.ts +21 -0
  466. package/src/dropdown/dropdownpanelfocusable.js +5 -0
  467. package/src/dropdown/dropdownpanelview.d.ts +62 -0
  468. package/src/dropdown/dropdownpanelview.js +97 -0
  469. package/src/dropdown/dropdownview.d.ts +328 -0
  470. package/src/dropdown/dropdownview.js +380 -0
  471. package/src/dropdown/menu/dropdownmenubehaviors.d.ts +44 -0
  472. package/src/dropdown/menu/dropdownmenubehaviors.js +119 -0
  473. package/src/dropdown/menu/dropdownmenubuttonview.d.ts +36 -0
  474. package/src/dropdown/menu/dropdownmenubuttonview.js +65 -0
  475. package/src/dropdown/menu/dropdownmenulistitembuttonview.d.ts +17 -0
  476. package/src/dropdown/menu/dropdownmenulistitembuttonview.js +29 -0
  477. package/src/dropdown/menu/dropdownmenulistitemview.d.ts +22 -0
  478. package/src/dropdown/menu/dropdownmenulistitemview.js +34 -0
  479. package/src/dropdown/menu/dropdownmenulistview.d.ts +24 -0
  480. package/src/dropdown/menu/dropdownmenulistview.js +29 -0
  481. package/src/dropdown/menu/dropdownmenunestedmenupanelview.d.ts +34 -0
  482. package/src/dropdown/menu/dropdownmenunestedmenupanelview.js +63 -0
  483. package/src/dropdown/menu/dropdownmenunestedmenuview.d.ts +131 -0
  484. package/src/dropdown/menu/dropdownmenunestedmenuview.js +191 -0
  485. package/src/dropdown/menu/dropdownmenurootlistview.d.ts +140 -0
  486. package/src/dropdown/menu/dropdownmenurootlistview.js +160 -0
  487. package/src/dropdown/menu/utils.d.ts +124 -0
  488. package/src/dropdown/menu/utils.js +61 -0
  489. package/src/dropdown/utils.d.ts +293 -0
  490. package/src/dropdown/utils.js +562 -0
  491. package/src/editableui/editableuiview.d.ts +72 -0
  492. package/src/editableui/editableuiview.js +112 -0
  493. package/src/editableui/inline/inlineeditableuiview.d.ts +44 -0
  494. package/src/editableui/inline/inlineeditableuiview.js +71 -0
  495. package/src/editorui/accessibilityhelp/accessibilityhelp.d.ts +55 -0
  496. package/src/editorui/accessibilityhelp/accessibilityhelp.js +145 -0
  497. package/src/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +35 -0
  498. package/src/editorui/accessibilityhelp/accessibilityhelpcontentview.js +112 -0
  499. package/src/editorui/bodycollection.d.ts +55 -0
  500. package/src/editorui/bodycollection.js +85 -0
  501. package/src/editorui/boxed/boxededitoruiview.d.ts +40 -0
  502. package/src/editorui/boxed/boxededitoruiview.js +81 -0
  503. package/src/editorui/editorui.d.ts +354 -0
  504. package/src/editorui/editorui.js +522 -0
  505. package/src/editorui/editoruiview.d.ts +44 -0
  506. package/src/editorui/editoruiview.js +38 -0
  507. package/src/editorui/evaluationbadge.d.ts +33 -0
  508. package/src/editorui/evaluationbadge.js +99 -0
  509. package/src/editorui/poweredby.d.ts +34 -0
  510. package/src/editorui/poweredby.js +127 -0
  511. package/src/focuscycler.d.ts +291 -0
  512. package/src/focuscycler.js +352 -0
  513. package/src/formheader/formheaderview.d.ts +58 -0
  514. package/src/formheader/formheaderview.js +69 -0
  515. package/src/highlightedtext/buttonlabelwithhighlightview.d.ts +30 -0
  516. package/src/highlightedtext/buttonlabelwithhighlightview.js +31 -0
  517. package/src/highlightedtext/highlightedtextview.d.ts +38 -0
  518. package/src/highlightedtext/highlightedtextview.js +102 -0
  519. package/src/highlightedtext/labelwithhighlightview.d.ts +26 -0
  520. package/src/highlightedtext/labelwithhighlightview.js +33 -0
  521. package/src/icon/iconview.d.ts +88 -0
  522. package/src/icon/iconview.js +115 -0
  523. package/src/iframe/iframeview.d.ts +50 -0
  524. package/src/iframe/iframeview.js +63 -0
  525. package/src/index.d.ts +93 -0
  526. package/src/index.js +90 -0
  527. package/src/input/inputbase.d.ts +119 -0
  528. package/src/input/inputbase.js +114 -0
  529. package/src/input/inputview.d.ts +36 -0
  530. package/src/input/inputview.js +24 -0
  531. package/src/inputnumber/inputnumberview.d.ts +49 -0
  532. package/src/inputnumber/inputnumberview.js +40 -0
  533. package/src/inputtext/inputtextview.d.ts +18 -0
  534. package/src/inputtext/inputtextview.js +27 -0
  535. package/src/label/labelview.d.ts +36 -0
  536. package/src/label/labelview.js +41 -0
  537. package/src/labeledfield/labeledfieldview.d.ts +187 -0
  538. package/src/labeledfield/labeledfieldview.js +157 -0
  539. package/src/labeledfield/utils.d.ts +123 -0
  540. package/src/labeledfield/utils.js +176 -0
  541. package/src/labeledinput/labeledinputview.d.ts +125 -0
  542. package/src/labeledinput/labeledinputview.js +125 -0
  543. package/src/list/listitemgroupview.d.ts +59 -0
  544. package/src/list/listitemgroupview.js +67 -0
  545. package/src/list/listitemview.d.ts +36 -0
  546. package/src/list/listitemview.js +42 -0
  547. package/src/list/listseparatorview.d.ts +18 -0
  548. package/src/list/listseparatorview.js +28 -0
  549. package/src/list/listview.d.ts +124 -0
  550. package/src/list/listview.js +188 -0
  551. package/src/menubar/menubarmenubuttonview.d.ts +35 -0
  552. package/src/menubar/menubarmenubuttonview.js +64 -0
  553. package/src/menubar/menubarmenulistitembuttonview.d.ts +21 -0
  554. package/src/menubar/menubarmenulistitembuttonview.js +30 -0
  555. package/src/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +23 -0
  556. package/src/menubar/menubarmenulistitemfiledialogbuttonview.js +32 -0
  557. package/src/menubar/menubarmenulistitemview.d.ts +25 -0
  558. package/src/menubar/menubarmenulistitemview.js +34 -0
  559. package/src/menubar/menubarmenulistview.d.ts +29 -0
  560. package/src/menubar/menubarmenulistview.js +72 -0
  561. package/src/menubar/menubarmenupanelview.d.ts +53 -0
  562. package/src/menubar/menubarmenupanelview.js +60 -0
  563. package/src/menubar/menubarmenuview.d.ts +109 -0
  564. package/src/menubar/menubarmenuview.js +160 -0
  565. package/src/menubar/menubarview.d.ts +173 -0
  566. package/src/menubar/menubarview.js +261 -0
  567. package/src/menubar/utils.d.ts +447 -0
  568. package/src/menubar/utils.js +1388 -0
  569. package/src/model.d.ts +22 -0
  570. package/src/model.js +31 -0
  571. package/src/notification/notification.d.ts +215 -0
  572. package/src/notification/notification.js +193 -0
  573. package/src/panel/balloon/balloonpanelview.d.ts +697 -0
  574. package/src/panel/balloon/balloonpanelview.js +1055 -0
  575. package/src/panel/balloon/contextualballoon.d.ts +309 -0
  576. package/src/panel/balloon/contextualballoon.js +576 -0
  577. package/src/panel/sticky/stickypanelview.d.ts +156 -0
  578. package/src/panel/sticky/stickypanelview.js +234 -0
  579. package/src/search/filteredview.d.ts +31 -0
  580. package/src/search/filteredview.js +5 -0
  581. package/src/search/filtergroupanditemnames.d.ts +15 -0
  582. package/src/search/filtergroupanditemnames.js +38 -0
  583. package/src/search/searchinfoview.d.ts +45 -0
  584. package/src/search/searchinfoview.js +59 -0
  585. package/src/search/searchresultsview.d.ts +54 -0
  586. package/src/search/searchresultsview.js +65 -0
  587. package/src/search/text/searchtextqueryview.d.ts +76 -0
  588. package/src/search/text/searchtextqueryview.js +75 -0
  589. package/src/search/text/searchtextview.d.ts +219 -0
  590. package/src/search/text/searchtextview.js +202 -0
  591. package/src/spinner/spinnerview.d.ts +25 -0
  592. package/src/spinner/spinnerview.js +38 -0
  593. package/src/template.d.ts +942 -0
  594. package/src/template.js +1294 -0
  595. package/src/textarea/textareaview.d.ts +104 -0
  596. package/src/textarea/textareaview.js +182 -0
  597. package/src/toolbar/balloon/balloontoolbar.d.ts +126 -0
  598. package/src/toolbar/balloon/balloontoolbar.js +324 -0
  599. package/src/toolbar/block/blockbuttonview.d.ts +35 -0
  600. package/src/toolbar/block/blockbuttonview.js +41 -0
  601. package/src/toolbar/block/blocktoolbar.d.ts +171 -0
  602. package/src/toolbar/block/blocktoolbar.js +492 -0
  603. package/src/toolbar/normalizetoolbarconfig.d.ts +40 -0
  604. package/src/toolbar/normalizetoolbarconfig.js +52 -0
  605. package/src/toolbar/toolbarlinebreakview.d.ts +18 -0
  606. package/src/toolbar/toolbarlinebreakview.js +28 -0
  607. package/src/toolbar/toolbarseparatorview.d.ts +18 -0
  608. package/src/toolbar/toolbarseparatorview.js +28 -0
  609. package/src/toolbar/toolbarview.d.ts +267 -0
  610. package/src/toolbar/toolbarview.js +721 -0
  611. package/src/tooltipmanager.d.ts +188 -0
  612. package/src/tooltipmanager.js +413 -0
  613. package/src/view.d.ts +422 -0
  614. package/src/view.js +396 -0
  615. package/src/viewcollection.d.ts +139 -0
  616. package/src/viewcollection.js +206 -0
  617. package/theme/components/arialiveannouncer/arialiveannouncer.css +14 -0
  618. package/theme/components/autocomplete/autocomplete.css +22 -0
  619. package/theme/components/button/button.css +39 -0
  620. package/theme/components/button/listitembutton.css +48 -0
  621. package/theme/components/button/switchbutton.css +14 -0
  622. package/theme/components/collapsible/collapsible.css +10 -0
  623. package/theme/components/colorgrid/colorgrid.css +8 -0
  624. package/theme/components/colorpicker/colorpicker.css +34 -0
  625. package/theme/components/colorselector/colorselector.css +35 -0
  626. package/theme/components/dialog/dialog.css +39 -0
  627. package/theme/components/dialog/dialogactions.css +11 -0
  628. package/theme/components/dropdown/dropdown.css +95 -0
  629. package/theme/components/dropdown/listdropdown.css +10 -0
  630. package/theme/components/dropdown/menu/dropdownmenu.css +8 -0
  631. package/theme/components/dropdown/menu/dropdownmenubutton.css +9 -0
  632. package/theme/components/dropdown/menu/dropdownmenulistitem.css +10 -0
  633. package/theme/components/dropdown/menu/dropdownmenulistitembutton.css +10 -0
  634. package/theme/components/dropdown/menu/dropdownmenupanel.css +11 -0
  635. package/theme/components/dropdown/splitbutton.css +14 -0
  636. package/theme/components/dropdown/toolbardropdown.css +20 -0
  637. package/theme/components/editorui/accessibilityhelp.css +10 -0
  638. package/theme/components/editorui/editorui.css +10 -0
  639. package/theme/components/formheader/formheader.css +16 -0
  640. package/theme/components/highlightedtext/highlightedtext.css +12 -0
  641. package/theme/components/icon/icon.css +8 -0
  642. package/theme/components/input/input.css +10 -0
  643. package/theme/components/label/label.css +12 -0
  644. package/theme/components/labeledfield/labeledfieldview.css +16 -0
  645. package/theme/components/labeledinput/labeledinput.css +10 -0
  646. package/theme/components/list/list.css +26 -0
  647. package/theme/components/menubar/menubar.css +10 -0
  648. package/theme/components/menubar/menubarmenu.css +9 -0
  649. package/theme/components/menubar/menubarmenubutton.css +11 -0
  650. package/theme/components/menubar/menubarmenulistitem.css +10 -0
  651. package/theme/components/menubar/menubarmenulistitembutton.css +10 -0
  652. package/theme/components/menubar/menubarmenupanel.css +62 -0
  653. package/theme/components/panel/balloonpanel.css +56 -0
  654. package/theme/components/panel/balloonrotator.css +17 -0
  655. package/theme/components/panel/fakepanel.css +23 -0
  656. package/theme/components/panel/stickypanel.css +17 -0
  657. package/theme/components/responsive-form/responsiveform.css +42 -0
  658. package/theme/components/search/search.css +43 -0
  659. package/theme/components/spinner/spinner.css +23 -0
  660. package/theme/components/textarea/textarea.css +10 -0
  661. package/theme/components/toolbar/blocktoolbar.css +9 -0
  662. package/theme/components/toolbar/toolbar.css +58 -0
  663. package/theme/components/tooltip/tooltip.css +12 -0
  664. package/theme/globals/_evaluationbadge.css +50 -0
  665. package/theme/globals/_hidden.css +13 -0
  666. package/theme/globals/_poweredby.css +72 -0
  667. package/theme/globals/_transition.css +12 -0
  668. package/theme/globals/_zindex.css +10 -0
  669. package/theme/globals/globals.css +10 -0
  670. package/theme/icons/accessibility.svg +1 -0
  671. package/theme/icons/color-tile-check.svg +1 -0
  672. package/theme/icons/dropdown-arrow.svg +1 -0
  673. package/theme/icons/project-logo.svg +1 -0
  674. package/theme/mixins/_dir.css +10 -0
  675. package/theme/mixins/_mediacolors.css +20 -0
  676. package/theme/mixins/_rwd.css +10 -0
  677. package/theme/mixins/_unselectable.css +14 -0
@@ -0,0 +1,44 @@
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
+ import type DropdownMenuNestedMenuView from './dropdownmenunestedmenuview.js';
6
+ import type DropdownMenuRootListView from './dropdownmenurootlistview.js';
7
+ export declare const DropdownRootMenuBehaviors: {
8
+ /**
9
+ * Move focus to a menu item on mouse hover. If it is a button to open a nested menu, open that menu.
10
+ */
11
+ toggleMenusAndFocusItemsOnHover(rootList: DropdownMenuRootListView): void;
12
+ /**
13
+ * Handles the following case:
14
+ *
15
+ * 1. Hover to open a sub-menu (A). The button has focus.
16
+ * 2. Press arrow up/down to move focus to another sub-menu (B) button.
17
+ * 3. Press arrow right to open the sub-menu (B).
18
+ * 4. The sub-menu (A) should close (if not, there are two open menus).
19
+ */
20
+ closeMenuWhenAnotherOnTheSameLevelOpens(rootList: DropdownMenuRootListView): void;
21
+ };
22
+ export declare const DropdownMenuBehaviors: {
23
+ /**
24
+ * Open the menu on the right arrow key press (left, in RTL mode). This allows for navigating to sub-menus using the keyboard.
25
+ */
26
+ openOnArrowRightKey(menuView: DropdownMenuNestedMenuView): void;
27
+ /**
28
+ * Opens the menu on its button click as well as enter and space keys press (if the button is focused).
29
+ */
30
+ openOnButtonClick(menuView: DropdownMenuNestedMenuView): void;
31
+ /**
32
+ * Opens the menu and focuses the panel content upon pressing the Enter key.
33
+ */
34
+ openAndFocusOnEnterKeyPress(menuView: DropdownMenuNestedMenuView): void;
35
+ /**
36
+ * Closes the menu on the left key press (right, in RTL mode). This allows for navigating to sub-menus using the keyboard.
37
+ */
38
+ closeOnArrowLeftKey(menuView: DropdownMenuNestedMenuView): void;
39
+ closeOnEscKey(menuView: DropdownMenuNestedMenuView): void;
40
+ /**
41
+ * Closes the menu when its parent menu closes. This prevents from leaving orphaned open menus.
42
+ */
43
+ closeOnParentClose(menuView: DropdownMenuNestedMenuView, parentMenuView: DropdownMenuNestedMenuView): void;
44
+ };
@@ -0,0 +1,119 @@
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
+ import DropdownMenuListItemView from './dropdownmenulistitemview.js';
6
+ export const DropdownRootMenuBehaviors = {
7
+ /**
8
+ * Move focus to a menu item on mouse hover. If it is a button to open a nested menu, open that menu.
9
+ */
10
+ toggleMenusAndFocusItemsOnHover(rootList) {
11
+ rootList.on('menu:mouseenter', evt => {
12
+ const [pathLeaf] = evt.path;
13
+ evt.source.focus();
14
+ for (const menuView of rootList.menus) {
15
+ const isListItemContainingMenu = pathLeaf instanceof DropdownMenuListItemView && pathLeaf.childView === menuView;
16
+ menuView.isOpen = (evt.path.includes(menuView) || isListItemContainingMenu) && menuView.isEnabled;
17
+ }
18
+ });
19
+ },
20
+ /**
21
+ * Handles the following case:
22
+ *
23
+ * 1. Hover to open a sub-menu (A). The button has focus.
24
+ * 2. Press arrow up/down to move focus to another sub-menu (B) button.
25
+ * 3. Press arrow right to open the sub-menu (B).
26
+ * 4. The sub-menu (A) should close (if not, there are two open menus).
27
+ */
28
+ closeMenuWhenAnotherOnTheSameLevelOpens(rootList) {
29
+ rootList.on('menu:change:isOpen', (evt, name, isOpen) => {
30
+ if (!isOpen) {
31
+ return;
32
+ }
33
+ const evtMenu = evt.source;
34
+ for (const menuView of rootList.menus) {
35
+ if (evtMenu.parentMenuView === menuView.parentMenuView && evtMenu !== menuView) {
36
+ menuView.isOpen = false;
37
+ }
38
+ }
39
+ });
40
+ }
41
+ };
42
+ export const DropdownMenuBehaviors = {
43
+ /**
44
+ * Open the menu on the right arrow key press (left, in RTL mode). This allows for navigating to sub-menus using the keyboard.
45
+ */
46
+ openOnArrowRightKey(menuView) {
47
+ const keystroke = menuView.locale.uiLanguageDirection === 'rtl' ? 'arrowleft' : 'arrowright';
48
+ menuView.keystrokes.set(keystroke, (data, cancel) => {
49
+ if (menuView.focusTracker.focusedElement !== menuView.buttonView.element || !menuView.isEnabled) {
50
+ return;
51
+ }
52
+ if (!menuView.isOpen) {
53
+ menuView.isOpen = true;
54
+ }
55
+ menuView.panelView.focus();
56
+ cancel();
57
+ });
58
+ },
59
+ /**
60
+ * Opens the menu on its button click as well as enter and space keys press (if the button is focused).
61
+ */
62
+ openOnButtonClick(menuView) {
63
+ menuView.buttonView.on('execute', () => {
64
+ if (menuView.isEnabled) {
65
+ menuView.isOpen = true;
66
+ }
67
+ });
68
+ },
69
+ /**
70
+ * Opens the menu and focuses the panel content upon pressing the Enter key.
71
+ */
72
+ openAndFocusOnEnterKeyPress(menuView) {
73
+ menuView.keystrokes.set('enter', (data, cancel) => {
74
+ // Engage only for Enter key press when the button is focused. The panel can contain
75
+ // other UI components and features that rely on the Enter key press.
76
+ if (menuView.focusTracker.focusedElement !== menuView.buttonView.element) {
77
+ return;
78
+ }
79
+ menuView.isOpen = true;
80
+ menuView.panelView.focus();
81
+ cancel();
82
+ });
83
+ },
84
+ /**
85
+ * Closes the menu on the left key press (right, in RTL mode). This allows for navigating to sub-menus using the keyboard.
86
+ */
87
+ closeOnArrowLeftKey(menuView) {
88
+ const keystroke = menuView.locale.uiLanguageDirection === 'rtl' ? 'arrowright' : 'arrowleft';
89
+ menuView.keystrokes.set(keystroke, (data, cancel) => {
90
+ if (menuView.isOpen) {
91
+ // Focus first, then close the panel. Otherwise, Safari won't send blur events for detached DOM elements, leading to errors.
92
+ menuView.focus();
93
+ menuView.isOpen = false;
94
+ cancel();
95
+ }
96
+ });
97
+ },
98
+ closeOnEscKey(menuView) {
99
+ menuView.keystrokes.set('esc', (data, cancel) => {
100
+ if (menuView.isOpen) {
101
+ // Focus first, then close the panel. Otherwise, Safari won't send blur events for detached DOM elements, leading to errors.
102
+ menuView.focus();
103
+ menuView.isOpen = false;
104
+ cancel();
105
+ }
106
+ });
107
+ },
108
+ /**
109
+ * Closes the menu when its parent menu closes. This prevents from leaving orphaned open menus.
110
+ */
111
+ closeOnParentClose(menuView, parentMenuView) {
112
+ parentMenuView.on('change:isOpen', (evt, name, isOpen) => {
113
+ // TODO: Remove checking `evt.source` if `change:isOpen` is no longer delegated.
114
+ if (!isOpen && evt.source === parentMenuView) {
115
+ menuView.isOpen = false;
116
+ }
117
+ });
118
+ }
119
+ };
@@ -0,0 +1,36 @@
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
+ * @module ui/dropdown/menu/dropdownmenubuttonview
7
+ */
8
+ import IconView from '../../icon/iconview.js';
9
+ import ListItemButtonView from '../../button/listitembuttonview.js';
10
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
11
+ import '../../../theme/components/dropdown/menu/dropdownmenubutton.css';
12
+ /**
13
+ * Represents a view for a dropdown menu button.
14
+ */
15
+ export default class DropdownMenuButtonView extends ListItemButtonView {
16
+ /**
17
+ * An icon that displays an arrow to indicate a direction of the menu.
18
+ */
19
+ readonly arrowView: IconView;
20
+ /**
21
+ * Creates an instance of the dropdown menu button view.
22
+ *
23
+ * @param locale The localization services instance.
24
+ */
25
+ constructor(locale: Locale);
26
+ /**
27
+ * @inheritDoc
28
+ */
29
+ render(): void;
30
+ /**
31
+ * Creates the arrow view instance.
32
+ *
33
+ * @private
34
+ */
35
+ private _createArrowView;
36
+ }
@@ -0,0 +1,65 @@
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
+ * @module ui/dropdown/menu/dropdownmenubuttonview
7
+ */
8
+ import IconView from '../../icon/iconview.js';
9
+ import ListItemButtonView from '../../button/listitembuttonview.js';
10
+ import dropdownArrowIcon from '../../../theme/icons/dropdown-arrow.svg';
11
+ import '../../../theme/components/dropdown/menu/dropdownmenubutton.css';
12
+ /**
13
+ * Represents a view for a dropdown menu button.
14
+ */
15
+ export default class DropdownMenuButtonView extends ListItemButtonView {
16
+ /**
17
+ * Creates an instance of the dropdown menu button view.
18
+ *
19
+ * @param locale The localization services instance.
20
+ */
21
+ constructor(locale) {
22
+ super(locale);
23
+ const bind = this.bindTemplate;
24
+ this.set({
25
+ withText: true,
26
+ role: 'menuitem'
27
+ });
28
+ this.arrowView = this._createArrowView();
29
+ this.extendTemplate({
30
+ attributes: {
31
+ class: [
32
+ 'ck-dropdown-menu-list__nested-menu__button'
33
+ ],
34
+ 'aria-haspopup': true,
35
+ 'aria-expanded': this.bindTemplate.to('isOn', value => String(value)),
36
+ 'data-cke-tooltip-disabled': bind.to('isOn')
37
+ },
38
+ on: {
39
+ 'mouseenter': bind.to('mouseenter')
40
+ }
41
+ });
42
+ }
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ render() {
47
+ super.render();
48
+ this.children.add(this.arrowView);
49
+ }
50
+ /**
51
+ * Creates the arrow view instance.
52
+ *
53
+ * @private
54
+ */
55
+ _createArrowView() {
56
+ const arrowView = new IconView();
57
+ arrowView.content = dropdownArrowIcon;
58
+ arrowView.extendTemplate({
59
+ attributes: {
60
+ class: 'ck-dropdown-menu-list__nested-menu__button__arrow'
61
+ }
62
+ });
63
+ return arrowView;
64
+ }
65
+ }
@@ -0,0 +1,17 @@
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
+ * @module ui/dropdown/menu/dropdownmenulistitembuttonview
7
+ */
8
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
9
+ import ButtonView from '../../button/buttonview.js';
10
+ import '../../../theme/components/dropdown/menu/dropdownmenulistitembutton.css';
11
+ /**
12
+ * Represents a view for a button in a dropdown menu list item.
13
+ */
14
+ export default class DropdownMenuListItemButtonView extends ButtonView {
15
+ readonly id: string;
16
+ constructor(locale: Locale, id: string, label: string);
17
+ }
@@ -0,0 +1,29 @@
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
+ import ButtonView from '../../button/buttonview.js';
6
+ import '../../../theme/components/dropdown/menu/dropdownmenulistitembutton.css';
7
+ /**
8
+ * Represents a view for a button in a dropdown menu list item.
9
+ */
10
+ export default class DropdownMenuListItemButtonView extends ButtonView {
11
+ constructor(locale, id, label) {
12
+ super(locale);
13
+ this.id = id;
14
+ this.set({
15
+ withText: true,
16
+ withKeystroke: true,
17
+ tooltip: false,
18
+ role: 'menuitem',
19
+ label
20
+ });
21
+ this.extendTemplate({
22
+ attributes: {
23
+ class: [
24
+ 'ck-dropdown-menu-list__nested-menu__item__button'
25
+ ]
26
+ }
27
+ });
28
+ }
29
+ }
@@ -0,0 +1,22 @@
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
+ * @module ui/dropdown/menu/dropdownmenulistitemview
7
+ */
8
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
9
+ import type DropdownMenuNestedMenuView from './dropdownmenunestedmenuview.js';
10
+ import ListItemView from '../../list/listitemview.js';
11
+ import DropdownMenuListItemButtonView from './dropdownmenulistitembuttonview.js';
12
+ import '../../../theme/components/dropdown/menu/dropdownmenulistitem.css';
13
+ /**
14
+ * Represents a view for a single item in a dropdown menu list.
15
+ */
16
+ export default class DropdownMenuListItemView extends ListItemView {
17
+ /**
18
+ * The view representing either a flat item or a nested menu in a dropdown menu list item.
19
+ */
20
+ readonly childView: DropdownMenuNestedMenuView | DropdownMenuListItemButtonView;
21
+ constructor(locale: Locale, parentMenuView: DropdownMenuNestedMenuView | null, childView: DropdownMenuNestedMenuView | DropdownMenuListItemButtonView);
22
+ }
@@ -0,0 +1,34 @@
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
+ import ListItemView from '../../list/listitemview.js';
6
+ import DropdownMenuListItemButtonView from './dropdownmenulistitembuttonview.js';
7
+ import '../../../theme/components/dropdown/menu/dropdownmenulistitem.css';
8
+ /**
9
+ * Represents a view for a single item in a dropdown menu list.
10
+ */
11
+ export default class DropdownMenuListItemView extends ListItemView {
12
+ constructor(locale, parentMenuView, childView) {
13
+ super(locale);
14
+ const bind = this.bindTemplate;
15
+ this.childView = childView;
16
+ this.children.add(childView);
17
+ this.extendTemplate({
18
+ attributes: {
19
+ class: [
20
+ 'ck-dropdown-menu-list__nested-menu__item'
21
+ ]
22
+ },
23
+ on: {
24
+ 'mouseenter': bind.to('mouseenter')
25
+ }
26
+ });
27
+ if (parentMenuView) {
28
+ this.delegate('mouseenter').to(parentMenuView);
29
+ if (childView instanceof DropdownMenuListItemButtonView) {
30
+ childView.delegate('execute').to(parentMenuView);
31
+ }
32
+ }
33
+ }
34
+ }
@@ -0,0 +1,24 @@
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
+ * @module ui/dropdown/menu/dropdownmenulistview
7
+ */
8
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
9
+ import ListView from '../../list/listview.js';
10
+ /**
11
+ * Represents a dropdown menu list view.
12
+ */
13
+ export default class DropdownMenuListView extends ListView {
14
+ /**
15
+ * Represents whether the dropdown menu list view is visible or not.
16
+ */
17
+ isVisible: boolean;
18
+ /**
19
+ * Creates an instance of the dropdown menu list view.
20
+ *
21
+ * @param locale The localization services instance.
22
+ */
23
+ constructor(locale: Locale);
24
+ }
@@ -0,0 +1,29 @@
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
+ import ListView from '../../list/listview.js';
6
+ /**
7
+ * Represents a dropdown menu list view.
8
+ */
9
+ export default class DropdownMenuListView extends ListView {
10
+ /**
11
+ * Creates an instance of the dropdown menu list view.
12
+ *
13
+ * @param locale The localization services instance.
14
+ */
15
+ constructor(locale) {
16
+ super(locale);
17
+ const bind = this.bindTemplate;
18
+ this.role = 'menu';
19
+ this.set('isVisible', true);
20
+ this.extendTemplate({
21
+ attributes: {
22
+ class: [
23
+ 'ck-dropdown-menu-list',
24
+ bind.if('isVisible', 'ck-hidden', value => !value)
25
+ ]
26
+ }
27
+ });
28
+ }
29
+ }
@@ -0,0 +1,34 @@
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
+ * @module ui/dropdown/menu/dropdownmenunestedmenupanelview
7
+ */
8
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
9
+ import type { FocusableView } from '../../focuscycler.js';
10
+ import BalloonPanelView from '../../panel/balloon/balloonpanelview.js';
11
+ import '../../../theme/components/dropdown/menu/dropdownmenupanel.css';
12
+ /**
13
+ * Represents the view for the dropdown menu panel.
14
+ */
15
+ export default class DropdownMenuNestedMenuPanelView extends BalloonPanelView implements FocusableView {
16
+ /**
17
+ * Creates an instance of the menu panel view.
18
+ *
19
+ * @param locale The localization services instance.
20
+ */
21
+ constructor(locale?: Locale);
22
+ /**
23
+ * Focuses the first child of the panel (default) or the last one if the `direction` is `-1`.
24
+ *
25
+ * @param direction The direction to focus. Default is `1`.
26
+ */
27
+ focus(direction?: -1 | 1): void;
28
+ }
29
+ /**
30
+ * The names of the positions of the {@link module:ui/dropdown/menu/dropdownmenunestedmenupanelview~DropdownMenuNestedMenuPanelView}.
31
+ *
32
+ * They are reflected as CSS class suffixes on the panel view element.
33
+ */
34
+ export type DropdownMenuNestedMenuPanelPosition = 'es' | 'ws' | 'en' | 'wn' | 'w' | 'e';
@@ -0,0 +1,63 @@
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
+ import BalloonPanelView from '../../panel/balloon/balloonpanelview.js';
6
+ import '../../../theme/components/dropdown/menu/dropdownmenupanel.css';
7
+ /**
8
+ * Represents the view for the dropdown menu panel.
9
+ */
10
+ export default class DropdownMenuNestedMenuPanelView extends BalloonPanelView {
11
+ /**
12
+ * Creates an instance of the menu panel view.
13
+ *
14
+ * @param locale The localization services instance.
15
+ */
16
+ constructor(locale) {
17
+ super(locale);
18
+ const bind = this.bindTemplate;
19
+ this.set({
20
+ isVisible: false,
21
+ position: 'se',
22
+ class: null,
23
+ top: 0,
24
+ left: 0
25
+ });
26
+ this.extendTemplate({
27
+ tag: 'div',
28
+ attributes: {
29
+ class: [
30
+ 'ck-reset',
31
+ 'ck-dropdown-menu__nested-menu__panel'
32
+ ],
33
+ tabindex: '-1'
34
+ },
35
+ on: {
36
+ // Drag and drop in the panel should not break the selection in the editor.
37
+ // https://github.com/ckeditor/ckeditor5-ui/issues/228
38
+ selectstart: bind.to(evt => {
39
+ if (evt.target.tagName.toLocaleLowerCase() === 'input') {
40
+ return;
41
+ }
42
+ evt.preventDefault();
43
+ })
44
+ }
45
+ });
46
+ }
47
+ /**
48
+ * Focuses the first child of the panel (default) or the last one if the `direction` is `-1`.
49
+ *
50
+ * @param direction The direction to focus. Default is `1`.
51
+ */
52
+ focus(direction = 1) {
53
+ const { content } = this;
54
+ if (content.length) {
55
+ if (direction === 1) {
56
+ content.first.focus();
57
+ }
58
+ else {
59
+ content.last.focus();
60
+ }
61
+ }
62
+ }
63
+ }
@@ -0,0 +1,131 @@
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
+ * @module ui/dropdown/menu/dropdownmenunestedmenuview
7
+ */
8
+ import { FocusTracker, KeystrokeHandler, type PositioningFunction, type Locale } from '@ckeditor/ckeditor5-utils';
9
+ import type { FocusableView } from '../../focuscycler.js';
10
+ import type BodyCollection from '../../editorui/bodycollection.js';
11
+ import DropdownMenuButtonView from './dropdownmenubuttonview.js';
12
+ import DropdownMenuListView from './dropdownmenulistview.js';
13
+ import View from '../../view.js';
14
+ import DropdownMenuNestedMenuPanelView, { type DropdownMenuNestedMenuPanelPosition } from './dropdownmenunestedmenupanelview.js';
15
+ import '../../../theme/components/dropdown/menu/dropdownmenu.css';
16
+ /**
17
+ * Represents a nested menu view.
18
+ */
19
+ export default class DropdownMenuNestedMenuView extends View implements FocusableView {
20
+ /**
21
+ * An array of delegated events for the dropdown menu definition controller.
22
+ * These events are delegated to the dropdown menu element.
23
+ */
24
+ static readonly DELEGATED_EVENTS: readonly ["mouseenter", "execute", "change:isOpen"];
25
+ readonly id: string;
26
+ /**
27
+ * Button of the menu view.
28
+ */
29
+ readonly buttonView: DropdownMenuButtonView;
30
+ /**
31
+ * Panel of the menu. It hosts children of the menu.
32
+ */
33
+ readonly panelView: DropdownMenuNestedMenuPanelView;
34
+ /**
35
+ * List of nested menu entries.
36
+ */
37
+ readonly listView: DropdownMenuListView;
38
+ /**
39
+ * Tracks information about the DOM focus in the menu.
40
+ */
41
+ readonly focusTracker: FocusTracker;
42
+ /**
43
+ * Instance of the {@link module:utils/keystrokehandler~KeystrokeHandler}. It manages
44
+ * keystrokes of the menu.
45
+ */
46
+ readonly keystrokes: KeystrokeHandler;
47
+ /**
48
+ * Controls whether the menu is open, i.e. shows or hides the {@link #panelView panel}.
49
+ *
50
+ * @observable
51
+ */
52
+ isOpen: boolean;
53
+ /**
54
+ * Controls whether the menu is enabled, i.e. its {@link #buttonView} can be clicked.
55
+ *
56
+ * @observable
57
+ */
58
+ isEnabled: boolean;
59
+ /**
60
+ * (Optional) The additional CSS class set on the menu {@link #element}.
61
+ *
62
+ * @observable
63
+ */
64
+ class: string | undefined;
65
+ /**
66
+ * The name of the position of the {@link #panelView}, relative to the menu.
67
+ *
68
+ * **Note**: The value is updated each time the panel gets {@link #isOpen open}.
69
+ *
70
+ * @observable
71
+ * @default 'w'
72
+ */
73
+ panelPosition: DropdownMenuNestedMenuPanelPosition;
74
+ /**
75
+ * The parent menu view of the menu. It is `null` for top-level menus.
76
+ *
77
+ * @observable
78
+ * @default null
79
+ */
80
+ readonly parentMenuView: DropdownMenuNestedMenuView | null;
81
+ private _bodyCollection;
82
+ /**
83
+ * Creates a new instance of the DropdownMenuView class.
84
+ *
85
+ * @param locale
86
+ * @param bodyCollection
87
+ * @param id
88
+ * @param label The label for the dropdown menu button.
89
+ * @param parentMenuView The parent dropdown menu view, if any.
90
+ */
91
+ constructor(locale: Locale, bodyCollection: BodyCollection, id: string, label: string, parentMenuView: DropdownMenuNestedMenuView | null);
92
+ /**
93
+ * An array of positioning functions used to determine the position of the dropdown menu panel.
94
+ * The order of the functions in the array determines the priority of the positions to be tried.
95
+ * The first function that returns a valid position will be used.
96
+ *
97
+ * @returns {Array<PositioningFunction>} An array of positioning functions.
98
+ * @internal
99
+ */
100
+ get _panelPositions(): Array<PositioningFunction>;
101
+ /**
102
+ * @inheritDoc
103
+ */
104
+ render(): void;
105
+ /**
106
+ * @inheritDoc
107
+ */
108
+ destroy(): void;
109
+ /**
110
+ * @inheritDoc
111
+ */
112
+ focus(): void;
113
+ private _handleParentMenuView;
114
+ /**
115
+ * Attach all keyboard behaviors for the menu view.
116
+ */
117
+ private _attachBehaviors;
118
+ /**
119
+ * Mounts the portal view in the body when the menu is open and removes it when the menu is closed.
120
+ * Binds keystrokes to the portal view when the menu is open.
121
+ */
122
+ private _mountPanelOnOpen;
123
+ /**
124
+ * Removes the panel view from the editor's body and removes it from the focus tracker.
125
+ */
126
+ private _removePanelFromBody;
127
+ /**
128
+ * Adds the panel view to the editor's body and sets up event listeners.
129
+ */
130
+ private _addPanelToBody;
131
+ }