@elliemae/ds-tooltip 2.0.0-alpha.1 → 2.0.0-alpha.13

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/cjs/index.js CHANGED
@@ -6,6 +6,7 @@ var DSTooltip = require('./v1/DSTooltip.js');
6
6
  var DSTooltip$1 = require('./v2/DSTooltip.js');
7
7
  var tooltipPositions = require('./v2/utils/tooltipPositions.js');
8
8
  var TooltipType = require('./v2/TooltipType.js');
9
+ var index = require('./v3/index.js');
9
10
 
10
11
 
11
12
 
@@ -13,8 +14,10 @@ exports.DSTooltip = DSTooltip.DSTooltip;
13
14
  exports.TooltipContainer = DSTooltip.TooltipContainer;
14
15
  exports.TooltipText = DSTooltip.TooltipText;
15
16
  exports.TooltipWithSchema = DSTooltip.TooltipWithSchema;
16
- exports.default = DSTooltip.DSTooltip;
17
+ exports["default"] = DSTooltip.DSTooltip;
17
18
  exports.DSTooltipV2 = DSTooltip$1.DSTooltipV2;
18
19
  exports.TooltipV2WithSchema = DSTooltip$1.TooltipV2WithSchema;
19
20
  exports.tooltipPositions = tooltipPositions.tooltipPositions;
20
21
  exports.TooltipType = TooltipType.TooltipType;
22
+ exports.DSTooltipV3 = index.DSTooltipV3;
23
+ exports.DSTooltipV3WithSchema = index.DSTooltipV3WithSchema;
@@ -2,17 +2,20 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
5
10
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
11
  var _jsx = require('@babel/runtime/helpers/jsx');
7
12
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
13
  require('react');
9
14
  var reactDesc = require('react-desc');
10
15
  var dsClassnames = require('@elliemae/ds-classnames');
11
- var getComponentFromProps = require('@elliemae/ds-utilities/getComponentFromProps');
16
+ var dsUtilities = require('@elliemae/ds-utilities');
12
17
  var constants = require('@elliemae/ds-shared/constants');
13
18
  var DSPopper = require('@elliemae/ds-popper');
14
- var interaction = require('@elliemae/ds-popper/interaction');
15
- var positions = require('@elliemae/ds-popper/positions');
16
19
  var TooltipType = require('./TooltipType.js');
17
20
  var jsxRuntime = require('react/jsx-runtime');
18
21
 
@@ -21,14 +24,13 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
21
24
  var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
22
25
  var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
23
26
  var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
24
- var getComponentFromProps__default = /*#__PURE__*/_interopDefaultLegacy(getComponentFromProps);
25
27
  var DSPopper__default = /*#__PURE__*/_interopDefaultLegacy(DSPopper);
26
28
 
27
29
  const _excluded = ["containerProps", "innerRef", "placement", "title", "delayClose", "delayOpen", "interactionType", "triggerComponent", "className", "isOpen", "onOpen", "springAnimationComponent", "tooltipType", "showArrow", "zIndex"];
28
30
 
29
31
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
30
32
 
31
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
33
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
32
34
  const blockName = 'tooltip';
