@dxc-technology/halstack-react 7.0.0 → 9.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.
Files changed (109) hide show
  1. package/HalstackContext.js +98 -50
  2. package/accordion/Accordion.js +7 -13
  3. package/accordion/Accordion.stories.tsx +102 -13
  4. package/alert/Alert.stories.tsx +28 -0
  5. package/box/Box.js +1 -3
  6. package/box/Box.stories.tsx +15 -0
  7. package/button/Button.js +11 -13
  8. package/button/Button.stories.tsx +150 -8
  9. package/checkbox/Checkbox.d.ts +2 -2
  10. package/checkbox/Checkbox.js +16 -15
  11. package/checkbox/Checkbox.stories.tsx +131 -59
  12. package/checkbox/types.d.ts +4 -0
  13. package/chip/Chip.js +16 -22
  14. package/chip/Chip.stories.tsx +96 -9
  15. package/common/variables.js +286 -290
  16. package/date-input/Calendar.d.ts +4 -0
  17. package/date-input/Calendar.js +258 -0
  18. package/date-input/DateInput.js +134 -237
  19. package/date-input/DateInput.stories.tsx +199 -33
  20. package/date-input/DateInput.test.js +494 -138
  21. package/date-input/DatePicker.d.ts +4 -0
  22. package/date-input/DatePicker.js +146 -0
  23. package/date-input/Icons.d.ts +6 -0
  24. package/date-input/Icons.js +75 -0
  25. package/date-input/YearPicker.d.ts +4 -0
  26. package/date-input/YearPicker.js +126 -0
  27. package/date-input/types.d.ts +51 -0
  28. package/dialog/Dialog.js +60 -73
  29. package/dialog/Dialog.stories.tsx +211 -159
  30. package/dialog/Dialog.test.js +301 -2
  31. package/dropdown/Dropdown.js +35 -35
  32. package/dropdown/Dropdown.stories.tsx +210 -84
  33. package/dropdown/Dropdown.test.js +17 -22
  34. package/dropdown/DropdownMenu.js +8 -18
  35. package/dropdown/DropdownMenuItem.js +4 -15
  36. package/file-input/FileInput.d.ts +2 -2
  37. package/file-input/FileInput.js +169 -222
  38. package/file-input/FileInput.stories.tsx +122 -11
  39. package/file-input/FileInput.test.js +12 -53
  40. package/file-input/FileItem.d.ts +4 -14
  41. package/file-input/FileItem.js +39 -63
  42. package/file-input/types.d.ts +17 -0
  43. package/footer/Footer.stories.tsx +91 -0
  44. package/header/Header.js +18 -20
  45. package/header/Header.stories.tsx +149 -6
  46. package/link/Link.js +1 -1
  47. package/link/Link.stories.tsx +60 -0
  48. package/main.d.ts +1 -1
  49. package/main.js +1 -1
  50. package/{tabs-nav → nav-tabs}/NavTabs.js +1 -1
  51. package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +96 -6
  52. package/{tabs-nav → nav-tabs}/Tab.js +35 -15
  53. package/number-input/NumberInput.test.js +5 -6
  54. package/package.json +7 -12
  55. package/paginator/Icons.d.ts +5 -0
  56. package/paginator/Icons.js +16 -28
  57. package/paginator/Paginator.js +5 -11
  58. package/paginator/Paginator.stories.tsx +24 -0
  59. package/paginator/Paginator.test.js +17 -10
  60. package/progress-bar/ProgressBar.js +4 -4
  61. package/progress-bar/ProgressBar.stories.jsx +35 -2
  62. package/quick-nav/QuickNav.stories.tsx +14 -0
  63. package/radio-group/RadioGroup.stories.tsx +131 -18
  64. package/resultsetTable/Icons.d.ts +7 -0
  65. package/resultsetTable/Icons.js +51 -0
  66. package/resultsetTable/ResultsetTable.js +48 -105
  67. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  68. package/resultsetTable/ResultsetTable.test.js +40 -63
  69. package/resultsetTable/types.d.ts +2 -2
  70. package/select/Listbox.d.ts +1 -1
  71. package/select/Listbox.js +5 -34
  72. package/select/Option.js +11 -24
  73. package/select/Select.js +43 -24
  74. package/select/Select.stories.tsx +494 -150
  75. package/select/Select.test.js +17 -22
  76. package/select/types.d.ts +2 -2
  77. package/sidenav/Sidenav.js +8 -10
  78. package/sidenav/Sidenav.stories.tsx +148 -46
  79. package/slider/Slider.d.ts +2 -2
  80. package/slider/Slider.js +9 -8
  81. package/slider/Slider.stories.tsx +57 -0
  82. package/slider/types.d.ts +4 -0
  83. package/spinner/Spinner.js +2 -2
  84. package/spinner/Spinner.stories.jsx +27 -1
  85. package/switch/Switch.d.ts +3 -3
  86. package/switch/Switch.js +5 -4
  87. package/switch/Switch.stories.tsx +33 -0
  88. package/switch/types.d.ts +6 -1
  89. package/table/Table.stories.jsx +80 -1
  90. package/table/Table.test.js +1 -1
  91. package/tabs/Tab.js +3 -5
  92. package/tabs/Tabs.js +3 -3
  93. package/tabs/Tabs.stories.tsx +45 -5
  94. package/tag/Tag.stories.tsx +14 -1
  95. package/text-input/Suggestion.js +32 -5
  96. package/text-input/TextInput.js +7 -11
  97. package/text-input/TextInput.stories.tsx +92 -4
  98. package/text-input/TextInput.test.js +587 -634
  99. package/textarea/Textarea.stories.jsx +60 -1
  100. package/toggle-group/ToggleGroup.stories.tsx +42 -0
  101. package/utils/FocusLock.d.ts +13 -0
  102. package/utils/FocusLock.js +139 -0
  103. package/wizard/Wizard.stories.tsx +20 -0
  104. package/common/RequiredComponent.js +0 -32
  105. /package/{tabs-nav → nav-tabs}/NavTabs.d.ts +0 -0
  106. /package/{tabs-nav → nav-tabs}/NavTabs.test.js +0 -0
  107. /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
  108. /package/{tabs-nav → nav-tabs}/types.d.ts +0 -0
  109. /package/{tabs-nav → nav-tabs}/types.js +0 -0
