@archireport/react-native-drawing 0.2.0

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 (323) hide show
  1. package/README.md +181 -0
  2. package/lib/commonjs/DrawingEditor.js +815 -0
  3. package/lib/commonjs/DrawingEditor.js.map +1 -0
  4. package/lib/commonjs/assets/toolbar-icons/arrow-disabled.png +0 -0
  5. package/lib/commonjs/assets/toolbar-icons/arrow-enabled.png +0 -0
  6. package/lib/commonjs/assets/toolbar-icons/arrow.png +0 -0
  7. package/lib/commonjs/assets/toolbar-icons/circle-disabled.png +0 -0
  8. package/lib/commonjs/assets/toolbar-icons/circle-enabled.png +0 -0
  9. package/lib/commonjs/assets/toolbar-icons/circle.png +0 -0
  10. package/lib/commonjs/assets/toolbar-icons/freehand-disabled.png +0 -0
  11. package/lib/commonjs/assets/toolbar-icons/freehand-enabled.png +0 -0
  12. package/lib/commonjs/assets/toolbar-icons/freehand.png +0 -0
  13. package/lib/commonjs/assets/toolbar-icons/line-disabled.png +0 -0
  14. package/lib/commonjs/assets/toolbar-icons/line-enabled.png +0 -0
  15. package/lib/commonjs/assets/toolbar-icons/line.png +0 -0
  16. package/lib/commonjs/assets/toolbar-icons/measure-disabled.png +0 -0
  17. package/lib/commonjs/assets/toolbar-icons/measure-enabled.png +0 -0
  18. package/lib/commonjs/assets/toolbar-icons/measure.png +0 -0
  19. package/lib/commonjs/assets/toolbar-icons/move-disabled.png +0 -0
  20. package/lib/commonjs/assets/toolbar-icons/move-enabled.png +0 -0
  21. package/lib/commonjs/assets/toolbar-icons/move.png +0 -0
  22. package/lib/commonjs/assets/toolbar-icons/polygon-disabled.png +0 -0
  23. package/lib/commonjs/assets/toolbar-icons/polygon-enabled.png +0 -0
  24. package/lib/commonjs/assets/toolbar-icons/polygon.png +0 -0
  25. package/lib/commonjs/assets/toolbar-icons/rectangle-disabled.png +0 -0
  26. package/lib/commonjs/assets/toolbar-icons/rectangle-enabled.png +0 -0
  27. package/lib/commonjs/assets/toolbar-icons/rectangle.png +0 -0
  28. package/lib/commonjs/assets/toolbar-icons/text-disabled.png +0 -0
  29. package/lib/commonjs/assets/toolbar-icons/text-enabled.png +0 -0
  30. package/lib/commonjs/assets/toolbar-icons/text.png +0 -0
  31. package/lib/commonjs/components/ColorPalette.js +379 -0
  32. package/lib/commonjs/components/ColorPalette.js.map +1 -0
  33. package/lib/commonjs/components/LineWidthSlider.js +70 -0
  34. package/lib/commonjs/components/LineWidthSlider.js.map +1 -0
  35. package/lib/commonjs/components/MeasurementEditModal.js +153 -0
  36. package/lib/commonjs/components/MeasurementEditModal.js.map +1 -0
  37. package/lib/commonjs/components/MiniMap.js +244 -0
  38. package/lib/commonjs/components/MiniMap.js.map +1 -0
  39. package/lib/commonjs/components/TextAnnotation.js +162 -0
  40. package/lib/commonjs/components/TextAnnotation.js.map +1 -0
  41. package/lib/commonjs/components/TextEditModal.js +133 -0
  42. package/lib/commonjs/components/TextEditModal.js.map +1 -0
  43. package/lib/commonjs/components/Toolbar.js +198 -0
  44. package/lib/commonjs/components/Toolbar.js.map +1 -0
  45. package/lib/commonjs/components/ZoomBadge.js +161 -0
  46. package/lib/commonjs/components/ZoomBadge.js.map +1 -0
  47. package/lib/commonjs/hooks/useFreehandGesture.js +173 -0
  48. package/lib/commonjs/hooks/useFreehandGesture.js.map +1 -0
  49. package/lib/commonjs/hooks/usePolygonGesture.js +109 -0
  50. package/lib/commonjs/hooks/usePolygonGesture.js.map +1 -0
  51. package/lib/commonjs/hooks/useSelectionGesture.js +236 -0
  52. package/lib/commonjs/hooks/useSelectionGesture.js.map +1 -0
  53. package/lib/commonjs/hooks/useShapeGesture.js +181 -0
  54. package/lib/commonjs/hooks/useShapeGesture.js.map +1 -0
  55. package/lib/commonjs/hooks/useViewportGesture.js +238 -0
  56. package/lib/commonjs/hooks/useViewportGesture.js.map +1 -0
  57. package/lib/commonjs/index.js +104 -0
  58. package/lib/commonjs/index.js.map +1 -0
  59. package/lib/commonjs/package.json +1 -0
  60. package/lib/commonjs/renderers/ArrowRenderer.js +118 -0
  61. package/lib/commonjs/renderers/ArrowRenderer.js.map +1 -0
  62. package/lib/commonjs/renderers/CircleRenderer.js +51 -0
  63. package/lib/commonjs/renderers/CircleRenderer.js.map +1 -0
  64. package/lib/commonjs/renderers/FreehandRenderer.js +31 -0
  65. package/lib/commonjs/renderers/FreehandRenderer.js.map +1 -0
  66. package/lib/commonjs/renderers/InProgressRenderer.js +174 -0
  67. package/lib/commonjs/renderers/InProgressRenderer.js.map +1 -0
  68. package/lib/commonjs/renderers/LineRenderer.js +27 -0
  69. package/lib/commonjs/renderers/LineRenderer.js.map +1 -0
  70. package/lib/commonjs/renderers/MeasurementRenderer.js +134 -0
  71. package/lib/commonjs/renderers/MeasurementRenderer.js.map +1 -0
  72. package/lib/commonjs/renderers/ObjectRenderer.js +65 -0
  73. package/lib/commonjs/renderers/ObjectRenderer.js.map +1 -0
  74. package/lib/commonjs/renderers/PolygonRenderer.js +46 -0
  75. package/lib/commonjs/renderers/PolygonRenderer.js.map +1 -0
  76. package/lib/commonjs/renderers/RectRenderer.js +51 -0
  77. package/lib/commonjs/renderers/RectRenderer.js.map +1 -0
  78. package/lib/commonjs/renderers/SelectedObjectRenderer.js +592 -0
  79. package/lib/commonjs/renderers/SelectedObjectRenderer.js.map +1 -0
  80. package/lib/commonjs/renderers/SelectionOverlay.js +120 -0
  81. package/lib/commonjs/renderers/SelectionOverlay.js.map +1 -0
  82. package/lib/commonjs/store/useDrawingStore.js +354 -0
  83. package/lib/commonjs/store/useDrawingStore.js.map +1 -0
  84. package/lib/commonjs/types.js +6 -0
  85. package/lib/commonjs/types.js.map +1 -0
  86. package/lib/commonjs/utils/colors.js +44 -0
  87. package/lib/commonjs/utils/colors.js.map +1 -0
  88. package/lib/commonjs/utils/coordinates.js +81 -0
  89. package/lib/commonjs/utils/coordinates.js.map +1 -0
  90. package/lib/commonjs/utils/hitTesting.js +181 -0
  91. package/lib/commonjs/utils/hitTesting.js.map +1 -0
  92. package/lib/commonjs/utils/serialization.js +42 -0
  93. package/lib/commonjs/utils/serialization.js.map +1 -0
  94. package/lib/commonjs/utils/shapeDetection.js +151 -0
  95. package/lib/commonjs/utils/shapeDetection.js.map +1 -0
  96. package/lib/commonjs/utils/smoothing.js +85 -0
  97. package/lib/commonjs/utils/smoothing.js.map +1 -0
  98. package/lib/module/DrawingEditor.js +811 -0
  99. package/lib/module/DrawingEditor.js.map +1 -0
  100. package/lib/module/assets/toolbar-icons/arrow-disabled.png +0 -0
  101. package/lib/module/assets/toolbar-icons/arrow-enabled.png +0 -0
  102. package/lib/module/assets/toolbar-icons/arrow.png +0 -0
  103. package/lib/module/assets/toolbar-icons/circle-disabled.png +0 -0
  104. package/lib/module/assets/toolbar-icons/circle-enabled.png +0 -0
  105. package/lib/module/assets/toolbar-icons/circle.png +0 -0
  106. package/lib/module/assets/toolbar-icons/freehand-disabled.png +0 -0
  107. package/lib/module/assets/toolbar-icons/freehand-enabled.png +0 -0
  108. package/lib/module/assets/toolbar-icons/freehand.png +0 -0
  109. package/lib/module/assets/toolbar-icons/line-disabled.png +0 -0
  110. package/lib/module/assets/toolbar-icons/line-enabled.png +0 -0
  111. package/lib/module/assets/toolbar-icons/line.png +0 -0
  112. package/lib/module/assets/toolbar-icons/measure-disabled.png +0 -0
  113. package/lib/module/assets/toolbar-icons/measure-enabled.png +0 -0
  114. package/lib/module/assets/toolbar-icons/measure.png +0 -0
  115. package/lib/module/assets/toolbar-icons/move-disabled.png +0 -0
  116. package/lib/module/assets/toolbar-icons/move-enabled.png +0 -0
  117. package/lib/module/assets/toolbar-icons/move.png +0 -0
  118. package/lib/module/assets/toolbar-icons/polygon-disabled.png +0 -0
  119. package/lib/module/assets/toolbar-icons/polygon-enabled.png +0 -0
  120. package/lib/module/assets/toolbar-icons/polygon.png +0 -0
  121. package/lib/module/assets/toolbar-icons/rectangle-disabled.png +0 -0
  122. package/lib/module/assets/toolbar-icons/rectangle-enabled.png +0 -0
  123. package/lib/module/assets/toolbar-icons/rectangle.png +0 -0
  124. package/lib/module/assets/toolbar-icons/text-disabled.png +0 -0
  125. package/lib/module/assets/toolbar-icons/text-enabled.png +0 -0
  126. package/lib/module/assets/toolbar-icons/text.png +0 -0
  127. package/lib/module/components/ColorPalette.js +374 -0
  128. package/lib/module/components/ColorPalette.js.map +1 -0
  129. package/lib/module/components/LineWidthSlider.js +64 -0
  130. package/lib/module/components/LineWidthSlider.js.map +1 -0
  131. package/lib/module/components/MeasurementEditModal.js +148 -0
  132. package/lib/module/components/MeasurementEditModal.js.map +1 -0
  133. package/lib/module/components/MiniMap.js +239 -0
  134. package/lib/module/components/MiniMap.js.map +1 -0
  135. package/lib/module/components/TextAnnotation.js +157 -0
  136. package/lib/module/components/TextAnnotation.js.map +1 -0
  137. package/lib/module/components/TextEditModal.js +128 -0
  138. package/lib/module/components/TextEditModal.js.map +1 -0
  139. package/lib/module/components/Toolbar.js +193 -0
  140. package/lib/module/components/Toolbar.js.map +1 -0
  141. package/lib/module/components/ZoomBadge.js +155 -0
  142. package/lib/module/components/ZoomBadge.js.map +1 -0
  143. package/lib/module/hooks/useFreehandGesture.js +169 -0
  144. package/lib/module/hooks/useFreehandGesture.js.map +1 -0
  145. package/lib/module/hooks/usePolygonGesture.js +106 -0
  146. package/lib/module/hooks/usePolygonGesture.js.map +1 -0
  147. package/lib/module/hooks/useSelectionGesture.js +232 -0
  148. package/lib/module/hooks/useSelectionGesture.js.map +1 -0
  149. package/lib/module/hooks/useShapeGesture.js +177 -0
  150. package/lib/module/hooks/useShapeGesture.js.map +1 -0
  151. package/lib/module/hooks/useViewportGesture.js +234 -0
  152. package/lib/module/hooks/useViewportGesture.js.map +1 -0
  153. package/lib/module/index.js +20 -0
  154. package/lib/module/index.js.map +1 -0
  155. package/lib/module/package.json +1 -0
  156. package/lib/module/renderers/ArrowRenderer.js +113 -0
  157. package/lib/module/renderers/ArrowRenderer.js.map +1 -0
  158. package/lib/module/renderers/CircleRenderer.js +46 -0
  159. package/lib/module/renderers/CircleRenderer.js.map +1 -0
  160. package/lib/module/renderers/FreehandRenderer.js +26 -0
  161. package/lib/module/renderers/FreehandRenderer.js.map +1 -0
  162. package/lib/module/renderers/InProgressRenderer.js +169 -0
  163. package/lib/module/renderers/InProgressRenderer.js.map +1 -0
  164. package/lib/module/renderers/LineRenderer.js +22 -0
  165. package/lib/module/renderers/LineRenderer.js.map +1 -0
  166. package/lib/module/renderers/MeasurementRenderer.js +129 -0
  167. package/lib/module/renderers/MeasurementRenderer.js.map +1 -0
  168. package/lib/module/renderers/ObjectRenderer.js +60 -0
  169. package/lib/module/renderers/ObjectRenderer.js.map +1 -0
  170. package/lib/module/renderers/PolygonRenderer.js +41 -0
  171. package/lib/module/renderers/PolygonRenderer.js.map +1 -0
  172. package/lib/module/renderers/RectRenderer.js +46 -0
  173. package/lib/module/renderers/RectRenderer.js.map +1 -0
  174. package/lib/module/renderers/SelectedObjectRenderer.js +587 -0
  175. package/lib/module/renderers/SelectedObjectRenderer.js.map +1 -0
  176. package/lib/module/renderers/SelectionOverlay.js +116 -0
  177. package/lib/module/renderers/SelectionOverlay.js.map +1 -0
  178. package/lib/module/store/useDrawingStore.js +350 -0
  179. package/lib/module/store/useDrawingStore.js.map +1 -0
  180. package/lib/module/types.js +4 -0
  181. package/lib/module/types.js.map +1 -0
  182. package/lib/module/utils/colors.js +40 -0
  183. package/lib/module/utils/colors.js.map +1 -0
  184. package/lib/module/utils/coordinates.js +71 -0
  185. package/lib/module/utils/coordinates.js.map +1 -0
  186. package/lib/module/utils/hitTesting.js +171 -0
  187. package/lib/module/utils/hitTesting.js.map +1 -0
  188. package/lib/module/utils/serialization.js +36 -0
  189. package/lib/module/utils/serialization.js.map +1 -0
  190. package/lib/module/utils/shapeDetection.js +147 -0
  191. package/lib/module/utils/shapeDetection.js.map +1 -0
  192. package/lib/module/utils/smoothing.js +80 -0
  193. package/lib/module/utils/smoothing.js.map +1 -0
  194. package/lib/typescript/DrawingEditor.d.ts +3 -0
  195. package/lib/typescript/DrawingEditor.d.ts.map +1 -0
  196. package/lib/typescript/components/ColorPalette.d.ts +9 -0
  197. package/lib/typescript/components/ColorPalette.d.ts.map +1 -0
  198. package/lib/typescript/components/LineWidthSlider.d.ts +11 -0
  199. package/lib/typescript/components/LineWidthSlider.d.ts.map +1 -0
  200. package/lib/typescript/components/MeasurementEditModal.d.ts +11 -0
  201. package/lib/typescript/components/MeasurementEditModal.d.ts.map +1 -0
  202. package/lib/typescript/components/MiniMap.d.ts +23 -0
  203. package/lib/typescript/components/MiniMap.d.ts.map +1 -0
  204. package/lib/typescript/components/TextAnnotation.d.ts +22 -0
  205. package/lib/typescript/components/TextAnnotation.d.ts.map +1 -0
  206. package/lib/typescript/components/TextEditModal.d.ts +10 -0
  207. package/lib/typescript/components/TextEditModal.d.ts.map +1 -0
  208. package/lib/typescript/components/Toolbar.d.ts +13 -0
  209. package/lib/typescript/components/Toolbar.d.ts.map +1 -0
  210. package/lib/typescript/components/ZoomBadge.d.ts +9 -0
  211. package/lib/typescript/components/ZoomBadge.d.ts.map +1 -0
  212. package/lib/typescript/hooks/useFreehandGesture.d.ts +47 -0
  213. package/lib/typescript/hooks/useFreehandGesture.d.ts.map +1 -0
  214. package/lib/typescript/hooks/usePolygonGesture.d.ts +47 -0
  215. package/lib/typescript/hooks/usePolygonGesture.d.ts.map +1 -0
  216. package/lib/typescript/hooks/useSelectionGesture.d.ts +32 -0
  217. package/lib/typescript/hooks/useSelectionGesture.d.ts.map +1 -0
  218. package/lib/typescript/hooks/useShapeGesture.d.ts +54 -0
  219. package/lib/typescript/hooks/useShapeGesture.d.ts.map +1 -0
  220. package/lib/typescript/hooks/useViewportGesture.d.ts +37 -0
  221. package/lib/typescript/hooks/useViewportGesture.d.ts.map +1 -0
  222. package/lib/typescript/index.d.ts +11 -0
  223. package/lib/typescript/index.d.ts.map +1 -0
  224. package/lib/typescript/renderers/ArrowRenderer.d.ts +9 -0
  225. package/lib/typescript/renderers/ArrowRenderer.d.ts.map +1 -0
  226. package/lib/typescript/renderers/CircleRenderer.d.ts +9 -0
  227. package/lib/typescript/renderers/CircleRenderer.d.ts.map +1 -0
  228. package/lib/typescript/renderers/FreehandRenderer.d.ts +9 -0
  229. package/lib/typescript/renderers/FreehandRenderer.d.ts.map +1 -0
  230. package/lib/typescript/renderers/InProgressRenderer.d.ts +32 -0
  231. package/lib/typescript/renderers/InProgressRenderer.d.ts.map +1 -0
  232. package/lib/typescript/renderers/LineRenderer.d.ts +9 -0
  233. package/lib/typescript/renderers/LineRenderer.d.ts.map +1 -0
  234. package/lib/typescript/renderers/MeasurementRenderer.d.ts +9 -0
  235. package/lib/typescript/renderers/MeasurementRenderer.d.ts.map +1 -0
  236. package/lib/typescript/renderers/ObjectRenderer.d.ts +12 -0
  237. package/lib/typescript/renderers/ObjectRenderer.d.ts.map +1 -0
  238. package/lib/typescript/renderers/PolygonRenderer.d.ts +13 -0
  239. package/lib/typescript/renderers/PolygonRenderer.d.ts.map +1 -0
  240. package/lib/typescript/renderers/RectRenderer.d.ts +9 -0
  241. package/lib/typescript/renderers/RectRenderer.d.ts.map +1 -0
  242. package/lib/typescript/renderers/SelectedObjectRenderer.d.ts +18 -0
  243. package/lib/typescript/renderers/SelectedObjectRenderer.d.ts.map +1 -0
  244. package/lib/typescript/renderers/SelectionOverlay.d.ts +21 -0
  245. package/lib/typescript/renderers/SelectionOverlay.d.ts.map +1 -0
  246. package/lib/typescript/store/useDrawingStore.d.ts +30 -0
  247. package/lib/typescript/store/useDrawingStore.d.ts.map +1 -0
  248. package/lib/typescript/types.d.ts +130 -0
  249. package/lib/typescript/types.d.ts.map +1 -0
  250. package/lib/typescript/utils/colors.d.ts +11 -0
  251. package/lib/typescript/utils/colors.d.ts.map +1 -0
  252. package/lib/typescript/utils/coordinates.d.ts +34 -0
  253. package/lib/typescript/utils/coordinates.d.ts.map +1 -0
  254. package/lib/typescript/utils/hitTesting.d.ts +18 -0
  255. package/lib/typescript/utils/hitTesting.d.ts.map +1 -0
  256. package/lib/typescript/utils/serialization.d.ts +17 -0
  257. package/lib/typescript/utils/serialization.d.ts.map +1 -0
  258. package/lib/typescript/utils/shapeDetection.d.ts +22 -0
  259. package/lib/typescript/utils/shapeDetection.d.ts.map +1 -0
  260. package/lib/typescript/utils/smoothing.d.ts +16 -0
  261. package/lib/typescript/utils/smoothing.d.ts.map +1 -0
  262. package/package.json +108 -0
  263. package/src/DrawingEditor.tsx +1071 -0
  264. package/src/assets/toolbar-icons/arrow-disabled.png +0 -0
  265. package/src/assets/toolbar-icons/arrow-enabled.png +0 -0
  266. package/src/assets/toolbar-icons/arrow.png +0 -0
  267. package/src/assets/toolbar-icons/circle-disabled.png +0 -0
  268. package/src/assets/toolbar-icons/circle-enabled.png +0 -0
  269. package/src/assets/toolbar-icons/circle.png +0 -0
  270. package/src/assets/toolbar-icons/freehand-disabled.png +0 -0
  271. package/src/assets/toolbar-icons/freehand-enabled.png +0 -0
  272. package/src/assets/toolbar-icons/freehand.png +0 -0
  273. package/src/assets/toolbar-icons/line-disabled.png +0 -0
  274. package/src/assets/toolbar-icons/line-enabled.png +0 -0
  275. package/src/assets/toolbar-icons/line.png +0 -0
  276. package/src/assets/toolbar-icons/measure-disabled.png +0 -0
  277. package/src/assets/toolbar-icons/measure-enabled.png +0 -0
  278. package/src/assets/toolbar-icons/measure.png +0 -0
  279. package/src/assets/toolbar-icons/move-disabled.png +0 -0
  280. package/src/assets/toolbar-icons/move-enabled.png +0 -0
  281. package/src/assets/toolbar-icons/move.png +0 -0
  282. package/src/assets/toolbar-icons/polygon-disabled.png +0 -0
  283. package/src/assets/toolbar-icons/polygon-enabled.png +0 -0
  284. package/src/assets/toolbar-icons/polygon.png +0 -0
  285. package/src/assets/toolbar-icons/rectangle-disabled.png +0 -0
  286. package/src/assets/toolbar-icons/rectangle-enabled.png +0 -0
  287. package/src/assets/toolbar-icons/rectangle.png +0 -0
  288. package/src/assets/toolbar-icons/text-disabled.png +0 -0
  289. package/src/assets/toolbar-icons/text-enabled.png +0 -0
  290. package/src/assets/toolbar-icons/text.png +0 -0
  291. package/src/components/ColorPalette.tsx +497 -0
  292. package/src/components/LineWidthSlider.tsx +87 -0
  293. package/src/components/MeasurementEditModal.tsx +163 -0
  294. package/src/components/MiniMap.tsx +275 -0
  295. package/src/components/TextAnnotation.tsx +198 -0
  296. package/src/components/TextEditModal.tsx +139 -0
  297. package/src/components/Toolbar.tsx +254 -0
  298. package/src/components/ZoomBadge.tsx +166 -0
  299. package/src/hooks/useFreehandGesture.ts +249 -0
  300. package/src/hooks/usePolygonGesture.ts +162 -0
  301. package/src/hooks/useSelectionGesture.ts +293 -0
  302. package/src/hooks/useShapeGesture.ts +256 -0
  303. package/src/hooks/useViewportGesture.ts +337 -0
  304. package/src/index.tsx +51 -0
  305. package/src/renderers/ArrowRenderer.tsx +123 -0
  306. package/src/renderers/CircleRenderer.tsx +60 -0
  307. package/src/renderers/FreehandRenderer.tsx +33 -0
  308. package/src/renderers/InProgressRenderer.tsx +217 -0
  309. package/src/renderers/LineRenderer.tsx +34 -0
  310. package/src/renderers/MeasurementRenderer.tsx +179 -0
  311. package/src/renderers/ObjectRenderer.tsx +42 -0
  312. package/src/renderers/PolygonRenderer.tsx +66 -0
  313. package/src/renderers/RectRenderer.tsx +60 -0
  314. package/src/renderers/SelectedObjectRenderer.tsx +738 -0
  315. package/src/renderers/SelectionOverlay.tsx +170 -0
  316. package/src/store/useDrawingStore.ts +357 -0
  317. package/src/types.ts +186 -0
  318. package/src/utils/colors.ts +98 -0
  319. package/src/utils/coordinates.ts +75 -0
  320. package/src/utils/hitTesting.ts +242 -0
  321. package/src/utils/serialization.ts +45 -0
  322. package/src/utils/shapeDetection.ts +160 -0
  323. package/src/utils/smoothing.ts +84 -0
