@pie-lib/graphing 4.0.5-next.34 → 4.0.5-next.35

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 (410) 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 +88 -0
  24. package/dist/graph-with-controls.js +156 -0
  25. package/dist/graph.d.ts +126 -0
  26. package/dist/graph.js +209 -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 +15 -0
  32. package/dist/index.js +7 -0
  33. package/dist/key-legend.d.ts +21 -0
  34. package/dist/key-legend.js +231 -0
  35. package/dist/label-svg-icon.d.ts +18 -0
  36. package/dist/label-svg-icon.js +42 -0
  37. package/dist/labels.d.ts +37 -0
  38. package/dist/labels.js +152 -0
  39. package/dist/mark-label.d.ts +60 -0
  40. package/dist/mark-label.js +222 -0
  41. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Axis.js +67 -0
  42. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/AxisRenderer.js +66 -0
  43. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/axis/Ticks.js +39 -0
  44. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/constants/orientation.js +9 -0
  45. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/createPoint.js +14 -0
  46. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getAxisRangePaddingConfig.js +13 -0
  47. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getLabelTransform.js +16 -0
  48. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickFormatter.js +8 -0
  49. package/dist/node_modules/.bun/@visx_axis@4.0.0_d84c32d47042070f/node_modules/@visx/axis/esm/utils/getTickPosition.js +14 -0
  50. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/Grid.js +43 -0
  51. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridColumns.js +46 -0
  52. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/grids/GridRows.js +46 -0
  53. package/dist/node_modules/.bun/@visx_grid@4.0.0_d84c32d47042070f/node_modules/@visx/grid/esm/utils/getScaleBandwidth.js +6 -0
  54. package/dist/node_modules/.bun/@visx_group@4.0.0_d84c32d47042070f/node_modules/@visx/group/esm/Group.js +17 -0
  55. package/dist/node_modules/.bun/@visx_point@4.0.0/node_modules/@visx/point/esm/Point.js +20 -0
  56. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/coerceNumber.js +10 -0
  57. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/getTicks.js +7 -0
  58. package/dist/node_modules/.bun/@visx_scale@4.0.0/node_modules/@visx/scale/esm/utils/toString.js +6 -0
  59. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/Line.js +27 -0
  60. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/shapes/LinePath.js +24 -0
  61. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/util/D3ShapeFactories.js +9 -0
  62. package/dist/node_modules/.bun/@visx_shape@4.0.0_d84c32d47042070f/node_modules/@visx/shape/esm/util/setNumberOrNumberAccessor.js +6 -0
  63. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/Text.js +27 -0
  64. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/hooks/useText.js +68 -0
  65. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/getStringWidth.js +19 -0
  66. package/dist/node_modules/.bun/@visx_text@4.0.0_d84c32d47042070f/node_modules/@visx/text/esm/util/memoize.js +13 -0
  67. package/dist/node_modules/.bun/@visx_vendor@4.0.0/node_modules/@visx/vendor/esm/d3-shape.js +8 -0
  68. package/dist/node_modules/.bun/balanced-match@0.4.2/node_modules/balanced-match/index.js +32 -0
  69. package/dist/node_modules/.bun/balanced-match@1.0.2/node_modules/balanced-match/index.js +33 -0
  70. package/dist/node_modules/.bun/classnames@2.5.1/node_modules/classnames/index.js +32 -0
  71. package/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js +16 -0
  72. package/dist/node_modules/.bun/invariant@2.2.4/node_modules/invariant/browser.js +28 -0
  73. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/formula_evaluator.js +37 -0
  74. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/lexer.js +509 -0
  75. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/math_function.js +108 -0
  76. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix.js +31 -0
  77. package/dist/node_modules/.bun/math-expression-evaluator@1.4.0/node_modules/math-expression-evaluator/src/postfix_evaluator.js +45 -0
  78. package/dist/node_modules/.bun/reduce-css-calc@1.3.0/node_modules/reduce-css-calc/index.js +49 -0
  79. package/dist/node_modules/.bun/reduce-function-call@1.0.3/node_modules/reduce-function-call/index.js +34 -0
  80. package/dist/node_modules/.bun/redux-undo@1.1.0/node_modules/redux-undo/dist/redux-undo.js +185 -0
  81. package/dist/node_modules/.bun/redux@5.0.1/node_modules/redux/dist/redux.js +198 -0
  82. package/dist/toggle-bar.d.ts +40 -0
  83. package/dist/toggle-bar.js +155 -0
  84. package/dist/tool-menu.d.ts +29 -0
  85. package/dist/tool-menu.js +41 -0
  86. package/dist/tools/absolute/component.d.ts +16 -0
  87. package/dist/tools/absolute/component.js +15 -0
  88. package/dist/tools/absolute/index.d.ts +20 -0
  89. package/dist/tools/absolute/index.js +32 -0
  90. package/dist/tools/circle/bg-circle.d.ts +116 -0
  91. package/dist/tools/circle/bg-circle.js +72 -0
  92. package/dist/tools/circle/component.d.ts +88 -0
  93. package/dist/tools/circle/component.js +208 -0
  94. package/dist/tools/circle/index.d.ts +20 -0
  95. package/dist/tools/circle/index.js +22 -0
  96. package/dist/tools/exponential/component.d.ts +16 -0
  97. package/dist/tools/exponential/component.js +14 -0
  98. package/dist/tools/exponential/index.d.ts +20 -0
  99. package/dist/tools/exponential/index.js +32 -0
  100. package/dist/tools/index.d.ts +27 -0
  101. package/dist/tools/index.js +55 -0
  102. package/dist/tools/line/component.d.ts +124 -0
  103. package/dist/tools/line/component.js +72 -0
  104. package/dist/tools/line/index.d.ts +13 -0
  105. package/dist/tools/line/index.js +6 -0
  106. package/dist/tools/parabola/component.d.ts +16 -0
  107. package/dist/tools/parabola/component.js +14 -0
  108. package/dist/tools/parabola/index.d.ts +20 -0
  109. package/dist/tools/parabola/index.js +32 -0
  110. package/dist/tools/point/component.d.ts +52 -0
  111. package/dist/tools/point/component.js +91 -0
  112. package/dist/tools/point/index.d.ts +15 -0
  113. package/dist/tools/point/index.js +13 -0
  114. package/dist/tools/polygon/component.d.ts +125 -0
  115. package/dist/tools/polygon/component.js +271 -0
  116. package/dist/tools/polygon/index.d.ts +19 -0
  117. package/dist/tools/polygon/index.js +55 -0
  118. package/dist/tools/polygon/line.d.ts +125 -0
  119. package/dist/tools/polygon/line.js +63 -0
  120. package/dist/tools/polygon/polygon.d.ts +122 -0
  121. package/dist/tools/polygon/polygon.js +74 -0
  122. package/dist/tools/ray/component.d.ts +101 -0
  123. package/dist/tools/ray/component.js +71 -0
  124. package/dist/tools/ray/index.d.ts +13 -0
  125. package/dist/tools/ray/index.js +6 -0
  126. package/dist/tools/segment/component.d.ts +100 -0
  127. package/dist/tools/segment/component.js +52 -0
  128. package/dist/tools/segment/index.d.ts +13 -0
  129. package/dist/tools/segment/index.js +6 -0
  130. package/dist/tools/shared/arrow-head.d.ts +51 -0
  131. package/dist/tools/shared/arrow-head.js +63 -0
  132. package/dist/tools/shared/icons/CorrectSVG.d.ts +26 -0
  133. package/dist/tools/shared/icons/CorrectSVG.js +29 -0
  134. package/dist/tools/shared/icons/IncorrectSVG.d.ts +26 -0
  135. package/dist/tools/shared/icons/IncorrectSVG.js +27 -0
  136. package/dist/tools/shared/icons/MissingSVG.d.ts +26 -0
  137. package/dist/tools/shared/icons/MissingSVG.js +28 -0
  138. package/dist/tools/shared/line/index.d.ts +251 -0
  139. package/dist/tools/shared/line/index.js +332 -0
  140. package/dist/tools/shared/line/line-path.d.ts +57 -0
  141. package/dist/tools/shared/line/line-path.js +71 -0
  142. package/dist/tools/shared/line/with-root-edge.d.ts +148 -0
  143. package/dist/tools/shared/line/with-root-edge.js +73 -0
  144. package/dist/tools/shared/point/arrow-point.d.ts +56 -0
  145. package/dist/tools/shared/point/arrow-point.js +41 -0
  146. package/dist/tools/shared/point/arrow.d.ts +45 -0
  147. package/dist/tools/shared/point/arrow.js +35 -0
  148. package/dist/tools/shared/point/base-point.d.ts +52 -0
  149. package/dist/tools/shared/point/base-point.js +103 -0
  150. package/dist/tools/shared/point/index.d.ts +216 -0
  151. package/dist/tools/shared/point/index.js +45 -0
  152. package/dist/tools/shared/styles.d.ts +29 -0
  153. package/dist/tools/shared/styles.js +20 -0
  154. package/dist/tools/shared/types.d.ts +21 -0
  155. package/dist/tools/shared/types.js +11 -0
  156. package/dist/tools/sine/component.d.ts +16 -0
  157. package/dist/tools/sine/component.js +22 -0
  158. package/dist/tools/sine/index.d.ts +20 -0
  159. package/dist/tools/sine/index.js +32 -0
  160. package/dist/tools/vector/component.d.ts +100 -0
  161. package/dist/tools/vector/component.js +44 -0
  162. package/dist/tools/vector/index.d.ts +13 -0
  163. package/dist/tools/vector/index.js +6 -0
  164. package/dist/undo-redo.d.ts +22 -0
  165. package/dist/undo-redo.js +47 -0
  166. package/dist/use-debounce.d.ts +9 -0
  167. package/dist/use-debounce.js +13 -0
  168. package/dist/utils.d.ts +61 -0
  169. package/dist/utils.js +75 -0
  170. package/package.json +59 -42
  171. package/CHANGELOG.json +0 -1
  172. package/CHANGELOG.md +0 -1469
  173. package/LICENSE.md +0 -5
  174. package/lib/axis/arrow.js +0 -79
  175. package/lib/axis/arrow.js.map +0 -1
  176. package/lib/axis/axes.js +0 -329
  177. package/lib/axis/axes.js.map +0 -1
  178. package/lib/axis/index.js +0 -21
  179. package/lib/axis/index.js.map +0 -1
  180. package/lib/bg.js +0 -114
  181. package/lib/bg.js.map +0 -1
  182. package/lib/container/actions.js +0 -18
  183. package/lib/container/actions.js.map +0 -1
  184. package/lib/container/index.js +0 -127
  185. package/lib/container/index.js.map +0 -1
  186. package/lib/container/marks.js +0 -22
  187. package/lib/container/marks.js.map +0 -1
  188. package/lib/container/middleware.js +0 -19
  189. package/lib/container/middleware.js.map +0 -1
  190. package/lib/container/reducer.js +0 -18
  191. package/lib/container/reducer.js.map +0 -1
  192. package/lib/coordinates-label.js +0 -79
  193. package/lib/coordinates-label.js.map +0 -1
  194. package/lib/graph-with-controls.js +0 -294
  195. package/lib/graph-with-controls.js.map +0 -1
  196. package/lib/graph.js +0 -327
  197. package/lib/graph.js.map +0 -1
  198. package/lib/grid-setup.js +0 -414
  199. package/lib/grid-setup.js.map +0 -1
  200. package/lib/grid.js +0 -131
  201. package/lib/grid.js.map +0 -1
  202. package/lib/index.js +0 -47
  203. package/lib/index.js.map +0 -1
  204. package/lib/key-legend.js +0 -201
  205. package/lib/key-legend.js.map +0 -1
  206. package/lib/label-svg-icon.js +0 -50
  207. package/lib/label-svg-icon.js.map +0 -1
  208. package/lib/labels.js +0 -243
  209. package/lib/labels.js.map +0 -1
  210. package/lib/mark-label.js +0 -285
  211. package/lib/mark-label.js.map +0 -1
  212. package/lib/toggle-bar.js +0 -252
  213. package/lib/toggle-bar.js.map +0 -1
  214. package/lib/tool-menu.js +0 -78
  215. package/lib/tool-menu.js.map +0 -1
  216. package/lib/tools/absolute/component.js +0 -29
  217. package/lib/tools/absolute/component.js.map +0 -1
  218. package/lib/tools/absolute/index.js +0 -50
  219. package/lib/tools/absolute/index.js.map +0 -1
  220. package/lib/tools/circle/bg-circle.js +0 -123
  221. package/lib/tools/circle/bg-circle.js.map +0 -1
  222. package/lib/tools/circle/component.js +0 -321
  223. package/lib/tools/circle/component.js.map +0 -1
  224. package/lib/tools/circle/index.js +0 -41
  225. package/lib/tools/circle/index.js.map +0 -1
  226. package/lib/tools/exponential/component.js +0 -28
  227. package/lib/tools/exponential/component.js.map +0 -1
  228. package/lib/tools/exponential/index.js +0 -56
  229. package/lib/tools/exponential/index.js.map +0 -1
  230. package/lib/tools/index.js +0 -86
  231. package/lib/tools/index.js.map +0 -1
  232. package/lib/tools/line/component.js +0 -97
  233. package/lib/tools/line/component.js.map +0 -1
  234. package/lib/tools/line/index.js +0 -11
  235. package/lib/tools/line/index.js.map +0 -1
  236. package/lib/tools/parabola/component.js +0 -28
  237. package/lib/tools/parabola/component.js.map +0 -1
  238. package/lib/tools/parabola/index.js +0 -50
  239. package/lib/tools/parabola/index.js.map +0 -1
  240. package/lib/tools/point/component.js +0 -148
  241. package/lib/tools/point/component.js.map +0 -1
  242. package/lib/tools/point/index.js +0 -24
  243. package/lib/tools/point/index.js.map +0 -1
  244. package/lib/tools/polygon/component.js +0 -437
  245. package/lib/tools/polygon/component.js.map +0 -1
  246. package/lib/tools/polygon/index.js +0 -89
  247. package/lib/tools/polygon/index.js.map +0 -1
  248. package/lib/tools/polygon/line.js +0 -112
  249. package/lib/tools/polygon/line.js.map +0 -1
  250. package/lib/tools/polygon/polygon.js +0 -130
  251. package/lib/tools/polygon/polygon.js.map +0 -1
  252. package/lib/tools/ray/component.js +0 -95
  253. package/lib/tools/ray/component.js.map +0 -1
  254. package/lib/tools/ray/index.js +0 -11
  255. package/lib/tools/ray/index.js.map +0 -1
  256. package/lib/tools/segment/component.js +0 -71
  257. package/lib/tools/segment/component.js.map +0 -1
  258. package/lib/tools/segment/index.js +0 -11
  259. package/lib/tools/segment/index.js.map +0 -1
  260. package/lib/tools/shared/arrow-head.js +0 -111
  261. package/lib/tools/shared/arrow-head.js.map +0 -1
  262. package/lib/tools/shared/icons/CorrectSVG.js +0 -40
  263. package/lib/tools/shared/icons/CorrectSVG.js.map +0 -1
  264. package/lib/tools/shared/icons/IncorrectSVG.js +0 -40
  265. package/lib/tools/shared/icons/IncorrectSVG.js.map +0 -1
  266. package/lib/tools/shared/icons/MissingSVG.js +0 -39
  267. package/lib/tools/shared/icons/MissingSVG.js.map +0 -1
  268. package/lib/tools/shared/line/index.js +0 -550
  269. package/lib/tools/shared/line/index.js.map +0 -1
  270. package/lib/tools/shared/line/line-path.js +0 -118
  271. package/lib/tools/shared/line/line-path.js.map +0 -1
  272. package/lib/tools/shared/line/with-root-edge.js +0 -121
  273. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  274. package/lib/tools/shared/point/arrow-point.js +0 -72
  275. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  276. package/lib/tools/shared/point/arrow.js +0 -67
  277. package/lib/tools/shared/point/arrow.js.map +0 -1
  278. package/lib/tools/shared/point/base-point.js +0 -157
  279. package/lib/tools/shared/point/base-point.js.map +0 -1
  280. package/lib/tools/shared/point/index.js +0 -68
  281. package/lib/tools/shared/point/index.js.map +0 -1
  282. package/lib/tools/shared/styles.js +0 -33
  283. package/lib/tools/shared/styles.js.map +0 -1
  284. package/lib/tools/shared/types.js +0 -16
  285. package/lib/tools/shared/types.js.map +0 -1
  286. package/lib/tools/sine/component.js +0 -40
  287. package/lib/tools/sine/component.js.map +0 -1
  288. package/lib/tools/sine/index.js +0 -50
  289. package/lib/tools/sine/index.js.map +0 -1
  290. package/lib/tools/vector/component.js +0 -68
  291. package/lib/tools/vector/component.js.map +0 -1
  292. package/lib/tools/vector/index.js +0 -11
  293. package/lib/tools/vector/index.js.map +0 -1
  294. package/lib/undo-redo.js +0 -86
  295. package/lib/undo-redo.js.map +0 -1
  296. package/lib/use-debounce.js +0 -25
  297. package/lib/use-debounce.js.map +0 -1
  298. package/lib/utils.js +0 -229
  299. package/lib/utils.js.map +0 -1
  300. package/src/__tests__/bg.test.jsx +0 -250
  301. package/src/__tests__/coordinates-label.test.jsx +0 -243
  302. package/src/__tests__/graph-with-controls.test.jsx +0 -198
  303. package/src/__tests__/graph.test.jsx +0 -721
  304. package/src/__tests__/grid-setup.test.jsx +0 -645
  305. package/src/__tests__/grid.test.jsx +0 -22
  306. package/src/__tests__/key-legend.test.jsx +0 -260
  307. package/src/__tests__/label-svg-icon.test.jsx +0 -278
  308. package/src/__tests__/labels.test.jsx +0 -55
  309. package/src/__tests__/mark-label.test.jsx +0 -63
  310. package/src/__tests__/toggle-bar.test.jsx +0 -146
  311. package/src/__tests__/tool-menu.test.jsx +0 -115
  312. package/src/__tests__/undo-redo.test.jsx +0 -24
  313. package/src/__tests__/use-debounce.test.js +0 -21
  314. package/src/__tests__/utils.js +0 -41
  315. package/src/__tests__/utils.test.js +0 -105
  316. package/src/axis/__tests__/arrow.test.jsx +0 -38
  317. package/src/axis/__tests__/axes.test.jsx +0 -216
  318. package/src/axis/arrow.jsx +0 -57
  319. package/src/axis/axes.jsx +0 -285
  320. package/src/axis/index.js +0 -3
  321. package/src/bg.jsx +0 -96
  322. package/src/container/__tests__/actions.test.js +0 -105
  323. package/src/container/__tests__/index.test.jsx +0 -319
  324. package/src/container/__tests__/marks.test.js +0 -172
  325. package/src/container/__tests__/middleware.test.js +0 -235
  326. package/src/container/__tests__/reducer.test.js +0 -324
  327. package/src/container/actions.js +0 -8
  328. package/src/container/index.jsx +0 -91
  329. package/src/container/marks.js +0 -14
  330. package/src/container/middleware.js +0 -7
  331. package/src/container/reducer.js +0 -5
  332. package/src/coordinates-label.jsx +0 -63
  333. package/src/graph-with-controls.jsx +0 -239
  334. package/src/graph.jsx +0 -303
  335. package/src/grid-setup.jsx +0 -432
  336. package/src/grid.jsx +0 -133
  337. package/src/index.js +0 -7
  338. package/src/key-legend.jsx +0 -142
  339. package/src/label-svg-icon.jsx +0 -39
  340. package/src/labels.jsx +0 -207
  341. package/src/mark-label.jsx +0 -244
  342. package/src/toggle-bar.jsx +0 -224
  343. package/src/tool-menu.jsx +0 -49
  344. package/src/tools/absolute/__tests__/component.test.jsx +0 -53
  345. package/src/tools/absolute/component.jsx +0 -23
  346. package/src/tools/absolute/index.js +0 -31
  347. package/src/tools/circle/__tests__/bg-circle.test.jsx +0 -26
  348. package/src/tools/circle/__tests__/component.test.jsx +0 -494
  349. package/src/tools/circle/__tests__/index.test.js +0 -480
  350. package/src/tools/circle/bg-circle.jsx +0 -81
  351. package/src/tools/circle/component.jsx +0 -264
  352. package/src/tools/circle/index.js +0 -25
  353. package/src/tools/exponential/__tests__/component.test.jsx +0 -53
  354. package/src/tools/exponential/__tests__/index.test.js +0 -729
  355. package/src/tools/exponential/component.jsx +0 -23
  356. package/src/tools/exponential/index.js +0 -39
  357. package/src/tools/index.js +0 -48
  358. package/src/tools/line/__tests__/component.test.jsx +0 -37
  359. package/src/tools/line/component.jsx +0 -93
  360. package/src/tools/line/index.js +0 -4
  361. package/src/tools/parabola/__tests__/component.test.jsx +0 -48
  362. package/src/tools/parabola/__tests__/index.test.js +0 -470
  363. package/src/tools/parabola/component.jsx +0 -23
  364. package/src/tools/parabola/index.js +0 -31
  365. package/src/tools/point/__tests__/component.test.jsx +0 -349
  366. package/src/tools/point/__tests__/index.test.js +0 -241
  367. package/src/tools/point/component.jsx +0 -126
  368. package/src/tools/point/index.js +0 -11
  369. package/src/tools/polygon/__tests__/component.test.jsx +0 -471
  370. package/src/tools/polygon/__tests__/index.test.js +0 -294
  371. package/src/tools/polygon/__tests__/line.test.jsx +0 -35
  372. package/src/tools/polygon/__tests__/polygon.test.jsx +0 -61
  373. package/src/tools/polygon/component.jsx +0 -409
  374. package/src/tools/polygon/index.js +0 -52
  375. package/src/tools/polygon/line.jsx +0 -74
  376. package/src/tools/polygon/polygon.jsx +0 -110
  377. package/src/tools/ray/__tests__/component.test.jsx +0 -29
  378. package/src/tools/ray/component.jsx +0 -92
  379. package/src/tools/ray/index.js +0 -4
  380. package/src/tools/segment/__tests__/component.test.jsx +0 -28
  381. package/src/tools/segment/component.jsx +0 -65
  382. package/src/tools/segment/index.js +0 -4
  383. package/src/tools/shared/__tests__/arrow-head.test.jsx +0 -31
  384. package/src/tools/shared/arrow-head.jsx +0 -102
  385. package/src/tools/shared/icons/CorrectSVG.jsx +0 -32
  386. package/src/tools/shared/icons/IncorrectSVG.jsx +0 -30
  387. package/src/tools/shared/icons/MissingSVG.jsx +0 -31
  388. package/src/tools/shared/line/__tests__/index.test.jsx +0 -109
  389. package/src/tools/shared/line/__tests__/line-path.test.jsx +0 -53
  390. package/src/tools/shared/line/__tests__/with-root-edge.test.jsx +0 -73
  391. package/src/tools/shared/line/index.jsx +0 -487
  392. package/src/tools/shared/line/line-path.jsx +0 -80
  393. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  394. package/src/tools/shared/point/__tests__/arrow-point.test.jsx +0 -91
  395. package/src/tools/shared/point/__tests__/base-point.test.jsx +0 -87
  396. package/src/tools/shared/point/arrow-point.jsx +0 -46
  397. package/src/tools/shared/point/arrow.jsx +0 -37
  398. package/src/tools/shared/point/base-point.jsx +0 -121
  399. package/src/tools/shared/point/index.jsx +0 -54
  400. package/src/tools/shared/styles.js +0 -27
  401. package/src/tools/shared/types.js +0 -10
  402. package/src/tools/sine/__tests__/component.test.jsx +0 -51
  403. package/src/tools/sine/component.jsx +0 -32
  404. package/src/tools/sine/index.js +0 -33
  405. package/src/tools/vector/__tests__/component.test.jsx +0 -25
  406. package/src/tools/vector/component.jsx +0 -56
  407. package/src/tools/vector/index.js +0 -4
  408. package/src/undo-redo.jsx +0 -45
  409. package/src/use-debounce.js +0 -13
  410. package/src/utils.js +0 -224
