@wardic/dom 1.0.0-rc.3 → 1.0.0-rc.5

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.
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The DOM's Probe: boxes from `getBoundingClientRect`, sizes and visibility from the observers, the
3
- * viewport, the reduced-motion preference from `matchMedia`, whether the page is shown, and a container's
4
- * scroll. `layer` needs the Environment's `AtomRegistry`, which it writes its live values through;
5
- * `DomLive` provides both.
3
+ * viewport, the reduced-motion preference from `matchMedia`, and whether the page is shown. `layer` needs
4
+ * the Environment's `AtomRegistry`, which it writes its live values through; `DomLive` provides both. A
5
+ * container's scroll is `DomScrollSource`'s.
6
6
  *
7
7
  * @example
8
8
  * import * as DomProbe from "@wardic/dom/DomProbe"
package/dist/DomProbe.js CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The DOM's Probe: boxes from `getBoundingClientRect`, sizes and visibility from the observers, the
3
- * viewport, the reduced-motion preference from `matchMedia`, whether the page is shown, and a container's
4
- * scroll. `layer` needs the Environment's `AtomRegistry`, which it writes its live values through;
5
- * `DomLive` provides both.
3
+ * viewport, the reduced-motion preference from `matchMedia`, and whether the page is shown. `layer` needs
4
+ * the Environment's `AtomRegistry`, which it writes its live values through; `DomLive` provides both. A
5
+ * container's scroll is `DomScrollSource`'s.
6
6
  *
7
7
  * @example
8
8
  * import * as DomProbe from "@wardic/dom/DomProbe"
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The DOM's scroll, core's `ScrollSource`: a container's scroll as an Atom, set inside the container's
3
+ * `scroll` event, the window's `resize`, and a resize of the container or its content, so a value derived
4
+ * from a scroll is written in the frame that shows it. `layer` needs the Environment's `AtomRegistry`,
5
+ * which it writes through. A binding builds it where something reads a scroll: the Solid binding's
6
+ * `scroll` Feature does, beside `DomLive`.
7
+ *
8
+ * @example
9
+ * import * as DomScrollSource from "@wardic/dom/DomScrollSource"
10
+ *
11
+ * const scroll = DomScrollSource.layer.pipe(Layer.provide(AtomRegistry.layer))
12
+ */
13
+ export { layer } from "./internal/scroll.ts";
14
+ //# sourceMappingURL=DomScrollSource.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomScrollSource.d.ts","sourceRoot":"","sources":["../src/DomScrollSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * The DOM's scroll, core's `ScrollSource`: a container's scroll as an Atom, set inside the container's
3
+ * `scroll` event, the window's `resize`, and a resize of the container or its content, so a value derived
4
+ * from a scroll is written in the frame that shows it. `layer` needs the Environment's `AtomRegistry`,
5
+ * which it writes through. A binding builds it where something reads a scroll: the Solid binding's
6
+ * `scroll` Feature does, beside `DomLive`.
7
+ *
8
+ * @example
9
+ * import * as DomScrollSource from "@wardic/dom/DomScrollSource"
10
+ *
11
+ * const scroll = DomScrollSource.layer.pipe(Layer.provide(AtomRegistry.layer))
12
+ */
13
+ // `@wardic/dom/DomScrollSource` (#518, ADR-0041's names): the DOM Probe's `scroll` until then.
14
+ export { layer } from "./internal/scroll.js";
15
+ //# sourceMappingURL=DomScrollSource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DomScrollSource.js","sourceRoot":"","sources":["../src/DomScrollSource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,+FAA+F;AAC/F,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA"}
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Scroll offsets, the DOM's: Motion's syntax for where a target's progress through its scroll container
3
- * runs, from 0 to 1, which the DOM's `Probe.scroll` resolves. Core takes an offset as its Environment's
3
+ * runs, from 0 to 1, which the DOM's `ScrollSource` resolves. Core takes an offset as its Environment's
4
4
  * own and passes it through, so its syntax, its names and its units are the DOM's.
5
5
  *
6
6
  * - **An edge** is a name (`start`, `center`, `end`), a fraction of a length (`0.5`), or a CSS length:
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Scroll offsets, the DOM's: Motion's syntax for where a target's progress through its scroll container
3
- * runs, from 0 to 1, which the DOM's `Probe.scroll` resolves. Core takes an offset as its Environment's
3
+ * runs, from 0 to 1, which the DOM's `ScrollSource` resolves. Core takes an offset as its Environment's
4
4
  * own and passes it through, so its syntax, its names and its units are the DOM's.
5
5
  *
6
6
  * - **An edge** is a name (`start`, `center`, `end`), a fraction of a length (`0.5`), or a CSS length:
package/dist/index.d.ts CHANGED
@@ -2,12 +2,13 @@
2
2
  * `@wardic/dom`: the browser Environment, and the framework-free pieces a binding builds on. It's for
3
3
  * binding authors, Wardic's own and any other, and it's Effect-typed.
4
4
  *
