4 Commits
Author SHA1 Message Date
valknarandClaude Sonnet 5 140ba10df6 Bump to 0.9.4
CI / Static checks (push) Successful in 1m40s
CI / Build and push image (push) Successful in 1m7s
- SessionTimelineChart: adds explicit gap between the tooltip's device
  label and its value via a custom formatter, instead of relying on
  justify-between's leftover-space spacing, which collapsed to zero in
  the narrow single-item tooltip

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BuWtppPBizG2NQRa31FCRa
2026-09-04 23:46:45 +02:00
valknarandClaude Sonnet 5 48c31388db Bump to 0.9.3
CI / Build and push image (push) Successful in 1m3s
CI / Static checks (push) Successful in 1m6s
- .bp-glass: recolors Card's default ring to the accent token
  (ring-accent) instead of leaving it at foreground/10; border-accent
  is currently a no-op since nothing sets a border-width utility
- Dashboard hero card: tightens vertical padding (py-8 -> py-4)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 21:32:25 +02:00
valknarandClaude Sonnet 5 68b0e4d0bd Bump to 0.9.2
CI / Build and push image (push) Successful in 1m4s
CI / Static checks (push) Successful in 1m4s
Lightens .bp-glass's shadow to shadow-xs (from shadow-xl). Card's own
default ring is no longer neutralized here, so it shows through on
glass surfaces again.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 21:18:31 +02:00
valknarandClaude Sonnet 5 cf5353dfe4 Bump to 0.9.1
CI / Static checks (push) Successful in 1m7s
CI / Build and push image (push) Successful in 1m5s
Simplifies .bp-glass: drops the border and hover state, and applies
shadow-xl by default. Also zeroes the ring/border Card's own base
styles would otherwise still contribute, so glass surfaces render
with no border/ring/outline at all.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-01 20:11:12 +02:00
4 changed files with 31 additions and 17 deletions
+1 -1
View File
@@ -18,7 +18,7 @@ export default async function DashboardPage() {
return (
<div className="flex flex-col gap-8">
<Card className="bp-glass overflow-hidden">
<CardContent className="flex flex-col items-start gap-4 py-8">
<CardContent className="flex flex-col items-start gap-4 py-4">
<BrandMark size={48} animated className="rounded-[9px]" />
<h1 className="font-heading text-3xl font-semibold">Welcome back</h1>
<p className="max-w-xl text-sm text-muted-foreground">
+6 -14
View File
@@ -181,23 +181,15 @@ body {
}
/* Console-module surface: translucent + blurred so the animated background
sweep shines through, with a hairline border and soft inset top highlight. */
sweep shines through. Card's own default ring (components/ui/card.tsx:
`ring-1 ring-foreground/10`) still shows - ring-accent recolors it to the
accent token instead of resetting it. border-accent is currently a no-op
(neither Card nor this rule sets a border-width utility to give it a
border to color). */
.bp-glass {
@apply shadow-xs ring-accent border-accent;
background: color-mix(in srgb, var(--card) 55%, transparent);
backdrop-filter: blur(20px) saturate(150%);
border: 1px solid var(--border);
box-shadow: inset 0 1px 0 color-mix(in srgb, var(--foreground) 8%, transparent);
transition:
border-color 0.2s ease,
box-shadow 0.2s ease,
background-color 0.2s ease;
}
.bp-glass:hover {
background: color-mix(in srgb, var(--card) 62%, transparent);
border-color: color-mix(in srgb, var(--primary) 45%, var(--border));
box-shadow:
inset 0 1px 0 color-mix(in srgb, var(--foreground) 10%, transparent),
0 10px 30px -14px rgba(0, 0, 0, 0.45);
}
/* Illuminated indicator dot - reused on connection status and per-actuator
+23 -1
View File
@@ -64,7 +64,29 @@ export function SessionTimelineChart({ timeline }: { timeline: TimelineRow[] })
className="bp-readout text-xs"
/>
<YAxis domain={[0, 100]} tickLine={false} axisLine={false} width={32} className="bp-readout text-xs" />
<ChartTooltip content={<ChartTooltipContent />} />
<ChartTooltip
content={
<ChartTooltipContent
formatter={(value, name) => {
const itemConfig = config[name as string];
return (
<>
<div
className="h-2.5 w-2.5 shrink-0 rounded-[2px]"
style={{ backgroundColor: itemConfig?.color }}
/>
<div className="flex flex-1 items-center justify-between gap-4 leading-none">
<span className="text-muted-foreground">{itemConfig?.label ?? name}</span>
<span className="bp-readout font-medium text-foreground">
{typeof value === "number" ? value.toLocaleString() : String(value)}
</span>
</div>
</>
);
}}
/>
}
/>
{series.map(([sessionDeviceId]) => (
<Area
key={sessionDeviceId}
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "sexy",
"version": "0.9.0",
"version": "0.9.4",
"private": true,
"scripts": {
"dev": "next dev",