@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,248 @@
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/button/buttonview
7
+ */
8
+ import View from '../view.js';
9
+ import IconView from '../icon/iconview.js';
10
+ import ButtonLabelView from './buttonlabelview.js';
11
+ import { env, getEnvKeystrokeText, uid, delay } from '@ckeditor/ckeditor5-utils';
12
+ import '../../theme/components/button/button.css';
13
+ /**
14
+ * The button view class.
15
+ *
16
+ * ```ts
17
+ * const view = new ButtonView();
18
+ *
19
+ * view.set( {
20
+ * label: 'A button',
21
+ * keystroke: 'Ctrl+B',
22
+ * tooltip: true,
23
+ * withText: true
24
+ * } );
25
+ *
26
+ * view.render();
27
+ *
28
+ * document.body.append( view.element );
29
+ * ```
30
+ */
31
+ export default class ButtonView extends View {
32
+ /**
33
+ * Creates an instance of the button view class.
34
+ *
35
+ * @param locale The {@link module:core/editor/editor~Editor#locale} instance.
36
+ * @param labelView The instance of the button's label. If not provided, an instance of
37
+ * {@link module:ui/button/buttonlabelview~ButtonLabelView} is used.
38
+ */
39
+ constructor(locale, labelView = new ButtonLabelView()) {
40
+ super(locale);
41
+ /**
42
+ * Delayed focus function for focus handling in Safari.
43
+ */
44
+ this._focusDelayed = null;
45
+ const bind = this.bindTemplate;
46
+ const ariaLabelUid = uid();
47
+ // Implement the Button interface.
48
+ this.set('_ariaPressed', false);
49
+ this.set('_ariaChecked', false);
50
+ this.set('ariaLabel', undefined);
51
+ this.set('ariaLabelledBy', `ck-editor__aria-label_${ariaLabelUid}`);
52
+ this.set('class', undefined);
53
+ this.set('labelStyle', undefined);
54
+ this.set('icon', undefined);
55
+ this.set('isEnabled', true);
56
+ this.set('isOn', false);
57
+ this.set('isVisible', true);
58
+ this.set('isToggleable', false);
59
+ this.set('keystroke', undefined);
60
+ this.set('label', undefined);
61
+ this.set('role', undefined);
62
+ this.set('tabindex', -1);
63
+ this.set('tooltip', false);
64
+ this.set('tooltipPosition', 's');
65
+ this.set('type', 'button');
66
+ this.set('withText', false);
67
+ this.set('withKeystroke', false);
68
+ this.children = this.createCollection();
69
+ this.labelView = this._setupLabelView(labelView);
70
+ this.iconView = new IconView();
71
+ this.iconView.extendTemplate({
72
+ attributes: {
73
+ class: 'ck-button__icon'
74
+ }
75
+ });
76
+ this.keystrokeView = this._createKeystrokeView();
77
+ this.bind('_tooltipString').to(this, 'tooltip', this, 'label', this, 'keystroke', this._getTooltipString.bind(this));
78
+ const template = {
79
+ tag: 'button',
80
+ attributes: {
81
+ class: [
82
+ 'ck',
83
+ 'ck-button',
84
+ bind.to('class'),
85
+ bind.if('isEnabled', 'ck-disabled', value => !value),
86
+ bind.if('isVisible', 'ck-hidden', value => !value),
87
+ bind.to('isOn', value => value ? 'ck-on' : 'ck-off'),
88
+ bind.if('withText', 'ck-button_with-text'),
89
+ bind.if('withKeystroke', 'ck-button_with-keystroke')
90
+ ],
91
+ role: bind.to('role'),
92
+ type: bind.to('type', value => value ? value : 'button'),
93
+ tabindex: bind.to('tabindex'),
94
+ 'aria-checked': bind.to('_ariaChecked'),
95
+ 'aria-pressed': bind.to('_ariaPressed'),
96
+ 'aria-label': bind.to('ariaLabel'),
97
+ 'aria-labelledby': bind.to('ariaLabelledBy'),
98
+ 'aria-disabled': bind.if('isEnabled', true, value => !value),
99
+ 'data-cke-tooltip-text': bind.to('_tooltipString'),
100
+ 'data-cke-tooltip-position': bind.to('tooltipPosition')
101
+ },
102
+ children: this.children,
103
+ on: {
104
+ click: bind.to(evt => {
105
+ // We can't make the button disabled using the disabled attribute, because it won't be focusable.
106
+ // Though, shouldn't this condition be moved to the button controller?
107
+ if (this.isEnabled) {
108
+ this.fire('execute');
109
+ }
110
+ else {
111
+ // Prevent the default when button is disabled, to block e.g.
112
+ // automatic form submitting. See ckeditor/ckeditor5-link#74.
113
+ evt.preventDefault();
114
+ }
115
+ })
116
+ }
117
+ };
118
+ this.bind('_ariaPressed').to(this, 'isOn', this, 'isToggleable', this, 'role', (isOn, isToggleable, role) => {
119
+ if (!isToggleable || isCheckableRole(role)) {
120
+ return false;
121
+ }
122
+ return String(!!isOn);
123
+ });
124
+ this.bind('_ariaChecked').to(this, 'isOn', this, 'isToggleable', this, 'role', (isOn, isToggleable, role) => {
125
+ if (!isToggleable || !isCheckableRole(role)) {
126
+ return false;
127
+ }
128
+ return String(!!isOn);
129
+ });
130
+ // On Safari we have to force the focus on a button on click as it's the only browser
131
+ // that doesn't do that automatically. See #12115.
132
+ if (env.isSafari) {
133
+ if (!this._focusDelayed) {
134
+ this._focusDelayed = delay(() => this.focus(), 0);
135
+ }
136
+ template.on.mousedown = bind.to(() => {
137
+ this._focusDelayed();
138
+ });
139
+ template.on.mouseup = bind.to(() => {
140
+ this._focusDelayed.cancel();
141
+ });
142
+ }
143
+ this.setTemplate(template);
144
+ }
145
+ /**
146
+ * @inheritDoc
147
+ */
148
+ render() {
149
+ super.render();
150
+ if (this.icon) {
151
+ this.iconView.bind('content').to(this, 'icon');
152
+ this.children.add(this.iconView);
153
+ }
154
+ this.children.add(this.labelView);
155
+ if (this.withKeystroke && this.keystroke) {
156
+ this.children.add(this.keystrokeView);
157
+ }
158
+ }
159
+ /**
160
+ * Focuses the {@link #element} of the button.
161
+ */
162
+ focus() {
163
+ this.element.focus();
164
+ }
165
+ /**
166
+ * @inheritDoc
167
+ */
168
+ destroy() {
169
+ if (this._focusDelayed) {
170
+ this._focusDelayed.cancel();
171
+ }
172
+ super.destroy();
173
+ }
174
+ /**
175
+ * Binds the label view instance it with button attributes.
176
+ */
177
+ _setupLabelView(labelView) {
178
+ labelView.bind('text', 'style', 'id').to(this, 'label', 'labelStyle', 'ariaLabelledBy');
179
+ return labelView;
180
+ }
181
+ /**
182
+ * Creates a view that displays a keystroke next to a {@link #labelView label }
183
+ * and binds it with button attributes.
184
+ */
185
+ _createKeystrokeView() {
186
+ const keystrokeView = new View();
187
+ keystrokeView.setTemplate({
188
+ tag: 'span',
189
+ attributes: {
190
+ class: [
191
+ 'ck',
192
+ 'ck-button__keystroke'
193
+ ]
194
+ },
195
+ children: [
196
+ {
197
+ text: this.bindTemplate.to('keystroke', text => getEnvKeystrokeText(text))
198
+ }
199
+ ]
200
+ });
201
+ return keystrokeView;
202
+ }
203
+ /**
204
+ * Gets the text for the tooltip from the combination of
205
+ * {@link #tooltip}, {@link #label} and {@link #keystroke} attributes.
206
+ *
207
+ * @see #tooltip
208
+ * @see #_tooltipString
209
+ * @param tooltip Button tooltip.
210
+ * @param label Button label.
211
+ * @param keystroke Button keystroke.
212
+ */
213
+ _getTooltipString(tooltip, label, keystroke) {
214
+ if (tooltip) {
215
+ if (typeof tooltip == 'string') {
216
+ return tooltip;
217
+ }
218
+ else {
219
+ if (keystroke) {
220
+ keystroke = getEnvKeystrokeText(keystroke);
221
+ }
222
+ if (tooltip instanceof Function) {
223
+ return tooltip(label, keystroke);
224
+ }
225
+ else {
226
+ return `${label}${keystroke ? ` (${keystroke})` : ''}`;
227
+ }
228
+ }
229
+ }
230
+ return '';
231
+ }
232
+ }
233
+ /**
234
+ * Checks if `aria-checkbox` can be used with specified role.
235
+ */
236
+ function isCheckableRole(role) {
237
+ switch (role) {
238
+ case 'radio':
239
+ case 'checkbox':
240
+ case 'option':
241
+ case 'switch':
242
+ case 'menuitemcheckbox':
243
+ case 'menuitemradio':
244
+ return true;
245
+ default:
246
+ return false;
247
+ }
248
+ }
@@ -0,0 +1,107 @@
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/button/filedialogbuttonview
7
+ */
8
+ import View from '../view.js';
9
+ import ButtonView from './buttonview.js';
10
+ import type { Mixed } from '@ckeditor/ckeditor5-utils';
11
+ import ListItemButtonView from './listitembuttonview.js';
12
+ declare const FileDialogButtonView_base: Mixed<typeof ButtonView, FileDialogButtonViewBase>;
13
+ /**
14
+ * The file dialog button view.
15
+ *
16
+ * This component provides a button that opens the native file selection dialog.
17
+ * It can be used to implement the UI of a file upload feature.
18
+ *
19
+ * ```ts
20
+ * const view = new FileDialogButtonView( locale );
21
+ *
22
+ * view.set( {
23
+ * acceptedType: 'image/*',
24
+ * allowMultipleFiles: true
25
+ * label: t( 'Insert image' ),
26
+ * icon: imageIcon,
27
+ * tooltip: true
28
+ * } );
29
+ *
30
+ * view.on( 'done', ( evt, files ) => {
31
+ * for ( const file of Array.from( files ) ) {
32
+ * console.log( 'Selected file', file );
33
+ * }
34
+ * } );
35
+ * ```
36
+ */
37
+ export default class FileDialogButtonView extends /* #__PURE__ */ FileDialogButtonView_base {
38
+ }
39
+ declare const FileDialogListItemButtonView_base: Mixed<typeof ListItemButtonView, FileDialogButtonViewBase>;
40
+ /**
41
+ * The file dialog button view used in a lists.
42
+ *
43
+ * This component provides a button that opens the native file selection dialog.
44
+ * It can be used to implement the UI of a file upload feature.
45
+ *
46
+ * ```ts
47
+ * const view = new FileDialogListItemButtonView( locale );
48
+ *
49
+ * view.set( {
50
+ * acceptedType: 'image/*',
51
+ * allowMultipleFiles: true
52
+ * label: t( 'Insert image' ),
53
+ * icon: imageIcon,
54
+ * tooltip: true
55
+ * } );
56
+ *
57
+ * view.on( 'done', ( evt, files ) => {
58
+ * for ( const file of Array.from( files ) ) {
59
+ * console.log( 'Selected file', file );
60
+ * }
61
+ * } );
62
+ * ```
63
+ */
64
+ export declare class FileDialogListItemButtonView extends /* #__PURE__ */ FileDialogListItemButtonView_base {
65
+ }
66
+ /**
67
+ * Represents the base view for a file dialog button component.
68
+ */
69
+ type FileDialogButtonViewBase = View & {
70
+ /**
71
+ * The button view of the component.
72
+ *
73
+ * @deprecated
74
+ */
75
+ buttonView: ButtonView;
76
+ /**
77
+ * Accepted file types. Can be provided in form of file extensions, media type or one of:
78
+ * * `audio/*`,
79
+ * * `video/*`,
80
+ * * `image/*`.
81
+ *
82
+ * @observable
83
+ */
84
+ acceptedType: string;
85
+ /**
86
+ * Indicates if multiple files can be selected. Defaults to `true`.
87
+ *
88
+ * @observable
89
+ */
90
+ allowMultipleFiles: boolean;
91
+ };
92
+ /**
93
+ * Fired when file dialog is closed with file selected.
94
+ *
95
+ * ```ts
96
+ * view.on( 'done', ( evt, files ) => {
97
+ * for ( const file of files ) {
98
+ * console.log( 'Selected file', file );
99
+ * }
100
+ * }
101
+ * ```
102
+ */
103
+ export type FileInputViewDoneEvent = {
104
+ name: 'done';
105
+ args: [files: FileList];
106
+ };
107
+ export {};
@@ -0,0 +1,145 @@
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/button/filedialogbuttonview
7
+ */
8
+ import View from '../view.js';
9
+ import ButtonView from './buttonview.js';
10
+ import ListItemButtonView from './listitembuttonview.js';
11
+ /**
12
+ * The file dialog button view.
13
+ *
14
+ * This component provides a button that opens the native file selection dialog.
15
+ * It can be used to implement the UI of a file upload feature.
16
+ *
17
+ * ```ts
18
+ * const view = new FileDialogButtonView( locale );
19
+ *
20
+ * view.set( {
21
+ * acceptedType: 'image/*',
22
+ * allowMultipleFiles: true
23
+ * label: t( 'Insert image' ),
24
+ * icon: imageIcon,
25
+ * tooltip: true
26
+ * } );
27
+ *
28
+ * view.on( 'done', ( evt, files ) => {
29
+ * for ( const file of Array.from( files ) ) {
30
+ * console.log( 'Selected file', file );
31
+ * }
32
+ * } );
33
+ * ```
34
+ */
35
+ export default class FileDialogButtonView extends /* #__PURE__ */ FileDialogViewMixin(ButtonView) {
36
+ }
37
+ /**
38
+ * The file dialog button view used in a lists.
39
+ *
40
+ * This component provides a button that opens the native file selection dialog.
41
+ * It can be used to implement the UI of a file upload feature.
42
+ *
43
+ * ```ts
44
+ * const view = new FileDialogListItemButtonView( locale );
45
+ *
46
+ * view.set( {
47
+ * acceptedType: 'image/*',
48
+ * allowMultipleFiles: true
49
+ * label: t( 'Insert image' ),
50
+ * icon: imageIcon,
51
+ * tooltip: true
52
+ * } );
53
+ *
54
+ * view.on( 'done', ( evt, files ) => {
55
+ * for ( const file of Array.from( files ) ) {
56
+ * console.log( 'Selected file', file );
57
+ * }
58
+ * } );
59
+ * ```
60
+ */
61
+ export class FileDialogListItemButtonView extends /* #__PURE__ */ FileDialogViewMixin(ListItemButtonView) {
62
+ }
63
+ /**
64
+ * Mixin function that enhances a base button view class with file dialog functionality. It is used
65
+ * to create a button view class that opens the native select file dialog when clicked.
66
+ *
67
+ * The enhanced view includes a button and a hidden file input. When the button is clicked, the file dialog is opened.
68
+ * The mixin adds properties and methods to the base class to handle the file selection.
69
+ *
70
+ * @param view The base class to be enhanced with file dialog functionality.
71
+ * @returns A new class that extends the base class and includes the file dialog functionality.
72
+ */
73
+ function FileDialogViewMixin(view) {
74
+ class FileDialogView extends view {
75
+ /**
76
+ * @inheritDoc
77
+ */
78
+ constructor(...args) {
79
+ super(...args);
80
+ // For backward compatibility.
81
+ this.buttonView = this;
82
+ this._fileInputView = new FileInputView(this.locale);
83
+ this._fileInputView.bind('acceptedType').to(this);
84
+ this._fileInputView.bind('allowMultipleFiles').to(this);
85
+ this._fileInputView.delegate('done').to(this);
86
+ this.on('execute', () => {
87
+ this._fileInputView.open();
88
+ });
89
+ this.extendTemplate({
90
+ attributes: {
91
+ class: 'ck-file-dialog-button'
92
+ }
93
+ });
94
+ }
95
+ /**
96
+ * @inheritDoc
97
+ */
98
+ render() {
99
+ super.render();
100
+ this.children.add(this._fileInputView);
101
+ }
102
+ }
103
+ return FileDialogView;
104
+ }
105
+ /**
106
+ * The hidden file input view class.
107
+ */
108
+ class FileInputView extends View {
109
+ /**
110
+ * @inheritDoc
111
+ */
112
+ constructor(locale) {
113
+ super(locale);
114
+ this.set('acceptedType', undefined);
115
+ this.set('allowMultipleFiles', false);
116
+ const bind = this.bindTemplate;
117
+ this.setTemplate({
118
+ tag: 'input',
119
+ attributes: {
120
+ class: [
121
+ 'ck-hidden'
122
+ ],
123
+ type: 'file',
124
+ tabindex: '-1',
125
+ accept: bind.to('acceptedType'),
126
+ multiple: bind.to('allowMultipleFiles')
127
+ },
128
+ on: {
129
+ // Removing from code coverage since we cannot programmatically set input element files.
130
+ change: bind.to(/* istanbul ignore next -- @preserve */ () => {
131
+ if (this.element && this.element.files && this.element.files.length) {
132
+ this.fire('done', this.element.files);
133
+ }
134
+ this.element.value = '';
135
+ })
136
+ }
137
+ });
138
+ }
139
+ /**
140
+ * Opens file dialog.
141
+ */
142
+ open() {
143
+ this.element.click();
144
+ }
145
+ }
@@ -0,0 +1,78 @@
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/button/listitembuttonview
7
+ */
8
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
9
+ import type ButtonLabel from './buttonlabel.js';
10
+ import type ViewCollection from '../viewcollection.js';
11
+ import ButtonView from './buttonview.js';
12
+ import View from '../view.js';
13
+ import '../../theme/components/button/listitembutton.css';
14
+ /**
15
+ * Button that is used as dropdown list item entry.
16
+ */
17
+ export default class ListItemButtonView extends ButtonView {
18
+ /**
19
+ * Indicates whether the button view has reserved space for a check holder.
20
+ *
21
+ * @observable
22
+ */
23
+ hasCheckSpace: boolean;
24
+ /**
25
+ * The flag that indicates if the button should render a check holder.
26
+ *
27
+ * @internal
28
+ * @readonly
29
+ * @observable
30
+ */
31
+ _hasCheck: boolean;
32
+ /**
33
+ * Holds the view for the check icon of a button list item.
34
+ */
35
+ private readonly _checkIconHolderView;
36
+ /**
37
+ * @inheritDoc
38
+ */
39
+ constructor(locale?: Locale, labelView?: ButtonLabel);
40
+ /**
41
+ * @inheritDoc
42
+ */
43
+ render(): void;
44
+ /**
45
+ * Renders the check icon if the button is toggleable.
46
+ */
47
+ private _watchCheckIconHolderMount;
48
+ }
49
+ export declare class CheckIconHolderView extends View {
50
+ /**
51
+ * Collection of child views.
52
+ */
53
+ readonly children: ViewCollection<View>;
54
+ /**
55
+ * Indicates whether the button is in the "on" state.
56
+ */
57
+ isOn: boolean;
58
+ /**
59
+ * The view for the check icon of the button list item.
60
+ */
61
+ private readonly _checkIconView;
62
+ /**
63
+ * @inheritDoc
64
+ */
65
+ constructor();
66
+ /**
67
+ * @inheritDoc
68
+ */
69
+ render(): void;
70
+ /**
71
+ * Renders the check icon if the button is toggleable.
72
+ */
73
+ private _watchCheckIconMount;
74
+ /**
75
+ * Creates a check icon view.
76
+ */
77
+ private _createCheckIconView;
78
+ }
@@ -0,0 +1,129 @@
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 { icons } from '@ckeditor/ckeditor5-core';
6
+ import ButtonView from './buttonview.js';
7
+ import ButtonLabelView from './buttonlabelview.js';
8
+ import IconView from '../icon/iconview.js';
9
+ import View from '../view.js';
10
+ import '../../theme/components/button/listitembutton.css';
11
+ /**
12
+ * Button that is used as dropdown list item entry.
13
+ */
14
+ export default class ListItemButtonView extends ButtonView {
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ constructor(locale, labelView = new ButtonLabelView()) {
19
+ super(locale, labelView);
20
+ /**
21
+ * Holds the view for the check icon of a button list item.
22
+ */
23
+ this._checkIconHolderView = new CheckIconHolderView();
24
+ this.set({
25
+ hasCheckSpace: false,
26
+ _hasCheck: this.isToggleable
27
+ });
28
+ const bind = this.bindTemplate;
29
+ this.extendTemplate({
30
+ attributes: {
31
+ class: [
32
+ 'ck-list-item-button',
33
+ bind.if('isToggleable', 'ck-list-item-button_toggleable')
34
+ ]
35
+ }
36
+ });
37
+ this.bind('_hasCheck').to(this, 'hasCheckSpace', this, 'isToggleable', (hasCheckSpace, isToggleable) => hasCheckSpace || isToggleable);
38
+ }
39
+ /**
40
+ * @inheritDoc
41
+ */
42
+ render() {
43
+ super.render();
44
+ if (this._hasCheck) {
45
+ this.children.add(this._checkIconHolderView, 0);
46
+ }
47
+ this._watchCheckIconHolderMount();
48
+ }
49
+ /**
50
+ * Renders the check icon if the button is toggleable.
51
+ */
52
+ _watchCheckIconHolderMount() {
53
+ this._checkIconHolderView
54
+ .bind('isOn')
55
+ .to(this, 'isOn', value => this.isToggleable && value);
56
+ this.on('change:_hasCheck', (evt, propertyName, hasCheck) => {
57
+ const { children, _checkIconHolderView } = this;
58
+ if (hasCheck) {
59
+ children.add(_checkIconHolderView, 0);
60
+ }
61
+ else {
62
+ children.remove(_checkIconHolderView);
63
+ }
64
+ });
65
+ }
66
+ }
67
+ export class CheckIconHolderView extends View {
68
+ /**
69
+ * @inheritDoc
70
+ */
71
+ constructor() {
72
+ super();
73
+ /**
74
+ * The view for the check icon of the button list item.
75
+ */
76
+ this._checkIconView = this._createCheckIconView();
77
+ const bind = this.bindTemplate;
78
+ this.children = this.createCollection();
79
+ this.set('isOn', false);
80
+ this.setTemplate({
81
+ tag: 'span',
82
+ children: this.children,
83
+ attributes: {
84
+ class: [
85
+ 'ck',
86
+ 'ck-list-item-button__check-holder',
87
+ bind.to('isOn', isOn => isOn ? 'ck-on' : 'ck-off')
88
+ ]
89
+ }
90
+ });
91
+ }
92
+ /**
93
+ * @inheritDoc
94
+ */
95
+ render() {
96
+ super.render();
97
+ if (this.isOn) {
98
+ this.children.add(this._checkIconView, 0);
99
+ }
100
+ this._watchCheckIconMount();
101
+ }
102
+ /**
103
+ * Renders the check icon if the button is toggleable.
104
+ */
105
+ _watchCheckIconMount() {
106
+ this.on('change:isOn', (evt, propertyName, isOn) => {
107
+ const { children, _checkIconView } = this;
108
+ if (isOn && !children.has(_checkIconView)) {
109
+ children.add(_checkIconView);
110
+ }
111
+ else if (!isOn && children.has(_checkIconView)) {
112
+ children.remove(_checkIconView);
113
+ }
114
+ });
115
+ }
116
+ /**
117
+ * Creates a check icon view.
118
+ */
119
+ _createCheckIconView() {
120
+ const iconView = new IconView();
121
+ iconView.content = icons.check;
122
+ iconView.extendTemplate({
123
+ attributes: {
124
+ class: 'ck-list-item-button__check-icon'
125
+ }
126
+ });
127
+ return iconView;
128
+ }
129
+ }