@@ -4,6 +4,7 @@ import DxcButton from "../button/Button";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
6
  import { userEvent, within } from "@storybook/testing-library";
7
+ import styled from "styled-components";
7
8
 
8
9
  export default {
9
10
  title: "Resultset Table",
@@ -48,6 +49,24 @@ const columnsSortable = [
48
49
  { displayValue: "City", isSortable: false },
49
50
  ];
50
51
 
52
+ const longValues = [
53
+ [
54
+ { displayValue: "000000000000000001", sortValue: "000000000000000001" },
55
+ { displayValue: "Peter Larsson González", sortValue: "Peter" },
56
+ { displayValue: "Miami: The city that never sleeps", sortValue: "Miami" },
57
+ ],
58
+ [
59
+ { displayValue: "002", sortValue: "002" },
60
+ { displayValue: "Louis", sortValue: "Louis" },
61
+ { displayValue: "London", sortValue: "London" },
62
+ ],
63
+ [
64
+ { displayValue: "003", sortValue: "003" },
65
+ { displayValue: "Aida", sortValue: "Aida" },
66
+ { displayValue: "Wroclaw", sortValue: "Wroclaw" },
67
+ ],
68
+ ];
69
+
51
70
  const rowsSortable = [
52
71
  [
53
72
  { displayValue: "001", sortValue: "001" },
@@ -167,89 +186,95 @@ export const Chromatic = () => (
167
186
  <>
168
187
  <ExampleContainer>
169
188
  <Title title="Sortable table" theme="light" level={4} />
170
- <DxcResultsetTable columns={columnsSortable} rows={rowsSortable}></DxcResultsetTable>
189
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable} />
171
190
  </ExampleContainer>
172
191
  <ExampleContainer>
173
192
  <Title title="With action" theme="light" level={4} />
174
- <DxcResultsetTable columns={columns} rows={rowsIcon}></DxcResultsetTable>
193
+ <DxcResultsetTable columns={columns} rows={rowsIcon} />
175
194
  </ExampleContainer>
176
195
  <ExampleContainer>
177
196
  <Title title="With items per page option" theme="light" level={4} />
178
- <DxcResultsetTable
179
- columns={columns}
180
- rows={rows}
181
- itemsPerPage={2}
182
- itemsPerPageOptions={[2, 3]}
183
- ></DxcResultsetTable>
197
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2} itemsPerPageOptions={[2, 3]} />
184
198
  </ExampleContainer>
185
199
  <ExampleContainer>
186
200
  <Title title="Scroll resultset table" theme="light" level={4} />
187
- <DxcResultsetTable columns={longColumns} rows={longRows}></DxcResultsetTable>
201
+ <DxcResultsetTable columns={longColumns} rows={longRows} />
202
+ </ExampleContainer>
203
+ <ExampleContainer>
204
+ <SmallContainer>
205
+ <Title title="Small container and text overflow" theme="light" level={4} />
206
+ <DxcResultsetTable columns={columnsSortable} rows={longValues} />
207
+ </SmallContainer>
188
208
  </ExampleContainer>
189
209
  <Title title="Margins" theme="light" level={2} />
190
210
  <ExampleContainer>
191
211
  <Title title="Xxsmall" theme="light" level={4} />
192
- <DxcResultsetTable columns={columns} rows={rows} margin={"xxsmall"}></DxcResultsetTable>
212
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xxsmall"} />
193
213
  </ExampleContainer>
194
214
  <ExampleContainer>
195
215
  <Title title="Xsmall" theme="light" level={4} />
196
- <DxcResultsetTable columns={columns} rows={rows} margin={"xsmall"}></DxcResultsetTable>
216
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xsmall"} />
197
217
  </ExampleContainer>
198
218
  <ExampleContainer>
199
219
  <Title title="Small" theme="light" level={4} />
200
- <DxcResultsetTable columns={columns} rows={rows} margin={"small"}></DxcResultsetTable>
220
+ <DxcResultsetTable columns={columns} rows={rows} margin={"small"} />
201
221
  </ExampleContainer>
202
222
  <ExampleContainer>
203
223
  <Title title="Medium" theme="light" level={4} />
204
- <DxcResultsetTable columns={columns} rows={rows} margin={"medium"}></DxcResultsetTable>
224
+ <DxcResultsetTable columns={columns} rows={rows} margin={"medium"} />
205
225
  </ExampleContainer>
206
226
  <ExampleContainer>
207
227
  <Title title="Large" theme="light" level={4} />
208
- <DxcResultsetTable columns={columns} rows={rows} margin={"large"}></DxcResultsetTable>
228
+ <DxcResultsetTable columns={columns} rows={rows} margin={"large"} />
209
229
  </ExampleContainer>
210
230
  <ExampleContainer>
211
231
  <Title title="Xlarge" theme="light" level={4} />
212
- <DxcResultsetTable columns={columns} rows={rows} margin={"xlarge"}></DxcResultsetTable>
232
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xlarge"} />
213
233
  </ExampleContainer>
214
- <ExampleContainer>
234
+ <ExampleContainer expanded>
215
235
  <Title title="Xxlarge" theme="light" level={4} />
216
- <DxcResultsetTable columns={columns} rows={rows} margin={"xxlarge"}></DxcResultsetTable>
217
- <hr />
236
+ <DxcResultsetTable columns={columns} rows={rows} margin={"xxlarge"} />
218
237
  </ExampleContainer>
219
238
  </>
220
239
  );
221
240
 
241
+ const SmallContainer = styled.div`
242
+ width: 500px;
243
+ `;
244
+
222
245
  const ResultsetTableAsc = () => (
223
246
  <ExampleContainer>
224
247
  <Title title="Ascendant sorting" theme="light" level={4} />
225
- <DxcResultsetTable columns={columnsSortable} rows={rowsSortable}></DxcResultsetTable>
248
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable} />
226
249
  </ExampleContainer>
227
250
  );
