structra-ui 0.1.27 → 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,28 +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 inclui ** um ficheiro de tema:** **`structra-ui.scss`**. É o resultado de compilar o `styles.scss` do monorepo (tokens, Material, AG Grid, CDK, etc.): por dentro é **CSS resolvido**, mas a extensão é **`.scss`** para alinhar com projetos que usam SCSS no `angular.json`. Sem este ficheiro na lista `styles`, a UI fica sem estilos.
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`:
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
- **`main.ts` (alternativa):** antes de `bootstrapApplication`:
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).
36
30
 
37
- ```ts
38
- import 'structra-ui/styles';
39
- ```
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».
40
32
 
41
- (Exige `moduleResolution` compatível com `exports` do npm, 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'`.
42
34
 
43
- **Se Material ou AG Grid parecerem «sem tema»** num projeto consumidor: confirme que usa uma versão da lib construída com `npm run lib:build`. O ficheiro `structra-ui.scss` tem de trazer **todo** o CSS (incluindo prebuilt Material e folhas AG Grid) **embutido** versões antigas do bundle deixavam `@import` para pacotes npm, que **não resolvem** dentro de `node_modules/structra-ui/`.
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'`.
44
36
 
45
37
  **AG Grid 35+:** registe os módulos Community uma vez na app (ex. `ModuleRegistry.registerModules([AllCommunityModule])` em `main.ts`).
46
38
 
@@ -54,7 +46,7 @@ A entrada publicada é **`src/structra-public-api.ts`** na raiz do monorepo (ver
54
46
  npm run lib:build
55
47
  ```
56
48
 
57
- Gera `dist/structra-ui/` (JavaScript + tipos + **`structra-ui.scss`**). **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 compila `src/styles.scss` para `structra-ui.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.
58
50
 
59
51
  ## Uso
60
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,22 +1,26 @@
1
1
  {
2
2
  "name": "structra-ui",
3
- "version": "0.1.27",
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
- "structra-ui.scss"
8
+ "structra-ui.css",
9
+ "structra-ui.scss",
10
+ "fesm2022/structra-ui.mjs"
9
11
  ],
10
12
  "files": [
11
13
  "fesm2022/",
12
14
  "types/",
15
+ "structra-ui.css",
13
16
  "structra-ui.scss",
14
17
  "README.md",
15
18
  "package.json"
16
19
  ],
17
20
  "exports": {
21
+ "./structra-ui.css": "./structra-ui.css",
18
22
  "./structra-ui.scss": "./structra-ui.scss",
19
- "./styles": "./structra-ui.scss",
23
+ "./styles": "./structra-ui.css",
20
24
  "./global.scss": "./structra-ui.scss",
21
25
  "./package.json": {
22
26
  "default": "./package.json"