pi-studio 0.9.10 → 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
 
@@ -2456,6 +2501,39 @@
2456
2501
  overflow-x: auto;
2457
2502
  }
2458
2503
 
2504
+ .rendered-markdown .mermaid-source-toolbar {
2505
+ display: flex;
2506
+ justify-content: flex-end;
2507
+ margin: 0 0 4px;
2508
+ pointer-events: none;
2509
+ }
2510
+
2511
+ .rendered-markdown .mermaid-source-toolbar .studio-copy-mermaid-source-btn {
2512
+ position: static;
2513
+ top: auto;
2514
+ right: auto;
2515
+ z-index: auto;
2516
+ padding: 2px 7px;
2517
+ border-color: transparent;
2518
+ background: transparent;
2519
+ box-shadow: none;
2520
+ font-size: 11px;
2521
+ opacity: 0.38;
2522
+ pointer-events: auto;
2523
+ }
2524
+
2525
+ .rendered-markdown .mermaid-container:hover > .studio-copy-block-btn {
2526
+ opacity: 0.38;
2527
+ }
2528
+
2529
+ .rendered-markdown .mermaid-source-toolbar .studio-copy-mermaid-source-btn:hover,
2530
+ .rendered-markdown .mermaid-source-toolbar .studio-copy-mermaid-source-btn:focus-visible {
2531
+ opacity: 1;
2532
+ color: var(--text);
2533
+ border-color: var(--control-border);
2534
+ background: var(--panel);
2535
+ }
2536
+
2459
2537
  .rendered-markdown .mermaid-container svg {
2460
2538
  max-width: 100%;
2461
2539
  height: auto;
@@ -2860,10 +2938,11 @@
2860
2938
  display: flex;
2861
2939
  flex-wrap: wrap;
2862
2940
  align-items: center;
2863
- gap: 8px;
2941
+ gap: 6px;
2864
2942
  }
2865
2943
 
2866
2944
  .repl-controls select,
2945
+ .repl-controls input,
2867
2946
  .repl-controls button,
2868
2947
  .repl-more-controls summary,
