iconmate 1.1.0

CLI to fetch icons and save them into your Vite, NextJS, or similar TypeScript project
Documentation
# Iconmate TODO Roadmap

## Done in this pass

- [x] Enter submits add popup (when focused on Name).
- [x] Paste shortcut support across add popup fields (Cmd/Ctrl+V behavior).
- [x] Default name + filename inference from Iconify names and known URLs.
- [x] Parse Iconify URL patterns and icones.js.org URL patterns.
- [x] Add popup visual cleanup (reduced borders/lines, removed debug block).
- [x] Delete popup visual cleanup (simpler `y` / `n` flow, less instruction noise).

## Existing completed

- [x] Help popup: status instead of defaults.
- [x] Homepage: Up/Down during search while keeping focus.
- [x] `iconmate.jsonc` generation.

## Next high-priority slice

- [x] Rename flow UX
  - [x] Add a lightweight rename action that only renames the file path export target.
  - [x] Keep icon component alias unchanged and show a warning for alias rename in-editor.
  - [x] Add explicit messaging to recommend IDE rename refactor for symbol-level rename.
  - [x] Acceptance: rename updates file + `index.ts` export path safely.

- [x] Global system prefs (`~/.config/iconmate.jsonc` or `~/iconmate.jsonc`)
  - [x] Confirm final search paths and precedence for macOS/Linux/Windows.
  - [x] Implement robust loader with unknown-key warnings (non-fatal).
  - [x] Add schema validation and friendly error output with file path context.
  - [x] Acceptance: startup logs/source reflect applied global values.

- [x] `o` key to open selected icon
  - [x] Add keybind in main list and shared opener support for Iconify search list integration.
  - [x] Resolve viewer command from local -> global -> OS default.
  - [x] Add `%filename%` token substitution and command escaping behavior.
  - [x] Acceptance: selected icon opens in configured app/editor.

- [x] `svg_viewer_cmd` defaults and fallback behavior
  - [x] macOS: Quick Look/open behavior.
  - [x] Linux/Windows: browser/system default fallback.
  - [x] Fallback to web preview when local command fails.
  - [x] Acceptance: command works cross-platform with graceful fallback.

## Add-flow product direction

- [x] ~During add: allow icon discovery using Iconify API inside TUI~
  - Prototype inline query input + paginated result list.
  - Validate whether this beats copy/paste from icones.js.org.
  - Decide final UX based on keystroke count and speed.

- [x] Dedicated icon search interface (TUI)
  - [x] Launch from Home (`i`) instead of starting inside Add popup.
  - [x] Build collection picker + icon view with `Tab` switching and Up/Down navigation.
  - [x] Use `/collections` for collections and local client-side collection filtering.
  - [x] Run debounced icon `/search` only while the Icons tab is active.
  - [x] `Enter` on collection clears search input and opens collection-scoped icon list.
  - [x] `Enter` on icon opens Add popup with icon/name/filename prefilled (no auto-submit).
  - [x] `Ctrl+o` in Icons downloads to temp and opens preview with loading/status feedback.

- [x] Search as standalone CLI for AI/tooling
  - Add machine-friendly command (JSON first).
  - Keep deterministic outputs and stable field names.
  - Acceptance: scriptable icon search with no interactive prompts.

## Notes

- Keep TUI minimal-first: less chrome, more keyboard speed.
- Prefer defaults inferred from icon source whenever possible.