@pingux/astro 1.27.0-alpha.14 → 1.27.0-alpha.16

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 (55) hide show
  1. package/lib/cjs/components/DataTable/DataTable.js +477 -0
  2. package/lib/cjs/components/DataTable/DataTable.stories.js +310 -0
  3. package/lib/cjs/components/DataTable/DataTable.styles.js +156 -0
  4. package/lib/cjs/components/DataTable/DataTable.test.js +1307 -0
  5. package/lib/cjs/components/DataTable/DataTableChip.js +63 -0
  6. package/lib/cjs/components/DataTable/DataTableChip.test.js +38 -0
  7. package/lib/cjs/components/DataTable/DataTableMenu.js +51 -0
  8. package/lib/cjs/components/DataTable/DataTableMenu.test.js +20 -0
  9. package/lib/cjs/components/DataTable/DataTableMultiLine.js +75 -0
  10. package/lib/cjs/components/DataTable/DataTableMultiLine.test.js +30 -0
  11. package/lib/cjs/components/DataTable/DataTableVirtualizer.js +188 -0
  12. package/lib/cjs/components/DataTable/index.js +54 -0
  13. package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +8 -2
  14. package/lib/cjs/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +35 -0
  15. package/lib/cjs/components/PageHeader/PageHeader.js +7 -1
  16. package/lib/cjs/context/DataTableContext/index.js +31 -0
  17. package/lib/cjs/index.js +67 -2
  18. package/lib/cjs/recipes/FlippableCaretMenuButton.stories.js +38 -30
  19. package/lib/cjs/recipes/ListAndPanel.stories.js +102 -87
  20. package/lib/cjs/recipes/MaskedValue.stories.js +8 -5
  21. package/lib/cjs/recipes/NeutralInput.stories.js +6 -3
  22. package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +38 -33
  23. package/lib/cjs/recipes/PageHeader.stories.js +73 -0
  24. package/lib/cjs/recipes/RowLineChart.stories.js +58 -70
  25. package/lib/cjs/recipes/SelectedFieldOverlay.story.js +25 -21
  26. package/lib/cjs/recipes/TrialExperienceStatusBar.stories.js +81 -72
  27. package/lib/cjs/styles/variants/variants.js +4 -1
  28. package/lib/components/DataTable/DataTable.js +431 -0
  29. package/lib/components/DataTable/DataTable.stories.js +273 -0
  30. package/lib/components/DataTable/DataTable.styles.js +137 -0
  31. package/lib/components/DataTable/DataTable.test.js +1256 -0
  32. package/lib/components/DataTable/DataTableChip.js +33 -0
  33. package/lib/components/DataTable/DataTableChip.test.js +31 -0
  34. package/lib/components/DataTable/DataTableMenu.js +24 -0
  35. package/lib/components/DataTable/DataTableMenu.test.js +13 -0
  36. package/lib/components/DataTable/DataTableMultiLine.js +46 -0
  37. package/lib/components/DataTable/DataTableMultiLine.test.js +22 -0
  38. package/lib/components/DataTable/DataTableVirtualizer.js +157 -0
  39. package/lib/components/DataTable/index.js +5 -0
  40. package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.js +7 -2
  41. package/lib/components/EnvironmentBreadcrumb/EnvironmentBreadcrumb.test.js +25 -0
  42. package/lib/components/PageHeader/PageHeader.js +8 -1
  43. package/lib/context/DataTableContext/index.js +5 -0
  44. package/lib/index.js +4 -1
  45. package/lib/recipes/FlippableCaretMenuButton.stories.js +38 -30
  46. package/lib/recipes/ListAndPanel.stories.js +102 -87
  47. package/lib/recipes/MaskedValue.stories.js +8 -5
  48. package/lib/recipes/NeutralInput.stories.js +6 -3
  49. package/lib/recipes/OneWayToBidirectionalArrow.stories.js +38 -33
  50. package/lib/recipes/PageHeader.stories.js +53 -0
  51. package/lib/recipes/RowLineChart.stories.js +58 -70
  52. package/lib/recipes/SelectedFieldOverlay.story.js +25 -21
  53. package/lib/recipes/TrialExperienceStatusBar.stories.js +81 -72
  54. package/lib/styles/variants/variants.js +3 -1
  55. package/package.json +55 -50
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _react = _interopRequireWildcard(require("react"));
20
+
21
+ var _AlertIcon = _interopRequireDefault(require("mdi-react/AlertIcon"));
22
+
23
+ var _AlertCircleIcon = _interopRequireDefault(require("mdi-react/AlertCircleIcon"));
24
+
25
+ var _CheckIcon = _interopRequireDefault(require("mdi-react/CheckIcon"));
26
+
27
+ var _propTypes = _interopRequireDefault(require("prop-types"));
28
+
29
+ var _index = require("../../index");
30
+
31
+ var _react2 = require("@emotion/react");
32
+
33
+ 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); }
34
+
35
+ 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; }
36
+
37
+ /* eslint-disable no-nested-ternary */
38
+ var DataTableChip = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
39
+ var cell = _ref.cell;
40
+ var color = cell === 'Pending' ? 'line.light' : cell === 'Failed' ? 'warning.bright' : cell === 'Rejected' ? 'critical.bright' : 'success.dark';
41
+ return (0, _react2.jsx)(_index.Chip, {
42
+ label: cell,
43
+ bg: "white",
44
+ ref: ref,
45
+ textColor: cell === 'Pending' || cell === 'Failed' ? 'text.primary' : color,
46
+ sx: {
47
+ border: '1px',
48
+ borderStyle: 'solid',
49
+ borderColor: color,
50
+ flexDirection: 'row-reverse !important'
51
+ }
52
+ }, cell !== 'Pending' && (0, _react2.jsx)(_index.Icon, {
53
+ icon: cell === 'Approved' ? _CheckIcon["default"] : cell === 'Rejected' ? _AlertCircleIcon["default"] : cell === 'Failed' ? _AlertIcon["default"] : null,
54
+ mr: "xs",
55
+ size: "14px",
56
+ color: color
57
+ }));
58
+ });
59
+ DataTableChip.propTypes = {
60
+ cell: _propTypes["default"].string
61
+ };
62
+ var _default = DataTableChip;
63
+ exports["default"] = _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _index = require("../../index");
10
+
11
+ var _react3 = require("@emotion/react");
12
+
13
+ var getComponent = function getComponent() {
14
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
+ return (0, _react2.render)((0, _react3.jsx)(_index.DataTableChip, props));
16
+ };
17
+
18
+ test('renders component with rejected label', function () {
19
+ var cell = 'Rejected';
20
+ getComponent({
21
+ cell: cell
22
+ });
23
+ expect(_react2.screen.queryByText('Rejected')).toBeInTheDocument();
24
+ });
25
+ test('renders component with pending label', function () {
26
+ var cell = 'Pending';
27
+ getComponent({
28
+ cell: cell
29
+ });
30
+ expect(_react2.screen.queryByText('Pending')).toBeInTheDocument();
31
+ });
32
+ test('renders component with failed label', function () {
33
+ var cell = 'Failed';
34
+ getComponent({
35
+ cell: cell
36
+ });
37
+ expect(_react2.screen.queryByText('Failed')).toBeInTheDocument();
38
+ });
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _react = _interopRequireWildcard(require("react"));
20
+
21
+ var _DotsVerticalIcon = _interopRequireDefault(require("mdi-react/DotsVerticalIcon"));
22
+
23
+ var _index = require("../../index");
24
+
25
+ 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); }
28
+
29
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
30
+
31
+ var DataTableMenu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
32
+ return (0, _react2.jsx)(_index.Box, {
33
+ ref: ref,
34
+ variant: "dataTable.tableMenu"
35
+ }, (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
36
+ "aria-label": "row menu"
37
+ }, (0, _react2.jsx)(_index.Icon, {
38
+ icon: _DotsVerticalIcon["default"]
39
+ })), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_index.Item, {
40
+ key: "edit"
41
+ }, "Edit"), (0, _react2.jsx)(_index.Item, {
42
+ key: "duplicate"
43
+ }, "Duplicate"), (0, _react2.jsx)(_index.Item, {
44
+ key: "delete",
45
+ textValue: "delete"
46
+ }, (0, _react2.jsx)(_index.Text, {
47
+ color: "critical.bright"
48
+ }, "Delete"))))));
49
+ });
50
+ var _default = DataTableMenu;
51
+ exports["default"] = _default;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _index = require("../../index");
10
+
11
+ var _react3 = require("@emotion/react");
12
+
13
+ var getComponent = function getComponent() {
14
+ return (0, _react2.render)((0, _react3.jsx)(_index.DataTableMenu, null));
15
+ };
16
+
17
+ test('renders component with menu', function () {
18
+ getComponent();
19
+ expect(_react2.screen.getByLabelText('row menu')).toBeInTheDocument();
20
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
20
+
21
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
22
+
23
+ var _react = _interopRequireWildcard(require("react"));
24
+
25
+ var _propTypes = _interopRequireDefault(require("prop-types"));
26
+
27
+ var _index = require("../../index");
28
+
29
+ var _react2 = require("@emotion/react");
30
+
31
+ 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); }
32
+
33
+ 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; }
34
+
35
+ var DataTableMultiLine = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
36
+ var cell = _ref.cell;
37
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(cell).call(cell, function (item) {
38
+ var _context;
39
+
40
+ return (0, _react2.jsx)(_index.Box, {
41
+ key: (0, _concat["default"])(_context = "".concat(cell.key, "_")).call(_context, item.accountId),
42
+ ref: ref
43
+ }, (0, _react2.jsx)(_index.Box, {
44
+ sx: {
45
+ flexDirection: 'row !important'
46
+ }
47
+ }, (0, _react2.jsx)(_index.Box, {
48
+ sx: {
49
+ alignItems: 'center',
50
+ justifyContent: 'center',
51
+ mx: '18px'
52
+ }
53
+ }, (0, _react2.jsx)(_index.Icon, {
54
+ icon: item.icon,
55
+ color: "accent.40",
56
+ size: "18.75"
57
+ })), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
58
+ sx: {
59
+ fontWeight: 500,
60
+ fontSize: '15px'
61
+ }
62
+ }, item.name), (0, _react2.jsx)(_index.Box, {
63
+ sx: {
64
+ color: 'neutral.40',
65
+ fontWeight: 400,
66
+ fontSize: '13px'
67
+ }
68
+ }, "Account ID: ", item.accountId))));
69
+ }));
70
+ });
71
+ DataTableMultiLine.propTypes = {
72
+ cell: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
73
+ };
74
+ var _default = DataTableMultiLine;
75
+ exports["default"] = _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _ApplicationIcon = _interopRequireDefault(require("mdi-react/ApplicationIcon"));
10
+
11
+ var _index = require("../../index");
12
+
13
+ var _react3 = require("@emotion/react");
14
+
15
+ var getComponent = function getComponent() {
16
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ return (0, _react2.render)((0, _react3.jsx)(_index.DataTableMultiLine, props));
18
+ };
19
+
20
+ test('renders component with account name', function () {
21
+ var cell = [{
22
+ name: 'Acme',
23
+ icon: _ApplicationIcon["default"],
24
+ accountId: 123
25
+ }];
26
+ getComponent({
27
+ cell: cell
28
+ });
29
+ expect(_react2.screen.queryByText('Acme')).toBeInTheDocument();
30
+ });
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
+
21
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
22
+
23
+ var _propTypes = _interopRequireDefault(require("prop-types"));
24
+
25
+ var _react = _interopRequireWildcard(require("react"));
26
+
27
+ var _utils = require("@react-aria/utils");
28
+
29
+ var _virtualizer = require("@react-aria/virtualizer");
30
+
31
+ var _virtualizer2 = require("@react-stately/virtualizer");
32
+
33
+ var _index = require("../../index");
34
+
35
+ var _react2 = require("@emotion/react");
36
+
37
+ var _excluded = ["layout", "collection", "focusedKey", "renderView", "renderWrapper", "domRef", "bodyRef", "setTableWidth", "getColumnWidth", "onVisibleRectChange"];
38
+
39
+ 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); }
40
+
41
+ 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; }
42
+
43
+ /**
44
+ * Custom Virtualizer using react aria Spectrum TableView/TableVirtualizer
45
+ * Primarily utilizes [TableView](https://react-spectrum.adobe.com/react-spectrum/TableView.html)
46
+ */
47
+ var DataTableVirtualizer = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
48
+ var _layout$getLayoutInfo;
49
+
50
+ var layout = _ref.layout,
51
+ collection = _ref.collection,
52
+ focusedKey = _ref.focusedKey,
53
+ renderView = _ref.renderView,
54
+ renderWrapper = _ref.renderWrapper,
55
+ domRef = _ref.domRef,
56
+ bodyRef = _ref.bodyRef,
57
+ setTableWidth = _ref.setTableWidth,
58
+ getColumnWidth = _ref.getColumnWidth,
59
+ onVisibleRectChangeProp = _ref.onVisibleRectChange,
60
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
61
+ var direction = 'ltr'; // useLocale override
62
+
63
+ var headerRef = (0, _react.useRef)(ref);
64
+ var loadingState = collection.body.props.loadingState;
65
+ var isLoading = loadingState === 'loading' || loadingState === 'loadingMore';
66
+ var onLoadMore = collection.body.props.onLoadMore;
67
+ var state = (0, _virtualizer2.useVirtualizerState)({
68
+ layout: layout,
69
+ collection: collection,
70
+ renderView: renderView,
71
+ renderWrapper: renderWrapper,
72
+ onVisibleRectChange: function onVisibleRectChange(rect) {
73
+ // eslint-disable-next-line no-param-reassign
74
+ bodyRef.current.scrollTop = rect.y;
75
+ (0, _virtualizer.setScrollLeft)(bodyRef.current, direction, rect.x);
76
+ },
77
+ transitionDuration: isLoading ? 160 : 220
78
+ });
79
+
80
+ var _useVirtualizer = (0, _virtualizer.useVirtualizer)({
81
+ focusedKey: focusedKey,
82
+ scrollToItem: function scrollToItem(key) {
83
+ var item = collection.getItem(key);
84
+ state.virtualizer.scrollToItem(key, {
85
+ duration: 0,
86
+ // Prevent scrolling to the top when clicking on column headers.
87
+ shouldScrollY: (item === null || item === void 0 ? void 0 : item.type) !== 'column',
88
+ // Offset scroll position by width of selection cell
89
+ // (which is sticky and will overlap the cell we're scrolling to).
90
+ offsetX: 0
91
+ });
92
+ }
93
+ }, state, domRef),
94
+ virtualizerProps = _useVirtualizer.virtualizerProps; // If column widths change, need to relay out.
95
+
96
+
97
+ (0, _utils.useLayoutEffect)(function () {
98
+ state.virtualizer.relayoutNow({
99
+ sizeChanged: true
100
+ });
101
+ }, [state.virtualizer]);
102
+ var headerHeight = ((_layout$getLayoutInfo = layout.getLayoutInfo('header')) === null || _layout$getLayoutInfo === void 0 ? void 0 : _layout$getLayoutInfo.rect.height) || 0;
103
+ var visibleRect = state.virtualizer.visibleRect; // Sync the scroll position from the table body to the header container.
104
+
105
+ var onScroll = (0, _react.useCallback)(function () {
106
+ headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
107
+ }, [bodyRef]);
108
+ var onVisibleRectChange = (0, _react.useCallback)(function (rect) {
109
+ setTableWidth(rect.width);
110
+ state.setVisibleRect(rect);
111
+
112
+ if (!isLoading && onLoadMore) {
113
+ var scrollOffset = state.virtualizer.contentSize.height - rect.height * 2;
114
+
115
+ if (rect.y > scrollOffset) {
116
+ onLoadMore();
117
+ }
118
+ }
119
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
120
+ [onLoadMore, isLoading, state.setVisibleRect, state.virtualizer]);
121
+ (0, _utils.useLayoutEffect)(function () {
122
+ if (!isLoading && onLoadMore && !state.isAnimating) {
123
+ if (state.contentSize.height <= state.virtualizer.visibleRect.height) {
124
+ onLoadMore();
125
+ }
126
+ }
127
+ }, [state.contentSize, state.virtualizer, state.isAnimating, onLoadMore, isLoading]);
128
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, (0, _utils.mergeProps)(otherProps, virtualizerProps), {
129
+ ref: domRef
130
+ }), (0, _react2.jsx)(_index.Box, {
131
+ role: "presentation",
132
+ variant: "dataTable.tableHeadWrapper",
133
+ style: {
134
+ width: visibleRect.width,
135
+ height: headerHeight,
136
+ overflow: 'hidden',
137
+ position: 'relative',
138
+ willChange: state.isScrolling ? 'scroll-position' : '',
139
+ transition: state.isAnimating ? "none ".concat(state.virtualizer.transitionDuration, "ms") : undefined
140
+ },
141
+ ref: headerRef
142
+ }, state.visibleViews[0]), (0, _react2.jsx)(_virtualizer.ScrollView, {
143
+ role: "presentation",
144
+ variant: "dataTable.tableBody",
145
+ style: {
146
+ flex: 1
147
+ },
148
+ innerStyle: {
149
+ overflow: 'visible',
150
+ transition: state.isAnimating ? "none ".concat(state.virtualizer.transitionDuration, "ms") : undefined
151
+ },
152
+ ref: bodyRef,
153
+ contentSize: state.contentSize,
154
+ onVisibleRectChange: (0, _utils.chain)(onVisibleRectChange, onVisibleRectChangeProp),
155
+ onScrollStart: state.startScrolling,
156
+ onScrollEnd: state.endScrolling,
157
+ onScroll: onScroll
158
+ }, state.visibleViews[1]));
159
+ });
160
+ DataTableVirtualizer.propTypes = {
161
+ bodyRef: _propTypes["default"].shape({
162
+ current: _propTypes["default"].shape({
163
+ scrollLeft: _propTypes["default"].number,
164
+ scrollTop: _propTypes["default"].number
165
+ })
166
+ }),
167
+ collection: _propTypes["default"].shape({
168
+ body: _propTypes["default"].shape({
169
+ props: _propTypes["default"].shape({
170
+ loadingState: _propTypes["default"].string,
171
+ onLoadMore: _propTypes["default"].func
172
+ })
173
+ }),
174
+ getItem: _propTypes["default"].func
175
+ }),
176
+ domRef: _propTypes["default"].shape({}),
177
+ focusedKey: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
178
+ getColumnWidth: _propTypes["default"].func,
179
+ layout: _propTypes["default"].shape({
180
+ getLayoutInfo: _propTypes["default"].func
181
+ }),
182
+ onVisibleRectChange: _propTypes["default"].func,
183
+ renderView: _propTypes["default"].func,
184
+ renderWrapper: _propTypes["default"].func,
185
+ setTableWidth: _propTypes["default"].func
186
+ };
187
+ var _default = DataTableVirtualizer;
188
+ exports["default"] = _default;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ _Object$defineProperty(exports, "DataTableChip", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _DataTableChip["default"];
15
+ }
16
+ });
17
+
18
+ _Object$defineProperty(exports, "DataTableMenu", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _DataTableMenu["default"];
22
+ }
23
+ });
24
+
25
+ _Object$defineProperty(exports, "DataTableMultiLine", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _DataTableMultiLine["default"];
29
+ }
30
+ });
31
+
32
+ _Object$defineProperty(exports, "DataTableVirtualize", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _DataTableVirtualizer["default"];
36
+ }
37
+ });
38
+
39
+ _Object$defineProperty(exports, "default", {
40
+ enumerable: true,
41
+ get: function get() {
42
+ return _DataTable["default"];
43
+ }
44
+ });
45
+
46
+ var _DataTable = _interopRequireDefault(require("./DataTable"));
47
+
48
+ var _DataTableChip = _interopRequireDefault(require("./DataTableChip"));
49
+
50
+ var _DataTableMultiLine = _interopRequireDefault(require("./DataTableMultiLine"));
51
+
52
+ var _DataTableVirtualizer = _interopRequireDefault(require("./DataTableVirtualizer"));
53
+
54
+ var _DataTableMenu = _interopRequireDefault(require("./DataTableMenu"));
@@ -58,6 +58,8 @@ var _overlays = require("@react-stately/overlays");
58
58
 
