Metadata-Version: 2.3
Name: blux-framework
Version: 0.1.0
Summary: Um framework full-stack declarativo
Author: Ricardo
Author-email: Ricardo <ricardokayoca@gmail.com>
Requires-Dist: fastapi[standard]>=0.141.1
Requires-Python: >=3.14
Description-Content-Type: text/markdown

# blux
blux é um framework full-stack declarativo feito em Python para criar interfaces web com renderização dinâmica, ações no backend e roteamento baseado em diretórios.

## Visão geral

- roteamento baseado em diretórios
- componentes para UI
  - text
  - view
  - button
  - input
  - textarea
  - image
  - link
  - table
  - modal
  - form
- atualização parcial do componente quando uma action é chamada
- actions: funções executadas no backend quando um evento ocorre

## Documentação

A documentação está em `docs/` e distribuída com MkDocs (Material).

### Rodar a versão local

```bash
python -m pip install -e '.[docs]'
mkdocs serve
```

### Conteúdo principal

- [Início](docs/index.md)
- [Primeiros passos](docs/quickstart.md)
- [Conceitos](docs/concepts.md)
- [Componentes](docs/components.md)
- [Actions](docs/actions.md)
- [API](docs/api.md)

### Build da documentação

```bash
mkdocs build
```

## Status do projeto

- [x] atualizar componente sempre que uma action é chamada
- [x] actions: função que serão chamadas no back-end assim que um evento for chamado
- [ ] api: rotas publicas
- [ ] Middleware: deve executar antes da renderisação
- [ ] Autenticação
- [ ] Proteção contra CSRF
- [ ] State

## Estrutura principal

```text
app/
  pages/
src/
  blux/
```

## Exemplo rápido

```python
import blux

class HomePage(blux.Page):
    title = "Home"

    @blux.action
    def salvar(self, request):
        form = request.state.form
        print(form.get("nome"))

    def render(self, request):
        return blux.Form(
            action=self.salvar,
            elements=[
                blux.Input(name="nome", placeholder="Digite seu nome"),
                blux.Button(content="Enviar", type="submit"),
            ],
        )
```



