Files
ruvnet--RuView/examples/frontend/src/icons/lucide.ts
T
ruv 04f205a05e refactor: move frontend/ to examples/frontend/
The Lit + Vite HOMECORE web UI is an example consumer of the
sensing stack, not a top-level deliverable — relocate it under
examples/ alongside the other sensor and dashboard demos.

Add an entry to examples/README.md so it's discoverable.

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-05-27 12:20:49 -04:00

40 lines
1020 B
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* Minimal Lucide icon wrapper.
* Import only the icons used by HOMECORE components — Vite tree-shakes the rest.
*/
export {
Activity,
BarChart3,
Book,
ChevronRight,
Grid2X2,
Home,
LayoutDashboard,
Settings,
Shield,
Sun,
Wifi,
Zap,
} from 'lucide';
/** Re-export the icon node type for consumers that need it. */
export type { IconNode as LucideIconNode } from 'lucide';
/**
* Render a Lucide icon as an SVG string suitable for Lit's `unsafeHTML`.
* Each icon is 24×24, no fill, stroke = currentColor, stroke-width = 2.
*/
export function iconSvg(
paths: string,
{ size = 24, label }: { size?: number; label?: string } = {},
): string {
const ariaAttrs = label
? `role="img" aria-label="${label}"`
: `aria-hidden="true"`;
return `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}"
viewBox="0 0 24 24" fill="none" stroke="currentColor"
stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
${ariaAttrs}>${paths}</svg>`;
}