@firstpick/pi-package-webui 0.3.5 → 0.3.7

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.
package/public/styles.css CHANGED
@@ -434,6 +434,79 @@ body.server-restarting .layout {
434
434
  @keyframes server-restart-spin {
435
435
  to { transform: rotate(360deg); }
436
436
  }
437
+ .update-notification[hidden] {
438
+ display: none !important;
439
+ }
440
+ .update-notification {
441
+ position: fixed;
442
+ top: calc(env(safe-area-inset-top, 0px) + 1rem);
443
+ right: calc(env(safe-area-inset-right, 0px) + 1rem);
444
+ z-index: 64;
445
+ width: min(28rem, calc(100vw - 2rem));
446
+ opacity: 0;
447
+ transform: translateY(-1.6rem);
448
+ pointer-events: none;
449
+ transition: opacity 320ms ease, transform 1050ms cubic-bezier(0.18, 0.92, 0.24, 1);
450
+ }
451
+ .update-notification.show {
452
+ opacity: 1;
453
+ transform: translateY(0);
454
+ pointer-events: auto;
455
+ animation: update-notification-slide-down 1100ms cubic-bezier(0.18, 0.92, 0.24, 1);
456
+ }
457
+ .update-notification-card {
458
+ position: relative;
459
+ overflow: hidden;
460
+ padding: 1rem;
461
+ border: 1px solid rgba(166, 227, 161, 0.42);
462
+ border-radius: 1rem;
463
+ background:
464
+ radial-gradient(circle at 100% 0, rgba(166, 227, 161, 0.18), transparent 13rem),
465
+ linear-gradient(145deg, rgba(var(--ctp-base-rgb), 0.96), rgba(var(--ctp-crust-rgb), 0.98));
466
+ box-shadow: 0 1.1rem 3.2rem rgba(var(--ctp-crust-rgb), 0.72), 0 0 1.8rem rgba(166, 227, 161, 0.16), inset 0 1px 0 rgba(255,255,255,0.08);
467
+ backdrop-filter: blur(18px) saturate(145%);
468
+ }
469
+ .update-notification-card::before {
470
+ content: "";
471
+ position: absolute;
472
+ inset: 0 0 auto;
473
+ height: 2px;
474
+ background: linear-gradient(90deg, var(--ctp-green), var(--ctp-teal), var(--ctp-blue));
475
+ box-shadow: 0 0 1rem rgba(166, 227, 161, 0.42);
476
+ }
477
+ .update-notification-kicker {
478
+ display: inline-block;
479
+ margin-bottom: 0.45rem;
480
+ color: var(--ok);
481
+ font-size: 0.72rem;
482
+ font-weight: 900;
483
+ letter-spacing: 0.12em;
484
+ text-transform: uppercase;
485
+ }
486
+ .update-notification h2 {
487
+ margin: 0 0 0.45rem;
488
+ font-size: 1.1rem;
489
+ }
490
+ .update-notification p {
491
+ margin: 0 0 0.65rem;
492
+ color: rgba(var(--ctp-text-rgb), 0.88);
493
+ line-height: 1.45;
494
+ }
495
+ .update-notification-detail {
496
+ font-size: 0.86rem;
497
+ }
498
+ .update-notification-actions {
499
+ display: flex;
500
+ flex-wrap: wrap;
501
+ gap: 0.55rem;
502
+ justify-content: flex-end;
503
+ margin-top: 0.85rem;
504
+ }
505
+ @keyframes update-notification-slide-down {
506
+ 0% { opacity: 0; transform: translateY(-2.4rem); }
507
+ 70% { opacity: 1; transform: translateY(0.18rem); }
508
+ 100% { opacity: 1; transform: translateY(0); }
509
+ }
437
510
  .side-panel-expand-button {
438
511
  position: fixed;
439
512
  top: 1rem;
@@ -1362,39 +1435,39 @@ body.side-panel-collapsed .terminal-tabs-shell {
1362
1435
  background: rgba(var(--ctp-subtext-rgb), 0.38);
1363
1436
  box-shadow: 0 0 0 1px rgba(255,255,255,0.08), 0 0 0.45rem rgba(var(--ctp-subtext-rgb), 0.10);
1364
1437
  }
1365
- .terminal-tab.activity-working .terminal-tab-activity-indicator {
1438
+ .terminal-tab.activity-working > .terminal-tab-button .terminal-tab-activity-indicator {
1366
1439
  background: var(--ctp-yellow);
1367
1440
  box-shadow: 0 0 0 1px rgba(249, 226, 175, 0.34), 0 0 0.8rem rgba(249, 226, 175, 0.52);
1368
1441
  animation: terminal-tab-working-pulse 1.15s ease-in-out infinite;
1369
1442
  }
1370
- .terminal-tab.activity-blocked .terminal-tab-activity-indicator {
1443
+ .terminal-tab.activity-blocked > .terminal-tab-button .terminal-tab-activity-indicator {
1371
1444
  background: var(--ctp-peach);
1372
1445
  box-shadow: 0 0 0 1px rgba(250, 179, 135, 0.38), 0 0 0.85rem rgba(250, 179, 135, 0.58);
1373
1446
  animation: terminal-tab-working-pulse 1.35s ease-in-out infinite;
1374
1447
  }
1375
- .terminal-tab.activity-done .terminal-tab-activity-indicator {
1448
+ .terminal-tab.activity-done > .terminal-tab-button .terminal-tab-activity-indicator {
1376
1449
  background: var(--ctp-green);
1377
1450
  box-shadow: 0 0 0 1px rgba(166, 227, 161, 0.34), 0 0 0.8rem rgba(166, 227, 161, 0.48);
1378
1451
  }
1379
- .terminal-tab.stopped .terminal-tab-activity-indicator {
1452
+ .terminal-tab.stopped > .terminal-tab-button .terminal-tab-activity-indicator {
1380
1453
  background: var(--ctp-red);
1381
1454
  box-shadow: 0 0 0 1px rgba(243, 139, 168, 0.28), 0 0 0.6rem rgba(243, 139, 168, 0.24);
1382
1455
  }
1383
- .terminal-tab-group-item.activity-working .terminal-tab-activity-indicator {
1456
+ .terminal-tab-group-item.activity-working > .terminal-tab-button .terminal-tab-activity-indicator {
1384
1457
  background: var(--ctp-yellow);
1385
1458
  box-shadow: 0 0 0 1px rgba(249, 226, 175, 0.34), 0 0 0.8rem rgba(249, 226, 175, 0.52);
1386
1459
  animation: terminal-tab-working-pulse 1.15s ease-in-out infinite;
1387
1460
  }
1388
- .terminal-tab-group-item.activity-blocked .terminal-tab-activity-indicator {
1461
+ .terminal-tab-group-item.activity-blocked > .terminal-tab-button .terminal-tab-activity-indicator {
1389
1462
  background: var(--ctp-peach);
1390
1463
  box-shadow: 0 0 0 1px rgba(250, 179, 135, 0.38), 0 0 0.85rem rgba(250, 179, 135, 0.58);
1391
1464
  animation: terminal-tab-working-pulse 1.35s ease-in-out infinite;
1392
1465
  }
1393
- .terminal-tab-group-item.activity-done .terminal-tab-activity-indicator {
1466
+ .terminal-tab-group-item.activity-done > .terminal-tab-button .terminal-tab-activity-indicator {
1394
1467
  background: var(--ctp-green);
1395
1468
  box-shadow: 0 0 0 1px rgba(166, 227, 161, 0.34), 0 0 0.8rem rgba(166, 227, 161, 0.48);
1396
1469
  }
1397
- .terminal-tab-group-item.stopped .terminal-tab-activity-indicator {
1470
+ .terminal-tab-group-item.stopped > .terminal-tab-button .terminal-tab-activity-indicator {
1398
1471
  background: var(--ctp-red);
1399
1472
  box-shadow: 0 0 0 1px rgba(243, 139, 168, 0.28), 0 0 0.6rem rgba(243, 139, 168, 0.24);
1400
1473
  }
@@ -1426,17 +1499,17 @@ body.side-panel-collapsed .terminal-tabs-shell {
1426
1499
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
1427
1500
  font-size: 0.68rem;
1428
1501
  }
1429
- .terminal-tab.active .terminal-tab-title,
1430
- .terminal-tab-group-item.active .terminal-tab-title {
1502
+ .terminal-tab.active > .terminal-tab-button .terminal-tab-title,
1503
+ .terminal-tab-group-item.active > .terminal-tab-button .terminal-tab-title {
1431
1504
  color: var(--ctp-teal);
1432
1505
  text-shadow: 0 0 0.8rem var(--glow-teal);
1433
1506
  }
1434
- .terminal-tab.activity-working .terminal-tab-meta,
1435
- .terminal-tab-group-item.activity-working .terminal-tab-meta { color: rgba(249, 226, 175, 0.82); }
1436
- .terminal-tab.activity-blocked .terminal-tab-meta,
1437
- .terminal-tab-group-item.activity-blocked .terminal-tab-meta { color: rgba(250, 179, 135, 0.88); }
1438
- .terminal-tab.activity-done .terminal-tab-meta,
1439
- .terminal-tab-group-item.activity-done .terminal-tab-meta { color: rgba(166, 227, 161, 0.82); }
1507
+ .terminal-tab.activity-working > .terminal-tab-button .terminal-tab-meta,
1508
+ .terminal-tab-group-item.activity-working > .terminal-tab-button .terminal-tab-meta { color: rgba(249, 226, 175, 0.82); }
1509
+ .terminal-tab.activity-blocked > .terminal-tab-button .terminal-tab-meta,
1510
+ .terminal-tab-group-item.activity-blocked > .terminal-tab-button .terminal-tab-meta { color: rgba(250, 179, 135, 0.88); }
1511
+ .terminal-tab.activity-done > .terminal-tab-button .terminal-tab-meta,
1512
+ .terminal-tab-group-item.activity-done > .terminal-tab-button .terminal-tab-meta { color: rgba(166, 227, 161, 0.82); }
1440
1513
  .terminal-tab-close {
1441
1514
  flex: 0 0 2.1rem;
1442
1515
  color: rgba(var(--ctp-subtext-rgb), 0.72);
@@ -1877,6 +1950,9 @@ button.footer-meta {
1877
1950
  .footer-thinking.footer-meta-action {
1878
1951
  border-color: rgba(203, 166, 247, 0.24);
1879
1952
  }
1953
+ .footer-branch.footer-meta-action {
1954
+ border-color: rgba(245, 194, 231, 0.24);
1955
+ }
1880
1956
  .footer-model-picker {
1881
1957
  position: absolute;
1882
1958
  left: var(--footer-model-picker-left, auto);
@@ -1923,6 +1999,22 @@ button.footer-meta {
1923
1999
  .footer-model-picker-empty strong {
1924
2000
  color: var(--ctp-yellow);
1925
2001
  }
2002
+ .footer-model-picker-empty.error {
2003
+ border-color: rgba(243, 139, 168, 0.24);
2004
+ }
2005
+ .footer-model-picker-empty.error strong {
2006
+ color: var(--ctp-red);
2007
+ }
2008
+ .footer-branch-picker {
2009
+ width: min(28rem, calc(100vw - 2rem));
2010
+ border-color: rgba(245, 194, 231, 0.30);
2011
+ background:
2012
+ radial-gradient(circle at 8% 0%, rgba(245, 194, 231, 0.12), transparent 12rem),
2013
+ linear-gradient(145deg, rgba(var(--ctp-crust-rgb), 0.98), rgba(var(--ctp-base-rgb), 0.96));
2014
+ }
2015
+ .footer-branch-picker .footer-model-picker-title {
2016
+ color: var(--ctp-pink);
2017
+ }
1926
2018
  .footer-model-option {
1927
2019
  display: grid;
1928
2020
  grid-template-columns: minmax(0, 1fr);
@@ -1936,6 +2028,21 @@ button.footer-meta {
1936
2028
  border-color: rgba(166, 227, 161, 0.46);
1937
2029
  box-shadow: inset 3px 0 0 var(--ctp-green), 0 0 1rem rgba(166, 227, 161, 0.14);
1938
2030
  }
2031
+ .footer-branch-option.active {
2032
+ border-color: rgba(245, 194, 231, 0.36);
2033
+ box-shadow: inset 3px 0 0 var(--ctp-pink), 0 0 1rem rgba(245, 194, 231, 0.12);
2034
+ }
2035
+ .footer-branch-option:disabled {
2036
+ cursor: default;
2037
+ opacity: 0.78;
2038
+ }
2039
+ .footer-branch-create-option {
2040
+ border-color: rgba(166, 227, 161, 0.34);
2041
+ box-shadow: inset 3px 0 0 var(--ctp-green), 0 0 1rem rgba(166, 227, 161, 0.10);
2042
+ }
2043
+ .footer-branch-create-option .footer-model-option-main {
2044
+ color: var(--ctp-green);
2045
+ }
1939
2046
  .footer-model-option-main,
1940
2047
  .footer-model-option-name {
1941
2048
  min-width: 0;
@@ -1993,6 +2100,284 @@ button.footer-meta {
1993
2100
  .tone-green .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-green), var(--ctp-teal)); }
1994
2101
  .tone-teal .footer-metric-icon { background: linear-gradient(135deg, var(--ctp-teal), var(--ctp-sky)); }
1995
2102
 
2103
+ .extension-dialog.git-changes-dialog {
2104
+ --git-changes-dialog-size: min(96rem, calc(100vw - 1.5rem), calc(var(--visual-viewport-height, 100dvh) - 1.5rem));
2105
+ width: var(--git-changes-dialog-size);
2106
+ height: var(--git-changes-dialog-size);
2107
+ max-width: var(--git-changes-dialog-size);
2108
+ max-height: var(--git-changes-dialog-size);
2109
+ aspect-ratio: 1 / 1;
2110
+ overflow: hidden;
2111
+ }
2112
+ .git-changes-dialog form {
2113
+ display: grid;
2114
+ grid-template-rows: auto auto minmax(0, 1fr) auto;
2115
+ gap: 0.72rem;
2116
+ height: 100%;
2117
+ min-height: 0;
2118
+ max-height: none;
2119
+ }
2120
+ .git-changes-header {
2121
+ display: flex;
2122
+ align-items: flex-start;
2123
+ justify-content: space-between;
2124
+ gap: 1rem;
2125
+ }
2126
+ .git-changes-header > div:first-child {
2127
+ min-width: 0;
2128
+ }
2129
+ .git-changes-kicker {
2130
+ display: block;
2131
+ color: var(--ctp-yellow);
2132
+ font-size: 0.72rem;
2133
+ font-weight: 950;
2134
+ letter-spacing: 0.16em;
2135
+ text-transform: uppercase;
2136
+ text-shadow: 0 0 0.9rem rgba(249, 226, 175, 0.28);
2137
+ }
2138
+ .git-changes-dialog h2 {
2139
+ margin: 0.1rem 0 0;
2140
+ color: var(--ctp-text);
2141
+ }
2142
+ .git-changes-dialog p {
2143
+ margin: 0.22rem 0 0;
2144
+ }
2145
+ .git-changes-status.error,
2146
+ .git-changes-empty.error {
2147
+ color: var(--ctp-red);
2148
+ }
2149
+ .git-changes-empty.success {
2150
+ color: var(--ctp-green);
2151
+ }
2152
+ .git-changes-body {
2153
+ display: grid;
2154
+ gap: 0.82rem;
2155
+ min-height: min(32rem, 52dvh);
2156
+ overflow: auto;
2157
+ padding: 0.72rem;
2158
+ border: 1px solid rgba(180, 190, 254, 0.18);
2159
+ border-radius: 0.95rem;
2160
+ background:
2161
+ radial-gradient(circle at 12% 0%, rgba(249, 226, 175, 0.08), transparent 20rem),
2162
+ linear-gradient(145deg, rgba(var(--ctp-crust-rgb), 0.72), rgba(var(--ctp-base-rgb), 0.58));
2163
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
2164
+ }
2165
+ .git-current-file-header {
2166
+ position: sticky;
2167
+ top: -0.72rem;
2168
+ z-index: 8;
2169
+ display: flex;
2170
+ align-items: center;
2171
+ gap: 0.58rem;
2172
+ min-width: 0;
2173
+ margin: 0 -0.72rem;
2174
+ padding: 0.48rem 0.72rem;
2175
+ border-top: 1px solid rgba(180, 190, 254, 0.12);
2176
+ border-bottom: 1px solid rgba(180, 190, 254, 0.18);
2177
+ background: rgba(var(--ctp-crust-rgb), 0.94);
2178
+ box-shadow: 0 0.55rem 1rem rgba(var(--ctp-crust-rgb), 0.36), inset 0 1px 0 rgba(255,255,255,0.04);
2179
+ backdrop-filter: blur(12px) saturate(140%);
2180
+ }
2181
+ .git-current-file-label {
2182
+ flex: 0 0 auto;
2183
+ color: rgba(var(--ctp-subtext-rgb), 0.68);
2184
+ font-size: 0.62rem;
2185
+ font-weight: 950;
2186
+ letter-spacing: 0.12em;
2187
+ text-transform: uppercase;
2188
+ }
2189
+ .git-current-file-name {
2190
+ min-width: 0;
2191
+ overflow: hidden;
2192
+ color: var(--ctp-yellow);
2193
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
2194
+ font-weight: 900;
2195
+ text-overflow: ellipsis;
2196
+ white-space: nowrap;
2197
+ }
2198
+ .git-changes-empty {
2199
+ display: grid;
2200
+ place-items: center;
2201
+ min-height: 10rem;
2202
+ padding: 1rem;
2203
+ color: rgba(var(--ctp-subtext-rgb), 0.76);
2204
+ font-weight: 800;
2205
+ text-align: center;
2206
+ }
2207
+ .git-changes-overview {
2208
+ display: grid;
2209
+ grid-template-columns: repeat(5, minmax(7rem, 1fr));
2210
+ gap: 0.5rem;
2211
+ }
2212
+ .git-changes-chip {
2213
+ min-width: 0;
2214
+ padding: 0.48rem 0.58rem;
2215
+ border: 1px solid rgba(180, 190, 254, 0.18);
2216
+ border-radius: 0.72rem;
2217
+ background: rgba(var(--ctp-crust-rgb), 0.42);
2218
+ }
2219
+ .git-changes-chip.wide {
2220
+ grid-column: span 2;
2221
+ }
2222
+ .git-changes-chip-label {
2223
+ display: block;
2224
+ color: rgba(var(--ctp-subtext-rgb), 0.64);
2225
+ font-size: 0.62rem;
2226
+ font-weight: 950;
2227
+ letter-spacing: 0.12em;
2228
+ text-transform: uppercase;
2229
+ }
2230
+ .git-changes-chip-value {
2231
+ display: block;
2232
+ min-width: 0;
2233
+ overflow: hidden;
2234
+ color: var(--ctp-text);
2235
+ font-weight: 850;
2236
+ text-overflow: ellipsis;
2237
+ white-space: nowrap;
2238
+ }
2239
+ .git-changes-chip.success .git-changes-chip-value { color: var(--ctp-green); }
2240
+ .git-changes-chip.warning .git-changes-chip-value { color: var(--ctp-yellow); }
2241
+ .git-changes-chip.danger .git-changes-chip-value { color: var(--ctp-red); }
2242
+ .git-changes-chip.muted .git-changes-chip-value { color: rgba(var(--ctp-subtext-rgb), 0.76); }
2243
+ .git-diff-section {
2244
+ display: grid;
2245
+ gap: 0.55rem;
2246
+ }
2247
+ .git-diff-section-heading,
2248
+ .git-diff-file-summary {
2249
+ display: flex;
2250
+ align-items: center;
2251
+ justify-content: space-between;
2252
+ gap: 0.75rem;
2253
+ min-width: 0;
2254
+ }
2255
+ .git-diff-section-heading {
2256
+ padding: 0.1rem 0.1rem 0;
2257
+ }
2258
+ .git-diff-section-title {
2259
+ color: var(--ctp-yellow);
2260
+ font-weight: 950;
2261
+ letter-spacing: 0.08em;
2262
+ text-transform: uppercase;
2263
+ }
2264
+ .git-diff-section-meta,
2265
+ .git-diff-file-stats {
2266
+ color: rgba(var(--ctp-subtext-rgb), 0.66);
2267
+ font-size: 0.72rem;
2268
+ font-weight: 760;
2269
+ white-space: nowrap;
2270
+ }
2271
+ .git-diff-file {
2272
+ overflow: hidden;
2273
+ margin: 0;
2274
+ padding: 0;
2275
+ border: 1px solid rgba(180, 190, 254, 0.16);
2276
+ border-radius: 0.78rem;
2277
+ background: rgba(var(--ctp-mantle-rgb), 0.62);
2278
+ }
2279
+ .git-diff-file-summary {
2280
+ cursor: pointer;
2281
+ padding: 0.52rem 0.66rem;
2282
+ color: inherit;
2283
+ border-bottom: 1px solid rgba(180, 190, 254, 0.14);
2284
+ background: rgba(var(--ctp-crust-rgb), 0.42);
2285
+ }
2286
+ .git-untracked-full-file {
2287
+ border-color: rgba(166, 227, 161, 0.22);
2288
+ }
2289
+ .git-untracked-full-file .git-diff-file-summary {
2290
+ background: linear-gradient(90deg, rgba(166, 227, 161, 0.11), rgba(var(--ctp-crust-rgb), 0.44));
2291
+ }
2292
+ .git-diff-file-name {
2293
+ min-width: 0;
2294
+ overflow: hidden;
2295
+ color: var(--ctp-text);
2296
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
2297
+ font-weight: 850;
2298
+ text-overflow: ellipsis;
2299
+ white-space: nowrap;
2300
+ }
2301
+ .git-diff-grid {
2302
+ display: grid;
2303
+ grid-template-columns: 3.8rem minmax(22rem, 1fr) 3.8rem minmax(22rem, 1fr);
2304
+ min-width: 56rem;
2305
+ overflow-x: auto;
2306
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
2307
+ font-size: 0.82rem;
2308
+ line-height: 1.45;
2309
+ }
2310
+ .git-diff-row {
2311
+ display: contents;
2312
+ }
2313
+ .git-diff-line-number,
2314
+ .git-diff-line {
2315
+ min-height: 1.45rem;
2316
+ padding: 0.08rem 0.46rem;
2317
+ border-top: 1px solid rgba(180, 190, 254, 0.055);
2318
+ }
2319
+ .git-diff-line-number {
2320
+ color: rgba(var(--ctp-subtext-rgb), 0.56);
2321
+ background: rgba(var(--ctp-crust-rgb), 0.44);
2322
+ font-variant-numeric: tabular-nums;
2323
+ text-align: right;
2324
+ user-select: none;
2325
+ }
2326
+ .git-diff-line-number.new {
2327
+ border-left: 1px solid rgba(180, 190, 254, 0.24);
2328
+ }
2329
+ .git-diff-line {
2330
+ overflow-wrap: anywhere;
2331
+ white-space: pre-wrap;
2332
+ }
2333
+ .git-diff-row.hunk .git-diff-line,
2334
+ .git-diff-row.hunk .git-diff-line-number,
2335
+ .git-diff-row.meta .git-diff-line,
2336
+ .git-diff-row.meta .git-diff-line-number {
2337
+ color: rgba(var(--ctp-subtext-rgb), 0.78);
2338
+ background: rgba(137, 180, 250, 0.08);
2339
+ }
2340
+ .git-diff-row.removed .git-diff-line.old,
2341
+ .git-diff-row.changed .git-diff-line.old {
2342
+ color: #ffd6dd;
2343
+ background: rgba(243, 139, 168, 0.18);
2344
+ }
2345
+ .git-diff-row.added .git-diff-line.new,
2346
+ .git-diff-row.changed .git-diff-line.new {
2347
+ color: #d8ffd0;
2348
+ background: rgba(166, 227, 161, 0.18);
2349
+ }
2350
+ .git-diff-row.removed .git-diff-line-number.old,
2351
+ .git-diff-row.changed .git-diff-line-number.old {
2352
+ color: var(--ctp-red);
2353
+ background: rgba(243, 139, 168, 0.12);
2354
+ }
2355
+ .git-diff-row.added .git-diff-line-number.new,
2356
+ .git-diff-row.changed .git-diff-line-number.new {
2357
+ color: var(--ctp-green);
2358
+ background: rgba(166, 227, 161, 0.12);
2359
+ }
2360
+ .git-diff-raw {
2361
+ margin: 0;
2362
+ padding: 0.72rem;
2363
+ overflow: auto;
2364
+ color: rgba(var(--ctp-subtext-rgb), 0.82);
2365
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
2366
+ white-space: pre-wrap;
2367
+ }
2368
+ .git-untracked-list {
2369
+ display: grid;
2370
+ gap: 0.35rem;
2371
+ }
2372
+ .git-untracked-file {
2373
+ padding: 0.45rem 0.58rem;
2374
+ border: 1px solid rgba(137, 180, 250, 0.18);
2375
+ border-radius: 0.62rem;
2376
+ background: rgba(var(--ctp-crust-rgb), 0.38);
2377
+ color: var(--ctp-sky);
2378
+ overflow-wrap: anywhere;
2379
+ }
2380
+
1996
2381
  .git-workflow-panel[hidden] { display: none; }
1997
2382
  .git-workflow-panel {
1998
2383
  flex: 0 0 auto;
@@ -3599,7 +3984,7 @@ button.composer-skill-tag:focus-visible {
3599
3984
  background: linear-gradient(180deg, rgba(137, 180, 250, 0.14), rgba(var(--ctp-crust-rgb), 0.86));
3600
3985
  }
3601
3986
  .command-suggest {
3602
- margin-top: 0.5rem;
3987
+ margin: 0 0 0.5rem;
3603
3988
  max-height: 15rem;
3604
3989
  overflow: auto;
3605
3990
  background: rgba(var(--ctp-crust-rgb), 0.94);
@@ -5491,14 +5876,21 @@ button.composer-skill-tag:focus-visible {
5491
5876
  }
5492
5877
  .terminal-tab { min-width: min(11rem, 100%); max-width: 100%; flex: 1 1 9rem; }
5493
5878
  .terminal-tab-group {
5494
- flex-wrap: wrap;
5879
+ display: grid;
5880
+ grid-template-columns: minmax(0, 1fr) auto;
5881
+ align-items: stretch;
5495
5882
  }
5496
5883
  .terminal-tab-group:hover,
5497
5884
  .terminal-tab-group:focus-within,
5498
5885
  .terminal-tab-group.menu-open {
5499
5886
  flex-basis: 100%;
5500
5887
  }
5888
+ .terminal-tab-group-button {
5889
+ width: auto;
5890
+ min-width: 0;
5891
+ }
5501
5892
  .terminal-tab-group-menu {
5893
+ grid-column: 1 / -1;
5502
5894
  position: static;
5503
5895
  flex-direction: column;
5504
5896
  flex-wrap: nowrap;
@@ -5506,7 +5898,7 @@ button.composer-skill-tag:focus-visible {
5506
5898
  max-width: none;
5507
5899
  max-height: none;
5508
5900
  min-width: 0;
5509
- margin: 0.34rem;
5901
+ margin: 0.34rem 0 0;
5510
5902
  padding-top: 0;
5511
5903
  overflow: visible;
5512
5904
  }
@@ -5780,6 +6172,7 @@ button.composer-skill-tag:focus-visible {
5780
6172
  .composer {
5781
6173
  position: sticky;
5782
6174
  bottom: 0;
6175
+ z-index: 50;
5783
6176
  padding: 0.55rem 0.55rem calc(0.55rem + env(safe-area-inset-bottom));
5784
6177
  background: linear-gradient(180deg, rgba(var(--ctp-crust-rgb), 0.92), rgba(var(--ctp-crust-rgb), 0.98));
5785
6178
  box-shadow: 0 -0.85rem 1.8rem rgba(var(--ctp-crust-rgb), 0.56), inset 0 1px 0 rgba(255,255,255,0.04);
@@ -5843,12 +6236,12 @@ button.composer-skill-tag:focus-visible {
5843
6236
  left: 0.55rem;
5844
6237
  right: 0.55rem;
5845
6238
  bottom: calc(100% + 0.42rem);
5846
- z-index: 8;
6239
+ z-index: 55;
5847
6240
  display: none;
5848
6241
  grid-template-columns: repeat(3, minmax(0, 1fr));
5849
6242
  gap: 0.45rem;
5850
6243
  max-height: min(42dvh, 22rem);
5851
- overflow: auto;
6244
+ overflow: visible;
5852
6245
  padding: 0.68rem;
5853
6246
  border: 1px solid rgba(249, 226, 175, 0.24);
5854
6247
  border-radius: 0.95rem;
@@ -5881,8 +6274,17 @@ button.composer-skill-tag:focus-visible {
5881
6274
  font-size: 0.92rem;
5882
6275
  }
5883
6276
  body:not(.pi-run-active):not(.mobile-keyboard-open) .composer-row button.primary { grid-column: span 4; }
5884
- body.pi-run-active:not(.mobile-keyboard-open) .composer-abort-button:not([hidden]) { grid-column: span 2; }
5885
- body.pi-run-active:not(.mobile-keyboard-open) .composer-row button.primary { grid-column: span 4; }
6277
+ body.pi-run-active:not(.mobile-keyboard-open) .composer-abort-button:not([hidden]) {
6278
+ order: 1;
6279
+ grid-column: span 2;
6280
+ }
6281
+ body.pi-run-active:not(.mobile-keyboard-open) .composer-row > #steerButton { order: 2; }
6282
+ body.pi-run-active:not(.mobile-keyboard-open) .composer-row > #followUpButton { order: 3; }
6283
+ body.pi-run-active:not(.mobile-keyboard-open) .composer-actions-button { order: 4; }
6284
+ body.pi-run-active:not(.mobile-keyboard-open) .composer-row button.primary {
6285
+ order: 5;
6286
+ grid-column: span 4;
6287
+ }
5886
6288
  .composer-row > #followUpButton,
5887
6289
  .composer-row > #steerButton,
5888
6290
  .composer-actions-button { grid-column: span 2; }
@@ -5896,31 +6298,49 @@ button.composer-skill-tag:focus-visible {
5896
6298
  width: 100%;
5897
6299
  margin-right: 0;
5898
6300
  }
6301
+ .composer-actions-panel > .composer-publish-menu::after {
6302
+ content: "";
6303
+ position: absolute;
6304
+ left: -0.32rem;
6305
+ right: -0.32rem;
6306
+ bottom: 100%;
6307
+ display: none;
6308
+ height: 0.8rem;
6309
+ pointer-events: auto;
6310
+ }
6311
+ .composer-actions-panel > .composer-publish-menu:hover::after,
6312
+ .composer-actions-panel > .composer-publish-menu:focus-within::after,
6313
+ .composer-actions-panel > .composer-publish-menu.open::after {
6314
+ display: block;
6315
+ }
5899
6316
  .composer-actions-panel > .composer-publish-menu.open {
5900
- display: grid;
5901
- grid-column: 1 / -1;
5902
- grid-template-columns: repeat(2, minmax(0, 1fr));
5903
- gap: 0.42rem;
6317
+ z-index: 120;
5904
6318
  }
5905
- .composer-actions-panel > .composer-publish-menu.open .composer-publish-button,
5906
- .composer-actions-panel > .composer-publish-menu .composer-publish-menu-panel {
5907
- grid-column: 1 / -1;
6319
+ .composer-actions-panel > .composer-publish-menu.open .composer-publish-button {
6320
+ min-width: 0;
5908
6321
  }
5909
6322
  .composer-actions-panel > .composer-publish-menu .composer-publish-menu-panel {
5910
- position: static;
6323
+ position: absolute;
6324
+ inset: auto auto calc(100% + 0.38rem) 0;
5911
6325
  flex-direction: column;
5912
6326
  width: 100%;
5913
6327
  min-width: 0;
5914
6328
  max-width: 100%;
5915
- max-height: none;
5916
- margin-left: 0;
6329
+ max-height: min(34dvh, 18rem);
6330
+ margin: 0;
5917
6331
  padding-bottom: 0;
5918
- overflow: visible;
6332
+ overflow: auto;
6333
+ }
6334
+ .composer-actions-panel > .composer-options-menu .composer-publish-menu-panel {
6335
+ inset-inline: auto 0;
6336
+ max-height: min(76dvh, 34rem);
5919
6337
  }
5920
6338
  .composer-actions-panel > .composer-publish-menu .composer-publish-menu-item {
5921
6339
  width: 100%;
6340
+ min-width: 0;
5922
6341
  max-width: 100%;
5923
- flex: 1 1 0;
6342
+ flex: 1 1 auto;
6343
+ white-space: normal;
5924
6344
  }
5925
6345
  .command-suggest {
5926
6346
  max-height: 35dvh;
@@ -5993,6 +6413,37 @@ button.composer-skill-tag:focus-visible {
5993
6413
  background: linear-gradient(180deg, transparent, rgba(var(--ctp-crust-rgb), 0.96) 35%);
5994
6414
  }
5995
6415
  .extension-dialog menu button { flex: 1 1 9rem; }
6416
+ .extension-dialog.git-changes-dialog {
6417
+ inset: 0;
6418
+ margin: auto;
6419
+ border-radius: 1rem;
6420
+ }
6421
+ .git-changes-dialog form {
6422
+ max-height: 100%;
6423
+ }
6424
+ .git-changes-header {
6425
+ flex-direction: column;
6426
+ gap: 0.62rem;
6427
+ }
6428
+ .git-changes-header button {
6429
+ width: 100%;
6430
+ }
6431
+ .git-changes-body {
6432
+ min-height: min(24rem, 54dvh);
6433
+ padding: 0.55rem;
6434
+ }
6435
+ .git-changes-overview {
6436
+ grid-template-columns: repeat(2, minmax(0, 1fr));
6437
+ }
6438
+ .git-changes-chip.wide {
6439
+ grid-column: 1 / -1;
6440
+ }
6441
+ .git-diff-section-heading,
6442
+ .git-diff-file-summary {
6443
+ align-items: flex-start;
6444
+ flex-direction: column;
6445
+ gap: 0.25rem;
6446
+ }
5996
6447
  .composer-row button[data-tooltip]:not(.tooltip-open)::before,
5997
6448
  .composer-row button[data-tooltip]:not(.tooltip-open)::after { display: none; }
5998
6449
  .composer-row button[data-tooltip].tooltip-open::before,