From 07ef49eac0e021414735d9c0bd5304f875f97bf5 Mon Sep 17 00:00:00 2001 From: Jannis Braun <151788261+TheZwiss@users.noreply.github.com> Date: Fri, 13 Mar 2026 02:47:32 +0100 Subject: [PATCH] feat: channel permissions UI, DM Sans font, private channel filtering, migration fix - Rewrite ChannelSettingsModal with full tri-state permission override UI for roles and members (allow/neutral/deny per permission bit) - Switch font from Inter to self-hosted DM Sans (woff2 variable fonts) - Add client-side VIEW_CHANNEL filtering in ChannelSidebar for private channels - Broadcast isPrivate flag on channel override changes - Fix voice permission bit migration: gate behind persistent flag to prevent repeated re-runs that stripped STREAM from @everyone roles - Add speakingUserIds set to voice store for efficient user-level lookups - Clear current channel view when a channel is deleted - Move .glass-strip to @layer utilities for proper CSS specificity - Simplify avatar initials font size to proportional formula --- packages/server/src/db/migrate.ts | 123 +-- packages/server/src/routes/channels.ts | 43 +- packages/server/src/routes/spaces.ts | 18 +- packages/server/src/ws/handler.ts | 22 +- packages/shared/src/types.ts | 1 + packages/web/index.html | 3 - .../public/fonts/DMSans-Variable-Italic.woff2 | Bin 0 -> 112528 bytes .../web/public/fonts/DMSans-Variable.woff2 | Bin 0 -> 88708 bytes .../src/components/layout/ChannelSidebar.tsx | 12 +- .../modals/ChannelSettingsModal.tsx | 958 ++++++++++++++++-- packages/web/src/components/ui/Avatar.tsx | 3 +- packages/web/src/hooks/useWebSocket.ts | 5 + packages/web/src/stores/voiceStore.ts | 16 +- packages/web/src/styles/globals.css | 24 +- packages/web/tailwind.config.js | 2 +- 15 files changed, 1053 insertions(+), 177 deletions(-) create mode 100644 packages/web/public/fonts/DMSans-Variable-Italic.woff2 create mode 100644 packages/web/public/fonts/DMSans-Variable.woff2 diff --git a/packages/server/src/db/migrate.ts b/packages/server/src/db/migrate.ts index 261e7d83..ea577faa 100644 --- a/packages/server/src/db/migrate.ts +++ b/packages/server/src/db/migrate.ts @@ -412,90 +412,79 @@ function migrateEveryoneRoles(db: Database.Database): void { /** * Remove the USE_VOICE_ACTIVITY bit (was bit 25) and shift STREAM (26→25) - * and DISCONNECT_MEMBERS (27→26) down. Idempotent: uses a sentinel flag in - * instance_settings metadata to avoid re-running. + * and DISCONNECT_MEMBERS (27→26) down. + * + * Gated behind a persistent `voice_bit_migrated` flag in instance_settings + * because the old and new bit positions overlap (STREAM moved into the same + * bit 25 that USE_VOICE_ACTIVITY occupied), making bit-inspection unreliable + * as an idempotency check. The previous version of this function had exactly + * that bug — it re-ran on every startup and silently stripped STREAM and + * DISCONNECT_MEMBERS from every role. + * + * On first run with the flag: repairs @everyone roles by re-adding STREAM, + * then sets the flag so it never runs again. */ function migrateRemoveVoiceActivityBit(db: Database.Database): void { - // Use a pragma-style check: if STREAM is already at bit 25 in DEFAULT_EVERYONE_PERMISSIONS - // of the @everyone roles, the migration has already run. But for robustness, use a flag column. - // We'll check if any role still has bit 25 set AND bit 26 set (old layout had both USE_VOICE_ACTIVITY - // and STREAM). Simplest approach: track via a one-time marker. - const OLD_VOICE_ACTIVITY = 1n << 25n; // old USE_VOICE_ACTIVITY - const OLD_STREAM = 1n << 26n; // old STREAM - const OLD_DISCONNECT = 1n << 27n; // old DISCONNECT_MEMBERS - - // Check if any role still uses the old bit layout (has bit 26 or 27 set) - const roles = db.prepare('SELECT id, permissions FROM roles WHERE permissions IS NOT NULL').all() as { id: string; permissions: string }[]; - const overrides = db.prepare('SELECT channel_id, target_type, target_id, allow, deny FROM channel_overrides').all() as { - channel_id: string; target_type: string; target_id: string; allow: string; deny: string; - }[]; - - let needsMigration = false; - for (const role of roles) { - try { - const p = BigInt(role.permissions); - if ((p & OLD_STREAM) !== 0n || (p & OLD_DISCONNECT) !== 0n || (p & OLD_VOICE_ACTIVITY) !== 0n) { - needsMigration = true; - break; - } - } catch { /* skip invalid */ } - } - if (!needsMigration) { - for (const ov of overrides) { - try { - const a = BigInt(ov.allow); - const d = BigInt(ov.deny); - if ((a & OLD_STREAM) !== 0n || (a & OLD_DISCONNECT) !== 0n || (a & OLD_VOICE_ACTIVITY) !== 0n || - (d & OLD_STREAM) !== 0n || (d & OLD_DISCONNECT) !== 0n || (d & OLD_VOICE_ACTIVITY) !== 0n) { - needsMigration = true; - break; - } - } catch { /* skip invalid */ } - } + // Ensure the flag column exists + const cols = db.pragma('table_info(instance_settings)') as { name: string }[]; + if (!cols.some(c => c.name === 'voice_bit_migrated')) { + db.exec('ALTER TABLE instance_settings ADD COLUMN voice_bit_migrated INTEGER DEFAULT 0'); } - if (!needsMigration) return; + // Check if already migrated + const row = db.prepare('SELECT voice_bit_migrated FROM instance_settings WHERE id = 1').get() as + { voice_bit_migrated: number } | undefined; + if (row && row.voice_bit_migrated === 1) return; - function shiftPermBits(p: bigint): bigint { - const hasStream = (p & OLD_STREAM) !== 0n; - const hasDisconnect = (p & OLD_DISCONNECT) !== 0n; - // Clear bits 25, 26, 27 - p = p & ~(OLD_VOICE_ACTIVITY | OLD_STREAM | OLD_DISCONNECT); - // Re-set at new positions - if (hasStream) p |= (1n << 25n); // STREAM now at 25 - if (hasDisconnect) p |= (1n << 26n); // DISCONNECT_MEMBERS now at 26 - return p; - } - - console.log('Migrating: Shifting permission bits (removing USE_VOICE_ACTIVITY)...'); + // The bit-shifting migration already ran (possibly many times) via the old + // broken code. All roles are already on the new layout (STREAM=25, + // DISCONNECT_MEMBERS=26). The damage is that repeated re-runs wiped those + // bits. Repair what we can: + const STREAM_BIT = 1n << 25n; const updateRole = db.prepare('UPDATE roles SET permissions = ? WHERE id = ?'); - for (const role of roles) { + + // Repair @everyone roles: re-add STREAM where it's missing. + // @everyone role id === space id, so join on that. + const spaces = db.prepare('SELECT id FROM spaces').all() as { id: string }[]; + for (const space of spaces) { + const role = db.prepare('SELECT id, permissions FROM roles WHERE id = ?').get(space.id) as + { id: string; permissions: string } | undefined; + if (!role?.permissions) continue; try { - const old = BigInt(role.permissions); - const shifted = shiftPermBits(old); - if (shifted !== old) { - updateRole.run(shifted.toString(), role.id); + const perms = BigInt(role.permissions); + if ((perms & STREAM_BIT) === 0n) { + updateRole.run((perms | STREAM_BIT).toString(), role.id); + console.log(`Repair: Re-added STREAM to @everyone role for space ${space.id}`); } } catch { /* skip invalid */ } } - const updateOverride = db.prepare( - 'UPDATE channel_overrides SET allow = ?, deny = ? WHERE channel_id = ? AND target_type = ? AND target_id = ?' - ); - for (const ov of overrides) { + // For non-@everyone roles, warn about potentially lost bits so admins can + // manually re-enable STREAM / DISCONNECT_MEMBERS if needed. + const customRoles = db.prepare( + 'SELECT id, space_id, name, permissions FROM roles WHERE id NOT IN (SELECT id FROM spaces) AND permissions IS NOT NULL' + ).all() as { id: string; space_id: string; name: string; permissions: string }[]; + + let warnCount = 0; + for (const role of customRoles) { try { - const oldAllow = BigInt(ov.allow); - const oldDeny = BigInt(ov.deny); - const newAllow = shiftPermBits(oldAllow); - const newDeny = shiftPermBits(oldDeny); - if (newAllow !== oldAllow || newDeny !== oldDeny) { - updateOverride.run(newAllow.toString(), newDeny.toString(), ov.channel_id, ov.target_type, ov.target_id); + const perms = BigInt(role.permissions); + if ((perms & STREAM_BIT) === 0n) { + warnCount++; } } catch { /* skip invalid */ } } + if (warnCount > 0) { + console.log( + `Repair: ${warnCount} custom role(s) may be missing STREAM/DISCONNECT_MEMBERS permissions ` + + `due to a previous migration bug. Admins can re-enable these in Space Settings → Roles.` + ); + } - console.log('Migrating: Permission bit shift complete.'); + // Set flag so this never runs again + db.prepare('UPDATE instance_settings SET voice_bit_migrated = 1 WHERE id = 1').run(); + console.log('Migrating: Voice permission bit migration flagged as complete.'); } /** Delete corrupted read_states rows where last_read_message_id is not a valid snowflake (numeric string) */ diff --git a/packages/server/src/routes/channels.ts b/packages/server/src/routes/channels.ts index 6b5bfc78..158f8e42 100644 --- a/packages/server/src/routes/channels.ts +++ b/packages/server/src/routes/channels.ts @@ -38,6 +38,24 @@ function rowToCategory(row: typeof schema.channelCategories.$inferSelect): Chann }; } +/** + * Check if a channel is private by looking for a VIEW_CHANNEL deny on @everyone. + * The @everyone role ID equals the space ID. + */ +function isChannelPrivate(channelId: string, spaceId: string): boolean { + const db = getDb(); + const override = db.select().from(schema.channelOverrides).where( + and( + eq(schema.channelOverrides.channelId, channelId), + eq(schema.channelOverrides.targetType, 'role'), + eq(schema.channelOverrides.targetId, spaceId), + ) + ).get(); + if (!override) return false; + const denyBits = BigInt(override.deny || '0'); + return (denyBits & PermissionBits.VIEW_CHANNEL) !== 0n; +} + /** * After a channel override changes, notify each space member: * - VIEW_CHANNEL holders receive channel_updated (with their myPermissions) @@ -49,6 +67,7 @@ function broadcastOverrideChange(spaceId: string, channelId: string): void { if (!channel) return; const channelData = rowToChannel(channel); + const priv = isChannelPrivate(channelId, spaceId); for (const [userId, spaceIds] of connectionManager.getUserSpaceEntries()) { if (!spaceIds.has(spaceId)) continue; @@ -57,7 +76,7 @@ function broadcastOverrideChange(spaceId: string, channelId: string): void { if ((perms & PermissionBits.VIEW_CHANNEL) !== 0n) { connectionManager.sendToUser(userId, { type: 'channel_updated', - channel: { ...channelData, myPermissions: permissionsToString(perms) }, + channel: { ...channelData, isPrivate: priv, myPermissions: permissionsToString(perms) }, spaceId, }); } else { @@ -184,7 +203,7 @@ export async function channelRoutes(app: FastifyInstance): Promise { if ((perms & PermissionBits.VIEW_CHANNEL) !== 0n) { connectionManager.sendToUser(userId, { type: 'channel_created', - channel: { ...channelData, myPermissions: permissionsToString(perms) }, + channel: { ...channelData, isPrivate: false, myPermissions: permissionsToString(perms) }, spaceId: id, }); } @@ -400,13 +419,28 @@ export async function channelRoutes(app: FastifyInstance): Promise { } // Validate that allow/deny are valid bigint strings + let allowBits: bigint; + let denyBits: bigint; try { - BigInt(allow || '0'); - BigInt(deny || '0'); + allowBits = BigInt(allow || '0'); + denyBits = BigInt(deny || '0'); } catch { return reply.code(400).send({ error: 'allow and deny must be valid decimal integer strings', statusCode: 400 }); } + // Privilege escalation guard: non-admin users can only grant permissions they possess + const callerPerms = computePermissions(request.userId, channel.spaceId); + if ((callerPerms & PermissionBits.ADMINISTRATOR) === 0n) { + const escalatedAllow = allowBits & ~callerPerms; + if (escalatedAllow !== 0n) { + return reply.code(403).send({ error: 'Cannot grant permissions you do not possess', statusCode: 403 }); + } + const escalatedDeny = denyBits & ~callerPerms; + if (escalatedDeny !== 0n) { + return reply.code(403).send({ error: 'Cannot deny permissions you do not possess', statusCode: 403 }); + } + } + // Upsert: delete existing then insert db.transaction((tx) => { tx.delete(schema.channelOverrides).where( @@ -730,6 +764,7 @@ function broadcastChannelLayout(spaceId: string): void { if ((perms & PermissionBits.VIEW_CHANNEL) !== 0n) { visibleChannels.push({ ...rowToChannel(ch), + isPrivate: isChannelPrivate(ch.id, spaceId), myPermissions: permissionsToString(perms), }); } diff --git a/packages/server/src/routes/spaces.ts b/packages/server/src/routes/spaces.ts index df1f0e7e..8611ff1e 100644 --- a/packages/server/src/routes/spaces.ts +++ b/packages/server/src/routes/spaces.ts @@ -290,13 +290,29 @@ export async function spaceRoutes(app: FastifyInstance): Promise { // Compute space-level permissions for the requesting user const spacePerms = computePermissions(request.userId, id); + // Batch-fetch all channel overrides for @everyone (role = spaceId) to determine isPrivate + const everyoneOverrides = db.select().from(schema.channelOverrides) + .where(and( + eq(schema.channelOverrides.targetType, 'role'), + eq(schema.channelOverrides.targetId, id), + )) + .all(); + const privateChannelIds = new Set(); + for (const o of everyoneOverrides) { + const denyBits = BigInt(o.deny || '0'); + if ((denyBits & PermissionBits.VIEW_CHANNEL) !== 0n) { + privateChannelIds.add(o.channelId); + } + } + // Filter channels by VIEW_CHANNEL permission and attach per-channel myPermissions - const visibleChannels: (Channel & { myPermissions: string })[] = []; + const visibleChannels: (Channel & { isPrivate: boolean; myPermissions: string })[] = []; for (const ch of channels) { const perms = computePermissions(request.userId, id, ch.id); if ((perms & PermissionBits.VIEW_CHANNEL) !== 0n) { visibleChannels.push({ ...rowToChannel(ch), + isPrivate: privateChannelIds.has(ch.id), myPermissions: permissionsToString(perms), }); } diff --git a/packages/server/src/ws/handler.ts b/packages/server/src/ws/handler.ts index e4738c11..fcbc496d 100644 --- a/packages/server/src/ws/handler.ts +++ b/packages/server/src/ws/handler.ts @@ -2,7 +2,7 @@ import type { FastifyInstance } from 'fastify'; import type { WebSocket } from 'ws'; import { verifyJwt } from '../utils/auth.js'; import { getDb, schema } from '../db/index.js'; -import { eq, inArray, desc, sql } from 'drizzle-orm'; +import { eq, and, inArray, desc, sql } from 'drizzle-orm'; import { handleClientEvent } from './events.js'; import { computePermissions, PermissionBits, permissionsToString } from '../utils/permissions.js'; import type { @@ -698,6 +698,25 @@ function buildReadyPayload(userId: string): { arr.push(ch); } + // Batch: determine which channels are private (VIEW_CHANNEL denied on @everyone) + // @everyone role ID equals the space ID, so we query for overrides targeting role = spaceId + const allEveroneOverrides = batchInArray( + spaceIds, + ids => db.select().from(schema.channelOverrides).where( + and( + eq(schema.channelOverrides.targetType, 'role'), + inArray(schema.channelOverrides.targetId, ids), + ) + ).all(), + ); + const privateChannelIds = new Set(); + for (const o of allEveroneOverrides) { + const denyBits = BigInt(o.deny || '0'); + if ((denyBits & PermissionBits.VIEW_CHANNEL) !== 0n) { + privateChannelIds.add(o.channelId); + } + } + // Batch: all categories for all spaces (1 query instead of N) const allCategories = batchInArray( spaceIds, @@ -805,6 +824,7 @@ function buildReadyPayload(userId: string): { topic: ch.topic, position: ch.position ?? 0, categoryId: ch.categoryId ?? null, + isPrivate: privateChannelIds.has(ch.id), createdAt: ch.createdAt, lastMessageId: lastMsgMap.get(ch.id) ?? null, myPermissions: permissionsToString(chPerms), diff --git a/packages/shared/src/types.ts b/packages/shared/src/types.ts index d3d8e917..52e4bc61 100644 --- a/packages/shared/src/types.ts +++ b/packages/shared/src/types.ts @@ -149,6 +149,7 @@ export interface Channel { topic: string | null; position: number; categoryId: string | null; + isPrivate?: boolean; createdAt: number; lastMessageId?: string | null; myPermissions?: string; // Computed per-user BigInt decimal string diff --git a/packages/web/index.html b/packages/web/index.html index f0189099..a3406427 100644 --- a/packages/web/index.html +++ b/packages/web/index.html @@ -5,9 +5,6 @@ - - - Backspace diff --git a/packages/web/public/fonts/DMSans-Variable-Italic.woff2 b/packages/web/public/fonts/DMSans-Variable-Italic.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f37b00f7dfac8ec087a422349275982ca8376bfe GIT binary patch literal 112528 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�$w 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

kFivFI!WE^O}$EXJeL01xkSkF?E| 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

Tbm65v~kC`|eY;mgv`E8Fxj{;l5*_r}_X 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%0D}x3cA&GiOSB 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 AHvj+t literal 0 HcmV?d00001 diff --git a/packages/web/src/components/layout/ChannelSidebar.tsx b/packages/web/src/components/layout/ChannelSidebar.tsx index a1eea26b..ef9c4e45 100644 --- a/packages/web/src/components/layout/ChannelSidebar.tsx +++ b/packages/web/src/components/layout/ChannelSidebar.tsx @@ -130,14 +130,20 @@ export function ChannelSidebar() { }); }, [collapseKey]); + // Filter channels by VIEW_CHANNEL (defense-in-depth — server already filters, + // but this catches transient races where channels and permissions are briefly out of sync) + const visibleChannels = useMemo(() => + channels.filter(ch => hasPermissionBit(channelPermissions.get(ch.id), PermissionBits.VIEW_CHANNEL)), + [channels, channelPermissions]); + // Group channels by category const sortedCategories = useMemo(() => [...categories].sort((a, b) => a.position - b.position), [categories]); const uncategorizedChannels = useMemo(() => - channels.filter(c => !c.categoryId).sort((a, b) => a.position - b.position), [channels]); + visibleChannels.filter(c => !c.categoryId).sort((a, b) => a.position - b.position), [visibleChannels]); const channelsByCategory = useMemo(() => { const map = new Map(); - for (const ch of channels) { + for (const ch of visibleChannels) { if (!ch.categoryId) continue; let arr = map.get(ch.categoryId); if (!arr) { arr = []; map.set(ch.categoryId, arr); } @@ -147,7 +153,7 @@ export function ChannelSidebar() { map.set(key, arr.sort((a, b) => a.position - b.position)); } return map; - }, [channels]); + }, [visibleChannels]); // Check if a collapsed category has unread channels const categoryHasUnread = useCallback((categoryId: string) => { diff --git a/packages/web/src/components/modals/ChannelSettingsModal.tsx b/packages/web/src/components/modals/ChannelSettingsModal.tsx index 93ff5669..b8b34c1a 100644 --- a/packages/web/src/components/modals/ChannelSettingsModal.tsx +++ b/packages/web/src/components/modals/ChannelSettingsModal.tsx @@ -1,10 +1,12 @@ -import React, { useState, useEffect } from 'react'; +import React, { useState, useEffect, useMemo, useCallback, useRef } from 'react'; import { Modal } from '../ui/Modal'; import { ConfirmDialog } from '../ui/ConfirmDialog'; import { useUIStore } from '../../stores/uiStore'; import { useSpaceStore, getApiForOrigin } from '../../stores/spaceStore'; import { api } from '../../api/client'; import { PermissionBits, permissionsToString, stringToPermissions, hasPermissionBit } from '../../utils/permissions'; +import { Toggle } from '../ui/Toggle'; +import type { Role, MemberWithUser } from '@backspace/shared'; interface ChannelOverride { channelId: string; @@ -14,6 +16,789 @@ interface ChannelOverride { deny: string; } +// ─── Permission Definitions for Channel Overrides ────────────────────────────── + +interface PermissionDef { + key: keyof typeof PermissionBits; + label: string; + bit: bigint; +} + +const TEXT_CHANNEL_PERMISSIONS: PermissionDef[] = [ + { key: 'VIEW_CHANNEL', label: 'View Channel', bit: PermissionBits.VIEW_CHANNEL }, + { key: 'SEND_MESSAGES', label: 'Send Messages', bit: PermissionBits.SEND_MESSAGES }, + { key: 'MANAGE_MESSAGES', label: 'Manage Messages', bit: PermissionBits.MANAGE_MESSAGES }, + { key: 'ATTACH_FILES', label: 'Attach Files', bit: PermissionBits.ATTACH_FILES }, + { key: 'READ_MESSAGE_HISTORY', label: 'Read Message History', bit: PermissionBits.READ_MESSAGE_HISTORY }, + { key: 'ADD_REACTIONS', label: 'Add Reactions', bit: PermissionBits.ADD_REACTIONS }, +]; + +const VOICE_CHANNEL_PERMISSIONS: PermissionDef[] = [ + { key: 'VIEW_CHANNEL', label: 'View Channel', bit: PermissionBits.VIEW_CHANNEL }, + { key: 'CONNECT', label: 'Connect', bit: PermissionBits.CONNECT }, + { key: 'SPEAK', label: 'Speak', bit: PermissionBits.SPEAK }, + { key: 'STREAM', label: 'Stream', bit: PermissionBits.STREAM }, + { key: 'MUTE_MEMBERS', label: 'Mute Members', bit: PermissionBits.MUTE_MEMBERS }, + { key: 'DEAFEN_MEMBERS', label: 'Deafen Members', bit: PermissionBits.DEAFEN_MEMBERS }, + { key: 'MOVE_MEMBERS', label: 'Move Members', bit: PermissionBits.MOVE_MEMBERS }, + { key: 'DISCONNECT_MEMBERS', label: 'Disconnect Members', bit: PermissionBits.DISCONNECT_MEMBERS }, +]; + +// ─── Tri-State Toggle ────────────────────────────────────────────────────────── + +type TriState = 'allow' | 'neutral' | 'deny'; + +function TriStateToggle({ + value, + onChange, + disabled, +}: { + value: TriState; + onChange: (v: TriState) => void; + disabled?: boolean; +}) { + const btnClass = (v: TriState, active: boolean) => { + const base = 'w-6 h-6 flex items-center justify-center rounded-full transition-colors text-xs font-bold'; + if (disabled) return `${base} cursor-not-allowed opacity-40`; + if (!active) return `${base} cursor-pointer text-txt-muted hover:text-txt-tertiary`; + switch (v) { + case 'deny': return `${base} cursor-pointer bg-accent-rose/15 text-accent-rose`; + case 'neutral': return `${base} cursor-pointer bg-white/[0.06] text-txt-tertiary`; + case 'allow': return `${base} cursor-pointer bg-accent-primary/15 text-accent-primary`; + } + }; + + return ( +

