pi-studio 0.9.11 → 0.9.12

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
 
@@ -2893,10 +2938,11 @@
2893
2938
  display: flex;
2894
2939
  flex-wrap: wrap;
2895
2940
  align-items: center;
2896
- gap: 8px;
2941
+ gap: 6px;
2897
2942
  }
2898
2943
 
2899
2944
  .repl-controls select,
2945
+ .repl-controls input,
2900
2946
  .repl-controls button,
2901
2947
  .repl-more-controls summary,
2902
2948
  .repl-journal-actions button {
@@ -2907,7 +2953,7 @@
2907
2953
  .repl-control-label {
2908
2954
  display: inline-flex;
2909
2955
  align-items: center;
2910
- gap: 5px;
2956
+ gap: 4px;
2911
2957
  color: var(--muted);
2912
2958
  font-size: 11px;
2913
2959
  font-weight: 600;
@@ -2926,7 +2972,7 @@
2926
2972
  list-style: none;
2927
2973
  border: 1px solid transparent;
2928
2974
  border-radius: 6px;
2929
- padding: 4px 10px;
2975
+ padding: 4px 7px;
2930
2976
  color: var(--text);
2931
2977
  background: transparent;
2932
2978
  }
@@ -2937,11 +2983,38 @@
2937
2983
 
2938
2984
  .repl-more-controls summary::after {
2939
2985
  content: "⌄";
2940
- margin-left: 6px;
2986
+ margin-left: 4px;
2941
2987
  color: var(--studio-info-text, var(--muted));
2942
2988
  font-size: 11px;
2943
2989
  }
2944
2990
 
2991
+ .repl-command-label input {
2992
+ width: 3rem;
2993
+ min-width: 3rem;
2994
+ border-color: transparent;
2995
+ background: transparent;
2996
+ color: var(--text);
2997
+ overflow: hidden;
2998
+ text-overflow: ellipsis;
2999
+ white-space: nowrap;
3000
+ transition: width 0.12s ease;
3001
+ }
3002
+
3003
+ .repl-command-label input:focus {
3004
+ width: clamp(12rem, 22vw, 18rem);
3005
+ }
3006
+
3007
+ .repl-session-label select {
3008
+ max-width: min(24rem, 34vw);
3009
+ overflow: hidden;
3010
+ text-overflow: ellipsis;
3011
+ }
3012
+
3013
+ .repl-start-btn {
3014
+ padding-left: 8px;
3015
+ padding-right: 8px;
3016
+ }
3017
+
2945
3018
  .repl-controls select {
2946
3019
  border-color: transparent;
2947
3020
  background: transparent;
@@ -2949,6 +3022,8 @@
2949
3022
 
2950
3023
  .repl-controls select:not(:disabled):hover,
2951
3024
  .repl-controls select:focus,
3025
+ .repl-command-label input:hover,
3026
+ .repl-command-label input:focus,
2952
3027
  .repl-more-controls summary:hover,
2953
3028
  .repl-more-controls summary:focus,
2954
3029
  .repl-more-controls[open] summary {
@@ -3017,10 +3092,10 @@
3017
3092
  border: 1px solid var(--panel-border);
3018
3093
  border-radius: 10px;
3019
3094
  background: var(--panel-2);
3020
- padding: 10px;
3095
+ padding: 8px 10px;
3021
3096
  display: flex;
3022
3097
  flex-direction: column;
3023
- gap: 10px;
3098
+ gap: 7px;
3024
3099
  }
3025
3100
 
3026
3101
  .repl-mirror {
@@ -3064,25 +3139,25 @@
3064
3139
  }
3065
3140
 
3066
3141
  .repl-journal-header {
3067
- display: flex;
3068
- justify-content: space-between;
3069
- align-items: flex-start;
3070
- gap: 12px;
3071
- flex-wrap: wrap;
3142
+ display: grid;
3143
+ grid-template-columns: minmax(0, 1fr) auto;
3144
+ align-items: center;
3145
+ gap: 8px 12px;
3072
3146
  }
3073
3147
 
3074
3148
  .repl-journal-header h3 {
3075
3149
  margin: 0;
3076
- font-size: 13px;
3150
+ font-size: 12.5px;
3077
3151
  color: var(--text);
3078
3152
  }
3079
3153
 
3080
3154
  .repl-journal-header p,
3155
+ .repl-journal-description,
3081
3156
  .repl-journal-omitted {
3082
- margin: 3px 0 0;
3157
+ margin: 1px 0 0;
3083
3158
  color: var(--muted);
3084
- font-size: 12px;
3085
- line-height: 1.35;
3159
+ font-size: 11.5px;
3160
+ line-height: 1.3;
3086
3161
  }
3087
3162
 
3088
3163
  .repl-journal-actions {
@@ -3093,6 +3168,12 @@
3093
3168
  justify-content: flex-end;
3094
3169
  }
3095
3170
 
3171
+ .repl-journal-actions button {
3172
+ min-height: 26px;
3173
+ padding: 3px 8px;
3174
+ font-size: 12px;
3175
+ }
3176
+
3096
3177
  .repl-journal-compact-actions,
3097
3178
  .repl-studio-below-actions {
3098
3179
  display: flex;
@@ -3110,9 +3191,9 @@
3110
3191
  flex-direction: column;
3111
3192
  gap: 0;
3112
3193
  border: 1px solid var(--panel-border);
3113
- border-radius: 10px;
3194
+ border-radius: 9px;
3114
3195
  background: var(--panel);
3115
- padding: 10px 12px;
3196
+ padding: 8px 10px;
3116
3197
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.015);
3117
3198
  }
3118
3199
 
@@ -3446,6 +3527,7 @@
3446
3527
 
3447
3528
  .shortcuts-dialog {
3448
3529
  width: min(720px, 100%);
3530
+ max-height: min(82vh, 760px);
3449
3531
  }
3450
3532
 
3451
3533
  .scratchpad-dialog {
@@ -3502,14 +3584,16 @@
3502
3584
 
3503
3585
  .shortcuts-body {
3504
3586
  display: grid;
3505
- gap: 14px;
3506
- padding: 16px 18px 18px;
3507
- overflow: auto;
3587
+ gap: 12px;
3588
+ padding: 14px 18px 16px;
3589
+ overflow-y: auto;
3590
+ overflow-x: hidden;
3591
+ min-height: 0;
3508
3592
  background: var(--panel);
3509
3593
  }
3510
3594
 
3511
3595
  .shortcuts-group h3 {
3512
- margin: 0 0 8px;
3596
+ margin: 0 0 6px;
3513
3597
  font-size: 12px;
3514
3598
  font-weight: 700;
3515
3599
  color: var(--studio-info-text, var(--muted));
@@ -3519,8 +3603,11 @@
3519
3603
 
3520
3604
  .shortcuts-group dl {
3521
3605
  display: grid;
3522
- gap: 6px;
3606
+ gap: 0;
3523
3607
  margin: 0;
3608
+ border: 1px solid var(--border-subtle);
3609
+ border-radius: 10px;
3610
+ overflow: hidden;
3524
3611
  }
3525
3612
 
3526
3613
  .shortcuts-group dl > div {
@@ -3528,10 +3615,14 @@
3528
3615
  grid-template-columns: minmax(130px, max-content) minmax(0, 1fr);
3529
3616
  gap: 12px;
3530
3617
  align-items: baseline;
3531
- padding: 6px 0;
3618
+ padding: 6px 10px;
3532
3619
  border-top: 1px solid var(--border-subtle);
3533
3620
  }
3534
3621
 
3622
+ .shortcuts-group dl > div:first-child {
3623
+ border-top: 0;
3624
+ }
3625
+
3535
3626
  .shortcuts-group dt {
3536
3627
  margin: 0;
3537
3628
  font-family: var(--font-mono);
@@ -3875,6 +3966,11 @@
3875
3966
  @media (max-width: 1080px) {
3876
3967
  main {
3877
3968
  grid-template-columns: 1fr;
3969
+ gap: 12px;
3970
+ }
3971
+
3972
+ .pane-resize-handle {
3973
+ display: none;
3878
3974
  }
3879
3975
  }
3880
3976
 
@@ -3924,10 +4020,38 @@
3924
4020
  }
3925
4021
 
3926
4022
  body.studio-ui-refresh main {
3927
- gap: 9px;
4023
+ gap: 0;
3928
4024
  padding: 9px;
3929
4025
  }
3930
4026
 
4027
+ @container (max-width: 840px) {
4028
+ body.studio-ui-refresh .studio-refresh-header-top,
4029
+ body.studio-ui-refresh .studio-refresh-header-utility,
4030
+ body.studio-ui-refresh #rightSectionHeader,
4031
+ body.studio-ui-refresh .studio-refresh-toolbar-main,
4032
+ body.studio-ui-refresh .studio-refresh-pane-identity {
4033
+ grid-template-columns: minmax(0, 1fr);
4034
+ justify-content: stretch;
4035
+ }
4036
+
4037
+ body.studio-ui-refresh .studio-refresh-pane-tools,
4038
+ body.studio-ui-refresh .studio-refresh-toolbar-state {
4039
+ justify-content: flex-start;
4040
+ justify-items: start;
4041
+ min-width: 0;
4042
+ }
4043
+
4044
+ body.studio-ui-refresh .studio-refresh-pane-tools,
4045
+ body.studio-ui-refresh .studio-refresh-title-group,
4046
+ body.studio-ui-refresh .studio-refresh-utility-left {
4047
+ flex-wrap: wrap;
4048
+ }
4049
+
4050
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-action-line {
4051
+ justify-content: flex-start;
4052
+ }
4053
+ }
4054
+
3931
4055
  body.studio-ui-refresh footer {
3932
4056
  padding: 7px 9px;
3933
4057
  font-size: 11px;
@@ -3964,7 +4088,8 @@
3964
4088
  }
3965
4089
 
3966
4090
  body.studio-ui-refresh #rightSectionHeader {
3967
- grid-template-columns: minmax(0, 1fr) auto;
4091
+ grid-template-columns: max-content max-content;
4092
+ justify-content: space-between;
3968
4093
  align-items: center;
3969
4094
  }
3970
4095
 
@@ -3984,12 +4109,20 @@
3984
4109
  body.studio-ui-refresh .studio-refresh-header-top,
3985
4110
  body.studio-ui-refresh .studio-refresh-header-utility {
3986
4111
  display: grid;
3987
- grid-template-columns: minmax(0, 1fr) auto;
3988
4112
  align-items: center;
3989
4113
  gap: 9px;
3990
4114
  min-width: 0;
3991
4115
  }
3992
4116
 
4117
+ body.studio-ui-refresh .studio-refresh-header-top {
4118
+ grid-template-columns: max-content max-content;
4119
+ justify-content: space-between;
4120
+ }
4121
+
4122
+ body.studio-ui-refresh .studio-refresh-header-utility {
4123
+ grid-template-columns: minmax(0, 1fr) auto;
4124
+ }
4125
+
3993
4126
  body.studio-ui-refresh .studio-refresh-pane-identity {
3994
4127
  display: grid;
3995
4128
  grid-template-columns: auto minmax(0, 1fr);
@@ -4011,10 +4144,14 @@
4011
4144
  }
4012
4145
 
4013
4146
  body.studio-ui-refresh .studio-refresh-title-group {
4147
+ position: relative;
4148
+ z-index: 2;
4014
4149
  gap: 2px;
4015
4150
  }
4016
4151
 
4017
4152
  body.studio-ui-refresh .studio-refresh-pane-tools {
4153
+ position: relative;
4154
+ z-index: 1;
4018
4155
  justify-content: flex-end;
4019
4156
  flex-wrap: nowrap;
4020
4157
  }
@@ -4311,7 +4448,7 @@
4311
4448
 
4312
4449
  body.studio-ui-refresh .studio-refresh-toolbar-main {
4313
4450
  display: grid;
4314
- grid-template-columns: minmax(0, 1fr) auto;
4451
+ grid-template-columns: max-content minmax(0, 1fr);
4315
4452
  gap: 10px;
4316
4453
  align-items: start;
4317
4454
  min-width: 0;
@@ -4321,7 +4458,9 @@
4321
4458
  display: grid;
4322
4459
  gap: 6px;
4323
4460
  justify-items: start;
4324
- min-width: 0;
4461
+ min-width: max-content;
4462
+ position: relative;
4463
+ z-index: 2;
4325
4464
  }
4326
4465
 
4327
4466
  body.studio-ui-refresh .studio-refresh-toolbar-state {
@@ -4329,7 +4468,27 @@
4329
4468
  gap: 6px;
4330
4469
  justify-items: end;
4331
4470
  align-content: start;
4332
- min-width: max-content;
4471
+ justify-self: stretch;
4472
+ min-width: 0;
4473
+ max-width: 100%;
4474
+ overflow: hidden;
4475
+ position: relative;
4476
+ z-index: 1;
4477
+ }
4478
+
4479
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-action-line {
4480
+ max-width: 100%;
4481
+ overflow: hidden;
4482
+ flex-wrap: nowrap;
4483
+ justify-content: flex-end;
4484
+ white-space: nowrap;
4485
+ }
4486
+
4487
+ body.studio-ui-refresh .studio-refresh-toolbar-state button,
4488
+ body.studio-ui-refresh .studio-refresh-toolbar-state select,
4489
+ body.studio-ui-refresh .studio-refresh-toolbar-state .studio-refresh-chip {
4490
+ min-width: 0;
4491
+ max-width: 100%;
4333
4492
  }
4334
4493
 
4335
4494
  body.studio-ui-refresh .studio-refresh-toolbar button,