paper 0.15.0 → 0.17.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 (64) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/README.md +24 -16
  3. package/dist/docs/assets/js/paper.js +4811 -808
  4. package/dist/docs/classes/AreaText.html +771 -243
  5. package/dist/docs/classes/ChangeFlag.html +1 -1
  6. package/dist/docs/classes/Color.html +218 -21
  7. package/dist/docs/classes/CompoundPath.html +1174 -274
  8. package/dist/docs/classes/Curve.html +2 -2
  9. package/dist/docs/classes/CurveLocation.html +1 -1
  10. package/dist/docs/classes/DrawEvent.html +69 -0
  11. package/dist/docs/classes/Effect.html +434 -0
  12. package/dist/docs/classes/EffectInstance.html +304 -0
  13. package/dist/docs/classes/Event.html +1 -1
  14. package/dist/docs/classes/Gradient.html +1 -1
  15. package/dist/docs/classes/GradientStop.html +1 -1
  16. package/dist/docs/classes/Group.html +842 -243
  17. package/dist/docs/classes/HitResult.html +1 -1
  18. package/dist/docs/classes/HostItem.html +770 -242
  19. package/dist/docs/classes/Item.html +827 -242
  20. package/dist/docs/classes/Key.html +1 -1
  21. package/dist/docs/classes/KeyEvent.html +1 -1
  22. package/dist/docs/classes/Layer.html +784 -185
  23. package/dist/docs/classes/Matrix.html +1 -1
  24. package/dist/docs/classes/MouseEvent.html +1 -1
  25. package/dist/docs/classes/PaperScope.html +1 -1
  26. package/dist/docs/classes/PaperScript.html +4 -2
  27. package/dist/docs/classes/Path.html +1366 -352
  28. package/dist/docs/classes/PathItem.html +1198 -298
  29. package/dist/docs/classes/PathText.html +772 -244
  30. package/dist/docs/classes/PatternDefinition.html +367 -0
  31. package/dist/docs/classes/Point.html +33 -5
  32. package/dist/docs/classes/PointText.html +771 -243
  33. package/dist/docs/classes/Project.html +251 -9
  34. package/dist/docs/classes/Raster.html +770 -242
  35. package/dist/docs/classes/Rectangle.html +50 -8
  36. package/dist/docs/classes/Segment.html +79 -2
  37. package/dist/docs/classes/Shape.html +770 -242
  38. package/dist/docs/classes/Size.html +31 -3
  39. package/dist/docs/classes/StrokeProfileStop.html +346 -0
  40. package/dist/docs/classes/Style.html +67 -6
  41. package/dist/docs/classes/SymbolDefinition.html +28 -2
  42. package/dist/docs/classes/SymbolItem.html +807 -242
  43. package/dist/docs/classes/TextItem.html +771 -243
  44. package/dist/docs/classes/TextRange.html +1 -1
  45. package/dist/docs/classes/TextStory.html +1 -1
  46. package/dist/docs/classes/Tool.html +2 -2
  47. package/dist/docs/classes/ToolEvent.html +1 -1
  48. package/dist/docs/classes/Tween.html +1 -1
  49. package/dist/docs/classes/View.html +2 -2
  50. package/dist/docs/classes/global.html +1 -1
  51. package/dist/docs/classes/index.html +2 -2
  52. package/dist/docs/index.html +1 -1
  53. package/dist/node/browser.js +15 -0
  54. package/dist/paper-core.js +4701 -728
  55. package/dist/paper-core.min.js +3 -3
  56. package/dist/paper-full.js +4811 -808
  57. package/dist/paper-full.min.js +3 -3
  58. package/dist/paper-hosted.js +5389 -892
  59. package/dist/paper.d.ts +1058 -69
  60. package/examples/Paperjs.org/LiveEffects.html +366 -0
  61. package/examples/Paperjs.org/Offsetting.html +379 -0
  62. package/examples/Paperjs.org/StrokeProfiles.html +706 -0
  63. package/examples/Scripts/Patterns.html +57 -0
  64. package/package.json +21 -11
@@ -801,6 +801,34 @@ console.log(result); // {width: 2, height: 0}</code></pre>
801
801
 
802
802
 
803
803
 
