react-voodoo 2.6.3 → 2.7.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 (57) hide show
  1. package/.claude/scheduled_tasks.lock +1 -0
  2. package/README.md +33 -7
  3. package/coverage/clover.xml +2221 -0
  4. package/coverage/coverage-final.json +35 -0
  5. package/coverage/lcov-report/base.css +224 -0
  6. package/coverage/lcov-report/block-navigation.js +87 -0
  7. package/coverage/lcov-report/comps/Axis.js.html +391 -0
  8. package/coverage/lcov-report/comps/Draggable.js.html +1180 -0
  9. package/coverage/lcov-report/comps/Node.js.html +691 -0
  10. package/coverage/lcov-report/comps/Tweener.js.html +3637 -0
  11. package/coverage/lcov-report/comps/TweenerContext.js.html +127 -0
  12. package/coverage/lcov-report/comps/index.html +176 -0
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/hooks/index.html +146 -0
  15. package/coverage/lcov-report/hooks/useReducedMotion.js.html +172 -0
  16. package/coverage/lcov-report/hooks/useTweener.js.html +130 -0
  17. package/coverage/lcov-report/hooks/useVoodoo.js.html +553 -0
  18. package/coverage/lcov-report/index.html +206 -0
  19. package/coverage/lcov-report/prettify.css +1 -0
  20. package/coverage/lcov-report/prettify.js +2 -0
  21. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  22. package/coverage/lcov-report/sorter.js +210 -0
  23. package/coverage/lcov-report/spells/asTweener.js.html +361 -0
  24. package/coverage/lcov-report/spells/index.html +131 -0
  25. package/coverage/lcov-report/spells/withTweener.js.html +262 -0
  26. package/coverage/lcov-report/utils/CssTweenAxis.js.html +721 -0
  27. package/coverage/lcov-report/utils/css/cssUtils.js.html +916 -0
  28. package/coverage/lcov-report/utils/css/demux/backgroundColor.js.html +115 -0
  29. package/coverage/lcov-report/utils/css/demux/boxShadow.js.html +115 -0
  30. package/coverage/lcov-report/utils/css/demux/filter.js.html +724 -0
  31. package/coverage/lcov-report/utils/css/demux/index.html +176 -0
  32. package/coverage/lcov-report/utils/css/demux/textShadow.js.html +115 -0
  33. package/coverage/lcov-report/utils/css/demux/transform.js.html +1006 -0
  34. package/coverage/lcov-report/utils/css/demux/typed/any.js.html +640 -0
  35. package/coverage/lcov-report/utils/css/demux/typed/bool.js.html +196 -0
  36. package/coverage/lcov-report/utils/css/demux/typed/color.js.html +322 -0
  37. package/coverage/lcov-report/utils/css/demux/typed/index.html +236 -0
  38. package/coverage/lcov-report/utils/css/demux/typed/length.js.html +562 -0
  39. package/coverage/lcov-report/utils/css/demux/typed/multi.js.html +298 -0
  40. package/coverage/lcov-report/utils/css/demux/typed/number.js.html +199 -0
  41. package/coverage/lcov-report/utils/css/demux/typed/ratio.js.html +199 -0
  42. package/coverage/lcov-report/utils/css/demux/typed/shadow.js.html +1060 -0
  43. package/coverage/lcov-report/utils/css/demux/typed/svgAttr.js.html +214 -0
  44. package/coverage/lcov-report/utils/css/index.html +146 -0
  45. package/coverage/lcov-report/utils/css/index.js.html +829 -0
  46. package/coverage/lcov-report/utils/css/prop.js.html +199 -0
  47. package/coverage/lcov-report/utils/dom.js.html +1309 -0
  48. package/coverage/lcov-report/utils/index.html +206 -0
  49. package/coverage/lcov-report/utils/inertia.js.html +2140 -0
  50. package/coverage/lcov-report/utils/motionPrefs.js.html +262 -0
  51. package/coverage/lcov-report/utils/react.js.html +199 -0
  52. package/coverage/lcov-report/utils/spring.js.html +397 -0
  53. package/coverage/lcov-report/utils/tweenTools.js.html +1003 -0
  54. package/coverage/lcov.info +4931 -0
  55. package/dist/react-voodoo.js +1 -1
  56. package/dist/react-voodoo.js.map +1 -1
  57. package/package.json +3 -3
