@twick/2d 0.14.21 → 0.15.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 (493) hide show
  1. package/dist/index.cjs +10806 -0
  2. package/dist/index.cjs.map +1 -0
  3. package/dist/index.d.cts +4657 -0
  4. package/dist/index.d.ts +4657 -0
  5. package/dist/index.js +10768 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/jsx-runtime.d.mts +1 -0
  8. package/dist/jsx-runtime.d.ts +1 -0
  9. package/editor/index.css +24 -22
  10. package/editor/index.css.map +1 -0
  11. package/editor/index.d.ts +5 -0
  12. package/editor/index.js +472 -258
  13. package/editor/index.js.map +1 -1
  14. package/package.json +54 -27
  15. package/tsconfig.project.json +3 -2
  16. package/lib/code/CodeCursor.d.ts +0 -83
  17. package/lib/code/CodeCursor.d.ts.map +0 -1
  18. package/lib/code/CodeCursor.js +0 -306
  19. package/lib/code/CodeDiffer.d.ts +0 -28
  20. package/lib/code/CodeDiffer.d.ts.map +0 -1
  21. package/lib/code/CodeDiffer.js +0 -51
  22. package/lib/code/CodeFragment.d.ts +0 -42
  23. package/lib/code/CodeFragment.d.ts.map +0 -1
  24. package/lib/code/CodeFragment.js +0 -72
  25. package/lib/code/CodeHighlighter.d.ts +0 -71
  26. package/lib/code/CodeHighlighter.d.ts.map +0 -1
  27. package/lib/code/CodeHighlighter.js +0 -2
  28. package/lib/code/CodeMetrics.d.ts +0 -11
  29. package/lib/code/CodeMetrics.d.ts.map +0 -1
  30. package/lib/code/CodeMetrics.js +0 -29
  31. package/lib/code/CodeRange.d.ts +0 -41
  32. package/lib/code/CodeRange.d.ts.map +0 -1
  33. package/lib/code/CodeRange.js +0 -179
  34. package/lib/code/CodeScope.d.ts +0 -16
  35. package/lib/code/CodeScope.d.ts.map +0 -1
  36. package/lib/code/CodeScope.js +0 -72
  37. package/lib/code/CodeSelection.d.ts +0 -6
  38. package/lib/code/CodeSelection.d.ts.map +0 -1
  39. package/lib/code/CodeSelection.js +0 -13
  40. package/lib/code/CodeSignal.d.ts +0 -60
  41. package/lib/code/CodeSignal.d.ts.map +0 -1
  42. package/lib/code/CodeSignal.js +0 -194
  43. package/lib/code/CodeTokenizer.d.ts +0 -8
  44. package/lib/code/CodeTokenizer.d.ts.map +0 -1
  45. package/lib/code/CodeTokenizer.js +0 -50
  46. package/lib/code/DefaultHighlightStyle.d.ts +0 -3
  47. package/lib/code/DefaultHighlightStyle.d.ts.map +0 -1
  48. package/lib/code/DefaultHighlightStyle.js +0 -98
  49. package/lib/code/LezerHighlighter.d.ts +0 -22
  50. package/lib/code/LezerHighlighter.d.ts.map +0 -1
  51. package/lib/code/LezerHighlighter.js +0 -89
  52. package/lib/code/diff.d.ts +0 -31
  53. package/lib/code/diff.d.ts.map +0 -1
  54. package/lib/code/diff.js +0 -236
  55. package/lib/code/extractRange.d.ts +0 -17
  56. package/lib/code/extractRange.d.ts.map +0 -1
  57. package/lib/code/extractRange.js +0 -102
  58. package/lib/code/index.d.ts +0 -14
  59. package/lib/code/index.d.ts.map +0 -1
  60. package/lib/code/index.js +0 -14
  61. package/lib/components/Audio.d.ts +0 -14
  62. package/lib/components/Audio.d.ts.map +0 -1
  63. package/lib/components/Audio.js +0 -148
  64. package/lib/components/Bezier.d.ts +0 -23
  65. package/lib/components/Bezier.d.ts.map +0 -1
  66. package/lib/components/Bezier.js +0 -81
  67. package/lib/components/Circle.d.ts +0 -193
  68. package/lib/components/Circle.d.ts.map +0 -1
  69. package/lib/components/Circle.js +0 -178
  70. package/lib/components/Code.d.ts +0 -231
  71. package/lib/components/Code.d.ts.map +0 -1
  72. package/lib/components/Code.js +0 -325
  73. package/lib/components/CodeBlock.d.ts +0 -133
  74. package/lib/components/CodeBlock.d.ts.map +0 -1
  75. package/lib/components/CodeBlock.js +0 -461
  76. package/lib/components/CubicBezier.d.ts +0 -70
  77. package/lib/components/CubicBezier.d.ts.map +0 -1
  78. package/lib/components/CubicBezier.js +0 -81
  79. package/lib/components/Curve.d.ts +0 -204
  80. package/lib/components/Curve.d.ts.map +0 -1
  81. package/lib/components/Curve.js +0 -284
  82. package/lib/components/Grid.d.ts +0 -76
  83. package/lib/components/Grid.d.ts.map +0 -1
  84. package/lib/components/Grid.js +0 -91
  85. package/lib/components/Icon.d.ts +0 -59
  86. package/lib/components/Icon.d.ts.map +0 -1
  87. package/lib/components/Icon.js +0 -58
  88. package/lib/components/Img.d.ts +0 -118
  89. package/lib/components/Img.d.ts.map +0 -1
  90. package/lib/components/Img.js +0 -245
  91. package/lib/components/Knot.d.ts +0 -90
  92. package/lib/components/Knot.d.ts.map +0 -1
  93. package/lib/components/Knot.js +0 -68
  94. package/lib/components/Latex.d.ts +0 -39
  95. package/lib/components/Latex.d.ts.map +0 -1
  96. package/lib/components/Latex.js +0 -101
  97. package/lib/components/Layout.d.ts +0 -419
  98. package/lib/components/Layout.d.ts.map +0 -1
  99. package/lib/components/Layout.js +0 -706
  100. package/lib/components/Line.d.ts +0 -160
  101. package/lib/components/Line.d.ts.map +0 -1
  102. package/lib/components/Line.js +0 -346
  103. package/lib/components/Media.d.ts +0 -70
  104. package/lib/components/Media.d.ts.map +0 -1
  105. package/lib/components/Media.js +0 -493
  106. package/lib/components/Node.d.ts +0 -836
  107. package/lib/components/Node.d.ts.map +0 -1
  108. package/lib/components/Node.js +0 -1317
  109. package/lib/components/Path.d.ts +0 -20
  110. package/lib/components/Path.d.ts.map +0 -1
  111. package/lib/components/Path.js +0 -97
  112. package/lib/components/Polygon.d.ts +0 -113
  113. package/lib/components/Polygon.d.ts.map +0 -1
  114. package/lib/components/Polygon.js +0 -123
  115. package/lib/components/QuadBezier.d.ts +0 -62
  116. package/lib/components/QuadBezier.d.ts.map +0 -1
  117. package/lib/components/QuadBezier.js +0 -76
  118. package/lib/components/Ray.d.ts +0 -62
  119. package/lib/components/Ray.d.ts.map +0 -1
  120. package/lib/components/Ray.js +0 -96
  121. package/lib/components/Rect.d.ts +0 -114
  122. package/lib/components/Rect.d.ts.map +0 -1
  123. package/lib/components/Rect.js +0 -76
  124. package/lib/components/Rive.d.ts +0 -22
  125. package/lib/components/Rive.d.ts.map +0 -1
  126. package/lib/components/Rive.js +0 -117
  127. package/lib/components/SVG.d.ts +0 -178
  128. package/lib/components/SVG.d.ts.map +0 -1
  129. package/lib/components/SVG.js +0 -577
  130. package/lib/components/Shape.d.ts +0 -40
  131. package/lib/components/Shape.d.ts.map +0 -1
  132. package/lib/components/Shape.js +0 -134
  133. package/lib/components/Spline.d.ts +0 -89
  134. package/lib/components/Spline.d.ts.map +0 -1
  135. package/lib/components/Spline.js +0 -256
  136. package/lib/components/Txt.d.ts +0 -53
  137. package/lib/components/Txt.d.ts.map +0 -1
  138. package/lib/components/Txt.js +0 -173
  139. package/lib/components/TxtLeaf.d.ts +0 -21
  140. package/lib/components/TxtLeaf.d.ts.map +0 -1
  141. package/lib/components/TxtLeaf.js +0 -181
  142. package/lib/components/Video.d.ts +0 -69
  143. package/lib/components/Video.d.ts.map +0 -1
  144. package/lib/components/Video.js +0 -342
  145. package/lib/components/View2D.d.ts +0 -28
  146. package/lib/components/View2D.d.ts.map +0 -1
  147. package/lib/components/View2D.js +0 -93
  148. package/lib/components/index.d.ts +0 -29
  149. package/lib/components/index.d.ts.map +0 -1
  150. package/lib/components/index.js +0 -29
  151. package/lib/components/types.d.ts +0 -17
  152. package/lib/components/types.d.ts.map +0 -1
  153. package/lib/components/types.js +0 -2
  154. package/lib/curves/ArcSegment.d.ts +0 -26
  155. package/lib/curves/ArcSegment.d.ts.map +0 -1
  156. package/lib/curves/ArcSegment.js +0 -97
  157. package/lib/curves/CircleSegment.d.ts +0 -18
  158. package/lib/curves/CircleSegment.d.ts.map +0 -1
  159. package/lib/curves/CircleSegment.js +0 -52
  160. package/lib/curves/CubicBezierSegment.d.ts +0 -18
  161. package/lib/curves/CubicBezierSegment.d.ts.map +0 -1
  162. package/lib/curves/CubicBezierSegment.js +0 -55
  163. package/lib/curves/CurveDrawingInfo.d.ts +0 -11
  164. package/lib/curves/CurveDrawingInfo.d.ts.map +0 -1
  165. package/lib/curves/CurveDrawingInfo.js +0 -2
  166. package/lib/curves/CurvePoint.d.ts +0 -15
  167. package/lib/curves/CurvePoint.d.ts.map +0 -1
  168. package/lib/curves/CurvePoint.js +0 -2
  169. package/lib/curves/CurveProfile.d.ts +0 -7
  170. package/lib/curves/CurveProfile.d.ts.map +0 -1
  171. package/lib/curves/CurveProfile.js +0 -2
  172. package/lib/curves/KnotInfo.d.ts +0 -12
  173. package/lib/curves/KnotInfo.d.ts.map +0 -1
  174. package/lib/curves/KnotInfo.js +0 -2
  175. package/lib/curves/LineSegment.d.ts +0 -16
  176. package/lib/curves/LineSegment.d.ts.map +0 -1
  177. package/lib/curves/LineSegment.js +0 -45
  178. package/lib/curves/Polynomial.d.ts +0 -118
  179. package/lib/curves/Polynomial.d.ts.map +0 -1
  180. package/lib/curves/Polynomial.js +0 -259
  181. package/lib/curves/Polynomial2D.d.ts +0 -22
  182. package/lib/curves/Polynomial2D.d.ts.map +0 -1
  183. package/lib/curves/Polynomial2D.js +0 -45
  184. package/lib/curves/PolynomialSegment.d.ts +0 -39
  185. package/lib/curves/PolynomialSegment.d.ts.map +0 -1
  186. package/lib/curves/PolynomialSegment.js +0 -86
  187. package/lib/curves/QuadBezierSegment.d.ts +0 -17
  188. package/lib/curves/QuadBezierSegment.d.ts.map +0 -1
  189. package/lib/curves/QuadBezierSegment.js +0 -49
  190. package/lib/curves/Segment.d.ts +0 -9
  191. package/lib/curves/Segment.d.ts.map +0 -1
  192. package/lib/curves/Segment.js +0 -3
  193. package/lib/curves/UniformPolynomialCurveSampler.d.ts +0 -43
  194. package/lib/curves/UniformPolynomialCurveSampler.d.ts.map +0 -1
  195. package/lib/curves/UniformPolynomialCurveSampler.js +0 -73
  196. package/lib/curves/createCurveProfileLerp.d.ts +0 -32
  197. package/lib/curves/createCurveProfileLerp.d.ts.map +0 -1
  198. package/lib/curves/createCurveProfileLerp.js +0 -351
  199. package/lib/curves/getBezierSplineProfile.d.ts +0 -12
  200. package/lib/curves/getBezierSplineProfile.d.ts.map +0 -1
  201. package/lib/curves/getBezierSplineProfile.js +0 -137
  202. package/lib/curves/getCircleProfile.d.ts +0 -4
  203. package/lib/curves/getCircleProfile.d.ts.map +0 -1
  204. package/lib/curves/getCircleProfile.js +0 -44
  205. package/lib/curves/getPathProfile.d.ts +0 -3
  206. package/lib/curves/getPathProfile.d.ts.map +0 -1
  207. package/lib/curves/getPathProfile.js +0 -128
  208. package/lib/curves/getPointAtDistance.d.ts +0 -4
  209. package/lib/curves/getPointAtDistance.d.ts.map +0 -1
  210. package/lib/curves/getPointAtDistance.js +0 -15
  211. package/lib/curves/getPolylineProfile.d.ts +0 -4
  212. package/lib/curves/getPolylineProfile.d.ts.map +0 -1
  213. package/lib/curves/getPolylineProfile.js +0 -58
  214. package/lib/curves/getRectProfile.d.ts +0 -4
  215. package/lib/curves/getRectProfile.d.ts.map +0 -1
  216. package/lib/curves/getRectProfile.js +0 -57
  217. package/lib/curves/index.d.ts +0 -17
  218. package/lib/curves/index.d.ts.map +0 -1
  219. package/lib/curves/index.js +0 -17
  220. package/lib/decorators/canvasStyleSignal.d.ts +0 -5
  221. package/lib/decorators/canvasStyleSignal.d.ts.map +0 -1
  222. package/lib/decorators/canvasStyleSignal.js +0 -12
  223. package/lib/decorators/colorSignal.d.ts +0 -2
  224. package/lib/decorators/colorSignal.d.ts.map +0 -1
  225. package/lib/decorators/colorSignal.js +0 -9
  226. package/lib/decorators/compound.d.ts +0 -26
  227. package/lib/decorators/compound.d.ts.map +0 -1
  228. package/lib/decorators/compound.js +0 -49
  229. package/lib/decorators/computed.d.ts +0 -9
  230. package/lib/decorators/computed.d.ts.map +0 -1
  231. package/lib/decorators/computed.js +0 -18
  232. package/lib/decorators/defaultStyle.d.ts +0 -2
  233. package/lib/decorators/defaultStyle.d.ts.map +0 -1
  234. package/lib/decorators/defaultStyle.js +0 -14
  235. package/lib/decorators/filtersSignal.d.ts +0 -13
  236. package/lib/decorators/filtersSignal.d.ts.map +0 -1
  237. package/lib/decorators/filtersSignal.js +0 -73
  238. package/lib/decorators/index.d.ts +0 -11
  239. package/lib/decorators/index.d.ts.map +0 -1
  240. package/lib/decorators/index.js +0 -11
  241. package/lib/decorators/initializers.d.ts +0 -4
  242. package/lib/decorators/initializers.d.ts.map +0 -1
  243. package/lib/decorators/initializers.js +0 -27
  244. package/lib/decorators/nodeName.d.ts +0 -9
  245. package/lib/decorators/nodeName.d.ts.map +0 -1
  246. package/lib/decorators/nodeName.js +0 -13
  247. package/lib/decorators/signal.d.ts +0 -183
  248. package/lib/decorators/signal.d.ts.map +0 -1
  249. package/lib/decorators/signal.js +0 -285
  250. package/lib/decorators/spacingSignal.d.ts +0 -2
  251. package/lib/decorators/spacingSignal.d.ts.map +0 -1
  252. package/lib/decorators/spacingSignal.js +0 -15
  253. package/lib/decorators/vector2Signal.d.ts +0 -9
  254. package/lib/decorators/vector2Signal.d.ts.map +0 -1
  255. package/lib/decorators/vector2Signal.js +0 -15
  256. package/lib/index.d.ts +0 -9
  257. package/lib/index.d.ts.map +0 -1
  258. package/lib/index.js +0 -9
  259. package/lib/jsx-dev-runtime.d.ts +0 -3
  260. package/lib/jsx-dev-runtime.d.ts.map +0 -1
  261. package/lib/jsx-dev-runtime.js +0 -3
  262. package/lib/jsx-runtime.d.ts +0 -12
  263. package/lib/jsx-runtime.d.ts.map +0 -1
  264. package/lib/jsx-runtime.js +0 -23
  265. package/lib/partials/Filter.d.ts +0 -82
  266. package/lib/partials/Filter.d.ts.map +0 -1
  267. package/lib/partials/Filter.js +0 -135
  268. package/lib/partials/Gradient.d.ts +0 -31
  269. package/lib/partials/Gradient.d.ts.map +0 -1
  270. package/lib/partials/Gradient.js +0 -63
  271. package/lib/partials/Pattern.d.ts +0 -13
  272. package/lib/partials/Pattern.d.ts.map +0 -1
  273. package/lib/partials/Pattern.js +0 -27
  274. package/lib/partials/ShaderConfig.d.ts +0 -81
  275. package/lib/partials/ShaderConfig.d.ts.map +0 -1
  276. package/lib/partials/ShaderConfig.js +0 -25
  277. package/lib/partials/index.d.ts +0 -5
  278. package/lib/partials/index.d.ts.map +0 -1
  279. package/lib/partials/index.js +0 -5
  280. package/lib/partials/types.d.ts +0 -35
  281. package/lib/partials/types.d.ts.map +0 -1
  282. package/lib/partials/types.js +0 -2
  283. package/lib/scenes/Scene2D.d.ts +0 -29
  284. package/lib/scenes/Scene2D.d.ts.map +0 -1
  285. package/lib/scenes/Scene2D.js +0 -180
  286. package/lib/scenes/index.d.ts +0 -4
  287. package/lib/scenes/index.d.ts.map +0 -1
  288. package/lib/scenes/index.js +0 -4
  289. package/lib/scenes/makeScene2D.d.ts +0 -5
  290. package/lib/scenes/makeScene2D.d.ts.map +0 -1
  291. package/lib/scenes/makeScene2D.js +0 -11
  292. package/lib/scenes/useScene2D.d.ts +0 -3
  293. package/lib/scenes/useScene2D.d.ts.map +0 -1
  294. package/lib/scenes/useScene2D.js +0 -5
  295. package/lib/tsconfig.build.tsbuildinfo +0 -1
  296. package/lib/utils/CanvasUtils.d.ts +0 -23
  297. package/lib/utils/CanvasUtils.d.ts.map +0 -1
  298. package/lib/utils/CanvasUtils.js +0 -138
  299. package/lib/utils/diff.d.ts +0 -31
  300. package/lib/utils/diff.d.ts.map +0 -1
  301. package/lib/utils/diff.js +0 -97
  302. package/lib/utils/index.d.ts +0 -3
  303. package/lib/utils/index.d.ts.map +0 -1
  304. package/lib/utils/index.js +0 -3
  305. package/lib/utils/is.d.ts +0 -8
  306. package/lib/utils/is.d.ts.map +0 -1
  307. package/lib/utils/is.js +0 -10
  308. package/lib/utils/makeSignalExtensions.d.ts +0 -4
  309. package/lib/utils/makeSignalExtensions.d.ts.map +0 -1
  310. package/lib/utils/makeSignalExtensions.js +0 -20
  311. package/lib/utils/video/ffmpeg-client.d.ts +0 -5
  312. package/lib/utils/video/ffmpeg-client.d.ts.map +0 -1
  313. package/lib/utils/video/ffmpeg-client.js +0 -32
  314. package/lib/utils/video/mp4-parser-manager.d.ts +0 -3
  315. package/lib/utils/video/mp4-parser-manager.d.ts.map +0 -1
  316. package/lib/utils/video/mp4-parser-manager.js +0 -55
  317. package/lib/utils/video/parser/index.d.ts +0 -2
  318. package/lib/utils/video/parser/index.d.ts.map +0 -1
  319. package/lib/utils/video/parser/index.js +0 -2
  320. package/lib/utils/video/parser/parser.d.ts +0 -21
  321. package/lib/utils/video/parser/parser.d.ts.map +0 -1
  322. package/lib/utils/video/parser/parser.js +0 -168
  323. package/lib/utils/video/parser/sampler.d.ts +0 -16
  324. package/lib/utils/video/parser/sampler.d.ts.map +0 -1
  325. package/lib/utils/video/parser/sampler.js +0 -56
  326. package/lib/utils/video/parser/segment.d.ts +0 -48
  327. package/lib/utils/video/parser/segment.d.ts.map +0 -1
  328. package/lib/utils/video/parser/segment.js +0 -239
  329. package/lib/utils/video/parser/sink.d.ts +0 -9
  330. package/lib/utils/video/parser/sink.d.ts.map +0 -1
  331. package/lib/utils/video/parser/sink.js +0 -22
  332. package/lib/utils/video/parser/utils.d.ts +0 -10
  333. package/lib/utils/video/parser/utils.d.ts.map +0 -1
  334. package/lib/utils/video/parser/utils.js +0 -22
  335. package/src/editor/NodeInspectorConfig.tsx +0 -76
  336. package/src/editor/PreviewOverlayConfig.tsx +0 -67
  337. package/src/editor/Provider.tsx +0 -93
  338. package/src/editor/SceneGraphTabConfig.tsx +0 -81
  339. package/src/editor/icons/CircleIcon.tsx +0 -7
  340. package/src/editor/icons/CodeBlockIcon.tsx +0 -8
  341. package/src/editor/icons/CurveIcon.tsx +0 -7
  342. package/src/editor/icons/GridIcon.tsx +0 -7
  343. package/src/editor/icons/IconMap.ts +0 -35
  344. package/src/editor/icons/ImgIcon.tsx +0 -8
  345. package/src/editor/icons/LayoutIcon.tsx +0 -9
  346. package/src/editor/icons/LineIcon.tsx +0 -7
  347. package/src/editor/icons/NodeIcon.tsx +0 -7
  348. package/src/editor/icons/RayIcon.tsx +0 -7
  349. package/src/editor/icons/RectIcon.tsx +0 -7
  350. package/src/editor/icons/ShapeIcon.tsx +0 -7
  351. package/src/editor/icons/TxtIcon.tsx +0 -8
  352. package/src/editor/icons/VideoIcon.tsx +0 -7
  353. package/src/editor/icons/View2DIcon.tsx +0 -10
  354. package/src/editor/index.css +0 -0
  355. package/src/editor/index.ts +0 -17
  356. package/src/editor/tree/DetachedRoot.tsx +0 -23
  357. package/src/editor/tree/NodeElement.tsx +0 -74
  358. package/src/editor/tree/TreeElement.tsx +0 -72
  359. package/src/editor/tree/TreeRoot.tsx +0 -10
  360. package/src/editor/tree/ViewRoot.tsx +0 -20
  361. package/src/editor/tree/index.module.scss +0 -38
  362. package/src/editor/tree/index.ts +0 -3
  363. package/src/editor/tsconfig.build.json +0 -5
  364. package/src/editor/tsconfig.json +0 -12
  365. package/src/editor/tsdoc.json +0 -4
  366. package/src/editor/vite-env.d.ts +0 -1
  367. package/src/lib/code/CodeCursor.ts +0 -445
  368. package/src/lib/code/CodeDiffer.ts +0 -78
  369. package/src/lib/code/CodeFragment.ts +0 -97
  370. package/src/lib/code/CodeHighlighter.ts +0 -75
  371. package/src/lib/code/CodeMetrics.ts +0 -47
  372. package/src/lib/code/CodeRange.test.ts +0 -74
  373. package/src/lib/code/CodeRange.ts +0 -216
  374. package/src/lib/code/CodeScope.ts +0 -101
  375. package/src/lib/code/CodeSelection.ts +0 -24
  376. package/src/lib/code/CodeSignal.ts +0 -327
  377. package/src/lib/code/CodeTokenizer.ts +0 -54
  378. package/src/lib/code/DefaultHighlightStyle.ts +0 -98
  379. package/src/lib/code/LezerHighlighter.ts +0 -113
  380. package/src/lib/code/diff.test.ts +0 -311
  381. package/src/lib/code/diff.ts +0 -319
  382. package/src/lib/code/extractRange.ts +0 -126
  383. package/src/lib/code/index.ts +0 -13
  384. package/src/lib/components/Audio.ts +0 -168
  385. package/src/lib/components/Bezier.ts +0 -105
  386. package/src/lib/components/Circle.ts +0 -266
  387. package/src/lib/components/Code.ts +0 -526
  388. package/src/lib/components/CodeBlock.ts +0 -576
  389. package/src/lib/components/CubicBezier.ts +0 -112
  390. package/src/lib/components/Curve.ts +0 -455
  391. package/src/lib/components/Grid.ts +0 -135
  392. package/src/lib/components/Icon.ts +0 -96
  393. package/src/lib/components/Img.ts +0 -319
  394. package/src/lib/components/Knot.ts +0 -157
  395. package/src/lib/components/Latex.ts +0 -122
  396. package/src/lib/components/Layout.ts +0 -1092
  397. package/src/lib/components/Line.ts +0 -429
  398. package/src/lib/components/Media.ts +0 -576
  399. package/src/lib/components/Node.ts +0 -1940
  400. package/src/lib/components/Path.ts +0 -137
  401. package/src/lib/components/Polygon.ts +0 -171
  402. package/src/lib/components/QuadBezier.ts +0 -100
  403. package/src/lib/components/Ray.ts +0 -125
  404. package/src/lib/components/Rect.ts +0 -187
  405. package/src/lib/components/Rive.ts +0 -156
  406. package/src/lib/components/SVG.ts +0 -797
  407. package/src/lib/components/Shape.ts +0 -143
  408. package/src/lib/components/Spline.ts +0 -344
  409. package/src/lib/components/Txt.test.tsx +0 -81
  410. package/src/lib/components/Txt.ts +0 -203
  411. package/src/lib/components/TxtLeaf.ts +0 -205
  412. package/src/lib/components/Video.ts +0 -461
  413. package/src/lib/components/View2D.ts +0 -98
  414. package/src/lib/components/__tests__/children.test.tsx +0 -142
  415. package/src/lib/components/__tests__/clone.test.tsx +0 -126
  416. package/src/lib/components/__tests__/generatorTest.ts +0 -28
  417. package/src/lib/components/__tests__/mockScene2D.ts +0 -45
  418. package/src/lib/components/__tests__/query.test.tsx +0 -122
  419. package/src/lib/components/__tests__/state.test.tsx +0 -60
  420. package/src/lib/components/index.ts +0 -28
  421. package/src/lib/components/types.ts +0 -35
  422. package/src/lib/curves/ArcSegment.ts +0 -159
  423. package/src/lib/curves/CircleSegment.ts +0 -77
  424. package/src/lib/curves/CubicBezierSegment.ts +0 -78
  425. package/src/lib/curves/CurveDrawingInfo.ts +0 -11
  426. package/src/lib/curves/CurvePoint.ts +0 -15
  427. package/src/lib/curves/CurveProfile.ts +0 -7
  428. package/src/lib/curves/KnotInfo.ts +0 -10
  429. package/src/lib/curves/LineSegment.ts +0 -62
  430. package/src/lib/curves/Polynomial.ts +0 -355
  431. package/src/lib/curves/Polynomial2D.ts +0 -62
  432. package/src/lib/curves/PolynomialSegment.ts +0 -124
  433. package/src/lib/curves/QuadBezierSegment.ts +0 -64
  434. package/src/lib/curves/Segment.ts +0 -17
  435. package/src/lib/curves/UniformPolynomialCurveSampler.ts +0 -94
  436. package/src/lib/curves/createCurveProfileLerp.ts +0 -471
  437. package/src/lib/curves/getBezierSplineProfile.ts +0 -223
  438. package/src/lib/curves/getCircleProfile.ts +0 -86
  439. package/src/lib/curves/getPathProfile.ts +0 -178
  440. package/src/lib/curves/getPointAtDistance.ts +0 -21
  441. package/src/lib/curves/getPolylineProfile.test.ts +0 -21
  442. package/src/lib/curves/getPolylineProfile.ts +0 -89
  443. package/src/lib/curves/getRectProfile.ts +0 -139
  444. package/src/lib/curves/index.ts +0 -16
  445. package/src/lib/decorators/canvasStyleSignal.ts +0 -16
  446. package/src/lib/decorators/colorSignal.ts +0 -9
  447. package/src/lib/decorators/compound.ts +0 -72
  448. package/src/lib/decorators/computed.ts +0 -18
  449. package/src/lib/decorators/defaultStyle.ts +0 -18
  450. package/src/lib/decorators/filtersSignal.ts +0 -136
  451. package/src/lib/decorators/index.ts +0 -10
  452. package/src/lib/decorators/initializers.ts +0 -32
  453. package/src/lib/decorators/nodeName.ts +0 -13
  454. package/src/lib/decorators/signal.test.ts +0 -90
  455. package/src/lib/decorators/signal.ts +0 -345
  456. package/src/lib/decorators/spacingSignal.ts +0 -15
  457. package/src/lib/decorators/vector2Signal.ts +0 -30
  458. package/src/lib/globals.d.ts +0 -2
  459. package/src/lib/index.ts +0 -8
  460. package/src/lib/jsx-dev-runtime.ts +0 -2
  461. package/src/lib/jsx-runtime.ts +0 -46
  462. package/src/lib/parse-svg-path.d.ts +0 -14
  463. package/src/lib/partials/Filter.ts +0 -180
  464. package/src/lib/partials/Gradient.ts +0 -102
  465. package/src/lib/partials/Pattern.ts +0 -34
  466. package/src/lib/partials/ShaderConfig.ts +0 -117
  467. package/src/lib/partials/index.ts +0 -4
  468. package/src/lib/partials/types.ts +0 -58
  469. package/src/lib/scenes/Scene2D.ts +0 -242
  470. package/src/lib/scenes/index.ts +0 -3
  471. package/src/lib/scenes/makeScene2D.ts +0 -16
  472. package/src/lib/scenes/useScene2D.ts +0 -6
  473. package/src/lib/tsconfig.build.json +0 -5
  474. package/src/lib/tsconfig.json +0 -10
  475. package/src/lib/tsdoc.json +0 -4
  476. package/src/lib/utils/CanvasUtils.ts +0 -306
  477. package/src/lib/utils/diff.test.ts +0 -453
  478. package/src/lib/utils/diff.ts +0 -148
  479. package/src/lib/utils/index.ts +0 -2
  480. package/src/lib/utils/is.ts +0 -11
  481. package/src/lib/utils/makeSignalExtensions.ts +0 -30
  482. package/src/lib/utils/video/declarations.d.ts +0 -1
  483. package/src/lib/utils/video/ffmpeg-client.ts +0 -50
  484. package/src/lib/utils/video/mp4-parser-manager.ts +0 -72
  485. package/src/lib/utils/video/parser/index.ts +0 -1
  486. package/src/lib/utils/video/parser/parser.ts +0 -257
  487. package/src/lib/utils/video/parser/sampler.ts +0 -72
  488. package/src/lib/utils/video/parser/segment.ts +0 -302
  489. package/src/lib/utils/video/parser/sink.ts +0 -29
  490. package/src/lib/utils/video/parser/utils.ts +0 -31
  491. package/src/tsconfig.base.json +0 -19
  492. package/src/tsconfig.build.json +0 -8
  493. package/src/tsconfig.json +0 -5