@@ -1,480 +0,0 @@
1
- import { tool } from '../index';
2
- import { equalPoints } from '../../../utils';
3
-
4
- jest.mock('../../../utils', () => ({
5
- equalPoints: jest.fn(),
6
- }));
7
-
8
- describe('circle tool', () => {
9
- let circleTool;
10
-
11
- beforeEach(() => {
12
- jest.clearAllMocks();
13
- circleTool = tool();
14
- });
15
-
16
- describe('tool configuration', () => {
17
- it('creates a tool object', () => {
18
- expect(circleTool).toBeDefined();
19
- expect(typeof circleTool).toBe('object');
20
- });
21
-
22
- it('has type circle', () => {
23
- expect(circleTool.type).toBe('circle');
24
- });
25
-
26
- it('has a Component', () => {
27
- expect(circleTool.Component).toBeDefined();
28
- });
29
-
30
- it('has hover function', () => {
31
- expect(typeof circleTool.hover).toBe('function');
32
- });
33
-
34
- it('has addPoint function', () => {
35
- expect(typeof circleTool.addPoint).toBe('function');
36
- });
37
- });
38
-
39
- describe('hover', () => {
40
- it('returns mark with edge point', () => {
41
- const point = { x: 5, y: 10 };
42
- const mark = { type: 'circle', root: { x: 0, y: 0 } };
43
-
44
- const result = circleTool.hover(point, mark);
45
-
46
- expect(result).toEqual({ ...mark, edge: point });
47
- });
48
-
49
- it('updates existing mark with new edge', () => {
50
- const point = { x: 7, y: 8 };
51
- const mark = {
52
- type: 'circle',
53
- root: { x: 1, y: 1 },
54
- edge: { x: 3, y: 3 },
55
- };
56
-
57
- const result = circleTool.hover(point, mark);
58
-
59
- expect(result.edge).toEqual(point);
60
- expect(result.root).toEqual(mark.root);
61
- });
62
-
63
- it('preserves mark properties', () => {
64
- const point = { x: 5, y: 5 };
65
- const mark = {
66
- type: 'circle',
67
- root: { x: 0, y: 0 },
68
- label: 'Circle A',
69
- correctness: { value: 'correct' },
70
- };
71
-
72
- const result = circleTool.hover(point, mark);
73
-
74
- expect(result.label).toBe('Circle A');
75
- expect(result.correctness).toEqual({ value: 'correct' });
76
- });
77
-
78
- it('handles null mark', () => {
79
- const point = { x: 5, y: 10 };
80
- const mark = null;
81
-
82
- const result = circleTool.hover(point, mark);
83
-
84
- expect(result).toEqual({ edge: point });
85
- });
86
-
87
- it('handles undefined mark', () => {
88
- const point = { x: 5, y: 10 };
89
- const mark = undefined;
90
-
91
- const result = circleTool.hover(point, mark);
92
-
93
- expect(result).toEqual({ edge: point });
94
- });
95
-
96
- it('works with negative coordinates', () => {
97
- const point = { x: -5, y: -10 };
98
- const mark = { type: 'circle', root: { x: -1, y: -1 } };
99
-
100
- const result = circleTool.hover(point, mark);
101
-
102
- expect(result.edge).toEqual(point);
103
- });
104
-
105
- it('works with decimal coordinates', () => {
106
- const point = { x: 3.5, y: 7.8 };
107
- const mark = { type: 'circle', root: { x: 1.2, y: 2.4 } };
108
-
109
- const result = circleTool.hover(point, mark);
110
-
111
- expect(result.edge).toEqual(point);
112
- });
113
- });
114
-
115
- describe('addPoint', () => {
116
- describe('first point (creating root)', () => {
117
- it('creates new circle mark when no mark exists', () => {
118
- const point = { x: 5, y: 10 };
119
- const mark = null;
120
- equalPoints.mockReturnValue(false);
121
-
122
- const result = circleTool.addPoint(point, mark);
123
-
124
- expect(result).toEqual({
125
- type: 'circle',
126
- root: point,
127
- building: true,
128
- });
129
- });
130
-
131
- it('creates building circle with correct properties', () => {
132
- const point = { x: 3, y: 7 };
133
- equalPoints.mockReturnValue(false);
134
-
135
- const result = circleTool.addPoint(point, null);
136
-
137
- expect(result.type).toBe('circle');
138
- expect(result.root).toEqual(point);
139
- expect(result.building).toBe(true);
140
- expect(result.edge).toBeUndefined();
141
- });
142
-
143
- it('works with negative coordinates', () => {
144
- const point = { x: -5, y: -10 };
145
- equalPoints.mockReturnValue(false);
146
-
147
- const result = circleTool.addPoint(point, null);
148
-
149
- expect(result.root).toEqual(point);
150
- expect(result.building).toBe(true);
151
- });
152
-
153
- it('works with zero coordinates', () => {
154
- const point = { x: 0, y: 0 };
155
- equalPoints.mockReturnValue(false);
156
-
157
- const result = circleTool.addPoint(point, null);
158
-
159
- expect(result.root).toEqual(point);
160
- expect(result.building).toBe(true);
161
- });
162
-
163
- it('works with decimal coordinates', () => {
164
- const point = { x: 3.5, y: 7.25 };
165
- equalPoints.mockReturnValue(false);
166
-
167
- const result = circleTool.addPoint(point, null);
168
-
169
- expect(result.root).toEqual(point);
170
- expect(result.building).toBe(true);
171
- });
172
- });
173
-
174
- describe('second point (completing circle)', () => {
175
- it('completes circle when adding edge point', () => {
176
- const root = { x: 0, y: 0 };
177
- const edge = { x: 5, y: 5 };
178
- const mark = {
179
- type: 'circle',
180
- root,
181
- building: true,
182
- };
183
- equalPoints.mockReturnValue(false);
184
-
185
- const result = circleTool.addPoint(edge, mark);
186
-
187
- expect(result).toEqual({
188
- ...mark,
189
- edge,
190
- building: false,
191
- });
192
- });
193
-
194
- it('sets building to false', () => {
195
- const mark = {
196
- type: 'circle',
197
- root: { x: 1, y: 1 },
198
- building: true,
199
- };
200
- const point = { x: 5, y: 5 };
201
- equalPoints.mockReturnValue(false);
202
-
203
- const result = circleTool.addPoint(point, mark);
204
-
205
- expect(result.building).toBe(false);
206
- });
207
-
208
- it('preserves mark type', () => {
209
- const mark = {
210
- type: 'circle',
211
- root: { x: 1, y: 1 },
212
- building: true,
213
- };
214
- const point = { x: 5, y: 5 };
215
- equalPoints.mockReturnValue(false);
216
-
217
- const result = circleTool.addPoint(point, mark);
218
-
219
- expect(result.type).toBe('circle');
220
- });
221
-
222
- it('preserves root when adding edge', () => {
223
- const root = { x: 2, y: 3 };
224
- const mark = {
225
- type: 'circle',
226
- root,
227
- building: true,
228
- };
229
- const edge = { x: 8, y: 9 };
230
- equalPoints.mockReturnValue(false);
231
-
232
- const result = circleTool.addPoint(edge, mark);
233
-
234
- expect(result.root).toEqual(root);
235
- expect(result.edge).toEqual(edge);
236
- });
237
-
238
- it('works with large radius', () => {
239
- const root = { x: 0, y: 0 };
240
- const edge = { x: 100, y: 100 };
241
- const mark = {
242
- type: 'circle',
243
- root,
244
- building: true,
245
- };
246
- equalPoints.mockReturnValue(false);
247
-
248
- const result = circleTool.addPoint(edge, mark);
249
-
250
- expect(result.edge).toEqual(edge);
251
- expect(result.building).toBe(false);
252
- });
253
-
254
- it('works with small radius', () => {
255
- const root = { x: 5, y: 5 };
256
- const edge = { x: 5.1, y: 5.1 };
257
- const mark = {
258
- type: 'circle',
259
- root,
260
- building: true,
261
- };
262
- equalPoints.mockReturnValue(false);
263
-
264
- const result = circleTool.addPoint(edge, mark);
265
-
266
- expect(result.edge).toEqual(edge);
267
- expect(result.building).toBe(false);
268
- });
269
- });
270
-
271
- describe('same point handling', () => {
272
- it('returns same mark when clicking same point as root', () => {
273
- const point = { x: 5, y: 10 };
274
- const mark = {
275
- type: 'circle',
276
- root: point,
277
- building: true,
278
- };
279
- equalPoints.mockReturnValue(true);
280
-
281
- const result = circleTool.addPoint(point, mark);
282
-
283
- expect(result).toBe(mark);
284
- });
285
-
286
- it('calls equalPoints with correct arguments', () => {
287
- const point = { x: 5, y: 10 };
288
- const mark = {
289
- type: 'circle',
290
- root: { x: 5, y: 10 },
291
- building: true,
292
- };
293
- equalPoints.mockReturnValue(true);
294
-
295
- circleTool.addPoint(point, mark);
296
-
297
- expect(equalPoints).toHaveBeenCalledWith(mark.root, point);
298
- });
299
-
300
- it('prevents zero-radius circle', () => {
301
- const point = { x: 5, y: 10 };
302
- const mark = {
303
- type: 'circle',
304
- root: { x: 5, y: 10 },
305
- building: true,
306
- };
307
- equalPoints.mockReturnValue(true);
308
-
309
- const result = circleTool.addPoint(point, mark);
310
-
311
- // Should return unchanged mark, not complete the circle
312
- expect(result).toBe(mark);
313
- expect(result.building).toBe(true);
314
- });
315
- });
316
-
317
- describe('edge cases', () => {
318
- it('handles undefined mark on first click', () => {
319
- const point = { x: 5, y: 10 };
320
- equalPoints.mockReturnValue(false);
321
-
322
- const result = circleTool.addPoint(point, undefined);
323
-
324
- expect(result.type).toBe('circle');
325
- expect(result.root).toEqual(point);
326
- expect(result.building).toBe(true);
327
- });
328
-
329
- it('handles mark with additional properties', () => {
330
- const mark = {
331
- type: 'circle',
332
- root: { x: 1, y: 1 },
333
- building: true,
334
- label: 'Circle 1',
335
- correctness: { value: 'correct' },
336
- };
337
- const point = { x: 5, y: 5 };
338
- equalPoints.mockReturnValue(false);
339
-
340
- const result = circleTool.addPoint(point, mark);
341
-
342
- expect(result.label).toBe('Circle 1');
343
- expect(result.correctness).toEqual({ value: 'correct' });
344
- expect(result.edge).toEqual(point);
345
- expect(result.building).toBe(false);
346
- });
347
-
348
- it('handles mark with existing edge', () => {
349
- const mark = {
350
- type: 'circle',
351
- root: { x: 0, y: 0 },
352
- edge: { x: 3, y: 3 },
353
- building: true,
354
- };
355
- const newEdge = { x: 5, y: 5 };
356
- equalPoints.mockReturnValue(false);
357
-
358
- const result = circleTool.addPoint(newEdge, mark);
359
-
360
- expect(result.edge).toEqual(newEdge);
361
- expect(result.building).toBe(false);
362
- });
363
-
364
- it('works with point at origin', () => {
365
- const point = { x: 0, y: 0 };
366
- equalPoints.mockReturnValue(false);
367
-
368
- const result = circleTool.addPoint(point, null);
369
-
370
- expect(result.root).toEqual(point);
371
- expect(result.building).toBe(true);
372
- });
373
-
374
- it('works with very large coordinates', () => {
375
- const point = { x: 1000, y: 1000 };
376
- equalPoints.mockReturnValue(false);
377
-
378
- const result = circleTool.addPoint(point, null);
379
-
380
- expect(result.root).toEqual(point);
381
- expect(result.building).toBe(true);
382
- });
383
-
384
- it('works with negative coordinates', () => {
385
- const point = { x: -10, y: -20 };
386
- equalPoints.mockReturnValue(false);
387
-
388
- const result = circleTool.addPoint(point, null);
389
-
390
- expect(result.root).toEqual(point);
391
- expect(result.building).toBe(true);
392
- });
393
- });
394
-
395
- describe('immutability', () => {
396
- it('does not mutate original mark when adding edge', () => {
397
- const mark = {
398
- type: 'circle',
399
- root: { x: 1, y: 1 },
400
- building: true,
401
- };
402
- const originalMark = { ...mark };
403
- const point = { x: 5, y: 5 };
404
- equalPoints.mockReturnValue(false);
405
-
406
- const result = circleTool.addPoint(point, mark);
407
-
408
- expect(mark).toEqual(originalMark);
409
- expect(result).not.toBe(mark);
410
- });
411
-
412
- it('does not mutate original mark when returning same', () => {
413
- const mark = {
414
- type: 'circle',
415
- root: { x: 5, y: 10 },
416
- building: true,
417
- };
418
- const point = { x: 5, y: 10 };
419
- equalPoints.mockReturnValue(true);
420
-
421
- const result = circleTool.addPoint(point, mark);
422
-
423
- expect(result).toBe(mark);
424
- });
425
- });
426
- });
427
-
428
- describe('integration scenarios', () => {
429
- it('handles full circle creation flow', () => {
430
- equalPoints.mockReturnValue(false);
431
-
432
- // First click - create root
433
- const firstPoint = { x: 5, y: 5 };
434
- const mark1 = circleTool.addPoint(firstPoint, null);
435
- expect(mark1.root).toEqual(firstPoint);
436
- expect(mark1.building).toBe(true);
437
-
438
- // Hover - show preview
439
- const hoverPoint = { x: 10, y: 10 };
440
- const mark2 = circleTool.hover(hoverPoint, mark1);
441
- expect(mark2.edge).toEqual(hoverPoint);
442
-
443
- // Second click - complete circle
444
- const secondPoint = { x: 10, y: 5 };
445
- const mark3 = circleTool.addPoint(secondPoint, mark1);
446
- expect(mark3.root).toEqual(firstPoint);
447
- expect(mark3.edge).toEqual(secondPoint);
448
- expect(mark3.building).toBe(false);
449
- });
450
-
451
- it('handles attempted zero-radius circle', () => {
452
- const point = { x: 5, y: 5 };
453
-
454
- // First click
455
- equalPoints.mockReturnValue(false);
456
- const mark1 = circleTool.addPoint(point, null);
457
-
458
- // Second click at same point
459
- equalPoints.mockReturnValue(true);
460
- const mark2 = circleTool.addPoint(point, mark1);
461
-
462
- // Should return unchanged mark
463
- expect(mark2).toBe(mark1);
464
- expect(mark2.building).toBe(true);
465
- });
466
-
467
- it('handles circle with labels', () => {
468
- equalPoints.mockReturnValue(false);
469
-
470
- const firstPoint = { x: 0, y: 0, label: 'Center' };
471
- const mark1 = circleTool.addPoint(firstPoint, null);
472
-
473
- const secondPoint = { x: 5, y: 0, label: 'Edge' };
474
- const mark2 = circleTool.addPoint(secondPoint, mark1);
475
-
476
- expect(mark2.root.label).toBe('Center');
477
- expect(mark2.building).toBe(false);
478
- });
479
- });
480
- });
@@ -1,81 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
- import { gridDraggable, types } from '@pie-lib/plot';
5
- import { color } from '@pie-lib/render-ui';
6
- import * as utils from '../../utils';
7
- import { correct, disabled, disabledSecondary, incorrect, missing } from '../shared/styles';
8
- import { styled } from '@mui/material/styles';
9
-
10
- class RawCircle extends React.Component {
11
- static propTypes = {
12
- className: PropTypes.string,
13
- correctness: PropTypes.string,
14
- disabled: PropTypes.bool,
15
- x: PropTypes.number.isRequired,
16
- y: PropTypes.number.isRequired,
17
- radius: PropTypes.number,
18
- graphProps: types.GraphPropsType.isRequired,
19
- };
20
-
21
- render() {
22
- const { disabled, className, correctness, x, y, radius, graphProps, ...rest } = this.props;
23
- const { scale } = graphProps;
24
- const rx = Math.abs(scale.x(x + radius) - scale.x(x));
25
- const ry = Math.abs(scale.y(y + radius) - scale.y(y));
26
-
27
- return (
28
- <StyledEllipse
29
- className={classNames(className, disabled && 'disabledSecondary', correctness)}
30
- cx={scale.x(x)}
31
- cy={scale.y(y)}
32
- rx={rx}
33
- ry={ry}
34
- {...rest}
35
- />
36
- );
37
- }
38
- }
39
-
40
- // helper to convert old style functions
41
- const applyStyle = (fn) => ({
42
- ...fn('stroke'),
43
- '&:hover': {
44
- strokeWidth: 3,
45
- ...fn('stroke'),
46
- },
47
- });
48
-
49
- const StyledEllipse = styled('ellipse')(() => ({
50
- fill: 'transparent',
51
- stroke: color.defaults.BLACK,
52
- strokeWidth: 3,
53
- transition: 'stroke 200ms ease-in, stroke-width 200ms ease-in',
54
- '&:hover': {
55
- strokeWidth: 6,
56
- stroke: color.defaults.PRIMARY_DARK,
57
- },
58
- '&.disabled': applyStyle(disabled),
59
- '&.disabledSecondary': applyStyle(disabledSecondary),
60
- '&.correct': applyStyle(correct),
61
- '&.incorrect': applyStyle(incorrect),
62
- '&.missing': applyStyle(missing),
63
- }));
64
-
65
- export const BgCircle = RawCircle;
66
-
67
- export default gridDraggable({
68
- bounds: (props, { domain, range }) => {
69
- const { x, y } = props;
70
- const area = { left: x, top: y, bottom: y, right: x };
71
- return utils.bounds(area, domain, range);
72
- },
73
- anchorPoint: (props) => {
74
- const { x, y } = props;
75
- return { x, y };
76
- },
77
- fromDelta: (props, delta) => {
78
- const newPoint = utils.point(props).add(utils.point(delta));
79
- return newPoint;
80
- },
81
- })(BgCircle);