UNPKG

@assistant-ui/react

Version:

Open-source TypeScript/React library for building production-grade AI chat experiences

138 lines (137 loc) • 3.35 kB
"use client"; import { Primitive as Primitive$1 } from "../../utils/Primitive.js"; import { c } from "@assistant-ui/tap/react-shim/compiler-runtime"; import { forwardRef } from "@assistant-ui/tap/react-shim"; import { useAui, useAuiState } from "@assistant-ui/store"; import { jsx } from "react/jsx-runtime"; import { composeEventHandlers } from "radix-ui/internal"; // src/primitives/composer/ComposerQuote.tsx /** * Renders a container for the quoted text preview in the composer. * Only renders when a quote is set. * * @example * ```tsx * <ComposerPrimitive.Quote> * <ComposerPrimitive.QuoteText /> * <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss> * </ComposerPrimitive.Quote> * ``` */ const ComposerPrimitiveQuote = forwardRef((props, forwardedRef) => { const $ = c(3); if (!useAuiState(_temp)) return null; let t0; if ($[0] !== forwardedRef || $[1] !== props) { t0 = /* @__PURE__ */ jsx(Primitive$1.div, { ...props, ref: forwardedRef }); $[0] = forwardedRef; $[1] = props; $[2] = t0; } else t0 = $[2]; return t0; }); ComposerPrimitiveQuote.displayName = "ComposerPrimitive.Quote"; /** * Renders the quoted text content. * * @example * ```tsx * <ComposerPrimitive.QuoteText /> * ``` */ const ComposerPrimitiveQuoteText = forwardRef((t0, forwardedRef) => { const $ = c(7); let children; let props; if ($[0] !== t0) { ({children, ...props} = t0); $[0] = t0; $[1] = children; $[2] = props; } else { children = $[1]; props = $[2]; } const text = useAuiState(_temp2); if (!text) return null; const t1 = children ?? text; let t2; if ($[3] !== forwardedRef || $[4] !== props || $[5] !== t1) { t2 = /* @__PURE__ */ jsx(Primitive$1.span, { ...props, ref: forwardedRef, children: t1 }); $[3] = forwardedRef; $[4] = props; $[5] = t1; $[6] = t2; } else t2 = $[6]; return t2; }); ComposerPrimitiveQuoteText.displayName = "ComposerPrimitive.QuoteText"; /** * A button that clears the current quote from the composer. * * @example * ```tsx * <ComposerPrimitive.QuoteDismiss>×</ComposerPrimitive.QuoteDismiss> * ``` */ const ComposerPrimitiveQuoteDismiss = forwardRef((t0, forwardedRef) => { const $ = c(12); let onClick; let props; if ($[0] !== t0) { ({onClick, ...props} = t0); $[0] = t0; $[1] = onClick; $[2] = props; } else { onClick = $[1]; props = $[2]; } const aui = useAui(); let t1; if ($[3] !== aui) { t1 = () => { aui.composer.setQuote(void 0); }; $[3] = aui; $[4] = t1; } else t1 = $[4]; const handleDismiss = t1; let t2; if ($[5] !== handleDismiss || $[6] !== onClick) { t2 = composeEventHandlers(onClick, handleDismiss); $[5] = handleDismiss; $[6] = onClick; $[7] = t2; } else t2 = $[7]; let t3; if ($[8] !== forwardedRef || $[9] !== props || $[10] !== t2) { t3 = /* @__PURE__ */ jsx(Primitive$1.button, { type: "button", ...props, ref: forwardedRef, onClick: t2 }); $[8] = forwardedRef; $[9] = props; $[10] = t2; $[11] = t3; } else t3 = $[11]; return t3; }); ComposerPrimitiveQuoteDismiss.displayName = "ComposerPrimitive.QuoteDismiss"; function _temp(s) { return s.composer.quote; } function _temp2(s) { return s.composer.quote?.text; } export { ComposerPrimitiveQuote, ComposerPrimitiveQuoteDismiss, ComposerPrimitiveQuoteText }; //# sourceMappingURL=ComposerQuote.js.map