pi-studio 0.9.11 → 0.9.13

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/client/studio.css CHANGED
@@ -236,11 +236,49 @@
236
236
  flex: 1;
237
237
  min-height: 0;
238
238
  display: grid;
239
- grid-template-columns: 1fr 1fr;
240
- gap: 12px;
239
+ grid-template-columns: minmax(260px, var(--studio-left-pane-fr, 1fr)) 10px minmax(320px, var(--studio-right-pane-fr, 1fr));
240
+ gap: 0;
241
241
  padding: 12px;
242
242
  }
243
243
 
244
+ .pane-resize-handle {
245
+ align-self: stretch;
246
+ min-width: 10px;
247
+ border-radius: 999px;
248
+ background: transparent;
249
+ cursor: col-resize;
250
+ position: relative;
251
+ outline: none;
252
+ touch-action: none;
253
+ }
254
+
255
+ .pane-resize-handle::before {
256
+ content: "";
257
+ position: absolute;
258
+ top: 8px;
259
+ bottom: 8px;
260
+ left: 50%;
261
+ width: 2px;
262
+ border-radius: 999px;
263
+ transform: translateX(-50%);
264
+ background: var(--border-subtle);
265
+ opacity: 0;
266
+ transition: opacity 0.12s ease, background-color 0.12s ease, width 0.12s ease;
267
+ }
268
+
269
+ .pane-resize-handle:hover::before,
270
+ .pane-resize-handle:focus-visible::before,
271
+ body.pane-resizing .pane-resize-handle::before {
272
+ width: 3px;
273
+ background: var(--accent);
274
+ opacity: 0.95;
275
+ }
276
+
277
+ body.pane-resizing {
278
+ cursor: col-resize;
279
+ user-select: none;
280
+ }
281
+
244
282
  section {
245
283
  border: 1px solid var(--panel-border);
246
284
  border-radius: 10px;
@@ -252,6 +290,10 @@
252
290
  box-shadow: var(--panel-shadow);
253
291
  }
254
292
 
293
+ main > section {
294
+ container-type: inline-size;
295
+ }
296
+
255
297
  section.pane-active {
256
298
  border-color: var(--pane-active-border);
257
299
  }
@@ -259,10 +301,13 @@
259
301
  body.pane-focus-left main,
260
302
  body.pane-focus-right main {
261
303
  grid-template-columns: 1fr;
304
+ gap: 12px;
262
305
  }
263
306
 
264
307
  body.pane-focus-left #rightPane,
265
- body.pane-focus-right #leftPane {
308
+ body.pane-focus-right #leftPane,
309
+ body.pane-focus-left #paneResizeHandle,
310
+ body.pane-focus-right #paneResizeHandle {
266
311
  display: none;
267
312
  }
268
313
 
@@ -351,7 +396,6 @@
351
396
  body[data-studio-mode="editor-only"] #sendRunBtn,
352
397
  body[data-studio-mode="editor-only"] #queueSteerBtn,
353
398
  body[data-studio-mode="editor-only"] #sendEditorBtn,
354
- body[data-studio-mode="editor-only"] #insertHeaderBtn,
355
399
  body[data-studio-mode="editor-only"] #lensSelect,
356
400
  body[data-studio-mode="editor-only"] #critiqueBtn,
357
401
  body[data-studio-mode="editor-only"] #followSelect,
@@ -2893,10 +2937,11 @@
2893
2937
  display: flex;
2894
2938
  flex-wrap: wrap;
2895
2939
  align-items: center;
2896
- gap: 8px;
2940
+ gap: 6px;
2897
2941
  }
2898
2942
 
2899
2943
  .repl-controls select,
2944
+ .repl-controls input,
2900
2945
  .repl-controls button,
2901
2946
  .repl-more-controls summary,
