@ckeditor/ckeditor5-ui 48.8.1-alpha.4 → 49.0.0-alpha.1

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 (273) hide show
  1. package/LICENSE.md +1 -1
  2. package/dist/arialiveannouncer.d.ts +89 -90
  3. package/dist/augmentation.d.ts +86 -86
  4. package/dist/autocomplete/autocompleteview.d.ts +69 -70
  5. package/dist/badge/badge.d.ts +119 -121
  6. package/dist/bindings/addkeyboardhandlingforgrid.d.ts +22 -22
  7. package/dist/bindings/clickoutsidehandler.d.ts +24 -26
  8. package/dist/bindings/csstransitiondisablermixin.d.ts +47 -36
  9. package/dist/bindings/draggableviewmixin.d.ts +45 -37
  10. package/dist/bindings/preventdefault.d.ts +30 -30
  11. package/dist/bindings/submithandler.d.ts +49 -49
  12. package/dist/button/button.d.ts +167 -167
  13. package/dist/button/buttonlabel.d.ts +28 -28
  14. package/dist/button/buttonlabelview.d.ts +26 -26
  15. package/dist/button/buttonview.d.ts +191 -192
  16. package/dist/button/filedialogbuttonview.d.ts +107 -99
  17. package/dist/button/listitembuttonview.d.ts +72 -73
  18. package/dist/button/switchbuttonview.d.ts +39 -40
  19. package/dist/collapsible/collapsibleview.d.ts +62 -63
  20. package/dist/colorgrid/colorgridview.d.ts +116 -117
  21. package/dist/colorgrid/colors.d.ts +28 -0
  22. package/dist/colorgrid/colortileview.d.ts +21 -21
  23. package/dist/colorgrid/utils.d.ts +47 -35
  24. package/dist/colorpicker/colorpickerview.d.ts +154 -157
  25. package/dist/colorpicker/utils.d.ts +37 -37
  26. package/dist/colorselector/colorgridsfragmentview.d.ts +191 -191
  27. package/dist/colorselector/colorpickerfragmentview.d.ts +129 -129
  28. package/dist/colorselector/colorselectorview.d.ts +226 -229
  29. package/dist/colorselector/documentcolorcollection.d.ts +52 -59
  30. package/dist/componentfactory.d.ts +76 -76
  31. package/dist/dialog/dialog.d.ts +311 -288
  32. package/dist/dialog/dialogactionsview.d.ts +61 -62
  33. package/dist/dialog/dialogcontentview.d.ts +22 -22
  34. package/dist/dialog/dialogview.d.ts +254 -251
  35. package/dist/dropdown/button/dropdownbutton.d.ts +17 -17
  36. package/dist/dropdown/button/dropdownbuttonview.d.ts +41 -41
  37. package/dist/dropdown/button/splitbuttonview.d.ts +154 -155
  38. package/dist/dropdown/dropdownpanelfocusable.d.ts +16 -16
  39. package/dist/dropdown/dropdownpanelview.d.ts +56 -56
  40. package/dist/dropdown/dropdownview.d.ts +337 -326
  41. package/dist/dropdown/menu/dropdownmenubehaviors.d.ts +43 -43
  42. package/dist/dropdown/menu/dropdownmenubuttonview.d.ts +28 -29
  43. package/dist/dropdown/menu/dropdownmenulistitembuttonview.d.ts +11 -12
  44. package/dist/dropdown/menu/dropdownmenulistitemview.d.ts +16 -17
  45. package/dist/dropdown/menu/dropdownmenulistview.d.ts +19 -19
  46. package/dist/dropdown/menu/dropdownmenunestedmenupanelview.d.ts +27 -28
  47. package/dist/dropdown/menu/dropdownmenunestedmenuview.d.ts +125 -126
  48. package/dist/dropdown/menu/dropdownmenurootlistview.d.ts +132 -132
  49. package/dist/dropdown/menu/utils.d.ts +112 -112
  50. package/dist/dropdown/utils.d.ts +270 -272
  51. package/dist/editableui/editableuiview.d.ts +78 -67
  52. package/dist/editableui/inline/inlineeditableuiview.d.ts +38 -36
  53. package/dist/editorui/accessibilityhelp/accessibilityhelp.d.ts +49 -50
  54. package/dist/editorui/accessibilityhelp/accessibilityhelpcontentview.d.ts +30 -30
  55. package/dist/editorui/bodycollection.d.ts +167 -86
  56. package/dist/editorui/boxed/boxededitoruiview.d.ts +35 -35
  57. package/dist/editorui/editorui.d.ts +382 -351
  58. package/dist/editorui/editoruiview.d.ts +48 -53
  59. package/dist/editorui/evaluationbadge.d.ts +28 -28
  60. package/dist/editorui/poweredby.d.ts +25 -25
  61. package/dist/focuscycler.d.ts +265 -270
  62. package/dist/formheader/formheaderview.d.ts +52 -53
  63. package/dist/formrow/formrowview.d.ts +51 -52
  64. package/dist/highlightedtext/buttonlabelwithhighlightview.d.ts +25 -25
  65. package/dist/highlightedtext/highlightedtextview.d.ts +30 -34
  66. package/dist/highlightedtext/labelwithhighlightview.d.ts +21 -21
  67. package/dist/icon/iconview.d.ts +82 -83
  68. package/dist/iframe/iframeview.d.ts +42 -42
  69. package/dist/index-content.css +3 -0
  70. package/dist/index-content.css.map +1 -0
  71. package/dist/index-editor.css +3241 -2329
  72. package/dist/index-editor.css.map +1 -0
  73. package/dist/index.css +2940 -2032
  74. package/dist/index.css.map +1 -1
  75. package/dist/index.d.ts +144 -136
  76. package/dist/index.js +17821 -17732
  77. package/dist/index.js.map +1 -1
  78. package/dist/input/inputbase.d.ts +114 -114
  79. package/dist/input/inputview.d.ts +27 -28
  80. package/dist/inputnumber/inputnumberview.d.ts +44 -44
  81. package/dist/inputtext/inputtextview.d.ts +13 -13
  82. package/dist/label/labelview.d.ts +30 -31
  83. package/dist/labeledfield/labeledfieldview.d.ts +179 -180
  84. package/dist/labeledfield/utils.d.ts +112 -112
  85. package/dist/labeledinput/labeledinputview.d.ts +119 -120
  86. package/dist/legacyerrors.d.ts +0 -4
  87. package/dist/list/listitemgroupview.d.ts +54 -54
  88. package/dist/list/listitemview.d.ts +31 -31
  89. package/dist/list/listseparatorview.d.ts +13 -13
  90. package/dist/list/listview.d.ts +118 -119
  91. package/dist/menubar/menubarmenubuttonview.d.ts +27 -28
  92. package/dist/menubar/menubarmenulistitembuttonview.d.ts +15 -16
  93. package/dist/menubar/menubarmenulistitemfiledialogbuttonview.d.ts +17 -18
  94. package/dist/menubar/menubarmenulistitemview.d.ts +19 -20
  95. package/dist/menubar/menubarmenulistview.d.ts +24 -24
  96. package/dist/menubar/menubarmenupanelview.d.ts +46 -47
  97. package/dist/menubar/menubarmenuview.d.ts +112 -113
  98. package/dist/menubar/menubarview.d.ts +144 -145
  99. package/dist/menubar/utils.d.ts +455 -455
  100. package/dist/model.d.ts +19 -18
  101. package/dist/notification/notification.d.ts +200 -200
  102. package/dist/overlayhost.d.ts +210 -0
  103. package/dist/panel/balloon/balloonpanelview.d.ts +700 -692
  104. package/dist/panel/balloon/contextualballoon.d.ts +296 -298
  105. package/dist/panel/sticky/stickypanelview.d.ts +162 -151
  106. package/dist/search/filteredview.d.ts +23 -23
  107. package/dist/search/filtergroupanditemnames.d.ts +11 -11
  108. package/dist/search/searchinfoview.d.ts +39 -39
  109. package/dist/search/searchresultsview.d.ts +49 -49
  110. package/dist/search/text/searchtextqueryview.d.ts +63 -63
  111. package/dist/search/text/searchtextview.d.ts +202 -203
  112. package/dist/spinner/spinnerview.d.ts +19 -20
  113. package/dist/tabs/tabbuttonview.d.ts +53 -0
  114. package/dist/tabs/tabpanelview.d.ts +45 -0
  115. package/dist/template.d.ts +897 -902
  116. package/dist/textarea/textareaview.d.ts +100 -96
  117. package/dist/toolbar/balloon/balloontoolbar.d.ts +122 -122
  118. package/dist/toolbar/block/blockbuttonview.d.ts +29 -30
  119. package/dist/toolbar/block/blocktoolbar.d.ts +166 -166
  120. package/dist/toolbar/normalizetoolbarconfig.d.ts +35 -35
  121. package/dist/toolbar/toolbarlinebreakview.d.ts +13 -13
  122. package/dist/toolbar/toolbarseparatorview.d.ts +13 -13
  123. package/dist/toolbar/toolbarview.d.ts +270 -271
  124. package/dist/tooltipmanager.d.ts +317 -193
  125. package/dist/translations/af.js +1 -1
  126. package/dist/translations/af.umd.js +5 -3
  127. package/dist/translations/ar.js +1 -1
  128. package/dist/translations/ar.umd.js +5 -3
  129. package/dist/translations/ast.js +1 -1
  130. package/dist/translations/ast.umd.js +5 -3
  131. package/dist/translations/az.js +1 -1
  132. package/dist/translations/az.umd.js +5 -3
  133. package/dist/translations/be.js +1 -1
  134. package/dist/translations/be.umd.js +5 -3
  135. package/dist/translations/bg.js +1 -1
  136. package/dist/translations/bg.umd.js +5 -3
  137. package/dist/translations/bn.js +1 -1
  138. package/dist/translations/bn.umd.js +5 -3
  139. package/dist/translations/bs.js +1 -1
  140. package/dist/translations/bs.umd.js +5 -3
  141. package/dist/translations/ca.js +1 -1
  142. package/dist/translations/ca.umd.js +5 -3
  143. package/dist/translations/cs.js +1 -1
  144. package/dist/translations/cs.umd.js +5 -3
  145. package/dist/translations/da.js +1 -1
  146. package/dist/translations/da.umd.js +5 -3
  147. package/dist/translations/de-ch.js +1 -1
  148. package/dist/translations/de-ch.umd.js +5 -3
  149. package/dist/translations/de.js +1 -1
  150. package/dist/translations/de.umd.js +5 -3
  151. package/dist/translations/el.js +1 -1
  152. package/dist/translations/el.umd.js +5 -3
  153. package/dist/translations/en-au.js +1 -1
  154. package/dist/translations/en-au.umd.js +5 -3
  155. package/dist/translations/en-gb.js +1 -1
  156. package/dist/translations/en-gb.umd.js +5 -3
  157. package/dist/translations/en.js +1 -1
  158. package/dist/translations/en.umd.js +5 -3
  159. package/dist/translations/eo.js +1 -1
  160. package/dist/translations/eo.umd.js +5 -3
  161. package/dist/translations/es-co.js +1 -1
  162. package/dist/translations/es-co.umd.js +5 -3
  163. package/dist/translations/es.js +1 -1
  164. package/dist/translations/es.umd.js +5 -3
  165. package/dist/translations/et.js +1 -1
  166. package/dist/translations/et.umd.js +5 -3
  167. package/dist/translations/eu.js +1 -1
  168. package/dist/translations/eu.umd.js +5 -3
  169. package/dist/translations/fa.js +1 -1
  170. package/dist/translations/fa.umd.js +5 -3
  171. package/dist/translations/fi.js +1 -1
  172. package/dist/translations/fi.umd.js +5 -3
  173. package/dist/translations/fr.js +1 -1
  174. package/dist/translations/fr.umd.js +5 -3
  175. package/dist/translations/gl.js +1 -1
  176. package/dist/translations/gl.umd.js +5 -3
  177. package/dist/translations/gu.js +1 -1
  178. package/dist/translations/gu.umd.js +5 -3
  179. package/dist/translations/he.js +1 -1
  180. package/dist/translations/he.umd.js +5 -3
  181. package/dist/translations/hi.js +1 -1
  182. package/dist/translations/hi.umd.js +5 -3
  183. package/dist/translations/hr.js +1 -1
  184. package/dist/translations/hr.umd.js +5 -3
  185. package/dist/translations/hu.js +1 -1
  186. package/dist/translations/hu.umd.js +5 -3
  187. package/dist/translations/hy.js +1 -1
  188. package/dist/translations/hy.umd.js +5 -3
  189. package/dist/translations/id.js +1 -1
  190. package/dist/translations/id.umd.js +5 -3
  191. package/dist/translations/it.js +1 -1
  192. package/dist/translations/it.umd.js +5 -3
  193. package/dist/translations/ja.js +1 -1
  194. package/dist/translations/ja.umd.js +5 -3
  195. package/dist/translations/jv.js +1 -1
  196. package/dist/translations/jv.umd.js +5 -3
  197. package/dist/translations/kk.js +1 -1
  198. package/dist/translations/kk.umd.js +5 -3
  199. package/dist/translations/km.js +1 -1
  200. package/dist/translations/km.umd.js +5 -3
  201. package/dist/translations/kn.js +1 -1
  202. package/dist/translations/kn.umd.js +5 -3
  203. package/dist/translations/ko.js +1 -1
  204. package/dist/translations/ko.umd.js +5 -3
  205. package/dist/translations/ku.js +1 -1
  206. package/dist/translations/ku.umd.js +5 -3
  207. package/dist/translations/lt.js +1 -1
  208. package/dist/translations/lt.umd.js +5 -3
  209. package/dist/translations/lv.js +1 -1
  210. package/dist/translations/lv.umd.js +5 -3
  211. package/dist/translations/ms.js +1 -1
  212. package/dist/translations/ms.umd.js +5 -3
  213. package/dist/translations/nb.js +1 -1
  214. package/dist/translations/nb.umd.js +5 -3
  215. package/dist/translations/ne.js +1 -1
  216. package/dist/translations/ne.umd.js +5 -3
  217. package/dist/translations/nl.js +1 -1
  218. package/dist/translations/nl.umd.js +5 -3
  219. package/dist/translations/no.js +1 -1
  220. package/dist/translations/no.umd.js +5 -3
  221. package/dist/translations/oc.js +1 -1
  222. package/dist/translations/oc.umd.js +5 -3
  223. package/dist/translations/pl.js +1 -1
  224. package/dist/translations/pl.umd.js +5 -3
  225. package/dist/translations/pt-br.js +1 -1
  226. package/dist/translations/pt-br.umd.js +5 -3
  227. package/dist/translations/pt.js +1 -1
  228. package/dist/translations/pt.umd.js +5 -3
  229. package/dist/translations/ro.js +1 -1
  230. package/dist/translations/ro.umd.js +5 -3
  231. package/dist/translations/ru.js +1 -1
  232. package/dist/translations/ru.umd.js +5 -3
  233. package/dist/translations/si.js +1 -1
  234. package/dist/translations/si.umd.js +5 -3
  235. package/dist/translations/sk.js +1 -1
  236. package/dist/translations/sk.umd.js +5 -3
  237. package/dist/translations/sl.js +1 -1
  238. package/dist/translations/sl.umd.js +5 -3
  239. package/dist/translations/sq.js +1 -1
  240. package/dist/translations/sq.umd.js +5 -3
  241. package/dist/translations/sr-latn.js +1 -1
  242. package/dist/translations/sr-latn.umd.js +5 -3
  243. package/dist/translations/sr.js +1 -1
  244. package/dist/translations/sr.umd.js +5 -3
  245. package/dist/translations/sv.js +1 -1
  246. package/dist/translations/sv.umd.js +5 -3
  247. package/dist/translations/th.js +1 -1
  248. package/dist/translations/th.umd.js +5 -3
  249. package/dist/translations/ti.js +1 -1
  250. package/dist/translations/ti.umd.js +5 -3
  251. package/dist/translations/tk.js +1 -1
  252. package/dist/translations/tk.umd.js +5 -3
  253. package/dist/translations/tr.js +1 -1
  254. package/dist/translations/tr.umd.js +5 -3
  255. package/dist/translations/tt.js +1 -1
  256. package/dist/translations/tt.umd.js +5 -3
  257. package/dist/translations/ug.js +1 -1
  258. package/dist/translations/ug.umd.js +5 -3
  259. package/dist/translations/uk.js +1 -1
  260. package/dist/translations/uk.umd.js +5 -3
  261. package/dist/translations/ur.js +1 -1
  262. package/dist/translations/ur.umd.js +5 -3
  263. package/dist/translations/uz.js +1 -1
  264. package/dist/translations/uz.umd.js +5 -3
  265. package/dist/translations/vi.js +1 -1
  266. package/dist/translations/vi.umd.js +5 -3
  267. package/dist/translations/zh-cn.js +1 -1
  268. package/dist/translations/zh-cn.umd.js +5 -3
  269. package/dist/translations/zh.js +1 -1
  270. package/dist/translations/zh.umd.js +5 -3
  271. package/dist/view.d.ts +384 -388
  272. package/dist/viewcollection.d.ts +134 -134
  273. package/package.json +8 -7
