@pie-lib/graphing 4.1.0-beta.9 → 5.0.0-next.37

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 (361) 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 +51 -41
  171. package/CHANGELOG.json +0 -1
  172. package/CHANGELOG.md +0 -1469
  173. package/lib/axis/arrow.js +0 -79
  174. package/lib/axis/arrow.js.map +0 -1
  175. package/lib/axis/axes.js +0 -329
  176. package/lib/axis/axes.js.map +0 -1
  177. package/lib/axis/index.js +0 -21
  178. package/lib/axis/index.js.map +0 -1
  179. package/lib/bg.js +0 -114
  180. package/lib/bg.js.map +0 -1
  181. package/lib/container/actions.js +0 -18
  182. package/lib/container/actions.js.map +0 -1
  183. package/lib/container/index.js +0 -127
  184. package/lib/container/index.js.map +0 -1
  185. package/lib/container/marks.js +0 -22
  186. package/lib/container/marks.js.map +0 -1
  187. package/lib/container/middleware.js +0 -19
  188. package/lib/container/middleware.js.map +0 -1
  189. package/lib/container/reducer.js +0 -18
  190. package/lib/container/reducer.js.map +0 -1
  191. package/lib/coordinates-label.js +0 -79
  192. package/lib/coordinates-label.js.map +0 -1
  193. package/lib/graph-with-controls.js +0 -294
  194. package/lib/graph-with-controls.js.map +0 -1
  195. package/lib/graph.js +0 -327
  196. package/lib/graph.js.map +0 -1
  197. package/lib/grid-setup.js +0 -414
  198. package/lib/grid-setup.js.map +0 -1
  199. package/lib/grid.js +0 -131
  200. package/lib/grid.js.map +0 -1
  201. package/lib/index.js +0 -47
  202. package/lib/index.js.map +0 -1
  203. package/lib/key-legend.js +0 -201
  204. package/lib/key-legend.js.map +0 -1
  205. package/lib/label-svg-icon.js +0 -50
  206. package/lib/label-svg-icon.js.map +0 -1
  207. package/lib/labels.js +0 -243
  208. package/lib/labels.js.map +0 -1
  209. package/lib/mark-label.js +0 -285
  210. package/lib/mark-label.js.map +0 -1
  211. package/lib/toggle-bar.js +0 -252
  212. package/lib/toggle-bar.js.map +0 -1
  213. package/lib/tool-menu.js +0 -78
  214. package/lib/tool-menu.js.map +0 -1
  215. package/lib/tools/absolute/component.js +0 -29
  216. package/lib/tools/absolute/component.js.map +0 -1
  217. package/lib/tools/absolute/index.js +0 -50
  218. package/lib/tools/absolute/index.js.map +0 -1
  219. package/lib/tools/circle/bg-circle.js +0 -123
  220. package/lib/tools/circle/bg-circle.js.map +0 -1
  221. package/lib/tools/circle/component.js +0 -321
  222. package/lib/tools/circle/component.js.map +0 -1
  223. package/lib/tools/circle/index.js +0 -41
  224. package/lib/tools/circle/index.js.map +0 -1
  225. package/lib/tools/exponential/component.js +0 -28
  226. package/lib/tools/exponential/component.js.map +0 -1
  227. package/lib/tools/exponential/index.js +0 -56
  228. package/lib/tools/exponential/index.js.map +0 -1
  229. package/lib/tools/index.js +0 -86
  230. package/lib/tools/index.js.map +0 -1
  231. package/lib/tools/line/component.js +0 -97
  232. package/lib/tools/line/component.js.map +0 -1
  233. package/lib/tools/line/index.js +0 -11
  234. package/lib/tools/line/index.js.map +0 -1
  235. package/lib/tools/parabola/component.js +0 -28
  236. package/lib/tools/parabola/component.js.map +0 -1
  237. package/lib/tools/parabola/index.js +0 -50
  238. package/lib/tools/parabola/index.js.map +0 -1
  239. package/lib/tools/point/component.js +0 -148
  240. package/lib/tools/point/component.js.map +0 -1
  241. package/lib/tools/point/index.js +0 -24
  242. package/lib/tools/point/index.js.map +0 -1
  243. package/lib/tools/polygon/component.js +0 -437
  244. package/lib/tools/polygon/component.js.map +0 -1
  245. package/lib/tools/polygon/index.js +0 -89
  246. package/lib/tools/polygon/index.js.map +0 -1
  247. package/lib/tools/polygon/line.js +0 -112
  248. package/lib/tools/polygon/line.js.map +0 -1
  249. package/lib/tools/polygon/polygon.js +0 -130
  250. package/lib/tools/polygon/polygon.js.map +0 -1
  251. package/lib/tools/ray/component.js +0 -95
  252. package/lib/tools/ray/component.js.map +0 -1
  253. package/lib/tools/ray/index.js +0 -11
  254. package/lib/tools/ray/index.js.map +0 -1
  255. package/lib/tools/segment/component.js +0 -71
  256. package/lib/tools/segment/component.js.map +0 -1
  257. package/lib/tools/segment/index.js +0 -11
  258. package/lib/tools/segment/index.js.map +0 -1
  259. package/lib/tools/shared/arrow-head.js +0 -111
  260. package/lib/tools/shared/arrow-head.js.map +0 -1
  261. package/lib/tools/shared/icons/CorrectSVG.js +0 -40
  262. package/lib/tools/shared/icons/CorrectSVG.js.map +0 -1
  263. package/lib/tools/shared/icons/IncorrectSVG.js +0 -40
  264. package/lib/tools/shared/icons/IncorrectSVG.js.map +0 -1
  265. package/lib/tools/shared/icons/MissingSVG.js +0 -39
  266. package/lib/tools/shared/icons/MissingSVG.js.map +0 -1
  267. package/lib/tools/shared/line/index.js +0 -550
  268. package/lib/tools/shared/line/index.js.map +0 -1
  269. package/lib/tools/shared/line/line-path.js +0 -118
  270. package/lib/tools/shared/line/line-path.js.map +0 -1
  271. package/lib/tools/shared/line/with-root-edge.js +0 -121
  272. package/lib/tools/shared/line/with-root-edge.js.map +0 -1
  273. package/lib/tools/shared/point/arrow-point.js +0 -72
  274. package/lib/tools/shared/point/arrow-point.js.map +0 -1
  275. package/lib/tools/shared/point/arrow.js +0 -67
  276. package/lib/tools/shared/point/arrow.js.map +0 -1
  277. package/lib/tools/shared/point/base-point.js +0 -157
  278. package/lib/tools/shared/point/base-point.js.map +0 -1
  279. package/lib/tools/shared/point/index.js +0 -68
  280. package/lib/tools/shared/point/index.js.map +0 -1
  281. package/lib/tools/shared/styles.js +0 -33
  282. package/lib/tools/shared/styles.js.map +0 -1
  283. package/lib/tools/shared/types.js +0 -16
  284. package/lib/tools/shared/types.js.map +0 -1
  285. package/lib/tools/sine/component.js +0 -40
  286. package/lib/tools/sine/component.js.map +0 -1
  287. package/lib/tools/sine/index.js +0 -50
  288. package/lib/tools/sine/index.js.map +0 -1
  289. package/lib/tools/vector/component.js +0 -68
  290. package/lib/tools/vector/component.js.map +0 -1
  291. package/lib/tools/vector/index.js +0 -11
  292. package/lib/tools/vector/index.js.map +0 -1
  293. package/lib/undo-redo.js +0 -86
  294. package/lib/undo-redo.js.map +0 -1
  295. package/lib/use-debounce.js +0 -25
  296. package/lib/use-debounce.js.map +0 -1
  297. package/lib/utils.js +0 -229
  298. package/lib/utils.js.map +0 -1
  299. package/src/axis/arrow.jsx +0 -57
  300. package/src/axis/axes.jsx +0 -285
  301. package/src/axis/index.js +0 -3
  302. package/src/bg.jsx +0 -96
  303. package/src/container/actions.js +0 -8
  304. package/src/container/index.jsx +0 -91
  305. package/src/container/marks.js +0 -14
  306. package/src/container/middleware.js +0 -7
  307. package/src/container/reducer.js +0 -5
  308. package/src/coordinates-label.jsx +0 -63
  309. package/src/graph-with-controls.jsx +0 -239
  310. package/src/graph.jsx +0 -303
  311. package/src/grid-setup.jsx +0 -432
  312. package/src/grid.jsx +0 -133
  313. package/src/index.js +0 -7
  314. package/src/key-legend.jsx +0 -142
  315. package/src/label-svg-icon.jsx +0 -39
  316. package/src/labels.jsx +0 -207
  317. package/src/mark-label.jsx +0 -244
  318. package/src/toggle-bar.jsx +0 -224
  319. package/src/tool-menu.jsx +0 -49
  320. package/src/tools/absolute/component.jsx +0 -23
  321. package/src/tools/absolute/index.js +0 -31
  322. package/src/tools/circle/bg-circle.jsx +0 -81
  323. package/src/tools/circle/component.jsx +0 -264
  324. package/src/tools/circle/index.js +0 -25
  325. package/src/tools/exponential/component.jsx +0 -23
  326. package/src/tools/exponential/index.js +0 -39
  327. package/src/tools/index.js +0 -48
  328. package/src/tools/line/component.jsx +0 -93
  329. package/src/tools/line/index.js +0 -4
  330. package/src/tools/parabola/component.jsx +0 -23
  331. package/src/tools/parabola/index.js +0 -31
  332. package/src/tools/point/component.jsx +0 -126
  333. package/src/tools/point/index.js +0 -11
  334. package/src/tools/polygon/component.jsx +0 -409
  335. package/src/tools/polygon/index.js +0 -52
  336. package/src/tools/polygon/line.jsx +0 -74
  337. package/src/tools/polygon/polygon.jsx +0 -110
  338. package/src/tools/ray/component.jsx +0 -92
  339. package/src/tools/ray/index.js +0 -4
  340. package/src/tools/segment/component.jsx +0 -65
  341. package/src/tools/segment/index.js +0 -4
  342. package/src/tools/shared/arrow-head.jsx +0 -102
  343. package/src/tools/shared/icons/CorrectSVG.jsx +0 -32
  344. package/src/tools/shared/icons/IncorrectSVG.jsx +0 -30
  345. package/src/tools/shared/icons/MissingSVG.jsx +0 -31
  346. package/src/tools/shared/line/index.jsx +0 -487
  347. package/src/tools/shared/line/line-path.jsx +0 -80
  348. package/src/tools/shared/line/with-root-edge.jsx +0 -97
  349. package/src/tools/shared/point/arrow-point.jsx +0 -46
  350. package/src/tools/shared/point/arrow.jsx +0 -37
  351. package/src/tools/shared/point/base-point.jsx +0 -121
  352. package/src/tools/shared/point/index.jsx +0 -54
  353. package/src/tools/shared/styles.js +0 -27
  354. package/src/tools/shared/types.js +0 -10
  355. package/src/tools/sine/component.jsx +0 -32
  356. package/src/tools/sine/index.js +0 -33
  357. package/src/tools/vector/component.jsx +0 -56
  358. package/src/tools/vector/index.js +0 -4
  359. package/src/undo-redo.jsx +0 -45
  360. package/src/use-debounce.js +0 -13
  361. package/src/utils.js +0 -224
