diff --git a/frontend/package.json b/frontend/package.json index 111eb521dd..253cb47f44 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -129,6 +129,7 @@ "ts-pattern": "^5.8.0", "typescript": "^5.9.2", "typescript-plugin-css-modules": "^5.2.0", + "unplugin-macros": "^0.18.3", "usehooks-ts": "^3.1.1", "vite": "^5.4.20", "vite-plugin-favicons-inject": "^2.2.0", diff --git a/frontend/src/app/dialogs/connect-gcp-frame.tsx b/frontend/src/app/dialogs/connect-gcp-frame.tsx index 7ff9e811ac..45243e4e64 100644 --- a/frontend/src/app/dialogs/connect-gcp-frame.tsx +++ b/frontend/src/app/dialogs/connect-gcp-frame.tsx @@ -2,11 +2,11 @@ import { faGoogleCloud, Icon } from "@rivet-gg/icons"; import { type DialogContentProps, Frame } from "@/components"; import ConnectManualServerlfullFrameContent from "./connect-manual-serverfull-frame"; -interface ConnectAwsFrameContentProps extends DialogContentProps {} +interface ConnectGcpFrameContentProps extends DialogContentProps {} -export default function ConnectAwsFrameContent({ +export default function ConnectGcpFrameContent({ onClose, -}: ConnectAwsFrameContentProps) { +}: ConnectGcpFrameContentProps) { return ( <> diff --git a/frontend/src/app/dialogs/connect-manual-serverless-frame.tsx b/frontend/src/app/dialogs/connect-manual-serverless-frame.tsx index 71e32cb2f1..127985b548 100644 --- a/frontend/src/app/dialogs/connect-manual-serverless-frame.tsx +++ b/frontend/src/app/dialogs/connect-manual-serverless-frame.tsx @@ -60,10 +60,13 @@ const stepper = defineStepper( }, ); -interface ConnectManualServerlessFrameContentProps extends DialogContentProps {} +interface ConnectManualServerlessFrameContentProps extends DialogContentProps { + provider: string; +} export default function ConnectManualServerlessFrameContent({ onClose, + provider, }: ConnectManualServerlessFrameContentProps) { usePrefetchInfiniteQuery({ ...useEngineCompatDataProvider().regionsQueryOptions(), @@ -74,24 +77,32 @@ export default function ConnectManualServerlessFrameContent({ useEngineCompatDataProvider().regionsQueryOptions(), ); - return ; + return ( + + ); } function FormStepper({ onClose, datacenters, + provider, }: { onClose?: () => void; datacenters: Region[]; + provider: string; }) { - const provider = useEngineCompatDataProvider(); + const dataProvider = useEngineCompatDataProvider(); const { data } = useSuspenseInfiniteQuery({ - ...provider.runnerConfigsQueryOptions(), + ...dataProvider.runnerConfigsQueryOptions(), }); const { mutateAsync } = useMutation({ - ...provider.upsertRunnerConfigMutationOptions(), + ...dataProvider.upsertRunnerConfigMutationOptions(), onSuccess: async () => { confetti({ angle: 60, @@ -105,7 +116,7 @@ function FormStepper({ }); await queryClient.invalidateQueries( - provider.runnerConfigsQueryOptions(), + dataProvider.runnerConfigsQueryOptions(), ); onClose?.(); }, @@ -117,7 +128,7 @@ function FormStepper({ let existing: Record = {}; try { const runnerConfig = await queryClient.fetchQuery( - provider.runnerConfigQueryOptions({ + dataProvider.runnerConfigQueryOptions({ name: values.runnerName, }), ); @@ -142,7 +153,7 @@ function FormStepper({ ), }, metadata: { - provider: "custom", + provider, }, }; @@ -174,7 +185,7 @@ function FormStepper({ content={{ "step-1": () => , "step-2": () => , - "step-3": () => , + "step-3": () => , }} /> ); @@ -204,11 +215,11 @@ function Step2() { ); } -function Step3() { +function Step3({ provider }: { provider: string }) { return ( <> - + ); } diff --git a/frontend/src/app/dialogs/start-with-template-frame.tsx b/frontend/src/app/dialogs/start-with-template-frame.tsx new file mode 100644 index 0000000000..7a82b83d92 --- /dev/null +++ b/frontend/src/app/dialogs/start-with-template-frame.tsx @@ -0,0 +1,51 @@ +import { useState } from "react"; +import { match } from "ts-pattern"; +import { type DialogContentProps, Frame } from "@/components"; +import { type Provider, TemplateProviders } from "../template-providers"; +import ConnectQuickVercelFrameContent from "./connect-quick-vercel-frame"; +import ConnectQuickRailwayFrameContent from "./connect-quick-railway-frame"; +import ConnectAwsFrameContent from "./connect-aws-frame"; +import ConnectGcpFrameContent from "./connect-gcp-frame"; +import ConnectHetznerFrameContent from "./connect-hetzner-frame"; +import ConnectManualServerlfullFrameContent from "./connect-manual-serverfull-frame"; +import ConnectManualServerlessFrameContent from "./connect-manual-serverless-frame"; + +interface ConnectAwsFrameContentProps extends DialogContentProps { + template: string; +} + +export default function StartWithTemplateFrame({ + template, + onClose, +}: ConnectAwsFrameContentProps) { + const [provider, setProvider] = useState(null); + + return match(provider) + .with("vercel", () => ( + + )) + .with("cloudflare", () => ) + .with("railway", () => ) + .with("kubernetes", () => ) + .with("aws-ecs", () => ) + .with("gcp-cloud-run", () => ) + .with("hetzner", () => ) + .with("vm-bare-metal", () => ) + .otherwise(() => { + return ( + <> + + +
Start With {template}
+
+
+ +
+ Select Provider +
+ +
+ + ); + }); +} diff --git a/frontend/src/app/getting-started.tsx b/frontend/src/app/getting-started.tsx new file mode 100644 index 0000000000..4d1620ab81 --- /dev/null +++ b/frontend/src/app/getting-started.tsx @@ -0,0 +1,95 @@ +import { Link } from "@tanstack/react-router"; +import { cn } from "../components/lib/utils"; +import { Button } from "../components/ui/button"; +import { H2 } from "../components/ui/typography"; + +export function GettingStarted() { + return ( +
+
+
+
+

Start With Template

+
+ +
+
+
+ +
+
+
+
+ + +
+
+
+ ); +} + +function TemplateCard({ + title, + slug, + className, + description, +}: { + title: string; + slug: string; + description?: string; + className?: string; +}) { + return ( + + ); +} diff --git a/frontend/src/app/one-click-deploy-railway-button.tsx b/frontend/src/app/one-click-deploy-railway-button.tsx new file mode 100644 index 0000000000..1c4aa4dc0b --- /dev/null +++ b/frontend/src/app/one-click-deploy-railway-button.tsx @@ -0,0 +1,19 @@ +import { faRailway, Icon } from "@rivet-gg/icons"; +import { Link } from "@tanstack/react-router"; +import { Button } from "../components/ui/button"; + +export function OneClickDeployRailwayButton() { + return ( + + ); +} diff --git a/frontend/src/app/template-providers.tsx b/frontend/src/app/template-providers.tsx new file mode 100644 index 0000000000..c885fbea61 --- /dev/null +++ b/frontend/src/app/template-providers.tsx @@ -0,0 +1,101 @@ +import { + faAws, + faCloudflare, + faGoogleCloud, + faHetznerH, + faKubernetes, + faRailway, + faServer, + faVercel, + Icon, +} from "@rivet-gg/icons"; +import { Badge, Button } from "@/components"; + +const PROVIDERS = [ + { + title: "Serverless", + items: [ + { + title: "Vercel", + icon: faVercel, + slug: "vercel", + type: "1-click-deploy", + }, + { + title: "Cloudflare Workers", + icon: faCloudflare, + slug: "cloudflare", + }, + ], + }, + { + title: "Containers", + items: [ + { + title: "Railway", + icon: faRailway, + slug: "railway", + type: "1-click-deploy", + }, + { title: "Kubernetes", icon: faKubernetes, slug: "kubernetes" }, + { title: "AWS ECS", icon: faAws, slug: "aws-ecs" }, + { + title: "Google Cloud Run", + icon: faGoogleCloud, + slug: "gcp-cloud-run", + }, + ], + }, + { + title: "Virtual Machines", + items: [ + { title: "Hetzner", icon: faHetznerH, slug: "hetzner" }, + { title: "VM & Bare Metal", icon: faServer, slug: "vm-bare-metal" }, + ], + }, +] as const; + +export type Provider = (typeof PROVIDERS)[number]["items"][number]["slug"]; + +export function TemplateProviders({ + onProviderSelect, +}: { + onProviderSelect?: (providerSlug: Provider) => void; +}) { + return ( +
+ {PROVIDERS.map((group) => ( +
+

+ {group.title} +

+
+ {group.items.map((provider) => ( + + ))} +
+
+ ))} +
+ ); +} diff --git a/frontend/src/app/use-dialog.tsx b/frontend/src/app/use-dialog.tsx index 9918da25bc..69815a206e 100644 --- a/frontend/src/app/use-dialog.tsx +++ b/frontend/src/app/use-dialog.tsx @@ -43,4 +43,7 @@ export const useDialog = { () => import("@/app/dialogs/provide-engine-credentials-frame"), ), Tokens: createDialogHook(() => import("@/app/dialogs/tokens-frame")), + StartWithTemplate: createDialogHook( + () => import("@/app/dialogs/start-with-template-frame"), + ), }; diff --git a/frontend/src/routeTree.gen.ts b/frontend/src/routeTree.gen.ts index 4b0ecb902e..70ac67d4b7 100644 --- a/frontend/src/routeTree.gen.ts +++ b/frontend/src/routeTree.gen.ts @@ -8,568 +8,567 @@ // 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 ContextRouteImport } from "./routes/_context"; -import { Route as ContextCloudRouteImport } from "./routes/_context/_cloud"; -import { Route as ContextCloudOrgsOrganizationRouteImport } from "./routes/_context/_cloud/orgs.$organization"; -import { Route as ContextCloudOrgsOrganizationIndexRouteImport } from "./routes/_context/_cloud/orgs.$organization/index"; -import { Route as ContextCloudOrgsOrganizationProjectsProjectRouteImport } from "./routes/_context/_cloud/orgs.$organization/projects.$project"; -import { Route as ContextCloudOrgsOrganizationProjectsProjectIndexRouteImport } from "./routes/_context/_cloud/orgs.$organization/projects.$project/index"; -import { Route as ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteImport } from "./routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace"; -import { Route as ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRouteImport } from "./routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect"; -import { Route as ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRouteImport } from "./routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/index"; -import { Route as ContextCloudOrgsOrganizationProjectsIndexRouteImport } from "./routes/_context/_cloud/orgs.$organization/projects.index"; -import { Route as ContextEngineRouteImport } from "./routes/_context/_engine"; -import { Route as ContextEngineNsNamespaceRouteImport } from "./routes/_context/_engine/ns.$namespace"; -import { Route as ContextEngineNsNamespaceConnectRouteImport } from "./routes/_context/_engine/ns.$namespace/connect"; -import { Route as ContextEngineNsNamespaceIndexRouteImport } from "./routes/_context/_engine/ns.$namespace/index"; -import { Route as ContextIndexRouteImport } from "./routes/_context/index"; -import { Route as JoinRouteImport } from "./routes/join"; -import { Route as LoginRouteImport } from "./routes/login"; -import { Route as OnboardingRouteImport } from "./routes/onboarding"; -import { Route as OnboardingAcceptInvitationRouteImport } from "./routes/onboarding/accept-invitation"; -import { Route as OnboardingChooseOrganizationRouteImport } from "./routes/onboarding/choose-organization"; -import { Route as SsoCallbackRouteImport } from "./routes/sso-callback"; +import { Route as rootRouteImport } from './routes/__root' +import { Route as SsoCallbackRouteImport } from './routes/sso-callback' +import { Route as OnboardingRouteImport } from './routes/onboarding' +import { Route as LoginRouteImport } from './routes/login' +import { Route as JoinRouteImport } from './routes/join' +import { Route as ContextRouteImport } from './routes/_context' +import { Route as ContextIndexRouteImport } from './routes/_context/index' +import { Route as OnboardingChooseOrganizationRouteImport } from './routes/onboarding/choose-organization' +import { Route as OnboardingAcceptInvitationRouteImport } from './routes/onboarding/accept-invitation' +import { Route as ContextEngineRouteImport } from './routes/_context/_engine' +import { Route as ContextCloudRouteImport } from './routes/_context/_cloud' +import { Route as ContextEngineNsNamespaceRouteImport } from './routes/_context/_engine/ns.$namespace' +import { Route as ContextCloudOrgsOrganizationRouteImport } from './routes/_context/_cloud/orgs.$organization' +import { Route as ContextEngineNsNamespaceIndexRouteImport } from './routes/_context/_engine/ns.$namespace/index' +import { Route as ContextCloudOrgsOrganizationIndexRouteImport } from './routes/_context/_cloud/orgs.$organization/index' +import { Route as ContextEngineNsNamespaceConnectRouteImport } from './routes/_context/_engine/ns.$namespace/connect' +import { Route as ContextCloudOrgsOrganizationProjectsIndexRouteImport } from './routes/_context/_cloud/orgs.$organization/projects.index' +import { Route as ContextCloudOrgsOrganizationProjectsProjectRouteImport } from './routes/_context/_cloud/orgs.$organization/projects.$project' +import { Route as ContextCloudOrgsOrganizationProjectsProjectIndexRouteImport } from './routes/_context/_cloud/orgs.$organization/projects.$project/index' +import { Route as ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteImport } from './routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace' +import { Route as ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRouteImport } from './routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/index' +import { Route as ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRouteImport } from './routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect' const SsoCallbackRoute = SsoCallbackRouteImport.update({ - id: "/sso-callback", - path: "/sso-callback", - getParentRoute: () => rootRouteImport, -} as any); + id: '/sso-callback', + path: '/sso-callback', + getParentRoute: () => rootRouteImport, +} as any) const OnboardingRoute = OnboardingRouteImport.update({ - id: "/onboarding", - path: "/onboarding", - getParentRoute: () => rootRouteImport, -} as any); + id: '/onboarding', + path: '/onboarding', + getParentRoute: () => rootRouteImport, +} as any) const LoginRoute = LoginRouteImport.update({ - id: "/login", - path: "/login", - getParentRoute: () => rootRouteImport, -} as any); + id: '/login', + path: '/login', + getParentRoute: () => rootRouteImport, +} as any) const JoinRoute = JoinRouteImport.update({ - id: "/join", - path: "/join", - getParentRoute: () => rootRouteImport, -} as any); + id: '/join', + path: '/join', + getParentRoute: () => rootRouteImport, +} as any) const ContextRoute = ContextRouteImport.update({ - id: "/_context", - getParentRoute: () => rootRouteImport, -} as any); + id: '/_context', + getParentRoute: () => rootRouteImport, +} as any) const ContextIndexRoute = ContextIndexRouteImport.update({ - id: "/", - path: "/", - getParentRoute: () => ContextRoute, -} as any); + id: '/', + path: '/', + getParentRoute: () => ContextRoute, +} as any) const OnboardingChooseOrganizationRoute = - OnboardingChooseOrganizationRouteImport.update({ - id: "/choose-organization", - path: "/choose-organization", - getParentRoute: () => OnboardingRoute, - } as any); + OnboardingChooseOrganizationRouteImport.update({ + id: '/choose-organization', + path: '/choose-organization', + getParentRoute: () => OnboardingRoute, + } as any) const OnboardingAcceptInvitationRoute = - OnboardingAcceptInvitationRouteImport.update({ - id: "/accept-invitation", - path: "/accept-invitation", - getParentRoute: () => OnboardingRoute, - } as any); + OnboardingAcceptInvitationRouteImport.update({ + id: '/accept-invitation', + path: '/accept-invitation', + getParentRoute: () => OnboardingRoute, + } as any) const ContextEngineRoute = ContextEngineRouteImport.update({ - id: "/_engine", - getParentRoute: () => ContextRoute, -} as any); + id: '/_engine', + getParentRoute: () => ContextRoute, +} as any) const ContextCloudRoute = ContextCloudRouteImport.update({ - id: "/_cloud", - getParentRoute: () => ContextRoute, -} as any); + id: '/_cloud', + getParentRoute: () => ContextRoute, +} as any) const ContextEngineNsNamespaceRoute = - ContextEngineNsNamespaceRouteImport.update({ - id: "/ns/$namespace", - path: "/ns/$namespace", - getParentRoute: () => ContextEngineRoute, - } as any); + ContextEngineNsNamespaceRouteImport.update({ + id: '/ns/$namespace', + path: '/ns/$namespace', + getParentRoute: () => ContextEngineRoute, + } as any) const ContextCloudOrgsOrganizationRoute = - ContextCloudOrgsOrganizationRouteImport.update({ - id: "/orgs/$organization", - path: "/orgs/$organization", - getParentRoute: () => ContextCloudRoute, - } as any); + ContextCloudOrgsOrganizationRouteImport.update({ + id: '/orgs/$organization', + path: '/orgs/$organization', + getParentRoute: () => ContextCloudRoute, + } as any) const ContextEngineNsNamespaceIndexRoute = - ContextEngineNsNamespaceIndexRouteImport.update({ - id: "/", - path: "/", - getParentRoute: () => ContextEngineNsNamespaceRoute, - } as any); + ContextEngineNsNamespaceIndexRouteImport.update({ + id: '/', + path: '/', + getParentRoute: () => ContextEngineNsNamespaceRoute, + } as any) const ContextCloudOrgsOrganizationIndexRoute = - ContextCloudOrgsOrganizationIndexRouteImport.update({ - id: "/", - path: "/", - getParentRoute: () => ContextCloudOrgsOrganizationRoute, - } as any); + ContextCloudOrgsOrganizationIndexRouteImport.update({ + id: '/', + path: '/', + getParentRoute: () => ContextCloudOrgsOrganizationRoute, + } as any) const ContextEngineNsNamespaceConnectRoute = - ContextEngineNsNamespaceConnectRouteImport.update({ - id: "/connect", - path: "/connect", - getParentRoute: () => ContextEngineNsNamespaceRoute, - } as any); + ContextEngineNsNamespaceConnectRouteImport.update({ + id: '/connect', + path: '/connect', + getParentRoute: () => ContextEngineNsNamespaceRoute, + } as any) const ContextCloudOrgsOrganizationProjectsIndexRoute = - ContextCloudOrgsOrganizationProjectsIndexRouteImport.update({ - id: "/projects/", - path: "/projects/", - getParentRoute: () => ContextCloudOrgsOrganizationRoute, - } as any); + ContextCloudOrgsOrganizationProjectsIndexRouteImport.update({ + id: '/projects/', + path: '/projects/', + getParentRoute: () => ContextCloudOrgsOrganizationRoute, + } as any) const ContextCloudOrgsOrganizationProjectsProjectRoute = - ContextCloudOrgsOrganizationProjectsProjectRouteImport.update({ - id: "/projects/$project", - path: "/projects/$project", - getParentRoute: () => ContextCloudOrgsOrganizationRoute, - } as any); + ContextCloudOrgsOrganizationProjectsProjectRouteImport.update({ + id: '/projects/$project', + path: '/projects/$project', + getParentRoute: () => ContextCloudOrgsOrganizationRoute, + } as any) const ContextCloudOrgsOrganizationProjectsProjectIndexRoute = - ContextCloudOrgsOrganizationProjectsProjectIndexRouteImport.update({ - id: "/", - path: "/", - getParentRoute: () => ContextCloudOrgsOrganizationProjectsProjectRoute, - } as any); + ContextCloudOrgsOrganizationProjectsProjectIndexRouteImport.update({ + id: '/', + path: '/', + getParentRoute: () => ContextCloudOrgsOrganizationProjectsProjectRoute, + } as any) const ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute = - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteImport.update({ - id: "/ns/$namespace", - path: "/ns/$namespace", - getParentRoute: () => ContextCloudOrgsOrganizationProjectsProjectRoute, - } as any); + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteImport.update({ + id: '/ns/$namespace', + path: '/ns/$namespace', + getParentRoute: () => ContextCloudOrgsOrganizationProjectsProjectRoute, + } as any) const ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute = - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRouteImport.update( - { - id: "/", - path: "/", - getParentRoute: () => - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute, - } as any, - ); + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRouteImport.update( + { + id: '/', + path: '/', + getParentRoute: () => + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute, + } as any, + ) const ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute = - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRouteImport.update( - { - id: "/connect", - path: "/connect", - getParentRoute: () => - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute, - } as any, - ); + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRouteImport.update( + { + id: '/connect', + path: '/connect', + getParentRoute: () => + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute, + } as any, + ) export interface FileRoutesByFullPath { - "/join": typeof JoinRoute; - "/login": typeof LoginRoute; - "/onboarding": typeof OnboardingRouteWithChildren; - "/sso-callback": typeof SsoCallbackRoute; - "/onboarding/accept-invitation": typeof OnboardingAcceptInvitationRoute; - "/onboarding/choose-organization": typeof OnboardingChooseOrganizationRoute; - "/": typeof ContextIndexRoute; - "/orgs/$organization": typeof ContextCloudOrgsOrganizationRouteWithChildren; - "/ns/$namespace": typeof ContextEngineNsNamespaceRouteWithChildren; - "/ns/$namespace/connect": typeof ContextEngineNsNamespaceConnectRoute; - "/orgs/$organization/": typeof ContextCloudOrgsOrganizationIndexRoute; - "/ns/$namespace/": typeof ContextEngineNsNamespaceIndexRoute; - "/orgs/$organization/projects/$project": typeof ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren; - "/orgs/$organization/projects": typeof ContextCloudOrgsOrganizationProjectsIndexRoute; - "/orgs/$organization/projects/$project/": typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute; - "/orgs/$organization/projects/$project/ns/$namespace": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren; - "/orgs/$organization/projects/$project/ns/$namespace/connect": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute; - "/orgs/$organization/projects/$project/ns/$namespace/": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute; + '/join': typeof JoinRoute + '/login': typeof LoginRoute + '/onboarding': typeof OnboardingRouteWithChildren + '/sso-callback': typeof SsoCallbackRoute + '/onboarding/accept-invitation': typeof OnboardingAcceptInvitationRoute + '/onboarding/choose-organization': typeof OnboardingChooseOrganizationRoute + '/': typeof ContextIndexRoute + '/orgs/$organization': typeof ContextCloudOrgsOrganizationRouteWithChildren + '/ns/$namespace': typeof ContextEngineNsNamespaceRouteWithChildren + '/ns/$namespace/connect': typeof ContextEngineNsNamespaceConnectRoute + '/orgs/$organization/': typeof ContextCloudOrgsOrganizationIndexRoute + '/ns/$namespace/': typeof ContextEngineNsNamespaceIndexRoute + '/orgs/$organization/projects/$project': typeof ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren + '/orgs/$organization/projects': typeof ContextCloudOrgsOrganizationProjectsIndexRoute + '/orgs/$organization/projects/$project/': typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute + '/orgs/$organization/projects/$project/ns/$namespace': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren + '/orgs/$organization/projects/$project/ns/$namespace/connect': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute + '/orgs/$organization/projects/$project/ns/$namespace/': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute } export interface FileRoutesByTo { - "/join": typeof JoinRoute; - "/login": typeof LoginRoute; - "/onboarding": typeof OnboardingRouteWithChildren; - "/sso-callback": typeof SsoCallbackRoute; - "/onboarding/accept-invitation": typeof OnboardingAcceptInvitationRoute; - "/onboarding/choose-organization": typeof OnboardingChooseOrganizationRoute; - "/": typeof ContextIndexRoute; - "/ns/$namespace/connect": typeof ContextEngineNsNamespaceConnectRoute; - "/orgs/$organization": typeof ContextCloudOrgsOrganizationIndexRoute; - "/ns/$namespace": typeof ContextEngineNsNamespaceIndexRoute; - "/orgs/$organization/projects": typeof ContextCloudOrgsOrganizationProjectsIndexRoute; - "/orgs/$organization/projects/$project": typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute; - "/orgs/$organization/projects/$project/ns/$namespace/connect": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute; - "/orgs/$organization/projects/$project/ns/$namespace": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute; + '/join': typeof JoinRoute + '/login': typeof LoginRoute + '/onboarding': typeof OnboardingRouteWithChildren + '/sso-callback': typeof SsoCallbackRoute + '/onboarding/accept-invitation': typeof OnboardingAcceptInvitationRoute + '/onboarding/choose-organization': typeof OnboardingChooseOrganizationRoute + '/': typeof ContextIndexRoute + '/ns/$namespace/connect': typeof ContextEngineNsNamespaceConnectRoute + '/orgs/$organization': typeof ContextCloudOrgsOrganizationIndexRoute + '/ns/$namespace': typeof ContextEngineNsNamespaceIndexRoute + '/orgs/$organization/projects': typeof ContextCloudOrgsOrganizationProjectsIndexRoute + '/orgs/$organization/projects/$project': typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute + '/orgs/$organization/projects/$project/ns/$namespace/connect': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute + '/orgs/$organization/projects/$project/ns/$namespace': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute } export interface FileRoutesById { - __root__: typeof rootRouteImport; - "/_context": typeof ContextRouteWithChildren; - "/join": typeof JoinRoute; - "/login": typeof LoginRoute; - "/onboarding": typeof OnboardingRouteWithChildren; - "/sso-callback": typeof SsoCallbackRoute; - "/_context/_cloud": typeof ContextCloudRouteWithChildren; - "/_context/_engine": typeof ContextEngineRouteWithChildren; - "/onboarding/accept-invitation": typeof OnboardingAcceptInvitationRoute; - "/onboarding/choose-organization": typeof OnboardingChooseOrganizationRoute; - "/_context/": typeof ContextIndexRoute; - "/_context/_cloud/orgs/$organization": typeof ContextCloudOrgsOrganizationRouteWithChildren; - "/_context/_engine/ns/$namespace": typeof ContextEngineNsNamespaceRouteWithChildren; - "/_context/_engine/ns/$namespace/connect": typeof ContextEngineNsNamespaceConnectRoute; - "/_context/_cloud/orgs/$organization/": typeof ContextCloudOrgsOrganizationIndexRoute; - "/_context/_engine/ns/$namespace/": typeof ContextEngineNsNamespaceIndexRoute; - "/_context/_cloud/orgs/$organization/projects/$project": typeof ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren; - "/_context/_cloud/orgs/$organization/projects/": typeof ContextCloudOrgsOrganizationProjectsIndexRoute; - "/_context/_cloud/orgs/$organization/projects/$project/": typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute; - "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren; - "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute; - "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/": typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute; + __root__: typeof rootRouteImport + '/_context': typeof ContextRouteWithChildren + '/join': typeof JoinRoute + '/login': typeof LoginRoute + '/onboarding': typeof OnboardingRouteWithChildren + '/sso-callback': typeof SsoCallbackRoute + '/_context/_cloud': typeof ContextCloudRouteWithChildren + '/_context/_engine': typeof ContextEngineRouteWithChildren + '/onboarding/accept-invitation': typeof OnboardingAcceptInvitationRoute + '/onboarding/choose-organization': typeof OnboardingChooseOrganizationRoute + '/_context/': typeof ContextIndexRoute + '/_context/_cloud/orgs/$organization': typeof ContextCloudOrgsOrganizationRouteWithChildren + '/_context/_engine/ns/$namespace': typeof ContextEngineNsNamespaceRouteWithChildren + '/_context/_engine/ns/$namespace/connect': typeof ContextEngineNsNamespaceConnectRoute + '/_context/_cloud/orgs/$organization/': typeof ContextCloudOrgsOrganizationIndexRoute + '/_context/_engine/ns/$namespace/': typeof ContextEngineNsNamespaceIndexRoute + '/_context/_cloud/orgs/$organization/projects/$project': typeof ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren + '/_context/_cloud/orgs/$organization/projects/': typeof ContextCloudOrgsOrganizationProjectsIndexRoute + '/_context/_cloud/orgs/$organization/projects/$project/': typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute + '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren + '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute + '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/': typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute } export interface FileRouteTypes { - fileRoutesByFullPath: FileRoutesByFullPath; - fullPaths: - | "/join" - | "/login" - | "/onboarding" - | "/sso-callback" - | "/onboarding/accept-invitation" - | "/onboarding/choose-organization" - | "/" - | "/orgs/$organization" - | "/ns/$namespace" - | "/ns/$namespace/connect" - | "/orgs/$organization/" - | "/ns/$namespace/" - | "/orgs/$organization/projects/$project" - | "/orgs/$organization/projects" - | "/orgs/$organization/projects/$project/" - | "/orgs/$organization/projects/$project/ns/$namespace" - | "/orgs/$organization/projects/$project/ns/$namespace/connect" - | "/orgs/$organization/projects/$project/ns/$namespace/"; - fileRoutesByTo: FileRoutesByTo; - to: - | "/join" - | "/login" - | "/onboarding" - | "/sso-callback" - | "/onboarding/accept-invitation" - | "/onboarding/choose-organization" - | "/" - | "/ns/$namespace/connect" - | "/orgs/$organization" - | "/ns/$namespace" - | "/orgs/$organization/projects" - | "/orgs/$organization/projects/$project" - | "/orgs/$organization/projects/$project/ns/$namespace/connect" - | "/orgs/$organization/projects/$project/ns/$namespace"; - id: - | "__root__" - | "/_context" - | "/join" - | "/login" - | "/onboarding" - | "/sso-callback" - | "/_context/_cloud" - | "/_context/_engine" - | "/onboarding/accept-invitation" - | "/onboarding/choose-organization" - | "/_context/" - | "/_context/_cloud/orgs/$organization" - | "/_context/_engine/ns/$namespace" - | "/_context/_engine/ns/$namespace/connect" - | "/_context/_cloud/orgs/$organization/" - | "/_context/_engine/ns/$namespace/" - | "/_context/_cloud/orgs/$organization/projects/$project" - | "/_context/_cloud/orgs/$organization/projects/" - | "/_context/_cloud/orgs/$organization/projects/$project/" - | "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace" - | "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect" - | "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/"; - fileRoutesById: FileRoutesById; + fileRoutesByFullPath: FileRoutesByFullPath + fullPaths: + | '/join' + | '/login' + | '/onboarding' + | '/sso-callback' + | '/onboarding/accept-invitation' + | '/onboarding/choose-organization' + | '/' + | '/orgs/$organization' + | '/ns/$namespace' + | '/ns/$namespace/connect' + | '/orgs/$organization/' + | '/ns/$namespace/' + | '/orgs/$organization/projects/$project' + | '/orgs/$organization/projects' + | '/orgs/$organization/projects/$project/' + | '/orgs/$organization/projects/$project/ns/$namespace' + | '/orgs/$organization/projects/$project/ns/$namespace/connect' + | '/orgs/$organization/projects/$project/ns/$namespace/' + fileRoutesByTo: FileRoutesByTo + to: + | '/join' + | '/login' + | '/onboarding' + | '/sso-callback' + | '/onboarding/accept-invitation' + | '/onboarding/choose-organization' + | '/' + | '/ns/$namespace/connect' + | '/orgs/$organization' + | '/ns/$namespace' + | '/orgs/$organization/projects' + | '/orgs/$organization/projects/$project' + | '/orgs/$organization/projects/$project/ns/$namespace/connect' + | '/orgs/$organization/projects/$project/ns/$namespace' + id: + | '__root__' + | '/_context' + | '/join' + | '/login' + | '/onboarding' + | '/sso-callback' + | '/_context/_cloud' + | '/_context/_engine' + | '/onboarding/accept-invitation' + | '/onboarding/choose-organization' + | '/_context/' + | '/_context/_cloud/orgs/$organization' + | '/_context/_engine/ns/$namespace' + | '/_context/_engine/ns/$namespace/connect' + | '/_context/_cloud/orgs/$organization/' + | '/_context/_engine/ns/$namespace/' + | '/_context/_cloud/orgs/$organization/projects/$project' + | '/_context/_cloud/orgs/$organization/projects/' + | '/_context/_cloud/orgs/$organization/projects/$project/' + | '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace' + | '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect' + | '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/' + fileRoutesById: FileRoutesById } export interface RootRouteChildren { - ContextRoute: typeof ContextRouteWithChildren; - JoinRoute: typeof JoinRoute; - LoginRoute: typeof LoginRoute; - OnboardingRoute: typeof OnboardingRouteWithChildren; - SsoCallbackRoute: typeof SsoCallbackRoute; + ContextRoute: typeof ContextRouteWithChildren + JoinRoute: typeof JoinRoute + LoginRoute: typeof LoginRoute + OnboardingRoute: typeof OnboardingRouteWithChildren + SsoCallbackRoute: typeof SsoCallbackRoute } -declare module "@tanstack/react-router" { - interface FileRoutesByPath { - "/sso-callback": { - id: "/sso-callback"; - path: "/sso-callback"; - fullPath: "/sso-callback"; - preLoaderRoute: typeof SsoCallbackRouteImport; - parentRoute: typeof rootRouteImport; - }; - "/onboarding": { - id: "/onboarding"; - path: "/onboarding"; - fullPath: "/onboarding"; - preLoaderRoute: typeof OnboardingRouteImport; - parentRoute: typeof rootRouteImport; - }; - "/login": { - id: "/login"; - path: "/login"; - fullPath: "/login"; - preLoaderRoute: typeof LoginRouteImport; - parentRoute: typeof rootRouteImport; - }; - "/join": { - id: "/join"; - path: "/join"; - fullPath: "/join"; - preLoaderRoute: typeof JoinRouteImport; - parentRoute: typeof rootRouteImport; - }; - "/_context": { - id: "/_context"; - path: ""; - fullPath: ""; - preLoaderRoute: typeof ContextRouteImport; - parentRoute: typeof rootRouteImport; - }; - "/_context/": { - id: "/_context/"; - path: "/"; - fullPath: "/"; - preLoaderRoute: typeof ContextIndexRouteImport; - parentRoute: typeof ContextRoute; - }; - "/onboarding/choose-organization": { - id: "/onboarding/choose-organization"; - path: "/choose-organization"; - fullPath: "/onboarding/choose-organization"; - preLoaderRoute: typeof OnboardingChooseOrganizationRouteImport; - parentRoute: typeof OnboardingRoute; - }; - "/onboarding/accept-invitation": { - id: "/onboarding/accept-invitation"; - path: "/accept-invitation"; - fullPath: "/onboarding/accept-invitation"; - preLoaderRoute: typeof OnboardingAcceptInvitationRouteImport; - parentRoute: typeof OnboardingRoute; - }; - "/_context/_engine": { - id: "/_context/_engine"; - path: ""; - fullPath: ""; - preLoaderRoute: typeof ContextEngineRouteImport; - parentRoute: typeof ContextRoute; - }; - "/_context/_cloud": { - id: "/_context/_cloud"; - path: ""; - fullPath: ""; - preLoaderRoute: typeof ContextCloudRouteImport; - parentRoute: typeof ContextRoute; - }; - "/_context/_engine/ns/$namespace": { - id: "/_context/_engine/ns/$namespace"; - path: "/ns/$namespace"; - fullPath: "/ns/$namespace"; - preLoaderRoute: typeof ContextEngineNsNamespaceRouteImport; - parentRoute: typeof ContextEngineRoute; - }; - "/_context/_cloud/orgs/$organization": { - id: "/_context/_cloud/orgs/$organization"; - path: "/orgs/$organization"; - fullPath: "/orgs/$organization"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationRouteImport; - parentRoute: typeof ContextCloudRoute; - }; - "/_context/_engine/ns/$namespace/": { - id: "/_context/_engine/ns/$namespace/"; - path: "/"; - fullPath: "/ns/$namespace/"; - preLoaderRoute: typeof ContextEngineNsNamespaceIndexRouteImport; - parentRoute: typeof ContextEngineNsNamespaceRoute; - }; - "/_context/_cloud/orgs/$organization/": { - id: "/_context/_cloud/orgs/$organization/"; - path: "/"; - fullPath: "/orgs/$organization/"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationIndexRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationRoute; - }; - "/_context/_engine/ns/$namespace/connect": { - id: "/_context/_engine/ns/$namespace/connect"; - path: "/connect"; - fullPath: "/ns/$namespace/connect"; - preLoaderRoute: typeof ContextEngineNsNamespaceConnectRouteImport; - parentRoute: typeof ContextEngineNsNamespaceRoute; - }; - "/_context/_cloud/orgs/$organization/projects/": { - id: "/_context/_cloud/orgs/$organization/projects/"; - path: "/projects"; - fullPath: "/orgs/$organization/projects"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsIndexRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationRoute; - }; - "/_context/_cloud/orgs/$organization/projects/$project": { - id: "/_context/_cloud/orgs/$organization/projects/$project"; - path: "/projects/$project"; - fullPath: "/orgs/$organization/projects/$project"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationRoute; - }; - "/_context/_cloud/orgs/$organization/projects/$project/": { - id: "/_context/_cloud/orgs/$organization/projects/$project/"; - path: "/"; - fullPath: "/orgs/$organization/projects/$project/"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectIndexRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRoute; - }; - "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace": { - id: "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace"; - path: "/ns/$namespace"; - fullPath: "/orgs/$organization/projects/$project/ns/$namespace"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRoute; - }; - "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/": { - id: "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/"; - path: "/"; - fullPath: "/orgs/$organization/projects/$project/ns/$namespace/"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute; - }; - "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect": { - id: "/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect"; - path: "/connect"; - fullPath: "/orgs/$organization/projects/$project/ns/$namespace/connect"; - preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRouteImport; - parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute; - }; - } +declare module '@tanstack/react-router' { + interface FileRoutesByPath { + '/sso-callback': { + id: '/sso-callback' + path: '/sso-callback' + fullPath: '/sso-callback' + preLoaderRoute: typeof SsoCallbackRouteImport + parentRoute: typeof rootRouteImport + } + '/onboarding': { + id: '/onboarding' + path: '/onboarding' + fullPath: '/onboarding' + preLoaderRoute: typeof OnboardingRouteImport + parentRoute: typeof rootRouteImport + } + '/login': { + id: '/login' + path: '/login' + fullPath: '/login' + preLoaderRoute: typeof LoginRouteImport + parentRoute: typeof rootRouteImport + } + '/join': { + id: '/join' + path: '/join' + fullPath: '/join' + preLoaderRoute: typeof JoinRouteImport + parentRoute: typeof rootRouteImport + } + '/_context': { + id: '/_context' + path: '' + fullPath: '' + preLoaderRoute: typeof ContextRouteImport + parentRoute: typeof rootRouteImport + } + '/_context/': { + id: '/_context/' + path: '/' + fullPath: '/' + preLoaderRoute: typeof ContextIndexRouteImport + parentRoute: typeof ContextRoute + } + '/onboarding/choose-organization': { + id: '/onboarding/choose-organization' + path: '/choose-organization' + fullPath: '/onboarding/choose-organization' + preLoaderRoute: typeof OnboardingChooseOrganizationRouteImport + parentRoute: typeof OnboardingRoute + } + '/onboarding/accept-invitation': { + id: '/onboarding/accept-invitation' + path: '/accept-invitation' + fullPath: '/onboarding/accept-invitation' + preLoaderRoute: typeof OnboardingAcceptInvitationRouteImport + parentRoute: typeof OnboardingRoute + } + '/_context/_engine': { + id: '/_context/_engine' + path: '' + fullPath: '' + preLoaderRoute: typeof ContextEngineRouteImport + parentRoute: typeof ContextRoute + } + '/_context/_cloud': { + id: '/_context/_cloud' + path: '' + fullPath: '' + preLoaderRoute: typeof ContextCloudRouteImport + parentRoute: typeof ContextRoute + } + '/_context/_engine/ns/$namespace': { + id: '/_context/_engine/ns/$namespace' + path: '/ns/$namespace' + fullPath: '/ns/$namespace' + preLoaderRoute: typeof ContextEngineNsNamespaceRouteImport + parentRoute: typeof ContextEngineRoute + } + '/_context/_cloud/orgs/$organization': { + id: '/_context/_cloud/orgs/$organization' + path: '/orgs/$organization' + fullPath: '/orgs/$organization' + preLoaderRoute: typeof ContextCloudOrgsOrganizationRouteImport + parentRoute: typeof ContextCloudRoute + } + '/_context/_engine/ns/$namespace/': { + id: '/_context/_engine/ns/$namespace/' + path: '/' + fullPath: '/ns/$namespace/' + preLoaderRoute: typeof ContextEngineNsNamespaceIndexRouteImport + parentRoute: typeof ContextEngineNsNamespaceRoute + } + '/_context/_cloud/orgs/$organization/': { + id: '/_context/_cloud/orgs/$organization/' + path: '/' + fullPath: '/orgs/$organization/' + preLoaderRoute: typeof ContextCloudOrgsOrganizationIndexRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationRoute + } + '/_context/_engine/ns/$namespace/connect': { + id: '/_context/_engine/ns/$namespace/connect' + path: '/connect' + fullPath: '/ns/$namespace/connect' + preLoaderRoute: typeof ContextEngineNsNamespaceConnectRouteImport + parentRoute: typeof ContextEngineNsNamespaceRoute + } + '/_context/_cloud/orgs/$organization/projects/': { + id: '/_context/_cloud/orgs/$organization/projects/' + path: '/projects' + fullPath: '/orgs/$organization/projects' + preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsIndexRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationRoute + } + '/_context/_cloud/orgs/$organization/projects/$project': { + id: '/_context/_cloud/orgs/$organization/projects/$project' + path: '/projects/$project' + fullPath: '/orgs/$organization/projects/$project' + preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationRoute + } + '/_context/_cloud/orgs/$organization/projects/$project/': { + id: '/_context/_cloud/orgs/$organization/projects/$project/' + path: '/' + fullPath: '/orgs/$organization/projects/$project/' + preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectIndexRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRoute + } + '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace': { + id: '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace' + path: '/ns/$namespace' + fullPath: '/orgs/$organization/projects/$project/ns/$namespace' + preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRoute + } + '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/': { + id: '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/' + path: '/' + fullPath: '/orgs/$organization/projects/$project/ns/$namespace/' + preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute + } + '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect': { + id: '/_context/_cloud/orgs/$organization/projects/$project/ns/$namespace/connect' + path: '/connect' + fullPath: '/orgs/$organization/projects/$project/ns/$namespace/connect' + preLoaderRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRouteImport + parentRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute + } + } } interface ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteChildren { - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute; - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute; + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute } const ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteChildren: ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteChildren = - { - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute: - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute, - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute: - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute, - }; + { + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute: + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceConnectRoute, + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute: + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceIndexRoute, + } const ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren = - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute._addFileChildren( - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteChildren, - ); + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute._addFileChildren( + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteChildren, + ) interface ContextCloudOrgsOrganizationProjectsProjectRouteChildren { - ContextCloudOrgsOrganizationProjectsProjectIndexRoute: typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute; - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren; + ContextCloudOrgsOrganizationProjectsProjectIndexRoute: typeof ContextCloudOrgsOrganizationProjectsProjectIndexRoute + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute: typeof ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren } const ContextCloudOrgsOrganizationProjectsProjectRouteChildren: ContextCloudOrgsOrganizationProjectsProjectRouteChildren = - { - ContextCloudOrgsOrganizationProjectsProjectIndexRoute: - ContextCloudOrgsOrganizationProjectsProjectIndexRoute, - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute: - ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren, - }; + { + ContextCloudOrgsOrganizationProjectsProjectIndexRoute: + ContextCloudOrgsOrganizationProjectsProjectIndexRoute, + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRoute: + ContextCloudOrgsOrganizationProjectsProjectNsNamespaceRouteWithChildren, + } const ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren = - ContextCloudOrgsOrganizationProjectsProjectRoute._addFileChildren( - ContextCloudOrgsOrganizationProjectsProjectRouteChildren, - ); + ContextCloudOrgsOrganizationProjectsProjectRoute._addFileChildren( + ContextCloudOrgsOrganizationProjectsProjectRouteChildren, + ) interface ContextCloudOrgsOrganizationRouteChildren { - ContextCloudOrgsOrganizationIndexRoute: typeof ContextCloudOrgsOrganizationIndexRoute; - ContextCloudOrgsOrganizationProjectsProjectRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren; - ContextCloudOrgsOrganizationProjectsIndexRoute: typeof ContextCloudOrgsOrganizationProjectsIndexRoute; + ContextCloudOrgsOrganizationIndexRoute: typeof ContextCloudOrgsOrganizationIndexRoute + ContextCloudOrgsOrganizationProjectsProjectRoute: typeof ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren + ContextCloudOrgsOrganizationProjectsIndexRoute: typeof ContextCloudOrgsOrganizationProjectsIndexRoute } const ContextCloudOrgsOrganizationRouteChildren: ContextCloudOrgsOrganizationRouteChildren = - { - ContextCloudOrgsOrganizationIndexRoute: - ContextCloudOrgsOrganizationIndexRoute, - ContextCloudOrgsOrganizationProjectsProjectRoute: - ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren, - ContextCloudOrgsOrganizationProjectsIndexRoute: - ContextCloudOrgsOrganizationProjectsIndexRoute, - }; + { + ContextCloudOrgsOrganizationIndexRoute: + ContextCloudOrgsOrganizationIndexRoute, + ContextCloudOrgsOrganizationProjectsProjectRoute: + ContextCloudOrgsOrganizationProjectsProjectRouteWithChildren, + ContextCloudOrgsOrganizationProjectsIndexRoute: + ContextCloudOrgsOrganizationProjectsIndexRoute, + } const ContextCloudOrgsOrganizationRouteWithChildren = - ContextCloudOrgsOrganizationRoute._addFileChildren( - ContextCloudOrgsOrganizationRouteChildren, - ); + ContextCloudOrgsOrganizationRoute._addFileChildren( + ContextCloudOrgsOrganizationRouteChildren, + ) interface ContextCloudRouteChildren { - ContextCloudOrgsOrganizationRoute: typeof ContextCloudOrgsOrganizationRouteWithChildren; + ContextCloudOrgsOrganizationRoute: typeof ContextCloudOrgsOrganizationRouteWithChildren } const ContextCloudRouteChildren: ContextCloudRouteChildren = { - ContextCloudOrgsOrganizationRoute: - ContextCloudOrgsOrganizationRouteWithChildren, -}; + ContextCloudOrgsOrganizationRoute: + ContextCloudOrgsOrganizationRouteWithChildren, +} const ContextCloudRouteWithChildren = ContextCloudRoute._addFileChildren( - ContextCloudRouteChildren, -); + ContextCloudRouteChildren, +) interface ContextEngineNsNamespaceRouteChildren { - ContextEngineNsNamespaceConnectRoute: typeof ContextEngineNsNamespaceConnectRoute; - ContextEngineNsNamespaceIndexRoute: typeof ContextEngineNsNamespaceIndexRoute; + ContextEngineNsNamespaceConnectRoute: typeof ContextEngineNsNamespaceConnectRoute + ContextEngineNsNamespaceIndexRoute: typeof ContextEngineNsNamespaceIndexRoute } const ContextEngineNsNamespaceRouteChildren: ContextEngineNsNamespaceRouteChildren = - { - ContextEngineNsNamespaceConnectRoute: - ContextEngineNsNamespaceConnectRoute, - ContextEngineNsNamespaceIndexRoute: ContextEngineNsNamespaceIndexRoute, - }; + { + ContextEngineNsNamespaceConnectRoute: ContextEngineNsNamespaceConnectRoute, + ContextEngineNsNamespaceIndexRoute: ContextEngineNsNamespaceIndexRoute, + } const ContextEngineNsNamespaceRouteWithChildren = - ContextEngineNsNamespaceRoute._addFileChildren( - ContextEngineNsNamespaceRouteChildren, - ); + ContextEngineNsNamespaceRoute._addFileChildren( + ContextEngineNsNamespaceRouteChildren, + ) interface ContextEngineRouteChildren { - ContextEngineNsNamespaceRoute: typeof ContextEngineNsNamespaceRouteWithChildren; + ContextEngineNsNamespaceRoute: typeof ContextEngineNsNamespaceRouteWithChildren } const ContextEngineRouteChildren: ContextEngineRouteChildren = { - ContextEngineNsNamespaceRoute: ContextEngineNsNamespaceRouteWithChildren, -}; + ContextEngineNsNamespaceRoute: ContextEngineNsNamespaceRouteWithChildren, +} const ContextEngineRouteWithChildren = ContextEngineRoute._addFileChildren( - ContextEngineRouteChildren, -); + ContextEngineRouteChildren, +) interface ContextRouteChildren { - ContextCloudRoute: typeof ContextCloudRouteWithChildren; - ContextEngineRoute: typeof ContextEngineRouteWithChildren; - ContextIndexRoute: typeof ContextIndexRoute; + ContextCloudRoute: typeof ContextCloudRouteWithChildren + ContextEngineRoute: typeof ContextEngineRouteWithChildren + ContextIndexRoute: typeof ContextIndexRoute } const ContextRouteChildren: ContextRouteChildren = { - ContextCloudRoute: ContextCloudRouteWithChildren, - ContextEngineRoute: ContextEngineRouteWithChildren, - ContextIndexRoute: ContextIndexRoute, -}; + ContextCloudRoute: ContextCloudRouteWithChildren, + ContextEngineRoute: ContextEngineRouteWithChildren, + ContextIndexRoute: ContextIndexRoute, +} const ContextRouteWithChildren = - ContextRoute._addFileChildren(ContextRouteChildren); + ContextRoute._addFileChildren(ContextRouteChildren) interface OnboardingRouteChildren { - OnboardingAcceptInvitationRoute: typeof OnboardingAcceptInvitationRoute; - OnboardingChooseOrganizationRoute: typeof OnboardingChooseOrganizationRoute; + OnboardingAcceptInvitationRoute: typeof OnboardingAcceptInvitationRoute + OnboardingChooseOrganizationRoute: typeof OnboardingChooseOrganizationRoute } const OnboardingRouteChildren: OnboardingRouteChildren = { - OnboardingAcceptInvitationRoute: OnboardingAcceptInvitationRoute, - OnboardingChooseOrganizationRoute: OnboardingChooseOrganizationRoute, -}; + OnboardingAcceptInvitationRoute: OnboardingAcceptInvitationRoute, + OnboardingChooseOrganizationRoute: OnboardingChooseOrganizationRoute, +} const OnboardingRouteWithChildren = OnboardingRoute._addFileChildren( - OnboardingRouteChildren, -); + OnboardingRouteChildren, +) const rootRouteChildren: RootRouteChildren = { - ContextRoute: ContextRouteWithChildren, - JoinRoute: JoinRoute, - LoginRoute: LoginRoute, - OnboardingRoute: OnboardingRouteWithChildren, - SsoCallbackRoute: SsoCallbackRoute, -}; + ContextRoute: ContextRouteWithChildren, + JoinRoute: JoinRoute, + LoginRoute: LoginRoute, + OnboardingRoute: OnboardingRouteWithChildren, + SsoCallbackRoute: SsoCallbackRoute, +} export const routeTree = rootRouteImport - ._addFileChildren(rootRouteChildren) - ._addFileTypes(); + ._addFileChildren(rootRouteChildren) + ._addFileTypes() diff --git a/frontend/src/routes/__root.tsx b/frontend/src/routes/__root.tsx index 4cc72fbbc9..b7a9b761c5 100644 --- a/frontend/src/routes/__root.tsx +++ b/frontend/src/routes/__root.tsx @@ -1,6 +1,5 @@ import type { Clerk } from "@clerk/clerk-js"; import { ClerkProvider } from "@clerk/clerk-react"; -import * as ClerkComponents from "@clerk/elements/common"; import { dark } from "@clerk/themes"; import type { QueryClient } from "@tanstack/react-query"; import { diff --git a/frontend/src/routes/_context/_cloud.tsx b/frontend/src/routes/_context/_cloud.tsx index b8b5953f0b..50aa48c90e 100644 --- a/frontend/src/routes/_context/_cloud.tsx +++ b/frontend/src/routes/_context/_cloud.tsx @@ -48,6 +48,7 @@ function CloudModals() { const EditProviderConfigDialog = useDialog.EditProviderConfig.Dialog; const DeleteConfigDialog = useDialog.DeleteConfig.Dialog; const TokensDialog = useDialog.Tokens.Dialog; + const StartWithTemplateDialog = useDialog.StartWithTemplate.Dialog; return ( <> @@ -302,6 +303,23 @@ function CloudModals() { }, }} /> + { + if (!value) { + navigate({ + to: ".", + search: (old) => ({ + ...old, + modal: undefined, + }), + }); + } + }, + }} + /> ); } diff --git a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx index 2db1e8fd0d..44ac4c3c93 100644 --- a/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx +++ b/frontend/src/routes/_context/_cloud/orgs.$organization/projects.$project/ns.$namespace/connect.tsx @@ -26,6 +26,7 @@ import { } from "@tanstack/react-router"; import { match } from "ts-pattern"; import { hasProvider } from "@/app/data-providers/engine-data-provider"; +import { GettingStarted } from "@/app/getting-started"; import { HelpDropdown } from "@/app/help-dropdown"; import { RunnerConfigsTable } from "@/app/runner-config-table"; import { RunnersTable } from "@/app/runners-table"; @@ -116,203 +117,7 @@ export function RouteComponent() { } if (!hasRunnerNames) { - return ( -
-
-
-
-

Create New Project

-
-

- Start a new RivetKit project with Rivet Cloud. Use - one of our templates to get started quickly. -

- -
-
-

1-Click Deploy From Template

-
- - -
-
-
-

Quickstart Guides

-
- - - - - - - - - -
-
-
-
-
-

Connect Existing Project

-
- - - - - - -
-
-

- Connect your RivetKit application to Rivet Cloud. - Use your cloud of choice to run Rivet Actors. -

- -
-
-

Add Provider

-
- - - - - - - -
-
-
-
-
- ); + return ; } return ( @@ -739,19 +544,3 @@ function DataLoadingPlaceholder() { ); } - -function OneClickDeployRailwayButton() { - return ( - - ); -} diff --git a/frontend/src/routes/_context/_engine.tsx b/frontend/src/routes/_context/_engine.tsx index 085a73dd1b..5d39a69a06 100644 --- a/frontend/src/routes/_context/_engine.tsx +++ b/frontend/src/routes/_context/_engine.tsx @@ -44,6 +44,7 @@ function EngineModals() { const ConnectHetznerDialog = useDialog.ConnectHetzner.Dialog; const EditProviderConfigDialog = useDialog.EditProviderConfig.Dialog; const DeleteConfigDialog = useDialog.DeleteConfig.Dialog; + const StartWithTemplateDialog = useDialog.StartWithTemplate.Dialog; return ( <> @@ -265,6 +266,23 @@ function EngineModals() { }, }} /> + { + if (!value) { + navigate({ + to: ".", + search: (old) => ({ + ...old, + modal: undefined, + }), + }); + } + }, + }} + /> ); } diff --git a/frontend/vite.engine.config.ts b/frontend/vite.engine.config.ts index 934a7d08c8..18655da977 100644 --- a/frontend/vite.engine.config.ts +++ b/frontend/vite.engine.config.ts @@ -4,6 +4,7 @@ import { sentryVitePlugin } from "@sentry/vite-plugin"; import { tanstackRouter } from "@tanstack/router-plugin/vite"; import react from "@vitejs/plugin-react"; import favigo from "favigo/vite"; +import Macros from "unplugin-macros/vite"; import { defineConfig, loadEnv, type Plugin } from "vite"; import tsconfigPaths from "vite-tsconfig-paths"; import { commonEnvSchema } from "./src/lib/env"; @@ -58,6 +59,7 @@ export default defineConfig(({ mode }) => { background: "transparent", }, }), + Macros(), ], server: { port: 43708, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index bbc227b386..f31e3c7fe0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1852,6 +1852,9 @@ importers: typescript-plugin-css-modules: specifier: ^5.2.0 version: 5.2.0(typescript@5.9.2) + unplugin-macros: + specifier: ^0.18.3 + version: 0.18.3(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1) usehooks-ts: specifier: ^3.1.1 version: 3.1.1(react@19.1.1) @@ -2357,7 +2360,7 @@ importers: version: 5.9.2 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.9.2)(vite@7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)) + version: 5.1.4(typescript@5.9.2)(vite@5.4.20(@types/node@22.18.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)) vitest: specifier: ^3.1.1 version: 3.2.4(@types/debug@4.1.12)(@types/node@22.18.1)(@vitest/ui@3.1.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) @@ -2442,7 +2445,7 @@ importers: version: 15.5.6(@mdx-js/loader@3.1.1(webpack@5.101.3(esbuild@0.25.9)))(@mdx-js/react@3.1.1(@types/react@19.2.2)(react@19.2.0)) '@next/third-parties': specifier: latest - version: 16.0.3(next@15.5.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0) + version: 16.0.6(next@15.5.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0) '@rivet-gg/api': specifier: 25.5.3 version: 25.5.3 @@ -5530,8 +5533,8 @@ packages: cpu: [x64] os: [win32] - '@next/third-parties@16.0.3': - resolution: {integrity: sha512-QjTRQ4ydXguFkpMCUMl5oSslxmh8mAtmnzc9DEtLkZcGmAuQcZg2M3lswMn62sdID+F06crS3IQ58X3sjjBLVA==} + '@next/third-parties@16.0.6': + resolution: {integrity: sha512-yYZkmgc3YuMsvouklk3R3oDEmzq1rEiEm/5wGHjTfyTCsRrrD3jBX84xrMtEN7vVWbWXXWbV0SZ5TfkgeMLGWg==} peerDependencies: next: ^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0-beta.0 react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 @@ -7972,6 +7975,10 @@ packages: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} + ast-kit@2.2.0: + resolution: {integrity: sha512-m1Q/RaVOnTp9JxPX+F+Zn7IcLYMzM8kZofDImfsKZd8MbR+ikdOzTeztStWqfrqIxZnYWryyI9ePm3NGjnZgGw==} + engines: {node: '>=20.19.0'} + ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -10780,6 +10787,10 @@ packages: lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} + magic-string-ast@1.0.3: + resolution: {integrity: sha512-CvkkH1i81zl7mmb94DsRiFeG9V2fR2JeuK8yDgS8oiZSFa++wWLEgZ5ufEOyLHbvSbD1gTRKv9NdX69Rnvr9JA==} + engines: {node: '>=20.19.0'} + magic-string@0.30.19: resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} @@ -13485,6 +13496,10 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} + unplugin-macros@0.18.3: + resolution: {integrity: sha512-wTIAXuT/+yLxVtgIxpeNUtjb4pzebL5W7EkJwXMYlY4OqJIuFOEAsitMyX3exitT/4DtXjycs3sg+N5SIXMECw==} + engines: {node: '>=20.18.0'} + unplugin@1.0.1: resolution: {integrity: sha512-aqrHaVBWW1JVKBHmGo33T5TxeL0qWzfvjWokObHA9bYmN7eNDkwOxmLjhioHl9878qDFMAaT51XNroRyuz7WxA==} @@ -14319,7 +14334,7 @@ snapshots: '@babel/generator@7.28.3': dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/types': 7.28.4 '@jridgewell/gen-mapping': 0.3.13 '@jridgewell/trace-mapping': 0.3.30 @@ -14335,7 +14350,7 @@ snapshots: '@babel/helper-annotate-as-pure@7.27.3': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-compilation-targets@7.27.2': dependencies: @@ -14394,7 +14409,7 @@ snapshots: '@babel/helper-member-expression-to-functions@7.27.1': dependencies: '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -14432,7 +14447,7 @@ snapshots: '@babel/helper-optimise-call-expression@7.27.1': dependencies: - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 '@babel/helper-plugin-utils@7.27.1': {} @@ -14466,7 +14481,7 @@ snapshots: '@babel/helper-skip-transparent-expression-wrappers@7.27.1': dependencies: '@babel/traverse': 7.28.4 - '@babel/types': 7.28.4 + '@babel/types': 7.28.5 transitivePeerDependencies: - supports-color @@ -16881,7 +16896,7 @@ snapshots: '@jridgewell/remapping@2.3.5': dependencies: '@jridgewell/gen-mapping': 0.3.13 - '@jridgewell/trace-mapping': 0.3.30 + '@jridgewell/trace-mapping': 0.3.31 '@jridgewell/resolve-uri@3.1.2': {} @@ -17218,7 +17233,7 @@ snapshots: '@next/swc-win32-x64-msvc@15.5.6': optional: true - '@next/third-parties@16.0.3(next@15.5.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)': + '@next/third-parties@16.0.6(next@15.5.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2))(react@19.2.0)': dependencies: next: 15.5.6(@babel/core@7.28.5)(@opentelemetry/api@1.9.0)(babel-plugin-macros@3.1.0)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.0(react@19.2.0))(react@19.2.0)(sass@1.93.2) react: 19.2.0 @@ -19082,7 +19097,7 @@ snapshots: '@types/babel__template@7.4.4': dependencies: - '@babel/parser': 7.28.4 + '@babel/parser': 7.28.5 '@babel/types': 7.28.4 '@types/babel__traverse@7.28.0': @@ -20206,6 +20221,11 @@ snapshots: assertion-error@2.0.1: {} + ast-kit@2.2.0: + dependencies: + '@babel/parser': 7.28.5 + pathe: 2.0.3 + ast-types-flow@0.0.8: {} ast-types@0.16.1: @@ -21563,7 +21583,7 @@ snapshots: eslint: 9.39.1(jiti@1.21.7) eslint-import-resolver-node: 0.3.9 eslint-import-resolver-typescript: 3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)) eslint-plugin-jsx-a11y: 6.10.2(eslint@9.39.1(jiti@1.21.7)) eslint-plugin-react: 7.37.5(eslint@9.39.1(jiti@1.21.7)) eslint-plugin-react-hooks: 7.0.1(eslint@9.39.1(jiti@1.21.7)) @@ -21596,7 +21616,7 @@ snapshots: tinyglobby: 0.2.15 unrs-resolver: 1.11.1 optionalDependencies: - eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)) + eslint-plugin-import: 2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)) transitivePeerDependencies: - supports-color @@ -21611,7 +21631,7 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1(eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)))(eslint@9.39.1(jiti@1.21.7)): + eslint-plugin-import@2.32.0(@typescript-eslint/parser@8.47.0(eslint@9.39.1(jiti@1.21.7))(typescript@5.9.3))(eslint-import-resolver-typescript@3.10.1)(eslint@9.39.1(jiti@1.21.7)): dependencies: '@rtsao/scc': 1.1.0 array-includes: 3.1.9 @@ -23460,6 +23480,10 @@ snapshots: lunr@2.3.9: {} + magic-string-ast@1.0.3: + dependencies: + magic-string: 0.30.19 + magic-string@0.30.19: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 @@ -27278,6 +27302,27 @@ snapshots: unpipe@1.0.0: {} + unplugin-macros@0.18.3(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1): + dependencies: + ast-kit: 2.2.0 + magic-string-ast: 1.0.3 + unplugin: 2.3.10 + vite: 7.2.2(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1) + vite-node: 5.2.0(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - ms + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + unplugin@1.0.1: dependencies: acorn: 8.15.0 @@ -27578,6 +27623,27 @@ snapshots: - supports-color - terser + vite-node@5.2.0(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1): + dependencies: + cac: 6.7.14 + es-module-lexer: 1.7.0 + obug: 2.0.0(ms@2.1.3) + pathe: 2.0.3 + vite: 7.2.2(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - ms + - sass + - sass-embedded + - stylus + - sugarss + - terser + - tsx + - yaml + vite-node@5.2.0(@types/node@24.10.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(ms@2.1.3)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: cac: 6.7.14 @@ -27650,13 +27716,13 @@ snapshots: - supports-color - typescript - vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1)): + vite-tsconfig-paths@5.1.4(typescript@5.9.2)(vite@5.4.20(@types/node@22.18.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)): dependencies: debug: 4.4.1 globrex: 0.1.2 tsconfck: 3.1.6(typescript@5.9.2) optionalDependencies: - vite: 7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1) + vite: 5.4.20(@types/node@22.18.1)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1) transitivePeerDependencies: - supports-color - typescript @@ -27771,7 +27837,7 @@ snapshots: tsx: 4.20.6 yaml: 2.8.1 - vite@7.2.2(@types/node@22.18.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.5)(yaml@2.8.1): + vite@7.2.2(@types/node@20.19.13)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: esbuild: 0.25.12 fdir: 6.5.0(picomatch@4.0.3) @@ -27780,7 +27846,7 @@ snapshots: rollup: 4.53.3 tinyglobby: 0.2.15 optionalDependencies: - '@types/node': 22.18.1 + '@types/node': 20.19.13 fsevents: 2.3.3 jiti: 1.21.7 less: 4.4.1 @@ -27788,9 +27854,8 @@ snapshots: sass: 1.93.2 stylus: 0.62.0 terser: 5.44.1 - tsx: 4.20.5 + tsx: 4.20.6 yaml: 2.8.1 - optional: true vite@7.2.2(@types/node@24.10.1)(jiti@1.21.7)(less@4.4.1)(lightningcss@1.30.2)(sass@1.93.2)(stylus@0.62.0)(terser@5.44.1)(tsx@4.20.6)(yaml@2.8.1): dependencies: