@praxisui/stepper 9.0.0-beta.0 → 9.0.0-beta.2

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 +78 -287
  2. package/package.json +10 -10
package/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  title: "Stepper"
3
3
  slug: "stepper-overview"
4
- description: "Visao geral do @praxisui/stepper com fluxo multi-etapas, persistencia por stepperId, integracao com dynamic-form e editor embutido."
4
+ description: "Public npm documentation for @praxisui/stepper: metadata-driven multi-step workflows, dynamic-form steps, persistence, widget composition and runtime authoring."
5
5
  doc_type: "reference"
6
6
  document_kind: "component-overview"
7
7
  component: "stepper"
@@ -24,7 +24,7 @@ icon: "list-todo"
24
24
  toc: true
25
25
  sidebar: true
26
26
  search_boost: 1.0
27
- reading_time: 12
27
+ reading_time: 5
28
28
  estimated_setup_time: 20
29
29
  version: "1.0"
30
30
  related_docs:
@@ -37,352 +37,143 @@ keywords:
37
37
  - "wizard form"
38
38
  - "stepper metadata"
39
39
  - "stepperId persistence"
40
- last_updated: "2026-03-07"
40
+ last_updated: "2026-06-16"
41
41
  ---
42
42
 
43
43
  # @praxisui/stepper
44
44
 
45
- ## Documentation
45
+ `@praxisui/stepper` renders metadata-driven multi-step workflows for Praxis UI Angular applications. Install it when a host needs a wizard shell with dynamic forms, rich content, nested widgets, persisted configuration, runtime editing and governed authoring.
46
46
 
47
- - Documentação oficial: https://praxisui.dev/components/stepper
48
- - Aplicação de referência: https://github.com/codexrodrigues/praxis-ui-quickstart
49
- - Demo publicado: https://praxis-ui-4e602.web.app
50
- - Indicado para: fluxos multi-etapas com formularios, uploads, listas e pagina builder no mesmo wizard
47
+ The stepper owns workflow navigation and step composition. The host owns resource services, submit orchestration, remote validation, authorization and durable domain state.
51
48
 
52
- ## When to use
53
-
54
- - Construir wizards com multiplas etapas e contratos compartilhados
55
- - Reutilizar formularios, uploads, listas e widgets dentro do mesmo fluxo
56
- - Persistir configuracao de stepper sem reinventar navegacao e edicao
57
-
58
- Componente stepper standalone com integração opcional ao `@praxisui/dynamic-form`, suporte a ícones Material Icons/Symbols e editor de configuração embutido.
59
-
60
- ## Instalação
61
-
62
- Instale a biblioteca junto com as dependências pares (peer dependencies) exigidas pelo componente e pelo editor de configuração:
49
+ ## Install
63
50
 
64
51
  ```bash
65
- npm i @praxisui/stepper@beta \
66
- @praxisui/core @praxisui/dynamic-form @praxisui/settings-panel \
67
- @praxisui/list @praxisui/files-upload @praxisui/page-builder
52
+ npm i @praxisui/stepper@latest
68
53
  ```
69
54
 
70
55
  Peer dependencies:
71
- - `@angular/core` `^21.0.0`
72
- - `@angular/common` `^21.0.0`
73
- - `@angular/material` `^21.0.0`
74
- - `@angular/cdk` `^21.0.0`
75
- - `@angular/forms` `^21.0.0`
76
- - `@angular/router` `^21.0.0`
77
- - `@praxisui/core` `^9.0.0-beta.0`
78
- - `@praxisui/dynamic-form` `^9.0.0-beta.0`
79
- - `@praxisui/rich-content` `^9.0.0-beta.0`
80
- - `@praxisui/settings-panel` `^9.0.0-beta.0`
81
- - `@praxisui/list` `^9.0.0-beta.0`
82
- - `@praxisui/files-upload` `^9.0.0-beta.0`
83
- - `@praxisui/page-builder` `^9.0.0-beta.0`
84
- - `@praxisui/ai` `^9.0.0-beta.0`
85
- - `rxjs` `~7.8.0`
86
56
 