33
35
  const TooltipContainer = dsClassnames.aggregatedClasses('div')(blockName, false, false, {
34
36
  propsToRemoveFromFinalElement: ['isHovered', 'isDragged']
@@ -55,7 +57,7 @@ const DSTooltip = _ref => {
55
57
  showArrow = true,
56
58
  zIndex
57
59
  } = _ref,
58
- otherTooltipProps = _objectWithoutProperties__default['default'](_ref, _excluded);
60
+ otherTooltipProps = _objectWithoutProperties__default["default"](_ref, _excluded);
59
61
 
60
62
  const {
61
63
  cssClassName: tooltipBlockName
@@ -63,13 +65,13 @@ const DSTooltip = _ref => {
63
65
  let Content = title;
64
66
 
65
67
  if (typeof title === 'string') {
66
- Content = /*#__PURE__*/_jsx__default['default'](TooltipText, {}, void 0, title);
68
+ Content = /*#__PURE__*/_jsx__default["default"](TooltipText, {}, void 0, title);
67
69
  }
68
70
 
69
- return /*#__PURE__*/_jsx__default['default'](DSPopper__default['default'], {
71
+ return /*#__PURE__*/_jsx__default["default"](DSPopper__default["default"], {
70
72
  blockName: tooltipBlockName,
71
73
  contentComponent: /*#__PURE__*/jsxRuntime.jsx(TooltipContainer, _objectSpread(_objectSpread(_objectSpread({}, containerProps), otherTooltipProps), {}, {
72
- className: `tooltip-container--${tooltipType} ${className}`,
74
+ className: "tooltip-container--".concat(tooltipType, " ").concat(className),
73
75
  innerRef: innerRef,
74
76
  children: Content
75
77
  })),
@@ -81,21 +83,19 @@ const DSTooltip = _ref => {
81
83
  placement: placement,
82
84
  showArrow: tooltipType === TooltipType.TooltipType.TOOLTIP ? showArrow : false,
83
85
  springAnimationComponent: springAnimationComponent,
84
- triggerComponent: getComponentFromProps__default['default'](triggerComponent),
86
+ triggerComponent: dsUtilities.getComponentFromProps(triggerComponent),
85
87
  zIndex: zIndex
86
88
  });
87
89
  };
88
90
 
89
91
  const tooltipProps = {
90
92
  containerProps: reactDesc.PropTypes.object.description('Set of Properties attached to the main container'),
91
- placement: reactDesc.PropTypes.oneOf(positions.positions).description('Tooltip position').defaultValue(DSPopper.PopperPositions.TOP),
93
+ placement: reactDesc.PropTypes.oneOf(DSPopper.positions).description('Tooltip position').defaultValue(DSPopper.PopperPositions.TOP),
92
94
  title: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.element]).description('Tooltip content').isRequired,
93
95
  delayClose: reactDesc.PropTypes.string.description('Delay to close the tooltip').defaultValue(constants.DEFAULT_DELAY_CLOSE),
94
96
  delayOpen: reactDesc.PropTypes.string.description('Delay to open the tooltip ').defaultValue(constants.DEFAULT_DELAY_OPEN),
95
- interactionType: reactDesc.PropTypes.oneOf(interaction.interactions).description('A type indicating how to open/close the tooltip').defaultValue(DSPopper.PopperInteractions.HOVER),
96
- triggerComponent: reactDesc.PropTypes.element.description(`The component that will open/close the tooltip.
97
- Cannot be used with disabled elements.
98
- https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled`).isRequired,
97
+ interactionType: reactDesc.PropTypes.oneOf(DSPopper.interactions).description('A type indicating how to open/close the tooltip').defaultValue(DSPopper.PopperInteractions.HOVER),
98
+ triggerComponent: reactDesc.PropTypes.element.description("The component that will open/close the tooltip. \n Cannot be used with disabled elements. \n https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled").isRequired,
99
99
  isOpen: reactDesc.PropTypes.bool.description('Whether the tooltip is visible or not').defaultValue(undefined),
100
100
  onOpen: reactDesc.PropTypes.func.description('Handler when the tooltip opens'),
101
101
  springAnimationComponent: reactDesc.PropTypes.element.description('Spring animation component'),
@@ -112,4 +112,4 @@ exports.DSTooltip = DSTooltip;
112
112
  exports.TooltipContainer = TooltipContainer;
113
113
  exports.TooltipText = TooltipText;
114
114
  exports.TooltipWithSchema = TooltipWithSchema;
115
- exports['default'] = DSTooltip;
115
+ exports["default"] = DSTooltip;
@@ -4,6 +4,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var _jsx = require('@babel/runtime/helpers/jsx');
6
6
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
+ require('core-js/modules/web.dom-collections.iterator.js');
8
+ require('core-js/modules/esnext.async-iterator.filter.js');
9
+ require('core-js/modules/esnext.iterator.constructor.js');
10
+ require('core-js/modules/esnext.iterator.filter.js');
11
+ require('core-js/modules/esnext.async-iterator.for-each.js');
12
+ require('core-js/modules/esnext.iterator.for-each.js');
7
13
  var react = require('react');
8
14
  var reactDesc = require('react-desc');
9
15
  var DSPortal = require('@elliemae/ds-portal');
@@ -25,25 +31,26 @@ var DSPortal__default = /*#__PURE__*/_interopDefaultLegacy(DSPortal);
25
31
 
26
32
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
27
33
 
28
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default['default'](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
34
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
29
35
 
30
- const DSTooltipV2 = ({
31
- containerProps = {},
32
- innerRef,
33
- placement = tooltipPositions.tooltipPositions.BOTTOM,
34
- title = '',
35
- delayClose = constants.DEFAULT_DELAY_CLOSE,
36
- delayOpen = constants.DEFAULT_DELAY_OPEN,
37
- triggerComponent = null,
38
- className = '',
39
- getIsOpen = () => null,
40
- onOpen = () => null,
41
- tooltipType = TooltipType.TooltipType.TOOLTIP,
42
- showArrow = true,
43
- offset = [0, 14],
44
- zIndex = 10,
45
- extraModifiers = {}
46
- }) => {
36
+ const DSTooltipV2 = _ref => {
37
+ let {
38
+ containerProps = {},
39
+ innerRef,
40
+ placement = tooltipPositions.tooltipPositions.BOTTOM,
41
+ title = '',
42
+ delayClose = constants.DEFAULT_DELAY_CLOSE,
43
+ delayOpen = constants.DEFAULT_DELAY_OPEN,
44
+ triggerComponent = null,
45
+ className = '',
46
+ getIsOpen = () => null,
47
+ onOpen = () => null,
48
+ tooltipType = TooltipType.TooltipType.TOOLTIP,
49
+ showArrow = true,
50
+ offset = [0, 14],
51
+ zIndex = 10,
52
+ extraModifiers = {}
53
+ } = _ref;
47
54
  const [showTooltip, setShowTooltip] = react.useState(false);
48
55
  const [isAnimating, setIsAnimating] = react.useState(false);
49
56
  const [referenceElement, setReferenceElement] = react.useState(triggerComponent);
@@ -110,7 +117,7 @@ const DSTooltipV2 = ({
110
117
  onBlur: handleShowTooltipOff,
111
118
  onKeyDown: handleKeyDown,
112
119
  children: triggerComponent
113
- }), isAnimating || showTooltip ? /*#__PURE__*/_jsx__default['default'](DSPortal__default['default'], {}, void 0, /*#__PURE__*/jsxRuntime.jsx(styles.StyledTooltipContainer, _objectSpread(_objectSpread(_objectSpread({
120
+ }), isAnimating || showTooltip ? /*#__PURE__*/_jsx__default["default"](DSPortal__default["default"], {}, void 0, /*#__PURE__*/jsxRuntime.jsx(styles.StyledTooltipContainer, _objectSpread(_objectSpread(_objectSpread({
114
121
  className: className,
115
122
  showTooltip: showTooltip,
116
123
  tooltipType: tooltipType,
@@ -120,11 +127,11 @@ const DSTooltipV2 = ({
120
127
  zIndex
121
128
  })
122
129
  }, containerProps), attributes.popper), {}, {
123
- children: /*#__PURE__*/_jsx__default['default'](styles.StyledAnimatedTooltip, {
130
+ children: /*#__PURE__*/_jsx__default["default"](styles.StyledAnimatedTooltip, {
124
131
  showTooltip: showTooltip,
125
132
  "data-testid": "ds-tooltip",
126
133
  onAnimationEnd: checkAnimationStatus
127
- }, void 0, /*#__PURE__*/_jsx__default['default'](styles.StyledTooltipText, {}, void 0, title), tooltipType === TooltipType.TooltipType.TOOLTIP && showArrow ? /*#__PURE__*/_jsx__default['default'](DSTooltipArrow.DSTooltipArrow, {
134
+ }, void 0, /*#__PURE__*/_jsx__default["default"](styles.StyledTooltipText, {}, void 0, title), tooltipType === TooltipType.TooltipType.TOOLTIP && showArrow ? /*#__PURE__*/_jsx__default["default"](DSTooltipArrow.DSTooltipArrow, {
128
135
  arrowElementRef: setArrowElement,
129
136
  style: styles$1.arrow,
130
137
  placement: attributes.popper ? attributes.popper['data-popper-placement'] : 'bottom'
@@ -13,24 +13,27 @@ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
13
13
 
14
14
  var _svg;
15
15
 
16
- const DSTooltipArrow = ({
17
- placement,
18
- style,
19
- arrowElementRef
20
- }) => /*#__PURE__*/jsxRuntime.jsx(styles.StyledTooltipArrow, {
21
- "data-placement": placement,
22
- style: style,
23
- ref: arrowElementRef,
24
- "data-testid": "ds-tooltip-arrow",
25
- children: _svg || (_svg = /*#__PURE__*/_jsx__default['default']("svg", {
26
- viewBox: "0 0 30 30"
27
- }, void 0, /*#__PURE__*/_jsx__default['default']("path", {
28
- className: "stroke",
29
- d: "M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26 C26.7,29,24.6,28.1,23.7,27.1z"
30
- }), /*#__PURE__*/_jsx__default['default']("path", {
31
- className: "fill",
32
- d: "M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z"
33
- })))
34
- }, "popper-arrow");
16
+ const DSTooltipArrow = _ref => {
17
+ let {
18
+ placement,
19
+ style,
20
+ arrowElementRef
21
+ } = _ref;
22
+ return /*#__PURE__*/jsxRuntime.jsx(styles.StyledTooltipArrow, {
23
+ "data-placement": placement,
24
+ style: style,
25
+ ref: arrowElementRef,
26
+ "data-testid": "ds-tooltip-arrow",
27
+ children: _svg || (_svg = /*#__PURE__*/_jsx__default["default"]("svg", {
28
+ viewBox: "0 0 30 30"
29
+ }, void 0, /*#__PURE__*/_jsx__default["default"]("path", {
30
+ className: "stroke",
31
+ d: "M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26 C26.7,29,24.6,28.1,23.7,27.1z"
32
+ }), /*#__PURE__*/_jsx__default["default"]("path", {
33
+ className: "fill",
34
+ d: "M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z"
35
+ })))
36
+ }, "popper-arrow");
37
+ };
35
38
 
36
39
  exports.DSTooltipArrow = DSTooltipArrow;
@@ -13,9 +13,7 @@ const tooltipV2Props = {
13
13
  title: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.string, reactDesc.PropTypes.element]).description('Tooltip content').isRequired,
14
14
  delayClose: reactDesc.PropTypes.number.description('Delay to close the tooltip').defaultValue(constants.DEFAULT_DELAY_CLOSE),
15
15
  delayOpen: reactDesc.PropTypes.number.description('Delay to open the tooltip ').defaultValue(constants.DEFAULT_DELAY_OPEN),
16
- triggerComponent: reactDesc.PropTypes.element.description(`The component that will open/close the tooltip.
17
- Cannot be used with disabled elements.
18
- https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled`).isRequired,
16
+ triggerComponent: reactDesc.PropTypes.element.description("The component that will open/close the tooltip. \n Cannot be used with disabled elements. \n https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled").isRequired,
19
17
  getIsOpen: reactDesc.PropTypes.func.description('Whether the tooltip is visible or not'),
20
18
  onOpen: reactDesc.PropTypes.func.description('Callback when the tooltip opens'),
21
19
  showArrow: reactDesc.PropTypes.bool.description('Whether to show an arrow or not').defaultValue(true),
package/cjs/v2/styles.js CHANGED
@@ -2,61 +2,56 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _taggedTemplateLiteral = require('@babel/runtime/helpers/taggedTemplateLiteral');
5
6
  var styled = require('styled-components');
6
7
  var dsSystem = require('@elliemae/ds-system');
7
8
 
8
9
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
9
10
 
11
+ var _taggedTemplateLiteral__default = /*#__PURE__*/_interopDefaultLegacy(_taggedTemplateLiteral);
10
12
  var styled__default = /*#__PURE__*/_interopDefaultLegacy(styled);
11
13
 
12
- const showAnimation = dsSystem.kfrm`
13
- from {
14
- opacity: 0;
15
- transform: scale(0.8);
16
- }
17
-
18
- to {
19
- opacity: 1;
20
- transform: scale(1);
21
- visibility: visible;
22
- }
23
- `;
24
- const hideAnimation = dsSystem.kfrm`
25
- 0% {
26
- opacity: 1;
27
- transform: scale(1);
28
- }
29
-
30
- 100% {
31
- opacity: 0;
32
- transform: scale(0.8);
33
- }
34
- `;
35
- const StyledTooltipContainer = /*#__PURE__*/styled__default['default'].div.withConfig({
14
+ var _templateObject, _templateObject2, _templateObject3;
15
+ const showAnimation = dsSystem.kfrm(_templateObject || (_templateObject = _taggedTemplateLiteral__default["default"](["\n from {\n opacity: 0;\n transform: scale(0.8);\n }\n\n to {\n opacity: 1;\n transform: scale(1);\n visibility: visible;\n }\n"])));
16
+ const hideAnimation = dsSystem.kfrm(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral__default["default"](["\n 0% {\n opacity: 1;\n transform: scale(1);\n }\n\n 100% {\n opacity: 0;\n transform: scale(0.8);\n }\n"])));
17
+ const StyledTooltipContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
36
18
  componentId: "sc-1dtjf9j-0"
37
19
  })(["&[data-popper-reference-hidden='true']{display:none;pointer-events:none;}"]);
38
- const StyledAnimatedTooltip = /*#__PURE__*/styled__default['default'].div.withConfig({
20
+ const StyledAnimatedTooltip = /*#__PURE__*/styled__default["default"].div.withConfig({
39
21
  componentId: "sc-1dtjf9j-1"
40
- })(["text-align:center;min-width:", ";max-width:250px;min-height:24px;padding:", ";position:relative;background-color:white;border-radius:2px;font-size:13px;color:", ";box-shadow:0 1px 5px 0 rgb(0 0 0 / 13%),0 2px 4px 0 rgb(0 0 0 / 20%);filter:drop-shadow(0 4px 8px rgba(0,0,0,0.2));visibility:", ";", " transition:visibility 0.1s ease-in;"], ({
41
- theme
42
- }) => theme.space.l, ({
43
- theme
44
- }) => `${theme.space.xxxs} ${theme.space.xs}`, ({
45
- theme
46
- }) => theme.colors.neutral[600], ({
47
- showTooltip
48
- }) => showTooltip ? 'visible' : 'hidden', ({
49
- showTooltip
50
- }) => dsSystem.css`
51
- animation: ${showTooltip ? showAnimation : hideAnimation} 0.1s ease-in;
52
- `);
53
- const StyledTriggerComponentContainer = /*#__PURE__*/styled__default['default'].div.withConfig({
22
+ })(["text-align:center;min-width:", ";max-width:250px;min-height:24px;padding:", ";position:relative;background-color:white;border-radius:2px;font-size:13px;color:", ";box-shadow:0 1px 5px 0 rgb(0 0 0 / 13%),0 2px 4px 0 rgb(0 0 0 / 20%);filter:drop-shadow(0 4px 8px rgba(0,0,0,0.2));visibility:", ";", " transition:visibility 0.1s ease-in;"], _ref => {
23
+ let {
24
+ theme
25
+ } = _ref;
26
+ return theme.space.l;
27
+ }, _ref2 => {
28
+ let {
29
+ theme
30
+ } = _ref2;
31
+ return "".concat(theme.space.xxxs, " ").concat(theme.space.xs);
32
+ }, _ref3 => {
33
+ let {
34
+ theme
35
+ } = _ref3;
36
+ return theme.colors.neutral[600];
37
+ }, _ref4 => {
38
+ let {
39
+ showTooltip
40
+ } = _ref4;
41
+ return showTooltip ? 'visible' : 'hidden';
42
+ }, _ref5 => {
43
+ let {
44
+ showTooltip
45
+ } = _ref5;
46
+ return dsSystem.css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral__default["default"](["\n animation: ", " 0.1s ease-in;\n "])), showTooltip ? showAnimation : hideAnimation);
47
+ });
48
+ const StyledTriggerComponentContainer = /*#__PURE__*/styled__default["default"].div.withConfig({
54
49
  componentId: "sc-1dtjf9j-2"
55
50
  })(["display:inline-block;"]);
56
- const StyledTooltipText = /*#__PURE__*/styled__default['default'].div.withConfig({
51
+ const StyledTooltipText = /*#__PURE__*/styled__default["default"].div.withConfig({
57
52
  componentId: "sc-1dtjf9j-3"
58
53
  })(["white-space:normal;word-wrap:break-word;display:inline-block;"]);
59
- const StyledTooltipArrow = /*#__PURE__*/styled__default['default'].div.withConfig({
54
+ const StyledTooltipArrow = /*#__PURE__*/styled__default["default"].div.withConfig({
60
55
  componentId: "sc-1dtjf9j-4"
61
56
  })(["position:absolute;width:18px;height:18px;pointer-events:none;background-color:transparent;& .stroke{fill:white;}& .fill{fill:white;}&[data-placement^='top']{svg{transform:rotateZ(180deg);}top:98%;}&[data-placement^='right']{svg{transform:rotateZ(-90deg);}right:99.5%;}&[data-placement^='bottom']{bottom:97%;}&[data-placement^='left']{svg{transform:rotateZ(90deg);}left:99.5%;}"]);
62
57
 
@@ -2,7 +2,17 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- const setMultipleRefs = (...refs) => {
5
+ require('core-js/modules/esnext.async-iterator.filter.js');
6
+ require('core-js/modules/esnext.iterator.constructor.js');
7
+ require('core-js/modules/esnext.iterator.filter.js');
8
+ require('core-js/modules/esnext.async-iterator.for-each.js');
9
+ require('core-js/modules/esnext.iterator.for-each.js');
10
+
11
+ const setMultipleRefs = function () {
12
+ for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
13
+ refs[_key] = arguments[_key];
14
+ }
15
+
6
16
  const filteredRefs = refs.filter(Boolean);
7
17
  if (!filteredRefs.length) return null;
8
18
  if (filteredRefs.length === 0) return filteredRefs[0];
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const TooltipV3DatatestId = {
6
+ TRIGGER_WRAPPER: 'ds-tooltip-v3-trigger-wrapper',
7
+ TOOLTIP_TEXT_WRAPPER: 'ds-tooltip-v3-tooltip-text-wrapper'
8
+ };
9
+
10
+ exports.TooltipV3DatatestId = TooltipV3DatatestId;
@@ -0,0 +1,18 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var dsPropsHelpers = require('@elliemae/ds-props-helpers');
6
+
7
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
8
+ const noop = () => {};
9
+
10
+ const defaultProps = {
11
+ onOpen: noop,
12
+ onClose: noop,
13
+ id: '',
14
+ textAlign: 'left'
15
+ };
16
+ const useWithDefaultProps = props => dsPropsHelpers.useMemoMergePropsWithDefault(props, defaultProps);
17
+
18
+ exports.useWithDefaultProps = useWithDefaultProps;
@@ -0,0 +1,2 @@
1
+ 'use strict';
2
+
@@ -0,0 +1,128 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
6
+ var _jsx = require('@babel/runtime/helpers/jsx');
7
+ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
8
+ require('core-js/modules/web.dom-collections.iterator.js');
9
+ require('core-js/modules/esnext.async-iterator.filter.js');
10
+ require('core-js/modules/esnext.iterator.constructor.js');
11
+ require('core-js/modules/esnext.iterator.filter.js');
12
+ require('core-js/modules/esnext.async-iterator.for-each.js');
13
+ require('core-js/modules/esnext.iterator.for-each.js');
14
+ var react = require('react');
15
+ var dsPopperjs = require('@elliemae/ds-popperjs');
16
+ var reactDesc = require('react-desc');
17
+ var propsTypes = require('./propsTypes.js');
18
+ var useWithDefaultProps = require('./config/useWithDefaultProps.js');
19
+ var TooltipV3DatatestId = require('./TooltipV3DatatestId.js');
20
+ var styleds = require('./styleds.js');
21
+ var jsxRuntime = require('react/jsx-runtime');
22
+
23
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
+
25
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
26
+ var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
27
+ var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
28
+
29
+ var _StyledMouseOverDetec;
30
+
31
+ const _excluded = ["text", "children", "onOpen", "onClose", "id", "textAlign"];
32
+
33
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
34
+
35
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
36
+
37
+ const useGlobalKeyboardListener = func => {
38
+ react.useEffect(() => {
39
+ document.addEventListener('keydown', func);
40
+ return () => document.removeEventListener('keydown', func);
41
+ }, [func]);
42
+ };
43
+
44
+ const DSTooltipV3 = props => {
45
+ const _useWithDefaultProps = useWithDefaultProps.useWithDefaultProps(props),
46
+ {
47
+ text,
48
+ children,
49
+ onOpen,
50
+ onClose,
51
+ id,
52
+ textAlign
53
+ } = _useWithDefaultProps,
54
+ extraPopperJsProps = _objectWithoutProperties__default["default"](_useWithDefaultProps, _excluded);
55
+
56
+ const [isFocused, setIsFocused] = react.useState(false);
57
+ const [isHover, setIsHover] = react.useState(false);
58
+ const [latestOpenInteraction, setLatestOpenInteraction] = react.useState('');
59
+ const [referenceElement, setReferenceElement] = react.useState();
60
+ const [showPopover, setShowPopover] = react.useState(false);
61
+ const showTooltip = react.useCallback(() => {
62
+ setShowPopover(true);
63
+ onOpen();
64
+ }, [onOpen]);
65
+ const hideTooltip = react.useCallback(() => {
66
+ setShowPopover(false);
67
+ onClose();
68
+ }, [onClose]);
69
+ const onFocus = react.useCallback(() => {
70
+ setIsFocused(true);
71
+
72
+ if (!showPopover) {
73
+ showTooltip();
74
+ setLatestOpenInteraction('onFocus');
75
+ }
76
+ }, [showPopover, showTooltip]);
77
+ const onBlur = react.useCallback(() => {
78
+ setIsFocused(false);
79
+ if (!isHover || latestOpenInteraction === 'onFocus') hideTooltip();
80
+ }, [hideTooltip, isHover, latestOpenInteraction]);
81
+ const onMouseEnter = react.useCallback(() => {
82
+ setIsHover(true);
83
+
84
+ if (!showPopover) {
85
+ showTooltip();
86
+ setLatestOpenInteraction('onMouseEnter');
87
+ }
88
+ }, [showPopover, showTooltip]);
89
+ const onMouseLeave = react.useCallback(() => {
90
+ setIsHover(false);
91
+ if (!isFocused || latestOpenInteraction === 'onMouseEnter') hideTooltip();
92
+ }, [hideTooltip, isFocused, latestOpenInteraction]);
93
+ const handleEscKey = react.useCallback(_ref => {
94
+ let {
95
+ key
96
+ } = _ref;
97
+ if (key === 'Escape') hideTooltip();
98
+ }, [hideTooltip]);
99
+ useGlobalKeyboardListener(handleEscKey);
100
+ return /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
101
+ children: /*#__PURE__*/jsxRuntime.jsxs(styleds.StyledTriggerWrapper, {
102
+ onMouseEnter: onMouseEnter,
103
+ onMouseLeave: onMouseLeave,
104
+ onFocus: onFocus,
105
+ onBlur: onBlur,
106
+ ref: setReferenceElement,
107
+ "data-testid": "".concat(TooltipV3DatatestId.TooltipV3DatatestId.TRIGGER_WRAPPER).concat(id !== '' ? "_".concat(id) : ''),
108
+ children: [/*#__PURE__*/jsxRuntime.jsx(dsPopperjs.DSPopperJS, _objectSpread(_objectSpread({
109
+ referenceElement: referenceElement,
110
+ showPopover: showPopover,
111
+ withoutPortal: true
112
+ }, extraPopperJsProps), {}, {
113
+ children: /*#__PURE__*/_jsx__default["default"]("div", {
114
+ "data-testid": "".concat(TooltipV3DatatestId.TooltipV3DatatestId.TOOLTIP_TEXT_WRAPPER).concat(id !== '' ? "_".concat(id) : '')
115
+ }, void 0, /*#__PURE__*/_jsx__default["default"](styleds.StyledTooltipContainer, {}, void 0, /*#__PURE__*/_jsx__default["default"](styleds.StyledTooltipText, {
116
+ textAlign: textAlign
117
+ }, void 0, text), _StyledMouseOverDetec || (_StyledMouseOverDetec = /*#__PURE__*/_jsx__default["default"](styleds.StyledMouseOverDetectionBox, {}))))
118
+ })), children]
119
+ })
120
+ });
121
+ };
122
+
123
+ const DSTooltipV3WithSchema = reactDesc.describe(DSTooltipV3).description('A tooltip component');
124
+ DSTooltipV3WithSchema.propTypes = propsTypes.dsTooltipPropTypes;
125
+
126
+ exports.DSTooltipV3 = DSTooltipV3;
127
+ exports.DSTooltipV3WithSchema = DSTooltipV3WithSchema;
128
+ exports["default"] = DSTooltipV3;
@@ -0,0 +1,96 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var reactDesc = require('react-desc');
6
+
7
+ const dsTooltipPropTypes = {
8
+ /**
9
+ * Tooltip text to be displayed on hover/focus
10
+ */
11
+ text: reactDesc.PropTypes.string.description('Tooltip text to be displayed on hover/focus').isRequired,
12
+
13
+ /**
14
+ * Tooltip text alignment
15
+ */
16
+ textAlign: reactDesc.PropTypes.oneOf(['left', 'right', 'center', 'justify', 'initial', 'inherit']).description('Tooltip text alignment').defaultValue('left'),
17
+
18
+ /**
19
+ * Element to tie the tooltip to, must be a single node
20
+ */
21
+ children: reactDesc.PropTypes.node.description('Element to tie the tooltip to, must be a single node').isRequired,
22
+
23
+ /**
24
+ * Wheter or not the tooltip content should appear in a DOM portal or not
25
+ */
26
+ withoutPortal: reactDesc.PropTypes.bool.description('Whether or not the tooltip content should appear in a DOM portal or not').defaultValue(true),
27
+
28
+ /**
29
+ * Wheter or not the tooltip should use the arrow
30
+ */
31
+ withoutArrow: reactDesc.PropTypes.bool.description('Whether or not the tooltip should use the arrow').defaultValue(false),
32
+
33
+ /**
34
+ * Bounding element to calculate upon, defaults to it is "clippingParents",
35
+ * which are the scrolling containers that may cause the element to be partially or fully cut off.
36
+ */
37
+ boundaryElement: reactDesc.PropTypes.element.description('Bounding element to calculate upon, defaults to "clippingParents",' + 'which are the scrolling containers that may cause element to be partially or fully cut off').defaultValue(undefined),
38
+
39
+ /**
40
+ * Whether or not the popper context menu should be animated
41
+ */
42
+ withoutAnimation: reactDesc.PropTypes.bool.description('Whether or not the popper context menu should be animated').defaultValue(false),
43
+
44
+ /**
45
+ * Popper context menus Animation duration in ms
46
+ */
47
+ animationDuration: reactDesc.PropTypes.number.description('Popper context menus Animation duration in ms').defaultValue(100),
48
+
49
+ /**
50
+ * When using portal, the container in which to append the DOM content, defaults to document body
51
+ */
52
+ portalDOMContainer: reactDesc.PropTypes.element.description('When using portal, the container in which to append the DOM content, defaults to document body').defaultValue(undefined),
53
+
54
+ /**
55
+ * start placement preferences, as per popperjs placement option
56
+ */
57
+ startPlacementPreference: reactDesc.PropTypes.oneOf(['top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']).description('start placement preferences, as per popperjs placement option').defaultValue("'top'"),
58
+
59
+ /**
60
+ * Array of placement preferences, as per popperjs "flip" placement option
61
+ */
62
+ placementOrderPreference: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.oneOf(['top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'])).description('Array of placement preferences, as per popperjs "flip" placement option').defaultValue("['top', 'bottom', 'left', 'right']"),
63
+
64
+ /**
65
+ * tooltip wrapper z-index
66
+ */
67
+ zIndex: reactDesc.PropTypes.number.description('popperjs content z-index').defaultValue(1),
68
+
69
+ /**
70
+ * placement offset array
71
+ */
72
+ customOffset: reactDesc.PropTypes.arrayOf(reactDesc.PropTypes.number).description('placement offset array').defaultValue([0, 14]),
73
+
74
+ /**
75
+ * modifiers array for full-custom tooltip-js override
76
+ * https://tooltip.js.org/docs/v2/modifiers/
77
+ */
78
+ modifiers: reactDesc.PropTypes.array.description('modifiers array for full-custom tooltip-js override, https://tooltip.js.org/docs/v2/modifiers/').defaultValue(1),
79
+
80
+ /**
81
+ * Optional id appended to data-testid
82
+ */
83
+ id: reactDesc.PropTypes.string.description('Optional id appended to data-testid').defaultValue(''),
84
+
85
+ /**
86
+ * Optional callback to be invoked when the tooltip opens
87
+ */
88
+ onOpen: reactDesc.PropTypes.func.description('Optional callback to be invoked when the tooltip opens').defaultValue('() => {}'),
89
+
90
+ /**
91
+ * 'Optional callback to be invoked when the tooltip closes
92
+ */
93
+ onClose: reactDesc.PropTypes.func.description('Optional callback to be invoked when the tooltip closes').defaultValue('() => {}')
94
+ };
95
+
96
+ exports.dsTooltipPropTypes = dsTooltipPropTypes;