structra-ui 0.1.28 → 0.1.29

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
@@ -19,37 +19,20 @@ Se usar **npm 6 ou anterior**, instale explicitamente os mesmos pacotes e versõ
19
19
  - **Angular 21** (`^21.2.7` nos peers): sem suporte para Angular 22.
20
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
21
 
22
- ## Estilos globais (obrigatório)
22
+ ## Estilos globais (automático)
23
23
 
24
- O pacote publica **`structra-ui.css`** (tema completo: tokens, Material, AG Grid, CDK, etc.) e **`structra-ui.scss`**, que faz `@include meta.load-css('structra-ui.css')` **o mesmo ficheiro CSS na pasta do pacote**. Isto evita colocar centenas de KB de CSS comprimido num único `.scss`, situação em que alguns builds do Angular no projeto consumidor **deixam de aplicar** os estilos globais.
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
25
 
26
- **`angular.json`:** no **início** de `projects.<app>.architect.build.options.styles`, use **uma** destas entradas (ambas válidas):
26
+ Requisitos no projeto destino:
27
27
 
28
- ```json
29
- "styles": [
30
- "node_modules/structra-ui/structra-ui.scss",
31
- "src/styles.scss"
32
- ]
33
- ```
34
-
35
- ou, se o projeto aceitar `.css` na lista:
36
-
37
- ```json
38
- "styles": [
39
- "node_modules/structra-ui/structra-ui.css",
40
- "src/styles.scss"
41
- ]
42
- ```
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`** ao lado de `fesm2022/structra-ui.mjs` (o tarball gerado por `npm pack` / npm já inclui ambos).
43
30
 
44
- **`main.ts` (alternativa):** antes de `bootstrapApplication`:
45
-
46
- ```ts
47
- import 'structra-ui/styles';
48
- ```
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».
49
32
 
50
- (isso resolve para `structra-ui.css` via `exports` do pacote. Exige `moduleResolution` compatível, por exemplo `bundler` ou `node16`.)
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'`.
51
34
 
52
- **Checklist se «não estilos nenhuns»:** (1) linha acima no **início** de `styles`; (2) pacote instalado com **`npm run lib:build`** antes de publicar (não publique `ng build structra-ui`); (3) **duas** entradas no npm `structra-ui.css` e `structra-ui.scss` têm de existir lado a lado em `node_modules/structra-ui/` (o `.scss` não funciona sem o `.css`).
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'`.
53
36
 
54
37
  **AG Grid 35+:** registe os módulos Community uma vez na app (ex. `ModuleRegistry.registerModules([AllCommunityModule])` em `main.ts`).
55
38
 
@@ -63,7 +46,7 @@ A entrada publicada é **`src/structra-public-api.ts`** na raiz do monorepo (ver
63
46
  npm run lib:build
64
47
  ```
65
48
 
66
- Gera `dist/structra-ui/` (JavaScript + tipos + **`structra-ui.css`** + **`structra-ui.scss`** ponte). **Não use só `ng build structra-ui`** para publicar: esse comando **não** gera o tema global; o `npm run lib:build` corre o ng-packagr e depois gera o CSS e a ponte SCSS.
49
+ Gera `dist/structra-ui/` (JavaScript com import do tema + tipos + **`structra-ui.css`** + **`structra-ui.scss`** ponte). **Não use só `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.
67
50
 
68
51
  ## Uso
69
52
 
@@ -1,3 +1,4 @@
1
+ import '../structra-ui.css';
1
2
  import * as i0 from '@angular/core';
2
3
  import { booleanAttribute, HostBinding, Input, ChangeDetectionStrategy, Component, numberAttribute, ElementRef, ViewChild, inject, ChangeDetectorRef, Injector, DestroyRef, EventEmitter, Output, Directive, signal, computed, Injectable, HostListener, ViewChildren, forwardRef, ApplicationRef, afterNextRender, ContentChildren, NgZone, ViewContainerRef, TemplateRef, ContentChild } from '@angular/core';
3
4
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
package/package.json CHANGED
@@ -1,12 +1,13 @@
1
1
  {
2
2
  "name": "structra-ui",
3
- "version": "0.1.28",
3
+ "version": "0.1.29",
4
4
  "description": "Biblioteca de componentes Angular da StructraLab (UI reutilizável).",
5
5
  "homepage": "https://structralab.com/",
6
6
  "license": "MIT",
7
7
  "sideEffects": [
8
8
  "structra-ui.css",
9
- "structra-ui.scss"
9
+ "structra-ui.scss",
10
+ "fesm2022/structra-ui.mjs"
10
11
  ],
11
12
  "files": [
12
13
  "fesm2022/",