@pingux/astro 2.16.1-alpha.1 → 2.17.0-alpha.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 (72) hide show
  1. package/lib/cjs/components/ListView/ListView.js +1 -1
  2. package/lib/cjs/components/ListView/ListView.mdx +4 -1
  3. package/lib/cjs/components/ListView/ListView.stories.js +52 -98
  4. package/lib/cjs/components/ListView/ListViewItem.js +126 -0
  5. package/lib/cjs/components/ListViewItem/ListViewItem.js +81 -100
  6. package/lib/cjs/{experimental → components}/ListViewItem/ListViewItem.mdx +4 -4
  7. package/lib/cjs/{experimental → components}/ListViewItem/ListViewItem.stories.js +32 -37
  8. package/lib/cjs/{experimental → components}/ListViewItem/ListViewItem.test.js +3 -3
  9. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemEditButton.js +5 -5
  10. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemEditButton.stories.js +5 -5
  11. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemEditButton.test.js +2 -2
  12. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemMenu.js +8 -8
  13. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemMenu.stories.js +5 -5
  14. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemMenu.test.js +2 -3
  15. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemSwitchField.js +5 -5
  16. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemSwitchField.stories.js +5 -5
  17. package/lib/cjs/{experimental → components}/ListViewItem/controls/ListViewItemSwitchField.test.js +2 -2
  18. package/lib/cjs/experimental/PageHeader/PageHeader.js +14 -14
  19. package/lib/cjs/experimental/PageHeader/PageHeader.stories.js +27 -11
  20. package/lib/cjs/experimental/PageHeader/PageHeader.test.js +14 -5
  21. package/lib/cjs/experimental/PanelHeader/PanelHeader.js +1 -1
  22. package/lib/cjs/experimental/PanelHeader/PanelHeader.stories.js +1 -1
  23. package/lib/cjs/index.d.ts +4 -4
  24. package/lib/cjs/index.js +8 -8
  25. package/lib/cjs/recipes/ListAndPanel.stories.js +195 -267
  26. package/lib/cjs/recipes/MaskedValue.stories.js +8 -1
  27. package/lib/cjs/{experimental/recipes → recipes}/ScrollableListView.stories.js +2 -2
  28. package/lib/cjs/utils/designUtils/figmaLinks.js +3 -0
  29. package/lib/components/ListView/ListView.js +1 -1
  30. package/lib/components/ListView/ListView.mdx +4 -1
  31. package/lib/components/ListView/ListView.stories.js +47 -93
  32. package/lib/components/ListView/ListViewItem.js +113 -0
  33. package/lib/components/ListViewItem/ListViewItem.js +78 -99
  34. package/lib/{experimental → components}/ListViewItem/ListViewItem.mdx +4 -4
  35. package/lib/{experimental → components}/ListViewItem/ListViewItem.stories.js +7 -12
  36. package/lib/{experimental → components}/ListViewItem/ListViewItem.test.js +1 -1
  37. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemEditButton.js +4 -4
  38. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemEditButton.stories.js +3 -3
  39. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemEditButton.test.js +1 -1
  40. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemMenu.js +5 -5
  41. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemMenu.stories.js +3 -3
  42. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemMenu.test.js +1 -2
  43. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemSwitchField.js +4 -4
  44. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemSwitchField.stories.js +3 -3
  45. package/lib/{experimental → components}/ListViewItem/controls/ListViewItemSwitchField.test.js +1 -1
  46. package/lib/experimental/PageHeader/PageHeader.js +14 -14
  47. package/lib/experimental/PageHeader/PageHeader.stories.js +25 -10
  48. package/lib/experimental/PageHeader/PageHeader.test.js +14 -5
  49. package/lib/experimental/PanelHeader/PanelHeader.js +1 -1
  50. package/lib/experimental/PanelHeader/PanelHeader.stories.js +1 -1
  51. package/lib/index.js +4 -4
  52. package/lib/recipes/ListAndPanel.stories.js +186 -260
  53. package/lib/recipes/MaskedValue.stories.js +7 -0
  54. package/lib/{experimental/recipes → recipes}/ScrollableListView.stories.js +2 -2
  55. package/lib/utils/designUtils/figmaLinks.js +3 -0
  56. package/package.json +1 -1
  57. package/lib/cjs/components/ListItem/ListItem.stories.js +0 -189
  58. package/lib/cjs/experimental/ListView/ListView.mdx +0 -47
  59. package/lib/cjs/experimental/ListView/ListView.stories.js +0 -742
  60. package/lib/cjs/experimental/ListViewItem/ListViewItem.js +0 -108
  61. package/lib/cjs/experimental/recipes/ListAndPanel.stories.js +0 -359
  62. package/lib/cjs/recipes/ScrollableListView.stories.hidden.js +0 -136
  63. package/lib/components/ListItem/ListItem.stories.js +0 -174
  64. package/lib/experimental/ListView/ListView.mdx +0 -47
  65. package/lib/experimental/ListView/ListView.stories.js +0 -729
  66. package/lib/experimental/ListViewItem/ListViewItem.js +0 -93
  67. package/lib/experimental/recipes/ListAndPanel.stories.js +0 -342
  68. package/lib/recipes/ScrollableListView.stories.hidden.js +0 -121
  69. /package/lib/cjs/{experimental → components}/ListViewItem/listViewItemAttributes.js +0 -0
  70. /package/lib/cjs/{experimental/recipes → recipes}/items.js +0 -0
  71. /package/lib/{experimental → components}/ListViewItem/listViewItemAttributes.js +0 -0
  72. /package/lib/{experimental/recipes → recipes}/items.js +0 -0
