@twick/2d 0.14.18 → 0.14.19

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 (536) hide show
  1. package/LICENSE +21 -21
  2. package/package.json +4 -4
  3. package/src/editor/NodeInspectorConfig.tsx +76 -76
  4. package/src/editor/PreviewOverlayConfig.tsx +67 -67
  5. package/src/editor/Provider.tsx +93 -93
  6. package/src/editor/SceneGraphTabConfig.tsx +81 -81
  7. package/src/editor/icons/CircleIcon.tsx +7 -7
  8. package/src/editor/icons/CodeBlockIcon.tsx +8 -8
  9. package/src/editor/icons/CurveIcon.tsx +7 -7
  10. package/src/editor/icons/GridIcon.tsx +7 -7
  11. package/src/editor/icons/IconMap.ts +35 -35
  12. package/src/editor/icons/ImgIcon.tsx +8 -8
  13. package/src/editor/icons/LayoutIcon.tsx +9 -9
  14. package/src/editor/icons/LineIcon.tsx +7 -7
  15. package/src/editor/icons/NodeIcon.tsx +7 -7
  16. package/src/editor/icons/RayIcon.tsx +7 -7
  17. package/src/editor/icons/RectIcon.tsx +7 -7
  18. package/src/editor/icons/ShapeIcon.tsx +7 -7
  19. package/src/editor/icons/TxtIcon.tsx +8 -8
  20. package/src/editor/icons/VideoIcon.tsx +7 -7
  21. package/src/editor/icons/View2DIcon.tsx +10 -10
  22. package/src/editor/index.ts +17 -17
  23. package/src/editor/tree/DetachedRoot.tsx +23 -23
  24. package/src/editor/tree/NodeElement.tsx +74 -74
  25. package/src/editor/tree/TreeElement.tsx +72 -72
  26. package/src/editor/tree/TreeRoot.tsx +10 -10
  27. package/src/editor/tree/ViewRoot.tsx +20 -20
  28. package/src/editor/tree/index.module.scss +38 -38
  29. package/src/editor/tree/index.ts +3 -3
  30. package/src/editor/tsconfig.build.json +5 -5
  31. package/src/editor/tsconfig.json +12 -12
  32. package/src/editor/tsdoc.json +4 -4
  33. package/src/editor/vite-env.d.ts +1 -1
  34. package/src/lib/code/CodeCursor.ts +445 -445
  35. package/src/lib/code/CodeDiffer.ts +78 -78
  36. package/src/lib/code/CodeFragment.ts +97 -97
  37. package/src/lib/code/CodeHighlighter.ts +75 -75
  38. package/src/lib/code/CodeMetrics.ts +47 -47
  39. package/src/lib/code/CodeRange.test.ts +74 -74
  40. package/src/lib/code/CodeRange.ts +216 -216
  41. package/src/lib/code/CodeScope.ts +101 -101
  42. package/src/lib/code/CodeSelection.ts +24 -24
  43. package/src/lib/code/CodeSignal.ts +327 -327
  44. package/src/lib/code/CodeTokenizer.ts +54 -54
  45. package/src/lib/code/DefaultHighlightStyle.ts +98 -98
  46. package/src/lib/code/LezerHighlighter.ts +113 -113
  47. package/src/lib/code/diff.test.ts +311 -311
  48. package/src/lib/code/diff.ts +319 -319
  49. package/src/lib/code/extractRange.ts +126 -126
  50. package/src/lib/code/index.ts +13 -13
  51. package/src/lib/components/Audio.ts +168 -168
  52. package/src/lib/components/Bezier.ts +105 -105
  53. package/src/lib/components/Circle.ts +266 -266
  54. package/src/lib/components/Code.ts +526 -526
  55. package/src/lib/components/CodeBlock.ts +576 -576
  56. package/src/lib/components/CubicBezier.ts +112 -112
  57. package/src/lib/components/Curve.ts +455 -455
  58. package/src/lib/components/Grid.ts +135 -135
  59. package/src/lib/components/Icon.ts +96 -96
  60. package/src/lib/components/Img.ts +319 -319
  61. package/src/lib/components/Knot.ts +157 -157
  62. package/src/lib/components/Latex.ts +122 -122
  63. package/src/lib/components/Layout.ts +1092 -1092
  64. package/src/lib/components/Line.ts +429 -429
  65. package/src/lib/components/Media.ts +576 -576
  66. package/src/lib/components/Node.ts +1940 -1940
  67. package/src/lib/components/Path.ts +137 -137
  68. package/src/lib/components/Polygon.ts +171 -171
  69. package/src/lib/components/QuadBezier.ts +100 -100
  70. package/src/lib/components/Ray.ts +125 -125
  71. package/src/lib/components/Rect.ts +187 -187
  72. package/src/lib/components/Rive.ts +156 -156
  73. package/src/lib/components/SVG.ts +797 -797
  74. package/src/lib/components/Shape.ts +143 -143
  75. package/src/lib/components/Spline.ts +344 -344
  76. package/src/lib/components/Txt.test.tsx +81 -81
  77. package/src/lib/components/Txt.ts +203 -203
  78. package/src/lib/components/TxtLeaf.ts +205 -205
  79. package/src/lib/components/Video.ts +461 -461
  80. package/src/lib/components/View2D.ts +98 -98
  81. package/src/lib/components/__tests__/children.test.tsx +142 -142
  82. package/src/lib/components/__tests__/clone.test.tsx +126 -126
  83. package/src/lib/components/__tests__/generatorTest.ts +28 -28
  84. package/src/lib/components/__tests__/mockScene2D.ts +45 -45
  85. package/src/lib/components/__tests__/query.test.tsx +122 -122
  86. package/src/lib/components/__tests__/state.test.tsx +60 -60
  87. package/src/lib/components/index.ts +28 -28
  88. package/src/lib/components/types.ts +35 -35
  89. package/src/lib/curves/ArcSegment.ts +159 -159
  90. package/src/lib/curves/CircleSegment.ts +77 -77
  91. package/src/lib/curves/CubicBezierSegment.ts +78 -78
  92. package/src/lib/curves/CurveDrawingInfo.ts +11 -11
  93. package/src/lib/curves/CurvePoint.ts +15 -15
  94. package/src/lib/curves/CurveProfile.ts +7 -7
  95. package/src/lib/curves/KnotInfo.ts +10 -10
  96. package/src/lib/curves/LineSegment.ts +62 -62
  97. package/src/lib/curves/Polynomial.ts +355 -355
  98. package/src/lib/curves/Polynomial2D.ts +62 -62
  99. package/src/lib/curves/PolynomialSegment.ts +124 -124
  100. package/src/lib/curves/QuadBezierSegment.ts +64 -64
  101. package/src/lib/curves/Segment.ts +17 -17
  102. package/src/lib/curves/UniformPolynomialCurveSampler.ts +94 -94
  103. package/src/lib/curves/createCurveProfileLerp.ts +471 -471
  104. package/src/lib/curves/getBezierSplineProfile.ts +223 -223
  105. package/src/lib/curves/getCircleProfile.ts +86 -86
  106. package/src/lib/curves/getPathProfile.ts +178 -178
  107. package/src/lib/curves/getPointAtDistance.ts +21 -21
  108. package/src/lib/curves/getPolylineProfile.test.ts +21 -21
  109. package/src/lib/curves/getPolylineProfile.ts +89 -89
  110. package/src/lib/curves/getRectProfile.ts +139 -139
  111. package/src/lib/curves/index.ts +16 -16
  112. package/src/lib/decorators/canvasStyleSignal.ts +16 -16
  113. package/src/lib/decorators/colorSignal.ts +9 -9
  114. package/src/lib/decorators/compound.ts +72 -72
  115. package/src/lib/decorators/computed.ts +18 -18
  116. package/src/lib/decorators/defaultStyle.ts +18 -18
  117. package/src/lib/decorators/filtersSignal.ts +136 -136
  118. package/src/lib/decorators/index.ts +10 -10
  119. package/src/lib/decorators/initializers.ts +32 -32
  120. package/src/lib/decorators/nodeName.ts +13 -13
  121. package/src/lib/decorators/signal.test.ts +90 -90
  122. package/src/lib/decorators/signal.ts +345 -345
  123. package/src/lib/decorators/spacingSignal.ts +15 -15
  124. package/src/lib/decorators/vector2Signal.ts +30 -30
  125. package/src/lib/globals.d.ts +2 -2
  126. package/src/lib/index.ts +8 -8
  127. package/src/lib/jsx-dev-runtime.ts +2 -2
  128. package/src/lib/jsx-runtime.ts +46 -46
  129. package/src/lib/parse-svg-path.d.ts +14 -14
  130. package/src/lib/partials/Filter.ts +180 -180
  131. package/src/lib/partials/Gradient.ts +102 -102
  132. package/src/lib/partials/Pattern.ts +34 -34
  133. package/src/lib/partials/ShaderConfig.ts +117 -117
  134. package/src/lib/partials/index.ts +4 -4
  135. package/src/lib/partials/types.ts +58 -58
  136. package/src/lib/scenes/Scene2D.ts +242 -242
  137. package/src/lib/scenes/index.ts +3 -3
  138. package/src/lib/scenes/makeScene2D.ts +16 -16
  139. package/src/lib/scenes/useScene2D.ts +6 -6
  140. package/src/lib/tsconfig.build.json +5 -5
  141. package/src/lib/tsconfig.json +10 -10
  142. package/src/lib/tsdoc.json +4 -4
  143. package/src/lib/utils/CanvasUtils.ts +306 -306
  144. package/src/lib/utils/diff.test.ts +453 -453
  145. package/src/lib/utils/diff.ts +148 -148
  146. package/src/lib/utils/index.ts +2 -2
  147. package/src/lib/utils/is.ts +11 -11
  148. package/src/lib/utils/makeSignalExtensions.ts +30 -30
  149. package/src/lib/utils/video/declarations.d.ts +1 -1
  150. package/src/lib/utils/video/ffmpeg-client.ts +50 -50
  151. package/src/lib/utils/video/mp4-parser-manager.ts +72 -72
  152. package/src/lib/utils/video/parser/index.ts +1 -1
  153. package/src/lib/utils/video/parser/parser.ts +257 -257
  154. package/src/lib/utils/video/parser/sampler.ts +72 -72
  155. package/src/lib/utils/video/parser/segment.ts +302 -302
  156. package/src/lib/utils/video/parser/sink.ts +29 -29
  157. package/src/lib/utils/video/parser/utils.ts +31 -31
  158. package/src/tsconfig.base.json +19 -19
  159. package/src/tsconfig.build.json +8 -8
  160. package/src/tsconfig.json +5 -5
  161. package/tsconfig.project.json +7 -7
  162. package/editor/editor/NodeInspectorConfig.d.ts +0 -3
  163. package/editor/editor/NodeInspectorConfig.d.ts.map +0 -1
  164. package/editor/editor/PreviewOverlayConfig.d.ts +0 -3
  165. package/editor/editor/PreviewOverlayConfig.d.ts.map +0 -1
  166. package/editor/editor/Provider.d.ts +0 -17
  167. package/editor/editor/Provider.d.ts.map +0 -1
  168. package/editor/editor/SceneGraphTabConfig.d.ts +0 -3
  169. package/editor/editor/SceneGraphTabConfig.d.ts.map +0 -1
  170. package/editor/editor/icons/CircleIcon.d.ts +0 -2
  171. package/editor/editor/icons/CircleIcon.d.ts.map +0 -1
  172. package/editor/editor/icons/CodeBlockIcon.d.ts +0 -2
  173. package/editor/editor/icons/CodeBlockIcon.d.ts.map +0 -1
  174. package/editor/editor/icons/CurveIcon.d.ts +0 -2
  175. package/editor/editor/icons/CurveIcon.d.ts.map +0 -1
  176. package/editor/editor/icons/GridIcon.d.ts +0 -2
  177. package/editor/editor/icons/GridIcon.d.ts.map +0 -1
  178. package/editor/editor/icons/IconMap.d.ts +0 -3
  179. package/editor/editor/icons/IconMap.d.ts.map +0 -1
  180. package/editor/editor/icons/ImgIcon.d.ts +0 -2
  181. package/editor/editor/icons/ImgIcon.d.ts.map +0 -1
  182. package/editor/editor/icons/LayoutIcon.d.ts +0 -2
  183. package/editor/editor/icons/LayoutIcon.d.ts.map +0 -1
  184. package/editor/editor/icons/LineIcon.d.ts +0 -2
  185. package/editor/editor/icons/LineIcon.d.ts.map +0 -1
  186. package/editor/editor/icons/NodeIcon.d.ts +0 -2
  187. package/editor/editor/icons/NodeIcon.d.ts.map +0 -1
  188. package/editor/editor/icons/RayIcon.d.ts +0 -2
  189. package/editor/editor/icons/RayIcon.d.ts.map +0 -1
  190. package/editor/editor/icons/RectIcon.d.ts +0 -2
  191. package/editor/editor/icons/RectIcon.d.ts.map +0 -1
  192. package/editor/editor/icons/ShapeIcon.d.ts +0 -2
  193. package/editor/editor/icons/ShapeIcon.d.ts.map +0 -1
  194. package/editor/editor/icons/TxtIcon.d.ts +0 -2
  195. package/editor/editor/icons/TxtIcon.d.ts.map +0 -1
  196. package/editor/editor/icons/VideoIcon.d.ts +0 -2
  197. package/editor/editor/icons/VideoIcon.d.ts.map +0 -1
  198. package/editor/editor/icons/View2DIcon.d.ts +0 -2
  199. package/editor/editor/icons/View2DIcon.d.ts.map +0 -1
  200. package/editor/editor/index.d.ts +0 -4
  201. package/editor/editor/index.d.ts.map +0 -1
  202. package/editor/editor/tree/DetachedRoot.d.ts +0 -2
  203. package/editor/editor/tree/DetachedRoot.d.ts.map +0 -1
  204. package/editor/editor/tree/NodeElement.d.ts +0 -8
  205. package/editor/editor/tree/NodeElement.d.ts.map +0 -1
  206. package/editor/editor/tree/TreeElement.d.ts +0 -15
  207. package/editor/editor/tree/TreeElement.d.ts.map +0 -1
  208. package/editor/editor/tree/TreeRoot.d.ts +0 -3
  209. package/editor/editor/tree/TreeRoot.d.ts.map +0 -1
  210. package/editor/editor/tree/ViewRoot.d.ts +0 -2
  211. package/editor/editor/tree/ViewRoot.d.ts.map +0 -1
  212. package/editor/editor/tree/index.d.ts +0 -4
  213. package/editor/editor/tree/index.d.ts.map +0 -1
  214. package/editor/editor/tsconfig.build.tsbuildinfo +0 -1
  215. package/editor/index.css +0 -33
  216. package/editor/index.js +0 -341
  217. package/editor/index.js.map +0 -1
  218. package/lib/code/CodeCursor.d.ts +0 -83
  219. package/lib/code/CodeCursor.d.ts.map +0 -1
  220. package/lib/code/CodeCursor.js +0 -306
  221. package/lib/code/CodeDiffer.d.ts +0 -28
  222. package/lib/code/CodeDiffer.d.ts.map +0 -1
  223. package/lib/code/CodeDiffer.js +0 -51
  224. package/lib/code/CodeFragment.d.ts +0 -42
  225. package/lib/code/CodeFragment.d.ts.map +0 -1
  226. package/lib/code/CodeFragment.js +0 -72
  227. package/lib/code/CodeHighlighter.d.ts +0 -71
  228. package/lib/code/CodeHighlighter.d.ts.map +0 -1
  229. package/lib/code/CodeHighlighter.js +0 -2
  230. package/lib/code/CodeMetrics.d.ts +0 -11
  231. package/lib/code/CodeMetrics.d.ts.map +0 -1
  232. package/lib/code/CodeMetrics.js +0 -29
  233. package/lib/code/CodeRange.d.ts +0 -41
  234. package/lib/code/CodeRange.d.ts.map +0 -1
  235. package/lib/code/CodeRange.js +0 -179
  236. package/lib/code/CodeScope.d.ts +0 -16
  237. package/lib/code/CodeScope.d.ts.map +0 -1
  238. package/lib/code/CodeScope.js +0 -72
  239. package/lib/code/CodeSelection.d.ts +0 -6
  240. package/lib/code/CodeSelection.d.ts.map +0 -1
  241. package/lib/code/CodeSelection.js +0 -13
  242. package/lib/code/CodeSignal.d.ts +0 -60
  243. package/lib/code/CodeSignal.d.ts.map +0 -1
  244. package/lib/code/CodeSignal.js +0 -194
  245. package/lib/code/CodeTokenizer.d.ts +0 -8
  246. package/lib/code/CodeTokenizer.d.ts.map +0 -1
  247. package/lib/code/CodeTokenizer.js +0 -50
  248. package/lib/code/DefaultHighlightStyle.d.ts +0 -3
  249. package/lib/code/DefaultHighlightStyle.d.ts.map +0 -1
  250. package/lib/code/DefaultHighlightStyle.js +0 -98
  251. package/lib/code/LezerHighlighter.d.ts +0 -22
  252. package/lib/code/LezerHighlighter.d.ts.map +0 -1
  253. package/lib/code/LezerHighlighter.js +0 -89
  254. package/lib/code/diff.d.ts +0 -31
  255. package/lib/code/diff.d.ts.map +0 -1
  256. package/lib/code/diff.js +0 -236
  257. package/lib/code/extractRange.d.ts +0 -17
  258. package/lib/code/extractRange.d.ts.map +0 -1
  259. package/lib/code/extractRange.js +0 -102
  260. package/lib/code/index.d.ts +0 -14
  261. package/lib/code/index.d.ts.map +0 -1
  262. package/lib/code/index.js +0 -14
  263. package/lib/components/Audio.d.ts +0 -14
  264. package/lib/components/Audio.d.ts.map +0 -1
  265. package/lib/components/Audio.js +0 -148
  266. package/lib/components/Bezier.d.ts +0 -23
  267. package/lib/components/Bezier.d.ts.map +0 -1
  268. package/lib/components/Bezier.js +0 -81
  269. package/lib/components/Circle.d.ts +0 -193
  270. package/lib/components/Circle.d.ts.map +0 -1
  271. package/lib/components/Circle.js +0 -178
  272. package/lib/components/Code.d.ts +0 -231
  273. package/lib/components/Code.d.ts.map +0 -1
  274. package/lib/components/Code.js +0 -325
  275. package/lib/components/CodeBlock.d.ts +0 -133
  276. package/lib/components/CodeBlock.d.ts.map +0 -1
  277. package/lib/components/CodeBlock.js +0 -461
  278. package/lib/components/CubicBezier.d.ts +0 -70
  279. package/lib/components/CubicBezier.d.ts.map +0 -1
  280. package/lib/components/CubicBezier.js +0 -81
  281. package/lib/components/Curve.d.ts +0 -204
  282. package/lib/components/Curve.d.ts.map +0 -1
  283. package/lib/components/Curve.js +0 -284
  284. package/lib/components/Grid.d.ts +0 -76
  285. package/lib/components/Grid.d.ts.map +0 -1
  286. package/lib/components/Grid.js +0 -91
  287. package/lib/components/Icon.d.ts +0 -59
  288. package/lib/components/Icon.d.ts.map +0 -1
  289. package/lib/components/Icon.js +0 -58
  290. package/lib/components/Img.d.ts +0 -118
  291. package/lib/components/Img.d.ts.map +0 -1
  292. package/lib/components/Img.js +0 -245
  293. package/lib/components/Knot.d.ts +0 -90
  294. package/lib/components/Knot.d.ts.map +0 -1
  295. package/lib/components/Knot.js +0 -68
  296. package/lib/components/Latex.d.ts +0 -39
  297. package/lib/components/Latex.d.ts.map +0 -1
  298. package/lib/components/Latex.js +0 -101
  299. package/lib/components/Layout.d.ts +0 -419
  300. package/lib/components/Layout.d.ts.map +0 -1
  301. package/lib/components/Layout.js +0 -706
  302. package/lib/components/Line.d.ts +0 -160
  303. package/lib/components/Line.d.ts.map +0 -1
  304. package/lib/components/Line.js +0 -346
  305. package/lib/components/Media.d.ts +0 -70
  306. package/lib/components/Media.d.ts.map +0 -1
  307. package/lib/components/Media.js +0 -493
  308. package/lib/components/Node.d.ts +0 -836
  309. package/lib/components/Node.d.ts.map +0 -1
  310. package/lib/components/Node.js +0 -1317
  311. package/lib/components/Path.d.ts +0 -20
  312. package/lib/components/Path.d.ts.map +0 -1
  313. package/lib/components/Path.js +0 -97
  314. package/lib/components/Polygon.d.ts +0 -113
  315. package/lib/components/Polygon.d.ts.map +0 -1
  316. package/lib/components/Polygon.js +0 -123
  317. package/lib/components/QuadBezier.d.ts +0 -62
  318. package/lib/components/QuadBezier.d.ts.map +0 -1
  319. package/lib/components/QuadBezier.js +0 -76
  320. package/lib/components/Ray.d.ts +0 -62
  321. package/lib/components/Ray.d.ts.map +0 -1
  322. package/lib/components/Ray.js +0 -96
  323. package/lib/components/Rect.d.ts +0 -114
  324. package/lib/components/Rect.d.ts.map +0 -1
  325. package/lib/components/Rect.js +0 -76
  326. package/lib/components/Rive.d.ts +0 -22
  327. package/lib/components/Rive.d.ts.map +0 -1
  328. package/lib/components/Rive.js +0 -117
  329. package/lib/components/SVG.d.ts +0 -178
  330. package/lib/components/SVG.d.ts.map +0 -1
  331. package/lib/components/SVG.js +0 -577
  332. package/lib/components/Shape.d.ts +0 -40
  333. package/lib/components/Shape.d.ts.map +0 -1
  334. package/lib/components/Shape.js +0 -134
  335. package/lib/components/Spline.d.ts +0 -89
  336. package/lib/components/Spline.d.ts.map +0 -1
  337. package/lib/components/Spline.js +0 -256
  338. package/lib/components/Txt.d.ts +0 -53
  339. package/lib/components/Txt.d.ts.map +0 -1
  340. package/lib/components/Txt.js +0 -173
  341. package/lib/components/TxtLeaf.d.ts +0 -21
  342. package/lib/components/TxtLeaf.d.ts.map +0 -1
  343. package/lib/components/TxtLeaf.js +0 -181
  344. package/lib/components/Video.d.ts +0 -69
  345. package/lib/components/Video.d.ts.map +0 -1
  346. package/lib/components/Video.js +0 -342
  347. package/lib/components/View2D.d.ts +0 -28
  348. package/lib/components/View2D.d.ts.map +0 -1
  349. package/lib/components/View2D.js +0 -93
  350. package/lib/components/index.d.ts +0 -29
  351. package/lib/components/index.d.ts.map +0 -1
  352. package/lib/components/index.js +0 -29
  353. package/lib/components/types.d.ts +0 -17
  354. package/lib/components/types.d.ts.map +0 -1
  355. package/lib/components/types.js +0 -2
  356. package/lib/curves/ArcSegment.d.ts +0 -26
  357. package/lib/curves/ArcSegment.d.ts.map +0 -1
  358. package/lib/curves/ArcSegment.js +0 -97
  359. package/lib/curves/CircleSegment.d.ts +0 -18
  360. package/lib/curves/CircleSegment.d.ts.map +0 -1
  361. package/lib/curves/CircleSegment.js +0 -52
  362. package/lib/curves/CubicBezierSegment.d.ts +0 -18
  363. package/lib/curves/CubicBezierSegment.d.ts.map +0 -1
  364. package/lib/curves/CubicBezierSegment.js +0 -55
  365. package/lib/curves/CurveDrawingInfo.d.ts +0 -11
  366. package/lib/curves/CurveDrawingInfo.d.ts.map +0 -1
  367. package/lib/curves/CurveDrawingInfo.js +0 -2
  368. package/lib/curves/CurvePoint.d.ts +0 -15
  369. package/lib/curves/CurvePoint.d.ts.map +0 -1
  370. package/lib/curves/CurvePoint.js +0 -2
  371. package/lib/curves/CurveProfile.d.ts +0 -7
  372. package/lib/curves/CurveProfile.d.ts.map +0 -1
  373. package/lib/curves/CurveProfile.js +0 -2
  374. package/lib/curves/KnotInfo.d.ts +0 -12
  375. package/lib/curves/KnotInfo.d.ts.map +0 -1
  376. package/lib/curves/KnotInfo.js +0 -2
  377. package/lib/curves/LineSegment.d.ts +0 -16
  378. package/lib/curves/LineSegment.d.ts.map +0 -1
  379. package/lib/curves/LineSegment.js +0 -45
  380. package/lib/curves/Polynomial.d.ts +0 -118
  381. package/lib/curves/Polynomial.d.ts.map +0 -1
  382. package/lib/curves/Polynomial.js +0 -259
  383. package/lib/curves/Polynomial2D.d.ts +0 -22
  384. package/lib/curves/Polynomial2D.d.ts.map +0 -1
  385. package/lib/curves/Polynomial2D.js +0 -45
  386. package/lib/curves/PolynomialSegment.d.ts +0 -39
  387. package/lib/curves/PolynomialSegment.d.ts.map +0 -1
  388. package/lib/curves/PolynomialSegment.js +0 -86
  389. package/lib/curves/QuadBezierSegment.d.ts +0 -17
  390. package/lib/curves/QuadBezierSegment.d.ts.map +0 -1
  391. package/lib/curves/QuadBezierSegment.js +0 -49
  392. package/lib/curves/Segment.d.ts +0 -9
  393. package/lib/curves/Segment.d.ts.map +0 -1
  394. package/lib/curves/Segment.js +0 -3
  395. package/lib/curves/UniformPolynomialCurveSampler.d.ts +0 -43
  396. package/lib/curves/UniformPolynomialCurveSampler.d.ts.map +0 -1
  397. package/lib/curves/UniformPolynomialCurveSampler.js +0 -73
  398. package/lib/curves/createCurveProfileLerp.d.ts +0 -32
  399. package/lib/curves/createCurveProfileLerp.d.ts.map +0 -1
  400. package/lib/curves/createCurveProfileLerp.js +0 -351
  401. package/lib/curves/getBezierSplineProfile.d.ts +0 -12
  402. package/lib/curves/getBezierSplineProfile.d.ts.map +0 -1
  403. package/lib/curves/getBezierSplineProfile.js +0 -137
  404. package/lib/curves/getCircleProfile.d.ts +0 -4
  405. package/lib/curves/getCircleProfile.d.ts.map +0 -1
  406. package/lib/curves/getCircleProfile.js +0 -44
  407. package/lib/curves/getPathProfile.d.ts +0 -3
  408. package/lib/curves/getPathProfile.d.ts.map +0 -1
  409. package/lib/curves/getPathProfile.js +0 -128
  410. package/lib/curves/getPointAtDistance.d.ts +0 -4
  411. package/lib/curves/getPointAtDistance.d.ts.map +0 -1
  412. package/lib/curves/getPointAtDistance.js +0 -15
  413. package/lib/curves/getPolylineProfile.d.ts +0 -4
  414. package/lib/curves/getPolylineProfile.d.ts.map +0 -1
  415. package/lib/curves/getPolylineProfile.js +0 -58
  416. package/lib/curves/getRectProfile.d.ts +0 -4
  417. package/lib/curves/getRectProfile.d.ts.map +0 -1
  418. package/lib/curves/getRectProfile.js +0 -57
  419. package/lib/curves/index.d.ts +0 -17
  420. package/lib/curves/index.d.ts.map +0 -1
  421. package/lib/curves/index.js +0 -17
  422. package/lib/decorators/canvasStyleSignal.d.ts +0 -5
  423. package/lib/decorators/canvasStyleSignal.d.ts.map +0 -1
  424. package/lib/decorators/canvasStyleSignal.js +0 -12
  425. package/lib/decorators/colorSignal.d.ts +0 -2
  426. package/lib/decorators/colorSignal.d.ts.map +0 -1
  427. package/lib/decorators/colorSignal.js +0 -9
  428. package/lib/decorators/compound.d.ts +0 -26
  429. package/lib/decorators/compound.d.ts.map +0 -1
  430. package/lib/decorators/compound.js +0 -49
  431. package/lib/decorators/computed.d.ts +0 -9
  432. package/lib/decorators/computed.d.ts.map +0 -1
  433. package/lib/decorators/computed.js +0 -18
  434. package/lib/decorators/defaultStyle.d.ts +0 -2
  435. package/lib/decorators/defaultStyle.d.ts.map +0 -1
  436. package/lib/decorators/defaultStyle.js +0 -14
  437. package/lib/decorators/filtersSignal.d.ts +0 -13
  438. package/lib/decorators/filtersSignal.d.ts.map +0 -1
  439. package/lib/decorators/filtersSignal.js +0 -73
  440. package/lib/decorators/index.d.ts +0 -11
  441. package/lib/decorators/index.d.ts.map +0 -1
  442. package/lib/decorators/index.js +0 -11
  443. package/lib/decorators/initializers.d.ts +0 -4
  444. package/lib/decorators/initializers.d.ts.map +0 -1
  445. package/lib/decorators/initializers.js +0 -27
  446. package/lib/decorators/nodeName.d.ts +0 -9
  447. package/lib/decorators/nodeName.d.ts.map +0 -1
  448. package/lib/decorators/nodeName.js +0 -13
  449. package/lib/decorators/signal.d.ts +0 -183
  450. package/lib/decorators/signal.d.ts.map +0 -1
  451. package/lib/decorators/signal.js +0 -285
  452. package/lib/decorators/spacingSignal.d.ts +0 -2
  453. package/lib/decorators/spacingSignal.d.ts.map +0 -1
  454. package/lib/decorators/spacingSignal.js +0 -15
  455. package/lib/decorators/vector2Signal.d.ts +0 -9
  456. package/lib/decorators/vector2Signal.d.ts.map +0 -1
  457. package/lib/decorators/vector2Signal.js +0 -15
  458. package/lib/index.d.ts +0 -9
  459. package/lib/index.d.ts.map +0 -1
  460. package/lib/index.js +0 -9
  461. package/lib/jsx-dev-runtime.d.ts +0 -3
  462. package/lib/jsx-dev-runtime.d.ts.map +0 -1
  463. package/lib/jsx-dev-runtime.js +0 -3
  464. package/lib/jsx-runtime.d.ts +0 -12
  465. package/lib/jsx-runtime.d.ts.map +0 -1
  466. package/lib/jsx-runtime.js +0 -23
  467. package/lib/partials/Filter.d.ts +0 -82
  468. package/lib/partials/Filter.d.ts.map +0 -1
  469. package/lib/partials/Filter.js +0 -135
  470. package/lib/partials/Gradient.d.ts +0 -31
  471. package/lib/partials/Gradient.d.ts.map +0 -1
  472. package/lib/partials/Gradient.js +0 -63
  473. package/lib/partials/Pattern.d.ts +0 -13
  474. package/lib/partials/Pattern.d.ts.map +0 -1
  475. package/lib/partials/Pattern.js +0 -27
  476. package/lib/partials/ShaderConfig.d.ts +0 -81
  477. package/lib/partials/ShaderConfig.d.ts.map +0 -1
  478. package/lib/partials/ShaderConfig.js +0 -25
  479. package/lib/partials/index.d.ts +0 -5
  480. package/lib/partials/index.d.ts.map +0 -1
  481. package/lib/partials/index.js +0 -5
  482. package/lib/partials/types.d.ts +0 -35
  483. package/lib/partials/types.d.ts.map +0 -1
  484. package/lib/partials/types.js +0 -2
  485. package/lib/scenes/Scene2D.d.ts +0 -29
  486. package/lib/scenes/Scene2D.d.ts.map +0 -1
  487. package/lib/scenes/Scene2D.js +0 -180
  488. package/lib/scenes/index.d.ts +0 -4
  489. package/lib/scenes/index.d.ts.map +0 -1
  490. package/lib/scenes/index.js +0 -4
  491. package/lib/scenes/makeScene2D.d.ts +0 -5
  492. package/lib/scenes/makeScene2D.d.ts.map +0 -1
  493. package/lib/scenes/makeScene2D.js +0 -11
  494. package/lib/scenes/useScene2D.d.ts +0 -3
  495. package/lib/scenes/useScene2D.d.ts.map +0 -1
  496. package/lib/scenes/useScene2D.js +0 -5
  497. package/lib/tsconfig.build.tsbuildinfo +0 -1
  498. package/lib/utils/CanvasUtils.d.ts +0 -23
  499. package/lib/utils/CanvasUtils.d.ts.map +0 -1
  500. package/lib/utils/CanvasUtils.js +0 -138
  501. package/lib/utils/diff.d.ts +0 -31
  502. package/lib/utils/diff.d.ts.map +0 -1
  503. package/lib/utils/diff.js +0 -97
  504. package/lib/utils/index.d.ts +0 -3
  505. package/lib/utils/index.d.ts.map +0 -1
  506. package/lib/utils/index.js +0 -3
  507. package/lib/utils/is.d.ts +0 -8
  508. package/lib/utils/is.d.ts.map +0 -1
  509. package/lib/utils/is.js +0 -10
  510. package/lib/utils/makeSignalExtensions.d.ts +0 -4
  511. package/lib/utils/makeSignalExtensions.d.ts.map +0 -1
  512. package/lib/utils/makeSignalExtensions.js +0 -20
  513. package/lib/utils/video/ffmpeg-client.d.ts +0 -5
  514. package/lib/utils/video/ffmpeg-client.d.ts.map +0 -1
  515. package/lib/utils/video/ffmpeg-client.js +0 -32
  516. package/lib/utils/video/mp4-parser-manager.d.ts +0 -3
  517. package/lib/utils/video/mp4-parser-manager.d.ts.map +0 -1
  518. package/lib/utils/video/mp4-parser-manager.js +0 -55
  519. package/lib/utils/video/parser/index.d.ts +0 -2
  520. package/lib/utils/video/parser/index.d.ts.map +0 -1
  521. package/lib/utils/video/parser/index.js +0 -2
  522. package/lib/utils/video/parser/parser.d.ts +0 -21
  523. package/lib/utils/video/parser/parser.d.ts.map +0 -1
  524. package/lib/utils/video/parser/parser.js +0 -168
  525. package/lib/utils/video/parser/sampler.d.ts +0 -16
  526. package/lib/utils/video/parser/sampler.d.ts.map +0 -1
  527. package/lib/utils/video/parser/sampler.js +0 -56
  528. package/lib/utils/video/parser/segment.d.ts +0 -48
  529. package/lib/utils/video/parser/segment.d.ts.map +0 -1
  530. package/lib/utils/video/parser/segment.js +0 -239
  531. package/lib/utils/video/parser/sink.d.ts +0 -9
  532. package/lib/utils/video/parser/sink.d.ts.map +0 -1
  533. package/lib/utils/video/parser/sink.js +0 -22
  534. package/lib/utils/video/parser/utils.d.ts +0 -10
  535. package/lib/utils/video/parser/utils.d.ts.map +0 -1
  536. package/lib/utils/video/parser/utils.js +0 -22
