From 5433a906bb0b7e8273ec181e4051c5d6493c459e Mon Sep 17 00:00:00 2001 From: Scott Idem Date: Fri, 27 Mar 2026 18:35:52 -0400 Subject: [PATCH] fix(types): restore `class` prop on Lucide IconProps after 0.577.0 breakage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @lucide/svelte >=0.577.0 dropped `class` from IconProps — it now derives props purely from SVGAttributes, which TS types without `class`. Every in the codebase errored (1131 errors). Augment IconProps in app.d.ts to re-add `class?: string`. Root cause: 0.561.0 → 0.577.0 bump in commit 366c6629 (2026-03-10). Co-Authored-By: Claude Sonnet 4.6 --- src/app.d.ts | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/app.d.ts b/src/app.d.ts index 9b354164..f858fd58 100644 --- a/src/app.d.ts +++ b/src/app.d.ts @@ -23,6 +23,17 @@ declare global { var native_app: any; } +// @lucide/svelte ≥ 0.577.0 dropped `class` from IconProps — it now derives props purely from +// SVGAttributes, which TypeScript types without `class` (uses `className` instead). +// Every site in the codebase errors without this augmentation. +// If a future lucide update re-adds `class` natively, this becomes a harmless no-op. +// Root cause: @lucide/svelte 0.561.0 → 0.577.0 bump in chore commit 366c6629 (2026-03-10). +declare module '@lucide/svelte' { + interface IconProps { + class?: string; + } +} + // Stripe Buy Button web component — needed so Svelte templates accept the element without TS errors. declare module 'svelte/elements' { interface IntrinsicElements {