# 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