kz930 opened a new pull request, #9063: URL: https://github.com/apache/texera/pull/9063
### What changes were proposed in this PR? The hover card gets a Pin button. Pinning turns it into a window beside the operator with the whole result table, tied to the operator by a dashed line. Several windows can be open at once; each can be dragged and resized, and follows its operator when it or the canvas moves. An operator with more than one output gets a tab per output port in its window. The first port is the one the running execution reports on; another port is read when its tab is shown, through the port-aware result service from #9054, and pages by the row count its replies carry. The table in a window fills the window: it measures the space its search bar, header, statistics row and pager take, and fits as many rows as are left. It shows its statistics row only when a column has statistics, which another port never has. <img width="1316" height="907" alt="pr3-2-pinned-output-1" src="https://github.com/user-attachments/assets/788964bb-14bd-4a35-853d-6e2743ab0ae9" /> <img width="1447" height="840" alt="pr3-3-pinned-output-2" src="https://github.com/user-attachments/assets/e6495a79-c117-488c-8434-41da58e42914" /> This needs #9058, so the diff includes its commit and #9054's until they merge. The PR's own change is the last commit. ### Any related issues, documentation, discussions? Closes #9062. Part of #9052. Design discussed in #8842. ### How was this PR tested? A new spec for the pinned window covers its port tabs, the port it shows and the height it hands the table. New cases in the result table's spec cover filling a given height and the statistics row. The affected frontend specs pass. In the running app, a Split of 20 rows into 13 and 7 shows the first output's 13 rows in its first tab and the other 7 in its second, each paged correctly, and the pager ends near the window's bottom edge at any window size. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 5.5) 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
