@jetbrains/ring-ui 8.0.0-beta.1 → 8.0.0-beta.11

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 (211) hide show
  1. package/babel.config.js +1 -9
  2. package/components/alert/alert-actions.d.ts +4 -0
  3. package/components/alert/alert-actions.js +5 -0
  4. package/components/alert/alert-heading.d.ts +4 -0
  5. package/components/alert/alert-heading.js +6 -0
  6. package/components/alert/alert.css +63 -22
  7. package/components/alert/alert.d.ts +14 -1
  8. package/components/alert/alert.js +34 -19
  9. package/components/alert/container.css +1 -2
  10. package/components/alert-service/alert-service.d.ts +2 -1
  11. package/components/alert-service/alert-service.js +8 -4
  12. package/components/auth/auth-core.d.ts +5 -9
  13. package/components/auth/auth-core.js +56 -15
  14. package/components/auth-dialog-service/auth-dialog-service.js +5 -2
  15. package/components/avatar/avatar-info.js +0 -2
  16. package/components/avatar/avatar-size.d.ts +0 -4
  17. package/components/avatar/avatar-size.js +0 -4
  18. package/components/avatar/avatar.js +0 -6
  19. package/components/avatar/fallback-avatar.js +0 -28
  20. package/components/avatar-stack/avatar-stack.js +1 -1
  21. package/components/banner/banner.css +3 -3
  22. package/components/button/button.css +4 -4
  23. package/components/button/button.d.ts +0 -4
  24. package/components/button/button.js +2 -7
  25. package/components/button-group/button-group.css +5 -5
  26. package/components/checkbox/checkbox.d.ts +1 -1
  27. package/components/collapse/collapse-content.d.ts +7 -0
  28. package/components/collapse/collapse-content.js +44 -11
  29. package/components/collapse/collapse-context.d.ts +2 -0
  30. package/components/collapse/collapse-context.js +2 -0
  31. package/components/collapse/collapse-control.js +2 -2
  32. package/components/collapse/collapse.css +8 -2
  33. package/components/collapse/collapse.d.ts +9 -0
  34. package/components/collapse/collapse.js +12 -3
  35. package/components/{expand → collapsible-group}/collapsible-group.css +7 -1
  36. package/components/collapsible-group/collapsible-group.d.ts +33 -0
  37. package/components/{expand → collapsible-group}/collapsible-group.js +13 -21
  38. package/components/confirm/confirm.js +12 -8
  39. package/components/confirm-service/confirm-service.js +5 -2
  40. package/components/data-list/data-list.d.ts +1 -1
  41. package/components/data-list/data-list.mock.d.ts +1 -1
  42. package/components/data-list/item.d.ts +1 -1
  43. package/components/data-list/selection.d.ts +1 -1
  44. package/components/data-list/selection.js +1 -1
  45. package/components/date-picker/consts.d.ts +1 -0
  46. package/components/date-picker/date-input.js +6 -2
  47. package/components/date-picker/months.js +2 -2
  48. package/components/date-picker/use-scroll-behavior.js +5 -6
  49. package/components/date-picker/years.js +2 -2
  50. package/components/dialog/dialog-controls.d.ts +13 -0
  51. package/components/dialog/dialog-controls.js +17 -0
  52. package/components/dialog/dialog-geometry.d.ts +31 -0
  53. package/components/dialog/dialog-geometry.js +48 -0
  54. package/components/dialog/dialog.css +166 -27
  55. package/components/dialog/dialog.d.ts +15 -7
  56. package/components/dialog/dialog.js +110 -29
  57. package/components/dropdown-menu/dropdown-menu.d.ts +4 -4
  58. package/components/dropdown-menu/dropdown-menu.js +4 -4
  59. package/components/editable-heading/editable-heading.d.ts +1 -2
  60. package/components/editable-heading/editable-heading.js +18 -19
  61. package/components/global/compose-refs.d.ts +2 -1
  62. package/components/global/compose-refs.js +24 -8
  63. package/components/global/create-stateful-context.js +5 -5
  64. package/components/global/focus-with-temporary-tabindex.d.ts +11 -0
  65. package/components/global/focus-with-temporary-tabindex.js +21 -0
  66. package/components/global/get-viewport-size.d.ts +5 -0
  67. package/components/global/get-viewport-size.js +5 -0
  68. package/components/global/intersection-observer-context.d.ts +31 -11
  69. package/components/global/intersection-observer-context.js +47 -28
  70. package/components/global/is-within-interactive-element.d.ts +6 -0
  71. package/components/global/is-within-interactive-element.js +26 -0
  72. package/components/global/is-within-navigable-element.d.ts +6 -0
  73. package/components/global/is-within-navigable-element.js +27 -0
  74. package/components/global/parse-css-duration.d.ts +5 -0
  75. package/components/global/parse-css-duration.js +13 -0
  76. package/components/global/rerender-hoc.d.ts +4 -2
  77. package/components/global/rerender-hoc.js +4 -4
  78. package/components/global/schedule-with-cleanup.d.ts +12 -0
  79. package/components/global/schedule-with-cleanup.js +34 -0
  80. package/components/{legacy-table/selection.d.ts → global/table-selection.d.ts} +14 -14
  81. package/components/{legacy-table/selection.js → global/table-selection.js} +2 -2
  82. package/components/global/theme.d.ts +4 -3
  83. package/components/global/theme.js +8 -8
  84. package/components/global/variables.css +18 -28
  85. package/components/global/variables.interface.d.ts +0 -4
  86. package/components/global/variables_dark.css +18 -25
  87. package/components/header/header.css +3 -3
  88. package/components/http/http.d.ts +2 -2
  89. package/components/http/http.js +6 -17
  90. package/components/i18n/i18n-context.js +1 -1
  91. package/components/i18n/i18n.d.ts +1 -0
  92. package/components/i18n/messages.json +1 -0
  93. package/components/icon/icon.css +0 -27
  94. package/components/icon/icon.d.ts +0 -1
  95. package/components/icon/icon.js +2 -4
  96. package/components/input/input.d.ts +1 -1
  97. package/components/island/adaptive-island-hoc.js +4 -4
  98. package/components/island/content.d.ts +7 -2
  99. package/components/island/content.js +5 -5
  100. package/components/island/header.js +1 -1
  101. package/components/legacy-table/cell.js +1 -1
  102. package/components/legacy-table/header-cell.js +1 -1
  103. package/components/legacy-table/header.js +1 -1
  104. package/components/legacy-table/multitable.d.ts +1 -1
  105. package/components/legacy-table/row.d.ts +1 -1
  106. package/components/legacy-table/row.js +1 -1
  107. package/components/legacy-table/selection-adapter.d.ts +3 -3
  108. package/components/legacy-table/selection-shortcuts-hoc.d.ts +5 -5
  109. package/components/legacy-table/simple-table.d.ts +2 -2
  110. package/components/legacy-table/simple-table.js +3 -3
  111. package/components/legacy-table/smart-table.d.ts +5 -5
  112. package/components/legacy-table/smart-table.js +3 -3
  113. package/components/legacy-table/table.js +1 -1
  114. package/components/list/consts.d.ts +0 -1
  115. package/components/list/consts.js +0 -1
  116. package/components/list/list.d.ts +0 -4
  117. package/components/login-dialog/service.js +5 -2
  118. package/components/panel/panel.css +1 -1
  119. package/components/popup/popup.d.ts +2 -0
  120. package/components/popup/popup.js +2 -2
  121. package/components/popup/popup.target.d.ts +3 -2
  122. package/components/popup/popup.target.js +4 -6
  123. package/components/query-assist/query-assist.d.ts +3 -1
  124. package/components/query-assist/query-assist.js +2 -2
  125. package/components/radio/radio-item.d.ts +3 -3
  126. package/components/radio/radio-item.js +3 -4
  127. package/components/radio/radio.d.ts +2 -2
  128. package/components/radio/radio.js +1 -1
  129. package/components/select/select-popup.d.ts +3 -2
  130. package/components/select/select-popup.js +3 -3
  131. package/components/select/select.d.ts +6 -2
  132. package/components/select/select.js +2 -4
  133. package/components/selection-toolbar/selection-toolbar.css +86 -0
  134. package/components/selection-toolbar/selection-toolbar.d.ts +11 -0
  135. package/components/selection-toolbar/selection-toolbar.js +23 -0
  136. package/components/slider/slider.js +4 -5
  137. package/components/tab-trap/tab-trap.d.ts +3 -3
  138. package/components/tab-trap/tab-trap.js +3 -5
  139. package/components/table/default-item-renderer.d.ts +41 -11
  140. package/components/table/default-item-renderer.js +60 -47
  141. package/components/table/internal/reorder-animation-context.d.ts +21 -0
  142. package/components/table/internal/reorder-animation-context.js +60 -0
  143. package/components/table/internal/reorder-handle.d.ts +9 -0
  144. package/components/table/internal/reorder-handle.js +334 -0
  145. package/components/table/internal/reorder-layout-context.d.ts +16 -0
  146. package/components/table/internal/reorder-layout-context.js +69 -0
  147. package/components/table/internal/table-header.d.ts +1 -0
  148. package/components/table/internal/table-header.js +143 -0
  149. package/components/table/internal/virtualization.d.ts +41 -0
  150. package/components/table/{table-virtualize.js → internal/virtualization.js} +82 -46
  151. package/components/table/item-virtualization.d.ts +37 -0
  152. package/components/table/item-virtualization.js +26 -0
  153. package/components/table/reorder-animation.d.ts +37 -0
  154. package/components/table/reorder-animation.js +11 -0
  155. package/components/table/reorder-item-layout.d.ts +32 -0
  156. package/components/table/reorder-item-layout.js +23 -0
  157. package/components/table/table-const.d.ts +8 -6
  158. package/components/table/table-const.js +7 -5
  159. package/components/table/table-primitives.d.ts +64 -0
  160. package/components/table/table-primitives.js +34 -0
  161. package/components/table/table-props.d.ts +304 -0
  162. package/components/table/table-props.js +1 -0
  163. package/components/table/table.css +179 -67
  164. package/components/table/table.d.ts +231 -224
  165. package/components/table/table.js +327 -2
  166. package/components/tag/tag.css +3 -3
  167. package/components/tags-input/tags-input.d.ts +3 -1
  168. package/components/tooltip/tooltip.d.ts +2 -1
  169. package/components/tooltip/tooltip.js +6 -5
  170. package/components/upload/upload.d.ts +4 -3
  171. package/components/upload/upload.js +3 -7
  172. package/components/user-agreement/service.js +5 -2
  173. package/components/user-agreement/user-agreement.css +2 -8
  174. package/components/user-agreement/user-agreement.js +8 -10
  175. package/components/user-card/smart-user-card-tooltip.d.ts +1 -1
  176. package/components/util-stories.d.ts +26 -0
  177. package/components/util-stories.js +61 -0
  178. package/package.json +47 -50
  179. package/components/content-layout/content-layout.css +0 -109
  180. package/components/content-layout/content-layout.d.ts +0 -20
  181. package/components/content-layout/content-layout.js +0 -40
  182. package/components/content-layout/sidebar.d.ts +0 -26
  183. package/components/content-layout/sidebar.js +0 -71
  184. package/components/date-picker/use-intersection-observer.d.ts +0 -6
  185. package/components/date-picker/use-intersection-observer.js +0 -48
  186. package/components/expand/collapsible-group.d.ts +0 -16
  187. package/components/global/composeRefs.d.ts +0 -6
  188. package/components/global/composeRefs.js +0 -7
  189. package/components/global/use-event-callback.d.ts +0 -1
  190. package/components/global/use-event-callback.js +0 -15
  191. package/components/grid/col.d.ts +0 -16
  192. package/components/grid/col.js +0 -35
  193. package/components/grid/grid.css +0 -920
  194. package/components/grid/grid.d.ts +0 -13
  195. package/components/grid/grid.js +0 -19
  196. package/components/grid/row.d.ts +0 -21
  197. package/components/grid/row.js +0 -41
  198. package/components/old-browsers-message/__mocks__/old-browsers-message.js +0 -1
  199. package/components/old-browsers-message/old-browsers-message-stop.d.ts +0 -1
  200. package/components/old-browsers-message/old-browsers-message-stop.js +0 -2
  201. package/components/old-browsers-message/old-browsers-message.css +0 -26
  202. package/components/old-browsers-message/old-browsers-message.d.ts +0 -5
  203. package/components/old-browsers-message/old-browsers-message.js +0 -86
  204. package/components/old-browsers-message/white-list.d.ts +0 -2
  205. package/components/old-browsers-message/white-list.js +0 -24
  206. package/components/table/table-base.d.ts +0 -24
  207. package/components/table/table-base.js +0 -79
  208. package/components/table/table-component.d.ts +0 -53
  209. package/components/table/table-component.js +0 -101
  210. package/components/table/table-virtualize.d.ts +0 -32
  211. /package/components/legacy-table/{table.css → legacy-table.css} +0 -0