5
- * - **An app** imports {@link DomLive}, the composed Environment it hands its binding, and
6
- * {@link CheckFrames}, to check its Frames in development.
5
+ * - **An app** imports {@link DomLive}, the composed Environment it hands its binding,
6
+ * {@link CheckFrames}, to check its Frames in development, and {@link FrameLoopMetrics}, to record the
7
+ * Frame loop's metrics.
7
8
  * - **A binding** imports each module by its subpath, as a namespace
8
9
  * (`import * as FlushGate from "@wardic/dom/FlushGate"`), and the root re-exports each one:
9
10
  * - the DOM's implementations of core's services, each with its `layer` (Effect's platform
10
- * convention: `DomRenderer`, `DomInput`, `DomProbe`, `DomClock`, `DomAnnouncer`,
11
+ * convention: `DomRenderer`, `DomInput`, `DomProbe`, `DomScrollSource`, `DomClock`, `DomAnnouncer`,
11
12
  * `DomInterpolators`, `DomPositionalKeys`, `DomDefaultTransition`), and `DomKeyRules`, the Key
12
13
  * rules `DomInterpolators.layer` installs, which has none of its own;
13
14
  * - dom's own concepts, by the glossary's names: `FlushGate`, `ProjectionSystem`,
@@ -27,10 +28,11 @@ import type * as RefreshFrameSource from "@wardic/core/RefreshFrameSource";
27
28
  import type * as Renderer from "@wardic/core/Renderer";
28
29
  import * as Layer from "effect/Layer";
29
30
  import { AtomRegistry } from "effect/reactivity";
30
- export declare const VERSION = "1.0.0-rc.3";
31
+ export declare const VERSION = "1.0.0-rc.5";
31
32
  export * as DomClock from "./DomClock.ts";
32
33
  export * as DomInput from "./DomInput.ts";
33
34
  export * as DomProbe from "./DomProbe.ts";
35
+ export * as DomScrollSource from "./DomScrollSource.ts";
34
36
  export * as DomRenderer from "./DomRenderer.ts";
35
37
  export * as DomAnnouncer from "./DomAnnouncer.ts";
36
38
  export * as DomInterpolators from "./DomInterpolators.ts";
@@ -57,6 +59,13 @@ export * as Report from "./Report.ts";
57
59
  * it's for development: see https://wardic.dev/guides/observability.
58
60
  */
59
61
  export { CheckFrames } from "@wardic/core/FrameLoop";
62
+ /**
63
+ * Core's Frame loop metrics (`FrameLoop.layerMetrics`), here for an app. Merged beside {@link DomLive},
64
+ * the loop records the animations running, the runs that settled or failed, and each tick's ms, for the
65
+ * devtools or an exporter to read. Without it, it records none: see
66
+ * https://wardic.dev/guides/observability.
67
+ */
68
+ export { layerMetrics as FrameLoopMetrics } from "@wardic/core/FrameLoop";
60
69
  /**
61
70
  * The browser Environment, composed: the DOM's services, core's interpolators with the DOM's Key
62
71
  * rules, and the Frame loop over the DOM's Clock, needing nothing else. Hand it to `WardicProvider`'s
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,KAAK,oBAAoB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,KAAK,SAAS,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,KAAK,iBAAiB,MAAM,gCAAgC,CAAA;AACxE,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,KAAK,kBAAkB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAShD,eAAO,MAAM,OAAO,eAAe,CAAA;AAEnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;;;;;;GAUG;AAOH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,CAC7B,KAAK,CAAC,KAAK,GACX,kBAAkB,CAAC,kBAAkB,GACrC,SAAS,CAAC,SAAS,GACnB,QAAQ,CAAC,QAAQ,GACjB,KAAK,CAAC,KAAK,GACX,oBAAoB,CAAC,oBAAoB,GACzC,aAAa,CAAC,cAAc,GAC5B,iBAAiB,CAAC,iBAAiB,GACnC,SAAS,CAAC,SAAS,GACnB,YAAY,CAAC,YAAY,CAM5B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,KAAK,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AACnD,OAAO,KAAK,KAAK,oBAAoB,MAAM,mCAAmC,CAAA;AAC9E,OAAO,KAAK,KAAK,SAAS,MAAM,wBAAwB,CAAA;AACxD,OAAO,KAAK,KAAK,iBAAiB,MAAM,gCAAgC,CAAA;AACxE,OAAO,KAAK,KAAK,aAAa,MAAM,4BAA4B,CAAA;AAChE,OAAO,KAAK,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,KAAK,kBAAkB,MAAM,iCAAiC,CAAA;AAC1E,OAAO,KAAK,KAAK,QAAQ,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAShD,eAAO,MAAM,OAAO,eAAe,CAAA;AAEnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzE;;;;;;;;;;GAUG;AAOH,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,CAC7B,KAAK,CAAC,KAAK,GACX,kBAAkB,CAAC,kBAAkB,GACrC,SAAS,CAAC,SAAS,GACnB,QAAQ,CAAC,QAAQ,GACjB,KAAK,CAAC,KAAK,GACX,oBAAoB,CAAC,oBAAoB,GACzC,aAAa,CAAC,cAAc,GAC5B,iBAAiB,CAAC,iBAAiB,GACnC,SAAS,CAAC,SAAS,GACnB,YAAY,CAAC,YAAY,CAM5B,CAAA"}
package/dist/index.js CHANGED
@@ -8,10 +8,11 @@ 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.3";
11
+ export const VERSION = "1.0.0-rc.5";
12
12
  export * as DomClock from "./DomClock.js";
13
13
  export * as DomInput from "./DomInput.js";
14
14
  export * as DomProbe from "./DomProbe.js";
15
+ export * as DomScrollSource from "./DomScrollSource.js";
15
16
  export * as DomRenderer from "./DomRenderer.js";
16
17
  export * as DomAnnouncer from "./DomAnnouncer.js";
17
18
  export * as DomInterpolators from "./DomInterpolators.js";
@@ -39,6 +40,14 @@ export * as Report from "./Report.js";
39
40
  */