87
- ## Quick Start
57
+ - `@angular/common`, `@angular/core`, `@angular/forms`, `@angular/router`, `@angular/cdk`, `@angular/material` `^21.0.0`
58
+ - `@praxisui/core`, `@praxisui/dynamic-form`, `@praxisui/rich-content`, `@praxisui/settings-panel`, `@praxisui/list`, `@praxisui/files-upload`, `@praxisui/page-builder`, `@praxisui/ai` `^9.0.0-beta.1`
59
+ - `rxjs` `~7.8.0`
88
60
 
89
- ### Uso básico
61
+ ## Minimal Stepper
90
62
 
91
63
  ```ts
92
64
  import { Component } from '@angular/core';
93
- import { PraxisStepper } from '@praxisui/stepper';
65
+ import { PraxisStepper, type StepperMetadata } from '@praxisui/stepper';
94
66
 
95
67
  @Component({
96
68
  selector: 'app-onboarding',
97
69
  standalone: true,
98
70
  imports: [PraxisStepper],
99
71
  template: `
100
- <praxis-stepper stepperId="stepper-demo" [config]="config" [enableCustomization]="true"></praxis-stepper>
72
+ <praxis-stepper
73
+ stepperId="employee-onboarding"
74
+ [config]="config"
75
+ [enableCustomization]="true"
76
+ (selectedIndexChange)="selectedIndex = $event"
77
+ />
101
78
  `,
102
79
  })
103
80
  export class OnboardingComponent {
104
- config = {
81
+ selectedIndex = 0;
82
+
83
+ readonly config: StepperMetadata = {
105
84
  orientation: 'horizontal',
106
85
  headerPosition: 'top',
107
86
  linear: true,
108
87
  steps: [
109
- { id: 'profile', label: 'Perfil' },
110
- { id: 'confirm', label: 'Confirmação' },
88
+ { id: 'profile', label: 'Profile' },
89
+ { id: 'review', label: 'Review' },
111
90
  ],
112
- navigation: { nextLabel: 'Avançar', prevLabel: 'Voltar' },
113
- } as const;
91
+ navigation: { nextLabel: 'Next', prevLabel: 'Back' },
92
+ };
114
93
  }
115
94
  ```
116
95
 
117
- ### Persistência
96
+ ## Dynamic Form Steps
118
97
 
119
- - `stepperId` é obrigatório para salvar/carregar a configuração.
120
- - A chave usada no storage é `stepper-config:<component_id>` (via `ComponentKeyService`).
121
- - Use `componentInstanceId` quando houver múltiplos steppers com o mesmo `stepperId` na mesma rota.
122
-
123
- ### Integração com Dynamic Form (por etapa)
98
+ Each step can host a `@praxisui/dynamic-form` configuration. Use canonical resource paths without `/api`, `/filter` or `/{id}`.
124
99
 
125
100
  ```ts
126
- import { Component } from '@angular/core';
127
- import { PraxisStepper } from '@praxisui/stepper';
128
-
129
- @Component({
130
- selector: 'app-cadastro',
131
- standalone: true,
132
- imports: [PraxisStepper],
133
- template: `<praxis-stepper stepperId="stepper-demo" [config]="config"></praxis-stepper>`,
134
- })
135
- export class CadastroComponent {
136
- config = {
137
- linear: true,
138
- steps: [
139
- {
140
- id: 'dados',
141
- label: 'Dados do Cliente',
142
- form: {
143
- resourcePath: 'human-resources/funcionarios',
144
- mode: 'create',
145
- // ou forneça FormConfig diretamente
146
- // config: { sections: [...] }
147
- },
101
+ const config: StepperMetadata = {
102
+ linear: true,
103
+ steps: [
104
+ {
105
+ id: 'employee',
106
+ label: 'Employee',
107
+ form: {
108
+ resourcePath: 'human-resources/employees',
109
+ mode: 'create',
148
110
  },
149
- {
150
- id: 'endereco',
151
- label: 'Endereço',
152
- form: { resourcePath: 'human-resources/enderecos', mode: 'create' },
111
+ },
112
+ {
113
+ id: 'address',
114
+ label: 'Address',
115
+ form: {
116
+ resourcePath: 'human-resources/addresses',
117
+ mode: 'create',
153
118
  },
154
- ],
155
- };
156
- }
119
+ },
120
+ ],
121
+ };
157
122
  ```
