@bendyline/squisq-editor-react 2.3.3 → 2.4.0

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.
@@ -8891,6 +8891,88 @@
8891
8891
  caret-color: var(--squisq-theme-text, #1f2937);
8892
8892
  cursor: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='22' viewBox='0 0 16 22'><g fill='none' stroke-linecap='round'><path d='M5 3 L11 3 M5 19 L11 19 M8 3 L8 19' stroke='white' stroke-width='3.2'/><path d='M5 3 L11 3 M5 19 L11 19 M8 3 L8 19' stroke='%231f2937' stroke-width='1.4'/></g></svg>") 8 11, text;
8893
8893
  }
8894
+ .squisq-wysiwyg-editor .squisq-video-node {
8895
+ display: block;
8896
+ width: min(100%, 640px);
8897
+ max-width: 640px;
8898
+ margin: 0.75em auto;
8899
+ overflow: hidden;
8900
+ border: 1px solid #d1d5db;
8901
+ border-radius: 8px;
8902
+ background: #111827;
8903
+ box-shadow: 0 2px 8px rgba(15, 23, 42, 0.12);
8904
+ }
8905
+ .squisq-wysiwyg-editor .squisq-video-node--selected {
8906
+ border-color: #3b82f6;
8907
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.24);
8908
+ }
8909
+ .squisq-video-placement-toolbar {
8910
+ display: flex;
8911
+ align-items: center;
8912
+ gap: 4px;
8913
+ min-height: 34px;
8914
+ padding: 4px 6px;
8915
+ border-bottom: 1px solid #d1d5db;
8916
+ background: #f9fafb;
8917
+ color: #374151;
8918
+ font-family: var(--squisq-ux-font, system-ui, sans-serif);
8919
+ user-select: none;
8920
+ }
8921
+ .squisq-video-placement-label {
8922
+ margin: 0 4px 0 2px;
8923
+ color: #6b7280;
8924
+ font-size: 11px;
8925
+ font-weight: 600;
8926
+ letter-spacing: 0.03em;
8927
+ text-transform: uppercase;
8928
+ }
8929
+ .squisq-video-placement-button {
8930
+ min-height: 24px;
8931
+ padding: 2px 8px;
8932
+ border: 1px solid transparent;
8933
+ border-radius: 5px;
8934
+ background: transparent;
8935
+ color: #4b5563;
8936
+ font: 500 11px/1 var(--squisq-ux-font, system-ui, sans-serif);
8937
+ cursor: pointer;
8938
+ }
8939
+ .squisq-video-placement-button:hover {
8940
+ background: #e5e7eb;
8941
+ color: #111827;
8942
+ }
8943
+ .squisq-video-placement-button[aria-pressed=true] {
8944
+ border-color: #60a5fa;
8945
+ background: #dbeafe;
8946
+ color: #1d4ed8;
8947
+ }
8948
+ .squisq-video-placement-button--lock {
8949
+ margin-left: auto;
8950
+ border-color: #d1d5db;
8951
+ }
8952
+ .squisq-wysiwyg-editor .squisq-video-node video {
8953
+ margin: 0;
8954
+ border-radius: 0;
8955
+ }
8956
+ .squisq-editor-shell[data-theme=dark] .squisq-video-placement-toolbar {
8957
+ border-bottom-color: #374151;
8958
+ background: #111827;
8959
+ color: #d1d5db;
8960
+ }
8961
+ .squisq-editor-shell[data-theme=dark] .squisq-video-placement-label {
8962
+ color: #9ca3af;
8963
+ }
8964
+ .squisq-editor-shell[data-theme=dark] .squisq-video-placement-button {
8965
+ color: #d1d5db;
8966
+ }
8967
+ .squisq-editor-shell[data-theme=dark] .squisq-video-placement-button:hover {
8968
+ background: #1f2937;
8969
+ color: #f9fafb;
8970
+ }
8971
+ .squisq-editor-shell[data-theme=dark] .squisq-video-placement-button[aria-pressed=true] {
8972
+ border-color: #60a5fa;
8973
+ background: #172554;
8974
+ color: #93c5fd;
8975
+ }
8894
8976
  .squisq-wysiwyg-editor .prosemirror-dropcursor-block,