@@ -1,306 +0,0 @@
1
- import { clampRemap, Color, map, unwrap, Vector2 } from '@twick/core';
2
- import { parseCodeFragment } from './CodeFragment';
3
- import { isCodeScope } from './CodeScope';
4
- import { isPointInCodeSelection } from './CodeSelection';
5
- /**
6
- * A stateful class for recursively traversing a code scope.
7
- *
8
- * @internal
9
- */
10
- export class CodeCursor {
11
- constructor(node) {
12
- this.node = node;
13
- this.cursor = new Vector2();
14
- this.beforeCursor = new Vector2();
15
- this.afterCursor = new Vector2();
16
- this.beforeIndex = 0;
17
- this.afterIndex = 0;
18
- this.context = {};
19
- this.monoWidth = 0;
20
- this.maxWidth = 0;
21
- this.lineHeight = 0;
22
- this.fallbackFill = new Color('white');
23
- this.caches = null;
24
- this.highlighter = null;
25
- this.selection = [];
26
- this.selectionProgress = null;
27
- this.globalProgress = [];
28
- this.fragmentDrawingInfo = [];
29
- this.fontHeight = 0;
30
- this.verticalOffset = 0;
31
- }
32
- /**
33
- * Prepare the cursor for the next traversal.
34
- *
35
- * @param context - The context used to measure and draw the code.
36
- */
37
- setupMeasure(context) {
38
- const metrics = context.measureText('X');
39
- this.monoWidth = metrics.width;
40
- this.fontHeight =
41
- metrics.fontBoundingBoxDescent + metrics.fontBoundingBoxAscent;
42
- this.verticalOffset = metrics.fontBoundingBoxAscent;
43
- this.context = context;
44
- this.lineHeight = parseFloat(this.node.styles.lineHeight);
45
- this.cursor = new Vector2();
46
- this.beforeCursor = new Vector2();
47
- this.afterCursor = new Vector2();
48
- this.beforeIndex = 0;
49
- this.afterIndex = 0;
50
- this.maxWidth = 0;
51
- }
52
- setupDraw(context) {
53
- this.setupMeasure(context);
54
- const fill = this.node.fill();
55
- this.fallbackFill =
56
- fill instanceof Color ? fill : new Color('white');
57
- this.caches = this.node.highlighterCache();
58
- this.highlighter = this.node.highlighter();
59
- this.selection = this.node.selection();
60
- this.selectionProgress = this.node.selectionProgress();
61
- this.fragmentDrawingInfo = [];
62
- this.globalProgress = [];
63
- }
64
- /**
65
- * Measure the desired size of the code scope.
66
- *
67
- * @remarks
68
- * The result can be retrieved with {@link getSize}.
69
- *
70
- * @param scope - The code scope to measure.
71
- */
72
- measureSize(scope) {
73
- const progress = unwrap(scope.progress);
74
- for (const wrapped of scope.fragments) {
75
- const possibleFragment = unwrap(wrapped);
76
- if (isCodeScope(possibleFragment)) {
77
- this.measureSize(possibleFragment);
78
- continue;
79
- }
80
- if (Array.isArray(possibleFragment)) {
81
- this.measureSize({
82
- progress: scope.progress,
83
- fragments: possibleFragment,
84
- });
85
- continue;
86
- }
87
- const fragment = parseCodeFragment(possibleFragment, this.context, this.monoWidth);
88
- const beforeMaxWidth = this.calculateMaxWidth(fragment.before);
89
- const afterMaxWidth = this.calculateMaxWidth(fragment.after);
90
- const maxWidth = map(beforeMaxWidth, afterMaxWidth, progress);
91
- if (maxWidth > this.maxWidth) {
92
- this.maxWidth = maxWidth;
93
- }
94
- const beforeEnd = this.calculateWidth(fragment.before);
95
- const afterEnd = this.calculateWidth(fragment.after);
96
- this.cursor.x = map(beforeEnd, afterEnd, progress);
97
- if (this.cursor.y === 0) {
98
- this.cursor.y = 1;
99
- }
100
- this.cursor.y += map(fragment.before.newRows, fragment.after.newRows, progress);
101
- }
102
- }
103
- /**
104
- * Get the size measured by the cursor.
105
- */
106
- getSize() {
107
- return {
108
- x: this.maxWidth * this.monoWidth,
109
- y: this.cursor.y * this.lineHeight + this.verticalOffset,
110
- };
111
- }
112
- /**
113
- * Get the drawing information created by the cursor.
114
- */
115
- getDrawingInfo() {
116
- return {
117
- fragments: this.fragmentDrawingInfo,
118
- verticalOffset: this.verticalOffset,
119
- fontHeight: this.fontHeight,
120
- };
121
- }
122
- /**
123
- * Draw the given code scope.
124
- *
125
- * @param scope - The code scope to draw.
126
- */
127
- drawScope(scope) {
128
- const progress = unwrap(scope.progress);
129
- for (const wrappedFragment of scope.fragments) {
130
- const possibleFragment = unwrap(wrappedFragment);
131
- if (isCodeScope(possibleFragment)) {
132
- this.drawScope(possibleFragment);
133
- continue;
134
- }
135
- if (Array.isArray(possibleFragment)) {
136
- this.drawScope({
137
- progress: scope.progress,
138
- fragments: possibleFragment,
139
- });
140
- continue;
141
- }
142
- const fragment = parseCodeFragment(possibleFragment, this.context, this.monoWidth);
143
- const timingOffset = 0.8;
144
- let alpha = 1;
145
- let offsetY = 0;
146
- if (fragment.before.content !== fragment.after.content) {
147
- const mirrored = Math.abs(progress - 0.5) * 2;
148
- alpha = clampRemap(1, 1 - timingOffset, 1, 0, mirrored);
149
- const scale = progress < 0.5 ? 4 : -4;
150
- offsetY = map(Math.abs(fragment.after.newRows - fragment.before.newRows) / scale, 0, mirrored);
151
- }
152
- this.drawToken(fragment, scope, this.cursor.addY(offsetY), alpha);
153
- this.beforeCursor.x = this.calculateWidth(fragment.before, this.beforeCursor.x);
154
- this.afterCursor.x = this.calculateWidth(fragment.after, this.afterCursor.x);
155
- this.beforeCursor.y += fragment.before.newRows;
156
- this.afterCursor.y += fragment.after.newRows;
157
- this.beforeIndex += fragment.before.content.length;
158
- this.afterIndex += fragment.after.content.length;
159
- this.cursor.y += map(fragment.before.newRows, fragment.after.newRows, progress);
160
- const beforeEnd = this.calculateWidth(fragment.before);
161
- const afterEnd = this.calculateWidth(fragment.after);
162
- this.cursor.x = map(beforeEnd, afterEnd, progress);
163
- }
164
- }
165
- drawToken(fragment, scope, offset, alpha) {
166
- const progress = unwrap(scope.progress);
167
- const currentProgress = this.currentProgress();
168
- if (progress > 0) {
169
- this.globalProgress.push(progress);
170
- }
171
- const code = progress < 0.5 ? fragment.before : fragment.after;
172
- let hasOffset = true;
173
- let width = 0;
174
- let stringLength = 0;
175
- let y = 0;
176
- for (let i = 0; i < code.content.length; i++) {
177
- let color = this.fallbackFill.serialize();
178
- let char = code.content.charAt(i);
179
- const selection = {
180
- before: null,
181
- after: null,
182
- };
183
- if (char === '\n') {
184
- y++;
185
- hasOffset = false;
186
- width = 0;
187
- stringLength = 0;
188
- selection.before = null;
189
- selection.after = null;
190
- continue;
191
- }
192
- const beforeHighlight = this.caches &&
193
- this.highlighter?.highlight(this.beforeIndex + i, this.caches.before);
194
- const afterHighlight = this.caches &&
195
- this.highlighter?.highlight(this.afterIndex + i, this.caches.after);
196
- const highlight = progress < 0.5 ? beforeHighlight : afterHighlight;
197
- if (highlight) {
198
- // Handle edge cases where the highlight style changes despite the
199
- // content being the same. The code doesn't fade in and out so the color
200
- // has to be interpolated to avoid jarring changes.
201
- if (fragment.before.content === fragment.after.content &&
202
- beforeHighlight?.color !== afterHighlight?.color) {
203
- highlight.color = Color.lerp(beforeHighlight?.color ?? this.fallbackFill, afterHighlight?.color ?? this.fallbackFill, progress).serialize();
204
- }
205
- if (highlight.color) {
206
- color = highlight.color;
207
- }
208
- let skipAhead = 0;
209
- do {
210
- if (this.processSelection(selection, skipAhead, hasOffset, stringLength, y)) {
211
- break;
212
- }
213
- skipAhead++;
214
- } while (skipAhead < highlight.skipAhead);
215
- if (skipAhead > 1) {
216
- char = code.content.slice(i, i + skipAhead);
217
- }
218
- i += char.length - 1;
219
- }
220
- else {
221
- this.processSelection(selection, 0, hasOffset, stringLength, y);
222
- let skipAhead = 1;
223
- while (i < code.content.length - 1 &&
224
- code.content.charAt(i + 1) !== '\n') {
225
- if (this.processSelection(selection, skipAhead, hasOffset, stringLength, y)) {
226
- break;
227
- }
228
- skipAhead++;
229
- char += code.content.charAt(++i);
230
- }
231
- }
232
- let time;
233
- const selectionAfter = selection.after ?? 0;
234
- const selectionBefore = selection.before ?? 0;
235
- if (fragment.before.content === '') {
236
- time = selectionAfter;
237
- }
238
- else if (fragment.after.content === '') {
239
- time = selectionBefore;
240
- }
241
- else {
242
- time = map(selectionBefore, selectionAfter, this.selectionProgress ?? currentProgress);
243
- }
244
- const measure = this.context.measureText(char);
245
- this.fragmentDrawingInfo.push({
246
- text: char,
247
- position: new Vector2((hasOffset ? offset.x + width : width) * this.monoWidth, (offset.y + y) * this.lineHeight),
248
- cursor: new Vector2(hasOffset ? this.beforeCursor.x + stringLength : stringLength, this.beforeCursor.y + y),
249
- alpha,
250
- characterSize: new Vector2(measure.width / char.length, this.fontHeight),
251
- fill: color,
252
- time,
253
- });
254
- stringLength += char.length;
255
- width += Math.round(measure.width / this.monoWidth);
256
- }
257
- }
258
- calculateWidth(metrics, x = this.cursor.x) {
259
- return metrics.newRows === 0 ? x + metrics.lastWidth : metrics.lastWidth;
260
- }
261
- calculateMaxWidth(metrics, x = this.cursor.x) {
262
- return Math.max(this.maxWidth, metrics.maxWidth, x + metrics.firstWidth);
263
- }
264
- currentProgress() {
265
- if (this.globalProgress.length === 0) {
266
- return 0;
267
- }
268
- let sum = 0;
269
- for (const progress of this.globalProgress) {
270
- sum += progress;
271
- }
272
- return sum / this.globalProgress.length;
273
- }
274
- processSelection(selection, skipAhead, hasOffset, stringLength, y) {
275
- let shouldBreak = false;
276
- let currentSelected = this.isSelected((hasOffset ? this.beforeCursor.x + stringLength : stringLength) +
277
- skipAhead, this.beforeCursor.y + y);
278
- if (selection.before !== null && selection.before !== currentSelected) {
279
- shouldBreak = true;
280
- }
281
- else {
282
- selection.before = currentSelected;
283
- }
284
- currentSelected = this.isSelected((hasOffset ? this.afterCursor.x + stringLength : stringLength) +
285
- skipAhead, this.afterCursor.y + y, true);
286
- if (selection.after !== null && selection.after !== currentSelected) {
287
- shouldBreak = true;
288
- }
289
- else {
290
- selection.after = currentSelected;
291
- }
292
- return shouldBreak;
293
- }
294
- isSelected(x, y, isAfter) {
295
- const point = [y, x];
296
- const maxSelection = isPointInCodeSelection(point, this.selection) ? 1 : 0;
297
- if (this.node.oldSelection === null || this.selectionProgress === null) {
298
- return maxSelection;
299
- }
300
- if (isAfter) {
301
- return maxSelection;
302
- }
303
- return isPointInCodeSelection(point, this.node.oldSelection) ? 1 : 0;
304
- }
305
- }
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUN1cnNvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29kZS9Db2RlQ3Vyc29yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBR3BFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBS2pELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFDeEMsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFZdkQ7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBb0JyQixZQUFvQyxJQUFVO1FBQVYsU0FBSSxHQUFKLElBQUksQ0FBTTtRQW5CdkMsV0FBTSxHQUFHLElBQUksT0FBTyxFQUFFLENBQUM7UUFDdkIsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsWUFBTyxHQUFHLEVBQThCLENBQUM7UUFDekMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLGFBQVEsR0FBRyxDQUFDLENBQUM7UUFDYixlQUFVLEdBQUcsQ0FBQyxDQUFDO1FBQ2YsaUJBQVksR0FBRyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxXQUFNLEdBQTZDLElBQUksQ0FBQztRQUN4RCxnQkFBVyxHQUEyQixJQUFJLENBQUM7UUFDM0MsY0FBUyxHQUFnQixFQUFFLENBQUM7UUFDNUIsc0JBQWlCLEdBQWtCLElBQUksQ0FBQztRQUN4QyxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUM5Qix3QkFBbUIsR0FBOEIsRUFBRSxDQUFDO1FBQ3BELGVBQVUs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
@@ -1,28 +0,0 @@
1
- import type { CodeScope, CodeTag } from './CodeScope';
2
- import type { CodeTokenizer } from './CodeTokenizer';
3
- /**
4
- * A function that compares two code snippets and returns a list of
5
- * {@link CodeTag}s describing a transition between them.
6
- */
7
- export type CodeDiffer = (
8
- /**
9
- * The original code scope.
10
- */
11
- from: CodeScope,
12
- /**
13
- * The new code scope.
14
- */
15
- to: CodeScope,
16
- /**
17
- * The inherited tokenizer to use.
18
- */
19
- tokenize: CodeTokenizer) => CodeTag[];
20
- /**
21
- * Default diffing function utilizing {@link code.patienceDiff}.
22
- *
23
- * @param from - The original code scope.
24
- * @param to - The new code scope.
25
- * @param tokenize - The inherited tokenizer to use.
26
- */
27
- export declare function defaultDiffer(from: CodeScope, to: CodeScope, tokenize: CodeTokenizer): CodeTag[];
28
- //# sourceMappingURL=CodeDiffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeDiffer.d.ts","sourceRoot":"","sources":["../../src/lib/code/CodeDiffer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,SAAS,EAAE,OAAO,EAAC,MAAM,aAAa,CAAC;AAEpD,OAAO,KAAK,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAGnD;;;GAGG;AACH,MAAM,MAAM,UAAU,GAAG;AACvB;;GAEG;AACH,IAAI,EAAE,SAAS;AACf;;GAEG;AACH,EAAE,EAAE,SAAS;AACb;;GAEG;AACH,QAAQ,EAAE,aAAa,KACpB,OAAO,EAAE,CAAC;AAEf;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,SAAS,EACf,EAAE,EAAE,SAAS,EACb,QAAQ,EAAE,aAAa,aA2CxB"}
@@ -1,51 +0,0 @@
1
- import { resolveScope } from './CodeScope';
2
- import { patienceDiff } from './diff';
3
- /**
4
- * Default diffing function utilizing {@link code.patienceDiff}.
5
- *
6
- * @param from - The original code scope.
7
- * @param to - The new code scope.
8
- * @param tokenize - The inherited tokenizer to use.
9
- */
10
- export function defaultDiffer(from, to, tokenize) {
11
- const fromString = resolveScope(from, false);
12
- const toString = resolveScope(to, true);
13
- const diff = patienceDiff(tokenize(fromString), tokenize(toString));
14
- const fragments = [];
15
- let before = '';
16
- let after = '';
17
- let lastAdded = false;
18
- const flush = () => {
19
- if (before !== '' || after !== '') {
20
- fragments.push({
21
- before,
22
- after,
23
- });
24
- before = '';
25
- after = '';
26
- }
27
- };
28
- for (const line of diff.lines) {
29
- if (line.aIndex === -1) {
30
- if (after !== '' && !lastAdded) {
31
- flush();
32
- }
33
- lastAdded = true;
34
- after += line.line;
35
- }
36
- else if (line.bIndex === -1) {
37
- if (before !== '' && lastAdded) {
38
- flush();
39
- }
40
- lastAdded = false;
41
- before += line.line;
42
- }
43
- else {
44
- flush();
45
- fragments.push(line.line);
46
- }
47
- }
48
- flush();
49
- return fragments;
50
- }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZURpZmZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29kZS9Db2RlRGlmZmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFekMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLFFBQVEsQ0FBQztBQXFCcEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsSUFBZSxFQUNmLEVBQWEsRUFDYixRQUF1QjtJQUV2QixNQUFNLFVBQVUsR0FBRyxZQUFZLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzdDLE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFFeEMsTUFBTSxJQUFJLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsRUFBRSxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUVwRSxNQUFNLFNBQVMsR0FBYyxFQUFFLENBQUM7SUFDaEMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLElBQUksS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNmLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztJQUN0QixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDakIsSUFBSSxNQUFNLEtBQUssRUFBRSxJQUFJLEtBQUssS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxTQUFTLENBQUMsSUFBSSxDQUFDO2dCQUNiLE1BQU07Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQztZQUNILE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDWixLQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUMsQ0FBQztJQUVGLEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzlCLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3ZCLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUMvQixLQUFLLEVBQUUsQ0FBQztZQUNWLENBQUM7WUFDRCxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ3JCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM5QixJQUFJLE1BQU0sS0FBSyxFQUFFLElBQUksU0FBUyxFQUFFLENBQUM7Z0JBQy9CLEtBQUssRUFBRSxDQUFDO1lBQ1YsQ0FBQztZQUNELFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDbEIsTUFBTSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDdEIsQ0FBQzthQUFNLENBQUM7WUFDTixLQUFLLEVBQUUsQ0FBQztZQUNSLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBQ0QsS0FBSyxFQUFFLENBQUM7SUFFUixPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIn0=
@@ -1,42 +0,0 @@
1
- import type { CodeMetrics } from './CodeMetrics';
2
- export interface CodeFragment {
3
- before: CodeMetrics;
4
- after: CodeMetrics;
5
- }
6
- export interface RawCodeFragment {
7
- before: string;
8
- after: string;
9
- }
10
- export type PossibleCodeFragment = CodeFragment | CodeMetrics | RawCodeFragment | string;
11
- export declare function metricsToFragment(value: CodeMetrics): CodeFragment;
12
- export declare function parseCodeFragment(value: PossibleCodeFragment, context: CanvasRenderingContext2D, monoWidth: number): CodeFragment;
13
- /**
14
- * Create a code fragment that represents an insertion of code.
15
- *
16
- * @remarks
17
- * Can be used in conjunction with {@link code.CodeSignalHelpers.edit}.
18
- *
19
- * @param code - The code to insert.
20
- */
21
- export declare function insert(code: string): RawCodeFragment;
22
- /**
23
- * Create a code fragment that represents a change from one piece of code to
24
- * another.
25
- *
26
- * @remarks
27
- * Can be used in conjunction with {@link code.CodeSignalHelpers.edit}.
28
- *
29
- * @param before - The code to change from.
30
- * @param after - The code to change to.
31
- */
32
- export declare function replace(before: string, after: string): RawCodeFragment;
33
- /**
34
- * Create a code fragment that represents a removal of code.
35
- *
36
- * @remarks
37
- * Can be used in conjunction with {@link code.CodeSignalHelpers.edit}.
38
- *
39
- * @param code - The code to remove.
40
- */
41
- export declare function remove(code: string): RawCodeFragment;
42
- //# sourceMappingURL=CodeFragment.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeFragment.d.ts","sourceRoot":"","sources":["../../src/lib/code/CodeFragment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAG/C,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,WAAW,CAAC;CACpB;AACD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,MAAM,oBAAoB,GAC5B,YAAY,GACZ,WAAW,GACX,eAAe,GACf,MAAM,CAAC;AAEX,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY,CAKlE;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,EAC3B,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAE,MAAM,GAChB,YAAY,CAoBd;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAKpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,eAAe,CAKtE;AAED;;;;;;;GAOG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAKpD"}
@@ -1,72 +0,0 @@
1
- import { isCodeMetrics, measureString } from './CodeMetrics';
2
- export function metricsToFragment(value) {
3
- return {
4
- before: value,
5
- after: value,
6
- };
7
- }
8
- export function parseCodeFragment(value, context, monoWidth) {
9
- let fragment;
10
- if (typeof value === 'string') {
11
- fragment = metricsToFragment(measureString(context, monoWidth, value));
12
- }
13
- else if (isCodeMetrics(value)) {
14
- fragment = metricsToFragment(value);
15
- }
16
- else {
17
- fragment = {
18
- before: typeof value.before === 'string'
19
- ? measureString(context, monoWidth, value.before)
20
- : value.before,
21
- after: typeof value.after === 'string'
22
- ? measureString(context, monoWidth, value.after)
23
- : value.after,
24
- };
25
- }
26
- return fragment;
27
- }
28
- /**
29
- * Create a code fragment that represents an insertion of code.
30
- *
31
- * @remarks
32
- * Can be used in conjunction with {@link code.CodeSignalHelpers.edit}.
33
- *
34
- * @param code - The code to insert.
35
- */
36
- export function insert(code) {
37
- return {
38
- before: '',
39
- after: code,
40
- };
41
- }
42
- /**
43
- * Create a code fragment that represents a change from one piece of code to
44
- * another.
45
- *
46
- * @remarks
47
- * Can be used in conjunction with {@link code.CodeSignalHelpers.edit}.
48
- *
49
- * @param before - The code to change from.
50
- * @param after - The code to change to.
51
- */
52
- export function replace(before, after) {
53
- return {
54
- before,
55
- after,
56
- };
57
- }
58
- /**
59
- * Create a code fragment that represents a removal of code.
60
- *
61
- * @remarks
62
- * Can be used in conjunction with {@link code.CodeSignalHelpers.edit}.
63
- *
64
- * @param code - The code to remove.
65
- */
66
- export function remove(code) {
67
- return {
68
- before: code,
69
- after: '',
70
- };
71
- }
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUZyYWdtZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb2RlL0NvZGVGcmFnbWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQWlCM0QsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQWtCO0lBQ2xELE9BQU87UUFDTCxNQUFNLEVBQUUsS0FBSztRQUNiLEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQy9CLEtBQTJCLEVBQzNCLE9BQWlDLEVBQ2pDLFNBQWlCO0lBRWpCLElBQUksUUFBc0IsQ0FBQztJQUMzQixJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7U0FBTSxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2hDLFFBQVEsR0FBRyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO1NBQU0sQ0FBQztRQUNOLFFBQVEsR0FBRztZQUNULE1BQU0sRUFDSixPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssUUFBUTtnQkFDOUIsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2pELENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTTtZQUNsQixLQUFLLEVBQ0gsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVE7Z0JBQzdCLENBQUMsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDO2dCQUNoRCxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUs7U0FDbEIsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxNQUFNLENBQUMsSUFBWTtJQUNqQyxPQUFPO1FBQ0wsTUFBTSxFQUFFLEVBQUU7UUFDVixLQUFLLEVBQUUsSUFBSTtLQUNaLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FBQyxNQUFjLEVBQUUsS0FBYTtJQUNuRCxPQUFPO1FBQ0wsTUFBTTtRQUNOLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsTUFBTSxDQUFDLElBQVk7SUFDakMsT0FBTztRQUNMLE1BQU0sRUFBRSxJQUFJO1FBQ1osS0FBSyxFQUFFLEVBQUU7S0FDVixDQUFDO0FBQ0osQ0FBQyJ9
@@ -1,71 +0,0 @@
1
- /**
2
- * Describes the result of a highlight operation.
3
- */
4
- export interface HighlightResult {
5
- /**
6
- * The color of the code at the given index.
7
- */
8
- color: string | null;
9
- /**
10
- * The number of characters to skip ahead.
11
- *
12
- * @remarks
13
- * This should be used to skip to the end of the currently highlighted token.
14
- * The returned style will be used for the skipped characters, and they will
15
- * be drawn as one continuous string keeping emojis and ligatures intact.
16
- *
17
- * The returned value is the number of characters to skip ahead, not the
18
- * index of the end of the token.
19
- */
20
- skipAhead: number;
21
- }
22
- /**
23
- * Describes custom highlighters used by the Code node.
24
- *
25
- * @typeParam T - The type of the cache used by the highlighter.
26
- */
27
- export interface CodeHighlighter<T = unknown> {
28
- /**
29
- * Initializes the highlighter.
30
- *
31
- * @remarks
32
- * This method is called when collecting async resources for the node.
33
- * It can be called multiple times so caching the initialization is
34
- * recommended.
35
- *
36
- * If initialization is asynchronous, a promise should be registered using
37
- * {@link DependencyContext.collectPromise} and the value of `false` should
38
- * be returned. The hook will be called again when the promise resolves.
39
- * This process can be repeated until the value of `true` is returned which
40
- * will mark the highlighter as ready.
41
- */
42
- initialize(): boolean;
43
- /**
44
- * Prepares the code for highlighting.
45
- *
46
- * @remarks
47
- * This method is called each time the code changes. It can be used to do
48
- * any preprocessing of the code before highlighting. The result of this
49
- * method is cached and passed to {@link highlight} when the code is
50
- * highlighted.
51
- *
52
- * @param code - The code to prepare.
53
- * @param dialect - The language in which the code is written.
54
- */
55
- prepare(code: string): T;
56
- /**
57
- * Highlights the code at the given index.
58
- *
59
- * @param index - The index of the code to highlight.
60
- * @param cache - The result of {@link prepare}.
61
- */
62
- highlight(index: number, cache: T): HighlightResult;
63
- /**
64
- * Tokenize the code.
65
- *
66
- * @param code - The code to tokenize.
67
- * @param dialect - The language in which the code is written.
68
- */
69
- tokenize(code: string): string[];
70
- }
71
- //# sourceMappingURL=CodeHighlighter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeHighlighter.d.ts","sourceRoot":"","sources":["../../src/lib/code/CodeHighlighter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAErB;;;;;;;;;;OAUG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO;IAC1C;;;;;;;;;;;;;OAaG;IACH,UAAU,IAAI,OAAO,CAAC;IAEtB;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC,CAAC;IAEzB;;;;;OAKG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,GAAG,eAAe,CAAC;IAEpD;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;CAClC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ29kZUhpZ2hsaWdodGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb2RlL0NvZGVIaWdobGlnaHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIn0=
@@ -1,11 +0,0 @@
1
- export interface CodeMetrics {
2
- content: string;
3
- newRows: number;
4
- endColumn: number;
5
- firstWidth: number;
6
- maxWidth: number;
7
- lastWidth: number;
8
- }
9
- export declare function measureString(context: CanvasRenderingContext2D, monoWidth: number, value: string): CodeMetrics;
10
- export declare function isCodeMetrics(value: any): value is CodeMetrics;
11
- //# sourceMappingURL=CodeMetrics.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CodeMetrics.d.ts","sourceRoot":"","sources":["../../src/lib/code/CodeMetrics.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,wBAAwB,EACjC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GACZ,WAAW,CA6Bb;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,WAAW,CAE9D"}