{"name":"card","helper":"rui_card","complexity":"moderate","param_count":10,"slot_count":5,"form_builder":false,"standalone":true,"ai_score":8,"human_score":9,"token_estimate":175,"slots":{"icon":{"type":"renders_one","component":"lambda","example":"component.with_icon"},"header":{"type":"renders_one","component":"lambda","example":"component.with_header"},"body":{"type":"renders_one","component":"lambda","example":"component.with_body"},"media":{"type":"renders_one","component":"lambda","example":"component.with_media"},"footer":{"type":"renders_one","component":"lambda","example":"component.with_footer"}},"gotchas":[{"id":"card_footer_link_degrades_in_href_mode","severity":"medium","component":"rui_card","summary":"with_footer(href:) silently degrades to plain styled text (no \u003ca\u003e) when the card itself has href: — never a nested link","params":["href","footer"],"behavior":"When rui_card's own href: is set, the whole card renders as a single \u003ca\u003e. A footer slot's own href: is passed wrapped_in_link: true internally and the footer renders as styled text instead of a second \u003ca\u003e — nesting \u003ca\u003e inside \u003ca\u003e is invalid HTML and unusable for assistive tech. No warning is raised; the footer's href: is simply ignored for linking purposes (the arrow icon and styling still render).","wrong":"\u003c%= rui_card(href: lot_path(@lot)) do |c| %\u003e\u003c% c.with_footer(text: \"View details\", href: lot_path(@lot)) %\u003e\u003c% end %\u003e","right":"\u003c%= rui_card(href: lot_path(@lot)) do |c| %\u003e\u003c% c.with_footer(text: \"View details\") %\u003e\u003c% end %\u003e","notes":"If you need the footer to link somewhere DIFFERENT from the whole-card href, don't set href: on the card — wrap only the parts that need a link, or restructure so the card itself isn't the link target.","detection":"Scan for rui_card(href: ...) blocks containing with_footer(..., href: ...). Regex: /rui_card\\([^)]*href:[\\s\\S]*?with_footer\\([^)]*href:/","recovery":"Either drop href: from with_footer (card-level href already makes the whole card clickable) or drop href: from the card and keep the footer's own link."}],"families":[],"compositions":[],"relationships":{}}