@pingux/astro 2.0.0-alpha.4 → 2.0.0-alpha.6
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 +14 -0
- package/lib/cjs/components/Badge/Badge.stories.js +2 -2
- package/lib/cjs/components/Badge/Badge.styles.js +4 -17
- package/lib/cjs/components/Button/Button.stories.js +15 -3
- package/lib/cjs/components/CodeView/CodeView.stories.js +3 -12
- package/lib/cjs/components/ColorField/ColorField.js +1 -0
- package/lib/cjs/components/ColorField/ColorField.test.js +15 -0
- package/lib/cjs/components/CopyText/CopyButton.js +2 -1
- package/lib/cjs/components/Icon/Icon.stories.js +1 -1
- package/lib/cjs/components/IconButton/IconButton.styles.js +1 -1
- package/lib/cjs/components/ListItem/ListItem.js +30 -15
- package/lib/cjs/components/ListItem/ListItem.stories.js +90 -26
- package/lib/cjs/components/ListItem/ListItem.test.js +46 -11
- package/lib/cjs/components/ListView/ListView.js +7 -1
- package/lib/cjs/components/ListViewItem/ListViewItem.js +4 -2
- package/lib/cjs/components/ListViewItem/ListViewItem.styles.js +2 -2
- package/lib/cjs/components/Menu/Menu.js +16 -5
- package/lib/cjs/components/Menu/Menu.stories.js +13 -2
- package/lib/cjs/components/SwitchField/SwitchField.js +4 -2
- package/lib/cjs/recipes/LinkedListView.stories.js +1 -1
- package/lib/cjs/recipes/ListAndPanel.stories.js +107 -57
- package/lib/cjs/styles/colors.js +3 -1
- package/lib/cjs/utils/devUtils/props/hoverProps.js +54 -0
- package/lib/components/Badge/Badge.stories.js +2 -2
- package/lib/components/Badge/Badge.styles.js +3 -15
- package/lib/components/Button/Button.stories.js +11 -1
- package/lib/components/CodeView/CodeView.stories.js +3 -12
- package/lib/components/ColorField/ColorField.js +1 -0
- package/lib/components/ColorField/ColorField.test.js +15 -0
- package/lib/components/CopyText/CopyButton.js +2 -1
- package/lib/components/Icon/Icon.stories.js +1 -1
- package/lib/components/IconButton/IconButton.styles.js +2 -2
- package/lib/components/ListItem/ListItem.js +30 -13
- package/lib/components/ListItem/ListItem.stories.js +68 -8
- package/lib/components/ListItem/ListItem.test.js +46 -11
- package/lib/components/ListView/ListView.js +7 -1
- package/lib/components/ListViewItem/ListViewItem.js +4 -2
- package/lib/components/ListViewItem/ListViewItem.styles.js +2 -2
- package/lib/components/Menu/Menu.js +16 -5
- package/lib/components/Menu/Menu.stories.js +14 -2
- package/lib/components/SwitchField/SwitchField.js +4 -2
- package/lib/recipes/LinkedListView.stories.js +1 -1
- package/lib/recipes/ListAndPanel.stories.js +72 -22
- package/lib/styles/colors.js +3 -1
- package/lib/utils/devUtils/props/hoverProps.js +44 -0
- package/package.json +1 -1
@@ -3,7 +3,6 @@ import React from 'react';
|
|
3
3
|
import Prism from 'prismjs';
|
4
4
|
import 'prismjs/components/prism-powershell';
|
5
5
|
import DocsLayout from '../../../.storybook/storybookDocsLayout';
|
6
|
-
import { Text } from '../..';
|
7
6
|
import CodeView from './CodeView';
|
8
7
|
import CodeViewReadme from './CodeView.mdx';
|
9
8
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -46,20 +45,12 @@ export default {
|
|
46
45
|
}
|
47
46
|
};
|
48
47
|
export var Default = function Default(args) {
|
49
|
-
return ___EmotionJSX(
|
50
|
-
sx: {
|
51
|
-
fontWeight: 2
|
52
|
-
}
|
53
|
-
}, "JSON"), ___EmotionJSX(CodeView, args));
|
48
|
+
return ___EmotionJSX(CodeView, args);
|
54
49
|
};
|
55
50
|
export var WithLineNumbers = function WithLineNumbers() {
|
56
|
-
return ___EmotionJSX(
|
57
|
-
sx: {
|
58
|
-
fontWeight: 2
|
59
|
-
}
|
60
|
-
}, "JSON"), ___EmotionJSX(CodeView, {
|
51
|
+
return ___EmotionJSX(CodeView, {
|
61
52
|
hasLineNumbers: true
|
62
|
-
}, code)
|
53
|
+
}, code);
|
63
54
|
};
|
64
55
|
WithLineNumbers.parameters = {
|
65
56
|
docs: {
|
@@ -46,4 +46,19 @@ test('will call onChange with arguments if provided', function () {
|
|
46
46
|
userEvent.clear(hexInput);
|
47
47
|
userEvent.type(hexInput, testColor2);
|
48
48
|
expect(testOnChange).toHaveBeenCalled();
|
49
|
+
});
|
50
|
+
test('clicking within the popover does not close it', function () {
|
51
|
+
var testOnChange = jest.fn();
|
52
|
+
getComponent({
|
53
|
+
onChange: testOnChange,
|
54
|
+
value: testColor1
|
55
|
+
});
|
56
|
+
var button = screen.getByRole('button');
|
57
|
+
userEvent.click(button);
|
58
|
+
// should be open now
|
59
|
+
var hexLabelElement = screen.queryByText(hexLabel);
|
60
|
+
expect(hexLabelElement).toBeInTheDocument();
|
61
|
+
// click the popover container, which has caused closing in regressions
|
62
|
+
userEvent.click(screen.queryByRole('presentation'));
|
63
|
+
expect(screen.queryByRole('presentation')).toBeInTheDocument();
|
49
64
|
});
|
@@ -13,7 +13,8 @@ var CopyButton = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
13
13
|
variant: "copyButton"
|
14
14
|
}, omit(props, 'iconProps')), ___EmotionJSX(Icon, _extends({
|
15
15
|
icon: ContentCopy,
|
16
|
-
size:
|
16
|
+
size: "xs",
|
17
|
+
color: "text.secondary"
|
17
18
|
}, props === null || props === void 0 ? void 0 : props.iconProps)));
|
18
19
|
});
|
19
20
|
CopyButton.propTypes = {
|
@@ -9,7 +9,7 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object
|
|
9
9
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
10
10
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
11
11
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
12
|
-
import {
|
12
|
+
import { badgeDeleteButton, deleteButton } from '../Badge/Badge.styles';
|
13
13
|
import { defaultFocus } from '../Button/Buttons.styles';
|
14
14
|
import { toggle } from '../CollapsiblePanel/CollapsiblePanel.styles';
|
15
15
|
import { copyButton } from '../CopyText/CopyText.styles';
|
@@ -136,7 +136,7 @@ export default {
|
|
136
136
|
badge: {
|
137
137
|
deleteButton: deleteButton
|
138
138
|
},
|
139
|
-
|
139
|
+
badgeDeleteButton: badgeDeleteButton,
|
140
140
|
copyButton: copyButton,
|
141
141
|
hintButton: _objectSpread(_objectSpread({}, base), hintButton),
|
142
142
|
inverted: inverted,
|
@@ -1,10 +1,22 @@
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
1
10
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
11
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["children", "className", "isSelected"];
|
12
|
+
var _excluded = ["children", "className", "isHovered", "isSelected", "onHoverChange", "onHoverEnd", "onHoverStart"];
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
14
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
4
15
|
import React, { forwardRef } from 'react';
|
5
16
|
import { useHover } from '@react-aria/interactions';
|
6
17
|
import PropTypes from 'prop-types';
|
7
18
|
import { useStatusClasses } from '../../hooks';
|
19
|
+
import { onHoverPropTypes } from '../../utils/devUtils/props/hoverProps';
|
8
20
|
import Box from '../Box/Box';
|
9
21
|
|
10
22
|
/**
|
@@ -12,14 +24,21 @@ import Box from '../Box/Box';
|
|
12
24
|
* Accepts most of the styling props from [styled-system](https://styled-system.com/table).
|
13
25
|
*/
|
14
26
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
15
|
-
var ListItem = /*#__PURE__*/forwardRef(function (
|
16
|
-
var children =
|
17
|
-
className =
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
27
|
+
var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
28
|
+
var children = _ref.children,
|
29
|
+
className = _ref.className,
|
30
|
+
isHovered = _ref.isHovered,
|
31
|
+
isSelected = _ref.isSelected,
|
32
|
+
onHoverChange = _ref.onHoverChange,
|
33
|
+
onHoverEnd = _ref.onHoverEnd,
|
34
|
+
onHoverStart = _ref.onHoverStart,
|
35
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
36
|
+
var _useHover = useHover({
|
37
|
+
onHoverChange: onHoverChange,
|
38
|
+
onHoverEnd: onHoverEnd,
|
39
|
+
onHoverStart: onHoverStart
|
40
|
+
}),
|
41
|
+
hoverProps = _useHover.hoverProps;
|
23
42
|
var _useStatusClasses = useStatusClasses(className, {
|
24
43
|
isHovered: isHovered,
|
25
44
|
isSelected: isSelected
|
@@ -27,14 +46,12 @@ var ListItem = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
27
46
|
classNames = _useStatusClasses.classNames;
|
28
47
|
return ___EmotionJSX(Box, _extends({
|
29
48
|
className: classNames,
|
30
|
-
role: "listitem",
|
31
49
|
ref: ref,
|
32
|
-
as: "li",
|
33
50
|
variant: "listItem.container",
|
34
51
|
isRow: true
|
35
52
|
}, hoverProps, others), children);
|
36
53
|
});
|
37
|
-
ListItem.propTypes = {
|
54
|
+
ListItem.propTypes = _objectSpread({
|
38
55
|
/**
|
39
56
|
* A list of class names to apply to the element
|
40
57
|
*/
|
@@ -43,7 +60,7 @@ ListItem.propTypes = {
|
|
43
60
|
* Sets the selected state of the ListItem
|
44
61
|
*/
|
45
62
|
isSelected: PropTypes.bool
|
46
|
-
};
|
63
|
+
}, onHoverPropTypes);
|
47
64
|
ListItem.defaultProps = {
|
48
65
|
isSelected: false
|
49
66
|
};
|
@@ -1,12 +1,21 @@
|
|
1
|
-
import
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
10
|
+
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
11
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
13
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
14
|
+
import React, { useState } from 'react';
|
2
15
|
import AccountIcon from 'mdi-react/AccountIcon';
|
3
16
|
import MoreVertIcon from 'mdi-react/MoreVertIcon';
|
4
|
-
import Box from '
|
5
|
-
import
|
6
|
-
import IconButton from '../IconButton';
|
7
|
-
import Separator from '../Separator';
|
8
|
-
import Text from '../Text';
|
9
|
-
import ListItem from './ListItem';
|
17
|
+
import { Box, Icon, IconButton, ListItem, Separator, Text } from '../..';
|
18
|
+
import { onHoverArgTypes } from '../../utils/devUtils/props/hoverProps';
|
10
19
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
11
20
|
export default {
|
12
21
|
title: 'Components/ListItem',
|
@@ -17,7 +26,8 @@ export default {
|
|
17
26
|
type: 'code'
|
18
27
|
}
|
19
28
|
}
|
20
|
-
}
|
29
|
+
},
|
30
|
+
argTypes: _objectSpread({}, onHoverArgTypes)
|
21
31
|
};
|
22
32
|
export var Default = function Default(args) {
|
23
33
|
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Separator, {
|
@@ -74,4 +84,54 @@ export var WithSubtitle = function WithSubtitle(args) {
|
|
74
84
|
})))), ___EmotionJSX(Separator, {
|
75
85
|
margin: 0
|
76
86
|
}));
|
87
|
+
};
|
88
|
+
export var WithHoverHandlers = function WithHoverHandlers(args) {
|
89
|
+
var _useState = useState(false),
|
90
|
+
_useState2 = _slicedToArray(_useState, 2),
|
91
|
+
isHovered = _useState2[0],
|
92
|
+
setIsHovered = _useState2[1];
|
93
|
+
var handleHoverChange = function handleHoverChange() {
|
94
|
+
setIsHovered(function (previousIsHovered) {
|
95
|
+
return !previousIsHovered;
|
96
|
+
});
|
97
|
+
};
|
98
|
+
var sx = function sx(shouldTranslate) {
|
99
|
+
return {
|
100
|
+
transform: "".concat(shouldTranslate ? 'translate(15px)' : 'translate(0)')
|
101
|
+
};
|
102
|
+
};
|
103
|
+
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Separator, {
|
104
|
+
margin: 0
|
105
|
+
}), ___EmotionJSX(ListItem, _extends({}, args, {
|
106
|
+
onHoverEnd: handleHoverChange,
|
107
|
+
onHoverStart: handleHoverChange
|
108
|
+
}), ___EmotionJSX(Box, {
|
109
|
+
isRow: true,
|
110
|
+
mr: "auto",
|
111
|
+
alignSelf: "center"
|
112
|
+
}, ___EmotionJSX(Icon, {
|
113
|
+
icon: AccountIcon,
|
114
|
+
alignSelf: "center",
|
115
|
+
mr: "sm",
|
116
|
+
color: "accent.40",
|
117
|
+
size: 32
|
118
|
+
}), ___EmotionJSX(Box, {
|
119
|
+
sx: sx(isHovered)
|
120
|
+
}, ___EmotionJSX(Text, {
|
121
|
+
variant: "itemTitle"
|
122
|
+
}, "Fons Vernall"), ___EmotionJSX(Text, {
|
123
|
+
variant: "itemSubtitle",
|
124
|
+
mt: 1
|
125
|
+
}, "fvernall0@google.it"))), ___EmotionJSX(Box, {
|
126
|
+
isRow: true,
|
127
|
+
alignSelf: "center"
|
128
|
+
}, ___EmotionJSX(IconButton, {
|
129
|
+
size: 26
|
130
|
+
}, ___EmotionJSX(Icon, {
|
131
|
+
icon: MoreVertIcon,
|
132
|
+
size: 20,
|
133
|
+
color: "neutral.20"
|
134
|
+
})))), ___EmotionJSX(Separator, {
|
135
|
+
margin: 0
|
136
|
+
}));
|
77
137
|
};
|
@@ -1,16 +1,20 @@
|
|
1
1
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
2
|
import React from 'react';
|
3
3
|
import { render, screen } from '@testing-library/react';
|
4
|
+
import userEvent from '@testing-library/user-event';
|
4
5
|
import axeTest from '../../utils/testUtils/testAxe';
|
5
6
|
import ListItem from './ListItem';
|
6
7
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
7
8
|
var testTitle = 'Test Title';
|
9
|
+
var TEST_ID = 'ListItem-testid';
|
8
10
|
var defaultProps = {
|
9
11
|
title: testTitle
|
10
12
|
};
|
11
13
|
var getComponent = function getComponent() {
|
12
14
|
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
13
|
-
return render(___EmotionJSX(ListItem, _extends({}, defaultProps, props
|
15
|
+
return render(___EmotionJSX(ListItem, _extends({}, defaultProps, props, {
|
16
|
+
"data-testid": TEST_ID
|
17
|
+
})));
|
14
18
|
};
|
15
19
|
|
16
20
|
// Need to be added to each test file to test accessibility using axe.
|
@@ -22,15 +26,46 @@ axeTest(getComponent, {
|
|
22
26
|
}
|
23
27
|
}
|
24
28
|
});
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
describe('ListItem', function () {
|
30
|
+
test('renders ListItem component title', function () {
|
31
|
+
getComponent();
|
32
|
+
var title = screen.getByTestId(TEST_ID);
|
33
|
+
expect(title).toBeInTheDocument();
|
34
|
+
});
|
35
|
+
test('renders ListItem component with selected state', function () {
|
36
|
+
getComponent({
|
37
|
+
isSelected: true
|
38
|
+
});
|
39
|
+
var title = screen.getByTestId(TEST_ID);
|
40
|
+
expect(title).toHaveClass('is-selected');
|
41
|
+
});
|
42
|
+
describe('when hovered', function () {
|
43
|
+
var onHoverTest;
|
44
|
+
beforeEach(function () {
|
45
|
+
onHoverTest = jest.fn();
|
46
|
+
});
|
47
|
+
test('it calls the onHoverChange callback', function () {
|
48
|
+
getComponent({
|
49
|
+
onHoverChange: onHoverTest
|
50
|
+
});
|
51
|
+
userEvent.hover(screen.getByTestId(TEST_ID));
|
52
|
+
expect(onHoverTest).toHaveBeenCalled();
|
53
|
+
});
|
54
|
+
test('it calls the onHoverStart callback', function () {
|
55
|
+
getComponent({
|
56
|
+
onHoverStart: onHoverTest
|
57
|
+
});
|
58
|
+
userEvent.hover(screen.getByTestId(TEST_ID));
|
59
|
+
expect(onHoverTest).toHaveBeenCalled();
|
60
|
+
});
|
61
|
+
test('it calls the onHoverEnd callback when unhovered', function () {
|
62
|
+
getComponent({
|
63
|
+
onHoverEnd: onHoverTest
|
64
|
+
});
|
65
|
+
var listItem = screen.getByTestId(TEST_ID);
|
66
|
+
userEvent.hover(listItem);
|
67
|
+
userEvent.unhover(listItem);
|
68
|
+
expect(onHoverTest).toHaveBeenCalled();
|
69
|
+
});
|
33
70
|
});
|
34
|
-
var title = screen.getByRole('listitem');
|
35
|
-
expect(title).toHaveClass('is-selected');
|
36
71
|
});
|
@@ -9,7 +9,7 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object
|
|
9
9
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
10
10
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
11
11
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
12
|
-
var _excluded = ["disabledKeys", "loadingState", "onLoadMore", "onSelectionChange", "selectionMode", "selectionStyle"];
|
12
|
+
var _excluded = ["disabledKeys", "isHoverable", "loadingState", "onLoadMore", "onSelectionChange", "selectedKeys", "selectionMode", "selectionStyle"];
|
13
13
|
import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
|
14
14
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
15
15
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
@@ -69,9 +69,12 @@ export function useListLayout(state) {
|
|
69
69
|
|
70
70
|
var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
|
71
71
|
var disabledKeys = props.disabledKeys,
|
72
|
+
_props$isHoverable = props.isHoverable,
|
73
|
+
isHoverable = _props$isHoverable === void 0 ? true : _props$isHoverable,
|
72
74
|
loadingState = props.loadingState,
|
73
75
|
onLoadMore = props.onLoadMore,
|
74
76
|
onSelectionChange = props.onSelectionChange,
|
77
|
+
selectedKeys = props.selectedKeys,
|
75
78
|
selectionMode = props.selectionMode,
|
76
79
|
selectionStyle = props.selectionStyle,
|
77
80
|
others = _objectWithoutProperties(props, _excluded);
|
@@ -131,6 +134,7 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
131
134
|
}), function (type, item) {
|
132
135
|
if (type === 'item') {
|
133
136
|
return ___EmotionJSX(ListViewItem, {
|
137
|
+
isHoverable: isHoverable,
|
134
138
|
item: item
|
135
139
|
});
|
136
140
|
}
|
@@ -155,6 +159,8 @@ ListView.propTypes = {
|
|
155
159
|
items: isIterableProp,
|
156
160
|
/** The element's unique identifier. See [MDN](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/id). */
|
157
161
|
id: PropTypes.string,
|
162
|
+
/** Whether ListView should handle hover state (defaults to true) */
|
163
|
+
isHoverable: PropTypes.bool,
|
158
164
|
/** Defines a string value that labels the current element. */
|
159
165
|
'aria-label': PropTypes.string,
|
160
166
|
/** Identifies the element (or elements) that labels the current element. */
|
@@ -16,6 +16,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
16
16
|
_props$item$props$has = _props$item$props.hasSeparator,
|
17
17
|
hasSeparator = _props$item$props$has === void 0 ? true : _props$item$props$has,
|
18
18
|
hasInsetSeparator = _props$item$props.hasInsetSeparator,
|
19
|
+
isHoverable = props.isHoverable,
|
19
20
|
className = props.className;
|
20
21
|
var dataId = item.props['data-id'];
|
21
22
|
var _useContext = useContext(ListViewContext),
|
@@ -44,7 +45,7 @@ var ListViewItem = function ListViewItem(props) {
|
|
44
45
|
var isSelected = state.selectionManager.isSelected(item.key);
|
45
46
|
var mergedProps = mergeProps(raRowProps, hoverProps, focusWithinProps, focusProps);
|
46
47
|
var _useStatusClasses = useStatusClasses(className, {
|
47
|
-
isHovered: isSelectable && isHovered,
|
48
|
+
isHovered: isSelectable && isHovered && isHoverable,
|
48
49
|
isSelected: isSelected,
|
49
50
|
isFocused: isDisabled ? false : isFocusVisible || isFocusVisibleWithin,
|
50
51
|
hasSeparator: hasSeparator,
|
@@ -81,6 +82,7 @@ ListViewItem.propTypes = {
|
|
81
82
|
hasSeparator: PropTypes.bool,
|
82
83
|
hasInsetSeparator: PropTypes.bool
|
83
84
|
})
|
84
|
-
})
|
85
|
+
}),
|
86
|
+
isHoverable: PropTypes.bool
|
85
87
|
};
|
86
88
|
export default ListViewItem;
|
@@ -29,7 +29,7 @@ var container = {
|
|
29
29
|
},
|
30
30
|
'&.has-separator': {
|
31
31
|
borderBottom: '1px solid',
|
32
|
-
borderBottomColor: 'line.
|
32
|
+
borderBottomColor: 'line.light'
|
33
33
|
}
|
34
34
|
};
|
35
35
|
var linkedViewContainer = _objectSpread(_objectSpread({}, container), {}, {
|
@@ -43,7 +43,7 @@ var linkedViewContainer = _objectSpread(_objectSpread({}, container), {}, {
|
|
43
43
|
right: 0,
|
44
44
|
bottom: 0,
|
45
45
|
borderBottom: '1px solid',
|
46
|
-
borderBottomColor: 'line.
|
46
|
+
borderBottomColor: 'line.light'
|
47
47
|
},
|
48
48
|
'&.is-focused': {
|
49
49
|
'&:after': {
|
@@ -9,7 +9,7 @@ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object
|
|
9
9
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
10
10
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
11
11
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
12
|
-
var _excluded = ["isDisabled", "onAction", "
|
12
|
+
var _excluded = ["isDisabled", "isNotFocusedOnHover", "onAction", "onHoverChange", "onHoverEnd", "onHoverStart", "onSelectionChange"];
|
13
13
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
14
14
|
import _Array$from from "@babel/runtime-corejs3/core-js-stable/array/from";
|
15
15
|
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
@@ -17,11 +17,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
|
|
17
17
|
import React, { forwardRef, useContext, useImperativeHandle, useRef } from 'react';
|
18
18
|
import { mergeProps, useFocusRing, useMenu } from 'react-aria';
|
19
19
|
import { useTreeState } from 'react-stately';
|
20
|
+
import { useHover } from '@react-aria/interactions';
|
20
21
|
import { useSyncRef } from '@react-aria/utils';
|
21
22
|
import PropTypes from 'prop-types';
|
22
23
|
import { MenuContext } from '../../context/MenuContext';
|
23
24
|
import { usePropWarning } from '../../hooks';
|
24
25
|
import ORIENTATION from '../../utils/devUtils/constants/orientation';
|
26
|
+
import { onHoverPropTypes } from '../../utils/devUtils/props/hoverProps';
|
25
27
|
import Box from '../Box';
|
26
28
|
import MenuItem from '../MenuItem';
|
27
29
|
|
@@ -35,12 +37,21 @@ import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
35
37
|
var Menu = /*#__PURE__*/forwardRef(function (props, ref) {
|
36
38
|
var _context;
|
37
39
|
var isDisabled = props.isDisabled,
|
40
|
+
isNotFocusedOnHover = props.isNotFocusedOnHover,
|
38
41
|
onAction = props.onAction,
|
42
|
+
onHoverChange = props.onHoverChange,
|
43
|
+
onHoverEnd = props.onHoverEnd,
|
44
|
+
onHoverStart = props.onHoverStart,
|
39
45
|
onSelectionChange = props.onSelectionChange,
|
40
|
-
isNotFocusedOnHover = props.isNotFocusedOnHover,
|
41
46
|
others = _objectWithoutProperties(props, _excluded);
|
42
47
|
var contextProps = useContext(MenuContext);
|
43
48
|
var completeProps = _objectSpread({}, mergeProps(contextProps, props));
|
49
|
+
var _useHover = useHover({
|
50
|
+
onHoverChange: onHoverChange,
|
51
|
+
onHoverEnd: onHoverEnd,
|
52
|
+
onHoverStart: onHoverStart
|
53
|
+
}),
|
54
|
+
hoverProps = _useHover.hoverProps;
|
44
55
|
var state = useTreeState(completeProps);
|
45
56
|
var menuRef = useRef();
|
46
57
|
usePropWarning(props, 'disabled', 'isDisabled');
|
@@ -63,7 +74,7 @@ var Menu = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
63
74
|
ref: menuRef,
|
64
75
|
variant: "menu",
|
65
76
|
"aria-orientation": ORIENTATION.VERTICAL
|
66
|
-
}, others, mergeProps(focusProps, menuProps)), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
|
77
|
+
}, others, mergeProps(focusProps, menuProps, hoverProps)), _mapInstanceProperty(_context = _Array$from(state.collection)).call(_context, function (item) {
|
67
78
|
return ___EmotionJSX(MenuItem, {
|
68
79
|
key: item.key,
|
69
80
|
item: item,
|
@@ -75,7 +86,7 @@ var Menu = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
75
86
|
});
|
76
87
|
}));
|
77
88
|
});
|
78
|
-
Menu.propTypes = {
|
89
|
+
Menu.propTypes = _objectSpread({
|
79
90
|
/** The type of selection that is allowed. */
|
80
91
|
selectionMode: PropTypes.oneOf(['none', 'single', 'multiple']),
|
81
92
|
/**
|
@@ -126,7 +137,7 @@ Menu.propTypes = {
|
|
126
137
|
* extended description for the object.
|
127
138
|
*/
|
128
139
|
'aria-details': PropTypes.string
|
129
|
-
};
|
140
|
+
}, onHoverPropTypes);
|
130
141
|
Menu.defaultProps = {
|
131
142
|
selectionMode: 'none',
|
132
143
|
isDisabled: false
|
@@ -1,7 +1,19 @@
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
1
9
|
import _objectDestructuringEmpty from "@babel/runtime-corejs3/helpers/esm/objectDestructuringEmpty";
|
2
10
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
11
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
13
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
3
14
|
import React from 'react';
|
4
15
|
import { Item } from 'react-stately';
|
16
|
+
import { onHoverArgTypes } from '../../utils/devUtils/props/hoverProps';
|
5
17
|
import Text from '../Text';
|
6
18
|
import Menu from '.';
|
7
19
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
@@ -18,7 +30,7 @@ export default {
|
|
18
30
|
}
|
19
31
|
}
|
20
32
|
},
|
21
|
-
argTypes: {
|
33
|
+
argTypes: _objectSpread({
|
22
34
|
selectionMode: {},
|
23
35
|
isDisabled: {},
|
24
36
|
isNotFocusedOnHover: {},
|
@@ -62,7 +74,7 @@ export default {
|
|
62
74
|
type: 'none'
|
63
75
|
}
|
64
76
|
}
|
65
|
-
}
|
77
|
+
}, onHoverArgTypes)
|
66
78
|
};
|
67
79
|
export var Default = function Default(_ref) {
|
68
80
|
var args = _extends({}, (_objectDestructuringEmpty(_ref), _ref));
|
@@ -67,9 +67,11 @@ var SwitchField = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
67
67
|
}),
|
68
68
|
pressProps = _usePress.pressProps;
|
69
69
|
var whitelistedProps = omit(props, _Object$keys(others));
|
70
|
-
var _useSwitch = useSwitch(_objectSpread({
|
70
|
+
var _useSwitch = useSwitch(_objectSpread(_objectSpread({
|
71
71
|
children: label
|
72
|
-
}, whitelistedProps),
|
72
|
+
}, whitelistedProps), {}, {
|
73
|
+
'aria-label': 'switch-field'
|
74
|
+
}), state, switchRef),
|
73
75
|
inputProps = _useSwitch.inputProps;
|
74
76
|
var statusClasses = {
|
75
77
|
isSelected: inputProps.checked
|