@purpurds/table 8.14.0 → 8.16.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.
@@ -156,12 +156,14 @@ export declare const copy: {
156
156
  buttons: {
157
157
  clearFilters: string;
158
158
  expand: string;
159
+ minimize: string;
159
160
  export: string;
160
161
  settings: string;
161
162
  };
162
163
  ariaLabels: {
163
164
  clearFilters: string;
164
165
  expand: string;
166
+ minimize: string;
165
167
  export: string;
166
168
  settings: string;
167
169
  };
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-utils/helpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,EAClB,cAAc,MAAM,KACnB,WAKF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,gBAAgB,EACvB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,oBAQF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,cAAS,KAAG,mBAEpE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,OAAO,MAAM,KAAG,mBAExE,CAAC;AAGF,eAAO,MAAM,0BAA0B,GACrC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAGF,eAAO,MAAM,4BAA4B,GACvC,OAAO,gBAAgB,EACvB,cAAS,KACR,iBAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAG9E,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAOpB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAGjF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAIpB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6CQ,MAAM;;;CAGnC,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqHhB,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/test-utils/helpers.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,WAAW,KAAG,WAIjD,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,OAAO,WAAW,EAClB,cAAc,MAAM,KACnB,WAKF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,OAAO,gBAAgB,EACvB,OAAO,MAAM,EACb,cAAc,MAAM,KACnB,oBAQF,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,cAAS,KAAG,mBAEpE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,OAAO,gBAAgB,EAAE,OAAO,MAAM,KAAG,mBAExE,CAAC;AAGF,eAAO,MAAM,0BAA0B,GACrC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAEF,eAAO,MAAM,6BAA6B,GACxC,OAAO,gBAAgB,EACvB,OAAO,MAAM,KACZ,iBAEF,CAAC;AAGF,eAAO,MAAM,4BAA4B,GACvC,OAAO,gBAAgB,EACvB,cAAS,KACR,iBAEF,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAG9E,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAOpB,CAAC;AAEF,eAAO,MAAM,0BAA0B,GAAI,OAAO,gBAAgB,EAAE,QAAQ,MAAM,gBAGjF,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,OAAO,gBAAgB,EACvB,QAAQ,MAAM,EACd,aAAa,MAAM,kBAIpB,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCA6CQ,MAAM;;;CAGnC,CAAC;AAEF,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuHhB,CAAC"}
package/dist/types.d.ts CHANGED
@@ -252,6 +252,8 @@ export type WithoutToolbarProps = {
252
252
  enableToolbar?: false | undefined;
253
253
  exportFormats?: never;
254
254
  onExportData?: never;
255
+ controlledExpanded?: never;
256
+ defaultExpanded?: never;
255
257
  onToggleExpand?: never;
256
258
  settingsDrawerCopy?: never;
257
259
  toolbarCopy?: never;
@@ -277,19 +279,34 @@ type WithFiltersProps = {
277
279
  * Props for enabling an expand button in a data table component.
278
280
  */
279
281
  type WithExpandButtonProps = {
282
+ /**
283
+ * Current state of expansion.
284
+ * Regardless of setting, the consumer must listen to onToggleExpand to change the container size accordingly. The table itself only shows the Expand button differently.
285
+ * If defined (true or false), this is the state the table will be shown in. Consumer must listen to onToggleExpand, and update this to the new value. defaultExpanded will have no effect.
286
+ * If undefined, the table will manage its own state, starting with defaultExpanded.
287
+ */
288
+ controlledExpanded?: boolean;
289
+ /**
290
+ * Initial state of expansion.
291
+ * Defaults to false (collapsed=minimized) if not provided.
292
+ * No effect if controlledExpanded is provided.
293
+ */
294
+ defaultExpanded?: boolean;
280
295
  /**
281
296
  * Callback function triggered when toggling the expansion state of rows.
282
297
  */
283
- onToggleExpand: () => void;
298
+ onToggleExpand: (value: boolean) => void;
284
299
  /**
285
300
  * Copy for the toolbar buttons related to expanding rows.
286
301
  */
287
302
  toolbarCopy: {
288
303
  buttons: {
289
304
  expand: string;
305
+ minimize: string;
290
306
  };
291
307
  ariaLabels: {
292
308
  expand: string;
309
+ minimize: string;
293
310
  };
294
311
  };
295
312
  };
@@ -336,13 +353,17 @@ type WithoutExportProps = {
336
353
  };
337
354
  };
338
355
  type WithoutExpandButtonProps = {
356
+ controlledExpanded?: never;
357
+ defaultExpanded?: never;
339
358
  onToggleExpand?: never;
340
359
  toolbarCopy?: {
341
360
  buttons?: {
342
361
  expand?: never;
362
+ minimize?: never;
343
363
  };
344
364
  ariaLabels?: {
345
365
  expand?: never;
366
+ minimize?: never;
346
367
  };
347
368
  };
348
369
  };
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@purpurds/table",
3
- "version": "8.14.0",
3
+ "version": "8.16.0",
4
4
  "license": "AGPL-3.0-only",
5
5
  "main": "./dist/table.cjs.js",
6
6
  "types": "./dist/table.d.ts",
@@ -21,22 +21,22 @@
21
21
  "@dnd-kit/utilities": "~3.2.2",
22
22
  "@tanstack/react-table": "~8.21.2",
23
23
  "classnames": "~2.5.1",
24
- "@purpurds/badge": "8.14.0",
25
- "@purpurds/button": "8.14.0",
26
- "@purpurds/checkbox": "8.14.0",
27
- "@purpurds/cta-link": "8.14.0",
28
- "@purpurds/heading": "8.14.0",
29
- "@purpurds/link": "8.14.0",
30
- "@purpurds/drawer": "8.14.0",
31
- "@purpurds/icon": "8.14.0",
32
- "@purpurds/paragraph": "8.14.0",
33
- "@purpurds/select": "8.14.0",
34
- "@purpurds/skeleton": "8.14.0",
35
- "@purpurds/text-field": "8.14.0",
36
- "@purpurds/toggle": "8.14.0",
37
- "@purpurds/tooltip": "8.14.0",
38
- "@purpurds/visually-hidden": "8.14.0",
39
- "@purpurds/tokens": "8.14.0"
24
+ "@purpurds/badge": "8.16.0",
25
+ "@purpurds/button": "8.16.0",
26
+ "@purpurds/cta-link": "8.16.0",
27
+ "@purpurds/drawer": "8.16.0",
28
+ "@purpurds/checkbox": "8.16.0",
29
+ "@purpurds/heading": "8.16.0",
30
+ "@purpurds/icon": "8.16.0",
31
+ "@purpurds/link": "8.16.0",
32
+ "@purpurds/paragraph": "8.16.0",
33
+ "@purpurds/select": "8.16.0",
34
+ "@purpurds/skeleton": "8.16.0",
35
+ "@purpurds/toggle": "8.16.0",
36
+ "@purpurds/text-field": "8.16.0",
37
+ "@purpurds/tokens": "8.16.0",
38
+ "@purpurds/visually-hidden": "8.16.0",
39
+ "@purpurds/tooltip": "8.16.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@rushstack/eslint-patch": "~1.10.0",
@@ -60,13 +60,13 @@
60
60
  "vitest-axe": "~0.1.0",
61
61
  "vitest-canvas-mock": "~0.3.3",
62
62
  "vitest": "^4.0.10",
63
- "@purpurds/autocomplete": "8.14.0",
64
- "@purpurds/grid": "8.14.0",
63
+ "@purpurds/autocomplete": "8.16.0",
64
+ "@purpurds/grid": "8.16.0",
65
65
  "@purpurds/component-rig": "1.0.0",
66
- "@purpurds/label": "8.14.0",
67
- "@purpurds/listbox": "8.14.0",
68
- "@purpurds/illustrative-icon": "8.14.0",
69
- "@purpurds/pagination": "8.14.0"
66
+ "@purpurds/illustrative-icon": "8.16.0",
67
+ "@purpurds/listbox": "8.16.0",
68
+ "@purpurds/pagination": "8.16.0",
69
+ "@purpurds/label": "8.16.0"
70
70
  },
71
71
  "scripts": {
72
72
  "build:dev": "vite",
@@ -13,32 +13,34 @@ const toggleExpandMock = vi.fn();
13
13
  const exportDataMock = vi.fn();
14
14
 
15
15
  describe("Data table - Tool bar", () => {
16
- let container: HTMLElement;
17
-
18
- beforeEach(() => {
19
- container = render(
20
- // Needs an element with id purpur-table for the ally tests to not fail with "ARIA attributes must conform to valid values (aria-valid-attr-value)" rule
21
- <div id="purpur-table">
22
- <TableToolbar
23
- aria-controls="purpur-table"
24
- settingsDrawerAriaControls="purpur-table-settings-drawer"
25
- exportDrawerAriaControls="purpur-table-export-drawer"
26
- onResetColumnFilters={resetColumnFiltersMock}
27
- onSetDrawerIsOpen={setDrawerIsOpenMock}
28
- onToggleExpand={toggleExpandMock}
29
- onExportData={exportDataMock}
30
- visibleRowCount={10}
31
- totalRowCount={14}
32
- toolbarCopy={copy.toolbar}
33
- isSettingsDrawerOpen={false}
34
- isExportDrawerOpen={false}
35
- hasExportsDrawer={true}
36
- showFilters={true}
37
- disableClearFilters={false}
38
- />
39
- </div>
40
- ).container;
41
- });
16
+ describe("when expanded is false", () => {
17
+ let container: HTMLElement;
18
+
19
+ beforeEach(() => {
20
+ container = render(
21
+ // Needs an element with id purpur-table for the ally tests to not fail with "ARIA attributes must conform to valid values (aria-valid-attr-value)" rule
22
+ <div id="purpur-table">
23
+ <TableToolbar
24
+ aria-controls="purpur-table"
25
+ settingsDrawerAriaControls="purpur-table-settings-drawer"
26
+ exportDrawerAriaControls="purpur-table-export-drawer"
27
+ onResetColumnFilters={resetColumnFiltersMock}
28
+ onSetDrawerIsOpen={setDrawerIsOpenMock}
29
+ onToggleExpand={toggleExpandMock}
30
+ onExportData={exportDataMock}
31
+ visibleRowCount={10}
32
+ totalRowCount={14}
33
+ toolbarCopy={copy.toolbar}
34
+ expanded={false}
35
+ isSettingsDrawerOpen={false}
36
+ isExportDrawerOpen={false}
37
+ hasExportsDrawer={true}
38
+ showFilters={true}
39
+ disableClearFilters={false}
40
+ />
41
+ </div>
42
+ ).container;
43
+ });
42
44
 
43
45
  it("should display 'Showing 10 of 14 rows'", () => {
44
46
  const tableRowsCount = screen.getByTestId(Selectors.TOOLBAR.TABLE_ROWS_COUNT);
@@ -57,7 +59,7 @@ describe("Data table - Tool bar", () => {
57
59
 
58
60
  it("should have settings button", () => {
59
61
  const settingsButton = screen.getByTestId(Selectors.TOOLBAR.SETTINGS_BUTTON);
60
- expect(settingsButton).toHaveTextContent("Settings");
62
+ expect(settingsButton).toHaveTextContent("Table settings");
61
63
  });
62
64
 
63
65
  it("should have expand button", () => {
@@ -71,7 +73,7 @@ describe("Data table - Tool bar", () => {
71
73
  expect(resetColumnFiltersMock).toHaveBeenCalled();
72
74
  });
73
75
 
74
- it("should send 'setDrawerIsOpen' event when clicking on 'Settings' button", async () => {
76
+ it("should send 'setDrawerIsOpen' event when clicking on 'Table settings' button", async () => {
75
77
  const settingsButton = screen.getByTestId(Selectors.TOOLBAR.SETTINGS_BUTTON);
76
78
  await userEvent.click(settingsButton);
77
79
  expect(setDrawerIsOpenMock).toHaveBeenCalled();
@@ -83,16 +85,70 @@ describe("Data table - Tool bar", () => {
83
85
  expect(exportDataMock).toHaveBeenCalled();
84
86
  });
85
87
 
86
- it("should send an event when clicking on expand", async () => {
87
- const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
88
- await userEvent.click(expandButton);
89
- expect(toggleExpandMock).toHaveBeenCalled();
88
+ it("should send an event when clicking on expand", async () => {
89
+ const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
90
+ await userEvent.click(expandButton);
91
+ expect(toggleExpandMock).toHaveBeenCalled();
92
+ });
93
+
94
+ it("should call onToggleExpand with 'true' when clicking expand button while collapsed", async () => {
95
+ const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
96
+ await userEvent.click(expandButton);
97
+ expect(toggleExpandMock).toHaveBeenCalledWith(true);
98
+ });
99
+
100
+ it("should display 'Expand' button text and maximize icon when collapsed", () => {
101
+ const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
102
+ expect(expandButton).toHaveTextContent("Expand");
103
+ expect(expandButton).toHaveAttribute("aria-expanded", "false");
104
+ expect(expandButton).toHaveAttribute("aria-label", copy.toolbar.ariaLabels?.expand);
105
+ });
106
+
107
+ it("should be accessible", async () => {
108
+ const results = await axe(container);
109
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
110
+ // @ts-ignore
111
+ expect(results).toHaveNoViolations();
112
+ });
90
113
  });
91
114
 
92
- it("should be accessible", async () => {
93
- const results = await axe(container);
94
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
95
- // @ts-ignore
96
- expect(results).toHaveNoViolations();
115
+ describe("when expanded is true", () => {
116
+ beforeEach(() => {
117
+ render(
118
+ <div id="purpur-table-expanded">
119
+ <TableToolbar
120
+ aria-controls="purpur-table-expanded"
121
+ settingsDrawerAriaControls="purpur-table-settings-drawer"
122
+ exportDrawerAriaControls="purpur-table-export-drawer"
123
+ onResetColumnFilters={resetColumnFiltersMock}
124
+ onSetDrawerIsOpen={setDrawerIsOpenMock}
125
+ onToggleExpand={toggleExpandMock}
126
+ onExportData={exportDataMock}
127
+ visibleRowCount={10}
128
+ totalRowCount={14}
129
+ toolbarCopy={copy.toolbar}
130
+ expanded={true}
131
+ isSettingsDrawerOpen={false}
132
+ isExportDrawerOpen={false}
133
+ hasExportsDrawer={true}
134
+ showFilters={true}
135
+ disableClearFilters={false}
136
+ />
137
+ </div>
138
+ );
139
+ });
140
+
141
+ it("should display 'Minimize' button text and minimize icon when expanded", () => {
142
+ const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
143
+ expect(expandButton).toHaveTextContent("Minimize");
144
+ expect(expandButton).toHaveAttribute("aria-expanded", "true");
145
+ expect(expandButton).toHaveAttribute("aria-label", copy.toolbar.ariaLabels?.minimize);
146
+ });
147
+
148
+ it("should call onToggleExpand with 'false' when clicking minimize button while expanded", async () => {
149
+ const expandButton = screen.getByTestId(Selectors.TOOLBAR.EXPAND_BUTTON);
150
+ await userEvent.click(expandButton);
151
+ expect(toggleExpandMock).toHaveBeenCalledWith(false);
152
+ });
97
153
  });
98
154
  });
@@ -2,6 +2,7 @@ import React, { type Dispatch, type HTMLAttributes, type SetStateAction } from "
2
2
  import { Button } from "@purpurds/button";
3
3
  import { IconDownload } from "@purpurds/icon/download";
4
4
  import { IconMaximize } from "@purpurds/icon/maximize";
5
+ import { IconMinimize } from "@purpurds/icon/minimize";
5
6
  import { IconSettings } from "@purpurds/icon/settings";
6
7
  import { Paragraph } from "@purpurds/paragraph";
7
8
  import c from "classnames/bind";
@@ -13,12 +14,14 @@ export type TableToolbarCopyProps = {
13
14
  export?: string;
14
15
  settings?: string;
15
16
  expand?: string;
17
+ minimize?: string;
16
18
  clearFilters?: string;
17
19
  };
18
20
  ariaLabels?: {
19
21
  export?: string;
20
22
  settings?: string;
21
23
  expand?: string;
24
+ minimize?: string;
22
25
  clearFilters?: string;
23
26
  };
24
27
  rowCount?: {
@@ -31,11 +34,12 @@ export type TableToolbarCopyProps = {
31
34
  export type TableToolbarProps = HTMLAttributes<HTMLDivElement> & {
32
35
  onSetDrawerIsOpen: Dispatch<SetStateAction<boolean>>;
33
36
  onResetColumnFilters: () => void;
34
- onToggleExpand?: () => void;
37
+ onToggleExpand?: (value: boolean) => void;
35
38
  onExportData?: () => void;
36
39
  visibleRowCount: number;
37
40
  totalRowCount: number;
38
41
  toolbarCopy?: TableToolbarCopyProps;
42
+ expanded: boolean;
39
43
  isSettingsDrawerOpen: boolean;
40
44
  isExportDrawerOpen: boolean;
41
45
  hasExportsDrawer: boolean;
@@ -59,6 +63,7 @@ export const TableToolbar = ({
59
63
  onToggleExpand,
60
64
  disableClearFilters,
61
65
  hasExportsDrawer,
66
+ expanded,
62
67
  isExportDrawerOpen,
63
68
  isSettingsDrawerOpen,
64
69
  showFilters,
@@ -126,13 +131,14 @@ export const TableToolbar = ({
126
131
  <Button
127
132
  data-testid={`${rootTestId}-expand-button`}
128
133
  variant="text"
129
- onClick={() => onToggleExpand()}
134
+ onClick={() => onToggleExpand(!expanded)}
130
135
  type="button"
131
- aria-label={copy?.ariaLabels?.expand}
136
+ aria-label={expanded ? copy?.ariaLabels?.minimize : copy?.ariaLabels?.expand}
132
137
  aria-controls={ariaControls}
138
+ aria-expanded={expanded}
133
139
  >
134
- <IconMaximize size="xs" />
135
- {copy.buttons.expand}
140
+ {expanded ? <IconMinimize size="xs" /> : <IconMaximize size="xs" />}
141
+ {expanded ? copy.buttons.minimize : copy.buttons.expand}
136
142
  </Button>
137
143
  )}
138
144
  </div>
@@ -218,13 +218,15 @@ const commonToolbarCopy = {
218
218
  buttons: {
219
219
  export: "Export",
220
220
  expand: "Expand",
221
- settings: "Settings",
221
+ minimize: "Minimize",
222
+ settings: "Table settings",
222
223
  clearFilters: "Clear filters",
223
224
  },
224
225
  ariaLabels: {
225
226
  clearFilters: "Clear all filters",
226
227
  expand: "Expand the table",
227
228
  export: "Open export drawer",
229
+ minimize: "Minimize the table",
228
230
  settings: "Open settings drawer",
229
231
  },
230
232
  rowCount: {
@@ -261,7 +263,7 @@ const commonSettingsDrawerCopyWithColumnDrag = {
261
263
  ...commonSettingsDrawerCopy.visibleColumns,
262
264
  rearrangeDescription: "Choose how you want to reorder the columns.",
263
265
  buttons: {
264
- rearrange: "Reorder",
266
+ rearrange: "Reorder columns",
265
267
  done: "Done",
266
268
  },
267
269
  ariaLabels: {
@@ -434,7 +436,7 @@ manages filtering, sorting and pagination internally.
434
436
  enableFilters={args.enableFilters}
435
437
  enableToolbar={args.enableToolbar}
436
438
  loading={args.loading}
437
- onToggleExpand={() => setTableExpanded((prev) => !prev)}
439
+ onToggleExpand={(value) => setTableExpanded(value)}
438
440
  paginationComponent={<Pagination {...defaultArgs} />}
439
441
  onRowsCountChange={setRowCount}
440
442
  onColumnVisibilityChange={setColumnVisibility}
@@ -887,7 +889,7 @@ This example demonstrates the toolbar functionality in the Table.
887
889
  settingsDrawerCopy={commonSettingsDrawerCopy}
888
890
  exportFormats={["csv", "xlsx"]}
889
891
  exportDrawerCopy={commonExportDrawerCopy}
890
- onToggleExpand={() => setTableExpanded((prev) => !prev)}
892
+ onToggleExpand={(value) => setTableExpanded(value)}
891
893
  onExportData={(format) => console.log(`Exporting in ${format} format`)}
892
894
  state={{ columnFilters, columnVisibility }}
893
895
  onColumnFiltersChange={setColumnFilters}
@@ -1244,7 +1246,7 @@ sorting, and filtering are managed by a server API instead of in the browser.
1244
1246
  toolbarCopy={args.toolbarCopy}
1245
1247
  enableFilters={args.enableFilters}
1246
1248
  enableMultiRowSelection={args.enableMultiRowSelection || true}
1247
- onToggleExpand={() => setTableExpanded((prev) => !prev)}
1249
+ onToggleExpand={(value) => setTableExpanded(value)}
1248
1250
  paginationComponent={<Pagination {...paginationProps} />}
1249
1251
  onColumnVisibilityChange={setColumnVisibility}
1250
1252
  setShowOnlySelectedRows={setShowOnlySelectedRows}
@@ -1330,6 +1332,7 @@ differ from the default values. This is useful for persisting user preferences a
1330
1332
  ### How to enable this feature:
1331
1333
  \`\`\`jsx
1332
1334
  const [tableSettings, setTableSettings] = useState({
1335
+ expanded: false, // User did not expand the table
1333
1336
  showColumnFilters: false, // User turned off filters
1334
1337
  stickyHeaders: false, // User turned off sticky headers
1335
1338
  stickyFirstColumn: false, // User turned off sticky first column
@@ -1339,6 +1342,10 @@ const [tableSettings, setTableSettings] = useState({
1339
1342
  enableFilters={true}
1340
1343
 
1341
1344
  // Controlled state (user preferences)
1345
+ const handleExpandedChange = (value: boolean) => {
1346
+ setTableSettings((prev) => ({ ...prev, expanded: value }));
1347
+ };
1348
+
1342
1349
  controlledShowColumnFilters={tableSettings.showColumnFilters}
1343
1350
  onShowColumnFiltersChange={(value) =>
1344
1351
  setTableSettings(prev => ({ ...prev, showColumnFilters: value }))
@@ -1355,6 +1362,7 @@ const [tableSettings, setTableSettings] = useState({
1355
1362
  }
1356
1363
 
1357
1364
  // Default values (for reset button)
1365
+ defaultExpanded={false}
1358
1366
  defaultShowColumnFilters={true}
1359
1367
  defaultStickyHeaders={true}
1360
1368
  defaultStickyFirstColumn={true}
@@ -1383,6 +1391,7 @@ const [tableSettings, setTableSettings] = useState({
1383
1391
  },
1384
1392
  render: (args) => {
1385
1393
  const [tableSettings, setTableSettings] = useState({
1394
+ expanded: false, // User expanded table (default is false)
1386
1395
  showColumnFilters: false, // User turned off filters (default is true)
1387
1396
  stickyHeaders: false, // User turned off sticky headers (default is true)
1388
1397
  stickyFirstColumn: false, // User turned off sticky first column (default is true)
@@ -1392,6 +1401,11 @@ const [tableSettings, setTableSettings] = useState({
1392
1401
  const [columnVisibility, setColumnVisibility] = useState<VisibilityState>({});
1393
1402
 
1394
1403
  // Simulate saving to localStorage when settings change
1404
+ const handleExpandedChange = (value: boolean) => {
1405
+ setTableSettings((prev) => ({ ...prev, expanded: value }));
1406
+ console.log("Saving expanded to localStorage:", value);
1407
+ };
1408
+
1395
1409
  const handleShowColumnFiltersChange = (value: boolean) => {
1396
1410
  setTableSettings((prev) => ({ ...prev, showColumnFilters: value }));
1397
1411
  console.log("Saving showColumnFilters to localStorage:", value);
@@ -1435,7 +1449,8 @@ const [tableSettings, setTableSettings] = useState({
1435
1449
  onColumnVisibilityChange={setColumnVisibility}
1436
1450
  onExportData={(e) => console.log("Export data", e)}
1437
1451
  exportFormats={"csv"}
1438
- onToggleExpand={() => console.log("Toggle expand")}
1452
+ controlledExpanded={tableSettings.expanded}
1453
+ onToggleExpand={handleExpandedChange}
1439
1454
  />
1440
1455
  );
1441
1456
  },