stage-js 0.9.5 → 1.0.0-alpha.11

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 (273) hide show
  1. package/.eslintrc.json +36 -0
  2. package/.gitattributes +1 -0
  3. package/.prettierignore +2 -0
  4. package/.prettierrc.json +3 -0
  5. package/CHANGELOG.md +173 -0
  6. package/LICENSE.md +4 -2
  7. package/README.md +12 -631
  8. package/dist/stage.d.ts +558 -0
  9. package/dist/stage.js +3620 -0
  10. package/dist/stage.js.map +1 -0
  11. package/dist/stage.umd.cjs +3624 -0
  12. package/dist/stage.umd.cjs.map +1 -0
  13. package/docs/package-lock.json +12922 -0
  14. package/docs/package.json +18 -0
  15. package/docs/pages/anim.md +34 -0
  16. package/docs/pages/api/classes/Anim.md +1357 -0
  17. package/docs/pages/api/classes/Atlas.md +281 -0
  18. package/docs/pages/api/classes/CanvasTexture.md +317 -0
  19. package/docs/pages/api/classes/ImageTexture.md +256 -0
  20. package/docs/pages/api/classes/Matrix.md +283 -0
  21. package/docs/pages/api/classes/Monotype.md +1291 -0
  22. package/docs/pages/api/classes/Node.md +1030 -0
  23. package/docs/pages/api/classes/Pin.md +41 -0
  24. package/docs/pages/api/classes/PipeTexture.md +231 -0
  25. package/docs/pages/api/classes/ResizableTexture.md +219 -0
  26. package/docs/pages/api/classes/Root.md +1400 -0
  27. package/docs/pages/api/classes/Sprite.md +1285 -0
  28. package/docs/pages/api/classes/Texture.md +175 -0
  29. package/docs/pages/api/classes/TextureSelection.md +61 -0
  30. package/docs/pages/api/classes/Transition.md +417 -0
  31. package/docs/pages/api/functions/anim.md +13 -0
  32. package/docs/pages/api/functions/atlas.md +11 -0
  33. package/docs/pages/api/functions/canvas.md +9 -0
  34. package/docs/pages/api/functions/column.md +11 -0
  35. package/docs/pages/api/functions/component.md +7 -0
  36. package/docs/pages/api/functions/maximize.md +7 -0
  37. package/docs/pages/api/functions/minimize.md +7 -0
  38. package/docs/pages/api/functions/monotype.md +11 -0
  39. package/docs/pages/api/functions/mount.md +11 -0
  40. package/docs/pages/api/functions/pause.md +7 -0
  41. package/docs/pages/api/functions/resume.md +7 -0
  42. package/docs/pages/api/functions/row.md +11 -0
  43. package/docs/pages/api/functions/sprite.md +11 -0
  44. package/docs/pages/api/functions/texture.md +15 -0
  45. package/docs/pages/api/index.md +68 -0
  46. package/docs/pages/api/interfaces/AtlasDefinition.md +109 -0
  47. package/docs/pages/api/interfaces/AtlasTextureDefinition.md +49 -0
  48. package/docs/pages/api/interfaces/MatrixValue.md +37 -0
  49. package/docs/pages/api/interfaces/Vec2Value.md +13 -0
  50. package/docs/pages/api/type-aliases/FitMode.md +7 -0
  51. package/docs/pages/api/type-aliases/NodeEventListener.md +17 -0
  52. package/docs/pages/api/type-aliases/NodeTickListener.md +21 -0
  53. package/docs/pages/api/type-aliases/ResizableTextureMode.md +3 -0
  54. package/docs/pages/api/type-aliases/TextureSelectionInput.md +11 -0
  55. package/docs/pages/api/type-aliases/TextureSelectionInputArray.md +3 -0
  56. package/docs/pages/api/type-aliases/TextureSelectionInputFactory.md +11 -0
  57. package/docs/pages/api/type-aliases/TextureSelectionInputMap.md +3 -0
  58. package/docs/pages/api/type-aliases/TextureSelectionInputOne.md +3 -0
  59. package/docs/pages/api/type-aliases/TransitionEndListener.md +11 -0
  60. package/docs/pages/api/type-aliases/TransitionOptions.md +17 -0
  61. package/docs/pages/api/type-aliases/Viewbox.md +27 -0
  62. package/docs/pages/api/type-aliases/Viewport.md +19 -0
  63. package/docs/pages/api/variables/POINTER_CANCEL.md +3 -0
  64. package/docs/pages/api/variables/POINTER_CLICK.md +3 -0
  65. package/docs/pages/api/variables/POINTER_DOWN.md +3 -0
  66. package/docs/pages/api/variables/POINTER_MOVE.md +3 -0
  67. package/docs/pages/api/variables/POINTER_UP.md +3 -0
  68. package/docs/pages/api/variables/math.md +3 -0
  69. package/docs/pages/atlas.md +42 -0
  70. package/docs/pages/events.md +47 -0
  71. package/docs/pages/hello-world.md +60 -0
  72. package/docs/pages/index.md +15 -0
  73. package/docs/pages/install.md +24 -0
  74. package/docs/pages/layout.md +40 -0
  75. package/docs/pages/loop.md +25 -0
  76. package/docs/pages/monotype.md +32 -0
  77. package/docs/pages/news/v1-0.md +37 -0
  78. package/docs/pages/pin.md +128 -0
  79. package/docs/pages/setup.md +46 -0
  80. package/docs/pages/sprite.md +17 -0
  81. package/docs/pages/texture.md +4 -0
  82. package/docs/pages/transition.md +46 -0
  83. package/docs/pages/tree.md +77 -0
  84. package/docs/styles.css +0 -0
  85. package/docs/tsconfig.json +24 -0
  86. package/docs/vercel.json +8 -0
  87. package/docs/vocs.config.ts +113 -0
  88. package/example/basic-anim/app.js +22 -0
  89. package/example/basic-anim/index.html +14 -0
  90. package/example/basic-drawing/app.js +53 -0
  91. package/example/basic-drawing/index.html +19 -0
  92. package/example/basic-example/app.js +33 -0
  93. package/example/basic-example/index.html +19 -0
  94. package/example/basic-example/sample.png +0 -0
  95. package/example/basic-grid/app.js +38 -0
  96. package/example/basic-grid/index.html +19 -0
  97. package/example/basic-layout/app.js +72 -0
  98. package/example/basic-layout/index.html +19 -0
  99. package/example/basic-matrix/app.js +35 -0
  100. package/example/basic-matrix/box.png +0 -0
  101. package/example/basic-matrix/index.html +19 -0
  102. package/example/basic-mouse/app.js +76 -0
  103. package/example/basic-mouse/index.html +19 -0
  104. package/example/basic-package/app.js +22 -0
  105. package/example/basic-package/index.html +19 -0
  106. package/example/basic-package/main.png +0 -0
  107. package/example/basic-package/main.svg +6 -0
  108. package/example/basic-pinwheel/app.js +24 -0
  109. package/example/basic-pinwheel/index.html +19 -0
  110. package/example/basic-pinwheel/pinwheel.png +0 -0
  111. package/example/basic-row/app.js +27 -0
  112. package/example/basic-row/index.html +19 -0
  113. package/example/basic-row-fix/app.js +33 -0
  114. package/example/basic-row-fix/index.html +19 -0
  115. package/example/basic-stretch/app.js +24 -0
  116. package/example/basic-stretch/index.html +19 -0
  117. package/example/basic-string/app.js +22 -0
  118. package/example/basic-string/index.html +19 -0
  119. package/example/basic-tile/app.js +24 -0
  120. package/example/basic-tile/index.html +19 -0
  121. package/example/basic-tween/app.js +49 -0
  122. package/example/basic-tween/index.html +19 -0
  123. package/example/basic-window/app.js +42 -0
  124. package/example/basic-window/index.html +19 -0
  125. package/example/common/bezier.js +62 -0
  126. package/example/common/example.css +58 -0
  127. package/example/common/example.png +0 -0
  128. package/example/common/example.svg +23 -0
  129. package/example/common/p2.js +10343 -0
  130. package/example/common/pool.js +92 -0
  131. package/example/common/randomize.js +100 -0
  132. package/{ext → example/common}/stage-p2.js +182 -202
  133. package/example/common/texture.js +45 -0
  134. package/example/common/timeout.js +47 -0
  135. package/example/example.svg +23 -0
  136. package/example/game-aero/app.js +284 -0
  137. package/example/game-aero/index.html +21 -0
  138. package/example/game-aero/main.png +0 -0
  139. package/example/game-aero/main.svg +29 -0
  140. package/example/game-asteroids/app.js +444 -0
  141. package/example/game-asteroids/index.html +28 -0
  142. package/example/game-asteroids/main.svg +9 -0
  143. package/example/game-breakout/app.js +627 -0
  144. package/example/game-breakout/bg.png +0 -0
  145. package/example/game-breakout/bg.svg +11 -0
  146. package/example/game-breakout/index.html +19 -0
  147. package/example/game-breakout/logo.svg +31 -0
  148. package/example/game-breakout/main.png +0 -0
  149. package/example/game-breakout/main.svg +45 -0
  150. package/example/game-breakout/texture.js +51 -0
  151. package/example/game-o/app.js +1496 -0
  152. package/example/game-o/index.html +14 -0
  153. package/example/game-o/main.png +0 -0
  154. package/example/game-o/textures.js +203 -0
  155. package/example/game-orbit/app.js +497 -0
  156. package/example/game-orbit/art/android.json +13 -0
  157. package/example/game-orbit/art/bg.svg +62 -0
  158. package/example/game-orbit/art/digit.svg +140 -0
  159. package/example/game-orbit/art/game.json +14 -0
  160. package/example/game-orbit/art/icon.svg +128 -0
  161. package/example/game-orbit/art/ios.json +34 -0
  162. package/example/game-orbit/art/main.svg +56 -0
  163. package/example/game-orbit/art/misc.json +10 -0
  164. package/example/game-orbit/art/splash.svg +77 -0
  165. package/example/game-orbit/index.html +19 -0
  166. package/example/game-orbit/media/bg.png +0 -0
  167. package/example/game-orbit/media/digit.png +0 -0
  168. package/example/game-orbit/media/main.png +0 -0
  169. package/example/game-orbit/textures.js +40 -0
  170. package/example/game-samegame/app.js +244 -0
  171. package/example/game-samegame/index.html +19 -0
  172. package/example/game-samegame/main.png +0 -0
  173. package/example/game-samegame/main.svg +29 -0
  174. package/example/game-samegame/textures.js +15 -0
  175. package/example/game-tictactoe/app.js +183 -0
  176. package/example/game-tictactoe/index.html +19 -0
  177. package/example/game-traffic/app.js +383 -0
  178. package/example/game-traffic/base.svg +4 -0
  179. package/example/game-traffic/bg.png +0 -0
  180. package/example/game-traffic/bg.svg +10 -0
  181. package/example/game-traffic/index.html +19 -0
  182. package/example/game-traffic/main.png +0 -0
  183. package/example/game-traffic/map-1.png +0 -0
  184. package/example/game-traffic/map-1.svg +5 -0
  185. package/example/game-traffic/textures.js +24 -0
  186. package/example/index.html +30 -0
  187. package/index.html +6 -0
  188. package/package.json +46 -22
  189. package/src/common/browser.ts +5 -0
  190. package/src/common/is.ts +18 -0
  191. package/src/common/math.ts +60 -0
  192. package/src/common/matrix.ts +241 -0
  193. package/src/common/stats.ts +8 -0
  194. package/src/common/uid.ts +4 -0
  195. package/src/core/anim.ts +144 -0
  196. package/src/core/core.ts +1191 -0
  197. package/src/core/easing.ts +235 -0
  198. package/src/core/monotype.ts +94 -0
  199. package/src/core/pin.ts +664 -0
  200. package/src/core/pointer.ts +317 -0
  201. package/src/core/root.ts +451 -0
  202. package/src/core/sprite.ts +105 -0
  203. package/src/core/transition.ts +271 -0
  204. package/src/index.ts +3 -0
  205. package/src/main.ts +16 -0
  206. package/src/texture/atlas.ts +218 -0
  207. package/src/texture/canvas.ts +176 -0
  208. package/src/texture/image.ts +103 -0
  209. package/src/texture/index.ts +7 -0
  210. package/src/texture/pipe.ts +47 -0
  211. package/src/texture/resizable.ts +159 -0
  212. package/src/texture/selection.ts +203 -0
  213. package/src/texture/texture.ts +157 -0
  214. package/test/atlas-test.js +112 -97
  215. package/test/event-test.js +48 -50
  216. package/test/main-test.js +12 -15
  217. package/test/mouse-test.js +81 -67
  218. package/test/node-test.js +117 -80
  219. package/test/pin-test.js +57 -59
  220. package/test/transition-test.js +40 -0
  221. package/test/util/expect.js +24 -20
  222. package/test/util/memo.js +5 -5
  223. package/tsconfig.json +18 -0
  224. package/typedoc.json +24 -0
  225. package/vite.config.ts +52 -0
  226. package/dist/stage.cordova.js +0 -4035
  227. package/dist/stage.cordova.js.map +0 -1
  228. package/dist/stage.cordova.min.js +0 -36
  229. package/dist/stage.cordova.min.js.map +0 -1
  230. package/dist/stage.web.js +0 -3984
  231. package/dist/stage.web.js.map +0 -1
  232. package/dist/stage.web.min.js +0 -36
  233. package/dist/stage.web.min.js.map +0 -1
  234. package/ext/stage-matter.js +0 -201
  235. package/ext/stage-physics.js +0 -167
  236. package/ext/stage-planck.js +0 -355
  237. package/ext/stage-sat.js +0 -197
  238. package/lib/addon/easing.js +0 -185
  239. package/lib/addon/mouse.js +0 -206
  240. package/lib/addon/tween.js +0 -189
  241. package/lib/anim.js +0 -135
  242. package/lib/atlas.js +0 -240
  243. package/lib/canvas.js +0 -51
  244. package/lib/core.js +0 -221
  245. package/lib/event.js +0 -3
  246. package/lib/image.js +0 -72
  247. package/lib/index.js +0 -10
  248. package/lib/layout.js +0 -143
  249. package/lib/loader/cordova.js +0 -186
  250. package/lib/loader/web.js +0 -151
  251. package/lib/loop.js +0 -136
  252. package/lib/matrix.js +0 -169
  253. package/lib/pin.js +0 -620
  254. package/lib/root.js +0 -136
  255. package/lib/str.js +0 -81
  256. package/lib/texture.js +0 -103
  257. package/lib/tree.js +0 -410
  258. package/lib/util/await.js +0 -28
  259. package/lib/util/create.js +0 -16
  260. package/lib/util/event.js +0 -71
  261. package/lib/util/extend.js +0 -11
  262. package/lib/util/insert.js +0 -16
  263. package/lib/util/is.js +0 -167
  264. package/lib/util/math.js +0 -42
  265. package/lib/util/memo.js +0 -13
  266. package/lib/util/now.js +0 -13
  267. package/lib/util/once.js +0 -9
  268. package/lib/util/repeat.js +0 -74
  269. package/lib/util/stats.js +0 -1
  270. package/lib/util/string.js +0 -4
  271. package/platform/cordova.js +0 -16
  272. package/platform/web.js +0 -16
  273. package/test/tween-test.js +0 -41
