@dxc-technology/halstack-react 0.0.0-c25d3b6 → 0.0.0-c2834c3

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 (104) hide show
  1. package/HalstackContext.d.ts +12 -0
  2. package/HalstackContext.js +298 -0
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +19 -4
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +13 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +24 -6
  12. package/accordion-group/types.d.ts +4 -0
  13. package/alert/Alert.js +4 -1
  14. package/button/Button.js +14 -11
  15. package/card/Card.js +27 -28
  16. package/checkbox/Checkbox.d.ts +1 -1
  17. package/checkbox/Checkbox.js +43 -39
  18. package/checkbox/Checkbox.stories.tsx +124 -128
  19. package/checkbox/Checkbox.test.js +13 -0
  20. package/checkbox/types.d.ts +7 -3
  21. package/common/variables.js +181 -70
  22. package/date-input/DateInput.js +38 -20
  23. package/date-input/DateInput.test.js +9 -22
  24. package/date-input/types.d.ts +12 -9
  25. package/dialog/Dialog.js +4 -32
  26. package/dropdown/Dropdown.js +13 -17
  27. package/file-input/FileInput.js +9 -6
  28. package/file-input/FileItem.js +7 -5
  29. package/footer/Footer.js +15 -88
  30. package/header/Header.js +27 -48
  31. package/header/Header.stories.tsx +46 -36
  32. package/header/Header.test.js +18 -2
  33. package/inset/types.d.ts +24 -0
  34. package/layout/ApplicationLayout.js +5 -18
  35. package/link/Link.d.ts +3 -2
  36. package/link/Link.js +65 -56
  37. package/link/Link.stories.tsx +87 -52
  38. package/link/Link.test.js +7 -15
  39. package/link/types.d.ts +8 -23
  40. package/main.d.ts +3 -2
  41. package/main.js +19 -5
  42. package/number-input/NumberInput.test.js +2 -4
  43. package/number-input/types.d.ts +13 -10
  44. package/package.json +6 -5
  45. package/paginator/Paginator.js +17 -38
  46. package/password-input/PasswordInput.js +7 -4
  47. package/password-input/PasswordInput.test.js +3 -6
  48. package/password-input/types.d.ts +14 -11
  49. package/quick-nav/QuickNav.d.ts +4 -0
  50. package/quick-nav/QuickNav.js +116 -0
  51. package/quick-nav/QuickNav.stories.tsx +237 -0
  52. package/quick-nav/types.d.ts +21 -0
  53. package/quick-nav/types.js +5 -0
  54. package/radio/Radio.js +10 -11
  55. package/radio-group/Radio.js +1 -1
  56. package/radio-group/RadioGroup.js +8 -6
  57. package/row/types.d.ts +18 -0
  58. package/select/Listbox.d.ts +4 -0
  59. package/select/Listbox.js +152 -0
  60. package/select/Option.js +1 -1
  61. package/select/Select.js +53 -139
  62. package/select/Select.stories.tsx +14 -2
  63. package/select/Select.test.js +83 -42
  64. package/select/types.d.ts +33 -11
  65. package/slider/Slider.d.ts +1 -1
  66. package/slider/Slider.js +2 -1
  67. package/slider/Slider.stories.tsx +8 -8
  68. package/slider/Slider.test.js +31 -10
  69. package/slider/types.d.ts +4 -0
  70. package/spinner/Spinner.js +1 -1
  71. package/switch/Switch.d.ts +1 -1
  72. package/switch/Switch.js +35 -19
  73. package/switch/Switch.stories.tsx +14 -14
  74. package/switch/Switch.test.js +25 -0
  75. package/switch/types.d.ts +6 -2
  76. package/tabs/Tabs.d.ts +1 -1
  77. package/tabs/Tabs.js +9 -11
  78. package/tabs/Tabs.stories.tsx +0 -8
  79. package/tabs/Tabs.test.js +26 -9
  80. package/tabs/types.d.ts +4 -0
  81. package/tag/Tag.js +5 -8
  82. package/text-input/Suggestion.d.ts +4 -0
  83. package/text-input/Suggestion.js +55 -0
  84. package/text-input/TextInput.js +48 -76
  85. package/text-input/TextInput.test.js +22 -35
  86. package/text-input/types.d.ts +27 -12
  87. package/textarea/Textarea.js +12 -23
  88. package/textarea/Textarea.test.js +10 -20
  89. package/textarea/types.d.ts +14 -11
  90. package/toggle-group/ToggleGroup.d.ts +1 -1
  91. package/toggle-group/ToggleGroup.js +5 -4
  92. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  93. package/toggle-group/ToggleGroup.test.js +35 -4
  94. package/toggle-group/types.d.ts +8 -0
  95. package/useTheme.js +2 -2
  96. package/useTranslatedLabels.d.ts +2 -0
  97. package/useTranslatedLabels.js +20 -0
  98. package/wizard/Wizard.d.ts +1 -1
  99. package/wizard/Wizard.js +55 -44
  100. package/wizard/Wizard.stories.tsx +13 -23
  101. package/wizard/Wizard.test.js +36 -23
  102. package/wizard/types.d.ts +6 -2
  103. package/ThemeContext.d.ts +0 -10
  104. package/ThemeContext.js +0 -243