@@ -8,8 +8,9 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
8
8
  _Object$defineProperty(exports, "__esModule", {
9
9
  value: true
10
10
  });
11
- exports["default"] = exports.Default = void 0;
11
+ exports["default"] = exports.PanelHeader = exports.ListElement = exports.ListAndPanel = void 0;
12
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"));
13
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
14
15
  var _react = _interopRequireWildcard(require("react"));
15
16
  var _reactAria = require("react-aria");
@@ -20,94 +21,22 @@ var _MoreVertIcon = _interopRequireDefault(require("@pingux/mdi-react/MoreVertIc
20
21
  var _PencilIcon = _interopRequireDefault(require("@pingux/mdi-react/PencilIcon"));
21
22
  var _PlusIcon = _interopRequireDefault(require("@pingux/mdi-react/PlusIcon"));
22
23
  var _hooks = require("../hooks");
23
- var _useOverlappingMenuHoverState = _interopRequireDefault(require("../hooks/useOverlappingMenuHoverState"));
24
24
  var _index = require("../index");
25
+ var _items = require("./items");
25
26
  var _react2 = require("@emotion/react");
26
27
  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); }
27
28
  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; }
28
29
  var _default = {
29
- title: 'Recipes/List with Panel'
30
+ title: 'Recipes/List And Panel',
31
+ parameters: {
32
+ docs: {
33
+ source: {
34
+ type: 'code'
35
+ }
36
+ }
37
+ }
30
38
  };
31
39
  exports["default"] = _default;