59
59
  var _overlays2 = require("@react-aria/overlays");
60
60
 
61
+ var _utils = require("@react-aria/utils");
62
+
61
63
  var _ArrowDropUpIcon = _interopRequireDefault(require("mdi-react/ArrowDropUpIcon"));
62
64
 
63
65
  var _ArrowDropDownIcon = _interopRequireDefault(require("mdi-react/ArrowDropDownIcon"));
@@ -74,7 +76,7 @@ var _index = require("../../index");
74
76
 
75
77
  var _react2 = require("@emotion/react");
76
78
 
77
- var _excluded = ["children", "disabledKeys", "emptySearchText", "isDefaultOpen", "isOpen", "items", "itemsFilter", "onOpenChange", "onNamePress", "onPopoverClose", "onPopoverOpen", "onSelectionChange", "name", "searchProps", "selectedItem"];
79
+ var _excluded = ["children", "disabledKeys", "emptySearchText", "isDefaultOpen", "isOpen", "items", "itemsFilter", "onOpenChange", "onNamePress", "onPopoverClose", "onPopoverOpen", "onSelectionChange", "name", "searchProps", "selectedItem", "popoverProps"];
78
80
 
79
81
  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); }
80
82
 
@@ -101,6 +103,7 @@ var EnvironmentBreadcrumb = /*#__PURE__*/(0, _react.forwardRef)(function (props,
101
103
  name = props.name,
102
104
  searchProps = props.searchProps,
103
105
  selectedItem = props.selectedItem,
106
+ popoverProps = props.popoverProps,
104
107
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
105
108
 
106
109
  var _useState = (0, _react.useState)(''),
@@ -267,7 +270,7 @@ var EnvironmentBreadcrumb = /*#__PURE__*/(0, _react.forwardRef)(function (props,
267
270
  "aria-label": "".concat((typeof selectedItem === 'string' ? selectedItem : selectedValue) || 'Selected Item')
268
271
  }), selectedItem, (0, _react2.jsx)(_index.Icon, {
269
272
  icon: popoverState.isOpen ? _ArrowDropUpIcon["default"] : _ArrowDropDownIcon["default"]
270
- })), (0, _react2.jsx)(_index.PopoverContainer, (0, _extends2["default"])({}, overlayProps, positionProps, {
273
+ })), (0, _react2.jsx)(_index.PopoverContainer, (0, _extends2["default"])({}, overlayProps, positionProps, (0, _utils.mergeProps)(overlayProps, positionProps, popoverProps), {
271
274
  ref: overlayRef,
272
275
  isOpen: popoverState.isOpen,
273
276
  scrollRef: scrollBoxRef,
@@ -355,6 +358,9 @@ EnvironmentBreadcrumb.propTypes = {
355
358
  /** Callback function that fires when the dropdown is closed. */
356
359
  onPopoverClose: _propTypes["default"].func,
357
360
 
361
+ /** Props object that is spread directly into the popover container component. */
362
+ popoverProps: _propTypes["default"].shape({}),
363
+
358
364
  /** Props object that is spread directly into the SearchField element. */
359
365
  searchProps: _propTypes["default"].shape({}),
360
366
 
@@ -2,10 +2,28 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
4
 
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
8
+
9
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
10
+
11
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
12
+
13
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
14
+
15
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
16
+
17
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
18
+
19
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
20
+
5
21
  var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
6
22
 
7
23
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
8
24
 
25
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
26
+
9
27
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
10
28
 
11
29
  var _react = _interopRequireDefault(require("react"));
@@ -22,6 +40,10 @@ var _index = require("../../index");
22
40
 
23
41
  var _react2 = require("@emotion/react");
24
42
 
43
+ 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; }
44
+
45
+ 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; }
46
+
25
47
  var testEnvBreadcrumb = 'test-env-breadcrumb';
26
48
  var testName = 'test-name';
27
49
  var testSelectedItem = 'test-selected-item';
@@ -52,6 +74,10 @@ var defaultProps = {
52
74
  },
53
75
  items: items
54
76
  };
77
+ var popoverProps = {
78
+ maxWidth: '100px',
79
+ 'data-testid': 'popover-container'
80
+ };
55
81
  var defaultWithSectionsProps = {
56
82
  'data-testid': testEnvBreadcrumb,
57
83
  name: testName,
@@ -135,6 +161,15 @@ test('should display name', function () {
135
161
  getComponent();
136
162
  expect(_testWrapper.screen.getByText(testName)).toBeInTheDocument();
137
163
  });
164
+ test('should spread props into popover container', function () {
165
+ getComponent(_objectSpread(_objectSpread({}, popoverProps), {}, {
166
+ isDefaultOpen: true
167
+ }));
168
+
169
+ _userEvent["default"].click(_testWrapper.screen.getByText(testSelectedItem));
170
+
171
+ expect(_testWrapper.screen.queryByTestId('popover-container')).toHaveStyle('max-width: 100px');
172
+ });
138
173
  test('should display selectedItem', function () {
139
174
  getComponent();
140
175
  expect(_testWrapper.screen.getByText(testSelectedItem)).toBeInTheDocument();
@@ -38,11 +38,17 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "functi
38
38
 
39
39
  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; }
40
40
 
41
+ /**
42
+ * A `Page Header` is a composed component using text and icon button.
43
+ * The component is separated from the body and appears at the top.
44
+ * For customization,
45
+ * please see [Page Header](./?path=/story/recipes-page-header--default) recipe docs.
46
+ */
41
47
  var PageHeader = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
42
48
  var title = props.title,
43
49
  children = props.children,
44
50
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
45
- (0, _hooks.useDeprecationWarning)('The Page Header component will be deprecated in Astro-UI 2.0.0.');
51
+ (0, _hooks.useDeprecationWarning)('The Page Header component will be deprecated in Astro-UI 2.0.0. Use Page Header recipe instead.');
46
52
  return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({
47
53
  isRow: true,
48
54
  justifyContent: "space-between",