@dxc-technology/halstack-react 0.0.0-c9b5c13 → 0.0.0-c9c1158
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.
- package/BackgroundColorContext.d.ts +3 -3
- package/BackgroundColorContext.js +6 -18
- package/HalstackContext.d.ts +1347 -6
- package/HalstackContext.js +125 -110
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +116 -157
- package/accordion/Accordion.stories.tsx +102 -126
- package/accordion/Accordion.test.js +25 -41
- package/accordion/types.d.ts +5 -16
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +31 -98
- package/accordion-group/AccordionGroup.stories.tsx +94 -67
- package/accordion-group/AccordionGroup.test.js +52 -105
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +11 -16
- package/alert/Alert.js +19 -55
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +29 -46
- package/alert/types.d.ts +5 -5
- package/badge/Badge.js +4 -17
- package/badge/types.d.ts +1 -1
- package/bleed/Bleed.js +14 -55
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +2 -2
- package/box/Box.d.ts +1 -1
- package/box/Box.js +18 -56
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +2 -7
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +99 -0
- package/bulleted-list/BulletedList.stories.tsx +116 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +61 -114
- package/button/Button.stories.tsx +160 -90
- package/button/Button.test.js +18 -17
- package/button/types.d.ts +12 -8
- package/card/Card.d.ts +1 -1
- package/card/Card.js +48 -89
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +11 -22
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +141 -178
- package/checkbox/Checkbox.stories.tsx +128 -94
- package/checkbox/Checkbox.test.js +160 -39
- package/checkbox/types.d.ts +11 -3
- package/chip/Chip.js +39 -79
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +16 -31
- package/chip/types.d.ts +4 -4
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +237 -0
- package/common/coreTokens.js +184 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1499 -0
- package/common/variables.js +1027 -1126
- package/container/Container.d.ts +4 -0
- package/container/Container.js +198 -0
- package/container/Container.stories.tsx +229 -0
- package/container/types.d.ts +74 -0
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +150 -299
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +700 -371
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +72 -15
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +75 -106
- package/dialog/Dialog.stories.tsx +154 -171
- package/dialog/Dialog.test.js +287 -20
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -300
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +575 -165
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +67 -0
- package/dropdown/types.d.ts +32 -14
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +241 -355
- package/file-input/FileInput.stories.tsx +123 -12
- package/file-input/FileInput.test.js +369 -367
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +45 -96
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +51 -101
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +33 -57
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +3 -8
- package/footer/types.d.ts +21 -22
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/header/Header.d.ts +4 -3
- package/header/Header.js +90 -162
- package/header/Header.stories.tsx +118 -39
- package/header/Header.test.js +13 -26
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -20
- package/heading/Heading.js +10 -32
- package/heading/Heading.test.js +71 -88
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/inset/Inset.js +14 -55
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +2 -2
- package/layout/ApplicationLayout.d.ts +15 -6
- package/layout/ApplicationLayout.js +51 -116
- package/layout/ApplicationLayout.stories.tsx +81 -45
- package/layout/Icons.d.ts +8 -5
- package/layout/Icons.js +51 -59
- package/layout/SidenavContext.d.ts +1 -1
- package/layout/SidenavContext.js +3 -9
- package/layout/types.d.ts +21 -32
- package/link/Link.js +25 -46
- package/link/Link.stories.tsx +73 -6
- package/link/Link.test.js +24 -44
- package/link/types.d.ts +14 -14
- package/main.d.ts +10 -10
- package/main.js +45 -95
- package/{tabs-nav → nav-tabs}/NavTabs.d.ts +2 -2
- package/{tabs-nav → nav-tabs}/NavTabs.js +22 -57
- package/{tabs-nav → nav-tabs}/NavTabs.stories.tsx +111 -7
- package/{tabs-nav → nav-tabs}/NavTabs.test.js +37 -44
- package/nav-tabs/Tab.js +117 -0
- package/{tabs-nav → nav-tabs}/types.d.ts +14 -15
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +26 -35
- package/number-input/NumberInput.stories.tsx +42 -26
- package/number-input/NumberInput.test.js +701 -377
- package/number-input/types.d.ts +11 -5
- package/package.json +43 -45
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +22 -55
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +280 -211
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +27 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -126
- package/password-input/PasswordInput.stories.tsx +1 -32
- package/password-input/PasswordInput.test.js +160 -142
- package/password-input/types.d.ts +8 -7
- package/progress-bar/ProgressBar.js +67 -87
- package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +39 -4
- package/progress-bar/ProgressBar.test.js +72 -44
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.js +29 -47
- package/quick-nav/QuickNav.stories.tsx +146 -27
- package/quick-nav/types.d.ts +10 -10
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +59 -76
- package/radio-group/RadioGroup.js +67 -114
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +518 -457
- package/radio-group/types.d.ts +10 -10
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +50 -25
- package/{resultsetTable → resultset-table}/ResultsetTable.test.js +117 -118
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +7 -7
- package/select/Icons.js +1 -5
- package/select/Listbox.d.ts +1 -1
- package/select/Listbox.js +42 -51
- package/select/Option.js +20 -50
- package/select/Select.js +125 -188
- package/select/Select.stories.tsx +516 -139
- package/select/Select.test.js +1965 -1751
- package/select/types.d.ts +16 -20
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +129 -77
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +26 -45
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +144 -168
- package/slider/Slider.test.js +185 -81
- package/slider/types.d.ts +7 -3
- package/spinner/Spinner.js +27 -63
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -27
- package/spinner/Spinner.test.js +26 -35
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +148 -124
- package/switch/Switch.stories.tsx +37 -60
- package/switch/Switch.test.js +138 -56
- package/switch/types.d.ts +7 -3
- package/table/Table.js +7 -26
- package/table/{Table.stories.jsx → Table.stories.tsx} +80 -1
- package/table/Table.test.js +3 -8
- package/table/types.d.ts +8 -8
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +113 -0
- package/tabs/Tabs.js +315 -141
- package/tabs/Tabs.stories.tsx +119 -5
- package/tabs/Tabs.test.js +223 -69
- package/tabs/types.d.ts +28 -18
- package/tag/Tag.js +29 -61
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +20 -31
- package/tag/types.d.ts +7 -7
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.js +40 -28
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +89 -0
- package/text-input/TextInput.js +280 -458
- package/text-input/TextInput.stories.tsx +266 -275
- package/text-input/TextInput.test.js +1402 -1375
- package/text-input/types.d.ts +43 -16
- package/textarea/Textarea.js +63 -100
- package/textarea/Textarea.stories.tsx +175 -0
- package/textarea/Textarea.test.js +152 -183
- package/textarea/types.d.ts +9 -5
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +95 -106
- package/toggle-group/ToggleGroup.stories.tsx +49 -4
- package/toggle-group/ToggleGroup.test.js +69 -88
- package/toggle-group/types.d.ts +26 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1251 -1
- package/useTheme.js +2 -9
- package/useTranslatedLabels.d.ts +84 -1
- package/useTranslatedLabels.js +1 -7
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +114 -0
- package/wizard/Wizard.js +24 -66
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +54 -81
- package/wizard/types.d.ts +7 -7
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/resultsetTable/ResultsetTable.js +0 -254
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/tabs-nav/Tab.js +0 -132
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -157
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{resultsetTable → container}/types.js +0 -0
- /package/{row → flex}/types.js +0 -0
- /package/{stack → grid}/types.js +0 -0
- /package/{tabs-nav → image}/types.js +0 -0
- /package/{tabs-nav → nav-tabs}/Tab.d.ts +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/tag/Tag.js
CHANGED
|
@@ -1,77 +1,56 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
11
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
13
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
|
-
var _variables = require("../common/variables.js");
|
|
23
|
-
|
|
14
|
+
var _variables = require("../common/variables");
|
|
24
15
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
|
-
|
|
26
|
-
var _utils = require("../common/utils.js");
|
|
27
|
-
|
|
16
|
+
var _utils = require("../common/utils");
|
|
28
17
|
var _Box = _interopRequireDefault(require("../box/Box"));
|
|
29
|
-
|
|
30
18
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7;
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
|
|
35
|
-
|
|
19
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
20
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
36
21
|
var DxcTag = function DxcTag(_ref) {
|
|
37
22
|
var icon = _ref.icon,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
23
|
+
_ref$label = _ref.label,
|
|
24
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
25
|
+
linkHref = _ref.linkHref,
|
|
26
|
+
onClick = _ref.onClick,
|
|
27
|
+
_ref$iconBgColor = _ref.iconBgColor,
|
|
28
|
+
iconBgColor = _ref$iconBgColor === void 0 ? "#5f249f" : _ref$iconBgColor,
|
|
29
|
+
_ref$labelPosition = _ref.labelPosition,
|
|
30
|
+
labelPosition = _ref$labelPosition === void 0 ? "after" : _ref$labelPosition,
|
|
31
|
+
_ref$newWindow = _ref.newWindow,
|
|
32
|
+
newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
|
|
33
|
+
margin = _ref.margin,
|
|
34
|
+
_ref$size = _ref.size,
|
|
35
|
+
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
36
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
37
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
53
38
|
var colorsTheme = (0, _useTheme["default"])();
|
|
54
|
-
|
|
55
39
|
var _useState = (0, _react.useState)(false),
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
40
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
41
|
+
isHovered = _useState2[0],
|
|
42
|
+
changeIsHovered = _useState2[1];
|
|
60
43
|
var clickHandler = function clickHandler() {
|
|
61
44
|
onClick && onClick();
|
|
62
45
|
};
|
|
63
|
-
|
|
64
46
|
var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
|
|
65
47
|
size: size,
|
|
66
48
|
shadowDepth: isHovered && (onClick || linkHref) && 2 || 1
|
|
67
|
-
}, /*#__PURE__*/_react["default"].createElement(TagContent, {
|
|
68
|
-
labelPosition: labelPosition
|
|
69
|
-
}, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
49
|
+
}, /*#__PURE__*/_react["default"].createElement(TagContent, null, labelPosition === "before" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
|
|
70
50
|
iconBgColor: iconBgColor
|
|
71
51
|
}, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(TagIcon, {
|
|
72
52
|
src: icon
|
|
73
53
|
}) : icon), labelPosition === "after" && size !== "small" && label && /*#__PURE__*/_react["default"].createElement(TagLabel, null, label)));
|
|
74
|
-
|
|
75
54
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
76
55
|
theme: colorsTheme.tag
|
|
77
56
|
}, /*#__PURE__*/_react["default"].createElement(StyledDxcTag, {
|
|
@@ -93,19 +72,16 @@ var DxcTag = function DxcTag(_ref) {
|
|
|
93
72
|
target: newWindow ? "_blank" : "_self"
|
|
94
73
|
}, tagContent) : tagContent));
|
|
95
74
|
};
|
|
96
|
-
|
|
97
75
|
var sizes = {
|
|
98
76
|
small: "42px",
|
|
99
77
|
medium: "240px",
|
|
100
78
|
large: "480px",
|
|
101
79
|
fillParent: "100%",
|
|
102
|
-
fitContent: "
|
|
80
|
+
fitContent: "fit-content"
|
|
103
81
|
};
|
|
104
|
-
|
|
105
82
|
var calculateWidth = function calculateWidth(margin, size) {
|
|
106
83
|
return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
|
|
107
84
|
};
|
|
108
|
-
|
|
109
85
|
var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n cursor: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n height: ", ";\n"])), function (_ref2) {
|
|
110
86
|
var hasAction = _ref2.hasAction;
|
|
111
87
|
return hasAction && "pointer" || "unset";
|
|
@@ -114,34 +90,30 @@ var StyledDxcTag = _styledComponents["default"].div(_templateObject || (_templat
|
|
|
114
90
|
return margin && (0, _typeof2["default"])(margin) !== "object" ? _variables.spaces[margin] : "0px";
|
|
115
91
|
}, function (_ref4) {
|
|
116
92
|
var margin = _ref4.margin;
|
|
117
|
-
return margin && margin.top ? _variables.spaces[margin.top] : "";
|
|
93
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.top ? _variables.spaces[margin.top] : "";
|
|
118
94
|
}, function (_ref5) {
|
|
119
95
|
var margin = _ref5.margin;
|
|
120
|
-
return margin && margin.right ? _variables.spaces[margin.right] : "";
|
|
96
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.right ? _variables.spaces[margin.right] : "";
|
|
121
97
|
}, function (_ref6) {
|
|
122
98
|
var margin = _ref6.margin;
|
|
123
|
-
return margin && margin.bottom ? _variables.spaces[margin.bottom] : "";
|
|
99
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.bottom ? _variables.spaces[margin.bottom] : "";
|
|
124
100
|
}, function (_ref7) {
|
|
125
101
|
var margin = _ref7.margin;
|
|
126
|
-
return margin && margin.left ? _variables.spaces[margin.left] : "";
|
|
102
|
+
return margin && (0, _typeof2["default"])(margin) === "object" && margin.left ? _variables.spaces[margin.left] : "";
|
|
127
103
|
}, function (props) {
|
|
128
104
|
return calculateWidth(props.margin, props.size);
|
|
129
105
|
}, function (props) {
|
|
130
106
|
return props.theme.height;
|
|
131
107
|
});
|
|
132
|
-
|
|
133
108
|
var TagContent = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: 100%;\n height: ", ";\n"])), function (props) {
|
|
134
109
|
return props.theme.height;
|
|
135
110
|
});
|
|
136
|
-
|
|
137
111
|
var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: none;\n border-radius: 4px;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n outline-offset: 0px;\n }\n"])), function (props) {
|
|
138
112
|
return props.theme.focusColor;
|
|
139
113
|
});
|
|
140
|
-
|
|
141
114
|
var StyledButton = _styledComponents["default"].button(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border-radius: 4px;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n width: 100%;\n :focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
|
|
142
115
|
return props.theme.focusColor;
|
|
143
116
|
});
|
|
144
|
-
|
|
145
117
|
var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n background: ", ";\n width: ", ";\n height: 100%;\n justify-content: center;\n align-items: center;\n color: ", ";\n min-width: ", ";\n overflow: hidden;\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (_ref8) {
|
|
146
118
|
var iconBgColor = _ref8.iconBgColor;
|
|
147
119
|
return iconBgColor;
|
|
@@ -156,9 +128,7 @@ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templ
|
|
|
156
128
|
}, function (props) {
|
|
157
129
|
return props.theme.iconHeight;
|
|
158
130
|
});
|
|
159
|
-
|
|
160
131
|
var TagIcon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
161
|
-
|
|
162
132
|
var TagLabel = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n flex-grow: 1;\n text-align: center;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
|
|
163
133
|
return props.theme.fontFamily;
|
|
164
134
|
}, function (props) {
|
|
@@ -178,6 +148,4 @@ var TagLabel = _styledComponents["default"].div(_templateObject7 || (_templateOb
|
|
|
178
148
|
}, function (props) {
|
|
179
149
|
return props.theme.labelPaddingRight;
|
|
180
150
|
});
|
|
181
|
-
|
|
182
|
-
var _default = DxcTag;
|
|
183
|
-
exports["default"] = _default;
|
|
151
|
+
var _default = exports["default"] = DxcTag;
|
package/tag/Tag.stories.tsx
CHANGED
|
@@ -3,6 +3,7 @@ import { userEvent, within } from "@storybook/testing-library";
|
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
5
|
import DxcTag from "./Tag";
|
|
6
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
6
7
|
|
|
7
8
|
export default {
|
|
8
9
|
title: "Tag",
|
|
@@ -23,6 +24,13 @@ const largeIcon = (
|
|
|
23
24
|
</svg>
|
|
24
25
|
);
|
|
25
26
|
|
|
27
|
+
const opinionatedTheme = {
|
|
28
|
+
tag: {
|
|
29
|
+
fontColor: "#000000",
|
|
30
|
+
iconColor: "#ffffff",
|
|
31
|
+
},
|
|
32
|
+
};
|
|
33
|
+
|
|
26
34
|
export const Chromatic = () => (
|
|
27
35
|
<>
|
|
28
36
|
<ExampleContainer>
|
|
@@ -124,7 +132,12 @@ export const Chromatic = () => (
|
|
|
124
132
|
<Title title="FitContent size" theme="light" level={4} />
|
|
125
133
|
<DxcTag label="FitContent" size="fitContent" icon={icon} />
|
|
126
134
|
</ExampleContainer>
|
|
127
|
-
<
|
|
135
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
136
|
+
<ExampleContainer>
|
|
137
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
138
|
+
<DxcTag label="Tag" icon={icon} />
|
|
139
|
+
</HalstackProvider>
|
|
140
|
+
</ExampleContainer>
|
|
128
141
|
</>
|
|
129
142
|
);
|
|
130
143
|
|
package/tag/Tag.test.js
CHANGED
|
@@ -1,60 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _react = _interopRequireDefault(require("react"));
|
|
6
|
-
|
|
7
5
|
var _react2 = require("@testing-library/react");
|
|
8
|
-
|
|
9
|
-
var _Tag = _interopRequireDefault(require("./Tag"));
|
|
10
|
-
|
|
6
|
+
var _Tag = _interopRequireDefault(require("./Tag.tsx"));
|
|
11
7
|
describe("Tag component tests", function () {
|
|
12
8
|
test("Tag renders with correct label", function () {
|
|
13
9
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
10
|
+
label: "tag-test"
|
|
11
|
+
})),
|
|
12
|
+
getByText = _render.getByText;
|
|
18
13
|
expect(getByText("tag-test")).toBeTruthy();
|
|
19
14
|
});
|
|
20
15
|
test("Tag renders with correct label before", function () {
|
|
21
16
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
label: "tag-test",
|
|
18
|
+
labelPosition: "before"
|
|
19
|
+
})),
|
|
20
|
+
getByText = _render2.getByText;
|
|
27
21
|
expect(getByText("tag-test")).toBeTruthy();
|
|
28
22
|
});
|
|
29
23
|
test("Tag renders with correct icon", function () {
|
|
30
24
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
25
|
+
label: "tag-test",
|
|
26
|
+
icon: "/test-icon.jpg"
|
|
27
|
+
})),
|
|
28
|
+
getByRole = _render3.getByRole;
|
|
36
29
|
expect(getByRole("img").getAttribute("src")).toBe("/test-icon.jpg");
|
|
37
30
|
});
|
|
38
31
|
test("Tag renders with link href", function () {
|
|
39
32
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
33
|
+
label: "tag-test",
|
|
34
|
+
linkHref: "/test/page"
|
|
35
|
+
})),
|
|
36
|
+
getByRole = _render4.getByRole;
|
|
45
37
|
expect(getByRole("link").getAttribute("href")).toBe("/test/page");
|
|
46
38
|
});
|
|
47
39
|
test("Call correct function on click", function () {
|
|
48
40
|
var onClick = jest.fn();
|
|
49
|
-
|
|
50
41
|
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Tag["default"], {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
42
|
+
label: "tag-test",
|
|
43
|
+
onClick: onClick
|
|
44
|
+
})),
|
|
45
|
+
getByText = _render5.getByText;
|
|
56
46
|
_react2.fireEvent.click(getByText("tag-test"));
|
|
57
|
-
|
|
58
47
|
expect(onClick).toHaveBeenCalled();
|
|
59
48
|
});
|
|
60
49
|
});
|
package/tag/types.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Margin = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type TagCommonProps = {
|
|
11
11
|
/**
|
|
12
12
|
* If defined, the tag will be displayed as an anchor, using this prop as "href".
|
|
13
13
|
* Component will show some visual feedback on hover.
|
|
@@ -45,7 +45,7 @@ declare type TagCommonProps = {
|
|
|
45
45
|
*/
|
|
46
46
|
tabIndex?: number;
|
|
47
47
|
};
|
|
48
|
-
|
|
48
|
+
type TagLabelProps = TagCommonProps & {
|
|
49
49
|
/**
|
|
50
50
|
* Element or path used as the icon that will be placed next to the label.
|
|
51
51
|
*/
|
|
@@ -55,7 +55,7 @@ declare type TagLabelProps = TagCommonProps & {
|
|
|
55
55
|
*/
|
|
56
56
|
label: string;
|
|
57
57
|
};
|
|
58
|
-
|
|
58
|
+
type TagIconProps = TagCommonProps & {
|
|
59
59
|
/**
|
|
60
60
|
* Element or path used as the icon that will be placed next to the label.
|
|
61
61
|
*/
|
|
@@ -65,5 +65,5 @@ declare type TagIconProps = TagCommonProps & {
|
|
|
65
65
|
*/
|
|
66
66
|
label?: string;
|
|
67
67
|
};
|
|
68
|
-
|
|
68
|
+
type Props = TagLabelProps | TagIconProps;
|
|
69
69
|
export default Props;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports["default"] = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var icons = {
|
|
10
|
+
error: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
11
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
12
|
+
height: "24px",
|
|
13
|
+
viewBox: "0 0 24 24",
|
|
14
|
+
width: "24px",
|
|
15
|
+
fill: "currentColor"
|
|
16
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
17
|
+
d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
|
|
18
|
+
})),
|
|
19
|
+
clear: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
20
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
21
|
+
width: "24",
|
|
22
|
+
height: "24",
|
|
23
|
+
viewBox: "0 0 24 24",
|
|
24
|
+
fill: "currentColor"
|
|
25
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
26
|
+
d: "M0 0h24v24H0V0z",
|
|
27
|
+
fill: "none"
|
|
28
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
29
|
+
d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
|
|
30
|
+
})),
|
|
31
|
+
increment: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
32
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
33
|
+
height: "24px",
|
|
34
|
+
viewBox: "0 0 24 24",
|
|
35
|
+
width: "24px",
|
|
36
|
+
fill: "currentColor"
|
|
37
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
38
|
+
d: "M0 0h24v24H0z",
|
|
39
|
+
fill: "none"
|
|
40
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
41
|
+
d: "M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"
|
|
42
|
+
})),
|
|
43
|
+
decrement: /*#__PURE__*/_react["default"].createElement("svg", {
|
|
44
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
45
|
+
height: "24px",
|
|
46
|
+
viewBox: "0 0 24 24",
|
|
47
|
+
width: "24px",
|
|
48
|
+
fill: "currentColor"
|
|
49
|
+
}, /*#__PURE__*/_react["default"].createElement("path", {
|
|
50
|
+
d: "M0 0h24v24H0z",
|
|
51
|
+
fill: "none"
|
|
52
|
+
}), /*#__PURE__*/_react["default"].createElement("path", {
|
|
53
|
+
d: "M19 13H5v-2h14v2z"
|
|
54
|
+
}))
|
|
55
|
+
};
|
|
56
|
+
var _default = exports["default"] = icons;
|
package/text-input/Suggestion.js
CHANGED
|
@@ -1,55 +1,67 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports["default"] = void 0;
|
|
9
|
-
|
|
10
9
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
|
|
12
|
-
var _react = _interopRequireDefault(require("react"));
|
|
13
|
-
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
14
11
|
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
15
|
-
|
|
16
12
|
var _templateObject, _templateObject2;
|
|
17
|
-
|
|
13
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
14
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
15
|
+
var transformSpecialChars = function transformSpecialChars(str) {
|
|
16
|
+
var specialCharsRegex = /[\\*()\[\]{}+?/]/;
|
|
17
|
+
var value = str;
|
|
18
|
+
if (specialCharsRegex.test(value)) {
|
|
19
|
+
var regexAsString = specialCharsRegex.toString().split("");
|
|
20
|
+
var uniqueSpecialChars = regexAsString.filter(function (item, index) {
|
|
21
|
+
return regexAsString.indexOf(item) === index;
|
|
22
|
+
});
|
|
23
|
+
uniqueSpecialChars.forEach(function (specialChar) {
|
|
24
|
+
if (str.includes(specialChar)) value = value.replace(specialChar, "\\" + specialChar);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
return value;
|
|
28
|
+
};
|
|
18
29
|
var Suggestion = function Suggestion(_ref) {
|
|
19
30
|
var id = _ref.id,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
31
|
+
value = _ref.value,
|
|
32
|
+
_onClick = _ref.onClick,
|
|
33
|
+
suggestion = _ref.suggestion,
|
|
34
|
+
isLast = _ref.isLast,
|
|
35
|
+
visuallyFocused = _ref.visuallyFocused,
|
|
36
|
+
highlighted = _ref.highlighted;
|
|
37
|
+
var matchedSuggestion = (0, _react.useMemo)(function () {
|
|
38
|
+
var regEx = new RegExp(transformSpecialChars(value), "i");
|
|
39
|
+
return {
|
|
40
|
+
matchedWords: suggestion.match(regEx),
|
|
41
|
+
noMatchedWords: suggestion.replace(regEx, "")
|
|
42
|
+
};
|
|
43
|
+
}, [value, suggestion]);
|
|
29
44
|
return /*#__PURE__*/_react["default"].createElement(SuggestionContainer, {
|
|
30
45
|
id: id,
|
|
31
|
-
onClick: onClick
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
_onClick(suggestion);
|
|
48
|
+
},
|
|
32
49
|
visuallyFocused: visuallyFocused,
|
|
33
50
|
role: "option",
|
|
34
|
-
"aria-selected": visuallyFocused ?
|
|
51
|
+
"aria-selected": visuallyFocused ? true : undefined
|
|
35
52
|
}, /*#__PURE__*/_react["default"].createElement(StyledSuggestion, {
|
|
36
|
-
|
|
53
|
+
isLast: isLast,
|
|
37
54
|
visuallyFocused: visuallyFocused
|
|
38
|
-
}, highlighted ?
|
|
55
|
+
}, highlighted ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, /*#__PURE__*/_react["default"].createElement("strong", null, matchedSuggestion.matchedWords), matchedSuggestion.noMatchedWords) : suggestion));
|
|
39
56
|
};
|
|
40
|
-
|
|
41
|
-
var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n\n box-shadow: inset 0 0 0 2px\n ", ";\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
|
|
57
|
+
var SuggestionContainer = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0 0.5rem;\n line-height: 1.715em;\n cursor: pointer;\n box-shadow: inset 0 0 0 2px\n ", ";\n\n &:hover {\n background-color: ", ";\n }\n &:active {\n background-color: ", ";\n }\n"])), function (props) {
|
|
42
58
|
return props.visuallyFocused ? props.theme.focusListOptionBorderColor : "transparent";
|
|
43
59
|
}, function (props) {
|
|
44
60
|
return props.theme.hoverListOptionBackgroundColor;
|
|
45
61
|
}, function (props) {
|
|
46
62
|
return props.theme.activeListOptionBackgroundColor;
|
|
47
63
|
});
|
|
48
|
-
|
|
49
64
|
var StyledSuggestion = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n padding: 0.25rem 0.5rem 0.188rem 0.5rem;\n ", ";\n"])), function (props) {
|
|
50
|
-
return props.
|
|
65
|
+
return props.isLast || props.visuallyFocused ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
|
|
51
66
|
});
|
|
52
|
-
|
|
53
|
-
var _default = /*#__PURE__*/_react["default"].memo(Suggestion);
|
|
54
|
-
|
|
55
|
-
exports["default"] = _default;
|
|
67
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Suggestion);
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { SuggestionsProps } from "./types";
|
|
3
|
+
declare const _default: React.MemoExoticComponent<({ id, value, suggestions, visualFocusIndex, highlightedSuggestions, searchHasErrors, isSearching, suggestionOnClick, styles, }: SuggestionsProps) => JSX.Element>;
|
|
4
|
+
export default _default;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports["default"] = void 0;
|
|
9
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
12
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
13
|
+
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
14
|
+
var _Suggestion = _interopRequireDefault(require("./Suggestion"));
|
|
15
|
+
var _Icons = _interopRequireDefault(require("./Icons"));
|
|
16
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4;
|
|
17
|
+
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
18
|
+
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
|
|
19
|
+
var Suggestions = function Suggestions(_ref) {
|
|
20
|
+
var id = _ref.id,
|
|
21
|
+
value = _ref.value,
|
|
22
|
+
suggestions = _ref.suggestions,
|
|
23
|
+
visualFocusIndex = _ref.visualFocusIndex,
|
|
24
|
+
highlightedSuggestions = _ref.highlightedSuggestions,
|
|
25
|
+
searchHasErrors = _ref.searchHasErrors,
|
|
26
|
+
isSearching = _ref.isSearching,
|
|
27
|
+
suggestionOnClick = _ref.suggestionOnClick,
|
|
28
|
+
styles = _ref.styles;
|
|
29
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
30
|
+
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
31
|
+
var listboxRef = (0, _react.useRef)(null);
|
|
32
|
+
(0, _react.useEffect)(function () {
|
|
33
|
+
var _listboxRef$current, _visualFocusedOptionE;
|
|
34
|
+
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];
|
|
35
|
+
visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
|
|
36
|
+
block: "nearest",
|
|
37
|
+
inline: "start"
|
|
38
|
+
});
|
|
39
|
+
}, [visualFocusIndex]);
|
|
40
|
+
return /*#__PURE__*/_react["default"].createElement(SuggestionsContainer, {
|
|
41
|
+
id: id,
|
|
42
|
+
error: searchHasErrors ? true : false,
|
|
43
|
+
onMouseDown: function onMouseDown(event) {
|
|
44
|
+
event.preventDefault();
|
|
45
|
+
},
|
|
46
|
+
ref: listboxRef,
|
|
47
|
+
role: "listbox",
|
|
48
|
+
backgroundType: backgroundType,
|
|
49
|
+
style: styles
|
|
50
|
+
}, !isSearching && !searchHasErrors && suggestions.length > 0 && suggestions.map(function (suggestion, index) {
|
|
51
|
+
return /*#__PURE__*/_react["default"].createElement(_Suggestion["default"], {
|
|
52
|
+
key: "suggestion-".concat(index),
|
|
53
|
+
id: "suggestion-".concat(index),
|
|
54
|
+
value: value,
|
|
55
|
+
onClick: suggestionOnClick,
|
|
56
|
+
suggestion: suggestion,
|
|
57
|
+
isLast: index === suggestions.length - 1,
|
|
58
|
+
visuallyFocused: visualFocusIndex === index,
|
|
59
|
+
highlighted: highlightedSuggestions
|
|
60
|
+
});
|
|
61
|
+
}), isSearching && /*#__PURE__*/_react["default"].createElement(SuggestionsSystemMessage, null, translatedLabels.textInput.searchingMessage), searchHasErrors && /*#__PURE__*/_react["default"].createElement(SuggestionsError, null, /*#__PURE__*/_react["default"].createElement(SuggestionsErrorIcon, {
|
|
62
|
+
backgroundType: backgroundType
|
|
63
|
+
}, _Icons["default"].error), translatedLabels.textInput.fetchingDataErrorMessage));
|
|
64
|
+
};
|
|
65
|
+
var SuggestionsContainer = _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 ", ";\n\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
66
|
+
return props.error ? props.theme.errorListDialogBackgroundColor : props.theme.listDialogBackgroundColor;
|
|
67
|
+
}, function (props) {
|
|
68
|
+
return props.error ? props.backgroundType === "dark" ? props.theme.errorBorderColorOnDark : props.theme.errorListDialogBorderColor : props.theme.listDialogBorderColor;
|
|
69
|
+
}, function (props) {
|
|
70
|
+
return props.theme.listOptionFontColor;
|
|
71
|
+
}, function (props) {
|
|
72
|
+
return props.theme.fontFamily;
|
|
73
|
+
}, function (props) {
|
|
74
|
+
return props.theme.listOptionFontSize;
|
|
75
|
+
}, function (props) {
|
|
76
|
+
return props.theme.listOptionFontStyle;
|
|
77
|
+
}, function (props) {
|
|
78
|
+
return props.theme.listOptionFontWeight;
|
|
79
|
+
});
|
|
80
|
+
var SuggestionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n color: ", ";\n line-height: 1.715em;\n"])), function (props) {
|
|
81
|
+
return props.theme.systemMessageFontColor;
|
|
82
|
+
});
|
|
83
|
+
var SuggestionsErrorIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n margin-right: 0.5rem;\n height: 18px;\n width: 18px;\n color: ", ";\n"])), function (props) {
|
|
84
|
+
return props.backgroundType === "dark" ? props.theme.errorIconColorOnDark : props.theme.errorIconColor;
|
|
85
|
+
});
|
|
86
|
+
var SuggestionsError = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 1rem;\n align-items: center;\n line-height: 1.715em;\n color: ", ";\n"])), function (props) {
|
|
87
|
+
return props.theme.errorListDialogFontColor;
|
|
88
|
+
});
|
|
89
|
+
var _default = exports["default"] = /*#__PURE__*/_react["default"].memo(Suggestions);
|