@bendyline/squisq-editor-react 2.4.0 → 2.4.1

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.
@@ -8766,7 +8766,7 @@
8766
8766
  border-color: color-mix(in oklch, currentColor 42%, transparent);
8767
8767
  outline: none;
8768
8768
  }
8769
- :is(.squisq-block-props-popover, .squisq-transition-picker, .squisq-transition-flyout) {
8769
+ :is(.squisq-block-props-popover, .squisq-transition-picker, .squisq-transition-flyout, .squisq-timeline-item-menu) {
8770
8770
  --squisq-block-props-surface: #ffffff;
8771
8771
  --squisq-block-props-surface-hover: #f3f4f6;
8772
8772
  --squisq-block-props-input: #ffffff;
@@ -8776,7 +8776,7 @@
8776
8776
  --squisq-block-props-border: #d1d5db;
8777
8777
  --squisq-block-props-divider: #e5e7eb;
8778
8778
  }
8779
- :is(.squisq-block-props-popover, .squisq-transition-picker, .squisq-transition-flyout)[data-theme=dark] {
8779
+ :is(.squisq-block-props-popover, .squisq-transition-picker, .squisq-transition-flyout, .squisq-timeline-item-menu)[data-theme=dark] {
8780
8780
  --squisq-block-props-surface: #1f2937;
8781
8781
  --squisq-block-props-surface-hover: #374151;
8782
8782
  --squisq-block-props-input: #111827;
@@ -8886,7 +8886,7 @@
8886
8886
  color: var(--squisq-theme-text, #1f2937);
8887
8887
  background: var(--squisq-theme-bg, #fff);
8888
8888
  box-shadow: 0 2px 14px rgba(0, 0, 0, 0.12);
8889
- font-family: var(--squisq-theme-body-font, inherit);
8889
+ font-family: var(--squisq-theme-body-font, var(--squisq-write-body-font, inherit));
8890
8890
  font-size: var(--squisq-write-text-size, inherit);
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;
@@ -8990,7 +8990,7 @@
8990
8990
  .squisq-wysiwyg-editor h4,
8991
8991
  .squisq-wysiwyg-editor h5,
8992
8992
  .squisq-wysiwyg-editor h6 {
8993
- font-family: var(--squisq-theme-title-font, var(--squisq-theme-body-font, inherit));
8993
+ font-family: var( --squisq-theme-title-font, var( --squisq-write-header-font, var(--squisq-theme-body-font, var(--squisq-write-body-font, inherit)) ) );
8994
8994
  }
8995
8995
  .squisq-wysiwyg-editor h1 {
8996
8996
  font-size: 2em;
@@ -10375,6 +10375,36 @@
10375
10375
  min-width: 0;
10376
10376
  flex: 1;
10377
10377
  }
10378
+ .squisq-media-bin-download {
10379
+ width: 24px;
10380
+ height: 24px;
10381
+ display: inline-flex;
10382
+ align-items: center;
10383
+ justify-content: center;
10384
+ flex: 0 0 auto;
10385
+ padding: 0;
10386
+ border: 1px solid transparent;
10387
+ border-radius: 4px;
10388
+ background: transparent;
10389
+ color: #4b5563;
10390
+ cursor: pointer;
10391
+ font: inherit;
10392
+ font-size: 16px;
10393
+ line-height: 1;
10394
+ }
10395
+ .squisq-media-bin-download:hover {
10396
+ border-color: #d1d5db;
10397
+ background: #e5e7eb;
10398
+ }
10399
+ .squisq-media-bin-download:focus-visible {
10400
+ border-color: #93c5fd;
10401
+ outline: 2px solid #93c5fd;
10402
+ outline-offset: 1px;
10403
+ }
10404
+ .squisq-media-bin-download:disabled {
10405
+ cursor: default;
10406
+ opacity: 0.5;
10407
+ }
10378
10408
  .squisq-media-bin-name {
10379
10409
  overflow: hidden;
10380
10410
  text-overflow: ellipsis;
@@ -10501,6 +10531,15 @@
10501
10531
  .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-size {
10502
10532
  color: #6b7280;
10503
10533
  }
10534
+ .squisq-media-bin--dark .squisq-media-bin-download,
10535
+ .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-download {
10536
+ color: #d1d5db;
10537
+ }
10538
+ .squisq-media-bin--dark .squisq-media-bin-download:hover,
10539
+ .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-download:hover {
10540
+ border-color: #4b5563;
10541
+ background: #374151;
10542
+ }
10504
10543
  .squisq-media-bin--dark .squisq-media-bin-unused-badge,
10505
10544
  .squisq-editor-shell[data-theme=dark] .squisq-media-bin .squisq-media-bin-unused-badge {
10506
10545
  background: #78350f;
@@ -11823,6 +11862,9 @@
11823
11862
  .squisq-timeline-video-title {
11824
11863
  font-weight: 600;
11825
11864
  }
11865
+ .squisq-timeline-composition-panel .squisq-preview-controls {
11866
+ padding-left: 0;
11867
+ }
11826
11868
  .squisq-timeline-video-label {
11827
11869
  min-width: 0;
11828
11870
  overflow: hidden;
@@ -11954,8 +11996,9 @@
11954
11996
  }
11955
11997
  .squisq-timeline-scroll {
11956
11998
  flex: 1;
11957
- overflow-x: auto;
11958
- overflow-y: hidden;
11999
+ overflow: auto;
12000
+ scrollbar-gutter: stable;
12001
+ overscroll-behavior: contain;
11959
12002
  padding: 8px 0 0;
11960
12003
  min-width: 0;
11961
12004
  min-height: 0;
@@ -12009,7 +12052,14 @@
12009
12052
  }
12010
12053
  .squisq-timeline-row--media {
12011
12054
  height: 26px;
12012
- margin-bottom: 0;
12055
+ margin: 0;
12056
+ flex: 0 0 26px;
12057
+ }
12058
+ .squisq-timeline-media-tracks {
12059
+ display: flex;
12060
+ flex: 0 0 auto;
12061
+ flex-direction: column;
12062
+ gap: 4px;
12013
12063
  }
12014
12064
  .squisq-timeline-block {
12015
12065
  position: absolute;
@@ -12059,6 +12109,55 @@
12059
12109
  border-radius: 3px;
12060
12110
  padding: 0 4px;
12061
12111
  }
12112
+ .squisq-timeline-item-menu-trigger {
12113
+ position: absolute;
12114
+ top: 50%;
12115
+ right: 8px;
12116
+ z-index: 4;
12117
+ display: inline-flex;
12118
+ align-items: center;
12119
+ justify-content: center;
12120
+ width: 22px;
12121
+ height: 22px;
12122
+ padding: 0;
12123
+ translate: 0 -50%;
12124
+ border: 1px solid rgba(107, 114, 128, 0.45);
12125
+ border-radius: 5px;
12126
+ background: rgba(255, 255, 255, 0.92);
12127
+ color: #374151;
12128
+ font: 700 15px/1 var(--squisq-ux-font, system-ui, sans-serif);
12129
+ cursor: pointer;
12130
+ opacity: 0;
12131
+ pointer-events: none;
12132
+ }
12133
+ .squisq-timeline-block:hover .squisq-timeline-item-menu-trigger,
12134
+ .squisq-timeline-block--active .squisq-timeline-item-menu-trigger,
12135
+ .squisq-timeline-clip:hover .squisq-timeline-item-menu-trigger,
12136
+ .squisq-timeline-item-menu-trigger:focus-visible,
12137
+ .squisq-timeline-item-menu-trigger[aria-expanded=true] {
12138
+ opacity: 1;
12139
+ pointer-events: auto;
12140
+ }
12141
+ .squisq-timeline-item-menu-trigger:hover,
12142
+ .squisq-timeline-item-menu-trigger:focus-visible {
12143
+ border-color: var(--squisq-outline-accent, #6c5ce7);
12144
+ outline: none;
12145
+ }
12146
+ .squisq-timeline-item-menu-trigger--clip {
12147
+ right: 6px;
12148
+ width: 18px;
12149
+ height: 18px;
12150
+ border-color: rgba(255, 255, 255, 0.55);
12151
+ background: rgba(15, 23, 42, 0.62);
12152
+ color: #ffffff;
12153
+ font-size: 13px;
12154
+ }
12155
+ @media (hover: none) {
12156
+ .squisq-timeline-item-menu-trigger {
12157
+ opacity: 1;
12158
+ pointer-events: auto;
12159
+ }
12160
+ }
12062
12161
  .squisq-timeline-clip {
12063
12162
  position: absolute;
12064
12163
  top: 0;
@@ -12079,6 +12178,35 @@
12079
12178
  .squisq-timeline-clip--video {
12080
12179
  background: #2b6cb0;
12081
12180
  }
12181
+ .squisq-timeline-video-filmstrip {
12182
+ position: absolute;
12183
+ inset: 0;
12184
+ z-index: 0;
12185
+ display: flex;
12186
+ pointer-events: none;
12187
+ background: #1e3a5f;
12188
+ }
12189
+ .squisq-timeline-video-filmstrip video {
12190
+ display: block;
12191
+ min-width: 0;
12192
+ flex: 1 1 0;
12193
+ height: 100%;
12194
+ border-right: 1px solid rgba(255, 255, 255, 0.18);
12195
+ object-fit: cover;
12196
+ opacity: 0.78;
12197
+ }
12198
+ .squisq-timeline-video-filmstrip video:last-child {
12199
+ border-right: 0;
12200
+ }
12201
+ .squisq-timeline-clip--video .squisq-timeline-clip-label {
12202
+ position: relative;
12203
+ z-index: 2;
12204
+ max-width: calc(100% - 4px);
12205
+ padding: 1px 4px;
12206
+ border-radius: 3px;
12207
+ background: rgba(15, 23, 42, 0.72);
12208
+ text-shadow: 0 1px 1px rgba(0, 0, 0, 0.7);
12209
+ }
12082
12210
  .squisq-timeline-clip--embedded {
12083
12211
  opacity: 0.8;
12084
12212
  border: 1px dashed rgba(255, 255, 255, 0.7);
@@ -12106,6 +12234,7 @@
12106
12234
  .squisq-timeline-edge {
12107
12235
  position: absolute;
12108
12236
  top: 0;
12237
+ z-index: 3;
12109
12238
  width: 7px;
12110
12239
  height: 100%;
12111
12240
  cursor: ew-resize;
@@ -12148,6 +12277,11 @@
12148
12277
  .squisq-editor-shell[data-theme=dark] .squisq-timeline-block-label {
12149
12278
  background: rgba(17, 24, 39, 0.82);
12150
12279
  }
12280
+ .squisq-editor-shell[data-theme=dark] .squisq-timeline-block .squisq-timeline-item-menu-trigger {
12281
+ border-color: #4b5563;
12282
+ background: rgba(17, 24, 39, 0.92);
12283
+ color: #e5e7eb;
12284
+ }
12151
12285
  .squisq-editor-shell[data-theme=dark] .squisq-timeline-zoom-button {
12152
12286
  border-color: #374151;
12153
12287
  background: #111827;
@@ -12169,6 +12303,145 @@
12169
12303
  .squisq-editor-shell[data-theme=dark] .squisq-timeline-tick-label {
12170
12304
  color: #9ca3af;
12171
12305
  }
12306
+ .squisq-timeline-item-menu {
12307
+ box-sizing: border-box;
12308
+ width: 320px;
12309
+ max-width: calc(100vw - 16px);
12310
+ overflow: auto;
12311
+ color: var(--squisq-block-props-text);
12312
+ background: var(--squisq-block-props-surface);
12313
+ border: 1px solid var(--squisq-block-props-divider);
12314
+ border-radius: 10px;
12315
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.18), 0 3px 8px rgba(0, 0, 0, 0.1);
12316
+ font-family: var(--squisq-ux-font, system-ui, sans-serif);
12317
+ user-select: none;
12318
+ }
12319
+ .squisq-timeline-item-menu-header {
12320
+ display: flex;
12321
+ align-items: center;
12322
+ gap: 7px;
12323
+ min-width: 0;
12324
+ padding: 9px 12px;
12325
+ border-bottom: 1px solid var(--squisq-block-props-divider);
12326
+ }
12327
+ .squisq-timeline-item-menu-kind {
12328
+ flex: 0 0 auto;
12329
+ color: var(--squisq-block-props-muted);
12330
+ font-size: 10px;
12331
+ font-weight: 700;
12332
+ letter-spacing: 0.04em;
12333
+ text-transform: uppercase;
12334
+ }
12335
+ .squisq-timeline-item-menu-title {
12336
+ min-width: 0;
12337
+ overflow: hidden;
12338
+ color: var(--squisq-block-props-text);
12339
+ font-size: 12px;
12340
+ font-weight: 600;
12341
+ text-overflow: ellipsis;
12342
+ white-space: nowrap;
12343
+ }
12344
+ .squisq-timeline-item-menu-body {
12345
+ display: flex;
12346
+ flex-direction: column;
12347
+ gap: 10px;
12348
+ padding: 11px 12px 12px;
12349
+ }
12350
+ .squisq-timeline-item-menu-row,
12351
+ .squisq-timeline-item-menu-field,
12352
+ .squisq-timeline-item-menu-check {
12353
+ display: flex;
12354
+ align-items: center;
12355
+ justify-content: space-between;
12356
+ gap: 10px;
12357
+ margin: 0;
12358
+ }
12359
+ .squisq-timeline-item-menu-check {
12360
+ justify-content: flex-start;
12361
+ color: var(--squisq-block-props-text);
12362
+ font-size: 12px;
12363
+ cursor: pointer;
12364
+ }
12365
+ .squisq-timeline-item-menu-check input {
12366
+ accent-color: var(--squisq-block-props-accent, #6366f1);
12367
+ }
12368
+ .squisq-timeline-item-menu-hint {
12369
+ margin: -5px 0 0 24px;
12370
+ color: var(--squisq-block-props-quiet);
12371
+ font-size: 10px;
12372
+ line-height: 1.35;
12373
+ }
12374
+ .squisq-timeline-item-menu-label {
12375
+ flex: 0 0 auto;
12376
+ color: var(--squisq-block-props-muted);
12377
+ font-size: 11px;
12378
+ font-weight: 600;
12379
+ }
12380
+ .squisq-timeline-item-menu-number {
12381
+ display: inline-flex;
12382
+ align-items: center;
12383
+ gap: 6px;
12384
+ }
12385
+ .squisq-timeline-item-menu-number input,
12386
+ .squisq-timeline-item-menu-field select {
12387
+ box-sizing: border-box;
12388
+ min-width: 0;
12389
+ padding: 5px 7px;
12390
+ color: var(--squisq-block-props-text);
12391
+ background: var(--squisq-block-props-input);
12392
+ border: 1px solid var(--squisq-block-props-border);
12393
+ border-radius: 5px;
12394
+ font: inherit;
12395
+ font-size: 12px;
12396
+ outline: none;
12397
+ }
12398
+ .squisq-timeline-item-menu-number input {
12399
+ width: 78px;
12400
+ }
12401
+ .squisq-timeline-item-menu-field select {
12402
+ max-width: 205px;
12403
+ }
12404
+ .squisq-timeline-item-menu-number input:focus,
12405
+ .squisq-timeline-item-menu-field select:focus {
12406
+ border-color: var(--squisq-block-props-accent, #6366f1);
12407
+ }
12408
+ .squisq-timeline-item-menu-number input:disabled {
12409
+ opacity: 0.55;
12410
+ }
12411
+ .squisq-timeline-item-menu-number > span {
12412
+ color: var(--squisq-block-props-quiet);
12413
+ font-size: 11px;
12414
+ }
12415
+ .squisq-timeline-item-menu-row .squisq-transition-picker-trigger-label {
12416
+ display: none;
12417
+ }
12418
+ .squisq-timeline-item-menu-segments {
12419
+ display: inline-flex;
12420
+ overflow: hidden;
12421
+ border: 1px solid var(--squisq-block-props-border);
12422
+ border-radius: 6px;
12423
+ }
12424
+ .squisq-timeline-item-menu-segments button {
12425
+ padding: 5px 8px;
12426
+ color: var(--squisq-block-props-muted);
12427
+ background: var(--squisq-block-props-surface);
12428
+ border: 0;
12429
+ border-right: 1px solid var(--squisq-block-props-border);
12430
+ font: inherit;
12431
+ font-size: 11px;
12432
+ cursor: pointer;
12433
+ }
12434
+ .squisq-timeline-item-menu-segments button:last-child {
12435
+ border-right: 0;
12436
+ }
12437
+ .squisq-timeline-item-menu-segments button:hover {
12438
+ background: var(--squisq-block-props-surface-hover);
12439
+ }
12440
+ .squisq-timeline-item-menu-segments button[aria-pressed=true] {
12441
+ color: var(--squisq-block-props-accent, #4338ca);
12442
+ background: color-mix(in oklch, var(--squisq-block-props-accent, #6366f1) 14%, transparent);
12443
+ font-weight: 600;
12444
+ }
12172
12445
  .squisq-editor-shell {
12173
12446
  --squisq-preview-accent: #6366f1;
12174
12447
  --squisq-preview-accent-muted: #94a3b8;
@@ -13486,22 +13759,86 @@
13486
13759
  padding: 2px 6px;
13487
13760
  }
13488
13761
  .squisq-transform-menu-action {
13762
+ box-sizing: border-box;
13489
13763
  display: flex;
13490
- flex-direction: column;
13491
- align-items: flex-start;
13492
- gap: 2px;
13764
+ align-items: center;
13765
+ gap: 8px;
13493
13766
  width: 100%;
13494
13767
  padding: 6px;
13495
13768
  font: inherit;
13496
13769
  text-align: left;
13497
- background: transparent;
13498
- border: none;
13770
+ background: var(--squisq-input-bg, #fff);
13771
+ border: 1px solid var(--squisq-border, #d1d5db);
13499
13772
  border-radius: 4px;
13773
+ box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
13500
13774
  color: inherit;
13501
13775
  cursor: pointer;
13502
13776
  }
13503
13777
  .squisq-transform-menu-action:hover:not(:disabled) {
13504
13778
  background: var(--squisq-row-hover, #f3f4f6);
13779
+ border-color: var(--squisq-accent, #4f46e5);
13780
+ }
13781
+ .squisq-transform-menu-action:focus-visible {
13782
+ border-color: var(--squisq-accent, #4f46e5);
13783
+ outline: 2px solid var(--squisq-accent, #4f46e5);
13784
+ outline-offset: 1px;
13785
+ }
13786
+ .squisq-transform-menu-action:active:not(:disabled) {
13787
+ box-shadow: none;
13788
+ transform: translateY(1px);
13789
+ }
13790
+ .squisq-transform-menu-action--current {
13791
+ border-color: var(--squisq-accent, #4f46e5);
13792
+ background: color-mix(in oklch, var(--squisq-accent, #4f46e5) 8%, var(--squisq-input-bg, #fff));
13793
+ }
13794
+ .squisq-transform-menu-action-icon {
13795
+ display: inline-flex;
13796
+ align-items: center;
13797
+ justify-content: center;
13798
+ flex: 0 0 auto;
13799
+ width: 24px;
13800
+ height: 24px;
13801
+ color: #111827;
13802
+ font-size: 15px;
13803
+ line-height: 1;
13804
+ text-align: center;
13805
+ }
13806
+ .squisq-transform-menu-action-icon > svg {
13807
+ width: 22px;
13808
+ height: 22px;
13809
+ overflow: visible;
13810
+ fill: none;
13811
+ stroke: currentColor;
13812
+ stroke-width: 1.65;
13813
+ stroke-linecap: round;
13814
+ stroke-linejoin: round;
13815
+ }
13816
+ .squisq-transform-menu-action-icon > i {
13817
+ line-height: 1;
13818
+ }
13819
+ .squisq-transform-menu-action-copy {
13820
+ display: flex;
13821
+ min-width: 0;
13822
+ flex: 1;
13823
+ flex-direction: column;
13824
+ align-items: flex-start;
13825
+ gap: 2px;
13826
+ }
13827
+ .squisq-transform-menu-action-heading {
13828
+ display: flex;
13829
+ align-items: baseline;
13830
+ gap: 6px;
13831
+ }
13832
+ .squisq-transform-menu-current-badge {
13833
+ padding: 1px 5px;
13834
+ color: var(--squisq-accent, #4f46e5);
13835
+ border: 1px solid currentColor;
13836
+ border-radius: 999px;
13837
+ font-size: 9px;
13838
+ font-weight: 700;
13839
+ letter-spacing: 0.02em;
13840
+ line-height: 1.35;
13841
+ white-space: nowrap;
13505
13842
  }
13506
13843
  .squisq-transform-menu-action:disabled {
13507
13844
  opacity: 0.5;
@@ -13519,6 +13856,7 @@
13519
13856
  display: flex;
13520
13857
  align-items: center;
13521
13858
  gap: 4px;
13859
+ margin-top: 2px;
13522
13860
  padding: 0 6px 6px;
13523
13861
  }
13524
13862
  .squisq-transform-menu-width {
@@ -13569,8 +13907,11 @@
13569
13907
  .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-state {
13570
13908
  border-bottom-color: #374151;
13571
13909
  }
13910
+ .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-action-icon {
13911
+ color: #fff;
13912
+ }
13572
13913
  .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-action:hover:not(:disabled) {
13573
- background: #374151;
13914
+ background: #4b5563;
13574
13915
  }
13575
13916
  .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-width,
13576
13917
  .squisq-editor-shell[data-theme=dark] .squisq-transform-menu-width-input {