diff --git a/frontend/apps/artcraft-webapp/src/components/prompt-box/PromptBox.tsx b/frontend/apps/artcraft-webapp/src/components/prompt-box/PromptBox.tsx index 81f87671a1..c0cac00b4c 100644 --- a/frontend/apps/artcraft-webapp/src/components/prompt-box/PromptBox.tsx +++ b/frontend/apps/artcraft-webapp/src/components/prompt-box/PromptBox.tsx @@ -23,6 +23,11 @@ import { MentionTextarea } from "./MentionTextarea"; import { getMentionColor, buildMentionColorMap } from "./mention-colors"; import type { RefImage, MentionItem } from "./types"; import { useEnterToGenerateStore } from "../../lib/enter-to-generate-store"; +import { + PromptFullscreenButton, + PromptFullscreenModal, + useFullscreenPrompt, +} from "./PromptFullscreen"; // ── Props ─────────────────────────────────────────────────────────────── @@ -107,6 +112,8 @@ export const PromptBox = forwardRef( const [isFocused, setIsFocused] = useState(false); const [isExpanded, setIsExpanded] = useState(false); const [showImagePrompts, setShowImagePrompts] = useState(false); + const { isFullscreen, openFullscreen, closeFullscreen } = + useFullscreenPrompt(); const EXPANDED_HEIGHT = "clamp(120px, calc(100vh - 700px), 500px)"; @@ -386,7 +393,7 @@ export const PromptBox = forwardRef( mentionItems={mentionItems} placeholder={placeholder} className={twMerge( - "promptbox-scrollbar min-h-[2.5em] w-full text-base-fg placeholder-base-fg/60", + "promptbox-scrollbar min-h-[2.5em] w-full pr-8 text-base-fg placeholder-base-fg/60", isExpanded ? "max-h-[500px]" : "max-h-[5.5em]", )} colorMap={mentionColorMap} @@ -411,7 +418,7 @@ export const PromptBox = forwardRef( ref={highlightRef} aria-hidden className={twMerge( - "pointer-events-none absolute inset-0 overflow-y-auto whitespace-pre-wrap break-words text-sm text-base-fg", + "pointer-events-none absolute inset-0 overflow-y-auto whitespace-pre-wrap break-words pr-8 text-sm text-base-fg", isExpanded ? "max-h-[500px]" : "max-h-[5.5em]", )} > @@ -425,7 +432,7 @@ export const PromptBox = forwardRef( autoFocus placeholder={placeholder} className={twMerge( - "promptbox-scrollbar min-h-[2.5em] w-full flex-1 resize-y overflow-y-auto bg-transparent text-md text-base-fg placeholder-base-fg/60 focus:outline-none", + "promptbox-scrollbar min-h-[2.5em] w-full flex-1 resize-y overflow-y-auto bg-transparent pr-8 text-md text-base-fg placeholder-base-fg/60 focus:outline-none", isExpanded ? "max-h-[500px]" : "max-h-[5.5em]", hasMentionItems && "text-transparent caret-white", )} @@ -504,6 +511,7 @@ export const PromptBox = forwardRef( )} )} + @@ -547,6 +555,37 @@ export const PromptBox = forwardRef( + + {hasMentionItems && mentionItems ? ( + { + if ( + e.key === "Enter" && + enterToGenerate && + !e.shiftKey && + !e.metaKey + ) { + e.preventDefault(); + onSubmit(); + } + }} + /> + ) : ( +