_intel.scss
sha256:3ff9c9863a9891bdcde71b4a43228f66d0493e38b7cc1d09fe9eb7de774046b2
feat: add repair-commit wire endpoint (API parity with repa…
Opus 4.8
minor
⚠ breaking
1 day ago
| 1 | // ───────────────────────────────────────────────────────────────────────────── |
| 2 | // Page: Intelligence Hub (.intel-* layout) |
| 3 | // File: src/scss/pages/_intel.scss |
| 4 | // |
| 5 | // STRUCTURAL LAYOUT ONLY — zero colors, zero typography here. |
| 6 | // Visual rules live in components/_intel.scss. |
| 7 | // ───────────────────────────────────────────────────────────────────────────── |
| 8 | |
| 9 | .intel-wrap { |
| 10 | padding: 0; |
| 11 | } |
| 12 | |
| 13 | // ── Header ──────────────────────────────────────────────────────────────────── |
| 14 | |
| 15 | .intel-hd { |
| 16 | display: flex; |
| 17 | align-items: baseline; |
| 18 | gap: 0.75rem; |
| 19 | margin-bottom: 1.75rem; |
| 20 | padding-bottom: 1rem; |
| 21 | } |
| 22 | |
| 23 | .intel-hd-title { |
| 24 | display: flex; |
| 25 | align-items: center; |
| 26 | gap: 0.5rem; |
| 27 | } |
| 28 | |
| 29 | // ── Subpage header ──────────────────────────────────────────────────────────── |
| 30 | |
| 31 | .intel-subhd { |
| 32 | margin-bottom: 1.75rem; |
| 33 | padding-bottom: 1rem; |
| 34 | } |
| 35 | |
| 36 | .intel-back { |
| 37 | display: inline-flex; |
| 38 | align-items: center; |
| 39 | gap: 0.25rem; |
| 40 | margin-bottom: 0.6rem; |
| 41 | } |
| 42 | |
| 43 | .intel-subhd-title { |
| 44 | display: flex; |
| 45 | align-items: center; |
| 46 | gap: 0.5rem; |
| 47 | margin-bottom: 0.35rem; |
| 48 | } |
| 49 | |
| 50 | // ── No-index state ──────────────────────────────────────────────────────────── |
| 51 | |
| 52 | .intel-no-index { |
| 53 | display: flex; |
| 54 | align-items: flex-start; |
| 55 | gap: 1rem; |
| 56 | padding: 1.5rem; |
| 57 | } |
| 58 | |
| 59 | // ── Top row — health + alerts ───────────────────────────────────────────────── |
| 60 | |
| 61 | .intel-top-row { |
| 62 | display: grid; |
| 63 | grid-template-columns: 1fr 2fr; |
| 64 | gap: 1.25rem; |
| 65 | margin-bottom: 1.25rem; |
| 66 | |
| 67 | @media (max-width: 700px) { grid-template-columns: 1fr; } |
| 68 | } |
| 69 | |
| 70 | // ── Health gauge ────────────────────────────────────────────────────────────── |
| 71 | |
| 72 | .intel-health-card { |
| 73 | display: flex; |
| 74 | flex-direction: column; |
| 75 | align-items: center; |
| 76 | gap: 0.5rem; |
| 77 | padding: 1.25rem 1rem; |
| 78 | } |
| 79 | |
| 80 | .intel-health-gauge { |
| 81 | width: 100px; |
| 82 | height: 100px; |
| 83 | position: relative; |
| 84 | } |
| 85 | |
| 86 | .intel-health-svg { width: 100%; height: 100%; } |
| 87 | |
| 88 | // ── Alert strip ─────────────────────────────────────────────────────────────── |
| 89 | |
| 90 | .intel-alerts { padding: 1rem 1.25rem; } |
| 91 | |
| 92 | .intel-alerts-title { margin-bottom: 0.75rem; } |
| 93 | |
| 94 | .intel-alert-list { |
| 95 | list-style: none; |
| 96 | margin: 0; |
| 97 | padding: 0; |
| 98 | display: flex; |
| 99 | flex-direction: column; |
| 100 | gap: 0.5rem; |
| 101 | } |
| 102 | |
| 103 | .intel-alert { |
| 104 | display: flex; |
| 105 | align-items: center; |
| 106 | gap: 0.5rem; |
| 107 | } |
| 108 | |
| 109 | .intel-alert-link { margin-left: auto; } |
| 110 | |
| 111 | // ── Panel cards ─────────────────────────────────────────────────────────────── |
| 112 | |
| 113 | .intel-cards { |
| 114 | display: grid; |
| 115 | grid-template-columns: repeat(4, 1fr); |
| 116 | gap: 1.25rem; |
| 117 | margin-bottom: 1.5rem; |
| 118 | |
| 119 | @media (max-width: 1100px) { grid-template-columns: repeat(2, 1fr); } |
| 120 | @media (max-width: 540px) { grid-template-columns: 1fr; } |
| 121 | } |
| 122 | |
| 123 | .intel-card { padding: 1rem; } |
| 124 | |
| 125 | .intel-card-hd { |
| 126 | display: flex; |
| 127 | align-items: baseline; |
| 128 | justify-content: space-between; |
| 129 | margin-bottom: 0.75rem; |
| 130 | } |
| 131 | |
| 132 | // ── Bar chart rows ──────────────────────────────────────────────────────────── |
| 133 | |
| 134 | .intel-bar-list { |
| 135 | list-style: none; |
| 136 | margin: 0; |
| 137 | padding: 0; |
| 138 | display: flex; |
| 139 | flex-direction: column; |
| 140 | gap: 0.5rem; |
| 141 | } |
| 142 | |
| 143 | .intel-bar-row { |
| 144 | display: grid; |
| 145 | grid-template-columns: 1fr auto; |
| 146 | grid-template-rows: auto auto; |
| 147 | gap: 0.1rem 0.5rem; |
| 148 | align-items: center; |
| 149 | } |
| 150 | |
| 151 | .intel-bar-label { |
| 152 | grid-column: 1; |
| 153 | grid-row: 1; |
| 154 | } |
| 155 | |
| 156 | .intel-bar-track { |
| 157 | height: 4px; |
| 158 | grid-column: 1; |
| 159 | grid-row: 2; |
| 160 | |
| 161 | &--full { |
| 162 | height: 6px; |
| 163 | margin-top: 0.3rem; |
| 164 | } |
| 165 | } |
| 166 | |
| 167 | .intel-bar-val { |
| 168 | grid-column: 2; |
| 169 | grid-row: 1 / span 2; |
| 170 | } |
| 171 | |
| 172 | // ── Dead code card ──────────────────────────────────────────────────────────── |
| 173 | |
| 174 | .intel-dead-summary { margin-bottom: 0.6rem; } |
| 175 | |
| 176 | .intel-dead-list { |
| 177 | list-style: none; |
| 178 | margin: 0; |
| 179 | padding: 0; |
| 180 | display: flex; |
| 181 | flex-direction: column; |
| 182 | gap: 0.4rem; |
| 183 | } |
| 184 | |
| 185 | .intel-dead-row { |
| 186 | display: flex; |
| 187 | align-items: baseline; |
| 188 | justify-content: space-between; |
| 189 | gap: 0.5rem; |
| 190 | } |
| 191 | |
| 192 | // ── Blast risk card ─────────────────────────────────────────────────────────── |
| 193 | |
| 194 | .intel-blast-list { |
| 195 | list-style: none; |
| 196 | margin: 0; |
| 197 | padding: 0; |
| 198 | display: flex; |
| 199 | flex-direction: column; |
| 200 | gap: 0.5rem; |
| 201 | } |
| 202 | |
| 203 | .intel-blast-row { |
| 204 | display: flex; |
| 205 | align-items: baseline; |
| 206 | gap: 0.5rem; |
| 207 | } |
| 208 | |
| 209 | .intel-blast-addr { flex: 1; } |
| 210 | |
| 211 | // ── Velocity sparkline ──────────────────────────────────────────────────────── |
| 212 | |
| 213 | .intel-velocity-wrap { padding: 1rem 1.25rem; } |
| 214 | |
| 215 | .intel-velocity-title { margin-bottom: 0.5rem; } |
| 216 | |
| 217 | .intel-velocity-bars { |
| 218 | display: flex; |
| 219 | align-items: flex-end; |
| 220 | gap: 3px; |
| 221 | height: 56px; |
| 222 | } |
| 223 | |
| 224 | .intel-velocity-bar { flex: 1; } |
| 225 | |
| 226 | // ── Full-list (subpage) shared ──────────────────────────────────────────────── |
| 227 | |
| 228 | .intel-full-list { |
| 229 | display: flex; |
| 230 | flex-direction: column; |
| 231 | gap: 0; |
| 232 | } |
| 233 | |
| 234 | .intel-empty-state { |
| 235 | display: flex; |
| 236 | flex-direction: column; |
| 237 | align-items: center; |
| 238 | gap: 1rem; |
| 239 | padding: 3rem 1.5rem; |
| 240 | } |
| 241 | |
| 242 | // ── Hotspot full rows ───────────────────────────────────────────────────────── |
| 243 | |
| 244 | .intel-hs-row { padding: 0.75rem 1rem; } |
| 245 | |
| 246 | .intel-hs-meta { |
| 247 | display: flex; |
| 248 | align-items: baseline; |
| 249 | gap: 0.75rem; |
| 250 | margin-bottom: 0.35rem; |
| 251 | } |
| 252 | |
| 253 | .intel-hs-bar-wrap { |
| 254 | display: flex; |
| 255 | align-items: center; |
| 256 | gap: 0.5rem; |
| 257 | } |
| 258 | |
| 259 | // ── Dead full rows ──────────────────────────────────────────────────────────── |
| 260 | |
| 261 | .intel-dead-full-row { padding: 0.75rem 1rem; } |
| 262 | |
| 263 | .intel-dead-full-addr { margin-bottom: 0.3rem; } |
| 264 | |
| 265 | .intel-dead-full-meta { |
| 266 | display: flex; |
| 267 | align-items: center; |
| 268 | gap: 0.75rem; |
| 269 | flex-wrap: wrap; |
| 270 | } |
| 271 | |
| 272 | // ── Blast risk full rows ────────────────────────────────────────────────────── |
| 273 | |
| 274 | .intel-blast-full-row { padding: 0.85rem 1rem; } |
| 275 | |
| 276 | .intel-blast-full-hd { |
| 277 | display: flex; |
| 278 | align-items: baseline; |
| 279 | gap: 0.5rem; |
| 280 | margin-bottom: 0.35rem; |
| 281 | } |
| 282 | |
| 283 | .intel-blast-co-list { |
| 284 | display: flex; |
| 285 | flex-wrap: wrap; |
| 286 | gap: 0.25rem; |
| 287 | align-items: baseline; |
| 288 | } |
| 289 |
File History
1 commit
sha256:3ff9c9863a9891bdcde71b4a43228f66d0493e38b7cc1d09fe9eb7de774046b2
feat: add repair-commit wire endpoint (API parity with repa…
Opus 4.8
minor
⚠
1 day ago