File size: 2,582 Bytes
6ce4ca6
 
 
 
 
 
8173aa6
6ce4ca6
 
8173aa6
6ce4ca6
 
 
 
8173aa6
6ce4ca6
 
 
8173aa6
6ce4ca6
 
 
8173aa6
 
6ce4ca6
 
 
 
2d0da8c
 
 
 
6ce4ca6
3cdf7b9
 
 
 
 
2d0da8c
3cdf7b9
6ce4ca6
2d0da8c
 
 
6ce4ca6
 
 
2d0da8c
 
6ce4ca6
 
 
2d0da8c
 
 
6ce4ca6
 
 
2d0da8c
 
 
 
8173aa6
2d0da8c
 
 
6ce4ca6
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<script lang="ts">
	import AddRobotButton from "@/components/interface/overlay/AddRobotButton.svelte";
	import AddSensorButton from "@/components/interface/overlay/AddSensorButton.svelte";
	import AddAIButton from "@/components/interface/overlay/AddAIButton.svelte";
	import SettingsButton from "@/components/interface/overlay/SettingsButton.svelte";
	import SettingsSheet from "@/components/interface/overlay/SettingsSheet.svelte";
	import WorkspaceIdButton from "@/components/interface/overlay/WorkspaceIdButton.svelte";

	interface Props {
		workspaceId: string;
		addRobotDropdownMenuOpen?: boolean;
		addSensorDropdownMenuOpen?: boolean;
		addAIDropdownMenuOpen?: boolean;
		settingsOpen?: boolean;
		workspaceIdMenuOpen?: boolean;
	}

	let {
		workspaceId,
		addRobotDropdownMenuOpen = $bindable(false),
		addSensorDropdownMenuOpen = $bindable(false),
		addAIDropdownMenuOpen = $bindable(false),
		settingsOpen = $bindable(false),
		workspaceIdMenuOpen = $bindable(false)
	}: Props = $props();
</script>

<div class="select-none">
	<!-- Responsive Button Bar Container -->
	<div class="fixed top-2 left-2 right-2 z-50 flex flex-wrap items-center justify-between gap-1 select-none md:top-4 md:left-4 md:right-4 md:gap-2">
		<!-- Left Group: Logo + Add Buttons -->
		<div class="flex items-center gap-1 flex-wrap md:gap-2">
			<!-- Logo/Favicon -->
			<div class="flex items-center justify-center">
				<img
					src="/favicon_1024.png"
					alt="Logo"
					draggable="false"
					class="h-8 w-8 invert-0 filter dark:invert md:h-10 md:w-10"
				/>
			</div>
			
			<!-- Add Robot Button Group -->
			<div class="flex items-center justify-center overflow-hidden rounded-lg">
				<AddRobotButton bind:open={addRobotDropdownMenuOpen} />
			</div>

			<!-- Add Sensor Button Group - Hidden on very small screens -->
			<div class="hidden min-[480px]:flex items-center justify-center overflow-hidden rounded-lg">
				<AddSensorButton bind:open={addSensorDropdownMenuOpen} />
			</div>

			<!-- Add AI Button Group - Hidden on small screens -->
			<div class="hidden min-[560px]:flex items-center justify-center overflow-hidden rounded-lg">
				<AddAIButton bind:open={addAIDropdownMenuOpen} workspaceId={workspaceId} />
			</div>
		</div>

		<!-- Right Group: Workspace ID + Settings -->
		<div class="flex items-center gap-1 md:gap-2">
			<!-- Workspace ID Button -->
			<WorkspaceIdButton {workspaceId} bind:open={workspaceIdMenuOpen} />

			<!-- Settings Button -->
			<SettingsButton bind:open={settingsOpen} />
		</div>
	</div>
</div>
<SettingsSheet bind:open={settingsOpen} />