pi-studio 0.8.4 → 0.9.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/CHANGELOG.md +18 -0
- package/README.md +3 -1
- package/client/studio-client.js +1291 -34
- package/client/studio.css +264 -0
- package/index.ts +455 -0
- package/package.json +2 -2
package/client/studio.css
CHANGED
|
@@ -2164,6 +2164,270 @@
|
|
|
2164
2164
|
padding: 14px 2px 2px;
|
|
2165
2165
|
}
|
|
2166
2166
|
|
|
2167
|
+
.repl-panel {
|
|
2168
|
+
display: flex;
|
|
2169
|
+
flex-direction: column;
|
|
2170
|
+
gap: 10px;
|
|
2171
|
+
}
|
|
2172
|
+
|
|
2173
|
+
.repl-toolbar {
|
|
2174
|
+
display: flex;
|
|
2175
|
+
flex-wrap: wrap;
|
|
2176
|
+
align-items: flex-start;
|
|
2177
|
+
justify-content: space-between;
|
|
2178
|
+
gap: 10px;
|
|
2179
|
+
}
|
|
2180
|
+
|
|
2181
|
+
.repl-summary,
|
|
2182
|
+
.repl-controls {
|
|
2183
|
+
display: flex;
|
|
2184
|
+
flex-wrap: wrap;
|
|
2185
|
+
align-items: center;
|
|
2186
|
+
gap: 8px;
|
|
2187
|
+
}
|
|
2188
|
+
|
|
2189
|
+
.repl-controls select,
|
|
2190
|
+
.repl-controls button,
|
|
2191
|
+
.repl-more-controls summary,
|
|
2192
|
+
.repl-journal-actions button {
|
|
2193
|
+
min-height: 28px;
|
|
2194
|
+
font-size: 12px;
|
|
2195
|
+
}
|
|
2196
|
+
|
|
2197
|
+
.repl-control-label {
|
|
2198
|
+
display: inline-flex;
|
|
2199
|
+
align-items: center;
|
|
2200
|
+
gap: 5px;
|
|
2201
|
+
color: var(--muted);
|
|
2202
|
+
font-size: 11px;
|
|
2203
|
+
font-weight: 600;
|
|
2204
|
+
}
|
|
2205
|
+
|
|
2206
|
+
.repl-more-controls {
|
|
2207
|
+
position: relative;
|
|
2208
|
+
}
|
|
2209
|
+
|
|
2210
|
+
.repl-more-controls summary {
|
|
2211
|
+
display: inline-flex;
|
|
2212
|
+
align-items: center;
|
|
2213
|
+
justify-content: center;
|
|
2214
|
+
cursor: pointer;
|
|
2215
|
+
user-select: none;
|
|
2216
|
+
list-style: none;
|
|
2217
|
+
border: 1px solid var(--control-border);
|
|
2218
|
+
border-radius: 6px;
|
|
2219
|
+
padding: 4px 10px;
|
|
2220
|
+
color: var(--text);
|
|
2221
|
+
background: var(--button-bg, var(--panel-2));
|
|
2222
|
+
}
|
|
2223
|
+
|
|
2224
|
+
.repl-more-controls summary::-webkit-details-marker {
|
|
2225
|
+
display: none;
|
|
2226
|
+
}
|
|
2227
|
+
|
|
2228
|
+
.repl-more-controls summary::after {
|
|
2229
|
+
content: "⌄";
|
|
2230
|
+
margin-left: 6px;
|
|
2231
|
+
color: var(--studio-info-text, var(--muted));
|
|
2232
|
+
font-size: 11px;
|
|
2233
|
+
}
|
|
2234
|
+
|
|
2235
|
+
.repl-more-controls[open] summary {
|
|
2236
|
+
border-color: var(--accent);
|
|
2237
|
+
background: var(--accent-soft);
|
|
2238
|
+
}
|
|
2239
|
+
|
|
2240
|
+
.repl-more-menu {
|
|
2241
|
+
position: absolute;
|
|
2242
|
+
top: calc(100% + 6px);
|
|
2243
|
+
right: 0;
|
|
2244
|
+
z-index: 20;
|
|
2245
|
+
min-width: 240px;
|
|
2246
|
+
max-width: min(520px, 80vw);
|
|
2247
|
+
padding: 8px;
|
|
2248
|
+
border: 1px solid var(--panel-border);
|
|
2249
|
+
border-radius: 10px;
|
|
2250
|
+
background: var(--panel);
|
|
2251
|
+
box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
|
|
2252
|
+
display: flex;
|
|
2253
|
+
flex-wrap: wrap;
|
|
2254
|
+
gap: 8px;
|
|
2255
|
+
}
|
|
2256
|
+
|
|
2257
|
+
.repl-transcript {
|
|
2258
|
+
margin: 0;
|
|
2259
|
+
padding: 12px 14px;
|
|
2260
|
+
border: 1px solid var(--panel-border);
|
|
2261
|
+
border-radius: 8px;
|
|
2262
|
+
background: var(--panel-2);
|
|
2263
|
+
color: var(--text);
|
|
2264
|
+
font-family: var(--font-mono);
|
|
2265
|
+
font-size: var(--studio-working-font-size);
|
|
2266
|
+
line-height: 1.45;
|
|
2267
|
+
white-space: pre-wrap;
|
|
2268
|
+
overflow-wrap: anywhere;
|
|
2269
|
+
}
|
|
2270
|
+
|
|
2271
|
+
.repl-prompt {
|
|
2272
|
+
color: var(--studio-info-text, var(--muted));
|
|
2273
|
+
font-weight: 700;
|
|
2274
|
+
}
|
|
2275
|
+
|
|
2276
|
+
.repl-empty,
|
|
2277
|
+
.repl-notice {
|
|
2278
|
+
padding: 10px 12px;
|
|
2279
|
+
border: 1px solid var(--panel-border);
|
|
2280
|
+
border-radius: 8px;
|
|
2281
|
+
background: var(--panel-2);
|
|
2282
|
+
color: var(--muted);
|
|
2283
|
+
}
|
|
2284
|
+
|
|
2285
|
+
.repl-notice-info {
|
|
2286
|
+
color: var(--studio-info-text, var(--muted));
|
|
2287
|
+
}
|
|
2288
|
+
|
|
2289
|
+
.repl-notice-error {
|
|
2290
|
+
color: var(--error);
|
|
2291
|
+
border-color: var(--error);
|
|
2292
|
+
background: var(--error-soft);
|
|
2293
|
+
}
|
|
2294
|
+
|
|
2295
|
+
.repl-journal {
|
|
2296
|
+
border: 1px solid var(--panel-border);
|
|
2297
|
+
border-radius: 10px;
|
|
2298
|
+
background: var(--panel-2);
|
|
2299
|
+
padding: 10px;
|
|
2300
|
+
display: flex;
|
|
2301
|
+
flex-direction: column;
|
|
2302
|
+
gap: 10px;
|
|
2303
|
+
}
|
|
2304
|
+
|
|
2305
|
+
.repl-journal-compact {
|
|
2306
|
+
padding: 7px 9px;
|
|
2307
|
+
background: var(--panel);
|
|
2308
|
+
}
|
|
2309
|
+
|
|
2310
|
+
.repl-journal-compact-row {
|
|
2311
|
+
display: flex;
|
|
2312
|
+
align-items: center;
|
|
2313
|
+
justify-content: space-between;
|
|
2314
|
+
gap: 10px;
|
|
2315
|
+
flex-wrap: wrap;
|
|
2316
|
+
}
|
|
2317
|
+
|
|
2318
|
+
.repl-journal-compact-title {
|
|
2319
|
+
display: inline-flex;
|
|
2320
|
+
align-items: center;
|
|
2321
|
+
gap: 8px;
|
|
2322
|
+
min-width: 0;
|
|
2323
|
+
color: var(--muted);
|
|
2324
|
+
font-size: 12px;
|
|
2325
|
+
}
|
|
2326
|
+
|
|
2327
|
+
.repl-journal-chip {
|
|
2328
|
+
display: inline-flex;
|
|
2329
|
+
align-items: center;
|
|
2330
|
+
border: 1px solid var(--border-subtle);
|
|
2331
|
+
border-radius: 999px;
|
|
2332
|
+
padding: 2px 7px;
|
|
2333
|
+
color: var(--studio-info-text, var(--muted));
|
|
2334
|
+
background: var(--panel-2);
|
|
2335
|
+
font-size: 11px;
|
|
2336
|
+
font-weight: 700;
|
|
2337
|
+
letter-spacing: 0.02em;
|
|
2338
|
+
}
|
|
2339
|
+
|
|
2340
|
+
.repl-journal-header {
|
|
2341
|
+
display: flex;
|
|
2342
|
+
justify-content: space-between;
|
|
2343
|
+
align-items: flex-start;
|
|
2344
|
+
gap: 12px;
|
|
2345
|
+
flex-wrap: wrap;
|
|
2346
|
+
}
|
|
2347
|
+
|
|
2348
|
+
.repl-journal-header h3 {
|
|
2349
|
+
margin: 0;
|
|
2350
|
+
font-size: 13px;
|
|
2351
|
+
color: var(--text);
|
|
2352
|
+
}
|
|
2353
|
+
|
|
2354
|
+
.repl-journal-header p,
|
|
2355
|
+
.repl-journal-omitted {
|
|
2356
|
+
margin: 3px 0 0;
|
|
2357
|
+
color: var(--muted);
|
|
2358
|
+
font-size: 12px;
|
|
2359
|
+
line-height: 1.35;
|
|
2360
|
+
}
|
|
2361
|
+
|
|
2362
|
+
.repl-journal-actions {
|
|
2363
|
+
display: inline-flex;
|
|
2364
|
+
align-items: center;
|
|
2365
|
+
gap: 8px;
|
|
2366
|
+
flex-wrap: wrap;
|
|
2367
|
+
justify-content: flex-end;
|
|
2368
|
+
}
|
|
2369
|
+
|
|
2370
|
+
.repl-journal-list {
|
|
2371
|
+
display: flex;
|
|
2372
|
+
flex-direction: column;
|
|
2373
|
+
gap: 10px;
|
|
2374
|
+
}
|
|
2375
|
+
|
|
2376
|
+
.repl-journal-card {
|
|
2377
|
+
border: 1px solid var(--border-subtle);
|
|
2378
|
+
border-radius: 9px;
|
|
2379
|
+
background: var(--panel);
|
|
2380
|
+
padding: 10px;
|
|
2381
|
+
display: flex;
|
|
2382
|
+
flex-direction: column;
|
|
2383
|
+
gap: 8px;
|
|
2384
|
+
}
|
|
2385
|
+
|
|
2386
|
+
.repl-journal-card-header {
|
|
2387
|
+
display: flex;
|
|
2388
|
+
align-items: center;
|
|
2389
|
+
gap: 8px;
|
|
2390
|
+
flex-wrap: wrap;
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2393
|
+
.repl-journal-section {
|
|
2394
|
+
display: flex;
|
|
2395
|
+
flex-direction: column;
|
|
2396
|
+
gap: 4px;
|
|
2397
|
+
}
|
|
2398
|
+
|
|
2399
|
+
.repl-journal-label {
|
|
2400
|
+
color: var(--muted);
|
|
2401
|
+
font-size: 11px;
|
|
2402
|
+
font-weight: 700;
|
|
2403
|
+
text-transform: uppercase;
|
|
2404
|
+
letter-spacing: 0.04em;
|
|
2405
|
+
}
|
|
2406
|
+
|
|
2407
|
+
.repl-journal-prose,
|
|
2408
|
+
.repl-journal-code,
|
|
2409
|
+
.repl-journal-output {
|
|
2410
|
+
margin: 0;
|
|
2411
|
+
border-radius: 7px;
|
|
2412
|
+
padding: 8px 10px;
|
|
2413
|
+
background: var(--panel-2);
|
|
2414
|
+
color: var(--text);
|
|
2415
|
+
white-space: pre-wrap;
|
|
2416
|
+
overflow-wrap: anywhere;
|
|
2417
|
+
}
|
|
2418
|
+
|
|
2419
|
+
.repl-journal-code,
|
|
2420
|
+
.repl-journal-output {
|
|
2421
|
+
font-family: var(--font-mono);
|
|
2422
|
+
font-size: var(--studio-working-font-size);
|
|
2423
|
+
line-height: 1.45;
|
|
2424
|
+
}
|
|
2425
|
+
|
|
2426
|
+
.repl-journal-prose {
|
|
2427
|
+
font-size: 13px;
|
|
2428
|
+
line-height: 1.45;
|
|
2429
|
+
}
|
|
2430
|
+
|
|
2167
2431
|
footer {
|
|
2168
2432
|
border-top: 1px solid var(--panel-border);
|
|
2169
2433
|
padding: 8px 12px;
|