@@ -15,8 +15,6 @@
15
15
  --ring-border-disabled-color: rgb(var(--ring-border-disabled-components)); /* #4E5157 */
16
16
  --ring-border-selected-disabled-components: 90, 93, 99;
17
17
  --ring-border-selected-disabled-color: rgb(var(--ring-border-selected-disabled-components)); /* #5A5D63 */
18
- --ring-border-disabled-active-components: var(--ring-border-hover-components);
19
- --ring-border-disabled-active-color: var(--ring-border-hover-color); /* TODO: remove in 8.0 in favor of --ring-border-hover-color */
20
18
  --ring-icon-disabled-components: 111, 115, 122;
21
19
  --ring-icon-disabled-color: rgb(var(--ring-icon-disabled-components)); /* #6F737A */
22
20
  --ring-border-hover-components: 55, 95, 173;
@@ -39,18 +37,18 @@
39
37
  --ring-main-error-color: rgb(var(--ring-main-error-components)); /* #BD5757 */
40
38
  --ring-main-error-hover-components: 156, 78, 78;
41
39
  --ring-main-error-hover-color: rgb(var(--ring-main-error-hover-components)); /* #9C4E4E */
42
- --ring-main-warning-components: 224, 137, 87;
43
- --ring-main-warning-color: rgb(var(--ring-main-warning-components)); /* #E08957 */
44
- --ring-main-warning-hover-components: 199, 125, 85;
45
- --ring-main-warning-hover-color: rgb(var(--ring-main-warning-hover-components)); /* #C77D55 */
40
+ --ring-main-warning-components: 214, 174, 88;
41
+ --ring-main-warning-color: rgb(var(--ring-main-warning-components)); /* #D6AE58 */
42
+ --ring-main-warning-hover-components: 186, 151, 82;
43
+ --ring-main-warning-hover-color: rgb(var(--ring-main-warning-hover-components)); /* #BA9752 */
46
44
  --ring-main-purple-components: 149, 90, 224;
