xtralab 0.14.1 → 0.15.1

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 (236) hide show
  1. package/README.md +10 -0
  2. package/lib/about/icons.d.ts +0 -5
  3. package/lib/about/icons.js +0 -5
  4. package/lib/about/index.d.ts +4 -8
  5. package/lib/about/index.js +6 -17
  6. package/lib/agentSessions.d.ts +9 -29
  7. package/lib/agentSessions.js +2 -7
  8. package/lib/askAgent/editorSelection.d.ts +20 -26
  9. package/lib/askAgent/editorSelection.js +11 -26
  10. package/lib/askAgent/icons.d.ts +2 -3
  11. package/lib/askAgent/icons.js +2 -3
  12. package/lib/askAgent/index.d.ts +4 -26
  13. package/lib/askAgent/index.js +54 -158
  14. package/lib/askAgent/popup.d.ts +12 -16
  15. package/lib/askAgent/popup.js +18 -37
  16. package/lib/askAgent/prompt.d.ts +3 -5
  17. package/lib/askAgent/prompt.js +6 -19
  18. package/lib/askAgent/queue.d.ts +11 -21
  19. package/lib/askAgent/queue.js +9 -19
  20. package/lib/askAgent/queuePanel.d.ts +13 -18
  21. package/lib/askAgent/queuePanel.js +15 -37
  22. package/lib/askAgent/targetPicker.d.ts +2 -9
  23. package/lib/askAgent/targetPicker.js +6 -11
  24. package/lib/askAgent/tokens.d.ts +32 -46
  25. package/lib/askAgent/tokens.js +4 -6
  26. package/lib/commandBar/index.d.ts +4 -13
  27. package/lib/commandBar/index.js +21 -39
  28. package/lib/customPanel/index.d.ts +7 -0
  29. package/lib/customPanel/index.js +89 -0
  30. package/lib/editorBreadcrumbs/index.d.ts +3 -6
  31. package/lib/editorBreadcrumbs/index.js +10 -6
  32. package/lib/editorBreadcrumbs/widget.d.ts +17 -4
  33. package/lib/editorBreadcrumbs/widget.js +11 -17
  34. package/lib/editorIndent/index.d.ts +4 -12
  35. package/lib/editorIndent/index.js +8 -23
  36. package/lib/fileBrowser/commands.d.ts +28 -19
  37. package/lib/fileBrowser/commands.js +51 -98
  38. package/lib/fileBrowser/contents.d.ts +14 -0
  39. package/lib/fileBrowser/contents.js +28 -0
  40. package/lib/fileBrowser/dragAndDrop.d.ts +79 -0
  41. package/lib/fileBrowser/dragAndDrop.js +110 -0
  42. package/lib/fileBrowser/fileBrowser.d.ts +21 -9
  43. package/lib/fileBrowser/fileBrowser.js +211 -405
  44. package/lib/fileBrowser/gitStatus.d.ts +4 -9
  45. package/lib/fileBrowser/gitStatus.js +7 -17
  46. package/lib/fileBrowser/gitignore.d.ts +4 -17
  47. package/lib/fileBrowser/gitignore.js +4 -25
  48. package/lib/fileBrowser/icons.d.ts +7 -17
  49. package/lib/fileBrowser/icons.js +25 -80
  50. package/lib/fileBrowser/index.js +41 -10
  51. package/lib/fileBrowser/widget.d.ts +170 -53
  52. package/lib/fileBrowser/widget.js +242 -18
  53. package/lib/fileTypeIcons/index.js +0 -10
  54. package/lib/git/api.d.ts +5 -13
  55. package/lib/git/api.js +10 -36
  56. package/lib/git/askRequest.d.ts +4 -8
  57. package/lib/git/askRequest.js +6 -20
  58. package/lib/git/commands.d.ts +40 -5
  59. package/lib/git/commands.js +16 -10
  60. package/lib/git/diffModel.js +4 -0
  61. package/lib/git/diffSurface.d.ts +41 -55
  62. package/lib/git/diffSurface.js +42 -117
  63. package/lib/git/diffWidget.d.ts +81 -2
  64. package/lib/git/diffWidget.js +62 -12
  65. package/lib/git/imageDiff.d.ts +5 -6
  66. package/lib/git/imageDiff.js +18 -48
  67. package/lib/git/index.d.ts +0 -3
  68. package/lib/git/index.js +3 -8
  69. package/lib/git/notebookDiff.d.ts +110 -33
  70. package/lib/git/notebookDiff.js +52 -195
  71. package/lib/git/tokens.d.ts +73 -31
  72. package/lib/git/tokens.js +2 -3
  73. package/lib/highlight/index.d.ts +4 -10
  74. package/lib/highlight/index.js +10 -41
  75. package/lib/index.d.ts +0 -9
  76. package/lib/index.js +2 -9
  77. package/lib/launcher/agents.d.ts +55 -51
  78. package/lib/launcher/agents.js +25 -54
  79. package/lib/launcher/availability.d.ts +3 -9
  80. package/lib/launcher/availability.js +3 -9
  81. package/lib/launcher/commands.d.ts +7 -32
  82. package/lib/launcher/commands.js +14 -45
  83. package/lib/launcher/dashboard.d.ts +19 -24
  84. package/lib/launcher/dashboard.js +21 -67
  85. package/lib/launcher/editorRegistry.d.ts +10 -22
  86. package/lib/launcher/editorRegistry.js +14 -18
  87. package/lib/launcher/editors.d.ts +39 -45
  88. package/lib/launcher/editors.js +8 -34
  89. package/lib/launcher/icons.d.ts +0 -12
  90. package/lib/launcher/icons.js +14 -37
  91. package/lib/launcher/index.js +12 -55
  92. package/lib/launcher/invocation.d.ts +4 -10
  93. package/lib/launcher/invocation.js +7 -22
  94. package/lib/launcher/registry.d.ts +9 -7
  95. package/lib/launcher/registry.js +9 -7
  96. package/lib/launcher/schemaDefaults.d.ts +2 -9
  97. package/lib/launcher/schemaDefaults.js +37 -13
  98. package/lib/launcher/tokens.d.ts +10 -22
  99. package/lib/launcher/tokens.js +5 -8
  100. package/lib/menuBar/index.d.ts +3 -10
  101. package/lib/menuBar/index.js +11 -28
  102. package/lib/menus/index.d.ts +3 -9
  103. package/lib/menus/index.js +14 -30
  104. package/lib/omnibox/files.d.ts +2 -4
  105. package/lib/omnibox/files.js +5 -11
  106. package/lib/omnibox/index.d.ts +4 -14
  107. package/lib/omnibox/index.js +9 -27
  108. package/lib/omnibox/model.d.ts +38 -10
  109. package/lib/omnibox/model.js +15 -33
  110. package/lib/omnibox/recents.d.ts +15 -17
  111. package/lib/omnibox/recents.js +12 -17
  112. package/lib/omnibox/tokens.d.ts +5 -10
  113. package/lib/omnibox/tokens.js +2 -6
  114. package/lib/omnibox/widget.d.ts +11 -7
  115. package/lib/omnibox/widget.js +8 -16
  116. package/lib/searchReplace/index.d.ts +4 -20
  117. package/lib/searchReplace/index.js +7 -27
  118. package/lib/showOutput/index.d.ts +3 -12
  119. package/lib/showOutput/index.js +6 -22
  120. package/lib/sidebar/index.d.ts +4 -13
  121. package/lib/sidebar/index.js +73 -46
  122. package/lib/terminalNotifications/index.d.ts +4 -10
  123. package/lib/terminalNotifications/index.js +6 -20
  124. package/lib/terminals/agentTerminals.d.ts +12 -5
  125. package/lib/terminals/agentTerminals.js +25 -44
  126. package/lib/terminals/detection.d.ts +4 -8
  127. package/lib/terminals/detection.js +4 -8
  128. package/lib/terminals/index.d.ts +0 -33
  129. package/lib/terminals/index.js +24 -102
  130. package/lib/terminals/model.d.ts +64 -139
  131. package/lib/terminals/model.js +80 -220
  132. package/lib/terminals/tokens.d.ts +11 -22
  133. package/lib/terminals/tokens.js +2 -2
  134. package/lib/terminals/widget.d.ts +72 -38
  135. package/lib/terminals/widget.js +173 -73
  136. package/lib/topBar/icons.d.ts +3 -8
  137. package/lib/topBar/icons.js +3 -8
  138. package/lib/topBar/index.d.ts +4 -11
  139. package/lib/topBar/index.js +10 -38
  140. package/lib/walkthrough/index.d.ts +4 -9
  141. package/lib/walkthrough/index.js +6 -20
  142. package/lib/walkthrough/panel.d.ts +40 -9
  143. package/lib/walkthrough/panel.js +4 -10
  144. package/package.json +2 -2
  145. package/schema/launcher.json +2 -2
  146. package/schema/sidebar.json +47 -7
  147. package/src/about/icons.ts +0 -5
  148. package/src/about/index.tsx +6 -17
  149. package/src/agentSessions.ts +9 -29
  150. package/src/askAgent/editorSelection.ts +22 -29
  151. package/src/askAgent/icons.ts +2 -3
  152. package/src/askAgent/index.ts +54 -158
  153. package/src/askAgent/popup.tsx +23 -45
  154. package/src/askAgent/prompt.ts +6 -19
  155. package/src/askAgent/queue.ts +13 -24
  156. package/src/askAgent/queuePanel.tsx +21 -46
  157. package/src/askAgent/targetPicker.tsx +5 -15
  158. package/src/askAgent/tokens.ts +32 -46
  159. package/src/commandBar/index.ts +24 -39
  160. package/src/customPanel/index.ts +119 -0
  161. package/src/editorBreadcrumbs/index.ts +10 -6
  162. package/src/editorBreadcrumbs/widget.ts +23 -17
  163. package/src/editorIndent/index.ts +17 -23
  164. package/src/fileBrowser/commands.ts +70 -98
  165. package/src/fileBrowser/contents.ts +33 -0
  166. package/src/fileBrowser/dragAndDrop.ts +188 -0
  167. package/src/fileBrowser/fileBrowser.tsx +259 -440
  168. package/src/fileBrowser/gitStatus.ts +7 -17
  169. package/src/fileBrowser/gitignore.ts +4 -25
  170. package/src/fileBrowser/icons.ts +25 -80
  171. package/src/fileBrowser/index.ts +43 -10
  172. package/src/fileBrowser/widget.tsx +344 -64
  173. package/src/fileTypeIcons/index.ts +0 -10
  174. package/src/git/api.ts +10 -36
  175. package/src/git/askRequest.ts +6 -20
  176. package/src/git/commands.ts +70 -10
  177. package/src/git/diffModel.ts +25 -0
  178. package/src/git/diffSurface.tsx +71 -159
  179. package/src/git/diffWidget.tsx +104 -14
  180. package/src/git/imageDiff.tsx +45 -51
  181. package/src/git/index.ts +3 -8
  182. package/src/git/notebookDiff.tsx +211 -238
  183. package/src/git/tokens.ts +73 -31
  184. package/src/highlight/index.ts +10 -41
  185. package/src/index.ts +2 -9
  186. package/src/launcher/agents.ts +74 -92
  187. package/src/launcher/availability.ts +3 -9
  188. package/src/launcher/commands.ts +14 -51
  189. package/src/launcher/dashboard.tsx +49 -88
  190. package/src/launcher/editorRegistry.ts +21 -29
  191. package/src/launcher/editors.ts +39 -58
  192. package/src/launcher/icons.ts +15 -37
  193. package/src/launcher/index.ts +12 -55
  194. package/src/launcher/invocation.ts +7 -22
  195. package/src/launcher/registry.ts +9 -7
  196. package/src/launcher/schemaDefaults.ts +43 -13
  197. package/src/launcher/tokens.ts +10 -22
  198. package/src/menuBar/index.ts +11 -28
  199. package/src/menus/index.ts +14 -30
  200. package/src/omnibox/files.ts +10 -14
  201. package/src/omnibox/index.ts +9 -27
  202. package/src/omnibox/model.ts +50 -38
  203. package/src/omnibox/recents.ts +17 -22
  204. package/src/omnibox/tokens.ts +5 -10
  205. package/src/omnibox/widget.tsx +14 -19
  206. package/src/searchReplace/index.ts +7 -27
  207. package/src/showOutput/index.ts +6 -22
  208. package/src/sidebar/index.ts +103 -52
  209. package/src/terminalNotifications/index.ts +42 -25
  210. package/src/terminals/agentTerminals.ts +25 -49
  211. package/src/terminals/detection.ts +4 -8
  212. package/src/terminals/index.ts +31 -102
  213. package/src/terminals/model.ts +130 -246
  214. package/src/terminals/tokens.ts +11 -22
  215. package/src/terminals/widget.tsx +229 -113
  216. package/src/topBar/icons.ts +3 -8
  217. package/src/topBar/index.ts +21 -44
  218. package/src/walkthrough/index.ts +6 -20
  219. package/src/walkthrough/panel.ts +40 -10
  220. package/style/about.css +2 -7
  221. package/style/askAgent.css +8 -40
  222. package/style/base.css +25 -73
  223. package/style/chrome.css +108 -308
  224. package/style/commandBar.css +4 -20
  225. package/style/customPanel.css +6 -0
  226. package/style/git.css +22 -184
  227. package/style/highlight.css +1 -3
  228. package/style/index.js +1 -0
  229. package/style/launcher.css +6 -70
  230. package/style/omnibox.css +2 -14
  231. package/style/showOutput.css +0 -6
  232. package/style/sidebar.css +29 -9
  233. package/style/tabs.css +5 -13
  234. package/style/terminals.css +18 -123
  235. package/style/topBar.css +2 -22
  236. package/style/walkthrough.css +0 -8
