@praxisui/list 9.0.12 → 9.0.14

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/README.md CHANGED
@@ -86,6 +86,24 @@ Data mode resolution is deterministic:
86
86
 
87
87
  In remote mode, search, sort and export share a collection toolbar above the items; pagination remains attached to the collection footer. A configured `resourcePath` does not activate remote controls when local `data` is also present. The runtime uses `/filter` through `GenericCrudService.filter(query, pageable)`. Synchronous changes projected from one `queryContext` are coalesced into a single request. If that endpoint fails with an empty query, the compatibility path may fall back to `getAll()`. With active criteria, the list fails closed, preserves the filter context and exposes a read-only, retryable error stream instead of displaying unfiltered records.
88
88
 
89
+ ## Enterprise Collection Controls
90
+
91
+ Treat the list as one collection surface with distinct control responsibilities:
92
+
93
+ | Layer | Responsibility | Placement |
94
+ | --- | --- | --- |
95
+ | Structured filters | `praxis-filter` composes the existing inline controls from `@praxisui/dynamic-fields` and projects the resulting filter DTO into the list `queryContext`. | Before the list toolbar, in the same collection region. |
96
+ | Collection toolbar | Quick search, authored sort choices and collection commands such as export. | Above the items. Search leads; sort and commands form the trailing command group. |
97
+ | Item actions | Commands whose target is one record. | Inside the corresponding item action slot. |
98
+ | Selection actions | Commands whose availability depends on `selectionChange`. | In a composed toolbar/action rail near the collection header, never inside the paginator. |
99
+ | Pagination | Page size, range and page navigation only. | Attached to the collection footer. |
100
+
101
+ Sorting is optional. Enable it when changing order helps users compare or prioritize a non-tabular collection; omit it when order is fixed by the workflow or only one meaningful order exists. Publish concise, business-readable `sortOptions` labels instead of exposing raw `field,direction` values. The Material select label is always “Sort by”/“Ordenar por”, so the control describes its purpose even before a value is chosen.
102
+
103
+ Do not build a second filter library inside `@praxisui/list`. Structured filtering remains a composition of the canonical Praxis Filter container and Dynamic Fields inline controls. The list consumes the governed result through `queryContext`; it does not duplicate field discovery, draft/apply semantics or backend filter metadata.
104
+
105
+ Local collections intentionally omit remote search and sort controls. Official local showcases therefore keep `ui.showSearch` and `ui.showSort` disabled and demonstrate the remote configuration separately.
106
+
89
107
  ## Main Inputs And Outputs
90
108
 
91
109
  - `config: PraxisListConfig`: list/card/tile configuration.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "schemaVersion": "1.0.0",
3
- "generatedAt": "2026-08-21T16:19:49.434Z",
3
+ "generatedAt": "2026-08-21T20:28:09.765Z",
4
4
  "packageName": "@praxisui/list",
5
- "packageVersion": "9.0.12",
5
+ "packageVersion": "9.0.14",
6
6
  "sourceRegistry": "praxis-component-registry-ingestion",
7
7
  "sourceRegistryVersion": "1.0.0",
8
8
  "componentCount": 1,
@@ -17,6 +17,16 @@ This beta migration aligns the collection toolbar with the canonical data-mode p
17
17
 
18
18
  Search, sort and export share the upper collection surface. At narrow widths, sort occupies a full row and command controls wrap without overflowing the collection. Pagination remains a separate footer responsibility.
19
19
 
20
+ ## Collection anatomy
21
+
22
+ - Structured filters remain upstream composition: `praxis-filter` hosts the existing Dynamic Fields inline controls and projects its DTO into `queryContext`.
23
+ - Quick search, authored sort choices and export belong to the list-owned upper toolbar.
24
+ - Item actions remain attached to their item. Selection-dependent bulk actions belong to a composed action rail near the collection header.
25
+ - The paginator owns only page size, range and navigation; it does not host sort, filters or business actions.
26
+ - Sort is optional and should be authored only when users benefit from changing the collection order. Labels must express business meaning instead of exposing raw transport syntax.
27
+
28
+ This is an adoption clarification, not a new filter contract or package. The existing Praxis Filter and Dynamic Fields owners remain canonical for structured filtering and inline control behavior.
29
+
20
30
  ## Migration note
21
31
 
22
32
  Consumers that previously called `ListDataService.error$.next(...)` must stop mutating internal runtime state. Subscribe to `error$` and invoke `refresh()` for user-initiated recovery.