@wardic/dom 1.0.0-rc.2 → 1.0.0-rc.4

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/dist/index.d.ts CHANGED
@@ -27,7 +27,7 @@ import type * as RefreshFrameSource from "@wardic/core/RefreshFrameSource";
27
27
  import type * as Renderer from "@wardic/core/Renderer";
28
28
  import * as Layer from "effect/Layer";
29
29
  import { AtomRegistry } from "effect/reactivity";
30
- export declare const VERSION = "1.0.0-rc.2";
30
+ export declare const VERSION = "1.0.0-rc.4";
31
31
  export * as DomClock from "./DomClock.ts";
32
32
  export * as DomInput from "./DomInput.ts";
33
33
  export * as DomProbe from "./DomProbe.ts";
package/dist/index.js CHANGED
@@ -8,7 +8,7 @@ import * as DomInterpolators from "./DomInterpolators.js";
8
8
  import * as DomPositionalKeys from "./DomPositionalKeys.js";
9
9
  import * as DomProbe from "./DomProbe.js";
10
10
  import * as DomRenderer from "./DomRenderer.js";
11
- export const VERSION = "1.0.0-rc.2";
11
+ export const VERSION = "1.0.0-rc.4";
12
12
  export * as DomClock from "./DomClock.js";
13
13
  export * as DomInput from "./DomInput.js";
14
14
  export * as DomProbe from "./DomProbe.js";