804
+ </div>
805
+
806
+ </div>
807
+ </div>
808
+
809
+
810
+ <div id="values" class="member">
811
+ <div class="member-link">
812
+ <a name="values" href="#values"><tt><b>values</b></tt></a>
813
+ </div>
814
+ <div class="member-description hidden">
815
+
816
+ <div class="member-text">
817
+ <p>The size&rsquo;s dimensions as an array, <code>[width, height]</code>, as <a href="../classes/Matrix.html#values"><tt>matrix.values</tt></a> gives those of a matrix.</p>
818
+
819
+ <p>Read only.</p>
820
+
821
+
822
+
823
+ <ul class="member-list">
824
+ <h4>Type:</h4>
825
+ <li>
826
+ Array of <tt>Numbers</tt>
827
+ </li>
828
+ </ul>
829
+
830
+
831
+
804
832
  </div>
805
833
 
806
834
  </div>
@@ -1008,7 +1036,7 @@ console.log(result); // {width: -12, height: 6}</code></pre>
1008
1036
  </div>
1009
1037
  <div class="member-description hidden">
1010
1038
  <div class="member-text">
1011
- <p>Checks if this size has both the width and height set to 0.</p>
1039
+ <p>Checks if this size has both the width and height set to 0, within a tolerance of 1e-12, unlike <a href="../classes/Size.html#equals-size"><tt>equals(size)</tt></a>, which compares exactly.</p>
1012
1040
 
1013
1041
 
1014
1042
 
@@ -1016,7 +1044,7 @@ console.log(result); // {width: -12, height: 6}</code></pre>
1016
1044
  <h4>Returns:</h4>
1017
1045
 
1018
1046
  <li>
1019
- <tt><tt>Boolean</tt></tt>&nbsp;&mdash;&nbsp;<tt>true</tt> if both width and height are 0, <tt>false</tt> otherwise
1047
+ <tt><tt>Boolean</tt></tt>&nbsp;&mdash;&nbsp;<tt>true</tt> if both width and height are 0, within the tolerance, <tt>false</tt> otherwise
1020
1048
  </li>
1021
1049
 
1022
1050
 
@@ -1878,7 +1906,7 @@ var size = maxSize * randomSize;</code></pre>
1878
1906
 
1879
1907
  <!-- =========================== copyright notice ========================== -->
1880
1908
  <p class="footer">
1881
- Paper.js v0.15.0<br>
1909
+ Paper.js v0.17.0<br>
1882
1910
  Copyright &#169; 2011—2026 <a href="http://www.lehni.org" target="_blank">J&uuml;rg Lehni</a> &amp; <a href="http://www.jonathanpuckey.com" target="_blank">Jonathan Puckey</a>. All Rights Reserved.</p>
1883
1911
  <div class="content-end"></div>
1884
1912
 
