tegaki 0.0.1 → 0.2.2

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 (756) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/FONTS-LICENSE.md +67 -0
  3. package/LICENSE +21 -0
  4. package/README.md +261 -0
  5. package/dist/index.d.mts +257 -0
  6. package/dist/index.mjs +900 -0
  7. package/dist/index.mjs.map +1 -0
  8. package/fonts/caveat/bundle.ts +300 -0
  9. package/fonts/caveat/caveat.ttf +0 -0
  10. package/fonts/caveat/font.json +24472 -0
  11. package/fonts/caveat/glyphData.json +1 -0
  12. package/fonts/caveat/svg/0.svg +12 -0
  13. package/fonts/caveat/svg/0.tsx +14 -0
  14. package/fonts/caveat/svg/1.svg +7 -0
  15. package/fonts/caveat/svg/1.tsx +9 -0
  16. package/fonts/caveat/svg/2.svg +10 -0
  17. package/fonts/caveat/svg/2.tsx +12 -0
  18. package/fonts/caveat/svg/3.svg +12 -0
  19. package/fonts/caveat/svg/3.tsx +14 -0
  20. package/fonts/caveat/svg/4.svg +12 -0
  21. package/fonts/caveat/svg/4.tsx +14 -0
  22. package/fonts/caveat/svg/5.svg +7 -0
  23. package/fonts/caveat/svg/5.tsx +9 -0
  24. package/fonts/caveat/svg/6.svg +7 -0
  25. package/fonts/caveat/svg/6.tsx +9 -0
  26. package/fonts/caveat/svg/7.svg +12 -0
  27. package/fonts/caveat/svg/7.tsx +14 -0
  28. package/fonts/caveat/svg/8.svg +10 -0
  29. package/fonts/caveat/svg/8.tsx +12 -0
  30. package/fonts/caveat/svg/9.svg +12 -0
  31. package/fonts/caveat/svg/9.tsx +14 -0
  32. package/fonts/caveat/svg/U+0021.svg +12 -0
  33. package/fonts/caveat/svg/U+0021.tsx +14 -0
  34. package/fonts/caveat/svg/U+0022.svg +12 -0
  35. package/fonts/caveat/svg/U+0022.tsx +14 -0
  36. package/fonts/caveat/svg/U+0023.svg +22 -0
  37. package/fonts/caveat/svg/U+0023.tsx +24 -0
  38. package/fonts/caveat/svg/U+0024.svg +12 -0
  39. package/fonts/caveat/svg/U+0024.tsx +14 -0
  40. package/fonts/caveat/svg/U+0025.svg +25 -0
  41. package/fonts/caveat/svg/U+0025.tsx +27 -0
  42. package/fonts/caveat/svg/U+0026.svg +10 -0
  43. package/fonts/caveat/svg/U+0026.tsx +12 -0
  44. package/fonts/caveat/svg/U+0027.svg +7 -0
  45. package/fonts/caveat/svg/U+0027.tsx +9 -0
  46. package/fonts/caveat/svg/U+0028.svg +7 -0
  47. package/fonts/caveat/svg/U+0028.tsx +9 -0
  48. package/fonts/caveat/svg/U+0029.svg +7 -0
  49. package/fonts/caveat/svg/U+0029.tsx +9 -0
  50. package/fonts/caveat/svg/U+002a.svg +17 -0
  51. package/fonts/caveat/svg/U+002a.tsx +19 -0
  52. package/fonts/caveat/svg/U+002b.svg +12 -0
  53. package/fonts/caveat/svg/U+002b.tsx +14 -0
  54. package/fonts/caveat/svg/U+002c.svg +7 -0
  55. package/fonts/caveat/svg/U+002c.tsx +9 -0
  56. package/fonts/caveat/svg/U+002d.svg +7 -0
  57. package/fonts/caveat/svg/U+002d.tsx +9 -0
  58. package/fonts/caveat/svg/U+002e.svg +7 -0
  59. package/fonts/caveat/svg/U+002e.tsx +9 -0
  60. package/fonts/caveat/svg/U+002f.svg +12 -0
  61. package/fonts/caveat/svg/U+002f.tsx +14 -0
  62. package/fonts/caveat/svg/U+003a.svg +12 -0
  63. package/fonts/caveat/svg/U+003a.tsx +14 -0
  64. package/fonts/caveat/svg/U+003b.svg +12 -0
  65. package/fonts/caveat/svg/U+003b.tsx +14 -0
  66. package/fonts/caveat/svg/U+003c.svg +12 -0
  67. package/fonts/caveat/svg/U+003c.tsx +14 -0
  68. package/fonts/caveat/svg/U+003d.svg +12 -0
  69. package/fonts/caveat/svg/U+003d.tsx +14 -0
  70. package/fonts/caveat/svg/U+003e.svg +12 -0
  71. package/fonts/caveat/svg/U+003e.tsx +14 -0
  72. package/fonts/caveat/svg/U+003f.svg +12 -0
  73. package/fonts/caveat/svg/U+003f.tsx +14 -0
  74. package/fonts/caveat/svg/U+0040.svg +7 -0
  75. package/fonts/caveat/svg/U+0040.tsx +9 -0
  76. package/fonts/caveat/svg/U+005c.svg +7 -0
  77. package/fonts/caveat/svg/U+005c.tsx +9 -0
  78. package/fonts/caveat/svg/U+005e.svg +7 -0
  79. package/fonts/caveat/svg/U+005e.tsx +9 -0
  80. package/fonts/caveat/svg/U+005f.svg +7 -0
  81. package/fonts/caveat/svg/U+005f.tsx +9 -0
  82. package/fonts/caveat/svg/U+0060.svg +7 -0
  83. package/fonts/caveat/svg/U+0060.tsx +9 -0
  84. package/fonts/caveat/svg/U+007c.svg +7 -0
  85. package/fonts/caveat/svg/U+007c.tsx +9 -0
  86. package/fonts/caveat/svg/U+007e.svg +7 -0
  87. package/fonts/caveat/svg/U+007e.tsx +9 -0
  88. package/fonts/caveat/svg/a.svg +7 -0
  89. package/fonts/caveat/svg/a.tsx +9 -0
  90. package/fonts/caveat/svg/b.svg +12 -0
  91. package/fonts/caveat/svg/b.tsx +14 -0
  92. package/fonts/caveat/svg/c.svg +7 -0
  93. package/fonts/caveat/svg/c.tsx +9 -0
  94. package/fonts/caveat/svg/d.svg +12 -0
  95. package/fonts/caveat/svg/d.tsx +14 -0
  96. package/fonts/caveat/svg/e.svg +7 -0
  97. package/fonts/caveat/svg/e.tsx +9 -0
  98. package/fonts/caveat/svg/f.svg +12 -0
  99. package/fonts/caveat/svg/f.tsx +14 -0
  100. package/fonts/caveat/svg/g.svg +15 -0
  101. package/fonts/caveat/svg/g.tsx +17 -0
  102. package/fonts/caveat/svg/h.svg +7 -0
  103. package/fonts/caveat/svg/h.tsx +9 -0
  104. package/fonts/caveat/svg/i.svg +12 -0
  105. package/fonts/caveat/svg/i.tsx +14 -0
  106. package/fonts/caveat/svg/j.svg +12 -0
  107. package/fonts/caveat/svg/j.tsx +14 -0
  108. package/fonts/caveat/svg/k.svg +15 -0
  109. package/fonts/caveat/svg/k.tsx +17 -0
  110. package/fonts/caveat/svg/l.svg +7 -0
  111. package/fonts/caveat/svg/l.tsx +9 -0
  112. package/fonts/caveat/svg/m.svg +17 -0
  113. package/fonts/caveat/svg/m.tsx +19 -0
  114. package/fonts/caveat/svg/n.svg +17 -0
  115. package/fonts/caveat/svg/n.tsx +19 -0
  116. package/fonts/caveat/svg/o.svg +7 -0
  117. package/fonts/caveat/svg/o.tsx +9 -0
  118. package/fonts/caveat/svg/p.svg +12 -0
  119. package/fonts/caveat/svg/p.tsx +14 -0
  120. package/fonts/caveat/svg/q.svg +7 -0
  121. package/fonts/caveat/svg/q.tsx +9 -0
  122. package/fonts/caveat/svg/r.svg +12 -0
  123. package/fonts/caveat/svg/r.tsx +14 -0
  124. package/fonts/caveat/svg/s.svg +7 -0
  125. package/fonts/caveat/svg/s.tsx +9 -0
  126. package/fonts/caveat/svg/t.svg +20 -0
  127. package/fonts/caveat/svg/t.tsx +22 -0
  128. package/fonts/caveat/svg/u.svg +12 -0
  129. package/fonts/caveat/svg/u.tsx +14 -0
  130. package/fonts/caveat/svg/upper_A.svg +12 -0
  131. package/fonts/caveat/svg/upper_A.tsx +14 -0
  132. package/fonts/caveat/svg/upper_B.svg +17 -0
  133. package/fonts/caveat/svg/upper_B.tsx +19 -0
  134. package/fonts/caveat/svg/upper_C.svg +7 -0
  135. package/fonts/caveat/svg/upper_C.tsx +9 -0
  136. package/fonts/caveat/svg/upper_D.svg +12 -0
  137. package/fonts/caveat/svg/upper_D.tsx +14 -0
  138. package/fonts/caveat/svg/upper_E.svg +12 -0
  139. package/fonts/caveat/svg/upper_E.tsx +14 -0
  140. package/fonts/caveat/svg/upper_F.svg +17 -0
  141. package/fonts/caveat/svg/upper_F.tsx +19 -0
  142. package/fonts/caveat/svg/upper_G.svg +7 -0
  143. package/fonts/caveat/svg/upper_G.tsx +9 -0
  144. package/fonts/caveat/svg/upper_H.svg +17 -0
  145. package/fonts/caveat/svg/upper_H.tsx +19 -0
  146. package/fonts/caveat/svg/upper_I.svg +17 -0
  147. package/fonts/caveat/svg/upper_I.tsx +19 -0
  148. package/fonts/caveat/svg/upper_J.svg +7 -0
  149. package/fonts/caveat/svg/upper_J.tsx +9 -0
  150. package/fonts/caveat/svg/upper_K.svg +12 -0
  151. package/fonts/caveat/svg/upper_K.tsx +14 -0
  152. package/fonts/caveat/svg/upper_L.svg +7 -0
  153. package/fonts/caveat/svg/upper_L.tsx +9 -0
  154. package/fonts/caveat/svg/upper_M.svg +17 -0
  155. package/fonts/caveat/svg/upper_M.tsx +19 -0
  156. package/fonts/caveat/svg/upper_N.svg +7 -0
  157. package/fonts/caveat/svg/upper_N.tsx +9 -0
  158. package/fonts/caveat/svg/upper_O.svg +7 -0
  159. package/fonts/caveat/svg/upper_O.tsx +9 -0
  160. package/fonts/caveat/svg/upper_P.svg +12 -0
  161. package/fonts/caveat/svg/upper_P.tsx +14 -0
  162. package/fonts/caveat/svg/upper_Q.svg +15 -0
  163. package/fonts/caveat/svg/upper_Q.tsx +17 -0
  164. package/fonts/caveat/svg/upper_R.svg +12 -0
  165. package/fonts/caveat/svg/upper_R.tsx +14 -0
  166. package/fonts/caveat/svg/upper_S.svg +7 -0
  167. package/fonts/caveat/svg/upper_S.tsx +9 -0
  168. package/fonts/caveat/svg/upper_T.svg +12 -0
  169. package/fonts/caveat/svg/upper_T.tsx +14 -0
  170. package/fonts/caveat/svg/upper_U.svg +15 -0
  171. package/fonts/caveat/svg/upper_U.tsx +17 -0
  172. package/fonts/caveat/svg/upper_V.svg +12 -0
  173. package/fonts/caveat/svg/upper_V.tsx +14 -0
  174. package/fonts/caveat/svg/upper_W.svg +12 -0
  175. package/fonts/caveat/svg/upper_W.tsx +14 -0
  176. package/fonts/caveat/svg/upper_X.svg +12 -0
  177. package/fonts/caveat/svg/upper_X.tsx +14 -0
  178. package/fonts/caveat/svg/upper_Y.svg +12 -0
  179. package/fonts/caveat/svg/upper_Y.tsx +14 -0
  180. package/fonts/caveat/svg/upper_Z.svg +7 -0
  181. package/fonts/caveat/svg/upper_Z.tsx +9 -0
  182. package/fonts/caveat/svg/v.svg +7 -0
  183. package/fonts/caveat/svg/v.tsx +9 -0
  184. package/fonts/caveat/svg/w.svg +12 -0
  185. package/fonts/caveat/svg/w.tsx +14 -0
  186. package/fonts/caveat/svg/x.svg +17 -0
  187. package/fonts/caveat/svg/x.tsx +19 -0
  188. package/fonts/caveat/svg/y.svg +12 -0
  189. package/fonts/caveat/svg/y.tsx +14 -0
  190. package/fonts/caveat/svg/z.svg +7 -0
  191. package/fonts/caveat/svg/z.tsx +9 -0
  192. package/fonts/italianno/bundle.ts +300 -0
  193. package/fonts/italianno/font.json +33410 -0
  194. package/fonts/italianno/glyphData.json +1 -0
  195. package/fonts/italianno/italianno.ttf +0 -0
  196. package/fonts/italianno/svg/0.svg +10 -0
  197. package/fonts/italianno/svg/0.tsx +12 -0
  198. package/fonts/italianno/svg/1.svg +17 -0
  199. package/fonts/italianno/svg/1.tsx +19 -0
  200. package/fonts/italianno/svg/2.svg +12 -0
  201. package/fonts/italianno/svg/2.tsx +14 -0
  202. package/fonts/italianno/svg/3.svg +17 -0
  203. package/fonts/italianno/svg/3.tsx +19 -0
  204. package/fonts/italianno/svg/4.svg +22 -0
  205. package/fonts/italianno/svg/4.tsx +24 -0
  206. package/fonts/italianno/svg/5.svg +12 -0
  207. package/fonts/italianno/svg/5.tsx +14 -0
  208. package/fonts/italianno/svg/6.svg +13 -0
  209. package/fonts/italianno/svg/6.tsx +15 -0
  210. package/fonts/italianno/svg/7.svg +12 -0
  211. package/fonts/italianno/svg/7.tsx +14 -0
  212. package/fonts/italianno/svg/8.svg +7 -0
  213. package/fonts/italianno/svg/8.tsx +9 -0
  214. package/fonts/italianno/svg/9.svg +12 -0
  215. package/fonts/italianno/svg/9.tsx +14 -0
  216. package/fonts/italianno/svg/U+0021.svg +12 -0
  217. package/fonts/italianno/svg/U+0021.tsx +14 -0
  218. package/fonts/italianno/svg/U+0022.svg +15 -0
  219. package/fonts/italianno/svg/U+0022.tsx +17 -0
  220. package/fonts/italianno/svg/U+0023.svg +22 -0
  221. package/fonts/italianno/svg/U+0023.tsx +24 -0
  222. package/fonts/italianno/svg/U+0024.svg +25 -0
  223. package/fonts/italianno/svg/U+0024.tsx +27 -0
  224. package/fonts/italianno/svg/U+0025.svg +22 -0
  225. package/fonts/italianno/svg/U+0025.tsx +24 -0
  226. package/fonts/italianno/svg/U+0026.svg +17 -0
  227. package/fonts/italianno/svg/U+0026.tsx +19 -0
  228. package/fonts/italianno/svg/U+0027.svg +7 -0
  229. package/fonts/italianno/svg/U+0027.tsx +9 -0
  230. package/fonts/italianno/svg/U+0028.svg +7 -0
  231. package/fonts/italianno/svg/U+0028.tsx +9 -0
  232. package/fonts/italianno/svg/U+0029.svg +7 -0
  233. package/fonts/italianno/svg/U+0029.tsx +9 -0
  234. package/fonts/italianno/svg/U+002a.svg +22 -0
  235. package/fonts/italianno/svg/U+002a.tsx +24 -0
  236. package/fonts/italianno/svg/U+002b.svg +12 -0
  237. package/fonts/italianno/svg/U+002b.tsx +14 -0
  238. package/fonts/italianno/svg/U+002c.svg +12 -0
  239. package/fonts/italianno/svg/U+002c.tsx +14 -0
  240. package/fonts/italianno/svg/U+002d.svg +7 -0
  241. package/fonts/italianno/svg/U+002d.tsx +9 -0
  242. package/fonts/italianno/svg/U+002e.svg +7 -0
  243. package/fonts/italianno/svg/U+002e.tsx +9 -0
  244. package/fonts/italianno/svg/U+002f.svg +7 -0
  245. package/fonts/italianno/svg/U+002f.tsx +9 -0
  246. package/fonts/italianno/svg/U+003a.svg +12 -0
  247. package/fonts/italianno/svg/U+003a.tsx +14 -0
  248. package/fonts/italianno/svg/U+003b.svg +12 -0
  249. package/fonts/italianno/svg/U+003b.tsx +14 -0
  250. package/fonts/italianno/svg/U+003c.svg +7 -0
  251. package/fonts/italianno/svg/U+003c.tsx +9 -0
  252. package/fonts/italianno/svg/U+003d.svg +12 -0
  253. package/fonts/italianno/svg/U+003d.tsx +14 -0
  254. package/fonts/italianno/svg/U+003e.svg +12 -0
  255. package/fonts/italianno/svg/U+003e.tsx +14 -0
  256. package/fonts/italianno/svg/U+003f.svg +12 -0
  257. package/fonts/italianno/svg/U+003f.tsx +14 -0
  258. package/fonts/italianno/svg/U+0040.svg +15 -0
  259. package/fonts/italianno/svg/U+0040.tsx +17 -0
  260. package/fonts/italianno/svg/U+005c.svg +7 -0
  261. package/fonts/italianno/svg/U+005c.tsx +9 -0
  262. package/fonts/italianno/svg/U+005e.svg +12 -0
  263. package/fonts/italianno/svg/U+005e.tsx +14 -0
  264. package/fonts/italianno/svg/U+005f.svg +3 -0
  265. package/fonts/italianno/svg/U+005f.tsx +5 -0
  266. package/fonts/italianno/svg/U+0060.svg +10 -0
  267. package/fonts/italianno/svg/U+0060.tsx +12 -0
  268. package/fonts/italianno/svg/U+007c.svg +7 -0
  269. package/fonts/italianno/svg/U+007c.tsx +9 -0
  270. package/fonts/italianno/svg/U+007e.svg +7 -0
  271. package/fonts/italianno/svg/U+007e.tsx +9 -0
  272. package/fonts/italianno/svg/a.svg +12 -0
  273. package/fonts/italianno/svg/a.tsx +14 -0
  274. package/fonts/italianno/svg/b.svg +10 -0
  275. package/fonts/italianno/svg/b.tsx +12 -0
  276. package/fonts/italianno/svg/c.svg +10 -0
  277. package/fonts/italianno/svg/c.tsx +12 -0
  278. package/fonts/italianno/svg/d.svg +15 -0
  279. package/fonts/italianno/svg/d.tsx +17 -0
  280. package/fonts/italianno/svg/e.svg +12 -0
  281. package/fonts/italianno/svg/e.tsx +14 -0
  282. package/fonts/italianno/svg/f.svg +12 -0
  283. package/fonts/italianno/svg/f.tsx +14 -0
  284. package/fonts/italianno/svg/g.svg +12 -0
  285. package/fonts/italianno/svg/g.tsx +14 -0
  286. package/fonts/italianno/svg/h.svg +12 -0
  287. package/fonts/italianno/svg/h.tsx +14 -0
  288. package/fonts/italianno/svg/i.svg +17 -0
  289. package/fonts/italianno/svg/i.tsx +19 -0
  290. package/fonts/italianno/svg/j.svg +12 -0
  291. package/fonts/italianno/svg/j.tsx +14 -0
  292. package/fonts/italianno/svg/k.svg +17 -0
  293. package/fonts/italianno/svg/k.tsx +19 -0
  294. package/fonts/italianno/svg/l.svg +15 -0
  295. package/fonts/italianno/svg/l.tsx +17 -0
  296. package/fonts/italianno/svg/m.svg +27 -0
  297. package/fonts/italianno/svg/m.tsx +29 -0
  298. package/fonts/italianno/svg/n.svg +22 -0
  299. package/fonts/italianno/svg/n.tsx +24 -0
  300. package/fonts/italianno/svg/o.svg +20 -0
  301. package/fonts/italianno/svg/o.tsx +22 -0
  302. package/fonts/italianno/svg/p.svg +12 -0
  303. package/fonts/italianno/svg/p.tsx +14 -0
  304. package/fonts/italianno/svg/q.svg +17 -0
  305. package/fonts/italianno/svg/q.tsx +19 -0
  306. package/fonts/italianno/svg/r.svg +22 -0
  307. package/fonts/italianno/svg/r.tsx +24 -0
  308. package/fonts/italianno/svg/s.svg +15 -0
  309. package/fonts/italianno/svg/s.tsx +17 -0
  310. package/fonts/italianno/svg/t.svg +17 -0
  311. package/fonts/italianno/svg/t.tsx +19 -0
  312. package/fonts/italianno/svg/u.svg +12 -0
  313. package/fonts/italianno/svg/u.tsx +14 -0
  314. package/fonts/italianno/svg/upper_A.svg +17 -0
  315. package/fonts/italianno/svg/upper_A.tsx +19 -0
  316. package/fonts/italianno/svg/upper_B.svg +27 -0
  317. package/fonts/italianno/svg/upper_B.tsx +29 -0
  318. package/fonts/italianno/svg/upper_C.svg +7 -0
  319. package/fonts/italianno/svg/upper_C.tsx +9 -0
  320. package/fonts/italianno/svg/upper_D.svg +12 -0
  321. package/fonts/italianno/svg/upper_D.tsx +14 -0
  322. package/fonts/italianno/svg/upper_E.svg +17 -0
  323. package/fonts/italianno/svg/upper_E.tsx +19 -0
  324. package/fonts/italianno/svg/upper_F.svg +17 -0
  325. package/fonts/italianno/svg/upper_F.tsx +19 -0
  326. package/fonts/italianno/svg/upper_G.svg +20 -0
  327. package/fonts/italianno/svg/upper_G.tsx +22 -0
  328. package/fonts/italianno/svg/upper_H.svg +17 -0
  329. package/fonts/italianno/svg/upper_H.tsx +19 -0
  330. package/fonts/italianno/svg/upper_I.svg +12 -0
  331. package/fonts/italianno/svg/upper_I.tsx +14 -0
  332. package/fonts/italianno/svg/upper_J.svg +10 -0
  333. package/fonts/italianno/svg/upper_J.tsx +12 -0
  334. package/fonts/italianno/svg/upper_K.svg +20 -0
  335. package/fonts/italianno/svg/upper_K.tsx +22 -0
  336. package/fonts/italianno/svg/upper_L.svg +12 -0
  337. package/fonts/italianno/svg/upper_L.tsx +14 -0
  338. package/fonts/italianno/svg/upper_M.svg +17 -0
  339. package/fonts/italianno/svg/upper_M.tsx +19 -0
  340. package/fonts/italianno/svg/upper_N.svg +17 -0
  341. package/fonts/italianno/svg/upper_N.tsx +19 -0
  342. package/fonts/italianno/svg/upper_O.svg +17 -0
  343. package/fonts/italianno/svg/upper_O.tsx +19 -0
  344. package/fonts/italianno/svg/upper_P.svg +22 -0
  345. package/fonts/italianno/svg/upper_P.tsx +24 -0
  346. package/fonts/italianno/svg/upper_Q.svg +12 -0
  347. package/fonts/italianno/svg/upper_Q.tsx +14 -0
  348. package/fonts/italianno/svg/upper_R.svg +15 -0
  349. package/fonts/italianno/svg/upper_R.tsx +17 -0
  350. package/fonts/italianno/svg/upper_S.svg +12 -0
  351. package/fonts/italianno/svg/upper_S.tsx +14 -0
  352. package/fonts/italianno/svg/upper_T.svg +17 -0
  353. package/fonts/italianno/svg/upper_T.tsx +19 -0
  354. package/fonts/italianno/svg/upper_U.svg +17 -0
  355. package/fonts/italianno/svg/upper_U.tsx +19 -0
  356. package/fonts/italianno/svg/upper_V.svg +17 -0
  357. package/fonts/italianno/svg/upper_V.tsx +19 -0
  358. package/fonts/italianno/svg/upper_W.svg +17 -0
  359. package/fonts/italianno/svg/upper_W.tsx +19 -0
  360. package/fonts/italianno/svg/upper_X.svg +22 -0
  361. package/fonts/italianno/svg/upper_X.tsx +24 -0
  362. package/fonts/italianno/svg/upper_Y.svg +22 -0
  363. package/fonts/italianno/svg/upper_Y.tsx +24 -0
  364. package/fonts/italianno/svg/upper_Z.svg +12 -0
  365. package/fonts/italianno/svg/upper_Z.tsx +14 -0
  366. package/fonts/italianno/svg/v.svg +17 -0
  367. package/fonts/italianno/svg/v.tsx +19 -0
  368. package/fonts/italianno/svg/w.svg +17 -0
  369. package/fonts/italianno/svg/w.tsx +19 -0
  370. package/fonts/italianno/svg/x.svg +15 -0
  371. package/fonts/italianno/svg/x.tsx +17 -0
  372. package/fonts/italianno/svg/y.svg +12 -0
  373. package/fonts/italianno/svg/y.tsx +14 -0
  374. package/fonts/italianno/svg/z.svg +17 -0
  375. package/fonts/italianno/svg/z.tsx +19 -0
  376. package/fonts/parisienne/bundle.ts +300 -0
  377. package/fonts/parisienne/font.json +36222 -0
  378. package/fonts/parisienne/glyphData.json +1 -0
  379. package/fonts/parisienne/parisienne.ttf +0 -0
  380. package/fonts/parisienne/svg/0.svg +7 -0
  381. package/fonts/parisienne/svg/0.tsx +9 -0
  382. package/fonts/parisienne/svg/1.svg +12 -0
  383. package/fonts/parisienne/svg/1.tsx +14 -0
  384. package/fonts/parisienne/svg/2.svg +7 -0
  385. package/fonts/parisienne/svg/2.tsx +9 -0
  386. package/fonts/parisienne/svg/3.svg +7 -0
  387. package/fonts/parisienne/svg/3.tsx +9 -0
  388. package/fonts/parisienne/svg/4.svg +17 -0
  389. package/fonts/parisienne/svg/4.tsx +19 -0
  390. package/fonts/parisienne/svg/5.svg +10 -0
  391. package/fonts/parisienne/svg/5.tsx +12 -0
  392. package/fonts/parisienne/svg/6.svg +7 -0
  393. package/fonts/parisienne/svg/6.tsx +9 -0
  394. package/fonts/parisienne/svg/7.svg +12 -0
  395. package/fonts/parisienne/svg/7.tsx +14 -0
  396. package/fonts/parisienne/svg/8.svg +7 -0
  397. package/fonts/parisienne/svg/8.tsx +9 -0
  398. package/fonts/parisienne/svg/9.svg +7 -0
  399. package/fonts/parisienne/svg/9.tsx +9 -0
  400. package/fonts/parisienne/svg/U+0021.svg +10 -0
  401. package/fonts/parisienne/svg/U+0021.tsx +12 -0
  402. package/fonts/parisienne/svg/U+0022.svg +12 -0
  403. package/fonts/parisienne/svg/U+0022.tsx +14 -0
  404. package/fonts/parisienne/svg/U+0023.svg +22 -0
  405. package/fonts/parisienne/svg/U+0023.tsx +24 -0
  406. package/fonts/parisienne/svg/U+0024.svg +15 -0
  407. package/fonts/parisienne/svg/U+0024.tsx +17 -0
  408. package/fonts/parisienne/svg/U+0025.svg +22 -0
  409. package/fonts/parisienne/svg/U+0025.tsx +24 -0
  410. package/fonts/parisienne/svg/U+0026.svg +17 -0
  411. package/fonts/parisienne/svg/U+0026.tsx +19 -0
  412. package/fonts/parisienne/svg/U+0027.svg +7 -0
  413. package/fonts/parisienne/svg/U+0027.tsx +9 -0
  414. package/fonts/parisienne/svg/U+0028.svg +7 -0
  415. package/fonts/parisienne/svg/U+0028.tsx +9 -0
  416. package/fonts/parisienne/svg/U+0029.svg +7 -0
  417. package/fonts/parisienne/svg/U+0029.tsx +9 -0
  418. package/fonts/parisienne/svg/U+002a.svg +22 -0
  419. package/fonts/parisienne/svg/U+002a.tsx +24 -0
  420. package/fonts/parisienne/svg/U+002b.svg +12 -0
  421. package/fonts/parisienne/svg/U+002b.tsx +14 -0
  422. package/fonts/parisienne/svg/U+002c.svg +7 -0
  423. package/fonts/parisienne/svg/U+002c.tsx +9 -0
  424. package/fonts/parisienne/svg/U+002d.svg +7 -0
  425. package/fonts/parisienne/svg/U+002d.tsx +9 -0
  426. package/fonts/parisienne/svg/U+002e.svg +7 -0
  427. package/fonts/parisienne/svg/U+002e.tsx +9 -0
  428. package/fonts/parisienne/svg/U+002f.svg +7 -0
  429. package/fonts/parisienne/svg/U+002f.tsx +9 -0
  430. package/fonts/parisienne/svg/U+003a.svg +8 -0
  431. package/fonts/parisienne/svg/U+003a.tsx +10 -0
  432. package/fonts/parisienne/svg/U+003b.svg +10 -0
  433. package/fonts/parisienne/svg/U+003b.tsx +12 -0
  434. package/fonts/parisienne/svg/U+003c.svg +7 -0
  435. package/fonts/parisienne/svg/U+003c.tsx +9 -0
  436. package/fonts/parisienne/svg/U+003d.svg +12 -0
  437. package/fonts/parisienne/svg/U+003d.tsx +14 -0
  438. package/fonts/parisienne/svg/U+003e.svg +7 -0
  439. package/fonts/parisienne/svg/U+003e.tsx +9 -0
  440. package/fonts/parisienne/svg/U+003f.svg +10 -0
  441. package/fonts/parisienne/svg/U+003f.tsx +12 -0
  442. package/fonts/parisienne/svg/U+0040.svg +15 -0
  443. package/fonts/parisienne/svg/U+0040.tsx +17 -0
  444. package/fonts/parisienne/svg/U+005c.svg +7 -0
  445. package/fonts/parisienne/svg/U+005c.tsx +9 -0
  446. package/fonts/parisienne/svg/U+005e.svg +7 -0
  447. package/fonts/parisienne/svg/U+005e.tsx +9 -0
  448. package/fonts/parisienne/svg/U+005f.svg +7 -0
  449. package/fonts/parisienne/svg/U+005f.tsx +9 -0
  450. package/fonts/parisienne/svg/U+0060.svg +10 -0
  451. package/fonts/parisienne/svg/U+0060.tsx +12 -0
  452. package/fonts/parisienne/svg/U+007c.svg +7 -0
  453. package/fonts/parisienne/svg/U+007c.tsx +9 -0
  454. package/fonts/parisienne/svg/U+007e.svg +7 -0
  455. package/fonts/parisienne/svg/U+007e.tsx +9 -0
  456. package/fonts/parisienne/svg/a.svg +15 -0
  457. package/fonts/parisienne/svg/a.tsx +17 -0
  458. package/fonts/parisienne/svg/b.svg +7 -0
  459. package/fonts/parisienne/svg/b.tsx +9 -0
  460. package/fonts/parisienne/svg/c.svg +12 -0
  461. package/fonts/parisienne/svg/c.tsx +14 -0
  462. package/fonts/parisienne/svg/d.svg +12 -0
  463. package/fonts/parisienne/svg/d.tsx +14 -0
  464. package/fonts/parisienne/svg/e.svg +17 -0
  465. package/fonts/parisienne/svg/e.tsx +19 -0
  466. package/fonts/parisienne/svg/f.svg +12 -0
  467. package/fonts/parisienne/svg/f.tsx +14 -0
  468. package/fonts/parisienne/svg/g.svg +10 -0
  469. package/fonts/parisienne/svg/g.tsx +12 -0
  470. package/fonts/parisienne/svg/h.svg +12 -0
  471. package/fonts/parisienne/svg/h.tsx +14 -0
  472. package/fonts/parisienne/svg/i.svg +12 -0
  473. package/fonts/parisienne/svg/i.tsx +14 -0
  474. package/fonts/parisienne/svg/j.svg +17 -0
  475. package/fonts/parisienne/svg/j.tsx +19 -0
  476. package/fonts/parisienne/svg/k.svg +17 -0
  477. package/fonts/parisienne/svg/k.tsx +19 -0
  478. package/fonts/parisienne/svg/l.svg +7 -0
  479. package/fonts/parisienne/svg/l.tsx +9 -0
  480. package/fonts/parisienne/svg/m.svg +17 -0
  481. package/fonts/parisienne/svg/m.tsx +19 -0
  482. package/fonts/parisienne/svg/n.svg +12 -0
  483. package/fonts/parisienne/svg/n.tsx +14 -0
  484. package/fonts/parisienne/svg/o.svg +15 -0
  485. package/fonts/parisienne/svg/o.tsx +17 -0
  486. package/fonts/parisienne/svg/p.svg +12 -0
  487. package/fonts/parisienne/svg/p.tsx +14 -0
  488. package/fonts/parisienne/svg/q.svg +12 -0
  489. package/fonts/parisienne/svg/q.tsx +14 -0
  490. package/fonts/parisienne/svg/r.svg +7 -0
  491. package/fonts/parisienne/svg/r.tsx +9 -0
  492. package/fonts/parisienne/svg/s.svg +17 -0
  493. package/fonts/parisienne/svg/s.tsx +19 -0
  494. package/fonts/parisienne/svg/t.svg +20 -0
  495. package/fonts/parisienne/svg/t.tsx +22 -0
  496. package/fonts/parisienne/svg/u.svg +12 -0
  497. package/fonts/parisienne/svg/u.tsx +14 -0
  498. package/fonts/parisienne/svg/upper_A.svg +10 -0
  499. package/fonts/parisienne/svg/upper_A.tsx +12 -0
  500. package/fonts/parisienne/svg/upper_B.svg +12 -0
  501. package/fonts/parisienne/svg/upper_B.tsx +14 -0
  502. package/fonts/parisienne/svg/upper_C.svg +7 -0
  503. package/fonts/parisienne/svg/upper_C.tsx +9 -0
  504. package/fonts/parisienne/svg/upper_D.svg +7 -0
  505. package/fonts/parisienne/svg/upper_D.tsx +9 -0
  506. package/fonts/parisienne/svg/upper_E.svg +10 -0
  507. package/fonts/parisienne/svg/upper_E.tsx +12 -0
  508. package/fonts/parisienne/svg/upper_F.svg +22 -0
  509. package/fonts/parisienne/svg/upper_F.tsx +24 -0
  510. package/fonts/parisienne/svg/upper_G.svg +15 -0
  511. package/fonts/parisienne/svg/upper_G.tsx +17 -0
  512. package/fonts/parisienne/svg/upper_H.svg +15 -0
  513. package/fonts/parisienne/svg/upper_H.tsx +17 -0
  514. package/fonts/parisienne/svg/upper_I.svg +15 -0
  515. package/fonts/parisienne/svg/upper_I.tsx +17 -0
  516. package/fonts/parisienne/svg/upper_J.svg +15 -0
  517. package/fonts/parisienne/svg/upper_J.tsx +17 -0
  518. package/fonts/parisienne/svg/upper_K.svg +12 -0
  519. package/fonts/parisienne/svg/upper_K.tsx +14 -0
  520. package/fonts/parisienne/svg/upper_L.svg +7 -0
  521. package/fonts/parisienne/svg/upper_L.tsx +9 -0
  522. package/fonts/parisienne/svg/upper_M.svg +15 -0
  523. package/fonts/parisienne/svg/upper_M.tsx +17 -0
  524. package/fonts/parisienne/svg/upper_N.svg +12 -0
  525. package/fonts/parisienne/svg/upper_N.tsx +14 -0
  526. package/fonts/parisienne/svg/upper_O.svg +7 -0
  527. package/fonts/parisienne/svg/upper_O.tsx +9 -0
  528. package/fonts/parisienne/svg/upper_P.svg +12 -0
  529. package/fonts/parisienne/svg/upper_P.tsx +14 -0
  530. package/fonts/parisienne/svg/upper_Q.svg +15 -0
  531. package/fonts/parisienne/svg/upper_Q.tsx +17 -0
  532. package/fonts/parisienne/svg/upper_R.svg +12 -0
  533. package/fonts/parisienne/svg/upper_R.tsx +14 -0
  534. package/fonts/parisienne/svg/upper_S.svg +7 -0
  535. package/fonts/parisienne/svg/upper_S.tsx +9 -0
  536. package/fonts/parisienne/svg/upper_T.svg +12 -0
  537. package/fonts/parisienne/svg/upper_T.tsx +14 -0
  538. package/fonts/parisienne/svg/upper_U.svg +17 -0
  539. package/fonts/parisienne/svg/upper_U.tsx +19 -0
  540. package/fonts/parisienne/svg/upper_V.svg +7 -0
  541. package/fonts/parisienne/svg/upper_V.tsx +9 -0
  542. package/fonts/parisienne/svg/upper_W.svg +12 -0
  543. package/fonts/parisienne/svg/upper_W.tsx +14 -0
  544. package/fonts/parisienne/svg/upper_X.svg +27 -0
  545. package/fonts/parisienne/svg/upper_X.tsx +29 -0
  546. package/fonts/parisienne/svg/upper_Y.svg +15 -0
  547. package/fonts/parisienne/svg/upper_Y.tsx +17 -0
  548. package/fonts/parisienne/svg/upper_Z.svg +12 -0
  549. package/fonts/parisienne/svg/upper_Z.tsx +14 -0
  550. package/fonts/parisienne/svg/v.svg +7 -0
  551. package/fonts/parisienne/svg/v.tsx +9 -0
  552. package/fonts/parisienne/svg/w.svg +17 -0
  553. package/fonts/parisienne/svg/w.tsx +19 -0
  554. package/fonts/parisienne/svg/x.svg +17 -0
  555. package/fonts/parisienne/svg/x.tsx +19 -0
  556. package/fonts/parisienne/svg/y.svg +17 -0
  557. package/fonts/parisienne/svg/y.tsx +19 -0
  558. package/fonts/parisienne/svg/z.svg +12 -0
  559. package/fonts/parisienne/svg/z.tsx +14 -0
  560. package/fonts/tangerine/bundle.ts +300 -0
  561. package/fonts/tangerine/font.json +31512 -0
  562. package/fonts/tangerine/glyphData.json +1 -0
  563. package/fonts/tangerine/svg/0.svg +7 -0
  564. package/fonts/tangerine/svg/0.tsx +9 -0
  565. package/fonts/tangerine/svg/1.svg +12 -0
  566. package/fonts/tangerine/svg/1.tsx +14 -0
  567. package/fonts/tangerine/svg/2.svg +12 -0
  568. package/fonts/tangerine/svg/2.tsx +14 -0
  569. package/fonts/tangerine/svg/3.svg +12 -0
  570. package/fonts/tangerine/svg/3.tsx +14 -0
  571. package/fonts/tangerine/svg/4.svg +12 -0
  572. package/fonts/tangerine/svg/4.tsx +14 -0
  573. package/fonts/tangerine/svg/5.svg +7 -0
  574. package/fonts/tangerine/svg/5.tsx +9 -0
  575. package/fonts/tangerine/svg/6.svg +7 -0
  576. package/fonts/tangerine/svg/6.tsx +9 -0
  577. package/fonts/tangerine/svg/7.svg +12 -0
  578. package/fonts/tangerine/svg/7.tsx +14 -0
  579. package/fonts/tangerine/svg/8.svg +7 -0
  580. package/fonts/tangerine/svg/8.tsx +9 -0
  581. package/fonts/tangerine/svg/9.svg +7 -0
  582. package/fonts/tangerine/svg/9.tsx +9 -0
  583. package/fonts/tangerine/svg/U+0021.svg +12 -0
  584. package/fonts/tangerine/svg/U+0021.tsx +14 -0
  585. package/fonts/tangerine/svg/U+0022.svg +12 -0
  586. package/fonts/tangerine/svg/U+0022.tsx +14 -0
  587. package/fonts/tangerine/svg/U+0023.svg +22 -0
  588. package/fonts/tangerine/svg/U+0023.tsx +24 -0
  589. package/fonts/tangerine/svg/U+0024.svg +12 -0
  590. package/fonts/tangerine/svg/U+0024.tsx +14 -0
  591. package/fonts/tangerine/svg/U+0025.svg +17 -0
  592. package/fonts/tangerine/svg/U+0025.tsx +19 -0
  593. package/fonts/tangerine/svg/U+0026.svg +7 -0
  594. package/fonts/tangerine/svg/U+0026.tsx +9 -0
  595. package/fonts/tangerine/svg/U+0027.svg +7 -0
  596. package/fonts/tangerine/svg/U+0027.tsx +9 -0
  597. package/fonts/tangerine/svg/U+0028.svg +7 -0
  598. package/fonts/tangerine/svg/U+0028.tsx +9 -0
  599. package/fonts/tangerine/svg/U+0029.svg +7 -0
  600. package/fonts/tangerine/svg/U+0029.tsx +9 -0
  601. package/fonts/tangerine/svg/U+002a.svg +17 -0
  602. package/fonts/tangerine/svg/U+002a.tsx +19 -0
  603. package/fonts/tangerine/svg/U+002b.svg +12 -0
  604. package/fonts/tangerine/svg/U+002b.tsx +14 -0
  605. package/fonts/tangerine/svg/U+002c.svg +10 -0
  606. package/fonts/tangerine/svg/U+002c.tsx +12 -0
  607. package/fonts/tangerine/svg/U+002d.svg +7 -0
  608. package/fonts/tangerine/svg/U+002d.tsx +9 -0
  609. package/fonts/tangerine/svg/U+002e.svg +10 -0
  610. package/fonts/tangerine/svg/U+002e.tsx +12 -0
  611. package/fonts/tangerine/svg/U+002f.svg +7 -0
  612. package/fonts/tangerine/svg/U+002f.tsx +9 -0
  613. package/fonts/tangerine/svg/U+003a.svg +12 -0
  614. package/fonts/tangerine/svg/U+003a.tsx +14 -0
  615. package/fonts/tangerine/svg/U+003b.svg +12 -0
  616. package/fonts/tangerine/svg/U+003b.tsx +14 -0
  617. package/fonts/tangerine/svg/U+003c.svg +12 -0
  618. package/fonts/tangerine/svg/U+003c.tsx +14 -0
  619. package/fonts/tangerine/svg/U+003d.svg +12 -0
  620. package/fonts/tangerine/svg/U+003d.tsx +14 -0
  621. package/fonts/tangerine/svg/U+003e.svg +12 -0
  622. package/fonts/tangerine/svg/U+003e.tsx +14 -0
  623. package/fonts/tangerine/svg/U+003f.svg +12 -0
  624. package/fonts/tangerine/svg/U+003f.tsx +14 -0
  625. package/fonts/tangerine/svg/U+0040.svg +15 -0
  626. package/fonts/tangerine/svg/U+0040.tsx +17 -0
  627. package/fonts/tangerine/svg/U+005c.svg +7 -0
  628. package/fonts/tangerine/svg/U+005c.tsx +9 -0
  629. package/fonts/tangerine/svg/U+005e.svg +12 -0
  630. package/fonts/tangerine/svg/U+005e.tsx +14 -0
  631. package/fonts/tangerine/svg/U+005f.svg +7 -0
  632. package/fonts/tangerine/svg/U+005f.tsx +9 -0
  633. package/fonts/tangerine/svg/U+0060.svg +7 -0
  634. package/fonts/tangerine/svg/U+0060.tsx +9 -0
  635. package/fonts/tangerine/svg/U+007c.svg +7 -0
  636. package/fonts/tangerine/svg/U+007c.tsx +9 -0
  637. package/fonts/tangerine/svg/U+007e.svg +7 -0
  638. package/fonts/tangerine/svg/U+007e.tsx +9 -0
  639. package/fonts/tangerine/svg/a.svg +12 -0
  640. package/fonts/tangerine/svg/a.tsx +14 -0
  641. package/fonts/tangerine/svg/b.svg +7 -0
  642. package/fonts/tangerine/svg/b.tsx +9 -0
  643. package/fonts/tangerine/svg/c.svg +7 -0
  644. package/fonts/tangerine/svg/c.tsx +9 -0
  645. package/fonts/tangerine/svg/d.svg +12 -0
  646. package/fonts/tangerine/svg/d.tsx +14 -0
  647. package/fonts/tangerine/svg/e.svg +15 -0
  648. package/fonts/tangerine/svg/e.tsx +17 -0
  649. package/fonts/tangerine/svg/f.svg +15 -0
  650. package/fonts/tangerine/svg/f.tsx +17 -0
  651. package/fonts/tangerine/svg/g.svg +12 -0
  652. package/fonts/tangerine/svg/g.tsx +14 -0
  653. package/fonts/tangerine/svg/h.svg +12 -0
  654. package/fonts/tangerine/svg/h.tsx +14 -0
  655. package/fonts/tangerine/svg/i.svg +15 -0
  656. package/fonts/tangerine/svg/i.tsx +17 -0
  657. package/fonts/tangerine/svg/j.svg +12 -0
  658. package/fonts/tangerine/svg/j.tsx +14 -0
  659. package/fonts/tangerine/svg/k.svg +12 -0
  660. package/fonts/tangerine/svg/k.tsx +14 -0
  661. package/fonts/tangerine/svg/l.svg +7 -0
  662. package/fonts/tangerine/svg/l.tsx +9 -0
  663. package/fonts/tangerine/svg/m.svg +17 -0
  664. package/fonts/tangerine/svg/m.tsx +19 -0
  665. package/fonts/tangerine/svg/n.svg +12 -0
  666. package/fonts/tangerine/svg/n.tsx +14 -0
  667. package/fonts/tangerine/svg/o.svg +12 -0
  668. package/fonts/tangerine/svg/o.tsx +14 -0
  669. package/fonts/tangerine/svg/p.svg +17 -0
  670. package/fonts/tangerine/svg/p.tsx +19 -0
  671. package/fonts/tangerine/svg/q.svg +15 -0
  672. package/fonts/tangerine/svg/q.tsx +17 -0
  673. package/fonts/tangerine/svg/r.svg +17 -0
  674. package/fonts/tangerine/svg/r.tsx +19 -0
  675. package/fonts/tangerine/svg/s.svg +10 -0
  676. package/fonts/tangerine/svg/s.tsx +12 -0
  677. package/fonts/tangerine/svg/t.svg +17 -0
  678. package/fonts/tangerine/svg/t.tsx +19 -0
  679. package/fonts/tangerine/svg/u.svg +17 -0
  680. package/fonts/tangerine/svg/u.tsx +19 -0
  681. package/fonts/tangerine/svg/upper_A.svg +20 -0
  682. package/fonts/tangerine/svg/upper_A.tsx +22 -0
  683. package/fonts/tangerine/svg/upper_B.svg +17 -0
  684. package/fonts/tangerine/svg/upper_B.tsx +19 -0
  685. package/fonts/tangerine/svg/upper_C.svg +7 -0
  686. package/fonts/tangerine/svg/upper_C.tsx +9 -0
  687. package/fonts/tangerine/svg/upper_D.svg +12 -0
  688. package/fonts/tangerine/svg/upper_D.tsx +14 -0
  689. package/fonts/tangerine/svg/upper_E.svg +7 -0
  690. package/fonts/tangerine/svg/upper_E.tsx +9 -0
  691. package/fonts/tangerine/svg/upper_F.svg +17 -0
  692. package/fonts/tangerine/svg/upper_F.tsx +19 -0
  693. package/fonts/tangerine/svg/upper_G.svg +12 -0
  694. package/fonts/tangerine/svg/upper_G.tsx +14 -0
  695. package/fonts/tangerine/svg/upper_H.svg +12 -0
  696. package/fonts/tangerine/svg/upper_H.tsx +14 -0
  697. package/fonts/tangerine/svg/upper_I.svg +7 -0
  698. package/fonts/tangerine/svg/upper_I.tsx +9 -0
  699. package/fonts/tangerine/svg/upper_J.svg +7 -0
  700. package/fonts/tangerine/svg/upper_J.tsx +9 -0
  701. package/fonts/tangerine/svg/upper_K.svg +17 -0
  702. package/fonts/tangerine/svg/upper_K.tsx +19 -0
  703. package/fonts/tangerine/svg/upper_L.svg +7 -0
  704. package/fonts/tangerine/svg/upper_L.tsx +9 -0
  705. package/fonts/tangerine/svg/upper_M.svg +12 -0
  706. package/fonts/tangerine/svg/upper_M.tsx +14 -0
  707. package/fonts/tangerine/svg/upper_N.svg +15 -0
  708. package/fonts/tangerine/svg/upper_N.tsx +17 -0
  709. package/fonts/tangerine/svg/upper_O.svg +7 -0
  710. package/fonts/tangerine/svg/upper_O.tsx +9 -0
  711. package/fonts/tangerine/svg/upper_P.svg +12 -0
  712. package/fonts/tangerine/svg/upper_P.tsx +14 -0
  713. package/fonts/tangerine/svg/upper_Q.svg +12 -0
  714. package/fonts/tangerine/svg/upper_Q.tsx +14 -0
  715. package/fonts/tangerine/svg/upper_R.svg +12 -0
  716. package/fonts/tangerine/svg/upper_R.tsx +14 -0
  717. package/fonts/tangerine/svg/upper_S.svg +7 -0
  718. package/fonts/tangerine/svg/upper_S.tsx +9 -0
  719. package/fonts/tangerine/svg/upper_T.svg +7 -0
  720. package/fonts/tangerine/svg/upper_T.tsx +9 -0
  721. package/fonts/tangerine/svg/upper_U.svg +12 -0
  722. package/fonts/tangerine/svg/upper_U.tsx +14 -0
  723. package/fonts/tangerine/svg/upper_V.svg +12 -0
  724. package/fonts/tangerine/svg/upper_V.tsx +14 -0
  725. package/fonts/tangerine/svg/upper_W.svg +17 -0
  726. package/fonts/tangerine/svg/upper_W.tsx +19 -0
  727. package/fonts/tangerine/svg/upper_X.svg +12 -0
  728. package/fonts/tangerine/svg/upper_X.tsx +14 -0
  729. package/fonts/tangerine/svg/upper_Y.svg +12 -0
  730. package/fonts/tangerine/svg/upper_Y.tsx +14 -0
  731. package/fonts/tangerine/svg/upper_Z.svg +17 -0
  732. package/fonts/tangerine/svg/upper_Z.tsx +19 -0
  733. package/fonts/tangerine/svg/v.svg +12 -0
  734. package/fonts/tangerine/svg/v.tsx +14 -0
  735. package/fonts/tangerine/svg/w.svg +25 -0
  736. package/fonts/tangerine/svg/w.tsx +27 -0
  737. package/fonts/tangerine/svg/x.svg +17 -0
  738. package/fonts/tangerine/svg/x.tsx +19 -0
  739. package/fonts/tangerine/svg/y.svg +12 -0
  740. package/fonts/tangerine/svg/y.tsx +14 -0
  741. package/fonts/tangerine/svg/z.svg +20 -0
  742. package/fonts/tangerine/svg/z.tsx +22 -0
  743. package/fonts/tangerine/tangerine.ttf +0 -0
  744. package/package.json +64 -6
  745. package/src/env.d.ts +10 -0
  746. package/src/index.ts +10 -0
  747. package/src/lib/TegakiRenderer.tsx +589 -0
  748. package/src/lib/drawFallbackGlyph.ts +70 -0
  749. package/src/lib/drawGlyph.ts +374 -0
  750. package/src/lib/effects.ts +56 -0
  751. package/src/lib/textLayout.ts +114 -0
  752. package/src/lib/timeline.ts +65 -0
  753. package/src/lib/utils.ts +22 -0
  754. package/src/types.test.ts +92 -0
  755. package/src/types.ts +114 -0
  756. package/index.js +0 -1
