mathbox-react 0.0.0-a53eb3e

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 (122) hide show
  1. package/README.md +30 -0
  2. package/build/cjs/components/ContainedMathbox.d.ts +11 -0
  3. package/build/cjs/components/ContainedMathbox.js +59 -0
  4. package/build/cjs/components/ContainedMathbox.js.map +1 -0
  5. package/build/cjs/components/Mathbox.d.ts +9 -0
  6. package/build/cjs/components/Mathbox.js +87 -0
  7. package/build/cjs/components/Mathbox.js.map +1 -0
  8. package/build/cjs/components/MathboxAPIContext.d.ts +9 -0
  9. package/build/cjs/components/MathboxAPIContext.js +18 -0
  10. package/build/cjs/components/MathboxAPIContext.js.map +1 -0
  11. package/build/cjs/components/components.d.ts +267 -0
  12. package/build/cjs/components/components.js +383 -0
  13. package/build/cjs/components/components.js.map +1 -0
  14. package/build/cjs/components/components.spec.d.ts +1 -0
  15. package/build/cjs/components/components.spec.js +332 -0
  16. package/build/cjs/components/components.spec.js.map +1 -0
  17. package/build/cjs/components/index.d.ts +4 -0
  18. package/build/cjs/components/index.js +28 -0
  19. package/build/cjs/components/index.js.map +1 -0
  20. package/build/cjs/components/types.d.ts +7 -0
  21. package/build/cjs/components/types.js +3 -0
  22. package/build/cjs/components/types.js.map +1 -0
  23. package/build/cjs/components/util.d.ts +38 -0
  24. package/build/cjs/components/util.js +107 -0
  25. package/build/cjs/components/util.js.map +1 -0
  26. package/build/cjs/index.d.ts +3 -0
  27. package/build/cjs/index.js +33 -0
  28. package/build/cjs/index.js.map +1 -0
  29. package/build/cjs/stories/Area.stories.d.ts +68 -0
  30. package/build/cjs/stories/Area.stories.js +53 -0
  31. package/build/cjs/stories/Area.stories.js.map +1 -0
  32. package/build/cjs/stories/Cartesian.stories.d.ts +34 -0
  33. package/build/cjs/stories/Cartesian.stories.js +47 -0
  34. package/build/cjs/stories/Cartesian.stories.js.map +1 -0
  35. package/build/cjs/stories/Grid.stories.d.ts +262 -0
  36. package/build/cjs/stories/Grid.stories.js +45 -0
  37. package/build/cjs/stories/Grid.stories.js.map +1 -0
  38. package/build/cjs/stories/Mathbox.stories.d.ts +18 -0
  39. package/build/cjs/stories/Mathbox.stories.js +16 -0
  40. package/build/cjs/stories/Mathbox.stories.js.map +1 -0
  41. package/build/cjs/stories/Play.stories.d.ts +36 -0
  42. package/build/cjs/stories/Play.stories.js +35 -0
  43. package/build/cjs/stories/Play.stories.js.map +1 -0
  44. package/build/cjs/stories/Point.stories.d.ts +101 -0
  45. package/build/cjs/stories/Point.stories.js +103 -0
  46. package/build/cjs/stories/Point.stories.js.map +1 -0
  47. package/build/cjs/stories/Surface.stories.d.ts +68 -0
  48. package/build/cjs/stories/Surface.stories.js +49 -0
  49. package/build/cjs/stories/Surface.stories.js.map +1 -0
  50. package/build/cjs/stories/utils.d.ts +5 -0
  51. package/build/cjs/stories/utils.js +69 -0
  52. package/build/cjs/stories/utils.js.map +1 -0
  53. package/build/cjs/testSetup.d.ts +1 -0
  54. package/build/cjs/testSetup.js +5 -0
  55. package/build/cjs/testSetup.js.map +1 -0
  56. package/build/cjs/testUtils.d.ts +1 -0
  57. package/build/cjs/testUtils.js +47 -0
  58. package/build/cjs/testUtils.js.map +1 -0
  59. package/build/cjs/threestrap/Controls.d.ts +21 -0
  60. package/build/cjs/threestrap/Controls.js +75 -0
  61. package/build/cjs/threestrap/Controls.js.map +1 -0
  62. package/build/cjs/threestrap/Renderer.d.ts +7 -0
  63. package/build/cjs/threestrap/Renderer.js +15 -0
  64. package/build/cjs/threestrap/Renderer.js.map +1 -0
  65. package/build/cjs/threestrap/ThreestrapContext.d.ts +6 -0
  66. package/build/cjs/threestrap/ThreestrapContext.js +15 -0
  67. package/build/cjs/threestrap/ThreestrapContext.js.map +1 -0
  68. package/build/cjs/threestrap/index.d.ts +4 -0
  69. package/build/cjs/threestrap/index.js +13 -0
  70. package/build/cjs/threestrap/index.js.map +1 -0
  71. package/build/cjs/threestrap/threestrap.d.ts +13 -0
  72. package/build/cjs/threestrap/threestrap.js +3 -0
  73. package/build/cjs/threestrap/threestrap.js.map +1 -0
  74. package/build/esm/components/ContainedMathbox.d.ts +11 -0
  75. package/build/esm/components/ContainedMathbox.js +31 -0
  76. package/build/esm/components/ContainedMathbox.js.map +1 -0
  77. package/build/esm/components/Mathbox.d.ts +9 -0
  78. package/build/esm/components/Mathbox.js +59 -0
  79. package/build/esm/components/Mathbox.js.map +1 -0
  80. package/build/esm/components/MathboxAPIContext.d.ts +9 -0
  81. package/build/esm/components/MathboxAPIContext.js +15 -0
  82. package/build/esm/components/MathboxAPIContext.js.map +1 -0
  83. package/build/esm/components/components.d.ts +267 -0
  84. package/build/esm/components/components.js +353 -0
  85. package/build/esm/components/components.js.map +1 -0
  86. package/build/esm/components/components.spec.d.ts +1 -0
  87. package/build/esm/components/components.spec.js +304 -0
  88. package/build/esm/components/components.spec.js.map +1 -0
  89. package/build/esm/components/index.d.ts +4 -0
  90. package/build/esm/components/index.js +5 -0
  91. package/build/esm/components/index.js.map +1 -0
  92. package/build/esm/components/types.d.ts +7 -0
  93. package/build/esm/components/types.js +2 -0
  94. package/build/esm/components/types.js.map +1 -0
  95. package/build/esm/components/util.d.ts +38 -0
  96. package/build/esm/components/util.js +96 -0
  97. package/build/esm/components/util.js.map +1 -0
  98. package/build/esm/index.d.ts +3 -0
  99. package/build/esm/index.js +4 -0
  100. package/build/esm/index.js.map +1 -0
  101. package/build/esm/testSetup.d.ts +1 -0
  102. package/build/esm/testSetup.js +3 -0
  103. package/build/esm/testSetup.js.map +1 -0
  104. package/build/esm/testUtils.d.ts +1 -0
  105. package/build/esm/testUtils.js +43 -0
  106. package/build/esm/testUtils.js.map +1 -0
  107. package/build/esm/threestrap/Controls.d.ts +21 -0
  108. package/build/esm/threestrap/Controls.js +73 -0
  109. package/build/esm/threestrap/Controls.js.map +1 -0
  110. package/build/esm/threestrap/Renderer.d.ts +7 -0
  111. package/build/esm/threestrap/Renderer.js +13 -0
  112. package/build/esm/threestrap/Renderer.js.map +1 -0
  113. package/build/esm/threestrap/ThreestrapContext.d.ts +6 -0
  114. package/build/esm/threestrap/ThreestrapContext.js +12 -0
  115. package/build/esm/threestrap/ThreestrapContext.js.map +1 -0
  116. package/build/esm/threestrap/index.d.ts +4 -0
  117. package/build/esm/threestrap/index.js +4 -0
  118. package/build/esm/threestrap/index.js.map +1 -0
  119. package/build/esm/threestrap/threestrap.d.ts +13 -0
  120. package/build/esm/threestrap/threestrap.js +2 -0
  121. package/build/esm/threestrap/threestrap.js.map +1 -0
  122. package/package.json +74 -0