@@ -0,0 +1,346 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>StrokeProfileStop</title>
6
+ <base target="class-frame">
7
+ <link href="../assets/css/docs.css" rel="stylesheet" type="text/css">
8
+ <script src="../assets/js/paper.js"></script>
9
+ <script src="../assets/js/jquery.js"></script>
10
+ <script src="../assets/js/codemirror.js"></script>
11
+ <script src="../assets/js/docs.js"></script>
12
+ </head>
13
+ <body>
14
+ <article class="reference">
15
+ <div class="reference-class">
16
+ <h1>StrokeProfileStop</h1>
17
+
18
+ <p>A stop of the stroke profile of a path, see <a href="../classes/Path.html#strokeprofile"><tt>path.strokeProfile</tt></a>: the pen that draws its stroke at an offset along the path, an ellipse with a width, an aspect and an angle. Between the stops, each of them changes along the path, easing into and out of smooth stops and in straight lines from the others, see <a href="../classes/StrokeProfileStop.html#smooth"><tt>smooth</tt></a>. A stop can set only some of them, and leave the others to the stops around it.</p>
19
+
20
+
21
+ </div>
22
+
23
+ <!-- =============================== constructors ========================== -->
24
+ <div class="reference-members">
25
+ <h2>Constructors</h2>
26
+
27
+
28
+ <div id="strokeprofilestop" class="member">
29
+ <div class="member-link">
30
+ <a name="strokeprofilestop" href="#strokeprofilestop"><tt><b>StrokeProfileStop</b>([object])</tt></a>
31
+ </div>
32
+ <div class="member-description hidden">
33
+ <div class="member-text">
34
+ <p>Creates a stroke profile stop.</p>
35
+
36
+
37
+ <ul class="member-list">
38
+ <h4>Parameters:</h4>
39
+
40
+ <li>
41
+ <tt>object:</tt>
42
+ <tt>Object</tt>
43
+ &mdash;&nbsp;the properties of the stop, its <code>offset</code>, <code>width</code>, <code>aspect</code>, <code>angle</code> and <code>smooth</code>
44
+ &mdash;&nbsp;optional
45
+ </li>
46
+
47
+ </ul>
48
+
49
+
50
+ <ul class="member-list">
51
+ <h4>Returns:</h4>
52
+
53
+ <li>
54
+ <tt><a href="../classes/StrokeProfileStop.html"><tt>StrokeProfileStop</tt></a></tt>
55
+ </li>
56
+
57
+
58
+ </ul>
59
+
60
+
61
+
62
+
63
+ <h4>Example:</h4>
64
+
65
+
66
+ <pre><code>var path = new Path.Line([20, 50], [180, 50]);
67
+ path.strokeColor = 'black';
68
+ path.strokeWidth = 10;
69
+ path.strokeProfile = [
70
+ new StrokeProfileStop({ offset: 0, width: 0.5 }),
71
+ new StrokeProfileStop({ offset: 160, width: 2 })
72
+ ];</code></pre>
73
+
74
+ </div>
75
+ </div>
76
+ </div>
77
+
78
+ </div>
79
+
80
+
81
+
82
+
83
+
84
+ <!-- ================================ properties =========================== -->
85
+ <div class="reference-members">
86
+ <h2>Properties</h2>
87
+
88
+
89
+ <div id="path" class="member">
90
+ <div class="member-link">
91
+ <a name="path" href="#path"><tt><b>path</b></tt></a>
92
+ </div>
93
+ <div class="member-description hidden">
94
+
95
+ <div class="member-text">
96
+ <p>The path whose stroke profile the stop is part of.</p>
97
+
98
+ <p>Read only.</p>
99
+
100
+
101
+
102
+ <ul class="member-list">
103
+ <h4>Type:</h4>
104
+ <li>
105
+ <a href="../classes/Path.html"><tt>Path</tt></a>⟋<tt>null</tt>
106
+ </li>
107
+ </ul>
108
+
109
+
110
+
111
+ </div>
112
+
113
+ </div>
114
+ </div>
115
+
116
+
117
+ <div id="offset" class="member">
118
+ <div class="member-link">
119
+ <a name="offset" href="#offset"><tt><b>offset</b></tt></a>
120
+ </div>
121
+ <div class="member-description hidden">
122
+
123
+ <div class="member-text">
124
+ <p>The offset of the stop along its path, as in <a href="../classes/Path.html#getpointat-offset"><tt>path.getPointAt(offset)</tt></a>. Unlike the offset of gradient stops, it is a length, not a fraction. The stop stays between the same segments when they move, so its offset changes with the lengths of the curves before it.</p>
125
+
126
+
127
+
128
+ <ul class="member-list">
129
+ <h4>Type:</h4>
130
+ <li>
131
+ <tt>Number</tt>
132
+ </li>
133
+ </ul>
134
+
135
+
136
+
137
+ </div>
138
+
139
+ </div>
140
+ </div>
141
+
142
+
143
+ <div id="width" class="member">
144
+ <div class="member-link">
145
+ <a name="width" href="#width"><tt><b>width</b></tt></a>
146
+ </div>
147
+ <div class="member-description hidden">
148
+
149
+ <div class="member-text">
150
+ <p>The width of the pen at the stop, as a factor of the path&rsquo;s <a href="../classes/Style.html#strokewidth"><tt>style.strokeWidth</tt></a>: <code>1</code> for the stroke width, <code>2</code> for twice as wide. Stops without a width leave it to the stops around them, and without any, it is <code>1</code>.</p>
151
+
152
+
153
+
154
+ <ul class="member-list">
155
+ <h4>Type:</h4>
156
+ <li>
157
+ <tt>Number</tt>⟋<tt>null</tt>
158
+ </li>
159
+ </ul>
160
+
161
+
162
+
163
+ </div>
164
+
165
+ </div>
166
+ </div>
167
+
168
+
169
+ <div id="aspect" class="member">
170
+ <div class="member-link">
171
+ <a name="aspect" href="#aspect"><tt><b>aspect</b></tt></a>
172
+ </div>
173
+ <div class="member-description hidden">
174
+
175
+ <div class="member-text">
176
+ <p>The aspect of the pen at the stop: its height as a factor of its width, <code>1</code> for a round pen, less for a flat nib. Stops without an aspect leave it to the stops around them, and without any, it is <code>1</code>.</p>
177
+
178
+
179
+
180
+ <ul class="member-list">
181
+ <h4>Type:</h4>
182
+ <li>
183
+ <tt>Number</tt>⟋<tt>null</tt>
184
+ </li>
185
+ </ul>
186
+
187
+
188
+
189
+ </div>
190
+
191
+ </div>
192
+ </div>
193
+
194
+
195
+ <div id="angle" class="member">
196
+ <div class="member-link">
197
+ <a name="angle" href="#angle"><tt><b>angle</b></tt></a>
198
+ </div>
199
+ <div class="member-description hidden">
200
+
201
+ <div class="member-text">
202
+ <p>The angle of the pen at the stop, in degrees, in the path&rsquo;s coordinates. Angles aren&rsquo;t wrapped: from <code>0</code> at one stop to <code>720</code> at the next, the pen turns twice. Stops without an angle leave it to the stops around them, and without any, it is <code>0</code>.</p>
203
+
204
+
205
+
206
+ <ul class="member-list">
207
+ <h4>Type:</h4>
208
+ <li>
209
+ <tt>Number</tt>⟋<tt>null</tt>
210
+ </li>
211
+ </ul>
212
+
213
+
214
+
215
+ </div>
216
+
217
+ </div>
218
+ </div>
219
+
220
+
221
+ <div id="smooth" class="member">
222
+ <div class="member-link">
223
+ <a name="smooth" href="#smooth"><tt><b>smooth</b></tt></a>
224
+ </div>
225
+ <div class="member-description hidden">
226
+
227
+ <div class="member-text">
228
+ <p>Whether the values ease into and out of the stop: they arrive at it and leave it flat, and between two smooth stops, a value follows a cubic from one to the other, without overshooting them. As the slopes don&rsquo;t depend on other stops, changing a stop only changes the values up to the stops on either side of it. Without smoothing, the values change in straight lines to the stops on either side.</p>
229
+
230
+
231
+
232
+ <ul class="member-list">
233
+ <h4>Default:</h4>
234
+ <li><tt>true</tt></li>
235
+ </ul>
236
+
237
+ <ul class="member-list">
238
+ <h4>Type:</h4>
239
+ <li>
240
+ <tt>Boolean</tt>
241
+ </li>
242
+ </ul>
243
+
244
+
245
+
246
+ </div>
247
+
248
+ </div>
249
+ </div>
250
+
251
+ </div>
252
+
253
+
254
+
255
+
256
+
257
+ <!-- ============================== methods ================================ -->
258
+ <div class="reference-members">
259
+ <h2>Methods</h2>
260
+
261
+
262
+ <div id="clone" class="member">
263
+ <div class="member-link">
264
+ <a name="clone" href="#clone"><tt><b>clone</b>()</tt></a>
265
+ </div>
266
+ <div class="member-description hidden">
267
+ <div class="member-text">
268
+
269
+
270
+
271
+
272
+ <ul class="member-list">
273
+ <h4>Returns:</h4>
274
+
275
+ <li>
276
+ <tt><a href="../classes/StrokeProfileStop.html"><tt>StrokeProfileStop</tt></a></tt>&nbsp;&mdash;&nbsp;a copy of the stop, without a path
277
+ </li>
278
+
279
+
280
+ </ul>
281
+
282
+
283
+
284
+
285
+
286
+ </div>
287
+ </div>
288
+ </div>
289
+
290
+
291
+ <div id="equals-stop" class="member">
292
+ <div class="member-link">
293
+ <a name="equals-stop" href="#equals-stop"><tt><b>equals</b>(stop)</tt></a>
294
+ </div>
295
+ <div class="member-description hidden">
296
+ <div class="member-text">
297
+ <p>Checks whether the stop is equal to the supplied one.</p>
298
+
299
+
300
+ <ul class="member-list">
301
+ <h4>Parameters:</h4>
302
+
303
+ <li>
304
+ <tt>stop:</tt>
305
+ <a href="../classes/StrokeProfileStop.html"><tt>StrokeProfileStop</tt></a>
306
+
307
+
308
+ </li>
309
+
310
+ </ul>
311
+
312
+
313
+ <ul class="member-list">
314
+ <h4>Returns:</h4>
315
+
316
+ <li>
317
+ <tt><tt>Boolean</tt></tt>&nbsp;&mdash;&nbsp;<tt>true</tt> if they are equal, <tt>false</tt> otherwise
318
+ </li>
319
+
320
+
321
+ </ul>
322
+
323
+
324
+
325
+
326
+
327
+ </div>
328
+ </div>
329
+ </div>
330
+
331
+
332
+
333
+ </div>
334
+
335
+
336
+
337
+
338
+ <!-- =========================== copyright notice ========================== -->
339
+ <p class="footer">
340
+ Paper.js v0.17.0<br>
341
+ Copyright &#169; 2011—2026 <a href="http://www.lehni.org" target="_blank">J&uuml;rg Lehni</a> &amp; <a href="http://www.jonathanpuckey.com" target="_blank">Jonathan Puckey</a>. All Rights Reserved.</p>
342
+ <div class="content-end"></div>
343
+
344
+
345
+ </article>
346
+ </body>
@@ -507,6 +507,67 @@ path.dashArray = [10, 4];
507
507
 
