@pingux/astro 1.42.1 → 1.42.2-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/components/ListItem/ListItem.js +41 -16
- package/lib/cjs/components/ListItem/ListItem.stories.js +108 -27
- package/lib/cjs/components/ListItem/ListItem.test.js +55 -11
- package/lib/cjs/components/ListView/ListView.js +8 -1
- package/lib/cjs/components/ListViewItem/ListViewItem.js +4 -2
- package/lib/cjs/components/Menu/Menu.js +19 -5
- package/lib/cjs/components/Menu/Menu.stories.js +24 -2
- package/lib/cjs/components/SwitchField/SwitchField.js +4 -2
- package/lib/cjs/recipes/ListAndPanel.stories.js +119 -57
- package/lib/cjs/styles/variants/boxes.js +4 -1
- package/lib/cjs/utils/devUtils/props/hoverProps.js +69 -0
- package/lib/components/ListItem/ListItem.js +33 -13
- package/lib/components/ListItem/ListItem.stories.js +74 -8
- package/lib/components/ListItem/ListItem.test.js +46 -11
- package/lib/components/ListView/ListView.js +8 -1
- package/lib/components/ListViewItem/ListViewItem.js +4 -2
- package/lib/components/Menu/Menu.js +17 -5
- package/lib/components/Menu/Menu.stories.js +17 -2
- package/lib/components/SwitchField/SwitchField.js +4 -2
- package/lib/recipes/ListAndPanel.stories.js +85 -22
- package/lib/styles/variants/boxes.js +4 -1
- package/lib/utils/devUtils/props/hoverProps.js +47 -0
- package/package.json +1 -1
- package/NOTICE.html +0 -4707
@@ -36,7 +36,7 @@ var _PencilIcon = _interopRequireDefault(require("mdi-react/PencilIcon"));
|
|
36
36
|
|
37
37
|
var _PlusIcon = _interopRequireDefault(require("mdi-react/PlusIcon"));
|
38
38
|
|
39
|
-
var
|
39
|
+
var _ = require("../");
|
40
40
|
|
41
41
|
var _hooks = require("../hooks");
|
42
42
|
|
@@ -173,7 +173,8 @@ var sx = {
|
|
173
173
|
},
|
174
174
|
listElement: {
|
175
175
|
wrapper: {
|
176
|
-
minHeight: '60px'
|
176
|
+
minHeight: '60px',
|
177
|
+
pl: '14px'
|
177
178
|
},
|
178
179
|
iconWrapper: {
|
179
180
|
mr: 'auto',
|
@@ -187,7 +188,7 @@ var sx = {
|
|
187
188
|
avatar: {
|
188
189
|
width: '25px',
|
189
190
|
height: '25px',
|
190
|
-
mr: '
|
191
|
+
mr: '14px'
|
191
192
|
},
|
192
193
|
title: {
|
193
194
|
alignSelf: 'start',
|
@@ -200,69 +201,127 @@ var sx = {
|
|
200
201
|
alignSelf: 'start'
|
201
202
|
},
|
202
203
|
menuWrapper: {
|
203
|
-
alignSelf: 'center'
|
204
|
+
alignSelf: 'center',
|
205
|
+
pr: '4px'
|
204
206
|
}
|
205
207
|
}
|
206
208
|
};
|
207
209
|
|
208
210
|
var ListElement = function ListElement(_ref) {
|
209
211
|
var item = _ref.item,
|
212
|
+
isHoverable = _ref.isHoverable,
|
210
213
|
onClosePanel = _ref.onClosePanel;
|
211
|
-
|
214
|
+
|
215
|
+
var _useState = (0, _react.useState)(false),
|
216
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
217
|
+
isHovered = _useState2[0],
|
218
|
+
setIsHovered = _useState2[1];
|
219
|
+
|
220
|
+
var _useState3 = (0, _react.useState)({}),
|
221
|
+
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
222
|
+
mousePosition = _useState4[0],
|
223
|
+
setMousePosition = _useState4[1];
|
224
|
+
|
225
|
+
var listItemRef = (0, _react.useRef)();
|
226
|
+
|
227
|
+
var handleMenuHoverEnd = function handleMenuHoverEnd() {
|
228
|
+
var currentPositionX = mousePosition.currentPositionX,
|
229
|
+
currentPositionY = mousePosition.currentPositionY;
|
230
|
+
|
231
|
+
var _listItemRef$current$ = listItemRef.current.getBoundingClientRect(),
|
232
|
+
height = _listItemRef$current$.height,
|
233
|
+
right = _listItemRef$current$.right,
|
234
|
+
top = _listItemRef$current$.top;
|
235
|
+
|
236
|
+
var hasMovedBackToRow = currentPositionY < top + height && currentPositionX < right;
|
237
|
+
|
238
|
+
if (hasMovedBackToRow) {
|
239
|
+
setIsHovered(true);
|
240
|
+
return;
|
241
|
+
}
|
242
|
+
|
243
|
+
setIsHovered(false);
|
244
|
+
};
|
245
|
+
|
246
|
+
var handleMouseMove = function handleMouseMove(e) {
|
247
|
+
setMousePosition({
|
248
|
+
currentPositionX: e.clientX,
|
249
|
+
currentPositionY: e.clientY
|
250
|
+
});
|
251
|
+
};
|
252
|
+
|
253
|
+
var handleHoveEnd = function handleHoveEnd() {
|
254
|
+
setIsHovered(false);
|
255
|
+
};
|
256
|
+
|
257
|
+
var handleHoveStart = function handleHoveStart() {
|
258
|
+
setIsHovered(true);
|
259
|
+
};
|
260
|
+
|
261
|
+
return (0, _react2.jsx)(_.ListItem, {
|
262
|
+
isHovered: isHoverable && isHovered,
|
212
263
|
isRow: true,
|
264
|
+
onHoverEnd: handleHoveEnd,
|
265
|
+
onHoverStart: handleHoveStart,
|
266
|
+
onMouseMove: handleMouseMove,
|
267
|
+
ref: listItemRef,
|
213
268
|
sx: sx.listElement.wrapper
|
214
|
-
}, (0, _react2.jsx)(
|
269
|
+
}, (0, _react2.jsx)(_.Box, {
|
215
270
|
isRow: true,
|
216
271
|
sx: sx.listElement.iconWrapper
|
217
|
-
}, (0, _react2.jsx)(
|
272
|
+
}, (0, _react2.jsx)(_.Icon, {
|
218
273
|
icon: item.avatar,
|
219
274
|
size: "md",
|
220
275
|
sx: sx.listElement.icon
|
221
|
-
}), (0, _react2.jsx)(
|
276
|
+
}), (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Text, {
|
222
277
|
variant: "bodyStrong",
|
223
278
|
sx: sx.listElement.title
|
224
|
-
}, item.lastName, ", ", item.firstName), (0, _react2.jsx)(
|
279
|
+
}, item.lastName, ", ", item.firstName), (0, _react2.jsx)(_.Text, {
|
225
280
|
variant: "subtitle",
|
226
281
|
sx: sx.listElement.subtitle
|
227
|
-
}, item.email))), (0, _react2.jsx)(
|
282
|
+
}, item.email))), (0, _react2.jsx)(_.Box, {
|
228
283
|
isRow: true,
|
229
284
|
sx: sx.listElement.menuWrapper
|
230
|
-
}, (0, _react2.jsx)(
|
285
|
+
}, (0, _react2.jsx)(_.SwitchField, {
|
231
286
|
"aria-label": "active user",
|
232
287
|
isDefaultSelected: true,
|
233
288
|
alignSelf: "center",
|
234
289
|
mr: "sm"
|
235
|
-
}), (0, _react2.jsx)(
|
290
|
+
}), (0, _react2.jsx)(_.PopoverMenu, null, (0, _react2.jsx)(_.IconButton, {
|
236
291
|
"aria-label": "more icon button",
|
237
292
|
mr: onClosePanel ? 'sm' : 0
|
238
|
-
}, (0, _react2.jsx)(
|
293
|
+
}, (0, _react2.jsx)(_.Icon, {
|
239
294
|
icon: _MoreVertIcon["default"],
|
240
295
|
size: "md"
|
241
|
-
})), (0, _react2.jsx)(
|
296
|
+
})), (0, _react2.jsx)(_.Menu, {
|
297
|
+
onAction: handleHoveEnd,
|
298
|
+
onHoverEnd: handleMenuHoverEnd,
|
299
|
+
onHoverStart: handleHoveStart
|
300
|
+
}, (0, _react2.jsx)(_collections.Item, {
|
242
301
|
key: "enable"
|
243
302
|
}, "Enable user"), (0, _react2.jsx)(_collections.Item, {
|
244
303
|
key: "disable"
|
245
304
|
}, "Disable user"), (0, _react2.jsx)(_collections.Item, {
|
246
305
|
key: "delete"
|
247
|
-
}, "Delete user"))), onClosePanel && (0, _react2.jsx)(
|
306
|
+
}, "Delete user"))), onClosePanel && (0, _react2.jsx)(_.IconButton, {
|
248
307
|
"aria-label": "close icon button",
|
249
308
|
onPress: onClosePanel
|
250
|
-
}, (0, _react2.jsx)(
|
309
|
+
}, (0, _react2.jsx)(_.Icon, {
|
251
310
|
size: "sm",
|
252
311
|
icon: _CloseIcon["default"]
|
253
312
|
}))));
|
254
313
|
};
|
255
314
|
|
256
315
|
var Default = function Default() {
|
257
|
-
var
|
258
|
-
|
259
|
-
selectedItemId =
|
260
|
-
setSelectedItemId =
|
316
|
+
var _useState5 = (0, _react.useState)(),
|
317
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
318
|
+
selectedItemId = _useState6[0],
|
319
|
+
setSelectedItemId = _useState6[1];
|
261
320
|
|
262
|
-
var
|
263
|
-
|
264
|
-
selectedKeys =
|
265
|
-
setSelectedKeys =
|
321
|
+
var _useState7 = (0, _react.useState)(),
|
322
|
+
_useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
|
323
|
+
selectedKeys = _useState8[0],
|
324
|
+
setSelectedKeys = _useState8[1];
|
266
325
|
|
267
326
|
var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)(),
|
268
327
|
panelState = _useOverlayPanelState.state,
|
@@ -290,62 +349,65 @@ var Default = function Default() {
|
|
290
349
|
}
|
291
350
|
};
|
292
351
|
|
293
|
-
|
294
|
-
sx: sx.wrapper
|
295
|
-
}, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
|
352
|
+
var title = (0, _react2.jsx)(_.Box, null, (0, _react2.jsx)(_.Box, {
|
296
353
|
align: "center",
|
297
354
|
isRow: true,
|
298
355
|
mb: "xs",
|
299
356
|
role: "heading",
|
300
357
|
"aria-level": "1"
|
301
|
-
}, (0, _react2.jsx)(
|
358
|
+
}, (0, _react2.jsx)(_.Text, {
|
302
359
|
fontSize: "xx",
|
303
360
|
fontWeight: 3,
|
304
361
|
fontColor: "text.primary"
|
305
|
-
}, heading), (0, _react2.jsx)(
|
362
|
+
}, heading), (0, _react2.jsx)(_.IconButton, {
|
306
363
|
"aria-label": "icon button",
|
307
364
|
ml: "sm",
|
308
365
|
variant: "inverted"
|
309
|
-
}, (0, _react2.jsx)(
|
366
|
+
}, (0, _react2.jsx)(_.Icon, {
|
310
367
|
icon: _PlusIcon["default"],
|
311
368
|
size: "sm"
|
312
|
-
}))), (0, _react2.jsx)(
|
369
|
+
}))), (0, _react2.jsx)(_.Text, {
|
313
370
|
fontSize: "sm",
|
314
371
|
color: "text.secondary",
|
315
372
|
fontWeight: 0,
|
316
373
|
width: "800px"
|
317
|
-
}, description, (0, _react2.jsx)(
|
374
|
+
}, description, (0, _react2.jsx)(_.Link, {
|
318
375
|
href: "https://uilibrary.ping-eng.com/",
|
319
376
|
sx: {
|
320
377
|
fontSize: '13px'
|
321
378
|
}
|
322
|
-
}, " Learn more")))
|
379
|
+
}, " Learn more")));
|
380
|
+
return (0, _react2.jsx)(_.Box, {
|
381
|
+
sx: sx.wrapper
|
382
|
+
}, title, (0, _react2.jsx)(_.SearchField, {
|
323
383
|
position: "fixed",
|
324
384
|
mb: "lg",
|
325
385
|
mt: "lg",
|
326
386
|
width: "400px",
|
327
387
|
placeholder: "Search",
|
328
388
|
"aria-label": "search"
|
329
|
-
}), (0, _react2.jsx)(
|
389
|
+
}), (0, _react2.jsx)(_.Separator, {
|
330
390
|
margin: 0
|
331
|
-
}), (0, _react2.jsx)(
|
391
|
+
}), (0, _react2.jsx)(_.ListView, {
|
332
392
|
items: items,
|
333
393
|
onSelectionChange: selectItemHandler,
|
334
394
|
ref: panelTriggerRef,
|
335
|
-
selectedKeys: selectedKeys
|
395
|
+
selectedKeys: selectedKeys,
|
396
|
+
isHoverable: false
|
336
397
|
}, function (item) {
|
337
398
|
return (0, _react2.jsx)(_collections.Item, {
|
338
399
|
key: item.email,
|
339
400
|
textValue: item.email,
|
340
|
-
hasSeparator:
|
401
|
+
hasSeparator: item.hasSeparator,
|
341
402
|
listItemProps: {
|
342
|
-
|
343
|
-
|
403
|
+
minHeight: 75,
|
404
|
+
padding: 1
|
344
405
|
}
|
345
406
|
}, (0, _react2.jsx)(ListElement, {
|
407
|
+
isHoverable: true,
|
346
408
|
item: item
|
347
409
|
}));
|
348
|
-
}), (0, _react2.jsx)(
|
410
|
+
}), (0, _react2.jsx)(_.OverlayPanel, {
|
349
411
|
isOpen: panelState.isOpen,
|
350
412
|
state: panelState,
|
351
413
|
triggerRef: panelTriggerRef,
|
@@ -355,17 +417,17 @@ var Default = function Default() {
|
|
355
417
|
contain: true,
|
356
418
|
restoreFocus: true,
|
357
419
|
autoFocus: true
|
358
|
-
}, (0, _react2.jsx)(
|
420
|
+
}, (0, _react2.jsx)(_.Box, {
|
359
421
|
sx: sx.listElementWrapper
|
360
422
|
}, (0, _react2.jsx)(ListElement, {
|
361
423
|
item: selectedItemId >= 0 ? items[selectedItemId] : [],
|
362
424
|
onClosePanel: closePanelHandler
|
363
|
-
})), (0, _react2.jsx)(
|
425
|
+
})), (0, _react2.jsx)(_.Separator, {
|
364
426
|
margin: 0,
|
365
427
|
sx: sx.separator
|
366
|
-
}), (0, _react2.jsx)(
|
428
|
+
}), (0, _react2.jsx)(_.Box, {
|
367
429
|
sx: sx.tabsWrapper
|
368
|
-
}, (0, _react2.jsx)(
|
430
|
+
}, (0, _react2.jsx)(_.Tabs, {
|
369
431
|
tabListProps: {
|
370
432
|
justifyContent: 'center'
|
371
433
|
},
|
@@ -374,43 +436,43 @@ var Default = function Default() {
|
|
374
436
|
position: 'relative'
|
375
437
|
}
|
376
438
|
}
|
377
|
-
}, (0, _react2.jsx)(
|
439
|
+
}, (0, _react2.jsx)(_.Tab, {
|
378
440
|
title: "Profile"
|
379
|
-
}, selectedItemId >= 0 && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(
|
441
|
+
}, selectedItemId >= 0 && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_.IconButton, {
|
380
442
|
variant: "inverted",
|
381
443
|
"aria-label": "pencil icon button",
|
382
444
|
sx: sx.iconButton
|
383
445
|
}, (0, _react2.jsx)(_PencilIcon["default"], {
|
384
446
|
size: 20
|
385
|
-
})), (0, _react2.jsx)(
|
447
|
+
})), (0, _react2.jsx)(_.Text, {
|
386
448
|
sx: sx.itemLabel,
|
387
449
|
variant: "base"
|
388
|
-
}, "Full Name"), (0, _react2.jsx)(
|
450
|
+
}, "Full Name"), (0, _react2.jsx)(_.Text, {
|
389
451
|
sx: sx.itemValue,
|
390
452
|
variant: "base"
|
391
|
-
}, items[selectedItemId].firstName, " ", items[selectedItemId].lastName), (0, _react2.jsx)(
|
453
|
+
}, items[selectedItemId].firstName, " ", items[selectedItemId].lastName), (0, _react2.jsx)(_.Text, {
|
392
454
|
sx: sx.itemLabel,
|
393
455
|
variant: "base"
|
394
|
-
}, "First Name"), (0, _react2.jsx)(
|
456
|
+
}, "First Name"), (0, _react2.jsx)(_.Text, {
|
395
457
|
sx: sx.itemValue,
|
396
458
|
variant: "base"
|
397
|
-
}, items[selectedItemId].firstName), (0, _react2.jsx)(
|
459
|
+
}, items[selectedItemId].firstName), (0, _react2.jsx)(_.Text, {
|
398
460
|
sx: sx.itemLabel,
|
399
461
|
variant: "base"
|
400
|
-
}, "Last Name"), (0, _react2.jsx)(
|
462
|
+
}, "Last Name"), (0, _react2.jsx)(_.Text, {
|
401
463
|
sx: sx.itemValue,
|
402
464
|
variant: "base"
|
403
|
-
}, items[selectedItemId].lastName), (0, _react2.jsx)(
|
465
|
+
}, items[selectedItemId].lastName), (0, _react2.jsx)(_.Text, {
|
404
466
|
sx: sx.itemLabel,
|
405
467
|
variant: "base"
|
406
|
-
}, "Email"), (0, _react2.jsx)(
|
468
|
+
}, "Email"), (0, _react2.jsx)(_.Text, {
|
407
469
|
sx: sx.itemValue,
|
408
470
|
variant: "base"
|
409
|
-
}, items[selectedItemId].email))), (0, _react2.jsx)(
|
471
|
+
}, items[selectedItemId].email))), (0, _react2.jsx)(_.Tab, {
|
410
472
|
title: "Group Memberships"
|
411
|
-
}, (0, _react2.jsx)(
|
473
|
+
}, (0, _react2.jsx)(_.Text, null, "Group Memberships")), (0, _react2.jsx)(_.Tab, {
|
412
474
|
title: "Account Info"
|
413
|
-
}, (0, _react2.jsx)(
|
475
|
+
}, (0, _react2.jsx)(_.Text, null, "Account Info"))))))));
|
414
476
|
};
|
415
477
|
|
416
478
|
exports.Default = Default;
|
@@ -0,0 +1,69 @@
|
|
1
|
+
"use strict";
|
2
|
+
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
4
|
+
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
6
|
+
|
7
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
8
|
+
|
9
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
10
|
+
|
11
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
12
|
+
|
13
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
14
|
+
|
15
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
16
|
+
|
17
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
18
|
+
|
19
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
20
|
+
|
21
|
+
_Object$defineProperty(exports, "__esModule", {
|
22
|
+
value: true
|
23
|
+
});
|
24
|
+
|
25
|
+
exports.onHoverPropTypes = exports.onHoverArgTypes = exports.baseDocSettings = void 0;
|
26
|
+
|
27
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
28
|
+
|
29
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
30
|
+
|
31
|
+
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; }
|
32
|
+
|
33
|
+
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; }
|
34
|
+
|
35
|
+
var descriptions = {
|
36
|
+
onHoverStart: 'Handler that is called when a hover interaction starts.',
|
37
|
+
onHoverEnd: 'Handler that is called when a hover interaction ends.',
|
38
|
+
onHoverChange: 'Handler that is called when the hover state changes.'
|
39
|
+
};
|
40
|
+
var baseDocSettings = {
|
41
|
+
type: {
|
42
|
+
summary: 'func'
|
43
|
+
},
|
44
|
+
control: {
|
45
|
+
type: null
|
46
|
+
},
|
47
|
+
table: {
|
48
|
+
category: 'Hover Handlers'
|
49
|
+
}
|
50
|
+
};
|
51
|
+
exports.baseDocSettings = baseDocSettings;
|
52
|
+
var onHoverArgTypes = {
|
53
|
+
'onHoverStart': _objectSpread({
|
54
|
+
description: descriptions.onHoverStart
|
55
|
+
}, baseDocSettings),
|
56
|
+
'onHoverEnd': _objectSpread({
|
57
|
+
description: descriptions.onHoverEnd
|
58
|
+
}, baseDocSettings),
|
59
|
+
'onHoverChange': _objectSpread({
|
60
|
+
description: descriptions.onHoverChange
|
61
|
+
}, baseDocSettings)
|
62
|
+
};
|
63
|
+
exports.onHoverArgTypes = onHoverArgTypes;
|
64
|
+
var onHoverPropTypes = {
|
65
|
+
onHoverStart: _propTypes["default"].func,
|
66
|
+
onHoverEnd: _propTypes["default"].func,
|
67
|
+
onHoverChange: _propTypes["default"].func
|
68
|
+
};
|
69
|
+
exports.onHoverPropTypes = onHoverPropTypes;
|
@@ -1,26 +1,48 @@
|
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
1
10
|
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
2
11
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
3
|
-
var _excluded = ["children", "className", "isSelected"];
|
12
|
+
var _excluded = ["children", "className", "isHovered", "isSelected", "onHoverChange", "onHoverEnd", "onHoverStart"];
|
13
|
+
|
14
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
15
|
+
|
16
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
17
|
+
|
4
18
|
import React, { forwardRef } from 'react';
|
5
19
|
import PropTypes from 'prop-types';
|
6
20
|
import { useHover } from '@react-aria/interactions';
|
7
21
|
import Box from '../Box/Box';
|
8
22
|
import { useStatusClasses } from '../../hooks';
|
23
|
+
import { onHoverPropTypes } from '../../utils/devUtils/props/hoverProps';
|
9
24
|
/**
|
10
25
|
* List Item component.
|
11
26
|
* Accepts most of the styling props from [styled-system](https://styled-system.com/table).
|
12
27
|
*/
|
13
28
|
|
14
29
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
15
|
-
var ListItem = /*#__PURE__*/forwardRef(function (
|
16
|
-
var children =
|
17
|
-
className =
|
18
|
-
|
19
|
-
|
30
|
+
var ListItem = /*#__PURE__*/forwardRef(function (_ref, ref) {
|
31
|
+
var children = _ref.children,
|
32
|
+
className = _ref.className,
|
33
|
+
isHovered = _ref.isHovered,
|
34
|
+
isSelected = _ref.isSelected,
|
35
|
+
onHoverChange = _ref.onHoverChange,
|
36
|
+
onHoverEnd = _ref.onHoverEnd,
|
37
|
+
onHoverStart = _ref.onHoverStart,
|
38
|
+
others = _objectWithoutProperties(_ref, _excluded);
|
20
39
|
|
21
|
-
var _useHover = useHover(
|
22
|
-
|
23
|
-
|
40
|
+
var _useHover = useHover({
|
41
|
+
onHoverChange: onHoverChange,
|
42
|
+
onHoverEnd: onHoverEnd,
|
43
|
+
onHoverStart: onHoverStart
|
44
|
+
}),
|
45
|
+
hoverProps = _useHover.hoverProps;
|
24
46
|
|
25
47
|
var _useStatusClasses = useStatusClasses(className, {
|
26
48
|
isHovered: isHovered,
|
@@ -30,14 +52,12 @@ var ListItem = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
30
52
|
|
31
53
|
return ___EmotionJSX(Box, _extends({
|
32
54
|
className: classNames,
|
33
|
-
role: "listitem",
|
34
55
|
ref: ref,
|
35
|
-
as: "li",
|
36
56
|
variant: "boxes.listItem",
|
37
57
|
isRow: true
|
38
58
|
}, hoverProps, others), children);
|
39
59
|
});
|
40
|
-
ListItem.propTypes = {
|
60
|
+
ListItem.propTypes = _objectSpread({
|
41
61
|
/**
|
42
62
|
* A list of class names to apply to the element
|
43
63
|
*/
|
@@ -47,7 +67,7 @@ ListItem.propTypes = {
|
|
47
67
|
* Sets the selected state of the ListItem
|
48
68
|
*/
|
49
69
|
isSelected: PropTypes.bool
|
50
|
-
};
|
70
|
+
}, onHoverPropTypes);
|
51
71
|
ListItem.defaultProps = {
|
52
72
|
isSelected: false
|
53
73
|
};
|
@@ -1,12 +1,24 @@
|
|
1
|
-
import
|
1
|
+
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
|
2
|
+
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
|
3
|
+
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
|
4
|
+
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
|
5
|
+
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
|
6
|
+
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
|
7
|
+
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
|
8
|
+
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
|
9
|
+
import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
10
|
+
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
11
|
+
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
12
|
+
|
13
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
14
|
+
|
15
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
16
|
+
|
17
|
+
import React, { useState } from 'react';
|
2
18
|
import AccountIcon from 'mdi-react/AccountIcon';
|
3
19
|
import MoreVertIcon from 'mdi-react/MoreVertIcon';
|
4
|
-
import ListItem from '
|
5
|
-
import
|
6
|
-
import Icon from '../Icon';
|
7
|
-
import IconButton from '../IconButton';
|
8
|
-
import Text from '../Text';
|
9
|
-
import Separator from '../Separator';
|
20
|
+
import { Box, Icon, IconButton, ListItem, Separator, Text } from '../..';
|
21
|
+
import { onHoverArgTypes } from '../../utils/devUtils/props/hoverProps';
|
10
22
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
11
23
|
export default {
|
12
24
|
title: 'Components/ListItem',
|
@@ -17,7 +29,8 @@ export default {
|
|
17
29
|
type: 'code'
|
18
30
|
}
|
19
31
|
}
|
20
|
-
}
|
32
|
+
},
|
33
|
+
argTypes: _objectSpread({}, onHoverArgTypes)
|
21
34
|
};
|
22
35
|
export var Default = function Default(args) {
|
23
36
|
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Separator, {
|
@@ -74,4 +87,57 @@ export var WithSubtitle = function WithSubtitle(args) {
|
|
74
87
|
})))), ___EmotionJSX(Separator, {
|
75
88
|
margin: 0
|
76
89
|
}));
|
90
|
+
};
|
91
|
+
export var WithHoverHandlers = function WithHoverHandlers(args) {
|
92
|
+
var _useState = useState(false),
|
93
|
+
_useState2 = _slicedToArray(_useState, 2),
|
94
|
+
isHovered = _useState2[0],
|
95
|
+
setIsHovered = _useState2[1];
|
96
|
+
|
97
|
+
var handleHoverChange = function handleHoverChange() {
|
98
|
+
setIsHovered(function (previousIsHovered) {
|
99
|
+
return !previousIsHovered;
|
100
|
+
});
|
101
|
+
};
|
102
|
+
|
103
|
+
var sx = function sx(shouldTranslate) {
|
104
|
+
return {
|
105
|
+
transform: "".concat(shouldTranslate ? 'translate(15px)' : 'translate(0)')
|
106
|
+
};
|
107
|
+
};
|
108
|
+
|
109
|
+
return ___EmotionJSX(React.Fragment, null, ___EmotionJSX(Separator, {
|
110
|
+
margin: 0
|
111
|
+
}), ___EmotionJSX(ListItem, _extends({}, args, {
|
112
|
+
onHoverEnd: handleHoverChange,
|
113
|
+
onHoverStart: handleHoverChange
|
114
|
+
}), ___EmotionJSX(Box, {
|
115
|
+
isRow: true,
|
116
|
+
mr: "auto",
|
117
|
+
alignSelf: "center"
|
118
|
+
}, ___EmotionJSX(Icon, {
|
119
|
+
icon: AccountIcon,
|
120
|
+
alignSelf: "center",
|
121
|
+
mr: "sm",
|
122
|
+
color: "accent.40",
|
123
|
+
size: 32
|
124
|
+
}), ___EmotionJSX(Box, {
|
125
|
+
sx: sx(isHovered)
|
126
|
+
}, ___EmotionJSX(Text, {
|
127
|
+
variant: "itemTitle"
|
128
|
+
}, "Fons Vernall"), ___EmotionJSX(Text, {
|
129
|
+
variant: "itemSubtitle",
|
130
|
+
mt: 1
|
131
|
+
}, "fvernall0@google.it"))), ___EmotionJSX(Box, {
|
132
|
+
isRow: true,
|
133
|
+
alignSelf: "center"
|
134
|
+
}, ___EmotionJSX(IconButton, {
|
135
|
+
size: 26
|
136
|
+
}, ___EmotionJSX(Icon, {
|
137
|
+
icon: MoreVertIcon,
|
138
|
+
size: 20,
|
139
|
+
color: "neutral.20"
|
140
|
+
})))), ___EmotionJSX(Separator, {
|
141
|
+
margin: 0
|
142
|
+
}));
|
77
143
|
};
|