@ckeditor/ckeditor5-ui 39.0.1 → 40.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 (229) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/LICENSE.md +1 -1
  3. package/README.md +4 -4
  4. package/lang/contexts.json +5 -1
  5. package/lang/translations/ar.po +17 -0
  6. package/lang/translations/ast.po +17 -0
  7. package/lang/translations/az.po +17 -0
  8. package/lang/translations/bg.po +17 -0
  9. package/lang/translations/bn.po +17 -0
  10. package/lang/translations/ca.po +17 -0
  11. package/lang/translations/cs.po +17 -0
  12. package/lang/translations/da.po +17 -0
  13. package/lang/translations/de-ch.po +17 -0
  14. package/lang/translations/de.po +17 -0
  15. package/lang/translations/el.po +17 -0
  16. package/lang/translations/en-au.po +17 -0
  17. package/lang/translations/en-gb.po +17 -0
  18. package/lang/translations/en.po +17 -0
  19. package/lang/translations/eo.po +17 -0
  20. package/lang/translations/es.po +17 -0
  21. package/lang/translations/et.po +17 -0
  22. package/lang/translations/eu.po +17 -0
  23. package/lang/translations/fa.po +17 -0
  24. package/lang/translations/fi.po +17 -0
  25. package/lang/translations/fr.po +17 -0
  26. package/lang/translations/gl.po +17 -0
  27. package/lang/translations/he.po +17 -0
  28. package/lang/translations/hi.po +17 -0
  29. package/lang/translations/hr.po +17 -0
  30. package/lang/translations/hu.po +17 -0
  31. package/lang/translations/id.po +17 -0
  32. package/lang/translations/it.po +17 -0
  33. package/lang/translations/ja.po +17 -0
  34. package/lang/translations/km.po +17 -0
  35. package/lang/translations/kn.po +17 -0
  36. package/lang/translations/ko.po +17 -0
  37. package/lang/translations/ku.po +17 -0
  38. package/lang/translations/lt.po +17 -0
  39. package/lang/translations/lv.po +17 -0
  40. package/lang/translations/ms.po +17 -0
  41. package/lang/translations/nb.po +17 -0
  42. package/lang/translations/ne.po +17 -0
  43. package/lang/translations/nl.po +17 -0
  44. package/lang/translations/no.po +17 -0
  45. package/lang/translations/pl.po +17 -0
  46. package/lang/translations/pt-br.po +17 -0
  47. package/lang/translations/pt.po +17 -0
  48. package/lang/translations/ro.po +17 -0
  49. package/lang/translations/ru.po +17 -0
  50. package/lang/translations/sk.po +17 -0
  51. package/lang/translations/sl.po +17 -0
  52. package/lang/translations/sq.po +17 -0
  53. package/lang/translations/sr-latn.po +17 -0
  54. package/lang/translations/sr.po +17 -0
  55. package/lang/translations/sv.po +17 -0
  56. package/lang/translations/th.po +17 -0
  57. package/lang/translations/tk.po +17 -0
  58. package/lang/translations/tr.po +17 -0
  59. package/lang/translations/tt.po +17 -0
  60. package/lang/translations/ug.po +17 -0
  61. package/lang/translations/uk.po +17 -0
  62. package/lang/translations/ur.po +17 -0
  63. package/lang/translations/uz.po +17 -0
  64. package/lang/translations/vi.po +17 -0
  65. package/lang/translations/zh-cn.po +17 -0
  66. package/lang/translations/zh.po +17 -0
  67. package/package.json +3 -7
  68. package/src/augmentation.d.ts +86 -86
  69. package/src/augmentation.js +5 -5
  70. package/src/autocomplete/autocompleteview.d.ts +81 -0
  71. package/src/autocomplete/autocompleteview.js +146 -0
  72. package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -27
  73. package/src/bindings/addkeyboardhandlingforgrid.js +107 -107
  74. package/src/bindings/clickoutsidehandler.d.ts +28 -28
  75. package/src/bindings/clickoutsidehandler.js +36 -36
  76. package/src/bindings/csstransitiondisablermixin.d.ts +40 -40
  77. package/src/bindings/csstransitiondisablermixin.js +55 -55
  78. package/src/bindings/injectcsstransitiondisabler.d.ts +59 -59
  79. package/src/bindings/injectcsstransitiondisabler.js +71 -71
  80. package/src/bindings/preventdefault.d.ts +33 -33
  81. package/src/bindings/preventdefault.js +34 -34
  82. package/src/bindings/submithandler.d.ts +57 -57
  83. package/src/bindings/submithandler.js +47 -47
  84. package/src/button/button.d.ts +178 -178
  85. package/src/button/button.js +5 -5
  86. package/src/button/buttonlabel.d.ts +34 -0
  87. package/src/button/buttonlabel.js +5 -0
  88. package/src/button/buttonlabelview.d.ts +31 -0
  89. package/src/button/buttonlabelview.js +42 -0
  90. package/src/button/buttonview.d.ts +185 -177
  91. package/src/button/buttonview.js +219 -231
  92. package/src/button/switchbuttonview.d.ts +45 -45
  93. package/src/button/switchbuttonview.js +75 -75
  94. package/src/colorgrid/colorgridview.d.ts +132 -132
  95. package/src/colorgrid/colorgridview.js +124 -124
  96. package/src/colorgrid/colortileview.d.ts +28 -28
  97. package/src/colorgrid/colortileview.js +40 -40
  98. package/src/colorgrid/utils.d.ts +47 -47
  99. package/src/colorgrid/utils.js +84 -84
  100. package/src/colorpicker/colorpickerview.d.ts +137 -137
  101. package/src/colorpicker/colorpickerview.js +270 -270
  102. package/src/colorpicker/utils.d.ts +43 -43
  103. package/src/colorpicker/utils.js +99 -99
  104. package/src/colorselector/colorgridsfragmentview.d.ts +194 -194
  105. package/src/colorselector/colorgridsfragmentview.js +289 -289
  106. package/src/colorselector/colorpickerfragmentview.d.ts +128 -128
  107. package/src/colorselector/colorpickerfragmentview.js +205 -205
  108. package/src/colorselector/colorselectorview.d.ts +242 -242
  109. package/src/colorselector/colorselectorview.js +256 -256
  110. package/src/colorselector/documentcolorcollection.d.ts +70 -70
  111. package/src/colorselector/documentcolorcollection.js +42 -42
  112. package/src/componentfactory.d.ts +81 -81
  113. package/src/componentfactory.js +104 -104
  114. package/src/dropdown/button/dropdownbutton.d.ts +25 -25
  115. package/src/dropdown/button/dropdownbutton.js +5 -5
  116. package/src/dropdown/button/dropdownbuttonview.d.ts +48 -48
  117. package/src/dropdown/button/dropdownbuttonview.js +66 -66
  118. package/src/dropdown/button/splitbuttonview.d.ts +161 -161
  119. package/src/dropdown/button/splitbuttonview.js +152 -152
  120. package/src/dropdown/dropdownpanelfocusable.d.ts +21 -21
  121. package/src/dropdown/dropdownpanelfocusable.js +5 -5
  122. package/src/dropdown/dropdownpanelview.d.ts +62 -62
  123. package/src/dropdown/dropdownpanelview.js +97 -97
  124. package/src/dropdown/dropdownview.d.ts +315 -315
  125. package/src/dropdown/dropdownview.js +379 -378
  126. package/src/dropdown/utils.d.ts +235 -221
  127. package/src/dropdown/utils.js +458 -437
  128. package/src/editableui/editableuiview.d.ts +72 -72
  129. package/src/editableui/editableuiview.js +112 -112
  130. package/src/editableui/inline/inlineeditableuiview.d.ts +40 -40
  131. package/src/editableui/inline/inlineeditableuiview.js +48 -48
  132. package/src/editorui/bodycollection.d.ts +55 -55
  133. package/src/editorui/bodycollection.js +84 -84
  134. package/src/editorui/boxed/boxededitoruiview.d.ts +40 -40
  135. package/src/editorui/boxed/boxededitoruiview.js +81 -81
  136. package/src/editorui/editorui.d.ts +282 -282
  137. package/src/editorui/editorui.js +410 -410
  138. package/src/editorui/editoruiview.d.ts +39 -39
  139. package/src/editorui/editoruiview.js +38 -38
  140. package/src/editorui/poweredby.d.ts +71 -71
  141. package/src/editorui/poweredby.js +276 -299
  142. package/src/focuscycler.d.ts +226 -183
  143. package/src/focuscycler.js +245 -220
  144. package/src/formheader/formheaderview.d.ts +59 -53
  145. package/src/formheader/formheaderview.js +69 -63
  146. package/src/highlightedtext/highlightedtextview.d.ts +38 -0
  147. package/src/highlightedtext/highlightedtextview.js +102 -0
  148. package/src/icon/iconview.d.ts +85 -78
  149. package/src/icon/iconview.js +114 -112
  150. package/src/iframe/iframeview.d.ts +50 -50
  151. package/src/iframe/iframeview.js +63 -63
  152. package/src/index.d.ts +73 -63
  153. package/src/index.js +70 -62
  154. package/src/input/inputbase.d.ts +107 -0
  155. package/src/input/inputbase.js +110 -0
  156. package/src/input/inputview.d.ts +36 -121
  157. package/src/input/inputview.js +24 -106
  158. package/src/inputnumber/inputnumberview.d.ts +49 -49
  159. package/src/inputnumber/inputnumberview.js +40 -40
  160. package/src/inputtext/inputtextview.d.ts +18 -18
  161. package/src/inputtext/inputtextview.js +27 -27
  162. package/src/label/labelview.d.ts +36 -36
  163. package/src/label/labelview.js +41 -41
  164. package/src/labeledfield/labeledfieldview.d.ts +187 -182
  165. package/src/labeledfield/labeledfieldview.js +157 -157
  166. package/src/labeledfield/utils.d.ts +123 -93
  167. package/src/labeledfield/utils.js +176 -131
  168. package/src/labeledinput/labeledinputview.d.ts +125 -125
  169. package/src/labeledinput/labeledinputview.js +125 -125
  170. package/src/list/listitemgroupview.d.ts +51 -0
  171. package/src/list/listitemgroupview.js +75 -0
  172. package/src/list/listitemview.d.ts +36 -35
  173. package/src/list/listitemview.js +42 -40
  174. package/src/list/listseparatorview.d.ts +18 -18
  175. package/src/list/listseparatorview.js +28 -28
  176. package/src/list/listview.d.ts +122 -65
  177. package/src/list/listview.js +187 -90
  178. package/src/model.d.ts +22 -22
  179. package/src/model.js +31 -31
  180. package/src/notification/notification.d.ts +211 -211
  181. package/src/notification/notification.js +187 -187
  182. package/src/panel/balloon/balloonpanelview.d.ts +685 -685
  183. package/src/panel/balloon/balloonpanelview.js +1010 -988
  184. package/src/panel/balloon/contextualballoon.d.ts +299 -299
  185. package/src/panel/balloon/contextualballoon.js +572 -572
  186. package/src/panel/sticky/stickypanelview.d.ts +156 -158
  187. package/src/panel/sticky/stickypanelview.js +234 -231
  188. package/src/search/filteredview.d.ts +31 -0
  189. package/src/search/filteredview.js +5 -0
  190. package/src/search/searchinfoview.d.ts +45 -0
  191. package/src/search/searchinfoview.js +59 -0
  192. package/src/search/searchresultsview.d.ts +54 -0
  193. package/src/search/searchresultsview.js +65 -0
  194. package/src/search/text/searchtextqueryview.d.ts +76 -0
  195. package/src/search/text/searchtextqueryview.js +75 -0
  196. package/src/search/text/searchtextview.d.ts +219 -0
  197. package/src/search/text/searchtextview.js +201 -0
  198. package/src/spinner/spinnerview.d.ts +25 -0
  199. package/src/spinner/spinnerview.js +38 -0
  200. package/src/template.d.ts +942 -942
  201. package/src/template.js +1294 -1294
  202. package/src/textarea/textareaview.d.ts +88 -0
  203. package/src/textarea/textareaview.js +140 -0
  204. package/src/toolbar/balloon/balloontoolbar.d.ts +122 -122
  205. package/src/toolbar/balloon/balloontoolbar.js +300 -300
  206. package/src/toolbar/block/blockbuttonview.d.ts +35 -35
  207. package/src/toolbar/block/blockbuttonview.js +41 -41
  208. package/src/toolbar/block/blocktoolbar.d.ts +161 -161
  209. package/src/toolbar/block/blocktoolbar.js +395 -391
  210. package/src/toolbar/normalizetoolbarconfig.d.ts +40 -39
  211. package/src/toolbar/normalizetoolbarconfig.js +51 -51
  212. package/src/toolbar/toolbarlinebreakview.d.ts +18 -18
  213. package/src/toolbar/toolbarlinebreakview.js +28 -28
  214. package/src/toolbar/toolbarseparatorview.d.ts +18 -18
  215. package/src/toolbar/toolbarseparatorview.js +28 -28
  216. package/src/toolbar/toolbarview.d.ts +266 -265
  217. package/src/toolbar/toolbarview.js +719 -717
  218. package/src/tooltipmanager.d.ts +180 -180
  219. package/src/tooltipmanager.js +353 -353
  220. package/src/view.d.ts +422 -422
  221. package/src/view.js +396 -396
  222. package/src/viewcollection.d.ts +139 -139
  223. package/src/viewcollection.js +206 -206
  224. package/theme/components/autocomplete/autocomplete.css +22 -0
  225. package/theme/components/formheader/formheader.css +8 -0
  226. package/theme/components/highlightedtext/highlightedtext.css +12 -0
  227. package/theme/components/search/search.css +43 -0
  228. package/theme/components/spinner/spinner.css +23 -0
  229. package/theme/components/textarea/textarea.css +10 -0