32
- var items = [{
33
- email: 'dburkitt5@columbia.edu',
34
- firstName: 'Nicola',
35
- lastName: 'Burkitt',
36
- hasIcon: true,
37
- avatar: _AccountIcon["default"]
38
- }, {
39
- email: 'idixie2@elegantthemes.com',
40
- firstName: 'Cacilia',
41
- lastName: 'Dixie',
42
- hasIcon: true,
43
- avatar: _AccountIcon["default"]
44
- }, {
45
- email: 'dfowler0@rambler.ru',
46
- firstName: 'Stavro',
47
- lastName: 'Fowler',
48
- hasIcon: true,
49
- avatar: _AccountIcon["default"]
50
- }, {
51
- email: 'jgolde8@jimdo.com',
52
- firstName: 'Celisse',
53
- lastName: 'Golde',
54
- hasIcon: true,
55
- avatar: _AccountIcon["default"]
56
- }, {
57
- email: 'shearst9@answers.com',
58
- firstName: 'Jeth',
59
- lastName: 'Hearst',
60
- hasIcon: true,
61
- avatar: _AccountIcon["default"]
62
- }, {
63
- email: 'ajinaa@mapquest.com',
64
- firstName: 'Kaycee',
65
- lastName: 'Jina',
66
- hasIcon: true,
67
- avatar: _AccountIcon["default"]
68
- }, {
69
- email: 'vmalster4@biblegateway.com',
70
- firstName: 'Lorry',
71
- lastName: 'Malster',
72
- hasIcon: true,
73
- avatar: _AccountIcon["default"]
74
- }, {
75
- email: 'yphipp6@yellowpages.com',
76
- firstName: 'Stanley',
77
- lastName: 'Phipp',
78
- hasIcon: true,
79
- avatar: _AccountIcon["default"]
80
- }, {
81
- email: 'mskilbeck3@bbc.co.uk',
82
- firstName: 'Gradey',
83
- lastName: 'Skilbeck',
84
- hasIcon: true,
85
- avatar: _AccountIcon["default"]
86
- }, {
87
- email: 'dstebbing1@msu.edu',
88
- firstName: 'Marnia',
89
- lastName: 'Stebbing',
90
- hasIcon: true,
91
- avatar: _AccountIcon["default"]
92
- }, {
93
- email: 'lsterley7@lulu.com',
94
- firstName: 'Joshua',
95
- lastName: 'Sterley',
96
- hasIcon: true,
97
- avatar: _AccountIcon["default"]
98
- }, {
99
- email: 'luttleyb@hugedomains.com',
100
- firstName: 'Jarrod',
101
- lastName: 'Uttley',
102
- hasIcon: true,
103
- avatar: _AccountIcon["default"]
104
- }, {
105
- email: 'lidelc@yelp.com',
106
- firstName: 'Andromache',
107
- lastName: 'Idel',
108
- hasIcon: true,
109
- avatar: _AccountIcon["default"]
110
- }];
111
40
  var sx = {
112
41
  wrapper: {
113
42
  px: 'lg',
@@ -116,16 +45,6 @@ var sx = {
116
45
  height: '900px',
117
46
  overflowY: 'scroll'
118
47
  },
119
- searchField: {
120
- position: 'fixed',
121
- mb: 'sm',
122
- width: '400px'
123
- },
124
- listElementWrapper: {
125
- px: 'md',
126
- bg: 'accent.99',
127
- justifyContent: 'center'
128
- },
129
48
  separator: {
130
49
  bg: 'accent.90'
131
50
  },
@@ -147,120 +66,83 @@ var sx = {
147
66
  itemValue: {
148
67
  fontWeight: 0,
149
68
  lineHeight: '18px',
150
- variant: 'base',
151
69
  mb: 'md'
152
70
  },
153
- listElement: {
154
- wrapper: {
155
- minHeight: '60px',
156
- pl: '14px'
157
- },
158
- iconWrapper: {
159
- mr: 'auto',
160
- alignItems: 'center'
71
+ panelHeader: {
72
+ container: {
73
+ bg: 'accent.99',
74
+ minHeight: 58,
75
+ ml: 0,
76
+ pl: 14,
77
+ pr: 'xs'
161
78
  },
162
- icon: {
163
- mr: 'md',
79
+ controls: {
164
80
  alignSelf: 'center',
165
- color: 'accent.40'
166
- },
167
- avatar: {
168
- width: '25px',
169
- height: '25px',
170
- mr: '14px'
81
+ ml: 'auto',
82
+ pr: 'sm'
171
83
  },
172
- title: {
173
- alignSelf: 'start',
174
- fontSize: 'md'
84
+ data: {
85
+ alignItems: 'center'
175
86
  },
176
87
  subtitle: {
88
+ alignSelf: 'start',
177
89
  fontSize: 'sm',
178
- my: '1px',
179
90
  lineHeight: '16px',
180
- alignSelf: 'start'
91
+ my: '1px'
181
92
  },
182
- menuWrapper: {
183
- alignSelf: 'center',
184
- pr: '4px'
185
- }
186
- }
187
- };
188
- var ListElement = function ListElement(_ref) {
189
- var item = _ref.item,
190
- isHoverable = _ref.isHoverable,
191
- onClosePanel = _ref.onClosePanel;
192
- var listItemRef = (0, _react.useRef)();
193
- var _useOverlappingMenuHo = (0, _useOverlappingMenuHoverState["default"])({
194
- listItemRef: listItemRef
195
- }),
196
- handleHoverEnd = _useOverlappingMenuHo.handleHoverEnd,
197
- handleHoverStart = _useOverlappingMenuHo.handleHoverStart,
198
- handleMenuHoverEnd = _useOverlappingMenuHo.handleMenuHoverEnd,
199
- handleMouseMove = _useOverlappingMenuHo.handleMouseMove,
200
- isHovered = _useOverlappingMenuHo.isHovered;
201
- return (0, _react2.jsx)(_index.ListItem, {
202
- isHovered: isHoverable && isHovered,
203
- isRow: true,
204
- onHoverEnd: handleHoverEnd,
205
- onHoverStart: handleHoverStart,
206
- onMouseMove: handleMouseMove,
207
- ref: listItemRef,
208
- sx: sx.listElement.wrapper
209
- }, (0, _react2.jsx)(_index.Box, {
210
- isRow: true,
211
- sx: sx.listElement.iconWrapper
212
- }, (0, _react2.jsx)(_index.Icon, {
213
- icon: item.avatar,
214
- size: "md",
215
- sx: sx.listElement.icon,
216
- title: {
217
- name: 'Account Icon'
218
- }
219
- }), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
220
- variant: "bodyStrong",
221
- sx: sx.listElement.title
222
- }, item.lastName, ",", ' ', item.firstName), (0, _react2.jsx)(_index.Text, {
223
- variant: "subtitle",
224
- sx: sx.listElement.subtitle
225
- }, item.email))), (0, _react2.jsx)(_index.Box, {
226
- isRow: true,
227
- sx: sx.listElement.menuWrapper
228
- }, (0, _react2.jsx)(_index.SwitchField, {
229
- "aria-label": "active user",
230
- isDefaultSelected: true,
231
- alignSelf: "center",
232
- mr: "sm"
233
- }), (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
234
- "aria-label": "more icon button",
235
- mr: onClosePanel ? 'sm' : 0
236
- }, (0, _react2.jsx)(_index.Icon, {
237
- icon: _MoreVertIcon["default"],
238
- size: "md",
239
93
  title: {
240
- name: 'More Vertical Icon'
241
- }
242
- })), (0, _react2.jsx)(_index.Menu, {
243
- onAction: handleHoverEnd,
244
- onHoverEnd: handleMenuHoverEnd,
245
- onHoverStart: handleHoverStart
246
- }, (0, _react2.jsx)(_reactStately.Item, {
247
- key: "enable"
248
- }, "Enable user"), (0, _react2.jsx)(_reactStately.Item, {
249
- key: "disable"
250
- }, "Disable user"), (0, _react2.jsx)(_reactStately.Item, {
251
- key: "delete"
252
- }, "Delete user"))), onClosePanel && (0, _react2.jsx)(_index.IconButton, {
253
- "aria-label": "close icon button",
254
- onPress: onClosePanel
255
- }, (0, _react2.jsx)(_index.Icon, {
256
- size: "sm",
257
- icon: _CloseIcon["default"],
258
- title: {
259
- name: 'Close Icon'
94
+ alignSelf: 'start',
95
+ fontSize: 'md'
96
+ },
97
+ wrapper: {
98
+ cursor: 'pointer',
99
+ display: 'flex',
100
+ flex: '1 1 0px',
101
+ ml: 'md'
260
102
  }
261
- }))));
103
+ }
262
104
  };
