@floegence/floe-webapp-core 0.36.42 → 0.36.43

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.
Files changed (31) hide show
  1. package/dist/components/icons/index.d.ts +2 -0
  2. package/dist/components/icons/index.js +419 -397
  3. package/dist/components/workbench/WorkbenchCanvas.d.ts +45 -2
  4. package/dist/components/workbench/WorkbenchCanvas.js +265 -66
  5. package/dist/components/workbench/WorkbenchCanvasField.d.ts +47 -2
  6. package/dist/components/workbench/WorkbenchCanvasField.js +258 -78
  7. package/dist/components/workbench/WorkbenchFilterBar.d.ts +9 -7
  8. package/dist/components/workbench/WorkbenchFilterBar.js +233 -145
  9. package/dist/components/workbench/WorkbenchLayerObjects.d.ts +136 -0
  10. package/dist/components/workbench/WorkbenchLayerObjects.js +986 -0
  11. package/dist/components/workbench/WorkbenchOverlay.d.ts +4 -1
  12. package/dist/components/workbench/WorkbenchOverlay.js +59 -29
  13. package/dist/components/workbench/WorkbenchSurface.d.ts +23 -11
  14. package/dist/components/workbench/WorkbenchSurface.js +315 -195
  15. package/dist/components/workbench/WorkbenchWidget.js +37 -37
  16. package/dist/components/workbench/index.d.ts +2 -1
  17. package/dist/components/workbench/types.d.ts +96 -1
  18. package/dist/components/workbench/types.js +12 -4
  19. package/dist/components/workbench/useWorkbenchModel.d.ts +62 -4
  20. package/dist/components/workbench/useWorkbenchModel.js +790 -253
  21. package/dist/components/workbench/widgets/widgetRegistry.d.ts +1 -1
  22. package/dist/components/workbench/workbenchHelpers.d.ts +5 -5
  23. package/dist/components/workbench/workbenchHelpers.js +345 -154
  24. package/dist/components/workbench/workbenchOptions.d.ts +43 -0
  25. package/dist/components/workbench/workbenchOptions.js +112 -0
  26. package/dist/full.js +620 -618
  27. package/dist/icons.js +71 -69
  28. package/dist/styles.css +1 -1
  29. package/dist/workbench.css +1117 -26
  30. package/dist/workbench.js +52 -36
  31. package/package.json +1 -1
@@ -214,38 +214,1004 @@
214
214
  inset: 0;
215
215
  pointer-events: none;
216
216
  overflow: hidden;
217
- z-index: 3;
217
+ z-index: 13;
218
+ }
219
+
220
+ .workbench-canvas__projected-layer.is-work-layer-locked > .workbench-widget,
221
+ .workbench-canvas__projected-layer.is-work-layer-locked > .workbench-sticky {
222
+ pointer-events: none;
223
+ opacity: 0.16;
224
+ filter: saturate(0.45) contrast(0.86);
218
225
  }
219
226
 