@@ -0,0 +1,118 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ArrowRenderer = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNativeSkia = require("@shopify/react-native-skia");
9
+ var _coordinates = require("../utils/coordinates");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ /**
13
+ * Build an arrow path.
14
+ * - lineWidth < 8: simple line + triangular head
15
+ * - lineWidth >= 8: filled body with wider triangular head
16
+ */
17
+ function buildArrowPath(fx, fy, tx, ty, lineWidth) {
18
+ const dx = tx - fx;
19
+ const dy = ty - fy;
20
+ const len = Math.sqrt(dx * dx + dy * dy);
21
+ if (len === 0) return "";
22
+ const angle = Math.atan2(dy, dx);
23
+ const cos = Math.cos(angle);
24
+ const sin = Math.sin(angle);
25
+ if (lineWidth < 8) {
26
+ // Simple arrow: line + triangular head
27
+ const headLen = lineWidth * 2;
28
+ const headW = lineWidth * 2;
29
+
30
+ // Head points
31
+ const hx1 = tx - headLen * cos + headW / 2 * sin;
32
+ const hy1 = ty - headLen * sin - headW / 2 * cos;
33
+ const hx2 = tx - headLen * cos - headW / 2 * sin;
34
+ const hy2 = ty - headLen * sin + headW / 2 * cos;
35
+ return `M ${fx} ${fy} L ${tx} ${ty} ` + `M ${tx} ${ty} L ${hx1} ${hy1} M ${tx} ${ty} L ${hx2} ${hy2}`;
36
+ }
37
+
38
+ // Filled arrow: rectangular body + triangular head
39
+ const headLen = lineWidth * 3;
40
+ const headW = lineWidth * 3;
41
+ const bodyW = lineWidth;
42
+ const bodyLen = Math.max(0, len - headLen);
43
+
44
+ // Body rectangle (in local space: from origin going right)
45
+ // Then transformed via rotation
46
+ const halfBody = bodyW / 2;
47
+
48
+ // Points in local space (arrow points to the right)
49
+ const b1 = {
50
+ x: 0,
51
+ y: -halfBody
52
+ };
53
+ const b2 = {
54
+ x: bodyLen,
55
+ y: -halfBody
56
+ };
57
+ const b3 = {
58
+ x: bodyLen,
59
+ y: halfBody
60
+ };
61
+ const b4 = {
62
+ x: 0,
63
+ y: halfBody
64
+ };
65
+
66
+ // Head triangle in local space
67
+ const h1 = {
68
+ x: bodyLen,
69
+ y: -headW / 2
70
+ };
71
+ const h2 = {
72
+ x: len,
73
+ y: 0
74
+ };
75
+ const h3 = {
76
+ x: bodyLen,
77
+ y: headW / 2
78
+ };
79
+
80
+ // Transform function: rotate + translate
81
+ const transform = p => ({
82
+ x: fx + p.x * cos - p.y * sin,
83
+ y: fy + p.x * sin + p.y * cos
84
+ });
85
+ const tb1 = transform(b1);
86
+ const tb2 = transform(b2);
87
+ const tb3 = transform(b3);
88
+ const tb4 = transform(b4);
89
+ const th1 = transform(h1);
90
+ const th2 = transform(h2);
91
+ const th3 = transform(h3);
92
+ return `M ${tb1.x} ${tb1.y} L ${tb2.x} ${tb2.y} L ${tb3.x} ${tb3.y} L ${tb4.x} ${tb4.y} Z ` + `M ${th1.x} ${th1.y} L ${th2.x} ${th2.y} L ${th3.x} ${th3.y} Z`;
93
+ }
94
+ const ArrowRenderer = exports.ArrowRenderer = /*#__PURE__*/_react.default.memo(function ArrowRenderer({
95
+ object,
96
+ canvasSize
97
+ }) {
98
+ const from = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.from, canvasSize), [object.from, canvasSize]);
99
+ const to = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.to, canvasSize), [object.to, canvasSize]);
100
+ const pathString = (0, _react.useMemo)(() => buildArrowPath(from.x, from.y, to.x, to.y, object.lineWidth), [from, to, object.lineWidth]);
101
+ if (!pathString) return null;
102
+ if (object.lineWidth < 8) {
103
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
104
+ path: pathString,
105
+ style: "stroke",
106
+ strokeWidth: object.lineWidth,
107
+ color: object.color,
108
+ strokeCap: "round",
109
+ strokeJoin: "round"
110
+ });
111
+ }
112
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
113
+ path: pathString,
114
+ style: "fill",
115
+ color: object.color
116
+ });
117
+ });
118
+ //# sourceMappingURL=ArrowRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeSkia","_coordinates","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","buildArrowPath","fx","fy","tx","ty","lineWidth","dx","dy","len","Math","sqrt","angle","atan2","cos","sin","headLen","headW","hx1","hy1","hx2","hy2","bodyW","bodyLen","max","halfBody","b1","x","y","b2","b3","b4","h1","h2","h3","transform","p","tb1","tb2","tb3","tb4","th1","th2","th3","ArrowRenderer","exports","React","memo","object","canvasSize","from","useMemo","denormalize","to","pathString","jsx","Path","path","style","strokeWidth","color","strokeCap","strokeJoin"],"sourceRoot":"../../../src","sources":["renderers/ArrowRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CircleRenderer = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNativeSkia = require("@shopify/react-native-skia");
9
+ var _coordinates = require("../utils/coordinates");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const CircleRenderer = exports.CircleRenderer = /*#__PURE__*/_react.default.memo(function CircleRenderer({
13
+ object,
14
+ canvasSize
15
+ }) {
16
+ const from = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.from, canvasSize), [object.from, canvasSize]);
17
+ const to = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.to, canvasSize), [object.to, canvasSize]);
18
+ const rect = (0, _react.useMemo)(() => {
19
+ const x = Math.min(from.x, to.x);
20
+ const y = Math.min(from.y, to.y);
21
+ const width = Math.abs(to.x - from.x);
22
+ const height = Math.abs(to.y - from.y);
23
+ return {
24
+ x,
25
+ y,
26
+ width,
27
+ height
28
+ };
29
+ }, [from, to]);
30
+ const hasFill = object.backgroundColor && object.backgroundAlpha;
31
+ const fillColor = hasFill ? object.backgroundColor.replace(/[\d.]+\)$/, `${object.backgroundAlpha})`) : undefined;
32
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
33
+ children: [fillColor && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Oval, {
34
+ x: rect.x,
35
+ y: rect.y,
36
+ width: rect.width,
37
+ height: rect.height,
38
+ color: fillColor,
39
+ style: "fill"
40
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Oval, {
41
+ x: rect.x,
42
+ y: rect.y,
43
+ width: rect.width,
44
+ height: rect.height,
45
+ color: object.color,
46
+ style: "stroke",
47
+ strokeWidth: object.lineWidth
48
+ })]
49
+ });
50
+ });
51
+ //# sourceMappingURL=CircleRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeSkia","_coordinates","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","CircleRenderer","exports","React","memo","object","canvasSize","from","useMemo","denormalize","to","rect","x","Math","min","y","width","abs","height","hasFill","backgroundColor","backgroundAlpha","fillColor","replace","undefined","jsxs","Group","children","jsx","Oval","color","style","strokeWidth","lineWidth"],"sourceRoot":"../../../src","sources":["renderers/CircleRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FreehandRenderer = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNativeSkia = require("@shopify/react-native-skia");
9
+ var _coordinates = require("../utils/coordinates");
10
+ var _smoothing = require("../utils/smoothing");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const FreehandRenderer = exports.FreehandRenderer = /*#__PURE__*/_react.default.memo(function FreehandRenderer({
14
+ object,
15
+ canvasSize
16
+ }) {
17
+ const pathString = (0, _react.useMemo)(() => {
18
+ const denormalized = (0, _coordinates.denormalizePoints)(object.points, canvasSize);
19
+ return (0, _smoothing.buildSmoothedPath)(denormalized);
20
+ }, [object.points, canvasSize]);
21
+ if (!pathString) return null;
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
23
+ path: pathString,
24
+ style: "stroke",
25
+ strokeWidth: object.lineWidth,
26
+ color: object.color,
27
+ strokeCap: "round",
28
+ strokeJoin: "round"
29
+ });
30
+ });
31
+ //# sourceMappingURL=FreehandRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeSkia","_coordinates","_smoothing","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FreehandRenderer","exports","React","memo","object","canvasSize","pathString","useMemo","denormalized","denormalizePoints","points","buildSmoothedPath","jsx","Path","path","style","strokeWidth","lineWidth","color","strokeCap","strokeJoin"],"sourceRoot":"../../../src","sources":["renderers/FreehandRenderer.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAAuD,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAOhD,MAAMkB,gBAAgB,GAAAC,OAAA,CAAAD,gBAAA,gBAAGE,cAAK,CAACC,IAAI,CAAC,SAASH,gBAAgBA,CAAC;EACnEI,MAAM;EACNC;AACqB,CAAC,EAAE;EACxB,MAAMC,UAAU,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC/B,MAAMC,YAAY,GAAG,IAAAC,8BAAiB,EAACL,MAAM,CAACM,MAAM,EAAEL,UAAU,CAAC;IACjE,OAAO,IAAAM,4BAAiB,EAACH,YAAY,CAAC;EACxC,CAAC,EAAE,CAACJ,MAAM,CAACM,MAAM,EAAEL,UAAU,CAAC,CAAC;EAE/B,IAAI,CAACC,UAAU,EAAE,OAAO,IAAI;EAE5B,oBACE,IAAA1B,WAAA,CAAAgC,GAAA,EAACnC,gBAAA,CAAAoC,IAAI;IACHC,IAAI,EAAER,UAAW;IACjBS,KAAK,EAAC,QAAQ;IACdC,WAAW,EAAEZ,MAAM,CAACa,SAAU;IAC9BC,KAAK,EAAEd,MAAM,CAACc,KAAM;IACpBC,SAAS,EAAC,OAAO;IACjBC,UAAU,EAAC;EAAO,CACnB,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ShapeInProgress = exports.PolygonInProgress = exports.FreehandInProgress = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNativeSkia = require("@shopify/react-native-skia");
9
+ var _reactNativeReanimated = require("react-native-reanimated");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
12
+ // ─── Freehand In-Progress ────────────────────────────────────────────────────
13
+
14
+ // Empty path constant used as fallback when not drawing
15
+ const EMPTY_PATH = _reactNativeSkia.Skia.Path.Make();
16
+ const FreehandInProgress = exports.FreehandInProgress = /*#__PURE__*/_react.default.memo(function FreehandInProgress({
17
+ path,
18
+ color,
19
+ lineWidth
20
+ }) {
21
+ const safePath = (0, _reactNativeReanimated.useDerivedValue)(() => path.value ?? EMPTY_PATH);
22
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
23
+ path: safePath,
24
+ style: "stroke",
25
+ strokeWidth: lineWidth,
26
+ color: color,
27
+ strokeCap: "round",
28
+ strokeJoin: "round"
29
+ });
30
+ });
31
+
32
+ // ─── Polygon In-Progress ─────────────────────────────────────────────────────
33
+
34
+ const POLYGON_VERTEX_RADIUS = 8;
35
+ const POLYGON_VERTEX_COLOR = "rgba(0, 122, 255, 0.8)";
36
+ const PolygonInProgress = exports.PolygonInProgress = /*#__PURE__*/_react.default.memo(function PolygonInProgress({
37
+ pointsFlat,
38
+ pointCount
39
+ }) {
40
+ // Build a path of circles at each vertex using a derived path with addCircle
41
+ const verticesPath = (0, _reactNativeReanimated.useDerivedValue)(() => {
42
+ const p = _reactNativeSkia.Skia.Path.Make();
43
+ const count = pointCount.value;
44
+ const flat = pointsFlat.value;
45
+ for (let i = 0; i < count; i++) {
46
+ const cx = flat[i * 2];
47
+ const cy = flat[i * 2 + 1];
48
+ p.addCircle(cx, cy, POLYGON_VERTEX_RADIUS);
49
+ }
50
+ return p;
51
+ });
52
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
53
+ path: verticesPath,
54
+ style: "fill",
55
+ color: POLYGON_VERTEX_COLOR
56
+ });
57
+ });
58
+
59
+ // ─── Shape In-Progress ───────────────────────────────────────────────────────
60
+
61
+ const ShapeInProgress = exports.ShapeInProgress = /*#__PURE__*/_react.default.memo(function ShapeInProgress({
62
+ shapeType,
63
+ startX,
64
+ startY,
65
+ currentX,
66
+ currentY,
67
+ color,
68
+ lineWidth,
69
+ fillColor,
70
+ fillAlpha,
71
+ isDrawing
72
+ }) {
73
+ // Hide when not actively drawing (prevents ghost shapes when switching tools)
74
+ const opacity = (0, _reactNativeReanimated.useDerivedValue)(() => isDrawing.value ? 1 : 0);
75
+
76
+ // Derived values for the shape bounds
77
+ const x = (0, _reactNativeReanimated.useDerivedValue)(() => Math.min(startX.value, currentX.value));
78
+ const y = (0, _reactNativeReanimated.useDerivedValue)(() => Math.min(startY.value, currentY.value));
79
+ const width = (0, _reactNativeReanimated.useDerivedValue)(() => Math.abs(currentX.value - startX.value));
80
+ const height = (0, _reactNativeReanimated.useDerivedValue)(() => Math.abs(currentY.value - startY.value));
81
+
82
+ // Derived point values for Line-based shapes
83
+ const p1 = (0, _reactNativeReanimated.useDerivedValue)(() => ({
84
+ x: startX.value,
85
+ y: startY.value
86
+ }));
87
+ const p2 = (0, _reactNativeReanimated.useDerivedValue)(() => ({
88
+ x: currentX.value,
89
+ y: currentY.value
90
+ }));
91
+ const resolvedFillColor = (0, _reactNativeReanimated.useDerivedValue)(() => {
92
+ if (!fillColor.value || !isDrawing.value) return "transparent";
93
+ return fillColor.value.replace(/[\d.]+\)$/, `${fillAlpha.value})`);
94
+ });
95
+ switch (shapeType) {
96
+ case "line":
97
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Group, {
98
+ opacity: opacity,
99
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
100
+ p1: p1,
101
+ p2: p2,
102
+ color: color,
103
+ style: "stroke",
104
+ strokeWidth: lineWidth,
105
+ strokeCap: "round"
106
+ })
107
+ });
108
+ case "arrow":
109
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Group, {
110
+ opacity: opacity,
111
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
112
+ p1: p1,
113
+ p2: p2,
114
+ color: color,
115
+ style: "stroke",
116
+ strokeWidth: lineWidth,
117
+ strokeCap: "round"
118
+ })
119
+ });
120
+ case "rectangle":
121
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
122
+ opacity: opacity,
123
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Rect, {
124
+ x: x,
125
+ y: y,
126
+ width: width,
127
+ height: height,
128
+ color: resolvedFillColor,
129
+ style: "fill"
130
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Rect, {
131
+ x: x,
132
+ y: y,
133
+ width: width,
134
+ height: height,
135
+ color: color,
136
+ style: "stroke",
137
+ strokeWidth: lineWidth
138
+ })]
139
+ });
140
+ case "circle":
141
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
142
+ opacity: opacity,
143
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Oval, {
144
+ x: x,
145
+ y: y,
146
+ width: width,
147
+ height: height,
148
+ color: resolvedFillColor,
149
+ style: "fill"
150
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Oval, {
151
+ x: x,
152
+ y: y,
153
+ width: width,
154
+ height: height,
155
+ color: color,
156
+ style: "stroke",
157
+ strokeWidth: lineWidth
158
+ })]
159
+ });
160
+ case "measure":
161
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Group, {
162
+ opacity: opacity,
163
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
164
+ p1: p1,
165
+ p2: p2,
166
+ color: color,
167
+ style: "stroke",
168
+ strokeWidth: lineWidth,
169
+ strokeCap: "round"
170
+ })
171
+ });
172
+ }
173
+ });
174
+ //# sourceMappingURL=InProgressRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNativeSkia","_reactNativeReanimated","_jsxRuntime","e","__esModule","default","EMPTY_PATH","Skia","Path","Make","FreehandInProgress","exports","React","memo","path","color","lineWidth","safePath","useDerivedValue","value","jsx","style","strokeWidth","strokeCap","strokeJoin","POLYGON_VERTEX_RADIUS","POLYGON_VERTEX_COLOR","PolygonInProgress","pointsFlat","pointCount","verticesPath","p","count","flat","i","cx","cy","addCircle","ShapeInProgress","shapeType","startX","startY","currentX","currentY","fillColor","fillAlpha","isDrawing","opacity","x","Math","min","y","width","abs","height","p1","p2","resolvedFillColor","replace","Group","children","Line","jsxs","Rect","Oval"],"sourceRoot":"../../../src","sources":["renderers/InProgressRenderer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LineRenderer = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNativeSkia = require("@shopify/react-native-skia");
9
+ var _coordinates = require("../utils/coordinates");
10
+ var _jsxRuntime = require("react/jsx-runtime");
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ const LineRenderer = exports.LineRenderer = /*#__PURE__*/_react.default.memo(function LineRenderer({
13
+ object,
14
+ canvasSize
15
+ }) {
16
+ const from = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.from, canvasSize), [object.from, canvasSize]);
17
+ const to = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.to, canvasSize), [object.to, canvasSize]);
18
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Line, {
19
+ p1: from,
20
+ p2: to,
21
+ color: object.color,
22
+ style: "stroke",
23
+ strokeWidth: object.lineWidth,
24
+ strokeCap: "round"
25
+ });
26
+ });
27
+ //# sourceMappingURL=LineRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNativeSkia","_coordinates","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LineRenderer","exports","React","memo","object","canvasSize","from","useMemo","denormalize","to","jsx","Line","p1","p2","color","style","strokeWidth","lineWidth","strokeCap"],"sourceRoot":"../../../src","sources":["renderers/LineRenderer.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AAAmD,IAAAG,WAAA,GAAAH,OAAA;AAAA,SAAAD,wBAAAK,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAP,uBAAA,YAAAA,CAAAK,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAO5C,MAAMkB,YAAY,GAAAC,OAAA,CAAAD,YAAA,gBAAGE,cAAK,CAACC,IAAI,CAAC,SAASH,YAAYA,CAAC;EAC3DI,MAAM;EACNC;AACiB,CAAC,EAAE;EACpB,MAAMC,IAAI,GAAG,IAAAC,cAAO,EAClB,MAAM,IAAAC,wBAAW,EAACJ,MAAM,CAACE,IAAI,EAAED,UAAU,CAAC,EAC1C,CAACD,MAAM,CAACE,IAAI,EAAED,UAAU,CAC1B,CAAC;EACD,MAAMI,EAAE,GAAG,IAAAF,cAAO,EAChB,MAAM,IAAAC,wBAAW,EAACJ,MAAM,CAACK,EAAE,EAAEJ,UAAU,CAAC,EACxC,CAACD,MAAM,CAACK,EAAE,EAAEJ,UAAU,CACxB,CAAC;EAED,oBACE,IAAAzB,WAAA,CAAA8B,GAAA,EAAChC,gBAAA,CAAAiC,IAAQ;IACPC,EAAE,EAAEN,IAAK;IACTO,EAAE,EAAEJ,EAAG;IACPK,KAAK,EAAEV,MAAM,CAACU,KAAM;IACpBC,KAAK,EAAC,QAAQ;IACdC,WAAW,EAAEZ,MAAM,CAACa,SAAU;IAC9BC,SAAS,EAAC;EAAO,CAClB,CAAC;AAEN,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MeasurementRenderer = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeSkia = require("@shopify/react-native-skia");
10
+ var _coordinates = require("../utils/coordinates");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ const FONT_FAMILY = _reactNative.Platform.OS === "android" ? "sans-serif" : "System";
14
+ const TEXT_GAP_PADDING = 6;
15
+
16
+ /**
17
+ * Build a measurement / cotation path with a gap in the middle for the label.
18
+ * - Two inward-pointing arrowheads
19
+ * - Perpendicular extension lines at endpoints
20
+ * - Main line split in two halves around a central gap
21
+ */
22
+ function buildMeasurementPath(fx, fy, tx, ty, lineWidth, style, gapHalfWidth) {
23
+ const dx = tx - fx;
24
+ const dy = ty - fy;
25
+ const len = Math.sqrt(dx * dx + dy * dy);
26
+ if (len === 0) return "";
27
+ const angle = Math.atan2(dy, dx);
28
+ const cos = Math.cos(angle);
29
+ const sin = Math.sin(angle);
30
+ const perpCos = Math.cos(angle + Math.PI / 2);
31
+ const perpSin = Math.sin(angle + Math.PI / 2);
32
+ const headLen = Math.min(lineWidth * 3, len / 4);
33
+ const headW = lineWidth * 2;
34
+ const extLen = lineWidth * 4;
35
+
36
+ // Midpoint
37
+ const mx = (fx + tx) / 2;
38
+ const my = (fy + ty) / 2;
39
+ let svg = "";
40
+
41
+ // Main line — split into two segments with gap
42
+ if (gapHalfWidth > 0 && len > gapHalfWidth * 2) {
43
+ const gapStartX = mx - gapHalfWidth * cos;
44
+ const gapStartY = my - gapHalfWidth * sin;
45
+ const gapEndX = mx + gapHalfWidth * cos;
46
+ const gapEndY = my + gapHalfWidth * sin;
47
+ svg += `M ${fx} ${fy} L ${gapStartX} ${gapStartY} `;
48
+ svg += `M ${gapEndX} ${gapEndY} L ${tx} ${ty} `;
49
+ } else {
50
+ svg += `M ${fx} ${fy} L ${tx} ${ty} `;
51
+ }
52
+
53
+ // Arrowhead at "from" pointing toward "to"
54
+ const ah1x = fx + headLen * cos + headW / 2 * perpCos;
55
+ const ah1y = fy + headLen * sin + headW / 2 * perpSin;
56
+ const ah2x = fx + headLen * cos - headW / 2 * perpCos;
57
+ const ah2y = fy + headLen * sin - headW / 2 * perpSin;
58
+ svg += `M ${fx} ${fy} L ${ah1x} ${ah1y} M ${fx} ${fy} L ${ah2x} ${ah2y} `;
59
+
60
+ // Arrowhead at "to" pointing toward "from"
61
+ const bh1x = tx - headLen * cos + headW / 2 * perpCos;
62
+ const bh1y = ty - headLen * sin + headW / 2 * perpSin;
63
+ const bh2x = tx - headLen * cos - headW / 2 * perpCos;
64
+ const bh2y = ty - headLen * sin - headW / 2 * perpSin;
65
+ svg += `M ${tx} ${ty} L ${bh1x} ${bh1y} M ${tx} ${ty} L ${bh2x} ${bh2y} `;
66
+
67
+ // Extension lines (perpendicular to the main line at each endpoint)
68
+ if (style === 0 || style === 2) {
69
+ svg += `M ${fx + extLen * perpCos} ${fy + extLen * perpSin} L ${fx - extLen * perpCos} ${fy - extLen * perpSin} `;
70
+ svg += `M ${tx + extLen * perpCos} ${ty + extLen * perpSin} L ${tx - extLen * perpCos} ${ty - extLen * perpSin} `;
71
+ }
72
+ return svg;
73
+ }
74
+ const MeasurementRenderer = exports.MeasurementRenderer = /*#__PURE__*/_react.default.memo(function MeasurementRenderer({
75
+ object,
76
+ canvasSize
77
+ }) {
78
+ const from = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.from, canvasSize), [object.from, canvasSize]);
79
+ const to = (0, _react.useMemo)(() => (0, _coordinates.denormalize)(object.to, canvasSize), [object.to, canvasSize]);
80
+ const labelText = `${object.text}${object.unit}`;
81
+ const hasLabel = object.text.length > 0;
82
+ const fontSize = Math.max(14, object.lineWidth * 3);
83
+ const font = (0, _react.useMemo)(() => (0, _reactNativeSkia.matchFont)({
84
+ fontFamily: FONT_FAMILY,
85
+ fontSize
86
+ }), [fontSize]);
87
+
88
+ // Measure text width for the gap
89
+ const textWidth = (0, _react.useMemo)(() => {
90
+ if (!hasLabel) return 0;
91
+ return font.getTextWidth(labelText);
92
+ }, [font, labelText, hasLabel]);
93
+ const gapHalfWidth = hasLabel ? textWidth / 2 + TEXT_GAP_PADDING : 0;
94
+ const pathString = (0, _react.useMemo)(() => buildMeasurementPath(from.x, from.y, to.x, to.y, object.lineWidth, object.measureStyle, gapHalfWidth), [from, to, object.lineWidth, object.measureStyle, gapHalfWidth]);
95
+
96
+ // Center of the line
97
+ const midX = (from.x + to.x) / 2;
98
+ const midY = (from.y + to.y) / 2;
99
+
100
+ // Angle of the line — keep text readable (never upside down)
101
+ const rawAngle = Math.atan2(to.y - from.y, to.x - from.x);
102
+ const angle = rawAngle > Math.PI / 2 ? rawAngle - Math.PI : rawAngle < -Math.PI / 2 ? rawAngle + Math.PI : rawAngle;
103
+
104
+ // Position text centered at origin (will be transformed to midpoint)
105
+ const textX = -textWidth / 2;
106
+ const textY = fontSize / 3;
107
+ if (!pathString) return null;
108
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNativeSkia.Group, {
109
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Path, {
110
+ path: pathString,
111
+ style: "stroke",
112
+ strokeWidth: object.lineWidth,
113
+ color: object.color,
114
+ strokeCap: "round",
115
+ strokeJoin: "round"
116
+ }), hasLabel && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Group, {
117
+ transform: [{
118
+ translateX: midX
119
+ }, {
120
+ translateY: midY
121
+ }, {
122
+ rotate: angle
123
+ }],
124
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNativeSkia.Text, {
125
+ x: textX,
126
+ y: textY,
127
+ text: labelText,
128
+ font: font,
129
+ color: object.color
130
+ })
131
+ })]
132
+ });
133
+ });
134
+ //# sourceMappingURL=MeasurementRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_reactNativeSkia","_coordinates","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FONT_FAMILY","Platform","OS","TEXT_GAP_PADDING","buildMeasurementPath","fx","fy","tx","ty","lineWidth","style","gapHalfWidth","dx","dy","len","Math","sqrt","angle","atan2","cos","sin","perpCos","PI","perpSin","headLen","min","headW","extLen","mx","my","svg","gapStartX","gapStartY","gapEndX","gapEndY","ah1x","ah1y","ah2x","ah2y","bh1x","bh1y","bh2x","bh2y","MeasurementRenderer","exports","React","memo","object","canvasSize","from","useMemo","denormalize","to","labelText","text","unit","hasLabel","length","fontSize","max","font","matchFont","fontFamily","textWidth","getTextWidth","pathString","x","y","measureStyle","midX","midY","rawAngle","textX","textY","jsxs","Group","children","jsx","Path","path","strokeWidth","color","strokeCap","strokeJoin","transform","translateX","translateY","rotate","Text"],"sourceRoot":"../../../src","sources":["renderers/MeasurementRenderer.tsx"],"mappings":"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","ignoreList":[]}