508
508
 
509
509
 
510
+ </div>
511
+
512
+ </div>
513
+ </div>
514
+
515
+
516
+ <div id="paintorder" class="member">
517
+ <div class="member-link">
518
+ <a name="paintorder" href="#paintorder"><tt><b>paintOrder</b></tt></a>
519
+ </div>
520
+ <div class="member-description hidden">
521
+
522
+ <div class="member-text">
523
+ <p>The order in which the fill and the stroke are painted, as in SVG&rsquo;s <code>paint-order</code>, named after what is painted first: <code>&#39;fill&#39;</code> paints the fill first, <code>&#39;stroke&#39;</code> paints the stroke first, so the fill covers its inner half.</p>
524
+
525
+
526
+ <ul class="member-list">
527
+ <h4>Values:</h4>
528
+ <li><tt>'fill'</tt>, <tt>'stroke'</tt></li>
529
+ </ul>
530
+
531
+
532
+ <ul class="member-list">
533
+ <h4>Default:</h4>
534
+ <li><tt>'fill'</tt></li>
535
+ </ul>
536
+
537
+ <ul class="member-list">
538
+ <h4>Type:</h4>
539
+ <li>
540
+ <tt>String</tt>
541
+ </li>
542
+ </ul>
543
+
544
+
545
+ <h4>Example:</h4>
546
+
547
+ <div class="paperscript split">
548
+
549
+ <div class="buttons">
550
+ <div class="button run">Run</div>
551
+ </div>
552
+
553
+ <script type="text/paperscript" canvas="canvas-8">
554
+ var text = new PointText({
555
+ point: [20, 70],
556
+ content: 'Paper',
557
+ fontSize: 50,
558
+ fillColor: 'white',
559
+ strokeColor: 'black',
560
+ strokeWidth: 8,
561
+ strokeJoin: 'round'
562
+ });
563
+
564
+ // Paint the stroke behind the fill:
565
+ text.paintOrder = 'stroke';
566
+ </script>
567
+ <div class="canvas"><canvas width="516" height="100" id="canvas-8"></canvas></div>
568
+ </div>
569
+
570
+
510
571
  </div>
