@ckeditor/ckeditor5-ui 40.1.0 → 41.0.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 (282) hide show
  1. package/CHANGELOG.md +34 -34
  2. package/LICENSE.md +1 -1
  3. package/lang/contexts.json +3 -1
  4. package/lang/translations/ar.po +9 -1
  5. package/lang/translations/ast.po +9 -1
  6. package/lang/translations/az.po +9 -1
  7. package/lang/translations/bg.po +9 -1
  8. package/lang/translations/bn.po +9 -1
  9. package/lang/translations/ca.po +9 -1
  10. package/lang/translations/cs.po +9 -1
  11. package/lang/translations/da.po +9 -1
  12. package/lang/translations/de-ch.po +9 -1
  13. package/lang/translations/de.po +9 -1
  14. package/lang/translations/el.po +9 -1
  15. package/lang/translations/en-au.po +9 -1
  16. package/lang/translations/en-gb.po +9 -1
  17. package/lang/translations/en.po +9 -1
  18. package/lang/translations/eo.po +9 -1
  19. package/lang/translations/es.po +14 -6
  20. package/lang/translations/et.po +9 -1
  21. package/lang/translations/eu.po +9 -1
  22. package/lang/translations/fa.po +9 -1
  23. package/lang/translations/fi.po +9 -1
  24. package/lang/translations/fr.po +9 -1
  25. package/lang/translations/gl.po +12 -4
  26. package/lang/translations/he.po +9 -1
  27. package/lang/translations/hi.po +9 -1
  28. package/lang/translations/hr.po +9 -1
  29. package/lang/translations/hu.po +9 -1
  30. package/lang/translations/id.po +9 -1
  31. package/lang/translations/it.po +9 -1
  32. package/lang/translations/ja.po +9 -1
  33. package/lang/translations/km.po +9 -1
  34. package/lang/translations/kn.po +9 -1
  35. package/lang/translations/ko.po +9 -1
  36. package/lang/translations/ku.po +9 -1
  37. package/lang/translations/lt.po +9 -1
  38. package/lang/translations/lv.po +9 -1
  39. package/lang/translations/ms.po +9 -1
  40. package/lang/translations/nb.po +9 -1
  41. package/lang/translations/ne.po +9 -1
  42. package/lang/translations/nl.po +9 -1
  43. package/lang/translations/no.po +9 -1
  44. package/lang/translations/pl.po +9 -1
  45. package/lang/translations/pt-br.po +9 -1
  46. package/lang/translations/pt.po +9 -1
  47. package/lang/translations/ro.po +9 -1
  48. package/lang/translations/ru.po +9 -1
  49. package/lang/translations/sk.po +9 -1
  50. package/lang/translations/sl.po +9 -1
  51. package/lang/translations/sq.po +9 -1
  52. package/lang/translations/sr-latn.po +14 -6
  53. package/lang/translations/sr.po +9 -1
  54. package/lang/translations/sv.po +9 -1
  55. package/lang/translations/th.po +9 -1
  56. package/lang/translations/tk.po +9 -1
  57. package/lang/translations/tr.po +9 -1
  58. package/lang/translations/tt.po +9 -1
  59. package/lang/translations/ug.po +9 -1
  60. package/lang/translations/uk.po +9 -1
  61. package/lang/translations/ur.po +9 -1
  62. package/lang/translations/uz.po +9 -1
  63. package/lang/translations/vi.po +9 -1
  64. package/lang/translations/zh-cn.po +9 -1
  65. package/lang/translations/zh.po +9 -1
  66. package/package.json +4 -3
  67. package/src/arialiveannouncer.d.ts +14 -10
  68. package/src/arialiveannouncer.js +11 -8
  69. package/src/augmentation.d.ts +3 -2
  70. package/src/augmentation.js +1 -1
  71. package/src/autocomplete/autocompleteview.d.ts +4 -4
  72. package/src/autocomplete/autocompleteview.js +4 -3
  73. package/src/bindings/addkeyboardhandlingforgrid.d.ts +2 -2
  74. package/src/bindings/addkeyboardhandlingforgrid.js +1 -1
  75. package/src/bindings/clickoutsidehandler.d.ts +1 -1
  76. package/src/bindings/clickoutsidehandler.js +1 -1
  77. package/src/bindings/csstransitiondisablermixin.d.ts +2 -2
  78. package/src/bindings/csstransitiondisablermixin.js +1 -1
  79. package/src/bindings/draggableviewmixin.d.ts +46 -0
  80. package/src/bindings/draggableviewmixin.js +144 -0
  81. package/src/bindings/injectcsstransitiondisabler.d.ts +2 -2
  82. package/src/bindings/injectcsstransitiondisabler.js +1 -1
  83. package/src/bindings/preventdefault.d.ts +3 -3
  84. package/src/bindings/preventdefault.js +1 -1
  85. package/src/bindings/submithandler.d.ts +2 -2
  86. package/src/bindings/submithandler.js +1 -1
  87. package/src/button/button.d.ts +1 -1
  88. package/src/button/button.js +1 -1
  89. package/src/button/buttonlabel.d.ts +2 -2
  90. package/src/button/buttonlabel.js +1 -1
  91. package/src/button/buttonlabelview.d.ts +3 -3
  92. package/src/button/buttonlabelview.js +2 -2
  93. package/src/button/buttonview.d.ts +6 -6
  94. package/src/button/buttonview.js +4 -4
  95. package/src/button/switchbuttonview.d.ts +3 -3
  96. package/src/button/switchbuttonview.js +3 -3
  97. package/src/collapsible/collapsibleview.d.ts +70 -0
  98. package/src/collapsible/collapsibleview.js +95 -0
  99. package/src/colorgrid/colorgridview.d.ts +5 -5
  100. package/src/colorgrid/colorgridview.js +4 -4
  101. package/src/colorgrid/colortileview.d.ts +2 -2
  102. package/src/colorgrid/colortileview.js +2 -2
  103. package/src/colorgrid/utils.d.ts +1 -1
  104. package/src/colorgrid/utils.js +1 -1
  105. package/src/colorpicker/colorpickerview.d.ts +4 -4
  106. package/src/colorpicker/colorpickerview.js +5 -5
  107. package/src/colorpicker/utils.d.ts +1 -1
  108. package/src/colorpicker/utils.js +1 -1
  109. package/src/colorselector/colorgridsfragmentview.d.ts +9 -8
  110. package/src/colorselector/colorgridsfragmentview.js +10 -10
  111. package/src/colorselector/colorpickerfragmentview.d.ts +9 -8
  112. package/src/colorselector/colorpickerfragmentview.js +7 -8
  113. package/src/colorselector/colorselectorview.d.ts +9 -9
  114. package/src/colorselector/colorselectorview.js +6 -6
  115. package/src/colorselector/documentcolorcollection.d.ts +2 -2
  116. package/src/colorselector/documentcolorcollection.js +1 -1
  117. package/src/componentfactory.d.ts +2 -2
  118. package/src/componentfactory.js +1 -1
  119. package/src/dialog/dialog.d.ts +273 -0
  120. package/src/dialog/dialog.js +261 -0
  121. package/src/dialog/dialogactionsview.d.ts +69 -0
  122. package/src/dialog/dialogactionsview.js +98 -0
  123. package/src/dialog/dialogcontentview.d.ts +27 -0
  124. package/src/dialog/dialogcontentview.js +35 -0
  125. package/src/dialog/dialogview.d.ts +256 -0
  126. package/src/dialog/dialogview.js +466 -0
  127. package/src/dropdown/button/dropdownbutton.d.ts +3 -3
  128. package/src/dropdown/button/dropdownbutton.js +1 -1
  129. package/src/dropdown/button/dropdownbuttonview.d.ts +4 -4
  130. package/src/dropdown/button/dropdownbuttonview.js +3 -3
  131. package/src/dropdown/button/splitbuttonview.d.ts +8 -7
  132. package/src/dropdown/button/splitbuttonview.js +10 -8
  133. package/src/dropdown/dropdownpanelfocusable.d.ts +1 -1
  134. package/src/dropdown/dropdownpanelfocusable.js +1 -1
  135. package/src/dropdown/dropdownpanelview.d.ts +4 -4
  136. package/src/dropdown/dropdownpanelview.js +2 -2
  137. package/src/dropdown/dropdownview.d.ts +8 -8
  138. package/src/dropdown/dropdownview.js +5 -4
  139. package/src/dropdown/utils.d.ts +11 -11
  140. package/src/dropdown/utils.js +18 -18
  141. package/src/editableui/editableuiview.d.ts +3 -3
  142. package/src/editableui/editableuiview.js +2 -2
  143. package/src/editableui/inline/inlineeditableuiview.d.ts +4 -4
  144. package/src/editableui/inline/inlineeditableuiview.js +2 -2
  145. package/src/editorui/bodycollection.d.ts +3 -3
  146. package/src/editorui/bodycollection.js +3 -3
  147. package/src/editorui/boxed/boxededitoruiview.d.ts +3 -3
  148. package/src/editorui/boxed/boxededitoruiview.js +3 -3
  149. package/src/editorui/editorui.d.ts +7 -7
  150. package/src/editorui/editorui.js +5 -5
  151. package/src/editorui/editoruiview.d.ts +4 -4
  152. package/src/editorui/editoruiview.js +3 -3
  153. package/src/editorui/poweredby.d.ts +1 -1
  154. package/src/editorui/poweredby.js +4 -4
  155. package/src/focuscycler.d.ts +27 -8
  156. package/src/focuscycler.js +44 -15
  157. package/src/formheader/formheaderview.d.ts +4 -4
  158. package/src/formheader/formheaderview.js +3 -3
  159. package/src/highlightedtext/highlightedtextview.d.ts +2 -2
  160. package/src/highlightedtext/highlightedtextview.js +2 -2
  161. package/src/icon/iconview.d.ts +2 -2
  162. package/src/icon/iconview.js +4 -3
  163. package/src/iframe/iframeview.d.ts +2 -2
  164. package/src/iframe/iframeview.js +2 -2
  165. package/src/index.d.ts +67 -67
  166. package/src/index.js +63 -64
  167. package/src/input/inputbase.d.ts +2 -2
  168. package/src/input/inputbase.js +2 -2
  169. package/src/input/inputview.d.ts +2 -2
  170. package/src/input/inputview.js +2 -2
  171. package/src/inputnumber/inputnumberview.d.ts +2 -2
  172. package/src/inputnumber/inputnumberview.js +2 -2
  173. package/src/inputtext/inputtextview.d.ts +2 -2
  174. package/src/inputtext/inputtextview.js +2 -2
  175. package/src/label/labelview.d.ts +2 -2
  176. package/src/label/labelview.js +2 -2
  177. package/src/labeledfield/labeledfieldview.d.ts +5 -5
  178. package/src/labeledfield/labeledfieldview.js +3 -3
  179. package/src/labeledfield/utils.d.ts +14 -14
  180. package/src/labeledfield/utils.js +13 -13
  181. package/src/labeledinput/labeledinputview.d.ts +4 -4
  182. package/src/labeledinput/labeledinputview.js +3 -3
  183. package/src/list/listitemgroupview.d.ts +6 -6
  184. package/src/list/listitemgroupview.js +11 -7
  185. package/src/list/listitemview.d.ts +4 -4
  186. package/src/list/listitemview.js +2 -2
  187. package/src/list/listseparatorview.d.ts +2 -2
  188. package/src/list/listseparatorview.js +2 -2
  189. package/src/list/listview.d.ts +10 -8
  190. package/src/list/listview.js +7 -6
  191. package/src/model.d.ts +1 -1
  192. package/src/model.js +1 -1
  193. package/src/notification/notification.d.ts +1 -1
  194. package/src/notification/notification.js +1 -1
  195. package/src/panel/balloon/balloonpanelview.d.ts +4 -4
  196. package/src/panel/balloon/balloonpanelview.js +5 -4
  197. package/src/panel/balloon/contextualballoon.d.ts +5 -5
  198. package/src/panel/balloon/contextualballoon.js +7 -9
  199. package/src/panel/sticky/stickypanelview.d.ts +9 -9
  200. package/src/panel/sticky/stickypanelview.js +7 -7
  201. package/src/search/filteredview.d.ts +2 -2
  202. package/src/search/filteredview.js +1 -1
  203. package/src/search/searchinfoview.d.ts +3 -3
  204. package/src/search/searchinfoview.js +2 -2
  205. package/src/search/searchresultsview.d.ts +5 -5
  206. package/src/search/searchresultsview.js +3 -3
  207. package/src/search/text/searchtextqueryview.d.ts +5 -5
  208. package/src/search/text/searchtextqueryview.js +5 -5
  209. package/src/search/text/searchtextview.d.ts +12 -12
  210. package/src/search/text/searchtextview.js +6 -6
  211. package/src/spinner/spinnerview.d.ts +2 -2
  212. package/src/spinner/spinnerview.js +2 -2
  213. package/src/template.d.ts +3 -3
  214. package/src/template.js +3 -3
  215. package/src/textarea/textareaview.d.ts +18 -2
  216. package/src/textarea/textareaview.js +46 -6
  217. package/src/toolbar/balloon/balloontoolbar.d.ts +3 -3
  218. package/src/toolbar/balloon/balloontoolbar.js +5 -5
  219. package/src/toolbar/block/blockbuttonview.d.ts +2 -2
  220. package/src/toolbar/block/blockbuttonview.js +2 -2
  221. package/src/toolbar/block/blocktoolbar.d.ts +4 -4
  222. package/src/toolbar/block/blocktoolbar.js +6 -6
  223. package/src/toolbar/normalizetoolbarconfig.d.ts +1 -1
  224. package/src/toolbar/normalizetoolbarconfig.js +1 -1
  225. package/src/toolbar/toolbarlinebreakview.d.ts +2 -2
  226. package/src/toolbar/toolbarlinebreakview.js +2 -2
  227. package/src/toolbar/toolbarseparatorview.d.ts +2 -2
  228. package/src/toolbar/toolbarseparatorview.js +2 -2
  229. package/src/toolbar/toolbarview.d.ts +7 -6
  230. package/src/toolbar/toolbarview.js +17 -15
  231. package/src/tooltipmanager.d.ts +3 -3
  232. package/src/tooltipmanager.js +5 -4
  233. package/src/view.d.ts +3 -3
  234. package/src/view.js +3 -3
  235. package/src/viewcollection.d.ts +2 -2
  236. package/src/viewcollection.js +1 -1
  237. package/theme/components/arialiveannouncer/arialiveannouncer.css +1 -1
  238. package/theme/components/autocomplete/autocomplete.css +2 -2
  239. package/theme/components/button/button.css +1 -1
  240. package/theme/components/button/switchbutton.css +1 -1
  241. package/theme/components/collapsible/collapsible.css +10 -0
  242. package/theme/components/colorgrid/colorgrid.css +1 -1
  243. package/theme/components/colorpicker/colorpicker.css +1 -1
  244. package/theme/components/colorselector/colorselector.css +1 -1
  245. package/theme/components/dialog/dialog.css +39 -0
  246. package/theme/components/dialog/dialogactions.css +11 -0
  247. package/theme/components/dropdown/dropdown.css +3 -3
  248. package/theme/components/dropdown/listdropdown.css +1 -1
  249. package/theme/components/dropdown/splitbutton.css +1 -1
  250. package/theme/components/dropdown/toolbardropdown.css +1 -1
  251. package/theme/components/editorui/editorui.css +1 -1
  252. package/theme/components/formheader/formheader.css +1 -1
  253. package/theme/components/highlightedtext/highlightedtext.css +1 -1
  254. package/theme/components/icon/icon.css +1 -1
  255. package/theme/components/input/input.css +1 -1
  256. package/theme/components/label/label.css +1 -1
  257. package/theme/components/labeledfield/labeledfieldview.css +1 -1
  258. package/theme/components/labeledinput/labeledinput.css +1 -1
  259. package/theme/components/list/list.css +1 -1
  260. package/theme/components/panel/balloonpanel.css +2 -2
  261. package/theme/components/panel/balloonrotator.css +1 -1
  262. package/theme/components/panel/fakepanel.css +2 -2
  263. package/theme/components/panel/stickypanel.css +2 -2
  264. package/theme/components/responsive-form/responsiveform.css +1 -1
  265. package/theme/components/search/search.css +1 -1
  266. package/theme/components/spinner/spinner.css +1 -1
  267. package/theme/components/textarea/textarea.css +1 -1
  268. package/theme/components/toolbar/blocktoolbar.css +1 -1
  269. package/theme/components/toolbar/toolbar.css +1 -1
  270. package/theme/components/tooltip/tooltip.css +2 -2
  271. package/theme/globals/_hidden.css +1 -1
  272. package/theme/globals/_poweredby.css +2 -2
  273. package/theme/globals/_reset.css +1 -1
  274. package/theme/globals/_transition.css +1 -1
  275. package/theme/globals/_zindex.css +3 -2
  276. package/theme/globals/globals.css +1 -1
  277. package/theme/mixins/_dir.css +1 -1
  278. package/theme/mixins/_rwd.css +1 -1
  279. package/theme/mixins/_unselectable.css +1 -1
  280. package/theme/icons/color-palette.svg +0 -1
  281. package/theme/icons/next-arrow.svg +0 -1
  282. package/theme/icons/previous-arrow.svg +0 -1
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/dropdown/dropdownview
7
7
  */