158
123
 
159
- Validação: em modo `linear`, o avanço bloqueia quando o formulário da etapa atual é inválido. Para validação remota, forneça `(serverValidate)` ao componente.
160
-
161
- Observação sobre `resourcePath`:
162
- - use o caminho base canônico do recurso, sem `/api`, `/filter` ou `/{id}`. Ex.: `human-resources/funcionarios`.
163
-
164
- Observação de host:
165
- - ao usar `form.resourcePath` em uma etapa, o `praxis-dynamic-form` remoto continua dependendo de `GenericCrudService` provido pelo host efetivo;
166
- - se o host precisar de `endpointKey` específico ou pré-configuração de CRUD, configure a mesma instância antes de renderizar o stepper;
167
- - não presumir que o stepper sozinho resolve a DI de CRUD do formulário remoto.
124
+ In `linear` mode, the next action is blocked when the current step form is invalid. Provide `serverValidate` when the host needs remote validation before navigation.
168
125
 
169
126
  ```html
170
- <praxis-stepper stepperId="stepper-demo"
127
+ <praxis-stepper
128
+ stepperId="employee-flow"
171
129
  [config]="config"
172
130
  [serverValidate]="validateStep"
173
- ></praxis-stepper>
131
+ />
174
132
  ```
175
133
 
176
134
  ```ts
177
- validateStep = async ({ step, formGroup, formData }) => {
178
- // Chamada remota opcional
179
- const ok = await Promise.resolve(true);
180
- return { ok };
135
+ validateStep = async ({ step, stepIndex, formGroup, formData }) => {
136
+ return { ok: true };
181
137
  };
182
138
  ```
183
139
 
184
- ## API Surface
185
-
186
- - Componentes: `PraxisStepper`, `PraxisStepperConfigEditor`
187
- - Tipos: `StepperMetadata`, `StepConfig`, `StepOrientation`, `StepHeaderPosition`
188
- - Authoring AI: `PRAXIS_STEPPER_AUTHORING_MANIFEST`
189
- - Eventos: `selectedIndexChange`, `selectionChange`, `widgetEvent`, `animationDone`, `stepFormReady`, `stepFormValueChange`
190
- - Veja: `projects/praxis-stepper/src/public-api.ts`
191
-
192
- ## Agentic Authoring
193
-
194
- O contrato executavel de authoring fica em `PRAXIS_STEPPER_AUTHORING_MANIFEST`.
195
- Ele modela edicoes em `StepperMetadata` por operacoes atomicas sobre etapas,
196
- navegacao, orientacao, estados de conclusao e validacao.
140
+ Remote dynamic forms still require the effective host to provide the CRUD/resource services expected by `@praxisui/dynamic-form`.
197
141
 
198
- Quando `enableCustomization` esta ativo, o runtime abre o `PraxisAiAssistantShellComponent`
199
- com contexto semantico do stepper e registra a sessao no dock global de assistentes.
200
- O assistente envia estado atual, perfil das etapas, campos de schema e referencia ao
201
- manifesto de authoring para a IA. Patches JSON livres nao sao aplicados no runtime:
202
- mudancas locais devem nascer de um `componentEditPlan` validado pelo manifesto, e
203
- regras compartilhadas seguem por `domain-rules/intake`.
142
+ ## Main Inputs And Outputs
204
143
 
