@deque/cauldron-react 6.6.1 → 6.7.0-canary.2c00ffa4

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/README.md CHANGED
@@ -22,6 +22,10 @@ yarn add @deque/cauldron-react @deque/cauldron-styles
22
22
 
23
23
  To get started, follow our [usage guide](https://cauldron.dequelabs.com/#usage) that includes setup instructions and necessary dependencies. Further documentation is also available at [cauldron.dequelabs.com](https://cauldron.dequelabs.com) that includes documentation for every available Cauldron component.
24
24
 
25
+ ## Attribution
26
+
27
+ Some Cauldron icons use Font Awesome Free and Font Awesome Pro. Their licenses can be found here: [Font Awesome Free License](https://fontawesome.com/license/free) and [Font Awesome Pro License](https://fontawesome.com/license).
28
+
25
29
  ## Contribute
26
30
 
27
31
  If you're interested in contributing to Cauldron, you can check out our [contribution guide](https://github.com/dequelabs/cauldron/blob/develop/CONTRIBUTING.md) as well as our [code of conduct](https://github.com/dequelabs/cauldron/blob/develop/CODE_OF_CONDUCT.md).
@@ -1,10 +1,15 @@
1
1
  import React from 'react';
2
2
  import { SyntaxHighlighterProps } from 'react-syntax-highlighter';
3
+ import type { ContentNode } from '../../types';
4
+ import CopyButton from '../CopyButton';
3
5
  type Props = {
4
6
  children: string;
5
7
  language?: 'javascript' | 'css' | 'html' | 'yaml';
6
8
  className?: string;
7
9
  scrollable?: boolean;
10
+ label?: ContentNode;
11
+ allowCopy?: boolean;
12
+ copyButtonProps?: React.ComponentProps<typeof CopyButton>;
8
13
  } & SyntaxHighlighterProps & React.HTMLAttributes<HTMLDivElement>;
9
14
  declare const Code: React.ComponentType<React.PropsWithChildren<Props>>;
10
15
  export default Code;
@@ -2,6 +2,6 @@
2
2
  * GENERATED CODE. DO NOT EDIT DIRECTLY!
3
3
  */
4
4
  /** IconType represents each valid icon type. */
5
- export type IconType = 'add-user' | 'arrow-circle-up' | 'arrow-circle-down' | 'arrow-circle-left' | 'arrow-circle-right' | 'arrow-up' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrows-alt' | 'bolt' | 'caution' | 'check-circle' | 'check-shield' | 'check-solid' | 'check' | 'checkbox-checked' | 'checkbox-unchecked' | 'chevron-double-up' | 'chevron-double-down' | 'chevron-double-left' | 'chevron-double-right' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'clipboard' | 'clock' | 'close' | 'code' | 'copy' | 'download' | 'dropper' | 'exchange' | 'export-solid' | 'external-link' | 'eye' | 'filter-solid' | 'filter' | 'flag' | 'gears' | 'github' | 'grid' | 'hamburger-menu' | 'hashtag' | 'highlight' | 'info-circle-alt' | 'info-circle' | 'info-square' | 'kabob' | 'link' | 'linkedin' | 'list' | 'lock' | 'magnifying-glass' | 'menu' | 'minus' | 'new-releases' | 'new' | 'no' | 'pencil' | 'person-running' | 'play' | 'plus' | 'question-circle-alt' | 'question-circle' | 'radio-checked' | 'radio-unchecked' | 'recycle-square' | 'recycle' | 'resend' | 'robot' | 'run-again' | 'save' | 'share-nodes' | 'share' | 'sort-triangle' | 'sort' | 'star' | 'step-back' | 'step-forward' | 'sun' | 'table-sort-ascending' | 'table-sort-descending' | 'tag' | 'target' | 'trash' | 'triangle-up' | 'triangle-down' | 'triangle-left' | 'triangle-right' | 'twitter' | 'upload';
5
+ export type IconType = 'add-user' | 'arrow-circle-up' | 'arrow-circle-down' | 'arrow-circle-left' | 'arrow-circle-right' | 'arrow-up' | 'arrow-down' | 'arrow-left' | 'arrow-right' | 'arrows-alt' | 'bolt' | 'caution' | 'check-circle' | 'check-shield' | 'check-solid' | 'check' | 'checkbox-checked' | 'checkbox-unchecked' | 'chevron-double-up' | 'chevron-double-down' | 'chevron-double-left' | 'chevron-double-right' | 'chevron-up' | 'chevron-down' | 'chevron-left' | 'chevron-right' | 'clipboard' | 'clock' | 'close' | 'code' | 'copy' | 'download' | 'dropper' | 'exchange' | 'export-solid' | 'external-link' | 'eye' | 'filter-solid' | 'filter' | 'flag' | 'gears' | 'github' | 'grid' | 'hamburger-menu' | 'hashtag' | 'highlight' | 'images' | 'info-circle-alt' | 'info-circle' | 'info-square' | 'kabob' | 'link' | 'linkedin' | 'list' | 'lock' | 'magnifying-glass' | 'menu' | 'minus' | 'new-releases' | 'new' | 'no' | 'pencil' | 'person-running' | 'play' | 'plus' | 'question-circle-alt' | 'question-circle' | 'radio-checked' | 'radio-unchecked' | 'recycle-square' | 'recycle' | 'resend' | 'robot' | 'run-again' | 'save' | 'share-nodes' | 'share' | 'sort-triangle' | 'sort' | 'star' | 'step-back' | 'step-forward' | 'sun' | 'table-sort-ascending' | 'table-sort-descending' | 'tag' | 'target' | 'trash' | 'triangle-up' | 'triangle-down' | 'triangle-left' | 'triangle-right' | 'twitter' | 'upload';
6
6
  /** iconTypes holds each valid icon type. */
7
7
  export declare const iconTypes: string[];
package/lib/images.js ADDED
@@ -0,0 +1,37 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ function _interopNamespace(e) {
6
+ if (e && e.__esModule) return e;
7
+ var n = Object.create(null);
8
+ if (e) {
9
+ Object.keys(e).forEach(function (k) {
10
+ if (k !== 'default') {
11
+ var d = Object.getOwnPropertyDescriptor(e, k);
12
+ Object.defineProperty(n, k, d.get ? d : {
13
+ enumerable: true,
14
+ get: function () { return e[k]; }
15
+ });
16
+ }
17
+ });
18
+ }
19
+ n["default"] = e;
20
+ return Object.freeze(n);
21
+ }
22
+
23
+ var React__namespace = /*#__PURE__*/_interopNamespace(React);
24
+
25
+ var _path;
26
+ 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); }
27
+ const SvgImages = props => /*#__PURE__*/React__namespace.createElement("svg", _extends({
28
+ xmlns: "http://www.w3.org/2000/svg",
29
+ viewBox: "0 0 576 512",
30
+ height: 24,
31
+ width: 24
32
+ }, props), _path || (_path = /*#__PURE__*/React__namespace.createElement("path", {
33
+ d: "M160 32c-35.3 0-64 28.7-64 64v224c0 35.3 28.7 64 64 64h352c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H160zm236 106.7 96 144c4.9 7.4 5.4 16.8 1.2 24.6S480.9 320 472 320H200c-9.2 0-17.6-5.3-21.6-13.6s-2.9-18.2 2.9-25.4l64-80c4.6-5.7 11.4-9 18.7-9s14.2 3.3 18.7 9l17.3 21.6 56-84c4.5-6.6 12-10.6 20-10.6s15.5 4 20 10.7zM192 128a32 32 0 1 1 64 0 32 32 0 1 1-64 0zm-144-8c0-13.3-10.7-24-24-24S0 106.7 0 120v224c0 75.1 60.9 136 136 136h320c13.3 0 24-10.7 24-24s-10.7-24-24-24H136c-48.6 0-88-39.4-88-88V120z",
34
+ fill: "currentColor"
35
+ })));
36
+
37
+ exports["default"] = SvgImages;
package/lib/index.js CHANGED
@@ -149,6 +149,7 @@ var iconTypes = [
149
149
  'hamburger-menu',
150
150
  'hashtag',
151
151
  'highlight',
152
+ 'images',
152
153
  'info-circle-alt',
153
154
  'info-circle',
154
155
  'info-square',
@@ -234,6 +235,7 @@ function __variableDynamicImportRuntime0__(path) {
234
235
  case './icons/hamburger-menu.svg': return Promise.resolve().then(function () { return require('./hamburger-menu.js'); });
235
236
  case './icons/hashtag.svg': return Promise.resolve().then(function () { return require('./hashtag.js'); });
236
237
  case './icons/highlight.svg': return Promise.resolve().then(function () { return require('./highlight.js'); });
238
+ case './icons/images.svg': return Promise.resolve().then(function () { return require('./images.js'); });
237
239
  case './icons/info-circle-alt.svg': return Promise.resolve().then(function () { return require('./info-circle-alt.js'); });
238
240
  case './icons/info-circle.svg': return Promise.resolve().then(function () { return require('./info-circle.js'); });
239
241
  case './icons/info-square.svg': return Promise.resolve().then(function () { return require('./info-square.js'); });
@@ -2540,6 +2542,117 @@ var SearchField = React.forwardRef(function (_a, ref) {
2540
2542
  });
2541
2543
  SearchField.displayName = 'SearchField';
2542
2544
 
2545
+ /**
2546
+ * When a component needs to track an internal ref on a component that has a
2547
+ * forwarded ref, useSharedRef will return a MutableRefObject<T> that will
2548
+ * correctly invoke the parent ref as well providing an internal ref.
2549
+ *
2550
+ * @example
2551
+ * React.forwardRef(function Component({ children }, ref) {
2552
+ * const internalRef = useSharedRef<HTMLElement>(ref)
2553
+ * if (internalRef.current) {
2554
+ * // do something with the internal ref...
2555
+ * }
2556
+ * return (<div ref={internalRef}>...</div>)
2557
+ * })
2558
+ */
2559
+ function useSharedRef(ref) {
2560
+ var internalRef = React.useRef();
2561
+ React.useEffect(function () {
2562
+ setRef(ref, internalRef.current);
2563
+ }, [ref]);
2564
+ return internalRef;
2565
+ }
2566
+
2567
+ function copyTextToClipboard(text) {
2568
+ return tslib.__awaiter(this, void 0, void 0, function () {
2569
+ var copied, element, range, selection;
2570
+ return tslib.__generator(this, function (_a) {
2571
+ switch (_a.label) {
2572
+ case 0:
2573
+ copied = false;
2574
+ if (!('clipboard' in navigator)) return [3 /*break*/, 5];
2575
+ _a.label = 1;
2576
+ case 1:
2577
+ _a.trys.push([1, 3, , 4]);
2578
+ return [4 /*yield*/, navigator.clipboard.writeText(text)];
2579
+ case 2:
2580
+ _a.sent();
2581
+ copied = true;
2582
+ return [3 /*break*/, 4];
2583
+ case 3:
2584
+ _a.sent();
2585
+ return [3 /*break*/, 4];
2586
+ case 4: return [3 /*break*/, 6];
2587
+ case 5:
2588
+ element = document.createElement('span');
2589
+ element.textContent = text;
2590
+ element.setAttribute('aria-hidden', 'true');
2591
+ element.style.position = 'absolute';
2592
+ element.style.height = '1px';
2593
+ element.style.width = '1px';
2594
+ element.style.overflow = 'hidden';
2595
+ element.style.clip = 'rect(1px, 1px, 1px, 1px)';
2596
+ element.style.marginTop = '-1px';
2597
+ element.style.webkitUserSelect = 'text';
2598
+ element.style.userSelect = 'text';
2599
+ document.body.appendChild(element);
2600
+ range = document.createRange();
2601
+ selection = document.getSelection();
2602
+ range.selectNodeContents(element);
2603
+ selection === null || selection === void 0 ? void 0 : selection.addRange(range);
2604
+ try {
2605
+ document.execCommand(text);
2606
+ copied = true;
2607
+ }
2608
+ catch (ex) {
2609
+ // no fallback
2610
+ }
2611
+ element.remove();
2612
+ _a.label = 6;
2613
+ case 6: return [2 /*return*/, copied];
2614
+ }
2615
+ });
2616
+ });
2617
+ }
2618
+
2619
+ var NOTIFICATION_TIMEOUT_MS = 2000;
2620
+ var CopyButton = React.forwardRef(function (_a, ref) {
2621
+ var className = _a.className, value = _a.value, _b = _a.variant, variant = _b === void 0 ? 'tertiary' : _b, _c = _a.children, children = _c === void 0 ? 'Copy' : _c, _d = _a.notificationLabel, notificationLabel = _d === void 0 ? 'Copied' : _d, _e = _a.hideVisibleLabel, hideVisibleLabel = _e === void 0 ? false : _e, _f = _a.tooltipPlacement, tooltipPlacement = _f === void 0 ? 'auto' : _f, onCopy = _a.onCopy, props = tslib.__rest(_a, ["className", "value", "variant", "children", "notificationLabel", "hideVisibleLabel", "tooltipPlacement", "onCopy"]);
2622
+ var _g = tslib.__read(React.useState(false), 2), copied = _g[0], setCopied = _g[1];
2623
+ var copyButtonRef = useSharedRef(ref);
2624
+ var handleClick = React.useCallback(function () {
2625
+ copyTextToClipboard(value);
2626
+ setCopied(true);
2627
+ if (typeof onCopy === 'function') {
2628
+ onCopy(value);
2629
+ }
2630
+ }, [value, onCopy]);
2631
+ React.useEffect(function () {
2632
+ var timeoutId = setTimeout(function () {
2633
+ setCopied(false);
2634
+ }, NOTIFICATION_TIMEOUT_MS);
2635
+ return function () {
2636
+ clearTimeout(timeoutId);
2637
+ };
2638
+ }, [copied]);
2639
+ // The visibility of the tooltip only needs to be controlled
2640
+ // when we are visually displaying the notification label
2641
+ var showTooltip = hideVisibleLabel && !copied ? undefined : copied ? true : false;
2642
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2643
+ React__default["default"].createElement(Button, tslib.__assign({ className: classNames__default["default"](className, {
2644
+ 'Button--condensed': hideVisibleLabel
2645
+ }), ref: copyButtonRef, variant: variant, onClick: handleClick }, props),
2646
+ React__default["default"].createElement(Icon, { type: copied ? 'check-solid' : 'copy' }),
2647
+ hideVisibleLabel ? React__default["default"].createElement(Offscreen, null, children) : children),
2648
+ React__default["default"].createElement(Tooltip, { target: copyButtonRef, placement: tooltipPlacement, association: "none", show: showTooltip }, hideVisibleLabel && !copied ? children : notificationLabel),
2649
+ typeof document !== 'undefined' &&
2650
+ reactDom.createPortal(React__default["default"].createElement(Offscreen, { "aria-live": "polite" }, copied ? notificationLabel : ' '),
2651
+ // eslint-disable-next-line ssr-friendly/no-dom-globals-in-react-fc
2652
+ document.body)));
2653
+ });
2654
+ CopyButton.displayName = 'CopyButton';
2655
+
2543
2656
  SyntaxHighlighter__default["default"].registerLanguage('javascript', js__default["default"]);
