From ad8b81845a4816d4891bd93cd030fd477ff6f82e Mon Sep 17 00:00:00 2001 From: Michael Chung Date: Sun, 18 May 2025 15:18:36 -0400 Subject: [PATCH] Moved the 2d editor to away to the old frontend_old deprecated folder. Reinstalled konva and react-colorful. Added a new video promptbox. --- .../src/components/signaled/TopBar/TopBar.tsx | 3 +- .../DialogAddImage/DialogAddImage.tsx | 9 +- .../app/src/pages/PageVideo/ImageToVideo.tsx | 91 +- .../apps/editor3d/app/src/signals/appTab.ts | 2 +- frontend/apps/editor3d/package.json | 2 + .../libs/components/promptbox/src/index.ts | 1 + .../promptbox/src/lib/PromptBox2D.tsx | 22 +- .../promptbox/src/lib/PromptBoxVideo.tsx | 629 +++ frontend/package-lock.json | 4732 +---------------- .../editor2d_studio_OAI}/.gitignore | 0 .../editor2d_studio_OAI}/.npmrc | 0 .../editor2d_studio_OAI}/.prettierrc | 0 .../editor2d_studio_OAI}/404.html | 0 .../editor2d_studio_OAI}/README.md | 0 .../editor2d_studio_OAI}/_headers | 0 .../editor2d_studio_OAI}/_redirects | 0 .../editor2d_studio_OAI}/eslint.config.js | 0 .../editor2d_studio_OAI}/index.html | 0 .../editor2d_studio_OAI}/netlify.toml | 0 .../editor2d_studio_OAI}/package-lock.json | 0 .../editor2d_studio_OAI}/package.json | 0 .../paint_py_server/paint_test.py | 0 .../paint_py_server/test_copy.py | 0 .../editor2d_studio_OAI}/postcss.config.js | 0 .../public/android-chrome-192x192.png | Bin .../public/android-chrome-512x512.png | Bin .../public/apple-touch-icon.png | Bin .../public/brand/Storyteller-Logo-Black.png | Bin .../public/brand/Storyteller-Logo.png | Bin .../public/brand/artcraft-logo.png | Bin .../public/brand/mira-logo-black.png | Bin .../public/brand/mira-logo.png | Bin .../public/favicon-16x16.png | Bin .../public/favicon-32x32.png | Bin .../editor2d_studio_OAI}/public/favicon.ico | Bin .../public/images/feature_ai_stylize.png | Bin .../public/images/feature_compositing.png | Bin .../public/images/feature_render.png | Bin .../public/images/feature_segmentation.png | Bin .../public/images/generate/image0.png | Bin .../public/images/generate/image1.png | Bin .../public/images/generate/image10.png | Bin .../public/images/generate/image11.png | Bin .../public/images/generate/image12.png | Bin .../public/images/generate/image13.png | Bin .../public/images/generate/image14.png | Bin .../public/images/generate/image15.png | Bin .../public/images/generate/image16.png | Bin .../public/images/generate/image17.png | Bin .../public/images/generate/image18.png | Bin .../public/images/generate/image19.png | Bin .../public/images/generate/image2.png | Bin .../public/images/generate/image20.png | Bin .../public/images/generate/image3.png | Bin .../public/images/generate/image4.png | Bin .../public/images/generate/image5.png | Bin .../public/images/generate/image6.png | Bin .../public/images/generate/image7.png | Bin .../public/images/generate/image8.png | Bin .../public/images/generate/image9.png | Bin .../public/images/landing_hero.png | Bin .../images/landing_hero_placeholder.png | Bin .../public/images/models/concept.png | Bin .../public/images/models/flat_2d.png | Bin .../public/images/models/ghibli.png | Bin .../public/images/models/realistic.png | Bin .../public/images/models/scenery.png | Bin .../placeholder_images/audio_placeholder.png | Bin .../public/placeholder_images/placeholder.png | Bin .../placeholder_images/placeholder_play.png | Bin .../placeholder_images/scene_placeholder.png | Bin .../placeholder_images/style_placeholder.png | Bin .../placeholder_videos/dark_portrait_v2.mp4 | Bin .../public/placeholder_videos/light.mp4 | Bin .../placeholder_videos/light_portrait_v2.mp4 | Bin .../public/placeholder_videos/wipe.mp4 | Bin .../public/style_gif/2_5d_anime.gif | Bin .../public/style_gif/2_5d_horror.gif | Bin .../public/style_gif/2d_flat_anime.gif | Bin .../public/style_gif/3d_cartoon.gif | Bin .../public/style_gif/anime.gif | Bin .../public/style_gif/anime_cyberpunk.gif | Bin .../public/style_gif/anime_retro_neon.gif | Bin .../public/style_gif/bloom_lighting.gif | Bin .../public/style_gif/bw_20s.gif | Bin .../public/style_gif/carnage.gif | Bin .../public/style_gif/comic_book.gif | Bin .../public/style_gif/creepy.gif | Bin .../public/style_gif/creepy_vhs.gif | Bin .../public/style_gif/dragonball.gif | Bin .../public/style_gif/ghibli.gif | Bin .../public/style_gif/horror_noir_bw.gif | Bin .../public/style_gif/hr_giger.gif | Bin .../public/style_gif/ink_bw.gif | Bin .../public/style_gif/ink_punk.gif | Bin .../public/style_gif/ink_splash.gif | Bin .../public/style_gif/jojo.gif | Bin .../public/style_gif/old_bw_movie.gif | Bin .../public/style_gif/origami_paper.gif | Bin .../public/style_gif/pastel_cute_anime.gif | Bin .../public/style_gif/pixel.gif | Bin .../public/style_gif/pop_art.gif | Bin .../public/style_gif/realistic_1.gif | Bin .../public/style_gif/realistic_2.gif | Bin .../public/style_gif/realistic_cyberpunk.gif | Bin .../public/style_gif/realistic_matrix.gif | Bin .../public/style_gif/simpsons.gif | Bin .../public/style_gif/techno_noir_bw.gif | Bin .../public/style_gif/trail_cam_footage.gif | Bin .../public/svg/bg-dots.svg | 0 .../public/videos/artcraft-canvas-demo.mp4 | Bin .../public/videos/demo_video.mp4 | Bin .../public/videos/landing_video.mp4 | Bin .../python_requirements.txt | Bin .../editor2d_studio_OAI}/run.sh | 0 .../script/netlify_build.sh | 0 .../src/Classes/ApiManager/AnalyticsApi.ts | 0 .../src/Classes/ApiManager/ApiManager.ts | 0 .../src/Classes/ApiManager/BetaKeysApi.ts | 0 .../src/Classes/ApiManager/EngineApi.ts | 0 .../Classes/ApiManager/FeaturedItemsApi.ts | 0 .../src/Classes/ApiManager/MediaFilesApi.ts | 0 .../src/Classes/ApiManager/MediaUploadApi.ts | 0 .../src/Classes/ApiManager/SegmentationApi.ts | 0 .../src/Classes/ApiManager/UserRatingsApi.ts | 0 .../src/Classes/ApiManager/VideoApi.ts | 0 .../Classes/ApiManager/VoiceConversionApi.ts | 0 .../Classes/ApiManager/VoiceDesignerApi.ts | 0 .../src/Classes/ApiManager/WeightsApi.ts | 0 .../src/Classes/ApiManager/enums/Api.ts | 0 .../src/Classes/ApiManager/enums/Billing.ts | 0 .../src/Classes/ApiManager/enums/Job.ts | 0 .../ApiManager/enums/MediaFileClass.ts | 0 .../Classes/ApiManager/enums/MediaFileType.ts | 0 .../Classes/ApiManager/enums/QueryFilters.ts | 0 .../src/Classes/ApiManager/enums/Tts.ts | 0 .../Classes/ApiManager/enums/UserFeatures.ts | 0 .../Classes/ApiManager/enums/Visibility.ts | 0 .../ApiManager/enums/WeightCategory.ts | 0 .../Classes/ApiManager/enums/WeightType.ts | 0 .../src/Classes/ApiManager/index.ts | 0 .../src/Classes/ApiManager/models/BetaKeys.ts | 0 .../src/Classes/ApiManager/models/Billing.tsx | 0 .../src/Classes/ApiManager/models/Dataset.ts | 0 .../src/Classes/ApiManager/models/Job.ts | 0 .../Classes/ApiManager/models/MediaFile.ts | 0 .../Classes/ApiManager/models/Pagination.ts | 0 .../src/Classes/ApiManager/models/Prompts.ts | 0 .../Classes/ApiManager/models/StatusAlert.ts | 0 .../Classes/ApiManager/models/UserBookmark.ts | 0 .../src/Classes/ApiManager/models/Users.ts | 0 .../src/Classes/ApiManager/models/Weight.ts | 0 .../EditModeRootComponent.tsx | 0 .../GalleryRootComponent.tsx | 0 .../src/GalleryRootComponent/index.ts | 0 .../BackgroundGallery.tsx | 0 .../GenerationRootComponent.tsx | 0 .../editor2d_studio_OAI}/src/KonvaApp/Api.ts | 0 .../src/KonvaApp/EditEngine.ts | 0 .../src/KonvaApp/Engine.ts | 0 .../EngineUtitlities/Base64Helpers.ts | 0 .../EngineUtitlities/CommandManager.ts | 0 .../EngineUtitlities/LoadingVideosProvider.ts | 0 .../src/KonvaApp/EngineUtitlities/MatteBox.ts | 0 .../KonvaApp/EngineUtitlities/SceneManager.ts | 0 .../AddPointsCommand.ts | 0 .../VideoExtractionHandler/PointsStack.ts | 0 .../VideoExtractionCommandsManager.ts | 0 .../VideoExtractionHandler.ts | 0 .../VideoExtractionHandler/type.ts | 0 .../src/KonvaApp/EngineUtitlities/index.ts | 0 .../KonvaApp/FileUtilities/FileUtilities.ts | 0 .../src/KonvaApp/GenerationEngine.ts | 0 .../src/KonvaApp/Nodes/BaseNode.ts | 0 .../src/KonvaApp/Nodes/ChromaWorker.ts | 0 .../src/KonvaApp/Nodes/ImageNode.ts | 0 .../src/KonvaApp/Nodes/NetworkedNode.ts | 0 .../src/KonvaApp/Nodes/NodeUtilities.ts | 0 .../src/KonvaApp/Nodes/PaintNode.ts | 0 .../src/KonvaApp/Nodes/PreviewCopy.ts | 0 .../src/KonvaApp/Nodes/PureTextNode.ts | 0 .../src/KonvaApp/Nodes/ShapeNode.ts | 0 .../src/KonvaApp/Nodes/TextNode.ts | 0 .../src/KonvaApp/Nodes/VideoNode/VideoNode.ts | 0 .../src/KonvaApp/Nodes/VideoNode/index.ts | 0 .../src/KonvaApp/Nodes/constants.ts | 0 .../src/KonvaApp/Nodes/index.ts | 0 .../KonvaApp/NodesManagers/NodeIsolator.ts | 0 .../KonvaApp/NodesManagers/NodeTransformer.ts | 0 .../KonvaApp/NodesManagers/NodesManager.ts | 0 .../NodesManagers/SelectionManager.ts | 0 .../KonvaApp/NodesManagers/SelectorSquare.ts | 0 .../NodesManagers/ToolbarNodeUtilities.ts | 0 .../src/KonvaApp/NodesManagers/index.ts | 0 .../src/KonvaApp/Onnx/onnx.ts | 0 .../OffScreenSceneCanvas.ts | 0 .../OffScreenSceneContext.ts | 0 .../RenderingPrimitives/RealTimeDrawEngine.ts | 0 .../RenderingPrimitives/RenderTask.ts | 0 .../src/KonvaApp/RenderingPrimitives/note.txt | 0 .../src/KonvaApp/UndoRedo/ChromaKeyAdd.ts | 0 .../src/KonvaApp/UndoRedo/ChromaKeyRemove.ts | 0 .../src/KonvaApp/UndoRedo/CreateCommand.ts | 0 .../src/KonvaApp/UndoRedo/DeleteCommand.ts | 0 .../src/KonvaApp/UndoRedo/ICommand.ts | 0 .../src/KonvaApp/UndoRedo/LockNodesCommand.ts | 0 .../src/KonvaApp/UndoRedo/MoveLayerDown.ts | 0 .../src/KonvaApp/UndoRedo/MoveLayerUp.ts | 0 .../src/KonvaApp/UndoRedo/TransformCommand.ts | 0 .../src/KonvaApp/UndoRedo/TranslateCommand.ts | 0 .../src/KonvaApp/UndoRedo/UndoRedoManager.ts | 0 .../KonvaApp/UndoRedo/UnlockNodesCommand.ts | 0 .../KonvaApp/UndoRedo/UseVideoExtraction.ts | 0 .../src/KonvaApp/UndoRedo/index.ts | 0 .../WorkerPrimitives/GenericWorker.ts | 0 .../WorkerPrimitives/SharedWorkerBase.ts | 0 .../Template/TemplateForSharedWorker.ts | 0 .../Template/TemplateForSharedWorkerClient.ts | 0 .../src/KonvaApp/constants.ts | 0 .../src/KonvaApp/index.ts | 0 .../src/KonvaApp/types/NodeData.ts | 0 .../src/KonvaApp/types/Text.ts | 0 .../src/KonvaApp/types/Transformation.ts | 0 .../src/KonvaApp/types/basicValueTypes.ts | 0 .../src/KonvaApp/types/events.ts | 0 .../src/KonvaApp/types/index.ts | 0 .../ContextualButtonRetry.tsx | 0 .../ContextualLoadingBar.tsx | 0 .../ContextualToolbarNode.tsx | 0 .../KonvaCanvasContainer.tsx | 0 .../KonvaRootComponent/KonvaRootComponent.tsx | 0 .../SignaledCanvasDragDropFiles.tsx | 0 .../KonvaRootComponent/SignaledDialogs.tsx | 0 .../SignaledLoadingIndicator.tsx | 0 .../KonvaRootComponent/SignaledMagicBox.tsx | 0 .../SignaledModelButtons.tsx | 0 .../SignaledPromptSlider.tsx | 0 .../KonvaRootComponent/SignaledPromptText.tsx | 0 .../SignaledToolbarMain.tsx | 0 .../SignaledToolbarVideoExtraction.tsx | 0 .../contextSignals/appUi.ts | 0 .../contextSignals/layout.ts | 0 .../src/KonvaRootComponent/index.tsx | 0 .../src/PyServer/DrawServer.ts | 0 .../src/PyServer/DrawServerTypes.ts | 0 .../editor2d_studio_OAI}/src/app/global.css | 0 .../editor2d_studio_OAI}/src/app/index.tsx | 0 .../src/app/pages/landing/index.tsx | 0 .../src/app/pages/login.tsx | 0 .../src/app/pages/main/index.tsx | 0 .../app/pages/sandbox/ButtonTestTester.tsx | 0 .../sandbox/ContextualButtonRetryForm.tsx | 0 .../sandbox/ContextualLoadingBarForm.tsx | 0 .../pages/sandbox/ContextualToolbarForm.tsx | 0 .../src/app/pages/sandbox/DialogErrorForm.tsx | 0 .../src/app/pages/sandbox/index.tsx | 0 .../src/app/pages/signup.tsx | 0 .../editor2d_studio_OAI}/src/app/router.tsx | 0 .../src/components/JobContext.tsx | 0 .../src/components/PromptBox.tsx | 0 .../src/components/UploadImage.tsx | 0 .../features/CanvasDragDropFiles.tsx | 0 .../DialogAddImage/DialogAddImage.tsx | 0 .../features/DialogAddImage/index.tsx | 0 .../DialogAddVideo/ButtonSumbitAdd.tsx | 0 .../DialogAddVideo/DialogAddVideo.tsx | 0 .../DialogAddVideo/LoadingScreens.tsx | 0 .../DialogAddVideo/QuickTrimVideoUploader.tsx | 0 .../TrimmerPlaybar/ButtonTrimDuration.tsx | 0 .../TrimmerPlaybar/LoadProgressIndicators.tsx | 0 .../TrimmerPlaybar/PlayProgressCursor.tsx | 0 .../TrimmerPlaybar/TrimAreaScrubber.tsx | 0 .../TrimmerPlaybar/TrimScrubber.tsx | 0 .../TrimmerPlaybar/TrimmerPlaybarCore.tsx | 0 .../TrimmerPlaybar/TrimmerPlaybarLoading.tsx | 0 .../DialogAddVideo/TrimmerPlaybar/index.tsx | 0 .../TrimmerPlaybar/utilities.ts | 0 .../VideoControls/ButtonMute.tsx | 0 .../VideoControls/ButtonPlayPause.tsx | 0 .../VideoControls/ButtonRepeat.tsx | 0 .../VideoControls/LabelTimeDuration.tsx | 0 .../VideoControls/VideoControls.tsx | 0 .../DialogAddVideo/VideoControls/enum.ts | 0 .../DialogAddVideo/VideoControls/index.tsx | 0 .../features/DialogAddVideo/enums.ts | 0 .../features/DialogAddVideo/index.tsx | 0 .../DialogAiStylize/DialogAiStylize.tsx | 0 .../SubPanelAdvance/IPAdapter.tsx | 0 .../SubPanelAdvance/StyleOptionSwitches.tsx | 0 .../SubPanelAdvance/StyleStrengthSlider.tsx | 0 .../SubPanelAdvance/SubPanelAdvance.tsx | 0 .../DialogAiStylize/SubPanelAdvance/index.tsx | 0 .../SubPanelAdvance/utilities.ts | 0 .../SubPanelBasic/ArtStyleItem.tsx | 0 .../SubPanelBasic/ArtStyleSelector.tsx | 0 .../DialogAiStylize/SubPanelBasic/Prompts.tsx | 0 .../SubPanelBasic/SubPanelBaisc.tsx | 0 .../DialogAiStylize/SubPanelBasic/index.tsx | 0 .../DialogAiStylize/data/randomTextList.ts | 0 .../features/DialogAiStylize/data/styeList.ts | 0 .../features/DialogAiStylize/enums.ts | 0 .../features/DialogAiStylize/index.tsx | 0 .../features/DialogAiStylize/utilities.ts | 0 .../DialogChromakey/DialogChromakey.tsx | 0 .../DialogChromakey/DialogPanelChromakey.tsx | 0 .../features/DialogChromakey/index.tsx | 0 .../features/DialogChromakey/type.ts | 0 .../DialogEditText/DialogEditText.tsx | 0 .../features/DialogEditText/index.ts | 0 .../components/features/DialogError/index.tsx | 0 .../features/FileUploader/DragAndDropZone.tsx | 0 .../components/features/FileUploader/enums.ts | 0 .../features/FileUploader/index.tsx | 0 .../MagicBox/frame_gradient_vertical.webp | Bin .../components/features/MagicBox/index.tsx | 0 .../ModelSelection/LoraSelectionDialog.tsx | 0 .../features/ModelSelection/ModelButton.tsx | 0 .../features/ModelSelection/ModelCard.tsx | 0 .../ModelSelection/ModelSelectionDialog.tsx | 0 .../src/components/features/ToolbarButton.tsx | 0 .../ToolbarMain/ButtonPreviewAndRender.tsx | 0 .../features/ToolbarMain/ToolbarMain.tsx | 0 .../components/features/ToolbarMain/enum.ts | 0 .../components/features/ToolbarMain/index.tsx | 0 .../features/ToolbarTopCenter/index.tsx | 0 .../features/ToolbarTopLeft/index.tsx | 0 .../features/ToolbarTopRight/index.tsx | 0 .../ToolbarUserProfile/ProfileDropdown.tsx | 0 .../features/ToolbarUserProfile/index.tsx | 0 .../ToolbarVideoExtraction.tsx | 0 .../features/ToolbarVideoExtraction/enums.ts | 0 .../features/ToolbarVideoExtraction/index.ts | 0 .../src/components/features/index.ts | 0 .../src/components/hoc/index.ts | 0 .../src/components/hoc/withProtectedRoute.tsx | 0 .../src/components/landing/FeatureCard.tsx | 0 .../src/components/landing/Footer.tsx | 0 .../src/components/landing/Hero.tsx | 0 .../src/components/landing/Navbar.tsx | 0 .../src/components/reusable/Badge/Badge.tsx | 0 .../src/components/reusable/Badge/index.ts | 0 .../src/components/reusable/Button/Button.mdx | 0 .../reusable/Button/Button.stories.tsx | 0 .../src/components/reusable/Button/Button.tsx | 0 .../src/components/reusable/Button/index.ts | 0 .../ButtonDialogue/ButtonDialogue.tsx | 0 .../reusable/ButtonDialogue/index.tsx | 0 .../ButtonDropdown/ButtonDropdown.mdx | 0 .../ButtonDropdown/ButtonDropdown.stories.tsx | 0 .../ButtonDropdown/ButtonDropdown.tsx | 0 .../reusable/ButtonDropdown/index.ts | 0 .../reusable/ButtonIcon/ButtonIcon.mdx | 0 .../ButtonIcon/ButtonIcon.stories.tsx | 0 .../reusable/ButtonIcon/ButtonIcon.tsx | 0 .../components/reusable/ButtonIcon/index.ts | 0 .../ButtonIconSelect/ButtonIconSelect.mdx | 0 .../ButtonIconSelect.stories.tsx | 0 .../ButtonIconSelect/ButtonIconSelect.tsx | 0 .../reusable/ButtonIconSelect/index.ts | 0 .../ButtonIconStack/ButtonIconStack.mdx | 0 .../ButtonIconStack.stories.tsx | 0 .../ButtonIconStack/ButtonIconStack.tsx | 0 .../reusable/ButtonIconStack/index.ts | 0 .../reusable/ButtonLink/ButtonLink.mdx | 0 .../ButtonLink/ButtonLink.stories.tsx | 0 .../reusable/ButtonLink/ButtonLink.tsx | 0 .../components/reusable/ButtonLink/index.ts | 0 .../components/reusable/ConfirmationModal.tsx | 0 .../reusable/FileUploader/DragAndDropZone.tsx | 0 .../reusable/FileUploader/FileUploader.tsx | 0 .../components/reusable/FileUploader/index.ts | 0 .../reusable/FilterButtons/FilterButtons.mdx | 0 .../FilterButtons/FilterButtons.stories.tsx | 0 .../reusable/FilterButtons/FilterButtons.tsx | 0 .../reusable/FilterButtons/index.ts | 0 .../components/reusable/Gravatar/Gravatar.tsx | 0 .../src/components/reusable/Gravatar/index.ts | 0 .../src/components/reusable/Input/Input.mdx | 0 .../reusable/Input/Input.stories.tsx | 0 .../src/components/reusable/Input/Input.tsx | 0 .../src/components/reusable/Input/index.ts | 0 .../reusable/InputVector/InputVector.mdx | 0 .../InputVector/InputVector.stories.tsx | 0 .../reusable/InputVector/InputVector.tsx | 0 .../components/reusable/InputVector/index.ts | 0 .../src/components/reusable/ListDropdown.tsx | 0 .../src/components/reusable/LoadingBar.tsx | 0 .../src/components/reusable/LoadingDots.tsx | 0 .../components/reusable/LoadingSpinner.tsx | 0 .../reusable/NumberInput/NumberInput.tsx | 0 .../components/reusable/NumberInput/index.ts | 0 .../reusable/Pagination/Pagination.mdx | 0 .../Pagination/Pagination.stories.tsx | 0 .../reusable/Pagination/Pagination.tsx | 0 .../components/reusable/Pagination/index.ts | 0 .../src/components/reusable/Pill/Pill.mdx | 0 .../components/reusable/Pill/Pill.stories.tsx | 0 .../src/components/reusable/Pill/Pill.tsx | 0 .../src/components/reusable/Pill/index.ts | 0 .../components/reusable/Popover/Popover.tsx | 0 .../src/components/reusable/Popover/index.ts | 0 .../reusable/SearchFilter/SearchFilter.tsx | 0 .../reusable/SearchFilter/index.tsx | 0 .../src/components/reusable/Select.tsx | 0 .../src/components/reusable/Slider/Slider.tsx | 0 .../src/components/reusable/Slider/index.ts | 0 .../components/reusable/SliderV2/SliderV2.tsx | 0 .../src/components/reusable/SliderV2/index.ts | 0 .../src/components/reusable/Tabs/Tabs.tsx | 0 .../src/components/reusable/Tabs/index.tsx | 0 .../components/reusable/Textarea/Textarea.mdx | 0 .../reusable/Textarea/Textarea.stories.tsx | 0 .../components/reusable/Textarea/Textarea.tsx | 0 .../src/components/reusable/Textarea/index.ts | 0 .../reusable/ToggleButton/ToggleButton.tsx | 0 .../components/reusable/ToggleButton/index.ts | 0 .../src/components/reusable/Tooltip.tsx | 0 .../reusable/TransitionDialogue.tsx | 0 .../src/components/reusable/Typography.tsx | 0 .../reusable/UploadModal/DragAndDropZone.tsx | 0 .../reusable/UploadModal/FileUploader.tsx | 0 .../reusable/UploadModal/UploadAssetError.tsx | 0 .../reusable/UploadModal/UploadFiles.tsx | 0 .../reusable/UploadModal/UploadModal.tsx | 0 .../reusable/UploadModal/UploadSuccess.tsx | 0 .../components/reusable/UploadModal/index.ts | 0 .../reusable/UploadModal/uploadAssets.ts | 0 .../reusable/UploadModal3D/UploadFiles3D.tsx | 0 .../reusable/UploadModal3D/UploadModal3D.tsx | 0 .../reusable/UploadModal3D/index.ts | 0 .../reusable/UploadModal3D/utilities/index.ts | 0 .../utilities/loadPreviewOnCanvas.ts | 0 .../utilities/thumbnailHelpers.ts | 0 .../utilities/upload3DObjects.ts | 0 .../UploadModal3D/utilities/uploadAsset.ts | 0 .../UploadModalMedia/UploadFilesMedia.tsx | 0 .../UploadModalMedia/UploadImageMedia.tsx | 0 .../UploadImageMediaModal.tsx | 0 .../UploadModalMedia/UploadModalMedia.tsx | 0 .../reusable/UploadModalMedia/index.ts | 0 .../reusable/UploadModalMedia/uploadImage.ts | 0 .../reusable/UploadModalMedia/uploadPlane.ts | 0 .../components/reusable/WaveformPlayer.tsx | 0 .../src/components/reusable/index.ts | 0 .../shared_authentication/AuthButtons.tsx | 0 .../shared_authentication/signup.tsx | 0 .../src/components/styles.ts | 0 .../src/components/ui/Activity/Activity.tsx | 0 .../components/ui/Activity/CompletedCard.tsx | 0 .../components/ui/Activity/InProgressCard.tsx | 0 .../src/components/ui/Activity/index.ts | 0 .../src/components/ui/BaseDialog.tsx | 0 .../src/components/ui/Button.tsx | 0 .../src/components/ui/ComboBox.tsx | 0 .../src/components/ui/Gravatar.tsx | 0 .../src/components/ui/HexEyedropPicker.tsx | 0 .../src/components/ui/Input.tsx | 0 .../src/components/ui/InputNumber.tsx | 0 .../src/components/ui/LabeledSelect.tsx | 0 .../src/components/ui/LoadingBar.tsx | 0 .../src/components/ui/LoadingSpinner.tsx | 0 .../src/components/ui/PanelBottom.tsx | 0 .../src/components/ui/PanelRight.tsx | 0 .../src/components/ui/Slider.tsx | 0 .../src/components/ui/Spinner.tsx | 0 .../src/components/ui/Switches.tsx | 0 .../src/components/ui/TabSelector.tsx | 0 .../src/components/ui/TextArea.tsx | 0 .../ui/TextEditor/ButtonTextStyles.tsx | 0 .../ui/TextEditor/ButtonsAlignment.tsx | 0 .../components/ui/TextEditor/ColorPicker.tsx | 0 .../components/ui/TextEditor/TextEditor.tsx | 0 .../src/components/ui/TextEditor/index.ts | 0 .../src/components/ui/TextEditor/styles.ts | 0 .../src/components/ui/TextEditor/types.ts | 0 .../src/components/ui/Toast.tsx | 0 .../src/components/ui/ToggleButton.tsx | 0 .../ui/ToolbarMain/BackgroundMenu.tsx | 0 .../ui/ToolbarMain/EraseModeMenu.tsx | 0 .../ui/ToolbarMain/PaintModeMenu.tsx | 0 .../src/components/ui/Tooltip.tsx | 0 .../src/components/ui/index.ts | 0 .../src/constants/fileTypeEnums.ts | 0 .../editor2d_studio_OAI}/src/data/models.ts | 0 .../src/hooks/useIsMobile.ts | 0 .../src/hooks/useRenderCounter.ts | 0 .../src/hooks/useSignalRenderCounter.ts | 0 .../src/services/modelDownloadService.ts | 0 .../src/signal/canvasRenderBitmap.tsx | 0 .../signals/authentication/auth_signals.ts | 0 .../src/signals/authentication/enums.ts | 0 .../src/signals/authentication/fetchers.ts | 0 .../src/signals/authentication/index.ts | 0 .../src/signals/authentication/utilities.ts | 0 .../signals/generation/generationSignals.ts | 0 .../src/signals/generation/index.ts | 0 .../editor2d_studio_OAI}/src/signals/index.ts | 0 .../src/signals/uiAccess/buttonRetry.ts | 0 .../src/signals/uiAccess/buttonTest.ts | 0 .../src/signals/uiAccess/dialogChromakey.ts | 0 .../src/signals/uiAccess/dialogError.ts | 0 .../src/signals/uiAccess/index.ts | 0 .../src/signals/uiAccess/loadingBar.ts | 0 .../src/signals/uiAccess/magicBox.ts | 0 .../src/signals/uiAccess/toolbarMain/index.ts | 0 .../uiAccess/toolbarMain/loadingBar.ts | 0 .../uiAccess/toolbarMain/toolbarMain.ts | 0 .../src/signals/uiAccess/toolbarNode.ts | 0 .../uiAccess/toolbarVideoExtraction.ts | 0 .../src/signals/uiAccess/type.ts | 0 .../src/signals/uiEvents/addMedia.ts | 0 .../src/signals/uiEvents/aiStylize.ts | 0 .../src/signals/uiEvents/appMode.ts | 0 .../src/signals/uiEvents/buttonRetry.ts | 0 .../src/signals/uiEvents/buttonTest.ts | 0 .../src/signals/uiEvents/chromakey.ts | 0 .../src/signals/uiEvents/index.ts | 0 .../src/signals/uiEvents/loadingIndicator.ts | 0 .../src/signals/uiEvents/modelSelection.ts | 0 .../src/signals/uiEvents/promptSettings.ts | 0 .../uiEvents/toolbarMain/backgroundMenu.ts | 0 .../signals/uiEvents/toolbarMain/eraseMode.ts | 0 .../src/signals/uiEvents/toolbarMain/index.ts | 0 .../uiEvents/toolbarMain/loadingBar.ts | 0 .../signals/uiEvents/toolbarMain/paintMode.ts | 0 .../uiEvents/toolbarMain/toolbarMain.ts | 0 .../src/signals/uiEvents/toolbarNode.ts | 0 .../uiEvents/toolbarVideoExtraction.ts | 0 .../src/utilities/DecodeBase64ToImage.ts | 0 .../utilities/EncodeImageBitmapToBase64.ts | 0 .../src/utilities/SaveImageBitmapToFile.ts | 0 .../src/utilities/index.ts | 0 .../editor2d_studio_OAI}/src/vite-env.d.ts | 0 .../editor2d_studio_OAI}/start_server.ps1 | 0 .../editor2d_studio_OAI}/tailwind.config.js | 0 .../editor2d_studio_OAI}/tailwind.stcolors.js | 0 .../editor2d_studio_OAI}/test/worker.js | 0 .../editor2d_studio_OAI}/tsconfig.app.json | 0 .../editor2d_studio_OAI}/tsconfig.json | 0 .../editor2d_studio_OAI}/tsconfig.node.json | 0 .../editor2d_studio_OAI}/vite.config.ts | 0 .../editor2d_studio_OAI}/yarn.lock | 0 542 files changed, 706 insertions(+), 4785 deletions(-) create mode 100644 frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/.gitignore (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/.npmrc (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/.prettierrc (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/404.html (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/README.md (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/_headers (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/_redirects (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/eslint.config.js (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/index.html (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/netlify.toml (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/package-lock.json (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/package.json (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/paint_py_server/paint_test.py (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/paint_py_server/test_copy.py (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/postcss.config.js (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/android-chrome-192x192.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/android-chrome-512x512.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/apple-touch-icon.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/brand/Storyteller-Logo-Black.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/brand/Storyteller-Logo.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/brand/artcraft-logo.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/brand/mira-logo-black.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/brand/mira-logo.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/favicon-16x16.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/favicon-32x32.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/favicon.ico (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/feature_ai_stylize.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/feature_compositing.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/feature_render.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/feature_segmentation.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image0.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image1.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image10.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image11.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image12.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image13.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image14.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image15.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image16.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image17.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image18.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image19.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image2.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image20.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image3.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image4.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image5.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image6.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image7.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image8.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/generate/image9.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/landing_hero.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/landing_hero_placeholder.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/models/concept.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/models/flat_2d.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/models/ghibli.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/models/realistic.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/images/models/scenery.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_images/audio_placeholder.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_images/placeholder.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_images/placeholder_play.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_images/scene_placeholder.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_images/style_placeholder.png (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_videos/dark_portrait_v2.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_videos/light.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_videos/light_portrait_v2.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/placeholder_videos/wipe.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/2_5d_anime.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/2_5d_horror.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/2d_flat_anime.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/3d_cartoon.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/anime.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/anime_cyberpunk.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/anime_retro_neon.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/bloom_lighting.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/bw_20s.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/carnage.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/comic_book.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/creepy.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/creepy_vhs.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/dragonball.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/ghibli.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/horror_noir_bw.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/hr_giger.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/ink_bw.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/ink_punk.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/ink_splash.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/jojo.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/old_bw_movie.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/origami_paper.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/pastel_cute_anime.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/pixel.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/pop_art.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/realistic_1.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/realistic_2.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/realistic_cyberpunk.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/realistic_matrix.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/simpsons.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/techno_noir_bw.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/style_gif/trail_cam_footage.gif (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/svg/bg-dots.svg (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/videos/artcraft-canvas-demo.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/videos/demo_video.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/public/videos/landing_video.mp4 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/python_requirements.txt (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/run.sh (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/script/netlify_build.sh (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/AnalyticsApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/ApiManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/BetaKeysApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/EngineApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/FeaturedItemsApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/MediaFilesApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/MediaUploadApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/SegmentationApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/UserRatingsApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/VideoApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/VoiceConversionApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/VoiceDesignerApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/WeightsApi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/Api.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/Billing.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/Job.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/MediaFileClass.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/MediaFileType.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/QueryFilters.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/Tts.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/UserFeatures.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/Visibility.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/WeightCategory.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/enums/WeightType.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/BetaKeys.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Billing.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Dataset.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Job.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/MediaFile.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Pagination.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Prompts.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/StatusAlert.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/UserBookmark.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Users.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/Classes/ApiManager/models/Weight.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/EditModeRootComponent/EditModeRootComponent.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/GalleryRootComponent/GalleryRootComponent.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/GalleryRootComponent/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/GenerationRootComponent/BackgroundGallery.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/GenerationRootComponent/GenerationRootComponent.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Api.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EditEngine.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Engine.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/Base64Helpers.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/CommandManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/LoadingVideosProvider.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/MatteBox.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/SceneManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/VideoExtractionHandler/AddPointsCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/VideoExtractionHandler/PointsStack.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/VideoExtractionHandler/VideoExtractionCommandsManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/VideoExtractionHandler/VideoExtractionHandler.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/VideoExtractionHandler/type.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/EngineUtitlities/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/FileUtilities/FileUtilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/GenerationEngine.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/BaseNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/ChromaWorker.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/ImageNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/NetworkedNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/NodeUtilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/PaintNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/PreviewCopy.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/PureTextNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/ShapeNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/TextNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/VideoNode/VideoNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/VideoNode/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/constants.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Nodes/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/NodeIsolator.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/NodeTransformer.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/NodesManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/SelectionManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/SelectorSquare.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/ToolbarNodeUtilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/NodesManagers/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/Onnx/onnx.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/RenderingPrimitives/OffScreenSceneCanvas.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/RenderingPrimitives/OffScreenSceneContext.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/RenderingPrimitives/RealTimeDrawEngine.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/RenderingPrimitives/RenderTask.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/RenderingPrimitives/note.txt (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/ChromaKeyAdd.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/ChromaKeyRemove.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/CreateCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/DeleteCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/ICommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/LockNodesCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/MoveLayerDown.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/MoveLayerUp.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/TransformCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/TranslateCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/UndoRedoManager.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/UnlockNodesCommand.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/UseVideoExtraction.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/UndoRedo/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/WorkerPrimitives/GenericWorker.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/WorkerPrimitives/SharedWorkerBase.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/WorkerPrimitives/Template/TemplateForSharedWorker.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/WorkerPrimitives/Template/TemplateForSharedWorkerClient.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/constants.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/types/NodeData.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/types/Text.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/types/Transformation.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/types/basicValueTypes.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/types/events.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaApp/types/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/ContextualButtonRetry.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/ContextualLoadingBar.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/ContextualToolbarNode.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/KonvaCanvasContainer.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/KonvaRootComponent.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledCanvasDragDropFiles.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledDialogs.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledLoadingIndicator.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledMagicBox.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledModelButtons.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledPromptSlider.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledPromptText.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledToolbarMain.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/SignaledToolbarVideoExtraction.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/contextSignals/appUi.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/contextSignals/layout.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/KonvaRootComponent/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/PyServer/DrawServer.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/PyServer/DrawServerTypes.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/global.css (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/landing/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/login.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/main/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/sandbox/ButtonTestTester.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/sandbox/ContextualButtonRetryForm.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/sandbox/ContextualLoadingBarForm.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/sandbox/ContextualToolbarForm.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/sandbox/DialogErrorForm.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/sandbox/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/pages/signup.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/app/router.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/JobContext.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/PromptBox.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/UploadImage.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/CanvasDragDropFiles.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddImage/DialogAddImage.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddImage/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/ButtonSumbitAdd.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/DialogAddVideo.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/LoadingScreens.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/QuickTrimVideoUploader.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/ButtonTrimDuration.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/LoadProgressIndicators.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/PlayProgressCursor.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/TrimAreaScrubber.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/TrimScrubber.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/TrimmerPlaybarCore.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/TrimmerPlaybarLoading.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/TrimmerPlaybar/utilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/ButtonMute.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/ButtonPlayPause.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/ButtonRepeat.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/LabelTimeDuration.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/VideoControls.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/enum.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/VideoControls/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/enums.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAddVideo/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/DialogAiStylize.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelAdvance/IPAdapter.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelAdvance/StyleOptionSwitches.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelAdvance/StyleStrengthSlider.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelAdvance/SubPanelAdvance.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelAdvance/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelAdvance/utilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelBasic/ArtStyleItem.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelBasic/ArtStyleSelector.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelBasic/Prompts.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelBasic/SubPanelBaisc.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/SubPanelBasic/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/data/randomTextList.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/data/styeList.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/enums.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogAiStylize/utilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogChromakey/DialogChromakey.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogChromakey/DialogPanelChromakey.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogChromakey/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogChromakey/type.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogEditText/DialogEditText.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogEditText/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/DialogError/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/FileUploader/DragAndDropZone.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/FileUploader/enums.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/FileUploader/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/MagicBox/frame_gradient_vertical.webp (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/MagicBox/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ModelSelection/LoraSelectionDialog.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ModelSelection/ModelButton.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ModelSelection/ModelCard.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ModelSelection/ModelSelectionDialog.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarButton.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarMain/ButtonPreviewAndRender.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarMain/ToolbarMain.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarMain/enum.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarMain/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarTopCenter/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarTopLeft/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarTopRight/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarUserProfile/ProfileDropdown.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarUserProfile/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarVideoExtraction/ToolbarVideoExtraction.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarVideoExtraction/enums.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/ToolbarVideoExtraction/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/features/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/hoc/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/hoc/withProtectedRoute.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/landing/FeatureCard.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/landing/Footer.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/landing/Hero.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/landing/Navbar.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Badge/Badge.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Badge/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Button/Button.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Button/Button.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Button/Button.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Button/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonDialogue/ButtonDialogue.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonDialogue/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonDropdown/ButtonDropdown.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonDropdown/ButtonDropdown.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonDropdown/ButtonDropdown.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonDropdown/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIcon/ButtonIcon.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIcon/ButtonIcon.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIcon/ButtonIcon.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIcon/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconSelect/ButtonIconSelect.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconSelect/ButtonIconSelect.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconSelect/ButtonIconSelect.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconSelect/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconStack/ButtonIconStack.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconStack/ButtonIconStack.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconStack/ButtonIconStack.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonIconStack/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonLink/ButtonLink.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonLink/ButtonLink.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonLink/ButtonLink.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ButtonLink/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ConfirmationModal.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FileUploader/DragAndDropZone.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FileUploader/FileUploader.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FileUploader/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FilterButtons/FilterButtons.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FilterButtons/FilterButtons.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FilterButtons/FilterButtons.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/FilterButtons/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Gravatar/Gravatar.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Gravatar/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Input/Input.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Input/Input.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Input/Input.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Input/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/InputVector/InputVector.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/InputVector/InputVector.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/InputVector/InputVector.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/InputVector/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ListDropdown.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/LoadingBar.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/LoadingDots.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/LoadingSpinner.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/NumberInput/NumberInput.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/NumberInput/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pagination/Pagination.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pagination/Pagination.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pagination/Pagination.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pagination/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pill/Pill.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pill/Pill.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pill/Pill.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Pill/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Popover/Popover.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Popover/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/SearchFilter/SearchFilter.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/SearchFilter/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Select.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Slider/Slider.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Slider/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/SliderV2/SliderV2.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/SliderV2/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Tabs/Tabs.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Tabs/index.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Textarea/Textarea.mdx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Textarea/Textarea.stories.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Textarea/Textarea.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Textarea/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ToggleButton/ToggleButton.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/ToggleButton/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Tooltip.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/TransitionDialogue.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/Typography.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/DragAndDropZone.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/FileUploader.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/UploadAssetError.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/UploadFiles.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/UploadModal.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/UploadSuccess.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal/uploadAssets.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/UploadFiles3D.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/UploadModal3D.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/utilities/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/utilities/loadPreviewOnCanvas.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/utilities/thumbnailHelpers.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/utilities/upload3DObjects.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModal3D/utilities/uploadAsset.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/UploadFilesMedia.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/UploadImageMedia.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/UploadImageMediaModal.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/UploadModalMedia.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/uploadImage.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/UploadModalMedia/uploadPlane.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/WaveformPlayer.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/reusable/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/shared_authentication/AuthButtons.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/shared_authentication/signup.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/styles.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Activity/Activity.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Activity/CompletedCard.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Activity/InProgressCard.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Activity/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/BaseDialog.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Button.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/ComboBox.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Gravatar.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/HexEyedropPicker.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Input.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/InputNumber.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/LabeledSelect.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/LoadingBar.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/LoadingSpinner.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/PanelBottom.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/PanelRight.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Slider.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Spinner.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Switches.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TabSelector.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextArea.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/ButtonTextStyles.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/ButtonsAlignment.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/ColorPicker.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/TextEditor.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/styles.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/TextEditor/types.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Toast.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/ToggleButton.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/ToolbarMain/BackgroundMenu.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/ToolbarMain/EraseModeMenu.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/ToolbarMain/PaintModeMenu.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/Tooltip.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/components/ui/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/constants/fileTypeEnums.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/data/models.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/hooks/useIsMobile.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/hooks/useRenderCounter.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/hooks/useSignalRenderCounter.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/services/modelDownloadService.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signal/canvasRenderBitmap.tsx (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/authentication/auth_signals.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/authentication/enums.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/authentication/fetchers.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/authentication/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/authentication/utilities.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/generation/generationSignals.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/generation/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/buttonRetry.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/buttonTest.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/dialogChromakey.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/dialogError.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/loadingBar.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/magicBox.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/toolbarMain/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/toolbarMain/loadingBar.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/toolbarMain/toolbarMain.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/toolbarNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/toolbarVideoExtraction.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiAccess/type.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/addMedia.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/aiStylize.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/appMode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/buttonRetry.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/buttonTest.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/chromakey.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/loadingIndicator.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/modelSelection.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/promptSettings.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarMain/backgroundMenu.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarMain/eraseMode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarMain/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarMain/loadingBar.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarMain/paintMode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarMain/toolbarMain.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarNode.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/signals/uiEvents/toolbarVideoExtraction.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/utilities/DecodeBase64ToImage.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/utilities/EncodeImageBitmapToBase64.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/utilities/SaveImageBitmapToFile.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/utilities/index.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/src/vite-env.d.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/start_server.ps1 (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/tailwind.config.js (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/tailwind.stcolors.js (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/test/worker.js (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/tsconfig.app.json (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/tsconfig.json (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/tsconfig.node.json (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/vite.config.ts (100%) rename {frontend/apps/editor2d => frontend_old/editor2d_studio_OAI}/yarn.lock (100%) diff --git a/frontend/apps/editor3d/app/src/components/signaled/TopBar/TopBar.tsx b/frontend/apps/editor3d/app/src/components/signaled/TopBar/TopBar.tsx index 173b0793f8..f655eaed87 100644 --- a/frontend/apps/editor3d/app/src/components/signaled/TopBar/TopBar.tsx +++ b/frontend/apps/editor3d/app/src/components/signaled/TopBar/TopBar.tsx @@ -19,7 +19,6 @@ import { Signal } from "@preact/signals-react"; import { useSignals } from "@preact/signals-react/runtime"; import { setLogoutStates } from "~/signals/authentication/utilities"; import { EngineContext } from "~/pages/PageEnigma/contexts/EngineContext"; -import { useAppUiContext } from "~/pages/Page2d/contextSignals/appUi"; function isEditorPath(path: string) { if (path === "/") return true; @@ -37,7 +36,7 @@ interface Props { const appTabs: TabItem[] = [ { id: "2D", label: "2D" }, { id: "3D", label: "3D" }, - // { id: "VIDEO", label: "Video" }, + { id: "VIDEO", label: "Video" }, ]; export const TopBar = ({ diff --git a/frontend/apps/editor3d/app/src/pages/Page2d/components/features/DialogAddImage/DialogAddImage.tsx b/frontend/apps/editor3d/app/src/pages/Page2d/components/features/DialogAddImage/DialogAddImage.tsx index 3c60b693cc..b6953d6968 100644 --- a/frontend/apps/editor3d/app/src/pages/Page2d/components/features/DialogAddImage/DialogAddImage.tsx +++ b/frontend/apps/editor3d/app/src/pages/Page2d/components/features/DialogAddImage/DialogAddImage.tsx @@ -13,11 +13,13 @@ export const DialogAddImage = ({ isOpen, closeCallback, onAddImage, + isProcessing = false, }: { stagedImage?: File | null; isOpen: boolean; closeCallback: () => void; onAddImage: (file: File) => void; + isProcessing?: boolean; }) => { const [assetFile, setAssetFile] = useState(null); const previouslyStagedImageRef = useRef(null); @@ -37,10 +39,13 @@ export const DialogAddImage = ({ closeCallback(); } + // Show dialog if no image is set (currFile is null) and not processing + const shouldShowDialog = isOpen && (!currFile || !isProcessing); + return ( - +
- Upload Image +

Upload Image

{ const containerRef = useRef(null); + const [isDialogOpen, setIsDialogOpen] = useState(false); + const [isImageBeingProcessed, setIsImageBeingProcessed] = useState(false); + const [selectedImage, setSelectedImage] = useState(null); + const [imagePreviewUrl, setImagePreviewUrl] = useState(""); - const uploadImage = ({ - title, - assetFile, - progressCallback, - }: { - title: string; - assetFile: File; - progressCallback: (newState: UploaderState) => void; - }): Promise => { - throw new Error("Function not implemented."); + const handleClose = () => { + setIsDialogOpen(false); }; - const getCanvasRenderBitmap = (): MaybeCanvasRenderBitmapType => { - throw new Error("Function not implemented."); + const handleAddImage = (image: File) => { + setSelectedImage(image); + setIsImageBeingProcessed(true); + setImagePreviewUrl(URL.createObjectURL(image)); + + // TODO: Implement actual image processing here + // For now, we'll just simulate processing + setTimeout(() => { + setIsImageBeingProcessed(false); + }, 3000); }; - const EncodeImageBitmapToBase64 = ( - imageBitmap: ImageBitmap, - ): Promise => { - throw new Error("Function not implemented."); - }; - - const useJobContext = (): JobContextType => { - throw new Error("Function not implemented."); + const jobContext: JobContextType = { + jobTokens: [], + addJobToken: () => {}, + removeJobToken: () => {}, + clearJobTokens: () => {}, }; return (
-
-
-
Image Display
-
- Preview { - const target = e.target as HTMLImageElement; - target.style.display = "none"; - }} - /> -
+
+
+ { + // TODO: Implement file upload logic + console.log("Uploading file:", file); + return { url: "", mediaToken: "" }; + }} + getCanvasRenderBitmap={() => {}} + EncodeImageBitmapToBase64={async (bitmap: ImageBitmap) => { + // TODO: Implement bitmap encoding + console.log("Encoding bitmap to base64"); + return ""; + }} + useJobContext={() => { + // TODO: Implement job context logic + console.log("Using job context"); + return jobContext; + }} + onEnqueuePressed={async () => { + // TODO: Implement enqueue logic + console.log("Enqueue pressed"); + }} + />
diff --git a/frontend/apps/editor3d/app/src/signals/appTab.ts b/frontend/apps/editor3d/app/src/signals/appTab.ts index 3729c7e16f..acdd4d9cdb 100644 --- a/frontend/apps/editor3d/app/src/signals/appTab.ts +++ b/frontend/apps/editor3d/app/src/signals/appTab.ts @@ -1,6 +1,6 @@ import { signal } from "@preact/signals-react"; -export const appTabId = signal("3D"); +export const appTabId = signal("VIDEO"); export const setAppTabId = (newId: string) => { if (newId != "2D" && newId != "3D" && newId != "VIDEO") { diff --git a/frontend/apps/editor3d/package.json b/frontend/apps/editor3d/package.json index 761c2f581f..d0e1e0e586 100644 --- a/frontend/apps/editor3d/package.json +++ b/frontend/apps/editor3d/package.json @@ -58,9 +58,11 @@ "detect-gpu": "^5.0.38", "http-proxy-middleware": "^3.0.0", "isbot": "^4.1.0", + "konva": "^9.3.20", "lodash.debounce": "^4.0.8", "posthog-js": "^1.141.0", "react": "^18.2.0", + "react-colorful": "^5.6.1", "react-copy-to-clipboard": "^5.1.0", "react-dom": "^18.2.0", "react-drag-drop-files": "^2.3.10", diff --git a/frontend/libs/components/promptbox/src/index.ts b/frontend/libs/components/promptbox/src/index.ts index 0f0c83bdca..819236eb81 100644 --- a/frontend/libs/components/promptbox/src/index.ts +++ b/frontend/libs/components/promptbox/src/index.ts @@ -1,2 +1,3 @@ export * from "./lib/PromptBox2D"; export * from "./lib/PromptBox3D"; +export * from "./lib/PromptBoxVideo"; diff --git a/frontend/libs/components/promptbox/src/lib/PromptBox2D.tsx b/frontend/libs/components/promptbox/src/lib/PromptBox2D.tsx index 3bdf3f0f56..be52f39152 100644 --- a/frontend/libs/components/promptbox/src/lib/PromptBox2D.tsx +++ b/frontend/libs/components/promptbox/src/lib/PromptBox2D.tsx @@ -32,7 +32,12 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { IsDesktopApp } from "@storyteller/tauri-utils"; import { GalleryItem, GalleryModal } from "@storyteller/ui-gallery-modal"; import { PromptsApi } from "@storyteller/api"; -import { CommandSuccessStatus, GetAppPreferences, SoraImageRemix, SoraImageRemixErrorType } from "@storyteller/tauri-api"; +import { + CommandSuccessStatus, + GetAppPreferences, + SoraImageRemix, + SoraImageRemixErrorType, +} from "@storyteller/tauri-api"; import { SoundRegistry } from "@storyteller/soundboard"; interface ReferenceImage { @@ -291,9 +296,7 @@ export const PromptBox2D = ({ snapshot_media_token: snapshotMediaToken.data, disable_system_prompt: !useSystemPrompt, prompt: prompt, - maybe_additional_images: referenceImages.map( - (image) => image.mediaToken, - ), + maybe_additional_images: referenceImages.map((image) => image.mediaToken), maybe_number_of_samples: 1, }); @@ -307,7 +310,6 @@ export const PromptBox2D = ({ registry.playSound(soundName); } toast.success("Image added to queue"); - } else { const prefs = await GetAppPreferences(); const soundName = prefs.preferences?.enqueue_failure_sound; @@ -321,16 +323,19 @@ export const PromptBox2D = ({ if ("error_type" in generateResponse) { switch (generateResponse.error_type) { case SoraImageRemixErrorType.SoraLoginRequired: - errorMessage = "You need to log into Sora to continue. See the settings menu."; + errorMessage = + "You need to log into Sora to continue. See the settings menu."; break; case SoraImageRemixErrorType.ServerError: errorMessage = "Server error. Failed to enqueue image."; break; case SoraImageRemixErrorType.TooManyConcurrentTasks: - errorMessage = "You have too many Sora image generation tasks running. Please wait a moment."; + errorMessage = + "You have too many Sora image generation tasks running. Please wait a moment."; break; case SoraImageRemixErrorType.SoraUsernameNotYetCreated: - errorMessage = "Your Sora username is not yet created. Please visit the Sora.com website to create it first."; + errorMessage = + "Your Sora username is not yet created. Please visit the Sora.com website to create it first."; break; case SoraImageRemixErrorType.SoraIsHavingProblems: errorMessage = "Sora is having problems. Please try again later."; @@ -339,7 +344,6 @@ export const PromptBox2D = ({ } toast.error(errorMessage); } - }; const handleWebEnqueue = async () => { diff --git a/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx b/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx new file mode 100644 index 0000000000..c2662b0bfc --- /dev/null +++ b/frontend/libs/components/promptbox/src/lib/PromptBoxVideo.tsx @@ -0,0 +1,629 @@ +import { useState, useRef, useEffect } from "react"; +import { useSignals } from "@preact/signals-react/runtime"; +import { toast } from "@storyteller/ui-toaster"; +import { + JobContextType, + MaybeCanvasRenderBitmapType, + UploaderState, + UploaderStates, +} from "@storyteller/common"; +import { downloadFileFromUrl } from "@storyteller/api"; +import { PopoverMenu, PopoverItem } from "@storyteller/ui-popover"; +import { Tooltip } from "@storyteller/ui-tooltip"; +import { Button, ToggleButton } from "@storyteller/ui-button"; +import { Modal } from "@storyteller/ui-modal"; +import { + faMessageXmark, + faMessageCheck, + faSparkles, + faSpinnerThird, + faTimes, + faPlus, + faUpload, + faImages, +} from "@fortawesome/pro-solid-svg-icons"; +import { + faRectangleVertical, + faSquare, + faRectangle, +} from "@fortawesome/pro-regular-svg-icons"; +import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; +import { IsDesktopApp } from "@storyteller/tauri-utils"; +import { GalleryItem, GalleryModal } from "@storyteller/ui-gallery-modal"; +import { PromptsApi } from "@storyteller/api"; +import { + CommandSuccessStatus, + GetAppPreferences, + SoraImageRemix, + SoraImageRemixErrorType, +} from "@storyteller/tauri-api"; +import { SoundRegistry } from "@storyteller/soundboard"; + +interface ReferenceImage { + id: string; + url: string; + file: File; + mediaToken: string; +} + +interface PromptBoxVideoProps { + uploadImage: ({ + title, + assetFile, + progressCallback, + }: { + title: string; + assetFile: File; + progressCallback: (newState: UploaderState) => void; + }) => Promise; + getCanvasRenderBitmap: () => MaybeCanvasRenderBitmapType; + EncodeImageBitmapToBase64: (imageBitmap: ImageBitmap) => Promise; + useJobContext: () => JobContextType; + onEnqueuePressed?: () => void | Promise; +} + +export const PromptBoxVideo = ({ + uploadImage, + getCanvasRenderBitmap, + EncodeImageBitmapToBase64, + useJobContext, + onEnqueuePressed, +}: PromptBoxVideoProps) => { + useSignals(); + + console.log("Is this a desktop app?", IsDesktopApp()); + const [isModalOpen, setIsModalOpen] = useState(false); + const [content, setContent] = useState(""); + const { jobTokens, addJobToken, removeJobToken, clearJobTokens } = + useJobContext(); + + //const { lastRenderedBitmap } = useCanvasSignal(); + const [prompt, setPrompt] = useState(""); + const [isEnqueueing, setIsEnqueueing] = useState(false); + const [useSystemPrompt, setUseSystemPrompt] = useState(true); + const [isGalleryModalOpen, setIsGalleryModalOpen] = useState(false); + const [selectedGalleryImages, setSelectedGalleryImages] = useState( + [] + ); + const [activeGalleryTab, setActiveGalleryTab] = useState("my-media"); + const [referenceImages, setReferenceImages] = useState([]); + const [uploadingImages, setUploadingImages] = useState< + { id: string; file: File }[] + >([]); + const [aspectRatioList, setAspectRatioList] = useState([ + { + label: "3:2", + selected: true, + icon: , + }, + { + label: "2:3", + selected: false, + icon: , + }, + { + label: "1:1", + selected: false, + icon: , + }, + ]); + + const fileInputRef = useRef(null); + const textareaRef = useRef(null); + + useEffect(() => { + if (textareaRef.current) { + textareaRef.current.style.height = "auto"; + textareaRef.current.style.height = `${textareaRef.current.scrollHeight}px`; + } + }); + + const handleAspectRatioSelect = (selectedItem: PopoverItem) => { + setAspectRatioList((prev) => + prev.map((item) => ({ + ...item, + selected: item.label === selectedItem.label, + })) + ); + }; + + const handleFileUpload = (event: React.ChangeEvent) => { + const files = event.target.files; + if (files) { + Array.from(files).forEach((file) => { + const uploadId = Math.random().toString(36).substring(7); + setUploadingImages((prev) => [...prev, { id: uploadId, file }]); + + const reader = new FileReader(); + reader.onloadend = () => { + uploadImage({ + title: `reference-image-${Math.random() + .toString(36) + .substring(2, 15)}`, + assetFile: file, + progressCallback: (newState) => { + console.debug("Upload progress:", newState.data); + if (newState.status === UploaderStates.success && newState.data) { + const referenceImage: ReferenceImage = { + id: Math.random().toString(36).substring(7), + url: reader.result as string, + file, + mediaToken: newState.data || "", + }; + setReferenceImages((prev) => [...prev, referenceImage]); + setUploadingImages((prev) => + prev.filter((img) => img.id !== uploadId) + ); + toast.success("Reference image added."); + } else if ( + newState.status === UploaderStates.assetError || + newState.status === UploaderStates.imageCreateError + ) { + setUploadingImages((prev) => + prev.filter((img) => img.id !== uploadId) + ); + + toast.error("Upload failed. Please try again."); + } + }, + }); + }; + + reader.readAsDataURL(file); + }); + } + }; + + const handleRemoveReference = (id: string) => { + setReferenceImages((prev) => prev.filter((img) => img.id !== id)); + if (fileInputRef.current) { + fileInputRef.current.value = ""; + } + }; + + const handleUploadClick = () => { + fileInputRef.current?.click(); + }; + + const handleGallerySelect = () => { + setIsGalleryModalOpen(true); + }; + + const handleGalleryClose = () => { + setIsGalleryModalOpen(false); + setSelectedGalleryImages([]); + }; + + const handleImageSelect = (id: string) => { + setSelectedGalleryImages((prev) => { + if (prev.includes(id)) { + return prev.filter((imageId) => imageId !== id); + } + if (prev.length >= 4) { + return prev; + } + return [...prev, id]; + }); + }; + + const handleGalleryImages = (selectedItems: GalleryItem[]) => { + selectedItems.forEach((item) => { + if (!item.fullImage) return; + const referenceImage: ReferenceImage = { + id: Math.random().toString(36).substring(7), + url: item.fullImage, + file: new File([], "library-image"), + mediaToken: item.id, + }; + setReferenceImages((prev) => [...prev, referenceImage]); + }); + setIsGalleryModalOpen(false); + setSelectedGalleryImages([]); + }; + + const handleAction = (action: string) => { + switch (action) { + case "upload": + handleUploadClick(); + break; + case "gallery": + handleGallerySelect(); + break; + default: + console.log("Unknown action:", action); + } + }; + + const handlePaste = (e: React.ClipboardEvent) => { + e.preventDefault(); + const pastedText = e.clipboardData.getData("text").trim(); + setPrompt(pastedText); + }; + + const handleChange = (e: React.ChangeEvent) => { + setPrompt(e.target.value); + }; + + const handleTauriEnqueue = async () => { + const api = new PromptsApi(); + let image = getCanvasRenderBitmap(); + if (image === undefined) { + console.log("image is undefined"); + return; + } + const base64Bitmap = await EncodeImageBitmapToBase64(image); + + const byteString = atob(base64Bitmap); + const mimeString = "image/png"; + + const ab = new ArrayBuffer(byteString.length); + const ia = new Uint8Array(ab); + + for (let i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i); + } + + const uuid = crypto.randomUUID(); // Generate a new UUID + const file = new File([ab], `${uuid}.png`, { type: mimeString }); + + const snapshotMediaToken = await api.uploadSceneSnapshot({ + screenshot: file, + }); + + if (snapshotMediaToken.data === undefined) { + toast.error("Error: Unable to upload scene snapshot Please try again."); + return; + } + console.log("useSystemPrompt", useSystemPrompt); + console.log("Snapshot media token:", snapshotMediaToken.data); + + + const generateResponse = await SoraImageRemix({ + snapshot_media_token: snapshotMediaToken.data, + disable_system_prompt: !useSystemPrompt, + prompt: prompt, + maybe_additional_images: referenceImages.map((image) => image.mediaToken), + maybe_number_of_samples: 1, + }); + + console.log("generateResponse", generateResponse); + + if (generateResponse.status === CommandSuccessStatus.Success) { + const prefs = await GetAppPreferences(); + const soundName = prefs.preferences?.enqueue_success_sound; + if (soundName !== undefined) { + const registry = SoundRegistry.getInstance(); + registry.playSound(soundName); + } + toast.success("Image added to queue"); + } else { + const prefs = await GetAppPreferences(); + const soundName = prefs.preferences?.enqueue_failure_sound; + if (soundName !== undefined) { + const registry = SoundRegistry.getInstance(); + registry.playSound(soundName); + } + + let errorMessage = "Failed to enqueue image"; + + if ("error_type" in generateResponse) { + switch (generateResponse.error_type) { + case SoraImageRemixErrorType.SoraLoginRequired: + errorMessage = + "You need to log into Sora to continue. See the settings menu."; + break; + case SoraImageRemixErrorType.ServerError: + errorMessage = "Server error. Failed to enqueue image."; + break; + case SoraImageRemixErrorType.TooManyConcurrentTasks: + errorMessage = + "You have too many Sora image generation tasks running. Please wait a moment."; + break; + case SoraImageRemixErrorType.SoraUsernameNotYetCreated: + errorMessage = + "Your Sora username is not yet created. Please visit the Sora.com website to create it first."; + break; + case SoraImageRemixErrorType.SoraIsHavingProblems: + errorMessage = "Sora is having problems. Please try again later."; + break; + } + } + toast.error(errorMessage); + } + }; + + const handleWebEnqueue = async () => { + const api = new PromptsApi(); + // to take the snapshot of the canvas + // Call onEnqueuePressed if it exists + + let image = getCanvasRenderBitmap(); + if (image === undefined) { + toast.error( + "Error: Unable to generate image. Please check the input and try again." + ); + return; + } + const base64Bitmap = await EncodeImageBitmapToBase64(image); + + const byteString = atob(base64Bitmap); + const mimeString = "image/png"; + + const ab = new ArrayBuffer(byteString.length); + const ia = new Uint8Array(ab); + + for (let i = 0; i < byteString.length; i++) { + ia[i] = byteString.charCodeAt(i); + } + + const uuid = crypto.randomUUID(); // Generate a new UUID + const file = new File([ab], `${uuid}.png`, { type: mimeString }); + + const snapshotMediaToken = await api.uploadSceneSnapshot({ + screenshot: file, + }); + + if (snapshotMediaToken.data === undefined) { + toast.error("Error: Unable to upload scene snapshot Please try again."); + return; + } + console.log("useSystemPrompt", useSystemPrompt); + console.log("Snapshot media token:", snapshotMediaToken.data); + + const response = await api.enqueueImageGeneration({ + disableSystemPrompt: !useSystemPrompt, + prompt: prompt, + snapshotMediaToken: snapshotMediaToken.data, + additionalImages: referenceImages.map((image) => image.mediaToken), + }); + + if (response.success === true) { + toast.success("Please wait while we process your image."); + if (response.data) { + addJobToken(response.data); + } + return; + } else { + toast.error("Failed to enqueue image generation. Please try again."); + } + }; + const handleEnqueue = async () => { + console.log("Pressing Enqueue"); + if (onEnqueuePressed) { + try { + await onEnqueuePressed(); + } catch (error) { + console.error("Error in onEnqueuePressed callback:", error); + return; + } + } + + if (isEnqueueing) return; + setIsEnqueueing(true); + if (!prompt.trim()) return; + try { + console.log( + "(4) Enqueuing with prompt:", + prompt, + "and reference images:", + referenceImages + ); + + const isDesktop = IsDesktopApp(); + console.log("Is this a desktop app?", isDesktop); + + if (isDesktop) { + await handleTauriEnqueue(); + } else { + await handleWebEnqueue(); + } + } catch (error) { + console.error("Error during image generation:", error); + toast.error( + "An error occurred while generating the image. Please try again." + ); + } finally { + await new Promise((resolve) => setTimeout(resolve, 100)); + setIsEnqueueing(false); + } + }; + + const getCurrentAspectRatioIcon = () => { + const selected = aspectRatioList.find((item) => item.selected); + if (!selected || !selected.icon) return faRectangle; + const iconElement = selected.icon as React.ReactElement; + return iconElement.props.icon; + }; + + const handleKeyDown = (e: React.KeyboardEvent) => { + if (e.key === "Enter" && !e.shiftKey) { + e.preventDefault(); + + handleEnqueue(); + } + }; + + return ( + <> + { + setIsModalOpen(false); + setContent(""); + }} + > + {content} + +
+ {(referenceImages.length > 0 || uploadingImages.length > 0) && ( +
+ {referenceImages.map((image) => ( +
+ Reference + +
+ ))} + {uploadingImages.map(({ id, file }) => { + const previewUrl = URL.createObjectURL(file); + return ( +
+
+ Uploading preview +
+
+ +
+
+ ); + })} +
+ )} +
+ +
+ , + action: "upload", + }, + { + label: "Choose from library", + selected: false, + icon: , + action: "gallery", + }, + ]} + onPanelAction={handleAction} + showIconsInList + buttonClassName="bg-transparent hover:bg-transparent py-1.5 px-0 pr-1 m-0 hover:opacity-50 transition-opacity duration-100 ring-0 border-none focus:ring-0 outline-none" + triggerIcon={ + + } + /> + +