cereb 1.0.0 → 2.0.0

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.
Files changed (222) hide show
  1. package/README.md +38 -77
  2. package/dist/core/index.d.ts +1 -1
  3. package/dist/core/index.d.ts.map +1 -1
  4. package/dist/exports/frp.d.ts +21 -0
  5. package/dist/exports/frp.d.ts.map +1 -0
  6. package/dist/exports/geometry.d.ts +2 -0
  7. package/dist/exports/geometry.d.ts.map +1 -0
  8. package/dist/exports/operators.d.ts +2 -0
  9. package/dist/exports/operators.d.ts.map +1 -0
  10. package/dist/features/dom/dom-signal.d.ts +6 -0
  11. package/dist/features/dom/dom-signal.d.ts.map +1 -0
  12. package/dist/features/dom/dom.d.ts +19 -0
  13. package/dist/features/dom/dom.d.ts.map +1 -0
  14. package/dist/features/dom/index.d.ts +5 -0
  15. package/dist/features/dom/index.d.ts.map +1 -0
  16. package/dist/features/dom/mouse.d.ts +4 -0
  17. package/dist/features/dom/mouse.d.ts.map +1 -0
  18. package/dist/features/dom/pointer.d.ts +4 -0
  19. package/dist/features/dom/pointer.d.ts.map +1 -0
  20. package/dist/features/dom/touch.d.ts +4 -0
  21. package/dist/features/dom/touch.d.ts.map +1 -0
  22. package/dist/features/index.d.ts +6 -0
  23. package/dist/features/index.d.ts.map +1 -0
  24. package/dist/features/keyboard/index.d.ts.map +1 -0
  25. package/dist/features/keyboard/key-code.d.ts.map +1 -0
  26. package/dist/features/keyboard/keyboard-signal.d.ts.map +1 -0
  27. package/dist/features/keyboard/keyboard.d.ts.map +1 -0
  28. package/dist/features/keyboard/keydown.d.ts.map +1 -0
  29. package/dist/features/keyboard/keyheld.d.ts.map +1 -0
  30. package/dist/features/keyboard/shared.d.ts.map +1 -0
  31. package/dist/features/multi-pointers/default-factory.d.ts +5 -0
  32. package/dist/features/multi-pointers/default-factory.d.ts.map +1 -0
  33. package/dist/features/multi-pointers/index.d.ts +5 -0
  34. package/dist/features/multi-pointers/index.d.ts.map +1 -0
  35. package/dist/{browser/multi-pointer/multi-pointer-signal.d.ts → features/multi-pointers/multi-pointers-signal.d.ts} +10 -10
  36. package/dist/features/multi-pointers/multi-pointers-signal.d.ts.map +1 -0
  37. package/dist/features/multi-pointers/recognizer-from-pointer.d.ts +8 -0
  38. package/dist/features/multi-pointers/recognizer-from-pointer.d.ts.map +1 -0
  39. package/dist/{browser/multi-pointer → features/multi-pointers}/recognizer.d.ts +5 -5
  40. package/dist/features/multi-pointers/recognizer.d.ts.map +1 -0
  41. package/dist/{browser/multi-pointer → features/multi-pointers}/types.d.ts +1 -1
  42. package/dist/features/multi-pointers/types.d.ts.map +1 -0
  43. package/dist/features/pan/geometry.d.ts +10 -0
  44. package/dist/features/pan/geometry.d.ts.map +1 -0
  45. package/dist/features/pan/index.d.ts +5 -0
  46. package/dist/features/pan/index.d.ts.map +1 -0
  47. package/dist/features/pan/pan-signal.d.ts +29 -0
  48. package/dist/features/pan/pan-signal.d.ts.map +1 -0
  49. package/dist/features/pan/pan-types.d.ts +42 -0
  50. package/dist/features/pan/pan-types.d.ts.map +1 -0
  51. package/dist/features/pan/pan.d.ts +32 -0
  52. package/dist/features/pan/pan.d.ts.map +1 -0
  53. package/dist/features/pan/recognizer.d.ts +38 -0
  54. package/dist/features/pan/recognizer.d.ts.map +1 -0
  55. package/dist/features/pan/state.d.ts +29 -0
  56. package/dist/features/pan/state.d.ts.map +1 -0
  57. package/dist/features/pinch/geometry.d.ts +23 -0
  58. package/dist/features/pinch/geometry.d.ts.map +1 -0
  59. package/dist/features/pinch/index.d.ts +5 -0
  60. package/dist/features/pinch/index.d.ts.map +1 -0
  61. package/dist/features/pinch/pinch-signal.d.ts +30 -0
  62. package/dist/features/pinch/pinch-signal.d.ts.map +1 -0
  63. package/dist/features/pinch/pinch-types.d.ts +39 -0
  64. package/dist/features/pinch/pinch-types.d.ts.map +1 -0
  65. package/dist/features/pinch/pinch.d.ts +37 -0
  66. package/dist/features/pinch/pinch.d.ts.map +1 -0
  67. package/dist/features/pinch/recognizer.d.ts +38 -0
  68. package/dist/features/pinch/recognizer.d.ts.map +1 -0
  69. package/dist/features/pinch/state.d.ts +27 -0
  70. package/dist/features/pinch/state.d.ts.map +1 -0
  71. package/dist/features/single-pointer/default-factory.d.ts.map +1 -0
  72. package/dist/features/single-pointer/index.d.ts.map +1 -0
  73. package/dist/features/single-pointer/mouse.d.ts.map +1 -0
  74. package/dist/features/single-pointer/pointer.d.ts.map +1 -0
  75. package/dist/{browser → features}/single-pointer/recognizer-from-mouse.d.ts +3 -3
  76. package/dist/features/single-pointer/recognizer-from-mouse.d.ts.map +1 -0
  77. package/dist/{browser → features}/single-pointer/recognizer-from-pointer.d.ts +3 -3
  78. package/dist/features/single-pointer/recognizer-from-pointer.d.ts.map +1 -0
  79. package/dist/{browser → features}/single-pointer/recognizer-from-touch.d.ts +3 -3
  80. package/dist/features/single-pointer/recognizer-from-touch.d.ts.map +1 -0
  81. package/dist/features/single-pointer/recognizer.d.ts.map +1 -0
  82. package/dist/features/single-pointer/single-pointer-signal.d.ts.map +1 -0
  83. package/dist/features/single-pointer/touch.d.ts.map +1 -0
  84. package/dist/features/single-pointer/types.d.ts.map +1 -0
  85. package/dist/features/tap/geometry.d.ts +5 -0
  86. package/dist/features/tap/geometry.d.ts.map +1 -0
  87. package/dist/features/tap/index.d.ts +5 -0
  88. package/dist/features/tap/index.d.ts.map +1 -0
  89. package/dist/features/tap/recognizer.d.ts +36 -0
  90. package/dist/features/tap/recognizer.d.ts.map +1 -0
  91. package/dist/features/tap/state.d.ts +31 -0
  92. package/dist/features/tap/state.d.ts.map +1 -0
  93. package/dist/features/tap/tap-signal.d.ts +30 -0
  94. package/dist/features/tap/tap-signal.d.ts.map +1 -0
  95. package/dist/features/tap/tap-types.d.ts +40 -0
  96. package/dist/features/tap/tap-types.d.ts.map +1 -0
  97. package/dist/features/tap/tap.d.ts +62 -0
  98. package/dist/features/tap/tap.d.ts.map +1 -0
  99. package/dist/features/wheel/index.d.ts.map +1 -0
  100. package/dist/features/wheel/wheel-signal.d.ts.map +1 -0
  101. package/dist/features/wheel/wheel.d.ts.map +1 -0
  102. package/dist/frp.d.ts +2 -21
  103. package/dist/geometry.cjs +2 -0
  104. package/dist/geometry.cjs.map +1 -0
  105. package/dist/geometry.d.ts +2 -0
  106. package/dist/geometry.js +91 -0
  107. package/dist/geometry.js.map +1 -0
  108. package/dist/index.cjs +1 -1
  109. package/dist/index.cjs.map +1 -1
  110. package/dist/index.d.ts +8 -2
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +786 -327
  113. package/dist/index.js.map +1 -1
  114. package/dist/operators/axis-lock.d.ts +30 -0
  115. package/dist/operators/axis-lock.d.ts.map +1 -0
  116. package/dist/operators/index.d.ts +4 -1
  117. package/dist/operators/index.d.ts.map +1 -1
  118. package/dist/operators/offset.d.ts +3 -3
  119. package/dist/operators/offset.d.ts.map +1 -1
  120. package/dist/operators/session.d.ts +3 -3
  121. package/dist/operators/session.d.ts.map +1 -1
  122. package/dist/operators.cjs +1 -1
  123. package/dist/operators.cjs.map +1 -1
  124. package/dist/operators.d.ts +2 -2
  125. package/dist/operators.js +250 -261
  126. package/dist/operators.js.map +1 -1
  127. package/dist/session-3LQtJeLu.cjs +2 -0
  128. package/dist/session-3LQtJeLu.cjs.map +1 -0
  129. package/dist/session-Ds5wg-LW.js +150 -0
  130. package/dist/session-Ds5wg-LW.js.map +1 -0
  131. package/package.json +4 -4
  132. package/dist/browser/dom-event/dom-event-signal.d.ts +0 -6
  133. package/dist/browser/dom-event/dom-event-signal.d.ts.map +0 -1
  134. package/dist/browser/dom-event/dom-event.d.ts +0 -19
  135. package/dist/browser/dom-event/dom-event.d.ts.map +0 -1
  136. package/dist/browser/dom-event/index.d.ts +0 -5
  137. package/dist/browser/dom-event/index.d.ts.map +0 -1
  138. package/dist/browser/dom-event/mouse-events.d.ts +0 -4
  139. package/dist/browser/dom-event/mouse-events.d.ts.map +0 -1
  140. package/dist/browser/dom-event/pointer-events.d.ts +0 -4
  141. package/dist/browser/dom-event/pointer-events.d.ts.map +0 -1
  142. package/dist/browser/dom-event/touch-events.d.ts +0 -4
  143. package/dist/browser/dom-event/touch-events.d.ts.map +0 -1
  144. package/dist/browser/index.d.ts +0 -6
  145. package/dist/browser/index.d.ts.map +0 -1
  146. package/dist/browser/keyboard/index.d.ts.map +0 -1
  147. package/dist/browser/keyboard/key-code.d.ts.map +0 -1
  148. package/dist/browser/keyboard/keyboard-signal.d.ts.map +0 -1
  149. package/dist/browser/keyboard/keyboard.d.ts.map +0 -1
  150. package/dist/browser/keyboard/keydown.d.ts.map +0 -1
  151. package/dist/browser/keyboard/keyheld.d.ts.map +0 -1
  152. package/dist/browser/keyboard/shared.d.ts.map +0 -1
  153. package/dist/browser/multi-pointer/default-factory.d.ts +0 -5
  154. package/dist/browser/multi-pointer/default-factory.d.ts.map +0 -1
  155. package/dist/browser/multi-pointer/index.d.ts +0 -5
  156. package/dist/browser/multi-pointer/index.d.ts.map +0 -1
  157. package/dist/browser/multi-pointer/multi-pointer-signal.d.ts.map +0 -1
  158. package/dist/browser/multi-pointer/recognizer-from-pointer.d.ts +0 -8
  159. package/dist/browser/multi-pointer/recognizer-from-pointer.d.ts.map +0 -1
  160. package/dist/browser/multi-pointer/recognizer.d.ts.map +0 -1
  161. package/dist/browser/multi-pointer/types.d.ts.map +0 -1
  162. package/dist/browser/single-pointer/default-factory.d.ts.map +0 -1
  163. package/dist/browser/single-pointer/index.d.ts.map +0 -1
  164. package/dist/browser/single-pointer/mouse.d.ts.map +0 -1
  165. package/dist/browser/single-pointer/pointer.d.ts.map +0 -1
  166. package/dist/browser/single-pointer/recognizer-from-mouse.d.ts.map +0 -1
  167. package/dist/browser/single-pointer/recognizer-from-pointer.d.ts.map +0 -1
  168. package/dist/browser/single-pointer/recognizer-from-touch.d.ts.map +0 -1
  169. package/dist/browser/single-pointer/recognizer.d.ts.map +0 -1
  170. package/dist/browser/single-pointer/single-pointer-signal.d.ts.map +0 -1
  171. package/dist/browser/single-pointer/touch.d.ts.map +0 -1
  172. package/dist/browser/single-pointer/types.d.ts.map +0 -1
  173. package/dist/browser/wheel/index.d.ts.map +0 -1
  174. package/dist/browser/wheel/wheel-signal.d.ts.map +0 -1
  175. package/dist/browser/wheel/wheel.d.ts.map +0 -1
  176. package/dist/frp.d.ts.map +0 -1
  177. package/dist/operators.d.ts.map +0 -1
  178. package/dist/recognizer-3x1IWMaJ.cjs +0 -2
  179. package/dist/recognizer-3x1IWMaJ.cjs.map +0 -1
  180. package/dist/recognizer-wJJrCf-d.js +0 -38
  181. package/dist/recognizer-wJJrCf-d.js.map +0 -1
  182. package/dist/share-BEu5SsOX.js +0 -97
  183. package/dist/share-BEu5SsOX.js.map +0 -1
  184. package/dist/share-vzh9f3Jn.cjs +0 -2
  185. package/dist/share-vzh9f3Jn.cjs.map +0 -1
  186. package/dist/single-pointer/mouse.cjs +0 -2
  187. package/dist/single-pointer/mouse.cjs.map +0 -1
  188. package/dist/single-pointer/mouse.d.ts +0 -2
  189. package/dist/single-pointer/mouse.js +0 -46
  190. package/dist/single-pointer/mouse.js.map +0 -1
  191. package/dist/single-pointer/pointer.cjs +0 -2
  192. package/dist/single-pointer/pointer.cjs.map +0 -1
  193. package/dist/single-pointer/pointer.d.ts +0 -2
  194. package/dist/single-pointer/pointer.js +0 -63
  195. package/dist/single-pointer/pointer.js.map +0 -1
  196. package/dist/single-pointer/touch.cjs +0 -2
  197. package/dist/single-pointer/touch.cjs.map +0 -1
  198. package/dist/single-pointer/touch.d.ts +0 -2
  199. package/dist/single-pointer/touch.js +0 -50
  200. package/dist/single-pointer/touch.js.map +0 -1
  201. package/dist/types-BGR5Mhw9.cjs +0 -2
  202. package/dist/types-BGR5Mhw9.cjs.map +0 -1
  203. package/dist/types-Ccnqx90M.js +0 -22
  204. package/dist/types-Ccnqx90M.js.map +0 -1
  205. /package/dist/{browser → features}/keyboard/index.d.ts +0 -0
  206. /package/dist/{browser → features}/keyboard/key-code.d.ts +0 -0
  207. /package/dist/{browser → features}/keyboard/keyboard-signal.d.ts +0 -0
  208. /package/dist/{browser → features}/keyboard/keyboard.d.ts +0 -0
  209. /package/dist/{browser → features}/keyboard/keydown.d.ts +0 -0
  210. /package/dist/{browser → features}/keyboard/keyheld.d.ts +0 -0
  211. /package/dist/{browser → features}/keyboard/shared.d.ts +0 -0
  212. /package/dist/{browser → features}/single-pointer/default-factory.d.ts +0 -0
  213. /package/dist/{browser → features}/single-pointer/index.d.ts +0 -0
  214. /package/dist/{browser → features}/single-pointer/mouse.d.ts +0 -0
  215. /package/dist/{browser → features}/single-pointer/pointer.d.ts +0 -0
  216. /package/dist/{browser → features}/single-pointer/recognizer.d.ts +0 -0
  217. /package/dist/{browser → features}/single-pointer/single-pointer-signal.d.ts +0 -0
  218. /package/dist/{browser → features}/single-pointer/touch.d.ts +0 -0
  219. /package/dist/{browser → features}/single-pointer/types.d.ts +0 -0
  220. /package/dist/{browser → features}/wheel/index.d.ts +0 -0
  221. /package/dist/{browser → features}/wheel/wheel-signal.d.ts +0 -0
  222. /package/dist/{browser → features}/wheel/wheel.d.ts +0 -0
