The picture is swapped on the running stream, so viewers stay connected. The new camera is opened first where the device allows two at once; phones close the old one first. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
40 lines
2.3 KiB
TypeScript
40 lines
2.3 KiB
TypeScript
// SVG path data (24x24 viewBox, square caps) shared by <Icon> and the tray icon
|
|
export const ICON_PATHS: Record<string, string> = {
|
|
mic: 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 10v2a7 7 0 0 1-14 0v-2M12 19v3',
|
|
'mic-off': 'M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3zM19 10v2a7 7 0 0 1-14 0v-2M12 19v3M3 3l18 18',
|
|
headphones: 'M3 14v-2a9 9 0 0 1 18 0v2M21 14v7h-4v-7zM3 14v7h4v-7z',
|
|
'headphones-off': 'M3 14v-2a9 9 0 0 1 18 0v2M21 14v7h-4v-7zM3 14v7h4v-7zM3 3l18 18',
|
|
settings: 'M4 21v-7M4 10V3M12 21v-9M12 8V3M20 21v-5M20 12V3M1 14h6M9 8h6M17 16h6',
|
|
plus: 'M12 5v14M5 12h14',
|
|
switch: 'M4 8h13l-3-3M20 16H7l3 3',
|
|
camera: 'M2 6h14v12H2zM16 10l6-3v10l-6-3',
|
|
screen: 'M3 4h18v12H3zM8 20h8M12 16v4',
|
|
popout: 'M14 4h6v6M20 4l-9 9M18 14v6H4V6h6',
|
|
expand: 'M4 9V4h5M20 9V4h-5M4 15v5h5M20 15v5h-5',
|
|
filter: 'M3 4h18l-7 8v7l-4 2v-9z',
|
|
info: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM12 11v6M12 7h.01',
|
|
'arrow-right': 'M5 12h14M13 6l6 6-6 6',
|
|
paperclip: 'M21.4 11.1l-9.2 9.2a6 6 0 0 1-8.5-8.5l9.2-9.2a4 4 0 0 1 5.7 5.7l-9.2 9.2a2 2 0 0 1-2.8-2.8l8.5-8.5',
|
|
hash: 'M4 9h16M4 15h16M10 3L8 21M16 3l-2 18',
|
|
channel: 'M11 5L6 9H2v6h4l5 4zM15.5 8.5a5 5 0 0 1 0 7',
|
|
users: 'M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM23 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8',
|
|
menu: 'M3 6h18M3 12h18M3 18h18',
|
|
x: 'M18 6L6 18M6 6l12 12',
|
|
power: 'M18.4 6.6a9 9 0 1 1-12.8 0M12 2v10',
|
|
lock: 'M5 11h14v10H5zM8 11V7a4 4 0 0 1 8 0v4',
|
|
file: 'M14 2H6v20h12V8zM14 2v6h6',
|
|
send: 'M22 2L11 13M22 2l-7 20-4-9-9-4z',
|
|
message: 'M21 15H7l-4 4V3h18z',
|
|
trash: 'M3 6h18M8 6V3h8v3M19 6l-1 15H6L5 6',
|
|
server: 'M2 3h20v8H2zM2 13h20v8H2zM6 7h.01M6 17h.01',
|
|
shield: 'M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z',
|
|
download: 'M12 3v12M7 10l5 5 5-5M4 21h16',
|
|
globe: 'M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20zM2 12h20M12 2c3.5 3.5 3.5 16.5 0 20M12 2c-3.5 3.5-3.5 16.5 0 20',
|
|
list: 'M9 6h12M9 12h12M9 18h12M4 6h.01M4 12h.01M4 18h.01',
|
|
'list-ordered': 'M10 6h11M10 12h11M10 18h11M4 4v4M3 18h3l-3 3h3M3 10h2l-2 3h2',
|
|
link: 'M10 14a4 4 0 0 0 6 0l3-3a4 4 0 0 0-6-6l-1 1M14 10a4 4 0 0 0-6 0l-3 3a4 4 0 0 0 6 6l1-1',
|
|
image: 'M3 3h18v18H3zM8.5 10a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM21 15l-5-5L5 21',
|
|
code: 'M16 18l6-6-6-6M8 6l-6 6 6 6',
|
|
eraser: 'M20 20H7L3 16l10-10 7 7-6.5 7M6 11l7 7'
|
|
};
|