package/CHANGELOG.md ADDED
@@ -0,0 +1,19 @@
1
+ # tegaki
2
+
3
+ ## 0.2.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`4f5c639`](https://github.com/KurtGokhan/tegaki/commit/4f5c639799056093a8797dbb6a84cd6989500811) Thanks [@KurtGokhan](https://github.com/KurtGokhan)! - changeset fix
8
+
9
+ ## 0.2.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [`1b079f5`](https://github.com/KurtGokhan/tegaki/commit/1b079f5dd6cb174b9b272c5e217dd1df1e5c0b12) Thanks [@KurtGokhan](https://github.com/KurtGokhan)! - initial release
14
+
15
+ ## 0.2.0
16
+
17
+ ### Minor Changes
18
+
19
+ - [`273bd36`](https://github.com/KurtGokhan/tegaki/commit/273bd36ece40ad3629aad2f62d3bcf3849a59cf0) Thanks [@KurtGokhan](https://github.com/KurtGokhan)! - Beta release of Tegaki, a handwriting animation library for JavaScript and React. This release includes basic support for rendering handwriting animations, as well as a browser based animation generator. Future updates will focus on improving stroke orders for better natural handwriting estimation. We welcome feedback and contributions from the community to help make Tegaki even better!
@@ -0,0 +1,67 @@
1
+ # Bundled Font Licenses
2
+
3
+ The `tegaki` package includes pre-generated bundles for the following fonts.
4
+ All fonts are licensed under the [SIL Open Font License, Version 1.1](https://openfontlicense.org/).
5
+
6
+ ## Caveat
7
+
8
+ - **Designer**: Impallari Type
9
+ - **Copyright**: Copyright 2014 The Caveat Project Authors (https://github.com/googlefonts/caveat)
10
+ - **License**: SIL Open Font License, Version 1.1
11
+
12
+ ## Italianno
13
+
14
+ - **Designer**: Robert Leuschke
15
+ - **Copyright**: Copyright 2009 The Italianno Project Authors (https://github.com/googlefonts/italianno)
16
+ - **License**: SIL Open Font License, Version 1.1
17
+
18
+ ## Tangerine
19
+
20
+ - **Designer**: Toshi Omagari
21
+ - **Copyright**: Copyright (c) 2010 by Toshi Omagari
22
+ - **License**: SIL Open Font License, Version 1.1
23
+
24
+ ## Parisienne
25
+
26
+ - **Designer**: Brian J. Bonislawsky (Astigmatic)
27
+ - **Copyright**: Copyright (c) 2012 by Brian J. Bonislawsky DBA Astigmatic (AOETI)
28
+ - **License**: SIL Open Font License, Version 1.1
29
+
30
+ ---
31
+
32
+ ## SIL Open Font License, Version 1.1
33
+
34
+ Permission is hereby granted, free of charge, to any person obtaining a copy of
35
+ the Font Software, to use, study, copy, merge, embed, modify, redistribute, and
36
+ sell modified and unmodified copies of the Font Software, subject to the
37
+ following conditions:
38
+
39
+ 1. Neither the Font Software nor any of its individual components, in Original
40
+ or Modified Versions, may be sold by itself.
41
+
42
+ 2. Original or Modified Versions of the Font Software may be bundled,
43
+ redistributed and/or sold with any software, provided that each copy contains
44
+ the above copyright notice and this license. These can be included either as
45
+ stand-alone text files, human-readable headers or in the appropriate
46
+ machine-readable metadata fields within text or binary files as long as those
47
+ fields can be easily viewed by the user.
48
+
49
+ 3. No Modified Version of the Font Software may use the Reserved Font Name(s)
50
+ unless explicit written permission is granted by the corresponding Copyright
51
+ Holder.
52
+
53
+ 4. The Font Software, modified or unmodified, in part or in whole, must be
54
+ distributed entirely under this license, and must not be distributed under
55
+ any other license.
56
+
57
+ 5. The Font Software may not be used in products or activities that are illegal
58
+ or harmful, or promote illegal or harmful actions.
59
+
60
+ THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
61
+ IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF MERCHANTABILITY, FITNESS
62
+ FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF COPYRIGHT, PATENT, TRADEMARK, OR
63
+ OTHER RIGHT. IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM,
64
+ DAMAGES OR OTHER LIABILITY, INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL,
65
+ OR CONSEQUENTIAL DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
66
+ ARISING FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM OTHER
67
+ DEALINGS IN THE FONT SOFTWARE.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Gokhan Kurt
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,261 @@
1
+ <p align="center">
2
+ <img src="media/tegaki-card.png" alt="Tegaki" width="640" />
3
+ </p>
4
+
5
+ <h3 align="center">Handwriting animation for any font</h3>
6
+
7
+ <p align="center">
8
+ Tegaki (手書き) generates stroke data from fonts and renders animated handwriting in React.<br />
9
+ No manual path authoring. No native dependencies. Just pick a font.
10
+ </p>
11
+
12
+ <p align="center">
13
+ <a href="https://www.npmjs.com/package/tegaki"><img src="https://img.shields.io/npm/v/tegaki" alt="npm" /></a>
14
+ <a href="https://github.com/KurtGokhan/tegaki/blob/main/LICENSE"><img src="https://img.shields.io/npm/l/tegaki" alt="license" /></a>
15
+ </p>
16
+
17
+ ---
18
+
19
+ ## How it works
20
+
21
+ **1. Generate** a font bundle from any Google Font (or a local `.ttf`):
22
+
23
+ ```bash
24
+ npx tegaki-generator generate "Caveat"
25
+ ```
26
+
27
+ Each glyph is run through a processing pipeline — flatten bezier curves, rasterize, skeletonize via Zhang-Suen thinning, trace polylines, compute stroke widths via distance transform, determine stroke order — and the result is a set of animated SVGs with timing data.
28
+
29
+ **2. Render** the animated text in React:
30
+
31
+ ```tsx
32
+ import { TegakiRenderer } from 'tegaki';
33
+ import font from './output/caveat/bundle.ts';
34
+
35
+ await font.registerFontFace();
36
+
37
+ function App() {
38
+ return (
39
+ <TegakiRenderer font={font} style={{ fontSize: '48px' }}>
40
+ Hello World
41
+ </TegakiRenderer>
42
+ );
43
+ }
44
+ ```
45
+
46
+ The text draws itself stroke by stroke, with accurate widths and natural timing.
47
+
48
+ ## Install
49
+
50
+ ```bash
51
+ npm install tegaki
52
+ ```
53
+
54
+ The generator is a separate package, only needed at build time:
55
+
56
+ ```bash
57
+ npm install -D tegaki-generator
58
+ ```
59
+
60
+ ## Built-in fonts
61
+
62
+ Tegaki ships with pre-generated bundles for four Google Fonts, ready to use without running the generator:
63
+
64
+ - **Caveat** — `tegaki/fonts/caveat`
65
+ - **Italianno** — `tegaki/fonts/italianno`
66
+ - **Tangerine** — `tegaki/fonts/tangerine`
67
+ - **Parisienne** — `tegaki/fonts/parisienne`
68
+
69
+ ```tsx
70
+ import { TegakiRenderer } from 'tegaki';
71
+ import caveat from 'tegaki/fonts/caveat';
72
+
73
+ await caveat.registerFontFace();
74
+
75
+ function App() {
76
+ return (
77
+ <TegakiRenderer font={caveat} style={{ fontSize: '48px' }}>
78
+ Hello World
79
+ </TegakiRenderer>
80
+ );
81
+ }
82
+ ```
83
+
84
+ These bundles include all printable ASCII characters (letters, digits, punctuation). For other fonts, use the generator.
85
+
86
+ All bundled fonts are licensed under the [SIL Open Font License](https://openfontlicense.org/). See [FONTS-LICENSE.md](packages/renderer/FONTS-LICENSE.md) for full attribution.
87
+
88
+ ## `<TegakiRenderer>` props
89
+
90
+ | Prop | Type | Default | Description |
91
+ |------|------|---------|-------------|
92
+ | `font` | `TegakiBundle` | — | Font bundle with animated glyph SVGs |
93
+ | `text` | `string` | — | Text to animate (or pass as `children`) |
94
+ | `children` | `string \| number` | — | Text content, coerced to string |
95
+ | `time` | `TimeControlProp` | — | Time control mode (see below) |
96
+ | `onComplete` | `() => void` | — | Called when animation reaches the end |
97
+ | `mode` | `'svg' \| 'canvas'` | `'svg'` | Rendering mode |
98
+ | `showOverlay` | `boolean` | `false` | Show debug text overlay |
99
+
100
+ Plus all standard `<div>` props (`className`, `style`, etc.).
101
+
102
+ ### Time control modes
103
+
104
+ The `time` prop accepts three modes via a discriminated union:
105
+
106
+ | Value | Mode | Description |
107
+ |-------|------|-------------|
108
+ | *omitted* | Uncontrolled | Auto-plays with default settings |
109
+ | `number` | Controlled | Shorthand for `{ mode: 'controlled', value: n }` |
110
+ | `'css'` | CSS | Shorthand for `{ mode: 'css' }` |
111
+ | `{ mode: 'controlled', value }` | Controlled | You drive the time directly |
112
+ | `{ mode: 'uncontrolled', ... }` | Uncontrolled | Component manages playback |
113
+ | `{ mode: 'css' }` | CSS | Driven by `--tegaki-progress` CSS property |
114
+
115
+ #### Uncontrolled
116
+
117
+ The component manages its own playback — auto-plays on mount, responds to `speed`, `playing`, and `loop`.
118
+
119
+ ```tsx
120
+ // Default: auto-play at 1x
121
+ <TegakiRenderer font={font}>Hello</TegakiRenderer>
122
+
123
+ // With options
124
+ <TegakiRenderer font={font} time={{ mode: 'uncontrolled', speed: 2, loop: true }}>
125
+ Hello
126
+ </TegakiRenderer>
127
+ ```
128
+
129
+ | Option | Type | Default | Description |
130
+ |--------|------|---------|-------------|
131
+ | `initialTime` | `number` | `0` | Starting time in seconds |
132
+ | `speed` | `number` | `1` | Playback speed multiplier |
133
+ | `playing` | `boolean` | `true` | Whether animation is playing |
134
+ | `loop` | `boolean` | `false` | Restart when animation ends |
135
+ | `onTimeChange` | `(time: number) => void` | — | Called each frame with current time |
136
+
137
+ #### Controlled
138
+
139
+ You provide the exact time. Useful for syncing with a slider, streaming text, or external state.
140
+
141
+ ```tsx
142
+ <TegakiRenderer font={font} time={currentTime}>Hello</TegakiRenderer>
143
+ ```
144
+
145
+ #### CSS
146
+
147
+ Animation progress is driven by the `--tegaki-progress` CSS custom property (0–1). This enables pure-CSS control via animations, transitions, or scroll-timeline — no JS bridge needed.
148
+
149
+ ```tsx
150
+ <TegakiRenderer font={font} time="css" style={...}>Hello</TegakiRenderer>
151
+ ```
152
+
153
+ ```css
154
+ /* Example: scroll-driven animation */
155
+ .scroll-container {
156
+ overflow-x: scroll;
157
+ scroll-timeline: --tegaki inline;
158
+ }
159
+
160
+ .tegaki-wrapper {
161
+ animation: tegaki-reveal linear both;
162
+ animation-timeline: --tegaki;
163
+ }
164
+
165
+ @keyframes tegaki-reveal {
166
+ from { --tegaki-progress: 0; }
167
+ to { --tegaki-progress: 1; }
168
+ }
169
+ ```
170
+
171
+ ### CSS custom properties
172
+
173
+ The component exposes these CSS custom properties on its root element in all modes:
174
+
175
+ | Property | Direction | Description |
176
+ |----------|-----------|-------------|
177
+ | `--tegaki-duration` | Output | Total animation length in seconds |
178
+ | `--tegaki-time` | Output | Current time in seconds |
179
+ | `--tegaki-progress` | Input (CSS mode) / Output | Current progress (0–1) |
180
+
181
+ All three are registered via `CSS.registerProperty` as `<number>` with `inherits: true`, making them animatable and transitionable.
182
+
183
+ ### `computeTimeline(text, font)`
184
+
185
+ Returns timing info for a string without rendering anything:
186
+
187
+ ```ts
188
+ import { computeTimeline } from 'tegaki';
189
+
190
+ const { entries, totalDuration } = computeTimeline('Hello', font);
191
+ // totalDuration: 2.45 (seconds)
192
+ // entries: [{ char: 'H', offset: 0, duration: 0.52, hasSvg: true }, ...]
193
+ ```
194
+
195
+ ## Generating font bundles
196
+
197
+ ```bash
198
+ npx tegaki-generator generate [family] [options]
199
+ ```
200
+
201
+ | Option | Description | Default |
202
+ |--------|-------------|---------|
203
+ | `family` | Google Fonts family name | `Caveat` |
204
+ | `-o, --output` | Output directory | `output/<family>` |
205
+ | `-r, --resolution` | Bitmap resolution for skeletonization | `400` |
206
+ | `-c, --chars` | Characters to process | printable ASCII |
207
+ | `-f, --force` | Re-download cached font | `false` |
208
+ | `-d, --debug` | Write intermediate visualizations | `false` |
209
+ | `-l, --lineCap` | Stroke cap style (`auto`/`round`/`butt`/`square`) | `auto` |
210
+ | `--skeletonMethod` | Algorithm (`zhang-suen` / `guo-hall` / `lee` / `medial-axis` / `thin` / `voronoi`) | `zhang-suen` |
211
+
212
+ Output structure:
213
+
214
+ ```
215
+ output/caveat/
216
+ font.json # Full glyph data (coordinates, strokes, timing)
217
+ caveat.ttf # Original font file
218
+ bundle.ts # Import this in your app
219
+ svg/
220
+ A.svg # Animated SVG per glyph
221
+ A.tsx # React component per glyph
222
+ ...
223
+ ```
224
+
225
+ Import `bundle.ts` — it bundles all glyph components and font metadata into a `TegakiBundle`.
226
+
227
+ ## Pipeline
228
+
229
+ The entire processing pipeline is pure TypeScript — no canvas, no native image libraries, no Python. It runs identically in Node/Bun and in the browser.
230
+
231
+ ```
232
+ Font file
233
+ → Flatten bezier curves to polylines
234
+ → Rasterize to binary bitmap (scanline fill, nonzero winding)
235
+ → Skeletonize to 1px-wide skeleton (Zhang-Suen thinning)
236
+ → Trace skeleton into polylines (spur pruning + RDP simplification)
237
+ → Compute stroke width at each point (distance transform)
238
+ → Order strokes top-to-bottom, left-to-right
239
+ → Generate animated SVG with per-stroke timing
240
+ ```
241
+
242
+ ## Packages
243
+
244
+ | Package | npm | Description |
245
+ |---------|-----|-------------|
246
+ | [`tegaki`](packages/renderer) | [![npm](https://img.shields.io/npm/v/tegaki)](https://www.npmjs.com/package/tegaki) | React component for animated handwriting |
247
+ | [`tegaki-generator`](packages/generator) | [![npm](https://img.shields.io/npm/v/tegaki-generator)](https://www.npmjs.com/package/tegaki-generator) | CLI that generates font bundles |
248
+ | [`@tegaki/website`](packages/website) | — | Interactive preview app |
249
+
250
+ ## Contributing
251
+
252
+ ```bash
253
+ bun install # Install dependencies
254
+ bun dev # Start dev server (website)
255
+ bun start # Run the CLI (generator)
256
+ bun checks # Lint + typecheck + tests
257
+ ```
258
+
259
+ ## License
260
+
261
+ [MIT](LICENSE)
@@ -0,0 +1,257 @@
1
+ import * as _$react from "react";
2
+ import { ComponentProps } from "react";
3
+ import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
+
5
+ //#region src/types.d.ts
6
+ type LineCap = 'round' | 'butt' | 'square';
7
+ interface Point {
8
+ x: number;
9
+ y: number;
10
+ }
11
+ interface TimedPoint extends Point {
12
+ t: number;
13
+ width: number;
14
+ }
15
+ interface BBox {
16
+ x1: number;
17
+ y1: number;
18
+ x2: number;
19
+ y2: number;
20
+ }
21
+ interface Stroke {
22
+ points: TimedPoint[];
23
+ order: number;
24
+ length: number;
25
+ animationDuration: number;
26
+ delay: number;
27
+ }
28
+ interface GlyphData {
29
+ char: string;
30
+ unicode: number;
31
+ advanceWidth: number;
32
+ boundingBox: BBox;
33
+ path: string;
34
+ skeleton: Point[][];
35
+ strokes: Stroke[];
36
+ totalLength: number;
37
+ totalAnimationDuration: number;
38
+ }
39
+ interface FontOutput {
40
+ font: {
41
+ family: string;
42
+ style: string;
43
+ unitsPerEm: number;
44
+ ascender: number;
45
+ descender: number;
46
+ lineCap: LineCap;
47
+ };
48
+ glyphs: Record<string, GlyphData>;
49
+ }
50
+ interface PathCommand {
51
+ type: 'M' | 'L' | 'Q' | 'C' | 'Z';
52
+ x: number;
53
+ y: number;
54
+ x1?: number;
55
+ y1?: number;
56
+ x2?: number;
57
+ y2?: number;
58
+ }
59
+ interface TegakiGlyphData {
60
+ advanceWidth: number;
61
+ strokes: {
62
+ points: {
63
+ x: number;
64
+ y: number;
65
+ t: number;
66
+ width: number;
67
+ }[];
68
+ delay: number;
69
+ animationDuration: number;
70
+ }[];
71
+ }
72
+ type BaseEffectConfig = {
73
+ enabled?: boolean;
74
+ };
75
+ /** A length value: plain number is pixels, string `"${number}em"` is relative to font size. */
76
+ type CSSLength = number | `${number}em`;
77
+ type TegakiEffectConfigs = {
78
+ glow: BaseEffectConfig & {
79
+ radius?: CSSLength;
80
+ color?: string;
81
+ offsetX?: number;
82
+ offsetY?: number;
83
+ };
84
+ wobble: BaseEffectConfig & {
85
+ amplitude?: number;
86
+ frequency?: number;
87
+ mode?: 'sine' | 'noise';
88
+ };
89
+ pressureWidth: BaseEffectConfig & {
90
+ strength?: number;
91
+ };
92
+ taper: BaseEffectConfig & {
93
+ startLength?: number;
94
+ endLength?: number;
95
+ };
96
+ gradient: BaseEffectConfig & {
97
+ colors?: string[] | 'rainbow';
98
+ saturation?: number;
99
+ lightness?: number;
100
+ };
101
+ };
102
+ type TegakiEffectName = keyof TegakiEffectConfigs;
103
+ /** Effects that can only appear once (cannot be used with custom keys). */
104
+ type TegakiSingletonEffectName = 'pressureWidth' | 'wobble' | 'taper' | 'gradient';
105
+ /** Effects that can be duplicated with custom keys. */
106
+ type TegakiMultiEffectName = Exclude<TegakiEffectName, TegakiSingletonEffectName>;
107
+ type TegakiCustomEffect = { [K in TegakiMultiEffectName]: TegakiEffectConfigs[K] & {
108
+ effect: K;
109
+ order?: number;
110
+ } }[TegakiMultiEffectName];
111
+ /** Validates an effects object: known keys infer `effect`, unknown keys require it (singleton effects excluded). */
112
+ type TegakiEffects<T> = { [K in keyof T]: K extends TegakiEffectName ? (TegakiEffectConfigs[K] & {
113
+ effect?: K;
114
+ order?: number;
115
+ }) | boolean : TegakiCustomEffect | boolean };
116
+ interface TegakiBundle {
117
+ family: string;
118
+ lineCap: LineCap;
119
+ fontUrl: string;
120
+ unitsPerEm: number;
121
+ ascender: number;
122
+ descender: number;
123
+ glyphs: Record<string, _$react.FC<_$react.SVGProps<SVGSVGElement>>>;
124
+ glyphData?: Record<string, TegakiGlyphData>;
125
+ glyphTimings: Record<string, number>;
126
+ registerFontFace: () => Promise<void>;
127
+ }
128
+ //#endregion
129
+ //#region src/lib/effects.d.ts
130
+ interface ResolvedEffect<K extends TegakiEffectName = TegakiEffectName> {
131
+ effect: K;
132
+ order: number;
133
+ config: TegakiEffectConfigs[K];
134
+ }
135
+ //#endregion
136
+ //#region src/lib/drawGlyph.d.ts
137
+ interface GlyphPosition {
138
+ /** X offset in CSS pixels */
139
+ x: number;
140
+ /** Y offset in CSS pixels (top of em square) */
141
+ y: number;
142
+ /** Font size in CSS pixels */
143
+ fontSize: number;
144
+ /** Units per em from the font */
145
+ unitsPerEm: number;
146
+ /** Font ascender in font units */
147
+ ascender: number;
148
+ /** Font descender in font units (negative) */
149
+ descender: number;
150
+ }
151
+ /**
152
+ * Draw a single glyph's strokes onto a canvas context, animated up to `localTime`.
153
+ * `localTime` is seconds relative to this glyph's start (0 = glyph begins).
154
+ */
155
+ declare function drawGlyph(ctx: CanvasRenderingContext2D, glyph: TegakiGlyphData, pos: GlyphPosition, localTime: number, lineCap: LineCap, color: string, effects?: ResolvedEffect[], seed?: number, segmentSize?: number): void;
156
+ //#endregion
157
+ //#region src/lib/timeline.d.ts
158
+ interface TimelineConfig {
159
+ /** Pause between glyphs (seconds). Default: `0.1` */
160
+ glyphGap?: number;
161
+ /** Pause after a space character (seconds). Default: `0.15` */
162
+ wordGap?: number;
163
+ /** Pause after a newline / line break (seconds). Default: `0.3` */
164
+ lineGap?: number;
165
+ /** Duration for characters without glyph SVGs (seconds). Default: `0.2` */
166
+ unknownDuration?: number;
167
+ }
168
+ interface TimelineEntry {
169
+ char: string;
170
+ offset: number;
171
+ duration: number;
172
+ hasSvg: boolean;
173
+ }
174
+ interface Timeline {
175
+ entries: TimelineEntry[];
176
+ totalDuration: number;
177
+ }
178
+ declare function computeTimeline(text: string, font: TegakiBundle, config?: TimelineConfig): Timeline;
179
+ //#endregion
180
+ //#region src/lib/utils.d.ts
181
+ type Coercible = string | number | boolean | null | undefined | readonly Coercible[];
182
+ //#endregion
183
+ //#region src/lib/TegakiRenderer.d.ts
184
+ type TimeControlMode = {
185
+ controlled: {
186
+ mode: 'controlled'; /** Current time in seconds. */
187
+ value: number;
188
+ };
189
+ uncontrolled: {
190
+ mode: 'uncontrolled'; /** Initial time in seconds. Default: `0` */
191
+ initialTime?: number; /** Playback speed multiplier. Default: `1` */
192
+ speed?: number; /** Whether animation is playing. Default: `true` */
193
+ playing?: boolean; /** Loop animation when it reaches the end. Default: `false` */
194
+ loop?: boolean;
195
+ /**
196
+ * Catch-up strength. When positive, playback speeds up when there is a
197
+ * large amount of remaining animation and decays back to normal gradually.
198
+ * `0` disables catch-up (default). Higher values ramp up more aggressively.
199
+ * Typical range: `0.2` – `2`.
200
+ */
201
+ catchUp?: number; /** Called on every frame with the current time. */
202
+ onTimeChange?: (time: number) => void;
203
+ };
204
+ css: {
205
+ mode: 'css';
206
+ };
207
+ };
208
+ /**
209
+ * A plain number is shorthand for `{ mode: 'controlled', value: number }`.
210
+ * `'css'` is shorthand for `{ mode: 'css' }`.
211
+ * Omit for uncontrolled mode with default settings.
212
+ */
213
+ type TimeControlProp = null | undefined | number | 'css' | TimeControlMode[keyof TimeControlMode];
214
+ interface TegakiRendererProps<E extends TegakiEffects<E> = Record<string, never>> extends Omit<ComponentProps<'div'>, 'children'> {
215
+ /** TegakiBundle with font data and animated glyph SVGs. */
216
+ font?: TegakiBundle;
217
+ /** Text to animate. Takes precedence over children. */
218
+ text?: string;
219
+ /** Children coerced to string. Strings and numbers are kept; everything else is ignored. */
220
+ children?: Coercible;
221
+ /**
222
+ * Time control. Accepts a number (controlled shorthand), or an object
223
+ * specifying the mode (`'controlled'`, `'uncontrolled'`, or `'css'`).
224
+ * Omit for uncontrolled playback with default settings.
225
+ */
226
+ time?: TimeControlProp;
227
+ /** Called once when the animation reaches the end of the timeline. */
228
+ onComplete?: () => void;
229
+ /** Rendering mode. `'canvas'` draws strokes on a `<canvas>` (requires
230
+ * `font.glyphData`), `'svg'` uses animated SVG elements. Default: `'canvas'` */
231
+ mode?: 'canvas' | 'svg';
232
+ /** Visual effects applied during canvas rendering. */
233
+ effects?: E;
234
+ /** Maximum segment size in pixels for effect subdivision. Lower values produce
235
+ * smoother effects but cost more to render. Default: `2` */
236
+ segmentSize?: number;
237
+ /** Timeline timing configuration (gap between glyphs, words, lines, etc.). */
238
+ timing?: TimelineConfig;
239
+ /** Show debug text overlay. */
240
+ showOverlay?: boolean;
241
+ }
242
+ declare function TegakiRenderer<const E extends TegakiEffects<E> = Record<string, never>>({
243
+ font,
244
+ text,
245
+ children,
246
+ time: timeProp,
247
+ onComplete,
248
+ mode,
249
+ effects,
250
+ segmentSize,
251
+ timing,
252
+ showOverlay,
253
+ ...props
254
+ }: TegakiRendererProps<E>): _$react_jsx_runtime0.JSX.Element;
255
+ //#endregion
256
+ export { BBox, CSSLength, FontOutput, GlyphData, LineCap, PathCommand, Point, Stroke, TegakiBundle, type TegakiEffectConfigs, TegakiEffectName, type TegakiEffects, TegakiGlyphData, TegakiMultiEffectName, TegakiRenderer, type TegakiRendererProps, TegakiSingletonEffectName, type TimeControlMode, type TimeControlProp, TimedPoint, type Timeline, type TimelineConfig, computeTimeline, drawGlyph };
257
+ //# sourceMappingURL=index.d.mts.map