@pingux/astro 2.0.4-alpha.1 → 2.0.4-alpha.3

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.
@@ -19,6 +19,7 @@ exports.useListLayout = useListLayout;
19
19
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
20
20
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
21
21
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
22
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
22
23
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
23
24
  var _react = _interopRequireWildcard(require("react"));
24
25
  var _i18n = require("@react-aria/i18n");
@@ -91,6 +92,10 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
91
92
  selectionMode = props.selectionMode,
92
93
  selectionStyle = props.selectionStyle,
93
94
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
95
+ var _useState = (0, _react.useState)(null),
96
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
97
+ hoveredItem = _useState2[0],
98
+ setHoveredItem = _useState2[1];
94
99
  var isLoading = loadingState === _loadingStates["default"].LOADING_MORE || loadingState === _loadingStates["default"].LOADING;
95
100
  var renderWrapper = function renderWrapper(parent, reusableView) {
96
101
  return (0, _react2.jsx)(_virtualizer.VirtualizerItem, {
@@ -108,6 +113,10 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
108
113
  var state = (0, _list2.useListState)(_objectSpread(_objectSpread({}, props), {}, {
109
114
  selectionBehavior: selectionStyle === 'highlight' ? 'replace' : 'toggle'
110
115
  }));
116
+ state.hover = {
117
+ hoveredItem: hoveredItem,
118
+ setHoveredItem: setHoveredItem
119
+ };
111
120
  var collection = state.collection,
112
121
  selectionManager = state.selectionManager;
113
122
  var layout = useListLayout(state);
@@ -127,6 +136,11 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
127
136
  others.onFocus(e);
128
137
  }
129
138
  };
139
+
140
+ // This code removes hover when scrolling ListView in the Firefox browser.
141
+ var resetHoverState = function resetHoverState() {
142
+ state.hover.setHoveredItem(null);
143
+ };
130
144
  return (0, _react2.jsx)(_ListViewContext.ListViewContext.Provider, {
131
145
  value: {
132
146
  state: state
@@ -143,7 +157,8 @@ var ListView = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
143
157
  collection: collection,
144
158
  transitionDuration: 0
145
159
  }, others, {
146
- onFocus: onFocus
160
+ onFocus: onFocus,
161
+ onScroll: resetHoverState
147
162
  }), function (type, item) {
148
163
  if (type === 'item') {
149
164
  return (0, _react2.jsx)(_ListViewItem["default"], {
@@ -333,4 +333,18 @@ test('list view not receive focus when click on checkbox', function () {
333
333
  expect(listItem[0]).not.toHaveClass('is-focused');
334
334
  checkbox[0].click();
335
335
  expect(listItem[0]).not.toHaveClass('is-focused');
336
+ });
337
+ test('list view reset hover on item when scroll', function () {
338
+ getComponent();
339
+ var listView = _testWrapper.screen.getAllByRole('grid');
340
+ var listItem = _testWrapper.screen.getAllByRole('gridcell');
341
+ expect(listItem[0]).not.toHaveClass('is-hovered');
342
+ _userEvent["default"].hover(listItem[0]);
343
+ expect(listItem[0]).toHaveClass('is-hovered');
344
+ _testWrapper.fireEvent.scroll(listView[0], {
345
+ target: {
346
+ scrollY: 100
347
+ }
348
+ });
349
+ expect(listItem[0]).not.toHaveClass('is-hovered');
336
350
  });
@@ -45,7 +45,11 @@ var ListViewItem = function ListViewItem(props) {
45
45
  var _useFocusRing2 = (0, _reactAria.useFocusRing)(),
46
46
  focusProps = _useFocusRing2.focusProps,
47
47
  isFocusVisible = _useFocusRing2.isFocusVisible;
48
- var _useHover = (0, _interactions.useHover)({}),
48
+ var _useHover = (0, _interactions.useHover)({
49
+ onHoverStart: function onHoverStart() {
50
+ state.hover.setHoveredItem(item.key);
51
+ }
52
+ }),
49
53
  hoverProps = _useHover.hoverProps,
50
54
  isHovered = _useHover.isHovered;
51
55
  var _useListItem = (0, _list.useListItem)({
@@ -58,7 +62,7 @@ var ListViewItem = function ListViewItem(props) {
58
62
  var isSelected = state.selectionManager.isSelected(item.key);
59
63
  var mergedProps = (0, _reactAria.mergeProps)(raRowProps, hoverProps, focusWithinProps, focusProps);
60
64
  var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
61
- isHovered: isSelectable && isHovered && isHoverable,
65
+ isHovered: isSelectable && isHovered && isHoverable && item.key === state.hover.hoveredItem,
62
66
  isSelected: isSelected,
63
67
  isFocused: isDisabled ? false : isFocusVisible || isFocusVisibleWithin,
64
68
  hasSeparator: hasSeparator,
@@ -1,9 +1,15 @@
1
1
  "use strict";
2
2
 
3
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");
4
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
6
+ var _filterInstanceProperty2 = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
7
  var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
8
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
9
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
11
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
12
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
7
13
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
14
  _Object$defineProperty(exports, "__esModule", {
9
15
  value: true
@@ -13,6 +19,7 @@ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-s
13
19
  var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
14
20
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
15
21
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
16
23
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
17
24
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
25
  var _react = _interopRequireWildcard(require("react"));
@@ -21,6 +28,8 @@ var _index = require("../index");
21
28
  var _react2 = require("@emotion/react");
22
29
  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); }
23
30
  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; }
31
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty2(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
32
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
24
33
  var _default = {
25
34
  title: 'Recipes/Trial Experience Nav'
26
35
  };
@@ -139,6 +148,8 @@ var sx = {
139
148
  maxWidth: '195px'
140
149
  },
141
150
  linkRowIconButton: {
151
+ height: '23.5px',
152
+ width: '23.5px',
142
153
  '&.is-pressed': {
143
154
  backgroundColor: 'transparent'
144
155
  },
@@ -164,10 +175,9 @@ var sx = {
164
175
  linkRowSeparator: {
165
176
  flexGrow: 1,
166
177
  backgroundColor: 'accent.30',
167
- maxHeight: '100%',
168
178
  width: '1px !important',
169
179
  zIndex: 2,
170
- m: '-5px 5px -5px 11.5px !important'
180
+ m: '-4px 5px -5px 11.5px !important'
171
181
  },
172
182
  linkRowText: {
173
183
  fontSize: 'md',
@@ -186,11 +196,11 @@ var sx = {
186
196
  boxShadow: '3px 8px 4px rgba(202, 206, 211, 0.36)'
187
197
  }
188
198
  };
189
- var Stage = function Stage(props) {
190
- var title = props.title,
191
- icon = props.icon,
192
- links = props.links,
193
- isLastStage = props.isLastStage;
199
+ var Stage = function Stage(_ref) {
200
+ var title = _ref.title,
201
+ icon = _ref.icon,
202
+ links = _ref.links,
203
+ isLastStage = _ref.isLastStage;
194
204
  var _useState = (0, _react.useState)([]),
195
205
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
196
206
  selectedLinks = _useState2[0],
@@ -239,43 +249,57 @@ var Stage = function Stage(props) {
239
249
  }));
240
250
  }))));
241
251
  };
242
- var LinkRow = function LinkRow(props) {
243
- var title = props.title,
244
- index = props.index,
245
- onSelectionChange = props.onSelectionChange,
246
- isLinkSelected = props.isLinkSelected,
247
- isLastLink = props.isLastLink;
252
+ var LinkRow = function LinkRow(_ref2) {
253
+ var index = _ref2.index,
254
+ isLastLink = _ref2.isLastLink,
255
+ isLinkSelected = _ref2.isLinkSelected,
256
+ onSelectionChange = _ref2.onSelectionChange,
257
+ title = _ref2.title;
248
258
  var _useState3 = (0, _react.useState)(false),
249
259
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
250
260
  isSelected = _useState4[0],
251
261
  handleSelectionChange = _useState4[1];
262
+ var _useState5 = (0, _react.useState)(0),
263
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
264
+ verticalSeparatorHeight = _useState6[0],
265
+ setVerticalSeparatorHeight = _useState6[1];
266
+ var iconRef = (0, _react.useRef)();
267
+ var rowRef = (0, _react.useRef)();
268
+ (0, _react.useEffect)(function () {
269
+ var _rowRef$current$getBo = rowRef.current.getBoundingClientRect(),
270
+ height = _rowRef$current$getBo.height;
271
+ var _iconRef$current$getB = iconRef.current.getBoundingClientRect(),
272
+ iconRefHeight = _iconRef$current$getB.height;
273
+ var marginAccommodation = 4;
274
+ var halfIconHeight = iconRefHeight / 2;
275
+ setVerticalSeparatorHeight(height - halfIconHeight - marginAccommodation);
276
+ }, [iconRef, rowRef]);
252
277
  var onIconPress = function onIconPress() {
253
278
  handleSelectionChange(!isSelected);
254
279
  onSelectionChange(index);
255
280
  };
256
281
  return (0, _react2.jsx)(_index.Box, {
257
- isRow: true
258
- }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
259
- sx: {
260
- height: '23.5px',
261
- width: '23.5px'
262
- }
263
- }, (0, _react2.jsx)(_index.IconButton, {
282
+ isRow: true,
283
+ ref: rowRef
284
+ }, (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.IconButton, {
285
+ "aria-label": "completed step icon indicator",
264
286
  onPress: onIconPress,
265
- sx: sx.linkRowIconButton,
266
- "aria-label": "completed step icon indicator"
287
+ ref: iconRef,
288
+ sx: sx.linkRowIconButton
267
289
  }, (0, _react2.jsx)(_index.Icon, {
268
290
  icon: isSelected ? _CheckCircleIcon["default"] : RadioButtonIcon,
269
291
  size: "sm",
270
292
  sx: isSelected ? sx.linkRowIconButton : sx.linkRowIconNotSelected
271
- }))), !isLastLink && isLinkSelected && (0, _react2.jsx)(_index.Separator, {
272
- sx: sx.linkRowSeparator,
273
- orientation: "vertical"
274
- })), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Link, {
293
+ })), !isLastLink && isLinkSelected && (0, _react2.jsx)(_index.Separator, {
294
+ orientation: "vertical",
295
+ sx: _objectSpread(_objectSpread({}, sx.linkRowSeparator), {}, {
296
+ maxHeight: verticalSeparatorHeight
297
+ })
298
+ })), (0, _react2.jsx)(_index.Link, {
275
299
  href: "https://www.pingidentity.com",
276
- target: "_blank",
277
- sx: sx.linkRowText
278
- }, title)));
300
+ sx: sx.linkRowText,
301
+ target: "_blank"
302
+ }, title));
279
303
  };
