🚀. Socket Launch Week Day 3:Socket Firewall Now Blocks Malicious VS Code and Open VSX Extensions.Learn more
Sign In

@agent-format/renderer

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@agent-format/renderer - npm Package Compare versions

Comparing version
0.1.3
to
0.1.4
+109
-35
dist/index.cjs

@@ -24,4 +24,6 @@ "use strict";

AgentRenderer: () => AgentRenderer,
buildPrintableHtml: () => buildPrintableHtml,
downloadPrintableHtml: () => downloadPrintableHtml,
openInViewer: () => openInViewer,
printSvgAsPdf: () => printSvgAsPdf
useHost: () => useHost
});

@@ -422,10 +424,48 @@ module.exports = __toCommonJS(index_exports);

// src/host.ts
function fallbackOpenLink(url) {
try {
const w = window.open(url, "_blank", "noopener,noreferrer");
return Promise.resolve(Boolean(w));
} catch {
return Promise.resolve(false);
}
}
function fallbackDownload(params) {
try {
let blob;
if (params.blobBase64) {
const bin = atob(params.blobBase64);
const bytes = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);
blob = new Blob([bytes], { type: params.mimeType });
} else {
blob = new Blob([params.text ?? ""], { type: params.mimeType });
}
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = params.filename;
a.rel = "noopener";
document.body.appendChild(a);
a.click();
setTimeout(() => {
document.body.removeChild(a);
URL.revokeObjectURL(url);
}, 100);
return Promise.resolve(true);
} catch {
return Promise.resolve(false);
}
}
// src/actions.ts
var VIEWER_URL = "https://knorq-ai.github.io/agent-format/";
function openInViewer(data) {
async function openInViewer(data, host) {
const json = JSON.stringify(data);
const url = `${VIEWER_URL}#${encodeURIComponent(json)}`;
window.open(url, "_blank", "noopener,noreferrer");
if (host?.openLink) return host.openLink(url);
return fallbackOpenLink(url);
}
function printSvgAsPdf({
function buildPrintableHtml({
svgMarkup,

@@ -436,22 +476,9 @@ titleLabel,

margin = "15mm",
fontFamily = "'Yu Mincho', 'Hiragino Mincho ProN', 'MS PMincho', serif"
fontFamily = "'Yu Mincho', 'Hiragino Mincho ProN', 'MS PMincho', serif",
autoPrint = true
}) {
const w = window.open("", "_blank");
if (!w) {
alert(
"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u304C\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308B\u3002\u30D6\u30E9\u30A6\u30B6\u306E\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u8A31\u53EF\u3092\u78BA\u8A8D\u3057\u3066\u307B\u3057\u3044\u3002"
);
return;
}
const safeTitle = documentTitle.replace(
/[&<>"']/g,
(c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;"
);
const safeLabel = titleLabel.replace(
/[&<>"']/g,
(c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;"
);
w.document.open();
w.document.write(
`<!doctype html><html lang="ja"><head>
const safeTitle = escapeHtml(documentTitle);
const safeLabel = escapeHtml(titleLabel);
const autoPrintScript = autoPrint ? `<script>window.addEventListener('load', () => setTimeout(() => window.print(), 250));</script>` : "";
return `<!doctype html><html lang="ja"><head>
<meta charset="utf-8">

@@ -479,6 +506,36 @@ <title>${safeTitle}</title>

${svgMarkup}
<script>window.addEventListener('load', () => setTimeout(() => window.print(), 250));</script>
</body></html>`
${autoPrintScript}
</body></html>`;
}
async function downloadPrintableHtml({
svgMarkup,
titleLabel,
documentTitle,
filename,
host
}) {
const html = buildPrintableHtml({
svgMarkup,
titleLabel,
documentTitle,
autoPrint: true
});
if (host?.downloadFile) {
return host.downloadFile({
mimeType: "text/html",
text: html,
filename
});
}
return fallbackDownload({
mimeType: "text/html",
text: html,
filename
});
}
function escapeHtml(s) {
return s.replace(
/[&<>"']/g,
(c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;"
);
w.document.close();
}

@@ -508,2 +565,3 @@

const svgRef = (0, import_react.useRef)(null);
const host = useHost();
(0, import_react.useEffect)(() => {

@@ -523,6 +581,9 @@ if (!setHeaderActions) return;

const serialized = new XMLSerializer().serializeToString(svgEl);
printSvgAsPdf({
const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
void downloadPrintableHtml({
svgMarkup: serialized,
titleLabel: headerTitle,
documentTitle
documentTitle,
filename: `inheritance-diagram-${today}.html`,
host
});

@@ -537,3 +598,3 @@ };

onClick,
title: "\u5370\u5237\u30FBPDF \u4FDD\u5B58\u7528\u306E\u65B0\u3057\u3044\u30BF\u30D6\u3092\u958B\u304F\uFF08\u88C1\u5224\u6240\u63D0\u51FA\u7528 A3 \u6A2A\u66F8\u5F0F\uFF09",
title: "\u5370\u5237\u30FBPDF \u4FDD\u5B58\u7528\u306E HTML \u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\uFF08\u958B\u3044\u3066 \u2318P \u3067 PDF \u4FDD\u5B58\u3001\u88C1\u5224\u6240\u63D0\u51FA\u7528 A3 \u6A2A\u66F8\u5F0F\uFF09",
children: [

@@ -547,3 +608,3 @@ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { "aria-hidden": true, children: "\u2B07" }),

return () => setHeaderActions(null);
}, [setHeaderActions, section.id, section.label, persons.length, variant]);
}, [setHeaderActions, section.id, section.label, persons.length, variant, host]);
if (persons.length === 0) {

@@ -940,5 +1001,14 @@ return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "af-empty", children: "No persons in diagram." });

var import_jsx_runtime15 = require("react/jsx-runtime");
function AgentRenderer({ data, className, showOpenInViewer = true }) {
var HostContext = (0, import_react2.createContext)(void 0);
function useHost() {
return (0, import_react2.useContext)(HostContext);
}
function AgentRenderer({
data,
className,
host,
showOpenInViewer = true
}) {
const sections = [...data.sections].sort((a, b) => a.order - b.order);
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `af-root ${className ?? ""}`, children: [
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(HostContext.Provider, { value: host, children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: `af-root ${className ?? ""}`, children: [
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("header", { className: "af-header", children: [

@@ -957,3 +1027,5 @@ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "af-header-main", children: [

className: "af-action-btn",
onClick: () => openInViewer(data),
onClick: () => {
void openInViewer(data, host);
},
title: "Open this file in the public agent-format viewer (new tab)",

@@ -968,3 +1040,3 @@ children: [

/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "af-sections", children: sections.map((section) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(SectionFrame, { section }, section.id)) })
] });
] }) });
}

@@ -1028,5 +1100,7 @@ function SectionFrame({ section }) {

AgentRenderer,
buildPrintableHtml,
downloadPrintableHtml,
openInViewer,
printSvgAsPdf
useHost
});
//# sourceMappingURL=index.cjs.map

@@ -291,4 +291,23 @@ import * as react_jsx_runtime from 'react/jsx-runtime';

declare function openInViewer(data: AgentFile): void;
declare function printSvgAsPdf({ svgMarkup, titleLabel, documentTitle, pageSize, margin, fontFamily, }: {
interface HostBridge {
/**
* Request the host to open a URL in the user's default browser.
* Returns true on success, false if the host denied the request.
* In MCP Apps hosts this maps to `app.openLink({url})`.
*/
openLink?: (url: string) => Promise<boolean>;
/**
* Request the host to save a file to the user's disk.
* In MCP Apps hosts this maps to `app.downloadFile({...})`.
*/
downloadFile?: (params: {
mimeType: string;
text?: string;
blobBase64?: string;
filename: string;
}) => Promise<boolean>;
}
declare function openInViewer(data: AgentFile, host?: HostBridge): Promise<boolean>;
declare function buildPrintableHtml({ svgMarkup, titleLabel, documentTitle, pageSize, margin, fontFamily, autoPrint, }: {
svgMarkup: string;

@@ -300,4 +319,13 @@ titleLabel: string;

fontFamily?: string;
}): void;
autoPrint?: boolean;
}): string;
declare function downloadPrintableHtml({ svgMarkup, titleLabel, documentTitle, filename, host, }: {
svgMarkup: string;
titleLabel: string;
documentTitle: string;
filename: string;
host?: HostBridge;
}): Promise<boolean>;
declare function useHost(): HostBridge | undefined;
interface AgentRendererProps {

@@ -307,3 +335,9 @@ data: AgentFile;

/**
* Controls visibility of the header "Open in viewer" action.
* Host integration. Provide when running inside an MCP Apps iframe or
* other sandboxed environment where direct window.open / anchor
* downloads are blocked.
*/
host?: HostBridge;
/**
* Controls visibility of the header "Open in browser" action.
* Default: true. Set to false when the renderer is already used inside

@@ -314,3 +348,3 @@ * the public viewer itself (avoids a self-referential button).

}
declare function AgentRenderer({ data, className, showOpenInViewer }: AgentRendererProps): react_jsx_runtime.JSX.Element;
declare function AgentRenderer({ data, className, host, showOpenInViewer, }: AgentRendererProps): react_jsx_runtime.JSX.Element;
interface SectionViewExtras {

@@ -325,2 +359,2 @@ /**

export { type AgentConfig, type AgentFile, type AgentMemory, AgentRenderer, type AgentTask, type AgentTaskTrigger, type ChecklistGroup, type ChecklistItem, type ChecklistSection, type DiagramNode, type DiagramSection, type FormField, type FormSection, type FormSubmission, type InheritanceDiagramData, type InheritanceDiagramPerson, type InheritanceDiagramRelationship, type InheritanceDiagramSection, type KanbanColumn, type KanbanData, type KanbanItem, type KanbanItemComment, type KanbanLabel, type KanbanSection, type KanbanTeamMember, type LinkItem, type LinksSection, type LogEntry, type LogSection, type MetricCard, type MetricsSection, type NoteBlock, type NotesSection, type ReferenceFileItem, type ReferencesSection, type ReportEntry, type ReportSection, type Section, type SectionBase, type SectionType, type SectionViewExtras, type TableColumn, type TableColumnType, type TableSection, type TimelineItem, type TimelineMilestone, type TimelineSection, openInViewer, printSvgAsPdf };
export { type AgentConfig, type AgentFile, type AgentMemory, AgentRenderer, type AgentTask, type AgentTaskTrigger, type ChecklistGroup, type ChecklistItem, type ChecklistSection, type DiagramNode, type DiagramSection, type FormField, type FormSection, type FormSubmission, type HostBridge, type InheritanceDiagramData, type InheritanceDiagramPerson, type InheritanceDiagramRelationship, type InheritanceDiagramSection, type KanbanColumn, type KanbanData, type KanbanItem, type KanbanItemComment, type KanbanLabel, type KanbanSection, type KanbanTeamMember, type LinkItem, type LinksSection, type LogEntry, type LogSection, type MetricCard, type MetricsSection, type NoteBlock, type NotesSection, type ReferenceFileItem, type ReferencesSection, type ReportEntry, type ReportSection, type Section, type SectionBase, type SectionType, type SectionViewExtras, type TableColumn, type TableColumnType, type TableSection, type TimelineItem, type TimelineMilestone, type TimelineSection, buildPrintableHtml, downloadPrintableHtml, openInViewer, useHost };

@@ -291,4 +291,23 @@ import * as react_jsx_runtime from 'react/jsx-runtime';

declare function openInViewer(data: AgentFile): void;
declare function printSvgAsPdf({ svgMarkup, titleLabel, documentTitle, pageSize, margin, fontFamily, }: {
interface HostBridge {
/**
* Request the host to open a URL in the user's default browser.
* Returns true on success, false if the host denied the request.
* In MCP Apps hosts this maps to `app.openLink({url})`.
*/
openLink?: (url: string) => Promise<boolean>;
/**
* Request the host to save a file to the user's disk.
* In MCP Apps hosts this maps to `app.downloadFile({...})`.
*/
downloadFile?: (params: {
mimeType: string;
text?: string;
blobBase64?: string;
filename: string;
}) => Promise<boolean>;
}
declare function openInViewer(data: AgentFile, host?: HostBridge): Promise<boolean>;
declare function buildPrintableHtml({ svgMarkup, titleLabel, documentTitle, pageSize, margin, fontFamily, autoPrint, }: {
svgMarkup: string;

@@ -300,4 +319,13 @@ titleLabel: string;

fontFamily?: string;
}): void;
autoPrint?: boolean;
}): string;
declare function downloadPrintableHtml({ svgMarkup, titleLabel, documentTitle, filename, host, }: {
svgMarkup: string;
titleLabel: string;
documentTitle: string;
filename: string;
host?: HostBridge;
}): Promise<boolean>;
declare function useHost(): HostBridge | undefined;
interface AgentRendererProps {

@@ -307,3 +335,9 @@ data: AgentFile;

/**
* Controls visibility of the header "Open in viewer" action.
* Host integration. Provide when running inside an MCP Apps iframe or
* other sandboxed environment where direct window.open / anchor
* downloads are blocked.
*/
host?: HostBridge;
/**
* Controls visibility of the header "Open in browser" action.
* Default: true. Set to false when the renderer is already used inside

@@ -314,3 +348,3 @@ * the public viewer itself (avoids a self-referential button).

}
declare function AgentRenderer({ data, className, showOpenInViewer }: AgentRendererProps): react_jsx_runtime.JSX.Element;
declare function AgentRenderer({ data, className, host, showOpenInViewer, }: AgentRendererProps): react_jsx_runtime.JSX.Element;
interface SectionViewExtras {

@@ -325,2 +359,2 @@ /**

export { type AgentConfig, type AgentFile, type AgentMemory, AgentRenderer, type AgentTask, type AgentTaskTrigger, type ChecklistGroup, type ChecklistItem, type ChecklistSection, type DiagramNode, type DiagramSection, type FormField, type FormSection, type FormSubmission, type InheritanceDiagramData, type InheritanceDiagramPerson, type InheritanceDiagramRelationship, type InheritanceDiagramSection, type KanbanColumn, type KanbanData, type KanbanItem, type KanbanItemComment, type KanbanLabel, type KanbanSection, type KanbanTeamMember, type LinkItem, type LinksSection, type LogEntry, type LogSection, type MetricCard, type MetricsSection, type NoteBlock, type NotesSection, type ReferenceFileItem, type ReferencesSection, type ReportEntry, type ReportSection, type Section, type SectionBase, type SectionType, type SectionViewExtras, type TableColumn, type TableColumnType, type TableSection, type TimelineItem, type TimelineMilestone, type TimelineSection, openInViewer, printSvgAsPdf };
export { type AgentConfig, type AgentFile, type AgentMemory, AgentRenderer, type AgentTask, type AgentTaskTrigger, type ChecklistGroup, type ChecklistItem, type ChecklistSection, type DiagramNode, type DiagramSection, type FormField, type FormSection, type FormSubmission, type HostBridge, type InheritanceDiagramData, type InheritanceDiagramPerson, type InheritanceDiagramRelationship, type InheritanceDiagramSection, type KanbanColumn, type KanbanData, type KanbanItem, type KanbanItemComment, type KanbanLabel, type KanbanSection, type KanbanTeamMember, type LinkItem, type LinksSection, type LogEntry, type LogSection, type MetricCard, type MetricsSection, type NoteBlock, type NotesSection, type ReferenceFileItem, type ReferencesSection, type ReportEntry, type ReportSection, type Section, type SectionBase, type SectionType, type SectionViewExtras, type TableColumn, type TableColumnType, type TableSection, type TimelineItem, type TimelineMilestone, type TimelineSection, buildPrintableHtml, downloadPrintableHtml, openInViewer, useHost };
// src/index.tsx
import { useState } from "react";
import { createContext, useContext, useState } from "react";

@@ -395,10 +395,48 @@ // src/sections/KanbanSection.tsx

// src/host.ts
function fallbackOpenLink(url) {
try {
const w = window.open(url, "_blank", "noopener,noreferrer");
return Promise.resolve(Boolean(w));
} catch {
return Promise.resolve(false);
}
}
function fallbackDownload(params) {
try {
let blob;
if (params.blobBase64) {
const bin = atob(params.blobBase64);
const bytes = new Uint8Array(bin.length);
for (let i = 0; i < bin.length; i++) bytes[i] = bin.charCodeAt(i);
blob = new Blob([bytes], { type: params.mimeType });
} else {
blob = new Blob([params.text ?? ""], { type: params.mimeType });
}
const url = URL.createObjectURL(blob);
const a = document.createElement("a");
a.href = url;
a.download = params.filename;
a.rel = "noopener";
document.body.appendChild(a);
a.click();
setTimeout(() => {
document.body.removeChild(a);
URL.revokeObjectURL(url);
}, 100);
return Promise.resolve(true);
} catch {
return Promise.resolve(false);
}
}
// src/actions.ts
var VIEWER_URL = "https://knorq-ai.github.io/agent-format/";
function openInViewer(data) {
async function openInViewer(data, host) {
const json = JSON.stringify(data);
const url = `${VIEWER_URL}#${encodeURIComponent(json)}`;
window.open(url, "_blank", "noopener,noreferrer");
if (host?.openLink) return host.openLink(url);
return fallbackOpenLink(url);
}
function printSvgAsPdf({
function buildPrintableHtml({
svgMarkup,

@@ -409,22 +447,9 @@ titleLabel,

margin = "15mm",
fontFamily = "'Yu Mincho', 'Hiragino Mincho ProN', 'MS PMincho', serif"
fontFamily = "'Yu Mincho', 'Hiragino Mincho ProN', 'MS PMincho', serif",
autoPrint = true
}) {
const w = window.open("", "_blank");
if (!w) {
alert(
"\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u304C\u30D6\u30ED\u30C3\u30AF\u3055\u308C\u305F\u53EF\u80FD\u6027\u304C\u3042\u308B\u3002\u30D6\u30E9\u30A6\u30B6\u306E\u30DD\u30C3\u30D7\u30A2\u30C3\u30D7\u8A31\u53EF\u3092\u78BA\u8A8D\u3057\u3066\u307B\u3057\u3044\u3002"
);
return;
}
const safeTitle = documentTitle.replace(
/[&<>"']/g,
(c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;"
);
const safeLabel = titleLabel.replace(
/[&<>"']/g,
(c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;"
);
w.document.open();
w.document.write(
`<!doctype html><html lang="ja"><head>
const safeTitle = escapeHtml(documentTitle);
const safeLabel = escapeHtml(titleLabel);
const autoPrintScript = autoPrint ? `<script>window.addEventListener('load', () => setTimeout(() => window.print(), 250));</script>` : "";
return `<!doctype html><html lang="ja"><head>
<meta charset="utf-8">

@@ -452,6 +477,36 @@ <title>${safeTitle}</title>

${svgMarkup}
<script>window.addEventListener('load', () => setTimeout(() => window.print(), 250));</script>
</body></html>`
${autoPrintScript}
</body></html>`;
}
async function downloadPrintableHtml({
svgMarkup,
titleLabel,
documentTitle,
filename,
host
}) {
const html = buildPrintableHtml({
svgMarkup,
titleLabel,
documentTitle,
autoPrint: true
});
if (host?.downloadFile) {
return host.downloadFile({
mimeType: "text/html",
text: html,
filename
});
}
return fallbackDownload({
mimeType: "text/html",
text: html,
filename
});
}
function escapeHtml(s) {
return s.replace(
/[&<>"']/g,
(c) => c === "&" ? "&amp;" : c === "<" ? "&lt;" : c === ">" ? "&gt;" : c === '"' ? "&quot;" : "&#39;"
);
w.document.close();
}

@@ -481,2 +536,3 @@

const svgRef = useRef(null);
const host = useHost();
useEffect(() => {

@@ -496,6 +552,9 @@ if (!setHeaderActions) return;

const serialized = new XMLSerializer().serializeToString(svgEl);
printSvgAsPdf({
const today = (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
void downloadPrintableHtml({
svgMarkup: serialized,
titleLabel: headerTitle,
documentTitle
documentTitle,
filename: `inheritance-diagram-${today}.html`,
host
});

@@ -510,3 +569,3 @@ };

onClick,
title: "\u5370\u5237\u30FBPDF \u4FDD\u5B58\u7528\u306E\u65B0\u3057\u3044\u30BF\u30D6\u3092\u958B\u304F\uFF08\u88C1\u5224\u6240\u63D0\u51FA\u7528 A3 \u6A2A\u66F8\u5F0F\uFF09",
title: "\u5370\u5237\u30FBPDF \u4FDD\u5B58\u7528\u306E HTML \u3092\u30C0\u30A6\u30F3\u30ED\u30FC\u30C9\uFF08\u958B\u3044\u3066 \u2318P \u3067 PDF \u4FDD\u5B58\u3001\u88C1\u5224\u6240\u63D0\u51FA\u7528 A3 \u6A2A\u66F8\u5F0F\uFF09",
children: [

@@ -520,3 +579,3 @@ /* @__PURE__ */ jsx13("span", { "aria-hidden": true, children: "\u2B07" }),

return () => setHeaderActions(null);
}, [setHeaderActions, section.id, section.label, persons.length, variant]);
}, [setHeaderActions, section.id, section.label, persons.length, variant, host]);
if (persons.length === 0) {

@@ -913,5 +972,14 @@ return /* @__PURE__ */ jsx13("p", { className: "af-empty", children: "No persons in diagram." });

import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
function AgentRenderer({ data, className, showOpenInViewer = true }) {
var HostContext = createContext(void 0);
function useHost() {
return useContext(HostContext);
}
function AgentRenderer({
data,
className,
host,
showOpenInViewer = true
}) {
const sections = [...data.sections].sort((a, b) => a.order - b.order);
return /* @__PURE__ */ jsxs14("div", { className: `af-root ${className ?? ""}`, children: [
return /* @__PURE__ */ jsx15(HostContext.Provider, { value: host, children: /* @__PURE__ */ jsxs14("div", { className: `af-root ${className ?? ""}`, children: [
/* @__PURE__ */ jsxs14("header", { className: "af-header", children: [

@@ -930,3 +998,5 @@ /* @__PURE__ */ jsxs14("div", { className: "af-header-main", children: [

className: "af-action-btn",
onClick: () => openInViewer(data),
onClick: () => {
void openInViewer(data, host);
},
title: "Open this file in the public agent-format viewer (new tab)",

@@ -941,3 +1011,3 @@ children: [

/* @__PURE__ */ jsx15("div", { className: "af-sections", children: sections.map((section) => /* @__PURE__ */ jsx15(SectionFrame, { section }, section.id)) })
] });
] }) });
}

@@ -1000,5 +1070,7 @@ function SectionFrame({ section }) {

AgentRenderer,
buildPrintableHtml,
downloadPrintableHtml,
openInViewer,
printSvgAsPdf
useHost
};
//# sourceMappingURL=index.js.map
{
"name": "@agent-format/renderer",
"version": "0.1.3",
"version": "0.1.4",
"description": "React renderer for the agent file format (.agent).",

@@ -5,0 +5,0 @@ "license": "MIT",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display