@visio-io/design-system 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +181 -90
- package/dist/index.cjs.js +23 -23
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +3363 -2544
- package/dist/index.es.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/types/components/ModuleMenu/ModuleMenu.d.ts +5 -0
- package/dist/types/components/ModuleMenu/ModuleMenu.stories.d.ts +7 -0
- package/dist/types/components/ModuleMenu/index.d.ts +2 -0
- package/dist/types/components/ModuleMenu/types.d.ts +25 -0
- package/dist/types/components/ModuleMenu/useModuleMenu.d.ts +12 -0
- package/dist/types/components/VideoPlayer/VideoPlayer.d.ts +5 -0
- package/dist/types/components/VideoPlayer/VideoPlayer.stories.d.ts +21 -0
- package/dist/types/components/VideoPlayer/components/ControlMenu.d.ts +16 -0
- package/dist/types/components/VideoPlayer/handlers.d.ts +9 -0
- package/dist/types/components/VideoPlayer/index.d.ts +3 -0
- package/dist/types/components/VideoPlayer/types.d.ts +28 -0
- package/dist/types/components/VideoPlayer/useVideoPlayer.d.ts +21 -0
- package/dist/types/components/VideoPlayer/utils.d.ts +2 -0
- package/dist/types/components/index.d.ts +4 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,151 +1,242 @@
|
|
|
1
1
|
# Visio Design System
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Sistema de design unificado da Visio com componentes React reutilizáveis.
|
|
4
4
|
|
|
5
|
-
## Instalação
|
|
5
|
+
## 📦 Instalação
|
|
6
6
|
|
|
7
|
-
###
|
|
8
|
-
|
|
9
|
-
Para usar este repositório como biblioteca privada diretamente do Git:
|
|
7
|
+
### Usando Yalc (desenvolvimento local)
|
|
10
8
|
|
|
11
9
|
```bash
|
|
12
|
-
#
|
|
13
|
-
pnpm
|
|
14
|
-
|
|
15
|
-
pnpm add git+https://github.com/USUARIO/visio-design-system.git#main
|
|
16
|
-
|
|
17
|
-
# Com npm
|
|
18
|
-
npm install git+https://github.com/USUARIO/visio-design-system.git
|
|
10
|
+
# No diretório do design system
|
|
11
|
+
pnpm build
|
|
12
|
+
yalc push
|
|
19
13
|
|
|
20
|
-
#
|
|
21
|
-
|
|
14
|
+
# No projeto que vai consumir
|
|
15
|
+
yalc add @visio-io/design-system
|
|
22
16
|
```
|
|
23
17
|
|
|
24
|
-
|
|
18
|
+
### Usando npm/pnpm (produção)
|
|
25
19
|
|
|
26
|
-
1. **Usando SSH** (recomendado):
|
|
27
20
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
2. **Usando token de acesso pessoal**:
|
|
32
|
-
```bash
|
|
33
|
-
pnpm add git+https://SEU_TOKEN@github.com/USUARIO/visio-design-system.git
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
3. **Configurando no `.npmrc`** do projeto que vai usar a lib:
|
|
37
|
-
```
|
|
38
|
-
@visio-io:registry=https://npm.pkg.github.com
|
|
39
|
-
//npm.pkg.github.com/:_authToken=SEU_TOKEN
|
|
21
|
+
npm install @visio-io/design-system
|
|
22
|
+
# ou
|
|
23
|
+
pnpm add @visio-io/design-system
|
|
40
24
|
```
|
|
41
25
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
## Dependências Peer
|
|
45
|
-
|
|
46
|
-
Este pacote requer as seguintes dependências no seu projeto:
|
|
26
|
+
## 🚀 Uso básico
|
|
47
27
|
|
|
48
|
-
|
|
49
|
-
- `react-dom` ^19.0.0
|
|
50
|
-
- `@mui/material` ^5.0.0
|
|
51
|
-
- `@emotion/react` ^11.0.0
|
|
52
|
-
- `@emotion/styled` ^11.0.0
|
|
28
|
+
### 1. Importar o CSS global
|
|
53
29
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
### Importar componentes
|
|
30
|
+
No arquivo principal da aplicação (ex: `layout.tsx`, `_app.tsx`, `main.tsx`):
|
|
57
31
|
|
|
58
32
|
```tsx
|
|
59
|
-
import
|
|
60
|
-
|
|
61
|
-
function App() {
|
|
62
|
-
return <Button variant="contained">Clique aqui</Button>;
|
|
63
|
-
}
|
|
33
|
+
import "@visio-io/design-system/style.css";
|
|
64
34
|
```
|
|
65
35
|
|
|
66
|
-
|
|
36
|
+
**⚠️ Importante:** Use `@visio-io/design-system/style.css` (sem `/dist`) porque o `package.json` já mapeia o caminho corretamente.
|
|
67
37
|
|
|
68
|
-
### Importar
|
|
38
|
+
### 2. Importar componentes
|
|
69
39
|
|
|
70
40
|
```tsx
|
|
71
|
-
import {
|
|
72
|
-
import { lightTheme, darkTheme } from "@visio-io/design-system";
|
|
41
|
+
import { Button, VideoPlayer, SearchBar } from "@visio-io/design-system";
|
|
73
42
|
|
|
74
43
|
function App() {
|
|
75
44
|
return (
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
|
|
45
|
+
<div>
|
|
46
|
+
<Button>Click me</Button>
|
|
47
|
+
<VideoPlayer availableQualities={[...]} />
|
|
48
|
+
</div>
|
|
79
49
|
);
|
|
80
50
|
}
|
|
81
51
|
```
|
|
82
52
|
|
|
83
|
-
###
|
|
53
|
+
### 3. Usar tokens de design (opcional)
|
|
84
54
|
|
|
85
55
|
```tsx
|
|
86
|
-
import {
|
|
56
|
+
import { lightColors, darkColors, spacingTokens } from "@visio-io/design-system/tokens";
|
|
57
|
+
|
|
58
|
+
// Use os tokens nos seus estilos customizados
|
|
59
|
+
const myStyle = {
|
|
60
|
+
color: lightColors.primary,
|
|
61
|
+
padding: spacingTokens.md,
|
|
62
|
+
};
|
|
87
63
|
```
|
|
88
64
|
|
|
89
|
-
##
|
|
65
|
+
## 📚 Componentes disponíveis
|
|
90
66
|
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
67
|
+
- **Button** - Botão customizável com variantes
|
|
68
|
+
- **VideoPlayer** - Player de vídeo com suporte a WebRTC, controles completos e responsivo
|
|
69
|
+
- **SearchBar** - Barra de busca com autocomplete e filtros
|
|
70
|
+
- **ModuleMenu** - Menu de módulos com estados expandido/colapsado
|
|
71
|
+
- **SidebarMenu** - Menu lateral com subitens
|
|
72
|
+
- **GoogleMap** - Integração com Google Maps
|
|
73
|
+
- **MapSpot** - Marcadores customizados para mapas
|
|
74
|
+
- **CountCard** - Cartão para exibir contadores
|
|
75
|
+
- **FilterButton** - Botão com dropdown de filtros
|
|
76
|
+
- **NotFoundContent** - Tela de conteúdo não encontrado
|
|
77
|
+
- **ZoomControls** - Controles de zoom para mapas
|
|
94
78
|
|
|
95
|
-
|
|
96
|
-
pnpm dev
|
|
79
|
+
## 🎨 Tema e estilização
|
|
97
80
|
|
|
98
|
-
|
|
99
|
-
pnpm build
|
|
81
|
+
O design system usa Material-UI como base. Para personalizar o tema:
|
|
100
82
|
|
|
101
|
-
|
|
102
|
-
|
|
83
|
+
```tsx
|
|
84
|
+
import { ThemeProvider, createTheme } from '@mui/material/styles';
|
|
85
|
+
import { lightTheme, darkTheme } from '@visio-io/design-system';
|
|
86
|
+
|
|
87
|
+
// Use o tema padrão
|
|
88
|
+
<ThemeProvider theme={lightTheme}>
|
|
89
|
+
<App />
|
|
90
|
+
</ThemeProvider>
|
|
91
|
+
|
|
92
|
+
// Ou customize
|
|
93
|
+
const customTheme = createTheme({
|
|
94
|
+
...lightTheme,
|
|
95
|
+
palette: {
|
|
96
|
+
...lightTheme.palette,
|
|
97
|
+
primary: {
|
|
98
|
+
main: '#your-color',
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
});
|
|
103
102
|
```
|
|
104
103
|
|
|
105
|
-
##
|
|
104
|
+
## 🔧 Desenvolvimento
|
|
106
105
|
|
|
107
|
-
|
|
106
|
+
### Executar Storybook
|
|
108
107
|
|
|
109
|
-
|
|
108
|
+
```bash
|
|
109
|
+
pnpm dev
|
|
110
|
+
```
|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
Acesse: http://localhost:6006
|
|
113
|
+
|
|
114
|
+
### Build
|
|
112
115
|
|
|
113
|
-
1. Crie um changeset:
|
|
114
116
|
```bash
|
|
115
|
-
pnpm
|
|
117
|
+
pnpm build
|
|
116
118
|
```
|
|
117
119
|
|
|
118
|
-
|
|
120
|
+
### Publicar (yalc)
|
|
121
|
+
|
|
119
122
|
```bash
|
|
120
|
-
|
|
121
|
-
git commit -m "feat: nova funcionalidade"
|
|
122
|
-
git push
|
|
123
|
+
pnpm build && yalc push
|
|
123
124
|
```
|
|
124
125
|
|
|
125
|
-
|
|
126
|
-
- Detectar o changeset
|
|
127
|
-
- Criar um PR com a atualização de versão
|
|
128
|
-
- Após merge, publicar automaticamente no GitHub Packages
|
|
126
|
+
## 📖 Documentação
|
|
129
127
|
|
|
130
|
-
|
|
128
|
+
Acesse o Storybook para ver a documentação completa de cada componente com exemplos interativos:
|
|
131
129
|
|
|
132
130
|
```bash
|
|
133
|
-
|
|
134
|
-
|
|
131
|
+
pnpm dev
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
## 🐛 Troubleshooting
|
|
135
|
+
|
|
136
|
+
### Erro: "Module not found: Can't resolve '@visio-io/design-system/dist/style.css'"
|
|
137
|
+
|
|
138
|
+
**Causa:** Import incorreto do CSS.
|
|
139
|
+
|
|
140
|
+
**Solução:** Use `@visio-io/design-system/style.css` (sem `/dist`):
|
|
135
141
|
|
|
136
|
-
|
|
137
|
-
|
|
142
|
+
```tsx
|
|
143
|
+
// ❌ Errado
|
|
144
|
+
import "@visio-io/design-system/dist/style.css";
|
|
145
|
+
|
|
146
|
+
// ✅ Correto
|
|
147
|
+
import "@visio-io/design-system/style.css";
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Erro: "Cannot find module '@visio-io/design-system'"
|
|
151
|
+
|
|
152
|
+
**Causa:** Pacote não instalado.
|
|
153
|
+
|
|
154
|
+
**Solução:** Execute `yalc add @visio-io/design-system` no projeto receptor.
|
|
155
|
+
|
|
156
|
+
### Estilos não aplicados
|
|
157
|
+
|
|
158
|
+
**Causa:** CSS não importado ou ordem de importação incorreta.
|
|
159
|
+
|
|
160
|
+
**Solução:**
|
|
161
|
+
1. Certifique-se de importar o CSS antes dos componentes
|
|
162
|
+
2. Verifique se o CSS está sendo importado no arquivo raiz da aplicação
|
|
163
|
+
|
|
164
|
+
```tsx
|
|
165
|
+
// ✅ Ordem correta
|
|
166
|
+
import "@/app/styles/globals.css";
|
|
167
|
+
import "@visio-io/design-system/style.css";
|
|
168
|
+
import { Button } from "@visio-io/design-system";
|
|
138
169
|
```
|
|
139
170
|
|
|
140
|
-
|
|
171
|
+
## 📝 Estrutura de exports
|
|
172
|
+
|
|
173
|
+
O `package.json` exporta:
|
|
174
|
+
|
|
175
|
+
```json
|
|
176
|
+
{
|
|
177
|
+
".": "./dist/index.es.js", // Componentes
|
|
178
|
+
"./style.css": "./dist/style.css", // Estilos
|
|
179
|
+
"./tokens": "./src/styles/tokens" // Tokens de design
|
|
180
|
+
}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
## 🤝 Contribuindo
|
|
184
|
+
|
|
185
|
+
1. Clone o repositório
|
|
186
|
+
2. Instale as dependências: `pnpm install`
|
|
187
|
+
3. Faça suas alterações
|
|
188
|
+
4. Execute o Storybook: `pnpm dev`
|
|
189
|
+
5. Build: `pnpm build`
|
|
190
|
+
6. Teste localmente com yalc: `yalc push`
|
|
141
191
|
|
|
142
|
-
|
|
192
|
+
## 📦 Publicando nova versão
|
|
143
193
|
|
|
144
|
-
|
|
194
|
+
### Usando Changesets (recomendado)
|
|
145
195
|
|
|
146
|
-
1. Configure autenticação (veja `TUTORIAL_GITHUB_PACKAGES.md`)
|
|
147
|
-
2. Instale o pacote:
|
|
148
196
|
```bash
|
|
149
|
-
|
|
197
|
+
# 1. Criar um changeset documentando as mudanças
|
|
198
|
+
pnpm changeset
|
|
199
|
+
|
|
200
|
+
# 2. Atualizar versão e CHANGELOG
|
|
201
|
+
pnpm changeset version
|
|
202
|
+
|
|
203
|
+
# 3. Build e publicar
|
|
204
|
+
pnpm release
|
|
150
205
|
```
|
|
151
206
|
|
|
207
|
+
### Publicação manual
|
|
208
|
+
|
|
209
|
+
```bash
|
|
210
|
+
# 1. Atualizar versão no package.json
|
|
211
|
+
# Edite manualmente ou use:
|
|
212
|
+
npm version patch # 1.0.1 -> 1.0.2
|
|
213
|
+
npm version minor # 1.0.1 -> 1.1.0
|
|
214
|
+
npm version major # 1.0.1 -> 2.0.0
|
|
215
|
+
|
|
216
|
+
# 2. Build
|
|
217
|
+
pnpm build
|
|
218
|
+
|
|
219
|
+
# 3. Publicar no npm
|
|
220
|
+
npm publish --access public
|
|
221
|
+
|
|
222
|
+
# 4. Push das tags
|
|
223
|
+
git push --follow-tags
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Versionamento semântico
|
|
227
|
+
|
|
228
|
+
- **PATCH** (1.0.x): Correções de bugs, pequenas melhorias
|
|
229
|
+
- **MINOR** (1.x.0): Novas funcionalidades, backward compatible
|
|
230
|
+
- **MAJOR** (x.0.0): Breaking changes
|
|
231
|
+
|
|
232
|
+
### ⚠️ Antes de publicar
|
|
233
|
+
|
|
234
|
+
- ✅ Certifique-se de estar autenticado no npm: `npm login`
|
|
235
|
+
- ✅ Verifique se tem permissões no package `@visio-io/design-system`
|
|
236
|
+
- ✅ Atualize o CHANGELOG.md com as mudanças
|
|
237
|
+
- ✅ Teste a build localmente: `pnpm build`
|
|
238
|
+
- ✅ Verifique os arquivos que serão publicados: `npm pack --dry-run`
|
|
239
|
+
|
|
240
|
+
## 📄 Licença
|
|
241
|
+
|
|
242
|
+
Proprietary - Visio.io
|