* feat: add NIP-75 Zap Goal rendering
Add feed and detail view rendering for kind 9041 (Zap Goals):
- GoalRenderer: Shows clickable title, description, and progress bar
with target/raised amounts
- GoalDetailRenderer: Adds sorted contributor breakdown with
individual contribution totals
- nip75-helpers: Helper functions for extracting goal metadata
(amount, relays, deadline, beneficiaries)
Both views fetch and tally zaps from the goal's specified relays.
* fix: improve NIP-75 goal rendering
- Remove icons from goal renderers
- Remove "sats" suffixes from amounts
- Use muted text instead of destructive color for closed goals
- Content is the title, summary tag is the description
- Only show description if summary tag exists
* feat: add zap button to goal renderers
Show a 'Zap this Goal' button in both feed and detail views
when the goal is still open (not past its closed_at deadline).
* style: unify progress indicator styles
- Update user menu and welcome page progress indicators to match
goal renderer style: bar on top, progress/total below with percentage
- Remove "sats" suffix from progress displays
- Make goal zap button primary variant and full-width
* fix: polish goal renderers for release
- Remove limit parameter from useTimeline (use whatever relays send)
- Add more spacing between "Support Grimoire" header and progress bar
* refactor: extract useGoalProgress hook for NIP-75 goals
- Create useGoalProgress hook with shared goal logic
- Handle relay selection: goal relays → user inbox → aggregators
- Calculate progress, contributors, and all metadata in one place
- Simplify both GoalRenderer and GoalDetailRenderer
---------
Co-authored-by: Claude <noreply@anthropic.com>