@react-ui-org/react-ui 0.47.0 → 0.48.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 (94) hide show
  1. package/dist/lib.development.js +330 -54
  2. package/dist/lib.js +1 -1
  3. package/package.json +1 -1
  4. package/src/lib/components/Alert/README.mdx +4 -2
  5. package/src/lib/components/Alert/index.js +1 -1
  6. package/src/lib/components/Badge/README.mdx +1 -1
  7. package/src/lib/components/Badge/index.js +1 -1
  8. package/src/lib/components/Button/Button.jsx +31 -31
  9. package/src/lib/components/Button/README.mdx +4 -2
  10. package/src/lib/components/Button/index.js +1 -1
  11. package/src/lib/components/ButtonGroup/ButtonGroup.jsx +2 -1
  12. package/src/lib/components/ButtonGroup/README.mdx +4 -2
  13. package/src/lib/components/Card/README.mdx +7 -5
  14. package/src/lib/components/CheckboxField/CheckboxField.jsx +27 -28
  15. package/src/lib/components/CheckboxField/README.mdx +1 -1
  16. package/src/lib/components/CheckboxField/index.js +1 -1
  17. package/src/lib/components/FileInputField/FileInputField.jsx +27 -27
  18. package/src/lib/components/FileInputField/README.mdx +1 -1
  19. package/src/lib/components/FileInputField/index.js +1 -1
  20. package/src/lib/components/FormLayout/README.mdx +15 -13
  21. package/src/lib/components/Grid/Grid.jsx +31 -28
  22. package/src/lib/components/Grid/Grid.scss +10 -15
  23. package/src/lib/components/Grid/GridSpan.jsx +5 -4
  24. package/src/lib/components/Grid/README.mdx +34 -36
  25. package/src/lib/components/Grid/_helpers/generateResponsiveCustomProperties.js +11 -3
  26. package/src/lib/components/Grid/_settings.scss +18 -0
  27. package/src/lib/components/Grid/_tools.scss +5 -5
  28. package/src/lib/components/Modal/Modal.jsx +147 -250
  29. package/src/lib/components/Modal/Modal.scss +7 -55
  30. package/src/lib/components/Modal/ModalBody.jsx +64 -0
  31. package/src/lib/components/Modal/ModalBody.scss +18 -0
  32. package/src/lib/components/Modal/ModalCloseButton.jsx +61 -0
  33. package/src/lib/components/Modal/ModalCloseButton.scss +18 -0
  34. package/src/lib/components/Modal/ModalContent.jsx +43 -0
  35. package/src/lib/components/Modal/ModalContent.scss +5 -0
  36. package/src/lib/components/Modal/ModalFooter.jsx +46 -0
  37. package/src/lib/components/Modal/ModalFooter.scss +35 -0
  38. package/src/lib/components/Modal/ModalHeader.jsx +48 -0
  39. package/src/lib/components/Modal/ModalHeader.scss +30 -0
  40. package/src/lib/components/Modal/ModalTitle.jsx +45 -0
  41. package/src/lib/components/Modal/ModalTitle.scss +10 -0
  42. package/src/lib/components/Modal/README.mdx +842 -197
  43. package/src/lib/components/Modal/_helpers/getJustifyClassName.js +19 -0
  44. package/src/lib/components/Modal/_helpers/getScrollingClassName.js +11 -0
  45. package/src/lib/components/Modal/_settings.scss +1 -5
  46. package/src/lib/components/Modal/_theme.scss +6 -0
  47. package/src/lib/components/Modal/index.js +7 -1
  48. package/src/lib/components/Paper/README.mdx +1 -1
  49. package/src/lib/components/Paper/index.js +1 -1
  50. package/src/lib/components/Popover/Popover.jsx +24 -24
  51. package/src/lib/components/Popover/Popover.scss +7 -6
  52. package/src/lib/components/Popover/PopoverWrapper.jsx +5 -5
  53. package/src/lib/components/Popover/PopoverWrapper.scss +3 -0
  54. package/src/lib/components/Popover/README.mdx +13 -11
  55. package/src/lib/components/Popover/_theme.scss +1 -1
  56. package/src/lib/components/Radio/README.mdx +1 -1
  57. package/src/lib/components/Radio/Radio.jsx +37 -27
  58. package/src/lib/components/Radio/index.js +1 -1
  59. package/src/lib/components/ScrollView/README.mdx +146 -84
  60. package/src/lib/components/ScrollView/ScrollView.jsx +104 -113
  61. package/src/lib/components/ScrollView/ScrollView.scss +18 -16
  62. package/src/lib/components/ScrollView/index.js +1 -1
  63. package/src/lib/components/SelectField/README.mdx +66 -2
  64. package/src/lib/components/SelectField/SelectField.jsx +93 -49
  65. package/src/lib/components/SelectField/_components/Option/Option.jsx +46 -0
  66. package/src/lib/components/SelectField/_components/Option/index.js +1 -0
  67. package/src/lib/components/SelectField/index.js +1 -1
  68. package/src/lib/components/Table/README.mdx +4 -2
  69. package/src/lib/components/Table/Table.jsx +1 -1
  70. package/src/lib/components/Table/index.js +1 -1
  71. package/src/lib/components/Tabs/README.mdx +5 -3
  72. package/src/lib/components/Tabs/TabsItem.scss +1 -2
  73. package/src/lib/components/Text/README.mdx +9 -7
  74. package/src/lib/components/Text/index.js +1 -1
  75. package/src/lib/components/TextArea/README.mdx +1 -1
  76. package/src/lib/components/TextArea/TextArea.jsx +33 -33
  77. package/src/lib/components/TextArea/index.js +1 -1
  78. package/src/lib/components/TextField/README.mdx +3 -3
  79. package/src/lib/components/TextField/TextField.jsx +33 -34
  80. package/src/lib/components/TextField/index.js +1 -1
  81. package/src/lib/components/TextLink/README.mdx +1 -1
  82. package/src/lib/components/TextLink/index.js +1 -1
  83. package/src/lib/components/Toggle/README.mdx +1 -1
  84. package/src/lib/components/Toggle/Toggle.jsx +28 -28
  85. package/src/lib/components/Toggle/index.js +1 -1
  86. package/src/lib/components/Toolbar/README.mdx +8 -6
  87. package/src/lib/components/_helpers/transferProps.js +1 -1
  88. package/src/lib/index.js +24 -16
  89. package/src/lib/provider/withGlobalProps.jsx +20 -3
  90. package/src/lib/theme.scss +18 -26
  91. package/src/lib/translations/en.js +1 -1
  92. package/src/lib/components/Grid/_theme.scss +0 -11
  93. package/src/lib/components/ScrollView/_theme.scss +0 -2
  94. package/src/lib/components/withForwardedRef.jsx +0 -11
