@dxc-technology/halstack-react 0.0.0-090152f → 0.0.0-0a9608a

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 (95) hide show
  1. package/HalstackContext.js +7 -8
  2. package/accordion/Accordion.js +7 -13
  3. package/accordion/Accordion.stories.tsx +52 -12
  4. package/accordion/types.d.ts +1 -0
  5. package/accordion-group/types.d.ts +1 -0
  6. package/box/types.d.ts +1 -0
  7. package/button/Button.js +11 -13
  8. package/button/Button.stories.tsx +58 -1
  9. package/card/types.d.ts +1 -0
  10. package/checkbox/Checkbox.d.ts +2 -2
  11. package/checkbox/Checkbox.js +16 -15
  12. package/checkbox/Checkbox.stories.tsx +79 -59
  13. package/checkbox/types.d.ts +4 -0
  14. package/chip/Chip.js +11 -23
  15. package/chip/Chip.stories.tsx +41 -9
  16. package/common/variables.js +130 -126
  17. package/date-input/Calendar.d.ts +4 -0
  18. package/date-input/Calendar.js +246 -0
  19. package/date-input/DateInput.js +134 -237
  20. package/date-input/DateInput.stories.tsx +137 -38
  21. package/date-input/DateInput.test.js +494 -138
  22. package/date-input/DatePicker.d.ts +4 -0
  23. package/date-input/DatePicker.js +132 -0
  24. package/date-input/Icons.d.ts +6 -0
  25. package/date-input/Icons.js +75 -0
  26. package/date-input/YearPicker.d.ts +4 -0
  27. package/date-input/YearPicker.js +116 -0
  28. package/date-input/types.d.ts +51 -0
  29. package/dialog/types.d.ts +1 -0
  30. package/dropdown/Dropdown.js +38 -37
  31. package/dropdown/Dropdown.stories.tsx +175 -94
  32. package/dropdown/Dropdown.test.js +18 -24
  33. package/dropdown/DropdownMenu.js +8 -18
  34. package/dropdown/DropdownMenuItem.js +4 -15
  35. package/file-input/FileInput.d.ts +2 -2
  36. package/file-input/FileInput.js +177 -219
  37. package/file-input/FileInput.stories.tsx +38 -10
  38. package/file-input/FileInput.test.js +53 -12
  39. package/file-input/FileItem.d.ts +4 -14
  40. package/file-input/FileItem.js +38 -63
  41. package/file-input/types.d.ts +17 -0
  42. package/flex/Flex.d.ts +1 -1
  43. package/flex/Flex.js +31 -19
  44. package/flex/types.d.ts +14 -3
  45. package/footer/types.d.ts +1 -0
  46. package/header/Header.js +18 -20
  47. package/header/Header.stories.tsx +34 -1
  48. package/header/types.d.ts +1 -0
  49. package/link/Link.js +1 -1
  50. package/number-input/NumberInput.test.js +43 -7
  51. package/package.json +7 -12
  52. package/paginator/Icons.d.ts +5 -0
  53. package/paginator/Icons.js +16 -28
  54. package/paginator/Paginator.js +6 -12
  55. package/paginator/Paginator.test.js +18 -11
  56. package/password-input/PasswordInput.test.js +13 -12
  57. package/quick-nav/QuickNav.js +11 -12
  58. package/quick-nav/QuickNav.stories.tsx +97 -19
  59. package/radio-group/RadioGroup.js +9 -5
  60. package/radio-group/RadioGroup.test.js +116 -59
  61. package/resultsetTable/Icons.d.ts +7 -0
  62. package/resultsetTable/Icons.js +51 -0
  63. package/resultsetTable/ResultsetTable.js +48 -107
  64. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  65. package/resultsetTable/ResultsetTable.test.js +40 -63
  66. package/resultsetTable/types.d.ts +2 -2
  67. package/select/Listbox.d.ts +1 -1
  68. package/select/Listbox.js +5 -34
  69. package/select/Option.js +11 -24
  70. package/select/Select.js +46 -25
  71. package/select/Select.stories.tsx +209 -167
  72. package/select/Select.test.js +284 -231
  73. package/select/types.d.ts +2 -2
  74. package/sidenav/Sidenav.js +8 -10
  75. package/sidenav/Sidenav.stories.tsx +59 -50
  76. package/slider/Slider.d.ts +2 -2
  77. package/slider/Slider.js +15 -11
  78. package/slider/types.d.ts +4 -0
  79. package/spinner/Spinner.js +2 -2
  80. package/switch/Switch.d.ts +3 -3
  81. package/switch/Switch.js +5 -4
  82. package/switch/types.d.ts +6 -1
  83. package/table/Table.js +1 -1
  84. package/table/Table.test.js +1 -1
  85. package/tabs/Tab.js +3 -5
  86. package/tabs/Tabs.js +3 -3
  87. package/tabs/Tabs.stories.tsx +7 -5
  88. package/tabs-nav/NavTabs.stories.tsx +8 -6
  89. package/tabs-nav/Tab.js +5 -7
  90. package/text-input/Suggestion.js +32 -5
  91. package/text-input/TextInput.js +172 -162
  92. package/text-input/TextInput.stories.tsx +24 -4
  93. package/text-input/TextInput.test.js +658 -647
  94. package/text-input/types.d.ts +5 -0
  95. package/common/RequiredComponent.js +0 -32
