2121 < header class ="main-header ">
2222 < div class ="main-header-title ">
2323 < h2 > < span class ="logo-dot "> </ span > ESPHome Designer</ h2 >
24- < span > Visual YAML Editor < small style ="opacity: 0.5; margin-left: 8px; "> v0.8.3 </ small > < span
24+ < span > Visual YAML Editor < small style ="opacity: 0.5; margin-left: 8px; "> v0.8.4 </ small > < span
2525 id ="currentLayoutDevice " style ="margin-left:8px; color:var(--accent); "> </ span > </ span >
2626 </ div >
2727 < div class ="main-header-actions desktop-only ">
@@ -37,8 +37,6 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
3737 </ a >
3838 < button id ="deviceSettingsBtn " class ="btn btn-secondary "> 📱 Device Settings</ button >
3939 < button id ="editorSettingsBtn " class ="btn btn-secondary "> ⚙ Editor Settings</ button >
40- < button id ="aiPromptBtn " class ="btn btn-primary " style ="background: var(--accent); color: white; border: none; "> ✨
41- AI Prompt</ button >
4240 </ div >
4341 < div class ="main-header-actions mobile-only ">
4442 < button id ="mobileWidgetsBtn " class ="btn btn-secondary "> < svg viewBox ="0 0 24 24 " width ="18 " height ="18 "
@@ -85,6 +83,7 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
8583 Widgets
8684 </ div >
8785 < div id ="widgetPalette " class ="widget-list ">
86+
8887 <!-- CORE CATEGORY -->
8988 < div class ="widget-category expanded " data-category ="core ">
9089 < div class ="widget-category-header " onclick ="toggleWidgetCategory('core') ">
@@ -306,6 +305,15 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
306305 < span class ="label "> Reload Page</ span >
307306 < span class ="tag "> Nav</ span >
308307 </ div >
308+ < div class ="item " draggable ="true " data-widget-type ="template_nav_bar ">
309+ < svg class ="widget-icon " viewBox ="0 0 24 24 " width ="18 " height ="18 ">
310+ < rect x ="2 " y ="6 " width ="20 " height ="12 " rx ="2 " fill ="none " stroke ="currentColor " stroke-width ="2 " />
311+ < path d ="M7 12l-3-3 3-3M17 12l3-3-3-3M12 9v6 " stroke ="currentColor " stroke-width ="2 "
312+ stroke-linecap ="round " stroke-linejoin ="round " />
313+ </ svg >
314+ < span class ="label "> Navigation Bar</ span >
315+ < span class ="tag "> Template</ span >
316+ </ div >
309317 </ div >
310318 </ div >
311319
@@ -353,6 +361,14 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
353361 < span class ="label "> Humidity</ span >
354362 < span class ="tag "> SHT4x</ span >
355363 </ div >
364+ < div class ="item " draggable ="true " data-widget-type ="template_sensor_bar ">
365+ < svg class ="widget-icon " viewBox ="0 0 24 24 " width ="18 " height ="18 ">
366+ < rect x ="2 " y ="6 " width ="20 " height ="12 " rx ="2 " fill ="none " stroke ="currentColor " stroke-width ="2 " />
367+ < path d ="M5 12h2M10 12h2M15 12h4 " stroke ="currentColor " stroke-width ="2 " stroke-linecap ="round " />
368+ </ svg >
369+ < span class ="label "> On-Board Sensor Bar</ span >
370+ < span class ="tag "> New</ span >
371+ </ div >
356372 </ div >
357373 </ div >
358374
@@ -591,6 +607,7 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
591607 < div class ="code-panel-header ">
592608 < div class ="code-panel-title "> ESPHome YAML</ div >
593609 < div class ="code-panel-actions ">
610+ < button id ="aiPromptBtn " class ="btn btn-secondary btn-xs btn-ai-sparkle "> ✨ AI Assistant</ button >
594611 < button id ="copySnippetBtn " class ="btn btn-secondary btn-xs "> Copy</ button >
595612 < button id ="fullscreenSnippetBtn " class ="btn btn-secondary btn-xs "> Full</ button >
596613 < button id ="updateLayoutBtn " class ="btn btn-secondary btn-xs "
@@ -1125,31 +1142,43 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
11251142 </ div >
11261143 < div class ="field " style ="border-top:1px solid var(--border-subtle); padding-top:12px; margin-top:12px; ">
11271144 < div class ="prop-label "> Keyboard Shortcuts</ div >
1128- < div style ="font-size: var(--fs-xs); color: var(--muted); line-height: 2; ">
1129- < div > < kbd
1130- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Ctrl+Z</ kbd >
1131- Undo</ div >
1132- < div > < kbd
1133- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Ctrl+Y</ kbd >
1134- Redo</ div >
1135- < div > < kbd
1136- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Ctrl+C</ kbd >
1137- Copy widget</ div >
1138- < div > < kbd
1139- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Ctrl+V</ kbd >
1140- Paste widget</ div >
1141- < div > < kbd
1142- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Delete</ kbd >
1143- Remove selected widget</ div >
1144- < div > < kbd
1145- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Alt
1146- + Drag</ kbd > Disable snap guides</ div >
1147- < div > < kbd
1148- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Shift+Space</ kbd >
1149- Quick widget search</ div >
1150- < div > < kbd
1151- style ="background:var(--bg-input); padding:2px 6px; border-radius:3px; border:1px solid var(--border-subtle); "> Ctrl+R</ kbd >
1152- Reset canvas zoom</ div >
1145+ < div class ="shortcuts-grid ">
1146+ < div class ="shortcut-item ">
1147+ < span class ="shortcut-label "> Undo</ span >
1148+ < span class ="shortcut-key "> < kbd > Ctrl+Z</ kbd > </ span >
1149+ </ div >
1150+ < div class ="shortcut-item ">
1151+ < span class ="shortcut-label "> Redo</ span >
1152+ < span class ="shortcut-key "> < kbd > Ctrl+Y</ kbd > </ span >
1153+ </ div >
1154+ < div class ="shortcut-item ">
1155+ < span class ="shortcut-label "> Copy</ span >
1156+ < span class ="shortcut-key "> < kbd > Ctrl+C</ kbd > </ span >
1157+ </ div >
1158+ < div class ="shortcut-item ">
1159+ < span class ="shortcut-label "> Paste</ span >
1160+ < span class ="shortcut-key "> < kbd > Ctrl+V</ kbd > </ span >
1161+ </ div >
1162+ < div class ="shortcut-item ">
1163+ < span class ="shortcut-label "> Delete</ span >
1164+ < span class ="shortcut-key "> < kbd > DEL</ kbd > </ span >
1165+ </ div >
1166+ < div class ="shortcut-item ">
1167+ < span class ="shortcut-label "> Lock/Unlock</ span >
1168+ < span class ="shortcut-key "> < kbd > Ctrl+L</ kbd > </ span >
1169+ </ div >
1170+ < div class ="shortcut-item ">
1171+ < span class ="shortcut-label "> Search</ span >
1172+ < span class ="shortcut-key "> < kbd > Shift+Space</ kbd > </ span >
1173+ </ div >
1174+ < div class ="shortcut-item ">
1175+ < span class ="shortcut-label "> Zoom Reset</ span >
1176+ < span class ="shortcut-key "> < kbd > Ctrl+R</ kbd > </ span >
1177+ </ div >
1178+ < div class ="shortcut-item ">
1179+ < span class ="shortcut-label "> Snap Off</ span >
1180+ < span class ="shortcut-key "> < kbd > ALT</ kbd > </ span >
1181+ </ div >
11531182 </ div >
11541183 </ div >
11551184 </ div >
@@ -1166,6 +1195,14 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
11661195 < button id ="aiPromptClose " class ="btn btn-secondary "> Close</ button >
11671196 </ div >
11681197 < div class ="modal-body ">
1198+ < div id ="aiConfigWarning "
1199+ style ="background: rgba(82, 199, 234, 0.1); border-left: 3px solid var(--accent); padding: 10px; border-radius: 4px; font-size: 11px; margin-bottom: 12px; line-height: 1.4; ">
1200+ < strong > 💡 Configuration Required:</ strong > < br >
1201+ An API provider and key must be configured in < strong > Editor Settings</ strong > before using the AI Assistant.
1202+ < button
1203+ onclick ="window.openEditorSettingsModal(); document.getElementById('aiPromptModal').classList.add('hidden'); "
1204+ class ="btn btn-secondary btn-xs " style ="margin-top:8px; display:block; "> ⚙ Open Editor Settings</ button >
1205+ </ div >
11691206 < div style ="font-size: 11px; color: var(--muted); margin-bottom: 12px; ">
11701207 Describe what you want to change. Example: "Move the selected widget 50px right" or "Make a nice weather
11711208 layout with 4 days forecast".
@@ -1309,6 +1346,8 @@ <h2><span class="logo-dot"></span> ESPHome Designer</h2>
13091346 < script src ="features/touch_area/render.js "> </ script >
13101347 < script src ="features/weather_forecast/render.js "> </ script >
13111348 < script src ="features/weather_icon/render.js "> </ script >
1349+ < script src ="features/template_sensor_bar/render.js "> </ script >
1350+ < script src ="features/template_nav_bar/render.js "> </ script >
13121351 < script src ="js/main.js "> </ script >
13131352</ body >
13141353
0 commit comments