@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,47 @@
1
+ import type { Size } from "../types";
2
+ interface UseFreehandGestureOptions {
3
+ colorSV: {
4
+ value: string;
5
+ };
6
+ lineWidthSV: {
7
+ value: number;
8
+ };
9
+ fillColorSV: {
10
+ value: string | null;
11
+ };
12
+ fillAlphaSV: {
13
+ value: number;
14
+ };
15
+ canvasSize: Size;
16
+ enabled: boolean;
17
+ imageOffsetX: {
18
+ value: number;
19
+ };
20
+ imageOffsetY: {
21
+ value: number;
22
+ };
23
+ imageWidth: {
24
+ value: number;
25
+ };
26
+ imageHeight: {
27
+ value: number;
28
+ };
29
+ viewScale: {
30
+ value: number;
31
+ };
32
+ viewTranslateX: {
33
+ value: number;
34
+ };
35
+ viewTranslateY: {
36
+ value: number;
37
+ };
38
+ }
39
+ export declare function useFreehandGesture({ colorSV, lineWidthSV, fillColorSV, fillAlphaSV, canvasSize, enabled, imageOffsetX, imageOffsetY, imageWidth, imageHeight, viewScale, viewTranslateX, viewTranslateY, }: UseFreehandGestureOptions): {
40
+ gesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
41
+ inProgressPath: import("react-native-reanimated").DerivedValue<import("@shopify/react-native-skia").SkPath | null>;
42
+ inProgressColor: import("react-native-reanimated").DerivedValue<string>;
43
+ inProgressWidth: import("react-native-reanimated").DerivedValue<number>;
44
+ isDrawing: import("react-native-reanimated").SharedValue<boolean>;
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=useFreehandGesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFreehandGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useFreehandGesture.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAS,IAAI,EAAiC,MAAM,UAAU,CAAC;AAU3E,UAAU,yBAAyB;IACjC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,GACf,EAAE,yBAAyB;;;;;;EAwM3B"}
@@ -0,0 +1,47 @@
1
+ import type { Size } from "../types";
2
+ interface UsePolygonGestureOptions {
3
+ colorSV: {
4
+ value: string;
5
+ };
6
+ lineWidthSV: {
7
+ value: number;
8
+ };
9
+ fillColorSV: {
10
+ value: string | null;
11
+ };
12
+ fillAlphaSV: {
13
+ value: number;
14
+ };
15
+ canvasSize: Size;
16
+ enabled: boolean;
17
+ imageOffsetX: {
18
+ value: number;
19
+ };
20
+ imageOffsetY: {
21
+ value: number;
22
+ };
23
+ imageWidth: {
24
+ value: number;
25
+ };
26
+ imageHeight: {
27
+ value: number;
28
+ };
29
+ viewScale: {
30
+ value: number;
31
+ };
32
+ viewTranslateX: {
33
+ value: number;
34
+ };
35
+ viewTranslateY: {
36
+ value: number;
37
+ };
38
+ }
39
+ export declare function usePolygonGesture({ colorSV, lineWidthSV, fillColorSV, fillAlphaSV, canvasSize, enabled, imageOffsetX, imageOffsetY, imageWidth, imageHeight, viewScale, viewTranslateX, viewTranslateY, }: UsePolygonGestureOptions): {
40
+ gesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
41
+ pointsFlat: import("react-native-reanimated").SharedValue<number[]>;
42
+ pointCount: import("react-native-reanimated").SharedValue<number>;
43
+ isActive: import("react-native-reanimated").SharedValue<boolean>;
44
+ cancel: () => void;
45
+ };
46
+ export {};
47
+ //# sourceMappingURL=usePolygonGesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePolygonGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePolygonGesture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAiB,IAAI,EAAS,MAAM,UAAU,CAAC;AAQ3D,UAAU,wBAAwB;IAChC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CACnC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,GACf,EAAE,wBAAwB;;;;;;EAwH1B"}
@@ -0,0 +1,32 @@
1
+ import type { SharedValue } from "react-native-reanimated";
2
+ import type { Size } from "../types";
3
+ interface UseSelectionGestureOptions {
4
+ canvasSize: Size;
5
+ imageOffsetX: {
6
+ value: number;
7
+ };
8
+ imageOffsetY: {
9
+ value: number;
10
+ };
11
+ viewScale: {
12
+ value: number;
13
+ };
14
+ viewTranslateX: {
15
+ value: number;
16
+ };
17
+ viewTranslateY: {
18
+ value: number;
19
+ };
20
+ onTapEmpty?: (x: number, y: number) => void;
21
+ }
22
+ export declare function useSelectionGesture({ canvasSize, imageOffsetX, imageOffsetY, viewScale, viewTranslateX, viewTranslateY, onTapEmpty, }: UseSelectionGestureOptions): {
23
+ tapGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
24
+ panGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
25
+ doubleTapGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
26
+ isDragging: SharedValue<boolean>;
27
+ dragOffsetX: SharedValue<number>;
28
+ dragOffsetY: SharedValue<number>;
29
+ draggingAnchorIndex: SharedValue<number>;
30
+ };
31
+ export {};
32
+ //# sourceMappingURL=useSelectionGesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelectionGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useSelectionGesture.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,KAAK,EAAE,IAAI,EAAS,MAAM,UAAU,CAAC;AAQ5C,UAAU,0BAA0B;IAClC,UAAU,EAAE,IAAI,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,UAAU,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C;AAED,wBAAgB,mBAAmB,CAAC,EAClC,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,GACX,EAAE,0BAA0B;;;;;;;;EAqQ5B"}
@@ -0,0 +1,54 @@
1
+ import type { TwoPointShapeType, Size } from "../types";
2
+ interface UseShapeGestureOptions {
3
+ shapeType: TwoPointShapeType;
4
+ colorSV: {
5
+ value: string;
6
+ };
7
+ lineWidthSV: {
8
+ value: number;
9
+ };
10
+ fillColorSV: {
11
+ value: string | null;
12
+ };
13
+ fillAlphaSV: {
14
+ value: number;
15
+ };
16
+ canvasSize: Size;
17
+ enabled: boolean;
18
+ imageOffsetX: {
19
+ value: number;
20
+ };
21
+ imageOffsetY: {
22
+ value: number;
23
+ };
24
+ imageWidth: {
25
+ value: number;
26
+ };
27
+ imageHeight: {
28
+ value: number;
29
+ };
30
+ viewScale: {
31
+ value: number;
32
+ };
33
+ viewTranslateX: {
34
+ value: number;
35
+ };
36
+ viewTranslateY: {
37
+ value: number;
38
+ };
39
+ onMeasureCreated?: (id: string) => void;
40
+ }
41
+ export declare function useShapeGesture({ shapeType, colorSV, lineWidthSV, fillColorSV, fillAlphaSV, canvasSize, enabled, imageOffsetX, imageOffsetY, imageWidth, imageHeight, viewScale, viewTranslateX, viewTranslateY, onMeasureCreated, }: UseShapeGestureOptions): {
42
+ gesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
43
+ startX: import("react-native-reanimated").SharedValue<number>;
44
+ startY: import("react-native-reanimated").SharedValue<number>;
45
+ currentX: import("react-native-reanimated").SharedValue<number>;
46
+ currentY: import("react-native-reanimated").SharedValue<number>;
47
+ isDrawing: import("react-native-reanimated").SharedValue<boolean>;
48
+ inProgressColor: import("react-native-reanimated").DerivedValue<string>;
49
+ inProgressWidth: import("react-native-reanimated").DerivedValue<number>;
50
+ inProgressFillColor: import("react-native-reanimated").DerivedValue<string | null>;
51
+ inProgressFillAlpha: import("react-native-reanimated").DerivedValue<number>;
52
+ };
53
+ export {};
54
+ //# sourceMappingURL=useShapeGesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useShapeGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useShapeGesture.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAiB,IAAI,EAAE,MAAM,UAAU,CAAC;AAQvE,UAAU,sBAAsB;IAC9B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACtC,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,EAAE,IAAI,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,SAAS,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7B,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,cAAc,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAClC,gBAAgB,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED,wBAAgB,eAAe,CAAC,EAC9B,SAAS,EACT,OAAO,EACP,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,GACjB,EAAE,sBAAsB;;;;;;;;;;;EA8MxB"}
@@ -0,0 +1,37 @@
1
+ interface UseViewportGestureOptions {
2
+ maxZoom?: number;
3
+ layoutWidth: {
4
+ value: number;
5
+ };
6
+ layoutHeight: {
7
+ value: number;
8
+ };
9
+ imageOffsetX: {
10
+ value: number;
11
+ };
12
+ imageOffsetY: {
13
+ value: number;
14
+ };
15
+ imageWidth: {
16
+ value: number;
17
+ };
18
+ imageHeight: {
19
+ value: number;
20
+ };
21
+ onPinchEnd?: () => void;
22
+ }
23
+ export declare function useViewportGesture({ maxZoom, layoutWidth, layoutHeight, imageOffsetX, imageOffsetY, imageWidth, imageHeight, onPinchEnd, }: UseViewportGestureOptions): {
24
+ pinchGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/pinchGesture").PinchGesture;
25
+ twoFingerPanGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
26
+ singleFingerPanGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/panGesture").PanGesture;
27
+ doubleTapResetGesture: import("react-native-gesture-handler/lib/typescript/handlers/gestures/tapGesture").TapGesture;
28
+ scale: import("react-native-reanimated").SharedValue<number>;
29
+ translateX: import("react-native-reanimated").SharedValue<number>;
30
+ translateY: import("react-native-reanimated").SharedValue<number>;
31
+ isPinching: import("react-native-reanimated").SharedValue<boolean>;
32
+ resetViewport: () => void;
33
+ panViewport: (dtx: number, dty: number) => void;
34
+ zoomAt: (screenX: number, screenY: number, scaleFactor: number) => void;
35
+ };
36
+ export {};
37
+ //# sourceMappingURL=useViewportGesture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewportGesture.d.ts","sourceRoot":"","sources":["../../../src/hooks/useViewportGesture.ts"],"names":[],"mappings":"AAOA,UAAU,yBAAyB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,UAAU,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,WAAW,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AA6CD,wBAAgB,kBAAkB,CAAC,EACjC,OAA0B,EAC1B,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,UAAU,GACX,EAAE,yBAAyB;;;;;;;;;;uBA+NlB,MAAM,OAAO,MAAM;sBA5Df,MAAM,WAAW,MAAM,eAAe,MAAM;EAuGzD"}
@@ -0,0 +1,11 @@
1
+ export { DrawingEditor } from "./DrawingEditor";
2
+ export { useDrawingStore } from "./store/useDrawingStore";
3
+ export type { DrawingState } from "./store/useDrawingStore";
4
+ export type { DrawingEditorProps, DrawingEditorRef, DrawingObject, FreehandObject, LineObject, ArrowObject, RectangleObject, CircleObject, PolygonObject, MeasureObject, TextObject, TwoPointObject, ToolType, TwoPointShapeType, MeasureStyle, Point, Size, UndoAction, UndoActionType, ToolbarRenderProps, ColorPaletteRenderProps, } from "./types";
5
+ export { normalize, denormalize, normalizePoints, denormalizePoints, screenToCanvas, } from "./utils/coordinates";
6
+ export { serializeObjects, deserializeObjects, generateId, } from "./utils/serialization";
7
+ export { PRESET_COLORS, DEFAULT_STROKE_COLOR } from "./utils/colors";
8
+ export { Toolbar } from "./components/Toolbar";
9
+ export { ColorPalette } from "./components/ColorPalette";
10
+ export { LineWidthSlider } from "./components/LineWidthSlider";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,YAAY,EACZ,aAAa,EACb,aAAa,EACb,UAAU,EACV,cAAc,EACd,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,KAAK,EACL,IAAI,EACJ,UAAU,EACV,cAAc,EACd,kBAAkB,EAClB,uBAAuB,GACxB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,cAAc,GACf,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { ArrowObject, Size } from "../types";
3
+ interface ArrowRendererProps {
4
+ object: ArrowObject;
5
+ canvasSize: Size;
6
+ }
7
+ export declare const ArrowRenderer: React.NamedExoticComponent<ArrowRendererProps>;
8
+ export {};
9
+ //# sourceMappingURL=ArrowRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArrowRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/ArrowRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGlD,UAAU,kBAAkB;IAC1B,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,IAAI,CAAC;CAClB;AAiFD,eAAO,MAAM,aAAa,gDAiCxB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { CircleObject, Size } from "../types";
3
+ interface CircleRendererProps {
4
+ object: CircleObject;
5
+ canvasSize: Size;
6
+ }
7
+ export declare const CircleRenderer: React.NamedExoticComponent<CircleRendererProps>;
8
+ export {};
9
+ //# sourceMappingURL=CircleRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CircleRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/CircleRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,cAAc,iDAiDzB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { FreehandObject, Size } from "../types";
3
+ interface FreehandRendererProps {
4
+ object: FreehandObject;
5
+ canvasSize: Size;
6
+ }
7
+ export declare const FreehandRenderer: React.NamedExoticComponent<FreehandRendererProps>;
8
+ export {};
9
+ //# sourceMappingURL=FreehandRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FreehandRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/FreehandRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAIrD,UAAU,qBAAqB;IAC7B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,gBAAgB,mDAqB3B,CAAC"}
@@ -0,0 +1,32 @@
1
+ import React from "react";
2
+ import type { SharedValue } from "react-native-reanimated";
3
+ import type { TwoPointShapeType } from "../types";
4
+ import type { SkPath } from "@shopify/react-native-skia";
5
+ interface FreehandInProgressProps {
6
+ path: SharedValue<SkPath | null>;
7
+ color: SharedValue<string>;
8
+ lineWidth: SharedValue<number>;
9
+ isDrawing: SharedValue<boolean>;
10
+ }
11
+ export declare const FreehandInProgress: React.NamedExoticComponent<FreehandInProgressProps>;
12
+ interface PolygonInProgressProps {
13
+ pointsFlat: SharedValue<number[]>;
14
+ pointCount: SharedValue<number>;
15
+ isActive: SharedValue<boolean>;
16
+ }
17
+ export declare const PolygonInProgress: React.NamedExoticComponent<PolygonInProgressProps>;
18
+ interface ShapeInProgressProps {
19
+ shapeType: TwoPointShapeType;
20
+ startX: SharedValue<number>;
21
+ startY: SharedValue<number>;
22
+ currentX: SharedValue<number>;
23
+ currentY: SharedValue<number>;
24
+ color: SharedValue<string>;
25
+ lineWidth: SharedValue<number>;
26
+ fillColor: SharedValue<string | null>;
27
+ fillAlpha: SharedValue<number>;
28
+ isDrawing: SharedValue<boolean>;
29
+ }
30
+ export declare const ShapeInProgress: React.NamedExoticComponent<ShapeInProgressProps>;
31
+ export {};
32
+ //# sourceMappingURL=InProgressRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InProgressRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/InProgressRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAU1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAIzD,UAAU,uBAAuB;IAC/B,IAAI,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACjC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC;AAKD,eAAO,MAAM,kBAAkB,qDAiB7B,CAAC;AAOH,UAAU,sBAAsB;IAC9B,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAChC;AAED,eAAO,MAAM,iBAAiB,oDAwB5B,CAAC;AAIH,UAAU,oBAAoB;IAC5B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC3B,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACtC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC/B,SAAS,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACjC;AAED,eAAO,MAAM,eAAe,kDAuH1B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { LineObject, Size } from "../types";
3
+ interface LineRendererProps {
4
+ object: LineObject;
5
+ canvasSize: Size;
6
+ }
7
+ export declare const LineRenderer: React.NamedExoticComponent<LineRendererProps>;
8
+ export {};
9
+ //# sourceMappingURL=LineRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LineRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/LineRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGjD,UAAU,iBAAiB;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,+CAuBvB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { MeasureObject, Size } from "../types";
3
+ interface MeasurementRendererProps {
4
+ object: MeasureObject;
5
+ canvasSize: Size;
6
+ }
7
+ export declare const MeasurementRenderer: React.NamedExoticComponent<MeasurementRendererProps>;
8
+ export {};
9
+ //# sourceMappingURL=MeasurementRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MeasurementRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/MeasurementRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAKpD,UAAU,wBAAwB;IAChC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AA2ED,eAAO,MAAM,mBAAmB,sDA4F9B,CAAC"}
@@ -0,0 +1,12 @@
1
+ import React from "react";
2
+ import type { DrawingObject, Size } from "../types";
3
+ interface ObjectRendererProps {
4
+ object: DrawingObject;
5
+ canvasSize: Size;
6
+ }
7
+ /**
8
+ * Routes a drawing object to its specialized renderer component.
9
+ */
10
+ export declare const ObjectRenderer: React.NamedExoticComponent<ObjectRendererProps>;
11
+ export {};
12
+ //# sourceMappingURL=ObjectRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/ObjectRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AASpD,UAAU,mBAAmB;IAC3B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,iDAuBzB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { PolygonObject, Size } from "../types";
3
+ interface PolygonRendererProps {
4
+ object: PolygonObject;
5
+ canvasSize: Size;
6
+ }
7
+ declare function buildPolygonPath(points: {
8
+ x: number;
9
+ y: number;
10
+ }[], closed: boolean): string | null;
11
+ export declare const PolygonRenderer: React.NamedExoticComponent<PolygonRendererProps>;
12
+ export { buildPolygonPath };
13
+ //# sourceMappingURL=PolygonRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PolygonRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/PolygonRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGpD,UAAU,oBAAoB;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,iBAAS,gBAAgB,CACvB,MAAM,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAAE,EAClC,MAAM,EAAE,OAAO,GACd,MAAM,GAAG,IAAI,CAQf;AAED,eAAO,MAAM,eAAe,kDAwC1B,CAAC;AAEH,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ import type { RectangleObject, Size } from "../types";
3
+ interface RectRendererProps {
4
+ object: RectangleObject;
5
+ canvasSize: Size;
6
+ }
7
+ export declare const RectRenderer: React.NamedExoticComponent<RectRendererProps>;
8
+ export {};
9
+ //# sourceMappingURL=RectRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RectRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/RectRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAGtD,UAAU,iBAAiB;IACzB,MAAM,EAAE,eAAe,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,eAAO,MAAM,YAAY,+CAiDvB,CAAC"}
@@ -0,0 +1,18 @@
1
+ import React from "react";
2
+ import type { SharedValue } from "react-native-reanimated";
3
+ import type { DrawingObject, Size } from "../types";
4
+ interface SelectedObjectRendererProps {
5
+ object: DrawingObject;
6
+ canvasSize: Size;
7
+ isDragging: SharedValue<boolean>;
8
+ draggingAnchorIndex: SharedValue<number>;
9
+ dragOffsetX: SharedValue<number>;
10
+ dragOffsetY: SharedValue<number>;
11
+ }
12
+ /**
13
+ * Renders the selected object with animated positions that follow
14
+ * the drag gesture in real-time — both for move and resize.
15
+ */
16
+ export declare const SelectedObjectRenderer: React.NamedExoticComponent<SelectedObjectRendererProps>;
17
+ export {};
18
+ //# sourceMappingURL=SelectedObjectRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectedObjectRenderer.d.ts","sourceRoot":"","sources":["../../../src/renderers/SelectedObjectRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6B,MAAM,OAAO,CAAC;AAalD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAgE,IAAI,EAAE,MAAM,UAAU,CAAC;AAOlH,UAAU,2BAA2B;IACnC,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAClC;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,yDAuGlC,CAAC"}
@@ -0,0 +1,21 @@
1
+ import React from "react";
2
+ import type { SharedValue } from "react-native-reanimated";
3
+ import type { DrawingObject, Size, Point } from "../types";
4
+ interface SelectionOverlayProps {
5
+ object: DrawingObject;
6
+ canvasSize: Size;
7
+ color?: string;
8
+ draggingAnchorIndex?: SharedValue<number>;
9
+ dragOffsetX?: SharedValue<number>;
10
+ dragOffsetY?: SharedValue<number>;
11
+ isDragging?: SharedValue<boolean>;
12
+ }
13
+ export declare const ANCHOR_RADIUS = 8;
14
+ declare const ANCHOR_HIT_RADIUS = 24;
15
+ /**
16
+ * Get the anchor points (in pixel coordinates) for a drawing object.
17
+ */
18
+ export declare function getAnchorPoints(object: DrawingObject, canvasSize: Size): Point[];
19
+ export { ANCHOR_HIT_RADIUS };
20
+ export declare const SelectionOverlay: React.NamedExoticComponent<SelectionOverlayProps>;
21
+ //# sourceMappingURL=SelectionOverlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SelectionOverlay.d.ts","sourceRoot":"","sources":["../../../src/renderers/SelectionOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EAIb,IAAI,EACJ,KAAK,EACN,MAAM,UAAU,CAAC;AAGlB,UAAU,qBAAqB;IAC7B,MAAM,EAAE,aAAa,CAAC;IACtB,UAAU,EAAE,IAAI,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,mBAAmB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,WAAW,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAClC,UAAU,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CACnC;AAED,eAAO,MAAM,aAAa,IAAI,CAAC;AAC/B,QAAA,MAAM,iBAAiB,KAAK,CAAC;AAG7B;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,aAAa,EACrB,UAAU,EAAE,IAAI,GACf,KAAK,EAAE,CAmCT;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAoD7B,eAAO,MAAM,gBAAgB,mDA8C3B,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { DrawingObject, ToolType, UndoAction, Size } from "../types";
2
+ export interface DrawingState {
3
+ objects: DrawingObject[];
4
+ currentTool: ToolType | null;
5
+ strokeColor: string;
6
+ fillColor: string | null;
7
+ fillAlpha: number;
8
+ lineWidth: number;
9
+ selectedObjectId: string | null;
10
+ canvasSize: Size;
11
+ undoStack: UndoAction[];
12
+ setTool: (tool: ToolType | null) => void;
13
+ setStrokeColor: (color: string) => void;
14
+ setFillColor: (color: string | null) => void;
15
+ setFillAlpha: (alpha: number) => void;
16
+ setLineWidth: (width: number) => void;
17
+ setCanvasSize: (size: Size) => void;
18
+ addObject: (obj: DrawingObject) => void;
19
+ updateObject: (id: string, updates: Partial<DrawingObject>) => void;
20
+ deleteObject: (id: string) => void;
21
+ deleteSelectedObject: () => void;
22
+ selectObject: (id: string | null) => void;
23
+ moveObject: (id: string, dx: number, dy: number) => void;
24
+ resizeObject: (id: string, anchorIndex: number, dx: number, dy: number) => void;
25
+ undo: () => void;
26
+ clearAll: () => void;
27
+ loadObjects: (objects: DrawingObject[]) => void;
28
+ }
29
+ export declare const useDrawingStore: import("zustand").UseBoundStore<import("zustand").StoreApi<DrawingState>>;
30
+ //# sourceMappingURL=useDrawingStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDrawingStore.d.ts","sourceRoot":"","sources":["../../../src/store/useDrawingStore.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,aAAa,EAGb,QAAQ,EACR,UAAU,EACV,IAAI,EAEL,MAAM,UAAU,CAAC;AAIlB,MAAM,WAAW,YAAY;IAE3B,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,WAAW,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,IAAI,CAAC;IACjB,SAAS,EAAE,UAAU,EAAE,CAAC;IAGxB,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC7C,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,YAAY,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,aAAa,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAEpC,SAAS,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC;IACpE,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,oBAAoB,EAAE,MAAM,IAAI,CAAC;IACjC,YAAY,EAAE,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACzD,YAAY,EAAE,CACZ,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,KACP,IAAI,CAAC;IACV,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,IAAI,CAAC;CACjD;AA0CD,eAAO,MAAM,eAAe,2EA0QzB,CAAC"}
@@ -0,0 +1,130 @@
1
+ import type { ReactNode } from "react";
2
+ import type { ViewStyle } from "react-native";
3
+ export type ToolType = "freehand" | "line" | "arrow" | "rectangle" | "circle" | "polygon" | "measure" | "text";
4
+ export type MeasureStyle = 0 | 1 | 2;
5
+ /** Normalized point: x and y are in [0, 1] relative to canvas size */
6
+ export interface Point {
7
+ x: number;
8
+ y: number;
9
+ }
10
+ export interface Size {
11
+ width: number;
12
+ height: number;
13
+ }
14
+ interface BaseDrawingObject {
15
+ id: string;
16
+ color: string;
17
+ lineWidth: number;
18
+ }
19
+ export interface FreehandObject extends BaseDrawingObject {
20
+ type: "freehand";
21
+ points: Point[];
22
+ }
23
+ export interface LineObject extends BaseDrawingObject {
24
+ type: "line";
25
+ from: Point;
26
+ to: Point;
27
+ }
28
+ export interface ArrowObject extends BaseDrawingObject {
29
+ type: "arrow";
30
+ from: Point;
31
+ to: Point;
32
+ }
33
+ export interface RectangleObject extends BaseDrawingObject {
34
+ type: "rectangle";
35
+ from: Point;
36
+ to: Point;
37
+ backgroundColor?: string;
38
+ backgroundAlpha?: number;
39
+ }
40
+ export interface CircleObject extends BaseDrawingObject {
41
+ type: "circle";
42
+ from: Point;
43
+ to: Point;
44
+ backgroundColor?: string;
45
+ backgroundAlpha?: number;
46
+ }
47
+ export interface MeasureObject extends BaseDrawingObject {
48
+ type: "measure";
49
+ from: Point;
50
+ to: Point;
51
+ text: string;
52
+ unit: string;
53
+ measureStyle: MeasureStyle;
54
+ }
55
+ export interface PolygonObject extends BaseDrawingObject {
56
+ type: "polygon";
57
+ points: Point[];
58
+ closed: boolean;
59
+ backgroundColor?: string;
60
+ backgroundAlpha?: number;
61
+ }
62
+ export interface TextObject extends BaseDrawingObject {
63
+ type: "text";
64
+ position: Point;
65
+ width: number;
66
+ height: number;
67
+ value: string;
68
+ backgroundColor?: string;
69
+ backgroundAlpha?: number;
70
+ }
71
+ export type DrawingObject = FreehandObject | LineObject | ArrowObject | RectangleObject | CircleObject | PolygonObject | MeasureObject | TextObject;
72
+ export type TwoPointShapeType = "line" | "arrow" | "rectangle" | "circle" | "measure";
73
+ export type TwoPointObject = LineObject | ArrowObject | RectangleObject | CircleObject | MeasureObject;
74
+ export type UndoActionType = "add" | "delete" | "edit" | "move";
75
+ export interface UndoAction {
76
+ type: UndoActionType;
77
+ objectId: string;
78
+ previousState?: DrawingObject;
79
+ }
80
+ export interface DrawingEditorProps {
81
+ /** URI string or require() for the background image */
82
+ imageSource: string | number;
83
+ /** Pre-existing objects to restore */
84
+ initialObjects?: DrawingObject[];
85
+ /** Maximum zoom level (default: 5) */
86
+ maxZoom?: number;
87
+ /** Called when the user saves */
88
+ onSave?: (result: {
89
+ image: Uint8Array;
90
+ objects: DrawingObject[];
91
+ canvasSize: Size;
92
+ }) => void;
93
+ /** Called when the user dismisses the editor */
94
+ onDismiss?: () => void;
95
+ /** Custom style for the root container */
96
+ style?: ViewStyle;
97
+ /** Override the default toolbar */
98
+ renderToolbar?: (props: ToolbarRenderProps) => ReactNode;
99
+ /** Override the default color palette */
100
+ renderColorPalette?: (props: ColorPaletteRenderProps) => ReactNode;
101
+ }
102
+ export interface ToolbarRenderProps {
103
+ currentTool: ToolType | null;
104
+ onSelectTool: (tool: ToolType | null) => void;
105
+ onUndo: () => void;
106
+ canUndo: boolean;
107
+ /** Whether the canvas is currently zoomed in (scale > 1) */
108
+ isZoomed: boolean;
109
+ /** Reset zoom to 1x */
110
+ onResetZoom: () => void;
111
+ }
112
+ export interface ColorPaletteRenderProps {
113
+ strokeColor: string;
114
+ fillColor: string | null;
115
+ fillAlpha: number;
116
+ onSelectStrokeColor: (color: string) => void;
117
+ onSelectFillColor: (color: string | null) => void;
118
+ onSelectFillAlpha: (alpha: number) => void;
119
+ }
120
+ export interface DrawingEditorRef {
121
+ undo: () => void;
122
+ setTool: (tool: ToolType) => void;
123
+ exportImage: () => Promise<Uint8Array | null>;
124
+ exportImageBase64: () => Promise<string | null>;
125
+ getObjects: () => DrawingObject[];
126
+ clearAll: () => void;
127
+ resetZoom: () => void;
128
+ }
129
+ export {};
130
+ //# sourceMappingURL=types.d.ts.map