@coveord/plasma-mantine 56.10.0 → 56.12.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.
- package/.turbo/turbo-build.log +4 -4
- package/.turbo/turbo-test.log +107 -112
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/Card/Card.d.ts.map +1 -1
- package/dist/cjs/components/Card/Card.js +1 -0
- package/dist/cjs/components/Card/Card.js.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -0
- package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
- package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js +46 -55
- package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/cjs/components/Tabs/Tabs.js +4 -0
- package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +1 -0
- package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
- package/dist/esm/components/Card/Card.d.ts.map +1 -1
- package/dist/esm/components/Card/Card.js +2 -0
- package/dist/esm/components/Card/Card.js.map +1 -1
- package/dist/esm/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/esm/components/SegmentedControl/SegmentedControl.js +2 -0
- package/dist/esm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
- package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js +47 -51
- package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +5 -0
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip/Tooltip.js +2 -0
- package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
- package/package.json +3 -3
- package/src/components/Card/Card.ts +4 -0
- package/src/components/SegmentedControl/SegmentedControl.ts +4 -0
- package/src/components/Table/__tests__/{TableColumnsSelectorHeader.spec.tsx → TableColumnsSelector.spec.tsx} +3 -2
- package/src/components/Table/table-columns-selector/TableColumnsSelector.tsx +36 -46
- package/src/components/Tabs/Tabs.ts +7 -0
- package/src/components/Tooltip/Tooltip.ts +4 -0
|
@@ -21,7 +21,7 @@ const getBaseColumns = (): Array<ColumnDef<RowData>> => [
|
|
|
21
21
|
TableActionsColumn as ColumnDef<RowData>,
|
|
22
22
|
];
|
|
23
23
|
|
|
24
|
-
describe('
|
|
24
|
+
describe('TableColumnsSelector', () => {
|
|
25
25
|
it('renders the column selector button in the actions column header when rowConfigurable is true', () => {
|
|
26
26
|
const Fixture = () => {
|
|
27
27
|
const store = useTable<RowData>();
|
|
@@ -269,7 +269,8 @@ describe('TableColumnsSelectorHeader', () => {
|
|
|
269
269
|
|
|
270
270
|
await user.click(screen.getByRole('button', {name: 'settings'}));
|
|
271
271
|
|
|
272
|
-
|
|
272
|
+
await screen.findByRole('checkbox', {name: 'Name'});
|
|
273
|
+
expect(screen.getByText('You can display up to 5 columns.')).toBeInTheDocument();
|
|
273
274
|
});
|
|
274
275
|
|
|
275
276
|
it('does not render a footer when maxSelectableColumns is not set', async () => {
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {IconSettings} from '@coveord/plasma-react-icons';
|
|
2
|
-
import {Checkbox,
|
|
2
|
+
import {Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip} from '@mantine/core';
|
|
3
|
+
import {useDisclosure} from '@mantine/hooks';
|
|
3
4
|
import {flexRender, Header, Table} from '@tanstack/react-table';
|
|
4
5
|
import {ActionIcon} from '../../ActionIcon/ActionIcon';
|
|
5
6
|
|
|
@@ -47,12 +48,7 @@ export const TableColumnsSelectorHeader = ({table, options}: TableColumnsSelecto
|
|
|
47
48
|
...options,
|
|
48
49
|
};
|
|
49
50
|
|
|
50
|
-
const
|
|
51
|
-
onDropdownClose: () => {
|
|
52
|
-
combobox.resetSelectedOption();
|
|
53
|
-
},
|
|
54
|
-
onDropdownOpen: () => combobox.updateSelectedOptionIndex('active'),
|
|
55
|
-
});
|
|
51
|
+
const [opened, {toggle, close}] = useDisclosure(false);
|
|
56
52
|
|
|
57
53
|
const allColumns = table.getAllLeafColumns();
|
|
58
54
|
const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);
|
|
@@ -77,59 +73,53 @@ export const TableColumnsSelectorHeader = ({table, options}: TableColumnsSelecto
|
|
|
77
73
|
return {alwaysVisible, isDisabled, isVisible};
|
|
78
74
|
};
|
|
79
75
|
|
|
80
|
-
const handleOptionClick = (columnId: string) => {
|
|
81
|
-
const column = filteredColumns.find((col) => col.id === columnId);
|
|
82
|
-
if (column) {
|
|
83
|
-
const {isDisabled} = getColumnState(column);
|
|
84
|
-
if (!isDisabled) {
|
|
85
|
-
column.toggleVisibility();
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
|
|
90
76
|
const columnOptions = filteredColumns.map((column) => {
|
|
91
77
|
const {alwaysVisible, isDisabled, isVisible} = getColumnState(column);
|
|
92
78
|
|
|
93
79
|
return (
|
|
94
|
-
<
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
80
|
+
<Tooltip
|
|
81
|
+
label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}
|
|
82
|
+
disabled={!isDisabled}
|
|
83
|
+
position="left"
|
|
84
|
+
key={column.id}
|
|
85
|
+
>
|
|
86
|
+
<div>
|
|
87
|
+
<Checkbox
|
|
88
|
+
label={flexRender(column.columnDef.header, {
|
|
89
|
+
table,
|
|
90
|
+
column,
|
|
91
|
+
header: {column} as Header<unknown, unknown>,
|
|
92
|
+
})}
|
|
93
|
+
name={column.id}
|
|
94
|
+
checked={isVisible}
|
|
95
|
+
disabled={isDisabled}
|
|
96
|
+
onChange={column.getToggleVisibilityHandler()}
|
|
97
|
+
/>
|
|
98
|
+
</div>
|
|
99
|
+
</Tooltip>
|
|
113
100
|
);
|
|
114
101
|
});
|
|
115
102
|
|
|
116
103
|
return (
|
|
117
|
-
<
|
|
118
|
-
<
|
|
119
|
-
<ActionIcon.Tertiary onClick={
|
|
104
|
+
<Popover opened={opened} onClose={close} position="bottom-end" shadow="md">
|
|
105
|
+
<Popover.Target>
|
|
106
|
+
<ActionIcon.Tertiary onClick={toggle} aria-label="settings">
|
|
120
107
|
<IconSettings height={16} />
|
|
121
108
|
</ActionIcon.Tertiary>
|
|
122
|
-
</
|
|
123
|
-
<
|
|
124
|
-
<
|
|
109
|
+
</Popover.Target>
|
|
110
|
+
<Popover.Dropdown miw={270} pb="xs">
|
|
111
|
+
<ScrollArea.Autosize mah={200} type="auto">
|
|
112
|
+
<Stack gap="xs">{columnOptions}</Stack>
|
|
113
|
+
</ScrollArea.Autosize>
|
|
125
114
|
{effectiveMaxColumns && (
|
|
126
|
-
|
|
115
|
+
<>
|
|
116
|
+
<Divider my="xs" mx="-sm" />
|
|
127
117
|
<Text size="sm" c="dimmed">
|
|
128
118
|
{typeof footer === 'function' ? footer(effectiveMaxColumns) : footer}
|
|
129
119
|
</Text>
|
|
130
|
-
|
|
120
|
+
</>
|
|
131
121
|
)}
|
|
132
|
-
</
|
|
133
|
-
</
|
|
122
|
+
</Popover.Dropdown>
|
|
123
|
+
</Popover>
|
|
134
124
|
);
|
|
135
125
|
};
|