@praxisui/list 8.0.0-beta.20 → 8.0.0-beta.22
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 +52 -0
- package/fesm2022/praxisui-list.mjs +931 -35
- package/index.d.ts +105 -39
- package/package.json +6 -6
- package/src/lib/editors/praxis-list-config-editor.json-api.md +3 -3
- package/src/lib/praxis-list.json-api.md +5 -4
package/README.md
CHANGED
|
@@ -325,6 +325,49 @@ actions: [
|
|
|
325
325
|
```
|
|
326
326
|
|
|
327
327
|
When `globalAction` is set, `actionClick` is **not emitted** by default. Use `emitLocal: true` to emit both.
|
|
328
|
+
Prefer structured `payload` in visual authoring. `payloadExpr` remains an explicit advanced escape hatch in
|
|
329
|
+
`GlobalActionRef`; when present without `payload`, the runtime forwards the ref to `GlobalActionService` without
|
|
330
|
+
synthetic `{ item, index }` payload so the global action can evaluate the expression against its own execution context.
|
|
331
|
+
Changing `actionId` in the editor clears stale payload from the previous action.
|
|
332
|
+
|
|
333
|
+
## Conditional rules
|
|
334
|
+
|
|
335
|
+
`rules.itemStyles` and `rules.slotOverrides` use Json Logic in the row context (`{ row: item }`). Existing flat rule fields are still supported, and the runtime also accepts canonical effect arrays aligned with `PraxisRuntimeConditionalEffectRule`.
|
|
336
|
+
|
|
337
|
+
```ts
|
|
338
|
+
rules: {
|
|
339
|
+
itemStyles: [
|
|
340
|
+
{
|
|
341
|
+
id: 'risk-critical',
|
|
342
|
+
condition: { "===": [{ "var": "row.risk" }, "critical"] },
|
|
343
|
+
effects: [
|
|
344
|
+
{
|
|
345
|
+
kind: 'item-style',
|
|
346
|
+
class: 'risk-critical',
|
|
347
|
+
border: '2px solid #b00020',
|
|
348
|
+
background: '#fde7ec',
|
|
349
|
+
},
|
|
350
|
+
],
|
|
351
|
+
},
|
|
352
|
+
],
|
|
353
|
+
slotOverrides: [
|
|
354
|
+
{
|
|
355
|
+
id: 'risk-icon',
|
|
356
|
+
slot: 'trailing',
|
|
357
|
+
condition: { "===": [{ "var": "row.risk" }, "critical"] },
|
|
358
|
+
effects: [
|
|
359
|
+
{
|
|
360
|
+
kind: 'slot-override',
|
|
361
|
+
template: { type: 'icon', expr: 'priority_high', color: 'warn' },
|
|
362
|
+
class: 'risk-icon',
|
|
363
|
+
},
|
|
364
|
+
],
|
|
365
|
+
},
|
|
366
|
+
],
|
|
367
|
+
}
|
|
368
|
+
```
|
|
369
|
+
|
|
370
|
+
For compatibility, `class`, `style`, `border`, `background`, `template` and `hide` may still be declared directly on the rule. When `effects` is present, the first valid effect is used as the canonical payload and direct fields remain fallback values.
|
|
328
371
|
|
|
329
372
|
For internal navigation from a row or item button, use `navigation.openRoute` and bind the selected item id into `query` or `state`:
|
|
330
373
|
|
|
@@ -392,6 +435,15 @@ Outputs:
|
|
|
392
435
|
- **Examples/evals:** fixtures cover every operation family in the manifest, including title/subtitle binding, action creation/update/removal, status badge, selection mode, missing field rejection, skin, toolbar, export, accessibility, event mapping, row layout, expansion, data modes, i18n, empty state and conditional row styling.
|
|
393
436
|
- **Declared-only semantics:** fields documented as declared-only remain authorable only as config/editor round-trip fields and are guarded by `declared-only-runtime-warning`; the manifest does not claim runtime behavior that the component does not implement.
|
|
394
437
|
|
|
438
|
+
### Praxis Semantic Assistant
|
|
439
|
+
|
|
440
|
+
When `enableCustomization=true`, `praxis-list` opens the shared `PraxisAiAssistantShellComponent` and registers a minimized global session instead of embedding the legacy `PraxisAiAssistantComponent`.
|
|
441
|
+
|
|
442
|
+
- The assistant context is safe and semantic: component identity, list id, resource path, schema field names, item-count digest, manifest reference and governance hints.
|
|
443
|
+
- Business-rule, policy, compliance, publication, materialization or enforcement prompts are routed to governed `domain-rules/intake` handoff and are not applied as local list configuration.
|
|
444
|
+
- Free JSON patches from the backend are rejected. Local apply remains blocked until the response is compiled from a manifest-backed `componentEditPlan` validated against `PRAXIS_LIST_AUTHORING_MANIFEST`.
|
|
445
|
+
- `ListAiAdapter.applyPatch(...)` remains available for legacy/editor internals, but the new assistant turn flow does not use it as an ungoverned patch path.
|
|
446
|
+
|
|
395
447
|
## Known limitations and mismatches
|
|
396
448
|
|
|
397
449
|
1. `layout.virtualScroll` and `layout.stickySectionHeader` exist in the contract/editor, but have no runtime implementation.
|