205
- Cobertura principal:
144
+ - `stepperId: string`: required stable id for persisted configuration.
145
+ - `componentInstanceId?: string`: disambiguates repeated instances on the same route.
146
+ - `config: StepperMetadata | string | null`: workflow metadata.
147
+ - `selectedIndex` / `selectedIndexInput`: externally controlled active step.
148
+ - `enableCustomization: boolean`: opens runtime editing and semantic assistant affordances.
149
+ - `labelPosition`, `color`, `disableRippleInput`, `stepperContext`, `serverValidate`: visual, context and validation hooks.
150
+ - `selectedIndexChange`, `selectionChange`, `animationDone`: navigation events.
151
+ - `stepFormReady`, `stepFormValueChange`: dynamic-form step events.
152
+ - `widgetEvent`: legacy/advanced bridge for nested widget events.
206
153
 
207
- - `step.add`, `step.remove`, `step.label.set`, `step.order.set`
208
- - `step.optional.set`, `step.completed.set`
209
- - `navigation.mode.set`
210
- - `orientation.set`
211
- - `validation.rule.add`
212
- - `step.content.set`
154
+ ## Metadata Shape
213
155
 
214
- As operacoes preservam `steps[].id` como identidade canonica. Remover uma
215
- etapa com formulario, rich content ou widgets exige confirmacao explicita. Regras
216
- de validacao devem ser projetadas em `steps[].form.config` ou delegadas ao
217
- `serverValidate` do host; o stepper nao define uma DSL paralela de validacao.
156
+ `StepperMetadata` supports horizontal or vertical layout, linear validation, appearance tokens, Material icon overrides, navigation labels and step definitions. `StepConfig` supports dynamic form config, rich content before/after the form, advanced nested widgets and accessibility labels.
218
157
 
219
- Cada operacao declara `target.resolver`, `preconditions`, `validators`,
220
- `affectedPaths`, `effects` e `submissionImpact` tipado. Edicoes de conteudo de
221
- etapa podem afetar dados schema-backed porque `steps[].form.config` hospeda o
222
- `FormConfig` do `praxis-dynamic-form`; widgets filhos continuam governados pelos
223
- contratos dos respectivos componentes.
158
+ Prefer `stepBlocksBeforeForm` and `stepBlocksAfterForm` for editorial content. Use `steps[].widgets` only for advanced host-owned components such as upload or list flows that are not represented by rich content.
224
159
 
225
- ## Conteudo Editorial por Etapa
160
+ ## Wizard Wrapper
226
161
 
227
- O conteudo editorial do stepper usa a mesma base de rich content da plataforma:
162
+ `PraxisWizardFormComponent` maps a higher-level wizard JSON contract into `StepperMetadata` plus `FormConfig`. Use `<praxis-wizard-form wizardId="..." [config]="config" />` with `(submit)`, `(completed)` and `(customAction)` when the host wants a guided form wrapper instead of composing `PraxisStepper` directly.
228
163
 
229
- - `steps[].stepBlocksBeforeForm`: `RichContentDocument` renderizado antes do formulario da etapa
230
- - `steps[].stepBlocksAfterForm`: `RichContentDocument` renderizado depois do formulario da etapa
231
- - `steps[].widgets`: reservado para componentes avancados host-owned, como listas de selecao e upload, quando nao houver equivalente canonico em rich content
164
+ ## Persistence And Authoring
232
165
 
