@aivenio/aquarium 1.80.1 → 2.0.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.
@@ -15,6 +15,7 @@ import { Accordion } from '../../../src/molecules/Accordion/Accordion';
15
15
  import { List } from '../../../src/molecules/List/List';
16
16
  import { Checkbox } from '../../../src/atoms/Checkbox/Checkbox';
17
17
  import { DataList as DataListBase } from '../../../src/atoms/DataList/DataList';
18
+ import { RadioButton } from '../../../src/atoms/RadioButton/RadioButton';
18
19
  import { Typography } from '../../../src/atoms/Typography/Typography';
19
20
  import { areRowsGrouped, cellProps, } from '../../../src/utils/table/types';
20
21
  import { tw } from '../../../src/utils/tailwind';
@@ -24,15 +25,15 @@ import { flattenRows } from './utils';
24
25
  const GAP = 8;
25
26
  const INDENTATION = 28;
26
27
  const sortGroupKeys = (groupKeys) => [...groupKeys].sort((a) => (a === 'undefined' ? -1 : 1));
27
- export const getDefaultRowCheckboxLabel = () => 'Select row';
28
+ export const getDefaultRowSelectionLabel = () => 'Select row';
28
29
  export const getDefaultGroupCheckboxLabel = (key) => `Select ${key}`;
29
30
  export const renderDefaultGroupName = (key) => (React.createElement(React.Fragment, null,
30
31
  "Group: ",
31
32
  React.createElement("b", null, key)));
32
33
  export const renderDefaultEmptyGroup = () => (React.createElement(DataListBase.EmptyGroup, { icon: infoSign }, "This group is empty"));
33
34
  export const DataListGroup = (_a) => {
34
- var { groups, groupKey, level = 0 } = _a, props = __rest(_a, ["groups", "groupKey", "level"]);
35
- const { columns, disabled, rowClassName, expandedGroupIds, getGroupRow, renderGroupName = renderDefaultGroupName, renderEmptyGroup = renderDefaultEmptyGroup, menu, menuAriaLabel, onAction, onGroupToggled, onMenuOpenChange, rows, selectable, selectedRows, onSelectionChange, selectionDisabled = () => false, getRowCheckboxLabel = getDefaultRowCheckboxLabel, getGroupCheckboxLabel = getDefaultGroupCheckboxLabel, } = props;
35
+ var { groups, groupKey, level = 0, isLastGroup } = _a, props = __rest(_a, ["groups", "groupKey", "level", "isLastGroup"]);
36
+ const { columns, disabled, rowClassName, expandedGroupIds, getGroupRow, renderGroupName = renderDefaultGroupName, renderEmptyGroup = renderDefaultEmptyGroup, menu, menuAriaLabel, onAction, onGroupToggled, onMenuOpenChange, rows, selectable, selectedRows, getOnSelectionChangeForId, selectionDisabled = () => false, getRowSelectionLabel = getDefaultRowSelectionLabel, getGroupCheckboxLabel = getDefaultGroupCheckboxLabel, } = props;
36
37
  const groupKeys = groups ? Object.keys(groups) : undefined;
37
38
  const hasCustomRowForGroup = isFunction(getGroupRow);
38
39
  // Let's first check if the group content contains nested groups or not.
@@ -40,19 +41,20 @@ export const DataListGroup = (_a) => {
40
41
  // we can just render the rows.
41
42
  if (!areRowsGrouped(groups)) {
42
43
  if (groups.length === 0 && groupKey && groupKey !== 'undefined') {
43
- return (React.createElement(DataListBase.Row, null,
44
+ return (React.createElement(DataListBase.Row, { isLast: isLastGroup },
44
45
  selectable && React.createElement(DataListBase.Cell, null),
45
46
  React.createElement(DataListBase.Cell, { style: { paddingLeft: `${2 + GAP + level * INDENTATION}px`, gridColumn: `${selectable ? 2 : 1} / -1` } },
46
47
  React.createElement(Typography, { variant: "small", color: "muted" }, renderEmptyGroup(groupKey)))));
47
48
  }
48
49
  return (React.createElement(List, { items: groups, renderItem: (row, index) => {
49
50
  var _a;
50
- const isChecked = (_a = selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.includes(row.id)) !== null && _a !== void 0 ? _a : false;
51
+ const isSelected = (_a = selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.includes(row.id)) !== null && _a !== void 0 ? _a : false;
51
52
  const isDisabled = disabled === null || disabled === void 0 ? void 0 : disabled(row, index, rows);
52
53
  const isSelectionDisabled = selectionDisabled(row, index, rows);
53
- return (React.createElement(DataListRow, { key: row.id, columns: columns, row: row, index: index, rows: rows, active: selectable && isChecked, menu: React.createElement(DataListRowMenu, { row: row, index: index, menu: menu, onAction: onAction, onMenuOpenChange: onMenuOpenChange, menuAriaLabel: menuAriaLabel }), disabled: disabled, rowClassName: rowClassName, additionalRowProps: () => selectable
54
+ const isLastRow = isLastGroup && index === groups.length - 1;
55
+ return (React.createElement(DataListRow, { key: row.id, columns: columns, row: row, index: index, isLast: isLastRow, rows: rows, active: selectable && isSelected, menu: React.createElement(DataListRowMenu, { row: row, index: index, menu: menu, onAction: onAction, onMenuOpenChange: onMenuOpenChange, menuAriaLabel: menuAriaLabel }), disabled: disabled, selectionDisabled: selectionDisabled, rowClassName: rowClassName, additionalRowProps: () => selectable
54
56
  ? {
55
- 'aria-selected': isChecked,
57
+ 'aria-selected': isSelected,
56
58
  }
57
59
  : {}, additionalColumnProps: (_, columnIndex) => columnIndex === 0
58
60
  ? {
@@ -62,8 +64,9 @@ export const DataListGroup = (_a) => {
62
64
  }
63
65
  : {}, renderFirstColumn: (row, index) => {
64
66
  return (React.createElement(React.Fragment, null, selectable && (React.createElement(DataListBase.Cell, null,
65
- React.createElement(Checkbox, { "aria-label": getRowCheckboxLabel(row, index, isChecked, rows), onChange: onSelectionChange(row.id), checked: isChecked, disabled: isDisabled || isSelectionDisabled })))));
66
- } }));
67
+ selectable === 'single' && (React.createElement(RadioButton, { value: row.id.toString(), "aria-label": getRowSelectionLabel(row, index, isSelected, rows), onChange: getOnSelectionChangeForId(row.id), checked: isSelected, disabled: isDisabled || isSelectionDisabled })),
68
+ selectable === 'multiple' && (React.createElement(Checkbox, { "aria-label": getRowSelectionLabel(row, index, isSelected, rows), onChange: getOnSelectionChangeForId(row.id), checked: isSelected, disabled: isDisabled || isSelectionDisabled }))))));
69
+ }, onClick: selectable === 'single' ? getOnSelectionChangeForId(row.id) : undefined }));
67
70
  } }));
68
71
  }
