You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Bundle only the Lucide icons a site uses: the generated Icon component resolved names against Lucide's full icons map, which put every glyph, about 500 KB (130 KB gzipped), into the first-load JavaScript of every page whatever the docs referenced. The generator now writes components/layout/IconRegistry.ts, a map of static imports for exactly the names it finds in <Icon name="..."> and the icon props of authoring components in MDX, navIcon and categoryIcon frontmatter, navigation.json, and the glyphs the generated components draw themselves, and Icon looks names up there. Authors change nothing: both spellings keep working (chevron-right and ChevronRight), and the registry is rewritten whenever a page or navigation.json changes so watch mode stays live. A name Lucide does not have now prints a warning naming the file (or navigation.json) at generate time and, as before, renders nothing rather than failing the build; names inside code blocks and inline code are ignored, so documenting an icon does not bundle it. On a minimal page the first-load JavaScript drops from 1113 KB to 603 KB (315 KB to 186 KB gzipped). The CLI depends on lucide-react itself now, to validate names against the icon set it knows
Update dependencies: generated apps move to cherry-styled-components ^0.2.17, whose components import their own glyphs instead of the whole Lucide map (the other half of the saving above), lucide-react ^1.41.0, next 16.3.4 with @next/env/@next/eslint-plugin-next 16.3.4, @langchain/anthropic ^1.5.9, @langchain/openai ^1.5.11, posthog-js ^1.427.2, posthog-node ^5.51.6, zod ^4.5.4, @typescript-eslint/* ^8.69.0, globals ^17.12.0, and tsx ^4.23.13