Metadata-Version: 2.4
Name: routelit-glide-data-grid
Version: 0.0.3
Summary: This is a routelit library repository for that uses uv for their dependency management.
Project-URL: Homepage, https://rolangom.github.io/routelit-glide-data-grid/
Project-URL: Repository, https://github.com/rolangom/routelit-glide-data-grid
Project-URL: Documentation, https://rolangom.github.io/routelit-glide-data-grid/
Author-email: Rolando Gomez Tabar <rolangom@gmail.com>
License-File: LICENSE
Keywords: python
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: <4.0,>=3.10
Requires-Dist: routelit>=0.6.2
Provides-Extra: pandas
Requires-Dist: pandas>=1.3.0; extra == 'pandas'
Provides-Extra: polars
Requires-Dist: polars>=0.20.0; extra == 'polars'
Description-Content-Type: text/markdown

# RouteLit Glide Data Grid

[![Release](https://img.shields.io/github/v/release/routelit/glide-data-grid)](https://img.shields.io/github/v/release/routelit/glide-data-grid)
[![Build status](https://img.shields.io/github/actions/workflow/status/routelit/glide-data-grid/main.yml?branch=main)](https://github.com/routelit/glide-data-grid/actions/workflows/main.yml?query=branch%3Amain)
[![codecov](https://codecov.io/gh/routelit/glide-data-grid/branch/main/graph/badge.svg)](https://codecov.io/gh/routelit/glide-data-grid)
[![License](https://img.shields.io/github/license/routelit/glide-data-grid)](https://img.shields.io/github/license/routelit/glide-data-grid)

`routelit/glide-data-grid` is a high-performance, interactive data grid and editor for RouteLit, powered by the incredible [Glide Data Grid](https://grid.glideapps.com/) library.

- **Github repository**: <https://github.com/routelit/glide-data-grid/>
- **Documentation**: <https://routelit.github.io/glide-data-grid/>

## Key Features

- **🚀 Performance**: Smoothly renders millions of rows with native-speed scrolling.
- **📝 Data Editing**: A powerful `data_editor` with validation and dynamic row management.
- **🏗️ Advanced Layout**:
    - **Frozen Columns & Trailing Rows**: Keep context visible while navigating large datasets.
    - **Column Grouping**: Merge headers into logical categories.
    - **Row Markers**: Custom index column with support for numbers, checkboxes, or both.
- **🎨 Rich Column Types**: Specialized cells for Text, Numbers, Dates, Images, Links, Markdown, and JSON.
- **🧩 Flexible Data Formats**: Supports pandas DataFrames, lists of dicts, dictionaries of lists, simple lists, and key-value mappings.
- **🛡️ Robust Typing**: Full Python type hints with specialized selection and configuration types.

## Installation

```bash
pip install routelit-glide-data-grid
```

## Quick Start

```python
import pandas as pd
from routelit_glide_data_grid import RLBuilder, TextColumn

def app(ui: RLBuilder):
    df = pd.DataFrame({
        "Name": ["Alice", "Bob", "Charlie"],
        "Role": ["Engineer", "Designer", "Manager"]
    })

    ui.title("Project Dashboard")

    # Render an interactive grid
    ui.data_grid(
        df,
        freeze_columns=1,
        column_config={
            "Name": TextColumn(group="Identity"),
            "Role": TextColumn(group="Identity"),
        }
    )
```

## Development

### 1. Set Up Environment
Install dependencies and pre-commit hooks:
```bash
make install
```

### 2. Frontend Development
Start the Vite dev server for the React component:
```bash
cd src/frontend
pnpm install
pnpm run dev
```

### 3. Backend Development
In another terminal, run the feature showcase app:
```bash
uv sync
uv run src/example/example.py
```

### 4. Quality Assurance
Run tests and linting before submitting changes:
```bash
make test
make check
```

---

Maintained by [Rolando Gomez Tabar](https://rolangom.com).
Initially generated with [routelit/rl-builder-cookiecutter-uv](https://github.com/routelit/rl-builder-cookiecutter-uv).
