From 74be69162b6ab96656c17e464f7c5471d67c2822 Mon Sep 17 00:00:00 2001 From: hamed musallam Date: Mon, 19 Oct 2026 15:53:24 +0200 Subject: [PATCH 01/22] feat: add experimental assignment list panel --- .../AssignmentAtomCell.tsx | 36 ++++ .../AssignmentListPanel.tsx | 183 ++++++++++++++++ .../MoleculeAssignmentTable.tsx | 79 +++++++ .../atomGroupsToAssignmentRows.ts | 198 ++++++++++++++++++ src/component/panels/Panels.tsx | 59 ++++-- 5 files changed, 534 insertions(+), 21 deletions(-) create mode 100644 src/component/panels/AssignmentListPanel/AssignmentAtomCell.tsx create mode 100644 src/component/panels/AssignmentListPanel/AssignmentListPanel.tsx create mode 100644 src/component/panels/AssignmentListPanel/MoleculeAssignmentTable.tsx create mode 100644 src/component/panels/AssignmentListPanel/atomGroupsToAssignmentRows.ts diff --git a/src/component/panels/AssignmentListPanel/AssignmentAtomCell.tsx b/src/component/panels/AssignmentListPanel/AssignmentAtomCell.tsx new file mode 100644 index 000000000..4006ca70d --- /dev/null +++ b/src/component/panels/AssignmentListPanel/AssignmentAtomCell.tsx @@ -0,0 +1,36 @@ +import { Button } from '@blueprintjs/core'; +import styled from '@emotion/styled'; + +import type { AssignmentListRow } from './atomGroupsToAssignmentRows.js'; + +interface AssignmentAtomCellProps { + row: AssignmentListRow; + onToggle: (id: string) => void; +} + +const AtomCellContainer = styled.span` + display: flex; + align-items: center; +`; + +export function AssignmentAtomCell({ row, onToggle }: AssignmentAtomCellProps) { + return ( + +