@pingux/astro 2.214.0 → 2.215.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -14,6 +14,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/he
14
14
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
15
15
  var _react = _interopRequireWildcard(require("react"));
16
16
  var _reactAria = require("react-aria");
17
+ var _interactions = require("@react-aria/interactions");
17
18
  var _ = require("../..");
18
19
  var _hooks = require("../../hooks");
19
20
  var _react2 = require("@emotion/react");
@@ -33,6 +34,11 @@ var OverlayPanel = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
33
34
  var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)(),
34
35
  onClose = _useOverlayPanelState.onClose;
35
36
  var overlayPanelRef = (0, _hooks.useLocalOrForwardRef)(ref);
37
+ (0, _react.useEffect)(function () {
38
+ if (isOpen) {
39
+ (0, _interactions.setInteractionModality)('keyboard');
40
+ }
41
+ }, [isOpen]);
36
42
 
37
43
  // this is code to avoid regressions -- implementations that do not use the
38
44
  // useMountTransition hook will not break, because this className gives the
@@ -1,12 +1,29 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
3
11
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
5
14
  var _react = _interopRequireDefault(require("react"));
15
+ var _interactions = require("@react-aria/interactions");
6
16
  var _testWrapper = require("../../utils/testUtils/testWrapper");
7
17
  var _universalComponentTest = require("../../utils/testUtils/universalComponentTest");
8
18
  var _OverlayPanel = _interopRequireDefault(require("./OverlayPanel"));
9
19
  var _react2 = require("@emotion/react");
20
+ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
22
+ jest.mock('@react-aria/interactions', function () {
23
+ return _objectSpread(_objectSpread({}, jest.requireActual('@react-aria/interactions')), {}, {
24
+ setInteractionModality: jest.fn()
25
+ });
26
+ });
10
27
  var testId = 'test-overlayPanel';
11
28
  var defaultProps = {
12
29
  'data-testid': testId
@@ -154,4 +171,51 @@ test('triggerRef.current.focus() does not fire when key other than esc is presse
154
171
  charCode: 65
155
172
  });
156
173
  expect(focusFunction).not.toHaveBeenCalled();
174
+ });
175
+ test('sets interaction modality to keyboard when panel opens', function () {
176
+ getComponent({
177
+ isOpen: true,
178
+ children: (0, _react2.jsx)("div", null, "Test")
179
+ });
180
+ expect(_interactions.setInteractionModality).toHaveBeenCalledWith('keyboard');
181
+ });
182
+ test('does not set interaction modality to keyboard when panel is closed', function () {
183
+ _interactions.setInteractionModality.mockClear();
184
+ getComponent({
185
+ isOpen: false,
186
+ children: (0, _react2.jsx)("div", null, "Test")
187
+ });
188
+ expect(_interactions.setInteractionModality).not.toHaveBeenCalledWith('keyboard');
189
+ });
190
+ test('sets interaction modality to keyboard when panel transitions from closed to open', function () {
191
+ var _getComponent = getComponent({
192
+ isOpen: false,
193
+ children: (0, _react2.jsx)("div", null, "Test")
194
+ }),
195
+ rerender = _getComponent.rerender;
196
+ _interactions.setInteractionModality.mockClear();
197
+ rerender((0, _react2.jsx)(_OverlayPanel["default"], (0, _extends2["default"])({}, defaultProps, {
198
+ isOpen: true
199
+ }), (0, _react2.jsx)("div", null, "Test")));
200
+ expect(_interactions.setInteractionModality).toHaveBeenCalledWith('keyboard');
201
+ });
202
+ test('sets interaction modality to keyboard on re-open after close', function () {
203
+ var _getComponent2 = getComponent({
204
+ isOpen: true,
205
+ children: (0, _react2.jsx)("div", null, "Test")
206
+ }),
207
+ rerender = _getComponent2.rerender;
208
+ _interactions.setInteractionModality.mockClear();
209
+
210
+ // Close the panel
211
+ rerender((0, _react2.jsx)(_OverlayPanel["default"], (0, _extends2["default"])({}, defaultProps, {
212
+ isOpen: false
213
+ }), (0, _react2.jsx)("div", null, "Test")));
214
+ expect(_interactions.setInteractionModality).not.toHaveBeenCalledWith('keyboard');
215
+
216
+ // Re-open — modality must be forced to keyboard again
217
+ rerender((0, _react2.jsx)(_OverlayPanel["default"], (0, _extends2["default"])({}, defaultProps, {
218
+ isOpen: true
219
+ }), (0, _react2.jsx)("div", null, "Test")));
220
+ expect(_interactions.setInteractionModality).toHaveBeenCalledWith('keyboard');
157
221
  });
