@fullstack-webapp/document-shell 0.1.0-beta.1 → 0.1.0-beta.3
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 +16 -14
- package/dist/safe-area-profiles.d.ts +2 -2
- package/dist/safe-area-profiles.js +4 -4
- package/docs/integration.md +18 -15
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -27,7 +27,7 @@ results, or interactive state that cannot be known while building the HTML.
|
|
|
27
27
|
## Install
|
|
28
28
|
|
|
29
29
|
```sh
|
|
30
|
-
pnpm add -D @fullstack-webapp/document-shell
|
|
30
|
+
pnpm add -D @fullstack-webapp/document-shell
|
|
31
31
|
```
|
|
32
32
|
|
|
33
33
|
Document Shell supports Vite 7 and 8. It emits standard ESM and declarations;
|
|
@@ -167,17 +167,19 @@ checklist, and failure guide, see [Integration guide](docs/integration.md).
|
|
|
167
167
|
| `@fullstack-webapp/document-shell/client` | The framework-neutral, one-shot runtime handoff. |
|
|
168
168
|
| `@fullstack-webapp/document-shell/reference` | Reference-application safe-area rollout used to retain existing evidence while profiles mature; it is not a consumer profile selector. |
|
|
169
169
|
|
|
170
|
-
The current beta catalog
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
the
|
|
170
|
+
The current beta catalog projects all four accepted iOS standalone portrait
|
|
171
|
+
profiles through `sharedDefault`: `375×812@3x`, `393×852@3x`, `402×874@3x`, and
|
|
172
|
+
`430×932@3x`. Root consumers receive their `34px` startup bottom floor without
|
|
173
|
+
selecting or copying a profile. Maturity remains independent: `402×874@3x` is
|
|
174
|
+
`verified`, while the other three remain `provisional` and can be narrowed or
|
|
175
|
+
revised as production evidence arrives. Unsupported geometry remains a visible
|
|
176
|
+
no-op.
|
|
175
177
|
|
|
176
|
-
`./reference` is a pre-1.0 migration seam, not a second configuration model.
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
178
|
+
`./reference` is a pre-1.0 migration seam, not a second configuration model.
|
|
179
|
+
All current profiles are now shared defaults, so the subpath projects the same
|
|
180
|
+
catalog as the root entry. It remains temporarily for source compatibility with
|
|
181
|
+
the reference application and can be removed in a later beta breaking release
|
|
182
|
+
after that consumer switches to the root entry.
|
|
181
183
|
|
|
182
184
|
## Ownership boundary
|
|
183
185
|
|
|
@@ -205,9 +207,9 @@ an arbitrary callback with `Function#toString()`.
|
|
|
205
207
|
- Document Shell validates exactly one viewport meta, manifest link, title,
|
|
206
208
|
mount point, critical-shell style, static-shell marker, and module entry.
|
|
207
209
|
- The shared safe-area entry only emits profiles promoted to `sharedDefault`;
|
|
208
|
-
the current catalog
|
|
209
|
-
|
|
210
|
-
|
|
210
|
+
the current catalog emits all four accepted portrait profiles while retaining
|
|
211
|
+
their verified or provisional maturity. Consumers do not choose individual
|
|
212
|
+
device profiles or rollout maturity.
|
|
211
213
|
- The current safe-area runtime matches observable browser geometry and
|
|
212
214
|
platform signals, not marketing device names. Unsupported geometry fails
|
|
213
215
|
open and receives no reserve.
|
|
@@ -30,7 +30,7 @@ export declare const safeAreaCompatibilityProfiles: ({
|
|
|
30
30
|
bottom: number;
|
|
31
31
|
};
|
|
32
32
|
maturity: "provisional";
|
|
33
|
-
rollout: "
|
|
33
|
+
rollout: "sharedDefault";
|
|
34
34
|
} | {
|
|
35
35
|
id: string;
|
|
36
36
|
platform: "ios";
|
|
@@ -46,5 +46,5 @@ export declare const safeAreaCompatibilityProfiles: ({
|
|
|
46
46
|
bottom: number;
|
|
47
47
|
};
|
|
48
48
|
maturity: "verified";
|
|
49
|
-
rollout: "
|
|
49
|
+
rollout: "sharedDefault";
|
|
50
50
|
})[];
|
|
@@ -16,7 +16,7 @@ export const safeAreaCompatibilityProfiles = [
|
|
|
16
16
|
devicePixelRatio: 3,
|
|
17
17
|
reserve: { bottom: 34 },
|
|
18
18
|
maturity: 'provisional',
|
|
19
|
-
rollout: '
|
|
19
|
+
rollout: 'sharedDefault',
|
|
20
20
|
},
|
|
21
21
|
{
|
|
22
22
|
id: 'ios-393x852-3x-portrait-standalone',
|
|
@@ -28,7 +28,7 @@ export const safeAreaCompatibilityProfiles = [
|
|
|
28
28
|
devicePixelRatio: 3,
|
|
29
29
|
reserve: { bottom: 34 },
|
|
30
30
|
maturity: 'provisional',
|
|
31
|
-
rollout: '
|
|
31
|
+
rollout: 'sharedDefault',
|
|
32
32
|
},
|
|
33
33
|
{
|
|
34
34
|
id: 'ios-402x874-3x-portrait-standalone',
|
|
@@ -40,7 +40,7 @@ export const safeAreaCompatibilityProfiles = [
|
|
|
40
40
|
devicePixelRatio: 3,
|
|
41
41
|
reserve: { bottom: 34 },
|
|
42
42
|
maturity: 'verified',
|
|
43
|
-
rollout: '
|
|
43
|
+
rollout: 'sharedDefault',
|
|
44
44
|
},
|
|
45
45
|
{
|
|
46
46
|
id: 'ios-430x932-3x-portrait-standalone',
|
|
@@ -52,6 +52,6 @@ export const safeAreaCompatibilityProfiles = [
|
|
|
52
52
|
devicePixelRatio: 3,
|
|
53
53
|
reserve: { bottom: 34 },
|
|
54
54
|
maturity: 'provisional',
|
|
55
|
-
rollout: '
|
|
55
|
+
rollout: 'sharedDefault',
|
|
56
56
|
},
|
|
57
57
|
];
|
package/docs/integration.md
CHANGED
|
@@ -19,7 +19,7 @@ coordinates lifecycle; it cannot make two independently styled tab bars match.
|
|
|
19
19
|
## 1. Install and create the sentinel
|
|
20
20
|
|
|
21
21
|
```sh
|
|
22
|
-
pnpm add -D @fullstack-webapp/document-shell
|
|
22
|
+
pnpm add -D @fullstack-webapp/document-shell
|
|
23
23
|
```
|
|
24
24
|
|
|
25
25
|
Replace the checked-in `index.html` with only the Vite module entry and the
|
|
@@ -250,17 +250,19 @@ Then consume the variable from both shell implementations:
|
|
|
250
250
|
```
|
|
251
251
|
|
|
252
252
|
The root entry projects only profiles whose package-owned rollout is
|
|
253
|
-
`sharedDefault`. The current beta
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
the
|
|
253
|
+
`sharedDefault`. The current beta includes all four accepted iOS standalone
|
|
254
|
+
portrait profiles. Their maturity remains distinct: one is verified and three
|
|
255
|
+
are provisional, but all receive the same bounded production rollout because a
|
|
256
|
+
wrong startup floor has a low and reversible visual consequence. Unsupported
|
|
257
|
+
signatures still fail open. Consumers cannot pass a model name, reserve value,
|
|
258
|
+
maturity, or rollout policy; narrowing or promotion happens in the package
|
|
259
|
+
after evidence review.
|
|
260
|
+
|
|
261
|
+
`@fullstack-webapp/document-shell/reference` is a temporary source-compatibility
|
|
262
|
+
entry for the reference application. The current catalog has no
|
|
263
|
+
`referenceProduction`-only profile, so this subpath projects the same profiles
|
|
264
|
+
as the root entry. New applications should not import it; it exits after the
|
|
265
|
+
reference application migrates to the root entry.
|
|
264
266
|
|
|
265
267
|
When a reserve matches, the bridge writes the declared CSS variable before
|
|
266
268
|
paint. It removes the reserve after the native inset reaches the profile floor
|
|
@@ -329,9 +331,10 @@ rather than adding delay to the handoff.
|
|
|
329
331
|
|
|
330
332
|
### Safe-area reserve is inactive
|
|
331
333
|
|
|
332
|
-
No `sharedDefault` profile matched the observable runtime signature
|
|
333
|
-
|
|
334
|
-
|
|
334
|
+
No `sharedDefault` profile matched the observable runtime signature, or the
|
|
335
|
+
runtime platform/version/display-mode tuple did not qualify. This is the safe
|
|
336
|
+
failure mode. Capture evidence before proposing a package profile; do not
|
|
337
|
+
hard-code an application-side model table.
|
|
335
338
|
|
|
336
339
|
### A diagnostics marker appears in production
|
|
337
340
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fullstack-webapp/document-shell",
|
|
3
|
-
"version": "0.1.0-beta.
|
|
3
|
+
"version": "0.1.0-beta.3",
|
|
4
4
|
"description": "Parser-visible startup shell compiler, Vite HTML pipeline, and framework-neutral runtime handoff for web applications.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"publishConfig": {
|
|
48
48
|
"access": "public",
|
|
49
|
-
"tag": "
|
|
49
|
+
"tag": "latest"
|
|
50
50
|
},
|
|
51
51
|
"peerDependencies": {
|
|
52
52
|
"vite": ">=7 <9"
|