+ {/* Title bar with traffic-light dots */}
+
+
+
+
+
+
+
+ Notes — bluemacaw
+
-
-
-
-
-
-
- Recording — OpenAI · gpt-4o-mini-transcribe
-
-
- Schedule a follow-up with the design team next Tuesday at three, and
- remind me to share the new dashboard mockups before the meeting.
-
+ {/* Document body */}
+
+ {shownText ? (
+
+ {shownText}
+ {displayPhase === 'typing' && (
+
+ )}
+
+ ) : (
+
+
+ {displayPhase === 'recording'
+ ? 'Listening… speak naturally.'
+ : displayPhase === 'transcribing'
+ ? 'Turning speech into text…'
+ : 'Press to dictate into any app.'}
+
+
+ {shortcut.map((key, i) => (
+
+ {i > 0 && (
+
+ +
+
+ )}
+
+ {key}
+
+
+ ))}
+
+
+ )}
-
- Release the key → text pastes into the focused app instantly.
-
+ {/* Floating status pill — mirrors the real desktop overlay */}
+
+
+
+
+
+ A live preview — no video, just the real UI. Hold{' '}
+ {osMeta(os).label === 'macOS' ? '⌘⇧Space' : 'Ctrl+⇧Space'}, talk, release.
+
);
}
-function Kbd({ children }: { children: React.ReactNode }) {
+const PILL = cn(
+ 'inline-flex items-center gap-2.5 rounded-full',
+ 'bg-brand-navy/90 backdrop-blur-md',
+ 'pl-3 pr-4 py-2 select-none text-white shadow-pop',
+);
+
+function StatusPill({ phase }: { phase: Phase }) {
+ if (phase === 'recording') {
+ return (
+
+ );
+ }
+ if (phase === 'transcribing') {
+ return (
+
+ );
+ }
+ if (phase === 'typing' || phase === 'done') {
+ return (
+
);
}
diff --git a/packages/landing/src/components/hero.tsx b/packages/landing/src/components/hero.tsx
index e1691f9..5254dc9 100644
--- a/packages/landing/src/components/hero.tsx
+++ b/packages/landing/src/components/hero.tsx
@@ -1,7 +1,16 @@
+'use client';
+
+import { osMeta, useClientOS } from '@/lib/use-client-os';
import { RecordingPillDemo } from './recording-pill-demo';
import { Button } from './ui/button';
export function Hero() {
+ const os = useClientOS();
+ // OS-neutral until detection resolves (and for unrecognized platforms),
+ // then names the visitor's platform. We never gate the link on OS — the
+ // #download section still lists every platform.
+ const downloadLabel =
+ os === 'unknown' ? 'Download for your OS' : `Download for ${osMeta(os).label}`;
return (