@@ -0,0 +1,73 @@
1
+ /* eslint-disable react/no-unused-prop-types */
2
+ import { useEffect } from "react";
3
+ import { useThreestrap } from "./ThreestrapContext";
4
+ var ALLOWED_CONTROLS = ["orbit"];
5
+ var useOrbitControls = function (threestrap, _a) {
6
+ var type = _a.type, enablePan = _a.enablePan, enableRotate = _a.enableRotate, enableZoom = _a.enableZoom, onStart = _a.onStart, onEnd = _a.onEnd, target = _a.target;
7
+ useEffect(function () {
8
+ if (type !== "orbit")
9
+ return;
10
+ if (!threestrap.controls)
11
+ return;
12
+ var controls = threestrap.controls;
13
+ if (enablePan !== undefined) {
14
+ controls.enablePan = enablePan;
15
+ }
16
+ if (enableZoom !== undefined) {
17
+ controls.enableZoom = enableZoom;
18
+ }
19
+ if (enableRotate !== undefined) {
20
+ controls.enableRotate = enableRotate;
21
+ }
22
+ }, [type, enablePan, enableRotate, enableZoom, threestrap.controls]);
23
+ useEffect(function () {
24
+ if (type !== "orbit")
25
+ return;
26
+ if (!threestrap.controls)
27
+ return;
28
+ var controls = threestrap.controls;
29
+ if (target) {
30
+ controls.target = target;
31
+ }
32
+ }, [type, threestrap.controls, target]);
33
+ useEffect(function () {
34
+ if (type !== "orbit")
35
+ return function () { };
36
+ if (!threestrap.controls)
37
+ return function () { };
38
+ var controls = threestrap.controls;
39
+ if (onStart) {
40
+ controls.addEventListener("start", onStart);
41
+ }
42
+ return function () {
43
+ if (onStart) {
44
+ controls.removeEventListener("start", onStart);
45
+ }
46
+ };
47
+ }, [type, onStart, threestrap.controls]);
48
+ useEffect(function () {
49
+ if (type !== "orbit")
50
+ return function () { };
51
+ if (!threestrap.controls)
52
+ return function () { };
53
+ var controls = threestrap.controls;
54
+ if (onEnd) {
55
+ controls.addEventListener("end", onEnd);
56
+ }
57
+ return function () {
58
+ if (onEnd) {
59
+ controls.removeEventListener("end", onEnd);
60
+ }
61
+ };
62
+ }, [type, onEnd, threestrap.controls]);
63
+ };
64
+ var Controls = function (props) {
65
+ if (!ALLOWED_CONTROLS.includes(props.type)) {
66
+ throw new Error("Invalid control type ".concat(props.type));
67
+ }
68
+ var threestrap = useThreestrap();
69
+ useOrbitControls(threestrap, props);
70
+ return null;
71
+ };
72
+ export default Controls;
73
+ //# sourceMappingURL=Controls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Controls.js","sourceRoot":"","sources":["../../../src/threestrap/Controls.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ import type { ColorRepresentation } from "three";
3
+ type RendererProps = {
4
+ clearColor?: ColorRepresentation;
5
+ };
6
+ declare const Renderer: React.FC<RendererProps>;
7
+ export default Renderer;
@@ -0,0 +1,13 @@
1
+ import { useEffect } from "react";
2
+ import { useThreestrap } from "./ThreestrapContext";
3
+ var Renderer = function (props) {
4
+ var threestrap = useThreestrap();
5
+ useEffect(function () {
6
+ if (props.clearColor) {
7
+ threestrap.renderer.setClearColor(props.clearColor);
8
+ }
9
+ });
10
+ return null;
11
+ };
12
+ export default Renderer;
13
+ //# sourceMappingURL=Renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/threestrap/Renderer.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAExC,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAMnD,IAAM,QAAQ,GAA4B,UAAC,KAAK;IAC9C,IAAM,UAAU,GAAG,aAAa,EAAE,CAAA;IAClC,SAAS,CAAC;QACR,IAAI,KAAK,CAAC,UAAU,EAAE;YACpB,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC,CAAA;SACpD;IACH,CAAC,CAAC,CAAA;IACF,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,eAAe,QAAQ,CAAA"}
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import type { Threestrap } from "./threestrap";
3
+ declare const ThreestrapContext: import("react").Context<Threestrap | null>;
4
+ export default ThreestrapContext;
5
+ declare const useThreestrap: () => Threestrap;
6
+ export { useThreestrap };
@@ -0,0 +1,12 @@
1
+ import { createContext, useContext } from "react";
2
+ var ThreestrapContext = createContext(null);
3
+ export default ThreestrapContext;
4
+ var useThreestrap = function () {
5
+ var threestrap = useContext(ThreestrapContext);
6
+ if (!threestrap) {
7
+ throw new Error("Threestrap context is not available");
8
+ }
9
+ return threestrap;
10
+ };
11
+ export { useThreestrap };
12
+ //# sourceMappingURL=ThreestrapContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreestrapContext.js","sourceRoot":"","sources":["../../../src/threestrap/ThreestrapContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGjD,IAAM,iBAAiB,GAAG,aAAa,CAAoB,IAAI,CAAC,CAAA;AAEhE,eAAe,iBAAiB,CAAA;AAEhC,IAAM,aAAa,GAAG;IACpB,IAAM,UAAU,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;KACvD;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { default as Renderer } from "./Renderer";
2
+ export { default as Controls } from "./Controls";
3
+ export { useThreestrap } from "./ThreestrapContext";
4
+ export type { Threestrap } from "./threestrap";
@@ -0,0 +1,4 @@
1
+ export { default as Renderer } from "./Renderer";
2
+ export { default as Controls } from "./Controls";
3
+ export { useThreestrap } from "./ThreestrapContext";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/threestrap/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,13 @@
1
+ import type { OrbitControls } from "three/examples/jsm/controls/OrbitControls";
2
+ import type { FirstPersonControls } from "three/examples/jsm/controls/FirstPersonControls";
3
+ import type { WebGLRenderer } from "three";
4
+ export interface ThreestrapControls {
5
+ orbit: OrbitControls;
6
+ firstPerson: FirstPersonControls;
7
+ }
8
+ type Controls = ThreestrapControls[keyof ThreestrapControls];
9
+ export interface Threestrap {
10
+ renderer: WebGLRenderer;
11
+ controls: Controls | null;
12
+ }
13
+ export {};
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=threestrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threestrap.js","sourceRoot":"","sources":["../../../src/threestrap/threestrap.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,74 @@
1
+ {
2
+ "name": "mathbox-react",
3
+ "version": "0.0.0-a53eb3e",
4
+ "description": "React wrapper for Mathbox",
5
+ "license": "ISC",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/ChristopherChudzicki/mathbox-react",
9
+ "directory": "mathbox-react"
10
+ },
11
+ "author": "Chris Chudzicki",
12
+ "main": "build/cjs/index.js",
13
+ "exports": {
14
+ ".": {
15
+ "import": "./build/esm/index.js",
16
+ "require": "./build/cjs/index.js"
17
+ },
18
+ "./threestrap": {
19
+ "import": "./build/esm/threestrap/index.js",
20
+ "require": "./build/cjs/threestrap/index.js"
21
+ }
22
+ },
23
+ "files": [
24
+ "build"
25
+ ],
26
+ "scripts": {
27
+ "build": "rm -rf ./build && yarn build-esm && yarn build-cjs",
28
+ "build-esm": "tsc --project tsconfig.esm.json",
29
+ "build-cjs": "tsc --project tsconfig.cjs.json",
30
+ "build-watch": "tsc --watch",
31
+ "storybook": "start-storybook -p 6006",
32
+ "lint": "eslint \"**/*.ts?(x)\"",
33
+ "prepack": "yarn build",
34
+ "test": "vitest run",
35
+ "test:watch": "vitest"
36
+ },
37
+ "devDependencies": {
38
+ "@babel/core": "7.29.7",
39
+ "@babel/preset-env": "7.29.7",
40
+ "@mathbox-react/eslint-config": "workspace:*",
41
+ "@mathbox-react/tsconfig": "workspace:*",
42
+ "@storybook/addon-actions": "7.6.24",
43
+ "@storybook/addon-essentials": "7.6.24",
44
+ "@storybook/addon-interactions": "7.6.24",
45
+ "@storybook/addon-links": "7.6.24",
46
+ "@storybook/builder-webpack5": "^7.0.0",
47
+ "@storybook/manager-webpack5": "^6.5.15",
48
+ "@storybook/react": "7.6.24",
49
+ "@storybook/testing-library": "0.2.2",
50
+ "@testing-library/react": "14.3.1",
51
+ "@types/lodash": "4.17.24",
52
+ "@types/react": "18.2.28",
53
+ "@types/three": "0.162.0",
54
+ "babel-loader": "9.2.1",
55
+ "conventional-changelog-conventionalcommits": "^9",
56
+ "eslint": "^8.32.0",
57
+ "jsdom": "^29",
58
+ "mathbox": "2.3.1",
59
+ "react": "18.2.0",
60
+ "react-dom": "18.2.0",
61
+ "semantic-release": "^25",
62
+ "three": "0.162.0",
63
+ "typescript": "^5.2.2",
64
+ "vitest": "^4"
65
+ },
66
+ "peerDependencies": {
67
+ "mathbox": "^2.3.1",
68
+ "react": "^17.0.2 || ^18.0.0",
69
+ "three": ">=0.118.0 <0.163"
70
+ },
71
+ "dependencies": {
72
+ "lodash": "^4.17.21"
73
+ }
74
+ }