@alpaca-editor/core 1.0.4033 → 1.0.4037
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/dist/components/index.d.ts +1 -0
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/{editor/menubar → components/ui}/LanguageSelector.d.ts +1 -1
- package/dist/{editor/menubar → components/ui}/LanguageSelector.js +8 -8
- package/dist/components/ui/LanguageSelector.js.map +1 -0
- package/dist/components/ui/button.d.ts +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +1 -1
- package/dist/components/ui/dropdown-menu.js +2 -2
- package/dist/components/ui/dropdown-menu.js.map +1 -1
- package/dist/components/ui/sonner.js +3 -1
- package/dist/components/ui/sonner.js.map +1 -1
- package/dist/config/config.js +5 -5
- package/dist/config/config.js.map +1 -1
- package/dist/editor/ContentTree.d.ts +2 -1
- package/dist/editor/ContentTree.js +33 -9
- package/dist/editor/ContentTree.js.map +1 -1
- package/dist/editor/PictureEditor.js +2 -2
- package/dist/editor/PictureEditor.js.map +1 -1
- package/dist/editor/ScrollingContentTree.d.ts +2 -1
- package/dist/editor/ScrollingContentTree.js +2 -2
- package/dist/editor/ScrollingContentTree.js.map +1 -1
- package/dist/editor/Terminal.d.ts +2 -0
- package/dist/editor/Terminal.js +2 -2
- package/dist/editor/Terminal.js.map +1 -1
- package/dist/editor/ai/AgentHistory.d.ts +11 -0
- package/dist/editor/ai/AgentHistory.js +12 -0
- package/dist/editor/ai/AgentHistory.js.map +1 -0
- package/dist/editor/ai/Agents.js +187 -24
- package/dist/editor/ai/Agents.js.map +1 -1
- package/dist/editor/ai/AiResponseMessage.d.ts +2 -1
- package/dist/editor/ai/AiResponseMessage.js +6 -6
- package/dist/editor/ai/AiResponseMessage.js.map +1 -1
- package/dist/editor/ai/AiTerminal.d.ts +1 -0
- package/dist/editor/ai/AiTerminal.js +330 -43
- package/dist/editor/ai/AiTerminal.js.map +1 -1
- package/dist/editor/client/itemsRepository.js +19 -7
- package/dist/editor/client/itemsRepository.js.map +1 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js +48 -1
- package/dist/editor/field-types/InternalLinkFieldEditor.js.map +1 -1
- package/dist/editor/field-types/richtext/contextMenuFactory.js +1 -1
- package/dist/editor/field-types/richtext/contextMenuFactory.js.map +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js +1 -1
- package/dist/editor/menubar/ItemLanguageVersion.js.map +1 -1
- package/dist/editor/menubar/PageSelector.js +1 -1
- package/dist/editor/menubar/PageSelector.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js +1 -1
- package/dist/editor/page-editor-chrome/FieldActionIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js +2 -2
- package/dist/editor/page-editor-chrome/FieldEditedIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/FrameMenu.js +2 -2
- package/dist/editor/page-editor-chrome/FrameMenu.js.map +1 -1
- package/dist/editor/page-editor-chrome/InlineEditor.js +9 -9
- package/dist/editor/page-editor-chrome/InlineEditor.js.map +1 -1
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js +2 -2
- package/dist/editor/page-editor-chrome/LockedFieldIndicator.js.map +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.js +1 -1
- package/dist/editor/page-editor-chrome/PageEditorChrome.js.map +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js +1 -1
- package/dist/editor/page-editor-chrome/PictureEditorOverlay.js.map +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZone.js +1 -1
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js +2 -2
- package/dist/editor/page-editor-chrome/PlaceholderDropZones.js.map +1 -1
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js +12 -12
- package/dist/editor/page-editor-chrome/useInlineAICompletion.js.map +1 -1
- package/dist/editor/page-viewer/EditorForm.js +1 -1
- package/dist/editor/page-viewer/EditorForm.js.map +1 -1
- package/dist/editor/page-viewer/MiniMap.js +10 -11
- package/dist/editor/page-viewer/MiniMap.js.map +1 -1
- package/dist/editor/page-viewer/PageViewer.js +2 -2
- package/dist/editor/page-viewer/PageViewer.js.map +1 -1
- package/dist/editor/page-viewer/PageViewerFrame.js +4 -4
- package/dist/editor/page-viewer/PageViewerFrame.js.map +1 -1
- package/dist/editor/page-viewer/pageViewContext.d.ts +2 -2
- package/dist/editor/page-viewer/pageViewContext.js +11 -14
- package/dist/editor/page-viewer/pageViewContext.js.map +1 -1
- package/dist/editor/services/agentService.d.ts +21 -1
- package/dist/editor/services/agentService.js +101 -0
- package/dist/editor/services/agentService.js.map +1 -1
- package/dist/editor/services/aiService.d.ts +1 -1
- package/dist/editor/services/aiService.js +1 -2
- package/dist/editor/services/aiService.js.map +1 -1
- package/dist/editor/sidebar/GraphQL.js +5 -6
- package/dist/editor/sidebar/GraphQL.js.map +1 -1
- package/dist/editor/sidebar/MainContentTree.d.ts +2 -1
- package/dist/editor/sidebar/MainContentTree.js +9 -5
- package/dist/editor/sidebar/MainContentTree.js.map +1 -1
- package/dist/editor/ui/Icons.d.ts +5 -0
- package/dist/editor/ui/Icons.js +3 -0
- package/dist/editor/ui/Icons.js.map +1 -1
- package/dist/editor/ui/ItemNameDialogNew.js +26 -14
- package/dist/editor/ui/ItemNameDialogNew.js.map +1 -1
- package/dist/editor/ui/PerfectTree.js +54 -2
- package/dist/editor/ui/PerfectTree.js.map +1 -1
- package/dist/editor/views/CompareView.js +3 -3
- package/dist/editor/views/CompareView.js.map +1 -1
- package/dist/editor/views/EditView.js +1 -1
- package/dist/editor/views/EditView.js.map +1 -1
- package/dist/editor/views/ItemEditor.js +1 -1
- package/dist/editor/views/ItemEditor.js.map +1 -1
- package/dist/index.d.ts +3 -4
- package/dist/index.js +3 -4
- package/dist/index.js.map +1 -1
- package/dist/page-wizard/steps/ContentStep.js +5 -5
- package/dist/page-wizard/steps/ContentStep.js.map +1 -1
- package/dist/page-wizard/steps/FindItemsStep.js +1 -1
- package/dist/page-wizard/steps/ImagesStep.js +1 -1
- package/dist/page-wizard/steps/ImagesStep.js.map +1 -1
- package/dist/page-wizard/steps/LayoutStep.js +1 -1
- package/dist/page-wizard/steps/LayoutStep.js.map +1 -1
- package/dist/page-wizard/steps/MetaDataStep.js +1 -1
- package/dist/page-wizard/steps/MetaDataStep.js.map +1 -1
- package/dist/page-wizard/steps/SelectStep.js +1 -1
- package/dist/page-wizard/steps/StructureStep.js +28 -11
- package/dist/page-wizard/steps/StructureStep.js.map +1 -1
- package/dist/page-wizard/steps/TranslateStep.d.ts +1 -0
- package/dist/page-wizard/steps/TranslateStep.js +67 -73
- package/dist/page-wizard/steps/TranslateStep.js.map +1 -1
- package/dist/revision.d.ts +2 -2
- package/dist/revision.js +2 -2
- package/dist/splash-screen/NewPage.js +1 -1
- package/dist/splash-screen/NewPage.js.map +1 -1
- package/dist/splash-screen/OpenPage.js +1 -1
- package/dist/splash-screen/OpenPage.js.map +1 -1
- package/dist/styles.css +71 -8
- package/package.json +1 -1
- package/src/components/index.ts +1 -0
- package/src/{editor/menubar → components/ui}/LanguageSelector.tsx +12 -12
- package/src/components/ui/dropdown-menu.tsx +3 -1
- package/src/components/ui/sonner.tsx +5 -1
- package/src/config/config.tsx +4 -3
- package/src/editor/ContentTree.tsx +41 -12
- package/src/editor/PictureEditor.tsx +2 -2
- package/src/editor/ScrollingContentTree.tsx +3 -0
- package/src/editor/Terminal.tsx +16 -7
- package/src/editor/ai/AgentHistory.tsx +85 -0
- package/src/editor/ai/Agents.tsx +256 -88
- package/src/editor/ai/AiResponseMessage.tsx +25 -11
- package/src/editor/ai/AiTerminal.tsx +571 -73
- package/src/editor/client/itemsRepository.ts +29 -12
- package/src/editor/field-types/InternalLinkFieldEditor.tsx +52 -1
- package/src/editor/field-types/richtext/components/SimpleRichTextEditor.css +64 -0
- package/src/editor/field-types/richtext/contextMenuFactory.tsx +7 -8
- package/src/editor/menubar/ItemLanguageVersion.tsx +1 -1
- package/src/editor/menubar/PageSelector.tsx +1 -0
- package/src/editor/page-editor-chrome/FieldActionIndicator.tsx +1 -1
- package/src/editor/page-editor-chrome/FieldEditedIndicator.tsx +3 -3
- package/src/editor/page-editor-chrome/FrameMenu.tsx +2 -2
- package/src/editor/page-editor-chrome/InlineEditor.tsx +9 -12
- package/src/editor/page-editor-chrome/LockedFieldIndicator.tsx +3 -3
- package/src/editor/page-editor-chrome/PageEditorChrome.tsx +3 -3
- package/src/editor/page-editor-chrome/PictureEditorOverlay.tsx +1 -1
- package/src/editor/page-editor-chrome/PlaceholderDropZone.tsx +1 -1
- package/src/editor/page-editor-chrome/PlaceholderDropZones.tsx +2 -2
- package/src/editor/page-editor-chrome/useInlineAICompletion.tsx +12 -18
- package/src/editor/page-viewer/EditorForm.tsx +1 -1
- package/src/editor/page-viewer/MiniMap.tsx +10 -11
- package/src/editor/page-viewer/PageViewer.tsx +8 -3
- package/src/editor/page-viewer/PageViewerFrame.tsx +4 -4
- package/src/editor/page-viewer/pageViewContext.ts +71 -66
- package/src/editor/services/agentService.ts +129 -1
- package/src/editor/services/aiService.ts +2 -4
- package/src/editor/sidebar/GraphQL.tsx +16 -15
- package/src/editor/sidebar/MainContentTree.tsx +12 -4
- package/src/editor/ui/Icons.tsx +35 -0
- package/src/editor/ui/ItemNameDialogNew.tsx +29 -13
- package/src/editor/ui/PerfectTree.tsx +70 -4
- package/src/editor/views/CompareView.tsx +3 -3
- package/src/editor/views/EditView.tsx +1 -1
- package/src/editor/views/ItemEditor.tsx +1 -1
- package/src/index.ts +10 -4
- package/src/page-wizard/steps/ContentStep.tsx +5 -5
- package/src/page-wizard/steps/FindItemsStep.tsx +1 -1
- package/src/page-wizard/steps/ImagesStep.tsx +1 -1
- package/src/page-wizard/steps/LayoutStep.tsx +1 -1
- package/src/page-wizard/steps/MetaDataStep.tsx +1 -1
- package/src/page-wizard/steps/SelectStep.tsx +1 -1
- package/src/page-wizard/steps/StructureStep.tsx +41 -17
- package/src/page-wizard/steps/TranslateStep.tsx +326 -222
- package/src/revision.ts +2 -2
- package/src/splash-screen/NewPage.tsx +1 -0
- package/src/splash-screen/OpenPage.tsx +1 -0
- package/dist/components/SimpleLanguageSelector.d.ts +0 -10
- package/dist/components/SimpleLanguageSelector.js +0 -59
- package/dist/components/SimpleLanguageSelector.js.map +0 -1
- package/dist/editor/menubar/LanguageSelector.js.map +0 -1
- package/src/components/SimpleLanguageSelector.tsx +0 -113
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OpenPage.js","sourceRoot":"","sources":["../../src/splash-screen/OpenPage.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"OpenPage.js","sourceRoot":"","sources":["../../src/splash-screen/OpenPage.tsx"],"names":[],"mappings":"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"}
|
package/dist/styles.css
CHANGED
|
@@ -85,6 +85,7 @@
|
|
|
85
85
|
--color-white: #fff;
|
|
86
86
|
--spacing: 0.25rem;
|
|
87
87
|
--breakpoint-xl: 80rem;
|
|
88
|
+
--container-md: 28rem;
|
|
88
89
|
--container-lg: 32rem;
|
|
89
90
|
--text-xs: 0.75rem;
|
|
90
91
|
--text-xs--line-height: calc(1 / 0.75);
|
|
@@ -292,9 +293,6 @@
|
|
|
292
293
|
.bottom-2 {
|
|
293
294
|
bottom: calc(var(--spacing) * 2);
|
|
294
295
|
}
|
|
295
|
-
.bottom-8 {
|
|
296
|
-
bottom: calc(var(--spacing) * 8);
|
|
297
|
-
}
|
|
298
296
|
.-left-1\.5 {
|
|
299
297
|
left: calc(var(--spacing) * -1.5);
|
|
300
298
|
}
|
|
@@ -382,6 +380,9 @@
|
|
|
382
380
|
.mx-3 {
|
|
383
381
|
margin-inline: calc(var(--spacing) * 3);
|
|
384
382
|
}
|
|
383
|
+
.mx-4 {
|
|
384
|
+
margin-inline: calc(var(--spacing) * 4);
|
|
385
|
+
}
|
|
385
386
|
.mx-6 {
|
|
386
387
|
margin-inline: calc(var(--spacing) * 6);
|
|
387
388
|
}
|
|
@@ -556,6 +557,10 @@
|
|
|
556
557
|
width: calc(var(--spacing) * 2.5);
|
|
557
558
|
height: calc(var(--spacing) * 2.5);
|
|
558
559
|
}
|
|
560
|
+
.size-3 {
|
|
561
|
+
width: calc(var(--spacing) * 3);
|
|
562
|
+
height: calc(var(--spacing) * 3);
|
|
563
|
+
}
|
|
559
564
|
.size-3\.5 {
|
|
560
565
|
width: calc(var(--spacing) * 3.5);
|
|
561
566
|
height: calc(var(--spacing) * 3.5);
|
|
@@ -620,12 +625,12 @@
|
|
|
620
625
|
.h-12 {
|
|
621
626
|
height: calc(var(--spacing) * 12);
|
|
622
627
|
}
|
|
628
|
+
.h-15 {
|
|
629
|
+
height: calc(var(--spacing) * 15);
|
|
630
|
+
}
|
|
623
631
|
.h-16 {
|
|
624
632
|
height: calc(var(--spacing) * 16);
|
|
625
633
|
}
|
|
626
|
-
.h-20 {
|
|
627
|
-
height: calc(var(--spacing) * 20);
|
|
628
|
-
}
|
|
629
634
|
.h-23 {
|
|
630
635
|
height: calc(var(--spacing) * 23);
|
|
631
636
|
}
|
|
@@ -674,8 +679,8 @@
|
|
|
674
679
|
.h-\[160px\] {
|
|
675
680
|
height: 160px;
|
|
676
681
|
}
|
|
677
|
-
.h-\[
|
|
678
|
-
height:
|
|
682
|
+
.h-\[250px\] {
|
|
683
|
+
height: 250px;
|
|
679
684
|
}
|
|
680
685
|
.h-\[600px\] {
|
|
681
686
|
height: 600px;
|
|
@@ -710,6 +715,9 @@
|
|
|
710
715
|
.max-h-60 {
|
|
711
716
|
max-height: calc(var(--spacing) * 60);
|
|
712
717
|
}
|
|
718
|
+
.max-h-64 {
|
|
719
|
+
max-height: calc(var(--spacing) * 64);
|
|
720
|
+
}
|
|
713
721
|
.max-h-80 {
|
|
714
722
|
max-height: calc(var(--spacing) * 80);
|
|
715
723
|
}
|
|
@@ -752,6 +760,9 @@
|
|
|
752
760
|
.min-h-8 {
|
|
753
761
|
min-height: calc(var(--spacing) * 8);
|
|
754
762
|
}
|
|
763
|
+
.min-h-\[70px\] {
|
|
764
|
+
min-height: 70px;
|
|
765
|
+
}
|
|
755
766
|
.min-h-\[100px\] {
|
|
756
767
|
min-height: 100px;
|
|
757
768
|
}
|
|
@@ -842,6 +853,9 @@
|
|
|
842
853
|
.w-96 {
|
|
843
854
|
width: calc(var(--spacing) * 96);
|
|
844
855
|
}
|
|
856
|
+
.w-\[--radix-dropdown-menu-trigger-width\] {
|
|
857
|
+
width: --radix-dropdown-menu-trigger-width;
|
|
858
|
+
}
|
|
845
859
|
.w-\[2px\] {
|
|
846
860
|
width: 2px;
|
|
847
861
|
}
|
|
@@ -869,6 +883,9 @@
|
|
|
869
883
|
.w-\[400px\] {
|
|
870
884
|
width: 400px;
|
|
871
885
|
}
|
|
886
|
+
.w-\[450px\] {
|
|
887
|
+
width: 450px;
|
|
888
|
+
}
|
|
872
889
|
.w-auto {
|
|
873
890
|
width: auto;
|
|
874
891
|
}
|
|
@@ -908,6 +925,9 @@
|
|
|
908
925
|
.max-w-lg {
|
|
909
926
|
max-width: var(--container-lg);
|
|
910
927
|
}
|
|
928
|
+
.max-w-md {
|
|
929
|
+
max-width: var(--container-md);
|
|
930
|
+
}
|
|
911
931
|
.max-w-none {
|
|
912
932
|
max-width: none;
|
|
913
933
|
}
|
|
@@ -941,6 +961,9 @@
|
|
|
941
961
|
.min-w-\[120px\] {
|
|
942
962
|
min-width: 120px;
|
|
943
963
|
}
|
|
964
|
+
.min-w-\[200px\] {
|
|
965
|
+
min-width: 200px;
|
|
966
|
+
}
|
|
944
967
|
.min-w-full {
|
|
945
968
|
min-width: 100%;
|
|
946
969
|
}
|
|
@@ -2499,12 +2522,21 @@
|
|
|
2499
2522
|
-webkit-user-select: text;
|
|
2500
2523
|
user-select: text;
|
|
2501
2524
|
}
|
|
2525
|
+
.\!\[--width\:340px\] {
|
|
2526
|
+
--width: 340px !important;
|
|
2527
|
+
}
|
|
2528
|
+
.\[-ms-overflow-style\:none\] {
|
|
2529
|
+
-ms-overflow-style: none;
|
|
2530
|
+
}
|
|
2502
2531
|
.\[animation-delay\:-0\.3s\] {
|
|
2503
2532
|
animation-delay: -0.3s;
|
|
2504
2533
|
}
|
|
2505
2534
|
.\[animation-delay\:-0\.15s\] {
|
|
2506
2535
|
animation-delay: -0.15s;
|
|
2507
2536
|
}
|
|
2537
|
+
.\[scrollbar-width\:none\] {
|
|
2538
|
+
scrollbar-width: none;
|
|
2539
|
+
}
|
|
2508
2540
|
.fade-in {
|
|
2509
2541
|
--tw-enter-opacity: 0;
|
|
2510
2542
|
}
|
|
@@ -2812,6 +2844,13 @@
|
|
|
2812
2844
|
}
|
|
2813
2845
|
}
|
|
2814
2846
|
}
|
|
2847
|
+
.hover\:bg-green-50 {
|
|
2848
|
+
&:hover {
|
|
2849
|
+
@media (hover: hover) {
|
|
2850
|
+
background-color: var(--color-green-50);
|
|
2851
|
+
}
|
|
2852
|
+
}
|
|
2853
|
+
}
|
|
2815
2854
|
.hover\:bg-green-600 {
|
|
2816
2855
|
&:hover {
|
|
2817
2856
|
@media (hover: hover) {
|
|
@@ -2847,6 +2886,13 @@
|
|
|
2847
2886
|
}
|
|
2848
2887
|
}
|
|
2849
2888
|
}
|
|
2889
|
+
.hover\:bg-red-200 {
|
|
2890
|
+
&:hover {
|
|
2891
|
+
@media (hover: hover) {
|
|
2892
|
+
background-color: var(--color-red-200);
|
|
2893
|
+
}
|
|
2894
|
+
}
|
|
2895
|
+
}
|
|
2850
2896
|
.hover\:bg-red-400 {
|
|
2851
2897
|
&:hover {
|
|
2852
2898
|
@media (hover: hover) {
|
|
@@ -2996,6 +3042,13 @@
|
|
|
2996
3042
|
}
|
|
2997
3043
|
}
|
|
2998
3044
|
}
|
|
3045
|
+
.hover\:text-red-800 {
|
|
3046
|
+
&:hover {
|
|
3047
|
+
@media (hover: hover) {
|
|
3048
|
+
color: var(--color-red-800);
|
|
3049
|
+
}
|
|
3050
|
+
}
|
|
3051
|
+
}
|
|
2999
3052
|
.hover\:text-white {
|
|
3000
3053
|
&:hover {
|
|
3001
3054
|
@media (hover: hover) {
|
|
@@ -3660,6 +3713,11 @@
|
|
|
3660
3713
|
box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
|
|
3661
3714
|
}
|
|
3662
3715
|
}
|
|
3716
|
+
.xl\:\!\[--width\:660px\] {
|
|
3717
|
+
@media (width >= 80rem) {
|
|
3718
|
+
--width: 660px !important;
|
|
3719
|
+
}
|
|
3720
|
+
}
|
|
3663
3721
|
.dark\:border-input {
|
|
3664
3722
|
@media (prefers-color-scheme: dark) {
|
|
3665
3723
|
border-color: var(--input);
|
|
@@ -3881,6 +3939,11 @@
|
|
|
3881
3939
|
padding-left: calc(var(--spacing) * 5);
|
|
3882
3940
|
}
|
|
3883
3941
|
}
|
|
3942
|
+
.\[\&\:\:-webkit-scrollbar\]\:hidden {
|
|
3943
|
+
&::-webkit-scrollbar {
|
|
3944
|
+
display: none;
|
|
3945
|
+
}
|
|
3946
|
+
}
|
|
3884
3947
|
.data-\[variant\=destructive\]\:\*\:\[svg\]\:\!text-destructive {
|
|
3885
3948
|
&[data-variant="destructive"] {
|
|
3886
3949
|
:is(& > *) {
|
package/package.json
CHANGED
package/src/components/index.ts
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { Check, ChevronsUpDown } from "lucide-react";
|
|
5
|
-
import { useEditContext } from "
|
|
6
|
-
import { Language } from "
|
|
5
|
+
import { useEditContext } from "../../editor/client/editContext";
|
|
6
|
+
import { Language } from "../../editor/pageModel";
|
|
7
7
|
import { cn } from "../../lib/utils";
|
|
8
|
-
import { Button } from "
|
|
9
|
-
import { Switch } from "
|
|
10
|
-
import { FilterInput, highlightMatch } from "
|
|
8
|
+
import { Button } from "./button";
|
|
9
|
+
import { Switch } from "./switch";
|
|
10
|
+
import { FilterInput, highlightMatch } from "../FilterInput";
|
|
11
11
|
|
|
12
12
|
import {
|
|
13
13
|
Command,
|
|
@@ -15,12 +15,8 @@ import {
|
|
|
15
15
|
CommandGroup,
|
|
16
16
|
CommandItem,
|
|
17
17
|
CommandList,
|
|
18
|
-
} from "
|
|
19
|
-
import {
|
|
20
|
-
Popover,
|
|
21
|
-
PopoverContent,
|
|
22
|
-
PopoverTrigger,
|
|
23
|
-
} from "../../components/ui/popover";
|
|
18
|
+
} from "./command";
|
|
19
|
+
import { Popover, PopoverContent, PopoverTrigger } from "./popover";
|
|
24
20
|
|
|
25
21
|
export function LanguageSelector({
|
|
26
22
|
selectedLanguage,
|
|
@@ -103,7 +99,10 @@ export function LanguageSelector({
|
|
|
103
99
|
)}
|
|
104
100
|
{!currentLanguage && <div>Select language</div>}
|
|
105
101
|
</div>
|
|
106
|
-
<ChevronsUpDown
|
|
102
|
+
<ChevronsUpDown
|
|
103
|
+
className="h-4 w-4 shrink-0 opacity-50"
|
|
104
|
+
strokeWidth={1}
|
|
105
|
+
/>
|
|
107
106
|
</Button>
|
|
108
107
|
</PopoverTrigger>
|
|
109
108
|
<PopoverContent className="w-64 p-0" align="start">
|
|
@@ -171,6 +170,7 @@ export function LanguageSelector({
|
|
|
171
170
|
? "opacity-100"
|
|
172
171
|
: "opacity-0",
|
|
173
172
|
)}
|
|
173
|
+
strokeWidth={1}
|
|
174
174
|
/>
|
|
175
175
|
</CommandItem>
|
|
176
176
|
))}
|
|
@@ -34,6 +34,7 @@ function DropdownMenuTrigger({
|
|
|
34
34
|
function DropdownMenuContent({
|
|
35
35
|
className,
|
|
36
36
|
sideOffset = 4,
|
|
37
|
+
align = "start",
|
|
37
38
|
...props
|
|
38
39
|
}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {
|
|
39
40
|
return (
|
|
@@ -41,8 +42,9 @@ function DropdownMenuContent({
|
|
|
41
42
|
<DropdownMenuPrimitive.Content
|
|
42
43
|
data-slot="dropdown-menu-content"
|
|
43
44
|
sideOffset={sideOffset}
|
|
45
|
+
align={align}
|
|
44
46
|
className={cn(
|
|
45
|
-
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
47
|
+
"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) w-[--radix-dropdown-menu-trigger-width] min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md",
|
|
46
48
|
className,
|
|
47
49
|
)}
|
|
48
50
|
{...props}
|
|
@@ -8,8 +8,12 @@ const Toaster = ({ ...props }: ToasterProps) => {
|
|
|
8
8
|
|
|
9
9
|
return (
|
|
10
10
|
<Sonner
|
|
11
|
+
duration={4000}
|
|
11
12
|
theme={theme as ToasterProps["theme"]}
|
|
12
|
-
className="toaster group"
|
|
13
|
+
className="toaster group ![--width:340px] xl:![--width:660px]"
|
|
14
|
+
toastOptions={{
|
|
15
|
+
className: "w-[400px] max-h-64 overflow-y-auto",
|
|
16
|
+
}}
|
|
13
17
|
style={
|
|
14
18
|
{
|
|
15
19
|
"--normal-bg": "var(--popover)",
|
package/src/config/config.tsx
CHANGED
|
@@ -34,6 +34,7 @@ import {
|
|
|
34
34
|
GraphQLIcon,
|
|
35
35
|
JsonIcon,
|
|
36
36
|
PageWizardIcon,
|
|
37
|
+
SecretAgentIcon,
|
|
37
38
|
TreeIcon,
|
|
38
39
|
} from "../editor/ui/Icons";
|
|
39
40
|
import { Debug } from "../editor/sidebar/Debug";
|
|
@@ -443,12 +444,12 @@ export const getConfiguration = (): EditorConfiguration => {
|
|
|
443
444
|
{
|
|
444
445
|
name: "agents",
|
|
445
446
|
title: "Agents",
|
|
446
|
-
icon: <
|
|
447
|
+
icon: <SecretAgentIcon strokeWidth={1} />,
|
|
447
448
|
leftSidebar: {
|
|
448
449
|
panels: [
|
|
449
450
|
{
|
|
450
451
|
name: "ai-terminal",
|
|
451
|
-
title: "
|
|
452
|
+
title: "Agents",
|
|
452
453
|
content: <Agents />,
|
|
453
454
|
initialSize: 70,
|
|
454
455
|
noOverflow: true,
|
|
@@ -580,7 +581,7 @@ export const getConfiguration = (): EditorConfiguration => {
|
|
|
580
581
|
name: "tree",
|
|
581
582
|
icon: <TreeIcon />,
|
|
582
583
|
title: "Content",
|
|
583
|
-
content: <MainContentTree mode="normal" />,
|
|
584
|
+
content: <MainContentTree mode="normal" hideRootNodes={true} />,
|
|
584
585
|
initialSize: 80,
|
|
585
586
|
},
|
|
586
587
|
],
|
|
@@ -55,6 +55,7 @@ export default function ContentTree({
|
|
|
55
55
|
showGrabCursorForDraggableNodes,
|
|
56
56
|
enableDragAndDrop,
|
|
57
57
|
enableContextMenu,
|
|
58
|
+
hideRootNodes,
|
|
58
59
|
}: {
|
|
59
60
|
isDraggable?: (item: ItemTreeNodeData) => boolean;
|
|
60
61
|
dragEnd?: () => void;
|
|
@@ -83,6 +84,7 @@ export default function ContentTree({
|
|
|
83
84
|
showGrabCursorForDraggableNodes?: boolean;
|
|
84
85
|
enableDragAndDrop?: boolean;
|
|
85
86
|
enableContextMenu?: boolean;
|
|
87
|
+
hideRootNodes?: boolean; // When true, hides root nodes and displays their children as top-level nodes
|
|
86
88
|
}) {
|
|
87
89
|
const [treeNodes, setTreeNodes] = useState<TreeNode[]>([]);
|
|
88
90
|
|
|
@@ -187,6 +189,35 @@ export default function ContentTree({
|
|
|
187
189
|
async (force: boolean = false) => {
|
|
188
190
|
if (!force && treeNodes.length > 0) return treeNodes;
|
|
189
191
|
|
|
192
|
+
if (hideRootNodes) {
|
|
193
|
+
// Load children of root nodes and show them as root level nodes
|
|
194
|
+
const rootNodes = await Promise.all(
|
|
195
|
+
rootItemIds
|
|
196
|
+
?.map((rootItemId) =>
|
|
197
|
+
loadNode({
|
|
198
|
+
id: rootItemId,
|
|
199
|
+
language,
|
|
200
|
+
version: 0,
|
|
201
|
+
}),
|
|
202
|
+
)
|
|
203
|
+
.filter((x) => x) || [],
|
|
204
|
+
);
|
|
205
|
+
|
|
206
|
+
const allChildren: CustomTreeNode[] = [];
|
|
207
|
+
for (const rootNode of rootNodes) {
|
|
208
|
+
if (rootNode) {
|
|
209
|
+
const children = await loadNodeChildren(rootNode);
|
|
210
|
+
// Remove parent reference since these will be displayed as root nodes
|
|
211
|
+
children.forEach((child) => {
|
|
212
|
+
child.parent = undefined;
|
|
213
|
+
});
|
|
214
|
+
allChildren.push(...children);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
return allChildren;
|
|
219
|
+
}
|
|
220
|
+
|
|
190
221
|
return await Promise.all(
|
|
191
222
|
rootItemIds
|
|
192
223
|
?.map((rootItemId) =>
|
|
@@ -199,7 +230,14 @@ export default function ContentTree({
|
|
|
199
230
|
.filter((x) => x) || [],
|
|
200
231
|
);
|
|
201
232
|
},
|
|
202
|
-
[
|
|
233
|
+
[
|
|
234
|
+
loadNode,
|
|
235
|
+
loadNodeChildren,
|
|
236
|
+
rootItemIds,
|
|
237
|
+
language,
|
|
238
|
+
treeNodes,
|
|
239
|
+
hideRootNodes,
|
|
240
|
+
],
|
|
203
241
|
);
|
|
204
242
|
|
|
205
243
|
const doPreloadNodes = useCallback(
|
|
@@ -289,7 +327,7 @@ export default function ContentTree({
|
|
|
289
327
|
};
|
|
290
328
|
|
|
291
329
|
load();
|
|
292
|
-
}, [language, rootItemIds]);
|
|
330
|
+
}, [language, rootItemIds, hideRootNodes]);
|
|
293
331
|
|
|
294
332
|
// Handle expanded keys changes without forcing reload
|
|
295
333
|
useEffect(() => {
|
|
@@ -680,15 +718,6 @@ export default function ContentTree({
|
|
|
680
718
|
[loadNodeChildren],
|
|
681
719
|
);
|
|
682
720
|
|
|
683
|
-
const loadOnExpand = useCallback(
|
|
684
|
-
async (node: CustomTreeNode) => {
|
|
685
|
-
node.children = null;
|
|
686
|
-
setTreeNodes([...treeNodes]);
|
|
687
|
-
await loadChildren(node);
|
|
688
|
-
},
|
|
689
|
-
[loadChildren, treeNodes],
|
|
690
|
-
);
|
|
691
|
-
|
|
692
721
|
const handleDragOverZone = useCallback(
|
|
693
722
|
(node: CustomTreeNode | null, index: number, event: React.DragEvent) => {
|
|
694
723
|
event.dataTransfer.dropEffect = event.ctrlKey ? "copy" : "move";
|
|
@@ -716,7 +745,7 @@ export default function ContentTree({
|
|
|
716
745
|
expandedKeys={expandedKeys}
|
|
717
746
|
onToggleExpand={handleToggleExpand}
|
|
718
747
|
renderNode={memoizedRenderNode}
|
|
719
|
-
onLazyLoad={
|
|
748
|
+
onLazyLoad={loadChildren}
|
|
720
749
|
onDoubleClick={handleDoubleClick}
|
|
721
750
|
onSelect={handleNodeSelect}
|
|
722
751
|
selectedKeys={selectedKeys}
|
|
@@ -214,14 +214,14 @@ export function PictureEditor({
|
|
|
214
214
|
}}
|
|
215
215
|
onWheel={(e) => {
|
|
216
216
|
if (forwardScrollevents)
|
|
217
|
-
editContext?.pageView.
|
|
217
|
+
editContext?.pageView.editorIframe!?.contentWindow?.document.documentElement?.scrollBy(
|
|
218
218
|
{
|
|
219
219
|
behavior: "instant",
|
|
220
220
|
left: 0,
|
|
221
221
|
top: e.deltaY,
|
|
222
222
|
},
|
|
223
223
|
);
|
|
224
|
-
editContext?.pageView.
|
|
224
|
+
editContext?.pageView.editorIframe!?.contentWindow?.document.body?.scrollBy(
|
|
225
225
|
{
|
|
226
226
|
behavior: "instant",
|
|
227
227
|
left: 0,
|
|
@@ -13,6 +13,7 @@ export function ScrollingContentTree({
|
|
|
13
13
|
rootItemIds,
|
|
14
14
|
expandedItemId,
|
|
15
15
|
scrollToSelected = true,
|
|
16
|
+
hideRootNodes,
|
|
16
17
|
}: {
|
|
17
18
|
selectedItemId?: string;
|
|
18
19
|
onSelectionChange?: (itemIds: ItemTreeNodeData[]) => void;
|
|
@@ -20,6 +21,7 @@ export function ScrollingContentTree({
|
|
|
20
21
|
rootItemIds?: string[];
|
|
21
22
|
expandedItemId?: string;
|
|
22
23
|
scrollToSelected?: boolean;
|
|
24
|
+
hideRootNodes?: boolean;
|
|
23
25
|
}) {
|
|
24
26
|
const [selectedItem, setSelectdItem] = useState<FullItem | null>(null);
|
|
25
27
|
const [expandedItem, setExpandedItem] = useState<FullItem | null>();
|
|
@@ -70,6 +72,7 @@ export function ScrollingContentTree({
|
|
|
70
72
|
className="h-full p-1"
|
|
71
73
|
onSelectionChange={onSelectionChange}
|
|
72
74
|
scrollToSelected={scrollToSelected}
|
|
75
|
+
hideRootNodes={hideRootNodes}
|
|
73
76
|
/>
|
|
74
77
|
</div>
|
|
75
78
|
);
|
package/src/editor/Terminal.tsx
CHANGED
|
@@ -28,6 +28,8 @@ export const Terminal = forwardRef<
|
|
|
28
28
|
onReset: () => void;
|
|
29
29
|
toolbar?: React.ReactNode;
|
|
30
30
|
statusbar?: React.ReactNode;
|
|
31
|
+
rightbar?: React.ReactNode;
|
|
32
|
+
submitOverride?: React.ReactNode;
|
|
31
33
|
infobar?: React.ReactNode;
|
|
32
34
|
disabled?: boolean;
|
|
33
35
|
className?: string;
|
|
@@ -41,6 +43,8 @@ export const Terminal = forwardRef<
|
|
|
41
43
|
onReset,
|
|
42
44
|
toolbar,
|
|
43
45
|
statusbar,
|
|
46
|
+
rightbar,
|
|
47
|
+
submitOverride,
|
|
44
48
|
infobar,
|
|
45
49
|
disabled,
|
|
46
50
|
className,
|
|
@@ -227,13 +231,18 @@ export const Terminal = forwardRef<
|
|
|
227
231
|
/>
|
|
228
232
|
<div className="flex items-center justify-between py-1">
|
|
229
233
|
{statusbar}
|
|
230
|
-
<
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
234
|
+
<div className="flex items-center gap-1">
|
|
235
|
+
{rightbar}
|
|
236
|
+
{submitOverride ?? (
|
|
237
|
+
<SimpleIconButton
|
|
238
|
+
icon={<Send size={16} strokeWidth={1} />}
|
|
239
|
+
className="tour-send-button"
|
|
240
|
+
onClick={submit}
|
|
241
|
+
disabled={prompt.trim().length === 0}
|
|
242
|
+
label="Send"
|
|
243
|
+
/>
|
|
244
|
+
)}
|
|
245
|
+
</div>
|
|
237
246
|
</div>
|
|
238
247
|
</div>
|
|
239
248
|
</div>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { History, Trash2 } from "lucide-react";
|
|
3
|
+
import { SimpleIconButton } from "../ui/SimpleIconButton";
|
|
4
|
+
import { AgentChat } from "../services/agentService";
|
|
5
|
+
import {
|
|
6
|
+
Popover,
|
|
7
|
+
PopoverContent,
|
|
8
|
+
PopoverTrigger,
|
|
9
|
+
} from "../../components/ui/popover";
|
|
10
|
+
|
|
11
|
+
interface AgentHistoryProps {
|
|
12
|
+
closedAgents: AgentChat[];
|
|
13
|
+
isOpen: boolean;
|
|
14
|
+
onOpenChange: (open: boolean) => void;
|
|
15
|
+
onOpenAgent: (agent: AgentChat) => void;
|
|
16
|
+
onDeleteAgent: (agent: AgentChat) => void;
|
|
17
|
+
formatDateToLocalTime: (dateString: string) => string;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export function AgentHistory({
|
|
21
|
+
closedAgents,
|
|
22
|
+
isOpen,
|
|
23
|
+
onOpenChange,
|
|
24
|
+
onOpenAgent,
|
|
25
|
+
onDeleteAgent,
|
|
26
|
+
formatDateToLocalTime,
|
|
27
|
+
}: AgentHistoryProps) {
|
|
28
|
+
const handleDeleteClick = (e: React.MouseEvent, agent: AgentChat) => {
|
|
29
|
+
e.stopPropagation(); // Prevent opening the agent
|
|
30
|
+
onDeleteAgent(agent);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
return (
|
|
34
|
+
<Popover open={isOpen} onOpenChange={onOpenChange}>
|
|
35
|
+
<PopoverTrigger asChild>
|
|
36
|
+
<SimpleIconButton
|
|
37
|
+
onClick={() => {}}
|
|
38
|
+
icon={<History className="size-4" strokeWidth={1} />}
|
|
39
|
+
label="Agent History"
|
|
40
|
+
className="text-gray-600 hover:text-gray-800"
|
|
41
|
+
/>
|
|
42
|
+
</PopoverTrigger>
|
|
43
|
+
<PopoverContent className="w-72 p-0" align="end">
|
|
44
|
+
<div className="border-b border-gray-100 px-3 py-2 text-xs font-medium text-gray-500">
|
|
45
|
+
Agent History
|
|
46
|
+
</div>
|
|
47
|
+
<div className="max-h-80 overflow-y-auto">
|
|
48
|
+
{closedAgents.length === 0 ? (
|
|
49
|
+
<div className="px-3 py-2 text-xs text-gray-500">
|
|
50
|
+
No closed agents found
|
|
51
|
+
</div>
|
|
52
|
+
) : (
|
|
53
|
+
closedAgents.map((agent) => (
|
|
54
|
+
<div
|
|
55
|
+
key={agent.id}
|
|
56
|
+
className="group flex cursor-pointer items-center justify-between border-b border-gray-50 px-3 py-2 text-xs hover:bg-gray-50"
|
|
57
|
+
onClick={() => onOpenAgent(agent)}
|
|
58
|
+
>
|
|
59
|
+
<div className="min-w-0 flex-1">
|
|
60
|
+
<div className="truncate font-medium text-gray-900">
|
|
61
|
+
{agent.name}
|
|
62
|
+
</div>
|
|
63
|
+
<div className="truncate text-gray-500">
|
|
64
|
+
{agent.profileName}
|
|
65
|
+
</div>
|
|
66
|
+
<div className="text-xs text-gray-400">
|
|
67
|
+
{formatDateToLocalTime(agent.updatedDate)}
|
|
68
|
+
</div>
|
|
69
|
+
</div>
|
|
70
|
+
<div className="ml-2 flex-shrink-0">
|
|
71
|
+
<SimpleIconButton
|
|
72
|
+
onClick={(e) => handleDeleteClick(e, agent)}
|
|
73
|
+
icon={<Trash2 className="size-3" strokeWidth={1} />}
|
|
74
|
+
label="Delete Agent"
|
|
75
|
+
className="text-red-600 opacity-0 transition-opacity group-hover:opacity-100 hover:text-red-800"
|
|
76
|
+
/>
|
|
77
|
+
</div>
|
|
78
|
+
</div>
|
|
79
|
+
))
|
|
80
|
+
)}
|
|
81
|
+
</div>
|
|
82
|
+
</PopoverContent>
|
|
83
|
+
</Popover>
|
|
84
|
+
);
|
|
85
|
+
}
|