@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.
Files changed (90) hide show
  1. package/lib/cjs/components/Button/Button.js +2 -55
  2. package/lib/cjs/components/Button/Button.stories.js +12 -30
  3. package/lib/cjs/components/Button/buttonAttributes.js +109 -0
  4. package/lib/cjs/components/Calendar/Calendar.test.js +6 -6
  5. package/lib/cjs/components/Calendar/CalendarCell.js +6 -5
  6. package/lib/cjs/components/IconButton/IconButton.js +2 -38
  7. package/lib/cjs/components/IconButton/IconButton.stories.js +2 -34
  8. package/lib/cjs/components/IconButton/iconButtonAttributes.js +100 -0
  9. package/lib/cjs/components/ListItem/ListItem.js +1 -0
  10. package/lib/cjs/components/ListView/ListView.js +0 -9
  11. package/lib/cjs/components/ListView/ListView.stories.js +39 -104
  12. package/lib/cjs/components/ListViewItem/ListViewItem.js +14 -5
  13. package/lib/cjs/components/ListViewItem/ListViewItem.styles.js +6 -1
  14. package/lib/cjs/components/Menu/Menu.js +7 -60
  15. package/lib/cjs/components/Menu/Menu.stories.js +2 -56
  16. package/lib/cjs/components/Menu/menuAttributes.js +104 -0
  17. package/lib/cjs/components/SwitchField/SwitchField.js +12 -54
  18. package/lib/cjs/components/SwitchField/SwitchField.stories.js +2 -34
  19. package/lib/cjs/components/SwitchField/SwitchField.test.js +4 -5
  20. package/lib/cjs/components/SwitchField/switchFieldAttributes.js +191 -0
  21. package/lib/cjs/experimental/ListViewItem/ListViewItem.js +157 -0
  22. package/lib/cjs/experimental/ListViewItem/ListViewItem.stories.js +136 -0
  23. package/lib/cjs/experimental/ListViewItem/ListViewItem.test.js +77 -0
  24. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.js +34 -0
  25. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +31 -0
  26. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemEditButton.test.js +25 -0
  27. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.js +37 -0
  28. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.stories.js +36 -0
  29. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemMenu.test.js +59 -0
  30. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.js +32 -0
  31. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.stories.js +41 -0
  32. package/lib/cjs/experimental/ListViewItem/controls/ListViewItemSwitchField.test.js +25 -0
  33. package/lib/cjs/experimental/ListViewItem/listViewItemAttributes.js +81 -0
  34. package/lib/cjs/experimental/SaveBar/SaveBar.js +85 -0
  35. package/lib/cjs/experimental/SaveBar/SaveBar.stories.js +101 -0
  36. package/lib/cjs/experimental/SaveBar/SaveBar.test.js +94 -0
  37. package/lib/cjs/experimental/SaveBar/index.js +14 -0
  38. package/lib/cjs/experimental/recipes/ListAndPanel.stories.js +359 -0
  39. package/lib/cjs/experimental/recipes/ScrollableListView.stories.js +104 -0
  40. package/lib/cjs/experimental/recipes/items.js +77 -0
  41. package/lib/cjs/index.js +64 -51
  42. package/lib/cjs/utils/docUtils/ariaAttributes.js +2 -1
  43. package/lib/cjs/utils/docUtils/docArgTypes.js +41 -0
  44. package/lib/cjs/utils/docUtils/hoverProps.js +7 -2
  45. package/lib/components/Button/Button.js +2 -55
  46. package/lib/components/Button/Button.stories.js +13 -31
  47. package/lib/components/Button/buttonAttributes.js +101 -0
  48. package/lib/components/Calendar/Calendar.test.js +6 -6
  49. package/lib/components/Calendar/CalendarCell.js +6 -5
  50. package/lib/components/IconButton/IconButton.js +2 -38
  51. package/lib/components/IconButton/IconButton.stories.js +2 -34
  52. package/lib/components/IconButton/iconButtonAttributes.js +91 -0
  53. package/lib/components/ListItem/ListItem.js +2 -1
  54. package/lib/components/ListView/ListView.js +0 -9
  55. package/lib/components/ListView/ListView.stories.js +40 -106
  56. package/lib/components/ListViewItem/ListViewItem.js +12 -4
  57. package/lib/components/ListViewItem/ListViewItem.styles.js +6 -1
  58. package/lib/components/Menu/Menu.js +7 -60
  59. package/lib/components/Menu/Menu.stories.js +2 -57
  60. package/lib/components/Menu/menuAttributes.js +95 -0
  61. package/lib/components/SwitchField/SwitchField.js +14 -55
  62. package/lib/components/SwitchField/SwitchField.stories.js +2 -34
  63. package/lib/components/SwitchField/SwitchField.test.js +4 -5
  64. package/lib/components/SwitchField/switchFieldAttributes.js +182 -0
  65. package/lib/experimental/ListViewItem/ListViewItem.js +144 -0
  66. package/lib/experimental/ListViewItem/ListViewItem.stories.js +122 -0
  67. package/lib/experimental/ListViewItem/ListViewItem.test.js +74 -0
  68. package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.js +25 -0
  69. package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.stories.js +21 -0
  70. package/lib/experimental/ListViewItem/controls/ListViewItemEditButton.test.js +22 -0
  71. package/lib/experimental/ListViewItem/controls/ListViewItemMenu.js +28 -0
  72. package/lib/experimental/ListViewItem/controls/ListViewItemMenu.stories.js +26 -0
  73. package/lib/experimental/ListViewItem/controls/ListViewItemMenu.test.js +56 -0
  74. package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.js +23 -0
  75. package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.stories.js +32 -0
  76. package/lib/experimental/ListViewItem/controls/ListViewItemSwitchField.test.js +22 -0
  77. package/lib/experimental/ListViewItem/listViewItemAttributes.js +72 -0
  78. package/lib/experimental/SaveBar/SaveBar.js +76 -0
  79. package/lib/experimental/SaveBar/SaveBar.stories.js +88 -0
  80. package/lib/experimental/SaveBar/SaveBar.test.js +91 -0
  81. package/lib/experimental/SaveBar/index.js +1 -0
  82. package/lib/experimental/recipes/ListAndPanel.stories.js +342 -0
  83. package/lib/experimental/recipes/ScrollableListView.stories.js +89 -0
  84. package/lib/experimental/recipes/items.js +68 -0
  85. package/lib/index.js +7 -3
  86. package/lib/utils/docUtils/ariaAttributes.js +1 -1
  87. package/lib/utils/docUtils/docArgTypes.js +29 -0
  88. package/lib/utils/docUtils/hoverProps.js +7 -2
  89. package/package.json +1 -1
  90. 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;