233
- Novo authoring nao deve usar `widgetsBeforeForm` para copy, cards, avisos ou conteudo editorial. O wizard adapter converte `blocks`, `zones` e `cards` para `RichContentDocument` automaticamente.
234
-
235
- ## Wizard Form (FT-like) — Experimental
236
-
237
- O `PraxisWizardFormComponent` é um wrapper experimental que traduz um JSON de wizard em `StepperMetadata` + `FormConfig` e aplica um layout inspirado no Financial Times.
238
-
239
- ```ts
240
- import { PraxisWizardFormComponent, FT_WIZARD_CONFIG } from '@praxisui/stepper';
241
-
242
- @Component({
243
- selector: 'app-ft-wizard',
244
- standalone: true,
245
- imports: [PraxisWizardFormComponent],
246
- template: `<praxis-wizard-form wizardId="ft-demo" [config]="config" />`,
247
- })
248
- export class FtWizardDemo {
249
- config = FT_WIZARD_CONFIG;
250
- }
251
- ```
252
-
253
- Notas:
254
- - `stepBlocksBeforeForm` e `stepBlocksAfterForm` recebem rich content antes/depois do formulário em cada etapa.
255
- - `blocks` (wizard) permite inserir conteúdos editoriais (benefits/content/notice/divider) antes ou depois do formulário; o adapter converte esses blocos para `RichContentDocument`.
256
- - `zones` (wizard) permite separar blocos em `intro`, `body` e `footer` (mapeados para before/after form).
257
- - `contentBlock` e demais blocos editoriais convergem para nodes de rich content no novo contrato, sem criar widgets locais para novo authoring.
258
- - Cada bloco pode definir `id` (string) para gerar `blockId` estável em runtime; sem `id`, o fallback usa índice posicional.
259
- - `blocks` e `zones` são mutuamente exclusivos no contrato. Se ambos forem enviados, `zones` tem prioridade no runtime.
260
- - O wizard faz validação runtime (campos essenciais e exclusividade de `blocks`/`zones`). Em `devMode`, lança erro para facilitar o debug; em produção, emite `console.warn`.
261
- - A CTA primária reaproveita a validação do `PraxisStepper` interno; em `submit`, a etapa atual também é validada antes da emissão.
262
- - `cta.action = 'custom'` emite `(customAction)` no wizard para orquestração externa do host.
263
- - Preset visual recomendado para FT-like: `appearance.preset = 'ft-light'` (aplicado automaticamente no wizard).
264
-
265
- ## Tokens de tema (Wizard)
266
-
267
- O wizard usa **tokens M3** por padrão. Se for necessário sobrescrever algo específico do wizard, use tokens da própria lib, sempre apontando para tokens M3 no tema do host:
268
-
269
- ```scss
270
- :root {
271
- --praxis-wizard-bg: var(--md-sys-color-surface-container-low);
272
- --praxis-wizard-card-bg: var(--md-sys-color-surface);
273
- --praxis-wizard-border: var(--md-sys-color-outline-variant);
274
- --praxis-wizard-muted: var(--md-sys-color-on-surface-variant);
275
- --praxis-wizard-accent: var(--md-sys-color-primary);
276
- --praxis-wizard-accent-on: var(--md-sys-color-on-primary);
277
- }
278
- ```
279
-
280
- Tokens disponíveis:
281
- - `--praxis-wizard-bg`
282
- - `--praxis-wizard-card-bg`
283
- - `--praxis-wizard-border`
284
- - `--praxis-wizard-muted`
285
- - `--praxis-wizard-accent`
286
- - `--praxis-wizard-accent-on`
287
- - A persistência de progresso e preferências usa `CONFIG_STORAGE` (localStorage por padrão).
288
- - JSON Schema: `projects/praxis-stepper/src/lib/wizard/praxis-wizard-form.schema.json`.
289
- - Personalização de cor do stepper (sem hardcode): ajuste `--praxis-wizard-accent` no host ou em `:root` para controlar o estado ativo/concluído.
290
- - `appearance.tokens` aplica variáveis CSS diretamente no host do stepper; use nomes com ou sem prefixo `--`.
291
- - Para evitar `::ng-deep`, use `stepperClass` e `contentClass` no metadata e aplique estilos em um stylesheet global do app (ou em presets internos da lib).
292
-
293
- ```scss
294
- :root {
295
- --praxis-wizard-accent: var(--md-sys-color-primary);
296
- }
297
- ```
298
-
299
- # Praxis Stepper — Guia de Estilos e Ícones
300
-
301
- Este guia explica como personalizar estilos (tokens) e ícones do cabeçalho do stepper em apps que consomem a lib `@praxisui/stepper`.
302
-
303
- ## Conjuntos de Ícones (Material Icons vs Material Symbols)
304
-
305
- O Angular Material, por padrão, usa o conjunto “Material Icons” (ligature). Ícones como `repeat` funcionam imediatamente. Já ícones como `counter_1` pertencem ao “Material Symbols” e precisam de fonte + classe próprias.
306
-
307
- ### Ativar Material Symbols (Outlined)
308
-
309
- No seu app host (ex.: `src/styles.scss` ou `projects/<app>/src/styles.scss`), adicione:
310
-
311
- ```scss
312
- @import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0');
313
-
314
- .material-symbols-outlined {
315
- font-family: 'Material Symbols Outlined';
316
- font-weight: normal;
317
- font-style: normal;
318
- font-size: 24px; /* tamanho padrão do ícone */
319
- line-height: 1;
320
- display: inline-block;
321
- -webkit-font-feature-settings: 'liga';
322
- -webkit-font-smoothing: antialiased;
323
- font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
324
- }
325
- ```
326
-
327
- Se preferir Rounded/Sharp, importe a família correspondente e use `.material-symbols-rounded` ou `.material-symbols-sharp`.
328
-
329
- ### Selecionar o conjunto no editor do Stepper
330
-
331
- Na aba “Aparência” do editor:
332
- - Selecione “Conjunto de ícones”:
333
- - “Material Icons (padrão)” para ícones clássicos (ex.: `repeat`, `looks_one`).
334
- - “Material Symbols (Outlined/Rounded/Sharp)” para ícones como `counter_1`, `replace_image` etc.
335
- - Escolha os ícones para estados: número, concluído, edição, erro. O preview reflete o conjunto selecionado.
336
-
337
- O componente aplica a classe (`material-symbols-*`) quando um conjunto Symbols é escolhido, exibindo corretamente os nomes selecionados.
338
-
339
- ## Tokens de Estilo com `mat.stepper-overrides`
340
-
341
- Para personalizações visuais (cores, tipografia, densidade), use os tokens do Angular Material. No editor, a aba “Aparência” permite editar tokens e copia um snippet SCSS pronto:
342
-
343
- ```scss
344
- :root {
345
- @include mat.stepper-overrides((
346
- container-color: var(--md-sys-color-surface),
347
- header-label-text-color: var(--md-sys-color-on-surface),
348
- header-height: 48px,
349
- ));
350
- }
351
- ```
352
-
353
- Cole o snippet no arquivo de tema do seu app. Você pode trocar `:root` por uma classe para escopo local.
354
-
355
- ## Dicas de Uso
356
-
357
- - Altura do cabeçalho / Tamanho do texto / Peso do texto: edite pelos campos rápidos — o editor converte automaticamente para tokens (`header-height`, `header-label-text-size`, `header-label-text-weight`).
358
- - Ícones pelo site do Google: copie o nome do ícone em https://fonts.google.com/icons e cole no picker. Não é possível capturar automaticamente a seleção do site.
359
- - Em Material Symbols, nomes como `counter_1`, `replace_image` exigem que o conjunto esteja corretamente importado e selecionado no editor.
360
-
361
- ## Exemplo Mínimo de Configuração
362
-
363
- ```ts
364
- config = {
365
- orientation: 'horizontal',
366
- headerPosition: 'top',
367
- steps: [
368
- { id: 's1', label: 'Dados' },
369
- { id: 's2', label: 'Confirmação' },
370
- ],
371
- appearance: {
372
- iconsSet: 'material-symbols-outlined',
373
- icons: { number: 'counter_1', done: 'check', edit: 'edit', error: 'error' },
374
- tokens: { 'header-height': '48px' },
375
- },
376
- };
377
- ```
166
+ When `stepperId` is provided, configuration is stored through `ASYNC_CONFIG_STORAGE` under a key derived from route, component type, `stepperId` and optional `componentInstanceId`.
378
167
 