@@ -15,7 +15,9 @@ _Object$defineProperty(exports, "__esModule", {
15
15
  value: true
16
16
  });
17
17
  exports["default"] = void 0;
18
- var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
18
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/map"));
19
+ var _setTimeout2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set-timeout"));
20
+ var _map2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
19
21
  var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
20
22
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
21
23
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
@@ -31,7 +33,7 @@ var _table2 = require("@react-stately/table");
31
33
  var _ = require("../..");
32
34
  var _hooks = require("../../hooks");
33
35
  var _react2 = require("@emotion/react");
34
- var _excluded = ["caption", "selectionMode", "selectionBehavior", "hasSelectionCheckboxes", "isStickyHeader", "className", "isLastColumnSticky", "onResizeStart", "onResize", "onResizeEnd"],
36
+ var _excluded = ["caption", "selectionMode", "selectionBehavior", "hasSelectionCheckboxes", "isStickyHeader", "className", "isLastColumnSticky", "onResizeStart", "onResize", "onResizeEnd", "onRowAction"],
35
37
  _excluded2 = ["caption"],
36
38
  _excluded3 = ["type", "children", "className", "isSticky"];
37
39
  function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -69,21 +71,91 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
69
71
  onResizeStart = props.onResizeStart,
70
72
  onResize = props.onResize,
71
73
  onResizeEnd = props.onResizeEnd,
74
+ onRowAction = props.onRowAction,
72
75
  others = (0, _objectWithoutProperties2["default"])(props, _excluded);
73
76
  var tableRef = (0, _hooks.useLocalOrForwardRef)(ref);
74
77
  var headerRef = (0, _react.useRef)(null);
75
78
  var scrollRef = (0, _react.useRef)(null);
76
79
  var bodyRef = (0, _react.useRef)(null);
80
+ // Map of row key -> <tr> DOM element, used to focus the clicked row after onRowAction fires.
81
+ var rowRefMap = (0, _react.useRef)(new _map["default"]());
82
+ // Guard flag: set to true just before onRowAction fires so the subsequent blur
83
+ // event (caused by an OverlayPanel FocusScope stealing focus) does not clear
84
+ // activeRowKey prematurely. Resets to false after the blur handler runs.
85
+ var actionJustFired = (0, _react.useRef)(false);
77
86
  var _useState = (0, _react.useState)(0),
78
87
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
79
88
  tableWidth = _useState2[0],
80
89
  setTableWidth = _useState2[1];