263
- var Default = function Default() {
105
+ var heading = 'Users';
106
+ 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.';
107
+ var title = (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
108
+ align: "center",
109
+ isRow: true,
110
+ mb: "xs",
111
+ role: "heading",
112
+ "aria-level": "1"
113
+ }, (0, _react2.jsx)(_index.Text, {
114
+ fontSize: "xx",
115
+ fontWeight: 3,
116
+ fontColor: "text.primary"
117
+ }, heading), (0, _react2.jsx)(_index.IconButton, {
118
+ "aria-label": "icon button",
119
+ ml: "sm",
120
+ variant: "inverted"
121
+ }, (0, _react2.jsx)(_index.Icon, {
122
+ icon: _PlusIcon["default"],
123
+ size: "sm"
124
+ }))), (0, _react2.jsx)(_index.Text, {
125
+ fontSize: "sm",
126
+ color: "text.secondary",
127
+ fontWeight: 0,
128
+ width: "800px"
129
+ }, description, (0, _react2.jsx)(_index.Link, {
130
+ href: "https://uilibrary.ping-eng.com/",
131
+ sx: {
132
+ fontSize: '13px'
133
+ }
134
+ }, " Learn more")));
135
+ var ListAndPanel = function ListAndPanel() {
136
+ // Example of items data structure
137
+ // const items = [
138
+ // {
139
+ // email: 'dburkitt5@columbia.edu',
140
+ // firstName: 'Nicola',
141
+ // lastName: 'Burkitt',
142
+ // icon: AccountIcon,
143
+ // },
144
+ // ]
145
+
264
146
  var _useState = (0, _react.useState)(),
265
147
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
266
148
  selectedItemId = _useState2[0],
@@ -273,8 +155,6 @@ var Default = function Default() {
273
155
  panelState = _useOverlayPanelState.state,
274
156
  onPanelClose = _useOverlayPanelState.onClose;
275
157
  var panelTriggerRef = (0, _react.useRef)();
276
- var heading = 'Users';
277
- 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.';
278
158
  var closePanelHandler = function closePanelHandler() {
279
159
  onPanelClose(panelState, panelTriggerRef);
280
160
  setSelectedItemId(-1);
@@ -282,7 +162,7 @@ var Default = function Default() {
282
162
  };
283
163
  var selectItemHandler = function selectItemHandler(e) {
284
164
  if (e.size) {
285
- setSelectedItemId((0, _findIndex["default"])(items).call(items, function (item) {
165
+ setSelectedItemId((0, _findIndex["default"])(_items.items).call(_items.items, function (item) {
286
166
  return item.email === e.currentKey;
287
167
  }));
288
168
  setSelectedKeys([e.currentKey]);
@@ -291,37 +171,6 @@ var Default = function Default() {
291
171
  closePanelHandler();
292
172
  }
293
173
  };
294
- var title = (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
295
- align: "center",
296
- isRow: true,
297
- mb: "xs",
298
- role: "heading",
299
- "aria-level": "1"
300
- }, (0, _react2.jsx)(_index.Text, {
301
- fontSize: "xx",
302
- fontWeight: 3,
303
- fontColor: "text.primary"
304
- }, heading), (0, _react2.jsx)(_index.IconButton, {
305
- "aria-label": "icon button",
306
- ml: "sm",
307
- variant: "inverted"
308
- }, (0, _react2.jsx)(_index.Icon, {
309
- icon: _PlusIcon["default"],
310
- size: "sm",
311
- title: {
312
- name: 'Plus Icon'
313
- }
314
- }))), (0, _react2.jsx)(_index.Text, {
315
- fontSize: "sm",
316
- color: "text.secondary",
317
- fontWeight: 0,
318
- width: "800px"
319
- }, description, (0, _react2.jsx)(_index.Link, {
320
- href: "https://uilibrary.ping-eng.com/",
321
- sx: {
322
- fontSize: '13px'
323
- }
324
- }, " Learn more")));
325
174
  return (0, _react2.jsx)(_index.Box, {
326
175
  sx: sx.wrapper
327
176
  }, title, (0, _react2.jsx)(_index.SearchField, {
@@ -334,23 +183,20 @@ var Default = function Default() {
334
183
  }), (0, _react2.jsx)(_index.Separator, {
335
184
  margin: 0
336
185
  }), (0, _react2.jsx)(_index.ListView, {
337
- items: items,
186
+ items: _items.items,
338
187
  onSelectionChange: selectItemHandler,
339
188
  ref: panelTriggerRef,
340
- selectedKeys: selectedKeys,
341
- isHoverable: false
189
+ selectedKeys: selectedKeys
342
190
  }, function (item) {
191
+ var _context;
343
192
  return (0, _react2.jsx)(_reactStately.Item, {
344
- key: item.email,
345
- textValue: item.email,
346
- hasSeparator: item.hasSeparator,
347
- listItemProps: {
348
- minHeight: 75,
349
- padding: 1
350
- }
193
+ key: item.email
351
194
  }, (0, _react2.jsx)(ListElement, {
352
- isHoverable: true,
353
- item: item
195
+ data: {
196
+ text: (0, _concat["default"])(_context = "".concat(item.lastName, ", ")).call(_context, item.firstName),
197
+ subtext: item.email,
198
+ icon: item.icon
199
+ }
354
200
  }));
355
201
  }), (0, _react2.jsx)(_index.OverlayPanel, {
356
202
  isOpen: panelState.isOpen,
@@ -362,12 +208,10 @@ var Default = function Default() {
362
208
  contain: true,
363
209
  restoreFocus: true,
364
210
  autoFocus: true
365
- }, (0, _react2.jsx)(_index.Box, {
366
- sx: sx.listElementWrapper
367
- }, (0, _react2.jsx)(ListElement, {
368
- item: selectedItemId >= 0 ? items[selectedItemId] : [],
211
+ }, (0, _react2.jsx)(PanelHeader, {
212
+ item: selectedItemId >= 0 ? _items.items[selectedItemId] : [],
369
213
  onClosePanel: closePanelHandler
370
- })), (0, _react2.jsx)(_index.Separator, {
214
+ }), (0, _react2.jsx)(_index.Separator, {
371
215
  margin: 0,
372
216
  sx: sx.separator
373
217
  }), (0, _react2.jsx)(_index.Box, {
@@ -387,36 +231,120 @@ var Default = function Default() {
387
231
  variant: "inverted",
388
232
  "aria-label": "pencil icon button",
389
233
  sx: sx.iconButton
390
- }, (0, _react2.jsx)(_PencilIcon["default"], {
391
- size: 20
234
+ }, (0, _react2.jsx)(_index.Icon, {
235
+ icon: _PencilIcon["default"],
236
+ size: "sm"
392
237
  })), (0, _react2.jsx)(_index.Text, {
393
- sx: sx.itemLabel,
394
- variant: "base"
238
+ sx: sx.itemLabel
395
239
  }, "Full Name"), (0, _react2.jsx)(_index.Text, {
396
- sx: sx.itemValue,
397
- variant: "base"
398
- }, items[selectedItemId].firstName, ' ', items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
399
- sx: sx.itemLabel,
400
- variant: "base"
240
+ sx: sx.itemValue
241
+ }, _items.items[selectedItemId].firstName, ' ', _items.items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
242
+ sx: sx.itemLabel
401
243
  }, "First Name"), (0, _react2.jsx)(_index.Text, {
402
- sx: sx.itemValue,
403
- variant: "base"
404
- }, items[selectedItemId].firstName), (0, _react2.jsx)(_index.Text, {
405
- sx: sx.itemLabel,
406
- variant: "base"
244
+ sx: sx.itemValue
245
+ }, _items.items[selectedItemId].firstName), (0, _react2.jsx)(_index.Text, {
246
+ sx: sx.itemLabel
407
247
  }, "Last Name"), (0, _react2.jsx)(_index.Text, {
408
- sx: sx.itemValue,
409
- variant: "base"
410
- }, items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
411
- sx: sx.itemLabel,
412
- variant: "base"
248
+ sx: sx.itemValue
249
+ }, _items.items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
250
+ sx: sx.itemLabel
413
251
  }, "Email"), (0, _react2.jsx)(_index.Text, {
414
- sx: sx.itemValue,
415
- variant: "base"
416
- }, items[selectedItemId].email))), (0, _react2.jsx)(_index.Tab, {
252
+ sx: sx.itemValue
253
+ }, _items.items[selectedItemId].email))), (0, _react2.jsx)(_index.Tab, {
417
254
  title: "Group Memberships"
418
255
  }, (0, _react2.jsx)(_index.Text, null, "Group Memberships")), (0, _react2.jsx)(_index.Tab, {
419
256
  title: "Account Info"
420
257
  }, (0, _react2.jsx)(_index.Text, null, "Account Info")))))));
