@praxisui/list 9.0.14 → 9.0.16
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,24 +86,6 @@ 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
|
-
|
|
107
89
|
## Main Inputs And Outputs
|
|
108
90
|
|
|
109
91
|
- `config: PraxisListConfig`: list/card/tile configuration.
|
|
@@ -120,12 +102,10 @@ Local collections intentionally omit remote search and sort controls. Official l
|
|
|
120
102
|
- Layout variants: `list`, `cards`, `tiles`.
|
|
121
103
|
- Runtime-active layout fields include `lines`, `dividers`, `groupBy`, `pageSize`, `density` and `model`.
|
|
122
104
|
- Templating slots include `leading`, `primary`, `secondary`, `meta`, `trailing`, `features`, `sectionHeader` and `emptyState`.
|
|
123
|
-
- In `layout.rowLayout`, canonical semantic slots keep the configured desktop grid and reflow into ordered, non-overlapping rows at narrow viewports; extended operational slots stack without requiring host CSS.
|
|
124
105
|
- Template expressions use `${item.field}`. Currency/date/number templates can use config i18n defaults.
|
|
125
106
|
- Selection supports `none`, `single` and `multiple`, with return modes `value`, `item` or `id`.
|
|
126
107
|
- Item actions can emit local events or delegate to `GlobalActionService`; collection export uses the shared `@praxisui/core` contract for `csv`, `json`, `excel`, `pdf` and `print`.
|
|
127
|
-
-
|
|
128
|
-
- A governed `actions[].recordOpen` resolves the identity declared by the backend against the current-principal resource and contextual surface catalogs before executing `surface.open`; it never derives the target from the displayed label or from `item.id`. This path requires the host's canonical `API_URL` configuration, resolved only when the action runs; local lists do not acquire a backend dependency merely by rendering the component.
|
|
108
|
+
- A governed `actions[].recordOpen` resolves the identity declared by the backend against the current-principal resource and contextual surface catalogs before executing `surface.open`; it never derives the target from the displayed label or from `item.id`.
|
|
129
109
|
|
|
130
110
|
## Known Runtime Boundaries
|
|
131
111
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-08-
|
|
3
|
+
"generatedAt": "2026-08-24T11:25:54.540Z",
|
|
4
4
|
"packageName": "@praxisui/list",
|
|
5
|
-
"packageVersion": "9.0.
|
|
5
|
+
"packageVersion": "9.0.16",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 1,
|
|
@@ -17,16 +17,6 @@ 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
|
-
|
|
30
20
|
## Migration note
|
|
31
21
|
|
|
32
22
|
Consumers that previously called `ListDataService.error$.next(...)` must stop mutating internal runtime state. Subscribe to `error$` and invoke `refresh()` for user-initiated recovery.
|