@purpurds/table 6.12.5 → 7.1.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 (51) hide show
  1. package/dist/LICENSE.txt +16 -16
  2. package/dist/cell-types/body-text-cell.d.ts.map +1 -1
  3. package/dist/cell-types/link-cell.d.ts.map +1 -1
  4. package/dist/story-utils/column-def.d.ts.map +1 -1
  5. package/dist/story-utils/table-data.d.ts +2 -4
  6. package/dist/story-utils/table-data.d.ts.map +1 -1
  7. package/dist/styles.css +1 -1
  8. package/dist/table-action-bar.d.ts.map +1 -1
  9. package/dist/table-export-drawer.d.ts +3 -2
  10. package/dist/table-export-drawer.d.ts.map +1 -1
  11. package/dist/table-row-cell.d.ts.map +1 -1
  12. package/dist/table-settings-drawer.d.ts +2 -1
  13. package/dist/table-settings-drawer.d.ts.map +1 -1
  14. package/dist/table-toolbar.d.ts +6 -4
  15. package/dist/table-toolbar.d.ts.map +1 -1
  16. package/dist/table.cjs.js +63 -63
  17. package/dist/table.cjs.js.map +1 -1
  18. package/dist/table.d.ts +2 -1
  19. package/dist/table.d.ts.map +1 -1
  20. package/dist/table.es.js +4019 -4021
  21. package/dist/table.es.js.map +1 -1
  22. package/dist/test-utils/helpers.d.ts +2 -1
  23. package/dist/test-utils/helpers.d.ts.map +1 -1
  24. package/dist/types.d.ts +1 -1
  25. package/dist/types.d.ts.map +1 -1
  26. package/dist/use-truncated-hook.d.ts +3 -5
  27. package/dist/use-truncated-hook.d.ts.map +1 -1
  28. package/package.json +23 -23
  29. package/src/cell-types/body-text-cell.test.tsx +65 -0
  30. package/src/cell-types/body-text-cell.tsx +8 -9
  31. package/src/cell-types/lead-text-cell.test.tsx +65 -0
  32. package/src/cell-types/lead-text-cell.tsx +1 -1
  33. package/src/cell-types/link-cell.tsx +13 -6
  34. package/src/story-utils/column-def.ts +2 -0
  35. package/src/story-utils/table-data.tsx +10 -8
  36. package/src/table-action-bar.tsx +3 -2
  37. package/src/table-column-header-cell.tsx +16 -6
  38. package/src/table-export-drawer.test.tsx +2 -1
  39. package/src/table-export-drawer.tsx +5 -3
  40. package/src/table-kitchen-sink.test.tsx +5 -18
  41. package/src/table-row-cell.tsx +1 -30
  42. package/src/table-settings-drawer.test.tsx +4 -4
  43. package/src/table-settings-drawer.tsx +46 -41
  44. package/src/table-toolbar.test.tsx +3 -0
  45. package/src/table-toolbar.tsx +12 -7
  46. package/src/table.module.scss +51 -32
  47. package/src/table.stories.tsx +10 -9
  48. package/src/table.tsx +32 -26
  49. package/src/test-utils/helpers.ts +2 -1
  50. package/src/types.ts +1 -1
  51. package/src/use-truncated-hook.tsx +16 -60
@@ -18,7 +18,6 @@ import { RowToggleCell } from "./cell-types/row-toggle-cell";
18
18
  import { ToggleCell } from "./cell-types/toggle-cell";
19
19
  import { WarningAlertMessageCell } from "./cell-types/warning-message-cell";
20
20
  import styles from "./table.module.scss";
21
- import { pxToRemString } from "./utils/unit-conversions";
22
21
 
23
22
  const cx = c.bind(styles);
24
23
 