90
+ var _useState3 = (0, _react.useState)(null),
91
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
92
+ activeRowKey = _useState4[0],
93
+ setActiveRowKey = _useState4[1];
94
+ var registerRowRef = (0, _react.useCallback)(function (key, el) {
95
+ if (el) {
96
+ rowRefMap.current.set(key, el);
97
+ } else {
98
+ rowRefMap.current["delete"](key);
99
+ }
100
+ }, []);
101
+ var wrappedOnRowAction = (0, _react.useCallback)(function (key) {
102
+ // Toggle off if clicking the already-active row
103
+ setActiveRowKey(function (prev) {
104
+ return prev === key ? null : key;
105
+ });
106
+ // Signal that a row action just fired so handleTableBlur skips the clear.
107
+ // This prevents OverlayPanel's FocusScope autoFocus from triggering a false
108
+ // positive blur that would remove the active-row highlight.
109
+ actionJustFired.current = true;
110
+ onRowAction === null || onRowAction === void 0 || onRowAction(key);
111
+ // Move DOM focus to the clicked row's <tr> so React Aria can handle arrow-key
112
+ // navigation from that row after a mouse click.
113
+ var rowEl = rowRefMap.current.get(key);
114
+ if (rowEl) {
115
+ rowEl.focus();
116
+ }
117
+ // Reset the guard after the current event loop tick so any FocusScope
118
+ // autoFocus steal (which fires synchronously) is absorbed, but subsequent
119
+ // genuine blur events (Tab away, click outside) are not.
120
+ (0, _setTimeout2["default"])(function () {
121
+ actionJustFired.current = false;
122
+ }, 0);
123
+ }, [onRowAction]);
124
+
125
+ // Called when any row receives focus. If the newly focused row is different
126
+ // from the active row (set by a click), clear activeRowKey so arrow-key
127
+ // navigation does not leave stale active-row highlights on multiple rows.
128
+ // Skip when actionJustFired is true — that focus event is the programmatic
129
+ // rowEl.focus() inside wrappedOnRowAction, not user navigation.
130
+ var handleRowFocus = (0, _react.useCallback)(function (key) {
131
+ if (actionJustFired.current) return;
132
+ setActiveRowKey(function (prev) {
133
+ return prev !== null && prev !== key ? null : prev;
134
+ });
135
+ }, []);
136
+
137
+ // Clear activeRowKey when focus leaves the table entirely.
138
+ // Skip the clear if a row action just fired (e.g. OverlayPanel FocusScope
139
+ // autoFocus stealing focus) — that is not a genuine focus-out.
140
+ var handleTableBlur = (0, _react.useCallback)(function (e) {
141
+ if (actionJustFired.current) {
142
+ actionJustFired.current = false;
143
+ return;
144
+ }
145
+ var relatedTarget = e.relatedTarget;
146
+ var scrollEl = scrollRef.current;
147
+ var focusMovedOutside = !relatedTarget || !scrollEl || !scrollEl.contains(relatedTarget);
148
+ if (focusMovedOutside) {
149
+ setActiveRowKey(null);
150
+ }
151
+ }, []);
81
152
  var state = (0, _table2.useTableState)(_objectSpread(_objectSpread({}, props), {}, {
82
153
  showSelectionCheckboxes: hasSelectionCheckboxes || selectionMode === 'multiple' && selectionBehavior !== 'replace'
83
154
  }));
84
155
  var collection = state.collection;
85
156
  var _useTable = (0, _table.useTable)(_objectSpread(_objectSpread({}, props), {}, {
86
- scrollRef: scrollRef
157
+ scrollRef: scrollRef,
158
+ onRowAction: onRowAction ? wrappedOnRowAction : undefined
87
159
  }), state, tableRef),
88
160
  gridProps = _useTable.gridProps;
89
161
  var getDefaultWidth = (0, _react.useCallback)(function (node) {
@@ -120,7 +192,8 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
120
192
  }),
121
193
  classNames = _useStatusClasses.classNames;
