@dxc-technology/halstack-react 0.0.0-fdc49d2 → 0.0.0-feed711

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 (188) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +295 -0
  3. package/accordion/Accordion.js +5 -27
  4. package/accordion/Accordion.stories.tsx +4 -4
  5. package/accordion/types.d.ts +1 -1
  6. package/accordion-group/AccordionGroup.d.ts +1 -1
  7. package/accordion-group/AccordionGroup.js +14 -15
  8. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  9. package/accordion-group/AccordionGroup.test.js +24 -6
  10. package/accordion-group/types.d.ts +5 -1
  11. package/alert/Alert.js +4 -1
  12. package/badge/Badge.d.ts +1 -1
  13. package/badge/Badge.js +5 -3
  14. package/badge/types.d.ts +1 -0
  15. package/bleed/Bleed.js +1 -34
  16. package/bleed/Bleed.stories.tsx +94 -95
  17. package/bleed/types.d.ts +1 -1
  18. package/box/Box.js +22 -32
  19. package/bulleted-list/BulletedList.d.ts +7 -0
  20. package/bulleted-list/BulletedList.js +123 -0
  21. package/bulleted-list/BulletedList.stories.tsx +200 -0
  22. package/bulleted-list/types.d.ts +11 -0
  23. package/{list → bulleted-list}/types.js +0 -0
  24. package/button/Button.js +53 -68
  25. package/button/Button.stories.tsx +9 -0
  26. package/button/types.d.ts +7 -7
  27. package/card/Card.js +24 -27
  28. package/checkbox/Checkbox.d.ts +1 -1
  29. package/checkbox/Checkbox.js +38 -28
  30. package/checkbox/Checkbox.stories.tsx +124 -128
  31. package/checkbox/types.d.ts +3 -3
  32. package/chip/types.d.ts +1 -1
  33. package/common/variables.js +229 -98
  34. package/date-input/DateInput.js +41 -23
  35. package/date-input/DateInput.test.js +9 -22
  36. package/date-input/types.d.ts +12 -9
  37. package/dialog/Dialog.js +46 -50
  38. package/dialog/Dialog.stories.tsx +1 -2
  39. package/dialog/Dialog.test.js +34 -4
  40. package/dialog/types.d.ts +2 -2
  41. package/dropdown/Dropdown.d.ts +1 -1
  42. package/dropdown/Dropdown.js +242 -250
  43. package/dropdown/Dropdown.stories.tsx +126 -63
  44. package/dropdown/Dropdown.test.js +510 -108
  45. package/dropdown/DropdownMenu.d.ts +4 -0
  46. package/dropdown/DropdownMenu.js +80 -0
  47. package/dropdown/DropdownMenuItem.d.ts +4 -0
  48. package/dropdown/DropdownMenuItem.js +92 -0
  49. package/dropdown/types.d.ts +25 -5
  50. package/file-input/FileInput.js +9 -6
  51. package/file-input/FileItem.js +7 -5
  52. package/flex/Flex.d.ts +4 -0
  53. package/flex/Flex.js +57 -0
  54. package/flex/Flex.stories.tsx +103 -0
  55. package/flex/types.d.ts +21 -0
  56. package/{radio → flex}/types.js +0 -0
  57. package/footer/Footer.js +15 -88
  58. package/footer/Icons.js +1 -1
  59. package/footer/types.d.ts +1 -1
  60. package/header/Header.js +95 -114
  61. package/header/Header.stories.tsx +46 -36
  62. package/header/Header.test.js +18 -2
  63. package/header/Icons.js +2 -2
  64. package/header/types.d.ts +2 -2
  65. package/inset/Inset.js +1 -34
  66. package/inset/Inset.stories.tsx +36 -36
  67. package/inset/types.d.ts +25 -1
  68. package/layout/ApplicationLayout.d.ts +16 -6
  69. package/layout/ApplicationLayout.js +71 -131
  70. package/layout/ApplicationLayout.stories.tsx +83 -93
  71. package/layout/Icons.d.ts +5 -0
  72. package/layout/Icons.js +13 -2
  73. package/layout/SidenavContext.d.ts +5 -0
  74. package/layout/SidenavContext.js +19 -0
  75. package/layout/types.d.ts +18 -33
  76. package/link/Link.d.ts +3 -2
  77. package/link/Link.js +57 -74
  78. package/link/Link.stories.tsx +95 -53
  79. package/link/Link.test.js +7 -15
  80. package/link/types.d.ts +7 -23
  81. package/main.d.ts +7 -10
  82. package/main.js +43 -61
  83. package/number-input/NumberInput.test.js +2 -4
  84. package/number-input/types.d.ts +13 -10
  85. package/package.json +14 -12
  86. package/paginator/Paginator.js +17 -38
  87. package/paginator/Paginator.test.js +42 -0
  88. package/paragraph/Paragraph.d.ts +6 -0
  89. package/paragraph/Paragraph.js +38 -0
  90. package/paragraph/Paragraph.stories.tsx +44 -0
  91. package/password-input/PasswordInput.js +7 -4
  92. package/password-input/PasswordInput.test.js +3 -6
  93. package/password-input/types.d.ts +14 -11
  94. package/progress-bar/ProgressBar.d.ts +2 -2
  95. package/progress-bar/ProgressBar.js +57 -51
  96. package/progress-bar/ProgressBar.stories.jsx +13 -11
  97. package/progress-bar/ProgressBar.test.js +67 -22
  98. package/progress-bar/types.d.ts +3 -4
  99. package/quick-nav/QuickNav.js +83 -25
  100. package/quick-nav/QuickNav.stories.tsx +43 -16
  101. package/quick-nav/types.d.ts +4 -8
  102. package/radio-group/Radio.js +1 -1
  103. package/radio-group/RadioGroup.js +21 -20
  104. package/resultsetTable/ResultsetTable.test.js +42 -0
  105. package/select/Listbox.d.ts +4 -0
  106. package/select/Listbox.js +199 -0
  107. package/select/Option.js +1 -1
  108. package/select/Select.js +102 -199
  109. package/select/Select.stories.tsx +145 -100
  110. package/select/Select.test.js +440 -281
  111. package/select/types.d.ts +31 -12
  112. package/sidenav/Sidenav.d.ts +6 -5
  113. package/sidenav/Sidenav.js +184 -52
  114. package/sidenav/Sidenav.stories.tsx +154 -156
  115. package/sidenav/Sidenav.test.js +25 -37
  116. package/sidenav/types.d.ts +50 -27
  117. package/slider/Slider.d.ts +1 -1
  118. package/slider/Slider.js +5 -4
  119. package/slider/Slider.stories.tsx +8 -8
  120. package/slider/Slider.test.js +68 -10
  121. package/slider/types.d.ts +4 -0
  122. package/spinner/Spinner.js +1 -1
  123. package/switch/Switch.d.ts +2 -2
  124. package/switch/Switch.js +113 -54
  125. package/switch/Switch.stories.tsx +16 -38
  126. package/switch/Switch.test.js +122 -8
  127. package/switch/types.d.ts +5 -6
  128. package/tabs/Tabs.d.ts +1 -1
  129. package/tabs/Tabs.js +9 -11
  130. package/tabs/Tabs.stories.tsx +0 -8
  131. package/tabs/Tabs.test.js +26 -9
  132. package/tabs/types.d.ts +5 -1
  133. package/tabs-nav/NavTabs.d.ts +8 -0
  134. package/tabs-nav/NavTabs.js +125 -0
  135. package/tabs-nav/NavTabs.stories.tsx +170 -0
  136. package/tabs-nav/NavTabs.test.js +82 -0
  137. package/tabs-nav/Tab.d.ts +4 -0
  138. package/tabs-nav/Tab.js +130 -0
  139. package/tabs-nav/types.d.ts +53 -0
  140. package/{row → tabs-nav}/types.js +0 -0
  141. package/tag/Tag.js +5 -8
  142. package/tag/types.d.ts +1 -1
  143. package/text-input/Suggestion.d.ts +4 -0
  144. package/text-input/Suggestion.js +55 -0
  145. package/text-input/TextInput.js +60 -97
  146. package/text-input/TextInput.stories.tsx +1 -2
  147. package/text-input/TextInput.test.js +22 -35
  148. package/text-input/types.d.ts +27 -12
  149. package/textarea/Textarea.js +10 -19
  150. package/textarea/types.d.ts +10 -7
  151. package/toggle-group/ToggleGroup.d.ts +1 -1
  152. package/toggle-group/ToggleGroup.js +5 -4
  153. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  154. package/toggle-group/ToggleGroup.test.js +35 -4
  155. package/toggle-group/types.d.ts +9 -1
  156. package/typography/Typography.d.ts +4 -0
  157. package/typography/Typography.js +131 -0
  158. package/typography/Typography.stories.tsx +198 -0
  159. package/typography/types.d.ts +18 -0
  160. package/{stack → typography}/types.js +0 -0
  161. package/useTheme.js +2 -2
  162. package/useTranslatedLabels.d.ts +2 -0
  163. package/useTranslatedLabels.js +20 -0
  164. package/wizard/Wizard.js +43 -44
  165. package/wizard/Wizard.stories.tsx +20 -1
  166. package/wizard/types.d.ts +5 -4
  167. package/ThemeContext.d.ts +0 -10
  168. package/ThemeContext.js +0 -243
  169. package/list/List.d.ts +0 -4
  170. package/list/List.js +0 -47
  171. package/list/List.stories.tsx +0 -95
  172. package/list/types.d.ts +0 -7
  173. package/radio/Radio.d.ts +0 -4
  174. package/radio/Radio.js +0 -174
  175. package/radio/Radio.stories.tsx +0 -192
  176. package/radio/Radio.test.js +0 -71
  177. package/radio/types.d.ts +0 -54
  178. package/row/Row.d.ts +0 -3
  179. package/row/Row.js +0 -127
  180. package/row/Row.stories.tsx +0 -237
  181. package/row/types.d.ts +0 -28
  182. package/stack/Stack.d.ts +0 -3
  183. package/stack/Stack.js +0 -97
  184. package/stack/Stack.stories.tsx +0 -164
  185. package/stack/types.d.ts +0 -24
  186. package/text/Text.d.ts +0 -7
  187. package/text/Text.js +0 -30
  188. package/text/Text.stories.tsx +0 -19
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports["default"] = void 0;
11
+
12
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
+
20
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
21
+
22
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
23
+
24
+ var _Option = _interopRequireDefault(require("./Option"));
25
+
26
+ var _Icons = _interopRequireDefault(require("./Icons"));
27
+
28
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
29
+
30
+ 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); }
31
+
32
+ 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; }
33
+
34
+ var groupsHaveOptions = function groupsHaveOptions(options) {
35
+ return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
36
+ var _groupOption$options;
37
+
38
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
39
+ }) : true;
40
+ };
41
+
42
+ var Listbox = function Listbox(_ref) {
43
+ var id = _ref.id,
44
+ currentValue = _ref.currentValue,
45
+ options = _ref.options,
46
+ visualFocusIndex = _ref.visualFocusIndex,
47
+ lastOptionIndex = _ref.lastOptionIndex,
48
+ multiple = _ref.multiple,
49
+ optional = _ref.optional,
50
+ optionalItem = _ref.optionalItem,
51
+ searchable = _ref.searchable,
52
+ handleOptionOnClick = _ref.handleOptionOnClick,
53
+ getSelectWidth = _ref.getSelectWidth;
54
+ var colorsTheme = (0, _useTheme["default"])();
55
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
56
+ 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
64
+
65
+ var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
66
+ if (option.options) {
67
+ var groupId = "group-".concat(mapIndex);
68
+ return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", {
69
+ key: "group-".concat(mapIndex)
70
+ }, /*#__PURE__*/_react["default"].createElement(GroupList, {
71
+ role: "group",
72
+ "aria-labelledby": groupId
73
+ }, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
74
+ role: "presentation",
75
+ id: groupId
76
+ }, option.label), option.options.map(function (singleOption) {
77
+ globalIndex++;
78
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
79
+ key: "option-".concat(singleOption.value),
80
+ id: "option-".concat(globalIndex),
81
+ option: singleOption,
82
+ onClick: handleOptionOnClick,
83
+ multiple: multiple,
84
+ visualFocused: visualFocusIndex === globalIndex,
85
+ isGroupedOption: true,
86
+ isLastOption: lastOptionIndex === globalIndex,
87
+ isSelected: multiple ? currentValue.includes(singleOption.value) : currentValue === singleOption.value
88
+ });
89
+ })));
90
+ } else {
91
+ globalIndex++;
92
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
93
+ key: "option-".concat(option.value),
94
+ id: "option-".concat(globalIndex),
95
+ option: option,
96
+ onClick: handleOptionOnClick,
97
+ multiple: multiple,
98
+ visualFocused: visualFocusIndex === globalIndex,
99
+ isLastOption: lastOptionIndex === globalIndex,
100
+ isSelected: multiple ? currentValue.includes(option.value) : currentValue === option.value
101
+ });
102
+ }
103
+ };
104
+
105
+ (0, _react.useLayoutEffect)(function () {
106
+ if (currentValue && !multiple) {
107
+ var _listEl$scrollTo;
108
+
109
+ var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
110
+ var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
111
+ listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
112
+ top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
113
+ });
114
+ }
115
+ }, [currentValue, multiple]);
116
+ (0, _react.useLayoutEffect)(function () {
117
+ var _listboxRef$current, _visualFocusedOptionE;
118
+
119
+ var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
120
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
121
+ block: "nearest",
122
+ inline: "start"
123
+ });
124
+ }, [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, {
144
+ id: id,
145
+ onClick: function onClick(event) {
146
+ event.stopPropagation();
147
+ },
148
+ onMouseDown: function onMouseDown(event) {
149
+ event.preventDefault();
150
+ },
151
+ ref: listboxRef,
152
+ role: "listbox",
153
+ "aria-multiselectable": multiple,
154
+ "aria-orientation": "vertical",
155
+ style: styles
156
+ }, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff), translatedLabels.select.noMatchesErrorMessage) : optional && !multiple && /*#__PURE__*/_react["default"].createElement(_Option["default"], {
157
+ key: "option-".concat(optionalItem.value),
158
+ id: "option-".concat(0),
159
+ option: optionalItem,
160
+ onClick: handleOptionOnClick,
161
+ multiple: multiple,
162
+ visualFocused: visualFocusIndex === 0,
163
+ isGroupedOption: false,
164
+ isLastOption: lastOptionIndex === 0,
165
+ isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
166
+ }), options.map(mapOptionFunc)));
167
+ };
168
+
169
+ 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) {
170
+ return props.theme.listDialogBackgroundColor;
171
+ }, function (props) {
172
+ return props.theme.listDialogBorderColor;
173
+ }, function (props) {
174
+ return props.theme.listOptionFontColor;
175
+ }, function (props) {
176
+ return props.theme.fontFamily;
177
+ }, function (props) {
178
+ return props.theme.listOptionFontSize;
179
+ }, function (props) {
180
+ return props.theme.listOptionFontStyle;
181
+ }, function (props) {
182
+ return props.theme.listOptionFontWeight;
183
+ });
184
+
185
+ var OptionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
186
+ return props.theme.systemMessageFontColor;
187
+ });
188
+
189
+ var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
190
+
191
+ var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
192
+
193
+ var GroupLabel = _styledComponents["default"].li(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
194
+ return props.theme.listGroupLabelFontWeight;
195
+ });
196
+
197
+ var _default = /*#__PURE__*/_react["default"].memo(Listbox);
198
+
199
+ exports["default"] = _default;
package/select/Option.js CHANGED
@@ -39,7 +39,7 @@ var Option = function Option(_ref) {
39
39
  isSelected = _ref.isSelected;
40
40
  var colorsTheme = (0, _useTheme["default"])();
41
41
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
42
- theme: colorsTheme.radioGroup
42
+ theme: colorsTheme.select
43
43
  }, /*#__PURE__*/_react["default"].createElement(OptionItem, {
44
44
  id: id,
45
45
  onClick: function onClick() {