Build NapCat Artifacts / Windows Loader Test (push) Canceled after 0s
Build NapCat Artifacts / Type Check & Test (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Framework (push) Canceled after 0s
Build NapCat Artifacts / Build NapCat.Shell (push) Canceled after 0s
89 lines
3.1 KiB
Plaintext
89 lines
3.1 KiB
Plaintext
"use client";
|
|
import {
|
|
useSnippet
|
|
} from "./chunk-NYSKDETM.mjs";
|
|
|
|
// src/snippet.tsx
|
|
import { useCallback, useMemo, cloneElement } from "react";
|
|
import { forwardRef } from "@heroui/system";
|
|
import { Tooltip } from "@heroui/tooltip";
|
|
import { CopyLinearIcon, CheckLinearIcon } from "@heroui/shared-icons";
|
|
import { Button } from "@heroui/button";
|
|
import { objectToDeps } from "@heroui/shared-utils";
|
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
var Snippet = forwardRef((props, ref) => {
|
|
const {
|
|
Component,
|
|
domRef,
|
|
preRef,
|
|
children,
|
|
slots,
|
|
classNames,
|
|
copied,
|
|
copyIcon = /* @__PURE__ */ jsx(CopyLinearIcon, {}),
|
|
checkIcon = /* @__PURE__ */ jsx(CheckLinearIcon, {}),
|
|
symbolBefore,
|
|
disableCopy,
|
|
disableTooltip,
|
|
hideSymbol,
|
|
hideCopyButton,
|
|
tooltipProps,
|
|
isMultiLine,
|
|
onCopy,
|
|
getSnippetProps,
|
|
getCopyButtonProps
|
|
} = useSnippet({ ...props, ref });
|
|
const TooltipContent = useCallback(
|
|
({ children: children2 }) => /* @__PURE__ */ jsx(Tooltip, { ...tooltipProps, isDisabled: copied || tooltipProps.isDisabled, children: children2 }),
|
|
[objectToDeps(tooltipProps)]
|
|
);
|
|
const contents = useMemo(() => {
|
|
if (hideCopyButton) {
|
|
return null;
|
|
}
|
|
const clonedCheckIcon = checkIcon && cloneElement(checkIcon, { className: slots.checkIcon() });
|
|
const clonedCopyIcon = copyIcon && cloneElement(copyIcon, { className: slots.copyIcon() });
|
|
const copyButton = /* @__PURE__ */ jsxs(Button, { ...getCopyButtonProps(), children: [
|
|
clonedCheckIcon,
|
|
clonedCopyIcon
|
|
] });
|
|
if (disableTooltip) {
|
|
return copyButton;
|
|
}
|
|
return /* @__PURE__ */ jsx(TooltipContent, { children: copyButton });
|
|
}, [
|
|
slots,
|
|
classNames == null ? void 0 : classNames.copyButton,
|
|
copied,
|
|
checkIcon,
|
|
copyIcon,
|
|
onCopy,
|
|
TooltipContent,
|
|
disableCopy,
|
|
disableTooltip,
|
|
hideCopyButton
|
|
]);
|
|
const preContent = useMemo(() => {
|
|
if (isMultiLine && children && Array.isArray(children)) {
|
|
return /* @__PURE__ */ jsx("div", { className: slots.content({ class: classNames == null ? void 0 : classNames.content }), children: children.map((t, index) => /* @__PURE__ */ jsxs("pre", { className: slots.pre({ class: classNames == null ? void 0 : classNames.pre }), children: [
|
|
!hideSymbol && /* @__PURE__ */ jsx("span", { className: slots.symbol({ class: classNames == null ? void 0 : classNames.symbol }), children: symbolBefore }),
|
|
t
|
|
] }, `${index}-${t}`)) });
|
|
}
|
|
return /* @__PURE__ */ jsxs("pre", { ref: preRef, className: slots.pre({ class: classNames == null ? void 0 : classNames.pre }), children: [
|
|
!hideSymbol && /* @__PURE__ */ jsx("span", { className: slots.symbol({ class: classNames == null ? void 0 : classNames.symbol }), children: symbolBefore }),
|
|
children
|
|
] });
|
|
}, [children, hideSymbol, isMultiLine, symbolBefore, classNames == null ? void 0 : classNames.pre, slots]);
|
|
return /* @__PURE__ */ jsxs(Component, { ref: domRef, ...getSnippetProps(), children: [
|
|
preContent,
|
|
contents
|
|
] });
|
|
});
|
|
Snippet.displayName = "HeroUI.Snippet";
|
|
var snippet_default = Snippet;
|
|
|
|
export {
|
|
snippet_default
|
|
};
|