@praxisui/list 8.0.0-beta.26 → 8.0.0-beta.28

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/index.d.ts CHANGED
@@ -6,8 +6,8 @@ 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, GlobalActionRef, LocalizationConfig, AiCapability, RichBlockNode, GlobalActionCatalogEntry, SurfaceOpenPayload, SettingsValueProvider as SettingsValueProvider$1, RichPresenterNode, RichComposeNode, ComponentDocMeta, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, ComponentAuthoringManifest } from '@praxisui/core';
10
- import { BaseAiAdapter, PatchResult, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
9
+ import { PraxisExportFormat, PraxisExportScope, PraxisRuntimeConditionalEffectRule, JsonLogicExpression, GlobalActionRef, LocalizationConfig, AiCapability, PraxisDataQueryContext, RichBlockNode, GlobalActionCatalogEntry, SurfaceOpenPayload, SettingsValueProvider as SettingsValueProvider$1, RichPresenterNode, RichComposeNode, ComponentDocMeta, AiCapabilityCategory, AiValueKind, AiCapabilityCatalog, ComponentAuthoringManifest } from '@praxisui/core';
10
+ import { BaseAiAdapter, AiResponseCompileResult, PatchResult, PraxisAssistantTurnViewState, PraxisAssistantShellLayout, PraxisAssistantShellLabels, PraxisAssistantSessionSnapshot, PraxisAssistantShellQuickReply, PraxisAssistantShellMessage } from '@praxisui/ai';
11
11
  import { SettingsValueProvider } from '@praxisui/settings-panel';
12
12
 
13
13
  type TemplateType = 'text' | 'icon' | 'image' | 'chip' | 'rating' | 'currency' | 'date' | 'html' | 'slot' | 'metric' | 'compose' | 'component';
@@ -422,12 +422,22 @@ declare class ListAiAdapter extends BaseAiAdapter<PraxisListConfig> {
422
422
  getSchemaFields(): Record<string, any>[];
423
423
  getAuthoringContext(): Record<string, any>;
424
424
  createSnapshot(): PraxisListConfig;
425
+ compileAiResponse(response: Record<string, unknown>): AiResponseCompileResult | null;
425
426
  restoreSnapshot(snapshot: PraxisListConfig): Promise<void>;
426
427
  applyPatch(patch: Partial<PraxisListConfig>, _intent?: string): Promise<PatchResult>;
427
428
  private applyConfig;
428
429
  private smartMergeListConfig;
429
430
  private sanitizePatch;
430
431
  private cloneConfig;
432
+ private coerceComponentEditPlanOperations;
433
+ private coerceOperationInput;
434
+ private applyManifestEffects;
435
+ private resolveSetValue;
436
+ private mergeAtPath;
437
+ private setAtPath;
438
+ private readAtPath;
439
+ private asRecord;
440
+ private trimToUndefined;
431
441
  }
432
442
 
433
443
  interface ListRowLayoutColumnViewModel {
@@ -440,6 +450,11 @@ interface ListRowLayoutColumnViewModel {
440
450
  class?: string;
441
451
  style?: string;
442
452
  }
453
+ interface ListCardDetailSlotViewModel {
454
+ slot: ListTemplatingSlot;
455
+ label: string;
456
+ node: Record<string, any>;
457
+ }
443
458
  declare class PraxisList implements OnInit, OnChanges, OnDestroy {
444
459
  private static nextSkinScopeId;
445
460
  private customizationEnabled;
@@ -447,6 +462,8 @@ declare class PraxisList implements OnInit, OnChanges, OnDestroy {
447
462
  config: PraxisListConfig;
448
463
  listId: string;
449
464
  componentInstanceId?: string;
465
+ configPersistenceStrategy: 'local-first' | 'input-first';
466
+ queryContext?: PraxisDataQueryContext | null;
450
467
  form?: FormGroup | null;
451
468
  set enableCustomization(value: boolean);
452
469
  get enableCustomization(): boolean;
@@ -464,6 +481,7 @@ declare class PraxisList implements OnInit, OnChanges, OnDestroy {
464
481
  sort?: string[];
465
482
  }>;
466
483
  private lastQuery;
484
+ private lastRuntimeQueryContextSignature;
467
485
  private search$;
468
486
  get layoutLines(): number;
469
487
  boundControl: FormControl<unknown | unknown[] | null>;
@@ -560,6 +578,9 @@ declare class PraxisList implements OnInit, OnChanges, OnDestroy {
560
578
  rowLayoutColumnClass(column: ListRowLayoutColumnViewModel): string | undefined;
561
579
  rowLayoutColumnStyle(column: ListRowLayoutColumnViewModel): string | undefined;
562
580
  rowLayoutSlot(item: any, slot: string): Record<string, any> | null;
581
+ cardDetailSlots(item: any): ListCardDetailSlotViewModel[];
582
+ private humanizeSlotLabel;
583
+ private hasDisplayableNodeValue;
563
584
  rowLayoutHasSlot(slot: ListRowLayoutSlot): boolean;
564
585
  rowLayoutImageAlt(slot: string): string;
565
586
  simpleRichContentNodes(node: Record<string, any> | null | undefined, options?: {
@@ -714,6 +735,7 @@ declare class PraxisList implements OnInit, OnChanges, OnDestroy {
714
735
  private isEnglishLocaleValue;
715
736
  applyConfigFromAdapter(newCfg: PraxisListConfig): void;
716
737
  private applyAuthoringPayload;
738
+ private applyRuntimeQueryContext;
717
739
  private buildListEditorRuntimeContext;
718
740
  private executeListEditorApplyPlan;
719
741
  private storageKey;
@@ -723,6 +745,9 @@ declare class PraxisList implements OnInit, OnChanges, OnDestroy {
723
745
  private executeSchemaInferenceForPlan;
724
746
  private evalSlot;
725
747
  private resolveSlotTemplate;
748
+ private resolveLocalDataFallbackTemplate;
749
+ private isLocalDataPreviewItem;
750
+ private firstPresentItemKey;
726
751
  private evaluateTemplateNode;
727
752
  private buildUnsupportedComposeNode;
728
753
  private buildRuntimeComponentView;
@@ -789,7 +814,7 @@ declare class PraxisList implements OnInit, OnChanges, OnDestroy {
789
814
  private normalizeExpansionItems;
790
815
  private normalizeKeyValueItems;
791
816
  static ɵfac: i0.ɵɵFactoryDeclaration<PraxisList, never>;
792
- static ɵcmp: i0.ɵɵComponentDeclaration<PraxisList, "praxis-list", never, { "config": { "alias": "config"; "required": false; }; "listId": { "alias": "listId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "form": { "alias": "form"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; }, { "itemClick": "itemClick"; "actionClick": "actionClick"; "selectionChange": "selectionChange"; "exportAction": "exportAction"; }, never, never, true, never>;
817
+ static ɵcmp: i0.ɵɵComponentDeclaration<PraxisList, "praxis-list", never, { "config": { "alias": "config"; "required": false; }; "listId": { "alias": "listId"; "required": true; }; "componentInstanceId": { "alias": "componentInstanceId"; "required": false; }; "configPersistenceStrategy": { "alias": "configPersistenceStrategy"; "required": false; }; "queryContext": { "alias": "queryContext"; "required": false; }; "form": { "alias": "form"; "required": false; }; "enableCustomization": { "alias": "enableCustomization"; "required": false; }; }, { "itemClick": "itemClick"; "actionClick": "actionClick"; "selectionChange": "selectionChange"; "exportAction": "exportAction"; }, never, never, true, never>;
793
818
  static ngAcceptInputType_enableCustomization: unknown;
794
819
  }
795
820
 
@@ -1572,8 +1597,9 @@ interface TemplateEvaluatorOptions {
1572
1597
  declare function evalExpr(expr: string, ctx: any, options?: TemplateEvaluatorOptions): string;
1573
1598
  /**
1574
1599
  * Evaluate a template definition with basic pipe support.
1575
- * Supported pipes:
1600
+ * Supported top-level pipes:
1576
1601
  * - bool:TrueLabel:FalseLabel (maps truthy/falsey values to provided labels)
1602
+ * - map:key=Label,... (maps scalar values to labels)
1577
1603
  */
1578
1604
  declare function evaluateTemplate(def: TemplateDef | undefined, item: any, options?: TemplateEvaluatorOptions): {
1579
1605
  type: string;
@@ -1796,15 +1822,8 @@ declare class PraxisListDocPageComponent {
1796
1822
  class?: string;
1797
1823
  inlineStyle?: string;
1798
1824
  } | undefined;
1799
- id?: string;
1800
- export?: PraxisListExportConfig;
1801
- interaction?: {
1802
- expandable?: boolean;
1803
- expandTrigger?: "row" | "icon" | "row+icon";
1804
- expandMode?: "single" | "multiple";
1805
- expandPlacement?: "expand" | "trailing";
1806
- };
1807
- templating?: {
1825
+ templating: {
1826
+ statusPosition: "top-right";
1808
1827
  leading?: TemplateDef;
1809
1828
  primary?: TemplateDef;
1810
1829
  secondary?: TemplateDef;
@@ -1818,7 +1837,6 @@ declare class PraxisListDocPageComponent {
1818
1837
  owner?: TemplateDef;
1819
1838
  metaPlacement?: "side" | "line";
1820
1839
  metaPrefixIcon?: string;
1821
- statusPosition?: "inline" | "top-right";
1822
1840
  chipColorMap?: Record<string, string>;
1823
1841
  chipLabelMap?: Record<string, string>;
1824
1842
  iconColorMap?: Record<string, string>;
@@ -1831,6 +1849,14 @@ declare class PraxisListDocPageComponent {
1831
1849
  count?: number;
1832
1850
  };
1833
1851
  };
1852
+ id?: string;
1853
+ export?: PraxisListExportConfig;
1854
+ interaction?: {
1855
+ expandable?: boolean;
1856
+ expandTrigger?: "row" | "icon" | "row+icon";
1857
+ expandMode?: "single" | "multiple";
1858
+ expandPlacement?: "expand" | "trailing";
1859
+ };
1834
1860
  rules?: {
1835
1861
  itemStyles?: ListItemStyleRule[];
1836
1862
  slotOverrides?: ListSlotOverrideRule[];
package/package.json CHANGED
@@ -1,19 +1,19 @@
1
1
  {
2
2
  "name": "@praxisui/list",
3
- "version": "8.0.0-beta.26",
3
+ "version": "8.0.0-beta.28",
4
4
  "description": "List components and helpers for Praxis UI.",
5
5
  "peerDependencies": {
6
6
  "@angular/common": ">=16 <21",
7
7
  "@angular/core": ">=16 <21",
8
8
  "@angular/material": ">=16 <21",
9
- "@praxisui/dynamic-fields": "^8.0.0-beta.26",
9
+ "@praxisui/dynamic-fields": "^8.0.0-beta.28",
10
10
  "rxjs": ">=7 <9",
11
11
  "@angular/forms": ">=16 <21",
12
12
  "@angular/router": ">=16 <21",
13
- "@praxisui/ai": "^8.0.0-beta.26",
14
- "@praxisui/core": "^8.0.0-beta.26",
15
- "@praxisui/rich-content": "^8.0.0-beta.26",
16
- "@praxisui/settings-panel": "^8.0.0-beta.26"
13
+ "@praxisui/ai": "^8.0.0-beta.28",
14
+ "@praxisui/core": "^8.0.0-beta.28",
15
+ "@praxisui/rich-content": "^8.0.0-beta.28",
16
+ "@praxisui/settings-panel": "^8.0.0-beta.28"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0",