@@ -26,15 +26,6 @@ export const Chromatic = () => (
26
26
  <Title title="Underlined with text" theme="light" level={4} />
27
27
  <DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
28
28
  </ExampleContainer>
29
- <ExampleContainer>
30
- <Title title="Responsive" theme="light" level={4} />
31
- <div style={{ width: "400px" }}>
32
- <DxcHeader
33
- responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
34
- underlined
35
- />
36
- </div>
37
- </ExampleContainer>
38
29
  <Title title="Margins" theme="light" level={2} />
39
30
  <ExampleContainer>
40
31
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -104,59 +95,78 @@ export const Chromatic = () => (
104
95
  </>
105
96
  );
106
97
 
107
- const RespHeader = () => (
98
+ export const ResponsiveHeader = () => (
108
99
  <ExampleContainer>
109
100
  <Title title="Responsive" theme="light" level={4} />
110
- <div style={{ maxWidth: "400px" }}>
111
- <DxcHeader
112
- responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
113
- underlined
114
- />
115
- </div>
101
+ <DxcHeader
102
+ content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />}
103
+ responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
104
+ underlined
105
+ />
116
106
  </ExampleContainer>
117
107
  );
118
108
 
119
109
  const RespHeaderFocus = () => (
120
110
  <ExampleContainer pseudoState="pseudo-focus">
121
- <Title title="Responsive" theme="light" level={4} />
122
- <div style={{ maxWidth: "400px" }}>
123
- <DxcHeader
124
- responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
125
- underlined
126
- />
127
- </div>
111
+ <Title title="Responsive focus" theme="light" level={4} />
112
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
128
113
  </ExampleContainer>
129
114
  );
130
115
 
131
116
  const RespHeaderHover = () => (
132
117
  <ExampleContainer pseudoState="pseudo-hover">
133
- <Title title="Responsive" theme="light" level={4} />
134
- <div style={{ maxWidth: "400px" }}>
135
- <DxcHeader
136
- responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>}
137
- underlined
138
- />
139
- </div>
118
+ <Title title="Responsive hover" theme="light" level={4} />
119
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
140
120
  </ExampleContainer>
141
121
  );
142
122
 
143
- export const ResponsiveHeader = RespHeader.bind({});
144
- ResponsiveHeader.play = async ({ canvasElement }) => {
145
- const canvas = within(canvasElement);
146
- await waitFor(() => canvas.findByText("Menu"));
147
- await userEvent.click(canvas.getByText("Menu"));
123
+ const RespHeaderMenu = () => (
124
+ <ExampleContainer>
125
+ <Title title="Responsive menu" theme="light" level={4} />
126
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
127
+ </ExampleContainer>
128
+ );
129
+
130
+ ResponsiveHeader.parameters = {
131
+ viewport: {
132
+ defaultViewport: "iphonex",
133
+ },
134
+ chromatic: { viewports: [720] },
148
135
  };
149
136
 
150
137
  export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
138
+ ResponsiveHeaderFocus.parameters = {
139
+ viewport: {
140
+ defaultViewport: "iphonex",
141
+ },
142
+ chromatic: { viewports: [720] },
143
+ };
151
144
  ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
152
145
  const canvas = within(canvasElement);
153
146
  await waitFor(() => canvas.findByText("Menu"));
154
- await userEvent.click(canvas.getByText("Menu"));
155
147
  };