379
- Com isso, os ícones e estilos do cabeçalho do stepper serão aplicados como esperado.
168
+ `PRAXIS_STEPPER_AUTHORING_MANIFEST` describes governed AI/tooling operations for step add/remove/order, labels, optional/completed state, navigation, orientation, validation and step content. Validation rules must be projected into step form config or delegated to `serverValidate`; the stepper does not define a parallel validation DSL.
380
169
 
381
- ## Compatibilidade
170
+ ## Public API Snapshot
382
171
 
383
- - `@praxisui/stepper` `0.0.x` Angular `20.x`
384
- - Formato de módulo: `ESM2022`
172
+ Main exports include `PraxisStepper`, `PraxisStepperConfigEditor`, `PraxisStepperWidgetConfigEditor`, `StepperMetadata`, `StepConfig`, stepper metadata provider, wizard form component/types/config, AI capabilities and `PRAXIS_STEPPER_AUTHORING_MANIFEST`.
385
173
 
386
- ## Licença
174
+ ## Official Links
387
175
 
388
- Apache-2.0 veja o `LICENSE` empacotado com esta biblioteca ou o arquivo `LICENSE` na raiz do repositório.
176
+ - Documentation: https://praxisui.dev/components/stepper
177
+ - Live demo: https://praxis-ui-4e602.web.app
178
+ - Quickstart repository: https://github.com/codexrodrigues/praxis-ui-quickstart
179
+ - Source and issues: https://github.com/codexrodrigues/praxis-ui-angular
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@praxisui/stepper",
3
- "version": "9.0.0-beta.0",
3
+ "version": "9.0.0-beta.2",
4
4
  "description": "Stepper workflows for Praxis UI with integrated forms, lists, uploads and page builder support.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": "^21.0.0",