@@ -1,90 +1,171 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
5
- import { ViewCollection } from '../viewcollection.js';
6
- import { type View } from '../view.js';
7
- import { type Locale } from '@ckeditor/ckeditor5-utils';
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
+ import { ViewCollection } from "../viewcollection.js";
6
+ import { type View } from "../view.js";
7
+ import { type Locale } from "@ckeditor/ckeditor5-utils";
8
8
  /**
9
- * This is a special {@link module:ui/viewcollection~ViewCollection} dedicated to elements that are detached from the DOM structure of
10
- * the editor, like floating panels, floating toolbars, dialogs, etc.
11
- *
12
- * The body collection is available under the {@link module:ui/editorui/editoruiview~EditorUIView#body `editor.ui.view.body`} property.
13
- * Any plugin can add a {@link module:ui/view~View view} to this collection.
14
- *
15
- * All views added to a body collection render in a dedicated DOM container (`<div class="ck ck-body ...">...</div>`). All body collection
16
- * containers render in a common shared (`<div class="ck-body-wrapper">...</div>`) in the DOM to limit the pollution of
17
- * the `<body>` element. The resulting DOM structure is as follows:
18
- *
19
- * ```html
20
- * <body>
21
- * <!-- Content of the webpage... -->
22
- *
23
- * <!-- The shared wrapper for all body collection containers. -->
24
- * <div class="ck-body-wrapper">
25
- * <!-- The container of the first body collection instance. -->
26
- * <div class="ck ck-body ...">
27
- * <!-- View elements belonging to the first body collection -->
28
- * </div>
29
- *
30
- * <!-- The container of the second body collection instance. -->
31
- * <div class="ck ck-body ...">...</div>
32
- *
33
- * <!-- More body collection containers for the rest of instances... -->
34
- * </div>
35
- * </body>
36
- * ```
37
- *
38
- * By default, the {@link module:ui/editorui/editoruiview~EditorUIView `editor.ui.view`} manages the life cycle of the
39
- * {@link module:ui/editorui/editoruiview~EditorUIView#body `editor.ui.view.body`} collection, attaching and detaching it
40
- * when the editor gets created or {@link module:core/editor/editor~Editor#destroy destroyed}.
41
- *
42
- * # Custom body collection instances
43
- *
44
- * Even though most editor instances come with a built-in body collection
45
- * ({@link module:ui/editorui/editoruiview~EditorUIView#body `editor.ui.view.body`}), you can create your own instance of this
46
- * class if you need to control their life cycle.
47
- *
48
- * The life cycle of a custom body collection must be handled manually by the developer using the dedicated API:
49
- * * A body collection will render itself automatically in the DOM as soon as you call {@link ~BodyCollection#attachToDom}.
50
- * * Calling {@link ~BodyCollection#detachFromDom} will remove the collection from the DOM.
51
- *
52
- * **Note**: The shared collection wrapper (`<div class="ck-body-wrapper">...</div>`) gets automatically removed from DOM when the
53
- * last body collection is {@link ~BodyCollection#detachFromDom detached} and does not require any special handling.
54
- */
9
+ * This is a special {@link module:ui/viewcollection~ViewCollection} dedicated to elements that are detached from the DOM structure of
10
+ * the editor, like floating panels, floating toolbars, dialogs, etc.
11
+ *
12
+ * The body collection is available under the {@link module:ui/editorui/editoruiview~EditorUIView#body `editor.ui.view.body`} property.
13
+ * Any plugin can add a {@link module:ui/view~View view} to this collection.
14
+ *
15
+ * All views added to a body collection render in a dedicated DOM container (`<div class="ck ck-body ...">...</div>`). All body collection
16
+ * containers render in a common shared (`<div class="ck-body-wrapper">...</div>`) in the DOM to limit the pollution of
17
+ * the `<body>` element. The resulting DOM structure is as follows:
18
+ *
19
+ * ```html
20
+ * <body>
21
+ * <!-- Content of the webpage... -->
22
+ *
23
+ * <!-- The shared wrapper for all body collection containers. -->
24
+ * <div class="ck-body-wrapper">
25
+ * <!-- The container of the first body collection instance. -->
26
+ * <div class="ck ck-body ...">
27
+ * <!-- View elements belonging to the first body collection -->
28
+ * </div>
29
+ *
30
+ * <!-- The container of the second body collection instance. -->
31
+ * <div class="ck ck-body ...">...</div>
32
+ *
33
+ * <!-- More body collection containers for the rest of instances... -->
34
+ * </div>
35
+ * </body>
36
+ * ```
37
+ *
38
+ * By default, the {@link module:ui/editorui/editoruiview~EditorUIView `editor.ui.view`} manages the life cycle of the
39
+ * {@link module:ui/editorui/editoruiview~EditorUIView#body `editor.ui.view.body`} collection, attaching and detaching it
40
+ * when the editor gets created or {@link module:core/editor/editor~Editor#destroy destroyed}.
41
+ *
42
+ * # Custom body collection instances
43
+ *
44
+ * Even though most editor instances come with a built-in body collection
45
+ * ({@link module:ui/editorui/editoruiview~EditorUIView#body `editor.ui.view.body`}), you can create your own instance of this
46
+ * class if you need to control their life cycle.
47
+ *
48
+ * The life cycle of a custom body collection must be handled manually by the developer using the dedicated API:
49
+ * * A body collection will render itself automatically in the DOM as soon as you call {@link ~BodyCollection#attachToDom}.
50
+ * * Calling {@link ~BodyCollection#destroy} will remove the collection from the DOM and destroy its views.
51
+ *
52
+ * **Note**: The shared collection wrapper (`<div class="ck-body-wrapper">...</div>`) gets automatically removed from DOM when the
53
+ * last body collection is {@link ~BodyCollection#destroy destroyed} and does not require any special handling.
54
+ */
55
55
  export declare class BodyCollection extends ViewCollection {
56
- /**
57
- * The {@link module:core/editor/editor~Editor#locale editor's locale} instance.
58
- * See the view {@link module:ui/view~View#locale locale} property.
59
- */
60
- readonly locale: Locale;
61
- /**
62
- * The element holding elements of the body collection.
63
- */
64
- private _bodyCollectionContainer?;
65
- /**
66
- * The wrapper element that holds all of the {@link #_bodyCollectionContainer} elements.
67
- */
68
- private static _bodyWrapper?;
69
- /**
70
- * Creates a new instance of the {@link module:ui/editorui/bodycollection~BodyCollection}.
71
- *
72
- * @param locale The {@link module:core/editor/editor~Editor editor's locale} instance.
73
- * @param initialItems The initial items of the collection.
74
- */
75
- constructor(locale: Locale, initialItems?: Iterable<View>);
76
- /**
77
- * The element holding elements of the body collection.
78
- */
79
- get bodyCollectionContainer(): HTMLElement | undefined;
80
- /**
81
- * Attaches the body collection to the DOM body element. You need to execute this method to render the content of
82
- * the body collection.
83
- */
84
- attachToDom(): void;
85
- /**
86
- * Detaches the collection from the DOM structure. Use this method when you do not need to use the body collection
87
- * anymore to clean-up the DOM structure.
88
- */
89
- detachFromDom(): void;
56
+ /**
57
+ * The {@link module:core/editor/editor~Editor#locale editor's locale} instance.
58
+ * See the view {@link module:ui/view~View#locale locale} property.
59
+ */
60
+ readonly locale: Locale;
61
+ /**
62
+ * The element holding elements of the body collection.
63
+ */
64
+ private _bodyCollectionContainer?;
65
+ /**
66
+ * The mount target the {@link #_bodyCollectionContainer} is currently attached to (through the shared
67
+ * wrapper): the `document.body` for editors in the light DOM, or a `ShadowRoot` (or a configured element)
68
+ * for editors living inside a shadow root. Tracked so the collection can be re-mounted into a different
69
+ * target and cleaned up from the right wrapper.
70
+ */
71
+ private _mountTarget?;
72
+ /**
73
+ * The shared wrapper elements that hold the {@link #_bodyCollectionContainer} elements, keyed by the
74
+ * mount target (the element or shadow root the wrapper is attached to – not the editor's editing root).
75
+ * Body collections attached to the same target (e.g. the same shadow root) share a single wrapper;
76
+ * body collections attached to different targets get separate wrappers.
77
+ */
78
+ private static _bodyWrappers;
79
+ /**
80
+ * Creates a new instance of the {@link module:ui/editorui/bodycollection~BodyCollection}.
81
+ *
82
+ * @param locale The {@link module:core/editor/editor~Editor editor's locale} instance.
83
+ * @param initialItems The initial items of the collection.
84
+ */
85
+ constructor(locale: Locale, initialItems?: Iterable<View>);
86
+ /**
87
+ * The element holding elements of the body collection. It is created on demand – the first time it is
88
+ * accessed or the collection is {@link #attachToDom attached} – and reused afterwards. Creating it does
89
+ * not attach it to the DOM (that happens in {@link #attachToDom}), so it is available for focus tracking
90
+ * and styling even while the collection is not mounted yet.
91
+ */
92
+ get bodyCollectionContainer(): HTMLElement;
93
+ /**
94
+ * The mount target (element or shadow root) the collection is currently attached to, or `undefined`
95
+ * before {@link #attachToDom} is called or after {@link #unmountFromDom} or {@link #destroy}.
96
+ */
97
+ get mountTarget(): HTMLElement | ShadowRoot | undefined;
98
+ /**
99
+ * Attaches the body collection to the DOM. You need to execute this method to render the content of
100
+ * the body collection.
101
+ *
102
+ * By default the collection mounts in a shared wrapper under the `document.body`. Pass a `target` to
103
+ * mount it elsewhere – for example inside the {@link module:utils/dom/isshadowroot~isShadowRoot shadow root}
104
+ * an editor lives in, so that floating UI (balloons, dialogs, tooltips) can be styled within that
105
+ * boundary. The `target` may be a regular element or a shadow root, open or closed. Calling this method
106
+ * again with a different `target` re-mounts the already rendered collection into the new location.
107
+ *
108
+ * @param target The element or shadow root to mount the body collection in. Defaults to `document.body`.
109
+ */
110
+ attachToDom(target?: HTMLElement | ShadowRoot): void;
111
+ /**
112
+ * Keeps the collection mounted in the given target: attaches it there when the target differs from the
113
+ * current {@link #mountTarget} (see {@link #attachToDom}), unmounts it on a `null` target (see
114
+ * {@link #unmountFromDom}), and leaves the DOM untouched when the collection already sits in the target.
115
+ *
116
+ * Designed for repeated calls with a freshly resolved target (for example on every editor UI update, or
117
+ * with the result of {@link module:utils/dom/getoverlaymountroot~getOverlayMountRoot}), as opposed to
118
+ * {@link #attachToDom}, which re-appends the container even when the target did not change.
119
+ *
120
+ * @param target The element or shadow root to mount the body collection in, or `null` to unmount it.
121
+ */
122
+ syncMountTarget(target: HTMLElement | ShadowRoot | null): void;
123
+ /**
124
+ * Destroys the body collection: destroys its views and removes their shared container from the DOM. Use this
125
+ * method when you do not need the body collection anymore. For a reversible removal that keeps the views so the
126
+ * collection can be {@link #attachToDom attached} again, use {@link #unmountFromDom} instead.
127
+ */
128
+ override destroy(): void;
129
+ /**
130
+ * Removes the collection's container from the DOM without destroying its views, so it can be attached
131
+ * again later with {@link #attachToDom} – for example when the editor is temporarily disconnected from
132
+ * the document. For permanent teardown use {@link #destroy} instead.
133
+ */
134
+ unmountFromDom(): void;
135
+ /**
136
+ * Removes the collection's container (and the shared wrapper, if now empty) from the DOM, keeping the
137
+ * container instance so it can be re-attached.
138
+ */
139
+ private _removeFromDom;
140
+ /**
141
+ * Returns the shared wrapper element for the given mount target, creating (and attaching) it if it does
142
+ * not exist yet or is no longer contained by the target. Body collections sharing a target share a wrapper.
143
+ *
144
+ * The staleness check asks whether the target still contains the wrapper rather than testing `isConnected`,
145
+ * so a wrapper stays reused when the target itself is legitimately detached from the document (for example a
146
+ * configured {@link module:core/editor/editorconfig~UiConfig#overlayContainer `ui.overlayContainer`} that
147
+ * is inserted later). Testing `isConnected` there would treat the still-attached wrapper as stale and build
148
+ * a duplicate wrapper for every body collection sharing that target.
149
+ *
150
+ * @param mountTarget The element or shadow root the wrapper is (or should be) attached to.
151
+ */
152
+ private static _getBodyWrapper;
153
+ /**
154
+ * Removes the shared wrapper for the given mount target (and forgets it) once it holds no more body
155
+ * collections.
156
+ *
157
+ * @param mountTarget The element or shadow root the wrapper is attached to.
158
+ */
159
+ private static _removeBodyWrapperIfEmpty;
90
160
  }
161
+ /**
162
+ * Fired when the collection's {@link module:ui/editorui/bodycollection~BodyCollection#mountTarget mount target}
163
+ * changes – it is {@link module:ui/editorui/bodycollection~BodyCollection#attachToDom attached}, re-attached to a
164
+ * different target, or {@link module:ui/editorui/bodycollection~BodyCollection#unmountFromDom unmounted}.
165
+ *
166
+ * @eventName ~BodyCollection#remount
167
+ */
168
+ export type BodyCollectionRemountEvent = {
169
+ name: "remount";
170
+ args: [];
171
+ };
@@ -1,40 +1,40 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
- */
2
+ * @license Copyright (c) 2003-2026, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-licensing-options
4
+ */
5
5
  /**
6
- * @module ui/editorui/boxed/boxededitoruiview
7
- */
8
- import { EditorUIView } from '../editoruiview.js';
9
- import { type ViewCollection } from '../../viewcollection.js';
10
- import type { Locale } from '@ckeditor/ckeditor5-utils';
6
+ * @module ui/editorui/boxed/boxededitoruiview
7
+ */
8
+ import { EditorUIView } from "../editoruiview.js";
9
+ import { type ViewCollection } from "../../viewcollection.js";
10
+ import type { Locale } from "@ckeditor/ckeditor5-utils";
11
11
  /**
12
- * The boxed editor UI view class. This class represents an editor interface
13
- * consisting of a toolbar and an editable area, enclosed within a box.
14
- */
12
+ * The boxed editor UI view class. This class represents an editor interface
13
+ * consisting of a toolbar and an editable area, enclosed within a box.
14
+ */
15
15
  export declare abstract class BoxedEditorUIView extends EditorUIView {
16
- /**
17
- * Collection of the child views located in the top (`.ck-editor__top`)
18
- * area of the UI.
19
- */
20
- readonly top: ViewCollection;
21
- /**
22
- * Collection of the child views located in the main (`.ck-editor__main`)
23
- * area of the UI.
24
- */
25
- readonly main: ViewCollection;
26
- /**
27
- * Voice label of the UI.
28
- */
29
- private readonly _voiceLabelView;
30
- /**
31
- * Creates an instance of the boxed editor UI view class.
32
- *
33
- * @param locale The locale instance..
34
- */
35
- constructor(locale: Locale);
36
- /**
37
- * Creates a voice label view instance.
38
- */
39
- private _createVoiceLabel;
16
+ /**
17
+ * Collection of the child views located in the top (`.ck-editor__top`)
18
+ * area of the UI.
19
+ */
20
+ readonly top: ViewCollection;
21
+ /**
22
+ * Collection of the child views located in the main (`.ck-editor__main`)
23
+ * area of the UI.
24
+ */
25
+ readonly main: ViewCollection;
26
+ /**
27
+ * Voice label of the UI.
28
+ */
29
+ private readonly _voiceLabelView;
30
+ /**
31
+ * Creates an instance of the boxed editor UI view class.
32
+ *
33
+ * @param locale The locale instance..
34
+ */
35
+ constructor(locale: Locale);
36
+ /**
37
+ * Creates a voice label view instance.
38
+ */
39
+ private _createVoiceLabel;
40
40
  }