@ckeditor/ckeditor5-ui 39.0.2 → 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 (226) hide show
  1. package/lang/contexts.json +5 -1
  2. package/lang/translations/ar.po +16 -0
  3. package/lang/translations/ast.po +16 -0
  4. package/lang/translations/az.po +16 -0
  5. package/lang/translations/bg.po +16 -0
  6. package/lang/translations/bn.po +16 -0
  7. package/lang/translations/ca.po +16 -0
  8. package/lang/translations/cs.po +16 -0
  9. package/lang/translations/da.po +16 -0
  10. package/lang/translations/de-ch.po +16 -0
  11. package/lang/translations/de.po +16 -0
  12. package/lang/translations/el.po +16 -0
  13. package/lang/translations/en-au.po +16 -0
  14. package/lang/translations/en-gb.po +16 -0
  15. package/lang/translations/en.po +16 -0
  16. package/lang/translations/eo.po +16 -0
  17. package/lang/translations/es.po +16 -0
  18. package/lang/translations/et.po +16 -0
  19. package/lang/translations/eu.po +16 -0
  20. package/lang/translations/fa.po +16 -0
  21. package/lang/translations/fi.po +16 -0
  22. package/lang/translations/fr.po +16 -0
  23. package/lang/translations/gl.po +16 -0
  24. package/lang/translations/he.po +16 -0
  25. package/lang/translations/hi.po +16 -0
  26. package/lang/translations/hr.po +16 -0
  27. package/lang/translations/hu.po +16 -0
  28. package/lang/translations/id.po +16 -0
  29. package/lang/translations/it.po +16 -0
  30. package/lang/translations/ja.po +16 -0
  31. package/lang/translations/km.po +16 -0
  32. package/lang/translations/kn.po +16 -0
  33. package/lang/translations/ko.po +16 -0
  34. package/lang/translations/ku.po +16 -0
  35. package/lang/translations/lt.po +16 -0
  36. package/lang/translations/lv.po +16 -0
  37. package/lang/translations/ms.po +16 -0
  38. package/lang/translations/nb.po +16 -0
  39. package/lang/translations/ne.po +16 -0
  40. package/lang/translations/nl.po +16 -0
  41. package/lang/translations/no.po +16 -0
  42. package/lang/translations/pl.po +16 -0
  43. package/lang/translations/pt-br.po +16 -0
  44. package/lang/translations/pt.po +16 -0
  45. package/lang/translations/ro.po +16 -0
  46. package/lang/translations/ru.po +16 -0
  47. package/lang/translations/sk.po +16 -0
  48. package/lang/translations/sl.po +16 -0
  49. package/lang/translations/sq.po +16 -0
  50. package/lang/translations/sr-latn.po +16 -0
  51. package/lang/translations/sr.po +16 -0
  52. package/lang/translations/sv.po +16 -0
  53. package/lang/translations/th.po +16 -0
  54. package/lang/translations/tk.po +16 -0
  55. package/lang/translations/tr.po +16 -0
  56. package/lang/translations/tt.po +16 -0
  57. package/lang/translations/ug.po +16 -0
  58. package/lang/translations/uk.po +16 -0
  59. package/lang/translations/ur.po +16 -0
  60. package/lang/translations/uz.po +16 -0
  61. package/lang/translations/vi.po +16 -0
  62. package/lang/translations/zh-cn.po +16 -0
  63. package/lang/translations/zh.po +16 -0
  64. package/package.json +3 -3
  65. package/src/augmentation.d.ts +86 -86
  66. package/src/augmentation.js +5 -5
  67. package/src/autocomplete/autocompleteview.d.ts +81 -0
  68. package/src/autocomplete/autocompleteview.js +146 -0
  69. package/src/bindings/addkeyboardhandlingforgrid.d.ts +27 -27
  70. package/src/bindings/addkeyboardhandlingforgrid.js +107 -107
  71. package/src/bindings/clickoutsidehandler.d.ts +28 -28
  72. package/src/bindings/clickoutsidehandler.js +36 -36
  73. package/src/bindings/csstransitiondisablermixin.d.ts +40 -40
  74. package/src/bindings/csstransitiondisablermixin.js +55 -55
  75. package/src/bindings/injectcsstransitiondisabler.d.ts +59 -59
  76. package/src/bindings/injectcsstransitiondisabler.js +71 -71
  77. package/src/bindings/preventdefault.d.ts +33 -33
  78. package/src/bindings/preventdefault.js +34 -34
  79. package/src/bindings/submithandler.d.ts +57 -57
  80. package/src/bindings/submithandler.js +47 -47
  81. package/src/button/button.d.ts +178 -178
  82. package/src/button/button.js +5 -5
  83. package/src/button/buttonlabel.d.ts +34 -0
  84. package/src/button/buttonlabel.js +5 -0
  85. package/src/button/buttonlabelview.d.ts +31 -0
  86. package/src/button/buttonlabelview.js +42 -0
  87. package/src/button/buttonview.d.ts +185 -177
  88. package/src/button/buttonview.js +219 -231
  89. package/src/button/switchbuttonview.d.ts +45 -45
  90. package/src/button/switchbuttonview.js +75 -75
  91. package/src/colorgrid/colorgridview.d.ts +132 -132
  92. package/src/colorgrid/colorgridview.js +124 -124
  93. package/src/colorgrid/colortileview.d.ts +28 -28
  94. package/src/colorgrid/colortileview.js +40 -40
  95. package/src/colorgrid/utils.d.ts +47 -47
  96. package/src/colorgrid/utils.js +84 -84
  97. package/src/colorpicker/colorpickerview.d.ts +137 -137
  98. package/src/colorpicker/colorpickerview.js +270 -270
  99. package/src/colorpicker/utils.d.ts +43 -43
  100. package/src/colorpicker/utils.js +99 -99
  101. package/src/colorselector/colorgridsfragmentview.d.ts +194 -194
  102. package/src/colorselector/colorgridsfragmentview.js +289 -289
  103. package/src/colorselector/colorpickerfragmentview.d.ts +128 -128
  104. package/src/colorselector/colorpickerfragmentview.js +205 -205
  105. package/src/colorselector/colorselectorview.d.ts +242 -242
  106. package/src/colorselector/colorselectorview.js +256 -256
  107. package/src/colorselector/documentcolorcollection.d.ts +70 -70
  108. package/src/colorselector/documentcolorcollection.js +42 -42
  109. package/src/componentfactory.d.ts +81 -81
  110. package/src/componentfactory.js +104 -104
  111. package/src/dropdown/button/dropdownbutton.d.ts +25 -25
  112. package/src/dropdown/button/dropdownbutton.js +5 -5
  113. package/src/dropdown/button/dropdownbuttonview.d.ts +48 -48
  114. package/src/dropdown/button/dropdownbuttonview.js +66 -66
  115. package/src/dropdown/button/splitbuttonview.d.ts +161 -161
  116. package/src/dropdown/button/splitbuttonview.js +152 -152
  117. package/src/dropdown/dropdownpanelfocusable.d.ts +21 -21
  118. package/src/dropdown/dropdownpanelfocusable.js +5 -5
  119. package/src/dropdown/dropdownpanelview.d.ts +62 -62
  120. package/src/dropdown/dropdownpanelview.js +97 -97
  121. package/src/dropdown/dropdownview.d.ts +315 -315
  122. package/src/dropdown/dropdownview.js +379 -378
  123. package/src/dropdown/utils.d.ts +235 -221
  124. package/src/dropdown/utils.js +458 -437
  125. package/src/editableui/editableuiview.d.ts +72 -72
  126. package/src/editableui/editableuiview.js +112 -112
  127. package/src/editableui/inline/inlineeditableuiview.d.ts +40 -40
  128. package/src/editableui/inline/inlineeditableuiview.js +48 -48
  129. package/src/editorui/bodycollection.d.ts +55 -55
  130. package/src/editorui/bodycollection.js +84 -84
  131. package/src/editorui/boxed/boxededitoruiview.d.ts +40 -40
  132. package/src/editorui/boxed/boxededitoruiview.js +81 -81
  133. package/src/editorui/editorui.d.ts +282 -282
  134. package/src/editorui/editorui.js +410 -410
  135. package/src/editorui/editoruiview.d.ts +39 -39
  136. package/src/editorui/editoruiview.js +38 -38
  137. package/src/editorui/poweredby.d.ts +71 -71
  138. package/src/editorui/poweredby.js +276 -299
  139. package/src/focuscycler.d.ts +226 -183
  140. package/src/focuscycler.js +245 -220
  141. package/src/formheader/formheaderview.d.ts +59 -53
  142. package/src/formheader/formheaderview.js +69 -63
  143. package/src/highlightedtext/highlightedtextview.d.ts +38 -0
  144. package/src/highlightedtext/highlightedtextview.js +102 -0
  145. package/src/icon/iconview.d.ts +85 -78
  146. package/src/icon/iconview.js +114 -112
  147. package/src/iframe/iframeview.d.ts +50 -50
  148. package/src/iframe/iframeview.js +63 -63
  149. package/src/index.d.ts +73 -63
  150. package/src/index.js +70 -62
  151. package/src/input/inputbase.d.ts +107 -0
  152. package/src/input/inputbase.js +110 -0
  153. package/src/input/inputview.d.ts +36 -121
  154. package/src/input/inputview.js +24 -106
  155. package/src/inputnumber/inputnumberview.d.ts +49 -49
  156. package/src/inputnumber/inputnumberview.js +40 -40
  157. package/src/inputtext/inputtextview.d.ts +18 -18
  158. package/src/inputtext/inputtextview.js +27 -27
  159. package/src/label/labelview.d.ts +36 -36
  160. package/src/label/labelview.js +41 -41
  161. package/src/labeledfield/labeledfieldview.d.ts +187 -182
  162. package/src/labeledfield/labeledfieldview.js +157 -157
  163. package/src/labeledfield/utils.d.ts +123 -93
  164. package/src/labeledfield/utils.js +176 -131
  165. package/src/labeledinput/labeledinputview.d.ts +125 -125
  166. package/src/labeledinput/labeledinputview.js +125 -125
  167. package/src/list/listitemgroupview.d.ts +51 -0
  168. package/src/list/listitemgroupview.js +75 -0
  169. package/src/list/listitemview.d.ts +36 -35
  170. package/src/list/listitemview.js +42 -40
  171. package/src/list/listseparatorview.d.ts +18 -18
  172. package/src/list/listseparatorview.js +28 -28
  173. package/src/list/listview.d.ts +122 -65
  174. package/src/list/listview.js +187 -90
  175. package/src/model.d.ts +22 -22
  176. package/src/model.js +31 -31
  177. package/src/notification/notification.d.ts +211 -211
  178. package/src/notification/notification.js +187 -187
  179. package/src/panel/balloon/balloonpanelview.d.ts +685 -685
  180. package/src/panel/balloon/balloonpanelview.js +1010 -988
  181. package/src/panel/balloon/contextualballoon.d.ts +299 -299
  182. package/src/panel/balloon/contextualballoon.js +572 -572
  183. package/src/panel/sticky/stickypanelview.d.ts +156 -158
  184. package/src/panel/sticky/stickypanelview.js +234 -231
  185. package/src/search/filteredview.d.ts +31 -0
  186. package/src/search/filteredview.js +5 -0
  187. package/src/search/searchinfoview.d.ts +45 -0
  188. package/src/search/searchinfoview.js +59 -0
  189. package/src/search/searchresultsview.d.ts +54 -0
  190. package/src/search/searchresultsview.js +65 -0
  191. package/src/search/text/searchtextqueryview.d.ts +76 -0
  192. package/src/search/text/searchtextqueryview.js +75 -0
  193. package/src/search/text/searchtextview.d.ts +219 -0
  194. package/src/search/text/searchtextview.js +201 -0
  195. package/src/spinner/spinnerview.d.ts +25 -0
  196. package/src/spinner/spinnerview.js +38 -0
  197. package/src/template.d.ts +942 -942
  198. package/src/template.js +1294 -1294
  199. package/src/textarea/textareaview.d.ts +88 -0
  200. package/src/textarea/textareaview.js +140 -0
  201. package/src/toolbar/balloon/balloontoolbar.d.ts +122 -122
  202. package/src/toolbar/balloon/balloontoolbar.js +300 -300
  203. package/src/toolbar/block/blockbuttonview.d.ts +35 -35
  204. package/src/toolbar/block/blockbuttonview.js +41 -41
  205. package/src/toolbar/block/blocktoolbar.d.ts +161 -161
  206. package/src/toolbar/block/blocktoolbar.js +395 -391
  207. package/src/toolbar/normalizetoolbarconfig.d.ts +40 -39
  208. package/src/toolbar/normalizetoolbarconfig.js +51 -51
  209. package/src/toolbar/toolbarlinebreakview.d.ts +18 -18
  210. package/src/toolbar/toolbarlinebreakview.js +28 -28
  211. package/src/toolbar/toolbarseparatorview.d.ts +18 -18
  212. package/src/toolbar/toolbarseparatorview.js +28 -28
  213. package/src/toolbar/toolbarview.d.ts +266 -265
  214. package/src/toolbar/toolbarview.js +719 -717
  215. package/src/tooltipmanager.d.ts +180 -180
  216. package/src/tooltipmanager.js +353 -353
  217. package/src/view.d.ts +422 -422
  218. package/src/view.js +396 -396
  219. package/src/viewcollection.d.ts +139 -139
  220. package/src/viewcollection.js +206 -206
  221. package/theme/components/autocomplete/autocomplete.css +22 -0
  222. package/theme/components/formheader/formheader.css +8 -0
  223. package/theme/components/highlightedtext/highlightedtext.css +12 -0
  224. package/theme/components/search/search.css +43 -0
  225. package/theme/components/spinner/spinner.css +23 -0
  226. 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;