@viasoftbr/shared-ui 0.0.1
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 +150 -0
- package/dist/components.js +55267 -0
- package/dist/context.js +3467 -0
- package/dist/hooks.js +4438 -0
- package/dist/i18n.js +3352 -0
- package/dist/jsmpeg.vu.min.js +1 -0
- package/dist/locales/en/translation.json +72 -0
- package/dist/locales/es/translation.json +72 -0
- package/dist/locales/pt/translation.json +72 -0
- package/dist/services.js +3210 -0
- package/dist/types.js +11 -0
- package/package.json +80 -0
package/README.md
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
# Shared UI
|
|
2
|
+
|
|
3
|
+
Biblioteca de componentes, hooks e serviços compartilhados para plugins XCOS.
|
|
4
|
+
|
|
5
|
+
## 📦 Instalação
|
|
6
|
+
|
|
7
|
+
Este pacote está disponível localmente no monorepo:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# No diretório do seu plugin
|
|
11
|
+
pnpm add @viasoftbr/shared-ui --workspace
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
Ou adicione diretamente no `package.json`:
|
|
15
|
+
|
|
16
|
+
```json
|
|
17
|
+
{
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@viasoftbr/shared-utils": "workspace:*"
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 🚀 Uso
|
|
25
|
+
|
|
26
|
+
### Importação Completa
|
|
27
|
+
|
|
28
|
+
```typescript
|
|
29
|
+
import {
|
|
30
|
+
// Components
|
|
31
|
+
InputField,
|
|
32
|
+
SelectField,
|
|
33
|
+
SwitchField,
|
|
34
|
+
Section,
|
|
35
|
+
Alert,
|
|
36
|
+
Button,
|
|
37
|
+
PageHeader,
|
|
38
|
+
ActionBar,
|
|
39
|
+
Loading,
|
|
40
|
+
|
|
41
|
+
// Hooks
|
|
42
|
+
useSettings,
|
|
43
|
+
useExpandedSections,
|
|
44
|
+
useDebounce,
|
|
45
|
+
|
|
46
|
+
# @viasoftbr/shared-ui
|
|
47
|
+
|
|
48
|
+
Biblioteca compartilhada de componentes React, hooks, utilitários e i18n usada por plugins e micro-frontends Viasoft.
|
|
49
|
+
|
|
50
|
+
Este repositório fornece um pacote ESM (TypeScript) empacotado em `dist/` e pensado para consumo por outros pacotes dentro do monorepo ou publicamente.
|
|
51
|
+
|
|
52
|
+
## 📦 Instalação
|
|
53
|
+
|
|
54
|
+
Recomendado (monorepo pnpm):
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# do diretório do seu plugin ou pacote que consome esta lib
|
|
58
|
+
pnpm add @viasoftbr/shared-ui --workspace
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
Ou, em um `package.json` local dentro do monorepo:
|
|
62
|
+
|
|
63
|
+
```json
|
|
64
|
+
{
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@viasoftbr/shared-ui": "workspace:*"
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
> Observação: o pacote é publicado como `@viasoftbr/shared-ui` (veja `package.json`).
|
|
72
|
+
|
|
73
|
+
## 🚀 Uso
|
|
74
|
+
|
|
75
|
+
Importação direta de componentes / hooks / utilitários:
|
|
76
|
+
|
|
77
|
+
```ts
|
|
78
|
+
import { InputField, SelectField, useSettings } from '@viasoftbr/shared-ui';
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Exportações adicionais (deep imports) estão disponíveis conforme declarado em `package.json`:
|
|
82
|
+
|
|
83
|
+
```ts
|
|
84
|
+
import i18n from '@viasoftbr/shared-ui/i18n';
|
|
85
|
+
import jsmpegBundle from '@viasoftbr/shared-ui/jsmpeg';
|
|
86
|
+
import locale from '@viasoftbr/shared-ui/locales/pt/translation.json';
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Exemplos rápidos (React):
|
|
90
|
+
|
|
91
|
+
```tsx
|
|
92
|
+
<InputField label="Nome" value={name} onChange={setName} />
|
|
93
|
+
|
|
94
|
+
<SelectField
|
|
95
|
+
label="Opção"
|
|
96
|
+
value={selected}
|
|
97
|
+
onChange={setSelected}
|
|
98
|
+
options={[{ value: 'a', label: 'A' }, { value: 'b', label: 'B' }]}
|
|
99
|
+
/>
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Consulte os tipos emitidos (`dist/index.d.ts`) para a lista completa de símbolos exportados.
|
|
103
|
+
|
|
104
|
+
## 🛠 Scripts de desenvolvimento
|
|
105
|
+
|
|
106
|
+
Scripts disponíveis (conforme `package.json`):
|
|
107
|
+
|
|
108
|
+
- `pnpm run build` — Empacota a lib em `dist/` (usa `scripts/build.js`).
|
|
109
|
+
- `pnpm run dev` — Mesma build em modo watch.
|
|
110
|
+
- `pnpm run typecheck` — Roda `tsc --noEmit` para validação de tipos.
|
|
111
|
+
|
|
112
|
+
Use `pnpm run dev` enquanto desenvolve para regenerar `dist/` automaticamente.
|
|
113
|
+
|
|
114
|
+
## 💡 i18n e assets
|
|
115
|
+
|
|
116
|
+
O pacote expõe suporte a i18n e inclui traduções em `locales/`. Importe via `@viasoftbr/shared-ui/i18n` ou carregue arquivos de `@viasoftbr/shared-ui/locales/*` conforme necessário.
|
|
117
|
+
|
|
118
|
+
Há também um bundle mínimo do player `jsmpeg.vu.min.js` exportado em `@viasoftbr/shared-ui/jsmpeg`.
|
|
119
|
+
|
|
120
|
+
## ⚠️ Peer dependencies
|
|
121
|
+
|
|
122
|
+
Este pacote declara `react` como peer dependency (`^19.0.0`). Garanta que o projeto que consome a lib tenha uma versão compatível do React instalada.
|
|
123
|
+
|
|
124
|
+
## 📚 Desenvolvimento
|
|
125
|
+
|
|
126
|
+
1. Instale dependências: `pnpm install`
|
|
127
|
+
2. Rode o build em modo watch: `pnpm run dev`
|
|
128
|
+
3. Edite os arquivos em `src/` e verifique o output em `dist/`.
|
|
129
|
+
4. Para checar tipos: `pnpm run typecheck`.
|
|
130
|
+
|
|
131
|
+
O empacotador é implementado em `scripts/build.js` e usa `esbuild`.
|
|
132
|
+
|
|
133
|
+
## Contribuição
|
|
134
|
+
|
|
135
|
+
- Abra issues para bugs ou melhorias.
|
|
136
|
+
- Para contribuições, faça um fork, crie uma branch e abra um pull request.
|
|
137
|
+
- Siga o estilo TypeScript/ESM do projeto e mantenha mudanças pequenas e focadas.
|
|
138
|
+
|
|
139
|
+
## Licença
|
|
140
|
+
|
|
141
|
+
Este projeto é licenciado sob a licença MIT — veja o campo `license` em `package.json`.
|
|
142
|
+
|
|
143
|
+
## Troubleshooting
|
|
144
|
+
|
|
145
|
+
- Erro de tipos ao consumir a lib: rode `pnpm run typecheck` no pacote consumidor e verifique versões de `@types/react` / `react`.
|
|
146
|
+
- Problemas com import/exports em bundlers: verifique se o bundler do consumidor suporta ESM ou use o campo `exports` do `package.json` adequadamente.
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
Se quiser, adapto este README com exemplos reais retirados dos componentes presentes em `src/components/`.
|