@praxisui/list 9.0.0-beta.8 → 9.0.0-beta.81

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/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@praxisui/list",
3
- "version": "9.0.0-beta.8",
3
+ "version": "9.0.0-beta.81",
4
4
  "description": "List components and helpers for Praxis UI.",
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
- "@praxisui/dynamic-fields": "^9.0.0-beta.8",
9
+ "@praxisui/dynamic-fields": "^9.0.0-beta.81",
10
10
  "rxjs": ">=7 <9",
11
11
  "@angular/forms": "^21.0.0",
12
12
  "@angular/router": "^21.0.0",
13
- "@praxisui/ai": "^9.0.0-beta.8",
14
- "@praxisui/core": "^9.0.0-beta.8",
15
- "@praxisui/rich-content": "^9.0.0-beta.8",
16
- "@praxisui/settings-panel": "^9.0.0-beta.8"
13
+ "@praxisui/ai": "^9.0.0-beta.81",
14
+ "@praxisui/core": "^9.0.0-beta.81",
15
+ "@praxisui/rich-content": "^9.0.0-beta.81",
16
+ "@praxisui/settings-panel": "^9.0.0-beta.81"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0",
@@ -27,6 +27,7 @@
27
27
  "keywords": [
28
28
  "angular",
29
29
  "praxisui",
30
+ "praxis",
30
31
  "list",
31
32
  "cards",
32
33
  "selection",
@@ -42,7 +43,10 @@
42
43
  ".": {
43
44
  "types": "./types/praxisui-list.d.ts",
44
45
  "default": "./fesm2022/praxisui-list.mjs"
46
+ },
47
+ "./ai/component-registry.json": {
48
+ "default": "./ai/component-registry.json"
45
49
  }
46
50
  },
47
51
  "type": "module"
48
- }
52
+ }
@@ -302,7 +302,7 @@ A integracao com host ocorre por `SettingsValueProvider`:
302
302
  | `dataSource.resourcePath` | Active | Campo principal para schema remoto. |
303
303
  | `dataSource.query` | Active | JSON editavel com validacao sintatica. |
304
304
  | `dataSource.sort` | Active | Gerado por `sortField/sortDir` e por UI sort rows. |
305
- | `dataSource.data` | Declared-only | Nao possui editor dedicado para dataset local. |
305
+ | `dataSource.data` | Active | Preservado no objeto; editor mostra resumo, colunas de amostra e aviso de precedencia sobre `resourcePath`. |
306
306
  | `layout.variant` | Active | `list/cards/tiles`. |
307
307
  | `layout.model` | Active | `standard/media/hotel`. |
308
308
  | `layout.lines` | Active | `1/2/3`. |
@@ -335,6 +335,7 @@ A integracao com host ocorre por `SettingsValueProvider`:
335
335
  | `actions[].id/icon/label/color/kind/buttonVariant/showIf/placement` | Active | Authoring completo de acoes por item; `showIf` usa Json Logic serializavel e `placement` controla a regiao visual da acao. |
336
336
  | `actions[].globalAction/emitLocal/showLoading/confirmation` | Active | Suporte a acoes globais estruturadas, confirmacao para acoes locais e globais, loading por acao e emissao local opcional. |
337
337
  | `actions[].globalAction.payload/payloadExpr` | Active | `payload` estruturado e `payloadExpr` avancado sao editaveis; ao definir um deles, o editor remove o outro para manter semantica canonica de execucao. |
338
+ | `actions[].action/recordOpen` | Runtime-governed | Preservado no round-trip, mas nao editavel: Metadata/Config publicam a referencia minima e o runtime reconsulta a surface contextual. |
338
339
  | `actions[].emitPayload` | Declared-only | Preservado em JSON/config round-trip; nao aparece no editor visual de Ações porque nao altera o payload nativo da lista. |
339
340
  | `ui.showSearch/searchField/searchPlaceholder` | Active | Bloco de busca. |
340
341
  | `ui.showSort/sortOptions` | Active | Editor visual com deteccao de duplicatas. |
@@ -349,10 +350,10 @@ A integracao com host ocorre por `SettingsValueProvider`:
349
350
  | --- | --- | --- | --- |
350
351
  | `events.exportAction` | ja-suportado-so-ux | Campo visual no tab de eventos. | Manter coberto por spec focal de round-trip. |
351
352
  | `layout.rowLayout` | ja-suportado-so-ux | Editor guiado cobre ativacao, preset corporativo, tipo, colunas, largura, alinhamento, gap, CSS avancado e warnings inline para slots sem materializacao. | Evoluir depois com preview visual por slot. |
352
- | `export` | ja-suportado-so-ux | Editor guiado cobre habilitacao, formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao, campos incluidos e warning para campo inexistente quando o schema esta carregado. | Evoluir depois com preview do payload de exportacao. |
353
- | `interaction`/`expansion` | suportado-parcialmente | Editor guiado cobre interacao expansivel, secoes inline e rendering; `dataSource` remoto e `schemaContract` continuam JSON-only. | Evoluir fonte remota/schemaContract apenas com validacao de seguranca e prova runtime. |
353
+ | `export` | ja-suportado-so-ux | Editor guiado cobre habilitacao, formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao, campos incluidos, warning para campo inexistente quando o schema esta carregado e preview compacto de colunas/amostra. | Evoluir depois com preview fiel do payload final gerado pelo runtime. |
354
+ | `interaction`/`expansion` | suportado-parcialmente | Editor guiado cobre interacao expansivel, secoes inline, rendering e diagnostico de `dataSource`/`schemaContract` remotos preservados por JSON. | Evoluir fonte remota/schemaContract apenas com validacao de seguranca e prova runtime. |
354
355
  | `rules.itemStyles`/`rules.slotOverrides` | ja-suportado-so-ux | Editor guiado cobre condicao Json Logic, estilo de item, override de slot, template basico, ocultacao e primeira materializacao canonica `effects[0]`. | Evoluir depois com builder visual de Json Logic, preview por item e suporte multi-effect se o runtime passar a consumir mais de um efeito. |
