diff --git a/apps/designer/app/designer/features/sidebar-left/lib/header.tsx b/apps/designer/app/designer/features/sidebar-left/lib/header.tsx index 5bfc9f0e31..48d5b9cdaf 100644 --- a/apps/designer/app/designer/features/sidebar-left/lib/header.tsx +++ b/apps/designer/app/designer/features/sidebar-left/lib/header.tsx @@ -1,4 +1,4 @@ -import { Flex, IconButton, Text } from "@webstudio-is/design-system"; +import { Flex, IconButton, Text, Tooltip } from "@webstudio-is/design-system"; import { Separator } from "@webstudio-is/design-system"; import { CrossIcon } from "@webstudio-is/icons"; @@ -24,7 +24,9 @@ export const Header = ({ title, suffix }: HeaderProps) => { }; export const CloseButton = ({ onClick }: { onClick: () => void }) => ( - - - + + + + + ); diff --git a/apps/designer/app/designer/features/sidebar-left/panels/pages/pages.tsx b/apps/designer/app/designer/features/sidebar-left/panels/pages/pages.tsx index e3c2b9e8e6..2ae389aaae 100644 --- a/apps/designer/app/designer/features/sidebar-left/panels/pages/pages.tsx +++ b/apps/designer/app/designer/features/sidebar-left/panels/pages/pages.tsx @@ -6,6 +6,7 @@ import { type TreeItemRenderProps, styled, Flex, + Tooltip, } from "@webstudio-is/design-system"; import { type Publish } from "~/shared/pubsub"; import { @@ -119,13 +120,19 @@ const PagesPanel = ({ {isEditing ? ( ) : ( - onEdit(props.itemData.id)} + - - + onEdit(props.itemData.id)} + > + + + )} ) @@ -153,13 +160,15 @@ const PagesPanel = ({ suffix={ <> {onCreateNewPage && ( - onCreateNewPage()} - aria-label="New Page" - > - - + + onCreateNewPage()} + aria-label="New page" + > + + + )} {onClose && } diff --git a/apps/designer/app/designer/features/sidebar-left/panels/pages/settings.tsx b/apps/designer/app/designer/features/sidebar-left/panels/pages/settings.tsx index ec91f817ef..bf7cc891cf 100644 --- a/apps/designer/app/designer/features/sidebar-left/panels/pages/settings.tsx +++ b/apps/designer/app/designer/features/sidebar-left/panels/pages/settings.tsx @@ -3,10 +3,12 @@ import { Button, Box, Label, + TextArea, TextField, styled, Flex, InputErrorsTooltip, + Tooltip, } from "@webstudio-is/design-system"; import { useFetcher } from "@remix-run/react"; import { ChevronDoubleLeftIcon, TrashIcon } from "@webstudio-is/icons"; @@ -37,9 +39,20 @@ const Group = styled(Flex, { defaultVariants: { direction: "column" }, }); -const fieldNames = ["name", "path"] as const; +const fieldNames = ["name", "path", "title", "description"] as const; type FieldName = typeof fieldNames[number]; -type EditablePage = Pick; +type FormPage = Pick & { + description: string; +}; + +const toFormPage = (page: Page): FormPage => { + return { + name: page.name, + path: page.path, + title: page.title, + description: page.meta.description ?? "", + }; +}; const FormFields = ({ disabled, @@ -48,10 +61,10 @@ const FormFields = ({ fieldErrors, }: { disabled?: boolean; - values: EditablePage; + values: FormPage; onChange: (event: { field: Name; - value: EditablePage[Name]; + value: FormPage[Name]; }) => void; fieldErrors: ZodError["formErrors"]["fieldErrors"]; }) => { @@ -89,6 +102,36 @@ const FormFields = ({ /> + + + + { + onChange({ field: "title", value: event.target.value }); + }} + /> + + + + + +