diff --git a/packages/web/src/components/modals/ConnectedInstances.tsx b/packages/web/src/components/modals/ConnectedInstances.tsx index 5c4860d9..03dcd18f 100644 --- a/packages/web/src/components/modals/ConnectedInstances.tsx +++ b/packages/web/src/components/modals/ConnectedInstances.tsx @@ -381,12 +381,13 @@ export function ConnectedInstances() { const [showAddForm, setShowAddForm] = useState(false); return ( -
-

+
+
Connected Instances -

+
+

Link accounts across federated Backspace instances.

-
+
{/* Home instance (always shown, non-removable) */}
diff --git a/packages/web/src/components/modals/SpaceSettings.tsx b/packages/web/src/components/modals/SpaceSettings.tsx index 1003d9da..39216545 100644 --- a/packages/web/src/components/modals/SpaceSettings.tsx +++ b/packages/web/src/components/modals/SpaceSettings.tsx @@ -84,107 +84,121 @@ function StreamingLimitsPanel() { const pillOff = 'bg-surface-elevated text-txt-secondary hover:bg-interactive-hover'; return ( -
+
These limits apply to all users on this instance. Users can pick values within these bounds.
- {/* Bitrate Range */} + {/* Bandwidth */}
-
- Bitrate Range -
-
-
- - setDraft({ ...draft, minBitrateKbps: Number(e.target.value) })} - className="w-full h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full - [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 - [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md - [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0" - /> -
{formatKbps(draft.minBitrateKbps)}
+
Bandwidth
+

Minimum and maximum bitrate bounds, and the step size for the quality slider.

+
+ {/* Bitrate Range */} +
+
+ Bitrate Range +
+
+
+ + setDraft({ ...draft, minBitrateKbps: Number(e.target.value) })} + className="w-full h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full + [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 + [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md + [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0" + /> +
{formatKbps(draft.minBitrateKbps)}
+
+
+ + setDraft({ ...draft, maxBitrateKbps: Number(e.target.value) })} + className="w-full h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full + [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 + [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md + [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0" + /> +
{formatKbps(draft.maxBitrateKbps)}
+
+
-
- - setDraft({ ...draft, maxBitrateKbps: Number(e.target.value) })} - className="w-full h-1.5 accent-accent-primary cursor-pointer appearance-none bg-interactive-muted rounded-full - [&::-webkit-slider-thumb]:appearance-none [&::-webkit-slider-thumb]:w-3 [&::-webkit-slider-thumb]:h-3 - [&::-webkit-slider-thumb]:rounded-full [&::-webkit-slider-thumb]:bg-white [&::-webkit-slider-thumb]:shadow-md - [&::-webkit-slider-thumb]:cursor-pointer [&::-webkit-slider-thumb]:border-0" - /> -
{formatKbps(draft.maxBitrateKbps)}
+ + {/* Bitrate Step */} +
+
+ Slider Step +
+
+ { + const v = Number(e.target.value); + if (v >= 50 && v <= 5000) setDraft({ ...draft, bitrateStepKbps: v }); + }} + className="w-24 px-2 py-1 bg-surface-input rounded text-sm text-txt-primary outline-none focus:ring-1 focus:ring-accent-primary" + /> + kbps +
- {/* Bitrate Step */} + {/* Quality */}
-
- Slider Step -
-
- { - const v = Number(e.target.value); - if (v >= 50 && v <= 5000) setDraft({ ...draft, bitrateStepKbps: v }); - }} - className="w-24 px-2 py-1 bg-surface-input rounded text-sm text-txt-primary outline-none focus:ring-1 focus:ring-accent-primary" - /> - kbps -
-
+
Quality
+

Available resolution and frame rate options for screen sharing.

+
+ {/* Allowed Resolutions */} +
+
+ Allowed Resolutions +
+
+ {VALID_RESOLUTIONS.map((res) => ( + + ))} +
+
- {/* Allowed Resolutions */} -
-
- Allowed Resolutions -
-
- {VALID_RESOLUTIONS.map((res) => ( - - ))} -
-
- - {/* Allowed Frame Rates */} -
-
- Allowed Frame Rates -
-
- {VALID_FRAMERATES.map((fps) => ( - - ))} + {/* Allowed Frame Rates */} +
+
+ Allowed Frame Rates +
+
+ {VALID_FRAMERATES.map((fps) => ( + + ))} +
+
@@ -276,7 +290,7 @@ function DiscoveryPanel({ spaceId }: { spaceId: string }) { ]; return ( -
+
{!discoveryEnabled && (
Space discovery is disabled by the instance administrator. Changing visibility will have no effect until discovery is re-enabled. @@ -284,48 +298,50 @@ function DiscoveryPanel({ spaceId }: { spaceId: string }) { )}
-
- Visibility -
-
- {visibilityOptions.map((opt) => ( - - ))} +
Visibility
+

Control who can discover and join this space.

+
+
+ {visibilityOptions.map((opt) => ( + + ))} +
-
- Description +
Description
+

A short summary shown on the Explore page.

+
+