Files
node-explorer/postcss.config.mjs
Adarsh Gourab Mahalik c4603e4b0c Migrate to HeroUI v3 + theme border-radius + realtime polling (#10)
* feat(theme): HeroUI v3 theme, Tailwind v4 config, file icons

Introduce the HeroUI v3 theme layer that the rest of the migration builds on:
- package: @heroui/react, @heroui/styles, lucide-react, csstype; add Tailwind v4
  postcss plugin (postcss.config.mjs), configure vite plugin / font handling;
- src/index.css: lean on @heroui/styles color-mix ranges for accent/base
  variables; drop prior redundant overrides
- src/lib/fileIcons.tsx: colorized per-extension/per-name icon map with
  dynamic Lucide icon + color tuple
- src/hooks/useTheme.ts: theme state (accent/base/font/radius), Google Fonts
  CDN link injection, localStorage persistence (incl. migration of old keys)

* refactor(realtime): remove manual refresh, poll every hook

- delete useRefreshKey (no more manual refresh key plumbing)
- useAutoRefresh polling now covers every data hook:
  - events/tasks: 30s (high-churn feeds), visibility-aware
  - repos/agents/peers/network/home: 60s
- useNodesStatus re-validates every 60s instead of one-shot/session cache
- useAgents gains a 60s visibility-aware tick (re-uses session cache
  on first load, bypasses it on each tick)
- hooks no longer accept refreshKey; render-phase reset keys tick instead

* feat(ui): HeroUI v3 component migration, Drawer fix, theme radius

Replace native HTML controls with HeroUI equivalents across components:
- Button variant="tertiary" for all clickables (repos, events, agents,
  peers, tasks, network, command palette)
- <select> -> HeroUI Select+Menu (RepoToolbar, RepoPagination)
- <a> -> HeroUI Link (PeerList, FileViewer, DocsPage) with target/rel

Fixes & polish:
- TopBar mobile Drawer: style DrawerTrigger/DrawerCloseTrigger directly
  (no nested <button>), wire close to onPress; simple SVG hamburger/close
  icons replacing lucide Menu/X
- Command Palette: custom fixed overlay (cmdk dropped), transparent
  ModalBackdrop (centered w/o dimming), body-scroll lock
- FileList: colorized per-type file icons via fileIcons.ts utility

Theme radius:
- drop hardcoded rounded-[2px]/rounded-lg/rounded-sm/rounded-md across
  components in favour of rounded-[--radius] (theme-driven)
- remove obsolete components/ui/{badge,card,button,input-group,
  separator,table,tabs,theme-toggle}.tsx (superseded by HeroUI)

* refactor(pages): drop manual refresh UI, consume realtime hooks

All list pages (repos, agents, peers, events, tasks, network, home):
- remove useRefreshKey usage and refresh/retry pills
- RepoHero no longer takes refreshing/onRefresh props (button removed)
- RepoHero accepts only display props (totalCount, page windows, title,
  description, cells)
- RepoHero no longer renders a refresh pill; the page title block is clean

The data layer (commit c71dd9c) now polls each hook on a 30s/60s tick,
so the removed Retry buttons are unnecessary — transient errors self-heal
on the next tick.
2026-08-17 15:31:53 +08:00

6 lines
70 B
JavaScript

export default {
plugins: {
"@tailwindcss/postcss": {},
},
};