@@ -1,7 +1,7 @@
1
1
  // 1. Scrolling shadows are implemented as pseudo elements. This way we can customise them only
2
2
  // with custom properties.
3
3
  //
4
- // 2. Stack scrolling shadows over viewport content while keeping the content interactive.
4
+ // 2. Stack scrolling shadows over viewport content while keeping the content interactive.
5
5
  //
6
6
  // - `.scrollingShadows` is positioned absolutely over the `.root`, with auto `z-index` (this is
7
7
  // important!), and with `overflow: hidden` to clip the shadows (ie. its pseudo elements).
@@ -27,7 +27,6 @@
27
27
  @use "../../styles/tools/scrollbar";
28
28
  @use "../../styles/tools/spacing";
29
29
  @use "../../styles/tools/transition";
30
- @use "theme";
31
30
 
32
31
  $_arrow-inner-spacing: spacing.of(2);
33
32
  $_arrow-outer-spacing: spacing.of(4);
@@ -45,6 +44,7 @@ $_arrow-outer-spacing: spacing.of(4);
45
44
  width: 100%; // 2.
46
45
  height: 100%; // 2.
47
46
  overflow: hidden; // 2.
47
+ pointer-events: none; // 2.
48
48
 
49
49
  &::before,
50
50
  &::after {
@@ -54,20 +54,16 @@ $_arrow-outer-spacing: spacing.of(4);
54
54
  position: absolute;
55
55
  z-index: 2; // 2.
56
56
  display: block;
57
- width: var(--rui-local-shadow-width);
58
- height: var(--rui-local-shadow-height);
59
57
  visibility: hidden;
60
58
  opacity: 0;
61
59
  }