421
258
  };
422
- exports.Default = Default;
259
+ exports.ListAndPanel = ListAndPanel;
260
+ var ListElement = function ListElement(_ref) {
261
+ var _ref$data = _ref.data,
262
+ data = _ref$data === void 0 ? {
263
+ subtext: 'dburkitt5@columbia.edu',
264
+ text: 'Burkitt, Nicola',
265
+ icon: _AccountIcon["default"]
266
+ } : _ref$data;
267
+ var listItemRef = (0, _react.useRef)();
268
+ var _useOverlappingMenuHo = (0, _hooks.useOverlappingMenuHoverState)({
269
+ listItemRef: listItemRef
270
+ }),
271
+ handleHoverEnd = _useOverlappingMenuHo.handleHoverEnd,
272
+ handleHoverStart = _useOverlappingMenuHo.handleHoverStart,
273
+ handleMenuHoverEnd = _useOverlappingMenuHo.handleMenuHoverEnd,
274
+ handleMouseMove = _useOverlappingMenuHo.handleMouseMove,
275
+ isHovered = _useOverlappingMenuHo.isHovered;
276
+ return (0, _react2.jsx)(_index.ListViewItem, {
277
+ data: data,
278
+ isHovered: isHovered,
279
+ onHoverEnd: handleHoverEnd,
280
+ onHoverStart: handleHoverStart,
281
+ onMouseMove: handleMouseMove,
282
+ ref: listItemRef
283
+ }, (0, _react2.jsx)(_index.ListViewItemSwitchField, null), (0, _react2.jsx)(_index.ListViewItemMenu, {
284
+ onAction: handleHoverEnd,
285
+ onHoverEnd: handleMenuHoverEnd,
286
+ onHoverStart: handleHoverStart
287
+ }, (0, _react2.jsx)(_reactStately.Item, {
288
+ key: "enable"
289
+ }, "Enable user"), (0, _react2.jsx)(_reactStately.Item, {
290
+ key: "disable"
291
+ }, "Disable user"), (0, _react2.jsx)(_reactStately.Item, {
292
+ key: "delete"
293
+ }, "Delete user")));
294
+ };
295
+ exports.ListElement = ListElement;
296
+ var PanelHeader = function PanelHeader(_ref2) {
297
+ var _context2;
298
+ var _ref2$item = _ref2.item,
299
+ item = _ref2$item === void 0 ? {
300
+ email: 'dburkitt5@columbia.edu',
301
+ icon: _AccountIcon["default"],
302
+ firstName: 'John',
303
+ lastName: 'Doe'
304
+ } : _ref2$item,
305
+ onClosePanel = _ref2.onClosePanel;
306
+ var email = item.email,
307
+ firstName = item.firstName,
308
+ lastName = item.lastName;
309
+ var text = (0, _concat["default"])(_context2 = "".concat(lastName, ", ")).call(_context2, firstName);
310
+ return (0, _react2.jsx)(_index.Box, {
311
+ sx: sx.panelHeader.container
312
+ }, (0, _react2.jsx)(_index.Box, {
313
+ isRow: true,
314
+ sx: sx.panelHeader.wrapper
315
+ }, (0, _react2.jsx)(_index.Box, {
316
+ isRow: true,
317
+ sx: sx.panelHeader.data
318
+ }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
319
+ variant: "bodyStrong",
320
+ sx: sx.panelHeader.title
321
+ }, text), (0, _react2.jsx)(_index.Text, {
322
+ variant: "subtitle",
323
+ sx: sx.panelHeader.subtitle
324
+ }, email))), (0, _react2.jsx)(_index.Box, {
325
+ isRow: true,
326
+ sx: sx.panelHeader.controls
327
+ }, (0, _react2.jsx)(_index.SwitchField, {
328
+ isDefaultSelected: true,
329
+ alignSelf: "center",
330
+ mr: "xs"
331
+ }), (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
332
+ "aria-label": "more"
333
+ }, (0, _react2.jsx)(_index.Icon, {
334
+ icon: _MoreVertIcon["default"],
335
+ size: "md"
336
+ })), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_reactStately.Item, {
337
+ key: "enable"
338
+ }, "Enable user"), (0, _react2.jsx)(_reactStately.Item, {
339
+ key: "disable"
340
+ }, "Disable user"), (0, _react2.jsx)(_reactStately.Item, {
341
+ key: "delete"
342
+ }, "Delete user"))), (0, _react2.jsx)(_index.IconButton, {
343
+ "aria-label": "close icon button",
344
+ onPress: onClosePanel
345
+ }, (0, _react2.jsx)(_index.Icon, {
346
+ size: "md",
347
+ icon: _CloseIcon["default"]
348
+ })))));
349
+ };
350
+ exports.PanelHeader = PanelHeader;
@@ -16,6 +16,7 @@ var _EyeOffOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/EyeOf
16
16
  var _EyeOutlineIcon = _interopRequireDefault(require("@pingux/mdi-react/EyeOutlineIcon"));
