@praxisui/core 1.0.0-beta.1 → 1.0.0-beta.11

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
@@ -1,17 +1,24 @@
1
- # @praxis/core
1
+ # @praxisui/core
2
2
 
3
3
  > Biblioteca central com interfaces e serviços fundamentais para o Praxis UI Workspace
4
4
 
5
+ ## 🔰 Exemplos / Quickstart
6
+
7
+ Para ver esta biblioteca em funcionamento em uma aplicação completa, utilize o projeto de exemplo (Quickstart):
8
+
9
+ - Repositório: https://github.com/codexrodrigues/praxis-ui-quickstart
10
+ - O Quickstart demonstra a integração das bibliotecas `@praxisui/*` em um app Angular, incluindo instalação, configuração e uso em telas reais.
11
+
5
12
  ## 🌟 Visão Geral
6
13
 
7
- A biblioteca `@praxis/core` é o núcleo do Praxis UI Workspace, fornecendo interfaces robustas, serviços base e utilitários essenciais para todas as outras bibliotecas do ecossistema. Com a arquitetura unificada, oferece uma experiência de desenvolvimento consistente e type-safe.
14
+ A biblioteca `@praxisui/core` é o núcleo do Praxis UI Workspace, fornecendo interfaces robustas, serviços base e utilitários essenciais para todas as outras bibliotecas do ecossistema. Com a arquitetura unificada, oferece uma experiência de desenvolvimento consistente e type-safe.
8
15
 
9
16
  ### Concept Usage
10
17
 
11
- - [Dynamic Component Rendering](../../../../docs/concepts/dynamic-component-rendering.md)
12
- - [Headless UI & Design Systems](../../../../docs/concepts/headless-ui-and-design-systems.md)
13
- - [Configuration‑driven development](../../../../docs/concepts/configuration-driven-development.md)
14
- - [Declarative UI](../../../../docs/concepts/declarative-ui.md)
18
+ - [Dynamic Component Rendering](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/dynamic-component-rendering.md)
19
+ - [Headless UI & Design Systems](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/headless-ui-and-design-systems.md)
20
+ - [Configuration‑driven development](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/configuration-driven-development.md)
21
+ - [Declarative UI](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/declarative-ui.md)
15
22
 
16
23
  ## ✨ Características Principais
17
24
 
@@ -32,9 +39,12 @@ A biblioteca `@praxis/core` é o núcleo do Praxis UI Workspace, fornecendo inte
32
39
  ## 🚀 Instalação
33
40
 
34
41
  ```bash
35
- npm install @praxis/core
42
+ npm install @praxisui/core
36
43
  ```
37
44
 
45
+ Exemplo completo (app de referência)
46
+ - Quickstart: https://github.com/codexrodrigues/praxis-ui-quickstart
47
+
38
48
  ### Peer dependencies (Angular v20)
39
49
 
40
50
  - `@angular/core` `^20.0.0`
@@ -48,7 +58,7 @@ npm install @praxis/core
48
58
  ```ts
49
59
  import { Component } from '@angular/core';
50
60
  import { MatIconModule } from '@angular/material/icon';
51
- import { PraxisIconDirective } from '@praxis/core';
61
+ import { PraxisIconDirective } from '@praxisui/core';
52
62
 
53
63
  @Component({
54
64
  selector: 'app-icons-demo',
@@ -68,7 +78,7 @@ export class IconsDemoComponent {}
68
78
 
69
79
  ```ts
70
80
  import { Component } from '@angular/core';
71
- import { DynamicGridPageComponent, GridPageDefinition } from '@praxis/core';
81
+ import { DynamicGridPageComponent, GridPageDefinition } from '@praxisui/core';
72
82
 
