@zohodesk/components 1.6.31 → 1.6.34

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 (163) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/assets/Appearance/light/mode/Component_LightMode.module.css +1 -1
  3. package/es/Accordion/__tests__/Accordion.spec.js +117 -3
  4. package/es/Accordion/__tests__/AccordionItem.spec.js +118 -6
  5. package/es/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +344 -2
  6. package/es/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +155 -3
  7. package/es/Animation/__tests__/Animation.spec.js +28 -4
  8. package/es/Animation/__tests__/__snapshots__/Animation.spec.js.snap +92 -2
  9. package/es/Button/css/Button.module.css +2 -3
  10. package/es/CheckBox/CheckBox.js +1 -1
  11. package/es/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +1 -1
  12. package/es/DateTime/DateTime.module.css +2 -2
  13. package/es/DateTime/__tests__/CalendarView.spec.js +70 -3
  14. package/es/DateTime/__tests__/DateTime.spec.js +89 -6
  15. package/es/DateTime/__tests__/DateTimePopupFooter.spec.js +20 -2
  16. package/es/DateTime/__tests__/DateTimePopupHeader.spec.js +29 -2
  17. package/es/DateTime/__tests__/DateWidget.spec.js +34 -2
  18. package/es/DateTime/__tests__/DaysRow.spec.js +19 -3
  19. package/es/DateTime/__tests__/Time.spec.js +50 -3
  20. package/es/DateTime/__tests__/YearView.spec.js +60 -3
  21. package/es/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +2907 -170
  22. package/es/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +4392 -108
  23. package/es/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +67 -1
  24. package/es/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +187 -1
  25. package/es/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +265 -1
  26. package/es/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +155 -2
  27. package/es/DateTime/__tests__/__snapshots__/Time.spec.js.snap +522 -5
  28. package/es/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +540 -0
  29. package/es/DropBox/DropBoxElement/css/DropBoxElement.module.css +1 -4
  30. package/es/Heading/Heading.module.css +1 -1
  31. package/es/Heading/__tests__/Heading.spec.js +57 -3
  32. package/es/Heading/__tests__/__snapshots__/Heading.spec.js.snap +87 -14
  33. package/es/ListItem/__tests__/ListContainer.spec.js +228 -1
  34. package/es/ListItem/__tests__/ListItem.spec.js +359 -1
  35. package/es/ListItem/__tests__/ListItemWithAvatar.spec.js +390 -1
  36. package/es/ListItem/__tests__/ListItemWithCheckBox.spec.js +214 -1
  37. package/es/ListItem/__tests__/ListItemWithIcon.spec.js +303 -1
  38. package/es/ListItem/__tests__/ListItemWithRadio.spec.js +230 -1
  39. package/es/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +602 -0
  40. package/es/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +1807 -0
  41. package/es/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +2703 -0
  42. package/es/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +2909 -0
  43. package/es/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +2009 -0
  44. package/es/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +3070 -0
  45. package/es/MultiSelect/MultiSelect.module.css +1 -2
  46. package/es/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +671 -1
  47. package/es/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +730 -1
  48. package/es/MultiSelect/__tests__/EmptyState.spec.js +268 -1
  49. package/es/MultiSelect/__tests__/MultiSelect.spec.js +889 -2
  50. package/es/MultiSelect/__tests__/MultiSelectHeader.spec.js +50 -1
  51. package/es/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +487 -1
  52. package/es/MultiSelect/__tests__/SelectedOptions.spec.js +291 -1
  53. package/es/MultiSelect/__tests__/Suggestions.spec.js +370 -2
  54. package/es/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +11785 -0
  55. package/es/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +12083 -0
  56. package/es/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +253 -0
  57. package/es/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +14052 -0
  58. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +136 -0
  59. package/es/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +11506 -0
  60. package/es/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +1382 -0
  61. package/es/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +3611 -0
  62. package/es/PopOver/__tests__/PopOver.spec.js +141 -2
  63. package/es/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1260 -0
  64. package/es/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +212 -1
  65. package/es/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1802 -0
  66. package/es/Tab/Tabs.module.css +1 -2
  67. package/es/Tab/__tests__/Tab.spec.js +249 -1
  68. package/es/Tab/__tests__/TabContent.spec.js +34 -1
  69. package/es/Tab/__tests__/TabContentWrapper.spec.js +72 -1
  70. package/es/Tab/__tests__/TabWrapper.spec.js +163 -1
  71. package/es/Tab/__tests__/Tabs.spec.js +681 -1
  72. package/es/Tab/__tests__/__snapshots__/Tab.spec.js.snap +1049 -0
  73. package/es/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +99 -0
  74. package/es/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +121 -0
  75. package/es/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2002 -0
  76. package/es/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +11053 -0
  77. package/es/Textarea/Textarea.module.css +1 -1
  78. package/es/Tooltip/Tooltip.module.css +1 -2
  79. package/es/Tooltip/__tests__/Tooltip.spec.js +590 -0
  80. package/es/Tooltip/__tests__/__snapshots__/Tooltip.spec.js.snap +813 -0
  81. package/es/Typography/css/Typography.module.css +8 -7
  82. package/es/common/common.module.css +4 -4
  83. package/lib/Accordion/__tests__/Accordion.spec.js +122 -2
  84. package/lib/Accordion/__tests__/AccordionItem.spec.js +126 -4
  85. package/lib/Accordion/__tests__/__snapshots__/Accordion.spec.js.snap +344 -2
  86. package/lib/Accordion/__tests__/__snapshots__/AccordionItem.spec.js.snap +155 -3
  87. package/lib/Animation/__tests__/Animation.spec.js +31 -5
  88. package/lib/Animation/__tests__/__snapshots__/Animation.spec.js.snap +92 -2
  89. package/lib/Button/css/Button.module.css +2 -3
  90. package/lib/CheckBox/CheckBox.js +1 -1
  91. package/lib/CheckBox/__tests__/__snapshots__/CheckBox.spec.js.snap +1 -1
  92. package/lib/DateTime/DateTime.module.css +2 -2
  93. package/lib/DateTime/__tests__/CalendarView.spec.js +71 -2
  94. package/lib/DateTime/__tests__/DateTime.spec.js +92 -6
  95. package/lib/DateTime/__tests__/DateTimePopupFooter.spec.js +21 -1
  96. package/lib/DateTime/__tests__/DateTimePopupHeader.spec.js +30 -1
  97. package/lib/DateTime/__tests__/DateWidget.spec.js +35 -1
  98. package/lib/DateTime/__tests__/DaysRow.spec.js +20 -2
  99. package/lib/DateTime/__tests__/Time.spec.js +51 -2
  100. package/lib/DateTime/__tests__/YearView.spec.js +61 -2
  101. package/lib/DateTime/__tests__/__snapshots__/CalendarView.spec.js.snap +2907 -170
  102. package/lib/DateTime/__tests__/__snapshots__/DateTime.spec.js.snap +4392 -108
  103. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupFooter.spec.js.snap +67 -1
  104. package/lib/DateTime/__tests__/__snapshots__/DateTimePopupHeader.spec.js.snap +187 -1
  105. package/lib/DateTime/__tests__/__snapshots__/DateWidget.spec.js.snap +265 -1
  106. package/lib/DateTime/__tests__/__snapshots__/DaysRow.spec.js.snap +155 -2
  107. package/lib/DateTime/__tests__/__snapshots__/Time.spec.js.snap +522 -5
  108. package/lib/DateTime/__tests__/__snapshots__/YearView.spec.js.snap +540 -0
  109. package/lib/DropBox/DropBoxElement/css/DropBoxElement.module.css +1 -4
  110. package/lib/Heading/Heading.module.css +1 -1
  111. package/lib/Heading/__tests__/Heading.spec.js +60 -4
  112. package/lib/Heading/__tests__/__snapshots__/Heading.spec.js.snap +87 -14
  113. package/lib/ListItem/__tests__/ListContainer.spec.js +229 -0
  114. package/lib/ListItem/__tests__/ListItem.spec.js +362 -0
  115. package/lib/ListItem/__tests__/ListItemWithAvatar.spec.js +391 -0
  116. package/lib/ListItem/__tests__/ListItemWithCheckBox.spec.js +215 -0
  117. package/lib/ListItem/__tests__/ListItemWithIcon.spec.js +304 -0
  118. package/lib/ListItem/__tests__/ListItemWithRadio.spec.js +231 -0
  119. package/lib/ListItem/__tests__/__snapshots__/ListContainer.spec.js.snap +602 -0
  120. package/lib/ListItem/__tests__/__snapshots__/ListItem.spec.js.snap +1807 -0
  121. package/lib/ListItem/__tests__/__snapshots__/ListItemWithAvatar.spec.js.snap +2703 -0
  122. package/lib/ListItem/__tests__/__snapshots__/ListItemWithCheckBox.spec.js.snap +2909 -0
  123. package/lib/ListItem/__tests__/__snapshots__/ListItemWithIcon.spec.js.snap +2009 -0
  124. package/lib/ListItem/__tests__/__snapshots__/ListItemWithRadio.spec.js.snap +3070 -0
  125. package/lib/MultiSelect/MultiSelect.module.css +1 -2
  126. package/lib/MultiSelect/__tests__/AdvancedGroupMultiSelect.spec.js +692 -0
  127. package/lib/MultiSelect/__tests__/AdvancedMultiSelect.spec.js +741 -0
  128. package/lib/MultiSelect/__tests__/EmptyState.spec.js +273 -0
  129. package/lib/MultiSelect/__tests__/MultiSelect.spec.js +910 -0
  130. package/lib/MultiSelect/__tests__/MultiSelectHeader.spec.js +51 -0
  131. package/lib/MultiSelect/__tests__/MultiSelectWithAvatar.spec.js +497 -0
  132. package/lib/MultiSelect/__tests__/SelectedOptions.spec.js +305 -0
  133. package/lib/MultiSelect/__tests__/Suggestions.spec.js +375 -0
  134. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedGroupMultiSelect.spec.js.snap +11785 -0
  135. package/lib/MultiSelect/__tests__/__snapshots__/AdvancedMultiSelect.spec.js.snap +12083 -0
  136. package/lib/MultiSelect/__tests__/__snapshots__/EmptyState.spec.js.snap +253 -0
  137. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelect.spec.js.snap +14052 -0
  138. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectHeader.spec.js.snap +136 -0
  139. package/lib/MultiSelect/__tests__/__snapshots__/MultiSelectWithAvatar.spec.js.snap +11506 -0
  140. package/lib/MultiSelect/__tests__/__snapshots__/SelectedOptions.spec.js.snap +1382 -0
  141. package/lib/MultiSelect/__tests__/__snapshots__/Suggestions.spec.js.snap +3611 -0
  142. package/lib/PopOver/__tests__/PopOver.spec.js +150 -1
  143. package/lib/PopOver/__tests__/__snapshots__/PopOver.spec.js.snap +1260 -0
  144. package/lib/ResponsiveDropBox/__tests__/ResponsiveDropBox.spec.js +213 -0
  145. package/lib/ResponsiveDropBox/__tests__/__snapshots__/ResponsiveDropBox.spec.js.snap +1802 -0
  146. package/lib/Tab/Tabs.module.css +1 -2
  147. package/lib/Tab/__tests__/Tab.spec.js +250 -0
  148. package/lib/Tab/__tests__/TabContent.spec.js +35 -0
  149. package/lib/Tab/__tests__/TabContentWrapper.spec.js +76 -0
  150. package/lib/Tab/__tests__/TabWrapper.spec.js +174 -0
  151. package/lib/Tab/__tests__/Tabs.spec.js +741 -0
  152. package/lib/Tab/__tests__/__snapshots__/Tab.spec.js.snap +1049 -0
  153. package/lib/Tab/__tests__/__snapshots__/TabContent.spec.js.snap +99 -0
  154. package/lib/Tab/__tests__/__snapshots__/TabContentWrapper.spec.js.snap +121 -0
  155. package/lib/Tab/__tests__/__snapshots__/TabWrapper.spec.js.snap +2002 -0
  156. package/lib/Tab/__tests__/__snapshots__/Tabs.spec.js.snap +11053 -0
  157. package/lib/Textarea/Textarea.module.css +1 -1
  158. package/lib/Tooltip/Tooltip.module.css +1 -2
  159. package/lib/Tooltip/__tests__/Tooltip.spec.js +629 -0
  160. package/lib/Tooltip/__tests__/__snapshots__/Tooltip.spec.js.snap +813 -0
  161. package/lib/Typography/css/Typography.module.css +8 -7
  162. package/lib/common/common.module.css +4 -4
  163. package/package.json +6 -5
@@ -1,11 +1,43 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, cleanup } from '@testing-library/react';
3
3
  import DateWidget from "../DateWidget";
4
4
  describe('DateWidget', () => {
5
- test('rendering the defult props', () => {
5
+ afterEach(() => cleanup());
6
+ test('Render with default props', () => {
6
7
  const {
7
8
  asFragment
8
9
  } = render( /*#__PURE__*/React.createElement(DateWidget, null));
9
10
  expect(asFragment()).toMatchSnapshot();
10
11
  });
12
+ test('Render with value', () => {
13
+ const {
14
+ asFragment
15
+ } = render( /*#__PURE__*/React.createElement(DateWidget, {
16
+ value: "2024-01-15T10:00:00.000"
17
+ }));
18
+ expect(asFragment()).toMatchSnapshot();
19
+ });
20
+ test('Render with isDisabled', () => {
21
+ const {
22
+ asFragment
23
+ } = render( /*#__PURE__*/React.createElement(DateWidget, {
24
+ isDisabled: true
25
+ }));
26
+ expect(asFragment()).toMatchSnapshot();
27
+ });
28
+ test('Render with isReadOnly', () => {
29
+ const {
30
+ asFragment
31
+ } = render( /*#__PURE__*/React.createElement(DateWidget, {
32
+ isReadOnly: true
33
+ }));
34
+ expect(asFragment()).toMatchSnapshot();
35
+ }); // a custom trigger element replaces the built-in TextBoxIcon when children are supplied
36
+
37
+ test('Render with children', () => {
38
+ const {
39
+ asFragment
40
+ } = render( /*#__PURE__*/React.createElement(DateWidget, null, /*#__PURE__*/React.createElement("span", null, "Custom Trigger")));
41
+ expect(asFragment()).toMatchSnapshot();
42
+ });
11
43
  });
@@ -1,12 +1,28 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, cleanup } from '@testing-library/react';
3
3
  import DaysRow from "../DaysRow";
4
+ const dayNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
5
+ const dayNamesShort = ['S', 'M', 'T', 'W', 'T', 'F', 'S'];
4
6
  describe('DaysRow', () => {
5
- test('rendering the defult props', () => {
7
+ afterEach(() => cleanup()); // dayNames/dayNamesShort/holidays are read unconditionally in render, so every case supplies all three
8
+
9
+ test('Render with default props', () => {
6
10
  const {
7
11
  asFragment
8
12
  } = render( /*#__PURE__*/React.createElement(DaysRow, {
9
- dayNames: []
13
+ dayNames: dayNames,
14
+ dayNamesShort: dayNamesShort,
15
+ holidays: []
16
+ }));
17
+ expect(asFragment()).toMatchSnapshot();
18
+ });
19
+ test('Render with holidays', () => {
20
+ const {
21
+ asFragment
22
+ } = render( /*#__PURE__*/React.createElement(DaysRow, {
23
+ dayNames: dayNames,
24
+ dayNamesShort: dayNamesShort,
25
+ holidays: [0, 6]
10
26
  }));
11
27
  expect(asFragment()).toMatchSnapshot();
12
28
  });
@@ -1,11 +1,58 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, cleanup } from '@testing-library/react';
3
3
  import Time from "../Time";
4
+ const hourSuggestions = ['01', '02', '03'];
5
+ const minSuggestions = ['00', '01', '02'];
6
+ const ampmSuggestions = ['AM', 'PM'];
4
7
  describe('Time', () => {
5
- test('rendering the defult props', () => {
8
+ afterEach(() => cleanup()); // the Select children call options.forEach unconditionally, so every case supplies the suggestion arrays
9
+
10
+ test('Render with default props', () => {
6
11
  const {
7
12
  asFragment
8
- } = render( /*#__PURE__*/React.createElement(Time, null));
13
+ } = render( /*#__PURE__*/React.createElement(Time, {
14
+ timeText: "Time",
15
+ hourSuggestions: hourSuggestions,
16
+ minSuggestions: minSuggestions,
17
+ ampmSuggestions: ampmSuggestions,
18
+ hours: "01",
19
+ mins: "00",
20
+ amPm: "AM"
21
+ }));
22
+ expect(asFragment()).toMatchSnapshot();
23
+ }); // the AmPm select renders only when is24Hour is falsy; is24Hour=true is the negative case
24
+
25
+ test('Render with is24Hour=true', () => {
26
+ const {
27
+ asFragment
28
+ } = render( /*#__PURE__*/React.createElement(Time, {
29
+ timeText: "Time",
30
+ hourSuggestions: hourSuggestions,
31
+ minSuggestions: minSuggestions,
32
+ ampmSuggestions: ampmSuggestions,
33
+ hours: "01",
34
+ mins: "00",
35
+ is24Hour: true
36
+ }));
37
+ expect(asFragment()).toMatchSnapshot();
38
+ });
39
+ test('Render with customProps overriding the hour Select dataId', () => {
40
+ const {
41
+ asFragment
42
+ } = render( /*#__PURE__*/React.createElement(Time, {
43
+ timeText: "Time",
44
+ hourSuggestions: hourSuggestions,
45
+ minSuggestions: minSuggestions,
46
+ ampmSuggestions: ampmSuggestions,
47
+ hours: "01",
48
+ mins: "00",
49
+ amPm: "AM",
50
+ customProps: {
51
+ HourSelectProps: {
52
+ dataId: 'customHourField'
53
+ }
54
+ }
55
+ }));
9
56
  expect(asFragment()).toMatchSnapshot();
10
57
  });
11
58
  });
@@ -1,10 +1,67 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, cleanup } from '@testing-library/react';
3
3
  import YearView from "../YearView";
4
+ import { cn } from "@dot-system/css-utility";
5
+ const monthNamesShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // the real Virtualizer measures DOM size (0 in jsdom) and the year range spans 1850-9999;
6
+ // mocked to render only the first few rows so the output stays small and deterministic
7
+
8
+ jest.mock('@zohodesk/virtualizer', () => {
9
+ const React = require('react');
10
+
11
+ return {
12
+ Virtualizer: function MockVirtualizer({
13
+ elementRenderer,
14
+ elementsCount,
15
+ className,
16
+ dataId
17
+ }) {
18
+ const count = Math.min(elementsCount, 3);
19
+ const items = [];
20
+
21
+ for (let index = 0; index < count; index++) {
22
+ items.push( /*#__PURE__*/React.createElement(React.Fragment, {
23
+ key: index
24
+ }, elementRenderer({
25
+ index,
26
+ style: {},
27
+ ref: () => {}
28
+ })));
29
+ }
30
+
31
+ return /*#__PURE__*/React.createElement("div", {
32
+ className: cn(className),
33
+ "data-id": dataId
34
+ }, items);
35
+ }
36
+ };
37
+ });
4
38
  describe('YearView', () => {
5
- test('rendering the defult props', () => {
39
+ afterEach(() => cleanup()); // Year's isActive is derived from viewedYear === year, not a direct prop; viewedYear unset parses to 0, so isActive=false here
40
+
41
+ test('Render with default props', () => {
6
42
  const {
7
43
  asFragment
8
- } = render( /*#__PURE__*/React.createElement(YearView, null)); // expect(asFragment()).toMatchSnapshot();
44
+ } = render( /*#__PURE__*/React.createElement(YearView, null));
45
+ expect(asFragment()).toMatchSnapshot();
46
+ }); // 1850 is the first rendered year (range start); matching it sets the Year row's derived isActive=true
47
+
48
+ test('Render with viewedYear matching the rendered year', () => {
49
+ const {
50
+ asFragment
51
+ } = render( /*#__PURE__*/React.createElement(YearView, {
52
+ viewedYear: "1850"
53
+ }));
54
+ expect(asFragment()).toMatchSnapshot();
55
+ }); // the month grid renders only when isMonthOpen is true for the matching year; monthNamesShort is then required
56
+
57
+ test('Render with viewedYear matching and isMonthOpen=true', () => {
58
+ const {
59
+ asFragment
60
+ } = render( /*#__PURE__*/React.createElement(YearView, {
61
+ viewedYear: "1850",
62
+ isMonthOpen: true,
63
+ monthNamesShort: monthNamesShort
64
+ }));
65
+ expect(asFragment()).toMatchSnapshot();
9
66
  });
10
67
  });