@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,182 +1,187 @@
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/labeledfield/labeledfieldview
7
- */
8
- import View from '../view';
9
- import LabelView from '../label/labelview';
10
- import type { FocusableView } from '../focuscycler';
11
- import type ViewCollection from '../viewcollection';
12
- import { type Locale } from '@ckeditor/ckeditor5-utils';
13
- import '../../theme/components/labeledfield/labeledfieldview.css';
14
- /**
15
- * The labeled field view class. It can be used to enhance any view with the following features:
16
- *
17
- * * a label,
18
- * * (optional) an error message,
19
- * * (optional) an info (status) text,
20
- *
21
- * all bound logically by proper DOM attributes for UX and accessibility. It also provides an interface
22
- * (e.g. observable properties) that allows controlling those additional features.
23
- *
24
- * The constructor of this class requires a callback that returns a view to be labeled. The callback
25
- * is called with unique ids that allow binding of DOM properties:
26
- *
27
- * ```ts
28
- * const labeledInputView = new LabeledFieldView( locale, ( labeledFieldView, viewUid, statusUid ) => {
29
- * const inputView = new InputTextView( labeledFieldView.locale );
30
- *
31
- * inputView.set( {
32
- * id: viewUid,
33
- * ariaDescribedById: statusUid
34
- * } );
35
- *
36
- * inputView.bind( 'isReadOnly' ).to( labeledFieldView, 'isEnabled', value => !value );
37
- * inputView.bind( 'hasError' ).to( labeledFieldView, 'errorText', value => !!value );
38
- *
39
- * return inputView;
40
- * } );
41
- *
42
- * labeledInputView.label = 'User name';
43
- * labeledInputView.infoText = 'Full name like for instance, John Doe.';
44
- * labeledInputView.render();
45
- *
46
- * document.body.append( labeledInputView.element );
47
- * ```
48
- *
49
- * See {@link module:ui/labeledfield/utils} to discover ready–to–use labeled input helpers for common
50
- * UI components.
51
- */
52
- export default class LabeledFieldView<TFieldView extends FocusableView = FocusableView> extends View {
53
- /**
54
- * The field view that gets labeled.
55
- */
56
- readonly fieldView: TFieldView;
57
- /**
58
- * The label view instance that describes the entire view.
59
- */
60
- readonly labelView: LabelView;
61
- /**
62
- * The status view for the {@link #fieldView}. It displays {@link #errorText} and
63
- * {@link #infoText}.
64
- */
65
- readonly statusView: View;
66
- /**
67
- * A collection of children of the internal wrapper element. Allows inserting additional DOM elements (views) next to
68
- * the {@link #fieldView} for easy styling (e.g. positioning).
69
- *
70
- * By default, the collection contains {@link #fieldView} and {@link #labelView}.
71
- */
72
- readonly fieldWrapperChildren: ViewCollection;
73
- /**
74
- * The text of the label.
75
- *
76
- * @observable
77
- */
78
- label: string | undefined;
79
- /**
80
- * Controls whether the component is in read-only mode.
81
- *
82
- * @observable
83
- */
84
- isEnabled: boolean;
85
- /**
86
- * An observable flag set to `true` when {@link #fieldView} is empty (`false` otherwise).
87
- *
88
- * @readonly
89
- * @observable
90
- * @default true
91
- */
92
- isEmpty: boolean;
93
- /**
94
- * An observable flag set to `true` when {@link #fieldView} is currently focused by
95
- * the user (`false` otherwise).
96
- *
97
- * @readonly
98
- * @observable
99
- * @default false
100
- */
101
- isFocused: boolean;
102
- /**
103
- * The validation error text. When set, it will be displayed
104
- * next to the {@link #fieldView} as a typical validation error message.
105
- * Set it to `null` to hide the message.
106
- *
107
- * **Note:** Setting this property to anything but `null` will automatically
108
- * make the `hasError` of the {@link #fieldView} `true`.
109
- *
110
- * @observable
111
- */
112
- errorText: string | null;
113
- /**
114
- * The additional information text displayed next to the {@link #fieldView} which can
115
- * be used to inform the user about its purpose, provide help or hints.
116
- *
117
- * Set it to `null` to hide the message.
118
- *
119
- * **Note:** This text will be displayed in the same place as {@link #errorText} but the
120
- * latter always takes precedence: if the {@link #errorText} is set, it replaces
121
- * {@link #infoText}.
122
- *
123
- * @observable
124
- * @default null
125
- */
126
- infoText: string | null;
127
- /**
128
- * (Optional) The additional CSS class set on the dropdown {@link #element}.
129
- *
130
- * @observable
131
- */
132
- class: string | undefined;
133
- /**
134
- * The content of the `placeholder` attribute of the {@link #fieldView}.
135
- *
136
- * @observable
137
- */
138
- placeholder: string | undefined;
139
- /**
140
- * The combined status text made of {@link #errorText} and {@link #infoText}.
141
- * Note that when present, {@link #errorText} always takes precedence in the
142
- * status.
143
- *
144
- * @see #errorText
145
- * @see #infoText
146
- * @see #statusView
147
- * @private
148
- * @observable
149
- */
150
- _statusText: string | null;
151
- /**
152
- * Creates an instance of the labeled field view class using a provided creator function
153
- * that provides the view to be labeled.
154
- *
155
- * @param locale The locale instance.
156
- * @param viewCreator A function that returns a {@link module:ui/view~View}
157
- * that will be labeled. The following arguments are passed to the creator function:
158
- *
159
- * * an instance of the `LabeledFieldView` to allow binding observable properties,
160
- * * an UID string that connects the {@link #labelView label} and the labeled field view in DOM,
161
- * * an UID string that connects the {@link #statusView status} and the labeled field view in DOM.
162
- */
163
- constructor(locale: Locale | undefined, viewCreator: (labeledFieldView: LabeledFieldView, viewUid: string, statusUid: string) => TFieldView);
164
- /**
165
- * Creates label view class instance and bind with view.
166
- *
167
- * @param id Unique id to set as labelView#for attribute.
168
- */
169
- private _createLabelView;
170
- /**
171
- * Creates the status view instance. It displays {@link #errorText} and {@link #infoText}
172
- * next to the {@link #fieldView}. See {@link #_statusText}.
173
- *
174
- * @param statusUid Unique id of the status, shared with the {@link #fieldView view's}
175
- * `aria-describedby` attribute.
176
- */
177
- private _createStatusView;
178
- /**
179
- * Focuses the {@link #fieldView}.
180
- */
181
- focus(): void;
182
- }
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/labeledfield/labeledfieldview
7
+ */
8
+ import View from '../view';
9
+ import LabelView from '../label/labelview';
10
+ import type { FocusableView } from '../focuscycler';
11
+ import type ViewCollection from '../viewcollection';
12
+ import { type Locale } from '@ckeditor/ckeditor5-utils';
13
+ import '../../theme/components/labeledfield/labeledfieldview.css';
14
+ /**
15
+ * The labeled field view class. It can be used to enhance any view with the following features:
16
+ *
17
+ * * a label,
18
+ * * (optional) an error message,
19
+ * * (optional) an info (status) text,
20
+ *
21
+ * all bound logically by proper DOM attributes for UX and accessibility. It also provides an interface
22
+ * (e.g. observable properties) that allows controlling those additional features.
23
+ *
24
+ * The constructor of this class requires a callback that returns a view to be labeled. The callback
25
+ * is called with unique ids that allow binding of DOM properties:
26
+ *
27
+ * ```ts
28
+ * const labeledInputView = new LabeledFieldView( locale, ( labeledFieldView, viewUid, statusUid ) => {
29
+ * const inputView = new InputTextView( labeledFieldView.locale );
30
+ *
31
+ * inputView.set( {
32
+ * id: viewUid,
33
+ * ariaDescribedById: statusUid
34
+ * } );
35
+ *
36
+ * inputView.bind( 'isReadOnly' ).to( labeledFieldView, 'isEnabled', value => !value );
37
+ * inputView.bind( 'hasError' ).to( labeledFieldView, 'errorText', value => !!value );
38
+ *
39
+ * return inputView;
40
+ * } );
41
+ *
42
+ * labeledInputView.label = 'User name';
43
+ * labeledInputView.infoText = 'Full name like for instance, John Doe.';
44
+ * labeledInputView.render();
45
+ *
46
+ * document.body.append( labeledInputView.element );
47
+ * ```
48
+ *
49
+ * See {@link module:ui/labeledfield/utils} to discover ready–to–use labeled input helpers for common
50
+ * UI components.
51
+ */
52
+ export default class LabeledFieldView<TFieldView extends FocusableView = FocusableView> extends View {
53
+ /**
54
+ * The field view that gets labeled.
55
+ */
56
+ readonly fieldView: TFieldView;
57
+ /**
58
+ * The label view instance that describes the entire view.
59
+ */
60
+ readonly labelView: LabelView;
61
+ /**
62
+ * The status view for the {@link #fieldView}. It displays {@link #errorText} and
63
+ * {@link #infoText}.
64
+ */
65
+ readonly statusView: View;
66
+ /**
67
+ * A collection of children of the internal wrapper element. Allows inserting additional DOM elements (views) next to
68
+ * the {@link #fieldView} for easy styling (e.g. positioning).
69
+ *
70
+ * By default, the collection contains {@link #fieldView} and {@link #labelView}.
71
+ */
72
+ readonly fieldWrapperChildren: ViewCollection;
73
+ /**
74
+ * The text of the label.
75
+ *
76
+ * @observable
77
+ */
78
+ label: string | undefined;
79
+ /**
80
+ * Controls whether the component is in read-only mode.
81
+ *
82
+ * @observable
83
+ */
84
+ isEnabled: boolean;
85
+ /**
86
+ * An observable flag set to `true` when {@link #fieldView} is empty (`false` otherwise).
87
+ *
88
+ * @readonly
89
+ * @observable
90
+ * @default true
91
+ */
92
+ isEmpty: boolean;
93
+ /**
94
+ * An observable flag set to `true` when {@link #fieldView} is currently focused by
95
+ * the user (`false` otherwise).
96
+ *
97
+ * @readonly
98
+ * @observable
99
+ * @default false
100
+ */
101
+ isFocused: boolean;
102
+ /**
103
+ * The validation error text. When set, it will be displayed
104
+ * next to the {@link #fieldView} as a typical validation error message.
105
+ * Set it to `null` to hide the message.
106
+ *
107
+ * **Note:** Setting this property to anything but `null` will automatically
108
+ * make the `hasError` of the {@link #fieldView} `true`.
109
+ *
110
+ * @observable
111
+ */
112
+ errorText: string | null;
113
+ /**
114
+ * The additional information text displayed next to the {@link #fieldView} which can
115
+ * be used to inform the user about its purpose, provide help or hints.
116
+ *
117
+ * Set it to `null` to hide the message.
118
+ *
119
+ * **Note:** This text will be displayed in the same place as {@link #errorText} but the
120
+ * latter always takes precedence: if the {@link #errorText} is set, it replaces
121
+ * {@link #infoText}.
122
+ *
123
+ * @observable
124
+ * @default null
125
+ */
126
+ infoText: string | null;
127
+ /**
128
+ * (Optional) The additional CSS class set on the dropdown {@link #element}.
129
+ *
130
+ * @observable
131
+ */
132
+ class: string | undefined;
133
+ /**
134
+ * The content of the `placeholder` attribute of the {@link #fieldView}.
135
+ *
136
+ * @observable
137
+ */
138
+ placeholder: string | undefined;
139
+ /**
140
+ * The combined status text made of {@link #errorText} and {@link #infoText}.
141
+ * Note that when present, {@link #errorText} always takes precedence in the
142
+ * status.
143
+ *
144
+ * @see #errorText
145
+ * @see #infoText
146
+ * @see #statusView
147
+ * @private
148
+ * @observable
149
+ */
150
+ _statusText: string | null;
151
+ /**
152
+ * Creates an instance of the labeled field view class using a provided creator function
153
+ * that provides the view to be labeled.
154
+ *
155
+ * @param locale The locale instance.
156
+ * @param viewCreator A function that returns a {@link module:ui/view~View}
157
+ * that will be labeled. The following arguments are passed to the creator function:
158
+ *
159
+ * * an instance of the `LabeledFieldView` to allow binding observable properties,
160
+ * * an UID string that connects the {@link #labelView label} and the labeled field view in DOM,
161
+ * * an UID string that connects the {@link #statusView status} and the labeled field view in DOM.
162
+ */
163
+ constructor(locale: Locale | undefined, viewCreator: LabeledFieldViewCreator<TFieldView>);
164
+ /**
165
+ * Creates label view class instance and bind with view.
166
+ *
167
+ * @param id Unique id to set as labelView#for attribute.
168
+ */
169
+ private _createLabelView;
170
+ /**
171
+ * Creates the status view instance. It displays {@link #errorText} and {@link #infoText}
172
+ * next to the {@link #fieldView}. See {@link #_statusText}.
173
+ *
174
+ * @param statusUid Unique id of the status, shared with the {@link #fieldView view's}
175
+ * `aria-describedby` attribute.
176
+ */
177
+ private _createStatusView;
178
+ /**
179
+ * Focuses the {@link #fieldView}.
180
+ */
181
+ focus(direction?: 1 | -1): void;
182
+ }
183
+ /**
184
+ * A creator function that returns a focusable view to be labeled by a {@link module:ui/labeledfield/labeledfieldview~LabeledFieldView}
185
+ * instance.
186
+ */
187
+ export type LabeledFieldViewCreator<TFieldView extends FocusableView> = (labeledFieldView: LabeledFieldView, viewUid: string, statusUid: string) => TFieldView;