Feat/landing page UI changes (#2417)

* feat(landing): replace features section with GSAP scroll-driven showcase

Add LandingFeaturesScroll, a pinned scroll section that walks through four
product pillars with interactive mockups: agent harness, worktree isolation,
review routing, and the local daemon.
On desktop, the mockup starts centered and shifts right as copy fades in,
then snaps through each feature with crossfade transitions. Mobile falls
back to a stacked layout with scaled mockups.
Swap LandingFeatures for LandingFeaturesScroll on the landing page and add
gsap as a dependency for ScrollTrigger animations.

* fix(landing): polish spacing and accent styling across sections

Tighten vertical rhythm on the landing page and align a hero CTA with the
theme accent color.

- Increase agents bar bottom padding and drop the trailing period in its subtitle
- changed bg color for the hero mockup "Spawn Orchestrator" button
- Add bottom padding to the social proof description
This commit is contained in:
Just_Anniee 2026-07-05 02:38:10 +05:30 committed by GitHub
parent 08e16c5431
commit 4eda5e62dc
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 4695 additions and 4412 deletions

View File

@ -70,6 +70,7 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"electron-updater": "^6.8.9",
"gsap": "^3.15.0",
"lucide-react": "^1.17.0",
"openapi-fetch": "^0.17.0",
"posthog-js": "^1.390.2",

File diff suppressed because it is too large Load Diff

View File

@ -1,20 +1,14 @@
# pnpm settings (pnpm ≥10 reads these from pnpm-workspace.yaml, not package.json).
# Flat npm-style node_modules: electron-forge's Vite dep-optimizer emits chunks
# that re-import sub-deps (@tanstack/query-core, @radix-ui/primitive, …) by bare
# specifier, which only resolve in a hoisted layout. .npmrc's node-linker=hoisted
# is ignored by pnpm ≥10, so it must live here.
nodeLinker: hoisted
# Electron's postinstall downloads the runtime binary into node_modules/electron/dist;
# without this approval pnpm skips it and `electron-forge start` cannot launch.
allowBuilds:
electron: true
electron-winstaller: true
# @electron/rebuild (via electron-forge) depends on @electron/node-gyp as a git
# URL; pnpm 11's blockExoticSubdeps default rejects it on every re-resolution,
# which would make any `pnpm add` fail in this project.
blockExoticSubdeps: false
# pnpm 11 defaults to a 24h supply-chain quarantine for fresh releases, which
# kept rejecting routine transitive bumps (electron-to-chromium, semver, …) and
# blocked every install. .npmrc's minimum-release-age=0 is ignored by pnpm ≥10,
# so the opt-out has to live here.
minimumReleaseAge: 0
ignoredBuiltDependencies:
- core-js
- electron
- electron-winstaller

View File

@ -2,10 +2,11 @@ import { LandingNav } from "../../components/LandingNav";
import { LandingHero } from "../../components/LandingHero";
import { LandingAgentsBar } from "../../components/LandingAgentsBar";
import { LandingVideo } from "../../components/LandingVideo";
import { LandingFeatures } from "../../components/LandingFeatures";
// import { LandingFeatures } from "../../components/LandingFeatures";
import { LandingSocialProof } from "../../components/LandingSocialProof";
import { LandingFooter } from "../../components/LandingFooter";
import { ScrollRevealProvider } from "../../components/ScrollRevealProvider";
import { LandingFeaturesScroll } from "@/components/LandingFeaturesScroll";
export default function LandingPage() {
return (
@ -15,7 +16,8 @@ export default function LandingPage() {
<LandingHero />
<LandingAgentsBar />
<LandingVideo />
<LandingFeatures />
{/* <LandingFeatures /> */}
<LandingFeaturesScroll />
<LandingSocialProof />
<LandingFooter />
</div>

View File

@ -33,14 +33,14 @@ export function LandingAgentsBar() {
data-testid="agents-marquee"
className="landing-reveal relative overflow-hidden border-y border-white/[0.04] bg-[color:var(--bg)]"
>
<div className="container-page pt-14 pb-10">
<div className="container-page pt-14 pb-15">
<div className="mx-auto max-w-[1180px]">
<div className="flex flex-wrap items-end justify-between gap-6">
<div>
<span className="landing-eyebrow">Coverage</span>
<h2 className="mt-4 max-w-[720px] text-[28px] font-semibold leading-[1.1] text-[color:var(--fg)] sm:text-[40px]">
Use the agent you already trust.
<span className="block text-[color:var(--fg-muted)]">AO keeps the workflow the same.</span>
<span className="block text-[color:var(--fg-muted)]">AO keeps the workflow the same</span>
</h2>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +1,4 @@
// NOT IN USE
const LOGO_URL = "/ao-logo-transparent.png";
const columns = [

View File

@ -458,7 +458,7 @@ function HeroDashboardMockup() {
<button
type="button"
onClick={() => setActiveCard("Spawn Orchestrator")}
className="hero-pressable inline-flex h-[34px] items-center gap-1.5 rounded-[7px] bg-[#9faccc] px-[15px] text-[13px] font-semibold leading-none text-[#11140c] hover:brightness-110"
className="hero-pressable inline-flex h-[34px] items-center gap-1.5 rounded-[7px] bg-[color:var(--accent)] px-[15px] text-[13px] font-semibold leading-none text-[#11140c] hover:brightness-110"
>
<NetworkIcon className="h-3.5 w-3.5" />
Spawn Orchestrator

View File

@ -173,7 +173,7 @@ export function LandingSocialProof() {
</h2>
</div>
<div className="lg:col-span-5">
<p className="landing-body-compact">
<p className="landing-body-compact pb-17">
Real posts from builders, researchers, and early users - pulled straight from X.
</p>
</div>

View File

@ -2446,7 +2446,6 @@
"resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-4.0.4.tgz",
"integrity": "sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==",
"license": "MIT",
"peer": true,
"dependencies": {
"@types/unist": "*"
}
@ -2479,7 +2478,6 @@
"integrity": "sha512-esJiCAnl0kfpNdE69f3So4WJUXy95dLZydX0KwK46riIHDzHM7O9Vtf9xCHW0PXIqvgqNrswl522kA/5yx+F4w==",
"devOptional": true,
"license": "MIT",
"peer": true,
"dependencies": {
"csstype": "^3.2.2"
}
@ -2490,7 +2488,6 @@
"integrity": "sha512-jp2L/eY6fn+KgVVQAOqYItbF0VY/YApe5Mz2F0aykSO8gx31bYCZyvSeYxCHKvzHG5eZjc+zyaS5BrBWya2+kQ==",
"devOptional": true,
"license": "MIT",
"peer": true,
"peerDependencies": {
"@types/react": "^19.2.0"
}
@ -2512,7 +2509,6 @@
"resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
"integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"license": "MIT",
"peer": true,
"bin": {
"acorn": "bin/acorn"
},
@ -3021,7 +3017,6 @@
"resolved": "https://registry.npmjs.org/fumadocs-core/-/fumadocs-core-15.8.5.tgz",
"integrity": "sha512-hyJtKGuB2J/5y7tDfI1EnGMKlNbSXM5N5cpwvgCY0DcBJwFMDG/GpSpaVRzh3aWy67pAYDZFIwdtbKXBa/q5bg==",
"license": "MIT",
"peer": true,
"dependencies": {
"@formatjs/intl-localematcher": "^0.6.2",
"@orama/orama": "^3.1.14",
@ -3222,8 +3217,7 @@
"version": "3.15.0",
"resolved": "https://registry.npmjs.org/gsap/-/gsap-3.15.0.tgz",
"integrity": "sha512-dMW4CWBTUK1AEEDeZc1g4xpPGIrSf9fJF960qbTZmN/QwZIWY5wgliS6JWl9/25fpTGJrMRtSjGtOmPnfjZB+A==",
"license": "Standard 'no charge' license: https://gsap.com/standard-license.",
"peer": true
"license": "Standard 'no charge' license: https://gsap.com/standard-license."
},
"node_modules/hast-util-to-estree": {
"version": "3.1.3",
@ -4796,7 +4790,6 @@
"resolved": "https://registry.npmjs.org/next/-/next-15.5.19.tgz",
"integrity": "sha512-xNOW6tYshGX1/Oi3F8uuk4gpDeWsSUE/1Z0G5uUMekIxaQ0xc03UXd9II0VQHYMWviMeA0OHpJFAKsHf8bTYVg==",
"license": "MIT",
"peer": true,
"dependencies": {
"@next/env": "15.5.19",
"@swc/helpers": "0.5.15",
@ -4957,7 +4950,6 @@
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=12"
},
@ -5022,7 +5014,6 @@
"resolved": "https://registry.npmjs.org/react/-/react-19.2.7.tgz",
"integrity": "sha512-HNe9WslTbXmFK8o8cmwgAeJFSBvt1bPdHCVKtaaV+WlAN36mpT4hcRpwbf3fY56ar2oIXzsBpOAiIRHAdY0OlQ==",
"license": "MIT",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
@ -5032,7 +5023,6 @@
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.7.tgz",
"integrity": "sha512-t0BRVXvbiE/o20Hfw669rLbMCDWtYZLvmJigy2f0MxsXF+71pxhR3xOkspmsO8h3ZlNzyibAmtCa3l4lYKk6gQ==",
"license": "MIT",
"peer": true,
"dependencies": {
"scheduler": "^0.27.0"
},
@ -5527,8 +5517,7 @@
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-4.3.0.tgz",
"integrity": "sha512-y6nxMGB1nMW9R6k96e5gdIFzcfL/gTJRNaqGes1YvkLnPVXzWgbqFF2yLC0T8G774n24cx3Pe8XrKoniCOAH+Q==",
"devOptional": true,
"license": "MIT",
"peer": true
"license": "MIT"
},
"node_modules/tapable": {
"version": "2.3.3",

View File

@ -8,204 +8,209 @@
// You should NOT make any changes in this file as it will be overwritten.
// Additionally, you should also exclude this file from your linter and/or formatter to prevent it from being checked or modified.
import { Route as rootRouteImport } from "./routes/__root";
import { Route as ShellRouteImport } from "./routes/_shell";
import { Route as ShellIndexRouteImport } from "./routes/_shell.index";
import { Route as ShellSettingsRouteImport } from "./routes/_shell.settings";
import { Route as ShellPrsRouteImport } from "./routes/_shell.prs";
import { Route as ShellSessionsSessionIdRouteImport } from "./routes/_shell.sessions.$sessionId";
import { Route as ShellProjectsProjectIdRouteImport } from "./routes/_shell.projects.$projectId";
import { Route as ShellProjectsProjectIdSettingsRouteImport } from "./routes/_shell.projects.$projectId_.settings";
import { Route as ShellProjectsProjectIdSessionsSessionIdRouteImport } from "./routes/_shell.projects.$projectId_.sessions.$sessionId";
import { Route as rootRouteImport } from './routes/__root'
import { Route as ShellRouteImport } from './routes/_shell'
import { Route as ShellIndexRouteImport } from './routes/_shell.index'
import { Route as ShellSettingsRouteImport } from './routes/_shell.settings'
import { Route as ShellPrsRouteImport } from './routes/_shell.prs'
import { Route as ShellSessionsSessionIdRouteImport } from './routes/_shell.sessions.$sessionId'
import { Route as ShellProjectsProjectIdRouteImport } from './routes/_shell.projects.$projectId'
import { Route as ShellProjectsProjectIdSettingsRouteImport } from './routes/_shell.projects.$projectId_.settings'
import { Route as ShellProjectsProjectIdSessionsSessionIdRouteImport } from './routes/_shell.projects.$projectId_.sessions.$sessionId'
const ShellRoute = ShellRouteImport.update({
id: "/_shell",
getParentRoute: () => rootRouteImport,
} as any);
id: '/_shell',
getParentRoute: () => rootRouteImport,
} as any)
const ShellIndexRoute = ShellIndexRouteImport.update({
id: "/",
path: "/",
getParentRoute: () => ShellRoute,
} as any);
id: '/',
path: '/',
getParentRoute: () => ShellRoute,
} as any)
const ShellSettingsRoute = ShellSettingsRouteImport.update({
id: "/settings",
path: "/settings",
getParentRoute: () => ShellRoute,
} as any);
id: '/settings',
path: '/settings',
getParentRoute: () => ShellRoute,
} as any)
const ShellPrsRoute = ShellPrsRouteImport.update({
id: "/prs",
path: "/prs",
getParentRoute: () => ShellRoute,
} as any);
id: '/prs',
path: '/prs',
getParentRoute: () => ShellRoute,
} as any)
const ShellSessionsSessionIdRoute = ShellSessionsSessionIdRouteImport.update({
id: "/sessions/$sessionId",
path: "/sessions/$sessionId",
getParentRoute: () => ShellRoute,
} as any);
id: '/sessions/$sessionId',
path: '/sessions/$sessionId',
getParentRoute: () => ShellRoute,
} as any)
const ShellProjectsProjectIdRoute = ShellProjectsProjectIdRouteImport.update({
id: "/projects/$projectId",
path: "/projects/$projectId",
getParentRoute: () => ShellRoute,
} as any);
const ShellProjectsProjectIdSettingsRoute = ShellProjectsProjectIdSettingsRouteImport.update({
id: "/projects/$projectId_/settings",
path: "/projects/$projectId/settings",
getParentRoute: () => ShellRoute,
} as any);
const ShellProjectsProjectIdSessionsSessionIdRoute = ShellProjectsProjectIdSessionsSessionIdRouteImport.update({
id: "/projects/$projectId_/sessions/$sessionId",
path: "/projects/$projectId/sessions/$sessionId",
getParentRoute: () => ShellRoute,
} as any);
id: '/projects/$projectId',
path: '/projects/$projectId',
getParentRoute: () => ShellRoute,
} as any)
const ShellProjectsProjectIdSettingsRoute =
ShellProjectsProjectIdSettingsRouteImport.update({
id: '/projects/$projectId_/settings',
path: '/projects/$projectId/settings',
getParentRoute: () => ShellRoute,
} as any)
const ShellProjectsProjectIdSessionsSessionIdRoute =
ShellProjectsProjectIdSessionsSessionIdRouteImport.update({
id: '/projects/$projectId_/sessions/$sessionId',
path: '/projects/$projectId/sessions/$sessionId',
getParentRoute: () => ShellRoute,
} as any)
export interface FileRoutesByFullPath {
"/": typeof ShellIndexRoute;
"/prs": typeof ShellPrsRoute;
"/settings": typeof ShellSettingsRoute;
"/projects/$projectId": typeof ShellProjectsProjectIdRoute;
"/sessions/$sessionId": typeof ShellSessionsSessionIdRoute;
"/projects/$projectId/settings": typeof ShellProjectsProjectIdSettingsRoute;
"/projects/$projectId/sessions/$sessionId": typeof ShellProjectsProjectIdSessionsSessionIdRoute;
'/': typeof ShellIndexRoute
'/prs': typeof ShellPrsRoute
'/settings': typeof ShellSettingsRoute
'/projects/$projectId': typeof ShellProjectsProjectIdRoute
'/sessions/$sessionId': typeof ShellSessionsSessionIdRoute
'/projects/$projectId/settings': typeof ShellProjectsProjectIdSettingsRoute
'/projects/$projectId/sessions/$sessionId': typeof ShellProjectsProjectIdSessionsSessionIdRoute
}
export interface FileRoutesByTo {
"/prs": typeof ShellPrsRoute;
"/settings": typeof ShellSettingsRoute;
"/": typeof ShellIndexRoute;
"/projects/$projectId": typeof ShellProjectsProjectIdRoute;
"/sessions/$sessionId": typeof ShellSessionsSessionIdRoute;
"/projects/$projectId/settings": typeof ShellProjectsProjectIdSettingsRoute;
"/projects/$projectId/sessions/$sessionId": typeof ShellProjectsProjectIdSessionsSessionIdRoute;
'/prs': typeof ShellPrsRoute
'/settings': typeof ShellSettingsRoute
'/': typeof ShellIndexRoute
'/projects/$projectId': typeof ShellProjectsProjectIdRoute
'/sessions/$sessionId': typeof ShellSessionsSessionIdRoute
'/projects/$projectId/settings': typeof ShellProjectsProjectIdSettingsRoute
'/projects/$projectId/sessions/$sessionId': typeof ShellProjectsProjectIdSessionsSessionIdRoute
}
export interface FileRoutesById {
__root__: typeof rootRouteImport;
"/_shell": typeof ShellRouteWithChildren;
"/_shell/prs": typeof ShellPrsRoute;
"/_shell/settings": typeof ShellSettingsRoute;
"/_shell/": typeof ShellIndexRoute;
"/_shell/projects/$projectId": typeof ShellProjectsProjectIdRoute;
"/_shell/sessions/$sessionId": typeof ShellSessionsSessionIdRoute;
"/_shell/projects/$projectId_/settings": typeof ShellProjectsProjectIdSettingsRoute;
"/_shell/projects/$projectId_/sessions/$sessionId": typeof ShellProjectsProjectIdSessionsSessionIdRoute;
__root__: typeof rootRouteImport
'/_shell': typeof ShellRouteWithChildren
'/_shell/prs': typeof ShellPrsRoute
'/_shell/settings': typeof ShellSettingsRoute
'/_shell/': typeof ShellIndexRoute
'/_shell/projects/$projectId': typeof ShellProjectsProjectIdRoute
'/_shell/sessions/$sessionId': typeof ShellSessionsSessionIdRoute
'/_shell/projects/$projectId_/settings': typeof ShellProjectsProjectIdSettingsRoute
'/_shell/projects/$projectId_/sessions/$sessionId': typeof ShellProjectsProjectIdSessionsSessionIdRoute
}
export interface FileRouteTypes {
fileRoutesByFullPath: FileRoutesByFullPath;
fullPaths:
| "/"
| "/prs"
| "/settings"
| "/projects/$projectId"
| "/sessions/$sessionId"
| "/projects/$projectId/settings"
| "/projects/$projectId/sessions/$sessionId";
fileRoutesByTo: FileRoutesByTo;
to:
| "/prs"
| "/settings"
| "/"
| "/projects/$projectId"
| "/sessions/$sessionId"
| "/projects/$projectId/settings"
| "/projects/$projectId/sessions/$sessionId";
id:
| "__root__"
| "/_shell"
| "/_shell/prs"
| "/_shell/settings"
| "/_shell/"
| "/_shell/projects/$projectId"
| "/_shell/sessions/$sessionId"
| "/_shell/projects/$projectId_/settings"
| "/_shell/projects/$projectId_/sessions/$sessionId";
fileRoutesById: FileRoutesById;
fileRoutesByFullPath: FileRoutesByFullPath
fullPaths:
| '/'
| '/prs'
| '/settings'
| '/projects/$projectId'
| '/sessions/$sessionId'
| '/projects/$projectId/settings'
| '/projects/$projectId/sessions/$sessionId'
fileRoutesByTo: FileRoutesByTo
to:
| '/prs'
| '/settings'
| '/'
| '/projects/$projectId'
| '/sessions/$sessionId'
| '/projects/$projectId/settings'
| '/projects/$projectId/sessions/$sessionId'
id:
| '__root__'
| '/_shell'
| '/_shell/prs'
| '/_shell/settings'
| '/_shell/'
| '/_shell/projects/$projectId'
| '/_shell/sessions/$sessionId'
| '/_shell/projects/$projectId_/settings'
| '/_shell/projects/$projectId_/sessions/$sessionId'
fileRoutesById: FileRoutesById
}
export interface RootRouteChildren {
ShellRoute: typeof ShellRouteWithChildren;
ShellRoute: typeof ShellRouteWithChildren
}
declare module "@tanstack/react-router" {
interface FileRoutesByPath {
"/_shell": {
id: "/_shell";
path: "";
fullPath: "/";
preLoaderRoute: typeof ShellRouteImport;
parentRoute: typeof rootRouteImport;
};
"/_shell/": {
id: "/_shell/";
path: "/";
fullPath: "/";
preLoaderRoute: typeof ShellIndexRouteImport;
parentRoute: typeof ShellRoute;
};
"/_shell/settings": {
id: "/_shell/settings";
path: "/settings";
fullPath: "/settings";
preLoaderRoute: typeof ShellSettingsRouteImport;
parentRoute: typeof ShellRoute;
};
"/_shell/prs": {
id: "/_shell/prs";
path: "/prs";
fullPath: "/prs";
preLoaderRoute: typeof ShellPrsRouteImport;
parentRoute: typeof ShellRoute;
};
"/_shell/sessions/$sessionId": {
id: "/_shell/sessions/$sessionId";
path: "/sessions/$sessionId";
fullPath: "/sessions/$sessionId";
preLoaderRoute: typeof ShellSessionsSessionIdRouteImport;
parentRoute: typeof ShellRoute;
};
"/_shell/projects/$projectId": {
id: "/_shell/projects/$projectId";
path: "/projects/$projectId";
fullPath: "/projects/$projectId";
preLoaderRoute: typeof ShellProjectsProjectIdRouteImport;
parentRoute: typeof ShellRoute;
};
"/_shell/projects/$projectId_/settings": {
id: "/_shell/projects/$projectId_/settings";
path: "/projects/$projectId/settings";
fullPath: "/projects/$projectId/settings";
preLoaderRoute: typeof ShellProjectsProjectIdSettingsRouteImport;
parentRoute: typeof ShellRoute;
};
"/_shell/projects/$projectId_/sessions/$sessionId": {
id: "/_shell/projects/$projectId_/sessions/$sessionId";
path: "/projects/$projectId/sessions/$sessionId";
fullPath: "/projects/$projectId/sessions/$sessionId";
preLoaderRoute: typeof ShellProjectsProjectIdSessionsSessionIdRouteImport;
parentRoute: typeof ShellRoute;
};
}
declare module '@tanstack/react-router' {
interface FileRoutesByPath {
'/_shell': {
id: '/_shell'
path: ''
fullPath: '/'
preLoaderRoute: typeof ShellRouteImport
parentRoute: typeof rootRouteImport
}
'/_shell/': {
id: '/_shell/'
path: '/'
fullPath: '/'
preLoaderRoute: typeof ShellIndexRouteImport
parentRoute: typeof ShellRoute
}
'/_shell/settings': {
id: '/_shell/settings'
path: '/settings'
fullPath: '/settings'
preLoaderRoute: typeof ShellSettingsRouteImport
parentRoute: typeof ShellRoute
}
'/_shell/prs': {
id: '/_shell/prs'
path: '/prs'
fullPath: '/prs'
preLoaderRoute: typeof ShellPrsRouteImport
parentRoute: typeof ShellRoute
}
'/_shell/sessions/$sessionId': {
id: '/_shell/sessions/$sessionId'
path: '/sessions/$sessionId'
fullPath: '/sessions/$sessionId'
preLoaderRoute: typeof ShellSessionsSessionIdRouteImport
parentRoute: typeof ShellRoute
}
'/_shell/projects/$projectId': {
id: '/_shell/projects/$projectId'
path: '/projects/$projectId'
fullPath: '/projects/$projectId'
preLoaderRoute: typeof ShellProjectsProjectIdRouteImport
parentRoute: typeof ShellRoute
}
'/_shell/projects/$projectId_/settings': {
id: '/_shell/projects/$projectId_/settings'
path: '/projects/$projectId/settings'
fullPath: '/projects/$projectId/settings'
preLoaderRoute: typeof ShellProjectsProjectIdSettingsRouteImport
parentRoute: typeof ShellRoute
}
'/_shell/projects/$projectId_/sessions/$sessionId': {
id: '/_shell/projects/$projectId_/sessions/$sessionId'
path: '/projects/$projectId/sessions/$sessionId'
fullPath: '/projects/$projectId/sessions/$sessionId'
preLoaderRoute: typeof ShellProjectsProjectIdSessionsSessionIdRouteImport
parentRoute: typeof ShellRoute
}
}
}
interface ShellRouteChildren {
ShellPrsRoute: typeof ShellPrsRoute;
ShellSettingsRoute: typeof ShellSettingsRoute;
ShellIndexRoute: typeof ShellIndexRoute;
ShellProjectsProjectIdRoute: typeof ShellProjectsProjectIdRoute;
ShellSessionsSessionIdRoute: typeof ShellSessionsSessionIdRoute;
ShellProjectsProjectIdSettingsRoute: typeof ShellProjectsProjectIdSettingsRoute;
ShellProjectsProjectIdSessionsSessionIdRoute: typeof ShellProjectsProjectIdSessionsSessionIdRoute;
ShellPrsRoute: typeof ShellPrsRoute
ShellSettingsRoute: typeof ShellSettingsRoute
ShellIndexRoute: typeof ShellIndexRoute
ShellProjectsProjectIdRoute: typeof ShellProjectsProjectIdRoute
ShellSessionsSessionIdRoute: typeof ShellSessionsSessionIdRoute
ShellProjectsProjectIdSettingsRoute: typeof ShellProjectsProjectIdSettingsRoute
ShellProjectsProjectIdSessionsSessionIdRoute: typeof ShellProjectsProjectIdSessionsSessionIdRoute
}
const ShellRouteChildren: ShellRouteChildren = {
ShellPrsRoute: ShellPrsRoute,
ShellSettingsRoute: ShellSettingsRoute,
ShellIndexRoute: ShellIndexRoute,
ShellProjectsProjectIdRoute: ShellProjectsProjectIdRoute,
ShellSessionsSessionIdRoute: ShellSessionsSessionIdRoute,
ShellProjectsProjectIdSettingsRoute: ShellProjectsProjectIdSettingsRoute,
ShellProjectsProjectIdSessionsSessionIdRoute: ShellProjectsProjectIdSessionsSessionIdRoute,
};
ShellPrsRoute: ShellPrsRoute,
ShellSettingsRoute: ShellSettingsRoute,
ShellIndexRoute: ShellIndexRoute,
ShellProjectsProjectIdRoute: ShellProjectsProjectIdRoute,
ShellSessionsSessionIdRoute: ShellSessionsSessionIdRoute,
ShellProjectsProjectIdSettingsRoute: ShellProjectsProjectIdSettingsRoute,
ShellProjectsProjectIdSessionsSessionIdRoute:
ShellProjectsProjectIdSessionsSessionIdRoute,
}
const ShellRouteWithChildren = ShellRoute._addFileChildren(ShellRouteChildren);
const ShellRouteWithChildren = ShellRoute._addFileChildren(ShellRouteChildren)
const rootRouteChildren: RootRouteChildren = {
ShellRoute: ShellRouteWithChildren,
};
export const routeTree = rootRouteImport._addFileChildren(rootRouteChildren)._addFileTypes<FileRouteTypes>();
ShellRoute: ShellRouteWithChildren,
}
export const routeTree = rootRouteImport
._addFileChildren(rootRouteChildren)
._addFileTypes<FileRouteTypes>()