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
@@ -0,0 +1,57 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Patterns</title>
6
+ <link rel="stylesheet" href="../css/style.css">
7
+ <script type="text/javascript" src="../../dist/paper-full.js"></script>
8
+ <script type="text/paperscript" canvas="canvas">
9
+ // Two discs share one pattern of fine lines. Where they overlap, the
10
+ // lines interfere in moiré fringes: move the mouse to move one disc,
11
+ // and sideways to turn it, as its pattern moves and turns with it.
12
+
13
+ // A line, repeated with a gap below it:
14
+ var line = new Path.Rectangle({
15
+ point: [0, 0],
16
+ size: [10, 1.5],
17
+ fillColor: '#1d2b3a'
18
+ });
19
+ var lines = new PatternDefinition(line, { spacing: [0, 2.5] });
20
+
21
+ var radius = Math.min(view.size.width, view.size.height) * 0.32;
22
+ var still = new Path.Circle({
23
+ center: view.center - [radius * 0.4, 0],
24
+ radius: radius,
25
+ fillColor: { pattern: lines }
26
+ });
27
+ var moving = new Path.Circle({
28
+ center: view.center + [radius * 0.4, 0],
29
+ radius: radius,
30
+ fillColor: { pattern: lines },
31
+ applyMatrix: false
32
+ });
33
+ moving.rotate(3);
34
+
35
+ var target = moving.position;
36
+
37
+ function onMouseMove(event) {
38
+ target = event.point;
39
+ moving.rotate(event.delta.x / 40);
40
+ }
41
+
42
+ function onFrame(event) {
43
+ moving.position += (target - moving.position) / 12;
44
+ // Both discs share the pattern, so as its lines breathe, they do
45
+ // so in both:
46
+ lines.spacing = [0, 2.5 + Math.sin(event.time / 2) / 2];
47
+ }
48
+
49
+ function onResize() {
50
+ still.position = view.center - [radius * 0.4, 0];
51
+ }
52
+ </script>
53
+ </head>
54
+ <body style="background: #f3efe6">
55
+ <canvas id="canvas" resize></canvas>
56
+ </body>
57
+ </html>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "paper",
3
- "version": "0.15.0",
3
+ "version": "0.17.0",
4
4
  "description": "The Swiss Army Knife of Vector Graphics Scripting",
5
5
  "license": "MIT",
6
6
  "homepage": "http://paperjs.org",
@@ -24,10 +24,12 @@
24
24
  "publish": "gulp publish",
25
25
  "load": "gulp load",
26
26
  "jshint": "gulp jshint",
27
- "test": "gulp test",
28
- "test:browser": "gulp test:browser",
29
- "test:chrome": "gulp test:chrome",
30
- "test:node": "gulp test:node",
27
+ "eslint": "eslint test '*.mjs'",
28
+ "test": "vitest run --project node --project browser",
29
+ "test:browser": "vitest run --project browser",
30
+ "test:coverage": "PAPER_BUILD=load vitest run --project node --coverage --testTimeout=60000",
31
+ "test:node": "vitest run --project node",
32
+ "test:screenshots": "sh test/screenshots/docker.sh",
31
33
  "prepare": "husky"
32
34
  },
33
35
  "files": [
@@ -45,8 +47,8 @@
45
47
  "node": ">=8.0.0"
46
48
  },
47
49
  "browser": {
48
- "./dist/node/extend.js": false,
49
- "./dist/node/self.js": false,
50
+ "./dist/node/extend.js": "./dist/node/browser.js",
51
+ "./dist/node/self.js": "./dist/node/browser.js",
50
52
  "canvas": false,
51
53
  "jsdom": false,
52
54
  "jsdom/lib/generated/idl/utils": false,
@@ -54,25 +56,30 @@
54
56
  "source-map-support": false
55
57
  },
56
58
  "devDependencies": {
59
+ "@eslint/js": "^10.0.1",
60
+ "@vitest/browser-playwright": "^5.0.5",
61
+ "@vitest/coverage-v8": "^5.0.5",
57
62
  "acorn": "~0.5.0",
58
63
  "acorn-latest": "npm:acorn@8.15.0",
59
64
  "ansi-colors": "^4.1.3",
60
65
  "canvas": "^3.2.3",
61
66
  "del": "^5.1.0",
67
+ "eslint": "^10.13.0",
68
+ "eslint-config-prettier": "^10.1.8",
69
+ "eslint-plugin-prettier": "^5.5.7",
62
70
  "fancy-log": "^1.3.3",
71
+ "globals": "^17.13.0",
63
72
  "gulp": "^3.9.1",
64
73
  "gulp-cached": "^1.1.1",
65
74
  "gulp-git-streamed": "^2.10.1",
66
75
  "gulp-jshint": "^2.1.0",
67
76
  "gulp-json-modifier": "^1.0.0",
68
77
  "gulp-prepro": "^2.4.0",
69
- "gulp-qunits": "^2.1.2",
70
78
  "gulp-rename": "^2.0.0",
71
79
  "gulp-shell": "^0.8.0",
72
80
  "gulp-symlink": "^2.1.4",
73
81
  "gulp-uglify": "^3.0.2",
74
82
  "gulp-uncomment": "^0.3.0",
75
- "gulp-webserver": "^0.9.1",
76
83
  "gulp-whitespace": "^0.1.0",
77
84
  "gulp-zip": "^5.1.0",
78
85
  "husky": "^9.1.7",
@@ -82,15 +89,18 @@
82
89
  "merge-stream": "^2.0.0",
83
90
  "minimist": "^1.2.8",
84
91
  "mustache": "^4.2.0",
92
+ "playwright": "^1.64.1",
85
93
  "prepro": "^2.5.0",
86
- "qunitjs": "^1.23.1",
94
+ "prettier": "^3.9.10",
95
+ "prettier-plugin-penere": "^0.4.0",
87
96
  "require-dir": "^1.2.0",
88
97
  "resemblejs": "^3.2.5",
89
98
  "run-sequence": "^2.2.1",
90
99
  "source-map-support": "^0.5.21",
91
100
  "stats.js": "^0.17.0",
92
101
  "straps": "^3.0.1",
93
- "typescript": "^5.9.3"
102
+ "typescript": "^5.9.3",
103
+ "vitest": "^5.0.5"
94
104
  },
95
105
  "keywords": [
96
106
  "vector",