8
- import View from '../view';
9
- import type { default as DropdownButton } from './button/dropdownbutton';
10
- import type { default as DropdownPanelView, PanelPosition } from './dropdownpanelview';
11
- import type { FocusableView } from '../focuscycler';
12
- import type ListView from '../list/listview';
13
- import type ToolbarView from '../toolbar/toolbarview';
8
+ import View from '../view.js';
9
+ import type { default as DropdownButton } from './button/dropdownbutton.js';
10
+ import type { default as DropdownPanelView, PanelPosition } from './dropdownpanelview.js';
11
+ import type { FocusableView } from '../focuscycler.js';
12
+ import type ListView from '../list/listview.js';
13
+ import type ToolbarView from '../toolbar/toolbarview.js';
14
14
  import { KeystrokeHandler, FocusTracker, type Locale, type PositioningFunction } from '@ckeditor/ckeditor5-utils';
15
15
  import '../../theme/components/dropdown/dropdown.css';
16
16
  /**
@@ -283,7 +283,7 @@ export default class DropdownView extends View<HTMLDivElement> {
283
283
  * [ Button ]
284
284
  * ```
285
285
  *
286
- * Positioning functions are compatible with {@link module:utils/dom/position~Position}.
286
+ * Positioning functions are compatible with {@link module:utils/dom/position~DomPoint}.
287
287
  *
288
288
  * The name that position function returns will be reflected in dropdown panel's class that
289
289
  * controls its placement. See {@link module:ui/dropdown/dropdownview~DropdownView#panelPosition}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/dropdown/dropdownview
7
7
  */
