11<script setup lang="ts">
22import type { Section } from " ../../types" ;
3+ import IconPresets from " ../ui/icons/IconPresets.vue" ;
4+ import IconSettings from " ../ui/icons/IconSettings.vue" ;
5+ import IconFeatures from " ../ui/icons/IconFeatures.vue" ;
6+ import IconNetwork from " ../ui/icons/IconNetwork.vue" ;
7+ import IconMounts from " ../ui/icons/IconMounts.vue" ;
8+ import IconAdvanced from " ../ui/icons/IconAdvanced.vue" ;
39
410defineProps <{
511 activeSection: Section ;
@@ -20,24 +26,15 @@ defineEmits<{
2026 :class =" { active: activeSection === 'presets' }"
2127 title =" Presets (Quick Start)"
2228 >
23- <svg
24- class =" w-6 h-6"
29+ <IconPresets
30+ class =" w-6 h-6 transition-colors duration-200 "
2531 :class ="
2632 activeSection === 'presets'
2733 ? 'text-ide-text-bright'
2834 : 'text-ide-text-muted group-hover:text-ide-text'
2935 "
30- fill =" none"
31- viewBox =" 0 0 24 24"
32- stroke =" currentColor"
33- >
34- <path
35- stroke-linecap =" round"
36- stroke-linejoin =" round"
37- stroke-width =" 1.5"
38- d =" M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"
39- />
40- </svg >
36+ stroke-width =" 1.5"
37+ />
4138 </div >
4239
4340 <div
@@ -46,130 +43,79 @@ defineEmits<{
4643 :class =" { active: activeSection === 'general' }"
4744 title =" General Settings"
4845 >
49- <svg
50- class =" w-6 h-6"
46+ <IconSettings
47+ class =" w-6 h-6 transition-colors duration-200 "
5148 :class ="
5249 activeSection === 'general'
5350 ? 'text-ide-text-bright'
5451 : 'text-ide-text-muted group-hover:text-ide-text'
5552 "
56- fill =" none"
57- viewBox =" 0 0 24 24"
58- stroke =" currentColor"
59- >
60- <path
61- stroke-linecap =" round"
62- stroke-linejoin =" round"
63- stroke-width =" 1.5"
64- d =" M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"
65- />
66- <path
67- stroke-linecap =" round"
68- stroke-linejoin =" round"
69- stroke-width =" 1.5"
70- d =" M15 12a3 3 0 11-6 0 3 3 0 016 0z"
71- />
72- </svg >
53+ stroke-width =" 1.5"
54+ />
7355 </div >
7456 <div
7557 @click =" $emit('update:activeSection', 'features')"
7658 class =" activity-item group"
7759 :class =" { active: activeSection === 'features' }"
7860 title =" Features"
7961 >
80- <svg
81- class =" w-6 h-6"
62+ <IconFeatures
63+ class =" w-6 h-6 transition-colors duration-200 "
8264 :class ="
8365 activeSection === 'features'
8466 ? 'text-ide-text-bright'
8567 : 'text-ide-text-muted group-hover:text-ide-text'
8668 "
87- fill =" none"
88- viewBox =" 0 0 24 24"
89- stroke =" currentColor"
90- >
91- <path
92- stroke-linecap =" round"
93- stroke-linejoin =" round"
94- stroke-width =" 1.5"
95- d =" M21 7.5l-9-5.25L3 7.5m18 0l-9 5.25m9-5.25v9l-9 5.25M3 7.5l9 5.25M3 7.5v9l9 5.25m0-9v9"
96- />
97- </svg >
69+ stroke-width =" 1.5"
70+ />
9871 </div >
9972 <div
10073 @click =" $emit('update:activeSection', 'ports')"
10174 class =" activity-item group"
10275 :class =" { active: activeSection === 'ports' }"
10376 title =" Network & Ports"
10477 >
105- <svg
106- class =" w-6 h-6"
78+ <IconNetwork
79+ class =" w-6 h-6 transition-colors duration-200 "
10780 :class ="
10881 activeSection === 'ports'
10982 ? 'text-ide-text-bright'
11083 : 'text-ide-text-muted group-hover:text-ide-text'
11184 "
112- fill =" none"
113- viewBox =" 0 0 24 24"
114- stroke =" currentColor"
115- >
116- <path
117- stroke-linecap =" round"
118- stroke-linejoin =" round"
119- stroke-width =" 1.5"
120- d =" M12 21a9.004 9.004 0 008.716-6.747M12 21a9.004 9.004 0 01-8.716-6.747M12 21c2.485 0 4.5-4.03 4.5-9S14.485 3 12 3m0 18c-2.485 0-4.5-4.03-4.5-9S9.515 3 12 3m0 0a8.997 8.997 0 017.843 4.582M12 3a8.997 8.997 0 00-7.843 4.582m15.686 0A11.963 11.963 0 0112 10.5a11.963 11.963 0 01-7.843-2.918m15.686 0A8.996 8.996 0 0121 12c0 .778-.099 1.533-.284 2.253m0 0A17.919 17.919 0 0112 16.5c-3.162 0-6.133-.815-8.716-2.247m0 0A9.015 9.015 0 013 12c0-1.605.42-3.113 1.157-4.418"
121- />
122- </svg >
85+ stroke-width =" 1.5"
86+ />
12387 </div >
12488 <div
12589 @click =" $emit('update:activeSection', 'mounts')"
12690 class =" activity-item group"
12791 :class =" { active: activeSection === 'mounts' }"
12892 title =" Mounts"
12993 >
130- <svg
131- class =" w-6 h-6"
94+ <IconMounts
95+ class =" w-6 h-6 transition-colors duration-200 "
13296 :class ="
13397 activeSection === 'mounts'
13498 ? 'text-ide-text-bright'
13599 : 'text-ide-text-muted group-hover:text-ide-text'
136100 "
137- fill =" none"
138- viewBox =" 0 0 24 24"
139- stroke =" currentColor"
140- >
141- <path
142- stroke-linecap =" round"
143- stroke-linejoin =" round"
144- stroke-width =" 1.5"
145- d =" M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"
146- />
147- </svg >
101+ stroke-width =" 1.5"
102+ />
148103 </div >
149104 <div
150105 @click =" $emit('update:activeSection', 'advanced')"
151106 class =" activity-item group"
152107 :class =" { active: activeSection === 'advanced' }"
153108 title =" Advanced & Hooks"
154109 >
155- <svg
156- class =" w-6 h-6"
110+ <IconAdvanced
111+ class =" w-6 h-6 transition-colors duration-200 "
157112 :class ="
158113 activeSection === 'advanced'
159114 ? 'text-ide-text-bright'
160115 : 'text-ide-text-muted group-hover:text-ide-text'
161116 "
162- fill =" none"
163- viewBox =" 0 0 24 24"
164- stroke =" currentColor"
165- >
166- <path
167- stroke-linecap =" round"
168- stroke-linejoin =" round"
169- stroke-width =" 1.5"
170- d =" M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"
171- />
172- </svg >
117+ stroke-width =" 1.5"
118+ />
173119 </div >
174120 </aside >
175121</template >
0 commit comments