511
572
 
512
573
  </div>
@@ -542,7 +603,7 @@ path.dashArray = [10, 4];
542
603
  <div class="button run">Run</div>
543
604
  </div>
544
605
 
545
- <script type="text/paperscript" canvas="canvas-8">
606
+ <script type="text/paperscript" canvas="canvas-9">
546
607
  // Create a circle shaped path at { x: 80, y: 50 }
547
608
  // with a radius of 35:
548
609
  var circle = new Path.Circle(new Point(80, 50), 35);
@@ -550,7 +611,7 @@ var circle = new Path.Circle(new Point(80, 50), 35);
550
611
  // Set the fill color of the circle to RGB red:
551
612
  circle.fillColor = new Color(1, 0, 0);
552
613
  </script>
553
- <div class="canvas"><canvas width="516" height="100" id="canvas-8"></canvas></div>
614
+ <div class="canvas"><canvas width="516" height="100" id="canvas-9"></canvas></div>
554
615
  </div>
555
616
 
556
617
 
@@ -625,7 +686,7 @@ circle.fillColor = new Color(1, 0, 0);
625
686
  <div class="button run">Run</div>
626
687
  </div>
627
688
 
628
- <script type="text/paperscript" canvas="canvas-9">
689
+ <script type="text/paperscript" canvas="canvas-10">
629
690
  var circle = new Path.Circle({
630
691
  center: [80, 50],
631
692
  radius: 35,
@@ -638,7 +699,7 @@ var circle = new Path.Circle({
638
699
  shadowOffset: new Point(5, 5)
639
700
  });
640
701
  </script>
641
- <div class="canvas"><canvas width="516" height="100" id="canvas-9"></canvas></div>
702
+ <div class="canvas"><canvas width="516" height="100" id="canvas-10"></canvas></div>
642
703
  </div>
643
704
 
644
705
 
@@ -1656,7 +1717,7 @@ wordsLongerThan, afterFirst, beforeLast, limit, zone, capitalized }</code>. Kept
1656
1717
  <div class="member-description hidden">
1657
1718
 
1658
1719
  <div class="member-text">
1659
- <p>The direction the paragraph&rsquo;s lines run in, which <code>&#39;start&#39;</code> and <code>&#39;end&#39;</code> follow; <code>null</code> for left to right.</p>
1720
+ <p>The direction the paragraph&rsquo;s lines run in, which <code>&#39;start&#39;</code> and <code>&#39;end&#39;</code> follow, and from which side their pieces are placed; <code>null</code> for left to right. Lines that mix directions across styles aren&rsquo;t reordered by the Unicode bidirectional algorithm: their pieces follow the paragraph&rsquo;s direction, and canvas orders only the letters within each piece.</p>
1660
1721
 
1661
1722
 
1662
1723
  <ul class="member-list">
@@ -1695,7 +1756,7 @@ wordsLongerThan, afterFirst, beforeLast, limit, zone, capitalized }</code>. Kept
1695
1756
 