40
41
  // ADR-0030 decision 7; re-exported here for an app (#586).
41
42
  export { CheckFrames } from "@wardic/core/FrameLoop";
43
+ /**
44
+ * Core's Frame loop metrics (`FrameLoop.layerMetrics`), here for an app. Merged beside {@link DomLive},
45
+ * the loop records the animations running, the runs that settled or failed, and each tick's ms, for the
46
+ * devtools or an exporter to read. Without it, it records none: see
47
+ * https://wardic.dev/guides/observability.
48
+ */
49
+ // #518, ADR-0067 *Amendment (#518)*, decision 2: opt-in, re-exported here for an app, as `CheckFrames` is.
50
+ export { layerMetrics as FrameLoopMetrics } from "@wardic/core/FrameLoop";
42
51
  /**
43
52
  * The browser Environment, composed: the DOM's services, core's interpolators with the DOM's Key
44
53
  * rules, and the Frame loop over the DOM's Clock, needing nothing else. Hand it to `WardicProvider`'s
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AAQnD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAA;AAEnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;GAMG;AACH,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;;;;;;GAUG;AACH,qGAAqG;AACrG,kGAAkG;AAClG,iGAAiG;AACjG,uGAAuG;AACvG,mGAAmG;AACnG,iEAAiE;AACjE,MAAM,CAAC,MAAM,OAAO,GAWhB,SAAS,CAAC,KAAK,CAAC,IAAI,CACtB,KAAK,CAAC,YAAY,CAChB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CACnK,EACD,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CACvC,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,SAAS,MAAM,wBAAwB,CAAA;AAQnD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C,MAAM,CAAC,MAAM,OAAO,GAAG,YAAY,CAAA;AAEnC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,eAAe,MAAM,sBAAsB,CAAA;AACvD,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,oBAAoB,MAAM,2BAA2B,CAAA;AACjE,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAC/C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,gBAAgB,MAAM,uBAAuB,CAAA;AACzD,OAAO,KAAK,mBAAmB,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,iBAAiB,MAAM,wBAAwB,CAAA;AAC3D,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAA;AACjD,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;;GAMG;AACH,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AAEpD;;;;;GAKG;AACH,2GAA2G;AAC3G,OAAO,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAEzE;;;;;;;;;;GAUG;AACH,qGAAqG;AACrG,kGAAkG;AAClG,iGAAiG;AACjG,uGAAuG;AACvG,mGAAmG;AACnG,iEAAiE;AACjE,MAAM,CAAC,MAAM,OAAO,GAWhB,SAAS,CAAC,KAAK,CAAC,IAAI,CACtB,KAAK,CAAC,YAAY,CAChB,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,iBAAiB,CAAC,KAAK,EAAE,oBAAoB,CAAC,KAAK,EAAE,YAAY,CAAC,KAAK,CAAC,CACnK,EACD,KAAK,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CACvC,CAAA"}
@@ -3,7 +3,7 @@
3
3
  * observed now and as it's added, and let go as it's removed. A deep change counts once it resizes
4
4
  * the direct child it sits in.
5
5
  *
6
- * - `Probe.scroll` watches a container's (the page's: the body's), so its range follows its content
6
+ * - The DOM's `ScrollSource` watches a container's (the page's: the body's), so its range follows its content
7
7
  * (#239, ADR-0043 *Amendment (#239)*).
8
8
  * - The Projection system watches the page's, so a node that content elsewhere moved is measured again
9
9
  * (#261, ADR-0018 *Amendment (#261)*).
@@ -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;AAiItD;;;;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;AA8HtD;;;;GAIG;AAIH,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAE7E,CAAA"}
@@ -11,7 +11,6 @@ import * as Stream from "effect/Stream";
11
11
  import * as UndefinedOr from "effect/UndefinedOr";
12
12
  import { Atom, AtomRegistry } from "effect/reactivity";
13
13
  import { requireGlobal } from "./require-global.js";
14
- import { makeScroll } from "./scroll.js";
15
14
  /** Map a `DOMRect`-like value onto the engine's portable {@link Bounds}. */
16
15
  /** An `IntersectionObserver`'s init from the Probe's options: each left out when not given. */
