@erikwatson/snowfall 3.1.2 → 4.0.1
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.
- package/README.md +54 -55
- package/dist/config.d.ts +4 -0
- package/dist/defaults.d.ts +162 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +366 -0
- package/dist/index.min.js +2 -0
- package/dist/index.min.js.LICENSE.txt +103 -0
- package/dist/layer.d.ts +48 -0
- package/dist/layers/base-layer.d.ts +49 -0
- package/dist/layers/image-layer.d.ts +10 -0
- package/dist/layers/simple-layer.d.ts +8 -0
- package/dist/math.d.ts +10 -0
- package/dist/simulation.d.ts +2 -0
- package/dist/snowfall.d.ts +242 -0
- package/dist/snowflake/index.d.ts +2 -0
- package/dist/snowflake/move.d.ts +16 -0
- package/dist/snowflake/render.d.ts +3 -0
- package/dist/test/config.test.d.ts +1 -0
- package/dist/test/layers/base-layer.test.d.ts +1 -0
- package/dist/test/layers/image-layer.test.d.ts +1 -0
- package/dist/test/layers/simple-layer.test.d.ts +1 -0
- package/dist/test/math.test.d.ts +1 -0
- package/dist/test/simulation.test.d.ts +1 -0
- package/dist/test/snowfall.test.d.ts +1 -0
- package/dist/test/snowflake/move.test.d.ts +1 -0
- package/dist/test/utils.test.d.ts +1 -0
- package/dist/types.d.ts +280 -0
- package/dist/utils.d.ts +19 -0
- package/package.json +57 -25
- package/dist/snowfall.min.js +0 -1
package/package.json
CHANGED
|
@@ -1,36 +1,68 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@erikwatson/snowfall",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
5
|
-
"main": "dist/
|
|
3
|
+
"version": "4.0.1",
|
|
4
|
+
"description": "A beautiful and highly configurable snow effect for your winter themed project",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"files": [
|
|
9
|
+
"dist/**/*"
|
|
10
|
+
],
|
|
6
11
|
"repository": "git@github.com:erikwatson/snowfall.js.git",
|
|
7
12
|
"author": "Erik Watson <erik@erikwatson.me>",
|
|
8
13
|
"license": "MIT",
|
|
14
|
+
"devDependencies": {
|
|
15
|
+
"@babel/core": "^7.25.2",
|
|
16
|
+
"@babel/preset-env": "^7.25.2",
|
|
17
|
+
"@types/jest": "^29.5.14",
|
|
18
|
+
"@types/node": "^22.10.2",
|
|
19
|
+
"@types/seedrandom": "^3.0.8",
|
|
20
|
+
"husky": "^9.0.11",
|
|
21
|
+
"jest": "^29.7.0",
|
|
22
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
23
|
+
"prettier": "^3.2.5",
|
|
24
|
+
"pretty-quick": "^4.0.0",
|
|
25
|
+
"ts-jest": "^29.2.5",
|
|
26
|
+
"ts-loader": "^9.5.1",
|
|
27
|
+
"typedoc": "^0.26.3",
|
|
28
|
+
"typescript": "^5.5.4",
|
|
29
|
+
"webpack": "^5.93.0",
|
|
30
|
+
"webpack-cli": "^5.1.4",
|
|
31
|
+
"webpack-merge": "^6.0.1"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@erikwatson/bramble": "^0.8.0",
|
|
35
|
+
"@tweenjs/tween.js": "^23.1.2",
|
|
36
|
+
"seedrandom": "^3.0.5"
|
|
37
|
+
},
|
|
9
38
|
"keywords": [
|
|
10
|
-
"winter",
|
|
11
39
|
"snow",
|
|
40
|
+
"snowfall",
|
|
12
41
|
"christmas",
|
|
13
|
-
"
|
|
42
|
+
"winter",
|
|
43
|
+
"canvas",
|
|
44
|
+
"particles",
|
|
45
|
+
"holiday",
|
|
46
|
+
"seasonal"
|
|
14
47
|
],
|
|
15
|
-
"
|
|
16
|
-
|
|
17
|
-
"
|
|
18
|
-
"build:all": "yarn build && yarn build:production",
|
|
19
|
-
"build:docs": "yarn jsdoc src/snowfall.js -d ./docs README.md",
|
|
20
|
-
"watch": "yarn run build --watch",
|
|
21
|
-
"pub": "yarn build:all && npm publish"
|
|
48
|
+
"homepage": "https://github.com/erikwatson/snowfall.js",
|
|
49
|
+
"bugs": {
|
|
50
|
+
"url": "https://github.com/erikwatson/snowfall.js/issues"
|
|
22
51
|
},
|
|
23
|
-
"
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
"pretty-quick": "^1.11.1",
|
|
31
|
-
"webpack": "^4.29.6",
|
|
32
|
-
"webpack-cli": "^3.3.0",
|
|
33
|
-
"webpack-merge": "^4.2.1"
|
|
52
|
+
"sideEffects": false,
|
|
53
|
+
"exports": {
|
|
54
|
+
".": {
|
|
55
|
+
"import": "./dist/index.js",
|
|
56
|
+
"require": "./dist/index.js",
|
|
57
|
+
"types": "./dist/index.d.ts"
|
|
58
|
+
}
|
|
34
59
|
},
|
|
35
|
-
"
|
|
36
|
-
|
|
60
|
+
"scripts": {
|
|
61
|
+
"build": "pnpm exec webpack --config webpack.dev.js",
|
|
62
|
+
"build:production": "pnpm exec webpack --config webpack.prod.js",
|
|
63
|
+
"build:all": "pnpm run build && pnpm run build:production",
|
|
64
|
+
"build:docs": "pnpm exec typedoc --out ../snowfall-docs src/snowfall.ts --readme README.md",
|
|
65
|
+
"watch": "pnpm exec webpack --config webpack.dev.js --watch",
|
|
66
|
+
"pub": "pnpm run build:all && npm publish --access public"
|
|
67
|
+
}
|
|
68
|
+
}
|
package/dist/snowfall.min.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
window.snowfall=function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){const i=n(1),{lerp:r}=n(2),o=document.querySelector("#snow-container"),a=document.createElement("canvas"),d=a.getContext("2d");let s=i.create(0,.7),l=i.create(0,0),c=200,u=[],f="#0d0014",g="#8d90b7",h="#ffffff",y=1,p=.02,v=!1,m=!1,w=!1;function x(e,t){(s=i.fromDegrees(e)).multiplyScalar(t)}function S(e,t){(l=i.fromDegrees(e)).multiplyScalar(t)}function b(){a.width=o.offsetWidth,a.height=o.offsetHeight,u=q(j())}function M(){w||(u.forEach(e=>{P.x=l.x,P.y=l.y,P.multiplyScalar(e.size+e.random),e.pos.add(P),O.x=s.x,O.y=s.y,O.multiplyScalar(e.size+e.random),e.pos.add(O);const t=e.noise;let n=i.create(y*Math.sin(p*z+t),0);e.pos.add(n),e.pos.x>a.width&&(e.pos.x=0),e.pos.x<0&&(e.pos.x=a.width),e.pos.y>a.height&&(e.pos.y=e.pos.y-a.height,e.pos.x=Math.random()*a.width),e.pos.y<0&&(e.pos.y=a.height-e.pos.y,e.pos.x=Math.random()*a.width),e.renderedSize<e.size&&(e.renderedSize=r(e.renderedSize,e.size,.025))}),previousPageYOffset=window.pageYOffset,z+=1,function(){d.clearRect(0,0,a.width,a.height),f&&(d.fillStyle=f,d.fillRect(0,0,a.width,a.height));const e=u.filter(e=>e.size>=7),t=u.filter(e=>e.size<7);d.fillStyle=g,t.forEach(e=>{d.beginPath(),_(e.pos,e.renderedSize),d.fill()}),d.fillStyle=h,e.forEach(e=>{d.beginPath(),_(e.pos,e.renderedSize),d.fill()})}()),window.requestAnimationFrame(M)}let z=0;const P=i.create(0,0),O=i.create(0,0);function q(e){let t=[];for(;e--;){const e=3+5*Math.random(),n=!0===v?0:e;t.push({pos:i.create(Math.random()*a.width,Math.random()*a.height),size:e,renderedSize:n,noise:10*Math.random(),amplitude:2*Math.random(),frequency:.01*Math.random(),random:Math.random()})}return t}function j(){const e=a.width*a.height;return Math.round(c*(e/2073600))}function _(e,t){d.arc(e.x,e.y,t,0,2*Math.PI,!1)}function E(){u=q(j())}e.exports={setAmplitude:function(e){y=e},setBackground:function(e){f=e},setDensity:function(e){c=e,E()},setFade:function(e){v=e,E()},setScroll:function(e){m=e},setFrequency:function(e){p=e},setGravity:x,setPrimary:function(e){g=e},setSecondary:function(e){h=e},setWind:S,setPaused:function(e){w=e},togglePaused:function(){w=!w},start:function(e={}){void 0!==e.bg&&(f=e.bg),void 0!==e.primary&&(g=e.primary),void 0!==e.secondary&&(h=e.secondary),void 0!==e.density&&(c=e.density),void 0!==e.fadeIn&&(v=e.fadeIn),void 0!==e.scroll&&(m=e.scroll),void 0!==e.wave&&(void 0!==e.wave.amplitude&&(y=e.wave.amplitude),void 0!==e.wave.frequency&&(p=e.wave.frequency)),void 0!==e.gravity&&(void 0!==e.gravity.angle&&void 0!==e.gravity.strength&&x(e.gravity.angle,e.gravity.strength),void 0!==e.gravity.angle&&void 0===e.gravity.strength&&x(e.gravity.angle,.7),void 0===e.gravity.angle&&void 0!==e.gravity.strength&&x(90,e.gravity.strength)),void 0!==e.wind&&(void 0!==e.wind.angle&&void 0!==e.wind.strength&&S(e.wind.angle,e.wind.strength),void 0!==e.wind.angle&&void 0===e.wind.strength&&S(e.wind.angle,0),void 0===e.wind.angle&&void 0!==e.wind.strength&&S(0,e.wind.strength)),a.width=o.offsetWidth,a.height=o.offsetHeight,o.appendChild(a),u=q(j()),window.onresize=b,window.requestAnimationFrame(M)}}},function(e,t){function n(e,t){let r=e,o=t;const a=()=>Math.sqrt(r*r+o*o),d=e=>{r*=e,o*=e},s=()=>{let e=a();r/=e,o/=e};return{add:e=>{r+=e.x,o+=e.y},addScalar:e=>{r+=e,o+=e},clone:i,divide:e=>{r/=e.x,o/=e.y},divideScalar:e=>{r/=e,o/=e},dot:e=>r*e.x+o*e.y,getLength:a,getOpposite:e=>n(-e.x,-e.y),getPerp:()=>n(-o,r),isEqualTo:e=>r==e.x&&o==e.y,multiply:e=>{r*=e.x,o*=e.y},multiplyScalar:d,normalise:s,setLength:e=>{s(),d(e)},subtract:e=>{r-=e.x,o-=e.y},subtractScalar:e=>{r-=e,o-=e},set x(e){r=e},get x(){return r},set y(e){o=e},get y(){return o}}}const i=e=>n(e.x,e.y);e.exports={clone:i,create:n,fromDegrees:e=>{const t=e*(Math.PI/180);return n(Math.cos(t),Math.sin(t))}}},function(e,t){e.exports={lerp:function(e,t,n){return e*(1-n)+t*n}}}]);
|