claude-roi 0.7.2 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/dashboard.html +24 -7
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-roi",
3
- "version": "0.7.2",
3
+ "version": "0.8.0",
4
4
  "description": "Correlate Claude Code token usage with git output to measure AI coding agent ROI",
5
5
  "type": "module",
6
6
  "bin": {
@@ -593,15 +593,15 @@
593
593
  color: var(--accent-blue);
594
594
  }
595
595
  @keyframes tooltipFade {
596
- from { opacity: 0; transform: translateX(-50%) translateY(4px); }
597
- to { opacity: 1; transform: translateX(-50%) translateY(0); }
596
+ from { opacity: 0; transform: translateY(4px); }
597
+ to { opacity: 1; transform: translateY(0); }
598
598
  }
599
599
  .info-tip:hover::after {
600
600
  content: attr(data-tip);
601
601
  position: absolute;
602
602
  bottom: calc(100% + 10px);
603
- left: 50%;
604
- transform: translateX(-50%) translateY(0);
603
+ right: -12px;
604
+ transform: none;
605
605
  background: var(--tooltip-bg);
606
606
  backdrop-filter: blur(16px);
607
607
  color: var(--text-secondary);
@@ -610,6 +610,7 @@
610
610
  font-size: 0.75rem;
611
611
  font-weight: 400;
612
612
  width: 280px;
613
+ max-width: 80vw;
613
614
  line-height: 1.5;
614
615
  border: 1px solid var(--tooltip-border);
615
616
  z-index: 100;
@@ -716,9 +717,20 @@
716
717
  width: 100%;
717
718
  border-collapse: collapse;
718
719
  font-size: 0.85rem;
719
- }
720
+ table-layout: fixed;
721
+ }
722
+ /* Column widths: Date | Project | Model | Msgs | Autopilot | Cost | Commits | Lines | Grade */
723
+ table col:nth-child(1) { width: 13%; }
724
+ table col:nth-child(2) { width: 14%; }
725
+ table col:nth-child(3) { width: 18%; }
726
+ table col:nth-child(4) { width: 7%; }
727
+ table col:nth-child(5) { width: 10%; }
728
+ table col:nth-child(6) { width: 8%; }
729
+ table col:nth-child(7) { width: 9%; }
730
+ table col:nth-child(8) { width: 13%; }
731
+ table col:nth-child(9) { width: 8%; }
720
732
  thead th {
721
- padding: 14px 14px;
733
+ padding: 14px 12px;
722
734
  text-align: left;
723
735
  color: var(--text-muted);
724
736
  font-family: var(--font-display);
@@ -733,6 +745,8 @@
733
745
  transition: color 0.2s;
734
746
  position: relative;
735
747
  }
748
+ /* Center-align numeric columns (4-9): Msgs, Autopilot, Cost, Commits, Lines, Grade */
749
+ thead th:nth-child(n+4), tbody td:nth-child(n+4) { text-align: center; }
736
750
  thead th:hover { color: var(--text-primary); }
737
751
  thead th.sorted { color: var(--accent-blue); }
738
752
  thead th.sorted::after {
@@ -751,9 +765,11 @@
751
765
  tbody tr:hover { background: var(--overlay-soft); }
752
766
  tbody tr:last-child { border-bottom: none; }
753
767
  tbody td {
754
- padding: 12px 14px;
768
+ padding: 12px 12px;
755
769
  white-space: nowrap;
756
770
  font-size: 0.85rem;
771
+ overflow: hidden;
772
+ text-overflow: ellipsis;
757
773
  }
758
774
  .grade-badge {
759
775
  display: inline-flex;
@@ -2484,6 +2500,7 @@ function renderSessionsTable(sessions) {
2484
2500
  <h2>Sessions (${sessions.length})</h2>
2485
2501
  <div class="sessions-table-wrap">
2486
2502
  <table>
2503
+ <colgroup><col><col><col><col><col><col><col><col><col></colgroup>
2487
2504
  <thead>
2488
2505
  <tr>
2489
2506
  <th onclick="sortTable('startTime')" class="${sortCol === 'startTime' ? 'sorted' : ''}">Date${thArrow('startTime')}</th>