280
304
  var Default = function Default() {
281
305
  // Open the `Story` addons tab to view the source code for full context.
@@ -8,12 +8,13 @@ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/obje
8
8
  import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
9
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
10
10
  import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
11
+ import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
11
12
  import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
12
13
  var _excluded = ["disabledKeys", "isHoverable", "loadingState", "onLoadMore", "onSelectionChange", "selectedKeys", "selectionMode", "selectionStyle"];
13
14
  import _Object$values from "@babel/runtime-corejs3/core-js-stable/object/values";
14
15
  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; }
16
- import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
17
+ import React, { forwardRef, useImperativeHandle, useMemo, useRef, useState } from 'react';
17
18
  import { useCollator } from '@react-aria/i18n';
18
19
  import { useList } from '@react-aria/list';
19
20
  import { Virtualizer, VirtualizerItem } from '@react-aria/virtualizer';
@@ -78,6 +79,10 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
78
79
  selectionMode = props.selectionMode,
79
80
  selectionStyle = props.selectionStyle,
80
81
  others = _objectWithoutProperties(props, _excluded);
82
+ var _useState = useState(null),
83
+ _useState2 = _slicedToArray(_useState, 2),
84
+ hoveredItem = _useState2[0],
85
+ setHoveredItem = _useState2[1];
81
86
  var isLoading = loadingState === loadingStates.LOADING_MORE || loadingState === loadingStates.LOADING;