62
60
 
63
61
  &::before {
64
62
  background: var(--rui-local-start-shadow-background);
65
- box-shadow: var(--rui-local-start-shadow-box-shadow);
66
63
  }
67
64
 
68
65
  &::after {
69
66
  background: var(--rui-local-end-shadow-background);
70
- box-shadow: var(--rui-local-end-shadow-box-shadow);
71
67
  }
72
68
  }
73
69
 
@@ -75,7 +71,6 @@ $_arrow-outer-spacing: spacing.of(4);
75
71
  z-index: 1; // 2.
76
72
  width: 100%;
77
73
  scroll-behavior: smooth;
78
- -webkit-overflow-scrolling: touch;
79
74
  }
80
75
 
81
76
  .arrowPrev,
@@ -89,7 +84,6 @@ $_arrow-outer-spacing: spacing.of(4);
89
84
  display: flex;
90
85
  align-items: center;
91
86
  justify-content: center;
92
- color: var(--rui-local-arrow-color);
93
87
  visibility: hidden;
94
88
  opacity: 0;
95
89
  }
@@ -116,7 +110,8 @@ $_arrow-outer-spacing: spacing.of(4);
116
110
  width: 100%;
117
111
  padding-top: $_arrow-outer-spacing;
118
112
  padding-bottom: $_arrow-inner-spacing;
119
- transform: translateY(theme.$arrow-initial-offset);
113
+ color: var(--rui-local-prev-arrow-color);
114
+ transform: translateY(var(--rui-local-prev-arrow-initial-offset));
120
115
  }
121
116
 