package/style/sidebar.css CHANGED
@@ -1,14 +1,34 @@
1
1
  /*
2
- * The side activity bar is shipped horizontally (activityBarPosition: "top",
3
- * see jupyter-config/labconfig). In that mode the TabBar content node spans
4
- * the full width (@jupyterlab/application/style/sidepanel.css) with no
5
- * justify-content, so the icons sit at the leading edge. Center them under
6
- * the menu bar instead.
7
- *
8
- * `safe center` keeps the row start-aligned should the icons ever exceed the
9
- * bar width, so none are pushed past the leading edge out of reach of the
10
- * content node's horizontal overflow scroll.
2
+ * The activity bar ships horizontal (labconfig activityBarPosition: "top");
3
+ * upstream leaves the icons start-aligned, so center them. `safe` keeps
4
+ * overflowing icons reachable instead of pushed past the leading edge.
11
5
  */
12
6
  .jp-SideBar[data-orientation='horizontal'] .lm-TabBar-content {
13
7
  justify-content: safe center;
8
+
9
+ /*
10
+ * Carve-out from the thin scrollbars in chrome.css, which would clip the
11
+ * icons on overflow; `auto` lets the stock 4px webkit scrollbar apply.
12
+ */
13
+ scrollbar-width: auto;
14
+ scrollbar-color: auto;
15
+ }
16
+
17
+ /*
18
+ * Match the height of the dock tab strip.
19
+ */
20
+ .jp-SideBar.lm-TabBar[data-orientation='horizontal'] {
21
+ min-height: calc(
22
+ var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)
23
+ );
24
+ max-height: calc(
25
+ var(--jp-private-horizontal-tab-height) + 2 * var(--jp-border-width)
26
+ );
27
+ }
28
+
29
+ /*
30
+ * The stock 20px icons crowd the shorter bar.
31
+ */
32
+ .jp-SideBar[data-orientation='horizontal'] .lm-TabBar-tabIcon svg {
33
+ width: 18px;
14
34
  }
