@astradevio/modelarium-editor
🌟 Modelarium Editor — Visão Geral
Modelarium Editor é um construtor de formulários moderno e extensível com funcionalidade arrastar e soltar, escrito em TypeScript pela AstraDEV. Oferece uma experiência intuitiva (arrastar-e-soltar e clique-para-adicionar), uma API TypeScript limpa, temas personalizáveis, e importação/exportação JSON para armazenar e reutilizar formulários.
Aviso Esta é uma versão MVP em estágio alfa destinada para avaliação. Use com cautela em produção.
Contribuições são bem-vindas: por favor, abra issues em https://github.com/astradevio/modelarium-editor-dist/issues.
Principais Funcionalidades
- 🎯 Interface Arrastar e Soltar — Construa formulários visualmente arrastando elementos para o canvas.
- 📋 Formulários Baseados em Schema (Importar/Exportar) — Salve, versione e reutilize formulários via JSON para integração com backend.
- 🧩 Sistema de Plugins Extensível — Adicione elementos customizados e estenda funcionalidades sem tocar no núcleo.
- ⚡ API TypeScript Completa — Tipagem forte, IntelliSense e autocompletar.
- 🔌 Agnóstico de Framework — Funciona com React, Vue, Angular ou JavaScript Vanilla.
- ⚙️ Propriedades Configuráveis — Regras de validação, campos obrigatórios, min/max, atributos customizados.
- 🔄 Conversão Bidirecional — Importe formulários existentes, edite visualmente e exporte de volta para JSON/HTML.
- 📚 Documentação — Docs TypeScript inline, guias de uso e exemplos (em desenvolvimento).
Instalação
Instale via npm:
npm install @astradevio/modelarium-editor
Ou com seu gerenciador preferido:
# pnpm
pnpm add @astradevio/modelarium-editor
# yarn
yarn add @astradevio/modelarium-editor
# bun
bun add @astradevio/modelarium-editor
Requisitos: Node 18+ e TypeScript 5+ (recomendado).
Início Rápido
ESM
import ModelariumEditor from '@astradevio/modelarium-editor';
import '@astradevio/modelarium-editor/style.css';
const editor = new ModelariumEditor({
// ...opções
});
Tipos TypeScript (opcional)
import type { ModelariumEditorOptions } from '@astradevio/modelarium-editor';
CommonJS
const ModelariumEditor = require('@astradevio/modelarium-editor').default;
require('@astradevio/modelarium-editor/style.css');
const editor = new ModelariumEditor({ /* ... */ });
CDN (jsDelivr / unpkg)
Use a build UMD diretamente no navegador.
jsDelivr
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@astradevio/modelarium-editor@latest/dist/style.css" />
<script src="https://cdn.jsdelivr.net/npm/@astradevio/modelarium-editor@latest/dist/modelarium-editor.umd.min.js"></script>
<script>
const editor = new window.ModelariumEditor({ /* opções */ });
</script>
unpkg
<link rel="stylesheet" href="https://unpkg.com/@astradevio/modelarium-editor@latest/dist/style.css" />
<script src="https://unpkg.com/@astradevio/modelarium-editor@latest/dist/modelarium-editor.umd.min.js"></script>
<script>
const editor = new window.ModelariumEditor({ /* opções */ });
</script>
O
style.cssdistribuído não é minificado para facilitar a personalização.
Estilização CSS
O Modelarium Editor vem com um arquivo CSS altamente otimizado (style.css) que fornece estilização abrangente para todos os componentes do editor.
Variáveis CSS
Todas as variáveis CSS estão organizadas no início do arquivo para fácil personalização. Todos os estilos usam o prefixo modelarium- para evitar conflitos com seus estilos existentes:
/* Variáveis principais para tematização fácil */
--modelarium-primary-color: #007bff;
--modelarium-background-color: #ffffff;
--modelarium-text-color: #333333;
--modelarium-border-color: #e0e0e0;
/* ... e muitas outras */
Sistema de Temas
O CSS inclui um sistema automático de temas que se adapta às preferências do sistema do usuário:
- Modo Claro: Ativado por padrão ou quando
prefers-color-scheme: light - Modo Escuro: Ativado automaticamente quando
prefers-color-scheme: dark
Você pode personalizar temas modificando as variáveis CSS dentro das respectivas media queries.
Exemplos
Exemplos prontos para uso estão disponíveis no diretório public/examples/:
Exemplos Disponíveis
-
js.html- Exemplo de Uso UMD/Global- Demonstra carregamento do Modelarium Editor via tags
<script> - Mostra padrão de uso de variável global
- Perfeito para páginas web tradicionais ou integração via CDN
- Demonstra carregamento do Modelarium Editor via tags
-
module.html- Exemplo de Uso ES Module- Demonstra importações modernas de ES module
- Mostra como usar com
type="module" - Ideal para aplicações web modernas
API Pública
Classe ModelariumEditor
A classe principal para criar e gerenciar o editor visual.
Construtor
new ModelariumEditor( string | HTMLElement, ?options: ModelariumEditorOptions)
Principais Opções de Inicialização
export interface ModelariumEditorOptions {
debug?: boolean; // debug: true ou false
toolbox?: string; // tipo de toolbox, padrão vai para form
toolboxJSON?: string; // JSON do toolbox
modelariumJSON?: string; // JSON do modelarium
}
Uso Básico
import ModelariumEditor from '@astradevio/modelarium-editor';
const editor = new ModelariumEditor('editor-container', {
theme: 'auto',
debug: true
});
Documentação Completa
Para documentação completa da API, incluindo todos os métodos, eventos e opções avançadas de configuração, visite:
A documentação completa inclui:
- Referência completa de métodos
- Documentação do sistema de eventos
- Opções avançadas de configuração
- Exemplos de integração
- Melhores práticas e tutoriais
Issues
- 🐛 Rastreador de Bugs: https://github.com/astradevio/modelarium-editor/issues
Distribuições
- 🌍 npm (público): https://www.npmjs.com/package/@astradevio/modelarium-editor
- 📦 Git Direto:
npm install git+https://github.com/astradevio/modelarium-editor.git
📄 Licença
Este pacote de distribuição está disponível sob a Licença MIT.
Licenciamento proprietário — incluindo acesso ao código-fonte e serviços profissionais — está disponível mediante solicitação.
🏢 Sobre a AstraDEV
AstraDEV (Astra Empreendedorismo Sistemas e Treinamentos Ltda.) é uma empresa de tecnologia focada em soluções de software, treinamentos e inovação para acelerar o desenvolvimento de produtos digitais.
- 🌐 Website: https://www.astradev.io
- 📧 Contato: developer@astradev.io
📝 Este README também está disponível em English.