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

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,17 @@
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
5
  ## 🌟 Visão Geral
6
6
 
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.
7
+ 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
8
 
9
9
  ### Concept Usage
10
10
 
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)
11
+ - [Dynamic Component Rendering](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/dynamic-component-rendering.md)
12
+ - [Headless UI & Design Systems](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/headless-ui-and-design-systems.md)
13
+ - [Configuration‑driven development](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/configuration-driven-development.md)
14
+ - [Declarative UI](https://github.com/codexrodrigues/praxis/blob/main/docs/concepts/declarative-ui.md)
15
15
 
16
16
  ## ✨ Características Principais
17
17
 
@@ -32,7 +32,7 @@ A biblioteca `@praxis/core` é o núcleo do Praxis UI Workspace, fornecendo inte
32
32
  ## 🚀 Instalação
33
33
 
34
34
  ```bash
35
- npm install @praxis/core
35
+ npm install @praxisui/core
36
36
  ```
37
37
 
38
38
  ### Peer dependencies (Angular v20)
@@ -48,7 +48,7 @@ npm install @praxis/core
48
48
  ```ts
49
49
  import { Component } from '@angular/core';
50
50
  import { MatIconModule } from '@angular/material/icon';
51
- import { PraxisIconDirective } from '@praxis/core';
51
+ import { PraxisIconDirective } from '@praxisui/core';
52
52
 
53
53
  @Component({
54
54
  selector: 'app-icons-demo',
@@ -68,7 +68,7 @@ export class IconsDemoComponent {}
68
68
 
69
69
  ```ts
70
70
  import { Component } from '@angular/core';
71
- import { DynamicGridPageComponent, GridPageDefinition } from '@praxis/core';
71
+ import { DynamicGridPageComponent, GridPageDefinition } from '@praxisui/core';
72
72
 
73
73
  @Component({
74
74
  selector: 'app-grid-demo',
@@ -101,11 +101,71 @@ Observação: os IDs de widgets usados na página devem estar registrados via `C
101
101
 
102
102
  ## 📚 API Surface
103
103
 
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.
104
+ - Exports públicos: consulte o arquivo
105
+ [`public-api.ts`](https://github.com/codexrodrigues/praxis/blob/main/frontend-libs/praxis-ui-workspace/projects/praxis-core/src/public-api.ts)
106
+ para a lista consolidada de serviços, tokens, modelos e utilitários disponíveis para importação.
107
+
108
+ ## 🔎 Schema Viewer (para Showcases)
109
+
110
+ 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`.
111
+
112
+ ```ts
113
+ import { Component, Provider } from '@angular/core';
114
+ import { PraxisTabs, TabsMetadata } from '@praxisui/tabs';
115
+ import { SchemaViewerComponent, SCHEMA_VIEWER_CONTEXT } from '@praxisui/core';
116
+
117
+ @Component({
118
+ standalone: true,
119
+ selector: 'app-tabs-showcase',
120
+ imports: [PraxisTabs, SchemaViewerComponent],
121
+ template: `
122
+ <!-- Aba Preview -->
123
+ <praxis-tabs [config]="tabs"></praxis-tabs>
124
+
125
+ <!-- Aba Schema -->
126
+ <praxis-schema-viewer [context]="schemaCtx"></praxis-schema-viewer>
127
+ `,
128
+ providers: [
129
+ {
130
+ provide: SCHEMA_VIEWER_CONTEXT,
131
+ useFactory: () => ({
132
+ componentId: 'praxis-tabs',
133
+ title: 'Tabs — Schema & Metadata',
134
+ rawConfig: {
135
+ group: { alignTabs: 'center', dynamicHeight: true },
136
+ tabs: [ { id: 't1', textLabel: 'Dados', content: [] } ],
137
+ } satisfies TabsMetadata,
138
+ }),
139
+ } as Provider,
140
+ ],
141
+ })
142
+ export class TabsShowcaseComponent {
143
+ tabs: TabsMetadata = { group: { dynamicHeight: true }, tabs: [] };
144
+ schemaCtx = {
145
+ componentId: 'praxis-tabs',
146
+ rawConfig: this.tabs,
147
+ };
148
+ }
149
+ ```
150
+
151
+ Campos opcionais do contexto (`SchemaViewerContext`):
152
+ - `rawConfig` (JSON usado pelo exemplo), `effectiveConfig` (se houver merge de defaults);
153
+ - `backendSchema` (OpenAPI/JSON Schema) e `schemaMeta` (path/operation/schemaType/schemaHash);
154
+ - `normalizedFields` (se já normalizado; caso contrário, o componente aplica `SchemaNormalizerService`).
105
155
 
106
156
  ## 🧩 Compatibilidade
107
157
 
108
- - `@praxis/core` `0.0.x` → Angular `20.x`
158
+ - `@praxisui/core` `1.0.0-beta.x` → Angular `20.x`
159
+
160
+ ## 📦 Publicação
161
+
162
+ - Pacote ESM, gerado via `ng-packagr`.
163
+ - Licença: Apache-2.0 (incluída no pacote).
164
+ - Repositório e issues: [GitHub](https://github.com/codexrodrigues/praxis).
165
+
166
+ ## 📄 Licença
167
+
168
+ Apache-2.0 — veja o arquivo `LICENSE` incluído no pacote.
109
169
  - Module format: `ESM2022`
110
170
 
111
171
  ## 📝 Interfaces Principais
@@ -485,7 +545,7 @@ class TableConfigService {
485
545
  ### Exemplo de Uso do Serviço
486
546
 
487
547
  ```typescript
488
- import { TableConfigService } from '@praxis/core';
548
+ import { TableConfigService } from '@praxisui/core';
489
549
 
490
550
  @Component({...})
491
551
  export class MyComponent {
@@ -512,7 +572,7 @@ export class MyComponent {
512
572
  ### Configuração Padrão
513
573
 
514
574
  ```typescript
515
- import { createDefaultTableConfig } from "@praxis/core";
575
+ import { createDefaultTableConfig } from "@praxisui/core";
516
576
 
517
577
  // Criar configuração padrão
518
578
  const defaultConfig = createDefaultTableConfig();
@@ -529,7 +589,7 @@ console.log(defaultConfig);
529
589
  ### Validação
530
590
 
531
591
  ```typescript
532
- import { isValidTableConfig, isTableConfigV2 } from '@praxis/core';
592
+ import { isValidTableConfig, isTableConfigV2 } from '@praxisui/core';
533
593
 
534
594
  // Validar configuração
535
595
  const config = { columns: [...] };
@@ -546,7 +606,7 @@ if (isTableConfigV2(config)) {
546
606
  ### Manipulação de Configurações
547
607
 
548
608
  ```typescript
549
- import { cloneTableConfig, mergeTableConfigs, getEssentialConfig } from "@praxis/core";
609
+ import { cloneTableConfig, mergeTableConfigs, getEssentialConfig } from "@praxisui/core";
550
610
 
551
611
  // Clonar configuração
552
612
  const clonedConfig = cloneTableConfig(originalConfig);
@@ -590,13 +650,13 @@ function mergeTableConfigs(base: TableConfig, override: Partial<TableConfig>): T
590
650
  function getEssentialConfig(config: TableConfig): Partial<TableConfig>;
591
651
  ```
592
652
 
593
- ## 🧪 Testando com @praxis/core
653
+ ## 🧪 Testando com @praxisui/core
594
654
 
595
655
  ### Setup de Testes
596
656
 
597
657
  ```typescript
598
658
  import { TestBed } from "@angular/core/testing";
599
- import { TableConfigService } from "@praxis/core";
659
+ import { TableConfigService } from "@praxisui/core";
600
660
 
601
661
  describe("TableConfigService", () => {
602
662
  let service: TableConfigService;
@@ -626,7 +686,7 @@ describe("TableConfigService", () => {
626
686
  ### Testes de Helper Functions
627
687
 
628
688
  ```typescript
629
- import { createDefaultTableConfig, isValidTableConfig, cloneTableConfig } from "@praxis/core";
689
+ import { createDefaultTableConfig, isValidTableConfig, cloneTableConfig } from "@praxisui/core";
630
690
 
631
691
  describe("Helper Functions", () => {
632
692
  it("should create valid default config", () => {
@@ -657,17 +717,17 @@ describe("Helper Functions", () => {
657
717
 
658
718
  ```typescript
659
719
  // Antes
660
- import { TableConfigV1, TableConfigV2, TableConfigUnified } from "@praxis/core";
720
+ import { TableConfigV1, TableConfigV2, TableConfigUnified } from "@praxisui/core";
661
721
 
662
722
  // Depois
663
- import { TableConfig } from "@praxis/core";
723
+ import { TableConfig } from "@praxisui/core";
664
724
  ```
665
725
 
666
726
  2. **Serviços Simplificados**:
667
727
 
668
728
  ```typescript
669
729
  // Antes
670
- import { TableConfigAdapterService, TableConfigMigrationService } from "@praxis/core";
730
+ import { TableConfigAdapterService, TableConfigMigrationService } from "@praxisui/core";
671
731
 
672
732
  // Depois
673
733
  import { TableConfigService } from "@praxisui/core";