diff --git a/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPageView.tsx b/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPageView.tsx index 1da7d98f8e..d65f915cdf 100644 --- a/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPageView.tsx +++ b/site/src/pages/CreateTemplateGalleryPage/CreateTemplateGalleryPageView.tsx @@ -1,8 +1,3 @@ -import type { Interpolation, Theme } from "@emotion/react"; -import Card from "@mui/material/Card"; -import CardActionArea from "@mui/material/CardActionArea"; -import CardContent from "@mui/material/CardContent"; -import Stack from "@mui/material/Stack"; import { ExternalLinkIcon } from "lucide-react"; import type { FC } from "react"; import { Link as RouterLink } from "react-router"; @@ -58,83 +53,42 @@ export const CreateTemplateGalleryPageView: FC< > Create a Template - - +
+
-

+

Choose a starting point for your new template

-
- - - - -
- -
-
-

Upload Template

- - Get started by uploading an existing template - -
-
-
-
-
+
+ +
+ +
+
+

+ Upload Template +

+ + Get started by uploading an existing template + +
+
- +
{Boolean(error) && } {Boolean(!starterTemplatesByTag) && } - +
); }; - -const styles = { - sectionTitle: (theme) => ({ - color: theme.palette.text.primary, - fontSize: 16, - fontWeight: 400, - margin: 0, - }), - - cardTitle: (theme) => ({ - color: theme.palette.text.secondary, - fontSize: 14, - fontWeight: 600, - margin: 0, - marginBottom: 4, - }), - - cardDescription: (theme) => ({ - fontSize: 13, - color: theme.palette.text.secondary, - lineHeight: "1.6", - display: "block", - }), - - icon: { - flexShrink: 0, - width: 32, - height: 32, - }, - - menuItemIcon: (theme) => ({ - color: theme.palette.text.secondary, - width: 20, - height: 20, - }), -} satisfies Record>; diff --git a/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx b/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx index 3608fc95f0..0bca816c47 100644 --- a/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx +++ b/site/src/pages/CreateTemplateGalleryPage/StarterTemplates.tsx @@ -63,9 +63,9 @@ export const StarterTemplates: FC = ({ : undefined; return ( -
+
{starterTemplatesByTag && tags && ( -
+

Choose a starter template

@@ -89,15 +89,13 @@ export const StarterTemplates: FC = ({
)} -
+
{visibleTemplates?.map((example) => ( ({ - backgroundColor: theme.palette.background.paper, - })} example={example} key={example.id} activeTag={activeTag} + className="bg-surface-primary" /> ))}
diff --git a/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx b/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx index 31247e0761..5c2dfc22a5 100644 --- a/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx +++ b/site/src/pages/CreateTemplatePage/CreateTemplateForm.tsx @@ -1,5 +1,3 @@ -import Link from "@mui/material/Link"; -import TextField from "@mui/material/TextField"; import { useFormik } from "formik"; import camelCase from "lodash/camelCase"; import capitalize from "lodash/capitalize"; @@ -29,12 +27,16 @@ import { FormSection, HorizontalForm, } from "#/components/Form/Form"; +import { FormField } from "#/components/FormField/FormField"; import { IconField } from "#/components/IconField/IconField"; import { Label } from "#/components/Label/Label"; +import { Link } from "#/components/Link/Link"; import { OrganizationAutocomplete } from "#/components/OrganizationAutocomplete/OrganizationAutocomplete"; import { Spinner } from "#/components/Spinner/Spinner"; +import { Textarea } from "#/components/Textarea/Textarea"; import { ProvisionerTagsField } from "#/modules/provisioners/ProvisionerTagsField"; import { SelectedTemplate } from "#/pages/CreateWorkspacePage/SelectedTemplate"; +import { cn } from "#/utils/cn"; import { docs } from "#/utils/docs"; import { displayNameValidator, @@ -228,6 +230,10 @@ export const CreateTemplateForm: FC = (props) => { onSubmit, }); const getFieldHelpers = getFormHelpers(form, error); + const descriptionField = getFieldHelpers("description", { + maxLength: MAX_DESCRIPTION_CHAR_LIMIT, + }); + const descriptionHelperId = `${descriptionField.id}-helper`; const permittedOrgsQuery = useQuery({ ...permittedOrganizations({ @@ -318,13 +324,13 @@ export const CreateTemplateForm: FC = (props) => { )} - @@ -335,23 +341,45 @@ export const CreateTemplateForm: FC = (props) => { description="A friendly name, description, and icon to help developers identify your template." > - - +
+ +