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,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,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var ThreestrapContext_1 = require("./ThreestrapContext");
5
+ var Renderer = function (props) {
6
+ var threestrap = (0, ThreestrapContext_1.useThreestrap)();
7
+ (0, react_1.useEffect)(function () {
8
+ if (props.clearColor) {
9
+ threestrap.renderer.setClearColor(props.clearColor);
10
+ }
11
+ });
12
+ return null;
13
+ };
14
+ exports.default = Renderer;
15
+ //# sourceMappingURL=Renderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/threestrap/Renderer.ts"],"names":[],"mappings":";;AAAA,+BAAwC;AAExC,yDAAmD;AAMnD,IAAM,QAAQ,GAA4B,UAAC,KAAK;IAC9C,IAAM,UAAU,GAAG,IAAA,iCAAa,GAAE,CAAA;IAClC,IAAA,iBAAS,EAAC;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,kBAAe,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,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useThreestrap = void 0;
4
+ var react_1 = require("react");
5
+ var ThreestrapContext = (0, react_1.createContext)(null);
6
+ exports.default = ThreestrapContext;
7
+ var useThreestrap = function () {
8
+ var threestrap = (0, react_1.useContext)(ThreestrapContext);
9
+ if (!threestrap) {
10
+ throw new Error("Threestrap context is not available");
11
+ }
12
+ return threestrap;
13
+ };
14
+ exports.useThreestrap = useThreestrap;
15
+ //# sourceMappingURL=ThreestrapContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThreestrapContext.js","sourceRoot":"","sources":["../../../src/threestrap/ThreestrapContext.ts"],"names":[],"mappings":";;;AAAA,+BAAiD;AAGjD,IAAM,iBAAiB,GAAG,IAAA,qBAAa,EAAoB,IAAI,CAAC,CAAA;AAEhE,kBAAe,iBAAiB,CAAA;AAEhC,IAAM,aAAa,GAAG;IACpB,IAAM,UAAU,GAAG,IAAA,kBAAU,EAAC,iBAAiB,CAAC,CAAA;IAChD,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAA;KACvD;IACD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AAEQ,sCAAa"}
@@ -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,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.useThreestrap = exports.Controls = exports.Renderer = void 0;
7
+ var Renderer_1 = require("./Renderer");
8
+ Object.defineProperty(exports, "Renderer", { enumerable: true, get: function () { return __importDefault(Renderer_1).default; } });
9
+ var Controls_1 = require("./Controls");
10
+ Object.defineProperty(exports, "Controls", { enumerable: true, get: function () { return __importDefault(Controls_1).default; } });
11
+ var ThreestrapContext_1 = require("./ThreestrapContext");
12
+ Object.defineProperty(exports, "useThreestrap", { enumerable: true, get: function () { return ThreestrapContext_1.useThreestrap; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/threestrap/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAgD;AAAvC,qHAAA,OAAO,OAAY;AAC5B,uCAAgD;AAAvC,qHAAA,OAAO,OAAY;AAC5B,yDAAmD;AAA1C,kHAAA,aAAa,OAAA"}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=threestrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threestrap.js","sourceRoot":"","sources":["../../../src/threestrap/threestrap.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import React from "react";
2
+ import { RootProps, MathboxSelection } from "mathbox";
3
+ declare const _default: React.ForwardRefExoticComponent<{
4
+ children?: React.ReactNode | React.ReactNode[];
5
+ } & {
6
+ containerId?: string | undefined;
7
+ containerClass?: string | undefined;
8
+ containerStyle?: React.CSSProperties | undefined;
9
+ options?: any;
10
+ } & RootProps & React.RefAttributes<MathboxSelection<"root">>>;
11
+ export default _default;
@@ -0,0 +1,31 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { useState, forwardRef } from "react";
24
+ import Mathbox from "./Mathbox";
25
+ var ContainedMathbox = function (props, ref) {
26
+ var children = props.children, containerId = props.containerId, containerClass = props.containerClass, containerStyle = props.containerStyle, others = __rest(props, ["children", "containerId", "containerClass", "containerStyle"]);
27
+ var _a = useState(null), container = _a[0], setContainer = _a[1];
28
+ return (React.createElement("div", { ref: setContainer, id: containerId, className: containerClass, style: containerStyle }, container && (React.createElement(Mathbox, __assign({ ref: ref, container: container }, others), children))));
29
+ };
30
+ export default forwardRef(ContainedMathbox);
31
+ //# sourceMappingURL=ContainedMathbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContainedMathbox.js","sourceRoot":"","sources":["../../../src/components/ContainedMathbox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAEnD,OAAO,OAAO,MAAM,WAAW,CAAA;AAY/B,IAAM,gBAAgB,GAAG,UACvB,KAAY,EACZ,GAAwC;IAEhC,IAAA,QAAQ,GACd,KAAK,SADS,EAAE,WAAW,GAC3B,KAAK,YADsB,EAAE,cAAc,GAC3C,KAAK,eADsC,EAAE,cAAc,GAC3D,KAAK,eADsD,EAAK,MAAM,UACtE,KAAK,EADD,+DAAoE,CAAF,CACjE;IACD,IAAA,KAA4B,QAAQ,CAAwB,IAAI,CAAC,EAAhE,SAAS,QAAA,EAAE,YAAY,QAAyC,CAAA;IACvE,OAAO,CACL,6BACE,GAAG,EAAE,YAAY,EACjB,EAAE,EAAE,WAAW,EACf,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,cAAc,IAEpB,SAAS,IAAI,CACZ,oBAAC,OAAO,aAAC,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,IAAM,MAAM,GAChD,QAAQ,CACD,CACX,CACG,CACP,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAC,gBAAgB,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import { RootProps, MathboxSelection } from "mathbox";
3
+ declare const _default: React.ForwardRefExoticComponent<{
4
+ children?: React.ReactNode | React.ReactNode[];
5
+ } & {
6
+ container: HTMLElement;
7
+ options?: any;
8
+ } & RootProps & React.RefAttributes<MathboxSelection<"root">>>;
9
+ export default _default;
@@ -0,0 +1,59 @@
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ var __rest = (this && this.__rest) || function (s, e) {
13
+ var t = {};
14
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
15
+ t[p] = s[p];
16
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
17
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
18
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
19
+ t[p[i]] = s[p[i]];
20
+ }
21
+ return t;
22
+ };
23
+ import React, { useLayoutEffect, useState, forwardRef, useImperativeHandle, } from "react";
24
+ import { Color } from "three";
25
+ import { mathBox } from "mathbox";
26
+ import MathboxAPIContext from "./MathboxAPIContext";
27
+ import { useDeepCompareMemo } from "./util";
28
+ import ThreestrapContext from "../threestrap/ThreestrapContext";
29
+ var Mathbox = function (props, ref) {
30
+ var container = props.container, children = props.children, options = props.options, rootProps = __rest(props, ["container", "children", "options"]);
31
+ var mathboxOptions = useDeepCompareMemo(options !== null && options !== void 0 ? options : {}, {});
32
+ var _a = useState(null), selection = _a[0], setSelection = _a[1];
33
+ useLayoutEffect(function () {
34
+ if (!container)
35
+ return function () { };
36
+ var mathbox = mathBox(__assign(__assign({}, mathboxOptions), { element: container }));
37
+ setSelection(mathbox);
38
+ /**
39
+ * TODO: Should Mathbox component allow setting these more easily?
40
+ */
41
+ mathbox.three.renderer.setClearColor(new Color(0xffffff), 1.0);
42
+ mathbox.three.camera.position.set(1, 1, 2);
43
+ return function () {
44
+ mathbox.select("*").remove();
45
+ mathbox.three.destroy();
46
+ setSelection(null);
47
+ };
48
+ }, [container, mathboxOptions]);
49
+ useLayoutEffect(function () {
50
+ if (!selection)
51
+ return;
52
+ selection.set(rootProps);
53
+ }, [selection, rootProps]);
54
+ useImperativeHandle(ref, function () { return selection; }, [selection]);
55
+ return (selection && (React.createElement(MathboxAPIContext.Provider, { value: selection },
56
+ React.createElement(ThreestrapContext.Provider, { value: selection.three }, children))));
57
+ };
58
+ export default forwardRef(Mathbox);
59
+ //# sourceMappingURL=Mathbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Mathbox.js","sourceRoot":"","sources":["../../../src/components/Mathbox.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EACZ,eAAe,EACf,QAAQ,EACR,UAAU,EACV,mBAAmB,GACpB,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAC7B,OAAO,EAAE,OAAO,EAA+C,MAAM,SAAS,CAAA;AAC9E,OAAO,iBAAiB,MAAM,qBAAqB,CAAA;AAEnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,iBAAiB,MAAM,iCAAiC,CAAA;AAS/D,IAAM,OAAO,GAAG,UACd,KAAY,EACZ,GAA+C;IAEvC,IAAA,SAAS,GAAsC,KAAK,UAA3C,EAAE,QAAQ,GAA4B,KAAK,SAAjC,EAAE,OAAO,GAAmB,KAAK,QAAxB,EAAK,SAAS,UAAK,KAAK,EAAtD,oCAA8C,CAAF,CAAU;IAC5D,IAAM,cAAc,GAAG,kBAAkB,CAAC,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAAE,EAAE,CAAC,CAAA;IACtD,IAAA,KAA4B,QAAQ,CACxC,IAAI,CACL,EAFM,SAAS,QAAA,EAAE,YAAY,QAE7B,CAAA;IACD,eAAe,CAAC;QACd,IAAI,CAAC,SAAS;YAAE,OAAO,cAAO,CAAC,CAAA;QAE/B,IAAM,OAAO,GAAG,OAAO,uBAClB,cAAc,KACjB,OAAO,EAAE,SAAS,IAClB,CAAA;QACF,YAAY,CAAC,OAAO,CAAC,CAAA;QAErB;;WAEG;QACH,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,CAAA;QAC9D,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QAC1C,OAAO;YACL,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAA;YAC5B,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;YACvB,YAAY,CAAC,IAAI,CAAC,CAAA;QACpB,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAA;IAE/B,eAAe,CAAC;QACd,IAAI,CAAC,SAAS;YAAE,OAAM;QACtB,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IAC1B,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;IAE1B,mBAAmB,CAAC,GAAG,EAAE,cAAM,OAAA,SAAS,EAAT,CAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IACtD,OAAO,CACL,SAAS,IAAI,CACX,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS;QAC1C,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,CAAC,KAAK,IAC/C,QAAQ,CACkB,CACF,CAC9B,CACF,CAAA;AACH,CAAC,CAAA;AAED,eAAe,UAAU,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { MathboxSelection } from "mathbox";
3
+ declare const MathboxAPIContext: import("react").Context<MathboxSelection<"axis" | "face" | "grid" | "line" | "point" | "strip" | "surface" | "ticks" | "vector" | "view" | "cartesian" | "cartesian4" | "polar" | "spherical" | "stereographic" | "stereographic4" | "transform" | "transform4" | "vertex" | "fragment" | "layer" | "mask" | "array" | "interval" | "matrix" | "area" | "voxel" | "volume" | "scale" | "latch" | "html" | "dom" | "text" | "format" | "label" | "retext" | "clamp" | "grow" | "join" | "lerp" | "memo" | "readback" | "resample" | "repeat" | "reverse" | "swizzle" | "spread" | "split" | "slice" | "subdivide" | "transpose" | "group" | "inherit" | "root" | "unit" | "shader" | "camera" | "rtt" | "compose" | "clock" | "now" | "move" | "play" | "present" | "reveal" | "slide" | "step"> | null>;
4
+ /**
5
+ * Returns Mathbox API Selection object for the nearest enclosing Mathbox node.
6
+ */
7
+ declare const useMathbox: () => MathboxSelection<"axis" | "face" | "grid" | "line" | "point" | "strip" | "surface" | "ticks" | "vector" | "view" | "cartesian" | "cartesian4" | "polar" | "spherical" | "stereographic" | "stereographic4" | "transform" | "transform4" | "vertex" | "fragment" | "layer" | "mask" | "array" | "interval" | "matrix" | "area" | "voxel" | "volume" | "scale" | "latch" | "html" | "dom" | "text" | "format" | "label" | "retext" | "clamp" | "grow" | "join" | "lerp" | "memo" | "readback" | "resample" | "repeat" | "reverse" | "swizzle" | "spread" | "split" | "slice" | "subdivide" | "transpose" | "group" | "inherit" | "root" | "unit" | "shader" | "camera" | "rtt" | "compose" | "clock" | "now" | "move" | "play" | "present" | "reveal" | "slide" | "step">;
8
+ export default MathboxAPIContext;
9
+ export { useMathbox };
@@ -0,0 +1,15 @@
1
+ import { createContext, useContext } from "react";
2
+ var MathboxAPIContext = createContext(null);
3
+ /**
4
+ * Returns Mathbox API Selection object for the nearest enclosing Mathbox node.
5
+ */
6
+ var useMathbox = function () {
7
+ var selection = useContext(MathboxAPIContext);
8
+ if (!selection) {
9
+ throw new Error("useMathbox must be used within Mathbox or ContainedMathbox");
10
+ }
11
+ return selection;
12
+ };
13
+ export default MathboxAPIContext;
14
+ export { useMathbox };
15
+ //# sourceMappingURL=MathboxAPIContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MathboxAPIContext.js","sourceRoot":"","sources":["../../../src/components/MathboxAPIContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGjD,IAAM,iBAAiB,GAAG,aAAa,CAAoC,IAAI,CAAC,CAAA;AAEhF;;GAEG;AACH,IAAM,UAAU,GAAG;IACjB,IAAM,SAAS,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAA;IAC/C,IAAI,CAAC,SAAS,EAAE;QACd,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAA;KACF;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,eAAe,iBAAiB,CAAA;AAEhC,OAAO,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,267 @@
1
+ import React from "react";
2
+ import { Props, NodeType, MathboxSelection } from "mathbox";
3
+ import { WithChildren } from "./types";
4
+ import { ParentNodeTypes } from "./util";
5
+ type LiveProps<P> = {
6
+ [K in keyof P]: (t: number, dt: number) => P[K];
7
+ };
8
+ type MathboxComponent<T extends NodeType> = React.ForwardRefExoticComponent<(T extends ParentNodeTypes ? WithChildren<Props[T]> : Props[T]) & React.RefAttributes<MathboxSelection<T>> & {
9
+ liveProps?: LiveProps<Props[T]>;
10
+ }>;
11
+ /**
12
+ * Component wrapper for mathbox [`area`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#dataarea).
13
+ */
14
+ export declare const Area: MathboxComponent<"area">;
15
+ /**
16
+ * Component wrapper for mathbox [`array`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#dataarray).
17
+ */
18
+ declare const MBArray: MathboxComponent<"array">;
19
+ export { MBArray as Array };
20
+ /**
21
+ * Component wrapper for mathbox [`axis`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawaxis).
22
+ */
23
+ export declare const Axis: MathboxComponent<"axis">;
24
+ /**
25
+ * Component wrapper for mathbox [`camera`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#cameracamera).
26
+ */
27
+ export declare const Camera: MathboxComponent<"camera">;
28
+ /**
29
+ * Component wrapper for mathbox [`cartesian`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewcartesian).
30
+ */
31
+ export declare const Cartesian: MathboxComponent<"cartesian">;
32
+ /**
33
+ * Component wrapper for mathbox [`cartesian4`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewcartesian4).
34
+ */
35
+ export declare const Cartesian4: MathboxComponent<"cartesian4">;
36
+ /**
37
+ * Component wrapper for mathbox [`clamp`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorclamp).
38
+ */
39
+ export declare const Clamp: MathboxComponent<"clamp">;
40
+ /**
41
+ * Component wrapper for mathbox [`clock`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#timeclock).
42
+ */
43
+ export declare const Clock: MathboxComponent<"clock">;
44
+ /**
45
+ * Component wrapper for mathbox [`compose`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#rttcompose).
46
+ */
47
+ export declare const Compose: MathboxComponent<"compose">;
48
+ /**
49
+ * Component wrapper for mathbox [`dom`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#overlaydom).
50
+ */
51
+ export declare const Dom: MathboxComponent<"dom">;
52
+ /**
53
+ * Component wrapper for mathbox [`face`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawface).
54
+ */
55
+ export declare const Face: MathboxComponent<"face">;
56
+ /**
57
+ * Component wrapper for mathbox [`format`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#textformat).
58
+ */
59
+ export declare const Format: MathboxComponent<"format">;
60
+ /**
61
+ * Component wrapper for mathbox [`fragment`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#transformfragment).
62
+ */
63
+ export declare const Fragment: MathboxComponent<"fragment">;
64
+ /**
65
+ * Component wrapper for mathbox [`grid`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawgrid).
66
+ */
67
+ export declare const Grid: MathboxComponent<"grid">;
68
+ /**
69
+ * Component wrapper for mathbox [`group`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#basegroup).
70
+ */
71
+ export declare const Group: MathboxComponent<"group">;
72
+ /**
73
+ * Component wrapper for mathbox [`grow`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorgrow).
74
+ */
75
+ export declare const Grow: MathboxComponent<"grow">;
76
+ /**
77
+ * Component wrapper for mathbox [`html`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#overlayhtml).
78
+ */
79
+ export declare const Html: MathboxComponent<"html">;
80
+ /**
81
+ * Component wrapper for mathbox [`inherit`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#baseinherit).
82
+ */
83
+ export declare const Inherit: MathboxComponent<"inherit">;
84
+ /**
85
+ * Component wrapper for mathbox [`interval`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#datainterval).
86
+ */
87
+ export declare const Interval: MathboxComponent<"interval">;
88
+ /**
89
+ * Component wrapper for mathbox [`join`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorjoin).
90
+ */
91
+ export declare const Join: MathboxComponent<"join">;
92
+ /**
93
+ * Component wrapper for mathbox [`label`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#textlabel).
94
+ */
95
+ export declare const Label: MathboxComponent<"label">;
96
+ /**
97
+ * Component wrapper for mathbox [`layer`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#transformlayer).
98
+ */
99
+ export declare const Layer: MathboxComponent<"layer">;
100
+ /**
101
+ * Component wrapper for mathbox [`lerp`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorlerp).
102
+ */
103
+ export declare const Lerp: MathboxComponent<"lerp">;
104
+ /**
105
+ * Component wrapper for mathbox [`line`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawline).
106
+ */
107
+ export declare const Line: MathboxComponent<"line">;
108
+ /**
109
+ * Component wrapper for mathbox [`mask`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#transformmask).
110
+ */
111
+ export declare const Mask: MathboxComponent<"mask">;
112
+ /**
113
+ * Component wrapper for mathbox [`matrix`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#datamatrix).
114
+ */
115
+ export declare const Matrix: MathboxComponent<"matrix">;
116
+ /**
117
+ * Component wrapper for mathbox [`memo`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatormemo).
118
+ */
119
+ export declare const Memo: MathboxComponent<"memo">;
120
+ /**
121
+ * Component wrapper for mathbox [`move`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#presentmove).
122
+ */
123
+ export declare const Move: MathboxComponent<"move">;
124
+ /**
125
+ * Component wrapper for mathbox [`now`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#timenow).
126
+ */
127
+ export declare const Now: MathboxComponent<"now">;
128
+ /**
129
+ * Component wrapper for mathbox [`play`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#presentplay).
130
+ */
131
+ export declare const Play: MathboxComponent<"play">;
132
+ /**
133
+ * Component wrapper for mathbox [`point`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawpoint).
134
+ */
135
+ export declare const Point: MathboxComponent<"point">;
136
+ /**
137
+ * Component wrapper for mathbox [`polar`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewpolar).
138
+ */
139
+ export declare const Polar: MathboxComponent<"polar">;
140
+ /**
141
+ * Component wrapper for mathbox [`present`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#presentpresent).
142
+ */
143
+ export declare const Present: MathboxComponent<"present">;
144
+ /**
145
+ * Component wrapper for mathbox [`readback`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorreadback).
146
+ */
147
+ export declare const Readback: MathboxComponent<"readback">;
148
+ /**
149
+ * Component wrapper for mathbox [`repeat`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorrepeat).
150
+ */
151
+ export declare const Repeat: MathboxComponent<"repeat">;
152
+ /**
153
+ * Component wrapper for mathbox [`resample`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorresample).
154
+ */
155
+ export declare const Resample: MathboxComponent<"resample">;
156
+ /**
157
+ * Component wrapper for mathbox [`retext`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#textretext).
158
+ */
159
+ export declare const Retext: MathboxComponent<"retext">;
160
+ /**
161
+ * Component wrapper for mathbox [`reveal`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#presentreveal).
162
+ */
163
+ export declare const Reveal: MathboxComponent<"reveal">;
164
+ /**
165
+ * Component wrapper for mathbox [`rtt`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#rttrtt).
166
+ */
167
+ export declare const Rtt: MathboxComponent<"rtt">;
168
+ /**
169
+ * Component wrapper for mathbox [`scale`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#datascale).
170
+ */
171
+ export declare const Scale: MathboxComponent<"scale">;
172
+ /**
173
+ * Component wrapper for mathbox [`shader`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#shadershader).
174
+ */
175
+ export declare const Shader: MathboxComponent<"shader">;
176
+ /**
177
+ * Component wrapper for mathbox [`slice`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorslice).
178
+ */
179
+ export declare const Slice: MathboxComponent<"slice">;
180
+ /**
181
+ * Component wrapper for mathbox [`slide`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#presentslide).
182
+ */
183
+ export declare const Slide: MathboxComponent<"slide">;
184
+ /**
185
+ * Component wrapper for mathbox [`spherical`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewspherical).
186
+ */
187
+ export declare const Spherical: MathboxComponent<"spherical">;
188
+ /**
189
+ * Component wrapper for mathbox [`split`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorsplit).
190
+ */
191
+ export declare const Split: MathboxComponent<"split">;
192
+ /**
193
+ * Component wrapper for mathbox [`spread`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorspread).
194
+ */
195
+ export declare const Spread: MathboxComponent<"spread">;
196
+ /**
197
+ * Component wrapper for mathbox [`step`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#presentstep).
198
+ */
199
+ export declare const Step: MathboxComponent<"step">;
200
+ /**
201
+ * Component wrapper for mathbox [`stereographic`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewstereographic).
202
+ */
203
+ export declare const Stereographic: MathboxComponent<"stereographic">;
204
+ /**
205
+ * Component wrapper for mathbox [`stereographic4`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewstereographic4).
206
+ */
207
+ export declare const Stereographic4: MathboxComponent<"stereographic4">;
208
+ /**
209
+ * Component wrapper for mathbox [`strip`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawstrip).
210
+ */
211
+ export declare const Strip: MathboxComponent<"strip">;
212
+ /**
213
+ * Component wrapper for mathbox [`subdivide`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorsubdivide).
214
+ */
215
+ export declare const Subdivide: MathboxComponent<"subdivide">;
216
+ /**
217
+ * Component wrapper for mathbox [`surface`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawsurface).
218
+ */
219
+ export declare const Surface: MathboxComponent<"surface">;
220
+ /**
221
+ * Component wrapper for mathbox [`swizzle`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatorswizzle).
222
+ */
223
+ export declare const Swizzle: MathboxComponent<"swizzle">;
224
+ /**
225
+ * Component wrapper for mathbox [`text`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#texttext).
226
+ */
227
+ export declare const Text: MathboxComponent<"text">;
228
+ /**
229
+ * Component wrapper for mathbox [`ticks`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawticks).
230
+ */
231
+ export declare const Ticks: MathboxComponent<"ticks">;
232
+ /**
233
+ * Component wrapper for mathbox [`transform`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#transformtransform).
234
+ */
235
+ export declare const Transform: MathboxComponent<"transform">;
236
+ /**
237
+ * Component wrapper for mathbox [`transform4`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#transformtransform4).
238
+ */
239
+ export declare const Transform4: MathboxComponent<"transform4">;
240
+ /**
241
+ * Component wrapper for mathbox [`transpose`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#operatortranspose).
242
+ */
243
+ export declare const Transpose: MathboxComponent<"transpose">;
244
+ /**
245
+ * Component wrapper for mathbox [`unit`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#baseunit).
246
+ */
247
+ export declare const Unit: MathboxComponent<"unit">;
248
+ /**
249
+ * Component wrapper for mathbox [`vector`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#drawvector).
250
+ */
251
+ export declare const Vector: MathboxComponent<"vector">;
252
+ /**
253
+ * Component wrapper for mathbox [`vertex`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#transformvertex).
254
+ */
255
+ export declare const Vertex: MathboxComponent<"vertex">;
256
+ /**
257
+ * Component wrapper for mathbox [`view`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#viewview).
258
+ */
259
+ export declare const View: MathboxComponent<"view">;
260
+ /**
261
+ * Component wrapper for mathbox [`volume`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#datavolume).
262
+ */
263
+ export declare const Volume: MathboxComponent<"volume">;
264
+ /**
265
+ * Component wrapper for mathbox [`voxel`](https://gitgud.io/unconed/mathbox/-/blob/master/docs/primitives.md#datavoxel).
266
+ */
267
+ export declare const Voxel: MathboxComponent<"voxel">;