@pie-lib/graphing-solution-set 4.1.0-beta.9 → 5.0.0-next.20261002100925

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 (229) hide show
  1. package/dist/_virtual/_rolldown/runtime.js +20 -0
  2. package/dist/autosize-input.d.ts +10 -0
  3. package/dist/autosize-input.js +66 -0
  4. package/dist/axis/arrow.d.ts +13 -0
  5. package/dist/axis/arrow.js +34 -0
  6. package/dist/axis/axes.d.ts +132 -0
  7. package/dist/axis/axes.js +214 -0
  8. package/dist/axis/index.d.ts +10 -0
  9. package/dist/bg.d.ts +51 -0
  10. package/dist/bg.js +44 -0
  11. package/dist/container/actions.d.ts +15 -0
  12. package/dist/container/actions.js +7 -0
  13. package/dist/container/index.d.ts +58 -0
  14. package/dist/container/index.js +48 -0
  15. package/dist/container/marks.d.ts +10 -0
  16. package/dist/container/marks.js +11 -0
  17. package/dist/container/middleware.d.ts +10 -0
  18. package/dist/container/middleware.js +4 -0
  19. package/dist/container/reducer.d.ts +14 -0
  20. package/dist/container/reducer.js +7 -0
  21. package/dist/coordinates-label.d.ts +50 -0
  22. package/dist/coordinates-label.js +46 -0
  23. package/dist/graph-with-controls.d.ts +85 -0
  24. package/dist/graph-with-controls.js +155 -0
  25. package/dist/graph.d.ts +119 -0
  26. package/dist/graph.js +221 -0
  27. package/dist/grid-setup.d.ts +27 -0
  28. package/dist/grid-setup.js +307 -0
  29. package/dist/grid.d.ts +43 -0
  30. package/dist/grid.js +59 -0
  31. package/dist/index.d.ts +14 -0
  32. package/dist/index.js +6 -0
  33. package/dist/labels.d.ts +73 -0
  34. package/dist/labels.js +134 -0
  35. package/dist/mark-label.d.ts +50 -0
  36. package/dist/mark-label.js +84 -0
  37. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Axis.js +67 -0
  38. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +66 -0
  39. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Ticks.js +39 -0
  40. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  41. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  42. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +13 -0
  43. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  44. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  45. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickPosition.js +14 -0
  46. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/Grid.js +43 -0
  47. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridColumns.js +46 -0
  48. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridRows.js +46 -0
  49. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  50. package/dist/node_modules/.bun/@visx_group@4.0.0_d84c32d47042070f/node_modules/@visx/group/esm/Group.js +17 -0
  51. package/dist/node_modules/.bun/@visx_point@4.0.0/node_modules/@visx/point/esm/Point.js +20 -0
  52. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  53. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/getTicks.js +7 -0
  54. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  55. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/Line.js +27 -0
  56. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/Text.js +27 -0
  57. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/hooks/useText.js +68 -0
  58. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/getStringWidth.js +19 -0
  59. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/memoize.js +13 -0
  60. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +32 -0
  61. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +33 -0
  62. package/dist/node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js +32 -0
  63. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  64. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  65. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  66. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  67. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  68. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  69. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  70. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  71. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  72. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  73. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +198 -0
  74. package/dist/tool-menu.d.ts +21 -0
  75. package/dist/tool-menu.js +188 -0
  76. package/dist/tools/index.d.ts +17 -0
  77. package/dist/tools/index.js +12 -0
  78. package/dist/tools/line/component.d.ts +113 -0
  79. package/dist/tools/line/component.js +58 -0
  80. package/dist/tools/line/index.d.ts +13 -0
  81. package/dist/tools/line/index.js +6 -0
  82. package/dist/tools/polygon/component.d.ts +117 -0
  83. package/dist/tools/polygon/component.js +194 -0
  84. package/dist/tools/polygon/index.d.ts +19 -0
  85. package/dist/tools/polygon/index.js +55 -0
  86. package/dist/tools/polygon/polygon.d.ts +122 -0
  87. package/dist/tools/polygon/polygon.js +62 -0
  88. package/dist/tools/shared/arrow-head.d.ts +43 -0
  89. package/dist/tools/shared/arrow-head.js +37 -0
  90. package/dist/tools/shared/line/index.d.ts +240 -0
  91. package/dist/tools/shared/line/index.js +320 -0
  92. package/dist/tools/shared/point/arrow-point.d.ts +57 -0
  93. package/dist/tools/shared/point/arrow-point.js +47 -0
  94. package/dist/tools/shared/point/arrow.d.ts +46 -0
  95. package/dist/tools/shared/point/arrow.js +36 -0
  96. package/dist/tools/shared/point/base-point.d.ts +50 -0
  97. package/dist/tools/shared/point/base-point.js +88 -0
  98. package/dist/tools/shared/point/index.d.ts +217 -0
  99. package/dist/tools/shared/point/index.js +51 -0
  100. package/dist/tools/shared/styles.d.ts +24 -0
  101. package/dist/tools/shared/styles.js +17 -0
  102. package/dist/tools/shared/types.d.ts +15 -0
  103. package/dist/tools/shared/types.js +10 -0
  104. package/dist/undo-redo.d.ts +20 -0
  105. package/dist/undo-redo.js +33 -0
  106. package/dist/use-debounce.d.ts +9 -0
  107. package/dist/use-debounce.js +13 -0
  108. package/dist/utils.d.ts +58 -0
  109. package/dist/utils.js +72 -0
  110. package/package.json +52 -42
  111. package/CHANGELOG.json +0 -1
  112. package/CHANGELOG.md +0 -449
  113. package/lib/axis/arrow.js +0 -79
  114. package/lib/axis/arrow.js.map +0 -1
  115. package/lib/axis/axes.js +0 -327
  116. package/lib/axis/axes.js.map +0 -1
  117. package/lib/axis/index.js +0 -21
  118. package/lib/axis/index.js.map +0 -1
  119. package/lib/bg.js +0 -114
  120. package/lib/bg.js.map +0 -1
  121. package/lib/container/actions.js +0 -18
  122. package/lib/container/actions.js.map +0 -1
  123. package/lib/container/index.js +0 -129
  124. package/lib/container/index.js.map +0 -1
  125. package/lib/container/marks.js +0 -22
  126. package/lib/container/marks.js.map +0 -1
  127. package/lib/container/middleware.js +0 -19
  128. package/lib/container/middleware.js.map +0 -1
  129. package/lib/container/reducer.js +0 -18
  130. package/lib/container/reducer.js.map +0 -1
  131. package/lib/coordinates-label.js +0 -77
  132. package/lib/coordinates-label.js.map +0 -1
  133. package/lib/graph-with-controls.js +0 -297
  134. package/lib/graph-with-controls.js.map +0 -1
  135. package/lib/graph.js +0 -353
  136. package/lib/graph.js.map +0 -1
  137. package/lib/grid-setup.js +0 -414
  138. package/lib/grid-setup.js.map +0 -1
  139. package/lib/grid.js +0 -131
  140. package/lib/grid.js.map +0 -1
  141. package/lib/index.js +0 -40
  142. package/lib/index.js.map +0 -1
  143. package/lib/labels.js +0 -199
  144. package/lib/labels.js.map +0 -1
  145. package/lib/mark-label.js +0 -159
  146. package/lib/mark-label.js.map +0 -1
  147. package/lib/toggle-bar.js +0 -248
  148. package/lib/toggle-bar.js.map +0 -1
  149. package/lib/tool-menu.js +0 -218
  150. package/lib/tool-menu.js.map +0 -1
  151. package/lib/tools/index.js +0 -24
  152. package/lib/tools/index.js.map +0 -1
  153. package/lib/tools/line/component.js +0 -92
  154. package/lib/tools/line/component.js.map +0 -1
  155. package/lib/tools/line/index.js +0 -11
  156. package/lib/tools/line/index.js.map +0 -1
  157. package/lib/tools/polygon/component.js +0 -358
  158. package/lib/tools/polygon/component.js.map +0 -1
  159. package/lib/tools/polygon/index.js +0 -89
  160. package/lib/tools/polygon/index.js.map +0 -1
  161. package/lib/tools/polygon/line.js +0 -114
  162. package/lib/tools/polygon/line.js.map +0 -1
  163. package/lib/tools/polygon/polygon.js +0 -128
  164. package/lib/tools/polygon/polygon.js.map +0 -1
  165. package/lib/tools/shared/arrow-head.js +0 -62
  166. package/lib/tools/shared/arrow-head.js.map +0 -1
  167. package/lib/tools/shared/line/index.js +0 -539
  168. package/lib/tools/shared/line/index.js.map +0 -1
  169. package/lib/tools/shared/line/line-path.js +0 -121
  170. package/lib/tools/shared/line/line-path.js.map +0 -1
  171. package/lib/tools/shared/line/with-root-edge.js +0 -121
  172. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  173. package/lib/tools/shared/point/arrow-point.js +0 -86
  174. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  175. package/lib/tools/shared/point/arrow.js +0 -70
  176. package/lib/tools/shared/point/arrow.js.map +0 -1
  177. package/lib/tools/shared/point/base-point.js +0 -137
  178. package/lib/tools/shared/point/base-point.js.map +0 -1
  179. package/lib/tools/shared/point/index.js +0 -80
  180. package/lib/tools/shared/point/index.js.map +0 -1
  181. package/lib/tools/shared/styles.js +0 -26
  182. package/lib/tools/shared/styles.js.map +0 -1
  183. package/lib/tools/shared/types.js +0 -15
  184. package/lib/tools/shared/types.js.map +0 -1
  185. package/lib/undo-redo.js +0 -67
  186. package/lib/undo-redo.js.map +0 -1
  187. package/lib/use-debounce.js +0 -25
  188. package/lib/use-debounce.js.map +0 -1
  189. package/lib/utils.js +0 -235
  190. package/lib/utils.js.map +0 -1
  191. package/src/axis/arrow.jsx +0 -57
  192. package/src/axis/axes.jsx +0 -284
  193. package/src/axis/index.js +0 -3
  194. package/src/bg.jsx +0 -96
  195. package/src/container/actions.js +0 -8
  196. package/src/container/index.jsx +0 -93
  197. package/src/container/marks.js +0 -14
  198. package/src/container/middleware.js +0 -7
  199. package/src/container/reducer.js +0 -5
  200. package/src/coordinates-label.jsx +0 -62
  201. package/src/graph-with-controls.jsx +0 -242
  202. package/src/graph.jsx +0 -333
  203. package/src/grid-setup.jsx +0 -432
  204. package/src/grid.jsx +0 -133
  205. package/src/index.js +0 -7
  206. package/src/labels.jsx +0 -173
  207. package/src/mark-label.jsx +0 -125
  208. package/src/toggle-bar.jsx +0 -221
  209. package/src/tool-menu.jsx +0 -235
  210. package/src/tools/index.js +0 -8
  211. package/src/tools/line/component.jsx +0 -77
  212. package/src/tools/line/index.js +0 -4
  213. package/src/tools/polygon/component.jsx +0 -324
  214. package/src/tools/polygon/index.js +0 -52
  215. package/src/tools/polygon/line.jsx +0 -80
  216. package/src/tools/polygon/polygon.jsx +0 -93
  217. package/src/tools/shared/arrow-head.jsx +0 -46
  218. package/src/tools/shared/line/index.jsx +0 -471
  219. package/src/tools/shared/line/line-path.jsx +0 -85
  220. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  221. package/src/tools/shared/point/arrow-point.jsx +0 -60
  222. package/src/tools/shared/point/arrow.jsx +0 -40
  223. package/src/tools/shared/point/base-point.jsx +0 -113
  224. package/src/tools/shared/point/index.jsx +0 -58
  225. package/src/tools/shared/styles.js +0 -20
  226. package/src/tools/shared/types.js +0 -8
  227. package/src/undo-redo.jsx +0 -37
  228. package/src/use-debounce.js +0 -13
  229. package/src/utils.js +0 -230
