@bivy/bivy 0.17.3-staging.16 → 0.17.3-staging.18

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.
@@ -1402,7 +1402,12 @@ button.sheet-action:last-child { border-bottom: 0; }
1402
1402
  font-weight: var(--weight-semibold); cursor: pointer; white-space: nowrap;
1403
1403
  }
1404
1404
  .seg-btn:hover { color: var(--ink); }
1405
- .seg-btn[aria-selected="true"] { background: var(--surface); color: var(--accent); box-shadow: var(--shadow-sm); }
1405
+ .seg-btn[aria-selected="true"], .seg-btn[aria-checked="true"] { background: var(--surface); color: var(--accent); box-shadow: var(--shadow-sm); }
1406
+ /* Chat | Terminal in the session topbar (SessionViewToggle). */
1407
+ .topbar-subline { display: flex; align-items: center; gap: var(--space-3); min-width: 0; margin-top: 2px; }
1408
+ .topbar-subline .node-switcher { flex: 0 1 auto; }
1409
+ .session-view-toggle { flex: none; padding: 2px; }
1410
+ .session-view-toggle .seg-btn { display: inline-flex; align-items: center; gap: var(--space-1); padding: 2px var(--space-2); line-height: 1.25; }
1406
1411
  .automations-tabs {
1407
1412
  flex: none; align-self: center; max-width: calc(100% - var(--space-6));
1408
1413
  margin: var(--space-2) auto 0; overflow-x: auto;
@@ -1446,7 +1451,7 @@ button.sheet-action:last-child { border-bottom: 0; }
1446
1451
  .library-tile-file { display: flex; flex-direction: column; align-items: center; gap: var(--space-1); }
1447
1452
  .library-tile-ext { font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: 0.04em; }
1448
1453
  .library-tile-caption { display: flex; flex-direction: column; gap: 2px; min-width: 0; padding: 0 2px; }
1449
- .library-tile-name, .library-row-name {
1454
+ .library-tile-name {
1450
1455
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
1451
1456
  font-size: var(--text-sm); font-weight: var(--weight-medium); color: var(--ink);
1452
1457
  }
@@ -1459,17 +1464,6 @@ button.sheet-action:last-child { border-bottom: 0; }
1459
1464
  .library-source:hover { color: var(--ink); }
1460
1465
  .library-source svg, .library-source-when { flex: none; }
1461
1466
  .library-source-name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
1462
- .library-list { list-style: none; margin: 0; padding: 0; }
1463
- .library-row { display: flex; align-items: center; gap: var(--space-3); padding: var(--space-3) 0; border-bottom: 1px solid var(--line); }
1464
- .library-row:last-child { border-bottom: 0; }
1465
- .library-row-icon {
1466
- flex: none; width: 40px; height: 40px; display: grid; place-items: center;
1467
- border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-2);
1468
- color: var(--ink); font-weight: var(--weight-semibold);
1469
- }
1470
- .library-row-main { flex: 1; min-width: 0; display: flex; flex-direction: column; }
1471
- .library-row-name { font-size: var(--text-base); }
1472
- .library-row-kind { color: var(--muted); font-weight: var(--weight-normal); }
1473
1467
  @media (min-width: 640px) {
1474
1468
  .library-grid { grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: var(--space-6) var(--space-4); }
1475
1469
  }
@@ -2508,6 +2502,12 @@ textarea.picker-search { resize: vertical; font-family: ui-monospace, monospace;
2508
2502
  height: var(--app-h, 100dvh); z-index: var(--z-sheet); display: flex; flex-direction: column;
2509
2503
  background: var(--bg); padding-top: env(safe-area-inset-top);
2510
2504
  }
2505
+ /* The same terminal inside the session pane (Chat | Terminal toggle): in the
2506
+ main column's flow under the topbar, not a fixed full-screen layer. */
2507
+ .term-overlay.term-embedded {
2508
+ position: relative; top: auto; left: auto; width: auto; height: auto;
2509
+ flex: 1 1 auto; min-height: 0; z-index: auto; padding-top: 0;
2510
+ }
2511
2511
  .term-head { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
2512
2512
  .term-title { font-weight: 700; flex: 0 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2513
2513
  .term-status { color: var(--muted); font-weight: 400; margin-left: 8px; font-size: 12px; }
@@ -2555,6 +2555,10 @@ textarea.picker-search { resize: vertical; font-family: ui-monospace, monospace;
2555
2555
  }
2556
2556
  .term-out .xterm { height: 100%; }
2557
2557
  .term-out .xterm-viewport { overflow-y: auto; overscroll-behavior: contain; }
2558
+ /* xterm.css paints the viewport #000; the GPU renderers cover it with the theme
2559
+ background, the DOM fallback does not — a light-theme sliver below the last
2560
+ row. Match readTheme()'s background. */
2561
+ .term-out .xterm .xterm-viewport { background-color: var(--bg); }
2558
2562
  /* Smooth momentum scrolling for the terminal viewport on touch devices. */
2559
2563
  .term-out .xterm-viewport { -webkit-overflow-scrolling: touch; scrollbar-width: thin; }
2560
2564
 
@@ -2915,6 +2919,9 @@ select.picker-search { appearance: auto; }
2915
2919
  .scrim { position: fixed; inset: 0; background: var(--overlay); z-index: var(--z-dropdown); }
2916
2920
  @media (max-width: 900px) {
2917
2921
  .app { grid-template-columns: 1fr; }
2922
+ /* Share the subtitle line with the machine name: icons only (the accessible
2923
+ name stays via aria-label). */
2924
+ .session-view-label { display: none; }
2918
2925
  .only-mobile { display: inline-flex; }
2919
2926
  .sidebar {
2920
2927
  position: fixed; top: var(--app-top, 0px); left: 0; height: var(--app-h, 100dvh);
@@ -3016,18 +3023,53 @@ select.picker-search { appearance: auto; }
3016
3023
 
3017
3024
  /* Artifacts sheet (components/ArtifactsSheet.tsx) — agent-sent attachments,
3018
3025
  user uploads, and resolved inline images grouped by kind. */
3019
- .app-views-heading { display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); }
3020
- .app-views-heading .artifact-name, .app-message .artifact-name { white-space: normal; overflow-wrap: anywhere; }
3021
- .app-view-row { flex-wrap: wrap; }
3022
- .app-views-heading > .btn, .app-view-actions .btn { min-block-size: var(--space-7); flex-shrink: 0; }
3023
- .app-view-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--space-2); margin-inline-start: auto; }
3024
- .app-view-notice { display: flex; flex-direction: column; gap: var(--space-2); flex-basis: 100%; min-width: 0; }
3025
- .app-view-notes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-1); font-size: var(--text-sm); overflow-wrap: anywhere; }
3026
+ /* An app, a view of it, or a server that could become one (AppRow.tsx): the
3027
+ same tile, type and trailing action in the chat card, the Apps page and the
3028
+ Apps sheet. Views nest inside their app's card as small rows. */
3029
+ .apps-card { border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); overflow-wrap: anywhere; }
3030
+ .apps-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
3031
+ .app-row { display: flex; align-items: center; gap: var(--space-3); min-width: 0; padding: var(--space-3); }
3032
+ .app-tile { flex: none; display: grid; place-items: center; inline-size: 40px; block-size: 40px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-2); color: var(--ink); font-weight: var(--weight-semibold); }
3033
+ .app-row.small .app-tile { inline-size: 36px; block-size: 36px; border-radius: var(--radius-sm); color: var(--muted); }
3034
+ .app-tile-port { font-family: var(--font-mono); font-size: var(--text-xs); color: var(--ok); }
3035
+ .app-row-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
3036
+ .app-row-name { font-size: var(--text-base); font-weight: var(--weight-semibold); }
3037
+ .app-row.small .app-row-name { font-size: var(--text-sm); }
3038
+ .app-row-meta { color: var(--muted); font-size: var(--text-xs); line-height: var(--lh-xs); }
3039
+ .app-row-action { flex: none; display: flex; align-items: center; gap: var(--space-1); }
3040
+ .app-message { margin-block: var(--space-2); }
3041
+
3042
+ /* Apps sheet (AppsSheet.tsx): one card per app, its views nested, one primary
3043
+ action per view; secondary tools as quiet icon buttons; rare or destructive
3044
+ actions behind ⋯ (MoreMenu, the canonical .menu). Status uses .banner. */
3045
+ .apps-sheet { display: flex; flex-direction: column; gap: var(--space-4); padding: var(--space-2) var(--space-2) var(--space-4); }
3046
+ .apps-state { display: flex; align-items: center; justify-content: center; gap: var(--space-2); padding: var(--space-6) 0; color: var(--muted); font-size: var(--text-sm); }
3047
+ .apps-group { display: flex; flex-direction: column; gap: var(--space-2); }
3048
+ .apps-group-title { margin: 0; padding: 0 var(--space-1); color: var(--muted); font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: 0.04em; text-transform: uppercase; }
3049
+ .apps-view { display: flex; flex-direction: column; border-top: 1px solid var(--line); }
3050
+ .apps-cmd { display: block; margin: 0 var(--space-3) var(--space-3); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: var(--surface-2); color: var(--ink); font-family: var(--font-mono); font-size: var(--text-xs); white-space: pre-wrap; overflow-wrap: anywhere; }
3051
+ .apps-view-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 0; padding: 0 var(--space-1) var(--space-1); }
3052
+ .apps-view-tools .btn { gap: 6px; padding-inline: var(--space-2); color: var(--muted); }
3053
+ .apps-view-tools .btn:hover:not(:disabled) { color: var(--ink); }
3054
+ .apps-more { position: relative; }
3055
+ .apps-view-tools .apps-more { margin-inline-start: auto; }
3056
+ .apps-more-menu { position: absolute; right: 0; top: calc(100% + var(--space-1)); z-index: var(--z-dropdown); }
3057
+ .apps-notice { display: flex; align-items: flex-start; gap: var(--space-2); margin: 0 var(--space-3) var(--space-3); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: color-mix(in srgb, var(--ok) 12%, transparent); font-size: var(--text-sm); }
3058
+ .apps-notice > svg { flex: none; margin-top: 1px; color: var(--ok); }
3059
+ .apps-notes { display: flex; flex-direction: column; gap: var(--space-2); margin: 0 var(--space-3) var(--space-3); padding-top: var(--space-3); border-top: 1px dashed var(--line); }
3060
+ .apps-notes-head { display: flex; align-items: center; gap: var(--space-2); color: var(--muted); font-size: var(--text-xs); font-weight: var(--weight-semibold); letter-spacing: 0.04em; text-transform: uppercase; }
3061
+ .apps-count { min-inline-size: 18px; padding: 0 6px; border-radius: var(--radius-full); background: var(--surface-3); color: var(--ink); text-align: center; letter-spacing: 0; }
3062
+ .apps-notes ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--space-2); }
3063
+ .apps-note { display: flex; flex-direction: column; gap: 2px; padding-inline-start: var(--space-3); border-inline-start: 2px solid var(--line-strong); }
3064
+ .apps-note-text { color: var(--ink); font-size: var(--text-sm); }
3065
+ .apps-notes-actions { display: flex; gap: var(--space-2); }
3066
+ .apps-empty { display: flex; flex-direction: column; align-items: center; gap: var(--space-2); padding: var(--space-6) var(--space-4); color: var(--muted); font-size: var(--text-sm); text-align: center; }
3067
+ .apps-empty strong { color: var(--ink); font-size: var(--text-base); }
3068
+ .apps-empty p { margin: 0; max-inline-size: 34ch; }
3069
+ .apps-foot { margin: 0; padding: 0 var(--space-1); color: var(--muted); font-size: var(--text-xs); line-height: var(--lh-xs); }
3026
3070
  /* Peek: an app preview framed in a drawer over the chat (PreviewPeek.tsx). */
3027
3071
  .preview-peek { display: block; inline-size: 100%; block-size: 100%; border: 0; border-radius: var(--radius-md); background: var(--bg); }
3028
3072
  .app-terminal-status { padding: var(--space-2) var(--space-4); margin: 0; color: var(--muted); font-size: var(--text-sm); }
3029
- .app-view-command { overflow-wrap: anywhere; white-space: pre-wrap; font-size: var(--text-xs); color: var(--muted); }
3030
- .app-view-row .artifact-main { flex-basis: 60%; }
3031
3073
  .artifacts-group { display: flex; flex-direction: column; gap: 8px; margin-bottom: 16px; }
3032
3074
  .artifacts-group:last-child { margin-bottom: 0; }
3033
3075
  .artifacts-group-title { font-size: 12px; font-weight: 600; opacity: 0.6; text-transform: uppercase; letter-spacing: 0.04em; }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bivy/bivy",
3
- "version": "0.17.3-staging.16",
3
+ "version": "0.17.3-staging.18",
4
4
  "type": "module",
5
5
  "license": "AGPL-3.0-only",
6
6
  "description": "Run coding agents on machines you own. Open-source, self-hostable agent workspace.",