@@ -4,10 +4,10 @@ import DxcDropdown from "./Dropdown";
4
4
  import Title from "../../.storybook/components/Title";
5
5
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
6
  import DropdownMenu from "./DropdownMenu";
7
- import DxcCheckbox from "../checkbox/Checkbox";
8
- import DxcTextInput from "../text-input/TextInput";
9
7
  import { Option } from "./types";
10
-
8
+ import useTheme from "../useTheme";
9
+ import { ThemeProvider } from "styled-components";
10
+ import DxcFlex from "../flex/Flex";
11
11
 
12
12
  export default {
13
13
  title: "Dropdown",
@@ -20,20 +20,14 @@ const hamburguerIcon = (
20
20
  </svg>
21
21
  );
22
22
  const iconSVG = (
23
- <svg viewBox="0 0 24 24" fill="currentColor">
23
+ <svg viewBox="0 0 24 24" height="24" width="24" fill="currentColor">
24
24
  <path d="M0 0h24v24H0z" fill="none" />
25
25
  <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
26
26
  </svg>
27
27
  );
28
28
  const iconSVGLarge = (
29
- <svg enableBackground="new 0 0 24 24" height="48" viewBox="0 0 24 24" width="48" fill="currentColor">
30
- <g>
31
- <path d="M0,0h24v24H0V0z" fill="none" />
32
- <path d="M0,0h24v24H0V0z" fill="none" />
33
- </g>
34
- <g>
35
- <path d="M12,17.27L18.18,21l-1.64-7.03L22,9.24l-7.19-0.61L12,2L9.19,8.63L2,9.24l5.46,4.73L5.82,21L12,17.27z" />
36
- </g>
29
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" height="48" width="48">
30
+ <path d="M11 44q-1.2 0-2.1-.9Q8 42.2 8 41V15q0-1.2.9-2.1.9-.9 2.1-.9h5.5v-.5q0-3.15 2.175-5.325Q20.85 4 24 4q3.15 0 5.325 2.175Q31.5 8.35 31.5 11.5v.5H37q1.2 0 2.1.9.9.9.9 2.1v26q0 1.2-.9 2.1-.9.9-2.1.9Zm0-3h26V15h-5.5v4.5q0 .65-.425 1.075Q30.65 21 30 21q-.65 0-1.075-.425-.425-.425-.425-1.075V15h-9v4.5q0 .65-.425 1.075Q18.65 21 18 21q-.65 0-1.075-.425-.425-.425-.425-1.075V15H11v26Zm8.5-29h9v-.5q0-1.9-1.3-3.2Q25.9 7 24 7q-1.9 0-3.2 1.3-1.3 1.3-1.3 3.2ZM11 41V15v26Z" />
37
31
  </svg>
38
32
  );
39
33
  const iconUrl = "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png";
@@ -60,6 +54,18 @@ const defaultOptions: Option[] = [
60
54
  value: "5",
61
55
  label: "Aliexpress",
62
56
  },
57
+ {
58
+ value: "6",
59
+ label: "Etsy",
60
+ },
61
+ {
62
+ value: "7",
63
+ label: "Alibaba",
64
+ },
65
+ {
66
+ value: "8",
67
+ label: "Gearbest shop",
68
+ },
63
69
  ];