@@ -0,0 +1,320 @@
1
+ import { equalPoints as e, getMiddleOfTwoPoints as t, sameAxes as n } from "../../../utils.js";
2
+ import { correct as r, disabled as i, incorrect as a, missing as o } from "../styles.js";
3
+ import { MarkLabel as s } from "../../../mark-label.js";
4
+ import { BasePoint as c } from "../point/index.js";
5
+ import l from "react";
6
+ import u from "prop-types";
7
+ import { cloneDeep as d, isEmpty as f, isEqual as p } from "@pie-element/shared-lodash";
8
+ import { gridDraggable as m, trig as h, types as g, utils as _ } from "@pie-lib/plot";
9
+ import { jsx as v, jsxs as y } from "react/jsx-runtime";
10
+ import { color as b } from "@pie-lib/render-ui";
11
+ import x from "react-dom";
12
+ //#region src/tools/shared/line/index.tsx
13
+ var S = (t, n) => () => ({
14
+ type: t,
15
+ Component: n,
16
+ addPoint: (n, r) => r && e(r.root, n) ? r : r ? e(n, r.from) ? { ...r } : {
17
+ ...r,
18
+ building: !1,
19
+ to: n
20
+ } : {
21
+ type: t,
22
+ building: !0,
23
+ from: n
24
+ }
25
+ }), C = (e) => class extends l.Component {
26
+ static propTypes = {
27
+ ...g.ToolPropTypeFields,
28
+ graphProps: g.GraphPropsType.isRequired
29
+ };
30
+ constructor(e) {
31
+ super(e), this.state = {};
32
+ }
33
+ startDrag = () => this.setState({ mark: { ...this.props.mark } });
34
+ stopDrag = () => {
35
+ let { onChange: e, mark: t } = this.props, r = { ...this.state.mark };
36
+ this.setState({ mark: void 0 }, () => {
37
+ let { type: i } = r, a = i && (i === "parabola" || i === "sine" || i === "absolute" || i === "exponential") && n(r.from, r.to);
38
+ !a && i && i === "exponential" && r.from && r.to && (a = r.from.y === 0 || r.to.y === 0 || r.from.y * r.to.y < 0), !p(t, r) && !a && e(t, r);
39
+ });
40
+ };
41
+ changeMark = ({ from: e, to: t, middle: n }) => {
42
+ let r = {
43
+ ...this.state.mark,
44
+ from: e,
45
+ to: t
46
+ };
47
+ n && (r = {
48
+ ...r,
49
+ middle: n
50
+ }), this.setState({ mark: r });
51
+ };
52
+ changeMarkProps = ({ from: e, to: t, middle: n }) => {
53
+ let { onChange: r, mark: i } = this.props, a = {
54
+ ...i,
55
+ ...this.state.mark
56
+ };
57
+ e && (a = {
58
+ ...a,
59
+ from: e
60
+ }), t && (a = {
61
+ ...a,
62
+ to: t
63
+ }), n && (a = {
64
+ ...a,
65
+ middle: n
66
+ }), p(i, a) || r(i, a);
67
+ };
68
+ render() {
69
+ let { graphProps: t, onClick: n, labelNode: r, labelModeEnabled: i, coordinatesOnHover: a, gssLineData: o } = this.props, s = this.state.mark ? this.state.mark : this.props.mark, c = d(s.from), l = d(s.to), u = d(s.middle);
70
+ return c && s.isBackground && (c.disabled = !0), l && s.isBackground && (l.disabled = !0), u && s.isBackground && (u.disabled = !0), /* @__PURE__ */ v(e, {
71
+ disabled: s.disabled,
72
+ coordinatesOnHover: a,
73
+ correctness: s.correctness,
74
+ from: c,
75
+ to: l,
76
+ middle: u,
77
+ graphProps: t,
78
+ fill: s && s.fill,
79
+ gssLineData: o,
80
+ onChange: this.changeMark,
81
+ changeMarkProps: this.changeMarkProps,
82
+ onClick: n,
83
+ onDragStart: this.startDrag,
84
+ onDragStop: this.stopDrag,
85
+ labelNode: r,
86
+ labelModeEnabled: i
87
+ });
88
+ }
89
+ }, w = () => ({
90
+ bounds: (e, { domain: t, range: n }) => {
91
+ let r = _.lineToArea(e.from, e.to);
92
+ return _.bounds(r, t, n);
93
+ },
94
+ anchorPoint: (e) => {
95
+ let { from: t } = e;
96
+ return t;
97
+ },
98
+ fromDelta: (e, t) => {
99
+ let { from: n, to: r } = e;
100
+ return {
101
+ from: _.point(n).add(_.point(t)),
102
+ to: _.point(r).add(_.point(t))
103
+ };
104
+ }
105
+ }), T = (n, r) => {
106
+ let i = m(w())(n), a = r && r.from ? r.from : c, o = r && r.to ? r.to : c;
107
+ class d extends l.Component {
108
+ static propTypes = {
109
+ coordinatesOnHover: u.bool,
110
+ graphProps: g.GraphPropsType,
111
+ from: g.PointType,
112
+ to: g.PointType,
113
+ middle: g.PointType,
114
+ onChange: u.func,
115
+ onDragStart: u.func,
116
+ onDragStop: u.func,
117
+ onClick: u.func,
118
+ correctness: u.string,
119
+ fill: u.string,
120
+ gssLineData: u.object,
121
+ disabled: u.bool,
122
+ labelNode: u.object,
123
+ labelModeEnabled: u.bool,
124
+ changeMarkProps: u.func
125
+ };
126
+ onChangePoint = (n) => {
127
+ let { middle: r, onChange: i } = this.props, { from: a, to: o } = n;
128
+ e(a, o) || (r && (n.middle = {
129
+ ...r,
130
+ ...t(a, o)
131
+ }), i(n));
132
+ };
133
+ dragComp = ({ from: e, to: n }) => {
134
+ let { from: r, to: i, onChange: a, middle: o } = this.props;
135
+ r.label && (e.label = r.label), i.label && (n.label = i.label);
136
+ let s = {
137
+ from: e,
138
+ to: n
139
+ };
140
+ o && (s.middle = {
141
+ ...o,
142
+ ...t(e, n)
143
+ }), a(s);
144
+ };
145
+ dragFrom = (t) => {
146
+ let { from: n, to: r } = this.props;
147
+ n.label && (t.label = n.label), e(t, r) || this.onChangePoint({
148
+ from: t,
149
+ to: r
150
+ });
151
+ };
152
+ dragTo = (t) => {
153
+ let { from: n, to: r } = this.props;
154
+ r.label && (t.label = r.label), e(n, t) || this.onChangePoint({
155
+ from: n,
156
+ to: t
157
+ });
158
+ };
159
+ labelChange = (e, t) => {
160
+ let { changeMarkProps: n } = this.props, r = { ...e };
161
+ (!e.label || f(e.label)) && delete r.label, n({ [t]: r });
162
+ };
163
+ clickPoint = (e, n, r) => {
164
+ let { changeMarkProps: i, disabled: a, from: o, to: s, labelModeEnabled: c, onClick: l } = this.props;
165
+ if (!c) {
166
+ l(e || r);
167
+ return;
168
+ }
169
+ a || (n === "middle" && !e && o && s && (e = {
170
+ ...e,
171
+ ...t(o, s)
172
+ }), i({
173
+ from: o,
174
+ to: s,
175
+ [n]: {
176
+ label: "",
177
+ ...e
178
+ }
179
+ }), this.input[n] && this.input[n].focus());
180
+ };
181
+ input = {};
182
+ render() {
183
+ let { coordinatesOnHover: e, graphProps: t, fill: n, gssLineData: r, onDragStart: c, onDragStop: l, from: u, to: d, middle: f, disabled: p, correctness: m, onClick: g, labelNode: _, labelModeEnabled: b } = this.props, S = {
184
+ graphProps: t,
185
+ fill: n,
186
+ onDragStart: c,
187
+ onDragStop: l,
188
+ disabled: p,
189
+ correctness: m,
190
+ onClick: g
191
+ };
192
+ r && r.selectedTool === "solutionSet" && (S = {
193
+ graphProps: t,
194
+ fill: n,
195
+ disabled: p,
196
+ correctness: m,
197
+ onClick: g
198
+ });
199
+ let C = d ? h.toDegrees(h.angle(u, d)) : 0, w = null, T = null, E = null;
200
+ return _ && (u && Object.prototype.hasOwnProperty.call(u, "label") && (w = x.createPortal(/* @__PURE__ */ v(s, {
201
+ inputRef: (e) => this.input.from = e,
202
+ disabled: !b,
203
+ mark: u,
204
+ graphProps: t,
205
+ onChange: (e) => this.labelChange({
206
+ ...u,
207
+ label: e
208
+ }, "from")
209
+ }), _)), d && Object.prototype.hasOwnProperty.call(d, "label") && (T = x.createPortal(/* @__PURE__ */ v(s, {
210
+ inputRef: (e) => this.input.to = e,
211
+ disabled: !b,
212
+ mark: d,
213
+ graphProps: t,
214
+ onChange: (e) => this.labelChange({
215
+ ...d,
216
+ label: e
217
+ }, "to")
218
+ }), _)), f && Object.prototype.hasOwnProperty.call(f, "label") && (E = x.createPortal(/* @__PURE__ */ v(s, {
219
+ inputRef: (e) => this.input.middle = e,
220
+ disabled: !b,
221
+ mark: f,
222
+ graphProps: t,
223
+ onChange: (e) => this.labelChange({
224
+ ...f,
225
+ label: e
226
+ }, "middle")
227
+ }), _))), r && r.selectedTool === "solutionSet" ? /* @__PURE__ */ y("g", { children: [
228
+ d && /* @__PURE__ */ v(i, {
229
+ from: u,
230
+ to: d,
231
+ middle: f,
232
+ ...S
233
+ }),
234
+ E,
235
+ /* @__PURE__ */ v(a, {
236
+ x: u.x,
237
+ y: u.y,
238
+ labelNode: _,
239
+ coordinatesOnHover: e,
240
+ ...S
241
+ }),
242
+ w,
243
+ d && /* @__PURE__ */ v(o, {
244
+ x: d.x,
245
+ y: d.y,
246
+ angle: C,
247
+ labelNode: _,
248
+ coordinatesOnHover: e,
249
+ ...S
250
+ }),
251
+ T
252
+ ] }) : /* @__PURE__ */ y("g", { children: [
253
+ d && /* @__PURE__ */ v(i, {
254
+ from: u,
255
+ to: d,
256
+ middle: f,
257
+ onDrag: this.dragComp,
258
+ ...S,
259
+ onClick: (e) => this.clickPoint(f, "middle", e)
260
+ }),
261
+ E,
262
+ /* @__PURE__ */ v(a, {
263
+ x: u.x,
264
+ y: u.y,
265
+ labelNode: _,
266
+ coordinatesOnHover: e,
267
+ onDrag: this.dragFrom,
268
+ ...S,
269
+ onClick: (e) => this.clickPoint(u, "from", e)
270
+ }),
271
+ w,
272
+ d && /* @__PURE__ */ v(o, {
273
+ x: d.x,
274
+ y: d.y,
275
+ angle: C,
276
+ labelNode: _,
277
+ coordinatesOnHover: e,
278
+ onDrag: this.dragTo,
279
+ ...S,
280
+ onClick: (e) => this.clickPoint(d, "to", e)
281
+ }),
282
+ T
283
+ ] });
284
+ }
285
+ }
286
+ return d;
287
+ }, E = {
288
+ line: () => ({
289
+ fill: "transparent",
290
+ stroke: b.defaults.BLACK,
291
+ strokeWidth: 4,
292
+ transition: "stroke 200ms ease-in, stroke-width 200ms ease-in",
293
+ "&:hover": {
294
+ strokeWidth: 6,
295
+ stroke: b.defaults.BLACK
296
+ }
297
+ }),
298
+ dashedLine: () => ({
299
+ fill: "transparent",
300
+ stroke: b.defaults.BLACK,
301
+ strokeWidth: 4,
302
+ transition: "stroke 200ms ease-in, stroke-width 200ms ease-in",
303
+ "&:hover": {
304
+ strokeWidth: 6,
305
+ stroke: b.defaults.BLACK
306
+ },
307
+ strokeDasharray: "3,3"
308
+ }),
309
+ arrow: () => ({ fill: b.defaults.SECONDARY }),
310
+ disabledArrow: () => ({ ...i() }),
311
+ disabled: () => ({
312
+ ...i("stroke"),
313
+ strokeWidth: 2
314
+ }),
315
+ correct: (e, t) => ({ ...r(t) }),
316
+ incorrect: (e, t) => ({ ...a(t) }),
317
+ missing: (e, t) => ({ ...o(t) })
318
+ };
319
+ //#endregion
320
+ export { T as lineBase, S as lineTool, C as lineToolComponent, E as styles };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/graphing-solution-set/src/tools/shared/point/arrow-point.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class RawArrow extends React.Component {
12
+ static propTypes: {
13
+ classes: PropTypes.Requireable<object>;
14
+ className: PropTypes.Requireable<string>;
15
+ correctness: PropTypes.Requireable<string>;
16
+ disabled: PropTypes.Requireable<boolean>;
17
+ x: PropTypes.Requireable<number>;
18
+ y: PropTypes.Requireable<number>;
19
+ from: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
20
+ x: PropTypes.Requireable<number>;
21
+ y: PropTypes.Requireable<number>;
22
+ }>>>;
23
+ to: PropTypes.Requireable<PropTypes.InferProps<{
24
+ x: PropTypes.Requireable<number>;
25
+ y: PropTypes.Requireable<number>;
26
+ }>>;
27
+ graphProps: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
28
+ scale: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
29
+ x: PropTypes.Validator<(...args: any[]) => any>;
30
+ y: PropTypes.Validator<(...args: any[]) => any>;
31
+ }>>>;
32
+ snap: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
33
+ x: PropTypes.Validator<(...args: any[]) => any>;
34
+ y: PropTypes.Validator<(...args: any[]) => any>;
35
+ }>>>;
36
+ domain: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
37
+ min: PropTypes.Validator<number>;
38
+ max: PropTypes.Validator<number>;
39
+ step: PropTypes.Requireable<number>;
40
+ }>>>;
41
+ range: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
42
+ min: PropTypes.Validator<number>;
43
+ max: PropTypes.Validator<number>;
44
+ step: PropTypes.Requireable<number>;
45
+ }>>>;
46
+ size: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
47
+ width: PropTypes.Validator<number>;
48
+ height: PropTypes.Validator<number>;
49
+ }>>>;
50
+ }>>>;
51
+ };
52
+ static defaultProps: {
53
+ from: {};
54
+ to: {};
55
+ };
56
+ render(): React.JSX.Element;
57
+ }
@@ -0,0 +1,47 @@
1
+ import { arrowDimensions as e, getAngleDeg as t } from "../../../utils.js";
2
+ import { clsx as n } from "../../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
3
+ import r from "react";
4
+ import i from "prop-types";
5
+ import { isEqual as a } from "@pie-element/shared-lodash";
6
+ import { types as o } from "@pie-lib/plot";
7
+ import { jsx as s } from "react/jsx-runtime";
8
+ //#region src/tools/shared/point/arrow-point.tsx
9
+ var c = class extends r.Component {
10
+ static propTypes = {
11
+ classes: i.object,
12
+ className: i.string,
13
+ correctness: i.string,
14
+ disabled: i.bool,
15
+ x: i.number,
16
+ y: i.number,
17
+ from: i.shape({
18
+ x: i.number,
19
+ y: i.number
20
+ }).isRequired,
21
+ to: i.shape({
22
+ x: i.number,
23
+ y: i.number
24
+ }),
25
+ graphProps: o.GraphPropsType.isRequired
26
+ };
27
+ static defaultProps = {
28
+ from: {},
29
+ to: {}
30
+ };
31
+ render() {
32
+ let { classes: r, className: i, x: o, y: c, disabled: l, correctness: u, graphProps: d, from: f, to: p, ...m } = this.props, { scale: h } = d, g = t(f.x, f.y, p.x, p.y), _ = "";
33
+ return _ = a(f, p) ? "0,0 0,0 0,0" : `0,0 ${e.vector},${e.vector * 2}
34
+ -${e.vector},${e.vector * 2}`, /* @__PURE__ */ s("g", {
35
+ className: n(r.point, l && r.disabled, r[u], i),
36
+ ...m,
37
+ children: /* @__PURE__ */ s("polygon", {
38
+ points: _,
39
+ transform: `
40
+ translate(${h.x(o)}, ${h.y(c)})
41
+ rotate(${g} 0 0)`
42
+ })
43
+ });
44
+ }
45
+ };
46
+ //#endregion
47
+ export { c as RawArrow };
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/graphing-solution-set/src/tools/shared/point/arrow.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export default class Arrow extends React.Component {
12
+ static propTypes: {
13
+ classes: PropTypes.Requireable<object>;
14
+ className: PropTypes.Requireable<string>;
15
+ correctness: PropTypes.Requireable<string>;
16
+ disabled: PropTypes.Requireable<boolean>;
17
+ x: PropTypes.Validator<number>;
18
+ y: PropTypes.Validator<number>;
19
+ angle: PropTypes.Validator<number>;
20
+ graphProps: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
21
+ scale: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
22
+ x: PropTypes.Validator<(...args: any[]) => any>;
23
+ y: PropTypes.Validator<(...args: any[]) => any>;
24
+ }>>>;
25
+ snap: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
26
+ x: PropTypes.Validator<(...args: any[]) => any>;
27
+ y: PropTypes.Validator<(...args: any[]) => any>;
28
+ }>>>;
29
+ domain: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
30
+ min: PropTypes.Validator<number>;
31
+ max: PropTypes.Validator<number>;
32
+ step: PropTypes.Requireable<number>;
33
+ }>>>;
34
+ range: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
35
+ min: PropTypes.Validator<number>;
36
+ max: PropTypes.Validator<number>;
37
+ step: PropTypes.Requireable<number>;
38
+ }>>>;
39
+ size: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
40
+ width: PropTypes.Validator<number>;
41
+ height: PropTypes.Validator<number>;
42
+ }>>>;
43
+ }>>>;
44
+ };
45
+ render(): React.JSX.Element;
46
+ }
@@ -0,0 +1,36 @@
1
+ import { thinnerShapesNeeded as e } from "../../../utils.js";
2
+ import { clsx as t } from "../../../node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js";
3
+ import { ArrowHead as n } from "../arrow-head.js";
4
+ import r from "react";
5
+ import i from "prop-types";
6
+ import { types as a } from "@pie-lib/plot";
7
+ import { jsx as o } from "react/jsx-runtime";
8
+ //#region src/tools/shared/point/arrow.tsx
9
+ var s = class extends r.Component {
10
+ static propTypes = {
11
+ classes: i.object,
12
+ className: i.string,
13
+ correctness: i.string,
14
+ disabled: i.bool,
15
+ x: i.number.isRequired,
16
+ y: i.number.isRequired,
17
+ angle: i.number.isRequired,
18
+ graphProps: a.GraphPropsType.isRequired
19
+ };
20
+ render() {
21
+ let { classes: r, angle: i, className: a, x: s, y: c, disabled: l, correctness: u, graphProps: d, ...f } = this.props, p = e(d) ? 12 : 14, { scale: m } = d, h = m.x(s), g = m.y(c), _ = `rotate(${-i}, ${h},${g})`, v = `${h},${g}
22
+ ${h - p},${g - p / 2}
23
+ ${h - p}, ${g + p / 2}`;
24
+ return /* @__PURE__ */ o("g", {
25
+ className: t(r.point, l && r.disabled, r[u], a),
26
+ ...f,
27
+ children: /* @__PURE__ */ o(n, {
28
+ size: p,
29
+ transform: _,
30
+ points: v
31
+ })
32
+ });
33
+ }
34
+ };
35
+ //#endregion
36
+ export { s as default };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * @synced-from pie-lib/packages/graphing-solution-set/src/tools/shared/point/base-point.jsx
3
+ * @auto-generated
4
+ *
5
+ * This file is automatically synced from pie-elements and converted to TypeScript.
6
+ * Manual edits will be overwritten on next sync.
7
+ * To make changes, edit the upstream JavaScript file and run sync again.
8
+ */
9
+ import React from 'react';
10
+ import PropTypes from 'prop-types';
11
+ export declare class RawBp extends React.Component {
12
+ static propTypes: {
13
+ className: PropTypes.Requireable<string>;
14
+ coordinatesOnHover: PropTypes.Requireable<boolean>;
15
+ correctness: PropTypes.Requireable<string>;
16
+ disabled: PropTypes.Requireable<boolean>;
17
+ labelNode: PropTypes.Requireable<object>;
18
+ x: PropTypes.Requireable<number>;
19
+ y: PropTypes.Requireable<number>;
20
+ graphProps: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
21
+ scale: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
22
+ x: PropTypes.Validator<(...args: any[]) => any>;
23
+ y: PropTypes.Validator<(...args: any[]) => any>;
24
+ }>>>;
25
+ snap: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
26
+ x: PropTypes.Validator<(...args: any[]) => any>;
27
+ y: PropTypes.Validator<(...args: any[]) => any>;
28
+ }>>>;
29
+ domain: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
30
+ min: PropTypes.Validator<number>;
31
+ max: PropTypes.Validator<number>;
32
+ step: PropTypes.Requireable<number>;
33
+ }>>>;
34
+ range: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
35
+ min: PropTypes.Validator<number>;
36
+ max: PropTypes.Validator<number>;
37
+ step: PropTypes.Requireable<number>;
38
+ }>>>;
39
+ size: PropTypes.Validator<NonNullable<PropTypes.InferProps<{
40
+ width: PropTypes.Validator<number>;
41
+ height: PropTypes.Validator<number>;
42
+ }>>>;
43
+ }>>>;
44
+ onClick: PropTypes.Requireable<(...args: any[]) => any>;
45
+ onTouchStart: PropTypes.Requireable<(...args: any[]) => any>;
46
+ onTouchEnd: PropTypes.Requireable<(...args: any[]) => any>;
47
+ };
48
+ constructor(props: any);
49
+ render(): React.JSX.Element;
50
+ }
@@ -0,0 +1,88 @@
1
+ import { thinnerShapesNeeded as e } from "../../../utils.js";
2
+ import { correct as t, disabled as n, incorrect as r, missing as i } from "../styles.js";
3
+ import { CoordinatesLabel as a } from "../../../coordinates-label.js";
4
+ import o from "react";
5
+ import s from "prop-types";
6
+ import { types as c } from "@pie-lib/plot";
7
+ import { Fragment as l, jsx as u, jsxs as d } from "react/jsx-runtime";
8
+ import { styled as f } from "@mui/material/styles";
9
+ import { color as p } from "@pie-lib/render-ui";
10
+ import m from "react-dom";
11
+ //#region src/tools/shared/point/base-point.tsx
12
+ var h = f("g")(({ disabled: e, correctness: a }) => ({
13
+ cursor: "pointer",
14
+ "& circle": { fill: "currentColor" },
15
+ ...e && {
16
+ ...n("fill"),
17
+ ...n("color")
18
+ },
19
+ ...a === "correct" && {
20
+ ...t("fill"),
21
+ ...t("color")
22
+ },
23
+ ...a === "incorrect" && {
24
+ ...r("fill"),
25
+ ...r("color")
26
+ },
27
+ ...a === "missing" && {
28
+ ...i("fill"),
29
+ ...i("color")
30
+ }
31
+ })), g = class extends o.Component {
32
+ static propTypes = {
33
+ className: s.string,
34
+ coordinatesOnHover: s.bool,
35
+ correctness: s.string,
36
+ disabled: s.bool,
37
+ labelNode: s.object,
38
+ x: s.number,
39
+ y: s.number,
40
+ graphProps: c.GraphPropsType.isRequired,
41
+ onClick: s.func,
42
+ onTouchStart: s.func,
43
+ onTouchEnd: s.func
44
+ };
45
+ constructor(e) {
46
+ super(e), this.state = { showCoordinates: !1 };
47
+ }
48
+ render() {
49
+ let { className: t, coordinatesOnHover: n, x: r, y: i, disabled: o, correctness: s, graphProps: c, labelNode: f, style: g, onClick: _, onTouchStart: v, onTouchEnd: y, ...b } = this.props, { showCoordinates: x } = this.state, { scale: S } = c, C = e(c) ? 5 : 7;
50
+ return /* @__PURE__ */ d(l, { children: [/* @__PURE__ */ u("circle", {
51
+ style: {
52
+ fill: "transparent",
53
+ cursor: "pointer",
54
+ pointerEvents: "all"
55
+ },
56
+ r: C * 3,
57
+ cx: S.x(r),
58
+ cy: S.y(i),
59
+ onMouseEnter: () => this.setState({ showCoordinates: !0 }),
60
+ onMouseLeave: () => this.setState({ showCoordinates: !1 }),
61
+ onTouchStart: v,
62
+ onTouchEnd: y,
63
+ onClick: _
64
+ }), /* @__PURE__ */ d(h, {
65
+ disabled: o,
66
+ correctness: s,
67
+ className: t,
68
+ onMouseEnter: () => this.setState({ showCoordinates: !0 }),
69
+ onMouseLeave: () => this.setState({ showCoordinates: !1 }),
70
+ children: [/* @__PURE__ */ u("circle", {
71
+ ...b,
72
+ style: {
73
+ fill: p.defaults.BLACK,
74
+ cursor: "pointer"
75
+ },
76
+ r: C,
77
+ cx: S.x(r),
78
+ cy: S.y(i)
79
+ }), f && n && x && m.createPortal(/* @__PURE__ */ u(a, {
80
+ graphProps: c,
81
+ x: r,
82
+ y: i
83
+ }), f)]
84
+ })] });
85
+ }
86
+ };
87
+ //#endregion
88
+ export { g as RawBp };