Metadata-Version: 2.4
Name: SaaS-FrameWork
Version: 0.1.9
Summary: SaaS-FrameWork - sistema de componentes reutilizaveis para apps SaaS construido com Python e Flet
Author-email: Almir Duarte <almir.jg@gmail.com>
License-Expression: MIT
Project-URL: Repository, https://github.com/DEx-SaaS/FrameWork
Keywords: flet,saas,framework,ui,components,design-system
Classifier: Development Status :: 1 - Planning
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Software Development :: User Interfaces
Requires-Python: >=3.13
Description-Content-Type: text/markdown
Requires-Dist: flet==0.84.0
Requires-Dist: flet-charts==0.84.0
Provides-Extra: web
Requires-Dist: flet-web==0.84.0; extra == "web"
Provides-Extra: dev
Requires-Dist: flet==0.84.0; extra == "dev"
Requires-Dist: pytest<10,>=9.1; extra == "dev"
Requires-Dist: build<2,>=1.3; extra == "dev"
Requires-Dist: twine<7,>=6.2; extra == "dev"
Provides-Extra: visual
Requires-Dist: playwright<2,>=1.40; extra == "visual"

# SaaS-FrameWork

Reusable SaaS UI components for [Flet](https://flet.dev): a versioned design system with
**75 catalogued components** — buttons, inputs, navigation, data tables and tree views,
charts, overlays and dialogs, feedback, media and responsive layout — plus accessible color themes
and a navigable component catalog.

## Install

```bash
pip install SaaS-FrameWork
```

For web deployments, install the web extra:

```bash
pip install "SaaS-FrameWork[web]"
```

## Quickstart

```python
import flet as ft
from components import DEx_BtnPrimary, DEx_MetricCard, DEx_Notify, DEx_TextField


def main(page: ft.Page) -> None:
    page.title = "Hello SaaS-FrameWork"
    name = DEx_TextField(label="Your name", hint="Type and press the button")
    page.add(
        DEx_MetricCard(label="Active users", value="1,024", delta="+12%"),
        name,
        DEx_BtnPrimary("Greet", on_click=lambda e: DEx_Notify(page, f"Hello, {name.value}!")),
    )


ft.app(main)
```

Save as `hello.py` and run:

```bash
python hello.py
```

Every public component is importable straight from `components`
(`from components import DEx_DataTable, DEx_AppShell, ...`).

## Compatibility

| Requirement | Version |
|---|---|
| Python | `>= 3.13` |
| Flet | `== 0.84.0` (pinned) |

The Flet dependency is intentionally **pinned**: Flet's API still moves between releases, so
upgrades only land here after the project's upgrade policy revalidates all 70 use cases
against the candidate version. Installing this package therefore also pins your app's Flet
version.

## Component catalog

Browse every component, its use case, parameters and source in the live catalog:

- **Online:** https://saas-framework-catalog.onrender.com
- **Local (from the repository):** `flet run catalog/catalog.py`

The catalog has global search, maturity filters and a responsive layout, and is audited for
accessibility (WCAG AA contrast, keyboard navigation).

## Versioning and maturity

The project is **pre-1.0**: APIs may still change between minor releases. Each component
declares its own `COMPONENT_VERSION` and the catalog groups them into maturity bands —
Experimental (`0.0.x`), Evolving (`0.1.x+`) and Stable (`1.x+`). Every component change is
required (and CI-enforced) to bump the component version. Release history lives in
[CHANGELOG.md](CHANGELOG.md).

## Feedback

Bug reports, questions and suggestions: https://github.com/DEx-SaaS/FrameWork/issues

## Development

Contributor documentation — folder structure, naming conventions, versioning rules, test
suite and the component contract — lives in [CONTRIBUTING.md](CONTRIBUTING.md).

## License

MIT.