47
45
  --ring-main-purple-color: rgb(var(--ring-main-purple-components)); /* #955AE0 */
48
46
  --ring-main-purple-hover-components: 129, 80, 190;
49
47
  --ring-main-purple-hover-color: rgb(var(--ring-main-purple-hover-components)); /* #8150BE */
50
48
  --ring-icon-error-components: 227, 119, 116;
51
49
  --ring-icon-error-color: rgb(var(--ring-icon-error-components)); /* #E37774 */
52
- --ring-icon-warning-components: 224, 136, 85;
53
- --ring-icon-warning-color: rgb(var(--ring-icon-warning-components)); /* #E08855 */
50
+ --ring-icon-warning-components: 214, 174, 88;
51
+ --ring-icon-warning-color: rgb(var(--ring-icon-warning-components)); /* #D6AE58 */
54
52
  --ring-icon-success-components: 95, 173, 101;
55
53
  --ring-icon-success-color: rgb(var(--ring-icon-success-components)); /* #5FAD65 */
56
54
  --ring-icon-highlight-components: 214, 174, 88;
@@ -65,10 +63,10 @@
65
63
  --ring-error-border-color: rgb(var(--ring-error-border-components)); /* #7A4343 */
66
64
  --ring-error-border-hover-components: 156, 78, 78;
67
65
  --ring-error-border-hover-color: rgb(var(--ring-error-border-hover-components)); /* #9C4E4E */
68
- --ring-warning-border-components: 130, 88, 69;
69
- --ring-warning-border-color: rgb(var(--ring-warning-border-components)); /* #825845 */
70
- --ring-warning-border-hover-components: 163, 107, 78;
71
- --ring-warning-border-hover-color: rgb(var(--ring-warning-border-hover-components)); /* #A36B4E */
66
+ --ring-warning-border-components: 130, 106, 65;
67
+ --ring-warning-border-color: rgb(var(--ring-warning-border-components)); /* #826A41 */
68
+ --ring-warning-border-hover-components: 158, 129, 74;
69
+ --ring-warning-border-hover-color: rgb(var(--ring-warning-border-hover-components)); /* #9E814A */
72
70
  --ring-highlight-border-components: 130, 106, 65;
73
71
  --ring-highlight-border-color: rgb(var(--ring-highlight-border-components)); /* #826A41 */
74
72
  --ring-highlight-border-hover-components: 158, 129, 74;
@@ -82,8 +80,6 @@
82
80
  --ring-popup-shadow-color: rgba(0, 0, 0, 0.31);
83
81
  --ring-popup-secondary-shadow-color: rgba(0, 0, 0, 0.37);
84
82
  --ring-message-shadow-color: rgba(var(--ring-popup-border-components), 0.3);
85
- --ring-pinned-shadow-components: 0, 0, 0;
86
- --ring-pinned-shadow-color: rgb(var(--ring-pinned-shadow-components)); /* #000 */ /* TODO remove in 8.0 */
87
83
  --ring-button-danger-hover-color: var(--ring-error-color);