package/style/tabs.css CHANGED
@@ -1,13 +1,7 @@
1
1
  /*
2
- * Adaptive (VS Code-style) document tab widths. Tabs size to their filename
3
- * instead of being pinned to --jp-private-horizontal-tab-width (216px), and
4
- * the horizontal tab strip becomes scrollable when tabs overflow.
5
- *
6
- * Mostly mirrors jupyterlab/jupyterlab#18796, with one deliberate divergence:
7
- * .lm-TabBar-content uses `flex: 0 1 auto` (not `1 1 auto`) so the +/add
8
- * button sits next to the last tab instead of being pushed to the right
9
- * edge of the bar. Overflow scrolling still works because `flex-shrink: 1`
10
- * plus `min-width: 0` lets content shrink when tabs exceed the bar width.
2
+ * Adaptive (VS Code-style) document tab widths, mostly mirroring
3
+ * jupyterlab/jupyterlab#18796. One divergence: .lm-TabBar-content uses
4
+ * `flex: 0 1 auto` so the add button hugs the last tab instead of the far edge.
11
5
  */
12
6
 
13
7
  .lm-DockPanel-tabBar .lm-TabBar-tab,
@@ -26,10 +20,8 @@
26
20
  width: auto;
27
21
  }
28
22
 
29
- /* Breathing room between the label and the close icon. Fit-content tabs put
30
- the icon flush against the label's last glyph (stock's fixed-width tabs
31
- hide this with slack space), and the icon-hover chip in chrome.css extends
32
- 2px beyond the icon box into this gap. */
23
+ /* Fit-content tabs put the close icon flush against the label; the icon-hover
24
+ chip in chrome.css extends 2px into this gap. */
33
25
  .lm-DockPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabCloseIcon,
