2a1273b683
* Added the new colours to the Tailwind config * Fixed Tsailwind compile errors * WIP Geist working in the app * WIP Storybook * Storybook is working again… ouch * Use Geist mono for CodeMirror * Some find/replace class changes * Resizable colours improved * WIP on primary button * Minor style improvements * Improve the side menu header styling * Improved v2 breadcrumbs * Account side menu tweaks * The page now works with the NavBar and UpgradePrompt * Removed unused import * Refactored the buttons to be dry-er * Removed the breadcrumbs * WIP on nav bar * WIP updating the button styles * Fix for the old test page * Fix for type errors * Removed console.log * Colour change in the resizable handle * New loading bar divider * Removed the design plugin * Creating our own storybook pages * Added some “storybook” pages * Added DetailCell storybook * WIP new animation for the loading page * Added the new loading divider * Fix for the time frame filter having a green border * Style improvements to the new test page * Small style improvements * Improvements to the list pagination components * Nav bar back button improved * Improvements to the run page * Lots of v2 style improvements * Help looks better * Improvements to the regenerate API key modal * More general improvements * Added section titles to our storybook * Added form stories * Fix for missing key prop * Loading bar is working * Fixed button submitting state * Fix for the test button icon * Code bg improved * Improved oauth buttons * Integration page header fix * Various improvements, mainly changing button variants * Segmented control style updates * Added an outline of 3px for the segment control * Fixes for the billing pages * More pricing improvements * Added dialog to storybook * Typography now in storybook * Free usage bar added to storybook * Added inline clode to storybook * Separated menu types into a sub section in storybook * NamedIcon now in storybook * Added page header to storybook * Added pricing callout to storybook * Added radio groups to storybook * Added segmented controllers to storybook * Added shortcuts to storybook * Added switches to storybook * Added toast to storybook * Added tooltips to storybook * Added tree view to storybook * Added usage charts to storybook * Tarted up the environment variables page * Fix for the FreePlanUsage panel bg colours * Added new badge variants * Added the <TaskPath /> to the tasks table * Span header improvements * Started work on the timeline * Started work on the timeline * Fix for the run page header * Timeline tick marks are working * Timeline working * Got the durations showing on hover * Button improvements * Experimenting with how the duration should be shown * Lots of refinements to the timeline * Much nicer API for the Timeline * The switch is now purple to match the design, with inverted thumb when on * Removed old stuff * Export the props * Added the span with duration back in * Simplified more and fixed the span durations * Put in some decent dummy data * Rendering defaults * Wip with the mouse cursor * Improvements to the story * Added Slider primitive * Integrated the icons into the slider * Lots of layout improvements * Cleaned up imports * “Root” indicator * Animated background on partials * Pull the styles through to the spans and log dots * Fixed some bugs in the TreeView when nodes get created or destroyed * Fix for incorrect parentTask reference * Added run streaming endpoint for live refreshing * Added the tabs to Storybook * Fix for status font size mismatch * Fix for the misaligned run filter status * Set a minimum duration on the timeline * The TreeView now re-calculates if the number of nodes has changed * Partials now render to the end * Improved the durations gutter * The duration is calculated using the current time if there are partial events * Added the environment label to storybook * Improved the environment label style * Removed bottom margin from badge * Button style improvements * Callouts style fits the new design better * Got the scrollbars to appear on the tree/timeline * Added scroll support * Synced scrolling working * Close button and exit icon for the detail panel * secure field shows start of env * Clipboard improvements * Latest lockfile * Fix for the durations wrapping --------- Co-authored-by: James Ritchie <james@jamesritchie.co.uk>
100 lines
3.6 KiB
TypeScript
100 lines
3.6 KiB
TypeScript
import { ChatBubbleLeftRightIcon } from "@heroicons/react/20/solid";
|
|
import { Link } from "@remix-run/react";
|
|
import { AstroLogo } from "~/assets/logos/AstroLogo";
|
|
import { ExpressLogo } from "~/assets/logos/ExpressLogo";
|
|
import { FastifyLogo } from "~/assets/logos/FastifyLogo";
|
|
import { NestjsLogo } from "~/assets/logos/NestjsLogo";
|
|
import { NextjsLogo } from "~/assets/logos/NextjsLogo";
|
|
import { NuxtLogo } from "~/assets/logos/NuxtLogo";
|
|
import { RedwoodLogo } from "~/assets/logos/RedwoodLogo";
|
|
import { RemixLogo } from "~/assets/logos/RemixLogo";
|
|
import { SvelteKitLogo } from "~/assets/logos/SveltekitLogo";
|
|
import { useOrganization } from "~/hooks/useOrganizations";
|
|
import { useProject } from "~/hooks/useProject";
|
|
import { cn } from "~/utils/cn";
|
|
import {
|
|
projectSetupAstroPath,
|
|
projectSetupExpressPath,
|
|
projectSetupFastifyPath,
|
|
projectSetupNestjsPath,
|
|
projectSetupNextjsPath,
|
|
projectSetupNuxtPath,
|
|
projectSetupRedwoodPath,
|
|
projectSetupRemixPath,
|
|
projectSetupSvelteKitPath,
|
|
} from "~/utils/pathBuilder";
|
|
import { Feedback } from "../Feedback";
|
|
import { Button } from "../primitives/Buttons";
|
|
import { Header1 } from "../primitives/Headers";
|
|
|
|
export function FrameworkSelector() {
|
|
const organization = useOrganization();
|
|
const project = useProject();
|
|
|
|
return (
|
|
<div className="mx-auto max-w-3xl pt-28">
|
|
<div className="flex items-center justify-between">
|
|
<Header1 spacing>Choose a framework to get started…</Header1>
|
|
<Feedback
|
|
button={
|
|
<Button variant="tertiary/small" LeadingIcon={ChatBubbleLeftRightIcon}>
|
|
Request a framework
|
|
</Button>
|
|
}
|
|
defaultValue="feature"
|
|
/>
|
|
</div>
|
|
|
|
<div className="grid grid-cols-3 place-items-center gap-2">
|
|
<FrameworkLink to={projectSetupNextjsPath(organization, project)} supported>
|
|
<NextjsLogo className="w-32" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupExpressPath(organization, project)} supported>
|
|
<ExpressLogo className="w-36" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupRemixPath(organization, project)} supported>
|
|
<RemixLogo className="w-32" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupAstroPath(organization, project)} supported>
|
|
<AstroLogo className="w-32" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupSvelteKitPath(organization, project)} supported>
|
|
<SvelteKitLogo className="w-44" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupNestjsPath(organization, project)} supported>
|
|
<NestjsLogo className="w-36" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupFastifyPath(organization, project)}>
|
|
<FastifyLogo className="w-36" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupNuxtPath(organization, project)}>
|
|
<NuxtLogo className="w-32" />
|
|
</FrameworkLink>
|
|
<FrameworkLink to={projectSetupRedwoodPath(organization, project)}>
|
|
<RedwoodLogo className="w-44" />
|
|
</FrameworkLink>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
type FrameworkLinkProps = {
|
|
children: React.ReactNode;
|
|
to: string;
|
|
supported?: boolean;
|
|
};
|
|
|
|
function FrameworkLink({ children, to, supported = false }: FrameworkLinkProps) {
|
|
return (
|
|
<Link
|
|
to={to}
|
|
className={cn(
|
|
"flex h-28 w-full items-center justify-center rounded-md border border-charcoal-750 px-8 py-4 transition hover:bg-charcoal-850",
|
|
!supported && "border opacity-30 grayscale transition hover:opacity-100 hover:grayscale-0"
|
|
)}
|
|
>
|
|
{children}
|
|
</Link>
|
|
);
|
|
}
|