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

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.7",
3
+ "version": "9.0.0-beta.8",
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.7",
9
+ "@praxisui/dynamic-fields": "^9.0.0-beta.8",
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.7",
14
- "@praxisui/core": "^9.0.0-beta.7",
15
- "@praxisui/rich-content": "^9.0.0-beta.7",
16
- "@praxisui/settings-panel": "^9.0.0-beta.7"
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"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0",
@@ -316,6 +316,7 @@ A integracao com host ocorre por `SettingsValueProvider`:
316
316
  | `export.enabled/formats/general.*` | Active | Editor guiado de formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao e campos incluidos. |
317
317
  | `interaction.expandable/expandTrigger/expandMode/expandPlacement` | Active | Editor guiado de comportamento expansivel da linha. |
318
318
  | `expansion.sections/rendering` | Active | Editor guiado para secoes inline e shell visual da expansao. |
319
+ | `rules.itemStyles/slotOverrides` | Active | Editor guiado basico para Json Logic, classe, estilo, template de slot, ocultacao e primeiro `effects[]` canonico. |
319
320
  | `skin.type` | Active | Presets + selecao manual. |
320
321
  | `skin.gradient/radius/shadow/border/backdropBlur/class/inlineStyle` | Active | Edicao direta + presets. |
321
322
  | `selection.mode` | Active | `none/single/multiple`. |
@@ -347,10 +348,10 @@ A integracao com host ocorre por `SettingsValueProvider`:
347
348
  | Area | Adherence | Current editor coverage | Recommended next step |
348
349
  | --- | --- | --- | --- |
349
350
  | `events.exportAction` | ja-suportado-so-ux | Campo visual no tab de eventos. | Manter coberto por spec focal de round-trip. |
350
- | `layout.rowLayout` | ja-suportado-so-ux | Editor guiado cobre ativacao, preset corporativo, tipo, colunas, largura, alinhamento, gap e CSS avancado. | Evoluir depois com preview visual por slot e warnings inline para slots sem template. |
351
- | `export` | ja-suportado-so-ux | Editor guiado cobre habilitacao, formatos, escopo, cabecalhos, limite, nome de arquivo, formatacao e campos incluidos. | Evoluir depois com preview do payload de exportacao e validacao visual de campo inexistente. |
351
+ | `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. |
352
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
- | `rules.itemStyles`/`rules.slotOverrides` | suportado-parcialmente | Runtime e validacao aplicam regras condicionais; authoring visual dedicado ainda ausente. | Criar editor de regras com Json Logic assistido e preview de impacto por slot. |
354
+ | `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. |
354
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. |
355
356
 
356
357
  ### Validacao Estrutural