122
194
  return (0, _react2.jsx)(_.Box, {
123
- ref: scrollRef
195
+ ref: scrollRef,
196
+ onBlur: handleTableBlur
124
197
  }, (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
125
198
  as: "table",
126
199
  display: "table",
@@ -133,13 +206,13 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
133
206
  ref: headerRef,
134
207
  type: "thead",
135
208
  isSticky: isStickyHeader
136
- }, (0, _map["default"])(_context = collection.headerRows).call(_context, function (headerRow) {
209
+ }, (0, _map2["default"])(_context = collection.headerRows).call(_context, function (headerRow) {
137
210
  var _context2;
138
211
  return (0, _react2.jsx)(TableHeaderRow, {
139
212
  key: headerRow.key,
140
213
  item: headerRow,
141
214
  state: state
142
- }, (0, _map["default"])(_context2 = (0, _from["default"])(headerRow.childNodes)).call(_context2, function (column) {
215
+ }, (0, _map2["default"])(_context2 = (0, _from["default"])(headerRow.childNodes)).call(_context2, function (column) {
143
216
  return column.props.isSelectionCell ? (0, _react2.jsx)(TableSelectAllCell, {
144
217
  key: column.key,
145
218
  column: column,
@@ -169,14 +242,18 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
169
242
  py: "md"
170
243
  }, (0, _react2.jsx)(_.Loader, {
171
244
  variant: "loader.withinDataTable"
172
- })), (0, _map["default"])(_context3 = (0, _from["default"])(collection.body.childNodes)).call(_context3, function (row) {
245
+ })), (0, _map2["default"])(_context3 = (0, _from["default"])(collection.body.childNodes)).call(_context3, function (row) {
173
246
  var _context4, _collection$getChildr, _collection$getChildr2;
174
247
  return (0, _react2.jsx)(TableRow, {
175
248
  key: row.key,
176
249
  item: row,
177
250
  state: state,
178
- hasSelectionCheckboxes: hasSelectionCheckboxes
179
- }, (0, _map["default"])(_context4 = (0, _from["default"])((_collection$getChildr = (_collection$getChildr2 = collection.getChildren) === null || _collection$getChildr2 === void 0 ? void 0 : _collection$getChildr2.call(collection, row.key)) !== null && _collection$getChildr !== void 0 ? _collection$getChildr : [])).call(_context4, function (cell) {
251
+ hasSelectionCheckboxes: hasSelectionCheckboxes,
252
+ hasActions: !!onRowAction,
253
+ isActiveRow: row.key === activeRowKey,
254
+ registerRef: registerRowRef,
255
+ onRowFocus: handleRowFocus
256
+ }, (0, _map2["default"])(_context4 = (0, _from["default"])((_collection$getChildr = (_collection$getChildr2 = collection.getChildren) === null || _collection$getChildr2 === void 0 ? void 0 : _collection$getChildr2.call(collection, row.key)) !== null && _collection$getChildr !== void 0 ? _collection$getChildr : [])).call(_context4, function (cell) {
180
257
  return cell.props.isSelectionCell ? (0, _react2.jsx)(TableCheckboxCell, {
181
258
  key: cell.key,
182
259
  cell: cell,
@@ -186,7 +263,8 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
186
263
  key: cell.key,
187
264
  cell: cell,
188
265
  state: state,
189
- layoutState: layoutState
266
+ layoutState: layoutState,
267
+ hasActions: !!onRowAction
190
268
  });
191
269
  }));
192
270
  }))));
@@ -354,8 +432,18 @@ function TableRow(props) {
354
432
  state = props.state,
355
433
  children = props.children,
356
434
  className = props.className,
357
- hasSelectionCheckboxes = props.hasSelectionCheckboxes;
435
+ hasSelectionCheckboxes = props.hasSelectionCheckboxes,
436
+ hasActions = props.hasActions,
437
+ isActiveRow = props.isActiveRow,
438
+ registerRef = props.registerRef,
439
+ onRowFocus = props.onRowFocus;
358
440
  var ref = (0, _react.useRef)(null);
441
+
442
+ // Register this row's DOM element so wrappedOnRowAction can focus it programmatically.
443
+ var setRef = (0, _react.useCallback)(function (el) {
444
+ ref.current = el;
445
+ registerRef === null || registerRef === void 0 || registerRef(item.key, el);
446
+ }, [item.key, registerRef]);
359
447
  var _useTableRow = (0, _table.useTableRow)({
360
448
  node: item
361
449
  }, state, ref),
@@ -390,12 +478,18 @@ function TableRow(props) {
390
478
  e.preventDefault();
391
479
  state.selectionManager.toggleSelection(item.key);
392
480
  }, [isDisabled, item.key, state.selectionManager]);
481
+ var rowFocusProps = (0, _react.useCallback)(function (e) {
482
+ if (e.currentTarget === e.target) {
483
+ onRowFocus === null || onRowFocus === void 0 || onRowFocus(item.key);
484
+ }
485
+ }, [item.key, onRowFocus]);
393
486
  var _useStatusClasses5 = (0, _hooks.useStatusClasses)(className, {
394
487
  isSelected: isSelected,
395
488
  isHovered: isHovered,
396
489
  isPressed: isPressed,
397
- isFocused: isFocusVisible,
398
- isDisabled: isDisabled
490
+ isFocused: isFocusVisible || !!isActiveRow,
491
+ isDisabled: isDisabled,
492
+ 'has-actions': hasActions
399
493
  }),
400
494
  classNames = _useStatusClasses5.classNames;
401
495
  return (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
@@ -404,16 +498,18 @@ function TableRow(props) {
404
498
  className: classNames,
405
499
  variant: "tableBase.row"
406
500
  }, (0, _utils.mergeProps)(rowProps, focusProps, hoverProps, pressProps, {
407
- onKeyDown: enterKeyProps
501
+ onKeyDown: enterKeyProps,
502
+ onFocus: rowFocusProps
408
503
  }), {
409
- ref: ref
504
+ ref: setRef
410
505
  }), children);
411
506
  }
412
507
  function TableCell(props) {
413
508
  var cell = props.cell,
414
509
  state = props.state,
415
510
  className = props.className,
416
- layoutState = props.layoutState;
511
+ layoutState = props.layoutState,
512
+ hasActions = props.hasActions;
417
513
  var ref = (0, _react.useRef)(null);
418
514
  var _useTableCell = (0, _table.useTableCell)({
419
515
  node: cell
@@ -429,9 +525,15 @@ function TableCell(props) {
429
525
  useHandleFocusRef(ref);
430
526
 
431
527
  // Prevents pointer events reaching the row's press handler, allowing native text-selection drags.
528
+ // Skipped when the table has row actions so that clicks on cells bubble up
529
+ // and trigger onRowAction.
432
530
  var stopPointerPropagation = (0, _react.useCallback)(function (e) {
433
531
  e.stopPropagation();
434
532
  }, []);
533
+ var pointerBlockers = hasActions ? {} : {
534
+ onPointerDown: stopPointerPropagation,
535
+ onMouseDown: stopPointerPropagation
536
+ };
435
537
  return (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
436
538
  as: "td",
437
539
  display: "table-cell",
@@ -441,10 +543,7 @@ function TableCell(props) {
441
543
  sx: _objectSpread({
442
544
  width: layoutState === null || layoutState === void 0 ? void 0 : layoutState.getColumnWidth(cell.column.key)
443
545
  }, cell.props.sx)
444
- }, (0, _utils.mergeProps)({
445
- onPointerDown: stopPointerPropagation,
446
- onMouseDown: stopPointerPropagation
447
- }, gridCellProps, focusProps, cell.props)), cell.rendered);
546
+ }, (0, _utils.mergeProps)(pointerBlockers, gridCellProps, focusProps, cell.props)), cell.rendered);
448
547
  }
449
548
 
450
549
  // Native checkboxes only toggle on Space, not Enter. This handler makes Enter
@@ -17,13 +17,14 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
17
17
  _Object$defineProperty(exports, "__esModule", {
18
18
  value: true
19
19
  });
20
- exports["default"] = exports.WithStickyHeader = exports.WithResizableColumns = exports.WithPagination = exports.WithMinMaxColumnWidth = exports.WithLastColumnSticky = exports.MultiSelection = exports.DynamicWithSorting = exports.Default = void 0;
20
+ exports["default"] = exports.WithStickyHeader = exports.WithResizableColumns = exports.WithPagination = exports.WithMinMaxColumnWidth = exports.WithLastColumnSticky = exports.RowActions = exports.MultiSelection = exports.DynamicWithSorting = exports.Default = void 0;
21
21
  var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
22
22
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
23
23
  var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
24
24
  var _isNan = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/number/is-nan"));
25
25
  var _parseFloat2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/parse-float"));
26
26
  var _sort = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/sort"));
27
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
27
28
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
28
29
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
29
30
  var _react = _interopRequireWildcard(require("react"));
@@ -469,4 +470,76 @@ var WithLastColumnSticky = exports.WithLastColumnSticky = function WithLastColum
469
470
  return (0, _react2.jsx)(_.Cell, null, item[columnKey]);
470
471
  });