package/.eslintrc.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "extends": [
3
+ "plugin:@typescript-eslint/recommended",
4
+ "prettier"
5
+ ],
6
+ "parser": "@typescript-eslint/parser",
7
+ "parserOptions": {
8
+ "project": "tsconfig.json",
9
+ "sourceType": "module"
10
+ },
11
+ "plugins": [
12
+ "@typescript-eslint"
13
+ ],
14
+ "rules": {
15
+ "no-var": "error",
16
+ "prefer-rest-params": "off",
17
+ "prefer-spread": "off",
18
+
19
+ "@typescript-eslint/ban-ts-comment": "off",
20
+ "@typescript-eslint/ban-types": "off",
21
+ "@typescript-eslint/no-empty-function": "off",
22
+ "@typescript-eslint/no-empty-interface": "off",
23
+ "@typescript-eslint/no-explicit-any": "off",
24
+ "@typescript-eslint/no-inferrable-types": "off",
25
+ "@typescript-eslint/no-non-null-assertion": "off",
26
+ "@typescript-eslint/no-unused-vars": "off",
27
+ "@typescript-eslint/no-var-requires": "off",
28
+ "@typescript-eslint/typedef": [
29
+ "error",
30
+ {
31
+ "arrowParameter": true,
32
+ "propertyDeclaration": true
33
+ }
34
+ ]
35
+ }
36
+ }
package/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ * text=auto
@@ -0,0 +1,2 @@
1
+ /dist/
2
+ /docs/api/
@@ -0,0 +1,3 @@
1
+ {
2
+ "printWidth": 100
3
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,173 @@
1
+ #### v1.0 [work in progress]
2
+
3
+ - rewrite with typescript
4
+ - change package type to module
5
+ - all classes are exported under Stage namespace
6
+ - Stage is not callable, and is not a class anymore
7
+ - removed Stage.app(callback)
8
+ - added Stage.mount() to create a new app
9
+ - added await Stage.atlas({ }) to preload images
10
+ - added Component class as the base class
11
+ - removed Stage.internal namespace
12
+ - removed cordova/fastcontext loader and build
13
+ - removed script loader `preload(url)`
14
+ - removed relative path resolver for texture images
15
+ - removed Stage.config()
16
+ - removed \_create, \_extend
17
+ - renamed Image/image to Sprite/sprite, and sprite.image() to sprite.texture()
18
+ - renamed Str/string to Monotype/monotype
19
+ - renamed create()/layer()/box() to component()/maximize()/minimize()
20
+ - renamed component.sequence() to component.align()
21
+ - replaced Stage.Math with Stage.math with different function names
22
+ - removed Matrix.reverse (use inverse)
23
+ - renamed Mouse to Pointer and made it internal
24
+ - added CanvasTexture
25
+ - changed canvas() signature
26
+ - dropped texture.draw(x, y) sub-signature
27
+ - removed cutouts, sprites, factory fields from atlas definition
28
+ - replaced Ease() with Ease.get()
29
+ - scaleTo renamed to fit
30
+
31
+ #### v0.8.2
32
+
33
+ - `render.js` renamed to `loop.js`
34
+ - `node.js` renamed to `tree.js`
35
+ - cordova starts by mousemove
36
+
37
+ #### v0.8.1
38
+
39
+ - `node.scaleTo()` shortcut pinning method added
40
+ - `node.matrix(true)` returns relative matrix instead of absolute
41
+
42
+ #### v0.8.0
43
+
44
+ - **default `.tween()` behavior changed from append to replace**
45
+ - `.tween(duration, delay)` changed to `.tween(duration, delay, append = false)`
46
+ - `tween.clear()` deprecated and no-op
47
+ - `tween.end()` replaced by `tween.done()`
48
+
49
+ #### v0.7.1
50
+
51
+ - `tween.then()` replaced by `tween.end()`
52
+ - `tween.remove/hide()` are added
53
+
54
+ #### v0.7.0
55
+
56
+ - **images and script urls starting with `./` are resolved as relative**
57
+
58
+ #### v0.6.7
59
+
60
+ - Stage.Math extends native Math
61
+
62
+ #### v0.6.6
63
+
64
+ - lookup atlas by name before textures
65
+ - `node.width/height()` pinning shortcuts return value
66
+ - preloadScript('url') removed
67
+
68
+ #### v0.6.5
69
+
70
+ - **.preload('url.js') added**
71
+
72
+ #### v0.6.4
73
+
74
+ - pinning shortcuts are added to nodes
75
+ - entire atlas can be referenced
76
+
77
+ #### v0.6.2
78
+
79
+ - `atlas.image.url` renamed to `src`
80
+ - pining shorthand methods added to node
81
+ - tick-based `timeout(fn, delay)` method added to node
82
+ - entire atlas can be used as texture
83
+
84
+ #### v0.6.0
85
+
86
+ - **Cut/CutJS renamed to Stage/Stage.js**
87
+
88
+ #### v0.5.0
89
+
90
+ - atlas spec changed
91
+ - **.preload(fn) added**
92
+ - node.insert/append/prepend() methods accept array
93
+ - node.id() renamed to node.label()
94
+ - Cut.addTexture() removed
95
+ - image.cropY/cropY() removed
96
+ - anim.gotoLabel() removed
97
+ - Cut.Anim.FPS is not public anymore
98
+ - drawing() replaced with .canvas()
99
+ - **Texture renamed to Atlas, new Texture class replaced Cut.Out**
100
+ - node.\_cutouts and Cut.cutout() replaced with node.\_textures and Cut.texture()
101
+ - Cut.texture() returns selection object
102
+ - image-loader spec changed
103
+
104
+ #### v0.4.12
105
+
106
+ - root.background method added
107
+
108
+ #### v0.4.10
109
+
110
+ - **game loop continues if any tick returns true, but only renders if touched**
111
+
112
+ #### v0.4.9
113
+
114
+ - texture.ratio renamed to texture.ppu
115
+
116
+ #### v0.4.8
117
+
118
+ - new drawing (experimental) and cutout (internal) api
119
+
120
+ #### v0.4.3
121
+
122
+ - pin set/get is refactored
123
+ - resize in/out replace with scale in-pad/out-crop
124
+ - default viewbox mode is 'in-pad'
125
+
126
+ #### v0.4.0
127
+
128
+ - **CommonJS/Node.js files and project structure**
129
+ - Source files moved to `lib` and platform files to `platform`
130
+ - extension files moved to ext
131
+ - `lib/main` set as npm `main`
132
+ - texture name made optional in cutout selector: `"[texture:]cutout"`
133
+ - FastContext support added to Cordova, FastCanvas loader removed
134
+
135
+ - `Cut.Out.select` replaced with `Cut.cutout`
136
+ - `Cut.config` and `Cut.start(configs)` are added
137
+ - `Cut.init` and `Loader.loadImage` replaced with `"app-loader"` and `"image-loader"` configs
138
+ - `Loader` merged with `Root`
139
+ - `Loader.start/pause/resume` replaced with `Cut.start/pause/resume`
140
+ - `root._ratio` replaced with `root.viewport().ratio`
141
+ - `_isCut` replaced with `Cut._ensure`
142
+ - `Texture` reorganized
143
+ - `root.resize()` renamed to `viewport()`
144
+
145
+ #### v0.3.1
146
+
147
+ - Remove `Mouse(..., captureAnyMove)` and use flag instead
148
+ - Refactoring easing class and moving tween/ease to another file
149
+
150
+ #### v0.3.0
151
+
152
+ - **Browserified**
153
+ - Synthetic `Mouse` clicks instead of browser clicks
154
+ - New `off` method to remove listeners
155
+ - New `data` parameter for `visit` methods
156
+ - `_listens` renamed to `_flag`
157
+ - `_isFunc`, `_function`, `_options` and `_status` are removed
158
+ - `_extend` signature changed
159
+
160
+ #### v0.2.1
161
+
162
+ - `setImage/Value/Frames/Font` deprecated and replaced by `image/value/frames`
163
+
164
+ #### v0.2.0
165
+
166
+ - mouse event listener signature changed from `(rawEvent, {x, y})` to `({x, y, raw})`
167
+ - `viewport` listener signature changed from `(width, height)` to `({width, height})`
168
+ - `Cut.addTexture(...)` is replaced with `Cut(...)`
169
+ - `spy(true)` is replaced with `attr('spy', true)`
170
+ - tweening support for pinning XY-shorthands added
171
+ - `drawing` signature changed from `([name], width, height, [ratio], callback, [def])` to `([name], width, height, [ratio], [callback])` and `(def, [callback])`
172
+ - node.trigger() method added, calls .publish() and returns `this`
173
+ - using deep listeners count instead of `spy` to optimized mouse event distribution
package/LICENSE.md CHANGED
@@ -1,5 +1,7 @@
1
- @copyright Copyright (c) 2020 Ali Shakiba http://shakiba.me/stage.js
2
- @license The MIT License (MIT)
1
+ Stage.js <%= pkg.version %>
2
+
3
+ @copyright Copyright (c) Ali Shakiba
4
+ @license The MIT License (MIT)
3
5
 
4
6
  Permission is hereby granted, free of charge, to any person obtaining a copy
5
7
  of this software and associated documentation files (the "Software"), to deal