```python
import re

def sentence_split(passage: str) -> list:
    """Split a passage into sentences based on '.', '?' or '!'. Trim each sentence and remove empty ones."""
    # Use regex to split by '.', '?' or '!', but keep the delimiters
    pieces = re.split(r"([.!?])", passage)
    
    # Filter out empty strings and trim each sentence
    sentences = [piece.strip() for piece in pieces if piece.strip()]
    
    # Join the sentences back together, removing the delimiters
    return [sentence for sentence in sentences if sentence]
```