-
+
{label}
-
+
{valueLabel}
@@ -485,7 +496,7 @@ function AngleEditPanelSlider({
onValueChange={([nextValue]) => onChange(nextValue ?? value)}
rangeClassName="bg-[#2d3035]"
step={step}
- thumbClassName="h-[22px] w-[22px] border-[5px] border-[#2d3035] bg-white shadow-[0_2px_10px_rgba(24,24,27,0.14)]"
+ thumbClassName="h-5 w-5 border-[4px] border-[#2d3035] bg-white shadow-[0_2px_10px_rgba(24,24,27,0.14)]"
trackClassName="h-[4px] bg-[#e7e8ec]"
value={[value]}
/>
@@ -2069,10 +2080,10 @@ export function ImageNode({
fitSizeWithinBox({
sourceWidth: angleSourceResolution.width,
sourceHeight: angleSourceResolution.height,
- maxWidth: anglePanelMode === "subject" ? 178 : 136,
- maxHeight: anglePanelMode === "subject" ? 150 : 112,
- minWidth: 74,
- minHeight: 62,
+ maxWidth: anglePanelMode === "subject" ? 236 : 188,
+ maxHeight: anglePanelMode === "subject" ? 196 : 150,
+ minWidth: 96,
+ minHeight: 80,
}),
[anglePanelMode, angleSourceResolution.height, angleSourceResolution.width]
);
@@ -2103,9 +2114,9 @@ export function ImageNode({
const angleCameraOrbitPosition = useMemo(() => {
const horizontalRadians = (angleHorizontalAngle * Math.PI) / 180;
const normalizedVertical = (angleVerticalAngle + 30) / 90;
- const x = Math.sin(horizontalRadians) * 92;
- const y = -normalizedVertical * 60 + 24;
- const z = Math.cos(horizontalRadians) * 28;
+ const x = Math.sin(horizontalRadians) * 110;
+ const y = -normalizedVertical * 72 + 26;
+ const z = Math.cos(horizontalRadians) * 38;
return {
x: Number(x.toFixed(2)),
y: Number(y.toFixed(2)),
@@ -2127,8 +2138,18 @@ export function ImageNode({
length: Number(length.toFixed(2)),
};
}, [angleCameraOrbitPosition]);
+ const angleOrbitWireframeStyle = useMemo
(
+ () => ({
+ transform: `rotateX(${-angleVerticalAngle * 0.22}deg) rotateY(${angleHorizontalAngle * 0.28}deg) rotateZ(${angleHorizontalAngle * 0.04}deg)`,
+ transformStyle: "preserve-3d",
+ transition: isAnglePreviewDragging
+ ? "none"
+ : "transform 180ms cubic-bezier(0.22, 1, 0.36, 1)",
+ }),
+ [angleHorizontalAngle, angleVerticalAngle, isAnglePreviewDragging]
+ );
const angleCameraSceneScale = useMemo(
- () => Number((0.9 + (angleZoom / 100) * 0.24).toFixed(3)),
+ () => Number((0.94 + (angleZoom / 100) * 0.22).toFixed(3)),
[angleZoom]
);
const cropImageMetrics = useMemo(() => {
@@ -3586,8 +3607,8 @@ export function ImageNode({
}
const rect = containerRef.current.getBoundingClientRect();
- const panelWidth = 372 * IMAGE_EDIT_PANEL_SCALE;
- const panelHeight = 760 * IMAGE_EDIT_PANEL_SCALE;
+ const panelWidth = ANGLE_PANEL_SOURCE_WIDTH * IMAGE_EDIT_PANEL_SCALE;
+ const panelHeight = ANGLE_PANEL_SOURCE_HEIGHT * IMAGE_EDIT_PANEL_SCALE;
const spacing = 16;
const maxTop = Math.max(12, window.innerHeight - panelHeight);
@@ -8191,7 +8212,7 @@ export function ImageNode({
typeof document !== "undefined" &&
createPortal(
event.stopPropagation()}
onMouseDown={(event) => event.stopPropagation()}
onPointerDown={(event) => event.stopPropagation()}
@@ -8228,7 +8249,7 @@ export function ImageNode({
return (
-
+
-
+
@@ -8387,7 +8399,7 @@ export function ImageNode({
style={{
width: `${anglePreviewFrameSize.width}px`,
height: `${anglePreviewFrameSize.height}px`,
- transform: `rotateX(${-angleVerticalAngle * 0.46}deg) rotateY(${angleHorizontalAngle * 0.62}deg) scale(${anglePreviewScale})`,
+ transform: `rotateX(${-angleVerticalAngle * 0.5}deg) rotateY(${angleHorizontalAngle * 0.68}deg) scale(${anglePreviewScale})`,
transformStyle: "preserve-3d",
transition: isAnglePreviewDragging
? "none"
@@ -8397,7 +8409,7 @@ export function ImageNode({
) : (

@@ -8492,7 +8506,7 @@ export function ImageNode({
-
+
-
+