@jetbrains/ring-ui 4.1.0-beta.3 → 4.1.1

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 (234) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +17 -15
  3. package/babel.config.js +3 -2
  4. package/components/alert/alert.js +9 -3
  5. package/components/alert/alert.test.js +21 -48
  6. package/components/alert/container.css +1 -1
  7. package/components/alert/container.test.js +3 -13
  8. package/components/alert-service/alert-service.examples.css +18 -0
  9. package/components/alert-service/alert-service.examples.js +21 -0
  10. package/components/alert-service/alert-service.js +10 -3
  11. package/components/analytics/analytics__fus-plugin.js +3 -3
  12. package/components/analytics/analytics__ga-plugin.js +2 -2
  13. package/components/auth/auth.test.js +14 -7
  14. package/components/auth/auth__core.js +64 -33
  15. package/components/auth-dialog/auth-dialog.css +2 -3
  16. package/components/auth-dialog/auth-dialog.js +4 -1
  17. package/components/auth-dialog/auth-dialog.test.js +3 -19
  18. package/components/avatar/avatar.css +4 -1
  19. package/components/avatar/avatar.examples.js +3 -2
  20. package/components/avatar/avatar.js +34 -6
  21. package/components/avatar/avatar.test.js +20 -17
  22. package/components/avatar/fallback-avatar.js +136 -0
  23. package/components/avatar-editor-ng/avatar-editor-ng.css +2 -2
  24. package/components/avatar-editor-ng/avatar-editor-ng.js +2 -1
  25. package/components/avatar-editor-ng/{avatar-editor-ng.html → avatar-editor-ng__template.js} +2 -2
  26. package/components/badge/badge.test.js +13 -20
  27. package/components/button/button.css +2 -2
  28. package/components/button/button.js +4 -1
  29. package/components/button/button.test.js +32 -33
  30. package/components/button-group/button-group.js +1 -1
  31. package/components/button-group/caption.js +1 -1
  32. package/components/button-ng/button-ng.js +1 -1
  33. package/components/button-set-ng/button-set-ng.js +3 -1
  34. package/components/checkbox/checkbox.css +1 -1
  35. package/components/code/code.js +2 -5
  36. package/components/confirm/confirm.js +1 -0
  37. package/components/confirm-service/confirm-service.js +5 -5
  38. package/components/content-layout/content-layout.css +1 -1
  39. package/components/data-list/data-list.css +1 -1
  40. package/components/date-picker/date-input.js +5 -4
  41. package/components/date-picker/date-picker.css +34 -22
  42. package/components/date-picker/date-picker.js +16 -14
  43. package/components/date-picker/date-popup.js +22 -7
  44. package/components/date-picker/month-names.js +8 -5
  45. package/components/date-picker/month.js +6 -2
  46. package/components/date-picker/weekdays.js +10 -2
  47. package/components/dialog/dialog.examples.js +3 -1
  48. package/components/dialog/dialog.js +10 -5
  49. package/components/dialog/dialog.test.js +1 -1
  50. package/components/dialog/dialog__body-scroll-preventer.js +51 -31
  51. package/components/dialog-ng/dialog-ng.js +10 -10
  52. package/components/dialog-ng/{dialog-ng.html → dialog-ng__template.js} +2 -2
  53. package/components/dropdown/dropdown.examples.js +36 -1
  54. package/components/dropdown/dropdown.test.js +2 -2
  55. package/components/dropdown-menu/dropdown-menu.examples.js +47 -0
  56. package/components/dropdown-menu/dropdown-menu.js +117 -0
  57. package/components/dropdown-menu/dropdown-menu.test.js +76 -0
  58. package/components/error-bubble/error-bubble-legacy.css +1 -1
  59. package/components/error-bubble/error-bubble.css +1 -1
  60. package/components/error-bubble/error-bubble.examples.js +1 -1
  61. package/components/error-page/error-page.css +2 -2
  62. package/components/footer-ng/footer-ng.js +13 -3
  63. package/components/form/form.css +2 -2
  64. package/components/form-ng/form-ng.js +3 -1
  65. package/components/global/global.css +1 -1
  66. package/components/global/theme.js +1 -1
  67. package/components/global/variables.css +8 -1
  68. package/components/grid/grid.css +10 -9
  69. package/components/header/header.css +1 -1
  70. package/components/header/header.examples.js +7 -8
  71. package/components/header/profile.js +10 -11
  72. package/components/http/http.js +1 -1
  73. package/components/icon/icon.css +5 -4
  74. package/components/input/input-legacy.css +7 -7
  75. package/components/island/header.js +2 -2
  76. package/components/island/island.css +8 -3
  77. package/components/island-legacy/island-legacy.css +3 -1
  78. package/components/list/list.js +6 -1
  79. package/components/list/list__custom.js +9 -3
  80. package/components/list/list__item.js +8 -2
  81. package/components/list/list__link.js +2 -1
  82. package/components/loader-inline/loader-inline.css +1 -1
  83. package/components/loader-screen/loader-screen.css +1 -1
  84. package/components/message/message.css +1 -1
  85. package/components/message/message.examples.js +8 -7
  86. package/components/pager/pager.js +5 -3
  87. package/components/permissions/permissions.js +1 -1
  88. package/components/popup/popup.js +1 -1
  89. package/components/popup/popup.test.js +15 -13
  90. package/components/progress-bar/progress-bar.css +1 -1
  91. package/components/progress-bar/progress-bar.examples.js +3 -3
  92. package/components/progress-bar/progress-bar.js +5 -2
  93. package/components/progress-bar/progress-bar.test.js +12 -13
  94. package/components/progress-bar-ng/progress-bar-ng.examples.js +3 -3
  95. package/components/query-assist/query-assist.css +13 -3
  96. package/components/query-assist/query-assist.examples.js +3 -4
  97. package/components/query-assist/query-assist.js +56 -12
  98. package/components/query-assist/query-assist.test.js +37 -5
  99. package/components/save-field-ng/save-field-ng.css +0 -3
  100. package/components/save-field-ng/save-field-ng.js +3 -1
  101. package/components/save-field-ng/{save-field-ng.html → save-field-ng__template.js} +2 -2
  102. package/components/select/select.css +12 -7
  103. package/components/select/select.examples.js +13 -0
  104. package/components/select/select.js +30 -43
  105. package/components/select/select.test.js +4 -5
  106. package/components/select/select__popup.js +1 -0
  107. package/components/shortcuts-hint-ng/shortcuts-hint-ng.css +1 -1
  108. package/components/shortcuts-hint-ng/shortcuts-hint-ng.js +1 -1
  109. package/components/shortcuts-hint-ng/{shortcuts-hint-ng.html → shortcuts-hint-ng__template.js} +2 -2
  110. package/components/sidebar/sidebar.css +1 -0
  111. package/components/sidebar-ng/sidebar-ng.js +6 -2
  112. package/components/sidebar-ng/{sidebar-ng__button.html → sidebar-ng__button-template.js} +2 -2
  113. package/components/sidebar-ng/{sidebar-ng.html → sidebar-ng__template.js} +2 -2
  114. package/components/table/header.js +9 -1
  115. package/components/table/row.js +2 -1
  116. package/components/table/table.css +2 -1
  117. package/components/table-legacy/table-legacy.css +2 -2
  118. package/components/table-legacy/table-legacy__toolbar.css +2 -2
  119. package/components/table-legacy-ng/table-legacy-ng.js +38 -5
  120. package/components/table-legacy-ng/table-legacy-ng__pager.js +7 -1
  121. package/components/tabs/collapsible-tab.js +2 -2
  122. package/components/tabs/collapsible-tabs.js +5 -9
  123. package/components/tabs/tab-link.js +4 -2
  124. package/components/tabs/tabs.css +32 -5
  125. package/components/tabs-ng/tabs-ng.js +4 -2
  126. package/components/tabs-ng/{tabs-ng.html → tabs-ng__template.js} +6 -2
  127. package/components/tag/tag.css +5 -2
  128. package/components/tag/tag.examples.js +3 -0
  129. package/components/tag/tag.js +19 -16
  130. package/components/tags-input/tag-input.examples.js +1 -1
  131. package/components/tags-input/tags-input.js +5 -2
  132. package/components/template-ng/template-ng.js +1 -1
  133. package/components/tooltip/tooltip.js +7 -2
  134. package/components/user-agreement/user-agreement.css +1 -5
  135. package/components/user-agreement/user-agreement.examples.js +7 -6
  136. package/components/user-agreement/user-agreement.js +11 -3
  137. package/package.json +85 -83
  138. package/webpack.config.js +14 -10
  139. package/components/button-set-ng/button-set-ng.html +0 -1
  140. package/components/footer-ng/footer-ng.html +0 -13
  141. package/components/form-ng/form-ng__error-bubble.html +0 -3
  142. package/components/table-legacy-ng/table-legacy-ng.html +0 -4
  143. package/components/table-legacy-ng/table-legacy-ng__column.html +0 -12
  144. package/components/table-legacy-ng/table-legacy-ng__header.html +0 -4
  145. package/components/table-legacy-ng/table-legacy-ng__pager.html +0 -7
  146. package/components/table-legacy-ng/table-legacy-ng__row.html +0 -12
  147. package/components/table-legacy-ng/table-legacy-ng__title.html +0 -9
  148. package/dist/_helpers/_rollupPluginBabelHelpers.js +0 -123
  149. package/dist/_helpers/background-flow.js +0 -232
  150. package/dist/_helpers/badge.js +0 -3
  151. package/dist/_helpers/button.js +0 -145
  152. package/dist/_helpers/clickableLink.js +0 -65
  153. package/dist/_helpers/data-tests.js +0 -15
  154. package/dist/_helpers/disable-hover-hoc.js +0 -407
  155. package/dist/_helpers/dom.js +0 -101
  156. package/dist/_helpers/get-uid.js +0 -15
  157. package/dist/_helpers/linear-function.js +0 -17
  158. package/dist/_helpers/list.js +0 -1327
  159. package/dist/_helpers/logo.js +0 -36
  160. package/dist/_helpers/memoize.js +0 -17
  161. package/dist/_helpers/popup.js +0 -691
  162. package/dist/_helpers/popup.target.js +0 -27
  163. package/dist/_helpers/rerender-hoc.js +0 -49
  164. package/dist/_helpers/schedule-raf.js +0 -31
  165. package/dist/_helpers/sniffer.js +0 -6
  166. package/dist/_helpers/theme.js +0 -40
  167. package/dist/_helpers/url.js +0 -125
  168. package/dist/alert-service.js +0 -149
  169. package/dist/alert.js +0 -284
  170. package/dist/analytics.js +0 -116
  171. package/dist/auth-dialog-service.js +0 -56
  172. package/dist/auth-dialog.js +0 -122
  173. package/dist/auth.js +0 -1744
  174. package/dist/avatar.js +0 -152
  175. package/dist/badge.js +0 -52
  176. package/dist/button-group.js +0 -48
  177. package/dist/button-set.js +0 -27
  178. package/dist/button-toolbar.js +0 -30
  179. package/dist/button.js +0 -12
  180. package/dist/caret.js +0 -262
  181. package/dist/checkbox.js +0 -108
  182. package/dist/confirm-service.js +0 -102
  183. package/dist/confirm.js +0 -113
  184. package/dist/content-layout.js +0 -184
  185. package/dist/contenteditable.js +0 -81
  186. package/dist/data-list.js +0 -466
  187. package/dist/date-picker.js +0 -1398
  188. package/dist/dialog.js +0 -223
  189. package/dist/dropdown.js +0 -250
  190. package/dist/error-bubble.js +0 -56
  191. package/dist/error-message.js +0 -53
  192. package/dist/footer.js +0 -124
  193. package/dist/grid.js +0 -148
  194. package/dist/group.js +0 -34
  195. package/dist/header.js +0 -658
  196. package/dist/heading.js +0 -76
  197. package/dist/http.js +0 -207
  198. package/dist/hub-source.js +0 -130
  199. package/dist/icon.js +0 -211
  200. package/dist/input.js +0 -228
  201. package/dist/island.js +0 -314
  202. package/dist/link.js +0 -117
  203. package/dist/list.js +0 -29
  204. package/dist/loader-inline.js +0 -165
  205. package/dist/loader-screen.js +0 -45
  206. package/dist/loader.js +0 -338
  207. package/dist/login-dialog.js +0 -173
  208. package/dist/logo.js +0 -8
  209. package/dist/message.js +0 -226
  210. package/dist/old-browsers-message.js +0 -129
  211. package/dist/pager.js +0 -325
  212. package/dist/panel.js +0 -34
  213. package/dist/permissions.js +0 -466
  214. package/dist/popup-menu.js +0 -93
  215. package/dist/popup.js +0 -16
  216. package/dist/progress-bar.js +0 -111
  217. package/dist/proxy-attrs.js +0 -19
  218. package/dist/query-assist.js +0 -1081
  219. package/dist/radio.js +0 -112
  220. package/dist/select.js +0 -1920
  221. package/dist/selection.js +0 -213
  222. package/dist/shortcuts.js +0 -307
  223. package/dist/storage.js +0 -373
  224. package/dist/style.css +0 -1
  225. package/dist/tab-trap.js +0 -174
  226. package/dist/table.js +0 -903
  227. package/dist/tabs.js +0 -721
  228. package/dist/tag.js +0 -187
  229. package/dist/tags-input.js +0 -440
  230. package/dist/tags-list.js +0 -91
  231. package/dist/text.js +0 -38
  232. package/dist/toggle.js +0 -80
  233. package/dist/tooltip.js +0 -202
  234. package/dist/user-card.js +0 -218
