@viasoftbr/shared-ui 0.0.2 → 0.0.4

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 CHANGED
@@ -2,149 +2,132 @@
2
2
 
3
3
  Biblioteca de componentes, hooks e serviços compartilhados para plugins XCOS.
4
4
 
5
+ Este repositório empacota um conjunto de componentes React, hooks, serviços e recursos de i18n em `dist/` para consumo por outros pacotes (monorepo) ou via npm.
6
+
7
+ **Versão do pacote:** `@viasoftbr/shared-ui` (veja `package.json` para a versão atual).
8
+
5
9
  ## 📦 Instalação
6
10
 
7
- Este pacote está disponível localmente no monorepo:
11
+ Instalação via npm (registro público):
12
+
13
+ ```bash
14
+ # npm
15
+ npm install @viasoftbr/shared-ui
16
+
17
+ # pnpm
18
+ pnpm add @viasoftbr/shared-ui
19
+
20
+ # yarn
21
+ yarn add @viasoftbr/shared-ui
22
+ ```
23
+
24
+ Instalação no monorepo (workspace pnpm):
8
25
 
9
26
  ```bash
10
- # No diretório do seu plugin
27
+ # a partir do diretório do seu pacote consumidor
11
28
  pnpm add @viasoftbr/shared-ui --workspace
12
29
  ```
13
30
 
14
- Ou adicione diretamente no `package.json`:
31
+ Instalação local (desenvolvimento):
32
+
33
+ ```bash
34
+ # criar pacote .tgz e instalar no projeto consumidor
35
+ npm run build
36
+ npm pack
37
+ # no projeto consumidor
38
+ npm install ../path/to/viasoftbr-shared-ui-0.0.2.tgz
39
+
40
+ # ou usar link para desenvolvimento iterativo
41
+ # no shared-ui
42
+ npm run build
43
+ npm link
44
+ # no projeto consumidor
45
+ npm link @viasoftbr/shared-ui
46
+ ```
47
+
48
+ Instalação direta do GitHub (não recomendado sem `dist/` commitado):
15
49
 
16
50
  ```json
17
51
  {
18
52
  "dependencies": {
19
- "@viasoftbr/shared-utils": "workspace:*"
53
+ "@viasoftbr/shared-ui": "git+https://github.com/viasoftbr/shared-ui.git"
20
54
  }
21
55
  }
22
56
  ```
23
57
 
24
- ## 🚀 Uso
58
+ > Observação: se instalar diretamente do Git, prefira ter a pasta `dist/` com os artefatos comitados OU adicionar um script `prepare` que execute o build na instalação.
25
59
 
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
- ```
60
+ ## 🚀 Uso
88
61
 
89
- Exemplos rápidos (React):
62
+ Importação principal:
90
63
 
91
- ```tsx
92
- <InputField label="Nome" value={name} onChange={setName} />
64
+ ```ts
65
+ import { InputField, SelectField, useSettings } from '@viasoftbr/shared-ui';
66
+ ```
93
67
 
94
- <SelectField
95
- label="Opção"
96
- value={selected}
97
- onChange={setSelected}
98
- options={[{ value: 'a', label: 'A' }, { value: 'b', label: 'B' }]}
99
- />
100
- ```
68
+ Deep imports (subpaths) disponíveis conforme `exports` no `package.json`:
101
69
 
102
- Consulte os tipos emitidos (`dist/index.d.ts`) para a lista completa de símbolos exportados.
70
+ ```ts
71
+ import i18n from '@viasoftbr/shared-ui/i18n';
72
+ import jsmpegBundle from '@viasoftbr/shared-ui/jsmpeg';
73
+ import localePt from '@viasoftbr/shared-ui/locales/pt/translation.json';
74
+ ```
103
75
 
104
- ## 🛠 Scripts de desenvolvimento
76
+ Exemplo (React):
105
77
 
106
- Scripts disponíveis (conforme `package.json`):
78
+ ```tsx
79
+ import React from 'react';
80
+ import { InputField } from '@viasoftbr/shared-ui';
107
81
 
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.
82
+ export function Example() {
83
+ const [value, setValue] = React.useState('');
84
+ return <InputField label="Nome" value={value} onChange={setValue} />;
85
+ }
86
+ ```
111
87
 
112
- Use `pnpm run dev` enquanto desenvolve para regenerar `dist/` automaticamente.
88
+ ## 📦 Publicação no npm
113
89
 
114
- ## 💡 i18n e assets
90
+ Passos básicos para publicar (usuário com permissão no escopo `@viasoftbr`):
115
91
 
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.
92
+ ```bash
93
+ # instalar dependências
94
+ pnpm install
117
95
 
118
- também um bundle mínimo do player `jsmpeg.vu.min.js` exportado em `@viasoftbr/shared-ui/jsmpeg`.
96
+ # gerar build e declarações
97
+ pnpm run build
119
98
 
120
- ## ⚠️ Peer dependencies
99
+ # atualizar versão (opcional)
100
+ npm version patch
121
101
 
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.
102
+ # publicar
103
+ npm publish --access public
104
+ ```
123
105
 
124
- ## 📚 Desenvolvimento
106
+ Recomendações:
107
+ - Garanta que `dist/` e os `.d.ts` foram gerados antes de publicar.
108
+ - Atualize a versão no `package.json` antes do `npm publish`.
125
109
 
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`.
110
+ ## ⚠️ Peer dependencies
130
111
 
131
- O empacotador é implementado em `scripts/build.js` e usa `esbuild`.
112
+ Este pacote declara `react` como peer dependency (`^19.0.0`). O projeto consumidor deve fornecer uma versão compatível do React.
132
113
 
133
- ## Contribuição
114
+ ## 🛠 Scripts de desenvolvimento
134
115
 
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.
116
+ - `pnpm run build` Empacota a lib em `dist/` (usa `scripts/build.js`).
117
+ - `pnpm run dev` Mesma build em modo watch.
118
+ - `pnpm run typecheck` Roda `tsc --noEmit` para validação de tipos.
138
119
 
139
- ## Licença
120
+ ## 💡 i18n e assets
140
121
 
141
- Este projeto é licenciado sob a licença MIT veja o campo `license` em `package.json`.
122
+ O pacote inclui traduções em `locales/` e expõe um helper `i18n` em `@viasoftbr/shared-ui/i18n`. O bundle do player `jsmpeg.vu.min.js` é exposto em `@viasoftbr/shared-ui/jsmpeg`.
142
123
 
143
- ## Troubleshooting
124
+ ## Desenvolvimento
144
125
 
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.
126
+ 1. Instale dependências: `pnpm install`
127
+ 2. Rode o build em modo watch: `pnpm run dev`
128
+ 3. Edite arquivos em `src/` e verifique o output em `dist/`.
129
+ 4. Para checar tipos: `pnpm run typecheck`.
147
130
 
148
- ---
131
+ ---
149
132
 
150
- Se quiser, adapto este README com exemplos reais retirados dos componentes presentes em `src/components/`.
133
+ Se quiser, adapto este README com exemplos reais retirados dos componentes presentes em `src/components/` ou adiciono um `prepare` script para facilitar instalação direta do Git.
@@ -2,6 +2,7 @@ import React from "react";
2
2
  interface HeaderProps {
3
3
  isSidebarOpen: boolean;
4
4
  setSidebarOpen: (state: boolean) => void;
5
+ onNavigate?: (path: string) => void;
5
6
  }
6
7
  declare const Header: React.FC<HeaderProps>;
7
8
  export default Header;