├── .gitignore ├── ComfyUIOpenCut.py ├── README.md ├── README_CN.md ├── __init__.py ├── docs └── img.png ├── js ├── assets │ └── main.css └── main.js ├── opencut-ui ├── 404 │ └── index.html ├── 404.html ├── _next │ └── static │ │ ├── _tNMrmGbDKZy8pM7PcnEn │ │ ├── _buildManifest.js │ │ └── _ssgManifest.js │ │ ├── chunks │ │ ├── 08d26d8c.f0eca5e256da808e.js │ │ ├── 08d26d8c.f0eca5e256da808e.js.map │ │ ├── 1600-d89f820423414ecb.js │ │ ├── 1600-d89f820423414ecb.js.map │ │ ├── 1849.c0dcb067f369624c.js │ │ ├── 1849.c0dcb067f369624c.js.map │ │ ├── 1850-743290d1760aa64b.js │ │ ├── 1850-743290d1760aa64b.js.map │ │ ├── 2242297b.090ad67b599a9ed5.js │ │ ├── 2242297b.090ad67b599a9ed5.js.map │ │ ├── 2589.274f8308f518a836.js │ │ ├── 2589.274f8308f518a836.js.map │ │ ├── 2697-9a3d188465b229e1.js │ │ ├── 2697-9a3d188465b229e1.js.map │ │ ├── 383.381096dd01edfc82.js │ │ ├── 383.381096dd01edfc82.js.map │ │ ├── 4063.b5abb1c947303d0c.js │ │ ├── 4063.b5abb1c947303d0c.js.map │ │ ├── 4286-667b9ce57654786d.js │ │ ├── 4286-667b9ce57654786d.js.map │ │ ├── 4469.a3233c7480fad071.js │ │ ├── 4469.a3233c7480fad071.js.map │ │ ├── 485-dbda59b493b69f67.js │ │ ├── 485-dbda59b493b69f67.js.map │ │ ├── 5077-f71db13ac0ed08b1.js │ │ ├── 5077-f71db13ac0ed08b1.js.map │ │ ├── 5190.d4b824c722a38209.js │ │ ├── 5190.d4b824c722a38209.js.map │ │ ├── 5703-cf0f5891b45543aa.js │ │ ├── 5703-cf0f5891b45543aa.js.map │ │ ├── 7092-151ed864b969b540.js │ │ ├── 7092-151ed864b969b540.js.map │ │ ├── 7209-a3b263bec38bffe4.js │ │ ├── 7209-a3b263bec38bffe4.js.map │ │ ├── 7354.e2c24094a96ce137.js │ │ ├── 7354.e2c24094a96ce137.js.map │ │ ├── 7379.113d6abf603a94eb.js │ │ ├── 7379.113d6abf603a94eb.js.map │ │ ├── 7486.6b355a41d3c1b2de.js │ │ ├── 7486.6b355a41d3c1b2de.js.map │ │ ├── 7566.6de16f24c2ee0b5c.js │ │ ├── 7566.6de16f24c2ee0b5c.js.map │ │ ├── 7761.93de84a1aee3663c.js │ │ ├── 7761.93de84a1aee3663c.js.map │ │ ├── 8084.1c7f47028b274a0a.js │ │ ├── 8084.1c7f47028b274a0a.js.map │ │ ├── 8120-431742d03dd3927b.js │ │ ├── 8120-431742d03dd3927b.js.map │ │ ├── 8209-c9c1d3957d29cbba.js │ │ ├── 8209-c9c1d3957d29cbba.js.map │ │ ├── 8314.1bdbfa1fb89d6eaf.js │ │ ├── 8314.1bdbfa1fb89d6eaf.js.map │ │ ├── 8340eb7d-36e917f4d2acf872.js │ │ ├── 8340eb7d-36e917f4d2acf872.js.map │ │ ├── 841-d91b2a0a655e1147.js │ │ ├── 841-d91b2a0a655e1147.js.map │ │ ├── 8611.0a92b4887b20fa2a.js │ │ ├── 8611.0a92b4887b20fa2a.js.map │ │ ├── 8df99fe8.67af1fdd29668ba4.js │ │ ├── 8df99fe8.67af1fdd29668ba4.js.map │ │ ├── 9921.c3c3269cc8fe628f.js │ │ ├── 9921.c3c3269cc8fe628f.js.map │ │ ├── app │ │ │ ├── _not-found │ │ │ │ ├── page-f62e1bca9c3beeed.js │ │ │ │ └── page-f62e1bca9c3beeed.js.map │ │ │ ├── animation │ │ │ │ ├── page-9e9aace51883e9b5.js │ │ │ │ └── page-9e9aace51883e9b5.js.map │ │ │ ├── editor │ │ │ │ ├── [project_id] │ │ │ │ │ ├── layout-ef487a8884051947.js │ │ │ │ │ ├── page-829f268d9ae55647.js │ │ │ │ │ └── page-829f268d9ae55647.js.map │ │ │ │ ├── page-1b9fae49422e4407.js │ │ │ │ └── page-1b9fae49422e4407.js.map │ │ │ ├── layout-99afde99e0402a81.js │ │ │ ├── layout-99afde99e0402a81.js.map │ │ │ ├── page-ef6202e73fc95156.js │ │ │ ├── page-ef6202e73fc95156.js.map │ │ │ ├── privacy │ │ │ │ ├── page-b9daa0dc85d57950.js │ │ │ │ └── page-b9daa0dc85d57950.js.map │ │ │ ├── projects │ │ │ │ ├── page-8cd1a8fa772c93c4.js │ │ │ │ └── page-8cd1a8fa772c93c4.js.map │ │ │ ├── roadmap │ │ │ │ ├── page-b9daa0dc85d57950.js │ │ │ │ └── page-b9daa0dc85d57950.js.map │ │ │ ├── robots.txt │ │ │ │ └── route-ef487a8884051947.js │ │ │ ├── sitemap.xml │ │ │ │ └── route-ef487a8884051947.js │ │ │ ├── terms │ │ │ │ ├── page-b9daa0dc85d57950.js │ │ │ │ └── page-b9daa0dc85d57950.js.map │ │ │ └── why-not-capcut │ │ │ │ ├── page-ceee0268f18e42e1.js │ │ │ │ └── page-ceee0268f18e42e1.js.map │ │ ├── b744fb70-3b623dad024a9a8d.js │ │ ├── b744fb70-3b623dad024a9a8d.js.map │ │ ├── d07cf561-d9f6be47d1dd276f.js │ │ ├── d07cf561-d9f6be47d1dd276f.js.map │ │ ├── f00f2538.110d8b3cc0316bcd.js │ │ ├── f00f2538.110d8b3cc0316bcd.js.map │ │ ├── f6d2e299.a51675a0e0e9de78.js │ │ ├── f6d2e299.a51675a0e0e9de78.js.map │ │ ├── framework-1b2168ccb028df0e.js │ │ ├── framework-1b2168ccb028df0e.js.map │ │ ├── main-app-aeab572ddb9ac7cc.js │ │ ├── main-app-aeab572ddb9ac7cc.js.map │ │ ├── main-b26f25470f9c97ff.js │ │ ├── main-b26f25470f9c97ff.js.map │ │ ├── pages │ │ │ ├── _app-5bcb257a2763ef44.js │ │ │ ├── _app-5bcb257a2763ef44.js.map │ │ │ ├── _error-5480a4a51005587e.js │ │ │ └── _error-5480a4a51005587e.js.map │ │ ├── polyfills-42372ed130431b0a.js │ │ ├── webpack-23c697b1add73cdd.js │ │ └── webpack-23c697b1add73cdd.js.map │ │ ├── css │ │ ├── 173513df0e02305a.css │ │ ├── 173513df0e02305a.css.map │ │ ├── e1856565ca9a0d8e.css │ │ └── e1856565ca9a0d8e.css.map │ │ └── media │ │ ├── 04c24f78ad5a47d8-s.woff2 │ │ ├── 13a314e63820922b-s.woff2 │ │ ├── 24c15609eaa28576-s.woff2 │ │ ├── 26a46d62cd723877-s.woff2 │ │ ├── 2c07349e02a7b712-s.woff2 │ │ ├── 37da3febcafd463e-s.woff2 │ │ ├── 403511e41efd5e81-s.woff2 │ │ ├── 47cbc4e2adbc5db9-s.p.woff2 │ │ ├── 47f136985ef5b5cb-s.woff2 │ │ ├── 4ead58c4dcc3f285-s.woff2 │ │ ├── 51f6eedf9be77cd7-s.woff2 │ │ ├── 55c55f0601d81cf3-s.woff2 │ │ ├── 581909926a08bbc8-s.woff2 │ │ ├── 5d258b355fefebcb-s.p.woff2 │ │ ├── 627d916fd739a539-s.woff2 │ │ ├── 6af6b543dd3be231-s.p.woff2 │ │ ├── 6d9d93fc6431e29f-s.woff2 │ │ ├── 74c003a2abab0c4f-s.woff2 │ │ ├── 84602850c8fd81c3-s.woff2 │ │ ├── 8e9860b6e62d6359-s.woff2 │ │ ├── 90da053edc2b7de3-s.woff2 │ │ ├── 97e0cb1ae144a2a9-s.woff2 │ │ ├── ac3b7908202f8517-s.woff2 │ │ ├── b5ee789b512e4d1b-s.woff2 │ │ ├── b90d14ccc4cd9a5b-s.p.woff2 │ │ ├── c1a1fe1e2bf9b2ee-s.woff2 │ │ ├── d6ad45bb51fe3f74-s.p.woff2 │ │ ├── d6fc113833db48fe-s.woff2 │ │ ├── df0a9ae256c0569c-s.woff2 │ │ ├── e1df014bb05b8510-s.woff2 │ │ ├── e4af272ccee01ff0-s.p.woff2 │ │ └── f7c8bed65df13031-s.woff2 ├── animation │ ├── index.html │ └── index.txt ├── browserconfig.xml ├── editor │ ├── default │ │ ├── index.html │ │ └── index.txt │ ├── index.html │ ├── index.txt │ ├── new │ │ ├── index.html │ │ └── index.txt │ └── untitled │ │ ├── index.html │ │ └── index.txt ├── favicon.ico ├── ffmpeg │ ├── ffmpeg-core.js │ └── ffmpeg-core.wasm ├── frame.svg ├── icons │ ├── android-icon-144x144.png │ ├── android-icon-192x192.png │ ├── android-icon-36x36.png │ ├── android-icon-48x48.png │ ├── android-icon-72x72.png │ ├── android-icon-96x96.png │ ├── apple-icon-114x114.png │ ├── apple-icon-120x120.png │ ├── apple-icon-144x144.png │ ├── apple-icon-152x152.png │ ├── apple-icon-180x180.png │ ├── apple-icon-57x57.png │ ├── apple-icon-60x60.png │ ├── apple-icon-72x72.png │ ├── apple-icon-76x76.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── ms-icon-144x144.png │ ├── ms-icon-150x150.png │ ├── ms-icon-310x310.png │ └── ms-icon-70x70.png ├── index.html ├── index.txt ├── landing-page-dark.png ├── logo.png ├── logo.svg ├── manifest.dev.json ├── manifest.json ├── open-graph │ ├── default.jpg │ └── roadmap.jpg ├── platform-guides │ └── tiktok-blueprint.png ├── privacy │ ├── index.html │ └── index.txt ├── projects │ ├── index.html │ └── index.txt ├── roadmap │ ├── index.html │ └── index.txt ├── robots.txt ├── sitemap.xml ├── terms │ ├── index.html │ └── index.txt └── why-not-capcut │ ├── index.html │ └── index.txt ├── package-lock.json ├── package.json ├── pyproject.toml ├── src ├── App.vue └── main.ts └── vite.config.mts /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | .DS_Store 12 | dist 13 | dist-ssr 14 | coverage 15 | *.local 16 | 17 | /cypress/videos/ 18 | /cypress/screenshots/ 19 | 20 | # Editor directories and files 21 | .vscode/* 22 | !.vscode/extensions.json 23 | .idea 24 | *.suo 25 | *.ntvs* 26 | *.njsproj 27 | *.sln 28 | *.sw? 29 | 30 | *.tsbuildinfo 31 | 32 | __pycache__ 33 | 34 | node.zip -------------------------------------------------------------------------------- /ComfyUIOpenCut.py: -------------------------------------------------------------------------------- 1 | class ComfyUIOpenCut: 2 | def __init__(self): 3 | pass 4 | 5 | @classmethod 6 | def INPUT_TYPES(s): 7 | return { 8 | "required": { 9 | }, 10 | } 11 | 12 | RETURN_TYPES = () 13 | 14 | FUNCTION = "run" 15 | 16 | OUTPUT_NODE = True 17 | 18 | CATEGORY = "OpenCut" 19 | 20 | def run(self, **kwargs): 21 | return None, 22 | 23 | NODE_CLASS_MAPPINGS = { 24 | "ComfyUIOpenCut": ComfyUIOpenCut 25 | } 26 | 27 | NODE_DISPLAY_NAME_MAPPINGS = { 28 | "ComfyUIOpenCut": "OpenCut" 29 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ComfyUI-OpenCut 2 | 3 | **[English](README.md) | [中文](README_CN.md)** 4 | 5 | A powerful, privacy-focused video editor integrated directly into ComfyUI. This plugin brings professional video editing capabilities to your ComfyUI workflow without any server-side processing. 6 | 7 | ![OpenCut Interface](docs/img.png) 8 | 9 | ## 🌟 Features 10 | 11 | ### Core Editing Capabilities 12 | - **Multi-track Timeline Editor**: Professional timeline with support for multiple video, audio, and overlay tracks 13 | - **Real-time Preview**: Instant preview of edits without rendering 14 | - **Drag & Drop Interface**: Intuitive drag-and-drop for media files and timeline elements 15 | - **Non-destructive Editing**: All edits are non-destructive, preserving original media files 16 | 17 | ### Media Support 18 | - **Video Formats**: MP4, WebM, MOV, AVI, and more 19 | - **Audio Formats**: MP3, WAV, OGG, AAC 20 | - **Image Formats**: PNG, JPG, GIF, WebP 21 | - **Resolution Support**: From SD to 4K video editing 22 | 23 | ### Advanced Features 24 | - **Keyframe Animation**: Animate position, scale, rotation, and opacity 25 | - **Audio Waveform Visualization**: See audio waveforms directly on the timeline 26 | - **Snap-to-Grid**: Precise alignment with magnetic timeline snapping 27 | - **Multiple Export Options**: Export in various formats and resolutions 28 | - **Undo/Redo System**: Full undo/redo support with keyboard shortcuts 29 | 30 | ### Layout & Workflow 31 | - **Customizable Layouts**: 4 preset layouts optimized for different workflows: 32 | - Default: Balanced layout for general editing 33 | - Media Focus: Larger media panel for asset-heavy projects 34 | - Inspector Focus: Expanded properties panel for detailed adjustments 35 | - Vertical Preview: Optimized for vertical video editing (TikTok, Reels) 36 | - **Resizable Panels**: Drag to resize any panel to your preference 37 | - **Keyboard Shortcuts**: Comprehensive keyboard shortcuts for efficient editing 38 | 39 | ### Privacy & Performance 40 | - **100% Client-side Processing**: All video processing happens in your browser using WebAssembly 41 | - **No Upload Required**: Your media files never leave your computer 42 | - **FFmpeg Integration**: Powered by FFmpeg.wasm for professional-grade processing 43 | - **IndexedDB Storage**: Projects saved locally in your browser 44 | - **OPFS Support**: Large files stored efficiently using Origin Private File System 45 | 46 | ## 📦 Installation 47 | 48 | ### Prerequisites 49 | - ComfyUI (latest version recommended) 50 | - Modern web browser (Chrome, Firefox, Edge, Safari) 51 | - At least 4GB of available RAM for video processing 52 | 53 | ### Installation Steps 54 | 55 | 1. Navigate to your ComfyUI `custom_nodes` directory: 56 | ```bash 57 | cd /path/to/ComfyUI/custom_nodes 58 | ``` 59 | 60 | 2. Clone this repository: 61 | ```bash 62 | git clone https://github.com/[your-repo]/ComfyUI-OpenCut.git 63 | ``` 64 | 65 | 3. Install dependencies (if any): 66 | ```bash 67 | cd ComfyUI-OpenCut 68 | pip install -r requirements.txt # If Python dependencies exist 69 | ``` 70 | 71 | 4. Restart ComfyUI 72 | 73 | ## 🚀 Usage 74 | 75 | ### Method 1: Direct Browser Access 76 | Open your browser and navigate to: 77 | ``` 78 | http://127.0.0.1:8188/opencut/ 79 | ``` 80 | 81 | ### Method 2: ComfyUI Interface (Requires ComfyUI Frontend v1.24.4+) 82 | 1. Open ComfyUI in your browser 83 | 2. Look for the "OpenCut" button in the interface 84 | 3. Click to launch the video editor in a new tab 85 | 86 | ## 🎬 Getting Started 87 | 88 | ### Creating Your First Project 89 | 1. Launch OpenCut using one of the methods above 90 | 2. Click "New Project" or drag media files directly onto the interface 91 | 3. Your media will appear in the Media Panel (left side) 92 | 4. Drag media from the panel onto the timeline to start editing 93 | 94 | ### Basic Editing Workflow 95 | 1. **Import Media**: Drag files or click "Upload" in the Media Panel 96 | 2. **Add to Timeline**: Drag media to the desired track and position 97 | 3. **Trim Clips**: Hover over clip edges and drag to trim 98 | 4. **Add Transitions**: Overlap clips to create automatic transitions 99 | 5. **Adjust Properties**: Select a clip and use the Properties Panel to adjust settings 100 | 6. **Preview**: Use the spacebar to play/pause your edit 101 | 7. **Export**: Click Export and choose your desired format and quality 102 | 103 | ### Keyboard Shortcuts 104 | - `Space`: Play/Pause 105 | - `S`: Split clip at playhead 106 | - `Delete`: Delete selected element 107 | - `Ctrl/Cmd + Z`: Undo 108 | - `Ctrl/Cmd + Shift + Z`: Redo 109 | - `Ctrl/Cmd + C/V`: Copy/Paste 110 | - `[` / `]`: Set in/out points 111 | - `Arrow Keys`: Frame-by-frame navigation 112 | 113 | ## 🎨 Layout Presets 114 | 115 | ### Switching Layouts 116 | Click the layout button in the header to switch between presets: 117 | 118 | - **Default Layout**: Balanced view with all panels visible 119 | - **Media Layout**: Enlarged media panel for browsing many assets 120 | - **Inspector Layout**: Expanded properties panel for detailed editing 121 | - **Vertical Layout**: Optimized for 9:16 vertical videos 122 | 123 | ### Custom Panel Sizing 124 | - Drag the dividers between panels to customize sizes 125 | - Your custom sizes are saved per layout preset 126 | - Click the reset button to restore default sizes 127 | 128 | ## 🔧 Advanced Features 129 | 130 | ### Project Management 131 | - Projects are automatically saved to browser storage 132 | - Export/Import projects as JSON files for backup 133 | - Multiple projects can be managed from the Projects page 134 | 135 | ### Media Processing 136 | - Automatic thumbnail generation for videos 137 | - Waveform generation for audio tracks 138 | - Smart proxy generation for smooth playback of large files 139 | 140 | ### Export Options 141 | - **Format**: MP4, WebM, MOV 142 | - **Resolution**: Original, 1080p, 720p, 480p 143 | - **Quality**: High, Medium, Low 144 | - **Frame Rate**: 24, 30, 60 fps 145 | - **Audio**: Stereo/Mono, various bitrates 146 | 147 | ## 🐛 Troubleshooting 148 | 149 | ### Common Issues 150 | 151 | **Media not loading:** 152 | - Ensure files are in supported formats 153 | - Check browser console for errors 154 | - Try refreshing the page 155 | 156 | **Playback stuttering:** 157 | - Lower preview resolution in settings 158 | - Close other browser tabs 159 | - Ensure adequate RAM is available 160 | 161 | **Export failing:** 162 | - Check available browser storage 163 | - Try a lower resolution/quality setting 164 | - Ensure no corrupted media files 165 | 166 | **Layout not changing:** 167 | - Clear browser cache 168 | - Check localStorage is enabled 169 | - Try resetting to default layout 170 | 171 | ### Browser Requirements 172 | - Chrome 90+, Firefox 89+, Safari 15+, Edge 90+ 173 | - WebAssembly support required 174 | - SharedArrayBuffer support recommended 175 | - At least 4GB RAM recommended 176 | 177 | ## 🤝 Contributing 178 | 179 | Contributions are welcome! Please feel free to submit issues and pull requests. 180 | 181 | ### Development Setup 182 | 1. Clone the repository 183 | 2. Install dependencies: `bun install` 184 | 3. Run development mode: `bun dev` 185 | 4. Build for production: `bun run build:comfyui` 186 | 187 | ## 📝 License 188 | 189 | This project integrates OpenCut, originally developed by [OpenCut-app](https://github.com/OpenCut-app/OpenCut). Please refer to the original project for licensing information. 190 | 191 | ## 🙏 Acknowledgments 192 | 193 | - Original OpenCut developers for the amazing video editor 194 | - ComfyUI team for the extensible platform 195 | - FFmpeg.wasm for client-side video processing 196 | - All contributors and users of this integration 197 | 198 | ## 📞 Support 199 | 200 | For issues specific to the ComfyUI integration, please open an issue in this repository. 201 | For OpenCut-specific issues, please refer to the [original OpenCut repository](https://github.com/OpenCut-app/OpenCut). 202 | 203 | --- 204 | 205 | **Note**: This integration is under active development. Some features may be experimental or subject to change. -------------------------------------------------------------------------------- /README_CN.md: -------------------------------------------------------------------------------- 1 | # ComfyUI-OpenCut 2 | 3 | **[English](README.md) | [中文](README_CN.md)** 4 | 5 | 一个强大的、注重隐私的视频编辑器,直接集成到 ComfyUI 中。这个插件为您的 ComfyUI 工作流程带来专业的视频编辑功能,无需任何服务器端处理。 6 | 7 | ![OpenCut 界面](docs/img.png) 8 | 9 | ## 🌟 功能特性 10 | 11 | ### 核心编辑功能 12 | - **多轨道时间线编辑器**:专业的时间线,支持多个视频、音频和叠加轨道 13 | - **实时预览**:无需渲染即可即时预览编辑效果 14 | - **拖放界面**:直观的媒体文件和时间线元素拖放操作 15 | - **非破坏性编辑**:所有编辑都是非破坏性的,保留原始媒体文件 16 | 17 | ### 媒体支持 18 | - **视频格式**:MP4、WebM、MOV、AVI 等 19 | - **音频格式**:MP3、WAV、OGG、AAC 20 | - **图像格式**:PNG、JPG、GIF、WebP 21 | - **分辨率支持**:从标清到 4K 视频编辑 22 | 23 | ### 高级功能 24 | - **关键帧动画**:为位置、缩放、旋转和不透明度添加动画 25 | - **音频波形可视化**:在时间线上直接查看音频波形 26 | - **吸附对齐**:磁性时间线吸附实现精确对齐 27 | - **多种导出选项**:以各种格式和分辨率导出 28 | - **撤销/重做系统**:完整的撤销/重做支持,配合键盘快捷键 29 | 30 | ### 布局与工作流 31 | - **可自定义布局**:4 种预设布局,针对不同工作流程优化: 32 | - 默认:通用编辑的平衡布局 33 | - 媒体聚焦:更大的媒体面板,适合素材密集型项目 34 | - 检查器聚焦:扩展的属性面板,用于详细调整 35 | - 垂直预览:针对垂直视频编辑优化(抖音、Instagram Reels) 36 | - **可调整大小的面板**:拖动调整任何面板大小以适应您的偏好 37 | - **键盘快捷键**:全面的键盘快捷键支持,提高编辑效率 38 | 39 | ### 隐私与性能 40 | - **100% 客户端处理**:所有视频处理都在您的浏览器中使用 WebAssembly 进行 41 | - **无需上传**:您的媒体文件永远不会离开您的计算机 42 | - **FFmpeg 集成**:由 FFmpeg.wasm 提供专业级处理能力 43 | - **IndexedDB 存储**:项目本地保存在您的浏览器中 44 | - **OPFS 支持**:使用 Origin Private File System 高效存储大文件 45 | 46 | ## 📦 安装 47 | 48 | ### 前置要求 49 | - ComfyUI(推荐最新版本) 50 | - 现代网络浏览器(Chrome、Firefox、Edge、Safari) 51 | - 至少 4GB 可用内存用于视频处理 52 | 53 | ### 安装步骤 54 | 55 | 1. 导航到您的 ComfyUI `custom_nodes` 目录: 56 | ```bash 57 | cd /path/to/ComfyUI/custom_nodes 58 | ``` 59 | 60 | 2. 克隆此仓库: 61 | ```bash 62 | git clone https://github.com/[your-repo]/ComfyUI-OpenCut.git 63 | ``` 64 | 65 | 3. 安装依赖(如果有): 66 | ```bash 67 | cd ComfyUI-OpenCut 68 | pip install -r requirements.txt # 如果存在 Python 依赖 69 | ``` 70 | 71 | 4. 重启 ComfyUI 72 | 73 | ## 🚀 使用方法 74 | 75 | ### 方法 1:直接浏览器访问 76 | 打开浏览器并导航到: 77 | ``` 78 | http://127.0.0.1:8188/opencut/ 79 | ``` 80 | 81 | ### 方法 2:ComfyUI 界面(需要 ComfyUI 前端 v1.24.4+) 82 | 1. 在浏览器中打开 ComfyUI 83 | 2. 在界面中寻找"OpenCut"按钮 84 | 3. 点击在新标签页中启动视频编辑器 85 | 86 | ## 🎬 快速入门 87 | 88 | ### 创建您的第一个项目 89 | 1. 使用上述方法之一启动 OpenCut 90 | 2. 点击"新建项目"或直接将媒体文件拖放到界面上 91 | 3. 您的媒体将出现在媒体面板(左侧) 92 | 4. 将媒体从面板拖到时间线上开始编辑 93 | 94 | ### 基本编辑工作流程 95 | 1. **导入媒体**:拖动文件或点击媒体面板中的"上传" 96 | 2. **添加到时间线**:将媒体拖到所需的轨道和位置 97 | 3. **修剪片段**:悬停在片段边缘并拖动以修剪 98 | 4. **添加过渡**:重叠片段以创建自动过渡 99 | 5. **调整属性**:选择一个片段并使用属性面板调整设置 100 | 6. **预览**:使用空格键播放/暂停您的编辑 101 | 7. **导出**:点击导出并选择所需的格式和质量 102 | 103 | ### 键盘快捷键 104 | - `空格`:播放/暂停 105 | - `S`:在播放头位置分割片段 106 | - `Delete`:删除选中的元素 107 | - `Ctrl/Cmd + Z`:撤销 108 | - `Ctrl/Cmd + Shift + Z`:重做 109 | - `Ctrl/Cmd + C/V`:复制/粘贴 110 | - `[` / `]`:设置入点/出点 111 | - `方向键`:逐帧导航 112 | 113 | ## 🎨 布局预设 114 | 115 | ### 切换布局 116 | 点击标题栏中的布局按钮在预设之间切换: 117 | 118 | - **默认布局**:所有面板可见的平衡视图 119 | - **媒体布局**:放大的媒体面板,便于浏览大量素材 120 | - **检查器布局**:扩展的属性面板,用于详细编辑 121 | - **垂直布局**:针对 9:16 垂直视频优化 122 | 123 | ### 自定义面板大小 124 | - 拖动面板之间的分隔线来自定义大小 125 | - 您的自定义大小会按布局预设保存 126 | - 点击重置按钮恢复默认大小 127 | 128 | ## 🔧 高级功能 129 | 130 | ### 项目管理 131 | - 项目自动保存到浏览器存储 132 | - 将项目导出/导入为 JSON 文件以进行备份 133 | - 可以从项目页面管理多个项目 134 | 135 | ### 媒体处理 136 | - 自动为视频生成缩略图 137 | - 为音频轨道生成波形 138 | - 智能代理生成,实现大文件的流畅播放 139 | 140 | ### 导出选项 141 | - **格式**:MP4、WebM、MOV 142 | - **分辨率**:原始、1080p、720p、480p 143 | - **质量**:高、中、低 144 | - **帧率**:24、30、60 fps 145 | - **音频**:立体声/单声道,各种比特率 146 | 147 | ## 🐛 故障排除 148 | 149 | ### 常见问题 150 | 151 | **媒体无法加载:** 152 | - 确保文件是支持的格式 153 | - 检查浏览器控制台是否有错误 154 | - 尝试刷新页面 155 | 156 | **播放卡顿:** 157 | - 在设置中降低预览分辨率 158 | - 关闭其他浏览器标签页 159 | - 确保有足够的可用内存 160 | 161 | **导出失败:** 162 | - 检查可用的浏览器存储空间 163 | - 尝试较低的分辨率/质量设置 164 | - 确保没有损坏的媒体文件 165 | 166 | **布局不改变:** 167 | - 清除浏览器缓存 168 | - 检查 localStorage 是否启用 169 | - 尝试重置为默认布局 170 | 171 | ### 浏览器要求 172 | - Chrome 90+、Firefox 89+、Safari 15+、Edge 90+ 173 | - 需要 WebAssembly 支持 174 | - 推荐 SharedArrayBuffer 支持 175 | - 推荐至少 4GB 内存 176 | 177 | ## 🤝 贡献 178 | 179 | 欢迎贡献!请随时提交问题和拉取请求。 180 | 181 | ### 开发设置 182 | 1. 克隆仓库 183 | 2. 安装依赖:`bun install` 184 | 3. 运行开发模式:`bun dev` 185 | 4. 构建生产版本:`bun run build:comfyui` 186 | 187 | ## 📝 许可证 188 | 189 | 此项目集成了 OpenCut,最初由 [OpenCut-app](https://github.com/OpenCut-app/OpenCut) 开发。请参阅原始项目了解许可信息。 190 | 191 | ## 🙏 致谢 192 | 193 | - 原始 OpenCut 开发者,感谢他们创造了这个出色的视频编辑器 194 | - ComfyUI 团队提供了可扩展的平台 195 | - FFmpeg.wasm 提供客户端视频处理 196 | - 所有贡献者和此集成的用户 197 | 198 | ## 📞 支持 199 | 200 | 对于特定于 ComfyUI 集成的问题,请在此仓库中开启一个 issue。 201 | 对于 OpenCut 特定的问题,请参考[原始 OpenCut 仓库](https://github.com/OpenCut-app/OpenCut)。 202 | 203 | --- 204 | 205 | **注意**:此集成正在积极开发中。某些功能可能是实验性的或可能会发生变化。 -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- 1 | from .ComfyUIOpenCut import NODE_CLASS_MAPPINGS 2 | import os 3 | import nodes 4 | from aiohttp import web 5 | import importlib 6 | import execution 7 | import logging 8 | from pathlib import Path 9 | import uuid 10 | import json 11 | import datetime 12 | 13 | js_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "js") 14 | 15 | nodes.EXTENSION_WEB_DIRS["ComfyUI-OpenCut"] = js_dir 16 | 17 | __all__ = ['NODE_CLASS_MAPPINGS'] 18 | 19 | from server import PromptServer 20 | 21 | routes = PromptServer.instance.routes 22 | 23 | @routes.get('/opencut') 24 | async def serve_opencut_index(request): 25 | opencut_path = Path(__file__).parent / 'opencut-ui' / 'index.html' 26 | if opencut_path.exists(): 27 | return web.FileResponse(opencut_path) 28 | else: 29 | return web.Response(text="OpenCut UI not found", status=404) 30 | 31 | @routes.get('/opencut/{path:.*}') 32 | async def serve_opencut_static(request): 33 | path = request.match_info.get('path', '') 34 | 35 | if '..' in path or path.startswith('/'): 36 | return web.Response(text="Invalid path", status=400) 37 | 38 | opencut_path = Path(__file__).parent / 'opencut-ui' / path 39 | 40 | if opencut_path.is_dir(): 41 | index_path = opencut_path / 'index.html' 42 | if index_path.exists(): 43 | return web.FileResponse(index_path) 44 | 45 | if opencut_path.exists() and opencut_path.is_file(): 46 | return web.FileResponse(opencut_path) 47 | 48 | if path.startswith('editor/') and '/' in path[7:]: 49 | editor_html_path = opencut_path.with_suffix('.html') 50 | if editor_html_path.exists() and editor_html_path.is_file(): 51 | return web.FileResponse(editor_html_path) 52 | 53 | static_extensions = ['.js', '.css', '.png', '.jpg', '.jpeg', '.gif', '.ico', '.txt', '.map', '.woff', '.woff2', '.ttf', '.svg', '.json', '.webp'] 54 | 55 | is_route = not any(path.endswith(ext) for ext in static_extensions) and not path.endswith('.html') 56 | 57 | if is_route: 58 | index_path = Path(__file__).parent / 'opencut-ui' / 'index.html' 59 | if index_path.exists(): 60 | return web.FileResponse(index_path, headers={ 61 | 'Cache-Control': 'no-cache, no-store, must-revalidate', 62 | 'Pragma': 'no-cache', 63 | 'Expires': '0' 64 | }) 65 | 66 | return web.Response(text="File not found", status=404) 67 | 68 | @routes.post('/opencut/api/projects') 69 | async def create_project(request): 70 | try: 71 | data = await request.json() 72 | project_id = str(uuid.uuid4()) 73 | project = { 74 | 'id': project_id, 75 | 'name': data.get('name', 'Untitled Project'), 76 | 'createdAt': datetime.datetime.now().isoformat(), 77 | 'updatedAt': datetime.datetime.now().isoformat() 78 | } 79 | return web.json_response(project) 80 | except Exception as e: 81 | return web.json_response({'error': str(e)}, status=500) 82 | 83 | @routes.get('/opencut/api/projects/{project_id}') 84 | async def get_project(request): 85 | project_id = request.match_info['project_id'] 86 | project = { 87 | 'id': project_id, 88 | 'name': 'Sample Project', 89 | 'createdAt': datetime.datetime.now().isoformat(), 90 | 'updatedAt': datetime.datetime.now().isoformat() 91 | } 92 | return web.json_response(project) 93 | 94 | @routes.put('/opencut/api/projects/{project_id}') 95 | async def update_project(request): 96 | project_id = request.match_info['project_id'] 97 | try: 98 | return web.json_response({'id': project_id, 'updated': True}) 99 | except Exception as e: 100 | return web.json_response({'error': str(e)}, status=500) -------------------------------------------------------------------------------- /docs/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/docs/img.png -------------------------------------------------------------------------------- /js/assets/main.css: -------------------------------------------------------------------------------- 1 | .demo-iframe[data-v-5772e9c3]{width:100%;height:100%;border:none;display:block} 2 | -------------------------------------------------------------------------------- /js/main.js: -------------------------------------------------------------------------------- 1 | import { app as s } from "../../../scripts/app.js"; 2 | import { defineComponent as f, ref as r, watch as m, onMounted as p, onBeforeUnmount as v, createElementBlock as d, openBlock as C, createElementVNode as c } from "vue"; 3 | const _ = /* @__PURE__ */ f({ 4 | __name: "App", 5 | setup(l) { 6 | const e = r(), o = r(), i = r(!1), a = r(null), u = () => { 7 | var n; 8 | if ((n = e.value) != null && n.parentElement) { 9 | const t = e.value.parentElement; 10 | i.value ? t.classList.remove("h-full") : t.classList.add("h-full"); 11 | } 12 | }; 13 | return m(i, () => { 14 | u(); 15 | }), p(async () => { 16 | e.value && (u(), a.value = new MutationObserver((n) => { 17 | n.forEach((t) => { 18 | t.type === "attributes" && t.attributeName === "maximized" && (i.value = t.target.getAttribute("maximized") === "true"); 19 | }); 20 | }), a.value.observe(e.value, { 21 | attributes: !0, 22 | attributeFilter: ["maximized"] 23 | })); 24 | }), v(() => { 25 | var n; 26 | (n = e.value) != null && n.parentElement && e.value.parentElement.classList.remove("h-full"), a.value && (a.value.disconnect(), a.value = null); 27 | }), (n, t) => (C(), d("div", { 28 | ref_key: "viewerContentRef", 29 | ref: e, 30 | class: "flex w-full h-full" 31 | }, [ 32 | c("div", { 33 | ref_key: "mainContentRef", 34 | ref: o, 35 | class: "flex-1 relative" 36 | }, t[0] || (t[0] = [ 37 | c("iframe", { 38 | src: "/opencut", 39 | class: "demo-iframe h-full w-full" 40 | }, null, -1) 41 | ]), 512) 42 | ], 512)); 43 | } 44 | }), w = (l, e) => { 45 | const o = l.__vccOpts || l; 46 | for (const [i, a] of e) 47 | o[i] = a; 48 | return o; 49 | }, x = /* @__PURE__ */ w(_, [["__scopeId", "data-v-5772e9c3"]]), { ComfyButton: y } = window.comfyAPI.button; 50 | s.registerExtension({ 51 | name: "ComfyUI.OpenCut.TopMenu", 52 | setup() { 53 | var e; 54 | function l() { 55 | var o; 56 | (o = s.extensionManager) == null || o.dialog.showExtensionDialog({ 57 | key: "global-opencut", 58 | title: "ComfyUI OpenCut", 59 | component: x, 60 | dialogComponentProps: { 61 | style: "width: 80vw; height: 80vh;", 62 | maximizable: !0 63 | } 64 | }); 65 | } 66 | (e = s.menu) == null || e.settingsGroup.append( 67 | new y({ 68 | icon: "video", 69 | tooltip: "comfyui-opencut", 70 | content: "OpenCut", 71 | action: l 72 | }) 73 | ); 74 | } 75 | }); 76 | -------------------------------------------------------------------------------- /opencut-ui/_next/static/_tNMrmGbDKZy8pM7PcnEn/_buildManifest.js: -------------------------------------------------------------------------------- 1 | self.__BUILD_MANIFEST=function(e,r,t,_){return{__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:11,errorRate:1e-4,numBits:211,numHashes:14,bitArray:[1,0,0,1,r,e,e,e,r,e,r,r,r,e,r,r,e,r,r,r,e,e,r,r,r,r,r,e,e,e,e,r,r,r,e,r,r,r,r,r,r,r,e,r,e,e,e,r,r,r,e,r,e,r,e,e,r,r,r,r,e,e,r,e,e,e,e,e,r,e,r,e,e,e,r,r,e,e,e,e,e,e,r,e,e,r,e,e,e,e,r,r,r,e,r,r,e,r,r,r,e,r,e,e,r,r,r,e,e,r,e,r,r,e,e,e,e,r,r,e,r,r,e,e,r,r,e,e,r,r,r,e,r,e,e,r,r,r,e,r,e,e,e,e,e,e,r,e,e,e,e,e,e,e,r,r,r,r,r,r,e,e,r,r,r,r,e,e,e,e,e,e,r,e,r,e,e,r,e,r,r,r,r,e,e,r,r,r,r,e,e,r,e,r,r,r,r,e,r,e,r,r,e,r,r,e,e,e,e,e,e]},__routerFilterDynamic:{numItems:r,errorRate:1e-4,numBits:20,numHashes:14,bitArray:[r,r,r,e,e,e,r,e,e,r,e,r,e,e,r,e,r,e,e,r]},"/_error":["static/chunks/pages/_error-5480a4a51005587e.js"],sortedPages:["/_app","/_error"]}}(0,1,1e-4,14),self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB(); -------------------------------------------------------------------------------- /opencut-ui/_next/static/_tNMrmGbDKZy8pM7PcnEn/_ssgManifest.js: -------------------------------------------------------------------------------- 1 | self.__SSG_MANIFEST=new Set(["\u002Feditor\u002F[project_id]"]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB() -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/1849.c0dcb067f369624c.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1849],{41849:(e,a,l)=>{l.r(a),l.d(a,{default:()=>x});var n=l(38099),s=l(20523),i=l(87498),t=l(96205),o=l(99285),d=l(49116),u=l(86202),m=l(59645),r=l(8666),v=l(68643),c=l(39292),b=l(70647);let p={class:"flex justify-end"},x=(0,n.pM)({__name:"ExtensionPanel",setup(e){let a=(0,s.KR)({global:{value:"",matchMode:t.Rn.CONTAINS}}),l=(0,b.am)(),x=(0,b.P)(),E=(0,s.KR)({});(0,n.sV)(()=>{l.extensions.forEach(e=>{E.value[e.name]=l.isExtensionEnabled(e.name)})});let f=(0,n.EW)(()=>l.extensions.filter(e=>E.value[e.name]!==l.isExtensionEnabled(e.name))),y=(0,n.EW)(()=>f.value.length>0),h=async()=>{let e=Object.entries(E.value).filter(([e,a])=>!a).map(([e])=>e);await x.set("Comfy.Extension.Disabled",[...l.inactiveDisabledExtensionNames,...e])},k=async()=>{l.extensions.forEach(e=>{l.isExtensionReadOnly(e.name)||(E.value[e.name]=!0)}),await h()},R=async()=>{l.extensions.forEach(e=>{l.isExtensionReadOnly(e.name)||(E.value[e.name]=!1)}),await h()},C=async()=>{l.extensions.forEach(e=>{l.isCoreExtension(e.name)||(E.value[e.name]=!1)}),await h()},_=()=>{window.location.reload()},A=(0,s.KR)(),w=[{label:"Enable All",icon:"pi pi-check",command:k},{label:"Disable All",icon:"pi pi-times",command:R},{label:"Disable 3rd Party",icon:"pi pi-times",command:C,disabled:!l.hasThirdPartyExtensions}];return(e,t)=>((0,n.uX)(),(0,n.Wv)(b.a7,{value:"Extension",class:"extension-panel"},{header:(0,n.k6)(()=>[(0,n.bF)(b.al,{modelValue:a.value.global.value,"onUpdate:modelValue":t[0]||(t[0]=e=>a.value.global.value=e),placeholder:e.$t("g.searchExtensions")+"..."},null,8,["modelValue","placeholder"]),y.value?((0,n.uX)(),(0,n.Wv)((0,s.R1)(r.A),{key:0,severity:"info","pt:text":"w-full",class:"max-h-96 overflow-y-auto"},{default:(0,n.k6)(()=>[(0,n.Lk)("ul",null,[((0,n.uX)(!0),(0,n.CE)(n.FK,null,(0,n.pI)(f.value,e=>((0,n.uX)(),(0,n.CE)("li",{key:e.name},[(0,n.Lk)("span",null,(0,i.v_)((0,s.R1)(l).isExtensionEnabled(e.name)?"[-]":"[+]"),1),(0,n.eW)(" "+(0,i.v_)(e.name),1)]))),128))]),(0,n.Lk)("div",p,[(0,n.bF)((0,s.R1)(o.A),{label:e.$t("g.reloadToApplyChanges"),outlined:"",severity:"danger",onClick:_},null,8,["label"])])]),_:1})):(0,n.Q3)("",!0)]),default:(0,n.k6)(()=>[(0,n.bF)((0,s.R1)(m.A),{value:(0,s.R1)(l).extensions,"striped-rows":"",size:"small",filters:a.value},{default:(0,n.k6)(()=>[(0,n.bF)((0,s.R1)(d.A),{header:e.$t("g.extensionName"),sortable:"",field:"name"},{body:(0,n.k6)(e=>[(0,n.eW)((0,i.v_)(e.data.name)+" ",1),(0,s.R1)(l).isCoreExtension(e.data.name)?((0,n.uX)(),(0,n.Wv)((0,s.R1)(v.A),{key:0,value:"Core"})):(0,n.Q3)("",!0)]),_:1},8,["header"]),(0,n.bF)((0,s.R1)(d.A),{pt:{headerCell:"flex items-center justify-end",bodyCell:"flex items-center justify-end"}},{header:(0,n.k6)(()=>[(0,n.bF)((0,s.R1)(o.A),{icon:"pi pi-ellipsis-h",text:"",severity:"secondary",onClick:t[1]||(t[1]=e=>{var a;return null==(a=A.value)?void 0:a.show(e)})}),(0,n.bF)((0,s.R1)(u.A),{ref_key:"menu",ref:A,model:w},null,512)]),body:(0,n.k6)(e=>[(0,n.bF)((0,s.R1)(c.A),{modelValue:E.value[e.data.name],"onUpdate:modelValue":a=>E.value[e.data.name]=a,disabled:(0,s.R1)(l).isExtensionReadOnly(e.data.name),onChange:h},null,8,["modelValue","onUpdate:modelValue","disabled"])]),_:1})]),_:1},8,["value","filters"])]),_:1}))}})}}]); 2 | //# sourceMappingURL=1849.c0dcb067f369624c.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/1849.c0dcb067f369624c.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/1849.c0dcb067f369624c.js","mappings":"kQAUA,OAAqB,0BACrB,EAAkC,QAAe,EACjD,wBACA,SACA,MAAoB,QAAG,EACvB,QAAgB,mBAAsB,IAAe,UACrD,CAAK,EACL,EAA2B,QAAiB,GAC5C,EAAyB,OAAe,GACxC,EAAqC,QAAG,GAAG,EACvC,QAAS,MACb,yBACA,4CACA,CAAO,CACP,CAAK,EACL,MAA8B,QAAQ,KACtC,oBACA,oDAGA,EAAuB,QAAQ,KAC/B,kBAEA,YACA,qBACA,SACA,iCACA,4CACA,oCACA,EACA,CACA,EACA,YACA,yBACA,+BACA,oBACA,CAAO,EACP,SACA,EACA,YACA,yBACA,+BACA,oBACA,CAAO,EACP,SACA,EACA,YACA,yBACA,2BACA,oBACA,CAAO,EACP,SACA,EACA,OACA,wBACA,EACA,EAAiB,QAAG,GACpB,GACA,CACA,mBACA,mBACA,SACA,CAAO,CACP,CACA,oBACA,mBACA,SACA,CAAO,CACP,CACA,0BACA,mBACA,UACA,qCAEA,CACA,cACa,QAAS,GAAI,QAAW,CAAC,IAAW,EACjD,kBACA,uBACA,CAAO,EACP,OAAgB,QAAO,MACb,QAAW,CAAC,IAAS,EAC/B,gCACA,6DACA,4CACA,CAAW,sCACX,SAA8B,QAAS,GAAI,QAAW,CAAC,QAAK,CAAC,GAAO,GACpE,MACA,gBACA,mBACA,gCACA,CAAW,EACX,QAAqB,QAAO,MACd,QAAkB,aACf,QAAS,KAAQ,QAAkB,CAAC,IAAQ,MAAQ,QAAU,aACtD,QAAS,GAAI,QAAkB,OACxD,WACmB,EACC,QAAkB,aAAe,QAAe,CAAC,QAAK,+CACtD,QAAe,KAAO,QAAe,YACzD,IACiB,MACjB,EACc,QAAkB,UAChB,QAAW,CAAC,QAAK,CAAC,GAAM,GACxC,qCACA,YACA,kBACA,SACA,CAAiB,mBACjB,EACA,EACA,GACA,EAAW,EAAK,QAAkB,QAClC,EACA,QAAiB,QAAO,MACd,QAAW,CAAC,QAAK,CAAC,GAAS,GACrC,MAAmB,QAAK,eACxB,kBACA,aACA,gBACW,EACX,QAAqB,QAAO,MACd,QAAW,CAAC,QAAK,CAAC,GAAM,GACtC,+BACA,YACA,YACA,CAAe,EACf,KAAsB,QAAO,KACX,QAAe,CAAC,QAAe,qBAC/B,QAAK,iCAAyD,SAAS,GAAI,QAAW,CAAC,QAAK,CAAC,GAAG,GAClH,MACA,YACA,EAAmB,EAAK,QAAkB,QAC1C,EACA,GACA,CAAe,eACD,QAAW,CAAC,QAAK,CAAC,GAAM,GAAK,IAC3C,2CACA,wCACA,EAAiB,EACjB,OAAwB,QAAO,MACb,QAAW,CAAC,QAAK,CAAC,GAAM,GAC1C,wBACA,QACA,qBACA,wBACA,MACA,yCACA,EAAqB,CACF,EACD,QAAW,CAAC,QAAK,CAAC,GAAW,GAC/C,eACA,MACA,OACA,CAAmB,WACnB,EACA,KAAsB,QAAO,KACX,QAAW,CAAC,QAAK,CAAC,GAAY,GAChD,gCACA,gDACA,SAA8B,QAAK,qCACnC,UACA,CAAmB,yDACnB,EACA,GACA,CAAe,EACf,EACA,GACA,CAAW,wBACX,EACA,GACA,EAAO,CAEP,CACA,CAAC","sources":["webpack://_N_E/../../node_modules/.bun/@comfyorg+comfyui-frontend@.+comfyorg-comfyui-frontend-1.26.2.tgz+e5b32ef95522b1e7/node_modules/@comfyorg/comfyui-frontend/lib/ExtensionPanel-DgXcjLsI.js"],"sourcesContent":["import { defineComponent, ref, onMounted, computed, openBlock, createBlock, withCtx, createVNode, unref, createElementVNode, createElementBlock, Fragment, renderList, toDisplayString, createTextVNode, createCommentVNode } from \"vue\";\nimport { FilterMatchMode } from \"@primevue/core/api\";\nimport Button from \"primevue/button\";\nimport Column from \"primevue/column\";\nimport ContextMenu from \"primevue/contextmenu\";\nimport DataTable from \"primevue/datatable\";\nimport Message from \"primevue/message\";\nimport Tag from \"primevue/tag\";\nimport ToggleSwitch from \"primevue/toggleswitch\";\nimport { am as useExtensionStore, P as useSettingStore, a7 as _sfc_main$1, al as SearchBox } from \"./lib-index-DdMUP0fe.js\";\nconst _hoisted_1 = { class: \"flex justify-end\" };\nconst _sfc_main = /* @__PURE__ */ defineComponent({\n __name: \"ExtensionPanel\",\n setup(__props) {\n const filters = ref({\n global: { value: \"\", matchMode: FilterMatchMode.CONTAINS }\n });\n const extensionStore = useExtensionStore();\n const settingStore = useSettingStore();\n const editingEnabledExtensions = ref({});\n onMounted(() => {\n extensionStore.extensions.forEach((ext) => {\n editingEnabledExtensions.value[ext.name] = extensionStore.isExtensionEnabled(ext.name);\n });\n });\n const changedExtensions = computed(() => {\n return extensionStore.extensions.filter(\n (ext) => editingEnabledExtensions.value[ext.name] !== extensionStore.isExtensionEnabled(ext.name)\n );\n });\n const hasChanges = computed(() => {\n return changedExtensions.value.length > 0;\n });\n const updateExtensionStatus = async () => {\n const editingDisabledExtensionNames = Object.entries(\n editingEnabledExtensions.value\n ).filter(([_, enabled]) => !enabled).map(([name]) => name);\n await settingStore.set(\"Comfy.Extension.Disabled\", [\n ...extensionStore.inactiveDisabledExtensionNames,\n ...editingDisabledExtensionNames\n ]);\n };\n const enableAllExtensions = async () => {\n extensionStore.extensions.forEach((ext) => {\n if (extensionStore.isExtensionReadOnly(ext.name)) return;\n editingEnabledExtensions.value[ext.name] = true;\n });\n await updateExtensionStatus();\n };\n const disableAllExtensions = async () => {\n extensionStore.extensions.forEach((ext) => {\n if (extensionStore.isExtensionReadOnly(ext.name)) return;\n editingEnabledExtensions.value[ext.name] = false;\n });\n await updateExtensionStatus();\n };\n const disableThirdPartyExtensions = async () => {\n extensionStore.extensions.forEach((ext) => {\n if (extensionStore.isCoreExtension(ext.name)) return;\n editingEnabledExtensions.value[ext.name] = false;\n });\n await updateExtensionStatus();\n };\n const applyChanges = () => {\n window.location.reload();\n };\n const menu = ref();\n const contextMenuItems = [\n {\n label: \"Enable All\",\n icon: \"pi pi-check\",\n command: enableAllExtensions\n },\n {\n label: \"Disable All\",\n icon: \"pi pi-times\",\n command: disableAllExtensions\n },\n {\n label: \"Disable 3rd Party\",\n icon: \"pi pi-times\",\n command: disableThirdPartyExtensions,\n disabled: !extensionStore.hasThirdPartyExtensions\n }\n ];\n return (_ctx, _cache) => {\n return openBlock(), createBlock(_sfc_main$1, {\n value: \"Extension\",\n class: \"extension-panel\"\n }, {\n header: withCtx(() => [\n createVNode(SearchBox, {\n modelValue: filters.value[\"global\"].value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event) => filters.value[\"global\"].value = $event),\n placeholder: _ctx.$t(\"g.searchExtensions\") + \"...\"\n }, null, 8, [\"modelValue\", \"placeholder\"]),\n hasChanges.value ? (openBlock(), createBlock(unref(Message), {\n key: 0,\n severity: \"info\",\n \"pt:text\": \"w-full\",\n class: \"max-h-96 overflow-y-auto\"\n }, {\n default: withCtx(() => [\n createElementVNode(\"ul\", null, [\n (openBlock(true), createElementBlock(Fragment, null, renderList(changedExtensions.value, (ext) => {\n return openBlock(), createElementBlock(\"li\", {\n key: ext.name\n }, [\n createElementVNode(\"span\", null, toDisplayString(unref(extensionStore).isExtensionEnabled(ext.name) ? \"[-]\" : \"[+]\"), 1),\n createTextVNode(\" \" + toDisplayString(ext.name), 1)\n ]);\n }), 128))\n ]),\n createElementVNode(\"div\", _hoisted_1, [\n createVNode(unref(Button), {\n label: _ctx.$t(\"g.reloadToApplyChanges\"),\n outlined: \"\",\n severity: \"danger\",\n onClick: applyChanges\n }, null, 8, [\"label\"])\n ])\n ]),\n _: 1\n })) : createCommentVNode(\"\", true)\n ]),\n default: withCtx(() => [\n createVNode(unref(DataTable), {\n value: unref(extensionStore).extensions,\n \"striped-rows\": \"\",\n size: \"small\",\n filters: filters.value\n }, {\n default: withCtx(() => [\n createVNode(unref(Column), {\n header: _ctx.$t(\"g.extensionName\"),\n sortable: \"\",\n field: \"name\"\n }, {\n body: withCtx((slotProps) => [\n createTextVNode(toDisplayString(slotProps.data.name) + \" \", 1),\n unref(extensionStore).isCoreExtension(slotProps.data.name) ? (openBlock(), createBlock(unref(Tag), {\n key: 0,\n value: \"Core\"\n })) : createCommentVNode(\"\", true)\n ]),\n _: 1\n }, 8, [\"header\"]),\n createVNode(unref(Column), { pt: {\n headerCell: \"flex items-center justify-end\",\n bodyCell: \"flex items-center justify-end\"\n } }, {\n header: withCtx(() => [\n createVNode(unref(Button), {\n icon: \"pi pi-ellipsis-h\",\n text: \"\",\n severity: \"secondary\",\n onClick: _cache[1] || (_cache[1] = ($event) => {\n var _a;\n return (_a = menu.value) == null ? void 0 : _a.show($event);\n })\n }),\n createVNode(unref(ContextMenu), {\n ref_key: \"menu\",\n ref: menu,\n model: contextMenuItems\n }, null, 512)\n ]),\n body: withCtx((slotProps) => [\n createVNode(unref(ToggleSwitch), {\n modelValue: editingEnabledExtensions.value[slotProps.data.name],\n \"onUpdate:modelValue\": ($event) => editingEnabledExtensions.value[slotProps.data.name] = $event,\n disabled: unref(extensionStore).isExtensionReadOnly(slotProps.data.name),\n onChange: updateExtensionStatus\n }, null, 8, [\"modelValue\", \"onUpdate:modelValue\", \"disabled\"])\n ]),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"value\", \"filters\"])\n ]),\n _: 1\n });\n };\n }\n});\nexport {\n _sfc_main as default\n};\n//# sourceMappingURL=ExtensionPanel-DgXcjLsI.js.map\n"],"names":[],"sourceRoot":"","ignoreList":[0]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/2589.274f8308f518a836.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2589],{62589:(e,l,a)=>{a.r(l),a.d(l,{default:()=>C});var t=a(20523),i=a(38099),u=a(87498),n=a(12944),r=a(99285),v=a(44089),s=a(8666),o=a(45028),f=a(70647);let d=(0,n.nY)("serverConfig",()=>{let e=(0,t.KR)({}),l=(0,i.EW)(()=>Object.values(e.value)),a=(0,i.EW)(()=>l.value.filter(e=>e.initialValue!==e.value)),u=(0,i.EW)(()=>l.value.reduce((e,l)=>{var a;let t=(null==(a=l.category)?void 0:a[0])??"General";return e[t]=e[t]||[],e[t].push(l),e},{})),n=(0,i.EW)(()=>Object.fromEntries(l.value.map(e=>[e.id,e.value===e.defaultValue||null===e.value||void 0===e.value?void 0:e.value]))),r=(0,i.EW)(()=>Object.fromEntries(Object.entries(Object.assign({},...l.value.map(e=>e.value===e.defaultValue||null===e.value||void 0===e.value?{}:e.getValue?e.getValue(e.value):{[e.id]:e.value}))).map(([e,l])=>!0===l?[e,""]:[e,l.toString()]))),v=(0,i.EW)(()=>Object.entries(r.value).map(([e,l])=>[`--${e}`,l]).flat().filter(e=>""!==e).join(" "));return{serverConfigById:e,serverConfigs:l,modifiedConfigs:a,serverConfigsByCategory:u,serverConfigValues:n,launchArgs:r,commandLineArgs:v,revertChanges:()=>{for(let e of a.value)e.value=e.initialValue},loadServerConfig:function(l,a){for(let t of l){let l=a[t.id]??t.defaultValue;e.value[t.id]={...t,value:l,initialValue:l}}}}}),c={class:"flex flex-col gap-2"},p={class:"flex justify-end gap-2"},g={class:"flex items-center justify-between"},C=(0,i.pM)({__name:"ServerConfigPanel",setup(e){let l=(0,f.P)(),a=d(),{serverConfigsByCategory:C,serverConfigValues:m,launchArgs:b,commandLineArgs:k,modifiedConfigs:y}=(0,n.bP)(a),E=()=>{a.revertChanges()},V=async()=>{await (0,f.j)().restartApp()};(0,i.wB)(b,async e=>{await l.set("Comfy.Server.LaunchArgs",e)}),(0,i.wB)(m,async e=>{await l.set("Comfy.Server.ServerConfigValues",e)});let{copyToClipboard:_}=(0,f.an)(),h=async()=>{await _(k.value)},{t:R}=(0,o.s9)();return(e,l)=>{let a=(0,i.g2)("i-lucide:terminal");return(0,i.uX)(),(0,i.Wv)(f.a7,{value:"Server-Config",class:"server-config-panel"},{header:(0,i.k6)(()=>[(0,i.Lk)("div",c,[(0,t.R1)(y).length>0?((0,i.uX)(),(0,i.Wv)((0,t.R1)(s.A),{key:0,severity:"info","pt:text":"w-full"},{default:(0,i.k6)(()=>[(0,i.Lk)("p",null,(0,u.v_)(e.$t("serverConfig.modifiedConfigs")),1),(0,i.Lk)("ul",null,[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)((0,t.R1)(y),e=>((0,i.uX)(),(0,i.CE)("li",{key:e.id},(0,u.v_)(e.name)+": "+(0,u.v_)(e.initialValue)+" → "+(0,u.v_)(e.value),1))),128))]),(0,i.Lk)("div",p,[(0,i.bF)((0,t.R1)(r.A),{label:e.$t("serverConfig.revertChanges"),outlined:"",onClick:E},null,8,["label"]),(0,i.bF)((0,t.R1)(r.A),{label:e.$t("serverConfig.restart"),outlined:"",severity:"danger",onClick:V},null,8,["label"])])]),_:1})):(0,i.Q3)("",!0),(0,t.R1)(k)?((0,i.uX)(),(0,i.Wv)((0,t.R1)(s.A),{key:1,severity:"secondary","pt:text":"w-full"},{icon:(0,i.k6)(()=>[(0,i.bF)(a,{class:"text-xl font-bold"})]),default:(0,i.k6)(()=>[(0,i.Lk)("div",g,[(0,i.Lk)("p",null,(0,u.v_)((0,t.R1)(k)),1),(0,i.bF)((0,t.R1)(r.A),{icon:"pi pi-clipboard",severity:"secondary",text:"",onClick:h})])]),_:1})):(0,i.Q3)("",!0)])]),default:(0,i.k6)(()=>[((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(Object.entries((0,t.R1)(C)),([l,a],n)=>((0,i.uX)(),(0,i.CE)("div",{key:l},[n>0?((0,i.uX)(),(0,i.Wv)((0,t.R1)(v.A),{key:0})):(0,i.Q3)("",!0),(0,i.Lk)("h3",null,(0,u.v_)(e.$t(`serverConfigCategories.${l}`,l)),1),((0,i.uX)(!0),(0,i.CE)(i.FK,null,(0,i.pI)(a,e=>((0,i.uX)(),(0,i.CE)("div",{key:e.name,class:"mb-4"},[(0,i.bF)(f.ao,{id:e.id,formValue:e.value,"onUpdate:formValue":l=>e.value=l,item:{...e,name:R(`serverConfigItems.${e.id}.name`,e.name),tooltip:e.tooltip?R(`serverConfigItems.${e.id}.tooltip`,e.tooltip):void 0},"label-class":{"text-highlight":e.initialValue!==e.value}},null,8,["id","formValue","onUpdate:formValue","item","label-class"])]))),128))]))),128))]),_:1})}}})}}]); 2 | //# sourceMappingURL=2589.274f8308f518a836.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/383.381096dd01edfc82.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[383],{383:(e,t,l)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let u=l(78873),n=l(485),a=u._(l(30233)),o=l(91157);async function r(e){let{Component:t,ctx:l}=e;return{pageProps:await (0,o.loadGetInitialProps)(t,l)}}class s extends a.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,n.jsx)(e,{...t})}}s.origGetInitialProps=r,s.getInitialProps=r,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}}]); 2 | //# sourceMappingURL=383.381096dd01edfc82.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/383.381096dd01edfc82.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/383.381096dd01edfc82.js","mappings":"kNAiCqBA,qCAjCH,YAWkB,OAcpC,eAAeC,EAAmB,CAGrB,EAHqB,cAChCC,CAAS,KACTC,CAAG,CACQ,CAHqB,EAKhC,MAAO,CAAEC,UADS,MAAMC,CAAAA,EAAAA,EAAAA,mBAAAA,EAAoBH,EAAWC,EACpC,CACrB,CAEe,MAAMH,UAAsCM,EAAAA,OAAK,CAACJ,SAAS,CAOxEK,QAAS,CACP,GAAM,WAAEL,CAAS,WAAEE,CAAS,CAAE,CAAG,IAAI,CAACI,KAAK,CAE3C,MAAO,UAACN,EAAR,CAAmB,GAAGE,CAAS,EACjC,CACF,CAZqBJ,EAIZS,mBAAAA,CAAsBR,EAJVD,EAKZU,eAAAA,CAAkBT","sources":["webpack://_N_E/../../src/pages/_app.tsx"],"sourcesContent":["import React from 'react'\n\nimport type {\n AppContextType,\n AppInitialProps,\n AppPropsType,\n NextWebVitalsMetric,\n AppType,\n} from '../shared/lib/utils'\nimport type { Router } from '../client/router'\n\nimport { loadGetInitialProps } from '../shared/lib/utils'\n\nexport type { AppInitialProps, AppType }\n\nexport type { NextWebVitalsMetric }\n\nexport type AppContext = AppContextType\n\nexport type AppProps

