From 76add858c98342e269d8adb18636ffb31e7da04f Mon Sep 17 00:00:00 2001 From: Tanish Manku Date: Tue, 28 Apr 2026 23:44:26 -0700 Subject: [PATCH] PageEnigma -> PageScene: rename to match the route param and the page title The directory was named after a stale codename. The route is /$sceneToken, the top bar reads "Edit Scene", and the page is the main scene-editing workspace. Renaming the directory, top-level component, and Zustand store accordingly: - pages/PageEnigma/ -> pages/PageScene/ - pages/PageScene/PageEnigma.tsx -> PageScene.tsx - pages/PageScene/PageEnigmaStore.ts -> PageSceneStore.ts - usePageEnigmaStore -> usePageSceneStore (function rename across the whole codebase via sed) - All ~/pages/PageEnigma/* import paths -> ~/pages/PageScene/* - Component name PageEnigma -> PageScene in routes/_index.tsx and routes/$sceneToken.tsx 234 files touched, all mechanical. Typecheck error count holds at 144; zero new errors introduced by the rename. --- .../app/src/Classes/ApiManager/BetaKeysApi.ts | 2 +- .../src/Classes/ApiManager/MediaFilesApi.ts | 2 +- .../app/src/Classes/ApiManager/PromptsApi.ts | 2 +- .../app/src/Classes/ApiManager/TtsApi.ts | 2 +- .../Classes/ApiManager/UserBookmarksApi.ts | 2 +- .../Classes/ApiManager/VoiceDesignerApi.ts | 2 +- .../app/src/Classes/ApiManager/WeightsApi.ts | 2 +- .../experiences/ImageTo3DExperience.tsx | 8 +- .../src/components/signaled/ErrorDialog.tsx | 4 +- .../signaled/TopBar/MyMoviesButton.tsx | 4 +- .../signaled/TopBar/SceneTitleInput.tsx | 4 +- .../src/components/signaled/TopBar/TopBar.tsx | 2 +- .../apps/artcraft/app/src/config/appMenu.tsx | 2 +- frontend/apps/artcraft/app/src/index.tsx | 4 +- .../app/src/pages/PageEnigma/index.tsx | 1 - .../app/src/pages/PageMoodboard/cardLayout.ts | 37 +++ .../MoodboardHtmlColorPicker.tsx | 247 ++++++++++++++++++ .../interactions/findDropTarget.ts | 79 ++++++ .../PageMoodboardHtml/nodes/CardNodeHtml.tsx | 192 ++++++++++++++ .../DragAndDrop/DndAsset.ts | 16 +- .../Editor/APIManagerResponseError.ts | 0 .../Editor/APIManagerResponseSuccess.ts | 0 .../Editor/Commands.ts | 0 .../Editor/CustomOutlinePass.js | 0 .../EditorStateJSON/editor_state_json.ts | 0 .../EditorState/EditorStateJSON/index.ts | 0 .../EditorStateJSON/object_3d_json.ts | 0 .../EditorStateJSON/scene_state_json.ts | 0 .../Editor/EditorState/editor_state.ts | 0 .../Editor/EditorState/index.ts | 0 .../Editor/EditorState/object_3d.ts | 0 .../Editor/EditorState/scene_state.ts | 0 .../Editor/FindSurfaces.js | 0 .../Editor/InfiniteGridHelper.ts | 0 .../Editor/KinHelpers/BoneJSONHelper.ts | 0 .../Editor/KinHelpers/FKBoneFilter.ts | 0 .../Editor/KinHelpers/FKHelper.ts | 0 .../Editor/SceneMetadata.ts | 6 +- .../Editor/TransformControls.js | 0 .../Editor/api_fetchers.ts | 0 .../Editor/api_manager.ts | 0 .../Editor/chromakey.js | 0 .../Editor/editor.ts | 26 +- .../Editor/free_cam.ts | 4 +- .../Editor/helper.ts | 8 +- .../Editor/keybinds_controls.ts | 40 +-- .../Editor/placeholder_manager.ts | 0 .../Editor/save_manager.ts | 10 +- .../{PageEnigma => PageScene}/Editor/scene.ts | 6 +- .../Editor/scene_manager_api.ts | 4 +- .../Editor/video_generation.ts | 16 +- .../GlobalSettingsManager.tsx | 0 .../InstallSounds.ts | 0 .../{PageEnigma => PageScene}/PageEditor.tsx | 20 +- .../PageScene.tsx} | 10 +- .../PageSceneStore.ts} | 4 +- .../actions/addCharacter.ts | 4 +- .../actions/addObject.ts | 4 +- .../actions/addShape.ts | 4 +- .../actions/deleteObject.ts | 2 +- .../actions/index.ts | 0 .../actions/selectObject.ts | 0 .../actions/setCameraAspect.ts | 4 +- .../actions/setTransformMode.ts | 4 +- .../composable_engines/scene_format.tsx | 0 .../comps/AspectRatioMenu/AspectRatioMenu.tsx | 10 +- .../comps/AspectRatioMenu/index.ts | 0 .../comps/AspectRatioMenu/index.tsx | 0 .../comps/AssetMenu/AssetMenu.tsx | 4 +- .../comps/AssetMenu/AssetModal.tsx | 4 +- .../comps/AssetMenu/index.tsx | 0 .../CameraSettingsModal.tsx | 2 +- .../comps/CameraSettingsModal/index.tsx | 0 .../ControlPanelSceneObject.tsx | 16 +- .../DraggablePrecisionMutator.tsx | 0 .../comps/ControlPanelSceneObject/index.tsx | 0 .../utils/objectMismatch.ts | 0 .../ControlPanelSceneObject/utils/sanitize.ts | 0 .../comps/Controls3D/Controls3D.tsx | 6 +- .../comps/Controls3D/index.tsx | 0 .../ControlsTopButtons/ControlsTopButtons.tsx | 10 +- .../comps/ControlsTopButtons/Help/Help.tsx | 0 .../comps/ControlsTopButtons/Help/index.tsx | 0 .../LoadUserScenes/LoadUserScenes.tsx | 2 +- .../LoadUserScenes/index.ts | 0 .../NewSceneFromTemplate.tsx | 2 +- .../NewSceneFromTemplate/index.tsx | 0 .../ScenePicker/SceneCard.tsx | 0 .../ScenePicker/ScenePicker.tsx | 2 +- .../ControlsTopButtons/ScenePicker/index.tsx | 0 .../TestFeaturesButtons.tsx | 2 +- .../comps/ControlsTopButtons/index.tsx | 0 .../comps/DragComponent/DragComponent.tsx | 2 +- .../comps/EditorLoadingBar.tsx | 0 .../comps/EngineCanvases.tsx | 2 +- .../FocalLengthDisplay/FocalLengthDisplay.tsx | 2 +- .../comps/GenerateModals/Activity.tsx | 2 +- .../comps/GenerateModals/CompletedCard.tsx | 0 .../comps/GenerateModals/GenerateModals.tsx | 12 +- .../comps/GenerateModals/InProgressCard.tsx | 4 +- .../comps/GenerateModals/MyMovies.tsx | 10 +- .../comps/GenerateModals/Sharing.tsx | 8 +- .../comps/GenerateModals/SocialButton.tsx | 0 .../GenerateModals/utils/downloadFile.ts | 0 .../comps/OnboardingHelper.tsx | 0 .../comps/Outliner/Outliner.tsx | 4 +- .../comps/Outliner/index.tsx | 0 .../comps/PoseModeSelector.tsx | 4 +- .../PrecisionSelector/PrecisionSelector.tsx | 0 .../PreviewEngineCamera.tsx | 10 +- .../comps/PreviewEngineCamera/index.tsx | 0 .../comps/PreviewFrameImage.tsx | 6 +- .../comps/PreviewImages.tsx | 0 .../comps/SceneContainer/Letterbox.tsx | 4 +- .../comps/SceneContainer/SceneContainer.tsx | 6 +- .../comps/SceneContainer/helpers.ts | 0 .../comps/SceneContainer/index.ts | 0 .../comps/SceneContainer/index.tsx | 0 .../comps/SidePanel/SidePanel.tsx | 8 +- .../comps/SidePanel/index.tsx | 0 .../comps/SidePanel/tabList.tsx | 4 +- .../comps/SidePanelMenu/SidePanelMenu.tsx | 8 +- .../comps/SidePanelMenu/index.ts | 0 .../comps/SidePanelTabs/SidePanelTabs.tsx | 0 .../comps/SidePanelTabs/hooks/index.ts | 0 .../SidePanelTabs/hooks/useFeatureFlags.tsx | 0 .../hooks/useFeaturedObjects.tsx | 2 +- .../hooks/useSearchFeaturedObjects.tsx | 4 +- .../hooks/useSearchUserObjects.tsx | 2 +- .../SidePanelTabs/hooks/useUserObjects.tsx | 2 +- .../comps/SidePanelTabs/index.tsx | 0 .../SidePanelTabs/sharedComps/ItemElement.tsx | 6 +- .../sharedComps/ItemElements.tsx | 2 +- .../sharedComps/SubTabButtons.tsx | 0 .../SidePanelTabs/sharedComps/TabTitle.tsx | 4 +- .../comps/SidePanelTabs/sharedComps/index.ts | 0 .../tabComps/CharactersComboTabs/AnimeTab.tsx | 0 .../CharactersComboTabs/CartoonsTab.tsx | 2 +- .../filterCharacterTypes.ts | 2 +- .../tabComps/CharactersComboTabs/index.ts | 0 .../CharactersComboTabs/subtabAnimations.tsx | 4 +- .../CharactersComboTabs/subtabCharacters.tsx | 4 +- .../CharactersComboTabs/subtabExpressions.tsx | 2 +- .../SidePanelTabs/tabComps/CreaturesTab.tsx | 2 +- .../SidePanelTabs/tabComps/ObjectsTab.tsx | 4 +- .../tabComps/PlanesTab/PlanesTab.tsx | 0 .../tabComps/PlanesTab/index.tsx | 0 .../tabComps/PlanesTab/subTabImagePlanes.tsx | 2 +- .../tabComps/PlanesTab/subTabVideoPlanes.tsx | 2 +- .../comps/SidePanelTabs/tabComps/SetsTab.tsx | 2 +- .../SidePanelTabs/tabComps/SkyboxesTab.tsx | 4 +- .../StylizeTab/GenerateMovieButton.tsx | 6 +- .../tabComps/StylizeTab/IPAdapter.tsx | 6 +- .../tabComps/StylizeTab/ItemPicker.tsx | 2 +- .../StylizeTab/PageStyleSelection.tsx | 8 +- .../tabComps/StylizeTab/Prompts.tsx | 10 +- .../tabComps/StylizeTab/StyleButtons.tsx | 10 +- .../tabComps/StylizeTab/StyleOptions.tsx | 6 +- .../tabComps/StylizeTab/StyleSelection.tsx | 10 +- .../StylizeTab/StyleSelectionButton.tsx | 2 +- .../tabComps/StylizeTab/StyleStrength.tsx | 4 +- .../tabComps/StylizeTab/StylizeTab.tsx | 14 +- .../utilities/fetchMediaItems.ts | 4 +- .../comps/SidePanelTabs/utilities/index.ts | 0 .../comps/SidePanelTabs/utilities/misc.ts | 4 +- .../StyleMoreOptions/StyleMoreOptions.tsx | 2 +- .../comps/StyleSelection/ItemPicker.tsx | 2 +- .../comps/StyleSelection/StyleSelection.tsx | 12 +- .../comps/StyleSelection/index.tsx | 0 .../constants/RandomTexts.ts | 2 +- .../constants/page.ts | 0 .../contexts/EngineContext/EngineContext.tsx | 2 +- .../contexts/EngineContext/EngineProvider.tsx | 2 +- .../contexts/EngineContext/index.ts | 0 .../datastructures/common.ts | 0 .../enums/ArtStyle.ts | 0 .../enums/AssetFilterOption.ts | 0 .../enums/AssetType.ts | 0 .../enums/AudioTabPages.ts | 0 .../enums/EditorState.ts | 0 .../enums/FetchStatus.ts | 0 .../enums/GenerateTtsAudioErrorType.ts | 0 .../enums/JobState.ts | 0 .../enums/MediaFileClass.ts | 0 .../enums/MediaFileType.ts | 0 .../enums/StylizeTabPages.ts | 0 .../enums/Visibility.ts | 0 .../enums/WeightCategory.ts | 0 .../enums/WeightType.ts | 0 .../{PageEnigma => PageScene}/enums/index.ts | 0 .../app/src/pages/PageScene/index.tsx | 1 + .../models/assets.ts | 0 .../models/generationOptions.ts | 0 .../{PageEnigma => PageScene}/models/index.ts | 0 .../models/mediaInfo.ts | 2 +- .../models/message.ts | 2 +- .../models/pagination.ts | 0 .../models/prompts.ts | 0 .../models/sceneGenerationMetadata.ts | 0 .../models/sidePanel.ts | 0 .../{PageEnigma => PageScene}/models/track.ts | 2 +- .../{PageEnigma => PageScene}/models/tts.ts | 2 +- .../models/types.tsx | 2 +- .../models/userBookmark.ts | 0 .../{PageEnigma => PageScene}/models/voice.ts | 2 +- .../pose/CachedFilesetResolver.ts | 0 .../pose/CachedPoseLandmarker.ts | 0 .../proxy/storyteller_proxy_3d_object.ts | 0 .../proxy/storyteller_proxy_scene.ts | 0 .../signals/camera.ts | 0 .../signals/demoAssets/demoAnimationItems.ts | 2 +- .../signals/demoAssets/demoAssets.ts | 2 +- .../signals/demoAssets/demoAudioItems.ts | 2 +- .../signals/demoAssets/demoCharacterItems.ts | 2 +- .../signals/demoAssets/demoMemeItems.ts | 2 +- .../signals/demoAssets/demoSkyboxItems.ts | 0 .../signals/demoAssets/index.ts | 0 .../signals/dragAndDrop.ts | 2 +- .../signals/engine.ts | 10 +- .../signals/index.ts | 0 .../signals/objectPanel/index.ts | 0 .../signals/objectPanel/objectPanel.ts | 0 .../signals/objectPanel/types.tsx | 2 +- .../signals/outliner/index.ts | 0 .../signals/outliner/outliner.ts | 0 .../signals/outliner/types.ts | 0 .../signals/precisionSelectorMenu.ts | 0 .../signals/promptBox.ts | 0 .../{PageEnigma => PageScene}/styleList.ts | 2 +- .../artcraft/app/src/routes/$sceneToken.tsx | 6 +- .../apps/artcraft/app/src/routes/_index.tsx | 4 +- .../backgroundLoadedMedia.ts | 2 +- .../backgroundLoadedMedia/utilities.ts | 4 +- .../apps/artcraft/app/src/signals/global.ts | 2 +- 234 files changed, 859 insertions(+), 304 deletions(-) delete mode 100644 frontend/apps/artcraft/app/src/pages/PageEnigma/index.tsx create mode 100644 frontend/apps/artcraft/app/src/pages/PageMoodboard/cardLayout.ts create mode 100644 frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/MoodboardHtmlColorPicker.tsx create mode 100644 frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/interactions/findDropTarget.ts create mode 100644 frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/nodes/CardNodeHtml.tsx rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/DragAndDrop/DndAsset.ts (89%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/APIManagerResponseError.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/APIManagerResponseSuccess.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/Commands.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/CustomOutlinePass.js (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/EditorStateJSON/editor_state_json.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/EditorStateJSON/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/EditorStateJSON/object_3d_json.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/EditorStateJSON/scene_state_json.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/editor_state.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/object_3d.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/EditorState/scene_state.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/FindSurfaces.js (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/InfiniteGridHelper.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/KinHelpers/BoneJSONHelper.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/KinHelpers/FKBoneFilter.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/KinHelpers/FKHelper.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/SceneMetadata.ts (83%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/TransformControls.js (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/api_fetchers.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/api_manager.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/chromakey.js (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/editor.ts (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/free_cam.ts (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/helper.ts (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/keybinds_controls.ts (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/placeholder_manager.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/save_manager.ts (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/scene.ts (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/scene_manager_api.ts (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/Editor/video_generation.ts (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/GlobalSettingsManager.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/InstallSounds.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/PageEditor.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma/PageEnigma.tsx => PageScene/PageScene.tsx} (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma/PageEnigmaStore.ts => PageScene/PageSceneStore.ts} (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/addCharacter.ts (85%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/addObject.ts (85%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/addShape.ts (85%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/deleteObject.ts (81%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/selectObject.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/setCameraAspect.ts (77%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/actions/setTransformMode.ts (75%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/composable_engines/scene_format.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/AspectRatioMenu/AspectRatioMenu.tsx (89%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/AspectRatioMenu/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/AspectRatioMenu/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/AssetMenu/AssetMenu.tsx (90%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/AssetMenu/AssetModal.tsx (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/AssetMenu/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/CameraSettingsModal/CameraSettingsModal.tsx (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/CameraSettingsModal/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlPanelSceneObject/ControlPanelSceneObject.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlPanelSceneObject/DraggablePrecisionMutator.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlPanelSceneObject/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlPanelSceneObject/utils/objectMismatch.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlPanelSceneObject/utils/sanitize.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/Controls3D/Controls3D.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/Controls3D/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/ControlsTopButtons.tsx (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/Help/Help.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/Help/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/LoadUserScenes/LoadUserScenes.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/LoadUserScenes/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/NewSceneFromTemplate/NewSceneFromTemplate.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/NewSceneFromTemplate/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/ScenePicker/SceneCard.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/ScenePicker/ScenePicker.tsx (92%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/ScenePicker/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/TestFeaturesButtons.tsx (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/ControlsTopButtons/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/DragComponent/DragComponent.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/EditorLoadingBar.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/EngineCanvases.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/FocalLengthDisplay/FocalLengthDisplay.tsx (91%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/Activity.tsx (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/CompletedCard.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/GenerateModals.tsx (73%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/InProgressCard.tsx (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/MyMovies.tsx (85%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/Sharing.tsx (95%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/SocialButton.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/GenerateModals/utils/downloadFile.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/OnboardingHelper.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/Outliner/Outliner.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/Outliner/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/PoseModeSelector.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/PrecisionSelector/PrecisionSelector.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/PreviewEngineCamera/PreviewEngineCamera.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/PreviewEngineCamera/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/PreviewFrameImage.tsx (90%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/PreviewImages.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SceneContainer/Letterbox.tsx (91%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SceneContainer/SceneContainer.tsx (79%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SceneContainer/helpers.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SceneContainer/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SceneContainer/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanel/SidePanel.tsx (84%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanel/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanel/tabList.tsx (88%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelMenu/SidePanelMenu.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelMenu/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/SidePanelTabs.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/hooks/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/hooks/useFeatureFlags.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/hooks/useFeaturedObjects.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/hooks/useSearchFeaturedObjects.tsx (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/hooks/useSearchUserObjects.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/hooks/useUserObjects.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/sharedComps/ItemElement.tsx (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/sharedComps/ItemElements.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/sharedComps/SubTabButtons.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/sharedComps/TabTitle.tsx (86%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/sharedComps/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/AnimeTab.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/CartoonsTab.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/filterCharacterTypes.ts (94%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/subtabAnimations.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/subtabCharacters.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CharactersComboTabs/subtabExpressions.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/CreaturesTab.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/ObjectsTab.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/PlanesTab/PlanesTab.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/PlanesTab/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/PlanesTab/subTabImagePlanes.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/PlanesTab/subTabVideoPlanes.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/SetsTab.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/SkyboxesTab.tsx (77%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/GenerateMovieButton.tsx (91%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/IPAdapter.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/ItemPicker.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/PageStyleSelection.tsx (84%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/Prompts.tsx (94%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/StyleButtons.tsx (83%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/StyleOptions.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/StyleSelection.tsx (92%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/StyleSelectionButton.tsx (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/StyleStrength.tsx (91%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/tabComps/StylizeTab/StylizeTab.tsx (78%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/utilities/fetchMediaItems.ts (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/utilities/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/SidePanelTabs/utilities/misc.ts (93%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/StyleMoreOptions/StyleMoreOptions.tsx (83%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/StyleSelection/ItemPicker.tsx (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/StyleSelection/StyleSelection.tsx (73%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/comps/StyleSelection/index.tsx (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/constants/RandomTexts.ts (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/constants/page.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/contexts/EngineContext/EngineContext.tsx (94%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/contexts/EngineContext/EngineProvider.tsx (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/contexts/EngineContext/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/datastructures/common.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/ArtStyle.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/AssetFilterOption.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/AssetType.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/AudioTabPages.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/EditorState.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/FetchStatus.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/GenerateTtsAudioErrorType.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/JobState.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/MediaFileClass.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/MediaFileType.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/StylizeTabPages.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/Visibility.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/WeightCategory.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/WeightType.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/enums/index.ts (100%) create mode 100644 frontend/apps/artcraft/app/src/pages/PageScene/index.tsx rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/assets.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/generationOptions.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/mediaInfo.ts (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/message.ts (88%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/pagination.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/prompts.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/sceneGenerationMetadata.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/sidePanel.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/track.ts (96%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/tts.ts (95%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/types.tsx (98%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/userBookmark.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/models/voice.ts (87%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/pose/CachedFilesetResolver.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/pose/CachedPoseLandmarker.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/proxy/storyteller_proxy_3d_object.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/proxy/storyteller_proxy_scene.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/camera.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/demoAnimationItems.ts (99%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/demoAssets.ts (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/demoAudioItems.ts (94%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/demoCharacterItems.ts (97%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/demoMemeItems.ts (95%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/demoSkyboxItems.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/demoAssets/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/dragAndDrop.ts (81%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/engine.ts (63%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/objectPanel/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/objectPanel/objectPanel.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/objectPanel/types.tsx (83%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/outliner/index.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/outliner/outliner.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/outliner/types.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/precisionSelectorMenu.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/signals/promptBox.ts (100%) rename frontend/apps/artcraft/app/src/pages/{PageEnigma => PageScene}/styleList.ts (98%) diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/BetaKeysApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/BetaKeysApi.ts index c9be914986..3ee28a61f2 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/BetaKeysApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/BetaKeysApi.ts @@ -1,6 +1,6 @@ import { ApiManager, ApiResponse } from "./ApiManager"; import { BetaKey } from "~/models"; -import { Pagination } from "~/pages/PageEnigma/models"; +import { Pagination } from "~/pages/PageScene/models"; export class BetaKeysApi extends ApiManager { public CreateBetaKey({ diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/MediaFilesApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/MediaFilesApi.ts index 79d857ffb3..55ac7e2f67 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/MediaFilesApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/MediaFilesApi.ts @@ -3,7 +3,7 @@ import { MediaInfo, Pagination, PaginationInfinite, -} from "~/pages/PageEnigma/models"; +} from "~/pages/PageScene/models"; import { ApiManager, ApiResponse } from "./ApiManager"; import { authentication } from "~/signals"; import type { Property } from "csstype"; diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/PromptsApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/PromptsApi.ts index bcf3b9beea..d7962f8883 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/PromptsApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/PromptsApi.ts @@ -1,5 +1,5 @@ import { ApiManager, ApiResponse } from "./ApiManager"; -import { Prompts } from "~/pages/PageEnigma/models"; +import { Prompts } from "~/pages/PageScene/models"; export class PromptsApi extends ApiManager { public GetPromptsByToken({ diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/TtsApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/TtsApi.ts index b15a8afaa3..e7c0d4ee79 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/TtsApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/TtsApi.ts @@ -1,5 +1,5 @@ import { ApiManager, ApiResponse } from "./ApiManager"; -import { GenerateTtsAudioErrorType } from "~/pages/PageEnigma/enums"; +import { GenerateTtsAudioErrorType } from "~/pages/PageScene/enums"; import { Visibility } from "~/enums"; export interface GenerateTtsAudioRequest { diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/UserBookmarksApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/UserBookmarksApi.ts index 3e5e25e391..6aba3877d7 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/UserBookmarksApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/UserBookmarksApi.ts @@ -4,7 +4,7 @@ import { UserBookmarkBatch, UserBookmarkByEntity, UserBookmarkByUser, -} from "~/pages/PageEnigma/models"; +} from "~/pages/PageScene/models"; import { authentication } from "~/signals"; export enum ScopedEntityTypes { diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/VoiceDesignerApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/VoiceDesignerApi.ts index 4256c9848f..6b1efe251f 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/VoiceDesignerApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/VoiceDesignerApi.ts @@ -1,5 +1,5 @@ import { ApiManager, ApiResponse } from "./ApiManager"; -import { Pagination } from "~/pages/PageEnigma/models"; +import { Pagination } from "~/pages/PageScene/models"; import { authentication } from "~/signals"; import { ZsDataset } from "~/models/Dataset"; diff --git a/frontend/apps/artcraft/app/src/Classes/ApiManager/WeightsApi.ts b/frontend/apps/artcraft/app/src/Classes/ApiManager/WeightsApi.ts index 010d7965c0..4f64fd93da 100644 --- a/frontend/apps/artcraft/app/src/Classes/ApiManager/WeightsApi.ts +++ b/frontend/apps/artcraft/app/src/Classes/ApiManager/WeightsApi.ts @@ -1,7 +1,7 @@ import { ApiManager, ApiResponse } from "./ApiManager"; import { authentication } from "~/signals"; import { Weight } from "~/models"; -import { Pagination, PaginationInfinite } from "~/pages/PageEnigma/models"; +import { Pagination, PaginationInfinite } from "~/pages/PageScene/models"; import { FilterEngineCategories, FilterMediaClasses, diff --git a/frontend/apps/artcraft/app/src/components/experiences/ImageTo3DExperience.tsx b/frontend/apps/artcraft/app/src/components/experiences/ImageTo3DExperience.tsx index 2a0cc0c9c2..44c419bce9 100644 --- a/frontend/apps/artcraft/app/src/components/experiences/ImageTo3DExperience.tsx +++ b/frontend/apps/artcraft/app/src/components/experiences/ImageTo3DExperience.tsx @@ -25,11 +25,11 @@ import { import { toast } from "react-hot-toast"; import { v4 as uuidv4 } from "uuid"; import { useTabStore } from "../../pages/Stores/TabState"; -import { addObject } from "../../pages/PageEnigma/actions"; -import { getActiveEditor } from "../../pages/PageEnigma/contexts/EngineContext"; -import { set3DPageMounted } from "../../pages/PageEnigma/Editor/editor"; +import { addObject } from "../../pages/PageScene/actions"; +import { getActiveEditor } from "../../pages/PageScene/contexts/EngineContext"; +import { set3DPageMounted } from "../../pages/PageScene/Editor/editor"; import { AssetType } from "~/enums"; -import type { MediaItem } from "../../pages/PageEnigma/models"; +import type { MediaItem } from "../../pages/PageScene/models"; import { SPLAT_MODELS } from "@storyteller/model-list"; import { ClassyModelSelector, diff --git a/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx b/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx index ac546b4a5b..ac26e5cdca 100644 --- a/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx +++ b/frontend/apps/artcraft/app/src/components/signaled/ErrorDialog.tsx @@ -3,11 +3,11 @@ import { useShallow } from "zustand/shallow"; import { Modal } from "@storyteller/ui-modal"; import { Button } from "@storyteller/ui-button"; -import { usePageEnigmaStore } from "~/pages/PageEnigma/PageEnigmaStore"; +import { usePageSceneStore } from "~/pages/PageScene/PageSceneStore"; export function ErrorDialog() { const { showErrorDialog, errorDialogTitle, errorDialogMessage, setShowErrorDialog } = - usePageEnigmaStore( + usePageSceneStore( useShallow((s) => ({ showErrorDialog: s.showErrorDialog, errorDialogTitle: s.errorDialogTitle, diff --git a/frontend/apps/artcraft/app/src/components/signaled/TopBar/MyMoviesButton.tsx b/frontend/apps/artcraft/app/src/components/signaled/TopBar/MyMoviesButton.tsx index c813744cd7..95e01e8276 100644 --- a/frontend/apps/artcraft/app/src/components/signaled/TopBar/MyMoviesButton.tsx +++ b/frontend/apps/artcraft/app/src/components/signaled/TopBar/MyMoviesButton.tsx @@ -3,7 +3,7 @@ import { twMerge } from "tailwind-merge"; import { faFilm } from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Button } from "@storyteller/ui-button"; -import { usePageEnigmaStore } from "~/pages/PageEnigma/PageEnigmaStore"; +import { usePageSceneStore } from "~/pages/PageScene/PageSceneStore"; import { activeWorkflowJobs } from "~/signals"; @@ -18,7 +18,7 @@ export const MyMoviesButton = () => { +); diff --git a/frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/interactions/findDropTarget.ts b/frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/interactions/findDropTarget.ts new file mode 100644 index 0000000000..227edd3778 --- /dev/null +++ b/frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/interactions/findDropTarget.ts @@ -0,0 +1,79 @@ +import { useMoodboardStore } from "../../PageMoodboard/MoodboardStore"; +import { worldPointFromClient } from "./htmlStagePointer"; + +// Returns the id of the top-level node under the given client-space point, or +// null if the point is over bare canvas. Skips the dragged node, groups, and +// any nodes inside groups/cards. +// +// Used by node drag handlers on pointer-up to decide whether the release +// should either (a) form a new card with that target + the dragged node, or +// (b) append the dragged node to an existing card. +export const findDropTargetAt = ( + clientX: number, + clientY: number, + draggedId: string, +): string | null => { + const container = document.querySelector( + "[data-moodboard-html-stage]", + ); + if (!container) return null; + const { nodes, rootOrder, viewport } = useMoodboardStore.getState(); + const p = worldPointFromClient(container, clientX, clientY, viewport); + if (!p) return null; + // Iterate in reverse z-order so the topmost overlap wins. + for (let i = rootOrder.length - 1; i >= 0; i--) { + const id = rootOrder[i]; + if (id === draggedId) continue; + const n = nodes[id]; + if (!n) continue; + if (n.kind === "group") continue; + if ( + p.x >= n.x && + p.x <= n.x + n.width && + p.y >= n.y && + p.y <= n.y + n.height + ) { + return id; + } + } + return null; +}; + +// Applies the drop result: forms a new card (target is a regular node) or +// appends (target is already a card). Returns true if any mutation happened. +export const applyDropOnto = ( + draggedId: string, + targetId: string, +): boolean => { + const state = useMoodboardStore.getState(); + const target = state.nodes[targetId]; + if (!target) return false; + if (target.kind === "card") { + state.appendToCard(targetId, draggedId); + return true; + } + if (target.kind === "image" || target.kind === "video" || target.kind === "text") { + state.createCardFromDrop(draggedId, targetId); + return true; + } + return false; +}; + +// Recomputes the hover target under the pointer and publishes the result to +// the store's transient `dragPreview` so overlay UI can react. Safe to call +// on every pointermove — the setter is a shallow equality in practice since +// we always emit a fresh object, but targets change rarely during a drag. +export const updateDragPreview = ( + clientX: number, + clientY: number, + draggedId: string, +): void => { + const targetId = findDropTargetAt(clientX, clientY, draggedId); + useMoodboardStore + .getState() + .setDragPreview({ draggedId, targetId }); +}; + +export const clearDragPreview = (): void => { + useMoodboardStore.getState().setDragPreview(null); +}; diff --git a/frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/nodes/CardNodeHtml.tsx b/frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/nodes/CardNodeHtml.tsx new file mode 100644 index 0000000000..2bd971b9ae --- /dev/null +++ b/frontend/apps/artcraft/app/src/pages/PageMoodboardHtml/nodes/CardNodeHtml.tsx @@ -0,0 +1,192 @@ +import { memo, useRef } from "react"; +import { useShallow } from "zustand/react/shallow"; +import { + CardNode as CardNodeData, + MoodboardNode, +} from "../../PageMoodboard/types"; +import { useMoodboardStore } from "../../PageMoodboard/MoodboardStore"; + +interface Props { + node: CardNodeData; + draggable: boolean; + onSelect: (id: string, additive: boolean) => void; +} + +// Cards render their children in a vertical flex column. Children fill the +// card's inner width; their height follows the child's natural aspect ratio +// (images/videos) or own height (text). The card itself absorbs clicks — +// children inside a card aren't independently selectable, same pattern as +// GroupNodeHtml. +const CardNodeHtmlInner = ({ node, draggable, onSelect }: Props) => { + const updateNode = useMoodboardStore((s) => s.updateNode); + const pushHistory = useMoodboardStore((s) => s.pushHistory); + const children = useMoodboardStore( + useShallow((s) => + node.childIds + .map((id) => s.nodes[id]) + .filter((n): n is MoodboardNode => Boolean(n)), + ), + ); + const dragStateRef = useRef<{ + active: boolean; + startClient: { x: number; y: number }; + startNode: { x: number; y: number }; + moved: boolean; + } | null>(null); + + const handlePointerDown = (e: React.PointerEvent) => { + if (e.button !== 0) return; + if (!draggable) return; + e.stopPropagation(); + const additive = e.shiftKey; + onSelect(node.id, additive); + dragStateRef.current = { + active: true, + startClient: { x: e.clientX, y: e.clientY }, + startNode: { x: node.x, y: node.y }, + moved: false, + }; + const onMove = (ev: PointerEvent) => { + const st = dragStateRef.current; + if (!st || !st.active) return; + const { zoom } = useMoodboardStore.getState().viewport; + const dx = (ev.clientX - st.startClient.x) / zoom; + const dy = (ev.clientY - st.startClient.y) / zoom; + if (!st.moved && (Math.abs(dx) > 1 || Math.abs(dy) > 1)) { + st.moved = true; + pushHistory(); + } + if (st.moved) { + updateNode(node.id, { + x: st.startNode.x + dx, + y: st.startNode.y + dy, + }); + } + }; + const onUp = () => { + dragStateRef.current = null; + window.removeEventListener("pointermove", onMove); + window.removeEventListener("pointerup", onUp); + }; + window.addEventListener("pointermove", onMove); + window.addEventListener("pointerup", onUp); + }; + + const innerW = Math.max(node.width - node.padding * 2, 1); + + return ( +
+ {children.map((child) => ( + + ))} +
+ ); +}; + +interface SlotProps { + child: MoodboardNode; + innerWidth: number; +} + +// Each card slot renders a single child at full card-inner-width. We don't +// reuse ImageNodeHtml/VideoNodeHtml here because those position via absolute +// x/y — inside a card we want flex-driven layout instead. +export const CardChildSlot = ({ child, innerWidth }: SlotProps) => { + if (child.kind === "image") { + const ratio = + child.naturalH > 0 && child.naturalW > 0 + ? child.naturalH / child.naturalW + : 1; + return ( + + ); + } + if (child.kind === "video") { + const ratio = + child.naturalH > 0 && child.naturalW > 0 + ? child.naturalH / child.naturalW + : 1; + return ( +