88
84
  --ring-button-primary-border-components: 153, 187, 255;
89
85
  --ring-button-primary-border-color: rgb(var(--ring-button-primary-border-components)); /* #99BBFF */
@@ -93,16 +89,14 @@
93
89
  --ring-dialog-shadow: 0 4px 16px var(--ring-popup-shadow-color), 0 2px 6px var(--ring-popup-secondary-shadow-color);
94
90
 
95
91
  /* Text */
96
- --ring-hint-components: 134, 138, 145;
97
- --ring-hint-color: rgb(var(--ring-hint-components)); /* #868A91 */ /* TODO: remove in 8.0 */
98
92
  --ring-link-components: 153, 187, 255;
99
93
  --ring-link-color: rgb(var(--ring-link-components)); /* #99BBFF */
100
94
  --ring-link-hover-components: 107, 155, 250;
101
95
  --ring-link-hover-color: rgb(var(--ring-link-hover-components)); /* #6B9BFA */
102
96
  --ring-error-components: 227, 119, 116;
103
97
  --ring-error-color: rgb(var(--ring-error-components)); /* #E37774 */
104
- --ring-warning-components: 224, 137, 87;
105
- --ring-warning-color: rgb(var(--ring-warning-components)); /* #E08957 */ /* Prefer using warning icon + regular text color */
98
+ --ring-warning-components: 242, 197, 92;
99
+ --ring-warning-color: rgb(var(--ring-warning-components)); /* #F2C55C */ /* Prefer using warning icon + regular text color */
106
100
  --ring-success-components: 95, 173, 101;
107
101
  --ring-success-color: rgb(var(--ring-success-components)); /* #5FAD65 */ /* Prefer using success icon + regular text color */
108
102
  --ring-purple-text-components: 181, 137, 236;
@@ -140,8 +134,8 @@
140
134
  --ring-tag-hover-background-color: rgb(var(--ring-tag-hover-background-components)); /* #4E5157 */
141
135
  --ring-removed-background-components: 94, 56, 56;
142
136
  --ring-removed-background-color: rgb(var(--ring-removed-background-components)); /* #5E3838 */
143
- --ring-warning-background-components: 97, 68, 56;
144
- --ring-warning-background-color: rgb(var(--ring-warning-background-components)); /* #614438 */
137
+ --ring-warning-background-components: 94, 77, 51;
138
+ --ring-warning-background-color: rgb(var(--ring-warning-background-components)); /* #5E4D33 */
145
139
  --ring-highlight-background-components: 94, 77, 51;
146
140
  --ring-highlight-background-color: rgb(var(--ring-highlight-background-components)); /* #5E4D33 */
147
141
  --ring-added-background-components: 55, 82, 57;
@@ -153,12 +147,11 @@
153
147
  --ring-disabled-selected-background-components: 67, 69, 74;
154
148
  --ring-disabled-selected-background-color: rgb(var(--ring-disabled-selected-background-components)); /* #43454A */
155
149
  --ring-button-danger-active-color: var(--ring-error-container-light-color); /* #5E3838 */
156
- --ring-button-primary-background-color: var(--ring-main-color); /* TODO remove in 8.0 */
157
150
  --ring-table-loader-background-color: rgba(var(--ring-content-background-components), 0.5); /* #2B2D3050 */
158
151
  --ring-removed-subtle-background-components: 64, 41, 41;
159
152
  --ring-removed-subtle-background-color: rgb(var(--ring-removed-subtle-background-components)); /* #402929 */
160
- --ring-warning-subtle-background-components: 69, 50, 43;
161
- --ring-warning-subtle-background-color: rgb(var(--ring-warning-subtle-background-components)); /* #45322B */
153
+ --ring-warning-subtle-background-components: 61, 50, 35;
154
+ --ring-warning-subtle-background-color: rgb(var(--ring-warning-subtle-background-components)); /* #3D3223 */
162
155
  --ring-highlight-subtle-background-components: 61, 50, 35;
163
156
  --ring-highlight-subtle-background-color: rgb(var(--ring-highlight-subtle-background-components)); /* #3D3223 */
164
157
  --ring-added-subtle-background-components: 37, 54, 39;
@@ -171,8 +164,8 @@
171
164
  --ring-success-container-light-color: rgb(var(--ring-success-container-light-components)); /* #222D25 */
172
165
  --ring-error-container-light-components: 54, 38, 39;
173
166
  --ring-error-container-light-color: rgb(var(--ring-error-container-light-components)); /* #362627 */
174
- --ring-warning-container-light-components: 53, 42, 39;
175
- --ring-warning-container-light-color: rgb(var(--ring-warning-container-light-components)); /* #352A27 */
167
+ --ring-warning-container-light-components: 49, 42, 35;
168
+ --ring-warning-container-light-color: rgb(var(--ring-warning-container-light-components)); /* #312A23 */
176
169
  --ring-highlight-container-light-components: 49, 42, 35;
177
170
  --ring-highlight-container-light-color: rgb(var(--ring-highlight-container-light-components)); /* #312A23 */
178
171
  --ring-grey-container-light-components: 43, 45, 48;
@@ -1,6 +1,6 @@
1
1
  @import '../global/variables.css';
2
2
 
3
- @value link, active from '../link/link.css';
3
+ @value link, active as linkActive from '../link/link.css';
4
4
 
5
5
  :root,
6
6
  :host {
@@ -41,7 +41,7 @@
41
41
  color: var(--ring-header-link-color);
42
42
  }
43
43
 
44
- & .active {
44
+ & .linkActive {
45
45
  color: var(--ring-active-text-color);
46
46
  }
47
47
  }
@@ -72,7 +72,7 @@
72
72
  color: var(--ring-header-link-color);
73
73
  }
74
74
 
75
- & .active {
75
+ & .linkActive {
76
76
  color: var(--ring-active-text-color);
77
77
  }
78
78
  }
