---
title: "Dynamic Fields Inventory"
slug: "dynamic-fields-inventory"
description: "Inventario governado dos controlTypes realmente registrados por default em @praxisui/dynamic-fields, com cobertura de metadata, JSON API e exemplos."
doc_type: "reference"
document_kind: "governance-reference"
component: "dynamic-fields"
category: "components"
audience:
  - "frontend"
  - "architect"
  - "platform-team"
level: "advanced"
status: "active"
owner: "praxis-ui"
tags:
  - "dynamic-fields"
  - "inventory"
  - "controlType"
  - "runtime"
order: 33
icon: "inventory_2"
toc: true
sidebar: true
search_boost: 0.95
reading_time: 18
estimated_setup_time: 20
version: "1.0"
related_docs:
  - "dynamic-fields-overview"
  - "dynamic-fields-field-catalog"
  - "dynamic-fields-field-selection-guide"
  - "dynamic-fields-host-custom-field-guide"
  - "dynamic-fields-host-custom-field-troubleshooting"
  - "dynamic-fields-inline-filter-catalog"
  - "dynamic-fields-inline-components-guide"
keywords:
  - "component registry"
  - "registered control types"
  - "metadata coverage"
  - "json api coverage"
last_updated: "2026-03-26"
---

# Dynamic Fields Inventory

## Source of truth

Este inventario foi montado a partir do runtime real:

- `projects/praxis-dynamic-fields/src/lib/services/component-registry/component-registry.service.ts`
- `projects/praxis-dynamic-fields/src/lib/providers.ts`
- `projects/praxis-core/src/lib/utils/inline-filter-controls.util.ts`

Regras deste documento:

- lista apenas `controlType` efetivamente registrados por default;
- separa controles de formulario comuns de controles inline especializados;
- trata aliases/compatibilidade em trilha separada para nao confundir escolha de novos contratos.

## Runtime inventory vs published catalog

Este documento continua sendo a auditoria `runtime-first` da lib. Ele existe para responder:

- o que esta realmente registrado por default;
- quais aliases de compatibilidade ainda existem;
- qual e a cobertura de metadata, JSON API e exemplos.

Para consumo por hosts, landing page e playgrounds oficiais, a superficie canonica agora e o catalogo exportado pela propria lib em `src/lib/catalog/dynamic-fields-playground.catalog.ts`, reexportado pelo `public-api`.

Regra editorial:

- `inventory`: prova o runtime real;
- `catalog`: organiza descoberta, snippets, estados, `interactionPattern`, semantica de `icon` e links oficiais para consumidores;
- `docs markdown`: governam a narrativa e a referencia, mas nao dirigem o preview runtime.

Quando houver diferenca entre uma necessidade de UX de descoberta e a listagem deste inventario:

- o ajuste deve nascer no catalogo exportado da lib, nao em listas manuais do host;
- este inventario continua focado em registro, cobertura e auditoria de runtime;
- hosts oficiais devem projetar menus, vitrines e cues a partir do catalogo, nao desta tabela runtime-first.

## Coverage legend

- `metadata`: existe arquivo `*.metadata.ts` no componente.
- `json-api`: existe arquivo `*.json-api.md` no componente.
- `README`: aparece textualmente no `README.md` da lib.
- `examples`: aparece textualmente no `USAGE-EXAMPLES.md`.

## A. Primary form controls

