import { ClipboardCopy16GradientGrayIcon } from '@cloudtower/icons-react';
import Icon from '../../core/Icon/index.js';
import Tooltip from '../../core/Tooltip/index.js';
import useParrotTranslation from '../../hooks/useParrotTranslation.js';
import React__default, { useState } from 'react';
import CopyToClipboard from 'react-copy-to-clipboard';

var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    }
  return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
const CopyTooltip = React__default.forwardRef(
  (props, ref) => {
    const { t } = useParrotTranslation();
    const {
      text,
      beforeTooltip = t("common.click_to_copy"),
      afterTooltip = t("common.copy_done"),
      children = /* @__PURE__ */ React__default.createElement(Icon, { src: ClipboardCopy16GradientGrayIcon }),
      tooltipProps,
      className
    } = props;
    const [tooltipText, setTooltipText] = useState(beforeTooltip);
    return /* @__PURE__ */ React__default.createElement(
      "span",
      {
        ref,
        onMouseEnter: () => setTooltipText(beforeTooltip),
        className
      },
      /* @__PURE__ */ React__default.createElement(Tooltip, __spreadProps(__spreadValues({}, tooltipProps), { title: tooltipText }), /* @__PURE__ */ React__default.createElement(
        CopyToClipboard,
        {
          text,
          onCopy: () => setTooltipText(afterTooltip)
        },
        children
      ))
    );
  }
);
var CopyTooltip$1 = CopyTooltip;

export { CopyTooltip$1 as default };
