@pingux/astro 1.2.0-alpha.6 → 1.2.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.
- package/CHANGELOG.md +43 -0
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +32 -25
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
- package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
- package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +3 -3
- package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +16 -18
- package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
- package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
- package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
- package/lib/cjs/components/Button/Button.js +14 -2
- package/lib/cjs/components/Button/Button.stories.js +33 -33
- package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/cjs/components/Link/Link.js +2 -1
- package/lib/cjs/components/ListView/ListView.js +9 -13
- package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
- package/lib/cjs/components/Modal/Modal.stories.js +1 -1
- package/lib/cjs/components/OverlayPanel/OverlayPanel.js +2 -16
- package/lib/cjs/components/OverlayPanel/OverlayPanel.test.js +44 -0
- package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
- package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
- package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
- package/lib/cjs/components/TextAreaField/TextAreaField.js +54 -9
- package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +31 -52
- package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
- package/lib/cjs/context/AccordionGridContext/index.js +20 -0
- package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/cjs/hooks/useField/useField.js +5 -0
- package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/cjs/layouts/ListLayout.stories.js +6 -6
- package/lib/cjs/recipes/ArrayField.stories.js +1 -1
- package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
- package/lib/cjs/styles/variants/boxes.js +9 -0
- package/lib/cjs/styles/variants/buttons.js +20 -0
- package/lib/components/AccordionGridGroup/AccordionGridGroup.js +32 -24
- package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
- package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
- package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
- package/lib/components/AccordionGridItem/AccordionGridItemBody.js +4 -4
- package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +19 -20
- package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
- package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
- package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
- package/lib/components/Button/Button.js +15 -3
- package/lib/components/Button/Button.stories.js +17 -15
- package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
- package/lib/components/Link/Link.js +2 -1
- package/lib/components/ListView/ListView.js +9 -12
- package/lib/components/ListViewItem/ListViewItem.js +14 -3
- package/lib/components/Modal/Modal.stories.js +1 -1
- package/lib/components/OverlayPanel/OverlayPanel.js +3 -16
- package/lib/components/OverlayPanel/OverlayPanel.test.js +38 -0
- package/lib/components/RockerButton/RockerButton.js +14 -21
- package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
- package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
- package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
- package/lib/components/SearchField/SearchField.stories.js +0 -11
- package/lib/components/TextAreaField/TextAreaField.js +54 -10
- package/lib/components/TextAreaField/TextAreaField.stories.js +26 -42
- package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
- package/lib/context/AccordionGridContext/index.js +5 -0
- package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
- package/lib/hooks/useField/useField.js +5 -0
- package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
- package/lib/layouts/ListLayout.stories.js +6 -6
- package/lib/recipes/ArrayField.stories.js +1 -1
- package/lib/recipes/ConditionalFilter.stories.js +7 -3
- package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
- package/lib/styles/variants/boxes.js +9 -0
- package/lib/styles/variants/buttons.js +20 -0
- package/package.json +3 -3
- package/lib/cjs/components/AccordionGridGroup/AccordionGridContext.js +0 -17
- package/lib/components/AccordionGridGroup/AccordionGridContext.js +0 -2
@@ -30,7 +30,7 @@ var _grid = require("@react-aria/grid");
|
|
30
30
|
|
31
31
|
var _utils = require("@react-aria/utils");
|
32
32
|
|
33
|
-
var _AccordionGridContext = require("
|
33
|
+
var _AccordionGridContext = require("../../context/AccordionGridContext");
|
34
34
|
|
35
35
|
var _Box = _interopRequireDefault(require("../Box"));
|
36
36
|
|
@@ -38,6 +38,8 @@ var _AccordionGridItemHeader = _interopRequireDefault(require("./AccordionGridIt
|
|
38
38
|
|
39
39
|
var _AccordionGridItemBody = _interopRequireDefault(require("./AccordionGridItemBody"));
|
40
40
|
|
41
|
+
var _hooks = require("../../hooks");
|
42
|
+
|
41
43
|
var _react2 = require("@emotion/react");
|
42
44
|
|
43
45
|
var AccordionGridItem = function AccordionGridItem(props) {
|
@@ -47,7 +49,8 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
47
49
|
headerProps = props.headerProps,
|
48
50
|
bodyProps = props.bodyProps,
|
49
51
|
children = props.children,
|
50
|
-
|
52
|
+
className = props.className,
|
53
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["item", "headerProps", "bodyProps", "children", "className"]);
|
51
54
|
|
52
55
|
var _React$Children$toArr = _react["default"].Children.toArray(children),
|
53
56
|
_React$Children$toArr2 = (0, _toArray2["default"])(_React$Children$toArr),
|
@@ -57,10 +60,18 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
57
60
|
|
58
61
|
var cellNode = (0, _concat["default"])(_context = []).call(_context, item.childNodes)[0];
|
59
62
|
|
60
|
-
var
|
61
|
-
state =
|
63
|
+
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
64
|
+
state = _useAccordionGridCont.state; // Treat first cell as a row, fixes focus and keyboard interactions
|
65
|
+
|
66
|
+
|
67
|
+
var isDisabled = state.disabledKeys.has(cellNode.key);
|
68
|
+
var isSelected = state.selectionManager.isSelected(cellNode.key); // Sync selection between the first cell and the row
|
62
69
|
|
63
|
-
|
70
|
+
(0, _react.useEffect)(function () {
|
71
|
+
if (isSelected !== state.selectionManager.isSelected(item.key)) {
|
72
|
+
state.selectionManager.toggleSelection(item.key);
|
73
|
+
}
|
74
|
+
}, [isSelected, state.selectionManager, item.key]);
|
64
75
|
var rowRef = (0, _react.useRef)();
|
65
76
|
var cellRef = (0, _react.useRef)();
|
66
77
|
var cellBodyRef = (0, _react.useRef)();
|
@@ -70,20 +81,24 @@ var AccordionGridItem = function AccordionGridItem(props) {
|
|
70
81
|
}, state, rowRef),
|
71
82
|
rowProps = _useGridRow.rowProps;
|
72
83
|
|
73
|
-
var
|
74
|
-
|
75
|
-
as: "div",
|
84
|
+
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
85
|
+
isSelected: isSelected,
|
76
86
|
isDisabled: isDisabled
|
87
|
+
}),
|
88
|
+
classNames = _useStatusClasses.classNames;
|
89
|
+
|
90
|
+
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
91
|
+
as: "div"
|
77
92
|
}, (0, _utils.mergeProps)(rowProps, others), {
|
78
|
-
|
79
|
-
|
93
|
+
"aria-selected": isSelected,
|
94
|
+
className: classNames,
|
95
|
+
ref: rowRef
|
80
96
|
}), (0, _react2.jsx)(_AccordionGridItemHeader["default"], (0, _extends2["default"])({
|
81
97
|
item: item,
|
82
|
-
|
83
|
-
|
84
|
-
}, headerProps, {
|
98
|
+
ref: cellRef,
|
99
|
+
isDisabled: isDisabled,
|
85
100
|
isSelected: isSelected
|
86
|
-
}), header), (0, _react2.jsx)(_AccordionGridItemBody["default"], (0, _extends2["default"])({
|
101
|
+
}, headerProps), header), (0, _react2.jsx)(_AccordionGridItemBody["default"], (0, _extends2["default"])({
|
87
102
|
item: item,
|
88
103
|
ref: cellBodyRef,
|
89
104
|
isSelected: isSelected
|
@@ -26,7 +26,7 @@ var _grid = require("@react-aria/grid");
|
|
26
26
|
|
27
27
|
var _interactions = require("@react-aria/interactions");
|
28
28
|
|
29
|
-
var _AccordionGridContext = require("
|
29
|
+
var _AccordionGridContext = require("../../context/AccordionGridContext");
|
30
30
|
|
31
31
|
var _Box = _interopRequireDefault(require("../Box"));
|
32
32
|
|
@@ -42,8 +42,8 @@ var AccordionGridItemBody = /*#__PURE__*/(0, _react.forwardRef)(function (props,
|
|
42
42
|
children = props.children,
|
43
43
|
isSelected = props.isSelected;
|
44
44
|
|
45
|
-
var
|
46
|
-
state =
|
45
|
+
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
46
|
+
state = _useAccordionGridCont.state;
|
47
47
|
|
48
48
|
var cellNode = (0, _concat["default"])(_context = []).call(_context, item.childNodes)[1];
|
49
49
|
|
@@ -34,7 +34,7 @@ var _MenuDownIcon = _interopRequireDefault(require("mdi-react/MenuDownIcon"));
|
|
34
34
|
|
35
35
|
var _MenuUpIcon = _interopRequireDefault(require("mdi-react/MenuUpIcon"));
|
36
36
|
|
37
|
-
var _AccordionGridContext = require("
|
37
|
+
var _AccordionGridContext = require("../../context/AccordionGridContext");
|
38
38
|
|
39
39
|
var _Box = _interopRequireDefault(require("../Box"));
|
40
40
|
|
@@ -50,20 +50,26 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
50
50
|
var item = props.item,
|
51
51
|
className = props.className,
|
52
52
|
children = props.children,
|
53
|
-
key = props.key,
|
54
53
|
isSelected = props.isSelected,
|
55
|
-
others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "
|
54
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "isSelected"]);
|
56
55
|
|
57
|
-
var
|
58
|
-
state =
|
56
|
+
var _useAccordionGridCont = (0, _AccordionGridContext.useAccordionGridContext)(),
|
57
|
+
state = _useAccordionGridCont.state;
|
59
58
|
|
59
|
+
var cellRef = (0, _react.useRef)();
|
60
|
+
/* istanbul ignore next */
|
61
|
+
|
62
|
+
(0, _react.useImperativeHandle)(ref, function () {
|
63
|
+
return cellRef.current;
|
64
|
+
});
|
60
65
|
var cellNode = (0, _concat["default"])(_context = []).call(_context, item.childNodes)[0];
|
61
66
|
|
62
67
|
var _useGridCell = (0, _grid.useGridCell)({
|
63
68
|
node: cellNode,
|
64
69
|
focusMode: 'cell'
|
65
|
-
}, state,
|
66
|
-
gridCellProps = _useGridCell.gridCellProps
|
70
|
+
}, state, cellRef),
|
71
|
+
gridCellProps = _useGridCell.gridCellProps,
|
72
|
+
isPressed = _useGridCell.isPressed;
|
67
73
|
|
68
74
|
var _useHover = (0, _interactions.useHover)({}),
|
69
75
|
hoverProps = _useHover.hoverProps,
|
@@ -78,14 +84,7 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
78
84
|
focusProps = _useFocusRing2.focusProps,
|
79
85
|
isFocusVisible = _useFocusRing2.isFocusVisible;
|
80
86
|
|
81
|
-
var
|
82
|
-
ref: ref,
|
83
|
-
isPressed: item.props.isPressed
|
84
|
-
}),
|
85
|
-
pressProps = _usePress.pressProps,
|
86
|
-
isPressed = _usePress.isPressed;
|
87
|
-
|
88
|
-
var mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps, pressProps);
|
87
|
+
var mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps);
|
89
88
|
|
90
89
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
91
90
|
isPressed: isPressed,
|
@@ -98,9 +97,8 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
98
97
|
var ariaLabel = props['aria-label'];
|
99
98
|
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
100
99
|
as: "div",
|
101
|
-
ref:
|
100
|
+
ref: cellRef
|
102
101
|
}, mergedProps, {
|
103
|
-
role: "gridcell",
|
104
102
|
variant: "accordion.accordionGridHeader",
|
105
103
|
isFocused: isFocusVisible,
|
106
104
|
isSelected: isSelected,
|
@@ -123,8 +121,8 @@ var AccordionGridItemHeader = /*#__PURE__*/(0, _react.forwardRef)(function (prop
|
|
123
121
|
AccordionGridItemHeader.propTypes = {
|
124
122
|
'aria-label': _propTypes["default"].string,
|
125
123
|
isSelected: _propTypes["default"].bool,
|
126
|
-
key: _propTypes["default"].string,
|
127
124
|
item: _propTypes["default"].shape({
|
125
|
+
key: _propTypes["default"].string,
|
128
126
|
childNodes: _propTypes["default"].arrayOf(_propTypes["default"].shape({})),
|
129
127
|
props: _propTypes["default"].shape({
|
130
128
|
isPressed: _propTypes["default"].bool
|
@@ -57,8 +57,9 @@ var AccordionGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
57
57
|
|
58
58
|
var _useAccordion = (0, _accordion.useAccordion)(props, state, accordionRef),
|
59
59
|
accordionProps = _useAccordion.accordionProps;
|
60
|
-
/* istanbul ignore next */
|
61
60
|
|
61
|
+
delete accordionProps.onMouseDown;
|
62
|
+
/* istanbul ignore next */
|
62
63
|
|
63
64
|
(0, _react.useImperativeHandle)(ref, function () {
|
64
65
|
return accordionRef.current;
|
@@ -46,7 +46,11 @@ var getComponent = function getComponent() {
|
|
46
46
|
textValue: "Duplicate",
|
47
47
|
"data-id": "third",
|
48
48
|
label: "Accordion item"
|
49
|
-
}, (0, _react2.jsx)(
|
49
|
+
}, (0, _react2.jsx)(_index.TextField, {
|
50
|
+
role: "form",
|
51
|
+
label: "Example Label",
|
52
|
+
"data-testid": "testField"
|
53
|
+
}))));
|
50
54
|
};
|
51
55
|
|
52
56
|
var getComponentInOverlayPanel = function getComponentInOverlayPanel() {
|
@@ -280,6 +284,21 @@ test('expanded keys expands an accordion item', function () {
|
|
280
284
|
var selectedItem = buttons[0];
|
281
285
|
expect(selectedItem).toHaveAttribute('aria-expanded', 'true');
|
282
286
|
});
|
287
|
+
test('able to click a textfield that is the rendered child of an accordion', function () {
|
288
|
+
getComponent({
|
289
|
+
expandedKeys: ['third']
|
290
|
+
});
|
291
|
+
|
292
|
+
var field = _testWrapper.screen.getByTestId('testField');
|
293
|
+
|
294
|
+
var input = _testWrapper.screen.getByRole('form');
|
295
|
+
|
296
|
+
_userEvent["default"].click(input);
|
297
|
+
|
298
|
+
_userEvent["default"].type(input, 'banana');
|
299
|
+
|
300
|
+
expect(field).toHaveClass('has-focus-within');
|
301
|
+
});
|
283
302
|
test('Item accepts a data-id and the data-id can be found in the DOM', function () {
|
284
303
|
getComponent();
|
285
304
|
|
@@ -63,15 +63,15 @@ var Default = function Default(args) {
|
|
63
63
|
onAction: onAction
|
64
64
|
}, args), (0, _react2.jsx)(_collections.Item, {
|
65
65
|
key: "home",
|
66
|
-
variant: "
|
66
|
+
variant: "link",
|
67
67
|
"data-id": "home"
|
68
68
|
}, "Home"), (0, _react2.jsx)(_collections.Item, {
|
69
69
|
key: "trendy",
|
70
|
-
variant: "
|
70
|
+
variant: "link",
|
71
71
|
"data-id": "trendy"
|
72
72
|
}, "Trendy"), (0, _react2.jsx)(_collections.Item, {
|
73
73
|
key: "march 2020 assets",
|
74
|
-
variant: "
|
74
|
+
variant: "link",
|
75
75
|
"data-id": "march"
|
76
76
|
}, "March 2020 Assets"));
|
77
77
|
};
|
@@ -71,7 +71,8 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
71
71
|
onPressChange = props.onPressChange,
|
72
72
|
onPressUp = props.onPressUp,
|
73
73
|
children = props.children,
|
74
|
-
|
74
|
+
variant = props.variant,
|
75
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["className", "isDisabled", "isLoading", "onHoverStart", "onHoverChange", "onHoverEnd", "onPress", "onPressStart", "onPressEnd", "onPressChange", "onPressUp", "children", "variant"]);
|
75
76
|
var buttonRef = (0, _react.useRef)();
|
76
77
|
(0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
|
77
78
|
/* istanbul ignore next */
|
@@ -102,7 +103,17 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
102
103
|
}),
|
103
104
|
classNames = _useStatusClasses.classNames;
|
104
105
|
|
106
|
+
(0, _hooks.useDeprecationWarning)('The "icon" variant for `Button` is deprecated in Astro-UI 1.0.0, use the `IconButton` component instead.', {
|
107
|
+
isActive: props.variant === 'icon'
|
108
|
+
});
|
109
|
+
(0, _hooks.useDeprecationWarning)('The "danger" variant for `Button` will be deprecated in Astro-UI 2.0.0, use the `critical` variant instead.', {
|
110
|
+
isActive: props.variant === 'danger'
|
111
|
+
});
|
112
|
+
(0, _hooks.useDeprecationWarning)('The "text" variant for `Button` will be deprecated in Astro-UI 2.0.0, use the `link` variant instead.', {
|
113
|
+
isActive: props.variant === 'text'
|
114
|
+
});
|
105
115
|
var ariaLabel = props['aria-label'];
|
116
|
+
(0, _hooks.useAriaLabelWarning)('Button', ariaLabel, variant === 'filter');
|
106
117
|
return (0, _react2.jsx)(_themeUi.Button, (0, _extends2["default"])({
|
107
118
|
"aria-label": ariaLabel,
|
108
119
|
ref: buttonRef,
|
@@ -113,7 +124,8 @@ var Button = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
113
124
|
display: 'flex',
|
114
125
|
justifyContent: 'center',
|
115
126
|
alignItems: 'center'
|
116
|
-
}
|
127
|
+
},
|
128
|
+
variant: variant
|
117
129
|
}, others, (0, _utils.mergeProps)(hoverProps, focusProps, buttonProps)), isLoading ? (0, _react2.jsx)("span", {
|
118
130
|
style: {
|
119
131
|
visibility: 'hidden'
|
@@ -8,7 +8,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
9
9
|
});
|
10
10
|
|
11
|
-
exports.
|
11
|
+
exports.FilterButton = exports.ColorBlockButton = exports.InlineButton = exports.TextIconButton = exports.Disabled = exports.Default = exports["default"] = void 0;
|
12
12
|
|
13
13
|
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
14
14
|
|
@@ -20,16 +20,12 @@ var _AddCircleIcon = _interopRequireDefault(require("mdi-react/AddCircleIcon"));
|
|
20
20
|
|
21
21
|
var _CreateIcon = _interopRequireDefault(require("mdi-react/CreateIcon"));
|
22
22
|
|
23
|
-
var
|
24
|
-
|
25
|
-
var _ = _interopRequireDefault(require("."));
|
26
|
-
|
27
|
-
var _Icon = _interopRequireDefault(require("../Icon"));
|
28
|
-
|
29
|
-
var _Text = _interopRequireDefault(require("../Text"));
|
23
|
+
var _FilterIcon = _interopRequireDefault(require("mdi-react/FilterIcon"));
|
30
24
|
|
31
25
|
var _variants = require("../../utils/devUtils/constants/variants");
|
32
26
|
|
27
|
+
var _index = require("../../index");
|
28
|
+
|
33
29
|
var _react2 = require("@emotion/react");
|
34
30
|
|
35
31
|
// removing the iconButton variants from this story.
|
@@ -41,7 +37,7 @@ delete variants.INVERTED; // add designer approved variants for devs to use here
|
|
41
37
|
var variantOptions = ['critical', 'danger', 'default', 'inline', 'link', 'primary', 'success', 'text'];
|
42
38
|
var _default = {
|
43
39
|
title: 'Button',
|
44
|
-
component:
|
40
|
+
component: _index.Button,
|
45
41
|
argTypes: {
|
46
42
|
variant: {
|
47
43
|
control: {
|
@@ -74,13 +70,13 @@ var _default = {
|
|
74
70
|
exports["default"] = _default;
|
75
71
|
|
76
72
|
var Default = function Default(args) {
|
77
|
-
return (0, _react2.jsx)(
|
73
|
+
return (0, _react2.jsx)(_index.Button, args);
|
78
74
|
};
|
79
75
|
|
80
76
|
exports.Default = Default;
|
81
77
|
|
82
78
|
var Disabled = function Disabled() {
|
83
|
-
return (0, _react2.jsx)(
|
79
|
+
return (0, _react2.jsx)(_index.Button, {
|
84
80
|
isDisabled: true
|
85
81
|
}, "Button Text");
|
86
82
|
};
|
@@ -88,12 +84,12 @@ var Disabled = function Disabled() {
|
|
88
84
|
exports.Disabled = Disabled;
|
89
85
|
|
90
86
|
var TextIconButton = function TextIconButton() {
|
91
|
-
return (0, _react2.jsx)(
|
87
|
+
return (0, _react2.jsx)(_index.Button, {
|
92
88
|
mb: "sm"
|
93
|
-
}, (0, _react2.jsx)(
|
89
|
+
}, (0, _react2.jsx)(_index.Box, {
|
94
90
|
isRow: true,
|
95
91
|
alignItems: "center"
|
96
|
-
}, (0, _react2.jsx)(
|
92
|
+
}, (0, _react2.jsx)(_index.Icon, {
|
97
93
|
icon: _AddCircleIcon["default"],
|
98
94
|
mr: "sm",
|
99
95
|
color: "active",
|
@@ -103,21 +99,8 @@ var TextIconButton = function TextIconButton() {
|
|
103
99
|
|
104
100
|
exports.TextIconButton = TextIconButton;
|
105
101
|
|
106
|
-
var TextButton = function TextButton() {
|
107
|
-
return (0, _react2.jsx)(_["default"], {
|
108
|
-
mb: "sm",
|
109
|
-
variant: "text",
|
110
|
-
"aria-label": "Add option"
|
111
|
-
}, (0, _react2.jsx)(_Text["default"], {
|
112
|
-
variant: "label",
|
113
|
-
color: "active"
|
114
|
-
}, " + Add Option"));
|
115
|
-
};
|
116
|
-
|
117
|
-
exports.TextButton = TextButton;
|
118
|
-
|
119
102
|
var InlineButton = function InlineButton() {
|
120
|
-
return (0, _react2.jsx)(
|
103
|
+
return (0, _react2.jsx)(_index.Button, {
|
121
104
|
mb: "sm",
|
122
105
|
variant: "inline"
|
123
106
|
}, "Inline");
|
@@ -129,14 +112,14 @@ var ColorBlockButton = function ColorBlockButton(args) {
|
|
129
112
|
// Change `isConfigured` property in storybook controls
|
130
113
|
var isConfigured = args.isConfigured,
|
131
114
|
props = (0, _objectWithoutProperties2["default"])(args, ["isConfigured"]);
|
132
|
-
return (0, _react2.jsx)(
|
115
|
+
return (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({}, props, {
|
133
116
|
variant: "colorBlock",
|
134
117
|
className: isConfigured ? 'is-configured' : ''
|
135
|
-
}), (0, _react2.jsx)(
|
118
|
+
}), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
|
136
119
|
variant: "buttonTitle"
|
137
|
-
}, "Title"), (0, _react2.jsx)(
|
120
|
+
}, "Title"), (0, _react2.jsx)(_index.Text, {
|
138
121
|
variant: "buttonSubtitle"
|
139
|
-
}, "Info")), (0, _react2.jsx)(
|
122
|
+
}, "Info")), (0, _react2.jsx)(_index.Icon, {
|
140
123
|
icon: _CreateIcon["default"]
|
141
124
|
}));
|
142
125
|
};
|
@@ -151,4 +134,21 @@ ColorBlockButton.story = {
|
|
151
134
|
defaultValue: false
|
152
135
|
}
|
153
136
|
}
|
154
|
-
};
|
137
|
+
};
|
138
|
+
|
139
|
+
var FilterButton = function FilterButton() {
|
140
|
+
return (0, _react2.jsx)(_index.Box, {
|
141
|
+
p: "xx",
|
142
|
+
isRow: true,
|
143
|
+
gap: "md"
|
144
|
+
}, (0, _react2.jsx)(_index.SearchField, {
|
145
|
+
"aria-label": "search items"
|
146
|
+
}), (0, _react2.jsx)(_index.Button, {
|
147
|
+
variant: "filter",
|
148
|
+
"aria-label": "filter button"
|
149
|
+
}, (0, _react2.jsx)(_index.Icon, {
|
150
|
+
icon: _FilterIcon["default"]
|
151
|
+
})));
|
152
|
+
};
|
153
|
+
|
154
|
+
exports.FilterButton = FilterButton;
|
@@ -313,9 +313,11 @@ EnvironmentBreadcrumb.propTypes = {
|
|
313
313
|
/** The list of environments. */
|
314
314
|
items: _isIterable.isIterableProp,
|
315
315
|
|
316
|
-
/**
|
317
|
-
*
|
318
|
-
*
|
316
|
+
/**
|
317
|
+
* Filter function to generate a filtered list of nodes.
|
318
|
+
*
|
319
|
+
* `(nodes: Iterable<Node>) => Iterable<Node>`
|
320
|
+
*/
|
319
321
|
itemsFilter: _propTypes["default"].func,
|
320
322
|
|
321
323
|
/** Callback function that fires when the dropdown is opened. */
|
@@ -37,7 +37,8 @@ var _react2 = require("@emotion/react");
|
|
37
37
|
var Link = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
38
38
|
var className = props.className,
|
39
39
|
isDisabled = props.isDisabled,
|
40
|
-
|
40
|
+
onPress = props.onPress,
|
41
|
+
others = (0, _objectWithoutProperties2["default"])(props, ["className", "isDisabled", "onPress"]);
|
41
42
|
var linkRef = (0, _react.useRef)();
|
42
43
|
(0, _hooks.usePropWarning)(props, 'disabled', 'isDisabled');
|
43
44
|
/* istanbul ignore next */
|
@@ -45,8 +45,6 @@ var _grid = require("@react-stately/grid");
|
|
45
45
|
|
46
46
|
var _grid2 = require("@react-aria/grid");
|
47
47
|
|
48
|
-
var _utils = require("@react-aria/utils");
|
49
|
-
|
50
48
|
var _layout = require("@react-stately/layout");
|
51
49
|
|
52
50
|
var _list = require("@react-stately/list");
|
@@ -103,12 +101,9 @@ function useListLayout(state) {
|
|
103
101
|
}
|
104
102
|
|
105
103
|
var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
106
|
-
var
|
107
|
-
loadingState = props.loadingState,
|
108
|
-
selectedKeys = props.selectedKeys,
|
104
|
+
var loadingState = props.loadingState,
|
109
105
|
onLoadMore = props.onLoadMore,
|
110
|
-
|
111
|
-
selectionMode = props.selectionMode;
|
106
|
+
selectionStyle = props.selectionStyle;
|
112
107
|
var isLoading = loadingState === _loadingStates["default"].LOADING_MORE || loadingState === _loadingStates["default"].LOADING;
|
113
108
|
|
114
109
|
var renderWrapper = function renderWrapper(parent, reusableView) {
|
@@ -160,11 +155,9 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
160
155
|
});
|
161
156
|
}, [collection]);
|
162
157
|
var state = (0, _grid.useGridState)(_objectSpread(_objectSpread({}, props), {}, {
|
163
|
-
disabledKeys: disabledKeys,
|
164
|
-
selectedKeys: selectedKeys,
|
165
158
|
collection: gridCollection,
|
166
|
-
|
167
|
-
|
159
|
+
focusMode: 'cell',
|
160
|
+
selectionBehavior: selectionStyle === 'highlight' ? 'replace' : 'toggle'
|
168
161
|
}));
|
169
162
|
var layout = useListLayout(state);
|
170
163
|
var keyboardDelegate = (0, _react.useMemo)(function () {
|
@@ -199,7 +192,7 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
199
192
|
state: state,
|
200
193
|
keyboardDelegate: keyboardDelegate
|
201
194
|
}
|
202
|
-
}, (0, _react2.jsx)(_virtualizer.Virtualizer, (0, _extends2["default"])({},
|
195
|
+
}, (0, _react2.jsx)(_virtualizer.Virtualizer, (0, _extends2["default"])({}, gridProps, {
|
203
196
|
onLoadMore: onLoadMore,
|
204
197
|
ref: listViewRef,
|
205
198
|
focusedKey: focusedKey,
|
@@ -266,6 +259,9 @@ ListView.propTypes = {
|
|
266
259
|
/** The type of selection that is allowed in the collection. */
|
267
260
|
selectionMode: _propTypes["default"].oneOf(['none', 'single', 'multiple']),
|
268
261
|
|
262
|
+
/** */
|
263
|
+
selectionStyle: _propTypes["default"].oneOf(['highlight', undefined]),
|
264
|
+
|
269
265
|
/** Callback function that fires when the selected key changes. */
|
270
266
|
onSelectionChange: _propTypes["default"].func,
|
271
267
|
|
@@ -278,7 +274,7 @@ ListView.propTypes = {
|
|
278
274
|
};
|
279
275
|
ListView.defaultProps = {
|
280
276
|
'aria-label': 'listView',
|
281
|
-
|
277
|
+
selectionMode: 'single'
|
282
278
|
};
|
283
279
|
var _default = ListView;
|
284
280
|
exports["default"] = _default;
|
@@ -28,6 +28,8 @@ var _grid = require("@react-aria/grid");
|
|
28
28
|
|
29
29
|
var _interactions = require("@react-aria/interactions");
|
30
30
|
|
31
|
+
var _selection = require("@react-aria/selection");
|
32
|
+
|
31
33
|
var _ListViewContext = require("../ListView/ListViewContext");
|
32
34
|
|
33
35
|
var _Box = _interopRequireDefault(require("../Box"));
|
@@ -40,7 +42,9 @@ var ListViewItem = function ListViewItem(props) {
|
|
40
42
|
var _context;
|
41
43
|
|
42
44
|
var item = props.item,
|
43
|
-
_props$item
|
45
|
+
_props$item = props.item,
|
46
|
+
key = _props$item.key,
|
47
|
+
_props$item$props = _props$item.props,
|
44
48
|
listItemProps = _props$item$props.listItemProps,
|
45
49
|
rowProps = _props$item$props.rowProps,
|
46
50
|
_props$item$props$has = _props$item$props.hasSeparator,
|
@@ -75,7 +79,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
75
79
|
}, state, rowRef),
|
76
80
|
raRowProps = _useGridRow.rowProps;
|
77
81
|
|
78
|
-
var isSelected =
|
82
|
+
var isSelected = state.selectionManager.isSelected(item.key);
|
79
83
|
|
80
84
|
var _useGridCell = (0, _grid.useGridCell)({
|
81
85
|
node: cellNode,
|
@@ -83,7 +87,15 @@ var ListViewItem = function ListViewItem(props) {
|
|
83
87
|
}, state, cellRef),
|
84
88
|
gridCellProps = _useGridCell.gridCellProps;
|
85
89
|
|
86
|
-
var
|
90
|
+
var _useSelectableItem = (0, _selection.useSelectableItem)({
|
91
|
+
isDisabled: isDisabled,
|
92
|
+
selectionManager: state.selectionManager,
|
93
|
+
key: key,
|
94
|
+
ref: cellRef
|
95
|
+
}),
|
96
|
+
selectableItemProps = _useSelectableItem.itemProps;
|
97
|
+
|
98
|
+
var mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps, selectableItemProps);
|
87
99
|
|
88
100
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
89
101
|
isHovered: isHovered,
|
@@ -163,7 +163,7 @@ var DarkVariant = function DarkVariant() {
|
|
163
163
|
onPress: state.close,
|
164
164
|
"aria-label": "Yes"
|
165
165
|
}, "Yes"), (0, _react2.jsx)(_index.Button, {
|
166
|
-
variant: "
|
166
|
+
variant: "link",
|
167
167
|
onPress: state.close,
|
168
168
|
"aria-label": "Cancel"
|
169
169
|
}, "Cancel"))))
|
@@ -18,8 +18,6 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/e
|
|
18
18
|
|
19
19
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
20
20
|
|
21
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
22
|
-
|
23
21
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
|
24
22
|
|
25
23
|
var _react = _interopRequireWildcard(require("react"));
|
@@ -52,14 +50,8 @@ var OverlayPanel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
52
50
|
onClose = _useOverlayPanelState.onClose;
|
53
51
|
|
54
52
|
var overlayPanelRef = (0, _react.useRef)();
|
55
|
-
|
56
|
-
var _useState = (0, _react.useState)(true),
|
57
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
58
|
-
contain = _useState2[0],
|
59
|
-
setIsContained = _useState2[1];
|
60
53
|
/* istanbul ignore next */
|
61
54
|
|
62
|
-
|
63
55
|
(0, _react.useImperativeHandle)(ref, function () {
|
64
56
|
return overlayPanelRef.current;
|
65
57
|
});
|
@@ -73,18 +65,12 @@ var OverlayPanel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
73
65
|
e.stopPropagation();
|
74
66
|
|
75
67
|
if (e.key === 'Escape') {
|
76
|
-
|
68
|
+
onClose(state, triggerRef, onCloseProp);
|
77
69
|
}
|
78
70
|
};
|
79
71
|
|
80
|
-
(0, _react.useEffect)(function () {
|
81
|
-
if (!contain && onClose) {
|
82
|
-
onClose(state, triggerRef, onCloseProp);
|
83
|
-
}
|
84
|
-
}, [contain]);
|
85
72
|
return (0, _react2.jsx)(_focus.FocusScope, {
|
86
|
-
autoFocus: true
|
87
|
-
contain: contain
|
73
|
+
autoFocus: true
|
88
74
|
}, (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
|
89
75
|
variant: "overlayPanel.overlayPanel",
|
90
76
|
ref: overlayPanelRef
|
@@ -79,6 +79,15 @@ test('onClose callback fires when provided', function () {
|
|
79
79
|
|
80
80
|
expect(onClose).toHaveBeenCalled();
|
81
81
|
});
|
82
|
+
test('custom classname can be passed', function () {
|
83
|
+
getComponent({
|
84
|
+
className: 'testing-class'
|
85
|
+
});
|
86
|
+
|
87
|
+
var overlayPanel = _testWrapper.screen.getByTestId(testId);
|
88
|
+
|
89
|
+
expect(overlayPanel).toHaveClass('testing-class');
|
90
|
+
});
|
82
91
|
test('neither callback fires when not provided', function () {
|
83
92
|
var onClose = jest.fn();
|
84
93
|
getComponent({
|
@@ -137,4 +146,39 @@ test('triggerRef.current.focus() fires when provided', function () {
|
|
137
146
|
});
|
138
147
|
|
139
148
|
expect(focusFunction).toHaveBeenCalled();
|
149
|
+
});
|
150
|
+
test('triggerRef.current.focus() does not fire when key other than esc is pressed', function () {
|
151
|
+
var onClose = jest.fn();
|
152
|
+
var focusFunction = jest.fn();
|
153
|
+
var state = {
|
154
|
+
close: onClose
|
155
|
+
};
|
156
|
+
var triggerRef = {
|
157
|
+
current: {
|
158
|
+
focus: focusFunction
|
159
|
+
}
|
160
|
+
};
|
161
|
+
getComponent({
|
162
|
+
state: state,
|
163
|
+
children: (0, _react2.jsx)("div", null, "Test"),
|
164
|
+
triggerRef: triggerRef
|
165
|
+
});
|
166
|
+
|
167
|
+
var overlayPanel = _testWrapper.screen.getByTestId(testId);
|
168
|
+
|
169
|
+
_testWrapper.fireEvent.keyDown(overlayPanel, {
|
170
|
+
key: 'KeyA',
|
171
|
+
code: 'KeyA',
|
172
|
+
keyCode: 65,
|
173
|
+
charCode: 65
|
174
|
+
});
|
175
|
+
|
176
|
+
_testWrapper.fireEvent.keyUp(overlayPanel, {
|
177
|
+
key: 'KeyA',
|
178
|
+
code: 'KeyA',
|
179
|
+
keyCode: 65,
|
180
|
+
charCode: 65
|
181
|
+
});
|
182
|
+
|
183
|
+
expect(focusFunction).not.toHaveBeenCalled();
|
140
184
|
});
|