156
148
 
157
149
  export const ResponsiveHeaderHover = RespHeaderHover.bind({});
150
+ ResponsiveHeaderHover.parameters = {
151
+ viewport: {
152
+ defaultViewport: "iphonex",
153
+ },
154
+ chromatic: { viewports: [720] },
155
+ };
158
156
  ResponsiveHeaderHover.play = async ({ canvasElement }) => {
159
157
  const canvas = within(canvasElement);
160
158
  await waitFor(() => canvas.findByText("Menu"));
159
+ };
160
+
161
+ export const ResponsiveHeaderMenu = RespHeaderMenu.bind({});
162
+ ResponsiveHeaderMenu.parameters = {
163
+ viewport: {
164
+ defaultViewport: "iphonex",
165
+ },
166
+ chromatic: { viewports: [720] },
167
+ };
168
+ ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
169
+ const canvas = within(canvasElement);
170
+ await waitFor(() => canvas.findByText("Menu"));
161
171
  await userEvent.click(canvas.getByText("Menu"));
162
172
  };
@@ -8,9 +8,17 @@ var _react2 = require("@testing-library/react");
8
8
 
9
9
  var _Header = _interopRequireDefault(require("./Header"));
10
10
 
11
- var _linkedin = _interopRequireDefault(require("../../app/src/images/linkedin.svg"));
12
-
13
11
  describe("Header component tests", function () {
12
+ beforeAll(function () {
13
+ Object.defineProperty(window, "matchMedia", {
14
+ writable: true,
15
+ value: jest.fn().mockImplementation(function () {
16
+ return {
17
+ matches: false
18
+ };
19
+ })
20
+ });
21
+ });
14
22
  test("Header renders with default logo", function () {
15
23
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], null)),
16
24
  getByTitle = _render.getByTitle;
@@ -50,6 +58,14 @@ describe("Header component tests", function () {
50
58
  configurable: true,
51
59
  value: 425
52
60
  });
61
+ Object.defineProperty(window, "matchMedia", {
62
+ writable: true,
63
+ value: jest.fn().mockImplementation(function () {
64
+ return {
65
+ matches: true
66
+ };
67
+ })
68
+ });
53
69
 
54
70
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
55
71
  responsiveContent: function responsiveContent(closeMenu) {
package/inset/types.d.ts CHANGED
@@ -1,13 +1,37 @@
1
1
  /// <reference types="react" />
2
2
  declare type Spacing = "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
3
3
  declare type Props = {
4
+ /**
5
+ * Applies the spacing scale to all sides.
6
+ */
4
7
  space?: Spacing;
8
+ /**
9
+ * Applies the spacing scale to the left and right sides.
10
+ */
5
11
  horizontal?: Spacing;
12
+ /**
13
+ * Applies the spacing scale to the top and bottom sides.
14
+ */
6
15
  vertical?: Spacing;
16
+ /**
17
+ * Applies the spacing scale to the top side.
18
+ */
7
19
  top?: Spacing;
20
+ /**
21
+ * Applies the spacing scale to the right side.
22
+ */
8
23
  right?: Spacing;
24
+ /**
25
+ * Applies the spacing scale to the bottom side.
26
+ */
9
27
  bottom?: Spacing;
28
+ /**
29
+ * Applies the spacing scale to the left side.
30
+ */
10
31
  left?: Spacing;
32
+ /**
33
+ * Custom content inside the inset.
34
+ */
11
35
  children: React.ReactNode;
12
36
  };
13
37
  export default Props;
@@ -114,11 +114,6 @@ var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
114
114
  isResponsive = _useState4[0],
115
115
  setIsResponsive = _useState4[1];
116
116
 
117
- var _useState5 = (0, _react.useState)(null),
118
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
119
- previousWidth = _useState6[0],
120
- setPreviousWidth = _useState6[1];
121
-
122
117
  var childrenArray = _react["default"].Children.toArray(children);
123
118
 
124
119
  var header = childTypeExists(childrenArray, _main.DxcHeader) || childTypeExists(childrenArray, Header) || defaultHeader();
@@ -141,26 +136,18 @@ var DxcApplicationLayout = function DxcApplicationLayout(_ref4) {
141
136
  }));
142
137
  };