2902
2947
  .repl-journal-actions button {
@@ -2907,7 +2952,7 @@
2907
2952
  .repl-control-label {
2908
2953
  display: inline-flex;
2909
2954
  align-items: center;
2910
- gap: 5px;
2955
+ gap: 4px;
2911
2956
  color: var(--muted);
2912
2957
  font-size: 11px;
2913
2958
  font-weight: 600;
@@ -2926,7 +2971,7 @@
2926
2971
  list-style: none;
2927
2972
  border: 1px solid transparent;
2928
2973
  border-radius: 6px;
2929
- padding: 4px 10px;
2974
+ padding: 4px 7px;
2930
2975
  color: var(--text);
2931
2976
  background: transparent;
2932
2977
  }
@@ -2937,11 +2982,38 @@
2937
2982
 
2938
2983
  .repl-more-controls summary::after {
2939
2984
  content: "⌄";
2940
- margin-left: 6px;
2985
+ margin-left: 4px;
2941
2986
  color: var(--studio-info-text, var(--muted));
2942
2987
  font-size: 11px;
2943
2988
  }
2944
2989
 
2990
+ .repl-command-label input {
2991
+ width: 3rem;
2992
+ min-width: 3rem;
2993
+ border-color: transparent;
2994
+ background: transparent;
2995
+ color: var(--text);
2996
+ overflow: hidden;
2997
+ text-overflow: ellipsis;
2998
+ white-space: nowrap;
2999
+ transition: width 0.12s ease;
3000
+ }
3001
+
3002
+ .repl-command-label input:focus {
3003
+ width: clamp(12rem, 22vw, 18rem);
3004
+ }
3005
+
3006
+ .repl-session-label select {
3007
+ max-width: min(24rem, 34vw);
3008
+ overflow: hidden;
3009
+ text-overflow: ellipsis;
3010
+ }
3011
+
3012
+ .repl-start-btn {
3013
+ padding-left: 8px;
3014
+ padding-right: 8px;
3015
+ }
3016
+
2945
3017
  .repl-controls select {
2946
3018
  border-color: transparent;
2947
3019
  background: transparent;
@@ -2949,6 +3021,8 @@
2949
3021
 
2950
3022
  .repl-controls select:not(:disabled):hover,
2951
3023
  .repl-controls select:focus,
3024
+ .repl-command-label input:hover,
3025
+ .repl-command-label input:focus,
2952
3026
  .repl-more-controls summary:hover,
2953
3027
  .repl-more-controls summary:focus,
2954
3028
  .repl-more-controls[open] summary {
@@ -3017,10 +3091,10 @@
3017
3091
  border: 1px solid var(--panel-border);
3018
3092
  border-radius: 10px;
3019
3093
  background: var(--panel-2);
3020
- padding: 10px;
3094
+ padding: 8px 10px;
3021
3095
  display: flex;
3022
3096
  flex-direction: column;
3023
- gap: 10px;
3097
+ gap: 7px;
3024
3098
  }
3025
3099
 
3026
3100
  .repl-mirror {
@@ -3064,25 +3138,25 @@
3064
3138
  }
3065
3139
 
3066
3140
  .repl-journal-header {
3067
- display: flex;
3068
- justify-content: space-between;
3069
- align-items: flex-start;
3070
- gap: 12px;
3071
- flex-wrap: wrap;
3141
+ display: grid;
3142
+ grid-template-columns: minmax(0, 1fr) auto;
3143
+ align-items: center;
3144
+ gap: 8px 12px;
3072
3145
  }
3073
3146
 
3074
3147
  .repl-journal-header h3 {
3075
3148
  margin: 0;
3076
- font-size: 13px;
3149
+ font-size: 12.5px;
3077
3150
  color: var(--text);
3078
3151
  }
3079
3152
 
3080
3153
  .repl-journal-header p,
3154
+ .repl-journal-description,
3081
3155
  .repl-journal-omitted {
3082
- margin: 3px 0 0;
3156
+ margin: 1px 0 0;
3083
3157
  color: var(--muted);
3084
- font-size: 12px;
3085
- line-height: 1.35;
3158
+ font-size: 11.5px;
3159
+ line-height: 1.3;
3086
3160
  }
3087
3161
 
3088
3162
  .repl-journal-actions {
@@ -3093,6 +3167,12 @@
3093
3167
  justify-content: flex-end;
3094
3168
  }
3095
3169
 
3170
+ .repl-journal-actions button {
3171
+ min-height: 26px;
3172
+ padding: 3px 8px;
3173
+ font-size: 12px;
3174
+ }
3175
+
3096
3176
  .repl-journal-compact-actions,
3097
3177
  .repl-studio-below-actions {
3098
3178
  display: flex;
@@ -3110,9 +3190,9 @@
3110
3190
  flex-direction: column;
3111
3191
  gap: 0;
3112
3192
  border: 1px solid var(--panel-border);
3113
- border-radius: 10px;
3193
+ border-radius: 9px;
3114
3194
  background: var(--panel);
3115
- padding: 10px 12px;
3195
+ padding: 8px 10px;
3116
3196
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.015);
3117
3197
  }
3118
3198
 
@@ -3446,6 +3526,7 @@
3446
3526
 
3447
3527
  .shortcuts-dialog {
3448
3528
  width: min(720px, 100%);
3529
+ max-height: min(82vh, 760px);
3449
3530
  }
3450
3531
 
3451
3532
  .scratchpad-dialog {
@@ -3502,14 +3583,16 @@
3502
3583
 
3503
3584
  .shortcuts-body {
3504
3585
  display: grid;
3505
- gap: 14px;
3506
- padding: 16px 18px 18px;
3507
- overflow: auto;
3586
+ gap: 12px;
3587
+ padding: 14px 18px 16px;
3588
+ overflow-y: auto;
3589
+ overflow-x: hidden;
3590
+ min-height: 0;
3508
3591
  background: var(--panel);
3509
3592
  }
3510
3593
 
3511
3594
  .shortcuts-group h3 {
3512
- margin: 0 0 8px;
3595
+ margin: 0 0 6px;
3513
3596
  font-size: 12px;
3514
3597
  font-weight: 700;
3515
3598
  color: var(--studio-info-text, var(--muted));
@@ -3519,8 +3602,11 @@
3519
3602
 
3520
3603
  .shortcuts-group dl {
3521
3604
  display: grid;
3522
- gap: 6px;
3605
+ gap: 0;
3523
3606
  margin: 0;
3607
+ border: 1px solid var(--border-subtle);
3608
+ border-radius: 10px;
3609
+ overflow: hidden;
3524
3610
  }
3525
3611
 
3526
3612
  .shortcuts-group dl > div {
@@ -3528,10 +3614,14 @@
3528
3614
  grid-template-columns: minmax(130px, max-content) minmax(0, 1fr);
3529
3615
  gap: 12px;
3530
3616
  align-items: baseline;
3531
- padding: 6px 0;
3617
+ padding: 6px 10px;
3532
3618
  border-top: 1px solid var(--border-subtle);
3533
3619
  }
3534
3620
 
3621
+ .shortcuts-group dl > div:first-child {
3622
+ border-top: 0;
3623
+ }
3624
+
3535
3625
  .shortcuts-group dt {
3536
3626
  margin: 0;
3537
3627
  font-family: var(--font-mono);
@@ -3875,6 +3965,11 @@
3875
3965
  @media (max-width: 1080px) {
3876
3966
  main {
3877
3967
  grid-template-columns: 1fr;
3968
+ gap: 12px;
3969
+ }
3970
+
3971
+ .pane-resize-handle {
3972
+ display: none;
3878
3973
  }
3879
3974
  }
3880
3975
 
@@ -3924,10 +4019,38 @@
3924
4019
  }
3925
4020
 
3926
4021
  body.studio-ui-refresh main {
3927
- gap: 9px;
4022
+ gap: 0;
3928
4023
  padding: 9px;
3929
4024
  }
3930
4025
 
4026
+ @container (max-width: 840px) {
4027
+ body.studio-ui-refresh .studio-refresh-header-top,
4028
+ body.studio-ui-refresh .studio-refresh-header-utility,
4029
+ body.studio-ui-refresh #rightSectionHeader,
4030
+ body.studio-ui-refresh .studio-refresh-toolbar-main,
4031
+ body.studio-ui-refresh .studio-refresh-pane-identity {
4032
+ grid-template-columns: minmax(0, 1fr);
4033
+ justify-content: stretch;
4034
+ }
4035
+
4036
+ body.studio-ui-refresh .studio-refresh-pane-tools,
4037
+ body.studio-ui-refresh .studio-refresh-toolbar-state {
4038
+ justify-content: flex-start;
4039
+ justify-items: start;
4040
+ min-width: 0;
4041
+ }
4042
+
4043
+ body.studio-ui-refresh .studio-refresh-pane-tools,
4044
+ body.studio-ui-refresh .studio-refresh-title-group,
4045
+ body.studio-ui-refresh .studio-refresh-utility-left {
4046
+ flex-wrap: wrap;
4047
+ }
4048
+
4049
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-action-line {
4050
+ justify-content: flex-start;
4051
+ }
4052
+ }
4053
+
3931
4054
  body.studio-ui-refresh footer {
3932
4055
  padding: 7px 9px;
3933
4056
  font-size: 11px;
@@ -3964,7 +4087,8 @@
3964
4087
  }
3965
4088
 
3966
4089
  body.studio-ui-refresh #rightSectionHeader {
3967
- grid-template-columns: minmax(0, 1fr) auto;
4090
+ grid-template-columns: max-content max-content;
4091
+ justify-content: space-between;
3968
4092
  align-items: center;
3969
4093
  }
3970
4094
 
@@ -3984,12 +4108,20 @@
3984
4108
  body.studio-ui-refresh .studio-refresh-header-top,
3985
4109
  body.studio-ui-refresh .studio-refresh-header-utility {
3986
4110
  display: grid;
3987
- grid-template-columns: minmax(0, 1fr) auto;
3988
4111
  align-items: center;
3989
4112
  gap: 9px;
3990
4113
  min-width: 0;
3991
4114
  }
3992
4115
 
4116
+ body.studio-ui-refresh .studio-refresh-header-top {
4117
+ grid-template-columns: max-content max-content;
4118
+ justify-content: space-between;
4119
+ }
4120
+
4121
+ body.studio-ui-refresh .studio-refresh-header-utility {
4122
+ grid-template-columns: minmax(0, 1fr) auto;
4123
+ }
4124
+
3993
4125
  body.studio-ui-refresh .studio-refresh-pane-identity {
3994
4126
  display: grid;
3995
4127
  grid-template-columns: auto minmax(0, 1fr);
@@ -4011,10 +4143,14 @@
4011
4143
  }
4012
4144
 
4013
4145
  body.studio-ui-refresh .studio-refresh-title-group {
4146
+ position: relative;
4147
+ z-index: 2;
4014
4148
  gap: 2px;
4015
4149
  }
4016
4150
 
4017
4151
  body.studio-ui-refresh .studio-refresh-pane-tools {
4152
+ position: relative;
4153
+ z-index: 1;
4018
4154
  justify-content: flex-end;
4019
4155
  flex-wrap: nowrap;
4020
4156
  }
@@ -4311,7 +4447,7 @@
4311
4447
 
4312
4448
  body.studio-ui-refresh .studio-refresh-toolbar-main {
4313
4449
  display: grid;
4314
- grid-template-columns: minmax(0, 1fr) auto;
4450
+ grid-template-columns: max-content minmax(0, 1fr);
4315
4451
  gap: 10px;
4316
4452
  align-items: start;
4317
4453
  min-width: 0;
@@ -4321,7 +4457,9 @@
4321
4457
  display: grid;
4322
4458
  gap: 6px;
4323
4459
  justify-items: start;
4324
- min-width: 0;
4460
+ min-width: max-content;
4461
+ position: relative;
4462
+ z-index: 2;
4325
4463
  }
4326
4464
 
4327
4465
  body.studio-ui-refresh .studio-refresh-toolbar-state {
@@ -4329,7 +4467,37 @@
4329
4467
  gap: 6px;
4330
4468
  justify-items: end;
4331
4469
  align-content: start;
4332
- min-width: max-content;
4470
+ justify-self: stretch;
4471
+ min-width: 0;
4472
+ max-width: 100%;
4473
+ overflow: visible;
4474
+ position: relative;
4475
+ z-index: 1;
4476
+ }
4477
+
4478
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-action-line {
4479
+ max-width: 100%;
4480
+ overflow: visible;
4481
+ flex-wrap: nowrap;
4482
+ justify-content: flex-end;
4483
+ white-space: nowrap;
4484
+ }
4485
+
4486
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-menu-anchor {
4487
+ min-width: 0;
4488
+ max-width: 100%;
4489
+ }
4490
+
4491
+ body.studio-ui-refresh .studio-refresh-toolbar-state button,
4492
+ body.studio-ui-refresh .studio-refresh-toolbar-state select,
4493
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-chip {
4494
+ min-width: 0;
4495
+ max-width: 100%;
4496
+ }
4497
+
4498
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-chip {
4499
+ overflow: hidden;
4500
+ text-overflow: ellipsis;
4333
4501
  }
4334
4502
 
4335
4503
  body.studio-ui-refresh .studio-refresh-toolbar button,
@@ -4515,6 +4683,41 @@
4515
4683
  font-weight: 600;
4516
4684
  }
4517
4685
 
4686
+ .studio-preview-link-menu {
4687
+ position: fixed;
4688
+ z-index: 12000;
4689
+ min-width: 180px;
4690
+ padding: 6px;
4691
+ border: 1px solid var(--border);
4692
+ border-radius: 10px;
4693
+ background: var(--panel);
4694
+ color: var(--text);
4695
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.28);
4696
+ }
4697
+
4698
+ .studio-preview-link-menu[hidden] {
4699
+ display: none;
4700
+ }
4701
+
4702
+ .studio-preview-link-menu button {
4703
+ display: block;
4704
+ width: 100%;
4705
+ border: 0;
4706
+ border-radius: 7px;
4707
+ background: transparent;
4708
+ color: inherit;
4709
+ text-align: left;
4710
+ padding: 7px 9px;
4711
+ font: inherit;
4712
+ cursor: pointer;
4713
+ }
4714
+
4715
+ .studio-preview-link-menu button:hover,
4716
+ .studio-preview-link-menu button:focus-visible {
4717
+ background: var(--panel-2);
4718
+ outline: none;
4719
+ }
4720
+
4518
4721
  @media (max-width: 1280px) {
4519
4722
  body.studio-ui-refresh #rightSectionHeader,
4520
4723
  body.studio-ui-refresh .studio-refresh-header-top,