@pingux/astro 2.8.0-alpha.0 → 2.8.0

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 (69) hide show
  1. package/CHANGELOG.md +17 -0
  2. package/NOTICE.html +13353 -0
  3. package/lib/cjs/components/IconButton/IconButton.js +2 -38
  4. package/lib/cjs/components/IconButton/IconButton.stories.js +2 -34
  5. package/lib/cjs/components/IconButton/iconButtonAttributes.js +100 -0
  6. package/lib/cjs/components/ListItem/ListItem.js +1 -0
  7. package/lib/cjs/components/ListView/ListView.js +0 -9
  8. package/lib/cjs/components/ListView/ListView.stories.js +39 -104
  9. package/lib/cjs/components/ListViewItem/ListViewItem.js +14 -5
  10. package/lib/cjs/components/ListViewItem/ListViewItem.styles.js +6 -1
  11. package/lib/cjs/components/Menu/Menu.js +7 -60
  12. package/lib/cjs/components/Menu/Menu.stories.js +2 -56
  13. package/lib/cjs/components/Menu/menuAttributes.js +104 -0
  14. package/lib/cjs/components/SwitchField/SwitchField.js +12 -54
  15. package/lib/cjs/components/SwitchField/SwitchField.stories.js +2 -34
  16. package/lib/cjs/components/SwitchField/SwitchField.test.js +4 -5
  17. package/lib/cjs/components/SwitchField/switchFieldAttributes.js +191 -0
  18. package/lib/cjs/experimental/ListViewItem/ListViewItem.js +157 -0
  19. package/lib/cjs/experimental/ListViewItem/ListViewItem.stories.js +136 -0
  20. package/lib/cjs/experimental/ListViewItem/ListViewItem.test.js +77 -0
  21. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.js +34 -0
  22. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +31 -0
  23. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.test.js +25 -0
  24. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.js +37 -0
  25. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.stories.js +36 -0
  26. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.test.js +59 -0
  27. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.js +32 -0
  28. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.stories.js +41 -0
  29. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.test.js +25 -0
  30. package/lib/cjs/experimental/ListViewItem/listViewItemAttributes.js +81 -0
  31. package/lib/cjs/experimental/recipes/ListAndPanel.stories.js +359 -0
  32. package/lib/cjs/experimental/recipes/ScrollableListView.stories.js +104 -0
  33. package/lib/cjs/experimental/recipes/items.js +77 -0
  34. package/lib/cjs/index.js +64 -51
  35. package/lib/cjs/utils/docUtils/hoverProps.js +7 -2
  36. package/lib/components/IconButton/IconButton.js +2 -38
  37. package/lib/components/IconButton/IconButton.stories.js +2 -34
  38. package/lib/components/IconButton/iconButtonAttributes.js +91 -0
  39. package/lib/components/ListItem/ListItem.js +2 -1
  40. package/lib/components/ListView/ListView.js +0 -9
  41. package/lib/components/ListView/ListView.stories.js +40 -106
  42. package/lib/components/ListViewItem/ListViewItem.js +12 -4
  43. package/lib/components/ListViewItem/ListViewItem.styles.js +6 -1
  44. package/lib/components/Menu/Menu.js +7 -60
  45. package/lib/components/Menu/Menu.stories.js +2 -57
  46. package/lib/components/Menu/menuAttributes.js +95 -0
  47. package/lib/components/SwitchField/SwitchField.js +14 -55
  48. package/lib/components/SwitchField/SwitchField.stories.js +2 -34
  49. package/lib/components/SwitchField/SwitchField.test.js +4 -5
  50. package/lib/components/SwitchField/switchFieldAttributes.js +182 -0
  51. package/lib/experimental/ListViewItem/ListViewItem.js +144 -0
  52. package/lib/experimental/ListViewItem/ListViewItem.stories.js +122 -0
  53. package/lib/experimental/ListViewItem/ListViewItem.test.js +74 -0
  54. package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.js +25 -0
  55. package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +21 -0
  56. package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.test.js +22 -0
  57. package/lib/experimental/ListViewItem/controls/ListViewItemMenu.js +28 -0
  58. package/lib/experimental/ListViewItem/controls/ListViewItemMenu.stories.js +26 -0
  59. package/lib/experimental/ListViewItem/controls/ListViewItemMenu.test.js +56 -0
  60. package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.js +23 -0
  61. package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.stories.js +32 -0
  62. package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.test.js +22 -0
  63. package/lib/experimental/ListViewItem/listViewItemAttributes.js +72 -0
  64. package/lib/experimental/recipes/ListAndPanel.stories.js +342 -0
  65. package/lib/experimental/recipes/ScrollableListView.stories.js +89 -0
  66. package/lib/experimental/recipes/items.js +68 -0
  67. package/lib/index.js +7 -3
  68. package/lib/utils/docUtils/hoverProps.js +7 -2
  69. package/package.json +1 -1
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ _Object$defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = exports.Default = void 0;
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _switchFieldAttributes = require("../../../components/SwitchField/switchFieldAttributes");
19
+ var _index = require("../../../index");
20
+ var _hoverProps = require("../../../utils/docUtils/hoverProps");
21
+ var _react2 = require("@emotion/react");
22
+ 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; }
23
+ 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) { (0, _defineProperty2["default"])(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; }
24
+ delete _switchFieldAttributes.switchFieldArgTypes.label;
25
+ var _default = {
26
+ title: 'Experimental/ListViewItem/Controls/ListViewItemSwitchField',
27
+ component: _index.ListViewItemSwitchField,
28
+ parameters: {
29
+ docs: {
30
+ source: {
31
+ type: 'code'
32
+ }
33
+ }
34
+ },
35
+ argTypes: _objectSpread(_objectSpread({}, _switchFieldAttributes.switchFieldArgTypes), _hoverProps.onHoverArgTypes)
36
+ };
37
+ exports["default"] = _default;
38
+ var Default = function Default(args) {
39
+ return (0, _react2.jsx)(_index.ListViewItemSwitchField, args);
40
+ };
41
+ exports.Default = Default;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
6
+ var _testAxe = _interopRequireDefault(require("../../../utils/testUtils/testAxe"));
7
+ var _testWrapper = require("../../../utils/testUtils/testWrapper");
8
+ var _ListViewItemSwitchField = _interopRequireDefault(require("./ListViewItemSwitchField"));
9
+ var _react2 = require("@emotion/react");
10
+ var getComponent = function getComponent() {
11
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12
+ return (0, _testWrapper.render)((0, _react2.jsx)(_ListViewItemSwitchField["default"], props));
13
+ };
14
+
15
+ // Need to be added to each test file to test accessibility using axe.
16
+ (0, _testAxe["default"])(getComponent);
17
+ test('ListViewItemSwitchField responds to SwitchFiled props', function () {
18
+ var onChange = jest.fn();
19
+ getComponent({
20
+ onChange: onChange
21
+ });
22
+ var switchField = _testWrapper.screen.getByRole('switch');
23
+ _userEvent["default"].click(switchField);
24
+ expect(onChange).toBeCalled();
25
+ });
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ _Object$defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports.listViewItemPropTypes = exports.listViewItemArgTypes = void 0;
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _docArgTypes = require("../../utils/docUtils/docArgTypes");
19
+ var _hoverProps = require("../../utils/docUtils/hoverProps");
20
+ 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; }
21
+ 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) { (0, _defineProperty2["default"])(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; }
22
+ var descriptions = {
23
+ data: 'Object with User/Group data.',
24
+ className: 'A list of class names to apply to the element',
25
+ isSelected: 'Sets the selected state of the ListItem',
26
+ isPanelHeader: 'A boolean that will adapt the styling of ListIteme to be used as the PanelHeader',
27
+ slots: 'Provides a way to insert markup in specified places.',
28
+ linkProps: 'When present, provides meta click functionality'
29
+ };
30
+ var listViewItemArgTypes = _objectSpread({
31
+ className: {
32
+ description: descriptions.className,
33
+ type: {
34
+ summary: _docArgTypes.stringOrStringArray
35
+ }
36
+ },
37
+ data: {
38
+ description: descriptions.data,
39
+ type: {
40
+ summary: '{ icon, text, subtext }'
41
+ }
42
+ },
43
+ isSelected: _objectSpread(_objectSpread({}, _docArgTypes.booleanArg), {}, {
44
+ description: descriptions.isSelected,
45
+ control: {
46
+ type: 'none'
47
+ },
48
+ linkProps: {
49
+ description: descriptions.linkProps,
50
+ type: {
51
+ summary: '{ href, target }'
52
+ }
53
+ }
54
+ }),
55
+ onMetaClick: {
56
+ description: ''
57
+ },
58
+ slots: {
59
+ description: descriptions.slots,
60
+ type: {
61
+ summary: '{ leftOfData, rightOfData }'
62
+ }
63
+ }
64
+ }, _hoverProps.onHoverArgTypes);
65
+ exports.listViewItemArgTypes = listViewItemArgTypes;
66
+ var listViewItemPropTypes = _objectSpread({
67
+ className: _propTypes["default"].oneOfType([_propTypes["default"].string, _propTypes["default"].arrayOf(_propTypes["default"].string)]),
68
+ data: _propTypes["default"].shape({
69
+ icon: _propTypes["default"].elementType,
70
+ subtext: _propTypes["default"].string,
71
+ text: _propTypes["default"].string
72
+ }),
73
+ isSelected: _propTypes["default"].bool,
74
+ linkProps: _propTypes["default"].object,
75
+ onMetaClick: _propTypes["default"].func,
76
+ slots: _propTypes["default"].shape({
77
+ leftOfData: _propTypes["default"].node,
78
+ rightOfData: _propTypes["default"].node
79
+ })
80
+ }, _hoverProps.onHoverPropTypes);
81
+ exports.listViewItemPropTypes = listViewItemPropTypes;
@@ -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;