@ckeditor/ckeditor5-ui 41.3.1 → 41.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/index-content.css +4 -0
  2. package/dist/index-editor.css +497 -0
  3. package/dist/index.css +942 -0
  4. package/dist/index.css.map +1 -0
  5. package/dist/index.js +14343 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/translations/af.d.ts +8 -0
  8. package/dist/translations/af.js +5 -0
  9. package/dist/translations/af.umd.js +11 -0
  10. package/dist/translations/ar.d.ts +8 -0
  11. package/dist/translations/ar.js +5 -0
  12. package/dist/translations/ar.umd.js +11 -0
  13. package/dist/translations/ast.d.ts +8 -0
  14. package/dist/translations/ast.js +5 -0
  15. package/dist/translations/ast.umd.js +11 -0
  16. package/dist/translations/az.d.ts +8 -0
  17. package/dist/translations/az.js +5 -0
  18. package/dist/translations/az.umd.js +11 -0
  19. package/dist/translations/bg.d.ts +8 -0
  20. package/dist/translations/bg.js +5 -0
  21. package/dist/translations/bg.umd.js +11 -0
  22. package/dist/translations/bn.d.ts +8 -0
  23. package/dist/translations/bn.js +5 -0
  24. package/dist/translations/bn.umd.js +11 -0
  25. package/dist/translations/bs.d.ts +8 -0
  26. package/dist/translations/bs.js +5 -0
  27. package/dist/translations/bs.umd.js +11 -0
  28. package/dist/translations/ca.d.ts +8 -0
  29. package/dist/translations/ca.js +5 -0
  30. package/dist/translations/ca.umd.js +11 -0
  31. package/dist/translations/cs.d.ts +8 -0
  32. package/dist/translations/cs.js +5 -0
  33. package/dist/translations/cs.umd.js +11 -0
  34. package/dist/translations/da.d.ts +8 -0
  35. package/dist/translations/da.js +5 -0
  36. package/dist/translations/da.umd.js +11 -0
  37. package/dist/translations/de-ch.d.ts +8 -0
  38. package/dist/translations/de-ch.js +5 -0
  39. package/dist/translations/de-ch.umd.js +11 -0
  40. package/dist/translations/de.d.ts +8 -0
  41. package/dist/translations/de.js +5 -0
  42. package/dist/translations/de.umd.js +11 -0
  43. package/dist/translations/el.d.ts +8 -0
  44. package/dist/translations/el.js +5 -0
  45. package/dist/translations/el.umd.js +11 -0
  46. package/dist/translations/en-au.d.ts +8 -0
  47. package/dist/translations/en-au.js +5 -0
  48. package/dist/translations/en-au.umd.js +11 -0
  49. package/dist/translations/en-gb.d.ts +8 -0
  50. package/dist/translations/en-gb.js +5 -0
  51. package/dist/translations/en-gb.umd.js +11 -0
  52. package/dist/translations/en.d.ts +8 -0
  53. package/dist/translations/en.js +5 -0
  54. package/dist/translations/en.umd.js +11 -0
  55. package/dist/translations/eo.d.ts +8 -0
  56. package/dist/translations/eo.js +5 -0
  57. package/dist/translations/eo.umd.js +11 -0
  58. package/dist/translations/es-co.d.ts +8 -0
  59. package/dist/translations/es-co.js +5 -0
  60. package/dist/translations/es-co.umd.js +11 -0
  61. package/dist/translations/es.d.ts +8 -0
  62. package/dist/translations/es.js +5 -0
  63. package/dist/translations/es.umd.js +11 -0
  64. package/dist/translations/et.d.ts +8 -0
  65. package/dist/translations/et.js +5 -0
  66. package/dist/translations/et.umd.js +11 -0
  67. package/dist/translations/eu.d.ts +8 -0
  68. package/dist/translations/eu.js +5 -0
  69. package/dist/translations/eu.umd.js +11 -0
  70. package/dist/translations/fa.d.ts +8 -0
  71. package/dist/translations/fa.js +5 -0
  72. package/dist/translations/fa.umd.js +11 -0
  73. package/dist/translations/fi.d.ts +8 -0
  74. package/dist/translations/fi.js +5 -0
  75. package/dist/translations/fi.umd.js +11 -0
  76. package/dist/translations/fr.d.ts +8 -0
  77. package/dist/translations/fr.js +5 -0
  78. package/dist/translations/fr.umd.js +11 -0
  79. package/dist/translations/gl.d.ts +8 -0
  80. package/dist/translations/gl.js +5 -0
  81. package/dist/translations/gl.umd.js +11 -0
  82. package/dist/translations/he.d.ts +8 -0
  83. package/dist/translations/he.js +5 -0
  84. package/dist/translations/he.umd.js +11 -0
  85. package/dist/translations/hi.d.ts +8 -0
  86. package/dist/translations/hi.js +5 -0
  87. package/dist/translations/hi.umd.js +11 -0
  88. package/dist/translations/hr.d.ts +8 -0
  89. package/dist/translations/hr.js +5 -0
  90. package/dist/translations/hr.umd.js +11 -0
  91. package/dist/translations/hu.d.ts +8 -0
  92. package/dist/translations/hu.js +5 -0
  93. package/dist/translations/hu.umd.js +11 -0
  94. package/dist/translations/id.d.ts +8 -0
  95. package/dist/translations/id.js +5 -0
  96. package/dist/translations/id.umd.js +11 -0
  97. package/dist/translations/it.d.ts +8 -0
  98. package/dist/translations/it.js +5 -0
  99. package/dist/translations/it.umd.js +11 -0
  100. package/dist/translations/ja.d.ts +8 -0
  101. package/dist/translations/ja.js +5 -0
  102. package/dist/translations/ja.umd.js +11 -0
  103. package/dist/translations/jv.d.ts +8 -0
  104. package/dist/translations/jv.js +5 -0
  105. package/dist/translations/jv.umd.js +11 -0
  106. package/dist/translations/km.d.ts +8 -0
  107. package/dist/translations/km.js +5 -0
  108. package/dist/translations/km.umd.js +11 -0
  109. package/dist/translations/kn.d.ts +8 -0
  110. package/dist/translations/kn.js +5 -0
  111. package/dist/translations/kn.umd.js +11 -0
  112. package/dist/translations/ko.d.ts +8 -0
  113. package/dist/translations/ko.js +5 -0
  114. package/dist/translations/ko.umd.js +11 -0
  115. package/dist/translations/ku.d.ts +8 -0
  116. package/dist/translations/ku.js +5 -0
  117. package/dist/translations/ku.umd.js +11 -0
  118. package/dist/translations/lt.d.ts +8 -0
  119. package/dist/translations/lt.js +5 -0
  120. package/dist/translations/lt.umd.js +11 -0
  121. package/dist/translations/lv.d.ts +8 -0
  122. package/dist/translations/lv.js +5 -0
  123. package/dist/translations/lv.umd.js +11 -0
  124. package/dist/translations/ms.d.ts +8 -0
  125. package/dist/translations/ms.js +5 -0
  126. package/dist/translations/ms.umd.js +11 -0
  127. package/dist/translations/nb.d.ts +8 -0
  128. package/dist/translations/nb.js +5 -0
  129. package/dist/translations/nb.umd.js +11 -0
  130. package/dist/translations/ne.d.ts +8 -0
  131. package/dist/translations/ne.js +5 -0
  132. package/dist/translations/ne.umd.js +11 -0
  133. package/dist/translations/nl.d.ts +8 -0
  134. package/dist/translations/nl.js +5 -0
  135. package/dist/translations/nl.umd.js +11 -0
  136. package/dist/translations/no.d.ts +8 -0
  137. package/dist/translations/no.js +5 -0
  138. package/dist/translations/no.umd.js +11 -0
  139. package/dist/translations/pl.d.ts +8 -0
  140. package/dist/translations/pl.js +5 -0
  141. package/dist/translations/pl.umd.js +11 -0
  142. package/dist/translations/pt-br.d.ts +8 -0
  143. package/dist/translations/pt-br.js +5 -0
  144. package/dist/translations/pt-br.umd.js +11 -0
  145. package/dist/translations/pt.d.ts +8 -0
  146. package/dist/translations/pt.js +5 -0
  147. package/dist/translations/pt.umd.js +11 -0
  148. package/dist/translations/ro.d.ts +8 -0
  149. package/dist/translations/ro.js +5 -0
  150. package/dist/translations/ro.umd.js +11 -0
  151. package/dist/translations/ru.d.ts +8 -0
  152. package/dist/translations/ru.js +5 -0
  153. package/dist/translations/ru.umd.js +11 -0
  154. package/dist/translations/sk.d.ts +8 -0
  155. package/dist/translations/sk.js +5 -0
  156. package/dist/translations/sk.umd.js +11 -0
  157. package/dist/translations/sl.d.ts +8 -0
  158. package/dist/translations/sl.js +5 -0
  159. package/dist/translations/sl.umd.js +11 -0
  160. package/dist/translations/sq.d.ts +8 -0
  161. package/dist/translations/sq.js +5 -0
  162. package/dist/translations/sq.umd.js +11 -0
  163. package/dist/translations/sr-latn.d.ts +8 -0
  164. package/dist/translations/sr-latn.js +5 -0
  165. package/dist/translations/sr-latn.umd.js +11 -0
  166. package/dist/translations/sr.d.ts +8 -0
  167. package/dist/translations/sr.js +5 -0
  168. package/dist/translations/sr.umd.js +11 -0
  169. package/dist/translations/sv.d.ts +8 -0
  170. package/dist/translations/sv.js +5 -0
  171. package/dist/translations/sv.umd.js +11 -0
  172. package/dist/translations/th.d.ts +8 -0
  173. package/dist/translations/th.js +5 -0
  174. package/dist/translations/th.umd.js +11 -0
  175. package/dist/translations/ti.d.ts +8 -0
  176. package/dist/translations/ti.js +5 -0
  177. package/dist/translations/ti.umd.js +11 -0
  178. package/dist/translations/tk.d.ts +8 -0
  179. package/dist/translations/tk.js +5 -0
  180. package/dist/translations/tk.umd.js +11 -0
  181. package/dist/translations/tr.d.ts +8 -0
  182. package/dist/translations/tr.js +5 -0
  183. package/dist/translations/tr.umd.js +11 -0
  184. package/dist/translations/tt.d.ts +8 -0
  185. package/dist/translations/tt.js +5 -0
  186. package/dist/translations/tt.umd.js +11 -0
  187. package/dist/translations/ug.d.ts +8 -0
  188. package/dist/translations/ug.js +5 -0
  189. package/dist/translations/ug.umd.js +11 -0
  190. package/dist/translations/uk.d.ts +8 -0
  191. package/dist/translations/uk.js +5 -0
  192. package/dist/translations/uk.umd.js +11 -0
  193. package/dist/translations/ur.d.ts +8 -0
  194. package/dist/translations/ur.js +5 -0
  195. package/dist/translations/ur.umd.js +11 -0
  196. package/dist/translations/uz.d.ts +8 -0
  197. package/dist/translations/uz.js +5 -0
  198. package/dist/translations/uz.umd.js +11 -0
  199. package/dist/translations/vi.d.ts +8 -0
  200. package/dist/translations/vi.js +5 -0
  201. package/dist/translations/vi.umd.js +11 -0
  202. package/dist/translations/zh-cn.d.ts +8 -0
  203. package/dist/translations/zh-cn.js +5 -0
  204. package/dist/translations/zh-cn.umd.js +11 -0
  205. package/dist/translations/zh.d.ts +8 -0
  206. package/dist/translations/zh.js +5 -0
  207. package/dist/translations/zh.umd.js +11 -0
  208. package/dist/types/arialiveannouncer.d.ts +113 -0
  209. package/dist/types/augmentation.d.ts +92 -0
  210. package/dist/types/autocomplete/autocompleteview.d.ts +85 -0
  211. package/dist/types/bindings/addkeyboardhandlingforgrid.d.ts +31 -0
  212. package/dist/types/bindings/clickoutsidehandler.d.ts +32 -0
  213. package/dist/types/bindings/csstransitiondisablermixin.d.ts +44 -0
  214. package/dist/types/bindings/draggableviewmixin.d.ts +50 -0
  215. package/dist/types/bindings/injectcsstransitiondisabler.d.ts +63 -0
  216. package/dist/types/bindings/preventdefault.d.ts +37 -0
  217. package/dist/types/bindings/submithandler.d.ts +61 -0
  218. package/dist/types/button/button.d.ts +185 -0
  219. package/dist/types/button/buttonlabel.d.ts +38 -0
  220. package/dist/types/button/buttonlabelview.d.ts +35 -0
  221. package/dist/types/button/buttonview.d.ts +189 -0
  222. package/dist/types/button/filedialogbuttonview.d.ts +84 -0
  223. package/dist/types/button/switchbuttonview.d.ts +49 -0
  224. package/dist/types/collapsible/collapsibleview.d.ts +74 -0
  225. package/dist/types/colorgrid/colorgridview.d.ts +136 -0
  226. package/dist/types/colorgrid/colortileview.d.ts +32 -0
  227. package/dist/types/colorgrid/utils.d.ts +51 -0
  228. package/dist/types/colorpicker/colorpickerview.d.ts +177 -0
  229. package/dist/types/colorpicker/utils.d.ts +52 -0
  230. package/dist/types/colorselector/colorgridsfragmentview.d.ts +199 -0
  231. package/dist/types/colorselector/colorpickerfragmentview.d.ts +137 -0
  232. package/dist/types/colorselector/colorselectorview.d.ts +246 -0
  233. package/dist/types/colorselector/documentcolorcollection.d.ts +74 -0
  234. package/dist/types/componentfactory.d.ts +85 -0
  235. package/dist/types/dialog/dialog.d.ts +277 -0
  236. package/dist/types/dialog/dialogactionsview.d.ts +73 -0
  237. package/dist/types/dialog/dialogcontentview.d.ts +31 -0
  238. package/dist/types/dialog/dialogview.d.ts +260 -0
  239. package/dist/types/dropdown/button/dropdownbutton.d.ts +29 -0
  240. package/dist/types/dropdown/button/dropdownbuttonview.d.ts +52 -0
  241. package/dist/types/dropdown/button/splitbuttonview.d.ts +166 -0
  242. package/dist/types/dropdown/dropdownpanelfocusable.d.ts +25 -0
  243. package/dist/types/dropdown/dropdownpanelview.d.ts +66 -0
  244. package/dist/types/dropdown/dropdownview.d.ts +319 -0
  245. package/dist/types/dropdown/utils.d.ts +239 -0
  246. package/dist/types/editableui/editableuiview.d.ts +76 -0
  247. package/dist/types/editableui/inline/inlineeditableuiview.d.ts +44 -0
  248. package/dist/types/editorui/accessibilityhelp/accessibilityhelp.d.ts +55 -0
  249. package/dist/types/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +39 -0
  250. package/dist/types/editorui/bodycollection.d.ts +59 -0
  251. package/dist/types/editorui/boxed/boxededitoruiview.d.ts +44 -0
  252. package/dist/types/editorui/editorui.d.ts +292 -0
  253. package/dist/types/editorui/editoruiview.d.ts +43 -0
  254. package/dist/types/editorui/poweredby.d.ts +75 -0
  255. package/dist/types/focuscycler.d.ts +249 -0
  256. package/dist/types/formheader/formheaderview.d.ts +63 -0
  257. package/dist/types/highlightedtext/highlightedtextview.d.ts +42 -0
  258. package/dist/types/icon/iconview.d.ts +92 -0
  259. package/dist/types/iframe/iframeview.d.ts +54 -0
  260. package/dist/types/index.d.ts +87 -0
  261. package/dist/types/input/inputbase.d.ts +123 -0
  262. package/dist/types/input/inputview.d.ts +40 -0
  263. package/dist/types/inputnumber/inputnumberview.d.ts +53 -0
  264. package/dist/types/inputtext/inputtextview.d.ts +22 -0
  265. package/dist/types/label/labelview.d.ts +40 -0
  266. package/dist/types/labeledfield/labeledfieldview.d.ts +191 -0
  267. package/dist/types/labeledfield/utils.d.ts +127 -0
  268. package/dist/types/labeledinput/labeledinputview.d.ts +129 -0
  269. package/dist/types/list/listitemgroupview.d.ts +63 -0
  270. package/dist/types/list/listitemview.d.ts +40 -0
  271. package/dist/types/list/listseparatorview.d.ts +22 -0
  272. package/dist/types/list/listview.d.ts +128 -0
  273. package/dist/types/menubar/menubarmenubuttonview.d.ts +39 -0
  274. package/dist/types/menubar/menubarmenulistitembuttonview.d.ts +25 -0
  275. package/dist/types/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +27 -0
  276. package/dist/types/menubar/menubarmenulistitemview.d.ts +29 -0
  277. package/dist/types/menubar/menubarmenulistview.d.ts +28 -0
  278. package/dist/types/menubar/menubarmenupanelview.d.ts +57 -0
  279. package/dist/types/menubar/menubarmenuview.d.ts +113 -0
  280. package/dist/types/menubar/menubarview.d.ts +168 -0
  281. package/dist/types/menubar/utils.d.ts +443 -0
  282. package/dist/types/model.d.ts +26 -0
  283. package/dist/types/notification/notification.d.ts +215 -0
  284. package/dist/types/panel/balloon/balloonpanelview.d.ts +689 -0
  285. package/dist/types/panel/balloon/contextualballoon.d.ts +303 -0
  286. package/dist/types/panel/sticky/stickypanelview.d.ts +160 -0
  287. package/dist/types/search/filteredview.d.ts +35 -0
  288. package/dist/types/search/searchinfoview.d.ts +49 -0
  289. package/dist/types/search/searchresultsview.d.ts +58 -0
  290. package/dist/types/search/text/searchtextqueryview.d.ts +80 -0
  291. package/dist/types/search/text/searchtextview.d.ts +223 -0
  292. package/dist/types/spinner/spinnerview.d.ts +29 -0
  293. package/dist/types/template.d.ts +946 -0
  294. package/dist/types/textarea/textareaview.d.ts +108 -0
  295. package/dist/types/toolbar/balloon/balloontoolbar.d.ts +121 -0
  296. package/dist/types/toolbar/block/blockbuttonview.d.ts +39 -0
  297. package/dist/types/toolbar/block/blocktoolbar.d.ts +157 -0
  298. package/dist/types/toolbar/normalizetoolbarconfig.d.ts +44 -0
  299. package/dist/types/toolbar/toolbarlinebreakview.d.ts +22 -0
  300. package/dist/types/toolbar/toolbarseparatorview.d.ts +22 -0
  301. package/dist/types/toolbar/toolbarview.d.ts +271 -0
  302. package/dist/types/tooltipmanager.d.ts +199 -0
  303. package/dist/types/view.d.ts +426 -0
  304. package/dist/types/viewcollection.d.ts +143 -0
  305. package/lang/contexts.json +2 -1
  306. package/lang/translations/af.po +4 -0
  307. package/lang/translations/ar.po +4 -0
  308. package/lang/translations/ast.po +4 -0
  309. package/lang/translations/az.po +4 -0
  310. package/lang/translations/bg.po +4 -0
  311. package/lang/translations/bn.po +4 -0
  312. package/lang/translations/bs.po +4 -0
  313. package/lang/translations/ca.po +4 -0
  314. package/lang/translations/cs.po +4 -0
  315. package/lang/translations/da.po +4 -0
  316. package/lang/translations/de-ch.po +4 -0
  317. package/lang/translations/de.po +4 -0
  318. package/lang/translations/el.po +4 -0
  319. package/lang/translations/en-au.po +4 -0
  320. package/lang/translations/en-gb.po +4 -0
  321. package/lang/translations/en.po +4 -0
  322. package/lang/translations/eo.po +4 -0
  323. package/lang/translations/es-co.po +4 -0
  324. package/lang/translations/es.po +4 -0
  325. package/lang/translations/et.po +4 -0
  326. package/lang/translations/eu.po +4 -0
  327. package/lang/translations/fa.po +4 -0
  328. package/lang/translations/fi.po +4 -0
  329. package/lang/translations/fr.po +4 -0
  330. package/lang/translations/gl.po +4 -0
  331. package/lang/translations/he.po +4 -0
  332. package/lang/translations/hi.po +4 -0
  333. package/lang/translations/hr.po +4 -0
  334. package/lang/translations/hu.po +4 -0
  335. package/lang/translations/id.po +4 -0
  336. package/lang/translations/it.po +4 -0
  337. package/lang/translations/ja.po +4 -0
  338. package/lang/translations/jv.po +4 -0
  339. package/lang/translations/km.po +4 -0
  340. package/lang/translations/kn.po +4 -0
  341. package/lang/translations/ko.po +4 -0
  342. package/lang/translations/ku.po +4 -0
  343. package/lang/translations/lt.po +4 -0
  344. package/lang/translations/lv.po +4 -0
  345. package/lang/translations/ms.po +4 -0
  346. package/lang/translations/nb.po +4 -0
  347. package/lang/translations/ne.po +4 -0
  348. package/lang/translations/nl.po +4 -0
  349. package/lang/translations/no.po +4 -0
  350. package/lang/translations/pl.po +4 -0
  351. package/lang/translations/pt-br.po +4 -0
  352. package/lang/translations/pt.po +4 -0
  353. package/lang/translations/ro.po +4 -0
  354. package/lang/translations/ru.po +4 -0
  355. package/lang/translations/sk.po +4 -0
  356. package/lang/translations/sl.po +4 -0
  357. package/lang/translations/sq.po +4 -0
  358. package/lang/translations/sr-latn.po +4 -0
  359. package/lang/translations/sr.po +4 -0
  360. package/lang/translations/sv.po +4 -0
  361. package/lang/translations/th.po +4 -0
  362. package/lang/translations/ti.po +214 -0
  363. package/lang/translations/tk.po +4 -0
  364. package/lang/translations/tr.po +4 -0
  365. package/lang/translations/tt.po +4 -0
  366. package/lang/translations/ug.po +4 -0
  367. package/lang/translations/uk.po +4 -0
  368. package/lang/translations/ur.po +4 -0
  369. package/lang/translations/uz.po +4 -0
  370. package/lang/translations/vi.po +4 -0
  371. package/lang/translations/zh-cn.po +4 -0
  372. package/lang/translations/zh.po +4 -0
  373. package/package.json +4 -3
  374. package/src/arialiveannouncer.d.ts +34 -23
  375. package/src/arialiveannouncer.js +80 -30
  376. package/src/colorgrid/colortileview.d.ts +1 -1
  377. package/src/colorgrid/colortileview.js +3 -1
  378. package/src/colorpicker/colorpickerview.d.ts +32 -1
  379. package/src/colorpicker/colorpickerview.js +62 -13
  380. package/src/colorselector/colorpickerfragmentview.d.ts +4 -0
  381. package/src/colorselector/colorpickerfragmentview.js +13 -5
  382. package/src/colorselector/colorselectorview.js +1 -0
  383. package/src/index.d.ts +4 -4
  384. package/src/index.js +3 -2
  385. package/src/menubar/utils.d.ts +8 -1
  386. package/src/menubar/utils.js +26 -2
  387. package/src/toolbar/toolbarview.js +2 -3
  388. package/theme/components/arialiveannouncer/arialiveannouncer.css +4 -0
  389. package/theme/components/tooltip/tooltip.css +4 -0
  390. package/theme/globals/globals.css +0 -1
  391. package/theme/mixins/_mediacolors.css +20 -0
  392. package/theme/globals/_reset.css +0 -13