220
227
  .workbench-canvas__grid {
221
228
  position: absolute;
222
- inset: 0;
229
+ inset: 0;
230
+ pointer-events: none;
231
+ background-image:
232
+ linear-gradient(
233
+ to right,
234
+ color-mix(in srgb, var(--border, #e5e5e5) 42%, transparent) 1px,
235
+ transparent 1px
236
+ ),
237
+ linear-gradient(
238
+ to bottom,
239
+ color-mix(in srgb, var(--border, #e5e5e5) 42%, transparent) 1px,
240
+ transparent 1px
241
+ ),
242
+ radial-gradient(
243
+ circle,
244
+ color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent) 0.9px,
245
+ transparent 1px
246
+ );
247
+ background-size:
248
+ var(--wb-grid-major) var(--wb-grid-major),
249
+ var(--wb-grid-major) var(--wb-grid-major),
250
+ var(--wb-grid-minor) var(--wb-grid-minor);
251
+ background-position:
252
+ 0 0,
253
+ 0 0,
254
+ var(--wb-grid-minor-offset) var(--wb-grid-minor-offset);
255
+ opacity: 0.78;
256
+ }
257
+
258
+ .workbench-background-layer,
259
+ .workbench-annotation-layer,
260
+ .workbench-work-layer,
261
+ .workbench-control-overlay-layer {
262
+ position: absolute;
263
+ inset: 0;
264
+ }
265
+
266
+ .workbench-background-layer {
267
+ pointer-events: none;
268
+ z-index: 1;
269
+ }
270
+
271
+ .workbench-background-layer.is-editable {
272
+ pointer-events: none;
273
+ }
274
+
275
+ .workbench-background-layer.is-filtered-out,
276
+ .workbench-annotation-layer.is-filtered-out,
277
+ .workbench-sticky.is-filtered-out {
278
+ opacity: 0;
279
+ pointer-events: none;
280
+ }
281
+
282
+ .workbench-annotation-layer {
283
+ pointer-events: none;
284
+ z-index: 2;
285
+ }
286
+
287
+ .workbench-annotation-layer.is-editable {
288
+ pointer-events: none;
289
+ }
290
+
291
+ .workbench-work-layer {
292
+ z-index: 10;
293
+ }
294
+
295
+ .workbench-control-overlay-layer {
296
+ pointer-events: none;
297
+ z-index: 20;
298
+ }
299
+
300
+ .workbench-canvas__field.is-work-layer-muted .workbench-work-layer {
301
+ pointer-events: none;
302
+ }
303
+
304
+ .workbench-canvas__field.is-work-layer-muted .workbench-work-layer > :is(.workbench-widget, .workbench-sticky) {
305
+ opacity: 0.16;
306
+ filter: saturate(0.45) contrast(0.86);
307
+ }
308
+
309
+ /* ------------------------------------------------------------------ */
310
+ /* Workbench freeform layers */
311
+ /* ------------------------------------------------------------------ */
312
+ .workbench-background-region,
313
+ .workbench-text-annotation,
314
+ .workbench-sticky {
315
+ position: absolute;
316
+ top: 0;
317
+ left: 0;
318
+ box-sizing: border-box;
319
+ will-change: transform;
320
+ }
321
+
322
+ .workbench-background-region {
323
+ border-radius: 0;
324
+ background: var(--workbench-region-fill);
325
+ opacity: var(--workbench-region-opacity);
326
+ border: none;
327
+ box-shadow: none;
328
+ pointer-events: none;
329
+ }
330
+
331
+ .workbench-background-region.is-editable {
332
+ pointer-events: auto;
333
+ cursor: move;
334
+ }
335
+
336
+ .workbench-background-region.is-material-dotted {
337
+ background-image:
338
+ radial-gradient(circle, color-mix(in srgb, var(--workbench-region-ink) 70%, transparent) 1.45px, transparent 1.65px),
339
+ linear-gradient(var(--workbench-region-fill), var(--workbench-region-fill));
340
+ background-position: 0 0, 0 0;
341
+ background-size: 11px 11px, auto;
342
+ }
343
+
344
+ .workbench-background-region.is-material-grid {
345
+ background-image:
346
+ linear-gradient(color-mix(in srgb, var(--workbench-region-ink) 42%, transparent) 1px, transparent 1px),
347
+ linear-gradient(90deg, color-mix(in srgb, var(--workbench-region-ink) 42%, transparent) 1px, transparent 1px),
348
+ linear-gradient(var(--workbench-region-fill), var(--workbench-region-fill));
349
+ background-size: 28px 28px, 28px 28px, auto;
350
+ }
351
+
352
+ .workbench-background-region.is-material-hatched {
353
+ background-image:
354
+ repeating-linear-gradient(
355
+ 135deg,
356
+ color-mix(in srgb, var(--workbench-region-ink) 48%, transparent) 0 1.2px,
357
+ transparent 1.2px 9px
358
+ ),
359
+ linear-gradient(var(--workbench-region-fill), var(--workbench-region-fill));
360
+ }
361
+
362
+ .workbench-background-region.is-material-glass {
363
+ background:
364
+ linear-gradient(135deg, color-mix(in srgb, white 18%, transparent), transparent 58%),
365
+ color-mix(in srgb, var(--workbench-region-fill) 64%, transparent);
366
+ }
367
+
368
+ .workbench-background-region__toolbar,
369
+ .workbench-text-annotation__toolbar {
370
+ position: absolute;
371
+ left: -8px;
372
+ bottom: calc(100% + 10px);
373
+ display: inline-flex;
374
+ align-items: center;
375
+ gap: 5px;
376
+ padding: 5px;
377
+ border-radius: 10px;
378
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 80%, transparent);
379
+ background: color-mix(in srgb, var(--card, #fff) 92%, transparent);
380
+ box-shadow:
381
+ 0 14px 32px -18px color-mix(in srgb, var(--foreground, #000) 30%, transparent),
382
+ 0 1px 0 color-mix(in srgb, white 60%, transparent) inset;
383
+ transform: scale(var(--workbench-layer-control-inverse-scale, 1));
384
+ transform-origin: bottom left;
385
+ z-index: 20;
386
+ }
387
+
388
+ .workbench-background-region__toolbar {
389
+ left: 0;
390
+ }
391
+
392
+ .workbench-background-region__label {
393
+ position: absolute;
394
+ left: 12px;
395
+ top: 10px;
396
+ display: inline-flex;
397
+ align-items: center;
398
+ gap: 6px;
399
+ max-width: calc(100% - 24px);
400
+ padding: 4px 7px;
401
+ border-radius: 6px;
402
+ background: color-mix(in srgb, white 56%, transparent);
403
+ color: color-mix(in srgb, var(--foreground, #111) 74%, var(--workbench-region-fill));
404
+ font-size: 11px;
405
+ font-weight: 700;
406
+ overflow: hidden;
407
+ white-space: nowrap;
408
+ text-overflow: ellipsis;
409
+ pointer-events: none;
410
+ }
411
+
412
+ .workbench-layer-mini-button,
413
+ .workbench-layer-swatch {
414
+ display: inline-flex;
415
+ align-items: center;
416
+ justify-content: center;
417
+ flex-shrink: 0;
418
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent);
419
+ background: color-mix(in srgb, var(--card, #fff) 88%, transparent);
420
+ color: var(--foreground, #111);
421
+ cursor: pointer;
422
+ }
423
+
424
+ .workbench-layer-mini-button {
425
+ height: 26px;
426
+ min-width: 26px;
427
+ padding: 0 8px;
428
+ border-radius: 7px;
429
+ font-size: 10px;
430
+ font-weight: 700;
431
+ }
432
+
433
+ .workbench-layer-mini-button:hover,
434
+ .workbench-layer-mini-button.is-active {
435
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 64%, transparent);
436
+ background: color-mix(in srgb, var(--primary, #3b82f6) 12%, var(--card, #fff));
437
+ color: var(--primary, #3b82f6);
438
+ }
439
+
440
+ .workbench-layer-mini-button.is-danger {
441
+ color: var(--destructive, #ef4444);
442
+ }
443
+
444
+ .workbench-text-size-stepper {
445
+ display: inline-flex;
446
+ align-items: center;
447
+ height: 26px;
448
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent);
449
+ border-radius: 8px;
450
+ background: color-mix(in srgb, var(--card, #fff) 88%, transparent);
451
+ overflow: hidden;
452
+ }
453
+
454
+ .workbench-text-font-picker {
455
+ position: relative;
456
+ display: inline-flex;
457
+ align-items: center;
458
+ }
459
+
460
+ .workbench-text-font-trigger {
461
+ display: inline-flex;
462
+ align-items: center;
463
+ gap: 6px;
464
+ height: 26px;
465
+ min-width: 86px;
466
+ padding: 0 8px;
467
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent);
468
+ border-radius: 8px;
469
+ background: color-mix(in srgb, var(--card, #fff) 88%, transparent);
470
+ color: color-mix(in srgb, var(--foreground, #111) 82%, transparent);
471
+ cursor: pointer;
472
+ transition:
473
+ background-color 140ms ease,
474
+ border-color 140ms ease,
475
+ color 140ms ease;
476
+ }
477
+
478
+ .workbench-text-font-trigger:hover,
479
+ .workbench-text-font-trigger[aria-expanded='true'] {
480
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 50%, transparent);
481
+ background: color-mix(in srgb, var(--primary, #3b82f6) 10%, var(--card, #fff));
482
+ color: var(--primary, #3b82f6);
483
+ }
484
+
485
+ .workbench-text-font-trigger__sample {
486
+ font-size: 13px;
487
+ line-height: 1;
488
+ }
489
+
490
+ .workbench-text-font-trigger__label {
491
+ font-size: 10.5px;
492
+ font-weight: 750;
493
+ line-height: 1;
494
+ }
495
+
496
+ .workbench-text-font-trigger__icon {
497
+ width: 12px;
498
+ height: 12px;
499
+ opacity: 0.66;
500
+ }
501
+
502
+ .workbench-text-font-popover {
503
+ position: absolute;
504
+ left: 0;
505
+ bottom: calc(100% + 7px);
506
+ display: grid;
507
+ gap: 3px;
508
+ min-width: 134px;
509
+ padding: 5px;
510
+ border-radius: 10px;
511
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 78%, transparent);
512
+ background: color-mix(in srgb, var(--popover, var(--card, #fff)) 96%, transparent);
513
+ box-shadow:
514
+ 0 16px 34px -18px color-mix(in srgb, var(--foreground, #000) 34%, transparent),
515
+ 0 1px 0 color-mix(in srgb, white 50%, transparent) inset;
516
+ z-index: 30;
517
+ }
518
+
519
+ .workbench-text-font-option {
520
+ display: flex;
521
+ align-items: center;
522
+ gap: 8px;
523
+ width: 100%;
524
+ height: 28px;
525
+ padding: 0 7px;
526
+ border: 1px solid transparent;
527
+ border-radius: 7px;
528
+ background: transparent;
529
+ color: color-mix(in srgb, var(--foreground, #111) 82%, transparent);
530
+ cursor: pointer;
531
+ text-align: left;
532
+ transition:
533
+ background-color 120ms ease,
534
+ border-color 120ms ease,
535
+ color 120ms ease;
536
+ }
537
+
538
+ .workbench-text-font-option:hover,
539
+ .workbench-text-font-option.is-active {
540
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 44%, transparent);
541
+ background: color-mix(in srgb, var(--primary, #3b82f6) 10%, transparent);
542
+ color: var(--primary, #3b82f6);
543
+ }
544
+
545
+ .workbench-text-font-option__sample {
546
+ width: 28px;
547
+ font-size: 13px;
548
+ line-height: 1;
549
+ }
550
+
551
+ .workbench-text-font-option__label {
552
+ flex: 1;
553
+ min-width: 0;
554
+ font-size: 11px;
555
+ font-weight: 650;
556
+ line-height: 1;
557
+ }
558
+
559
+ .workbench-text-emoji-picker {
560
+ position: relative;
561
+ display: inline-flex;
562
+ align-items: center;
563
+ }
564
+
565
+ .workbench-text-emoji-trigger {
566
+ display: inline-flex;
567
+ align-items: center;
568
+ justify-content: center;
569
+ width: 28px;
570
+ height: 26px;
571
+ padding: 0;
572
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent);
573
+ border-radius: 8px;
574
+ background: color-mix(in srgb, var(--card, #fff) 88%, transparent);
575
+ color: var(--foreground, #111);
576
+ font-size: 14px;
577
+ line-height: 1;
578
+ cursor: pointer;
579
+ transition:
580
+ background-color 140ms ease,
581
+ border-color 140ms ease,
582
+ transform 140ms ease;
583
+ }
584
+
585
+ .workbench-text-emoji-trigger:hover,
586
+ .workbench-text-emoji-trigger[aria-expanded='true'] {
587
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 50%, transparent);
588
+ background: color-mix(in srgb, var(--primary, #3b82f6) 10%, var(--card, #fff));
589
+ }
590
+
591
+ .workbench-text-emoji-trigger:active {
592
+ transform: translateY(1px);
593
+ }
594
+
595
+ .workbench-text-emoji-popover {
596
+ position: absolute;
597
+ right: 0;
598
+ bottom: calc(100% + 7px);
599
+ display: grid;
600
+ grid-template-columns: repeat(6, 28px);
601
+ gap: 4px;
602
+ padding: 6px;
603
+ border-radius: 11px;
604
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 78%, transparent);
605
+ background: color-mix(in srgb, var(--popover, var(--card, #fff)) 96%, transparent);
606
+ box-shadow:
607
+ 0 16px 34px -18px color-mix(in srgb, var(--foreground, #000) 34%, transparent),
608
+ 0 1px 0 color-mix(in srgb, white 50%, transparent) inset;
609
+ z-index: 30;
610
+ }
611
+
612
+ .workbench-text-emoji-option {
613
+ display: inline-flex;
614
+ align-items: center;
615
+ justify-content: center;
616
+ width: 28px;
617
+ height: 28px;
618
+ padding: 0;
619
+ border: 1px solid transparent;
620
+ border-radius: 8px;
621
+ background: transparent;
622
+ font-size: 16px;
623
+ line-height: 1;
624
+ cursor: pointer;
625
+ transition:
626
+ background-color 120ms ease,
627
+ border-color 120ms ease,
628
+ transform 120ms ease;
629
+ }
630
+
631
+ .workbench-text-emoji-option:hover {
632
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 34%, transparent);
633
+ background: color-mix(in srgb, var(--primary, #3b82f6) 10%, transparent);
634
+ transform: translateY(-1px);
635
+ }
636
+
637
+ .workbench-text-size-stepper__button {
638
+ display: inline-flex;
639
+ align-items: center;
640
+ justify-content: center;
641
+ width: 25px;
642
+ height: 100%;
643
+ border: 0;
644
+ background: transparent;
645
+ color: color-mix(in srgb, var(--foreground, #111) 72%, transparent);
646
+ cursor: pointer;
647
+ }
648
+
649
+ .workbench-text-size-stepper__button:hover {
650
+ background: color-mix(in srgb, var(--primary, #3b82f6) 10%, transparent);
651
+ color: var(--primary, #3b82f6);
652
+ }
653
+
654
+ .workbench-layer-swatch {
655
+ width: 22px;
656
+ height: 22px;
657
+ border-radius: 999px;
658
+ border-color: color-mix(in srgb, currentColor 24%, var(--border, #e5e5e5));
659
+ box-shadow:
660
+ inset 0 0 0 2px color-mix(in srgb, var(--background, #fff) 36%, transparent),
661
+ 0 1px 2px color-mix(in srgb, var(--foreground, #000) 18%, transparent);
662
+ }
663
+
664
+ .workbench-layer-swatch--region {
665
+ border-radius: 7px;
666
+ }
667
+
668
+ .workbench-layer-swatch.is-active {
669
+ outline: 2px solid color-mix(in srgb, var(--primary, #3b82f6) 64%, transparent);
670
+ outline-offset: 2px;
671
+ }
672
+
673
+ .workbench-region-material-group {
674
+ display: inline-flex;
675
+ align-items: center;
676
+ gap: 2px;
677
+ height: 26px;
678
+ padding: 2px;
679
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent);
680
+ border-radius: 8px;
681
+ background: color-mix(in srgb, var(--card, #fff) 84%, transparent);
682
+ }
683
+
684
+ .workbench-region-material {
685
+ display: inline-flex;
686
+ align-items: center;
687
+ justify-content: center;
688
+ width: 22px;
689
+ height: 20px;
690
+ padding: 0;
691
+ border: 1px solid transparent;
692
+ border-radius: 6px;
693
+ background: transparent;
694
+ cursor: pointer;
695
+ }
696
+
697
+ .workbench-region-material:hover,
698
+ .workbench-region-material.is-active {
699
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 50%, transparent);
700
+ background: color-mix(in srgb, var(--primary, #3b82f6) 9%, transparent);
701
+ }
702
+
703
+ .workbench-region-material__sample {
704
+ width: 14px;
705
+ height: 14px;
706
+ border-radius: 4px;
707
+ border: 1px solid color-mix(in srgb, var(--workbench-region-ink) 34%, transparent);
708
+ background: var(--workbench-region-fill);
709
+ }
710
+
711
+ .workbench-region-material.is-dotted .workbench-region-material__sample {
712
+ background:
713
+ radial-gradient(circle, color-mix(in srgb, var(--workbench-region-ink) 72%, transparent) 1px, transparent 1.12px),
714
+ var(--workbench-region-fill);
715
+ background-size: 5px 5px, auto;
716
+ }
717
+
718
+ .workbench-region-material.is-grid .workbench-region-material__sample {
719
+ background:
720
+ linear-gradient(color-mix(in srgb, var(--workbench-region-ink) 64%, transparent) 1px, transparent 1px),
721
+ linear-gradient(90deg, color-mix(in srgb, var(--workbench-region-ink) 64%, transparent) 1px, transparent 1px),
722
+ var(--workbench-region-fill);
723
+ background-size: 6px 6px, 6px 6px, auto;
724
+ }
725
+
726
+ .workbench-region-material.is-hatched .workbench-region-material__sample {
727
+ background:
728
+ repeating-linear-gradient(
729
+ 135deg,
730
+ color-mix(in srgb, var(--workbench-region-ink) 66%, transparent) 0 1px,
731
+ transparent 1px 5px
732
+ ),
733
+ var(--workbench-region-fill);
734
+ }
735
+
736
+ .workbench-region-material.is-glass .workbench-region-material__sample {
737
+ background:
738
+ linear-gradient(135deg, color-mix(in srgb, white 65%, transparent), transparent 60%),
739
+ color-mix(in srgb, var(--primary, #3b82f6) 12%, transparent);
740
+ }
741
+
742
+ .workbench-layer-resize {
743
+ position: absolute;
744
+ right: -1px;
745
+ bottom: -1px;
746
+ width: 22px;
747
+ height: 22px;
748
+ padding: 0;
749
+ border: none;
750
+ border-radius: 6px 0 0 0;
751
+ background:
752
+ linear-gradient(135deg, transparent 45%, color-mix(in srgb, var(--foreground, #111) 42%, transparent) 46% 54%, transparent 55%),
753
+ linear-gradient(135deg, transparent 64%, color-mix(in srgb, var(--foreground, #111) 30%, transparent) 65% 73%, transparent 74%);
754
+ cursor: nwse-resize;
755
+ transform: scale(var(--workbench-layer-control-inverse-scale, 1));
756
+ transform-origin: bottom right;
757
+ }
758
+
759
+ .workbench-layer-control {
760
+ position: absolute;
761
+ top: 0;
762
+ left: 0;
763
+ box-sizing: border-box;
764
+ pointer-events: none;
765
+ transform-origin: 0 0;
766
+ will-change: transform;
767
+ }
768
+
769
+ .workbench-layer-control__selection {
770
+ position: absolute;
771
+ inset: 0;
772
+ pointer-events: none;
773
+ }
774
+
775
+ .workbench-layer-control__selection.is-region {
776
+ outline: 1.5px dashed color-mix(in srgb, var(--primary, #3b82f6) 62%, transparent);
777
+ outline-offset: 3px;
778
+ }
779
+
780
+ .workbench-layer-control__selection.is-text {
781
+ outline: 1.5px dashed color-mix(in srgb, var(--primary, #3b82f6) 72%, transparent);
782
+ outline-offset: 8px;
783
+ }
784
+
785
+ .workbench-layer-control .workbench-background-region__toolbar,
786
+ .workbench-layer-control .workbench-text-annotation__toolbar,
787
+ .workbench-layer-control .workbench-layer-resize {
788
+ pointer-events: auto;
789
+ }
790
+
791
+ .workbench-text-annotation {
792
+ color: var(--workbench-text-color);
793
+ pointer-events: none;
794
+ cursor: default;
795
+ border: 0 !important;
796
+ outline: 0 !important;
797
+ box-shadow: none !important;
798
+ background: transparent;
799
+ }
800
+
801
+ .workbench-text-annotation.is-editable {
802
+ pointer-events: auto;
803
+ }
804
+
805
+ .workbench-text-annotation:focus,
806
+ .workbench-text-annotation:focus-visible,
807
+ .workbench-text-annotation:focus-within,
808
+ .workbench-text-annotation.is-selected,
809
+ .workbench-text-annotation.is-selected:focus-within {
810
+ border: 0 !important;
811
+ outline: 0 !important;
812
+ box-shadow: none !important;
813
+ background: transparent;
814
+ }
815
+
816
+ .workbench-layer-move-handle {
817
+ cursor: move;
818
+ }
819
+
820
+ .workbench-layer-move-handle:active {
821
+ cursor: grabbing;
822
+ }
823
+
824
+ .workbench-text-annotation__content {
825
+ display: block;
826
+ box-sizing: border-box;
827
+ width: 100%;
828
+ height: 100%;
829
+ padding: 0;
830
+ border: 0 !important;
831
+ border-radius: 0;
832
+ background: transparent;
833
+ box-shadow: none !important;
834
+ font-family: var(--workbench-text-family);
835
+ font-size: var(--workbench-text-size);
836
+ font-weight: var(--workbench-text-weight);
837
+ line-height: 1.12;
838
+ text-align: var(--workbench-text-align);
839
+ overflow: auto;
840
+ white-space: pre-wrap;
841
+ word-break: break-word;
842
+ text-shadow: 0 1px 0 color-mix(in srgb, var(--background, #fff) 64%, transparent);
843
+ cursor: text;
844
+ outline: 0 !important;
845
+ color: var(--workbench-text-color);
846
+ -webkit-user-select: text;
847
+ user-select: text;
848
+ caret-color: var(--workbench-text-color);
849
+ }
850
+
851
+ .floe-infinite-canvas .workbench-text-annotation__content,
852
+ .workbench-text-annotation__content:focus,
853
+ .workbench-text-annotation__content:focus-visible,
854
+ .workbench-text-annotation__content:active {
855
+ display: block;
856
+ box-sizing: border-box;
857
+ width: 100%;
858
+ height: 100%;
859
+ padding: 0;
860
+ border: 0 !important;
861
+ border-radius: 0;
862
+ outline: 0 !important;
863
+ box-shadow: none !important;
864
+ background: transparent;
865
+ font-family: var(--workbench-text-family);
866
+ font-size: var(--workbench-text-size);
867
+ font-weight: var(--workbench-text-weight);
868
+ line-height: 1.12;
869
+ text-align: var(--workbench-text-align);
870
+ overflow: auto;
871
+ white-space: pre-wrap;
872
+ word-break: break-word;
873
+ text-shadow: 0 1px 0 color-mix(in srgb, var(--background, #fff) 64%, transparent);
874
+ cursor: text;
875
+ color: var(--workbench-text-color);
876
+ -webkit-user-select: text;
877
+ user-select: text;
878
+ caret-color: var(--workbench-text-color);
879
+ }
880
+
881
+ .workbench-text-annotation__size-input {
882
+ width: 39px;
883
+ height: 100%;
884
+ padding: 0 4px;
885
+ border: 0;
886
+ border-right: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 62%, transparent);
887
+ border-left: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 62%, transparent);
888
+ border-radius: 0;
889
+ background: color-mix(in srgb, var(--background, #fff) 34%, transparent);
890
+ color: var(--foreground, #111);
891
+ font-size: 11px;
892
+ font-weight: 700;
893
+ text-align: center;
894
+ outline: none;
895
+ }
896
+
897
+ .workbench-text-annotation__size-input:focus {
898
+ box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--primary, #3b82f6) 18%, transparent);
899
+ }
900
+
901
+ .workbench-sticky {
902
+ --workbench-sticky-accent: #d8b25a;
903
+ --workbench-sticky-surface: #fff2bd;
904
+ --workbench-sticky-surface-strong: #ffe9a6;
905
+ --workbench-sticky-border: color-mix(in srgb, var(--workbench-sticky-accent) 32%, var(--border, #e5e5e5));
906
+ --workbench-sticky-ink: #302616;
907
+ --workbench-sticky-ribbon: #c89734;
908
+ display: flex;
909
+ flex-direction: column;
910
+ overflow: visible;
911
+ cursor: default;
912
+ transform-origin: 0 0;
913
+ }
914
+
915
+ .workbench-sticky.is-amber {
916
+ --workbench-sticky-accent: #d8b25a;
917
+ --workbench-sticky-surface: #fff2bd;
918
+ --workbench-sticky-surface-strong: #ffe9a6;
919
+ --workbench-sticky-ribbon: #c89734;
920
+ }
921
+
922
+ .workbench-sticky.is-sage {
923
+ --workbench-sticky-accent: #8fae72;
924
+ --workbench-sticky-surface: #e4f0d7;
925
+ --workbench-sticky-surface-strong: #d8e8c8;
926
+ --workbench-sticky-ribbon: #78945d;
927
+ }
928
+
929
+ .workbench-sticky.is-azure {
930
+ --workbench-sticky-accent: #7f9fc7;
931
+ --workbench-sticky-surface: #dceafd;
932
+ --workbench-sticky-surface-strong: #cfddf3;
933
+ --workbench-sticky-ribbon: #688abc;
934
+ }
935
+
936
+ .workbench-sticky.is-coral {
937
+ --workbench-sticky-accent: #ce8b70;
938
+ --workbench-sticky-surface: #ffe1d4;
939
+ --workbench-sticky-surface-strong: #ffd3c2;
940
+ --workbench-sticky-ribbon: #b9785d;
941
+ }
942
+
943
+ .workbench-sticky.is-rose {
944
+ --workbench-sticky-accent: #be879e;
945
+ --workbench-sticky-surface: #f6dde8;
946
+ --workbench-sticky-surface-strong: #efccd9;
947
+ --workbench-sticky-ribbon: #a66f86;
948
+ }
949
+
950
+ .workbench-sticky.is-graphite {
951
+ --workbench-sticky-accent: oklch(0.5 0.03 250);
952
+ --workbench-sticky-surface: color-mix(in srgb, #2b3038 92%, var(--workbench-sticky-accent) 8%);
953
+ --workbench-sticky-surface-strong: color-mix(in srgb, #343a44 88%, var(--workbench-sticky-accent) 12%);
954
+ --workbench-sticky-border: color-mix(in srgb, white 16%, var(--workbench-sticky-accent) 84%);
955
+ --workbench-sticky-ink: #f4f4f5;
956
+ --workbench-sticky-ribbon: color-mix(in srgb, #111827 72%, white 28%);
957
+ }
958
+
959
+ .workbench-sticky__surface {
960
+ position: relative;
961
+ display: flex;
962
+ flex: 1;
963
+ flex-direction: column;
964
+ width: 100%;
965
+ height: 100%;
966
+ border: 1px solid var(--workbench-sticky-border);
967
+ border-radius: 7px;
968
+ background:
969
+ linear-gradient(180deg, color-mix(in srgb, white 18%, transparent), transparent 34%),
970
+ linear-gradient(
971
+ 135deg,
972
+ var(--workbench-sticky-surface),
973
+ color-mix(in srgb, var(--workbench-sticky-surface) 88%, var(--workbench-sticky-accent) 12%)
974
+ );
975
+ box-shadow:
976
+ 0 16px 28px color-mix(in srgb, var(--foreground, #000) 7%, transparent),
977
+ 0 1px 0 color-mix(in srgb, white 9%, transparent) inset;
978
+ overflow: hidden;
979
+ transition:
980
+ border-color 180ms ease,
981
+ box-shadow 180ms ease,
982
+ transform 180ms cubic-bezier(0.22, 1, 0.36, 1),
983
+ background-color 180ms ease;
984
+ }
985
+
986
+ .workbench-sticky__surface::before {
987
+ content: '';
988
+ position: absolute;
989
+ inset: 0 auto 0 0;
990
+ width: 4px;
991
+ background: var(--workbench-sticky-ribbon);
992
+ opacity: 0.92;
993
+ box-shadow: 1px 0 0 color-mix(in srgb, white 18%, transparent) inset;
223
994
  pointer-events: none;
224
- background-image:
225
- linear-gradient(
226
- to right,
227
- color-mix(in srgb, var(--border, #e5e5e5) 42%, transparent) 1px,
228
- transparent 1px
229
- ),
995
+ }
996
+
997
+ .workbench-sticky:hover .workbench-sticky__surface,
998
+ .workbench-sticky:focus-within .workbench-sticky__surface {
999
+ border-color: color-mix(in srgb, var(--workbench-sticky-accent) 42%, var(--border, #e5e5e5));
1000
+ background:
1001
+ linear-gradient(180deg, color-mix(in srgb, white 24%, transparent), transparent 32%),
230
1002
  linear-gradient(
231
- to bottom,
232
- color-mix(in srgb, var(--border, #e5e5e5) 42%, transparent) 1px,
233
- transparent 1px
234
- ),
235
- radial-gradient(
236
- circle,
237
- color-mix(in srgb, var(--border, #e5e5e5) 70%, transparent) 0.9px,
238
- transparent 1px
1003
+ 135deg,
1004
+ var(--workbench-sticky-surface-strong),
1005
+ color-mix(in srgb, var(--workbench-sticky-surface-strong) 82%, var(--workbench-sticky-accent) 18%)
239
1006
  );
240
- background-size:
241
- var(--wb-grid-major) var(--wb-grid-major),
242
- var(--wb-grid-major) var(--wb-grid-major),
243
- var(--wb-grid-minor) var(--wb-grid-minor);
244
- background-position:
245
- 0 0,
246
- 0 0,
247
- var(--wb-grid-minor-offset) var(--wb-grid-minor-offset);
248
- opacity: 0.78;
1007
+ box-shadow:
1008
+ 0 20px 34px color-mix(in srgb, var(--foreground, #000) 10%, transparent),
1009
+ 0 1px 0 color-mix(in srgb, white 12%, transparent) inset;
1010
+ }
1011
+
1012
+ .workbench-sticky.is-selected .workbench-sticky__surface {
1013
+ border-color: color-mix(in srgb, var(--primary, #3b82f6) 38%, var(--workbench-sticky-border));
1014
+ box-shadow:
1015
+ 0 0 0 2px color-mix(in srgb, var(--primary, #3b82f6) 24%, transparent),
1016
+ 0 22px 42px -18px color-mix(in srgb, var(--primary, #3b82f6) 26%, transparent),
1017
+ 0 1px 0 color-mix(in srgb, white 12%, transparent) inset;
1018
+ }
1019
+
1020
+ .workbench-sticky.is-dragging .workbench-sticky__surface {
1021
+ box-shadow:
1022
+ 0 0 0 2px color-mix(in srgb, var(--primary, #3b82f6) 28%, transparent),
1023
+ 0 26px 46px color-mix(in srgb, var(--foreground, #000) 14%, transparent),
1024
+ 0 1px 0 color-mix(in srgb, white 12%, transparent) inset;
1025
+ transition: none;
1026
+ }
1027
+
1028
+ .workbench-sticky.is-dragging,
1029
+ .workbench-sticky.is-resizing {
1030
+ transition: none;
1031
+ will-change: transform;
1032
+ }
1033
+
1034
+ .workbench-sticky.is-copied .workbench-sticky__surface {
1035
+ border-color: color-mix(in srgb, var(--success, #22c55e) 38%, var(--workbench-sticky-border));
1036
+ box-shadow:
1037
+ 0 0 0 1px color-mix(in srgb, var(--success, #22c55e) 26%, transparent),
1038
+ 0 22px 36px color-mix(in srgb, var(--foreground, #000) 12%, transparent),
1039
+ 0 1px 0 color-mix(in srgb, white 12%, transparent) inset;
1040
+ }
1041
+
1042
+ .workbench-sticky__header {
1043
+ position: relative;
1044
+ z-index: 1;
1045
+ display: flex;
1046
+ align-items: center;
1047
+ min-height: 31px;
1048
+ padding: 8px 9px 0 10px;
1049
+ cursor: move;
1050
+ }
1051
+
1052
+ .workbench-sticky.is-locked .workbench-sticky__header {
1053
+ cursor: default;
1054
+ }
1055
+
1056
+ .workbench-sticky.is-locked .workbench-sticky__body {
1057
+ cursor: default;
1058
+ }
1059
+
1060
+ .workbench-sticky__grip,
1061
+ .workbench-sticky__tool {
1062
+ display: inline-flex;
1063
+ align-items: center;
1064
+ justify-content: center;
1065
+ border: none;
1066
+ background: transparent;
1067
+ color: color-mix(in srgb, var(--workbench-sticky-ink) 58%, var(--muted-foreground, #737373));
1068
+ cursor: pointer;
1069
+ transition:
1070
+ background-color 140ms ease,
1071
+ color 140ms ease,
1072
+ opacity 140ms ease,
1073
+ transform 140ms ease;
1074
+ }
1075
+
1076
+ .workbench-sticky__grip {
1077
+ width: 25px;
1078
+ height: 25px;
1079
+ border-radius: 7px;
1080
+ opacity: 0.48;
1081
+ cursor: move;
1082
+ }
1083
+
1084
+ .workbench-sticky:hover .workbench-sticky__grip,
1085
+ .workbench-sticky:focus-within .workbench-sticky__grip,
1086
+ .workbench-sticky.is-dragging .workbench-sticky__grip {
1087
+ opacity: 0.92;
1088
+ }
1089
+
1090
+ .workbench-sticky__grip:hover,
1091
+ .workbench-sticky__tool:hover {
1092
+ color: var(--workbench-sticky-ink);
1093
+ background: color-mix(in srgb, var(--background, #fff) 74%, transparent);
1094
+ transform: translateY(-1px);
1095
+ }
1096
+
1097
+ .workbench-sticky__grip:active,
1098
+ .workbench-sticky__tool:active {
1099
+ transform: translateY(0);
1100
+ }
1101
+
1102
+ .workbench-sticky.is-dragging .workbench-sticky__grip,
1103
+ .workbench-sticky__grip:active {
1104
+ cursor: grabbing;
1105
+ }
1106
+
1107
+ .workbench-sticky__actions {
1108
+ position: absolute;
1109
+ top: -10px;
1110
+ right: -10px;
1111
+ z-index: 5;
1112
+ display: flex;
1113
+ flex-direction: column;
1114
+ align-items: center;
1115
+ gap: 4px;
1116
+ padding: 4px;
1117
+ border: 1px solid color-mix(in srgb, var(--workbench-sticky-accent) 18%, var(--workbench-sticky-border));
1118
+ border-radius: 999px;
1119
+ background: color-mix(in srgb, var(--background, #fff) 80%, transparent);
1120
+ backdrop-filter: blur(12px);
1121
+ box-shadow:
1122
+ 0 14px 26px color-mix(in srgb, var(--foreground, #000) 11%, transparent),
1123
+ 0 0 0 1px color-mix(in srgb, white 16%, transparent) inset;
1124
+ }
1125
+
1126
+ .workbench-sticky__tool {
1127
+ width: 27px;
1128
+ height: 27px;
1129
+ border-radius: 999px;
1130
+ border: 1px solid color-mix(in srgb, var(--workbench-sticky-accent) 14%, transparent);
1131
+ background: color-mix(in srgb, var(--background, #fff) 66%, transparent);
1132
+ box-shadow: 0 1px 0 color-mix(in srgb, white 12%, transparent) inset;
1133
+ }
1134
+
1135
+ .workbench-sticky__tool.is-danger {
1136
+ color: var(--destructive, #ef4444);
1137
+ }
1138
+
1139
+ .workbench-sticky__tool.is-success {
1140
+ color: color-mix(in srgb, var(--success, #22c55e) 84%, var(--workbench-sticky-ink));
1141
+ border-color: color-mix(in srgb, var(--success, #22c55e) 34%, var(--workbench-sticky-border));
1142
+ background: color-mix(in srgb, var(--success, #22c55e) 12%, var(--background, #fff));
1143
+ }
1144
+
1145
+ .workbench-sticky__tool.is-danger:hover {
1146
+ border-color: color-mix(in srgb, var(--destructive, #ef4444) 28%, var(--workbench-sticky-border));
1147
+ background: color-mix(in srgb, var(--destructive, #ef4444) 10%, var(--background, #fff));
1148
+ }
1149
+
1150
+ .workbench-sticky__color-dot {
1151
+ width: 11px;
1152
+ height: 11px;
1153
+ border-radius: 999px;
1154
+ background: var(--workbench-sticky-accent);
1155
+ box-shadow:
1156
+ 0 0 0 1px color-mix(in srgb, var(--workbench-sticky-ribbon) 54%, transparent),
1157
+ 0 1px 0 color-mix(in srgb, white 38%, transparent) inset;
1158
+ }
1159
+
1160
+ .workbench-sticky__body {
1161
+ position: relative;
1162
+ z-index: 1;
1163
+ flex: 1;
1164
+ min-height: 0;
1165
+ padding: 2px 16px 15px 18px;
1166
+ color: var(--workbench-sticky-ink);
1167
+ font-size: 14px;
1168
+ line-height: 1.52;
1169
+ overflow: auto;
1170
+ outline: 0;
1171
+ cursor: text;
1172
+ white-space: pre-wrap;
1173
+ word-break: break-word;
1174
+ -webkit-user-select: text;
1175
+ user-select: text;
1176
+ caret-color: var(--workbench-sticky-ink);
1177
+ }
1178
+
1179
+ .workbench-sticky__body:focus,
1180
+ .workbench-sticky__body:focus-visible {
1181
+ outline: 0;
1182
+ box-shadow: none;
1183
+ }
1184
+
1185
+ .workbench-sticky__resize {
1186
+ right: -3px;
1187
+ bottom: -3px;
1188
+ width: 34px;
1189
+ height: 34px;
1190
+ border-radius: 10px 0 7px 0;
1191
+ background: transparent;
1192
+ z-index: 4;
1193
+ pointer-events: auto;
1194
+ opacity: 0;
1195
+ transition: opacity 140ms ease;
1196
+ }
1197
+
1198
+ .workbench-sticky__resize::after {
1199
+ content: '';
1200
+ position: absolute;
1201
+ right: 6px;
1202
+ bottom: 6px;
1203
+ width: 10px;
1204
+ height: 10px;
1205
+ border-radius: 3px 0 4px 0;
1206
+ background:
1207
+ linear-gradient(135deg, transparent 54%, color-mix(in srgb, var(--workbench-sticky-ink) 38%, transparent) 55% 62%, transparent 63%),
1208
+ linear-gradient(135deg, transparent 72%, color-mix(in srgb, var(--workbench-sticky-ink) 26%, transparent) 73% 80%, transparent 81%);
1209
+ pointer-events: none;
1210
+ }
1211
+
1212
+ .workbench-sticky:hover .workbench-sticky__resize,
1213
+ .workbench-sticky.is-selected .workbench-sticky__resize {
1214
+ opacity: 1;
249
1215
  }
250
1216
 
251
1217
  /* ------------------------------------------------------------------ */
@@ -320,7 +1286,8 @@
320
1286
  cursor: grabbing;
321
1287
  }
322
1288
 
323
- .workbench-widget.is-filtered-out {
1289
+ .workbench-widget.is-filtered-out,
1290
+ .workbench-sticky.is-filtered-out {
324
1291
  opacity: 0;
325
1292
  pointer-events: none;
326
1293
  }
@@ -717,6 +1684,16 @@
717
1684
  z-index: 8;
718
1685
  }
719
1686
 
1687
+ .workbench-dock__mode-switcher {
1688
+ position: relative;
1689
+ display: inline-flex;
1690
+ }
1691
+
1692
+ .workbench-dock__mode-icon {
1693
+ width: 14px;
1694
+ height: 14px;
1695
+ }
1696
+
720
1697
  .workbench-dock__item {
721
1698
  position: relative;
722
1699
  display: inline-flex;
@@ -779,6 +1756,107 @@
779
1756
  0 1px 0 color-mix(in srgb, white 50%, transparent) inset;
780
1757
  }
781
1758
 
1759
+ .workbench-dock__item.is-filter-muted .workbench-dock__tile {
1760
+ opacity: 0.46;
1761
+ background: color-mix(in srgb, var(--muted, #f1f1f1) 42%, transparent);
1762
+ color: color-mix(in srgb, var(--muted-foreground, #888) 72%, transparent);
1763
+ box-shadow: none;
1764
+ }
1765
+
1766
+ .workbench-dock__mode-popover {
1767
+ position: absolute;
1768
+ left: 50%;
1769
+ bottom: calc(100% + 16px);
1770
+ transform: translateX(-50%);
1771
+ display: grid;
1772
+ gap: 6px;
1773
+ width: 238px;
1774
+ padding: 8px;
1775
+ border-radius: 13px;
1776
+ border: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 80%, transparent);
1777
+ background: color-mix(in srgb, var(--popover, var(--card, #fff)) 92%, transparent);
1778
+ box-shadow:
1779
+ 0 22px 48px -16px color-mix(in srgb, var(--foreground, #000) 24%, transparent),
1780
+ 0 1px 0 color-mix(in srgb, white 54%, transparent) inset;
1781
+ backdrop-filter: blur(18px) saturate(180%);
1782
+ -webkit-backdrop-filter: blur(18px) saturate(180%);
1783
+ z-index: 2;
1784
+ }
1785
+
1786
+ .workbench-dock__mode-popover::after {
1787
+ content: '';
1788
+ position: absolute;
1789
+ left: 50%;
1790
+ bottom: -6px;
1791
+ width: 12px;
1792
+ height: 12px;
1793
+ transform: translateX(-50%) rotate(45deg);
1794
+ border-right: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 80%, transparent);
1795
+ border-bottom: 1px solid color-mix(in srgb, var(--border, #e5e5e5) 80%, transparent);
1796
+ background: color-mix(in srgb, var(--popover, var(--card, #fff)) 92%, transparent);
1797
+ }
1798
+
1799
+ .workbench-dock__mode-option {
1800
+ position: relative;
1801
+ display: flex;
1802
+ align-items: center;
1803
+ gap: 10px;
1804
+ min-height: 52px;
1805
+ padding: 7px 9px;
1806
+ border: none;
1807
+ border-radius: 9px;
1808
+ background: transparent;
1809
+ color: var(--muted-foreground, #888);
1810
+ text-align: left;
1811
+ cursor: pointer;
1812
+ transition:
1813
+ background-color 150ms ease,
1814
+ color 150ms ease,
1815
+ box-shadow 150ms ease;
1816
+ }
1817
+
1818
+ .workbench-dock__mode-option:hover {
1819
+ background: color-mix(in srgb, var(--accent, #f2f2f2) 78%, transparent);
1820
+ color: var(--foreground, #111);
1821
+ }
1822
+
1823
+ .workbench-dock__mode-option.is-active {
1824
+ background: color-mix(in srgb, var(--primary, #3b82f6) 12%, var(--card, #fff));
1825
+ color: var(--foreground, #111);
1826
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--primary, #3b82f6) 18%, transparent);
1827
+ }
1828
+
1829
+ .workbench-dock__mode-option-icon {
1830
+ display: inline-flex;
1831
+ align-items: center;
1832
+ justify-content: center;
1833
+ flex: 0 0 auto;
1834
+ width: 30px;
1835
+ height: 30px;
1836
+ border-radius: 8px;
1837
+ background: color-mix(in srgb, var(--muted, #f1f1f1) 70%, transparent);
1838
+ color: inherit;
1839
+ }
1840
+
1841
+ .workbench-dock__mode-option-copy {
1842
+ display: grid;
1843
+ min-width: 0;
1844
+ gap: 2px;
1845
+ }
1846
+
1847
+ .workbench-dock__mode-option-label {
1848
+ font-size: 12px;
1849
+ font-weight: 750;
1850
+ line-height: 1.1;
1851
+ }
1852
+
1853
+ .workbench-dock__mode-option-description {
1854
+ font-size: 10px;
1855
+ font-weight: 500;
1856
+ line-height: 1.25;
1857
+ color: var(--muted-foreground, #888);
1858
+ }
1859
+
782
1860
  .workbench-dock__divider {
783
1861
  width: 1px;
784
1862
  height: 24px;
@@ -906,6 +1984,8 @@
906
1984
  /* Cap the width so magnified tiles can't push the dock outside the
907
1985
  viewport, and so the HUD / lock above stay clear. */
908
1986
  max-width: calc(100vw - 24px);
1987
+ overflow-x: auto;
1988
+ overflow-y: visible;
909
1989
  }
910
1990
 
911
1991
  .workbench-dock__item,
@@ -914,6 +1994,17 @@
914
1994
  height: 32px;
915
1995
  }
916
1996
 
1997
+ .workbench-dock__mode-popover {
1998
+ left: 0;
1999
+ transform: none;
2000
+ width: min(238px, calc(100vw - 32px));
2001
+ }
2002
+
2003
+ .workbench-dock__mode-popover::after {
2004
+ left: 16px;
2005
+ transform: rotate(45deg);
2006
+ }
2007
+
917
2008
  .workbench-dock__icon {
918
2009
  width: 16px;
919
2010
  height: 16px;