@zohodesk/icons 1.3.0 → 1.3.2

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 (46) hide show
  1. package/README.md +8 -0
  2. package/assets/fonts/zd-rAnalyticsColor.svg +2 -2
  3. package/assets/fonts/zd-rAnalyticsColor.woff +0 -0
  4. package/assets/fonts/zd-rAnalyticsColor.woff2 +0 -0
  5. package/assets/fonts/zd-rAutomation.svg +5 -0
  6. package/assets/fonts/zd-rAutomation.woff +0 -0
  7. package/assets/fonts/zd-rAutomation.woff2 +0 -0
  8. package/assets/fonts/zd-rTickets.svg +2 -0
  9. package/assets/fonts/zd-rTickets.woff +0 -0
  10. package/assets/fonts/zd-rTickets.woff2 +0 -0
  11. package/assets/react/zd-font-rAnalyticsColor.module.css +3 -3
  12. package/assets/react/zd-font-rAutomation.module.css +16 -1
  13. package/assets/react/zd-font-rTickets.module.css +10 -1
  14. package/es/Context/IconContext.js +7 -0
  15. package/es/Context/IconProvider.js +22 -0
  16. package/es/Context/__tests__/IconContext.spec.js +115 -0
  17. package/es/Context/__tests__/__snapshots__/IconContext.spec.js.snap +166 -0
  18. package/es/Context/props/defaultProps.js +5 -0
  19. package/es/Context/props/propTypes.js +7 -0
  20. package/es/Icon/FontFactory.js +8 -2
  21. package/es/Icon/FontIcon.js +1 -8
  22. package/es/Icon/Icon.module.css +6 -0
  23. package/es/Icon/SvgIcon.js +45 -0
  24. package/es/Icon/__tests__/SvgIcon.spec.js +94 -0
  25. package/es/Icon/__tests__/__snapshots__/SvgIcon.spec.js.snap +200 -0
  26. package/es/Icon/index.js +39 -1
  27. package/es/Icon/props/defaultProps.js +7 -1
  28. package/es/Icon/props/propTypes.js +17 -0
  29. package/es/index.js +3 -1
  30. package/lib/Context/IconContext.js +19 -0
  31. package/lib/Context/IconProvider.js +38 -0
  32. package/lib/Context/__tests__/IconContext.spec.js +123 -0
  33. package/lib/Context/__tests__/__snapshots__/IconContext.spec.js.snap +166 -0
  34. package/lib/Context/props/defaultProps.js +12 -0
  35. package/lib/Context/props/propTypes.js +18 -0
  36. package/lib/Icon/FontFactory.js +8 -2
  37. package/lib/Icon/FontIcon.js +1 -8
  38. package/lib/Icon/Icon.module.css +6 -0
  39. package/lib/Icon/SvgIcon.js +57 -0
  40. package/lib/Icon/__tests__/SvgIcon.spec.js +101 -0
  41. package/lib/Icon/__tests__/__snapshots__/SvgIcon.spec.js.snap +200 -0
  42. package/lib/Icon/index.js +46 -1
  43. package/lib/Icon/props/defaultProps.js +12 -3
  44. package/lib/Icon/props/propTypes.js +20 -2
  45. package/lib/index.js +16 -0
  46. package/package.json +15 -11
