@sequent-org/moodboard 1.4.54 → 1.4.56
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/package.json +1 -1
- package/src/core/ApiClient.js +17 -1
- package/src/core/SaveManager.js +82 -4
- package/src/initNoBundler.js +1 -1
- package/src/moodboard/integration/MoodBoardEventBindings.js +16 -0
- package/src/tools/object-tools/TextTool.js +9 -3
- package/src/tools/object-tools/selection/TextEditorInteractionController.js +61 -0
- package/src/ui/HtmlTextLayer.js +6 -0
- package/src/ui/TextPropertiesPanel.js +5 -1
- package/src/ui/chat/{Model3dBoardSkeleton.js → BoardSkeleton.js} +19 -11
- package/src/ui/chat/ChatWindow.js +83 -13
- package/src/ui/styles/chat.css +46 -33
- package/src/ui/styles/panels.css +235 -16
- package/src/ui/styles/workspace.css +1 -1
- package/src/ui/text-properties/TextFormatControls.js +223 -24
- package/src/ui/text-properties/TextPropertiesPanelBindings.js +68 -2
- package/src/ui/text-properties/TextPropertiesPanelRenderer.js +86 -31
- package/src/utils/styleLoader.js +1 -1
package/src/ui/styles/chat.css
CHANGED
|
@@ -692,29 +692,25 @@
|
|
|
692
692
|
overflow: hidden;
|
|
693
693
|
}
|
|
694
694
|
|
|
695
|
-
/* Overlay-заглушка на полотне доски во время генерации
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
100% { background-position: -100% 0; }
|
|
699
|
-
}
|
|
700
|
-
|
|
695
|
+
/* Overlay-заглушка (скелетон) на полотне доски во время генерации изображения.
|
|
696
|
+
Тот же вид, что у скелетона 3D/видео: белая карточка, бегущий блик,
|
|
697
|
+
пульсирующая иконка. Появление — слайдом (нужно для раскладки батча). */
|
|
701
698
|
.moodboard-chat__pending-overlay {
|
|
702
699
|
position: fixed;
|
|
700
|
+
box-sizing: border-box;
|
|
703
701
|
--moodboard-chat-board-animation-ms: 520ms;
|
|
704
702
|
--moodboard-chat-pending-enter-x: 320px;
|
|
705
|
-
background:
|
|
706
|
-
90deg,
|
|
707
|
-
#5F7179 0%,
|
|
708
|
-
#7A8D96 50%,
|
|
709
|
-
#5F7179 100%
|
|
710
|
-
);
|
|
711
|
-
background-size: 200% 100%;
|
|
712
|
-
animation: moodboard-pending-shimmer 5.76s linear infinite;
|
|
703
|
+
background: #ffffff;
|
|
713
704
|
border-radius: 12px;
|
|
714
|
-
box-shadow:
|
|
705
|
+
box-shadow:
|
|
706
|
+
0 0 0 1px rgba(17, 24, 39, 0.08),
|
|
707
|
+
0 8px 24px rgba(15, 23, 42, 0.10);
|
|
715
708
|
overflow: hidden;
|
|
716
709
|
pointer-events: none;
|
|
717
710
|
z-index: 10;
|
|
711
|
+
display: flex;
|
|
712
|
+
align-items: center;
|
|
713
|
+
justify-content: center;
|
|
718
714
|
transition:
|
|
719
715
|
left var(--moodboard-chat-board-animation-ms) cubic-bezier(0.22, 1, 0.36, 1),
|
|
720
716
|
transform var(--moodboard-chat-board-animation-ms) cubic-bezier(0.22, 1, 0.36, 1),
|
|
@@ -722,6 +718,21 @@
|
|
|
722
718
|
will-change: transform, opacity;
|
|
723
719
|
}
|
|
724
720
|
|
|
721
|
+
/* Бегущий блик по поверхности скелетона */
|
|
722
|
+
.moodboard-chat__pending-overlay::after {
|
|
723
|
+
content: '';
|
|
724
|
+
position: absolute;
|
|
725
|
+
inset: 0;
|
|
726
|
+
background: linear-gradient(
|
|
727
|
+
100deg,
|
|
728
|
+
transparent 30%,
|
|
729
|
+
rgba(17, 24, 39, 0.07) 50%,
|
|
730
|
+
transparent 70%
|
|
731
|
+
);
|
|
732
|
+
background-size: 220% 100%;
|
|
733
|
+
animation: moodboard-chat-skeleton-sweep 1.6s linear infinite;
|
|
734
|
+
}
|
|
735
|
+
|
|
725
736
|
.moodboard-chat__pending-overlay--enter {
|
|
726
737
|
opacity: 0;
|
|
727
738
|
transform: translateX(var(--moodboard-chat-pending-enter-x));
|
|
@@ -732,17 +743,19 @@
|
|
|
732
743
|
transform: translateX(0);
|
|
733
744
|
}
|
|
734
745
|
|
|
735
|
-
.moodboard-chat__pending-
|
|
736
|
-
position:
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
+
.moodboard-chat__pending-overlay-icon {
|
|
747
|
+
position: relative;
|
|
748
|
+
z-index: 1;
|
|
749
|
+
width: 34%;
|
|
750
|
+
max-width: 72px;
|
|
751
|
+
color: #9CA3AF;
|
|
752
|
+
animation: moodboard-chat-skeleton-pulse 1.8s ease-in-out infinite;
|
|
753
|
+
}
|
|
754
|
+
|
|
755
|
+
.moodboard-chat__pending-overlay-icon svg {
|
|
756
|
+
width: 100%;
|
|
757
|
+
height: 100%;
|
|
758
|
+
display: block;
|
|
746
759
|
}
|
|
747
760
|
|
|
748
761
|
/* ── Прогресс генерации 3D-модели в композере ───────────────────────── */
|
|
@@ -845,8 +858,8 @@
|
|
|
845
858
|
display: none;
|
|
846
859
|
}
|
|
847
860
|
|
|
848
|
-
/* ── Скелетон
|
|
849
|
-
.moodboard-
|
|
861
|
+
/* ── Скелетон генерируемого объекта на доске (3D / изображение / видео) ─── */
|
|
862
|
+
.moodboard-chat__board-skeleton {
|
|
850
863
|
position: fixed;
|
|
851
864
|
box-sizing: border-box;
|
|
852
865
|
background: #ffffff;
|
|
@@ -869,7 +882,7 @@
|
|
|
869
882
|
}
|
|
870
883
|
|
|
871
884
|
/* Бегущий блик по поверхности скелетона */
|
|
872
|
-
.moodboard-
|
|
885
|
+
.moodboard-chat__board-skeleton::after {
|
|
873
886
|
content: '';
|
|
874
887
|
position: absolute;
|
|
875
888
|
inset: 0;
|
|
@@ -883,7 +896,7 @@
|
|
|
883
896
|
animation: moodboard-chat-skeleton-sweep 1.6s linear infinite;
|
|
884
897
|
}
|
|
885
898
|
|
|
886
|
-
.moodboard-
|
|
899
|
+
.moodboard-chat__board-skeleton-icon {
|
|
887
900
|
position: relative;
|
|
888
901
|
z-index: 1;
|
|
889
902
|
width: 34%;
|
|
@@ -892,18 +905,18 @@
|
|
|
892
905
|
animation: moodboard-chat-skeleton-pulse 1.8s ease-in-out infinite;
|
|
893
906
|
}
|
|
894
907
|
|
|
895
|
-
.moodboard-
|
|
908
|
+
.moodboard-chat__board-skeleton-icon svg {
|
|
896
909
|
width: 100%;
|
|
897
910
|
height: 100%;
|
|
898
911
|
display: block;
|
|
899
912
|
}
|
|
900
913
|
|
|
901
|
-
.moodboard-
|
|
914
|
+
.moodboard-chat__board-skeleton--enter {
|
|
902
915
|
opacity: 0;
|
|
903
916
|
transform: scale(0.92);
|
|
904
917
|
}
|
|
905
918
|
|
|
906
|
-
.moodboard-
|
|
919
|
+
.moodboard-chat__board-skeleton--entered {
|
|
907
920
|
opacity: 1;
|
|
908
921
|
transform: scale(1);
|
|
909
922
|
}
|
package/src/ui/styles/panels.css
CHANGED
|
@@ -195,7 +195,7 @@
|
|
|
195
195
|
flex-direction: row;
|
|
196
196
|
align-items: center;
|
|
197
197
|
gap: 8px;
|
|
198
|
-
padding:
|
|
198
|
+
padding: 0 22px;
|
|
199
199
|
background-color: #ffffff;
|
|
200
200
|
border: 1px solid #e0e0e0;
|
|
201
201
|
border-radius: 9999px;
|
|
@@ -206,6 +206,10 @@
|
|
|
206
206
|
height: 36px;
|
|
207
207
|
}
|
|
208
208
|
|
|
209
|
+
.text-properties-panel * {
|
|
210
|
+
max-height: 36px;
|
|
211
|
+
}
|
|
212
|
+
|
|
209
213
|
/* Frame properties toolbar — mirror image toolbar look */
|
|
210
214
|
.frame-properties-panel {
|
|
211
215
|
position: absolute;
|
|
@@ -604,18 +608,151 @@
|
|
|
604
608
|
|
|
605
609
|
.text-properties-panel .tpp-label--spaced { margin-left: 6px; }
|
|
606
610
|
|
|
607
|
-
.text-properties-panel .font-select
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
+
.text-properties-panel .font-select-wrapper {
|
|
612
|
+
position: relative;
|
|
613
|
+
display: inline-block;
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
.text-properties-panel .font-select {
|
|
617
|
+
box-sizing: border-box;
|
|
618
|
+
min-width: 90px;
|
|
619
|
+
width: 90px;
|
|
620
|
+
height: 38px;
|
|
611
621
|
padding: 4px 8px;
|
|
612
622
|
font-size: 13px;
|
|
613
623
|
background-color: #fff;
|
|
624
|
+
border: none;
|
|
625
|
+
border-radius: 4px;
|
|
626
|
+
cursor: pointer;
|
|
627
|
+
display: flex;
|
|
628
|
+
align-items: center;
|
|
629
|
+
user-select: none;
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
.text-properties-panel .font-select:focus { outline: none; box-shadow: none; }
|
|
633
|
+
|
|
634
|
+
.text-properties-panel .font-select__label {
|
|
635
|
+
flex: 1;
|
|
636
|
+
overflow: hidden;
|
|
637
|
+
text-overflow: ellipsis;
|
|
638
|
+
white-space: nowrap;
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
.text-properties-panel .font-dropdown {
|
|
642
|
+
position: absolute;
|
|
643
|
+
top: calc(100% + 4px);
|
|
644
|
+
left: 0;
|
|
645
|
+
min-width: 180px;
|
|
646
|
+
max-height: 280px;
|
|
647
|
+
overflow-y: auto;
|
|
648
|
+
background: #fff;
|
|
649
|
+
border: 1px solid #E5E7EB;
|
|
650
|
+
border-radius: 8px;
|
|
651
|
+
box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1), 0 4px 10px rgba(0, 0, 0, 0.05);
|
|
652
|
+
padding: 4px;
|
|
653
|
+
display: none;
|
|
654
|
+
z-index: 10000;
|
|
655
|
+
scrollbar-width: thin;
|
|
656
|
+
scrollbar-color: transparent transparent;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.text-properties-panel .font-dropdown.is-open { display: block; }
|
|
660
|
+
|
|
661
|
+
.text-properties-panel .font-dropdown:hover {
|
|
662
|
+
scrollbar-color: rgba(170, 170, 170, 0.7) transparent;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
.text-properties-panel .font-dropdown::-webkit-scrollbar { width: 9px; }
|
|
666
|
+
.text-properties-panel .font-dropdown::-webkit-scrollbar-button {
|
|
667
|
+
display: none;
|
|
668
|
+
height: 0;
|
|
669
|
+
width: 0;
|
|
670
|
+
}
|
|
671
|
+
.text-properties-panel .font-dropdown::-webkit-scrollbar-track { background: transparent; }
|
|
672
|
+
.text-properties-panel .font-dropdown::-webkit-scrollbar-thumb {
|
|
673
|
+
background: transparent;
|
|
674
|
+
border-radius: 4px;
|
|
675
|
+
}
|
|
676
|
+
.text-properties-panel .font-dropdown:hover::-webkit-scrollbar-thumb {
|
|
677
|
+
background: rgba(170, 170, 170, 0.7);
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.text-properties-panel .font-dropdown__item {
|
|
681
|
+
display: block;
|
|
682
|
+
width: 100%;
|
|
683
|
+
padding: 6px 10px;
|
|
684
|
+
border: none;
|
|
685
|
+
background: transparent;
|
|
686
|
+
text-align: left;
|
|
687
|
+
font-size: 14px;
|
|
688
|
+
color: #111;
|
|
689
|
+
cursor: pointer;
|
|
690
|
+
border-radius: 4px;
|
|
691
|
+
white-space: nowrap;
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
.text-properties-panel .font-dropdown__item:hover {
|
|
695
|
+
background: #f3f4f6;
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
.text-properties-panel .font-dropdown__item.is-active {
|
|
699
|
+
background: #2563eb;
|
|
700
|
+
color: #fff;
|
|
701
|
+
}
|
|
702
|
+
.text-properties-panel .font-size-wrapper {
|
|
703
|
+
display: flex;
|
|
704
|
+
align-items: center;
|
|
705
|
+
position: relative;
|
|
706
|
+
border: none;
|
|
707
|
+
border-radius: 4px;
|
|
708
|
+
background-color: #fff;
|
|
709
|
+
height: 38px;
|
|
710
|
+
box-sizing: border-box;
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
.text-properties-panel .font-size-select {
|
|
714
|
+
outline: none;
|
|
715
|
+
height: 100%;
|
|
716
|
+
width: 32px;
|
|
717
|
+
border: none;
|
|
718
|
+
background: transparent;
|
|
719
|
+
appearance: none;
|
|
720
|
+
-webkit-appearance: none;
|
|
721
|
+
-moz-appearance: none;
|
|
722
|
+
padding: 0 4px 0 8px;
|
|
723
|
+
font-size: 13px;
|
|
614
724
|
cursor: pointer;
|
|
615
725
|
}
|
|
616
726
|
|
|
617
|
-
.text-properties-panel .font-
|
|
618
|
-
|
|
727
|
+
.text-properties-panel .font-size-steppers {
|
|
728
|
+
display: flex;
|
|
729
|
+
flex-direction: column;
|
|
730
|
+
height: 100%;
|
|
731
|
+
width: 20px;
|
|
732
|
+
border-left: none;
|
|
733
|
+
}
|
|
734
|
+
|
|
735
|
+
.text-properties-panel .font-size-stepper {
|
|
736
|
+
flex: 1;
|
|
737
|
+
display: flex;
|
|
738
|
+
align-items: center;
|
|
739
|
+
justify-content: center;
|
|
740
|
+
background: transparent;
|
|
741
|
+
border: none;
|
|
742
|
+
padding: 0;
|
|
743
|
+
cursor: pointer;
|
|
744
|
+
color: #666;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
.text-properties-panel .font-size-stepper:hover {
|
|
748
|
+
background: #f5f5f5;
|
|
749
|
+
color: #333;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
.text-properties-panel .font-size-stepper--down {
|
|
753
|
+
border-bottom-right-radius: 4px;
|
|
754
|
+
margin-top: -2px;
|
|
755
|
+
}
|
|
619
756
|
|
|
620
757
|
.text-properties-panel .current-color-button,
|
|
621
758
|
.text-properties-panel .current-bgcolor-button {
|
|
@@ -654,19 +791,101 @@
|
|
|
654
791
|
color: #6155F5;
|
|
655
792
|
}
|
|
656
793
|
|
|
657
|
-
.text-properties-panel .tpp-
|
|
658
|
-
|
|
659
|
-
|
|
794
|
+
.text-properties-panel .tpp-list-btns {
|
|
795
|
+
display: flex;
|
|
796
|
+
gap: 2px;
|
|
797
|
+
align-items: center;
|
|
798
|
+
position: relative;
|
|
799
|
+
}
|
|
800
|
+
.text-properties-panel .tpp-list-btns svg {
|
|
801
|
+
width: 22px;
|
|
802
|
+
height: 22px;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
.text-properties-panel .tpp-list-modal {
|
|
806
|
+
max-height: none;
|
|
807
|
+
position: absolute;
|
|
808
|
+
top: calc(100% + 4px);
|
|
809
|
+
left: 0;
|
|
810
|
+
flex-direction: column;
|
|
811
|
+
gap: 2px;
|
|
812
|
+
background: #ffffff;
|
|
813
|
+
border: 1px solid #E5E7EB;
|
|
814
|
+
border-radius: 6px;
|
|
815
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.06);
|
|
816
|
+
padding: 4px;
|
|
817
|
+
z-index: 4000;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.text-properties-panel .tpp-list-modal-option {
|
|
821
|
+
display: flex;
|
|
822
|
+
align-items: center;
|
|
823
|
+
justify-content: center;
|
|
824
|
+
width: 28px;
|
|
825
|
+
height: 28px;
|
|
826
|
+
padding: 0;
|
|
827
|
+
border: none;
|
|
828
|
+
background: transparent;
|
|
660
829
|
border-radius: 4px;
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
830
|
+
cursor: pointer;
|
|
831
|
+
color: #374151;
|
|
832
|
+
transition: background 0.1s;
|
|
833
|
+
flex-shrink: 0;
|
|
834
|
+
}
|
|
835
|
+
|
|
836
|
+
.text-properties-panel .tpp-list-modal-option:hover {
|
|
837
|
+
background: #f3f4f6;
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.text-properties-panel .tpp-align-btns {
|
|
841
|
+
display: flex;
|
|
842
|
+
gap: 2px;
|
|
843
|
+
align-items: center;
|
|
844
|
+
position: relative;
|
|
845
|
+
}
|
|
846
|
+
|
|
847
|
+
.text-properties-panel .tpp-align-btns img,
|
|
848
|
+
.text-properties-panel .tpp-align-btns svg,
|
|
849
|
+
.text-properties-panel .tpp-align-modal img,
|
|
850
|
+
.text-properties-panel .tpp-align-modal svg {
|
|
851
|
+
width: 24px;
|
|
852
|
+
height: 24px;
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
.text-properties-panel .tpp-align-modal {
|
|
856
|
+
max-height: none;
|
|
857
|
+
position: absolute;
|
|
858
|
+
top: calc(100% + 4px);
|
|
859
|
+
left: 0;
|
|
860
|
+
flex-direction: column;
|
|
861
|
+
gap: 2px;
|
|
862
|
+
background: #ffffff;
|
|
863
|
+
border: 1px solid #E5E7EB;
|
|
864
|
+
border-radius: 6px;
|
|
865
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12), 0 1px 3px rgba(0, 0, 0, 0.06);
|
|
866
|
+
padding: 4px;
|
|
867
|
+
z-index: 4000;
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
.text-properties-panel .tpp-align-modal-option {
|
|
871
|
+
display: flex;
|
|
872
|
+
align-items: center;
|
|
873
|
+
justify-content: center;
|
|
874
|
+
width: 28px;
|
|
664
875
|
height: 28px;
|
|
876
|
+
padding: 0;
|
|
877
|
+
border: none;
|
|
878
|
+
background: transparent;
|
|
879
|
+
border-radius: 4px;
|
|
665
880
|
cursor: pointer;
|
|
666
|
-
|
|
881
|
+
color: #374151;
|
|
882
|
+
transition: background 0.1s;
|
|
883
|
+
flex-shrink: 0;
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
.text-properties-panel .tpp-align-modal-option:hover {
|
|
887
|
+
background: #f3f4f6;
|
|
667
888
|
}
|
|
668
|
-
.text-properties-panel .tpp-align-select { min-width: 86px; }
|
|
669
|
-
.text-properties-panel .tpp-list-select { min-width: 110px; }
|
|
670
889
|
|
|
671
890
|
.text-properties-panel .tpp-lh-slider {
|
|
672
891
|
width: 68px;
|
|
@@ -684,7 +684,7 @@
|
|
|
684
684
|
}
|
|
685
685
|
|
|
686
686
|
.text-properties-panel .font-select { min-width: 110px; }
|
|
687
|
-
.text-properties-panel .font-size-select { min-width:
|
|
687
|
+
.text-properties-panel .font-size-select { min-width: 32px; }
|
|
688
688
|
|
|
689
689
|
.text-properties-panel .current-color-button,
|
|
690
690
|
.text-properties-panel .current-bgcolor-button {
|