@jetbrains/ring-ui 5.1.1 → 6.0.1-beta.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 (702) hide show
  1. package/README.md +1 -6
  2. package/components/alert/alert.d.ts +1 -1
  3. package/components/alert/container.css +3 -0
  4. package/components/alert-service/alert-service.d.ts +2 -2
  5. package/components/analytics/analytics.d.ts +21 -7
  6. package/components/analytics/analytics.js +19 -24
  7. package/components/analytics/analytics__custom-plugin.d.ts +6 -16
  8. package/components/analytics/analytics__custom-plugin.js +12 -52
  9. package/components/analytics/analytics__fus-plugin.d.ts +15 -25
  10. package/components/analytics/analytics__fus-plugin.js +15 -73
  11. package/components/analytics/analytics__ga-plugin.d.ts +13 -3
  12. package/components/analytics/analytics__ga-plugin.js +35 -5
  13. package/components/analytics/analytics__plugin-utils.d.ts +16 -0
  14. package/components/analytics/analytics__plugin-utils.js +26 -1
  15. package/components/auth/auth__core.d.ts +5 -4
  16. package/components/auth/auth__core.js +44 -27
  17. package/components/auth-dialog/auth-dialog.d.ts +2 -2
  18. package/components/auth-dialog/auth-dialog.js +3 -1
  19. package/components/auth-dialog-service/auth-dialog-service.js +4 -1
  20. package/components/avatar/avatar.d.ts +3 -3
  21. package/components/avatar/fallback-avatar.d.ts +2 -2
  22. package/components/avatar/fallback-avatar.js +2 -1
  23. package/components/avatar-editor-ng/avatar-editor-ng.css +1 -1
  24. package/components/badge/badge.d.ts +2 -2
  25. package/components/button/button.css +7 -7
  26. package/components/button/button.d.ts +3 -4
  27. package/components/button/button.js +0 -1
  28. package/components/button-group/button-group.css +2 -2
  29. package/components/button-group/button-group.d.ts +2 -2
  30. package/components/button-group/caption.d.ts +2 -2
  31. package/components/button-ng/button-ng.examples.js +2 -2
  32. package/components/button-ng/button-ng.js +1 -1
  33. package/components/button-set/button-set.d.ts +2 -2
  34. package/components/button-toolbar/button-toolbar.d.ts +2 -2
  35. package/components/checkbox/checkbox.css +2 -2
  36. package/components/checkbox/checkbox.d.ts +2 -2
  37. package/components/code/code.d.ts +1 -1
  38. package/components/confirm/confirm.d.ts +1 -1
  39. package/components/confirm/confirm.js +3 -3
  40. package/components/confirm-ng/confirm-ng.examples.js +1 -1
  41. package/components/confirm-service/confirm-service.js +2 -2
  42. package/components/content-layout/content-layout.d.ts +2 -2
  43. package/components/content-layout/sidebar.d.ts +2 -2
  44. package/components/contenteditable/contenteditable.d.ts +3 -3
  45. package/components/control-label/control-label.css +23 -0
  46. package/components/control-label/control-label.d.ts +11 -0
  47. package/components/control-label/control-label.js +22 -0
  48. package/components/data-list/data-list.css +2 -1
  49. package/components/data-list/data-list.d.ts +3 -3
  50. package/components/data-list/data-list.mock.d.ts +2 -2
  51. package/components/data-list/item.d.ts +3 -3
  52. package/components/data-list/title.d.ts +1 -1
  53. package/components/date-picker/consts.d.ts +5 -5
  54. package/components/date-picker/date-input.d.ts +3 -12
  55. package/components/date-picker/date-input.js +9 -15
  56. package/components/date-picker/date-picker.css +1 -1
  57. package/components/date-picker/date-picker.d.ts +8 -6
  58. package/components/date-picker/date-picker.js +9 -15
  59. package/components/date-picker/date-popup.d.ts +1 -1
  60. package/components/date-picker/date-popup.js +2 -1
  61. package/components/date-picker/day.d.ts +2 -2
  62. package/components/date-picker/month-names.d.ts +2 -2
  63. package/components/date-picker/month-names.js +2 -2
  64. package/components/date-picker/month-slider.d.ts +2 -2
  65. package/components/date-picker/month.d.ts +2 -2
  66. package/components/date-picker/months.d.ts +2 -2
  67. package/components/date-picker/months.js +46 -29
  68. package/components/date-picker/weekdays.d.ts +2 -2
  69. package/components/date-picker/years.d.ts +6 -2
  70. package/components/date-picker/years.js +26 -14
  71. package/components/dialog/dialog.css +1 -1
  72. package/components/dialog/dialog.d.ts +4 -16
  73. package/components/dialog/dialog.js +4 -2
  74. package/components/dialog-ng/dialog-ng.examples.js +1 -1
  75. package/components/dialog-ng/dialog-ng.js +4 -5
  76. package/components/dropdown/anchor.d.ts +1 -1
  77. package/components/dropdown/dropdown.d.ts +8 -1
  78. package/components/editable-heading/editable-heading.css +20 -7
  79. package/components/editable-heading/editable-heading.d.ts +2 -2
  80. package/components/editable-heading/editable-heading.js +39 -12
  81. package/components/error-bubble/error-bubble.d.ts +2 -2
  82. package/components/error-message/error-message.d.ts +2 -2
  83. package/components/footer/footer.js +1 -0
  84. package/components/form/form.examples.js +1 -0
  85. package/components/global/angular-component-factory.js +13 -7
  86. package/components/global/angular-component-factory.test.js +30 -10
  87. package/components/global/controls-height.d.ts +2 -0
  88. package/components/global/controls-height.js +8 -0
  89. package/components/global/create-stateful-context.d.ts +1 -1
  90. package/components/global/focus-sensor-hoc.d.ts +1 -0
  91. package/components/global/focus-sensor-hoc.js +5 -4
  92. package/components/global/react-dom-renderer.d.ts +4 -4
  93. package/components/global/react-dom-renderer.js +5 -5
  94. package/components/global/react-render-adapter.js +19 -31
  95. package/components/global/ring-angular-component.js +1 -3
  96. package/components/global/ring-angular-component.test.js +2 -1
  97. package/components/global/use-event-callback.d.ts +1 -0
  98. package/components/global/use-event-callback.js +14 -0
  99. package/components/global/variables_dark.css +2 -2
  100. package/components/grid/col.d.ts +2 -2
  101. package/components/grid/grid.d.ts +2 -2
  102. package/components/grid/row.d.ts +2 -2
  103. package/components/group/group.d.ts +2 -2
  104. package/components/header/header.d.ts +2 -2
  105. package/components/header/logo.d.ts +2 -2
  106. package/components/header/profile.d.ts +4 -2
  107. package/components/header/profile.js +15 -11
  108. package/components/header/services-link.d.ts +2 -2
  109. package/components/header/services.d.ts +2 -2
  110. package/components/header/smart-profile.d.ts +2 -2
  111. package/components/header/smart-services.d.ts +2 -2
  112. package/components/header/tray-icon.d.ts +2 -2
  113. package/components/header/tray.d.ts +2 -2
  114. package/components/heading/heading.css +8 -8
  115. package/components/http/http.d.ts +16 -6
  116. package/components/http/http.js +26 -0
  117. package/components/hub-source/hub-source__users-groups.d.ts +1 -1
  118. package/components/i18n/README.md +46 -0
  119. package/components/i18n/i18n-context.d.ts +13 -0
  120. package/components/i18n/i18n-context.js +14 -0
  121. package/components/i18n/i18n.d.ts +59 -0
  122. package/components/i18n/i18n.js +26 -0
  123. package/components/i18n/messages.json +53 -0
  124. package/components/icon/icon.d.ts +3 -3
  125. package/components/icon/icon__svg.d.ts +1 -1
  126. package/components/input/input-legacy.css +3 -3
  127. package/components/input/input.css +8 -21
  128. package/components/input/input.d.ts +7 -1
  129. package/components/input/input.js +18 -14
  130. package/components/input-ng/input-ng.examples.js +3 -1
  131. package/components/input-ng/input-ng.js +3 -2
  132. package/components/input-size/input-size.examples.js +1 -0
  133. package/components/island/adaptive-island-hoc.d.ts +2 -2
  134. package/components/island/content.d.ts +1 -1
  135. package/components/island/header.d.ts +2 -2
  136. package/components/island/island.css +1 -1
  137. package/components/island/island.d.ts +3 -3
  138. package/components/island-legacy/content-legacy.d.ts +2 -2
  139. package/components/island-legacy/header-legacy.d.ts +2 -2
  140. package/components/island-legacy/island-legacy.d.ts +2 -2
  141. package/components/island-ng/island-ng.js +3 -3
  142. package/components/link/clickableLink.d.ts +1 -1
  143. package/components/link/link.css +1 -1
  144. package/components/link/link.d.ts +8 -9
  145. package/components/link/link.js +0 -1
  146. package/components/list/consts.js +3 -0
  147. package/components/list/list.css +2 -2
  148. package/components/list/list.d.ts +7 -7
  149. package/components/list/list.js +4 -1
  150. package/components/list/list__custom.d.ts +1 -1
  151. package/components/list/list__hint.d.ts +2 -2
  152. package/components/list/list__item.d.ts +2 -2
  153. package/components/list/list__link.d.ts +2 -2
  154. package/components/list/list__separator.d.ts +2 -2
  155. package/components/list/list__title.d.ts +2 -2
  156. package/components/loader/loader.d.ts +2 -2
  157. package/components/loader-inline/loader-inline.d.ts +2 -2
  158. package/components/loader-ng/loader-ng.js +1 -1
  159. package/components/loader-screen/loader-screen.d.ts +2 -2
  160. package/components/login-dialog/login-dialog.d.ts +2 -2
  161. package/components/login-dialog/service.js +4 -1
  162. package/components/markdown/code.d.ts +2 -2
  163. package/components/markdown/heading.d.ts +2 -2
  164. package/components/markdown/link.d.ts +2 -2
  165. package/components/markdown/markdown.d.ts +2 -2
  166. package/components/message/message.d.ts +3 -7
  167. package/components/message/message.js +17 -16
  168. package/components/pager/pager.d.ts +8 -13
  169. package/components/pager/pager.js +12 -14
  170. package/components/panel/panel.css +1 -1
  171. package/components/panel/panel.d.ts +2 -2
  172. package/components/popup/popup.d.ts +2 -2
  173. package/components/popup/popup.js +1 -1
  174. package/components/popup/position.d.ts +1 -1
  175. package/components/popup/position.js +43 -33
  176. package/components/popup-menu/popup-menu.d.ts +2 -2
  177. package/components/progress-bar/progress-bar.d.ts +2 -2
  178. package/components/promised-click-ng/promised-click-ng.js +1 -1
  179. package/components/query-assist/query-assist.css +16 -11
  180. package/components/query-assist/query-assist.d.ts +3 -7
  181. package/components/query-assist/query-assist.js +50 -31
  182. package/components/query-assist/query-assist__suggestions.d.ts +2 -2
  183. package/components/radio/radio.css +1 -1
  184. package/components/radio/radio.d.ts +1 -1
  185. package/components/radio/radio__item.d.ts +1 -1
  186. package/components/select/select-popup.css +2 -2
  187. package/components/select/select.css +9 -5
  188. package/components/select/select.d.ts +20 -9
  189. package/components/select/select.js +47 -23
  190. package/components/select/select__filter.d.ts +2 -3
  191. package/components/select/select__filter.js +4 -2
  192. package/components/select/select__popup.d.ts +48 -8
  193. package/components/select/select__popup.js +29 -8
  194. package/components/shortcuts/shortcuts-hoc.d.ts +2 -2
  195. package/components/shortcuts/shortcuts.d.ts +1 -1
  196. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -2
  197. package/components/sidebar-ng/sidebar-ng.js +1 -2
  198. package/components/tab-trap/tab-trap.d.ts +1 -1
  199. package/components/table/cell.d.ts +2 -2
  200. package/components/table/disable-hover-hoc.d.ts +2 -2
  201. package/components/table/header-cell.d.ts +2 -2
  202. package/components/table/header.d.ts +3 -14
  203. package/components/table/header.js +5 -49
  204. package/components/table/multitable.d.ts +2 -2
  205. package/components/table/row-with-focus-sensor.d.ts +1 -1
  206. package/components/table/row.d.ts +2 -1
  207. package/components/table/row.js +4 -3
  208. package/components/table/smart-table.d.ts +3 -1
  209. package/components/table/table.css +9 -26
  210. package/components/table/table.d.ts +6 -4
  211. package/components/table/table.js +5 -3
  212. package/components/tabs/collapsible-more.d.ts +3 -3
  213. package/components/tabs/collapsible-tab.d.ts +1 -1
  214. package/components/tabs/collapsible-tabs.d.ts +2 -2
  215. package/components/tabs/dumb-tabs.d.ts +5 -3
  216. package/components/tabs/dumb-tabs.js +3 -2
  217. package/components/tabs/smart-tabs.d.ts +2 -2
  218. package/components/tabs/tab-link.d.ts +1 -1
  219. package/components/tabs/tab.d.ts +2 -2
  220. package/components/tabs/tab.js +3 -3
  221. package/components/tabs/tabs.css +4 -1
  222. package/components/tag/tag.css +3 -3
  223. package/components/tag/tag.d.ts +5 -5
  224. package/components/tags-input/tags-input.css +1 -1
  225. package/components/tags-input/tags-input.d.ts +9 -4
  226. package/components/tags-input/tags-input.js +7 -7
  227. package/components/tags-list/tags-list.d.ts +2 -2
  228. package/components/template-ng/template-ng.js +1 -2
  229. package/components/text/text.css +12 -0
  230. package/components/text/text.d.ts +8 -2
  231. package/components/text/text.js +12 -2
  232. package/components/toggle/toggle.css +1 -1
  233. package/components/toggle/toggle.d.ts +2 -2
  234. package/components/tooltip/tooltip.d.ts +1 -1
  235. package/components/user-agreement/service.js +4 -1
  236. package/components/user-agreement/user-agreement.d.ts +3 -11
  237. package/components/user-agreement/user-agreement.js +31 -30
  238. package/components/user-card/card.d.ts +22 -21
  239. package/components/user-card/card.js +29 -29
  240. package/components/user-card/smart-user-card-tooltip.d.ts +3 -3
  241. package/components/user-card/tooltip.d.ts +11 -6
  242. package/components/user-card/tooltip.js +1 -1
  243. package/components/user-card/user-card.css +10 -1
  244. package/dist/_helpers/_rollupPluginBabelHelpers.js +614 -1
  245. package/dist/_helpers/anchor.js +7 -8
  246. package/dist/_helpers/badge.js +1 -1
  247. package/dist/_helpers/button-group.js +1 -1
  248. package/dist/_helpers/button-set.js +1 -1
  249. package/dist/_helpers/button-toolbar.js +1 -1
  250. package/dist/_helpers/button__classes.js +17 -29
  251. package/dist/_helpers/card.js +100 -91
  252. package/dist/_helpers/checkbox.js +1 -1
  253. package/dist/_helpers/control-label.js +3 -0
  254. package/dist/_helpers/date-picker.js +1 -1
  255. package/dist/_helpers/dialog__body-scroll-preventer.js +21 -12
  256. package/dist/_helpers/error-message.js +1 -1
  257. package/dist/_helpers/footer.js +31 -35
  258. package/dist/_helpers/grid.js +1 -1
  259. package/dist/_helpers/group.js +1 -1
  260. package/dist/_helpers/header.js +1 -1
  261. package/dist/_helpers/icon.js +1 -1
  262. package/dist/_helpers/input.js +1 -1
  263. package/dist/_helpers/island.js +1 -1
  264. package/dist/_helpers/link.js +1 -1
  265. package/dist/_helpers/list.js +1 -1
  266. package/dist/_helpers/loader-inline.js +1 -1
  267. package/dist/_helpers/loader-screen.js +1 -1
  268. package/dist/_helpers/panel.js +1 -1
  269. package/dist/_helpers/query-assist__suggestions.js +92 -75
  270. package/dist/_helpers/radio.js +1 -1
  271. package/dist/_helpers/select__filter.js +69 -42
  272. package/dist/_helpers/services-link.js +33 -21
  273. package/dist/_helpers/sidebar.js +87 -86
  274. package/dist/_helpers/table.js +1 -1
  275. package/dist/_helpers/tabs.js +1 -1
  276. package/dist/_helpers/theme.js +43 -36
  277. package/dist/_helpers/title.js +66 -56
  278. package/dist/alert/alert.d.ts +1 -1
  279. package/dist/alert/alert.js +164 -127
  280. package/dist/alert/container.js +40 -29
  281. package/dist/alert-service/alert-service.d.ts +2 -2
  282. package/dist/alert-service/alert-service.js +169 -103
  283. package/dist/analytics/analytics.d.ts +21 -7
  284. package/dist/analytics/analytics.js +90 -71
  285. package/dist/analytics/analytics__custom-plugin.d.ts +6 -16
  286. package/dist/analytics/analytics__custom-plugin.js +74 -87
  287. package/dist/analytics/analytics__fus-plugin.d.ts +15 -25
  288. package/dist/analytics/analytics__fus-plugin.js +31 -89
  289. package/dist/analytics/analytics__ga-plugin.d.ts +13 -3
  290. package/dist/analytics/analytics__ga-plugin.js +76 -25
  291. package/dist/analytics/analytics__plugin-utils.d.ts +16 -0
  292. package/dist/analytics/analytics__plugin-utils.js +52 -21
  293. package/dist/auth/auth.js +39 -5
  294. package/dist/auth/auth__core.d.ts +5 -4
  295. package/dist/auth/auth__core.js +1459 -719
  296. package/dist/auth/background-flow.js +125 -84
  297. package/dist/auth/down-notification.js +76 -32
  298. package/dist/auth/iframe-flow.js +129 -69
  299. package/dist/auth/landing.js +93 -31
  300. package/dist/auth/request-builder.js +79 -45
  301. package/dist/auth/response-parser.js +117 -85
  302. package/dist/auth/storage.js +322 -161
  303. package/dist/auth/token-validator.js +239 -128
  304. package/dist/auth/window-flow.js +126 -83
  305. package/dist/auth-dialog/auth-dialog.d.ts +2 -2
  306. package/dist/auth-dialog/auth-dialog.js +152 -94
  307. package/dist/auth-dialog-service/auth-dialog-service.js +36 -10
  308. package/dist/auth-ng/auth-ng.js +73 -35
  309. package/dist/auth-ng/auth-ng.mock.js +6 -6
  310. package/dist/autofocus-ng/autofocus-ng.js +23 -8
  311. package/dist/avatar/avatar-example-datauri.js +1 -23
  312. package/dist/avatar/avatar.d.ts +3 -3
  313. package/dist/avatar/avatar.js +132 -99
  314. package/dist/avatar/fallback-avatar.d.ts +2 -2
  315. package/dist/avatar/fallback-avatar.js +44 -24
  316. package/dist/avatar-editor-ng/avatar-editor-ng.js +57 -25
  317. package/dist/avatar-editor-ng/avatar-editor-ng__template.js +1 -28
  318. package/dist/avatar-ng/avatar-ng.js +22 -0
  319. package/dist/badge/badge.d.ts +2 -2
  320. package/dist/badge/badge.js +34 -26
  321. package/dist/badge-ng/badge-ng.js +12 -0
  322. package/dist/breadcrumb-ng/breadcrumb-ng.js +17 -32
  323. package/dist/button/button.d.ts +3 -4
  324. package/dist/button/button.js +89 -69
  325. package/dist/button/button__classes.js +1 -0
  326. package/dist/button-group/button-group.d.ts +2 -2
  327. package/dist/button-group/button-group.js +31 -15
  328. package/dist/button-group/caption.d.ts +2 -2
  329. package/dist/button-group/caption.js +19 -11
  330. package/dist/button-group-ng/button-group-ng.js +13 -7
  331. package/dist/button-ng/button-ng.js +132 -112
  332. package/dist/button-set/button-set.d.ts +2 -2
  333. package/dist/button-set/button-set.js +29 -15
  334. package/dist/button-set-ng/button-set-ng.js +2 -2
  335. package/dist/button-toolbar/button-toolbar.d.ts +2 -2
  336. package/dist/button-toolbar/button-toolbar.js +28 -14
  337. package/dist/button-toolbar-ng/button-toolbar-ng.js +5 -3
  338. package/dist/caret/caret.js +223 -188
  339. package/dist/checkbox/checkbox.d.ts +2 -2
  340. package/dist/checkbox/checkbox.js +83 -58
  341. package/dist/checkbox-ng/checkbox-ng.js +18 -28
  342. package/dist/clipboard/clipboard-fallback.js +10 -10
  343. package/dist/clipboard/clipboard.js +131 -35
  344. package/dist/code/code.d.ts +1 -1
  345. package/dist/code/code.js +153 -81
  346. package/dist/compiler-ng/compiler-ng.js +18 -15
  347. package/dist/confirm/confirm.d.ts +1 -1
  348. package/dist/confirm/confirm.js +85 -47
  349. package/dist/confirm-ng/confirm-ng.js +34 -6
  350. package/dist/confirm-service/confirm-service.js +67 -44
  351. package/dist/content-layout/content-layout.d.ts +2 -2
  352. package/dist/content-layout/content-layout.js +53 -35
  353. package/dist/content-layout/sidebar.d.ts +2 -2
  354. package/dist/content-layout/sidebar.js +1 -0
  355. package/dist/contenteditable/contenteditable.d.ts +3 -3
  356. package/dist/contenteditable/contenteditable.js +54 -43
  357. package/dist/control-label/control-label.d.ts +11 -0
  358. package/dist/control-label/control-label.js +31 -0
  359. package/dist/data-list/data-list.d.ts +3 -3
  360. package/dist/data-list/data-list.js +164 -114
  361. package/dist/data-list/data-list.mock.d.ts +2 -2
  362. package/dist/data-list/data-list.mock.js +11 -3
  363. package/dist/data-list/item.d.ts +3 -3
  364. package/dist/data-list/item.js +140 -113
  365. package/dist/data-list/selection.js +139 -77
  366. package/dist/data-list/title.d.ts +1 -1
  367. package/dist/data-list/title.js +12 -0
  368. package/dist/data-list-ng/data-list-ng.js +30 -1
  369. package/dist/date-picker/consts.d.ts +5 -5
  370. package/dist/date-picker/consts.js +18 -15
  371. package/dist/date-picker/date-input.d.ts +3 -12
  372. package/dist/date-picker/date-input.js +131 -107
  373. package/dist/date-picker/date-picker.d.ts +8 -6
  374. package/dist/date-picker/date-picker.js +214 -160
  375. package/dist/date-picker/date-popup.d.ts +1 -1
  376. package/dist/date-picker/date-popup.js +340 -297
  377. package/dist/date-picker/day.d.ts +2 -2
  378. package/dist/date-picker/day.js +78 -68
  379. package/dist/date-picker/month-names.d.ts +2 -2
  380. package/dist/date-picker/month-names.js +59 -41
  381. package/dist/date-picker/month-slider.d.ts +2 -2
  382. package/dist/date-picker/month-slider.js +59 -40
  383. package/dist/date-picker/month.d.ts +2 -2
  384. package/dist/date-picker/month.js +21 -15
  385. package/dist/date-picker/months.d.ts +2 -2
  386. package/dist/date-picker/months.js +80 -56
  387. package/dist/date-picker/weekdays.d.ts +2 -2
  388. package/dist/date-picker/weekdays.js +18 -12
  389. package/dist/date-picker/years.d.ts +6 -2
  390. package/dist/date-picker/years.js +102 -66
  391. package/dist/dialog/dialog.d.ts +4 -16
  392. package/dist/dialog/dialog.js +148 -98
  393. package/dist/dialog/dialog__body-scroll-preventer.js +5 -0
  394. package/dist/dialog-ng/dialog-ng.js +404 -291
  395. package/dist/dialog-ng/dialog-ng__template.js +1 -70
  396. package/dist/docked-panel-ng/docked-panel-ng.js +33 -19
  397. package/dist/dropdown/anchor.d.ts +1 -1
  398. package/dist/dropdown/anchor.js +10 -1
  399. package/dist/dropdown/dropdown.d.ts +8 -1
  400. package/dist/dropdown/dropdown.js +158 -130
  401. package/dist/dropdown-menu/dropdown-menu.js +102 -73
  402. package/dist/editable-heading/editable-heading.d.ts +2 -2
  403. package/dist/editable-heading/editable-heading.js +133 -62
  404. package/dist/error-bubble/error-bubble.d.ts +2 -2
  405. package/dist/error-bubble/error-bubble.js +60 -27
  406. package/dist/error-message/error-message.d.ts +2 -2
  407. package/dist/error-message/error-message.js +52 -29
  408. package/dist/error-message-ng/error-message-ng.js +12 -24
  409. package/dist/footer/footer.js +11 -2
  410. package/dist/footer-ng/footer-ng.js +52 -27
  411. package/dist/form-ng/form-ng.js +67 -57
  412. package/dist/global/angular-component-factory.js +78 -50
  413. package/dist/global/compose.js +10 -1
  414. package/dist/global/composeRefs.js +12 -7
  415. package/dist/global/controls-height.d.ts +2 -0
  416. package/dist/global/controls-height.js +10 -2
  417. package/dist/global/create-stateful-context.d.ts +1 -1
  418. package/dist/global/create-stateful-context.js +19 -19
  419. package/dist/global/data-tests.js +15 -7
  420. package/dist/global/dom.js +93 -55
  421. package/dist/global/focus-sensor-hoc.d.ts +1 -0
  422. package/dist/global/focus-sensor-hoc.js +118 -102
  423. package/dist/global/fuzzy-highlight.js +41 -27
  424. package/dist/global/get-event-key.js +8 -8
  425. package/dist/global/get-uid.js +8 -4
  426. package/dist/global/inject-styles.js +15 -10
  427. package/dist/global/linear-function.js +2 -2
  428. package/dist/global/listeners.js +50 -28
  429. package/dist/global/memoize.js +13 -6
  430. package/dist/global/normalize-indent.js +51 -19
  431. package/dist/global/promise-with-timeout.js +8 -6
  432. package/dist/global/prop-types.js +5 -3
  433. package/dist/global/react-dom-renderer.d.ts +4 -4
  434. package/dist/global/react-dom-renderer.js +44 -28
  435. package/dist/global/react-render-adapter.js +21 -15
  436. package/dist/global/rerender-hoc.js +40 -19
  437. package/dist/global/ring-angular-component.js +18 -10
  438. package/dist/global/schedule-raf.js +6 -5
  439. package/dist/global/sniffer.js +1 -1
  440. package/dist/global/theme.js +24 -0
  441. package/dist/global/trivial-template-tag.js +10 -3
  442. package/dist/global/typescript-utils.js +6 -2
  443. package/dist/global/url.js +27 -21
  444. package/dist/global/use-event-callback.d.ts +1 -0
  445. package/dist/global/use-event-callback.js +17 -0
  446. package/dist/grid/col.d.ts +2 -2
  447. package/dist/grid/col.js +42 -23
  448. package/dist/grid/grid.d.ts +2 -2
  449. package/dist/grid/grid.js +32 -13
  450. package/dist/grid/row.d.ts +2 -2
  451. package/dist/grid/row.js +32 -20
  452. package/dist/group/group.d.ts +2 -2
  453. package/dist/group/group.js +23 -13
  454. package/dist/group-ng/group-ng.js +2 -2
  455. package/dist/header/header.d.ts +2 -2
  456. package/dist/header/header.js +75 -25
  457. package/dist/header/logo.d.ts +2 -2
  458. package/dist/header/logo.js +31 -12
  459. package/dist/header/profile.d.ts +4 -2
  460. package/dist/header/profile.js +154 -105
  461. package/dist/header/services-link.d.ts +2 -2
  462. package/dist/header/services-link.js +9 -1
  463. package/dist/header/services.d.ts +2 -2
  464. package/dist/header/services.js +104 -63
  465. package/dist/header/smart-profile.d.ts +2 -2
  466. package/dist/header/smart-profile.js +194 -98
  467. package/dist/header/smart-services.d.ts +2 -2
  468. package/dist/header/smart-services.js +104 -52
  469. package/dist/header/tray-icon.d.ts +2 -2
  470. package/dist/header/tray-icon.js +36 -20
  471. package/dist/header/tray.d.ts +2 -2
  472. package/dist/header/tray.js +30 -17
  473. package/dist/heading/heading.js +26 -27
  474. package/dist/heading-ng/heading-ng.js +10 -0
  475. package/dist/http/http.d.ts +16 -6
  476. package/dist/http/http.js +357 -170
  477. package/dist/http/http.mock.js +105 -50
  478. package/dist/hub-source/hub-source.js +183 -77
  479. package/dist/hub-source/hub-source__user.js +45 -12
  480. package/dist/hub-source/hub-source__users-groups.d.ts +1 -1
  481. package/dist/hub-source/hub-source__users-groups.js +63 -34
  482. package/dist/i18n/i18n-context.d.ts +13 -0
  483. package/dist/i18n/i18n-context.js +28 -0
  484. package/dist/i18n/i18n.d.ts +59 -0
  485. package/dist/i18n/i18n.js +140 -0
  486. package/dist/icon/icon.d.ts +3 -3
  487. package/dist/icon/icon.js +77 -59
  488. package/dist/icon/icon__svg.d.ts +1 -1
  489. package/dist/icon/icon__svg.js +31 -24
  490. package/dist/icon/index.js +9 -0
  491. package/dist/icon-ng/icon-ng.js +27 -16
  492. package/dist/input/input.d.ts +7 -1
  493. package/dist/input/input.js +178 -131
  494. package/dist/input-ng/input-ng.js +77 -99
  495. package/dist/island/adaptive-island-hoc.d.ts +2 -2
  496. package/dist/island/adaptive-island-hoc.js +38 -27
  497. package/dist/island/content.d.ts +1 -1
  498. package/dist/island/content.js +104 -92
  499. package/dist/island/header.d.ts +2 -2
  500. package/dist/island/header.js +60 -47
  501. package/dist/island/island.d.ts +3 -3
  502. package/dist/island/island.js +33 -21
  503. package/dist/island-legacy/content-legacy.d.ts +2 -2
  504. package/dist/island-legacy/content-legacy.js +23 -13
  505. package/dist/island-legacy/header-legacy.d.ts +2 -2
  506. package/dist/island-legacy/header-legacy.js +25 -15
  507. package/dist/island-legacy/island-legacy.d.ts +2 -2
  508. package/dist/island-legacy/island-legacy.js +23 -13
  509. package/dist/island-ng/island-content-ng.js +17 -26
  510. package/dist/island-ng/island-header-ng.js +9 -12
  511. package/dist/island-ng/island-ng-class-fixer.js +3 -0
  512. package/dist/island-ng/island-ng.js +6 -10
  513. package/dist/link/clickableLink.d.ts +1 -1
  514. package/dist/link/clickableLink.js +43 -29
  515. package/dist/link/link.d.ts +8 -9
  516. package/dist/link/link.js +72 -62
  517. package/dist/link-ng/link-ng.js +5 -7
  518. package/dist/list/consts.js +4 -1
  519. package/dist/list/list.d.ts +7 -7
  520. package/dist/list/list.js +499 -402
  521. package/dist/list/list__custom.d.ts +1 -1
  522. package/dist/list/list__custom.js +60 -47
  523. package/dist/list/list__hint.d.ts +2 -2
  524. package/dist/list/list__hint.js +18 -8
  525. package/dist/list/list__item.d.ts +2 -2
  526. package/dist/list/list__item.js +167 -132
  527. package/dist/list/list__link.d.ts +2 -2
  528. package/dist/list/list__link.js +54 -38
  529. package/dist/list/list__separator.d.ts +2 -2
  530. package/dist/list/list__separator.js +24 -14
  531. package/dist/list/list__title.d.ts +2 -2
  532. package/dist/list/list__title.js +32 -22
  533. package/dist/list/list__users-groups-source.js +130 -54
  534. package/dist/loader/loader.d.ts +2 -2
  535. package/dist/loader/loader.js +66 -34
  536. package/dist/loader/loader__core.js +197 -129
  537. package/dist/loader-inline/loader-inline.d.ts +2 -2
  538. package/dist/loader-inline/loader-inline.js +32 -18
  539. package/dist/loader-inline-ng/loader-inline-ng.js +2 -2
  540. package/dist/loader-ng/loader-ng.js +44 -18
  541. package/dist/loader-screen/loader-screen.d.ts +2 -2
  542. package/dist/loader-screen/loader-screen.js +43 -20
  543. package/dist/loader-screen-ng/loader-screen-ng.js +45 -30
  544. package/dist/login-dialog/login-dialog.d.ts +2 -2
  545. package/dist/login-dialog/login-dialog.js +125 -78
  546. package/dist/login-dialog/service.js +39 -10
  547. package/dist/markdown/code.d.ts +2 -2
  548. package/dist/markdown/code.js +30 -9
  549. package/dist/markdown/heading.d.ts +2 -2
  550. package/dist/markdown/heading.js +3 -5
  551. package/dist/markdown/link.d.ts +2 -2
  552. package/dist/markdown/link.js +13 -7
  553. package/dist/markdown/markdown.d.ts +2 -2
  554. package/dist/markdown/markdown.js +67 -35
  555. package/dist/message/message.d.ts +3 -7
  556. package/dist/message/message.js +153 -119
  557. package/dist/message-bundle-ng/message-bundle-ng.js +130 -46
  558. package/dist/old-browsers-message/old-browsers-message.js +19 -11
  559. package/dist/old-browsers-message/old-browsers-message__stop.js +8 -0
  560. package/dist/old-browsers-message/white-list.js +17 -10
  561. package/dist/pager/pager.d.ts +8 -13
  562. package/dist/pager/pager.js +259 -188
  563. package/dist/pager-ng/pager-ng.js +39 -2
  564. package/dist/panel/panel.d.ts +2 -2
  565. package/dist/panel/panel.js +23 -13
  566. package/dist/panel-ng/panel-ng.js +13 -1
  567. package/dist/permissions/permissions.js +166 -122
  568. package/dist/permissions/permissions__cache.js +220 -191
  569. package/dist/permissions-ng/permissions-ng.js +89 -36
  570. package/dist/place-under-ng/place-under-ng.js +67 -45
  571. package/dist/popup/popup.consts.js +1 -1
  572. package/dist/popup/popup.d.ts +2 -2
  573. package/dist/popup/popup.js +299 -236
  574. package/dist/popup/popup.target.js +8 -9
  575. package/dist/popup/position.d.ts +1 -1
  576. package/dist/popup/position.js +175 -154
  577. package/dist/popup-menu/popup-menu.d.ts +2 -2
  578. package/dist/popup-menu/popup-menu.js +80 -42
  579. package/dist/progress-bar/progress-bar.d.ts +2 -2
  580. package/dist/progress-bar/progress-bar.js +66 -52
  581. package/dist/progress-bar-ng/progress-bar-ng.js +10 -0
  582. package/dist/promised-click-ng/promised-click-ng.js +93 -60
  583. package/dist/proxy-attrs/proxy-attrs.js +18 -9
  584. package/dist/query-assist/query-assist.d.ts +3 -7
  585. package/dist/query-assist/query-assist.js +677 -567
  586. package/dist/query-assist/query-assist__suggestions.d.ts +2 -2
  587. package/dist/query-assist/query-assist__suggestions.js +33 -2
  588. package/dist/query-assist-ng/query-assist-ng.js +41 -2
  589. package/dist/radio/radio.d.ts +1 -1
  590. package/dist/radio/radio.js +28 -14
  591. package/dist/radio/radio__item.d.ts +1 -1
  592. package/dist/radio/radio__item.js +60 -44
  593. package/dist/radio-ng/radio-ng.js +14 -25
  594. package/dist/save-field-ng/save-field-ng.js +90 -56
  595. package/dist/save-field-ng/save-field-ng__template.js +1 -32
  596. package/dist/select/select.d.ts +20 -9
  597. package/dist/select/select.js +831 -699
  598. package/dist/select/select__filter.d.ts +2 -3
  599. package/dist/select/select__filter.js +37 -2
  600. package/dist/select/select__popup.d.ts +48 -8
  601. package/dist/select/select__popup.js +430 -293
  602. package/dist/select-ng/select-ng.js +130 -77
  603. package/dist/select-ng/select-ng__lazy.js +104 -51
  604. package/dist/select-ng/select-ng__options.js +93 -68
  605. package/dist/shortcuts/core.js +197 -146
  606. package/dist/shortcuts/shortcut-title.js +11 -6
  607. package/dist/shortcuts/shortcuts-hoc.d.ts +2 -2
  608. package/dist/shortcuts/shortcuts-hoc.js +43 -19
  609. package/dist/shortcuts/shortcuts.d.ts +1 -1
  610. package/dist/shortcuts/shortcuts.js +69 -43
  611. package/dist/shortcuts-hint-ng/shortcuts-hint-ng.js +109 -58
  612. package/dist/shortcuts-hint-ng/shortcuts-hint-ng__template.js +1 -48
  613. package/dist/shortcuts-ng/shortcuts-ng.js +110 -76
  614. package/dist/sidebar-ng/sidebar-ng.js +55 -25
  615. package/dist/sidebar-ng/sidebar-ng__button-template.js +1 -18
  616. package/dist/sidebar-ng/sidebar-ng__template.js +1 -10
  617. package/dist/storage/storage.js +34 -4
  618. package/dist/storage/storage__fallback.js +217 -143
  619. package/dist/storage/storage__local.js +155 -90
  620. package/dist/style.css +1 -1
  621. package/dist/tab-trap/tab-trap.d.ts +1 -1
  622. package/dist/tab-trap/tab-trap.js +117 -84
  623. package/dist/table/cell.d.ts +2 -2
  624. package/dist/table/cell.js +23 -9
  625. package/dist/table/disable-hover-hoc.d.ts +2 -2
  626. package/dist/table/disable-hover-hoc.js +44 -26
  627. package/dist/table/header-cell.d.ts +2 -2
  628. package/dist/table/header-cell.js +74 -54
  629. package/dist/table/header.d.ts +3 -14
  630. package/dist/table/header.js +102 -131
  631. package/dist/table/multitable.d.ts +2 -2
  632. package/dist/table/multitable.js +102 -86
  633. package/dist/table/row-with-focus-sensor.d.ts +1 -1
  634. package/dist/table/row-with-focus-sensor.js +69 -24
  635. package/dist/table/row.d.ts +2 -1
  636. package/dist/table/row.js +191 -155
  637. package/dist/table/selection-adapter.js +3 -1
  638. package/dist/table/selection-shortcuts-hoc.js +132 -131
  639. package/dist/table/selection.js +220 -150
  640. package/dist/table/smart-table.d.ts +3 -1
  641. package/dist/table/smart-table.js +87 -50
  642. package/dist/table/table.d.ts +6 -4
  643. package/dist/table/table.js +311 -247
  644. package/dist/table-legacy-ng/table-legacy-ng.js +120 -103
  645. package/dist/table-legacy-ng/table-legacy-ng__pager.js +46 -12
  646. package/dist/table-legacy-ng/table-legacy-ng__selection-navigate-actions.js +92 -69
  647. package/dist/table-legacy-ng/table-legacy-ng__selection.js +167 -119
  648. package/dist/table-legacy-ng/table-legacy-ng__toolbar.js +35 -21
  649. package/dist/table-ng/smart-table-ng.js +30 -2
  650. package/dist/table-ng/table-ng.js +30 -2
  651. package/dist/tabs/collapsible-more.d.ts +3 -3
  652. package/dist/tabs/collapsible-more.js +92 -56
  653. package/dist/tabs/collapsible-tab.d.ts +1 -1
  654. package/dist/tabs/collapsible-tab.js +45 -39
  655. package/dist/tabs/collapsible-tabs.d.ts +2 -2
  656. package/dist/tabs/collapsible-tabs.js +161 -95
  657. package/dist/tabs/custom-item.js +2 -4
  658. package/dist/tabs/dumb-tabs.d.ts +5 -3
  659. package/dist/tabs/dumb-tabs.js +101 -56
  660. package/dist/tabs/smart-tabs.d.ts +2 -2
  661. package/dist/tabs/smart-tabs.js +70 -25
  662. package/dist/tabs/tab-link.d.ts +1 -1
  663. package/dist/tabs/tab-link.js +29 -20
  664. package/dist/tabs/tab.d.ts +2 -2
  665. package/dist/tabs/tab.js +26 -15
  666. package/dist/tabs/tabs.js +35 -1
  667. package/dist/tabs-ng/tabs-ng.js +38 -24
  668. package/dist/tabs-ng/tabs-ng__template.js +1 -38
  669. package/dist/tag/tag.d.ts +5 -5
  670. package/dist/tag/tag.js +146 -113
  671. package/dist/tags-input/tags-input.d.ts +9 -4
  672. package/dist/tags-input/tags-input.js +327 -220
  673. package/dist/tags-input-ng/tags-input-ng.js +40 -2
  674. package/dist/tags-list/tags-list.d.ts +2 -2
  675. package/dist/tags-list/tags-list.js +61 -38
  676. package/dist/template-ng/template-ng.js +45 -35
  677. package/dist/text/text.d.ts +8 -2
  678. package/dist/text/text.js +38 -17
  679. package/dist/title-ng/title-ng.js +28 -23
  680. package/dist/toggle/toggle.d.ts +2 -2
  681. package/dist/toggle/toggle.js +55 -39
  682. package/dist/toggle-ng/toggle-ng.js +13 -0
  683. package/dist/tooltip/tooltip.d.ts +1 -1
  684. package/dist/tooltip/tooltip.js +145 -102
  685. package/dist/tooltip-ng/tooltip-ng.js +51 -25
  686. package/dist/user-agreement/service.js +411 -259
  687. package/dist/user-agreement/toolbox.eula.js +1 -160
  688. package/dist/user-agreement/user-agreement.d.ts +3 -11
  689. package/dist/user-agreement/user-agreement.js +106 -68
  690. package/dist/user-card/card.d.ts +22 -21
  691. package/dist/user-card/card.js +34 -1
  692. package/dist/user-card/smart-user-card-tooltip.d.ts +3 -3
  693. package/dist/user-card/smart-user-card-tooltip.js +139 -76
  694. package/dist/user-card/tooltip.d.ts +11 -6
  695. package/dist/user-card/tooltip.js +75 -32
  696. package/dist/user-card/user-card.js +34 -1
  697. package/dist/user-card-ng/user-card-ng.js +39 -6
  698. package/package.json +86 -82
  699. package/components/input/input-label.d.ts +0 -10
  700. package/components/input/input-label.js +0 -18
  701. package/dist/input/input-label.d.ts +0 -10
  702. package/dist/input/input-label.js +0 -27
