diff --git a/portal/setup-wizard.html b/portal/setup-wizard.html
index 955bd55..d69c739 100644
--- a/portal/setup-wizard.html
+++ b/portal/setup-wizard.html
@@ -2647,10 +2647,29 @@
// Group items by category
let itemsByCategory = {};
+ let assignedItemIds = new Set();
+
categories.forEach(cat => {
- itemsByCategory[cat.name] = items.filter(item => item.category === cat.name);
+ const catItems = items.filter(item => item.category === cat.name);
+ if (catItems.length > 0) {
+ itemsByCategory[cat.name] = catItems;
+ catItems.forEach(item => assignedItemIds.add(item.id));
+ }
});
+ // Collect any items not assigned to a known category
+ const unassignedItems = items.filter(item => !assignedItemIds.has(item.id));
+ if (unassignedItems.length > 0) {
+ // Group by their category name, or "Menu" if none
+ unassignedItems.forEach(item => {
+ const catName = item.category || 'Menu';
+ if (!itemsByCategory[catName]) {
+ itemsByCategory[catName] = [];
+ }
+ itemsByCategory[catName].push(item);
+ });
+ }
+
let itemsHtml = '';
for (const [catName, catItems] of Object.entries(itemsByCategory)) {
if (catItems.length === 0) continue;