@firstpick/pi-package-webui 0.2.9 → 0.3.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.
package/public/index.html CHANGED
@@ -12,7 +12,7 @@
12
12
  <link rel="manifest" href="/manifest.webmanifest" />
13
13
  <link rel="icon" type="image/svg+xml" href="/favicon.svg" />
14
14
  <link rel="apple-touch-icon" href="/apple-touch-icon.png" />
15
- <link rel="stylesheet" href="/styles.css?v=23" />
15
+ <link rel="stylesheet" href="/styles.css?v=24" />
16
16
  </head>
17
17
  <body>
18
18
  <button id="sidePanelExpandButton" class="side-panel-expand-button" type="button" aria-controls="sidePanel" aria-expanded="false" aria-label="Expand side panel" title="Expand side panel">
@@ -95,13 +95,6 @@
95
95
  <div class="composer-row">
96
96
  <button id="composerActionsButton" class="composer-actions-button" type="button" aria-controls="composerActionsPanel" aria-expanded="false" title="Open session, workflow, and follow-up actions">Actions</button>
97
97
  <div id="composerActionsPanel" class="composer-actions-panel" aria-label="Composer actions">
98
- <label>
99
- Busy prompt behavior
100
- <select id="busyBehavior">
101
- <option value="followUp">follow-up</option>
102
- <option value="steer">steer</option>
103
- </select>
104
- </label>
105
98
  <button id="newSessionButton" class="composer-new-button" type="button">New</button>
106
99
  <button id="compactButton" class="composer-compact-button" type="button" title="Compact the current Pi session context">Compact</button>
107
100
  <button
@@ -354,10 +347,21 @@
354
347
  <h2>
355
348
  <button id="sidePanelSectionToggleQueue" class="side-panel-section-toggle" type="button" aria-expanded="false" aria-controls="sidePanelSectionQueue" aria-label="Expand Queue section" title="Expand Queue section" data-side-panel-section-toggle="queue">
356
349
  <span class="side-panel-section-label">Queue</span>
357
- <span class="side-panel-section-chevron" aria-hidden="true">›</span>
350
+ <span class="side-panel-section-trailing">
351
+ <span id="queueCountBadge" class="side-panel-section-badge" hidden>0</span>
352
+ <span class="side-panel-section-chevron" aria-hidden="true">›</span>
353
+ </span>
358
354
  </button>
359
355
  </h2>
360
356
  <div id="sidePanelSectionQueue" class="side-panel-section-content" hidden>
357
+ <div class="prompt-list-controls" aria-label="Prompt lists">
358
+ <button id="createPromptListButton" type="button">Create prompt list</button>
359
+ <div class="prompt-list-side-actions">
360
+ <button id="loadPromptListButton" type="button">Load List</button>
361
+ <button id="runLoadedPromptListButton" type="button" disabled>Run</button>
362
+ </div>
363
+ <div id="loadedPromptListBox" class="loaded-prompt-list-box muted">No prompt list loaded.</div>
364
+ </div>
361
365
  <div id="queueBox" class="queue-box muted">No queued messages.</div>
362
366
  </div>
363
367
  </section>
@@ -406,6 +410,15 @@
406
410
  </div>
407
411
  <div id="pathPickerFastPicks" class="path-picker-fast-picks" aria-label="Fast picks"></div>
408
412
  <div id="pathPickerRoots" class="path-picker-roots"></div>
413
+ <div class="path-picker-create-row" aria-label="Create a new directory in the current directory">
414
+ <input id="pathPickerCreateNameInput" class="path-picker-create-input" type="text" placeholder="New directory name" autocomplete="off" spellcheck="false" maxlength="255" aria-label="New directory name" />
415
+ <button id="pathPickerCreateButton" type="button" class="path-picker-create-button">Create directory</button>
416
+ </div>
417
+ <div class="path-picker-search-row" aria-label="Search directories in the current directory">
418
+ <input id="pathPickerSearchInput" class="path-picker-search-input" type="search" placeholder="Search current directory…" autocomplete="off" spellcheck="false" aria-label="Search current directory" />
419
+ <button id="pathPickerClearSearchButton" type="button" class="path-picker-clear-search-button" hidden>Clear</button>
420
+ </div>
421
+ <p id="pathPickerSearchStatus" class="path-picker-search-status muted" role="status" aria-live="polite"></p>
409
422
  <div id="pathPickerList" class="path-picker-list" role="listbox" aria-label="Directories"></div>
