@praxisui/list 10.0.0-rc.8 → 10.0.0-rc.9

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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-10-12T02:00:03.764Z",
3
+ "generatedAt": "2026-10-12T12:49:05.370Z",
4
4
  "packageName": "@praxisui/list",
5
- "packageVersion": "10.0.0-rc.8",
5
+ "packageVersion": "10.0.0-rc.9",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 1,
@@ -9312,6 +9312,9 @@ class PraxisList {
9312
9312
  if (changes['queryContext']) {
9313
9313
  this.applyRuntimeQueryContext();
9314
9314
  }
9315
+ if (changes['virtualScroll']) {
9316
+ this.warnOnIncompatibleVirtualScroll();
9317
+ }
9315
9318
  if (shouldApplyPersistence) {
9316
9319
  this.applyPersistence();
9317
9320
  }
@@ -10230,6 +10233,23 @@ class PraxisList {
10230
10233
  return [];
10231
10234
  }
10232
10235
  trackByVirtualItem = (index, item) => this.trackByItem(index, item);
10236
+ warnOnIncompatibleVirtualScroll() {
10237
+ if (!isDevMode() || !this.isVirtualScrollEnabled())
10238
+ return;
10239
+ const variant = this.config?.layout?.variant || 'list';
10240
+ if (variant !== 'list') {
10241
+ this.logger.warnOnce(`[PraxisList] virtualScroll is only supported with layout.variant 'list' (current variant is '${variant}'). Virtual scrolling may produce unexpected layout or scrolling artifacts.`, this.buildLogOptions({ variant, virtualScroll: this.virtualScroll ?? this.config?.layout?.virtualScroll }, {
10242
+ dedupeKey: `praxis-list:vs-incompatible-variant:${this.listId || 'anonymous'}:${variant}`,
10243
+ throttleKey: 'praxis-list:vs-incompatible-variant',
10244
+ }));
10245
+ }
10246
+ if (this.isExpandable() || this.config?.interaction?.expandable) {
10247
+ this.logger.warnOnce(`[PraxisList] virtualScroll is incompatible with row expansion. Dynamic row heights are not supported by fixed-size virtual scroll viewports and may lead to visual overlap or clipping.`, this.buildLogOptions({ expandable: true, virtualScroll: this.virtualScroll ?? this.config?.layout?.virtualScroll }, {
10248
+ dedupeKey: `praxis-list:vs-incompatible-expansion:${this.listId || 'anonymous'}`,
10249
+ throttleKey: 'praxis-list:vs-incompatible-expansion',
10250
+ }));
10251
+ }
10252
+ }
10233
10253
  effectiveActions() {
10234
10254
  const directItemActions = this.itemActions || [];
10235
10255
  const configActions = this.config?.actions || [];
@@ -10464,7 +10484,8 @@ class PraxisList {
10464
10484
  if (action?.showLoading)
10465
10485
  delete this.actionLoadingState[loadingKey];
10466
10486
  }
10467
- const emitLocal = action?.emitLocal ?? (!recordOpenIntent && !globalAction?.actionId);
10487
+ const hasGlobalDispatch = Boolean(globalAction?.actionId || commandName || recordOpenIntent);
10488
+ const emitLocal = action?.emitLocal ?? !hasGlobalDispatch;
10468
10489
  if (emitLocal) {
10469
10490
  this.actionClick.emit({ actionId, item, index });
10470
10491
  }
@@ -11329,6 +11350,7 @@ class PraxisList {
11329
11350
  saveConfig: persist,
11330
11351
  });
11331
11352
  this.executeListEditorApplyPlan(plan, doc, trigger);
11353
+ this.warnOnIncompatibleVirtualScroll();
11332
11354
  }
11333
11355
  applyRuntimeQueryContext() {
11334
11356
  this.initializeDataStreams();
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@praxisui/list",
3
- "version": "10.0.0-rc.8",
3
+ "version": "10.0.0-rc.9",
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/cdk": "^21.0.0",
9
9
  "@angular/material": "^21.0.0",
10
- "@praxisui/dynamic-fields": "^10.0.0-rc.8",
10
+ "@praxisui/dynamic-fields": "^10.0.0-rc.9",
11
11
  "rxjs": ">=7 <9",
12
12
  "@angular/forms": "^21.0.0",
13
13
  "@angular/router": "^21.0.0",
14
- "@praxisui/ai": "^10.0.0-rc.8",
15
- "@praxisui/core": "^10.0.0-rc.8",
16
- "@praxisui/rich-content": "^10.0.0-rc.8",
17
- "@praxisui/settings-panel": "^10.0.0-rc.8"
14
+ "@praxisui/ai": "^10.0.0-rc.9",
15
+ "@praxisui/core": "^10.0.0-rc.9",
16
+ "@praxisui/rich-content": "^10.0.0-rc.9",
17
+ "@praxisui/settings-panel": "^10.0.0-rc.9"
18
18
  },
19
19
  "dependencies": {
20
20
  "tslib": "^2.3.0",
@@ -700,6 +700,7 @@ declare class PraxisList implements OnInit, OnChanges, AfterViewInit, OnDestroy
700
700
  virtualScrollViewportHeight(): string;
701
701
  virtualScrollItems(sections: ListSection<any>[] | null | undefined, items: any[] | null | undefined): any[];
702
702
  trackByVirtualItem: (index: number, item: any) => any;
703
+ private warnOnIncompatibleVirtualScroll;
703
704
  effectiveActions(): PraxisListItemAction[];
704
705
  hasHateoasLink(item: any, rel: string): boolean;
705
706
  visibleActions(item: any, placement?: 'actions' | 'trailing' | 'menu'): PraxisListItemAction[];