122
117
  .isRootVertical .arrowPrev .arrowIcon {
@@ -130,7 +125,8 @@ $_arrow-outer-spacing: spacing.of(4);
130
125
  width: 100%;
131
126
  padding-top: $_arrow-inner-spacing;
132
127
  padding-bottom: $_arrow-outer-spacing;
133
- transform: translateY(calc(-1 * #{theme.$arrow-initial-offset}));
128
+ color: var(--rui-local-next-arrow-color);
129
+ transform: translateY(calc(-1 * var(--rui-local-next-arrow-initial-offset)));
134
130
  }
135
131
 
136
132
  .isRootHorizontal {
@@ -143,7 +139,7 @@ $_arrow-outer-spacing: spacing.of(4);
143
139
  left: 0;
144
140
  padding-right: $_arrow-inner-spacing;
145
141
  padding-left: $_arrow-outer-spacing;
146
- transform: translateX(theme.$arrow-initial-offset);
142
+ transform: translateX(var(--rui-local-prev-arrow-initial-offset));
147
143
  }
148
144
 
149
145
  .isRootHorizontal .arrowPrev .arrowIcon {
@@ -156,7 +152,7 @@ $_arrow-outer-spacing: spacing.of(4);
156
152
  bottom: 0;
157
153
  padding-right: $_arrow-outer-spacing;
158
154
  padding-left: $_arrow-inner-spacing;
159
- transform: translateX(calc(-1 * #{theme.$arrow-initial-offset}));
155
+ transform: translateX(calc(-1 * var(--rui-local-next-arrow-initial-offset)));
160
156
  }
161
157
 
162
158
  .isRootHorizontal .arrowNext .arrowIcon {
@@ -167,16 +163,19 @@ $_arrow-outer-spacing: spacing.of(4);
167
163
  .isRootVertical .scrollingShadows::after {
168
164
  right: 0;
169
165
  left: 0;
166
+ width: auto;
170
167
  }
171
168
 
172
169
  .isRootVertical .scrollingShadows::before {
173
170
  top: 0;
174
- transform: translateY(theme.$shadow-initial-offset);
171
+ height: var(--rui-local-start-shadow-size);
172
+ transform: translateY(var(--rui-local-start-shadow-initial-offset));
175
173
  }
176
174
 
177
175
  .isRootVertical .scrollingShadows::after {
178
176
  bottom: 0;
179
- transform: translateY(calc(-1 * #{theme.$shadow-initial-offset}));
177
+ height: var(--rui-local-end-shadow-size);
178
+ transform: translateY(calc(-1 * var(--rui-local-end-shadow-initial-offset)));
180
179
  }
181
180
 
182
181
  .isRootHorizontal .viewport {
@@ -193,16 +192,19 @@ $_arrow-outer-spacing: spacing.of(4);
193
192
  .isRootHorizontal .scrollingShadows::after {
194
193
  top: 0;
195
194
  bottom: 0;
195
+ height: auto;
196
196
  }
197
197
 
198
198
  .isRootHorizontal .scrollingShadows::before {
199
199
  left: 0;
200
- transform: translateX(theme.$shadow-initial-offset);
200
+ width: var(--rui-local-start-shadow-size);
201
+ transform: translateX(var(--rui-local-start-shadow-initial-offset));
201
202
  }
202
203
 
203
204
  .isRootHorizontal .scrollingShadows::after {
204
205
  right: 0;
205
- transform: translateX(calc(-1 * #{theme.$shadow-initial-offset}));
206
+ width: var(--rui-local-end-shadow-size);
207
+ transform: translateX(calc(-1 * var(--rui-local-end-shadow-initial-offset)));
206
208
  }
207
209
 
208
210
  .isRootScrolledAtStart .scrollingShadows::before,
@@ -1 +1 @@
1
- export { default } from './ScrollView';
1
+ export { default as ScrollView } from './ScrollView';
@@ -12,7 +12,7 @@ import {
12
12
  Playground,
13
13
  Props,
14
14
  } from 'docz'
15
- import { SelectField } from './SelectField'
15
+ import { SelectField } from '../..'
16
16
 
17
17
  ## Basic Usage
18
18
 
@@ -79,7 +79,7 @@ See [API](#api) for all available options.
79
79
  entered.
80
80
 
81
81
  - In case of a large amount of options, consider **grouping related items
82
- together** by nesting them (implements the `optgroup` HTML element).
82
+ together** by nesting them.
83
83
 
84
84
  👉 We use the **native `select`** HTML element to improve user experience on
85
85
  mobile devices by using the native select of the platform.
@@ -240,6 +240,70 @@ Full-width fields span the full width of a parent:
240
240
  }}
241
241
  </Playground>
242
242
 
243
+ ## Grouping Related Options
244
+
245
+ For a large amount of options you can group related items together by nesting
246
+ them (implements the `optgroup` HTML element).
247
+
248
+ <Playground>
249
+ {() => {
250
+ const [crop, setCrop] = React.useState('apple');
251
+ const options = [
252
+ {
253
+ label: 'Fruits',
254
+ options: [
255
+ {
256
+ label: 'Apple',
257
+ value: 'apple',
258
+ },
259
+ {
260
+ label: 'Banana',
261
+ value: 'banana',
262
+ },
263
+ {
264
+ label: 'Grapefruit',
265
+ value: 'grapefruit',
266
+ },
267
+ ],
268
+ },
269
+ {
270
+ label: 'Vegetables',
271
+ options: [
272
+ {
273
+ label: 'Beetroot',
274
+ value: 'beetroot',
275
+ },
276
+ {
277
+ label: 'Carrot',
278
+ value: 'carrot',
279
+ },
280
+ {
281
+ label: 'Tomato',
282
+ value: 'tomato',
283
+ },
284
+ ],
285
+ },
286
+ ];
287
+ return (
288
+ <>
289
+ <SelectField
290
+ label="Your favourite crop"
291
+ onChange={(e) => setCrop(e.target.value)}
292
+ options={options}
293
+ value={crop}
294
+ />
295
+ <SelectField
296
+ label="Your favourite crop"
297
+ onChange={(e) => setCrop(e.target.value)}
298
+ options={options}
299
+ value={crop}
300
+ variant="filled"
301
+ />
302
+ </>
303
+ );
304
+ }}
305
+ </Playground>
306
+
243
307
  ## Invisible Label
244
308
 
245
309
  While it may be acceptable for login screens with just a few fields or for other
@@ -7,27 +7,28 @@ import { getRootValidationStateClassName } from '../_helpers/getRootValidationSt
7
7
  import { resolveContextOrProp } from '../_helpers/resolveContextOrProp';
8
8
  import { transferProps } from '../_helpers/transferProps';
9
9
  import { FormLayoutContext } from '../FormLayout';
10
- import withForwardedRef from '../withForwardedRef';
10
+ import { Option } from './_components/Option';
11
11
  import styles from './SelectField.scss';
12
12
 
13
- export const SelectField = ({
14
- disabled,
15
- forwardedRef,
16
- fullWidth,
17
- helpText,
18
- id,
19
- isLabelVisible,
20
- label,
21
- layout,
22
- options,
23
- required,
24
- size,
25
- validationState,
26
- validationText,
27
- value,
28
- variant,
29
- ...restProps
30
- }) => {
13
+ export const SelectField = React.forwardRef((props, ref) => {
14
+ const {
15
+ disabled,
16
+ fullWidth,
17
+ helpText,
18
+ id,
19
+ isLabelVisible,
20
+ label,
21
+ layout,
22
+ options,
23
+ required,
24
+ size,
25
+ validationState,
26
+ validationText,
27
+ value,
28
+ variant,
29
+ ...restProps
30
+ } = props;
31
+
31
32
  const context = useContext(FormLayoutContext);
32
33
 
33
34
  return (
@@ -64,21 +65,36 @@ export const SelectField = ({
64
65
  className={styles.input}
65
66
  disabled={disabled}
66
67
  id={id}
67
- ref={forwardedRef}
68
+ ref={ref}
68
69
  required={required}
69
70
  value={value}
70
71
  >
71
72
  {
72
- options.map((option) => (
73
- <option
74
- disabled={option.disabled}
75
- id={id && `${id}__item__${option.value}`}
76
- key={option.value}
77
- value={option.value}
78
- >
79
- {option.label}
80
- </option>
81
- ))
73
+ options.map((option) => {
74
+ if ('options' in option) {
75
+ return (
76
+ <optgroup
77
+ key={option.key ?? option.label}
78
+ label={option.label}
79
+ >
80
+ {option.options.map((optgroupOption) => (
81
+ <Option
82
+ key={optgroupOption.key ?? optgroupOption.value}
83
+ {...optgroupOption}
84
+ {...(id && { id: `${id}__item__${optgroupOption.key ?? optgroupOption.value}` })}
85
+ />
86
+ ))}
87
+ </optgroup>
88
+ );
89
+ }
90
+ return (
91
+ <Option
92
+ key={option.key ?? option.value}
93
+ {...option}
94
+ {...(id && { id: `${id}__item__${option.key ?? option.value}` })}
95
+ />
96
+ );
97
+ })
82
98
  }
83
99
  </select>
84
100
  <div className={styles.caret}>
@@ -107,16 +123,16 @@ export const SelectField = ({
107
123
  </div>
108
124
  </label>
109
125
  );
110
- };
126
+ });
111
127
 
112
128
  SelectField.defaultProps = {
113
129
  disabled: false,
114
- forwardedRef: undefined,
115
130
  fullWidth: false,
116
131
  helpText: null,
117
132
  id: undefined,
118
133
  isLabelVisible: true,
119
134
  layout: 'vertical',
135
+ ref: undefined,
120
136
  required: false,
121
137
  size: 'medium',
122
138
  validationState: null,
@@ -130,14 +146,6 @@ SelectField.propTypes = {
130
146
  * If `true`, the input will be disabled.
131
147
  */
132
148
  disabled: PropTypes.bool,
133
- /**
134
- * Reference forwarded to the `select` element.
135
- */
136
- forwardedRef: PropTypes.oneOfType([
137
- PropTypes.func,
138
- // eslint-disable-next-line react/forbid-prop-types
139
- PropTypes.shape({ current: PropTypes.any }),
140
- ]),
141
149
  /**
142
150
  * If `true`, the field will span the full width of its parent.
143
151
  */
@@ -157,6 +165,9 @@ SelectField.propTypes = {
157
165
  *
158
166
  * and of individual options:
159
167
  * * `<ID>__item__<VALUE>`
168
+ *
169
+ * If `key` in the option definition object is set,
170
+ * then `option.key` is used instead of `option.value` in place of `<VALUE>`.
160
171
  */
161
172
  id: PropTypes.string,
162
173
  /**
@@ -177,15 +188,48 @@ SelectField.propTypes = {
177
188
  layout: PropTypes.oneOf(['horizontal', 'vertical']),
178
189
  /**
179
190
  * Set of options to be chosen from.
191
+ *
192
+ * Either set of individual or grouped options is acceptable.
193
+ *
194
+ * For generating unique IDs the `option.value` is normally used. For cases when this is not practical or
195
+ * the `option.value` values are not unique the `option.key` attribute can be set manually.
196
+ * The same applies for the `label` value of grouped options which is supposed to be unique.
197
+ * To ensure uniqueness `key` attribute can be set manually.
198
+ */
199
+ options: PropTypes.oneOfType([
200
+ PropTypes.arrayOf(
201
+ PropTypes.shape({
202
+ key: PropTypes.string,
203
+ label: PropTypes.string.isRequired,
204
+ options: PropTypes.arrayOf(PropTypes.shape({
205
+ disabled: PropTypes.bool,
206
+ key: PropTypes.string,
207
+ label: PropTypes.string.isRequired,
208
+ value: PropTypes.oneOfType([
209
+ PropTypes.string,
210
+ PropTypes.number,
211
+ ]),
212
+ })),
213
+ }),
214
+ ),
215
+ PropTypes.arrayOf(PropTypes.shape({
216
+ disabled: PropTypes.bool,
217
+ key: PropTypes.string,
218
+ label: PropTypes.string.isRequired,
219
+ value: PropTypes.oneOfType([
220
+ PropTypes.string,
221
+ PropTypes.number,
222
+ ]),
223
+ })),
224
+ ]).isRequired,
225
+ /**
226
+ * Reference forwarded to the `select` element.
180
227
  */
181
- options: PropTypes.arrayOf(PropTypes.shape({
182
- disabled: PropTypes.bool,
183
- label: PropTypes.string.isRequired,
184
- value: PropTypes.oneOfType([
185
- PropTypes.string,
186
- PropTypes.number,
187
- ]),
188
- })).isRequired,
228
+ ref: PropTypes.oneOfType([
229
+ PropTypes.func,
230
+ // eslint-disable-next-line react/forbid-prop-types
231
+ PropTypes.shape({ current: PropTypes.any }),
232
+ ]),
189
233
  /**
190
234
  * If `true`, the input will be required.
191
235
  */
@@ -215,6 +259,6 @@ SelectField.propTypes = {
215
259
  variant: PropTypes.oneOf(['filled', 'outline']),
216
260
  };
217
261
 
218
- export const SelectFieldWithGlobalProps = withForwardedRef(withGlobalProps(SelectField, 'SelectField'));
262
+ export const SelectFieldWithGlobalProps = withGlobalProps(SelectField, 'SelectField');
219
263
 
220
264
  export default SelectFieldWithGlobalProps;
@@ -0,0 +1,46 @@
1
+ import PropTypes from 'prop-types';
2
+ import React from 'react';
3
+
4
+ export const Option = ({
5
+ disabled,
6
+ id,
7
+ label,
8
+ value,
9
+ }) => (
10
+ <option
11
+ disabled={disabled}
12
+ id={id}
13
+ value={value}
14
+ >
15
+ {label}
16
+ </option>
17
+ );
18
+
19
+ Option.defaultProps = {
20
+ disabled: false,
21
+ id: undefined,
22
+ };
23
+
24
+ Option.propTypes = {
25
+ /**
26
+ * If `true` the option cannot be selected.
27
+ */
28
+ disabled: PropTypes.bool,
29
+ /**
30
+ * ID of an individual option.
31
+ */
32
+ id: PropTypes.string,
33
+ /**
34
+ * Option label.
35
+ */
36
+ label: PropTypes.string.isRequired,
37
+ /**
38
+ * Option value.
39
+ */
40
+ value: PropTypes.oneOfType([
41
+ PropTypes.string,
42
+ PropTypes.number,
43
+ ]).isRequired,
44
+ };
45
+
46
+ export default Option;
@@ -0,0 +1 @@
1
+ export { default as Option } from './Option';
@@ -1 +1 @@
1
- export { default } from './SelectField';
1
+ export { default as SelectField } from './SelectField';
@@ -13,8 +13,10 @@ import {
13
13
  Props,
14
14
  } from 'docz'
15
15
  import Icon from '../../../docs/_components/Icon'
16
- import ScrollView from '../ScrollView'
17
- import { Table } from './Table'
16
+ import {
17
+ ScrollView,
18
+ Table,
19
+ } from '../..'
18
20
 
19
21
  ## Basic Usage
20
22
 
@@ -1,7 +1,7 @@
1
1
  import PropTypes from 'prop-types';
2
2
  import React from 'react';
3
3
  import { withGlobalProps } from '../../provider';
4
- import Button from '../Button';
4
+ import { Button } from '../..';
5
5
  import styles from './Table.scss';
6
6
 
7
7
  export class Table extends React.Component {
@@ -1 +1 @@
1
- export { default } from './Table';
1
+ export { default as Table } from './Table';
@@ -11,9 +11,11 @@ import {
11
11
  Props,
12
12
  } from 'docz'
13
13
  import { Icon } from '../../../docs/_components/Icon/Icon'
14
- import ScrollView from '../ScrollView'
15
- import { Tabs } from './Tabs'
16
- import { TabsItem } from './TabsItem'
14
+ import {
15
+ ScrollView,
16
+ Tabs,
17
+ TabsItem,
18
+ } from '../..'
17
19
 
18
20
  Tabs separate related content into groups within a single context.
19
21
 
@@ -47,8 +47,7 @@
47
47
  line-height: 1;
48
48
  text-decoration: none;
49
49
  color: theme.$item-color;
50
- border-width: theme.$item-border-width;
51
- border-style: solid;
50
+ border: theme.$item-border-width solid;
52
51
  border-color: theme.$item-border-color;
53
52
  border-top-left-radius: theme.$item-border-radius;
54
53
  border-top-right-radius: theme.$item-border-radius;
@@ -11,13 +11,15 @@ import {
11
11
  Props,
12
12
  } from 'docz'
13
13
  import { Placeholder } from '../../../docs/_components/Placeholder/Placeholder'
14
- import { Toolbar } from '../Toolbar/Toolbar'
15
- import { ToolbarGroup } from '../Toolbar/ToolbarGroup'
16
- import { ToolbarItem } from '../Toolbar/ToolbarItem'
17
- import { Button } from '../Button/Button'
18
- import { ButtonGroup } from '../ButtonGroup/ButtonGroup'
19
- import { TextField } from '../TextField/TextField'
20
- import { Text } from './Text'
14
+ import {
15
+ Button,
16
+ ButtonGroup,
17
+ Text,
18
+ TextField,
19
+ Toolbar,
20
+ ToolbarGroup,
21
+ ToolbarItem,
22
+ } from '../..'
21
23
 
22
24
  Text is a tiny component to control wrapping of text content.
23
25
 
@@ -1 +1 @@
1
- export { default } from './Text';
1
+ export { default as Text } from './Text';
@@ -12,7 +12,7 @@ import {
12
12
  Playground,
13
13
  Props,
14
14
  } from 'docz'
15
- import { TextArea } from './TextArea'
15
+ import { TextArea } from '../..'
16
16
 
17
17
  ## Basic Usage
18
18