mathbox-react 0.0.14 → 0.2.0-rc1

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 (139) hide show
  1. package/build/cjs/{types/components → components}/ContainedMathbox.d.ts +0 -0
  2. package/build/cjs/components/ContainedMathbox.js +59 -0
  3. package/build/cjs/components/ContainedMathbox.js.map +1 -0
  4. package/build/cjs/{types/components → components}/Mathbox.d.ts +0 -0
  5. package/build/cjs/components/Mathbox.js +87 -0
  6. package/build/cjs/components/Mathbox.js.map +1 -0
  7. package/build/{esm/types/components/MathboxNodeContext.d.ts → cjs/components/MathboxAPIContext.d.ts} +5 -0
  8. package/build/cjs/components/MathboxAPIContext.js +18 -0
  9. package/build/cjs/components/MathboxAPIContext.js.map +1 -0
  10. package/build/cjs/{types/components → components}/components.d.ts +0 -0
  11. package/build/cjs/components/components.js +383 -0
  12. package/build/cjs/components/components.js.map +1 -0
  13. package/build/cjs/{types/testSetup.d.ts → components/components.spec.d.ts} +0 -0
  14. package/build/cjs/components/components.spec.js +310 -0
  15. package/build/cjs/components/components.spec.js.map +1 -0
  16. package/build/cjs/{types/components → components}/index.d.ts +1 -0
  17. package/build/cjs/components/index.js +25 -0
  18. package/build/cjs/components/index.js.map +1 -0
  19. package/build/cjs/{types/components → components}/types.d.ts +0 -0
  20. package/build/cjs/components/types.js +3 -0
  21. package/build/cjs/components/types.js.map +1 -0
  22. package/build/cjs/{types/components → components}/util.d.ts +0 -0
  23. package/build/cjs/components/util.js +107 -0
  24. package/build/cjs/components/util.js.map +1 -0
  25. package/build/cjs/{types/index.d.ts → index.d.ts} +0 -0
  26. package/build/cjs/index.js +18 -2
  27. package/build/cjs/index.js.map +1 -1
  28. package/build/cjs/stories/Area.stories.d.ts +69 -0
  29. package/build/cjs/stories/Area.stories.js +53 -0
  30. package/build/cjs/stories/Area.stories.js.map +1 -0
  31. package/build/cjs/stories/Cartesian.stories.d.ts +35 -0
  32. package/build/cjs/stories/Cartesian.stories.js +47 -0
  33. package/build/cjs/stories/Cartesian.stories.js.map +1 -0
  34. package/build/cjs/stories/Grid.stories.d.ts +263 -0
  35. package/build/cjs/stories/Grid.stories.js +45 -0
  36. package/build/cjs/stories/Grid.stories.js.map +1 -0
  37. package/build/cjs/stories/Mathbox.stories.d.ts +19 -0
  38. package/build/cjs/stories/Mathbox.stories.js +16 -0
  39. package/build/cjs/stories/Mathbox.stories.js.map +1 -0
  40. package/build/cjs/stories/Play.stories.d.ts +37 -0
  41. package/build/cjs/stories/Play.stories.js +35 -0
  42. package/build/cjs/stories/Play.stories.js.map +1 -0
  43. package/build/cjs/stories/Point.stories.d.ts +102 -0
  44. package/build/cjs/stories/Point.stories.js +103 -0
  45. package/build/cjs/stories/Point.stories.js.map +1 -0
  46. package/build/cjs/stories/Surface.stories.d.ts +69 -0
  47. package/build/cjs/stories/Surface.stories.js +49 -0
  48. package/build/cjs/stories/Surface.stories.js.map +1 -0
  49. package/build/cjs/stories/utils.d.ts +5 -0
  50. package/build/cjs/stories/utils.js +69 -0
  51. package/build/cjs/stories/utils.js.map +1 -0
  52. package/build/{esm/types → cjs}/testSetup.d.ts +0 -0
  53. package/build/cjs/testSetup.js +5 -0
  54. package/build/cjs/testSetup.js.map +1 -0
  55. package/build/cjs/{types/testUtils.d.ts → testUtils.d.ts} +0 -0
  56. package/build/cjs/testUtils.js +46 -0
  57. package/build/cjs/testUtils.js.map +1 -0
  58. package/build/cjs/threestrap/Renderer.d.ts +7 -0
  59. package/build/cjs/threestrap/Renderer.js +15 -0
  60. package/build/cjs/threestrap/Renderer.js.map +1 -0
  61. package/build/cjs/threestrap/ThreestrapContext.d.ts +6 -0
  62. package/build/cjs/threestrap/ThreestrapContext.js +15 -0
  63. package/build/cjs/threestrap/ThreestrapContext.js.map +1 -0
  64. package/build/cjs/threestrap/index.d.ts +2 -0
  65. package/build/cjs/threestrap/index.js +17 -0
  66. package/build/cjs/threestrap/index.js.map +1 -0
  67. package/build/cjs/threestrap/threestrap.d.ts +13 -0
  68. package/build/cjs/threestrap/threestrap.js +3 -0
  69. package/build/cjs/threestrap/threestrap.js.map +1 -0
  70. package/build/esm/{types/components → components}/ContainedMathbox.d.ts +0 -0
  71. package/build/esm/components/ContainedMathbox.js +31 -0
  72. package/build/esm/components/ContainedMathbox.js.map +1 -0
  73. package/build/esm/{types/components → components}/Mathbox.d.ts +0 -0
  74. package/build/esm/components/Mathbox.js +59 -0
  75. package/build/esm/components/Mathbox.js.map +1 -0
  76. package/build/{cjs/types/components/MathboxNodeContext.d.ts → esm/components/MathboxAPIContext.d.ts} +5 -0
  77. package/build/esm/components/MathboxAPIContext.js +15 -0
  78. package/build/esm/components/MathboxAPIContext.js.map +1 -0
  79. package/build/esm/{types/components → components}/components.d.ts +0 -0
  80. package/build/{index.d.ts → esm/components/components.js} +160 -98
  81. package/build/esm/components/components.js.map +1 -0
  82. package/build/esm/components/components.spec.d.ts +1 -0
  83. package/build/esm/components/components.spec.js +282 -0
  84. package/build/esm/components/components.spec.js.map +1 -0
  85. package/build/esm/{types/components → components}/index.d.ts +1 -0
  86. package/build/esm/components/index.js +5 -0
  87. package/build/esm/components/index.js.map +1 -0
  88. package/build/esm/{types/components → components}/types.d.ts +0 -0
  89. package/build/esm/components/types.js +2 -0
  90. package/build/esm/components/types.js.map +1 -0
  91. package/build/esm/{types/components → components}/util.d.ts +0 -0
  92. package/build/esm/components/util.js +96 -0
  93. package/build/esm/components/util.js.map +1 -0
  94. package/build/esm/{types/index.d.ts → index.d.ts} +0 -0
  95. package/build/esm/index.js +2 -2
  96. package/build/esm/index.js.map +1 -1
  97. package/build/esm/stories/Area.stories.d.ts +69 -0
  98. package/build/esm/stories/Area.stories.js +47 -0
  99. package/build/esm/stories/Area.stories.js.map +1 -0
  100. package/build/esm/stories/Cartesian.stories.d.ts +35 -0
  101. package/build/esm/stories/Cartesian.stories.js +41 -0
  102. package/build/esm/stories/Cartesian.stories.js.map +1 -0
  103. package/build/esm/stories/Grid.stories.d.ts +263 -0
  104. package/build/esm/stories/Grid.stories.js +39 -0
  105. package/build/esm/stories/Grid.stories.js.map +1 -0
  106. package/build/esm/stories/Mathbox.stories.d.ts +19 -0
  107. package/build/esm/stories/Mathbox.stories.js +10 -0
  108. package/build/esm/stories/Mathbox.stories.js.map +1 -0
  109. package/build/esm/stories/Play.stories.d.ts +37 -0
  110. package/build/esm/stories/Play.stories.js +29 -0
  111. package/build/esm/stories/Play.stories.js.map +1 -0
  112. package/build/esm/stories/Point.stories.d.ts +102 -0
  113. package/build/esm/stories/Point.stories.js +77 -0
  114. package/build/esm/stories/Point.stories.js.map +1 -0
  115. package/build/esm/stories/Surface.stories.d.ts +69 -0
  116. package/build/esm/stories/Surface.stories.js +43 -0
  117. package/build/esm/stories/Surface.stories.js.map +1 -0
  118. package/build/esm/stories/utils.d.ts +5 -0
  119. package/build/esm/stories/utils.js +42 -0
  120. package/build/esm/stories/utils.js.map +1 -0
  121. package/build/esm/testSetup.d.ts +1 -0
  122. package/build/esm/testSetup.js +3 -0
  123. package/build/esm/testSetup.js.map +1 -0
  124. package/build/esm/{types/testUtils.d.ts → testUtils.d.ts} +0 -0
  125. package/build/esm/testUtils.js +42 -0
  126. package/build/esm/testUtils.js.map +1 -0
  127. package/build/esm/threestrap/Renderer.d.ts +7 -0
  128. package/build/esm/threestrap/Renderer.js +13 -0
  129. package/build/esm/threestrap/Renderer.js.map +1 -0
  130. package/build/esm/threestrap/ThreestrapContext.d.ts +6 -0
  131. package/build/esm/threestrap/ThreestrapContext.js +12 -0
  132. package/build/esm/threestrap/ThreestrapContext.js.map +1 -0
  133. package/build/esm/threestrap/index.d.ts +2 -0
  134. package/build/esm/threestrap/index.js +2 -0
  135. package/build/esm/threestrap/index.js.map +1 -0
  136. package/build/esm/threestrap/threestrap.d.ts +13 -0
  137. package/build/esm/threestrap/threestrap.js +2 -0
  138. package/build/esm/threestrap/threestrap.js.map +1 -0
  139. package/package.json +39 -30
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __rest = (this && this.__rest) || function (s, e) {
37
+ var t = {};
38
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
39
+ t[p] = s[p];
40
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
41
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
42
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
43
+ t[p[i]] = s[p[i]];
44
+ }
45
+ return t;
46
+ };
47
+ exports.__esModule = true;
48
+ exports.LiveProps = exports.DefaultPoint = void 0;
49
+ var react_1 = __importStar(require("react"));
50
+ var utils_1 = require("./utils");
51
+ var components_1 = require("../components");
52
+ exports["default"] = {
53
+ title: "Point",
54
+ component: components_1.Point,
55
+ argTypes: {
56
+ color: {
57
+ type: "string",
58
+ defaultValue: "rgb(128, 128, 128)"
59
+ },
60
+ opacity: {
61
+ type: "number",
62
+ defaultValue: 1
63
+ },
64
+ points: {
65
+ type: "array",
66
+ defaultValue: [[1, 1, 1]]
67
+ },
68
+ size: {
69
+ type: "number",
70
+ defaultValue: 4
71
+ }
72
+ }
73
+ };
74
+ var Template = function (args) {
75
+ var points = args.points, otherArgs = __rest(args, ["points"]);
76
+ var _a = (0, react_1.useState)(null), data = _a[0], setData = _a[1];
77
+ return (react_1["default"].createElement(utils_1.CustomMathbox, { containerStyle: { height: 450 } },
78
+ react_1["default"].createElement(components_1.Cartesian, { range: [
79
+ [-5, 5],
80
+ [-5, 5],
81
+ [-5, 5],
82
+ ] },
83
+ react_1["default"].createElement(components_1.Grid, { axes: "xy" }),
84
+ react_1["default"].createElement(components_1.Grid, { axes: "xz" }),
85
+ react_1["default"].createElement(components_1.Array, { ref: setData, items: 1, channels: 3, data: [
86
+ [1, 1, 2],
87
+ [1, 1, 3],
88
+ ] }),
89
+ react_1["default"].createElement(components_1.Array, { items: 1, channels: 3, data: [
90
+ [1, 1, -2],
91
+ [1, 1, -3],
92
+ ] }),
93
+ react_1["default"].createElement(components_1.Point, __assign({ points: data }, otherArgs)))));
94
+ };
95
+ exports.DefaultPoint = Template.bind({});
96
+ exports.DefaultPoint.args = {};
97
+ exports.LiveProps = Template.bind({});
98
+ exports.LiveProps.args = {
99
+ liveProps: {
100
+ size: function (t) { return 20 * (1 + 0.5 * Math.sin(t)); }
101
+ }
102
+ };
103
+ //# sourceMappingURL=Point.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Point.stories.js","sourceRoot":"","sources":["../../../src/stories/Point.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAuC;AAGvC,iCAAkD;AAClD,4CAAwE;AAExE,qBAAe;IACb,KAAK,EAAE,OAAO;IACd,SAAS,EAAE,kBAAK;IAChB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,oBAAoB;SACnC;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,CAAC;SAChB;QACD,MAAM,EAAE;YACN,IAAI,EAAE,OAAO;YACb,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SAC1B;QACD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,CAAC;SAChB;KACF;CACmB,CAAA;AAEtB,IAAM,QAAQ,GAA8C,UAAC,IAAI;IACvD,IAAA,MAAM,GAAmB,IAAI,OAAvB,EAAK,SAAS,UAAK,IAAI,EAA/B,UAAwB,CAAF,CAAS;IAC/B,IAAA,KAAkB,IAAA,gBAAQ,EAAmC,IAAI,CAAC,EAAjE,IAAI,QAAA,EAAE,OAAO,QAAoD,CAAA;IACxE,OAAO,CACL,iCAAC,qBAAO,IAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;QACtC,iCAAC,sBAAS,IACR,KAAK,EAAE;gBACL,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aACR;YAED,iCAAC,iBAAI,IAAC,IAAI,EAAC,IAAI,GAAG;YAClB,iCAAC,iBAAI,IAAC,IAAI,EAAC,IAAI,GAAG;YAClB,iCAAC,kBAAO,IACN,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE;oBACJ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;oBACT,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;iBACV,GACD;YACF,iCAAC,kBAAO,IACN,KAAK,EAAE,CAAC,EACR,QAAQ,EAAE,CAAC,EACX,IAAI,EAAE;oBACJ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;oBACV,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;iBACX,GACD;YACF,iCAAC,kBAAK,aAAC,MAAM,EAAE,IAAI,IAAM,SAAS,EAAI,CAC5B,CACJ,CACX,CAAA;AACH,CAAC,CAAA;AAEY,QAAA,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC7C,oBAAY,CAAC,IAAI,GAAG,EAAE,CAAA;AAET,QAAA,SAAS,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1C,iBAAS,CAAC,IAAI,GAAG;IACf,SAAS,EAAE;QACT,IAAI,EAAE,UAAC,CAAS,IAAK,OAAA,EAAE,GAAG,CAAC,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAA5B,CAA4B;KAClD;CACF,CAAA"}
@@ -0,0 +1,69 @@
1
+ import React from "react";
2
+ import { Story, Meta } from "@storybook/react";
3
+ declare const _default: Meta<React.ForwardRefExoticComponent<import("mathbox").SurfaceProps & React.RefAttributes<import("mathbox").MathboxSelection<"surface">> & {
4
+ liveProps?: {
5
+ id?: ((t: number, dt: number) => import("mathbox").Optional<string>) | undefined;
6
+ classes?: ((t: number, dt: number) => import("mathbox").Optional<string | string[]>) | undefined;
7
+ visible?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
8
+ opacity?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
9
+ color?: ((t: number, dt: number) => string | number | number[] | import("three").Color | undefined) | undefined;
10
+ blending?: ((t: number, dt: number) => import("mathbox").Optional<import("mathbox").BlendingModes>) | undefined;
11
+ zWrite?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
12
+ zTest?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
13
+ zIndex?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
14
+ zBias?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
15
+ zOrder?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
16
+ width?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
17
+ depth?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
18
+ join?: ((t: number, dt: number) => unknown) | undefined;
19
+ stroke?: ((t: number, dt: number) => unknown) | undefined;
20
+ proximity?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
21
+ closed?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
22
+ fill?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
23
+ shaded?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
24
+ map?: ((t: number, dt: number) => any) | undefined;
25
+ normals?: ((t: number, dt: number) => any) | undefined;
26
+ lineBias?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
27
+ points?: ((t: number, dt: number) => any) | undefined;
28
+ colors?: ((t: number, dt: number) => any) | undefined;
29
+ lineX?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
30
+ lineY?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
31
+ crossed?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
32
+ closedX?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
33
+ closedY?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
34
+ } | undefined;
35
+ }>>;
36
+ export default _default;
37
+ export declare const DefaultCartesian: Story<import("mathbox").SurfaceProps & React.RefAttributes<import("mathbox").MathboxSelection<"surface">> & {
38
+ liveProps?: {
39
+ id?: ((t: number, dt: number) => import("mathbox").Optional<string>) | undefined;
40
+ classes?: ((t: number, dt: number) => import("mathbox").Optional<string | string[]>) | undefined;
41
+ visible?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
42
+ opacity?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
43
+ color?: ((t: number, dt: number) => string | number | number[] | import("three").Color | undefined) | undefined;
44
+ blending?: ((t: number, dt: number) => import("mathbox").Optional<import("mathbox").BlendingModes>) | undefined;
45
+ zWrite?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
46
+ zTest?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
47
+ zIndex?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
48
+ zBias?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
49
+ zOrder?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
50
+ width?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
51
+ depth?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
52
+ join?: ((t: number, dt: number) => unknown) | undefined;
53
+ stroke?: ((t: number, dt: number) => unknown) | undefined;
54
+ proximity?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
55
+ closed?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
56
+ fill?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
57
+ shaded?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
58
+ map?: ((t: number, dt: number) => any) | undefined;
59
+ normals?: ((t: number, dt: number) => any) | undefined;
60
+ lineBias?: ((t: number, dt: number) => import("mathbox").Optional<number>) | undefined;
61
+ points?: ((t: number, dt: number) => any) | undefined;
62
+ colors?: ((t: number, dt: number) => any) | undefined;
63
+ lineX?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
64
+ lineY?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
65
+ crossed?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
66
+ closedX?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
67
+ closedY?: ((t: number, dt: number) => import("mathbox").Optional<boolean>) | undefined;
68
+ } | undefined;
69
+ }>;
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __importDefault = (this && this.__importDefault) || function (mod) {
14
+ return (mod && mod.__esModule) ? mod : { "default": mod };
15
+ };
16
+ exports.__esModule = true;
17
+ exports.DefaultCartesian = void 0;
18
+ var react_1 = __importDefault(require("react"));
19
+ var utils_1 = require("./utils");
20
+ var components_1 = require("../components/components");
21
+ exports["default"] = {
22
+ title: "Surface",
23
+ component: components_1.Surface,
24
+ argTypes: {
25
+ color: {
26
+ type: "string",
27
+ defaultValue: "rgb(48,144,255)"
28
+ },
29
+ shaded: {
30
+ type: "boolean",
31
+ defaultValue: true
32
+ }
33
+ }
34
+ };
35
+ var Template = function (args) { return (react_1["default"].createElement(utils_1.CustomMathbox, { containerStyle: { height: 450 } },
36
+ react_1["default"].createElement(components_1.Cartesian, { range: [
37
+ [-5, 5],
38
+ [-2, 2],
39
+ [-5, 5],
40
+ ] },
41
+ react_1["default"].createElement(components_1.Grid, { axes: "xz" }),
42
+ react_1["default"].createElement(components_1.Area, { width: 64, height: 64, axes: ["x", "z"], expr: function (emit, x, z, i, j, t) {
43
+ var y = Math.sin(x - t) * Math.cos(z - t);
44
+ emit(x, y, z);
45
+ } }),
46
+ react_1["default"].createElement(components_1.Surface, __assign({}, args))))); };
47
+ exports.DefaultCartesian = Template.bind({});
48
+ exports.DefaultCartesian.args = {};
49
+ //# sourceMappingURL=Surface.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Surface.stories.js","sourceRoot":"","sources":["../../../src/stories/Surface.stories.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,gDAAyB;AAGzB,iCAAkD;AAClD,uDAAyE;AAEzE,qBAAe;IACb,KAAK,EAAE,SAAS;IAChB,SAAS,EAAE,oBAAO;IAClB,QAAQ,EAAE;QACR,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,iBAAiB;SAChC;QACD,MAAM,EAAE;YACN,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,IAAI;SACnB;KACF;CACsB,CAAA;AAEzB,IAAM,QAAQ,GAAgD,UAAC,IAAI,IAAK,OAAA,CACtE,iCAAC,qBAAO,IAAC,cAAc,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE;IACtC,iCAAC,sBAAS,IACR,KAAK,EAAE;YACL,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACP,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACR;QAED,iCAAC,iBAAI,IAAC,IAAI,EAAC,IAAI,GAAG;QAClB,iCAAC,iBAAI,IACH,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAChB,IAAI,EAAE,UAAC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,IAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBAC3C,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;YACf,CAAC,GACD;QACF,iCAAC,oBAAO,eAAK,IAAI,EAAI,CACX,CACJ,CACX,EAtBuE,CAsBvE,CAAA;AAEY,QAAA,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AACjD,wBAAgB,CAAC,IAAI,GAAG,EAAE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ import { ContainedMathbox } from "../components";
3
+ type MathboxProps = React.ComponentProps<typeof ContainedMathbox>;
4
+ export declare const CustomMathbox: (props: MathboxProps) => JSX.Element;
5
+ export {};
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __rest = (this && this.__rest) || function (s, e) {
37
+ var t = {};
38
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
39
+ t[p] = s[p];
40
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
41
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
42
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
43
+ t[p[i]] = s[p[i]];
44
+ }
45
+ return t;
46
+ };
47
+ exports.__esModule = true;
48
+ exports.CustomMathbox = void 0;
49
+ var react_1 = __importStar(require("react"));
50
+ var OrbitControls_1 = require("three/examples/jsm/controls/OrbitControls");
51
+ var components_1 = require("../components");
52
+ var storybookDefaultMathboxOptions = {
53
+ plugins: ["core", "controls", "cursor"],
54
+ controls: {
55
+ klass: OrbitControls_1.OrbitControls
56
+ }
57
+ };
58
+ var CustomMathbox = function (props) {
59
+ var overrides = props.options, others = __rest(props, ["options"]);
60
+ var options = (0, react_1.useMemo)(function () { return (__assign(__assign({}, storybookDefaultMathboxOptions), (overrides !== null && overrides !== void 0 ? overrides : {}))); }, [overrides]);
61
+ var setup = (0, react_1.useCallback)(function (mathbox) {
62
+ if (mathbox === null)
63
+ return;
64
+ mathbox.three.camera.position.set(1, 1, 2);
65
+ }, []);
66
+ return (react_1["default"].createElement(components_1.ContainedMathbox, __assign({ ref: setup, options: options }, others), props.children));
67
+ };
68
+ exports.CustomMathbox = CustomMathbox;
69
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/stories/utils.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAmD;AAEnD,2EAAyE;AACzE,4CAAgD;AAIhD,IAAM,8BAA8B,GAAG;IACrC,OAAO,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IACvC,QAAQ,EAAE;QACR,KAAK,EAAE,6BAAa;KACrB;CACF,CAAA;AAEM,IAAM,aAAa,GAAG,UAAC,KAAmB;IACvC,IAAS,SAAS,GAAgB,KAAK,QAArB,EAAK,MAAM,UAAK,KAAK,EAAzC,WAAiC,CAAF,CAAU;IAC/C,IAAM,OAAO,GAAG,IAAA,eAAO,EACrB,cAAM,OAAA,uBACD,8BAA8B,GAC9B,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC,EACpB,EAHI,CAGJ,EACF,CAAC,SAAS,CAAC,CACZ,CAAA;IACD,IAAM,KAAK,GAAG,IAAA,mBAAW,EAAC,UAAC,OAAwC;QACjE,IAAI,OAAO,KAAK,IAAI;YAAE,OAAM;QAC5B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC5C,CAAC,EAAE,EAAE,CAAC,CAAA;IACN,OAAO,CACL,iCAAC,6BAAgB,aAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,IAAM,MAAM,GACvD,KAAK,CAAC,QAAQ,CACE,CACpB,CAAA;AACH,CAAC,CAAA;AAlBY,QAAA,aAAa,iBAkBzB"}
File without changes
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var testUtils_1 = require("./testUtils");
4
+ HTMLCanvasElement.prototype.getContext = testUtils_1.getMockContext;
5
+ //# sourceMappingURL=testSetup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testSetup.js","sourceRoot":"","sources":["../../src/testSetup.ts"],"names":[],"mappings":";;AAAA,yCAA4C;AAE5C,iBAAiB,CAAC,SAAS,CAAC,UAAU,GAAG,0BAAc,CAAA"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.getMockContext = void 0;
4
+ /**
5
+ * A mock that uses proxies to create properties as they are accessed. Supports
6
+ * function calls and toPrimitive.
7
+ *
8
+ * @param specifics Allows specifying specific values for properties. If a prop
9
+ * exists on `specifics`, then that value will be used when the property is
10
+ * accessed on automock.
11
+ * @returns
12
+ */
13
+ var getAutomock = function (specifics) {
14
+ var autmockSeed = jest.fn();
15
+ var handler = {
16
+ get: function (target, prop) {
17
+ if (prop === Symbol.toPrimitive) {
18
+ return function () { return "Automock: ".concat(JSON.stringify(specifics)); };
19
+ }
20
+ if (specifics && Reflect.has(specifics, prop)) {
21
+ var value = Reflect.get(specifics, prop);
22
+ return value;
23
+ }
24
+ if (!Reflect.has(target, prop)) {
25
+ Reflect.set(target, prop, getAutomock());
26
+ }
27
+ return Reflect.get(target, prop);
28
+ },
29
+ apply: function () {
30
+ return getAutomock();
31
+ }
32
+ };
33
+ return new Proxy(autmockSeed, handler);
34
+ };
35
+ var getMockContext = function () {
36
+ var mockContext = getAutomock({
37
+ getParameter: jest.fn(function (name) {
38
+ if (name === mockContext.VERSION)
39
+ return "Fake version!";
40
+ return getAutomock();
41
+ })
42
+ });
43
+ return mockContext;
44
+ };
45
+ exports.getMockContext = getMockContext;
46
+ //# sourceMappingURL=testUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testUtils.js","sourceRoot":"","sources":["../../src/testUtils.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;GAQG;AACH,IAAM,WAAW,GAAG,UAClB,SAAa;IAEb,IAAM,WAAW,GAAG,IAAI,CAAC,EAAE,EAAE,CAAA;IAC7B,IAAM,OAAO,GAAG;QACd,GAAG,YAAC,MAAgB,EAAE,IAAqB;YACzC,IAAI,IAAI,KAAK,MAAM,CAAC,WAAW,EAAE;gBAC/B,OAAO,cAAM,OAAA,oBAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAE,EAAxC,CAAwC,CAAA;aACtD;YACD,IAAI,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE;gBAC7C,IAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;gBAC1C,OAAO,KAAK,CAAA;aACb;YACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE;gBAC9B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAA;aACzC;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAClC,CAAC;QACD,KAAK;YACH,OAAO,WAAW,EAAE,CAAA;QACtB,CAAC;KACF,CAAA;IACD,OAAO,IAAI,KAAK,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;AACxC,CAAC,CAAA;AAEM,IAAM,cAAc,GAAG;IAC5B,IAAM,WAAW,GAAG,WAAW,CAAC;QAC9B,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,UAAC,IAAI;YACzB,IAAI,IAAI,KAAK,WAAW,CAAC,OAAO;gBAAE,OAAO,eAAe,CAAA;YACxD,OAAO,WAAW,EAAE,CAAA;QACtB,CAAC,CAAC;KACH,CAAC,CAAA;IACF,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AARY,QAAA,cAAc,kBAQ1B"}
@@ -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
+ exports.__esModule = 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,qBAAe,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
+ exports.__esModule = 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,qBAAe,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,2 @@
1
+ export { default as Renderer } from "./Renderer";
2
+ export type { Threestrap } from "./threestrap";
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ exports.__esModule = true;
14
+ exports.Renderer = void 0;
15
+ var Renderer_1 = require("./Renderer");
16
+ __createBinding(exports, Renderer_1, "default", "Renderer");
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/threestrap/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA,uCAAgD;AAAvC,4DAAmB"}
@@ -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
+ exports.__esModule = 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,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,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, { useEffect, 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
+ useEffect(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
+ useEffect(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,SAAS,EACT,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,SAAS,CAAC;QACR,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,SAAS,CAAC;QACR,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"}
@@ -1,4 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import { MathboxSelection } from "mathbox";
3
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">;
4
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,CAAC,4DAA4D,CAAC,CAAA;KAC9E;IACD,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA;AAED,eAAe,iBAAiB,CAAA;AAEhC,OAAO,EAAE,UAAU,EAAE,CAAA"}