@@ -1,47 +1,47 @@
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
- * A handler useful for {@link module:ui/view~View views} working as HTML forms. It intercepts a native DOM
7
- * `submit` event, prevents the default web browser behavior (navigation and page reload) and
8
- * fires the `submit` event on a view instead. Such a custom event can be then used by any
9
- * {@link module:utils/dom/emittermixin~DomEmitter emitter}, e.g. to serialize the form data.
10
- *
11
- * ```ts
12
- * import submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';
13
- *
14
- * // ...
15
- *
16
- * class AnyFormView extends View {
17
- * constructor() {
18
- * super();
19
- *
20
- * // ...
21
- *
22
- * submitHandler( {
23
- * view: this
24
- * } );
25
- * }
26
- * }
27
- *
28
- * // ...
29
- *
30
- * const view = new AnyFormView();
31
- *
32
- * // A sample listener attached by an emitter working with the view.
33
- * this.listenTo( view, 'submit', () => {
34
- * saveTheFormData();
35
- * hideTheForm();
36
- * } );
37
- * ```
38
- *
39
- * @param options Configuration options.
40
- * @param options.view The view which DOM `submit` events should be handled.
41
- */
42
- export default function submitHandler({ view }) {
43
- view.listenTo(view.element, 'submit', (evt, domEvt) => {
44
- domEvt.preventDefault();
45
- view.fire('submit');
46
- }, { useCapture: true });
47
- }
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
+ * A handler useful for {@link module:ui/view~View views} working as HTML forms. It intercepts a native DOM
7
+ * `submit` event, prevents the default web browser behavior (navigation and page reload) and
8
+ * fires the `submit` event on a view instead. Such a custom event can be then used by any
9
+ * {@link module:utils/dom/emittermixin~DomEmitter emitter}, e.g. to serialize the form data.
10
+ *
11
+ * ```ts
12
+ * import submitHandler from '@ckeditor/ckeditor5-ui/src/bindings/submithandler';
13
+ *
14
+ * // ...
15
+ *
16
+ * class AnyFormView extends View {
17
+ * constructor() {
18
+ * super();
19
+ *
20
+ * // ...
21
+ *
22
+ * submitHandler( {
23
+ * view: this
24
+ * } );
25
+ * }
26
+ * }
27
+ *
28
+ * // ...
29
+ *
30
+ * const view = new AnyFormView();
31
+ *
32
+ * // A sample listener attached by an emitter working with the view.
33
+ * this.listenTo( view, 'submit', () => {
34
+ * saveTheFormData();
35
+ * hideTheForm();
36
+ * } );
37
+ * ```
38
+ *
39
+ * @param options Configuration options.
40
+ * @param options.view The view which DOM `submit` events should be handled.
41
+ */
42
+ export default function submitHandler({ view }) {
43
+ view.listenTo(view.element, 'submit', (evt, domEvt) => {
44
+ domEvt.preventDefault();
45
+ view.fire('submit');
46
+ }, { useCapture: true });
47
+ }
@@ -1,178 +1,178 @@
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/button/button
7
- */
8
- /**
9
- * The button interface. Implemented by, among others, {@link module:ui/button/buttonview~ButtonView},
10
- * {@link module:ui/dropdown/button/splitbuttonview~SplitButtonView} and
11
- * {@link module:ui/dropdown/button/dropdownbuttonview~DropdownButtonView}.
12
- */
13
- export default interface Button {
14
- /**
15
- * The label of the button view visible to the user when {@link #withText} is `true`.
16
- * It can also be used to create a {@link #tooltip}.
17
- *
18
- * @observable
19
- */
20
- label: string | undefined;
21
- /**
22
- * (Optional) The keystroke associated with the button, i.e. <kbd>CTRL+B</kbd>,
23
- * in the string format compatible with {@link module:utils/keyboard}.
24
- *
25
- * **Note**: Use {@link module:ui/button/button~Button#withKeystroke} if you want to display
26
- * the keystroke information next to the {@link module:ui/button/button~Button#label label}.
27
- *
28
- * @observable
29
- */
30
- keystroke: string | undefined;
31
- /**
32
- * (Optional) Tooltip of the button, i.e. displayed when hovering the button with the mouse cursor.
33
- *
34
- * * If defined as a `Boolean` (e.g. `true`), then combination of `label` and `keystroke` will be set as a tooltip.
35
- * * If defined as a `String`, tooltip will equal the exact text of that `String`.
36
- * * If defined as a `Function`, `label` and `keystroke` will be passed to that function, which is to return
37
- * a string with the tooltip text.
38
- *
39
- * ```ts
40
- * const view = new ButtonView( locale );
41
- * view.tooltip = ( label, keystroke ) => `A tooltip for ${ label } and ${ keystroke }.`
42
- * ```
43
- *
44
- * @observable
45
- * @default false
46
- */
47
- tooltip: boolean | string | ((label: string, keystroke: string | undefined) => string);
48
- /**
49
- * (Optional) The position of the tooltip. See {@link module:ui/tooltipmanager~TooltipManager}
50
- * to learn more about the tooltip system.
51
- *
52
- * **Note:** It makes sense only when the {@link #tooltip `tooltip` attribute} is defined.
53
- *
54
- * @observable
55
- * @default 's'
56
- */
57
- tooltipPosition: 's' | 'n' | 'e' | 'w' | 'sw' | 'se';
58
- /**
59
- * The HTML type of the button.
60
- *
61
- * @observable
62
- * @default 'button'
63
- */
64
- type: 'button' | 'submit' | 'reset' | 'menu';
65
- /**
66
- * Controls whether the button view is "on". It makes sense when a feature it represents
67
- * is currently active, e.g. a bold button is "on" when the selection is in the bold text.
68
- *
69
- * To disable the button, use {@link #isEnabled} instead.
70
- *
71
- * @observable
72
- * @default true
73
- */
74
- isOn: boolean;
75
- /**
76
- * Controls whether the button view is enabled, i.e. it can be clicked and execute an action.
77
- *
78
- * To change the "on" state of the button, use {@link #isOn} instead.
79
- *
80
- * @observable
81
- * @default true
82
- */
83
- isEnabled: boolean;
84
- /**
85
- * Controls whether the button view is visible. Visible by default, buttons are hidden
86
- * using a CSS class.
87
- *
88
- * @observable
89
- * @default true
90
- */
91
- isVisible: boolean;
92
- /**
93
- * Controls whether the button view is a toggle button (two–state) for assistive technologies.
94
- *
95
- * @observable
96
- * @default false
97
- */
98
- isToggleable: boolean;
99
- /**
100
- * (Optional) Controls whether the label of the button is hidden (e.g. an icon–only button).
101
- *
102
- * @observable
103
- * @default false
104
- */
105
- withText: boolean;
106
- /**
107
- * (Optional) Controls whether the keystroke of the button is displayed next to its
108
- * {@link module:ui/button/button~Button#label label}.
109
- *
110
- * **Note**: This property requires a {@link module:ui/button/button~Button#keystroke keystroke}
111
- * to be defined in the first place.
112
- *
113
- * @observable
114
- * @default false
115
- */
116
- withKeystroke: boolean;
117
- /**
118
- * (Optional) An XML {@link module:ui/icon/iconview~IconView#content content} of the icon.
119
- * When defined, an `iconView` should be added to the button.
120
- *
121
- * @observable
122
- */
123
- icon: string | undefined;
124
- /**
125
- * (Optional) Controls the `tabindex` HTML attribute of the button. By default, the button is focusable
126
- * but does not included in the <kbd>Tab</kbd> order.
127
- *
128
- * @observable
129
- * @default -1
130
- */
131
- tabindex: number;
132
- /**
133
- * (Optional) The additional CSS class set on the button.
134
- *
135
- * @observable
136
- */
137
- class: string | undefined;
138
- /**
139
- * (Optional) The ARIA property reflected by the `aria-checked` DOM attribute used by assistive technologies.
140
- *
141
- * @observable
142
- */
143
- ariaChecked?: boolean | undefined;
144
- /**
145
- * (Optional) The ARIA property reflected by the `aria-label` DOM attribute used by assistive technologies.
146
- *
147
- * @observable
148
- */
149
- ariaLabel?: string | undefined;
150
- /**
151
- * (Optional) The ARIA property reflected by the `aria-ariaLabelledBy` DOM attribute used by assistive technologies.
152
- *
153
- * @observable
154
- */
155
- ariaLabelledBy?: string | undefined;
156
- /**
157
- * (Optional) The property reflected by the `role` DOM attribute to be used by assistive technologies.
158
- *
159
- * @observable
160
- */
161
- role?: string | undefined;
162
- /**
163
- * (Optional) The value of the `style` attribute of the label.
164
- *
165
- * @observable
166
- */
167
- labelStyle: string | undefined;
168
- }
169
- /**
170
- * Fired when the button view is clicked. It won't be fired when the button {@link module:ui/button/button~Button#isEnabled}
171
- * is `false`.
172
- *
173
- * @eventName ~Button#execute
174
- */
175
- export type ButtonExecuteEvent = {
176
- name: 'execute';
177
- args: [];
178
- };
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/button/button
7
+ */
8
+ /**
9
+ * The button interface. Implemented by, among others, {@link module:ui/button/buttonview~ButtonView},
10
+ * {@link module:ui/dropdown/button/splitbuttonview~SplitButtonView} and
11
+ * {@link module:ui/dropdown/button/dropdownbuttonview~DropdownButtonView}.
12
+ */
13
+ export default interface Button {
14
+ /**
15
+ * The label of the button view visible to the user when {@link #withText} is `true`.
16
+ * It can also be used to create a {@link #tooltip}.
17
+ *
18
+ * @observable
19
+ */
20
+ label: string | undefined;
21
+ /**
22
+ * (Optional) The keystroke associated with the button, i.e. <kbd>CTRL+B</kbd>,
23
+ * in the string format compatible with {@link module:utils/keyboard}.
24
+ *
25
+ * **Note**: Use {@link module:ui/button/button~Button#withKeystroke} if you want to display
26
+ * the keystroke information next to the {@link module:ui/button/button~Button#label label}.
27
+ *
28
+ * @observable
29
+ */
30
+ keystroke: string | undefined;
31
+ /**
32
+ * (Optional) Tooltip of the button, i.e. displayed when hovering the button with the mouse cursor.
33
+ *
34
+ * * If defined as a `Boolean` (e.g. `true`), then combination of `label` and `keystroke` will be set as a tooltip.
35
+ * * If defined as a `String`, tooltip will equal the exact text of that `String`.
36
+ * * If defined as a `Function`, `label` and `keystroke` will be passed to that function, which is to return
37
+ * a string with the tooltip text.
38
+ *
39
+ * ```ts
40
+ * const view = new ButtonView( locale );
41
+ * view.tooltip = ( label, keystroke ) => `A tooltip for ${ label } and ${ keystroke }.`
42
+ * ```
43
+ *
44
+ * @observable
45
+ * @default false
46
+ */
47
+ tooltip: boolean | string | ((label: string, keystroke: string | undefined) => string);
48
+ /**
49
+ * (Optional) The position of the tooltip. See {@link module:ui/tooltipmanager~TooltipManager}
50
+ * to learn more about the tooltip system.
51
+ *
52
+ * **Note:** It makes sense only when the {@link #tooltip `tooltip` attribute} is defined.
53
+ *
54
+ * @observable
55
+ * @default 's'
56
+ */
57
+ tooltipPosition: 's' | 'n' | 'e' | 'w' | 'sw' | 'se';
58
+ /**
59
+ * The HTML type of the button.
60
+ *
61
+ * @observable
62
+ * @default 'button'
63
+ */
64
+ type: 'button' | 'submit' | 'reset' | 'menu';
65
+ /**
66
+ * Controls whether the button view is "on". It makes sense when a feature it represents
67
+ * is currently active, e.g. a bold button is "on" when the selection is in the bold text.
68
+ *
69
+ * To disable the button, use {@link #isEnabled} instead.
70
+ *
71
+ * @observable
72
+ * @default true
73
+ */
74
+ isOn: boolean;
75
+ /**
76
+ * Controls whether the button view is enabled, i.e. it can be clicked and execute an action.
77
+ *
78
+ * To change the "on" state of the button, use {@link #isOn} instead.
79
+ *
80
+ * @observable
81
+ * @default true
82
+ */
83
+ isEnabled: boolean;
84
+ /**
85
+ * Controls whether the button view is visible. Visible by default, buttons are hidden
86
+ * using a CSS class.
87
+ *
88
+ * @observable
89
+ * @default true
90
+ */
91
+ isVisible: boolean;
92
+ /**
93
+ * Controls whether the button view is a toggle button (two–state) for assistive technologies.
94
+ *
95
+ * @observable
96
+ * @default false
97
+ */
98
+ isToggleable: boolean;
99
+ /**
100
+ * (Optional) Controls whether the label of the button is hidden (e.g. an icon–only button).
101
+ *
102
+ * @observable
103
+ * @default false
104
+ */
105
+ withText: boolean;
106
+ /**
107
+ * (Optional) Controls whether the keystroke of the button is displayed next to its
108
+ * {@link module:ui/button/button~Button#label label}.
109
+ *
110
+ * **Note**: This property requires a {@link module:ui/button/button~Button#keystroke keystroke}
111
+ * to be defined in the first place.
112
+ *
113
+ * @observable
114
+ * @default false
115
+ */
116
+ withKeystroke: boolean;
117
+ /**
118
+ * (Optional) An XML {@link module:ui/icon/iconview~IconView#content content} of the icon.
119
+ * When defined, an `iconView` should be added to the button.
120
+ *
121
+ * @observable
122
+ */
123
+ icon: string | undefined;
124
+ /**
125
+ * (Optional) Controls the `tabindex` HTML attribute of the button. By default, the button is focusable
126
+ * but does not included in the <kbd>Tab</kbd> order.
127
+ *
128
+ * @observable
129
+ * @default -1
130
+ */
131
+ tabindex: number;
132
+ /**
133
+ * (Optional) The additional CSS class set on the button.
134
+ *
135
+ * @observable
136
+ */
137
+ class: string | undefined;
138
+ /**
139
+ * (Optional) The ARIA property reflected by the `aria-checked` DOM attribute used by assistive technologies.
140
+ *
141
+ * @observable
142
+ */
143
+ ariaChecked?: boolean | undefined;
144
+ /**
145
+ * (Optional) The ARIA property reflected by the `aria-label` DOM attribute used by assistive technologies.
146
+ *
147
+ * @observable
148
+ */
149
+ ariaLabel?: string | undefined;
150
+ /**
151
+ * (Optional) The ARIA property reflected by the `aria-ariaLabelledBy` DOM attribute used by assistive technologies.
152
+ *
153
+ * @observable
154
+ */
155
+ ariaLabelledBy?: string | undefined;
156
+ /**
157
+ * (Optional) The property reflected by the `role` DOM attribute to be used by assistive technologies.
158
+ *
159
+ * @observable
160
+ */
161
+ role?: string | undefined;
162
+ /**
163
+ * (Optional) The value of the `style` attribute of the label.
164
+ *
165
+ * @observable
166
+ */
167
+ labelStyle: string | undefined;
168
+ }
169
+ /**
170
+ * Fired when the button view is clicked. It won't be fired when the button {@link module:ui/button/button~Button#isEnabled}
171
+ * is `false`.
172
+ *
173
+ * @eventName ~Button#execute
174
+ */
175
+ export type ButtonExecuteEvent = {
176
+ name: 'execute';
177
+ args: [];
178
+ };
@@ -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 {};
@@ -0,0 +1,34 @@
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/button/buttonlabel
7
+ */
8
+ import type View from '../view';
9
+ /**
10
+ * The button label interface. Implemented by the {@link module:ui/button/buttonlabelview~ButtonLabelView}
11
+ * and any label view that can be used with the {@link module:ui/button/buttonview~ButtonView}.
12
+ */
13
+ export default interface ButtonLabel extends View {
14
+ /**
15
+ * The `id` attribute of the button label. It is used for accessibility purposes
16
+ * to describe the button.
17
+ *
18
+ * @observable
19
+ */
20
+ id: string | undefined;
21
+ /**
22
+ * The `style` attribute of the button label. It allows customizing the presentation
23
+ * of the label.
24
+ *
25
+ * @observable
26
+ */
27
+ style: string | undefined;
28
+ /**
29
+ * The human-readable text of the label.
30
+ *
31
+ * @observable
32
+ */
33
+ text: string | undefined;
34
+ }
@@ -0,0 +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 {};
@@ -0,0 +1,31 @@
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/button/buttonlabelview
7
+ */
8
+ import View from '../view';
9
+ import type ButtonLabel from './buttonlabel';
10
+ /**
11
+ * A default implementation of the button view's label. It comes with a dynamic text support
12
+ * via {@link module:ui/button/buttonlabelview~ButtonLabelView#text} property.
13
+ */
14
+ export default class ButtonLabelView extends View implements ButtonLabel {
15
+ /**
16
+ * @inheritDoc
17
+ */
18
+ id: string | undefined;
19
+ /**
20
+ * @inheritDoc
21
+ */
22
+ style: string | undefined;
23
+ /**
24
+ * @inheritDoc
25
+ */
26
+ text: string | undefined;
27
+ /**
28
+ * @inheritDoc
29
+ */
30
+ constructor();
31
+ }
@@ -0,0 +1,42 @@
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/button/buttonlabelview
7
+ */
8
+ import View from '../view';
9
+ /**
10
+ * A default implementation of the button view's label. It comes with a dynamic text support
11
+ * via {@link module:ui/button/buttonlabelview~ButtonLabelView#text} property.
12
+ */
13
+ export default class ButtonLabelView extends View {
14
+ /**
15
+ * @inheritDoc
16
+ */
17
+ constructor() {
18
+ super();
19
+ this.set({
20
+ style: undefined,
21
+ text: undefined,
22
+ id: undefined
23
+ });
24
+ const bind = this.bindTemplate;
25
+ this.setTemplate({
26
+ tag: 'span',
27
+ attributes: {
28
+ class: [
29
+ 'ck',
30
+ 'ck-button__label'
31
+ ],
32
+ style: bind.to('style'),
33
+ id: bind.to('id')
34
+ },
35
+ children: [
36
+ {
37
+ text: bind.to('text')
38
+ }
39
+ ]
40
+ });
41
+ }
42
+ }