xtralab 0.10.0 → 0.11.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/README.md +23 -9
- package/lib/commandBar/index.d.ts +14 -0
- package/lib/commandBar/index.js +114 -0
- package/lib/fileBrowser/fileBrowser.js +6 -1
- package/lib/highlight/index.d.ts +15 -0
- package/lib/highlight/index.js +214 -0
- package/lib/index.js +13 -1
- package/lib/launcher/agents.d.ts +7 -0
- package/lib/launcher/agents.js +24 -0
- package/lib/launcher/editorRegistry.js +5 -3
- package/lib/launcher/editors.d.ts +8 -0
- package/lib/launcher/editors.js +17 -0
- package/lib/launcher/index.js +4 -0
- package/lib/launcher/schemaDefaults.d.ts +15 -0
- package/lib/launcher/schemaDefaults.js +44 -0
- package/lib/omnibox/files.d.ts +7 -0
- package/lib/omnibox/files.js +50 -0
- package/lib/omnibox/index.d.ts +14 -0
- package/lib/omnibox/index.js +83 -0
- package/lib/omnibox/model.d.ts +45 -0
- package/lib/omnibox/model.js +142 -0
- package/lib/omnibox/tokens.d.ts +23 -0
- package/lib/omnibox/tokens.js +11 -0
- package/lib/omnibox/widget.d.ts +36 -0
- package/lib/omnibox/widget.js +161 -0
- package/lib/searchReplace/index.d.ts +25 -0
- package/lib/searchReplace/index.js +68 -0
- package/lib/showOutput/index.d.ts +17 -0
- package/lib/showOutput/index.js +154 -0
- package/lib/terminals/index.d.ts +4 -0
- package/lib/terminals/index.js +65 -16
- package/lib/terminals/model.d.ts +56 -3
- package/lib/terminals/model.js +261 -5
- package/lib/terminals/widget.d.ts +3 -1
- package/lib/terminals/widget.js +11 -3
- package/lib/walkthrough/index.d.ts +14 -0
- package/lib/walkthrough/index.js +162 -0
- package/lib/walkthrough/panel.d.ts +54 -0
- package/lib/walkthrough/panel.js +98 -0
- package/package.json +1 -1
- package/schema/launcher.json +3 -2
- package/schema/terminals.json +15 -0
- package/src/commandBar/index.ts +165 -0
- package/src/fileBrowser/fileBrowser.tsx +8 -1
- package/src/highlight/index.ts +251 -0
- package/src/index.ts +13 -1
- package/src/launcher/agents.ts +25 -0
- package/src/launcher/editorRegistry.ts +8 -4
- package/src/launcher/editors.ts +18 -0
- package/src/launcher/index.ts +4 -0
- package/src/launcher/schemaDefaults.ts +53 -0
- package/src/omnibox/files.ts +68 -0
- package/src/omnibox/index.ts +105 -0
- package/src/omnibox/model.ts +210 -0
- package/src/omnibox/tokens.ts +29 -0
- package/src/omnibox/widget.tsx +322 -0
- package/src/searchReplace/index.ts +86 -0
- package/src/showOutput/index.ts +199 -0
- package/src/terminals/index.ts +79 -16
- package/src/terminals/model.ts +304 -3
- package/src/terminals/widget.tsx +21 -4
- package/src/walkthrough/index.ts +202 -0
- package/src/walkthrough/panel.ts +152 -0
- package/style/commandBar.css +104 -0
- package/style/highlight.css +11 -0
- package/style/index.css +5 -0
- package/style/index.js +5 -0
- package/style/omnibox.css +120 -0
- package/style/showOutput.css +11 -0
- package/style/terminals.css +54 -10
- package/style/walkthrough.css +80 -0
package/style/terminals.css
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Left-sidebar panel listing running terminal sessions. Each row shows
|
|
3
|
-
* the session's real (program-published) title
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
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.
|
|
7
9
|
*/
|
|
8
10
|
|
|
9
11
|
.jp-xtralab-Terminals {
|
|
@@ -105,7 +107,7 @@
|
|
|
105
107
|
.jp-xtralab-Terminals-item {
|
|
106
108
|
display: flex;
|
|
107
109
|
align-items: stretch;
|
|
108
|
-
height: 28px;
|
|
110
|
+
min-height: 28px;
|
|
109
111
|
}
|
|
110
112
|
|
|
111
113
|
.jp-xtralab-Terminals-item:hover {
|
|
@@ -113,17 +115,19 @@
|
|
|
113
115
|
}
|
|
114
116
|
|
|
115
117
|
/*
|
|
116
|
-
* The main click target: terminal icon +
|
|
117
|
-
* whole strip activates the session. The close button
|
|
118
|
-
* and intercepts its own clicks via the React handler.
|
|
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.
|
|
119
123
|
*/
|
|
120
124
|
.jp-xtralab-Terminals-item-activate {
|
|
121
125
|
display: flex;
|
|
122
126
|
flex: 1 1 auto;
|
|
123
|
-
align-items:
|
|
127
|
+
align-items: flex-start;
|
|
124
128
|
gap: 6px;
|
|
125
129
|
min-width: 0;
|
|
126
|
-
padding:
|
|
130
|
+
padding: 5px 4px 5px 12px;
|
|
127
131
|
background: transparent;
|
|
128
132
|
border: none;
|
|
129
133
|
color: inherit;
|
|
@@ -137,12 +141,44 @@
|
|
|
137
141
|
outline-offset: -2px;
|
|
138
142
|
}
|
|
139
143
|
|
|
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. */
|
|
146
|
+
.jp-xtralab-Terminals-item-icon {
|
|
147
|
+
margin-top: 1px;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/* The title + activity column, between the icon and the close button. */
|
|
151
|
+
.jp-xtralab-Terminals-item-text {
|
|
152
|
+
display: flex;
|
|
153
|
+
flex: 1 1 auto;
|
|
154
|
+
flex-direction: column;
|
|
155
|
+
gap: 1px;
|
|
156
|
+
min-width: 0;
|
|
157
|
+
}
|
|
158
|
+
|
|
140
159
|
.jp-xtralab-Terminals-item-label {
|
|
141
160
|
overflow: hidden;
|
|
142
161
|
text-overflow: ellipsis;
|
|
143
162
|
white-space: nowrap;
|
|
144
163
|
}
|
|
145
164
|
|
|
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
|
+
.jp-xtralab-Terminals-item-detail {
|
|
171
|
+
display: -webkit-box;
|
|
172
|
+
overflow: hidden;
|
|
173
|
+
font-size: var(--jp-ui-font-size0);
|
|
174
|
+
line-height: 1.3;
|
|
175
|
+
color: var(--jp-ui-font-color3);
|
|
176
|
+
text-overflow: ellipsis;
|
|
177
|
+
overflow-wrap: anywhere;
|
|
178
|
+
-webkit-line-clamp: 2;
|
|
179
|
+
-webkit-box-orient: vertical;
|
|
180
|
+
}
|
|
181
|
+
|
|
146
182
|
/*
|
|
147
183
|
* Close button. Hidden by default so the row reads as plain text; fades
|
|
148
184
|
* in when the row is hovered or the button itself takes focus.
|
|
@@ -205,6 +241,14 @@
|
|
|
205
241
|
background-color: var(--jp-brand-color1);
|
|
206
242
|
}
|
|
207
243
|
|
|
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
|
+
.jp-xtralab-Terminals-item.jp-mod-current .jp-xtralab-Terminals-item-detail {
|
|
248
|
+
color: var(--jp-ui-inverse-font-color1);
|
|
249
|
+
opacity: 0.85;
|
|
250
|
+
}
|
|
251
|
+
|
|
208
252
|
/*
|
|
209
253
|
* Invert the monochrome terminal glyph against the brand background, exactly
|
|
210
254
|
* as the file listing does for its selected rows. Colored agent logos carry
|
|
@@ -0,0 +1,80 @@
|
|
|
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
|
+
.jp-xtralab-Walkthrough {
|
|
8
|
+
overflow-y: auto;
|
|
9
|
+
padding: 4px 0;
|
|
10
|
+
background: var(--jp-layout-color1);
|
|
11
|
+
color: var(--jp-ui-font-color1);
|
|
12
|
+
font-size: var(--jp-ui-font-size1);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.jp-xtralab-Walkthrough-step {
|
|
16
|
+
padding: 10px 12px 14px;
|
|
17
|
+
border-bottom: 1px solid var(--jp-border-color2);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.jp-xtralab-Walkthrough-stepTitle {
|
|
21
|
+
margin: 0 0 6px;
|
|
22
|
+
font-size: var(--jp-ui-font-size2);
|
|
23
|
+
font-weight: 600;
|
|
24
|
+
color: var(--jp-ui-font-color0);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.jp-xtralab-Walkthrough-content {
|
|
28
|
+
overflow-x: auto;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.jp-xtralab-Walkthrough-jumpRow {
|
|
32
|
+
margin-top: 8px;
|
|
33
|
+
}
|
|
34
|
+
|
|
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
|
+
.jp-xtralab-Walkthrough-jump {
|
|
38
|
+
display: inline-flex;
|
|
39
|
+
align-items: center;
|
|
40
|
+
gap: 4px;
|
|
41
|
+
max-width: 100%;
|
|
42
|
+
box-sizing: border-box;
|
|
43
|
+
padding: 2px 8px 2px 5px;
|
|
44
|
+
border: var(--jp-border-width) solid var(--jp-border-color2);
|
|
45
|
+
border-radius: var(--jp-border-radius);
|
|
46
|
+
background: none;
|
|
47
|
+
color: var(--jp-ui-font-color1);
|
|
48
|
+
font-family: var(--jp-ui-font-family);
|
|
49
|
+
font-size: var(--jp-ui-font-size1);
|
|
50
|
+
line-height: 1.5;
|
|
51
|
+
cursor: pointer;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.jp-xtralab-Walkthrough-jump:hover {
|
|
55
|
+
background-color: var(--jp-layout-color2);
|
|
56
|
+
border-color: var(--jp-border-color1);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.jp-xtralab-Walkthrough-jump:focus-visible {
|
|
60
|
+
outline: none;
|
|
61
|
+
border-color: var(--jp-brand-color1);
|
|
62
|
+
box-shadow: inset 0 0 0 1px var(--jp-brand-color1);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.jp-xtralab-Walkthrough-jumpIcon {
|
|
66
|
+
display: flex;
|
|
67
|
+
flex: 0 0 auto;
|
|
68
|
+
align-items: center;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.jp-xtralab-Walkthrough-jumpIcon svg {
|
|
72
|
+
width: 14px;
|
|
73
|
+
height: 14px;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.jp-xtralab-Walkthrough-jumpLabel {
|
|
77
|
+
overflow: hidden;
|
|
78
|
+
text-overflow: ellipsis;
|
|
79
|
+
white-space: nowrap;
|
|
80
|
+
}
|