@ckeditor/ckeditor5-ui 40.0.0 → 40.1.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 (165) hide show
  1. package/LICENSE.md +3 -3
  2. package/lang/translations/pt-br.po +1 -1
  3. package/lang/translations/ug.po +26 -26
  4. package/package.json +3 -3
  5. package/src/arialiveannouncer.d.ts +94 -0
  6. package/src/arialiveannouncer.js +113 -0
  7. package/src/augmentation.d.ts +86 -86
  8. package/src/augmentation.js +5 -5
  9. package/src/autocomplete/autocompleteview.d.ts +81 -81
  10. package/src/autocomplete/autocompleteview.js +153 -146
  11. package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -27
  12. package/src/bindings/addkeyboardhandlingforgrid.js +107 -107
  13. package/src/bindings/clickoutsidehandler.d.ts +28 -28
  14. package/src/bindings/clickoutsidehandler.js +36 -36
  15. package/src/bindings/csstransitiondisablermixin.d.ts +40 -40
  16. package/src/bindings/csstransitiondisablermixin.js +55 -55
  17. package/src/bindings/injectcsstransitiondisabler.d.ts +59 -59
  18. package/src/bindings/injectcsstransitiondisabler.js +71 -71
  19. package/src/bindings/preventdefault.d.ts +33 -33
  20. package/src/bindings/preventdefault.js +34 -34
  21. package/src/bindings/submithandler.d.ts +57 -57
  22. package/src/bindings/submithandler.js +47 -47
  23. package/src/button/button.d.ts +172 -178
  24. package/src/button/button.js +5 -5
  25. package/src/button/buttonlabel.d.ts +34 -34
  26. package/src/button/buttonlabel.js +5 -5
  27. package/src/button/buttonlabelview.d.ts +31 -31
  28. package/src/button/buttonlabelview.js +42 -42
  29. package/src/button/buttonview.d.ts +181 -185
  30. package/src/button/buttonview.js +217 -219
  31. package/src/button/switchbuttonview.d.ts +45 -45
  32. package/src/button/switchbuttonview.js +75 -75
  33. package/src/colorgrid/colorgridview.d.ts +132 -132
  34. package/src/colorgrid/colorgridview.js +124 -124
  35. package/src/colorgrid/colortileview.d.ts +28 -28
  36. package/src/colorgrid/colortileview.js +40 -40
  37. package/src/colorgrid/utils.d.ts +47 -47
  38. package/src/colorgrid/utils.js +84 -84
  39. package/src/colorpicker/colorpickerview.d.ts +137 -137
  40. package/src/colorpicker/colorpickerview.js +270 -270
  41. package/src/colorpicker/utils.d.ts +43 -43
  42. package/src/colorpicker/utils.js +99 -99
  43. package/src/colorselector/colorgridsfragmentview.d.ts +194 -194
  44. package/src/colorselector/colorgridsfragmentview.js +289 -289
  45. package/src/colorselector/colorpickerfragmentview.d.ts +128 -128
  46. package/src/colorselector/colorpickerfragmentview.js +205 -205
  47. package/src/colorselector/colorselectorview.d.ts +242 -242
  48. package/src/colorselector/colorselectorview.js +256 -256
  49. package/src/colorselector/documentcolorcollection.d.ts +70 -70
  50. package/src/colorselector/documentcolorcollection.js +42 -42
  51. package/src/componentfactory.d.ts +81 -81
  52. package/src/componentfactory.js +104 -104
  53. package/src/dropdown/button/dropdownbutton.d.ts +25 -25
  54. package/src/dropdown/button/dropdownbutton.js +5 -5
  55. package/src/dropdown/button/dropdownbuttonview.d.ts +48 -48
  56. package/src/dropdown/button/dropdownbuttonview.js +66 -66
  57. package/src/dropdown/button/splitbuttonview.d.ts +161 -161
  58. package/src/dropdown/button/splitbuttonview.js +152 -152
  59. package/src/dropdown/dropdownpanelfocusable.d.ts +21 -21
  60. package/src/dropdown/dropdownpanelfocusable.js +5 -5
  61. package/src/dropdown/dropdownpanelview.d.ts +62 -62
  62. package/src/dropdown/dropdownpanelview.js +97 -97
  63. package/src/dropdown/dropdownview.d.ts +315 -315
  64. package/src/dropdown/dropdownview.js +379 -379
  65. package/src/dropdown/utils.d.ts +235 -235
  66. package/src/dropdown/utils.js +463 -458
  67. package/src/editableui/editableuiview.d.ts +72 -72
  68. package/src/editableui/editableuiview.js +112 -112
  69. package/src/editableui/inline/inlineeditableuiview.d.ts +40 -40
  70. package/src/editableui/inline/inlineeditableuiview.js +48 -48
  71. package/src/editorui/bodycollection.d.ts +55 -55
  72. package/src/editorui/bodycollection.js +84 -84
  73. package/src/editorui/boxed/boxededitoruiview.d.ts +40 -40
  74. package/src/editorui/boxed/boxededitoruiview.js +81 -81
  75. package/src/editorui/editorui.d.ts +288 -282
  76. package/src/editorui/editorui.js +412 -410
  77. package/src/editorui/editoruiview.d.ts +39 -39
  78. package/src/editorui/editoruiview.js +38 -38
  79. package/src/editorui/poweredby.d.ts +71 -71
  80. package/src/editorui/poweredby.js +276 -276
  81. package/src/focuscycler.d.ts +226 -226
  82. package/src/focuscycler.js +245 -245
  83. package/src/formheader/formheaderview.d.ts +59 -59
  84. package/src/formheader/formheaderview.js +69 -69
  85. package/src/highlightedtext/highlightedtextview.d.ts +38 -38
  86. package/src/highlightedtext/highlightedtextview.js +102 -102
  87. package/src/icon/iconview.d.ts +85 -85
  88. package/src/icon/iconview.js +114 -114
  89. package/src/iframe/iframeview.d.ts +50 -50
  90. package/src/iframe/iframeview.js +63 -63
  91. package/src/index.d.ts +73 -73
  92. package/src/index.js +70 -70
  93. package/src/input/inputbase.d.ts +107 -107
  94. package/src/input/inputbase.js +110 -110
  95. package/src/input/inputview.d.ts +36 -36
  96. package/src/input/inputview.js +24 -24
  97. package/src/inputnumber/inputnumberview.d.ts +49 -49
  98. package/src/inputnumber/inputnumberview.js +40 -40
  99. package/src/inputtext/inputtextview.d.ts +18 -18
  100. package/src/inputtext/inputtextview.js +27 -27
  101. package/src/label/labelview.d.ts +36 -36
  102. package/src/label/labelview.js +41 -41
  103. package/src/labeledfield/labeledfieldview.d.ts +187 -187
  104. package/src/labeledfield/labeledfieldview.js +157 -157
  105. package/src/labeledfield/utils.d.ts +123 -123
  106. package/src/labeledfield/utils.js +176 -176
  107. package/src/labeledinput/labeledinputview.d.ts +125 -125
  108. package/src/labeledinput/labeledinputview.js +125 -125
  109. package/src/list/listitemgroupview.d.ts +59 -51
  110. package/src/list/listitemgroupview.js +63 -75
  111. package/src/list/listitemview.d.ts +36 -36
  112. package/src/list/listitemview.js +42 -42
  113. package/src/list/listseparatorview.d.ts +18 -18
  114. package/src/list/listseparatorview.js +28 -28
  115. package/src/list/listview.d.ts +122 -122
  116. package/src/list/listview.js +187 -187
  117. package/src/model.d.ts +22 -22
  118. package/src/model.js +31 -31
  119. package/src/notification/notification.d.ts +211 -211
  120. package/src/notification/notification.js +187 -187
  121. package/src/panel/balloon/balloonpanelview.d.ts +685 -685
  122. package/src/panel/balloon/balloonpanelview.js +1010 -1010
  123. package/src/panel/balloon/contextualballoon.d.ts +299 -299
  124. package/src/panel/balloon/contextualballoon.js +572 -572
  125. package/src/panel/sticky/stickypanelview.d.ts +156 -156
  126. package/src/panel/sticky/stickypanelview.js +234 -234
  127. package/src/search/filteredview.d.ts +31 -31
  128. package/src/search/filteredview.js +5 -5
  129. package/src/search/searchinfoview.d.ts +45 -45
  130. package/src/search/searchinfoview.js +59 -59
  131. package/src/search/searchresultsview.d.ts +54 -54
  132. package/src/search/searchresultsview.js +65 -65
  133. package/src/search/text/searchtextqueryview.d.ts +76 -76
  134. package/src/search/text/searchtextqueryview.js +75 -75
  135. package/src/search/text/searchtextview.d.ts +219 -219
  136. package/src/search/text/searchtextview.js +201 -201
  137. package/src/spinner/spinnerview.d.ts +25 -25
  138. package/src/spinner/spinnerview.js +38 -38
  139. package/src/template.d.ts +942 -942
  140. package/src/template.js +1294 -1294
  141. package/src/textarea/textareaview.d.ts +88 -88
  142. package/src/textarea/textareaview.js +142 -140
  143. package/src/toolbar/balloon/balloontoolbar.d.ts +122 -122
  144. package/src/toolbar/balloon/balloontoolbar.js +300 -300
  145. package/src/toolbar/block/blockbuttonview.d.ts +35 -35
  146. package/src/toolbar/block/blockbuttonview.js +41 -41
  147. package/src/toolbar/block/blocktoolbar.d.ts +161 -161
  148. package/src/toolbar/block/blocktoolbar.js +395 -395
  149. package/src/toolbar/normalizetoolbarconfig.d.ts +40 -40
  150. package/src/toolbar/normalizetoolbarconfig.js +52 -51
  151. package/src/toolbar/toolbarlinebreakview.d.ts +18 -18
  152. package/src/toolbar/toolbarlinebreakview.js +28 -28
  153. package/src/toolbar/toolbarseparatorview.d.ts +18 -18
  154. package/src/toolbar/toolbarseparatorview.js +28 -28
  155. package/src/toolbar/toolbarview.d.ts +266 -266
  156. package/src/toolbar/toolbarview.js +719 -719
  157. package/src/tooltipmanager.d.ts +180 -180
  158. package/src/tooltipmanager.js +353 -353
  159. package/src/view.d.ts +422 -422
  160. package/src/view.js +396 -396
  161. package/src/viewcollection.d.ts +139 -139
  162. package/src/viewcollection.js +206 -206
  163. package/theme/components/arialiveannouncer/arialiveannouncer.css +10 -0
  164. package/theme/components/button/button.css +9 -1
  165. package/theme/components/formheader/formheader.css +0 -4