17
17
  var _hooks = require("../hooks");
18
18
  var _index = require("../index");
19
+ var _figmaLinks = require("../utils/designUtils/figmaLinks.js");
19
20
  var _react2 = require("@emotion/react");
20
21
  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
22
  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; }
@@ -98,4 +99,10 @@ var Default = function Default(_ref) {
98
99
  }
99
100
  }))));
100
101
  };
101
- exports.Default = Default;
102
+ exports.Default = Default;
103
+ Default.parameters = {
104
+ design: {
105
+ type: 'figma',
106
+ url: _figmaLinks.FIGMA_LINKS.maskedValue["default"]
107
+ }
108
+ };
@@ -15,12 +15,12 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/hel
15
15
  var _react = _interopRequireWildcard(require("react"));
16
16
  var _reactStately = require("react-stately");
17
17
  var _FormSelectIcon = _interopRequireDefault(require("@pingux/mdi-react/FormSelectIcon"));
18
- var _index = require("../../index");
18
+ var _index = require("../index");
19
19
  var _react2 = require("@emotion/react");
20
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
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
22
  var _default = {
23
- title: 'Experimental/recipes/ScrollableListView'
23
+ title: 'Recipes/Scrollable List View'
24
24
  };
25
25
  exports["default"] = _default;
26
26
  var ScrollableListView = function ScrollableListView() {
@@ -64,6 +64,9 @@ var FIGMA_LINKS = {
64
64
  loader: {
65
65
  "default": 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?type=design&node-id=13675-33113&t=8Wwd3tIBh3GEjCJB-0'
66
66
  },
67
+ maskedValue: {
68
+ "default": 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?node-id=10328%3A31859&mode=dev'
69
+ },
67
70
  menu: {
68
71
  "default": 'https://www.figma.com/file/bpbEw54gTTcdIiZs4PKK1p/Astro-Specs?type=design&node-id=12726-41720&t=8Wwd3tIBh3GEjCJB-0'
69
72
  },
@@ -23,9 +23,9 @@ import { useListState } from '@react-stately/list';
23
23
  import PropTypes from 'prop-types';
24
24
  import loadingStates from '../../utils/devUtils/constants/loadingStates';
25
25
  import { isIterableProp } from '../../utils/devUtils/props/isIterable';
26
- import ListViewItem from '../ListViewItem';
27
26
  import Loader from '../Loader';
28
27
  import { ListViewContext } from './ListViewContext';
28
+ import ListViewItem from './ListViewItem';
29
29
  import { jsx as ___EmotionJSX } from "@emotion/react";
30
30
  export var collectionTypes = {
31
31
  ITEM: 'item',
@@ -15,7 +15,7 @@ It shouldn’t be used to list items that only have a single piece of informatio
15
15
 
16
16
  ### Required Components
17
17
 
18
- This component requires [ListItem](./?path=/docs/components-listitem--default).
18
+ This component requires [ListViewItem](./?path=/docs/components-listviewitem--docs).
19
19
 
20
20
  ### Accessibility
21
21
 
@@ -42,3 +42,6 @@ This component uses the following attributes to assist screen readers:
42
42
  - The **`aria-multiselectable`** attribute is used to indicate that users can toggle between items in the grid.
43
43
  - Each ListViewItem uses the **`aria-rowindex`** attribute, which defines a component's position in the total number of rows.
44
44
  - Each item also uses the aria-label, **`aria-colindex`** attributes to indicate the component’s column position and aria-selected to indicate the currently selected state.
45
+
46
+ #### NOTES:
47
+ - See the [ListAndPanel](./?path=/docs/recipes-listandpanel--docs) and [ScrollableListView](./?path=/docs/recipes-scrollablelistview--docs) recipes for more detailed examples.