82
87
  var renderWrapper = function renderWrapper(parent, reusableView) {
83
88
  return ___EmotionJSX(VirtualizerItem, {
@@ -95,6 +100,10 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
95
100
  var state = useListState(_objectSpread(_objectSpread({}, props), {}, {
96
101
  selectionBehavior: selectionStyle === 'highlight' ? 'replace' : 'toggle'
97
102
  }));
103
+ state.hover = {
104
+ hoveredItem: hoveredItem,
105
+ setHoveredItem: setHoveredItem
106
+ };
98
107
  var collection = state.collection,
99
108
  selectionManager = state.selectionManager;
100
109
  var layout = useListLayout(state);
@@ -114,6 +123,11 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
114
123
  others.onFocus(e);
115
124
  }
116
125
  };
126
+
127
+ // This code removes hover when scrolling ListView in the Firefox browser.
128
+ var resetHoverState = function resetHoverState() {
129
+ state.hover.setHoveredItem(null);
130
+ };
117
131
  return ___EmotionJSX(ListViewContext.Provider, {
118
132
  value: {
119
133
  state: state
@@ -130,7 +144,8 @@ var ListView = /*#__PURE__*/forwardRef(function (props, ref) {
130
144
  collection: collection,
131
145
  transitionDuration: 0
132
146
  }, others, {
133
- onFocus: onFocus
147
+ onFocus: onFocus,
148
+ onScroll: resetHoverState
134
149
  }), function (type, item) {
135
150
  if (type === 'item') {
136
151
  return ___EmotionJSX(ListViewItem, {
@@ -18,7 +18,7 @@ import { Item } from 'react-stately';
18
18
  import userEvent from '@testing-library/user-event';
19
19
  import _ from 'lodash';
20
20
  import loadingStates from '../../utils/devUtils/constants/loadingStates';
21
- import { render, screen } from '../../utils/testUtils/testWrapper';
21
+ import { fireEvent, render, screen } from '../../utils/testUtils/testWrapper';
22
22
  import CheckboxField from '../CheckboxField';
23
23
  import ListView from './ListView';
24
24
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -330,4 +330,18 @@ test('list view not receive focus when click on checkbox', function () {
330
330
  expect(listItem[0]).not.toHaveClass('is-focused');
331
331
  checkbox[0].click();
332
332
  expect(listItem[0]).not.toHaveClass('is-focused');
333
+ });
334
+ test('list view reset hover on item when scroll', function () {
335
+ getComponent();
336
+ var listView = screen.getAllByRole('grid');
337
+ var listItem = screen.getAllByRole('gridcell');
338
+ expect(listItem[0]).not.toHaveClass('is-hovered');
339
+ userEvent.hover(listItem[0]);
340
+ expect(listItem[0]).toHaveClass('is-hovered');
341
+ fireEvent.scroll(listView[0], {
342
+ target: {
343
+ scrollY: 100
344
+ }
345
+ });
346
+ expect(listItem[0]).not.toHaveClass('is-hovered');
333
347
  });
@@ -32,7 +32,11 @@ var ListViewItem = function ListViewItem(props) {
32
32
  var _useFocusRing2 = useFocusRing(),
33
33
  focusProps = _useFocusRing2.focusProps,
34
34
  isFocusVisible = _useFocusRing2.isFocusVisible;
35
- var _useHover = useHover({}),
35
+ var _useHover = useHover({
36
+ onHoverStart: function onHoverStart() {
37
+ state.hover.setHoveredItem(item.key);
38
+ }
39
+ }),
36
40
  hoverProps = _useHover.hoverProps,
37
41
  isHovered = _useHover.isHovered;
38
42
  var _useListItem = useListItem({
@@ -45,7 +49,7 @@ var ListViewItem = function ListViewItem(props) {
45
49
  var isSelected = state.selectionManager.isSelected(item.key);
46
50
  var mergedProps = mergeProps(raRowProps, hoverProps, focusWithinProps, focusProps);
47
51
  var _useStatusClasses = useStatusClasses(className, {
48
- isHovered: isSelectable && isHovered && isHoverable,
52
+ isHovered: isSelectable && isHovered && isHoverable && item.key === state.hover.hoveredItem,
49
53
  isSelected: isSelected,
50
54
  isFocused: isDisabled ? false : isFocusVisible || isFocusVisibleWithin,
51
55
  hasSeparator: hasSeparator,
@@ -1,10 +1,20 @@
1
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
1
2
  import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
2
3
  import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
4
+ 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; }
5
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context3, _context4; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context3 = ownKeys(Object(source), !0)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
3
6
  import _includesInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/includes";
4
7
  import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
5
8
  import _concatInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/concat";
6
9
  import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
7
- import React, { useState } from 'react';
10
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
11
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
12
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
13
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
14
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
15
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
16
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
17
+ import React, { useEffect, useRef, useState } from 'react';
8
18
  import CheckCircleIcon from 'mdi-react/CheckCircleIcon';
9
19
  import { Box, Icon, IconButton, Link, Separator, Text } from '../index';
10
20
  import { jsx as ___EmotionJSX } from "@emotion/react";
@@ -125,6 +135,8 @@ var sx = {
125
135
  maxWidth: '195px'
126
136
  },
127
137
  linkRowIconButton: {
138
+ height: '23.5px',
139
+ width: '23.5px',
128
140
  '&.is-pressed': {
129
141
  backgroundColor: 'transparent'
130
142
  },
@@ -150,10 +162,9 @@ var sx = {
150
162
  linkRowSeparator: {
151
163
  flexGrow: 1,
152
164
  backgroundColor: 'accent.30',
153
- maxHeight: '100%',
154
165
  width: '1px !important',
155
166
  zIndex: 2,
156
- m: '-5px 5px -5px 11.5px !important'
167
+ m: '-4px 5px -5px 11.5px !important'
157
168
  },
158
169
  linkRowText: {
159
170
  fontSize: 'md',
@@ -172,11 +183,11 @@ var sx = {
172
183
  boxShadow: '3px 8px 4px rgba(202, 206, 211, 0.36)'
173
184
  }
174
185
  };
175
- var Stage = function Stage(props) {
176
- var title = props.title,
177
- icon = props.icon,
178
- links = props.links,
179
- isLastStage = props.isLastStage;
186
+ var Stage = function Stage(_ref) {
187
+ var title = _ref.title,
188
+ icon = _ref.icon,
189
+ links = _ref.links,
190
+ isLastStage = _ref.isLastStage;
180
191
  var _useState = useState([]),
181
192
  _useState2 = _slicedToArray(_useState, 2),
182
193
  selectedLinks = _useState2[0],
@@ -225,43 +236,57 @@ var Stage = function Stage(props) {
225
236
  }));
226
237
  }))));
227
238
  };
228
- var LinkRow = function LinkRow(props) {
229
- var title = props.title,
230
- index = props.index,
231
- onSelectionChange = props.onSelectionChange,
232
- isLinkSelected = props.isLinkSelected,
233
- isLastLink = props.isLastLink;
239
+ var LinkRow = function LinkRow(_ref2) {
240
+ var index = _ref2.index,
241
+ isLastLink = _ref2.isLastLink,
242
+ isLinkSelected = _ref2.isLinkSelected,
243
+ onSelectionChange = _ref2.onSelectionChange,
244
+ title = _ref2.title;
234
245
  var _useState3 = useState(false),
235
246
  _useState4 = _slicedToArray(_useState3, 2),
236
247
  isSelected = _useState4[0],
237
248
  handleSelectionChange = _useState4[1];
249
+ var _useState5 = useState(0),
250
+ _useState6 = _slicedToArray(_useState5, 2),
251
+ verticalSeparatorHeight = _useState6[0],
252
+ setVerticalSeparatorHeight = _useState6[1];
253
+ var iconRef = useRef();
254
+ var rowRef = useRef();
255
+ useEffect(function () {
256
+ var _rowRef$current$getBo = rowRef.current.getBoundingClientRect(),
257
+ height = _rowRef$current$getBo.height;
258
+ var _iconRef$current$getB = iconRef.current.getBoundingClientRect(),
259
+ iconRefHeight = _iconRef$current$getB.height;
260
+ var marginAccommodation = 4;
261
+ var halfIconHeight = iconRefHeight / 2;
262
+ setVerticalSeparatorHeight(height - halfIconHeight - marginAccommodation);
263
+ }, [iconRef, rowRef]);
238
264
  var onIconPress = function onIconPress() {
239
265
  handleSelectionChange(!isSelected);
240
266
  onSelectionChange(index);
241
267
  };
242
268
  return ___EmotionJSX(Box, {
243
- isRow: true
244
- }, ___EmotionJSX(Box, null, ___EmotionJSX(Box, {
245
- sx: {
246
- height: '23.5px',
247
- width: '23.5px'
248
- }
249
- }, ___EmotionJSX(IconButton, {
269
+ isRow: true,
270
+ ref: rowRef
271
+ }, ___EmotionJSX(Box, null, ___EmotionJSX(IconButton, {
272
+ "aria-label": "completed step icon indicator",
250
273
  onPress: onIconPress,
251
- sx: sx.linkRowIconButton,
252
- "aria-label": "completed step icon indicator"
274
+ ref: iconRef,
275
+ sx: sx.linkRowIconButton
253
276
  }, ___EmotionJSX(Icon, {
254
277
  icon: isSelected ? CheckCircleIcon : RadioButtonIcon,
255
278
  size: "sm",
256
279
  sx: isSelected ? sx.linkRowIconButton : sx.linkRowIconNotSelected
257
- }))), !isLastLink && isLinkSelected && ___EmotionJSX(Separator, {
258
- sx: sx.linkRowSeparator,
259
- orientation: "vertical"
260
- })), ___EmotionJSX(Box, null, ___EmotionJSX(Link, {
280
+ })), !isLastLink && isLinkSelected && ___EmotionJSX(Separator, {
281
+ orientation: "vertical",
282
+ sx: _objectSpread(_objectSpread({}, sx.linkRowSeparator), {}, {
283
+ maxHeight: verticalSeparatorHeight
284
+ })
285
+ })), ___EmotionJSX(Link, {
261
286
  href: "https://www.pingidentity.com",
262
- target: "_blank",
263
- sx: sx.linkRowText
264
- }, title)));
287
+ sx: sx.linkRowText,
288
+ target: "_blank"
289
+ }, title));
265
290
  };
266
291
  export var Default = function Default() {
267
292
  // Open the `Story` addons tab to view the source code for full context.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.0.4-alpha.1",
3
+ "version": "2.0.4-alpha.3",
4
4
  "description": "PingUX themeable React component library",
5
5
  "repository": {
6
6
  "type": "git",