@@ -0,0 +1,303 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/panel/balloon/contextualballoon
11
+ */
12
+ import BalloonPanelView from './balloonpanelview.js';
13
+ import View from '../../view.js';
14
+ import ButtonView from '../../button/buttonview.js';
15
+ import type ViewCollection from '../../viewcollection.js';
16
+ import { Plugin, type Editor } from '@ckeditor/ckeditor5-core';
17
+ import { FocusTracker, type Locale, type PositionOptions } from '@ckeditor/ckeditor5-utils';
18
+ import '../../../theme/components/panel/balloonrotator.css';
19
+ import '../../../theme/components/panel/fakepanel.css';
20
+ /**
21
+ * Provides the common contextual balloon for the editor.
22
+ *
23
+ * The role of this plugin is to unify the contextual balloons logic, simplify views management and help
24
+ * avoid the unnecessary complexity of handling multiple {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView}
25
+ * instances in the editor.
26
+ *
27
+ * This plugin allows for creating single or multiple panel stacks.
28
+ *
29
+ * Each stack may have multiple views, with the one on the top being visible. When the visible view is removed from the stack,
30
+ * the previous view becomes visible.
31
+ *
32
+ * It might be useful to implement nested navigation in a balloon. For instance, a toolbar view may contain a link button.
33
+ * When you click it, a link view (which lets you set the URL) is created and put on top of the toolbar view, so the link panel
34
+ * is displayed. When you finish editing the link and close (remove) the link view, the toolbar view is visible again.
35
+ *
36
+ * However, there are cases when there are multiple independent balloons to be displayed, for instance, if the selection
37
+ * is inside two inline comments at the same time. For such cases, you can create two independent panel stacks.
38
+ * The contextual balloon plugin will create a navigation bar to let the users switch between these panel stacks using the "Next"
39
+ * and "Previous" buttons.
40
+ *
41
+ * If there are no views in the current stack, the balloon panel will try to switch to the next stack. If there are no
42
+ * panels in any stack, the balloon panel will be hidden.
43
+ *
44
+ * **Note**: To force the balloon panel to show only one view, even if there are other stacks, use the `singleViewMode=true` option
45
+ * when {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon#add adding} a view to a panel.
46
+ *
47
+ * From the implementation point of view, the contextual ballon plugin is reusing a single
48
+ * {@link module:ui/panel/balloon/balloonpanelview~BalloonPanelView} instance to display multiple contextual balloon
49
+ * panels in the editor. It also creates a special {@link module:ui/panel/balloon/contextualballoon~RotatorView rotator view},
50
+ * used to manage multiple panel stacks. Rotator view is a child of the balloon panel view and the parent of the specific
51
+ * view you want to display. If there is more than one panel stack to be displayed, the rotator view will add a
52
+ * navigation bar. If there is only one stack, the rotator view is transparent (it does not add any UI elements).
53
+ */
54
+ export default class ContextualBalloon extends Plugin {
55
+ /**
56
+ * The {@link module:utils/dom/position~Options#limiter position limiter}
57
+ * for the {@link #view balloon}, used when no `limiter` has been passed into {@link #add}
58
+ * or {@link #updatePosition}.
59
+ *
60
+ * By default, a function that obtains the farthest DOM
61
+ * {@link module:engine/view/rooteditableelement~RootEditableElement}
62
+ * of the {@link module:engine/view/document~Document#selection}.
63
+ */
64
+ positionLimiter: PositionOptions['limiter'];
65
+ visibleStack?: string;
66
+ /**
67
+ * The currently visible view or `null` when there are no views in any stack.
68
+ *
69
+ * @readonly
70
+ * @observable
71
+ */
72
+ visibleView: View | null;
73
+ /**
74
+ * A total number of all stacks in the balloon.
75
+ *
76
+ * @private
77
+ * @readonly
78
+ * @observable
79
+ */
80
+ _numberOfStacks: number;
81
+ /**
82
+ * A flag that controls the single view mode.
83
+ *
84
+ * @private
85
+ * @readonly
86
+ * @observable
87
+ */
88
+ _singleViewMode: boolean;
89
+ /**
90
+ * The map of views and their stacks.
91
+ */
92
+ private _viewToStack;
93
+ /**
94
+ * The map of IDs and stacks.
95
+ */
96
+ private _idToStack;
97
+ /**
98
+ * The common balloon panel view.
99
+ */
100
+ private _view;
101
+ /**
102
+ * Rotator view embedded in the contextual balloon.
103
+ * Displays the currently visible view in the balloon and provides navigation for switching stacks.
104
+ */
105
+ private _rotatorView;
106
+ /**
107
+ * Displays fake panels under the balloon panel view when multiple stacks are added to the balloon.
108
+ */
109
+ private _fakePanelsView;
110
+ /**
111
+ * @inheritDoc
112
+ */
113
+ static get pluginName(): "ContextualBalloon";
114
+ /**
115
+ * @inheritDoc
116
+ */
117
+ constructor(editor: Editor);
118
+ /**
119
+ * @inheritDoc
120
+ */
121
+ destroy(): void;
122
+ /**
123
+ * The common balloon panel view.
124
+ */
125
+ get view(): BalloonPanelView;
126
+ /**
127
+ * Returns `true` when the given view is in one of the stacks. Otherwise returns `false`.
128
+ */
129
+ hasView(view: View): boolean;
130
+ /**
131
+ * Adds a new view to the stack and makes it visible if the current stack is visible
132
+ * or it is the first view in the balloon.
133
+ *
134
+ * @param data The configuration of the view.
135
+ * @param data.stackId The ID of the stack that the view is added to. Defaults to `'main'`.
136
+ * @param data.view The content of the balloon.
137
+ * @param data.position Positioning options.
138
+ * @param data.balloonClassName An additional CSS class added to the {@link #view balloon} when visible.
139
+ * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow. Defaults to `true`.
140
+ * @param data.singleViewMode Whether the view should be the only visible view even if other stacks were added. Defaults to `false`.
141
+ */
142
+ add(data: ViewConfiguration): void;
143
+ /**
144
+ * Removes the given view from the stack. If the removed view was visible,
145
+ * the view preceding it in the stack will become visible instead.
146
+ * When there is no view in the stack, the next stack will be displayed.
147
+ * When there are no more stacks, the balloon will hide.
148
+ *
149
+ * @param view A view to be removed from the balloon.
150
+ */
151
+ remove(view: View): void;
152
+ /**
153
+ * Updates the position of the balloon using the position data of the first visible view in the stack.
154
+ * When new position data is given, the position data of the currently visible view will be updated.
155
+ *
156
+ * @param position Position options.
157
+ */
158
+ updatePosition(position?: Partial<PositionOptions>): void;
159
+ /**
160
+ * Shows the last view from the stack of a given ID.
161
+ */
162
+ showStack(id: string): void;
163
+ /**
164
+ * Initializes view instances.
165
+ */
166
+ private _createPanelView;
167
+ /**
168
+ * Returns the stack of the currently visible view.
169
+ */
170
+ private get _visibleStack();
171
+ /**
172
+ * Returns the ID of the given stack.
173
+ */
174
+ private _getStackId;
175
+ /**
176
+ * Shows the last view from the next stack.
177
+ */
178
+ private _showNextStack;
179
+ /**
180
+ * Shows the last view from the previous stack.
181
+ */
182
+ private _showPrevStack;
183
+ /**
184
+ * Creates a rotator view.
185
+ */
186
+ private _createRotatorView;
187
+ /**
188
+ * Creates a fake panels view.
189
+ */
190
+ private _createFakePanelsView;
191
+ /**
192
+ * Sets the view as the content of the balloon and attaches the balloon using position
193
+ * options of the first view.
194
+ *
195
+ * @param data Configuration.
196
+ * @param data.view The view to show in the balloon.
197
+ * @param data.balloonClassName Additional class name which will be added to the {@link #view balloon}.
198
+ * @param data.withArrow Whether the {@link #view balloon} should be rendered with an arrow.
199
+ */
200
+ private _showView;
201
+ /**
202
+ * Returns position options of the last view in the stack.
203
+ * This keeps the balloon in the same position when the view is changed.
204
+ */
205
+ private _getBalloonPosition;
206
+ }
207
+ /**
208
+ * The configuration of the view.
209
+ */
210
+ export interface ViewConfiguration {
211
+ /**
212
+ * The ID of the stack that the view is added to.
213
+ *
214
+ * @default 'main'
215
+ */
216
+ stackId?: string;
217
+ /**
218
+ * The content of the balloon.
219
+ */
220
+ view: View;
221
+ /**
222
+ * Positioning options.
223
+ */
224
+ position?: Partial<PositionOptions>;
225
+ /**
226
+ * An additional CSS class added to the {@link #view balloon} when visible.
227
+ */
228
+ balloonClassName?: string;
229
+ /**
230
+ * Whether the {@link #view balloon} should be rendered with an arrow.
231
+ *
232
+ * @default true
233
+ */
234
+ withArrow?: boolean;
235
+ /**
236
+ * Whether the view should be the only visible view even if other stacks were added.
237
+ *
238
+ * @default false
239
+ */
240
+ singleViewMode?: boolean;
241
+ }
242
+ /**
243
+ * Rotator view is a helper class for the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon}.
244
+ * It is used for displaying the last view from the current stack and providing navigation buttons for switching stacks.
245
+ * See the {@link module:ui/panel/balloon/contextualballoon~ContextualBalloon ContextualBalloon} documentation to learn more.
246
+ */
247
+ export declare class RotatorView extends View {
248
+ /**
249
+ * Used for checking if a view is focused or not.
250
+ */
251
+ readonly focusTracker: FocusTracker;
252
+ /**
253
+ * Navigation button for switching the stack to the previous one.
254
+ */
255
+ readonly buttonPrevView: ButtonView;
256
+ /**
257
+ * Navigation button for switching the stack to the next one.
258
+ */
259
+ readonly buttonNextView: ButtonView;
260
+ /**
261
+ * A collection of the child views that creates the rotator content.
262
+ */
263
+ readonly content: ViewCollection;
264
+ /**
265
+ * Defines whether navigation is visible or not.
266
+ *
267
+ * @observable
268
+ */
269
+ isNavigationVisible: boolean;
270
+ /**
271
+ * @observable
272
+ */
273
+ counter: string;
274
+ /**
275
+ * @inheritDoc
276
+ */
277
+ constructor(locale: Locale);
278
+ /**
279
+ * @inheritDoc
280
+ */
281
+ render(): void;
282
+ /**
283
+ * @inheritDoc
284
+ */
285
+ destroy(): void;
286
+ /**
287
+ * Shows a given view.
288
+ *
289
+ * @param view The view to show.
290
+ */
291
+ showView(view: View): void;
292
+ /**
293
+ * Hides the currently displayed view.
294
+ */
295
+ hideView(): void;
296
+ /**
297
+ * Creates a navigation button view.
298
+ *
299
+ * @param label The button label.
300
+ * @param icon The button icon.
301
+ */
302
+ private _createButtonView;
303
+ }
@@ -0,0 +1,160 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/panel/sticky/stickypanelview
11
+ */
12
+ import View from '../../view.js';
13
+ import type ViewCollection from '../../viewcollection.js';
14
+ import { type Locale } from '@ckeditor/ckeditor5-utils';
15
+ import '../../../theme/components/panel/stickypanel.css';
16
+ /**
17
+ * The sticky panel view class.
18
+ */
19
+ export default class StickyPanelView extends View {
20
+ /**
21
+ * Collection of the child views which creates balloon panel contents.
22
+ */
23
+ readonly content: ViewCollection;
24
+ /**
25
+ * Controls whether the sticky panel should be active.
26
+ *
27
+ * @readonly
28
+ * @observable
29
+ */
30
+ isActive: boolean;
31
+ /**
32
+ * Controls whether the sticky panel is in the "sticky" state.
33
+ *
34
+ * @readonly
35
+ * @observable
36
+ */
37
+ isSticky: boolean;
38
+ /**
39
+ * The limiter element for the sticky panel instance. Its bounding rect limits
40
+ * the "stickyness" of the panel, i.e. when the panel reaches the bottom
41
+ * edge of the limiter, it becomes sticky to that edge and does not float
42
+ * off the limiter. It is mandatory for the panel to work properly and once
43
+ * set, it cannot be changed.
44
+ *
45
+ * @readonly
46
+ * @observable
47
+ */
48
+ limiterElement: HTMLElement | null;
49
+ /**
50
+ * The offset from the bottom edge of {@link #limiterElement}
51
+ * which stops the panel from stickying any further to prevent limiter's content
52
+ * from being completely covered.
53
+ *
54
+ * @readonly
55
+ * @observable
56
+ * @default 50
57
+ */
58
+ limiterBottomOffset: number;
59
+ /**
60
+ * The offset from the top edge of the web browser's viewport which makes the
61
+ * panel become sticky. The default value is `0`, which means the panel becomes
62
+ * sticky when it's upper edge touches the top of the page viewport.
63
+ *
64
+ * This attribute is useful when the web page has UI elements positioned to the top
65
+ * either using `position: fixed` or `position: sticky`, which would cover the
66
+ * sticky panel or vice–versa (depending on the `z-index` hierarchy).
67
+ *
68
+ * Bound to {@link module:ui/editorui/editorui~EditorUI#viewportOffset `EditorUI#viewportOffset`}.
69
+ *
70
+ * If {@link module:core/editor/editorconfig~EditorConfig#ui `EditorConfig#ui.viewportOffset.top`} is defined, then
71
+ * it will override the default value.
72
+ *
73
+ * @observable
74
+ * @default 0
75
+ */
76
+ viewportTopOffset: number;
77
+ /**
78
+ * The panel which accepts children into {@link #content} collection.
79
+ * Also an element which is positioned when {@link #isSticky}.
80
+ */
81
+ contentPanelElement: HTMLElement;
82
+ /**
83
+ * Controls the `margin-left` CSS style of the panel.
84
+ *
85
+ * @private
86
+ * @readonly
87
+ * @observable
88
+ */
89
+ _marginLeft: string | null;
90
+ /**
91
+ * Set `true` if the sticky panel reached the bottom edge of the
92
+ * {@link #limiterElement}.
93
+ *
94
+ * @private
95
+ * @readonly
96
+ * @observable
97
+ */
98
+ _isStickyToTheBottomOfLimiter: boolean;
99
+ /**
100
+ * The `top` CSS position of the panel when it is sticky to the top of the viewport or scrollable
101
+ * ancestors of the {@link #limiterElement}.
102
+ *
103
+ * @private
104
+ * @readonly
105
+ * @observable
106
+ */
107
+ _stickyTopOffset: number | null;
108
+ /**
109
+ * The `bottom` CSS position of the panel when it is sticky to the bottom of the {@link #limiterElement}.
110
+ *
111
+ * @private
112
+ * @readonly
113
+ * @observable
114
+ */
115
+ _stickyBottomOffset: number | null;
116
+ /**
117
+ * A dummy element which visually fills the space as long as the
118
+ * actual panel is sticky. It prevents flickering of the UI.
119
+ */
120
+ private _contentPanelPlaceholder;
121
+ /**
122
+ * @inheritDoc
123
+ */
124
+ constructor(locale?: Locale);
125
+ /**
126
+ * @inheritDoc
127
+ */
128
+ render(): void;
129
+ /**
130
+ * Analyzes the environment to decide whether the panel should be sticky or not.
131
+ * Then handles the positioning of the panel.
132
+ */
133
+ checkIfShouldBeSticky(): void;
134
+ /**
135
+ * Sticks the panel at the given CSS `top` offset.
136
+ *
137
+ * @private
138
+ * @param topOffset
139
+ */
140
+ private _stickToTopOfAncestors;
141
+ /**
142
+ * Sticks the panel at the bottom of the limiter with a given CSS `bottom` offset.
143
+ *
144
+ * @private
145
+ * @param stickyBottomOffset
146
+ */
147
+ private _stickToBottomOfLimiter;
148
+ /**
149
+ * Unsticks the panel putting it back to its original position.
150
+ *
151
+ * @private
152
+ */
153
+ private _unstick;
154
+ /**
155
+ * Returns the bounding rect of the {@link #contentPanelElement}.
156
+ *
157
+ * @private
158
+ */
159
+ private get _contentPanelRect();
160
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ import type { FocusableView } from '../focuscycler.js';
10
+ /**
11
+ * @module ui/search/filteredview
12
+ */
13
+ /**
14
+ * A view that can be filtered by a {@link module:ui/search/text/searchtextview~SearchTextView}.
15
+ */
16
+ export default interface FilteredView extends FocusableView {
17
+ /**
18
+ * Filters the view by the given regular expression.
19
+ */
20
+ filter(regExp: RegExp | null): {
21
+ resultsCount: number;
22
+ totalItemsCount: number;
23
+ };
24
+ }
25
+ /**
26
+ * Fired when the user selects an autocomplete option. The event data should contain the selected value.
27
+ *
28
+ * @eventName ~FilteredView#execute
29
+ */
30
+ export interface FilteredViewExecuteEvent {
31
+ name: 'execute';
32
+ args: [{
33
+ value: string;
34
+ }];
35
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/search/searchinfoview
11
+ */
12
+ import type { FocusableView } from '../focuscycler.js';
13
+ import View from '../view.js';
14
+ /**
15
+ * A view displaying an information text related to different states of {@link module:ui/search/text/searchtextview~SearchTextView}.
16
+ *
17
+ * @internal
18
+ */
19
+ export default class SearchInfoView extends View implements FocusableView {
20
+ /**
21
+ * Controls whether the view is visible.
22
+ *
23
+ * @observable
24
+ * @default false
25
+ */
26
+ isVisible: boolean;
27
+ /**
28
+ * Controls the primary line of text in the info.
29
+ *
30
+ * @observable
31
+ * @default ''
32
+ */
33
+ primaryText: string;
34
+ /**
35
+ * Controls the secondary line of text in the info.
36
+ *
37
+ * @observable
38
+ * @default ''
39
+ */
40
+ secondaryText: string;
41
+ /**
42
+ * @inheritDoc
43
+ */
44
+ constructor();
45
+ /**
46
+ * Focuses the view
47
+ */
48
+ focus(): void;
49
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/search/searchresultsview
11
+ */
12
+ import View from '../view.js';
13
+ import type ViewCollection from '../viewcollection.js';
14
+ import { FocusTracker, type Locale } from '@ckeditor/ckeditor5-utils';
15
+ import { default as FocusCycler, type FocusableView } from '../focuscycler.js';
16
+ /**
17
+ * A sub-component of {@link module:ui/search/text/searchtextview~SearchTextView}. It hosts the filtered and the information views.
18
+ */
19
+ export default class SearchResultsView extends View implements FocusableView {
20
+ /**
21
+ * Tracks information about the DOM focus in the view.
22
+ *
23
+ * @readonly
24
+ */
25
+ focusTracker: FocusTracker;
26
+ /**
27
+ * The collection of the child views inside of the list item {@link #element}.
28
+ *
29
+ * @readonly
30
+ */
31
+ children: ViewCollection<FocusableView>;
32
+ /**
33
+ * Provides the focus management (keyboard navigation) in the view.
34
+ *
35
+ * @readonly
36
+ */
37
+ protected _focusCycler: FocusCycler;
38
+ /**
39
+ * @inheritDoc
40
+ */
41
+ constructor(locale: Locale);
42
+ /**
43
+ * @inheritDoc
44
+ */
45
+ render(): void;
46
+ /**
47
+ * Focuses the view.
48
+ */
49
+ focus(): void;
50
+ /**
51
+ * Focuses the first child view.
52
+ */
53
+ focusFirst(): void;
54
+ /**
55
+ * Focuses the last child view.
56
+ */
57
+ focusLast(): void;
58
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
7
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
8
+ */
9
+ /**
10
+ * @module ui/search/text/searchtextqueryview
11
+ */
12
+ import ButtonView from '../../button/buttonview.js';
13
+ import IconView from '../../icon/iconview.js';
14
+ import LabeledFieldView, { type LabeledFieldViewCreator } from '../../labeledfield/labeledfieldview.js';
15
+ import type InputBase from '../../input/inputbase.js';
16
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
17
+ /**
18
+ * A search input field for the {@link module:ui/search/text/searchtextview~SearchTextView} component.
19
+ *
20
+ * @internal
21
+ * @extends module:ui/labeledfield/labeledfieldview~LabeledFieldView
22
+ */
23
+ export default class SearchTextQueryView<TQueryFieldView extends InputBase<HTMLInputElement | HTMLTextAreaElement>> extends LabeledFieldView<TQueryFieldView> {
24
+ /**
25
+ * The loupe icon displayed next to the {@link #fieldView}.
26
+ */
27
+ iconView?: IconView;
28
+ /**
29
+ * The button that clears and focuses the {@link #fieldView}.
30
+ */
31
+ resetButtonView?: ButtonView;
32
+ /**
33
+ * A reference to the view configuration.
34
+ */
35
+ private readonly _viewConfig;
36
+ /**
37
+ * @inheritDoc
38
+ */
39
+ constructor(locale: Locale, config: SearchTextQueryViewConfig<TQueryFieldView>);
40
+ /**
41
+ * Resets the search field to its default state.
42
+ */
43
+ reset(): void;
44
+ }
45
+ /**
46
+ * An event fired when the field is reset using the
47
+ * {@link module:ui/search/text/searchtextqueryview~SearchTextQueryView#resetButtonView}.
48
+ *
49
+ * @eventName ~SearchTextQueryView#reset
50
+ */
51
+ export type SearchTextQueryViewResetEvent = {
52
+ name: 'reset';
53
+ args: [];
54
+ };
55
+ /**
56
+ * The configuration of the {@link module:ui/search/text/searchtextqueryview~SearchTextQueryView} view.
57
+ */
58
+ export interface SearchTextQueryViewConfig<TConfigSearchField extends InputBase<HTMLInputElement | HTMLTextAreaElement>> {
59
+ /**
60
+ * The human-readable label of the search field.
61
+ */
62
+ label: string;
63
+ /**
64
+ * Determines whether the button that resets the search should be visible.
65
+ *
66
+ * @default true
67
+ */
68
+ showResetButton?: boolean;
69
+ /**
70
+ * Determines whether the loupe icon should be visible.
71
+ *
72
+ * @default true
73
+ */
74
+ showIcon?: boolean;
75
+ /**
76
+ * The function that creates the search field input view. By default, a plain
77
+ * {@link module:ui/inputtext/inputtextview~InputTextView} is used for this purpose.
78
+ */
79
+ creator?: LabeledFieldViewCreator<TConfigSearchField>;
80
+ }