@@ -0,0 +1,166 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`IconProvider / IconContext - default context - renders font icon (no provider) 1`] = `
4
+ <DocumentFragment>
5
+ <i
6
+ aria-hidden="true"
7
+ class="zd_font_icons basic icon-close2 "
8
+ data-id="fontIcon"
9
+ data-selector-id="fontIcon"
10
+ data-test-id="fontIcon"
11
+ />
12
+ </DocumentFragment>
13
+ `;
14
+
15
+ exports[`IconProvider / IconContext - multiple icons share the same provider context 1`] = `
16
+ <DocumentFragment>
17
+ <svg
18
+ aria-hidden="true"
19
+ class="svgIcon "
20
+ data-id="fontIcon"
21
+ data-selector-id="fontIcon"
22
+ data-test-id="fontIcon"
23
+ >
24
+ <use
25
+ href="#ZD-close2"
26
+ />
27
+ </svg>
28
+ <svg
29
+ aria-hidden="true"
30
+ class="svgIcon "
31
+ data-id="fontIcon"
32
+ data-selector-id="fontIcon"
33
+ data-test-id="fontIcon"
34
+ >
35
+ <use
36
+ href="#ZD-addAccount"
37
+ />
38
+ </svg>
39
+ </DocumentFragment>
40
+ `;
41
+
42
+ exports[`IconProvider / IconContext - type "fontIcon" - renders font icon 1`] = `
43
+ <DocumentFragment>
44
+ <i
45
+ aria-hidden="true"
46
+ class="zd_font_icons basic icon-close2 "
47
+ data-id="fontIcon"
48
+ data-selector-id="fontIcon"
49
+ data-test-id="fontIcon"
50
+ />
51
+ </DocumentFragment>
52
+ `;
53
+
54
+ exports[`IconProvider / IconContext - type "svgIcon" - passes "a11y" ariaHidden false 1`] = `
55
+ <DocumentFragment>
56
+ <svg
57
+ aria-hidden="false"
58
+ class="svgIcon "
59
+ data-id="fontIcon"
60
+ data-selector-id="fontIcon"
61
+ data-test-id="fontIcon"
62
+ >
63
+ <use
64
+ href="#ZD-close2"
65
+ />
66
+ </svg>
67
+ </DocumentFragment>
68
+ `;
69
+
70
+ exports[`IconProvider / IconContext - type "svgIcon" - passes "iconClass" prop to svg 1`] = `
71
+ <DocumentFragment>
72
+ <svg
73
+ aria-hidden="true"
74
+ class="svgIcon custom-class "
75
+ data-id="fontIcon"
76
+ data-selector-id="fontIcon"
77
+ data-test-id="fontIcon"
78
+ >
79
+ <use
80
+ href="#ZD-close2"
81
+ />
82
+ </svg>
83
+ </DocumentFragment>
84
+ `;
85
+
86
+ exports[`IconProvider / IconContext - type "svgIcon" - passes "size" prop to svg 1`] = `
87
+ <DocumentFragment>
88
+ <svg
89
+ aria-hidden="true"
90
+ class="svgIcon "
91
+ data-id="fontIcon"
92
+ data-selector-id="fontIcon"
93
+ data-test-id="fontIcon"
94
+ style="--zd-iconfont-size: var(--zd_font_size20);"
95
+ >
96
+ <use
97
+ href="#ZD-close2"
98
+ />
99
+ </svg>
100
+ </DocumentFragment>
101
+ `;
102
+
103
+ exports[`IconProvider / IconContext - type "svgIcon" - passes "title" prop to svg 1`] = `
104
+ <DocumentFragment>
105
+ <svg
106
+ aria-hidden="true"
107
+ class="svgIcon "
108
+ data-id="fontIcon"
109
+ data-selector-id="fontIcon"
110
+ data-test-id="fontIcon"
111
+ data-title="Close"
112
+ >
113
+ <use
114
+ href="#ZD-close2"
115
+ />
116
+ </svg>
117
+ </DocumentFragment>
118
+ `;
119
+
120
+ exports[`IconProvider / IconContext - type "svgIcon" - renders svg symbol 1`] = `
121
+ <DocumentFragment>
122
+ <svg
123
+ aria-hidden="true"
124
+ class="svgIcon "
125
+ data-id="fontIcon"
126
+ data-selector-id="fontIcon"
127
+ data-test-id="fontIcon"
128
+ >
129
+ <use
130
+ href="#ZD-close2"
131
+ />
132
+ </svg>
133
+ </DocumentFragment>
134
+ `;
135
+
136
+ exports[`IconProvider / IconContext - type "svgIcon" with "svgIconClass" 1`] = `
137
+ <DocumentFragment>
138
+ <svg
139
+ aria-hidden="true"
140
+ class="svgIcon app-svg-icon "
141
+ data-id="fontIcon"
142
+ data-selector-id="fontIcon"
143
+ data-test-id="fontIcon"
144
+ >
145
+ <use
146
+ href="#ZD-close2"
147
+ />
148
+ </svg>
149
+ </DocumentFragment>
150
+ `;
151
+
152
+ exports[`IconProvider / IconContext - type "svgIcon" with custom "svgIconPrefix" 1`] = `
153
+ <DocumentFragment>
154
+ <svg
155
+ aria-hidden="true"
156
+ class="svgIcon "
157
+ data-id="fontIcon"
158
+ data-selector-id="fontIcon"
159
+ data-test-id="fontIcon"
160
+ >
161
+ <use
162
+ href="/sprites.svg#ZD-close2"
163
+ />
164
+ </svg>
165
+ </DocumentFragment>
166
+ `;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IconProviderDefaultProps = void 0;
7
+ var IconProviderDefaultProps = {
8
+ type: 'fontIcon',
9
+ svgIconPrefix: '#',
10
+ svgIconClass: ''
11
+ };
12
+ exports.IconProviderDefaultProps = IconProviderDefaultProps;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.IconProviderProps = void 0;
7
+
8
+ var _propTypes = _interopRequireDefault(require("prop-types"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
11
+
12
+ var IconProviderProps = {
13
+ type: _propTypes["default"].oneOf(['fontIcon', 'svgIcon']),
14
+ svgIconPrefix: _propTypes["default"].string,
15
+ svgIconClass: _propTypes["default"].string,
16
+ children: _propTypes["default"].node.isRequired
17
+ };
18
+ exports.IconProviderProps = IconProviderProps;
@@ -1750,7 +1750,8 @@ var FontFactory = {
1750
1750
  'ZD-TK-tempPreview': 'icon-tempPreview',
1751
1751
  'ZD-TK-botPositive': 'icon-botPositive',
1752
1752
  'ZD-TK-botNeutral': 'icon-botNeutral',
1753
- 'ZD-TK-nestedConversation': 'icon-nestedConversation'
1753
+ 'ZD-TK-nestedConversation': 'icon-nestedConversation',
1754
+ 'ZD-TK-sideChat': ['icon-sideChat', 2]
1754
1755
  },
1755
1756
  ReactTopbandFontIcon: {
1756
1757
  'ZD-TB-advanceSearch': 'icon-advanceSearch',
@@ -2023,7 +2024,12 @@ var FontFactory = {
2023
2024
  'ZD-AU-ziaBot': ['icon-ziaBot', 2],
2024
2025
  'ZD-AU-ziaExtract': ['icon-ziaExtract', 2],
2025
2026
  'ZD-AU-ziaGenerate': ['icon-ziaGenerate', 2],
2026
- 'ZD-AU-ziaPredict': ['icon-ziaPredict', 2]
2027
+ 'ZD-AU-ziaPredict': ['icon-ziaPredict', 2],
2028
+ 'ZD-AU-skip': 'icon-skip',
2029
+ 'ZD-AU-scheduleDelay': 'icon-scheduleDelay',
2030
+ 'ZD-AU-reschedule': 'icon-reschedule',
2031
+ 'ZD-AU-nodeRemove': 'icon-nodeRemove',
2032
+ 'ZD-AU-failure': 'icon-failure'
2027
2033
  },
2028
2034
  ReactDeveloperSpaceIcon: {
2029
2035
  'ZD-DS-customMobileApp': 'icon-customMobileApp'
@@ -115,11 +115,4 @@ var FontIcon = /*#__PURE__*/function (_React$Component) {
115
115
 
116
116
  exports["default"] = FontIcon;
117
117
  FontIcon.propTypes = _propTypes.IconProps;
118
- FontIcon.defaultProps = _defaultProps.IconDefaultProps;
119
-
120
- if (__DOCS__) {
121
- FontIcon.docs = {
122
- componentGroup: 'Icon',
123
- folderName: 'Style Guide'
124
- };
125
- }
118
+ FontIcon.defaultProps = _defaultProps.IconDefaultProps;
@@ -18,6 +18,12 @@
18
18
  word-break: initial;
19
19
  }
20
20
 
21
+ .svgIcon{
22
+ height:1em;
23
+ width:1em;
24
+ font-size: var(--zd-iconfont-size, inherit);
25
+ }
26
+
21
27
  .fbold {
22
28
  font-weight: bold;
23
29
  }
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports["default"] = SvgIcon;
7
+
8
+ var _react = _interopRequireDefault(require("react"));
9
+
10
+ var _defaultProps = require("./props/defaultProps");
11
+
12
+ var _propTypes = require("./props/propTypes");
13
+
14
+ var _constants = require("@zohodesk/dotkit/es/utils/constants");
15
+
16
+ var _IconModule = _interopRequireDefault(require("./Icon.module.css"));
17
+
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
+
20
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
21
+
22
+ function SvgIcon(_ref) {
23
+ var name = _ref.name,
24
+ onClick = _ref.onClick,
25
+ title = _ref.title,
26
+ dataId = _ref.dataId,
27
+ dataSelectorId = _ref.dataSelectorId,
28
+ size = _ref.size,
29
+ iconClass = _ref.iconClass,
30
+ titlePosition = _ref.titlePosition,
31
+ tagAttributes = _ref.tagAttributes,
32
+ a11y = _ref.a11y,
33
+ svgPrefix = _ref.svgPrefix;
34
+ var _a11y$ariaHidden = a11y.ariaHidden,
35
+ ariaHidden = _a11y$ariaHidden === void 0 ? true : _a11y$ariaHidden;
36
+ var href = "".concat(svgPrefix).concat(name);
37
+ var fontStyle = size ? {
38
+ '--zd-iconfont-size': 'var(--zd_font_size' + size + ')'
39
+ } : _constants.DUMMY_OBJECT;
40
+ var className = "".concat(_IconModule["default"].svgIcon, " ").concat(iconClass ? iconClass : '', " ").concat(onClick ? _IconModule["default"].cursor : '');
41
+ return /*#__PURE__*/_react["default"].createElement("svg", _extends({
42
+ className: className,
43
+ onClick: onClick,
44
+ "data-title": title,
45
+ "data-id": dataId,
46
+ "data-test-id": dataId,
47
+ "data-selector-id": dataSelectorId,
48
+ "data-title-position": titlePosition,
49
+ style: fontStyle,
50
+ "aria-hidden": ariaHidden
51
+ }, tagAttributes), /*#__PURE__*/_react["default"].createElement("use", {
52
+ href: href
53
+ }));
54
+ }
55
+
56
+ SvgIcon.propTypes = _propTypes.SvgIconProps;
57
+ SvgIcon.defaultProps = _defaultProps.SvgIconDefaultProps;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _SvgIcon = _interopRequireDefault(require("../SvgIcon"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10
+
11
+ describe('SvgIcon - ', function () {
12
+ test('rendering the "default" props', function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], null)),
14
+ asFragment = _render.asFragment;
15
+
16
+ expect(asFragment()).toMatchSnapshot();
17
+ });
18
+ test('rendering with "name" and "svgPrefix"', function () {
19
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
20
+ name: "ZD-close2",
21
+ svgPrefix: "#"
22
+ })),
23
+ asFragment = _render2.asFragment;
24
+
25
+ expect(asFragment()).toMatchSnapshot();
26
+ });
27
+ test('rendering with external sprite "svgPrefix"', function () {
28
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
29
+ name: "ZD-close2",
30
+ svgPrefix: "/sprites.svg#"
31
+ })),
32
+ asFragment = _render3.asFragment;
33
+
34
+ expect(asFragment()).toMatchSnapshot();
35
+ });
36
+ test('rendering with "title"', function () {
37
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
38
+ name: "ZD-close2",
39
+ svgPrefix: "#",
40
+ title: "Close"
41
+ })),
42
+ asFragment = _render4.asFragment;
43
+
44
+ expect(asFragment()).toMatchSnapshot();
45
+ });
46
+ test('rendering with "size"', function () {
47
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
48
+ name: "ZD-close2",
49
+ svgPrefix: "#",
50
+ size: "15"
51
+ })),
52
+ asFragment = _render5.asFragment;
53
+
54
+ expect(asFragment()).toMatchSnapshot();
55
+ });
56
+ test('rendering with "iconClass"', function () {
57
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
58
+ name: "ZD-close2",
59
+ svgPrefix: "#",
60
+ iconClass: "myIconClass"
61
+ })),
62
+ asFragment = _render6.asFragment;
63
+
64
+ expect(asFragment()).toMatchSnapshot();
65
+ });
66
+ test('rendering with "ariaHidden" false', function () {
67
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
68
+ name: "ZD-close2",
69
+ svgPrefix: "#",
70
+ a11y: {
71
+ ariaHidden: false
72
+ }
73
+ })),
74
+ asFragment = _render7.asFragment;
75
+
76
+ expect(asFragment()).toMatchSnapshot();
77
+ });
78
+ var titlePositions = ['top', 'bottom', 'left', 'right'];
79
+ test.each(titlePositions)('rendering with "titlePosition" - %s', function (titlePosition) {
80
+ var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
81
+ name: "ZD-close2",
82
+ svgPrefix: "#",
83
+ titlePosition: titlePosition
84
+ })),
85
+ asFragment = _render8.asFragment;
86
+
87
+ expect(asFragment()).toMatchSnapshot();
88
+ });
89
+ test('rendering with "tagAttributes"', function () {
90
+ var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
91
+ name: "ZD-close2",
92
+ svgPrefix: "#",
93
+ tagAttributes: {
94
+ 'data-custom-attr': 'true'
95
+ }
96
+ })),
97
+ asFragment = _render9.asFragment;
98
+
99
+ expect(asFragment()).toMatchSnapshot();
100
+ });
101
+ });
@@ -0,0 +1,200 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`SvgIcon - rendering the "default" props 1`] = `
4
+ <DocumentFragment>
5
+ <svg
6
+ aria-hidden="true"
7
+ class="svgIcon "
8
+ data-id="fontIcon"
9
+ data-selector-id="fontIcon"
10
+ data-test-id="fontIcon"
11
+ >
12
+ <use
13
+ href="undefinedundefined"
14
+ />
15
+ </svg>
16
+ </DocumentFragment>
17
+ `;
18
+
19
+ exports[`SvgIcon - rendering with "ariaHidden" false 1`] = `
20
+ <DocumentFragment>
21
+ <svg
22
+ aria-hidden="false"
23
+ class="svgIcon "
24
+ data-id="fontIcon"
25
+ data-selector-id="fontIcon"
26
+ data-test-id="fontIcon"
27
+ >
28
+ <use
29
+ href="#ZD-close2"
30
+ />
31
+ </svg>
32
+ </DocumentFragment>
33
+ `;
34
+
35
+ exports[`SvgIcon - rendering with "iconClass" 1`] = `
36
+ <DocumentFragment>
37
+ <svg
38
+ aria-hidden="true"
39
+ class="svgIcon myIconClass "
40
+ data-id="fontIcon"
41
+ data-selector-id="fontIcon"
42
+ data-test-id="fontIcon"
43
+ >
44
+ <use
45
+ href="#ZD-close2"
46
+ />
47
+ </svg>
48
+ </DocumentFragment>
49
+ `;
50
+
51
+ exports[`SvgIcon - rendering with "name" and "svgPrefix" 1`] = `
52
+ <DocumentFragment>
53
+ <svg
54
+ aria-hidden="true"
55
+ class="svgIcon "
56
+ data-id="fontIcon"
57
+ data-selector-id="fontIcon"
58
+ data-test-id="fontIcon"
59
+ >
60
+ <use
61
+ href="#ZD-close2"
62
+ />
63
+ </svg>
64
+ </DocumentFragment>
65
+ `;
66
+
67
+ exports[`SvgIcon - rendering with "size" 1`] = `
68
+ <DocumentFragment>
69
+ <svg
70
+ aria-hidden="true"
71
+ class="svgIcon "
72
+ data-id="fontIcon"
73
+ data-selector-id="fontIcon"
74
+ data-test-id="fontIcon"
75
+ style="--zd-iconfont-size: var(--zd_font_size15);"
76
+ >
77
+ <use
78
+ href="#ZD-close2"
79
+ />
80
+ </svg>
81
+ </DocumentFragment>
82
+ `;
83
+
84
+ exports[`SvgIcon - rendering with "tagAttributes" 1`] = `
85
+ <DocumentFragment>
86
+ <svg
87
+ aria-hidden="true"
88
+ class="svgIcon "
89
+ data-custom-attr="true"
90
+ data-id="fontIcon"
91
+ data-selector-id="fontIcon"
92
+ data-test-id="fontIcon"
93
+ >
94
+ <use
95
+ href="#ZD-close2"
96
+ />
97
+ </svg>
98
+ </DocumentFragment>
99
+ `;
100
+
101
+ exports[`SvgIcon - rendering with "title" 1`] = `
102
+ <DocumentFragment>
103
+ <svg
104
+ aria-hidden="true"
105
+ class="svgIcon "
106
+ data-id="fontIcon"
107
+ data-selector-id="fontIcon"
108
+ data-test-id="fontIcon"
109
+ data-title="Close"
110
+ >
111
+ <use
112
+ href="#ZD-close2"
113
+ />
114
+ </svg>
115
+ </DocumentFragment>
116
+ `;
117
+
118
+ exports[`SvgIcon - rendering with "titlePosition" - bottom 1`] = `
119
+ <DocumentFragment>
120
+ <svg
121
+ aria-hidden="true"
122
+ class="svgIcon "
123
+ data-id="fontIcon"
124
+ data-selector-id="fontIcon"
125
+ data-test-id="fontIcon"
126
+ data-title-position="bottom"
127
+ >
128
+ <use
129
+ href="#ZD-close2"
130
+ />
131
+ </svg>
132
+ </DocumentFragment>
133
+ `;
134
+
135
+ exports[`SvgIcon - rendering with "titlePosition" - left 1`] = `
136
+ <DocumentFragment>
137
+ <svg
138
+ aria-hidden="true"
139
+ class="svgIcon "
140
+ data-id="fontIcon"
141
+ data-selector-id="fontIcon"
142
+ data-test-id="fontIcon"
143
+ data-title-position="left"
144
+ >
145
+ <use
146
+ href="#ZD-close2"
147
+ />
148
+ </svg>
149
+ </DocumentFragment>
150
+ `;
151
+
152
+ exports[`SvgIcon - rendering with "titlePosition" - right 1`] = `
153
+ <DocumentFragment>
154
+ <svg
155
+ aria-hidden="true"
156
+ class="svgIcon "
157
+ data-id="fontIcon"
158
+ data-selector-id="fontIcon"
159
+ data-test-id="fontIcon"
160
+ data-title-position="right"
161
+ >
162
+ <use
163
+ href="#ZD-close2"
164
+ />
165
+ </svg>
166
+ </DocumentFragment>
167
+ `;
168
+
169
+ exports[`SvgIcon - rendering with "titlePosition" - top 1`] = `
170
+ <DocumentFragment>
171
+ <svg
172
+ aria-hidden="true"
173
+ class="svgIcon "
174
+ data-id="fontIcon"
175
+ data-selector-id="fontIcon"
176
+ data-test-id="fontIcon"
177
+ data-title-position="top"
178
+ >
179
+ <use
180
+ href="#ZD-close2"
181
+ />
182
+ </svg>
183
+ </DocumentFragment>
184
+ `;
185
+
186
+ exports[`SvgIcon - rendering with external sprite "svgPrefix" 1`] = `
187
+ <DocumentFragment>
188
+ <svg
189
+ aria-hidden="true"
190
+ class="svgIcon "
191
+ data-id="fontIcon"
192
+ data-selector-id="fontIcon"
193
+ data-test-id="fontIcon"
194
+ >
195
+ <use
196
+ href="/sprites.svg#ZD-close2"
197
+ />
198
+ </svg>
199
+ </DocumentFragment>
200
+ `;
package/lib/Icon/index.js CHANGED
@@ -5,14 +5,24 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports["default"] = void 0;
7
7
 
