@praxisui/list 9.0.68-rc.2 → 10.0.0-rc.0
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 +12 -1
- package/ai/component-registry.json +2 -2
- package/fesm2022/praxisui-list.mjs +85 -21
- package/package.json +6 -6
- package/types/praxisui-list.d.ts +14 -0
package/README.md
CHANGED
|
@@ -84,6 +84,8 @@ Data mode resolution is deterministic:
|
|
|
84
84
|
- `dataSource.resourcePath` uses remote mode when no local data is present.
|
|
85
85
|
- no local data and no resource path renders the empty state.
|
|
86
86
|
|
|
87
|
+
Loading is announced independently of optional skeleton configuration. During a pending request, stale rows and empty/error results are hidden; the collection toolbar remains mounted so search text and focus survive the transition. Retry and pagination keep keyboard focus in the collection while their initiating controls are replaced. A failed filtered request keeps its criteria for retry.
|
|
88
|
+
|
|
87
89
|
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
90
|
|
|
89
91
|
For HATEOAS records, the canonical `_links.self.href` is the preferred render identity. This keeps distinct resource representations stable even when a domain field such as an employee id repeats across periods or projections. `selection.compareBy` remains the explicit equality and payload identity for selection; it does not override the canonical render identity when a self link is available.
|
|
@@ -102,6 +104,15 @@ For HATEOAS records, the canonical `_links.self.href` is the preferred render id
|
|
|
102
104
|
|
|
103
105
|
The hosted list editor exposes **Configuration source** (`configPersistenceStrategy`). Choose **Page configuration** (`input-first`) for a composed page: saved individual list preferences must not replace the page document on reload. **Individual list preferences** preserves `local-first`; **Temporary configuration** uses `volatile`. The choice participates in Apply, Save and Reset alongside the child config, and does not silently replace an existing policy.
|
|
104
106
|
|
|
107
|
+
The standalone settings panel waits for its configured storage adapter before
|
|
108
|
+
closing on Save. While saving, repeated Save and close are blocked. A rejected
|
|
109
|
+
save retains the draft and shows a localized error so the user can retry; the
|
|
110
|
+
accepted `saved$` payload updates runtime without another storage write. A stale
|
|
111
|
+
response cannot close an editor whose draft or storage target changed. The panel
|
|
112
|
+
is bound to the List owner and closes without saving when that owner is destroyed. With
|
|
113
|
+
`volatile`, completion remains local. Adapter completion has the durability of the
|
|
114
|
+
configured adapter; an in-memory adapter does not imply remote persistence.
|
|
115
|
+
|
|
105
116
|
## Configuration Highlights
|
|
106
117
|
|
|
107
118
|
- Layout variants: `list`, `cards`, `tiles`.
|
|
@@ -110,7 +121,7 @@ The hosted list editor exposes **Configuration source** (`configPersistenceStrat
|
|
|
110
121
|
- Leading images delegated to Rich Content stay within their reserved track and retain their aspect ratio. Skin overrides are rendered in an instance-scoped style element, using the supplied CSP nonce; updates replace that element's content and destruction removes it. Appearance presets wrap within narrow editors.
|
|
111
122
|
- 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.
|
|
112
123
|
- Template expressions use `${item.field}`. Currency/date/number templates can use config i18n defaults.
|
|
113
|
-
- Selection supports `none`, `single` and `multiple`, with return modes `value`, `item` or `id`.
|
|
124
|
+
- Selection supports `none`, `single` and `multiple`, with return modes `value`, `item` or `id`. In selectable list rows, the selected radio uses the row foreground in resting, hover, focus and pressed states, so a host accent does not replace its local surface color pairing.
|
|
114
125
|
- `selection.compareBy` controls selection equality and emitted ids. Remote HATEOAS rows are rendered by `_links.self.href` when available, independently of that selection choice.
|
|
115
126
|
- 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`.
|
|
116
127
|
- In `cards` and `tiles`, item activation and secondary item actions are separate keyboard targets. Hosts should preserve this composite interaction model instead of nesting action buttons inside the item activation surface.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemaVersion": "1.0.0",
|
|
3
|
-
"generatedAt": "2026-09-
|
|
3
|
+
"generatedAt": "2026-09-10T12:25:16.581Z",
|
|
4
4
|
"packageName": "@praxisui/list",
|
|
5
|
-
"packageVersion": "
|
|
5
|
+
"packageVersion": "10.0.0-rc.0",
|
|
6
6
|
"sourceRegistry": "praxis-component-registry-ingestion",
|
|
7
7
|
"sourceRegistryVersion": "1.0.0",
|
|
8
8
|
"componentCount": 1,
|