From dd09bf2949b63d17b3e7311a688d7d84c5d6dc52 Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Sat, 2 Aug 2025 01:41:46 +0200 Subject: feat: add project settings --- .../src/components/editor/properties-panel/property-item.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'apps/web/src/components/editor/properties-panel/property-item.tsx') diff --git a/apps/web/src/components/editor/properties-panel/property-item.tsx b/apps/web/src/components/editor/properties-panel/property-item.tsx index 804ffb39..86a8d378 100644 --- a/apps/web/src/components/editor/properties-panel/property-item.tsx +++ b/apps/web/src/components/editor/properties-panel/property-item.tsx @@ -17,7 +17,7 @@ export function PropertyItem({ "flex gap-2", direction === "row" ? "items-center justify-between gap-6" - : "flex-col gap-1", + : "flex-col gap-1.5", className )} > @@ -33,7 +33,11 @@ export function PropertyItemLabel({ children: React.ReactNode; className?: string; }) { - return ; + return ( + + ); } export function PropertyItemValue({ @@ -43,5 +47,5 @@ export function PropertyItemValue({ children: React.ReactNode; className?: string; }) { - return
{children}
; + return
{children}
; } -- cgit v1.3.1 From 7891ed2cc1487270a847081c4ad93be1900adc8e Mon Sep 17 00:00:00 2001 From: Maze Winther Date: Sat, 2 Aug 2025 12:21:24 +0200 Subject: feat: make settings items expandable --- .../editor/media-panel/views/settings.tsx | 34 ++++++++++------------ .../editor/properties-panel/property-item.tsx | 33 +++++++++++++++++++++ 2 files changed, 48 insertions(+), 19 deletions(-) (limited to 'apps/web/src/components/editor/properties-panel/property-item.tsx') diff --git a/apps/web/src/components/editor/media-panel/views/settings.tsx b/apps/web/src/components/editor/media-panel/views/settings.tsx index 54387dd7..cdfa36f2 100644 --- a/apps/web/src/components/editor/media-panel/views/settings.tsx +++ b/apps/web/src/components/editor/media-panel/views/settings.tsx @@ -14,6 +14,7 @@ import { PropertyItem, PropertyItemLabel, PropertyItemValue, + PropertyGroup, } from "../../properties-panel/property-item"; import { FPS_PRESETS } from "@/constants/timeline-constants"; import { useProjectStore } from "@/stores/project-store"; @@ -55,7 +56,7 @@ function ProjectSettingsTabs() { function ProjectInfoView() { const { activeProject, updateProjectFps } = useProjectStore(); - const { canvasSize, canvasPresets, setCanvasSize } = useEditorStore(); + const { canvasPresets, setCanvasSize } = useEditorStore(); const { getDisplayName } = useAspectRatio(); const handleAspectRatioChange = (value: string) => { @@ -147,7 +148,7 @@ const BlurPreview = memo( fill className="object-cover" style={{ filter: `blur(${blur.value}px)` }} - priority + loading="eager" />
@@ -223,24 +224,19 @@ function BackgroundView() { ); return ( -
- - Blur - -
{blurPreviews}
-
-
- - Color - -
-
- -
- {colorPreviews} +
+ +
{blurPreviews}
+
+ + +
+
+
- - + {colorPreviews} +
+
); } diff --git a/apps/web/src/components/editor/properties-panel/property-item.tsx b/apps/web/src/components/editor/properties-panel/property-item.tsx index 86a8d378..dc6b6d74 100644 --- a/apps/web/src/components/editor/properties-panel/property-item.tsx +++ b/apps/web/src/components/editor/properties-panel/property-item.tsx @@ -1,4 +1,6 @@ import { cn } from "@/lib/utils"; +import { ChevronDown } from "lucide-react"; +import { useState } from "react"; interface PropertyItemProps { direction?: "row" | "column"; @@ -49,3 +51,34 @@ export function PropertyItemValue({ }) { return
{children}
; } + +interface PropertyGroupProps { + title: string; + children: React.ReactNode; + defaultExpanded?: boolean; + className?: string; +} + +export function PropertyGroup({ + title, + children, + defaultExpanded = true, + className, +}: PropertyGroupProps) { + const [isExpanded, setIsExpanded] = useState(defaultExpanded); + + return ( + +
setIsExpanded(!isExpanded)} + > + + {title} + + +
+ {isExpanded && {children}} +
+ ); +} -- cgit v1.3.1