| Familia | controlType | Angular component | metadata | json-api | README | examples | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- |
| texto | `input` | `TextInputComponent` | `components/text-input/text-input.metadata.ts` | `components/text-input/pdx-text-input.json-api.md` | yes | yes | texto livre canônico |
| texto | `email` | `EmailInputComponent` | `components/email-input/email-input.metadata.ts` | `components/email-input/pdx-email-input.json-api.md` | yes | yes | email especializado |
| texto | `password` | `PasswordInputComponent` | `components/password-input/password-input.metadata.ts` | `components/password-input/pdx-password-input.json-api.md` | yes | yes | senha |
| texto | `textarea` | `MaterialTextareaComponent` | `components/material-textarea/material-textarea.metadata.ts` | `components/material-textarea/pdx-material-textarea.json-api.md` | yes | yes | texto longo |
| texto | `search` | `SearchInputComponent` | `components/search-input/search-input.metadata.ts` | `components/search-input/pdx-search-input.json-api.md` | yes | yes | busca textual |
| texto | `phone` | `PhoneInputComponent` | `components/phone-input/phone-input.metadata.ts` | `components/phone-input/pdx-phone-input.json-api.md` | no | yes | telefone |
| texto | `url` | `UrlInputComponent` | `components/url-input/url-input.metadata.ts` | `components/url-input/pdx-url-input.json-api.md` | no | no | URL |
| texto | `cpfCnpjInput` | `MaterialCpfCnpjInputComponent` | `components/material-cpf-cnpj-input/material-cpf-cnpj-input.metadata.ts` | `components/material-cpf-cnpj-input/pdx-material-cpf-cnpj-input.json-api.md` | no | no | documento BR |
| numero/moeda/range | `numericTextBox` | `NumberInputComponent` | `components/number-input/number-input.metadata.ts` | `components/number-input/pdx-number-input.json-api.md` | no | no | numero canônico |
| numero/moeda/range | `currency` | `MaterialCurrencyComponent` | `components/material-currency/material-currency.metadata.ts` | `components/material-currency/pdx-material-currency.json-api.md` | yes | no | moeda |
| numero/moeda/range | `slider` | `MaterialSliderComponent` | `components/material-slider/material-slider.metadata.ts` | `components/material-slider/pdx-material-slider.json-api.md` | yes | no | valor unico em faixa |
| numero/moeda/range | `rangeSlider` | `PdxMaterialRangeSliderComponent` | `components/material-range-slider/material-range-slider.metadata.ts` | `components/material-range-slider/pdx-material-range-slider.json-api.md` | no | no | faixa simples ou dupla |
| numero/moeda/range | `priceRange` | `MaterialPriceRangeComponent` | `components/material-price-range/material-price-range.metadata.ts` | `components/material-price-range/pdx-material-price-range.json-api.md` | no | no | faixa monetaria |
| numero/moeda/range | `rating` | `MaterialRatingComponent` | `components/material-rating/material-rating.metadata.ts` | `components/material-rating/pdx-material-rating.json-api.md` | yes | yes | pontuacao visual |
| data e tempo | `dateInput` | `DateInputComponent` | `components/date-input/date-input.metadata.ts` | `components/date-input/pdx-date-input.json-api.md` | no | no | input de data nativo |
| data e tempo | `date` | `MaterialDatepickerComponent` | `components/material-datepicker/material-datepicker.metadata.ts` | `components/material-datepicker/pdx-material-datepicker.json-api.md` | yes | yes | datepicker Material |
| data e tempo | `dateRange` | `MaterialDateRangeComponent` | `components/material-date-range/material-date-range.metadata.ts` | `components/material-date-range/pdx-material-date-range.json-api.md` | no | yes | intervalo de datas |
| data e tempo | `dateTimeLocal` | `DatetimeLocalInputComponent` | `components/datetime-local-input/datetime-local-input.metadata.ts` | `components/datetime-local-input/pdx-datetime-local-input.json-api.md` | no | no | data/hora local |
| data e tempo | `month` | `MonthInputComponent` | `components/month-input/month-input.metadata.ts` | `components/month-input/pdx-month-input.json-api.md` | no | yes | mes/ano |
| data e tempo | `time` | `TimeInputComponent` | `components/time-input/time-input.metadata.ts` | `components/time-input/pdx-time-input.json-api.md` | yes | yes | hora simples |
| data e tempo | `timePicker` | `MaterialTimepickerComponent` | `components/material-timepicker/material-timepicker.metadata.ts` | `components/material-timepicker/pdx-material-timepicker.json-api.md` | yes | yes | seletor de horario |
| data e tempo | `timeRange` | `PdxMaterialTimeRangeComponent` | `components/pdx-material-time-range/pdx-material-time-range.metadata.ts` | `components/pdx-material-time-range/pdx-material-time-range.json-api.md` | no | no | intervalo de horario |
| data e tempo | `week` | `WeekInputComponent` | `components/week-input/week-input.metadata.ts` | `components/week-input/pdx-week-input.json-api.md` | no | no | semana ISO |
| data e tempo | `year` | `PdxYearInputComponent` | `components/pdx-year-input/pdx-year-input.metadata.ts` | `components/pdx-year-input/pdx-year-input.json-api.md` | no | yes | ano |
| selecao | `select` | `MaterialSelectComponent` | `components/material-select/material-select.metadata.ts` | `components/material-select/pdx-material-select.json-api.md` | yes | yes | lista local/remota |
| selecao | `searchable-select` | `MaterialSearchableSelectComponent` | `components/material-searchable-select/material-searchable-select.metadata.ts` | `components/material-searchable-select/pdx-material-searchable-select.json-api.md` | no | yes | select com busca |
| selecao | `async-select` | `MaterialAsyncSelectComponent` | `components/material-async-select/material-async-select.metadata.ts` | `components/material-async-select/pdx-material-async-select.json-api.md` | no | yes | select remoto |
| selecao | `entityLookup` | `InlineEntityLookupComponent` | `editorial/wave1/entity-lookup.editorial.ts` | `components/inline-entity-lookup/pdx-inline-entity-lookup.json-api.md` | no | no | lookup corporativo para `RESOURCE_ENTITY`, reidratacao e politica de selecao |
| selecao | `autoComplete` | `MaterialAutocompleteComponent` | `components/material-autocomplete/material-autocomplete.metadata.ts` | `components/material-autocomplete/pdx-material-autocomplete.json-api.md` | yes | yes | autocomplete |
| selecao | `multiSelect` | `MaterialMultiSelectComponent` | `components/material-multi-select/material-multi-select.metadata.ts` | `components/material-multi-select/pdx-material-multi-select.json-api.md` | no | yes | multipla selecao |
| arvores/listas | `multiSelectTree` | `MaterialMultiSelectTreeComponent` | `components/material-multi-select-tree/material-multi-select-tree.metadata.ts` | `components/material-multi-select-tree/pdx-material-multi-select-tree.json-api.md` | no | no | arvore multipla |
| arvores/listas | `treeSelect` | `MaterialTreeSelectComponent` | `components/material-tree-select/material-tree-select.metadata.ts` | `components/material-tree-select/pdx-material-tree-select.json-api.md` | no | no | arvore simples |
| arvores/listas | `array` | `EditableCollectionComponent` | `editorial/wave1/editable-collection.editorial.ts` | n/a | no | no | colecao repetivel com `FormArray` e subcampos metadata-driven |
| arvores/listas | `selectionList` | `MaterialSelectionListComponent` | `components/material-selection-list/material-selection-list.metadata.ts` | `components/material-selection-list/pdx-material-selection-list.json-api.md` | no | yes | lista de opcoes; runtime basico funcional, mas `searchable` e `selectAll` ainda nao estao completos na superficie do componente |
| arvores/listas | `transferList` | `MaterialTransferListComponent` | `components/material-transfer-list/material-transfer-list.metadata.ts` | `components/material-transfer-list/pdx-material-transfer-list.json-api.md` | no | no | mover entre listas |
| arvores/listas | `chipInput` | `MaterialChipsComponent` | `components/material-chips/material-chips.metadata.ts` | `components/material-chips/pdx-material-chips.json-api.md` | no | no | entrada em chips |
| arvores/listas | `chipList` | `MaterialChipsComponent` | `components/material-chips/material-chips.metadata.ts` | `components/material-chips/pdx-material-chips.json-api.md` | no | no | lista de chips |
| toggle/choice | `checkbox` | `MaterialCheckboxGroupComponent` | `components/material-checkbox-group/material-checkbox-group.metadata.ts` | `components/material-checkbox-group/pdx-material-checkbox-group.json-api.md` | yes | yes | grupo de checkboxes |
| toggle/choice | `radio` | `MaterialRadioGroupComponent` | `components/material-radio-group/material-radio-group.metadata.ts` | `components/material-radio-group/pdx-material-radio-group.json-api.md` | yes | yes | grupo de radio |
| toggle/choice | `toggle` | `MaterialSlideToggleComponent` | `components/material-slide-toggle/material-slide-toggle.metadata.ts` | `components/material-slide-toggle/pdx-material-slide-toggle.json-api.md` | yes | no | booleano on/off |
| toggle/choice | `buttonToggle` | `MaterialButtonToggleComponent` | `components/material-button-toggle/material-button-toggle.metadata.ts` | `components/material-button-toggle/pdx-material-button-toggle.json-api.md` | no | no | grupo segmentado |
| upload | `upload` | `MaterialFileUploadComponent` | `components/material-file-upload/material-file-upload.metadata.ts` | `components/material-file-upload/pdx-material-file-upload.json-api.md` | yes | no | upload |
| cor | `color` | `ColorInputComponent` | `components/color-input/color-input.metadata.ts` | `components/color-input/pdx-color-input.json-api.md` | yes | yes | input textual/cor |
| cor | `colorPicker` | `PdxColorPickerComponent` | `components/color-picker/pdx-color-picker.metadata.ts` | `components/color-picker/pdx-color-picker.json-api.md` | yes | no | picker avançado |
| visual/acao | `avatar` | `MaterialAvatarComponent` | `components/material-avatar/material-avatar.metadata.ts` | `components/material-avatar/pdx-material-avatar.json-api.md` | yes | no | representacao visual |
| visual/acao | `button` | `MaterialButtonComponent` | `components/material-button/material-button.metadata.ts` | `components/material-button/pdx-material-button.json-api.md` | yes | yes | acao nao-CVA |
| visual/acao | `cronBuilder` | `PdxCronBuilderComponent` | n/a (lib externa) | n/a (lib externa) | no | no | depende de `@praxisui/cron-builder` |

