
/**
 *   VERSION: 2.240.0-alpha.1
 *   BUILD_TIMESTAMP: 1780360168537
 *   BUILD_DATE: Tue Jun 02 2026 00:29:28 GMT+0000 (Coordinated Universal Time)
 *   BUILD_COMMIT: 758cedd37e00f49a728d704d9ed36884f0f12d79
 */
import { Z as T, R as w, j as m } from "../sheerid.js";
var y, h;
function R() {
  return h || (h = 1, y = function() {
    var a = document.getSelection();
    if (!a.rangeCount)
      return function() {
      };
    for (var e = document.activeElement, c = [], r = 0; r < a.rangeCount; r++)
      c.push(a.getRangeAt(r));
    switch (e.tagName.toUpperCase()) {
      // .toUpperCase handles XHTML
      case "INPUT":
      case "TEXTAREA":
        e.blur();
        break;
      default:
        e = null;
        break;
    }
    return a.removeAllRanges(), function() {
      a.type === "Caret" && a.removeAllRanges(), a.rangeCount || c.forEach(function(u) {
        a.addRange(u);
      }), e && e.focus();
    };
  }), y;
}
var g, v;
function D() {
  if (v) return g;
  v = 1;
  var a = R(), e = {
    "text/plain": "Text",
    "text/html": "Url",
    default: "Text"
  }, c = "Copy to clipboard: #{key}, Enter";
  function r(n) {
    var o = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
    return n.replace(/#{\s*key\s*}/g, o);
  }
  function u(n, o) {
    var s, b, C, d, l, t, p = !1;
    o || (o = {}), s = o.debug || !1;
    try {
      C = a(), d = document.createRange(), l = document.getSelection(), t = document.createElement("span"), t.textContent = n, t.ariaHidden = "true", t.style.all = "unset", t.style.position = "fixed", t.style.top = 0, t.style.clip = "rect(0, 0, 0, 0)", t.style.whiteSpace = "pre", t.style.webkitUserSelect = "text", t.style.MozUserSelect = "text", t.style.msUserSelect = "text", t.style.userSelect = "text", t.addEventListener("copy", function(i) {
        if (i.stopPropagation(), o.format)
          if (i.preventDefault(), typeof i.clipboardData > "u") {
            s && console.warn("unable to use e.clipboardData"), s && console.warn("trying IE specific stuff"), window.clipboardData.clearData();
            var f = e[o.format] || e.default;
            window.clipboardData.setData(f, n);
          } else
            i.clipboardData.clearData(), i.clipboardData.setData(o.format, n);
        o.onCopy && (i.preventDefault(), o.onCopy(i.clipboardData));
      }), document.body.appendChild(t), d.selectNodeContents(t), l.addRange(d);
      var x = document.execCommand("copy");
      if (!x)
        throw new Error("copy command was unsuccessful");
      p = !0;
    } catch (i) {
      s && console.error("unable to copy using execCommand: ", i), s && console.warn("trying IE specific stuff");
      try {
        window.clipboardData.setData(o.format || "text", n), o.onCopy && o.onCopy(window.clipboardData), p = !0;
      } catch (f) {
        s && console.error("unable to copy using clipboardData: ", f), s && console.error("falling back to prompt"), b = r("message" in o ? o.message : c), window.prompt(b, n);
      }
    } finally {
      l && (typeof l.removeRange == "function" ? l.removeRange(d) : l.removeAllRanges()), t && document.body.removeChild(t), C();
    }
    return p;
  }
  return g = u, g;
}
var S = D();
const E = /* @__PURE__ */ T(S), k = 2e3, _ = "sid-to-clipboard__notification-text sid-to-clipboard__notification-text--hidden", N = "sid-to-clipboard__notification-text sid-to-clipboard__notification-text--visible";
class U extends w.Component {
  notificationTimeout;
  timeoutRef;
  // VS Code wants "Timer" but tsc wants "number". TODO - figure out a fix to be more specific here.
  constructor(e) {
    super(e), this.doCopy = this.doCopy.bind(this), this.state = { isShowing: !1 }, e.notificationTimeout ? this.notificationTimeout = e.notificationTimeout : this.notificationTimeout = k;
  }
  componentWillUnmount() {
    clearTimeout(this.timeoutRef);
  }
  doCopy() {
    const { textToCopy: e } = this.props;
    E(e), this.setState(() => ({ isShowing: !0 })), clearTimeout(this.timeoutRef), this.timeoutRef = setTimeout(() => {
      this.setState(() => ({ isShowing: !1 }));
    }, this.notificationTimeout);
  }
  render() {
    const { isShowing: e } = this.state, { notificationText: c, children: r } = this.props;
    return /* @__PURE__ */ m.jsxs("div", { className: "sid-to-clipboard", children: [
      /* @__PURE__ */ m.jsx(
        "div",
        {
          className: `${e ? N : _}`,
          role: "status",
          "aria-live": "polite",
          "aria-atomic": !0,
          children: e && (c || "Copied")
        }
      ),
      /* @__PURE__ */ m.jsx(
        "div",
        {
          onClick: this.doCopy,
          onKeyPress: this.doCopy,
          role: "button",
          tabIndex: 0,
          className: "sid-to-clipboard__clickable-text sid-link",
          children: r || "Copy"
        }
      )
    ] });
  }
}
export {
  U as C
};
