@pingux/astro 2.7.1 → 2.8.0-alpha.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/lib/cjs/components/Button/Button.js +2 -55
- package/lib/cjs/components/Button/Button.stories.js +12 -30
- package/lib/cjs/components/Button/buttonAttributes.js +109 -0
- package/lib/cjs/components/Calendar/Calendar.test.js +6 -6
- package/lib/cjs/components/Calendar/CalendarCell.js +6 -5
- package/lib/cjs/components/IconButton/IconButton.js +2 -38
- package/lib/cjs/components/IconButton/IconButton.stories.js +2 -34
- package/lib/cjs/components/IconButton/iconButtonAttributes.js +100 -0
- package/lib/cjs/components/ListItem/ListItem.js +1 -0
- package/lib/cjs/components/ListView/ListView.js +0 -9
- package/lib/cjs/components/ListView/ListView.stories.js +39 -104
- package/lib/cjs/components/ListViewItem/ListViewItem.js +14 -5
- package/lib/cjs/components/ListViewItem/ListViewItem.styles.js +6 -1
- package/lib/cjs/components/Menu/Menu.js +7 -60
- package/lib/cjs/components/Menu/Menu.stories.js +2 -56
- package/lib/cjs/components/Menu/menuAttributes.js +104 -0
- package/lib/cjs/components/SwitchField/SwitchField.js +12 -54
- package/lib/cjs/components/SwitchField/SwitchField.stories.js +2 -34
- package/lib/cjs/components/SwitchField/SwitchField.test.js +4 -5
- package/lib/cjs/components/SwitchField/switchFieldAttributes.js +191 -0
- package/lib/cjs/experimental/ListViewItem/ListViewItem.js +157 -0
- package/lib/cjs/experimental/ListViewItem/ListViewItem.stories.js +136 -0
- package/lib/cjs/experimental/ListViewItem/ListViewItem.test.js +77 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.js +34 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +31 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.test.js +25 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.js +37 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.stories.js +36 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.test.js +59 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.js +32 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.stories.js +41 -0
- package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.test.js +25 -0
- package/lib/cjs/experimental/ListViewItem/listViewItemAttributes.js +81 -0
- package/lib/cjs/experimental/SaveBar/SaveBar.js +85 -0
- package/lib/cjs/experimental/SaveBar/SaveBar.stories.js +101 -0
- package/lib/cjs/experimental/SaveBar/SaveBar.test.js +94 -0
- package/lib/cjs/experimental/SaveBar/index.js +14 -0
- package/lib/cjs/experimental/recipes/ListAndPanel.stories.js +359 -0
- package/lib/cjs/experimental/recipes/ScrollableListView.stories.js +104 -0
- package/lib/cjs/experimental/recipes/items.js +77 -0
- package/lib/cjs/index.js +64 -51
- package/lib/cjs/utils/docUtils/ariaAttributes.js +2 -1
- package/lib/cjs/utils/docUtils/docArgTypes.js +41 -0
- package/lib/cjs/utils/docUtils/hoverProps.js +7 -2
- package/lib/components/Button/Button.js +2 -55
- package/lib/components/Button/Button.stories.js +13 -31
- package/lib/components/Button/buttonAttributes.js +101 -0
- package/lib/components/Calendar/Calendar.test.js +6 -6
- package/lib/components/Calendar/CalendarCell.js +6 -5
- package/lib/components/IconButton/IconButton.js +2 -38
- package/lib/components/IconButton/IconButton.stories.js +2 -34
- package/lib/components/IconButton/iconButtonAttributes.js +91 -0
- package/lib/components/ListItem/ListItem.js +2 -1
- package/lib/components/ListView/ListView.js +0 -9
- package/lib/components/ListView/ListView.stories.js +40 -106
- package/lib/components/ListViewItem/ListViewItem.js +12 -4
- package/lib/components/ListViewItem/ListViewItem.styles.js +6 -1
- package/lib/components/Menu/Menu.js +7 -60
- package/lib/components/Menu/Menu.stories.js +2 -57
- package/lib/components/Menu/menuAttributes.js +95 -0
- package/lib/components/SwitchField/SwitchField.js +14 -55
- package/lib/components/SwitchField/SwitchField.stories.js +2 -34
- package/lib/components/SwitchField/SwitchField.test.js +4 -5
- package/lib/components/SwitchField/switchFieldAttributes.js +182 -0
- package/lib/experimental/ListViewItem/ListViewItem.js +144 -0
- package/lib/experimental/ListViewItem/ListViewItem.stories.js +122 -0
- package/lib/experimental/ListViewItem/ListViewItem.test.js +74 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.js +25 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +21 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.test.js +22 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemMenu.js +28 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemMenu.stories.js +26 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemMenu.test.js +56 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.js +23 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.stories.js +32 -0
- package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.test.js +22 -0
- package/lib/experimental/ListViewItem/listViewItemAttributes.js +72 -0
- package/lib/experimental/SaveBar/SaveBar.js +76 -0
- package/lib/experimental/SaveBar/SaveBar.stories.js +88 -0
- package/lib/experimental/SaveBar/SaveBar.test.js +91 -0
- package/lib/experimental/SaveBar/index.js +1 -0
- package/lib/experimental/recipes/ListAndPanel.stories.js +342 -0
- package/lib/experimental/recipes/ScrollableListView.stories.js +89 -0
- package/lib/experimental/recipes/items.js +68 -0
- package/lib/index.js +7 -3
- package/lib/utils/docUtils/ariaAttributes.js +1 -1
- package/lib/utils/docUtils/docArgTypes.js +29 -0
- package/lib/utils/docUtils/hoverProps.js +7 -2
- package/package.json +1 -1
- package/NOTICE.html +0 -12804
@@ -0,0 +1,101 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
exports["default"] = exports.WithRefreshButton = exports.WithChildren = exports.JustifiedRight = exports.Default = void 0;
|
9
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
10
|
+
var _react = _interopRequireDefault(require("react"));
|
11
|
+
var _storybookDocsLayout = _interopRequireDefault(require("../../../.storybook/storybookDocsLayout"));
|
12
|
+
var _index = require("../../index");
|
13
|
+
var _SaveBar = _interopRequireDefault(require("./SaveBar"));
|
14
|
+
var _SaveBar2 = _interopRequireDefault(require("./SaveBar.mdx"));
|
15
|
+
var _react2 = require("@emotion/react");
|
16
|
+
var _default = {
|
17
|
+
title: 'Experimental/SaveBar',
|
18
|
+
component: _SaveBar["default"],
|
19
|
+
parameters: {
|
20
|
+
docs: {
|
21
|
+
source: {
|
22
|
+
type: 'code'
|
23
|
+
},
|
24
|
+
page: function page() {
|
25
|
+
return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_SaveBar2["default"], null), (0, _react2.jsx)(_storybookDocsLayout["default"], null));
|
26
|
+
}
|
27
|
+
}
|
28
|
+
}
|
29
|
+
};
|
30
|
+
exports["default"] = _default;
|
31
|
+
var Default = function Default(args) {
|
32
|
+
return (0, _react2.jsx)(_SaveBar["default"], (0, _extends2["default"])({
|
33
|
+
saveButtonProps: {
|
34
|
+
key: 'save button',
|
35
|
+
text: 'Save',
|
36
|
+
onPress: function onPress() {
|
37
|
+
return alert('Save button pressed');
|
38
|
+
}
|
39
|
+
},
|
40
|
+
cancelButtonProps: {
|
41
|
+
key: 'cancel button',
|
42
|
+
text: 'Cancel',
|
43
|
+
onPress: function onPress() {
|
44
|
+
return alert('Cancel button pressed');
|
45
|
+
}
|
46
|
+
}
|
47
|
+
}, args));
|
48
|
+
};
|
49
|
+
exports.Default = Default;
|
50
|
+
var WithRefreshButton = function WithRefreshButton(args) {
|
51
|
+
return (0, _react2.jsx)(_SaveBar["default"], (0, _extends2["default"])({
|
52
|
+
saveButtonProps: {
|
53
|
+
key: 'save button',
|
54
|
+
text: 'Save',
|
55
|
+
onPress: function onPress() {
|
56
|
+
return alert('Save button pressed');
|
57
|
+
}
|
58
|
+
},
|
59
|
+
cancelButtonProps: {
|
60
|
+
key: 'cancel button',
|
61
|
+
text: 'Cancel',
|
62
|
+
onPress: function onPress() {
|
63
|
+
return alert('Cancel button pressed');
|
64
|
+
}
|
65
|
+
},
|
66
|
+
refreshButtonProps: {
|
67
|
+
key: 'refresh button',
|
68
|
+
text: 'Refresh',
|
69
|
+
onPress: function onPress() {
|
70
|
+
return alert('Refresh button pressed');
|
71
|
+
}
|
72
|
+
}
|
73
|
+
}, args));
|
74
|
+
};
|
75
|
+
exports.WithRefreshButton = WithRefreshButton;
|
76
|
+
var JustifiedRight = function JustifiedRight() {
|
77
|
+
return (0, _react2.jsx)(_SaveBar["default"], {
|
78
|
+
saveButtonProps: {
|
79
|
+
key: 'next button',
|
80
|
+
text: 'Next',
|
81
|
+
onPress: function onPress() {
|
82
|
+
return alert('Save button pressed');
|
83
|
+
}
|
84
|
+
},
|
85
|
+
cancelButtonProps: {
|
86
|
+
key: 'cancel button',
|
87
|
+
text: 'Cancel',
|
88
|
+
onPress: function onPress() {
|
89
|
+
return alert('Cancel button pressed');
|
90
|
+
}
|
91
|
+
},
|
92
|
+
isJustifiedRight: true
|
93
|
+
});
|
94
|
+
};
|
95
|
+
exports.JustifiedRight = JustifiedRight;
|
96
|
+
var WithChildren = function WithChildren(args) {
|
97
|
+
return (0, _react2.jsx)(_SaveBar["default"], args, (0, _react2.jsx)(_index.Button, null, "Custom Button!"), (0, _react2.jsx)(_index.Button, {
|
98
|
+
variant: "link"
|
99
|
+
}, "Custom Link!"));
|
100
|
+
};
|
101
|
+
exports.WithChildren = WithChildren;
|
@@ -0,0 +1,94 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
4
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
6
|
+
var _testAxe = _interopRequireDefault(require("../../utils/testUtils/testAxe"));
|
7
|
+
var _testWrapper = require("../../utils/testUtils/testWrapper");
|
8
|
+
var _ = _interopRequireDefault(require("."));
|
9
|
+
var _react2 = require("@emotion/react");
|
10
|
+
var testId = 'test-SaveBar';
|
11
|
+
var saveButtonProps = {
|
12
|
+
key: 'save button',
|
13
|
+
text: 'Save',
|
14
|
+
onPress: function onPress() {
|
15
|
+
return alert('Save button pressed');
|
16
|
+
}
|
17
|
+
};
|
18
|
+
var cancelButtonProps = {
|
19
|
+
key: 'cancel button',
|
20
|
+
text: 'Cancel',
|
21
|
+
onPress: function onPress() {
|
22
|
+
return alert('Cancel button pressed');
|
23
|
+
}
|
24
|
+
};
|
25
|
+
var refreshButtonProps = {
|
26
|
+
key: 'refresh button',
|
27
|
+
text: 'Refresh',
|
28
|
+
onPress: function onPress() {
|
29
|
+
return alert('Refresh button pressed');
|
30
|
+
}
|
31
|
+
};
|
32
|
+
var defaultProps = {
|
33
|
+
'data-testid': testId,
|
34
|
+
saveButtonProps: saveButtonProps,
|
35
|
+
cancelButtonProps: cancelButtonProps
|
36
|
+
};
|
37
|
+
var getComponent = function getComponent() {
|
38
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
39
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props)));
|
40
|
+
};
|
41
|
+
var getComponentCustomChildren = function getComponentCustomChildren() {
|
42
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
43
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], (0, _extends2["default"])({}, defaultProps, props), (0, _react2.jsx)("button", null, "custom text"), (0, _react2.jsx)("button", null, "Also custom text")));
|
44
|
+
};
|
45
|
+
var getComponentTextChildren = function getComponentTextChildren() {
|
46
|
+
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
47
|
+
return (0, _testWrapper.render)((0, _react2.jsx)(_["default"], props, "custom text"));
|
48
|
+
};
|
49
|
+
(0, _testAxe["default"])(getComponent);
|
50
|
+
afterEach(function () {
|
51
|
+
jest.resetAllMocks();
|
52
|
+
});
|
53
|
+
test('SaveBar does render', function () {
|
54
|
+
getComponent({});
|
55
|
+
var element = _testWrapper.screen.getByTestId(testId);
|
56
|
+
expect(element).toBeInTheDocument();
|
57
|
+
});
|
58
|
+
test('renders save and cancel buttons', function () {
|
59
|
+
getComponent();
|
60
|
+
var saveButton = _testWrapper.screen.getByText(saveButtonProps.text);
|
61
|
+
expect(saveButton).toBeInTheDocument();
|
62
|
+
var cancelButton = _testWrapper.screen.getByText(cancelButtonProps.text);
|
63
|
+
expect(cancelButton).toBeInTheDocument();
|
64
|
+
});
|
65
|
+
test('renders all three buttons', function () {
|
66
|
+
getComponent({
|
67
|
+
refreshButtonProps: refreshButtonProps
|
68
|
+
});
|
69
|
+
var saveButton = _testWrapper.screen.getByText(saveButtonProps.text);
|
70
|
+
expect(saveButton).toBeInTheDocument();
|
71
|
+
var refreshButton = _testWrapper.screen.getByText(refreshButtonProps.text);
|
72
|
+
expect(refreshButton).toBeInTheDocument();
|
73
|
+
var cancelButton = _testWrapper.screen.getByText(cancelButtonProps.text);
|
74
|
+
expect(cancelButton).toBeInTheDocument();
|
75
|
+
});
|
76
|
+
test('renders custom children', function () {
|
77
|
+
getComponentCustomChildren();
|
78
|
+
var firstButton = _testWrapper.screen.getByText('custom text');
|
79
|
+
var secondButton = _testWrapper.screen.getByText('Also custom text');
|
80
|
+
expect(firstButton).toBeInTheDocument();
|
81
|
+
expect(secondButton).toBeInTheDocument();
|
82
|
+
});
|
83
|
+
test('renders custom text', function () {
|
84
|
+
getComponentTextChildren();
|
85
|
+
var firstText = _testWrapper.screen.getByText('custom text');
|
86
|
+
expect(firstText).toBeInTheDocument();
|
87
|
+
});
|
88
|
+
test('isJustifiedRight reverses order of button', function () {
|
89
|
+
getComponent({
|
90
|
+
isJustifiedRight: true
|
91
|
+
});
|
92
|
+
var buttons = _testWrapper.screen.getAllByRole('button');
|
93
|
+
expect(buttons[0]).toHaveAttribute('data-id', 'cancel-button');
|
94
|
+
});
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
4
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
5
|
+
_Object$defineProperty(exports, "__esModule", {
|
6
|
+
value: true
|
7
|
+
});
|
8
|
+
_Object$defineProperty(exports, "default", {
|
9
|
+
enumerable: true,
|
10
|
+
get: function get() {
|
11
|
+
return _SaveBar["default"];
|
12
|
+
}
|
13
|
+
});
|
14
|
+
var _SaveBar = _interopRequireDefault(require("./SaveBar"));
|
@@ -0,0 +1,359 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
9
|
+
value: true
|
10
|
+
});
|
11
|
+
exports["default"] = exports.PanelHeader = exports.ListElement = exports.ListAndPanel = void 0;
|
12
|
+
var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
|
13
|
+
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
16
|
+
var _reactAria = require("react-aria");
|
17
|
+
var _reactStately = require("react-stately");
|
18
|
+
var _AccountIcon = _interopRequireDefault(require("@pingux/mdi-react/AccountIcon"));
|
19
|
+
var _CloseIcon = _interopRequireDefault(require("@pingux/mdi-react/CloseIcon"));
|
20
|
+
var _MoreVertIcon = _interopRequireDefault(require("@pingux/mdi-react/MoreVertIcon"));
|
21
|
+
var _PencilIcon = _interopRequireDefault(require("@pingux/mdi-react/PencilIcon"));
|
22
|
+
var _PlusIcon = _interopRequireDefault(require("@pingux/mdi-react/PlusIcon"));
|
23
|
+
var _hooks = require("../../hooks");
|
24
|
+
var _useOverlappingMenuHoverState = _interopRequireDefault(require("../../hooks/useOverlappingMenuHoverState"));
|
25
|
+
var _index = require("../../index");
|
26
|
+
var _items = require("./items");
|
27
|
+
var _react2 = require("@emotion/react");
|
28
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
29
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
30
|
+
var _default = {
|
31
|
+
title: 'Experimental/Recipes/ListAndPanel',
|
32
|
+
parameters: {
|
33
|
+
docs: {
|
34
|
+
source: {
|
35
|
+
type: 'code'
|
36
|
+
}
|
37
|
+
}
|
38
|
+
}
|
39
|
+
};
|
40
|
+
exports["default"] = _default;
|
41
|
+
var sx = {
|
42
|
+
wrapper: {
|
43
|
+
px: 'lg',
|
44
|
+
py: 'lg',
|
45
|
+
bg: 'accent.99',
|
46
|
+
height: '900px',
|
47
|
+
overflowY: 'scroll'
|
48
|
+
},
|
49
|
+
separator: {
|
50
|
+
bg: 'accent.90'
|
51
|
+
},
|
52
|
+
tabsWrapper: {
|
53
|
+
px: 'lg',
|
54
|
+
pt: 'xs'
|
55
|
+
},
|
56
|
+
iconButton: {
|
57
|
+
position: 'absolute',
|
58
|
+
top: 0,
|
59
|
+
right: 0
|
60
|
+
},
|
61
|
+
itemLabel: {
|
62
|
+
fontSize: 'sm',
|
63
|
+
fontWeight: 3,
|
64
|
+
lineHeight: '16px',
|
65
|
+
mb: 'xs'
|
66
|
+
},
|
67
|
+
itemValue: {
|
68
|
+
fontWeight: 0,
|
69
|
+
lineHeight: '18px',
|
70
|
+
mb: 'md'
|
71
|
+
},
|
72
|
+
panelHeader: {
|
73
|
+
container: {
|
74
|
+
bg: 'accent.99',
|
75
|
+
minHeight: 58,
|
76
|
+
ml: 0,
|
77
|
+
pl: 14,
|
78
|
+
pr: 'xs'
|
79
|
+
},
|
80
|
+
controls: {
|
81
|
+
alignSelf: 'center',
|
82
|
+
ml: 'auto',
|
83
|
+
pr: 'sm'
|
84
|
+
},
|
85
|
+
data: {
|
86
|
+
alignItems: 'center'
|
87
|
+
},
|
88
|
+
subtitle: {
|
89
|
+
alignSelf: 'start',
|
90
|
+
fontSize: 'sm',
|
91
|
+
lineHeight: '16px',
|
92
|
+
my: '1px'
|
93
|
+
},
|
94
|
+
title: {
|
95
|
+
alignSelf: 'start',
|
96
|
+
fontSize: 'md'
|
97
|
+
},
|
98
|
+
wrapper: {
|
99
|
+
cursor: 'pointer',
|
100
|
+
display: 'flex',
|
101
|
+
flex: '1 1 0px',
|
102
|
+
ml: 'md'
|
103
|
+
}
|
104
|
+
}
|
105
|
+
};
|
106
|
+
var heading = 'Users';
|
107
|
+
var description = 'The description of the page. The description of the page. The description of the page. The description of the page. The description of the page. The description of the page. The description of the page. The description of the page. The description of the page.';
|
108
|
+
var title = (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
|
109
|
+
align: "center",
|
110
|
+
isRow: true,
|
111
|
+
mb: "xs",
|
112
|
+
role: "heading",
|
113
|
+
"aria-level": "1"
|
114
|
+
}, (0, _react2.jsx)(_index.Text, {
|
115
|
+
fontSize: "xx",
|
116
|
+
fontWeight: 3,
|
117
|
+
fontColor: "text.primary"
|
118
|
+
}, heading), (0, _react2.jsx)(_index.IconButton, {
|
119
|
+
"aria-label": "icon button",
|
120
|
+
ml: "sm",
|
121
|
+
variant: "inverted"
|
122
|
+
}, (0, _react2.jsx)(_index.Icon, {
|
123
|
+
icon: _PlusIcon["default"],
|
124
|
+
size: "sm"
|
125
|
+
}))), (0, _react2.jsx)(_index.Text, {
|
126
|
+
fontSize: "sm",
|
127
|
+
color: "text.secondary",
|
128
|
+
fontWeight: 0,
|
129
|
+
width: "800px"
|
130
|
+
}, description, (0, _react2.jsx)(_index.Link, {
|
131
|
+
href: "https://uilibrary.ping-eng.com/",
|
132
|
+
sx: {
|
133
|
+
fontSize: '13px'
|
134
|
+
}
|
135
|
+
}, " Learn more")));
|
136
|
+
var ListAndPanel = function ListAndPanel() {
|
137
|
+
// Example of items data structure
|
138
|
+
// const items = [
|
139
|
+
// {
|
140
|
+
// email: 'dburkitt5@columbia.edu',
|
141
|
+
// firstName: 'Nicola',
|
142
|
+
// lastName: 'Burkitt',
|
143
|
+
// icon: AccountIcon,
|
144
|
+
// },
|
145
|
+
// ]
|
146
|
+
|
147
|
+
var _useState = (0, _react.useState)(),
|
148
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
149
|
+
selectedItemId = _useState2[0],
|
150
|
+
setSelectedItemId = _useState2[1];
|
151
|
+
var _useState3 = (0, _react.useState)(),
|
152
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
153
|
+
selectedKeys = _useState4[0],
|
154
|
+
setSelectedKeys = _useState4[1];
|
155
|
+
var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)(),
|
156
|
+
panelState = _useOverlayPanelState.state,
|
157
|
+
onPanelClose = _useOverlayPanelState.onClose;
|
158
|
+
var panelTriggerRef = (0, _react.useRef)();
|
159
|
+
var closePanelHandler = function closePanelHandler() {
|
160
|
+
onPanelClose(panelState, panelTriggerRef);
|
161
|
+
setSelectedItemId(-1);
|
162
|
+
setSelectedKeys([]);
|
163
|
+
};
|
164
|
+
var selectItemHandler = function selectItemHandler(e) {
|
165
|
+
if (e.size) {
|
166
|
+
setSelectedItemId((0, _findIndex["default"])(_items.items).call(_items.items, function (item) {
|
167
|
+
return item.email === e.currentKey;
|
168
|
+
}));
|
169
|
+
setSelectedKeys([e.currentKey]);
|
170
|
+
panelState.open();
|
171
|
+
} else {
|
172
|
+
closePanelHandler();
|
173
|
+
}
|
174
|
+
};
|
175
|
+
return (0, _react2.jsx)(_index.Box, {
|
176
|
+
sx: sx.wrapper
|
177
|
+
}, title, (0, _react2.jsx)(_index.SearchField, {
|
178
|
+
position: "fixed",
|
179
|
+
mb: "lg",
|
180
|
+
mt: "lg",
|
181
|
+
width: "400px",
|
182
|
+
placeholder: "Search",
|
183
|
+
"aria-label": "search"
|
184
|
+
}), (0, _react2.jsx)(_index.Separator, {
|
185
|
+
margin: 0
|
186
|
+
}), (0, _react2.jsx)(_index.ListView, {
|
187
|
+
items: _items.items,
|
188
|
+
onSelectionChange: selectItemHandler,
|
189
|
+
ref: panelTriggerRef,
|
190
|
+
selectedKeys: selectedKeys
|
191
|
+
}, function (item) {
|
192
|
+
var _context;
|
193
|
+
return (0, _react2.jsx)(_reactStately.Item, {
|
194
|
+
key: item.email
|
195
|
+
}, (0, _react2.jsx)(ListElement, {
|
196
|
+
data: {
|
197
|
+
text: (0, _concat["default"])(_context = "".concat(item.lastName, ", ")).call(_context, item.firstName),
|
198
|
+
subtext: item.email,
|
199
|
+
icon: item.icon
|
200
|
+
}
|
201
|
+
}));
|
202
|
+
}), (0, _react2.jsx)(_index.OverlayPanel, {
|
203
|
+
isOpen: panelState.isOpen,
|
204
|
+
state: panelState,
|
205
|
+
triggerRef: panelTriggerRef,
|
206
|
+
p: 0,
|
207
|
+
size: "large"
|
208
|
+
}, panelState.isOpen && (0, _react2.jsx)(_reactAria.FocusScope, {
|
209
|
+
contain: true,
|
210
|
+
restoreFocus: true,
|
211
|
+
autoFocus: true
|
212
|
+
}, (0, _react2.jsx)(PanelHeader, {
|
213
|
+
item: selectedItemId >= 0 ? _items.items[selectedItemId] : [],
|
214
|
+
onClosePanel: closePanelHandler
|
215
|
+
}), (0, _react2.jsx)(_index.Separator, {
|
216
|
+
margin: 0,
|
217
|
+
sx: sx.separator
|
218
|
+
}), (0, _react2.jsx)(_index.Box, {
|
219
|
+
sx: sx.tabsWrapper
|
220
|
+
}, (0, _react2.jsx)(_index.Tabs, {
|
221
|
+
tabListProps: {
|
222
|
+
justifyContent: 'center'
|
223
|
+
},
|
224
|
+
tabPanelProps: {
|
225
|
+
sx: {
|
226
|
+
position: 'relative'
|
227
|
+
}
|
228
|
+
}
|
229
|
+
}, (0, _react2.jsx)(_index.Tab, {
|
230
|
+
title: "Profile"
|
231
|
+
}, selectedItemId >= 0 && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.IconButton, {
|
232
|
+
variant: "inverted",
|
233
|
+
"aria-label": "pencil icon button",
|
234
|
+
sx: sx.iconButton
|
235
|
+
}, (0, _react2.jsx)(_index.Icon, {
|
236
|
+
icon: _PencilIcon["default"],
|
237
|
+
size: "sm"
|
238
|
+
})), (0, _react2.jsx)(_index.Text, {
|
239
|
+
sx: sx.itemLabel
|
240
|
+
}, "Full Name"), (0, _react2.jsx)(_index.Text, {
|
241
|
+
sx: sx.itemValue
|
242
|
+
}, _items.items[selectedItemId].firstName, ' ', _items.items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
|
243
|
+
sx: sx.itemLabel
|
244
|
+
}, "First Name"), (0, _react2.jsx)(_index.Text, {
|
245
|
+
sx: sx.itemValue
|
246
|
+
}, _items.items[selectedItemId].firstName), (0, _react2.jsx)(_index.Text, {
|
247
|
+
sx: sx.itemLabel
|
248
|
+
}, "Last Name"), (0, _react2.jsx)(_index.Text, {
|
249
|
+
sx: sx.itemValue
|
250
|
+
}, _items.items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
|
251
|
+
sx: sx.itemLabel
|
252
|
+
}, "Email"), (0, _react2.jsx)(_index.Text, {
|
253
|
+
sx: sx.itemValue
|
254
|
+
}, _items.items[selectedItemId].email))), (0, _react2.jsx)(_index.Tab, {
|
255
|
+
title: "Group Memberships"
|
256
|
+
}, (0, _react2.jsx)(_index.Text, null, "Group Memberships")), (0, _react2.jsx)(_index.Tab, {
|
257
|
+
title: "Account Info"
|
258
|
+
}, (0, _react2.jsx)(_index.Text, null, "Account Info")))))));
|
259
|
+
};
|
260
|
+
exports.ListAndPanel = ListAndPanel;
|
261
|
+
var ListElement = function ListElement(_ref) {
|
262
|
+
var _ref$data = _ref.data,
|
263
|
+
data = _ref$data === void 0 ? {
|
264
|
+
subtext: 'dburkitt5@columbia.edu',
|
265
|
+
text: 'Burkitt, Nicola',
|
266
|
+
icon: _AccountIcon["default"]
|
267
|
+
} : _ref$data;
|
268
|
+
var listItemRef = (0, _react.useRef)();
|
269
|
+
var _useOverlappingMenuHo = (0, _useOverlappingMenuHoverState["default"])({
|
270
|
+
listItemRef: listItemRef
|
271
|
+
}),
|
272
|
+
handleHoverEnd = _useOverlappingMenuHo.handleHoverEnd,
|
273
|
+
handleHoverStart = _useOverlappingMenuHo.handleHoverStart,
|
274
|
+
handleMenuHoverEnd = _useOverlappingMenuHo.handleMenuHoverEnd,
|
275
|
+
handleMouseMove = _useOverlappingMenuHo.handleMouseMove,
|
276
|
+
isHovered = _useOverlappingMenuHo.isHovered;
|
277
|
+
var text = data.text,
|
278
|
+
subtext = data.subtext,
|
279
|
+
icon = data.icon;
|
280
|
+
return (0, _react2.jsx)(_index.ListViewItem, {
|
281
|
+
data: {
|
282
|
+
icon: icon,
|
283
|
+
subtext: subtext,
|
284
|
+
text: text
|
285
|
+
},
|
286
|
+
isHovered: isHovered,
|
287
|
+
onHoverEnd: handleHoverEnd,
|
288
|
+
onHoverStart: handleHoverStart,
|
289
|
+
onMouseMove: handleMouseMove,
|
290
|
+
ref: listItemRef
|
291
|
+
}, (0, _react2.jsx)(_index.ListViewItemSwitchField, null), (0, _react2.jsx)(_index.ListViewItemMenu, {
|
292
|
+
onAction: handleHoverEnd,
|
293
|
+
onHoverEnd: handleMenuHoverEnd,
|
294
|
+
onHoverStart: handleHoverStart
|
295
|
+
}, (0, _react2.jsx)(_reactStately.Item, {
|
296
|
+
key: "enable"
|
297
|
+
}, "Enable user"), (0, _react2.jsx)(_reactStately.Item, {
|
298
|
+
key: "disable"
|
299
|
+
}, "Disable user"), (0, _react2.jsx)(_reactStately.Item, {
|
300
|
+
key: "delete"
|
301
|
+
}, "Delete user")));
|
302
|
+
};
|
303
|
+
exports.ListElement = ListElement;
|
304
|
+
var PanelHeader = function PanelHeader(_ref2) {
|
305
|
+
var _context2;
|
306
|
+
var _ref2$item = _ref2.item,
|
307
|
+
item = _ref2$item === void 0 ? {
|
308
|
+
email: 'dburkitt5@columbia.edu',
|
309
|
+
icon: _AccountIcon["default"],
|
310
|
+
firstName: 'John',
|
311
|
+
lastName: 'Doe'
|
312
|
+
} : _ref2$item,
|
313
|
+
onClosePanel = _ref2.onClosePanel;
|
314
|
+
var email = item.email,
|
315
|
+
firstName = item.firstName,
|
316
|
+
lastName = item.lastName;
|
317
|
+
var text = (0, _concat["default"])(_context2 = "".concat(lastName, ", ")).call(_context2, firstName);
|
318
|
+
return (0, _react2.jsx)(_index.Box, {
|
319
|
+
sx: sx.panelHeader.container
|
320
|
+
}, (0, _react2.jsx)(_index.Box, {
|
321
|
+
isRow: true,
|
322
|
+
sx: sx.panelHeader.wrapper
|
323
|
+
}, (0, _react2.jsx)(_index.Box, {
|
324
|
+
isRow: true,
|
325
|
+
sx: sx.panelHeader.data
|
326
|
+
}, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
|
327
|
+
variant: "bodyStrong",
|
328
|
+
sx: sx.panelHeader.title
|
329
|
+
}, text), (0, _react2.jsx)(_index.Text, {
|
330
|
+
variant: "subtitle",
|
331
|
+
sx: sx.panelHeader.subtitle
|
332
|
+
}, email))), (0, _react2.jsx)(_index.Box, {
|
333
|
+
isRow: true,
|
334
|
+
sx: sx.panelHeader.controls
|
335
|
+
}, (0, _react2.jsx)(_index.SwitchField, {
|
336
|
+
"aria-label": "active user",
|
337
|
+
isDefaultSelected: true,
|
338
|
+
alignSelf: "center",
|
339
|
+
mr: "xs"
|
340
|
+
}), (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
|
341
|
+
"aria-label": "more"
|
342
|
+
}, (0, _react2.jsx)(_index.Icon, {
|
343
|
+
icon: _MoreVertIcon["default"],
|
344
|
+
size: "md"
|
345
|
+
})), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_reactStately.Item, {
|
346
|
+
key: "enable"
|
347
|
+
}, "Enable user"), (0, _react2.jsx)(_reactStately.Item, {
|
348
|
+
key: "disable"
|
349
|
+
}, "Disable user"), (0, _react2.jsx)(_reactStately.Item, {
|
350
|
+
key: "delete"
|
351
|
+
}, "Delete user"))), (0, _react2.jsx)(_index.IconButton, {
|
352
|
+
"aria-label": "close icon button",
|
353
|
+
onPress: onClosePanel
|
354
|
+
}, (0, _react2.jsx)(_index.Icon, {
|
355
|
+
size: "sm",
|
356
|
+
icon: _CloseIcon["default"]
|
357
|
+
})))));
|
358
|
+
};
|
359
|
+
exports.PanelHeader = PanelHeader;
|
@@ -0,0 +1,104 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
|
4
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
5
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
6
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
7
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
8
|
+
_Object$defineProperty(exports, "__esModule", {
|
9
|
+
value: true
|
10
|
+
});
|
11
|
+
exports["default"] = exports.ScrollableListView = void 0;
|
12
|
+
var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
|
13
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
15
|
+
var _react = _interopRequireWildcard(require("react"));
|
16
|
+
var _reactStately = require("react-stately");
|
17
|
+
var _FormSelectIcon = _interopRequireDefault(require("@pingux/mdi-react/FormSelectIcon"));
|
18
|
+
var _index = require("../../index");
|
19
|
+
var _react2 = require("@emotion/react");
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
21
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
22
|
+
var _default = {
|
23
|
+
title: 'Experimental/recipes/ScrollableListView'
|
24
|
+
};
|
25
|
+
exports["default"] = _default;
|
26
|
+
var ScrollableListView = function ScrollableListView() {
|
27
|
+
var unfilteredItems = [{
|
28
|
+
key: 'Aardvark',
|
29
|
+
name: 'Aardvark',
|
30
|
+
id: '1'
|
31
|
+
}, {
|
32
|
+
key: 'Kangaroo',
|
33
|
+
name: 'Kangaroo',
|
34
|
+
id: '2'
|
35
|
+
}, {
|
36
|
+
key: 'Snake',
|
37
|
+
name: 'Snake',
|
38
|
+
id: '3'
|
39
|
+
}, {
|
40
|
+
key: 'Dog',
|
41
|
+
name: 'Dog',
|
42
|
+
id: '4'
|
43
|
+
}, {
|
44
|
+
key: 'Cat',
|
45
|
+
name: 'Cat',
|
46
|
+
id: '5'
|
47
|
+
}, {
|
48
|
+
key: 'Mouse',
|
49
|
+
name: 'Mouse',
|
50
|
+
id: '6'
|
51
|
+
}, {
|
52
|
+
key: 'Jaguar',
|
53
|
+
name: 'Jaguar',
|
54
|
+
id: '7'
|
55
|
+
}, {
|
56
|
+
key: 'Elephant',
|
57
|
+
name: 'Elephant',
|
58
|
+
id: '7'
|
59
|
+
}];
|
60
|
+
var _useState = (0, _react.useState)(''),
|
61
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
62
|
+
value = _useState2[0],
|
63
|
+
setValue = _useState2[1];
|
64
|
+
var _useState3 = (0, _react.useState)(unfilteredItems),
|
65
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
66
|
+
scrollableListViewItems = _useState4[0],
|
67
|
+
setScrollableListViewItems = _useState4[1];
|
68
|
+
var filterItems = function filterItems(input) {
|
69
|
+
var filtered = (0, _filter["default"])(unfilteredItems).call(unfilteredItems, function (obj) {
|
70
|
+
var _context;
|
71
|
+
return (0, _includes["default"])(_context = obj.name.toLowerCase()).call(_context, input.toLowerCase());
|
72
|
+
});
|
73
|
+
setScrollableListViewItems(filtered);
|
74
|
+
};
|
75
|
+
var onChangeInput = function onChangeInput(input) {
|
76
|
+
setValue(input);
|
77
|
+
filterItems(input);
|
78
|
+
};
|
79
|
+
return (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.SearchField, {
|
80
|
+
value: value,
|
81
|
+
onChange: onChangeInput
|
82
|
+
}), (0, _react2.jsx)(_index.ScrollBox, {
|
83
|
+
maxHeight: 450,
|
84
|
+
hasShadows: true
|
85
|
+
}, (0, _react2.jsx)(_index.ListView, {
|
86
|
+
items: scrollableListViewItems
|
87
|
+
}, function (item) {
|
88
|
+
return (0, _react2.jsx)(_reactStately.Item, {
|
89
|
+
key: item.name
|
90
|
+
}, (0, _react2.jsx)(_index.ListViewItem, {
|
91
|
+
data: {
|
92
|
+
icon: _FormSelectIcon["default"],
|
93
|
+
text: item.name
|
94
|
+
}
|
95
|
+
}, (0, _react2.jsx)(_index.ListViewItemEditButton, null), (0, _react2.jsx)(_index.ListViewItemMenu, null, (0, _react2.jsx)(_reactStately.Item, {
|
96
|
+
key: "enable"
|
97
|
+
}, "Enable user"), (0, _react2.jsx)(_reactStately.Item, {
|
98
|
+
key: "disable"
|
99
|
+
}, "Disable user"), (0, _react2.jsx)(_reactStately.Item, {
|
100
|
+
key: "delete"
|
101
|
+
}, "Delete user"))));
|
102
|
+
})));
|
103
|
+
};
|
104
|
+
exports.ScrollableListView = ScrollableListView;
|