355
- | `dataSource.data` | ja-suportado-mal-nomeado-ou-mal-materializado | Round-trip por JSON, sem editor visual de dataset local. | Manter JSON-only para datasets grandes; considerar import/preview separado se houver demanda operacional. |
356
+ | `dataSource.data` | ja-suportado-mal-nomeado-ou-mal-materializado | Round-trip por JSON com resumo visual, colunas de amostra e aviso de precedencia sobre `resourcePath`. | Manter JSON-only para datasets grandes; considerar import dedicado apenas se houver demanda operacional. |
356
357
 
357
358
  ### Validacao Estrutural
358
359
 
@@ -444,11 +445,11 @@ ref.saved$.subscribe((payload) => {
444
445
 
445
446
  ### Known limitations and pending investigation
446
447
 
447
- 1. Nao existe editor dedicado para `dataSource.data` (dataset local grande).
448
+ 1. Nao existe editor dedicado para alterar `dataSource.data` (dataset local grande); o editor mostra resumo, amostra e precedencia para evitar erro silencioso.
448
449
  2. `rules` possui editor guiado basico com `effects[0]`, mas ainda nao tem builder visual de Json Logic, preview de impacto por item ou authoring multi-effect. O runtime atualmente materializa o primeiro efeito valido.
449
450
  3. `layout.rowLayout` possui editor guiado com warnings inline para slots sem materializacao, mas ainda nao tem preview visual por slot.
450
- 4. `export` possui editor guiado com warning de `includeFields` desconhecido quando o schema esta carregado, mas ainda nao tem preview do payload final.
451
- 5. `expansion.dataSource` remoto e `expansion.schemaContract` permanecem JSON-only ate existir validacao visual e prova runtime especifica no componente.
451
+ 4. `export` possui editor guiado com warning de `includeFields` desconhecido e preview compacto de colunas/amostra, mas ainda nao tem preview fiel do payload final gerado pelo runtime.
452
+ 5. `expansion.dataSource` remoto e `expansion.schemaContract` permanecem JSON-only para authoring; o editor mostra diagnostico de seguranca e preservacao ate existir prova runtime especifica de carregamento remoto.
452
453
  6. O editor preserva em JSON/config campos declared-only que podem nao ter efeito no runtime final, mas nao deve promove-los como controles visuais ativos.
453
454
  7. `isDirty$` usa comparacao por snapshot JSON; mudancas de ordenacao de chaves/objetos podem gerar ruido em cenarios extremos.
454
455
  8. Conversao automatica de `globalAction.payload` string para JSON e heuristica (so quando formato parece objeto/array).
@@ -273,7 +273,7 @@ A maior parte das falhas opera em modo fail-open (persistência, inferência, co
273
273
  | Condition | Mode | Runtime behavior | Consumer impact |
274
274
  | --------------------------------- | --------- | ------------------------------------------------ | ---------------------------------- |
275
275
  | Falha em `loadConfig/saveConfig` | fail-open | ignora persistência e mantém config ativa | sem perda de renderização |
276
- | `showIf` inválido | fail-open | item/ação pode ser ocultado com warning | evita quebra de template |
276
+ | `showIf` invalido | fail-closed | item/acao e ocultado com warning | evita renderizacao indevida |
277
277
  | comando global não disponível | fail-open | ação global não executa; fluxo local continua | comportamento parcial, sem crash |
278
278
  | contrato de seleção inconsistente | fail-soft | adapter normaliza payload para formato suportado | pode reduzir fidelidade do payload |
279
279
 
@@ -687,6 +687,8 @@ Notas de UX/WCAG:
687
687
  | `actions[].buttonVariant` | Active | `stroked/raised/flat` |
688
688
  | `actions[].showIf` | Active | condição Json Logic avaliada no contexto `row` |
689
689
  | `actions[].emitPayload` | Declared-only | sem uso no payload de ações nativas; ações `rich-content` hospedadas podem emitir `payload?` próprio |
690
+ | `actions[].action` | Active | `surface.open` identifica a execução contextual governada quando acompanhada de `recordOpen` |
691
+ | `actions[].recordOpen` | Active | referência mínima `{ sourceIdentityField, target: { resourceKey, surfaceId } }`; o runtime reconsulta catálogo, item e `_links.surfaces` antes de materializar |
690
692
  | `actions[].globalAction` | Active | integra com `GlobalActionService.executeRef`; suporta `navigation.openRoute` para navegação interna canônica |
691
693
  | `actions[].globalAction.actionId` | Active | identificador canonico da acao global |
692
694
  | `actions[].globalAction.payload` | Active | template/JSON resolvido recursivamente, inclusive `item.id` em rotas internas |
@@ -700,9 +702,12 @@ Notas de UX/WCAG:
700
702
  Semantica de execucao:
701
703
 
702
704
  1. valida confirmacao (quando configurada);
703
- 2. executa acao global estruturada (se `globalAction` estiver presente), incluindo `navigation.openRoute` para abrir rotas internas com contexto do item;
704
- 3. remove loading;
705
- 4. emite `actionClick` conforme regra `emitLocal`.
705
+ 2. quando `action='surface.open'`, exige `recordOpen`, extrai somente o `sourceIdentityField` declarado, reconsulta o recurso e a surface contextual do principal corrente e falha fechado se qualquer identidade/availability divergir;
706
+ 3. fora desse fluxo, executa acao global estruturada (se `globalAction` estiver presente), incluindo `navigation.openRoute` para abrir rotas internas com contexto do item;
707
+ 4. remove loading;
708
+ 5. emite `actionClick` conforme regra `emitLocal`; uma intencao `recordOpen` nao cai em emissao local por default quando a resolucao falha.
709
+
710
+ `recordOpen` e materializacao governada de runtime e round-trip. O editor visual e o manifesto AI local nao authoram esse campo livremente; a fonte e a projection validada por Metadata/Config.
706
711
 
707
712
  #### UI, i18n, a11y e events
708
713
 
@@ -868,6 +873,8 @@ AI:
868
873
  | `actions[].buttonVariant` | Active | raised/flat/stroked |
869
874
  | `actions[].showIf` | Active | visibilidade |
870
875
  | `actions[].emitPayload` | Declared-only | sem efeito runtime |
876
+ | `actions[].action` | Active | `surface.open` contextual governado |
877
+ | `actions[].recordOpen` | Active | identidade mínima resolvida por catálogo e HATEOAS |
871
878
  | `actions[].globalAction` | Active | acao global estruturada |
872
879
  | `actions[].globalAction.actionId` | Active | identificador canonico da acao global |
873
880
  | `actions[].globalAction.payload` | Active | payload template/json |
@@ -6,7 +6,7 @@ import { MatSelectionListChange } from '@angular/material/list';
6
6
  import { MatPaginatorSelectConfig, PageEvent } from '@angular/material/paginator';
7
7
  import { FormGroup, FormControl } from '@angular/forms';
8
8
  import * as _praxisui_core from '@praxisui/core';
9
- import { PraxisExportFormat, PraxisExportScope, PraxisRuntimeConditionalEffectRule, JsonLogicExpression, RichContentDocument, GlobalActionRef, LocalizationConfig, AiCapability, PraxisDataQueryContext, RichBlockNode, RichBlockHostCapabilities, GlobalActionCatalogEntry, SurfaceOpenPayload, SettingsValueProvider as SettingsValueProvider$1, RichPresenterNode, RichComposeNode, ComponentDocMeta, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, ComponentAuthoringManifest } from '@praxisui/core';
9
+ import { PraxisExportFormat, PraxisExportScope, PraxisRuntimeConditionalEffectRule, JsonLogicExpression, RichContentDocument, ResourceRecordOpenRef, GlobalActionRef, LocalizationConfig, AiCapability, PraxisDataQueryContext, RichBlockNode, RichBlockHostCapabilities, GlobalActionCatalogEntry, SurfaceOpenPayload, SettingsValueProvider as SettingsValueProvider$1, RichPresenterNode, RichComposeNode, ComponentDocMeta, AiCapabilityCategory, AiCapabilityCatalog, AiValueKind, ComponentAuthoringManifest } from '@praxisui/core';
10
10
  import { BaseAiAdapter, AiResponseCompileResult, PatchResult, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
11
11
  import { SettingsValueProvider } from '@praxisui/settings-panel';
12
12
  import * as _praxisui_list from '@praxisui/list';
@@ -294,6 +294,8 @@ interface PraxisListConfig {
294
294
  buttonVariant?: 'stroked' | 'raised' | 'flat';
295
295
  showIf?: JsonLogicExpression | null;
296
296
  emitPayload?: 'item' | 'id' | 'value';
297
+ action?: 'surface.open';
298
+ recordOpen?: ResourceRecordOpenRef;
297
299
  globalAction?: GlobalActionRef;
298
300
  emitLocal?: boolean;
299
301
  showLoading?: boolean;
@@ -521,6 +523,7 @@ declare class PraxisList implements OnInit, OnChanges, AfterViewInit, OnDestroy
521
523
  private readonly jsonLogic;
522
524
  private readonly i18n;
523
525
  private readonly collectionExport;
526
+ private readonly recordOpenResolver;
524
527
  private readonly paginatorIntl;
525
528
  private readonly snackBar;
526
529
  private readonly aiApi;
@@ -652,6 +655,8 @@ declare class PraxisList implements OnInit, OnChanges, AfterViewInit, OnDestroy
652
655
  buttonVariant?: "stroked" | "raised" | "flat";
653
656
  showIf?: JsonLogicExpression | null;
654
657
  emitPayload?: "item" | "id" | "value";
658
+ action?: "surface.open";
659
+ recordOpen?: ResourceRecordOpenRef;
655
660
  globalAction?: GlobalActionRef;
656
661
  emitLocal?: boolean;
657
662
  showLoading?: boolean;
@@ -673,6 +678,8 @@ declare class PraxisList implements OnInit, OnChanges, AfterViewInit, OnDestroy
673
678
  emptyStateLabel(): string;
674
679
  isResourceConnectionMissing(): boolean;
675
680
  onActionClick(ev: MouseEvent, actionId: string, item: any, index: number): Promise<void>;
681
+ private executeRecordOpenAction;
682
+ private reportRecordOpenFailure;
676
683
  private resolveActionPayload;
677
684
  private resolveTemplate;
678
685
  private isDeferredTemplateExpressionKey;
@@ -1179,6 +1186,7 @@ type SkinPreset = Exclude<SkinType, 'custom'>;
1179
1186
  type RowLayoutColumn = NonNullable<NonNullable<NonNullable<PraxisListConfig['layout']>['rowLayout']>['columns']>[number];
1180
1187
  type RowLayoutAlign = NonNullable<NonNullable<NonNullable<PraxisListConfig['layout']>['rowLayout']>['align']>;
1181
1188
  type ListExpansionRendering = NonNullable<NonNullable<PraxisListConfig['expansion']>['rendering']>;
1189
+ type ExportPreviewRow = Record<string, string>;
1182
1190
  declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1183
1191
  config: PraxisListConfig;
1184
1192
  listId?: string;
@@ -1385,6 +1393,11 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1385
1393
  private resetVisualMappingState;
1386
1394
  private setupSchemaWatcher;
1387
1395
  onResourcePathChange(value: string): void;
1396
+ getLocalDataRows(): any[];
1397
+ getLocalDataSummary(): string;
1398
+ getLocalDataPrecedenceWarning(): string;
1399
+ getLocalDataColumns(): string[];
1400
+ getLocalDataPreviewRows(): Array<Record<string, string>>;
1388
1401
  applySkinPreset(preset: SkinPreset): void;
1389
1402
  applyLayoutPreset(preset: 'tiles-modern'): void;
1390
1403
  private defaultPresetLocale;
@@ -1537,9 +1550,14 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1537
1550
  onExportApplyFormattingChange(value: boolean): void;
1538
1551
  onExportMaxRowsChange(value: any): void;
1539
1552
  getExportIncludeFieldsText(): string;
1553
+ getExportPreviewColumns(): string[];
1554
+ getExportPreviewRows(): ExportPreviewRow[];
1555
+ getExportPreviewSummary(): string;
1540
1556
  getExportIncludeFieldsWarning(): string;
1541
1557
  getExportUnknownIncludeFields(): string[];
1542
1558
  onExportIncludeFieldsTextChange(value: string): void;
1559
+ private readExportPreviewValue;
1560
+ private formatExportPreviewValue;
1543
1561
  private ensureExportDraft;
1544
1562
  expansionEnabled(): boolean;
1545
1563
  onExpansionEnabledChange(enabled: boolean): void;
@@ -1552,6 +1570,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1552
1570
  getExpansionColumnsModel(): NonNullable<ListExpansionRendering['columns']>;
1553
1571
  getExpansionGapModel(): string;
1554
1572
  getExpansionPaddingModel(): string;
1573
+ getExpansionRemoteSummary(): string;
1574
+ getExpansionRemoteWarnings(): string[];
1555
1575
  onExpansionRenderingChanged(prop: 'shell' | 'columns' | 'gap' | 'padding', value: string | number): void;
1556
1576
  addExpansionSection(): void;
1557
1577
  removeExpansionSection(index: number): void;
@@ -2036,6 +2056,8 @@ declare class PraxisListDocPageComponent {
2036
2056
  buttonVariant?: "stroked" | "raised" | "flat";
2037
2057
  showIf?: _praxisui_core.JsonLogicExpression | null;
2038
2058
  emitPayload?: "item" | "id" | "value";
2059
+ action?: "surface.open";
2060
+ recordOpen?: _praxisui_core.ResourceRecordOpenRef;
2039
2061
  globalAction?: _praxisui_core.GlobalActionRef;
2040
2062
  emitLocal?: boolean;
2041
2063
  showLoading?: boolean;
@@ -2106,6 +2128,7 @@ declare const PRAXIS_LIST_EN_US: {
2106
2128
  readonly itemDetails: "Item details";
2107
2129
  readonly emptyState: "No items available";
2108
2130
  readonly emptyStateConnectResource: "Connect this list to a resource to load items.";
2131
+ readonly recordOpenUnavailable: "Unable to open details for this item.";
2109
2132
  readonly 'pagination.itemsPerPage': "Items per page:";
2110
2133
  readonly 'pagination.nextPage': "Next page";
2111
2134
  readonly 'pagination.previousPage': "Previous page";
@@ -2212,7 +2235,7 @@ declare const PRAXIS_LIST_EN_US: {
2212
2235
  readonly 'Field to search': "Field to search";
2213
2236
  readonly 'Search placeholder': "Search placeholder";
2214
2237
  readonly 'e.g.: Search by title': "e.g.: Search by title";
2215
- readonly 'Sorting options (label \u00E2\u2020\u2019 field+direction)': "Sorting options (label → field+direction)";
2238
+ readonly 'Sorting options (label \u2192 field+direction)': "Sorting options (label field+direction)";
2216
2239
  readonly 'Add option': "Add option";
2217
2240
  readonly Field: "Field";
2218
2241
  readonly 'Duplicate option (field+direction)': "Duplicate option (field+direction)";
@@ -2325,6 +2348,7 @@ declare const PRAXIS_LIST_EN_US: {
2325
2348
  readonly Date: "Date";
2326
2349
  readonly 'Default text': "Default text";
2327
2350
  readonly 'Default chip': "Default chip";
2351
+ readonly 'No items available': "No items available";
2328
2352
  readonly 'Fields:': "Fields:";
2329
2353
  readonly ' (Required)': " (Required)";
2330
2354
  readonly 'Example available': "Example available";
@@ -2333,6 +2357,129 @@ declare const PRAXIS_LIST_EN_US: {
2333
2357
  readonly 'Do you want to proceed with this action?': "Do you want to proceed with this action?";
2334
2358
  readonly Attention: "Attention";
2335
2359
  readonly 'CSS class example (add this to your global styles):': "CSS class example (add this to your global styles):";
2360
+ readonly 'No local dataset configured.': "No local dataset configured.";
2361
+ readonly '{{count}} local rows \u00B7 {{columns}} columns': "{{count}} local rows · {{columns}} columns";
2362
+ readonly 'Local data is present and will take precedence over the remote resource.': "Local data is present and will take precedence over the remote resource.";
2363
+ readonly Rules: "Rules";
2364
+ readonly Expansion: "Expansion";
2365
+ readonly Export: "Export";
2366
+ readonly 'Row layout': "Row layout";
2367
+ readonly 'Enable row layout': "Enable row layout";
2368
+ readonly 'Stable columns for list rows': "Stable columns for list rows";
2369
+ readonly 'Corporate row preset': "Corporate row preset";
2370
+ readonly 'Name + role': "Name + role";
2371
+ readonly Salary: "Salary";
2372
+ readonly 'Status icon': "Status icon";
2373
+ readonly Shell: "Shell";
2374
+ readonly 'Control placement': "Control placement";
2375
+ readonly 'Actions column': "Actions column";
2376
+ readonly Trailing: "Trailing";
2377
+ readonly 'Layout type': "Layout type";
2378
+ readonly Flex: "Flex";
2379
+ readonly Align: "Align";
2380
+ readonly 'Vertical alignment': "Vertical alignment";
2381
+ readonly 'Add column': "Add column";
2382
+ readonly Slot: "Slot";
2383
+ readonly Width: "Width";
2384
+ readonly 'Min width': "Min width";
2385
+ readonly 'Max width': "Max width";
2386
+ readonly Justify: "Justify";
2387
+ readonly 'Move column left': "Move column left";
2388
+ readonly 'Move column right': "Move column right";
2389
+ readonly 'Remove column': "Remove column";
2390
+ readonly 'Select a slot for this column.': "Select a slot for this column.";
2391
+ readonly 'This slot is not supported by the list runtime.': "This slot is not supported by the list runtime.";
2392
+ readonly 'This slot has no template or conditional override yet.': "This slot has no template or conditional override yet.";
2393
+ readonly 'Enable expansion': "Enable expansion";
2394
+ readonly Sections: "Sections";
2395
+ readonly Details: "Details";
2396
+ readonly 'Inline details for list rows': "Inline details for list rows";
2397
+ readonly 'Add section': "Add section";
2398
+ readonly 'Move section up': "Move section up";
2399
+ readonly 'Move section down': "Move section down";
2400
+ readonly 'Remove section': "Remove section";
2401
+ readonly Id: "Id";
2402
+ readonly Name: "Name";
2403
+ readonly Placement: "Placement";
2404
+ readonly Trigger: "Trigger";
2405
+ readonly 'Items expression': "Items expression";
2406
+ readonly 'Expression (item.key)': "Expression (item.key)";
2407
+ readonly 'Empty label': "Empty label";
2408
+ readonly 'No details available': "No details available";
2409
+ readonly 'Inline expansion sections only.': "Inline expansion sections only.";
2410
+ readonly 'Remote expansion config preserved \u00B7 {{mode}} \u00B7 {{nodes}} allowed node types': "Remote expansion config preserved · {{mode}} · {{nodes}} allowed node types";
2411
+ readonly 'resourcePath mode should declare resourceAllowList before remote detail loading is enabled.': "resourcePath mode should declare resourceAllowList before remote detail loading is enabled.";
2412
+ readonly 'Remote expansion should declare schemaContract for fail-closed rendering.': "Remote expansion should declare schemaContract for fail-closed rendering.";
2413
+ readonly 'schemaContract has no allowedNodes; remote sections may render fail-closed.': "schemaContract has no allowedNodes; remote sections may render fail-closed.";
2414
+ readonly 'The visual editor currently authors inline sections; remote expansion details remain JSON-governed.': "The visual editor currently authors inline sections; remote expansion details remain JSON-governed.";
2415
+ readonly 'Enable export': "Enable export";
2416
+ readonly Formats: "Formats";
2417
+ readonly Scope: "Scope";
2418
+ readonly 'Default file name': "Default file name";
2419
+ readonly 'Max rows': "Max rows";
2420
+ readonly 'Include headers': "Include headers";
2421
+ readonly 'Included fields': "Included fields";
2422
+ readonly 'Empty means all fields': "Empty means all fields";
2423
+ readonly 'Formats, scope and file options': "Formats, scope and file options";
2424
+ readonly 'Export preview': "Export preview";
2425
+ readonly 'No fields available for preview yet.': "No fields available for preview yet.";
2426
+ readonly '{{formats}} \u00B7 {{scope}} \u00B7 {{columns}} columns{{limit}}': "{{formats}} · {{scope}} · {{columns}} columns{{limit}}";
2427
+ readonly 'max {{count}} rows': "max {{count}} rows";
2428
+ readonly 'Unknown export fields: {{fields}}': "Unknown export fields: {{fields}}";
2429
+ readonly Columns: "Columns";
2430
+ readonly Presets: "Presets";
2431
+ readonly 'Single field': "Single field";
2432
+ readonly 'Card with media': "Card with media";
2433
+ readonly 'Tile with media': "Tile with media";
2434
+ readonly 'Media on the left': "Media on the left";
2435
+ readonly 'Hotel tile': "Hotel tile";
2436
+ readonly 'Hotel (large media)': "Hotel (large media)";
2437
+ readonly 'Standard tile': "Standard tile";
2438
+ readonly Hotel: "Hotel";
2439
+ readonly Subtitle: "Subtitle";
2440
+ readonly 'Short date': "Short date";
2441
+ readonly 'Apply formatting': "Apply formatting";
2442
+ readonly 'Formatting and style': "Formatting and style";
2443
+ readonly 'CSS class': "CSS class";
2444
+ readonly Border: "Border";
2445
+ readonly Background: "Background";
2446
+ readonly Padding: "Padding";
2447
+ readonly Gap: "Gap";
2448
+ readonly Angle: "Angle";
2449
+ readonly 'Gradient from': "Gradient from";
2450
+ readonly 'Gradient to': "Gradient to";
2451
+ readonly Custom: "Custom";
2452
+ readonly 'Show when (Json Logic)': "Show when (Json Logic)";
2453
+ readonly 'Condition (Json Logic)': "Condition (Json Logic)";
2454
+ readonly 'Use a Json Logic object, for example {"==":[{"var":"row.status"},"done"]}.': "Use a Json Logic object, for example {\"==\":[{\"var\":\"row.status\"},\"done\"]}.";
2455
+ readonly 'Item style rules': "Item style rules";
2456
+ readonly 'Apply class, style, border or background when Json Logic matches.': "Apply class, style, border or background when Json Logic matches.";
2457
+ readonly 'Add item rule': "Add item rule";
2458
+ readonly 'Item rule': "Item rule";
2459
+ readonly 'Canonical effect': "Canonical effect";
2460
+ readonly 'Materialize the first effects[] entry used by the runtime.': "Materialize the first effects[] entry used by the runtime.";
2461
+ readonly 'Use direct fields': "Use direct fields";
2462
+ readonly 'Use effects[]': "Use effects[]";
2463
+ readonly 'Effect class': "Effect class";
2464
+ readonly 'Effect style': "Effect style";
2465
+ readonly 'Effect border': "Effect border";
2466
+ readonly 'Effect background': "Effect background";
2467
+ readonly 'Slot override rules': "Slot override rules";
2468
+ readonly 'Replace, decorate or hide a slot when Json Logic matches.': "Replace, decorate or hide a slot when Json Logic matches.";
2469
+ readonly 'Add slot rule': "Add slot rule";
2470
+ readonly 'Slot rule': "Slot rule";
2471
+ readonly 'Template type': "Template type";
2472
+ readonly 'Template expression': "Template expression";
2473
+ readonly 'Hide slot': "Hide slot";
2474
+ readonly 'Effect template type': "Effect template type";
2475
+ readonly 'Effect template expression': "Effect template expression";
2476
+ readonly 'Effect hides slot': "Effect hides slot";
2477
+ readonly 'Payload expression': "Payload expression";
2478
+ readonly 'Advanced escape hatch. When set, payload is resolved from this expression and no default item payload is injected.': "Advanced escape hatch. When set, payload is resolved from this expression and no default item payload is injected.";
2479
+ readonly 'e.g.: department': "e.g.: department";
2480
+ readonly 'e.g.: Most recent': "e.g.: Most recent";
2481
+ readonly 'Local columns': "Local columns";
2482
+ readonly 'Advanced row CSS': "Advanced row CSS";
2336
2483
  };
2337
2484
 
2338
2485
  declare const PRAXIS_LIST_I18N_NAMESPACE = "praxis-list";
@@ -2345,6 +2492,7 @@ declare const PRAXIS_LIST_PT_BR: {
2345
2492
  readonly itemDetails: "Detalhes do item";
2346
2493
  readonly emptyState: "Nenhum item disponível";
2347
2494
  readonly emptyStateConnectResource: "Conecte a lista a um recurso para carregar os itens.";
2495
+ readonly recordOpenUnavailable: "Não foi possível abrir os detalhes deste item.";
2348
2496
  readonly 'pagination.itemsPerPage': "Itens por página:";
2349
2497
  readonly 'pagination.nextPage': "Próxima página";
2350
2498
  readonly 'pagination.previousPage': "Página anterior";
@@ -2546,24 +2694,25 @@ declare const PRAXIS_LIST_PT_BR: {
2546
2694
  readonly 'Between groups': "Entre grupos";
2547
2695
  readonly All: "Todos";
2548
2696
  readonly 'Group by': "Agrupar por";
2549
- readonly Cards: "Cartões (Cards)";
2550
- readonly Tiles: "Blocos (Tiles)";
2551
- readonly 'Pill Soft': "Pílula Suave (Pill Soft)";
2697
+ readonly Cards: "Cartões";
2698
+ readonly Tiles: "Blocos";
2699
+ readonly 'Pill Soft': "Pílula suave";
2552
2700
  readonly 'Gradient Tile': "Bloco com degradê";
2553
- readonly Glass: "Vidro (Glass)";
2701
+ readonly Glass: "Vidro";
2554
2702
  readonly Elevated: "Elevado";
2555
2703
  readonly Outline: "Contorno";
2556
2704
  readonly Flat: "Plano";
2557
2705
  readonly Neumorphism: "Neumorfismo";
2558
2706
  readonly Text: "Texto";
2559
2707
  readonly Chip: "Chip";
2560
- readonly Rating: "Avaliação (Rating)";
2708
+ readonly Rating: "Avaliação";
2561
2709
  readonly Image: "Imagem";
2562
2710
  readonly HTML: "HTML";
2563
2711
  readonly Currency: "Moeda";
2564
2712
  readonly Date: "Data";
2565
2713
  readonly 'Default text': "Texto padrão";
2566
2714
  readonly 'Default chip': "Chip padrão";
2715
+ readonly 'No items available': "Nenhum item disponível";
2567
2716
  readonly 'Fields:': "Campos:";
2568
2717
  readonly ' (Required)': " (Obrigatório)";
2569
2718
  readonly 'Example available': "Exemplo disponível";
@@ -2572,6 +2721,129 @@ declare const PRAXIS_LIST_PT_BR: {
2572
2721
  readonly 'Do you want to proceed with this action?': "Deseja prosseguir com esta ação?";
2573
2722
  readonly Attention: "Atenção";
2574
2723
  readonly 'CSS class example (add this to your global styles):': "Exemplo de classe CSS (adicione isto aos seus estilos globais):";
2724
+ readonly 'No local dataset configured.': "Nenhum conjunto de dados local configurado.";
2725
+ readonly '{{count}} local rows \u00B7 {{columns}} columns': "{{count}} linhas locais · {{columns}} colunas";
2726
+ readonly 'Local data is present and will take precedence over the remote resource.': "Há dados locais configurados e eles terão precedência sobre o recurso remoto.";
2727
+ readonly Rules: "Regras";
2728
+ readonly Expansion: "Expansão";
2729
+ readonly Export: "Exportação";
2730
+ readonly 'Row layout': "Layout da linha";
2731
+ readonly 'Enable row layout': "Ativar layout da linha";
2732
+ readonly 'Stable columns for list rows': "Colunas estáveis para linhas da lista";
2733
+ readonly 'Corporate row preset': "Preset de linha corporativa";
2734
+ readonly 'Name + role': "Nome + função";
2735
+ readonly Salary: "Salário";
2736
+ readonly 'Status icon': "Ícone de status";
2737
+ readonly Shell: "Estrutura";
2738
+ readonly 'Control placement': "Posição do controle";
2739
+ readonly 'Actions column': "Coluna de ações";
2740
+ readonly Trailing: "Final";
2741
+ readonly 'Layout type': "Tipo de layout";
2742
+ readonly Flex: "Flexível";
2743
+ readonly Align: "Alinhamento";
2744
+ readonly 'Vertical alignment': "Alinhamento vertical";
2745
+ readonly 'Add column': "Adicionar coluna";
2746
+ readonly Slot: "Slot";
2747
+ readonly Width: "Largura";
2748
+ readonly 'Min width': "Largura mínima";
2749
+ readonly 'Max width': "Largura máxima";
2750
+ readonly Justify: "Justificar";
2751
+ readonly 'Move column left': "Mover coluna para a esquerda";
2752
+ readonly 'Move column right': "Mover coluna para a direita";
2753
+ readonly 'Remove column': "Remover coluna";
2754
+ readonly 'Select a slot for this column.': "Selecione um slot para esta coluna.";
2755
+ readonly 'This slot is not supported by the list runtime.': "Este slot não é suportado pelo runtime da lista.";
2756
+ readonly 'This slot has no template or conditional override yet.': "Este slot ainda não tem template ou substituição condicional.";
2757
+ readonly 'Enable expansion': "Ativar expansão";
2758
+ readonly Sections: "Seções";
2759
+ readonly Details: "Detalhes";
2760
+ readonly 'Inline details for list rows': "Detalhes inline para linhas da lista";
2761
+ readonly 'Add section': "Adicionar seção";
2762
+ readonly 'Move section up': "Mover seção para cima";
2763
+ readonly 'Move section down': "Mover seção para baixo";
2764
+ readonly 'Remove section': "Remover seção";
2765
+ readonly Id: "Id";
2766
+ readonly Name: "Nome";
2767
+ readonly Placement: "Posicionamento";
2768
+ readonly Trigger: "Gatilho";
2769
+ readonly 'Items expression': "Expressão dos itens";
2770
+ readonly 'Expression (item.key)': "Expressão (item.key)";
2771
+ readonly 'Empty label': "Rótulo vazio";
2772
+ readonly 'No details available': "Nenhum detalhe disponível";
2773
+ readonly 'Inline expansion sections only.': "Somente seções de expansão inline.";
2774
+ readonly 'Remote expansion config preserved \u00B7 {{mode}} \u00B7 {{nodes}} allowed node types': "Configuração de expansão remota preservada · {{mode}} · {{nodes}} tipos de nós permitidos";
2775
+ readonly 'resourcePath mode should declare resourceAllowList before remote detail loading is enabled.': "O modo resourcePath deve declarar resourceAllowList antes de habilitar o carregamento remoto de detalhes.";
2776
+ readonly 'Remote expansion should declare schemaContract for fail-closed rendering.': "A expansão remota deve declarar schemaContract para renderização fail-closed.";
2777
+ readonly 'schemaContract has no allowedNodes; remote sections may render fail-closed.': "schemaContract não tem allowedNodes; seções remotas podem renderizar em modo fail-closed.";
2778
+ readonly 'The visual editor currently authors inline sections; remote expansion details remain JSON-governed.': "O editor visual authora seções inline; detalhes de expansão remota continuam governados por JSON.";
2779
+ readonly 'Enable export': "Ativar exportação";
2780
+ readonly Formats: "Formatos";
2781
+ readonly Scope: "Escopo";
2782
+ readonly 'Default file name': "Nome padrão do arquivo";
2783
+ readonly 'Max rows': "Máximo de linhas";
2784
+ readonly 'Include headers': "Incluir cabeçalhos";
2785
+ readonly 'Included fields': "Campos incluídos";
2786
+ readonly 'Empty means all fields': "Vazio significa todos os campos";
2787
+ readonly 'Formats, scope and file options': "Formatos, escopo e opções de arquivo";
2788
+ readonly 'Export preview': "Prévia da exportação";
2789
+ readonly 'No fields available for preview yet.': "Ainda não há campos disponíveis para prévia.";
2790
+ readonly '{{formats}} \u00B7 {{scope}} \u00B7 {{columns}} columns{{limit}}': "{{formats}} · {{scope}} · {{columns}} colunas{{limit}}";
2791
+ readonly 'max {{count}} rows': "máx. {{count}} linhas";
2792
+ readonly 'Unknown export fields: {{fields}}': "Campos de exportação desconhecidos: {{fields}}";
2793
+ readonly Columns: "Colunas";
2794
+ readonly Presets: "Presets";
2795
+ readonly 'Single field': "Campo único";
2796
+ readonly 'Card with media': "Cartão com mídia";
2797
+ readonly 'Tile with media': "Bloco com mídia";
2798
+ readonly 'Media on the left': "Mídia à esquerda";
2799
+ readonly 'Hotel tile': "Bloco de hotel";
2800
+ readonly 'Hotel (large media)': "Hotel (mídia grande)";
2801
+ readonly 'Standard tile': "Bloco padrão";
2802
+ readonly Hotel: "Hotel";
2803
+ readonly Subtitle: "Subtítulo";
2804
+ readonly 'Short date': "Data curta";
2805
+ readonly 'Apply formatting': "Aplicar formatação";
2806
+ readonly 'Formatting and style': "Formatação e estilo";
2807
+ readonly 'CSS class': "Classe CSS";
2808
+ readonly Border: "Borda";
2809
+ readonly Background: "Fundo";
2810
+ readonly Padding: "Espaçamento interno";
2811
+ readonly Gap: "Espaçamento";
2812
+ readonly Angle: "Ângulo";
2813
+ readonly 'Gradient from': "Degradê inicial";
2814
+ readonly 'Gradient to': "Degradê final";
2815
+ readonly Custom: "Personalizado";
2816
+ readonly 'Show when (Json Logic)': "Exibir quando (Json Logic)";
2817
+ readonly 'Condition (Json Logic)': "Condição (Json Logic)";
2818
+ readonly 'Use a Json Logic object, for example {"==":[{"var":"row.status"},"done"]}.': "Use um objeto Json Logic, por exemplo {\"==\":[{\"var\":\"row.status\"},\"done\"]}.";
2819
+ readonly 'Item style rules': "Regras de estilo do item";
2820
+ readonly 'Apply class, style, border or background when Json Logic matches.': "Aplique classe, estilo, borda ou fundo quando o Json Logic corresponder.";
2821
+ readonly 'Add item rule': "Adicionar regra de item";
2822
+ readonly 'Item rule': "Regra de item";
2823
+ readonly 'Canonical effect': "Efeito canônico";
2824
+ readonly 'Materialize the first effects[] entry used by the runtime.': "Materialize a primeira entrada effects[] usada pelo runtime.";
2825
+ readonly 'Use direct fields': "Usar campos diretos";
2826
+ readonly 'Use effects[]': "Usar effects[]";
2827
+ readonly 'Effect class': "Classe do efeito";
2828
+ readonly 'Effect style': "Estilo do efeito";
2829
+ readonly 'Effect border': "Borda do efeito";
2830
+ readonly 'Effect background': "Fundo do efeito";
2831
+ readonly 'Slot override rules': "Regras de substituição de slot";
2832
+ readonly 'Replace, decorate or hide a slot when Json Logic matches.': "Substitua, decore ou oculte um slot quando o Json Logic corresponder.";
2833
+ readonly 'Add slot rule': "Adicionar regra de slot";
2834
+ readonly 'Slot rule': "Regra de slot";
2835
+ readonly 'Template type': "Tipo de template";
2836
+ readonly 'Template expression': "Expressão do template";
2837
+ readonly 'Hide slot': "Ocultar slot";
2838
+ readonly 'Effect template type': "Tipo de template do efeito";
2839
+ readonly 'Effect template expression': "Expressão do template do efeito";
2840
+ readonly 'Effect hides slot': "Efeito oculta o slot";
2841
+ readonly 'Payload expression': "Expressão do payload";
2842
+ readonly 'Advanced escape hatch. When set, payload is resolved from this expression and no default item payload is injected.': "Escape hatch avançado. Quando definido, o payload é resolvido por esta expressão e nenhum payload padrão do item é injetado.";
2843
+ readonly 'e.g.: department': "ex.: departamento";
2844
+ readonly 'e.g.: Most recent': "ex.: Mais recentes";
2845
+ readonly 'Local columns': "Colunas locais";
2846
+ readonly 'Advanced row CSS': "CSS avançado da linha";
2575
2847
  };
2576
2848
 
2577
2849
  export { ExecutiveAlertsComponent, ExecutiveBadgeComponent, ExecutiveOwnerComponent, LIST_AI_CAPABILITIES, ListDataService, ListSkinService, PRAXIS_LIST_AUTHORING_MANIFEST, PRAXIS_LIST_COMPONENT_METADATA, PRAXIS_LIST_EN_US, PRAXIS_LIST_I18N_NAMESPACE, PRAXIS_LIST_PT_BR, PraxisList, PraxisListConfigEditor, PraxisListDocPageComponent, PraxisListJsonConfigEditorComponent, PraxisListWidgetConfigEditor, adaptSelection, buildListApplyPlan, createListAuthoringDocument, evalExpr, evaluateTemplate, inferListAuthoringDocument, inferTemplatingFromSchema, isListTemplateSupportedByRichContentP0, mapListTemplateToRichContentP0, normalizeListActionPayloads, normalizeListAuthoringDocument, normalizeListConfig, parseLegacyOrListDocument, projectListAuthoringDocument, providePraxisListI18n, providePraxisListMetadata, serializeListAuthoringDocument, toCanonicalListConfig, validateListAuthoringDocument };