@@ -444,9 +445,9 @@ ref.saved$.subscribe((payload) => {
444
445
  ### Known limitations and pending investigation
445
446
 
446
447
  1. Nao existe editor dedicado para `dataSource.data` (dataset local grande).
447
- 2. `rules` possui suporte runtime/capability maior do que a cobertura visual atual do editor; essa area deve evoluir por configurador guiado, nao por contrato paralelo.
448
- 3. `layout.rowLayout` possui editor guiado basico, mas ainda nao tem preview visual por slot nem warnings inline dedicados para slots sem template.
449
- 4. `export` possui editor guiado basico, mas ainda nao tem preview do payload final nem validacao visual dedicada para campo inexistente em `includeFields`.
448
+ 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
+ 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.
450
451
  5. `expansion.dataSource` remoto e `expansion.schemaContract` permanecem JSON-only ate existir validacao visual e prova runtime especifica no componente.
451
452
  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.
452
453
  7. `isDirty$` usa comparacao por snapshot JSON; mudancas de ordenacao de chaves/objetos podem gerar ruido em cenarios extremos.
@@ -1328,6 +1328,7 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1328
1328
  readonly rowLayoutAlignOptions: RowLayoutAlign[];
1329
1329
  readonly rowLayoutColumnAlignOptions: Array<NonNullable<RowLayoutColumn['align']>>;
1330
1330
  readonly rowLayoutJustifyOptions: Array<NonNullable<RowLayoutColumn['justify']>>;
1331
+ readonly rowLayoutStructuralSlots: Set<ListRowLayoutSlot>;
1331
1332
  readonly exportFormatOptions: PraxisExportFormat[];
1332
1333
  readonly exportScopeOptions: PraxisExportScope[];
1333
1334
  readonly expandTriggerOptions: Array<NonNullable<NonNullable<PraxisListConfig['interaction']>['expandTrigger']>>;
@@ -1336,6 +1337,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1336
1337
  readonly expansionSectionTypeOptions: ListExpansionSectionType[];
1337
1338
  readonly expansionShellOptions: Array<NonNullable<ListExpansionRendering['shell']>>;
1338
1339
  readonly expansionColumnOptions: Array<NonNullable<ListExpansionRendering['columns']>>;
1340
+ readonly ruleSlotOptions: ListSlotOverrideRule['slot'][];
1341
+ readonly ruleTemplateTypeOptions: TemplateType[];
1339
1342
  mappingMetaFields: string[];
1340
1343
  mappingMetaSeparator: string;
1341
1344
  mappingMetaWrapSecondInParens: boolean;
@@ -1505,6 +1508,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1505
1508
  removeRowLayoutColumn(index: number): void;
1506
1509
  moveRowLayoutColumn(index: number, direction: -1 | 1): void;
1507
1510
  onRowLayoutChanged(): void;
1511
+ rowLayoutColumnWarning(column: RowLayoutColumn): string;
1512
+ private rowLayoutSlotHasMaterialization;
1508
1513
  private ensureRowLayoutDraft;
1509
1514
  private defaultRowLayout;
1510
1515
  private nextRowLayoutSlot;
@@ -1532,6 +1537,8 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1532
1537
  onExportApplyFormattingChange(value: boolean): void;
1533
1538
  onExportMaxRowsChange(value: any): void;
1534
1539
  getExportIncludeFieldsText(): string;
1540
+ getExportIncludeFieldsWarning(): string;
1541
+ getExportUnknownIncludeFields(): string[];
1535
1542
  onExportIncludeFieldsTextChange(value: string): void;
1536
1543
  private ensureExportDraft;
1537
1544
  expansionEnabled(): boolean;
@@ -1553,6 +1560,37 @@ declare class PraxisListConfigEditor implements SettingsValueProvider, DoCheck {
1553
1560
  getExpansionSectionShowIfText(section: ListExpansionSectionDef): string;
1554
1561
  private ensureExpansionDraft;
1555
1562
  private defaultExpansionSection;
1563
+ addItemStyleRule(): void;
1564
+ removeItemStyleRule(index: number): void;
1565
+ addSlotOverrideRule(): void;
1566
+ removeSlotOverrideRule(index: number): void;
1567
+ onRulesChanged(): void;
1568
+ getRuleConditionText(rule: {
1569
+ condition?: JsonLogicExpression | null;
1570
+ }): string;
1571
+ onRuleConditionChanged(rule: {
1572
+ condition?: JsonLogicExpression | null;
1573
+ }, raw: string): void;
1574
+ getItemStyleEffect(rule: ListItemStyleRule): ListItemStyleEffect | undefined;
1575
+ ensureItemStyleEffect(rule: ListItemStyleRule): void;
1576
+ clearItemStyleEffects(rule: ListItemStyleRule): void;
1577
+ getSlotOverrideEffect(rule: ListSlotOverrideRule): ListSlotOverrideEffect | undefined;
1578
+ ensureSlotOverrideEffect(rule: ListSlotOverrideRule): void;
1579
+ clearSlotOverrideEffects(rule: ListSlotOverrideRule): void;
1580
+ getSlotOverrideTemplateExpr(rule: {
1581
+ template?: TemplateDef;
1582
+ }): string;
1583
+ onSlotOverrideTemplateExprChanged(rule: {
1584
+ template?: TemplateDef;
1585
+ }, expr: string): void;
1586
+ getSlotOverrideTemplateType(rule: {
1587
+ template?: TemplateDef;
1588
+ }): TemplateType;
1589
+ onSlotOverrideTemplateTypeChanged(rule: {
1590
+ template?: TemplateDef;
1591
+ }, type: TemplateType): void;
1592
+ private defaultItemStyleRule;
1593
+ private defaultSlotOverrideRule;
1556
1594
  onSkeletonChanged(value: any): void;
1557
1595
  addUiSortRow(): void;
1558
1596
  removeUiSortRow(i: number): void;