@@ -1,224 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import { styled } from '@mui/material/styles';
4
- import Button from '@mui/material/Button';
5
- import { color } from '@pie-lib/render-ui';
6
- import { allTools } from './tools';
7
- import { DragProvider } from '@pie-lib/drag';
8
- import { useDraggable, useDroppable } from '@dnd-kit/core';
9
- import { CSS } from '@dnd-kit/utilities';
10
- import { arrayMove } from '@dnd-kit/sortable';
11
- import Translator from '@pie-lib/translator';
12
-
13
- const { translator } = Translator;
14
-
15
- const StyledMiniButton = styled(Button, {
16
- shouldForwardProp: (prop) => !['selected'].includes(prop),
17
- })(({ selected, disabled }) => ({
18
- color: color.text(),
19
- backgroundColor: color.background(),
20
- border: `1px solid ${color.buttonBorder()}`,
21
- '&:hover': {
22
- backgroundColor: color.buttonHoverBg(),
23
- },
24
- ...(selected && {
25
- border: `1px solid ${color.secondary()}`,
26
- }),
27
- ...(!selected && {
28
- '& span': {
29
- color: color.primary(),
30
- },
31
- }),
32
- ...(disabled && {
33
- '& span': {
34
- color: color.primary(),
35
- },
36
- backgroundColor: color.disabled(),
37
- }),
38
- }));
39
-
40
- export const MiniButton = (props) => {
41
- const { disabled, className, selected, value, onClick, language } = props;
42
- const translatorKey = value.toLowerCase();
43
-
44
- return (
45
- <StyledMiniButton
46
- size="small"
47
- disabled={disabled}
48
- className={className}
49
- selected={selected}
50
- value={value}
51
- key={value}
52
- variant="outlined"
53
- onClick={(e) => onClick({ ...e, buttonValue: value })}
54
- >
55
- {translator.t(`graphing.${translatorKey}`, { lng: language })}
56
- </StyledMiniButton>
57
- );
58
- };
59
-
60
- MiniButton.propTypes = {
61
- disabled: PropTypes.bool,
62
- className: PropTypes.string,
63
- disabledClassName: PropTypes.string,
64
- selected: PropTypes.bool,
65
- value: PropTypes.string,
66
- onClick: PropTypes.func,
67
- language: PropTypes.string,
68
- };
69
-
70
- const StyledToolsContainer = styled('div')(() => ({
71
- display: 'flex',
72
- flexWrap: 'wrap',
73
- }));
74
-
75
- const StyledButton = styled(MiniButton)(({ theme }) => ({
76
- marginRight: theme.spacing(0.5),
77
- marginBottom: theme.spacing(0.5),
78
- color: color.text(),
79
- }));
80
-
81
- const StyledWrapper = styled('div')({
82
- position: 'relative',
83
- });
84
-
85
- export class ToggleBar extends React.Component {
86
- static propTypes = {
87
- className: PropTypes.string,
88
- options: PropTypes.arrayOf(PropTypes.string),
89
- selectedToolType: PropTypes.string,
90
- disabled: PropTypes.bool,
91
- draggableTools: PropTypes.bool,
92
- onChange: PropTypes.func,
93
- onChangeToolsOrder: PropTypes.func,
94
- language: PropTypes.string,
95
- };
96
-
97
- static defaultProps = {};
98
-
99
- select = (e) => this.props.onChange(e.buttonValue || e.target.textContent);
100
-
101
- moveTool = (dragIndex, hoverIndex) => {
102
- const { options, onChangeToolsOrder } = this.props;
103
- const newOptions = arrayMove(options, dragIndex, hoverIndex);
104
- onChangeToolsOrder(newOptions);
105
- };
106
-
107
- handleDragEnd = (event) => {
108
- const { active, over } = event;
109
-
110
- if (!over || !active) return;
111
-
112
- const activeData = active.data.current;
113
- const overData = over.data.current;
114
-
115
- if (activeData?.type === 'tool' && overData?.type === 'tool') {
116
- const dragIndex = activeData.index;
117
- const hoverIndex = overData.index;
118
-
119
- if (dragIndex !== hoverIndex) {
120
- this.moveTool(dragIndex, hoverIndex);
121
- }
122
- }
123
- };
124
-
125
- render() {
126
- const { className, disabled, options, selectedToolType, draggableTools, language } = this.props;
127
-
128
- return (
129
- <DragProvider onDragEnd={this.handleDragEnd}>
130
- <StyledToolsContainer className={className}>
131
- {(options || []).map((option, index) => {
132
- if ((allTools || []).includes(option)) {
133
- const isSelected = option === selectedToolType;
134
- const toolRef = React.createRef();
135
-
136
- return (
137
- <DragTool
138
- key={option}
139
- index={index}
140
- value={option}
141
- draggable={draggableTools}
142
- moveTool={this.moveTool}
143
- toolRef={toolRef}
144
- >
145
- <StyledButton
146
- disabled={disabled}
147
- disableRipple={true}
148
- onClick={this.select}
149
- value={option}
150
- selected={isSelected}
151
- language={language}
152
- />
153
- </DragTool>
154
- );
155
- }
156
- })}
157
- </StyledToolsContainer>
158
- </DragProvider>
159
- );
160
- }
161
- }
162
-
163
- // DragTool functional component using @dnd-kit hooks
164
- function DragTool({ children, index, draggable, toolRef, value }) {
165
- const {
166
- attributes,
167
- listeners,
168
- setNodeRef: setDragNodeRef,
169
- transform,
170
- transition,
171
- isDragging,
172
- } = useDraggable({
173
- id: `tool-${value}-${index}`,
174
- disabled: !draggable,
175
- data: {
176
- type: 'tool',
177
- index,
178
- value,
179
- },
180
- });
181
-
182
- const { setNodeRef: setDropNodeRef } = useDroppable({
183
- id: `drop-tool-${value}-${index}`,
184
- data: {
185
- type: 'tool',
186
- index,
187
- accepts: ['tool'],
188
- },
189
- });
190
-
191
- // Combine refs
192
- const setNodeRef = (node) => {
193
- setDragNodeRef(node);
194
- setDropNodeRef(node);
195
- if (toolRef?.current) {
196
- toolRef.current = node;
197
- }
198
- };
199
-
200
- const style = {
201
- transform: CSS.Transform.toString(transform),
202
- transition,
203
- opacity: isDragging ? 0.5 : 1,
204
- };
205
-
206
- return (
207
- <StyledWrapper ref={setNodeRef} style={style}>
208
- <div {...attributes} {...listeners}>
209
- {children}
210
- </div>
211
- </StyledWrapper>
212
- );
213
- }
214
-
215
- DragTool.propTypes = {
216
- children: PropTypes.node,
217
- index: PropTypes.number,
218
- draggable: PropTypes.bool,
219
- moveTool: PropTypes.func,
220
- toolRef: PropTypes.object,
221
- value: PropTypes.string,
222
- };
223
-
224
- export default ToggleBar;
package/src/tool-menu.jsx DELETED
@@ -1,49 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
-
5
- import ToggleBar from './toggle-bar';
6
-
7
- export class ToolMenu extends React.Component {
8
- static propTypes = {
9
- className: PropTypes.string,
10
- currentToolType: PropTypes.string,
11
- disabled: PropTypes.bool,
12
- draggableTools: PropTypes.bool,
13
- labelModeEnabled: PropTypes.bool,
14
- onChange: PropTypes.func,
15
- onChangeTools: PropTypes.func,
16
- toolbarTools: PropTypes.arrayOf(PropTypes.string),
17
- language: PropTypes.string,
18
- };
19
-
20
- static defaultProps = {
21
- toolbarTools: [],
22
- };
23
-
24
- updateToolsOrder = (tools) => {
25
- const { onChangeTools } = this.props;
26
- onChangeTools(tools);
27
- };
28
-
29
- render() {
30
- const { className, currentToolType, disabled, draggableTools, onChange, language } = this.props;
31
- let { toolbarTools } = this.props;
32
-
33
- return (
34
- <div className={classNames(className)}>
35
- <ToggleBar
36
- disabled={disabled}
37
- draggableTools={draggableTools}
38
- options={toolbarTools}
39
- selectedToolType={currentToolType}
40
- onChange={onChange}
41
- onChangeToolsOrder={(tools) => this.updateToolsOrder(tools)}
42
- language={language}
43
- />
44
- </div>
45
- );
46
- }
47
- }
48
-
49
- export default ToolMenu;
@@ -1,23 +0,0 @@
1
- import debug from 'debug';
2
- import { absoluteFromTwoPoints, buildDataPoints } from '@pie-lib/graphing-utils';
3
- import { rootEdgeComponent, withRootEdge } from '../shared/line/with-root-edge';
4
-
5
- const log = debug('pie-lib:graphing:absolute');
6
-
7
- const Absolute = withRootEdge((props) => {
8
- const { root, edge, graphProps } = props;
9
- const { domain, range } = graphProps;
10
-
11
- const dataPoints =
12
- edge && edge.x === root.x
13
- ? []
14
- : buildDataPoints(domain, range, root, edge, absoluteFromTwoPoints(root, edge), true);
15
-
16
- log('dataPoints:', dataPoints);
17
-
18
- return { root: props.root, edge: props.edge, dataPoints, enableCurve: false };
19
- });
20
-
21
- const Component = rootEdgeComponent(Absolute);
22
-
23
- export default Component;
@@ -1,31 +0,0 @@
1
- import Absolute from './component';
2
- import debug from 'debug';
3
- import { equalPoints, sameAxes } from '../../utils';
4
-
5
- const log = debug('pie-lib:graphing:absolute');
6
-
7
- export const tool = () => ({
8
- type: 'absolute',
9
- Component: Absolute,
10
- complete: (data, mark) => ({ ...mark, building: false, closed: true }),
11
- addPoint: (point, mark) => {
12
- log('add point to absolute model: ', point, 'mark: ', mark);
13
- if (mark && (equalPoints(mark.root, point) || sameAxes(mark.root, point))) {
14
- return mark;
15
- }
16
-
17
- if (!mark) {
18
- return {
19
- type: 'absolute',
20
- root: point,
21
- edge: undefined,
22
- closed: false,
23
- building: true,
24
- };
25
- } else if (mark && !mark.root) {
26
- throw new Error('no root - should never happen');
27
- } else {
28
- return { ...mark, edge: point, closed: true, building: false };
29
- }
30
- },
31
- });
@@ -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);
@@ -1,264 +0,0 @@
1
- import React from 'react';
2
- import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
- import { BasePoint } from '../shared/point';
5
- import BgCircle from './bg-circle';
6
- import { equalPoints, getMiddleOfTwoPoints, point, stripEmptyLabel } from '../../utils';
7
- import { types } from '@pie-lib/plot';
8
- import { rootEdgeComponent } from '../shared/line/with-root-edge';
9
- import ReactDOM from 'react-dom';
10
- import MarkLabel from '../../mark-label';
11
- import { isEmpty } from 'lodash-es';
12
- import { color } from '@pie-lib/render-ui';
13
- import { keyframes, styled } from '@mui/material/styles';
14
-
15
- const opacityPulsate = (opacity) =>
16
- keyframes({
17
- '0%': { opacity: '0.0' },
18
- '50%': { opacity },
19
- '100%': { opacity: '0.0' },
20
- });
21
-
22
- const getRadius = (from, outer) => {
23
- const c = point(from);
24
- return c.dist(point(outer));
25
- };
26
-
27
- export class RawBaseCircle extends React.Component {
28
- static propTypes = {
29
- building: PropTypes.bool,
30
- className: PropTypes.string,
31
- coordinatesOnHover: PropTypes.bool,
32
- correctness: PropTypes.string,
33
- from: types.PointType,
34
- disabled: PropTypes.bool,
35
- to: types.PointType,
36
- middle: types.PointType,
37
- onChange: PropTypes.func.isRequired,
38
- onDragStart: PropTypes.func,
39
- onDragStop: PropTypes.func,
40
- graphProps: types.GraphPropsType.isRequired,
41
- onClick: PropTypes.func,
42
- labelNode: PropTypes.object,
43
- labelModeEnabled: PropTypes.bool,
44
- changeMarkProps: PropTypes.func,
45
- limitLabeling: PropTypes.bool,
46
- };
47
-
48
- static defaultProps = {
49
- onClick: () => ({}),
50
- };
51
-
52
- onChangePoint = (point) => {
53
- const { middle, onChange } = this.props;
54
- const { from, to } = point;
55
-
56
- if (!equalPoints(from, to)) {
57
- if (middle) {
58
- point.middle = { ...middle, ...getMiddleOfTwoPoints(from, to) };
59
- }
60
- onChange(point);
61
- }
62
- };
63
-
64
- dragFrom = (draggedFrom) => {
65
- const { from, to } = this.props;
66
-
67
- if (from.label) draggedFrom.label = from.label;
68
- if (!equalPoints(draggedFrom, to)) {
69
- this.onChangePoint({ from: draggedFrom, to });
70
- }
71
- };
72
-
73
- dragTo = (draggedTo) => {
74
- const { from, to } = this.props;
75
-
76
- if (to.label) draggedTo.label = to.label;
77
- if (!equalPoints(from, draggedTo)) {
78
- this.onChangePoint({ from, to: draggedTo });
79
- }
80
- };
81
-
82
- dragCircle = (draggedFrom) => {
83
- const { from, to, onChange, middle } = this.props;
84
- const diff = point(from).sub(point(draggedFrom));
85
- const draggedTo = point(to).sub(diff);
86
-
87
- if (from.label) draggedFrom.label = from.label;
88
- if (to.label) draggedTo.label = to.label;
89
-
90
- const updated = { from: draggedFrom, to: draggedTo };
91
- if (middle) {
92
- updated.middle = { ...middle, ...getMiddleOfTwoPoints(draggedFrom, draggedTo) };
93
- }
94
-
95
- this.setState({ draggedroot: undefined, draggedOuter: undefined, isCircleDrag: false }, () => onChange(updated));
96
- };
97
-
98
- labelChange = (point, type) => {
99
- const { changeMarkProps } = this.props;
100
- const update = { ...point };
101
- if (!point.label || isEmpty(point.label)) delete update.label;
102
- changeMarkProps({ [type]: update });
103
- };
104
-
105
- clickPoint = (point, type, data) => {
106
- const { changeMarkProps, disabled, from, to, middle, labelModeEnabled, limitLabeling, onClick } = this.props;
107
-
108
- if (!labelModeEnabled) {
109
- onClick(point || data);
110
- return;
111
- }
112
-
113
- if (disabled || limitLabeling) return;
114
-
115
- if (type === 'middle' && !point && from && to) {
116
- point = { ...point, ...getMiddleOfTwoPoints(from, to) };
117
- }
118
- changeMarkProps({
119
- from: stripEmptyLabel(from),
120
- to: stripEmptyLabel(to),
121
- middle: stripEmptyLabel(middle),
122
- [type]: { label: '', ...point },
123
- });
124
-
125
- if (this.input[type]) {
126
- this.input[type].focus();
127
- }
128
- };
129
-
130
- input = {};
131
-
132
- render() {
133
- let {
134
- from,
135
- to,
136
- middle,
137
- disabled,
138
- building,
139
- coordinatesOnHover,
140
- onDragStart,
141
- onDragStop,
142
- onClick,
143
- correctness,
144
- graphProps,
145
- labelNode,
146
- labelModeEnabled,
147
- } = this.props;
148
-
149
- const common = { onDragStart, onDragStop, graphProps, onClick };
150
- to = to || from;
151
- const radius = getRadius(from, to);
152
-
153
- let fromLabelNode = null;
154
- let toLabelNode = null;
155
- let circleLabelNode = null;
156
-
157
- if (labelNode) {
158
- if (from?.label !== undefined) {
159
- fromLabelNode = ReactDOM.createPortal(
160
- <MarkLabel
161
- inputRef={(r) => (this.input.from = r)}
162
- disabled={!labelModeEnabled}
163
- mark={from}
164
- graphProps={graphProps}
165
- onChange={(label) => this.labelChange({ ...from, label }, 'from')}
166
- />,
167
- labelNode,
168
- );
169
- }
170
-
171
- if (to?.label !== undefined) {
172
- toLabelNode = ReactDOM.createPortal(
173
- <MarkLabel
174
- inputRef={(r) => (this.input.to = r)}
175
- disabled={!labelModeEnabled}
176
- mark={to}
177
- graphProps={graphProps}
178
- onChange={(label) => this.labelChange({ ...to, label }, 'to')}
179
- />,
180
- labelNode,
181
- );
182
- }
183
-
184
- if (middle?.label !== undefined) {
185
- circleLabelNode = ReactDOM.createPortal(
186
- <MarkLabel
187
- inputRef={(r) => (this.input.middle = r)}
188
- disabled={!labelModeEnabled}
189
- mark={middle}
190
- graphProps={graphProps}
191
- onChange={(label) => this.labelChange({ ...middle, label }, 'middle')}
192
- />,
193
- labelNode,
194
- );
195
- }
196
- }
197
-
198
- return (
199
- <g>
200
- <StyledBgCircle
201
- disabled={building || disabled}
202
- correctness={correctness}
203
- className={classNames(building && 'bgCircleBuilding')}
204
- x={from.x}
205
- y={from.y}
206
- radius={radius}
207
- onDrag={this.dragCircle}
208
- {...common}
209
- onClick={(data) => this.clickPoint(middle, 'middle', data)}
210
- />
211
- {circleLabelNode}
212
-
213
- <BasePoint
214
- disabled={building || disabled}
215
- coordinatesOnHover={coordinatesOnHover}
216
- correctness={correctness}
217
- labelNode={labelNode}
218
- x={to.x}
219
- y={to.y}
220
- onDrag={this.dragTo}
221
- {...common}
222
- onClick={(data) => this.clickPoint(to, 'to', data)}
223
- />
224
- {toLabelNode}
225
-
226
- <BasePoint
227
- disabled={building || disabled}
228
- coordinatesOnHover={coordinatesOnHover}
229
- correctness={correctness}
230
- labelNode={labelNode}
231
- x={from.x}
232
- y={from.y}
233
- className="from"
234
- onDrag={this.dragFrom}
235
- {...common}
236
- onClick={(data) => this.clickPoint(from, 'from', data)}
237
- />
238
- {fromLabelNode}
239
- </g>
240
- );
241
- }
242
- }
243
-
244
- // MUI v5 styled() replaces withStyles
245
- const StyledBgCircle = styled(BgCircle)(() => ({
246
- '&.outerLine': {
247
- fill: color.transparent(),
248
- stroke: color.defaults.BLACK,
249
- strokeWidth: 4,
250
- '&:hover': {
251
- strokeWidth: 6,
252
- stroke: color.defaults.PRIMARY_DARK,
253
- },
254
- },
255
- '&.bgCircleBuilding': {
256
- stroke: color.defaults.BLACK,
257
- animation: `${opacityPulsate('0.3')} 2s ease-out infinite`,
258
- opacity: 1,
259
- },
260
- }));
261
-
262
- export const BaseCircle = RawBaseCircle;
263
- const Component = rootEdgeComponent(BaseCircle);
264
- export default Component;
@@ -1,25 +0,0 @@
1
- import Circle from './component';
2
- import { equalPoints } from '../../utils';
3
-
4
- export const tool = () => ({
5
- type: 'circle',
6
- Component: Circle,
7
- hover: (point, mark) => {
8
- return { ...mark, edge: point };
9
- },
10
- addPoint: (point, mark) => {
11
- if (mark && equalPoints(mark.root, point)) {
12
- return mark;
13
- }
14
-
15
- if (!mark) {
16
- return {
17
- type: 'circle',
18
- root: point,
19
- building: true,
20
- };
21
- } else {
22
- return { ...mark, edge: point, building: false };
23
- }
24
- },
25
- });