diff --git a/packages/svelte/scripts/exportTemplate.mts b/packages/svelte/scripts/exportTemplate.mts
index ef046a584..14a08a6f5 100644
--- a/packages/svelte/scripts/exportTemplate.mts
+++ b/packages/svelte/scripts/exportTemplate.mts
@@ -9,14 +9,23 @@ export default defineExportTemplate(
return `\
${getHTMLBanner()}
+
+
-
+
`;
},
);
diff --git a/packages/svelte/tests/lucide-svelte.spec.ts b/packages/svelte/tests/lucide-svelte.spec.ts
index 4713a05bf..f0a269283 100644
--- a/packages/svelte/tests/lucide-svelte.spec.ts
+++ b/packages/svelte/tests/lucide-svelte.spec.ts
@@ -1,6 +1,7 @@
import { describe, it, expect, afterEach } from 'vitest';
import { render, cleanup } from '@testing-library/svelte';
import { Smile, Pen, Edit2 } from '../src/lucide-svelte.js';
+import { __iconData, __iconNode } from '../src/icons/face-slightly-smiling.svelte';
import TestSlots from './TestSlots.svelte';
import ContextWrapper from './ContextWrapper.svelte';
@@ -132,3 +133,14 @@ describe('Icon Component Accessibility', () => {
expect(container.firstChild).not.toHaveAttribute('aria-hidden');
});
});
+
+describe('Per-icon data export', () => {
+ it('should export __iconData and __iconNode from the svelte component module', () => {
+ expect(__iconData).toBeDefined();
+ expect(__iconData.name).toBe('face-slightly-smiling');
+ expect(__iconData.size).toBe(24);
+ expect(Array.isArray(__iconData.node)).toBe(true);
+ expect(__iconData.node.length).toBeGreaterThan(0);
+ expect(__iconNode).toEqual(__iconData.node);
+ });
+});