@ckeditor/ckeditor5-ui 43.2.0 → 43.3.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 (174) hide show
  1. package/dist/dialog/dialog.d.ts +16 -0
  2. package/dist/dialog/dialogview.d.ts +3 -1
  3. package/dist/editorui/accessibilityhelp/accessibilityhelp.d.ts +4 -0
  4. package/dist/index-editor.css +12 -15
  5. package/dist/index.css +14 -15
  6. package/dist/index.css.map +1 -1
  7. package/dist/index.js +101 -30
  8. package/dist/index.js.map +1 -1
  9. package/dist/notification/notification.d.ts +4 -0
  10. package/dist/panel/balloon/contextualballoon.d.ts +4 -0
  11. package/dist/toolbar/balloon/balloontoolbar.d.ts +4 -0
  12. package/dist/toolbar/block/blocktoolbar.d.ts +4 -0
  13. package/dist/translations/ar.js +1 -1
  14. package/dist/translations/ar.umd.js +1 -1
  15. package/dist/translations/bs.js +1 -1
  16. package/dist/translations/bs.umd.js +1 -1
  17. package/dist/translations/cs.js +1 -1
  18. package/dist/translations/cs.umd.js +1 -1
  19. package/dist/translations/en.js +1 -1
  20. package/dist/translations/en.umd.js +1 -1
  21. package/dist/translations/es-co.js +1 -1
  22. package/dist/translations/es-co.umd.js +1 -1
  23. package/dist/translations/es.js +1 -1
  24. package/dist/translations/es.umd.js +1 -1
  25. package/dist/translations/fa.js +1 -1
  26. package/dist/translations/fa.umd.js +1 -1
  27. package/dist/translations/fr.js +1 -1
  28. package/dist/translations/fr.umd.js +1 -1
  29. package/dist/translations/gu.d.ts +8 -0
  30. package/dist/translations/gu.js +5 -0
  31. package/dist/translations/gu.umd.js +11 -0
  32. package/dist/translations/he.js +1 -1
  33. package/dist/translations/he.umd.js +1 -1
  34. package/dist/translations/hr.js +1 -1
  35. package/dist/translations/hr.umd.js +1 -1
  36. package/dist/translations/hy.d.ts +8 -0
  37. package/dist/translations/hy.js +5 -0
  38. package/dist/translations/hy.umd.js +11 -0
  39. package/dist/translations/it.js +1 -1
  40. package/dist/translations/it.umd.js +1 -1
  41. package/dist/translations/jv.js +1 -1
  42. package/dist/translations/jv.umd.js +1 -1
  43. package/dist/translations/kk.d.ts +8 -0
  44. package/dist/translations/kk.js +5 -0
  45. package/dist/translations/kk.umd.js +11 -0
  46. package/dist/translations/kn.js +1 -1
  47. package/dist/translations/kn.umd.js +1 -1
  48. package/dist/translations/lt.js +1 -1
  49. package/dist/translations/lt.umd.js +1 -1
  50. package/dist/translations/lv.js +1 -1
  51. package/dist/translations/lv.umd.js +1 -1
  52. package/dist/translations/oc.d.ts +8 -0
  53. package/dist/translations/oc.js +5 -0
  54. package/dist/translations/oc.umd.js +11 -0
  55. package/dist/translations/pl.js +1 -1
  56. package/dist/translations/pl.umd.js +1 -1
  57. package/dist/translations/pt-br.js +1 -1
  58. package/dist/translations/pt-br.umd.js +1 -1
  59. package/dist/translations/pt.js +1 -1
  60. package/dist/translations/pt.umd.js +1 -1
  61. package/dist/translations/ro.js +1 -1
  62. package/dist/translations/ro.umd.js +1 -1
  63. package/dist/translations/ru.js +1 -1
  64. package/dist/translations/ru.umd.js +1 -1
  65. package/dist/translations/si.d.ts +8 -0
  66. package/dist/translations/si.js +5 -0
  67. package/dist/translations/si.umd.js +11 -0
  68. package/dist/translations/sk.js +1 -1
  69. package/dist/translations/sk.umd.js +1 -1
  70. package/dist/translations/sl.js +1 -1
  71. package/dist/translations/sl.umd.js +1 -1
  72. package/dist/translations/sr-latn.js +1 -1
  73. package/dist/translations/sr-latn.umd.js +1 -1
  74. package/dist/translations/sr.js +1 -1
  75. package/dist/translations/sr.umd.js +1 -1
  76. package/dist/translations/ug.js +1 -1
  77. package/dist/translations/ug.umd.js +1 -1
  78. package/dist/translations/uk.js +1 -1
  79. package/dist/translations/uk.umd.js +1 -1
  80. package/dist/translations/uz.js +1 -1
  81. package/dist/translations/uz.umd.js +1 -1
  82. package/lang/translations/af.po +3 -9
  83. package/lang/translations/ar.po +4 -10
  84. package/lang/translations/ast.po +3 -9
  85. package/lang/translations/az.po +3 -9
  86. package/lang/translations/bg.po +3 -9
  87. package/lang/translations/bn.po +3 -9
  88. package/lang/translations/bs.po +4 -10
  89. package/lang/translations/ca.po +3 -9
  90. package/lang/translations/cs.po +4 -10
  91. package/lang/translations/da.po +3 -9
  92. package/lang/translations/de-ch.po +3 -9
  93. package/lang/translations/de.po +3 -9
  94. package/lang/translations/el.po +3 -9
  95. package/lang/translations/en-au.po +3 -9
  96. package/lang/translations/en-gb.po +3 -9
  97. package/lang/translations/en.po +5 -11
  98. package/lang/translations/eo.po +3 -9
  99. package/lang/translations/es-co.po +4 -10
  100. package/lang/translations/es.po +4 -10
  101. package/lang/translations/et.po +3 -9
  102. package/lang/translations/eu.po +3 -9
  103. package/lang/translations/fa.po +4 -10
  104. package/lang/translations/fi.po +3 -9
  105. package/lang/translations/fr.po +4 -10
  106. package/lang/translations/gl.po +3 -9
  107. package/lang/translations/gu.po +208 -0
  108. package/lang/translations/he.po +4 -10
  109. package/lang/translations/hi.po +3 -9
  110. package/lang/translations/hr.po +4 -10
  111. package/lang/translations/hu.po +3 -9
  112. package/lang/translations/hy.po +208 -0
  113. package/lang/translations/id.po +3 -9
  114. package/lang/translations/it.po +4 -10
  115. package/lang/translations/ja.po +3 -9
  116. package/lang/translations/jv.po +4 -10
  117. package/lang/translations/kk.po +208 -0
  118. package/lang/translations/km.po +3 -9
  119. package/lang/translations/kn.po +4 -10
  120. package/lang/translations/ko.po +3 -9
  121. package/lang/translations/ku.po +3 -9
  122. package/lang/translations/lt.po +4 -10
  123. package/lang/translations/lv.po +4 -10
  124. package/lang/translations/ms.po +3 -9
  125. package/lang/translations/nb.po +3 -9
  126. package/lang/translations/ne.po +3 -9
  127. package/lang/translations/nl.po +3 -9
  128. package/lang/translations/no.po +3 -9
  129. package/lang/translations/oc.po +208 -0
  130. package/lang/translations/pl.po +4 -10
  131. package/lang/translations/pt-br.po +4 -10
  132. package/lang/translations/pt.po +4 -10
  133. package/lang/translations/ro.po +4 -10
  134. package/lang/translations/ru.po +4 -10
  135. package/lang/translations/si.po +208 -0
  136. package/lang/translations/sk.po +4 -10
  137. package/lang/translations/sl.po +4 -10
  138. package/lang/translations/sq.po +3 -9
  139. package/lang/translations/sr-latn.po +4 -10
  140. package/lang/translations/sr.po +4 -10
  141. package/lang/translations/sv.po +3 -9
  142. package/lang/translations/th.po +3 -9
  143. package/lang/translations/ti.po +3 -9
  144. package/lang/translations/tk.po +3 -9
  145. package/lang/translations/tr.po +3 -9
  146. package/lang/translations/tt.po +3 -9
  147. package/lang/translations/ug.po +4 -10
  148. package/lang/translations/uk.po +4 -10
  149. package/lang/translations/ur.po +3 -9
  150. package/lang/translations/uz.po +4 -10
  151. package/lang/translations/vi.po +3 -9
  152. package/lang/translations/zh-cn.po +3 -9
  153. package/lang/translations/zh.po +3 -9
  154. package/package.json +4 -4
  155. package/src/dialog/dialog.d.ts +16 -0
  156. package/src/dialog/dialog.js +31 -0
  157. package/src/dialog/dialogview.d.ts +3 -1
  158. package/src/dialog/dialogview.js +26 -17
  159. package/src/dropdown/menu/dropdownmenunestedmenuview.js +1 -0
  160. package/src/dropdown/utils.js +17 -2
  161. package/src/editorui/accessibilityhelp/accessibilityhelp.d.ts +4 -0
  162. package/src/editorui/accessibilityhelp/accessibilityhelp.js +6 -0
  163. package/src/editorui/editorui.js +2 -2
  164. package/src/notification/notification.d.ts +4 -0
  165. package/src/notification/notification.js +6 -0
  166. package/src/panel/balloon/contextualballoon.d.ts +4 -0
  167. package/src/panel/balloon/contextualballoon.js +6 -0
  168. package/src/toolbar/balloon/balloontoolbar.d.ts +4 -0
  169. package/src/toolbar/balloon/balloontoolbar.js +7 -1
  170. package/src/toolbar/block/blocktoolbar.d.ts +4 -0
  171. package/src/toolbar/block/blocktoolbar.js +6 -0
  172. package/src/toolbar/toolbarview.js +3 -3
  173. package/theme/components/dialog/dialog.css +5 -2
  174. package/theme/mixins/_dir.css +1 -1