2544
2657
  SyntaxHighlighter__default["default"].registerLanguage('css', css__default["default"]);
2545
2658
  SyntaxHighlighter__default["default"].registerLanguage('html', xml__default["default"]);
@@ -2547,9 +2660,10 @@ SyntaxHighlighter__default["default"].registerLanguage('yaml', yaml__default["de
2547
2660
  // HACK: This is a workaround for a bug in react-syntax-highlighter's types.
2548
2661
  var Highlighter = SyntaxHighlighter__default["default"];
2549
2662
  var Code = function (_a) {
2550
- var children = _a.children, className = _a.className, _b = _a.scrollable, scrollable = _b === void 0 ? false : _b, props = tslib.__rest(_a, ["children", "className", "scrollable"]);
2663
+ var children = _a.children, className = _a.className, _b = _a.scrollable, scrollable = _b === void 0 ? false : _b, label = _a.label, _c = _a.allowCopy, allowCopy = _c === void 0 ? false : _c, copyButtonProps = _a.copyButtonProps, props = tslib.__rest(_a, ["children", "className", "scrollable", "label", "allowCopy", "copyButtonProps"]);
2551
2664
  var ref = React.useRef(null);
2552
- var _c = tslib.__read(React.useState(false), 2), scrollableRegion = _c[0], setScrollableRegion = _c[1];
2665
+ var _d = tslib.__read(React.useState(false), 2), scrollableRegion = _d[0], setScrollableRegion = _d[1];
2666
+ var _e = tslib.__read(nextId.useId(1, 'code'), 1), id = _e[0];
2553
2667
  // react-syntax-highlighter does not provide direct access to its dom elements
2554
2668
  // via refs, but we can specify the wrapping tags to bypass this limitation
2555
2669
  // see: https://github.com/react-syntax-highlighter/react-syntax-highlighter/issues/335
@@ -2573,9 +2687,13 @@ var Code = function (_a) {
2573
2687
  setScrollableRegion(false);
2574
2688
  };
2575
2689
  }, [scrollable]);
2576
- return (React__default["default"].createElement(Highlighter, tslib.__assign({}, props, { PreTag: PreWithRef, useInlineStyles: false, className: classNames__default["default"]('Code', className, {
2577
- 'Code--scrollable': scrollable
2578
- }), tabIndex: scrollableRegion ? 0 : undefined }), children));
2690
+ return (React__default["default"].createElement(React__default["default"].Fragment, null,
2691
+ (label || allowCopy) && (React__default["default"].createElement("div", { className: "Code__Header" },
2692
+ label && React__default["default"].createElement("span", { id: "".concat(id, "-label") }, label),
2693
+ allowCopy && React__default["default"].createElement(CopyButton, tslib.__assign({ value: children }, copyButtonProps)))),
2694
+ React__default["default"].createElement(Highlighter, tslib.__assign({}, props, { PreTag: PreWithRef, useInlineStyles: false, className: classNames__default["default"]('Code', className, {
2695
+ 'Code--scrollable': scrollable
2696
+ }), tabIndex: scrollableRegion ? 0 : undefined }), children)));
2579
2697
  };
