@praxisui/page-builder 10.0.0-rc.7 → 10.0.0-rc.8
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/ai/component-registry.json +72 -54
- package/fesm2022/praxisui-page-builder.mjs +53 -542
- package/package.json +4 -4
- package/types/praxisui-page-builder.d.ts +15 -95
package/README.md
CHANGED
|
@@ -4,6 +4,54 @@ Visual page and dashboard builder for Praxis UI applications.
|
|
|
4
4
|
|
|
5
5
|
Use this package when an application must let users compose governed operational pages from registered widgets, visual layout, shell settings, component editors, `composition.links`, and optional AI-assisted authoring.
|
|
6
6
|
|
|
7
|
+
## Dashboard pages and persistence ownership
|
|
8
|
+
|
|
9
|
+
A dashboard is a `WidgetPageDefinition` rendered by `praxis-dynamic-page` and edited
|
|
10
|
+
by `praxis-dynamic-page-builder`. The beta `PraxisDashboardPage` wrapper was removed;
|
|
11
|
+
use these existing components instead. Application titles, toolbar presentation and
|
|
12
|
+
business navigation remain host concerns.
|
|
13
|
+
|
|
14
|
+
For manual page editing, opt in to the Core persistence lifecycle:
|
|
15
|
+
|
|
16
|
+
```html
|
|
17
|
+
<praxis-dynamic-page-builder
|
|
18
|
+
#builder
|
|
19
|
+
[page]="defaultPage"
|
|
20
|
+
[pageIdentity]="identity"
|
|
21
|
+
[autoPersist]="true"
|
|
22
|
+
[enableCustomization]="editing"
|
|
23
|
+
(persistenceChange)="persistence = $event"
|
|
24
|
+
/>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
`autoPersist` defaults to `false` on the builder, preserving its previous effective
|
|
28
|
+
behavior (the child runtime previously always received `false`). Hosts that already
|
|
29
|
+
persist `pageAuthoringChange`/`pageSaveRequested` must leave it disabled. Core Dynamic
|
|
30
|
+
Page keeps its own existing default. Do not enable a second host writer when Core
|
|
31
|
+
owns persistence.
|
|
32
|
+
|
|
33
|
+
Pass `PageIdentity` with the application's actual tenant/user/route. Core uses the
|
|
34
|
+
configured `ASYNC_CONFIG_STORAGE`; no separate localStorage cache, browser globals
|
|
35
|
+
or persona-specific host reconciler is needed. Storage identity is not backend
|
|
36
|
+
authorization. Persisted documents, including an empty widget list, are authoritative;
|
|
37
|
+
new factory widgets are not silently appended to a user's saved page.
|
|
38
|
+
|
|
39
|
+
`persistenceChange` forwards Core's operational `WidgetPagePersistenceState`:
|
|
40
|
+
`idle`, `loading`, `saving`, `saved`, `resetting` or `error`, with `customized`, optional
|
|
41
|
+
ISO `savedAt`, operation and a safe `errorKind`. Show success only after acknowledgement,
|
|
42
|
+
and distinguish conflicts from a pending or failed write. It is not business metadata
|
|
43
|
+
and must not be persisted in `WidgetPageDefinition`.
|
|
44
|
+
|
|
45
|
+
`builder.resetPersistedPage(defaultPage)` deletes this identity's saved page and applies
|
|
46
|
+
the supplied default only after acknowledgement. `builder.reloadPersistedPage(defaultPage)`
|
|
47
|
+
explicitly discards the draft and reloads storage, using the supplied default when no saved
|
|
48
|
+
page exists. Make that destructive-to-draft intent visible in the host. The existing Save
|
|
49
|
+
button retries through Core for manually managed pages; conflicts require an explicit reload.
|
|
50
|
+
|
|
51
|
+
For `authoringDocument` or agentic authoring, Core automatic persistence is disabled even
|
|
52
|
+
when requested: the existing host/server apply lifecycle owns revisions and provenance.
|
|
53
|
+
An AI preview must never be saved through an automatic generic config write.
|
|
54
|
+
|
|
7
55
|
## Widget shell editor integrity
|
|
8
56
|
|
|
9
57
|
The shell editor exposes **Keep header visible while scrolling the page**
|
|
@@ -1089,6 +1137,10 @@ losing unrelated context. Arrangement choices track their draft baseline even wh
|
|
|
1089
1137
|
selected distribution initially produces no changes, so later edits clear stale status.
|
|
1090
1138
|
These fixes are not part of the already published 9.0.68-rc.2 package.
|
|
1091
1139
|
|
|
1140
|
+
`retryPersistedPage()` retries the current draft after a non-conflict save failure,
|
|
1141
|
+
including empty pages, without emitting host save lifecycle events. Conflicts require
|
|
1142
|
+
explicit `reloadPersistedPage(defaultPage)`; reload discards the local draft.
|
|
1143
|
+
|
|
1092
1144
|
<!-- praxis-npm-catalog-links:start -->
|
|
1093
1145
|
## Official documentation and examples
|
|
1094
1146
|
|