@tarsis/toolkit 0.6.5 → 0.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 (78) hide show
  1. package/dist/Container-BVX2MW1U.cjs +138 -0
  2. package/dist/Container-BirkN1fA.js +119 -0
  3. package/dist/SelectBase-BC6WKZVF.cjs +448 -0
  4. package/dist/SelectBase-DPcXvMTa.js +399 -0
  5. package/dist/Slot-SOe-b2n6.cjs +77 -0
  6. package/dist/Slot-z71j7q57.js +65 -0
  7. package/dist/animation-BFpILbqb.js +102 -0
  8. package/dist/animation-BauloIgQ.cjs +119 -0
  9. package/dist/assets-BMqH4phf.cjs +52 -0
  10. package/dist/assets-huTvlamy.js +29 -0
  11. package/dist/audio/fail.mp3 +0 -0
  12. package/dist/audio/fail.ogg +0 -0
  13. package/dist/audio/hover.mp3 +0 -0
  14. package/dist/audio/hover.ogg +0 -0
  15. package/dist/audio/lock/fail.mp3 +0 -0
  16. package/dist/audio/lock/fail.ogg +0 -0
  17. package/dist/audio/lock/hover.mp3 +0 -0
  18. package/dist/audio/lock/hover.ogg +0 -0
  19. package/dist/audio/lock/prev-next.mp3 +0 -0
  20. package/dist/audio/lock/prev-next.ogg +0 -0
  21. package/dist/audio/lock/select.mp3 +0 -0
  22. package/dist/audio/lock/select.ogg +0 -0
  23. package/dist/audio/lock/success.mp3 +0 -0
  24. package/dist/audio/lock/success.ogg +0 -0
  25. package/dist/audio/prev-next.mp3 +0 -0
  26. package/dist/audio/prev-next.ogg +0 -0
  27. package/dist/audio/select.mp3 +0 -0
  28. package/dist/audio/select.ogg +0 -0
  29. package/dist/audio/success.mp3 +0 -0
  30. package/dist/audio/success.ogg +0 -0
  31. package/dist/chunk-CKQMccvm.cjs +28 -0
  32. package/dist/fonts/orbitron/orbitron-black.fnt +426 -0
  33. package/dist/fonts/orbitron/orbitron-black.png +0 -0
  34. package/dist/fonts/orbitron-black.fnt +426 -0
  35. package/dist/fonts/orbitron-black.png +0 -0
  36. package/dist/gl-B0NhVYRl.cjs +177 -0
  37. package/dist/gl-BipoEx9s.js +171 -0
  38. package/dist/hooks.cjs +661 -24
  39. package/dist/hooks.d.ts +72 -0
  40. package/dist/hooks.js +635 -1
  41. package/dist/index.cjs +26708 -384
  42. package/dist/index.d.ts +913 -27
  43. package/dist/index.js +26282 -3
  44. package/dist/layout.cjs +5 -0
  45. package/dist/layout.d.ts +45 -0
  46. package/dist/layout.js +2 -0
  47. package/dist/primitives.cjs +13 -0
  48. package/dist/primitives.d.ts +178 -0
  49. package/dist/primitives.js +3 -0
  50. package/dist/server.cjs +25 -0
  51. package/dist/server.d.ts +70 -0
  52. package/dist/server.js +2 -0
  53. package/dist/styles.css +3872 -2798
  54. package/dist/tokens-B2AxRYyF.js +434 -0
  55. package/dist/tokens-DlMougUi.cjs +469 -0
  56. package/dist/tokens.cjs +12 -0
  57. package/dist/tokens.d.ts +435 -0
  58. package/dist/tokens.js +3 -0
  59. package/dist/useMergeRefs-BM2-gSLn.js +16 -0
  60. package/dist/useMergeRefs-C_l6omwU.cjs +28 -0
  61. package/dist/utils-BGgmkNY4.cjs +330 -0
  62. package/dist/utils-Dw5El_3G.js +222 -0
  63. package/dist/utils.cjs +44 -38
  64. package/dist/utils.d.ts +75 -0
  65. package/dist/utils.js +3 -1
  66. package/dist/values-BTw18-W5.js +138 -0
  67. package/dist/values-BqSJ0h9o.cjs +275 -0
  68. package/package.json +88 -36
  69. package/dist/gl-Bp3e3vph.js +0 -3258
  70. package/dist/gl-Duf2UKsB.cjs +0 -3262
  71. package/dist/index-BcIzOPR7.cjs +0 -116866
  72. package/dist/index-BjG_vCX_.js +0 -3910
  73. package/dist/index-ZBjz1bHI.cjs +0 -3912
  74. package/dist/index-ss50SEnC.js +0 -116503
  75. package/dist/svg-BT_esDTZ.cjs +0 -236
  76. package/dist/svg-CQLdTbLk.js +0 -205
  77. package/dist/useWindowReady-6kIdYolB.cjs +0 -9317
  78. package/dist/useWindowReady-tUs-ONyG.js +0 -9224