@@ -0,0 +1,361 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for spells/asTweener.js</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> / <a href="index.html">spells</a> asTweener.js</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/27</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/13</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/8</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/26</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <pre><table class="coverage">
66
+ <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
+ <a name='L2'></a><a href='#L2'>2</a>
68
+ <a name='L3'></a><a href='#L3'>3</a>
69
+ <a name='L4'></a><a href='#L4'>4</a>
70
+ <a name='L5'></a><a href='#L5'>5</a>
71
+ <a name='L6'></a><a href='#L6'>6</a>
72
+ <a name='L7'></a><a href='#L7'>7</a>
73
+ <a name='L8'></a><a href='#L8'>8</a>
74
+ <a name='L9'></a><a href='#L9'>9</a>
75
+ <a name='L10'></a><a href='#L10'>10</a>
76
+ <a name='L11'></a><a href='#L11'>11</a>
77
+ <a name='L12'></a><a href='#L12'>12</a>
78
+ <a name='L13'></a><a href='#L13'>13</a>
79
+ <a name='L14'></a><a href='#L14'>14</a>
80
+ <a name='L15'></a><a href='#L15'>15</a>
81
+ <a name='L16'></a><a href='#L16'>16</a>
82
+ <a name='L17'></a><a href='#L17'>17</a>
83
+ <a name='L18'></a><a href='#L18'>18</a>
84
+ <a name='L19'></a><a href='#L19'>19</a>
85
+ <a name='L20'></a><a href='#L20'>20</a>
86
+ <a name='L21'></a><a href='#L21'>21</a>
87
+ <a name='L22'></a><a href='#L22'>22</a>
88
+ <a name='L23'></a><a href='#L23'>23</a>
89
+ <a name='L24'></a><a href='#L24'>24</a>
90
+ <a name='L25'></a><a href='#L25'>25</a>
91
+ <a name='L26'></a><a href='#L26'>26</a>
92
+ <a name='L27'></a><a href='#L27'>27</a>
93
+ <a name='L28'></a><a href='#L28'>28</a>
94
+ <a name='L29'></a><a href='#L29'>29</a>
95
+ <a name='L30'></a><a href='#L30'>30</a>
96
+ <a name='L31'></a><a href='#L31'>31</a>
97
+ <a name='L32'></a><a href='#L32'>32</a>
98
+ <a name='L33'></a><a href='#L33'>33</a>
99
+ <a name='L34'></a><a href='#L34'>34</a>
100
+ <a name='L35'></a><a href='#L35'>35</a>
101
+ <a name='L36'></a><a href='#L36'>36</a>
102
+ <a name='L37'></a><a href='#L37'>37</a>
103
+ <a name='L38'></a><a href='#L38'>38</a>
104
+ <a name='L39'></a><a href='#L39'>39</a>
105
+ <a name='L40'></a><a href='#L40'>40</a>
106
+ <a name='L41'></a><a href='#L41'>41</a>
107
+ <a name='L42'></a><a href='#L42'>42</a>
108
+ <a name='L43'></a><a href='#L43'>43</a>
109
+ <a name='L44'></a><a href='#L44'>44</a>
110
+ <a name='L45'></a><a href='#L45'>45</a>
111
+ <a name='L46'></a><a href='#L46'>46</a>
112
+ <a name='L47'></a><a href='#L47'>47</a>
113
+ <a name='L48'></a><a href='#L48'>48</a>
114
+ <a name='L49'></a><a href='#L49'>49</a>
115
+ <a name='L50'></a><a href='#L50'>50</a>
116
+ <a name='L51'></a><a href='#L51'>51</a>
117
+ <a name='L52'></a><a href='#L52'>52</a>
118
+ <a name='L53'></a><a href='#L53'>53</a>
119
+ <a name='L54'></a><a href='#L54'>54</a>
120
+ <a name='L55'></a><a href='#L55'>55</a>
121
+ <a name='L56'></a><a href='#L56'>56</a>
122
+ <a name='L57'></a><a href='#L57'>57</a>
123
+ <a name='L58'></a><a href='#L58'>58</a>
124
+ <a name='L59'></a><a href='#L59'>59</a>
125
+ <a name='L60'></a><a href='#L60'>60</a>
126
+ <a name='L61'></a><a href='#L61'>61</a>
127
+ <a name='L62'></a><a href='#L62'>62</a>
128
+ <a name='L63'></a><a href='#L63'>63</a>
129
+ <a name='L64'></a><a href='#L64'>64</a>
130
+ <a name='L65'></a><a href='#L65'>65</a>
131
+ <a name='L66'></a><a href='#L66'>66</a>
132
+ <a name='L67'></a><a href='#L67'>67</a>
133
+ <a name='L68'></a><a href='#L68'>68</a>
134
+ <a name='L69'></a><a href='#L69'>69</a>
135
+ <a name='L70'></a><a href='#L70'>70</a>
136
+ <a name='L71'></a><a href='#L71'>71</a>
137
+ <a name='L72'></a><a href='#L72'>72</a>
138
+ <a name='L73'></a><a href='#L73'>73</a>
139
+ <a name='L74'></a><a href='#L74'>74</a>
140
+ <a name='L75'></a><a href='#L75'>75</a>
141
+ <a name='L76'></a><a href='#L76'>76</a>
142
+ <a name='L77'></a><a href='#L77'>77</a>
143
+ <a name='L78'></a><a href='#L78'>78</a>
144
+ <a name='L79'></a><a href='#L79'>79</a>
145
+ <a name='L80'></a><a href='#L80'>80</a>
146
+ <a name='L81'></a><a href='#L81'>81</a>
147
+ <a name='L82'></a><a href='#L82'>82</a>
148
+ <a name='L83'></a><a href='#L83'>83</a>
149
+ <a name='L84'></a><a href='#L84'>84</a>
150
+ <a name='L85'></a><a href='#L85'>85</a>
151
+ <a name='L86'></a><a href='#L86'>86</a>
152
+ <a name='L87'></a><a href='#L87'>87</a>
153
+ <a name='L88'></a><a href='#L88'>88</a>
154
+ <a name='L89'></a><a href='#L89'>89</a>
155
+ <a name='L90'></a><a href='#L90'>90</a>
156
+ <a name='L91'></a><a href='#L91'>91</a>
157
+ <a name='L92'></a><a href='#L92'>92</a>
158
+ <a name='L93'></a><a href='#L93'>93</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
159
+ <span class="cline-any cline-neutral">&nbsp;</span>
160
+ <span class="cline-any cline-neutral">&nbsp;</span>
161
+ <span class="cline-any cline-neutral">&nbsp;</span>
162
+ <span class="cline-any cline-neutral">&nbsp;</span>
163
+ <span class="cline-any cline-neutral">&nbsp;</span>
164
+ <span class="cline-any cline-neutral">&nbsp;</span>
165
+ <span class="cline-any cline-neutral">&nbsp;</span>
166
+ <span class="cline-any cline-neutral">&nbsp;</span>
167
+ <span class="cline-any cline-neutral">&nbsp;</span>
168
+ <span class="cline-any cline-neutral">&nbsp;</span>
169
+ <span class="cline-any cline-neutral">&nbsp;</span>
170
+ <span class="cline-any cline-neutral">&nbsp;</span>
171
+ <span class="cline-any cline-neutral">&nbsp;</span>
172
+ <span class="cline-any cline-neutral">&nbsp;</span>
173
+ <span class="cline-any cline-neutral">&nbsp;</span>
174
+ <span class="cline-any cline-no">&nbsp;</span>
175
+ <span class="cline-any cline-neutral">&nbsp;</span>
176
+ <span class="cline-any cline-neutral">&nbsp;</span>
177
+ <span class="cline-any cline-neutral">&nbsp;</span>
178
+ <span class="cline-any cline-neutral">&nbsp;</span>
179
+ <span class="cline-any cline-neutral">&nbsp;</span>
180
+ <span class="cline-any cline-neutral">&nbsp;</span>
181
+ <span class="cline-any cline-neutral">&nbsp;</span>
182
+ <span class="cline-any cline-neutral">&nbsp;</span>
183
+ <span class="cline-any cline-neutral">&nbsp;</span>
184
+ <span class="cline-any cline-neutral">&nbsp;</span>
185
+ <span class="cline-any cline-neutral">&nbsp;</span>
186
+ <span class="cline-any cline-no">&nbsp;</span>
187
+ <span class="cline-any cline-no">&nbsp;</span>
188
+ <span class="cline-any cline-no">&nbsp;</span>
189
+ <span class="cline-any cline-no">&nbsp;</span>
190
+ <span class="cline-any cline-neutral">&nbsp;</span>
191
+ <span class="cline-any cline-neutral">&nbsp;</span>
192
+ <span class="cline-any cline-no">&nbsp;</span>
193
+ <span class="cline-any cline-neutral">&nbsp;</span>
194
+ <span class="cline-any cline-neutral">&nbsp;</span>
195
+ <span class="cline-any cline-no">&nbsp;</span>
196
+ <span class="cline-any cline-neutral">&nbsp;</span>
197
+ <span class="cline-any cline-no">&nbsp;</span>
198
+ <span class="cline-any cline-neutral">&nbsp;</span>
199
+ <span class="cline-any cline-no">&nbsp;</span>
200
+ <span class="cline-any cline-no">&nbsp;</span>
201
+ <span class="cline-any cline-neutral">&nbsp;</span>
202
+ <span class="cline-any cline-neutral">&nbsp;</span>
203
+ <span class="cline-any cline-neutral">&nbsp;</span>
204
+ <span class="cline-any cline-no">&nbsp;</span>
205
+ <span class="cline-any cline-neutral">&nbsp;</span>
206
+ <span class="cline-any cline-no">&nbsp;</span>
207
+ <span class="cline-any cline-no">&nbsp;</span>
208
+ <span class="cline-any cline-no">&nbsp;</span>
209
+ <span class="cline-any cline-neutral">&nbsp;</span>
210
+ <span class="cline-any cline-no">&nbsp;</span>
211
+ <span class="cline-any cline-neutral">&nbsp;</span>
212
+ <span class="cline-any cline-neutral">&nbsp;</span>
213
+ <span class="cline-any cline-neutral">&nbsp;</span>
214
+ <span class="cline-any cline-no">&nbsp;</span>
215
+ <span class="cline-any cline-neutral">&nbsp;</span>
216
+ <span class="cline-any cline-neutral">&nbsp;</span>
217
+ <span class="cline-any cline-neutral">&nbsp;</span>
218
+ <span class="cline-any cline-neutral">&nbsp;</span>
219
+ <span class="cline-any cline-neutral">&nbsp;</span>
220
+ <span class="cline-any cline-neutral">&nbsp;</span>
221
+ <span class="cline-any cline-neutral">&nbsp;</span>
222
+ <span class="cline-any cline-neutral">&nbsp;</span>
223
+ <span class="cline-any cline-neutral">&nbsp;</span>
224
+ <span class="cline-any cline-neutral">&nbsp;</span>
225
+ <span class="cline-any cline-neutral">&nbsp;</span>
226
+ <span class="cline-any cline-no">&nbsp;</span>
227
+ <span class="cline-any cline-no">&nbsp;</span>
228
+ <span class="cline-any cline-no">&nbsp;</span>
229
+ <span class="cline-any cline-no">&nbsp;</span>
230
+ <span class="cline-any cline-no">&nbsp;</span>
231
+ <span class="cline-any cline-neutral">&nbsp;</span>
232
+ <span class="cline-any cline-neutral">&nbsp;</span>
233
+ <span class="cline-any cline-neutral">&nbsp;</span>
234
+ <span class="cline-any cline-no">&nbsp;</span>
235
+ <span class="cline-any cline-neutral">&nbsp;</span>
236
+ <span class="cline-any cline-neutral">&nbsp;</span>
237
+ <span class="cline-any cline-neutral">&nbsp;</span>
238
+ <span class="cline-any cline-neutral">&nbsp;</span>
239
+ <span class="cline-any cline-neutral">&nbsp;</span>
240
+ <span class="cline-any cline-neutral">&nbsp;</span>
241
+ <span class="cline-any cline-neutral">&nbsp;</span>
242
+ <span class="cline-any cline-no">&nbsp;</span>
243
+ <span class="cline-any cline-no">&nbsp;</span>
244
+ <span class="cline-any cline-neutral">&nbsp;</span>
245
+ <span class="cline-any cline-neutral">&nbsp;</span>
246
+ <span class="cline-any cline-neutral">&nbsp;</span>
247
+ <span class="cline-any cline-no">&nbsp;</span>
248
+ <span class="cline-any cline-no">&nbsp;</span>
249
+ <span class="cline-any cline-neutral">&nbsp;</span>
250
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">/*
251
+ * Copyright (c) 2022-2023 Braun Nathanael
252
+ *
253
+ * This project is dual licensed under one of the following licenses:
254
+ * - Creative Commons Attribution-NoDerivatives 4.0 International License.
255
+ * - GNU AFFERO GENERAL PUBLIC LICENSE Version 3
256
+ *
257
+ * You should have received a copy of theses licenses along with this work.
258
+ * If not, see &lt;http://creativecommons.org/licenses/by-nd/4.0/&gt; or &lt;http://www.gnu.org/licenses/agpl-3.0.txt&gt;.
259
+ */
260
+ &nbsp;
261
+ import React from "react";
262
+ import Tweener from '../comps/Tweener';
263
+ import TweenerContext from '../comps/TweenerContext';
264
+ import { isReactComponent } from '../utils/react';
265
+ &nbsp;
266
+ const SimpleObjectProto = <span class="cstat-no" title="statement not covered" >( {} ).constructor;</span>
267
+ &nbsp;
268
+ /**
269
+ * TweenerHost — thin function component hosting a pure Tweener engine.
270
+ *
271
+ * Replaces the legacy Tweener.render() (Tweener no longer extends React.Component):
272
+ * - maps the parent engine from TweenerContext into engine._parentTweener — a
273
+ * ref-like idempotent write, read at event time only (drag tree traversal &amp;
274
+ * named lookup), exactly like the legacy Consumer did
275
+ * - provides this engine to descendants
276
+ * - drives the engine lifecycle (componentDidMount/DidUpdate/WillUnmount)
277
+ */
278
+ const TweenerHost = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >( </span>{ oProps, forwardedRef, BaseComponent, tweenerOptions } ) =&gt; {</span>
279
+ const parentTweener = <span class="cstat-no" title="statement not covered" >React.useContext(TweenerContext),</span>
280
+ engine = <span class="cstat-no" title="statement not covered" >React.useMemo(</span>
281
+ <span class="fstat-no" title="function not covered" > ()</span> =&gt; <span class="cstat-no" title="statement not covered" >new Tweener({ oProps, forwardedRef, BaseComponent, tweenerOptions }),</span>
282
+ []
283
+ ),
284
+ didMount = <span class="cstat-no" title="statement not covered" >React.useRef(false);</span>
285
+ &nbsp;
286
+ // same ref-like parent mapping the legacy class render() did
287
+ <span class="cstat-no" title="statement not covered" > engine._parentTweener = parentTweener;</span>
288
+ &nbsp;
289
+ <span class="cstat-no" title="statement not covered" > React.useEffect(</span>
290
+ <span class="fstat-no" title="function not covered" > ()</span> =&gt; {
291
+ <span class="cstat-no" title="statement not covered" > engine.componentDidMount();</span>
292
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >engine.componentWillUnmount();</span></span>
293
+ }, []
294
+ );
295
+ // class-lifecycle parity: componentDidUpdate on every update render, not on mount
296
+ <span class="cstat-no" title="statement not covered" > React.useEffect(</span>
297
+ <span class="fstat-no" title="function not covered" > ()</span> =&gt; {
298
+ <span class="cstat-no" title="statement not covered" > if ( !didMount.current ) {</span>
299
+ <span class="cstat-no" title="statement not covered" > didMount.current = true;</span>
300
+ <span class="cstat-no" title="statement not covered" > return;</span>
301
+ }
302
+ <span class="cstat-no" title="statement not covered" > engine.componentDidUpdate();</span>
303
+ }
304
+ );
305
+ &nbsp;
306
+ <span class="cstat-no" title="statement not covered" > return &lt;TweenerContext.Provider value={ engine }&gt;</span>
307
+ &lt;BaseComponent { ...oProps } ref={ engine._.rootRef } tweener={ engine }/&gt;
308
+ &lt;/TweenerContext.Provider&gt;;
309
+ };
310
+ &nbsp;
311
+ /**
312
+ * asTweener decorator
313
+ * @param argz
314
+ * @returns {*}
315
+ */
316
+ export default function <span class="fstat-no" title="function not covered" >asTweener(</span> ...argz ) {
317
+
318
+ let BaseComponent = <span class="cstat-no" title="statement not covered" >( !argz[ 0 ] || isReactComponent(argz[ 0 ]) ) &amp;&amp; argz.shift(),</span>
319
+ options = <span class="cstat-no" title="statement not covered" >( !argz[ 0 ] || argz[ 0 ] instanceof SimpleObjectProto ) &amp;&amp; argz.shift() || {};</span>
320
+ <span class="cstat-no" title="statement not covered" > if ( !BaseComponent ) {</span>
321
+ <span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >fu</span>nction ( BaseComponent ) {</span>
322
+ <span class="cstat-no" title="statement not covered" > return asTweener(BaseComponent, options)</span>
323
+ }
324
+ }
325
+
326
+ <span class="cstat-no" title="statement not covered" > options = {</span>
327
+ wheelRatio : 5,
328
+ maxClickTm : 200,
329
+ maxClickOffset: 20,
330
+ ...options,
331
+ };
332
+
333
+
334
+ let withRef = <span class="cstat-no" title="statement not covered" >React.forwardRef(<span class="fstat-no" title="function not covered" >( </span>props, ref ) =&gt; {</span>
335
+ <span class="cstat-no" title="statement not covered" > return &lt;TweenerHost oProps={ props } forwardedRef={ ref }</span>
336
+ BaseComponent={ BaseComponent }
337
+ tweenerOptions={ options }/&gt;;
338
+ });
339
+ <span class="cstat-no" title="statement not covered" > withRef.displayName = String.fromCharCode(0xD83E, 0xDDD9) + ( BaseComponent.displayName || BaseComponent.name );</span>
340
+ <span class="cstat-no" title="statement not covered" > return withRef;</span>
341
+ }
342
+ &nbsp;</pre></td></tr></table></pre>
343
+
344
+ <div class='push'></div><!-- for sticky footer -->
345
+ </div><!-- /wrapper -->
346
+ <div class='footer quiet pad2 space-top1 center small'>
347
+ Code coverage generated by
348
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
349
+ at 2026-06-06T09:33:16.802Z
350
+ </div>
351
+ <script src="../prettify.js"></script>
352
+ <script>
353
+ window.onload = function () {
354
+ prettyPrint();
355
+ };
356
+ </script>
357
+ <script src="../sorter.js"></script>
358
+ <script src="../block-navigation.js"></script>
359
+ </body>
360
+ </html>
361
+
@@ -0,0 +1,131 @@
1
+
2
+ <!doctype html>
3
+ <html lang="en">
4
+
5
+ <head>
6
+ <title>Code coverage report for spells</title>
7
+ <meta charset="utf-8" />
8
+ <link rel="stylesheet" href="../prettify.css" />
9
+ <link rel="stylesheet" href="../base.css" />
10
+ <link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
11
+ <meta name="viewport" content="width=device-width, initial-scale=1" />
12
+ <style type='text/css'>
13
+ .coverage-summary .sorter {
14
+ background-image: url(../sort-arrow-sprite.png);
15
+ }
16
+ </style>
17
+ </head>
18
+
19
+ <body>
20
+ <div class='wrapper'>
21
+ <div class='pad1'>
22
+ <h1><a href="../index.html">All files</a> spells</h1>
23
+ <div class='clearfix'>
24
+
25
+ <div class='fl pad1y space-right2'>
26
+ <span class="strong">0% </span>
27
+ <span class="quiet">Statements</span>
28
+ <span class='fraction'>0/40</span>
29
+ </div>
30
+
31
+
32
+ <div class='fl pad1y space-right2'>
33
+ <span class="strong">0% </span>
34
+ <span class="quiet">Branches</span>
35
+ <span class='fraction'>0/27</span>
36
+ </div>
37
+
38
+
39
+ <div class='fl pad1y space-right2'>
40
+ <span class="strong">0% </span>
41
+ <span class="quiet">Functions</span>
42
+ <span class='fraction'>0/13</span>
43
+ </div>
44
+
45
+
46
+ <div class='fl pad1y space-right2'>
47
+ <span class="strong">0% </span>
48
+ <span class="quiet">Lines</span>
49
+ <span class='fraction'>0/39</span>
50
+ </div>
51
+
52
+
53
+ </div>
54
+ <p class="quiet">
55
+ Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
56
+ </p>
57
+ <template id="filterTemplate">
58
+ <div class="quiet">
59
+ Filter:
60
+ <input type="search" id="fileSearch">
61
+ </div>
62
+ </template>
63
+ </div>
64
+ <div class='status-line low'></div>
65
+ <div class="pad1">
66
+ <table class="coverage-summary">
67
+ <thead>
68
+ <tr>
69
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
70
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
71
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
72
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
73
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
74
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
75
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
76
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
77
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
78
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
79
+ </tr>
80
+ </thead>
81
+ <tbody><tr>
82
+ <td class="file low" data-value="asTweener.js"><a href="asTweener.js.html">asTweener.js</a></td>
83
+ <td data-value="0" class="pic low">
84
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
85
+ </td>
86
+ <td data-value="0" class="pct low">0%</td>
87
+ <td data-value="27" class="abs low">0/27</td>
88
+ <td data-value="0" class="pct low">0%</td>
89
+ <td data-value="13" class="abs low">0/13</td>
90
+ <td data-value="0" class="pct low">0%</td>
91
+ <td data-value="8" class="abs low">0/8</td>
92
+ <td data-value="0" class="pct low">0%</td>
93
+ <td data-value="26" class="abs low">0/26</td>
94
+ </tr>
95
+
96
+ <tr>
97
+ <td class="file low" data-value="withTweener.js"><a href="withTweener.js.html">withTweener.js</a></td>
98
+ <td data-value="0" class="pic low">
99
+ <div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
100
+ </td>
101
+ <td data-value="0" class="pct low">0%</td>
102
+ <td data-value="13" class="abs low">0/13</td>
103
+ <td data-value="0" class="pct low">0%</td>
104
+ <td data-value="14" class="abs low">0/14</td>
105
+ <td data-value="0" class="pct low">0%</td>
106
+ <td data-value="5" class="abs low">0/5</td>
107
+ <td data-value="0" class="pct low">0%</td>
108
+ <td data-value="13" class="abs low">0/13</td>
109
+ </tr>
110
+
111
+ </tbody>
112
+ </table>
113
+ </div>
114
+ <div class='push'></div><!-- for sticky footer -->
115
+ </div><!-- /wrapper -->
116
+ <div class='footer quiet pad2 space-top1 center small'>
117
+ Code coverage generated by
118
+ <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
119
+ at 2026-06-06T09:33:16.802Z
120
+ </div>
121
+ <script src="../prettify.js"></script>
122
+ <script>
123
+ window.onload = function () {
124
+ prettyPrint();
125
+ };
126
+ </script>
127
+ <script src="../sorter.js"></script>
128
+ <script src="../block-navigation.js"></script>
129
+ </body>
130
+ </html>
131
+