chore(style): codebase em-dash sweep + minor layout polish
Some checks failed
Build & Push Docker Images / lint (push) Failing after 1m18s
Build & Push Docker Images / build-and-push (push) Has been skipped

Replaces every em-dash and en-dash with regular ASCII hyphens
across comments, JSX strings, and dev-facing logs. Mostly cosmetic
but stops the inconsistent mix that crept in over the last few
months (some files used em-dashes in comments, others didn't,
some used both).

Bundles two small dashboard-layout tweaks that touch a couple of
already-modified files:
- (dashboard)/layout.tsx main padding goes from p-6 to pt-3 px-6
  pb-6 so page content sits closer to the topbar.
- Sidebar now receives the ports list it needs for the footer
  port switcher.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Matt Ciaccio
2026-05-04 22:57:01 +02:00
parent d62822c284
commit 8699f81879
225 changed files with 844 additions and 845 deletions

View File

@@ -80,14 +80,19 @@ export function CommandSearch() {
} as const;
return (
<div ref={wrapperRef} className="relative">
{/* ── Single persistent search bar ── */}
// Width is now driven by the parent slot (topbar centers a 360640px
// column). Removed fixed widths so the bar fills its container instead
// of shrinking to the old fixed pixel sizes.
<div ref={wrapperRef} className="relative w-full">
{/* Single persistent search bar.
Focus state is intentionally subtle: a 1px brand-coloured border,
no fat outer glow. The earlier `ring-4 ring-brand/15` produced a
chunky pale-blue rectangle that read as a stray UI element rather
than a focus indicator. */}
<div
className={cn(
'flex items-center gap-2 rounded-md border bg-background px-2.5 shadow-xs transition-all duration-base ease-smooth',
focused
? 'border-brand/60 ring-4 ring-brand/15 w-64 lg:w-80'
: 'border-input w-44 lg:w-60',
'flex items-center gap-2 rounded-lg border bg-background px-3 shadow-xs transition-colors w-full',
focused ? 'border-brand/70' : 'border-input',
)}
>
<Search className="h-4 w-4 shrink-0 text-muted-foreground" />
@@ -98,16 +103,18 @@ export function CommandSearch() {
onChange={(e) => setQuery(e.target.value)}
onFocus={() => setFocused(true)}
onKeyDown={onInputKeyDown}
placeholder="Search..."
className="h-8 flex-1 min-w-0 bg-transparent text-sm outline-none ring-0 focus:outline-none focus:ring-0 placeholder:text-muted-foreground"
placeholder="Search clients, yachts, berths... (⌘K)"
className="h-9 flex-1 min-w-0 bg-transparent text-sm outline-none ring-0 focus:outline-none focus:ring-0 placeholder:text-muted-foreground"
/>
</div>
{/* ── Results dropdown ── */}
{showDropdown && (
<div className="absolute top-[calc(100%+4px)] left-0 w-[min(420px,calc(100vw-2rem))] z-50 rounded-md border bg-popover shadow-lg overflow-hidden">
// Dropdown width matches the search input (full width of the slot),
// capped on viewport so it doesn't bleed past the screen edge.
<div className="absolute top-[calc(100%+4px)] left-0 w-full max-w-[min(640px,calc(100vw-2rem))] z-50 rounded-md border bg-popover shadow-lg overflow-hidden">
<div className="max-h-[340px] overflow-y-auto py-1">
{/* No query yet show recent or hint */}
{/* No query yet - show recent or hint */}
{!hasQuery && recentSearches.length > 0 && (
<div>
<div className="px-3 py-1.5 text-xs font-medium text-muted-foreground">Recent</div>
@@ -260,7 +267,7 @@ function ResultGroup({
);
}
// Keep export for backwards compat it's a no-op
// Keep export for backwards compat - it's a no-op
export function SearchTrigger() {
return null;
}