@@ -1,327 +0,0 @@
1
- import type {
2
- Signal,
3
- SignalValue,
4
- ThreadGenerator,
5
- TimingFunction,
6
- } from '@twick/core';
7
- import {
8
- createSignal,
9
- deepLerp,
10
- DependencyContext,
11
- SignalContext,
12
- unwrap,
13
- } from '@twick/core';
14
- import {addInitializer, getPropertyMetaOrCreate} from '../decorators';
15
- import {defaultDiffer} from './CodeDiffer';
16
- import {insert, replace} from './CodeFragment';
17
- import type {CodeHighlighter} from './CodeHighlighter';
18
- import type {CodePoint, CodeRange} from './CodeRange';
19
- import type {CodeScope, CodeTag, PossibleCodeScope} from './CodeScope';
20
- import {CODE, parseCodeScope, resolveCodeTag} from './CodeScope';
21
- import {defaultTokenize} from './CodeTokenizer';
22
- import {extractRange} from './extractRange';
23
-
24
- interface CodeModifier<TOwner> {
25
- (code: string): TOwner;
26
- (code: string, duration: number): ThreadGenerator;
27
- (duration?: number): TagGenerator;
28
- }
29
-
30
- interface CodeInsert<TOwner> {
31
- (point: CodePoint, code: string): TOwner;
32
- (point: CodePoint, code: string, duration: number): ThreadGenerator;
33
- }
34
-
35
- interface CodeRemove<TOwner> {
36
- (range: CodeRange): TOwner;
37
- (range: CodeRange, duration: number): ThreadGenerator;
38
- }
39
-
40
- interface CodeReplace<TOwner> {
41
- (range: CodeRange, code: string): TOwner;
42
- (range: CodeRange, code: string, duration: number): ThreadGenerator;
43
- }
44
-
45
- type TagGenerator = (
46
- strings: TemplateStringsArray,
47
- ...tags: CodeTag[]
48
- ) => ThreadGenerator;
49
-
50
- export interface CodeSignalHelpers<TOwner> {
51
- edit(duration?: number): TagGenerator;
52
- append: CodeModifier<TOwner>;
53
- prepend: CodeModifier<TOwner>;
54
- insert: CodeInsert<TOwner>;
55
- remove: CodeRemove<TOwner>;
56
- replace: CodeReplace<TOwner>;
57
- }
58
-
59
- export type CodeSignal<TOwner> = Signal<
60
- PossibleCodeScope,
61
- CodeScope,
62
- TOwner,
63
- CodeSignalContext<TOwner>
64
- > &
65
- CodeSignalHelpers<TOwner>;
66
-
67
- export class CodeSignalContext<TOwner>
68
- extends SignalContext<PossibleCodeScope, CodeScope, TOwner>
69
- implements CodeSignalHelpers<TOwner>
70
- {
71
- private readonly progress = createSignal(0);
72
-
73
- public constructor(
74
- initial: PossibleCodeScope,
75
- owner: TOwner,
76
- private readonly highlighter?: SignalValue<CodeHighlighter | null>,
77
- ) {
78
- super(initial, deepLerp, owner);
79
- Object.defineProperty(this.invokable, 'edit', {
80
- value: this.edit.bind(this),
81
- });
82
- Object.defineProperty(this.invokable, 'append', {
83
- value: this.append.bind(this),
84
- });
85
- Object.defineProperty(this.invokable, 'prepend', {
86
- value: this.prepend.bind(this),
87
- });
88
- Object.defineProperty(this.invokable, 'insert', {
89
- value: this.insert.bind(this),
90
- });
91
- Object.defineProperty(this.invokable, 'remove', {
92
- value: this.remove.bind(this),
93
- });
94
- Object.defineProperty(this.invokable, 'replace', {
95
- value: this.replace.bind(this),
96
- });
97
- }
98
-
99
- public override *tweener(
100
- value: SignalValue<PossibleCodeScope>,
101
- duration: number,
102
- timingFunction: TimingFunction,
103
- ): ThreadGenerator {
104
- let tokenize = defaultTokenize;
105
- const highlighter = unwrap(this.highlighter);
106
- if (highlighter) {
107
- yield (async () => {
108
- do {
109
- await DependencyContext.consumePromises();
110
- highlighter.initialize();
111
- } while (DependencyContext.hasPromises());
112
- })();
113
- tokenize = (input: string) => highlighter.tokenize(input);
114
- }
115
-
116
- this.progress(0);
117
- this.set({
118
- progress: this.progress,
119
- fragments: defaultDiffer(this.get(), this.parse(unwrap(value)), tokenize),
120
- });
121
- yield* this.progress(1, duration, timingFunction);
122
- this.set(value);
123
- }
124
-
125
- public edit(duration: number = 0.6): TagGenerator {
126
- return (strings, ...tags) =>
127
- this.editTween(CODE(strings, ...tags), duration);
128
- }
129
-
130
- public append(code: string): TOwner;
131
- public append(code: string, duration: number): ThreadGenerator;
132
- public append(duration?: number): TagGenerator;
133
- public append(
134
- first: string | number = 0.6,
135
- duration?: number,
136
- ): TOwner | ThreadGenerator | TagGenerator {
137
- if (typeof first === 'string') {
138
- if (duration === undefined) {
139
- const current = this.get();
140
- return this.set({
141
- progress: 0,
142
- fragments: [...current.fragments, first],
143
- });
144
- } else {
145
- return this.appendTween(first, duration);
146
- }
147
- }
148
-
149
- const savedDuration = first;
150
- return (strings, ...tags) =>
151
- this.append(resolveCodeTag(CODE(strings, ...tags), true), savedDuration);
152
- }
153
-
154
- public prepend(code: string): TOwner;
155
- public prepend(code: string, duration: number): ThreadGenerator;
156
- public prepend(duration?: number): TagGenerator;
157
- public prepend(
158
- first: string | number = 0.6,
159
- duration?: number,
160
- ): TOwner | ThreadGenerator | TagGenerator {
161
- if (typeof first === 'string') {
162
- if (duration === undefined) {
163
- const current = this.get();
164
- return this.set({
165
- progress: 0,
166
- fragments: [first, ...current.fragments],
167
- });
168
- } else {
169
- return this.prependTween(first, duration);
170
- }
171
- }
172
-
173
- const savedDuration = first;
174
- return (strings, ...tags) =>
175
- this.prepend(resolveCodeTag(CODE(strings, ...tags), true), savedDuration);
176
- }
177
-
178
- public insert(point: CodePoint, code: string): TOwner;
179
- public insert(
180
- point: CodePoint,
181
- code: string,
182
- duration: number,
183
- ): ThreadGenerator;
184
- public insert(
185
- point: CodePoint,
186
- code: string,
187
- duration?: number,
188
- ): TOwner | ThreadGenerator {
189
- return this.replace([point, point], code, duration!);
190
- }
191
-
192
- public remove(range: CodeRange): TOwner;
193
- public remove(range: CodeRange, duration: number): ThreadGenerator;
194
- public remove(range: CodeRange, duration?: number): TOwner | ThreadGenerator {
195
- return this.replace(range, '', duration!);
196
- }
197
-
198
- public replace(range: CodeRange, code: string): TOwner;
199
- public replace(
200
- range: CodeRange,
201
- code: string,
202
- duration: number,
203
- ): ThreadGenerator;
204
- public replace(
205
- range: CodeRange,
206
- code: string,
207
- duration?: number,
208
- ): TOwner | ThreadGenerator {
209
- if (duration === undefined) {
210
- const current = this.get();
211
- const [fragments, index] = extractRange(range, current.fragments);
212
- fragments[index] = code;
213
- return this.set({
214
- progress: current.progress,
215
- fragments,
216
- });
217
- } else {
218
- return this.replaceTween(range, code, duration);
219
- }
220
- }
221
-
222
- private *replaceTween(range: CodeRange, code: string, duration: number) {
223
- let current = this.get();
224
- const [fragments, index] = extractRange(range, current.fragments);
225
- const progress = createSignal(0);
226
- const scope = {
227
- progress,
228
- fragments: [replace(fragments[index] as string, code)],
229
- };
230
- fragments[index] = scope;
231
- this.set({
232
- progress: current.progress,
233
- fragments,
234
- });
235
-
236
- yield* progress(1, duration);
237
-
238
- current = this.get();
239
- this.set({
240
- progress: current.progress,
241
- fragments: current.fragments.map(fragment =>
242
- fragment === scope ? code : fragment,
243
- ),
244
- });
245
- progress.context.dispose();
246
- }
247
-
248
- private *editTween(value: CodeTag[], duration: number) {
249
- this.progress(0);
250
- this.set({
251
- progress: this.progress,
252
- fragments: value,
253
- });
254
- yield* this.progress(1, duration);
255
- const current = this.get();
256
- this.set({
257
- progress: 0,
258
- fragments: current.fragments.map(fragment =>
259
- value.includes(fragment) ? resolveCodeTag(fragment, true) : fragment,
260
- ),
261
- });
262
- }
263
-
264
- private *appendTween(value: string, duration: number) {
265
- let current = this.get();
266
- const progress = createSignal(0);
267
- const scope = {
268
- progress,
269
- fragments: [insert(value)],
270
- };
271
- this.set({
272
- progress: current.progress,
273
- fragments: [...current.fragments, scope],
274
- });
275
- yield* progress(1, duration);
276
- current = this.get();
277
- this.set({
278
- progress: current.progress,
279
- fragments: current.fragments.map(fragment =>
280
- fragment === scope ? value : fragment,
281
- ),
282
- });
283
- progress.context.dispose();
284
- }
285
-
286
- private *prependTween(value: string, duration: number) {
287
- let current = this.get();
288
- const progress = createSignal(0);
289
- const scope = {
290
- progress,
291
- fragments: [insert(value)],
292
- };
293
- this.set({
294
- progress: current.progress,
295
- fragments: [scope, ...current.fragments],
296
- });
297
- yield* progress(1, duration);
298
- current = this.get();
299
- this.set({
300
- progress: current.progress,
301
- fragments: current.fragments.map(fragment =>
302
- fragment === scope ? value : fragment,
303
- ),
304
- });
305
- progress.context.dispose();
306
- }
307
-
308
- public override parse(value: PossibleCodeScope): CodeScope {
309
- return parseCodeScope(value);
310
- }
311
-
312
- public override toSignal(): CodeSignal<TOwner> {
313
- return this.invokable;
314
- }
315
- }
316
-
317
- export function codeSignal(): PropertyDecorator {
318
- return (target: any, key) => {
319
- const meta = getPropertyMetaOrCreate<PossibleCodeScope>(target, key);
320
- addInitializer(target, (instance: any) => {
321
- instance[key] = new CodeSignalContext(
322
- meta.default ?? [],
323
- instance,
324
- ).toSignal();
325
- });
326
- };
327
- }
@@ -1,54 +0,0 @@
1
- export type CodeTokenizer = (input: string) => string[];
2
-
3
- /**
4
- * Default tokenizer function used by ownerless code signals.
5
- *
6
- * @param input - The code to tokenize.
7
- */
8
- export function defaultTokenize(input: string): string[] {
9
- const tokens: string[] = [];
10
- let currentToken = '';
11
- let whitespace = false;
12
-
13
- for (const char of input) {
14
- switch (char) {
15
- case ' ':
16
- case '\t':
17
- case '\n':
18
- if (!whitespace && currentToken !== '') {
19
- tokens.push(currentToken);
20
- currentToken = '';
21
- }
22
- whitespace = true;
23
- currentToken += char;
24
- break;
25
- case '(':
26
- case ')':
27
- case '{':
28
- case '}':
29
- case '[':
30
- case ']':
31
- if (currentToken !== '') {
32
- tokens.push(currentToken);
33
- currentToken = '';
34
- }
35
- whitespace = false;
36
- tokens.push(char);
37
- break;
38
- default:
39
- if (whitespace && currentToken !== '') {
40
- tokens.push(currentToken);
41
- currentToken = '';
42
- }
43
- whitespace = false;
44
- currentToken += char;
45
- break;
46
- }
47
- }
48
-
49
- if (currentToken !== '') {
50
- tokens.push(currentToken);
51
- }
52
-
53
- return tokens;
54
- }
@@ -1,98 +0,0 @@
1
- import {HighlightStyle} from '@codemirror/language';
2
- import {tags as t} from '@lezer/highlight';
3
-
4
- export const DefaultHighlightStyle = HighlightStyle.define([
5
- {tag: t.keyword, color: '#5e81ac'},
6
- {
7
- tag: [t.name, t.deleted, t.character, t.propertyName, t.macroName],
8
- color: '#88c0d0',
9
- },
10
- {tag: [t.variableName], color: '#8fbcbb'},
11
- {tag: [t.function(t.variableName)], color: '#8fbcbb'},
12
- {tag: [t.labelName], color: '#81a1c1'},
13
- {
14
- tag: [t.color, t.constant(t.name), t.standard(t.name)],
15
- color: '#5e81ac',
16
- },
17
- {tag: [t.definition(t.name), t.separator], color: '#a3be8c'},
18
- {tag: [t.brace], color: '#8fbcbb'},
19
- {
20
- tag: [t.annotation],
21
- color: '#d30102',
22
- },
23
- {
24
- tag: [t.number, t.changed, t.annotation, t.modifier, t.self, t.namespace],
25
- color: '#b48ead',
26
- },
27
- {
28
- tag: [t.typeName, t.className],
29
- color: '#ECEFF4',
30
- },
31
- {
32
- tag: [t.operator, t.operatorKeyword],
33
- color: '#a3be8c',
34
- },
35
- {
36
- tag: [t.tagName],
37
- color: '#b48ead',
38
- },
39
- {
40
- tag: [t.squareBracket],
41
- color: '#ECEFF4',
42
- },
43
- {
44
- tag: [t.angleBracket],
45
- color: '#ECEFF4',
46
- },
47
- {
48
- tag: [t.attributeName],
49
- color: '#eceff4',
50
- },
51
- {
52
- tag: [t.regexp],
53
- color: '#5e81ac',
54
- },
55
- {
56
- tag: [t.quote],
57
- color: '#b48ead',
58
- },
59
- {tag: [t.string], color: '#a3be8c'},
60
- {
61
- tag: t.link,
62
- color: '#a3be8c',
63
- textDecoration: 'underline',
64
- textUnderlinePosition: 'under',
65
- },
66
- {
67
- tag: [t.url, t.escape, t.special(t.string)],
68
- color: '#8fbcbb',
69
- },
70
- {tag: [t.meta], color: '#88c0d0'},
71
- {tag: [t.monospace], color: '#d8dee9', fontStyle: 'italic'},
72
- {tag: [t.comment], color: '#4c566a', fontStyle: 'italic'},
73
- {tag: t.strong, fontWeight: 'bold', color: '#5e81ac'},
74
- {tag: t.emphasis, fontStyle: 'italic', color: '#5e81ac'},
75
- {tag: t.strikethrough, textDecoration: 'line-through'},
76
- {tag: t.heading, fontWeight: 'bold', color: '#5e81ac'},
77
- {tag: t.special(t.heading1), fontWeight: 'bold', color: '#5e81ac'},
78
- {tag: t.heading1, fontWeight: 'bold', color: '#5e81ac'},
79
- {
80
- tag: [t.heading2, t.heading3, t.heading4],
81
- fontWeight: 'bold',
82
- color: '#5e81ac',
83
- },
84
- {
85
- tag: [t.heading5, t.heading6],
86
- color: '#5e81ac',
87
- },
88
- {tag: [t.atom, t.bool, t.special(t.variableName)], color: '#d08770'},
89
- {
90
- tag: [t.processingInstruction, t.inserted],
91
- color: '#8fbcbb',
92
- },
93
- {
94
- tag: [t.contentSeparator],
95
- color: '#ebcb8b',
96
- },
97
- {tag: t.invalid, color: '#434c5e', borderBottom: `1px dotted #d30102`},
98
- ]);
@@ -1,113 +0,0 @@
1
- import type {HighlightStyle} from '@codemirror/language';
2
- import type {Parser, SyntaxNode, Tree} from '@lezer/common';
3
- import {highlightTree} from '@lezer/highlight';
4
- import type {CodeHighlighter, HighlightResult} from './CodeHighlighter';
5
- import {DefaultHighlightStyle} from './DefaultHighlightStyle';
6
-
7
- interface LezerCache {
8
- tree: Tree;
9
- code: string;
10
- colorLookup: Map<string, string>;
11
- }
12
-
13
- export class LezerHighlighter implements CodeHighlighter<LezerCache | null> {
14
- private static classRegex = /\.(\S+).*color:([^;]+)/;
15
- private readonly classLookup = new Map<string, string>();
16
-
17
- public constructor(
18
- private readonly parser: Parser,
19
- private readonly style: HighlightStyle = DefaultHighlightStyle,
20
- ) {
21
- for (const rule of this.style.module?.getRules().split('\n') ?? []) {
22
- const match = rule.match(LezerHighlighter.classRegex);
23
- if (!match) {
24
- continue;
25
- }
26
-
27
- const className = match[1];
28
- const color = match[2].trim();
29
- this.classLookup.set(className, color);
30
- }
31
- }
32
-
33
- public initialize(): boolean {
34
- return true;
35
- }
36
-
37
- public prepare(code: string): LezerCache | null {
38
- const colorLookup = new Map<string, string>();
39
- const tree = this.parser.parse(code);
40
- highlightTree(tree, this.style, (from, to, classes) => {
41
- const color = this.classLookup.get(classes);
42
- if (!color) {
43
- return;
44
- }
45
-
46
- const cursor = tree.cursorAt(from, 1);
47
- do {
48
- const id = this.getNodeId(cursor.node);
49
- colorLookup.set(id, color);
50
- } while (cursor.next() && cursor.to <= to);
51
- });
52
-
53
- return {
54
- tree,
55
- code,
56
- colorLookup,
57
- };
58
- }
59
-
60
- public highlight(index: number, cache: LezerCache | null): HighlightResult {
61
- if (!cache) {
62
- return {
63
- color: null,
64
- skipAhead: 0,
65
- };
66
- }
67
-
68
- const node = cache.tree.resolveInner(index, 1);
69
- const id = this.getNodeId(node);
70
- const color = cache.colorLookup.get(id);
71
- if (color) {
72
- return {
73
- color,
74
- skipAhead: node.to - index,
75
- };
76
- }
77
-
78
- let skipAhead = 0;
79
- if (!node.firstChild) {
80
- skipAhead = node.to - index;
81
- }
82
-
83
- return {
84
- color: null,
85
- skipAhead,
86
- };
87
- }
88
-
89
- public tokenize(code: string): string[] {
90
- const tree = this.parser.parse(code);
91
- const cursor = tree.cursor();
92
- const tokens: string[] = [];
93
- let current = 0;
94
-
95
- do {
96
- if (!cursor.node.firstChild) {
97
- if (cursor.from > current) {
98
- tokens.push(code.slice(current, cursor.from));
99
- }
100
- if (cursor.from < cursor.to) {
101
- tokens.push(code.slice(cursor.from, cursor.to));
102
- }
103
- current = cursor.to;
104
- }
105
- } while (cursor.next());
106
-
107
- return tokens;
108
- }
109
-
110
- private getNodeId(node: SyntaxNode): string {
111
- return `${node.from}:${node.to}`;
112
- }
113
- }