Sign In

@neeter/react

Package Overview
Dependencies
Maintainers
1
Versions
34
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@neeter/react - npm Package Compare versions

Comparing version
0.10.3
to
0.10.4
+3
-0
dist/markdown-overrides.js

@@ -8,2 +8,5 @@ import { jsx as _jsx } from "react/jsx-runtime";

strong: ({ children }) => _jsx("strong", { className: "font-semibold", children: children }),
table: ({ children }) => (_jsx("table", { className: "mb-2 w-full border-collapse text-sm last:mb-0", children: children })),
th: ({ children }) => (_jsx("th", { className: "border border-border px-2 py-1 text-left font-semibold bg-muted/50", children: children })),
td: ({ children }) => _jsx("td", { className: "border border-border px-2 py-1", children: children }),
};
+2
-1
import { jsx as _jsx } from "react/jsx-runtime";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";
import { cn } from "./cn.js";

@@ -7,3 +8,3 @@ import { markdownComponents } from "./markdown-overrides.js";

const isUser = role === "user";
return (_jsx("div", { className: cn("flex", isUser ? "justify-end" : "justify-start", className), children: _jsx("div", { className: cn("max-w-[85%] rounded-lg px-3 py-2 text-sm overflow-hidden break-words", isUser ? "bg-primary text-primary-foreground" : "bg-muted text-foreground"), children: isUser ? (_jsx("span", { className: "whitespace-pre-wrap", children: content })) : (_jsx("div", { className: "[&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(Markdown, { components: markdownComponents, children: content }) })) }) }));
return (_jsx("div", { className: cn("flex", isUser ? "justify-end" : "justify-start", className), children: _jsx("div", { className: cn("max-w-[85%] rounded-lg px-3 py-2 text-sm overflow-hidden break-words", isUser ? "bg-primary text-primary-foreground" : "bg-muted text-foreground"), children: isUser ? (_jsx("span", { className: "whitespace-pre-wrap", children: content })) : (_jsx("div", { className: "[&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(Markdown, { remarkPlugins: [remarkGfm], components: markdownComponents, children: content }) })) }) }));
}
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { useCallback, useState } from "react";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";
import { cn } from "./cn.js";

@@ -37,3 +38,3 @@ import { ChevronIcon } from "./icons.js";

function ThinkingContent({ children }) {
return (_jsx("div", { className: "text-xs text-muted-foreground/70 italic [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(Markdown, { components: markdownComponents, children: children }) }));
return (_jsx("div", { className: "text-xs text-muted-foreground/70 italic [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(Markdown, { remarkPlugins: [remarkGfm], components: markdownComponents, children: children }) }));
}
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import Markdown from "react-markdown";
import remarkGfm from "remark-gfm";
import { markdownComponents } from "../markdown-overrides.js";

@@ -37,3 +38,3 @@ import { registerWidget } from "../registry.js";

const url = typeof input.url === "string" ? input.url : null;
return (_jsxs("div", { className: "py-1 space-y-1.5 text-xs", children: [url && (_jsxs("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center gap-1.5 rounded-full bg-accent px-2.5 py-1 text-[11px] leading-none whitespace-nowrap max-w-[280px] text-muted-foreground no-underline hover:bg-accent/80 hover:text-primary transition-colors", children: [_jsx("img", { src: faviconUrl(url), alt: "", width: 14, height: 14, className: "rounded-full shrink-0" }), _jsx("span", { className: "truncate", children: domain(url) })] })), _jsx("div", { className: "text-foreground leading-relaxed [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(Markdown, { components: markdownComponents, children: result }) })] }));
return (_jsxs("div", { className: "py-1 space-y-1.5 text-xs", children: [url && (_jsxs("a", { href: url, target: "_blank", rel: "noopener noreferrer", className: "inline-flex items-center gap-1.5 rounded-full bg-accent px-2.5 py-1 text-[11px] leading-none whitespace-nowrap max-w-[280px] text-muted-foreground no-underline hover:bg-accent/80 hover:text-primary transition-colors", children: [_jsx("img", { src: faviconUrl(url), alt: "", width: 14, height: 14, className: "rounded-full shrink-0" }), _jsx("span", { className: "truncate", children: domain(url) })] })), _jsx("div", { className: "text-foreground leading-relaxed [&>*:first-child]:mt-0 [&>*:last-child]:mb-0", children: _jsx(Markdown, { remarkPlugins: [remarkGfm], components: markdownComponents, children: result }) })] }));
}

@@ -40,0 +41,0 @@ registerWidget({

{
"name": "@neeter/react",
"version": "0.10.3",
"version": "0.10.4",
"description": "React components and hooks for building chat UIs on top of the Claude Agent SDK",

@@ -29,3 +29,3 @@ "license": "MIT",

"tailwind-merge": "^3.4.0",
"@neeter/types": "0.10.3"
"@neeter/types": "0.10.4"
},

@@ -36,2 +36,3 @@ "peerDependencies": {

"react-markdown": ">=10.0.0",
"remark-gfm": "^4.0.1",
"zustand": ">=5.0.0"

@@ -47,2 +48,3 @@ },

"react-dom": "^19.2.4",
"remark-gfm": "^4.0.1",
"zustand": "^5.0.11"

@@ -49,0 +51,0 @@ },