@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.
Files changed (40) hide show
  1. package/.turbo/turbo-build.log +4 -4
  2. package/.turbo/turbo-test.log +107 -112
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/Card/Card.d.ts.map +1 -1
  5. package/dist/cjs/components/Card/Card.js +1 -0
  6. package/dist/cjs/components/Card/Card.js.map +1 -1
  7. package/dist/cjs/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  8. package/dist/cjs/components/SegmentedControl/SegmentedControl.js +1 -0
  9. package/dist/cjs/components/SegmentedControl/SegmentedControl.js.map +1 -1
  10. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
  11. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js +46 -55
  12. package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  13. package/dist/cjs/components/Tabs/Tabs.d.ts.map +1 -1
  14. package/dist/cjs/components/Tabs/Tabs.js +4 -0
  15. package/dist/cjs/components/Tabs/Tabs.js.map +1 -1
  16. package/dist/cjs/components/Tooltip/Tooltip.d.ts.map +1 -1
  17. package/dist/cjs/components/Tooltip/Tooltip.js +1 -0
  18. package/dist/cjs/components/Tooltip/Tooltip.js.map +1 -1
  19. package/dist/esm/components/Card/Card.d.ts.map +1 -1
  20. package/dist/esm/components/Card/Card.js +2 -0
  21. package/dist/esm/components/Card/Card.js.map +1 -1
  22. package/dist/esm/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
  23. package/dist/esm/components/SegmentedControl/SegmentedControl.js +2 -0
  24. package/dist/esm/components/SegmentedControl/SegmentedControl.js.map +1 -1
  25. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.d.ts.map +1 -1
  26. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js +47 -51
  27. package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
  28. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  29. package/dist/esm/components/Tabs/Tabs.js +5 -0
  30. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  31. package/dist/esm/components/Tooltip/Tooltip.d.ts.map +1 -1
  32. package/dist/esm/components/Tooltip/Tooltip.js +2 -0
  33. package/dist/esm/components/Tooltip/Tooltip.js.map +1 -1
  34. package/package.json +3 -3
  35. package/src/components/Card/Card.ts +4 -0
  36. package/src/components/SegmentedControl/SegmentedControl.ts +4 -0
  37. package/src/components/Table/__tests__/{TableColumnsSelectorHeader.spec.tsx → TableColumnsSelector.spec.tsx} +3 -2
  38. package/src/components/Table/table-columns-selector/TableColumnsSelector.tsx +36 -46
  39. package/src/components/Tabs/Tabs.ts +7 -0
  40. 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('TableColumnsSelectorHeader', () => {
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
- expect(await screen.findByText('You can display up to 5 columns.')).toBeVisible();
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, Combobox, Text, Tooltip, useCombobox} from '@mantine/core';
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 combobox = useCombobox({
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
- <Combobox.Option value={column.id} key={column.id} disabled={isDisabled} active={isVisible}>
95
- <Tooltip
96
- label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}
97
- disabled={!isDisabled}
98
- position="left"
99
- >
100
- <div>
101
- <Checkbox
102
- checked={isVisible}
103
- label={flexRender(column.columnDef.header, {
104
- table,
105
- column,
106
- header: {column} as Header<unknown, unknown>,
107
- })}
108
- disabled={isDisabled}
109
- />
110
- </div>
111
- </Tooltip>
112
- </Combobox.Option>
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
- <Combobox store={combobox} position="bottom-end" shadow="md" onOptionSubmit={handleOptionClick}>
118
- <Combobox.Target>
119
- <ActionIcon.Tertiary onClick={() => combobox.toggleDropdown()} aria-label="settings">
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
- </Combobox.Target>
123
- <Combobox.Dropdown miw={270}>
124
- <Combobox.Options>{columnOptions}</Combobox.Options>
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
- <Combobox.Footer>
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
- </Combobox.Footer>
120
+ </>
131
121
  )}
132
- </Combobox.Dropdown>
133
- </Combobox>
122
+ </Popover.Dropdown>
123
+ </Popover>
134
124
  );
135
125
  };
@@ -1 +1,8 @@
1
+ import {Tabs} from '@mantine/core';
2
+
3
+ Tabs.displayName = 'Tabs';
4
+ Tabs.List.displayName = 'Tabs.List';
5
+ Tabs.Tab.displayName = 'Tabs.Tab';
6
+ Tabs.Panel.displayName = 'Tabs.Panel';
7
+
1
8
  export {Tabs, type TabsFactory, type TabsProps} from '@mantine/core';
@@ -1 +1,5 @@
1
+ import {Tooltip} from '@mantine/core';
2
+
3
+ Tooltip.displayName = 'Tooltip';
4
+
1
5
  export {Tooltip, type TooltipFactory, type TooltipProps} from '@mantine/core';