8
- import View from '../view';
8
+ import View from '../view.js';
9
9
  import { KeystrokeHandler, FocusTracker, getOptimalPosition } from '@ckeditor/ckeditor5-utils';
10
10
  import '../../theme/components/dropdown/dropdown.css';
11
11
  /**
@@ -60,7 +60,7 @@ import '../../theme/components/dropdown/dropdown.css';
60
60
  * (which should close it) and support for arrow keys inside the panel. Therefore, unless you really know what
61
61
  * you do and you really need to do it, it is recommended to use the {@link module:ui/dropdown/utils~createDropdown} helper.
62
62
  */
63
- export default class DropdownView extends View {
63
+ class DropdownView extends View {
64
64
  /**
65
65
  * Creates an instance of the dropdown.
66
66
  *
@@ -295,7 +295,7 @@ export default class DropdownView extends View {
295
295
  * [ Button ]
296
296
  * ```
297
297
  *
298
- * Positioning functions are compatible with {@link module:utils/dom/position~Position}.
298
+ * Positioning functions are compatible with {@link module:utils/dom/position~DomPoint}.
299
299
  *
300
300
  * The name that position function returns will be reflected in dropdown panel's class that
301
301
  * controls its placement. See {@link module:ui/dropdown/dropdownview~DropdownView#panelPosition}
@@ -377,3 +377,4 @@ DropdownView.defaultPanelPositions = {
377
377
  * A function used to calculate the optimal position for the dropdown panel.
378
378
  */
379
379
  DropdownView._getOptimalPosition = getOptimalPosition;
380
+ export default DropdownView;
@@ -1,14 +1,14 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- import DropdownView from './dropdownview';
6
- import ViewCollection from '../viewcollection';
7
- import type { default as View } from '../view';
8
- import type Model from '../model';
9
- import type DropdownButton from './button/dropdownbutton';
10
- import type { FocusableView } from '../focuscycler';
11
- import type { FalsyValue } from '../template';
5
+ import DropdownView from './dropdownview.js';
6
+ import ViewCollection from '../viewcollection.js';
7
+ import type { default as View } from '../view.js';
8
+ import type Model from '../model.js';
9
+ import type DropdownButton from './button/dropdownbutton.js';
10
+ import type { FocusableView } from '../focuscycler.js';
11
+ import type { FalsyValue } from '../template.js';
12
12
  import { type Collection, type Locale } from '@ckeditor/ckeditor5-utils';
13
13
  import '../../theme/components/dropdown/toolbardropdown.css';
14
14
  import '../../theme/components/dropdown/listdropdown.css';
@@ -76,11 +76,11 @@ import '../../theme/components/dropdown/listdropdown.css';
76
76
  * {@link module:ui/dropdown/utils~addToolbarToDropdown} utils.
77
77
  *
78
78
  * @param locale The locale instance.
79
- * @param ButtonClass The dropdown button view class. Needs to implement the
79
+ * @param ButtonClassOrInstance The dropdown button view class. Needs to implement the
80
80
  * {@link module:ui/dropdown/button/dropdownbutton~DropdownButton} interface.
81
81
  * @returns The dropdown view instance.
82
82
  */
83
- export declare function createDropdown(locale: Locale | undefined, ButtonClass?: new (locale?: Locale) => DropdownButton & FocusableView): DropdownView;
83
+ export declare function createDropdown(locale: Locale | undefined, ButtonClassOrInstance?: (new (locale?: Locale) => DropdownButton & FocusableView) | (DropdownButton & FocusableView)): DropdownView;
84
84
  /**
85
85
  * Adds an instance of {@link module:ui/toolbar/toolbarview~ToolbarView} to a dropdown.
86
86
  *
@@ -137,7 +137,7 @@ export declare function addToolbarToDropdown(dropdownView: DropdownView, buttons
137
137
  * Adds an instance of {@link module:ui/list/listview~ListView} to a dropdown.
138
138
  *
139
139
  * ```ts
140
- * const items = new Collection();
140
+ * const items = new Collection<ListDropdownItemDefinition>();
141
141
  *
142
142
  * items.add( {
143
143
  * type: 'button',
@@ -1,26 +1,26 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/dropdown/utils
7
7
  */
8
- import DropdownPanelView from './dropdownpanelview';
9
- import DropdownView from './dropdownview';
10
- import DropdownButtonView from './button/dropdownbuttonview';
11
- import ToolbarView from '../toolbar/toolbarview';
12
- import ListView from '../list/listview';
13
- import ListItemView from '../list/listitemview';
14
- import ListSeparatorView from '../list/listseparatorview';
15
- import ButtonView from '../button/buttonview';
16
- import SplitButtonView from './button/splitbuttonview';
17
- import SwitchButtonView from '../button/switchbuttonview';
18
- import ViewCollection from '../viewcollection';
19
- import clickOutsideHandler from '../bindings/clickoutsidehandler';
8
+ import DropdownPanelView from './dropdownpanelview.js';
9
+ import DropdownView from './dropdownview.js';
10
+ import DropdownButtonView from './button/dropdownbuttonview.js';
11
+ import ToolbarView from '../toolbar/toolbarview.js';
12
+ import ListView from '../list/listview.js';
13
+ import ListItemView from '../list/listitemview.js';
14
+ import ListSeparatorView from '../list/listseparatorview.js';
15
+ import ButtonView from '../button/buttonview.js';
16
+ import SplitButtonView from './button/splitbuttonview.js';
17
+ import SwitchButtonView from '../button/switchbuttonview.js';
18
+ import ViewCollection from '../viewcollection.js';
19
+ import clickOutsideHandler from '../bindings/clickoutsidehandler.js';
20
20
  import { global, priorities, logWarning } from '@ckeditor/ckeditor5-utils';
21
21
  import '../../theme/components/dropdown/toolbardropdown.css';
22
22
  import '../../theme/components/dropdown/listdropdown.css';
23
- import ListItemGroupView from '../list/listitemgroupview';
23
+ import ListItemGroupView from '../list/listitemgroupview.js';
24
24
  /**
25
25
  * A helper for creating dropdowns. It creates an instance of a {@link module:ui/dropdown/dropdownview~DropdownView dropdown},
26
26
  * with a {@link module:ui/dropdown/button/dropdownbutton~DropdownButton button},
@@ -85,12 +85,12 @@ import ListItemGroupView from '../list/listitemgroupview';
85
85
  * {@link module:ui/dropdown/utils~addToolbarToDropdown} utils.
86
86
  *
87
87
  * @param locale The locale instance.
88
- * @param ButtonClass The dropdown button view class. Needs to implement the
88
+ * @param ButtonClassOrInstance The dropdown button view class. Needs to implement the
89
89
  * {@link module:ui/dropdown/button/dropdownbutton~DropdownButton} interface.
90
90
  * @returns The dropdown view instance.
91
91
  */
92
- export function createDropdown(locale, ButtonClass = DropdownButtonView) {
93
- const buttonView = new ButtonClass(locale);
92
+ export function createDropdown(locale, ButtonClassOrInstance = DropdownButtonView) {
93
+ const buttonView = typeof ButtonClassOrInstance == 'function' ? new ButtonClassOrInstance(locale) : ButtonClassOrInstance;
94
94
  const panelView = new DropdownPanelView(locale);
95
95
  const dropdownView = new DropdownView(locale, buttonView, panelView);
96
96
  buttonView.bind('isEnabled').to(dropdownView);
@@ -198,7 +198,7 @@ function addToolbarToOpenDropdown(dropdownView, buttonsOrCallback, options) {
198
198
  * Adds an instance of {@link module:ui/list/listview~ListView} to a dropdown.
199
199
  *
200
200
  * ```ts
201
- * const items = new Collection();
201
+ * const items = new Collection<ListDropdownItemDefinition>();
202
202
  *
203
203
  * items.add( {
204
204
  * type: 'button',
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editableui/editableuiview
7
7
  */
8
- import View from '../view';
9
- import type { View as EditingView } from '@ckeditor/ckeditor5-engine';
8
+ import View from '../view.js';
9
+ import type { EditingView } from '@ckeditor/ckeditor5-engine';
10
10
  import type { Locale } from '@ckeditor/ckeditor5-utils';
11
11
  /**
12
12
  * The editable UI view class.
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editableui/editableuiview
7
7
  */
8
- import View from '../view';
8
+ import View from '../view.js';
9
9
  /**
10
10
  * The editable UI view class.
11
11
  */
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editableui/inline/inlineeditableuiview
7
7
  */
8
- import EditableUIView from '../editableuiview';
9
- import type { View } from '@ckeditor/ckeditor5-engine';
8
+ import EditableUIView from '../editableuiview.js';
9
+ import type { EditingView } from '@ckeditor/ckeditor5-engine';
10
10
  import type { Locale } from '@ckeditor/ckeditor5-utils';
11
11
  /**
12
12
  * The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.
@@ -30,7 +30,7 @@ export default class InlineEditableUIView extends EditableUIView {
30
30
  * and should return a string that represents the label of the editable for assistive technologies. If not provided,
31
31
  * a default label generator is used.
32
32
  */
33
- constructor(locale: Locale, editingView: View, editableElement?: HTMLElement, options?: {
33
+ constructor(locale: Locale, editingView: EditingView, editableElement?: HTMLElement, options?: {
34
34
  label?: (view: InlineEditableUIView) => string;
35
35
  });
36
36
  /**
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editableui/inline/inlineeditableuiview
7
7
  */
8
- import EditableUIView from '../editableuiview';
8
+ import EditableUIView from '../editableuiview.js';
9
9
  /**
10
10
  * The inline editable UI class implementing an inline {@link module:ui/editableui/editableuiview~EditableUIView}.
11
11
  */
@@ -1,9 +1,9 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
- import ViewCollection from '../viewcollection';
6
- import type View from '../view';
5
+ import ViewCollection from '../viewcollection.js';
6
+ import type View from '../view.js';
7
7
  import { type Locale } from '@ckeditor/ckeditor5-utils';
8
8
  /**
9
9
  * This is a special {@link module:ui/viewcollection~ViewCollection} dedicated to elements that are detached
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/bodycollection
7
7
  */
8
8
  /* globals document */
9
- import Template from '../template';
10
- import ViewCollection from '../viewcollection';
9
+ import Template from '../template.js';
10
+ import ViewCollection from '../viewcollection.js';
11
11
  import { createElement } from '@ckeditor/ckeditor5-utils';
12
12
  /**
13
13
  * This is a special {@link module:ui/viewcollection~ViewCollection} dedicated to elements that are detached
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/boxed/boxededitoruiview
7
7
  */
8
- import EditorUIView from '../editoruiview';
9
- import type ViewCollection from '../../viewcollection';
8
+ import EditorUIView from '../editoruiview.js';
9
+ import type ViewCollection from '../../viewcollection.js';
10
10
  import type { Locale } from '@ckeditor/ckeditor5-utils';
11
11
  /**
12
12
  * The boxed editor UI view class. This class represents an editor interface
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/boxed/boxededitoruiview
7
7
  */
8
- import EditorUIView from '../editoruiview';
9
- import LabelView from '../../label/labelview';
8
+ import EditorUIView from '../editoruiview.js';
9
+ import LabelView from '../../label/labelview.js';
10
10
  /**
11
11
  * The boxed editor UI view class. This class represents an editor interface
12
12
  * consisting of a toolbar and an editable area, enclosed within a box.
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/editorui
7
7
  */
8
- import ComponentFactory from '../componentfactory';
9
- import TooltipManager from '../tooltipmanager';
10
- import PoweredBy from './poweredby';
11
- import AriaLiveAnnouncer from '../arialiveannouncer';
12
- import type EditorUIView from './editoruiview';
13
- import type ToolbarView from '../toolbar/toolbarview';
8
+ import ComponentFactory from '../componentfactory.js';
9
+ import TooltipManager from '../tooltipmanager.js';
10
+ import PoweredBy from './poweredby.js';
11
+ import AriaLiveAnnouncer from '../arialiveannouncer.js';
12
+ import type EditorUIView from './editoruiview.js';
13
+ import type ToolbarView from '../toolbar/toolbarview.js';
14
14
  import { FocusTracker } from '@ckeditor/ckeditor5-utils';
15
15
  import type { Editor } from '@ckeditor/ckeditor5-core';
16
16
  declare const EditorUI_base: {
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/editorui
7
7
  */
8
8
  /* globals console */
9
- import ComponentFactory from '../componentfactory';
10
- import TooltipManager from '../tooltipmanager';
11
- import PoweredBy from './poweredby';
12
- import AriaLiveAnnouncer from '../arialiveannouncer';
9
+ import ComponentFactory from '../componentfactory.js';
10
+ import TooltipManager from '../tooltipmanager.js';
11
+ import PoweredBy from './poweredby.js';
12
+ import AriaLiveAnnouncer from '../arialiveannouncer.js';
13
13
  import { ObservableMixin, isVisible, FocusTracker } from '@ckeditor/ckeditor5-utils';
14
14
  /**
15
15
  * A class providing the minimal interface that is required to successfully bootstrap any editor UI.
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/editoruiview
7
7
  */
8
- import View from '../view';
9
- import BodyCollection from './bodycollection';
10
- import type EditableUIView from '../editableui/editableuiview';
8
+ import View from '../view.js';
9
+ import BodyCollection from './bodycollection.js';
10
+ import type EditableUIView from '../editableui/editableuiview.js';
11
11
  import type { Locale, LocaleTranslate } from '@ckeditor/ckeditor5-utils';
12
12
  import '../../theme/components/editorui/editorui.css';
13
13
  /**
@@ -1,12 +1,12 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/editorui/editoruiview
7
7
  */
8
- import View from '../view';
9
- import BodyCollection from './bodycollection';
8
+ import View from '../view.js';
9
+ import BodyCollection from './bodycollection.js';
10
10
  import '../../theme/components/editorui/editorui.css';
11
11
  /**
12
12
  * The editor UI view class. Base class for the editor main views.
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
@@ -1,11 +1,11 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  import { DomEmitterMixin, Rect, verifyLicense } from '@ckeditor/ckeditor5-utils';
6
- import BalloonPanelView from '../panel/balloon/balloonpanelview';
7
- import IconView from '../icon/iconview';
8
- import View from '../view';
6
+ import BalloonPanelView from '../panel/balloon/balloonpanelview.js';
7
+ import IconView from '../icon/iconview.js';
8
+ import View from '../view.js';
9
9
  import { throttle } from 'lodash-es';
10
10
  import poweredByIcon from '../../theme/icons/project-logo.svg';
11
11
  const ICON_WIDTH = 53;
@@ -1,13 +1,13 @@
1
1
  /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2003-2024, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
4
  */
5
5
  /**
6
6
  * @module ui/focuscycler
7
7
  */
8
8
  import { type ArrayOrItem, type FocusTracker, type KeystrokeHandler } from '@ckeditor/ckeditor5-utils';
9
- import type View from './view';
10
- import type ViewCollection from './viewcollection';
9
+ import type View from './view.js';
10
+ import type ViewCollection from './viewcollection.js';
11
11
  declare const FocusCycler_base: {
12
12
  new (): import("@ckeditor/ckeditor5-utils").Emitter;
13
13
  prototype: import("@ckeditor/ckeditor5-utils").Emitter;
@@ -66,9 +66,9 @@ declare const FocusCycler_base: {
66
66
  */
67
67
  export default class FocusCycler extends FocusCycler_base {
68
68
  /**
69
- * A {@link module:ui/view~View view} collection that the cycler operates on.
69
+ * A {@link module:ui/focuscycler~FocusableView focusable views} collection that the cycler operates on.
70
70
  */
71
- readonly focusables: ViewCollection;
71
+ readonly focusables: ViewCollection<FocusableView>;
72
72
  /**
73
73
  * A focus tracker instance that the cycler uses to determine the current focus
74
74
  * state in {@link #focusables}.
@@ -102,7 +102,7 @@ export default class FocusCycler extends FocusCycler_base {
102
102
  * @param options Configuration options.
103
103
  */
104
104
  constructor(options: {
105
- focusables: ViewCollection;
105
+ focusables: ViewCollection<FocusableView>;
106
106
  focusTracker: FocusTracker;
107
107
  keystrokeHandler?: KeystrokeHandler;
108
108
  actions?: FocusCyclerActions;
@@ -178,10 +178,10 @@ export default class FocusCycler extends FocusCycler_base {
178
178
  *
179
179
  * @param step Either `1` for checking forward from {@link #current} or `-1` for checking backwards.
180
180
  */
181
- private _getFocusableItem;
181
+ private _getDomFocusableItem;
182
182
  }
183
183
  /**
184
- * A view that can be focused.
184
+ * A {@link module:ui/view~View} that can be focused (e.g. has `focus()` method).
185
185
  */
186
186
  export type FocusableView = View & {
187
187
  /**
@@ -197,6 +197,13 @@ export type FocusableView = View & {
197
197
  */
198
198
  focus(direction?: 1 | -1): void;
199
199
  };
200
+ /**
201
+ * A {@link module:ui/view~View} that hosts one or more of focusable children being managed by a {@link module:ui/focuscycler~FocusCycler}
202
+ * instance exposed under `focusCycler` property.
203
+ */
204
+ export type ViewWithFocusCycler = FocusableView & {
205
+ focusCycler: FocusCycler;
206
+ };
200
207
  export interface FocusCyclerActions {
201
208
  focusFirst?: ArrayOrItem<string>;
202
209
  focusLast?: ArrayOrItem<string>;
@@ -223,4 +230,16 @@ export type FocusCyclerBackwardCycleEvent = {
223
230
  name: 'backwardCycle';
224
231
  args: [];
225
232
  };
233
+ /**
234
+ * Checks whether a view is {@link ~FocusableView}.
235
+ *
236
+ * @param view A view to be checked.
237
+ */
238
+ export declare function isFocusable(view: View): view is FocusableView;
239
+ /**
240
+ * Checks whether a view is an instance of {@link ~ViewWithFocusCycler}.
241
+ *
242
+ * @param view A view to be checked.
243
+ */
244
+ export declare function isViewWithFocusCycler(view: View): view is ViewWithFocusCycler;
226
245
  export {};