@pingux/astro 1.2.0-alpha.9 → 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.
Files changed (72) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.js +32 -25
  3. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.stories.js +148 -169
  4. package/lib/cjs/components/AccordionGridGroup/AccordionGridGroup.test.js +25 -30
  5. package/lib/cjs/components/AccordionGridItem/AccordionGridItem.js +29 -14
  6. package/lib/cjs/components/AccordionGridItem/AccordionGridItemBody.js +3 -3
  7. package/lib/cjs/components/AccordionGridItem/AccordionGridItemHeader.js +16 -18
  8. package/lib/cjs/components/AccordionGroup/AccordionGroup.js +2 -1
  9. package/lib/cjs/components/AccordionGroup/AccordionGroup.test.js +20 -1
  10. package/lib/cjs/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  11. package/lib/cjs/components/Button/Button.js +14 -2
  12. package/lib/cjs/components/Button/Button.stories.js +33 -33
  13. package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
  14. package/lib/cjs/components/Link/Link.js +2 -1
  15. package/lib/cjs/components/ListView/ListView.js +9 -13
  16. package/lib/cjs/components/ListViewItem/ListViewItem.js +15 -3
  17. package/lib/cjs/components/Modal/Modal.stories.js +1 -1
  18. package/lib/cjs/components/RockerButton/RockerButton.js +14 -22
  19. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  20. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.stories.js +4 -22
  21. package/lib/cjs/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -14
  22. package/lib/cjs/components/SearchField/SearchField.stories.js +1 -15
  23. package/lib/cjs/components/TextAreaField/TextAreaField.js +54 -9
  24. package/lib/cjs/components/TextAreaField/TextAreaField.stories.js +31 -52
  25. package/lib/cjs/components/TextAreaField/TextAreaField.test.js +12 -0
  26. package/lib/cjs/context/AccordionGridContext/index.js +20 -0
  27. package/lib/cjs/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
  28. package/lib/cjs/hooks/useField/useField.js +5 -0
  29. package/lib/cjs/hooks/useRockerButton/useRockerButton.js +4 -6
  30. package/lib/cjs/layouts/ListLayout.stories.js +6 -6
  31. package/lib/cjs/recipes/ArrayField.stories.js +1 -1
  32. package/lib/cjs/recipes/ConditionalFilter.stories.js +7 -3
  33. package/lib/cjs/recipes/RadioButtonsWithLinks.stories.js +1 -1
  34. package/lib/cjs/styles/variants/boxes.js +9 -0
  35. package/lib/cjs/styles/variants/buttons.js +20 -0
  36. package/lib/components/AccordionGridGroup/AccordionGridGroup.js +32 -24
  37. package/lib/components/AccordionGridGroup/AccordionGridGroup.stories.js +143 -166
  38. package/lib/components/AccordionGridGroup/AccordionGridGroup.test.js +24 -25
  39. package/lib/components/AccordionGridItem/AccordionGridItem.js +29 -15
  40. package/lib/components/AccordionGridItem/AccordionGridItemBody.js +4 -4
  41. package/lib/components/AccordionGridItem/AccordionGridItemHeader.js +19 -20
  42. package/lib/components/AccordionGroup/AccordionGroup.js +2 -1
  43. package/lib/components/AccordionGroup/AccordionGroup.test.js +16 -2
  44. package/lib/components/Breadcrumbs/Breadcrumbs.stories.js +3 -3
  45. package/lib/components/Button/Button.js +15 -3
  46. package/lib/components/Button/Button.stories.js +17 -15
  47. package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +5 -3
  48. package/lib/components/Link/Link.js +2 -1
  49. package/lib/components/ListView/ListView.js +9 -12
  50. package/lib/components/ListViewItem/ListViewItem.js +14 -3
  51. package/lib/components/Modal/Modal.stories.js +1 -1
  52. package/lib/components/RockerButton/RockerButton.js +14 -21
  53. package/lib/components/RockerButtonGroup/RockerButtonGroup.js +5 -9
  54. package/lib/components/RockerButtonGroup/RockerButtonGroup.stories.js +2 -17
  55. package/lib/components/RockerButtonGroup/RockerButtonGroup.test.js +5 -11
  56. package/lib/components/SearchField/SearchField.stories.js +0 -11
  57. package/lib/components/TextAreaField/TextAreaField.js +54 -10
  58. package/lib/components/TextAreaField/TextAreaField.stories.js +26 -42
  59. package/lib/components/TextAreaField/TextAreaField.test.js +13 -0
  60. package/lib/context/AccordionGridContext/index.js +5 -0
  61. package/lib/hooks/useAriaLabelWarning/useAriaLabelWarning.js +2 -1
  62. package/lib/hooks/useField/useField.js +5 -0
  63. package/lib/hooks/useRockerButton/useRockerButton.js +4 -6
  64. package/lib/layouts/ListLayout.stories.js +6 -6
  65. package/lib/recipes/ArrayField.stories.js +1 -1
  66. package/lib/recipes/ConditionalFilter.stories.js +7 -3
  67. package/lib/recipes/RadioButtonsWithLinks.stories.js +1 -1
  68. package/lib/styles/variants/boxes.js +9 -0
  69. package/lib/styles/variants/buttons.js +20 -0
  70. package/package.json +2 -2
  71. package/lib/cjs/components/AccordionGridGroup/AccordionGridContext.js +0 -17
  72. 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("../AccordionGridGroup/AccordionGridContext");
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
- others = (0, _objectWithoutProperties2["default"])(props, ["item", "headerProps", "bodyProps", "children"]);
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 _useContext = (0, _react.useContext)(_AccordionGridContext.AccordionGridContext),
61
- state = _useContext.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
- var isDisabled = state.disabledKeys.has(item.key);
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 isSelected = state.selectionManager.isSelected(item.key);
74
- return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
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
- ref: rowRef,
79
- role: "row"
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
- cellNode: cellNode,
83
- ref: cellRef
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("../AccordionGridGroup/AccordionGridContext");
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 _useContext = (0, _react.useContext)(_AccordionGridContext.AccordionGridContext),
46
- state = _useContext.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("../AccordionGridGroup/AccordionGridContext");
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", "key", "isSelected"]);
54
+ others = (0, _objectWithoutProperties2["default"])(props, ["item", "className", "children", "isSelected"]);
56
55
 
