@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 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/`.