structra-ui 0.1.31 → 0.1.33

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.
Files changed (2) hide show
  1. package/README.md +16 -39
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,59 +1,36 @@
1
1
  # structra-ui
2
2
 
3
- Biblioteca **Angular** da stack **Structra** para interfaces consistentes: componentes, layout de formulários e padrões de UI reutilizáveis entre produtos.
3
+ Biblioteca **Angular 21** (componentes Structra). Exemplos: [StructraLab](https://structralab.com/).
4
4
 
5
- **Documentação e exemplos:** [StructraLab](https://structralab.com/)
6
-
7
- ## Instalação
8
-
9
- Com **npm 7 ou superior**, um comando instala a lib e resolve os **peer dependencies** obrigatórios na raiz do projeto (Angular, Material, CDK, Router, AG Grid, RxJS, Zone.js):
5
+ ## Instalar
10
6
 
11
7
  ```bash
12
8
  npm install structra-ui
13
9
  ```
14
10
 
15
- Se usar **npm 6 ou anterior**, instale explicitamente os mesmos pacotes e versões indicados em `peerDependencies` no `package.json` do npm.
16
-
17
- **Compatibilidade**
18
-
19
- - **Angular 21** (`^21.2.7` nos peers): sem suporte para Angular 22.
20
- - **Material e CDK** obrigatórios; **Router** obrigatório; **AG Grid** obrigatório; **RxJS** e **Zone.js** obrigatórios — nada é opcional no `package.json` da lib.
21
-
22
- ## Estilos globais (automático)
23
-
24
- **Não precisa** de adicionar nada ao `angular.json` → `styles` por causa da Structra: ao fazer `import { … } from 'structra-ui'`, o bundle publicado (`fesm2022/structra-ui.mjs`) inclui no topo `import '../structra-ui.css'`, e o **Angular Application builder** segue esse import e injeta o tema (tokens, Material, AG Grid, CDK, etc.) na app.
25
-
26
- Requisitos no projeto destino:
27
-
28
- 1. **`npm run lib:build`** no monorepo antes de publicar (não publique só `ng build structra-ui`), senão o `.css` e o patch ao `.mjs` não existem.
29
- 2. O pacote em `node_modules/structra-ui/` tem de conter **`structra-ui.css`**, **`webfonts/`** (Font Awesome), **`files/`** (Roboto via Fontsource) e `fesm2022/structra-ui.mjs`. Tipografia e ícones são **offline**, alinhados ao showcase StructraLab.
30
-
31
- **Opcional (duplicar tema):** só se quiseres carregar o CSS **antes** de qualquer import TypeScript da lib, podes ainda listar em `angular.json` → `styles` o `node_modules/structra-ui/structra-ui.css` ou a ponte `structra-ui.scss` — não é obrigatório para «funcionar».
32
-
33
- **`import 'structra-ui/styles'`** em `main.ts` também funciona (export `./styles` → mesmo CSS), mas **não é necessário** se já importas componentes ou símbolos de `'structra-ui'`.
11
+ Na maioria dos casos (npm 7+) o npm instala junto o que a lib pede, **incluindo AG Grid**.
34
12
 
35
- **Atenção:** `import type { … } from 'structra-ui'` é apagado em compile-time e **não** executa o módulo — o tema **não** carrega. Garante pelo menos um `import { }` em runtime ou `import 'structra-ui/styles'`.
36
-
37
- **AG Grid 35+:** registe os módulos Community uma vez na app (ex. `ModuleRegistry.registerModules([AllCommunityModule])` em `main.ts`).
38
-
39
- **Importar componentes:** `import { TextFieldComponent } from 'structra-ui';` e use em `imports: [TextFieldComponent, …]` do `@Component`. No `tsconfig.json` da app, prefira `"moduleResolution": "bundler"` ou `"node16"` para o Node resolver o campo `exports` do pacote.
40
-
41
- ## Build do pacote
42
-
43
- A entrada publicada é **`src/structra-public-api.ts`** na raiz do monorepo (ver `ng-package.json`). O comando:
13
+ Se o grid não instalar ou der erro ao usar tabela: instale explicitamente:
44
14
 
45
15
  ```bash
46
- npm run lib:build
16
+ npm install structra-ui ag-grid-community ag-grid-angular
47
17
  ```
48
18
 
49
- Gera `dist/structra-ui/` (JavaScript com import do tema + tipos + **`structra-ui.css`** + **`structra-ui.scss`** ponte). **Não use `ng build structra-ui`** para publicar: o `npm run lib:build` corre o ng-packagr e depois gera o CSS, a ponte SCSS e **injeta** `import '../structra-ui.css'` no FESM.
50
-
51
- ## Uso
19
+ E **uma vez** na aplicação, antes de abrir qualquer grid:
52
20
 
53
21
  ```ts
54
- import { STRUCTRA_UI, BaseButtonComponent } from 'structra-ui';
22
+ import { AllCommunityModule, ModuleRegistry } from 'ag-grid-community';
23
+ ModuleRegistry.registerModules([AllCommunityModule]);
55
24
  ```
56
25
 
26
+ ## Estilos
27
+
28
+ Importe a lib em código (ex.: `import { TextFieldComponent } from 'structra-ui'`). O tema global acompanha — não precisa copiar CSS no `angular.json` por causa disso.
29
+
30
+ ## Quem publica a lib
31
+
32
+ Na raiz do monorepo: `npm run lib:build` (não use só `ng build structra-ui`).
33
+
57
34
  ## Licença
58
35
 
59
36
  MIT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "structra-ui",
3
- "version": "0.1.31",
3
+ "version": "0.1.33",
4
4
  "description": "Biblioteca de componentes Angular da StructraLab (UI reutilizável).",
5
5
  "homepage": "https://structralab.com/",
6
6
  "license": "MIT",