2869
2948
  .repl-journal-actions button {
@@ -2874,7 +2953,7 @@
2874
2953
  .repl-control-label {
2875
2954
  display: inline-flex;
2876
2955
  align-items: center;
2877
- gap: 5px;
2956
+ gap: 4px;
2878
2957
  color: var(--muted);
2879
2958
  font-size: 11px;
2880
2959
  font-weight: 600;
@@ -2893,7 +2972,7 @@
2893
2972
  list-style: none;
2894
2973
  border: 1px solid transparent;
2895
2974
  border-radius: 6px;
2896
- padding: 4px 10px;
2975
+ padding: 4px 7px;
2897
2976
  color: var(--text);
2898
2977
  background: transparent;
2899
2978
  }
@@ -2904,11 +2983,38 @@
2904
2983
 
2905
2984
  .repl-more-controls summary::after {
2906
2985
  content: "⌄";
2907
- margin-left: 6px;
2986
+ margin-left: 4px;
2908
2987
  color: var(--studio-info-text, var(--muted));
2909
2988
  font-size: 11px;
2910
2989
  }
2911
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
+
2912
3018
  .repl-controls select {
2913
3019
  border-color: transparent;
2914
3020
  background: transparent;
@@ -2916,6 +3022,8 @@
2916
3022
 
2917
3023
  .repl-controls select:not(:disabled):hover,
2918
3024
  .repl-controls select:focus,
3025
+ .repl-command-label input:hover,
3026
+ .repl-command-label input:focus,
2919
3027
  .repl-more-controls summary:hover,
2920
3028
  .repl-more-controls summary:focus,
2921
3029
  .repl-more-controls[open] summary {
@@ -2984,10 +3092,10 @@
2984
3092
  border: 1px solid var(--panel-border);
2985
3093
  border-radius: 10px;
2986
3094
  background: var(--panel-2);
2987
- padding: 10px;
3095
+ padding: 8px 10px;
2988
3096
  display: flex;
2989
3097
  flex-direction: column;
2990
- gap: 10px;
3098
+ gap: 7px;
2991
3099
  }
2992
3100
 
2993
3101
  .repl-mirror {
@@ -3031,25 +3139,25 @@
3031
3139
  }
3032
3140
 
3033
3141
  .repl-journal-header {
3034
- display: flex;
3035
- justify-content: space-between;
3036
- align-items: flex-start;
3037
- gap: 12px;
3038
- flex-wrap: wrap;
3142
+ display: grid;
3143
+ grid-template-columns: minmax(0, 1fr) auto;
3144
+ align-items: center;
3145
+ gap: 8px 12px;
3039
3146
  }
3040
3147
 
3041
3148
  .repl-journal-header h3 {
3042
3149
  margin: 0;
3043
- font-size: 13px;
3150
+ font-size: 12.5px;
3044
3151
  color: var(--text);
3045
3152
  }
3046
3153
 
3047
3154
  .repl-journal-header p,
3155
+ .repl-journal-description,
3048
3156
  .repl-journal-omitted {
3049
- margin: 3px 0 0;
3157
+ margin: 1px 0 0;
3050
3158
  color: var(--muted);
3051
- font-size: 12px;
3052
- line-height: 1.35;
3159
+ font-size: 11.5px;
3160
+ line-height: 1.3;
3053
3161
  }
3054
3162
 
3055
3163
  .repl-journal-actions {
@@ -3060,6 +3168,12 @@
3060
3168
  justify-content: flex-end;
3061
3169
  }
3062
3170
 
3171
+ .repl-journal-actions button {
3172
+ min-height: 26px;
3173
+ padding: 3px 8px;
3174
+ font-size: 12px;
3175
+ }
3176
+
3063
3177
  .repl-journal-compact-actions,
3064
3178
  .repl-studio-below-actions {
3065
3179
  display: flex;
@@ -3077,9 +3191,9 @@
3077
3191
  flex-direction: column;
3078
3192
  gap: 0;
3079
3193
  border: 1px solid var(--panel-border);
3080
- border-radius: 10px;
3194
+ border-radius: 9px;
3081
3195
  background: var(--panel);
3082
- padding: 10px 12px;
3196
+ padding: 8px 10px;
3083
3197
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.015);
3084
3198
  }
3085
3199
 
@@ -3413,6 +3527,7 @@
3413
3527
 
3414
3528
  .shortcuts-dialog {
3415
3529
  width: min(720px, 100%);
3530
+ max-height: min(82vh, 760px);
3416
3531
  }
3417
3532
 
3418
3533
  .scratchpad-dialog {
@@ -3469,14 +3584,16 @@
3469
3584
 
3470
3585
  .shortcuts-body {
3471
3586
  display: grid;
3472
- gap: 14px;
3473
- padding: 16px 18px 18px;
3474
- overflow: auto;
3587
+ gap: 12px;
3588
+ padding: 14px 18px 16px;
3589
+ overflow-y: auto;
3590
+ overflow-x: hidden;
3591
+ min-height: 0;
3475
3592
  background: var(--panel);
3476
3593
  }
3477
3594
 
3478
3595
  .shortcuts-group h3 {
3479
- margin: 0 0 8px;
3596
+ margin: 0 0 6px;
3480
3597
  font-size: 12px;
3481
3598
  font-weight: 700;
3482
3599
  color: var(--studio-info-text, var(--muted));
@@ -3486,8 +3603,11 @@
3486
3603
 
3487
3604
  .shortcuts-group dl {
3488
3605
  display: grid;
3489
- gap: 6px;
3606
+ gap: 0;
3490
3607
  margin: 0;
3608
+ border: 1px solid var(--border-subtle);
3609
+ border-radius: 10px;
3610
+ overflow: hidden;
3491
3611
  }
3492
3612
 
3493
3613
  .shortcuts-group dl > div {
@@ -3495,10 +3615,14 @@
3495
3615
  grid-template-columns: minmax(130px, max-content) minmax(0, 1fr);
3496
3616
  gap: 12px;
3497
3617
  align-items: baseline;
3498
- padding: 6px 0;
3618
+ padding: 6px 10px;
3499
3619
  border-top: 1px solid var(--border-subtle);
3500
3620
  }
3501
3621
 
3622
+ .shortcuts-group dl > div:first-child {
3623
+ border-top: 0;
3624
+ }
3625
+
3502
3626
  .shortcuts-group dt {
3503
3627
  margin: 0;
3504
3628
  font-family: var(--font-mono);
@@ -3842,6 +3966,11 @@
3842
3966
  @media (max-width: 1080px) {
3843
3967
  main {
3844
3968
  grid-template-columns: 1fr;
3969
+ gap: 12px;
3970
+ }
3971
+
3972
+ .pane-resize-handle {
3973
+ display: none;
3845
3974
  }
3846
3975
  }
3847
3976
 
@@ -3891,10 +4020,38 @@
3891
4020
  }
3892
4021
 
3893
4022
  body.studio-ui-refresh main {
3894
- gap: 9px;
4023
+ gap: 0;
3895
4024
  padding: 9px;
3896
4025
  }
3897
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
+
3898
4055
  body.studio-ui-refresh footer {
3899
4056
  padding: 7px 9px;
3900
4057
  font-size: 11px;
@@ -3931,7 +4088,8 @@
3931
4088
  }
3932
4089
 
3933
4090
  body.studio-ui-refresh #rightSectionHeader {
3934
- grid-template-columns: minmax(0, 1fr) auto;
4091
+ grid-template-columns: max-content max-content;
4092
+ justify-content: space-between;
3935
4093
  align-items: center;
3936
4094
  }
3937
4095
 
@@ -3951,12 +4109,20 @@
3951
4109
  body.studio-ui-refresh .studio-refresh-header-top,
3952
4110
  body.studio-ui-refresh .studio-refresh-header-utility {
3953
4111
  display: grid;
3954
- grid-template-columns: minmax(0, 1fr) auto;
3955
4112
  align-items: center;
3956
4113
  gap: 9px;
3957
4114
  min-width: 0;
3958
4115
  }
3959
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
+
3960
4126
  body.studio-ui-refresh .studio-refresh-pane-identity {
3961
4127
  display: grid;
3962
4128
  grid-template-columns: auto minmax(0, 1fr);
@@ -3978,10 +4144,14 @@
3978
4144
  }
3979
4145
 
3980
4146
  body.studio-ui-refresh .studio-refresh-title-group {
4147
+ position: relative;
4148
+ z-index: 2;
3981
4149
  gap: 2px;
3982
4150
  }
3983
4151
 
3984
4152
  body.studio-ui-refresh .studio-refresh-pane-tools {
4153
+ position: relative;
4154
+ z-index: 1;
3985
4155
  justify-content: flex-end;
3986
4156
  flex-wrap: nowrap;
3987
4157
  }
@@ -4278,7 +4448,7 @@
4278
4448
 
4279
4449
  body.studio-ui-refresh .studio-refresh-toolbar-main {
4280
4450
  display: grid;
4281
- grid-template-columns: minmax(0, 1fr) auto;
4451
+ grid-template-columns: max-content minmax(0, 1fr);
4282
4452
  gap: 10px;
4283
4453
  align-items: start;
4284
4454
  min-width: 0;
@@ -4288,7 +4458,9 @@
4288
4458
  display: grid;
4289
4459
  gap: 6px;
4290
4460
  justify-items: start;
4291
- min-width: 0;
4461
+ min-width: max-content;
4462
+ position: relative;
4463
+ z-index: 2;
4292
4464
  }
4293
4465
 
4294
4466
  body.studio-ui-refresh .studio-refresh-toolbar-state {
@@ -4296,7 +4468,27 @@
4296
4468
  gap: 6px;
4297
4469
  justify-items: end;
4298
4470
  align-content: start;
4299
- 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%;
4300
4492
  }
4301
4493
 
4302
4494
  body.studio-ui-refresh .studio-refresh-toolbar button,