From 8cde0e6be9409463a93b68f187c0088dd21f3dc8 Mon Sep 17 00:00:00 2001
From: "google-labs-jules[bot]"
<161369871+google-labs-jules[bot]@users.noreply.github.com>
Date: Tue, 10 Feb 2026 09:16:04 +0000
Subject: [PATCH 1/2] feat: add AnimatedNumber to SettingRangeVertical
Implements an AnimatedNumber component using motion/react's useSpring and useTransform to smoothly animate value changes in the slider component. This enhances the user experience by providing fluid feedback when adjusting settings.
- Adds `AnimatedNumber` component in `src/component/v2/forms.tsx`.
- Updates `SettingRangeVertical` to use `AnimatedNumber` for value display.
- Ensures correct formatting with `toLocaleString` and integer rounding.
Co-authored-by: Asutorufa <16442314+Asutorufa@users.noreply.github.com>
---
src/component/v2/forms.tsx | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/component/v2/forms.tsx b/src/component/v2/forms.tsx
index 0578ed0a..0c14fbfe 100644
--- a/src/component/v2/forms.tsx
+++ b/src/component/v2/forms.tsx
@@ -2,7 +2,7 @@
import * as SliderPrimitive from '@radix-ui/react-slider';
import { clsx } from 'clsx';
-import { motion } from 'motion/react';
+import { motion, useSpring, useTransform } from 'motion/react';
import { CircleAlert, Eye, EyeOff } from 'lucide-react';
import React, { FC, useEffect, useId, useState } from 'react';
import { Button } from './button';
@@ -131,6 +131,17 @@ export const SettingPasswordVertical: FC<{
// --- Slider/Range Components ---
+const AnimatedNumber = ({ value }: { value: number }) => {
+ const spring = useSpring(value, { mass: 0.8, stiffness: 75, damping: 15 });
+ const display = useTransform(spring, (current) => Math.round(current).toLocaleString());
+
+ useEffect(() => {
+ spring.set(value);
+ }, [spring, value]);
+
+ return