-
-
- {effectiveRangeHint}
-
-
+
+
+ {label}
+ {effectiveRangeHint}
+
+
{showLargeValue && (
-
- {clampedValue}
- {unitLabel}
-
+
+ {clampedValue}
+ {unitLabel}
+
)}
-
+
{/* Custom slider */}
{/* Track background */}
-
+
{/* Track fill with gradient */}
-
-
+
{/* Tick marks */}
-
+
{[0, 25, 50, 75, 100].map((tick) => (
- = tick ? 'bg-white/40' : 'bg-charcoal-outline'
- }`}
+ width="0.125rem"
+ height="0.25rem"
+ rounded="full"
+ bg={rangePercent >= tick ? 'rgba(255, 255, 255, 0.4)' : 'var(--ui-color-border-muted)'}
+ style={{ transition: 'background-color 75ms' }}
/>
))}
-
-
+
+
{/* Thumb */}
-
-
+
{/* Value input and quick presets */}
-
-
+
+
- {unitLabel}
-
-
+
{unitLabel}
+
+
{quickPresets.length > 0 && (
-
+
{quickPresets.slice(0, 3).map((preset) => (
))}
-
+
)}
-
-
- {helperText &&
{helperText}
}
- {error &&
{error}
}
-
+
+
+ {helperText && {helperText}}
+ {error && {error}}
+
);
}
\ No newline at end of file
diff --git a/apps/website/components/shared/ux/Toast.tsx b/apps/website/components/shared/ux/Toast.tsx
index 83dc2203e..a6e24441a 100644
--- a/apps/website/components/shared/ux/Toast.tsx
+++ b/apps/website/components/shared/ux/Toast.tsx
@@ -3,6 +3,8 @@
import { Toast as UIToast } from '@/ui/Toast';
import { Text } from '@/ui/Text';
import { Icon } from '@/ui/Icon';
+import { Box } from '@/ui/Box';
+import { Stack } from '@/ui/Stack';
import { AlertCircle, CheckCircle, Info } from 'lucide-react';
import React, { createContext, useContext, useState } from 'react';
@@ -32,16 +34,25 @@ export function ToastProvider({ children }: { children: React.ReactNode }) {
return (
{children}
-
+
{toasts.map((toast) => (
-
+
setToasts((prev) => prev.filter((t) => t.id !== toast.id))}
/>
-
+
))}
-
+
);
}
diff --git a/apps/website/components/social/FriendItem.tsx b/apps/website/components/social/FriendItem.tsx
index 24bf4c6c4..8de8206f2 100644
--- a/apps/website/components/social/FriendItem.tsx
+++ b/apps/website/components/social/FriendItem.tsx
@@ -3,6 +3,7 @@
import { Image } from '@/ui/Image';
import { SidebarItem } from '@/ui/SidebarItem';
import { Text } from '@/ui/Text';
+import { Surface } from '@/ui/Surface';
import React from 'react';
interface FriendItemProps {
@@ -15,7 +16,7 @@ export function FriendItem({ name, avatarUrl, country }: FriendItemProps) {
return (
+
-
+
}
>