@jetbrains/ring-ui 5.0.0-beta.2 → 5.0.0-beta.22

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 (632) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/babel.config.js +1 -12
  3. package/components/alert/alert.css +5 -15
  4. package/components/alert/alert.d.ts +3 -0
  5. package/components/alert/{alert.jsx → alert.js} +8 -7
  6. package/components/alert/container.css +0 -2
  7. package/components/alert/{container.jsx → container.js} +0 -0
  8. package/components/alert-service/alert-service.examples.css +5 -3
  9. package/components/alert-service/{alert-service.jsx → alert-service.js} +1 -1
  10. package/components/analytics/analytics__ga-plugin.d.ts +1 -1
  11. package/components/analytics/analytics__ga-plugin.js +11 -3
  12. package/components/auth/auth__core.d.ts +3 -1
  13. package/components/auth/auth__core.js +47 -16
  14. package/components/auth/down-notification.css +1 -1
  15. package/components/auth/{down-notification.jsx → down-notification.js} +0 -0
  16. package/components/auth/{iframe-flow.jsx → iframe-flow.js} +0 -0
  17. package/components/auth-dialog/auth-dialog.d.ts +11 -0
  18. package/components/auth-dialog/{auth-dialog.jsx → auth-dialog.js} +33 -2
  19. package/components/auth-dialog-service/{auth-dialog-service.jsx → auth-dialog-service.js} +1 -1
  20. package/components/autofocus-ng/autofocus-ng.js +1 -1
  21. package/components/autofocus-ng/autofocus-ng.test.js +1 -1
  22. package/components/avatar/{avatar-example-datauri.jsx → avatar-example-datauri.js} +0 -0
  23. package/components/avatar/avatar.d.ts +1 -0
  24. package/components/avatar/{avatar.jsx → avatar.js} +0 -0
  25. package/components/avatar/{fallback-avatar.jsx → fallback-avatar.js} +2 -2
  26. package/components/badge/{badge.jsx → badge.js} +0 -0
  27. package/components/button/button.css +95 -206
  28. package/components/button/button.d.ts +8 -8
  29. package/components/button/{button.jsx → button.js} +6 -8
  30. package/components/button/button__classes.d.ts +1 -1
  31. package/components/button/button__classes.js +4 -7
  32. package/components/button-group/button-group.css +138 -19
  33. package/components/button-group/button-group.d.ts +4 -1
  34. package/components/button-group/{button-group.jsx → button-group.js} +3 -3
  35. package/components/button-group/{caption.jsx → caption.js} +0 -0
  36. package/components/button-group-ng/button-group-ng.css +1 -0
  37. package/components/button-group-ng/button-group-ng.examples.js +1 -1
  38. package/components/button-ng/button-ng.examples.js +6 -7
  39. package/components/button-ng/button-ng.js +6 -25
  40. package/components/button-set/button-set.css +1 -0
  41. package/components/button-set/{button-set.jsx → button-set.js} +0 -0
  42. package/components/button-toolbar/button-toolbar.css +2 -0
  43. package/components/button-toolbar/{button-toolbar.jsx → button-toolbar.js} +0 -0
  44. package/components/checkbox/checkbox.css +16 -13
  45. package/components/checkbox/{checkbox.jsx → checkbox.js} +1 -1
  46. package/components/checkbox-ng/checkbox-ng.js +1 -1
  47. package/components/code/{code.jsx → code.js} +0 -0
  48. package/components/confirm/{confirm.jsx → confirm.js} +0 -0
  49. package/components/confirm-service/{confirm-service.jsx → confirm-service.js} +1 -1
  50. package/components/content-layout/{content-layout.jsx → content-layout.js} +0 -0
  51. package/components/content-layout/{sidebar.jsx → sidebar.js} +0 -0
  52. package/components/contenteditable/{contenteditable.jsx → contenteditable.js} +0 -0
  53. package/components/data-list/data-list.d.ts +4 -8
  54. package/components/data-list/{data-list.jsx → data-list.js} +0 -0
  55. package/components/data-list/{data-list.mock.jsx → data-list.mock.js} +0 -0
  56. package/components/data-list/{item.jsx → item.js} +0 -0
  57. package/components/data-list/{title.jsx → title.js} +0 -0
  58. package/components/date-picker/{date-input.jsx → date-input.js} +2 -1
  59. package/components/date-picker/date-picker.css +3 -1
  60. package/components/date-picker/{date-picker.jsx → date-picker.js} +0 -0
  61. package/components/date-picker/{date-popup.jsx → date-popup.js} +0 -1
  62. package/components/date-picker/{day.jsx → day.js} +0 -0
  63. package/components/date-picker/{month-names.jsx → month-names.js} +0 -0
  64. package/components/date-picker/{month-slider.jsx → month-slider.js} +0 -0
  65. package/components/date-picker/{month.jsx → month.js} +0 -0
  66. package/components/date-picker/{months.jsx → months.js} +0 -0
  67. package/components/date-picker/{weekdays.jsx → weekdays.js} +0 -0
  68. package/components/date-picker/{years.jsx → years.js} +0 -0
  69. package/components/dialog/dialog.css +10 -3
  70. package/components/dialog/dialog.d.ts +1 -1
  71. package/components/dialog/{dialog.jsx → dialog.js} +0 -0
  72. package/components/dialog-ng/dialog-ng__template.js +1 -0
  73. package/components/dropdown/{anchor.jsx → anchor.js} +0 -0
  74. package/components/dropdown/dropdown.d.ts +2 -2
  75. package/components/dropdown/{dropdown.jsx → dropdown.js} +0 -0
  76. package/components/dropdown-menu/{dropdown-menu.jsx → dropdown-menu.js} +0 -0
  77. package/components/error-bubble/error-bubble-legacy.css +1 -1
  78. package/components/error-bubble/error-bubble.css +1 -1
  79. package/components/error-bubble/{error-bubble.jsx → error-bubble.js} +0 -0
  80. package/components/error-message/{error-message.jsx → error-message.js} +0 -0
  81. package/components/footer/{footer.jsx → footer.js} +0 -0
  82. package/components/global/angular-component-factory.js +1 -1
  83. package/components/global/controls-height.d.ts +7 -0
  84. package/components/global/controls-height.js +8 -0
  85. package/components/global/{create-stateful-context.jsx → create-stateful-context.js} +0 -0
  86. package/components/global/{focus-sensor-hoc.jsx → focus-sensor-hoc.js} +0 -0
  87. package/components/global/promise-with-timeout.d.ts +2 -1
  88. package/components/global/promise-with-timeout.js +5 -2
  89. package/components/global/{react-dom-renderer.jsx → react-dom-renderer.js} +0 -0
  90. package/components/global/react-render-adapter.d.ts +29 -0
  91. package/components/global/react-render-adapter.js +36 -0
  92. package/components/global/rerender-hoc.d.ts +5 -9
  93. package/components/global/rerender-hoc.js +4 -2
  94. package/components/global/theme.d.ts +7 -20
  95. package/components/global/theme.js +40 -0
  96. package/components/global/variables.css +30 -26
  97. package/components/global/variables.d.ts +10 -9
  98. package/components/global/variables_dark.css +67 -0
  99. package/components/grid/{col.jsx → col.js} +0 -0
  100. package/components/grid/{grid.jsx → grid.js} +0 -0
  101. package/components/grid/{row.jsx → row.js} +0 -0
  102. package/components/group/{group.jsx → group.js} +0 -0
  103. package/components/header/header.css +19 -10
  104. package/components/header/header.d.ts +7 -69
  105. package/components/header/{header.jsx → header.js} +10 -9
  106. package/components/header/{logo.jsx → logo.js} +0 -0
  107. package/components/header/profile.d.ts +3 -3
  108. package/components/header/{profile.jsx → profile.js} +0 -0
  109. package/components/header/{services-link.jsx → services-link.js} +0 -0
  110. package/components/header/services.css +3 -3
  111. package/components/header/services.d.ts +5 -0
  112. package/components/header/{services.jsx → services.js} +8 -2
  113. package/components/header/{smart-profile.jsx → smart-profile.js} +0 -0
  114. package/components/header/{smart-services.jsx → smart-services.js} +0 -0
  115. package/components/header/tray-icon.d.ts +18 -575
  116. package/components/header/{tray-icon.jsx → tray-icon.js} +0 -0
  117. package/components/header/{tray.jsx → tray.js} +0 -0
  118. package/components/heading/heading.css +4 -1
  119. package/components/heading/{heading.jsx → heading.js} +0 -0
  120. package/components/icon/icon.css +1 -1
  121. package/components/icon/{icon.jsx → icon.js} +0 -0
  122. package/components/icon/{icon__svg.jsx → icon__svg.js} +0 -0
  123. package/components/input/input.css +86 -149
  124. package/components/input/input.d.ts +15 -17
  125. package/components/input/{input.jsx → input.js} +29 -33
  126. package/components/input-ng/input-ng.examples.js +1 -1
  127. package/components/input-ng/input-ng.js +45 -49
  128. package/components/island/adaptive-island-hoc.d.ts +6 -10
  129. package/components/island/{adaptive-island-hoc.jsx → adaptive-island-hoc.js} +2 -2
  130. package/components/island/content.d.ts +33 -2
  131. package/components/island/{content.jsx → content.js} +7 -11
  132. package/components/island/{header.jsx → header.js} +7 -4
  133. package/components/island/island.css +8 -5
  134. package/components/island/island.d.ts +6 -10
  135. package/components/island/{island.jsx → island.js} +0 -0
  136. package/components/island-legacy/{content-legacy.jsx → content-legacy.js} +0 -0
  137. package/components/island-legacy/{header-legacy.jsx → header-legacy.js} +0 -0
  138. package/components/island-legacy/island-legacy.css +1 -1
  139. package/components/island-legacy/{island-legacy.jsx → island-legacy.js} +0 -0
  140. package/components/link/clickableLink.d.ts +1 -1
  141. package/components/link/{clickableLink.jsx → clickableLink.js} +0 -0
  142. package/components/link/link.css +0 -2
  143. package/components/link/link.d.ts +14 -22
  144. package/components/link/{link.jsx → link.js} +0 -0
  145. package/components/list/consts.d.ts +3 -1
  146. package/components/list/list.css +1 -0
  147. package/components/list/list.d.ts +3 -1
  148. package/components/list/{list.jsx → list.js} +12 -13
  149. package/components/list/{list__custom.jsx → list__custom.js} +0 -0
  150. package/components/list/{list__hint.jsx → list__hint.js} +0 -0
  151. package/components/list/{list__item.jsx → list__item.js} +0 -0
  152. package/components/list/{list__link.jsx → list__link.js} +2 -2
  153. package/components/list/{list__separator.jsx → list__separator.js} +0 -0
  154. package/components/list/{list__title.jsx → list__title.js} +0 -0
  155. package/components/loader/{loader.jsx → loader.js} +0 -0
  156. package/components/loader-inline/loader-inline.css +14 -0
  157. package/components/loader-inline/loader-inline.d.ts +4 -41
  158. package/components/loader-inline/{loader-inline.jsx → loader-inline.js} +3 -11
  159. package/components/loader-inline-ng/loader-inline-ng.js +1 -17
  160. package/components/loader-inline-ng/loader-inline-ng.test.js +0 -11
  161. package/components/loader-screen/{loader-screen.jsx → loader-screen.js} +0 -0
  162. package/components/login-dialog/{login-dialog.jsx → login-dialog.js} +0 -0
  163. package/components/login-dialog/{service.jsx → service.js} +1 -1
  164. package/components/markdown/code.d.ts +6 -13
  165. package/components/markdown/{code.jsx → code.js} +2 -2
  166. package/components/markdown/heading.d.ts +5 -9
  167. package/components/markdown/{heading.jsx → heading.js} +2 -2
  168. package/components/markdown/link.d.ts +4 -8
  169. package/components/markdown/{link.jsx → link.js} +1 -1
  170. package/components/markdown/markdown.d.ts +2 -3
  171. package/components/markdown/{markdown.jsx → markdown.js} +14 -11
  172. package/components/message/message.css +18 -28
  173. package/components/message/message.d.ts +3 -0
  174. package/components/message/{message.jsx → message.js} +42 -22
  175. package/components/pager/{pager.jsx → pager.js} +2 -8
  176. package/components/panel/{panel.jsx → panel.js} +0 -0
  177. package/components/popup/popup.css +1 -1
  178. package/components/popup/popup.d.ts +7 -1
  179. package/components/popup/{popup.jsx → popup.js} +4 -2
  180. package/components/popup/popup.target.d.ts +2 -1
  181. package/components/popup/{popup.target.jsx → popup.target.js} +0 -0
  182. package/components/popup/position.d.ts +1 -1
  183. package/components/popup/position.js +2 -2
  184. package/components/popup-menu/popup-menu.d.ts +1 -0
  185. package/components/popup-menu/{popup-menu.jsx → popup-menu.js} +0 -0
  186. package/components/progress-bar/progress-bar.css +8 -12
  187. package/components/progress-bar/progress-bar.d.ts +0 -4
  188. package/components/progress-bar/{progress-bar.jsx → progress-bar.js} +1 -6
  189. package/components/progress-bar-ng/progress-bar-ng.examples.js +3 -2
  190. package/components/query-assist/query-assist.css +48 -64
  191. package/components/query-assist/query-assist.d.ts +5 -14
  192. package/components/query-assist/{query-assist.jsx → query-assist.js} +6 -12
  193. package/components/query-assist/{query-assist__suggestions.jsx → query-assist__suggestions.js} +0 -0
  194. package/components/radio/radio.css +10 -4
  195. package/components/radio/radio.d.ts +1 -1
  196. package/components/radio/{radio.jsx → radio.js} +0 -0
  197. package/components/radio/{radio__item.jsx → radio__item.js} +0 -0
  198. package/components/select/select-popup.css +5 -1
  199. package/components/select/select.css +23 -38
  200. package/components/select/select.d.ts +16 -20
  201. package/components/select/{select.jsx → select.js} +37 -47
  202. package/components/select/{select__filter.jsx → select__filter.js} +2 -1
  203. package/components/select/select__popup.d.ts +1 -1
  204. package/components/select/{select__popup.jsx → select__popup.js} +1 -2
  205. package/components/select-ng/select-ng.examples.js +1 -0
  206. package/components/select-ng/select-ng.js +19 -6
  207. package/components/select-ng/select-ng.test.js +1 -1
  208. package/components/select-ng/select-ng__lazy.js +13 -9
  209. package/components/select-ng/select-ng__lazy.test.js +3 -1
  210. package/components/shortcuts/shortcuts-hoc.d.ts +4 -8
  211. package/components/shortcuts/{shortcuts-hoc.jsx → shortcuts-hoc.js} +0 -0
  212. package/components/shortcuts/shortcuts.d.ts +1 -1
  213. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  214. package/components/shortcuts-hint-ng/shortcuts-hint-ng.examples.js +1 -1
  215. package/components/tab-trap/tab-trap.d.ts +1 -1
  216. package/components/tab-trap/{tab-trap.jsx → tab-trap.js} +0 -0
  217. package/components/table/{cell.jsx → cell.js} +0 -0
  218. package/components/table/disable-hover-hoc.d.ts +4 -8
  219. package/components/table/{disable-hover-hoc.jsx → disable-hover-hoc.js} +0 -0
  220. package/components/table/{header-cell.jsx → header-cell.js} +0 -0
  221. package/components/table/header.d.ts +8 -1
  222. package/components/table/{header.jsx → header.js} +0 -0
  223. package/components/table/{multitable.jsx → multitable.js} +0 -0
  224. package/components/table/row-with-focus-sensor.d.ts +4 -4
  225. package/components/table/{row-with-focus-sensor.jsx → row-with-focus-sensor.js} +4 -4
  226. package/components/table/row.d.ts +1 -0
  227. package/components/table/{row.jsx → row.js} +0 -0
  228. package/components/table/{selection-shortcuts-hoc.jsx → selection-shortcuts-hoc.js} +0 -0
  229. package/components/table/smart-table.d.ts +1 -0
  230. package/components/table/{smart-table.jsx → smart-table.js} +7 -3
  231. package/components/table/table.d.ts +4 -8
  232. package/components/table/{table.jsx → table.js} +0 -0
  233. package/components/tabs/{collapsible-more.jsx → collapsible-more.js} +2 -2
  234. package/components/tabs/{collapsible-tab.jsx → collapsible-tab.js} +2 -2
  235. package/components/tabs/collapsible-tabs.d.ts +2 -2
  236. package/components/tabs/{collapsible-tabs.jsx → collapsible-tabs.js} +1 -1
  237. package/components/tabs/custom-item.d.ts +1 -1
  238. package/components/tabs/{custom-item.jsx → custom-item.js} +0 -0
  239. package/components/tabs/dumb-tabs.d.ts +6 -109
  240. package/components/tabs/{dumb-tabs.jsx → dumb-tabs.js} +5 -9
  241. package/components/tabs/smart-tabs.d.ts +4 -4
  242. package/components/tabs/{smart-tabs.jsx → smart-tabs.js} +9 -3
  243. package/components/tabs/tab-link.d.ts +1 -1
  244. package/components/tabs/{tab-link.jsx → tab-link.js} +0 -0
  245. package/components/tabs/tab.d.ts +3 -1
  246. package/components/tabs/{tab.jsx → tab.js} +0 -0
  247. package/components/tabs/tabs.css +17 -28
  248. package/components/tabs-ng/tabs-ng.examples.js +11 -3
  249. package/components/tabs-ng/tabs-ng.js +1 -4
  250. package/components/tabs-ng/tabs-ng__template.js +1 -1
  251. package/components/tag/tag.css +31 -8
  252. package/components/tag/tag.d.ts +1 -0
  253. package/components/tag/{tag.jsx → tag.js} +2 -2
  254. package/components/tags-input/tags-input.css +10 -4
  255. package/components/tags-input/tags-input.d.ts +4 -8
  256. package/components/tags-input/{tags-input.jsx → tags-input.js} +0 -0
  257. package/components/tags-list/tags-list.d.ts +1 -1
  258. package/components/tags-list/{tags-list.jsx → tags-list.js} +0 -0
  259. package/components/text/{text.jsx → text.js} +0 -0
  260. package/components/toggle/toggle.css +61 -35
  261. package/components/toggle/toggle.d.ts +9 -89
  262. package/components/toggle/{toggle.jsx → toggle.js} +7 -7
  263. package/components/tooltip/tooltip.css +7 -0
  264. package/components/tooltip/tooltip.d.ts +1 -0
  265. package/components/tooltip/{tooltip.jsx → tooltip.js} +3 -2
  266. package/components/tooltip-ng/tooltip-ng.js +13 -10
  267. package/components/user-agreement/service.d.ts +14 -62
  268. package/components/user-agreement/{service.jsx → service.js} +1 -1
  269. package/components/user-agreement/{user-agreement.jsx → user-agreement.js} +1 -1
  270. package/components/user-card/{card.jsx → card.js} +0 -0
  271. package/components/user-card/{smart-user-card-tooltip.jsx → smart-user-card-tooltip.js} +0 -0
  272. package/components/user-card/{tooltip.jsx → tooltip.js} +0 -0
  273. package/dist/_helpers/anchor.js +3 -3
  274. package/dist/_helpers/badge.js +1 -1
  275. package/dist/_helpers/button-group.js +1 -1
  276. package/dist/_helpers/button-set.js +1 -1
  277. package/dist/_helpers/button-toolbar.js +1 -1
  278. package/dist/_helpers/button__classes.js +5 -8
  279. package/dist/_helpers/card.js +1 -1
  280. package/dist/_helpers/checkbox.js +1 -1
  281. package/dist/_helpers/date-picker.js +1 -1
  282. package/dist/_helpers/dialog__body-scroll-preventer.js +3 -2
  283. package/dist/_helpers/error-message.js +1 -1
  284. package/dist/_helpers/footer.js +1 -1
  285. package/dist/_helpers/grid.js +1 -1
  286. package/dist/_helpers/group.js +1 -1
  287. package/dist/_helpers/header.js +1 -1
  288. package/dist/_helpers/icon.js +1 -1
  289. package/dist/_helpers/input.js +1 -1
  290. package/dist/_helpers/island.js +1 -1
  291. package/dist/_helpers/link.js +1 -1
  292. package/dist/_helpers/list.js +1 -1
  293. package/dist/_helpers/loader-inline.js +3 -0
  294. package/dist/_helpers/loader-screen.js +1 -1
  295. package/dist/_helpers/panel.js +1 -1
  296. package/dist/_helpers/query-assist__suggestions.js +1 -1
  297. package/dist/_helpers/radio.js +1 -1
  298. package/dist/_helpers/select__filter.js +6 -3
  299. package/dist/_helpers/services-link.js +2 -2
  300. package/dist/_helpers/sidebar.js +3 -2
  301. package/dist/_helpers/table.js +1 -1
  302. package/dist/_helpers/tabs.js +1 -1
  303. package/dist/_helpers/theme.js +55 -0
  304. package/dist/_helpers/title.js +2 -1
  305. package/dist/alert/alert.d.ts +3 -0
  306. package/dist/alert/alert.js +35 -21
  307. package/dist/alert/container.js +1 -1
  308. package/dist/alert-service/alert-service.js +23 -8
  309. package/dist/analytics/analytics.js +4 -3
  310. package/dist/analytics/analytics__custom-plugin.js +2 -1
  311. package/dist/analytics/analytics__fus-plugin.js +1 -0
  312. package/dist/analytics/analytics__ga-plugin.d.ts +1 -1
  313. package/dist/analytics/analytics__ga-plugin.js +15 -7
  314. package/dist/analytics/analytics__plugin-utils.js +4 -3
  315. package/dist/analytics-ng/analytics-ng.js +3 -2
  316. package/dist/auth/auth.js +22 -9
  317. package/dist/auth/auth__core.d.ts +3 -1
  318. package/dist/auth/auth__core.js +87 -38
  319. package/dist/auth/background-flow.js +2 -1
  320. package/dist/auth/down-notification.js +21 -8
  321. package/dist/auth/iframe-flow.js +4 -1
  322. package/dist/auth/landing.js +26 -13
  323. package/dist/auth/request-builder.js +1 -0
  324. package/dist/auth/response-parser.js +1 -0
  325. package/dist/auth/storage.js +22 -7
  326. package/dist/auth/token-validator.js +2 -0
  327. package/dist/auth/window-flow.js +2 -1
  328. package/dist/auth-dialog/auth-dialog.d.ts +11 -0
  329. package/dist/auth-dialog/auth-dialog.js +55 -8
  330. package/dist/auth-dialog-service/auth-dialog-service.js +5 -2
  331. package/dist/auth-ng/auth-ng.js +23 -10
  332. package/dist/autofocus-ng/autofocus-ng.js +2 -1
  333. package/dist/avatar/avatar-example-datauri.js +1 -23
  334. package/dist/avatar/avatar.d.ts +1 -0
  335. package/dist/avatar/avatar.js +5 -3
  336. package/dist/avatar/fallback-avatar.js +6 -5
  337. package/dist/avatar-editor-ng/avatar-editor-ng.js +22 -7
  338. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
  339. package/dist/avatar-ng/avatar-ng.js +3 -0
  340. package/dist/badge/badge.js +1 -0
  341. package/dist/badge-ng/badge-ng.js +2 -0
  342. package/dist/breadcrumb-ng/breadcrumb-ng.js +4 -28
  343. package/dist/button/button.d.ts +8 -8
  344. package/dist/button/button.js +8 -8
  345. package/dist/button/button__classes.d.ts +1 -1
  346. package/dist/button/button__classes.js +0 -3
  347. package/dist/button-group/button-group.d.ts +4 -1
  348. package/dist/button-group/button-group.js +5 -3
  349. package/dist/button-group-ng/button-group-ng.js +2 -1
  350. package/dist/button-ng/button-ng.js +9 -40
  351. package/dist/button-set-ng/button-set-ng.js +1 -1
  352. package/dist/button-toolbar-ng/button-toolbar-ng.js +1 -0
  353. package/dist/caret/caret.js +2 -0
  354. package/dist/checkbox/checkbox.js +3 -1
  355. package/dist/checkbox-ng/checkbox-ng.js +4 -21
  356. package/dist/code/code.js +4 -3
  357. package/dist/confirm/confirm.js +7 -5
  358. package/dist/confirm-ng/confirm-ng.js +4 -1
  359. package/dist/confirm-service/confirm-service.js +5 -2
  360. package/dist/content-layout/content-layout.js +1 -0
  361. package/dist/content-layout/sidebar.js +1 -0
  362. package/dist/data-list/data-list.d.ts +4 -8
  363. package/dist/data-list/data-list.js +5 -8
  364. package/dist/data-list/data-list.mock.js +1 -0
  365. package/dist/data-list/item.js +11 -14
  366. package/dist/data-list/selection.js +1 -0
  367. package/dist/data-list/title.js +3 -1
  368. package/dist/data-list-ng/data-list-ng.js +6 -8
  369. package/dist/date-picker/consts.js +1 -1
  370. package/dist/date-picker/date-input.js +8 -5
  371. package/dist/date-picker/date-picker.js +11 -9
  372. package/dist/date-picker/date-popup.js +5 -4
  373. package/dist/date-picker/day.js +1 -0
  374. package/dist/date-picker/month-names.js +1 -0
  375. package/dist/date-picker/month-slider.js +1 -0
  376. package/dist/date-picker/month.js +1 -0
  377. package/dist/date-picker/months.js +1 -0
  378. package/dist/date-picker/years.js +1 -0
  379. package/dist/dialog/dialog.d.ts +1 -1
  380. package/dist/dialog/dialog.js +5 -3
  381. package/dist/dialog/dialog__body-scroll-preventer.js +1 -0
  382. package/dist/dialog-ng/dialog-ng.js +9 -6
  383. package/dist/dialog-ng/dialog-ng__template.js +1 -69
  384. package/dist/docked-panel-ng/docked-panel-ng.js +2 -1
  385. package/dist/dropdown/anchor.js +3 -1
  386. package/dist/dropdown/dropdown.d.ts +2 -2
  387. package/dist/dropdown/dropdown.js +3 -1
  388. package/dist/dropdown-menu/dropdown-menu.js +5 -3
  389. package/dist/error-bubble/error-bubble.js +3 -1
  390. package/dist/error-message/error-message.js +3 -1
  391. package/dist/error-message-ng/error-message-ng.js +3 -21
  392. package/dist/footer/footer.js +1 -0
  393. package/dist/footer-ng/footer-ng.js +3 -14
  394. package/dist/form-ng/form-ng.js +2 -4
  395. package/dist/global/angular-component-factory.js +8 -6
  396. package/dist/global/controls-height.d.ts +7 -0
  397. package/dist/global/controls-height.js +13 -0
  398. package/dist/global/create-stateful-context.js +3 -2
  399. package/dist/global/data-tests.js +2 -0
  400. package/dist/global/dom.js +1 -0
  401. package/dist/global/focus-sensor-hoc.js +1 -0
  402. package/dist/global/fuzzy-highlight.js +1 -1
  403. package/dist/global/inject-styles.js +5 -7
  404. package/dist/global/listeners.js +1 -0
  405. package/dist/global/memoize.js +2 -0
  406. package/dist/global/normalize-indent.js +2 -0
  407. package/dist/global/promise-with-timeout.d.ts +2 -1
  408. package/dist/global/promise-with-timeout.js +6 -2
  409. package/dist/global/react-dom-renderer.js +1 -0
  410. package/dist/global/react-render-adapter.d.ts +29 -0
  411. package/dist/global/react-render-adapter.js +41 -0
  412. package/dist/global/rerender-hoc.d.ts +5 -9
  413. package/dist/global/rerender-hoc.js +7 -3
  414. package/dist/global/theme.d.ts +7 -20
  415. package/dist/global/theme.js +22 -62
  416. package/dist/global/trivial-template-tag.js +2 -0
  417. package/dist/global/url.js +3 -1
  418. package/dist/global/variables.d.ts +10 -9
  419. package/dist/grid/col.js +2 -1
  420. package/dist/grid/grid.js +1 -0
  421. package/dist/grid/row.js +1 -1
  422. package/dist/group-ng/group-ng.js +1 -1
  423. package/dist/header/header.d.ts +7 -69
  424. package/dist/header/header.js +31 -31
  425. package/dist/header/logo.js +2 -0
  426. package/dist/header/profile.d.ts +3 -3
  427. package/dist/header/profile.js +6 -4
  428. package/dist/header/services-link.js +1 -0
  429. package/dist/header/services.d.ts +5 -0
  430. package/dist/header/services.js +13 -3
  431. package/dist/header/smart-profile.js +27 -27
  432. package/dist/header/smart-services.js +23 -24
  433. package/dist/header/tray-icon.d.ts +18 -575
  434. package/dist/header/tray-icon.js +6 -4
  435. package/dist/heading/heading.js +3 -3
  436. package/dist/http/http.js +4 -2
  437. package/dist/http/http.mock.js +2 -0
  438. package/dist/hub-source/hub-source.js +1 -1
  439. package/dist/hub-source/hub-source__user.js +4 -2
  440. package/dist/hub-source/hub-source__users-groups.js +3 -2
  441. package/dist/icon/icon.js +3 -3
  442. package/dist/icon/icon__svg.js +2 -0
  443. package/dist/icon/index.js +2 -0
  444. package/dist/icon-ng/icon-ng.js +7 -5
  445. package/dist/input/input.d.ts +15 -17
  446. package/dist/input/input.js +35 -42
  447. package/dist/input-ng/input-ng.js +8 -64
  448. package/dist/island/adaptive-island-hoc.d.ts +6 -10
  449. package/dist/island/adaptive-island-hoc.js +8 -5
  450. package/dist/island/content.d.ts +33 -2
  451. package/dist/island/content.js +10 -13
  452. package/dist/island/header.js +10 -6
  453. package/dist/island/island.d.ts +6 -10
  454. package/dist/island/island.js +1 -0
  455. package/dist/island-ng/island-content-ng.js +2 -16
  456. package/dist/island-ng/island-header-ng.js +2 -8
  457. package/dist/island-ng/island-ng-class-fixer.js +2 -0
  458. package/dist/island-ng/island-ng.js +2 -8
  459. package/dist/link/clickableLink.d.ts +1 -1
  460. package/dist/link/clickableLink.js +1 -0
  461. package/dist/link/link.d.ts +14 -22
  462. package/dist/link/link.js +4 -3
  463. package/dist/link-ng/link-ng.js +1 -4
  464. package/dist/list/consts.d.ts +3 -1
  465. package/dist/list/list.d.ts +3 -1
  466. package/dist/list/list.js +30 -23
  467. package/dist/list/list__custom.js +1 -0
  468. package/dist/list/list__item.js +6 -4
  469. package/dist/list/list__link.js +3 -1
  470. package/dist/list/list__users-groups-source.js +4 -2
  471. package/dist/loader/loader.js +1 -0
  472. package/dist/loader/loader__core.js +5 -4
  473. package/dist/loader-inline/loader-inline.d.ts +4 -41
  474. package/dist/loader-inline/loader-inline.js +4 -21
  475. package/dist/loader-inline-ng/loader-inline-ng.js +2 -30
  476. package/dist/loader-ng/loader-ng.js +1 -0
  477. package/dist/loader-screen/loader-screen.js +1 -0
  478. package/dist/loader-screen-ng/loader-screen-ng.js +2 -6
  479. package/dist/login-dialog/login-dialog.js +4 -2
  480. package/dist/login-dialog/service.js +5 -2
  481. package/dist/markdown/code.d.ts +6 -13
  482. package/dist/markdown/code.js +4 -3
  483. package/dist/markdown/heading.d.ts +5 -9
  484. package/dist/markdown/heading.js +2 -2
  485. package/dist/markdown/link.d.ts +4 -8
  486. package/dist/markdown/link.js +2 -1
  487. package/dist/markdown/markdown.d.ts +2 -3
  488. package/dist/markdown/markdown.js +17 -16
  489. package/dist/message/message.d.ts +3 -0
  490. package/dist/message/message.js +56 -42
  491. package/dist/old-browsers-message/old-browsers-message.js +2 -1
  492. package/dist/old-browsers-message/old-browsers-message__stop.js +1 -0
  493. package/dist/old-browsers-message/white-list.js +1 -0
  494. package/dist/pager/pager.js +14 -15
  495. package/dist/pager-ng/pager-ng.js +8 -9
  496. package/dist/panel-ng/panel-ng.js +1 -0
  497. package/dist/permissions/permissions.js +1 -1
  498. package/dist/permissions-ng/permissions-ng.js +23 -10
  499. package/dist/place-under-ng/place-under-ng.js +3 -2
  500. package/dist/popup/popup.d.ts +7 -1
  501. package/dist/popup/popup.js +11 -5
  502. package/dist/popup/popup.target.d.ts +2 -1
  503. package/dist/popup/position.d.ts +1 -1
  504. package/dist/popup/position.js +3 -2
  505. package/dist/popup-menu/popup-menu.d.ts +1 -0
  506. package/dist/popup-menu/popup-menu.js +3 -1
  507. package/dist/progress-bar/progress-bar.d.ts +0 -4
  508. package/dist/progress-bar/progress-bar.js +3 -8
  509. package/dist/progress-bar-ng/progress-bar-ng.js +2 -1
  510. package/dist/promised-click-ng/promised-click-ng.js +4 -2
  511. package/dist/proxy-attrs/proxy-attrs.js +5 -3
  512. package/dist/query-assist/query-assist.d.ts +5 -14
  513. package/dist/query-assist/query-assist.js +19 -31
  514. package/dist/query-assist/query-assist__suggestions.js +3 -1
  515. package/dist/query-assist-ng/query-assist-ng.js +9 -10
  516. package/dist/radio/radio.d.ts +1 -1
  517. package/dist/radio/radio.js +1 -0
  518. package/dist/radio/radio__item.js +1 -0
  519. package/dist/radio-ng/radio-ng.js +2 -18
  520. package/dist/save-field-ng/save-field-ng.js +5 -10
  521. package/dist/save-field-ng/save-field-ng__template.js +1 -32
  522. package/dist/select/select.d.ts +16 -20
  523. package/dist/select/select.js +65 -77
  524. package/dist/select/select__filter.js +5 -3
  525. package/dist/select/select__popup.d.ts +1 -1
  526. package/dist/select/select__popup.js +12 -16
  527. package/dist/select-ng/select-ng.js +28 -17
  528. package/dist/select-ng/select-ng__lazy.js +24 -20
  529. package/dist/select-ng/select-ng__options.js +2 -2
  530. package/dist/shortcuts/shortcuts-hoc.d.ts +4 -8
  531. package/dist/shortcuts/shortcuts-hoc.js +4 -3
  532. package/dist/shortcuts/shortcuts.d.ts +1 -1
  533. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +5 -2
  534. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
  535. package/dist/shortcuts-ng/shortcuts-ng.js +4 -3
  536. package/dist/sidebar-ng/sidebar-ng.js +4 -2
  537. package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
  538. package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
  539. package/dist/storage/storage.js +22 -7
  540. package/dist/storage/storage__fallback.js +4 -3
  541. package/dist/storage/storage__local.js +22 -7
  542. package/dist/style.css +1 -1
  543. package/dist/tab-trap/tab-trap.d.ts +1 -1
  544. package/dist/tab-trap/tab-trap.js +2 -1
  545. package/dist/table/cell.js +1 -0
  546. package/dist/table/disable-hover-hoc.d.ts +4 -8
  547. package/dist/table/disable-hover-hoc.js +4 -3
  548. package/dist/table/header-cell.js +2 -0
  549. package/dist/table/header.d.ts +8 -1
  550. package/dist/table/header.js +3 -1
  551. package/dist/table/multitable.js +1 -0
  552. package/dist/table/row-with-focus-sensor.d.ts +4 -4
  553. package/dist/table/row-with-focus-sensor.js +16 -6
  554. package/dist/table/row.d.ts +1 -0
  555. package/dist/table/row.js +9 -7
  556. package/dist/table/selection-adapter.js +2 -0
  557. package/dist/table/selection-shortcuts-hoc.js +1 -0
  558. package/dist/table/selection.js +1 -0
  559. package/dist/table/smart-table.d.ts +1 -0
  560. package/dist/table/smart-table.js +14 -8
  561. package/dist/table/table.d.ts +4 -8
  562. package/dist/table/table.js +4 -2
  563. package/dist/table-legacy-ng/table-legacy-ng.js +16 -54
  564. package/dist/table-legacy-ng/table-legacy-ng__pager.js +9 -16
  565. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +2 -1
  566. package/dist/table-ng/smart-table-ng.js +5 -2
  567. package/dist/table-ng/table-ng.js +5 -2
  568. package/dist/tabs/collapsible-more.js +5 -3
  569. package/dist/tabs/collapsible-tab.js +4 -2
  570. package/dist/tabs/collapsible-tabs.d.ts +2 -2
  571. package/dist/tabs/collapsible-tabs.js +4 -2
  572. package/dist/tabs/custom-item.d.ts +1 -1
  573. package/dist/tabs/dumb-tabs.d.ts +6 -109
  574. package/dist/tabs/dumb-tabs.js +9 -13
  575. package/dist/tabs/smart-tabs.d.ts +4 -4
  576. package/dist/tabs/smart-tabs.js +13 -9
  577. package/dist/tabs/tab-link.d.ts +1 -1
  578. package/dist/tabs/tab-link.js +1 -0
  579. package/dist/tabs/tab.d.ts +3 -1
  580. package/dist/tabs/tab.js +1 -0
  581. package/dist/tabs/tabs.js +4 -2
  582. package/dist/tabs-ng/tabs-ng.js +2 -6
  583. package/dist/tabs-ng/tabs-ng__template.js +1 -38
  584. package/dist/tag/tag.d.ts +1 -0
  585. package/dist/tag/tag.js +8 -6
  586. package/dist/tags-input/tags-input.d.ts +4 -8
  587. package/dist/tags-input/tags-input.js +10 -11
  588. package/dist/tags-input-ng/tags-input-ng.js +9 -10
  589. package/dist/tags-list/tags-list.d.ts +1 -1
  590. package/dist/tags-list/tags-list.js +4 -2
  591. package/dist/template-ng/template-ng.js +1 -0
  592. package/dist/text/text.js +1 -1
  593. package/dist/theme-ng/theme-ng.js +1 -0
  594. package/dist/toggle/toggle.d.ts +9 -89
  595. package/dist/toggle/toggle.js +8 -8
  596. package/dist/toggle-ng/toggle-ng.js +4 -3
  597. package/dist/tooltip/tooltip.d.ts +1 -0
  598. package/dist/tooltip/tooltip.js +8 -3
  599. package/dist/tooltip-ng/tooltip-ng.js +12 -6
  600. package/dist/user-agreement/service.d.ts +14 -62
  601. package/dist/user-agreement/service.js +23 -21
  602. package/dist/user-agreement/toolbox.eula.js +1 -160
  603. package/dist/user-agreement/user-agreement.js +10 -10
  604. package/dist/user-card/card.js +2 -0
  605. package/dist/user-card/smart-user-card-tooltip.js +8 -11
  606. package/dist/user-card/tooltip.js +3 -1
  607. package/dist/user-card/user-card.js +4 -7
  608. package/dist/user-card-ng/user-card-ng.js +7 -9
  609. package/package.json +78 -69
  610. package/webpack.config.js +0 -11
  611. package/components/global/conic-gradient.d.ts +0 -796
  612. package/components/global/conic-gradient.js +0 -21
  613. package/components/global/radial-gradient-mask.d.ts +0 -9
  614. package/components/global/radial-gradient-mask.js +0 -39
  615. package/components/global/supports-css.d.ts +0 -2
  616. package/components/global/supports-css.js +0 -14
  617. package/components/global/theme.jsx +0 -39
  618. package/components/global/variables_dark.d.ts +0 -3
  619. package/components/global/variables_dark.js +0 -53
  620. package/components/loader-inline/inject-styles.d.ts +0 -2
  621. package/components/loader-inline/inject-styles.js +0 -17
  622. package/dist/_helpers/inject-styles.js +0 -22
  623. package/dist/global/conic-gradient.d.ts +0 -796
  624. package/dist/global/conic-gradient.js +0 -35
  625. package/dist/global/radial-gradient-mask.d.ts +0 -9
  626. package/dist/global/radial-gradient-mask.js +0 -49
  627. package/dist/global/supports-css.d.ts +0 -2
  628. package/dist/global/supports-css.js +0 -20
  629. package/dist/global/variables_dark.d.ts +0 -3
  630. package/dist/global/variables_dark.js +0 -57
  631. package/dist/loader-inline/inject-styles.d.ts +0 -2
  632. package/dist/loader-inline/inject-styles.js +0 -11
