+ );
+}
+
/**
* Width of the widest rendered row label, so every label column matches it.
* Mirrors the macOS popover behavior: bars stay aligned without reserving
@@ -719,8 +787,8 @@ function useWidestLabelWidth(containerRef) {
return labelWidth;
}
-export function UsageLimitsPanel({ claude, codex, cursor, gemini, kimi, kiro, grok, antigravity, copilot, zcode, opencodeGo, qoder, qoderCn, order, visibility, displayMode }) {
- const dataById = { claude, codex, cursor, gemini, kimi, kiro, grok, antigravity, copilot, zcode, opencodeGo, qoder, qoderCn };
+export function UsageLimitsPanel({ claude, codex, cursor, gemini, kimi, kiro, grok, antigravity, copilot, zcode, opencodeGo, qoder, qoderCn, codingPlan, order, visibility, displayMode }) {
+ const dataById = { claude, codex, cursor, gemini, kimi, kiro, grok, antigravity, copilot, zcode, opencodeGo, qoder, qoderCn, codingPlan };
const containerRef = useRef(null);
const labelWidth = useWidestLabelWidth(containerRef);
const [expandedId, setExpandedId] = useState(null);
diff --git a/dashboard/src/ui/dashboard/components/UsageLimitsPanel.test.jsx b/dashboard/src/ui/dashboard/components/UsageLimitsPanel.test.jsx
index 377b114c8..e91988a08 100644
--- a/dashboard/src/ui/dashboard/components/UsageLimitsPanel.test.jsx
+++ b/dashboard/src/ui/dashboard/components/UsageLimitsPanel.test.jsx
@@ -278,6 +278,37 @@ describe("UsageLimitsPanel", () => {
expect(screen.queryByText("12%")).not.toBeInTheDocument();
});
+ it("renders Ark Coding Plan 5h / Weekly / Monthly windows", () => {
+ const { rerender } = render(
+