410
423
  <p id="pathPickerError" class="path-picker-error" hidden></p>
411
424
  <menu>
@@ -426,6 +439,34 @@
426
439
  </form>
427
440
  </dialog>
428
441
 
429
- <script type="module" src="/app.js?v=23"></script>
442
+ <dialog id="promptListDialog" class="extension-dialog prompt-list-dialog">
443
+ <form method="dialog">
444
+ <h2 id="promptListDialogTitle">Create prompt list</h2>
445
+ <p class="muted">Create one start prompt, then add any number of follow-up prompts to queue behind it.</p>
446
+ <label class="prompt-list-name-field" for="promptListNameInput">
447
+ <span>List name</span>
448
+ <input id="promptListNameInput" class="dialog-input" type="text" autocomplete="off" placeholder="Optional name" />
449
+ </label>
450
+ <div id="promptListEditorRows" class="prompt-list-editor-rows"></div>
451
+ <button id="promptListAddPromptButton" class="prompt-list-add-button" type="button">+ Add follow-up prompt</button>
452
+ <div id="promptListLoadPanel" class="prompt-list-load-panel" hidden>
453
+ <label for="promptListSelect">Saved lists</label>
454
+ <div class="prompt-list-load-row">
455
+ <select id="promptListSelect" title="Saved prompt lists"></select>
456
+ <button id="promptListLoadSelectedButton" type="button">Load selected</button>
457
+ <button id="promptListDeleteSelectedButton" class="danger" type="button">Delete</button>
458
+ </div>
459
+ </div>
460
+ <p id="promptListStatus" class="prompt-list-status muted" role="status" aria-live="polite"></p>
461
+ <menu>
462
+ <button id="promptListCloseButton" type="button">Cancel</button>
463
+ <button id="promptListDialogLoadButton" type="button">Load</button>
464
+ <button id="promptListSaveButton" type="button">Save</button>
465
+ <button id="promptListRunListButton" class="primary" type="button">Run List</button>
466
+ </menu>
467
+ </form>
468
+ </dialog>
469
+
470
+ <script type="module" src="/app.js?v=24"></script>
430
471
  </body>
431
472
  </html>