228
251
 
229
252
  export const AscendentSorting = ResultsetTableAsc.bind({});
230
253
  AscendentSorting.play = async ({ canvasElement }) => {
231
254
  const canvas = within(canvasElement);
232
- await userEvent.click(canvas.queryByText("Name"));
255
+ const idHeader = canvas.getAllByRole("button")[0];
256
+ await userEvent.click(idHeader);
233
257
  };
234
258
 
235
259
  const ResultsetTableDesc = () => (
236
260
  <ExampleContainer>
237
261
  <Title title="Descendant sorting" theme="light" level={4} />
238
- <DxcResultsetTable columns={columnsSortable} rows={rowsSortable}></DxcResultsetTable>
262
+ <DxcResultsetTable columns={columnsSortable} rows={rowsSortable} />
239
263
  </ExampleContainer>
240
264
  );
241
265
 
242
266
  export const DescendantSorting = ResultsetTableDesc.bind({});
243
267
  DescendantSorting.play = async ({ canvasElement }) => {
244
268
  const canvas = within(canvasElement);
245
- await userEvent.click(canvas.queryByText("Name"));
246
- await userEvent.click(canvas.queryByText("Name"));
269
+ const nameHeader = canvas.getAllByRole("button")[1];
270
+ await userEvent.click(nameHeader);
271
+ await userEvent.click(nameHeader);
247
272
  };
