jpablo-gz opened a new pull request, #8527: URL: https://github.com/apache/texera/pull/8527
### What changes were proposed in this PR? Add rectangle selection, explanatory section boxes, and a library of reusable workflow sections. - Secondary-button drag or Alt + primary-button drag selects operators, internal links, and annotations. Selected elements can be moved together, copied, or deleted. - Named, colored section boxes annotate workflow regions using the existing annotation model, persistence, undo, and collaboration. - Saving a reusable section captures geometrically contained operators, their configuration (including UDF code), internal links, and the section box. Library entries provide a description and graph preview. - Insertion creates independent copies with remapped IDs and selects the inserted elements for immediate placement. The reusable library is stored in the current browser's localStorage; it is not a shared server-side library. This change is frontend-only and adds no dependencies. ### Any related issues, documentation, discussions? Closes #8526. Maintainer agreement has not yet been established. Contribution workflow: https://github.com/apache/texera/blob/main/CONTRIBUTING.md ### How was this PR tested? Focused unit/integration suites, from `frontend/`: ```bash npm test -- --include=src/app/workspace/component/canvas-selection/canvas-selection.component.spec.ts --include=src/app/workspace/component/canvas-selection/selection-geometry.spec.ts --include=src/app/workspace/component/left-panel/left-panel.component.spec.ts --include=src/app/workspace/component/left-panel/my-snippets/my-snippets.component.spec.ts --include=src/app/workspace/component/left-panel/my-snippets/reusable-section-detail.component.spec.ts --include=src/app/workspace/component/overbox/overbox-dialog.component.spec.ts --include=src/app/workspace/component/overbox/overbox-interaction.component.spec.ts --include=src/app/workspace/component/workflow-editor/create-snippet-modal/create-snippet-modal.component.spec.ts --include=src/app/workspace/component/workflow-editor/workflow-editor.component.spec.ts --include=src/app/workspace/service/overbox/overbox-colors.spec.ts --include=src/app/workspace/service/overbox/overbox.service.spec.ts --include=src/app/workspace/service/wor kflow-fragment/workflow-fragment.service.spec.ts --include=src/app/workspace/service/workflow-snippet/workflow-snippet.service.spec.ts ``` 179 tests passed across 13 suites against upstream main at 0b103f813. Prettier and ESLint checked on the contributed files. Browser-mode validation and before/after visual evidence remain pending; publish as a draft until these are complete. Manual review steps: 1. Drag a selection rectangle around multiple operators and move the selection. 2. Create a section box, edit its name/color, and resize it. 3. Save it as a reusable section with a description. 4. Open the library preview, then insert into another workflow. 5. Verify that the section and its operators are selected and can move together. 6. Edit the inserted operators and confirm the saved library entry is unchanged. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: OpenAI Codex (GPT-6; earlier implementation also used GPT-5-based Codex). -- 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]
