# Story 2.5: Exclusion Non-Destructive de Données Status: review ## Story As a Julien (Analyst), I want to toggle the inclusion of specific rows in the analysis, so that I can test different scenarios without deleting data. ## Acceptance Criteria 1. **Row Toggle:** Users can click a "checkbox" or a specific "Exclude" button on each row. 2. **Visual Feedback:** Excluded rows are visually dimmed (e.g., 30% opacity) and struck through. 3. **Bulk Toggle:** Ability to exclude all filtered rows or all rows matching a criteria (already partially covered by Epic 2.4). 4. **State Persistence:** Exclusion state is tracked in the global store. 5. **Impact on Analysis:** The data sent to subsequent analysis engines (Correlation, Regression) MUST exclude these rows. ## Tasks / Subtasks - [x] **Grid UI Update** (AC: 1, 2) - [x] Add an `Exclude` column with a toggle switch or button to the `SmartGrid`. - [x] Implement conditional styling for the entire row based on exclusion state. - [x] **State Logic** (AC: 4) - [x] Ensure `excludedRows` in `useGridStore` is properly integrated with all UI components. - [x] **Data Pipeline Prep** (AC: 5) - [x] Create a selector/helper `getCleanData()` that returns the dataset minus the excluded rows. ## Dev Notes - **UX:** Added a dedicated "Eye/EyeOff" icon column for quick row exclusion toggling. - **Visuals:** Excluded rows use `opacity-30`, `line-through`, and a darker background to clearly distinguish them from active data. - **Selector:** The `getCleanData` function in the store ensures all future analysis steps only receive valid, included rows. ### Project Structure Notes - Modified `frontend/src/store/use-grid-store.ts`. - Updated `frontend/src/features/smart-grid/components/SmartGrid.tsx`. ### References - [Source: epics.md#Story 2.5] - [Source: ux-design-specification.md#2.5 Experience Mechanics] ## Dev Agent Record ### Agent Model Used {{agent_model_name_version}} ### Completion Notes List - Implemented a "soft delete" system for row exclusion. - Added visual indicators (strike-through and dimming) for excluded rows. - Created a `getCleanData` selector to facilitate downstream statistical modeling. - Integrated row-level toggle buttons directly in the SmartGrid. ### File List - /frontend/src/store/use-grid-store.ts - /frontend/src/features/smart-grid/components/SmartGrid.tsx