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
The Blade role pages use eye, pencil, trash-2 and check on their buttons; the React pages leave the icons out for now.
Suggested: accept the same names as Blade (IconName as the union of the bundled Lucide names, mapped in the Onu adapter), and list the difference in docs/parity.md until then.
IconName now accepts Blade's 30 bundled Lucide names (eye, pencil, trash-2, check, …). Any other string is treated as icon-font classes, which render as <i class> as in Blade. close and error stay as aliases. So startIcon="pencil" and startIcon="trash-2" now typecheck on Button, Submit and LinkButton.
HTML and shadcn adapters draw inline Lucide SVGs, generated from lucide-react 1.68 (the version Blade uses) by scripts/icons.mjs.
The Onu adapter maps to Onu's semantic names (pencil → edit, trash-2 → trash, x → close, …), so OnuProvider icons overrides apply. circle-alert and circle-x, which Onu doesn't name, use the Lucide SVG.
New Icon component (Blade's <x-forms::icon>), plus BUNDLED_ICONS, ICON_ALIASES and resolveIconName() for adapters.
A conformance case in @javaabu/forms/testing checks that every adapter draws them.
Docs: docs/basic-usage/icons.md; docs/parity.md now lists Icon ↔ icon as ✅. Blade's icons config stays Blade-only.
The role pages can now use the same icons as the Blade ones.
Activity
Custom field hooks, useTableSelection, Blade icon names
n4ff4h commentedon Nov 5, 2026
Done in 204e616 on
next-gen(PR #19), CI green: https://github.com/Javaabu/react-forms/actions/runs/42055926515IconNamenow accepts Blade's 30 bundled Lucide names (eye,pencil,trash-2,check, …). Any other string is treated as icon-font classes, which render as<i class>as in Blade.closeanderrorstay as aliases. SostartIcon="pencil"andstartIcon="trash-2"now typecheck onButton,SubmitandLinkButton.scripts/icons.mjs.pencil→edit,trash-2→trash,x→close, …), soOnuProvider iconsoverrides apply.circle-alertandcircle-x, which Onu doesn't name, use the Lucide SVG.Iconcomponent (Blade's<x-forms::icon>), plusBUNDLED_ICONS,ICON_ALIASESandresolveIconName()for adapters.@javaabu/forms/testingchecks that every adapter draws them.docs/basic-usage/icons.md;docs/parity.mdnow listsIcon↔iconas ✅. Blade'siconsconfig stays Blade-only.The role pages can now use the same icons as the Blade ones.