@@ -95,6 +95,7 @@ class DropdownMenuNestedMenuView extends View {
95
95
  this.panelView.render();
96
96
  this.focusTracker.add(this.buttonView.element);
97
97
  this.focusTracker.add(this.panelView.element);
98
+ this.focusTracker.add(this.listView);
98
99
  // Listen for keystrokes coming from within #element.
99
100
  this.keystrokes.listenTo(this.element);
100
101
  this._mountPanelOnOpen();
@@ -159,6 +159,7 @@ export function createDropdown(locale, ButtonClassOrInstance = DropdownButtonVie
159
159
  */
160
160
  export function addMenuToDropdown(dropdownView, body, definition, options = {}) {
161
161
  dropdownView.menuView = new DropdownMenuRootListView(dropdownView.locale, body, definition);
162
+ dropdownView.focusTracker.add(dropdownView.menuView);
162
163
  if (dropdownView.isOpen) {
163
164
  addMenuToOpenDropdown(dropdownView, options);
164
165
  }
@@ -183,7 +184,7 @@ function addMenuToOpenDropdown(dropdownView, options) {
183
184
  // Nested menu panels are added to body collection, so they are not children of the `dropdownView` from DOM perspective.
184
185
  // Add these panels to `dropdownView` focus tracker, so they are treated like part of the `dropdownView` for focus-related purposes.
185
186
  for (const menu of dropdownMenuRootListView.menus) {
186
- dropdownView.focusTracker.add(menu.panelView.element);
187
+ dropdownView.focusTracker.add(menu);
187
188
  }
188
189
  dropdownMenuRootListView.ariaLabel = options.ariaLabel || t('Dropdown menu');
189
190
  }
@@ -276,6 +277,7 @@ function addToolbarToOpenDropdown(dropdownView, buttonsOrCallback, options) {
276
277
  toolbarView.items.addMany(buttons);
277
278
  }
278
279
  dropdownView.panelView.children.add(toolbarView);
280
+ dropdownView.focusTracker.add(toolbarView);
279
281
  toolbarView.items.delegate('execute').to(dropdownView);
280
282
  }
281
283
  /**
@@ -419,10 +421,23 @@ function closeDropdownOnClickOutside(dropdownView) {
419
421
  },
420
422
  contextElements: () => [
421
423
  dropdownView.element,
422
- ...dropdownView.focusTracker.elements
424
+ // Include all elements connected to the dropdown's focus tracker, but exclude those that are direct children
425
+ // of DropdownView#element. They would be identified as descendants of #element anyway upon clicking and would
426
+ // not contribute to the logic.
427
+ ...getFocusTrackerTreeElements(dropdownView.focusTracker).filter(element => !dropdownView.element.contains(element))
423
428
  ]
424
429
  });
425
430
  }
431
+ /**
432
+ * Returns all DOM elements connected to a DropdownView's focus tracker, either directly (same DOM sub-tree)
433
+ * or indirectly (external views registered in the focus tracker).
434
+ */
435
+ function getFocusTrackerTreeElements(focusTracker) {
436
+ return [
437
+ ...focusTracker.elements,
438
+ ...focusTracker.externalViews.flatMap(view => getFocusTrackerTreeElements(view.focusTracker))
439
+ ];
440
+ }
426
441
  /**
427
442
  * Adds a behavior to a dropdownView that closes the dropdown view on "execute" event.
428
443
  */
@@ -31,6 +31,10 @@ export default class AccessibilityHelp extends Plugin {
31
31
  * @inheritDoc
32
32
  */
33
33
  static get pluginName(): "AccessibilityHelp";
34
+ /**
35
+ * @inheritDoc
36
+ */
37
+ static get isOfficialPlugin(): true;
34
38
  /**
35
39
  * @inheritDoc
36
40
  */
@@ -42,6 +42,12 @@ export default class AccessibilityHelp extends Plugin {
42
42
  static get pluginName() {
43
43
  return 'AccessibilityHelp';
44
44
  }
45
+ /**
46
+ * @inheritDoc
47
+ */
48
+ static get isOfficialPlugin() {
49
+ return true;
50
+ }
45
51
  /**
46
52
  * @inheritDoc
47
53
  */
@@ -179,12 +179,12 @@ export default class EditorUI extends /* #__PURE__ */ ObservableMixin() {
179
179
  */
180
180
  addToolbar(toolbarView, options = {}) {
181
181
  if (toolbarView.isRendered) {
182
- this.focusTracker.add(toolbarView.element);
182
+ this.focusTracker.add(toolbarView);
183
183
  this.editor.keystrokes.listenTo(toolbarView.element);
184
184
  }
185
185
  else {
186
186
  toolbarView.once('render', () => {
187
- this.focusTracker.add(toolbarView.element);
187
+ this.focusTracker.add(toolbarView);
188
188
  this.editor.keystrokes.listenTo(toolbarView.element);
189
189
  });
190
190
  }
@@ -21,6 +21,10 @@ export default class Notification extends ContextPlugin {
21
21
  * @inheritDoc
22
22
  */
23
23
  static get pluginName(): "Notification";
24
+ /**
25
+ * @inheritDoc
26
+ */
27
+ static get isOfficialPlugin(): true;
24
28
  /**
25
29
  * @inheritDoc
26
30
  */
@@ -24,6 +24,12 @@ export default class Notification extends ContextPlugin {
24
24
  static get pluginName() {
25
25
  return 'Notification';
26
26
  }
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ static get isOfficialPlugin() {
31
+ return true;
32
+ }
27
33
  /**
28
34
  * @inheritDoc
29
35
  */
@@ -107,6 +107,10 @@ export default class ContextualBalloon extends Plugin {
107
107
  * @inheritDoc
108
108
  */
109
109
  static get pluginName(): "ContextualBalloon";
110
+ /**
111
+ * @inheritDoc
112
+ */
113
+ static get isOfficialPlugin(): true;
110
114
  /**
111
115
  * @inheritDoc
112
116
  */
@@ -54,6 +54,12 @@ export default class ContextualBalloon extends Plugin {
54
54
  static get pluginName() {
55
55
  return 'ContextualBalloon';
56
56
  }
57
+ /**
58
+ * @inheritDoc
59
+ */
60
+ static get isOfficialPlugin() {
61
+ return true;
62
+ }
57
63
  /**
58
64
  * @inheritDoc
59
65
  */
@@ -56,6 +56,10 @@ export default class BalloonToolbar extends Plugin {
56
56
  * @inheritDoc
57
57
  */
58
58
  static get pluginName(): "BalloonToolbar";
59
+ /**
60
+ * @inheritDoc
61
+ */
62
+ static get isOfficialPlugin(): true;
59
63
  /**
60
64
  * @inheritDoc
61
65
  */
@@ -26,6 +26,12 @@ export default class BalloonToolbar extends Plugin {
26
26
  static get pluginName() {
27
27
  return 'BalloonToolbar';
28
28
  }
29
+ /**
30
+ * @inheritDoc
31
+ */
32
+ static get isOfficialPlugin() {
33
+ return true;
34
+ }
29
35
  /**
30
36
  * @inheritDoc
31
37
  */
@@ -52,7 +58,7 @@ export default class BalloonToolbar extends Plugin {
52
58
  this.focusTracker = new FocusTracker();
53
59
  // Track focusable elements in the toolbar and the editable elements.
54
60
  this._trackFocusableEditableElements();
55
- this.focusTracker.add(this.toolbarView.element);
61
+ this.focusTracker.add(this.toolbarView);
56
62
  // Register the toolbar so it becomes available for Alt+F10 and Esc navigation.
57
63
  editor.ui.addToolbar(this.toolbarView, {
58
64
  beforeFocus: () => this.show(true),
@@ -85,6 +85,10 @@ export default class BlockToolbar extends Plugin {
85
85
  * @inheritDoc
86
86
  */
87
87
  static get pluginName(): "BlockToolbar";
88
+ /**
89
+ * @inheritDoc
90
+ */
91
+ static get isOfficialPlugin(): true;
88
92
  /**
89
93
  * @inheritDoc
90
94
  */
@@ -68,6 +68,12 @@ export default class BlockToolbar extends Plugin {
68
68
  static get pluginName() {
69
69
  return 'BlockToolbar';
70
70
  }
71
+ /**
72
+ * @inheritDoc
73
+ */
74
+ static get isOfficialPlugin() {
75
+ return true;
76
+ }
71
77
  /**
72
78
  * @inheritDoc
73
79
  */
@@ -103,13 +103,13 @@ export default class ToolbarView extends View {
103
103
  this.focusTracker.add(this.element);
104
104
  // Children added before rendering should be known to the #focusTracker.
105
105
  for (const item of this.items) {
106
- this.focusTracker.add(item.element);
106
+ this.focusTracker.add(item);
107
107
  }
108
108
  this.items.on('add', (evt, item) => {
109
- this.focusTracker.add(item.element);
109
+ this.focusTracker.add(item);
110
110
  });
111
111
  this.items.on('remove', (evt, item) => {
112
- this.focusTracker.remove(item.element);
112
+ this.focusTracker.remove(item);
113
113
  });
114
114
  // Start listening for the keystrokes coming from #element.
115
115
  this.keystrokes.listenTo(this.element);
@@ -27,13 +27,16 @@
27
27
 
28
28
  & .ck.ck-form__header {
29
29
  flex-shrink: 0;
30
+ }
30
31
 
31
- & .ck-form__header__label {
32
+ /* Modals should not be draggable. */
33
+ &:not(.ck-dialog_modal) {
34
+ & .ck.ck-form__header .ck-form__header__label {
32
35
  cursor: grab;
33
36
  }
34
37
  }
35
38
 
36
- @nest .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {
39
+ .ck.ck-dialog-overlay.ck-dialog-overlay__transparent & {
37
40
  pointer-events: all;
38
41
  }
39
42
  }
@@ -4,7 +4,7 @@
4
4
  */
5
5
 
6
6
  @define-mixin ck-dir $direction {
7
- @nest [dir="$(direction)"] & {
7
+ [dir="$(direction)"] & {
8
8
  @mixin-content;
9
9
  }
10
10
  }