143
138
 
144
- var handleResize = function handleResize(width) {
145
- if (width) {
146
- setPreviousWidth(width);
147
- setIsResponsive(width <= _variables.responsiveSizes.tablet);
148
- setIsSideNavVisible(true);
149
- }
150
- };
151
-
152
- var handleEventListener = function handleEventListener() {
153
- if (previousWidth !== ref.current.offsetWidth) handleResize(ref.current.offsetWidth);
139
+ var handleResize = function handleResize() {
140
+ setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
141
+ setIsSideNavVisible(true);
154
142
  };
155
143
 
156
144
  (0, _react.useEffect)(function () {
157
145
  if (ref.current) {
158
- window.addEventListener("resize", handleEventListener);
159
- handleResize(ref.current.offsetWidth);
146
+ window.addEventListener("resize", handleResize);
160
147
  }
161
148
 
162
149
  return function () {
163
- window.removeEventListener("resize", handleEventListener);
150
+ window.removeEventListener("resize", handleResize);
164
151
  };
165
152
  }, [ref.current]);
166
153
 
package/link/Link.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import Overload from "./types";
2
- declare const DxcLink: Overload;
1
+ /// <reference types="react" />
2
+ import { LinkProps } from "./types";
3
+ declare const DxcLink: ({ inheritColor, disabled, icon, iconPosition, href, newWindow, onClick, margin, tabIndex, children, }: LinkProps) => JSX.Element;
3
4
  export default DxcLink;
package/link/Link.js CHANGED
@@ -27,55 +27,62 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
27
27
 
28
28
  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; }
29
29
 
30
- var DxcLink = function DxcLink(_ref) {
31
- var _ref$inheritColor = _ref.inheritColor,
32
- inheritColor = _ref$inheritColor === void 0 ? false : _ref$inheritColor,
33
- _ref$disabled = _ref.disabled,
34
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
30
+ var LinkContent = /*#__PURE__*/_react["default"].memo(function (_ref) {
31
+ var iconPosition = _ref.iconPosition,
35
32
  icon = _ref.icon,
36
- _ref$iconPosition = _ref.iconPosition,
37
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
38
- _ref$href = _ref.href,
39
- href = _ref$href === void 0 ? "" : _ref$href,
40
- _ref$newWindow = _ref.newWindow,
41
- newWindow = _ref$newWindow === void 0 ? false : _ref$newWindow,
42
- onClick = _ref.onClick,
43
- _ref$text = _ref.text,
44
- text = _ref$text === void 0 ? "" : _ref$text,
45
- margin = _ref.margin,
46
- _ref$tabIndex = _ref.tabIndex,
47
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
48
- var colorsTheme = (0, _useTheme["default"])();
49
-
50
- var linkContent = /*#__PURE__*/_react["default"].createElement(LinkText, {
51
- iconPosition: iconPosition
52
- }, text, icon && /*#__PURE__*/_react["default"].createElement(LinkIconContainer, {
33
+ children = _ref.children;
34
+ return /*#__PURE__*/_react["default"].createElement(LinkText, null, iconPosition === "after" && children, icon && /*#__PURE__*/_react["default"].createElement(LinkIconContainer, {
53
35
  iconPosition: iconPosition
54
36
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(LinkIcon, {
55
37
  src: icon
56
- }) : icon));
38
+ }) : icon), iconPosition === "before" && children);
39
+ });
57
40
 
41
+ var DxcLink = function DxcLink(_ref2) {
42
+ var _ref2$inheritColor = _ref2.inheritColor,
43
+ inheritColor = _ref2$inheritColor === void 0 ? false : _ref2$inheritColor,
44
+ _ref2$disabled = _ref2.disabled,
45
+ disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,
46
+ icon = _ref2.icon,
47
+ _ref2$iconPosition = _ref2.iconPosition,
48
+ iconPosition = _ref2$iconPosition === void 0 ? "before" : _ref2$iconPosition,
49
+ _ref2$href = _ref2.href,
50
+ href = _ref2$href === void 0 ? "" : _ref2$href,
51
+ _ref2$newWindow = _ref2.newWindow,
52
+ newWindow = _ref2$newWindow === void 0 ? false : _ref2$newWindow,
53
+ onClick = _ref2.onClick,
54
+ margin = _ref2.margin,
55
+ _ref2$tabIndex = _ref2.tabIndex,
56
+ tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex,
57
+ children = _ref2.children;
58
+ var colorsTheme = (0, _useTheme["default"])();
58
59
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
59
60
  theme: colorsTheme.link
60
- }, /*#__PURE__*/_react["default"].createElement(DxcLinkContainer, {
61
+ }, /*#__PURE__*/_react["default"].createElement(LinkContainer, {
61
62
  margin: margin
62
- }, onClick ? /*#__PURE__*/_react["default"].createElement(StyledButton, {
63
- type: "button",
63
+ }, typeof children === "string" && (href || onClick) ? /*#__PURE__*/_react["default"].createElement(StyledLink, {
64
+ as: href ? "a" : "button",
65
+ tabIndex: tabIndex,
64
66
  onClick: !disabled && onClick,
65
- margin: margin,
67
+ href: !disabled && href ? href : undefined,
68
+ target: href ? newWindow ? "_blank" : "_self" : undefined,
66
69
  disabled: disabled,
67
70
  inheritColor: inheritColor
68
- }, linkContent) : /*#__PURE__*/_react["default"].createElement(StyledLink, {
69
- tabIndex: tabIndex,
70
- href: !disabled && href,
71
- target: newWindow ? "_blank" : "_self",
72
- margin: margin,
71
+ }, /*#__PURE__*/_react["default"].createElement(LinkContent, {
72
+ iconPosition: iconPosition,
73
+ icon: icon,
74
+ children: children
75
+ })) : /*#__PURE__*/_react["default"].createElement(CustomLinkContainer, {
73
76
  disabled: disabled,
74
77
  inheritColor: inheritColor
75
- }, linkContent)));
78
+ }, /*#__PURE__*/_react["default"].createElement(LinkContent, {
79
+ iconPosition: iconPosition,
80
+ icon: icon,
81
+ children: children
82
+ }))));
76
83
  };