8
- var _react = _interopRequireDefault(require("react"));
8
+ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _FontFactory = require("./FontFactory");
11
11
 
12
12
  var _FontIcon = _interopRequireDefault(require("./FontIcon"));
13
13
 
14
+ var _IconContext = _interopRequireDefault(require("../Context/IconContext"));
15
+
16
+ var _SvgIcon = _interopRequireDefault(require("./SvgIcon"));
17
+
18
+ var _constants = require("@zohodesk/dotkit/es/utils/constants");
19
+
14
20
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
15
21
 
22
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
23
+
24
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
+
16
26
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
17
27
 
18
28
  function getAddforms() {
@@ -270,6 +280,41 @@ function getIcon(props) {
270
280
  }
271
281
 
272
282
  function Icon(props) {
283
+ var iconContext = (0, _react.useContext)(_IconContext["default"]);
284
+
285
+ var _ref = iconContext || _constants.DUMMY_OBJECT,
286
+ type = _ref.type,
287
+ svgIconPrefix = _ref.svgIconPrefix,
288
+ svgIconClass = _ref.svgIconClass;
289
+
290
+ var name = props.name,
291
+ onClick = props.onClick,
292
+ title = props.title,
293
+ dataId = props.dataId,
294
+ dataSelectorId = props.dataSelectorId,
295
+ size = props.size,
296
+ _props$iconClass = props.iconClass,
297
+ iconClass = _props$iconClass === void 0 ? '' : _props$iconClass,
298
+ titlePosition = props.titlePosition,
299
+ tagAttributes = props.tagAttributes,
300
+ a11y = props.a11y;
301
+
302
+ if (type === 'svgIcon') {
303
+ return /*#__PURE__*/_react["default"].createElement(_SvgIcon["default"], {
304
+ name: name,
305
+ onClick: onClick,
306
+ title: title,
307
+ dataId: dataId,
308
+ dataSelectorId: dataSelectorId,
309
+ size: size,
310
+ iconClass: "".concat(svgIconClass, " ").concat(iconClass),
311
+ titlePosition: titlePosition,
312
+ tagAttributes: tagAttributes,
313
+ a11y: a11y,
314
+ svgPrefix: svgIconPrefix
315
+ });
316
+ }
317
+
273
318
  var _getIcon = getIcon(props),
274
319
  IconComponent = _getIcon.IconComponent;
275
320