package/public/styles.css CHANGED
@@ -675,6 +675,25 @@ body.side-panel-collapsed .terminal-tabs-shell {
675
675
  .side-panel-section-toggle[aria-expanded="true"] {
676
676
  border-color: rgba(245, 194, 231, 0.32);
677
677
  }
678
+ .side-panel-section-trailing {
679
+ display: inline-flex;
680
+ flex: 0 0 auto;
681
+ align-items: center;
682
+ gap: 0.42rem;
683
+ }
684
+ .side-panel-section-badge {
685
+ min-width: 1.35rem;
686
+ padding: 0.12rem 0.38rem;
687
+ color: #11111b;
688
+ border-radius: 999px;
689
+ background: linear-gradient(135deg, var(--ctp-yellow), var(--ctp-peach));
690
+ box-shadow: 0 0 0.7rem rgba(249, 226, 175, 0.18);
691
+ font-size: 0.68rem;
692
+ line-height: 1.1;
693
+ text-align: center;
694
+ letter-spacing: 0.02em;
695
+ }
696
+ .side-panel-section-badge[hidden] { display: none; }
678
697
  .side-panel-section-chevron {
679
698
  flex: 0 0 auto;
680
699
  color: var(--ctp-teal);
@@ -1131,6 +1150,27 @@ body.side-panel-collapsed .terminal-tabs-shell {
1131
1150
  overflow-x: auto;
1132
1151
  scrollbar-width: thin;
1133
1152
  }
1153
+ .terminal-tabs.terminal-tabs-dense {
1154
+ align-items: stretch;
1155
+ align-content: flex-start;
1156
+ flex-wrap: wrap;
1157
+ max-height: min(30dvh, 14rem);
1158
+ overflow: auto;
1159
+ padding-bottom: 0.08rem;
1160
+ }
1161
+ .terminal-tabs.terminal-tabs-dense:has(.terminal-tab-group:hover),
1162
+ .terminal-tabs.terminal-tabs-dense:has(.terminal-tab-group:focus-within),
1163
+ .terminal-tabs.terminal-tabs-dense:has(.terminal-tab-group.menu-open) {
1164
+ overflow: visible;
1165
+ }
1166
+ .terminal-tabs.terminal-tabs-dense .terminal-tab {
1167
+ flex: 1 1 12rem;
1168
+ min-width: min(11rem, 100%);
1169
+ max-width: min(20rem, 100%);
1170
+ }
1171
+ .terminal-tabs.terminal-tabs-dense .terminal-tab-meta {
1172
+ display: none;
1173
+ }
1134
1174
  .terminal-tabs-shell:has(.terminal-tab-group:hover),
1135
1175
  .terminal-tabs-shell:has(.terminal-tab-group:focus-within),
1136
1176
  .terminal-tabs-shell:has(.terminal-tab-group.menu-open) {
@@ -1188,10 +1228,10 @@ body.side-panel-collapsed .terminal-tabs-shell {
1188
1228
  flex-direction: column;
1189
1229
  align-items: stretch;
1190
1230
  gap: 0.38rem;
1191
- width: max-content;
1231
+ width: 100%;
1192
1232
  padding-top: 0.38rem;
1193
- min-width: 100%;
1194
- max-width: min(18rem, calc(100vw - 2rem));
1233
+ min-width: 0;
1234
+ max-width: 100%;
1195
1235
  max-height: min(60vh, 24rem);
1196
1236
  overflow: auto;
1197
1237
  scrollbar-width: thin;
@@ -1203,10 +1243,11 @@ body.side-panel-collapsed .terminal-tabs-shell {
1203
1243
  }
1204
1244
  .terminal-tab-group-item {
1205
1245
  display: inline-flex;
1246
+ flex: 0 0 auto;
1206
1247
  align-items: stretch;
1207
- width: min(16rem, calc(100vw - 2rem));
1208
- min-width: 9rem;
1209
- max-width: 16rem;
1248
+ width: 100%;
1249
+ min-width: 0;
1250
+ max-width: 100%;
1210
1251
  border: 1px solid rgba(180, 190, 254, 0.16);
1211
1252
  border-radius: 0.82rem;
1212
1253
  overflow: hidden;
@@ -1234,7 +1275,8 @@ body.side-panel-collapsed .terminal-tabs-shell {
1234
1275
  border-color: rgba(166, 227, 161, 0.52);
1235
1276
  }
1236
1277
  .terminal-tab-group-add {
1237
- width: min(16rem, calc(100vw - 2rem));
1278
+ flex: 0 0 auto;
1279
+ width: 100%;
1238
1280
  min-height: 2.35rem;
1239
1281
  padding: 0.38rem 0.72rem;
1240
1282
  color: var(--ctp-pink);
@@ -1554,6 +1596,30 @@ button.footer-tui-item {
1554
1596
  linear-gradient(90deg, rgba(203, 166, 247, 0.06), rgba(148, 226, 213, 0.03));
1555
1597
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.035), 0 0.45rem 1rem rgba(0, 0, 0, 0.10);
1556
1598
  }
1599
+ .footer-floating-tooltip {
1600
+ position: fixed;
1601
+ z-index: 1000;
1602
+ max-width: min(24rem, calc(100vw - 1rem));
1603
+ padding: 0.58rem 0.68rem;
1604
+ color: var(--ctp-text);
1605
+ border: 1px solid rgba(180, 190, 254, 0.28);
1606
+ border-radius: 0.72rem;
1607
+ background: rgba(var(--ctp-crust-rgb), 0.96);
1608
+ box-shadow: 0 0.85rem 1.8rem rgba(var(--ctp-crust-rgb), 0.42), inset 0 1px 0 rgba(255,255,255,0.05);
1609
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
1610
+ font-size: 0.72rem;
1611
+ font-weight: 750;
1612
+ line-height: 1.35;
1613
+ overflow-wrap: anywhere;
1614
+ pointer-events: none;
1615
+ text-align: left;
1616
+ white-space: pre-wrap;
1617
+ opacity: 0;
1618
+ transition: opacity 120ms ease;
1619
+ }
1620
+ .footer-floating-tooltip.visible {
1621
+ opacity: 1;
1622
+ }
1557
1623
  .footer-metric {
1558
1624
  display: inline-grid;
1559
1625
  grid-template-columns: auto auto minmax(0, 1fr);
@@ -1758,9 +1824,7 @@ button.footer-meta {
1758
1824
  }
1759
1825
  .footer-changes {
1760
1826
  border-color: rgba(249, 226, 175, 0.36);
1761
- background:
1762
- linear-gradient(120deg, rgba(249, 226, 175, 0.14), rgba(250, 179, 135, 0.08)),
1763
- linear-gradient(180deg, rgba(var(--ctp-surface-rgb), 0.54), rgba(var(--ctp-crust-rgb), 0.36));
1827
+ background: transparent;
1764
1828
  }
1765
1829
  .footer-changes .footer-meta-label {
1766
1830
  color: rgba(249, 226, 175, 0.88);
@@ -1774,9 +1838,7 @@ button.footer-meta {
1774
1838
  }
1775
1839
  .footer-git-extra {
1776
1840
  border-color: rgba(137, 180, 250, 0.34);
1777
- background:
1778
- linear-gradient(120deg, rgba(137, 180, 250, 0.13), rgba(148, 226, 213, 0.08)),
1779
- linear-gradient(180deg, rgba(var(--ctp-surface-rgb), 0.50), rgba(var(--ctp-crust-rgb), 0.36));
1841
+ background: transparent;
1780
1842
  }
1781
1843
  .footer-git-extra .footer-meta-label {
1782
1844
  color: rgba(137, 180, 250, 0.88);
@@ -2347,6 +2409,32 @@ button.footer-meta {
2347
2409
  font-weight: 900;
2348
2410
  white-space: nowrap;
2349
2411
  }
2412
+ .sticky-user-follow-up-prompt {
2413
+ display: grid;
2414
+ grid-column: 1 / -1;
2415
+ grid-template-columns: auto minmax(0, 1fr);
2416
+ gap: 0.5rem;
2417
+ min-width: 0;
2418
+ padding-top: 0.45rem;
2419
+ border-top: 1px solid rgba(148, 226, 213, 0.18);
2420
+ }
2421
+ .sticky-user-follow-up-label {
2422
+ color: var(--ctp-mauve);
2423
+ font-size: 0.68rem;
2424
+ font-weight: 950;
2425
+ letter-spacing: 0.09em;
2426
+ text-transform: uppercase;
2427
+ white-space: nowrap;
2428
+ }
2429
+ .sticky-user-follow-up-text {
2430
+ min-width: 0;
2431
+ overflow: hidden;
2432
+ color: rgba(var(--ctp-text-rgb), 0.88);
2433
+ font-size: 0.78rem;
2434
+ font-weight: 750;
2435
+ text-overflow: ellipsis;
2436
+ white-space: nowrap;
2437
+ }
2350
2438
  .jump-to-latest-button[hidden] { display: none; }
2351
2439
  .jump-to-latest-button {
2352
2440
  align-self: center;
@@ -3464,6 +3552,274 @@ summary { cursor: pointer; color: var(--warning); }
3464
3552
  padding: 0.72rem;
3465
3553
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
3466
3554
  }
3555
+ .queue-box {
3556
+ display: grid;
3557
+ gap: 0.68rem;
3558
+ }
3559
+ .queue-box.has-items {
3560
+ border-color: rgba(249, 226, 175, 0.24);
3561
+ background:
3562
+ radial-gradient(circle at 0 0, rgba(249, 226, 175, 0.09), transparent 10rem),
3563
+ rgba(var(--ctp-crust-rgb), 0.72);
3564
+ }
3565
+ .queue-empty {
3566
+ color: rgba(var(--ctp-subtext-rgb), 0.72);
3567
+ }
3568
+ .queue-summary {
3569
+ display: grid;
3570
+ gap: 0.45rem;
3571
+ }
3572
+ .queue-summary > strong {
3573
+ color: var(--ctp-yellow);
3574
+ font-size: 0.9rem;
3575
+ }
3576
+ .queue-summary-counts {
3577
+ display: flex;
3578
+ flex-wrap: wrap;
3579
+ gap: 0.38rem;
3580
+ }
3581
+ .queue-summary-pill {
3582
+ display: inline-flex;
3583
+ align-items: center;
3584
+ gap: 0.28rem;
3585
+ padding: 0.18rem 0.45rem;
3586
+ border: 1px solid rgba(180, 190, 254, 0.16);
3587
+ border-radius: 999px;
3588
+ color: rgba(var(--ctp-text-rgb), 0.86);
3589
+ background: rgba(var(--ctp-surface-rgb), 0.26);
3590
+ font-size: 0.72rem;
3591
+ font-weight: 800;
3592
+ text-transform: uppercase;
3593
+ letter-spacing: 0.05em;
3594
+ }
3595
+ .queue-summary-pill.steering { border-color: rgba(203, 166, 247, 0.26); }
3596
+ .queue-summary-pill.follow-up { border-color: rgba(137, 180, 250, 0.26); }
3597
+ .queue-summary-pill strong { color: var(--ctp-yellow); }
3598
+ .queue-group {
3599
+ display: grid;
3600
+ gap: 0.42rem;
3601
+ }
3602
+ .queue-group-title {
3603
+ display: flex;
3604
+ align-items: center;
3605
+ justify-content: space-between;
3606
+ gap: 0.5rem;
3607
+ margin: 0;
3608
+ color: rgba(var(--ctp-subtext-rgb), 0.78);
3609
+ font-size: 0.72rem;
3610
+ font-weight: 950;
3611
+ text-transform: uppercase;
3612
+ letter-spacing: 0.11em;
3613
+ }
3614
+ .queue-group.steering .queue-group-title { color: var(--ctp-mauve); }
3615
+ .queue-group.follow-up .queue-group-title { color: var(--ctp-blue); }
3616
+ .queue-group-count {
3617
+ min-width: 1.25rem;
3618
+ padding: 0.08rem 0.36rem;
3619
+ border-radius: 999px;
3620
+ background: rgba(var(--ctp-surface-rgb), 0.34);
3621
+ text-align: center;
3622
+ }
3623
+ .queue-list {
3624
+ display: grid;
3625
+ gap: 0.38rem;
3626
+ margin: 0;
3627
+ padding: 0;
3628
+ list-style: none;
3629
+ }
3630
+ .queue-item {
3631
+ display: grid;
3632
+ grid-template-columns: auto minmax(0, 1fr);
3633
+ gap: 0.48rem;
3634
+ align-items: start;
3635
+ padding: 0.48rem 0.55rem;
3636
+ border: 1px solid rgba(180, 190, 254, 0.12);
3637
+ border-radius: 0.68rem;
3638
+ background: rgba(var(--ctp-surface-rgb), 0.20);
3639
+ }
3640
+ .queue-item-number {
3641
+ color: rgba(var(--ctp-subtext-rgb), 0.70);
3642
+ font-size: 0.68rem;
3643
+ font-weight: 950;
3644
+ line-height: 1.45;
3645
+ }
3646
+ .queue-item-text {
3647
+ min-width: 0;
3648
+ color: rgba(var(--ctp-text-rgb), 0.92);
3649
+ font-size: 0.82rem;
3650
+ line-height: 1.42;
3651
+ overflow-wrap: anywhere;
3652
+ white-space: pre-wrap;
3653
+ }
3654
+ .queue-hint {
3655
+ color: rgba(var(--ctp-subtext-rgb), 0.68);
3656
+ font-size: 0.72rem;
3657
+ line-height: 1.35;
3658
+ }
3659
+ .prompt-list-controls {
3660
+ display: grid;
3661
+ gap: 0.58rem;
3662
+ margin-bottom: 0.68rem;
3663
+ padding: 0.72rem;
3664
+ border: 1px solid rgba(203, 166, 247, 0.18);
3665
+ border-radius: 0.82rem;
3666
+ background:
3667
+ radial-gradient(circle at 100% 0, rgba(203, 166, 247, 0.10), transparent 10rem),
3668
+ rgba(var(--ctp-crust-rgb), 0.58);
3669
+ box-shadow: inset 0 1px 0 rgba(255,255,255,0.035);
3670
+ }
3671
+ .prompt-list-controls > button,
3672
+ .prompt-list-side-actions button {
3673
+ width: 100%;
3674
+ min-width: 0;
3675
+ }
3676
+ .prompt-list-side-actions {
3677
+ display: grid;
3678
+ grid-template-columns: minmax(0, 1fr) auto;
3679
+ gap: 0.45rem;
3680
+ }
3681
+ .prompt-list-side-actions button:last-child {
3682
+ min-width: 5.2rem;
3683
+ }
3684
+ .loaded-prompt-list-box {
3685
+ display: grid;
3686
+ gap: 0.48rem;
3687
+ min-width: 0;
3688
+ padding: 0.58rem 0.62rem;
3689
+ border: 1px solid rgba(180, 190, 254, 0.14);
3690
+ border-radius: 0.72rem;
3691
+ background: rgba(var(--ctp-surface-rgb), 0.18);
3692
+ font-size: 0.78rem;
3693
+ line-height: 1.36;
3694
+ }
3695
+ .loaded-prompt-list-summary {
3696
+ display: grid;
3697
+ gap: 0.14rem;
3698
+ }
3699
+ .loaded-prompt-list-summary strong {
3700
+ color: var(--ctp-mauve);
3701
+ overflow-wrap: anywhere;
3702
+ }
3703
+ .loaded-prompt-list-summary span {
3704
+ color: rgba(var(--ctp-subtext-rgb), 0.72);
3705
+ font-size: 0.72rem;
3706
+ font-weight: 800;
3707
+ }
3708
+ .prompt-list-preview {
3709
+ display: grid;
3710
+ gap: 0.32rem;
3711
+ margin: 0;
3712
+ padding: 0;
3713
+ list-style: none;
3714
+ }
3715
+ .prompt-list-preview-item {
3716
+ display: grid;
3717
+ grid-template-columns: auto minmax(0, 1fr);
3718
+ gap: 0.42rem;
3719
+ align-items: start;
3720
+ }
3721
+ .prompt-list-preview-index {
3722
+ color: var(--ctp-teal);
3723
+ font-size: 0.68rem;
3724
+ font-weight: 950;
3725
+ text-transform: uppercase;
3726
+ }
3727
+ .prompt-list-preview-text {
3728
+ min-width: 0;
3729
+ overflow: hidden;
3730
+ color: rgba(var(--ctp-text-rgb), 0.88);
3731
+ text-overflow: ellipsis;
3732
+ white-space: nowrap;
3733
+ }
3734
+ .prompt-list-preview-more {
3735
+ color: rgba(var(--ctp-subtext-rgb), 0.68);
3736
+ font-size: 0.72rem;
3737
+ font-weight: 800;
3738
+ }
3739
+ .prompt-list-dialog {
3740
+ width: min(58rem, calc(100vw - 2rem));
3741
+ }
3742
+ .prompt-list-dialog form {
3743
+ display: grid;
3744
+ gap: 0.78rem;
3745
+ }
3746
+ .prompt-list-name-field,
3747
+ .prompt-list-load-panel {
3748
+ display: grid;
3749
+ gap: 0.42rem;
3750
+ }
3751
+ .prompt-list-name-field span,
3752
+ .prompt-list-load-panel label,
3753
+ .prompt-list-editor-label {
3754
+ color: rgba(var(--ctp-text-rgb), 0.74);
3755
+ font-size: 0.72rem;
3756
+ font-weight: 950;
3757
+ letter-spacing: 0.11em;
3758
+ text-transform: uppercase;
3759
+ }
3760
+ .prompt-list-editor-rows {
3761
+ display: grid;
3762
+ gap: 0.7rem;
3763
+ max-height: min(44vh, 28rem);
3764
+ overflow: auto;
3765
+ padding-right: 0.12rem;
3766
+ }
3767
+ .prompt-list-editor-row {
3768
+ display: grid;
3769
+ gap: 0.38rem;
3770
+ min-width: 0;
3771
+ }
3772
+ .prompt-list-editor-row-header {
3773
+ display: flex;
3774
+ align-items: center;
3775
+ justify-content: space-between;
3776
+ gap: 0.58rem;
3777
+ }
3778
+ .prompt-list-textarea {
3779
+ min-height: 6.5rem;
3780
+ resize: vertical;
3781
+ }
3782
+ .prompt-list-remove-button {
3783
+ width: 2.4rem;
3784
+ min-width: 2.4rem;
3785
+ min-height: 2.2rem;
3786
+ padding: 0;
3787
+ color: var(--ctp-red);
3788
+ font-size: 1.2rem;
3789
+ font-weight: 950;
3790
+ line-height: 1;
3791
+ }
3792
+ .prompt-list-add-button {
3793
+ justify-self: start;
3794
+ color: var(--ctp-teal);
3795
+ border-color: rgba(148, 226, 213, 0.34);
3796
+ }
3797
+ .prompt-list-load-panel {
3798
+ padding: 0.68rem;
3799
+ border: 1px solid rgba(137, 180, 250, 0.18);
3800
+ border-radius: 0.72rem;
3801
+ background: rgba(var(--ctp-crust-rgb), 0.54);
3802
+ }
3803
+ .prompt-list-load-panel[hidden] { display: none; }
3804
+ .prompt-list-load-row {
3805
+ display: grid;
3806
+ grid-template-columns: minmax(0, 1fr) auto auto;
3807
+ gap: 0.5rem;
3808
+ }
3809
+ .prompt-list-load-row select {
3810
+ width: 100%;
3811
+ min-width: 0;
3812
+ }
3813
+ .prompt-list-status {
3814
+ min-height: 1.05rem;
3815
+ margin: 0;
3816
+ font-size: 0.78rem;
3817
+ font-weight: 800;
3818
+ line-height: 1.36;
3819
+ }
3820
+ .prompt-list-status.success { color: var(--ctp-green); }
3821
+ .prompt-list-status.warn { color: var(--ctp-yellow); }
3822
+ .prompt-list-status.error { color: var(--ctp-red); }
3467
3823
  .commands-search {
3468
3824
  width: 100%;
3469
3825
  min-width: 0;
@@ -3570,18 +3926,20 @@ summary { cursor: pointer; color: var(--warning); }
3570
3926
  .extension-dialog.release-dialog {
3571
3927
  width: min(64rem, calc(100vw - 1.5rem));
3572
3928
  max-height: min(82vh, 54rem);
3929
+ overflow: hidden;
3573
3930
  }
3574
3931
  .extension-dialog.release-dialog form {
3575
3932
  display: grid;
3576
3933
  grid-template-rows: auto minmax(0, 1fr) auto auto;
3577
3934
  max-height: calc(min(82vh, 54rem) - 2rem);
3935
+ min-height: 0;
3578
3936
  }
3579
3937
  .extension-dialog.release-dialog #dialogTitle {
3580
3938
  color: var(--ctp-green);
3581
3939
  text-shadow: 0 0 1rem rgba(166, 227, 161, 0.20);
3582
3940
  }
3583
3941
  .extension-dialog.release-dialog #dialogMessage {
3584
- min-height: 14rem;
3942
+ min-height: min(14rem, 34vh);
3585
3943
  max-height: min(56vh, 34rem);
3586
3944
  margin: 0.75rem 0 1rem;
3587
3945
  padding: 0.9rem 1rem;
@@ -3610,6 +3968,13 @@ summary { cursor: pointer; color: var(--warning); }
3610
3968
  .release-dialog-danger { color: var(--ctp-red); }
3611
3969
  .release-dialog-muted { color: rgba(var(--ctp-subtext-rgb), 0.72); }
3612
3970
  .release-dialog-spacer { min-height: 0.55rem; }
3971
+ .extension-dialog.release-dialog #dialogBody {
3972
+ min-height: 0;
3973
+ max-height: min(23rem, 34vh);
3974
+ overflow: auto;
3975
+ padding-right: 0.12rem;
3976
+ overscroll-behavior: contain;
3977
+ }
3613
3978
  .extension-dialog.release-dialog .dialog-options {
3614
3979
  grid-template-columns: repeat(auto-fit, minmax(12rem, 1fr));
3615
3980
  gap: 0.7rem;
@@ -4000,6 +4365,63 @@ summary { cursor: pointer; color: var(--warning); }
4000
4365
  color: var(--ctp-teal);
4001
4366
  border-color: rgba(148, 226, 213, 0.30);
4002
4367
  }
4368
+ .path-picker-create-row {
4369
+ display: grid;
4370
+ grid-template-columns: minmax(0, 1fr) auto;
4371
+ gap: 0.45rem;
4372
+ margin: 0 0 0.72rem;
4373
+ }
4374
+ .path-picker-create-input {
4375
+ min-width: 0;
4376
+ width: 100%;
4377
+ padding: 0.58rem 0.72rem;
4378
+ color: rgba(var(--ctp-text-rgb), 0.94);
4379
+ border-color: rgba(137, 180, 250, 0.20);
4380
+ background: rgba(var(--ctp-surface-rgb), 0.38);
4381
+ }
4382
+ .path-picker-create-button {
4383
+ align-self: stretch;
4384
+ color: var(--ctp-blue);
4385
+ border-color: rgba(137, 180, 250, 0.32);
4386
+ }
4387
+ .path-picker-create-button:hover,
4388
+ .path-picker-create-button:focus-visible {
4389
+ color: #11111b;
4390
+ border-color: transparent;
4391
+ background: linear-gradient(120deg, var(--ctp-blue), var(--ctp-sky), var(--ctp-teal));
4392
+ }
4393
+ .path-picker-search-row {
4394
+ display: grid;
4395
+ grid-template-columns: minmax(0, 1fr) auto;
4396
+ gap: 0.45rem;
4397
+ margin: 0 0 0.38rem;
4398
+ }
4399
+ .path-picker-search-input {
4400
+ min-width: 0;
4401
+ width: 100%;
4402
+ padding: 0.58rem 0.72rem;
4403
+ color: rgba(var(--ctp-text-rgb), 0.94);
4404
+ border-color: rgba(203, 166, 247, 0.20);
4405
+ background: rgba(var(--ctp-surface-rgb), 0.38);
4406
+ }
4407
+ .path-picker-clear-search-button {
4408
+ align-self: stretch;
4409
+ color: var(--ctp-mauve);
4410
+ border-color: rgba(203, 166, 247, 0.32);
4411
+ }
4412
+ .path-picker-clear-search-button:hover,
4413
+ .path-picker-clear-search-button:focus-visible {
4414
+ color: #11111b;
4415
+ border-color: transparent;
4416
+ background: linear-gradient(120deg, var(--ctp-mauve), var(--ctp-pink));
4417
+ }
4418
+ .path-picker-search-status {
4419
+ min-height: 1rem;
4420
+ margin: 0 0 0.38rem;
4421
+ padding: 0 0.12rem;
4422
+ font-size: 0.78rem;
4423
+ font-weight: 800;
4424
+ }
4003
4425
  .path-picker-list {
4004
4426
  display: grid;
4005
4427
  gap: 0.4rem;
@@ -4161,6 +4583,10 @@ summary { cursor: pointer; color: var(--warning); }
4161
4583
  box-shadow: 0 1.2rem 2.8rem rgba(var(--ctp-crust-rgb), 0.68), 0 0 1.4rem rgba(148, 226, 213, 0.14), inset 0 1px 0 rgba(255,255,255,0.055);
4162
4584
  }
4163
4585
  body.mobile-tabs-expanded .terminal-tabs { display: flex; }
4586
+ .terminal-tabs.terminal-tabs-dense {
4587
+ max-height: min(42dvh, 20rem);
4588
+ overflow: auto;
4589
+ }
4164
4590
  .terminal-tabs:has(.terminal-tab-group:hover),
4165
4591
  .terminal-tabs:has(.terminal-tab-group:focus-within),
4166
4592
  .terminal-tabs:has(.terminal-tab-group.menu-open) {
@@ -4297,6 +4723,13 @@ summary { cursor: pointer; color: var(--warning); }
4297
4723
  }
4298
4724
  .sticky-user-prompt-label { display: none; }
4299
4725
  .sticky-user-prompt-text { font-size: 0.78rem; }
4726
+ .sticky-user-follow-up-prompt {
4727
+ grid-template-columns: minmax(0, 1fr);
4728
+ gap: 0.2rem;
4729
+ padding-top: 0.38rem;
4730
+ }
4731
+ .sticky-user-follow-up-label { font-size: 0.62rem; }
4732
+ .sticky-user-follow-up-text { font-size: 0.74rem; }
4300
4733
  .jump-to-latest-button {
4301
4734
  min-height: 44px;
4302
4735
  margin: 0.35rem auto;
@@ -4622,9 +5055,12 @@ summary { cursor: pointer; color: var(--warning); }
4622
5055
  max-height: calc(var(--visual-viewport-height, 100dvh) - 2rem - env(safe-area-inset-top));
4623
5056
  }
4624
5057
  .extension-dialog.release-dialog #dialogMessage {
4625
- min-height: 10rem;
5058
+ min-height: min(10rem, 34dvh);
4626
5059
  max-height: 48dvh;
4627
5060
  }
5061
+ .extension-dialog.release-dialog #dialogBody {
5062
+ max-height: min(18rem, 32dvh);
5063
+ }
4628
5064
  .extension-dialog menu {
4629
5065
  position: sticky;
4630
5066
  bottom: 0;
@@ -4642,8 +5078,12 @@ summary { cursor: pointer; color: var(--warning); }
4642
5078
  .native-command-body { max-height: min(28rem, 54dvh); }
4643
5079
  .native-settings-grid,
4644
5080
  .native-tree-options { grid-template-columns: 1fr; }
4645
- .path-picker-current-row { grid-template-columns: 1fr; }
4646
- .path-picker-add-fast-pick { width: 100%; }
5081
+ .path-picker-current-row,
5082
+ .path-picker-create-row,
5083
+ .path-picker-search-row { grid-template-columns: 1fr; }
5084
+ .path-picker-add-fast-pick,
5085
+ .path-picker-create-button,
5086
+ .path-picker-clear-search-button { width: 100%; }
4647
5087
  .path-picker-fast-pick { grid-template-columns: minmax(0, 1fr) 44px; }
4648
5088
  .path-picker-fast-pick-remove {
4649
5089
  width: 44px;