## B. Specialized inline filter controls

Estes `controlType` sao registrados por default no mesmo registry, mas pertencem a uma trilha especializada de filtro inline. Eles nao devem ser apresentados como escolha padrao para formularios corporativos comuns.
As colunas de implementacao e metadata abaixo descrevem artefatos internos co-localizados ao `controlType`; caminhos fisicos e nomes historicos do workspace nao fazem parte do contrato recomendado.

| Familia | controlType | implementacao Angular | metadata | json-api | README | examples | Notes |
| --- | --- | --- | --- | --- | --- | --- | --- |
| inline de filtro | `inlineSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | select compacto |
| inline de filtro | `inlineSearchableSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | select com busca |
| inline de filtro | `inlineAsyncSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | select remoto |
| inline de filtro | `inlineEntityLookup` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | lookup de entidade |
| inline de filtro | `inlineAutocomplete` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | autocomplete compacto |
| inline de filtro | `inlineNumber` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | numero compacto |
| inline de filtro | `inlineCurrency` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | moeda compacta |
| inline de filtro | `inlineCurrencyRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | range monetario |
| inline de filtro | `inlineMultiSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | multipla selecao |
| inline de filtro | `inlineInput` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | texto compacto |
| inline de filtro | `inlinePhone` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | telefone compacto |
| inline de filtro | `inlineToggle` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | toggle compacto |
| inline de filtro | `inlineRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | slider compacto |
| inline de filtro | `inlineDate` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | date inline |
| inline de filtro | `inlineDateRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | date range inline |
| inline de filtro | `inlineTime` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | time inline |
| inline de filtro | `inlineTimeRange` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | time range inline |
| inline de filtro | `inlineTreeSelect` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | tree select inline |
| inline de filtro | `inlineRating` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | yes | yes | rating especializado |
| inline de filtro | `inlineDistanceRadius` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | distancia/raio |
| inline de filtro | `inlinePipelineStatus` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | status de pipeline |
| inline de filtro | `inlineScorePriority` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | score/prioridade |
| inline de filtro | `inlineRelativePeriod` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | periodo relativo |
| inline de filtro | `inlineSentiment` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | sentimento |
| inline de filtro | `inlineColorLabel` | `registrada por default no registry inline` | `metadata co-localizada ao controlType` | `co-localizado ao metadata (*.json-api.md)` | no | no | etiquetas por cor |

## C. Preferred Published Control Types

Estes valores existem no runtime, mas os contratos novos devem seguir a coluna `prefer`.

| Registered runtime value | Routed component | Prefer in new contracts | Notes |
| --- | --- | --- | --- |
| `dateTime` | `DatetimeLocalInputComponent` | `dateTimeLocal` | manter `dateTimeLocal` como nome publicado |
| `dateTimeRange` | `MaterialDateRangeComponent` | `dateRange` | reutiliza date range |
| `treeView` | `MaterialTreeSelectComponent` | `treeSelect` | publicar `treeSelect` |

## D. Coverage findings

### Strong coverage

- maioria dos fields principais possui `metadata` + `json-api`;
- inline filters especializados possuem cobertura estrutural forte em `metadata` + `json-api`;
- runtime de extensao do host esta documentado em `hot-metadata-updates.md` e no README.

### Runtime present but documentation still shallow

- `cronBuilder`: registrado por default, mas a documentacao detalhada vive na lib externa;
- `entityLookup`: contrato de formulario principal registrado e descobrivel, reutilizando a implementacao inline enquanto a documentacao detalhada permanece no JSON API de `inline-entity-lookup`;
- `array`: contrato de colecao repetivel registrado e descobrivel; a documentacao detalhada ainda deve ser aprofundada em JSON API proprio do `EditableCollectionComponent`;
- `dateInput`, `dateTimeLocal`, `numericTextBox`, `priceRange`, `rangeSlider`, `timeRange`, `multiSelectTree`, `treeSelect`, `transferList`, `buttonToggle`, `chipInput`, `chipList`: possuem runtime e arquivos de componente, mas aparecem pouco no README/USAGE examples;
- varios inline filters nao aparecem no README ou no `USAGE-EXAMPLES.md`, embora tenham metadata e JSON API.

### Governance decision

- `field catalog`: cobre os fields de formulario comuns e os componentes visuais/acao usados pelo runtime principal;
- `inline filter catalog`: fica separado para nao poluir a narrativa de formularios comuns;
- `inventory`: permanece como documento de auditoria do runtime real;
- `playable catalog exportado`: e a superficie de consumo recomendada para landing page, playground e outros hosts oficiais.
- `interactionPattern` e `icon`: fazem parte da semantica de descoberta do catalogo exportado, nao da prova de registro deste inventario.
