@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,133 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TextEditModal = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ 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); }
11
+ const TextEditModal = exports.TextEditModal = /*#__PURE__*/_react.default.memo(function TextEditModal({
12
+ visible,
13
+ initialValue,
14
+ onSubmit,
15
+ onCancel
16
+ }) {
17
+ const [text, setText] = (0, _react.useState)(initialValue);
18
+ const handleSubmit = (0, _react.useCallback)(() => {
19
+ if (text.trim()) {
20
+ onSubmit(text.trim());
21
+ }
22
+ }, [text, onSubmit]);
23
+
24
+ // Reset text when modal becomes visible
25
+ _react.default.useEffect(() => {
26
+ if (visible) {
27
+ setText(initialValue);
28
+ }
29
+ }, [visible, initialValue]);
30
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Modal, {
31
+ visible: visible,
32
+ transparent: true,
33
+ animationType: "fade",
34
+ onRequestClose: onCancel,
35
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.KeyboardAvoidingView, {
36
+ style: styles.overlay,
37
+ behavior: _reactNative.Platform.OS === "ios" ? "padding" : "height",
38
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
39
+ style: styles.dialog,
40
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
41
+ style: styles.title,
42
+ children: "Edit Text"
43
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TextInput, {
44
+ style: styles.input,
45
+ value: text,
46
+ onChangeText: setText,
47
+ placeholder: "Enter text...",
48
+ placeholderTextColor: "#999",
49
+ multiline: true,
50
+ autoFocus: true,
51
+ textAlignVertical: "top"
52
+ }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
53
+ style: styles.buttons,
54
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
55
+ style: styles.cancelButton,
56
+ onPress: onCancel,
57
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
58
+ style: styles.cancelText,
59
+ children: "Cancel"
60
+ })
61
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
62
+ style: styles.submitButton,
63
+ onPress: handleSubmit,
64
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
65
+ style: styles.submitText,
66
+ children: "Done"
67
+ })
68
+ })]
69
+ })]
70
+ })
71
+ })
72
+ });
73
+ });
74
+ const styles = _reactNative.StyleSheet.create({
75
+ overlay: {
76
+ flex: 1,
77
+ backgroundColor: "rgba(0, 0, 0, 0.5)",
78
+ justifyContent: "center",
79
+ alignItems: "center",
80
+ padding: 24
81
+ },
82
+ dialog: {
83
+ backgroundColor: "#2C2C2E",
84
+ borderRadius: 14,
85
+ padding: 20,
86
+ width: "100%",
87
+ maxWidth: 400
88
+ },
89
+ title: {
90
+ color: "#FFFFFF",
91
+ fontSize: 18,
92
+ fontWeight: "600",
93
+ marginBottom: 16,
94
+ textAlign: "center"
95
+ },
96
+ input: {
97
+ backgroundColor: "#1C1C1E",
98
+ borderRadius: 10,
99
+ padding: 12,
100
+ color: "#FFFFFF",
101
+ fontSize: 16,
102
+ minHeight: 100,
103
+ marginBottom: 16
104
+ },
105
+ buttons: {
106
+ flexDirection: "row",
107
+ gap: 12
108
+ },
109
+ cancelButton: {
110
+ flex: 1,
111
+ paddingVertical: 12,
112
+ borderRadius: 10,
113
+ backgroundColor: "#3A3A3C",
114
+ alignItems: "center"
115
+ },
116
+ cancelText: {
117
+ color: "#FFFFFF",
118
+ fontSize: 16
119
+ },
120
+ submitButton: {
121
+ flex: 1,
122
+ paddingVertical: 12,
123
+ borderRadius: 10,
124
+ backgroundColor: "#007AFF",
125
+ alignItems: "center"
126
+ },
127
+ submitText: {
128
+ color: "#FFFFFF",
129
+ fontSize: 16,
130
+ fontWeight: "600"
131
+ }
132
+ });
133
+ //# sourceMappingURL=TextEditModal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","TextEditModal","exports","React","memo","visible","initialValue","onSubmit","onCancel","text","setText","useState","handleSubmit","useCallback","trim","useEffect","jsx","Modal","transparent","animationType","onRequestClose","children","KeyboardAvoidingView","style","styles","overlay","behavior","Platform","OS","jsxs","View","dialog","Text","title","TextInput","input","value","onChangeText","placeholder","placeholderTextColor","multiline","autoFocus","textAlignVertical","buttons","TouchableOpacity","cancelButton","onPress","cancelText","submitButton","submitText","StyleSheet","create","flex","backgroundColor","justifyContent","alignItems","padding","borderRadius","width","maxWidth","color","fontSize","fontWeight","marginBottom","textAlign","minHeight","flexDirection","gap","paddingVertical"],"sourceRoot":"../../../src","sources":["components/TextEditModal.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,198 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Toolbar = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _jsxRuntime = require("react/jsx-runtime");
10
+ 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); }
11
+ const BUTTON_SIZE = 44;
12
+ const BUTTON_GAP = 4;
13
+ const TOOLBAR_HORIZONTAL_PADDING = 12;
14
+ const TOOLS = [{
15
+ type: "freehand",
16
+ label: "Pen",
17
+ icons: {
18
+ default: require("../assets/toolbar-icons/freehand.png"),
19
+ active: require("../assets/toolbar-icons/freehand-enabled.png")
20
+ }
21
+ }, {
22
+ type: "line",
23
+ label: "Line",
24
+ icons: {
25
+ default: require("../assets/toolbar-icons/line.png"),
26
+ active: require("../assets/toolbar-icons/line-enabled.png")
27
+ }
28
+ }, {
29
+ type: "arrow",
30
+ label: "Arrow",
31
+ icons: {
32
+ default: require("../assets/toolbar-icons/arrow.png"),
33
+ active: require("../assets/toolbar-icons/arrow-enabled.png")
34
+ }
35
+ }, {
36
+ type: "rectangle",
37
+ label: "Rect",
38
+ icons: {
39
+ default: require("../assets/toolbar-icons/rectangle.png"),
40
+ active: require("../assets/toolbar-icons/rectangle-enabled.png")
41
+ }
42
+ }, {
43
+ type: "circle",
44
+ label: "Circle",
45
+ icons: {
46
+ default: require("../assets/toolbar-icons/circle.png"),
47
+ active: require("../assets/toolbar-icons/circle-enabled.png")
48
+ }
49
+ }, {
50
+ type: "polygon",
51
+ label: "Polygon",
52
+ icons: {
53
+ default: require("../assets/toolbar-icons/polygon.png"),
54
+ active: require("../assets/toolbar-icons/polygon-enabled.png")
55
+ }
56
+ }, {
57
+ type: "measure",
58
+ label: "Measure",
59
+ icons: {
60
+ default: require("../assets/toolbar-icons/measure.png"),
61
+ active: require("../assets/toolbar-icons/measure-enabled.png")
62
+ }
63
+ }, {
64
+ type: "text",
65
+ label: "Text",
66
+ icons: {
67
+ default: require("../assets/toolbar-icons/text.png"),
68
+ active: require("../assets/toolbar-icons/text-enabled.png")
69
+ }
70
+ }];
71
+ const FULL_TOOLBAR_WIDTH = TOOLS.length * BUTTON_SIZE + BUTTON_SIZE * 2 +
72
+ // undo + reset
73
+ BUTTON_GAP * (TOOLS.length + 1) + TOOLBAR_HORIZONTAL_PADDING * 2;
74
+ const Toolbar = exports.Toolbar = /*#__PURE__*/_react.default.memo(function Toolbar({
75
+ currentTool,
76
+ onSelectTool,
77
+ onUndo,
78
+ canUndo,
79
+ isZoomed,
80
+ onResetZoom
81
+ }) {
82
+ const {
83
+ width
84
+ } = (0, _reactNative.useWindowDimensions)();
85
+ const availableWidth = Math.max(width - 24, BUTTON_SIZE * 4);
86
+ const shellWidth = Math.min(availableWidth, 560);
87
+ const shouldCenterContent = shellWidth >= FULL_TOOLBAR_WIDTH;
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
89
+ style: styles.container,
90
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
91
+ style: [styles.shell, {
92
+ width: shellWidth
93
+ }],
94
+ children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.ScrollView, {
95
+ horizontal: true,
96
+ bounces: false,
97
+ showsHorizontalScrollIndicator: false,
98
+ contentContainerStyle: [styles.scrollContent, shouldCenterContent && styles.scrollContentCentered],
99
+ children: [TOOLS.map(tool => /*#__PURE__*/(0, _jsxRuntime.jsx)(ToolButton, {
100
+ tool: tool,
101
+ isActive: currentTool === tool.type,
102
+ onPress: onSelectTool
103
+ }, tool.type)), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
104
+ accessibilityLabel: "Undo",
105
+ style: [styles.button, !canUndo && styles.buttonDisabled],
106
+ onPress: onUndo,
107
+ disabled: !canUndo,
108
+ activeOpacity: 0.7,
109
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
110
+ style: [styles.undoIcon, !canUndo && styles.iconDisabled],
111
+ children: "\u21A9"
112
+ })
113
+ }), isZoomed && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
114
+ accessibilityLabel: "Reset zoom",
115
+ style: styles.button,
116
+ onPress: onResetZoom,
117
+ activeOpacity: 0.7,
118
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
119
+ style: styles.undoIcon,
120
+ children: "\u2299"
121
+ })
122
+ })]
123
+ })
124
+ })
125
+ });
126
+ });
127
+ const ToolButton = /*#__PURE__*/_react.default.memo(function ToolButton({
128
+ tool,
129
+ isActive,
130
+ onPress
131
+ }) {
132
+ const handlePress = (0, _react.useCallback)(() => {
133
+ onPress(tool.type);
134
+ }, [onPress, tool.type]);
135
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.TouchableOpacity, {
136
+ accessibilityLabel: tool.label,
137
+ style: styles.button,
138
+ onPress: handlePress,
139
+ activeOpacity: 0.7,
140
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Image, {
141
+ source: isActive ? tool.icons.active : tool.icons.default,
142
+ style: [styles.iconImage, isActive && styles.iconImageActive],
143
+ resizeMode: "contain"
144
+ })
145
+ });
146
+ });
147
+ const styles = _reactNative.StyleSheet.create({
148
+ container: {
149
+ width: "100%",
150
+ alignItems: "center",
151
+ paddingHorizontal: 12,
152
+ paddingVertical: 8
153
+ },
154
+ shell: {
155
+ backgroundColor: "rgba(0, 0, 0, 0.88)",
156
+ borderRadius: 18,
157
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
158
+ borderColor: "rgba(255, 255, 255, 0.16)"
159
+ },
160
+ scrollContent: {
161
+ alignItems: "center",
162
+ flexGrow: 1,
163
+ paddingHorizontal: TOOLBAR_HORIZONTAL_PADDING,
164
+ paddingVertical: 10,
165
+ gap: BUTTON_GAP
166
+ },
167
+ scrollContentCentered: {
168
+ justifyContent: "center"
169
+ },
170
+ button: {
171
+ width: BUTTON_SIZE,
172
+ height: BUTTON_SIZE,
173
+ borderRadius: BUTTON_SIZE / 2,
174
+ justifyContent: "center",
175
+ alignItems: "center",
176
+ backgroundColor: "transparent"
177
+ },
178
+ buttonDisabled: {
179
+ opacity: 0.4
180
+ },
181
+ iconImage: {
182
+ width: 26,
183
+ height: 26
184
+ },
185
+ iconImageActive: {
186
+ width: 36,
187
+ height: 36
188
+ },
189
+ iconDisabled: {
190
+ color: "#666666"
191
+ },
192
+ undoIcon: {
193
+ fontSize: 24,
194
+ lineHeight: 24,
195
+ color: "#FFFFFF"
196
+ }
197
+ });
198
+ //# sourceMappingURL=Toolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BUTTON_SIZE","BUTTON_GAP","TOOLBAR_HORIZONTAL_PADDING","TOOLS","type","label","icons","active","FULL_TOOLBAR_WIDTH","length","Toolbar","exports","React","memo","currentTool","onSelectTool","onUndo","canUndo","isZoomed","onResetZoom","width","useWindowDimensions","availableWidth","Math","max","shellWidth","min","shouldCenterContent","jsx","View","style","styles","container","children","shell","jsxs","ScrollView","horizontal","bounces","showsHorizontalScrollIndicator","contentContainerStyle","scrollContent","scrollContentCentered","map","tool","ToolButton","isActive","onPress","TouchableOpacity","accessibilityLabel","button","buttonDisabled","disabled","activeOpacity","Text","undoIcon","iconDisabled","handlePress","useCallback","Image","source","iconImage","iconImageActive","resizeMode","StyleSheet","create","alignItems","paddingHorizontal","paddingVertical","backgroundColor","borderRadius","borderWidth","hairlineWidth","borderColor","flexGrow","gap","justifyContent","height","opacity","color","fontSize","lineHeight"],"sourceRoot":"../../../src","sources":["components/Toolbar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ZoomBadge = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
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
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const AnimatedTouchable = _reactNativeReanimated.default.createAnimatedComponent(_reactNative.TouchableOpacity);
14
+ const HINT_DURATION = 3000;
15
+ const FADE_DURATION = 400;
16
+ const ZoomBadge = exports.ZoomBadge = /*#__PURE__*/_react.default.memo(function ZoomBadge({
17
+ scale,
18
+ onPress
19
+ }) {
20
+ const isZoomed = (0, _reactNativeReanimated.useDerivedValue)(() => scale.value > 1.02);
21
+ const [hintExpired, setHintExpired] = _react.default.useState(false);
22
+ const [mounted, setMounted] = _react.default.useState(true);
23
+ const [zoomed, setZoomed] = _react.default.useState(false);
24
+
25
+ // Start fade-out after HINT_DURATION, then unmount after animation
26
+ _react.default.useEffect(() => {
27
+ const fadeTimer = setTimeout(() => setHintExpired(true), HINT_DURATION);
28
+ const unmountTimer = setTimeout(() => setMounted(false), HINT_DURATION + FADE_DURATION);
29
+ return () => {
30
+ clearTimeout(fadeTimer);
31
+ clearTimeout(unmountTimer);
32
+ };
33
+ }, []);
34
+
35
+ // Track zoom state on JS thread
36
+ _react.default.useEffect(() => {
37
+ const id = setInterval(() => {
38
+ setZoomed(isZoomed.value);
39
+ }, 100);
40
+ return () => clearInterval(id);
41
+ }, [isZoomed]);
42
+ const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => {
43
+ const show = isZoomed.value || !hintExpired;
44
+ return {
45
+ opacity: (0, _reactNativeReanimated.withTiming)(show ? 1 : 0, {
46
+ duration: FADE_DURATION
47
+ }),
48
+ transform: [{
49
+ scale: (0, _reactNativeReanimated.withTiming)(show ? 1 : 0.85, {
50
+ duration: FADE_DURATION
51
+ })
52
+ }]
53
+ };
54
+ }, [hintExpired]);
55
+ const zoomText = (0, _reactNativeReanimated.useDerivedValue)(() => {
56
+ const s = Math.round(scale.value * 10) / 10;
57
+ return `${s}x`;
58
+ });
59
+
60
+ // Keep mounted while hint is visible OR zoomed
61
+ if (!mounted && !zoomed) return null;
62
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(AnimatedTouchable, {
63
+ style: [styles.badge, animatedStyle],
64
+ onPress: onPress,
65
+ activeOpacity: 0.7,
66
+ children: zoomed ? /*#__PURE__*/(0, _jsxRuntime.jsx)(ZoomLabel, {
67
+ zoomText: zoomText
68
+ }) : /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
69
+ style: styles.iconRow,
70
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(MagnifyIcon, {}), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
71
+ style: styles.hintText,
72
+ children: "Pinch to zoom"
73
+ })]
74
+ })
75
+ });
76
+ });
77
+ function ZoomLabel({
78
+ zoomText
79
+ }) {
80
+ const [text, setText] = _react.default.useState("1x");
81
+ _react.default.useEffect(() => {
82
+ const id = setInterval(() => {
83
+ const val = zoomText.value;
84
+ setText(prev => prev !== val ? val : prev);
85
+ }, 100);
86
+ return () => clearInterval(id);
87
+ }, [zoomText]);
88
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
89
+ style: styles.text,
90
+ children: text
91
+ });
92
+ }
93
+ function MagnifyIcon() {
94
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
95
+ style: styles.magnifyIcon,
96
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
97
+ style: styles.lens
98
+ }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
99
+ style: styles.handle
100
+ })]
101
+ });
102
+ }
103
+ const styles = _reactNative.StyleSheet.create({
104
+ badge: {
105
+ position: "absolute",
106
+ top: 12,
107
+ alignSelf: "center",
108
+ backgroundColor: "rgba(0, 0, 0, 0.55)",
109
+ borderRadius: 14,
110
+ paddingHorizontal: 10,
111
+ paddingVertical: 5,
112
+ borderWidth: _reactNative.StyleSheet.hairlineWidth,
113
+ borderColor: "rgba(255, 255, 255, 0.25)",
114
+ flexDirection: "row",
115
+ alignItems: "center"
116
+ },
117
+ text: {
118
+ color: "#FFFFFF",
119
+ fontSize: 13,
120
+ fontWeight: "600",
121
+ fontVariant: ["tabular-nums"]
122
+ },
123
+ iconRow: {
124
+ flexDirection: "row",
125
+ alignItems: "center",
126
+ gap: 5
127
+ },
128
+ hintText: {
129
+ color: "rgba(255, 255, 255, 0.9)",
130
+ fontSize: 12,
131
+ fontWeight: "500"
132
+ },
133
+ magnifyIcon: {
134
+ width: 14,
135
+ height: 14,
136
+ position: "relative"
137
+ },
138
+ lens: {
139
+ width: 9,
140
+ height: 9,
141
+ borderRadius: 5,
142
+ borderWidth: 1.5,
143
+ borderColor: "#FFFFFF",
144
+ position: "absolute",
145
+ top: 0,
146
+ left: 0
147
+ },
148
+ handle: {
149
+ width: 5,
150
+ height: 1.5,
151
+ backgroundColor: "#FFFFFF",
152
+ borderRadius: 1,
153
+ position: "absolute",
154
+ bottom: 1.5,
155
+ right: 0,
156
+ transform: [{
157
+ rotate: "45deg"
158
+ }]
159
+ }
160
+ });
161
+ //# sourceMappingURL=ZoomBadge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNativeReanimated","_interopRequireWildcard","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","AnimatedTouchable","Animated","createAnimatedComponent","TouchableOpacity","HINT_DURATION","FADE_DURATION","ZoomBadge","exports","React","memo","scale","onPress","isZoomed","useDerivedValue","value","hintExpired","setHintExpired","useState","mounted","setMounted","zoomed","setZoomed","useEffect","fadeTimer","setTimeout","unmountTimer","clearTimeout","id","setInterval","clearInterval","animatedStyle","useAnimatedStyle","show","opacity","withTiming","duration","transform","zoomText","s","Math","round","jsx","style","styles","badge","activeOpacity","children","ZoomLabel","jsxs","View","iconRow","MagnifyIcon","Text","hintText","text","setText","val","prev","magnifyIcon","lens","handle","StyleSheet","create","position","top","alignSelf","backgroundColor","borderRadius","paddingHorizontal","paddingVertical","borderWidth","hairlineWidth","borderColor","flexDirection","alignItems","color","fontSize","fontWeight","fontVariant","gap","width","height","left","bottom","right","rotate"],"sourceRoot":"../../../src","sources":["components/ZoomBadge.tsx"],"mappings":"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","ignoreList":[]}