69
72
  if (!groupKeys) {
@@ -79,30 +82,31 @@ export const DataListGroup = (_a) => {
79
82
  // and get the indentation right. Note that we don't increase the nesting level here because
80
83
  // the design doesn't include any indentation for the direct children rows of a group.
81
84
  if (key === 'undefined' || key === undefined) {
82
- return React.createElement(DataListGroup, Object.assign({ key: "undefined", groupKey: "undefined", level: level }, props, { groups: group }));
85
+ return (React.createElement(DataListGroup, Object.assign({ key: "undefined", groupKey: "undefined", level: level }, props, { groups: group, isLastGroup: isLastGroup && index === groupKeys.length - 1 })));
83
86
  }
84
87
  const openPanelId = expandedGroupIds ? (_a = expandedGroupIds.find((id) => id === key)) !== null && _a !== void 0 ? _a : null : undefined;
85
88
  const nestedRowIds = flattenRows(group).map((row) => row.id);
86
89
  const nestedSelectedIds = (_b = selectedRows === null || selectedRows === void 0 ? void 0 : selectedRows.filter((id) => nestedRowIds.includes(id))) !== null && _b !== void 0 ? _b : [];
87
90
  const allSelected = nestedRowIds.length === nestedSelectedIds.length;
88
91
  const isChecked = nestedSelectedIds.length > 0;
92
+ const isActiveRow = !!openPanelId || (selectable && isChecked);
93
+ const isLastRow = isLastGroup && index === groupKeys.length - 1 && !openPanelId;
89
94
  return (React.createElement(Accordion, { key: key, openPanelId: openPanelId },
90
- hasCustomRowForGroup && (React.createElement(DataListBase.Row, { active: !!openPanelId || (selectable && isChecked) },
91
- selectable && (React.createElement(DataListBase.Cell, null,
92
- React.createElement(Checkbox, { "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows), checked: isChecked, indeterminate: isChecked && !allSelected, disabled: group.length === 0, onChange: onSelectionChange(nestedRowIds) }))),
95
+ hasCustomRowForGroup && (React.createElement(DataListBase.Row, { active: isActiveRow, isLast: isLastRow },
96
+ selectable && (React.createElement(DataListBase.Cell, null, selectable === 'multiple' && (React.createElement(Checkbox, { "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows), checked: isChecked, indeterminate: isChecked && !allSelected, disabled: group.length === 0, onChange: getOnSelectionChangeForId(nestedRowIds) })))),
93
97
  React.createElement(List, { items: columns, renderItem: (column, idx) => (React.createElement(DataListBase.Cell, Object.assign({}, cellProps(column), { className: tw('gap-3'), style: idx === 0 ? { paddingLeft: `${GAP + level * INDENTATION}px` } : undefined }),
94
98
  idx === 0 && React.createElement(Accordion.Toggle, { panelId: key, onChange: onGroupToggled }),
95
99
  React.createElement(DataListCell, { column: column, row: getGroupRow(key, group), index: -1, rows: [] }))) }),
96
100
  React.createElement(DataListRowMenu, { row: getGroupRow(key, group), index: -1, menu: menu, onAction: onAction, onMenuOpenChange: onMenuOpenChange, menuAriaLabel: menuAriaLabel }))),
97
- !hasCustomRowForGroup && (React.createElement(DataListBase.Row, { active: !!openPanelId || (selectable && isChecked) },
98
- selectable && (React.createElement(DataListBase.Cell, null,
99
- React.createElement(Checkbox, { "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows), checked: isChecked, indeterminate: isChecked && !allSelected, disabled: group.length === 0, onChange: onSelectionChange(nestedRowIds) }))),
101
+ !hasCustomRowForGroup && (React.createElement(DataListBase.Row, { active: isActiveRow, isLast: isLastRow },
102
+ selectable === 'multiple' && (React.createElement(DataListBase.Cell, null,
103
+ React.createElement(Checkbox, { "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows), checked: isChecked, indeterminate: isChecked && !allSelected, disabled: group.length === 0, onChange: getOnSelectionChangeForId(nestedRowIds) }))),
100
104
  React.createElement(DataListBase.Cell, { className: tw('gap-3'), style: { paddingLeft: `${GAP + level * INDENTATION}px`, gridColumn: `${selectable ? 2 : 1} / -1` } },
101
105
  React.createElement(Accordion.Toggle, { panelId: key, onChange: onGroupToggled }),
102
106
  renderGroupName(key, group)))),
103
- React.createElement(DataListBase.Row, { subgroup: true },
104
- React.createElement(Accordion.UnanimatedPanel, { panelId: key },
105
- React.createElement(DataListGroup, Object.assign({ key: key, groupKey: key, level: level + 1 }, props, { groups: group }))))));
107
+ React.createElement(Accordion.UnanimatedPanel, { panelId: key },
108
+ React.createElement(DataListBase.Row, { subgroup: true },
109
+ React.createElement(DataListGroup, Object.assign({ key: key, groupKey: key, level: level + 1 }, props, { groups: group, isLastGroup: isLastGroup && index === groupKeys.length - 1 }))))));
106
110
  } }));
107
111
  };
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxpc3RHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRGF0YUxpc3QvRGF0YUxpc3RHcm91cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFN0QsT0FBTyxFQUNMLGNBQWMsRUFDZCxTQUFTLEdBS1YsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEMsT0FBTyxRQUFRLE1BQU0sb0JBQW9CLENBQUM7QUFHMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV0QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDZCxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7QUFFdkIsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFtQixFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMs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
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxpc3RHcm91cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRGF0YUxpc3QvRGF0YUxpc3RHcm91cC50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsSUFBSSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFDTCxjQUFjLEVBQ2QsU0FBUyxHQUtWLE1BQU0sdUJBQXVCLENBQUM7QUFDL0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhDLE9BQU8sUUFBUSxNQUFNLG9CQUFvQixDQUFDO0FBRzFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEMsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ2QsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO0FBRXZCLE1BQU0sYUFBYSxHQUFHLENBQUMsU0FBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtB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
@@ -8,8 +8,8 @@ export const DataListSkeleton = ({ columns = ['1', '2', '2', 52], rows = 5 }) =>
8
8
  return (React.createElement(Template, { role: "table", columns: columns },
9
9
  React.createElement(DataListBase.Row, null, columnsAmount.map((_, index) => (React.createElement(DataListBase.HeadCell, { key: index },
10
10
  React.createElement(Skeleton, { width: "100%", height: 17.5 }))))),
11
- React.createElement(List, { items: [...Array(rows).keys()], renderItem: (item) => (React.createElement(DataListBase.Row, { key: item },
11
+ React.createElement(List, { items: [...Array(rows).keys()], renderItem: (item, index) => (React.createElement(DataListBase.Row, { key: item, isLast: index === rows - 1 },
12
12
  React.createElement(List, { items: columnsAmount, renderItem: (key) => (React.createElement(DataListBase.Cell, { key: key },
13
13
  React.createElement(Skeleton, { width: "100%", height: 17.5 }))) }))) })));
14
14
  };
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxpc3RTa2VsZXRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRGF0YUxpc3QvRGF0YUxpc3RTa2VsZXRvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFPN0QsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTRCLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUN2RyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxPQUFPLENBQ0wsb0JBQUMsUUFBUSxJQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU87UUFDckMsb0JBQUMsWUFBWSxDQUFDLEdBQUcsUUFDZCxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDL0Isb0JBQUMsWUFBWSxDQUFDLFFBQVEsSUFBQyxHQUFHLEVBQUUsS0FBSztZQUMvQixvQkFBQyxRQUFRLElBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUUsSUFBSSxHQUFJLENBQ2pCLENBQ3pCLENBQUMsQ0FDZTtRQUNuQixvQkFBQyxJQUFJLElBQ0gsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDOUIsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUNwQixvQkFBQyxZQUFZLENBQUMsR0FBRyxJQUFDLEdBQUcsRUFBRSxJQUFJO2dCQUN6QixvQkFBQyxJQUFJLElBQ0gsS0FBSyxFQUFFLGFBQWEsRUFDcEIsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUNuQixvQkFBQyxZQUFZLENBQUMsSUFBSSxJQUFDLEdBQUcsRUFBRSxHQUFHO3dCQUN6QixvQkFBQyxRQUFRLElBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUUsSUFBSSxHQUFJLENBQ3JCLENBQ3JCLEdBQ0QsQ0FDZSxDQUNwQixHQUNELENBQ08sQ0FDWixDQUFDO0FBQ0osQ0FBQyxDQUFDIn0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGF0YUxpc3RTa2VsZXRvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9tb2xlY3VsZXMvRGF0YUxpc3QvRGF0YUxpc3RTa2VsZXRvbi50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBRTFCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsUUFBUSxJQUFJLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFlLE1BQU0sc0JBQXNCLENBQUM7QUFPN0QsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQTRCLENBQUMsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRTtJQUN2RyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDLE9BQU8sT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUNoRyxPQUFPLENBQ0wsb0JBQUMsUUFBUSxJQUFDLElBQUksRUFBQyxPQUFPLEVBQUMsT0FBTyxFQUFFLE9BQU87UUFDckMsb0JBQUMsWUFBWSxDQUFDLEdBQUcsUUFDZCxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDL0Isb0JBQUMsWUFBWSxDQUFDLFFBQVEsSUFBQyxHQUFHLEVBQUUsS0FBSztZQUMvQixvQkFBQyxRQUFRLElBQUMsS0FBSyxFQUFDLE1BQU0sRUFBQyxNQUFNLEVBQUUsSUFBSSxHQUFJLENBQ2pCLENBQ3pCLENBQUMsQ0FDZTtRQUNuQixvQkFBQyxJQUFJLElBQ0gsS0FBSyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsRUFDOUIsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FDM0Isb0JBQUMsWUFBWSxDQUFDLEdBQUcsSUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEtBQUssSUFBSSxHQUFHLENBQUM7Z0JBQ3JELG9CQUFDLElBQUksSUFDSCxLQUFLLEVBQUUsYUFBYSxFQUNwQixVQUFVLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQ25CLG9CQUFDLFlBQVksQ0FBQyxJQUFJLElBQUMsR0FBRyxFQUFFLEdBQUc7d0JBQ3pCLG9CQUFDLFFBQVEsSUFBQyxLQUFLLEVBQUMsTUFBTSxFQUFDLE1BQU0sRUFBRSxJQUFJLEdBQUksQ0FDckIsQ0FDckIsR0FDRCxDQUNlLENBQ3BCLEdBQ0QsQ0FDTyxDQUNaLENBQUM7QUFDSixDQUFDLENBQUMifQ==
package/dist/styles.css CHANGED
@@ -2141,6 +2141,10 @@ input[type='number'].no-arrows {
2141
2141
  border-color: white;
2142
2142
  border-color: var(--aquarium-colors-white);
2143
2143
  }
2144
+ .border-b-transparent{
2145
+ border-bottom-color: transparent;
2146
+ border-bottom-color: var(--aquarium-colors-transparent);
2147
+ }
2144
2148
  .bg-black{
2145
2149
  background-color: black;
2146
2150
  background-color: var(--aquarium-colors-black);
@@ -3746,10 +3750,6 @@ input[type='number'].no-arrows {
3746
3750
  .active\:ring-primary-default:active{
3747
3751
  --tw-ring-color: var(--aquarium-border-color-primary-default);
3748
3752
  }
3749
- .group:last-of-type .group-last-of-type\:border-b-0{
3750
- border-bottom-width: 0px;
3751
- border-bottom-width: var(--aquarium-border-width-0);
3752
- }
3753
3753
  .peer\/switch:checked~.peer-checked\/switch\:left-1{
3754
3754
  left: 2px;
3755
3755
  }
@@ -4398,6 +4398,10 @@ input[type='number'].no-arrows {
4398
4398
  .\[\&\>\*\:not\(\:first-child\)\]\:-ml-3>*:not(:first-child){
4399
4399
  margin-left: -8px;
4400
4400
  }
4401
+ .\[\&\>\*\]\:border-b-transparent>*{
4402
+ border-bottom-color: transparent;
4403
+ border-bottom-color: var(--aquarium-colors-transparent);
4404
+ }
4401
4405
  .\[\&\>\*\]\:bg-primary-active>*{
4402
4406
  background-color: rgba(243,246,255,1);
4403
4407
  background-color: var(--aquarium-background-color-primary-active);
package/dist/system.cjs CHANGED
@@ -11445,7 +11445,7 @@ var Cell = (_a) => {
11445
11445
  cellClassNames,
11446
11446
  getBodyCellClassNames(false, stickyColumn),
11447
11447
  getAlignClassNames2(align),
11448
- tw("border-default group-last-of-type:border-b-0"),
11448
+ tw("border-default"),
11449
11449
  className
11450
11450
  )
11451
11451
  }));
@@ -11456,18 +11456,21 @@ var Row = (_a) => {
11456
11456
  disabled,
11457
11457
  header,
11458
11458
  subgroup,
11459
- active
11459
+ active,
11460
+ isLast
11460
11461
  } = _b, rest = __objRest(_b, [
11461
11462
  "className",
11462
11463
  "disabled",
11463
11464
  "header",
11464
11465
  "subgroup",
11465
- "active"
11466
+ "active",
11467
+ "isLast"
11466
11468
  ]);
11467
11469
  return /* @__PURE__ */ import_react70.default.createElement("div", __spreadProps(__spreadValues(__spreadProps(__spreadValues({}, rest), {
11468
11470
  role: subgroup ? "rowgroup" : "row"
11469
11471
  }), { inert: disabled ? "" : void 0 }), {
11470
11472
  className: classNames(tw("contents"), className, {
11473
+ "[&>*]:border-b-transparent": isLast,
11471
11474
  "children:opacity-70": disabled,
11472
11475
  "[&>*]:bg-primary-active": active,
11473
11476
  "[&>*]:hover:bg-muted": !disabled && !header
@@ -12173,19 +12176,32 @@ var DataListRow = ({
12173
12176
  menu,
12174
12177
  active,
12175
12178
  disabled,
12179
+ isLast,
12180
+ selectionDisabled,
12176
12181
  rowClassName,
12177
12182
  renderFirstColumn,
12178
12183
  additionalRowProps = () => ({}),
12179
12184
  additionalColumnProps = () => ({}),
12180
- stickyStyles
12185
+ stickyStyles,
12186
+ onClick
12181
12187
  }) => {
12182
- var _a;
12188
+ var _a, _b, _c;
12189
+ const resolvedAdditionalRowProps = additionalRowProps(row, index, rows);
12183
12190
  const isRowDisabled = (_a = disabled == null ? void 0 : disabled(row, index, rows)) != null ? _a : false;
12184
- return /* @__PURE__ */ import_react75.default.createElement(DataList.Row, __spreadValues({
12191
+ const isRowSelectionDisabled = (_b = selectionDisabled == null ? void 0 : selectionDisabled(row, index, rows)) != null ? _b : false;
12192
+ const isRowClickable = !isRowDisabled && !isRowSelectionDisabled && !!onClick;
12193
+ const style = __spreadProps(__spreadValues({}, (_c = resolvedAdditionalRowProps.style) != null ? _c : {}), {
12194
+ cursor: isRowClickable ? "pointer" : void 0
12195
+ });
12196
+ return /* @__PURE__ */ import_react75.default.createElement(DataList.Row, __spreadProps(__spreadValues({
12185
12197
  key: row.id,
12186
12198
  disabled: isRowDisabled,
12187
- active
12188
- }, additionalRowProps(row, index, rows)), renderFirstColumn == null ? void 0 : renderFirstColumn(row, index, rows), /* @__PURE__ */ import_react75.default.createElement(List, {
12199
+ active,
12200
+ isLast
12201
+ }, resolvedAdditionalRowProps), {
12202
+ style,
12203
+ onClick: isRowClickable ? onClick : void 0
12204
+ }), renderFirstColumn == null ? void 0 : renderFirstColumn(row, index, rows), /* @__PURE__ */ import_react75.default.createElement(List, {
12189
12205
  items: columns,
12190
12206
  renderItem: (column, columnIndex) => {
12191
12207
  const cell2 = /* @__PURE__ */ import_react75.default.createElement(DataList.Cell, __spreadProps(__spreadValues(__spreadValues({}, cellProps(column)), additionalColumnProps(column, columnIndex, columns, row)), {
@@ -12226,9 +12242,14 @@ var DataListCell = ({
12226
12242
  case "action": {
12227
12243
  const action = renameProperty("text", "children", column.action(row, index, rows));
12228
12244
  if (action) {
12229
- cellContent = /* @__PURE__ */ import_react75.default.createElement(Button.Secondary, __spreadValues({
12245
+ cellContent = /* @__PURE__ */ import_react75.default.createElement(Button.Secondary, __spreadProps(__spreadValues({
12230
12246
  dense: true
12231
- }, action));
12247
+ }, action), {
12248
+ onClick: (e) => {
12249
+ action.onClick();
12250
+ e.stopPropagation();
12251
+ }
12252
+ }));
12232
12253
  }
12233
12254
  break;
12234
12255
  }
@@ -12280,7 +12301,7 @@ var flattenRows = (rows) => areRowsGrouped(rows) ? Object.values(rows).flatMap(f
12280
12301
  var GAP = 8;
12281
12302
  var INDENTATION = 28;
12282
12303
  var sortGroupKeys = (groupKeys) => [...groupKeys].sort((a) => a === "undefined" ? -1 : 1);
12283
- var getDefaultRowCheckboxLabel = () => "Select row";
12304
+ var getDefaultRowSelectionLabel = () => "Select row";
12284
12305
  var getDefaultGroupCheckboxLabel = (key) => `Select ${key}`;
12285
12306
  var renderDefaultGroupName = (key) => /* @__PURE__ */ import_react77.default.createElement(import_react77.default.Fragment, null, "Group: ", /* @__PURE__ */ import_react77.default.createElement("b", null, key));
12286
12307
  var renderDefaultEmptyGroup = () => /* @__PURE__ */ import_react77.default.createElement(DataList.EmptyGroup, {
@@ -12290,11 +12311,13 @@ var DataListGroup = (_a) => {
12290
12311
  var _b = _a, {
12291
12312
  groups,
12292
12313
  groupKey,
12293
- level = 0
12314
+ level = 0,
12315
+ isLastGroup
12294
12316
  } = _b, props = __objRest(_b, [
12295
12317
  "groups",
12296
12318
  "groupKey",
12297
- "level"
12319
+ "level",
12320
+ "isLastGroup"
12298
12321
  ]);
12299
12322
  const {
12300
12323
  columns,
@@ -12312,16 +12335,18 @@ var DataListGroup = (_a) => {
12312
12335
  rows,
12313
12336
  selectable,
12314
12337
  selectedRows,
12315
- onSelectionChange,
12338
+ getOnSelectionChangeForId,
12316
12339
  selectionDisabled = () => false,
12317
- getRowCheckboxLabel = getDefaultRowCheckboxLabel,
12340
+ getRowSelectionLabel = getDefaultRowSelectionLabel,
12318
12341
  getGroupCheckboxLabel = getDefaultGroupCheckboxLabel
12319
12342
  } = props;
12320
12343
  const groupKeys = groups ? Object.keys(groups) : void 0;
12321
12344
  const hasCustomRowForGroup = (0, import_isFunction2.default)(getGroupRow);
12322
12345
  if (!areRowsGrouped(groups)) {
12323
12346
  if (groups.length === 0 && groupKey && groupKey !== "undefined") {
12324
- return /* @__PURE__ */ import_react77.default.createElement(DataList.Row, null, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null), /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, {
12347
+ return /* @__PURE__ */ import_react77.default.createElement(DataList.Row, {
12348
+ isLast: isLastGroup
12349
+ }, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null), /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, {
12325
12350
  style: { paddingLeft: `${2 + GAP + level * INDENTATION}px`, gridColumn: `${selectable ? 2 : 1} / -1` }
12326
12351
  }, /* @__PURE__ */ import_react77.default.createElement(Typography, {
12327
12352
  variant: "small",
@@ -12332,16 +12357,18 @@ var DataListGroup = (_a) => {
12332
12357
  items: groups,
12333
12358
  renderItem: (row, index) => {
12334
12359
  var _a2;
12335
- const isChecked = (_a2 = selectedRows == null ? void 0 : selectedRows.includes(row.id)) != null ? _a2 : false;
12360
+ const isSelected = (_a2 = selectedRows == null ? void 0 : selectedRows.includes(row.id)) != null ? _a2 : false;
12336
12361
  const isDisabled = disabled == null ? void 0 : disabled(row, index, rows);
12337
12362
  const isSelectionDisabled = selectionDisabled(row, index, rows);
12363
+ const isLastRow = isLastGroup && index === groups.length - 1;
12338
12364
  return /* @__PURE__ */ import_react77.default.createElement(DataListRow, {
12339
12365
  key: row.id,
12340
12366
  columns,
12341
12367
  row,
12342
12368
  index,
12369
+ isLast: isLastRow,
12343
12370
  rows,
12344
- active: selectable && isChecked,
12371
+ active: selectable && isSelected,
12345
12372
  menu: /* @__PURE__ */ import_react77.default.createElement(DataListRowMenu, {
12346
12373
  row,
12347
12374
  index,
@@ -12351,9 +12378,10 @@ var DataListGroup = (_a) => {
12351
12378
  menuAriaLabel
12352
12379
  }),
12353
12380
  disabled,
12381
+ selectionDisabled,
12354
12382
  rowClassName,
12355
12383
  additionalRowProps: () => selectable ? {
12356
- "aria-selected": isChecked
12384
+ "aria-selected": isSelected
12357
12385
  } : {},
12358
12386
  additionalColumnProps: (_, columnIndex) => columnIndex === 0 ? {
12359
12387
  style: {
@@ -12361,13 +12389,20 @@ var DataListGroup = (_a) => {
12361
12389
  }
12362
12390
  } : {},
12363
12391
  renderFirstColumn: (row2, index2) => {
12364
- return /* @__PURE__ */ import_react77.default.createElement(import_react77.default.Fragment, null, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react77.default.createElement(Checkbox, {
12365
- "aria-label": getRowCheckboxLabel(row2, index2, isChecked, rows),
12366
- onChange: onSelectionChange(row2.id),
12367
- checked: isChecked,
12392
+ return /* @__PURE__ */ import_react77.default.createElement(import_react77.default.Fragment, null, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, selectable === "single" && /* @__PURE__ */ import_react77.default.createElement(RadioButton, {
12393
+ value: row2.id.toString(),
12394
+ "aria-label": getRowSelectionLabel(row2, index2, isSelected, rows),
12395
+ onChange: getOnSelectionChangeForId(row2.id),
12396
+ checked: isSelected,
12397
+ disabled: isDisabled || isSelectionDisabled
12398
+ }), selectable === "multiple" && /* @__PURE__ */ import_react77.default.createElement(Checkbox, {
12399
+ "aria-label": getRowSelectionLabel(row2, index2, isSelected, rows),
12400
+ onChange: getOnSelectionChangeForId(row2.id),
12401
+ checked: isSelected,
12368
12402
  disabled: isDisabled || isSelectionDisabled
12369
12403
  })));
12370
- }
12404
+ },
12405
+ onClick: selectable === "single" ? getOnSelectionChangeForId(row.id) : void 0
12371
12406
  });
12372
12407
  }
12373
12408
  });
@@ -12386,7 +12421,8 @@ var DataListGroup = (_a) => {
12386
12421
  groupKey: "undefined",
12387
12422
  level
12388
12423
  }, props), {
12389
- groups: group
12424
+ groups: group,
12425
+ isLastGroup: isLastGroup && index === groupKeys.length - 1
12390
12426
  }));
12391
12427
  }
12392
12428
  const openPanelId = expandedGroupIds ? (_a2 = expandedGroupIds.find((id) => id === key)) != null ? _a2 : null : void 0;
@@ -12394,17 +12430,20 @@ var DataListGroup = (_a) => {
12394
12430
  const nestedSelectedIds = (_b2 = selectedRows == null ? void 0 : selectedRows.filter((id) => nestedRowIds.includes(id))) != null ? _b2 : [];
12395
12431
  const allSelected = nestedRowIds.length === nestedSelectedIds.length;
12396
12432
  const isChecked = nestedSelectedIds.length > 0;
12433
+ const isActiveRow = !!openPanelId || selectable && isChecked;
12434
+ const isLastRow = isLastGroup && index === groupKeys.length - 1 && !openPanelId;
12397
12435
  return /* @__PURE__ */ import_react77.default.createElement(Accordion, {
12398
12436
  key,
12399
12437
  openPanelId
12400
12438
  }, hasCustomRowForGroup && /* @__PURE__ */ import_react77.default.createElement(DataList.Row, {
12401
- active: !!openPanelId || selectable && isChecked
12402
- }, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react77.default.createElement(Checkbox, {
12439
+ active: isActiveRow,
12440
+ isLast: isLastRow
12441
+ }, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, selectable === "multiple" && /* @__PURE__ */ import_react77.default.createElement(Checkbox, {
12403
12442
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
12404
12443
  checked: isChecked,
12405
12444
  indeterminate: isChecked && !allSelected,
12406
12445
  disabled: group.length === 0,
12407
- onChange: onSelectionChange(nestedRowIds)
12446
+ onChange: getOnSelectionChangeForId(nestedRowIds)
12408
12447
  })), /* @__PURE__ */ import_react77.default.createElement(List, {
12409
12448
  items: columns,
12410
12449
  renderItem: (column, idx) => /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, __spreadProps(__spreadValues({}, cellProps(column)), {
@@ -12427,29 +12466,31 @@ var DataListGroup = (_a) => {
12427
12466
  onMenuOpenChange,
12428
12467
  menuAriaLabel
12429
12468
  })), !hasCustomRowForGroup && /* @__PURE__ */ import_react77.default.createElement(DataList.Row, {
12430
- active: !!openPanelId || selectable && isChecked
12431
- }, selectable && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react77.default.createElement(Checkbox, {
12469
+ active: isActiveRow,
12470
+ isLast: isLastRow
12471
+ }, selectable === "multiple" && /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react77.default.createElement(Checkbox, {
12432
12472
  "aria-label": getGroupCheckboxLabel(key, group, index, isChecked, rows),
12433
12473
  checked: isChecked,
12434
12474
  indeterminate: isChecked && !allSelected,
12435
12475
  disabled: group.length === 0,
12436
- onChange: onSelectionChange(nestedRowIds)
12476
+ onChange: getOnSelectionChangeForId(nestedRowIds)
12437
12477
  })), /* @__PURE__ */ import_react77.default.createElement(DataList.Cell, {
12438
12478
  className: tw("gap-3"),
12439
12479
  style: { paddingLeft: `${GAP + level * INDENTATION}px`, gridColumn: `${selectable ? 2 : 1} / -1` }
12440
12480
  }, /* @__PURE__ */ import_react77.default.createElement(Accordion.Toggle, {
12441
12481
  panelId: key,
12442
12482
  onChange: onGroupToggled
12443
- }), renderGroupName(key, group))), /* @__PURE__ */ import_react77.default.createElement(DataList.Row, {
12444
- subgroup: true
12445
- }, /* @__PURE__ */ import_react77.default.createElement(Accordion.UnanimatedPanel, {
12483
+ }), renderGroupName(key, group))), /* @__PURE__ */ import_react77.default.createElement(Accordion.UnanimatedPanel, {
12446
12484
  panelId: key
12485
+ }, /* @__PURE__ */ import_react77.default.createElement(DataList.Row, {
12486
+ subgroup: true
12447
12487
  }, /* @__PURE__ */ import_react77.default.createElement(DataListGroup, __spreadProps(__spreadValues({
12448
12488
  key,
12449
12489
  groupKey: key,
12450
12490
  level: level + 1
12451
12491
  }, props), {
12452
- groups: group
12492
+ groups: group,
12493
+ isLastGroup: isLastGroup && index === groupKeys.length - 1
12453
12494
  })))));
12454
12495
  }
12455
12496
  });
@@ -12469,8 +12510,9 @@ var DataListSkeleton = ({ columns = ["1", "2", "2", 52], rows = 5 }) => {
12469
12510
  height: 17.5
12470
12511
  })))), /* @__PURE__ */ import_react78.default.createElement(List, {
12471
12512
  items: [...Array(rows).keys()],
12472
- renderItem: (item) => /* @__PURE__ */ import_react78.default.createElement(DataList.Row, {
12473
- key: item
12513
+ renderItem: (item, index) => /* @__PURE__ */ import_react78.default.createElement(DataList.Row, {
12514
+ key: item,
12515
+ isLast: index === rows - 1
12474
12516
  }, /* @__PURE__ */ import_react78.default.createElement(List, {
12475
12517
  items: columnsAmount,
12476
12518
  renderItem: (key) => /* @__PURE__ */ import_react78.default.createElement(DataList.Cell, {
@@ -12535,13 +12577,13 @@ var DataList2 = (_a) => {
12535
12577
  getGroupRow,
12536
12578
  renderGroupName,
12537
12579
  renderEmptyGroup,
12538
- onGroupToggled,
12539
- expandedGroupIds,
12580
+ onGroupToggled: _onGroupToggled,
12581
+ expandedGroupIds: _expandedGroupIds,
12540
12582
  defaultSort,
12541
12583
  onSortChanged,
12542
12584
  selectable,
12543
12585
  selectionDisabled = () => false,
12544
- getRowCheckboxLabel = getDefaultRowCheckboxLabel,
12586
+ getRowSelectionLabel = getDefaultRowSelectionLabel,
12545
12587
  getGroupCheckboxLabel = getDefaultGroupCheckboxLabel,
12546
12588
  selectedRows,
12547
12589
  defaultSelectedRows = [],
@@ -12571,7 +12613,7 @@ var DataList2 = (_a) => {
12571
12613
  "onSortChanged",
12572
12614
  "selectable",
12573
12615
  "selectionDisabled",
12574
- "getRowCheckboxLabel",
12616
+ "getRowSelectionLabel",
12575
12617
  "getGroupCheckboxLabel",
12576
12618
  "selectedRows",
12577
12619
  "defaultSelectedRows",
@@ -12587,6 +12629,15 @@ var DataList2 = (_a) => {
12587
12629
  defaultSelectedRows,
12588
12630
  (value) => onSelectionChange == null ? void 0 : onSelectionChange(value != null ? value : [])
12589
12631
  );
12632
+ const [expandedGroupIds, setExpandedGroupIds] = (0, import_utils15.useControlledState)(_expandedGroupIds, []);
12633
+ const onGroupToggled = (id, open) => {
12634
+ if (!open) {
12635
+ setExpandedGroupIds([...expandedGroupIds, id]);
12636
+ } else {
12637
+ setExpandedGroupIds(expandedGroupIds.filter((panelId) => panelId !== id));
12638
+ }
12639
+ _onGroupToggled == null ? void 0 : _onGroupToggled(id, open);
12640
+ };
12590
12641
  const defaultSortedColumn = columns.find((c) => c.headerName === (defaultSort == null ? void 0 : defaultSort.headerName));
12591
12642
  const initialSortState = defaultSortedColumn ? { column: defaultSortedColumn, direction: (_a2 = defaultSort == null ? void 0 : defaultSort.direction) != null ? _a2 : "ascending" } : {};
12592
12643
  const [sort, updateSort] = useTableSort(__spreadProps(__spreadValues({}, initialSortState), { onSortChanged }));
@@ -12611,9 +12662,11 @@ var DataList2 = (_a) => {
12611
12662
  }, children)),
12612
12663
  []
12613
12664
  );
12614
- const handleSelectionChange = (id) => (e) => {
12665
+ const getOnSelectionChangeForId = (id) => (e) => {
12615
12666
  const ids = (0, import_castArray2.default)(id);
12616
- if (e.target.checked) {
12667
+ if (selectable === "single") {
12668
+ setSelected(ids);
12669
+ } else if ("checked" in e.target && e.target.checked) {
12617
12670
  setSelected([...selected != null ? selected : [], ...ids]);
12618
12671
  } else {
12619
12672
  setSelected(selected == null ? void 0 : selected.filter((_id) => !ids.includes(_id)));
@@ -12636,7 +12689,7 @@ var DataList2 = (_a) => {
12636
12689
  }, selectable && /* @__PURE__ */ import_react80.default.createElement(DataList.HeadCell, {
12637
12690
  align: "left",
12638
12691
  sticky
12639
- }, /* @__PURE__ */ import_react80.default.createElement(Checkbox, {
12692
+ }, selectable === "multiple" && /* @__PURE__ */ import_react80.default.createElement(Checkbox, {
12640
12693
  "aria-label": "Select all rows",
12641
12694
  indeterminate: totalSelected > 0 && totalSelected < allRows.length,
12642
12695
  checked: totalSelected > 0,
@@ -12697,29 +12750,33 @@ var DataList2 = (_a) => {
12697
12750
  selectable,
12698
12751
  selectionDisabled,
12699
12752
  selectedRows: selected,
12700
- onSelectionChange: handleSelectionChange,
12701
- getRowCheckboxLabel,
12753
+ getOnSelectionChangeForId,
12754
+ getRowSelectionLabel,
12702
12755
  getGroupCheckboxLabel,
12703
12756
  rows,
12704
12757
  groups,
12705
12758
  groupKey: void 0,
12706
- level: 0
12759
+ level: 0,
12760
+ isLastGroup: true
12707
12761
  }), !groups && /* @__PURE__ */ import_react80.default.createElement(List, __spreadProps(__spreadValues({}, rest), {
12708
12762
  paginationContainer: PaginationFooter,
12709
12763
  items: sortedRows,
12710
12764
  renderItem: (row, index) => {
12711
12765
  var _a3;
12712
12766
  const details = rowDetails == null ? void 0 : rowDetails(row, index, sortedRows);
12713
- const isChecked = (_a3 = selected == null ? void 0 : selected.includes(row.id)) != null ? _a3 : false;
12767
+ const isSelected = (_a3 = selected == null ? void 0 : selected.includes(row.id)) != null ? _a3 : false;
12714
12768
  const isSelectionDisabled = selectionDisabled == null ? void 0 : selectionDisabled(row, index, sortedRows);
12715
12769
  const isDisabled = disabled == null ? void 0 : disabled(row, index, sortedRows);
12770
+ const openPanelId = expandedGroupIds.find((id) => id === row.id.toString()) || null;
12771
+ const isLastRow = index === sortedRows.length - 1;
12716
12772
  const content = /* @__PURE__ */ import_react80.default.createElement(DataListRow, {
12717
12773
  key: row.id,
12718
12774
  columns,
12719
12775
  row,
12720
12776
  index,
12721
12777
  rows: sortedRows,
12722
- active: selectable && isChecked,
12778
+ active: selectable && isSelected,
12779
+ isLast: isLastRow && !openPanelId,
12723
12780
  stickyStyles,
12724
12781
  menu: /* @__PURE__ */ import_react80.default.createElement(DataListRowMenu, {
12725
12782
  row,
@@ -12730,6 +12787,7 @@ var DataList2 = (_a) => {
12730
12787
  menuAriaLabel
12731
12788
  }),
12732
12789
  disabled,
12790
+ selectionDisabled,
12733
12791
  rowClassName,
12734
12792
  additionalRowProps: (row2) => {
12735
12793
  var _a4;
@@ -12738,27 +12796,36 @@ var DataList2 = (_a) => {
12738
12796
  } : {};
12739
12797
  },
12740
12798
  renderFirstColumn: (row2, index2) => {
12741
- return /* @__PURE__ */ import_react80.default.createElement(import_react80.default.Fragment, null, selectable && /* @__PURE__ */ import_react80.default.createElement(DataList.Cell, null, /* @__PURE__ */ import_react80.default.createElement(Checkbox, {
12742
- "aria-label": getRowCheckboxLabel(row2, index2, isChecked, sortedRows),
12743
- onChange: handleSelectionChange(row2.id),
12744
- checked: isChecked,
12799
+ return /* @__PURE__ */ import_react80.default.createElement(import_react80.default.Fragment, null, selectable && /* @__PURE__ */ import_react80.default.createElement(DataList.Cell, null, selectable === "single" && /* @__PURE__ */ import_react80.default.createElement(RadioButton, {
12800
+ value: row2.id.toString(),
12801
+ "aria-label": getRowSelectionLabel(row2, index2, isSelected, sortedRows),
12802
+ onChange: getOnSelectionChangeForId(row2.id),
12803
+ checked: isSelected,
12804
+ disabled: isDisabled || isSelectionDisabled
12805
+ }), selectable === "multiple" && /* @__PURE__ */ import_react80.default.createElement(Checkbox, {
12806
+ "aria-label": getRowSelectionLabel(row2, index2, isSelected, sortedRows),
12807
+ onChange: getOnSelectionChangeForId(row2.id),
12808
+ checked: isSelected,
12745
12809
  disabled: isDisabled || isSelectionDisabled
12746
12810
  })), rowDetails !== void 0 && /* @__PURE__ */ import_react80.default.createElement(DataList.Cell, null, details && /* @__PURE__ */ import_react80.default.createElement(Accordion.Toggle, {
12747
12811
  panelId: row2.id.toString(),
12748
12812
  onChange: onGroupToggled
12749
12813
  })));
12750
- }
12814
+ },
12815
+ onClick: selectable === "single" ? getOnSelectionChangeForId(row.id) : void 0
12751
12816
  });
12752
12817
  if (!details) {
12753
12818
  return content;
12754
12819
  }
12755
12820
  return /* @__PURE__ */ import_react80.default.createElement(Accordion, {
12756
12821
  key: row.id,
12757
- openPanelId: expandedGroupIds ? expandedGroupIds.find((id) => id === row.id) || null : void 0
12822
+ openPanelId
12758
12823
  }, content, /* @__PURE__ */ import_react80.default.createElement(Accordion.Panel, {
12759
12824
  role: "row",
12760
12825
  panelId: row.id.toString(),
12761
- className: tw("col-span-full bg-muted border-b border-default"),
12826
+ className: tw("col-span-full bg-muted border-default", {
12827
+ "border-b": !isLastRow
12828
+ }),
12762
12829
  "aria-label": `row ${row.id.toString()} details`
12763
12830
  }, /* @__PURE__ */ import_react80.default.createElement("div", {
12764
12831
  role: "cell"