+ {(isLoadingWorkflows || componentsLoading) && query && (
+
+ Loading...
+
+ )}
+
+ {!isLoadingWorkflows && !componentsLoading && flatCommandList.length === 0 && (
+
+
+
No results found
+
+ Try a different search term
+
+
+ )}
+
+ {groupedCommands.map((group, groupIndex) => {
+ // Calculate starting index for this group
+ let startIndex = 0
+ for (let i = 0; i < groupIndex; i++) {
+ startIndex += groupedCommands[i].commands.length
+ }
+
+ return (
+
+
+ {group.category === 'components' && (
+
+ )}
+
+ {group.label}
+
+ {group.category === 'components' && !canPlaceComponents && (
+
+ (open a workflow first)
+
+ )}
+
+ {group.commands.map((command, cmdIndex) => {
+ const flatIndex = startIndex + cmdIndex
+ const isSelected = flatIndex === selectedIndex
+ const Icon = command.icon
+ const isComponent = command.type === 'component'
+ const hasLogo = isComponent && 'iconUrl' in command && command.iconUrl
+
+ return (
+
+ )
+ })}
+
+ )
+ })}
+
+
+ {/* Footer with keyboard hints */}
+