pi-studio 0.9.56 → 0.9.58
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 +32 -0
- package/README.md +28 -7
- package/ROADMAP.md +26 -2
- package/client/studio-client.js +587 -57
- package/client/studio.css +171 -0
- package/index.ts +249 -114
- package/package.json +1 -1
- package/shared/REPL_SESSION_RECORD_PROTOCOL.md +24 -1
- package/shared/repl-control-files.js +158 -0
- package/shared/repl-submission-display.js +227 -0
package/client/studio.css
CHANGED
|
@@ -362,6 +362,55 @@
|
|
|
362
362
|
user-select: none;
|
|
363
363
|
}
|
|
364
364
|
|
|
365
|
+
body[data-studio-layout="editor-top"] main,
|
|
366
|
+
body[data-studio-layout="response-top"] main {
|
|
367
|
+
grid-template-columns: minmax(0, 1fr);
|
|
368
|
+
gap: 0;
|
|
369
|
+
}
|
|
370
|
+
|
|
371
|
+
body[data-studio-layout="editor-top"] main {
|
|
372
|
+
grid-template-rows: minmax(140px, var(--studio-left-pane-fr, 1fr)) 10px minmax(140px, var(--studio-right-pane-fr, 1fr));
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
body[data-studio-layout="response-top"] main {
|
|
376
|
+
grid-template-rows: minmax(140px, var(--studio-right-pane-fr, 1fr)) 10px minmax(140px, var(--studio-left-pane-fr, 1fr));
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
body[data-studio-layout="editor-top"] .pane-resize-handle,
|
|
380
|
+
body[data-studio-layout="response-top"] .pane-resize-handle {
|
|
381
|
+
display: block;
|
|
382
|
+
align-self: stretch;
|
|
383
|
+
min-width: 0;
|
|
384
|
+
min-height: 10px;
|
|
385
|
+
cursor: row-resize;
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
body[data-studio-layout="editor-top"] .pane-resize-handle::before,
|
|
389
|
+
body[data-studio-layout="response-top"] .pane-resize-handle::before {
|
|
390
|
+
top: 50%;
|
|
391
|
+
right: 8px;
|
|
392
|
+
bottom: auto;
|
|
393
|
+
left: 8px;
|
|
394
|
+
width: auto;
|
|
395
|
+
height: 2px;
|
|
396
|
+
transform: translateY(-50%);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
body[data-studio-layout="editor-top"] .pane-resize-handle:hover::before,
|
|
400
|
+
body[data-studio-layout="editor-top"] .pane-resize-handle:focus-visible::before,
|
|
401
|
+
body[data-studio-layout="editor-top"].pane-resizing .pane-resize-handle::before,
|
|
402
|
+
body[data-studio-layout="response-top"] .pane-resize-handle:hover::before,
|
|
403
|
+
body[data-studio-layout="response-top"] .pane-resize-handle:focus-visible::before,
|
|
404
|
+
body[data-studio-layout="response-top"].pane-resizing .pane-resize-handle::before {
|
|
405
|
+
width: auto;
|
|
406
|
+
height: 3px;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
body[data-studio-layout="editor-top"].pane-resizing,
|
|
410
|
+
body[data-studio-layout="response-top"].pane-resizing {
|
|
411
|
+
cursor: row-resize;
|
|
412
|
+
}
|
|
413
|
+
|
|
365
414
|
section {
|
|
366
415
|
border: 1px solid var(--panel-border);
|
|
367
416
|
border-radius: 10px;
|
|
@@ -387,6 +436,13 @@
|
|
|
387
436
|
gap: 12px;
|
|
388
437
|
}
|
|
389
438
|
|
|
439
|
+
body[data-studio-layout="editor-top"].pane-focus-left main,
|
|
440
|
+
body[data-studio-layout="editor-top"].pane-focus-right main,
|
|
441
|
+
body[data-studio-layout="response-top"].pane-focus-left main,
|
|
442
|
+
body[data-studio-layout="response-top"].pane-focus-right main {
|
|
443
|
+
grid-template-rows: minmax(0, 1fr);
|
|
444
|
+
}
|
|
445
|
+
|
|
390
446
|
body.pane-focus-left #rightPane,
|
|
391
447
|
body.pane-focus-right #leftPane,
|
|
392
448
|
body.pane-focus-left #paneResizeHandle,
|
|
@@ -4579,6 +4635,107 @@
|
|
|
4579
4635
|
background: var(--error-soft);
|
|
4580
4636
|
}
|
|
4581
4637
|
|
|
4638
|
+
.repl-quick-composer {
|
|
4639
|
+
display: flex;
|
|
4640
|
+
flex-direction: column;
|
|
4641
|
+
gap: 8px;
|
|
4642
|
+
padding: 10px;
|
|
4643
|
+
border: 1px solid var(--panel-border);
|
|
4644
|
+
border-radius: 8px;
|
|
4645
|
+
background: color-mix(in srgb, var(--panel-2) 58%, var(--panel));
|
|
4646
|
+
}
|
|
4647
|
+
|
|
4648
|
+
.repl-quick-header,
|
|
4649
|
+
.repl-quick-actions {
|
|
4650
|
+
display: flex;
|
|
4651
|
+
align-items: center;
|
|
4652
|
+
justify-content: space-between;
|
|
4653
|
+
gap: 10px;
|
|
4654
|
+
}
|
|
4655
|
+
|
|
4656
|
+
.repl-quick-header > div,
|
|
4657
|
+
.repl-quick-actions > div {
|
|
4658
|
+
display: flex;
|
|
4659
|
+
align-items: center;
|
|
4660
|
+
gap: 8px;
|
|
4661
|
+
min-width: 0;
|
|
4662
|
+
}
|
|
4663
|
+
|
|
4664
|
+
.repl-quick-target {
|
|
4665
|
+
display: inline-flex;
|
|
4666
|
+
align-items: center;
|
|
4667
|
+
gap: 4px;
|
|
4668
|
+
max-width: min(48vw, 460px);
|
|
4669
|
+
min-height: 0;
|
|
4670
|
+
margin-left: 5px;
|
|
4671
|
+
padding: 2px 4px;
|
|
4672
|
+
overflow: hidden;
|
|
4673
|
+
border-color: transparent;
|
|
4674
|
+
border-radius: 5px;
|
|
4675
|
+
background: transparent;
|
|
4676
|
+
color: var(--muted);
|
|
4677
|
+
font-family: var(--font-mono);
|
|
4678
|
+
font-size: 11px;
|
|
4679
|
+
line-height: 1.25;
|
|
4680
|
+
vertical-align: bottom;
|
|
4681
|
+
white-space: nowrap;
|
|
4682
|
+
}
|
|
4683
|
+
|
|
4684
|
+
.repl-quick-target:not(:disabled):hover,
|
|
4685
|
+
.repl-quick-target:focus-visible {
|
|
4686
|
+
border-color: transparent;
|
|
4687
|
+
background: var(--studio-header-action-hover-bg, var(--panel-2));
|
|
4688
|
+
color: var(--text);
|
|
4689
|
+
}
|
|
4690
|
+
|
|
4691
|
+
.repl-quick-target-label {
|
|
4692
|
+
min-width: 0;
|
|
4693
|
+
overflow: hidden;
|
|
4694
|
+
text-overflow: ellipsis;
|
|
4695
|
+
}
|
|
4696
|
+
|
|
4697
|
+
.repl-quick-target-arrow {
|
|
4698
|
+
flex: 0 0 auto;
|
|
4699
|
+
color: var(--studio-info-text, var(--muted));
|
|
4700
|
+
font-family: var(--font-ui);
|
|
4701
|
+
font-size: 10px;
|
|
4702
|
+
font-weight: 700;
|
|
4703
|
+
}
|
|
4704
|
+
|
|
4705
|
+
.repl-quick-hint,
|
|
4706
|
+
.repl-quick-actions > span {
|
|
4707
|
+
color: var(--muted);
|
|
4708
|
+
font-size: 11px;
|
|
4709
|
+
}
|
|
4710
|
+
|
|
4711
|
+
.repl-quick-composer textarea {
|
|
4712
|
+
box-sizing: border-box;
|
|
4713
|
+
min-height: 72px;
|
|
4714
|
+
max-height: 260px;
|
|
4715
|
+
margin: 0;
|
|
4716
|
+
resize: vertical;
|
|
4717
|
+
}
|
|
4718
|
+
|
|
4719
|
+
.repl-quick-composer textarea:focus-visible {
|
|
4720
|
+
border-color: color-mix(in srgb, var(--accent) 65%, var(--control-border));
|
|
4721
|
+
outline: 2px solid color-mix(in srgb, var(--accent) 28%, transparent);
|
|
4722
|
+
outline-offset: 1px;
|
|
4723
|
+
}
|
|
4724
|
+
|
|
4725
|
+
.repl-quick-actions {
|
|
4726
|
+
align-items: flex-end;
|
|
4727
|
+
}
|
|
4728
|
+
|
|
4729
|
+
.repl-quick-actions > span {
|
|
4730
|
+
line-height: 1.35;
|
|
4731
|
+
}
|
|
4732
|
+
|
|
4733
|
+
.repl-quick-send-btn {
|
|
4734
|
+
border-color: color-mix(in srgb, var(--accent) 58%, var(--control-border));
|
|
4735
|
+
background: color-mix(in srgb, var(--accent) 14%, var(--panel));
|
|
4736
|
+
color: var(--text);
|
|
4737
|
+
}
|
|
4738
|
+
|
|
4582
4739
|
.repl-journal,
|
|
4583
4740
|
.repl-mirror {
|
|
4584
4741
|
border: 1px solid var(--panel-border);
|
|
@@ -5726,6 +5883,20 @@
|
|
|
5726
5883
|
.pane-resize-handle {
|
|
5727
5884
|
display: none;
|
|
5728
5885
|
}
|
|
5886
|
+
|
|
5887
|
+
.repl-quick-header,
|
|
5888
|
+
.repl-quick-actions {
|
|
5889
|
+
align-items: stretch;
|
|
5890
|
+
flex-direction: column;
|
|
5891
|
+
}
|
|
5892
|
+
|
|
5893
|
+
.repl-quick-target {
|
|
5894
|
+
max-width: 66vw;
|
|
5895
|
+
}
|
|
5896
|
+
|
|
5897
|
+
.repl-quick-actions > div {
|
|
5898
|
+
align-self: flex-end;
|
|
5899
|
+
}
|
|
5729
5900
|
}
|
|
5730
5901
|
|
|
5731
5902
|
/* Default Studio layout. The legacy classic layout remains available only via ?uiRefresh=0. */
|