Files
paseo/packages/plugin/src/index.ts
T
Mohamed Boudra b6dde61a7f feat(plugins): accept inline SVG and component icons (#7368)
Every contribution `icon` now takes a Lucide name, `{ svg }`, or a
component. Attachment sources take only the first two because composer
drafts persist the source icon.

The daemon's provider-icon check and the app's inline-SVG check are the
same function in the shared SDK root, so a plugin sees the same reasons
in both places. The app parses each icon once at registration and fails
the plugin with that reason. Rendering goes through one module that
turns any form into a component, so surfaces never branch on the form.
2026-10-19 15:36:04 +07:00

30 lines
908 B
TypeScript

// Shared SDK entry. Keep runtime-specific imports and re-exports on /client or /server.
export type {
PluginTheme,
PluginWorkspaceSnapshot,
PluginAgentSnapshot,
PluginThemeColors,
PluginThemeContribution,
PluginAttachmentSourceContribution,
PluginTimelineData,
PluginTimelineItem,
PluginTimelineTransformResult,
PluginCleanup,
} from "./contracts.js";
export { defineSettings, settingsRpc, type SettingsDefinition } from "./settings.js";
export {
defineAttachmentSource,
PluginAttachmentItemSchema,
PluginAttachmentSearchPayloadSchema,
type PluginAttachmentItem,
type PluginAttachmentSearchPayload,
} from "./attachments.js";
export { defineRpc, type PluginRpcContract, type RpcInput, type RpcOutput } from "./rpc.js";
export {
findSvgIconProblem,
PLUGIN_SVG_ICON_MAX_BYTES,
type PluginIconProps,
type PluginSerializableIcon,
type PluginSvgIcon,
} from "./icons.js";