64
70
  const options: Option[] = [
65
71
  {
@@ -85,7 +91,7 @@ const optionWithIcon: Option[] = [
85
91
 
86
92
  const optionsIcon: any = options.map((op, i) => ({ ...op, icon: icons[i] }));
87
93
 
88
- export const Chromatic = () => (
94
+ const Dropdown = () => (
89
95
  <>
90
96
  <ExampleContainer>
91
97
  <Title title="Default" theme="light" level={4} />
@@ -134,9 +140,18 @@ export const Chromatic = () => (
134
140
  <DxcDropdown options={options} onSelectOption={(value) => {}} icon={hamburguerIcon} caretHidden />
135
141
  </ExampleContainer>
136
142
  <ExampleContainer>
137
- <Title title="Large icon" theme="light" level={4} />
143
+ <Title title="Large icon (SVG)" theme="light" level={4} />
138
144
  <DxcDropdown label="Large icon" options={options} onSelectOption={(value) => {}} icon={iconSVGLarge} />
139
145
  </ExampleContainer>
146
+ <ExampleContainer>
147
+ <Title title="Large icon (image)" theme="light" level={4} />
148
+ <DxcDropdown
149
+ label="Large icon"
150
+ options={options}
151
+ onSelectOption={(value) => {}}
152
+ icon="https://upload.wikimedia.org/wikipedia/commons/thumb/b/b2/Hamburger_icon.svg/2048px-Hamburger_icon.svg.png"
153
+ />
154
+ </ExampleContainer>
140
155
  <ExampleContainer>
141
156
  <Title title="Disabled with icon" theme="light" level={4} />
142
157
  <DxcDropdown
@@ -219,94 +234,160 @@ export const Chromatic = () => (
219
234
  size="fillParent"
220
235
  />
221
236
  </ExampleContainer>
237
+ <ExampleContainer expanded>
238
+ <Title title="Opened menu" theme="light" level={4} />
239
+ <DxcDropdown label="Label" options={options} onSelectOption={(value) => {}} margin={{ top: "xxlarge" }} />
240
+ </ExampleContainer>
222
241
  </>
223
242
  );
224
243
 
225
- const DropdownListStates = () => (
226
- <>
227
- <Title title="Dropdown Menu" theme="light" level={2} />
228
- <Title title="Default with opened menu" theme="light" level={3} />
229
- <ExampleContainer>
230
- <div style={{ display: "flex", gap: "30px", flexDirection: "column", marginBottom: "80px" }}>
231
- <DxcDropdown label="Select a platform" options={defaultOptions} onSelectOption={(option) => {}} size="medium" />
232
- <DxcTextInput label="Your name" onChange={() => {}} />
233
- <DxcCheckbox
234
- label="You understand the selection and give your consent"
235
- onChange={() => {}}
236
- labelPosition="after"
244
+ const DropdownListStates = () => {
245
+ const colorsTheme: any = useTheme();
246
+
247
+ return (
248
+ <>
249
+ <Title title="Dropdown Menu" theme="light" level={2} />
250
+ <ExampleContainer>
251
+ <Title
252
+ title="List dialog uses a Radix Popover to appear over elements with a certain z-index"
253
+ theme="light"
254
+ level={3}
237
255
  />
238
- </div>
239
- </ExampleContainer>
240
- <Title title="Option states" theme="light" level={3} />
241
- <ExampleContainer pseudoState="pseudo-hover">
242
- <Title title="Hovered option" theme="light" level={4} />
243
- <DropdownMenu
244
- id="x"
245
- dropdownId="dX"
246
- iconsPosition="before"
247
- visualFocusIndex={-1}
248
- optionOnClick={(option) => {}}
249
- onKeyDown={(e) => {}}
250
- options={optionWithIcon}
251
- styles={{ width: 240 }}
252
- />
253
- </ExampleContainer>
254
- <ExampleContainer pseudoState="pseudo-active">
255
- <Title title="Active option" theme="light" level={4} />
256
- <DropdownMenu
257
- id="x"
258
- dropdownId="dX"
259
- iconsPosition="before"
260
- visualFocusIndex={-1}
261
- optionOnClick={(option) => {}}
262
- onKeyDown={(e) => {}}
263
- options={optionWithIcon}
264
- styles={{ width: 240 }}
265
- />
266
- </ExampleContainer>
267
- <ExampleContainer>
268
- <Title title="Focused option" theme="light" level={4} />
269
- <DropdownMenu
270
- id="x"
271
- dropdownId="dX"
272
- iconsPosition="before"
273
- visualFocusIndex={0}
274
- optionOnClick={(option) => {}}
275
- onKeyDown={(e) => {}}
276
- options={options}
277
- styles={{ width: 240 }}
278
- />
279
- </ExampleContainer>
280
- <Title title="Icons" theme="light" level={3} />
281
- <ExampleContainer>
282
- <Title title="Before" theme="light" level={4} />
283
- <DropdownMenu
284
- id="x"
285
- dropdownId="dX"
286
- iconsPosition="before"
287
- visualFocusIndex={-1}
288
- optionOnClick={(option) => {}}
289
- onKeyDown={(e) => {}}
290
- options={optionsIcon}
291
- styles={{ width: 240 }}
292
- />
293
- <Title title="After" theme="light" level={4} />
294
- <DropdownMenu
295
- id="x"
296
- dropdownId="dX"
297
- iconsPosition="after"
298
- visualFocusIndex={-1}
299
- optionOnClick={(option) => {}}
300
- onKeyDown={(e) => {}}
301
- options={optionsIcon}
302
- styles={{ width: 240 }}
303
- />
304
- </ExampleContainer>
305
- </>
256
+ <div
257
+ style={{
258
+ position: "relative",
259
+ display: "flex",
260
+ flexDirection: "column",
261
+ gap: "20px",
262
+ height: "150px",
263
+ width: "min-content",
264
+ marginBottom: "100px",
265
+ padding: "20px",
266
+ border: "1px solid black",
267
+ borderRadius: "4px",
268
+ overflow: "auto",
269
+ zIndex: "1300",
270
+ }}
271
+ >
272
+ <DxcDropdown
273
+ label="Select a platform"
274
+ options={defaultOptions}
275
+ onSelectOption={(option) => {}}
276
+ size="medium"
277
+ />
278
+ <button style={{ zIndex: "1", width: "100px" }}>Submit</button>
279
+ </div>
280
+ </ExampleContainer>
281
+ <ThemeProvider theme={colorsTheme.dropdown}>
282
+ <Title title="Option states" theme="light" level={3} />
283
+ <ExampleContainer pseudoState="pseudo-hover">
284
+ <Title title="Hovered option" theme="light" level={4} />
285
+ <DropdownMenu
286
+ id="x"
287
+ dropdownTriggerId="dtx"
288
+ iconsPosition="before"
289
+ visualFocusIndex={-1}
290
+ menuItemOnClick={(value) => {}}
291
+ onKeyDown={(e) => {}}
292
+ options={optionWithIcon}
293
+ styles={{ width: 240 }}
294
+ />
295
+ </ExampleContainer>
296
+ <ExampleContainer pseudoState="pseudo-active">
297
+ <Title title="Active option" theme="light" level={4} />
298
+ <DropdownMenu
299
+ id="x"
300
+ dropdownTriggerId="dtx"
301
+ iconsPosition="before"
302
+ visualFocusIndex={-1}
303
+ menuItemOnClick={(value) => {}}
304
+ onKeyDown={(e) => {}}
305
+ options={optionWithIcon}
306
+ styles={{ width: 240 }}
307
+ />
308
+ </ExampleContainer>
309
+ <ExampleContainer>
310
+ <Title title="Focused option" theme="light" level={4} />
311
+ <DropdownMenu
312
+ id="x"
313
+ dropdownTriggerId="dtx"
314
+ iconsPosition="before"
315
+ visualFocusIndex={0}
316
+ menuItemOnClick={(value) => {}}
317
+ onKeyDown={(e) => {}}
318
+ options={options}
319
+ styles={{ width: 240 }}
320
+ />
321
+ </ExampleContainer>
322
+ <Title title="Icons" theme="light" level={3} />
323
+ <ExampleContainer>
324
+ <Title title="Before" theme="light" level={4} />
325
+ <DropdownMenu
326
+ id="x"
327
+ dropdownTriggerId="dtx"
328
+ iconsPosition="before"
329
+ visualFocusIndex={-1}
330
+ menuItemOnClick={(value) => {}}
331
+ onKeyDown={(e) => {}}
332
+ options={optionsIcon}
333
+ styles={{ width: 240 }}
334
+ />
335
+ <Title title="After" theme="light" level={4} />
336
+ <DropdownMenu
337
+ id="x"
338
+ dropdownTriggerId="dtx"
339
+ iconsPosition="after"
340
+ visualFocusIndex={-1}
341
+ menuItemOnClick={(value) => {}}
342
+ onKeyDown={(e) => {}}
343
+ options={optionsIcon}
344
+ styles={{ width: 240 }}
345
+ />
346
+ </ExampleContainer>
347
+ </ThemeProvider>
348
+ </>
349
+ );
350
+ };
351
+
352
+ const DropdownRightAlignment = () => (
353
+ <ExampleContainer expanded>
354
+ <Title title="Dropdown collisions on the right boundary (right)" theme="light" level={4} />
355
+ <DxcFlex justifyContent="flex-end">
356
+ <DxcDropdown label="Label" options={options} onSelectOption={(value) => {}} />
357
+ </DxcFlex>
358
+ </ExampleContainer>
306
359
  );
307
360
 
361
+ const DropdownCenterAlignment = () => (
362
+ <ExampleContainer expanded>
363
+ <Title title="Dropdown collisions on the right boundary (centered)" theme="light" level={4} />
364
+ <DxcFlex justifyContent="flex-end">
365
+ <DxcDropdown label="Label" options={defaultOptions} onSelectOption={(value) => {}} margin="small" />
366
+ </DxcFlex>
367
+ </ExampleContainer>
368
+ );
369
+
370
+ export const Chromatic = Dropdown.bind({});
371
+ Chromatic.play = async ({ canvasElement }) => {
372
+ const canvas = within(canvasElement);
373
+ const buttonList = canvas.getAllByRole("button");
374
+ await userEvent.click(buttonList[buttonList.length - 1]);
375
+ };
376
+
308
377
  export const DropdownMenuStates = DropdownListStates.bind({});
309
378
  DropdownMenuStates.play = async ({ canvasElement }) => {
379
+ const canvas = within(canvasElement);
380
+ await userEvent.click(canvas.getAllByRole("button")[0]);
381
+ };
382
+
383
+ export const DropdownMenuAlignedRight = DropdownRightAlignment.bind({});
384
+ DropdownMenuAlignedRight.play = async ({ canvasElement }) => {
385
+ const canvas = within(canvasElement);
386
+ await userEvent.click(canvas.getByRole("button"));
387
+ };
388
+
389
+ export const DropdownMenuAlignedCenter = DropdownCenterAlignment.bind({});
390
+ DropdownMenuAlignedCenter.play = async ({ canvasElement }) => {
310
391
  const canvas = within(canvasElement);
311
392
  await userEvent.click(canvas.getByRole("button"));
312
393
  };
@@ -15,42 +15,37 @@ var _Dropdown = _interopRequireDefault(require("./Dropdown"));
15
15
  var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
16
16
 
17
17
  global.globalThis = global;
18
+ global.DOMRect = {
19
+ fromRect: function fromRect() {
20
+ return {
21
+ top: 0,
22
+ left: 0,
23
+ bottom: 0,
24
+ right: 0,
25
+ width: 0,
26
+ height: 0
27
+ };
28
+ }
29
+ };
18
30
 
19
31
  global.ResizeObserver = /*#__PURE__*/function () {
20
- function ResizeObserver(cb) {
32
+ function ResizeObserver() {
21
33
  (0, _classCallCheck2["default"])(this, ResizeObserver);
22
- this.cb = cb;
23
34
  }
24
35
 
25
36
  (0, _createClass2["default"])(ResizeObserver, [{
26
37
  key: "observe",
27
- value: function observe() {
28
- this.cb([{
29
- borderBoxSize: {
30
- inlineSize: 0,
31
- blockSize: 0
32
- }
33
- }]);
34
- }
38
+ value: function observe() {}
35
39
  }, {
36
40
  key: "unobserve",
37
41
  value: function unobserve() {}
42
+ }, {
43
+ key: "disconnect",
44
+ value: function disconnect() {}
38
45
  }]);
39
46
  return ResizeObserver;
40
47
  }();
41
48
 
42
- global.DOMRect = {
43
- fromRect: function fromRect() {
44
- return {
45
- top: 0,
46
- left: 0,
47
- bottom: 0,
48
- right: 0,
49
- width: 0,
50
- height: 0
51
- };
52
- }
53
- };
54
49
  var options = [{
55
50
  value: "1",
56
51
  label: "Amazon"
@@ -74,7 +69,6 @@ describe("Dropdown component tests", function () {
74
69
  getByRole = _render.getByRole;
75
70
 
76
71
  var dropdown = getByRole("button");
77
- expect(dropdown.getAttribute("aria-disabled")).toBe("false");
78
72
  expect(dropdown.getAttribute("aria-haspopup")).toBe("true");
79
73
  expect(dropdown.getAttribute("aria-expanded")).toBeNull();
80
74
  expect(dropdown.getAttribute("aria-activedescendant")).toBeNull();
@@ -82,6 +76,7 @@ describe("Dropdown component tests", function () {
82
76
  _userEvent["default"].click(dropdown);
83
77
 
84
78
  var menu = getByRole("menu");
79
+ expect(dropdown.getAttribute("aria-controls")).toBe(menu.id);
85
80
  expect(dropdown.getAttribute("aria-expanded")).toBe("true");
86
81
  expect(menu.getAttribute("aria-activedescendant")).toBe("option-0");
87
82
  expect(menu.getAttribute("aria-orientation")).toBe("vertical");
@@ -123,7 +118,6 @@ describe("Dropdown component tests", function () {
123
118
  queryByText = _render3.queryByText;
124
119
 
125
120
  var dropdown = getByRole("button");
126
- expect(dropdown.getAttribute("aria-disabled")).toBe("true");
127
121
  expect(queryByRole("menu")).toBeFalsy();
128
122
 
129
123
  _userEvent["default"].click(dropdown);
@@ -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,18 +11,12 @@ 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 _DropdownMenuItem = _interopRequireDefault(require("./DropdownMenuItem"));
21
17
 
22
18
  var _templateObject;
23
19
 
24
- 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); }
25
-
26
- 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; }
27
-
28
20
  var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
29
21
  var id = _ref.id,
30
22
  dropdownTriggerId = _ref.dropdownTriggerId,
@@ -34,12 +26,10 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
34
26
  onKeyDown = _ref.onKeyDown,
35
27
  options = _ref.options,
36
28
  styles = _ref.styles;
37
- var colorsTheme = (0, _useTheme["default"])();
38
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
39
- theme: colorsTheme.dropdown
40
- }, /*#__PURE__*/_react["default"].createElement(DropdownMenuContainer, {
29
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuContainer, {
41
30
  onMouseDown: function onMouseDown(event) {
42
- // Prevent the onBlur event from closing menu when clicking on the menu since it is implemented with a Portal and the menu is not a child of the container
31
+ // Prevent the onBlur event from closing menu when clicking on the menu since
32
+ // it is implemented with a Portal and the menu is not a direct child of the container
43
33
  event.preventDefault();
44
34
  },
45
35
  onKeyDown: onKeyDown,
@@ -49,8 +39,8 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
49
39
  "aria-orientation": "vertical",
50
40
  "aria-activedescendant": "option-".concat(visualFocusIndex),
51
41
  tabIndex: -1,
52
- style: styles,
53
- ref: ref
42
+ ref: ref,
43
+ style: styles
54
44
  }, options.map(function (option, index) {
55
45
  return /*#__PURE__*/_react["default"].createElement(_DropdownMenuItem["default"], {
56
46
  id: "option-".concat(index),
@@ -60,10 +50,10 @@ var DropdownMenu = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref
60
50
  onClick: menuItemOnClick,
61
51
  option: option
62
52
  });
63
- })));
53
+ }));
64
54
  });
65
55
 
66
- var DropdownMenuContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 230px;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n background-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-radius: ", ";\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n outline: none;\n"])), function (props) {
56
+ var DropdownMenuContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 230px;\n min-width: min-content;\n overflow-y: auto;\n padding: 0;\n margin: 0;\n background-color: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n border-radius: ", ";\n border-top-right-radius: 0;\n border-top-left-radius: 0;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n outline: none;\n"])), function (props) {
67
57
  return props.theme.optionBackgroundColor;
68
58
  }, function (props) {
69
59
  return props.theme.borderThickness;
@@ -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,26 +11,17 @@ 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 _templateObject, _templateObject2, _templateObject3;
21
17
 
22
- 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); }
23
-
24
- 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; }
25
-
26
18
  var DropdownMenuItem = function DropdownMenuItem(_ref) {
27
19
  var id = _ref.id,
28
20
  visuallyFocused = _ref.visuallyFocused,
29
21
  iconPosition = _ref.iconPosition,
30
22
  _onClick = _ref.onClick,
31
23
  option = _ref.option;
32
- var colorsTheme = (0, _useTheme["default"])();
33
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
34
- theme: colorsTheme.dropdown
35
- }, /*#__PURE__*/_react["default"].createElement(DropdownMenuItemContainer, {
24
+ return /*#__PURE__*/_react["default"].createElement(DropdownMenuItemContainer, {
36
25
  visuallyFocused: visuallyFocused,
37
26
  onClick: function onClick() {
38
27
  _onClick(option.value);
@@ -46,7 +35,7 @@ var DropdownMenuItem = function DropdownMenuItem(_ref) {
46
35
  role: typeof option.icon === "string" ? undefined : "img"
47
36
  }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
48
37
  src: option.icon
49
- }) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label)));
38
+ }) : option.icon), iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownMenuItemLabel, null, option.label));
50
39
  };
51
40
 
52
41
  var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: ", ";\n min-height: 36px;\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n cursor: pointer;\n\n ", "\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
@@ -67,7 +56,7 @@ var DropdownMenuItemContainer = _styledComponents["default"].li(_templateObject
67
56
  return props.theme.activeOptionBackgroundColor;
68
57
  });
69
58
 
70
- var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5rem;\n color: ", ";\n"])), function (props) {
59
+ var DropdownMenuItemLabel = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n line-height: 1.5rem;\n color: ", ";\n white-space: nowrap;\n"])), function (props) {
71
60
  return props.theme.optionFontFamily;
72
61
  }, function (props) {
73
62
  return props.theme.optionFontSize;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from "react";
2
2
  import FileInputPropsType from "./types";
3
- declare const DxcFileInput: ({ name, mode, label, buttonLabel, dropAreaLabel, helperText, accept, minSize, maxSize, showPreview, multiple, disabled, callbackFile, value, margin, tabIndex, }: FileInputPropsType) => JSX.Element;
3
+ declare const DxcFileInput: React.ForwardRefExoticComponent<FileInputPropsType & React.RefAttributes<HTMLDivElement>>;
4
4
  export default DxcFileInput;