34
26
  .lm-TabPanel-tabBar .lm-TabBar-tab .lm-TabBar-tabCloseIcon {
35
27
  margin-left: 4px;
@@ -1,93 +1,27 @@
1
- /*
2
- * Left-sidebar panel listing running terminal sessions. Each row shows
3
- * the session's real (program-published) title, a smaller line below it
4
- * with the latest output from a running coding agent, and an inline
5
- * shutdown button that fades in on hover; the header carries the panel
6
- * title and a "new terminal" button. Colors and spacing pull from
7
- * `--jp-*` custom properties so the panel tracks the active JupyterLab
8
- * theme.
9
- */
10
-
11
1
  .jp-xtralab-Terminals {
12
- display: flex;
13
- flex-direction: column;
14
2
  min-width: 200px;
15
3
  overflow: hidden;
16
- background-color: var(--jp-layout-color1);
17
- color: var(--jp-ui-font-color1);
18
- font-size: var(--jp-ui-font-size1);
19
4
  }
20
5
 
21
- .jp-xtralab-Terminals-body {
6
+ /* On the section, not the panel, so the rules travel when the section moves. */
7
+ .jp-xtralab-Terminals-section {
22
8
  display: flex;
23
- flex: 1 1 auto;
24
9
  flex-direction: column;
25
- min-height: 0;
26
- }
27
-
28
- .jp-xtralab-Terminals-header {
29
- display: flex;
30
- flex: 0 0 auto;
31
- align-items: center;
32
- justify-content: space-between;
33
- padding: 8px 12px;
34
- border-bottom: var(--jp-border-width) solid var(--jp-border-color2);
35
- }
36
-
37
- .jp-xtralab-Terminals-title {
38
- margin: 0;
39
- font-size: var(--jp-ui-font-size0);
40
- font-weight: 600;
41
- letter-spacing: 1px;
42
- text-transform: uppercase;
43
- color: var(--jp-ui-font-color1);
10
+ overflow: hidden;
44
11
  }
45
12
 
46
- .jp-xtralab-Terminals-actions {
13
+ .jp-xtralab-Terminals-listing {
47
14
  display: flex;
48
- flex: 0 0 auto;
49
- align-items: center;
50
- gap: 2px;
15
+ flex: 1 1 auto;
16
+ flex-direction: column;
17
+ min-height: 0;
51
18
  }
52
19
 
53
- .jp-xtralab-Terminals-action {
20
+ .jp-xtralab-Terminals-body {
54
21
  display: flex;
55
- align-items: center;
56
- justify-content: center;
57
- width: 20px;
58
- height: 20px;
59
- padding: 0;
60
- background: transparent;
61
- border: none;
62
- border-radius: 2px;
63
- color: var(--jp-ui-font-color2);
64
- cursor: pointer;
65
- }
66
-
67
- .jp-xtralab-Terminals-action:hover {
68
- background-color: var(--jp-layout-color2);
69
- color: var(--jp-ui-font-color1);
70
- }
71
-
72
- .jp-xtralab-Terminals-action:focus-visible {
73
- outline: var(--jp-border-width) solid var(--jp-brand-color1);
74
- outline-offset: -1px;
75
- }
76
-
77
- /*
78
- * "Shut down all" is disabled when there are no running terminals. Dim the
79
- * whole control with opacity rather than `color`: the stop glyph is an SVG
80
- * whose fill comes from its own `jp-icon3` class (not `currentColor`), so a
81
- * `color` change alone leaves the icon looking fully active — which is why the
82
- * button did not read as disabled.
83
- */
84
- .jp-xtralab-Terminals-action:disabled {
85
- cursor: default;
86
- opacity: 0.4;
87
- }
88
-
89
- .jp-xtralab-Terminals-action:disabled:hover {
90
- background: transparent;
22
+ flex: 1 1 auto;
23
+ flex-direction: column;
24
+ min-height: 0;
91
25
  }
92
26
 
93
27
  .jp-xtralab-Terminals-empty {
@@ -114,13 +48,8 @@
114
48
  background-color: var(--jp-layout-color2);
115
49
  }
116
50
 
117
- /*
118
- * The main click target: terminal icon + the title/activity text block,
119
- * filling the row so the whole strip activates the session. The close button
120
- * sits to its right and intercepts its own clicks via the React handler.
121
- * Top-aligned so the icon sits on the title line when an activity line wraps
122
- * the row to a second line.
123
- */
51
+ /* Top-aligned so the icon stays on the title line when the activity line
52
+ * wraps to a second line. */
124
53
  .jp-xtralab-Terminals-item-activate {
125
54
  display: flex;
126
55
  flex: 1 1 auto;
@@ -141,13 +70,11 @@
141
70
  outline-offset: -2px;
142
71
  }
143
72
 
144
- /* Nudge the 16px icon down a touch so it lines up with the title's cap
145
- * height rather than the very top of the text block. */
73
+ /* Nudge the icon down so it lines up with the title's cap height. */
146
74
  .jp-xtralab-Terminals-item-icon {
147
75
  margin-top: 1px;
148
76
  }
149
77
 
150
- /* The title + activity column, between the icon and the close button. */
151
78
  .jp-xtralab-Terminals-item-text {
152
79
  display: flex;
153
80
  flex: 1 1 auto;
@@ -162,11 +89,6 @@
162
89
  white-space: nowrap;
163
90
  }
164
91
 
165
- /*
166
- * The latest line of agent output, shown under the title. Smaller and dimmer
167
- * than the title so it reads as secondary, and clamped to two lines with an
168
- * ellipsis so a long line can't stretch the row indefinitely.
169
- */
170
92
  .jp-xtralab-Terminals-item-detail {
171
93
  display: -webkit-box;
172
94
  overflow: hidden;
@@ -179,10 +101,6 @@
179
101
  -webkit-box-orient: vertical;
180
102
  }
181
103
 
182
- /*
183
- * Close button. Hidden by default so the row reads as plain text; fades
184
- * in when the row is hovered or the button itself takes focus.
185
- */
186
104
  .jp-xtralab-Terminals-item-close {
187
105
  display: flex;
188
106
  flex: 0 0 auto;
@@ -208,52 +126,32 @@
208
126
  outline-offset: -2px;
209
127
  }
210
128
 
211
- /* Higher specificity than the bare-button rules above, so it comes
212
- * last to keep stylelint's no-descending-specificity rule happy. */
129
+ /* Placed last to keep stylelint's no-descending-specificity rule happy. */
213
130
  .jp-xtralab-Terminals-item:hover .jp-xtralab-Terminals-item-close {
214
131
  opacity: 1;
215
132
  }
216
133
 
217
- /* Keep the row/header icons at the standard 16px sidebar size. */
218
- .jp-xtralab-Terminals-item svg,
219
- .jp-xtralab-Terminals-action svg {
134
+ .jp-xtralab-Terminals-item svg {
220
135
  width: 16px;
221
136
  height: 16px;
222
137
  }
223
138
 
224
- /*
225
- * The terminal that is currently the active widget in the main area — the
226
- * running-session counterpart of the file browser highlighting the open
227
- * document. It reuses the file listing's brand-color treatment so "this is
228
- * the focused terminal" reads at a glance, and the panel highlights nothing
229
- * while a notebook (or any non-terminal widget) holds the focus instead.
230
- * Driven from `widget.tsx` via the terminal tracker + the shell's current
231
- * widget.
232
- */
233
139
  .jp-xtralab-Terminals-item.jp-mod-current {
234
140
  color: var(--jp-ui-inverse-font-color1);
235
141
  background-color: var(--jp-brand-color1);
236
142
  }
237
143
 
238
- /* Hovering the current row keeps the highlight rather than falling back to
239
- * the neutral hover background. */
240
144
  .jp-xtralab-Terminals-item.jp-mod-current:hover {
241
145
  background-color: var(--jp-brand-color1);
242
146
  }
243
147
 
244
- /* Keep the activity line legible on the brand background: swap the dim
245
- * neutral for the inverse font color, held a touch lighter than the title so
246
- * it still reads as secondary. */
247
148
  .jp-xtralab-Terminals-item.jp-mod-current .jp-xtralab-Terminals-item-detail {
248
149
  color: var(--jp-ui-inverse-font-color1);
249
150
  opacity: 0.85;
250
151
  }
251
152
 
252
- /*
253
- * Invert the monochrome terminal glyph against the brand background, exactly
254
- * as the file listing does for its selected rows. Colored agent logos carry
255
- * no selectable classes, so they keep their own colors.
256
- */
153
+ /* Invert the monochrome terminal glyph as the file listing does; colored
154
+ * agent logos carry no selectable classes and keep their own colors. */
257
155
  .jp-xtralab-Terminals-item.jp-mod-current .jp-icon-selectable[fill] {
258
156
  fill: #fff;
259
157
  }
@@ -262,15 +160,12 @@
262
160
  fill: var(--jp-brand-color1);
263
161
  }
264
162
 
265
- /* Keep the inline shutdown button legible on the brand background, including
266
- * while it is itself hovered. */
267
163
  .jp-xtralab-Terminals-item.jp-mod-current .jp-xtralab-Terminals-item-close,
268
164
  .jp-xtralab-Terminals-item.jp-mod-current
269
165
  .jp-xtralab-Terminals-item-close:hover {
270
166
  color: var(--jp-ui-inverse-font-color1);
271
167
  }
272
168
 
273
- /* Focus rings need a color that contrasts with the brand background. */
274
169
  .jp-xtralab-Terminals-item.jp-mod-current
275
170
  .jp-xtralab-Terminals-item-activate:focus-visible,
276
171
  .jp-xtralab-Terminals-item.jp-mod-current
package/style/topBar.css CHANGED
@@ -1,34 +1,14 @@
1
- /* Sidebar toggle buttons in the top bar (xtralab:top-bar). */
2
-
3
1
  .jp-xtralab-TopBarButton {
4
2
  display: flex;
5
3
  align-items: center;
6
4
  }
7
5
 
8
- /*
9
- * The right-area button is added to the flex container `#jp-top-panel` after
10
- * the main menu (a high rank). `margin-left: auto` consumes the free space to
11
- * its left so it floats to the far right, mirroring the left button at the
12
- * leading edge.
13
- */
14
6
  .jp-xtralab-TopBarButton-right {
15
7
  margin-left: auto;
16
8
  }
17
9
 
18
- /*
19
- * The buttons are FAST `<jp-button appearance="stealth">` elements. The design
20
- * system paints state chrome directly on the button host that reads as an
21
- * unwanted box/border in the top bar (see
22
- * `@jupyter/web-components/.../styles/patterns/button.js`):
23
- * - `:host([aria-pressed='true'])` (the matching sidebar is open) adds an
24
- * inset `box-shadow`;
25
- * - `:host([disabled])` (e.g. the right area is empty) fills the host with
26
- * `neutralFillRest`.
27
- * Neutralize both so the control stays a flat icon like the menu.
28
- * The hover/active stealth fills are left untouched as a normal affordance.
29
- * `!important` is needed to override the (non-important) `:host(...)` rules
30
- * defined inside the component's shadow DOM.
31
- */
10
+ /* FAST `<jp-button>` shadow-DOM `:host` rules add chrome — [aria-pressed] inset
11
+ * box-shadow, [disabled] neutralFillRest fill; `!important` beats them. */
32
12
  .jp-xtralab-TopBarButton .jp-ToolbarButtonComponent {
33
13
  box-shadow: none !important;
34
14
  }
@@ -1,9 +1,3 @@
1
- /*
2
- * The read-only walkthrough panel (`xtralab:walkthrough`) in the side area. A
3
- * scrollable column of step cards, each holding rendered Markdown, an optional
4
- * embedded visual, and an optional "jump to code" button.
5
- */
6
-
7
1
  .jp-xtralab-Walkthrough {
8
2
  overflow-y: auto;
9
3
  padding: 4px 0;
@@ -32,8 +26,6 @@
32
26
  margin-top: 8px;
33
27
  }
34
28
 
35
- /* A subtle native-feeling button: UI font and neutral colors, like the rest of
36
- the JupyterLab chrome, with a leading file icon and a hover background. */
37
29
  .jp-xtralab-Walkthrough-jump {
38
30
  display: inline-flex;
39
31
  align-items: center;