2580
2698
  Code.displayName = 'Code';
2581
2699
 
@@ -2585,28 +2703,6 @@ function AxeLoader() {
2585
2703
  React__default["default"].createElement("path", { fill: "currentColor", d: "M379 549.9h-27.6v-16.7c-7.4 13.5-22.8 20.2-39 20.2-37.1 0-58.9-28.9-58.9-61.6 0-36.5 26.4-61.4 58.9-61.4 21.1 0 34 11.2 39 20.5V434H379v115.9zm-97.8-57.4c0 14.3 10.3 35.2 35.2 35.2 15.4 0 25.5-8 30.8-18.6 2.7-5.1 4-10.5 4.4-16.2.2-5.5-.8-11.2-3.2-16.2-4.9-11-15.6-20.5-32.3-20.5-22.4 0-35 18.1-35 36.1v.2zM436.2 488.9l-39-54.8h33.3l22.6 35.6 22.6-35.6h32.9l-38.8 54.8 43.2 61h-34L453.1 510l-26.2 39.9h-33.5l42.8-61z" })));
2586
2704
  }
2587
2705
 
2588
- /**
2589
- * When a component needs to track an internal ref on a component that has a
2590
- * forwarded ref, useSharedRef will return a MutableRefObject<T> that will
2591
- * correctly invoke the parent ref as well providing an internal ref.
2592
- *
2593
- * @example
2594
- * React.forwardRef(function Component({ children }, ref) {
2595
- * const internalRef = useSharedRef<HTMLElement>(ref)
2596
- * if (internalRef.current) {
2597
- * // do something with the internal ref...
2598
- * }
2599
- * return (<div ref={internalRef}>...</div>)
2600
- * })
2601
- */
2602
- function useSharedRef(ref) {
2603
- var internalRef = React.useRef();
2604
- React.useEffect(function () {
2605
- setRef(ref, internalRef.current);
2606
- }, [ref]);
2607
- return internalRef;
2608
- }
2609
-
2610
2706
  var LoaderOverlay = React.forwardRef(function (_a, ref) {
2611
2707
  var className = _a.className, label = _a.label, children = _a.children, focusOnInitialRender = _a.focusOnInitialRender, _b = _a.focusTrap, focusTrap = _b === void 0 ? false : _b, other = tslib.__rest(_a, ["className", "label", "children", "focusOnInitialRender", "focusTrap"]);
2612
2708
  var overlayRef = useSharedRef(ref);
@@ -4120,95 +4216,6 @@ var TextEllipsis = React__default["default"].forwardRef(function (_a, ref) {
4120
4216
  });
4121
4217
  TextEllipsis.displayName = 'TextEllipsis';
4122
4218
 
4123
- function copyTextToClipboard(text) {
4124
- return tslib.__awaiter(this, void 0, void 0, function () {
4125
- var copied, element, range, selection;
4126
- return tslib.__generator(this, function (_a) {
4127
- switch (_a.label) {
4128
- case 0:
4129
- copied = false;
4130
- if (!('clipboard' in navigator)) return [3 /*break*/, 5];
4131
- _a.label = 1;
4132
- case 1:
4133
- _a.trys.push([1, 3, , 4]);
4134
- return [4 /*yield*/, navigator.clipboard.writeText(text)];
4135
- case 2:
4136
- _a.sent();
4137
- copied = true;
4138
- return [3 /*break*/, 4];
4139
- case 3:
4140
- _a.sent();
4141
- return [3 /*break*/, 4];
4142
- case 4: return [3 /*break*/, 6];
4143
- case 5:
4144
- element = document.createElement('span');
4145
- element.textContent = text;
4146
- element.setAttribute('aria-hidden', 'true');
4147
- element.style.position = 'absolute';
4148
- element.style.height = '1px';
4149
- element.style.width = '1px';
4150
- element.style.overflow = 'hidden';
4151
- element.style.clip = 'rect(1px, 1px, 1px, 1px)';
4152
- element.style.marginTop = '-1px';
4153
- element.style.webkitUserSelect = 'text';
4154
- element.style.userSelect = 'text';
4155
- document.body.appendChild(element);
4156
- range = document.createRange();
4157
- selection = document.getSelection();
4158
- range.selectNodeContents(element);
4159
- selection === null || selection === void 0 ? void 0 : selection.addRange(range);
4160
- try {
4161
- document.execCommand(text);
4162
- copied = true;
4163
- }
4164
- catch (ex) {
4165
- // no fallback
4166
- }
4167
- element.remove();
4168
- _a.label = 6;
4169
- case 6: return [2 /*return*/, copied];
4170
- }
4171
- });
4172
- });
4173
- }
4174
-
4175
- var NOTIFICATION_TIMEOUT_MS = 2000;
4176
- var CopyButton = React.forwardRef(function (_a, ref) {
4177
- var className = _a.className, value = _a.value, _b = _a.variant, variant = _b === void 0 ? 'tertiary' : _b, _c = _a.children, children = _c === void 0 ? 'Copy' : _c, _d = _a.notificationLabel, notificationLabel = _d === void 0 ? 'Copied' : _d, _e = _a.hideVisibleLabel, hideVisibleLabel = _e === void 0 ? false : _e, _f = _a.tooltipPlacement, tooltipPlacement = _f === void 0 ? 'auto' : _f, onCopy = _a.onCopy, props = tslib.__rest(_a, ["className", "value", "variant", "children", "notificationLabel", "hideVisibleLabel", "tooltipPlacement", "onCopy"]);
4178
- var _g = tslib.__read(React.useState(false), 2), copied = _g[0], setCopied = _g[1];
4179
- var copyButtonRef = useSharedRef(ref);
4180
- var handleClick = React.useCallback(function () {
4181
- copyTextToClipboard(value);
4182
- setCopied(true);
4183
- if (typeof onCopy === 'function') {
4184
- onCopy(value);
4185
- }
4186
- }, [value, onCopy]);
4187
- React.useEffect(function () {
4188
- var timeoutId = setTimeout(function () {
4189
- setCopied(false);
4190
- }, NOTIFICATION_TIMEOUT_MS);
4191
- return function () {
4192
- clearTimeout(timeoutId);
4193
- };
4194
- }, [copied]);
4195
- // The visibility of the tooltip only needs to be controlled
4196
- // when we are visually displaying the notification label
4197
- var showTooltip = hideVisibleLabel && !copied ? undefined : copied ? true : false;
4198
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
4199
- React__default["default"].createElement(Button, tslib.__assign({ className: classNames__default["default"](className, {
4200
- 'Button--condensed': hideVisibleLabel
4201
- }), ref: copyButtonRef, variant: variant, onClick: handleClick }, props),
4202
- React__default["default"].createElement(Icon, { type: copied ? 'check-solid' : 'copy' }),
4203
- hideVisibleLabel ? React__default["default"].createElement(Offscreen, null, children) : children),
4204
- React__default["default"].createElement(Tooltip, { target: copyButtonRef, placement: tooltipPlacement, association: "none", show: showTooltip }, hideVisibleLabel && !copied ? children : notificationLabel),
4205
- typeof document !== 'undefined' &&
4206
- reactDom.createPortal(React__default["default"].createElement(Offscreen, { "aria-live": "polite" }, copied ? notificationLabel : ' '),
4207
- // eslint-disable-next-line ssr-friendly/no-dom-globals-in-react-fc
4208
- document.body)));
4209
- });
4210
- CopyButton.displayName = 'CopyButton';
4211
-
4212
4219
  var LIGHT_THEME_CLASS = 'cauldron--theme-light';
4213
4220
  var DARK_THEME_CLASS = 'cauldron--theme-dark';
4214
4221
  var ThemeContext = React.createContext({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deque/cauldron-react",
3
- "version": "6.6.1",
3
+ "version": "6.7.0-canary.2c00ffa4",
4
4
  "license": "MPL-2.0",
5
5
  "description": "Fully accessible react components library for Deque Cauldron",
6
6
  "homepage": "https://cauldron.dequelabs.com/",