@riligar/solutions-sdk
v1.18.0
Published
RiLiGar Solutions SDK - JavaScript framework to accelerate the development of modern SaaS applications with React.
Maintainers
Readme
@riligar/solutions-sdk
RiLiGar Solutions SDK - JavaScript framework to accelerate the development of modern SaaS applications with React.
Instalação
npm install @riligar/solutions-sdk
# Peer dependencies
npm install react react-dom @mantine/core @mantine/hooksQuick Start
import '@mantine/core/styles.css'
import '@riligar/solutions-sdk/styles.css'
import { MantineProvider } from '@mantine/core'
import { Layout, module } from '@riligar/solutions-sdk'
// Registrar módulos (opcional)
import meuModulo from './modules/meuModulo'
module.register(meuModulo)
function App() {
return (
<MantineProvider>
<Layout />
</MantineProvider>
)
}Componentes
import {
Layout, // AppShell principal com sidebar
Window, // Modal/Dialog customizado
Commands, // Command palette (Ctrl+K)
List, // Tabela com filtros avançados
} from '@riligar/solutions-sdk'Layout
<Layout>{/* Conteúdo renderizado via react-router */}</Layout>Window
import { Window } from '@riligar/solutions-sdk'
;<Window
opened={opened}
onClose={close}
title="Meu Modal"
actions={[
{ label: 'Cancelar', onClick: close },
{ label: 'Salvar', onClick: handleSave, variant: 'filled' },
]}
>
<p>Conteúdo do modal</p>
</Window>List
import { List } from '@riligar/solutions-sdk'
// List usa configuração interna para exibir dados
// Suporta filtros, busca e paginaçãoHooks
import { useAuth, useUser, useTheme } from '@riligar/solutions-sdk'
// Autenticação
const { loading, error } = useAuth()
// Usuário atual
const { currentUser, setCurrentUser, logout } = useUser()
// Tema
const { colorScheme, toggleColorScheme } = useTheme()Services
import { createService, api } from '@riligar/solutions-sdk'
// Criar service CRUD para qualquer entidade
const contactService = createService('contacts')
// Uso
const contacts = await contactService.list()
const contact = await contactService.get('123')
await contactService.put({ name: 'João' })
await contactService.put({ id: '123', name: 'João Silva' })
await contactService.delete('123')
// API direta
const data = await api.get('endpoint').json()Store (Zustand)
import { useStore } from '@riligar/solutions-sdk'
const { projects, selectedProjectId, addProject, selectProject, commands, registerCommand } = useStore()Sistema de Módulos
Crie módulos plugáveis com rotas e comandos auto-integrados:
// modules/crm/index.js
import { createService } from '@riligar/solutions-sdk'
import Contacts from './pages/Contacts'
export default {
id: 'crm',
name: 'CRM',
services: {
contacts: createService('crm/contacts'),
},
// Rotas são injetadas automaticamente no router
routes: [{ path: '/crm/contacts', element: <Contacts /> }],
// Comandos são registrados automaticamente no Command Palette
commands: [{ id: 'crm-new-contact', name: 'Novo Contato', section: 'CRM' }],
}Registre ANTES de importar Routes:
// main.jsx
import { module } from '@riligar/solutions-sdk'
import crmModule from './modules/crm'
// 1. Registrar módulos primeiro
module.register(crmModule)
// 2. Depois importar/usar Routes
import Routes from './routes'Desenvolvimento
# Instalar dependências
bun install
# Rodar em dev
bun dev
# Build da library
bun run buildTech Stack
- React 19 - UI library
- Mantine v8 - Component library
- Zustand - State management
- React Router v7 - Routing
- TipTap - Rich text editor
- ky - HTTP client
- Vite - Build tool
License
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