77
84
 
78
- var DxcLinkContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
85
+ var LinkContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n * {\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n font-family: ", ";\n text-decoration-color: transparent;\n }\n"])), function (props) {
79
86
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
80
87
  }, function (props) {
81
88
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -85,16 +92,26 @@ var DxcLinkContainer = _styledComponents["default"].div(_templateObject || (_tem
85
92
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
86
93
  }, function (props) {
87
94
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
95
+ }, function (props) {
96
+ return props.theme.fontSize;
97
+ }, function (props) {
98
+ return props.theme.fontWeight;
99
+ }, function (props) {
100
+ return props.theme.fontStyle;
101
+ }, function (props) {
102
+ return props.theme.fontFamily;
88
103
  });
89
104
 
90
- var StyledLink = _styledComponents["default"].a(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n ", "\n\n text-decoration-color: transparent;\n ", "\n\n &:visited {\n color: ", ";\n &:hover {\n ", "\n }\n }\n &:hover {\n ", "\n }\n &:focus {\n border-radius: 2px;\n outline: 2px solid ", ";\n ", "\n }\n &:active {\n ", "\n }\n"])), function (props) {
105
+ var StyledLink = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n ", "\n color: ", ";\n ", "\n\n &:visited {\n color: ", ";\n &:hover {\n ", "\n }\n }\n &:hover {\n ", "\n }\n &:focus {\n border-radius: 2px;\n outline: 2px solid ", ";\n ", "\n }\n &:active {\n ", "\n }\n"])), function (props) {
106
+ return "padding-bottom: ".concat(props.theme.underlineSpacing, ";\n border-bottom: ").concat(props.theme.underlineThickness, " ").concat(props.theme.underlineStyle, " transparent;");
107
+ }, function (props) {
108
+ return props.disabled && "cursor: default;";
109
+ }, function (props) {
91
110
  return props.inheritColor ? "inherit" : !props.disabled ? props.theme.fontColor : props.theme.disabledColor;
92
111
  }, function (props) {
93
112
  return props.disabled ? "pointer-events: none;" : "";
94
113
  }, function (props) {
95
- return "padding-bottom: ".concat(props.theme.underlineSpacing, ";\n border-bottom: ").concat(props.theme.underlineThickness, " ").concat(props.theme.underlineStyle, " transparent;");
96
- }, function (props) {
97
- return !props.inheritColor ? props.theme.visitedFontColor : "";
114
+ return !props.inheritColor && !props.disabled ? props.theme.visitedFontColor : "";
98
115
  }, function (props) {
99
116
  return "color: ".concat(props.theme.visitedFontColor, ";\n border-bottom-color: ").concat(props.theme.visitedUnderlineColor, ";");
100
117
  }, function (props) {
@@ -107,41 +124,33 @@ var StyledLink = _styledComponents["default"].a(_templateObject2 || (_templateOb
107
124
  return "color: ".concat(props.theme.activeFontColor, " !important;\n border-bottom-color: ").concat(props.theme.activeUnderlineColor, " !important;");
108
125
  });
109
126
 
110
- var StyledButton = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n background: none;\n border: none;\n padding: 0;\n cursor: pointer;\n font-family: inherit;\n text-decoration-color: transparent;\n\n ", "\n ", "\n color: ", ";\n ", "\n\n &:hover {\n ", "\n }\n &:focus {\n border-radius: 2px;\n outline: 2px solid ", ";\n ", "\n }\n &:active {\n ", "\n }\n"])), function (props) {
127
+ var CustomLinkContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n ", "\n ", "\n\n * {\n color: ", ";\n }\n\n &:hover {\n * {\n color: ", ";\n }\n ", "\n }\n &:focus-within {\n * {\n outline: none;\n }\n border-radius: 2px;\n outline: 2px solid ", ";\n ", "\n }\n &:active {\n * {\n color: ", " !important;\n }\n ", "\n }\n"])), function (props) {
111
128
  return "padding-bottom: ".concat(props.theme.underlineSpacing, ";\n border-bottom: ").concat(props.theme.underlineThickness, " ").concat(props.theme.underlineStyle, " transparent;");
112
129
  }, function (props) {
113
130
  return props.disabled && "cursor: default;";
131
+ }, function (props) {
132
+ return props.disabled ? "pointer-events: none;" : "";
114
133
  }, function (props) {
115
134
  return props.inheritColor ? "inherit" : !props.disabled ? props.theme.fontColor : props.theme.disabledColor;
116
135
  }, function (props) {
117
- return props.disabled ? "pointer-events: none;" : "";
136
+ return props.theme.hoverFontColor;
118
137
  }, function (props) {
119
- return "color: ".concat(props.theme.hoverFontColor, ";\n border-bottom-color: ").concat(props.theme.hoverUnderlineColor, ";\n cursor: pointer;");
138
+ return "border-bottom-color: ".concat(props.theme.hoverUnderlineColor, ";\n cursor: pointer;");
120
139
  }, function (props) {
121
140
  return props.theme.focusColor;
122
141
  }, function (props) {
123
142
  return props.disabled && "outline: none";
124
143
  }, function (props) {
125
- return "color: ".concat(props.theme.activeFontColor, " !important;\n border-bottom-color: ").concat(props.theme.activeUnderlineColor, " !important;");
126
- });
127
-
128
- var LinkText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-weight: ", ";\n font-style: ", ";\n font-family: ", ";\n display: inline-flex;\n flex-direction: ", ";\n justify-content: ", ";\n align-items: center;\n max-width: 100%;\n"])), function (props) {
129
- return props.theme.fontSize;
130
- }, function (props) {
131
- return props.theme.fontWeight;
132
- }, function (props) {
133
- return props.theme.fontStyle;
144
+ return props.theme.activeFontColor;
134
145
  }, function (props) {
135
- return props.theme.fontFamily;
136
- }, function (props) {
137
- return props.iconPosition === "after" ? "row" : "row-reverse";
138
- }, function (props) {
139
- return props.iconPosition === "after" ? "flex-start" : "flex-end";
146
+ return "border-bottom-color: ".concat(props.theme.activeUnderlineColor, " !important;");
140
147
  });
141
148
 
149
+ var LinkText = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: baseline;\n max-width: 100%;\n"])));
150
+
142
151
  var LinkIcon = _styledComponents["default"].img(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])([""])));
143
152
 
144
- var LinkIconContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
153
+ var LinkIconContainer = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", ";\n overflow: hidden;\n align-self: center;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
145
154
  return props.theme.iconSize;
146
155
  }, function (props) {
147
156
  return props.theme.iconSize;