471
472
  })));
473
+ };
474
+ var RowActions = exports.RowActions = function RowActions() {
475
+ var _useState3 = (0, _react.useState)(null),
476
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
477
+ selectedKey = _useState4[0],
478
+ setSelectedKey = _useState4[1];
479
+ var _useOverlayPanelState = (0, _hooks.useOverlayPanelState)(),
480
+ panelState = _useOverlayPanelState.state,
481
+ onClose = _useOverlayPanelState.onClose;
482
+ var panelTriggerRef = (0, _react.useRef)(null);
483
+ var triggerRefAsButton = panelTriggerRef;
484
+ var selectedObject = (0, _find["default"])(objects).call(objects, function (obj) {
485
+ return String(obj.id) === String(selectedKey);
486
+ });
487
+ var handleClose = function handleClose() {
488
+ onClose(panelState, triggerRefAsButton);
489
+ };
490
+ return (0, _react2.jsx)(_.OverlayProvider, null, (0, _react2.jsx)(_.Card, {
491
+ variant: "cards.tableWrapper"
492
+ }, (0, _react2.jsx)(_.TableBase, {
493
+ "aria-label": "Row actions table",
494
+ selectionMode: "none",
495
+ onRowAction: function onRowAction(key) {
496
+ setSelectedKey(key);
497
+ panelState.open();
498
+ },
499
+ ref: panelTriggerRef
500
+ }, (0, _react2.jsx)(_.THead, {
501
+ columns: headers
502
+ }, function (column) {
503
+ return (0, _react2.jsx)(_.Column, {
504
+ key: column.key,
505
+ minWidth: 200
506
+ }, column.name);
507
+ }), (0, _react2.jsx)(_.TBody, {
508
+ items: objects
509
+ }, function (item) {
510
+ return (0, _react2.jsx)(_.Row, {
511
+ key: item.id
512
+ }, function (columnKey) {
513
+ return (0, _react2.jsx)(_.Cell, null, item[columnKey]);
514
+ });
515
+ }))), (panelState.isOpen || panelState.isTransitioning) && (0, _react2.jsx)(_.OverlayPanel, {
516
+ isOpen: panelState.isOpen,
517
+ isTransitioning: panelState.isTransitioning,
518
+ state: panelState,
519
+ triggerRef: triggerRefAsButton,
520
+ sx: {
521
+ p: 0
522
+ }
523
+ }, (0, _react2.jsx)(_.PanelHeader, {
524
+ data: {
525
+ text: selectedObject ? selectedObject.type : '',
526
+ subtext: selectedObject ? selectedObject.date : ''
527
+ }
528
+ }, (0, _react2.jsx)(_.PanelHeaderCloseButton, {
529
+ onPress: handleClose
530
+ })), selectedObject && (0, _react2.jsx)(_.Box, {
531
+ sx: {
532
+ p: 'lg'
533
+ }
534
+ }, (0, _react2.jsx)(_.Text, null, "Type: ".concat(selectedObject.type)), (0, _react2.jsx)(_.Text, null, "Date: ".concat(selectedObject.date)), (0, _react2.jsx)(_.Text, null, "Additional Grant: ".concat(selectedObject.additional_grant)), (0, _react2.jsx)(_.Text, null, "Total Grant: ".concat(selectedObject.total_grant)))));
535
+ };
536
+ RowActions.parameters = {
537
+ a11y: {
538
+ config: {
539
+ rules: [{
540
+ id: 'color-contrast',
541
+ enabled: false
542
+ }]
543
+ }
544
+ }
472
545
  };
@@ -190,6 +190,9 @@ declare const _default: {
190
190
  zIndex: number;
191
191
  };
192
192
  '&.is-hovered': {};
193
+ '&.has-actions.is-hovered:not(.is-disabled)': {
194
+ cursor: string;
195
+ };
193
196
  '&.is-selected': {};
194
197
  '&.is-disabled': {
195
198
  bg: string;
@@ -166,6 +166,9 @@ var row = {
166
166
  '&.is-hovered': {
167
167
  // This is the hover state for the row
168
168
  },
169
+ '&.has-actions.is-hovered:not(.is-disabled)': {
170
+ cursor: 'pointer'
171
+ },
169
172
  '&.is-selected': {
170
173
  // This is the selected state for the row
171
174
  },