57
- var _useContext = (0, _react.useContext)(_AccordionGridContext.AccordionGridContext),
58
- state = _useContext.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, ref),
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 _usePress = (0, _interactions.usePress)({
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: 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)(_Text["default"], null, "Render me!"))));
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: "text",
66
+ variant: "link",
67
67
  "data-id": "home"
68
68
  }, "Home"), (0, _react2.jsx)(_collections.Item, {
69
69
  key: "trendy",
70
- variant: "text",
70
+ variant: "link",
71
71
  "data-id": "trendy"
72
72
  }, "Trendy"), (0, _react2.jsx)(_collections.Item, {
73
73
  key: "march 2020 assets",
74
- variant: "text",
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
- others = (0, _objectWithoutProperties2["default"])(props, ["className", "isDisabled", "isLoading", "onHoverStart", "onHoverChange", "onHoverEnd", "onPress", "onPressStart", "onPressEnd", "onPressChange", "onPressUp", "children"]);
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.ColorBlockButton = exports.InlineButton = exports.TextButton = exports.TextIconButton = exports.Disabled = exports.Default = exports["default"] = void 0;
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 _Box = _interopRequireDefault(require("../Box"));
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: _["default"],
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)(_["default"], args);
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)(_["default"], {
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)(_["default"], {
87
+ return (0, _react2.jsx)(_index.Button, {
92
88
  mb: "sm"
93
- }, (0, _react2.jsx)(_Box["default"], {
89
+ }, (0, _react2.jsx)(_index.Box, {
94
90
  isRow: true,
95
91
  alignItems: "center"
96
- }, (0, _react2.jsx)(_Icon["default"], {
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)(_["default"], {
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)(_["default"], (0, _extends2["default"])({}, props, {
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)(_Box["default"], null, (0, _react2.jsx)(_Text["default"], {
118
+ }), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
136
119
  variant: "buttonTitle"
137
- }, "Title"), (0, _react2.jsx)(_Text["default"], {
120
+ }, "Title"), (0, _react2.jsx)(_index.Text, {
138
121
  variant: "buttonSubtitle"
139
- }, "Info")), (0, _react2.jsx)(_Icon["default"], {
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
- /** Filter function to generate a filtered list of nodes.
317
- * (nodes: Iterable<Node>) => Iterable<Node>
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
- others = (0, _objectWithoutProperties2["default"])(props, ["className", "isDisabled"]);
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 disabledKeys = props.disabledKeys,
107
- loadingState = props.loadingState,
108
- selectedKeys = props.selectedKeys,
104
+ var loadingState = props.loadingState,
109
105
  onLoadMore = props.onLoadMore,
110
- onSelectionChange = props.onSelectionChange,
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
- selectionMode: selectionMode,
167
- onSelectionChange: onSelectionChange
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"])({}, (0, _utils.mergeProps)(gridProps), {
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
- 'selectionMode': 'single'
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$props = props.item.props,
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 = raRowProps['aria-selected'];
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 mergedProps = (0, _utils.mergeProps)(gridCellProps, hoverProps, focusWithinProps, focusProps);
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: "text",
166
+ variant: "link",
167
167
  onPress: state.close,
168
168
  "aria-label": "Cancel"
169
169
  }, "Cancel"))))
@@ -40,11 +40,9 @@ var _collections = require("@react-stately/collections");
40
40
 
41
41
  var _focus = require("@react-aria/focus");
42
42
 
43
- var _utils = require("@react-aria/utils");
44
-
45
43
  var _hooks = require("../../hooks");
46
44
 
47
- var _Button = _interopRequireDefault(require("../Button"));
45
+ var _index = require("../../index");
48
46
 
49
47
  var _RockerButtonGroup = require("../RockerButtonGroup");
50
48
 
@@ -56,19 +54,12 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
56
54
 
57
55
  var CollectionRockerButton = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
58
56
  var className = props.className,
59
- item = props.item,
60
- buttonGroupDisabled = props.isDisabled;
61
- var defaultSelectedStyles = {
62
- bg: 'active'
63
- };
57
+ item = props.item;
64
58
  var key = item.key,
65
59
  rendered = item.rendered,
66
60
  itemProps = item.props;
67
- var _itemProps$selectedSt = itemProps.selectedStyles,
68
- selectedStyles = _itemProps$selectedSt === void 0 ? defaultSelectedStyles : _itemProps$selectedSt,
69
- rockerButtonDisabled = itemProps.isDisabled;
70
- var isDisabled = buttonGroupDisabled || rockerButtonDisabled;
71
61
  var state = (0, _react.useContext)(_RockerButtonGroup.RockerContext);
62
+ var isDisabled = state.disabledKeys.has(key);
72
63
 
73
64
  var _useFocusRing = (0, _focus.useFocusRing)(),
74
65
  isFocusVisible = _useFocusRing.isFocusVisible,
@@ -78,7 +69,8 @@ var CollectionRockerButton = /*#__PURE__*/(0, _react.forwardRef)(function (props
78
69
 
79
70
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
80
71
  isFocused: isFocusVisible,
81
- isSelected: isSelected
72
+ isSelected: isSelected,
73
+ isDisabled: isDisabled
82
74
  }),
83
75
  classNames = _useStatusClasses.classNames;
84
76
 
@@ -92,26 +84,26 @@ var CollectionRockerButton = /*#__PURE__*/(0, _react.forwardRef)(function (props
92
84
 
93
85
  var _useRockerButton = (0, _hooks.useRockerButton)({
94
86
  item: item,
95
- isDisabled: isDisabled
87
+ isDisabled: isDisabled,
88
+ isSelected: isSelected
96
89
  }, state, rockerButtonRef),
97
90
  rockerButtonProps = _useRockerButton.rockerButtonProps;
98
91
 
99
- return (0, _react2.jsx)(_Button["default"], (0, _extends2["default"])({
92
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
93
+ as: "button",
100
94
  className: classNames,
101
- variant: "rocker"
102
- }, itemProps, (0, _utils.mergeProps)(focusProps, rockerButtonProps), {
103
- ref: rockerButtonRef,
95
+ variant: "buttons.rocker"
96
+ }, rockerButtonProps, {
97
+ ref: rockerButtonRef
98
+ }, focusProps, itemProps, {
104
99
  sx: {
105
- '&.is-selected': _objectSpread({}, selectedStyles)
100
+ '&.is-selected': _objectSpread({}, itemProps.selectedStyles)
106
101
  }
107
102
  }), rendered);
108
103
  });
109
104
  exports.CollectionRockerButton = CollectionRockerButton;
110
105
  CollectionRockerButton.displayName = 'CollectionRockerButton';
111
106
  CollectionRockerButton.propTypes = {
112
- /** Whether the button is disabled. */
113
- isDisabled: _propTypes["default"].bool,
114
-
115
107
  /** Allows custom styles to be passed to button. */
116
108
  selectedStyles: _propTypes["default"].shape({}),
117
109
  // adding to surface in props table