Spaces:
Running
Running
fix responsive issue
Browse files
app/layout.tsx
CHANGED
|
@@ -52,7 +52,6 @@ export const metadata: Metadata = {
|
|
| 52 |
title: "DeepSite",
|
| 53 |
statusBarStyle: "black-translucent",
|
| 54 |
},
|
| 55 |
-
themeColor: "#000000",
|
| 56 |
icons: {
|
| 57 |
icon: "/logo.svg",
|
| 58 |
shortcut: "/logo.svg",
|
|
@@ -91,7 +90,7 @@ export default async function RootLayout({
|
|
| 91 |
return (
|
| 92 |
<html lang="en">
|
| 93 |
<body
|
| 94 |
-
className={`${inter.variable} ${ptSans.variable} antialiased bg-black dark`}
|
| 95 |
>
|
| 96 |
<Toaster richColors position="bottom-center" />
|
| 97 |
<TanstackProvider>
|
|
|
|
| 52 |
title: "DeepSite",
|
| 53 |
statusBarStyle: "black-translucent",
|
| 54 |
},
|
|
|
|
| 55 |
icons: {
|
| 56 |
icon: "/logo.svg",
|
| 57 |
shortcut: "/logo.svg",
|
|
|
|
| 90 |
return (
|
| 91 |
<html lang="en">
|
| 92 |
<body
|
| 93 |
+
className={`${inter.variable} ${ptSans.variable} antialiased bg-black dark h-[100dvh] overflow-hidden`}
|
| 94 |
>
|
| 95 |
<Toaster richColors position="bottom-center" />
|
| 96 |
<TanstackProvider>
|
components/editor/ask-ai/index.tsx
CHANGED
|
@@ -263,7 +263,7 @@ export function AskAI({
|
|
| 263 |
|
| 264 |
return (
|
| 265 |
<>
|
| 266 |
-
<div className="bg-neutral-800 border border-neutral-700 rounded-2xl ring-[4px] focus-within:ring-neutral-500/30 focus-within:border-neutral-600 ring-transparent z-10
|
| 267 |
{think && (
|
| 268 |
<div className="w-full border-b border-neutral-700 relative overflow-hidden">
|
| 269 |
<header
|
|
|
|
| 263 |
|
| 264 |
return (
|
| 265 |
<>
|
| 266 |
+
<div className="bg-neutral-800 border border-neutral-700 rounded-2xl ring-[4px] focus-within:ring-neutral-500/30 focus-within:border-neutral-600 ring-transparent z-10 w-full group">
|
| 267 |
{think && (
|
| 268 |
<div className="w-full border-b border-neutral-700 relative overflow-hidden">
|
| 269 |
<header
|
components/editor/deploy-button/index.tsx
CHANGED
|
@@ -72,7 +72,7 @@ export function DeployButton({
|
|
| 72 |
Save your Project
|
| 73 |
</Button>
|
| 74 |
<Button variant="sky" size="sm" className="lg:hidden">
|
| 75 |
-
|
| 76 |
</Button>
|
| 77 |
</div>
|
| 78 |
</PopoverTrigger>
|
|
@@ -97,11 +97,11 @@ export function DeployButton({
|
|
| 97 |
</div>
|
| 98 |
</div>
|
| 99 |
<p className="text-xl font-semibold text-neutral-950">
|
| 100 |
-
Deploy
|
| 101 |
</p>
|
| 102 |
<p className="text-sm text-neutral-500 mt-1.5">
|
| 103 |
-
Deploy your project to a
|
| 104 |
-
share your project with the world.
|
| 105 |
</p>
|
| 106 |
</header>
|
| 107 |
<main className="space-y-4 p-6">
|
|
@@ -129,7 +129,7 @@ export function DeployButton({
|
|
| 129 |
className="relative w-full"
|
| 130 |
disabled={loading}
|
| 131 |
>
|
| 132 |
-
Deploy <Rocket className="size-4" />
|
| 133 |
{loading && (
|
| 134 |
<Loading className="ml-2 size-4 animate-spin" />
|
| 135 |
)}
|
|
|
|
| 72 |
Save your Project
|
| 73 |
</Button>
|
| 74 |
<Button variant="sky" size="sm" className="lg:hidden">
|
| 75 |
+
Deploy
|
| 76 |
</Button>
|
| 77 |
</div>
|
| 78 |
</PopoverTrigger>
|
|
|
|
| 97 |
</div>
|
| 98 |
</div>
|
| 99 |
<p className="text-xl font-semibold text-neutral-950">
|
| 100 |
+
Deploy as Space!
|
| 101 |
</p>
|
| 102 |
<p className="text-sm text-neutral-500 mt-1.5">
|
| 103 |
+
Save and Deploy your project to a Space on the Hub. Spaces are
|
| 104 |
+
a way to share your project with the world.
|
| 105 |
</p>
|
| 106 |
</header>
|
| 107 |
<main className="space-y-4 p-6">
|
|
|
|
| 129 |
className="relative w-full"
|
| 130 |
disabled={loading}
|
| 131 |
>
|
| 132 |
+
Deploy Space <Rocket className="size-4" />
|
| 133 |
{loading && (
|
| 134 |
<Loading className="ml-2 size-4 animate-spin" />
|
| 135 |
)}
|
components/editor/header/index.tsx
CHANGED
|
@@ -30,7 +30,7 @@ export function Header({
|
|
| 30 |
children?: ReactNode;
|
| 31 |
}) {
|
| 32 |
return (
|
| 33 |
-
<header className="border-b bg-slate-200 border-slate-300 dark:bg-neutral-950 dark:border-neutral-800 px-3 lg:px-6 py-2 grid grid-cols-3
|
| 34 |
<div className="flex items-center justify-start gap-3">
|
| 35 |
<h1 className="text-neutral-900 dark:text-white text-lg lg:text-xl font-bold flex items-center justify-start">
|
| 36 |
<Image
|
|
|
|
| 30 |
children?: ReactNode;
|
| 31 |
}) {
|
| 32 |
return (
|
| 33 |
+
<header className="border-b bg-slate-200 border-slate-300 dark:bg-neutral-950 dark:border-neutral-800 px-3 lg:px-6 py-2 grid grid-cols-3 z-20">
|
| 34 |
<div className="flex items-center justify-start gap-3">
|
| 35 |
<h1 className="text-neutral-900 dark:text-white text-lg lg:text-xl font-bold flex items-center justify-start">
|
| 36 |
<Image
|
components/editor/index.tsx
CHANGED
|
@@ -166,7 +166,7 @@ export const AppEditor = ({ project }: { project?: Project | null }) => {
|
|
| 166 |
}, [currentTab]);
|
| 167 |
|
| 168 |
return (
|
| 169 |
-
<section className="h-
|
| 170 |
<Header tab={currentTab} onNewTab={setCurrentTab}>
|
| 171 |
{project?._id ? (
|
| 172 |
<SaveButton html={html} prompts={prompts} />
|
|
@@ -174,10 +174,13 @@ export const AppEditor = ({ project }: { project?: Project | null }) => {
|
|
| 174 |
<DeployButton html={html} prompts={prompts} />
|
| 175 |
)}
|
| 176 |
</Header>
|
| 177 |
-
<main className="bg-neutral-950 flex-1 max-lg:flex-col flex w-full">
|
| 178 |
{currentTab === "chat" && (
|
| 179 |
<>
|
| 180 |
-
<div
|
|
|
|
|
|
|
|
|
|
| 181 |
<CopyIcon
|
| 182 |
className="size-4 absolute top-2 right-5 text-neutral-500 hover:text-neutral-300 z-2 cursor-pointer"
|
| 183 |
onClick={() => {
|
|
@@ -189,7 +192,7 @@ export const AppEditor = ({ project }: { project?: Project | null }) => {
|
|
| 189 |
language="html"
|
| 190 |
theme="vs-dark"
|
| 191 |
className={classNames(
|
| 192 |
-
"h-[calc(
|
| 193 |
{
|
| 194 |
"pointer-events-none": isAiWorking,
|
| 195 |
}
|
|
|
|
| 166 |
}, [currentTab]);
|
| 167 |
|
| 168 |
return (
|
| 169 |
+
<section className="h-[100dvh] bg-neutral-950 flex flex-col">
|
| 170 |
<Header tab={currentTab} onNewTab={setCurrentTab}>
|
| 171 |
{project?._id ? (
|
| 172 |
<SaveButton html={html} prompts={prompts} />
|
|
|
|
| 174 |
<DeployButton html={html} prompts={prompts} />
|
| 175 |
)}
|
| 176 |
</Header>
|
| 177 |
+
<main className="bg-neutral-950 flex-1 max-lg:flex-col flex w-full max-lg:h-[calc(100%-82px)] relative">
|
| 178 |
{currentTab === "chat" && (
|
| 179 |
<>
|
| 180 |
+
<div
|
| 181 |
+
ref={editor}
|
| 182 |
+
className="bg-neutral-900 relative flex-1 overflow-hidden h-full flex flex-col gap-2 pb-3 px-3"
|
| 183 |
+
>
|
| 184 |
<CopyIcon
|
| 185 |
className="size-4 absolute top-2 right-5 text-neutral-500 hover:text-neutral-300 z-2 cursor-pointer"
|
| 186 |
onClick={() => {
|
|
|
|
| 192 |
language="html"
|
| 193 |
theme="vs-dark"
|
| 194 |
className={classNames(
|
| 195 |
+
"max-lg:h-[calc(100%-82px)] h-full bg-neutral-900 transition-all duration-200 absolute left-0 top-0",
|
| 196 |
{
|
| 197 |
"pointer-events-none": isAiWorking,
|
| 198 |
}
|
components/editor/preview/index.tsx
CHANGED
|
@@ -29,6 +29,8 @@ export const Preview = ({
|
|
| 29 |
"w-full border-l border-gray-900 h-full relative z-0 flex items-center justify-center",
|
| 30 |
{
|
| 31 |
"lg:p-4": currentTab !== "preview",
|
|
|
|
|
|
|
| 32 |
}
|
| 33 |
)}
|
| 34 |
onClick={(e) => {
|
|
@@ -52,7 +54,7 @@ export const Preview = ({
|
|
| 52 |
ref={iframeRef}
|
| 53 |
title="output"
|
| 54 |
className={classNames(
|
| 55 |
-
"w-full select-none transition-all duration-200 bg-black
|
| 56 |
{
|
| 57 |
"pointer-events-none": isResizing || isAiWorking,
|
| 58 |
"lg:max-w-md lg:mx-auto lg:h-[80dvh] lg:!rounded-[42px] lg:border-[8px] lg:border-neutral-700 lg:shadow-2xl":
|
|
|
|
| 29 |
"w-full border-l border-gray-900 h-full relative z-0 flex items-center justify-center",
|
| 30 |
{
|
| 31 |
"lg:p-4": currentTab !== "preview",
|
| 32 |
+
"max-lg:h-0": currentTab === "chat",
|
| 33 |
+
"max-lg:h-full": currentTab === "preview",
|
| 34 |
}
|
| 35 |
)}
|
| 36 |
onClick={(e) => {
|
|
|
|
| 54 |
ref={iframeRef}
|
| 55 |
title="output"
|
| 56 |
className={classNames(
|
| 57 |
+
"w-full select-none transition-all duration-200 bg-black",
|
| 58 |
{
|
| 59 |
"pointer-events-none": isResizing || isAiWorking,
|
| 60 |
"lg:max-w-md lg:mx-auto lg:h-[80dvh] lg:!rounded-[42px] lg:border-[8px] lg:border-neutral-700 lg:shadow-2xl":
|
components/user-menu/index.tsx
CHANGED
|
@@ -20,7 +20,7 @@ export const UserMenu = ({ className }: { className?: string }) => {
|
|
| 20 |
<DropdownMenu>
|
| 21 |
<DropdownMenuTrigger asChild>
|
| 22 |
<Button variant="ghost" className={`${className}`}>
|
| 23 |
-
<Avatar className="size-
|
| 24 |
<AvatarImage src={user?.avatarUrl} alt="@shadcn" />
|
| 25 |
<AvatarFallback className="text-sm">
|
| 26 |
{user?.fullname?.charAt(0).toUpperCase() ?? "E"}
|
|
|
|
| 20 |
<DropdownMenu>
|
| 21 |
<DropdownMenuTrigger asChild>
|
| 22 |
<Button variant="ghost" className={`${className}`}>
|
| 23 |
+
<Avatar className="size-8 mr-1">
|
| 24 |
<AvatarImage src={user?.avatarUrl} alt="@shadcn" />
|
| 25 |
<AvatarFallback className="text-sm">
|
| 26 |
{user?.fullname?.charAt(0).toUpperCase() ?? "E"}
|