+ + + +
+ ); +} + +// ─── Override Entry (expandable row) ──────────────────────────────────────────── + +function OverrideEntry({ + label, + color, + permDefs, + allow, + deny, + onChange, + onRemove, + isEveryone, +}: { + label: string; + color?: string; + permDefs: PermissionDef[]; + allow: bigint; + deny: bigint; + onChange: (allow: bigint, deny: bigint) => void; + onRemove?: () => void; + isEveryone?: boolean; +}) { + const [expanded, setExpanded] = useState(false); + + const getState = (bit: bigint): TriState => { + if ((allow & bit) !== 0n) return 'allow'; + if ((deny & bit) !== 0n) return 'deny'; + return 'neutral'; + }; + + const setState = (bit: bigint, state: TriState) => { + let newAllow = allow & ~bit; + let newDeny = deny & ~bit; + if (state === 'allow') newAllow |= bit; + if (state === 'deny') newDeny |= bit; + onChange(newAllow, newDeny); + }; + + // Compact summary of non-neutral permissions + const summary = permDefs.filter(p => getState(p.bit) !== 'neutral'); + + return ( +
+ + )} + + + + + {expanded && ( +
+ {permDefs.map((perm) => ( +
+ {perm.label} + setState(perm.bit, v)} + /> +
+ ))} +
+ )} +
+ ); +} + +// ─── Permissions Tab ──────────────────────────────────────────────────────────── + +function PermissionsTab({ + channelId, + channelType, + spaceId, + overrides, + onOverridesChange, +}: { + channelId: string; + channelType: 'text' | 'voice'; + spaceId: string; + overrides: ChannelOverride[]; + onOverridesChange: () => void; +}) { + const spaces = useSpaceStore((s) => s.spaces); + const space = spaces.find(s => s.id === spaceId); + const roles = useSpaceStore((s) => s.roles); + const members = useSpaceStore((s) => s.members); + + // Draft state: keyed by "role:id" or "member:id" + const [draftOverrides, setDraftOverrides] = useState>(new Map()); + const [pendingRemovals, setPendingRemovals] = useState>(new Set()); + const [newOverrides, setNewOverrides] = useState>(new Map()); + const [saving, setSaving] = useState(false); + const [saveError, setSaveError] = useState(''); + + // Add role/member dropdown state + const [showAddRole, setShowAddRole] = useState(false); + const [showAddMember, setShowAddMember] = useState(false); + const [memberSearch, setMemberSearch] = useState(''); + + // Refs + click-outside/Escape for dropdown menus + const roleDropdownRef = useRef(null); + const memberDropdownRef = useRef(null); + + useEffect(() => { + if (!showAddRole) return; + const handleMouseDown = (e: MouseEvent) => { + if (roleDropdownRef.current && !roleDropdownRef.current.contains(e.target as Node)) { + setShowAddRole(false); + } + }; + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') setShowAddRole(false); + }; + document.addEventListener('mousedown', handleMouseDown); + document.addEventListener('keydown', handleKeyDown); + return () => { + document.removeEventListener('mousedown', handleMouseDown); + document.removeEventListener('keydown', handleKeyDown); + }; + }, [showAddRole]); + + useEffect(() => { + if (!showAddMember) return; + const handleMouseDown = (e: MouseEvent) => { + if (memberDropdownRef.current && !memberDropdownRef.current.contains(e.target as Node)) { + setShowAddMember(false); + setMemberSearch(''); + } + }; + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') { + setShowAddMember(false); + setMemberSearch(''); + } + }; + document.addEventListener('mousedown', handleMouseDown); + document.addEventListener('keydown', handleKeyDown); + return () => { + document.removeEventListener('mousedown', handleMouseDown); + document.removeEventListener('keydown', handleKeyDown); + }; + }, [showAddMember]); + + const permDefs = channelType === 'voice' ? VOICE_CHANNEL_PERMISSIONS : TEXT_CHANNEL_PERMISSIONS; + + // Build map of existing overrides keyed by "role:id" or "member:id" + const existingOverrideMap = useMemo(() => { + const map = new Map(); + for (const o of overrides) { + map.set(`${o.targetType}:${o.targetId}`, o); + } + return map; + }, [overrides]); + + // Roles that already have overrides + const existingRoleIds = useMemo(() => { + const set = new Set(); + for (const o of overrides) { + if (o.targetType === 'role') set.add(o.targetId); + } + for (const [key] of newOverrides) { + if (key.startsWith('role:')) set.add(key.slice(5)); + } + return set; + }, [overrides, newOverrides]); + + // Members that already have overrides + const existingMemberIds = useMemo(() => { + const set = new Set(); + for (const o of overrides) { + if (o.targetType === 'member') set.add(o.targetId); + } + for (const [key] of newOverrides) { + if (key.startsWith('member:')) set.add(key.slice(7)); + } + return set; + }, [overrides, newOverrides]); + + // Available roles to add (not already in overrides) + const availableRoles = useMemo(() => + roles.filter(r => !existingRoleIds.has(r.id) && !pendingRemovals.has(`role:${r.id}`)), + [roles, existingRoleIds, pendingRemovals]); + + // Available members to add (not already in overrides), filtered by search + const availableMembers = useMemo(() => { + const filtered = members.filter(m => + !existingMemberIds.has(m.userId) && + !pendingRemovals.has(`member:${m.userId}`) + ); + if (!memberSearch.trim()) return filtered.slice(0, 20); + const q = memberSearch.toLowerCase(); + return filtered.filter(m => + m.user.username.toLowerCase().includes(q) || + (m.user.displayName?.toLowerCase().includes(q)) + ).slice(0, 20); + }, [members, existingMemberIds, pendingRemovals, memberSearch]); + + // Get effective allow/deny for a key — considers drafts, new overrides, and originals + const getEffective = useCallback((key: string): { allow: bigint; deny: bigint } => { + if (newOverrides.has(key)) { + const n = newOverrides.get(key)!; + return { allow: n.allow, deny: n.deny }; + } + if (draftOverrides.has(key)) return draftOverrides.get(key)!; + const orig = existingOverrideMap.get(key); + if (orig) return { allow: stringToPermissions(orig.allow), deny: stringToPermissions(orig.deny) }; + return { allow: 0n, deny: 0n }; + }, [draftOverrides, newOverrides, existingOverrideMap]); + + // Update handler for an override entry + const handleChange = useCallback((key: string, allow: bigint, deny: bigint) => { + if (newOverrides.has(key)) { + setNewOverrides(prev => { + const next = new Map(prev); + const entry = next.get(key)!; + next.set(key, { ...entry, allow, deny }); + return next; + }); + } else { + setDraftOverrides(prev => { + const next = new Map(prev); + next.set(key, { allow, deny }); + return next; + }); + } + }, [newOverrides]); + + // Remove handler + const handleRemove = useCallback((key: string) => { + if (newOverrides.has(key)) { + setNewOverrides(prev => { + const next = new Map(prev); + next.delete(key); + return next; + }); + } else { + setPendingRemovals(prev => { + const next = new Set(prev); + next.add(key); + return next; + }); + // Remove from drafts too + setDraftOverrides(prev => { + const next = new Map(prev); + next.delete(key); + return next; + }); + } + }, [newOverrides]); + + // Add role override + const handleAddRole = useCallback((roleId: string) => { + const key = `role:${roleId}`; + setNewOverrides(prev => { + const next = new Map(prev); + next.set(key, { targetType: 'role', targetId: roleId, allow: 0n, deny: 0n }); + return next; + }); + // If it was pending removal, unmark it + setPendingRemovals(prev => { + const next = new Set(prev); + next.delete(key); + return next; + }); + setShowAddRole(false); + }, []); + + // Add member override + const handleAddMember = useCallback((userId: string) => { + const key = `member:${userId}`; + setNewOverrides(prev => { + const next = new Map(prev); + next.set(key, { targetType: 'member', targetId: userId, allow: 0n, deny: 0n }); + return next; + }); + setPendingRemovals(prev => { + const next = new Set(prev); + next.delete(key); + return next; + }); + setShowAddMember(false); + setMemberSearch(''); + }, []); + + const hasChanges = draftOverrides.size > 0 || newOverrides.size > 0 || pendingRemovals.size > 0; + + const handleDiscard = useCallback(() => { + setDraftOverrides(new Map()); + setNewOverrides(new Map()); + setPendingRemovals(new Set()); + setSaveError(''); + }, []); + + const handleSave = useCallback(async () => { + setSaving(true); + setSaveError(''); + + const channelApi = getApiForOrigin(space?._instanceOrigin ?? ''); + + try { + const promises: Promise[] = []; + + // Delete removed overrides + for (const key of pendingRemovals) { + const parts = key.split(':'); + promises.push(channelApi.channels.deleteOverride(channelId, parts[0]!, parts[1]!)); + } + + // Update modified existing overrides + for (const [key, { allow, deny }] of draftOverrides) { + if (pendingRemovals.has(key)) continue; + const parts = key.split(':'); + promises.push(channelApi.channels.putOverride(channelId, { + targetType: parts[0]!, + targetId: parts[1]!, + allow: permissionsToString(allow), + deny: permissionsToString(deny), + })); + } + + // Create new overrides + for (const [, { targetType, targetId, allow, deny }] of newOverrides) { + promises.push(channelApi.channels.putOverride(channelId, { + targetType, + targetId, + allow: permissionsToString(allow), + deny: permissionsToString(deny), + })); + } + + const results = await Promise.allSettled(promises); + const failures = results.filter(r => r.status === 'rejected'); + if (failures.length > 0) { + const first = failures[0] as PromiseRejectedResult; + setSaveError(first.reason?.message || `${failures.length} override(s) failed to save`); + } + + // Reset draft state and re-fetch overrides + setDraftOverrides(new Map()); + setNewOverrides(new Map()); + setPendingRemovals(new Set()); + onOverridesChange(); + } catch (err) { + setSaveError(err instanceof Error ? err.message : 'Failed to save overrides'); + } finally { + setSaving(false); + } + }, [channelId, draftOverrides, newOverrides, pendingRemovals, space, onOverridesChange]); + + // Build ordered lists of role and member overrides + const roleOverrides = useMemo(() => { + const items: { key: string; role: Role; isNew: boolean }[] = []; + + // Existing overrides (excluding pending removals) + for (const o of overrides) { + if (o.targetType !== 'role') continue; + const key = `role:${o.targetId}`; + if (pendingRemovals.has(key)) continue; + const role = roles.find(r => r.id === o.targetId); + if (!role) continue; + items.push({ key, role, isNew: false }); + } + + // New overrides + for (const [key, entry] of newOverrides) { + if (!key.startsWith('role:')) continue; + const role = roles.find(r => r.id === entry.targetId); + if (!role) continue; + if (items.some(i => i.key === key)) continue; + items.push({ key, role, isNew: true }); + } + + // Sort: @everyone first, then by position + items.sort((a, b) => { + if (a.role.id === spaceId) return -1; + if (b.role.id === spaceId) return 1; + return (a.role.position ?? 0) - (b.role.position ?? 0); + }); + + return items; + }, [overrides, newOverrides, pendingRemovals, roles, spaceId]); + + const memberOverrides = useMemo(() => { + const items: { key: string; member: MemberWithUser; isNew: boolean }[] = []; + + for (const o of overrides) { + if (o.targetType !== 'member') continue; + const key = `member:${o.targetId}`; + if (pendingRemovals.has(key)) continue; + const member = members.find(m => m.userId === o.targetId); + if (!member) continue; + items.push({ key, member, isNew: false }); + } + + for (const [key, entry] of newOverrides) { + if (!key.startsWith('member:')) continue; + const member = members.find(m => m.userId === entry.targetId); + if (!member) continue; + if (items.some(i => i.key === key)) continue; + items.push({ key, member, isNew: true }); + } + + return items; + }, [overrides, newOverrides, pendingRemovals, members]); + + return ( +
+ {/* Role Overrides */} +
+
+ Role Overrides +
+
+ {roleOverrides.map(({ key, role }) => { + const eff = getEffective(key); + return ( + handleChange(key, a, d)} + onRemove={() => handleRemove(key)} + isEveryone={role.id === spaceId} + /> + ); + })} +
+ + {/* Add Role */} +
+ {!showAddRole ? ( + + ) : ( +
+
+ {availableRoles.length === 0 ? ( +
No more roles to add
+ ) : ( + availableRoles.map(role => ( + + )) + )} +
+
+ +
+
+ )} +
+
+ + {/* Member Overrides */} +
+
+ Member Overrides +
+
+ {memberOverrides.map(({ key, member }) => { + const eff = getEffective(key); + return ( + handleChange(key, a, d)} + onRemove={() => handleRemove(key)} + /> + ); + })} +
+ + {/* Add Member */} +
+ {!showAddMember ? ( + + ) : ( +
+
+ setMemberSearch(e.target.value)} + placeholder="Search members..." + className="w-full px-2.5 py-1.5 text-sm bg-surface-input rounded mb-1 text-txt-primary placeholder-txt-muted outline-none" + autoFocus + /> +
+
+ {availableMembers.length === 0 ? ( +
No members found
+ ) : ( + availableMembers.map(member => ( + + )) + )} +
+
+ +
+
+ )} +
+
+ + {/* Error */} + {saveError && ( +
+ {saveError} +
+ )} + + {/* Save/Discard pill */} + {hasChanges && ( +
+
+
+ + +
+
+
+ )} +
+ ); +} + +// ─── Overview Tab ─────────────────────────────────────────────────────────────── + +function OverviewTab({ + channelId, + channelName, + channelType, + isPrivate, + isFetching, + isLoading, + error, + canManageChannels, + onTogglePrivate, + onDeleteChannel, +}: { + channelId: string; + channelName: string; + channelType: string; + isPrivate: boolean; + isFetching: boolean; + isLoading: boolean; + error: string; + canManageChannels: boolean; + onTogglePrivate: () => void; + onDeleteChannel: () => void; +}) { + return ( +
+
+ +
+ {isPrivate ? ( + + + + ) : ( + + + + )} + {channelName} +
+
+ + {error && ( +
+ {error} +
+ )} + +
+
+
+
Private Channel
+
+ Only selected members and roles will be able to view this channel. +
+
+
+ +
+
+
+ + {isPrivate && !isFetching && ( +
+ + + + + This channel is hidden from members without explicit access. Users with the Administrator permission or space owners can always see all channels. + +
+ )} + + {canManageChannels && ( +
+ + +
+ )} +
+ ); +} + +// ─── Main Modal ───────────────────────────────────────────────────────────────── + export function ChannelSettingsModal() { const activeModal = useUIStore((s) => s.activeModal); const modalData = useUIStore((s) => s.modalData); @@ -23,12 +808,14 @@ export function ChannelSettingsModal() { const spaces = useSpaceStore((s) => s.spaces); const spacePermissions = useSpaceStore((s) => s.spacePermissions); + const [tab, setTab] = useState<'overview' | 'permissions'>('overview'); const [isPrivate, setIsPrivate] = useState(false); const [isLoading, setIsLoading] = useState(false); const [isFetching, setIsFetching] = useState(true); const [error, setError] = useState(''); const [showDeleteConfirm, setShowDeleteConfirm] = useState(false); const [isDeleting, setIsDeleting] = useState(false); + const [overrides, setOverrides] = useState([]); const isOpen = activeModal === 'channelSettings'; const channelId = modalData?.channelId as string | undefined; @@ -36,29 +823,33 @@ export function ChannelSettingsModal() { const myPerms = currentSpaceId ? spacePermissions.get(currentSpaceId) : undefined; const canManageChannels = myPerms !== undefined && hasPermissionBit(myPerms, PermissionBits.MANAGE_CHANNELS); + const canManageRoles = myPerms !== undefined && hasPermissionBit(myPerms, PermissionBits.MANAGE_ROLES); - // Reset delete state when modal closes + // Reset state when modal closes useEffect(() => { if (!isOpen) { setShowDeleteConfirm(false); setIsDeleting(false); + setTab('overview'); + setOverrides([]); } }, [isOpen]); // Fetch overrides when modal opens - useEffect(() => { - if (!isOpen || !channelId || !currentSpaceId) { - setIsFetching(false); - return; - } + const fetchOverrides = useCallback(() => { + if (!channelId || !currentSpaceId) return; setIsFetching(true); setError(''); - api.channels.getOverrides(channelId) - .then((overrides: ChannelOverride[]) => { + const space = spaces.find(s => s.id === currentSpaceId); + const channelApi = getApiForOrigin(space?._instanceOrigin ?? ''); + + channelApi.channels.getOverrides(channelId) + .then((data: ChannelOverride[]) => { + setOverrides(data); // Check if @everyone role (id === spaceId) has VIEW_CHANNEL denied - const everyoneOverride = overrides.find( + const everyoneOverride = data.find( o => o.targetType === 'role' && o.targetId === currentSpaceId ); if (everyoneOverride) { @@ -74,7 +865,15 @@ export function ChannelSettingsModal() { .finally(() => { setIsFetching(false); }); - }, [isOpen, channelId, currentSpaceId]); + }, [channelId, currentSpaceId, spaces]); + + useEffect(() => { + if (isOpen && channelId && currentSpaceId) { + fetchOverrides(); + } else { + setIsFetching(false); + } + }, [isOpen, channelId, currentSpaceId, fetchOverrides]); if (!isOpen || !channel || !channelId || !currentSpaceId) return null; @@ -82,10 +881,13 @@ export function ChannelSettingsModal() { setError(''); setIsLoading(true); + const space = spaces.find(s => s.id === currentSpaceId); + const channelApi = getApiForOrigin(space?._instanceOrigin ?? ''); + try { if (!isPrivate) { // Make private: deny VIEW_CHANNEL for @everyone role - await api.channels.putOverride(channelId, { + await channelApi.channels.putOverride(channelId, { targetType: 'role', targetId: currentSpaceId, allow: '0', @@ -94,9 +896,11 @@ export function ChannelSettingsModal() { setIsPrivate(true); } else { // Make public: remove the @everyone VIEW_CHANNEL deny override - await api.channels.deleteOverride(channelId, 'role', currentSpaceId); + await channelApi.channels.deleteOverride(channelId, 'role', currentSpaceId); setIsPrivate(false); } + // Re-fetch overrides to keep permissions tab in sync + fetchOverrides(); } catch (err) { setError(err instanceof Error ? err.message : 'Failed to update channel privacy'); } finally { @@ -118,81 +922,71 @@ export function ChannelSettingsModal() { } }; + const showTabs = canManageRoles; + + const tabClass = (t: typeof tab) => + `w-full text-left px-2.5 py-1.5 rounded text-sm transition-colors ${ + tab === t ? 'bg-interactive-selected text-txt-primary' : 'text-txt-tertiary hover:text-txt-secondary hover:bg-interactive-hover' + }`; + return ( <> - -
-
- -
- - - - {channel.name} -
-
- - {error && ( -
- {error} -
- )} - -
-
-
-
Private Channel
-
- Only selected members and roles will be able to view this channel. -
+ + {showTabs ? ( +
+ {/* Tabs */} +
+
+ +
- + )} + {tab === 'permissions' && ( + + )}
- - {isPrivate && !isFetching && ( -
- - - - - This channel is hidden from members without explicit access. Users with the Administrator permission or space owners can always see all channels. - -
- )} - - {canManageChannels && ( -
- - -
- )} -
+ ) : ( + setShowDeleteConfirm(true)} + /> + )} s.openUserProfile); const initials = name.charAt(0).toUpperCase(); - // Match prototype: 24px→10px, 32-34px→12px, 40px→15px, 56px+→18px - const fontPx = size <= 24 ? 10 : size <= 34 ? 12 : size <= 44 ? 15 : 18; + const fontPx = Math.round(size * 0.4); const gradient = getAvatarGradient(userId ?? user?.homeUserId ?? user?.id, name, avatarColor ?? user?.avatarColor); const ringWidth = ring?.width ?? 0; diff --git a/packages/web/src/hooks/useWebSocket.ts b/packages/web/src/hooks/useWebSocket.ts index f16eda13..0a034ec1 100644 --- a/packages/web/src/hooks/useWebSocket.ts +++ b/packages/web/src/hooks/useWebSocket.ts @@ -612,6 +612,11 @@ function handleEvent(origin: string, event: ServerEvent): void { if (event.spaceId === curSpaceId3) { setChannels3(curChannels3.filter(c => c.id !== event.channelId)); } + // If the user is currently viewing the deleted channel, clear it + const { currentChannelId: deletedViewChannelId } = useChatStore.getState(); + if (deletedViewChannelId === event.channelId) { + useChatStore.getState().setCurrentChannel(null); + } chPermsMap3.delete(event.channelId); ctsMap3.delete(event.channelId); coMap3.delete(event.channelId); diff --git a/packages/web/src/stores/voiceStore.ts b/packages/web/src/stores/voiceStore.ts index c15ab156..4210761a 100644 --- a/packages/web/src/stores/voiceStore.ts +++ b/packages/web/src/stores/voiceStore.ts @@ -21,6 +21,7 @@ interface VoiceState { isScreenSharing: boolean; participants: ParticipantInfo[]; speakingParticipantIds: Set; + speakingUserIds: Set; connectionError: string | null; isLiveKitConnected: boolean; connectionQuality: 'excellent' | 'good' | 'poor' | 'lost' | 'unknown'; @@ -124,6 +125,7 @@ export const useVoiceStore = create()( isScreenSharing: false, participants: [], speakingParticipantIds: new Set(), + speakingUserIds: new Set(), connectionError: null, isLiveKitConnected: false, connectionQuality: 'unknown', @@ -264,7 +266,14 @@ export const useVoiceStore = create()( }), setParticipants: (participants) => set({ participants }), - setSpeakingParticipants: (ids) => set({ speakingParticipantIds: ids }), + setSpeakingParticipants: (ids) => { + const userIds = new Set(); + for (const id of ids) { + const sep = id.indexOf(':'); + if (sep !== -1) userIds.add(id.substring(0, sep)); + } + set({ speakingParticipantIds: ids, speakingUserIds: userIds }); + }, setConnectionError: (error) => set({ connectionError: error }), setIsLiveKitConnected: (connected) => set({ isLiveKitConnected: connected }), setConnectionQuality: (quality) => set({ connectionQuality: quality }), @@ -378,6 +387,7 @@ export const useVoiceStore = create()( currentVoiceChannelId: null, participants: [], speakingParticipantIds: new Set(), + speakingUserIds: new Set(), connectionError: null, isLiveKitConnected: false, connectionQuality: 'unknown', @@ -437,6 +447,7 @@ export const useVoiceStore = create()( isScreenSharing: false, participants: [], speakingParticipantIds: new Set(), + speakingUserIds: new Set(), connectionError: null, isLiveKitConnected: false, connectionQuality: 'unknown', @@ -464,6 +475,7 @@ export const useVoiceStore = create()( isScreenSharing: false, participants: [], speakingParticipantIds: new Set(), + speakingUserIds: new Set(), connectionError: null, isLiveKitConnected: false, connectionQuality: 'unknown', @@ -488,6 +500,7 @@ export const useVoiceStore = create()( isScreenSharing: false, participants: [], speakingParticipantIds: new Set(), + speakingUserIds: new Set(), connectionError: null, isLiveKitConnected: false, connectionQuality: 'unknown', @@ -581,6 +594,7 @@ export const useVoiceStore = create()( merged.voiceUsers = currentState.voiceUsers; merged.participants = currentState.participants; merged.speakingParticipantIds = currentState.speakingParticipantIds; + merged.speakingUserIds = currentState.speakingUserIds; merged.deafenedUserIds = currentState.deafenedUserIds; merged.voiceUserStates = currentState.voiceUserStates; merged.participantVolumes = currentState.participantVolumes; diff --git a/packages/web/src/styles/globals.css b/packages/web/src/styles/globals.css index dd67bbe9..55c836fe 100644 --- a/packages/web/src/styles/globals.css +++ b/packages/web/src/styles/globals.css @@ -138,7 +138,7 @@ /* ── Glass Material Tiers ── * .glass — Popovers, context menus, autocomplete (small, no backdrop) * .glass-modal — Center-screen dialogs (large, with backdrop, higher opacity for legibility) - * .glass-strip — Space sidebar edge (no border-radius, directional shadow) + * .glass-strip — Space sidebar edge (moved to @layer utilities to win over bg-surface-* utilities) * .glass-bubble — Persistent floating controls (voice bar, input pill) * .glass-pill — Inline decorations (reactions, tags, lighter blur) * @@ -159,17 +159,6 @@ transition: border-color 0.2s ease, box-shadow 0.2s ease; } - /* Space strip glass — no border-radius, rightward shadow */ - .glass-strip { - backdrop-filter: blur(20px) saturate(120%); - -webkit-backdrop-filter: blur(20px) saturate(120%); - background: var(--glass-bg); - border-right: 1px solid rgba(255, 255, 255, 0.05); - box-shadow: - inset 0 1px 0 rgba(255, 255, 255, 0.03), - 2px 0 12px rgba(0, 0, 0, 0.20); - } - /* Floating bubble glass — bottom bar, input pill */ .glass-bubble { backdrop-filter: blur(20px) saturate(120%); @@ -247,6 +236,17 @@ } @layer utilities { + /* Space strip glass — in utilities layer so md:glass-strip wins over bg-surface-* */ + .glass-strip { + backdrop-filter: blur(20px) saturate(120%); + -webkit-backdrop-filter: blur(20px) saturate(120%); + background: var(--glass-bg); + border-right: 1px solid rgba(255, 255, 255, 0.05); + box-shadow: + inset 0 1px 0 rgba(255, 255, 255, 0.03), + 2px 0 12px rgba(0, 0, 0, 0.20); + } + .rounded-inherit { border-radius: inherit; } diff --git a/packages/web/tailwind.config.js b/packages/web/tailwind.config.js index 5b41d50e..3cddac7e 100644 --- a/packages/web/tailwind.config.js +++ b/packages/web/tailwind.config.js @@ -70,7 +70,7 @@ export default { 'glass': '0 2px 8px rgba(0,0,0,0.25), 0 8px 24px rgba(0,0,0,0.15), inset 0 1px 0 var(--glass-highlight)', }, fontFamily: { - sans: ['Inter', '-apple-system', 'BlinkMacSystemFont', 'system-ui', 'sans-serif'], + sans: ['DM Sans', '-apple-system', 'BlinkMacSystemFont', 'system-ui', 'sans-serif'], }, }, },