@@ -21,8 +21,6 @@ import buttonTemplate from './sidebar-ng__button-template';
21
21
  const angularModule = angular.module('Ring.sidebar', [PlaceUnder, IconNG, ButtonNG]);
22
22
 
23
23
  class SidebarController extends RingAngularComponent {
24
- static $inject = ['$scope'];
25
-
26
24
  constructor(...args) {
27
25
  super(...args);
28
26
 
@@ -49,6 +47,7 @@ class SidebarController extends RingAngularComponent {
49
47
  };
50
48
  }
51
49
  }
50
+ SidebarController.$inject = ['$scope'];
52
51
 
53
52
  function rgSidebarDirective() {
54
53
  return {
@@ -39,5 +39,5 @@ export default class TabTrap extends Component<TabTrapProps> {
39
39
  handleBlurIfWithoutFocus: (event: React.FocusEvent) => void;
40
40
  trapButtonNode?: HTMLElement | null;
41
41
  trapButtonRef: (node: HTMLElement | null) => void;
42
- render(): JSX.Element;
42
+ render(): React.JSX.Element;
43
43
  }
@@ -1,4 +1,4 @@
1
- import { PureComponent, TdHTMLAttributes } from 'react';
1
+ import React, { PureComponent, TdHTMLAttributes } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface CellProps extends TdHTMLAttributes<HTMLTableDataCellElement> {
4
4
  'data-test'?: string | null | undefined;
@@ -9,5 +9,5 @@ export default class Cell extends PureComponent<CellProps> {
9
9
  className: PropTypes.Requireable<string>;
10
10
  'data-test': PropTypes.Requireable<string>;
11
11
  };
12
- render(): JSX.Element;
12
+ render(): React.JSX.Element;
13
13
  }
@@ -12,7 +12,7 @@ export default function disableHoverHOC<P extends DisableHoverAddProps>(Composed
12
12
  componentWillUnmount(): void;
13
13
  onMouseMove: () => void;
14
14
  onKeyDown: (e: KeyboardEvent) => void;
15
- render(): JSX.Element;
15
+ render(): React.JSX.Element;
16
16
  context: unknown;
17
17
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<DisableHoverProps<P>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
18
18
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -39,7 +39,7 @@ export default function disableHoverHOC<P extends DisableHoverAddProps>(Composed
39
39
  componentWillUnmount(): void;
40
40
  onMouseMove: () => void;
41
41
  onKeyDown: (e: KeyboardEvent) => void;
42
- render(): JSX.Element;
42
+ render(): React.JSX.Element;
43
43
  context: unknown;
44
44
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<DisableHoverProps<P>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
45
45
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -1,4 +1,4 @@
1
- import { PureComponent, ReactNode, SyntheticEvent, ThHTMLAttributes } from 'react';
1
+ import React, { PureComponent, ReactNode, SyntheticEvent, ThHTMLAttributes } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface Column<T = never> {
4
4
  id: string;
@@ -39,5 +39,5 @@ export default class HeaderCell extends PureComponent<HeaderCellProps> {
39
39
  sorted?: boolean;
40
40
  onClick: () => void;
41
41
  onChildrenClick(e: SyntheticEvent): void;
42
- render(): JSX.Element;
42
+ render(): React.JSX.Element;
43
43
  }
@@ -1,6 +1,5 @@
1
- import { ChangeEventHandler, PureComponent, ReactNode, SyntheticEvent } from 'react';
1
+ import React, { ChangeEventHandler, PureComponent, ReactNode, SyntheticEvent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
- import { Waypoint } from 'react-waypoint';
4
3
  import { Column, SortParams } from './header-cell';
5
4
  export interface HeaderProps {
6
5
  columns: readonly Column[];
@@ -49,19 +48,9 @@ export default class Header extends PureComponent<HeaderProps> {
49
48
  sortKey: string;
50
49
  sortOrder: boolean;
51
50
  };
52
- state: {
53
- fixed: boolean;
54
- headerWidth: undefined;
55
- widths: never[];
56
- };
57
51
  id: string;
58
52
  onCheckboxFocus: (event: SyntheticEvent<HTMLElement>) => void;
59
- private _columnsRowNode?;
60
- storeColumnsRowNode: (node: HTMLElement | null) => void;
61
- onScrollIn: () => void;
62
- onScrollOut: ({ currentPosition }: Waypoint.CallbackArgs) => void;
63
- calculateColumnsWidths(columnsRowNode: HTMLElement | null | undefined): void;
64
- createCells(widths?: never[]): JSX.Element[];
65
- render(): JSX.Element;
53
+ createCells(widths?: never[]): React.JSX.Element[];
54
+ render(): React.JSX.Element;
66
55
  }
67
56
  export type HeaderAttrs = JSX.LibraryManagedAttributes<typeof Header, HeaderProps>;
@@ -1,7 +1,6 @@
1
1
  import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
- import { Waypoint } from 'react-waypoint';
5
4
  import Checkbox from '../checkbox/checkbox';
6
5
  import getUID from '../global/get-uid';
7
6
  import style from './table.css';
@@ -32,39 +31,10 @@ export default class Header extends PureComponent {
32
31
  sortKey: 'id',
33
32
  sortOrder: true
34
33
  };
35
- state = {
36
- fixed: false,
37
- headerWidth: undefined,
38
- widths: []
39
- };
40
34
  id = getUID('table-header-');
41
35
  onCheckboxFocus = (event) => {
42
36
  event.currentTarget.blur();
43
37
  };
44
- _columnsRowNode;
45
- storeColumnsRowNode = (node) => {
46
- if (node) {
47
- this._columnsRowNode = node;
48
- this.calculateColumnsWidths(node);
49
- }
50
- };
51
- onScrollIn = () => {
52
- this.calculateColumnsWidths(this._columnsRowNode);
53
- this.setState({ fixed: false });
54
- };
55
- onScrollOut = ({ currentPosition }) => {
56
- if (currentPosition !== 'above') {
57
- return;
58
- }
59
- this.calculateColumnsWidths(this._columnsRowNode);
60
- this.setState({ fixed: true });
61
- };
62
- calculateColumnsWidths(columnsRowNode) {
63
- this.setState({
64
- headerWidth: columnsRowNode?.clientWidth,
65
- widths: [...columnsRowNode?.childNodes ?? []].map(column => (column instanceof Element ? column.clientWidth : 0))
66
- });
67
- }
68
38
  createCells(widths = []) {
69
39
  const { selectable, draggable, columns, checked, checkboxDisabled, onCheckboxChange, onSort, sortKey, sortOrder } = this.props;
70
40
  const metaColumnClasses = classNames(style.metaColumn, style.headerMetaColumn);
@@ -82,30 +52,16 @@ export default class Header extends PureComponent {
82
52
  }
83
53
  render() {
84
54
  const { caption, sticky, topStickOffset } = this.props;
85
- const { fixed, widths, headerWidth } = this.state;
86
55
  const regularCells = this.createCells();
87
- const waypointChild = (<tr data-test="ring-table-header-row">
88
- {/*Since we need to keep the exact amount of columns in each row, we need to present them even being empty*/}
89
- {/*regularCells doesn't provide any other information than a list of components. Hence using array indexes as keys looks like a sane idea*/}
90
- {/*eslint-disable-next-line react/no-array-index-key*/}
91
- {regularCells.map((c, i) => <td key={i}/>)}
92
- </tr>);
93
- return (<thead id={this.id} data-test="ring-table-header" className={style.tableHead}>
56
+ return (<thead id={this.id} data-test="ring-table-header" style={{ top: topStickOffset }} className={classNames({
57
+ [style.tableHead]: true,
58
+ [style.subHeaderSticky]: sticky
59
+ })}>
94
60
  {caption && (<tr data-test="ring-table-header-row">
95
61
  <th className={classNames(style.headerCell, style.caption)} colSpan={regularCells.length + 1} data-test="ring-table-header-cell">{caption}</th>
96
62
  </tr>)}
97
63
 
98
- {sticky &&
99
- (<Waypoint topOffset={topStickOffset} onEnter={this.onScrollIn} onLeave={this.onScrollOut}>
100
- {waypointChild}
101
- </Waypoint>)}
102
-
103
- <tr className={style.subHeader} ref={this.storeColumnsRowNode} data-test="ring-table-header-row">{regularCells}</tr>
104
-
105
- {fixed && sticky &&
106
- (<tr className={style.subHeaderFixed} style={{ width: headerWidth, top: topStickOffset }} data-test="ring-table-header-row">
107
- {this.createCells(widths)}
108
- </tr>)}
64
+ <tr className={style.subHeader} data-test="ring-table-header-row">{regularCells}</tr>
109
65
  </thead>);
110
66
  }
111
67
  }
@@ -1,4 +1,4 @@
1
- import { PureComponent, ReactElement } from 'react';
1
+ import React, { PureComponent, ReactElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { TableAttrs } from './table';
4
4
  import { SelectionItem } from './selection';
@@ -21,5 +21,5 @@ export default class MultiTable extends PureComponent<MultiTableProps> {
21
21
  'command+a': () => boolean;
22
22
  'ctrl+a': () => boolean;
23
23
  };
24
- render(): JSX.Element;
24
+ render(): React.JSX.Element;
25
25
  }
@@ -14,5 +14,5 @@ export default class RowWithFocusSensorCallbacks<T extends SelectionItem> extend
14
14
  onSelect: (item: T, selected: boolean) => void;
15
15
  onCollapse: () => void;
16
16
  onExpand: () => void;
17
- render(): JSX.Element;
17
+ render(): React.JSX.Element;
18
18
  }
@@ -25,6 +25,7 @@ export interface RowProps<T extends SelectionItem> extends Omit<HTMLAttributes<H
25
25
  checkboxTooltip?: string | undefined;
26
26
  autofocus?: boolean | null | undefined;
27
27
  'data-test'?: string | null | undefined;
28
+ metaColumnClassName?: string | null | undefined;
28
29
  }
29
30
  export default class Row<T extends SelectionItem> extends PureComponent<RowProps<T>> {
30
31
  static defaultProps: {
@@ -53,6 +54,6 @@ export default class Row<T extends SelectionItem> extends PureComponent<RowProps
53
54
  onDoubleClick: () => void;
54
55
  row?: HTMLElement | null;
55
56
  rowRef: (el: HTMLElement | null) => void;
56
- render(): JSX.Element;
57
+ render(): React.JSX.Element;
57
58
  }
58
59
  export type RowAttrs<T extends SelectionItem> = JSX.LibraryManagedAttributes<typeof Row, RowProps<T>>;
@@ -73,7 +73,7 @@ export default class Row extends PureComponent {
73
73
  this.row = el;
74
74
  };
75
75
  render() {
76
- const { item, columns, selectable, selected, showFocus, draggable, alwaysShowDragHandle, dragHandleTitle, level, collapsible, parentCollapsible, collapsed, onCollapse, onExpand, showDisabledSelection, onSelect, checkboxTooltip, innerRef, focused, autofocus, onFocusReset, onFocusRestore, onHover, className, 'data-test': dataTest, ...restProps } = this.props;
76
+ const { item, columns, selectable, selected, showFocus, draggable, alwaysShowDragHandle, dragHandleTitle, level, collapsible, parentCollapsible, collapsed, onCollapse, onExpand, showDisabledSelection, onSelect, checkboxTooltip, innerRef, focused, autofocus, onFocusReset, onFocusRestore, onHover, className, metaColumnClassName, 'data-test': dataTest, ...restProps } = this.props;
77
77
  const classes = classNames(className, {
78
78
  [style.row]: true,
79
79
  [style.rowFocused]: showFocus,
@@ -83,7 +83,7 @@ export default class Row extends PureComponent {
83
83
  'data-test-focused': showFocus || undefined,
84
84
  'data-test-selected': selected || undefined
85
85
  };
86
- const metaColumnClasses = style.metaColumn;
86
+ const metaColumnClasses = classNames(metaColumnClassName, style.metaColumn);
87
87
  const SUBITEM_OFFSET = 30;
88
88
  const COLLAPSIBLE_PARENT_OFFSET = 20;
89
89
  const gap = level * SUBITEM_OFFSET + (parentCollapsible ? COLLAPSIBLE_PARENT_OFFSET : 0);
@@ -114,7 +114,7 @@ export default class Row extends PureComponent {
114
114
  const getDataTest = column.getDataTest || (() => column.id);
115
115
  const value = getValue(item, column);
116
116
  const cellClasses = classNames({ [style.cellRight]: column.rightAlign }, column.className);
117
- const showMetaColumn = draggable || selectable || showDisabledSelection || !!level;
117
+ const showMetaColumn = draggable || selectable || collapsible || showDisabledSelection || !!level;
118
118
  return (<Cell key={column.id} className={cellClasses} data-test={getDataTest(item, column)}>
119
119
  {index === 0 && (showMetaColumn) && metaColumn}
120
120
  {value}
@@ -125,6 +125,7 @@ export default class Row extends PureComponent {
125
125
  }
126
126
  Row.propTypes = {
127
127
  className: PropTypes.string,
128
+ metaColumnClassName: PropTypes.string,
128
129
  item: PropTypes.object.isRequired,
129
130
  columns: PropTypes.array.isRequired,
130
131
  selectable: PropTypes.bool,
@@ -20,6 +20,7 @@ declare class SmartTable<T extends SelectionItem> extends PureComponent<SmartTab
20
20
  isItemSelectable: PropTypes.Requireable<(...args: any[]) => any> | React.Validator<((item: SelectionItem) => boolean) | null | undefined>;
21
21
  innerRef?: React.Validator<React.Ref<HTMLTableRowElement> | undefined> | undefined;
22
22
  autofocus?: React.Validator<boolean | null | undefined> | undefined;
23
+ scrollOnTableFocus?: React.Validator<boolean | null | undefined> | undefined;
23
24
  disabledHover?: React.Validator<boolean> | undefined;
24
25
  remoteSelection?: React.Validator<boolean | null | undefined> | undefined;
25
26
  onSort?: React.Validator<((params: import("./header-cell").SortParams) => void) | null | undefined> | undefined;
@@ -32,6 +33,7 @@ declare class SmartTable<T extends SelectionItem> extends PureComponent<SmartTab
32
33
  stickyHeader?: React.Validator<boolean | null | undefined> | undefined;
33
34
  getItemLevel?: React.Validator<((item: SelectionItem) => number) | null | undefined> | undefined;
34
35
  getItemClassName?: React.Validator<((item: SelectionItem) => string | null | undefined) | null | undefined> | undefined;
36
+ getMetaColumnClassName?: React.Validator<((item: SelectionItem) => string | null | undefined) | null | undefined> | undefined;
35
37
  getItemDataTest?: React.Validator<((item: SelectionItem) => string | null | undefined) | null | undefined> | undefined;
36
38
  isItemCollapsible?: React.Validator<((item: SelectionItem) => boolean) | null | undefined> | undefined;
37
39
  isParentCollapsible?: React.Validator<((item: SelectionItem) => boolean) | null | undefined> | undefined;
@@ -57,6 +59,6 @@ declare class SmartTable<T extends SelectionItem> extends PureComponent<SmartTab
57
59
  };
58
60
  UNSAFE_componentWillReceiveProps(nextProps: SmartTableProps<T>): void;
59
61
  onSelect: (selection: Selection<T>) => void;
60
- render(): JSX.Element;
62
+ render(): React.JSX.Element;
61
63
  }
62
64
  export default SmartTable;
@@ -79,8 +79,6 @@
79
79
  padding-top: unit;
80
80
  padding-bottom: 6px;
81
81
 
82
- text-transform: capitalize;
83
-
84
82
  color: var(--ring-text-color);
85
83
  border-bottom: none;
86
84
 
@@ -101,34 +99,13 @@
101
99
  background-color: var(--ring-line-color);
102
100
  }
103
101
 
104
- .subHeaderFixed::after {
105
- position: absolute;
106
- top: 24px;
107
-
108
- height: 1px;
109
-
110
- content: "";
111
-
112
- background-color: var(--ring-line-color);
113
- }
114
-
115
- .subHeader::after {
116
- right: calc(unit * 4);
117
- left: calc(unit * 4);
118
- }
102
+ .subHeaderSticky {
103
+ position: sticky;
119
104
 
120
- .subHeaderFixed {
121
- position: fixed;
122
105
  z-index: var(--ring-fixed-z-index);
123
106
  top: 0;
124
107
 
125
- opacity: 0.9;
126
- background-color: var(--ring-content-background-color);
127
- }
128
-
129
- .subHeaderFixed::after {
130
- right: 0;
131
- left: 0;
108
+ background-color: rgba(var(--ring-content-background-components), 0.9);
132
109
  }
133
110
 
134
111
  .row {
@@ -271,6 +248,12 @@
271
248
  color: var(--ring-main-color);
272
249
  }
273
250
 
251
+ .draggingTable {
252
+ z-index: var(--ring-overlay-z-index);
253
+
254
+ border-spacing: 0;
255
+ }
256
+
274
257
  .tableMessage {
275
258
  padding: calc(var(--ring-unit) * 2) calc(var(--ring-unit) * 4);
276
259
 
@@ -29,6 +29,7 @@ export interface TableProps<T extends SelectionItem> extends FocusSensorAddProps
29
29
  stickyHeader: boolean;
30
30
  getItemLevel: (item: T) => number;
31
31
  getItemClassName: (item: T) => string | null | undefined;
32
+ getMetaColumnClassName: (item: T) => string | null | undefined;
32
33
  getItemDataTest: (item: T) => string | null | undefined;
33
34
  isItemCollapsible: (item: T) => boolean;
34
35
  isParentCollapsible: (item: T) => boolean;
@@ -63,6 +64,7 @@ export declare class Table<T extends SelectionItem> extends PureComponent<TableP
63
64
  stickyHeader: boolean;
64
65
  getItemLevel: () => number;
65
66
  getItemClassName: () => null;
67
+ getMetaColumnClassName: () => null;
66
68
  getItemDataTest: () => null;
67
69
  isItemCollapsible: () => boolean;
68
70
  isParentCollapsible: () => boolean;
@@ -89,7 +91,7 @@ export declare class Table<T extends SelectionItem> extends PureComponent<TableP
89
91
  onSortEnd: ({ oldIndex, newIndex }: OnChangeMeta) => void;
90
92
  onCheckboxChange: (e: SyntheticEvent<HTMLInputElement>) => void;
91
93
  restoreFocusWithoutScroll: () => void;
92
- render(): JSX.Element;
94
+ render(): React.JSX.Element;
93
95
  }
94
96
  export type TableAttrs<T extends SelectionItem> = DisableHoverProps<SelectionShortcutsProps<T, FocusSensorProps<TableProps<T>, HTMLTableRowElement, typeof Table>>>;
95
97
  export default class TableContainer<T extends SelectionItem> extends Component<TableAttrs<T>> {
@@ -103,7 +105,7 @@ export default class TableContainer<T extends SelectionItem> extends Component<T
103
105
  componentWillUnmount(): void;
104
106
  onMouseMove: () => void;
105
107
  onKeyDown: (e: KeyboardEvent) => void;
106
- render(): JSX.Element;
108
+ render(): React.JSX.Element;
107
109
  context: unknown;
108
110
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<DisableHoverProps<SelectionShortcutsProps<T, FocusSensorProps<TableProps<T>, HTMLTableRowElement, typeof Table>>>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
109
111
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -130,7 +132,7 @@ export default class TableContainer<T extends SelectionItem> extends Component<T
130
132
  componentWillUnmount(): void;
131
133
  onMouseMove: () => void;
132
134
  onKeyDown: (e: KeyboardEvent) => void;
133
- render(): JSX.Element;
135
+ render(): React.JSX.Element;
134
136
  context: unknown;
135
137
  setState<K extends never>(state: {} | ((prevState: Readonly<{}>, props: Readonly<DisableHoverProps<SelectionShortcutsProps<T, FocusSensorProps<TableProps<T>, HTMLTableRowElement, typeof Table>>>>) => {} | Pick<{}, K> | null) | Pick<{}, K> | null, callback?: (() => void) | undefined): void;
136
138
  forceUpdate(callback?: (() => void) | undefined): void;
@@ -153,5 +155,5 @@ export default class TableContainer<T extends SelectionItem> extends Component<T
153
155
  defaultProps: Partial<SelectionShortcutsProps<T, FocusSensorProps<TableProps<T>, HTMLTableRowElement, typeof Table>>> | undefined;
154
156
  contextType?: React.Context<any> | undefined;
155
157
  };
156
- render(): JSX.Element;
158
+ render(): React.JSX.Element;
157
159
  }
@@ -32,6 +32,7 @@ export class Table extends PureComponent {
32
32
  stickyHeader: true,
33
33
  getItemLevel: () => 0,
34
34
  getItemClassName: () => null,
35
+ getMetaColumnClassName: () => null,
35
36
  getItemDataTest: () => null,
36
37
  isItemCollapsible: () => false,
37
38
  isParentCollapsible: () => false,
@@ -106,7 +107,7 @@ export class Table extends PureComponent {
106
107
  window.scrollTo(scrollX, scrollY);
107
108
  };
108
109
  render() {
109
- const { data, selection, columns, caption, getItemKey, selectable, focused, isItemSelectable, getItemLevel, getItemClassName, getItemDataTest, draggable, alwaysShowDragHandle, dragHandleTitle, loading, onSort, sortKey, sortOrder, loaderClassName, stickyHeader, stickyHeaderOffset, isItemCollapsible, isParentCollapsible, isItemCollapsed, onItemCollapse, onItemExpand, isDisabledSelectionVisible, getCheckboxTooltip, onItemDoubleClick, onItemClick, renderEmpty } = this.props;
110
+ const { data, selection, columns, caption, getItemKey, selectable, focused, isItemSelectable, getItemLevel, getItemClassName, getMetaColumnClassName, getItemDataTest, draggable, alwaysShowDragHandle, dragHandleTitle, loading, onSort, sortKey, sortOrder, loaderClassName, stickyHeader, stickyHeaderOffset, isItemCollapsible, isParentCollapsible, isItemCollapsed, onItemCollapse, onItemExpand, isDisabledSelectionVisible, getCheckboxTooltip, onItemDoubleClick, onItemClick, renderEmpty } = this.props;
110
111
  // NOTE: Do not construct new object per render because it causes all rows rerendering
111
112
  const headerProps = {
112
113
  caption, selectable, draggable,
@@ -150,9 +151,9 @@ export class Table extends PureComponent {
150
151
  return null;
151
152
  }
152
153
  const { ref, ...restProps } = props;
153
- const row = (<Row innerRef={ref} key={getItemKey(value)} level={getItemLevel(value)} item={value} showFocus={selection.isFocused(value)} autofocus={selection.isFocused(value)} focused={selection.isFocused(value)} selectable={selectable && isItemSelectable(value)} selected={selectable && selection.isSelected(value)} onFocus={this.onRowFocus} onSelect={this.onRowSelect} onDoubleClick={onItemDoubleClick} onClick={onItemClick} collapsible={isItemCollapsible(value)} parentCollapsible={isParentCollapsible(value)} collapsed={isItemCollapsed(value)} onCollapse={onItemCollapse} onExpand={onItemExpand} showDisabledSelection={isDisabledSelectionVisible(value)} checkboxTooltip={getCheckboxTooltip(value)} className={classNames(getItemClassName(value), { [style.draggingRow]: isDragged })} draggable={draggable} alwaysShowDragHandle={alwaysShowDragHandle} dragHandleTitle={dragHandleTitle} columns={columns} data-test={getItemDataTest(value)} {...restProps}/>);
154
+ const row = (<Row innerRef={ref} key={getItemKey(value)} level={getItemLevel(value)} item={value} showFocus={selection.isFocused(value)} autofocus={selection.isFocused(value)} focused={selection.isFocused(value)} selectable={selectable && isItemSelectable(value)} selected={selectable && selection.isSelected(value)} onFocus={this.onRowFocus} onSelect={this.onRowSelect} onDoubleClick={onItemDoubleClick} onClick={onItemClick} collapsible={isItemCollapsible(value)} parentCollapsible={isParentCollapsible(value)} collapsed={isItemCollapsed(value)} onCollapse={onItemCollapse} onExpand={onItemExpand} showDisabledSelection={isDisabledSelectionVisible(value)} checkboxTooltip={getCheckboxTooltip(value)} className={classNames(getItemClassName(value), { [style.draggingRow]: isDragged })} metaColumnClassName={getMetaColumnClassName(value)} draggable={draggable} alwaysShowDragHandle={alwaysShowDragHandle} dragHandleTitle={dragHandleTitle} columns={columns} data-test={getItemDataTest(value)} {...restProps}/>);
154
155
  return isDragged
155
- ? (<table style={{ ...props.style, borderSpacing: 0 }}>
156
+ ? (<table style={{ ...props.style }} className={style.draggingTable}>
156
157
  <tbody>{row}</tbody>
157
158
  </table>)
158
159
  : row;
@@ -186,6 +187,7 @@ Table.propTypes = {
186
187
  loading: PropTypes.bool,
187
188
  getItemKey: PropTypes.func,
188
189
  getItemClassName: PropTypes.func,
190
+ getMetaColumnClassName: PropTypes.func,
189
191
  getItemDataTest: PropTypes.func,
190
192
  onSort: PropTypes.func,
191
193
  onReorder: PropTypes.func,
@@ -8,7 +8,7 @@ export interface FakeMoreButtonProps {
8
8
  moreActiveClassName?: string | null | undefined;
9
9
  }
10
10
  export declare const AnchorLink: {
11
- ({ hasActiveChildren, moreClassName, moreActiveClassName, ...restProps }: Omit<LinkProps, 'children'> & FakeMoreButtonProps): JSX.Element;
11
+ ({ hasActiveChildren, moreClassName, moreActiveClassName, ...restProps }: Omit<LinkProps, 'children'> & FakeMoreButtonProps): React.JSX.Element;
12
12
  propTypes: {
13
13
  hasActiveChildren: PropTypes.Requireable<boolean>;
14
14
  moreClassName: PropTypes.Requireable<string>;
@@ -25,5 +25,5 @@ export interface MoreButtonProps {
25
25
  morePopupItemClassName?: string | undefined;
26
26
  morePopupBeforeEnd: ReactNode;
27
27
  }
28
- export declare const MoreButton: React.MemoExoticComponent<({ items, selected, onSelect, moreClassName, moreActiveClassName, morePopupClassName, morePopupItemClassName, morePopupBeforeEnd }: MoreButtonProps) => JSX.Element | null>;
29
- export declare const FakeMoreButton: React.MemoExoticComponent<({ moreClassName, moreActiveClassName, hasActiveChildren }: FakeMoreButtonProps) => JSX.Element>;
28
+ export declare const MoreButton: React.MemoExoticComponent<({ items, selected, onSelect, moreClassName, moreActiveClassName, morePopupClassName, morePopupItemClassName, morePopupBeforeEnd }: MoreButtonProps) => React.JSX.Element | null>;
29
+ export declare const FakeMoreButton: React.MemoExoticComponent<({ moreClassName, moreActiveClassName, hasActiveChildren }: FakeMoreButtonProps) => React.JSX.Element>;
@@ -12,5 +12,5 @@ export interface TabTitlesParams extends Omit<Partial<TabTitleProps>, 'selected'
12
12
  selected?: string | undefined;
13
13
  onSelect?: ((key: string) => ((e: React.MouseEvent<HTMLAnchorElement>) => void) | undefined) | undefined;
14
14
  }
15
- declare const getTabTitles: ({ items, selected, collapsed, onSelect, ...props }: TabTitlesParams) => JSX.Element[];
15
+ declare const getTabTitles: ({ items, selected, collapsed, onSelect, ...props }: TabTitlesParams) => React.JSX.Element[];
16
16
  export default getTabTitles;
@@ -13,7 +13,7 @@ export interface CollapsibleTabsProps {
13
13
  morePopupBeforeEnd?: ReactNode;
14
14
  }
15
15
  export declare const CollapsibleTabs: {
16
- ({ children, selected, onSelect, moreClassName, moreActiveClassName, morePopupClassName, morePopupBeforeEnd, morePopupItemClassName, initialVisibleItems }: CollapsibleTabsProps): JSX.Element;
16
+ ({ children, selected, onSelect, moreClassName, moreActiveClassName, morePopupClassName, morePopupBeforeEnd, morePopupItemClassName, initialVisibleItems }: CollapsibleTabsProps): React.JSX.Element;
17
17
  propTypes: {
18
18
  children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
19
19
  selected: PropTypes.Requireable<string>;
@@ -27,7 +27,7 @@ export declare const CollapsibleTabs: {
27
27
  };
28
28
  };
29
29
  declare const _default: React.MemoExoticComponent<{
30
- ({ children, selected, onSelect, moreClassName, moreActiveClassName, morePopupClassName, morePopupBeforeEnd, morePopupItemClassName, initialVisibleItems }: CollapsibleTabsProps): JSX.Element;
30
+ ({ children, selected, onSelect, moreClassName, moreActiveClassName, morePopupClassName, morePopupBeforeEnd, morePopupItemClassName, initialVisibleItems }: CollapsibleTabsProps): React.JSX.Element;
31
31
  propTypes: {
32
32
  children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
33
33
  selected: PropTypes.Requireable<string>;
@@ -1,4 +1,4 @@
1
- import { PureComponent, ReactElement } from 'react';
1
+ import React, { PureComponent, ReactElement } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { CollapsibleTabsProps } from './collapsible-tabs';
4
4
  import { CustomItem } from './custom-item';
@@ -9,6 +9,7 @@ export interface TabsProps extends Omit<CollapsibleTabsProps, 'onSelect' | 'chil
9
9
  children: Children;
10
10
  onSelect: (key: string) => void;
11
11
  className?: string | null | undefined;
12
+ tabContainerClassName?: string | null | undefined;
12
13
  autoCollapse?: boolean | null | undefined;
13
14
  'data-test'?: string | null | undefined;
14
15
  }
@@ -16,6 +17,7 @@ declare class Tabs extends PureComponent<TabsProps> {
16
17
  static propTypes: {
17
18
  selected: PropTypes.Requireable<string>;
18
19
  className: PropTypes.Requireable<string>;
20
+ tabContainerClassName: PropTypes.Requireable<string>;
19
21
  href: PropTypes.Requireable<string>;
20
22
  children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
21
23
  onSelect: PropTypes.Requireable<(...args: any[]) => any>;
@@ -26,8 +28,8 @@ declare class Tabs extends PureComponent<TabsProps> {
26
28
  onSelect(): void;
27
29
  };
28
30
  handleSelect: (arg: string) => () => void;
29
- getTabTitle: (child: ReactElement<TabProps>, i: number) => JSX.Element;
30
- render(): JSX.Element;
31
+ getTabTitle: (child: ReactElement<TabProps>, i: number) => React.JSX.Element;
32
+ render(): React.JSX.Element;
31
33
  }
32
34
  export type TabsAttrs = JSX.LibraryManagedAttributes<typeof Tabs, TabsProps>;
33
35
  export default Tabs;
@@ -12,6 +12,7 @@ class Tabs extends PureComponent {
12
12
  static propTypes = {
13
13
  selected: PropTypes.string,
14
14
  className: PropTypes.string,
15
+ tabContainerClassName: PropTypes.string,
15
16
  href: PropTypes.string,
16
17
  children: PropTypes.node.isRequired,
17
18
  onSelect: PropTypes.func,
@@ -36,7 +37,7 @@ class Tabs extends PureComponent {
36
37
  return (<TabLink title={title} isSelected={isSelected} key={key} href={href} innerClassName={titleClasses} className={titleClasses} disabled={disabled} onPlainLeftClick={this.handleSelect(key)} {...titleProps}/>);
37
38
  };
38
39
  render() {
39
- const { className, children, selected, autoCollapse, 'data-test': dataTest, ...restProps } = this.props;
40
+ const { className, tabContainerClassName, children, selected, autoCollapse, 'data-test': dataTest, ...restProps } = this.props;
40
41
  const classes = classNames(styles.tabs, className);
41
42
  const childrenArray = React.Children.toArray(children).
42
43
  filter(Boolean);
@@ -46,7 +47,7 @@ class Tabs extends PureComponent {
46
47
  : (<div className={styles.titles}>
47
48
  {childrenArray.map(this.getTabTitle)}
48
49
  </div>)}
49
- <div className={styles.tab}>
50
+ <div className={classNames(tabContainerClassName)}>
50
51
  {childrenArray.find(({ props }, i) => (props.id || String(i)) === selected)}
51
52
  </div>
52
53
  </div>);
@@ -1,4 +1,4 @@
1
- import { PureComponent } from 'react';
1
+ import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { TabsAttrs, Children } from './dumb-tabs';
4
4
  export interface SmartTabsProps extends TabsAttrs {
@@ -16,5 +16,5 @@ export default class SmartTabs extends PureComponent<SmartTabsProps> {
16
16
  selected: string;
17
17
  };
18
18
  handleSelect: (selected: string) => void;
19
- render(): JSX.Element;
19
+ render(): React.JSX.Element;
20
20
  }
@@ -6,7 +6,7 @@ export interface TabLinkProps extends Omit<LinkProps, 'title' | 'children'> {
6
6
  collapsed?: boolean;
7
7
  title: ReactNode | ((isSelected: boolean, collapsed: boolean | undefined) => ReactNode);
8
8
  }
9
- declare function TabLink({ isSelected, title, collapsed, ...restProps }: TabLinkProps): JSX.Element;
9
+ declare function TabLink({ isSelected, title, collapsed, ...restProps }: TabLinkProps): React.JSX.Element;
10
10
  declare namespace TabLink {
11
11
  var propTypes: {
12
12
  isSelected: PropTypes.Requireable<boolean>;
@@ -1,4 +1,4 @@
1
- import { PureComponent, ReactNode } from 'react';
1
+ import React, { PureComponent, ReactNode } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import { TabLinkProps } from './tab-link';
4
4
  export interface TabProps {
@@ -23,5 +23,5 @@ export default class Tab extends PureComponent<TabProps> {
23
23
  children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
24
24
  'data-test': PropTypes.Requireable<string>;
25
25
  };
26
- render(): JSX.Element;
26
+ render(): React.JSX.Element;
27
27
  }
@@ -2,7 +2,6 @@ import React, { PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  import classNames from 'classnames';
4
4
  import dataTests from '../global/data-tests';
5
- import styles from './tabs.css';
6
5
  export default class Tab extends PureComponent {
7
6
  static propTypes = {
8
7
  title: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,
@@ -13,7 +12,8 @@ export default class Tab extends PureComponent {
13
12
  };
14
13
  render() {
15
14
  const { className, children, 'data-test': dataTest } = this.props;
16
- const classes = classNames(styles.tab, className);
17
- return (<div data-test={dataTests('ring-tab', dataTest)} className={classes}>{children}</div>);
15
+ return (<div data-test={dataTests('ring-tab', dataTest)} className={classNames(className)}>
16
+ {children}
17
+ </div>);
18
18
  }
19
19
  }
@@ -1,5 +1,8 @@
1
1
  @import "../global/variables.css";
2
2
 
3
+ /* ensure styles order */
4
+ @import "../link/link.css";
5
+
3
6
  @value dark from "../global/variables_dark.css";
4
7
  @value unit from "../global/global.css";
5
8
  @value line-shadow: inset 0 -1px 0 0;
@@ -63,7 +66,7 @@
63
66
  }
64
67
  }
65
68
 
66
- &:global(.focus-visible) {
69
+ &:focus-visible {
67
70
  color: var(--ring-main-color);
68
71
  box-shadow: selected-line-shadow var(--ring-main-color);
69
72
  }
@@ -54,7 +54,7 @@
54
54
  }
55
55
 
56
56
  .focused,
57
- .tag:global(.focus-visible) {
57
+ .tag:focus-visible {
58
58
  position: relative;
59
59
 
60
60
  outline: none;
@@ -63,8 +63,8 @@
63
63
 
64
64
  .focused,
65
65
  .focused.tagAngled::before,
66
- .tag:global(.focus-visible),
67
- .tagAngled:global(.focus-visible)::before,
66
+ .tag:focus-visible,
67
+ .tagAngled:focus-visible::before,
68
68
  .tag:hover,
69
69
  .tagAngled:hover::before {
70
70
  transition: none;