7
7
  "@angular/core": "^21.0.0",
8
8
  "@angular/material": "^21.0.0",
9
9
  "@angular/cdk": "^21.0.0",
10
- "@praxisui/core": "^9.0.0-beta.0",
11
- "@praxisui/dynamic-form": "^9.0.0-beta.0",
12
- "@praxisui/rich-content": "^9.0.0-beta.0",
13
- "@praxisui/settings-panel": "^9.0.0-beta.0",
14
- "@praxisui/list": "^9.0.0-beta.0",
15
- "@praxisui/files-upload": "^9.0.0-beta.0",
16
- "@praxisui/page-builder": "^9.0.0-beta.0",
10
+ "@praxisui/core": "^9.0.0-beta.2",
11
+ "@praxisui/dynamic-form": "^9.0.0-beta.2",
12
+ "@praxisui/rich-content": "^9.0.0-beta.2",
13
+ "@praxisui/settings-panel": "^9.0.0-beta.2",
14
+ "@praxisui/list": "^9.0.0-beta.2",
15
+ "@praxisui/files-upload": "^9.0.0-beta.2",
16
+ "@praxisui/page-builder": "^9.0.0-beta.2",
17
17
  "@angular/forms": "^21.0.0",
18
18
  "@angular/router": "^21.0.0",
19
- "@praxisui/ai": "^9.0.0-beta.0",
19
+ "@praxisui/ai": "^9.0.0-beta.2",
20
20
  "rxjs": "~7.8.0"
21
21
  },
22
22
  "dependencies": {
@@ -28,7 +28,7 @@
28
28
  },
29
29
  "repository": {
30
30
  "type": "git",
31
- "url": "https://github.com/codexrodrigues/praxis-ui-angular"
31
+ "url": "git+https://github.com/codexrodrigues/praxis-ui-angular.git"
32
32
  },
33
33
  "homepage": "https://praxisui.dev",
34
34
  "bugs": {