@@ -8,7 +8,6 @@ import closeIcon from '@jetbrains/icons/close';
8
8
 
9
9
  import RingAngularComponent from '../global/ring-angular-component';
10
10
  import styles from '../input/input.css';
11
- import Theme from '../global/theme';
12
11
  import ButtonNg from '../button-ng/button-ng';
13
12
 
14
13
  import styleOverrides from './input-ng.css';
@@ -33,7 +32,6 @@ class RingInputComponent extends RingAngularComponent {
33
32
  label: '@',
34
33
  hint: '@',
35
34
  size: '@',
36
- theme: '@',
37
35
  disabled: '@',
38
36
  active: '<',
39
37
  error: '@',
@@ -84,9 +82,9 @@ class RingInputComponent extends RingAngularComponent {
84
82
 
85
83
  getContainerClasses() {
86
84
  return classNames(
87
- styles.container,
88
- styles[this.theme || Theme.LIGHT],
85
+ styles.outerContainer,
89
86
  this.size ? [styles[`size${this.size}`]] : null,
87
+ styles.heightS,
90
88
  {
91
89
  [styles.active]: this.active,
92
90
  [styles.error]: this.error != null,
@@ -103,56 +101,54 @@ class RingInputComponent extends RingAngularComponent {
103
101
  data-test="ring-input-container"
104
102
  ng-class="$ctrl.getContainerClasses()"
105
103
  >
106
- <input
107
- aria-label="{{$ctrl.label || $ctrl.placeholder}}"
108
- type="text"
109
- data-test="ring-input"
110
- class="${styles.input}"
111
- name="{{$ctrl.name}}"
112
- ng-if="!$ctrl.multiline"
113
- placeholder="{{$ctrl.placeholder}}"
114
- ng-model="$ctrl.value"
115
- ng-required="$ctrl.required"
116
- ng-disabled="$ctrl.disabled"
117
- ng-minlength="$ctrl.ngMinlength"
118
- ng-maxlength="$ctrl.ngMaxlength"
119
- ng-change="$ctrl.onInputChange()"
120
- ng-keyup="$ctrl.onKeyUp()"
121
- />
122
-
123
- <textarea
124
- aria-label="{{$ctrl.label || $ctrl.placeholder}}"
125
- data-test="ring-input"
126
- ng-if="$ctrl.multiline"
127
- class="${styles.input}"
128
- rows="1"
129
- name="{{$ctrl.name}}"
130
- placeholder="{{$ctrl.placeholder}}"
131
- ng-model="$ctrl.value"
132
- ng-required="$ctrl.required"
133
- ng-disabled="$ctrl.disabled"
134
- ng-minlength="$ctrl.ngMinlength"
135
- ng-maxlength="$ctrl.ngMaxlength"
136
- ng-change="$ctrl.onInputChange()"
137
- ng-keyup="$ctrl.onKeyUp()"
138
- ></textarea>
139
-
140
- <rg-button
141
- ng-if="$ctrl.clearable"
142
- data-test="ring-input-clear"
143
- class="${styles.clear} ${styleOverrides.clear}"
144
- icon="{{:: $ctrl.closeIcon}}"
145
- ng-click="$ctrl.onClear()"
146
- ></rg-button>
147
-
148
104
  <label
149
105
  ng-if="!$ctrl.borderless"
150
106
  class="${styles.label}"
151
107
  >{{$ctrl.label}}</label>
108
+ <div class="${styles.container}">
109
+ <input
110
+ aria-label="{{$ctrl.label || $ctrl.placeholder}}"
111
+ type="text"
112
+ data-test="ring-input"
113
+ class="${styles.input}"
114
+ name="{{$ctrl.name}}"
115
+ ng-if="!$ctrl.multiline"
116
+ placeholder="{{$ctrl.placeholder}}"
117
+ ng-model="$ctrl.value"
118
+ ng-required="$ctrl.required"
119
+ ng-disabled="$ctrl.disabled"
120
+ ng-minlength="$ctrl.ngMinlength"
121
+ ng-maxlength="$ctrl.ngMaxlength"
122
+ ng-change="$ctrl.onInputChange()"
123
+ ng-keyup="$ctrl.onKeyUp()"
124
+ />
125
+
126
+ <textarea
127
+ aria-label="{{$ctrl.label || $ctrl.placeholder}}"
128
+ data-test="ring-input"
129
+ ng-if="$ctrl.multiline"
130
+ class="${styles.input}"
131
+ rows="1"
132
+ name="{{$ctrl.name}}"
133
+ placeholder="{{$ctrl.placeholder}}"
134
+ ng-model="$ctrl.value"
135
+ ng-required="$ctrl.required"
136
+ ng-disabled="$ctrl.disabled"
137
+ ng-minlength="$ctrl.ngMinlength"
138
+ ng-maxlength="$ctrl.ngMaxlength"
139
+ ng-change="$ctrl.onInputChange()"
140
+ ng-keyup="$ctrl.onKeyUp()"
141
+ ></textarea>
142
+
143
+ <rg-button
144
+ ng-if="$ctrl.clearable"
145
+ data-test="ring-input-clear"
146
+ class="${styles.clear} ${styleOverrides.clear}"
147
+ icon="{{:: $ctrl.closeIcon}}"
148
+ ng-click="$ctrl.onClear()"
149
+ ></rg-button>
150
+ </div>
152
151
 
153
- <div ng-if="!$ctrl.borderless" class="${styles.underline}"></div>
154
- <div ng-if="!$ctrl.borderless" class="${styles.focusUnderline}"></div>
155
- <div ng-if="!$ctrl.borderless" class="${styles.errorUnderline}"></div>
156
152
  <div ng-if="!$ctrl.borderless && $ctrl.error" class="${styles.errorText} ${styleOverrides.errorText}">{{$ctrl.error}}</div>
157
153
  </div>
158
154
  `;
@@ -5,16 +5,14 @@ export declare const ScrollHandlerContext: React.Context<ScrollHandler | null>;
5
5
  export default function adaptiveIslandHOC<P>(ComposedComponent: ComponentType<P>): {
6
6
  new (props: P | Readonly<P>): {
7
7
  state: {
8
- phase: number;
8
+ phase: null;
9
9
  };
10
10
  onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
11
11
  render(): JSX.Element;
12
- context: any;
12
+ context: unknown;
13
13
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
14
14
  forceUpdate(callback?: (() => void) | undefined): void;
15
- readonly props: Readonly<P> & Readonly<{
16
- children?: React.ReactNode;
17
- }>;
15
+ readonly props: Readonly<P>;
18
16
  refs: {
19
17
  [key: string]: React.ReactInstance;
20
18
  };
@@ -33,16 +31,14 @@ export default function adaptiveIslandHOC<P>(ComposedComponent: ComponentType<P>
33
31
  };
34
32
  new (props: P, context: any): {
35
33
  state: {
36
- phase: number;
34
+ phase: null;
37
35
  };
38
36
  onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
39
37
  render(): JSX.Element;
40
- context: any;
38
+ context: unknown;
41
39
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<P>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
42
40
  forceUpdate(callback?: (() => void) | undefined): void;
43
- readonly props: Readonly<P> & Readonly<{
44
- children?: React.ReactNode;
45
- }>;
41
+ readonly props: Readonly<P>;
46
42
  refs: {
47
43
  [key: string]: React.ReactInstance;
48
44
  };
@@ -8,11 +8,11 @@ export default function adaptiveIslandHOC(ComposedComponent) {
8
8
  return class AdaptiveIsland extends Component {
9
9
  static propTypes = ComposedComponent.propTypes;
10
10
  state = {
11
- phase: 0
11
+ phase: null
12
12
  };
13
13
  onContentScroll = ({ scrollTop, scrollHeight, clientHeight }) => {
14
14
  if (scrollHeight - clientHeight >=
15
- interpolateLinear(TITLE_RESIZE_THRESHOLD, TITLE_RESIZE_END, this.state.phase)) {
15
+ interpolateLinear(TITLE_RESIZE_THRESHOLD, TITLE_RESIZE_END, this.state.phase ?? 0)) {
16
16
  const phase = Math.min(1, scrollTop / TITLE_RESIZE_END);
17
17
  this.setState({ phase });
18
18
  }
@@ -1,4 +1,6 @@
1
- import { HTMLAttributes } from 'react';
1
+ import React, { Component, HTMLAttributes } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import createResizeDetector from 'element-resize-detector';
2
4
  export interface IslandContentProps extends Omit<HTMLAttributes<HTMLElement>, 'onScroll'> {
3
5
  fade?: boolean | null | undefined;
4
6
  onScrollToBottom?: (() => void) | null | undefined;
@@ -8,5 +10,34 @@ export interface IslandContentInnerProps extends IslandContentProps {
8
10
  onScroll: (node: HTMLElement) => void;
9
11
  bottomBorder: boolean;
10
12
  }
11
- declare const ContentWrapper: (props: IslandContentProps) => JSX.Element;
13
+ declare class Content extends Component<IslandContentInnerProps> {
14
+ static propTypes: {
15
+ children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
16
+ className: PropTypes.Requireable<string>;
17
+ scrollableWrapperClassName: PropTypes.Requireable<string>;
18
+ fade: PropTypes.Requireable<boolean>;
19
+ bottomBorder: PropTypes.Requireable<boolean>;
20
+ onScroll: PropTypes.Requireable<(...args: any[]) => any>;
21
+ onScrollToBottom: PropTypes.Requireable<(...args: any[]) => any>;
22
+ };
23
+ static defaultProps: {
24
+ fade: boolean;
25
+ bottomBorder: boolean;
26
+ onScroll: () => void;
27
+ onScrollToBottom: () => void;
28
+ };
29
+ state: {
30
+ scrolledToTop: boolean;
31
+ scrolledToBottom: boolean;
32
+ };
33
+ componentWillUnmount(): void;
34
+ resizeDetector: createResizeDetector.Erd;
35
+ wrapperNode?: HTMLElement | null;
36
+ setWrapper: (node: HTMLElement | null) => void;
37
+ calculateScrollPosition: () => void;
38
+ scrollableNode?: HTMLElement | null;
39
+ setScrollableNodeAndCalculatePosition: (node: HTMLElement | null) => void;
40
+ render(): JSX.Element;
41
+ }
42
+ declare const ContentWrapper: React.ForwardRefExoticComponent<IslandContentProps & React.RefAttributes<Content>>;
12
43
  export default ContentWrapper;
@@ -1,4 +1,4 @@
1
- import React, { Component } from 'react';
1
+ import React, { forwardRef, Component } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
4
  import createResizeDetector from 'element-resize-detector';
@@ -49,6 +49,7 @@ class Content extends Component {
49
49
  if (!scrollableNode) {
50
50
  return;
51
51
  }
52
+ this.props.onScroll(scrollableNode);
52
53
  const { scrollTop, scrollHeight, offsetHeight } = scrollableNode;
53
54
  const scrolledToTop = scrollTop === 0;
54
55
  const scrolledToBottom = offsetHeight + scrollTop >= scrollHeight - END_DISTANCE;
@@ -57,12 +58,6 @@ class Content extends Component {
57
58
  }
58
59
  this.setState({ scrolledToTop, scrolledToBottom });
59
60
  });
60
- onScroll = () => {
61
- if (this.scrollableNode != null) {
62
- this.props.onScroll(this.scrollableNode);
63
- }
64
- this.calculateScrollPosition();
65
- };
66
61
  scrollableNode;
67
62
  setScrollableNodeAndCalculatePosition = (node) => {
68
63
  if (!node) {
@@ -85,7 +80,7 @@ class Content extends Component {
85
80
  <div
86
81
  // it has to be focusable because it can be scrollable
87
82
  // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
88
- tabIndex={0} data-scrollable-container className={scrollableWrapperClasses} ref={this.setScrollableNodeAndCalculatePosition} onScroll={fade ? this.onScroll : noop}>
83
+ tabIndex={0} data-scrollable-container className={scrollableWrapperClasses} ref={this.setScrollableNodeAndCalculatePosition} onScroll={fade ? this.calculateScrollPosition : noop}>
89
84
  {fade && (<div ref={this.setWrapper}>
90
85
  {children}
91
86
  </div>)}
@@ -95,10 +90,11 @@ class Content extends Component {
95
90
  </div>);
96
91
  }
97
92
  }
98
- const ContentWrapper = (props) => (<ScrollHandlerContext.Consumer>
93
+ const ContentWrapper = forwardRef((props, ref) => (<ScrollHandlerContext.Consumer>
99
94
  {onScroll => {
100
95
  const addProps = onScroll != null ? { onScroll, bottomBorder: true } : {};
101
- return <Content {...props} {...addProps}/>;
96
+ return <Content {...props} {...addProps} ref={ref}/>;
102
97
  }}
103
- </ScrollHandlerContext.Consumer>);
98
+ </ScrollHandlerContext.Consumer>));
99
+ ContentWrapper.displayName = 'ContentWrapper';
104
100
  export default ContentWrapper;
@@ -7,15 +7,17 @@ import { PhaseContext } from './adaptive-island-hoc';
7
7
  const Start = {
8
8
  FONT_SIZE: 24,
9
9
  LINE_HEIGHT: 28,
10
- PADDING: 16,
10
+ PADDING_TOP: 24,
11
+ PADDING_BOTTOM: 0,
11
12
  X: 0,
12
13
  Y: 0,
13
14
  SPACING: 0
14
15
  };
15
16
  const End = {
16
17
  FONT_SIZE: 13,
17
- LINE_HEIGHT: 28,
18
- PADDING: 0,
18
+ LINE_HEIGHT: 20,
19
+ PADDING_TOP: 16,
20
+ PADDING_BOTTOM: 8,
19
21
  // Compensation
20
22
  X: 0.4,
21
23
  Y: 0.1,
@@ -44,7 +46,8 @@ class Header extends Component {
44
46
  const headerStyle = phase != null
45
47
  ? {
46
48
  lineHeight: `${this.style('LINE_HEIGHT')}px`,
47
- paddingTop: this.style('PADDING')
49
+ paddingTop: this.style('PADDING_TOP'),
50
+ paddingBottom: this.style('PADDING_BOTTOM')
48
51
  }
49
52
  : undefined;
50
53
  const scaleFont = phase != null && this.style('FONT_SIZE') / Start.FONT_SIZE;
@@ -22,13 +22,15 @@
22
22
  }
23
23
 
24
24
  .header {
25
- composes: withTransparentBottomBorder;
26
-
27
25
  box-sizing: border-box;
28
26
  width: 100%;
29
- padding: 0 calc(unit * 4);
27
+ padding: calc(unit * 2) calc(unit * 4) unit;
28
+
29
+ transition: border-bottom-color 0.1s;
30
+
31
+ border-bottom: 1px solid transparent;
30
32
 
31
- line-height: 28px;
33
+ line-height: 24px;
32
34
  }
33
35
 
34
36
  .withBottomBorder.withBottomBorder {
@@ -54,7 +56,8 @@
54
56
  }
55
57
 
56
58
  .narrowIsland .header {
57
- padding: 0 calc(unit * 2);
59
+ padding-right: calc(unit * 2);
60
+ padding-left: calc(unit * 2);
58
61
  }
59
62
 
60
63
  .content {
@@ -21,16 +21,14 @@ export default class Island extends Component<IslandProps> {
21
21
  export declare const AdaptiveIsland: {
22
22
  new (props: IslandProps | Readonly<IslandProps>): {
23
23
  state: {
24
- phase: number;
24
+ phase: null;
25
25
  };
26
26
  onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
27
27
  render(): JSX.Element;
28
- context: any;
28
+ context: unknown;
29
29
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IslandProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
30
30
  forceUpdate(callback?: (() => void) | undefined): void;
31
- readonly props: Readonly<IslandProps> & Readonly<{
32
- children?: React.ReactNode;
33
- }>;
31
+ readonly props: Readonly<IslandProps>;
34
32
  refs: {
35
33
  [key: string]: React.ReactInstance;
36
34
  };
@@ -49,16 +47,14 @@ export declare const AdaptiveIsland: {
49
47
  };
50
48
  new (props: IslandProps, context: any): {
51
49
  state: {
52
- phase: number;
50
+ phase: null;
53
51
  };
54
52
  onContentScroll: ({ scrollTop, scrollHeight, clientHeight }: Element) => void;
55
53
  render(): JSX.Element;
56
- context: any;
54
+ context: unknown;
57
55
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<IslandProps>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
58
56
  forceUpdate(callback?: (() => void) | undefined): void;
59
- readonly props: Readonly<IslandProps> & Readonly<{
60
- children?: React.ReactNode;
61
- }>;
57
+ readonly props: Readonly<IslandProps>;
62
58
  refs: {
63
59
  [key: string]: React.ReactInstance;
64
60
  };
File without changes
@@ -63,7 +63,7 @@
63
63
  color: var(--ring-secondary-color);
64
64
 
65
65
  border-left: 1px solid var(--ring-disabled-color);
66
- text-shadow: var(--ring-dark-text-color) 0 0 1px;
66
+ text-shadow: var(--ring-white-text-color) 0 0 1px;
67
67
 
68
68
  font-size: var(--ring-font-size-smaller);
69
69
  }
@@ -13,7 +13,7 @@ export default class ClickableLink extends PureComponent<ClickableLinkProps> {
13
13
  onConditionalClick: PropTypes.Requireable<(...args: any[]) => any>;
14
14
  activeClassName: PropTypes.Requireable<string>;
15
15
  href: PropTypes.Validator<string>;
16
- children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
16
+ children: PropTypes.Validator<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
17
17
  };
18
18
  onClick: (e: React.MouseEvent<HTMLAnchorElement>) => void;
19
19
  render(): JSX.Element;
@@ -1,8 +1,6 @@
1
1
  @import "../global/variables.css";
2
2
 
3
3
  .link {
4
- composes: link from "../alert/alert.css"; /* To override link stiles inside alert */
5
-
6
4
  cursor: pointer;
7
5
  transition: color var(--ring-fast-ease);
8
6
 
@@ -20,14 +20,12 @@ export interface LinkBaseProps {
20
20
  export declare type LinkProps<P extends ClickableLinkProps = ClickableLinkProps> = Omit<P, keyof LinkBaseProps> & LinkBaseProps;
21
21
  export declare function linkHOC<P extends ClickableLinkProps>(ComposedComponent: ComponentType<P> | string): {
22
22
  new (props: LinkProps<P> | Readonly<LinkProps<P>>): {
23
- getChildren(): React.ReactNode;
23
+ getChildren(): string | number | boolean | JSX.Element | React.ReactFragment | null | undefined;
24
24
  render(): JSX.Element;
25
- context: any;
25
+ context: unknown;
26
26
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<LinkProps<P>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
27
27
  forceUpdate(callback?: (() => void) | undefined): void;
28
- readonly props: Readonly<LinkProps<P>> & Readonly<{
29
- children?: React.ReactNode;
30
- }>;
28
+ readonly props: Readonly<LinkProps<P>>;
31
29
  state: Readonly<{}>;
32
30
  refs: {
33
31
  [key: string]: React.ReactInstance;
@@ -46,14 +44,12 @@ export declare function linkHOC<P extends ClickableLinkProps>(ComposedComponent:
46
44
  UNSAFE_componentWillUpdate?(nextProps: Readonly<LinkProps<P>>, nextState: Readonly<{}>, nextContext: any): void;
47
45
  };
48
46
  new (props: LinkProps<P>, context: any): {
49
- getChildren(): React.ReactNode;
47
+ getChildren(): string | number | boolean | JSX.Element | React.ReactFragment | null | undefined;
50
48
  render(): JSX.Element;
51
- context: any;
49
+ context: unknown;
52
50
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<LinkProps<P>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
53
51
  forceUpdate(callback?: (() => void) | undefined): void;
54
- readonly props: Readonly<LinkProps<P>> & Readonly<{
55
- children?: React.ReactNode;
56
- }>;
52
+ readonly props: Readonly<LinkProps<P>>;
57
53
  state: Readonly<{}>;
58
54
  refs: {
59
55
  [key: string]: React.ReactInstance;
@@ -78,7 +74,7 @@ export declare function linkHOC<P extends ClickableLinkProps>(ComposedComponent:
78
74
  inherit: PropTypes.Requireable<boolean>;
79
75
  pseudo: PropTypes.Requireable<boolean>;
80
76
  hover: PropTypes.Requireable<boolean>;
81
- children: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
77
+ children: PropTypes.Requireable<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray | ((...args: any[]) => any)>;
82
78
  'data-test': PropTypes.Requireable<string>;
83
79
  href: PropTypes.Requireable<string>;
84
80
  onPlainLeftClick: PropTypes.Requireable<(...args: any[]) => any>;
@@ -88,14 +84,12 @@ export declare function linkHOC<P extends ClickableLinkProps>(ComposedComponent:
88
84
  };
89
85
  declare const _default: {
90
86
  new (props: LinkProps<ClickableLinkProps> | Readonly<LinkProps<ClickableLinkProps>>): {
91
- getChildren(): React.ReactNode;
87
+ getChildren(): string | number | boolean | JSX.Element | React.ReactFragment | null | undefined;
92
88
  render(): JSX.Element;
93
- context: any;
89
+ context: unknown;
94
90
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<LinkProps<ClickableLinkProps>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
95
91
  forceUpdate(callback?: (() => void) | undefined): void;
96
- readonly props: Readonly<LinkProps<ClickableLinkProps>> & Readonly<{
97
- children?: React.ReactNode;
98
- }>;
92
+ readonly props: Readonly<LinkProps<ClickableLinkProps>>;
99
93
  state: Readonly<{}>;
100
94
  refs: {
101
95
  [key: string]: React.ReactInstance;
@@ -114,14 +108,12 @@ declare const _default: {
114
108
  UNSAFE_componentWillUpdate?(nextProps: Readonly<LinkProps<ClickableLinkProps>>, nextState: Readonly<{}>, nextContext: any): void;
115
109
  };
116
110
  new (props: LinkProps<ClickableLinkProps>, context: any): {
117
- getChildren(): React.ReactNode;
111
+ getChildren(): string | number | boolean | JSX.Element | React.ReactFragment | null | undefined;
118
112
  render(): JSX.Element;
119
- context: any;
113
+ context: unknown;
120
114
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<LinkProps<ClickableLinkProps>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
121
115
  forceUpdate(callback?: (() => void) | undefined): void;
122
- readonly props: Readonly<LinkProps<ClickableLinkProps>> & Readonly<{
123
- children?: React.ReactNode;
124
- }>;
116
+ readonly props: Readonly<LinkProps<ClickableLinkProps>>;
125
117
  state: Readonly<{}>;
126
118
  refs: {
127
119
  [key: string]: React.ReactInstance;
@@ -146,7 +138,7 @@ declare const _default: {
146
138
  inherit: PropTypes.Requireable<boolean>;
147
139
  pseudo: PropTypes.Requireable<boolean>;
148
140
  hover: PropTypes.Requireable<boolean>;
149
- children: PropTypes.Requireable<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
141
+ children: PropTypes.Requireable<string | number | boolean | PropTypes.ReactElementLike | PropTypes.ReactNodeArray | ((...args: any[]) => any)>;
150
142
  'data-test': PropTypes.Requireable<string>;
151
143
  href: PropTypes.Requireable<string>;
152
144
  onPlainLeftClick: PropTypes.Requireable<(...args: any[]) => any>;
File without changes
@@ -1,6 +1,7 @@
1
1
  import React, { ComponentType, ReactNode, SyntheticEvent } from 'react';
2
2
  import { LinkProps } from '../link/link';
3
3
  import { IconType, Size } from '../icon/icon';
4
+ import { ClickableLinkProps } from '../link/clickableLink';
4
5
  /**
5
6
  * @enum {number}
6
7
  */
@@ -52,8 +53,9 @@ export declare type ListDataItem<T = unknown> = T & Partial<Omit<LinkProps, 'onC
52
53
  tagName?: keyof JSX.IntrinsicElements | null | undefined;
53
54
  selectedLabel?: string | null | undefined;
54
55
  originalModel?: never;
55
- LinkComponent?: ComponentType<LinkProps> | string | null | undefined;
56
+ LinkComponent?: ComponentType<ClickableLinkProps> | string | null | undefined;
56
57
  template?: ReactNode | ((props: ListDataItemProps<T>) => ReactNode);
58
+ custom?: boolean | null | undefined;
57
59
  onClick?: ((item: ListDataItem<T>, event: Event | SyntheticEvent) => void) | null | undefined;
58
60
  onMouseUp?: ((item: ListDataItem<T>, event: Event | SyntheticEvent) => void) | null | undefined;
59
61
  };
@@ -30,6 +30,7 @@
30
30
  padding: 0 calc(unit * 2) 1px;
31
31
 
32
32
  text-align: right;
33
+ white-space: nowrap;
33
34
 
34
35
  color: var(--ring-secondary-color);
35
36
  border-top: 1px solid var(--ring-line-color);
@@ -9,6 +9,7 @@ import { WindowScrollerChildProps } from 'react-virtualized/dist/es/WindowScroll
9
9
  import { ShortcutsMap } from '../shortcuts/core';
10
10
  import ListHint from './list__hint';
11
11
  import { Dimension, ListDataItem, ListDataItemProps, Type } from './consts';
12
+ export type { ListDataItem };
12
13
  declare function noop(): void;
13
14
  /**
14
15
  * @param {Type} listItemType
@@ -135,6 +136,8 @@ export default class List<T = unknown> extends Component<ListProps<T>, ListState
135
136
  shouldComponentUpdate(nextProps: ListProps<T>, nextState: ListState<T>): boolean;
136
137
  componentDidUpdate(prevProps: ListProps<T>): void;
137
138
  componentWillUnmount(): void;
139
+ scheduleScrollListener: (cb: () => void) => void;
140
+ scheduleHoverListener: (cb: () => void) => void;
138
141
  static isItemType: typeof isItemType;
139
142
  static ListHint: typeof ListHint;
140
143
  static ListProps: {
@@ -188,4 +191,3 @@ export default class List<T = unknown> extends Component<ListProps<T>, ListState
188
191
  render(): JSX.Element;
189
192
  }
190
193
  export declare type ListAttrs<T = unknown> = JSX.LibraryManagedAttributes<typeof List, ListProps<T>>;
191
- export {};
@@ -25,8 +25,6 @@ import ListSeparator from './list__separator';
25
25
  import ListHint from './list__hint';
26
26
  import { DEFAULT_ITEM_TYPE, Dimension, Type } from './consts';
27
27
  import styles from './list.css';
28
- const scheduleScrollListener = scheduleRAF();
29
- const scheduleHoverListener = scheduleRAF();
30
28
  function noop() { }
31
29
  const warnEmptyKey = deprecate(() => { }, 'No key passed for list item with non-string label. It is considered as a bad practice and has been deprecated, please provide a key.');
32
30
  /**
@@ -141,23 +139,22 @@ export default class List extends Component {
141
139
  });
142
140
  }
143
141
  }
144
- if (activeIndex == null &&
145
- prevState.activeIndex == null &&
146
- shouldActivateFirstItem(nextProps)) {
142
+ return nextState;
143
+ }
144
+ componentDidMount() {
145
+ document.addEventListener('mousemove', this.onDocumentMouseMove);
146
+ document.addEventListener('keydown', this.onDocumentKeyDown, true);
147
+ const { data, activeIndex } = this.props;
148
+ if (activeIndex == null && shouldActivateFirstItem(this.props)) {
147
149
  const firstActivatableIndex = data.findIndex(isActivatable);
148
150
  if (firstActivatableIndex >= 0) {
149
- Object.assign(nextState, {
151
+ this.setState({
150
152
  activeIndex: firstActivatableIndex,
151
153
  activeItem: data[firstActivatableIndex],
152
154
  needScrollToActive: true
153
155
  });
154
156
  }
155
157
  }
156
- return nextState;
157
- }
158
- componentDidMount() {
159
- document.addEventListener('mousemove', this.onDocumentMouseMove);
160
- document.addEventListener('keydown', this.onDocumentKeyDown, true);
161
158
  }
162
159
  shouldComponentUpdate(nextProps, nextState) {
163
160
  return nextProps !== this.props ||
@@ -175,6 +172,8 @@ export default class List extends Component {
175
172
  document.removeEventListener('mousemove', this.onDocumentMouseMove);
176
173
  document.removeEventListener('keydown', this.onDocumentKeyDown, true);
177
174
  }
175
+ scheduleScrollListener = scheduleRAF();
176
+ scheduleHoverListener = scheduleRAF();
178
177
  static isItemType = isItemType;
179
178
  static ListHint = ListHint;
180
179
  static ListProps = {
@@ -184,7 +183,7 @@ export default class List extends Component {
184
183
  virtualizedList;
185
184
  unmounted;
186
185
  container;
187
- hoverHandler = memoize((index) => () => scheduleHoverListener(() => {
186
+ hoverHandler = memoize((index) => () => this.scheduleHoverListener(() => {
188
187
  if (this.state.disabledHover) {
189
188
  return;
190
189
  }
@@ -367,7 +366,7 @@ export default class List extends Component {
367
366
  defaultItemHeight() {
368
367
  return this.props.compact ? Dimension.COMPACT_ITEM_HEIGHT : Dimension.ITEM_HEIGHT;
369
368
  }
370
- scrollEndHandler = () => scheduleScrollListener(() => {
369
+ scrollEndHandler = () => this.scheduleScrollListener(() => {
371
370
  const innerContainer = this.inner;
372
371
  if (innerContainer) {
373
372
  const maxScrollingPosition = innerContainer.scrollHeight;
@@ -10,7 +10,7 @@ import styles from './list.css';
10
10
  */
11
11
  export default class ListLink extends PureComponent {
12
12
  render() {
13
- const { scrolling, 'data-test': dataTest, className, label, hover, description, rgItemType, url, onCheckboxChange, disabled, LinkComponent, compact, hoverClassName, ...restProps } = this.props;
13
+ const { scrolling, 'data-test': dataTest, className, label, hover, description, rgItemType, url, onCheckboxChange, disabled, LinkComponent, compact, hoverClassName, children, ...restProps } = this.props;
14
14
  const classes = classNames(styles.item, className, {
15
15
  [styles.actionLink]: !disabled,
16
16
  [styles.compact]: compact,
@@ -18,7 +18,7 @@ export default class ListLink extends PureComponent {
18
18
  });
19
19
  const Comp = LinkComponent ? linkHOC(LinkComponent) : Link;
20
20
  return (<Comp pseudo={!this.props.href} {...restProps} hover={hover && !disabled} className={classes} data-test={dataTests('ring-list-link', dataTest)}>
21
- {label}
21
+ {label ?? children}
22
22
  </Comp>);
23
23
  }
24
24
  }