@ckeditor/ckeditor5-ui 48.8.1-alpha.3 → 49.0.0-alpha.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 (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 +3240 -2329
  72. package/dist/index-editor.css.map +1 -0
  73. package/dist/index.css +2939 -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
@@ -0,0 +1,210 @@
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
+ /**
6
+ * @module ui/overlayhost
7
+ */
8
+ import { BodyCollection } from "./editorui/bodycollection.js";
9
+ import { TooltipManager } from "./tooltipmanager.js";
10
+ import { ShadowRootRegistry, type Emitter, type EmitterMixinConstructor, type Locale } from "@ckeditor/ckeditor5-utils";
11
+ declare const OverlayHostBase: EmitterMixinConstructor;
12
+ /**
13
+ * Keeps a feature's floating UI – its balloons, dialogs, panels and the tooltips inside them – in the right DOM
14
+ * tree, and keeps it there as the feature moves.
15
+ *
16
+ * For a feature that renders its UI *outside* an editor, in a container the integrator may put anywhere,
17
+ * including inside a shadow root. An editor's own floating UI needs none of this: it is mounted in the root the
18
+ * editor lives in and stays there.
19
+ *
20
+ * # Why it is needed
21
+ *
22
+ * Floating UI is mounted through a {@link module:ui/editorui/bodycollection~BodyCollection}, and it has to go
23
+ * into the same tree as the feature it belongs to. Anywhere else it loses the styles scoped to that tree, and
24
+ * its tooltips come out clipped or mis-styled across the shadow boundary.
25
+ *
26
+ * Doing that by hand means re-mounting the collection whenever the container moves, unmounting it while the
27
+ * container is detached, registering and unregistering it with the shared
28
+ * {@link module:ui/tooltipmanager~TooltipManager}, tracking the shadow roots of the inline UI so that tooltips
29
+ * and click-outside detection reach across boundaries, and tearing it all down in the right order. This class
30
+ * does all of it, behind resolvers that say where the feature's UI currently is.
31
+ *
32
+ * # How to use it
33
+ *
34
+ * ```ts
35
+ * const host = new OverlayHost( locale, {
36
+ * resolveMountTarget: () => getOverlayMountRoot( featureContainer ),
37
+ * resolveInlineContainer: () => featureContainer
38
+ * } );
39
+ *
40
+ * host.sync();
41
+ * host.bodyCollection.add( balloonPanelView );
42
+ * ```
43
+ *
44
+ * Add the feature's floating views to {@link #bodyCollection}. Call {@link #sync} whenever the container may
45
+ * have moved – right before showing a panel, for instance – and {@link #destroy} once the feature goes away.
46
+ * It re-syncs on its own too: whenever a view is added to the collection, and on every `update` event of an
47
+ * {@link module:ui/overlayhost~OverlayHostOptions#updateEmitter `updateEmitter`}, if one is given.
48
+ *
49
+ * An editor's {@link module:ui/editorui/editorui~EditorUI} uses this class as well, lending it the body
50
+ * collection and shadow root registry it already has.
51
+ */
52
+ export declare class OverlayHost extends OverlayHostBase {
53
+ /**
54
+ * The body collection holding the floating views. Add the feature's balloons and panels here.
55
+ */
56
+ readonly bodyCollection: BodyCollection;
57
+ /**
58
+ * Tracks the shadow roots hosting the tooltip-bearing UI that lives outside the {@link #bodyCollection}:
59
+ * the {@link module:ui/overlayhost~OverlayHostOptions#resolveInlineContainer inline UI container} and any
60
+ * nodes registered directly by the owner (an editor registers its editables, toolbars and menu bar).
61
+ */
62
+ readonly shadowRootRegistry: ShadowRootRegistry;
63
+ /**
64
+ * The shared tooltip manager the {@link #bodyCollection} is registered with.
65
+ */
66
+ private readonly _tooltipManager;
67
+ /**
68
+ * See {@link module:ui/overlayhost~OverlayHostOptions#resolveMountTarget}.
69
+ */
70
+ private readonly _resolveMountTarget;
71
+ /**
72
+ * See {@link module:ui/overlayhost~OverlayHostOptions#resolveInlineContainer}.
73
+ */
74
+ private readonly _resolveInlineContainer?;
75
+ /**
76
+ * The inline UI container currently registered with {@link #shadowRootRegistry}, so it can be
77
+ * replaced when the feature moves to a different container.
78
+ */
79
+ private _registeredInlineContainer;
80
+ /**
81
+ * Whether the {@link #bodyCollection} was created by this host (and is destroyed with it), as opposed to
82
+ * a borrowed one whose owner manages its life cycle.
83
+ */
84
+ private readonly _ownsBodyCollection;
85
+ /**
86
+ * Whether the {@link #shadowRootRegistry} was created by this host (and is destroyed with it), as opposed
87
+ * to a borrowed one whose owner manages its life cycle.
88
+ */
89
+ private readonly _ownsShadowRootRegistry;
90
+ /**
91
+ * Whether this host acquired its own reference to the shared tooltip manager (and releases it on
92
+ * {@link #destroy}), as opposed to using a borrowed reference whose holder releases it – an editor counts
93
+ * as a single holder no matter how it splits the work internally.
94
+ */
95
+ private readonly _ownsTooltipManagerReference;
96
+ /**
97
+ * Whether {@link #destroy} has run, so a repeated call does not release the shared tooltip manager on
98
+ * behalf of another holder.
99
+ */
100
+ private _destroyed;
101
+ /**
102
+ * Creates the host: the {@link #bodyCollection} (unless a borrowed one is given) and its registration in
103
+ * the shared {@link module:ui/tooltipmanager~TooltipManager}. The collection is not mounted in the DOM
104
+ * yet – call {@link #sync} for that.
105
+ *
106
+ * @param locale The locale of the feature (used by the body collection and the tooltip views).
107
+ * @param options The resolvers describing where the feature UI lives.
108
+ */
109
+ constructor(locale: Locale, options: OverlayHostOptions);
110
+ /**
111
+ * Brings the host up to date with the resolved targets:
112
+ *
113
+ * * keeps the {@link #bodyCollection} mounted in the target resolved by
114
+ * {@link module:ui/overlayhost~OverlayHostOptions#resolveMountTarget} (re-mounting only when the target
115
+ * changes, unmounting on `null`);
116
+ * * keeps the {@link module:ui/overlayhost~OverlayHostOptions#resolveInlineContainer inline UI container}
117
+ * tracked for tooltips, re-resolving its shadow root in case a detached container has become connected.
118
+ *
119
+ * Idempotent – call it whenever the targets may have changed: after attaching the feature to a container,
120
+ * right before showing a floating panel (an editor's UI may be mounted lazily), or on any relevant layout
121
+ * change.
122
+ */
123
+ sync(): void;
124
+ /**
125
+ * Destroys the host: stops hosting tooltips in the {@link #bodyCollection}, releases the shared
126
+ * {@link module:ui/tooltipmanager~TooltipManager} (so it is destroyed with its last holder) and destroys
127
+ * the collection together with its views and the {@link #shadowRootRegistry} – except the borrowed ones,
128
+ * which their owners destroy. Safe to call more than once.
129
+ */
130
+ destroy(): void;
131
+ }
132
+ /**
133
+ * The configuration of an {@link module:ui/overlayhost~OverlayHost}: callbacks resolving where the feature UI
134
+ * lives, called on every {@link module:ui/overlayhost~OverlayHost#sync}, and optional borrowed collaborators.
135
+ */
136
+ export interface OverlayHostOptions {
137
+ /**
138
+ * Resolves the element or shadow root the {@link module:ui/overlayhost~OverlayHost#bodyCollection} should
139
+ * be mounted in – that is, where the feature's floating views end up in the DOM. The collection is
140
+ * appended as a top-level child of this target, which should meet two requirements at once:
141
+ *
142
+ * * it adopts the same styles as the root the feature's UI lives in – typically a shadow root sharing that
143
+ * root's adopted stylesheets – so the floating views are styled like the rest of the feature's UI;
144
+ * * it sits at the end of `document.body`, both so that `overflow` on the ancestors between the feature
145
+ * and the document body cannot clip the floating UI, and so that it paints above the rest of the UI
146
+ * (DOM order decides paint order within a stacking context) instead of below it.
147
+ *
148
+ * A dedicated shadow root appended at the end of `document.body` that mirrors those styles satisfies both.
149
+ * The target is therefore not required to be the feature's own root, and to stay unclipped and on top it
150
+ * usually should not be nested inside the feature's container.
151
+ *
152
+ * Return `null` to keep the collection unmounted – for example while the feature's container is not
153
+ * connected to the document yet, so there is no root to resolve. The target is re-resolved on every
154
+ * {@link module:ui/overlayhost~OverlayHost#sync}, so the collection is re-mounted if the feature moves to a
155
+ * different root and unmounted once its container goes away.
156
+ *
157
+ * {@link module:utils/dom/getoverlaymountroot~getOverlayMountRoot} covers the common resolution from an
158
+ * anchor node (the feature's container): the anchor's shadow root when it lives in one, `document.body`
159
+ * in the light DOM, or `null` while the anchor is detached.
160
+ */
161
+ resolveMountTarget: () => HTMLElement | ShadowRoot | null;
162
+ /**
163
+ * Resolves the DOM node holding the feature's *inline* UI – the parts the feature renders directly into
164
+ * its own container (buttons, badges, and similar), as opposed to the floating views it puts into the
165
+ * {@link module:ui/overlayhost~OverlayHost#bodyCollection}. Usually the container element itself, but it
166
+ * may also be a shadow root, when that root is all the feature knows of the tree its inline UI lives in.
167
+ *
168
+ * The host registers this node with its {@link module:ui/overlayhost~OverlayHost#shadowRootRegistry} so
169
+ * the shared {@link module:ui/tooltipmanager~TooltipManager} can drive the tooltips of that inline UI. This
170
+ * matters when the inline UI sits inside a shadow root: in events observed at the document level the
171
+ * elements inside the root are hidden behind their shadow host, so the tooltip manager has to attach its
172
+ * listeners inside each registered root – without this node being registered, the tooltips of the
173
+ * feature's inline UI would never fire. The node is re-resolved on every
174
+ * {@link module:ui/overlayhost~OverlayHost#sync}, so the registration follows the feature if it moves to a
175
+ * different container.
176
+ *
177
+ * Omit it when the feature has no tooltip-bearing UI outside the body collection, or when those nodes are
178
+ * registered directly with the {@link module:ui/overlayhost~OverlayHost#shadowRootRegistry} instead.
179
+ */
180
+ resolveInlineContainer?: () => HTMLElement | ShadowRoot | null | undefined;
181
+ /**
182
+ * An existing body collection to host instead of creating one – used by
183
+ * {@link module:ui/editorui/editorui~EditorUI}, whose collection belongs to the
184
+ * {@link module:ui/editorui/editoruiview~EditorUIView}. A borrowed collection is not destroyed by
185
+ * {@link module:ui/overlayhost~OverlayHost#destroy}; its owner destroys it.
186
+ */
187
+ bodyCollection?: BodyCollection;
188
+ /**
189
+ * An existing shadow root registry to use instead of creating one – used by
190
+ * {@link module:ui/editorui/editorui~EditorUI}, which feeds its registry from many places (editables,
191
+ * toolbars, the menu bar) and shares it with other features. A borrowed registry is not destroyed by
192
+ * {@link module:ui/overlayhost~OverlayHost#destroy}; its owner destroys it.
193
+ */
194
+ shadowRootRegistry?: ShadowRootRegistry;
195
+ /**
196
+ * A borrowed reference to the shared tooltip manager to register the body collection with, instead of the
197
+ * host {@link module:ui/tooltipmanager~TooltipManager.for acquiring} (and on destroy
198
+ * {@link module:ui/tooltipmanager~TooltipManager#release releasing}) a reference of its own – used by
199
+ * {@link module:ui/editorui/editorui~EditorUI}, so an editor keeps counting as a single holder of the
200
+ * singleton. The holder of the borrowed reference releases it.
201
+ */
202
+ tooltipManager?: TooltipManager;
203
+ /**
204
+ * An emitter whose `update` event signals that the UI may have moved or re-rendered (an editor passes its
205
+ * {@link module:ui/editorui/editorui~EditorUI}). The host {@link module:ui/overlayhost~OverlayHost#sync
206
+ * re-syncs} on every such event and the shared tooltip manager repositions a pinned tooltip.
207
+ */
208
+ updateEmitter?: Emitter;
209
+ }
210
+ export {};