mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-17 14:42:06 +00:00
Route the app off its hand-rolled helpers onto lib/{text,time,format,json-format}
and the new primitives, plus assorted small tidy-ups:
- compactNumber for counts/tokens; normalize/capitalize/asText at the many
filter/label sites; shared Intl date/time formatters; row-hover + framed
editor adoption; scrollbar-gutter + padding parity on list surfaces.
- Messaging/Artifacts/Cron search hints + narrow-viewport tab dropdown;
floating-pet adopts useOnProfileSwitch; number formatting in statusbar,
command-center, agents.
- Electron: native overlay width + backend spawn tidy.
- Settings > Keys: credential fields read as plain subtext (all-unset) until
the group is focused or expanded, then take full input chrome with no
horizontal/vertical shift; inline Remove (trash) + Save mirror SearchField's
trailing-clear pattern instead of a floating hint that overlapped the card;
Esc still cancels. Drops the now-dead or/escToCancel i18n keys.
- Shared TabDropdown/ResponsiveTabs (components/ui): PageSearchShell and the
Command Center log file/level filters reuse the one narrow-width collapse.
- OverlayNav: data-driven pane nav — persistent rail on wide, a single dropdown
riding the titlebar strip on narrow; Settings and Command Center adopt it, and
the mobile dropdown carries the same section icons as the rail. Fixes narrow
vertical centering, redundant mobile section titles, gateway-status wrap, and
Panel master/detail stacking.
- OverlayIconButton is now the titlebar ghost button, matching the close X at
every size. Settings sub-view nav opens section + sub-view in one navigate so
API-keys/accounts actually open on narrow.
- Settings > Model: cube icon (was the {} namespace glyph) and a DOM-shaped
skeleton in place of the centered spinner.
- Command palette / session switcher clear the macOS traffic lights on small
screens.
- Prettier/eslint sweep across the touched files.
33 lines
2.2 KiB
TypeScript
33 lines
2.2 KiB
TypeScript
// Shared chrome for the top-center floating HUDs (command palette + session
|
|
// switcher). They pin just under the title bar, centered, and lean on a crisp
|
|
// border + shadow to separate from the app — no dimming/blurring backdrop.
|
|
// Each caller layers on its own z-index, width, and overflow.
|
|
//
|
|
// Narrow screens: the centered HUD widens toward full-width and its top-left
|
|
// corner slides under the macOS traffic lights. Below ~44rem (where the overlap
|
|
// begins) drop the whole surface beneath the titlebar band so the search row
|
|
// always clears the window controls. These HUDs portal to <body>, outside the
|
|
// app-shell subtree that defines --titlebar-height, so the var needs a fallback.
|
|
export const HUD_POSITION =
|
|
'fixed left-1/2 top-3 -translate-x-1/2 max-[44rem]:top-[calc(var(--titlebar-height,34px)+0.375rem)]'
|
|
|
|
// Matches the app's borderless-overlay surface (dialog, keybind panel, …):
|
|
// hairline `--stroke-nous` paired with the soft `--shadow-nous` float.
|
|
// `no-drag`: these HUDs overlap the titlebar's `[-webkit-app-region:drag]` band
|
|
// (app-shell.tsx), which wins hit-testing over DOM regardless of z-index — so
|
|
// without it the top of the surface (the search input) swallows clicks.
|
|
export const HUD_SURFACE =
|
|
'rounded-xl border border-(--stroke-nous) bg-(--ui-chat-bubble-background) shadow-nous [-webkit-app-region:no-drag]'
|
|
|
|
// One row/text size for both HUDs (compact — two notches under `text-sm`).
|
|
export const HUD_TEXT = 'text-xs'
|
|
|
|
// Shared item layout + padding for both HUDs. Tight vertical rhythm so rows
|
|
// don't feel chunky; overrides the shadcn `CommandItem` default (`px-2 py-1.5`).
|
|
export const HUD_ITEM = 'gap-2 px-2 py-1'
|
|
|
|
// Section headings styled like the sidebar panel labels: brand-tinted, uppercase,
|
|
// tightly tracked — plain text, no sticky chrome bar. Targets the cmdk group
|
|
// heading via the universal-descendant variant.
|
|
export const HUD_HEADING =
|
|
'**:[[cmdk-group-heading]]:static **:[[cmdk-group-heading]]:bg-transparent **:[[cmdk-group-heading]]:px-2.5 **:[[cmdk-group-heading]]:pb-1 **:[[cmdk-group-heading]]:pt-2.5 **:[[cmdk-group-heading]]:text-[0.64rem] **:[[cmdk-group-heading]]:font-semibold **:[[cmdk-group-heading]]:uppercase **:[[cmdk-group-heading]]:tracking-[0.16em] **:[[cmdk-group-heading]]:text-(--theme-primary)'
|