provide separate state binding for UI
use loop-grid active grid instead of generating internally
expose UI state properly and include chunk info
port-holder: emit switch event and clean up on destroy