= AppPropsType\n\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\nasync function appGetInitialProps({\n Component,\n ctx,\n}: AppContext): Promise {\n const pageProps = await loadGetInitialProps(Component, ctx)\n return { pageProps }\n}\n\nexport default class App

extends React.Component<\n P & AppProps,\n S\n> {\n static origGetInitialProps = appGetInitialProps\n static getInitialProps = appGetInitialProps\n\n render() {\n const { Component, pageProps } = this.props as AppProps\n\n return \n }\n}\n"],"names":["App","appGetInitialProps","Component","ctx","pageProps","loadGetInitialProps","React","render","props","origGetInitialProps","getInitialProps"],"sourceRoot":"","ignoreList":[]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/4469.a3233c7480fad071.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4469],{84469:(e,t,n)=>{n.r(t),n.d(t,{default:()=>s});var r=n(38099),o=n(20523);let l={width:"1.2em",height:"1.2em",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},s=(0,o.IG)({name:"comfy-node",render:function(e,t){return(0,r.uX)(),(0,r.CE)("svg",l,t[0]||(t[0]=[(0,r.Lk)("path",{d:"M10.6667 10L10.598 10.2577C10.4812 10.6954 10.0848 11 9.63172 11H5.30161C4.64458 11 4.16608 10.3772 4.33538 9.74234L5.40204 5.74234C5.51878 5.30458 5.91523 5 6.36828 5H10.8286C11.4199 5 11.8505 5.56051 11.6982 6.13185L11.6736 6.22389M14 8H10M4.5 8H2",stroke:"currentColor","stroke-width":"1.3","stroke-linecap":"round"},null,-1)]))}})}}]); 2 | //# sourceMappingURL=4469.a3233c7480fad071.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/4469.a3233c7480fad071.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/4469.a3233c7480fad071.js","mappings":"qJACA,OACA,cACA,eACA,oBACA,YACA,kCACA,EAWA,EAAa,QAAO,EAAG,yBAVvB,cACA,MAAS,QAAS,GAAI,QAAkB,sBACpC,QAAkB,SACtB,8PACA,sBACA,qBACA,wBACA,CAAK,UACL,EACA,CACuB,CAA4B","sources":["webpack://_N_E/../../node_modules/.bun/@comfyorg+comfyui-frontend@.+comfyorg-comfyui-frontend-1.26.2.tgz+e5b32ef95522b1e7/node_modules/@comfyorg/comfyui-frontend/lib/node-D0TrVmAE.js"],"sourcesContent":["import { markRaw, openBlock, createElementBlock, createElementVNode } from \"vue\";\nconst _hoisted_1 = {\n width: \"1.2em\",\n height: \"1.2em\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nfunction render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _cache[0] || (_cache[0] = [\n createElementVNode(\"path\", {\n d: \"M10.6667 10L10.598 10.2577C10.4812 10.6954 10.0848 11 9.63172 11H5.30161C4.64458 11 4.16608 10.3772 4.33538 9.74234L5.40204 5.74234C5.51878 5.30458 5.91523 5 6.36828 5H10.8286C11.4199 5 11.8505 5.56051 11.6982 6.13185L11.6736 6.22389M14 8H10M4.5 8H2\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.3\",\n \"stroke-linecap\": \"round\"\n }, null, -1)\n ]));\n}\nconst node = markRaw({ name: \"comfy-node\", render });\nexport {\n node as default\n};\n//# sourceMappingURL=node-D0TrVmAE.js.map\n"],"names":[],"sourceRoot":"","ignoreList":[0]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/5190.d4b824c722a38209.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5190],{5190:(e,r,t)=>{t.r(r),t.d(r,{default:()=>l});var o=t(38099),C=t(20523);let n={width:"1.2em",height:"1.2em",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},l=(0,C.IG)({name:"comfy-ai-model",render:function(e,r){return(0,o.uX)(),(0,o.CE)("svg",n,r[0]||(r[0]=[(0,o.Lk)("path",{d:"M4.91396 12.7428L5.41396 10.7428C5.57175 10.1116 5.09439 9.50024 4.44382 9.50024H2.50538C2.04651 9.50024 1.64652 9.81253 1.53523 10.2577L1.03523 12.2577C0.877446 12.8888 1.3548 13.5002 2.00538 13.5002H3.94382C4.40269 13.5002 4.80267 13.1879 4.91396 12.7428Z",stroke:"currentColor","stroke-width":"1.3","stroke-linecap":"round"},null,-1),(0,o.Lk)("path",{d:"M5.91396 6.74277L6.41396 4.74277C6.57175 4.11163 6.09439 3.50024 5.44382 3.50024H3.50538C3.04651 3.50024 2.64652 3.81253 2.53523 4.2577L2.03523 6.2577C1.87745 6.88885 2.3548 7.50024 3.00538 7.50024H4.94382C5.40269 7.50024 5.80267 7.18794 5.91396 6.74277Z",stroke:"currentColor","stroke-width":"1.3","stroke-linecap":"round"},null,-1),(0,o.Lk)("path",{d:"M10.914 12.7428L11.414 10.7428C11.5718 10.1116 11.0944 9.50024 10.4438 9.50024H8.50538C8.04651 9.50024 7.64652 9.81253 7.53523 10.2577L7.03523 12.2577C6.87745 12.8888 7.3548 13.5002 8.00538 13.5002H9.94382C10.4027 13.5002 10.8027 13.1879 10.914 12.7428Z",stroke:"currentColor","stroke-width":"1.3","stroke-linecap":"round"},null,-1),(0,o.Lk)("path",{d:"M12.2342 5.46739L11.5287 7.11354C11.4248 7.35597 11.0811 7.35597 10.9772 7.11354L10.2717 5.46739C10.2414 5.39659 10.185 5.34017 10.1141 5.30983L8.468 4.60433C8.22557 4.50044 8.22557 4.15675 8.468 4.05285L10.1141 3.34736C10.185 3.31701 10.2414 3.26059 10.2717 3.18979L10.9772 1.54364C11.0811 1.30121 11.4248 1.30121 11.5287 1.54364L12.2342 3.18979C12.2645 3.26059 12.3209 3.31701 12.3918 3.34736L14.0379 4.05285C14.2803 4.15675 14.2803 4.50044 14.0379 4.60433L12.3918 5.30983C12.3209 5.34017 12.2645 5.39659 12.2342 5.46739Z",stroke:"currentColor","stroke-width":"1.3","stroke-linecap":"round"},null,-1)]))}})}}]); 2 | //# sourceMappingURL=5190.d4b824c722a38209.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/5190.d4b824c722a38209.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/5190.d4b824c722a38209.js","mappings":"oJACA,OACA,cACA,eACA,oBACA,YACA,kCACA,EA6BA,EAAgB,QAAO,EAAG,6BA5B1B,cACA,MAAS,QAAS,GAAI,QAAkB,sBACpC,QAAkB,SACtB,sQACA,sBACA,qBACA,wBACA,CAAK,UACD,QAAkB,SACtB,mQACA,sBACA,qBACA,wBACA,CAAK,UACD,QAAkB,SACtB,kQACA,sBACA,qBACA,wBACA,CAAK,UACD,QAAkB,SACtB,ghBACA,sBACA,qBACA,wBACA,CAAK,UACL,EACA,CAC0B,CAAgC","sources":["webpack://_N_E/../../node_modules/.bun/@comfyorg+comfyui-frontend@.+comfyorg-comfyui-frontend-1.26.2.tgz+e5b32ef95522b1e7/node_modules/@comfyorg/comfyui-frontend/lib/ai-model-DU2H3itC.js"],"sourcesContent":["import { markRaw, openBlock, createElementBlock, createElementVNode } from \"vue\";\nconst _hoisted_1 = {\n width: \"1.2em\",\n height: \"1.2em\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nfunction render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _cache[0] || (_cache[0] = [\n createElementVNode(\"path\", {\n d: \"M4.91396 12.7428L5.41396 10.7428C5.57175 10.1116 5.09439 9.50024 4.44382 9.50024H2.50538C2.04651 9.50024 1.64652 9.81253 1.53523 10.2577L1.03523 12.2577C0.877446 12.8888 1.3548 13.5002 2.00538 13.5002H3.94382C4.40269 13.5002 4.80267 13.1879 4.91396 12.7428Z\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.3\",\n \"stroke-linecap\": \"round\"\n }, null, -1),\n createElementVNode(\"path\", {\n d: \"M5.91396 6.74277L6.41396 4.74277C6.57175 4.11163 6.09439 3.50024 5.44382 3.50024H3.50538C3.04651 3.50024 2.64652 3.81253 2.53523 4.2577L2.03523 6.2577C1.87745 6.88885 2.3548 7.50024 3.00538 7.50024H4.94382C5.40269 7.50024 5.80267 7.18794 5.91396 6.74277Z\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.3\",\n \"stroke-linecap\": \"round\"\n }, null, -1),\n createElementVNode(\"path\", {\n d: \"M10.914 12.7428L11.414 10.7428C11.5718 10.1116 11.0944 9.50024 10.4438 9.50024H8.50538C8.04651 9.50024 7.64652 9.81253 7.53523 10.2577L7.03523 12.2577C6.87745 12.8888 7.3548 13.5002 8.00538 13.5002H9.94382C10.4027 13.5002 10.8027 13.1879 10.914 12.7428Z\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.3\",\n \"stroke-linecap\": \"round\"\n }, null, -1),\n createElementVNode(\"path\", {\n d: \"M12.2342 5.46739L11.5287 7.11354C11.4248 7.35597 11.0811 7.35597 10.9772 7.11354L10.2717 5.46739C10.2414 5.39659 10.185 5.34017 10.1141 5.30983L8.468 4.60433C8.22557 4.50044 8.22557 4.15675 8.468 4.05285L10.1141 3.34736C10.185 3.31701 10.2414 3.26059 10.2717 3.18979L10.9772 1.54364C11.0811 1.30121 11.4248 1.30121 11.5287 1.54364L12.2342 3.18979C12.2645 3.26059 12.3209 3.31701 12.3918 3.34736L14.0379 4.05285C14.2803 4.15675 14.2803 4.50044 14.0379 4.60433L12.3918 5.30983C12.3209 5.34017 12.2645 5.39659 12.2342 5.46739Z\",\n stroke: \"currentColor\",\n \"stroke-width\": \"1.3\",\n \"stroke-linecap\": \"round\"\n }, null, -1)\n ]));\n}\nconst aiModel = markRaw({ name: \"comfy-ai-model\", render });\nexport {\n aiModel as default\n};\n//# sourceMappingURL=ai-model-DU2H3itC.js.map\n"],"names":[],"sourceRoot":"","ignoreList":[0]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/7354.e2c24094a96ce137.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7354],{28275:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let r=n(30233),o=r.useLayoutEffect,l=r.useEffect;function a(e){let{headManager:t,reduceComponentsToState:n}=e;function a(){if(t&&t.mountedInstances){let o=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(o,e))}}return o(()=>{var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),()=>{var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=a),()=>{t&&(t._pendingUpdate=a)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},47346:(e,t)=>{function n(e){let{ampFirst:t=!1,hybrid:n=!1,hasQuery:r=!1}=void 0===e?{}:e;return t||n&&r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return n}})},47866:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return y},defaultHead:function(){return c}});let r=n(78873),o=n(37978),l=n(485),a=o._(n(30233)),i=r._(n(28275)),d=n(90198),s=n(64168),u=n(47346);function c(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===a.default.Fragment?e.concat(a.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}n(93548);let f=["name","httpEquiv","charSet","itemProp"];function h(e,t){let{inAmpMode:n}=t;return e.reduce(p,[]).reverse().concat(c(n).reverse()).filter(function(){let e=new Set,t=new Set,n=new Set,r={};return o=>{let l=!0,a=!1;if(o.key&&"number"!=typeof o.key&&o.key.indexOf("$")>0){a=!0;let t=o.key.slice(o.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(o.type){case"title":case"base":t.has(o.type)?l=!1:t.add(o.type);break;case"meta":for(let e=0,t=f.length;e{let n=e.key||t;return a.default.cloneElement(e,{key:n})})}let y=function(e){let{children:t}=e,n=(0,a.useContext)(d.AmpStateContext),r=(0,a.useContext)(s.HeadManagerContext);return(0,l.jsx)(i.default,{reduceComponentsToState:h,headManager:r,inAmpMode:(0,u.isInAmpMode)(n),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},87354:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(78873),o=n(485),l=r._(n(30233)),a=r._(n(47866)),i={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function d(e){let{req:t,res:n,err:r}=e;return{statusCode:n&&n.statusCode?n.statusCode:r?r.statusCode:404,hostname:window.location.hostname}}let s={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class u extends l.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,n=this.props.title||i[e]||"An unexpected error has occurred";return(0,o.jsxs)("div",{style:s.error,children:[(0,o.jsx)(a.default,{children:(0,o.jsx)("title",{children:e?e+": "+n:"Application error: a client-side exception has occurred"})}),(0,o.jsxs)("div",{style:s.desc,children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,o.jsx)("h1",{className:"next-error-h1",style:s.h1,children:e}):null,(0,o.jsx)("div",{style:s.wrap,children:(0,o.jsxs)("h2",{style:s.h2,children:[this.props.title||e?n:(0,o.jsxs)(o.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,o.jsxs)(o.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}u.displayName="ErrorPage",u.getInitialProps=d,u.origGetInitialProps=d,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90198:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return r}});let r=n(78873)._(n(30233)).default.createContext({})}}]); 2 | //# sourceMappingURL=7354.e2c24094a96ce137.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/7379.113d6abf603a94eb.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7379],{27379:(a,t,e)=>{e.r(t),e.d(t,{default:()=>j});var n=e(38099),r=e(20523),l=e(87498),i=e(99285),o=e(44089),s=e(60882),u=e(95493),p=e(34288),c=e(43333),d=e(46018).A.extend({name:"avatar",style:"\n .p-avatar {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: dt('avatar.width');\n height: dt('avatar.height');\n font-size: dt('avatar.font.size');\n background: dt('avatar.background');\n color: dt('avatar.color');\n border-radius: dt('avatar.border.radius');\n }\n\n .p-avatar-image {\n background: transparent;\n }\n\n .p-avatar-circle {\n border-radius: 50%;\n }\n\n .p-avatar-circle img {\n border-radius: 50%;\n }\n\n .p-avatar-icon {\n font-size: dt('avatar.icon.size');\n width: dt('avatar.icon.size');\n height: dt('avatar.icon.size');\n }\n\n .p-avatar img {\n width: 100%;\n height: 100%;\n }\n\n .p-avatar-lg {\n width: dt('avatar.lg.width');\n height: dt('avatar.lg.width');\n font-size: dt('avatar.lg.font.size');\n }\n\n .p-avatar-lg .p-avatar-icon {\n font-size: dt('avatar.lg.icon.size');\n width: dt('avatar.lg.icon.size');\n height: dt('avatar.lg.icon.size');\n }\n\n .p-avatar-xl {\n width: dt('avatar.xl.width');\n height: dt('avatar.xl.width');\n font-size: dt('avatar.xl.font.size');\n }\n\n .p-avatar-xl .p-avatar-icon {\n font-size: dt('avatar.xl.icon.size');\n width: dt('avatar.xl.icon.size');\n height: dt('avatar.xl.icon.size');\n }\n\n .p-avatar-group {\n display: flex;\n align-items: center;\n }\n\n .p-avatar-group .p-avatar + .p-avatar {\n margin-inline-start: dt('avatar.group.offset');\n }\n\n .p-avatar-group .p-avatar {\n border: 2px solid dt('avatar.group.border.color');\n }\n\n .p-avatar-group .p-avatar-lg + .p-avatar-lg {\n margin-inline-start: dt('avatar.lg.group.offset');\n }\n\n .p-avatar-group .p-avatar-xl + .p-avatar-xl {\n margin-inline-start: dt('avatar.xl.group.offset');\n }\n",classes:{root:function(a){var t=a.props;return["p-avatar p-component",{"p-avatar-image":null!=t.image,"p-avatar-circle":"circle"===t.shape,"p-avatar-lg":"large"===t.size,"p-avatar-xl":"xlarge"===t.size}]},label:"p-avatar-label",icon:"p-avatar-icon"}});function v(a){return(v="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a})(a)}function g(a,t,e){var n;return(n=function(a,t){if("object"!=v(a)||!a)return a;var e=a[Symbol.toPrimitive];if(void 0!==e){var n=e.call(a,t);if("object"!=v(n))return n;throw TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(a)}(t,"string"),(t="symbol"==v(n)?n:n+"")in a)?Object.defineProperty(a,t,{value:e,enumerable:!0,configurable:!0,writable:!0}):a[t]=e,a}var f={name:"Avatar",extends:{name:"BaseAvatar",extends:c.A,props:{label:{type:String,default:null},icon:{type:String,default:null},image:{type:String,default:null},size:{type:String,default:"normal"},shape:{type:String,default:"square"},ariaLabelledby:{type:String,default:null},ariaLabel:{type:String,default:null}},style:d,provide:function(){return{$pcAvatar:this,$parentInstance:this}}},inheritAttrs:!1,emits:["error"],methods:{onError:function(a){this.$emit("error",a)}},computed:{dataP:function(){return(0,p.cn)(g(g({},this.shape,this.shape),this.size,this.size))}}},h=["aria-labelledby","aria-label","data-p"],m=["data-p"],b=["data-p"],y=["src","alt","data-p"];f.render=function(a,t,e,r,i,o){return(0,n.uX)(),(0,n.CE)("div",(0,n.v6)({class:a.cx("root"),"aria-labelledby":a.ariaLabelledby,"aria-label":a.ariaLabel},a.ptmi("root"),{"data-p":o.dataP}),[(0,n.RG)(a.$slots,"default",{},function(){return[a.label?((0,n.uX)(),(0,n.CE)("span",(0,n.v6)({key:0,class:a.cx("label")},a.ptm("label"),{"data-p":o.dataP}),(0,l.v_)(a.label),17,m)):a.$slots.icon?((0,n.uX)(),(0,n.Wv)((0,n.$y)(a.$slots.icon),{key:1,class:(0,l.C4)(a.cx("icon"))},null,8,["class"])):a.icon?((0,n.uX)(),(0,n.CE)("span",(0,n.v6)({key:2,class:[a.cx("icon"),a.icon]},a.ptm("icon"),{"data-p":o.dataP}),null,16,b)):a.image?((0,n.uX)(),(0,n.CE)("img",(0,n.v6)({key:3,src:a.image,alt:a.ariaLabel,onError:t[0]||(t[0]=function(){return o.onError&&o.onError.apply(o,arguments)})},a.ptm("image"),{"data-p":o.dataP}),null,16,y)):(0,n.Q3)("",!0)]})],16,h)};var x=e(70647);let k=(0,n.pM)({__name:"UserAvatar",props:{photoUrl:{},ariaLabel:{}},setup(a){let t=(0,r.KR)(!1),e=()=>{t.value=!0},l=(0,n.EW)(()=>a.photoUrl&&!t.value);return(a,t)=>((0,n.uX)(),(0,n.Wv)((0,r.R1)(f),{image:a.photoUrl??void 0,icon:l.value?void 0:"pi pi-user",shape:"circle","aria-label":a.ariaLabel??a.$t("auth.login.userAvatar"),onError:e},null,8,["image","icon","aria-label"]))}}),z={class:"flex flex-col h-full"},w={class:"text-2xl font-bold mb-2"},R={key:0,class:"flex flex-col gap-2"},S={class:"flex flex-col gap-0.5"},L={class:"font-medium"},_={class:"text-muted"},$={class:"flex flex-col gap-0.5"},C={class:"font-medium"},E={class:"text-muted"},A={class:"flex flex-col gap-0.5"},X={class:"font-medium"},P={class:"text-muted flex items-center gap-1"},W={key:1,class:"flex flex-col gap-4"},U={class:"text-gray-600"},j=(0,n.pM)({__name:"UserPanel",setup(a){let t=(0,x.h)(),{loading:e,isLoggedIn:p,isEmailProvider:c,userDisplayName:d,userEmail:v,userPhotoUrl:g,providerName:f,providerIcon:h,handleSignOut:m,handleSignIn:b}=(0,x.af)();return(a,y)=>{let x=(0,n.gN)("tooltip");return(0,n.uX)(),(0,n.Wv)((0,r.R1)(u.A),{value:"User",class:"user-settings-container h-full"},{default:(0,n.k6)(()=>[(0,n.Lk)("div",z,[(0,n.Lk)("h2",w,(0,l.v_)(a.$t("userSettings.title")),1),(0,n.bF)((0,r.R1)(o.A),{class:"mb-3"}),(0,r.R1)(p)?((0,n.uX)(),(0,n.CE)("div",R,[(0,r.R1)(g)?((0,n.uX)(),(0,n.Wv)(k,{key:0,"photo-url":(0,r.R1)(g),shape:"circle",size:"large"},null,8,["photo-url"])):(0,n.Q3)("",!0),(0,n.Lk)("div",S,[(0,n.Lk)("h3",L,(0,l.v_)(a.$t("userSettings.name")),1),(0,n.Lk)("div",_,(0,l.v_)((0,r.R1)(d)||a.$t("userSettings.notSet")),1)]),(0,n.Lk)("div",$,[(0,n.Lk)("h3",C,(0,l.v_)(a.$t("userSettings.email")),1),(0,n.Lk)("span",E,(0,l.v_)((0,r.R1)(v)),1)]),(0,n.Lk)("div",A,[(0,n.Lk)("h3",X,(0,l.v_)(a.$t("userSettings.provider")),1),(0,n.Lk)("div",P,[(0,n.Lk)("i",{class:(0,l.C4)((0,r.R1)(h))},null,2),(0,n.eW)(" "+(0,l.v_)((0,r.R1)(f))+" ",1),(0,r.R1)(c)?(0,n.bo)(((0,n.uX)(),(0,n.Wv)((0,r.R1)(i.A),{key:0,icon:"pi pi-pen-to-square",severity:"secondary",text:"",onClick:y[0]||(y[0]=a=>(0,r.R1)(t).showUpdatePasswordDialog())},null,512)),[[x,{value:a.$t("userSettings.updatePassword"),showDelay:300}]]):(0,n.Q3)("",!0)])]),(0,r.R1)(e)?((0,n.uX)(),(0,n.Wv)((0,r.R1)(s.A),{key:1,class:"w-8 h-8 mt-4",style:{"--pc-spinner-color":"#000"}})):((0,n.uX)(),(0,n.Wv)((0,r.R1)(i.A),{key:2,class:"mt-4 w-32",severity:"secondary",label:a.$t("auth.signOut.signOut"),icon:"pi pi-sign-out",onClick:(0,r.R1)(m)},null,8,["label","onClick"]))])):((0,n.uX)(),(0,n.CE)("div",W,[(0,n.Lk)("p",U,(0,l.v_)(a.$t("auth.login.title")),1),(0,n.bF)((0,r.R1)(i.A),{class:"w-52",severity:"primary",loading:(0,r.R1)(e),label:a.$t("auth.login.signInOrSignUp"),icon:"pi pi-user",onClick:(0,r.R1)(b)},null,8,["loading","label","onClick"])]))])]),_:1})}}})}}]); 2 | //# sourceMappingURL=7379.113d6abf603a94eb.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/7486.6b355a41d3c1b2de.js: -------------------------------------------------------------------------------- 1 | (()=>{var e={92031:e=>{function r(e){return Promise.resolve().then(()=>{var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r})}r.keys=()=>[],r.resolve=r,r.id=92031,e.exports=r}},r={};function t(a){var s=r[a];if(void 0!==s)return s.exports;var E=r[a]={exports:{}},o=!0;try{e[a](E,E.exports,t),o=!1}finally{o&&delete r[a]}return E.exports}t.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),(()=>{"use strict";var e;let r,a="https://unpkg.com/@ffmpeg/core@0.12.9/dist/umd/ffmpeg-core.js";!function(e){e.LOAD="LOAD",e.EXEC="EXEC",e.FFPROBE="FFPROBE",e.WRITE_FILE="WRITE_FILE",e.READ_FILE="READ_FILE",e.DELETE_FILE="DELETE_FILE",e.RENAME="RENAME",e.CREATE_DIR="CREATE_DIR",e.LIST_DIR="LIST_DIR",e.DELETE_DIR="DELETE_DIR",e.ERROR="ERROR",e.DOWNLOAD="DOWNLOAD",e.PROGRESS="PROGRESS",e.LOG="LOG",e.MOUNT="MOUNT",e.UNMOUNT="UNMOUNT"}(e||(e={}));let s=Error("unknown message type"),E=Error("ffmpeg is not loaded, call `await ffmpeg.load()` first");Error("called FFmpeg.terminate()");let o=Error("failed to import ffmpeg-core.js"),l=async({coreURL:s,wasmURL:E,workerURL:l})=>{let i=!r;try{s||(s=a),importScripts(s)}catch{if(s&&s!==a||(s=a.replace("/umd/","/esm/")),self.createFFmpegCore=(await t(92031)(s)).default,!self.createFFmpegCore)throw o}let c=s,n=E||s.replace(/.js$/g,".wasm"),R=l||s.replace(/.js$/g,".worker.js");return(r=await self.createFFmpegCore({mainScriptUrlOrBlob:`${c}#${btoa(JSON.stringify({wasmURL:n,workerURL:R}))}`})).setLogger(r=>self.postMessage({type:e.LOG,data:r})),r.setProgress(r=>self.postMessage({type:e.PROGRESS,data:r})),i};self.onmessage=async({data:{id:t,type:a,data:o}})=>{let i,c=[];try{if(a!==e.LOAD&&!r)throw E;switch(a){case e.LOAD:i=await l(o);break;case e.EXEC:i=(({args:e,timeout:t=-1})=>{r.setTimeout(t),r.exec(...e);let a=r.ret;return r.reset(),a})(o);break;case e.FFPROBE:i=(({args:e,timeout:t=-1})=>{r.setTimeout(t),r.ffprobe(...e);let a=r.ret;return r.reset(),a})(o);break;case e.WRITE_FILE:i=(({path:e,data:t})=>(r.FS.writeFile(e,t),!0))(o);break;case e.READ_FILE:i=(({path:e,encoding:t})=>r.FS.readFile(e,{encoding:t}))(o);break;case e.DELETE_FILE:i=(({path:e})=>(r.FS.unlink(e),!0))(o);break;case e.RENAME:i=(({oldPath:e,newPath:t})=>(r.FS.rename(e,t),!0))(o);break;case e.CREATE_DIR:i=(({path:e})=>(r.FS.mkdir(e),!0))(o);break;case e.LIST_DIR:i=(({path:e})=>{let t=r.FS.readdir(e),a=[];for(let s of t){let t=r.FS.stat(`${e}/${s}`),E=r.FS.isDir(t.mode);a.push({name:s,isDir:E})}return a})(o);break;case e.DELETE_DIR:i=(({path:e})=>(r.FS.rmdir(e),!0))(o);break;case e.MOUNT:i=(({fsType:e,options:t,mountPoint:a})=>{let s=r.FS.filesystems[e];return!!s&&(r.FS.mount(s,t,a),!0)})(o);break;case e.UNMOUNT:i=(({mountPoint:e})=>(r.FS.unmount(e),!0))(o);break;default:throw s}}catch(r){self.postMessage({id:t,type:e.ERROR,data:r.toString()});return}i instanceof Uint8Array&&c.push(i.buffer),self.postMessage({id:t,type:a,data:i},c)}})(),_N_E={}})(); 2 | //# sourceMappingURL=7486.6b355a41d3c1b2de.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/7566.6de16f24c2ee0b5c.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7566],{97566:(e,a,n)=>{n.r(a),n.d(a,{default:()=>R});var o=n(38099),l=n(20523),t=n(87498),i=n(14804),d=n(96205),s=n(99285),r=n(49116),c=n(59645),m=n(55993),u=n(33339),y=n(8666),b=n(68643),g=n(21461),v=n(45028),f=n(70647);let p=[{combo:{ctrl:!0,key:"Enter"},commandId:"Comfy.QueuePrompt"},{combo:{ctrl:!0,shift:!0,key:"Enter"},commandId:"Comfy.QueuePromptFront"},{combo:{ctrl:!0,alt:!0,key:"Enter"},commandId:"Comfy.Interrupt"},{combo:{key:"r"},commandId:"Comfy.RefreshNodeDefinitions"},{combo:{key:"q"},commandId:"Workspace.ToggleSidebarTab.queue"},{combo:{key:"w"},commandId:"Workspace.ToggleSidebarTab.workflows"},{combo:{key:"n"},commandId:"Workspace.ToggleSidebarTab.node-library"},{combo:{key:"m"},commandId:"Workspace.ToggleSidebarTab.model-library"},{combo:{key:"s",ctrl:!0},commandId:"Comfy.SaveWorkflow"},{combo:{key:"o",ctrl:!0},commandId:"Comfy.OpenWorkflow"},{combo:{key:"g",ctrl:!0},commandId:"Comfy.Graph.GroupSelectedNodes"},{combo:{key:",",ctrl:!0},commandId:"Comfy.ShowSettingsDialog"},{combo:{key:"=",alt:!0},commandId:"Comfy.Canvas.ZoomIn",targetElementId:"graph-canvas"},{combo:{key:"+",alt:!0,shift:!0},commandId:"Comfy.Canvas.ZoomIn",targetElementId:"graph-canvas"},{combo:{key:"+",alt:!0},commandId:"Comfy.Canvas.ZoomIn",targetElementId:"graph-canvas"},{combo:{key:"-",alt:!0},commandId:"Comfy.Canvas.ZoomOut",targetElementId:"graph-canvas"},{combo:{key:"."},commandId:"Comfy.Canvas.FitView",targetElementId:"graph-canvas"},{combo:{key:"p"},commandId:"Comfy.Canvas.ToggleSelected.Pin",targetElementId:"graph-canvas"},{combo:{key:"c",alt:!0},commandId:"Comfy.Canvas.ToggleSelectedNodes.Collapse",targetElementId:"graph-canvas"},{combo:{key:"b",ctrl:!0},commandId:"Comfy.Canvas.ToggleSelectedNodes.Bypass",targetElementId:"graph-canvas"},{combo:{key:"m",ctrl:!0},commandId:"Comfy.Canvas.ToggleSelectedNodes.Mute",targetElementId:"graph-canvas"},{combo:{key:"`",ctrl:!0},commandId:"Workspace.ToggleBottomPanelTab.logs-terminal"},{combo:{key:"f"},commandId:"Workspace.ToggleFocusMode"},{combo:{key:"e",ctrl:!0,shift:!0},commandId:"Comfy.Graph.ConvertToSubgraph"},{combo:{key:"m",alt:!0},commandId:"Comfy.Canvas.ToggleMinimap"},{combo:{ctrl:!0,shift:!0,key:"k"},commandId:"Workspace.ToggleBottomPanel.Shortcuts"},{combo:{key:"Escape"},commandId:"Comfy.Graph.ExitSubgraph"}],k={key:0,class:"px-2"},C=(0,o.pM)({__name:"KeyComboDisplay",props:{keyCombo:{},isModified:{type:Boolean,default:!1}},setup(e){let a=(0,o.EW)(()=>e.keyCombo.getKeySequences());return(e,n)=>((0,o.uX)(),(0,o.CE)("span",null,[((0,o.uX)(!0),(0,o.CE)(o.FK,null,(0,o.pI)(a.value,(n,i)=>((0,o.uX)(),(0,o.CE)(o.FK,{key:i},[(0,o.bF)((0,l.R1)(b.A),{severity:e.isModified?"info":"secondary"},{default:(0,o.k6)(()=>[(0,o.eW)((0,t.v_)(n),1)]),_:2},1032,["severity"]),i{let e=(0,f.ag)(),a=(0,f.ah)(),n=(0,f.P)(),o=(0,f.Q)();return{keybindHandler:async function(n){let l=f.ai.fromEvent(n);if(l.isModifier)return;let t=n.composedPath()[0];if(l.isReservedByTextInput&&("TEXTAREA"===t.tagName||"INPUT"===t.tagName||"SPAN"===t.tagName&&t.classList.contains("property_value")))return;let i=e.getKeybinding(l);if(i&&"graph-canvas"!==i.targetElementId){if("Escape"===n.key&&!n.ctrlKey&&!n.altKey&&!n.metaKey&&o.dialogStack.length>0)return;n.preventDefault(),await a.execute(i.commandId);return}if(!n.ctrlKey&&!n.altKey&&!n.metaKey&&"Escape"===n.key){for(let e of document.querySelectorAll(".comfy-modal"))if("none"!==window.getComputedStyle(e).getPropertyValue("display")){e.style.display="none";break}for(let e of document.querySelectorAll("dialog"))e.close()}},registerCoreKeybindings:()=>{for(let a of p)e.addDefaultKeybinding(new f.aj(a))},registerUserKeybindings:function(){for(let a of n.get("Comfy.Keybinding.UnsetBindings"))e.unsetKeybinding(new f.aj(a));for(let a of n.get("Comfy.Keybinding.NewBindings"))e.addUserKeybinding(new f.aj(a))},persistUserKeybindings:async function(){await n.set("Comfy.Keybinding.NewBindings",Object.values(e.getUserKeybindings())),await n.set("Comfy.Keybinding.UnsetBindings",Object.values(e.getUserUnsetKeybindings()))}}})(),E=(0,f.ah)(),{t:R}=(0,v.s9)(),A=(0,o.EW)(()=>Object.values(E.commands).map(e=>({id:e.id,label:R(`commands.${(0,f.ak)(e.id)}.label`,e.label??""),keybinding:n.getKeybindingByCommandId(e.id),source:e.source}))),T=(0,l.KR)(null),_=(0,l.KR)(!1),S=(0,l.KR)(null),F=(0,l.KR)(null),x=(0,l.KR)(null),N=(0,o.EW)(()=>{var e,a;return!F.value||(null==(a=null==(e=F.value.keybinding)?void 0:e.combo)?void 0:a.equals(S.value))||!S.value?null:n.getKeybinding(S.value)});function W(e){F.value=e,S.value=e.keybinding?e.keybinding.combo:null,_.value=!0}async function U(e){e.keybinding&&(n.unsetKeybinding(e.keybinding),await k.persistUserKeybindings())}async function P(e){if(!e.shiftKey&&!e.altKey&&!e.ctrlKey&&!e.metaKey)switch(e.key){case"Escape":M();return;case"Enter":await $();return}S.value=f.ai.fromEvent(e)}function M(){_.value=!1,F.value=null,S.value=null}async function $(){F.value&&S.value&&n.updateKeybindingOnCommand(new f.aj({commandId:F.value.id,combo:S.value}))&&await k.persistUserKeybindings(),M()}async function B(e){n.resetKeybindingForCommand(e.id)?await k.persistUserKeybindings():console.warn(`No changes made when resetting keybinding for command: ${e.id}`)}(0,o.nT)(()=>{_.value&&setTimeout(()=>{var e,a;null==(a=null==(e=x.value)?void 0:e.$el)||a.focus()},300)});let X=(0,g.d)();async function O(){n.resetAllKeybindings(),await k.persistUserKeybindings(),X.add({severity:"info",summary:"Info",detail:"All keybindings reset",life:3e3})}return(e,d)=>{let g=(0,o.gN)("tooltip");return(0,o.uX)(),(0,o.Wv)(f.a7,{value:"Keybinding",class:"keybinding-panel"},{header:(0,o.k6)(()=>[(0,o.bF)(f.al,{modelValue:a.value.global.value,"onUpdate:modelValue":d[0]||(d[0]=e=>a.value.global.value=e),placeholder:e.$t("g.searchKeybindings")+"..."},null,8,["modelValue","placeholder"])]),default:(0,o.k6)(()=>{var v;return[(0,o.bF)((0,l.R1)(c.A),{selection:T.value,"onUpdate:selection":d[1]||(d[1]=e=>T.value=e),value:A.value,"global-filter-fields":["id","label"],filters:a.value,"selection-mode":"single","striped-rows":"",pt:{header:"px-0"},onRowDblclick:d[2]||(d[2]=e=>W(e.data))},{default:(0,o.k6)(()=>[(0,o.bF)((0,l.R1)(r.A),{field:"actions",header:""},{body:(0,o.k6)(e=>[(0,o.Lk)("div",h,[(0,o.bF)((0,l.R1)(s.A),{icon:"pi pi-pencil",class:"p-button-text",onClick:a=>W(e.data)},null,8,["onClick"]),(0,o.bF)((0,l.R1)(s.A),{icon:"pi pi-replay",class:"p-button-text p-button-warn",disabled:!(0,l.R1)(n).isCommandKeybindingModified(e.data.id),onClick:a=>B(e.data)},null,8,["disabled","onClick"]),(0,o.bF)((0,l.R1)(s.A),{icon:"pi pi-trash",class:"p-button-text p-button-danger",disabled:!e.data.keybinding,onClick:a=>U(e.data)},null,8,["disabled","onClick"])])]),_:1}),(0,o.bF)((0,l.R1)(r.A),{field:"id",header:e.$t("g.command"),sortable:"",class:"max-w-64 2xl:max-w-full"},{body:(0,o.k6)(e=>[(0,o.Lk)("div",{class:"overflow-hidden text-ellipsis whitespace-nowrap",title:e.data.id},(0,t.v_)(e.data.label),9,I)]),_:1},8,["header"]),(0,o.bF)((0,l.R1)(r.A),{field:"keybinding",header:e.$t("g.keybinding")},{body:(0,o.k6)(e=>[e.data.keybinding?((0,o.uX)(),(0,o.Wv)(C,{key:0,"key-combo":e.data.keybinding.combo,"is-modified":(0,l.R1)(n).isCommandKeybindingModified(e.data.id)},null,8,["key-combo","is-modified"])):((0,o.uX)(),(0,o.CE)("span",K,"-"))]),_:1},8,["header"]),(0,o.bF)((0,l.R1)(r.A),{field:"source",header:e.$t("g.source")},{body:(0,o.k6)(e=>[(0,o.Lk)("span",w,(0,t.v_)(e.data.source||"-"),1)]),_:1},8,["header"])]),_:1},8,["selection","value","filters"]),(0,o.bF)((0,l.R1)(m.A),{visible:_.value,"onUpdate:visible":d[3]||(d[3]=e=>_.value=e),class:"min-w-96",modal:"",header:null==(v=F.value)?void 0:v.label,onHide:M},{footer:(0,o.k6)(()=>[(0,o.bF)((0,l.R1)(s.A),{label:N.value?"Overwrite":"Save",icon:N.value?"pi pi-pencil":"pi pi-check",severity:N.value?"warn":void 0,autofocus:"",onClick:$},null,8,["label","icon","severity"])]),default:(0,o.k6)(()=>{var a;return[(0,o.Lk)("div",null,[(0,o.bF)((0,l.R1)(u.A),{ref_key:"keybindingInput",ref:x,class:"mb-2 text-center","model-value":(null==(a=S.value)?void 0:a.toString())??"",placeholder:"Press keys for new binding",autocomplete:"off",fluid:"",onKeydown:(0,i.D$)(P,["stop","prevent"])},null,8,["model-value"]),N.value?((0,o.uX)(),(0,o.Wv)((0,l.R1)(y.A),{key:0,severity:"warn"},{default:(0,o.k6)(()=>[(0,o.eW)((0,t.v_)(e.$t("g.keybindingAlreadyExists"))+" ",1),(0,o.bF)((0,l.R1)(b.A),{severity:"secondary",value:N.value.commandId},null,8,["value"])]),_:1})):(0,o.Q3)("",!0)])]}),_:1},8,["visible","header"]),(0,o.bo)((0,o.bF)((0,l.R1)(s.A),{class:"mt-4",label:e.$t("g.resetAll"),icon:"pi pi-replay",severity:"danger",fluid:"",text:"",onClick:O},null,8,["label"]),[[g,e.$t("g.resetAllKeybindingsTooltip")]])]}),_:1})}}}),R=(0,f._)(E,[["__scopeId","data-v-ac8bbe49"]])}}]); 2 | //# sourceMappingURL=7566.6de16f24c2ee0b5c.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/7761.93de84a1aee3663c.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7761],{87761:e=>{function r(e){return Promise.resolve().then(()=>{var r=Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r})}r.keys=()=>[],r.resolve=r,r.id=87761,e.exports=r}}]); 2 | //# sourceMappingURL=7761.93de84a1aee3663c.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/7761.93de84a1aee3663c.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/7761.93de84a1aee3663c.js","mappings":"0EAAA,cAGA,mCACA,yCAEA,OADA,0BACA,CACA,CAAE,CACF,CACA,cACA,YACA,WACA","sources":["webpack://_N_E/../../node_modules/.bun/@comfyorg+comfyui-frontend@.+comfyorg-comfyui-frontend-1.26.2.tgz+e5b32ef95522b1e7/node_modules/@comfyorg/comfyui-frontend/lib/ lazy strict namespace object"],"sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 87761;\nmodule.exports = webpackEmptyAsyncContext;"],"names":[],"sourceRoot":"","ignoreList":[0]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/8084.1c7f47028b274a0a.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8084],{15703:(t,r,e)=>{e.r(r),e.d(r,{default:()=>h});var o=e(38099),n=e(20523);let s={width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg"},h=(0,n.IG)({name:"comfy-workflow",render:function(t,r){return(0,o.uX)(),(0,o.CE)("svg",s,r[0]||(r[0]=[(0,o.Fv)('',5)]))}})}}]); 2 | //# sourceMappingURL=8084.1c7f47028b274a0a.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/8084.1c7f47028b274a0a.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/8084.1c7f47028b274a0a.js","mappings":"qJACA,OACA,WACA,YACA,oBACA,YACA,kCACA,EAMA,EAAiB,QAAO,EAAG,6BAL3B,cACA,MAAS,QAAS,GAAI,QAAkB,sBACpC,QAAiB,mzBACrB,EACA,CAC2B,CAAgC","sources":["webpack://_N_E/../../node_modules/.bun/@comfyorg+comfyui-frontend@.+comfyorg-comfyui-frontend-1.26.2.tgz+e5b32ef95522b1e7/node_modules/@comfyorg/comfyui-frontend/lib/workflow-Dpy7_BNA.js"],"sourcesContent":["import { markRaw, openBlock, createElementBlock, createStaticVNode } from \"vue\";\nconst _hoisted_1 = {\n width: \"16\",\n height: \"16\",\n viewBox: \"0 0 16 16\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\"\n};\nfunction render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"svg\", _hoisted_1, _cache[0] || (_cache[0] = [\n createStaticVNode('', 5)\n ]));\n}\nconst workflow = markRaw({ name: \"comfy-workflow\", render });\nexport {\n workflow as default\n};\n//# sourceMappingURL=workflow-Dpy7_BNA.js.map\n"],"names":[],"sourceRoot":"","ignoreList":[0]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/8340eb7d-36e917f4d2acf872.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3340],{42444:(c,a,t)=>{t.d(a,{O4U:()=>r,hL4:()=>e});var h=t(21306);function r(c){return(0,h.k5)({tag:"svg",attr:{viewBox:"0 0 640 512"},child:[{tag:"path",attr:{d:"M524.531,69.836a1.5,1.5,0,0,0-.764-.7A485.065,485.065,0,0,0,404.081,32.03a1.816,1.816,0,0,0-1.923.91,337.461,337.461,0,0,0-14.9,30.6,447.848,447.848,0,0,0-134.426,0,309.541,309.541,0,0,0-15.135-30.6,1.89,1.89,0,0,0-1.924-.91A483.689,483.689,0,0,0,116.085,69.137a1.712,1.712,0,0,0-.788.676C39.068,183.651,18.186,294.69,28.43,404.354a2.016,2.016,0,0,0,.765,1.375A487.666,487.666,0,0,0,176.02,479.918a1.9,1.9,0,0,0,2.063-.676A348.2,348.2,0,0,0,208.12,430.4a1.86,1.86,0,0,0-1.019-2.588,321.173,321.173,0,0,1-45.868-21.853,1.885,1.885,0,0,1-.185-3.126c3.082-2.309,6.166-4.711,9.109-7.137a1.819,1.819,0,0,1,1.9-.256c96.229,43.917,200.41,43.917,295.5,0a1.812,1.812,0,0,1,1.924.233c2.944,2.426,6.027,4.851,9.132,7.16a1.884,1.884,0,0,1-.162,3.126,301.407,301.407,0,0,1-45.89,21.83,1.875,1.875,0,0,0-1,2.611,391.055,391.055,0,0,0,30.014,48.815,1.864,1.864,0,0,0,2.063.7A486.048,486.048,0,0,0,610.7,405.729a1.882,1.882,0,0,0,.765-1.352C623.729,277.594,590.933,167.465,524.531,69.836ZM222.491,337.58c-28.972,0-52.844-26.587-52.844-59.239S193.056,219.1,222.491,219.1c29.665,0,53.306,26.82,52.843,59.239C275.334,310.993,251.924,337.58,222.491,337.58Zm195.38,0c-28.971,0-52.843-26.587-52.843-59.239S388.437,219.1,417.871,219.1c29.667,0,53.307,26.82,52.844,59.239C470.715,310.993,447.538,337.58,417.871,337.58Z"},child:[]}]})(c)}function e(c){return(0,h.k5)({tag:"svg",attr:{viewBox:"0 0 496 512"},child:[{tag:"path",attr:{d:"M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3.3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5.3-6.2 2.3zm44.2-1.7c-2.9.7-4.9 2.6-4.6 4.9.3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3.7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3.3 2.9 2.3 3.9 1.6 1 3.6.7 4.3-.7.7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3.7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3.7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"},child:[]}]})(c)}}}]); 2 | //# sourceMappingURL=8340eb7d-36e917f4d2acf872.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/9921.c3c3269cc8fe628f.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9921],{19921:(e,t,a)=>{a.r(t),a.d(t,{default:()=>B});var l=a(20523),i=a(38099),s=a(87498),r=a(99285),n=a(49116),o=a(59645),d=a(44089),u=a(3632),c=a(95493),v=a(45028),p=a(70647),f=a(54688),m=a(8666),g=a(60882),_=(e=>(e.CREDIT_ADDED="credit_added",e.ACCOUNT_CREATED="account_created",e.API_USAGE_STARTED="api_usage_started",e.API_USAGE_COMPLETED="api_usage_completed",e))(_||{});let y=p.a8.create({baseURL:p.a9,headers:{"Content-Type":"application/json"}}),h={key:0,class:"flex items-center justify-center p-8"},b={key:1,class:"p-4"},k={class:"event-details"},A={key:0,class:"text-green-500 font-semibold"},R={key:1},x={key:2,class:"flex flex-col gap-1"},E={class:"font-semibold"},C={class:"text-sm text-gray-400"},w=(0,i.pM)({__name:"UsageLogsTable",setup(e,{expose:t}){let a=(0,l.KR)([]),d=(0,l.KR)(!0),u=(0,l.KR)(null),c=(()=>{let e=(0,l.KR)(!1),t=(0,l.KR)(null),{d:a}=(0,v.s9)(),i=async(a,l)=>{let{errorContext:i,routeSpecificErrors:s}=l;e.value=!0,t.value=null;try{return(await a()).data}catch(e){return((e,a,l)=>{var i,s,r;let n;if(!(0,p.ab)(e)){if(p.a8.isAxiosError(e)){let t=null==(i=e.response)?void 0:i.status;n=t&&(null==l?void 0:l[t])?l[t]:(null==(r=null==(s=e.response)?void 0:s.data)?void 0:r.message)??`${a} failed with status ${t}`}else n=`${a} failed: ${e instanceof Error?e.message:String(e)}`;t.value=n}})(e,i,s),null}finally{e.value=!1}};function s(e){return e.split("_").map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" ")}function r(e){return"number"==typeof e?e.toLocaleString():"string"==typeof e&&e.match(/^\d{4}-\d{2}-\d{2}/)?new Date(e).toLocaleString():e}async function n({page:e=1,limit:a=10}={}){let l=await (0,p.aa)().getAuthHeader();return l?i(()=>y.get("/customers/events",{params:{page:e,limit:a},headers:l}),{errorContext:"Fetching customer events",routeSpecificErrors:{400:"Invalid input, object invalid",404:"Not found"}}):(t.value="Authentication header is missing",null)}return{isLoading:e,error:t,getMyEvents:n,formatEventType:function(e){switch(e){case"credit_added":return"Credits Added";case"account_created":return"Account Created";case"api_usage_completed":return"API Usage";default:return e}},getEventSeverity:function(e){switch(e){case"credit_added":return"success";case"account_created":default:return"info";case"api_usage_completed":return"warning"}},formatAmount:function(e){return e?(e/100).toFixed(2):"0.00"},hasAdditionalInfo:function(e){let{amount:t,api_name:a,model:l,...i}=e.params||{};return Object.keys(i).length>0},formatDate:function(e){return a(new Date(e),{month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"})},formatJsonKey:s,formatJsonValue:r,getTooltipContent:function(e){let{...t}=e.params||{};return Object.entries(t).map(([e,t])=>{let a=s(e),l=r(t);return`${a}: ${l}`}).join("
")}}})(),w=(0,l.KR)({page:1,limit:7,total:0,totalPages:0}),$=(0,i.EW)(()=>(w.value.page-1)*w.value.limit),L=(0,i.EW)(()=>{let e=new Map;return a.value.forEach(t=>{c.hasAdditionalInfo(t)&&t.event_id&&e.set(t.event_id,c.getTooltipContent(t))}),e}),T=async()=>{d.value=!0,u.value=null;try{let e=await c.getMyEvents({page:w.value.page,limit:w.value.limit});e?(e.events&&(a.value=e.events),e.page&&(w.value.page=e.page),e.limit&&(w.value.limit=e.limit),e.total&&(w.value.total=e.total),e.totalPages&&(w.value.totalPages=e.totalPages)):u.value=c.error.value||"Failed to load events"}catch(e){u.value=e instanceof Error?e.message:"Unknown error",console.error("Error loading events:",e)}finally{d.value=!1}},F=e=>{w.value.page=e.page+1,T().catch(e=>{console.error("Error loading events:",e)})};return t({refresh:async()=>{w.value.page=1,await T()}}),(e,t)=>{let v=(0,i.gN)("tooltip");return(0,i.uX)(),(0,i.CE)("div",null,[d.value?((0,i.uX)(),(0,i.CE)("div",h,[(0,i.bF)((0,l.R1)(g.A))])):u.value?((0,i.uX)(),(0,i.CE)("div",b,[(0,i.bF)((0,l.R1)(m.A),{severity:"error",closable:!1},{default:(0,i.k6)(()=>[(0,i.eW)((0,s.v_)(u.value),1)]),_:1})])):((0,i.uX)(),(0,i.Wv)((0,l.R1)(o.A),{key:2,value:a.value,paginator:!0,rows:w.value.limit,"total-records":w.value.total,first:$.value,lazy:!0,class:"p-datatable-sm custom-datatable",onPage:F},{default:(0,i.k6)(()=>[(0,i.bF)((0,l.R1)(n.A),{field:"event_type",header:e.$t("credits.eventType")},{body:(0,i.k6)(({data:e})=>[(0,i.bF)((0,l.R1)(f.A),{value:(0,l.R1)(c).formatEventType(e.event_type),severity:(0,l.R1)(c).getEventSeverity(e.event_type)},null,8,["value","severity"])]),_:1},8,["header"]),(0,i.bF)((0,l.R1)(n.A),{field:"details",header:e.$t("credits.details")},{body:(0,i.k6)(({data:t})=>{var a,r,n;return[(0,i.Lk)("div",k,[t.event_type===(0,l.R1)(_).CREDIT_ADDED?((0,i.uX)(),(0,i.CE)("div",A,(0,s.v_)(e.$t("credits.added"))+" $"+(0,s.v_)((0,l.R1)(c).formatAmount(null==(a=t.params)?void 0:a.amount)),1)):t.event_type===(0,l.R1)(_).ACCOUNT_CREATED?((0,i.uX)(),(0,i.CE)("div",R,(0,s.v_)(e.$t("credits.accountInitialized")),1)):t.event_type===(0,l.R1)(_).API_USAGE_COMPLETED?((0,i.uX)(),(0,i.CE)("div",x,[(0,i.Lk)("div",E,(0,s.v_)((null==(r=t.params)?void 0:r.api_name)||"API"),1),(0,i.Lk)("div",C,(0,s.v_)(e.$t("credits.model"))+": "+(0,s.v_)((null==(n=t.params)?void 0:n.model)||"-"),1)])):(0,i.Q3)("",!0)])]}),_:1},8,["header"]),(0,i.bF)((0,l.R1)(n.A),{field:"createdAt",header:e.$t("credits.time")},{body:(0,i.k6)(({data:e})=>[(0,i.eW)((0,s.v_)((0,l.R1)(c).formatDate(e.createdAt)),1)]),_:1},8,["header"]),(0,i.bF)((0,l.R1)(n.A),{field:"params",header:e.$t("credits.additionalInfo")},{body:(0,i.k6)(({data:e})=>[(0,l.R1)(c).hasAdditionalInfo(e)?(0,i.bo)(((0,i.uX)(),(0,i.Wv)((0,l.R1)(r.A),{key:0,icon:"pi pi-info-circle",class:"p-button-text p-button-sm"},null,512)),[[v,{escape:!1,value:L.value.get(e.event_id)||"",pt:{text:{style:{width:"max-content !important"}}}},void 0,{top:!0}]]):(0,i.Q3)("",!0)]),_:1},8,["header"])]),_:1},8,["value","rows","total-records","first"]))])}}}),$={class:"flex flex-col h-full"},L={class:"text-2xl font-bold mb-2"},T={class:"flex flex-col gap-2"},F={class:"text-sm font-medium text-muted"},D={class:"flex justify-between items-center"},S={class:"flex flex-row items-center"},P={key:1,class:"text-xs text-muted"},U={class:"flex justify-between items-center"},I={key:0,class:"flex-grow"},W={class:"text-sm font-medium"},X={class:"text-xs text-muted"},j={class:"flex flex-row gap-2"},B=(0,i.pM)({__name:"CreditsPanel",setup(e){let{t}=(0,v.s9)(),a=(0,p.h)(),f=(0,p.aa)(),m=(0,p.ac)(),g=(0,i.EW)(()=>f.loading),_=(0,i.EW)(()=>f.isFetchingBalance),y=(0,l.KR)(null),h=(0,i.EW)(()=>f.lastBalanceUpdateTime?f.lastBalanceUpdateTime.toLocaleString():"");(0,i.wB)(()=>f.lastBalanceUpdateTime,(e,t)=>{e&&e!==t&&y.value&&y.value.refresh()});let b=()=>{a.showTopUpCreditsDialog()},k=async()=>{await m.accessBillingPortal()},A=()=>{a.showIssueReportDialog({title:t("issueReport.contactSupportTitle"),subtitle:t("issueReport.contactSupportDescription"),panelProps:{errorType:"BillingSupport",defaultFields:["Workflow","Logs","SystemStats","Settings"]}})},R=()=>{window.open("https://docs.comfy.org/tutorials/api-nodes/faq","_blank")},x=(0,l.KR)([]);return(e,t)=>((0,i.uX)(),(0,i.Wv)((0,l.R1)(c.A),{value:"Credits",class:"credits-container h-full"},{default:(0,i.k6)(()=>[(0,i.Lk)("div",$,[(0,i.Lk)("h2",L,(0,s.v_)(e.$t("credits.credits")),1),(0,i.bF)((0,l.R1)(d.A)),(0,i.Lk)("div",T,[(0,i.Lk)("h3",F,(0,s.v_)(e.$t("credits.yourCreditBalance")),1),(0,i.Lk)("div",D,[(0,i.bF)(p.ad,{"text-class":"text-3xl font-bold"}),g.value?((0,i.uX)(),(0,i.Wv)((0,l.R1)(u.A),{key:0,width:"2rem",height:"2rem"})):((0,i.uX)(),(0,i.Wv)((0,l.R1)(r.A),{key:1,label:e.$t("credits.purchaseCredits"),loading:g.value,onClick:b},null,8,["label","loading"]))]),(0,i.Lk)("div",S,[_.value?((0,i.uX)(),(0,i.Wv)((0,l.R1)(u.A),{key:0,width:"12rem",height:"1rem",class:"text-xs"})):h.value?((0,i.uX)(),(0,i.CE)("div",P,(0,s.v_)(e.$t("credits.lastUpdated"))+": "+(0,s.v_)(h.value),1)):(0,i.Q3)("",!0),(0,i.bF)((0,l.R1)(r.A),{icon:"pi pi-refresh",text:"",size:"small",severity:"secondary",onClick:t[0]||(t[0]=()=>(0,l.R1)(m).fetchBalance())})])]),(0,i.Lk)("div",U,[(0,i.Lk)("h3",null,(0,s.v_)(e.$t("credits.activity")),1),(0,i.bF)((0,l.R1)(r.A),{label:e.$t("credits.invoiceHistory"),text:"",severity:"secondary",icon:"pi pi-arrow-up-right",loading:g.value,onClick:k},null,8,["label","loading"])]),x.value.length>0?((0,i.uX)(),(0,i.CE)("div",I,[(0,i.bF)((0,l.R1)(o.A),{value:x.value,"show-headers":!1},{default:(0,i.k6)(()=>[(0,i.bF)((0,l.R1)(n.A),{field:"title",header:e.$t("g.name")},{body:(0,i.k6)(({data:e})=>[(0,i.Lk)("div",W,(0,s.v_)(e.title),1),(0,i.Lk)("div",X,(0,s.v_)(e.timestamp),1)]),_:1},8,["header"]),(0,i.bF)((0,l.R1)(n.A),{field:"amount",header:e.$t("g.amount")},{body:(0,i.k6)(({data:e})=>[(0,i.Lk)("div",{class:(0,s.C4)(["text-base font-medium text-center",e.isPositive?"text-sky-500":"text-red-400"])},(0,s.v_)(e.isPositive?"+":"-")+"$"+(0,s.v_)((0,l.R1)(p.ae)(e.amount,"usd")),3)]),_:1},8,["header"])]),_:1},8,["value"])])):(0,i.Q3)("",!0),(0,i.bF)((0,l.R1)(d.A)),(0,i.bF)(w,{ref_key:"usageLogsTableRef",ref:y},null,512),(0,i.Lk)("div",j,[(0,i.bF)((0,l.R1)(r.A),{label:e.$t("credits.faqs"),text:"",severity:"secondary",icon:"pi pi-question-circle",onClick:R},null,8,["label"]),(0,i.bF)((0,l.R1)(r.A),{label:e.$t("credits.messageSupport"),text:"",severity:"secondary",icon:"pi pi-comments",onClick:A},null,8,["label"])])])]),_:1}))}})}}]); 2 | //# sourceMappingURL=9921.c3c3269cc8fe628f.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/_not-found/page-f62e1bca9c3beeed.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9492],{27400:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"styles",{enumerable:!0,get:function(){return l}});let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{display:"inline-block"},h1:{display:"inline-block",margin:"0 20px 0 0",padding:"0 23px 0 0",fontSize:24,fontWeight:500,verticalAlign:"top",lineHeight:"49px"},h2:{fontSize:14,fontWeight:400,lineHeight:"49px",margin:0}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},30681:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let r=l(96670),n=l(66025),o=function(){return(0,r.jsx)("html",{children:(0,r.jsx)("body",{children:(0,r.jsx)(n.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})})})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},51607:(e,t,l)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_not-found/page",function(){return l(30681)}])},66025:(e,t,l)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessErrorFallback",{enumerable:!0,get:function(){return o}});let r=l(96670),n=l(27400);function o(e){let{status:t,message:l}=e;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("title",{children:t+": "+l}),(0,r.jsx)("div",{style:n.styles.error,children:(0,r.jsxs)("div",{children:[(0,r.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}),(0,r.jsx)("h1",{className:"next-error-h1",style:n.styles.h1,children:t}),(0,r.jsx)("div",{style:n.styles.desc,children:(0,r.jsx)("h2",{style:n.styles.h2,children:l})})]})})]})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)}},e=>{e.O(0,[4667,1850,7358],()=>e(e.s=51607)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-f62e1bca9c3beeed.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/_not-found/page-f62e1bca9c3beeed.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/app/_not-found/page-f62e1bca9c3beeed.js","mappings":"6KAAaA,qCAAAA,KAAN,IAAMA,EAA8C,CACzDC,MAAO,CAELC,WACE,8FACFC,OAAQ,QACRC,UAAW,SACXC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,eAAgB,QAClB,EAEAC,KAAM,CACJJ,QAAS,cACX,EAEAK,GAAI,CACFL,QAAS,eACTM,OAAQ,aACRC,QAAS,aACTC,SAAU,GACVC,WAAY,IACZC,cAAe,MACfC,WAAY,MACd,EAEAC,GAAI,CACFJ,SAAU,GACVC,WAAY,IACZE,WAAY,OACZL,OAAQ,CACV,CACF,0UClBA,6DAfwC,OAexC,EAbA,SAASO,EACP,MACE,UAACC,OAAAA,UACC,UAACC,OAAAA,UACC,UAACC,EAAAA,uBAAuB,EACtBC,OAAQ,IACRC,QAAS,qCAKnB,0OCZA,4CACA,mBACA,WACA,OAAe,EAAQ,KAA2H,CAClJ,EACA,SAFsB,0HCFNF,qCAAAA,wBAFO,OAEhB,SAASA,EAAwB,CAMvC,EANuC,WACtCC,CAAM,SACNC,CAAO,CAIR,CANuC,EAOtC,MACE,iCAEE,UAACC,QAAAA,UAAUF,EAAO,KAAIC,IAEtB,UAACE,MAAAA,CAAIC,MAAO1B,EAAAA,MAAM,CAACC,KAAK,UACtB,WAACwB,MAAAA,WACC,UAACC,QAAAA,CACCC,wBAAyB,CAcvBC,OAAS,+NACX,IAEF,UAAClB,KAAAA,CAAGmB,UAAU,gBAAgBH,MAAO1B,EAAAA,MAAM,CAACU,EAAE,UAC3CY,IAEH,UAACG,MAAAA,CAAIC,MAAO1B,EAAAA,MAAM,CAACS,IAAI,UACrB,UAACQ,KAAAA,CAAGS,MAAO1B,EAAAA,MAAM,CAACiB,EAAE,UAAGM,aAMnC","sources":["webpack://_N_E/../../../src/client/components/styles/access-error-styles.ts","webpack://_N_E/../../../src/client/components/builtin/global-not-found.tsx","webpack://_N_E/?3809","webpack://_N_E/../../../src/client/components/http-access-fallback/error-fallback.tsx"],"sourcesContent":["export const styles: Record = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily:\n 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n },\n\n desc: {\n display: 'inline-block',\n },\n\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n padding: '0 23px 0 0',\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n lineHeight: '49px',\n },\n\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '49px',\n margin: 0,\n },\n}\n","import { HTTPAccessErrorFallback } from '../http-access-fallback/error-fallback'\n\nfunction GlobalNotFound() {\n return (\n \n \n \n \n \n )\n}\n\nexport default GlobalNotFound\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_not-found/page\",\n function () {\n return require(\"../../node_modules/.bun/next@15.5.2+6dbf9a050bc9aadb/node_modules/next/dist/client/components/builtin/global-not-found.js\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_not-found/page\"])\n });\n }\n ","import { styles } from '../styles/access-error-styles'\n\nexport function HTTPAccessErrorFallback({\n status,\n message,\n}: {\n status: number\n message: string\n}) {\n return (\n <>\n {/* */}\n {`${status}: ${message}`}\n {/* */}\n