package/README.md CHANGED
@@ -1,60 +1,35 @@
1
- # [Cereb](https://cereb.dev)
2
-
3
- **User input handling and orchestration** libray,
4
- From low-level events (keyboard, wheel, pointer, ...) to high-level gestures (pan, pinch, ...)
1
+ <h1 align="center"><img width="50" height="50" alt="Cereb logo" src="https://cereb.dev/logo-square-light.svg" /><br/>Cereb</h1>
2
+ <h3 align="center">An open source interaction library<br />for composable gesture and event streams</h3>
3
+ <p align="center">
4
+ <a href="https://www.npmjs.com/package/cereb" rel="noopener noreferrer nofollow" ><img src="https://img.shields.io/npm/v/cereb?color=0368FF&label=version" alt="npm version"></a>
5
+ <img alt="NPM License" src="https://img.shields.io/npm/l/cereb?color=FF2B6E">
6
+ </p>
5
7
 
6
8
  ```bash
7
9
  npm install --save cereb
8
10
  ```
9
11
 
10
- <br>
11
-
12
- ## Getting started
13
-
14
- The example below moves an element by tracking pointer position:
15
-
16
- ```typescript
17
- import { singlePointer } from "cereb";
18
-
19
- // Create a stream from pointer events
20
- singlePointer(canvas)
21
- // Listen to stream events
22
- .on((signal) => {
23
- // Receive signals from the stream
24
- const { phase, cursor } = signal.value;
25
- const [x, y] = cursor;
26
- switch (phase){
27
- case "move":
28
- element.style.transform = `translate(${x}px, ${y}px)`;
29
- break;
30
- }
31
- });
32
- ```
33
-
34
- <br>
35
-
36
- ## High-level gestures packages
12
+ [Learn how to use Cereb in your project](https://cereb.dev).
37
13
 
38
- For advanced gestures like pan or pinch, install dedicated packages that build on top of Cereb's core:
14
+ ## Table of Contents
39
15
 
40
- | Package | Description |
41
- |---------|-------------|
42
- | [@cereb/pan](https://www.npmjs.com/package/@cereb/pan) | Pan/drag gestures with velocity and direction tracking |
43
- | [@cereb/pinch](https://www.npmjs.com/package/@cereb/pinch) | Pinch-to-zoom with distance and scale calculations |
16
+ 1. [Why Cereb?](#why-cereb)
17
+ 2. [Examples](#examples)
18
+ 3. [Documentation](#documentation)
19
+ 4. [License](#license)
20
+ 5. [Contributing](#contributing)
44
21
 
45
- ### Pinch example
46
-
47
- ```bash
48
- npm install --save cereb @cereb/pinch
49
- ```
22
+ ## Examples
50
23
 
51
24
  ```typescript
25
+ import { pinch } from "cereb";
52
26
  import { zoom } from "cereb/operators";
53
- import { pinch } from "@cereb/pinch";
54
27
 
28
+ // pipe creates a pipeline where signals flow through operators
29
+ // Each operator extends the signal (signals are immutable)
55
30
  pinch(element)
56
- .pipe(zoom({ minScale: 0.5, maxScale: 3.0 }))
57
- .on((signal) => {
31
+ // Operator: Determine scale value.
32
+ .pipe(zoom({ minScale: 0.5, maxScale: 3.0 })).on((signal) => {
58
33
  // The scale property is extended from the value.
59
34
  // - pinch emits distance → zoom calculates scale
60
35
  // - zoom also works with other inputs (keyboard, wheel, etc.)
@@ -62,50 +37,36 @@ pinch(element)
62
37
  });
63
38
  ```
64
39
 
65
- <br>
40
+ [See all Examples and Demo →](https://cereb.dev/examples/space-adventure)
66
41
 
67
- ## Documentation
68
-
69
- ### Stream API
70
-
71
- Create streams from various input sources:
72
-
73
- | API | Description |
74
- |-----|-------------|
75
- | [pan](https://cereb.dev/stream-api/pan) | Pan gesture with velocity and direction |
76
- | [pinch](https://cereb.dev/stream-api/pinch) | Pinch gesture with distance and center |
77
- | [singlePointer](https://cereb.dev/stream-api/single-pointer) | Unified pointer (mouse/touch/pen) |
78
- | [multiPointer](https://cereb.dev/stream-api/multi-pointer) | Multi-touch tracking |
79
- | [keyboard](https://cereb.dev/stream-api/keyboard) | Keyboard events (keydown + keyup) |
80
- | [keydown](https://cereb.dev/stream-api/keydown) | Keydown events only |
81
- | [keyheld](https://cereb.dev/stream-api/keyheld) | Track if a key is held |
82
- | [wheel](https://cereb.dev/stream-api/wheel) | Wheel/scroll events |
83
- | [domEvent](https://cereb.dev/stream-api/dom-event) | Any DOM event |
84
-
85
- ### Operator API
86
-
87
- Transform and compose streams with operators like `filter`, `map`, `merge`, `throttle`, `debounce`, and more.
42
+ ## Why Cereb?
88
43
 
89
- [See all operators →](https://cereb.dev/operator-api/compose)
90
-
91
- <br>
92
-
93
- ## The Problems Cereb Solves
94
-
95
- - **Spaghetti Event Code** — Scattered handlers, shared mutable state, duplicated logic
44
+ - **No Abstraction for Event Flow** — DOM events lack structure for state, dependencies, and composition
96
45
  - **Lightweight Bundle** — ~77% smaller than Hammer.js (1.73 KB gzipped for pan gesture)
97
46
  - **Resource Efficiency** — Event listener reuse, single-responsibility operators
98
47
 
99
48
  [See detailed examples →](https://cereb.dev/core-concepts/the-problem-solves)
100
49
 
101
- <br>
50
+ ## Documentation
51
+
52
+ You can find the Cereb documentation [on the website](https://cereb.dev).
53
+
54
+ - **Core Concepts**
55
+ - [Key Models](https://cereb.dev/core-concepts/key-models/)
56
+ - [Behavior & Event](https://cereb.dev/core-concepts/behavior-and-event/)
57
+ - [Creating Operators](https://cereb.dev/core-concepts/creating-operators/)
58
+ - [High-Order Operators](https://cereb.dev/core-concepts/higher-order-operators/)
59
+ - [The Problem Solves](https://cereb.dev/core-concepts/the-problem-solves/)
60
+ - **API Reference**
61
+ - [Stream](https://cereb.dev/stream-api/pan/)
62
+ - [Operators](https://cereb.dev/operator-api/compose/)
102
63
 
103
64
  ## Contributing
104
65
 
105
- Contributions are welcome! Please read our [Contributing Guide](https://github.com/devphilip21/cereb/blob/main/CONTRIBUTING.md).
66
+ If you find Cereb useful, consider giving it a star — it helps others discover the project!
106
67
 
107
- <br>
68
+ Contributions are welcome! Please read our [Contributing Guide](https://github.com/devphilip21/cereb/blob/main/CONTRIBUTING.md) before submitting a Pull Request.
108
69
 
109
70
  ## License
110
71
 
111
- MIT
72
+ Cereb is [MIT licensed](https://github.com/devphilip21/cereb/blob/main/LICENSE).
@@ -1,4 +1,4 @@
1
1
  export { setCerebDeviceId } from './meta.js';
2
- export { createSignal, type ExtendSignalValue, type Signal } from './signal.js';
2
+ export { createSignal, type ExtendSignalValue, type Signal, type SignalWith } from './signal.js';
3
3
  export { createStream, type Observer, type Operator, type Stream, type Unsubscribe, } from './stream.js';
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AACjG,OAAO,EACL,YAAY,EACZ,KAAK,QAAQ,EACb,KAAK,QAAQ,EACb,KAAK,MAAM,EACX,KAAK,WAAW,GACjB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * FRP (Functional Reactive Programming) module for Cereb.
3
+ *
4
+ * This module introduces the classic FRP concepts:
5
+ * - Behavior: Continuous time-varying values (always has a current value)
6
+ * - Event: Discrete occurrences (alias for Stream)
7
+ *
8
+ * Key differences from Stream:
9
+ * - Behavior.sample() - Get current value anytime
10
+ * - Behavior.onChange() - Subscribe to value changes
11
+ * - Behavior.dispose() - Clean up resources
12
+ *
13
+ * Use cases:
14
+ * - Animation frames that need current position/scale/rotation
15
+ * - VR headset tracking with continuous position sampling
16
+ * - Combining multiple input sources into a unified transform
17
+ *
18
+ * @module cereb/frp
19
+ */
20
+ export * from '../frp/index.js';
21
+ //# sourceMappingURL=frp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frp.d.ts","sourceRoot":"","sources":["../../src/exports/frp.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '../geometry/index.js';
2
+ //# sourceMappingURL=geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../src/exports/geometry.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from '../operators/index.js';
2
+ //# sourceMappingURL=operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../../src/exports/operators.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { Signal } from '../../core/signal.js';
2
+ export interface DomSignal<E extends Event> extends Signal<"dom", E> {
3
+ }
4
+ export declare const DOM_SIGNAL_KIND: "dom";
5
+ export declare function createDomSignal<E extends Event>(event: E): DomSignal<E>;
6
+ //# sourceMappingURL=dom-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom-signal.d.ts","sourceRoot":"","sources":["../../../src/features/dom/dom-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,WAAW,SAAS,CAAC,CAAC,SAAS,KAAK,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;CAAG;AAEvE,eAAO,MAAM,eAAe,EAAG,KAAc,CAAC;AAE9C,wBAAgB,eAAe,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAEvE"}
@@ -0,0 +1,19 @@
1
+ import { Stream } from '../../core/stream.js';
2
+ import { DomSignal } from './dom-signal.js';
3
+ type AnyEventMap = Record<string, Event>;
4
+ /**
5
+ * Strongly-typed event target for custom event maps.
6
+ * Useful for non-DOM EventTargets that still have named events.
7
+ */
8
+ export type TypedEventTarget<M extends AnyEventMap> = EventTarget & {
9
+ addEventListener<K extends keyof M>(type: K, listener: (event: M[K]) => void, options?: AddEventListenerOptions): void;
10
+ removeEventListener<K extends keyof M>(type: K, listener: (event: M[K]) => void, options?: AddEventListenerOptions): void;
11
+ };
12
+ export declare function dom<K extends keyof WindowEventMap>(target: Window, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<WindowEventMap[K]>>;
13
+ export declare function dom<K extends keyof DocumentEventMap>(target: Document, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<DocumentEventMap[K]>>;
14
+ export declare function dom<K extends keyof HTMLElementEventMap>(target: HTMLElement, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<HTMLElementEventMap[K]>>;
15
+ export declare function dom<K extends keyof SVGElementEventMap>(target: SVGElement, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<SVGElementEventMap[K]>>;
16
+ export declare function dom<M extends AnyEventMap, K extends keyof M>(target: TypedEventTarget<M>, eventName: K, options?: AddEventListenerOptions): Stream<DomSignal<M[K]>>;
17
+ export declare function dom<E extends Event = Event>(target: EventTarget, eventName: string, options?: AddEventListenerOptions): Stream<DomSignal<E>>;
18
+ export {};
19
+ //# sourceMappingURL=dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/features/dom/dom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAElE,KAAK,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzC;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,WAAW,IAAI,WAAW,GAAG;IAClE,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAC,EAChC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC/B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAAC;IACR,mBAAmB,CAAC,CAAC,SAAS,MAAM,CAAC,EACnC,IAAI,EAAE,CAAC,EACP,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAC/B,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAAC;CACT,CAAC;AAEF,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,cAAc,EAChD,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxC,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAClD,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1C,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,mBAAmB,EACrD,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7C,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,kBAAkB,EACpD,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,wBAAgB,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,CAAC,SAAS,MAAM,CAAC,EAC1D,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,CAAC,EACZ,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3B,wBAAgB,GAAG,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,EACzC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { dom } from './dom.js';
2
+ export { mouse } from './mouse.js';
3
+ export { pointer } from './pointer.js';
4
+ export { touch } from './touch.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/dom/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Stream } from '../../core/stream.js';
2
+ import { DomSignal } from './dom-signal.js';
3
+ export declare function mouse(target: EventTarget, options?: AddEventListenerOptions): Stream<DomSignal<MouseEvent>>;
4
+ //# sourceMappingURL=mouse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mouse.d.ts","sourceRoot":"","sources":["../../../src/features/dom/mouse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,KAAK,CACnB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAkB/B"}
@@ -0,0 +1,4 @@
1
+ import { Stream } from '../../core/stream.js';
2
+ import { DomSignal } from './dom-signal.js';
3
+ export declare function pointer(target: EventTarget, options?: AddEventListenerOptions): Stream<DomSignal<PointerEvent>>;
4
+ //# sourceMappingURL=pointer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/features/dom/pointer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,OAAO,CACrB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAkBjC"}
@@ -0,0 +1,4 @@
1
+ import { Stream } from '../../core/stream.js';
2
+ import { DomSignal } from './dom-signal.js';
3
+ export declare function touch(target: EventTarget, options?: AddEventListenerOptions): Stream<DomSignal<TouchEvent>>;
4
+ //# sourceMappingURL=touch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"touch.d.ts","sourceRoot":"","sources":["../../../src/features/dom/touch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIlE,wBAAgB,KAAK,CACnB,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,uBAAuB,GAChC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAkB/B"}
@@ -0,0 +1,6 @@
1
+ export * from './dom/index.js';
2
+ export * from './keyboard/index.js';
3
+ export * from './multi-pointers/index.js';
4
+ export * from './single-pointer/index.js';
5
+ export * from './wheel/index.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/features/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-code.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/key-code.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,mDAAmD;AACnD,KAAK,QAAQ,GACT,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,GACN,MAAM,CAAC;AAEX,KAAK,QAAQ,GACT,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,QAAQ,CAAC;AAEb,6CAA6C;AAC7C,KAAK,cAAc,GACf,WAAW,GACX,OAAO,GACP,OAAO,GACP,aAAa,GACb,cAAc,GACd,WAAW,GACX,WAAW,GACX,OAAO,GACP,OAAO,GACP,QAAQ,GACR,OAAO,GACP,eAAe,GACf,QAAQ,GACR,SAAS,CAAC;AAEd,oBAAoB;AACpB,KAAK,WAAW,GACZ,QAAQ,GACR,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,aAAa,GACb,YAAY,GACZ,OAAO,CAAC;AAEZ,sBAAsB;AACtB,KAAK,aAAa,GACd,SAAS,GACT,WAAW,GACX,WAAW,GACX,YAAY,GACZ,MAAM,GACN,KAAK,GACL,QAAQ,GACR,UAAU,CAAC;AAEf,mBAAmB;AACnB,KAAK,UAAU,GACX,WAAW,GACX,KAAK,GACL,OAAO,GACP,UAAU,GACV,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,SAAS,CAAC;AAEd,oBAAoB;AACpB,KAAK,eAAe,GAChB,WAAW,GACX,YAAY,GACZ,aAAa,GACb,cAAc,GACd,SAAS,GACT,UAAU,GACV,UAAU,GACV,WAAW,GACX,aAAa,CAAC;AAElB,kBAAkB;AAClB,KAAK,SAAS,GACV,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,WAAW,GACX,gBAAgB,GAChB,gBAAgB,GAChB,cAAc,GACd,eAAe,GACf,aAAa,GACb,aAAa,GACb,aAAa,GACb,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB;;;;;;;;GAQG;AACH,MAAM,MAAM,OAAO,GACf,QAAQ,GACR,QAAQ,GACR,cAAc,GACd,WAAW,GACX,aAAa,GACb,UAAU,GACV,eAAe,GACf,SAAS,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard-signal.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keyboard-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,iEAAiE;IACjE,GAAG,EAAE,MAAM,CAAC;IACZ,qEAAqE;IACrE,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,4EAA4E;IAC5E,aAAa,EAAE,aAAa,CAAC;CAC9B;AAED,MAAM,WAAW,cAAe,SAAQ,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC;CAAG;AAE5E,eAAO,MAAM,oBAAoB,EAAG,UAAmB,CAAC;AAExD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,aAAa,GAAG,cAAc,CAEzE;AAED,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,aAAa,EACpB,KAAK,EAAE,aAAa,GACnB,cAAc,CAYhB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyboard.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keyboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,CAAC;AAE5D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC,cAAc,CAAC,CAoD/F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keydown.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keydown.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAG3D,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAC;IAC3B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,wEAAwE;IACxE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC,CAoD7F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keyheld.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/keyheld.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAG7C,UAAU,YAAY;IACpB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,aAAc,SAAQ,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC;CAAG;AAEzE,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AAEtD,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,IAAI,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,GAAG,MAAM,CAAC,aAAa,CAAC,CA6B3F"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/features/keyboard/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEjE,OAAO,EAAiC,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAyB1F,mDAAmD;AACnD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAO7E;AAgBD,kDAAkD;AAClD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC,CAO5E"}
@@ -0,0 +1,5 @@
1
+ import { Stream } from '../../core/stream.js';
2
+ import { MultiPointersSignal } from './multi-pointers-signal.js';
3
+ import { MultiPointersOptions } from './types.js';
4
+ export declare function multiPointers(target: EventTarget, options?: MultiPointersOptions): Stream<MultiPointersSignal>;
5
+ //# sourceMappingURL=default-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"default-factory.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/default-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,WAAW,EACnB,OAAO,GAAE,oBAAyB,GACjC,MAAM,CAAC,mBAAmB,CAAC,CAG7B"}
@@ -0,0 +1,5 @@
1
+ export { multiPointers } from './default-factory.js';
2
+ export type { MULTI_POINTERS_SIGNAL_KIND, MultiPointers, MultiPointersPhase, MultiPointersSignal, PointerInfo, } from './multi-pointers-signal.js';
3
+ export { multiPointersFromPointer } from './recognizer-from-pointer.js';
4
+ export type { MultiPointersOptions } from './types.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EACV,0BAA0B,EAC1B,aAAa,EACb,kBAAkB,EAClB,mBAAmB,EACnB,WAAW,GACZ,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
@@ -1,30 +1,30 @@
1
1
  import { Signal } from '../../core/signal.js';
2
2
  import { Point } from '../../geometry/types.js';
3
3
  import { SinglePointerButton, SinglePointerPhase, SinglePointerType } from '../single-pointer/types.js';
4
- export interface MultiPointerSignal extends Signal<"multi-pointer", MultiPointer> {
4
+ export interface MultiPointersSignal extends Signal<"multi-pointers", MultiPointers> {
5
5
  }
6
- export declare const MULTI_POINTER_SIGNAL_KIND: "multi-pointer";
6
+ export declare const MULTI_POINTERS_SIGNAL_KIND: "multi-pointers";
7
7
  /**
8
8
  * Represents the complete state of all active pointers at a given moment.
9
9
  * Emitted as a snapshot whenever any pointer changes state.
10
10
  */
11
- export interface MultiPointer {
12
- /** Session-level phase: tracks the overall multi-pointer interaction lifecycle */
13
- phase: MultiPointerPhase;
11
+ export interface MultiPointers {
12
+ /** Session-level phase: tracks the overall multi-pointers interaction lifecycle */
13
+ phase: MultiPointersPhase;
14
14
  /** Array of currently active pointers */
15
15
  pointers: readonly PointerInfo[];
16
16
  /** Total number of active pointers */
17
17
  count: number;
18
18
  }
19
19
  /**
20
- * Session-level phase for multi-pointer interactions:
20
+ * Session-level phase for multi-pointers interactions:
21
21
  * - "idle": No active pointers
22
22
  * - "active": One or more pointers are active
23
23
  * - "ended": All pointers have ended (transition state)
24
24
  */
25
- export type MultiPointerPhase = "idle" | "active" | "ended";
25
+ export type MultiPointersPhase = "idle" | "active" | "ended";
26
26
  /**
27
- * Information about a single pointer within a multi-pointer context.
27
+ * Information about a single pointer within a multi-pointers context.
28
28
  */
29
29
  export interface PointerInfo {
30
30
  id: string;
@@ -36,6 +36,6 @@ export interface PointerInfo {
36
36
  /** 0.0 ~ 1.0, default 0.5 if unsupported */
37
37
  pressure: number;
38
38
  }
39
- export declare function createMultiPointerSignal(multiPointer: MultiPointer): MultiPointerSignal;
39
+ export declare function createMultiPointersSignal(multiPointers: MultiPointers): MultiPointersSignal;
40
40
  export declare function createDefaultPointerInfo(): PointerInfo;
41
- //# sourceMappingURL=multi-pointer-signal.d.ts.map
41
+ //# sourceMappingURL=multi-pointers-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-pointers-signal.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/multi-pointers-signal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,KAAK,EACV,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,mBAAoB,SAAQ,MAAM,CAAC,gBAAgB,EAAE,aAAa,CAAC;CAAG;AAEvF,eAAO,MAAM,0BAA0B,EAAG,gBAAyB,CAAC;AAEpE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,KAAK,EAAE,kBAAkB,CAAC;IAC1B,yCAAyC;IACzC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IACjC,sCAAsC;IACtC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,kBAAkB,CAAC;IAC1B,MAAM,EAAE,KAAK,CAAC;IACd,UAAU,EAAE,KAAK,CAAC;IAClB,WAAW,EAAE,iBAAiB,CAAC;IAC/B,MAAM,EAAE,mBAAmB,CAAC;IAC5B,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,yBAAyB,CAAC,aAAa,EAAE,aAAa,GAAG,mBAAmB,CAE3F;AAED,wBAAgB,wBAAwB,IAAI,WAAW,CAUtD"}
@@ -0,0 +1,8 @@
1
+ import { Operator } from '../../core/stream.js';
2
+ import { DomSignal } from '../dom/dom-signal.js';
3
+ import { MultiPointersSignal } from './multi-pointers-signal.js';
4
+ import { MultiPointersRecognizer } from './recognizer.js';
5
+ import { MultiPointersOptions } from './types.js';
6
+ export declare function createPointerRecognizer(options?: MultiPointersOptions): MultiPointersRecognizer<DomSignal<PointerEvent>>;
7
+ export declare function multiPointersFromPointer(options?: MultiPointersOptions): Operator<DomSignal<PointerEvent>, MultiPointersSignal>;
8
+ //# sourceMappingURL=recognizer-from-pointer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recognizer-from-pointer.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/recognizer-from-pointer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,KAAK,EAAE,mBAAmB,EAAe,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,oBAAyB,GACjC,uBAAuB,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAqDlD;AAED,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,oBAAyB,GACjC,QAAQ,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,mBAAmB,CAAC,CAyBxD"}
@@ -1,8 +1,8 @@
1
1
  import { Signal } from '../../core/signal.js';
2
- import { MultiPointerSignal, PointerInfo } from './multi-pointer-signal.js';
3
- import { MultiPointerOptions } from './types.js';
4
- export interface MultiPointerRecognizer<InputSignal extends Signal> {
5
- process(event: InputSignal): MultiPointerSignal | null;
2
+ import { MultiPointersSignal, PointerInfo } from './multi-pointers-signal.js';
3
+ import { MultiPointersOptions } from './types.js';
4
+ export interface MultiPointersRecognizer<InputSignal extends Signal> {
5
+ process(event: InputSignal): MultiPointersSignal | null;
6
6
  readonly isActive: boolean;
7
7
  readonly activeCount: number;
8
8
  reset(): void;
@@ -21,5 +21,5 @@ export interface PointerUpdateResult {
21
21
  * Creates a recognizer that tracks multiple pointers and emits snapshot signals.
22
22
  * Maintains internal state of all active pointers using a Map.
23
23
  */
24
- export declare function createMultiPointerRecognizer<InputSignal extends Signal>(processor: (inputSignal: InputSignal, pointerMap: Map<string, PointerInfo>, options: Required<MultiPointerOptions>) => PointerUpdateResult | null, options?: MultiPointerOptions): MultiPointerRecognizer<InputSignal>;
24
+ export declare function createMultiPointersRecognizer<InputSignal extends Signal>(processor: (inputSignal: InputSignal, pointerMap: Map<string, PointerInfo>, options: Required<MultiPointersOptions>) => PointerUpdateResult | null, options?: MultiPointersOptions): MultiPointersRecognizer<InputSignal>;
25
25
  //# sourceMappingURL=recognizer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recognizer.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/recognizer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAIL,KAAK,mBAAmB,EACxB,KAAK,WAAW,EACjB,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,WAAW,uBAAuB,CAAC,WAAW,SAAS,MAAM;IACjE,OAAO,CAAC,KAAK,EAAE,WAAW,GAAG,mBAAmB,GAAG,IAAI,CAAC;IACxD,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,KAAK,IAAI,IAAI,CAAC;IACd,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAAC,WAAW,SAAS,MAAM,EACtE,SAAS,EAAE,CACT,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,EACpC,OAAO,EAAE,QAAQ,CAAC,oBAAoB,CAAC,KACpC,mBAAmB,GAAG,IAAI,EAC/B,OAAO,GAAE,oBAAyB,GACjC,uBAAuB,CAAC,WAAW,CAAC,CAyDtC"}
@@ -1,4 +1,4 @@
1
- export interface MultiPointerOptions {
1
+ export interface MultiPointersOptions {
2
2
  /**
3
3
  * Maximum number of pointers to track simultaneously.
4
4
  * Default: 2 (optimized for pinch gestures)
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/multi-pointers/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,10 @@
1
+ import { PanDirection } from './pan-types.js';
2
+ /**
3
+ * Determine primary direction from delta values.
4
+ */
5
+ export declare function getDirection(deltaX: number, deltaY: number): PanDirection;
6
+ /**
7
+ * Calculate Euclidean distance between two points.
8
+ */
9
+ export declare function calculateDistance(x1: number, y1: number, x2: number, y2: number): number;
10
+ //# sourceMappingURL=geometry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"geometry.d.ts","sourceRoot":"","sources":["../../../src/features/pan/geometry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,CAazE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAIxF"}
@@ -0,0 +1,5 @@
1
+ export { pan, panRecognizer } from './pan.js';
2
+ export type { PanSignal, PanValue } from './pan-signal.js';
3
+ export type { PanDirection, PanDirectionMode, PanOptions, PanPhase, PanSourcePhase, PanSourceSignal, PanSourceValue, } from './pan-types.js';
4
+ export { createPanRecognizer, type PanRecognizer } from './recognizer.js';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/pan/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,YAAY,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,YAAY,EACV,YAAY,EACZ,gBAAgB,EAChB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { Signal } from '../../core/index.js';
2
+ import { Point, Vector } from '../../geometry/index.js';
3
+ import { PanDirection, PanPhase } from './pan-types.js';
4
+ /**
5
+ * Pan gesture value emitted during pan lifecycle (start, move, end, cancel).
6
+ * Contains position deltas, velocity, cumulative distance, and direction information.
7
+ */
8
+ export interface PanValue {
9
+ phase: PanPhase;
10
+ /** Current position [x, y] (client coordinates) */
11
+ cursor: Point;
12
+ /** Current position [pageX, pageY] (page coordinates) */
13
+ pageCursor: Point;
14
+ /** Displacement from start [deltaX, deltaY] */
15
+ delta: Vector;
16
+ /** Velocity [vx, vy] in pixels per millisecond */
17
+ velocity: Vector;
18
+ /** Total cumulative distance traveled */
19
+ distance: number;
20
+ /** Current movement direction */
21
+ direction: PanDirection;
22
+ }
23
+ export interface PanSignal<T = {}> extends Signal<"pan", PanValue & T> {
24
+ }
25
+ export declare const PAN_SIGNAL_KIND: "pan";
26
+ export declare function createDefaultPanValue(): PanValue;
27
+ export declare function createDefaultPanSignal(): PanSignal;
28
+ export declare function createPanSignal(value: PanValue): PanSignal;
29
+ //# sourceMappingURL=pan-signal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pan-signal.d.ts","sourceRoot":"","sources":["../../../src/features/pan/pan-signal.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,QAAQ,CAAC;IAEhB,mDAAmD;IACnD,MAAM,EAAE,KAAK,CAAC;IACd,yDAAyD;IACzD,UAAU,EAAE,KAAK,CAAC;IAElB,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,QAAQ,EAAE,MAAM,CAAC;IAEjB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IAEjB,iCAAiC;IACjC,SAAS,EAAE,YAAY,CAAC;CACzB;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,EAAE,CAAE,SAAQ,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC;CAAG;AAEzE,eAAO,MAAM,eAAe,EAAG,KAAc,CAAC;AAE9C,wBAAgB,qBAAqB,IAAI,QAAQ,CAUhD;AAED,wBAAgB,sBAAsB,IAAI,SAAS,CAElD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAE1D"}
@@ -0,0 +1,42 @@
1
+ export type PanPhase = "unknown" | "start" | "move" | "end" | "cancel";
2
+ export type PanDirection = "up" | "down" | "left" | "right" | "none";
3
+ export type PanDirectionMode = "horizontal" | "vertical" | "all";
4
+ /**
5
+ * Pointer phase values that PanRecognizer can process.
6
+ */
7
+ export type PanSourcePhase = "start" | "move" | "end" | "cancel";
8
+ /**
9
+ * Value interface that PanRecognizer requires from input signals.
10
+ * Any signal whose value satisfies this interface can be processed.
11
+ */
12
+ export interface PanSourceValue {
13
+ readonly phase: PanSourcePhase;
14
+ readonly cursor: readonly [number, number];
15
+ readonly pageCursor: readonly [number, number];
16
+ }
17
+ /**
18
+ * Minimal signal interface that PanRecognizer requires.
19
+ * Decoupled from SinglePointerSignal to allow any compatible source.
20
+ */
21
+ export interface PanSourceSignal {
22
+ readonly value: PanSourceValue;
23
+ readonly createdAt: number;
24
+ readonly deviceId: string;
25
+ }
26
+ export interface PanOptions {
27
+ /**
28
+ * Minimum movement required before pan gesture is recognized.
29
+ * Applied per-axis based on direction mode.
30
+ * @default 10
31
+ */
32
+ threshold?: number;
33
+ /**
34
+ * Direction constraint for threshold calculation.
35
+ * - "horizontal": only X movement counts toward threshold
36
+ * - "vertical": only Y movement counts toward threshold
37
+ * - "all": any movement counts
38
+ * @default "all"
39
+ */
40
+ direction?: PanDirectionMode;
41
+ }
42
+ //# sourceMappingURL=pan-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pan-types.d.ts","sourceRoot":"","sources":["../../../src/features/pan/pan-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;AAErE,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG,UAAU,GAAG,KAAK,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjE;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B"}
@@ -0,0 +1,32 @@
1
+ import { Operator, Signal, Stream } from '../../core/index.js';
2
+ import { PanSignal } from './pan-signal.js';
3
+ import { PanOptions, PanSourceValue } from './pan-types.js';
4
+ /**
5
+ * Operator that transforms pointer events into PanSignal events.
6
+ *
7
+ * Accepts any Signal whose value satisfies PanSourceValue interface.
8
+ *
9
+ * Use this when you need to compose with other operators or use a custom pointer source.
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * singlePointer(element)
14
+ * .pipe(panRecognizer({ threshold: 10 }))
15
+ * .on(pan => console.log(pan.value.deltaX, pan.value.velocityX));
16
+ * ```
17
+ */
18
+ export declare function panRecognizer<T extends Signal<string, PanSourceValue>>(options?: PanOptions): Operator<T, PanSignal>;
19
+ /**
20
+ * Creates a pan gesture stream from an element.
21
+ *
22
+ * This is a convenience function that combines singlePointer and pan gesture processing.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * pan(element, { threshold: 10 })
27
+ * .pipe(withVelocity())
28
+ * .on(event => console.log(event.deltaX, event.velocityX));
29
+ * ```
30
+ */
31
+ export declare function pan(target: EventTarget, options?: PanOptions): Stream<PanSignal>;
32
+ //# sourceMappingURL=pan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pan.d.ts","sourceRoot":"","sources":["../../../src/features/pan/pan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGjE;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,EACpE,OAAO,GAAE,UAAe,GACvB,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAC,CAuBxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,UAAe,GAAG,MAAM,CAAC,SAAS,CAAC,CAEpF"}