package/LICENSE.md CHANGED
@@ -2,7 +2,7 @@ Software License Agreement
2
2
  ==========================
3
3
 
4
4
  **CKEditor&nbsp;5 UI framework** – https://github.com/ckeditor/ckeditor5-ui <br>
5
- Copyright (c) 2003-2023, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
5
+ Copyright (c) 20032023, [CKSource Holding sp. z o.o.](https://cksource.com) All rights reserved.
6
6
 
7
7
  Licensed under the terms of [GNU General Public License Version 2 or later](http://www.gnu.org/licenses/gpl.html).
8
8
 
@@ -13,9 +13,9 @@ Where not otherwise indicated, all CKEditor content is authored by CKSource engi
13
13
 
14
14
  The following libraries are included in CKEditor under the [MIT license](https://opensource.org/licenses/MIT):
15
15
 
16
- * lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/.
16
+ * Lodash - Copyright (c) JS Foundation and other contributors https://js.foundation/. Based on Underscore.js, copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors http://underscorejs.org/.
17
17
 
18
18
  Trademarks
19
19
  ----------
20
20
 
21
- **CKEditor** is a trademark of [CKSource Holding sp. z o.o.](https://cksource.com) All other brand and product names are trademarks, registered trademarks or service marks of their respective holders.
21
+ **CKEditor** is a trademark of [CKSource Holding sp. z o.o.](https://cksource.com) All other brand and product names are trademarks, registered trademarks, or service marks of their respective holders.
@@ -119,7 +119,7 @@ msgstr "Barra de ferramentas de bloco do Editor"
119
119
 
120
120
  msgctxt "Accessible label of a balloon toolbar that shows up right next to the user selection (the caret)."
121
121
  msgid "Editor contextual toolbar"
122
- msgstr "Barra de ferramentas contextuais do Editor"
122
+ msgstr "Barra de ferramentas contextual do Editor"
123
123
 
124
124
  msgctxt "Label of an input field for typing colors in the HEX color format."
125
125
  msgid "HEX"
@@ -23,79 +23,79 @@ msgstr "تېكىست تەھرىرلىگۈچ"
23
23
 
24
24
  msgctxt "Accessible label of the specific editing area belonging to a container with an ARIA application role."
25
25
  msgid "Editor editing area: %0"
26
- msgstr ""
26
+ msgstr "تەھرىرلىگۈچ تەھرىرلەش رايونى: %0"
27
27
 
28
28
  msgctxt "Label of the block toolbar icon (a block toolbar is displayed next to each paragraph, heading, list item, etc. and contains e.g. block formatting options)"
29
29
  msgid "Edit block"
30
- msgstr ""
30
+ msgstr "بۆلەك تەھرىر"
31
31
 
32
32
  msgctxt "First part of the label of the block toolbar icon when functionality of drag and drop is available (a block toolbar is displayed next to each paragraph, heading, list item, etc. and contains e.g. block formatting options)"
33
33
  msgid "Click to edit block"
34
- msgstr ""
34
+ msgstr "چېكىلسە بۆلەك تەھرىرلىنىدۇ"
35
35
 
36
36
  msgctxt "Second part of the label of the block toolbar icon when functionality of drag and drop is available (a block toolbar is displayed next to each paragraph, heading, list item, etc. and contains e.g. block formatting options)"
37
37
  msgid "Drag to move"
38
- msgstr ""
38
+ msgstr "يۆتكەشتە سۆرىلىدۇ"
39
39
 
40
40
  msgctxt "Label for a button showing the next thing (tab, page, etc.)."
41
41
  msgid "Next"
42
- msgstr ""
42
+ msgstr "كېيىنكى"
43
43
 
44
44
  msgctxt "Label for a button showing the previous thing (tab, page, etc.)."
45
45
  msgid "Previous"
46
- msgstr ""
46
+ msgstr "ئالدىنقى"
47
47
 
48
48
  msgctxt "Label used by assistive technologies describing a generic editor toolbar."
49
49
  msgid "Editor toolbar"
50
- msgstr ""
50
+ msgstr "تەھرىرلىگۈچ قورال بالداق"
51
51
 
52
52
  msgctxt "Label used by assistive technologies describing a toolbar displayed inside a dropdown."
53
53
  msgid "Dropdown toolbar"
54
- msgstr ""
54
+ msgstr "سىرىلما قورال بالداق"
55
55
 
56
56
  msgctxt "Label of a button that applies a black color in color pickers."
57
57
  msgid "Black"
58
- msgstr ""
58
+ msgstr "قارا"
59
59
 
60
60
  msgctxt "Label of a button that applies a dim grey color in color pickers."
61
61
  msgid "Dim grey"
62
- msgstr ""
62
+ msgstr "سۇس كۈلرەڭ"
63
63
 
64
64
  msgctxt "Label of a button that applies a grey color in color pickers."
65
65
  msgid "Grey"
66
- msgstr ""
66
+ msgstr "كۈلرەڭ"
67
67
 
68
68
  msgctxt "Label of a button that applies a light grey color in color pickers."
69
69
  msgid "Light grey"
70
- msgstr ""
70
+ msgstr "ئوچۇق كۈلرەڭ"
71
71
 
72
72
  msgctxt "Label of a button that applies a white color in color pickers."
73
73
  msgid "White"
74
- msgstr ""
74
+ msgstr "ئاق"
75
75
 
76
76
  msgctxt "Label of a button that applies a red color in color pickers."
77
77
  msgid "Red"
78
- msgstr ""
78
+ msgstr "قىزىل"
79
79
 
80
80
  msgctxt "Label of a button that applies a orange color in color pickers."
81
81
  msgid "Orange"
82
- msgstr ""
82
+ msgstr "قىزغۇچ سېرىق"
83
83
 
84
84
  msgctxt "Label of a button that applies a yellow color in color pickers."
85
85
  msgid "Yellow"
86
- msgstr ""
86
+ msgstr "سېرىق"
87
87
 
88
88
  msgctxt "Label of a button that applies a light green color in color pickers."
89
89
  msgid "Light green"
90
- msgstr ""
90
+ msgstr "ئوچۇق يېشىل"
91
91
 
92
92
  msgctxt "Label of a button that applies a green color in color pickers."
93
93
  msgid "Green"
94
- msgstr ""
94
+ msgstr "يېشىل"
95
95
 
96
96
  msgctxt "Label of a button that applies a aquamarine color in color pickers."
97
97
  msgid "Aquamarine"
98
- msgstr ""
98
+ msgstr "دېڭىز كۆكى"
99
99
 
100
100
  msgctxt "Label of a button that applies a turquoise color in color pickers."
101
101
  msgid "Turquoise"
@@ -103,23 +103,23 @@ msgstr ""
103
103
 
104
104
  msgctxt "Label of a button that applies a light blue color in color pickers."
105
105
  msgid "Light blue"
106
- msgstr ""
106
+ msgstr "ئوچۇق كۆك"
107
107
 
108
108
  msgctxt "Label of a button that applies a blue color in color pickers."
109
109
  msgid "Blue"
110
- msgstr ""
110
+ msgstr "كۆك"
111
111
 
112
112
  msgctxt "Label of a button that applies a purple color in color pickers."
113
113
  msgid "Purple"
114
- msgstr ""
114
+ msgstr "بىنەپشە"
115
115
 
116
116
  msgctxt "Accessible label of a toolbar that shows up next to the blocks of content (e.g. headings, paragraphs)."
117
117
  msgid "Editor block content toolbar"
118
- msgstr ""
118
+ msgstr "تەھرىرلىگۈچ بۆلىكى مەزمۇن قورال بالداق"
119
119
 
120
120
  msgctxt "Accessible label of a balloon toolbar that shows up right next to the user selection (the caret)."
121
121
  msgid "Editor contextual toolbar"
122
- msgstr ""
122
+ msgstr "تەھرىرلىگۈچ مەزمۇن قورال بالداق"
123
123
 
124
124
  msgctxt "Label of an input field for typing colors in the HEX color format."
125
125
  msgid "HEX"
@@ -131,8 +131,8 @@ msgstr "قوشۇل"
131
131
 
132
132
  msgctxt "The main text of the message shown to the user when given query does not match any results."
133
133
  msgid "No results found"
134
- msgstr ""
134
+ msgstr "ھېچقانداق نەتىجە تېپىلمىدى"
135
135
 
136
136
  msgctxt "The main text of the message shown to the user when no results are available."
137
137
  msgid "No searchable items"
138
- msgstr ""
138
+ msgstr "ئىزدىگۈدەك تۈر يوق"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ckeditor/ckeditor5-ui",
3
- "version": "40.0.0",
3
+ "version": "40.1.0",
4
4
  "description": "The UI framework and standard UI library of CKEditor 5.",
5
5
  "keywords": [
6
6
  "ckeditor",
@@ -11,8 +11,8 @@
11
11
  ],
12
12
  "main": "src/index.js",
13
13
  "dependencies": {
14
- "@ckeditor/ckeditor5-core": "40.0.0",
15
- "@ckeditor/ckeditor5-utils": "40.0.0",
14
+ "@ckeditor/ckeditor5-core": "40.1.0",
15
+ "@ckeditor/ckeditor5-utils": "40.1.0",
16
16
  "color-convert": "2.0.1",
17
17
  "color-parse": "1.4.2",
18
18
  "lodash-es": "4.17.21",
@@ -0,0 +1,94 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ /**
6
+ * @module ui/arialiveannouncer
7
+ */
8
+ import type { Editor } from '@ckeditor/ckeditor5-core';
9
+ import type { Locale } from '@ckeditor/ckeditor5-utils';
10
+ import type ViewCollection from './viewcollection';
11
+ import View from './view';
12
+ import '../theme/components/arialiveannouncer/arialiveannouncer.css';
13
+ /**
14
+ * The politeness level of an `aria-live` announcement.
15
+ *
16
+ * See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions#Politeness_levels
17
+ */
18
+ export declare enum AriaLiveAnnouncerPoliteness {
19
+ POLITE = "polite",
20
+ ASSERTIVE = "assertive"
21
+ }
22
+ /**
23
+ * An accessibility helper that manages all ARIA live regions associated with an editor instance. ARIA live regions announce changes
24
+ * to the state of the editor features.
25
+ *
26
+ * These announcements are consumed and propagated by screen readers and give users a better understanding of the current
27
+ * state of the editor.
28
+ *
29
+ * To announce a state change to an editor feature named `'Some feature'`, use the {@link #announce} method:
30
+ * ```ts
31
+ * editor.ui.ariaLiveAnnouncer.announce( 'Some feature', 'Text of an announcement.' );
32
+ * ```
33
+ */
34
+ export default class AriaLiveAnnouncer {
35
+ /**
36
+ * The editor instance.
37
+ */
38
+ readonly editor: Editor;
39
+ /**
40
+ * The view that aggregates all `aria-live` regions.
41
+ */
42
+ view?: AriaLiveAnnouncerView;
43
+ /**
44
+ * @inheritDoc
45
+ */
46
+ constructor(editor: Editor);
47
+ /**
48
+ * Sets an announcement text to an aria region associated with a specific editor feature. The text is then
49
+ * announced by a screen reader to the user.
50
+ *
51
+ * If the aria region of a given name does not exist, it will be created and can be re-used later. The name of the region
52
+ * groups announcements originating from a specific editor feature and does not get announced by a screen reader.
53
+ *
54
+ * Using multiple regions allows for many announcements to be emitted in a short period of time. Changes to ARIA-live announcements
55
+ * are captured by a screen reader and read out in the order they were emitted.
56
+ *
57
+ * The default announcement politeness level is `'polite'`.
58
+ *
59
+ * ```ts
60
+ * // Most screen readers will queue announcements from multiple aria-live regions and read them out in the order they were emitted.
61
+ * editor.ui.ariaLiveAnnouncer.announce( 'image', 'Image uploaded.' );
62
+ * editor.ui.ariaLiveAnnouncer.announce( 'network', 'Connection lost. Reconnecting.' );
63
+ * ```
64
+ */
65
+ announce(regionName: string, announcementText: string, politeness?: AriaLiveAnnouncerPoliteness): void;
66
+ }
67
+ /**
68
+ * The view that aggregates all `aria-live` regions.
69
+ */
70
+ export declare class AriaLiveAnnouncerView extends View {
71
+ /**
72
+ * A collection of all views that represent individual `aria-live` regions.
73
+ */
74
+ readonly regionViews: ViewCollection<AriaLiveAnnouncerRegionView>;
75
+ constructor(locale: Locale);
76
+ }
77
+ /**
78
+ * The view that represents a single `aria-live` region (e.g. for a specific editor feature) and its text.
79
+ */
80
+ export declare class AriaLiveAnnouncerRegionView extends View {
81
+ /**
82
+ * Current text of the region.
83
+ */
84
+ text: string;
85
+ /**
86
+ * Current politeness level of the region.
87
+ */
88
+ politeness: AriaLiveAnnouncerPoliteness;
89
+ /**
90
+ * A unique name of the region, usually associated with a specific editor feature or system.
91
+ */
92
+ regionName: string;
93
+ constructor(locale: Locale);
94
+ }
@@ -0,0 +1,113 @@
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ import View from './view';
6
+ import '../theme/components/arialiveannouncer/arialiveannouncer.css';
7
+ /**
8
+ * The politeness level of an `aria-live` announcement.
9
+ *
10
+ * See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Live_Regions#Politeness_levels
11
+ */
12
+ export var AriaLiveAnnouncerPoliteness;
13
+ (function (AriaLiveAnnouncerPoliteness) {
14
+ AriaLiveAnnouncerPoliteness["POLITE"] = "polite";
15
+ AriaLiveAnnouncerPoliteness["ASSERTIVE"] = "assertive";
16
+ })(AriaLiveAnnouncerPoliteness || (AriaLiveAnnouncerPoliteness = {}));
17
+ /**
18
+ * An accessibility helper that manages all ARIA live regions associated with an editor instance. ARIA live regions announce changes
19
+ * to the state of the editor features.
20
+ *
21
+ * These announcements are consumed and propagated by screen readers and give users a better understanding of the current
22
+ * state of the editor.
23
+ *
24
+ * To announce a state change to an editor feature named `'Some feature'`, use the {@link #announce} method:
25
+ * ```ts
26
+ * editor.ui.ariaLiveAnnouncer.announce( 'Some feature', 'Text of an announcement.' );
27
+ * ```
28
+ */
29
+ export default class AriaLiveAnnouncer {
30
+ /**
31
+ * @inheritDoc
32
+ */
33
+ constructor(editor) {
34
+ this.editor = editor;
35
+ }
36
+ /**
37
+ * Sets an announcement text to an aria region associated with a specific editor feature. The text is then
38
+ * announced by a screen reader to the user.
39
+ *
40
+ * If the aria region of a given name does not exist, it will be created and can be re-used later. The name of the region
41
+ * groups announcements originating from a specific editor feature and does not get announced by a screen reader.
42
+ *
43
+ * Using multiple regions allows for many announcements to be emitted in a short period of time. Changes to ARIA-live announcements
44
+ * are captured by a screen reader and read out in the order they were emitted.
45
+ *
46
+ * The default announcement politeness level is `'polite'`.
47
+ *
48
+ * ```ts
49
+ * // Most screen readers will queue announcements from multiple aria-live regions and read them out in the order they were emitted.
50
+ * editor.ui.ariaLiveAnnouncer.announce( 'image', 'Image uploaded.' );
51
+ * editor.ui.ariaLiveAnnouncer.announce( 'network', 'Connection lost. Reconnecting.' );
52
+ * ```
53
+ */
54
+ announce(regionName, announcementText, politeness = AriaLiveAnnouncerPoliteness.POLITE) {
55
+ const editor = this.editor;
56
+ if (!this.view) {
57
+ this.view = new AriaLiveAnnouncerView(editor.locale);
58
+ editor.ui.view.body.add(this.view);
59
+ }
60
+ let regionView = this.view.regionViews.find(view => view.regionName === regionName);
61
+ if (!regionView) {
62
+ regionView = new AriaLiveAnnouncerRegionView(this.view.locale);
63
+ this.view.regionViews.add(regionView);
64
+ }
65
+ regionView.set({
66
+ regionName,
67
+ text: announcementText,
68
+ politeness
69
+ });
70
+ }
71
+ }
72
+ /**
73
+ * The view that aggregates all `aria-live` regions.
74
+ */
75
+ export class AriaLiveAnnouncerView extends View {
76
+ constructor(locale) {
77
+ super(locale);
78
+ this.regionViews = this.createCollection();
79
+ this.setTemplate({
80
+ tag: 'div',
81
+ attributes: {
82
+ class: [
83
+ 'ck',
84
+ 'ck-aria-live-announcer'
85
+ ]
86
+ },
87
+ children: this.regionViews
88
+ });
89
+ }
90
+ }
91
+ /**
92
+ * The view that represents a single `aria-live` region (e.g. for a specific editor feature) and its text.
93
+ */
94
+ export class AriaLiveAnnouncerRegionView extends View {
95
+ constructor(locale) {
96
+ super(locale);
97
+ const bind = this.bindTemplate;
98
+ this.set('regionName', '');
99
+ this.set('text', '');
100
+ this.set('politeness', AriaLiveAnnouncerPoliteness.POLITE);
101
+ this.setTemplate({
102
+ tag: 'div',
103
+ attributes: {
104
+ role: 'region',
105
+ 'data-region': bind.to('regionName'),
106
+ 'aria-live': bind.to('politeness')
107
+ },
108
+ children: [
109
+ { text: bind.to('text') }
110
+ ]
111
+ });
112
+ }
113
+ }
@@ -1,86 +1,86 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- import type { BalloonToolbar, BlockToolbar, ContextualBalloon, Notification } from './index';
6
- import type { ToolbarConfig } from '@ckeditor/ckeditor5-core';
7
- declare module '@ckeditor/ckeditor5-core' {
8
- interface EditorConfig {
9
- /**
10
- * Contextual toolbar configuration. Used by the {@link module:ui/toolbar/balloon/balloontoolbar~BalloonToolbar}
11
- * feature.
12
- *
13
- * ## Configuring toolbar items
14
- *
15
- * ```ts
16
- * const config = {
17
- * balloonToolbar: [ 'bold', 'italic', 'undo', 'redo' ]
18
- * };
19
- * ```
20
- *
21
- * You can also use `'|'` to create a separator between groups of items:
22
- *
23
- * ```ts
24
- * const config = {
25
- * balloonToolbar: [ 'bold', 'italic', '|', 'undo', 'redo' ]
26
- * };
27
- * ```
28
- *
29
- * Read also about configuring the main editor toolbar in {@link module:core/editor/editorconfig~EditorConfig#toolbar}.
30
- *
31
- * ## Configuring items grouping
32
- *
33
- * You can prevent automatic items grouping by setting the `shouldNotGroupWhenFull` option:
34
- *
35
- * ```ts
36
- * const config = {
37
- * balloonToolbar: {
38
- * items: [ 'bold', 'italic', 'undo', 'redo' ],
39
- * shouldNotGroupWhenFull: true
40
- * },
41
- * };
42
- * ```
43
- */
44
- balloonToolbar?: ToolbarConfig;
45
- /**
46
- * The block toolbar configuration. Used by the {@link module:ui/toolbar/block/blocktoolbar~BlockToolbar}
47
- * feature.
48
- *
49
- * ```ts
50
- * const config = {
51
- * blockToolbar: [ 'paragraph', 'heading1', 'heading2', 'bulletedList', 'numberedList' ]
52
- * };
53
- * ```
54
- *
55
- * You can also use `'|'` to create a separator between groups of items:
56
- *
57
- * ```ts
58
- * const config = {
59
- * blockToolbar: [ 'paragraph', 'heading1', 'heading2', '|', 'bulletedList', 'numberedList' ]
60
- * };
61
- * ```
62
- *
63
- * ## Configuring items grouping
64
- *
65
- * You can prevent automatic items grouping by setting the `shouldNotGroupWhenFull` option:
66
- *
67
- * ```ts
68
- * const config = {
69
- * blockToolbar: {
70
- * items: [ 'paragraph', 'heading1', 'heading2', '|', 'bulletedList', 'numberedList' ],
71
- * shouldNotGroupWhenFull: true
72
- * },
73
- * };
74
- * ```
75
- *
76
- * Read more about configuring the main editor toolbar in {@link module:core/editor/editorconfig~EditorConfig#toolbar}.
77
- */
78
- blockToolbar?: ToolbarConfig;
79
- }
80
- interface PluginsMap {
81
- [BalloonToolbar.pluginName]: BalloonToolbar;
82
- [BlockToolbar.pluginName]: BlockToolbar;
83
- [ContextualBalloon.pluginName]: ContextualBalloon;
84
- [Notification.pluginName]: Notification;
85
- }
86
- }
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ import type { BalloonToolbar, BlockToolbar, ContextualBalloon, Notification } from './index';
6
+ import type { ToolbarConfig } from '@ckeditor/ckeditor5-core';
7
+ declare module '@ckeditor/ckeditor5-core' {
8
+ interface EditorConfig {
9
+ /**
10
+ * Contextual toolbar configuration. Used by the {@link module:ui/toolbar/balloon/balloontoolbar~BalloonToolbar}
11
+ * feature.
12
+ *
13
+ * ## Configuring toolbar items
14
+ *
15
+ * ```ts
16
+ * const config = {
17
+ * balloonToolbar: [ 'bold', 'italic', 'undo', 'redo' ]
18
+ * };
19
+ * ```
20
+ *
21
+ * You can also use `'|'` to create a separator between groups of items:
22
+ *
23
+ * ```ts
24
+ * const config = {
25
+ * balloonToolbar: [ 'bold', 'italic', '|', 'undo', 'redo' ]
26
+ * };
27
+ * ```
28
+ *
29
+ * Read also about configuring the main editor toolbar in {@link module:core/editor/editorconfig~EditorConfig#toolbar}.
30
+ *
31
+ * ## Configuring items grouping
32
+ *
33
+ * You can prevent automatic items grouping by setting the `shouldNotGroupWhenFull` option:
34
+ *
35
+ * ```ts
36
+ * const config = {
37
+ * balloonToolbar: {
38
+ * items: [ 'bold', 'italic', 'undo', 'redo' ],
39
+ * shouldNotGroupWhenFull: true
40
+ * },
41
+ * };
42
+ * ```
43
+ */
44
+ balloonToolbar?: ToolbarConfig;
45
+ /**
46
+ * The block toolbar configuration. Used by the {@link module:ui/toolbar/block/blocktoolbar~BlockToolbar}
47
+ * feature.
48
+ *
49
+ * ```ts
50
+ * const config = {
51
+ * blockToolbar: [ 'paragraph', 'heading1', 'heading2', 'bulletedList', 'numberedList' ]
52
+ * };
53
+ * ```
54
+ *
55
+ * You can also use `'|'` to create a separator between groups of items:
56
+ *
57
+ * ```ts
58
+ * const config = {
59
+ * blockToolbar: [ 'paragraph', 'heading1', 'heading2', '|', 'bulletedList', 'numberedList' ]
60
+ * };
61
+ * ```
62
+ *
63
+ * ## Configuring items grouping
64
+ *
65
+ * You can prevent automatic items grouping by setting the `shouldNotGroupWhenFull` option:
66
+ *
67
+ * ```ts
68
+ * const config = {
69
+ * blockToolbar: {
70
+ * items: [ 'paragraph', 'heading1', 'heading2', '|', 'bulletedList', 'numberedList' ],
71
+ * shouldNotGroupWhenFull: true
72
+ * },
73
+ * };
74
+ * ```
75
+ *
76
+ * Read more about configuring the main editor toolbar in {@link module:core/editor/editorconfig~EditorConfig#toolbar}.
77
+ */
78
+ blockToolbar?: ToolbarConfig;
79
+ }
80
+ interface PluginsMap {
81
+ [BalloonToolbar.pluginName]: BalloonToolbar;
82
+ [BlockToolbar.pluginName]: BlockToolbar;
83
+ [ContextualBalloon.pluginName]: ContextualBalloon;
84
+ [Notification.pluginName]: Notification;
85
+ }
86
+ }
@@ -1,5 +1,5 @@
1
- /**
2
- * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
- * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
- */
5
- export {};
1
+ /**
2
+ * @license Copyright (c) 2003-2023, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md or https://ckeditor.com/legal/ckeditor-oss-license
4
+ */
5
+ export {};