@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,294 +0,0 @@
1
- import { addPointToArray, tool } from '../index';
2
- import Polygon from '../component';
3
-
4
- const xy = (x, y) => ({ x, y });
5
-
6
- /**
7
- * Test suite for polygon tool
8
- *
9
- * Note: equalPoints() uses roundNumber() which rounds to 4 decimal places.
10
- * - Values like 1.0001 and 1.0002 are considered DIFFERENT (round to 1.0001 and 1.0002)
11
- * - Values like 1.00001 and 1.00002 are considered EQUAL (both round to 1.0000)
12
- */
13
-
14
- describe('polygon', () => {
15
- describe('addPointToArray', () => {
16
- const assertAddPoint = (point, arr, expected) => {
17
- it(`returns expected result when adding point to array`, () => {
18
- const result = addPointToArray(point, arr);
19
- expect(result).toEqual(expected);
20
- });
21
- };
22
-
23
- assertAddPoint(xy(0, 0), [], { closed: false, points: [xy(0, 0)] });
24
- assertAddPoint(xy(0, 0), [xy(0, 0)], { closed: false, points: [xy(0, 0)] });
25
- assertAddPoint(xy(1, 1), [xy(0, 0)], {
26
- closed: false,
27
- points: [xy(0, 0), xy(1, 1)],
28
- });
29
-
30
- it('handles undefined array', () => {
31
- const result = addPointToArray(xy(1, 2), undefined);
32
- expect(result).toEqual({ points: [xy(1, 2)], closed: false });
33
- });
34
-
35
- it('handles null array', () => {
36
- const result = addPointToArray(xy(1, 2), null);
37
- expect(result).toEqual({ points: [xy(1, 2)], closed: false });
38
- });
39
-
40
- it('closes polygon when clicking first point', () => {
41
- const firstPoint = xy(1, 2);
42
- const points = [firstPoint, xy(3, 4), xy(5, 6)];
43
- const result = addPointToArray(firstPoint, points);
44
-
45
- expect(result).toEqual({ points, closed: true });
46
- });
47
-
48
- it('does not add duplicate point in middle', () => {
49
- const points = [xy(1, 2), xy(3, 4), xy(5, 6)];
50
- const result = addPointToArray(points[1], points);
51
-
52
- expect(result).toEqual({ points, closed: false });
53
- });
54
-
55
- it('adds new point to array with 2+ points', () => {
56
- const points = [xy(0, 0), xy(1, 1)];
57
- const newPoint = xy(2, 2);
58
- const result = addPointToArray(newPoint, points);
59
-
60
- expect(result).toEqual({
61
- points: [...points, newPoint],
62
- closed: false,
63
- });
64
- });
65
-
66
- it('handles points within rounding tolerance', () => {
67
- // roundNumber rounds to 4 decimal places
68
- // 1.0001 and 1.0002 round to different values after toFixed(4)
69
- const firstPoint = xy(1.0001, 2.0001);
70
- const closePoint = xy(1.0002, 2.0002);
71
- const result = addPointToArray(closePoint, [firstPoint]);
72
-
73
- // Since they round to different values, both points are added
74
- expect(result).toEqual({ points: [firstPoint, closePoint], closed: false });
75
- });
76
-
77
- it('handles points that round to exactly the same value', () => {
78
- // Points that round to exactly the same value after toFixed(4)
79
- const firstPoint = xy(1.0001, 2.0001);
80
- const samePoint = xy(1.0001, 2.0001);
81
- const result = addPointToArray(samePoint, [firstPoint]);
82
-
83
- // Since they round to the same value, point is not added
84
- expect(result).toEqual({ points: [firstPoint], closed: false });
85
- });
86
- });
87
- });
88
-
89
- describe('tool', () => {
90
- let t;
91
-
92
- beforeEach(() => {
93
- t = tool();
94
- });
95
-
96
- describe('tool structure', () => {
97
- it('creates polygon type', () => {
98
- expect(t.type).toEqual('polygon');
99
- });
100
-
101
- it('has Component property', () => {
102
- expect(t.Component).toBe(Polygon);
103
- });
104
-
105
- it('has complete method', () => {
106
- expect(typeof t.complete).toBe('function');
107
- });
108
-
109
- it('has addPoint method', () => {
110
- expect(typeof t.addPoint).toBe('function');
111
- });
112
- });
113
-
114
- describe('complete', () => {
115
- it('closes polygon', () => {
116
- expect(t.complete()).toEqual({ building: false, closed: true });
117
- });
118
-
119
- it('marks polygon as not building', () => {
120
- const mark = {
121
- type: 'polygon',
122
- points: [xy(1, 2), xy(3, 4)],
123
- closed: false,
124
- building: true,
125
- };
126
- const result = t.complete(null, mark);
127
-
128
- expect(result.building).toBe(false);
129
- });
130
-
131
- it('marks polygon as closed', () => {
132
- const mark = {
133
- type: 'polygon',
134
- points: [xy(1, 2), xy(3, 4)],
135
- closed: false,
136
- building: true,
137
- };
138
- const result = t.complete(null, mark);
139
-
140
- expect(result.closed).toBe(true);
141
- });
142
-
143
- it('preserves other mark properties', () => {
144
- const mark = {
145
- type: 'polygon',
146
- points: [xy(1, 2)],
147
- closed: false,
148
- building: true,
149
- label: 'Test',
150
- color: 'red',
151
- };
152
- const result = t.complete(null, mark);
153
-
154
- expect(result.label).toBe('Test');
155
- expect(result.color).toBe('red');
156
- });
157
- });
158
-
159
- describe('addPoint', () => {
160
- it('creates new polygon with first point', () => {
161
- const mark = t.addPoint({ x: 0, y: 0 });
162
- expect(mark).toEqual({
163
- type: 'polygon',
164
- points: [{ x: 0, y: 0 }],
165
- closed: false,
166
- building: true,
167
- });
168
- });
169
-
170
- it('adds second point to existing mark', () => {
171
- const mark = t.addPoint({ x: 0, y: 0 }, { points: [{ x: 1, y: 1 }] });
172
- expect(mark).toEqual({
173
- building: true,
174
- closed: false,
175
- points: [
176
- { x: 1, y: 1 },
177
- { x: 0, y: 0 },
178
- ],
179
- });
180
- });
181
-
182
- it('creates mark with building flag true', () => {
183
- const mark = t.addPoint(xy(1, 2));
184
- expect(mark.building).toBe(true);
185
- });
186
-
187
- it('creates mark with closed flag false', () => {
188
- const mark = t.addPoint(xy(1, 2));
189
- expect(mark.closed).toBe(false);
190
- });
191
-
192
- it('adds multiple points sequentially', () => {
193
- let mark = t.addPoint(xy(0, 0));
194
- mark = t.addPoint(xy(1, 1), mark);
195
- mark = t.addPoint(xy(2, 2), mark);
196
-
197
- expect(mark.points).toHaveLength(3);
198
- expect(mark.points).toEqual([xy(0, 0), xy(1, 1), xy(2, 2)]);
199
- });
200
-
201
- it('closes polygon when clicking first point', () => {
202
- const firstPoint = xy(1, 2);
203
- let mark = t.addPoint(firstPoint);
204
- mark = t.addPoint(xy(3, 4), mark);
205
- mark = t.addPoint(xy(5, 6), mark);
206
- mark = t.addPoint(firstPoint, mark);
207
-
208
- expect(mark.closed).toBe(true);
209
- expect(mark.building).toBe(false);
210
- });
211
-
212
- it('does not add duplicate points', () => {
213
- const point = xy(1, 2);
214
- let mark = t.addPoint(point);
215
- mark = t.addPoint(xy(3, 4), mark);
216
- // Adding the first point again would close it
217
- // Let's add it one more time after closing to test duplicate handling
218
- mark = t.addPoint(point, mark);
219
-
220
- // When we add the first point to a polygon with 2+ points, it closes
221
- expect(mark.points).toHaveLength(2);
222
- expect(mark.closed).toBe(true);
223
- expect(mark.building).toBe(false);
224
- });
225
-
226
- it('does not add duplicate non-first points', () => {
227
- const firstPoint = xy(1, 2);
228
- const secondPoint = xy(3, 4);
229
- let mark = t.addPoint(firstPoint);
230
- mark = t.addPoint(secondPoint, mark);
231
- mark = t.addPoint(xy(5, 6), mark);
232
- // Try to add the second point again (not the first point)
233
- mark = t.addPoint(secondPoint, mark);
234
-
235
- // Should not add the duplicate point
236
- expect(mark.points).toHaveLength(3);
237
- expect(mark.points).toEqual([firstPoint, secondPoint, xy(5, 6)]);
238
- expect(mark.closed).toBe(false);
239
- });
240
-
241
- it('preserves mark properties when adding points', () => {
242
- const mark = {
243
- type: 'polygon',
244
- points: [xy(1, 2)],
245
- closed: false,
246
- building: true,
247
- label: 'My Shape',
248
- };
249
-
250
- const result = t.addPoint(xy(3, 4), mark);
251
- expect(result.label).toBe('My Shape');
252
- });
253
- });
254
-
255
- describe('integration scenarios', () => {
256
- it('creates complete triangle', () => {
257
- const p1 = xy(0, 0);
258
- const p2 = xy(1, 0);
259
- const p3 = xy(0.5, 1);
260
-
261
- let mark = t.addPoint(p1);
262
- mark = t.addPoint(p2, mark);
263
- mark = t.addPoint(p3, mark);
264
- mark = t.addPoint(p1, mark);
265
-
266
- expect(mark.points).toEqual([p1, p2, p3]);
267
- expect(mark.closed).toBe(true);
268
- expect(mark.building).toBe(false);
269
- });
270
-
271
- it('creates complete square', () => {
272
- const points = [xy(0, 0), xy(1, 0), xy(1, 1), xy(0, 1)];
273
-
274
- let mark = t.addPoint(points[0]);
275
- points.slice(1).forEach((p) => {
276
- mark = t.addPoint(p, mark);
277
- });
278
- mark = t.addPoint(points[0], mark);
279
-
280
- expect(mark.points).toEqual(points);
281
- expect(mark.closed).toBe(true);
282
- });
283
-
284
- it('can force complete without closing', () => {
285
- let mark = t.addPoint(xy(0, 0));
286
- mark = t.addPoint(xy(1, 1), mark);
287
- mark = t.complete(null, mark);
288
-
289
- expect(mark.closed).toBe(true);
290
- expect(mark.building).toBe(false);
291
- expect(mark.points).toHaveLength(2);
292
- });
293
- });
294
- });
@@ -1,35 +0,0 @@
1
- import { render } from '@pie-lib/test-utils';
2
- import React from 'react';
3
- import { Line } from '../line';
4
- import { graphProps } from '../../../__tests__/utils';
5
-
6
- describe('Line', () => {
7
- const renderComponent = (extras) => {
8
- const defaults = {
9
- classes: {},
10
- className: 'className',
11
- graphProps: graphProps(),
12
- };
13
- const props = { ...defaults, ...extras };
14
- return render(<Line {...props} />);
15
- };
16
- describe('rendering', () => {
17
- it('renders without crashing', () => {
18
- const { container } = renderComponent();
19
- expect(container.firstChild).toBeInTheDocument();
20
- });
21
-
22
- it('renders with from and to points', () => {
23
- const { container } = renderComponent({
24
- from: { x: 0, y: 0 },
25
- to: { x: 5, y: 5 },
26
- });
27
- expect(container.firstChild).toBeInTheDocument();
28
- });
29
-
30
- it('renders with className', () => {
31
- const { container } = renderComponent({ className: 'custom-line' });
32
- expect(container.firstChild).toBeInTheDocument();
33
- });
34
- });
35
- });
@@ -1,61 +0,0 @@
1
- import { render } from '@pie-lib/test-utils';
2
- import React from 'react';
3
- import { getPointString, Polygon } from '../polygon';
4
- import { graphProps } from '../../../__tests__/utils';
5
-
6
- const xy = (x, y) => ({ x, y });
7
-
8
- describe('Polygon', () => {
9
- const renderComponent = (extras) => {
10
- const defaults = {
11
- classes: {},
12
- className: 'className',
13
- graphProps: graphProps(),
14
- closed: false,
15
- };
16
- const props = { ...defaults, ...extras };
17
- return render(<Polygon {...props} />);
18
- };
19
-
20
- describe('rendering', () => {
21
- it('renders without crashing', () => {
22
- const { container } = renderComponent({ points: [{ x: 1, y: 1 }] });
23
- expect(container.firstChild).toBeInTheDocument();
24
- });
25
-
26
- it('renders multiple points', () => {
27
- const points = [xy(0, 0), xy(1, 1), xy(2, 0)];
28
- const { container } = renderComponent({ points });
29
- expect(container.firstChild).toBeInTheDocument();
30
- });
31
-
32
- it('renders closed polygon', () => {
33
- const points = [xy(0, 0), xy(1, 1), xy(2, 0)];
34
- const { container } = renderComponent({ points, closed: true });
35
- expect(container.firstChild).toBeInTheDocument();
36
- });
37
-
38
- it('renders open polygon', () => {
39
- const points = [xy(0, 0), xy(1, 1)];
40
- const { container } = renderComponent({ points, closed: false });
41
- expect(container.firstChild).toBeInTheDocument();
42
- });
43
- });
44
- });
45
-
46
- describe('getPointString', () => {
47
- const assertString = (arr, expected) => {
48
- it('creates: ', () => {
49
- const result = getPointString(arr, {
50
- x: jest.fn((n) => n),
51
- y: jest.fn((n) => n),
52
- });
53
-
54
- expect(result).toEqual(expected);
55
- });
56
- };
57
-
58
- assertString([xy(1, 1)], '1,1');
59
- assertString([xy(1, 1), xy(2, 1)], '1,1 2,1');
60
- assertString([xy(1, 1), xy(2, 1), xy(4, 4)], '1,1 2,1 4,4');
61
- });