@viasoftbr/shared-ui 0.0.2 → 0.0.3
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 +89 -106
- package/dist/components.js +1 -2
- package/dist/index.js +1 -3
- package/dist/package.json +111 -0
- package/dist/services/api.d.ts +0 -1
- package/dist/services.js +1 -3
- package/package.json +27 -12
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
|
-
|
|
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
|
-
#
|
|
27
|
+
# a partir do diretório do seu pacote consumidor
|
|
11
28
|
pnpm add @viasoftbr/shared-ui --workspace
|
|
12
29
|
```
|
|
13
30
|
|
|
14
|
-
|
|
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-
|
|
53
|
+
"@viasoftbr/shared-ui": "git+https://github.com/viasoftbr/shared-ui.git"
|
|
20
54
|
}
|
|
21
55
|
}
|
|
22
56
|
```
|
|
23
57
|
|
|
24
|
-
|
|
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
|
-
|
|
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
|
-
|
|
62
|
+
Importação principal:
|
|
90
63
|
|
|
91
|
-
|
|
92
|
-
|
|
64
|
+
```ts
|
|
65
|
+
import { InputField, SelectField, useSettings } from '@viasoftbr/shared-ui';
|
|
66
|
+
```
|
|
93
67
|
|
|
94
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
+
Exemplo (React):
|
|
105
77
|
|
|
106
|
-
|
|
78
|
+
```tsx
|
|
79
|
+
import React from 'react';
|
|
80
|
+
import { InputField } from '@viasoftbr/shared-ui';
|
|
107
81
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
82
|
+
export function Example() {
|
|
83
|
+
const [value, setValue] = React.useState('');
|
|
84
|
+
return <InputField label="Nome" value={value} onChange={setValue} />;
|
|
85
|
+
}
|
|
86
|
+
```
|
|
111
87
|
|
|
112
|
-
|
|
88
|
+
## 📦 Publicação no npm
|
|
113
89
|
|
|
114
|
-
|
|
90
|
+
Passos básicos para publicar (usuário com permissão no escopo `@viasoftbr`):
|
|
115
91
|
|
|
116
|
-
|
|
92
|
+
```bash
|
|
93
|
+
# instalar dependências
|
|
94
|
+
pnpm install
|
|
117
95
|
|
|
118
|
-
|
|
96
|
+
# gerar build e declarações
|
|
97
|
+
pnpm run build
|
|
119
98
|
|
|
120
|
-
|
|
99
|
+
# atualizar versão (opcional)
|
|
100
|
+
npm version patch
|
|
121
101
|
|
|
122
|
-
|
|
102
|
+
# publicar
|
|
103
|
+
npm publish --access public
|
|
104
|
+
```
|
|
123
105
|
|
|
124
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
114
|
+
## 🛠 Scripts de desenvolvimento
|
|
134
115
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
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
|
-
|
|
120
|
+
## 💡 i18n e assets
|
|
140
121
|
|
|
141
|
-
|
|
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
|
-
|
|
124
|
+
## Desenvolvimento
|
|
144
125
|
|
|
145
|
-
|
|
146
|
-
|
|
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
|
-
|
|
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.
|
package/dist/components.js
CHANGED
|
@@ -26371,10 +26371,9 @@ var fetchApi = {
|
|
|
26371
26371
|
}
|
|
26372
26372
|
}
|
|
26373
26373
|
};
|
|
26374
|
-
var serverOrigin = apiOrigin;
|
|
26375
26374
|
function buildWsUrl(path = "/") {
|
|
26376
26375
|
try {
|
|
26377
|
-
const origin2 = new URL(
|
|
26376
|
+
const origin2 = new URL(apiOrigin);
|
|
26378
26377
|
origin2.protocol = origin2.protocol === "https:" ? "wss:" : "ws:";
|
|
26379
26378
|
if (!path.startsWith("/"))
|
|
26380
26379
|
path = "/" + path;
|
package/dist/index.js
CHANGED
|
@@ -3115,10 +3115,9 @@ var fetchApi = {
|
|
|
3115
3115
|
}
|
|
3116
3116
|
}
|
|
3117
3117
|
};
|
|
3118
|
-
var serverOrigin = apiOrigin;
|
|
3119
3118
|
function buildWsUrl(path = "/") {
|
|
3120
3119
|
try {
|
|
3121
|
-
const origin2 = new URL(
|
|
3120
|
+
const origin2 = new URL(apiOrigin);
|
|
3122
3121
|
origin2.protocol = origin2.protocol === "https:" ? "wss:" : "ws:";
|
|
3123
3122
|
if (!path.startsWith("/"))
|
|
3124
3123
|
path = "/" + path;
|
|
@@ -43450,7 +43449,6 @@ export {
|
|
|
43450
43449
|
metadataLoader,
|
|
43451
43450
|
registry,
|
|
43452
43451
|
saveConfig,
|
|
43453
|
-
serverOrigin,
|
|
43454
43452
|
setAccessToken,
|
|
43455
43453
|
setRefreshToken,
|
|
43456
43454
|
subscribeToWebsocket,
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@viasoftbr/shared-ui",
|
|
3
|
+
"version": "0.0.3",
|
|
4
|
+
"description": "Shared frontend utilities, components and i18n for Viasoft plugins and micro-frontends",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"types": "dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"import": "./dist/index.js",
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./index": {
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts"
|
|
16
|
+
},
|
|
17
|
+
"./context": {
|
|
18
|
+
"import": "./dist/context.js",
|
|
19
|
+
"types": "./dist/context/index.d.ts"
|
|
20
|
+
},
|
|
21
|
+
"./components": {
|
|
22
|
+
"import": "./dist/components.js",
|
|
23
|
+
"types": "./dist/components/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./services": {
|
|
26
|
+
"import": "./dist/services.js",
|
|
27
|
+
"types": "./dist/services/index.d.ts"
|
|
28
|
+
},
|
|
29
|
+
"./types": {
|
|
30
|
+
"import": "./dist/types.js",
|
|
31
|
+
"types": "./dist/types/index.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./i18n": {
|
|
34
|
+
"import": "./dist/i18n.js",
|
|
35
|
+
"types": "./dist/i18n.d.ts"
|
|
36
|
+
},
|
|
37
|
+
"./jsmpeg": {
|
|
38
|
+
"default": "./dist/jsmpeg.vu.min.js"
|
|
39
|
+
},
|
|
40
|
+
"./locales/*": {
|
|
41
|
+
"default": "./dist/locales/*"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"scripts": {
|
|
45
|
+
"build": "node scripts/build.js",
|
|
46
|
+
"dev": "node scripts/build.js --watch",
|
|
47
|
+
"typecheck": "tsc --noEmit"
|
|
48
|
+
},
|
|
49
|
+
"peerDependencies": {
|
|
50
|
+
"react": "^19.0.0"
|
|
51
|
+
},
|
|
52
|
+
"devDependencies": {
|
|
53
|
+
"@types/react": "^19.2.13",
|
|
54
|
+
"esbuild": "^0.20.0",
|
|
55
|
+
"typescript": "^5.0.0"
|
|
56
|
+
},
|
|
57
|
+
"files": [
|
|
58
|
+
"dist"
|
|
59
|
+
],
|
|
60
|
+
"overrides": {
|
|
61
|
+
"use-sync-external-store": "1.6.1"
|
|
62
|
+
},
|
|
63
|
+
"resolutions": {
|
|
64
|
+
"use-sync-external-store": "1.6.1"
|
|
65
|
+
},
|
|
66
|
+
"pnpm": {
|
|
67
|
+
"overrides": {
|
|
68
|
+
"use-sync-external-store": "1.6.1"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"keywords": [
|
|
72
|
+
"viasoft",
|
|
73
|
+
"shared",
|
|
74
|
+
"utils",
|
|
75
|
+
"components",
|
|
76
|
+
"i18n",
|
|
77
|
+
"microfrontend"
|
|
78
|
+
],
|
|
79
|
+
"author": "Viasoft",
|
|
80
|
+
"license": "MIT",
|
|
81
|
+
"publishConfig": {
|
|
82
|
+
"access": "public"
|
|
83
|
+
},
|
|
84
|
+
"dependencies": {
|
|
85
|
+
"@headlessui/react": "^2.2.9",
|
|
86
|
+
"@reduxjs/toolkit": "^2.10.1",
|
|
87
|
+
"@tanstack/react-query": "^5.90.10",
|
|
88
|
+
"@types/react-dom": "^19.2.3",
|
|
89
|
+
"@viasoftbr/shared-utils": "^0.0.1",
|
|
90
|
+
"axios": "^1.13.2",
|
|
91
|
+
"i18next": "^25.7.3",
|
|
92
|
+
"json-server": "1.0.0-beta.3",
|
|
93
|
+
"lucide-react": "^0.460.0",
|
|
94
|
+
"react": "^19.2.4",
|
|
95
|
+
"react-dom": "^19.2.4",
|
|
96
|
+
"react-i18next": "^16.5.0",
|
|
97
|
+
"react-redux": "^9.2.0",
|
|
98
|
+
"react-router-dom": "^6.20.1",
|
|
99
|
+
"react-tooltip": "^5.30.0",
|
|
100
|
+
"redux-batch-middleware": "^0.2.0",
|
|
101
|
+
"tailwind-scrollbar": "^4.0.2"
|
|
102
|
+
},
|
|
103
|
+
"repository": {
|
|
104
|
+
"type": "git",
|
|
105
|
+
"url": "git+https://github.com/viasoftbr/shared-ui.git"
|
|
106
|
+
},
|
|
107
|
+
"bugs": {
|
|
108
|
+
"url": "https://github.com/viasoftbr/shared-ui/issues"
|
|
109
|
+
},
|
|
110
|
+
"homepage": "https://github.com/viasoftbr/shared-ui#readme"
|
|
111
|
+
}
|
package/dist/services/api.d.ts
CHANGED
|
@@ -16,7 +16,6 @@ export declare const fetchApi: {
|
|
|
16
16
|
deleteJson: <T>(path: string, headers?: Record<string, string>) => Promise<T>;
|
|
17
17
|
deleteVoid: (path: string, headers?: Record<string, string>) => Promise<void>;
|
|
18
18
|
};
|
|
19
|
-
export declare const serverOrigin: string;
|
|
20
19
|
export declare function buildWsUrl(path?: string): string;
|
|
21
20
|
export declare function encodeFfurl(settings: ProtocolSettings): Promise<string>;
|
|
22
21
|
export declare function decodeFfurl(ffurl: string): Promise<ProtocolSettings>;
|
package/dist/services.js
CHANGED
|
@@ -2833,10 +2833,9 @@ var fetchApi = {
|
|
|
2833
2833
|
}
|
|
2834
2834
|
}
|
|
2835
2835
|
};
|
|
2836
|
-
var serverOrigin = apiOrigin;
|
|
2837
2836
|
function buildWsUrl(path = "/") {
|
|
2838
2837
|
try {
|
|
2839
|
-
const origin2 = new URL(
|
|
2838
|
+
const origin2 = new URL(apiOrigin);
|
|
2840
2839
|
origin2.protocol = origin2.protocol === "https:" ? "wss:" : "ws:";
|
|
2841
2840
|
if (!path.startsWith("/"))
|
|
2842
2841
|
path = "/" + path;
|
|
@@ -3237,7 +3236,6 @@ export {
|
|
|
3237
3236
|
metadataLoader,
|
|
3238
3237
|
registry,
|
|
3239
3238
|
saveConfig,
|
|
3240
|
-
serverOrigin,
|
|
3241
3239
|
setAccessToken,
|
|
3242
3240
|
setRefreshToken,
|
|
3243
3241
|
subscribeToWebsocket,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@viasoftbr/shared-ui",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"description": "Shared frontend utilities, components and i18n for Viasoft plugins and micro-frontends",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -8,27 +8,31 @@
|
|
|
8
8
|
"exports": {
|
|
9
9
|
".": {
|
|
10
10
|
"import": "./dist/index.js",
|
|
11
|
-
|
|
11
|
+
"types": "./dist/index.d.ts"
|
|
12
12
|
},
|
|
13
13
|
"./index": {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
"import": "./dist/index.js",
|
|
15
|
+
"types": "./dist/index.d.ts"
|
|
16
16
|
},
|
|
17
17
|
"./context": {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
"import": "./dist/context.js",
|
|
19
|
+
"types": "./dist/context/index.d.ts"
|
|
20
20
|
},
|
|
21
21
|
"./components": {
|
|
22
|
-
|
|
23
|
-
|
|
22
|
+
"import": "./dist/components.js",
|
|
23
|
+
"types": "./dist/components/index.d.ts"
|
|
24
|
+
},
|
|
25
|
+
"./services": {
|
|
26
|
+
"import": "./dist/services.js",
|
|
27
|
+
"types": "./dist/services/index.d.ts"
|
|
24
28
|
},
|
|
25
29
|
"./types": {
|
|
26
|
-
|
|
27
|
-
|
|
30
|
+
"import": "./dist/types.js",
|
|
31
|
+
"types": "./dist/types/index.d.ts"
|
|
28
32
|
},
|
|
29
33
|
"./i18n": {
|
|
30
|
-
|
|
31
|
-
|
|
34
|
+
"import": "./dist/i18n.js",
|
|
35
|
+
"types": "./dist/i18n.d.ts"
|
|
32
36
|
},
|
|
33
37
|
"./jsmpeg": {
|
|
34
38
|
"default": "./dist/jsmpeg.vu.min.js"
|
|
@@ -53,6 +57,17 @@
|
|
|
53
57
|
"files": [
|
|
54
58
|
"dist"
|
|
55
59
|
],
|
|
60
|
+
"overrides": {
|
|
61
|
+
"use-sync-external-store": "1.6.1"
|
|
62
|
+
},
|
|
63
|
+
"resolutions": {
|
|
64
|
+
"use-sync-external-store": "1.6.1"
|
|
65
|
+
},
|
|
66
|
+
"pnpm": {
|
|
67
|
+
"overrides": {
|
|
68
|
+
"use-sync-external-store": "1.6.1"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
56
71
|
"keywords": [
|
|
57
72
|
"viasoft",
|
|
58
73
|
"shared",
|