+
## Creating a stack
@@ -24,7 +24,7 @@ Sencho creates a new directory inside `COMPOSE_DIR` with a blank `compose.yaml`
If you have a `docker run` command handy (from a README, a forum post, or your shell history), Sencho can turn it into a ready-to-deploy `compose.yaml` without hand translation.
-Open the **Create New Stack** dialog and switch to the **From Docker Run** tab.
+Open the **New stack** dialog and switch to the **From Docker Run** tab.
diff --git a/e2e/git-sources.spec.ts b/e2e/git-sources.spec.ts
index c6a9a29d..cf26d2fd 100644
--- a/e2e/git-sources.spec.ts
+++ b/e2e/git-sources.spec.ts
@@ -210,7 +210,7 @@ async function deleteCreateFromGitStack(page: Page) {
async function openCreateStackDialog(page: Page) {
await page.getByRole('button', { name: 'Create Stack' }).click();
- await expect(page.getByRole('dialog').getByText('Create New Stack')).toBeVisible({ timeout: 5_000 });
+ await expect(page.getByRole('dialog', { name: 'New stack' })).toBeVisible({ timeout: 5_000 });
}
test.describe('Create stack from Git', () => {
diff --git a/frontend/src/components/EditorLayout/CreateStackDialog.tsx b/frontend/src/components/EditorLayout/CreateStackDialog.tsx
index 5ab200ee..f20237a4 100644
--- a/frontend/src/components/EditorLayout/CreateStackDialog.tsx
+++ b/frontend/src/components/EditorLayout/CreateStackDialog.tsx
@@ -1,15 +1,6 @@
-import { useState } from 'react';
-import { Plus, GitBranch, FileCode2, Loader2 } from 'lucide-react';
-import {
- Dialog,
- DialogContent,
- DialogHeader,
- DialogTitle,
- DialogDescription,
- DialogFooter,
-} from '../ui/dialog';
-import { Tabs, TabsList, TabsTrigger, TabsHighlight, TabsHighlightItem } from '../ui/tabs';
-import { springs } from '@/lib/motion';
+import { useRef, useState, type KeyboardEvent } from 'react';
+import { Plus, GitBranch, FileCode2, Loader2, type LucideIcon } from 'lucide-react';
+import { Modal, ModalHeader, ModalBody, ModalFooter } from '../ui/modal';
import { Button } from '../ui/button';
import { Input } from '../ui/input';
import { Label } from '../ui/label';
@@ -18,6 +9,7 @@ import { Checkbox } from '../ui/checkbox';
import { GitSourceFields, type ApplyMode } from '../stack/GitSourceFields';
import { apiFetch } from '@/lib/api';
import { toast } from '@/components/ui/toast-store';
+import { cn } from '@/lib/utils';
export interface CreateStackDialogProps {
open: boolean;
@@ -26,8 +18,19 @@ export interface CreateStackDialogProps {
onStacksChanged: () => void | Promise