73
83
  @Component({
74
84
  selector: 'app-grid-demo',
@@ -101,11 +111,71 @@ Observação: os IDs de widgets usados na página devem estar registrados via `C
101
111
 
102
112
  ## 📚 API Surface
103
113
 
104
- - Exports públicos: consulte `projects/praxis-core/src/public-api.ts` para a lista consolidada de serviços, tokens, modelos e utilitários disponíveis para importação.
114
+ - Exports públicos: consulte o arquivo
115
+ [`public-api.ts`](https://github.com/codexrodrigues/praxis/blob/main/frontend-libs/praxis-ui-workspace/projects/praxis-core/src/public-api.ts)
116
+ para a lista consolidada de serviços, tokens, modelos e utilitários disponíveis para importação.
117
+
118
+ ## 🔎 Schema Viewer (para Showcases)
119
+
120
+ Para exibir os metadados e schemas usados por um exemplo (ex.: na aba “Schema” de um showcase), use o componente `SchemaViewerComponent` e (opcionalmente) injete o contexto via `SCHEMA_VIEWER_CONTEXT`.
121
+
122
+ ```ts
123
+ import { Component, Provider } from '@angular/core';
124
+ import { PraxisTabs, TabsMetadata } from '@praxisui/tabs';
125
+ import { SchemaViewerComponent, SCHEMA_VIEWER_CONTEXT } from '@praxisui/core';
126
+
127
+ @Component({
128
+ standalone: true,
129
+ selector: 'app-tabs-showcase',
130
+ imports: [PraxisTabs, SchemaViewerComponent],
131
+ template: `
132
+ <!-- Aba Preview -->
133
+ <praxis-tabs [config]="tabs"></praxis-tabs>
134
+
135
+ <!-- Aba Schema -->
136
+ <praxis-schema-viewer [context]="schemaCtx"></praxis-schema-viewer>
137
+ `,
138
+ providers: [
139
+ {
140
+ provide: SCHEMA_VIEWER_CONTEXT,
141
+ useFactory: () => ({
142
+ componentId: 'praxis-tabs',
143
+ title: 'Tabs — Schema & Metadata',
144
+ rawConfig: {
145
+ group: { alignTabs: 'center', dynamicHeight: true },
146
+ tabs: [ { id: 't1', textLabel: 'Dados', content: [] } ],
147
+ } satisfies TabsMetadata,
148
+ }),
149
+ } as Provider,
150
+ ],
151
+ })
152
+ export class TabsShowcaseComponent {
153
+ tabs: TabsMetadata = { group: { dynamicHeight: true }, tabs: [] };
154
+ schemaCtx = {
155
+ componentId: 'praxis-tabs',
156
+ rawConfig: this.tabs,
157
+ };
158
+ }
159
+ ```
160
+
161
+ Campos opcionais do contexto (`SchemaViewerContext`):
162
+ - `rawConfig` (JSON usado pelo exemplo), `effectiveConfig` (se houver merge de defaults);
163
+ - `backendSchema` (OpenAPI/JSON Schema) e `schemaMeta` (path/operation/schemaType/schemaHash);
164
+ - `normalizedFields` (se já normalizado; caso contrário, o componente aplica `SchemaNormalizerService`).
105
165
 
106
166
  ## 🧩 Compatibilidade
107
167
 
108
- - `@praxis/core` `0.0.x` → Angular `20.x`
168
+ - `@praxisui/core` `1.0.0-beta.x` → Angular `20.x`
169
+
170
+ ## 📦 Publicação
171
+
172
+ - Pacote ESM, gerado via `ng-packagr`.
173
+ - Licença: Apache-2.0 (incluída no pacote).
174
+ - Repositório e issues: [GitHub](https://github.com/codexrodrigues/praxis).
175
+
176
+ ## 📄 Licença
177
+
178
+ Apache-2.0 — veja o arquivo `LICENSE` incluído no pacote.
109
179
  - Module format: `ESM2022`
110
180
 
111
181
  ## 📝 Interfaces Principais
@@ -485,7 +555,7 @@ class TableConfigService {
485
555
  ### Exemplo de Uso do Serviço
486
556
 
487
557
  ```typescript
488
- import { TableConfigService } from '@praxis/core';
558
+ import { TableConfigService } from '@praxisui/core';
489
559
 
490
560
  @Component({...})
491
561
  export class MyComponent {
@@ -512,7 +582,7 @@ export class MyComponent {
512
582
  ### Configuração Padrão
513
583
 
514
584
  ```typescript
515
- import { createDefaultTableConfig } from "@praxis/core";
585
+ import { createDefaultTableConfig } from "@praxisui/core";
516
586
 
517
587
  // Criar configuração padrão
518
588
  const defaultConfig = createDefaultTableConfig();
@@ -529,7 +599,7 @@ console.log(defaultConfig);
529
599
  ### Validação
530
600
 
531
601
  ```typescript
532
- import { isValidTableConfig, isTableConfigV2 } from '@praxis/core';
602
+ import { isValidTableConfig, isTableConfigV2 } from '@praxisui/core';
533
603
 
534
604
  // Validar configuração
535
605
  const config = { columns: [...] };
@@ -546,7 +616,7 @@ if (isTableConfigV2(config)) {
546
616
  ### Manipulação de Configurações
547
617
 
548
618
  ```typescript
549
- import { cloneTableConfig, mergeTableConfigs, getEssentialConfig } from "@praxis/core";
619
+ import { cloneTableConfig, mergeTableConfigs, getEssentialConfig } from "@praxisui/core";
550
620
 
551
621
  // Clonar configuração
552
622
  const clonedConfig = cloneTableConfig(originalConfig);
@@ -590,13 +660,13 @@ function mergeTableConfigs(base: TableConfig, override: Partial<TableConfig>): T
590
660
  function getEssentialConfig(config: TableConfig): Partial<TableConfig>;
591
661
  ```
592
662
 
593
- ## 🧪 Testando com @praxis/core
663
+ ## 🧪 Testando com @praxisui/core
594
664
 
595
665
  ### Setup de Testes
596
666
 
597
667
  ```typescript
598
668
  import { TestBed } from "@angular/core/testing";
599
- import { TableConfigService } from "@praxis/core";
669
+ import { TableConfigService } from "@praxisui/core";
600
670
 
601
671
  describe("TableConfigService", () => {
602
672
  let service: TableConfigService;
@@ -626,7 +696,7 @@ describe("TableConfigService", () => {
626
696
  ### Testes de Helper Functions
627
697
 
628
698
  ```typescript
629
- import { createDefaultTableConfig, isValidTableConfig, cloneTableConfig } from "@praxis/core";
699
+ import { createDefaultTableConfig, isValidTableConfig, cloneTableConfig } from "@praxisui/core";
630
700
 
631
701
  describe("Helper Functions", () => {
632
702
  it("should create valid default config", () => {
@@ -657,17 +727,17 @@ describe("Helper Functions", () => {
657
727
 
658
728
  ```typescript
659
729
  // Antes
660
- import { TableConfigV1, TableConfigV2, TableConfigUnified } from "@praxis/core";
730
+ import { TableConfigV1, TableConfigV2, TableConfigUnified } from "@praxisui/core";
661
731
 
662
732
  // Depois
663
- import { TableConfig } from "@praxis/core";
733
+ import { TableConfig } from "@praxisui/core";
664
734
  ```
665
735
 
666
736
  2. **Serviços Simplificados**:
667
737
 
668
738
  ```typescript
669
739
  // Antes
670
- import { TableConfigAdapterService, TableConfigMigrationService } from "@praxis/core";
740
+ import { TableConfigAdapterService, TableConfigMigrationService } from "@praxisui/core";
671
741
 
672
742
  // Depois
673
743
  import { TableConfigService } from "@praxisui/core";