@cloudflare/component-tooltip 5.1.1 → 5.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # Change Log
2
2
 
3
+ ## 5.1.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 028f888926: Updated Tooltip to support portaling to fix stacking context bug
8
+
3
9
  ## 5.1.1
4
10
 
5
11
  ### Patch Changes
package/es/Tooltip.js CHANGED
@@ -1,6 +1,7 @@
1
1
  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); }
2
2
 
3
3
  import React from 'react';
4
+ import { createPortal } from 'react-dom';
4
5
  import PropTypes from 'prop-types';
5
6
  import { Button } from '@cloudflare/elements';
6
7
  import { createComponent } from '@cloudflare/style-container';
@@ -118,10 +119,26 @@ class Tooltip extends React.PureComponent {
118
119
  display,
119
120
  ariaLabel,
120
121
  Component = Button,
121
- componentRef
122
+ componentRef,
123
+ portal = false
122
124
  } = this.props;
123
125
  var id = this.props.id ? this.props.id : this.id;
124
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReactTooltip, {
126
+ return /*#__PURE__*/React.createElement(React.Fragment, null, portal ? /*#__PURE__*/createPortal( /*#__PURE__*/React.createElement(ReactTooltip, {
127
+ id: id,
128
+ disable: disable,
129
+ place: place,
130
+ type: type,
131
+ effect: anchored ? 'solid' : 'float',
132
+ className: className,
133
+ isCapture: isCapture,
134
+ delayHide: delayHide ? delayHide : null,
135
+ afterShow: afterShow,
136
+ afterHide: afterHide,
137
+ getContent: [() => message || getContent()],
138
+ onClick: this.props.onClick,
139
+ event: "click",
140
+ role: "status"
141
+ }), document.body) : /*#__PURE__*/React.createElement(ReactTooltip, {
125
142
  id: id,
126
143
  disable: disable,
127
144
  place: place,
@@ -205,7 +222,8 @@ Tooltip.propTypes = {
205
222
  Component: PropTypes.func,
206
223
  // Allow the Component element to be referenced from a parent. innerRef
207
224
  // is swallowed by createComponent.
208
- componentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object])
225
+ componentRef: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
226
+ portal: PropTypes.bool
209
227
  };
210
228
  Tooltip.defaultProps = {
211
229
  disable: false,
@@ -214,7 +232,8 @@ Tooltip.defaultProps = {
214
232
  anchored: true,
215
233
  isCapture: true,
216
234
  forceRebuild: false,
217
- delayShow: true
235
+ delayShow: true,
236
+ portal: false
218
237
  };
219
238
  Tooltip.displayName = 'Tooltip';
220
239
  export default createComponent(tooltipStyles, Tooltip);
package/index.d.ts CHANGED
@@ -21,6 +21,7 @@ interface TooltipProps extends React.CSSProperties, TfelaMProps {
21
21
  buttonProps?: React.ComponentProps<typeof Button>;
22
22
  Component?: React.ComponentType<any>;
23
23
  componentRef?: React.Ref<HTMLElement>;
24
+ portal?: boolean;
24
25
  }
25
26
 
26
27
  export const Tooltip: React.FC<TooltipProps>;
package/lib/Tooltip.js CHANGED
@@ -9,6 +9,8 @@ exports.tooltipStyles = exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
+ var _reactDom = require("react-dom");
13
+
12
14
  var _propTypes = _interopRequireDefault(require("prop-types"));
13
15
 
14
16
  var _elements = require("@cloudflare/elements");
@@ -178,9 +180,28 @@ var Tooltip = /*#__PURE__*/function (_React$PureComponent) {
178
180
  ariaLabel = _this$props.ariaLabel,
179
181
  _this$props$Component = _this$props.Component,
180
182
  Component = _this$props$Component === void 0 ? _elements.Button : _this$props$Component,
181
- componentRef = _this$props.componentRef;
183
+ componentRef = _this$props.componentRef,
184
+ _this$props$portal = _this$props.portal,
185
+ portal = _this$props$portal === void 0 ? false : _this$props$portal;
182
186
  var id = this.props.id ? this.props.id : this.id;
183
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_reactTooltip.default, {
187
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, portal ? /*#__PURE__*/(0, _reactDom.createPortal)( /*#__PURE__*/_react.default.createElement(_reactTooltip.default, {
188
+ id: id,
189
+ disable: disable,
190
+ place: place,
191
+ type: type,
192
+ effect: anchored ? 'solid' : 'float',
193
+ className: className,
194
+ isCapture: isCapture,
195
+ delayHide: delayHide ? delayHide : null,
196
+ afterShow: afterShow,
197
+ afterHide: afterHide,
198
+ getContent: [function () {
199
+ return message || getContent();
200
+ }],
201
+ onClick: this.props.onClick,
202
+ event: "click",
203
+ role: "status"
204
+ }), document.body) : /*#__PURE__*/_react.default.createElement(_reactTooltip.default, {
184
205
  id: id,
185
206
  disable: disable,
186
207
  place: place,
@@ -273,7 +294,8 @@ Tooltip.propTypes = {
273
294
  Component: _propTypes.default.func,
274
295
  // Allow the Component element to be referenced from a parent. innerRef
275
296
  // is swallowed by createComponent.
276
- componentRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object])
297
+ componentRef: _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]),
298
+ portal: _propTypes.default.bool
277
299
  };
278
300
  Tooltip.defaultProps = {
279
301
  disable: false,
@@ -282,7 +304,8 @@ Tooltip.defaultProps = {
282
304
  anchored: true,
283
305
  isCapture: true,
284
306
  forceRebuild: false,
285
- delayShow: true
307
+ delayShow: true,
308
+ portal: false
286
309
  };
287
310
  Tooltip.displayName = 'Tooltip';
288
311
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@cloudflare/component-tooltip",
3
3
  "description": "Cloudflare Tooltip Component",
4
- "version": "5.1.1",
4
+ "version": "5.1.2",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
7
7
  "author": "James Kyle <jkyle@cloudflare.com>",