\n
\n \n

\n {status}\n

\n
\n

{message}

\n
\n
\n
\n \n )\n}\n"],"names":["styles","error","fontFamily","height","textAlign","display","flexDirection","alignItems","justifyContent","desc","h1","margin","padding","fontSize","fontWeight","verticalAlign","lineHeight","h2","GlobalNotFound","html","body","HTTPAccessErrorFallback","status","message","title","div","style","dangerouslySetInnerHTML","__html","className"],"sourceRoot":"","ignoreList":[]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/animation/page-9e9aace51883e9b5.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2995],{2290:(e,t,r)=>{"use strict";r.d(t,{$:()=>d});var n=r(96670),i=r(27150),a=r(10182),s=r(34818),o=r(66913);let l=(0,s.F)("inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-foreground text-background shadow-sm hover:bg-foreground/90",primary:"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90","primary-gradient":"bg-gradient-to-r from-cyan-400 to-blue-500 text-white hover:opacity-85 transition-opacity",destructive:"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",outline:"border border-input bg-background shadow-xs hover:opacity-75 transition-opacity hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-foreground/15 border border-input",text:"bg-transparent p-0 rounded-none opacity-100 hover:opacity-50 transition-opacity",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-sm px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-7 w-7"}},defaultVariants:{variant:"default",size:"default"}}),d=i.forwardRef((e,t)=>{let{className:r,variant:i,size:s,asChild:d=!1,...u}=e,c=d?a.DX:"button";return(0,n.jsx)(c,{className:(0,o.cn)(l({variant:i,size:s,className:r})),ref:t,...u})});d.displayName="Button"},8412:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(40970).A)("ArrowLeft",[["path",{d:"m12 19-7-7 7-7",key:"1l729n"}],["path",{d:"M19 12H5",key:"x3x0zl"}]])},34818:(e,t,r)=>{"use strict";r.d(t,{F:()=>s});var n=r(87120);let i=e=>"boolean"==typeof e?`${e}`:0===e?"0":e,a=n.$,s=(e,t)=>r=>{var n;if((null==t?void 0:t.variants)==null)return a(e,null==r?void 0:r.class,null==r?void 0:r.className);let{variants:s,defaultVariants:o}=t,l=Object.keys(s).map(e=>{let t=null==r?void 0:r[e],n=null==o?void 0:o[e];if(null===t)return null;let a=i(t)||i(n);return s[e][a]}),d=r&&Object.entries(r).reduce((e,t)=>{let[r,n]=t;return void 0===n||(e[r]=n),e},{});return a(e,l,null==t||null==(n=t.compoundVariants)?void 0:n.reduce((e,t)=>{let{class:r,className:n,...i}=t;return Object.entries(i).every(e=>{let[t,r]=e;return Array.isArray(r)?r.includes({...o,...d}[t]):({...o,...d})[t]===r})?[...e,r,n]:e},[]),null==r?void 0:r.class,null==r?void 0:r.className)}},40970:(e,t,r)=>{"use strict";r.d(t,{A:()=>o});var n=r(27150);let i=function(){for(var e=arguments.length,t=Array(e),r=0;r!!e&&""!==e.trim()&&r.indexOf(e)===t).join(" ").trim()};var a={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};let s=(0,n.forwardRef)((e,t)=>{let{color:r="currentColor",size:s=24,strokeWidth:o=2,absoluteStrokeWidth:l,className:d="",children:u,iconNode:c,...p}=e;return(0,n.createElement)("svg",{ref:t,...a,width:s,height:s,stroke:r,strokeWidth:l?24*Number(o)/Number(s):o,className:i("lucide",d),...p},[...c.map(e=>{let[t,r]=e;return(0,n.createElement)(t,r)}),...Array.isArray(u)?u:[u]])}),o=(e,t)=>{let r=(0,n.forwardRef)((r,a)=>{let{className:o,...l}=r;return(0,n.createElement)(s,{ref:a,iconNode:t,className:i("lucide-".concat(e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()),o),...l})});return r.displayName="".concat(e),r}},45197:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(40970).A)("Search",[["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}],["path",{d:"m21 21-4.3-4.3",key:"1qie3q"}]])},53854:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(40970).A)("Eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]])},56216:(e,t,r)=>{Promise.resolve().then(r.bind(r,84354))},66913:(e,t,r)=>{"use strict";r.d(t,{C7:()=>c,Fe:()=>l,Zv:()=>s,bT:()=>p,cn:()=>a,lg:()=>u,lk:()=>o,mr:()=>d});var n=r(87120),i=r(4533);function a(){for(var e=arguments.length,t=Array(e),r=0;re.toString(16).padStart(2,"0"));return t.slice(0,4).join("")+"-"+t.slice(4,6).join("")+"-"+t.slice(6,8).join("")+"-"+t.slice(8,10).join("")+"-"+t.slice(10,16).join("")}function l(e){return!!e&&(e instanceof Element||e instanceof HTMLElement)}function d(e){return!!e.isContentEditable||("INPUT"===e.tagName||"TEXTAREA"===e.tagName)&&!e.disabled}function u(){return/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)}function c(){return u()?"⌘":"Ctrl"}function p(){return u()?"⌥":"Alt"}},73621:(e,t,r)=>{"use strict";r.d(t,{W:()=>u});var n=r(96670),i=r(2290),a=r(83186),s=r(8412),o=r(45197),l=r(15077),d=r(27150);function u(e){let{isExpanded:t,setIsExpanded:r,placeholder:u="Search anything",value:c,onChange:p}=e,[f,m]=(0,d.useState)(null),[v,h]=(0,d.useState)(-60),g={duration:.35,ease:[.25,.1,.25,1]};return(0,d.useEffect)(()=>{f&&h(-f.getBoundingClientRect().left-48)},[f]),(0,n.jsxs)("div",{ref:m,className:"relative w-full",children:[(0,n.jsx)(l.P.div,{className:"absolute left-0 top-1/2 -translate-y-1/2 cursor-pointer hover:opacity-75 transition-opacity z-10",initial:{x:t?0:v,opacity:t?1:.5},animate:{x:t?0:v,opacity:t?1:.5},transition:g,onClick:()=>r(!t),children:(0,n.jsx)(i.$,{variant:"outline",className:"!size-9 rounded-full bg-panel-accent",children:(0,n.jsx)(s.A,{})})}),(0,n.jsx)("div",{className:"relative flex-1",style:{marginLeft:"0px",paddingLeft:"0px"},children:(0,n.jsxs)(l.P.div,{className:"relative",initial:{marginLeft:50*!!t},animate:{marginLeft:50*!!t},transition:g,children:[(0,n.jsx)(o.A,{className:"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,n.jsx)(a.p,{placeholder:u,className:"pl-9 bg-panel-accent w-full",value:c,onChange:e=>null==p?void 0:p(e.target.value)})]})})]})}},76138:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(40970).A)("EyeOff",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]])},83186:(e,t,r)=>{"use strict";r.d(t,{p:()=>u});var n=r(96670),i=r(98503),a=r(53854),s=r(76138),o=r(66913),l=r(2290),d=r(27150);let u=(0,d.forwardRef)((e,t)=>{let{className:r,type:u,containerClassName:c,showPassword:p,onShowPasswordChange:f,showClearIcon:m,onClear:v,value:h,onFocus:g,onBlur:x,...y}=e,[b,w]=(0,d.useState)(!1),N="password"===u,j=N&&f,k=m&&v&&h&&String(h).length>0&&b,A=N&&p?"text":u,E=j||k,C=Number(j)+Number(k);return(0,n.jsxs)("div",{className:(0,o.cn)(E?"relative w-full":"",c),children:[(0,n.jsx)("input",{type:A,className:(0,o.cn)("file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-accent/50 px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[2px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",2===C?"pr-20":1===C?"pr-10":"",r),ref:t,value:h,onFocus:e=>{w(!0),null==g||g(e)},onBlur:e=>{w(!1),null==x||x(e)},...y}),k&&(0,n.jsx)(l.$,{type:"button",variant:"text",size:"icon",onMouseDown:e=>{e.preventDefault(),null==v||v()},className:"absolute right-0 top-0 h-full px-3 text-muted-foreground !opacity-100","aria-label":"Clear input",children:(0,n.jsx)(i.A,{className:"!size-[0.85]"})}),j&&(0,n.jsx)(l.$,{type:"button",variant:"text",size:"icon",onClick:()=>null==f?void 0:f(!p),className:(0,o.cn)("absolute top-0 h-full px-3 text-muted-foreground hover:text-foreground",k?"right-10":"right-0"),"aria-label":p?"Hide password":"Show password",children:p?(0,n.jsx)(a.A,{className:"h-4 w-4"}):(0,n.jsx)(s.A,{className:"h-4 w-4"})})]})});u.displayName="Input"},84354:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>s});var n=r(96670),i=r(73621),a=r(27150);function s(){let[e,t]=(0,a.useState)(!1);return(0,n.jsxs)("div",{className:"h-dvh flex",children:[(0,n.jsx)("div",{className:"bg-panel p-6 w-[20rem]",children:(0,n.jsx)(i.W,{isExpanded:e,setIsExpanded:t})}),(0,n.jsx)("div",{className:"p-6 flex items-end justify-end",children:(0,n.jsx)("p",{onClick:()=>t(!e),className:"cursor-pointer hover:opacity-75 transition-opacity",children:e?"Collapse":"Expand"})})]})}},98503:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(40970).A)("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]])}},e=>{e.O(0,[841,5077,4667,1850,7358],()=>e(e.s=56216)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-9e9aace51883e9b5.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/editor/[project_id]/layout-ef487a8884051947.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3021,3784,5475],{55638:()=>{}},_=>{_.O(0,[4667,1850,7358],()=>_(_.s=55638)),_N_E=_.O()}]); -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/editor/[project_id]/page-829f268d9ae55647.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5234],{4704:(e,i,s)=>{Promise.resolve().then(s.bind(s,70439))},70439:(e,i,s)=>{"use strict";s.r(i),s.d(i,{default:()=>u});var l=s(96670),a=s(27150),n=s(37861),c=s(16609),m=s(11843),d=s(44722),r=s(50219),x=s(41286),t=s(21364),z=s(85039),h=s(31268),o=s(55260),w=s(76667),j=s(65698);function u(){let{toolsPanel:e,previewPanel:i,mainContent:s,timeline:u,setToolsPanel:S,setPreviewPanel:f,setMainContent:N,setTimeline:p,propertiesPanel:H,setPropertiesPanel:R,activePreset:V,resetCounter:v}=(0,z.v)(),{activeProject:K,loadProject:g,createNewProject:M,isInvalidProjectId:W,markProjectIdAsInvalid:b}=(0,h.Iw)(),E=(0,n.useParams)(),_=(0,n.useRouter)(),k=E.project_id;return(0,w.z)(),(0,a.useEffect)(()=>{(async()=>{if(k&&(null==K?void 0:K.id)!==k)try{await g(k)}catch(e){try{let e=await M("Untitled Project");_.replace("/editor/".concat(e))}catch(e){}}})()},[k,K,g,M,_]),(0,l.jsx)(o.z,{children:(0,l.jsxs)("div",{className:"h-screen w-screen flex flex-col bg-background overflow-hidden",children:[(0,l.jsx)(t.X,{}),(0,l.jsx)("div",{className:"flex-1 min-h-0 min-w-0",children:"media"===V?(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.18rem] px-3 pb-3",children:[(0,l.jsx)(c.wV,{defaultSize:e,minSize:15,maxSize:40,onResize:S,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:100-e,minSize:60,className:"min-w-0 min-h-0",children:(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:30,maxSize:85,onResize:N,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem]",children:[(0,l.jsx)(c.wV,{defaultSize:i,minSize:30,onResize:f,className:"min-w-0 min-h-0 flex-1",children:(0,l.jsx)(x.x,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:H,minSize:15,maxSize:40,onResize:R,className:"min-w-0",children:(0,l.jsx)(d.E,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:u,minSize:15,maxSize:70,onResize:p,className:"min-h-0",children:(0,l.jsx)(r.K,{})})]})})]},"media-".concat(V,"-").concat(v)):"inspector"===V?(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.18rem] px-3 pb-3",children:[(0,l.jsx)(c.wV,{defaultSize:100-H,minSize:30,onResize:e=>R(100-e),className:"min-w-0 min-h-0",children:(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:30,maxSize:85,onResize:N,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem]",children:[(0,l.jsx)(c.wV,{defaultSize:e,minSize:15,maxSize:40,onResize:S,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:i,minSize:30,onResize:f,className:"min-w-0 min-h-0 flex-1",children:(0,l.jsx)(x.x,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:u,minSize:15,maxSize:70,onResize:p,className:"min-h-0",children:(0,l.jsx)(r.K,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:H,minSize:15,maxSize:40,onResize:R,className:"min-w-0 min-h-0",children:(0,l.jsx)(d.E,{})})]},"inspector-".concat(V,"-").concat(v)):"vertical-preview"===V?(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.18rem] px-3 pb-3",children:[(0,l.jsx)(c.wV,{defaultSize:100-i,minSize:30,onResize:e=>f(100-e),className:"min-w-0 min-h-0",children:(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:30,maxSize:85,onResize:N,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem]",children:[(0,l.jsx)(c.wV,{defaultSize:e,minSize:15,maxSize:40,onResize:S,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:H,minSize:15,maxSize:40,onResize:R,className:"min-w-0",children:(0,l.jsx)(d.E,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:u,minSize:15,maxSize:70,onResize:p,className:"min-h-0",children:(0,l.jsx)(r.K,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:i,minSize:30,onResize:f,className:"min-w-0 min-h-0",children:(0,l.jsx)(x.x,{})})]},"vertical-preview-".concat(V,"-").concat(v)):(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:30,maxSize:85,onResize:N,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem] px-3",children:[(0,l.jsx)(c.wV,{defaultSize:e,minSize:15,maxSize:40,onResize:S,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:i,minSize:30,onResize:f,className:"min-w-0 min-h-0 flex-1",children:(0,l.jsx)(x.x,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:H,minSize:15,maxSize:40,onResize:R,className:"min-w-0 rounded-sm",children:(0,l.jsx)(d.E,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:u,minSize:15,maxSize:70,onResize:p,className:"min-h-0 px-3 pb-3",children:(0,l.jsx)(r.K,{})})]},"default-".concat(V,"-").concat(v))}),(0,l.jsx)(j.M,{})]})})}}},e=>{e.O(0,[3340,841,8209,5077,4286,5703,7209,485,2697,1600,4667,1850,7358],()=>e(e.s=4704)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-829f268d9ae55647.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/editor/page-1b9fae49422e4407.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6766],{26617:(e,i,s)=>{"use strict";s.r(i),s.d(i,{default:()=>S});var l=s(96670),n=s(27150),a=s(37861),c=s(16609),m=s(11843),d=s(44722),r=s(50219),x=s(41286),h=s(85039),t=s(31268),z=s(76667),o=s(43206),j=s(55260),u=s(21364),w=s(65698);function f(){let e=(0,a.useSearchParams)();(0,a.useRouter)();let i=e.get("project"),{toolsPanel:s,previewPanel:f,mainContent:S,timeline:N,setToolsPanel:p,setPreviewPanel:H,setMainContent:R,setTimeline:V,propertiesPanel:v,setPropertiesPanel:g,activePreset:K,resetCounter:M}=(0,h.v)(),{activeProject:b,loadProject:W,createNewProject:E}=(0,t.Iw)();return(0,z.z)(),(0,n.useEffect)(()=>{(async()=>{if(!i)return(0,o.vv)();if((null==b?void 0:b.id)!==i)try{await W(i)}catch(e){(0,o.vv)()}})()},[i,b,W]),(0,l.jsx)(j.z,{children:(0,l.jsxs)("div",{className:"h-screen w-screen flex flex-col bg-background overflow-hidden",children:[(0,l.jsx)(u.X,{}),(0,l.jsx)("div",{className:"flex-1 min-h-0 min-w-0",children:"media"===K?(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.18rem] px-3 pb-3",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:15,maxSize:40,onResize:p,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:100-s,minSize:60,className:"min-w-0 min-h-0",children:(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:S,minSize:30,maxSize:85,onResize:R,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem]",children:[(0,l.jsx)(c.wV,{defaultSize:f,minSize:30,onResize:H,className:"min-w-0 min-h-0 flex-1",children:(0,l.jsx)(x.x,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:v,minSize:15,maxSize:40,onResize:g,className:"min-w-0",children:(0,l.jsx)(d.E,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:N,minSize:15,maxSize:70,onResize:V,className:"min-h-0",children:(0,l.jsx)(r.K,{})})]})})]},"media-".concat(K,"-").concat(M)):"inspector"===K?(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.18rem] px-3 pb-3",children:[(0,l.jsx)(c.wV,{defaultSize:100-v,minSize:30,onResize:e=>g(100-e),className:"min-w-0 min-h-0",children:(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:S,minSize:30,maxSize:85,onResize:R,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem]",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:15,maxSize:40,onResize:p,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:f,minSize:30,onResize:H,className:"min-w-0 min-h-0 flex-1",children:(0,l.jsx)(x.x,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:N,minSize:15,maxSize:70,onResize:V,className:"min-h-0",children:(0,l.jsx)(r.K,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:v,minSize:15,maxSize:40,onResize:g,className:"min-w-0 min-h-0",children:(0,l.jsx)(d.E,{})})]},"inspector-".concat(K,"-").concat(M)):"vertical-preview"===K?(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.18rem] px-3 pb-3",children:[(0,l.jsx)(c.wV,{defaultSize:100-f,minSize:30,onResize:e=>H(100-e),className:"min-w-0 min-h-0",children:(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:S,minSize:30,maxSize:85,onResize:R,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem]",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:15,maxSize:40,onResize:p,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:v,minSize:15,maxSize:40,onResize:g,className:"min-w-0",children:(0,l.jsx)(d.E,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:N,minSize:15,maxSize:70,onResize:V,className:"min-h-0",children:(0,l.jsx)(r.K,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:f,minSize:20,maxSize:50,onResize:H,className:"min-w-0 min-h-0",children:(0,l.jsx)(x.x,{})})]},"vertical-preview-".concat(K,"-").concat(M)):(0,l.jsxs)(c.HK,{direction:"vertical",className:"h-full w-full gap-[0.18rem]",children:[(0,l.jsx)(c.wV,{defaultSize:S,minSize:30,maxSize:85,onResize:R,className:"min-h-0",children:(0,l.jsxs)(c.HK,{direction:"horizontal",className:"h-full w-full gap-[0.19rem] px-3",children:[(0,l.jsx)(c.wV,{defaultSize:s,minSize:15,maxSize:40,onResize:p,className:"min-w-0 rounded-sm",children:(0,l.jsx)(m.l,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:f,minSize:30,onResize:H,className:"min-w-0 min-h-0 flex-1",children:(0,l.jsx)(x.x,{})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:v,minSize:15,maxSize:40,onResize:g,className:"min-w-0",children:(0,l.jsx)(d.E,{})})]})}),(0,l.jsx)(c.WM,{withHandle:!0}),(0,l.jsx)(c.wV,{defaultSize:N,minSize:15,maxSize:70,onResize:V,className:"min-h-0 px-3 pb-3",children:(0,l.jsx)(r.K,{})})]},"default-".concat(K,"-").concat(M))}),(0,l.jsx)(w.M,{})]})})}function S(){return(0,l.jsx)(n.Suspense,{fallback:(0,l.jsx)("div",{className:"h-screen w-screen flex items-center justify-center bg-background",children:(0,l.jsx)("div",{className:"text-muted-foreground",children:"Loading editor..."})}),children:(0,l.jsx)(f,{})})}},77105:(e,i,s)=>{Promise.resolve().then(s.bind(s,26617))}},e=>{e.O(0,[3340,841,8209,5077,4286,5703,7209,485,2697,1600,4667,1850,7358],()=>e(e.s=77105)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-1b9fae49422e4407.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/layout-99afde99e0402a81.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7177],{5439:()=>{},14705:(e,r,o)=>{Promise.resolve().then(o.t.bind(o,5439,23)),Promise.resolve().then(o.bind(o,94362)),Promise.resolve().then(o.bind(o,39605)),Promise.resolve().then(o.bind(o,89111)),Promise.resolve().then(o.bind(o,75159)),Promise.resolve().then(o.bind(o,76654)),Promise.resolve().then(o.bind(o,18760)),Promise.resolve().then(o.bind(o,41276)),Promise.resolve().then(o.bind(o,172)),Promise.resolve().then(o.bind(o,29683)),Promise.resolve().then(o.bind(o,28053)),Promise.resolve().then(o.bind(o,65985)),Promise.resolve().then(o.bind(o,81003)),Promise.resolve().then(o.bind(o,46113)),Promise.resolve().then(o.bind(o,91200)),Promise.resolve().then(o.bind(o,51409)),Promise.resolve().then(o.bind(o,44766)),Promise.resolve().then(o.bind(o,43587)),Promise.resolve().then(o.bind(o,23443)),Promise.resolve().then(o.bind(o,38322)),Promise.resolve().then(o.bind(o,90866)),Promise.resolve().then(o.bind(o,77651)),Promise.resolve().then(o.bind(o,91083)),Promise.resolve().then(o.bind(o,37157)),Promise.resolve().then(o.bind(o,76745)),Promise.resolve().then(o.bind(o,4886)),Promise.resolve().then(o.bind(o,32761)),Promise.resolve().then(o.bind(o,75276)),Promise.resolve().then(o.bind(o,98287)),Promise.resolve().then(o.bind(o,7326)),Promise.resolve().then(o.bind(o,53731)),Promise.resolve().then(o.bind(o,12236)),Promise.resolve().then(o.bind(o,64960)),Promise.resolve().then(o.t.bind(o,97917,23)),Promise.resolve().then(o.t.bind(o,70599,23)),Promise.resolve().then(o.t.bind(o,97580,23)),Promise.resolve().then(o.t.bind(o,47626,23)),Promise.resolve().then(o.t.bind(o,15338,23)),Promise.resolve().then(o.t.bind(o,12747,23))},39605:(e,r,o)=>{"use strict";o.d(r,{Toaster:()=>i});var s=o(96670),t=o(64960),n=o(71174);let i=e=>{let{...r}=e,{theme:o="system"}=(0,t.D)();return(0,s.jsx)(n.l$,{theme:o,className:"toaster group",position:"top-center",offset:20,toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},expand:!1,richColors:!0,...r})}},94362:(e,r,o)=>{"use strict";o.d(r,{StorageProvider:()=>a});var s=o(96670),t=o(27150),n=o(31268),i=o(49155),l=o(71174);let d=(0,t.createContext)(null);function a(e){let{children:r}=e,[o,a]=(0,t.useState)({isInitialized:!1,isLoading:!0,hasSupport:!1,error:null}),m=(0,n.Iw)(e=>e.loadAllProjects);return(0,t.useEffect)(()=>{(async()=>{a(e=>({...e,isLoading:!0}));try{let e=i.P.isFullySupported();e||l.oR.warning("Storage not fully supported. Some features may not work."),await m(),a({isInitialized:!0,isLoading:!1,hasSupport:e,error:null})}catch(e){a({isInitialized:!1,isLoading:!1,hasSupport:i.P.isFullySupported(),error:e instanceof Error?e.message:"Unknown error"})}})()},[m]),(0,s.jsx)(d.Provider,{value:o,children:r})}}},e=>{e.O(0,[4232,7743,841,4286,5703,8120,485,4667,1850,7358],()=>e(e.s=14705)),_N_E=e.O()}]); 2 | //# sourceMappingURL=layout-99afde99e0402a81.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/privacy/page-b9daa0dc85d57950.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7066,9329,9877],{50958:(e,s,n)=>{Promise.resolve().then(n.bind(n,91162)),Promise.resolve().then(n.bind(n,58690)),Promise.resolve().then(n.t.bind(n,60416,23))}},e=>{e.O(0,[3340,3177,841,8209,5077,7092,4667,1850,7358],()=>e(e.s=50958)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-b9daa0dc85d57950.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/privacy/page-b9daa0dc85d57950.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/app/privacy/page-b9daa0dc85d57950.js","mappings":"0FAAA,uCAAoH,CAEpH,uCAAoH,CAEpH,4CAAgM","sources":["webpack://_N_E/?89f7"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"Footer\"] */ \"I:\\\\OpenCut\\\\apps\\\\web\\\\src\\\\components\\\\footer.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Header\"] */ \"I:\\\\OpenCut\\\\apps\\\\web\\\\src\\\\components\\\\header.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"__esModule\",\"default\"] */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\app-dir\\\\link.js\");\n"],"names":[],"sourceRoot":"","ignoreList":[]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/roadmap/page-b9daa0dc85d57950.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7066,9329,9877],{50958:(e,s,n)=>{Promise.resolve().then(n.bind(n,91162)),Promise.resolve().then(n.bind(n,58690)),Promise.resolve().then(n.t.bind(n,60416,23))}},e=>{e.O(0,[3340,3177,841,8209,5077,7092,4667,1850,7358],()=>e(e.s=50958)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-b9daa0dc85d57950.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/roadmap/page-b9daa0dc85d57950.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/app/roadmap/page-b9daa0dc85d57950.js","mappings":"0FAAA,uCAAoH,CAEpH,uCAAoH,CAEpH,4CAAgM","sources":["webpack://_N_E/?89f7"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"Footer\"] */ \"I:\\\\OpenCut\\\\apps\\\\web\\\\src\\\\components\\\\footer.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Header\"] */ \"I:\\\\OpenCut\\\\apps\\\\web\\\\src\\\\components\\\\header.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"__esModule\",\"default\"] */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\app-dir\\\\link.js\");\n"],"names":[],"sourceRoot":"","ignoreList":[]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/robots.txt/route-ef487a8884051947.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3021,3784,5475],{55638:()=>{}},_=>{_.O(0,[4667,1850,7358],()=>_(_.s=55638)),_N_E=_.O()}]); -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/sitemap.xml/route-ef487a8884051947.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3021,3784,5475],{55638:()=>{}},_=>{_.O(0,[4667,1850,7358],()=>_(_.s=55638)),_N_E=_.O()}]); -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/terms/page-b9daa0dc85d57950.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7066,9329,9877],{50958:(e,s,n)=>{Promise.resolve().then(n.bind(n,91162)),Promise.resolve().then(n.bind(n,58690)),Promise.resolve().then(n.t.bind(n,60416,23))}},e=>{e.O(0,[3340,3177,841,8209,5077,7092,4667,1850,7358],()=>e(e.s=50958)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-b9daa0dc85d57950.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/terms/page-b9daa0dc85d57950.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/app/terms/page-b9daa0dc85d57950.js","mappings":"0FAAA,uCAAoH,CAEpH,uCAAoH,CAEpH,4CAAgM","sources":["webpack://_N_E/?89f7"],"sourcesContent":["import(/* webpackMode: \"eager\", webpackExports: [\"Footer\"] */ \"I:\\\\OpenCut\\\\apps\\\\web\\\\src\\\\components\\\\footer.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"Header\"] */ \"I:\\\\OpenCut\\\\apps\\\\web\\\\src\\\\components\\\\header.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"__esModule\",\"default\"] */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\app-dir\\\\link.js\");\n"],"names":[],"sourceRoot":"","ignoreList":[]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/app/why-not-capcut/page-ceee0268f18e42e1.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1102],{2290:(e,t,r)=>{"use strict";r.d(t,{$:()=>d});var n=r(96670),s=r(27150),i=r(10182),a=r(34818),o=r(66913);let c=(0,a.F)("inline-flex items-center cursor-pointer justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-foreground text-background shadow-sm hover:bg-foreground/90",primary:"bg-primary text-primary-foreground shadow-sm hover:bg-primary/90","primary-gradient":"bg-gradient-to-r from-cyan-400 to-blue-500 text-white hover:opacity-85 transition-opacity",destructive:"bg-destructive text-destructive-foreground shadow-xs hover:bg-destructive/90",outline:"border border-input bg-background shadow-xs hover:opacity-75 transition-opacity hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-xs hover:bg-foreground/15 border border-input",text:"bg-transparent p-0 rounded-none opacity-100 hover:opacity-50 transition-opacity",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-sm px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-7 w-7"}},defaultVariants:{variant:"default",size:"default"}}),d=s.forwardRef((e,t)=>{let{className:r,variant:s,size:a,asChild:d=!1,...l}=e,u=d?i.DX:"button";return(0,n.jsx)(u,{className:(0,o.cn)(c({variant:s,size:a,className:r})),ref:t,...l})});d.displayName="Button"},31224:(e,t,r)=>{Promise.resolve().then(r.bind(r,58690))},55589:(e,t,r)=>{"use strict";r.d(t,{A:()=>n});let n=(0,r(40970).A)("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]])},58451:(e,t,r)=>{"use strict";r.d(t,{J:()=>s,h:()=>i});var n=r(14979);let s="comfyui"===n.env.BUILD_MODE||window.location.pathname.startsWith("/opencut")?"/opencut":"";function i(e){let t=("comfyui"===n.env.BUILD_MODE?"/opencut":"")||s;return t?e.startsWith("/")?"".concat(t).concat(e):"".concat(t,"/").concat(e):e}},58690:(e,t,r)=>{"use strict";r.d(t,{Header:()=>u});var n=r(96670),s=r(60416),i=r.n(s),a=r(2290),o=r(55589),c=r(70480),d=r(58451),l=r(10184);function u(){let e=(0,n.jsxs)(i(),{href:"/",className:"flex items-center gap-3",children:[(0,n.jsx)(l.default,{src:(0,d.h)("/logo.svg"),alt:"OpenCut Logo",className:"invert dark:invert-0",width:32,height:32}),(0,n.jsx)("span",{className:"text-xl font-medium hidden md:block",children:"OpenCut"})]}),t=(0,n.jsxs)("nav",{className:"flex items-center gap-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-4",children:[(0,n.jsx)(i(),{href:"/blog",children:(0,n.jsx)(a.$,{variant:"text",className:"text-sm p-0",children:"Blog"})}),(0,n.jsx)(i(),{href:"/contributors",children:(0,n.jsx)(a.$,{variant:"text",className:"text-sm p-0",children:"Contributors"})})]}),(0,n.jsx)(i(),{href:"/projects",children:(0,n.jsxs)(a.$,{size:"sm",className:"text-sm ml-4",children:["Projects",(0,n.jsx)(o.A,{className:"h-4 w-4"})]})})]});return(0,n.jsx)("div",{className:"sticky top-4 z-50 mx-4 md:mx-0",children:(0,n.jsx)(c.H,{className:"bg-background border rounded-2xl max-w-3xl mx-auto mt-4 pl-4 pr-[11px]",leftContent:e,rightContent:t})})}},66913:(e,t,r)=>{"use strict";r.d(t,{C7:()=>u,Fe:()=>c,Zv:()=>a,bT:()=>m,cn:()=>i,lg:()=>l,lk:()=>o,mr:()=>d});var n=r(87120),s=r(4533);function i(){for(var e=arguments.length,t=Array(e),r=0;re.toString(16).padStart(2,"0"));return t.slice(0,4).join("")+"-"+t.slice(4,6).join("")+"-"+t.slice(6,8).join("")+"-"+t.slice(8,10).join("")+"-"+t.slice(10,16).join("")}function c(e){return!!e&&(e instanceof Element||e instanceof HTMLElement)}function d(e){return!!e.isContentEditable||("INPUT"===e.tagName||"TEXTAREA"===e.tagName)&&!e.disabled}function l(){return/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)}function u(){return l()?"⌘":"Ctrl"}function m(){return l()?"⌥":"Alt"}},70480:(e,t,r)=>{"use strict";r.d(t,{H:()=>i});var n=r(96670),s=r(66913);function i(e){let{leftContent:t,centerContent:r,rightContent:i,className:a,children:o}=e;return o?(0,n.jsx)("header",{className:(0,s.cn)("px-6 h-16 flex items-center",a),children:o}):(0,n.jsxs)("header",{className:(0,s.cn)("px-6 h-14 flex justify-between items-center",a),children:[t&&(0,n.jsx)("div",{className:"flex items-center",children:t}),r&&(0,n.jsx)("div",{className:"flex items-center",children:r}),i&&(0,n.jsx)("div",{className:"flex items-center",children:i})]})}}},e=>{e.O(0,[841,8209,4667,1850,7358],()=>e(e.s=31224)),_N_E=e.O()}]); 2 | //# sourceMappingURL=page-ceee0268f18e42e1.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/d07cf561-d9f6be47d1dd276f.js: -------------------------------------------------------------------------------- 1 | "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3177],{50126:(C,t,r)=>{r.d(t,{r53:()=>l,rCx:()=>c});var a=r(21306);function l(C){return(0,a.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M19.3034 5.33716C17.9344 4.71103 16.4805 4.2547 14.9629 4C14.7719 4.32899 14.5596 4.77471 14.411 5.12492C12.7969 4.89144 11.1944 4.89144 9.60255 5.12492C9.45397 4.77471 9.2311 4.32899 9.05068 4C7.52251 4.2547 6.06861 4.71103 4.70915 5.33716C1.96053 9.39111 1.21766 13.3495 1.5891 17.2549C3.41443 18.5815 5.17612 19.388 6.90701 19.9187C7.33151 19.3456 7.71356 18.73 8.04255 18.0827C7.41641 17.8492 6.82211 17.5627 6.24904 17.2231C6.39762 17.117 6.5462 17.0003 6.68416 16.8835C10.1438 18.4648 13.8911 18.4648 17.3082 16.8835C17.4568 17.0003 17.5948 17.117 17.7434 17.2231C17.1703 17.5627 16.576 17.8492 15.9499 18.0827C16.2789 18.73 16.6609 19.3456 17.0854 19.9187C18.8152 19.388 20.5875 18.5815 22.4033 17.2549C22.8596 12.7341 21.6806 8.80747 19.3034 5.33716ZM8.5201 14.8459C7.48007 14.8459 6.63107 13.9014 6.63107 12.7447C6.63107 11.5879 7.45884 10.6434 8.5201 10.6434C9.57071 10.6434 10.4303 11.5879 10.4091 12.7447C10.4091 13.9014 9.57071 14.8459 8.5201 14.8459ZM15.4936 14.8459C14.4535 14.8459 13.6034 13.9014 13.6034 12.7447C13.6034 11.5879 14.4323 10.6434 15.4936 10.6434C16.5442 10.6434 17.4038 11.5879 17.3825 12.7447C17.3825 13.9014 16.5548 14.8459 15.4936 14.8459Z"},child:[]}]})(C)}function c(C){return(0,a.k5)({tag:"svg",attr:{viewBox:"0 0 24 24",fill:"currentColor"},child:[{tag:"path",attr:{d:"M10.4883 14.651L15.25 21H22.25L14.3917 10.5223L20.9308 3H18.2808L13.1643 8.88578L8.75 3H1.75L9.26086 13.0145L2.31915 21H4.96917L10.4883 14.651ZM16.25 19L5.75 5H7.75L18.25 19H16.25Z"},child:[]}]})(C)}}}]); 2 | //# sourceMappingURL=d07cf561-d9f6be47d1dd276f.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/main-app-aeab572ddb9ac7cc.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7358],{6549:(e,s,n)=>{Promise.resolve().then(n.t.bind(n,94127,23)),Promise.resolve().then(n.t.bind(n,34340,23)),Promise.resolve().then(n.t.bind(n,30908,23)),Promise.resolve().then(n.t.bind(n,99837,23)),Promise.resolve().then(n.t.bind(n,53805,23)),Promise.resolve().then(n.t.bind(n,68777,23)),Promise.resolve().then(n.t.bind(n,57497,23)),Promise.resolve().then(n.t.bind(n,94128,23)),Promise.resolve().then(n.bind(n,32617))},75030:()=>{}},e=>{var s=s=>e(e.s=s);e.O(0,[4667,1850],()=>(s(45145),s(6549))),_N_E=e.O()}]); 2 | //# sourceMappingURL=main-app-aeab572ddb9ac7cc.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/main-app-aeab572ddb9ac7cc.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/main-app-aeab572ddb9ac7cc.js","mappings":"+EAAA,4CAA0K,CAE1K,4CAAgK,CAEhK,4CAAmK,CAEnK,4CAAyL,CAEzL,4CAAkK,CAElK,4CAA6K,CAE7K,4CAAiL,CAEjL,4CAAoK,CAEpK,uCAAmK","sources":["webpack://_N_E/?e660","webpack://_N_E/ignored|I:\\OpenCut\\node_modules\\.bun\\next@15.5.2+6dbf9a050bc9aadb\\node_modules\\next\\dist\\lib|private-next-instrumentation-client"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\builtin\\\\global-error.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\client-page.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\client-segment.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\http-access-fallback\\\\error-boundary.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\layout-router.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\metadata\\\\async-metadata.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\client\\\\components\\\\render-from-template-context.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\lib\\\\framework\\\\boundary-components.js\");\n;\nimport(/* webpackMode: \"eager\" */ \"I:\\\\OpenCut\\\\node_modules\\\\.bun\\\\next@15.5.2+6dbf9a050bc9aadb\\\\node_modules\\\\next\\\\dist\\\\lib\\\\metadata\\\\generate\\\\icon-mark.js\");\n","/* (ignored) */"],"names":[],"sourceRoot":"","ignoreList":[1]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/pages/_app-5bcb257a2763ef44.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[383,636],{383:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return s}});let u=n(78873),l=n(485),a=u._(n(30233)),o=n(91157);async function r(e){let{Component:t,ctx:n}=e;return{pageProps:await (0,o.loadGetInitialProps)(t,n)}}class s extends a.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,l.jsx)(e,{...t})}}s.origGetInitialProps=r,s.getInitialProps=r,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},22047:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(383)}])}},e=>{var t=t=>e(e.s=t);e.O(0,[6593,8792],()=>(t(22047),t(29543))),_N_E=e.O()}]); 2 | //# sourceMappingURL=_app-5bcb257a2763ef44.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/pages/_app-5bcb257a2763ef44.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"file":"static/chunks/pages/_app-5bcb257a2763ef44.js","mappings":"sNAiCqBA,qCAjCH,YAWkB,OAcpC,eAAeC,EAAmB,CAGrB,EAHqB,cAChCC,CAAS,KACTC,CAAG,CACQ,CAHqB,EAKhC,MAAO,CAAEC,UADS,MAAMC,CAAAA,EAAAA,EAAAA,mBAAAA,EAAoBH,EAAWC,EACpC,CACrB,CAEe,MAAMH,UAAsCM,EAAAA,OAAK,CAACJ,SAAS,CAOxEK,QAAS,CACP,GAAM,WAAEL,CAAS,CAAEE,WAAS,CAAE,CAAG,IAAI,CAACI,KAAK,CAE3C,MAAO,UAACN,EAAAA,CAAW,GAAGE,CAAS,EACjC,CACF,CAZqBJ,EAIZS,mBAAAA,CAAsBR,EAJVD,EAKZU,eAAAA,CAAkBT,0OCrC3B,4CACA,QACA,WACA,OAAe,EAAQ,GAAsB,CAC7C,EACA,WAFsB","sources":["webpack://_N_E/../../src/pages/_app.tsx","webpack://_N_E/"],"sourcesContent":["import React from 'react'\n\nimport type {\n AppContextType,\n AppInitialProps,\n AppPropsType,\n NextWebVitalsMetric,\n AppType,\n} from '../shared/lib/utils'\nimport type { Router } from '../client/router'\n\nimport { loadGetInitialProps } from '../shared/lib/utils'\n\nexport type { AppInitialProps, AppType }\n\nexport type { NextWebVitalsMetric }\n\nexport type AppContext = AppContextType\n\nexport type AppProps

= AppPropsType\n\n/**\n * `App` component is used for initialize of pages. It allows for overwriting and full control of the `page` initialization.\n * This allows for keeping state between navigation, custom error handling, injecting additional data.\n */\nasync function appGetInitialProps({\n Component,\n ctx,\n}: AppContext): Promise {\n const pageProps = await loadGetInitialProps(Component, ctx)\n return { pageProps }\n}\n\nexport default class App

extends React.Component<\n P & AppProps,\n S\n> {\n static origGetInitialProps = appGetInitialProps\n static getInitialProps = appGetInitialProps\n\n render() {\n const { Component, pageProps } = this.props as AppProps\n\n return \n }\n}\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"next/dist/pages/_app\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n "],"names":["App","appGetInitialProps","Component","ctx","pageProps","loadGetInitialProps","React","render","props","origGetInitialProps","getInitialProps"],"sourceRoot":"","ignoreList":[]} -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/pages/_error-5480a4a51005587e.js: -------------------------------------------------------------------------------- 1 | (self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[2731,7354],{28275:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let r=n(30233),o=r.useLayoutEffect,l=r.useEffect;function i(e){let{headManager:t,reduceComponentsToState:n}=e;function i(){if(t&&t.mountedInstances){let o=r.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(n(o,e))}}return o(()=>{var n;return null==t||null==(n=t.mountedInstances)||n.add(e.children),()=>{var n;null==t||null==(n=t.mountedInstances)||n.delete(e.children)}}),o(()=>(t&&(t._pendingUpdate=i),()=>{t&&(t._pendingUpdate=i)})),l(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},47346:(e,t)=>{"use strict";function n(e){let{ampFirst:t=!1,hybrid:n=!1,hasQuery:r=!1}=void 0===e?{}:e;return t||n&&r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return n}})},47866:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{default:function(){return y},defaultHead:function(){return c}});let r=n(78873),o=n(37978),l=n(485),i=o._(n(30233)),a=r._(n(28275)),d=n(90198),s=n(64168),u=n(47346);function c(e){void 0===e&&(e=!1);let t=[(0,l.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,l.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===i.default.Fragment?e.concat(i.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}n(93548);let f=["name","httpEquiv","charSet","itemProp"];function h(e,t){let{inAmpMode:n}=t;return e.reduce(p,[]).reverse().concat(c(n).reverse()).filter(function(){let e=new Set,t=new Set,n=new Set,r={};return o=>{let l=!0,i=!1;if(o.key&&"number"!=typeof o.key&&o.key.indexOf("$")>0){i=!0;let t=o.key.slice(o.key.indexOf("$")+1);e.has(t)?l=!1:e.add(t)}switch(o.type){case"title":case"base":t.has(o.type)?l=!1:t.add(o.type);break;case"meta":for(let e=0,t=f.length;e{let n=e.key||t;return i.default.cloneElement(e,{key:n})})}let y=function(e){let{children:t}=e,n=(0,i.useContext)(d.AmpStateContext),r=(0,i.useContext)(s.HeadManagerContext);return(0,l.jsx)(a.default,{reduceComponentsToState:h,headManager:r,inAmpMode:(0,u.isInAmpMode)(n),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53305:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return n(87354)}])},87354:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let r=n(78873),o=n(485),l=r._(n(30233)),i=r._(n(47866)),a={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function d(e){let{req:t,res:n,err:r}=e;return{statusCode:n&&n.statusCode?n.statusCode:r?r.statusCode:404,hostname:window.location.hostname}}let s={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class u extends l.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,n=this.props.title||a[e]||"An unexpected error has occurred";return(0,o.jsxs)("div",{style:s.error,children:[(0,o.jsx)(i.default,{children:(0,o.jsx)("title",{children:e?e+": "+n:"Application error: a client-side exception has occurred"})}),(0,o.jsxs)("div",{style:s.desc,children:[(0,o.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,o.jsx)("h1",{className:"next-error-h1",style:s.h1,children:e}):null,(0,o.jsx)("div",{style:s.wrap,children:(0,o.jsxs)("h2",{style:s.h2,children:[this.props.title||e?n:(0,o.jsxs)(o.Fragment,{children:["Application error: a client-side exception has occurred"," ",!!this.props.hostname&&(0,o.jsxs)(o.Fragment,{children:["while loading ",this.props.hostname]})," ","(see the browser console for more information)"]}),"."]})})]})]})}}u.displayName="ErrorPage",u.getInitialProps=d,u.origGetInitialProps=d,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},90198:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return r}});let r=n(78873)._(n(30233)).default.createContext({})}},e=>{e.O(0,[636,6593,8792],()=>e(e.s=53305)),_N_E=e.O()}]); 2 | //# sourceMappingURL=_error-5480a4a51005587e.js.map -------------------------------------------------------------------------------- /opencut-ui/_next/static/chunks/webpack-23c697b1add73cdd.js: -------------------------------------------------------------------------------- 1 | (()=>{"use strict";var e={},t={};function r(o){var a=t[o];if(void 0!==a)return a.exports;var n=t[o]={exports:{}},c=!0;try{e[o].call(n.exports,n,n.exports,r),c=!1}finally{c&&delete t[o]}return n.exports}r.m=e,(()=>{var e=[];r.O=(t,o,a,n)=>{if(o){n=n||0;for(var c=e.length;c>0&&e[c-1][2]>n;c--)e[c]=e[c-1];e[c]=[o,a,n];return}for(var d=1/0,c=0;c=n)&&Object.keys(r.O).every(e=>r.O[e](o[f]))?o.splice(f--,1):(i=!1,n{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,a){if(1&a&&(o=this(o)),8&a||"object"==typeof o&&o&&(4&a&&o.__esModule||16&a&&"function"==typeof o.then))return o;var n=Object.create(null);r.r(n);var c={};e=e||[null,t({}),t([]),t(t)];for(var d=2&a&&o;"object"==typeof d&&!~e.indexOf(d);d=t(d))Object.getOwnPropertyNames(d).forEach(e=>c[e]=()=>o[e]);return c.default=()=>o,r.d(n,c),n}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/chunks/"+(({3409:"2242297b",7145:"f00f2538",7384:"08d26d8c",9386:"f6d2e299",9618:"8df99fe8"})[e]||e)+"."+({383:"381096dd01edfc82",1849:"c0dcb067f369624c",2589:"274f8308f518a836",3409:"090ad67b599a9ed5",4063:"b5abb1c947303d0c",4469:"a3233c7480fad071",5190:"d4b824c722a38209",7145:"110d8b3cc0316bcd",7354:"e2c24094a96ce137",7379:"113d6abf603a94eb",7384:"f0eca5e256da808e",7486:"6b355a41d3c1b2de",7566:"6de16f24c2ee0b5c",7761:"93de84a1aee3663c",8084:"1c7f47028b274a0a",8314:"1bdbfa1fb89d6eaf",8611:"0a92b4887b20fa2a",9386:"a51675a0e0e9de78",9618:"67af1fdd29668ba4",9921:"c3c3269cc8fe628f"})[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,a,n,c)=>{if(e[o])return void e[o].push(a);if(void 0!==n)for(var d,i,f=document.getElementsByTagName("script"),u=0;u{d.onerror=d.onload=null,clearTimeout(b);var a=e[o];if(delete e[o],d.parentNode&&d.parentNode.removeChild(d),a&&a.forEach(e=>e(r)),t)return t(r)},b=setTimeout(s.bind(null,void 0,{type:"timeout",target:d}),12e4);d.onerror=s.bind(null,d.onerror),d.onload=s.bind(null,d.onload),i&&document.head.appendChild(d)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/opencut/_next/",(()=>{r.b=document.baseURI||self.location.href;var e={8068:0,4232:0,7743:0};r.f.j=(t,o)=>{var a=r.o(e,t)?e[t]:void 0;if(0!==a)if(a)o.push(a[2]);else if(/^(4232|7743|8068)$/.test(t))e[t]=0;else{var n=new Promise((r,o)=>a=e[t]=[r,o]);o.push(a[2]=n);var c=r.p+r.u(t),d=Error();r.l(c,o=>{if(r.o(e,t)&&(0!==(a=e[t])&&(e[t]=void 0),a)){var n=o&&("load"===o.type?"missing":o.type),c=o&&o.target&&o.target.src;d.message="Loading chunk "+t+" failed.\n("+n+": "+c+")",d.name="ChunkLoadError",d.type=n,d.request=c,a[1](d)}},"chunk-"+t,t)}},r.O.j=t=>0===e[t];var t=(t,o)=>{var a,n,[c,d,i]=o,f=0;if(c.some(t=>0!==e[t])){for(a in d)r.o(d,a)&&(r.m[a]=d[a]);if(i)var u=i(r)}for(t&&t(o);f 2 | 3 | 4 | 5 | 6 | 7 | 8 | #ffffff 9 | 10 | 11 | -------------------------------------------------------------------------------- /opencut-ui/editor/index.txt: -------------------------------------------------------------------------------- 1 | 1:"$Sreact.fragment" 2 | 2:I[64960,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"ThemeProvider"] 3 | 3:I[12236,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Provider"] 4 | 4:I[94362,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"StorageProvider"] 5 | 5:I[53805,[],""] 6 | 6:I[57497,[],""] 7 | 7:I[39605,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Toaster"] 8 | 8:I[97917,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],""] 9 | 9:I[34340,[],"ClientPageRoot"] 10 | a:I[26617,["3340","static/chunks/8340eb7d-36e917f4d2acf872.js","841","static/chunks/841-d91b2a0a655e1147.js","8209","static/chunks/8209-c9c1d3957d29cbba.js","5077","static/chunks/5077-f71db13ac0ed08b1.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","7209","static/chunks/7209-a3b263bec38bffe4.js","485","static/chunks/485-dbda59b493b69f67.js","2697","static/chunks/2697-9a3d188465b229e1.js","1600","static/chunks/1600-d89f820423414ecb.js","6766","static/chunks/app/editor/page-1b9fae49422e4407.js"],"default"] 11 | d:I[94128,[],"OutletBoundary"] 12 | f:I[68777,[],"AsyncMetadataOutlet"] 13 | 11:I[94128,[],"ViewportBoundary"] 14 | 13:I[94128,[],"MetadataBoundary"] 15 | 14:"$Sreact.suspense" 16 | 16:I[94127,[],""] 17 | :HL["/opencut/_next/static/css/e1856565ca9a0d8e.css","style"] 18 | :HL["/opencut/_next/static/css/173513df0e02305a.css","style"] 19 | 0:{"P":null,"b":"_tNMrmGbDKZy8pM7PcnEn","p":"/opencut","c":["","editor",""],"i":false,"f":[[["",{"children":["editor",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/opencut/_next/static/css/e1856565ca9a0d8e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/opencut/_next/static/css/173513df0e02305a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"__className_ef9af1 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":["$","$L3",null,{"children":[["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L7",null,{}],["$","$L8",null,{"src":"https://cdn.databuddy.cc/databuddy.js","strategy":"afterInteractive","async":true,"data-client-id":"UP-Wcoy5arxFeK7oyjMMZ","data-disabled":false,"data-track-attributes":false,"data-track-errors":true,"data-track-outgoing-links":false,"data-track-web-vitals":false,"data-track-sessions":false}]]}]}]}]]}]]}],{"children":["editor",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L11",null,{"children":"$L12"}],null],["$","$L13",null,{"children":["$","div",null,{"hidden":true,"children":["$","$14",null,{"fallback":null,"children":"$L15"}]}]}]]}],false]],"m":"$undefined","G":["$16",[]],"s":false,"S":true} 20 | b:{} 21 | c:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params" 22 | 12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 23 | e:null 24 | 17:I[32617,[],"IconMark"] 25 | 10:{"metadata":[["$","title","0",{"children":"OpenCut"}],["$","meta","1",{"name":"description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","link","2",{"rel":"manifest","href":"/opencut/manifest.json","crossOrigin":"$undefined"}],["$","meta","3",{"name":"robots","content":"index, follow"}],["$","meta","4",{"name":"msapplication-config","content":"/opencut/browserconfig.xml"}],["$","meta","5",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","6",{"name":"apple-mobile-web-app-title","content":"OpenCut"}],["$","meta","7",{"name":"apple-mobile-web-app-status-bar-style","content":"default"}],["$","meta","8",{"property":"og:title","content":"OpenCut"}],["$","meta","9",{"property":"og:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","10",{"property":"og:url","content":"https://opencut.app/"}],["$","meta","11",{"property":"og:site_name","content":"OpenCut"}],["$","meta","12",{"property":"og:locale","content":"en_US"}],["$","meta","13",{"property":"og:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","meta","14",{"property":"og:image:width","content":"1200"}],["$","meta","15",{"property":"og:image:height","content":"630"}],["$","meta","16",{"property":"og:image:alt","content":"OpenCut Wordmark"}],["$","meta","17",{"property":"og:type","content":"website"}],["$","meta","18",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","19",{"name":"twitter:creator","content":"@opencutapp"}],["$","meta","20",{"name":"twitter:title","content":"OpenCut"}],["$","meta","21",{"name":"twitter:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","22",{"name":"twitter:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","link","23",{"rel":"shortcut icon","href":"/opencut/favicon.ico"}],["$","link","24",{"rel":"icon","href":"/opencut/favicon.ico"}],["$","link","25",{"rel":"icon","href":"/opencut/icons/favicon-16x16.png","sizes":"16x16","type":"image/png"}],["$","link","26",{"rel":"icon","href":"/opencut/icons/favicon-32x32.png","sizes":"32x32","type":"image/png"}],["$","link","27",{"rel":"icon","href":"/opencut/icons/favicon-96x96.png","sizes":"96x96","type":"image/png"}],["$","link","28",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-57x57.png","sizes":"57x57","type":"image/png"}],["$","link","29",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-60x60.png","sizes":"60x60","type":"image/png"}],["$","link","30",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-72x72.png","sizes":"72x72","type":"image/png"}],["$","link","31",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-76x76.png","sizes":"76x76","type":"image/png"}],["$","link","32",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-114x114.png","sizes":"114x114","type":"image/png"}],["$","link","33",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-120x120.png","sizes":"120x120","type":"image/png"}],["$","link","34",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-144x144.png","sizes":"144x144","type":"image/png"}],["$","link","35",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-152x152.png","sizes":"152x152","type":"image/png"}],["$","link","36",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-180x180.png","sizes":"180x180","type":"image/png"}],["$","$L17","37",{}]],"error":null,"digest":"$undefined"} 26 | 15:"$10:metadata" 27 | -------------------------------------------------------------------------------- /opencut-ui/editor/new/index.txt: -------------------------------------------------------------------------------- 1 | 1:"$Sreact.fragment" 2 | 2:I[64960,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"ThemeProvider"] 3 | 3:I[12236,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Provider"] 4 | 4:I[94362,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"StorageProvider"] 5 | 5:I[53805,[],""] 6 | 6:I[57497,[],""] 7 | 7:I[39605,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Toaster"] 8 | 8:I[97917,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],""] 9 | 9:I[34340,[],"ClientPageRoot"] 10 | a:I[70439,["3340","static/chunks/8340eb7d-36e917f4d2acf872.js","841","static/chunks/841-d91b2a0a655e1147.js","8209","static/chunks/8209-c9c1d3957d29cbba.js","5077","static/chunks/5077-f71db13ac0ed08b1.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","7209","static/chunks/7209-a3b263bec38bffe4.js","485","static/chunks/485-dbda59b493b69f67.js","2697","static/chunks/2697-9a3d188465b229e1.js","1600","static/chunks/1600-d89f820423414ecb.js","5234","static/chunks/app/editor/%5Bproject_id%5D/page-829f268d9ae55647.js"],"default"] 11 | d:I[94128,[],"OutletBoundary"] 12 | f:I[68777,[],"AsyncMetadataOutlet"] 13 | 11:I[94128,[],"ViewportBoundary"] 14 | 13:I[94128,[],"MetadataBoundary"] 15 | 14:"$Sreact.suspense" 16 | 16:I[94127,[],""] 17 | :HL["/opencut/_next/static/css/e1856565ca9a0d8e.css","style"] 18 | :HL["/opencut/_next/static/css/173513df0e02305a.css","style"] 19 | 0:{"P":null,"b":"_tNMrmGbDKZy8pM7PcnEn","p":"/opencut","c":["","editor","new",""],"i":false,"f":[[["",{"children":["editor",{"children":[["project_id","new","d"],{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/opencut/_next/static/css/e1856565ca9a0d8e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/opencut/_next/static/css/173513df0e02305a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"__className_ef9af1 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":["$","$L3",null,{"children":[["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L7",null,{}],["$","$L8",null,{"src":"https://cdn.databuddy.cc/databuddy.js","strategy":"afterInteractive","async":true,"data-client-id":"UP-Wcoy5arxFeK7oyjMMZ","data-disabled":false,"data-track-attributes":false,"data-track-errors":true,"data-track-outgoing-links":false,"data-track-web-vitals":false,"data-track-sessions":false}]]}]}]}]]}]]}],{"children":["editor",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["project_id","new","d"],["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{"project_id":"new"},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L11",null,{"children":"$L12"}],null],["$","$L13",null,{"children":["$","div",null,{"hidden":true,"children":["$","$14",null,{"fallback":null,"children":"$L15"}]}]}]]}],false]],"m":"$undefined","G":["$16",[]],"s":false,"S":true} 20 | b:{} 21 | c:"$0:f:0:1:2:children:2:children:2:children:1:props:children:0:props:params" 22 | 12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 23 | e:null 24 | 17:I[32617,[],"IconMark"] 25 | 10:{"metadata":[["$","title","0",{"children":"OpenCut"}],["$","meta","1",{"name":"description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","link","2",{"rel":"manifest","href":"/opencut/manifest.json","crossOrigin":"$undefined"}],["$","meta","3",{"name":"robots","content":"index, follow"}],["$","meta","4",{"name":"msapplication-config","content":"/opencut/browserconfig.xml"}],["$","meta","5",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","6",{"name":"apple-mobile-web-app-title","content":"OpenCut"}],["$","meta","7",{"name":"apple-mobile-web-app-status-bar-style","content":"default"}],["$","meta","8",{"property":"og:title","content":"OpenCut"}],["$","meta","9",{"property":"og:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","10",{"property":"og:url","content":"https://opencut.app/"}],["$","meta","11",{"property":"og:site_name","content":"OpenCut"}],["$","meta","12",{"property":"og:locale","content":"en_US"}],["$","meta","13",{"property":"og:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","meta","14",{"property":"og:image:width","content":"1200"}],["$","meta","15",{"property":"og:image:height","content":"630"}],["$","meta","16",{"property":"og:image:alt","content":"OpenCut Wordmark"}],["$","meta","17",{"property":"og:type","content":"website"}],["$","meta","18",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","19",{"name":"twitter:creator","content":"@opencutapp"}],["$","meta","20",{"name":"twitter:title","content":"OpenCut"}],["$","meta","21",{"name":"twitter:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","22",{"name":"twitter:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","link","23",{"rel":"shortcut icon","href":"/opencut/favicon.ico"}],["$","link","24",{"rel":"icon","href":"/opencut/favicon.ico"}],["$","link","25",{"rel":"icon","href":"/opencut/icons/favicon-16x16.png","sizes":"16x16","type":"image/png"}],["$","link","26",{"rel":"icon","href":"/opencut/icons/favicon-32x32.png","sizes":"32x32","type":"image/png"}],["$","link","27",{"rel":"icon","href":"/opencut/icons/favicon-96x96.png","sizes":"96x96","type":"image/png"}],["$","link","28",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-57x57.png","sizes":"57x57","type":"image/png"}],["$","link","29",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-60x60.png","sizes":"60x60","type":"image/png"}],["$","link","30",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-72x72.png","sizes":"72x72","type":"image/png"}],["$","link","31",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-76x76.png","sizes":"76x76","type":"image/png"}],["$","link","32",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-114x114.png","sizes":"114x114","type":"image/png"}],["$","link","33",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-120x120.png","sizes":"120x120","type":"image/png"}],["$","link","34",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-144x144.png","sizes":"144x144","type":"image/png"}],["$","link","35",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-152x152.png","sizes":"152x152","type":"image/png"}],["$","link","36",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-180x180.png","sizes":"180x180","type":"image/png"}],["$","$L17","37",{}]],"error":null,"digest":"$undefined"} 26 | 15:"$10:metadata" 27 | -------------------------------------------------------------------------------- /opencut-ui/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/favicon.ico -------------------------------------------------------------------------------- /opencut-ui/ffmpeg/ffmpeg-core.wasm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/ffmpeg/ffmpeg-core.wasm -------------------------------------------------------------------------------- /opencut-ui/frame.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /opencut-ui/icons/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/android-icon-144x144.png -------------------------------------------------------------------------------- /opencut-ui/icons/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/android-icon-192x192.png -------------------------------------------------------------------------------- /opencut-ui/icons/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/android-icon-36x36.png -------------------------------------------------------------------------------- /opencut-ui/icons/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/android-icon-48x48.png -------------------------------------------------------------------------------- /opencut-ui/icons/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/android-icon-72x72.png -------------------------------------------------------------------------------- /opencut-ui/icons/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/android-icon-96x96.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-114x114.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-120x120.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-144x144.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-152x152.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-180x180.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-57x57.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-60x60.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-72x72.png -------------------------------------------------------------------------------- /opencut-ui/icons/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/apple-icon-76x76.png -------------------------------------------------------------------------------- /opencut-ui/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/favicon-16x16.png -------------------------------------------------------------------------------- /opencut-ui/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/favicon-32x32.png -------------------------------------------------------------------------------- /opencut-ui/icons/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/favicon-96x96.png -------------------------------------------------------------------------------- /opencut-ui/icons/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/ms-icon-144x144.png -------------------------------------------------------------------------------- /opencut-ui/icons/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/ms-icon-150x150.png -------------------------------------------------------------------------------- /opencut-ui/icons/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/ms-icon-310x310.png -------------------------------------------------------------------------------- /opencut-ui/icons/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/icons/ms-icon-70x70.png -------------------------------------------------------------------------------- /opencut-ui/index.txt: -------------------------------------------------------------------------------- 1 | 1:"$Sreact.fragment" 2 | 2:I[64960,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"ThemeProvider"] 3 | 3:I[12236,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Provider"] 4 | 4:I[94362,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"StorageProvider"] 5 | 5:I[53805,[],""] 6 | 6:I[57497,[],""] 7 | 7:I[39605,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Toaster"] 8 | 8:I[97917,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],""] 9 | a:I[94128,[],"OutletBoundary"] 10 | c:I[68777,[],"AsyncMetadataOutlet"] 11 | e:I[94128,[],"ViewportBoundary"] 12 | 10:I[94128,[],"MetadataBoundary"] 13 | 11:"$Sreact.suspense" 14 | 13:I[94127,[],""] 15 | :HL["/opencut/_next/static/css/e1856565ca9a0d8e.css","style"] 16 | :HL["/opencut/_next/static/css/173513df0e02305a.css","style"] 17 | 0:{"P":null,"b":"_tNMrmGbDKZy8pM7PcnEn","p":"/opencut","c":["",""],"i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/opencut/_next/static/css/e1856565ca9a0d8e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/opencut/_next/static/css/173513df0e02305a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"__className_ef9af1 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":["$","$L3",null,{"children":[["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L7",null,{}],["$","$L8",null,{"src":"https://cdn.databuddy.cc/databuddy.js","strategy":"afterInteractive","async":true,"data-client-id":"UP-Wcoy5arxFeK7oyjMMZ","data-disabled":false,"data-track-attributes":false,"data-track-errors":true,"data-track-outgoing-links":false,"data-track-web-vitals":false,"data-track-sessions":false}]]}]}]}]]}]]}],{"children":["__PAGE__",["$","$1","c",{"children":["$L9",null,["$","$La",null,{"children":["$Lb",["$","$Lc",null,{"promise":"$@d"}]]}]]}],{},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$Le",null,{"children":"$Lf"}],null],["$","$L10",null,{"children":["$","div",null,{"hidden":true,"children":["$","$11",null,{"fallback":null,"children":"$L12"}]}]}]]}],false]],"m":"$undefined","G":["$13",[]],"s":false,"S":true} 18 | 14:I[58690,["3340","static/chunks/8340eb7d-36e917f4d2acf872.js","3177","static/chunks/d07cf561-d9f6be47d1dd276f.js","841","static/chunks/841-d91b2a0a655e1147.js","8209","static/chunks/8209-c9c1d3957d29cbba.js","5077","static/chunks/5077-f71db13ac0ed08b1.js","7092","static/chunks/7092-151ed864b969b540.js","8974","static/chunks/app/page-ef6202e73fc95156.js"],"Header"] 19 | 15:I[57825,["3340","static/chunks/8340eb7d-36e917f4d2acf872.js","3177","static/chunks/d07cf561-d9f6be47d1dd276f.js","841","static/chunks/841-d91b2a0a655e1147.js","8209","static/chunks/8209-c9c1d3957d29cbba.js","5077","static/chunks/5077-f71db13ac0ed08b1.js","7092","static/chunks/7092-151ed864b969b540.js","8974","static/chunks/app/page-ef6202e73fc95156.js"],"Hero"] 20 | 16:I[91162,["3340","static/chunks/8340eb7d-36e917f4d2acf872.js","3177","static/chunks/d07cf561-d9f6be47d1dd276f.js","841","static/chunks/841-d91b2a0a655e1147.js","8209","static/chunks/8209-c9c1d3957d29cbba.js","5077","static/chunks/5077-f71db13ac0ed08b1.js","7092","static/chunks/7092-151ed864b969b540.js","8974","static/chunks/app/page-ef6202e73fc95156.js"],"Footer"] 21 | 9:["$","div",null,{"children":[["$","$L14",null,{}],["$","$L15",null,{}],["$","$L16",null,{}]]}] 22 | f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 23 | b:null 24 | 17:I[32617,[],"IconMark"] 25 | d:{"metadata":[["$","title","0",{"children":"OpenCut"}],["$","meta","1",{"name":"description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","link","2",{"rel":"manifest","href":"/opencut/manifest.json","crossOrigin":"$undefined"}],["$","meta","3",{"name":"robots","content":"index, follow"}],["$","meta","4",{"name":"msapplication-config","content":"/opencut/browserconfig.xml"}],["$","link","5",{"rel":"canonical","href":"https://opencut.app/"}],["$","meta","6",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","7",{"name":"apple-mobile-web-app-title","content":"OpenCut"}],["$","meta","8",{"name":"apple-mobile-web-app-status-bar-style","content":"default"}],["$","meta","9",{"property":"og:title","content":"OpenCut"}],["$","meta","10",{"property":"og:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","11",{"property":"og:url","content":"https://opencut.app/"}],["$","meta","12",{"property":"og:site_name","content":"OpenCut"}],["$","meta","13",{"property":"og:locale","content":"en_US"}],["$","meta","14",{"property":"og:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","meta","15",{"property":"og:image:width","content":"1200"}],["$","meta","16",{"property":"og:image:height","content":"630"}],["$","meta","17",{"property":"og:image:alt","content":"OpenCut Wordmark"}],["$","meta","18",{"property":"og:type","content":"website"}],["$","meta","19",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","20",{"name":"twitter:creator","content":"@opencutapp"}],["$","meta","21",{"name":"twitter:title","content":"OpenCut"}],["$","meta","22",{"name":"twitter:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","23",{"name":"twitter:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","link","24",{"rel":"shortcut icon","href":"/opencut/favicon.ico"}],["$","link","25",{"rel":"icon","href":"/opencut/favicon.ico"}],["$","link","26",{"rel":"icon","href":"/opencut/icons/favicon-16x16.png","sizes":"16x16","type":"image/png"}],["$","link","27",{"rel":"icon","href":"/opencut/icons/favicon-32x32.png","sizes":"32x32","type":"image/png"}],["$","link","28",{"rel":"icon","href":"/opencut/icons/favicon-96x96.png","sizes":"96x96","type":"image/png"}],["$","link","29",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-57x57.png","sizes":"57x57","type":"image/png"}],["$","link","30",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-60x60.png","sizes":"60x60","type":"image/png"}],["$","link","31",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-72x72.png","sizes":"72x72","type":"image/png"}],["$","link","32",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-76x76.png","sizes":"76x76","type":"image/png"}],["$","link","33",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-114x114.png","sizes":"114x114","type":"image/png"}],["$","link","34",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-120x120.png","sizes":"120x120","type":"image/png"}],["$","link","35",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-144x144.png","sizes":"144x144","type":"image/png"}],["$","link","36",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-152x152.png","sizes":"152x152","type":"image/png"}],["$","link","37",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-180x180.png","sizes":"180x180","type":"image/png"}],["$","$L17","38",{}]],"error":null,"digest":"$undefined"} 26 | 12:"$d:metadata" 27 | -------------------------------------------------------------------------------- /opencut-ui/landing-page-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/landing-page-dark.png -------------------------------------------------------------------------------- /opencut-ui/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/logo.png -------------------------------------------------------------------------------- /opencut-ui/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /opencut-ui/manifest.dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OpenCut", 3 | "description": "A simple but powerful video editor that gets the job done. In your browser.", 4 | "display": "standalone", 5 | "start_url": "/", 6 | "icons": [ 7 | { 8 | "src": "/icons/android-icon-36x36.png", 9 | "sizes": "36x36", 10 | "type": "image/png", 11 | "density": "0.75" 12 | }, 13 | { 14 | "src": "/icons/android-icon-48x48.png", 15 | "sizes": "48x48", 16 | "type": "image/png", 17 | "density": "1.0" 18 | }, 19 | { 20 | "src": "/icons/android-icon-72x72.png", 21 | "sizes": "72x72", 22 | "type": "image/png", 23 | "density": "1.5" 24 | }, 25 | { 26 | "src": "/icons/android-icon-96x96.png", 27 | "sizes": "96x96", 28 | "type": "image/png", 29 | "density": "2.0" 30 | }, 31 | { 32 | "src": "/icons/android-icon-144x144.png", 33 | "sizes": "144x144", 34 | "type": "image/png", 35 | "density": "3.0" 36 | }, 37 | { 38 | "src": "/icons/android-icon-192x192.png", 39 | "sizes": "192x192", 40 | "type": "image/png", 41 | "density": "4.0" 42 | } 43 | ] 44 | } -------------------------------------------------------------------------------- /opencut-ui/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "OpenCut", 3 | "description": "A simple but powerful video editor that gets the job done. In your browser.", 4 | "display": "standalone", 5 | "start_url": "/opencut/", 6 | "icons": [ 7 | { 8 | "src": "/opencut/icons/android-icon-36x36.png", 9 | "sizes": "36x36", 10 | "type": "image\/png", 11 | "density": "0.75" 12 | }, 13 | { 14 | "src": "/opencut/icons/android-icon-48x48.png", 15 | "sizes": "48x48", 16 | "type": "image\/png", 17 | "density": "1.0" 18 | }, 19 | { 20 | "src": "/opencut/icons/android-icon-72x72.png", 21 | "sizes": "72x72", 22 | "type": "image\/png", 23 | "density": "1.5" 24 | }, 25 | { 26 | "src": "/opencut/icons/android-icon-96x96.png", 27 | "sizes": "96x96", 28 | "type": "image\/png", 29 | "density": "2.0" 30 | }, 31 | { 32 | "src": "/opencut/icons/android-icon-144x144.png", 33 | "sizes": "144x144", 34 | "type": "image\/png", 35 | "density": "3.0" 36 | }, 37 | { 38 | "src": "/opencut/icons/android-icon-192x192.png", 39 | "sizes": "192x192", 40 | "type": "image\/png", 41 | "density": "4.0" 42 | } 43 | ] 44 | } 45 | -------------------------------------------------------------------------------- /opencut-ui/open-graph/default.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/open-graph/default.jpg -------------------------------------------------------------------------------- /opencut-ui/open-graph/roadmap.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/open-graph/roadmap.jpg -------------------------------------------------------------------------------- /opencut-ui/platform-guides/tiktok-blueprint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jtydhr88/ComfyUI-OpenCut/17d29937cef500ff85c920a0f48627c6ed9673eb/opencut-ui/platform-guides/tiktok-blueprint.png -------------------------------------------------------------------------------- /opencut-ui/projects/index.txt: -------------------------------------------------------------------------------- 1 | 1:"$Sreact.fragment" 2 | 2:I[64960,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"ThemeProvider"] 3 | 3:I[12236,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Provider"] 4 | 4:I[94362,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"StorageProvider"] 5 | 5:I[53805,[],""] 6 | 6:I[57497,[],""] 7 | 7:I[39605,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],"Toaster"] 8 | 8:I[97917,["841","static/chunks/841-d91b2a0a655e1147.js","4286","static/chunks/4286-667b9ce57654786d.js","5703","static/chunks/5703-cf0f5891b45543aa.js","8120","static/chunks/8120-431742d03dd3927b.js","485","static/chunks/485-dbda59b493b69f67.js","7177","static/chunks/app/layout-99afde99e0402a81.js"],""] 9 | 9:I[34340,[],"ClientPageRoot"] 10 | a:I[42438,["841","static/chunks/841-d91b2a0a655e1147.js","8209","static/chunks/8209-c9c1d3957d29cbba.js","4286","static/chunks/4286-667b9ce57654786d.js","485","static/chunks/485-dbda59b493b69f67.js","2697","static/chunks/2697-9a3d188465b229e1.js","893","static/chunks/app/projects/page-8cd1a8fa772c93c4.js"],"default"] 11 | d:I[94128,[],"OutletBoundary"] 12 | f:I[68777,[],"AsyncMetadataOutlet"] 13 | 11:I[94128,[],"ViewportBoundary"] 14 | 13:I[94128,[],"MetadataBoundary"] 15 | 14:"$Sreact.suspense" 16 | 16:I[94127,[],""] 17 | :HL["/opencut/_next/static/css/e1856565ca9a0d8e.css","style"] 18 | :HL["/opencut/_next/static/css/173513df0e02305a.css","style"] 19 | 0:{"P":null,"b":"_tNMrmGbDKZy8pM7PcnEn","p":"/opencut","c":["","projects",""],"i":false,"f":[[["",{"children":["projects",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],["",["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/opencut/_next/static/css/e1856565ca9a0d8e.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/opencut/_next/static/css/173513df0e02305a.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"__className_ef9af1 font-sans antialiased","children":["$","$L2",null,{"attribute":"class","defaultTheme":"dark","children":["$","$L3",null,{"children":[["$","$L4",null,{"children":["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}],["$","$L7",null,{}],["$","$L8",null,{"src":"https://cdn.databuddy.cc/databuddy.js","strategy":"afterInteractive","async":true,"data-client-id":"UP-Wcoy5arxFeK7oyjMMZ","data-disabled":false,"data-track-attributes":false,"data-track-errors":true,"data-track-outgoing-links":false,"data-track-web-vitals":false,"data-track-sessions":false}]]}]}]}]]}]]}],{"children":["projects",["$","$1","c",{"children":[null,["$","$L5",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L6",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":["__PAGE__",["$","$1","c",{"children":[["$","$L9",null,{"Component":"$a","searchParams":{},"params":{},"promises":["$@b","$@c"]}],null,["$","$Ld",null,{"children":["$Le",["$","$Lf",null,{"promise":"$@10"}]]}]]}],{},null,false]},null,false]},null,false],["$","$1","h",{"children":[null,[["$","$L11",null,{"children":"$L12"}],null],["$","$L13",null,{"children":["$","div",null,{"hidden":true,"children":["$","$14",null,{"fallback":null,"children":"$L15"}]}]}]]}],false]],"m":"$undefined","G":["$16",[]],"s":false,"S":true} 20 | b:{} 21 | c:"$0:f:0:1:2:children:2:children:1:props:children:0:props:params" 22 | 12:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] 23 | e:null 24 | 17:I[32617,[],"IconMark"] 25 | 10:{"metadata":[["$","title","0",{"children":"OpenCut"}],["$","meta","1",{"name":"description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","link","2",{"rel":"manifest","href":"/opencut/manifest.json","crossOrigin":"$undefined"}],["$","meta","3",{"name":"robots","content":"index, follow"}],["$","meta","4",{"name":"msapplication-config","content":"/opencut/browserconfig.xml"}],["$","meta","5",{"name":"mobile-web-app-capable","content":"yes"}],["$","meta","6",{"name":"apple-mobile-web-app-title","content":"OpenCut"}],["$","meta","7",{"name":"apple-mobile-web-app-status-bar-style","content":"default"}],["$","meta","8",{"property":"og:title","content":"OpenCut"}],["$","meta","9",{"property":"og:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","10",{"property":"og:url","content":"https://opencut.app/"}],["$","meta","11",{"property":"og:site_name","content":"OpenCut"}],["$","meta","12",{"property":"og:locale","content":"en_US"}],["$","meta","13",{"property":"og:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","meta","14",{"property":"og:image:width","content":"1200"}],["$","meta","15",{"property":"og:image:height","content":"630"}],["$","meta","16",{"property":"og:image:alt","content":"OpenCut Wordmark"}],["$","meta","17",{"property":"og:type","content":"website"}],["$","meta","18",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","19",{"name":"twitter:creator","content":"@opencutapp"}],["$","meta","20",{"name":"twitter:title","content":"OpenCut"}],["$","meta","21",{"name":"twitter:description","content":"A simple but powerful video editor that gets the job done. In your browser."}],["$","meta","22",{"name":"twitter:image","content":"https://opencut.app/open-graph/default.jpg"}],["$","link","23",{"rel":"shortcut icon","href":"/opencut/favicon.ico"}],["$","link","24",{"rel":"icon","href":"/opencut/favicon.ico"}],["$","link","25",{"rel":"icon","href":"/opencut/icons/favicon-16x16.png","sizes":"16x16","type":"image/png"}],["$","link","26",{"rel":"icon","href":"/opencut/icons/favicon-32x32.png","sizes":"32x32","type":"image/png"}],["$","link","27",{"rel":"icon","href":"/opencut/icons/favicon-96x96.png","sizes":"96x96","type":"image/png"}],["$","link","28",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-57x57.png","sizes":"57x57","type":"image/png"}],["$","link","29",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-60x60.png","sizes":"60x60","type":"image/png"}],["$","link","30",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-72x72.png","sizes":"72x72","type":"image/png"}],["$","link","31",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-76x76.png","sizes":"76x76","type":"image/png"}],["$","link","32",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-114x114.png","sizes":"114x114","type":"image/png"}],["$","link","33",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-120x120.png","sizes":"120x120","type":"image/png"}],["$","link","34",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-144x144.png","sizes":"144x144","type":"image/png"}],["$","link","35",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-152x152.png","sizes":"152x152","type":"image/png"}],["$","link","36",{"rel":"apple-touch-icon","href":"/opencut/icons/apple-icon-180x180.png","sizes":"180x180","type":"image/png"}],["$","$L17","37",{}]],"error":null,"digest":"$undefined"} 26 | 15:"$10:metadata" 27 | -------------------------------------------------------------------------------- /opencut-ui/robots.txt: -------------------------------------------------------------------------------- 1 | User-Agent: * 2 | Allow: / 3 | Disallow: /_next/ 4 | Disallow: /projects/ 5 | Disallow: /editor/ 6 | 7 | Sitemap: https://opencut.app/sitemap.xml 8 | -------------------------------------------------------------------------------- /opencut-ui/sitemap.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | https://opencut.app 5 | 2025-08-30T20:18:08.479Z 6 | weekly 7 | 1 8 | 9 | 10 | https://opencut.app/contributors 11 | 2025-08-30T20:18:08.479Z 12 | daily 13 | 0.5 14 | 15 | 16 | https://opencut.app/roadmap 17 | 2025-08-30T20:18:08.479Z 18 | weekly 19 | 1 20 | 21 | 22 | https://opencut.app/privacy 23 | 2025-08-30T20:18:08.479Z 24 | monthly 25 | 0.5 26 | 27 | 28 | https://opencut.app/terms 29 | 2025-08-30T20:18:08.479Z 30 | monthly 31 | 0.5 32 | 33 | 34 | https://opencut.app/why-not-capcut 35 | 2025-08-30T20:18:08.479Z 36 | yearly 37 | 1 38 | 39 | 40 | https://opencut.app/blog 41 | 2025-08-30T20:18:08.479Z 42 | weekly 43 | 1 44 | 45 | 46 | https://opencut.app/blog/webhooks 47 | 2025-08-03T12:23:02.123Z 48 | weekly 49 | 0.8 50 | 51 | 52 | https://opencut.app/blog/crafting-beautiful-designs 53 | 2025-02-15T23:00:00.000Z 54 | weekly 55 | 0.8 56 | 57 | 58 | https://opencut.app/blog/writing-engaging-copies 59 | 2025-02-15T23:00:00.000Z 60 | weekly 61 | 0.8 62 | 63 | 64 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "peerDependencies": { 3 | "primevue": "^4.2.5", 4 | "vue": "^3.5.13", 5 | "vue-i18n": "^9.14.3" 6 | }, 7 | "devDependencies": { 8 | "@vitejs/plugin-vue": "^5.2.3", 9 | "vite": "^6.3.5", 10 | "vite-plugin-vue-devtools": "^7.7.2", 11 | "@comfyorg/comfyui-frontend-types": "^1.25.0" 12 | }, 13 | "scripts": { 14 | "build": "vite build" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "ComfyUI-OpenCut" 3 | description = "ComfyUI-OpenCut Frontend Vue Basic is a ComfyUI plugin that integrated OpenCut into ComfyUI" 4 | version = "0.2.0" 5 | license = {file = "LICENSE"} 6 | dependencies = [] 7 | 8 | [project.urls] 9 | Repository = "https://github.com/jtydhr88/ComfyUI-OpenCut" 10 | # Used by Comfy Registry https://comfyregistry.org 11 | [tool.comfy] 12 | PublisherId = "jtydhr88" 13 | DisplayName = "ComfyUI OpenCut" 14 | Icon = "" 15 | includes = ['js'] -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 72 | 73 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import {app} from "../../../scripts/app.js"; 2 | import App from "@/App.vue"; 3 | 4 | const {ComfyButton} = window.comfyAPI.button 5 | 6 | 7 | app.registerExtension({ 8 | name: 'ComfyUI.OpenCut.TopMenu', 9 | setup() { 10 | function openOpenCut() { 11 | app.extensionManager?.dialog.showExtensionDialog({ 12 | key: "global-opencut", 13 | title: "ComfyUI OpenCut", 14 | component: App, 15 | dialogComponentProps: { 16 | style: "width: 80vw; height: 80vh;", 17 | maximizable: !0 18 | } 19 | }); 20 | } 21 | 22 | app.menu?.settingsGroup.append( 23 | new ComfyButton({ 24 | icon: 'video', 25 | tooltip: 'comfyui-opencut', 26 | content: 'OpenCut', 27 | action: openOpenCut, 28 | }), 29 | ) 30 | }, 31 | }) -------------------------------------------------------------------------------- /vite.config.mts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath, URL } from 'node:url' 2 | import { defineConfig } from 'vite' 3 | import vue from '@vitejs/plugin-vue' 4 | import vueDevTools from 'vite-plugin-vue-devtools' 5 | 6 | export default defineConfig({ 7 | plugins: [ 8 | vue(), 9 | vueDevTools() 10 | ], 11 | resolve: { 12 | alias: { 13 | '@': fileURLToPath(new URL('./src', import.meta.url)) 14 | }, 15 | }, 16 | build: { 17 | lib: { 18 | entry: './src/main.js', 19 | formats: ['es'], 20 | fileName: 'main' 21 | }, 22 | rollupOptions: { 23 | external: [ 24 | '../../../scripts/app.js', 25 | '../../../scripts/api.js', 26 | '../../../scripts/domWidget.js', 27 | '../../../scripts/utils.js', 28 | 'vue', 29 | 'vue-i18n', 30 | /^primevue\/?.*/, 31 | /^@primevue\/themes\/?.*/, 32 | ], 33 | output: { 34 | dir: 'js', 35 | assetFileNames: 'assets/[name].[ext]', 36 | entryFileNames: 'main.js' 37 | } 38 | }, 39 | outDir: 'js', 40 | sourcemap: false, 41 | assetsInlineLimit: 0, 42 | cssCodeSplit: false 43 | } 44 | }) --------------------------------------------------------------------------------