pragma ComponentBehavior: Bound import QtQuick import qs.HyprChrome.Theme import qs.HyprChrome.Widgets.Bar.Panels // Staging slot for whatever is being worked on, sized to itself so it can be // dropped anywhere in the rail without a width. It counts seconds since the // shell loaded, which is the cheapest thing that proves the panel is live and // not a still frame — a reload visibly restarts it. // // It also stands ALONE between two spacers, so it is the pair of caps and // traces that a rail of butted panels never exercises: a right cap joining the // next panel's left cap across a gap, twice over. BarPanel { id: test panelId: "TST" title: "TEST" meta: "STAGE" property int seconds: 0 // Sized to its content, like the tray: a staging panel has no business // reserving a share of the rail. implicitWidth: Math.max(test.headerMinWidth, test.briefLeft + brief.implicitWidth + test.padding, test.padding * 2 + body.implicitWidth) Timer { interval: 1000 running: true repeat: true onTriggered: test.seconds++ } summary: Text { id: brief text: "T+" + test.seconds color: Theme.accent font.family: Theme.displayFont font.pixelSize: 13 font.bold: true } Column { id: body spacing: 2 Text { text: "T+" + test.seconds color: Theme.text font.family: Theme.displayFont font.pixelSize: 17 font.bold: true font.letterSpacing: 1 } Text { text: "SECONDS SINCE LOAD" color: Theme.muted font.family: Theme.microFont font.pixelSize: 9 font.letterSpacing: 1.4 } } }