@@ -60,7 +59,7 @@ const TableRowCell = <TData extends RowData>({
60
59
  isLastCell,
61
60
  }: TableRowCellProps<TData>) => {
62
61
  const [isVisible, setIsVisible] = useState(false);
63
- const elementRef = useRef<HTMLTableCellElement>(null);
62
+ const elementRef = useRef<HTMLTableCellElement | null>(null);
64
63
 
65
64
  useEffect(() => {
66
65
  const currentElement = elementRef.current;
@@ -99,12 +98,6 @@ const TableRowCell = <TData extends RowData>({
99
98
  },
100
99
  ]);
101
100
 
102
- const styles = cell
103
- ? {
104
- width: pxToRemString(cell.column.getSize()),
105
- }
106
- : {};
107
-
108
101
  const cellContent = cell ? getCellContent(cell) : children;
109
102
 
110
103
  return (
@@ -113,7 +106,6 @@ const TableRowCell = <TData extends RowData>({
113
106
  data-testid={dataTestId}
114
107
  className={classes}
115
108
  key={cell?.column.columnDef?.id}
116
- style={styles}
117
109
  colSpan={colSpan}
118
110
  >
119
111
  {cellContent}
@@ -126,9 +118,6 @@ export default TableRowCell;
126
118
  const getCellContent = <TData extends RowData>(cell: Cell<TData, unknown>) => {
127
119
  const { cellType } = cell.column.columnDef.meta ?? {};
128
120
 
129
- // Define which cell types should have guaranteed truncation
130
- const needsTruncation = ["bodyText", "iconText", "leadText", "link"].includes(cellType || "");
131
-
132
121
  const content = (() => {
133
122
  switch (cellType) {
134
123
  case "badge":
@@ -166,23 +155,5 @@ const getCellContent = <TData extends RowData>(cell: Cell<TData, unknown>) => {
166
155
  }
167
156
  })();
168
157
 
169
- // If the cell type needs guaranteed truncation, wrap it with a truncation container
170
- if (needsTruncation && cell) {
171
- const widthInRemString = pxToRemString(cell.column.getSize());
172
-
173
- return (
174
- <div
175
- className={cx(`${rootClassName}__truncate`)}
176
- style={{
177
- width: "100%",
178
- maxWidth: widthInRemString,
179
- minWidth: widthInRemString,
180
- }}
181
- >
182
- {content}
183
- </div>
184
- );
185
- }
186
-
187
158
  return content;
188
159
  };
@@ -45,6 +45,7 @@ describe("Data Table - Settings drawer", () => {
45
45
  beforeEach(() => {
46
46
  container = render(
47
47
  <TableSettingsDrawer
48
+ id="purpur-table-settings-drawer"
48
49
  isDrawerOpen={true}
49
50
  columnFiltersEnabled={true}
50
51
  showColumnFilters={true}
@@ -86,10 +87,6 @@ describe("Data Table - Settings drawer", () => {
86
87
  ).toHaveTextContent("Reset settings");
87
88
  });
88
89
 
89
- it("should have a close drawer button", () => {
90
- expect(closeButton).toHaveAttribute("aria-label", "Close drawer");
91
- });
92
-
93
90
  it("should be possible to close the drawer", async () => {
94
91
  await userEvent.click(closeButton);
95
92
  expect(screen.queryByTestId(Selectors.SETTINGS_DRAWER.CONTENT)).toBeNull();
@@ -204,6 +201,7 @@ describe("Data Table - Settings drawer", () => {
204
201
  beforeEach(() => {
205
202
  render(
206
203
  <TableSettingsDrawer
204
+ id="purpur-table-settings-drawer"
207
205
  isDrawerOpen={true}
208
206
  showColumnFilters={false}
209
207
  columnFiltersEnabled={false}
@@ -262,6 +260,7 @@ describe("Data Table - Settings drawer", () => {
262
260
  beforeEach(() => {
263
261
  render(
264
262
  <TableSettingsDrawer
263
+ id="purpur-table-settings-drawer"
265
264
  isDrawerOpen={true}
266
265
  columnFiltersEnabled={true}
267
266
  showColumnFilters={true}
@@ -315,6 +314,7 @@ describe("Data Table - Settings drawer", () => {
315
314
  beforeEach(() => {
316
315
  render(
317
316
  <TableSettingsDrawer
317
+ id="purpur-table-settings-drawer"
318
318
  isDrawerOpen={true}
319
319
  columnFiltersEnabled={true}
320
320
  showColumnFilters={true}
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React, { useId } from "react";
2
2
  import { Button } from "@purpurds/button";
3
3
  import { Drawer } from "@purpurds/drawer";
4
4
  import { Heading } from "@purpurds/heading";
@@ -30,6 +30,7 @@ export type TableSettingsDrawerCopyProps = {
30
30
  };
31
31
 
32
32
  export type TableSettingsDrawerProps<TData> = {
33
+ id: string;
33
34
  getAllColumns: () => Column<TData, unknown>[];
34
35
  onResetSettings: () => void;
35
36
  setDrawerIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
@@ -52,6 +53,7 @@ const cx = c.bind(styles);
52
53
  const rootTestId = "purpur-table-settings-drawer";
53
54
 
54
55
  export const TableSettingsDrawer = <TData extends RowData>({
56
+ id,
55
57
  columnFiltersEnabled,
56
58
  copy,
57
59
  isDrawerOpen,
@@ -69,12 +71,12 @@ export const TableSettingsDrawer = <TData extends RowData>({
69
71
  setRowSelectionEnabled,
70
72
  }: TableSettingsDrawerProps<TData>) => {
71
73
  return (
72
- <div id="purpur-table-settings-drawer">
74
+ <div id={id}>
73
75
  <Drawer data-testid={rootTestId} open={isDrawerOpen} onOpenChange={setDrawerIsOpen}>
74
76
  <Drawer.Content
75
77
  data-testid={`${rootTestId}-content`}
76
78
  zIndex={6}
77
- closeButtonText={copy.buttons.closeDrawer}
79
+ closeButtonAriaLabel={copy.buttons.closeDrawer}
78
80
  title={copy.title}
79
81
  footerContent={
80
82
  <FooterContent text={copy.buttons.resetSettings} onClick={onResetSettings} />
@@ -147,45 +149,48 @@ const GeneralSettings = ({
147
149
  enableRowSelection,
148
150
  rowSelectionEnabled,
149
151
  setRowSelectionEnabled,
150
- }: GeneralSettingsProps) => (
151
- <div
152
- data-testid={`${rootTestId}-general-settings`}
153
- className={cx(`${rootClassName}__general-settings`)}
154
- aria-labelledby="general-settings"
155
- >
156
- <Heading id="general-settings" variant="title-100" tag="h3">
157
- {copy.header}
158
- </Heading>
159
- {columnFiltersEnabled && (
152
+ }: GeneralSettingsProps) => {
153
+ const uid = useId();
154
+ return (
155
+ <div
156
+ data-testid={`${rootTestId}-general-settings`}
157
+ className={cx(`${rootClassName}__general-settings`)}
158
+ aria-labelledby={`${uid}-general-settings`}
159
+ >
160
+ <Heading id={`${uid}-general-settings`} variant="title-100" tag="h3">
161
+ {copy.header}
162
+ </Heading>
163
+ {columnFiltersEnabled && (
164
+ <ToggleWrapper
165
+ id={`${uid}-show-filters`}
166
+ checked={showColumnFilters}
167
+ label={copy.toggles.showFilters}
168
+ onChange={setShowColumnFiltersEnabled}
169
+ />
170
+ )}
160
171
  <ToggleWrapper
161
- id="show-filters"
162
- checked={showColumnFilters}
163
- label={copy.toggles.showFilters}
164
- onChange={setShowColumnFiltersEnabled}
172
+ id={`${uid}-lock-first-column`}
173
+ checked={stickyFirstColumn}
174
+ label={copy.toggles.lockFirstcolumn}
175
+ onChange={setStickyFirstColumn}
165
176
  />
166
- )}
167
- <ToggleWrapper
168
- id="lock-first-column"
169
- checked={stickyFirstColumn}
170
- label={copy.toggles.lockFirstcolumn}
171
- onChange={setStickyFirstColumn}
172
- />
173
- <ToggleWrapper
174
- id="sticky-header"
175
- checked={stickyHeaders}
176
- label={copy.toggles.stickyHeader}
177
- onChange={setStickyHeaders}
178
- />
179
- {enableRowSelection && copy.toggles.rowSelection && setRowSelectionEnabled && (
180
177
  <ToggleWrapper
181
- id="row-selection"
182
- checked={rowSelectionEnabled || false}
183
- label={copy.toggles.rowSelection}
184
- onChange={setRowSelectionEnabled}
178
+ id={`${uid}-sticky-header`}
179
+ checked={stickyHeaders}
180
+ label={copy.toggles.stickyHeader}
181
+ onChange={setStickyHeaders}
185
182
  />
186
- )}
187
- </div>
188
- );
183
+ {enableRowSelection && copy.toggles.rowSelection && setRowSelectionEnabled && (
184
+ <ToggleWrapper
185
+ id={`${uid}-row-selection`}
186
+ checked={rowSelectionEnabled || false}
187
+ label={copy.toggles.rowSelection}
188
+ onChange={setRowSelectionEnabled}
189
+ />
190
+ )}
191
+ </div>
192
+ );
193
+ };
189
194
 
190
195
  const VisibleColumns = <TData extends RowData>({
191
196
  header,
@@ -204,14 +209,14 @@ const VisibleColumns = <TData extends RowData>({
204
209
  const isDisabled = (column: Column<TData, unknown>) => {
205
210
  return !column.getCanHide() || (visible.length === 1 && visible.includes(column));
206
211
  };
207
-
212
+ const uid = useId();
208
213
  return (
209
214
  <section
210
215
  data-testid={`${rootTestId}-visible-columns`}
211
216
  className={cx(`${rootClassName}__visible-columns`)}
212
- aria-labelledby="visible-columns"
217
+ aria-labelledby={`${uid}-visible-columns`}
213
218
  >
214
- <Heading id="visible-columns" variant="title-100" tag="h3">
219
+ <Heading id={`${uid}-visible-columns`} variant="title-100" tag="h3">
215
220
  {header}
216
221
  </Heading>
217
222
  {filteredColumns.map((column) => (
@@ -20,6 +20,9 @@ describe("Data table - Tool bar", () => {
20
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
21
  <div id="purpur-table">
22
22
  <TableToolbar
23
+ aria-controls="purpur-table"
24
+ settingsDrawerAriaControls="purpur-table-settings-drawer"
25
+ exportDrawerAriaControls="purpur-table-export-drawer"
23
26
  onResetColumnFilters={resetColumnFiltersMock}
24
27
  onSetDrawerIsOpen={setDrawerIsOpenMock}
25
28
  onToggleExpand={toggleExpandMock}
@@ -1,4 +1,4 @@
1
- import React from "react";
1
+ import React, { type Dispatch, type HTMLAttributes, type SetStateAction } from "react";
2
2
  import { Button } from "@purpurds/button";
3
3
  import { IconDownload } from "@purpurds/icon/download";
4
4
  import { IconMaximize } from "@purpurds/icon/maximize";
@@ -28,8 +28,8 @@ export type TableToolbarCopyProps = {
28
28
  };
29
29
  };
30
30
 
31
- export type TableToolbarProps = {
32
- onSetDrawerIsOpen: React.Dispatch<React.SetStateAction<boolean>>;
31
+ export type TableToolbarProps = HTMLAttributes<HTMLDivElement> & {
32
+ onSetDrawerIsOpen: Dispatch<SetStateAction<boolean>>;
33
33
  onResetColumnFilters: () => void;
34
34
  onToggleExpand?: () => void;
35
35
  onExportData?: () => void;
@@ -41,6 +41,8 @@ export type TableToolbarProps = {
41
41
  hasExportsDrawer: boolean;
42
42
  showFilters: boolean;
43
43
  disableClearFilters: boolean;
44
+ settingsDrawerAriaControls: string;
45
+ exportDrawerAriaControls: string;
44
46
  };
45
47
 
46
48
  const rootClassName = "purpur-table-toolbar";
@@ -48,6 +50,9 @@ const cx = c.bind(styles);
48
50
  const rootTestId = "purpur-table-toolbar";
49
51
 
50
52
  export const TableToolbar = ({
53
+ ["aria-controls"]: ariaControls,
54
+ settingsDrawerAriaControls,
55
+ exportDrawerAriaControls,
51
56
  onExportData,
52
57
  onResetColumnFilters,
53
58
  onSetDrawerIsOpen,
@@ -76,7 +81,7 @@ export const TableToolbar = ({
76
81
  onClick={onResetColumnFilters}
77
82
  type="button"
78
83
  aria-label={copy?.ariaLabels?.clearFilters}
79
- aria-controls="purpur-table"
84
+ aria-controls={ariaControls}
80
85
  disabled={disableClearFilters}
81
86
  >
82
87
  {copy.buttons.clearFilters}
@@ -94,7 +99,7 @@ export const TableToolbar = ({
94
99
  aria-label={copy?.ariaLabels?.export}
95
100
  {...(hasExportsDrawer && {
96
101
  "aria-expanded": isExportDrawerOpen,
97
- "aria-controls": "purpur-table-export-drawer",
102
+ "aria-controls": exportDrawerAriaControls,
98
103
  "aria-haspopup": "dialog",
99
104
  })}
100
105
  >
@@ -110,7 +115,7 @@ export const TableToolbar = ({
110
115
  type="button"
111
116
  aria-label={copy?.ariaLabels?.settings}
112
117
  aria-expanded={isSettingsDrawerOpen}
113
- aria-controls="purpur-table-settings-drawer"
118
+ aria-controls={settingsDrawerAriaControls}
114
119
  aria-haspopup="dialog"
115
120
  >
116
121
  <IconSettings size="xs" />
@@ -124,7 +129,7 @@ export const TableToolbar = ({
124
129
  onClick={() => onToggleExpand()}
125
130
  type="button"
126
131
  aria-label={copy?.ariaLabels?.expand}
127
- aria-controls="purpur-table"
132
+ aria-controls={ariaControls}
128
133
  >
129
134
  <IconMaximize size="xs" />
130
135
  {copy.buttons.expand}
@@ -7,8 +7,6 @@
7
7
  overflow: hidden;
8
8
  flex-direction: column;
9
9
  gap: var(--purpur-spacing-200);
10
- z-index: 1;
11
- max-width: fit-content;
12
10
  background-color: inherit;
13
11
  }
14
12
 
@@ -38,6 +36,10 @@
38
36
  border-collapse: separate;
39
37
  border-spacing: 0;
40
38
  position: relative;
39
+
40
+ &--full-width {
41
+ width: 100%;
42
+ }
41
43
  }
42
44
 
43
45
  .purpur-table-header {
@@ -72,11 +74,16 @@
72
74
  }
73
75
 
74
76
  .purpur-table-column-header-cell {
75
- padding: var(--purpur-spacing-150) var(--purpur-spacing-150) var(--purpur-spacing-150)
77
+ padding: var(--purpur-spacing-100) var(--purpur-spacing-150) var(--purpur-spacing-100)
76
78
  var(--purpur-spacing-300);
77
79
  border-bottom: var(--table-border);
78
80
  text-align: left;
79
81
 
82
+ &:has([role="checkbox"]) {
83
+ padding: calc(var(--purpur-spacing-25) + var(--purpur-spacing-50)) var(--purpur-spacing-150)
84
+ calc(var(--purpur-spacing-25) + var(--purpur-spacing-50)) var(--purpur-spacing-300);
85
+ }
86
+
80
87
  &__checkbox {
81
88
  vertical-align: middle;
82
89
  }
@@ -93,7 +100,7 @@
93
100
  display: flex;
94
101
  flex-direction: column;
95
102
  align-items: flex-start;
96
- gap: var(--purpur-spacing-100);
103
+ gap: var(--purpur-spacing-50);
97
104
  }
98
105
 
99
106
  &__title {
@@ -101,6 +108,10 @@
101
108
  align-items: center;
102
109
  gap: var(--purpur-spacing-50);
103
110
  align-self: stretch;
111
+
112
+ &--default {
113
+ padding: var(--purpur-spacing-100) var(--purpur-spacing-0);
114
+ }
104
115
  }
105
116
 
106
117
  &__sortable-title {
@@ -110,9 +121,9 @@
110
121
  &__filter-wrapper {
111
122
  display: flex;
112
123
  padding-right: var(--purpur-spacing-150);
124
+ padding-bottom: var(--purpur-spacing-150);
113
125
  flex-direction: column;
114
126
  align-items: flex-start;
115
- gap: var(--purpur-spacing-100);
116
127
  align-self: stretch;
117
128
  }
118
129
  }
@@ -144,23 +155,32 @@
144
155
 
145
156
  &:has(.purpur-table-row-cell__row-selection),
146
157
  &:has(.purpur-table-row-cell__row-toggle) {
147
- .purpur-table-row-cell:hover {
148
- &:first-of-type {
149
- &::before {
150
- content: "";
151
- position: absolute;
152
- left: calc(-1 * var(--purpur-border-width-xs));
153
- top: 0;
154
- bottom: 0;
155
- width: var(--purpur-border-width-md);
156
- background-color: var(--purpur-color-border-weak);
157
- }
158
+ .purpur-table-row-cell:first-of-type {
159
+ transform: translateZ(0);
160
+
161
+ &::after {
162
+ content: "";
163
+ position: absolute;
164
+ left: calc(-1 * var(--purpur-border-width-xs));
165
+ top: 0;
166
+ bottom: 0;
167
+ width: var(--purpur-border-width-md);
168
+ opacity: 0;
169
+ transition: opacity var(--purpur-motion-duration-150) ease;
170
+ background-color: var(--purpur-color-border-weak);
171
+ pointer-events: none;
172
+ }
173
+
174
+ &:hover::after {
175
+ opacity: 1;
158
176
  }
159
177
  }
160
178
  }
161
179
 
162
- &--selected td:first-of-type {
163
- &::before {
180
+ &.purpur-table-row--selected .purpur-table-row-cell:first-of-type {
181
+ transform: translateZ(0);
182
+
183
+ &::after {
164
184
  content: "";
165
185
  position: absolute;
166
186
  left: calc(-1 * var(--purpur-border-width-xs));
@@ -168,6 +188,8 @@
168
188
  bottom: 0;
169
189
  width: var(--purpur-border-width-md);
170
190
  background-color: var(--purpur-color-border-interactive-primary);
191
+ opacity: 1;
192
+ pointer-events: none;
171
193
  }
172
194
  }
173
195
  }
@@ -194,7 +216,7 @@
194
216
  }
195
217
 
196
218
  .purpur-table-row-cell {
197
- height: var(--purpur-spacing-800);
219
+ height: calc(var(--purpur-spacing-600) + var(--purpur-spacing-150));
198
220
  padding: var(--purpur-spacing-0) var(--purpur-spacing-300);
199
221
  align-items: center;
200
222
  align-self: stretch;
@@ -263,30 +285,27 @@
263
285
  text-align: right;
264
286
  }
265
287
 
288
+ &__truncate-wrapper {
289
+ width: 100%;
290
+ display: grid;
291
+ grid-template-columns: 1fr;
292
+ }
293
+
266
294
  &__truncate {
267
295
  position: relative;
268
296
  max-width: 100%;
269
297
  width: 100%;
270
298
 
271
- p,
272
- span,
273
- div {
274
- display: block;
275
- }
299
+ display: block;
300
+ overflow: hidden;
301
+ white-space: nowrap;
302
+ text-overflow: ellipsis;
276
303
 
277
304
  a {
278
305
  display: inline;
279
- }
280
-
281
- a,
282
- p,
283
- span,
284
- div {
285
306
  overflow: hidden;
286
307
  white-space: nowrap;
287
308
  text-overflow: ellipsis;
288
- max-width: 100%;
289
- width: inherit;
290
309
  }
291
310
  }
292
311
 
@@ -1,7 +1,5 @@
1
1
  /* eslint-disable react-hooks/rules-of-hooks */
2
2
 
3
-
4
-
5
3
  import React, { useEffect, useState } from "react";
6
4
  import { Grid } from "@purpurds/grid";
7
5
  import { IllustrativeIconSearchQuestionDuocolor } from "@purpurds/illustrative-icon/search-question-duocolor";
@@ -154,6 +152,10 @@ const meta = {
154
152
  options: ["primary", "secondary"],
155
153
  description: "Style variant for the table",
156
154
  },
155
+ fullWidth: {
156
+ control: "boolean",
157
+ description: "Full width of the table",
158
+ },
157
159
  },
158
160
  } satisfies Meta<typeof Table<TableData>>;
159
161
 
@@ -245,7 +247,7 @@ const commonSettingsDrawerCopy = {
245
247
  const commonExportDrawerCopy = {
246
248
  title: "Export table",
247
249
  bodyText: "Choose the format you want to export the table in.",
248
- closeButtonText: "Close drawer",
250
+ closeButtonAriaLabel: "Close drawer",
249
251
  link: "Export as",
250
252
  };
251
253
 
@@ -277,6 +279,7 @@ export const Showcase: StoryTableData = {
277
279
  data: generatedTableData,
278
280
  columns: columnDef,
279
281
  loading: true,
282
+ fullWidth: true,
280
283
  },
281
284
  parameters: {
282
285
  docs: {
@@ -345,8 +348,7 @@ manages filtering, sorting and pagination internally.
345
348
  nextButtonAriaLabel: "Go to next page",
346
349
  nextButtonText: "Next",
347
350
  outOfLabel: "of",
348
- pageSelectorListBoxLabel: "Select a page",
349
- pageSelectorNoOptionsText: "Page does not exist",
351
+ pageSelectorLabel: "Select a page",
350
352
  previousButtonAriaLabel: "Go to previous page",
351
353
  previousButtonText: "Previous",
352
354
  stepNumberPrefix: "Go to page",
@@ -389,6 +391,7 @@ manages filtering, sorting and pagination internally.
389
391
  onPrimaryButtonClick={handlePrimaryButtonClick}
390
392
  onSecondaryButtonClick={() => console.log("Secondary button clicked")}
391
393
  rowSelectionAriaLabels={args.rowSelectionAriaLabels}
394
+ fullWidth={args.fullWidth}
392
395
  />
393
396
  );
394
397
  },
@@ -730,8 +733,7 @@ This example demonstrates pagination functionality in the Table.
730
733
  nextButtonAriaLabel: "Go to next page",
731
734
  nextButtonText: "Next",
732
735
  outOfLabel: "of",
733
- pageSelectorListBoxLabel: "Select a page",
734
- pageSelectorNoOptionsText: "Page does not exist",
736
+ pageSelectorLabel: "Select a page",
735
737
  previousButtonAriaLabel: "Go to previous page",
736
738
  previousButtonText: "Previous",
737
739
  stepNumberPrefix: "Go to page",
@@ -1150,8 +1152,7 @@ sorting, and filtering are managed by a server API instead of in the browser.
1150
1152
  nextButtonAriaLabel: "Go to next page",
1151
1153
  nextButtonText: "Next",
1152
1154
  outOfLabel: "of",
1153
- pageSelectorListBoxLabel: "Select a page",
1154
- pageSelectorNoOptionsText: "Page does not exist",
1155
+ pageSelectorLabel: "Select a page",
1155
1156
  previousButtonAriaLabel: "Go to previous page",
1156
1157
  previousButtonText: "Previous",
1157
1158
  stepNumberPrefix: "Go to page",