@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
@@ -136,12 +136,12 @@ export default class Popup<P extends BasePopupProps = PopupProps> extends PureCo
136
136
  * @private
137
137
  */
138
138
  private _onDocumentClick;
139
- getInternalContent(): JSX.Element | P["children"] | undefined;
139
+ getInternalContent(): React.JSX.Element | P["children"] | undefined;
140
140
  shortcutsScope: string;
141
141
  shortcutsMap: {
142
142
  esc: (evt: KeyboardEvent) => void;
143
143
  };
144
- render(): JSX.Element;
144
+ render(): React.JSX.Element;
145
145
  }
146
146
  export type PopupAttrs = JSX.LibraryManagedAttributes<typeof Popup, PopupProps>;
147
147
  export type BasePopupAttrs = JSX.LibraryManagedAttributes<typeof Popup, BasePopupProps>;
@@ -295,7 +295,7 @@ Popup.propTypes = {
295
295
  autoCorrectTopOverflow: PropTypes.bool,
296
296
  left: PropTypes.number,
297
297
  top: PropTypes.number,
298
- maxHeight: PropTypes.number,
298
+ maxHeight: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
299
299
  minWidth: PropTypes.number,
300
300
  sidePadding: PropTypes.number,
301
301
  attached: PropTypes.bool,
@@ -23,7 +23,7 @@ export interface PositionAttrs {
23
23
  autoCorrectTopOverflow: boolean;
24
24
  }
25
25
  export declare const positionPropKeys: readonly ["directions", "autoPositioning", "autoCorrectTopOverflow", "sidePadding", "top", "left", "offset", "maxHeight", "minWidth"];
26
- export declare function maxHeightForDirection(direction: Directions, anchorNode: Element, container?: Element): number;
26
+ export declare function maxHeightForDirection(direction: Directions, anchorNode: Element, containerNode?: Element | null): number | null;
27
27
  export default function position(attrs: PositionAttrs): {
28
28
  styles: PositionStyles;
29
29
  direction: Directions | null;
@@ -46,9 +46,7 @@ function verticalOverflow(styles, scrollingCoordinates, attrs) {
46
46
  const viewportMinX = scrollingCoordinates.top + attrs.sidePadding;
47
47
  const viewportMaxX = scrollingCoordinates.top + containerHeight - attrs.sidePadding;
48
48
  const topOverflow = Math.max(viewportMinX - styles.top, 0);
49
- const popupHeight = attrs.maxHeight && typeof attrs.maxHeight === 'number'
50
- ? Math.min(attrs.popup.scrollHeight, attrs.maxHeight)
51
- : attrs.popup.scrollHeight;
49
+ const popupHeight = attrs.popup.clientHeight;
52
50
  const verticalDiff = styles.top + popupHeight - viewportMaxX;
53
51
  const bottomOverflow = Math.max(verticalDiff, 0);
54
52
  return topOverflow + bottomOverflow;
@@ -78,26 +76,37 @@ const defaultcontainerRect = {
78
76
  top: 0,
79
77
  left: 0
80
78
  };
81
- export function maxHeightForDirection(direction, anchorNode, container = document.documentElement) {
82
- const MIN_POPUP_SIZE = 8;
83
- const domRect = anchorNode.getBoundingClientRect();
84
- let topMaxHeight;
85
- let bottomMaxHeight;
86
- if (container === document.documentElement) {
87
- topMaxHeight = Math.max(domRect.top, MIN_POPUP_SIZE);
88
- bottomMaxHeight = Math.max(getWindowHeight() - domRect.top - domRect.height, MIN_POPUP_SIZE);
79
+ function handleTopOffScreen({ sidePadding, styles, anchorRect, maxHeight, popupScrollHeight, direction, scroll }) {
80
+ const BORDER_COMPENSATION = 1;
81
+ const { TOP_LEFT, TOP_RIGHT, TOP_CENTER, RIGHT_TOP, LEFT_TOP } = Directions;
82
+ const openedToTop = direction != null && [TOP_LEFT, TOP_RIGHT, TOP_CENTER, RIGHT_TOP, LEFT_TOP].includes(direction);
83
+ if (!openedToTop) {
84
+ return styles;
89
85
  }
90
- else {
91
- const containerRect = container.getBoundingClientRect();
92
- topMaxHeight = Math.max(domRect.top - containerRect.top, 0);
93
- const containerHeight = Math.max(containerRect.height,
94
- // XXX
95
- // If container is the document element
96
- // then we check client height too because we may have situation when
97
- // "height" from "getBoundingClientRect" less than "clientHeight".
98
- container === document.documentElement ? container.clientHeight : 0);
99
- bottomMaxHeight = Math.max(containerHeight - (topMaxHeight + domRect.height), 0);
86
+ const isAttachedToAnchorTop = direction != null && [TOP_LEFT, TOP_CENTER, TOP_RIGHT].includes(direction);
87
+ const attachingPointY = (isAttachedToAnchorTop ? anchorRect.top : anchorRect.bottom);
88
+ const effectiveHeight = maxHeight && typeof maxHeight === 'number'
89
+ ? Math.min(popupScrollHeight, maxHeight)
90
+ : popupScrollHeight;
91
+ const hypotheticalTop = attachingPointY - effectiveHeight;
92
+ if (hypotheticalTop <= sidePadding) {
93
+ styles.top = sidePadding + scroll.top;
94
+ styles.maxHeight = attachingPointY - sidePadding + BORDER_COMPENSATION;
100
95
  }
96
+ return styles;
97
+ }
98
+ export function maxHeightForDirection(direction, anchorNode, containerNode) {
99
+ const container = containerNode || document.documentElement;
100
+ const domRect = anchorNode.getBoundingClientRect();
101
+ const containerRect = container.getBoundingClientRect();
102
+ const topMaxHeight = Math.max(domRect.top - containerRect.top, 0);
103
+ const containerHeight = Math.max(containerRect.height,
104
+ // XXX
105
+ // If container is the document element
106
+ // then we check client height too because we may have situation when
107
+ // "height" from "getBoundingClientRect" less then "clientHeight".
108
+ container === document.documentElement ? container.clientHeight : 0);
109
+ const bottomMaxHeight = Math.max(containerHeight - (topMaxHeight + domRect.height), 0);
101
110
  switch (direction) {
102
111
  case Directions.TOP_LEFT:
103
112
  case Directions.TOP_CENTER:
@@ -117,8 +126,7 @@ export function maxHeightForDirection(direction, anchorNode, container = documen
117
126
  case Directions.LEFT_CENTER:
118
127
  return (domRect.height / 2) + Math.min(bottomMaxHeight / 2, topMaxHeight / 2);
119
128
  default:
120
- const exhaustiveCheck = direction;
121
- throw new Error(exhaustiveCheck);
129
+ return null;
122
130
  }
123
131
  }
124
132
  export default function position(attrs) {
@@ -138,7 +146,7 @@ export default function position(attrs) {
138
146
  const overflowAttrs = { ...attrs, popup };
139
147
  const directionsMatrix = getPositionStyles(popup, anchorRect, anchorLeft, anchorTop, offset);
140
148
  if (!autoPositioning || directions.length === 1) {
141
- styles = { ...directionsMatrix[directions[0]] };
149
+ styles = directionsMatrix[directions[0]];
142
150
  chosenDirection = directions[0];
143
151
  }
144
152
  else {
@@ -153,7 +161,7 @@ export default function position(attrs) {
153
161
  horizontalOverflow(stylesB, scroll, overflowAttrs);
154
162
  return overflowA - overflowB;
155
163
  });
156
- styles = { ...sortedByIncreasingOverflow[0].styles };
164
+ styles = sortedByIncreasingOverflow[0].styles;
157
165
  chosenDirection = sortedByIncreasingOverflow[0].direction;
158
166
  }
159
167
  // because of the anchor negative margin top and left also may become negative
@@ -170,14 +178,16 @@ export default function position(attrs) {
170
178
  else if (maxHeight) {
171
179
  styles.maxHeight = maxHeight;
172
180
  }
173
- if (autoCorrectTopOverflow && chosenDirection && anchor) {
174
- const maxForDirection = maxHeightForDirection(chosenDirection, anchor) - sidePadding;
175
- if (!styles.maxHeight || styles.maxHeight > maxForDirection) {
176
- styles.maxHeight = maxForDirection;
177
- if (styles.top === 0) {
178
- styles.top = sidePadding;
179
- }
180
- }
181
+ if (autoCorrectTopOverflow) {
182
+ styles = handleTopOffScreen({
183
+ sidePadding,
184
+ styles,
185
+ anchorRect,
186
+ maxHeight,
187
+ direction: chosenDirection,
188
+ popupScrollHeight: popup?.scrollHeight ?? 0,
189
+ scroll
190
+ });
181
191
  }
182
192
  if (minWidth === MinWidth.TARGET || minWidth === 'target') {
183
193
  styles.minWidth = anchorRect.width;
@@ -1,4 +1,4 @@
1
- import { SyntheticEvent } from 'react';
1
+ import React, { SyntheticEvent } from 'react';
2
2
  import Popup, { BasePopupProps } from '../popup/popup';
3
3
  import List, { ListProps as ListPropsType } from '../list/list';
4
4
  import { ListDataItem } from '../list/consts';
@@ -51,7 +51,7 @@ export default class PopupMenu<T = unknown> extends Popup<PopupMenuProps<T>> {
51
51
  list?: List<T> | null;
52
52
  listRef: (el: List<T> | null) => void;
53
53
  /** @override */
54
- getInternalContent(): JSX.Element;
54
+ getInternalContent(): React.JSX.Element;
55
55
  }
56
56
  export type PopupMenuAttrs<T = unknown> = JSX.LibraryManagedAttributes<typeof PopupMenu, PopupMenuProps<T>>;
57
57
  export declare const ListProps: {
@@ -1,4 +1,4 @@
1
- import { HTMLAttributes, PureComponent } from 'react';
1
+ import React, { HTMLAttributes, PureComponent } from 'react';
2
2
  import PropTypes from 'prop-types';
3
3
  export interface ProgressBarProps extends HTMLAttributes<HTMLElement> {
4
4
  max: number;
@@ -53,6 +53,6 @@ export default class ProgressBar extends PureComponent<ProgressBarProps> {
53
53
  progressbarWrapperRef: (el: HTMLElement | null) => void;
54
54
  progressbar?: (HTMLElement | null);
55
55
  progressbarRef: (el: HTMLElement | null) => void;
56
- render(): JSX.Element;
56
+ render(): React.JSX.Element;
57
57
  }
58
58
  export type ProgressBarAttrs = JSX.LibraryManagedAttributes<typeof ProgressBar, ProgressBarProps>;
@@ -15,7 +15,6 @@ const angularModule = angular.module('Ring.promised-click', []);
15
15
  const DEFAULT_MODE = 'active';
16
16
 
17
17
  class PromisedClickController extends RingAngularComponent {
18
- static $inject = ['$scope', '$element', '$attrs', '$parse'];
19
18
  constructor(...args) {
20
19
  super(...args);
21
20
 
@@ -106,6 +105,7 @@ class PromisedClickController extends RingAngularComponent {
106
105
  this.promise.then(done, done);
107
106
  }
108
107
  }
108
+ PromisedClickController.$inject = ['$scope', '$element', '$attrs', '$parse'];
109
109
 
110
110
  function rgPromisedClickDirective() {
111
111
  return {
@@ -55,7 +55,7 @@
55
55
  }
56
56
  }
57
57
 
58
- @nest .error & {
58
+ .error & {
59
59
  border-color: var(--ring-icon-error-color);
60
60
  }
61
61
  }
@@ -77,7 +77,7 @@
77
77
  padding-right: var(--ring-input-padding-inline);
78
78
  }
79
79
 
80
- @nest [dir=rtl] & {
80
+ [dir="rtl"] & {
81
81
  padding: 0 var(--ring-input-padding-inline) 0 0;
82
82
 
83
83
  & .actions {
@@ -158,13 +158,17 @@
158
158
 
159
159
  color: var(--ring-disabled-color);
160
160
 
161
- @nest [dir=rtl] & {
161
+ [dir="rtl"] & {
162
162
  padding-right: calc(var(--ring-input-padding-inline) * 3 + var(--ring-input-padding-block) * 2);
163
163
 
164
164
  text-align: right;
165
165
  }
166
166
  }
167
167
 
168
+ .hugePlaceholder {
169
+ padding-left: 0;
170
+ }
171
+
168
172
  .letter {
169
173
  display: inline;
170
174
  }
@@ -180,7 +184,7 @@
180
184
 
181
185
  line-height: inherit;
182
186
 
183
- @nest [dir=rtl] & {
187
+ [dir="rtl"] & {
184
188
  padding: 0 var(--ring-input-padding-inline) 0 0;
185
189
  }
186
190
  }
@@ -190,7 +194,7 @@
190
194
 
191
195
  color: var(--ring-icon-secondary-color);
192
196
 
193
- @nest [dir=rtl] & {
197
+ [dir="rtl"] & {
194
198
  padding: 0 0 0 var(--ring-input-padding-inline);
195
199
  }
196
200
  }
@@ -210,19 +214,20 @@
210
214
  border-top-left-radius: 0;
211
215
  border-bottom-left-radius: 0;
212
216
 
213
- @nest .queryAssist.queryAssist:focus-within & {
217
+ /* stylelint-disable-next-line selector-max-specificity */
218
+ .queryAssist.queryAssist:focus-within & {
214
219
  transition: none;
215
220
 
216
221
  border-color: var(--ring-main-color);
217
222
  }
218
223
 
219
- @nest .queryAssist:hover & {
224
+ .queryAssist:hover & {
220
225
  transition: none;
221
226
 
222
227
  border-color: var(--ring-border-hover-color);
223
228
  }
224
229
 
225
- @nest [dir=rtl] & {
230
+ [dir="rtl"] & {
226
231
  border-right: 1px solid var(--ring-borders-color);
227
232
  border-left: 0;
228
233
  border-radius: var(--ring-border-radius);
@@ -236,7 +241,7 @@
236
241
 
237
242
  padding-right: 0;
238
243
 
239
- @nest [dir=rtl] & {
244
+ [dir="rtl"] & {
240
245
  padding-right: var(--ring-input-padding-inline);
241
246
  padding-left: 0;
242
247
  }
@@ -249,7 +254,7 @@
249
254
  .withoutGlass {
250
255
  padding-left: 0;
251
256
 
252
- @nest [dir=rtl] & {
257
+ [dir="rtl"] & {
253
258
  padding-right: calc(var(--ring-input-padding-block) * 3);
254
259
  }
255
260
  }
@@ -261,7 +266,7 @@
261
266
  .loaderOnTheRight {
262
267
  padding-right: 0;
263
268
 
264
- @nest [dir=rtl] & {
269
+ [dir="rtl"] & {
265
270
  padding-left: 0;
266
271
  }
267
272
  }
@@ -40,7 +40,7 @@ export interface QueryAssistProps {
40
40
  onApplySuggestion: (suggestion: QueryAssistSuggestion, change: QueryAssistChange) => void;
41
41
  onClear: () => void;
42
42
  onFocusChange: (change: FocusChange) => void;
43
- translations: QueryAssistTranslations;
43
+ translations?: QueryAssistTranslations | null | undefined;
44
44
  autoOpen?: boolean | null | undefined | 'force';
45
45
  caret?: number | null | undefined;
46
46
  clear?: boolean | null | undefined;
@@ -226,10 +226,6 @@ export default class QueryAssist extends Component<QueryAssistProps> {
226
226
  onClear: typeof noop;
227
227
  onFocusChange: typeof noop;
228
228
  size: Size;
229
- translations: {
230
- searchTitle: string;
231
- clearTitle: string;
232
- };
233
229
  };
234
230
  static getDerivedStateFromProps({ query }: QueryAssistProps, { prevQuery }: QueryAssistState): Partial<QueryAssistState>;
235
231
  constructor(props: QueryAssistProps);
@@ -283,7 +279,7 @@ export default class QueryAssist extends Component<QueryAssistProps> {
283
279
  setupRequestHandler(delay?: number | null): void;
284
280
  private _renderSuggestion;
285
281
  renderSuggestions(): import("../list/consts").ListDataItem<SuggestionItem>[];
286
- renderQuery(): "" | JSX.Element[] | null | undefined;
282
+ renderQuery(): "" | React.JSX.Element[] | null | undefined;
287
283
  setFocus(focus: boolean | null | undefined): void;
288
284
  input?: HTMLElement | null;
289
285
  caret?: Caret;
@@ -301,7 +297,7 @@ export default class QueryAssist extends Component<QueryAssistProps> {
301
297
  shortcutsScope: string;
302
298
  shortcutsMap: ShortcutsMap;
303
299
  renderActions(): React.ReactNode[];
304
- render(): JSX.Element;
300
+ render(): React.JSX.Element;
305
301
  }
306
302
  export type QueryAssistAttrs = JSX.LibraryManagedAttributes<typeof QueryAssist, QueryAssistProps>;
307
303
  export declare const RerenderableQueryAssist: {
@@ -19,6 +19,7 @@ import Icon from '../icon/icon';
19
19
  import { ControlsHeight, ControlsHeightContext } from '../global/controls-height';
20
20
  import { Size } from '../input/input';
21
21
  import inputStyles from '../input/input.css';
22
+ import { I18nContext } from '../i18n/i18n-context';
22
23
  import QueryAssistSuggestions from './query-assist__suggestions';
23
24
  import styles from './query-assist.css';
24
25
  const POPUP_COMPENSATION = PopupMenu.ListProps.Dimension.ITEM_PADDING +
@@ -166,11 +167,7 @@ export default class QueryAssist extends Component {
166
167
  onApplySuggestion: noop,
167
168
  onClear: noop,
168
169
  onFocusChange: noop,
169
- size: Size.L,
170
- translations: {
171
- searchTitle: 'Search',
172
- clearTitle: 'Clear search input'
173
- }
170
+ size: Size.L
174
171
  };
175
172
  static getDerivedStateFromProps({ query }, { prevQuery }) {
176
173
  const nextState = { prevQuery: query };
@@ -314,7 +311,7 @@ export default class QueryAssist extends Component {
314
311
  this.immediateState.selection.startOffset !== undefined) {
315
312
  this.caret?.setPosition(this.immediateState.selection);
316
313
  }
317
- else if (!this.immediateState.selection || params.forceSetCaret) {
314
+ else if (this.immediateState.selection === undefined || params.forceSetCaret) {
318
315
  this.caret?.setPosition(-1);
319
316
  }
320
317
  }
@@ -361,6 +358,23 @@ export default class QueryAssist extends Component {
361
358
  return;
362
359
  }
363
360
  this.immediateState = props;
361
+ if (this.state.query) {
362
+ let i = 0;
363
+ while (this.state.query[i] === this.immediateState.query[i] && i < this.state.query.length - 1) {
364
+ i++;
365
+ }
366
+ const diff = this.immediateState.query.length - this.state.query.length;
367
+ const originalIndex = this.immediateState.caret - diff;
368
+ const ranges = [...this.state.styleRanges ?? []];
369
+ const range = ranges.
370
+ find(r => originalIndex >= r.start && originalIndex <= r.start + r.length);
371
+ if (range) {
372
+ range.length += diff;
373
+ }
374
+ ranges.filter(r => r.start > originalIndex).forEach(r => {
375
+ r.start += diff;
376
+ });
377
+ }
364
378
  this.props.onChange(props);
365
379
  if (this.props.autoOpen === 'force' || props.query.length > 0) {
366
380
  this.requestData?.();
@@ -758,12 +772,14 @@ export default class QueryAssist extends Component {
758
772
  const actions = [...(this.props.actions || [])];
759
773
  const renderClear = this.props.clear && !!this.state.query;
760
774
  if (renderClear) {
761
- actions.push(<Button icon={closeIcon} key={'clearAction'} className={styles.clear} title={this.props.translations.clearTitle} ref={this.clearRef} onClick={this.clearQuery} data-test="query-assist-clear-icon"/>);
775
+ actions.push(<I18nContext.Consumer key={'clearAction'}>
776
+ {({ translate }) => (<Button icon={closeIcon} className={styles.clear} title={this.props.translations?.clearTitle ?? translate('clearTitle')} ref={this.clearRef} onClick={this.clearQuery} data-test="query-assist-clear-icon"/>)}
777
+ </I18nContext.Consumer>);
762
778
  }
763
779
  return actions;
764
780
  }
765
781
  render() {
766
- const { glass, 'data-test': dataTest, className, useCustomItemRender, huge, size } = this.props;
782
+ const { glass, 'data-test': dataTest, className, useCustomItemRender, huge, size, translations } = this.props;
767
783
  const renderPlaceholder = !!this.props.placeholder && this.state.placeholderEnabled;
768
784
  const renderLoader = this.props.loader !== false && this.state.loading;
769
785
  const renderGlass = glass && !renderLoader;
@@ -778,43 +794,46 @@ export default class QueryAssist extends Component {
778
794
  [`${styles.input} ring-js-shortcuts`]: true,
779
795
  [styles.inputGap]: actions.length || this.isRenderingGlassOrLoader() && !glass,
780
796
  [styles.inputGap2]: actions.length === 2,
781
- [styles.inputRevertOrder]: !glass
797
+ [styles.inputRevertOrder]: !glass || huge
782
798
  });
783
799
  const placeholderStyles = classNames({
784
800
  [styles.placeholder]: true,
801
+ [styles.hugePlaceholder]: huge,
785
802
  [styles.withoutGlass]: !glass || (!renderLoader && huge)
786
803
  });
787
804
  return (<ControlsHeightContext.Provider value={ControlsHeight.M}>
788
- <div data-test={dataTests('ring-query-assist', dataTest)} className={containerClasses} role="presentation" ref={this.nodeRef}>
789
- {this.state.shortcuts && (<Shortcuts map={this.shortcutsMap} scope={this.shortcutsScope}/>)}
805
+ <I18nContext.Consumer>
806
+ {({ translate }) => (<div data-test={dataTests('ring-query-assist', dataTest)} className={containerClasses} role="presentation" ref={this.nodeRef}>
807
+ {this.state.shortcuts && (<Shortcuts map={this.shortcutsMap} scope={this.shortcutsScope}/>)}
790
808
 
791
- {renderGlass && !huge && (<Icon glyph={searchIcon} className={styles.icon} title={this.props.translations.searchTitle} ref={this.glassRef} data-test="query-assist-search-icon"/>)}
809
+ {renderGlass && !huge && (<Icon glyph={searchIcon} className={styles.icon} title={translations?.searchTitle ?? translate('searchTitle')} ref={this.glassRef} data-test="query-assist-search-icon"/>)}
792
810
 
793
- {renderLoader && (<div className={classNames(styles.icon, styles.loader, {
794
- [styles.loaderOnTheRight]: !glass,
795
- [styles.loaderActive]: renderLoader
796
- })} ref={this.loaderRef}>
797
- <LoaderInline />
798
- </div>)}
811
+ {renderLoader && (<div className={classNames(styles.icon, styles.loader, {
812
+ [styles.loaderOnTheRight]: !glass && !huge,
813
+ [styles.loaderActive]: renderLoader
814
+ })} ref={this.loaderRef}>
815
+ <LoaderInline />
816
+ </div>)}
799
817
 
800
- <ContentEditable aria-label={this.props.translations.searchTitle} className={inputClasses} data-test="ring-query-assist-input" inputRef={this.inputRef} disabled={this.props.disabled} onComponentUpdate={() => this.setCaretPosition({ fromContentEditable: true })} onBlur={this.handleFocusChange} onClick={this.handleCaretMove} onCompositionStart={this.trackCompositionState} onCompositionEnd={this.trackCompositionState} onFocus={this.handleFocusChange} onInput={this.handleInput} // To support IE use the same method
801
- onKeyUp={this.handleInput} // to handle input and key up
802
- onKeyDown={this.handleEnter} onPaste={this.handlePaste} spellCheck="false">{this.state.query && <span>{this.renderQuery()}</span>}</ContentEditable>
818
+ <ContentEditable aria-label={translations?.searchTitle ?? translate('searchTitle')} className={inputClasses} data-test="ring-query-assist-input" inputRef={this.inputRef} disabled={this.props.disabled} onComponentUpdate={() => this.setCaretPosition({ fromContentEditable: true })} onBlur={this.handleFocusChange} onClick={this.handleCaretMove} onCompositionStart={this.trackCompositionState} onCompositionEnd={this.trackCompositionState} onFocus={this.handleFocusChange} onInput={this.handleInput} // To support IE use the same method
819
+ onKeyUp={this.handleInput} // to handle input and key up
820
+ onKeyDown={this.handleEnter} onPaste={this.handlePaste} spellCheck="false">{this.state.query && <span>{this.renderQuery()}</span>}</ContentEditable>
803
821
 
804
- {renderPlaceholder && (<button type="button" className={placeholderStyles} ref={this.placeholderRef} onClick={this.handleCaretMove} data-test="query-assist-placeholder">
805
- {this.props.placeholder}
806
- </button>)}
822
+ {renderPlaceholder && (<button type="button" className={placeholderStyles} ref={this.placeholderRef} onClick={this.handleCaretMove} data-test="query-assist-placeholder">
823
+ {this.props.placeholder}
824
+ </button>)}
807
825
 
808
- {actions.length
809
- ? (<div data-test="ring-query-assist-actions" className={styles.actions}>{actions}</div>)
810
- : null}
826
+ {actions.length
827
+ ? (<div data-test="ring-query-assist-actions" className={styles.actions}>{actions}</div>)
828
+ : null}
811
829
 
812
- <PopupMenu hidden={!this.state.showPopup} onCloseAttempt={this.closePopup} ref={this.popupRef} anchorElement={this.node} keepMounted attached className={this.props.popupClassName} directions={[PopupMenu.PopupProps.Directions.BOTTOM_RIGHT]} data={useCustomItemRender ? this.state.suggestions : this.renderSuggestions()} data-test="ring-query-assist-popup" hint={this.props.hint} hintOnSelection={this.props.hintOnSelection} left={this.getPopupOffset(this.state.suggestions)} maxHeight={PopupMenu.PopupProps.MaxHeight.SCREEN} onMouseDown={this.trackPopupMouseState} onMouseUp={this.trackPopupMouseState} onSelect={item => this.handleComplete(item)}/>
830
+ <PopupMenu hidden={!this.state.showPopup} onCloseAttempt={this.closePopup} ref={this.popupRef} anchorElement={this.node} keepMounted attached className={this.props.popupClassName} directions={[PopupMenu.PopupProps.Directions.BOTTOM_RIGHT]} data={useCustomItemRender ? this.state.suggestions : this.renderSuggestions()} data-test="ring-query-assist-popup" hint={this.props.hint} hintOnSelection={this.props.hintOnSelection} left={this.getPopupOffset(this.state.suggestions)} maxHeight={PopupMenu.PopupProps.MaxHeight.SCREEN} onMouseDown={this.trackPopupMouseState} onMouseUp={this.trackPopupMouseState} onSelect={item => this.handleComplete(item)}/>
813
831
 
814
- {glass && huge && (<div className={styles.rightSearchButton} data-test="query-assist-search-button">
815
- <Icon glyph={searchIcon} className={styles.rightSearchIcon} title={this.props.translations.searchTitle} onClick={this.handleApply} ref={this.glassRef} data-test="query-assist-search-icon"/>
832
+ {glass && huge && (<div className={styles.rightSearchButton} data-test="query-assist-search-button">
833
+ <Icon glyph={searchIcon} className={styles.rightSearchIcon} title={translations?.searchTitle ?? translate('searchTitle')} onClick={this.handleApply} ref={this.glassRef} data-test="query-assist-search-icon"/>
834
+ </div>)}
816
835
  </div>)}
817
- </div>
836
+ </I18nContext.Consumer>
818
837
  </ControlsHeightContext.Provider>);
819
838
  }
820
839
  }
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { ListDataItem } from '../list/consts';
3
3
  export interface QueryAssistSuggestion {
4
4
  description: string;
@@ -19,7 +19,7 @@ export interface SuggestionItem {
19
19
  }
20
20
  export default class QueryAssistSuggestions {
21
21
  static createKey(suggestion: QueryAssistSuggestion): string;
22
- static renderLabel(suggestion: QueryAssistSuggestion): JSX.Element;
22
+ static renderLabel(suggestion: QueryAssistSuggestion): React.JSX.Element;
23
23
  static renderGroupSeparator(suggestion: QueryAssistSuggestion, prevSuggestion: string): {
24
24
  key: string;
25
25
  description: string;
@@ -109,7 +109,7 @@
109
109
 
110
110
  /* stylelint-disable-next-line selector-max-specificity */
111
111
  &::after {
112
- background-color: var(--ring-border-selected-disabled-color);
112
+ background-color: var(--ring-icon-disabled-color);
113
113
  }
114
114
  }
115
115
 
@@ -14,5 +14,5 @@ export default class Radio extends Component<RadioProps> {
14
14
  };
15
15
  static Item: React.ForwardRefExoticComponent<import("./radio__item").RadioItemProps & React.RefAttributes<import("./radio__item").Radio>>;
16
16
  uid: string;
17
- render(): JSX.Element;
17
+ render(): React.JSX.Element;
18
18
  }
@@ -19,7 +19,7 @@ export declare class Radio extends Component<InputHTMLAttributes<HTMLInputElemen
19
19
  inputRef: (el: HTMLElement | null) => void;
20
20
  label?: HTMLElement | null;
21
21
  labelRef: (el: HTMLElement | null) => void;
22
- render(): JSX.Element;
22
+ render(): React.JSX.Element;
23
23
  }
24
24
  export interface RadioItemProps extends InputHTMLAttributes<HTMLInputElement> {
25
25
  value: string;
@@ -53,7 +53,7 @@
53
53
 
54
54
  border-bottom: 1px solid var(--ring-borders-color);
55
55
 
56
- @nest [dir=rtl] & {
56
+ [dir="rtl"] & {
57
57
  padding-right: calc(unit * 5.5);
58
58
  padding-left: unit;
59
59
  }
@@ -66,7 +66,7 @@
66
66
 
67
67
  color: var(--ring-icon-color);
68
68
 
69
- @nest [dir=rtl] & {
69
+ [dir="rtl"] & {
70
70
  right: calc(unit * 2);
71
71
  left: auto;
72
72
  }
@@ -23,12 +23,12 @@
23
23
 
24
24
  text-align: left;
25
25
 
26
- @nest [dir=rtl] & {
26
+ [dir="rtl"] & {
27
27
  text-align: right;
28
28
  direction: ltr;
29
29
  }
30
30
 
31
- @nest .toolbar & {
31
+ .toolbar & {
32
32
  height: calc(4 * unit);
33
33
  margin: unit 0;
34
34
  }
@@ -50,7 +50,7 @@
50
50
 
51
51
  line-height: normal;
52
52
 
53
- @nest .inputMode & {
53
+ .inputMode & {
54
54
  font-size: var(--ring-font-size);
55
55
  }
56
56
  }
@@ -163,7 +163,7 @@
163
163
  vertical-align: calc(0 - unit);
164
164
  }
165
165
 
166
- .buttonValue:global(.focus-visible) {
166
+ .buttonValue:focus-visible {
167
167
  box-shadow: button-shadow var(--ring-main-color);
168
168
  }
169
169
 
@@ -171,6 +171,10 @@
171
171
  box-shadow: button-shadow var(--ring-main-color);
172
172
  }
173
173
 
174
+ .buttonValueEmpty.buttonValueEmpty {
175
+ color: var(--ring-disabled-color);
176
+ }
177
+
174
178
  .heightS .buttonValue {
175
179
  font-size: var(--ring-font-size);
176
180
  }
@@ -183,7 +187,7 @@
183
187
 
184
188
  .select:hover .value,
185
189
  .select:hover .icons,
186
- :global(.focus-visible) + .icons,
190
+ :focus-visible + .icons,
187
191
  .value:focus,
188
192
  .value:focus + .icons,
189
193
  .open,