package/dist/input.js DELETED
@@ -1,228 +0,0 @@
1
- import { b as _defineProperty, _ as _objectWithoutProperties, a as _extends } from './_helpers/_rollupPluginBabelHelpers.js';
2
- import React, { PureComponent } from 'react';
3
- import PropTypes from 'prop-types';
4
- import classNames from 'classnames';
5
- import closeIcon from '@jetbrains/icons/close';
6
- import { w as withTheme } from './_helpers/theme.js';
7
- export { T as Theme } from './_helpers/theme.js';
8
- import { B as Button } from './_helpers/button.js';
9
- import { g as getUID } from './_helpers/get-uid.js';
10
- import Icon from './icon.js';
11
- import 'focus-visible';
12
- import '@jetbrains/icons/chevron-10px';
13
- import './_helpers/clickableLink.js';
14
- import 'util-deprecate';
15
- import './_helpers/memoize.js';
16
-
17
- var modules_88cfaf40 = {"unit":"8px","iconOffset":"22px","input":"input_input__74bd3acf","container":"input_container__74bd3acf global_fontLower__0f8f4370 global_font__0f8f4370","compact":"input_compact__74bd3acf","clearable":"input_clearable__74bd3acf","light":"input_light__74bd3acf","dark":"input_dark__74bd3acf","withIcon":"input_withIcon__74bd3acf","label":"input_label__74bd3acf","icon":"input_icon__74bd3acf","clear":"input_clear__74bd3acf","empty":"input_empty__74bd3acf","active":"input_active__74bd3acf","noLabel":"input_noLabel__74bd3acf","error":"input_error__74bd3acf","underline":"input_underline__74bd3acf","focusUnderline":"input_focusUnderline__74bd3acf","errorUnderline":"input_errorUnderline__74bd3acf","errorText":"input_errorText__74bd3acf","sizeS":"input_sizeS__74bd3acf","sizeM":"input_sizeM__74bd3acf","sizeL":"input_sizeL__74bd3acf","sizeFULL":"input_sizeFULL__74bd3acf"};
18
-
19
- function noop() {}
20
- /**
21
- * @name Input
22
- */
23
-
24
-
25
- const Size = {
26
- AUTO: 'Auto',
27
- S: 'S',
28
- M: 'M',
29
- L: 'L',
30
- FULL: 'FULL'
31
- };
32
- class Input extends PureComponent {
33
- constructor(...args) {
34
- super(...args);
35
-
36
- _defineProperty(this, "state", {
37
- empty: true
38
- });
39
-
40
- _defineProperty(this, "id", getUID('ring-input-'));
41
-
42
- _defineProperty(this, "underlineRef", el => {
43
- this.underlineNode = el;
44
- });
45
-
46
- _defineProperty(this, "inputRef", el => {
47
- const {
48
- inputRef
49
- } = this.props;
50
- this.input = el;
51
-
52
- if (typeof inputRef === 'function') {
53
- inputRef(el);
54
- } else {
55
- inputRef.current = el;
56
- }
57
- });
58
-
59
- _defineProperty(this, "clear", e => {
60
- this.props.onClear && this.props.onClear(e);
61
- });
62
-
63
- _defineProperty(this, "handleChange", e => {
64
- this.props.onChange(e);
65
- this.checkValue(e.target);
66
- });
67
- }
68
-
69
- componentDidMount() {
70
- this.adapt();
71
- }
72
-
73
- componentDidUpdate() {
74
- this.adapt();
75
- }
76
-
77
- getId() {
78
- return this.props.id || this.id;
79
- }
80
-
81
- checkValue() {
82
- this.setState({
83
- empty: !this.input.value
84
- });
85
-
86
- if (this.props.multiline && this.input.scrollHeight > this.input.clientHeight) {
87
- this.stretch(this.input);
88
- }
89
- }
90
-
91
- stretch(el) {
92
- if (!el || !el.style) {
93
- return;
94
- }
95
-
96
- el.style.height = `${el.scrollHeight}px`;
97
- }
98
-
99
- adapt() {
100
- this.checkValue();
101
- this.stretch(this.underlineNode);
102
- }
103
-
104
- render() {
105
- const _this$props = this.props,
106
- {
107
- // Modifiers
108
- theme,
109
- size,
110
- active,
111
- multiline,
112
- borderless,
113
- compact,
114
- // Props
115
- label,
116
- error,
117
- className,
118
- inputClassName,
119
- children,
120
- value,
121
- onClear,
122
- disabled,
123
- inputRef,
124
- onChange,
125
- enableShortcuts,
126
- id,
127
- placeholder,
128
- icon,
129
- renderUnderline
130
- } = _this$props,
131
- restProps = _objectWithoutProperties(_this$props, ["theme", "size", "active", "multiline", "borderless", "compact", "label", "error", "className", "inputClassName", "children", "value", "onClear", "disabled", "inputRef", "onChange", "enableShortcuts", "id", "placeholder", "icon", "renderUnderline"]);
132
-
133
- const minimizeMargins = compact || borderless;
134
- const {
135
- empty
136
- } = this.state;
137
- const clearable = !!onClear;
138
- const classes = classNames(modules_88cfaf40.container, className, modules_88cfaf40[theme], [modules_88cfaf40[`size${size}`]], {
139
- 'ring-js-shortcuts': enableShortcuts === true,
140
- [modules_88cfaf40.active]: active,
141
- [modules_88cfaf40.error]: error != null,
142
- [modules_88cfaf40.empty]: empty,
143
- [modules_88cfaf40.noLabel]: !this.props.label,
144
- [modules_88cfaf40.withIcon]: icon != null,
145
- [modules_88cfaf40.clearable]: clearable,
146
- [modules_88cfaf40.compact]: minimizeMargins
147
- });
148
- const inputClasses = classNames(modules_88cfaf40.input, inputClassName);
149
- const TagName = multiline ? 'textarea' : 'input';
150
- const text = value != null ? value : children;
151
- return /*#__PURE__*/React.createElement("div", {
152
- className: classes,
153
- "data-test": "ring-input"
154
- }, icon && /*#__PURE__*/React.createElement(Icon, {
155
- glyph: icon,
156
- className: modules_88cfaf40.icon
157
- }), /*#__PURE__*/React.createElement(TagName, _extends({
158
- ref: this.inputRef,
159
- onChange: this.handleChange,
160
- className: inputClasses,
161
- value: text,
162
- rows: multiline ? 1 : null,
163
- disabled: disabled,
164
- id: this.getId(),
165
- placeholder: placeholder,
166
- "aria-label": typeof label === 'string' && label ? label : placeholder,
167
- "data-enabled-shortcuts": Array.isArray(enableShortcuts) ? enableShortcuts.join(',') : null
168
- }, restProps)), clearable && !disabled && /*#__PURE__*/React.createElement(Button, {
169
- title: "Clear input",
170
- "data-test": "ring-input-clear",
171
- className: modules_88cfaf40.clear,
172
- icon: closeIcon,
173
- onClick: this.clear
174
- }), !minimizeMargins && /*#__PURE__*/React.createElement("label", {
175
- htmlFor: this.getId(),
176
- className: modules_88cfaf40.label
177
- }, label), !borderless && /*#__PURE__*/React.createElement("div", {
178
- className: modules_88cfaf40.underline
179
- }), !borderless && /*#__PURE__*/React.createElement("div", {
180
- className: modules_88cfaf40.focusUnderline
181
- }), !minimizeMargins && /*#__PURE__*/React.createElement("div", {
182
- className: modules_88cfaf40.errorUnderline
183
- }), !minimizeMargins && renderUnderline(this.underlineRef, error));
184
- }
185
-
186
- }
187
-
188
- _defineProperty(Input, "propTypes", {
189
- value: PropTypes.string,
190
- theme: PropTypes.string,
191
- className: PropTypes.string,
192
- inputClassName: PropTypes.string,
193
- size: PropTypes.string,
194
- label: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),
195
- active: PropTypes.bool,
196
- error: PropTypes.string,
197
- multiline: PropTypes.bool,
198
- borderless: PropTypes.bool,
199
- compact: PropTypes.bool,
200
- onChange: PropTypes.func,
201
- onClear: PropTypes.func,
202
- inputRef: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({
203
- current: PropTypes.instanceOf(HTMLInputElement)
204
- })]),
205
- children: PropTypes.string,
206
- enableShortcuts: PropTypes.oneOfType([PropTypes.bool, PropTypes.arrayOf(PropTypes.string)]),
207
- disabled: PropTypes.bool,
208
- id: PropTypes.string,
209
- placeholder: PropTypes.string,
210
- icon: PropTypes.oneOfType([PropTypes.string, PropTypes.elementType]),
211
- renderUnderline: PropTypes.func
212
- });
213
-
214
- _defineProperty(Input, "defaultProps", {
215
- size: Size.M,
216
- onChange: noop,
217
- inputRef: noop,
218
- enableShortcuts: ['esc'],
219
- renderUnderline: (underlineRef, errorText) => /*#__PURE__*/React.createElement("div", {
220
- className: modules_88cfaf40.errorText,
221
- ref: underlineRef
222
- }, errorText)
223
- });
224
-
225
- var Input$1 = withTheme()(Input);
226
-
227
- export default Input$1;
228
- export { Input, Size };
package/dist/island.js DELETED
@@ -1,314 +0,0 @@
1
- import { b as _defineProperty, a as _extends, _ as _objectWithoutProperties } from './_helpers/_rollupPluginBabelHelpers.js';
2
- import React, { createContext, Component } from 'react';
3
- import PropTypes from 'prop-types';
4
- import classNames from 'classnames';
5
- import { j as joinDataTestAttributes } from './_helpers/data-tests.js';
6
- import { i as interpolateLinear } from './_helpers/linear-function.js';
7
- import createResizeDetector from 'element-resize-detector';
8
- import { s as scheduleRAF } from './_helpers/schedule-raf.js';
9
-
10
- const TITLE_RESIZE_END = 20;
11
- const TITLE_RESIZE_THRESHOLD = 36;
12
- const PhaseContext = /*#__PURE__*/createContext();
13
- const ScrollHandlerContext = /*#__PURE__*/createContext();
14
- function adaptiveIslandHOC(ComposedComponent) {
15
- var _class, _temp;
16
-
17
- return _temp = _class = class AdaptiveIsland extends Component {
18
- constructor(...args) {
19
- super(...args);
20
-
21
- _defineProperty(this, "state", {
22
- phase: 0
23
- });
24
-
25
- _defineProperty(this, "onContentScroll", ({
26
- scrollTop,
27
- scrollHeight,
28
- clientHeight
29
- }) => {
30
- if (scrollHeight - clientHeight >= interpolateLinear(TITLE_RESIZE_THRESHOLD, TITLE_RESIZE_END, this.state.phase)) {
31
- const phase = Math.min(1, scrollTop / TITLE_RESIZE_END);
32
- this.setState({
33
- phase
34
- });
35
- }
36
- });
37
- }
38
-
39
- render() {
40
- return /*#__PURE__*/React.createElement(PhaseContext.Provider, {
41
- value: this.state.phase
42
- }, /*#__PURE__*/React.createElement(ScrollHandlerContext.Provider, {
43
- value: this.onContentScroll
44
- }, /*#__PURE__*/React.createElement(ComposedComponent, this.props)));
45
- }
46
-
47
- }, _defineProperty(_class, "propTypes", ComposedComponent.propTypes), _temp;
48
- }
49
-
50
- var modules_e6a056e1 = {"unit":"8px","gradientStart":"hsla(0,0%,100%,0)","gradientStop":"var(--ring-content-background-color)","island":"island_island__98f8ff45","withTransparentBottomBorder":"island_withTransparentBottomBorder__98f8ff45","header":"island_header__98f8ff45 island_withTransparentBottomBorder__98f8ff45","withBottomBorder":"island_withBottomBorder__98f8ff45","title":"island_title__98f8ff45","narrowIsland":"island_narrowIsland__98f8ff45","content":"island_content__98f8ff45","scrollableWrapper":"island_scrollableWrapper__98f8ff45","withoutPaddings":"island_withoutPaddings__98f8ff45","contentWithTopFade":"island_contentWithTopFade__98f8ff45","contentWithBottomFade":"island_contentWithBottomFade__98f8ff45"};
51
-
52
- const Start = {
53
- FONT_SIZE: 24,
54
- LINE_HEIGHT: 28,
55
- PADDING: 16
56
- };
57
- const End = {
58
- FONT_SIZE: 13,
59
- LINE_HEIGHT: 28,
60
- // Compensation
61
- X: 0.4,
62
- Y: 0.1,
63
- SPACING: 1.09
64
- };
65
- const BORDER_APPEAR_PHASE = 0.5;
66
-
67
- class Header extends Component {
68
- style(name) {
69
- return interpolateLinear(Start[name] || 0, End[name] || 0, this.props.phase);
70
- }
71
-
72
- render() {
73
- const _this$props = this.props,
74
- {
75
- children,
76
- className,
77
- wrapWithTitle,
78
- border,
79
- phase
80
- } = _this$props,
81
- restProps = _objectWithoutProperties(_this$props, ["children", "className", "wrapWithTitle", "border", "phase"]);
82
-
83
- const classes = classNames(modules_e6a056e1.header, className, {
84
- [modules_e6a056e1.withBottomBorder]: border || phase >= BORDER_APPEAR_PHASE
85
- });
86
- const headerStyle = phase != null ? {
87
- lineHeight: `${this.style('LINE_HEIGHT')}px`,
88
- // need to append px because number is a valid line-height value
89
- paddingTop: this.style('PADDING')
90
- } : null;
91
- const scaleFont = phase != null && this.style('FONT_SIZE') / Start.FONT_SIZE;
92
- const titleStyle = phase != null && phase < 1 ? {
93
- fontSize: Start.FONT_SIZE,
94
- transform: `translate(${this.style('X')}px, ${this.style('Y')}px) scale(${scaleFont})`,
95
- letterSpacing: this.style('SPACING')
96
- } : null;
97
- return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
98
- "data-test": "ring-island-header",
99
- className: classes,
100
- style: headerStyle
101
- }), wrapWithTitle && /*#__PURE__*/React.createElement("div", {
102
- className: modules_e6a056e1.title,
103
- style: titleStyle
104
- }, children), !wrapWithTitle && children);
105
- }
106
-
107
- }
108
-
109
- _defineProperty(Header, "propTypes", {
110
- children: PropTypes.node,
111
- className: PropTypes.string,
112
- border: PropTypes.bool,
113
- wrapWithTitle: PropTypes.bool,
114
- phase: PropTypes.number
115
- });
116
-
117
- _defineProperty(Header, "defaultProps", {
118
- wrapWithTitle: true
119
- });
120
-
121
- const HeaderWrapper = props => /*#__PURE__*/React.createElement(PhaseContext.Consumer, null, phase => {
122
- const addProps = phase != null ? {
123
- phase
124
- } : {};
125
- return /*#__PURE__*/React.createElement(Header, _extends({}, props, addProps));
126
- });
127
-
128
- const scheduleScrollAction = scheduleRAF();
129
-
130
- const noop = () => {};
131
-
132
- const END_DISTANCE = 16;
133
-
134
- class Content extends Component {
135
- constructor(...args) {
136
- super(...args);
137
-
138
- _defineProperty(this, "state", {
139
- scrolledToTop: true,
140
- scrolledToBottom: false
141
- });
142
-
143
- _defineProperty(this, "resizeDetector", createResizeDetector({
144
- strategy: 'scroll'
145
- }));
146
-
147
- _defineProperty(this, "setWrapper", node => {
148
- if (!node) {
149
- return;
150
- }
151
-
152
- this.wrapperNode = node;
153
- this.resizeDetector.listenTo(node, this.calculateScrollPosition);
154
- });
155
-
156
- _defineProperty(this, "calculateScrollPosition", () => scheduleScrollAction(() => {
157
- const {
158
- scrollableNode
159
- } = this;
160
-
161
- if (!scrollableNode) {
162
- return;
163
- }
164
-
165
- const {
166
- scrollTop,
167
- scrollHeight,
168
- offsetHeight
169
- } = scrollableNode;
170
- const scrolledToTop = scrollTop === 0;
171
- const scrolledToBottom = offsetHeight + scrollTop >= scrollHeight - END_DISTANCE;
172
-
173
- if (scrolledToBottom) {
174
- this.props.onScrollToBottom();
175
- }
176
-
177
- this.setState({
178
- scrolledToTop,
179
- scrolledToBottom
180
- });
181
- }));
182
-
183
- _defineProperty(this, "onScroll", () => {
184
- this.props.onScroll(this.scrollableNode);
185
- this.calculateScrollPosition();
186
- });
187
-
188
- _defineProperty(this, "setScrollableNodeAndCalculatePosition", node => {
189
- if (!node) {
190
- return;
191
- }
192
-
193
- this.scrollableNode = node;
194
- this.calculateScrollPosition();
195
- });
196
- }
197
-
198
- componentWillUnmount() {
199
- this.scrollableNode = null;
200
-
201
- if (!this.wrapperNode) {
202
- return;
203
- }
204
-
205
- this.resizeDetector.removeAllListeners(this.wrapperNode);
206
- }
207
-
208
- render() {
209
- const _this$props = this.props,
210
- {
211
- children,
212
- className,
213
- bottomBorder,
214
- scrollableWrapperClassName,
215
- onScroll,
216
- onScrollToBottom,
217
- fade
218
- } = _this$props,
219
- restProps = _objectWithoutProperties(_this$props, ["children", "className", "bottomBorder", "scrollableWrapperClassName", "onScroll", "onScrollToBottom", "fade"]);
220
-
221
- const {
222
- scrolledToTop,
223
- scrolledToBottom
224
- } = this.state;
225
- const classes = classNames(modules_e6a056e1.content, className, {
226
- [modules_e6a056e1.contentWithTopFade]: fade && !scrolledToTop,
227
- [modules_e6a056e1.contentWithBottomFade]: fade && !scrolledToBottom,
228
- [modules_e6a056e1.withTransparentBottomBorder]: bottomBorder,
229
- [modules_e6a056e1.withBottomBorder]: bottomBorder && !scrolledToBottom
230
- });
231
- const scrollableWrapperClasses = classNames(modules_e6a056e1.scrollableWrapper, scrollableWrapperClassName);
232
- return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
233
- "data-test": "ring-island-content",
234
- className: classes
235
- }), /*#__PURE__*/React.createElement("div", {
236
- // it has to be focusable because it can be scrollable
237
- // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
238
- tabIndex: 0,
239
- "data-scrollable-container": true,
240
- className: scrollableWrapperClasses,
241
- ref: this.setScrollableNodeAndCalculatePosition,
242
- onScroll: fade ? this.onScroll : noop
243
- }, fade && /*#__PURE__*/React.createElement("div", {
244
- ref: this.setWrapper
245
- }, children), !fade && children));
246
- }
247
-
248
- }
249
-
250
- _defineProperty(Content, "propTypes", {
251
- children: PropTypes.node,
252
- className: PropTypes.string,
253
- scrollableWrapperClassName: PropTypes.string,
254
- fade: PropTypes.bool,
255
- bottomBorder: PropTypes.bool,
256
- onScroll: PropTypes.func,
257
- onScrollToBottom: PropTypes.func
258
- });
259
-
260
- _defineProperty(Content, "defaultProps", {
261
- fade: true,
262
- bottomBorder: false,
263
- onScroll: noop,
264
- onScrollToBottom: noop
265
- });
266
-
267
- const ContentWrapper = props => /*#__PURE__*/React.createElement(ScrollHandlerContext.Consumer, null, onScroll => {
268
- const addProps = onScroll != null ? {
269
- onScroll,
270
- bottomBorder: true
271
- } : {};
272
- return /*#__PURE__*/React.createElement(Content, _extends({}, props, addProps));
273
- });
274
-
275
- /**
276
- * @name Island
277
- */
278
-
279
- class Island extends Component {
280
- render() {
281
- const _this$props = this.props,
282
- {
283
- children,
284
- className,
285
- narrow,
286
- withoutPaddings,
287
- 'data-test': dataTest
288
- } = _this$props,
289
- restProps = _objectWithoutProperties(_this$props, ["children", "className", "narrow", "withoutPaddings", "data-test"]);
290
-
291
- const classes = classNames(modules_e6a056e1.island, className, {
292
- [modules_e6a056e1.narrowIsland]: narrow,
293
- [modules_e6a056e1.withoutPaddings]: withoutPaddings
294
- });
295
- return /*#__PURE__*/React.createElement("div", _extends({}, restProps, {
296
- className: classes,
297
- "data-test": joinDataTestAttributes('ring-island', dataTest)
298
- }), children);
299
- }
300
-
301
- }
302
-
303
- _defineProperty(Island, "propTypes", {
304
- children: PropTypes.node,
305
- className: PropTypes.string,
306
- narrow: PropTypes.bool,
307
- withoutPaddings: PropTypes.bool,
308
- 'data-test': PropTypes.string
309
- });
310
-
311
- const AdaptiveIsland = adaptiveIslandHOC(Island);
312
-
313
- export default Island;
314
- export { AdaptiveIsland, ContentWrapper as Content, HeaderWrapper as Header };
package/dist/link.js DELETED
@@ -1,117 +0,0 @@
1
- import { b as _defineProperty, _ as _objectWithoutProperties, a as _extends } from './_helpers/_rollupPluginBabelHelpers.js';
2
- import 'focus-visible';
3
- import React, { Component, memo } from 'react';
4
- import PropTypes from 'prop-types';
5
- import classNames from 'classnames';
6
- import { m as memoize } from './_helpers/memoize.js';
7
- import { j as joinDataTestAttributes } from './_helpers/data-tests.js';
8
- import { C as ClickableLink } from './_helpers/clickableLink.js';
9
-
10
- var modules_607b0772 = {"link":"link_link__21bf811c alert_link__9b217ed4","hover":"link_hover__21bf811c","inner":"link_inner__21bf811c","active":"link_active__21bf811c","compatibilityUnderlineMode":"link_compatibilityUnderlineMode__21bf811c","pseudo":"link_pseudo__21bf811c","text":"link_text__21bf811c","inherit":"link_inherit__21bf811c"};
11
-
12
- /**
13
- * @name Link
14
- */
15
-
16
- let isCompatibilityMode = false;
17
- function setCompatibilityMode(isEnabled) {
18
- isCompatibilityMode = isEnabled;
19
- }
20
- const makeWrapText = memoize(innerClassName => {
21
- const WrapText = /*#__PURE__*/memo(function WrapText({
22
- className,
23
- children
24
- }) {
25
- const classes = classNames(modules_607b0772.inner, className, innerClassName);
26
- return /*#__PURE__*/React.createElement("span", {
27
- className: classes
28
- }, children);
29
- });
30
- WrapText.propTypes = {
31
- className: PropTypes.string,
32
- children: PropTypes.node
33
- };
34
- return WrapText;
35
- });
36
- function linkHOC(ComposedComponent) {
37
- var _class, _temp;
38
-
39
- const isCustom = typeof ComposedComponent !== 'string' && ComposedComponent !== ClickableLink;
40
- return _temp = _class = class Link extends Component {
41
- getChildren() {
42
- const {
43
- children,
44
- innerClassName
45
- } = this.props;
46
- const WrapText = makeWrapText(innerClassName);
47
- return typeof children === 'function' ? children(WrapText) : /*#__PURE__*/React.createElement(WrapText, null, children);
48
- }
49
-
50
- render() {
51
- const _this$props = this.props,
52
- {
53
- active,
54
- inherit,
55
- pseudo,
56
- hover,
57
- className,
58
- 'data-test': dataTest,
59
- href,
60
- innerClassName,
61
- children,
62
- onPlainLeftClick,
63
- onClick
64
- } = _this$props,
65
- props = _objectWithoutProperties(_this$props, ["active", "inherit", "pseudo", "hover", "className", "data-test", "href", "innerClassName", "children", "onPlainLeftClick", "onClick"]);
66
-
67
- const useButton = pseudo || !isCustom && href == null;
68
- const classes = classNames(modules_607b0772.link, className, {
69
- [modules_607b0772.active]: active,
70
- [modules_607b0772.inherit]: inherit,
71
- [modules_607b0772.hover]: hover,
72
- [modules_607b0772.compatibilityUnderlineMode]: isCompatibilityMode,
73
- [modules_607b0772.pseudo]: useButton,
74
- [modules_607b0772.text]: typeof children !== 'function'
75
- });
76
-
77
- if (isCustom && !props.activeClassName) {
78
- props.activeClassName = modules_607b0772.active;
79
- }
80
-
81
- if (useButton) {
82
- return /*#__PURE__*/React.createElement("button", _extends({
83
- type: "button"
84
- }, props, {
85
- className: classes,
86
- onClick: onClick || onPlainLeftClick,
87
- "data-test": joinDataTestAttributes('ring-link', dataTest)
88
- }), this.getChildren());
89
- }
90
-
91
- return /*#__PURE__*/React.createElement(ComposedComponent, _extends({}, props, {
92
- href: href,
93
- className: classes,
94
- onClick: onClick,
95
- onPlainLeftClick: onPlainLeftClick,
96
- "data-test": joinDataTestAttributes('ring-link', dataTest)
97
- }), this.getChildren());
98
- }
99
-
100
- }, _defineProperty(_class, "propTypes", {
101
- className: PropTypes.string,
102
- innerClassName: PropTypes.string,
103
- active: PropTypes.bool,
104
- inherit: PropTypes.bool,
105
- pseudo: PropTypes.bool,
106
- hover: PropTypes.bool,
107
- children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),
108
- 'data-test': PropTypes.string,
109
- href: PropTypes.string,
110
- onPlainLeftClick: PropTypes.func,
111
- onClick: PropTypes.func
112
- }), _temp;
113
- }
114
- var Link = linkHOC(ClickableLink);
115
-
116
- export default Link;
117
- export { linkHOC, setCompatibilityMode };
package/dist/list.js DELETED
@@ -1,29 +0,0 @@
1
- import './_helpers/_rollupPluginBabelHelpers.js';
2
- import 'react';
3
- import 'prop-types';
4
- import 'classnames';
5
- import 'react-virtualized/dist/es/List';
6
- import 'react-virtualized/dist/es/AutoSizer';
7
- import 'react-virtualized/dist/es/WindowScroller';
8
- import 'react-virtualized/dist/es/CellMeasurer';
9
- import 'util-deprecate';
10
- import 'memoize-one';
11
- import './_helpers/data-tests.js';
12
- import './_helpers/get-uid.js';
13
- import './_helpers/schedule-raf.js';
14
- import './_helpers/memoize.js';
15
- import './_helpers/dom.js';
16
- import './shortcuts.js';
17
- export { A as ActiveItemContext, L as default } from './_helpers/list.js';
18
- import 'combokeys';
19
- import './_helpers/sniffer.js';
20
- import 'sniffr';
21
- import './link.js';
22
- import 'focus-visible';
23
- import './_helpers/clickableLink.js';
24
- import './avatar.js';
25
- import './_helpers/url.js';
26
- import './checkbox.js';
27
- import '@jetbrains/icons/checkmark';
28
- import '@jetbrains/icons/remove-10px';
29
- import './icon.js';