1696
1757
  <!-- =========================== copyright notice ========================== -->
1697
1758
  <p class="footer">
1698
- Paper.js v0.15.0<br>
1759
+ Paper.js v0.17.0<br>
1699
1760
  Copyright &#169; 2011—2026 <a href="http://www.lehni.org" target="_blank">J&uuml;rg Lehni</a> &amp; <a href="http://www.jonathanpuckey.com" target="_blank">Jonathan Puckey</a>. All Rights Reserved.</p>
1700
1761
  <div class="content-end"></div>
1701
1762
 
@@ -142,6 +142,32 @@ for (var i = 0; i < 100; i++) {
142
142
 
143
143
 
144
144
 
145
+ </div>
146
+
147
+ </div>
148
+ </div>
149
+
150
+
151
+ <div id="name" class="member">
152
+ <div class="member-link">
153
+ <a name="name" href="#name"><tt><b>name</b></tt></a>
154
+ </div>
155
+ <div class="member-description hidden">
156
+
157
+ <div class="member-text">
158
+ <p>The name of the symbol.</p>
159
+
160
+
161
+
162
+ <ul class="member-list">
163
+ <h4>Type:</h4>
164
+ <li>
165
+ <tt>String</tt>
166
+ </li>
167
+ </ul>
168
+
169
+
170
+
145
171
  </div>
146
172
 
147
173
  </div>
@@ -231,7 +257,7 @@ for (var i = 0; i < 100; i++) {
231
257
  </div>
232
258
  <div class="member-description hidden">
233
259
  <div class="member-text">
234
- <p>Returns a copy of the symbol.</p>
260
+ <p>Returns a copy of the symbol, with a copy of its item and its name.</p>
235
261
 
236
262
 
237
263
 
@@ -303,7 +329,7 @@ for (var i = 0; i < 100; i++) {
303
329
 
304
330
  <!-- =========================== copyright notice ========================== -->
305
331
  <p class="footer">
306
- Paper.js v0.15.0<br>
332
+ Paper.js v0.17.0<br>
307
333
  Copyright &#169; 2011—2026 <a href="http://www.lehni.org" target="_blank">J&uuml;rg Lehni</a> &amp; <a href="http://www.jonathanpuckey.com" target="_blank">Jonathan Puckey</a>. All Rights Reserved.</p>
308
334
  <div class="content-end"></div>
309
335