baseui 10.5.0 → 10.7.2
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.
- package/app-nav-bar/user-menu.js +1 -0
- package/app-nav-bar/user-menu.js.flow +1 -0
- package/button/styled-components.js +1 -1
- package/button/styled-components.js.flow +4 -1
- package/card/styled-components.js +0 -1
- package/card/styled-components.js.flow +0 -1
- package/combobox/combobox.js +5 -1
- package/combobox/combobox.js.flow +4 -0
- package/combobox/index.d.ts +6 -3
- package/data-table/column-datetime.js +2 -0
- package/data-table/column-datetime.js.flow +2 -0
- package/datepicker/calendar-header.js +255 -109
- package/datepicker/calendar-header.js.flow +282 -145
- package/datepicker/calendar.js +6 -1
- package/datepicker/calendar.js.flow +5 -1
- package/datepicker/constants.js +9 -2
- package/datepicker/constants.js.flow +7 -0
- package/datepicker/datepicker.js +135 -73
- package/datepicker/datepicker.js.flow +161 -62
- package/datepicker/day.js +2 -0
- package/datepicker/day.js.flow +2 -0
- package/datepicker/index.d.ts +8 -0
- package/datepicker/month.js +4 -0
- package/datepicker/month.js.flow +3 -0
- package/datepicker/styled-components.js +116 -56
- package/datepicker/styled-components.js.flow +101 -36
- package/datepicker/types.js.flow +18 -1
- package/datepicker/utils/calendar-header-helpers.js +51 -0
- package/datepicker/utils/calendar-header-helpers.js.flow +53 -0
- package/datepicker/utils/date-helpers.js +1 -1
- package/datepicker/utils/date-helpers.js.flow +1 -1
- package/datepicker/week.js +1 -0
- package/datepicker/week.js.flow +1 -0
- package/dnd-list/index.js.flow +2 -1
- package/dnd-list/list.js +1 -2
- package/dnd-list/list.js.flow +1 -1
- package/dnd-list/styled-components.js +1 -1
- package/dnd-list/styled-components.js.flow +1 -0
- package/drawer/drawer.js +2 -1
- package/drawer/drawer.js.flow +1 -1
- package/es/app-nav-bar/user-menu.js +1 -0
- package/es/button/styled-components.js +1 -1
- package/es/card/styled-components.js +0 -1
- package/es/combobox/combobox.js +5 -1
- package/es/data-table/column-datetime.js +2 -0
- package/es/datepicker/calendar-header.js +204 -93
- package/es/datepicker/calendar.js +7 -2
- package/es/datepicker/constants.js +6 -1
- package/es/datepicker/datepicker.js +70 -42
- package/es/datepicker/day.js +2 -0
- package/es/datepicker/month.js +3 -0
- package/es/datepicker/styled-components.js +98 -37
- package/es/datepicker/types.js +1 -1
- package/es/datepicker/utils/calendar-header-helpers.js +34 -0
- package/es/datepicker/utils/date-helpers.js +1 -1
- package/es/datepicker/week.js +1 -0
- package/es/dnd-list/index.js +2 -1
- package/es/dnd-list/list.js +1 -2
- package/es/dnd-list/styled-components.js +1 -0
- package/es/drawer/drawer.js +2 -1
- package/es/helper/helper.js +1 -0
- package/es/layer/layer.js +8 -0
- package/es/menu/maybe-child-menu.js +1 -0
- package/es/popover/popover.js +6 -5
- package/es/popover/stateful-container.js +8 -2
- package/es/rating/emoticon-rating.js +3 -1
- package/es/rating/star-rating.js +3 -1
- package/es/select/select-component.js +5 -5
- package/es/select/styled-components.js +34 -4
- package/es/snackbar/snackbar-context.js +16 -4
- package/es/table-semantic/styled-components.js +6 -4
- package/es/table-semantic/table-builder.js +3 -0
- package/es/themes/dark-theme/color-component-tokens.js +1 -1
- package/es/themes/light-theme/color-component-tokens.js +9 -9
- package/es/themes/shared/lighting.js +5 -1
- package/es/timepicker/timepicker.js +16 -11
- package/es/tooltip/styled-components.js +8 -0
- package/es/tooltip/tooltip.js +1 -0
- package/esm/app-nav-bar/user-menu.js +1 -0
- package/esm/button/styled-components.js +1 -1
- package/esm/card/styled-components.js +0 -1
- package/esm/combobox/combobox.js +5 -1
- package/esm/data-table/column-datetime.js +2 -0
- package/esm/datepicker/calendar-header.js +255 -110
- package/esm/datepicker/calendar.js +7 -2
- package/esm/datepicker/constants.js +6 -1
- package/esm/datepicker/datepicker.js +136 -74
- package/esm/datepicker/day.js +2 -0
- package/esm/datepicker/month.js +3 -0
- package/esm/datepicker/styled-components.js +112 -55
- package/esm/datepicker/types.js +1 -1
- package/esm/datepicker/utils/calendar-header-helpers.js +45 -0
- package/esm/datepicker/utils/date-helpers.js +1 -1
- package/esm/datepicker/week.js +1 -0
- package/esm/dnd-list/index.js +2 -1
- package/esm/dnd-list/list.js +1 -2
- package/esm/dnd-list/styled-components.js +1 -1
- package/esm/drawer/drawer.js +2 -1
- package/esm/helper/helper.js +1 -0
- package/esm/layer/layer.js +8 -0
- package/esm/menu/maybe-child-menu.js +1 -0
- package/esm/popover/popover.js +6 -5
- package/esm/popover/stateful-container.js +8 -2
- package/esm/rating/emoticon-rating.js +2 -2
- package/esm/rating/star-rating.js +2 -2
- package/esm/select/select-component.js +5 -5
- package/esm/select/styled-components.js +28 -4
- package/esm/snackbar/snackbar-context.js +16 -4
- package/esm/table-semantic/styled-components.js +6 -4
- package/esm/table-semantic/table-builder.js +3 -0
- package/esm/themes/dark-theme/color-component-tokens.js +1 -1
- package/esm/themes/light-theme/color-component-tokens.js +9 -9
- package/esm/themes/shared/lighting.js +5 -1
- package/esm/timepicker/timepicker.js +17 -11
- package/esm/tooltip/styled-components.js +8 -0
- package/esm/tooltip/tooltip.js +1 -0
- package/helper/helper.js +1 -0
- package/helper/helper.js.flow +1 -0
- package/layer/layer.js +8 -0
- package/layer/layer.js.flow +9 -0
- package/link/index.d.ts +1 -0
- package/map-marker/index.d.ts +6 -5
- package/menu/index.d.ts +7 -0
- package/menu/maybe-child-menu.js +1 -0
- package/menu/maybe-child-menu.js.flow +1 -0
- package/menu/types.js.flow +12 -0
- package/modal/index.d.ts +1 -1
- package/modal/types.js.flow +4 -1
- package/package.json +4 -3
- package/popover/index.d.ts +2 -1
- package/popover/popover.js +6 -5
- package/popover/popover.js.flow +11 -4
- package/popover/stateful-container.js +8 -2
- package/popover/stateful-container.js.flow +5 -0
- package/popover/types.js.flow +6 -1
- package/rating/emoticon-rating.js +2 -2
- package/rating/emoticon-rating.js.flow +4 -1
- package/rating/star-rating.js +2 -2
- package/rating/star-rating.js.flow +4 -1
- package/select/select-component.js +5 -5
- package/select/select-component.js.flow +5 -5
- package/select/styled-components.js +28 -4
- package/select/styled-components.js.flow +30 -2
- package/snackbar/index.d.ts +21 -16
- package/snackbar/snackbar-context.js +15 -4
- package/snackbar/snackbar-context.js.flow +15 -3
- package/table-semantic/styled-components.js +6 -4
- package/table-semantic/styled-components.js.flow +6 -4
- package/table-semantic/table-builder.js +3 -0
- package/table-semantic/table-builder.js.flow +3 -0
- package/themes/dark-theme/color-component-tokens.js +1 -1
- package/themes/dark-theme/color-component-tokens.js.flow +1 -1
- package/themes/light-theme/color-component-tokens.js +9 -9
- package/themes/light-theme/color-component-tokens.js.flow +9 -9
- package/themes/shared/lighting.js +5 -1
- package/themes/shared/lighting.js.flow +4 -0
- package/themes/types.js.flow +4 -0
- package/timepicker/index.d.ts +1 -0
- package/timepicker/timepicker.js +17 -11
- package/timepicker/timepicker.js.flow +31 -12
- package/timepicker/types.js.flow +10 -0
- package/tooltip/styled-components.js +8 -0
- package/tooltip/styled-components.js.flow +8 -0
- package/tooltip/tooltip.js +1 -0
- package/tooltip/tooltip.js.flow +6 -1
|
@@ -52,6 +52,9 @@ class StatefulContainer extends React.Component<
|
|
|
52
52
|
if (this.props.onBlur) {
|
|
53
53
|
this.props.onBlur(e);
|
|
54
54
|
}
|
|
55
|
+
if (this.props.focusLock || this.props.autoFocus) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
55
58
|
this.close();
|
|
56
59
|
};
|
|
57
60
|
|
|
@@ -168,6 +171,7 @@ class StatefulContainer extends React.Component<
|
|
|
168
171
|
showArrow,
|
|
169
172
|
triggerType,
|
|
170
173
|
popoverMargin,
|
|
174
|
+
focusOptions,
|
|
171
175
|
} = this.props;
|
|
172
176
|
|
|
173
177
|
const popoverProps: PopoverPropsWithoutChildrenT = {
|
|
@@ -193,6 +197,7 @@ class StatefulContainer extends React.Component<
|
|
|
193
197
|
showArrow,
|
|
194
198
|
triggerType,
|
|
195
199
|
popoverMargin,
|
|
200
|
+
focusOptions,
|
|
196
201
|
};
|
|
197
202
|
|
|
198
203
|
if (dismissOnClickOutside) {
|
package/popover/types.js.flow
CHANGED
|
@@ -83,6 +83,8 @@ export type BasePopoverPropsT = {
|
|
|
83
83
|
onClick?: (e: Event) => mixed,
|
|
84
84
|
/** Handler for 'Esc' keypress events */
|
|
85
85
|
onFocus?: (e: Event) => mixed,
|
|
86
|
+
/** Pass FocusOptions for focusing (used as `HtmlElement.focus(focusOptions)`) */
|
|
87
|
+
focusOptions?: FocusOptions,
|
|
86
88
|
/** Handler for mouseenter events on trigger element. */
|
|
87
89
|
onMouseEnter?: (e: Event) => mixed,
|
|
88
90
|
/** Number of milliseconds to wait before showing the popover after mouse enters the trigger element (for triggerType `hover`). */
|
|
@@ -104,7 +106,10 @@ export type BasePopoverPropsT = {
|
|
|
104
106
|
/** If true, focus will shift back to the original element that triggered the popover
|
|
105
107
|
* Be careful with elements that open the popover on focus (e.g. input) this will cause the popover to reopen on close!
|
|
106
108
|
*/
|
|
107
|
-
returnFocus?:
|
|
109
|
+
returnFocus?:
|
|
110
|
+
| boolean
|
|
111
|
+
| FocusOptions
|
|
112
|
+
| ((returnTo: Element) => boolean | FocusOptions),
|
|
108
113
|
/** Whether or not to show the arrow pointing from the popover to the trigger. */
|
|
109
114
|
showArrow?: boolean,
|
|
110
115
|
/** Whether to toggle the popover when trigger is clicked or hovered. */
|
|
@@ -222,8 +222,8 @@ var EmoticonRating = /*#__PURE__*/function (_React$Component) {
|
|
|
222
222
|
return /*#__PURE__*/React.createElement(Root, _extends({
|
|
223
223
|
"data-baseweb": "emoticon-rating",
|
|
224
224
|
role: "radiogroup",
|
|
225
|
-
onBlur: function onBlur() {
|
|
226
|
-
|
|
225
|
+
onBlur: function onBlur(e) {
|
|
226
|
+
if (!e.currentTarget.contains(e.relatedTarget)) _this2.updatePreview(undefined);
|
|
227
227
|
},
|
|
228
228
|
onMouseLeave: function onMouseLeave() {
|
|
229
229
|
return _this2.updatePreview(undefined);
|
|
@@ -135,7 +135,10 @@ class EmoticonRating extends React.Component<
|
|
|
135
135
|
<Root
|
|
136
136
|
data-baseweb="emoticon-rating"
|
|
137
137
|
role="radiogroup"
|
|
138
|
-
onBlur={
|
|
138
|
+
onBlur={e => {
|
|
139
|
+
if (!e.currentTarget.contains(e.relatedTarget))
|
|
140
|
+
this.updatePreview(undefined);
|
|
141
|
+
}}
|
|
139
142
|
onMouseLeave={() => this.updatePreview(undefined)}
|
|
140
143
|
{...rootProps}
|
|
141
144
|
>
|
package/rating/star-rating.js
CHANGED
|
@@ -225,8 +225,8 @@ var StarRating = /*#__PURE__*/function (_React$Component) {
|
|
|
225
225
|
return /*#__PURE__*/React.createElement(Root, _extends({
|
|
226
226
|
"data-baseweb": "star-rating",
|
|
227
227
|
role: "radiogroup",
|
|
228
|
-
onBlur: function onBlur() {
|
|
229
|
-
|
|
228
|
+
onBlur: function onBlur(e) {
|
|
229
|
+
if (!e.currentTarget.contains(e.relatedTarget)) _this2.updatePreview(undefined);
|
|
230
230
|
},
|
|
231
231
|
onMouseLeave: function onMouseLeave() {
|
|
232
232
|
return _this2.updatePreview(undefined);
|
|
@@ -133,7 +133,10 @@ class StarRating extends React.Component<StarRatingPropsT, RatingStateT> {
|
|
|
133
133
|
<Root
|
|
134
134
|
data-baseweb="star-rating"
|
|
135
135
|
role="radiogroup"
|
|
136
|
-
onBlur={
|
|
136
|
+
onBlur={e => {
|
|
137
|
+
if (!e.currentTarget.contains(e.relatedTarget))
|
|
138
|
+
this.updatePreview(undefined);
|
|
139
|
+
}}
|
|
137
140
|
onMouseLeave={() => this.updatePreview(undefined)}
|
|
138
141
|
{...rootProps}
|
|
139
142
|
>
|
|
@@ -180,7 +180,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
|
|
|
180
180
|
isPseudoFocused: false
|
|
181
181
|
});
|
|
182
182
|
|
|
183
|
-
_defineProperty(_assertThisInitialized(_this), "
|
|
183
|
+
_defineProperty(_assertThisInitialized(_this), "isItMounted", false);
|
|
184
184
|
|
|
185
185
|
_defineProperty(_assertThisInitialized(_this), "handleTouchOutside", function (event) {
|
|
186
186
|
if (containsNode(_this.dropdown.current, event.target)) return;
|
|
@@ -328,7 +328,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
|
|
|
328
328
|
_this.props.onBlur(event);
|
|
329
329
|
}
|
|
330
330
|
|
|
331
|
-
if (_this.
|
|
331
|
+
if (_this.isItMounted) {
|
|
332
332
|
_this.setState({
|
|
333
333
|
isFocused: false,
|
|
334
334
|
isOpen: false,
|
|
@@ -682,7 +682,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
|
|
|
682
682
|
this.focus();
|
|
683
683
|
}
|
|
684
684
|
|
|
685
|
-
this.
|
|
685
|
+
this.isItMounted = true;
|
|
686
686
|
|
|
687
687
|
if (this.props.methodsRef) {
|
|
688
688
|
var methodsRef = this.props.methodsRef;
|
|
@@ -718,7 +718,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
|
|
|
718
718
|
document.removeEventListener('click', this.handleClickOutside);
|
|
719
719
|
}
|
|
720
720
|
|
|
721
|
-
this.
|
|
721
|
+
this.isItMounted = false;
|
|
722
722
|
}
|
|
723
723
|
}, {
|
|
724
724
|
key: "focus",
|
|
@@ -947,7 +947,6 @@ var Select = /*#__PURE__*/function (_React$Component) {
|
|
|
947
947
|
|
|
948
948
|
var ariaLabel = this.props.multi ? 'Clear all' : 'Clear value';
|
|
949
949
|
return /*#__PURE__*/React.createElement(ClearIcon, _extends({
|
|
950
|
-
size: 16,
|
|
951
950
|
title: ariaLabel,
|
|
952
951
|
"aria-label": ariaLabel,
|
|
953
952
|
onClick: this.clearValue,
|
|
@@ -1169,6 +1168,7 @@ var Select = /*#__PURE__*/function (_React$Component) {
|
|
|
1169
1168
|
if (!ref) return;
|
|
1170
1169
|
_this6.anchor = ref.anchorRef;
|
|
1171
1170
|
},
|
|
1171
|
+
autoFocus: false,
|
|
1172
1172
|
focusLock: false,
|
|
1173
1173
|
mountNode: _this6.props.mountNode,
|
|
1174
1174
|
onEsc: function onEsc() {
|
|
@@ -117,13 +117,13 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
117
117
|
isPseudoFocused: false,
|
|
118
118
|
};
|
|
119
119
|
|
|
120
|
-
|
|
120
|
+
isItMounted: boolean = false;
|
|
121
121
|
|
|
122
122
|
componentDidMount() {
|
|
123
123
|
if (this.props.autoFocus) {
|
|
124
124
|
this.focus();
|
|
125
125
|
}
|
|
126
|
-
this.
|
|
126
|
+
this.isItMounted = true;
|
|
127
127
|
|
|
128
128
|
if (this.props.methodsRef) {
|
|
129
129
|
const {methodsRef} = this.props;
|
|
@@ -157,7 +157,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
157
157
|
document.removeEventListener('touchstart', this.handleTouchOutside);
|
|
158
158
|
document.removeEventListener('click', this.handleClickOutside);
|
|
159
159
|
}
|
|
160
|
-
this.
|
|
160
|
+
this.isItMounted = false;
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
focus() {
|
|
@@ -319,7 +319,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
319
319
|
this.props.onBlur(event);
|
|
320
320
|
}
|
|
321
321
|
|
|
322
|
-
if (this.
|
|
322
|
+
if (this.isItMounted) {
|
|
323
323
|
this.setState({
|
|
324
324
|
isFocused: false,
|
|
325
325
|
isOpen: false,
|
|
@@ -793,7 +793,6 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
793
793
|
|
|
794
794
|
return (
|
|
795
795
|
<ClearIcon
|
|
796
|
-
size={16}
|
|
797
796
|
title={ariaLabel}
|
|
798
797
|
aria-label={ariaLabel}
|
|
799
798
|
onClick={this.clearValue}
|
|
@@ -1026,6 +1025,7 @@ class Select extends React.Component<PropsT, SelectStateT> {
|
|
|
1026
1025
|
if (!ref) return;
|
|
1027
1026
|
this.anchor = ref.anchorRef;
|
|
1028
1027
|
}}
|
|
1028
|
+
autoFocus={false}
|
|
1029
1029
|
focusLock={false}
|
|
1030
1030
|
mountNode={this.props.mountNode}
|
|
1031
1031
|
onEsc={() => this.closeMenu()}
|
|
@@ -342,26 +342,50 @@ function getSvgStyles(_ref4) {
|
|
|
342
342
|
}
|
|
343
343
|
|
|
344
344
|
var StyledSelectArrow = (0, _index.styled)('svg', function (props) {
|
|
345
|
+
var _sizes;
|
|
346
|
+
|
|
345
347
|
var $theme = props.$theme,
|
|
346
|
-
$disabled = props.$disabled
|
|
348
|
+
$disabled = props.$disabled,
|
|
349
|
+
$size = props.$size;
|
|
347
350
|
var colors = $theme.colors;
|
|
351
|
+
var sizes = (_sizes = {}, _defineProperty(_sizes, _constants.SIZE.mini, 16), _defineProperty(_sizes, _constants.SIZE.compact, 16), _defineProperty(_sizes, _constants.SIZE.default, 20), _defineProperty(_sizes, _constants.SIZE.large, 24), _sizes);
|
|
352
|
+
var size = sizes[_constants.SIZE.default];
|
|
353
|
+
|
|
354
|
+
if ($size) {
|
|
355
|
+
size = sizes[$size];
|
|
356
|
+
}
|
|
357
|
+
|
|
348
358
|
return _objectSpread(_objectSpread({}, getSvgStyles({
|
|
349
359
|
$theme: $theme
|
|
350
360
|
})), {}, {
|
|
351
361
|
color: $disabled ? colors.inputTextDisabled : colors.contentPrimary,
|
|
352
|
-
cursor: $disabled ? 'not-allowed' : 'pointer'
|
|
362
|
+
cursor: $disabled ? 'not-allowed' : 'pointer',
|
|
363
|
+
height: "".concat(size, "px"),
|
|
364
|
+
width: "".concat(size, "px")
|
|
353
365
|
});
|
|
354
366
|
});
|
|
355
367
|
exports.StyledSelectArrow = StyledSelectArrow;
|
|
356
368
|
StyledSelectArrow.displayName = "StyledSelectArrow";
|
|
357
369
|
var StyledClearIcon = (0, _index.styled)('svg', function (props) {
|
|
358
|
-
var
|
|
370
|
+
var _sizes2;
|
|
371
|
+
|
|
372
|
+
var $theme = props.$theme,
|
|
373
|
+
$size = props.$size;
|
|
359
374
|
var colors = $theme.colors;
|
|
375
|
+
var sizes = (_sizes2 = {}, _defineProperty(_sizes2, _constants.SIZE.mini, 15), _defineProperty(_sizes2, _constants.SIZE.compact, 15), _defineProperty(_sizes2, _constants.SIZE.default, 18), _defineProperty(_sizes2, _constants.SIZE.large, 22), _sizes2);
|
|
376
|
+
var size = sizes[_constants.SIZE.default];
|
|
377
|
+
|
|
378
|
+
if ($size) {
|
|
379
|
+
size = sizes[$size];
|
|
380
|
+
}
|
|
381
|
+
|
|
360
382
|
return _objectSpread(_objectSpread({}, getSvgStyles({
|
|
361
383
|
$theme: $theme
|
|
362
384
|
})), {}, {
|
|
363
385
|
color: colors.contentPrimary,
|
|
364
|
-
cursor: 'pointer'
|
|
386
|
+
cursor: 'pointer',
|
|
387
|
+
height: "".concat(size, "px"),
|
|
388
|
+
width: "".concat(size, "px")
|
|
365
389
|
});
|
|
366
390
|
});
|
|
367
391
|
exports.StyledClearIcon = StyledClearIcon;
|
|
@@ -425,22 +425,50 @@ function getSvgStyles({$theme}) {
|
|
|
425
425
|
}
|
|
426
426
|
|
|
427
427
|
export const StyledSelectArrow = styled<SharedStylePropsArgT>('svg', props => {
|
|
428
|
-
const {$theme, $disabled} = props;
|
|
428
|
+
const {$theme, $disabled, $size} = props;
|
|
429
429
|
const {colors} = $theme;
|
|
430
|
+
|
|
431
|
+
const sizes = {
|
|
432
|
+
[SIZE.mini]: 16,
|
|
433
|
+
[SIZE.compact]: 16,
|
|
434
|
+
[SIZE.default]: 20,
|
|
435
|
+
[SIZE.large]: 24,
|
|
436
|
+
};
|
|
437
|
+
let size = sizes[SIZE.default];
|
|
438
|
+
if ($size) {
|
|
439
|
+
size = sizes[$size];
|
|
440
|
+
}
|
|
441
|
+
|
|
430
442
|
return {
|
|
431
443
|
...getSvgStyles({$theme}),
|
|
432
444
|
color: $disabled ? colors.inputTextDisabled : colors.contentPrimary,
|
|
433
445
|
cursor: $disabled ? 'not-allowed' : 'pointer',
|
|
446
|
+
height: `${size}px`,
|
|
447
|
+
width: `${size}px`,
|
|
434
448
|
};
|
|
435
449
|
});
|
|
436
450
|
|
|
437
451
|
export const StyledClearIcon = styled<SharedStylePropsArgT>('svg', props => {
|
|
438
|
-
const {$theme} = props;
|
|
452
|
+
const {$theme, $size} = props;
|
|
439
453
|
const {colors} = $theme;
|
|
454
|
+
|
|
455
|
+
const sizes = {
|
|
456
|
+
[SIZE.mini]: 15,
|
|
457
|
+
[SIZE.compact]: 15,
|
|
458
|
+
[SIZE.default]: 18,
|
|
459
|
+
[SIZE.large]: 22,
|
|
460
|
+
};
|
|
461
|
+
let size = sizes[SIZE.default];
|
|
462
|
+
if ($size) {
|
|
463
|
+
size = sizes[$size];
|
|
464
|
+
}
|
|
465
|
+
|
|
440
466
|
return {
|
|
441
467
|
...getSvgStyles({$theme}),
|
|
442
468
|
color: colors.contentPrimary,
|
|
443
469
|
cursor: 'pointer',
|
|
470
|
+
height: `${size}px`,
|
|
471
|
+
width: `${size}px`,
|
|
444
472
|
};
|
|
445
473
|
});
|
|
446
474
|
|
package/snackbar/index.d.ts
CHANGED
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
|
|
3
3
|
import {Override} from '../overrides';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
4
|
+
|
|
5
|
+
declare const DURATION: {
|
|
6
|
+
infinite: number;
|
|
7
|
+
short: number;
|
|
8
|
+
medium: number;
|
|
9
|
+
long: number;
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
declare const PLACEMENT: {
|
|
13
|
+
topLeft: 'topLeft';
|
|
14
|
+
top: 'top';
|
|
15
|
+
topRight: 'topRight';
|
|
16
|
+
bottomRight: 'bottomRight';
|
|
17
|
+
bottom: 'bottom';
|
|
18
|
+
bottomLeft: 'bottomLeft';
|
|
19
|
+
};
|
|
20
|
+
export {DURATION, PLACEMENT};
|
|
21
|
+
|
|
22
|
+
export type DurationT = (typeof DURATION)[keyof typeof DURATION];
|
|
23
|
+
|
|
24
|
+
export type PlacementT = (typeof PLACEMENT)[keyof typeof PLACEMENT];
|
|
20
25
|
|
|
21
26
|
export type SnackbarElementOverridesT = {
|
|
22
27
|
Root?: Override<any>;
|
|
@@ -81,6 +81,14 @@ function useSnackbar() {
|
|
|
81
81
|
};
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
+
function usePrevious(value) {
|
|
85
|
+
var ref = React.useRef();
|
|
86
|
+
React.useEffect(function () {
|
|
87
|
+
ref.current = value;
|
|
88
|
+
});
|
|
89
|
+
return ref.current;
|
|
90
|
+
}
|
|
91
|
+
|
|
84
92
|
function SnackbarProvider(_ref) {
|
|
85
93
|
var children = _ref.children,
|
|
86
94
|
_ref$overrides = _ref.overrides,
|
|
@@ -115,10 +123,6 @@ function SnackbarProvider(_ref) {
|
|
|
115
123
|
function enqueue(elementProps) {
|
|
116
124
|
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultDuration;
|
|
117
125
|
setSnackbars(function (prev) {
|
|
118
|
-
if (prev.length === 0) {
|
|
119
|
-
enter(duration);
|
|
120
|
-
}
|
|
121
|
-
|
|
122
126
|
return [].concat(_toConsumableArray(prev), [{
|
|
123
127
|
elementProps: elementProps,
|
|
124
128
|
duration: duration
|
|
@@ -126,6 +130,13 @@ function SnackbarProvider(_ref) {
|
|
|
126
130
|
});
|
|
127
131
|
}
|
|
128
132
|
|
|
133
|
+
var prevSnackbars = usePrevious(snackbars) || [];
|
|
134
|
+
React.useEffect(function () {
|
|
135
|
+
if (prevSnackbars.length === 0 && snackbars.length >= 1) {
|
|
136
|
+
enter(snackbars[0].duration);
|
|
137
|
+
}
|
|
138
|
+
}, [snackbars, prevSnackbars]);
|
|
139
|
+
|
|
129
140
|
function dequeue() {
|
|
130
141
|
setContainerHeight(0);
|
|
131
142
|
setSnackbars(function (prev) {
|
|
@@ -43,6 +43,14 @@ export function useSnackbar() {
|
|
|
43
43
|
return {enqueue: context.enqueue, dequeue: context.dequeue};
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
function usePrevious(value) {
|
|
47
|
+
const ref = React.useRef();
|
|
48
|
+
React.useEffect(() => {
|
|
49
|
+
ref.current = value;
|
|
50
|
+
});
|
|
51
|
+
return ref.current;
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
export default function SnackbarProvider({
|
|
47
55
|
children,
|
|
48
56
|
overrides = {},
|
|
@@ -61,13 +69,17 @@ export default function SnackbarProvider({
|
|
|
61
69
|
|
|
62
70
|
function enqueue(elementProps, duration = defaultDuration) {
|
|
63
71
|
setSnackbars(prev => {
|
|
64
|
-
if (prev.length === 0) {
|
|
65
|
-
enter(duration);
|
|
66
|
-
}
|
|
67
72
|
return [...prev, {elementProps, duration}];
|
|
68
73
|
});
|
|
69
74
|
}
|
|
70
75
|
|
|
76
|
+
const prevSnackbars = usePrevious(snackbars) || [];
|
|
77
|
+
React.useEffect(() => {
|
|
78
|
+
if (prevSnackbars.length === 0 && snackbars.length >= 1) {
|
|
79
|
+
enter(snackbars[0].duration);
|
|
80
|
+
}
|
|
81
|
+
}, [snackbars, prevSnackbars]);
|
|
82
|
+
|
|
71
83
|
function dequeue() {
|
|
72
84
|
setContainerHeight(0);
|
|
73
85
|
|
|
@@ -81,7 +81,8 @@ var StyledTableHeadCell = (0, _index.styled)('th', function (_ref5) {
|
|
|
81
81
|
|
|
82
82
|
var $theme = _ref5.$theme,
|
|
83
83
|
$size = _ref5.$size,
|
|
84
|
-
$divider = _ref5.$divider
|
|
84
|
+
$divider = _ref5.$divider,
|
|
85
|
+
$isNumeric = _ref5.$isNumeric;
|
|
85
86
|
var borderDir = $theme.direction === 'rtl' ? 'Left' : 'Right';
|
|
86
87
|
var borderVertical = $divider === _constants.DIVIDER.grid || $divider === _constants.DIVIDER.vertical;
|
|
87
88
|
var padding = sizeToCellPadding($theme, $size);
|
|
@@ -94,7 +95,7 @@ var StyledTableHeadCell = (0, _index.styled)('th', function (_ref5) {
|
|
|
94
95
|
paddingLeft: padding,
|
|
95
96
|
backgroundColor: $theme.colors.tableHeadBackgroundColor,
|
|
96
97
|
color: $theme.colors.contentPrimary,
|
|
97
|
-
textAlign: $theme.direction === 'rtl' ? 'right' : 'left',
|
|
98
|
+
textAlign: $theme.direction === 'rtl' || $isNumeric ? 'right' : 'left',
|
|
98
99
|
verticalAlign: 'top',
|
|
99
100
|
whiteSpace: 'nowrap',
|
|
100
101
|
zIndex: 1
|
|
@@ -182,14 +183,15 @@ var StyledTableBodyCell = (0, _index.styled)('td', function (_ref12) {
|
|
|
182
183
|
$size = _ref12.$size,
|
|
183
184
|
$divider = _ref12.$divider,
|
|
184
185
|
$isNumeric = _ref12.$isNumeric,
|
|
185
|
-
$isLastRow = _ref12.$isLastRow
|
|
186
|
+
$isLastRow = _ref12.$isLastRow,
|
|
187
|
+
$isSortable = _ref12.$isSortable;
|
|
186
188
|
var borderDir = $theme.direction === 'rtl' ? 'Left' : 'Right';
|
|
187
189
|
var borderVertical = $divider === _constants.DIVIDER.vertical || $divider === _constants.DIVIDER.grid;
|
|
188
190
|
var borderHorizontal = $divider === undefined || $divider === _constants.DIVIDER.horizontal || $divider === _constants.DIVIDER.grid;
|
|
189
191
|
var padding = sizeToCellPadding($theme, $size);
|
|
190
192
|
return _objectSpread(_objectSpread({}, $theme.typography.font200), {}, {
|
|
191
193
|
paddingTop: padding,
|
|
192
|
-
paddingRight: padding,
|
|
194
|
+
paddingRight: !$isSortable ? padding : $theme.sizing.scale1000,
|
|
193
195
|
paddingBottom: padding,
|
|
194
196
|
paddingLeft: padding,
|
|
195
197
|
color: $theme.colors.contentPrimary,
|
|
@@ -78,12 +78,13 @@ type StyledTableHeadCellPropsT = {
|
|
|
78
78
|
$col?: {},
|
|
79
79
|
$colIndex?: ?number,
|
|
80
80
|
$divider?: DividerT,
|
|
81
|
+
$isNumeric?: ?boolean,
|
|
81
82
|
$size?: SizeT,
|
|
82
83
|
};
|
|
83
84
|
|
|
84
85
|
export const StyledTableHeadCell = styled<StyledTableHeadCellPropsT>(
|
|
85
86
|
'th',
|
|
86
|
-
({$theme, $size, $divider}) => {
|
|
87
|
+
({$theme, $size, $divider, $isNumeric}) => {
|
|
87
88
|
const borderDir: string = $theme.direction === 'rtl' ? 'Left' : 'Right';
|
|
88
89
|
const borderVertical =
|
|
89
90
|
$divider === DIVIDER.grid || $divider === DIVIDER.vertical;
|
|
@@ -99,7 +100,7 @@ export const StyledTableHeadCell = styled<StyledTableHeadCellPropsT>(
|
|
|
99
100
|
paddingLeft: padding,
|
|
100
101
|
backgroundColor: $theme.colors.tableHeadBackgroundColor,
|
|
101
102
|
color: $theme.colors.contentPrimary,
|
|
102
|
-
textAlign: $theme.direction === 'rtl' ? 'right' : 'left',
|
|
103
|
+
textAlign: $theme.direction === 'rtl' || $isNumeric ? 'right' : 'left',
|
|
103
104
|
verticalAlign: 'top',
|
|
104
105
|
whiteSpace: 'nowrap',
|
|
105
106
|
zIndex: 1,
|
|
@@ -215,11 +216,12 @@ type StyledTableBodyCellPropsT = {
|
|
|
215
216
|
$size?: SizeT,
|
|
216
217
|
$isNumeric?: ?boolean,
|
|
217
218
|
$isLastRow?: ?boolean,
|
|
219
|
+
$isSortable?: ?boolean,
|
|
218
220
|
};
|
|
219
221
|
|
|
220
222
|
export const StyledTableBodyCell = styled<StyledTableBodyCellPropsT>(
|
|
221
223
|
'td',
|
|
222
|
-
({$theme, $size, $divider, $isNumeric, $isLastRow}) => {
|
|
224
|
+
({$theme, $size, $divider, $isNumeric, $isLastRow, $isSortable}) => {
|
|
223
225
|
const borderDir: string = $theme.direction === 'rtl' ? 'Left' : 'Right';
|
|
224
226
|
const borderVertical =
|
|
225
227
|
$divider === DIVIDER.vertical || $divider === DIVIDER.grid;
|
|
@@ -232,7 +234,7 @@ export const StyledTableBodyCell = styled<StyledTableBodyCellPropsT>(
|
|
|
232
234
|
return {
|
|
233
235
|
...$theme.typography.font200,
|
|
234
236
|
paddingTop: padding,
|
|
235
|
-
paddingRight: padding,
|
|
237
|
+
paddingRight: !$isSortable ? padding : $theme.sizing.scale1000,
|
|
236
238
|
paddingBottom: padding,
|
|
237
239
|
paddingLeft: padding,
|
|
238
240
|
color: $theme.colors.contentPrimary,
|
|
@@ -208,6 +208,7 @@ var TableBuilder = /*#__PURE__*/function (_React$Component) {
|
|
|
208
208
|
$col: col,
|
|
209
209
|
$colIndex: colIndex,
|
|
210
210
|
$divider: divider,
|
|
211
|
+
$isNumeric: col.numeric,
|
|
211
212
|
$size: size
|
|
212
213
|
}, tableHeadCellProps, colTableHeadCellProps), col.header);
|
|
213
214
|
}
|
|
@@ -250,6 +251,7 @@ var TableBuilder = /*#__PURE__*/function (_React$Component) {
|
|
|
250
251
|
$col: col,
|
|
251
252
|
$colIndex: colIndex,
|
|
252
253
|
$divider: divider,
|
|
254
|
+
$isNumeric: col.numeric,
|
|
253
255
|
role: "button",
|
|
254
256
|
tabIndex: "0",
|
|
255
257
|
"aria-label": "".concat(col.tableHeadAriaLabel || col.header, ", ").concat(sortLabel),
|
|
@@ -283,6 +285,7 @@ var TableBuilder = /*#__PURE__*/function (_React$Component) {
|
|
|
283
285
|
$rowIndex: rowIndex,
|
|
284
286
|
$isNumeric: col.numeric,
|
|
285
287
|
$isLastRow: rowIndex === lastRowindex,
|
|
288
|
+
$isSortable: col.sortable,
|
|
286
289
|
$size: size
|
|
287
290
|
}, tableBodyCellProps, colTableBodyCellProps), col.children(row, rowIndex));
|
|
288
291
|
}
|
|
@@ -153,6 +153,7 @@ export default class TableBuilder<T> extends React.Component<
|
|
|
153
153
|
$col={col}
|
|
154
154
|
$colIndex={colIndex}
|
|
155
155
|
$divider={divider}
|
|
156
|
+
$isNumeric={col.numeric}
|
|
156
157
|
$size={size}
|
|
157
158
|
{...tableHeadCellProps}
|
|
158
159
|
{...colTableHeadCellProps}
|
|
@@ -211,6 +212,7 @@ export default class TableBuilder<T> extends React.Component<
|
|
|
211
212
|
$col={col}
|
|
212
213
|
$colIndex={colIndex}
|
|
213
214
|
$divider={divider}
|
|
215
|
+
$isNumeric={col.numeric}
|
|
214
216
|
role="button"
|
|
215
217
|
tabIndex="0"
|
|
216
218
|
aria-label={`${col.tableHeadAriaLabel || col.header}, ${sortLabel}`}
|
|
@@ -249,6 +251,7 @@ export default class TableBuilder<T> extends React.Component<
|
|
|
249
251
|
$rowIndex={rowIndex}
|
|
250
252
|
$isNumeric={col.numeric}
|
|
251
253
|
$isLastRow={rowIndex === lastRowindex}
|
|
254
|
+
$isSortable={col.sortable}
|
|
252
255
|
$size={size}
|
|
253
256
|
{...tableBodyCellProps}
|
|
254
257
|
{...colTableBodyCellProps}
|
|
@@ -103,7 +103,7 @@ var _default = function _default() {
|
|
|
103
103
|
linkActive: themePrimitives.primary300,
|
|
104
104
|
// List
|
|
105
105
|
listHeaderFill: themePrimitives.mono600,
|
|
106
|
-
listBodyFill: themePrimitives.
|
|
106
|
+
listBodyFill: themePrimitives.mono800,
|
|
107
107
|
listIconFill: themePrimitives.mono100,
|
|
108
108
|
listBorder: themePrimitives.mono500,
|
|
109
109
|
// ProgressSteps
|
|
@@ -32,32 +32,32 @@ var _default = function _default() {
|
|
|
32
32
|
buttonPrimaryActive: themePrimitives.primary600,
|
|
33
33
|
buttonPrimarySelectedFill: themePrimitives.primary600,
|
|
34
34
|
buttonPrimarySelectedText: themePrimitives.white,
|
|
35
|
-
buttonPrimarySpinnerForeground: themePrimitives.
|
|
36
|
-
buttonPrimarySpinnerBackground: themePrimitives.
|
|
35
|
+
buttonPrimarySpinnerForeground: themePrimitives.accent,
|
|
36
|
+
buttonPrimarySpinnerBackground: themePrimitives.primaryB,
|
|
37
37
|
buttonSecondaryFill: themePrimitives.primary100,
|
|
38
38
|
buttonSecondaryText: themePrimitives.primary,
|
|
39
39
|
buttonSecondaryHover: themePrimitives.primary200,
|
|
40
40
|
buttonSecondaryActive: themePrimitives.primary300,
|
|
41
41
|
buttonSecondarySelectedFill: themePrimitives.primary300,
|
|
42
42
|
buttonSecondarySelectedText: themePrimitives.primary,
|
|
43
|
-
buttonSecondarySpinnerForeground: themePrimitives.
|
|
44
|
-
buttonSecondarySpinnerBackground: themePrimitives.
|
|
43
|
+
buttonSecondarySpinnerForeground: themePrimitives.accent,
|
|
44
|
+
buttonSecondarySpinnerBackground: themePrimitives.primaryB,
|
|
45
45
|
buttonTertiaryFill: 'transparent',
|
|
46
46
|
buttonTertiaryText: themePrimitives.primary,
|
|
47
47
|
buttonTertiaryHover: themePrimitives.primary50,
|
|
48
48
|
buttonTertiaryActive: themePrimitives.primary100,
|
|
49
49
|
buttonTertiarySelectedFill: themePrimitives.primary100,
|
|
50
50
|
buttonTertiarySelectedText: themePrimitives.primary,
|
|
51
|
-
buttonTertiarySpinnerForeground: themePrimitives.
|
|
52
|
-
buttonTertiarySpinnerBackground: themePrimitives.
|
|
51
|
+
buttonTertiarySpinnerForeground: themePrimitives.accent,
|
|
52
|
+
buttonTertiarySpinnerBackground: themePrimitives.primary100,
|
|
53
53
|
buttonMinimalFill: 'transparent',
|
|
54
54
|
buttonMinimalText: themePrimitives.primary,
|
|
55
55
|
buttonMinimalHover: themePrimitives.primary50,
|
|
56
56
|
buttonMinimalActive: themePrimitives.primary100,
|
|
57
57
|
buttonMinimalSelectedFill: themePrimitives.primary100,
|
|
58
58
|
buttonMinimalSelectedText: themePrimitives.primary,
|
|
59
|
-
buttonMinimalSpinnerForeground: themePrimitives.
|
|
60
|
-
buttonMinimalSpinnerBackground: themePrimitives.
|
|
59
|
+
buttonMinimalSpinnerForeground: themePrimitives.accent,
|
|
60
|
+
buttonMinimalSpinnerBackground: themePrimitives.primary100,
|
|
61
61
|
buttonDisabledFill: themePrimitives.mono200,
|
|
62
62
|
buttonDisabledText: themePrimitives.mono600,
|
|
63
63
|
buttonDisabledSpinnerForeground: themePrimitives.mono600,
|
|
@@ -103,7 +103,7 @@ var _default = function _default() {
|
|
|
103
103
|
linkActive: themePrimitives.primary500,
|
|
104
104
|
// List
|
|
105
105
|
listHeaderFill: themePrimitives.white,
|
|
106
|
-
listBodyFill: themePrimitives.
|
|
106
|
+
listBodyFill: themePrimitives.white,
|
|
107
107
|
listIconFill: themePrimitives.mono500,
|
|
108
108
|
listBorder: themePrimitives.mono500,
|
|
109
109
|
// ProgressSteps
|