17
16
  const observerInit = (options) => ({
@@ -100,8 +99,6 @@ const make = Effect.gen(function* () {
100
99
  viewport,
101
100
  prefersReducedMotion,
102
101
  visible,
103
- // A container's scroll, set within its events (#234): `scroll.ts`.
104
- scroll: yield* makeScroll(registry),
105
102
  observeResize,
106
103
  observeIntersection,
107
104
  });
@@ -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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"}
@@ -1,13 +1,13 @@
1
1
  /**
2
- * `Probe.scroll` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*): a container's scroll as an
3
- * Atom, set inside the container's `scroll` event, the window's `resize`, and a resize of the
4
- * container or its content (#239), so a value derived from a scroll is written in the frame that
5
- * shows it (#45's pattern for `viewport`).
2
+ * `ScrollSource` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*; the Probe's `scroll` until
3
+ * #518): a container's scroll as an Atom, set inside the container's `scroll` event, the window's
4
+ * `resize`, and a resize of the container or its content (#239), so a value derived from a scroll is
5
+ * written in the frame that shows it (#45's pattern for `viewport`).
6
6
  *
7
7
  * One listener set a container, however many read it: a reader adds its own measure to the
8
8
  * container's set and takes it out when its Scope closes, and the last one out removes the
9
- * listeners. An `RcMap` of containers, not a `SharedSource`: no pump, so a reader sets its Atom
10
- * inside the event, where `SharedSource`'s pump would set it a task after.
9
+ * listeners: core's `SharedSource.counted`, not a shared Stream, so a reader sets its Atom inside the
10
+ * event, where a Stream's consumer would set it after.
11
11
  *
12
12
  * A reader with a `target` or an `offset` reads its progress on `axis` through Motion's offsets
13
13
  * (`ScrollOffset`, the DOM's syntax; `render/dom/scroll/offsets` in framer-motion 13.4.0, ported):
@@ -26,10 +26,12 @@
26
26
  *
27
27
  * Observability: per event, so quiet (no span, no log).
28
28
  */
29
- import type * as Probe from "@wardic/core/Probe";
30
- import * as Effect from "effect/Effect";
31
- import { Atom, type AtomRegistry } from "effect/reactivity";
32
- import type * as Scope from "effect/Scope";
33
- /** The DOM's `Probe.scroll`, its Atoms set through `registry`: its containers held in the current Scope. */
34
- export declare const makeScroll: (registry: AtomRegistry.AtomRegistry) => Effect.Effect<(options?: Probe.ScrollOptions) => Effect.Effect<Atom.Atom<Probe.Scroll>, never, Scope.Scope>, never, Scope.Scope>;
29
+ import * as ScrollSource from "@wardic/core/ScrollSource";
30
+ import * as Layer from "effect/Layer";
31
+ import { AtomRegistry } from "effect/reactivity";
32
+ /**
33
+ * The DOM's `ScrollSource`, over the Environment's `AtomRegistry`. Marked pure, so an app that never
34
+ * builds it, with no `scroll` Feature, ships none of this module (#518).
35
+ */
36
+ export declare const layer: Layer.Layer<ScrollSource.ScrollSource, never, AtomRegistry.AtomRegistry>;
35
37
  //# sourceMappingURL=scroll.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,oBAAoB,CAAA;AAGhD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAQvC,OAAO,EAAE,IAAI,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAE3D,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAyO1C,4GAA4G;AAC5G,eAAO,MAAM,UAAU,aACX,YAAY,CAAC,YAAY,KAClC,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,aAAa,KAAK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAO/H,CAAA"}
1
+ {"version":3,"file":"scroll.d.ts","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,OAAO,KAAK,YAAY,MAAM,2BAA2B,CAAA;AAMzD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAKrC,OAAO,EAAQ,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAkTtD;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,EAAE,YAAY,CAAC,YAAY,CAO1F,CAAA"}
@@ -1,14 +1,43 @@
1
+ /**
2
+ * `ScrollSource` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*; the Probe's `scroll` until
3
+ * #518): a container's scroll as an Atom, set inside the container's `scroll` event, the window's
4
+ * `resize`, and a resize of the container or its content (#239), so a value derived from a scroll is
5
+ * written in the frame that shows it (#45's pattern for `viewport`).
6
+ *
7
+ * One listener set a container, however many read it: a reader adds its own measure to the
8
+ * container's set and takes it out when its Scope closes, and the last one out removes the
9
+ * listeners: core's `SharedSource.counted`, not a shared Stream, so a reader sets its Atom inside the
10
+ * event, where a Stream's consumer would set it after.
11
+ *
12
+ * A reader with a `target` or an `offset` reads its progress on `axis` through Motion's offsets
13
+ * (`ScrollOffset`, the DOM's syntax; `render/dom/scroll/offsets` in framer-motion 13.4.0, ported):
14
+ * each stop resolves to a scroll
15
+ * position, the target's edge (in the target's length, from where it sits in the container) less
16
+ * the container's edge (in the container's), and progress runs piecewise between them, clamped.
17
+ *
18
+ * **The content's size** (#239, ADR-0043 *Amendment (#239)*): content that grows or shrinks with the
19
+ * scroll still changes the range and a target's offsets, and fires no `scroll`. One `ResizeObserver`
20
+ * a container watches its own box and its direct children (the page: the body and its children),
21
+ * a `MutationObserver` keeping the children watched as they're added and removed, and each reader's
22
+ * target. A deep change resizes the direct child it sits in. Nothing runs while nothing changes; a
23
+ * change is read after its layout, so what it moves paints a frame later. Overflow no watched box
24
+ * shows (an absolutely positioned descendant hanging out) isn't seen: Motion's `trackContentSize`
25
+ * reads the size every frame instead, opt-in.
26
+ *
27
+ * Observability: per event, so quiet (no span, no log).
28
+ */
29
+ import * as ScrollSource from "@wardic/core/ScrollSource";
30
+ import * as SharedSource from "@wardic/core/SharedSource";
1
31
  import * as Arr from "effect/Array";
2
32
  import * as Bool from "effect/Boolean";
3
33
  import * as Effect from "effect/Effect";
4
- import * as Equal from "effect/Equal";
5
34
  import * as Iter from "effect/Iterable";
35
+ import * as Layer from "effect/Layer";
6
36
  import * as Match from "effect/Match";
7
37
  import * as Option from "effect/Option";
8
38
  import * as Order from "effect/Order";
9
39
  import * as Predicate from "effect/Predicate";
10
- import * as RcMap from "effect/RcMap";
11
- import { Atom } from "effect/reactivity";
40
+ import { Atom, AtomRegistry } from "effect/reactivity";
12
41
  import * as Rec from "effect/Record";
13
42
  import * as Str from "effect/String";
14
43
  import * as UndefinedOr from "effect/UndefinedOr";
@@ -170,12 +199,6 @@ const sameScroll = (a, b) => Arr.every([
170
199
  ], Boolean);
171
200
  /** The page's scroller: `document.scrollingElement`, else the root element. */
172
201
  const pageOf = () => Option.getOrElse(Option.fromNullOr(document.scrollingElement), () => document.documentElement);
173
- /** The DOM's `Probe.scroll`, its Atoms set through `registry`: its containers held in the current Scope. */
174
- export const makeScroll = (registry) => Effect.map(
175
- // Each container's listeners while a reader holds them, the last one out removing them (#618, M7:
176
- // Effect's `RcMap` where a count was kept by hand). An element is keyed by reference: Effect's
177
- // structural `Hash` would walk a DOM node.
178
- RcMap.make({ lookup: (element) => Effect.acquireRelease(Effect.sync(() => open(element)), (container) => Effect.sync(container.remove)) }), (containers) => readerOf(registry, containers));
179
202
  /** A container's listener set, opened for its first reader. */
180
203
  const open = (element) => {
181
204
  const readers = new Set();
@@ -217,7 +240,7 @@ const open = (element) => {
217
240
  /** A reader of a container's scroll: the container's listeners held from `containers` while its Scope is open. */
218
241
  const readerOf = (registry, containers) => Effect.fnUntraced(function* (options = {}) {
219
242
  const element = UndefinedOr.match(options.container, { onUndefined: pageOf, onDefined: (given) => given });
220
- const container = yield* RcMap.get(containers, Equal.byReferenceUnsafe(element));
243
+ const container = yield* containers(element);
221
244
  const measure = measureOf(element, options);
222
245
  let last = measure();
223
246
  // Mounted while read, not kept alive: a kept-alive Atom's node never leaves the registry.
@@ -241,4 +264,15 @@ const readerOf = (registry, containers) => Effect.fnUntraced(function* (options
241
264
  });
242
265
  return atom;
243
266
  });
267
+ /**
268
+ * The DOM's `ScrollSource`, over the Environment's `AtomRegistry`. Marked pure, so an app that never
269
+ * builds it, with no `scroll` Feature, ships none of this module (#518).
270
+ */
271
+ export const layer = /*#__PURE__*/ Layer.effect(ScrollSource.ScrollSource)(
272
+ /*#__PURE__*/ Effect.map(AtomRegistry.AtomRegistry, (registry) => ({
273
+ // Each container's listeners while a reader holds them, the last one out removing them (#618, M7;
274
+ // #518: `SharedSource.counted`, where Effect's `RcMap` put its code in every app). An element is its
275
+ // own key, never hashed.
276
+ scroll: readerOf(registry, SharedSource.counted(open, (container) => Effect.sync(container.remove))),
277
+ })));
244
278
  //# sourceMappingURL=scroll.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/internal/scroll.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scroll.js","sourceRoot":"","sources":["../../src/internal/scroll.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.3",
3
+ "version": "1.0.0-rc.5",
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.3",
58
+ "@wardic/core": "1.0.0-rc.5",
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.3"
65
+ "@wardic/test": "1.0.0-rc.5"
66
66
  }
67
67
  }
package/src/DomProbe.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * The DOM's Probe: boxes from `getBoundingClientRect`, sizes and visibility from the observers, the
3
- * viewport, the reduced-motion preference from `matchMedia`, whether the page is shown, and a container's
4
- * scroll. `layer` needs the Environment's `AtomRegistry`, which it writes its live values through;
5
- * `DomLive` provides both.
3
+ * viewport, the reduced-motion preference from `matchMedia`, and whether the page is shown. `layer` needs
4
+ * the Environment's `AtomRegistry`, which it writes its live values through; `DomLive` provides both. A
5
+ * container's scroll is `DomScrollSource`'s.
6
6
  *
7
7
  * @example
8
8
  * import * as DomProbe from "@wardic/dom/DomProbe"
@@ -0,0 +1,14 @@
1
+ /**
2
+ * The DOM's scroll, core's `ScrollSource`: a container's scroll as an Atom, set inside the container's
3
+ * `scroll` event, the window's `resize`, and a resize of the container or its content, so a value derived
4
+ * from a scroll is written in the frame that shows it. `layer` needs the Environment's `AtomRegistry`,
5
+ * which it writes through. A binding builds it where something reads a scroll: the Solid binding's
6
+ * `scroll` Feature does, beside `DomLive`.
7
+ *
8
+ * @example
9
+ * import * as DomScrollSource from "@wardic/dom/DomScrollSource"
10
+ *
11
+ * const scroll = DomScrollSource.layer.pipe(Layer.provide(AtomRegistry.layer))
12
+ */
13
+ // `@wardic/dom/DomScrollSource` (#518, ADR-0041's names): the DOM Probe's `scroll` until then.
14
+ export { layer } from "./internal/scroll.ts"
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Scroll offsets, the DOM's: Motion's syntax for where a target's progress through its scroll container
3
- * runs, from 0 to 1, which the DOM's `Probe.scroll` resolves. Core takes an offset as its Environment's
3
+ * runs, from 0 to 1, which the DOM's `ScrollSource` resolves. Core takes an offset as its Environment's
4
4
  * own and passes it through, so its syntax, its names and its units are the DOM's.
5
5
  *
6
6
  * - **An edge** is a name (`start`, `center`, `end`), a fraction of a length (`0.5`), or a CSS length:
package/src/index.ts CHANGED
@@ -2,12 +2,13 @@
2
2
  * `@wardic/dom`: the browser Environment, and the framework-free pieces a binding builds on. It's for
3
3
  * binding authors, Wardic's own and any other, and it's Effect-typed.
4
4
  *
5
- * - **An app** imports {@link DomLive}, the composed Environment it hands its binding, and
6
- * {@link CheckFrames}, to check its Frames in development.
5
+ * - **An app** imports {@link DomLive}, the composed Environment it hands its binding,
6
+ * {@link CheckFrames}, to check its Frames in development, and {@link FrameLoopMetrics}, to record the
7
+ * Frame loop's metrics.
7
8
  * - **A binding** imports each module by its subpath, as a namespace
8
9
  * (`import * as FlushGate from "@wardic/dom/FlushGate"`), and the root re-exports each one:
9
10
  * - the DOM's implementations of core's services, each with its `layer` (Effect's platform
10
- * convention: `DomRenderer`, `DomInput`, `DomProbe`, `DomClock`, `DomAnnouncer`,
11
+ * convention: `DomRenderer`, `DomInput`, `DomProbe`, `DomScrollSource`, `DomClock`, `DomAnnouncer`,
11
12
  * `DomInterpolators`, `DomPositionalKeys`, `DomDefaultTransition`), and `DomKeyRules`, the Key
12
13
  * rules `DomInterpolators.layer` installs, which has none of its own;
13
14
  * - dom's own concepts, by the glossary's names: `FlushGate`, `ProjectionSystem`,
@@ -16,7 +17,8 @@
16
17
  *
17
18
  * Everything under `internal/` is dom's own and not exported.
18
19
  */
19
- // `@wardic/dom` (#132, ADR-0041), Tier 2 (ADR-0008); CheckFrames re-exported for an app (#586).
20
+ // `@wardic/dom` (#132, ADR-0041), Tier 2 (ADR-0008); CheckFrames re-exported for an app (#586), and
21
+ // FrameLoopMetrics (#518).
20
22
  import type * as Clock from "@wardic/core/Clock"
21
23
  import * as FrameLoop from "@wardic/core/FrameLoop"
22
24
  import type * as InterpolatorRegistry from "@wardic/core/InterpolatorRegistry"
@@ -36,11 +38,12 @@ import * as DomPositionalKeys from "./DomPositionalKeys.ts"
36
38
  import * as DomProbe from "./DomProbe.ts"
37
39
  import * as DomRenderer from "./DomRenderer.ts"
38
40
 
39
- export const VERSION = "1.0.0-rc.3"
41
+ export const VERSION = "1.0.0-rc.5"
40
42
 
41
43
  export * as DomClock from "./DomClock.ts"
42
44
  export * as DomInput from "./DomInput.ts"
43
45
  export * as DomProbe from "./DomProbe.ts"
46
+ export * as DomScrollSource from "./DomScrollSource.ts"
44
47
  export * as DomRenderer from "./DomRenderer.ts"
45
48
  export * as DomAnnouncer from "./DomAnnouncer.ts"
46
49
  export * as DomInterpolators from "./DomInterpolators.ts"
@@ -70,6 +73,15 @@ export * as Report from "./Report.ts"
70
73
  // ADR-0030 decision 7; re-exported here for an app (#586).
71
74
  export { CheckFrames } from "@wardic/core/FrameLoop"
72
75
 
76
+ /**
77
+ * Core's Frame loop metrics (`FrameLoop.layerMetrics`), here for an app. Merged beside {@link DomLive},
78
+ * the loop records the animations running, the runs that settled or failed, and each tick's ms, for the
79
+ * devtools or an exporter to read. Without it, it records none: see
80
+ * https://wardic.dev/guides/observability.
81
+ */
82
+ // #518, ADR-0067 *Amendment (#518)*, decision 2: opt-in, re-exported here for an app, as `CheckFrames` is.
83
+ export { layerMetrics as FrameLoopMetrics } from "@wardic/core/FrameLoop"
84
+
73
85
  /**
74
86
  * The browser Environment, composed: the DOM's services, core's interpolators with the DOM's Key
75
87
  * rules, and the Frame loop over the DOM's Clock, needing nothing else. Hand it to `WardicProvider`'s
@@ -3,7 +3,7 @@
3
3
  * observed now and as it's added, and let go as it's removed. A deep change counts once it resizes
4
4
  * the direct child it sits in.
5
5
  *
6
- * - `Probe.scroll` watches a container's (the page's: the body's), so its range follows its content
6
+ * - The DOM's `ScrollSource` watches a container's (the page's: the body's), so its range follows its content
7
7
  * (#239, ADR-0043 *Amendment (#239)*).
8
8
  * - The Projection system watches the page's, so a node that content elsewhere moved is measured again
9
9
  * (#261, ADR-0018 *Amendment (#261)*).
@@ -37,7 +37,6 @@ import * as Stream from "effect/Stream"
37
37
  import * as UndefinedOr from "effect/UndefinedOr"
38
38
  import { Atom, AtomRegistry } from "effect/reactivity"
39
39
  import { requireGlobal } from "./require-global.ts"
40
- import { makeScroll } from "./scroll.ts"
41
40
 
42
41
  /** Map a `DOMRect`-like value onto the engine's portable {@link Bounds}. */
43
42
  /** An `IntersectionObserver`'s init from the Probe's options: each left out when not given. */
@@ -157,8 +156,6 @@ const make = Effect.gen(function* () {
157
156
  viewport,
158
157
  prefersReducedMotion,
159
158
  visible,
160
- // A container's scroll, set within its events (#234): `scroll.ts`.
161
- scroll: yield* makeScroll(registry),
162
159
  observeResize,
163
160
  observeIntersection,
164
161
  })
@@ -1,13 +1,13 @@
1
1
  /**
2
- * `Probe.scroll` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*): a container's scroll as an
3
- * Atom, set inside the container's `scroll` event, the window's `resize`, and a resize of the
4
- * container or its content (#239), so a value derived from a scroll is written in the frame that
5
- * shows it (#45's pattern for `viewport`).
2
+ * `ScrollSource` for the DOM (#234, ADR-0043 *Amendment (#233, #234)*; the Probe's `scroll` until
3
+ * #518): a container's scroll as an Atom, set inside the container's `scroll` event, the window's
4
+ * `resize`, and a resize of the container or its content (#239), so a value derived from a scroll is
5
+ * written in the frame that shows it (#45's pattern for `viewport`).
6
6
  *
7
7
  * One listener set a container, however many read it: a reader adds its own measure to the
8
8
  * container's set and takes it out when its Scope closes, and the last one out removes the
9
- * listeners. An `RcMap` of containers, not a `SharedSource`: no pump, so a reader sets its Atom
10
- * inside the event, where `SharedSource`'s pump would set it a task after.
9
+ * listeners: core's `SharedSource.counted`, not a shared Stream, so a reader sets its Atom inside the
10
+ * event, where a Stream's consumer would set it after.
11
11
  *
12
12
  * A reader with a `target` or an `offset` reads its progress on `axis` through Motion's offsets
13
13
  * (`ScrollOffset`, the DOM's syntax; `render/dom/scroll/offsets` in framer-motion 13.4.0, ported):
@@ -26,18 +26,18 @@
26
26
  *
27
27
  * Observability: per event, so quiet (no span, no log).
28
28
  */
29
- import type * as Probe from "@wardic/core/Probe"
29
+ import * as ScrollSource from "@wardic/core/ScrollSource"
30
+ import * as SharedSource from "@wardic/core/SharedSource"
30
31
  import * as Arr from "effect/Array"
31
32
  import * as Bool from "effect/Boolean"
32
33
  import * as Effect from "effect/Effect"
33
- import * as Equal from "effect/Equal"
34
34
  import * as Iter from "effect/Iterable"
35
+ import * as Layer from "effect/Layer"
35
36
  import * as Match from "effect/Match"
36
37
  import * as Option from "effect/Option"
37
38
  import * as Order from "effect/Order"
38
39
  import * as Predicate from "effect/Predicate"
39
- import * as RcMap from "effect/RcMap"
40
- import { Atom, type AtomRegistry } from "effect/reactivity"
40
+ import { Atom, AtomRegistry } from "effect/reactivity"
41
41
  import * as Rec from "effect/Record"
42
42
  import type * as Scope from "effect/Scope"
43
43
  import * as Str from "effect/String"
@@ -219,7 +219,7 @@ const sizeOf = (target: Element): { readonly width: number; readonly height: num
219
219
  const plainProgress = (current: number, length: number): number => Bool.match(length === 0, { onTrue: () => 1, onFalse: () => current / length })
220
220
 
221
221
  /** What a reader measures, for `options` on `element`. Reads layout: called in events, never per frame. */
222
- const measureOf = (element: Element, options: Probe.ScrollOptions): (() => Probe.Scroll) => {
222
+ const measureOf = (element: Element, options: ScrollSource.Options): (() => ScrollSource.Scroll) => {
223
223
  const { axis = "y" } = options
224
224
  // The DOM's offset (core passes it through as the Environment's own); `All` with a target and none.
225
225
  const offset = UndefinedOr.match(options.offset as ScrollOffset.ScrollOffset | undefined, {
@@ -256,7 +256,7 @@ const measureOf = (element: Element, options: Probe.ScrollOptions): (() => Probe
256
256
  }
257
257
 
258
258
  /** Whether two scrolls read the same: an unchanged one isn't set, so its readers hear nothing. */
259
- const sameScroll = (a: Probe.Scroll, b: Probe.Scroll): boolean =>
259
+ const sameScroll = (a: ScrollSource.Scroll, b: ScrollSource.Scroll): boolean =>
260
260
  Arr.every(
261
261
  [
262
262
  a.x.current === b.x.current,
@@ -272,18 +272,6 @@ const sameScroll = (a: Probe.Scroll, b: Probe.Scroll): boolean =>
272
272
  /** The page's scroller: `document.scrollingElement`, else the root element. */
273
273
  const pageOf = (): Element => Option.getOrElse(Option.fromNullOr(document.scrollingElement), () => document.documentElement)
274
274
 
275
- /** The DOM's `Probe.scroll`, its Atoms set through `registry`: its containers held in the current Scope. */
276
- export const makeScroll = (
277
- registry: AtomRegistry.AtomRegistry,
278
- ): Effect.Effect<(options?: Probe.ScrollOptions) => Effect.Effect<Atom.Atom<Probe.Scroll>, never, Scope.Scope>, never, Scope.Scope> =>
279
- Effect.map(
280
- // Each container's listeners while a reader holds them, the last one out removing them (#618, M7:
281
- // Effect's `RcMap` where a count was kept by hand). An element is keyed by reference: Effect's
282
- // structural `Hash` would walk a DOM node.
283
- RcMap.make({ lookup: (element: Element) => Effect.acquireRelease(Effect.sync(() => open(element)), (container) => Effect.sync(container.remove)) }),
284
- (containers) => readerOf(registry, containers),
285
- )
286
-
287
275
  /** A container's listener set, opened for its first reader. */
288
276
  const open = (element: Element): Container => {
289
277
  const readers = new Set<() => void>()
@@ -324,10 +312,10 @@ const open = (element: Element): Container => {
324
312
  }
325
313
 
326
314
  /** A reader of a container's scroll: the container's listeners held from `containers` while its Scope is open. */
327
- const readerOf = (registry: AtomRegistry.AtomRegistry, containers: RcMap.RcMap<Element, Container>) =>
328
- Effect.fnUntraced(function* (options: Probe.ScrollOptions = {}) {
315
+ const readerOf = (registry: AtomRegistry.AtomRegistry, containers: (element: Element) => Effect.Effect<Container, never, Scope.Scope>) =>
316
+ Effect.fnUntraced(function* (options: ScrollSource.Options = {}) {
329
317
  const element = UndefinedOr.match(options.container as Element | undefined, { onUndefined: pageOf, onDefined: (given) => given })
330
- const container = yield* RcMap.get(containers, Equal.byReferenceUnsafe(element))
318
+ const container = yield* containers(element)
331
319
  const measure = measureOf(element, options)
332
320
  let last = measure()
333
321
  // Mounted while read, not kept alive: a kept-alive Atom's node never leaves the registry.
@@ -354,3 +342,16 @@ const readerOf = (registry: AtomRegistry.AtomRegistry, containers: RcMap.RcMap<E
354
342
  })
355
343
  return atom
356
344
  })
345
+
346
+ /**
347
+ * The DOM's `ScrollSource`, over the Environment's `AtomRegistry`. Marked pure, so an app that never
348
+ * builds it, with no `scroll` Feature, ships none of this module (#518).
349
+ */
350
+ export const layer: Layer.Layer<ScrollSource.ScrollSource, never, AtomRegistry.AtomRegistry> = /*#__PURE__*/ Layer.effect(ScrollSource.ScrollSource)(
351
+ /*#__PURE__*/ Effect.map(AtomRegistry.AtomRegistry, (registry) => ({
352
+ // Each container's listeners while a reader holds them, the last one out removing them (#618, M7;
353
+ // #518: `SharedSource.counted`, where Effect's `RcMap` put its code in every app). An element is its
354
+ // own key, never hashed.
355
+ scroll: readerOf(registry, SharedSource.counted(open, (container: Container) => Effect.sync(container.remove))),
356
+ })),
357
+ )