@@ -20,7 +20,7 @@ export interface RequestParams<RawBody extends boolean = true | false> extends F
20
20
  export type RequestParamsWithoutMethod<RawBody extends boolean = boolean> = Omit<RequestParams<RawBody>, 'method'>;
21
21
  export interface HTTPAuth {
22
22
  requestToken(): Promise<string | null> | string | null;
23
- forceTokenUpdate(): Promise<string | null>;
23
+ forceTokenUpdate(failedToken?: string | null): Promise<string | null>;
24
24
  }
25
25
  export default class HTTP implements Partial<HTTPAuth> {
26
26
  baseUrl: string | null | undefined;
@@ -28,7 +28,7 @@ export default class HTTP implements Partial<HTTPAuth> {
28
28
  fetchConfig: RequestInit;
29
29
  requestToken?: () => Promise<string | null> | string | null;
30
30
  shouldRefreshToken?: (error: string) => boolean;
31
- forceTokenUpdate?: () => Promise<string | null>;
31
+ forceTokenUpdate?: (failedToken?: string | null) => Promise<string | null>;
32
32
  constructor(auth?: HTTPAuth, baseUrl?: string | null | undefined, fetchConfig?: RequestInit);
33
33
  setAuth: (auth: HTTPAuth) => void;
34
34
  setBaseUrl: (baseUrl: string | null | undefined) => void;
@@ -50,7 +50,7 @@ export default class HTTP {
50
50
  setAuth = (auth) => {
51
51
  this.requestToken = () => auth.requestToken();
52
52
  this.shouldRefreshToken = auth.constructor.shouldRefreshToken;
53
- this.forceTokenUpdate = () => auth.forceTokenUpdate();
53
+ this.forceTokenUpdate = failedToken => auth.forceTokenUpdate(failedToken);
54
54
  };
55
55
  setBaseUrl = (baseUrl) => {
56
56
  this.baseUrl = baseUrl;
@@ -97,23 +97,12 @@ export default class HTTP {
97
97
  const contentType = response.headers.get('content-type');
98
98
  const isJson = contentType && contentType.indexOf('application/json') !== -1;
99
99
  if (!response.ok) {
100
- let resJson;
101
- try {
102
- resJson = await (isJson ? response.json() : response.text());
103
- }
104
- catch (err) {
105
- // noop
106
- }
100
+ const resJson = await (isJson ? response.json() : response.text());
107
101
  throw new HTTPError(response, resJson);
108
102
  }
109
- try {
110
- const parsedResponse = await (isJson ? response.json() : { data: await response.text() });
111
- this._storeRequestMeta(parsedResponse, response);
112
- return parsedResponse;
113
- }
114
- catch (err) {
115
- return response;
116
- }
103
+ const parsedResponse = await (isJson ? response.json() : { data: await response.text() });
104
+ this._storeRequestMeta(parsedResponse, response);
105
+ return parsedResponse;
117
106
  }
118
107
  fetch = async (url, params = {}) => {
119
108
  const { body, query = {}, ...fetchConfig } = params;
@@ -141,7 +130,7 @@ export default class HTTP {
141
130
  }
142
131
  const shouldRefreshToken = typeof error.data.error === 'string' ? this.shouldRefreshToken?.(error.data.error) : false;
143
132
  if (shouldRefreshToken) {
144
- token = await this.forceTokenUpdate?.();
133
+ token = await this.forceTokenUpdate?.(token);
145
134
  response = await this._performRequest(url, token, params);
146
135
  return this._processResponse(response);
147
136
  }
@@ -9,5 +9,5 @@ export const I18nContextHolder = ({ children, messages }) => {
9
9
  useEffect(() => {
10
10
  setTranslations(messages);
11
11
  }, [messages]);
12
- return <I18nContext.Provider value={{ messages, translate }}>{children}</I18nContext.Provider>;
12
+ return <I18nContext value={{ messages, translate }}>{children}</I18nContext>;
13
13
  };
@@ -23,6 +23,7 @@ export declare function getTranslations(): Partial<{
23
23
  addSecondDate: string;
24
24
  addTime: string;
25
25
  selectName: string;
26
+ selectDate: string;
26
27
  setDate: string;
27
28
  setDateTime: string;
28
29
  setPeriod: string;
@@ -19,6 +19,7 @@
19
19
  "addSecondDate": "Add second date",
20
20
  "addTime": "Add time",
21
21
  "selectName": "Select {{name}}",
22
+ "selectDate": "Select a date",
22
23
  "setDate": "Set a date",
23
24
  "setDateTime": "Set date and time",
24
25
  "setPeriod": "Set a period",
@@ -11,11 +11,6 @@
11
11
 
12
12
  pointer-events: none;
13
13
 
14
- /* TODO remove in 8.0 */
15
- &[width='10'] {
16
- vertical-align: -1px;
17
- }
18
-
19
14
  &[width='12'] {
20
15
  vertical-align: -1px;
21
16
  }
@@ -71,25 +66,3 @@
71
66
  .white {
72
67
  color: var(--ring-white-text-color);
73
68
  }
74
-
75
- .loading {
76
- animation-name: icon-loading;
77
- animation-duration: 1200ms;
78
- animation-iteration-count: infinite;
79
- }
80
-
81
- @keyframes icon-loading {
82
- 0% {
83
- transform: scale(1);
84
- }
85
-
86
- 50% {
87
- transform: scale(0.9);
88
-
89
- opacity: 0.5;
90
- }
91
-
92
- 100% {
93
- transform: scale(1);
94
- }
95
- }
@@ -19,7 +19,6 @@ export interface IconProps extends HTMLAttributes<HTMLElement> {
19
19
  * @deprecated Use icons with appropriate intrinsic sizes instead
20
20
  */
21
21
  width?: number | undefined;
22
- loading?: boolean | null | undefined;
23
22
  suppressSizeWarning?: boolean | null | undefined;
24
23
  }
25
24
  export default class Icon extends PureComponent<IconProps> {
@@ -43,13 +43,11 @@ export default class Icon extends PureComponent {
43
43
  return undefined;
44
44
  }
45
45
  render() {
46
- const { className, size, color, loading, glyph: Glyph, width, height, suppressSizeWarning, ...restProps } = this.props;
46
+ const { className, size, color, glyph: Glyph, width, height, suppressSizeWarning, ...restProps } = this.props;
47
47
  if (!Glyph) {
48
48
  return null;
49
49
  }
50
- const classes = classNames(styles.icon, color && styles[color], {
51
- [styles.loading]: loading,
52
- }, className);
50
+ const classes = classNames(styles.icon, color && styles[color], className);
53
51
  return (<span data-test='ring-icon' {...restProps} className={classes}>
54
52
  {typeof Glyph === 'string' ? (<IconSVG src={Glyph} style={this.getStyle()}/>) : (<Glyph className={styles.glyph} style={this.getStyle()}/>)}
55
53
  </span>);
@@ -69,7 +69,7 @@ export declare class Input extends PureComponent<InputProps> {
69
69
  stretch(el: HTMLElement | null | undefined): void;
70
70
  adapt(): void;
71
71
  inputRef: (el: HTMLInputElement | HTMLTextAreaElement | null) => void;
72
- composedInputRef: import("memoize-one").MemoizedFn<(...refs: (Ref<HTMLInputElement | HTMLTextAreaElement> | undefined)[]) => (value: T | null) => void>;
72
+ composedInputRef: import("memoize-one").MemoizedFn<(...refs: (Ref<HTMLInputElement | HTMLTextAreaElement> | undefined)[]) => (value: T | null) => () => void>;
73
73
  clear: (e: React.MouseEvent<HTMLButtonElement>) => void;
74
74
  handleInputChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
75
75
  handleTextareaChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
@@ -17,11 +17,11 @@ export default function adaptiveIslandHOC(ComposedComponent) {
17
17
  }
18
18
  };
19
19
  render() {
20
- return (<PhaseContext.Provider value={this.state.phase}>
21
- <ScrollHandlerContext.Provider value={this.onContentScroll}>
20
+ return (<PhaseContext value={this.state.phase}>
21
+ <ScrollHandlerContext value={this.onContentScroll}>
22
22
  <ComposedComponent {...this.props}/>
23
- </ScrollHandlerContext.Provider>
24
- </PhaseContext.Provider>);
23
+ </ScrollHandlerContext>
24
+ </PhaseContext>);
25
25
  }
26
26
  };
27
27
  }
@@ -1,11 +1,13 @@
1
- import { Component, type HTMLAttributes } from 'react';
1
+ import { Component, type Ref, type HTMLAttributes } from 'react';
2
2
  import createResizeDetector from 'element-resize-detector';
3
3
  export interface IslandContentProps extends Omit<HTMLAttributes<HTMLElement>, 'onScroll'> {
4
+ ref?: Ref<Content>;
4
5
  fade?: boolean | null | undefined;
5
6
  onScrollToBottom?: (() => void) | null | undefined;
6
7
  scrollableWrapperClassName?: string | null | undefined;
7
8
  }
8
9
  export interface IslandContentInnerProps extends IslandContentProps {
10
+ ref?: Ref<Content>;
9
11
  onScroll: (node: HTMLElement) => void;
10
12
  bottomBorder: boolean;
11
13
  }
@@ -29,5 +31,8 @@ declare class Content extends Component<IslandContentInnerProps> {
29
31
  setScrollableNodeAndCalculatePosition: (node: HTMLElement | null) => void;
30
32
  render(): import("react").JSX.Element;
31
33
  }
32
- declare const ContentWrapper: import("react").ForwardRefExoticComponent<IslandContentProps & import("react").RefAttributes<Content>>;
34
+ declare const ContentWrapper: {
35
+ ({ ...props }: IslandContentProps): import("react").JSX.Element;
36
+ displayName: string;
37
+ };
33
38
  export default ContentWrapper;
@@ -1,4 +1,4 @@
1
- import { forwardRef, Component } from 'react';
1
+ import { Component } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import createResizeDetector from 'element-resize-detector';
4
4
  import scheduleRAF from '../global/schedule-raf';
@@ -57,7 +57,7 @@ class Content extends Component {
57
57
  this.calculateScrollPosition();
58
58
  };
59
59
  render() {
60
- const { children, className, bottomBorder, scrollableWrapperClassName, onScroll, onScrollToBottom, fade, tabIndex, ...restProps } = this.props;
60
+ const { ref, children, className, bottomBorder, scrollableWrapperClassName, onScroll, onScrollToBottom, fade, tabIndex, ...restProps } = this.props;
61
61
  const { scrolledToTop, scrolledToBottom } = this.state;
62
62
  const classes = classNames(styles.content, className, {
63
63
  [styles.contentWithTopFade]: fade && !scrolledToTop,
@@ -75,11 +75,11 @@ class Content extends Component {
75
75
  </div>);
76
76
  }
77
77
  }
78
- const ContentWrapper = forwardRef((props, ref) => (<ScrollHandlerContext.Consumer>
78
+ const ContentWrapper = ({ ...props }) => (<ScrollHandlerContext.Consumer>
79
79
  {onScroll => {
80
80
  const addProps = onScroll ? { onScroll, bottomBorder: true } : {};
81
- return <Content {...props} {...addProps} ref={ref}/>;
81
+ return <Content {...props} {...addProps}/>;
82
82
  }}
83
- </ScrollHandlerContext.Consumer>));
83
+ </ScrollHandlerContext.Consumer>);
84
84
  ContentWrapper.displayName = 'ContentWrapper';
85
85
  export default ContentWrapper;
@@ -56,7 +56,7 @@ class Header extends Component {
56
56
  }
57
57
  : undefined;
58
58
  const titleStyle = this.getTitleStyle(phase);
59
- return (<div {...restProps} data-test='ring-island-header' className={classes} style={headerStyle}>
59
+ return (<div {...restProps} data-ring-island-header='' data-test='ring-island-header' className={classes} style={headerStyle}>
60
60
  {wrapWithTitle && (<h2 className={styles.title} style={titleStyle}>
61
61
  {children}
62
62
  </h2>)}
@@ -1,7 +1,7 @@
1
1
  import { PureComponent } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import dataTests from '../global/data-tests';
4
- import style from './table.css';
4
+ import style from './legacy-table.css';
5
5
  export default class Cell extends PureComponent {
6
6
  render() {
7
7
  const classes = classNames(style.cell, this.props.className);
@@ -4,7 +4,7 @@ import sortableIcon from '@jetbrains/icons/unsorted-12px';
4
4
  import sortedIcon from '@jetbrains/icons/chevron-12px-down';
5
5
  import Icon from '../icon/icon';
6
6
  import dataTests from '../global/data-tests';
7
- import style from './table.css';
7
+ import style from './legacy-table.css';
8
8
  export default class HeaderCell extends PureComponent {
9
9
  static defaultProps = {
10
10
  onSort: () => { },
@@ -3,7 +3,7 @@ import classNames from 'classnames';
3
3
  import Checkbox from '../checkbox/checkbox';
4
4
  import getUID from '../global/get-uid';
5
5
  import HeaderCell from './header-cell';
6
- import style from './table.css';
6
+ import style from './legacy-table.css';
7
7
  export default class Header extends PureComponent {
8
8
  static defaultProps = {
9
9
  selectable: true,
@@ -1,6 +1,6 @@
1
1
  import { PureComponent, type ReactElement } from 'react';
2
2
  import { type TableAttrs } from './table';
3
- import { type SelectionItem } from './selection';
3
+ import { type SelectionItem } from '../global/table-selection';
4
4
  type TableComponent = ReactElement<TableAttrs<SelectionItem>>;
5
5
  export interface MultiTableProps {
6
6
  children: TableComponent[];
@@ -55,7 +55,7 @@ export default class Row<T extends object> extends PureComponent<RowProps<T>> {
55
55
  onDoubleClick: () => void;
56
56
  row?: HTMLElement | null;
57
57
  rowRef: (el: HTMLElement | null) => void;
58
- composedRowRef: import("memoize-one").MemoizedFn<(...refs: (React.Ref<HTMLElement> | undefined)[]) => (value: T_1 | null) => void>;
58
+ composedRowRef: import("memoize-one").MemoizedFn<(...refs: (React.Ref<HTMLElement> | undefined)[]) => (value: T_1 | null) => () => void>;
59
59
  render(): React.JSX.Element;
60
60
  }
61
61
  export type RowAttrs<T extends object> = React.JSX.LibraryManagedAttributes<typeof Row, RowProps<T>>;
@@ -11,7 +11,7 @@ import dataTests from '../global/data-tests';
11
11
  import getUID from '../global/get-uid';
12
12
  import { createComposedRef } from '../global/compose-refs';
13
13
  import Cell from './cell';
14
- import style from './table.css';
14
+ import style from './legacy-table.css';
15
15
  const DragHandle = ({ alwaysShowDragHandle, dragHandleTitle = 'Drag to reorder' }) => {
16
16
  const classes = classNames(style.dragHandle, {
17
17
  [style.visibleDragHandle]: alwaysShowDragHandle,
@@ -1,6 +1,6 @@
1
- import type Selection from './selection';
2
- import type { SelectionItem } from './selection';
3
- export default function selectionAdapter(getSelection: () => Selection<SelectionItem>): {
1
+ import type TableSelection from '../global/table-selection';
2
+ import type { SelectionItem } from '../global/table-selection';
3
+ export default function selectionAdapter(getSelection: () => TableSelection<SelectionItem>): {
4
4
  readonly size: number;
5
5
  readonly items: SelectionItem[];
6
6
  };
@@ -1,16 +1,16 @@
1
1
  import { type ComponentClass } from 'react';
2
2
  import { type ShortcutsMap } from '../shortcuts/core';
3
- import type Selection from './selection';
3
+ import type TableSelection from '../global/table-selection';
4
4
  export interface SelectionShortcutsOuterProps<T extends object> {
5
- selection: Selection<T>;
5
+ selection: TableSelection<T>;
6
6
  selectable?: boolean | undefined;
7
- onSelect?: ((selection: Selection<T>) => void) | undefined;
7
+ onSelect?: ((selection: TableSelection<T>) => void) | undefined;
8
8
  shortcuts?: ShortcutsMap | undefined;
9
9
  }
10
10
  export interface SelectionShortcutsAddProps<T extends object> {
11
- selection: Selection<T>;
11
+ selection: TableSelection<T>;
12
12
  selectable: boolean;
13
- onSelect: (selection: Selection<T>) => void;
13
+ onSelect: (selection: TableSelection<T>) => void;
14
14
  shortcutsMap: ShortcutsMap;
15
15
  }
16
16
  export type SelectionShortcutsProps<T extends object, P> = Omit<P, keyof SelectionShortcutsAddProps<T>> & SelectionShortcutsOuterProps<T>;
@@ -1,6 +1,6 @@
1
1
  import { PureComponent } from 'react';
2
2
  import { type TableAttrs } from './table';
3
- import Selection, { type SelectionItem } from './selection';
3
+ import TableSelection, { type SelectionItem } from '../global/table-selection';
4
4
  export interface SimpleTableProps<T extends SelectionItem> extends Omit<TableAttrs<T>, 'selection' | 'onSelect' | 'selectable'> {
5
5
  }
6
6
  declare class SimpleTable<T extends SelectionItem> extends PureComponent<SimpleTableProps<T>> {
@@ -9,7 +9,7 @@ declare class SimpleTable<T extends SelectionItem> extends PureComponent<SimpleT
9
9
  wideFirstColumn: boolean;
10
10
  };
11
11
  state: {
12
- selection: Selection<T>;
12
+ selection: TableSelection<T>;
13
13
  };
14
14
  classes: string;
15
15
  render(): import("react").JSX.Element;
@@ -1,15 +1,15 @@
1
1
  import { PureComponent } from 'react';
2
2
  import classNames from 'classnames';
3
3
  import Table from './table';
4
- import Selection from './selection';
5
- import style from './table.css';
4
+ import TableSelection from '../global/table-selection';
5
+ import style from './legacy-table.css';
6
6
  class SimpleTable extends PureComponent {
7
7
  static defaultProps = {
8
8
  selectable: false,
9
9
  wideFirstColumn: false,
10
10
  };
11
11
  state = {
12
- selection: new Selection({
12
+ selection: new TableSelection({
13
13
  data: this.props.data,
14
14
  }),
15
15
  };
@@ -1,19 +1,19 @@
1
1
  import { PureComponent } from 'react';
2
2
  import { type TableAttrs } from './table';
3
- import Selection, { type SelectionItem } from './selection';
3
+ import TableSelection, { type SelectionItem } from '../global/table-selection';
4
4
  export interface SmartTableProps<T extends SelectionItem> extends Omit<TableAttrs<T>, 'selection' | 'onSelect'> {
5
- onSelectionChange: (selection: Selection<T>) => void;
6
- selection?: Selection<T>;
5
+ onSelectionChange: (selection: TableSelection<T>) => void;
6
+ selection?: TableSelection<T>;
7
7
  }
8
8
  declare class SmartTable<T extends SelectionItem> extends PureComponent<SmartTableProps<T>> {
9
9
  static defaultProps: {
10
10
  onSelectionChange: () => void;
11
11
  };
12
12
  state: {
13
- selection: Selection<T>;
13
+ selection: TableSelection<T>;
14
14
  };
15
15
  UNSAFE_componentWillReceiveProps(nextProps: SmartTableProps<T>): void;
16
- onSelect: (selection: Selection<T>) => void;
16
+ onSelect: (selection: TableSelection<T>) => void;
17
17
  render(): import("react").JSX.Element;
18
18
  }
19
19
  export default SmartTable;
@@ -1,12 +1,12 @@
1
1
  import { PureComponent } from 'react';
2
2
  import Table from './table';
3
- import Selection from './selection';
3
+ import TableSelection from '../global/table-selection';
4
4
  class SmartTable extends PureComponent {
5
5
  static defaultProps = {
6
6
  onSelectionChange: () => { },
7
7
  };
8
8
  state = {
9
- selection: new Selection({
9
+ selection: new TableSelection({
10
10
  data: this.props.data,
11
11
  isItemSelectable: this.props.isItemSelectable,
12
12
  }),
@@ -18,7 +18,7 @@ class SmartTable extends PureComponent {
18
18
  }
19
19
  else if (this.props.data !== data || this.props.isItemSelectable !== isItemSelectable) {
20
20
  this.setState({
21
- selection: new Selection({ data, isItemSelectable }),
21
+ selection: new TableSelection({ data, isItemSelectable }),
22
22
  });
23
23
  }
24
24
  }
@@ -13,7 +13,7 @@ import Header from './header';
13
13
  import selectionShortcutsHOC from './selection-shortcuts-hoc';
14
14
  import disableHoverHOC from './disable-hover-hoc';
15
15
  import Row from './row-with-focus-sensor';
16
- import style from './table.css';
16
+ import style from './legacy-table.css';
17
17
  /**
18
18
  * Interactive table with selection and keyboard navigation support.
19
19
  */
@@ -9,7 +9,6 @@ export declare enum Type {
9
9
  SEPARATOR = 0,
10
10
  LINK = 1,
11
11
  ITEM = 2,
12
- HINT = 3,// doesn't work, TODO remove in 8.0
13
12
  CUSTOM = 4,
14
13
  TITLE = 5,
15
14
  MARGIN = 6
@@ -6,7 +6,6 @@ export var Type;
6
6
  Type[Type["SEPARATOR"] = 0] = "SEPARATOR";
7
7
  Type[Type["LINK"] = 1] = "LINK";
8
8
  Type[Type["ITEM"] = 2] = "ITEM";
9
- Type[Type["HINT"] = 3] = "HINT";
10
9
  Type[Type["CUSTOM"] = 4] = "CUSTOM";
11
10
  Type[Type["TITLE"] = 5] = "TITLE";
12
11
  Type[Type["MARGIN"] = 6] = "MARGIN";
@@ -43,10 +43,6 @@ export interface ListProps<T = unknown> {
43
43
  maxHeight?: number | null | undefined;
44
44
  activeIndex?: number | null | undefined;
45
45
  useMouseUp?: boolean | null | undefined;
46
- /**
47
- * @deprecated No longer used. Visibility is detected automatically via IntersectionObserver. Will be removed in Ring UI 8.0.
48
- */
49
- visible?: boolean | null | undefined;
50
46
  disableMoveOverflow?: boolean | null | undefined;
51
47
  compact?: boolean | null | undefined;
52
48
  disableScrollToActive?: boolean | null | undefined;
@@ -7,9 +7,12 @@ const reactRoot = createRoot(containerElement);
7
7
  * Renders LoginDialog into virtual node to skip maintaining container
8
8
  */
9
9
  function renderLoginDialog(props) {
10
- reactRoot.render(<ControlsHeightContext.Provider value={getGlobalControlsHeight()}>
10
+ if (!containerElement.isConnected) {
11
+ document.body.appendChild(containerElement);
12
+ }
13
+ reactRoot.render(<ControlsHeightContext value={getGlobalControlsHeight()}>
11
14
  <LoginDialog {...props}/>
12
- </ControlsHeightContext.Provider>);
15
+ </ControlsHeightContext>);
13
16
  }
14
17
  function noop() { }
15
18
  export default function showAuthDialog(props = { onCancel: noop }) {
@@ -13,6 +13,6 @@
13
13
  }
14
14
 
15
15
  & > button:not(:last-child) {
16
- margin-right: var(--ring-unit);
16
+ margin-inline-end: var(--ring-unit);
17
17
  }
18
18
  }