8895
8977
  .squisq-wysiwyg-editor .prosemirror-dropcursor-inline {
8896
8978
  background: var(--squisq-editor-accent, #4a9eff) !important;
@@ -9539,7 +9621,19 @@
9539
9621
  .squisq-editor-shell[data-presentation-mode=control],
9540
9622
  .squisq-editor-shell[data-presentation-mode=fullscreen] {
9541
9623
  position: relative;
9542
- background: #000;
9624
+ background: var(--squisq-bg, #f5f5f5);
9625
+ }
9626
+ .squisq-editor-shell[data-presentation-mode=control] {
9627
+ position: fixed !important;
9628
+ z-index: 2147483000 !important;
9629
+ inset: 0 !important;
9630
+ width: 100vw !important;
9631
+ height: 100vh !important;
9632
+ height: 100dvh !important;
9633
+ min-width: 0 !important;
9634
+ min-height: 0 !important;
9635
+ max-width: none !important;
9636
+ max-height: none !important;
9543
9637
  }
9544
9638
  .squisq-editor-shell[data-presentation-mode=control] > .squisq-editor-header,
9545
9639
  .squisq-editor-shell[data-presentation-mode=fullscreen] > .squisq-editor-header,
@@ -9558,7 +9652,7 @@
9558
9652
  .squisq-editor-shell[data-presentation-mode=control] .squisq-preview-player,
9559
9653
  .squisq-editor-shell[data-presentation-mode=fullscreen] .squisq-preview-player {
9560
9654
  padding: 0;
9561
- background: #000;
9655
+ background: var(--squisq-bg, #f5f5f5);
9562
9656
  }
9563
9657
  .squisq-editor-shell[data-presentation-mode=fullscreen]:fullscreen {
9564
9658
  width: 100vw !important;
@@ -9571,27 +9665,33 @@
9571
9665
  .squisq-presentation-exit {
9572
9666
  position: absolute;
9573
9667
  z-index: 1001;
9574
- top: 12px;
9575
- right: 12px;
9668
+ bottom: max(16px, env(safe-area-inset-bottom));
9669
+ left: 50%;
9576
9670
  display: inline-flex;
9577
9671
  align-items: center;
9578
9672
  gap: 7px;
9579
9673
  min-height: 34px;
9580
9674
  padding: 7px 11px;
9581
- border: 1px solid rgba(255, 255, 255, 0.35);
9675
+ border: 1px solid var(--squisq-presentation-control-border, var(--squisq-border, #d1d5db));
9582
9676
  border-radius: 7px;
9583
- background: rgba(15, 23, 42, 0.78);
9584
- color: #fff;
9677
+ background: color-mix(in srgb, var(--squisq-presentation-control-bg, var(--squisq-input-bg, #fff)) 88%, transparent);
9678
+ color: var(--squisq-presentation-control-text, var(--squisq-text, #1f2937));
9679
+ box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
9585
9680
  font: 600 12px/1 var(--squisq-ux-font, sans-serif);
9586
9681
  cursor: pointer;
9587
9682
  opacity: 0.72;
9588
9683
  backdrop-filter: blur(8px);
9589
- transition: opacity 0.12s ease, background 0.12s ease;
9684
+ transform: translateX(-50%);
9685
+ transition:
9686
+ opacity 0.12s ease,
9687
+ background 0.12s ease,
9688
+ border-color 0.12s ease;
9590
9689
  }
9591
9690
  .squisq-presentation-exit:hover,
9592
9691
  .squisq-presentation-exit:focus-visible {
9593
9692
  outline: none;
9594
- background: rgba(15, 23, 42, 0.94);
9693
+ border-color: var( --squisq-presentation-control-border, var(--squisq-accent, var(--squisq-text, #1f2937)) );
9694
+ background: var(--squisq-presentation-control-bg, var(--squisq-input-bg, #fff));
9595
9695
  opacity: 1;
9596
9696
  }
9597
9697
  .squisq-presentation-window {
@@ -9599,7 +9699,7 @@
9599
9699
  height: 100%;
9600
9700
  display: flex;
9601
9701
  overflow: hidden;
9602
- background: #000;
9702
+ background: inherit;
9603
9703
  }
9604
9704
  .squisq-presentation-window-preview,
9605
9705
  .squisq-presentation-window-surface,
@@ -9614,7 +9714,7 @@
9614
9714
  }
9615
9715
  .squisq-presentation-window-surface {
9616
9716
  padding: 0;
9617
- background: #000;
9717
+ background: inherit;
9618
9718
  pointer-events: none;
9619
9719
  }
9620
9720
  .squisq-presentation-teleprompter {
@@ -9623,7 +9723,7 @@
9623
9723
  pointer-events: none;
9624
9724
  }
9625
9725
  .squisq-presentation-connecting {
9626
- color: rgba(255, 255, 255, 0.72);
9726
+ color: var(--squisq-text-muted, #6b7280);
9627
9727
  font: 500 14px/1.4 var(--squisq-ux-font, sans-serif);
9628
9728
  }
9629
9729
  .squisq-presentation-error {
@@ -10181,7 +10281,17 @@
10181
10281
  text-transform: uppercase;
10182
10282
  letter-spacing: 0.05em;
10183
10283
  }
10284
+ .squisq-media-bin-actions {
10285
+ display: flex;
10286
+ align-items: center;
10287
+ gap: 5px;
10288
+ }
10289
+ .squisq-media-bin-record,
10184
10290
  .squisq-media-bin-upload {
10291
+ display: inline-flex;
10292
+ align-items: center;
10293
+ justify-content: center;
10294
+ gap: 4px;
10185
10295
  font-size: 11px;
10186
10296
  padding: 2px 8px;
10187
10297
  cursor: pointer;
@@ -10190,9 +10300,24 @@
10190
10300
  border: 1px solid #d1d5db;
10191
10301
  border-radius: 4px;
10192
10302
  }
10303
+ .squisq-media-bin-record-dot {
10304
+ width: 7px;
10305
+ height: 7px;
10306
+ flex: 0 0 auto;
10307
+ border-radius: 50%;
10308
+ background: #dc2626;
10309
+ box-shadow: 0 0 0 1px rgba(127, 29, 29, 0.24);
10310
+ }
10311
+ .squisq-media-bin-record:hover,
10193
10312
  .squisq-media-bin-upload:hover {
10194
10313
  background: #d1d5db;
10195
10314
  }
10315
+ .squisq-media-bin-record:focus-visible,
10316
+ .squisq-media-bin-upload:focus-visible {
10317
+ outline: 2px solid #93c5fd;
10318
+ outline-offset: 1px;
10319
+ }
10320
+ .squisq-media-bin-record:disabled,
10196
10321
  .squisq-media-bin-upload:disabled {
10197
10322
  cursor: default;
10198
10323
  opacity: 0.5;
@@ -10343,14 +10468,14 @@
10343
10468
  .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-title {
10344
10469
  color: #d1d5db;
10345
10470
  }
10346
- .squisq-media-bin--dark .squisq-media-bin-upload,
10347
- .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-upload {
10471
+ .squisq-media-bin--dark :is(.squisq-media-bin-record, .squisq-media-bin-upload),
10472
+ .squisq-editor-shell[data-theme=dark] .squisq-media-bin :is(.squisq-media-bin-record, .squisq-media-bin-upload) {
10348
10473
  background: #374151;
10349
10474
  color: #d1d5db;
10350
10475
  border-color: #4b5563;
10351
10476
  }
10352
- .squisq-media-bin--dark .squisq-media-bin-upload:hover,
10353
- .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-upload:hover {
10477
+ .squisq-media-bin--dark :is(.squisq-media-bin-record, .squisq-media-bin-upload):hover,
10478
+ .squisq-editor-shell[data-theme=dark] .squisq-media-bin :is(.squisq-media-bin-record, .squisq-media-bin-upload):hover {
10354
10479
  background: #4b5563;
10355
10480
  }
10356
10481
  .squisq-media-bin--dark .squisq-media-bin-item,
@@ -11422,7 +11547,26 @@
11422
11547
  flex: 0 0 auto;
11423
11548
  min-height: 0;
11424
11549
  }
11425
- .squisq-editor-with-gutter > .squisq-block-card {
11550
+ .squisq-editor-with-gutter > .squisq-block-card-frame {
11551
+ flex: 1 1 auto;
11552
+ min-width: 0;
11553
+ min-height: 0;
11554
+ }
11555
+ .squisq-block-card-frame {
11556
+ display: flex;
11557
+ flex-direction: column;
11558
+ height: 100%;
11559
+ min-height: 0;
11560
+ }
11561
+ .squisq-block-card-frame-body {
11562
+ flex: 1 1 auto;
11563
+ min-width: 0;
11564
+ min-height: 0;
11565
+ position: relative;
11566
+ display: flex;
11567
+ }
11568
+ .squisq-block-card-frame-body > .squisq-raw-editor-container,
11569
+ .squisq-block-card-frame-body > .squisq-wysiwyg-container {
11426
11570
  flex: 1 1 auto;
11427
11571
  min-width: 0;
11428
11572
  min-height: 0;
@@ -11606,6 +11750,208 @@
11606
11750
  height: 0;
11607
11751
  overflow: hidden;
11608
11752
  }
11753
+ .squisq-timeline-toolbar {
11754
+ flex: 0 0 auto;
11755
+ display: flex;
11756
+ align-items: center;
11757
+ gap: 6px;
11758
+ min-height: 36px;
11759
+ padding: 4px 10px;
11760
+ border-bottom: 1px solid #b0a99a;
11761
+ background: #efece6;
11762
+ color: #374151;
11763
+ font-family: var(--squisq-ux-font, system-ui, sans-serif);
11764
+ }
11765
+ .squisq-timeline-toolbar-title {
11766
+ margin-right: 3px;
11767
+ color: #6b7280;
11768
+ font-size: 11px;
11769
+ font-weight: 600;
11770
+ letter-spacing: 0.02em;
11771
+ text-transform: uppercase;
11772
+ }
11773
+ .squisq-timeline-pane-toggle {
11774
+ display: inline-flex;
11775
+ align-items: center;
11776
+ gap: 6px;
11777
+ min-height: 27px;
11778
+ padding: 3px 9px;
11779
+ border: 1px solid #c8c2b7;
11780
+ border-radius: 6px;
11781
+ background: #ffffff;
11782
+ color: #374151;
11783
+ font: inherit;
11784
+ font-size: 12px;
11785
+ cursor: pointer;
11786
+ }
11787
+ .squisq-timeline-pane-toggle:hover:not(:disabled) {
11788
+ border-color: #9ca3af;
11789
+ background: #f9fafb;
11790
+ }
11791
+ .squisq-timeline-pane-toggle[aria-pressed=true] {
11792
+ border-color: #2563eb;
11793
+ background: #dbeafe;
11794
+ color: #1d4ed8;
11795
+ }
11796
+ .squisq-timeline-pane-toggle:disabled {
11797
+ opacity: 0.45;
11798
+ cursor: default;
11799
+ }
11800
+ .squisq-editor-primary {
11801
+ min-width: 0;
11802
+ }
11803
+ .squisq-timeline-preview-panel {
11804
+ flex: 1 1 0;
11805
+ min-width: 220px;
11806
+ min-height: 0;
11807
+ display: flex;
11808
+ flex-direction: column;
11809
+ background: #171717;
11810
+ border-left: 1px solid #b0a99a;
11811
+ }
11812
+ .squisq-timeline-video-header {
11813
+ display: flex;
11814
+ align-items: center;
11815
+ gap: 8px;
11816
+ min-height: 34px;
11817
+ padding: 0 8px 0 12px;
11818
+ background: #f9fafb;
11819
+ border-bottom: 1px solid #d1d5db;
11820
+ color: #374151;
11821
+ font-size: 12px;
11822
+ }
11823
+ .squisq-timeline-video-title {
11824
+ font-weight: 600;
11825
+ }
11826
+ .squisq-timeline-video-label {
11827
+ min-width: 0;
11828
+ overflow: hidden;
11829
+ text-overflow: ellipsis;
11830
+ white-space: nowrap;
11831
+ color: #6b7280;
11832
+ }
11833
+ .squisq-timeline-video-time {
11834
+ margin-left: auto;
11835
+ color: #6b7280;
11836
+ font-variant-numeric: tabular-nums;
11837
+ }
11838
+ .squisq-timeline-video-close {
11839
+ display: inline-flex;
11840
+ align-items: center;
11841
+ justify-content: center;
11842
+ width: 24px;
11843
+ height: 24px;
11844
+ padding: 0;
11845
+ border: 0;
11846
+ border-radius: 4px;
11847
+ background: transparent;
11848
+ color: #6b7280;
11849
+ font-size: 18px;
11850
+ cursor: pointer;
11851
+ }
11852
+ .squisq-timeline-video-close:hover {
11853
+ background: #e5e7eb;
11854
+ color: #111827;
11855
+ }
11856
+ .squisq-timeline-video-body {
11857
+ flex: 1 1 auto;
11858
+ min-height: 0;
11859
+ display: flex;
11860
+ align-items: center;
11861
+ justify-content: center;
11862
+ padding: 16px;
11863
+ overflow: auto;
11864
+ }
11865
+ .squisq-timeline-video-stage {
11866
+ position: relative;
11867
+ width: 100%;
11868
+ max-width: 900px;
11869
+ aspect-ratio: 16 / 9;
11870
+ overflow: hidden;
11871
+ background: #000000;
11872
+ border: 1px solid #374151;
11873
+ border-radius: 6px;
11874
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32);
11875
+ }
11876
+ .squisq-timeline-composition-stage {
11877
+ position: relative;
11878
+ display: flex;
11879
+ align-items: center;
11880
+ justify-content: center;
11881
+ width: 100%;
11882
+ max-width: 900px;
11883
+ aspect-ratio: 16 / 9;
11884
+ overflow: hidden;
11885
+ background: #000000;
11886
+ border: 1px solid #374151;
11887
+ border-radius: 6px;
11888
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.32);
11889
+ }
11890
+ .squisq-timeline-composition-stage > .doc-player {
11891
+ width: 100%;
11892
+ height: 100%;
11893
+ }
11894
+ .squisq-timeline-video-stage .doc-player__media-clips {
11895
+ position: absolute;
11896
+ inset: 0;
11897
+ }
11898
+ .squisq-timeline-video-stage .doc-player__media-video {
11899
+ opacity: 0;
11900
+ visibility: hidden;
11901
+ }
11902
+ .squisq-timeline-video-stage .doc-player__media-video--active {
11903
+ opacity: 1;
11904
+ visibility: visible;
11905
+ }
11906
+ .squisq-timeline-video-empty {
11907
+ position: absolute;
11908
+ inset: 0;
11909
+ display: flex;
11910
+ align-items: center;
11911
+ justify-content: center;
11912
+ padding: 20px;
11913
+ color: #9ca3af;
11914
+ font-size: 12px;
11915
+ text-align: center;
11916
+ }
11917
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-video-header {
11918
+ background: #111827;
11919
+ border-bottom-color: #2a3144;
11920
+ color: #e5e7eb;
11921
+ }
11922
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-preview-panel {
11923
+ border-left-color: #2a3144;
11924
+ }
11925
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-video-label,
11926
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-video-time,
11927
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-video-close {
11928
+ color: #9ca3af;
11929
+ }
11930
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-video-close:hover {
11931
+ background: #1f2937;
11932
+ color: #f9fafb;
11933
+ }
11934
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-toolbar {
11935
+ border-bottom-color: #2a3144;
11936
+ background: #151923;
11937
+ color: #d1d5db;
11938
+ }
11939
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-toolbar-title {
11940
+ color: #9ca3af;
11941
+ }
11942
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-pane-toggle {
11943
+ border-color: #374151;
11944
+ background: #111827;
11945
+ color: #d1d5db;
11946
+ }
11947
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-pane-toggle:hover:not(:disabled) {
11948
+ background: #1f2937;
11949
+ }
11950
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-pane-toggle[aria-pressed=true] {
11951
+ border-color: #60a5fa;
11952
+ background: #172554;
11953
+ color: #93c5fd;
11954
+ }
11609
11955
  .squisq-timeline-scroll {
11610
11956
  flex: 1;
11611
11957
  overflow-x: auto;
@@ -11747,6 +12093,10 @@
11747
12093
  transparent 6px,
11748
12094
  transparent 12px);
11749
12095
  }
12096
+ .squisq-timeline-clip--locked {
12097
+ cursor: default;
12098
+ box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.5);
12099
+ }
11750
12100
  .squisq-timeline-clip-label {
11751
12101
  white-space: nowrap;
11752
12102
  overflow: hidden;
@@ -13104,6 +13454,134 @@
13104
13454
  .squisq-transition-flyout[data-theme=dark] {
13105
13455
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 2px 6px rgba(0, 0, 0, 0.2);
13106
13456
  }
13457
+ .squisq-transform-menu {
13458
+ position: relative;
13459
+ flex-shrink: 0;
13460
+ margin-left: 2px;
13461
+ }
13462
+ .squisq-transform-menu-popover {
13463
+ position: absolute;
13464
+ top: 100%;
13465
+ right: 0;
13466
+ z-index: 90;
13467
+ min-width: 280px;
13468
+ margin-top: 4px;
13469
+ padding: 6px 0;
13470
+ background: var(--squisq-bg, #fff);
13471
+ border: 1px solid var(--squisq-border, #e5e7eb);
13472
+ border-radius: 6px;
13473
+ box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
13474
+ color: var(--squisq-text, #1f2937);
13475
+ }
13476
+ .squisq-transform-menu-state {
13477
+ padding: 4px 12px 8px;
13478
+ font-size: 11px;
13479
+ color: var(--squisq-text-muted, #6b7280);
13480
+ text-transform: uppercase;
13481
+ letter-spacing: 0.04em;
13482
+ border-bottom: 1px solid var(--squisq-border, #e5e7eb);
13483
+ margin-bottom: 4px;
13484
+ }
13485
+ .squisq-transform-menu-item {
13486
+ padding: 2px 6px;
13487
+ }
13488
+ .squisq-transform-menu-action {
13489
+ display: flex;
13490
+ flex-direction: column;
13491
+ align-items: flex-start;
13492
+ gap: 2px;
13493
+ width: 100%;
13494
+ padding: 6px;
13495
+ font: inherit;
13496
+ text-align: left;
13497
+ background: transparent;
13498
+ border: none;
13499
+ border-radius: 4px;
13500
+ color: inherit;
13501
+ cursor: pointer;
13502
+ }
13503
+ .squisq-transform-menu-action:hover:not(:disabled) {
13504
+ background: var(--squisq-row-hover, #f3f4f6);
13505
+ }
13506
+ .squisq-transform-menu-action:disabled {
13507
+ opacity: 0.5;
13508
+ cursor: default;
13509
+ }
13510
+ .squisq-transform-menu-action-label {
13511
+ font-size: 13px;
13512
+ font-weight: 600;
13513
+ }
13514
+ .squisq-transform-menu-action-desc {
13515
+ font-size: 11.5px;
13516
+ color: var(--squisq-text-muted, #6b7280);
13517
+ }
13518
+ .squisq-transform-menu-widths {
13519
+ display: flex;
13520
+ align-items: center;
13521
+ gap: 4px;
13522
+ padding: 0 6px 6px;
13523
+ }
13524
+ .squisq-transform-menu-width {
13525
+ padding: 2px 8px;
13526
+ font: inherit;
13527
+ font-size: 12px;
13528
+ background: var(--squisq-input-bg, #fff);
13529
+ color: inherit;
13530
+ border: 1px solid var(--squisq-border, #d1d5db);
13531
+ border-radius: 4px;
13532
+ cursor: pointer;
13533
+ }
13534
+ .squisq-transform-menu-width--active {
13535
+ border-color: var(--squisq-accent, #4f46e5);
13536
+ color: var(--squisq-accent, #4f46e5);
13537
+ font-weight: 600;
13538
+ }
13539
+ .squisq-transform-menu-width:disabled {
13540
+ opacity: 0.5;
13541
+ cursor: default;
13542
+ }
13543
+ .squisq-transform-menu-width-input {
13544
+ width: 64px;
13545
+ padding: 2px 6px;
13546
+ font: inherit;
13547
+ font-size: 12px;
13548
+ background: var(--squisq-input-bg, #fff);
13549
+ color: var(--squisq-text, #1f2937);
13550
+ border: 1px solid var(--squisq-border, #d1d5db);
13551
+ border-radius: 4px;
13552
+ }
13553
+ .squisq-transform-menu-note {
13554
+ padding: 6px 12px 2px;
13555
+ font-size: 11.5px;
13556
+ color: var(--squisq-text-muted, #6b7280);
13557
+ }
13558
+ .squisq-transform-menu-status {
13559
+ min-height: 16px;
13560
+ padding: 4px 12px 2px;
13561
+ font-size: 11.5px;
13562
+ color: var(--squisq-text-muted, #6b7280);
13563
+ }
13564
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-popover {
13565
+ background: #1f2937;
13566
+ border-color: #374151;
13567
+ color: #d1d5db;
13568
+ }
13569
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-state {
13570
+ border-bottom-color: #374151;
13571
+ }
13572
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-action:hover:not(:disabled) {
13573
+ background: #374151;
13574
+ }
13575
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-width,
13576
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-width-input {
13577
+ background: #111827;
13578
+ border-color: #374151;
13579
+ color: #d1d5db;
13580
+ }
13581
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-width--active {
13582
+ border-color: var(--squisq-accent, #818cf8);
13583
+ color: var(--squisq-accent, #818cf8);
13584
+ }
13107
13585
 
13108
13586
  /* src/styles/code-context.css */
13109
13587
  .squisq-ccx-zone {
@@ -14504,7 +14982,7 @@
14504
14982
  border: 1px solid var(--squisq-border, #e2e8f0);
14505
14983
  border-radius: 8px;
14506
14984
  overflow: hidden;
14507
- background: var(--squisq-surface, #ffffff);
14985
+ background: var(--squisq-surface, var(--squisq-bg, #ffffff));
14508
14986
  }
14509
14987
  .squisq-diagram-canvas {
14510
14988
  position: relative;
@@ -14613,7 +15091,7 @@
14613
15091
  position: relative;
14614
15092
  flex: 1;
14615
15093
  margin: 24px;
14616
- background: var(--squisq-surface, #ffffff);
15094
+ background: var(--squisq-surface, var(--squisq-bg, #ffffff));
14617
15095
  border-radius: 12px;
14618
15096
  overflow: hidden;
14619
15097
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
@@ -14938,10 +15416,20 @@
14938
15416
  padding: 5px 9px;
14939
15417
  border: 1px solid var(--squisq-border, #cbd5e1);
14940
15418
  border-radius: 6px;
14941
- background: var(--squisq-surface-subtle, #f8fafc);
14942
- color: inherit;
15419
+ background: var( --squisq-surface-subtle, var(--squisq-surface-raised, var(--squisq-input-bg, #f8fafc)) );
15420
+ color: var(--squisq-text, #1e293b);
14943
15421
  cursor: pointer;
14944
15422
  }
15423
+ .squisq-mermaid-properties-header button:hover,
15424
+ .squisq-mermaid-properties-footer button:hover {
15425
+ border-color: var(--squisq-accent, #4f46e5);
15426
+ background: var( --squisq-surface-hover, var(--squisq-surface-subtle, var(--squisq-input-bg, #f1f5f9)) );
15427
+ }
15428
+ .squisq-mermaid-properties-header button:focus-visible,
15429
+ .squisq-mermaid-properties-footer button:focus-visible {
15430
+ outline: 2px solid var(--squisq-accent, #4f46e5);
15431
+ outline-offset: 2px;
15432
+ }
14945
15433
  .squisq-mermaid-properties-header button {
14946
15434
  width: 30px;
14947
15435
  padding: 0;
@@ -14950,9 +15438,13 @@
14950
15438
  justify-content: flex-end;
14951
15439
  }
14952
15440
  .squisq-mermaid-properties-footer button[data-primary=true] {
14953
- border-color: #4f46e5;
14954
- background: #4f46e5;
14955
- color: #fff;
15441
+ border-color: var(--squisq-accent, #4f46e5);
15442
+ background: var(--squisq-accent, #4f46e5);
15443
+ color: var(--squisq-text-on-accent, #fff);
15444
+ }
15445
+ .squisq-mermaid-properties-footer button[data-primary=true]:hover {
15446
+ border-color: var(--squisq-accent-hover, var(--squisq-accent, #4338ca));
15447
+ background: var(--squisq-accent-hover, var(--squisq-accent, #4338ca));
14956
15448
  }
14957
15449
  .squisq-mermaid-properties-fields {
14958
15450
  display: flex;
@@ -14987,6 +15479,9 @@
14987
15479
  min-height: 30px;
14988
15480
  color: var(--squisq-text, #1e293b);
14989
15481
  }
15482
+ .squisq-mermaid-property-toggle input {
15483
+ accent-color: var(--squisq-accent, #4f46e5);
15484
+ }
14990
15485
  .squisq-mermaid-shape-search {
14991
15486
  box-sizing: border-box;
14992
15487
  width: 100%;