@@ -1 +1 @@
1
- {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/internal/probe.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAK3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAMrC,OAAO,EAAQ,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAgItD;;;;GAIG;AAIH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAE7E,CAAA"}
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/internal/probe.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAK3C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAMrC,OAAO,EAAQ,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAiItD;;;;GAIG;AAIH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAE7E,CAAA"}
@@ -16,6 +16,7 @@ import { makeScroll } from "./scroll.js";
16
16
  /** An `IntersectionObserver`'s init from the Probe's options: each left out when not given. */
17
17
  const observerInit = (options) => ({
18
18
  ...UndefinedOr.match(options.root, { onUndefined: () => ({}), onDefined: (root) => ({ root }) }),
19
+ // The DOM's margin is a string, `rootMargin`'s syntax, as `root` is an element (#610).
19
20
  ...UndefinedOr.match(options.margin, { onUndefined: () => ({}), onDefined: (rootMargin) => ({ rootMargin }) }),
20
21
  ...UndefinedOr.match(options.amount, { onUndefined: () => ({}), onDefined: (threshold) => ({ threshold }) }),
21
22
  });
@@ -60,18 +61,18 @@ const make = Effect.gen(function* () {
60
61
  const prefersReducedMotion = Atom.keepAlive(Atom.make(Option.exists(mql, (query) => query.matches)));
61
62
  if (Option.isSome(mql)) {
62
63
  // The MediaQueryList's `change` listener is the Atom's only writer, and it writes inside the
63
- // event, as `viewport`'s and `pageVisible`'s do: a reader sees the new preference before the next
64
+ // event, as `viewport`'s and `visible`'s do: a reader sees the new preference before the next
64
65
  // frame (#618, M8: a fiber over `Stream.fromEventListener` set it a task later).
65
66
  const query = mql.value;
66
67
  const writeReduced = (event) => registry.set(prefersReducedMotion, event.matches);
67
68
  yield* Effect.acquireRelease(Effect.sync(() => query.addEventListener("change", writeReduced)), () => Effect.sync(() => query.removeEventListener("change", writeReduced)));
68
69
  }
69
- // --- pageVisible (#443) ---------------------------------------------------
70
+ // --- visible (#443, #610) ---------------------------------------------------
70
71
  // The document's `visibilitychange` listener is its only writer, and it writes inside the event,
71
72
  // as `viewport`'s does: a reader sees the page hidden before the next frame.
72
- const pageVisible = Atom.keepAlive(Atom.make(document.visibilityState !== "hidden"));
73
- const writePageVisible = () => registry.set(pageVisible, document.visibilityState !== "hidden");
74
- yield* Effect.acquireRelease(Effect.sync(() => document.addEventListener("visibilitychange", writePageVisible)), () => Effect.sync(() => document.removeEventListener("visibilitychange", writePageVisible)));
73
+ const visible = Atom.keepAlive(Atom.make(document.visibilityState !== "hidden"));
74
+ const writeVisible = () => registry.set(visible, document.visibilityState !== "hidden");
75
+ yield* Effect.acquireRelease(Effect.sync(() => document.addEventListener("visibilitychange", writeVisible)), () => Effect.sync(() => document.removeEventListener("visibilitychange", writeVisible)));
75
76
  // --- observeResize ------------------------------------------------------
76
77
  // One ResizeObserver per target, ref-counted via `SharedSource.byTarget`. The
77
78
  // observer is constructed on the first subscriber; `Effect.addFinalizer`
@@ -98,7 +99,7 @@ const make = Effect.gen(function* () {
98
99
  measure: (target) => Effect.sync(() => toBounds(target.getBoundingClientRect())),
99
100
  viewport,
100
101
  prefersReducedMotion,
101
- pageVisible,
102
+ visible,
102
103
  // A container's scroll, set within its events (#234): `scroll.ts`.
103
104
  scroll: yield* makeScroll(registry),
104
105
  observeResize,
@@ -1 +1 @@
1
- {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/internal/probe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/internal/probe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wardic/dom",
3
- "version": "1.0.0-rc.2",
3
+ "version": "1.0.0-rc.4",
4
4
  "description": "The browser environment for Wardic: its clock, renderer, input, probe and projection system, as Effect Layers.",
5
5
  "keywords": [
6
6
  "animation",
@@ -55,13 +55,13 @@
55
55
  "typecheck:tests": "../../node_modules/typescript-7/bin/tsc -p tsconfig.test.json"
56
56
  },
57
57
  "dependencies": {
58
- "@wardic/core": "1.0.0-rc.2",
58
+ "@wardic/core": "1.0.0-rc.4",
59
59
  "culori": "^4.0.2"
60
60
  },
61
61
  "peerDependencies": {
62
62
  "effect": "^4.1.1"
63
63
  },
64
64
  "devDependencies": {
65
- "@wardic/test": "1.0.0-rc.2"
65
+ "@wardic/test": "1.0.0-rc.4"
66
66
  }
67
67
  }
package/src/index.ts CHANGED
@@ -36,7 +36,7 @@ import * as DomPositionalKeys from "./DomPositionalKeys.ts"
36
36
  import * as DomProbe from "./DomProbe.ts"
37
37
  import * as DomRenderer from "./DomRenderer.ts"
38
38
 
39
- export const VERSION = "1.0.0-rc.2"
39
+ export const VERSION = "1.0.0-rc.4"
40
40
 
41
41
  export * as DomClock from "./DomClock.ts"
42
42
  export * as DomInput from "./DomInput.ts"
@@ -4,7 +4,7 @@
4
4
  * preference, whether the page is shown (`document.visibilityState`, #443), and per-target
5
5
  * resize/intersection observation streams.
6
6
  *
7
- * The writable Atoms (`viewport`, `prefersReducedMotion`, `pageVisible`) are pinned with
7
+ * The writable Atoms (`viewport`, `prefersReducedMotion`, `visible`) are pinned with
8
8
  * `keepAlive` and written through the
9
9
  * Environment's {@link AtomRegistry} captured at build time — the same registry
10
10
  * a consumer reads `Probe.viewport`/`Probe.prefersReducedMotion` from — so the
@@ -43,7 +43,8 @@ import { makeScroll } from "./scroll.ts"
43
43
  /** An `IntersectionObserver`'s init from the Probe's options: each left out when not given. */
44
44
  const observerInit = (options: Probe.IntersectionOptions): IntersectionObserverInit => ({
45
45
  ...UndefinedOr.match(options.root as Element | Document | undefined, { onUndefined: () => ({}), onDefined: (root) => ({ root }) }),
46
- ...UndefinedOr.match(options.margin, { onUndefined: () => ({}), onDefined: (rootMargin) => ({ rootMargin }) }),
46
+ // The DOM's margin is a string, `rootMargin`'s syntax, as `root` is an element (#610).
47
+ ...UndefinedOr.match(options.margin as string | undefined, { onUndefined: () => ({}), onDefined: (rootMargin) => ({ rootMargin }) }),
47
48
  ...UndefinedOr.match(options.amount, { onUndefined: () => ({}), onDefined: (threshold) => ({ threshold }) }),
48
49
  })
49
50
 
@@ -97,7 +98,7 @@ const make = Effect.gen(function* () {
97
98
  const prefersReducedMotion = Atom.keepAlive(Atom.make(Option.exists(mql, (query) => query.matches)))
98
99
  if (Option.isSome(mql)) {
99
100
  // The MediaQueryList's `change` listener is the Atom's only writer, and it writes inside the
100
- // event, as `viewport`'s and `pageVisible`'s do: a reader sees the new preference before the next
101
+ // event, as `viewport`'s and `visible`'s do: a reader sees the new preference before the next
101
102
  // frame (#618, M8: a fiber over `Stream.fromEventListener` set it a task later).
102
103
  const query = mql.value
103
104
  const writeReduced = (event: MediaQueryListEvent): void => registry.set(prefersReducedMotion, event.matches)
@@ -107,14 +108,14 @@ const make = Effect.gen(function* () {
107
108
  )
108
109
  }
109
110
 
110
- // --- pageVisible (#443) ---------------------------------------------------
111
+ // --- visible (#443, #610) ---------------------------------------------------
111
112
  // The document's `visibilitychange` listener is its only writer, and it writes inside the event,
112
113
  // as `viewport`'s does: a reader sees the page hidden before the next frame.
113
- const pageVisible = Atom.keepAlive(Atom.make(document.visibilityState !== "hidden"))
114
- const writePageVisible = (): void => registry.set(pageVisible, document.visibilityState !== "hidden")
114
+ const visible = Atom.keepAlive(Atom.make(document.visibilityState !== "hidden"))
115
+ const writeVisible = (): void => registry.set(visible, document.visibilityState !== "hidden")
115
116
  yield* Effect.acquireRelease(
116
- Effect.sync(() => document.addEventListener("visibilitychange", writePageVisible)),
117
- () => Effect.sync(() => document.removeEventListener("visibilitychange", writePageVisible)),
117
+ Effect.sync(() => document.addEventListener("visibilitychange", writeVisible)),
118
+ () => Effect.sync(() => document.removeEventListener("visibilitychange", writeVisible)),
118
119
  )
119
120
 
120
121
  // --- observeResize ------------------------------------------------------
@@ -155,7 +156,7 @@ const make = Effect.gen(function* () {
155
156
  measure: (target) => Effect.sync(() => toBounds((target as Element).getBoundingClientRect())),
156
157
  viewport,
157
158
  prefersReducedMotion,
158
- pageVisible,
159
+ visible,
159
160
  // A container's scroll, set within its events (#234): `scroll.ts`.
160
161
  scroll: yield* makeScroll(registry),
161
162
  observeResize,