@celestia-island/hikari 0.55.128 → 0.55.130
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/package.json
CHANGED
|
@@ -18,8 +18,20 @@ import type { SurfacePhase } from "../runtime/surfaceMachine";
|
|
|
18
18
|
* always plays over the content the user was actually looking at. Vue's
|
|
19
19
|
* patch skips identical vnode references, so the held DOM is never
|
|
20
20
|
* re-patched during the close; child components with their own store
|
|
21
|
-
* subscriptions may still self-update
|
|
22
|
-
*
|
|
21
|
+
* subscriptions may still self-update.
|
|
22
|
+
*
|
|
23
|
+
* ⚠️ CONTRACT for bodies under this hold (the 2026-10-06 chest crash:
|
|
24
|
+
* `TypeError: Cannot read properties of null (reading 'content')` in a
|
|
25
|
+
* report window's close fold): a held child that subscribed to the body's
|
|
26
|
+
* reactive reads re-renders with the FROZEN slot closures, so any slot
|
|
27
|
+
* body that re-reads a live ref at invocation time sees the host's
|
|
28
|
+
* teardown null and throws. The "self-updates are harmless" claim the
|
|
29
|
+
* original comment made is wrong in exactly that case. Bodies must render
|
|
30
|
+
* a per-render SNAPSHOT of their nullable state (read it once in the
|
|
31
|
+
* render function, hand the captured value to every deferred closure) —
|
|
32
|
+
* never re-read the live ref inside a slot or callback the fold can
|
|
33
|
+
* re-run. (The failure mode under repair remains content VANISHING; a
|
|
34
|
+
* throwing deferred read is the second, sharper failure mode.)
|
|
23
35
|
*
|
|
24
36
|
* The hold releases the moment the surface leaves a closing phase: a
|
|
25
37
|
* reopen interrupt (closing → openingFrom) serves live slots again, and
|
package/src/scale.scss
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* foundation) were normalized to the values the production composition
|
|
8
8
|
* resolves to (chest: admin-tokens + foundation last). This file is the
|
|
9
9
|
* upstream of styles/theme/scale.scss — edit here, then re-run
|
|
10
|
-
* scripts/theme/sync-vendored.
|
|
10
|
+
* scripts/theme/sync-vendored.py; do not hand-edit the vendored copy.
|
|
11
11
|
*/
|
|
12
12
|
:root {
|
|
13
13
|
/* Spacing (N px at the 16px root). */
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
* foundation) were normalized to the values the production composition
|
|
10
10
|
* resolves to (chest: admin-tokens + foundation last). This file is the
|
|
11
11
|
* upstream of styles/theme/scale.scss — edit here, then re-run
|
|
12
|
-
* scripts/theme/sync-vendored.
|
|
12
|
+
* scripts/theme/sync-vendored.py; do not hand-edit the vendored copy.
|
|
13
13
|
*/
|
|
14
14
|
:root {
|
|
15
15
|
/* Spacing (N px at the 16px root). */
|
|
@@ -16,7 +16,7 @@ import { describe, expect, it } from "vitest";
|
|
|
16
16
|
*
|
|
17
17
|
* The re-copy adds exactly one provenance header comment block; everything
|
|
18
18
|
* after it must match the upstream byte-for-byte. Edit the UPSTREAM, then
|
|
19
|
-
* re-run scripts/theme/sync-vendored.
|
|
19
|
+
* re-run scripts/theme/sync-vendored.py — never hand-edit the copies.
|
|
20
20
|
*/
|
|
21
21
|
|
|
22
22
|
const stylesDir = resolve(dirname(fileURLToPath(import.meta.url)));
|