@pingux/astro 1.42.1 → 1.42.2-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.
@@ -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 _index = require("../index");
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: 'md'
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
- return (0, _react2.jsx)(_index.Box, {
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)(_index.Box, {
269
+ }, (0, _react2.jsx)(_.Box, {
215
270
  isRow: true,
216
271
  sx: sx.listElement.iconWrapper
217
- }, (0, _react2.jsx)(_index.Icon, {
272
+ }, (0, _react2.jsx)(_.Icon, {
218
273
  icon: item.avatar,
219
274
  size: "md",
220
275
  sx: sx.listElement.icon
221
- }), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Text, {
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)(_index.Text, {
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)(_index.Box, {
282
+ }, item.email))), (0, _react2.jsx)(_.Box, {
228
283
  isRow: true,
229
284
  sx: sx.listElement.menuWrapper
230
- }, (0, _react2.jsx)(_index.SwitchField, {
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)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
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)(_index.Icon, {
293
+ }, (0, _react2.jsx)(_.Icon, {
239
294
  icon: _MoreVertIcon["default"],
240
295
  size: "md"
241
- })), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_collections.Item, {
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)(_index.IconButton, {
306
+ }, "Delete user"))), onClosePanel && (0, _react2.jsx)(_.IconButton, {
248
307
  "aria-label": "close icon button",
249
308
  onPress: onClosePanel
250
- }, (0, _react2.jsx)(_index.Icon, {
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 _useState = (0, _react.useState)(),
258
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
259
- selectedItemId = _useState2[0],
260
- setSelectedItemId = _useState2[1];
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 _useState3 = (0, _react.useState)(),
263
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
264
- selectedKeys = _useState4[0],
265
- setSelectedKeys = _useState4[1];
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
- return (0, _react2.jsx)(_index.Box, {
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)(_index.Text, {
358
+ }, (0, _react2.jsx)(_.Text, {
302
359
  fontSize: "xx",
303
360
  fontWeight: 3,
304
361
  fontColor: "text.primary"
305
- }, heading), (0, _react2.jsx)(_index.IconButton, {
362
+ }, heading), (0, _react2.jsx)(_.IconButton, {
306
363
  "aria-label": "icon button",
307
364
  ml: "sm",
308
365
  variant: "inverted"
309
- }, (0, _react2.jsx)(_index.Icon, {
366
+ }, (0, _react2.jsx)(_.Icon, {
310
367
  icon: _PlusIcon["default"],
311
368
  size: "sm"
312
- }))), (0, _react2.jsx)(_index.Text, {
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)(_index.Link, {
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"))), (0, _react2.jsx)(_index.SearchField, {
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)(_index.Separator, {
389
+ }), (0, _react2.jsx)(_.Separator, {
330
390
  margin: 0
331
- }), (0, _react2.jsx)(_index.ListView, {
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: true,
401
+ hasSeparator: item.hasSeparator,
341
402
  listItemProps: {
342
- pl: 15,
343
- minHeight: 75
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)(_index.OverlayPanel, {
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)(_index.Box, {
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)(_index.Separator, {
425
+ })), (0, _react2.jsx)(_.Separator, {
364
426
  margin: 0,
365
427
  sx: sx.separator
366
- }), (0, _react2.jsx)(_index.Box, {
428
+ }), (0, _react2.jsx)(_.Box, {
367
429
  sx: sx.tabsWrapper
368
- }, (0, _react2.jsx)(_index.Tabs, {
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)(_index.Tab, {
439
+ }, (0, _react2.jsx)(_.Tab, {
378
440
  title: "Profile"
379
- }, selectedItemId >= 0 && (0, _react2.jsx)(_react["default"].Fragment, null, (0, _react2.jsx)(_index.IconButton, {
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)(_index.Text, {
447
+ })), (0, _react2.jsx)(_.Text, {
386
448
  sx: sx.itemLabel,
387
449
  variant: "base"
388
- }, "Full Name"), (0, _react2.jsx)(_index.Text, {
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)(_index.Text, {
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)(_index.Text, {
456
+ }, "First Name"), (0, _react2.jsx)(_.Text, {
395
457
  sx: sx.itemValue,
396
458
  variant: "base"
397
- }, items[selectedItemId].firstName), (0, _react2.jsx)(_index.Text, {
459
+ }, items[selectedItemId].firstName), (0, _react2.jsx)(_.Text, {
398
460
  sx: sx.itemLabel,
399
461
  variant: "base"
400
- }, "Last Name"), (0, _react2.jsx)(_index.Text, {
462
+ }, "Last Name"), (0, _react2.jsx)(_.Text, {
401
463
  sx: sx.itemValue,
402
464
  variant: "base"
403
- }, items[selectedItemId].lastName), (0, _react2.jsx)(_index.Text, {
465
+ }, items[selectedItemId].lastName), (0, _react2.jsx)(_.Text, {
404
466
  sx: sx.itemLabel,
405
467
  variant: "base"
406
- }, "Email"), (0, _react2.jsx)(_index.Text, {
468
+ }, "Email"), (0, _react2.jsx)(_.Text, {
407
469
  sx: sx.itemValue,
408
470
  variant: "base"
409
- }, items[selectedItemId].email))), (0, _react2.jsx)(_index.Tab, {
471
+ }, items[selectedItemId].email))), (0, _react2.jsx)(_.Tab, {
410
472
  title: "Group Memberships"
411
- }, (0, _react2.jsx)(_index.Text, null, "Group Memberships")), (0, _react2.jsx)(_index.Tab, {
473
+ }, (0, _react2.jsx)(_.Text, null, "Group Memberships")), (0, _react2.jsx)(_.Tab, {
412
474
  title: "Account Info"
413
- }, (0, _react2.jsx)(_index.Text, null, "Account Info"))))))));
475
+ }, (0, _react2.jsx)(_.Text, null, "Account Info"))))))));
414
476
  };
415
477
 
416
478
  exports.Default = Default;
@@ -88,7 +88,10 @@ var listViewItem = _objectSpread(_objectSpread({}, base), {}, {
88
88
  bg: 'accent.99',
89
89
  outline: 'none',
90
90
  '&.is-selected': {
91
- bg: 'white'
91
+ bg: 'white',
92
+ '& li': {
93
+ bg: 'white'
94
+ }
92
95
  },
93
96
  '&.is-hovered': {
94
97
  bg: 'white',
@@ -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 (props, ref) {
16
- var children = props.children,
17
- className = props.className,
18
- isSelected = props.isSelected,
19
- others = _objectWithoutProperties(props, _excluded);
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(props),
22
- hoverProps = _useHover.hoverProps,
23
- isHovered = _useHover.isHovered;
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 React from 'react';
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 './ListItem';
5
- import Box from '../Box';
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
  };