248
273
 
249
274
  const ResultsetTableMiddle = () => (
250
275
  <ExampleContainer>
251
276
  <Title title="Middle page" theme="light" level={4} />
252
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2}></DxcResultsetTable>
277
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2} />
253
278
  </ExampleContainer>
254
279
  );
255
280
 
@@ -263,7 +288,7 @@ MiddlePage.play = async ({ canvasElement }) => {
263
288
  const ResultsetTableLast = () => (
264
289
  <ExampleContainer>
265
290
  <Title title="Last page" theme="light" level={4} />
266
- <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2}></DxcResultsetTable>
291
+ <DxcResultsetTable columns={columns} rows={rows} itemsPerPage={2} />
267
292
  </ExampleContainer>
268
293
  );
269
294
 
@@ -16,42 +16,37 @@ var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable"));
16
16
 
17
17
  // Mocking DOMRect for Radix Primitive Popover
18
18
  global.globalThis = global;
19
+ global.DOMRect = {
20
+ fromRect: function fromRect() {
21
+ return {
22
+ top: 0,
23
+ left: 0,
24
+ bottom: 0,
25
+ right: 0,
26
+ width: 0,
27
+ height: 0
28
+ };
29
+ }
30
+ };
19
31
 
20
32
  global.ResizeObserver = /*#__PURE__*/function () {
21
- function ResizeObserver(cb) {
33
+ function ResizeObserver() {
22
34
  (0, _classCallCheck2["default"])(this, ResizeObserver);
23
- this.cb = cb;
24
35
  }
25
36
 
26
37
  (0, _createClass2["default"])(ResizeObserver, [{
27
38
  key: "observe",
28
- value: function observe() {
29
- this.cb([{
30
- borderBoxSize: {
31
- inlineSize: 0,
32
- blockSize: 0
33
- }
34
- }]);
35
- }
39
+ value: function observe() {}
36
40
  }, {
37
41
  key: "unobserve",
38
42
  value: function unobserve() {}
43
+ }, {
44
+ key: "disconnect",
45
+ value: function disconnect() {}
39
46
  }]);
40
47
  return ResizeObserver;
41
48
  }();
42
49
 
43
- global.DOMRect = {
44
- fromRect: function fromRect() {
45
- return {
46
- top: 0,
47
- left: 0,
48
- bottom: 0,
49
- right: 0,
50
- width: 0,
51
- height: 0
52
- };
53
- }
54
- };
55
50
  var columns = [{
56
51
  displayValue: "Id",
57
52
  isSortable: false
@@ -80,8 +75,6 @@ var rows = [[{
80
75
  }, {
81
76
  displayValue: "Oviedo",
82
77
  sortValue: "Oviedo"
83
- }, {
84
- displayValue: ""
85
78
  }], [{
86
79
  displayValue: "003",
87
80
  sortValue: "003"
@@ -118,8 +111,6 @@ var rows = [[{
118
111
  }, {
119
112
  displayValue: "Barcelona",
120
113
  sortValue: "Barcelona"
121
- }, {
122
- displayValue: ""
123
114
  }], [{
124
115
  displayValue: "007",
125
116
  sortValue: "007"
@@ -147,8 +138,6 @@ var rows = [[{
147
138
  }, {
148
139
  displayValue: "Oviedo",
149
140
  sortValue: "Oviedo"
150
- }, {
151
- displayValue: ""
152
141
  }], [{
153
142
  displayValue: "010",
154
143
  sortValue: "010"
@@ -158,8 +147,6 @@ var rows = [[{
158
147
  }, {
159
148
  displayValue: "Barcelona",
160
149
  sortValue: "Barcelona"
161
- }, {
162
- displayValue: ""
163
150
  }]];
164
151
  var rows2 = [[{
165
152
  displayValue: "546",
@@ -191,8 +178,8 @@ var rows2 = [[{
191
178
  displayValue: "OtherValue",
192
179
  sortValue: "OtherValue"
193
180
  }]];
194
- describe("ResultsetTable component tests", function () {
195
- test("ResultsetTable rendered correctly", function () {
181
+ describe("Resultset table component tests", function () {
182
+ test("Resultset table rendered correctly", function () {
196
183
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
197
184
  columns: columns,
198
185
  rows: rows,
@@ -202,7 +189,7 @@ describe("ResultsetTable component tests", function () {
202
189
 
203
190
  expect(getByText("Peter")).toBeTruthy();
204
191
  });
205
- test("Resultsettable shows as many rows as itemsPerPage", function () {
192
+ test("Resultset table shows as many rows as itemsPerPage", function () {
206
193
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
207
194
  columns: columns,
208
195
  rows: rows,
@@ -212,7 +199,7 @@ describe("ResultsetTable component tests", function () {
212
199
 
213
200
  expect(getAllByRole("row").length - 1).toEqual(3);
214
201
  });
215
- test("Resultsettable shows rows on second page", function () {
202
+ test("Resultset table shows rows on second page", function () {
216
203
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
217
204
  columns: columns,
218
205
  rows: rows,
@@ -225,18 +212,17 @@ describe("ResultsetTable component tests", function () {
225
212
  expect(getByText("Louis")).toBeTruthy();
226
213
  expect(getByText("Lana")).toBeTruthy();
227
214
  expect(getAllByRole("row").length - 1).toEqual(3);
228
- var nextButton = getAllByRole("button")[2];
215
+ var nextButton = getAllByRole("button")[3];
229
216
 
230
217
  _react2.fireEvent.click(nextButton);
231
218
 
232
- expect(getByText("4 to 6 of 10")).toBeTruthy(); // expect(getByText("Page: 2 of 4")).toBeTruthy();
233
-
219
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
234
220
  expect(getByText("Rick")).toBeTruthy();
235
221
  expect(getByText("Mark")).toBeTruthy();
236
222
  expect(getByText("Cris")).toBeTruthy();
237
223
  expect(getAllByRole("row").length - 1).toEqual(3);
238
224
  });
239
- test("Resultsettable goToPage works as expected", function () {
225
+ test("Resultset table goToPage works as expected", function () {
240
226
  window.HTMLElement.prototype.scrollIntoView = function () {};
241
227
 
242
228
  window.HTMLElement.prototype.scrollTo = function () {};
@@ -248,28 +234,27 @@ describe("ResultsetTable component tests", function () {
248
234
  itemsPerPage: 3
249
235
  })),
250
236
  getByText = _render4.getByText,
251
- getAllByRole = _render4.getAllByRole,
252
- getByRole = _render4.getByRole;
237
+ getAllByRole = _render4.getAllByRole;
253
238
 
254
239
  expect(getByText("Peter")).toBeTruthy();
255
240
  expect(getByText("Louis")).toBeTruthy();
256
241
  expect(getByText("Lana")).toBeTruthy();
257
242
  expect(getAllByRole("row").length - 1).toEqual(3);
258
- var goToPageSelect = getAllByRole("button")[2];
259
- (0, _react2.act)(function () {
260
- _userEvent["default"].click(goToPageSelect);
261
- });
243
+ var goToPageSelect = getAllByRole("button")[3];
244
+
245
+ _userEvent["default"].click(goToPageSelect);
246
+
262
247
  var goToPageOption = getByText("2");
263
- (0, _react2.act)(function () {
264
- _userEvent["default"].click(goToPageOption);
265
- });
248
+
249
+ _userEvent["default"].click(goToPageOption);
250
+
266
251
  expect(getByText("4 to 6 of 10")).toBeTruthy();
267
252
  expect(getByText("Rick")).toBeTruthy();
268
253
  expect(getByText("Mark")).toBeTruthy();
269
254
  expect(getByText("Cris")).toBeTruthy();
270
255
  expect(getAllByRole("row").length - 1).toEqual(3);
271
256
  });
272
- test("Resultsettable going to the last page shows only one row", function () {
257
+ test("Resultset table going to the last page shows only one row", function () {
273
258
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
274
259
  columns: columns,
275
260
  rows: rows,
@@ -278,7 +263,7 @@ describe("ResultsetTable component tests", function () {
278
263
  getByText = _render5.getByText,
279
264
  getAllByRole = _render5.getAllByRole;
280
265
 
281
- var lastButton = getAllByRole("button")[3];
266
+ var lastButton = getAllByRole("button")[4];
282
267
 
283
268
  _react2.fireEvent.click(lastButton);
284
269
 
@@ -286,7 +271,7 @@ describe("ResultsetTable component tests", function () {
286
271
  expect(getAllByRole("row")).toHaveLength(2);
287
272
  expect(getByText("Cosmin")).toBeTruthy();
288
273
  });
289
- test("Resultsettable sort rows by column", function () {
274
+ test("Resultset table sort rows by column", function () {
290
275
  var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
291
276
  columns: columns,
292
277
  rows: rows,
@@ -304,7 +289,7 @@ describe("ResultsetTable component tests", function () {
304
289
  expect(component.queryByText("Tina")).toBeTruthy();
305
290
  expect(component.queryByText("Cosmin")).not.toBeTruthy();
306
291
  });
307
- test("Resultsettable change rows should go to first page", function () {
292
+ test("Resultset table change rows should go to first page", function () {
308
293
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
309
294
  columns: columns,
310
295
  rows: rows,
@@ -321,28 +306,20 @@ describe("ResultsetTable component tests", function () {
321
306
  }));
322
307
  expect(queryByText("1 to 3 of 3")).toBeTruthy();
323
308
  });
324
- test("Resultsettable change itemsPerPage should go to first page", function () {
309
+ test("Resultset table change itemsPerPage should go to first page", function () {
325
310
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
326
311
  columns: columns,
327
312
  rows: rows,
328
313
  itemsPerPage: 3,
329
314
  itemsPerPageOptions: [2, 3]
330
315
  })),
331
- getAllByRole = _render7.getAllByRole,
332
- queryByText = _render7.queryByText,
333
- rerender = _render7.rerender;
316
+ getAllByRole = _render7.getAllByRole;
334
317
 
335
- var lastButton = getAllByRole("button")[3];
318
+ var lastButton = getAllByRole("button")[4];
319
+ expect(getAllByRole("row").length - 1).toEqual(3);
336
320
 
337
321
  _react2.fireEvent.click(lastButton);
338
322
 
339
323
  expect(getAllByRole("row").length - 1).toEqual(1);
340
- rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
341
- columns: columns,
342
- rows: rows,
343
- itemsPerPage: 6
344
- }));
345
- expect(getAllByRole("row").length - 1).toEqual(6);
346
- expect(queryByText("Peter")).toBeTruthy();
347
324
  });
348
325
  });
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ export declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export declare type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import { ListboxProps } from "./types";
3
- declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, getSelectWidth, }: ListboxProps) => JSX.Element>;
3
+ declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, styles, }: ListboxProps) => JSX.Element>;
4
4
  export default _default;
package/select/Listbox.js CHANGED
@@ -11,13 +11,9 @@ exports["default"] = void 0;
11
11
 
12
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
13
 
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
-
16
14
  var _react = _interopRequireWildcard(require("react"));
17
15
 
18
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
- var _useTheme = _interopRequireDefault(require("../useTheme"));
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
21
17
 
22
18
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
19
 
@@ -50,17 +46,10 @@ var Listbox = function Listbox(_ref) {
50
46
  optionalItem = _ref.optionalItem,
51
47
  searchable = _ref.searchable,
52
48
  handleOptionOnClick = _ref.handleOptionOnClick,
53
- getSelectWidth = _ref.getSelectWidth;
54
- var colorsTheme = (0, _useTheme["default"])();
49
+ styles = _ref.styles;
55
50
  var translatedLabels = (0, _useTranslatedLabels["default"])();
56
51
  var listboxRef = (0, _react.useRef)(null);
57
-
58
- var _useState = (0, _react.useState)(null),
59
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
60
- styles = _useState2[0],
61
- setStyles = _useState2[1];
62
-
63
- var globalIndex = optional && !multiple ? 0 : -1; // index for options, starting from 0 to options.length -1
52
+ var globalIndex = optional && !multiple ? 0 : -1;
64
53
 
65
54
  var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
66
55
  if (option.options) {
@@ -122,25 +111,7 @@ var Listbox = function Listbox(_ref) {
122
111
  inline: "start"
123
112
  });
124
113
  }, [visualFocusIndex]);
125
-
126
- var handleResize = function handleResize() {
127
- setStyles({
128
- width: getSelectWidth()
129
- });
130
- };
131
-
132
- (0, _react.useLayoutEffect)(function () {
133
- handleResize();
134
- }, [getSelectWidth]);
135
- (0, _react.useEffect)(function () {
136
- window.addEventListener("resize", handleResize);
137
- return function () {
138
- window.removeEventListener("resize", handleResize);
139
- };
140
- }, [getSelectWidth]);
141
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
142
- theme: colorsTheme.select
143
- }, /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
114
+ return /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
144
115
  id: id,
145
116
  onClick: function onClick(event) {
146
117
  event.stopPropagation();
@@ -162,7 +133,7 @@ var Listbox = function Listbox(_ref) {
162
133
  isGroupedOption: false,
163
134
  isLastOption: lastOptionIndex === 0,
164
135
  isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
165
- }), options.map(mapOptionFunc)));
136
+ }), options.map(mapOptionFunc));
166
137
  };
167
138
 
168
139
  var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
package/select/Option.js CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
@@ -13,19 +11,13 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
13
11
 
14
12
  var _react = _interopRequireDefault(require("react"));
15
13
 
16
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
17
-
18
- var _useTheme = _interopRequireDefault(require("../useTheme"));
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
19
15
 
20
16
  var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
21
17
 
22
18
  var _Icons = _interopRequireDefault(require("./Icons"));
23
19
 
24
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
25
-
26
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
-
28
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
29
21
 
30
22
  var Option = function Option(_ref) {
31
23
  var id = _ref.id,
@@ -37,10 +29,7 @@ var Option = function Option(_ref) {
37
29
  isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
38
30
  isLastOption = _ref.isLastOption,
39
31
  isSelected = _ref.isSelected;
40
- var colorsTheme = (0, _useTheme["default"])();
41
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
42
- theme: colorsTheme.select
43
- }, /*#__PURE__*/_react["default"].createElement(OptionItem, {
32
+ return /*#__PURE__*/_react["default"].createElement(OptionItem, {
44
33
  id: id,
45
34
  onClick: function onClick() {
46
35
  _onClick(option);
@@ -62,13 +51,13 @@ var Option = function Option(_ref) {
62
51
  grouped: isGroupedOption,
63
52
  multiple: multiple,
64
53
  role: !(typeof option.icon === "string") ? "img" : undefined
65
- }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement(OptionIconImg, {
54
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
66
55
  src: option.icon
67
56
  }) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
68
57
  grouped: isGroupedOption,
69
58
  hasIcon: option.icon ? true : false,
70
59
  multiple: multiple
71
- }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected)))));
60
+ }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))));
72
61
  };
73
62
 
74
63
  var OptionItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
@@ -87,21 +76,19 @@ var StyledOption = _styledComponents["default"].span(_templateObject2 || (_templ
87
76
  return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
88
77
  });
89
78
 
90
- var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 24px;\n width: 24px;\n ", "\n color: ", ";\n"])), function (props) {
91
- return props.grouped && !props.multiple ? "padding-left: 16px;" : "padding-left: 8px;";
79
+ var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.125rem;\n margin-left: ", ";\n color: ", ";\n\n svg,\n img {\n height: 20px;\n width: 20px;\n }\n"])), function (props) {
80
+ return props.grouped && !props.multiple ? "16px" : "8px";
92
81
  }, function (props) {
93
82
  return props.theme.listOptionIconColor;
94
83
  });
95
84
 
96
- var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n width: 100%;\n overflow: hidden;\n ", "\n"])), function (props) {
97
- return props.grouped && !props.multiple && !props.hasIcon ? "padding-left: 16px;" : "padding-left: 8px;";
85
+ var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n gap: 0.25rem;\n width: 100%;\n overflow: hidden;\n margin-left: ", ";\n"])), function (props) {
86
+ return props.grouped && !props.multiple && !props.hasIcon ? "16px" : "8px";
98
87
  });
99
88
 
100
- var OptionIconImg = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 16px;\n height: 16px;\n"])));
101
-
102
- var OptionLabel = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
89
+ var OptionLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
103
90
 
104
- var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n height: 16px;\n width: 16px;\n margin-left: 4px;\n color: ", ";\n"])), function (props) {
91
+ var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n\n svg {\n width: 16px;\n height: 16px;\n }\n"])), function (props) {
105
92
  return props.theme.selectedListOptionIconColor;
106
93
  });
107
94