@@ -0,0 +1,177 @@
1
+ const require_chunk = require("./chunk-CKQMccvm.cjs");
2
+ const require_assets = require("./assets-BMqH4phf.cjs");
3
+ let three = require("three");
4
+ three = require_chunk.__toESM(three);
5
+ let load_bmfont = require("load-bmfont");
6
+ load_bmfont = require_chunk.__toESM(load_bmfont);
7
+ let three_bmfont_text = require("three-bmfont-text");
8
+ three_bmfont_text = require_chunk.__toESM(three_bmfont_text);
9
+ let three_bmfont_text_shaders_msdf = require("three-bmfont-text/shaders/msdf");
10
+ three_bmfont_text_shaders_msdf = require_chunk.__toESM(three_bmfont_text_shaders_msdf);
11
+ let three_orbit_controls = require("three-orbit-controls");
12
+ three_orbit_controls = require_chunk.__toESM(three_orbit_controls);
13
+ //#region src/components/Loaders/EndlessLoader/shaders.ts
14
+ var vertexShader = `
15
+ varying vec2 vUv;
16
+ varying vec3 vPos;
17
+
18
+ void main() {
19
+ vUv = uv;
20
+ vPos = position;
21
+
22
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);
23
+ }
24
+ `;
25
+ var fragmentShader = `
26
+ varying vec2 vUv;
27
+ varying vec3 vPos;
28
+
29
+ uniform sampler2D uTexture;
30
+ uniform float uTime;
31
+
32
+ void main() {
33
+ float time = uTime * 0.5;
34
+ vec2 repeat = -vec2(12., 3.);
35
+ // To repeat the uvs we need to multiply them by a scalar
36
+ // and then get the fractional part of it so they from 0 to 1
37
+ // To move them continuously we have to add time
38
+ // to the x or y component, to change the direction
39
+ vec2 uv = fract(vUv * repeat - vec2(time, 0.)); // The sign of time change direction of movement
40
+
41
+ // Fake shadow
42
+ float shadow = clamp(vPos.z / 5., 0., 1.);
43
+
44
+ vec3 texture = texture2D(uTexture, uv).rgb;
45
+ // texture *= vec3(uv.x, uv.y, 1.); // To help visualize the repeated uvs
46
+
47
+ gl_FragColor = vec4(texture * shadow, 1.);
48
+ }
49
+ `;
50
+ //#endregion
51
+ //#region src/components/Loaders/EndlessLoader/gl.ts
52
+ var GL = class {
53
+ renderer;
54
+ camera;
55
+ scene;
56
+ controls;
57
+ clock;
58
+ rt;
59
+ rtCamera;
60
+ rtScene;
61
+ text;
62
+ mesh;
63
+ geometry;
64
+ material;
65
+ fontGeometry;
66
+ fontMaterial;
67
+ loader;
68
+ rafId;
69
+ isDestroyed = false;
70
+ boundResize = null;
71
+ constructor(container) {
72
+ this.renderer = new three.WebGLRenderer({ alpha: true });
73
+ this.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 1.5));
74
+ this.renderer.setSize(window.innerWidth, window.innerHeight);
75
+ this.renderer.setClearColor(0, 1);
76
+ (container || document.body).appendChild(this.renderer.domElement);
77
+ this.camera = new three.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1e3);
78
+ this.camera.position.z = 60;
79
+ this.scene = new three.Scene();
80
+ this.controls = new ((0, three_orbit_controls.default)(three))(this.camera, this.renderer.domElement);
81
+ this.clock = new three.Clock();
82
+ }
83
+ init() {
84
+ (0, load_bmfont.default)(require_assets.endlessLoaderAssets.font, (_, font) => {
85
+ this.fontGeometry = (0, three_bmfont_text.default)({
86
+ font,
87
+ text: "ENDLESS"
88
+ });
89
+ this.loader = new three.TextureLoader();
90
+ this.loader.load(require_assets.endlessLoaderAssets.atlas, (texture) => {
91
+ this.fontMaterial = new three.RawShaderMaterial((0, three_bmfont_text_shaders_msdf.default)({
92
+ map: texture,
93
+ side: three.DoubleSide,
94
+ transparent: true,
95
+ negate: false,
96
+ color: 16777215
97
+ }));
98
+ this.createRenderTarget();
99
+ this.createMesh();
100
+ this.animate();
101
+ this.addEvents();
102
+ });
103
+ });
104
+ }
105
+ createRenderTarget() {
106
+ this.rt = new three.WebGLRenderTarget(window.innerWidth, window.innerHeight);
107
+ this.rtCamera = new three.PerspectiveCamera(45, 1, .1, 1e3);
108
+ this.rtCamera.position.z = 2.5;
109
+ this.rtScene = new three.Scene();
110
+ this.rtScene.background = new three.Color("#000000");
111
+ this.text = new three.Mesh(this.fontGeometry, this.fontMaterial);
112
+ this.text.position.set(-.965, -.525, 0);
113
+ this.text.rotation.set(Math.PI, 0, 0);
114
+ this.text.scale.set(.008, .04, 1);
115
+ this.rtScene.add(this.text);
116
+ }
117
+ createMesh() {
118
+ if (!this.rt) return;
119
+ this.geometry = new three.TorusKnotGeometry(9, 3, 768, 3, 4, 3);
120
+ this.material = new three.ShaderMaterial({
121
+ vertexShader,
122
+ fragmentShader,
123
+ uniforms: {
124
+ uTime: { value: 0 },
125
+ uTexture: { value: this.rt.texture }
126
+ }
127
+ });
128
+ this.mesh = new three.Mesh(this.geometry, this.material);
129
+ this.scene.add(this.mesh);
130
+ }
131
+ animate() {
132
+ if (this.isDestroyed) return;
133
+ this.rafId = requestAnimationFrame(this.animate.bind(this));
134
+ this.render();
135
+ }
136
+ render() {
137
+ if (!this.material || !this.rt || !this.rtScene || !this.rtCamera) return;
138
+ this.controls.update();
139
+ this.material.uniforms.uTime.value = this.clock.getElapsedTime();
140
+ this.renderer.setRenderTarget(this.rt);
141
+ this.renderer.render(this.rtScene, this.rtCamera);
142
+ this.renderer.setRenderTarget(null);
143
+ this.renderer.render(this.scene, this.camera);
144
+ }
145
+ addEvents() {
146
+ this.boundResize = this.resize.bind(this);
147
+ window.addEventListener("resize", this.boundResize);
148
+ }
149
+ resize() {
150
+ const width = window.innerWidth;
151
+ const height = window.innerHeight;
152
+ this.camera.aspect = width / height;
153
+ this.camera.updateProjectionMatrix();
154
+ this.renderer.setSize(width, height);
155
+ }
156
+ destroy() {
157
+ this.isDestroyed = true;
158
+ if (this.rafId) {
159
+ cancelAnimationFrame(this.rafId);
160
+ this.rafId = void 0;
161
+ }
162
+ if (this.boundResize) {
163
+ window.removeEventListener("resize", this.boundResize);
164
+ this.boundResize = null;
165
+ }
166
+ if (this.geometry) this.geometry.dispose();
167
+ if (this.material) this.material.dispose();
168
+ if (this.fontMaterial) this.fontMaterial.dispose();
169
+ if (this.rt) this.rt.dispose();
170
+ if (this.renderer) {
171
+ this.renderer.dispose();
172
+ if (this.renderer.domElement.parentNode) this.renderer.domElement.parentNode.removeChild(this.renderer.domElement);
173
+ }
174
+ }
175
+ };
176
+ //#endregion
177
+ exports.GL = GL;
@@ -0,0 +1,171 @@
1
+ import { n as endlessLoaderAssets } from "./assets-huTvlamy.js";
2
+ import * as THREE from "three";
3
+ import loadFont from "load-bmfont";
4
+ import createGeometry from "three-bmfont-text";
5
+ import MSDFShader from "three-bmfont-text/shaders/msdf";
6
+ import OrbitControls from "three-orbit-controls";
7
+ //#region src/components/Loaders/EndlessLoader/shaders.ts
8
+ var vertexShader = `
9
+ varying vec2 vUv;
10
+ varying vec3 vPos;
11
+
12
+ void main() {
13
+ vUv = uv;
14
+ vPos = position;
15
+
16
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.);
17
+ }
18
+ `;
19
+ var fragmentShader = `
20
+ varying vec2 vUv;
21
+ varying vec3 vPos;
22
+
23
+ uniform sampler2D uTexture;
24
+ uniform float uTime;
25
+
26
+ void main() {
27
+ float time = uTime * 0.5;
28
+ vec2 repeat = -vec2(12., 3.);
29
+ // To repeat the uvs we need to multiply them by a scalar
30
+ // and then get the fractional part of it so they from 0 to 1
31
+ // To move them continuously we have to add time
32
+ // to the x or y component, to change the direction
33
+ vec2 uv = fract(vUv * repeat - vec2(time, 0.)); // The sign of time change direction of movement
34
+
35
+ // Fake shadow
36
+ float shadow = clamp(vPos.z / 5., 0., 1.);
37
+
38
+ vec3 texture = texture2D(uTexture, uv).rgb;
39
+ // texture *= vec3(uv.x, uv.y, 1.); // To help visualize the repeated uvs
40
+
41
+ gl_FragColor = vec4(texture * shadow, 1.);
42
+ }
43
+ `;
44
+ //#endregion
45
+ //#region src/components/Loaders/EndlessLoader/gl.ts
46
+ var GL = class {
47
+ renderer;
48
+ camera;
49
+ scene;
50
+ controls;
51
+ clock;
52
+ rt;
53
+ rtCamera;
54
+ rtScene;
55
+ text;
56
+ mesh;
57
+ geometry;
58
+ material;
59
+ fontGeometry;
60
+ fontMaterial;
61
+ loader;
62
+ rafId;
63
+ isDestroyed = false;
64
+ boundResize = null;
65
+ constructor(container) {
66
+ this.renderer = new THREE.WebGLRenderer({ alpha: true });
67
+ this.renderer.setPixelRatio(Math.min(window.devicePixelRatio, 1.5));
68
+ this.renderer.setSize(window.innerWidth, window.innerHeight);
69
+ this.renderer.setClearColor(0, 1);
70
+ (container || document.body).appendChild(this.renderer.domElement);
71
+ this.camera = new THREE.PerspectiveCamera(45, window.innerWidth / window.innerHeight, 1, 1e3);
72
+ this.camera.position.z = 60;
73
+ this.scene = new THREE.Scene();
74
+ this.controls = new (OrbitControls(THREE))(this.camera, this.renderer.domElement);
75
+ this.clock = new THREE.Clock();
76
+ }
77
+ init() {
78
+ loadFont(endlessLoaderAssets.font, (_, font) => {
79
+ this.fontGeometry = createGeometry({
80
+ font,
81
+ text: "ENDLESS"
82
+ });
83
+ this.loader = new THREE.TextureLoader();
84
+ this.loader.load(endlessLoaderAssets.atlas, (texture) => {
85
+ this.fontMaterial = new THREE.RawShaderMaterial(MSDFShader({
86
+ map: texture,
87
+ side: THREE.DoubleSide,
88
+ transparent: true,
89
+ negate: false,
90
+ color: 16777215
91
+ }));
92
+ this.createRenderTarget();
93
+ this.createMesh();
94
+ this.animate();
95
+ this.addEvents();
96
+ });
97
+ });
98
+ }
99
+ createRenderTarget() {
100
+ this.rt = new THREE.WebGLRenderTarget(window.innerWidth, window.innerHeight);
101
+ this.rtCamera = new THREE.PerspectiveCamera(45, 1, .1, 1e3);
102
+ this.rtCamera.position.z = 2.5;
103
+ this.rtScene = new THREE.Scene();
104
+ this.rtScene.background = new THREE.Color("#000000");
105
+ this.text = new THREE.Mesh(this.fontGeometry, this.fontMaterial);
106
+ this.text.position.set(-.965, -.525, 0);
107
+ this.text.rotation.set(Math.PI, 0, 0);
108
+ this.text.scale.set(.008, .04, 1);
109
+ this.rtScene.add(this.text);
110
+ }
111
+ createMesh() {
112
+ if (!this.rt) return;
113
+ this.geometry = new THREE.TorusKnotGeometry(9, 3, 768, 3, 4, 3);
114
+ this.material = new THREE.ShaderMaterial({
115
+ vertexShader,
116
+ fragmentShader,
117
+ uniforms: {
118
+ uTime: { value: 0 },
119
+ uTexture: { value: this.rt.texture }
120
+ }
121
+ });
122
+ this.mesh = new THREE.Mesh(this.geometry, this.material);
123
+ this.scene.add(this.mesh);
124
+ }
125
+ animate() {
126
+ if (this.isDestroyed) return;
127
+ this.rafId = requestAnimationFrame(this.animate.bind(this));
128
+ this.render();
129
+ }
130
+ render() {
131
+ if (!this.material || !this.rt || !this.rtScene || !this.rtCamera) return;
132
+ this.controls.update();
133
+ this.material.uniforms.uTime.value = this.clock.getElapsedTime();
134
+ this.renderer.setRenderTarget(this.rt);
135
+ this.renderer.render(this.rtScene, this.rtCamera);
136
+ this.renderer.setRenderTarget(null);
137
+ this.renderer.render(this.scene, this.camera);
138
+ }
139
+ addEvents() {
140
+ this.boundResize = this.resize.bind(this);
141
+ window.addEventListener("resize", this.boundResize);
142
+ }
143
+ resize() {
144
+ const width = window.innerWidth;
145
+ const height = window.innerHeight;
146
+ this.camera.aspect = width / height;
147
+ this.camera.updateProjectionMatrix();
148
+ this.renderer.setSize(width, height);
149
+ }
150
+ destroy() {
151
+ this.isDestroyed = true;
152
+ if (this.rafId) {
153
+ cancelAnimationFrame(this.rafId);
154
+ this.rafId = void 0;
155
+ }
156
+ if (this.boundResize) {
157
+ window.removeEventListener("resize", this.boundResize);
158
+ this.boundResize = null;
159
+ }
160
+ if (this.geometry) this.geometry.dispose();
161
+ if (this.material) this.material.dispose();
162
+ if (this.fontMaterial) this.fontMaterial.dispose();
163
+ if (this.rt) this.rt.dispose();
164
+ if (this.renderer) {
165
+ this.renderer.dispose();
166
+ if (this.renderer.domElement.parentNode) this.renderer.domElement.parentNode.removeChild(this.renderer.domElement);
167
+ }
168
+ }
169
+ };
170
+ //#endregion
171
+ export { GL };