egatari 0.0.0-stage → 0.6.4

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 (2302) hide show
  1. package/CHANGELOG.md +1071 -0
  2. package/LICENSE +21 -0
  3. package/NOTICE +73 -0
  4. package/README.ja.md +340 -0
  5. package/README.md +339 -2
  6. package/SECURITY.md +74 -0
  7. package/bin/egatari.mjs +162 -0
  8. package/components.lock.json +2972 -0
  9. package/components2.lock.json +1411 -0
  10. package/fonts/@fontsource/andika/400-italic.css +49 -0
  11. package/fonts/@fontsource/andika/400.css +49 -0
  12. package/fonts/@fontsource/andika/700-italic.css +49 -0
  13. package/fonts/@fontsource/andika/700.css +49 -0
  14. package/fonts/@fontsource/andika/LICENSE +93 -0
  15. package/fonts/@fontsource/andika/files/andika-cyrillic-400-italic.woff2 +0 -0
  16. package/fonts/@fontsource/andika/files/andika-cyrillic-400-normal.woff2 +0 -0
  17. package/fonts/@fontsource/andika/files/andika-cyrillic-700-italic.woff2 +0 -0
  18. package/fonts/@fontsource/andika/files/andika-cyrillic-700-normal.woff2 +0 -0
  19. package/fonts/@fontsource/andika/files/andika-cyrillic-ext-400-italic.woff2 +0 -0
  20. package/fonts/@fontsource/andika/files/andika-cyrillic-ext-400-normal.woff2 +0 -0
  21. package/fonts/@fontsource/andika/files/andika-cyrillic-ext-700-italic.woff2 +0 -0
  22. package/fonts/@fontsource/andika/files/andika-cyrillic-ext-700-normal.woff2 +0 -0
  23. package/fonts/@fontsource/andika/files/andika-latin-400-italic.woff2 +0 -0
  24. package/fonts/@fontsource/andika/files/andika-latin-400-normal.woff2 +0 -0
  25. package/fonts/@fontsource/andika/files/andika-latin-700-italic.woff2 +0 -0
  26. package/fonts/@fontsource/andika/files/andika-latin-700-normal.woff2 +0 -0
  27. package/fonts/@fontsource/andika/files/andika-latin-ext-400-italic.woff2 +0 -0
  28. package/fonts/@fontsource/andika/files/andika-latin-ext-400-normal.woff2 +0 -0
  29. package/fonts/@fontsource/andika/files/andika-latin-ext-700-italic.woff2 +0 -0
  30. package/fonts/@fontsource/andika/files/andika-latin-ext-700-normal.woff2 +0 -0
  31. package/fonts/@fontsource/andika/files/andika-vietnamese-400-italic.woff2 +0 -0
  32. package/fonts/@fontsource/andika/files/andika-vietnamese-400-normal.woff2 +0 -0
  33. package/fonts/@fontsource/andika/files/andika-vietnamese-700-italic.woff2 +0 -0
  34. package/fonts/@fontsource/andika/files/andika-vietnamese-700-normal.woff2 +0 -0
  35. package/fonts/@fontsource/andika/package.json +6 -0
  36. package/fonts/@fontsource/atkinson-hyperlegible-next/400-italic.css +19 -0
  37. package/fonts/@fontsource/atkinson-hyperlegible-next/400.css +19 -0
  38. package/fonts/@fontsource/atkinson-hyperlegible-next/700-italic.css +19 -0
  39. package/fonts/@fontsource/atkinson-hyperlegible-next/700.css +19 -0
  40. package/fonts/@fontsource/atkinson-hyperlegible-next/LICENSE +93 -0
  41. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-400-italic.woff2 +0 -0
  42. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-400-normal.woff2 +0 -0
  43. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-700-italic.woff2 +0 -0
  44. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-700-normal.woff2 +0 -0
  45. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-ext-400-italic.woff2 +0 -0
  46. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-ext-400-normal.woff2 +0 -0
  47. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-ext-700-italic.woff2 +0 -0
  48. package/fonts/@fontsource/atkinson-hyperlegible-next/files/atkinson-hyperlegible-next-latin-ext-700-normal.woff2 +0 -0
  49. package/fonts/@fontsource/atkinson-hyperlegible-next/package.json +6 -0
  50. package/fonts/@fontsource/biz-udpgothic/400.css +1239 -0
  51. package/fonts/@fontsource/biz-udpgothic/700.css +1239 -0
  52. package/fonts/@fontsource/biz-udpgothic/LICENSE +93 -0
  53. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-0-400-normal.woff2 +0 -0
  54. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-0-700-normal.woff2 +0 -0
  55. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-1-400-normal.woff2 +0 -0
  56. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-1-700-normal.woff2 +0 -0
  57. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-10-400-normal.woff2 +0 -0
  58. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-10-700-normal.woff2 +0 -0
  59. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-100-400-normal.woff2 +0 -0
  60. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-100-700-normal.woff2 +0 -0
  61. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-101-400-normal.woff2 +0 -0
  62. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-101-700-normal.woff2 +0 -0
  63. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-102-400-normal.woff2 +0 -0
  64. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-102-700-normal.woff2 +0 -0
  65. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-103-400-normal.woff2 +0 -0
  66. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-103-700-normal.woff2 +0 -0
  67. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-104-400-normal.woff2 +0 -0
  68. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-104-700-normal.woff2 +0 -0
  69. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-105-400-normal.woff2 +0 -0
  70. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-105-700-normal.woff2 +0 -0
  71. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-106-400-normal.woff2 +0 -0
  72. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-106-700-normal.woff2 +0 -0
  73. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-107-400-normal.woff2 +0 -0
  74. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-107-700-normal.woff2 +0 -0
  75. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-108-400-normal.woff2 +0 -0
  76. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-108-700-normal.woff2 +0 -0
  77. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-109-400-normal.woff2 +0 -0
  78. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-109-700-normal.woff2 +0 -0
  79. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-11-400-normal.woff2 +0 -0
  80. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-11-700-normal.woff2 +0 -0
  81. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-110-400-normal.woff2 +0 -0
  82. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-110-700-normal.woff2 +0 -0
  83. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-111-400-normal.woff2 +0 -0
  84. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-111-700-normal.woff2 +0 -0
  85. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-112-400-normal.woff2 +0 -0
  86. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-112-700-normal.woff2 +0 -0
  87. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-113-400-normal.woff2 +0 -0
  88. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-113-700-normal.woff2 +0 -0
  89. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-114-400-normal.woff2 +0 -0
  90. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-114-700-normal.woff2 +0 -0
  91. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-115-400-normal.woff2 +0 -0
  92. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-115-700-normal.woff2 +0 -0
  93. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-116-400-normal.woff2 +0 -0
  94. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-116-700-normal.woff2 +0 -0
  95. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-117-400-normal.woff2 +0 -0
  96. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-117-700-normal.woff2 +0 -0
  97. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-118-400-normal.woff2 +0 -0
  98. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-118-700-normal.woff2 +0 -0
  99. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-119-400-normal.woff2 +0 -0
  100. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-119-700-normal.woff2 +0 -0
  101. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-12-400-normal.woff2 +0 -0
  102. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-12-700-normal.woff2 +0 -0
  103. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-13-400-normal.woff2 +0 -0
  104. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-13-700-normal.woff2 +0 -0
  105. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-14-400-normal.woff2 +0 -0
  106. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-14-700-normal.woff2 +0 -0
  107. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-15-400-normal.woff2 +0 -0
  108. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-15-700-normal.woff2 +0 -0
  109. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-16-400-normal.woff2 +0 -0
  110. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-16-700-normal.woff2 +0 -0
  111. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-17-400-normal.woff2 +0 -0
  112. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-17-700-normal.woff2 +0 -0
  113. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-18-400-normal.woff2 +0 -0
  114. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-18-700-normal.woff2 +0 -0
  115. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-19-400-normal.woff2 +0 -0
  116. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-19-700-normal.woff2 +0 -0
  117. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-2-400-normal.woff2 +0 -0
  118. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-2-700-normal.woff2 +0 -0
  119. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-20-400-normal.woff2 +0 -0
  120. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-20-700-normal.woff2 +0 -0
  121. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-21-400-normal.woff2 +0 -0
  122. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-21-700-normal.woff2 +0 -0
  123. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-22-400-normal.woff2 +0 -0
  124. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-22-700-normal.woff2 +0 -0
  125. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-23-400-normal.woff2 +0 -0
  126. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-23-700-normal.woff2 +0 -0
  127. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-24-400-normal.woff2 +0 -0
  128. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-24-700-normal.woff2 +0 -0
  129. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-25-400-normal.woff2 +0 -0
  130. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-25-700-normal.woff2 +0 -0
  131. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-26-400-normal.woff2 +0 -0
  132. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-26-700-normal.woff2 +0 -0
  133. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-27-400-normal.woff2 +0 -0
  134. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-27-700-normal.woff2 +0 -0
  135. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-28-400-normal.woff2 +0 -0
  136. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-28-700-normal.woff2 +0 -0
  137. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-29-400-normal.woff2 +0 -0
  138. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-29-700-normal.woff2 +0 -0
  139. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-3-400-normal.woff2 +0 -0
  140. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-3-700-normal.woff2 +0 -0
  141. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-30-400-normal.woff2 +0 -0
  142. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-30-700-normal.woff2 +0 -0
  143. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-31-400-normal.woff2 +0 -0
  144. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-31-700-normal.woff2 +0 -0
  145. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-32-400-normal.woff2 +0 -0
  146. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-32-700-normal.woff2 +0 -0
  147. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-33-400-normal.woff2 +0 -0
  148. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-33-700-normal.woff2 +0 -0
  149. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-34-400-normal.woff2 +0 -0
  150. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-34-700-normal.woff2 +0 -0
  151. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-35-400-normal.woff2 +0 -0
  152. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-35-700-normal.woff2 +0 -0
  153. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-36-400-normal.woff2 +0 -0
  154. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-36-700-normal.woff2 +0 -0
  155. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-37-400-normal.woff2 +0 -0
  156. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-37-700-normal.woff2 +0 -0
  157. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-38-400-normal.woff2 +0 -0
  158. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-38-700-normal.woff2 +0 -0
  159. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-39-400-normal.woff2 +0 -0
  160. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-39-700-normal.woff2 +0 -0
  161. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-4-400-normal.woff2 +0 -0
  162. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-4-700-normal.woff2 +0 -0
  163. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-40-400-normal.woff2 +0 -0
  164. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-40-700-normal.woff2 +0 -0
  165. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-41-400-normal.woff2 +0 -0
  166. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-41-700-normal.woff2 +0 -0
  167. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-42-400-normal.woff2 +0 -0
  168. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-42-700-normal.woff2 +0 -0
  169. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-43-400-normal.woff2 +0 -0
  170. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-43-700-normal.woff2 +0 -0
  171. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-44-400-normal.woff2 +0 -0
  172. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-44-700-normal.woff2 +0 -0
  173. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-45-400-normal.woff2 +0 -0
  174. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-45-700-normal.woff2 +0 -0
  175. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-46-400-normal.woff2 +0 -0
  176. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-46-700-normal.woff2 +0 -0
  177. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-47-400-normal.woff2 +0 -0
  178. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-47-700-normal.woff2 +0 -0
  179. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-48-400-normal.woff2 +0 -0
  180. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-48-700-normal.woff2 +0 -0
  181. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-49-400-normal.woff2 +0 -0
  182. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-49-700-normal.woff2 +0 -0
  183. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-5-400-normal.woff2 +0 -0
  184. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-5-700-normal.woff2 +0 -0
  185. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-50-400-normal.woff2 +0 -0
  186. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-50-700-normal.woff2 +0 -0
  187. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-51-400-normal.woff2 +0 -0
  188. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-51-700-normal.woff2 +0 -0
  189. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-52-400-normal.woff2 +0 -0
  190. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-52-700-normal.woff2 +0 -0
  191. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-53-400-normal.woff2 +0 -0
  192. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-53-700-normal.woff2 +0 -0
  193. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-54-400-normal.woff2 +0 -0
  194. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-54-700-normal.woff2 +0 -0
  195. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-55-400-normal.woff2 +0 -0
  196. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-55-700-normal.woff2 +0 -0
  197. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-56-400-normal.woff2 +0 -0
  198. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-56-700-normal.woff2 +0 -0
  199. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-57-400-normal.woff2 +0 -0
  200. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-57-700-normal.woff2 +0 -0
  201. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-58-400-normal.woff2 +0 -0
  202. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-58-700-normal.woff2 +0 -0
  203. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-59-400-normal.woff2 +0 -0
  204. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-59-700-normal.woff2 +0 -0
  205. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-6-400-normal.woff2 +0 -0
  206. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-6-700-normal.woff2 +0 -0
  207. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-60-400-normal.woff2 +0 -0
  208. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-60-700-normal.woff2 +0 -0
  209. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-61-400-normal.woff2 +0 -0
  210. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-61-700-normal.woff2 +0 -0
  211. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-62-400-normal.woff2 +0 -0
  212. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-62-700-normal.woff2 +0 -0
  213. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-63-400-normal.woff2 +0 -0
  214. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-63-700-normal.woff2 +0 -0
  215. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-64-400-normal.woff2 +0 -0
  216. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-64-700-normal.woff2 +0 -0
  217. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-65-400-normal.woff2 +0 -0
  218. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-65-700-normal.woff2 +0 -0
  219. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-66-400-normal.woff2 +0 -0
  220. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-66-700-normal.woff2 +0 -0
  221. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-67-400-normal.woff2 +0 -0
  222. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-67-700-normal.woff2 +0 -0
  223. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-68-400-normal.woff2 +0 -0
  224. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-68-700-normal.woff2 +0 -0
  225. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-69-400-normal.woff2 +0 -0
  226. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-69-700-normal.woff2 +0 -0
  227. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-7-400-normal.woff2 +0 -0
  228. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-7-700-normal.woff2 +0 -0
  229. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-70-400-normal.woff2 +0 -0
  230. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-70-700-normal.woff2 +0 -0
  231. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-71-400-normal.woff2 +0 -0
  232. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-71-700-normal.woff2 +0 -0
  233. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-72-400-normal.woff2 +0 -0
  234. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-72-700-normal.woff2 +0 -0
  235. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-73-400-normal.woff2 +0 -0
  236. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-73-700-normal.woff2 +0 -0
  237. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-74-400-normal.woff2 +0 -0
  238. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-74-700-normal.woff2 +0 -0
  239. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-75-400-normal.woff2 +0 -0
  240. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-75-700-normal.woff2 +0 -0
  241. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-76-400-normal.woff2 +0 -0
  242. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-76-700-normal.woff2 +0 -0
  243. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-77-400-normal.woff2 +0 -0
  244. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-77-700-normal.woff2 +0 -0
  245. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-78-400-normal.woff2 +0 -0
  246. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-78-700-normal.woff2 +0 -0
  247. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-79-400-normal.woff2 +0 -0
  248. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-79-700-normal.woff2 +0 -0
  249. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-8-400-normal.woff2 +0 -0
  250. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-8-700-normal.woff2 +0 -0
  251. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-80-400-normal.woff2 +0 -0
  252. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-80-700-normal.woff2 +0 -0
  253. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-81-400-normal.woff2 +0 -0
  254. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-81-700-normal.woff2 +0 -0
  255. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-82-400-normal.woff2 +0 -0
  256. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-82-700-normal.woff2 +0 -0
  257. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-83-400-normal.woff2 +0 -0
  258. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-83-700-normal.woff2 +0 -0
  259. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-84-400-normal.woff2 +0 -0
  260. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-84-700-normal.woff2 +0 -0
  261. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-85-400-normal.woff2 +0 -0
  262. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-85-700-normal.woff2 +0 -0
  263. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-86-400-normal.woff2 +0 -0
  264. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-86-700-normal.woff2 +0 -0
  265. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-87-400-normal.woff2 +0 -0
  266. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-87-700-normal.woff2 +0 -0
  267. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-88-400-normal.woff2 +0 -0
  268. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-88-700-normal.woff2 +0 -0
  269. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-89-400-normal.woff2 +0 -0
  270. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-89-700-normal.woff2 +0 -0
  271. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-9-400-normal.woff2 +0 -0
  272. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-9-700-normal.woff2 +0 -0
  273. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-90-400-normal.woff2 +0 -0
  274. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-90-700-normal.woff2 +0 -0
  275. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-91-400-normal.woff2 +0 -0
  276. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-91-700-normal.woff2 +0 -0
  277. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-92-400-normal.woff2 +0 -0
  278. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-92-700-normal.woff2 +0 -0
  279. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-93-400-normal.woff2 +0 -0
  280. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-93-700-normal.woff2 +0 -0
  281. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-94-400-normal.woff2 +0 -0
  282. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-94-700-normal.woff2 +0 -0
  283. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-95-400-normal.woff2 +0 -0
  284. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-95-700-normal.woff2 +0 -0
  285. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-96-400-normal.woff2 +0 -0
  286. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-96-700-normal.woff2 +0 -0
  287. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-97-400-normal.woff2 +0 -0
  288. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-97-700-normal.woff2 +0 -0
  289. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-98-400-normal.woff2 +0 -0
  290. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-98-700-normal.woff2 +0 -0
  291. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-99-400-normal.woff2 +0 -0
  292. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-99-700-normal.woff2 +0 -0
  293. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-cyrillic-400-normal.woff2 +0 -0
  294. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-cyrillic-700-normal.woff2 +0 -0
  295. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-greek-ext-400-normal.woff2 +0 -0
  296. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-greek-ext-700-normal.woff2 +0 -0
  297. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-latin-400-normal.woff2 +0 -0
  298. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-latin-700-normal.woff2 +0 -0
  299. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-latin-ext-400-normal.woff2 +0 -0
  300. package/fonts/@fontsource/biz-udpgothic/files/biz-udpgothic-latin-ext-700-normal.woff2 +0 -0
  301. package/fonts/@fontsource/biz-udpgothic/package.json +6 -0
  302. package/fonts/@fontsource/biz-udpmincho/400.css +1239 -0
  303. package/fonts/@fontsource/biz-udpmincho/700.css +1239 -0
  304. package/fonts/@fontsource/biz-udpmincho/LICENSE +93 -0
  305. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-0-400-normal.woff2 +0 -0
  306. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-0-700-normal.woff2 +0 -0
  307. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-1-400-normal.woff2 +0 -0
  308. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-1-700-normal.woff2 +0 -0
  309. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-10-400-normal.woff2 +0 -0
  310. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-10-700-normal.woff2 +0 -0
  311. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-100-400-normal.woff2 +0 -0
  312. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-100-700-normal.woff2 +0 -0
  313. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-101-400-normal.woff2 +0 -0
  314. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-101-700-normal.woff2 +0 -0
  315. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-102-400-normal.woff2 +0 -0
  316. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-102-700-normal.woff2 +0 -0
  317. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-103-400-normal.woff2 +0 -0
  318. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-103-700-normal.woff2 +0 -0
  319. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-104-400-normal.woff2 +0 -0
  320. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-104-700-normal.woff2 +0 -0
  321. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-105-400-normal.woff2 +0 -0
  322. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-105-700-normal.woff2 +0 -0
  323. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-106-400-normal.woff2 +0 -0
  324. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-106-700-normal.woff2 +0 -0
  325. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-107-400-normal.woff2 +0 -0
  326. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-107-700-normal.woff2 +0 -0
  327. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-108-400-normal.woff2 +0 -0
  328. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-108-700-normal.woff2 +0 -0
  329. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-109-400-normal.woff2 +0 -0
  330. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-109-700-normal.woff2 +0 -0
  331. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-11-400-normal.woff2 +0 -0
  332. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-11-700-normal.woff2 +0 -0
  333. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-110-400-normal.woff2 +0 -0
  334. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-110-700-normal.woff2 +0 -0
  335. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-111-400-normal.woff2 +0 -0
  336. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-111-700-normal.woff2 +0 -0
  337. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-112-400-normal.woff2 +0 -0
  338. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-112-700-normal.woff2 +0 -0
  339. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-113-400-normal.woff2 +0 -0
  340. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-113-700-normal.woff2 +0 -0
  341. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-114-400-normal.woff2 +0 -0
  342. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-114-700-normal.woff2 +0 -0
  343. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-115-400-normal.woff2 +0 -0
  344. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-115-700-normal.woff2 +0 -0
  345. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-116-400-normal.woff2 +0 -0
  346. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-116-700-normal.woff2 +0 -0
  347. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-117-400-normal.woff2 +0 -0
  348. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-117-700-normal.woff2 +0 -0
  349. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-118-400-normal.woff2 +0 -0
  350. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-118-700-normal.woff2 +0 -0
  351. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-119-400-normal.woff2 +0 -0
  352. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-119-700-normal.woff2 +0 -0
  353. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-12-400-normal.woff2 +0 -0
  354. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-12-700-normal.woff2 +0 -0
  355. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-13-400-normal.woff2 +0 -0
  356. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-13-700-normal.woff2 +0 -0
  357. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-14-400-normal.woff2 +0 -0
  358. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-14-700-normal.woff2 +0 -0
  359. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-15-400-normal.woff2 +0 -0
  360. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-15-700-normal.woff2 +0 -0
  361. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-16-400-normal.woff2 +0 -0
  362. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-16-700-normal.woff2 +0 -0
  363. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-17-400-normal.woff2 +0 -0
  364. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-17-700-normal.woff2 +0 -0
  365. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-18-400-normal.woff2 +0 -0
  366. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-18-700-normal.woff2 +0 -0
  367. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-19-400-normal.woff2 +0 -0
  368. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-19-700-normal.woff2 +0 -0
  369. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-2-400-normal.woff2 +0 -0
  370. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-2-700-normal.woff2 +0 -0
  371. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-20-400-normal.woff2 +0 -0
  372. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-20-700-normal.woff2 +0 -0
  373. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-21-400-normal.woff2 +0 -0
  374. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-21-700-normal.woff2 +0 -0
  375. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-22-400-normal.woff2 +0 -0
  376. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-22-700-normal.woff2 +0 -0
  377. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-23-400-normal.woff2 +0 -0
  378. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-23-700-normal.woff2 +0 -0
  379. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-24-400-normal.woff2 +0 -0
  380. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-24-700-normal.woff2 +0 -0
  381. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-25-400-normal.woff2 +0 -0
  382. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-25-700-normal.woff2 +0 -0
  383. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-26-400-normal.woff2 +0 -0
  384. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-26-700-normal.woff2 +0 -0
  385. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-27-400-normal.woff2 +0 -0
  386. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-27-700-normal.woff2 +0 -0
  387. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-28-400-normal.woff2 +0 -0
  388. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-28-700-normal.woff2 +0 -0
  389. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-29-400-normal.woff2 +0 -0
  390. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-29-700-normal.woff2 +0 -0
  391. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-3-400-normal.woff2 +0 -0
  392. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-3-700-normal.woff2 +0 -0
  393. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-30-400-normal.woff2 +0 -0
  394. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-30-700-normal.woff2 +0 -0
  395. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-31-400-normal.woff2 +0 -0
  396. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-31-700-normal.woff2 +0 -0
  397. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-32-400-normal.woff2 +0 -0
  398. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-32-700-normal.woff2 +0 -0
  399. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-33-400-normal.woff2 +0 -0
  400. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-33-700-normal.woff2 +0 -0
  401. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-34-400-normal.woff2 +0 -0
  402. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-34-700-normal.woff2 +0 -0
  403. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-35-400-normal.woff2 +0 -0
  404. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-35-700-normal.woff2 +0 -0
  405. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-36-400-normal.woff2 +0 -0
  406. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-36-700-normal.woff2 +0 -0
  407. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-37-400-normal.woff2 +0 -0
  408. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-37-700-normal.woff2 +0 -0
  409. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-38-400-normal.woff2 +0 -0
  410. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-38-700-normal.woff2 +0 -0
  411. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-39-400-normal.woff2 +0 -0
  412. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-39-700-normal.woff2 +0 -0
  413. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-4-400-normal.woff2 +0 -0
  414. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-4-700-normal.woff2 +0 -0
  415. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-40-400-normal.woff2 +0 -0
  416. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-40-700-normal.woff2 +0 -0
  417. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-41-400-normal.woff2 +0 -0
  418. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-41-700-normal.woff2 +0 -0
  419. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-42-400-normal.woff2 +0 -0
  420. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-42-700-normal.woff2 +0 -0
  421. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-43-400-normal.woff2 +0 -0
  422. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-43-700-normal.woff2 +0 -0
  423. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-44-400-normal.woff2 +0 -0
  424. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-44-700-normal.woff2 +0 -0
  425. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-45-400-normal.woff2 +0 -0
  426. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-45-700-normal.woff2 +0 -0
  427. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-46-400-normal.woff2 +0 -0
  428. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-46-700-normal.woff2 +0 -0
  429. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-47-400-normal.woff2 +0 -0
  430. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-47-700-normal.woff2 +0 -0
  431. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-48-400-normal.woff2 +0 -0
  432. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-48-700-normal.woff2 +0 -0
  433. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-49-400-normal.woff2 +0 -0
  434. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-49-700-normal.woff2 +0 -0
  435. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-5-400-normal.woff2 +0 -0
  436. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-5-700-normal.woff2 +0 -0
  437. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-50-400-normal.woff2 +0 -0
  438. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-50-700-normal.woff2 +0 -0
  439. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-51-400-normal.woff2 +0 -0
  440. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-51-700-normal.woff2 +0 -0
  441. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-52-400-normal.woff2 +0 -0
  442. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-52-700-normal.woff2 +0 -0
  443. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-53-400-normal.woff2 +0 -0
  444. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-53-700-normal.woff2 +0 -0
  445. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-54-400-normal.woff2 +0 -0
  446. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-54-700-normal.woff2 +0 -0
  447. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-55-400-normal.woff2 +0 -0
  448. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-55-700-normal.woff2 +0 -0
  449. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-56-400-normal.woff2 +0 -0
  450. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-56-700-normal.woff2 +0 -0
  451. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-57-400-normal.woff2 +0 -0
  452. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-57-700-normal.woff2 +0 -0
  453. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-58-400-normal.woff2 +0 -0
  454. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-58-700-normal.woff2 +0 -0
  455. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-59-400-normal.woff2 +0 -0
  456. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-59-700-normal.woff2 +0 -0
  457. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-6-400-normal.woff2 +0 -0
  458. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-6-700-normal.woff2 +0 -0
  459. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-60-400-normal.woff2 +0 -0
  460. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-60-700-normal.woff2 +0 -0
  461. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-61-400-normal.woff2 +0 -0
  462. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-61-700-normal.woff2 +0 -0
  463. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-62-400-normal.woff2 +0 -0
  464. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-62-700-normal.woff2 +0 -0
  465. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-63-400-normal.woff2 +0 -0
  466. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-63-700-normal.woff2 +0 -0
  467. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-64-400-normal.woff2 +0 -0
  468. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-64-700-normal.woff2 +0 -0
  469. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-65-400-normal.woff2 +0 -0
  470. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-65-700-normal.woff2 +0 -0
  471. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-66-400-normal.woff2 +0 -0
  472. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-66-700-normal.woff2 +0 -0
  473. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-67-400-normal.woff2 +0 -0
  474. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-67-700-normal.woff2 +0 -0
  475. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-68-400-normal.woff2 +0 -0
  476. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-68-700-normal.woff2 +0 -0
  477. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-69-400-normal.woff2 +0 -0
  478. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-69-700-normal.woff2 +0 -0
  479. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-7-400-normal.woff2 +0 -0
  480. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-7-700-normal.woff2 +0 -0
  481. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-70-400-normal.woff2 +0 -0
  482. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-70-700-normal.woff2 +0 -0
  483. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-71-400-normal.woff2 +0 -0
  484. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-71-700-normal.woff2 +0 -0
  485. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-72-400-normal.woff2 +0 -0
  486. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-72-700-normal.woff2 +0 -0
  487. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-73-400-normal.woff2 +0 -0
  488. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-73-700-normal.woff2 +0 -0
  489. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-74-400-normal.woff2 +0 -0
  490. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-74-700-normal.woff2 +0 -0
  491. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-75-400-normal.woff2 +0 -0
  492. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-75-700-normal.woff2 +0 -0
  493. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-76-400-normal.woff2 +0 -0
  494. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-76-700-normal.woff2 +0 -0
  495. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-77-400-normal.woff2 +0 -0
  496. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-77-700-normal.woff2 +0 -0
  497. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-78-400-normal.woff2 +0 -0
  498. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-78-700-normal.woff2 +0 -0
  499. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-79-400-normal.woff2 +0 -0
  500. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-79-700-normal.woff2 +0 -0
  501. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-8-400-normal.woff2 +0 -0
  502. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-8-700-normal.woff2 +0 -0
  503. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-80-400-normal.woff2 +0 -0
  504. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-80-700-normal.woff2 +0 -0
  505. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-81-400-normal.woff2 +0 -0
  506. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-81-700-normal.woff2 +0 -0
  507. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-82-400-normal.woff2 +0 -0
  508. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-82-700-normal.woff2 +0 -0
  509. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-83-400-normal.woff2 +0 -0
  510. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-83-700-normal.woff2 +0 -0
  511. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-84-400-normal.woff2 +0 -0
  512. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-84-700-normal.woff2 +0 -0
  513. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-85-400-normal.woff2 +0 -0
  514. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-85-700-normal.woff2 +0 -0
  515. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-86-400-normal.woff2 +0 -0
  516. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-86-700-normal.woff2 +0 -0
  517. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-87-400-normal.woff2 +0 -0
  518. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-87-700-normal.woff2 +0 -0
  519. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-88-400-normal.woff2 +0 -0
  520. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-88-700-normal.woff2 +0 -0
  521. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-89-400-normal.woff2 +0 -0
  522. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-89-700-normal.woff2 +0 -0
  523. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-9-400-normal.woff2 +0 -0
  524. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-9-700-normal.woff2 +0 -0
  525. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-90-400-normal.woff2 +0 -0
  526. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-90-700-normal.woff2 +0 -0
  527. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-91-400-normal.woff2 +0 -0
  528. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-91-700-normal.woff2 +0 -0
  529. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-92-400-normal.woff2 +0 -0
  530. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-92-700-normal.woff2 +0 -0
  531. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-93-400-normal.woff2 +0 -0
  532. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-93-700-normal.woff2 +0 -0
  533. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-94-400-normal.woff2 +0 -0
  534. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-94-700-normal.woff2 +0 -0
  535. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-95-400-normal.woff2 +0 -0
  536. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-95-700-normal.woff2 +0 -0
  537. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-96-400-normal.woff2 +0 -0
  538. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-96-700-normal.woff2 +0 -0
  539. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-97-400-normal.woff2 +0 -0
  540. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-97-700-normal.woff2 +0 -0
  541. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-98-400-normal.woff2 +0 -0
  542. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-98-700-normal.woff2 +0 -0
  543. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-99-400-normal.woff2 +0 -0
  544. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-99-700-normal.woff2 +0 -0
  545. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-cyrillic-400-normal.woff2 +0 -0
  546. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-cyrillic-700-normal.woff2 +0 -0
  547. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-greek-ext-400-normal.woff2 +0 -0
  548. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-greek-ext-700-normal.woff2 +0 -0
  549. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-latin-400-normal.woff2 +0 -0
  550. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-latin-700-normal.woff2 +0 -0
  551. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-latin-ext-400-normal.woff2 +0 -0
  552. package/fonts/@fontsource/biz-udpmincho/files/biz-udpmincho-latin-ext-700-normal.woff2 +0 -0
  553. package/fonts/@fontsource/biz-udpmincho/package.json +6 -0
  554. package/fonts/@fontsource/klee-one/400.css +1239 -0
  555. package/fonts/@fontsource/klee-one/600.css +1239 -0
  556. package/fonts/@fontsource/klee-one/LICENSE +93 -0
  557. package/fonts/@fontsource/klee-one/files/klee-one-0-400-normal.woff2 +0 -0
  558. package/fonts/@fontsource/klee-one/files/klee-one-0-600-normal.woff2 +0 -0
  559. package/fonts/@fontsource/klee-one/files/klee-one-1-400-normal.woff2 +0 -0
  560. package/fonts/@fontsource/klee-one/files/klee-one-1-600-normal.woff2 +0 -0
  561. package/fonts/@fontsource/klee-one/files/klee-one-10-400-normal.woff2 +0 -0
  562. package/fonts/@fontsource/klee-one/files/klee-one-10-600-normal.woff2 +0 -0
  563. package/fonts/@fontsource/klee-one/files/klee-one-100-400-normal.woff2 +0 -0
  564. package/fonts/@fontsource/klee-one/files/klee-one-100-600-normal.woff2 +0 -0
  565. package/fonts/@fontsource/klee-one/files/klee-one-101-400-normal.woff2 +0 -0
  566. package/fonts/@fontsource/klee-one/files/klee-one-101-600-normal.woff2 +0 -0
  567. package/fonts/@fontsource/klee-one/files/klee-one-102-400-normal.woff2 +0 -0
  568. package/fonts/@fontsource/klee-one/files/klee-one-102-600-normal.woff2 +0 -0
  569. package/fonts/@fontsource/klee-one/files/klee-one-103-400-normal.woff2 +0 -0
  570. package/fonts/@fontsource/klee-one/files/klee-one-103-600-normal.woff2 +0 -0
  571. package/fonts/@fontsource/klee-one/files/klee-one-104-400-normal.woff2 +0 -0
  572. package/fonts/@fontsource/klee-one/files/klee-one-104-600-normal.woff2 +0 -0
  573. package/fonts/@fontsource/klee-one/files/klee-one-105-400-normal.woff2 +0 -0
  574. package/fonts/@fontsource/klee-one/files/klee-one-105-600-normal.woff2 +0 -0
  575. package/fonts/@fontsource/klee-one/files/klee-one-106-400-normal.woff2 +0 -0
  576. package/fonts/@fontsource/klee-one/files/klee-one-106-600-normal.woff2 +0 -0
  577. package/fonts/@fontsource/klee-one/files/klee-one-107-400-normal.woff2 +0 -0
  578. package/fonts/@fontsource/klee-one/files/klee-one-107-600-normal.woff2 +0 -0
  579. package/fonts/@fontsource/klee-one/files/klee-one-108-400-normal.woff2 +0 -0
  580. package/fonts/@fontsource/klee-one/files/klee-one-108-600-normal.woff2 +0 -0
  581. package/fonts/@fontsource/klee-one/files/klee-one-109-400-normal.woff2 +0 -0
  582. package/fonts/@fontsource/klee-one/files/klee-one-109-600-normal.woff2 +0 -0
  583. package/fonts/@fontsource/klee-one/files/klee-one-11-400-normal.woff2 +0 -0
  584. package/fonts/@fontsource/klee-one/files/klee-one-11-600-normal.woff2 +0 -0
  585. package/fonts/@fontsource/klee-one/files/klee-one-110-400-normal.woff2 +0 -0
  586. package/fonts/@fontsource/klee-one/files/klee-one-110-600-normal.woff2 +0 -0
  587. package/fonts/@fontsource/klee-one/files/klee-one-111-400-normal.woff2 +0 -0
  588. package/fonts/@fontsource/klee-one/files/klee-one-111-600-normal.woff2 +0 -0
  589. package/fonts/@fontsource/klee-one/files/klee-one-112-400-normal.woff2 +0 -0
  590. package/fonts/@fontsource/klee-one/files/klee-one-112-600-normal.woff2 +0 -0
  591. package/fonts/@fontsource/klee-one/files/klee-one-113-400-normal.woff2 +0 -0
  592. package/fonts/@fontsource/klee-one/files/klee-one-113-600-normal.woff2 +0 -0
  593. package/fonts/@fontsource/klee-one/files/klee-one-114-400-normal.woff2 +0 -0
  594. package/fonts/@fontsource/klee-one/files/klee-one-114-600-normal.woff2 +0 -0
  595. package/fonts/@fontsource/klee-one/files/klee-one-115-400-normal.woff2 +0 -0
  596. package/fonts/@fontsource/klee-one/files/klee-one-115-600-normal.woff2 +0 -0
  597. package/fonts/@fontsource/klee-one/files/klee-one-116-400-normal.woff2 +0 -0
  598. package/fonts/@fontsource/klee-one/files/klee-one-116-600-normal.woff2 +0 -0
  599. package/fonts/@fontsource/klee-one/files/klee-one-117-400-normal.woff2 +0 -0
  600. package/fonts/@fontsource/klee-one/files/klee-one-117-600-normal.woff2 +0 -0
  601. package/fonts/@fontsource/klee-one/files/klee-one-118-400-normal.woff2 +0 -0
  602. package/fonts/@fontsource/klee-one/files/klee-one-118-600-normal.woff2 +0 -0
  603. package/fonts/@fontsource/klee-one/files/klee-one-119-400-normal.woff2 +0 -0
  604. package/fonts/@fontsource/klee-one/files/klee-one-119-600-normal.woff2 +0 -0
  605. package/fonts/@fontsource/klee-one/files/klee-one-12-400-normal.woff2 +0 -0
  606. package/fonts/@fontsource/klee-one/files/klee-one-12-600-normal.woff2 +0 -0
  607. package/fonts/@fontsource/klee-one/files/klee-one-13-400-normal.woff2 +0 -0
  608. package/fonts/@fontsource/klee-one/files/klee-one-13-600-normal.woff2 +0 -0
  609. package/fonts/@fontsource/klee-one/files/klee-one-14-400-normal.woff2 +0 -0
  610. package/fonts/@fontsource/klee-one/files/klee-one-14-600-normal.woff2 +0 -0
  611. package/fonts/@fontsource/klee-one/files/klee-one-15-400-normal.woff2 +0 -0
  612. package/fonts/@fontsource/klee-one/files/klee-one-15-600-normal.woff2 +0 -0
  613. package/fonts/@fontsource/klee-one/files/klee-one-16-400-normal.woff2 +0 -0
  614. package/fonts/@fontsource/klee-one/files/klee-one-16-600-normal.woff2 +0 -0
  615. package/fonts/@fontsource/klee-one/files/klee-one-17-400-normal.woff2 +0 -0
  616. package/fonts/@fontsource/klee-one/files/klee-one-17-600-normal.woff2 +0 -0
  617. package/fonts/@fontsource/klee-one/files/klee-one-18-400-normal.woff2 +0 -0
  618. package/fonts/@fontsource/klee-one/files/klee-one-18-600-normal.woff2 +0 -0
  619. package/fonts/@fontsource/klee-one/files/klee-one-19-400-normal.woff2 +0 -0
  620. package/fonts/@fontsource/klee-one/files/klee-one-19-600-normal.woff2 +0 -0
  621. package/fonts/@fontsource/klee-one/files/klee-one-2-400-normal.woff2 +0 -0
  622. package/fonts/@fontsource/klee-one/files/klee-one-2-600-normal.woff2 +0 -0
  623. package/fonts/@fontsource/klee-one/files/klee-one-20-400-normal.woff2 +0 -0
  624. package/fonts/@fontsource/klee-one/files/klee-one-20-600-normal.woff2 +0 -0
  625. package/fonts/@fontsource/klee-one/files/klee-one-21-400-normal.woff2 +0 -0
  626. package/fonts/@fontsource/klee-one/files/klee-one-21-600-normal.woff2 +0 -0
  627. package/fonts/@fontsource/klee-one/files/klee-one-22-400-normal.woff2 +0 -0
  628. package/fonts/@fontsource/klee-one/files/klee-one-22-600-normal.woff2 +0 -0
  629. package/fonts/@fontsource/klee-one/files/klee-one-23-400-normal.woff2 +0 -0
  630. package/fonts/@fontsource/klee-one/files/klee-one-23-600-normal.woff2 +0 -0
  631. package/fonts/@fontsource/klee-one/files/klee-one-24-400-normal.woff2 +0 -0
  632. package/fonts/@fontsource/klee-one/files/klee-one-24-600-normal.woff2 +0 -0
  633. package/fonts/@fontsource/klee-one/files/klee-one-25-400-normal.woff2 +0 -0
  634. package/fonts/@fontsource/klee-one/files/klee-one-25-600-normal.woff2 +0 -0
  635. package/fonts/@fontsource/klee-one/files/klee-one-26-400-normal.woff2 +0 -0
  636. package/fonts/@fontsource/klee-one/files/klee-one-26-600-normal.woff2 +0 -0
  637. package/fonts/@fontsource/klee-one/files/klee-one-27-400-normal.woff2 +0 -0
  638. package/fonts/@fontsource/klee-one/files/klee-one-27-600-normal.woff2 +0 -0
  639. package/fonts/@fontsource/klee-one/files/klee-one-28-400-normal.woff2 +0 -0
  640. package/fonts/@fontsource/klee-one/files/klee-one-28-600-normal.woff2 +0 -0
  641. package/fonts/@fontsource/klee-one/files/klee-one-29-400-normal.woff2 +0 -0
  642. package/fonts/@fontsource/klee-one/files/klee-one-29-600-normal.woff2 +0 -0
  643. package/fonts/@fontsource/klee-one/files/klee-one-3-400-normal.woff2 +0 -0
  644. package/fonts/@fontsource/klee-one/files/klee-one-3-600-normal.woff2 +0 -0
  645. package/fonts/@fontsource/klee-one/files/klee-one-30-400-normal.woff2 +0 -0
  646. package/fonts/@fontsource/klee-one/files/klee-one-30-600-normal.woff2 +0 -0
  647. package/fonts/@fontsource/klee-one/files/klee-one-31-400-normal.woff2 +0 -0
  648. package/fonts/@fontsource/klee-one/files/klee-one-31-600-normal.woff2 +0 -0
  649. package/fonts/@fontsource/klee-one/files/klee-one-32-400-normal.woff2 +0 -0
  650. package/fonts/@fontsource/klee-one/files/klee-one-32-600-normal.woff2 +0 -0
  651. package/fonts/@fontsource/klee-one/files/klee-one-33-400-normal.woff2 +0 -0
  652. package/fonts/@fontsource/klee-one/files/klee-one-33-600-normal.woff2 +0 -0
  653. package/fonts/@fontsource/klee-one/files/klee-one-34-400-normal.woff2 +0 -0
  654. package/fonts/@fontsource/klee-one/files/klee-one-34-600-normal.woff2 +0 -0
  655. package/fonts/@fontsource/klee-one/files/klee-one-35-400-normal.woff2 +0 -0
  656. package/fonts/@fontsource/klee-one/files/klee-one-35-600-normal.woff2 +0 -0
  657. package/fonts/@fontsource/klee-one/files/klee-one-36-400-normal.woff2 +0 -0
  658. package/fonts/@fontsource/klee-one/files/klee-one-36-600-normal.woff2 +0 -0
  659. package/fonts/@fontsource/klee-one/files/klee-one-37-400-normal.woff2 +0 -0
  660. package/fonts/@fontsource/klee-one/files/klee-one-37-600-normal.woff2 +0 -0
  661. package/fonts/@fontsource/klee-one/files/klee-one-38-400-normal.woff2 +0 -0
  662. package/fonts/@fontsource/klee-one/files/klee-one-38-600-normal.woff2 +0 -0
  663. package/fonts/@fontsource/klee-one/files/klee-one-39-400-normal.woff2 +0 -0
  664. package/fonts/@fontsource/klee-one/files/klee-one-39-600-normal.woff2 +0 -0
  665. package/fonts/@fontsource/klee-one/files/klee-one-4-400-normal.woff2 +0 -0
  666. package/fonts/@fontsource/klee-one/files/klee-one-4-600-normal.woff2 +0 -0
  667. package/fonts/@fontsource/klee-one/files/klee-one-40-400-normal.woff2 +0 -0
  668. package/fonts/@fontsource/klee-one/files/klee-one-40-600-normal.woff2 +0 -0
  669. package/fonts/@fontsource/klee-one/files/klee-one-41-400-normal.woff2 +0 -0
  670. package/fonts/@fontsource/klee-one/files/klee-one-41-600-normal.woff2 +0 -0
  671. package/fonts/@fontsource/klee-one/files/klee-one-42-400-normal.woff2 +0 -0
  672. package/fonts/@fontsource/klee-one/files/klee-one-42-600-normal.woff2 +0 -0
  673. package/fonts/@fontsource/klee-one/files/klee-one-43-400-normal.woff2 +0 -0
  674. package/fonts/@fontsource/klee-one/files/klee-one-43-600-normal.woff2 +0 -0
  675. package/fonts/@fontsource/klee-one/files/klee-one-44-400-normal.woff2 +0 -0
  676. package/fonts/@fontsource/klee-one/files/klee-one-44-600-normal.woff2 +0 -0
  677. package/fonts/@fontsource/klee-one/files/klee-one-45-400-normal.woff2 +0 -0
  678. package/fonts/@fontsource/klee-one/files/klee-one-45-600-normal.woff2 +0 -0
  679. package/fonts/@fontsource/klee-one/files/klee-one-46-400-normal.woff2 +0 -0
  680. package/fonts/@fontsource/klee-one/files/klee-one-46-600-normal.woff2 +0 -0
  681. package/fonts/@fontsource/klee-one/files/klee-one-47-400-normal.woff2 +0 -0
  682. package/fonts/@fontsource/klee-one/files/klee-one-47-600-normal.woff2 +0 -0
  683. package/fonts/@fontsource/klee-one/files/klee-one-48-400-normal.woff2 +0 -0
  684. package/fonts/@fontsource/klee-one/files/klee-one-48-600-normal.woff2 +0 -0
  685. package/fonts/@fontsource/klee-one/files/klee-one-49-400-normal.woff2 +0 -0
  686. package/fonts/@fontsource/klee-one/files/klee-one-49-600-normal.woff2 +0 -0
  687. package/fonts/@fontsource/klee-one/files/klee-one-5-400-normal.woff2 +0 -0
  688. package/fonts/@fontsource/klee-one/files/klee-one-5-600-normal.woff2 +0 -0
  689. package/fonts/@fontsource/klee-one/files/klee-one-50-400-normal.woff2 +0 -0
  690. package/fonts/@fontsource/klee-one/files/klee-one-50-600-normal.woff2 +0 -0
  691. package/fonts/@fontsource/klee-one/files/klee-one-51-400-normal.woff2 +0 -0
  692. package/fonts/@fontsource/klee-one/files/klee-one-51-600-normal.woff2 +0 -0
  693. package/fonts/@fontsource/klee-one/files/klee-one-52-400-normal.woff2 +0 -0
  694. package/fonts/@fontsource/klee-one/files/klee-one-52-600-normal.woff2 +0 -0
  695. package/fonts/@fontsource/klee-one/files/klee-one-53-400-normal.woff2 +0 -0
  696. package/fonts/@fontsource/klee-one/files/klee-one-53-600-normal.woff2 +0 -0
  697. package/fonts/@fontsource/klee-one/files/klee-one-54-400-normal.woff2 +0 -0
  698. package/fonts/@fontsource/klee-one/files/klee-one-54-600-normal.woff2 +0 -0
  699. package/fonts/@fontsource/klee-one/files/klee-one-55-400-normal.woff2 +0 -0
  700. package/fonts/@fontsource/klee-one/files/klee-one-55-600-normal.woff2 +0 -0
  701. package/fonts/@fontsource/klee-one/files/klee-one-56-400-normal.woff2 +0 -0
  702. package/fonts/@fontsource/klee-one/files/klee-one-56-600-normal.woff2 +0 -0
  703. package/fonts/@fontsource/klee-one/files/klee-one-57-400-normal.woff2 +0 -0
  704. package/fonts/@fontsource/klee-one/files/klee-one-57-600-normal.woff2 +0 -0
  705. package/fonts/@fontsource/klee-one/files/klee-one-58-400-normal.woff2 +0 -0
  706. package/fonts/@fontsource/klee-one/files/klee-one-58-600-normal.woff2 +0 -0
  707. package/fonts/@fontsource/klee-one/files/klee-one-59-400-normal.woff2 +0 -0
  708. package/fonts/@fontsource/klee-one/files/klee-one-59-600-normal.woff2 +0 -0
  709. package/fonts/@fontsource/klee-one/files/klee-one-6-400-normal.woff2 +0 -0
  710. package/fonts/@fontsource/klee-one/files/klee-one-6-600-normal.woff2 +0 -0
  711. package/fonts/@fontsource/klee-one/files/klee-one-60-400-normal.woff2 +0 -0
  712. package/fonts/@fontsource/klee-one/files/klee-one-60-600-normal.woff2 +0 -0
  713. package/fonts/@fontsource/klee-one/files/klee-one-61-400-normal.woff2 +0 -0
  714. package/fonts/@fontsource/klee-one/files/klee-one-61-600-normal.woff2 +0 -0
  715. package/fonts/@fontsource/klee-one/files/klee-one-62-400-normal.woff2 +0 -0
  716. package/fonts/@fontsource/klee-one/files/klee-one-62-600-normal.woff2 +0 -0
  717. package/fonts/@fontsource/klee-one/files/klee-one-63-400-normal.woff2 +0 -0
  718. package/fonts/@fontsource/klee-one/files/klee-one-63-600-normal.woff2 +0 -0
  719. package/fonts/@fontsource/klee-one/files/klee-one-64-400-normal.woff2 +0 -0
  720. package/fonts/@fontsource/klee-one/files/klee-one-64-600-normal.woff2 +0 -0
  721. package/fonts/@fontsource/klee-one/files/klee-one-65-400-normal.woff2 +0 -0
  722. package/fonts/@fontsource/klee-one/files/klee-one-65-600-normal.woff2 +0 -0
  723. package/fonts/@fontsource/klee-one/files/klee-one-66-400-normal.woff2 +0 -0
  724. package/fonts/@fontsource/klee-one/files/klee-one-66-600-normal.woff2 +0 -0
  725. package/fonts/@fontsource/klee-one/files/klee-one-67-400-normal.woff2 +0 -0
  726. package/fonts/@fontsource/klee-one/files/klee-one-67-600-normal.woff2 +0 -0
  727. package/fonts/@fontsource/klee-one/files/klee-one-68-400-normal.woff2 +0 -0
  728. package/fonts/@fontsource/klee-one/files/klee-one-68-600-normal.woff2 +0 -0
  729. package/fonts/@fontsource/klee-one/files/klee-one-69-400-normal.woff2 +0 -0
  730. package/fonts/@fontsource/klee-one/files/klee-one-69-600-normal.woff2 +0 -0
  731. package/fonts/@fontsource/klee-one/files/klee-one-7-400-normal.woff2 +0 -0
  732. package/fonts/@fontsource/klee-one/files/klee-one-7-600-normal.woff2 +0 -0
  733. package/fonts/@fontsource/klee-one/files/klee-one-70-400-normal.woff2 +0 -0
  734. package/fonts/@fontsource/klee-one/files/klee-one-70-600-normal.woff2 +0 -0
  735. package/fonts/@fontsource/klee-one/files/klee-one-71-400-normal.woff2 +0 -0
  736. package/fonts/@fontsource/klee-one/files/klee-one-71-600-normal.woff2 +0 -0
  737. package/fonts/@fontsource/klee-one/files/klee-one-72-400-normal.woff2 +0 -0
  738. package/fonts/@fontsource/klee-one/files/klee-one-72-600-normal.woff2 +0 -0
  739. package/fonts/@fontsource/klee-one/files/klee-one-73-400-normal.woff2 +0 -0
  740. package/fonts/@fontsource/klee-one/files/klee-one-73-600-normal.woff2 +0 -0
  741. package/fonts/@fontsource/klee-one/files/klee-one-74-400-normal.woff2 +0 -0
  742. package/fonts/@fontsource/klee-one/files/klee-one-74-600-normal.woff2 +0 -0
  743. package/fonts/@fontsource/klee-one/files/klee-one-75-400-normal.woff2 +0 -0
  744. package/fonts/@fontsource/klee-one/files/klee-one-75-600-normal.woff2 +0 -0
  745. package/fonts/@fontsource/klee-one/files/klee-one-76-400-normal.woff2 +0 -0
  746. package/fonts/@fontsource/klee-one/files/klee-one-76-600-normal.woff2 +0 -0
  747. package/fonts/@fontsource/klee-one/files/klee-one-77-400-normal.woff2 +0 -0
  748. package/fonts/@fontsource/klee-one/files/klee-one-77-600-normal.woff2 +0 -0
  749. package/fonts/@fontsource/klee-one/files/klee-one-78-400-normal.woff2 +0 -0
  750. package/fonts/@fontsource/klee-one/files/klee-one-78-600-normal.woff2 +0 -0
  751. package/fonts/@fontsource/klee-one/files/klee-one-79-400-normal.woff2 +0 -0
  752. package/fonts/@fontsource/klee-one/files/klee-one-79-600-normal.woff2 +0 -0
  753. package/fonts/@fontsource/klee-one/files/klee-one-8-400-normal.woff2 +0 -0
  754. package/fonts/@fontsource/klee-one/files/klee-one-8-600-normal.woff2 +0 -0
  755. package/fonts/@fontsource/klee-one/files/klee-one-80-400-normal.woff2 +0 -0
  756. package/fonts/@fontsource/klee-one/files/klee-one-80-600-normal.woff2 +0 -0
  757. package/fonts/@fontsource/klee-one/files/klee-one-81-400-normal.woff2 +0 -0
  758. package/fonts/@fontsource/klee-one/files/klee-one-81-600-normal.woff2 +0 -0
  759. package/fonts/@fontsource/klee-one/files/klee-one-82-400-normal.woff2 +0 -0
  760. package/fonts/@fontsource/klee-one/files/klee-one-82-600-normal.woff2 +0 -0
  761. package/fonts/@fontsource/klee-one/files/klee-one-83-400-normal.woff2 +0 -0
  762. package/fonts/@fontsource/klee-one/files/klee-one-83-600-normal.woff2 +0 -0
  763. package/fonts/@fontsource/klee-one/files/klee-one-84-400-normal.woff2 +0 -0
  764. package/fonts/@fontsource/klee-one/files/klee-one-84-600-normal.woff2 +0 -0
  765. package/fonts/@fontsource/klee-one/files/klee-one-85-400-normal.woff2 +0 -0
  766. package/fonts/@fontsource/klee-one/files/klee-one-85-600-normal.woff2 +0 -0
  767. package/fonts/@fontsource/klee-one/files/klee-one-86-400-normal.woff2 +0 -0
  768. package/fonts/@fontsource/klee-one/files/klee-one-86-600-normal.woff2 +0 -0
  769. package/fonts/@fontsource/klee-one/files/klee-one-87-400-normal.woff2 +0 -0
  770. package/fonts/@fontsource/klee-one/files/klee-one-87-600-normal.woff2 +0 -0
  771. package/fonts/@fontsource/klee-one/files/klee-one-88-400-normal.woff2 +0 -0
  772. package/fonts/@fontsource/klee-one/files/klee-one-88-600-normal.woff2 +0 -0
  773. package/fonts/@fontsource/klee-one/files/klee-one-89-400-normal.woff2 +0 -0
  774. package/fonts/@fontsource/klee-one/files/klee-one-89-600-normal.woff2 +0 -0
  775. package/fonts/@fontsource/klee-one/files/klee-one-9-400-normal.woff2 +0 -0
  776. package/fonts/@fontsource/klee-one/files/klee-one-9-600-normal.woff2 +0 -0
  777. package/fonts/@fontsource/klee-one/files/klee-one-90-400-normal.woff2 +0 -0
  778. package/fonts/@fontsource/klee-one/files/klee-one-90-600-normal.woff2 +0 -0
  779. package/fonts/@fontsource/klee-one/files/klee-one-91-400-normal.woff2 +0 -0
  780. package/fonts/@fontsource/klee-one/files/klee-one-91-600-normal.woff2 +0 -0
  781. package/fonts/@fontsource/klee-one/files/klee-one-92-400-normal.woff2 +0 -0
  782. package/fonts/@fontsource/klee-one/files/klee-one-92-600-normal.woff2 +0 -0
  783. package/fonts/@fontsource/klee-one/files/klee-one-93-400-normal.woff2 +0 -0
  784. package/fonts/@fontsource/klee-one/files/klee-one-93-600-normal.woff2 +0 -0
  785. package/fonts/@fontsource/klee-one/files/klee-one-94-400-normal.woff2 +0 -0
  786. package/fonts/@fontsource/klee-one/files/klee-one-94-600-normal.woff2 +0 -0
  787. package/fonts/@fontsource/klee-one/files/klee-one-95-400-normal.woff2 +0 -0
  788. package/fonts/@fontsource/klee-one/files/klee-one-95-600-normal.woff2 +0 -0
  789. package/fonts/@fontsource/klee-one/files/klee-one-96-400-normal.woff2 +0 -0
  790. package/fonts/@fontsource/klee-one/files/klee-one-96-600-normal.woff2 +0 -0
  791. package/fonts/@fontsource/klee-one/files/klee-one-97-400-normal.woff2 +0 -0
  792. package/fonts/@fontsource/klee-one/files/klee-one-97-600-normal.woff2 +0 -0
  793. package/fonts/@fontsource/klee-one/files/klee-one-98-400-normal.woff2 +0 -0
  794. package/fonts/@fontsource/klee-one/files/klee-one-98-600-normal.woff2 +0 -0
  795. package/fonts/@fontsource/klee-one/files/klee-one-99-400-normal.woff2 +0 -0
  796. package/fonts/@fontsource/klee-one/files/klee-one-99-600-normal.woff2 +0 -0
  797. package/fonts/@fontsource/klee-one/files/klee-one-cyrillic-400-normal.woff2 +0 -0
  798. package/fonts/@fontsource/klee-one/files/klee-one-cyrillic-600-normal.woff2 +0 -0
  799. package/fonts/@fontsource/klee-one/files/klee-one-greek-ext-400-normal.woff2 +0 -0
  800. package/fonts/@fontsource/klee-one/files/klee-one-greek-ext-600-normal.woff2 +0 -0
  801. package/fonts/@fontsource/klee-one/files/klee-one-latin-400-normal.woff2 +0 -0
  802. package/fonts/@fontsource/klee-one/files/klee-one-latin-600-normal.woff2 +0 -0
  803. package/fonts/@fontsource/klee-one/files/klee-one-latin-ext-400-normal.woff2 +0 -0
  804. package/fonts/@fontsource/klee-one/files/klee-one-latin-ext-600-normal.woff2 +0 -0
  805. package/fonts/@fontsource/klee-one/package.json +6 -0
  806. package/fonts/@fontsource/shippori-mincho/400.css +1219 -0
  807. package/fonts/@fontsource/shippori-mincho/700.css +1219 -0
  808. package/fonts/@fontsource/shippori-mincho/LICENSE +93 -0
  809. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-0-400-normal.woff2 +0 -0
  810. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-0-700-normal.woff2 +0 -0
  811. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-1-400-normal.woff2 +0 -0
  812. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-1-700-normal.woff2 +0 -0
  813. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-10-400-normal.woff2 +0 -0
  814. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-10-700-normal.woff2 +0 -0
  815. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-100-400-normal.woff2 +0 -0
  816. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-100-700-normal.woff2 +0 -0
  817. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-101-400-normal.woff2 +0 -0
  818. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-101-700-normal.woff2 +0 -0
  819. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-102-400-normal.woff2 +0 -0
  820. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-102-700-normal.woff2 +0 -0
  821. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-103-400-normal.woff2 +0 -0
  822. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-103-700-normal.woff2 +0 -0
  823. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-104-400-normal.woff2 +0 -0
  824. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-104-700-normal.woff2 +0 -0
  825. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-105-400-normal.woff2 +0 -0
  826. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-105-700-normal.woff2 +0 -0
  827. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-106-400-normal.woff2 +0 -0
  828. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-106-700-normal.woff2 +0 -0
  829. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-107-400-normal.woff2 +0 -0
  830. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-107-700-normal.woff2 +0 -0
  831. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-108-400-normal.woff2 +0 -0
  832. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-108-700-normal.woff2 +0 -0
  833. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-109-400-normal.woff2 +0 -0
  834. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-109-700-normal.woff2 +0 -0
  835. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-11-400-normal.woff2 +0 -0
  836. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-11-700-normal.woff2 +0 -0
  837. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-110-400-normal.woff2 +0 -0
  838. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-110-700-normal.woff2 +0 -0
  839. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-111-400-normal.woff2 +0 -0
  840. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-111-700-normal.woff2 +0 -0
  841. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-112-400-normal.woff2 +0 -0
  842. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-112-700-normal.woff2 +0 -0
  843. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-113-400-normal.woff2 +0 -0
  844. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-113-700-normal.woff2 +0 -0
  845. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-114-400-normal.woff2 +0 -0
  846. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-114-700-normal.woff2 +0 -0
  847. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-115-400-normal.woff2 +0 -0
  848. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-115-700-normal.woff2 +0 -0
  849. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-116-400-normal.woff2 +0 -0
  850. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-116-700-normal.woff2 +0 -0
  851. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-117-400-normal.woff2 +0 -0
  852. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-117-700-normal.woff2 +0 -0
  853. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-118-400-normal.woff2 +0 -0
  854. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-118-700-normal.woff2 +0 -0
  855. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-119-400-normal.woff2 +0 -0
  856. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-119-700-normal.woff2 +0 -0
  857. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-12-400-normal.woff2 +0 -0
  858. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-12-700-normal.woff2 +0 -0
  859. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-13-400-normal.woff2 +0 -0
  860. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-13-700-normal.woff2 +0 -0
  861. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-14-400-normal.woff2 +0 -0
  862. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-14-700-normal.woff2 +0 -0
  863. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-15-400-normal.woff2 +0 -0
  864. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-15-700-normal.woff2 +0 -0
  865. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-16-400-normal.woff2 +0 -0
  866. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-16-700-normal.woff2 +0 -0
  867. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-17-400-normal.woff2 +0 -0
  868. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-17-700-normal.woff2 +0 -0
  869. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-18-400-normal.woff2 +0 -0
  870. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-18-700-normal.woff2 +0 -0
  871. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-19-400-normal.woff2 +0 -0
  872. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-19-700-normal.woff2 +0 -0
  873. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-2-400-normal.woff2 +0 -0
  874. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-2-700-normal.woff2 +0 -0
  875. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-20-400-normal.woff2 +0 -0
  876. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-20-700-normal.woff2 +0 -0
  877. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-21-400-normal.woff2 +0 -0
  878. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-21-700-normal.woff2 +0 -0
  879. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-22-400-normal.woff2 +0 -0
  880. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-22-700-normal.woff2 +0 -0
  881. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-23-400-normal.woff2 +0 -0
  882. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-23-700-normal.woff2 +0 -0
  883. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-24-400-normal.woff2 +0 -0
  884. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-24-700-normal.woff2 +0 -0
  885. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-25-400-normal.woff2 +0 -0
  886. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-25-700-normal.woff2 +0 -0
  887. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-26-400-normal.woff2 +0 -0
  888. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-26-700-normal.woff2 +0 -0
  889. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-27-400-normal.woff2 +0 -0
  890. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-27-700-normal.woff2 +0 -0
  891. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-28-400-normal.woff2 +0 -0
  892. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-28-700-normal.woff2 +0 -0
  893. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-29-400-normal.woff2 +0 -0
  894. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-29-700-normal.woff2 +0 -0
  895. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-3-400-normal.woff2 +0 -0
  896. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-3-700-normal.woff2 +0 -0
  897. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-30-400-normal.woff2 +0 -0
  898. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-30-700-normal.woff2 +0 -0
  899. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-31-400-normal.woff2 +0 -0
  900. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-31-700-normal.woff2 +0 -0
  901. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-32-400-normal.woff2 +0 -0
  902. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-32-700-normal.woff2 +0 -0
  903. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-33-400-normal.woff2 +0 -0
  904. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-33-700-normal.woff2 +0 -0
  905. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-34-400-normal.woff2 +0 -0
  906. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-34-700-normal.woff2 +0 -0
  907. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-35-400-normal.woff2 +0 -0
  908. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-35-700-normal.woff2 +0 -0
  909. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-36-400-normal.woff2 +0 -0
  910. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-36-700-normal.woff2 +0 -0
  911. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-37-400-normal.woff2 +0 -0
  912. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-37-700-normal.woff2 +0 -0
  913. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-38-400-normal.woff2 +0 -0
  914. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-38-700-normal.woff2 +0 -0
  915. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-39-400-normal.woff2 +0 -0
  916. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-39-700-normal.woff2 +0 -0
  917. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-4-400-normal.woff2 +0 -0
  918. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-4-700-normal.woff2 +0 -0
  919. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-40-400-normal.woff2 +0 -0
  920. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-40-700-normal.woff2 +0 -0
  921. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-41-400-normal.woff2 +0 -0
  922. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-41-700-normal.woff2 +0 -0
  923. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-42-400-normal.woff2 +0 -0
  924. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-42-700-normal.woff2 +0 -0
  925. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-43-400-normal.woff2 +0 -0
  926. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-43-700-normal.woff2 +0 -0
  927. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-44-400-normal.woff2 +0 -0
  928. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-44-700-normal.woff2 +0 -0
  929. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-45-400-normal.woff2 +0 -0
  930. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-45-700-normal.woff2 +0 -0
  931. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-46-400-normal.woff2 +0 -0
  932. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-46-700-normal.woff2 +0 -0
  933. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-47-400-normal.woff2 +0 -0
  934. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-47-700-normal.woff2 +0 -0
  935. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-48-400-normal.woff2 +0 -0
  936. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-48-700-normal.woff2 +0 -0
  937. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-49-400-normal.woff2 +0 -0
  938. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-49-700-normal.woff2 +0 -0
  939. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-5-400-normal.woff2 +0 -0
  940. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-5-700-normal.woff2 +0 -0
  941. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-50-400-normal.woff2 +0 -0
  942. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-50-700-normal.woff2 +0 -0
  943. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-51-400-normal.woff2 +0 -0
  944. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-51-700-normal.woff2 +0 -0
  945. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-52-400-normal.woff2 +0 -0
  946. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-52-700-normal.woff2 +0 -0
  947. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-53-400-normal.woff2 +0 -0
  948. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-53-700-normal.woff2 +0 -0
  949. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-54-400-normal.woff2 +0 -0
  950. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-54-700-normal.woff2 +0 -0
  951. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-55-400-normal.woff2 +0 -0
  952. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-55-700-normal.woff2 +0 -0
  953. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-56-400-normal.woff2 +0 -0
  954. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-56-700-normal.woff2 +0 -0
  955. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-57-400-normal.woff2 +0 -0
  956. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-57-700-normal.woff2 +0 -0
  957. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-58-400-normal.woff2 +0 -0
  958. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-58-700-normal.woff2 +0 -0
  959. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-59-400-normal.woff2 +0 -0
  960. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-59-700-normal.woff2 +0 -0
  961. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-6-400-normal.woff2 +0 -0
  962. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-6-700-normal.woff2 +0 -0
  963. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-60-400-normal.woff2 +0 -0
  964. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-60-700-normal.woff2 +0 -0
  965. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-61-400-normal.woff2 +0 -0
  966. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-61-700-normal.woff2 +0 -0
  967. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-62-400-normal.woff2 +0 -0
  968. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-62-700-normal.woff2 +0 -0
  969. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-63-400-normal.woff2 +0 -0
  970. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-63-700-normal.woff2 +0 -0
  971. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-64-400-normal.woff2 +0 -0
  972. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-64-700-normal.woff2 +0 -0
  973. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-65-400-normal.woff2 +0 -0
  974. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-65-700-normal.woff2 +0 -0
  975. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-66-400-normal.woff2 +0 -0
  976. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-66-700-normal.woff2 +0 -0
  977. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-67-400-normal.woff2 +0 -0
  978. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-67-700-normal.woff2 +0 -0
  979. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-68-400-normal.woff2 +0 -0
  980. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-68-700-normal.woff2 +0 -0
  981. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-69-400-normal.woff2 +0 -0
  982. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-69-700-normal.woff2 +0 -0
  983. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-7-400-normal.woff2 +0 -0
  984. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-7-700-normal.woff2 +0 -0
  985. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-70-400-normal.woff2 +0 -0
  986. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-70-700-normal.woff2 +0 -0
  987. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-71-400-normal.woff2 +0 -0
  988. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-71-700-normal.woff2 +0 -0
  989. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-72-400-normal.woff2 +0 -0
  990. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-72-700-normal.woff2 +0 -0
  991. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-73-400-normal.woff2 +0 -0
  992. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-73-700-normal.woff2 +0 -0
  993. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-74-400-normal.woff2 +0 -0
  994. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-74-700-normal.woff2 +0 -0
  995. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-75-400-normal.woff2 +0 -0
  996. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-75-700-normal.woff2 +0 -0
  997. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-76-400-normal.woff2 +0 -0
  998. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-76-700-normal.woff2 +0 -0
  999. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-77-400-normal.woff2 +0 -0
  1000. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-77-700-normal.woff2 +0 -0
  1001. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-78-400-normal.woff2 +0 -0
  1002. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-78-700-normal.woff2 +0 -0
  1003. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-79-400-normal.woff2 +0 -0
  1004. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-79-700-normal.woff2 +0 -0
  1005. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-8-400-normal.woff2 +0 -0
  1006. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-8-700-normal.woff2 +0 -0
  1007. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-80-400-normal.woff2 +0 -0
  1008. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-80-700-normal.woff2 +0 -0
  1009. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-81-400-normal.woff2 +0 -0
  1010. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-81-700-normal.woff2 +0 -0
  1011. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-82-400-normal.woff2 +0 -0
  1012. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-82-700-normal.woff2 +0 -0
  1013. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-83-400-normal.woff2 +0 -0
  1014. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-83-700-normal.woff2 +0 -0
  1015. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-84-400-normal.woff2 +0 -0
  1016. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-84-700-normal.woff2 +0 -0
  1017. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-85-400-normal.woff2 +0 -0
  1018. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-85-700-normal.woff2 +0 -0
  1019. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-86-400-normal.woff2 +0 -0
  1020. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-86-700-normal.woff2 +0 -0
  1021. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-87-400-normal.woff2 +0 -0
  1022. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-87-700-normal.woff2 +0 -0
  1023. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-88-400-normal.woff2 +0 -0
  1024. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-88-700-normal.woff2 +0 -0
  1025. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-89-400-normal.woff2 +0 -0
  1026. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-89-700-normal.woff2 +0 -0
  1027. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-9-400-normal.woff2 +0 -0
  1028. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-9-700-normal.woff2 +0 -0
  1029. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-90-400-normal.woff2 +0 -0
  1030. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-90-700-normal.woff2 +0 -0
  1031. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-91-400-normal.woff2 +0 -0
  1032. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-91-700-normal.woff2 +0 -0
  1033. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-92-400-normal.woff2 +0 -0
  1034. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-92-700-normal.woff2 +0 -0
  1035. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-93-400-normal.woff2 +0 -0
  1036. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-93-700-normal.woff2 +0 -0
  1037. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-94-400-normal.woff2 +0 -0
  1038. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-94-700-normal.woff2 +0 -0
  1039. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-95-400-normal.woff2 +0 -0
  1040. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-95-700-normal.woff2 +0 -0
  1041. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-96-400-normal.woff2 +0 -0
  1042. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-96-700-normal.woff2 +0 -0
  1043. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-97-400-normal.woff2 +0 -0
  1044. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-97-700-normal.woff2 +0 -0
  1045. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-98-400-normal.woff2 +0 -0
  1046. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-98-700-normal.woff2 +0 -0
  1047. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-99-400-normal.woff2 +0 -0
  1048. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-99-700-normal.woff2 +0 -0
  1049. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-latin-400-normal.woff2 +0 -0
  1050. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-latin-700-normal.woff2 +0 -0
  1051. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-latin-ext-400-normal.woff2 +0 -0
  1052. package/fonts/@fontsource/shippori-mincho/files/shippori-mincho-latin-ext-700-normal.woff2 +0 -0
  1053. package/fonts/@fontsource/shippori-mincho/package.json +6 -0
  1054. package/fonts/@fontsource/source-code-pro/400.css +69 -0
  1055. package/fonts/@fontsource/source-code-pro/700.css +69 -0
  1056. package/fonts/@fontsource/source-code-pro/LICENSE +93 -0
  1057. package/fonts/@fontsource/source-code-pro/files/source-code-pro-cyrillic-400-normal.woff2 +0 -0
  1058. package/fonts/@fontsource/source-code-pro/files/source-code-pro-cyrillic-700-normal.woff2 +0 -0
  1059. package/fonts/@fontsource/source-code-pro/files/source-code-pro-cyrillic-ext-400-normal.woff2 +0 -0
  1060. package/fonts/@fontsource/source-code-pro/files/source-code-pro-cyrillic-ext-700-normal.woff2 +0 -0
  1061. package/fonts/@fontsource/source-code-pro/files/source-code-pro-greek-400-normal.woff2 +0 -0
  1062. package/fonts/@fontsource/source-code-pro/files/source-code-pro-greek-700-normal.woff2 +0 -0
  1063. package/fonts/@fontsource/source-code-pro/files/source-code-pro-greek-ext-400-normal.woff2 +0 -0
  1064. package/fonts/@fontsource/source-code-pro/files/source-code-pro-greek-ext-700-normal.woff2 +0 -0
  1065. package/fonts/@fontsource/source-code-pro/files/source-code-pro-latin-400-normal.woff2 +0 -0
  1066. package/fonts/@fontsource/source-code-pro/files/source-code-pro-latin-700-normal.woff2 +0 -0
  1067. package/fonts/@fontsource/source-code-pro/files/source-code-pro-latin-ext-400-normal.woff2 +0 -0
  1068. package/fonts/@fontsource/source-code-pro/files/source-code-pro-latin-ext-700-normal.woff2 +0 -0
  1069. package/fonts/@fontsource/source-code-pro/files/source-code-pro-vietnamese-400-normal.woff2 +0 -0
  1070. package/fonts/@fontsource/source-code-pro/files/source-code-pro-vietnamese-700-normal.woff2 +0 -0
  1071. package/fonts/@fontsource/source-code-pro/package.json +6 -0
  1072. package/fonts/@fontsource/source-sans-3/400-italic.css +69 -0
  1073. package/fonts/@fontsource/source-sans-3/400.css +69 -0
  1074. package/fonts/@fontsource/source-sans-3/700-italic.css +69 -0
  1075. package/fonts/@fontsource/source-sans-3/700.css +69 -0
  1076. package/fonts/@fontsource/source-sans-3/LICENSE +93 -0
  1077. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-400-italic.woff2 +0 -0
  1078. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-400-normal.woff2 +0 -0
  1079. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-700-italic.woff2 +0 -0
  1080. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-700-normal.woff2 +0 -0
  1081. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-ext-400-italic.woff2 +0 -0
  1082. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-ext-400-normal.woff2 +0 -0
  1083. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-ext-700-italic.woff2 +0 -0
  1084. package/fonts/@fontsource/source-sans-3/files/source-sans-3-cyrillic-ext-700-normal.woff2 +0 -0
  1085. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-400-italic.woff2 +0 -0
  1086. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-400-normal.woff2 +0 -0
  1087. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-700-italic.woff2 +0 -0
  1088. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-700-normal.woff2 +0 -0
  1089. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-ext-400-italic.woff2 +0 -0
  1090. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-ext-400-normal.woff2 +0 -0
  1091. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-ext-700-italic.woff2 +0 -0
  1092. package/fonts/@fontsource/source-sans-3/files/source-sans-3-greek-ext-700-normal.woff2 +0 -0
  1093. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-400-italic.woff2 +0 -0
  1094. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-400-normal.woff2 +0 -0
  1095. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-700-italic.woff2 +0 -0
  1096. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-700-normal.woff2 +0 -0
  1097. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-ext-400-italic.woff2 +0 -0
  1098. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-ext-400-normal.woff2 +0 -0
  1099. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-ext-700-italic.woff2 +0 -0
  1100. package/fonts/@fontsource/source-sans-3/files/source-sans-3-latin-ext-700-normal.woff2 +0 -0
  1101. package/fonts/@fontsource/source-sans-3/files/source-sans-3-vietnamese-400-italic.woff2 +0 -0
  1102. package/fonts/@fontsource/source-sans-3/files/source-sans-3-vietnamese-400-normal.woff2 +0 -0
  1103. package/fonts/@fontsource/source-sans-3/files/source-sans-3-vietnamese-700-italic.woff2 +0 -0
  1104. package/fonts/@fontsource/source-sans-3/files/source-sans-3-vietnamese-700-normal.woff2 +0 -0
  1105. package/fonts/@fontsource/source-sans-3/package.json +6 -0
  1106. package/fonts/@fontsource/source-serif-4/400-italic.css +59 -0
  1107. package/fonts/@fontsource/source-serif-4/400.css +59 -0
  1108. package/fonts/@fontsource/source-serif-4/700-italic.css +59 -0
  1109. package/fonts/@fontsource/source-serif-4/700.css +59 -0
  1110. package/fonts/@fontsource/source-serif-4/LICENSE +93 -0
  1111. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-400-italic.woff2 +0 -0
  1112. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-400-normal.woff2 +0 -0
  1113. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-700-italic.woff2 +0 -0
  1114. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-700-normal.woff2 +0 -0
  1115. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-ext-400-italic.woff2 +0 -0
  1116. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-ext-400-normal.woff2 +0 -0
  1117. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-ext-700-italic.woff2 +0 -0
  1118. package/fonts/@fontsource/source-serif-4/files/source-serif-4-cyrillic-ext-700-normal.woff2 +0 -0
  1119. package/fonts/@fontsource/source-serif-4/files/source-serif-4-greek-400-italic.woff2 +0 -0
  1120. package/fonts/@fontsource/source-serif-4/files/source-serif-4-greek-400-normal.woff2 +0 -0
  1121. package/fonts/@fontsource/source-serif-4/files/source-serif-4-greek-700-italic.woff2 +0 -0
  1122. package/fonts/@fontsource/source-serif-4/files/source-serif-4-greek-700-normal.woff2 +0 -0
  1123. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-400-italic.woff2 +0 -0
  1124. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-400-normal.woff2 +0 -0
  1125. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-700-italic.woff2 +0 -0
  1126. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-700-normal.woff2 +0 -0
  1127. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-ext-400-italic.woff2 +0 -0
  1128. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-ext-400-normal.woff2 +0 -0
  1129. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-ext-700-italic.woff2 +0 -0
  1130. package/fonts/@fontsource/source-serif-4/files/source-serif-4-latin-ext-700-normal.woff2 +0 -0
  1131. package/fonts/@fontsource/source-serif-4/files/source-serif-4-vietnamese-400-italic.woff2 +0 -0
  1132. package/fonts/@fontsource/source-serif-4/files/source-serif-4-vietnamese-400-normal.woff2 +0 -0
  1133. package/fonts/@fontsource/source-serif-4/files/source-serif-4-vietnamese-700-italic.woff2 +0 -0
  1134. package/fonts/@fontsource/source-serif-4/files/source-serif-4-vietnamese-700-normal.woff2 +0 -0
  1135. package/fonts/@fontsource/source-serif-4/package.json +6 -0
  1136. package/fonts/@fontsource/zen-maru-gothic/400.css +1219 -0
  1137. package/fonts/@fontsource/zen-maru-gothic/700.css +1219 -0
  1138. package/fonts/@fontsource/zen-maru-gothic/LICENSE +93 -0
  1139. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-10-400-normal.woff2 +0 -0
  1140. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-10-700-normal.woff2 +0 -0
  1141. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-100-400-normal.woff2 +0 -0
  1142. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-100-700-normal.woff2 +0 -0
  1143. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-101-400-normal.woff2 +0 -0
  1144. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-101-700-normal.woff2 +0 -0
  1145. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-102-400-normal.woff2 +0 -0
  1146. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-102-700-normal.woff2 +0 -0
  1147. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-103-400-normal.woff2 +0 -0
  1148. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-103-700-normal.woff2 +0 -0
  1149. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-104-400-normal.woff2 +0 -0
  1150. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-104-700-normal.woff2 +0 -0
  1151. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-105-400-normal.woff2 +0 -0
  1152. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-105-700-normal.woff2 +0 -0
  1153. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-106-400-normal.woff2 +0 -0
  1154. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-106-700-normal.woff2 +0 -0
  1155. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-107-400-normal.woff2 +0 -0
  1156. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-107-700-normal.woff2 +0 -0
  1157. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-108-400-normal.woff2 +0 -0
  1158. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-108-700-normal.woff2 +0 -0
  1159. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-109-400-normal.woff2 +0 -0
  1160. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-109-700-normal.woff2 +0 -0
  1161. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-11-400-normal.woff2 +0 -0
  1162. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-11-700-normal.woff2 +0 -0
  1163. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-110-400-normal.woff2 +0 -0
  1164. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-110-700-normal.woff2 +0 -0
  1165. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-111-400-normal.woff2 +0 -0
  1166. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-111-700-normal.woff2 +0 -0
  1167. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-112-400-normal.woff2 +0 -0
  1168. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-112-700-normal.woff2 +0 -0
  1169. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-113-400-normal.woff2 +0 -0
  1170. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-113-700-normal.woff2 +0 -0
  1171. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-114-400-normal.woff2 +0 -0
  1172. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-114-700-normal.woff2 +0 -0
  1173. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-115-400-normal.woff2 +0 -0
  1174. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-115-700-normal.woff2 +0 -0
  1175. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-116-400-normal.woff2 +0 -0
  1176. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-116-700-normal.woff2 +0 -0
  1177. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-117-400-normal.woff2 +0 -0
  1178. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-117-700-normal.woff2 +0 -0
  1179. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-118-400-normal.woff2 +0 -0
  1180. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-118-700-normal.woff2 +0 -0
  1181. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-119-400-normal.woff2 +0 -0
  1182. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-119-700-normal.woff2 +0 -0
  1183. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-12-400-normal.woff2 +0 -0
  1184. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-12-700-normal.woff2 +0 -0
  1185. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-13-400-normal.woff2 +0 -0
  1186. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-13-700-normal.woff2 +0 -0
  1187. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-14-400-normal.woff2 +0 -0
  1188. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-14-700-normal.woff2 +0 -0
  1189. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-15-400-normal.woff2 +0 -0
  1190. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-15-700-normal.woff2 +0 -0
  1191. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-16-400-normal.woff2 +0 -0
  1192. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-16-700-normal.woff2 +0 -0
  1193. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-17-400-normal.woff2 +0 -0
  1194. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-17-700-normal.woff2 +0 -0
  1195. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-18-400-normal.woff2 +0 -0
  1196. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-18-700-normal.woff2 +0 -0
  1197. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-19-400-normal.woff2 +0 -0
  1198. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-19-700-normal.woff2 +0 -0
  1199. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-2-400-normal.woff2 +0 -0
  1200. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-2-700-normal.woff2 +0 -0
  1201. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-20-400-normal.woff2 +0 -0
  1202. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-20-700-normal.woff2 +0 -0
  1203. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-21-400-normal.woff2 +0 -0
  1204. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-21-700-normal.woff2 +0 -0
  1205. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-22-400-normal.woff2 +0 -0
  1206. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-22-700-normal.woff2 +0 -0
  1207. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-23-400-normal.woff2 +0 -0
  1208. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-23-700-normal.woff2 +0 -0
  1209. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-24-400-normal.woff2 +0 -0
  1210. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-24-700-normal.woff2 +0 -0
  1211. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-25-400-normal.woff2 +0 -0
  1212. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-25-700-normal.woff2 +0 -0
  1213. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-26-400-normal.woff2 +0 -0
  1214. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-26-700-normal.woff2 +0 -0
  1215. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-27-400-normal.woff2 +0 -0
  1216. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-27-700-normal.woff2 +0 -0
  1217. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-28-400-normal.woff2 +0 -0
  1218. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-28-700-normal.woff2 +0 -0
  1219. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-29-400-normal.woff2 +0 -0
  1220. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-29-700-normal.woff2 +0 -0
  1221. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-3-400-normal.woff2 +0 -0
  1222. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-3-700-normal.woff2 +0 -0
  1223. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-30-400-normal.woff2 +0 -0
  1224. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-30-700-normal.woff2 +0 -0
  1225. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-31-400-normal.woff2 +0 -0
  1226. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-31-700-normal.woff2 +0 -0
  1227. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-32-400-normal.woff2 +0 -0
  1228. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-32-700-normal.woff2 +0 -0
  1229. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-33-400-normal.woff2 +0 -0
  1230. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-33-700-normal.woff2 +0 -0
  1231. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-34-400-normal.woff2 +0 -0
  1232. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-34-700-normal.woff2 +0 -0
  1233. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-35-400-normal.woff2 +0 -0
  1234. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-35-700-normal.woff2 +0 -0
  1235. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-36-400-normal.woff2 +0 -0
  1236. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-36-700-normal.woff2 +0 -0
  1237. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-37-400-normal.woff2 +0 -0
  1238. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-37-700-normal.woff2 +0 -0
  1239. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-38-400-normal.woff2 +0 -0
  1240. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-38-700-normal.woff2 +0 -0
  1241. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-39-400-normal.woff2 +0 -0
  1242. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-39-700-normal.woff2 +0 -0
  1243. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-4-400-normal.woff2 +0 -0
  1244. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-4-700-normal.woff2 +0 -0
  1245. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-40-400-normal.woff2 +0 -0
  1246. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-40-700-normal.woff2 +0 -0
  1247. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-41-400-normal.woff2 +0 -0
  1248. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-41-700-normal.woff2 +0 -0
  1249. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-42-400-normal.woff2 +0 -0
  1250. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-42-700-normal.woff2 +0 -0
  1251. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-43-400-normal.woff2 +0 -0
  1252. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-43-700-normal.woff2 +0 -0
  1253. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-44-400-normal.woff2 +0 -0
  1254. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-44-700-normal.woff2 +0 -0
  1255. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-45-400-normal.woff2 +0 -0
  1256. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-45-700-normal.woff2 +0 -0
  1257. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-46-400-normal.woff2 +0 -0
  1258. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-46-700-normal.woff2 +0 -0
  1259. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-47-400-normal.woff2 +0 -0
  1260. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-47-700-normal.woff2 +0 -0
  1261. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-48-400-normal.woff2 +0 -0
  1262. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-48-700-normal.woff2 +0 -0
  1263. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-49-400-normal.woff2 +0 -0
  1264. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-49-700-normal.woff2 +0 -0
  1265. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-5-400-normal.woff2 +0 -0
  1266. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-5-700-normal.woff2 +0 -0
  1267. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-50-400-normal.woff2 +0 -0
  1268. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-50-700-normal.woff2 +0 -0
  1269. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-51-400-normal.woff2 +0 -0
  1270. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-51-700-normal.woff2 +0 -0
  1271. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-52-400-normal.woff2 +0 -0
  1272. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-52-700-normal.woff2 +0 -0
  1273. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-53-400-normal.woff2 +0 -0
  1274. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-53-700-normal.woff2 +0 -0
  1275. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-54-400-normal.woff2 +0 -0
  1276. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-54-700-normal.woff2 +0 -0
  1277. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-55-400-normal.woff2 +0 -0
  1278. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-55-700-normal.woff2 +0 -0
  1279. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-56-400-normal.woff2 +0 -0
  1280. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-56-700-normal.woff2 +0 -0
  1281. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-57-400-normal.woff2 +0 -0
  1282. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-57-700-normal.woff2 +0 -0
  1283. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-58-400-normal.woff2 +0 -0
  1284. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-58-700-normal.woff2 +0 -0
  1285. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-59-400-normal.woff2 +0 -0
  1286. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-59-700-normal.woff2 +0 -0
  1287. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-6-400-normal.woff2 +0 -0
  1288. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-6-700-normal.woff2 +0 -0
  1289. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-60-400-normal.woff2 +0 -0
  1290. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-60-700-normal.woff2 +0 -0
  1291. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-61-400-normal.woff2 +0 -0
  1292. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-61-700-normal.woff2 +0 -0
  1293. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-62-400-normal.woff2 +0 -0
  1294. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-62-700-normal.woff2 +0 -0
  1295. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-63-400-normal.woff2 +0 -0
  1296. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-63-700-normal.woff2 +0 -0
  1297. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-64-400-normal.woff2 +0 -0
  1298. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-64-700-normal.woff2 +0 -0
  1299. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-65-400-normal.woff2 +0 -0
  1300. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-65-700-normal.woff2 +0 -0
  1301. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-66-400-normal.woff2 +0 -0
  1302. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-66-700-normal.woff2 +0 -0
  1303. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-67-400-normal.woff2 +0 -0
  1304. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-67-700-normal.woff2 +0 -0
  1305. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-68-400-normal.woff2 +0 -0
  1306. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-68-700-normal.woff2 +0 -0
  1307. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-69-400-normal.woff2 +0 -0
  1308. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-69-700-normal.woff2 +0 -0
  1309. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-7-400-normal.woff2 +0 -0
  1310. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-7-700-normal.woff2 +0 -0
  1311. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-70-400-normal.woff2 +0 -0
  1312. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-70-700-normal.woff2 +0 -0
  1313. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-71-400-normal.woff2 +0 -0
  1314. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-71-700-normal.woff2 +0 -0
  1315. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-72-400-normal.woff2 +0 -0
  1316. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-72-700-normal.woff2 +0 -0
  1317. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-73-400-normal.woff2 +0 -0
  1318. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-73-700-normal.woff2 +0 -0
  1319. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-74-400-normal.woff2 +0 -0
  1320. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-74-700-normal.woff2 +0 -0
  1321. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-75-400-normal.woff2 +0 -0
  1322. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-75-700-normal.woff2 +0 -0
  1323. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-76-400-normal.woff2 +0 -0
  1324. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-76-700-normal.woff2 +0 -0
  1325. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-77-400-normal.woff2 +0 -0
  1326. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-77-700-normal.woff2 +0 -0
  1327. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-78-400-normal.woff2 +0 -0
  1328. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-78-700-normal.woff2 +0 -0
  1329. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-79-400-normal.woff2 +0 -0
  1330. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-79-700-normal.woff2 +0 -0
  1331. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-8-400-normal.woff2 +0 -0
  1332. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-8-700-normal.woff2 +0 -0
  1333. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-80-400-normal.woff2 +0 -0
  1334. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-80-700-normal.woff2 +0 -0
  1335. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-81-400-normal.woff2 +0 -0
  1336. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-81-700-normal.woff2 +0 -0
  1337. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-82-400-normal.woff2 +0 -0
  1338. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-82-700-normal.woff2 +0 -0
  1339. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-83-400-normal.woff2 +0 -0
  1340. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-83-700-normal.woff2 +0 -0
  1341. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-84-400-normal.woff2 +0 -0
  1342. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-84-700-normal.woff2 +0 -0
  1343. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-85-400-normal.woff2 +0 -0
  1344. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-85-700-normal.woff2 +0 -0
  1345. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-86-400-normal.woff2 +0 -0
  1346. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-86-700-normal.woff2 +0 -0
  1347. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-87-400-normal.woff2 +0 -0
  1348. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-87-700-normal.woff2 +0 -0
  1349. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-88-400-normal.woff2 +0 -0
  1350. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-88-700-normal.woff2 +0 -0
  1351. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-89-400-normal.woff2 +0 -0
  1352. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-89-700-normal.woff2 +0 -0
  1353. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-9-400-normal.woff2 +0 -0
  1354. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-9-700-normal.woff2 +0 -0
  1355. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-90-400-normal.woff2 +0 -0
  1356. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-90-700-normal.woff2 +0 -0
  1357. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-91-400-normal.woff2 +0 -0
  1358. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-91-700-normal.woff2 +0 -0
  1359. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-92-400-normal.woff2 +0 -0
  1360. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-92-700-normal.woff2 +0 -0
  1361. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-93-400-normal.woff2 +0 -0
  1362. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-93-700-normal.woff2 +0 -0
  1363. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-94-400-normal.woff2 +0 -0
  1364. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-94-700-normal.woff2 +0 -0
  1365. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-95-400-normal.woff2 +0 -0
  1366. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-95-700-normal.woff2 +0 -0
  1367. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-96-400-normal.woff2 +0 -0
  1368. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-96-700-normal.woff2 +0 -0
  1369. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-97-400-normal.woff2 +0 -0
  1370. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-97-700-normal.woff2 +0 -0
  1371. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-98-400-normal.woff2 +0 -0
  1372. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-98-700-normal.woff2 +0 -0
  1373. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-99-400-normal.woff2 +0 -0
  1374. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-99-700-normal.woff2 +0 -0
  1375. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-cyrillic-400-normal.woff2 +0 -0
  1376. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-cyrillic-700-normal.woff2 +0 -0
  1377. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-greek-400-normal.woff2 +0 -0
  1378. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-greek-700-normal.woff2 +0 -0
  1379. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-latin-400-normal.woff2 +0 -0
  1380. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-latin-700-normal.woff2 +0 -0
  1381. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-latin-ext-400-normal.woff2 +0 -0
  1382. package/fonts/@fontsource/zen-maru-gothic/files/zen-maru-gothic-latin-ext-700-normal.woff2 +0 -0
  1383. package/fonts/@fontsource/zen-maru-gothic/package.json +6 -0
  1384. package/fonts/OFL-BIZUDPMincho.txt +93 -0
  1385. package/fonts/OFL.txt +93 -0
  1386. package/kit/abcjs-node.mjs +38 -0
  1387. package/kit/base.css +98 -0
  1388. package/kit/bounded-read.mjs +59 -0
  1389. package/kit/browser.mjs +98 -0
  1390. package/kit/build.mjs +336 -0
  1391. package/kit/check-messages.mjs +343 -0
  1392. package/kit/check.mjs +729 -0
  1393. package/kit/core/abcjs.mjs +150 -0
  1394. package/kit/core/attach-content.mjs +818 -0
  1395. package/kit/core/attachments.mjs +255 -0
  1396. package/kit/core/audio-core.mjs +263 -0
  1397. package/kit/core/backup-name.mjs +8 -0
  1398. package/kit/core/bounded-html.mjs +57 -0
  1399. package/kit/core/bounded-read-core.mjs +55 -0
  1400. package/kit/core/build-core.mjs +1249 -0
  1401. package/kit/core/check-result.mjs +14 -0
  1402. package/kit/core/code-scan.mjs +202 -0
  1403. package/kit/core/colab-core.mjs +197 -0
  1404. package/kit/core/color-check.mjs +49 -0
  1405. package/kit/core/comment-core.mjs +93 -0
  1406. package/kit/core/components-lock.mjs +169 -0
  1407. package/kit/core/config-file.mjs +140 -0
  1408. package/kit/core/error-text.mjs +26 -0
  1409. package/kit/core/export-name.mjs +44 -0
  1410. package/kit/core/favicon.mjs +33 -0
  1411. package/kit/core/file-policy.mjs +165 -0
  1412. package/kit/core/format.mjs +38 -0
  1413. package/kit/core/identity-hash.mjs +31 -0
  1414. package/kit/core/katex-ranges.mjs +26 -0
  1415. package/kit/core/layout-scan.mjs +635 -0
  1416. package/kit/core/legacy-vocab.mjs +36 -0
  1417. package/kit/core/link-policy.mjs +76 -0
  1418. package/kit/core/live-policy.mjs +274 -0
  1419. package/kit/core/live-results.mjs +239 -0
  1420. package/kit/core/live.mjs +262 -0
  1421. package/kit/core/llm-fix.mjs +162 -0
  1422. package/kit/core/llm-import.mjs +269 -0
  1423. package/kit/core/llm-insert.mjs +95 -0
  1424. package/kit/core/llm-outline.mjs +167 -0
  1425. package/kit/core/llm-pack-assemble.mjs +145 -0
  1426. package/kit/core/llm-pack-data.mjs +1614 -0
  1427. package/kit/core/llm-pack.mjs +96 -0
  1428. package/kit/core/llm-request.mjs +55 -0
  1429. package/kit/core/mp3.mjs +28 -0
  1430. package/kit/core/narration-core.mjs +141 -0
  1431. package/kit/core/narration-lint.mjs +146 -0
  1432. package/kit/core/narration-parse.mjs +225 -0
  1433. package/kit/core/new-deck.mjs +247 -0
  1434. package/kit/core/part-labels.mjs +61 -0
  1435. package/kit/core/parts2.mjs +460 -0
  1436. package/kit/core/path-posix.mjs +47 -0
  1437. package/kit/core/player.mjs +89 -0
  1438. package/kit/core/portable.mjs +1721 -0
  1439. package/kit/core/position.mjs +46 -0
  1440. package/kit/core/purposes.mjs +183 -0
  1441. package/kit/core/read-aloud.mjs +166 -0
  1442. package/kit/core/ref-voice.mjs +75 -0
  1443. package/kit/core/sha1.mjs +34 -0
  1444. package/kit/core/slide-ids.mjs +214 -0
  1445. package/kit/core/slide-ops.mjs +293 -0
  1446. package/kit/core/sound-preferences.mjs +17 -0
  1447. package/kit/core/sounds.mjs +149 -0
  1448. package/kit/core/template-text.mjs +88 -0
  1449. package/kit/core/theme-metrics.mjs +112 -0
  1450. package/kit/core/theme-shapes.mjs +78 -0
  1451. package/kit/core/themes-list.mjs +23 -0
  1452. package/kit/core/themes-lock.mjs +150 -0
  1453. package/kit/core/tier-a.mjs +625 -0
  1454. package/kit/core/tts-normalize.mjs +20 -0
  1455. package/kit/core/wav-core.mjs +78 -0
  1456. package/kit/core/yomi.mjs +64 -0
  1457. package/kit/core/zip-read.mjs +125 -0
  1458. package/kit/deck.js +2333 -0
  1459. package/kit/latin.css +3 -0
  1460. package/kit/layouts.css +98 -0
  1461. package/kit/live.js +670 -0
  1462. package/kit/llm-pack.mjs +102 -0
  1463. package/kit/narration.mjs +23 -0
  1464. package/kit/parts-registry.js +87 -0
  1465. package/kit/player.json +5 -0
  1466. package/kit/player.lock.json +4 -0
  1467. package/kit/presenter.js +234 -0
  1468. package/kit/render-compare.mjs +219 -0
  1469. package/kit/safe-fs.mjs +163 -0
  1470. package/kit/shape.js +172 -0
  1471. package/kit/templates/new-deck.mjs +188 -0
  1472. package/kit/theme-dirs.mjs +24 -0
  1473. package/kit/tools.js +1120 -0
  1474. package/package.json +109 -4
  1475. package/render/render.mjs +333 -0
  1476. package/render/sounds.mjs +49 -0
  1477. package/server/dev.mjs +476 -0
  1478. package/server/editor-ui.js +969 -0
  1479. package/server/hints.js +251 -0
  1480. package/server/shell.js +71 -0
  1481. package/themes/asagi/theme.json +14 -0
  1482. package/themes/asagi/tokens.css +17 -0
  1483. package/themes/business/theme.json +5 -0
  1484. package/themes/business/tokens.css +28 -0
  1485. package/themes/default/README.ja.md +31 -0
  1486. package/themes/default/README.md +31 -0
  1487. package/themes/default/theme.json +4 -0
  1488. package/themes/default/tokens.css +73 -0
  1489. package/themes/kogecha/theme.json +10 -0
  1490. package/themes/kogecha/tokens.css +16 -0
  1491. package/themes/kokugo/theme.json +4 -0
  1492. package/themes/kokugo/tokens.css +12 -0
  1493. package/themes/murasaki/theme.json +10 -0
  1494. package/themes/murasaki/tokens.css +12 -0
  1495. package/themes/sumi/theme.json +10 -0
  1496. package/themes/sumi/tokens.css +36 -0
  1497. package/themes/tokiwa/theme.json +10 -0
  1498. package/themes/tokiwa/tokens.css +14 -0
  1499. package/themes.lock.json +124 -0
  1500. package/tools/comment-shots.mjs +155 -0
  1501. package/tools/ids.mjs +155 -0
  1502. package/tools/new.mjs +78 -0
  1503. package/tools/portable.mjs +281 -0
  1504. package/tools/sheet.mjs +135 -0
  1505. package/tools/video.mjs +42 -0
  1506. package/tts/.python-version +1 -0
  1507. package/tts/core.py +237 -0
  1508. package/tts/pyproject.toml +12 -0
  1509. package/tts/synth.py +401 -0
  1510. package/tts/uv.lock +211 -0
  1511. package/tts/voices/README.md +34 -0
  1512. package/tts/voices/alice.wav +0 -0
  1513. package/tts/voices/alice_en.wav +0 -0
  1514. package/tts/voices/bob.wav +0 -0
  1515. package/tts/voices/bob_en.wav +0 -0
  1516. package/tts/yomi.py +162 -0
  1517. package/tts/yomi.yaml +127 -0
  1518. package/vendor/components/CATALOG.md +55 -0
  1519. package/vendor/components/LICENSE +21 -0
  1520. package/vendor/components/manifest.json +1131 -0
  1521. package/vendor/components/sha256/024d2fcefd31ed33ee5c9274e3eafa248a86a773ad592210e766e19d58b28782/README.md +33 -0
  1522. package/vendor/components/sha256/024d2fcefd31ed33ee5c9274e3eafa248a86a773ad592210e766e19d58b28782/demo.html +69 -0
  1523. package/vendor/components/sha256/024d2fcefd31ed33ee5c9274e3eafa248a86a773ad592210e766e19d58b28782/index.js +261 -0
  1524. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/CHANGELOG.md +41 -0
  1525. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/LICENSE-strokesvg.txt +115 -0
  1526. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/OFL.txt +93 -0
  1527. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/README.md +33 -0
  1528. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/demo.html +40 -0
  1529. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/index.js +749 -0
  1530. package/vendor/components/sha256/029f5c406491c39d23f1a35befc702bde2eb882a51fdd2d2bbd9cefb9aaff5d5/strokes-CHANGES.md +20 -0
  1531. package/vendor/components/sha256/03ad8f02fe39c4adc55aae617b79763bd7880af6786126e358f8c02ad7fb7dd8/CHANGELOG.md +25 -0
  1532. package/vendor/components/sha256/03ad8f02fe39c4adc55aae617b79763bd7880af6786126e358f8c02ad7fb7dd8/README.md +46 -0
  1533. package/vendor/components/sha256/03ad8f02fe39c4adc55aae617b79763bd7880af6786126e358f8c02ad7fb7dd8/demo.html +112 -0
  1534. package/vendor/components/sha256/03ad8f02fe39c4adc55aae617b79763bd7880af6786126e358f8c02ad7fb7dd8/index.js +467 -0
  1535. package/vendor/components/sha256/04e95936600124c9542c4013710cd2b524da75fe551239afa471fed5c5b8d17b/README.md +14 -0
  1536. package/vendor/components/sha256/04e95936600124c9542c4013710cd2b524da75fe551239afa471fed5c5b8d17b/demo.html +236 -0
  1537. package/vendor/components/sha256/04e95936600124c9542c4013710cd2b524da75fe551239afa471fed5c5b8d17b/index.js +631 -0
  1538. package/vendor/components/sha256/09ac1c4db96cdee05ea4857b63b643c15d87b13f4df025cc3b96c0b6bbfe7b5d/README.md +38 -0
  1539. package/vendor/components/sha256/09ac1c4db96cdee05ea4857b63b643c15d87b13f4df025cc3b96c0b6bbfe7b5d/demo.html +92 -0
  1540. package/vendor/components/sha256/09ac1c4db96cdee05ea4857b63b643c15d87b13f4df025cc3b96c0b6bbfe7b5d/index.js +402 -0
  1541. package/vendor/components/sha256/0aef0b1aaa430f2f4cb3a3bc09e23f5cb00f280d9b524f692b0ddce99e267c3b/CHANGELOG.md +35 -0
  1542. package/vendor/components/sha256/0aef0b1aaa430f2f4cb3a3bc09e23f5cb00f280d9b524f692b0ddce99e267c3b/README.md +36 -0
  1543. package/vendor/components/sha256/0aef0b1aaa430f2f4cb3a3bc09e23f5cb00f280d9b524f692b0ddce99e267c3b/demo.html +52 -0
  1544. package/vendor/components/sha256/0aef0b1aaa430f2f4cb3a3bc09e23f5cb00f280d9b524f692b0ddce99e267c3b/index.js +267 -0
  1545. package/vendor/components/sha256/0b3db4a02b369f58fc10aef5f4c26b95b7f1fbc18f9fcd073484e1f33cdafd82/CHANGELOG.md +24 -0
  1546. package/vendor/components/sha256/0b3db4a02b369f58fc10aef5f4c26b95b7f1fbc18f9fcd073484e1f33cdafd82/README.md +35 -0
  1547. package/vendor/components/sha256/0b3db4a02b369f58fc10aef5f4c26b95b7f1fbc18f9fcd073484e1f33cdafd82/demo.html +53 -0
  1548. package/vendor/components/sha256/0b3db4a02b369f58fc10aef5f4c26b95b7f1fbc18f9fcd073484e1f33cdafd82/index.js +481 -0
  1549. package/vendor/components/sha256/0b97f68e55cdba5b9953775a5e79b4005f3f745b41756e4103556ef33a93d614/README.md +48 -0
  1550. package/vendor/components/sha256/0b97f68e55cdba5b9953775a5e79b4005f3f745b41756e4103556ef33a93d614/demo.html +61 -0
  1551. package/vendor/components/sha256/0b97f68e55cdba5b9953775a5e79b4005f3f745b41756e4103556ef33a93d614/index.js +114 -0
  1552. package/vendor/components/sha256/0c02494c234498ef3a20d9e605f886425223639dbf94e20a27b97c82d9ada188/README.md +69 -0
  1553. package/vendor/components/sha256/0c02494c234498ef3a20d9e605f886425223639dbf94e20a27b97c82d9ada188/demo.html +50 -0
  1554. package/vendor/components/sha256/0c02494c234498ef3a20d9e605f886425223639dbf94e20a27b97c82d9ada188/index.js +487 -0
  1555. package/vendor/components/sha256/0eb60fac91603d3f3c26cf1ae329ad539365590339d82415c172ee924c25e1d5/CHANGELOG.md +29 -0
  1556. package/vendor/components/sha256/0eb60fac91603d3f3c26cf1ae329ad539365590339d82415c172ee924c25e1d5/README.md +44 -0
  1557. package/vendor/components/sha256/0eb60fac91603d3f3c26cf1ae329ad539365590339d82415c172ee924c25e1d5/demo.html +43 -0
  1558. package/vendor/components/sha256/0eb60fac91603d3f3c26cf1ae329ad539365590339d82415c172ee924c25e1d5/index.js +278 -0
  1559. package/vendor/components/sha256/0ed29166621d8a7095e712b641079560668241671157578fd76c57d0767d6c6d/README.md +47 -0
  1560. package/vendor/components/sha256/0ed29166621d8a7095e712b641079560668241671157578fd76c57d0767d6c6d/demo.html +60 -0
  1561. package/vendor/components/sha256/0ed29166621d8a7095e712b641079560668241671157578fd76c57d0767d6c6d/index.js +113 -0
  1562. package/vendor/components/sha256/0f85ecc000a5665e85229d05a36c0c14e1ddc4bb6b4a4fbedb0fb836b36ea0c2/CHANGELOG.md +30 -0
  1563. package/vendor/components/sha256/0f85ecc000a5665e85229d05a36c0c14e1ddc4bb6b4a4fbedb0fb836b36ea0c2/README.md +32 -0
  1564. package/vendor/components/sha256/0f85ecc000a5665e85229d05a36c0c14e1ddc4bb6b4a4fbedb0fb836b36ea0c2/demo.html +51 -0
  1565. package/vendor/components/sha256/0f85ecc000a5665e85229d05a36c0c14e1ddc4bb6b4a4fbedb0fb836b36ea0c2/index.js +302 -0
  1566. package/vendor/components/sha256/10598b84d3e070ece84905f83ce55eaac9d2df7fc4746e129fe8196bb23d8200/CHANGELOG.md +24 -0
  1567. package/vendor/components/sha256/10598b84d3e070ece84905f83ce55eaac9d2df7fc4746e129fe8196bb23d8200/README.md +43 -0
  1568. package/vendor/components/sha256/10598b84d3e070ece84905f83ce55eaac9d2df7fc4746e129fe8196bb23d8200/demo.html +89 -0
  1569. package/vendor/components/sha256/10598b84d3e070ece84905f83ce55eaac9d2df7fc4746e129fe8196bb23d8200/index.js +298 -0
  1570. package/vendor/components/sha256/106b3dfdf04ae0de25eaf75a0069cde3d2167f69140fe255ef0cdbb485cf5a35/README.md +72 -0
  1571. package/vendor/components/sha256/106b3dfdf04ae0de25eaf75a0069cde3d2167f69140fe255ef0cdbb485cf5a35/demo.html +50 -0
  1572. package/vendor/components/sha256/106b3dfdf04ae0de25eaf75a0069cde3d2167f69140fe255ef0cdbb485cf5a35/index.js +487 -0
  1573. package/vendor/components/sha256/11249486d5823b28ccdcd69cb713c3a99c66de8a42637cb8ab04bc4bce84cb8c/CHANGELOG.md +15 -0
  1574. package/vendor/components/sha256/11249486d5823b28ccdcd69cb713c3a99c66de8a42637cb8ab04bc4bce84cb8c/README.md +25 -0
  1575. package/vendor/components/sha256/11249486d5823b28ccdcd69cb713c3a99c66de8a42637cb8ab04bc4bce84cb8c/demo.html +48 -0
  1576. package/vendor/components/sha256/11249486d5823b28ccdcd69cb713c3a99c66de8a42637cb8ab04bc4bce84cb8c/index.js +88 -0
  1577. package/vendor/components/sha256/1255f8c72c443ec07f74973e6292b8b2a5bf179fd6daed52a40c84cd4813f5b6/CHANGELOG.md +10 -0
  1578. package/vendor/components/sha256/1255f8c72c443ec07f74973e6292b8b2a5bf179fd6daed52a40c84cd4813f5b6/README.md +50 -0
  1579. package/vendor/components/sha256/1255f8c72c443ec07f74973e6292b8b2a5bf179fd6daed52a40c84cd4813f5b6/demo.html +63 -0
  1580. package/vendor/components/sha256/1255f8c72c443ec07f74973e6292b8b2a5bf179fd6daed52a40c84cd4813f5b6/index.js +205 -0
  1581. package/vendor/components/sha256/128a9110ebb4e49be79c099aa7d742914e0fcf937bb15256f1352aa42cfb9b0d/CHANGELOG.md +29 -0
  1582. package/vendor/components/sha256/128a9110ebb4e49be79c099aa7d742914e0fcf937bb15256f1352aa42cfb9b0d/README.md +43 -0
  1583. package/vendor/components/sha256/128a9110ebb4e49be79c099aa7d742914e0fcf937bb15256f1352aa42cfb9b0d/demo.html +89 -0
  1584. package/vendor/components/sha256/128a9110ebb4e49be79c099aa7d742914e0fcf937bb15256f1352aa42cfb9b0d/index.js +309 -0
  1585. package/vendor/components/sha256/131b8d6502cfa409f05cf72b674741128275073ab83a200abbd942767f75ca7c/README.md +41 -0
  1586. package/vendor/components/sha256/131b8d6502cfa409f05cf72b674741128275073ab83a200abbd942767f75ca7c/demo.html +56 -0
  1587. package/vendor/components/sha256/131b8d6502cfa409f05cf72b674741128275073ab83a200abbd942767f75ca7c/index.js +481 -0
  1588. package/vendor/components/sha256/13ecbbf1ccfe59b5ddaddfc96d0c5e8c453dff731b7d39bd0aba4630b666d9c5/CHANGELOG.md +23 -0
  1589. package/vendor/components/sha256/13ecbbf1ccfe59b5ddaddfc96d0c5e8c453dff731b7d39bd0aba4630b666d9c5/README.md +44 -0
  1590. package/vendor/components/sha256/13ecbbf1ccfe59b5ddaddfc96d0c5e8c453dff731b7d39bd0aba4630b666d9c5/demo.html +56 -0
  1591. package/vendor/components/sha256/13ecbbf1ccfe59b5ddaddfc96d0c5e8c453dff731b7d39bd0aba4630b666d9c5/index.js +402 -0
  1592. package/vendor/components/sha256/15f8ebbe2b0e9dcaeacc52d2a47f1aff673d42b0334f028b0a763a4c094bfcb1/README.md +41 -0
  1593. package/vendor/components/sha256/15f8ebbe2b0e9dcaeacc52d2a47f1aff673d42b0334f028b0a763a4c094bfcb1/demo.html +75 -0
  1594. package/vendor/components/sha256/15f8ebbe2b0e9dcaeacc52d2a47f1aff673d42b0334f028b0a763a4c094bfcb1/index.js +349 -0
  1595. package/vendor/components/sha256/1640a5c2b577a321f97e0ff8a2ecc856e51415a9a9e25f8d2423ffbf6b32a896/README.md +41 -0
  1596. package/vendor/components/sha256/1640a5c2b577a321f97e0ff8a2ecc856e51415a9a9e25f8d2423ffbf6b32a896/demo.html +89 -0
  1597. package/vendor/components/sha256/1640a5c2b577a321f97e0ff8a2ecc856e51415a9a9e25f8d2423ffbf6b32a896/index.js +240 -0
  1598. package/vendor/components/sha256/1783baf0a5eb04bb570ce4f2cffd09ab28c458f74286851fa90cfa0a4ff99fa9/CHANGELOG.md +20 -0
  1599. package/vendor/components/sha256/1783baf0a5eb04bb570ce4f2cffd09ab28c458f74286851fa90cfa0a4ff99fa9/README.md +39 -0
  1600. package/vendor/components/sha256/1783baf0a5eb04bb570ce4f2cffd09ab28c458f74286851fa90cfa0a4ff99fa9/demo.html +66 -0
  1601. package/vendor/components/sha256/1783baf0a5eb04bb570ce4f2cffd09ab28c458f74286851fa90cfa0a4ff99fa9/index.js +258 -0
  1602. package/vendor/components/sha256/17e0e42b8e72b34ff4acf5ac64dbcdf4173949d41015ea6003f0f0a378f268bd/README.md +33 -0
  1603. package/vendor/components/sha256/17e0e42b8e72b34ff4acf5ac64dbcdf4173949d41015ea6003f0f0a378f268bd/demo.html +50 -0
  1604. package/vendor/components/sha256/17e0e42b8e72b34ff4acf5ac64dbcdf4173949d41015ea6003f0f0a378f268bd/index.js +231 -0
  1605. package/vendor/components/sha256/195331193a9d0a5677400f354cafb77ed1f7543b6996f07c0ccd934432c92463/README.md +41 -0
  1606. package/vendor/components/sha256/195331193a9d0a5677400f354cafb77ed1f7543b6996f07c0ccd934432c92463/demo.html +44 -0
  1607. package/vendor/components/sha256/195331193a9d0a5677400f354cafb77ed1f7543b6996f07c0ccd934432c92463/index.js +320 -0
  1608. package/vendor/components/sha256/1cda844f00dc1d4a8986812c3419564b2d0604ce0d0d6811a71824d3e98db692/README.md +49 -0
  1609. package/vendor/components/sha256/1cda844f00dc1d4a8986812c3419564b2d0604ce0d0d6811a71824d3e98db692/demo.html +79 -0
  1610. package/vendor/components/sha256/1cda844f00dc1d4a8986812c3419564b2d0604ce0d0d6811a71824d3e98db692/index.js +647 -0
  1611. package/vendor/components/sha256/1da54082b0049fd4e39d12b99a4fbb6bc03317b838940d64e3f87931ce05a950/CHANGELOG.md +20 -0
  1612. package/vendor/components/sha256/1da54082b0049fd4e39d12b99a4fbb6bc03317b838940d64e3f87931ce05a950/README.md +38 -0
  1613. package/vendor/components/sha256/1da54082b0049fd4e39d12b99a4fbb6bc03317b838940d64e3f87931ce05a950/demo.html +115 -0
  1614. package/vendor/components/sha256/1da54082b0049fd4e39d12b99a4fbb6bc03317b838940d64e3f87931ce05a950/index.js +385 -0
  1615. package/vendor/components/sha256/1e83fd0d0006c197ed09155b4230c2a45aabadb8c051b01d19e4bb0655b622d8/CHANGELOG.md +32 -0
  1616. package/vendor/components/sha256/1e83fd0d0006c197ed09155b4230c2a45aabadb8c051b01d19e4bb0655b622d8/README.md +57 -0
  1617. package/vendor/components/sha256/1e83fd0d0006c197ed09155b4230c2a45aabadb8c051b01d19e4bb0655b622d8/demo.html +121 -0
  1618. package/vendor/components/sha256/1e83fd0d0006c197ed09155b4230c2a45aabadb8c051b01d19e4bb0655b622d8/index.js +895 -0
  1619. package/vendor/components/sha256/20caf64d7740669ef99b86d3ab603312c0fe037c4beca3d32288626d9671717d/README.md +36 -0
  1620. package/vendor/components/sha256/20caf64d7740669ef99b86d3ab603312c0fe037c4beca3d32288626d9671717d/demo.html +72 -0
  1621. package/vendor/components/sha256/20caf64d7740669ef99b86d3ab603312c0fe037c4beca3d32288626d9671717d/index.js +260 -0
  1622. package/vendor/components/sha256/219cfeabef4dff696e948c8eeb129570247b6ff903ee795ec7f631c9ee242562/README.md +32 -0
  1623. package/vendor/components/sha256/219cfeabef4dff696e948c8eeb129570247b6ff903ee795ec7f631c9ee242562/demo.html +53 -0
  1624. package/vendor/components/sha256/219cfeabef4dff696e948c8eeb129570247b6ff903ee795ec7f631c9ee242562/index.js +565 -0
  1625. package/vendor/components/sha256/26920d2b4baebfadae00f393d60dab2dafd34066ac4760ec26020f75c8f05c73/README.md +12 -0
  1626. package/vendor/components/sha256/26920d2b4baebfadae00f393d60dab2dafd34066ac4760ec26020f75c8f05c73/index.js +39 -0
  1627. package/vendor/components/sha256/26d5493ac7b78c9fbf01fe19359b027240c61b61a7c8c495d1ca57f18ba1c468/CHANGELOG.md +31 -0
  1628. package/vendor/components/sha256/26d5493ac7b78c9fbf01fe19359b027240c61b61a7c8c495d1ca57f18ba1c468/README.md +32 -0
  1629. package/vendor/components/sha256/26d5493ac7b78c9fbf01fe19359b027240c61b61a7c8c495d1ca57f18ba1c468/demo.html +54 -0
  1630. package/vendor/components/sha256/26d5493ac7b78c9fbf01fe19359b027240c61b61a7c8c495d1ca57f18ba1c468/index.js +268 -0
  1631. package/vendor/components/sha256/2764f03a826a75e3690a7eb8f117ed19f7c7451683b22a1793532f6e69d070f9/README.md +38 -0
  1632. package/vendor/components/sha256/2764f03a826a75e3690a7eb8f117ed19f7c7451683b22a1793532f6e69d070f9/demo.html +43 -0
  1633. package/vendor/components/sha256/2764f03a826a75e3690a7eb8f117ed19f7c7451683b22a1793532f6e69d070f9/index.js +255 -0
  1634. package/vendor/components/sha256/286d6f3d2281ccd5b2f3cee91e1eb6357905cc7846b3c2032230bdde97b5bd77/README.md +40 -0
  1635. package/vendor/components/sha256/286d6f3d2281ccd5b2f3cee91e1eb6357905cc7846b3c2032230bdde97b5bd77/demo.html +44 -0
  1636. package/vendor/components/sha256/286d6f3d2281ccd5b2f3cee91e1eb6357905cc7846b3c2032230bdde97b5bd77/index.js +320 -0
  1637. package/vendor/components/sha256/2a9b96174fbdfbe284dd3a5a6f748e867284d582a6fdf49965fc5ac2931e87d2/CHANGELOG.md +23 -0
  1638. package/vendor/components/sha256/2a9b96174fbdfbe284dd3a5a6f748e867284d582a6fdf49965fc5ac2931e87d2/README.md +34 -0
  1639. package/vendor/components/sha256/2a9b96174fbdfbe284dd3a5a6f748e867284d582a6fdf49965fc5ac2931e87d2/demo.html +73 -0
  1640. package/vendor/components/sha256/2a9b96174fbdfbe284dd3a5a6f748e867284d582a6fdf49965fc5ac2931e87d2/index.js +227 -0
  1641. package/vendor/components/sha256/2ccc1568bb08ca19ef5073551626d4395bd44b1b5337876a36d4e365d4232506/README.md +36 -0
  1642. package/vendor/components/sha256/2ccc1568bb08ca19ef5073551626d4395bd44b1b5337876a36d4e365d4232506/demo.html +72 -0
  1643. package/vendor/components/sha256/2ccc1568bb08ca19ef5073551626d4395bd44b1b5337876a36d4e365d4232506/index.js +301 -0
  1644. package/vendor/components/sha256/2e765ec34159ac8a2887f2826341dfaac7e54699829b1f15521ed7389afddef9/README.md +19 -0
  1645. package/vendor/components/sha256/2e765ec34159ac8a2887f2826341dfaac7e54699829b1f15521ed7389afddef9/demo.html +40 -0
  1646. package/vendor/components/sha256/2e765ec34159ac8a2887f2826341dfaac7e54699829b1f15521ed7389afddef9/index.js +91 -0
  1647. package/vendor/components/sha256/2ec05263e6fe8c9cfd7919e4e8031202997d40dceaa93b962fb47c29c3aa972d/CHANGELOG.md +27 -0
  1648. package/vendor/components/sha256/2ec05263e6fe8c9cfd7919e4e8031202997d40dceaa93b962fb47c29c3aa972d/README.md +35 -0
  1649. package/vendor/components/sha256/2ec05263e6fe8c9cfd7919e4e8031202997d40dceaa93b962fb47c29c3aa972d/demo.html +66 -0
  1650. package/vendor/components/sha256/2ec05263e6fe8c9cfd7919e4e8031202997d40dceaa93b962fb47c29c3aa972d/index.js +313 -0
  1651. package/vendor/components/sha256/2ec8a9acdf58b641dbda9a31643e1c9f77d4e386ce654a58971e3ba6e5530455/CHANGELOG.md +32 -0
  1652. package/vendor/components/sha256/2ec8a9acdf58b641dbda9a31643e1c9f77d4e386ce654a58971e3ba6e5530455/README.md +43 -0
  1653. package/vendor/components/sha256/2ec8a9acdf58b641dbda9a31643e1c9f77d4e386ce654a58971e3ba6e5530455/demo.html +75 -0
  1654. package/vendor/components/sha256/2ec8a9acdf58b641dbda9a31643e1c9f77d4e386ce654a58971e3ba6e5530455/index.js +352 -0
  1655. package/vendor/components/sha256/301bd0fc3d9a7e43b555e571de221a1374cee99d5d9dafaf1904135894ca4e3d/CHANGELOG.md +19 -0
  1656. package/vendor/components/sha256/301bd0fc3d9a7e43b555e571de221a1374cee99d5d9dafaf1904135894ca4e3d/README.md +21 -0
  1657. package/vendor/components/sha256/301bd0fc3d9a7e43b555e571de221a1374cee99d5d9dafaf1904135894ca4e3d/demo.html +33 -0
  1658. package/vendor/components/sha256/301bd0fc3d9a7e43b555e571de221a1374cee99d5d9dafaf1904135894ca4e3d/index.js +106 -0
  1659. package/vendor/components/sha256/3148735986450083484a145f9399e146b3f27efc0efd75ea1c02e1fa8ef01d36/README.md +49 -0
  1660. package/vendor/components/sha256/3148735986450083484a145f9399e146b3f27efc0efd75ea1c02e1fa8ef01d36/demo.html +79 -0
  1661. package/vendor/components/sha256/3148735986450083484a145f9399e146b3f27efc0efd75ea1c02e1fa8ef01d36/index.js +647 -0
  1662. package/vendor/components/sha256/32aa0052bbb1f20f0d97fc8dde7413b49d51c342c7ac2f38f88377d4c5100d88/CHANGELOG.md +23 -0
  1663. package/vendor/components/sha256/32aa0052bbb1f20f0d97fc8dde7413b49d51c342c7ac2f38f88377d4c5100d88/README.md +36 -0
  1664. package/vendor/components/sha256/32aa0052bbb1f20f0d97fc8dde7413b49d51c342c7ac2f38f88377d4c5100d88/demo.html +70 -0
  1665. package/vendor/components/sha256/32aa0052bbb1f20f0d97fc8dde7413b49d51c342c7ac2f38f88377d4c5100d88/index.js +178 -0
  1666. package/vendor/components/sha256/33202e1f661b9c3409e2de59e91dee17b2de8b5837d6b1407fe3d97f22bd92ea/CHANGELOG.md +26 -0
  1667. package/vendor/components/sha256/33202e1f661b9c3409e2de59e91dee17b2de8b5837d6b1407fe3d97f22bd92ea/README.md +39 -0
  1668. package/vendor/components/sha256/33202e1f661b9c3409e2de59e91dee17b2de8b5837d6b1407fe3d97f22bd92ea/demo.html +66 -0
  1669. package/vendor/components/sha256/33202e1f661b9c3409e2de59e91dee17b2de8b5837d6b1407fe3d97f22bd92ea/index.js +303 -0
  1670. package/vendor/components/sha256/34676923713694c396c9f1f406c5a6551c69b617ff5df2b71f3e36a1ce7b7b95/README.md +40 -0
  1671. package/vendor/components/sha256/34676923713694c396c9f1f406c5a6551c69b617ff5df2b71f3e36a1ce7b7b95/demo.html +90 -0
  1672. package/vendor/components/sha256/34676923713694c396c9f1f406c5a6551c69b617ff5df2b71f3e36a1ce7b7b95/index.js +409 -0
  1673. package/vendor/components/sha256/34970c3ad1133fefb3ea2c8bc77431885fa8d8fb157c2e2ee892d243f83bd3f1/CHANGELOG.md +36 -0
  1674. package/vendor/components/sha256/34970c3ad1133fefb3ea2c8bc77431885fa8d8fb157c2e2ee892d243f83bd3f1/README.md +35 -0
  1675. package/vendor/components/sha256/34970c3ad1133fefb3ea2c8bc77431885fa8d8fb157c2e2ee892d243f83bd3f1/demo.html +66 -0
  1676. package/vendor/components/sha256/34970c3ad1133fefb3ea2c8bc77431885fa8d8fb157c2e2ee892d243f83bd3f1/index.js +351 -0
  1677. package/vendor/components/sha256/35341b8bce2f049cc0835f363dcea82f40e31a6dbb5cc056a3d7282ab7838ea4/README.md +22 -0
  1678. package/vendor/components/sha256/35341b8bce2f049cc0835f363dcea82f40e31a6dbb5cc056a3d7282ab7838ea4/index.js +59 -0
  1679. package/vendor/components/sha256/35419611eee5251361ce8d5dc710b9d797af90eae58837a671d7f558aadb7f63/CHANGELOG.md +25 -0
  1680. package/vendor/components/sha256/35419611eee5251361ce8d5dc710b9d797af90eae58837a671d7f558aadb7f63/README.md +32 -0
  1681. package/vendor/components/sha256/35419611eee5251361ce8d5dc710b9d797af90eae58837a671d7f558aadb7f63/demo.html +51 -0
  1682. package/vendor/components/sha256/35419611eee5251361ce8d5dc710b9d797af90eae58837a671d7f558aadb7f63/index.js +270 -0
  1683. package/vendor/components/sha256/35d5835015707b78c29a38d27c89487afae84909328cafccaf40962d377788b8/CHANGELOG.md +20 -0
  1684. package/vendor/components/sha256/35d5835015707b78c29a38d27c89487afae84909328cafccaf40962d377788b8/README.md +40 -0
  1685. package/vendor/components/sha256/35d5835015707b78c29a38d27c89487afae84909328cafccaf40962d377788b8/demo.html +92 -0
  1686. package/vendor/components/sha256/35d5835015707b78c29a38d27c89487afae84909328cafccaf40962d377788b8/index.js +399 -0
  1687. package/vendor/components/sha256/39f28bd9009d9d31a6bf06f31d917b85ea42026e8ecadce0102fff87b4689420/CHANGELOG.md +20 -0
  1688. package/vendor/components/sha256/39f28bd9009d9d31a6bf06f31d917b85ea42026e8ecadce0102fff87b4689420/README.md +50 -0
  1689. package/vendor/components/sha256/39f28bd9009d9d31a6bf06f31d917b85ea42026e8ecadce0102fff87b4689420/demo.html +61 -0
  1690. package/vendor/components/sha256/39f28bd9009d9d31a6bf06f31d917b85ea42026e8ecadce0102fff87b4689420/index.js +141 -0
  1691. package/vendor/components/sha256/3ab111cf496fba19dc5be611265f5f5dab32c812519790dcc23038fa93d64198/README.md +43 -0
  1692. package/vendor/components/sha256/3ab111cf496fba19dc5be611265f5f5dab32c812519790dcc23038fa93d64198/demo.html +101 -0
  1693. package/vendor/components/sha256/3ab111cf496fba19dc5be611265f5f5dab32c812519790dcc23038fa93d64198/index.js +798 -0
  1694. package/vendor/components/sha256/3b5e593560325c6fdc133640384bf82aff652d565483592b64f318db5bae13c8/README.md +23 -0
  1695. package/vendor/components/sha256/3b5e593560325c6fdc133640384bf82aff652d565483592b64f318db5bae13c8/index.js +180 -0
  1696. package/vendor/components/sha256/3f8fbe9132d44899f4ee663239185cc92336751b358497bf668d694702a82041/CHANGELOG.md +26 -0
  1697. package/vendor/components/sha256/3f8fbe9132d44899f4ee663239185cc92336751b358497bf668d694702a82041/README.md +50 -0
  1698. package/vendor/components/sha256/3f8fbe9132d44899f4ee663239185cc92336751b358497bf668d694702a82041/demo.html +61 -0
  1699. package/vendor/components/sha256/3f8fbe9132d44899f4ee663239185cc92336751b358497bf668d694702a82041/index.js +171 -0
  1700. package/vendor/components/sha256/4127774c52f510948f6337bdb63b4d9c586f97fbac8fa551f9259e373a2eb09b/README.md +22 -0
  1701. package/vendor/components/sha256/4127774c52f510948f6337bdb63b4d9c586f97fbac8fa551f9259e373a2eb09b/index.js +41 -0
  1702. package/vendor/components/sha256/41fb94497e0230488b8eb37688bd07109cdd5a03948b892ba621345a1a6314dd/CHANGELOG.md +10 -0
  1703. package/vendor/components/sha256/41fb94497e0230488b8eb37688bd07109cdd5a03948b892ba621345a1a6314dd/README.md +48 -0
  1704. package/vendor/components/sha256/41fb94497e0230488b8eb37688bd07109cdd5a03948b892ba621345a1a6314dd/demo.html +44 -0
  1705. package/vendor/components/sha256/41fb94497e0230488b8eb37688bd07109cdd5a03948b892ba621345a1a6314dd/index.js +425 -0
  1706. package/vendor/components/sha256/4250fe80f8cfbf4126efc1d4d6dc18b6b10ec19e7290433ef5ff7dcc4d24d74f/CHANGELOG.md +24 -0
  1707. package/vendor/components/sha256/4250fe80f8cfbf4126efc1d4d6dc18b6b10ec19e7290433ef5ff7dcc4d24d74f/README.md +31 -0
  1708. package/vendor/components/sha256/4250fe80f8cfbf4126efc1d4d6dc18b6b10ec19e7290433ef5ff7dcc4d24d74f/demo.html +56 -0
  1709. package/vendor/components/sha256/4250fe80f8cfbf4126efc1d4d6dc18b6b10ec19e7290433ef5ff7dcc4d24d74f/index.js +232 -0
  1710. package/vendor/components/sha256/43963c9100c0509889e2c4f0528ba4f2d24076d009be83f5a205f014a168554d/README.md +31 -0
  1711. package/vendor/components/sha256/43963c9100c0509889e2c4f0528ba4f2d24076d009be83f5a205f014a168554d/demo.html +49 -0
  1712. package/vendor/components/sha256/43963c9100c0509889e2c4f0528ba4f2d24076d009be83f5a205f014a168554d/index.js +108 -0
  1713. package/vendor/components/sha256/44e432f8b34c8ef1b20f4eed5c6f2d9199094abcf0540f54718efba887a2ef0f/README.md +29 -0
  1714. package/vendor/components/sha256/44e432f8b34c8ef1b20f4eed5c6f2d9199094abcf0540f54718efba887a2ef0f/demo.html +56 -0
  1715. package/vendor/components/sha256/44e432f8b34c8ef1b20f4eed5c6f2d9199094abcf0540f54718efba887a2ef0f/index.js +156 -0
  1716. package/vendor/components/sha256/473f62b1f3b5219c273072ffbde6c9e420e7a762e65c6f307435eaaedcbf1e9c/CHANGELOG.md +27 -0
  1717. package/vendor/components/sha256/473f62b1f3b5219c273072ffbde6c9e420e7a762e65c6f307435eaaedcbf1e9c/README.md +43 -0
  1718. package/vendor/components/sha256/473f62b1f3b5219c273072ffbde6c9e420e7a762e65c6f307435eaaedcbf1e9c/demo.html +47 -0
  1719. package/vendor/components/sha256/473f62b1f3b5219c273072ffbde6c9e420e7a762e65c6f307435eaaedcbf1e9c/index.js +484 -0
  1720. package/vendor/components/sha256/4915abd3c1a66505a5946edb190491af9eb472810a06662d477d62df44c455ee/README.md +41 -0
  1721. package/vendor/components/sha256/4915abd3c1a66505a5946edb190491af9eb472810a06662d477d62df44c455ee/demo.html +44 -0
  1722. package/vendor/components/sha256/4915abd3c1a66505a5946edb190491af9eb472810a06662d477d62df44c455ee/index.js +331 -0
  1723. package/vendor/components/sha256/4aae85edd2f39e3802527cb176348cf273cb50f4bcf05e5e7e951dd73df65b92/README.md +31 -0
  1724. package/vendor/components/sha256/4aae85edd2f39e3802527cb176348cf273cb50f4bcf05e5e7e951dd73df65b92/demo.html +60 -0
  1725. package/vendor/components/sha256/4aae85edd2f39e3802527cb176348cf273cb50f4bcf05e5e7e951dd73df65b92/index.js +262 -0
  1726. package/vendor/components/sha256/4af4e5f892497f735df2900382b1b1612ac7e545564736d83decf89693d03b84/README.md +22 -0
  1727. package/vendor/components/sha256/4af4e5f892497f735df2900382b1b1612ac7e545564736d83decf89693d03b84/demo.html +48 -0
  1728. package/vendor/components/sha256/4af4e5f892497f735df2900382b1b1612ac7e545564736d83decf89693d03b84/index.js +83 -0
  1729. package/vendor/components/sha256/4be439a3b448b60f965428748ae852c1b9c2f94470e7ba7397a0c63be81f896c/README.md +33 -0
  1730. package/vendor/components/sha256/4be439a3b448b60f965428748ae852c1b9c2f94470e7ba7397a0c63be81f896c/demo.html +50 -0
  1731. package/vendor/components/sha256/4be439a3b448b60f965428748ae852c1b9c2f94470e7ba7397a0c63be81f896c/index.js +240 -0
  1732. package/vendor/components/sha256/4d341f31f827ba6459b8a8b26f8805f87fbf487aa06d1eda76ba2fa02f9d15b0/CHANGELOG.md +18 -0
  1733. package/vendor/components/sha256/4d341f31f827ba6459b8a8b26f8805f87fbf487aa06d1eda76ba2fa02f9d15b0/README.md +21 -0
  1734. package/vendor/components/sha256/4d341f31f827ba6459b8a8b26f8805f87fbf487aa06d1eda76ba2fa02f9d15b0/demo.html +32 -0
  1735. package/vendor/components/sha256/4d341f31f827ba6459b8a8b26f8805f87fbf487aa06d1eda76ba2fa02f9d15b0/index.js +53 -0
  1736. package/vendor/components/sha256/4f6bde3385e59407ddadb42a8701a631399af33ab40d6c6b3899b23254ebd3c7/README.md +33 -0
  1737. package/vendor/components/sha256/4f6bde3385e59407ddadb42a8701a631399af33ab40d6c6b3899b23254ebd3c7/demo.html +66 -0
  1738. package/vendor/components/sha256/4f6bde3385e59407ddadb42a8701a631399af33ab40d6c6b3899b23254ebd3c7/index.js +317 -0
  1739. package/vendor/components/sha256/50569e0f1624094801ea3827d381233fa844acfbebbfb953428dbb600e45ab3d/CHANGELOG.md +23 -0
  1740. package/vendor/components/sha256/50569e0f1624094801ea3827d381233fa844acfbebbfb953428dbb600e45ab3d/README.md +44 -0
  1741. package/vendor/components/sha256/50569e0f1624094801ea3827d381233fa844acfbebbfb953428dbb600e45ab3d/demo.html +44 -0
  1742. package/vendor/components/sha256/50569e0f1624094801ea3827d381233fa844acfbebbfb953428dbb600e45ab3d/index.js +354 -0
  1743. package/vendor/components/sha256/511a7c5daab9ae15ef41675b16927a246ad4d7ed50edb2c0f4ce7940d9f1e159/CHANGELOG.md +30 -0
  1744. package/vendor/components/sha256/511a7c5daab9ae15ef41675b16927a246ad4d7ed50edb2c0f4ce7940d9f1e159/README.md +35 -0
  1745. package/vendor/components/sha256/511a7c5daab9ae15ef41675b16927a246ad4d7ed50edb2c0f4ce7940d9f1e159/demo.html +40 -0
  1746. package/vendor/components/sha256/511a7c5daab9ae15ef41675b16927a246ad4d7ed50edb2c0f4ce7940d9f1e159/index.js +747 -0
  1747. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/CHANGELOG.md +48 -0
  1748. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/README.md +32 -0
  1749. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/demo.html +57 -0
  1750. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/ABCJS-ADAPTER.md +101 -0
  1751. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/LICENSE-abcjs.txt +21 -0
  1752. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/chords.json +89 -0
  1753. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/doremi.json +261 -0
  1754. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/extras.json +192 -0
  1755. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/kaeru.json +521 -0
  1756. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/rhythm.json +248 -0
  1757. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/fixtures/ties.json +360 -0
  1758. package/vendor/components/sha256/513ffe334833d2f6c32627089f5f77e40d9a37b8e17e237106c1c78a4a8f7ee5/index.js +476 -0
  1759. package/vendor/components/sha256/516aa29e4892520193314be4685f82cbbdd5e4de5132e41bc8179615c0e9149e/README.md +41 -0
  1760. package/vendor/components/sha256/516aa29e4892520193314be4685f82cbbdd5e4de5132e41bc8179615c0e9149e/demo.html +56 -0
  1761. package/vendor/components/sha256/516aa29e4892520193314be4685f82cbbdd5e4de5132e41bc8179615c0e9149e/index.js +440 -0
  1762. package/vendor/components/sha256/51f10f02cbd018b136176773dff5576d66cce4872cf41ca6f17f483bd41350fd/CHANGELOG.md +29 -0
  1763. package/vendor/components/sha256/51f10f02cbd018b136176773dff5576d66cce4872cf41ca6f17f483bd41350fd/README.md +44 -0
  1764. package/vendor/components/sha256/51f10f02cbd018b136176773dff5576d66cce4872cf41ca6f17f483bd41350fd/demo.html +56 -0
  1765. package/vendor/components/sha256/51f10f02cbd018b136176773dff5576d66cce4872cf41ca6f17f483bd41350fd/index.js +428 -0
  1766. package/vendor/components/sha256/53497ca286d48dad0cd5e4379f89d22701e8aff7402c4549522ab7051bca3e0f/CHANGELOG.md +24 -0
  1767. package/vendor/components/sha256/53497ca286d48dad0cd5e4379f89d22701e8aff7402c4549522ab7051bca3e0f/README.md +40 -0
  1768. package/vendor/components/sha256/53497ca286d48dad0cd5e4379f89d22701e8aff7402c4549522ab7051bca3e0f/demo.html +70 -0
  1769. package/vendor/components/sha256/53497ca286d48dad0cd5e4379f89d22701e8aff7402c4549522ab7051bca3e0f/index.js +561 -0
  1770. package/vendor/components/sha256/534ab1ba54189ac27790e117aad9d6e247611356b352504e6b8ce5a52b242968/README.md +29 -0
  1771. package/vendor/components/sha256/534ab1ba54189ac27790e117aad9d6e247611356b352504e6b8ce5a52b242968/demo.html +51 -0
  1772. package/vendor/components/sha256/534ab1ba54189ac27790e117aad9d6e247611356b352504e6b8ce5a52b242968/index.js +394 -0
  1773. package/vendor/components/sha256/539e669f52485201558d17a6655d490c80527be80e9a7807aa74253c4dfaab95/CHANGELOG.md +15 -0
  1774. package/vendor/components/sha256/539e669f52485201558d17a6655d490c80527be80e9a7807aa74253c4dfaab95/README.md +31 -0
  1775. package/vendor/components/sha256/539e669f52485201558d17a6655d490c80527be80e9a7807aa74253c4dfaab95/demo.html +56 -0
  1776. package/vendor/components/sha256/539e669f52485201558d17a6655d490c80527be80e9a7807aa74253c4dfaab95/index.js +161 -0
  1777. package/vendor/components/sha256/53a61be488566e8442c4a54cc46b883ae10586f9469433b5e9e3c7c222955439/README.md +32 -0
  1778. package/vendor/components/sha256/53a61be488566e8442c4a54cc46b883ae10586f9469433b5e9e3c7c222955439/demo.html +40 -0
  1779. package/vendor/components/sha256/53a61be488566e8442c4a54cc46b883ae10586f9469433b5e9e3c7c222955439/index.js +781 -0
  1780. package/vendor/components/sha256/53a870236b442412741595c4d5ea0527d3de0bb8a57694dce0f92d6bf4597eda/README.md +38 -0
  1781. package/vendor/components/sha256/53a870236b442412741595c4d5ea0527d3de0bb8a57694dce0f92d6bf4597eda/demo.html +92 -0
  1782. package/vendor/components/sha256/53a870236b442412741595c4d5ea0527d3de0bb8a57694dce0f92d6bf4597eda/index.js +443 -0
  1783. package/vendor/components/sha256/53b1444a08ae15e397f41c7b88b32b2085bdef447bdcb5bcc0030490203b938c/README.md +52 -0
  1784. package/vendor/components/sha256/53b1444a08ae15e397f41c7b88b32b2085bdef447bdcb5bcc0030490203b938c/index.js +282 -0
  1785. package/vendor/components/sha256/5527ee1f708c8ef7d071c273c68fd4f3a014784391a44c7aa650335721bfe25c/README.md +48 -0
  1786. package/vendor/components/sha256/5527ee1f708c8ef7d071c273c68fd4f3a014784391a44c7aa650335721bfe25c/demo.html +60 -0
  1787. package/vendor/components/sha256/5527ee1f708c8ef7d071c273c68fd4f3a014784391a44c7aa650335721bfe25c/index.js +113 -0
  1788. package/vendor/components/sha256/5781a99da9e199697d25fe4a80b62a003362ae23f91130afa10e436bbf69f56b/README.md +32 -0
  1789. package/vendor/components/sha256/5781a99da9e199697d25fe4a80b62a003362ae23f91130afa10e436bbf69f56b/demo.html +53 -0
  1790. package/vendor/components/sha256/5781a99da9e199697d25fe4a80b62a003362ae23f91130afa10e436bbf69f56b/index.js +565 -0
  1791. package/vendor/components/sha256/59f84aafd847f96c232d996cd14ec98b6d91df50d2cad50dde07094272017d56/CHANGELOG.md +29 -0
  1792. package/vendor/components/sha256/59f84aafd847f96c232d996cd14ec98b6d91df50d2cad50dde07094272017d56/README.md +64 -0
  1793. package/vendor/components/sha256/59f84aafd847f96c232d996cd14ec98b6d91df50d2cad50dde07094272017d56/demo.html +97 -0
  1794. package/vendor/components/sha256/59f84aafd847f96c232d996cd14ec98b6d91df50d2cad50dde07094272017d56/index.js +924 -0
  1795. package/vendor/components/sha256/5a0fcbb736862df7d590f7e6d242c8353cac39a0c72a307c68198d64a8108d93/README.md +48 -0
  1796. package/vendor/components/sha256/5a0fcbb736862df7d590f7e6d242c8353cac39a0c72a307c68198d64a8108d93/demo.html +61 -0
  1797. package/vendor/components/sha256/5a0fcbb736862df7d590f7e6d242c8353cac39a0c72a307c68198d64a8108d93/index.js +114 -0
  1798. package/vendor/components/sha256/5e20d50d58c521cd2f603cfbd69f6d99d53af5508b714b3637f51d7ac7fd394a/README.md +33 -0
  1799. package/vendor/components/sha256/5e20d50d58c521cd2f603cfbd69f6d99d53af5508b714b3637f51d7ac7fd394a/demo.html +86 -0
  1800. package/vendor/components/sha256/5e20d50d58c521cd2f603cfbd69f6d99d53af5508b714b3637f51d7ac7fd394a/index.js +300 -0
  1801. package/vendor/components/sha256/5e23306675b7b1e9154e395cf9930f5a46f959f3b36ab49b089973035c222d58/README.md +49 -0
  1802. package/vendor/components/sha256/5e23306675b7b1e9154e395cf9930f5a46f959f3b36ab49b089973035c222d58/demo.html +79 -0
  1803. package/vendor/components/sha256/5e23306675b7b1e9154e395cf9930f5a46f959f3b36ab49b089973035c222d58/index.js +647 -0
  1804. package/vendor/components/sha256/5f58c1f51bd0482dd233893a6b94d044f6844db63abe7adc1b46ae4b79b54bc6/README.md +21 -0
  1805. package/vendor/components/sha256/5f58c1f51bd0482dd233893a6b94d044f6844db63abe7adc1b46ae4b79b54bc6/demo.html +48 -0
  1806. package/vendor/components/sha256/5f58c1f51bd0482dd233893a6b94d044f6844db63abe7adc1b46ae4b79b54bc6/index.js +80 -0
  1807. package/vendor/components/sha256/5fb8cc2131402bdd2d6278d315dc06aa2b55789ba0fa3a6c2a8d172fe6305904/README.md +41 -0
  1808. package/vendor/components/sha256/5fb8cc2131402bdd2d6278d315dc06aa2b55789ba0fa3a6c2a8d172fe6305904/demo.html +75 -0
  1809. package/vendor/components/sha256/5fb8cc2131402bdd2d6278d315dc06aa2b55789ba0fa3a6c2a8d172fe6305904/index.js +349 -0
  1810. package/vendor/components/sha256/6177d9adeb09f8c72c4105e521f723202623d8887ee9e03e53aec51073d33123/CHANGELOG.md +22 -0
  1811. package/vendor/components/sha256/6177d9adeb09f8c72c4105e521f723202623d8887ee9e03e53aec51073d33123/README.md +49 -0
  1812. package/vendor/components/sha256/6177d9adeb09f8c72c4105e521f723202623d8887ee9e03e53aec51073d33123/demo.html +44 -0
  1813. package/vendor/components/sha256/6177d9adeb09f8c72c4105e521f723202623d8887ee9e03e53aec51073d33123/index.js +468 -0
  1814. package/vendor/components/sha256/61b213729212566f0273b09b277d23f2cf4fd2b6640f5a6e9ad97292e1c0cf0b/README.md +31 -0
  1815. package/vendor/components/sha256/61b213729212566f0273b09b277d23f2cf4fd2b6640f5a6e9ad97292e1c0cf0b/demo.html +64 -0
  1816. package/vendor/components/sha256/61b213729212566f0273b09b277d23f2cf4fd2b6640f5a6e9ad97292e1c0cf0b/index.js +175 -0
  1817. package/vendor/components/sha256/633ebcf297efa4dc4c5106c38f9c9734ed7357d0ad597dbfb729eb024d61fc4a/README.md +32 -0
  1818. package/vendor/components/sha256/633ebcf297efa4dc4c5106c38f9c9734ed7357d0ad597dbfb729eb024d61fc4a/demo.html +77 -0
  1819. package/vendor/components/sha256/633ebcf297efa4dc4c5106c38f9c9734ed7357d0ad597dbfb729eb024d61fc4a/index.js +251 -0
  1820. package/vendor/components/sha256/64947d36ee857847ecbc3cd23f2ac9f76f591159945080660c68604c0d4894a0/README.md +72 -0
  1821. package/vendor/components/sha256/64947d36ee857847ecbc3cd23f2ac9f76f591159945080660c68604c0d4894a0/demo.html +50 -0
  1822. package/vendor/components/sha256/64947d36ee857847ecbc3cd23f2ac9f76f591159945080660c68604c0d4894a0/index.js +498 -0
  1823. package/vendor/components/sha256/6622a44274a678bf10393c109d2b9cc6f2a20fffa2b7c13ebaeb3f1141159700/README.md +68 -0
  1824. package/vendor/components/sha256/6622a44274a678bf10393c109d2b9cc6f2a20fffa2b7c13ebaeb3f1141159700/demo.html +50 -0
  1825. package/vendor/components/sha256/6622a44274a678bf10393c109d2b9cc6f2a20fffa2b7c13ebaeb3f1141159700/index.js +451 -0
  1826. package/vendor/components/sha256/66c64a0cb10671a968ed7deb302c5e292ca172b0a7a96f16c83e9dd1208daed9/README.md +37 -0
  1827. package/vendor/components/sha256/66c64a0cb10671a968ed7deb302c5e292ca172b0a7a96f16c83e9dd1208daed9/demo.html +70 -0
  1828. package/vendor/components/sha256/66c64a0cb10671a968ed7deb302c5e292ca172b0a7a96f16c83e9dd1208daed9/index.js +573 -0
  1829. package/vendor/components/sha256/6997f1b54b095a2306b581fbf9e67ad67a7642c35051e34fa39c317d5802b9de/README.md +37 -0
  1830. package/vendor/components/sha256/6997f1b54b095a2306b581fbf9e67ad67a7642c35051e34fa39c317d5802b9de/demo.html +70 -0
  1831. package/vendor/components/sha256/6997f1b54b095a2306b581fbf9e67ad67a7642c35051e34fa39c317d5802b9de/index.js +308 -0
  1832. package/vendor/components/sha256/6c1626dc4c691d7ee4abdef37c21d42dd6d981674ac885a3d2bdc1a884b4e2ab/CHANGELOG.md +27 -0
  1833. package/vendor/components/sha256/6c1626dc4c691d7ee4abdef37c21d42dd6d981674ac885a3d2bdc1a884b4e2ab/README.md +23 -0
  1834. package/vendor/components/sha256/6c1626dc4c691d7ee4abdef37c21d42dd6d981674ac885a3d2bdc1a884b4e2ab/demo.html +236 -0
  1835. package/vendor/components/sha256/6c1626dc4c691d7ee4abdef37c21d42dd6d981674ac885a3d2bdc1a884b4e2ab/index.js +599 -0
  1836. package/vendor/components/sha256/6c6ad697b116d994cf70b23afb2dc0812e90b181097a954ac5cadec747eacacb/CHANGELOG.md +37 -0
  1837. package/vendor/components/sha256/6c6ad697b116d994cf70b23afb2dc0812e90b181097a954ac5cadec747eacacb/README.md +32 -0
  1838. package/vendor/components/sha256/6c6ad697b116d994cf70b23afb2dc0812e90b181097a954ac5cadec747eacacb/demo.html +54 -0
  1839. package/vendor/components/sha256/6c6ad697b116d994cf70b23afb2dc0812e90b181097a954ac5cadec747eacacb/index.js +314 -0
  1840. package/vendor/components/sha256/6cb62a0b47c73ba2d729a2e69e895d91bc2442cc4a87ae48a0119aad6427420f/README.md +33 -0
  1841. package/vendor/components/sha256/6cb62a0b47c73ba2d729a2e69e895d91bc2442cc4a87ae48a0119aad6427420f/demo.html +50 -0
  1842. package/vendor/components/sha256/6cb62a0b47c73ba2d729a2e69e895d91bc2442cc4a87ae48a0119aad6427420f/index.js +232 -0
  1843. package/vendor/components/sha256/6df10ef43ecfc6c7e611a198c2d7fc92215664eb23b6d49d22e69a49445a0d20/README.md +18 -0
  1844. package/vendor/components/sha256/6df10ef43ecfc6c7e611a198c2d7fc92215664eb23b6d49d22e69a49445a0d20/demo.html +40 -0
  1845. package/vendor/components/sha256/6df10ef43ecfc6c7e611a198c2d7fc92215664eb23b6d49d22e69a49445a0d20/index.js +91 -0
  1846. package/vendor/components/sha256/713ba44102ab7fb2390f4524b90faa9deff5569c8903d99c319e8de56b157297/README.md +15 -0
  1847. package/vendor/components/sha256/713ba44102ab7fb2390f4524b90faa9deff5569c8903d99c319e8de56b157297/demo.html +236 -0
  1848. package/vendor/components/sha256/713ba44102ab7fb2390f4524b90faa9deff5569c8903d99c319e8de56b157297/index.js +631 -0
  1849. package/vendor/components/sha256/71f67dfb37263e74d826b9b85bda2be9199b70b0b1d0d415791054e6079cdabf/README.md +37 -0
  1850. package/vendor/components/sha256/71f67dfb37263e74d826b9b85bda2be9199b70b0b1d0d415791054e6079cdabf/demo.html +70 -0
  1851. package/vendor/components/sha256/71f67dfb37263e74d826b9b85bda2be9199b70b0b1d0d415791054e6079cdabf/index.js +316 -0
  1852. package/vendor/components/sha256/728f0777d7cdb6b78aa75123dac89831a21ecbe8dfbee49fea3a864538253ffe/CHANGELOG.md +22 -0
  1853. package/vendor/components/sha256/728f0777d7cdb6b78aa75123dac89831a21ecbe8dfbee49fea3a864538253ffe/README.md +27 -0
  1854. package/vendor/components/sha256/728f0777d7cdb6b78aa75123dac89831a21ecbe8dfbee49fea3a864538253ffe/demo.html +42 -0
  1855. package/vendor/components/sha256/728f0777d7cdb6b78aa75123dac89831a21ecbe8dfbee49fea3a864538253ffe/index.js +233 -0
  1856. package/vendor/components/sha256/7324349691c265ff4cd5f9219bb9326bf966dbf0feb93dbe893edadd2c0595bc/CHANGELOG.md +31 -0
  1857. package/vendor/components/sha256/7324349691c265ff4cd5f9219bb9326bf966dbf0feb93dbe893edadd2c0595bc/README.md +35 -0
  1858. package/vendor/components/sha256/7324349691c265ff4cd5f9219bb9326bf966dbf0feb93dbe893edadd2c0595bc/demo.html +66 -0
  1859. package/vendor/components/sha256/7324349691c265ff4cd5f9219bb9326bf966dbf0feb93dbe893edadd2c0595bc/index.js +342 -0
  1860. package/vendor/components/sha256/7421226f6cbbee73ccf20e2300d4da918a7202536a4a3b861e80dfa3f815a982/CHANGELOG.md +25 -0
  1861. package/vendor/components/sha256/7421226f6cbbee73ccf20e2300d4da918a7202536a4a3b861e80dfa3f815a982/README.md +35 -0
  1862. package/vendor/components/sha256/7421226f6cbbee73ccf20e2300d4da918a7202536a4a3b861e80dfa3f815a982/demo.html +40 -0
  1863. package/vendor/components/sha256/7421226f6cbbee73ccf20e2300d4da918a7202536a4a3b861e80dfa3f815a982/index.js +731 -0
  1864. package/vendor/components/sha256/74d0b4b53effd6d93ecaeb15f2e9692b94795d48ea9ea32b7380713db6b13c1d/README.md +38 -0
  1865. package/vendor/components/sha256/74d0b4b53effd6d93ecaeb15f2e9692b94795d48ea9ea32b7380713db6b13c1d/demo.html +92 -0
  1866. package/vendor/components/sha256/74d0b4b53effd6d93ecaeb15f2e9692b94795d48ea9ea32b7380713db6b13c1d/index.js +443 -0
  1867. package/vendor/components/sha256/764087c214d3c4916f47dcce1e0bda08ad0bc727f5b64016de5e6b5947ebf698/CHANGELOG.md +27 -0
  1868. package/vendor/components/sha256/764087c214d3c4916f47dcce1e0bda08ad0bc727f5b64016de5e6b5947ebf698/README.md +36 -0
  1869. package/vendor/components/sha256/764087c214d3c4916f47dcce1e0bda08ad0bc727f5b64016de5e6b5947ebf698/demo.html +50 -0
  1870. package/vendor/components/sha256/764087c214d3c4916f47dcce1e0bda08ad0bc727f5b64016de5e6b5947ebf698/index.js +247 -0
  1871. package/vendor/components/sha256/7768a559a6b001f1b98508984f691a579d6f401e3fe795a3ecefd79888c24a6f/README.md +40 -0
  1872. package/vendor/components/sha256/7768a559a6b001f1b98508984f691a579d6f401e3fe795a3ecefd79888c24a6f/demo.html +90 -0
  1873. package/vendor/components/sha256/7768a559a6b001f1b98508984f691a579d6f401e3fe795a3ecefd79888c24a6f/index.js +409 -0
  1874. package/vendor/components/sha256/79ee5836338d1c06252af2bef5ec700839e75c1ec7710c05b3781d1b0ca11a56/README.md +41 -0
  1875. package/vendor/components/sha256/79ee5836338d1c06252af2bef5ec700839e75c1ec7710c05b3781d1b0ca11a56/demo.html +75 -0
  1876. package/vendor/components/sha256/79ee5836338d1c06252af2bef5ec700839e75c1ec7710c05b3781d1b0ca11a56/index.js +349 -0
  1877. package/vendor/components/sha256/7df0500847a59041f21bce9f1c28bf8d4e8f67be0bd634715fdbc4a5b90c5302/README.md +62 -0
  1878. package/vendor/components/sha256/7df0500847a59041f21bce9f1c28bf8d4e8f67be0bd634715fdbc4a5b90c5302/demo.html +97 -0
  1879. package/vendor/components/sha256/7df0500847a59041f21bce9f1c28bf8d4e8f67be0bd634715fdbc4a5b90c5302/index.js +874 -0
  1880. package/vendor/components/sha256/7e3022710f90149790b91a12ae1c09cdad6d451651ca97745d09ca62cf1dd73c/README.md +41 -0
  1881. package/vendor/components/sha256/7e3022710f90149790b91a12ae1c09cdad6d451651ca97745d09ca62cf1dd73c/demo.html +75 -0
  1882. package/vendor/components/sha256/7e3022710f90149790b91a12ae1c09cdad6d451651ca97745d09ca62cf1dd73c/index.js +309 -0
  1883. package/vendor/components/sha256/80ffe9b9ff6a59cff510e575dcabab161fb5d8b35263763903c972355926ff0c/README.md +37 -0
  1884. package/vendor/components/sha256/80ffe9b9ff6a59cff510e575dcabab161fb5d8b35263763903c972355926ff0c/demo.html +66 -0
  1885. package/vendor/components/sha256/80ffe9b9ff6a59cff510e575dcabab161fb5d8b35263763903c972355926ff0c/index.js +309 -0
  1886. package/vendor/components/sha256/82b2dbc925a4ae4511bb48ccb1777a3932313ac7e18cb91572371d272a930980/README.md +33 -0
  1887. package/vendor/components/sha256/82b2dbc925a4ae4511bb48ccb1777a3932313ac7e18cb91572371d272a930980/demo.html +69 -0
  1888. package/vendor/components/sha256/82b2dbc925a4ae4511bb48ccb1777a3932313ac7e18cb91572371d272a930980/index.js +228 -0
  1889. package/vendor/components/sha256/8306e5a03dfbea480b69ed24675b580a180c4692644dcc22db5ba4192357a17c/CHANGELOG.md +23 -0
  1890. package/vendor/components/sha256/8306e5a03dfbea480b69ed24675b580a180c4692644dcc22db5ba4192357a17c/README.md +21 -0
  1891. package/vendor/components/sha256/8306e5a03dfbea480b69ed24675b580a180c4692644dcc22db5ba4192357a17c/demo.html +32 -0
  1892. package/vendor/components/sha256/8306e5a03dfbea480b69ed24675b580a180c4692644dcc22db5ba4192357a17c/index.js +139 -0
  1893. package/vendor/components/sha256/83595322b87a803914cd8010b2cf371c7cbbab111629befab9d51b4faffd3cc6/README.md +54 -0
  1894. package/vendor/components/sha256/83595322b87a803914cd8010b2cf371c7cbbab111629befab9d51b4faffd3cc6/demo.html +121 -0
  1895. package/vendor/components/sha256/83595322b87a803914cd8010b2cf371c7cbbab111629befab9d51b4faffd3cc6/index.js +912 -0
  1896. package/vendor/components/sha256/84401a62ecc7140bc23b49e81cfd15e1b41b9447f6911ec572f1691bc798bbf6/README.md +15 -0
  1897. package/vendor/components/sha256/84401a62ecc7140bc23b49e81cfd15e1b41b9447f6911ec572f1691bc798bbf6/demo.html +32 -0
  1898. package/vendor/components/sha256/84401a62ecc7140bc23b49e81cfd15e1b41b9447f6911ec572f1691bc798bbf6/index.js +231 -0
  1899. package/vendor/components/sha256/8460885d7f21bc4834bf4a5268d588797a5e73f3dad58e2bcdbd1c7710535082/CHANGELOG.md +23 -0
  1900. package/vendor/components/sha256/8460885d7f21bc4834bf4a5268d588797a5e73f3dad58e2bcdbd1c7710535082/README.md +43 -0
  1901. package/vendor/components/sha256/8460885d7f21bc4834bf4a5268d588797a5e73f3dad58e2bcdbd1c7710535082/demo.html +47 -0
  1902. package/vendor/components/sha256/8460885d7f21bc4834bf4a5268d588797a5e73f3dad58e2bcdbd1c7710535082/index.js +483 -0
  1903. package/vendor/components/sha256/84fb356907714d291da54098ad7f3f8a0b471df1396b5df153b59d71ed35fa2c/README.md +14 -0
  1904. package/vendor/components/sha256/84fb356907714d291da54098ad7f3f8a0b471df1396b5df153b59d71ed35fa2c/demo.html +236 -0
  1905. package/vendor/components/sha256/84fb356907714d291da54098ad7f3f8a0b471df1396b5df153b59d71ed35fa2c/index.js +620 -0
  1906. package/vendor/components/sha256/855ebfb90d4c784c35c372d52e2576776ce55dbe6e4500618e5da847d1d74559/CHANGELOG.md +20 -0
  1907. package/vendor/components/sha256/855ebfb90d4c784c35c372d52e2576776ce55dbe6e4500618e5da847d1d74559/README.md +75 -0
  1908. package/vendor/components/sha256/855ebfb90d4c784c35c372d52e2576776ce55dbe6e4500618e5da847d1d74559/demo.html +50 -0
  1909. package/vendor/components/sha256/855ebfb90d4c784c35c372d52e2576776ce55dbe6e4500618e5da847d1d74559/index.js +342 -0
  1910. package/vendor/components/sha256/85c96721a33dfe87e2c4db9e1745ebfbb0f2edfdb3dfca83f69ad92b67fe9ea2/README.md +32 -0
  1911. package/vendor/components/sha256/85c96721a33dfe87e2c4db9e1745ebfbb0f2edfdb3dfca83f69ad92b67fe9ea2/demo.html +49 -0
  1912. package/vendor/components/sha256/85c96721a33dfe87e2c4db9e1745ebfbb0f2edfdb3dfca83f69ad92b67fe9ea2/index.js +216 -0
  1913. package/vendor/components/sha256/8623f58cf4a415090f06bedbaa5e1a74c1bb0eb3862d7bfb2232e6c1ee0c25aa/README.md +25 -0
  1914. package/vendor/components/sha256/8623f58cf4a415090f06bedbaa5e1a74c1bb0eb3862d7bfb2232e6c1ee0c25aa/demo.html +54 -0
  1915. package/vendor/components/sha256/8623f58cf4a415090f06bedbaa5e1a74c1bb0eb3862d7bfb2232e6c1ee0c25aa/index.js +294 -0
  1916. package/vendor/components/sha256/868b052174a7e030c07894ff38d2eef21cbd64973fbf6001cfff567607811223/README.md +14 -0
  1917. package/vendor/components/sha256/868b052174a7e030c07894ff38d2eef21cbd64973fbf6001cfff567607811223/demo.html +32 -0
  1918. package/vendor/components/sha256/868b052174a7e030c07894ff38d2eef21cbd64973fbf6001cfff567607811223/index.js +231 -0
  1919. package/vendor/components/sha256/86d7e20631c2ff8f708115726bd09d8ee66c1816c5413c5efe1e1eca006d71af/README.md +54 -0
  1920. package/vendor/components/sha256/86d7e20631c2ff8f708115726bd09d8ee66c1816c5413c5efe1e1eca006d71af/demo.html +121 -0
  1921. package/vendor/components/sha256/86d7e20631c2ff8f708115726bd09d8ee66c1816c5413c5efe1e1eca006d71af/index.js +912 -0
  1922. package/vendor/components/sha256/8833002d016a617a3494b16d19f06d78a96bf6e811a5c0e7e5743d4fcffe2ccd/README.md +32 -0
  1923. package/vendor/components/sha256/8833002d016a617a3494b16d19f06d78a96bf6e811a5c0e7e5743d4fcffe2ccd/demo.html +40 -0
  1924. package/vendor/components/sha256/8833002d016a617a3494b16d19f06d78a96bf6e811a5c0e7e5743d4fcffe2ccd/index.js +741 -0
  1925. package/vendor/components/sha256/8b521cf7751231c01877c49ff777786e773de6de26378f390008ae471aaaeffc/CHANGELOG.md +31 -0
  1926. package/vendor/components/sha256/8b521cf7751231c01877c49ff777786e773de6de26378f390008ae471aaaeffc/README.md +36 -0
  1927. package/vendor/components/sha256/8b521cf7751231c01877c49ff777786e773de6de26378f390008ae471aaaeffc/demo.html +52 -0
  1928. package/vendor/components/sha256/8b521cf7751231c01877c49ff777786e773de6de26378f390008ae471aaaeffc/index.js +263 -0
  1929. package/vendor/components/sha256/8da7e596d0371c29c90fd86ddea20d0f1586aa20661b16377d92ddf5a3a19f8b/README.md +33 -0
  1930. package/vendor/components/sha256/8da7e596d0371c29c90fd86ddea20d0f1586aa20661b16377d92ddf5a3a19f8b/demo.html +69 -0
  1931. package/vendor/components/sha256/8da7e596d0371c29c90fd86ddea20d0f1586aa20661b16377d92ddf5a3a19f8b/index.js +261 -0
  1932. package/vendor/components/sha256/8ed3a0ee313218ff5a6aa8d891e790a4dbbf23a2384e154284d4f2cbd3faa4b4/CHANGELOG.md +26 -0
  1933. package/vendor/components/sha256/8ed3a0ee313218ff5a6aa8d891e790a4dbbf23a2384e154284d4f2cbd3faa4b4/README.md +57 -0
  1934. package/vendor/components/sha256/8ed3a0ee313218ff5a6aa8d891e790a4dbbf23a2384e154284d4f2cbd3faa4b4/demo.html +121 -0
  1935. package/vendor/components/sha256/8ed3a0ee313218ff5a6aa8d891e790a4dbbf23a2384e154284d4f2cbd3faa4b4/index.js +875 -0
  1936. package/vendor/components/sha256/90ffa5b594074f9c86ffc2b3e5a024624c74cd631b18dfacf0a7377da878e229/README.md +37 -0
  1937. package/vendor/components/sha256/90ffa5b594074f9c86ffc2b3e5a024624c74cd631b18dfacf0a7377da878e229/demo.html +70 -0
  1938. package/vendor/components/sha256/90ffa5b594074f9c86ffc2b3e5a024624c74cd631b18dfacf0a7377da878e229/index.js +307 -0
  1939. package/vendor/components/sha256/915c107b3cd1f2657911c539409923572deb0f68607cc6955f8be61fa6034622/README.md +20 -0
  1940. package/vendor/components/sha256/915c107b3cd1f2657911c539409923572deb0f68607cc6955f8be61fa6034622/demo.html +42 -0
  1941. package/vendor/components/sha256/915c107b3cd1f2657911c539409923572deb0f68607cc6955f8be61fa6034622/index.js +102 -0
  1942. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/CHANGELOG.md +44 -0
  1943. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/README.md +32 -0
  1944. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/demo.html +57 -0
  1945. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/ABCJS-ADAPTER.md +101 -0
  1946. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/LICENSE-abcjs.txt +21 -0
  1947. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/chords.json +89 -0
  1948. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/doremi.json +261 -0
  1949. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/extras.json +192 -0
  1950. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/kaeru.json +521 -0
  1951. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/rhythm.json +248 -0
  1952. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/fixtures/ties.json +360 -0
  1953. package/vendor/components/sha256/92111d5968d74b63bc43c559c35498507bd654aa76d87dcc1462e276863c7457/index.js +474 -0
  1954. package/vendor/components/sha256/922ba3c715943639a851540fc516dfce737dc371406bdc68f7c5081819fc472a/README.md +28 -0
  1955. package/vendor/components/sha256/922ba3c715943639a851540fc516dfce737dc371406bdc68f7c5081819fc472a/demo.html +56 -0
  1956. package/vendor/components/sha256/922ba3c715943639a851540fc516dfce737dc371406bdc68f7c5081819fc472a/index.js +150 -0
  1957. package/vendor/components/sha256/92be6dffad7fed271018717930766d8f52138db5babdc9129b1d99bc51e67154/README.md +33 -0
  1958. package/vendor/components/sha256/92be6dffad7fed271018717930766d8f52138db5babdc9129b1d99bc51e67154/demo.html +50 -0
  1959. package/vendor/components/sha256/92be6dffad7fed271018717930766d8f52138db5babdc9129b1d99bc51e67154/index.js +231 -0
  1960. package/vendor/components/sha256/947dca6d3695e6ff38b25e1e00995609fbcfbe7f2774cfb17ab55df3e4b945c8/README.md +33 -0
  1961. package/vendor/components/sha256/947dca6d3695e6ff38b25e1e00995609fbcfbe7f2774cfb17ab55df3e4b945c8/demo.html +66 -0
  1962. package/vendor/components/sha256/947dca6d3695e6ff38b25e1e00995609fbcfbe7f2774cfb17ab55df3e4b945c8/index.js +325 -0
  1963. package/vendor/components/sha256/968710c7592a805d57ffd11171f79ee23f962923b13351ff0ae0b12279208714/README.md +19 -0
  1964. package/vendor/components/sha256/968710c7592a805d57ffd11171f79ee23f962923b13351ff0ae0b12279208714/index.js +200 -0
  1965. package/vendor/components/sha256/98f5463e811fa3f39a46b704959256537f46d3e7da8d45cb17957ab77dd1f548/README.md +38 -0
  1966. package/vendor/components/sha256/98f5463e811fa3f39a46b704959256537f46d3e7da8d45cb17957ab77dd1f548/demo.html +92 -0
  1967. package/vendor/components/sha256/98f5463e811fa3f39a46b704959256537f46d3e7da8d45cb17957ab77dd1f548/index.js +443 -0
  1968. package/vendor/components/sha256/9fe6ac64226e96a8cda10a3d3205ca9f09782a5a88e2d02e57e73d8bafac8e2d/README.md +23 -0
  1969. package/vendor/components/sha256/9fe6ac64226e96a8cda10a3d3205ca9f09782a5a88e2d02e57e73d8bafac8e2d/demo.html +54 -0
  1970. package/vendor/components/sha256/9fe6ac64226e96a8cda10a3d3205ca9f09782a5a88e2d02e57e73d8bafac8e2d/index.js +102 -0
  1971. package/vendor/components/sha256/a0353fe9c7aa0a739d0138babc9c75ff393ad1968e3b7ed3674ac9bb05f9ea23/README.md +40 -0
  1972. package/vendor/components/sha256/a0353fe9c7aa0a739d0138babc9c75ff393ad1968e3b7ed3674ac9bb05f9ea23/demo.html +43 -0
  1973. package/vendor/components/sha256/a0353fe9c7aa0a739d0138babc9c75ff393ad1968e3b7ed3674ac9bb05f9ea23/index.js +255 -0
  1974. package/vendor/components/sha256/a11f1ceefd99057623a4a692e89c2d96490fb67d1567598ed5f26c7d392d4d4c/README.md +43 -0
  1975. package/vendor/components/sha256/a11f1ceefd99057623a4a692e89c2d96490fb67d1567598ed5f26c7d392d4d4c/demo.html +101 -0
  1976. package/vendor/components/sha256/a11f1ceefd99057623a4a692e89c2d96490fb67d1567598ed5f26c7d392d4d4c/index.js +840 -0
  1977. package/vendor/components/sha256/a3b3d927c0b16fe8376b7cf3885f4b89c5da78b03c0e7b066d55c7592b39dfb8/README.md +34 -0
  1978. package/vendor/components/sha256/a3b3d927c0b16fe8376b7cf3885f4b89c5da78b03c0e7b066d55c7592b39dfb8/demo.html +70 -0
  1979. package/vendor/components/sha256/a3b3d927c0b16fe8376b7cf3885f4b89c5da78b03c0e7b066d55c7592b39dfb8/index.js +218 -0
  1980. package/vendor/components/sha256/a44e72e1e6aed89240ab7e0576424898e2ad9f1c53713ec9a7648031aa14a389/README.md +32 -0
  1981. package/vendor/components/sha256/a44e72e1e6aed89240ab7e0576424898e2ad9f1c53713ec9a7648031aa14a389/demo.html +77 -0
  1982. package/vendor/components/sha256/a44e72e1e6aed89240ab7e0576424898e2ad9f1c53713ec9a7648031aa14a389/index.js +210 -0
  1983. package/vendor/components/sha256/a492a8608b51e275735b83e6467e693f2773984a572cedbd610efd2d2a084fbf/README.md +26 -0
  1984. package/vendor/components/sha256/a492a8608b51e275735b83e6467e693f2773984a572cedbd610efd2d2a084fbf/demo.html +54 -0
  1985. package/vendor/components/sha256/a492a8608b51e275735b83e6467e693f2773984a572cedbd610efd2d2a084fbf/index.js +294 -0
  1986. package/vendor/components/sha256/a4baeda47410cc2ded554725c2612766df3a7bbdba8c8cbb6d841f2ea4008023/README.md +18 -0
  1987. package/vendor/components/sha256/a4baeda47410cc2ded554725c2612766df3a7bbdba8c8cbb6d841f2ea4008023/demo.html +236 -0
  1988. package/vendor/components/sha256/a4baeda47410cc2ded554725c2612766df3a7bbdba8c8cbb6d841f2ea4008023/index.js +643 -0
  1989. package/vendor/components/sha256/a622caae26ad2f068f579949fe1fe2acca37e98748358acc2d8da90de1c93b09/README.md +29 -0
  1990. package/vendor/components/sha256/a622caae26ad2f068f579949fe1fe2acca37e98748358acc2d8da90de1c93b09/demo.html +64 -0
  1991. package/vendor/components/sha256/a622caae26ad2f068f579949fe1fe2acca37e98748358acc2d8da90de1c93b09/index.js +175 -0
  1992. package/vendor/components/sha256/a9e1790404966e62f2e2c49f3b2febb02bc108faf7b30fa86113559b3a7fb84c/README.md +68 -0
  1993. package/vendor/components/sha256/a9e1790404966e62f2e2c49f3b2febb02bc108faf7b30fa86113559b3a7fb84c/demo.html +76 -0
  1994. package/vendor/components/sha256/a9e1790404966e62f2e2c49f3b2febb02bc108faf7b30fa86113559b3a7fb84c/index.js +786 -0
  1995. package/vendor/components/sha256/aa06b370a24cd9be0cd6815204b26b1d5ba7be077a5885d087e14858b2793f00/README.md +40 -0
  1996. package/vendor/components/sha256/aa06b370a24cd9be0cd6815204b26b1d5ba7be077a5885d087e14858b2793f00/demo.html +90 -0
  1997. package/vendor/components/sha256/aa06b370a24cd9be0cd6815204b26b1d5ba7be077a5885d087e14858b2793f00/index.js +409 -0
  1998. package/vendor/components/sha256/ac3be86eeff290db6eb8fff19c32a6790539b2281bbc044051cb525a2146ba75/README.md +37 -0
  1999. package/vendor/components/sha256/ac3be86eeff290db6eb8fff19c32a6790539b2281bbc044051cb525a2146ba75/demo.html +66 -0
  2000. package/vendor/components/sha256/ac3be86eeff290db6eb8fff19c32a6790539b2281bbc044051cb525a2146ba75/index.js +269 -0
  2001. package/vendor/components/sha256/ac9148961116fd3da1b67ebabdd22b4de624af7e38144134b40dbe693d55e344/CHANGELOG.md +16 -0
  2002. package/vendor/components/sha256/ac9148961116fd3da1b67ebabdd22b4de624af7e38144134b40dbe693d55e344/README.md +38 -0
  2003. package/vendor/components/sha256/ac9148961116fd3da1b67ebabdd22b4de624af7e38144134b40dbe693d55e344/demo.html +115 -0
  2004. package/vendor/components/sha256/ac9148961116fd3da1b67ebabdd22b4de624af7e38144134b40dbe693d55e344/index.js +361 -0
  2005. package/vendor/components/sha256/ad9e9c2ca0299d221f22fd657ea64c1318a0cda7d4fe98a8c98459e67b81422c/CHANGELOG.md +19 -0
  2006. package/vendor/components/sha256/ad9e9c2ca0299d221f22fd657ea64c1318a0cda7d4fe98a8c98459e67b81422c/README.md +31 -0
  2007. package/vendor/components/sha256/ad9e9c2ca0299d221f22fd657ea64c1318a0cda7d4fe98a8c98459e67b81422c/demo.html +56 -0
  2008. package/vendor/components/sha256/ad9e9c2ca0299d221f22fd657ea64c1318a0cda7d4fe98a8c98459e67b81422c/index.js +196 -0
  2009. package/vendor/components/sha256/af3cada466eb1deb15fd4681498e6a1564bf7a97f7606694a885b31b4ec22da5/README.md +25 -0
  2010. package/vendor/components/sha256/af3cada466eb1deb15fd4681498e6a1564bf7a97f7606694a885b31b4ec22da5/index.js +122 -0
  2011. package/vendor/components/sha256/afcc0d2ca964536fb7a4a0997bede6b16a2049fd2a6ff298e1b8592f236257f7/CHANGELOG.md +26 -0
  2012. package/vendor/components/sha256/afcc0d2ca964536fb7a4a0997bede6b16a2049fd2a6ff298e1b8592f236257f7/README.md +39 -0
  2013. package/vendor/components/sha256/afcc0d2ca964536fb7a4a0997bede6b16a2049fd2a6ff298e1b8592f236257f7/demo.html +70 -0
  2014. package/vendor/components/sha256/afcc0d2ca964536fb7a4a0997bede6b16a2049fd2a6ff298e1b8592f236257f7/index.js +158 -0
  2015. package/vendor/components/sha256/b08c7fea7916f5a77c0a29e69fe13b7f5267ddb7387ee6ebfcd9d2b1d0a7ac79/CHANGELOG.md +31 -0
  2016. package/vendor/components/sha256/b08c7fea7916f5a77c0a29e69fe13b7f5267ddb7387ee6ebfcd9d2b1d0a7ac79/README.md +71 -0
  2017. package/vendor/components/sha256/b08c7fea7916f5a77c0a29e69fe13b7f5267ddb7387ee6ebfcd9d2b1d0a7ac79/demo.html +76 -0
  2018. package/vendor/components/sha256/b08c7fea7916f5a77c0a29e69fe13b7f5267ddb7387ee6ebfcd9d2b1d0a7ac79/index.js +806 -0
  2019. package/vendor/components/sha256/b0c9c5abbd15ef3f73f50a0a927065e6599536879c9ac31eeaea1144d3365b77/README.md +32 -0
  2020. package/vendor/components/sha256/b0c9c5abbd15ef3f73f50a0a927065e6599536879c9ac31eeaea1144d3365b77/demo.html +53 -0
  2021. package/vendor/components/sha256/b0c9c5abbd15ef3f73f50a0a927065e6599536879c9ac31eeaea1144d3365b77/index.js +524 -0
  2022. package/vendor/components/sha256/b3d313b1deba2bf61d715ba889479edbd90d333f126091445483dfe5a2121280/CHANGELOG.md +16 -0
  2023. package/vendor/components/sha256/b3d313b1deba2bf61d715ba889479edbd90d333f126091445483dfe5a2121280/README.md +27 -0
  2024. package/vendor/components/sha256/b3d313b1deba2bf61d715ba889479edbd90d333f126091445483dfe5a2121280/demo.html +42 -0
  2025. package/vendor/components/sha256/b3d313b1deba2bf61d715ba889479edbd90d333f126091445483dfe5a2121280/index.js +121 -0
  2026. package/vendor/components/sha256/b3da6df3b42feb15fb29dc943cea5df028600d0d113fd6e8e32b150b74400908/CHANGELOG.md +22 -0
  2027. package/vendor/components/sha256/b3da6df3b42feb15fb29dc943cea5df028600d0d113fd6e8e32b150b74400908/README.md +64 -0
  2028. package/vendor/components/sha256/b3da6df3b42feb15fb29dc943cea5df028600d0d113fd6e8e32b150b74400908/demo.html +97 -0
  2029. package/vendor/components/sha256/b3da6df3b42feb15fb29dc943cea5df028600d0d113fd6e8e32b150b74400908/index.js +875 -0
  2030. package/vendor/components/sha256/b3ebd4ffde8bc39c7f9100642307cd83b9d32e072f1f894e7c4d6996a6cc0d21/CHANGELOG.md +16 -0
  2031. package/vendor/components/sha256/b3ebd4ffde8bc39c7f9100642307cd83b9d32e072f1f894e7c4d6996a6cc0d21/README.md +49 -0
  2032. package/vendor/components/sha256/b3ebd4ffde8bc39c7f9100642307cd83b9d32e072f1f894e7c4d6996a6cc0d21/demo.html +44 -0
  2033. package/vendor/components/sha256/b3ebd4ffde8bc39c7f9100642307cd83b9d32e072f1f894e7c4d6996a6cc0d21/index.js +426 -0
  2034. package/vendor/components/sha256/b463b215338973d7f05ba9fe14187ded5069d74d68dd50eaee445d8ba9d5cd16/CHANGELOG.md +26 -0
  2035. package/vendor/components/sha256/b463b215338973d7f05ba9fe14187ded5069d74d68dd50eaee445d8ba9d5cd16/README.md +40 -0
  2036. package/vendor/components/sha256/b463b215338973d7f05ba9fe14187ded5069d74d68dd50eaee445d8ba9d5cd16/demo.html +92 -0
  2037. package/vendor/components/sha256/b463b215338973d7f05ba9fe14187ded5069d74d68dd50eaee445d8ba9d5cd16/index.js +424 -0
  2038. package/vendor/components/sha256/b707dec1072d9c75092d29f02725b5811964531bba3183814035a0f59bf6dab9/README.md +38 -0
  2039. package/vendor/components/sha256/b707dec1072d9c75092d29f02725b5811964531bba3183814035a0f59bf6dab9/demo.html +42 -0
  2040. package/vendor/components/sha256/b707dec1072d9c75092d29f02725b5811964531bba3183814035a0f59bf6dab9/index.js +252 -0
  2041. package/vendor/components/sha256/b757b0ef249e171d810a2a0e17e345d65683c0ec4fbf6cc14093ff3374423691/README.md +37 -0
  2042. package/vendor/components/sha256/b757b0ef249e171d810a2a0e17e345d65683c0ec4fbf6cc14093ff3374423691/demo.html +70 -0
  2043. package/vendor/components/sha256/b757b0ef249e171d810a2a0e17e345d65683c0ec4fbf6cc14093ff3374423691/index.js +606 -0
  2044. package/vendor/components/sha256/b889dfb55f0bdef70778833b62aa6819a7222ccebf4ab0613ba938d827370b61/README.md +31 -0
  2045. package/vendor/components/sha256/b889dfb55f0bdef70778833b62aa6819a7222ccebf4ab0613ba938d827370b61/demo.html +64 -0
  2046. package/vendor/components/sha256/b889dfb55f0bdef70778833b62aa6819a7222ccebf4ab0613ba938d827370b61/index.js +179 -0
  2047. package/vendor/components/sha256/b8eebe877599e04dca013ca0e758d6d7079e96cbc419eb2db3961886dccfc8b6/CHANGELOG.md +26 -0
  2048. package/vendor/components/sha256/b8eebe877599e04dca013ca0e758d6d7079e96cbc419eb2db3961886dccfc8b6/README.md +34 -0
  2049. package/vendor/components/sha256/b8eebe877599e04dca013ca0e758d6d7079e96cbc419eb2db3961886dccfc8b6/demo.html +77 -0
  2050. package/vendor/components/sha256/b8eebe877599e04dca013ca0e758d6d7079e96cbc419eb2db3961886dccfc8b6/index.js +221 -0
  2051. package/vendor/components/sha256/b95b45d601e264a27686349bc0ab2a3cf921f92fd3f4231b1ccf6b6ae6c33b27/README.md +31 -0
  2052. package/vendor/components/sha256/b95b45d601e264a27686349bc0ab2a3cf921f92fd3f4231b1ccf6b6ae6c33b27/demo.html +60 -0
  2053. package/vendor/components/sha256/b95b45d601e264a27686349bc0ab2a3cf921f92fd3f4231b1ccf6b6ae6c33b27/index.js +221 -0
  2054. package/vendor/components/sha256/b9efb83daf603dfe7ceb97749082ec102e06601b70cf556b03819ca2796970f4/README.md +29 -0
  2055. package/vendor/components/sha256/b9efb83daf603dfe7ceb97749082ec102e06601b70cf556b03819ca2796970f4/demo.html +56 -0
  2056. package/vendor/components/sha256/b9efb83daf603dfe7ceb97749082ec102e06601b70cf556b03819ca2796970f4/index.js +150 -0
  2057. package/vendor/components/sha256/bbcdfe01c39566e166126d3fffd2f0473ca6a31c8d4221cb33d9c8531a5dad28/README.md +36 -0
  2058. package/vendor/components/sha256/bbcdfe01c39566e166126d3fffd2f0473ca6a31c8d4221cb33d9c8531a5dad28/demo.html +72 -0
  2059. package/vendor/components/sha256/bbcdfe01c39566e166126d3fffd2f0473ca6a31c8d4221cb33d9c8531a5dad28/index.js +301 -0
  2060. package/vendor/components/sha256/bfd7c7e025202b9e05365785661eb8388e1174d4f29648f83b73d8ea9822abd9/README.md +22 -0
  2061. package/vendor/components/sha256/bfd7c7e025202b9e05365785661eb8388e1174d4f29648f83b73d8ea9822abd9/index.js +37 -0
  2062. package/vendor/components/sha256/bfe594a10d6f8c15fbacfba6319de5ac44f0035d6f971a1c85e8d5e62b8235d6/README.md +22 -0
  2063. package/vendor/components/sha256/bfe594a10d6f8c15fbacfba6319de5ac44f0035d6f971a1c85e8d5e62b8235d6/demo.html +48 -0
  2064. package/vendor/components/sha256/bfe594a10d6f8c15fbacfba6319de5ac44f0035d6f971a1c85e8d5e62b8235d6/index.js +80 -0
  2065. package/vendor/components/sha256/c0f33f67a17bb7bbdd723204d4097ce7bf99bad7812d883250d0cc46dd954d42/CHANGELOG.md +20 -0
  2066. package/vendor/components/sha256/c0f33f67a17bb7bbdd723204d4097ce7bf99bad7812d883250d0cc46dd954d42/README.md +46 -0
  2067. package/vendor/components/sha256/c0f33f67a17bb7bbdd723204d4097ce7bf99bad7812d883250d0cc46dd954d42/demo.html +112 -0
  2068. package/vendor/components/sha256/c0f33f67a17bb7bbdd723204d4097ce7bf99bad7812d883250d0cc46dd954d42/index.js +443 -0
  2069. package/vendor/components/sha256/c19d7b38009197b42a2b6a6aa87cdf069594beb1137a1ab7d5448025406d85ee/CHANGELOG.md +30 -0
  2070. package/vendor/components/sha256/c19d7b38009197b42a2b6a6aa87cdf069594beb1137a1ab7d5448025406d85ee/README.md +35 -0
  2071. package/vendor/components/sha256/c19d7b38009197b42a2b6a6aa87cdf069594beb1137a1ab7d5448025406d85ee/demo.html +53 -0
  2072. package/vendor/components/sha256/c19d7b38009197b42a2b6a6aa87cdf069594beb1137a1ab7d5448025406d85ee/index.js +520 -0
  2073. package/vendor/components/sha256/c2c426c8df5553688475d440c2d951c21a2de70ef2d0cf340d1199377c23c986/README.md +37 -0
  2074. package/vendor/components/sha256/c2c426c8df5553688475d440c2d951c21a2de70ef2d0cf340d1199377c23c986/demo.html +42 -0
  2075. package/vendor/components/sha256/c2c426c8df5553688475d440c2d951c21a2de70ef2d0cf340d1199377c23c986/index.js +252 -0
  2076. package/vendor/components/sha256/c3319feef72f50bf834222362a02c27078b0ae9855a90954ca61fd41f16cd03b/README.md +42 -0
  2077. package/vendor/components/sha256/c3319feef72f50bf834222362a02c27078b0ae9855a90954ca61fd41f16cd03b/index.js +250 -0
  2078. package/vendor/components/sha256/c3aaa6dccaefe1e372d0758a67ea8e95242629bb9fb55294f1d43633ae60f293/README.md +37 -0
  2079. package/vendor/components/sha256/c3aaa6dccaefe1e372d0758a67ea8e95242629bb9fb55294f1d43633ae60f293/demo.html +42 -0
  2080. package/vendor/components/sha256/c3aaa6dccaefe1e372d0758a67ea8e95242629bb9fb55294f1d43633ae60f293/index.js +251 -0
  2081. package/vendor/components/sha256/c44ad77f4cf1a9d16d4c3750c85aa5ddb7a2f046ceef59fbab58153ab1ffad77/CHANGELOG.md +21 -0
  2082. package/vendor/components/sha256/c44ad77f4cf1a9d16d4c3750c85aa5ddb7a2f046ceef59fbab58153ab1ffad77/README.md +34 -0
  2083. package/vendor/components/sha256/c44ad77f4cf1a9d16d4c3750c85aa5ddb7a2f046ceef59fbab58153ab1ffad77/demo.html +77 -0
  2084. package/vendor/components/sha256/c44ad77f4cf1a9d16d4c3750c85aa5ddb7a2f046ceef59fbab58153ab1ffad77/index.js +200 -0
  2085. package/vendor/components/sha256/c485dc4947caba8a302df7e0d65cf0f3ec963983b734e13a0ad0cdf464c49bea/CHANGELOG.md +19 -0
  2086. package/vendor/components/sha256/c485dc4947caba8a302df7e0d65cf0f3ec963983b734e13a0ad0cdf464c49bea/README.md +36 -0
  2087. package/vendor/components/sha256/c485dc4947caba8a302df7e0d65cf0f3ec963983b734e13a0ad0cdf464c49bea/demo.html +70 -0
  2088. package/vendor/components/sha256/c485dc4947caba8a302df7e0d65cf0f3ec963983b734e13a0ad0cdf464c49bea/index.js +167 -0
  2089. package/vendor/components/sha256/c5bf4965efeae90df60b41230286c02e214e79aac64ebaf191e0b6719133a5d4/README.md +12 -0
  2090. package/vendor/components/sha256/c5bf4965efeae90df60b41230286c02e214e79aac64ebaf191e0b6719133a5d4/demo.html +32 -0
  2091. package/vendor/components/sha256/c5bf4965efeae90df60b41230286c02e214e79aac64ebaf191e0b6719133a5d4/index.js +39 -0
  2092. package/vendor/components/sha256/c9f12f9f17f4fa48edce7faee3b7bad421228fb91706b0bbc71a355f84c28f65/README.md +21 -0
  2093. package/vendor/components/sha256/c9f12f9f17f4fa48edce7faee3b7bad421228fb91706b0bbc71a355f84c28f65/index.js +93 -0
  2094. package/vendor/components/sha256/cbb73fab4890bd711f727b871bd3a93c76c4e38db68ac5eeeb2feacd62289a87/CHANGELOG.md +25 -0
  2095. package/vendor/components/sha256/cbb73fab4890bd711f727b871bd3a93c76c4e38db68ac5eeeb2feacd62289a87/README.md +21 -0
  2096. package/vendor/components/sha256/cbb73fab4890bd711f727b871bd3a93c76c4e38db68ac5eeeb2feacd62289a87/demo.html +33 -0
  2097. package/vendor/components/sha256/cbb73fab4890bd711f727b871bd3a93c76c4e38db68ac5eeeb2feacd62289a87/index.js +121 -0
  2098. package/vendor/components/sha256/cbf9ffaca099ee9ed0d079c1cfecb1c5222e5f7e6d3c8a0f3f4f64626defe08a/CHANGELOG.md +20 -0
  2099. package/vendor/components/sha256/cbf9ffaca099ee9ed0d079c1cfecb1c5222e5f7e6d3c8a0f3f4f64626defe08a/README.md +43 -0
  2100. package/vendor/components/sha256/cbf9ffaca099ee9ed0d079c1cfecb1c5222e5f7e6d3c8a0f3f4f64626defe08a/demo.html +89 -0
  2101. package/vendor/components/sha256/cbf9ffaca099ee9ed0d079c1cfecb1c5222e5f7e6d3c8a0f3f4f64626defe08a/index.js +253 -0
  2102. package/vendor/components/sha256/ced0e95915f4abb411941078306811771a687aa056a955a7aca28a798a0ecedc/README.md +38 -0
  2103. package/vendor/components/sha256/ced0e95915f4abb411941078306811771a687aa056a955a7aca28a798a0ecedc/demo.html +42 -0
  2104. package/vendor/components/sha256/ced0e95915f4abb411941078306811771a687aa056a955a7aca28a798a0ecedc/index.js +254 -0
  2105. package/vendor/components/sha256/d0941d711b56714b766f470eb9fbc82e0b5d69a0ad35876b215730fd92f0dcc7/CHANGELOG.md +16 -0
  2106. package/vendor/components/sha256/d0941d711b56714b766f470eb9fbc82e0b5d69a0ad35876b215730fd92f0dcc7/README.md +50 -0
  2107. package/vendor/components/sha256/d0941d711b56714b766f470eb9fbc82e0b5d69a0ad35876b215730fd92f0dcc7/demo.html +63 -0
  2108. package/vendor/components/sha256/d0941d711b56714b766f470eb9fbc82e0b5d69a0ad35876b215730fd92f0dcc7/index.js +219 -0
  2109. package/vendor/components/sha256/d0e526069df47909525ed6abff7464d72bf902c44186e0a414798d55602df49f/CHANGELOG.md +19 -0
  2110. package/vendor/components/sha256/d0e526069df47909525ed6abff7464d72bf902c44186e0a414798d55602df49f/README.md +34 -0
  2111. package/vendor/components/sha256/d0e526069df47909525ed6abff7464d72bf902c44186e0a414798d55602df49f/demo.html +73 -0
  2112. package/vendor/components/sha256/d0e526069df47909525ed6abff7464d72bf902c44186e0a414798d55602df49f/index.js +209 -0
  2113. package/vendor/components/sha256/d1563fe9fc78196a33f6ff2f6b87bc2e87467dae267cdd7b68abd3bfa5a93759/README.md +33 -0
  2114. package/vendor/components/sha256/d1563fe9fc78196a33f6ff2f6b87bc2e87467dae267cdd7b68abd3bfa5a93759/demo.html +66 -0
  2115. package/vendor/components/sha256/d1563fe9fc78196a33f6ff2f6b87bc2e87467dae267cdd7b68abd3bfa5a93759/index.js +357 -0
  2116. package/vendor/components/sha256/d15c449222f631811b0d2f24cb69beffd708fe8104cb1b8e5eedfaeace291808/README.md +48 -0
  2117. package/vendor/components/sha256/d15c449222f631811b0d2f24cb69beffd708fe8104cb1b8e5eedfaeace291808/demo.html +61 -0
  2118. package/vendor/components/sha256/d15c449222f631811b0d2f24cb69beffd708fe8104cb1b8e5eedfaeace291808/index.js +120 -0
  2119. package/vendor/components/sha256/d176d6ad8b9761c98a0f21c3af79d938d32615b26e4c694c77c77141b9db9e8d/README.md +21 -0
  2120. package/vendor/components/sha256/d176d6ad8b9761c98a0f21c3af79d938d32615b26e4c694c77c77141b9db9e8d/demo.html +42 -0
  2121. package/vendor/components/sha256/d176d6ad8b9761c98a0f21c3af79d938d32615b26e4c694c77c77141b9db9e8d/index.js +102 -0
  2122. package/vendor/components/sha256/d24a8e8cc98ace21732cd99d4199f320914b4a0750457afab0c00699198c15bc/CHANGELOG.md +25 -0
  2123. package/vendor/components/sha256/d24a8e8cc98ace21732cd99d4199f320914b4a0750457afab0c00699198c15bc/README.md +43 -0
  2124. package/vendor/components/sha256/d24a8e8cc98ace21732cd99d4199f320914b4a0750457afab0c00699198c15bc/demo.html +75 -0
  2125. package/vendor/components/sha256/d24a8e8cc98ace21732cd99d4199f320914b4a0750457afab0c00699198c15bc/index.js +310 -0
  2126. package/vendor/components/sha256/d27dfd1746b1e116e695de1ea9c86a71cb8e6f6406f20806c5e90d425f8f96d7/README.md +32 -0
  2127. package/vendor/components/sha256/d27dfd1746b1e116e695de1ea9c86a71cb8e6f6406f20806c5e90d425f8f96d7/demo.html +77 -0
  2128. package/vendor/components/sha256/d27dfd1746b1e116e695de1ea9c86a71cb8e6f6406f20806c5e90d425f8f96d7/index.js +251 -0
  2129. package/vendor/components/sha256/d3b79b06cb9b317ea9690a2b069d0571e240ea45f50b9aee00bc562d3c500a43/CHANGELOG.md +20 -0
  2130. package/vendor/components/sha256/d3b79b06cb9b317ea9690a2b069d0571e240ea45f50b9aee00bc562d3c500a43/README.md +23 -0
  2131. package/vendor/components/sha256/d3b79b06cb9b317ea9690a2b069d0571e240ea45f50b9aee00bc562d3c500a43/demo.html +236 -0
  2132. package/vendor/components/sha256/d3b79b06cb9b317ea9690a2b069d0571e240ea45f50b9aee00bc562d3c500a43/index.js +572 -0
  2133. package/vendor/components/sha256/d944ffe0b14a557d0d898b60e572fc598633e4c7552fc37d77728a2c9e4297c7/CHANGELOG.md +23 -0
  2134. package/vendor/components/sha256/d944ffe0b14a557d0d898b60e572fc598633e4c7552fc37d77728a2c9e4297c7/README.md +44 -0
  2135. package/vendor/components/sha256/d944ffe0b14a557d0d898b60e572fc598633e4c7552fc37d77728a2c9e4297c7/demo.html +43 -0
  2136. package/vendor/components/sha256/d944ffe0b14a557d0d898b60e572fc598633e4c7552fc37d77728a2c9e4297c7/index.js +266 -0
  2137. package/vendor/components/sha256/d9fc15e829cc75e15fbf34c56e27a48f697e9b987a6d7340c955cd92bf69f6f6/README.md +41 -0
  2138. package/vendor/components/sha256/d9fc15e829cc75e15fbf34c56e27a48f697e9b987a6d7340c955cd92bf69f6f6/demo.html +75 -0
  2139. package/vendor/components/sha256/d9fc15e829cc75e15fbf34c56e27a48f697e9b987a6d7340c955cd92bf69f6f6/index.js +311 -0
  2140. package/vendor/components/sha256/da021f5480c007b620eff0b9a9bb00d1c19ce2fde19f48f093386eec538c80e4/README.md +36 -0
  2141. package/vendor/components/sha256/da021f5480c007b620eff0b9a9bb00d1c19ce2fde19f48f093386eec538c80e4/demo.html +72 -0
  2142. package/vendor/components/sha256/da021f5480c007b620eff0b9a9bb00d1c19ce2fde19f48f093386eec538c80e4/index.js +301 -0
  2143. package/vendor/components/sha256/da3812937f8937dc61bed434374bb80342d3d4f78b33602d5574d515b7444dec/CHANGELOG.md +22 -0
  2144. package/vendor/components/sha256/da3812937f8937dc61bed434374bb80342d3d4f78b33602d5574d515b7444dec/README.md +35 -0
  2145. package/vendor/components/sha256/da3812937f8937dc61bed434374bb80342d3d4f78b33602d5574d515b7444dec/demo.html +69 -0
  2146. package/vendor/components/sha256/da3812937f8937dc61bed434374bb80342d3d4f78b33602d5574d515b7444dec/index.js +217 -0
  2147. package/vendor/components/sha256/db50cdaca9acb73c96d9159ed99fafa7b8a03592d26a7e38d2aabf9a5043cfe2/README.md +19 -0
  2148. package/vendor/components/sha256/db50cdaca9acb73c96d9159ed99fafa7b8a03592d26a7e38d2aabf9a5043cfe2/demo.html +40 -0
  2149. package/vendor/components/sha256/db50cdaca9acb73c96d9159ed99fafa7b8a03592d26a7e38d2aabf9a5043cfe2/index.js +95 -0
  2150. package/vendor/components/sha256/dbad89b7d46a01b29d05713b825a6aa4e7057df40bba3f9673cb5ae1292630d2/README.md +41 -0
  2151. package/vendor/components/sha256/dbad89b7d46a01b29d05713b825a6aa4e7057df40bba3f9673cb5ae1292630d2/demo.html +43 -0
  2152. package/vendor/components/sha256/dbad89b7d46a01b29d05713b825a6aa4e7057df40bba3f9673cb5ae1292630d2/index.js +260 -0
  2153. package/vendor/components/sha256/dbd48046660a931346992b3645e08fc7cad092fb5391f4af38b8f3953bf28e3a/CHANGELOG.md +19 -0
  2154. package/vendor/components/sha256/dbd48046660a931346992b3645e08fc7cad092fb5391f4af38b8f3953bf28e3a/README.md +38 -0
  2155. package/vendor/components/sha256/dbd48046660a931346992b3645e08fc7cad092fb5391f4af38b8f3953bf28e3a/demo.html +72 -0
  2156. package/vendor/components/sha256/dbd48046660a931346992b3645e08fc7cad092fb5391f4af38b8f3953bf28e3a/index.js +248 -0
  2157. package/vendor/components/sha256/dd18d987873f495031426d3542411da74951003d624ea491672f85ea0f5dd943/README.md +32 -0
  2158. package/vendor/components/sha256/dd18d987873f495031426d3542411da74951003d624ea491672f85ea0f5dd943/demo.html +77 -0
  2159. package/vendor/components/sha256/dd18d987873f495031426d3542411da74951003d624ea491672f85ea0f5dd943/index.js +251 -0
  2160. package/vendor/components/sha256/def638a16ed94bbd079bc8e6ef0b63d65c4319e571f89d2745eddf596851da69/CHANGELOG.md +28 -0
  2161. package/vendor/components/sha256/def638a16ed94bbd079bc8e6ef0b63d65c4319e571f89d2745eddf596851da69/README.md +40 -0
  2162. package/vendor/components/sha256/def638a16ed94bbd079bc8e6ef0b63d65c4319e571f89d2745eddf596851da69/demo.html +70 -0
  2163. package/vendor/components/sha256/def638a16ed94bbd079bc8e6ef0b63d65c4319e571f89d2745eddf596851da69/index.js +594 -0
  2164. package/vendor/components/sha256/df17b0c9aa191c1fcd4d89cb4ec6a0d2cb24dac320ad2133ba918eeee88ec489/CHANGELOG.md +29 -0
  2165. package/vendor/components/sha256/df17b0c9aa191c1fcd4d89cb4ec6a0d2cb24dac320ad2133ba918eeee88ec489/README.md +35 -0
  2166. package/vendor/components/sha256/df17b0c9aa191c1fcd4d89cb4ec6a0d2cb24dac320ad2133ba918eeee88ec489/demo.html +69 -0
  2167. package/vendor/components/sha256/df17b0c9aa191c1fcd4d89cb4ec6a0d2cb24dac320ad2133ba918eeee88ec489/index.js +244 -0
  2168. package/vendor/components/sha256/dfcb56b144b6cdb58eeca0dfef74a7e2be4d4d977cd93715b3239cac5a4a35e6/CHANGELOG.md +26 -0
  2169. package/vendor/components/sha256/dfcb56b144b6cdb58eeca0dfef74a7e2be4d4d977cd93715b3239cac5a4a35e6/README.md +75 -0
  2170. package/vendor/components/sha256/dfcb56b144b6cdb58eeca0dfef74a7e2be4d4d977cd93715b3239cac5a4a35e6/demo.html +50 -0
  2171. package/vendor/components/sha256/dfcb56b144b6cdb58eeca0dfef74a7e2be4d4d977cd93715b3239cac5a4a35e6/index.js +351 -0
  2172. package/vendor/components/sha256/e0daed8338f51de7e86b5980a098394298455972218370ee65331ca48f7f9696/README.md +44 -0
  2173. package/vendor/components/sha256/e0daed8338f51de7e86b5980a098394298455972218370ee65331ca48f7f9696/demo.html +112 -0
  2174. package/vendor/components/sha256/e0daed8338f51de7e86b5980a098394298455972218370ee65331ca48f7f9696/index.js +447 -0
  2175. package/vendor/components/sha256/e13dee9bce784ccf07c3137da426b8bdbb2478fc710bc559d0c6e91605c5fde3/CHANGELOG.md +25 -0
  2176. package/vendor/components/sha256/e13dee9bce784ccf07c3137da426b8bdbb2478fc710bc559d0c6e91605c5fde3/README.md +71 -0
  2177. package/vendor/components/sha256/e13dee9bce784ccf07c3137da426b8bdbb2478fc710bc559d0c6e91605c5fde3/demo.html +76 -0
  2178. package/vendor/components/sha256/e13dee9bce784ccf07c3137da426b8bdbb2478fc710bc559d0c6e91605c5fde3/index.js +777 -0
  2179. package/vendor/components/sha256/e14c9f31a758a73e22cbf8837535bfc7dabdb47bd1446b34c2e353dae41ba1b6/CHANGELOG.md +25 -0
  2180. package/vendor/components/sha256/e14c9f31a758a73e22cbf8837535bfc7dabdb47bd1446b34c2e353dae41ba1b6/README.md +38 -0
  2181. package/vendor/components/sha256/e14c9f31a758a73e22cbf8837535bfc7dabdb47bd1446b34c2e353dae41ba1b6/demo.html +72 -0
  2182. package/vendor/components/sha256/e14c9f31a758a73e22cbf8837535bfc7dabdb47bd1446b34c2e353dae41ba1b6/index.js +266 -0
  2183. package/vendor/components/sha256/e1ac9ec283b7dd59722409f10a60a1cad0a4db654b78e8865ea762f23a69fff3/README.md +63 -0
  2184. package/vendor/components/sha256/e1ac9ec283b7dd59722409f10a60a1cad0a4db654b78e8865ea762f23a69fff3/demo.html +50 -0
  2185. package/vendor/components/sha256/e1ac9ec283b7dd59722409f10a60a1cad0a4db654b78e8865ea762f23a69fff3/index.js +416 -0
  2186. package/vendor/components/sha256/e22a8f43ec3e58ae6bd7a7547a5f08496aa3312d9ab8a57a0048b43007c347e7/README.md +40 -0
  2187. package/vendor/components/sha256/e22a8f43ec3e58ae6bd7a7547a5f08496aa3312d9ab8a57a0048b43007c347e7/demo.html +90 -0
  2188. package/vendor/components/sha256/e22a8f43ec3e58ae6bd7a7547a5f08496aa3312d9ab8a57a0048b43007c347e7/index.js +376 -0
  2189. package/vendor/components/sha256/e284c2ad93e11239c15ab5ca069652b1d30602e3098ef854cc5ba7e1be4fb09d/README.md +31 -0
  2190. package/vendor/components/sha256/e284c2ad93e11239c15ab5ca069652b1d30602e3098ef854cc5ba7e1be4fb09d/demo.html +68 -0
  2191. package/vendor/components/sha256/e284c2ad93e11239c15ab5ca069652b1d30602e3098ef854cc5ba7e1be4fb09d/index.js +209 -0
  2192. package/vendor/components/sha256/e39a91406f3953d00501f04240ed67ee048376c3368f1716f185594a1a9ac026/README.md +54 -0
  2193. package/vendor/components/sha256/e39a91406f3953d00501f04240ed67ee048376c3368f1716f185594a1a9ac026/demo.html +121 -0
  2194. package/vendor/components/sha256/e39a91406f3953d00501f04240ed67ee048376c3368f1716f185594a1a9ac026/index.js +886 -0
  2195. package/vendor/components/sha256/e412eeadaea294d59703c3dcfacc37506fbd360398ac0609ff405bd9e949edcd/README.md +43 -0
  2196. package/vendor/components/sha256/e412eeadaea294d59703c3dcfacc37506fbd360398ac0609ff405bd9e949edcd/demo.html +101 -0
  2197. package/vendor/components/sha256/e412eeadaea294d59703c3dcfacc37506fbd360398ac0609ff405bd9e949edcd/index.js +798 -0
  2198. package/vendor/components/sha256/e4c3831784c03c174fc2edf507a2a3d22d1f234863817afc2020099b9ec6a5e3/README.md +24 -0
  2199. package/vendor/components/sha256/e4c3831784c03c174fc2edf507a2a3d22d1f234863817afc2020099b9ec6a5e3/demo.html +42 -0
  2200. package/vendor/components/sha256/e4c3831784c03c174fc2edf507a2a3d22d1f234863817afc2020099b9ec6a5e3/index.js +116 -0
  2201. package/vendor/components/sha256/e6fbdf9015a07418baed8905f2ce36f649b7172bc1603e74082643cdeb8b3922/CHANGELOG.md +19 -0
  2202. package/vendor/components/sha256/e6fbdf9015a07418baed8905f2ce36f649b7172bc1603e74082643cdeb8b3922/README.md +44 -0
  2203. package/vendor/components/sha256/e6fbdf9015a07418baed8905f2ce36f649b7172bc1603e74082643cdeb8b3922/demo.html +44 -0
  2204. package/vendor/components/sha256/e6fbdf9015a07418baed8905f2ce36f649b7172bc1603e74082643cdeb8b3922/index.js +334 -0
  2205. package/vendor/components/sha256/e72d50db405995de41e12e29ccc4e911e54f77385327fb9bebc9034d9afd497e/README.md +33 -0
  2206. package/vendor/components/sha256/e72d50db405995de41e12e29ccc4e911e54f77385327fb9bebc9034d9afd497e/demo.html +69 -0
  2207. package/vendor/components/sha256/e72d50db405995de41e12e29ccc4e911e54f77385327fb9bebc9034d9afd497e/index.js +261 -0
  2208. package/vendor/components/sha256/e9db08ecaca1485175dc201e23bf87d52d1847c2bff0a57cfdac90b3c944c988/README.md +37 -0
  2209. package/vendor/components/sha256/e9db08ecaca1485175dc201e23bf87d52d1847c2bff0a57cfdac90b3c944c988/demo.html +66 -0
  2210. package/vendor/components/sha256/e9db08ecaca1485175dc201e23bf87d52d1847c2bff0a57cfdac90b3c944c988/index.js +310 -0
  2211. package/vendor/components/sha256/ea3069499016f752ca9a3484e1a6a41f04030edb284115a086c343c17c23ea50/README.md +18 -0
  2212. package/vendor/components/sha256/ea3069499016f752ca9a3484e1a6a41f04030edb284115a086c343c17c23ea50/demo.html +32 -0
  2213. package/vendor/components/sha256/ea3069499016f752ca9a3484e1a6a41f04030edb284115a086c343c17c23ea50/index.js +238 -0
  2214. package/vendor/components/sha256/ebd224f4d564c25a9cd010210f18afa5676fb71523b17443956eae62a69ab44c/README.md +41 -0
  2215. package/vendor/components/sha256/ebd224f4d564c25a9cd010210f18afa5676fb71523b17443956eae62a69ab44c/demo.html +56 -0
  2216. package/vendor/components/sha256/ebd224f4d564c25a9cd010210f18afa5676fb71523b17443956eae62a69ab44c/index.js +481 -0
  2217. package/vendor/components/sha256/ed452016b8a7c5fe8ea0ff3b907c07c4030c26d349aa4adfe429e596e5293870/README.md +34 -0
  2218. package/vendor/components/sha256/ed452016b8a7c5fe8ea0ff3b907c07c4030c26d349aa4adfe429e596e5293870/demo.html +86 -0
  2219. package/vendor/components/sha256/ed452016b8a7c5fe8ea0ff3b907c07c4030c26d349aa4adfe429e596e5293870/index.js +305 -0
  2220. package/vendor/components/sha256/ef21455ed117db364e40be629b74fa6507481bcd964ce46c2df30d24cbfa5f1c/LICENSE-strokesvg.txt +115 -0
  2221. package/vendor/components/sha256/ef21455ed117db364e40be629b74fa6507481bcd964ce46c2df30d24cbfa5f1c/OFL.txt +93 -0
  2222. package/vendor/components/sha256/ef21455ed117db364e40be629b74fa6507481bcd964ce46c2df30d24cbfa5f1c/README.md +30 -0
  2223. package/vendor/components/sha256/ef21455ed117db364e40be629b74fa6507481bcd964ce46c2df30d24cbfa5f1c/demo.html +40 -0
  2224. package/vendor/components/sha256/ef21455ed117db364e40be629b74fa6507481bcd964ce46c2df30d24cbfa5f1c/index.js +756 -0
  2225. package/vendor/components/sha256/ef21455ed117db364e40be629b74fa6507481bcd964ce46c2df30d24cbfa5f1c/strokes-CHANGES.md +20 -0
  2226. package/vendor/components/sha256/f0d56d0b64615c21fa744e9c4c7625d60bc56e315053c582c9026f80e37d2847/README.md +33 -0
  2227. package/vendor/components/sha256/f0d56d0b64615c21fa744e9c4c7625d60bc56e315053c582c9026f80e37d2847/demo.html +66 -0
  2228. package/vendor/components/sha256/f0d56d0b64615c21fa744e9c4c7625d60bc56e315053c582c9026f80e37d2847/index.js +357 -0
  2229. package/vendor/components/sha256/f28de133b15d0eb022779ab7937aeafd49772f75e192f33559ef100c7e0ba222/README.md +62 -0
  2230. package/vendor/components/sha256/f28de133b15d0eb022779ab7937aeafd49772f75e192f33559ef100c7e0ba222/demo.html +50 -0
  2231. package/vendor/components/sha256/f28de133b15d0eb022779ab7937aeafd49772f75e192f33559ef100c7e0ba222/index.js +416 -0
  2232. package/vendor/components/sha256/f2e8f2c00414594a97f974c4b2032a736ec27b94520cb3323895adf156d86900/README.md +33 -0
  2233. package/vendor/components/sha256/f2e8f2c00414594a97f974c4b2032a736ec27b94520cb3323895adf156d86900/demo.html +86 -0
  2234. package/vendor/components/sha256/f2e8f2c00414594a97f974c4b2032a736ec27b94520cb3323895adf156d86900/index.js +295 -0
  2235. package/vendor/components/sha256/f35a43be40f2a1a1c0ea94f20b1e3ad89e493159b2356c61956c9ac75eeef4bb/README.md +62 -0
  2236. package/vendor/components/sha256/f35a43be40f2a1a1c0ea94f20b1e3ad89e493159b2356c61956c9ac75eeef4bb/demo.html +50 -0
  2237. package/vendor/components/sha256/f35a43be40f2a1a1c0ea94f20b1e3ad89e493159b2356c61956c9ac75eeef4bb/index.js +412 -0
  2238. package/vendor/components/sha256/f36182d5a8f1dfb6a66973a980143627fe53eb75ad0fa92636754408c59da815/README.md +34 -0
  2239. package/vendor/components/sha256/f36182d5a8f1dfb6a66973a980143627fe53eb75ad0fa92636754408c59da815/demo.html +70 -0
  2240. package/vendor/components/sha256/f36182d5a8f1dfb6a66973a980143627fe53eb75ad0fa92636754408c59da815/index.js +179 -0
  2241. package/vendor/components/sha256/f7cb365d9e57aa2adf599a7f9c251a6c11b0447071458f9bfbd188517db177e9/README.md +40 -0
  2242. package/vendor/components/sha256/f7cb365d9e57aa2adf599a7f9c251a6c11b0447071458f9bfbd188517db177e9/demo.html +47 -0
  2243. package/vendor/components/sha256/f7cb365d9e57aa2adf599a7f9c251a6c11b0447071458f9bfbd188517db177e9/index.js +495 -0
  2244. package/vendor/components/sha256/f80cc2e090583eb7cde47c1b45f185491c67b54e0a4efd832371ea1af5a7bbb6/README.md +37 -0
  2245. package/vendor/components/sha256/f80cc2e090583eb7cde47c1b45f185491c67b54e0a4efd832371ea1af5a7bbb6/demo.html +66 -0
  2246. package/vendor/components/sha256/f80cc2e090583eb7cde47c1b45f185491c67b54e0a4efd832371ea1af5a7bbb6/index.js +310 -0
  2247. package/vendor/components/sha256/f85ec22b27e3a233dbdd2e0b21dd2e900506b7b42c5ba82a4c2368cf4ce6fbac/README.md +20 -0
  2248. package/vendor/components/sha256/f85ec22b27e3a233dbdd2e0b21dd2e900506b7b42c5ba82a4c2368cf4ce6fbac/index.js +162 -0
  2249. package/vendor/components/sha256/f8c3eb67c51e4e5051d5b73e767964c8931a78218f293da60bad6efe762867e1/CHANGELOG.md +21 -0
  2250. package/vendor/components/sha256/f8c3eb67c51e4e5051d5b73e767964c8931a78218f293da60bad6efe762867e1/README.md +43 -0
  2251. package/vendor/components/sha256/f8c3eb67c51e4e5051d5b73e767964c8931a78218f293da60bad6efe762867e1/demo.html +75 -0
  2252. package/vendor/components/sha256/f8c3eb67c51e4e5051d5b73e767964c8931a78218f293da60bad6efe762867e1/index.js +308 -0
  2253. package/vendor/components/sha256/f8ef891b6dca551936c23879b91abe4bcd9a0ba6e209dff7c184e280f73023f5/CHANGELOG.md +25 -0
  2254. package/vendor/components/sha256/f8ef891b6dca551936c23879b91abe4bcd9a0ba6e209dff7c184e280f73023f5/README.md +32 -0
  2255. package/vendor/components/sha256/f8ef891b6dca551936c23879b91abe4bcd9a0ba6e209dff7c184e280f73023f5/demo.html +54 -0
  2256. package/vendor/components/sha256/f8ef891b6dca551936c23879b91abe4bcd9a0ba6e209dff7c184e280f73023f5/index.js +251 -0
  2257. package/vendor/components/sha256/f90f75950a6bb7cbf89ab4cfbce576dbebc251d0180ee163c5540194b14c0651/README.md +62 -0
  2258. package/vendor/components/sha256/f90f75950a6bb7cbf89ab4cfbce576dbebc251d0180ee163c5540194b14c0651/demo.html +50 -0
  2259. package/vendor/components/sha256/f90f75950a6bb7cbf89ab4cfbce576dbebc251d0180ee163c5540194b14c0651/index.js +412 -0
  2260. package/vendor/components/sha256/fa5a8b2ada18d18fd8165096d4153a145319caba152811eab39d93bedb4fde5b/README.md +37 -0
  2261. package/vendor/components/sha256/fa5a8b2ada18d18fd8165096d4153a145319caba152811eab39d93bedb4fde5b/demo.html +66 -0
  2262. package/vendor/components/sha256/fa5a8b2ada18d18fd8165096d4153a145319caba152811eab39d93bedb4fde5b/index.js +309 -0
  2263. package/vendor/components/sha256/fb231a6aa91e7dcf84fa8e766c7b57a19e6d8bd09c6fd2130c403144a2c7992c/README.md +29 -0
  2264. package/vendor/components/sha256/fb231a6aa91e7dcf84fa8e766c7b57a19e6d8bd09c6fd2130c403144a2c7992c/demo.html +54 -0
  2265. package/vendor/components/sha256/fb231a6aa91e7dcf84fa8e766c7b57a19e6d8bd09c6fd2130c403144a2c7992c/index.js +262 -0
  2266. package/vendor/components/sha256/fb8cde16b63fbbff26b87594994dd4eb2872523d1cb2dc385c85a17824266f08/CHANGELOG.md +20 -0
  2267. package/vendor/components/sha256/fb8cde16b63fbbff26b87594994dd4eb2872523d1cb2dc385c85a17824266f08/README.md +39 -0
  2268. package/vendor/components/sha256/fb8cde16b63fbbff26b87594994dd4eb2872523d1cb2dc385c85a17824266f08/demo.html +70 -0
  2269. package/vendor/components/sha256/fb8cde16b63fbbff26b87594994dd4eb2872523d1cb2dc385c85a17824266f08/index.js +134 -0
  2270. package/vendor/components/sha256/fc74310c1964554e53b0cf2f0c58bdd87fc997cec8201f23eaef487e310059a3/LICENSE-tabler.txt +21 -0
  2271. package/vendor/components/sha256/fc74310c1964554e53b0cf2f0c58bdd87fc997cec8201f23eaef487e310059a3/README.md +31 -0
  2272. package/vendor/components/sha256/fc74310c1964554e53b0cf2f0c58bdd87fc997cec8201f23eaef487e310059a3/index.js +4868 -0
  2273. package/vendor/components/sha256/fc74310c1964554e53b0cf2f0c58bdd87fc997cec8201f23eaef487e310059a3/names.txt +4808 -0
  2274. package/vendor/components/sha256/fca5c2365da32c69cb35241a8c86c1c027c064cce07d009f5f43fc125cef1a94/README.md +36 -0
  2275. package/vendor/components/sha256/fca5c2365da32c69cb35241a8c86c1c027c064cce07d009f5f43fc125cef1a94/demo.html +115 -0
  2276. package/vendor/components/sha256/fca5c2365da32c69cb35241a8c86c1c027c064cce07d009f5f43fc125cef1a94/index.js +355 -0
  2277. package/vendor/components/sha256/fcad8e02fd577a13904ecd0566259150580cdd6ada066167c996fc46c03e8a04/CHANGELOG.md +20 -0
  2278. package/vendor/components/sha256/fcad8e02fd577a13904ecd0566259150580cdd6ada066167c996fc46c03e8a04/README.md +25 -0
  2279. package/vendor/components/sha256/fcad8e02fd577a13904ecd0566259150580cdd6ada066167c996fc46c03e8a04/demo.html +48 -0
  2280. package/vendor/components/sha256/fcad8e02fd577a13904ecd0566259150580cdd6ada066167c996fc46c03e8a04/index.js +97 -0
  2281. package/vendor/components/sha256/fdf2b573b8c6a0ad74e4e4d69a45ee12acdd625aaf411c17a5f9e1d816f4a245/README.md +37 -0
  2282. package/vendor/components/sha256/fdf2b573b8c6a0ad74e4e4d69a45ee12acdd625aaf411c17a5f9e1d816f4a245/demo.html +66 -0
  2283. package/vendor/components/sha256/fdf2b573b8c6a0ad74e4e4d69a45ee12acdd625aaf411c17a5f9e1d816f4a245/index.js +309 -0
  2284. package/vendor/components-2/LICENSE +21 -0
  2285. package/vendor/components-2/manifest-2.0.0-rc.1.json +1700 -0
  2286. package/vendor/components-2/manifest-2.0.0.json +1745 -0
  2287. package/vendor/components-2/manifest-2.1.0.json +1843 -0
  2288. package/vendor/components-2/manifest-2.1.1.json +1843 -0
  2289. package/vendor/components-2/manifest-2.1.2.json +1843 -0
  2290. package/vendor/egatari-spec/LICENSE +21 -0
  2291. package/vendor/egatari-spec/SOURCE.json +7 -0
  2292. package/vendor/egatari-spec/schema/deck-audio.schema.json +76 -0
  2293. package/vendor/egatari-spec/schema/deck-meta.schema.json +131 -0
  2294. package/vendor/egatari-spec/schema/egatari-audio.schema.json +204 -0
  2295. package/vendor/egatari-spec/schema/egatari-index.schema.json +529 -0
  2296. package/vendor/egatari-spec/schema/egatari-metadata.schema.json +297 -0
  2297. package/vendor/egatari-spec/schema/rendered-markup-1.json +374 -0
  2298. package/vendor/themes/business/1.0.0/theme.json +4 -0
  2299. package/vendor/themes/business/1.0.0/tokens.css +28 -0
  2300. package/vendor/themes/default/1.0.0/tokens.css +64 -0
  2301. package/vendor/themes/default/1.1.0/theme.json +4 -0
  2302. package/vendor/themes/default/1.1.0/tokens.css +66 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,1071 @@
1
+ # Changelog
2
+
3
+ All notable changes to this project are documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
+
7
+ ## [Unreleased]
8
+
9
+ <!-- Unreleased changes are fragments in changes/*.md (see CONTRIBUTING.md "Changelog"); node tools/changelog.mjs --release X.Y.Z moves them here. -->
10
+
11
+ ## [0.6.4] - 2026-11-04
12
+
13
+ ### Migration
14
+
15
+ - If you followed the old README and symlinked `~/.claude/skills/motion-*` (motion-slides, motion-slides-video, motion-components) to a clone,
16
+ those links are dead after pulling and the skills disappear. The skills moved into the plugin: delete `~/.claude/skills/motion-*`,
17
+ then in Claude Code run `/plugin marketplace add egatari/egatari-studio`, `/plugin install egatari@egatari` and `/plugin install egatari-studio@egatari`.
18
+ 古い README どおり `~/.claude/skills/motion-*` を clone へシンボリックリンクしていた場合、pull するとリンクが切れてスキルが消えます。
19
+ `~/.claude/skills/motion-*` を消し、上の 3 つのコマンドを Claude Code で実行してください
20
+
21
+ ### Added
22
+
23
+ - Offer “Download the AI skill” in Studio’s New dialog and Help in Japanese and English; serve matching generated ZIPs from the running site, embed them in the offline editor, preserve them in frozen copies, and attach both language ZIPs to releases.
24
+ - Distribute two entries in the egatari marketplace: a generated light egatari plugin with only make and no Node requirement, and egatari-studio with the repository tools and one studio skill (#126).
25
+ - Generate egatari-make-skill.zip from the same make content using only Node built-ins; verify the plugin payloads and ZIP contents against the generator.
26
+ - Add a CLI entry point for exporting working folders or single files with existing audio as video, and a regression check for personal environment references in plugin documentation.
27
+ - Add `egatari sheet` and `egatari comment-shots` to the npm CLI, and let `egatari video <working folder | .ega.html>` build and export a lesson with its existing audio (tools/video.mjs); the package now carries these three tools.
28
+ - npm package `egatari` with the command `egatari` (`npx egatari new|build|check|dev|ids|portable|video|tts|doctor`, `--help`, `--version`);
29
+ relative paths are resolved from the current folder. `egatari doctor` reports Node, uv, ffmpeg and a browser, with install hints.
30
+ `egatari tts` keeps its Python environment in the user's cache folder (`UV_PROJECT_ENVIRONMENT` overrides it)
31
+ - Samples of all parts: a page with every part of the parts library working, grouped by what to convey (#158), at <https://studio.egatari.org/parts/v2.1.1/> for parts library 2.1.1, with a list of versions at `/parts/`. The editor's help and step 4 of “New…” link to it. `node tools/build-app.mjs --parts` builds it from the vendored release alone (`tools/parts-gallery.mjs`, with the parts library's `gallery.mjs --pack` vendored from a pinned commit in `vendor/components-gallery/`); like the editor's `/vX.Y.Z/`, each published version stays as first released.
32
+ - Components 2.0 lessons now use egatari/components **v2.1.0** by default (`components2.lock.json`; 2.0.0 stays available): the line icons library `icons` 1.0.0 (Tabler Icons 3.49.0, MIT) and `m-cards` 2.0.0, cards with an icon, title and text in a row or a 2×2 / 3×2 grid with optional step arrows (#142); `m-orbit` 2.0.0, the moon's phases with the view from above and from the Earth linked by one angle. A lesson embeds only the icons whose names its text uses (format spec §6.2 subset by name).
33
+ - `egatari doctor` reports `~/.claude/skills/motion-*` entries that are dead links or only a moved notice, with the same steps. It deletes nothing
34
+ - For this release, stub skills at the old paths `skills/motion-slides`, `skills/motion-slides-video` and `skills/motion-components` tell an agent
35
+ that finds them where to install the plugin
36
+ - Editor app: each part in New…'s parts list shows a small thumbnail of its demo (light and dark, with alt text),
37
+ generated from the parts' `demo.html` by `npm run thumbs` (`tools/part-thumbs.mjs`) and checked by `npm run gen:check`
38
+ - Components 2.0: subset by name (format §6.2, `match: "name"`, e.g. the icons library of components 2.1.0): only the members
39
+ whose key is a word of the lesson's text (and the entry's `keep`) are written, and the portable index records `subset.names`
40
+
41
+ ### Changed (API)
42
+
43
+ - `buildPack`, `assemble` and `packWithRequest` take `sets` (part set names, `'all'` or `'a,b'`) instead of `series` and `tools`, and `short` (free plan: the core four get only their catalogue line too); `PACK_CAP_KB` is `{free, paid}`; `seriesPart`, `seriesOf` and `seriesForDeck` are now `setPart`, `setOf` and `setsForDeck`. `node kit/llm-pack.mjs --sets` replaces `--series` and `--tools`, which are still read for one version (a series as its sets, any tool as the tools set).
44
+
45
+ ### Changed
46
+
47
+ - `node kit/llm-pack.mjs` fits the free-plan pack exactly as New… does (one shared `fitPlan`/`fitPack` in `kit/core/llm-pack-assemble.mjs`): over 40 KB the core four get only their catalogue line too, and if still over, specialized parts are left out, largest first. It says on stderr what was shortened or left out; `--no-fit` prints the pack as assembled. `--list` shows the fitted free size next to the unfitted one, and labels the paid pack with every set (over 120 KB) as a warning only. The size table of `npm run gen` uses the same fitted sizes.
48
+ - The AI instruction pack is built from part sets and tiers (#125): the standard parts are always in it, the specialized parts of a set only when that set is ticked (stats, math, maps, kokugo, english, music, business, tools, science), and extra parts (code tree, grouping answers) never; the make skill plans from standard and specialized parts and reads an extra part's README only when the material needs it. Tiers, sets and part descriptions come from the default parts library catalogue (2.1.0), so Cards (m-cards), Score (m-score) and Moon phases (m-orbit) are described too.
49
+ - On the free plan, the standard parts other than the core four (bar chart, flow diagram, contents, predict and check) get only their one-line catalogue entry, so New… with every standard part ticked now starts within the 40 KB limit (about 35 KB instead of 65 KB). The plan changes the limit and how much the pack says. When ticked sets push the free pack over 40 KB, New… first shortens the core four the same way (and says so under the meter); only if it is still over does it suggest unticking specialized parts, largest first, never standard ones.
50
+ - Move local checks, builds, audio, parts and video instructions into egatari-studio:studio; retain motion-slides, motion-components and motion-slides-video in descriptions for one release. Document installing both plugins for studio and updating each separately.
51
+ - egatari-studio:studio runs every command through the egatari npm package pinned to the Studio minor (`npx egatari@0.6.x …`), starting with `egatari doctor` and its install hints, instead of a repository checkout and `npm ci`; it only reads bundled files (parts catalogue, READMEs, contract) from the plugin folder.
52
+ - Separate chat authoring from CLI checks and audio setup, document the optional local speech server, and keep parts' Components 2.0 rewrite for #123. The detailed make/studio content redesign remains separate.
53
+ - Tests: browser tests whose child processes each launched a browser (`kit/check.mjs` per component demo, `kit/abcjs-node.mjs` per score, `tools/sheet.mjs`) start one browser for the whole test (`shareBrowser()` in `kit/browser.mjs`). test-app's preview audio checks are their own serial step, test-app-audio, so macOS CI runs `npm test -- --jobs 2`.
54
+ - The `@fontsource` fonts are dev dependencies; the package carries only the weights and WOFF2 files the build embeds, with their
55
+ OFL licences, in `fonts/@fontsource/` (made by `tools/fonts-vendor.mjs` before `npm pack`). The build reads that copy first
56
+ - Built players from an installed package write `+dev` without a commit when the player is not a released one: the build no longer
57
+ reads the commit of a git repository the package happens to be inside
58
+ - `m-keyboard` 2.0.1: when a step's keys fall outside the keyboard's range, the error lists them and names a range that covers every key (e.g. "use C4-D5"), or says to split them over two keyboards.
59
+ - Components 2.0 lessons now use egatari/components **v2.1.1** by default (`components2.lock.json`; 2.1.0 and 2.0.0 stay available). `m-orbit` 2.0.1: the person on Earth no longer spins a full turn on a step between two positions with the same observer angle (e.g. `start` 1 → `visit` [2] with 8 positions, both held at evening); a full turn is added only when the step passes position 0 (new moon). Every other part keeps the same version and the same `index.js` as 2.1.0. The parts library also fixed the `m-timer` and `m-tape` demo pages (the parts list's thumbnails) and relabelled a stale `CHANGELOG.md` line ("components 2.0, alpha; not for lessons yet" → "components 2.0.0-rc.1 and 2.0.0") carried by many 2.0.0-era parts; `tools/components2-update.mjs` now refreshes a part's vendored files when only this kind of ancillary text changes under an unchanged `index.js`, instead of silently keeping the first-ever copy forever (#142 follow-up).
60
+ - Components 2.0 lessons now use egatari/components **v2.1.2** by default (`components2.lock.json`; 2.1.1, 2.1.0 and 2.0.0 stay available). Fixes from an audit of all 38 element parts: 37 parts get a new patch version (`m-kakijun` is unchanged). Code only — no README text, `doc` prop or static shape changed, so this release's AI instruction pack matches 2.1.1 except for version strings. Highlights: `m-hissan` 2.0.1 wrote wrong digits (or NaN) for products past 2^53 (e.g. 123456789×987654321 ended in "…260" instead of "…269"); products are now exact. `m-boxplot` 2.0.1 rounded quartiles against its own README's table (6.25 shown as 6.3); they are now exact. `m-kobun` 2.0.1 with `tate` drew 0 wide and opened its card off the slide, and showed 接頭/接尾 as 接; this is now reported and drawn correctly. Several parts' final (printed) state was missing information: `m-collect` 2.0.1 now keeps what was collected instead of fading every chip to opacity 0; `m-quad` 2.0.2 keeps where a moved point started; `m-codetree` 2.0.1 draws every decoded path in its summary; `m-kanbun` 2.0.1 keeps the arcs and order numbers; `m-menu` 2.0.1 prints each card's target slide; `m-keyboard` 2.0.2 keeps earlier steps' labels with `cumulative`. Every part except `m-kakijun` (which already had one) now has a role and an accessible name stating its final state, with the svg hidden from assistive technology and an author's `aria-label` kept. The parts list's `m-tape` and `m-score` demos also changed (tape's rows are now labelled A/B, not colour names; the rhythm slide steps `by="measure"` so eighth notes keep their length).
61
+ - Editor app: New… step 4 lists the parts, grouped by what to convey (subject-specific forms last, first for a school lesson),
62
+ instead of the subject and tool tiles. Standard parts start ticked; a specialized set is ticked from the subcategory or the words of step 2, with the reason
63
+ - Editor app: the chat AI's plan no longer limits the choice to two subjects; it sets the suggested size limit (40 KB or 120 KB), shown on a meter
64
+ with the parts you could untick when the instructions are over it
65
+ - `studio.newDeck` records the ticked `parts` instead of `subjects`, `tools` and `purposesOff` (earlier records are still read)
66
+ - New lessons are built with parts library 2 (the default 2.x catalogue, which the chat AI's instructions describe since #125): New… (pasting an AI's output into a new lesson), `npm run new` / `npx egatari new` and the working folders the make skill writes get `egatari.json` with `"componentsCatalogue": "2"`. Lessons and folders without that setting keep parts library 1; nothing switches silently. When a 1.x working folder fails to build only because it uses parts that library 2 has (#165), the editor's error offers "Use parts library 2", which writes that one setting (other members byte for byte) and rebuilds. A pasted reply that cannot build in an open single file now gets the same message with the fix, in the editor's language.
67
+ - A parts library 2 lesson whose own `<script>` uses the player's 1.x helpers (`DECK.define`, `DECK.MotionElement`, `DECK.el`, …) keeps them in the built player, so such code still runs instead of failing silently; lessons that do not use them stay without them.
68
+ - The data shapes in the AI instructions (catalogue column "data shape") now give the type of every field, optional ones too, in a short form: `dash?:bool`, `diff?:str`, enums as `"a"|"b"`, lists as `T[]`, tuples as `[num,num]`. Models no longer guess (`dash?` written as `"dashed"`, `rows[].diff` as `true`). To keep the free plan within 40 KB, the six fields every part shares (label, tex, note, tone: str; step: int; at: num) are typed once at the start of §3 and written by name only. A component's data error in check and in the fix request shows every type in the same form (`kit/shape.js` `brief`).
69
+ - Egatari Player 1.2.0 (the bundled player that files carry, `player` in the index and `deck-meta`): minor release. Part sounds are scheduled ahead on the Web Audio clock at their exact times (the whole step when it starts, and in autoplay the next step too) and cancelled on back, jump, seek, mute, pause, a manual step and `ctx.extend`; autoplay follows one absolute clock instead of re-anchoring every step. A hand-made file carrying a 2.x part without the registry no longer throws `egatariParts is not defined`: the element is reported in `DECK.componentErrors` and shown as its text equivalent. Printing no longer adds a blank last page. A component's data error in the quality check gives the type of every field. Files from earlier versions keep their own player.
70
+ - Components 2.0 subset: the lesson's text follows format §6.2: text nodes and attribute values of the slide source parsed
71
+ as a document with parse5 and walked in tree order, part data read as JSON, the narration and `glyphs`; comments, tag and attribute
72
+ names, `<style>` and `<script>` no longer count
73
+ - Components 2.0 subset: a bad declaration (e.g. a non-string key, a missing block) is reported and the whole part is written
74
+ with no `subset` record, instead of subsetting the other blocks
75
+
76
+ ### Fixed
77
+
78
+ - `node tools/test-all.mjs --help` prints the usage instead of running every test, and `--only` with names that match no step says so and exits 1 (it crashed at the summary table).
79
+ - test-parts-host waits for autoplay to advance after shortening the step, instead of a fixed 80 ms (failed on slow macOS CI).
80
+ - test-app waits for the theme folder notice, and for the narration save's reply, before checking them (it read the state before they arrived when steps ran in parallel).
81
+ - Printing to PDF no longer adds a blank last page: `#deck-live` and other screen-reader-only (`.sr-only`) helpers are hidden in print, and the last slide no longer forces a trailing page break
82
+ - A lesson that uses an element its selected parts library does not provide is no longer built with the part silently missing (#165). An element only parts library 2.x has (e.g. `<m-score>`) in a 1.x lesson, an element from a newer 2.x catalogue than the one selected, the name of a library part, or a 1.x lesson pinning a part to a 2.x version now stops `build`, the single-file export and the editor, and `check --json` reports `component-not-in-catalogue` (English and Japanese), naming the element and the fix, e.g. set `"componentsCatalogue": "2"` in `egatari.json`. Elements the lesson defines itself are not affected; names in no catalogue stay a warning.
83
+ - The 1.x player no longer throws `egatariParts is not defined` when a hand-made file carries a 2.x part without the registry: the element is reported in `DECK.componentErrors` and shown as its text equivalent, and the parts after it still run.
84
+ - Quality check (CLI and the editor): on a slide where a component cannot draw its data (`compData`), its steps are unknown, so the check no longer reports missing or orphan narration there (`narrMissing`/`narrOrphan`, in the editor `noNarration`/`orphanNarration`). It says once, as info (`narrRecheck`), that the narration and step count are checked again after the data is fixed. The fix request therefore no longer asks the AI to delete correct narration.
85
+ - Tests: test-bar-hint counts "still shown after 3.6 s" from when the bar was shown (the time to open the page and take a screenshot was added on slow macOS CI), and test-check-contrast reads colours with a CPU canvas (`willReadFrequently`, as the quality check does): the GPU canvas read back zeros on a loaded macOS runner (contrast 1.00:1).
86
+ - Part sounds in live playback stay on one grid when the audio clock falls behind for a moment (a stalled audio device callback): the player keeps the mapping from its clock to the Web Audio clock while notes are scheduled and the lag is under a second, instead of renewing it and moving every later note (seen as a uniform 124 ms shift mid-piece on a loaded macOS runner). It still renews it when the audio clock runs ahead, after a long suspension, when nothing is scheduled, and once (only if they disagree) when a clock that read 0 after resuming first moves. Player files change.
87
+ - Tight timing for musical steps. Video: clip boundaries are the cumulative start times rounded to whole frames (each step within one frame of exact time, no drift over many steps; before, per-step rounding added up, e.g. 4 frames over 50 measures at ♩=88 in 2/4), and part sounds sit at the exact cumulative time. Live: part sounds are scheduled ahead on the Web Audio clock at their exact times, the whole step when it starts (rolling, up to 30 s ahead) and in autoplay the next step too, so a stalled main thread does not make a note late (before, up to one animation frame late), and what has not sounded yet is cancelled on back, jump, seek, mute, pause of autoplay, a manual step and `ctx.extend`. Autoplay: step ends follow one absolute clock (start + planned lengths + extensions) instead of re-anchoring every step, and the next step's first sounds are scheduled from the end of the current one. Player files change.
88
+ - Instructions for the AI: the academic and kokugo series packs no longer name `m-sweep`, `m-kanbun`, `m-kobun` or `m-gendai` when those parts are left out
89
+ - Egatari Viewer: a launch at the start screen while another window of the Viewer was still listed (the same tab's previous page still unloading on a slow device, or a window that closes during the launch) left the new version waiting until the next launch: the page now asks again each second while it launches. A takeover asked by the previous page just before the new one loaded now reloads the new page too (Windows CI, runs 41596890832 and 41605131017)
90
+
91
+ ## [0.6.3] - 2026-11-01
92
+
93
+ ### Added
94
+
95
+ - Forward viewer counts and timer extensions from the presenter view's current pane to the stage, and mirror stage changes back. Keep input across steps on a slide and reset it only on slide entry or a jump, including a jump to the current slide. Preserve the author's values in the next pane, video and print.
96
+ - Reserve keys inside viewer input parts and fields for those controls; keep digits available for page navigation outside parts. Mouse timer clicks leave Space available to advance. Carry the manifest's `viewerInput` capability into built players and portable component entries.
97
+ - Support presenter stage directions `{note:…}` in scripts, shown inline in presenter view and omitted from narration, captions, video, print and audio hashes. The checker reports malformed notes.
98
+ - Add component sound synthesis for bells, chimes and notes, with deterministic PCM rendering and video audio mixing that preserves notes across steps. In talk and learn playback, sound only forward time crossings after a user gesture; preserve note tails on forward step entry and stop them on back, jump or seek. Re-time live events for viewer step extensions.
99
+ - Add a keyboard-accessible “Mute sound effects” toolbar toggle, shown when a component declares sounds or implements `events(k)`, with a saved device preference. Temporarily silence component sounds in editor recording mode without changing that preference. Bundle both sound modules into built lessons and the editor.
100
+ - Components 2.0 lessons can be exported as portable `.ega.html` files. The index records the parts actually written, including libraries in dependency order, exact versions and requirements, embedded part metadata, licenses, build-time renderer records and subset hashes. Unpacking, rebuilding and tier A edits preserve those records.
101
+ - The editor bundle carries the Components 2.0 catalogue and host. Parts use the shared `components.lock.json` content table and `resolveComponent()` to find `vendor/components/sha256/<hash>/`; existing 1.x defaults stay unchanged.
102
+ - Quality checks show a part's layout reports as warnings in Japanese and English, with the part's name, its explanation and a suggestion to give it more space or show less content. The editor preview uses the same warning categories.
103
+ - Components 2.0 `build.fields` now renders ABC scores with pinned abcjs 6.7.2: `abcSvg`, `abcMap`, note/beam/measure/arc tags and renderer version/options in the data and portable index. The CLI uses Chromium through a synchronous helper; the editor's build worker requests main-thread rendering over RPC, and exports use the same renderer. Output follows the vendored rendered-markup allow-list, omits abcjs text, and leaves the ABC source with a build warning when rendering is unavailable or fails. abcjs is bundled only for editor rendering, with its MIT notice; lessons carry SVG without the abcjs runtime.
104
+ - Components 2.0 (preview, opt-in per lesson): Studio vendors egatari/components **v2.0.0** (tag commit dd4d4f0; m-timer, m-predict, m-flow, m-quad and m-cycle are 2.0.1) next to 1.13.x (`components2.lock.json`, `tools/components2-update.mjs`; code shares `vendor/components/sha256/` and the content table in `components.lock.json`). A lesson uses it only when `egatari.json` has `"componentsCatalogue": "2"` (or a catalogue version) or the build is given `--components-catalogue 2`; every other lesson builds with 1.x exactly as before.
105
+ - For a 2.0 lesson the build writes the parts registry (`egatariParts`, format spec §6.1) and then the parts in dependency order with exact versions, renders the declared `tex` fields with KaTeX at build time (`texHtml`, `renderers`; spec §6.2), and keeps only the characters the lesson uses in subset blocks (e.g. `m-kakijun` stroke data): the whole slide source including attribute values, the narration, the data passed to parts and the part's `glyphs`, each declared entry on its own in declared order.
106
+ - Every part's meta is read from its text without running it and must be a static object literal (spec §6.1); an embedded part whose meta is not is reported and left out. A lesson whose parts need two definitions of one element name (two versions of one part, or two differently named parts) is refused with the conflict reported. The registry's `status()` returns `{defined, failed: [{name, version, element?, reason}]}` with `reason` one of `meta`, `factory`, `missing`, `dependency`, `duplicate`, `element`; a second definition of an element name keeps the first.
107
+ - The player passes the navigation and reporting context of spec §8.4 (`lang`, `slides`, `go`, `report`, `visited`, alongside `mode`, `preview`, `slide`, `instant`, `entered`, `reset`) and calls `layout(ctx)` when the window is resized, fonts finish loading, a slide becomes visible or the document becomes visible again. Exceptions in parts are contained by the part's base and again by the player; reports are kept in `DECK.componentReports` (errors also in `DECK.componentErrors`).
108
+ - Live step extensions persist across steps on the same slide, reset on slide entry or jumps, and adjust animation clocks and autoplay without changing authored durations, timelines, video or print.
109
+ - Portable theme index entries include optional `extends` from the child's `theme.json`, alongside a separate entry for the parent theme.
110
+ - Recording mode has a “Keep recording” option, on by default and remembered on this device. Enter keeps the take and, after processing and saving it, starts recording the next step if its audio is missing or stale. Steps with current audio wait, and the last step stops. Turn the option off to wait at every step. Enter's press and release clicks are removed from both takes; step changes play no audio. Screen readers announce the step while recording continuously.
111
+ - Click removal accounts for reported microphone input latency. Takes started with a key or button remove at least the first 30 ms plus that latency, including when a headset starts capturing after the key is released.
112
+
113
+ ### Changed (API)
114
+
115
+ - Player components receive `ctx.extend(seconds)` for per-step viewer timing. `DECK.stepExtension(i, k)` exposes the accumulated extension; part sounds on the live step are retimed to it.
116
+ - `ctx.live` exists with a live client but ships dormant in v0.6.3: no live source feeds it yet. `poll(id)` returns null until the live service sends reveals (backlog #112, outside the pre-GA plan), so parts keep their viewer/author counts. The live client's `setPollResult(id, {revealed, counts})` is a future integration point requiring an explicit reveal and at least three answers.
117
+
118
+ ### Changed
119
+
120
+ - Deduplicate vendored component folders and the editor bundle by content hash, preserving pinned lessons and withdrawn versions byte for byte.
121
+ - KaTeX 0.19.0 → 0.19.1 (bug fixes; the formulas lessons can use are unchanged).
122
+ - Builds and portable exports refuse parts with unavailable exact requirements; source checks report `component-requires-missing` errors in English and Japanese. Existing files still open with their own player and play the remaining parts. A notice names each missing requirement and asks for updated parts to rebuild. Script, audio and timing can be edited and saved without rebuilding (tier A); slide editing, theme switching and replacement are disabled.
123
+ - Egatari Player 1.1.0 (the bundled player that files carry, `player` in the index and `deck-meta`): minor release. It hosts the Components 2.0 parts' context (`ctx.extend` for viewer time extensions, clamped so no step runs below zero remaining time or past one hour; `ctx.live`, dormant: `poll()` returns null and nothing shows live counts yet), plays part sounds in talk and learn with a toolbar mute, takes viewer input from the presenter view (#110), and keeps recording mode silent. Files from earlier versions keep their own player.
124
+
125
+ ### Fixed
126
+
127
+ - Clamp timer shortening to the elapsed time so that remaining time stays nonnegative. Keep the extension total through step resets, make `extend(0)` read-only, and retain the one-hour cap without changing authored durations or the timeline.
128
+ - Lessons using only 2.0 parts omit the player's 1.x component base, registration function and public drawing helpers. Lessons using 1.x parts keep them. Layout calls and the following renders receive separate context objects.
129
+ - Merge the 2.0 registry, context, containment, layout and off-screen rendering rules with narration notes, the existing themes and fonts, SVG text overlap checks and content-addressed component storage. Refresh the local specification fixtures used by these checks.
130
+ - Printing, the slide overview and the quality check no longer count as entering a slide (`ctx.entered`), and returning from them keeps the viewer's input (counts in `m-predict`, a timer's extension); video frames never enter (spec §8.4).
131
+ - Live and embed follow extension version governance (format spec §9A): higher versions are ignored and preserved through editor saves, exports and pack/unpack. They add no connection or frame destinations to the file policy; neither the bundled Live player nor the Viewer's Live host connects. The Live settings panel leaves unsupported versions untouched, and the checker reports them only as `extensionVersion` information
132
+ - Optional additions within Live v1 remain usable and are preserved, including members on the extension, its window and activities. Embed v1 keeps optional members and its existing allowed destinations
133
+ - Remove keyboard and trackpad clicks at the start and stop of recording-mode takes before trimming silence and normalizing the level. Takes too short to keep after removing the clicks show a clear message.
134
+ - Shift click cuts by reported input latency and keep a 30 ms head cut plus that latency for key or button starts, including delayed headset capture.
135
+
136
+ ## [0.6.2] - 2026-10-30
137
+
138
+ ### Added
139
+
140
+ - Fonts a lesson can choose (backlog #133): a fixed list of OFL fonts from `@fontsource` (`FONT_LIST` in `kit/core/build-core.mjs`). Japanese: BIZ UDPGothic (default), BIZ UDPMincho, Shippori Mincho, Zen Maru Gothic, Klee One. English: Source Sans 3 (default), Source Serif 4, Andika, Atkinson Hyperlegible Next. Monospace: Source Code Pro.
141
+ Only the fonts a lesson chooses go into its file, subset to the files with the characters it uses. A theme chooses them with `theme.json` `fonts` (`{"body": …, "heading": …}`), or a theme or the slides name them in CSS. The offline editor carries only the two defaults.
142
+ - English italic: Source Sans 3 italic goes in only for text the lesson sets in italic (`em`, `i`, `cite`, `font-style: italic`, a part that draws italic text). 700 italic goes in only for italic inside bold, and each face only for the files with those characters. A lesson without italics does not grow; examples/tmlr2026-calibration grows by 21.4 KB (one 400-italic latin file). In Japanese lessons only Latin characters count, and Latin text in `em`, `i` and `cite` is set in that italic.
143
+ - A theme whose body font is a Japanese font from the list (`asagi`) embeds BIZ UDPGothic only for characters that font lacks, so `asagi` lessons are no heavier than `default` (minimal 2,106,522 B vs 2,278,049 B).
144
+ - Quality check `fontNotEmbedded` (warning, once per lesson): slide text whose font is neither embedded nor generic, so it looks different on each device.
145
+ - Seven bundled themes for new lessons (backlog #129), shown by Japanese colour names with a small note on what each suits: 藍 Indigo (`default`), 墨 Ink (`sumi`, new), 国語 Kokugo (`kokugo`), 常盤 Evergreen (`tokiwa`, new), 江戸紫 Edo purple (`murasaki`, new), 焦茶 Dark brown (`kogecha`, new; base `#3D3132`, at least ΔE00 23 from the red under every simulated colour vision) and 浅葱 Teal (`asagi`, new, in Zen Maru Gothic); the new ones are 1.0.0. The list is `kit/core/themes-list.mjs`; the editor's New… ③ shows the note under the list and **Change theme…** next to each name.
146
+ Their heading, cover and conclusion-line shapes are fixed CSS snippets (`kit/core/theme-shapes.mjs`), copied into `tokens.css` and recorded in `theme.json` `look`, so the theme builder (#58) can offer the same shapes. Boxes do not move, and theme CSS is never wrapped in `:where()`.
147
+ - `tools/test-themes.mjs` (in `npm test`): every bundled theme builds a sample lesson with no contrast, divider, font or metrics warning; role colours reach 4.5:1 (also the conclusion line, divider, cover title and the heading on its band); `--emph` and `--term` stay ΔE*ab ≥ 35 apart under protan and deutan simulation (Machado 2009) and ΔE00 ≥ 20 for all four vision types; the `look` snippets match. Colour maths in `kit/core/color-check.mjs`.
148
+
149
+ ### Changed
150
+
151
+ - Player: the pen colours no longer come from the theme (`--emph`, `--term`, `--fg`). They are fixed: the Colour Universal Design red `#FF4B00` and blue `#005AFF` and black `#000000`, still named Red, Blue and Black (backlog #132). On white they reach 3.4, 5.4 and 21:1 (lines need 3:1), and under simulated colour vision they stay at least ΔE*ab 61 apart; with the theme colours, Blue and Black were ΔE 8 apart in `sumi`.
152
+ `tools/test-themes.mjs` checks the three pens on the ground of every bundled theme. The presenter view sends the new names; points sent with the old names are still accepted. This is Egatari Player 1.0.2.
153
+ - Egatari Player 1.0.2 (patch; the bundled player that files carry, `player` in the index and `deck-meta`): the fixed pen colours above. Files from earlier versions keep their own player.
154
+ - `business` can no longer be chosen for new lessons (editor lists, `npm run new`, which suggests `sumi`); it stays bundled, so lessons that name it or recorded its version build and play as before.
155
+ - Instructions for the AI: the theme advice is per situation (business and pitch decks → `sumi`, Japanese language arts → `kokugo`, otherwise `default`), and the business series pack and its worked example use `sumi`. Pack version `ecca7b6f`; the free kokugo single (ja) stays under its 40,960 B cap.
156
+
157
+ ### Fixed
158
+
159
+ - Start screen: the New card now centres its button and the hint under it, like the title, the lead line and the drop card. The hint wraps evenly (no single word or particle left alone on a line) on a phone. The Recent files and Samples lists stay left-aligned.
160
+ - Quality check now warns when SVG text overlaps other SVG text, including labels inside one figure whose positions come from the deck data. The warning names both texts and suggests a fix for their context: add `shift` to a reverse `m-flow` edge, move an `m-quad` item away from the quadrant name by changing its x/y, change the data in the named component for other components, or change the text’s x/y or `text-anchor` or put the axis name beyond the axis end for hand-written SVG. Only the glyphs' ink is compared, so close but separate labels (tick numbers above an axis name) do not warn; empty, hidden or unpainted text, whitespace gaps, the same label drawn twice at the same place, and labels already reported for leaving their box do not count; intentionally layered text can use `data-overlap="ok"` on the SVG `<text>` or an ancestor `<g>` to opt out of this check alone (`data-clip` is also respected).
161
+
162
+ ## [0.6.1] - 2026-10-30
163
+
164
+ ### Added
165
+
166
+ - Egatari Viewer (formerly Egatari Play; `play/`, `tools/build-play.mjs` → `_play/`, at viewer.egatari.org): a web app page that opens an Egatari file on the device and plays it, for iPhone and iPad (no local HTML from the Files app), Android `content://` trouble and chat previews that fail. The lesson runs in a `sandbox="allow-scripts"` srcdoc frame behind Studio's trusted preview prefix; recent files stay on the device (OPFS, IndexedDB fallback) and can be deleted; Android `share_target`; a versioned service worker that caches only the page's own files. Not deployed yet (docs/viewer.md)
167
+ - Egatari Viewer acts for the lesson in Live (format spec live §2A): the page shows Join in its own chrome and holds the WebSocket, learns the step from the lesson's position events and relays nothing into the lesson; endpoints the page does not allow get the join link. Links the lesson asks to open go through `kit/core/link-policy.mjs` in the page's own box
168
+ - Egatari Viewer stage 0: works offline once opened (the app shell is precached by its service worker; lessons are still read on the device only); a new version takes over on the next launch only, never while a lesson plays (no update button); the manifest names it "Egatari Viewer", "Ega Viewer" on the Home Screen, with the え icon. Config and docs move to viewer.egatari.org (`play/wrangler*.toml`, Worker `egatari-viewer`; docs/viewer.md, docs/viewer-sharing.md on getting a file onto an iPhone or iPad and opening it in the Viewer)
169
+ - Egatari Viewer on iPhone and iPad shows a one-line add-to-home-screen tip with iOS's own labels (Safari, or Chrome's 「表示を増やす」 and 「Web アプリとして開く」) in a browser tab, until dismissed; on Android, when the browser offers it, an Install button that calls `prompt()`; nothing from the Home Screen or on a PC
170
+ - `tools/studio-icons.mjs` builds Egatari Studio's own tab and app icon 「す」 (`assets/logo/studio/`: the ico files, a light/dark `favicon.svg`, the touch icon and the manifest icons) from the owner's SVGs in `assets/logo/studio/src/`; `tools/test-viewer-webkit.mjs` checks the Viewer in Playwright's WebKit at iPad sizes (a step of `npm test`; skipped where WebKit is not installed)
171
+
172
+ ### Changed
173
+
174
+ - LLM pack, music series: the `<m-keyboard>` `range` guidance now reads "Include every key you use, at least one octave (e.g. C4-C5). Both ends on white keys, up to 3 octaves." (the Japanese pack and the part list row say the same). The pack version changes.
175
+ - `tools/sync-spec.mjs` copies only what the tests read (an allow-list), so `vendor/egatari-spec` shrinks from 54 MB to 14 MB; the unread pre-1.0 document fixtures are no longer copied.
176
+ - The default reference voices `alice.wav` and `bob.wav` now exist only in `tts/voices/`; the identical copies in `lab/voices/` are removed. The Colab notebook reads them from `tts/voices/`, and `npm run build:app` copies them into the site's `lab/voices/` for the in-browser voice.
177
+ - README: the quick start clones with `git clone --depth 1`.
178
+ - Egatari Studio's favicon, touch icon and manifest icons are 「す」; its manifest `short_name` is "Egatari Studio". The え mark stays on the header, Egatari Viewer and exported `.ega.html` files
179
+ - Egatari Viewer's messages end with what to do next (not an Egatari file, too large, read and parse errors, Live errors); joining a Live while offline says so at once; wording follows the terms (再生専用, 参加コード, 待機室, ステップ)
180
+ - Wording (glossary 2026-10-28, `docs/terms.json`): the computer or tablet a lesson is opened on is called 端末 / device, not 機械 / machine, and the person who opens a lesson is 参加者 (participant) or 学習者 (learner), not 見る人 / viewer. In the Live panel the time note reads 「時刻はこの端末の時間帯で入れます」 ("Times are in this device's time zone"); an attachment warning names 「この端末のパス」 ("device-specific path"); without the Mincho font a build says the lesson 「開く端末の明朝で表示されます」. The docs follow (パソコン where a real PC is meant, such as a TTS server on another computer). `lint:terms` checks the new words; 機械学習 and the 4M (人・機械・方法・材料) of the m-fishbone example stay.
181
+ - A file exported from a working folder now says what it is, in plain words: "This file was exported from a working folder (the folder that holds the slide and script files). Editing it here does not change the files in that folder. If you don't have the folder, you can edit and save this file as usual." It is shown as an ordinary information line, not a warning, and the button keeps its menu name, "Export working folder…". After an edit the line adds "This file has been edited since it was exported." (ja: 「作業フォルダから書き出したファイル」). `docs/terms.json` follows the glossary (2026-10-29, 103 terms): drag-and-drop, exported-file, no-upload.
182
+ - Start screen: the drop area reads "Drag a .ega.html file here" (ja: 「.ega.html ファイルをここにドラッグ&ドロップ」). The Samples line no longer describes a second check ("Sample lessons made with Egatari. Open one to play it or edit it."). "Work in a folder…" and "My themes…" are ordinary outlined buttons, each on its own row with a one-line hint. The privacy line is shorter and says "nothing is uploaded", and names the two AI-voice routes by their button labels (on this computer: downloads the voice program and model; Google Colab: you upload the script yourself). The sample card says "contains its own code (asks before opening)".
183
+ - Script panel: the step of the conclusion line is called "conclusion line" instead of the internal key `concl` (in "Next step (…)", the panel header and the notice about editing another step).
184
+ - Saving an Egatari file without rebuilding the slides now reports "saved (2.0 MB)" with the size, instead of a long explanation.
185
+
186
+ ### Fixed
187
+
188
+ - A copy exported from a working folder whose compiled lesson no longer matches its source (for example after the hashes in the file were changed by hand) now says "This file has been edited since it was exported.", even when the exported-from mark still equals the index's `sourceSha256`. `npm run portable -- compare` likewise reports such a copy as edited. Opening a file whose index was changed by hand without updating its `data-sha256` shows the "cannot open" dialog (the index is corrupt) as before; the editor waits only for its OK and does not freeze. A new browser test opens hand-edited and malformed marks (missing member, wrong type, 8 MB value, mismatched copies) and checks the page keeps answering.
189
+ - Player on a phone held upright (about 390 px wide): the toolbar no longer runs off the screen; it wraps onto two rows. Mobile browsers no longer widen the page to the unscaled slide (to about 660 px), so the slide scales to the screen width instead of being cut off at both sides. Files from earlier versions keep their own player.
190
+ - On a touch device (`(hover: none)`), the one-time toolbar hint now reads "Tap the screen to show the toolbar"; with a mouse it is unchanged.
191
+ - Egatari Player 1.0.1 (the bundled player that files carry, `player` in the index and `deck-meta`): on a phone the slide fits the screen width (the browser no longer widens the page to the 1280 px stage and cuts the slide's sides), the toolbar fits the screen and wraps to a second row, and the hint says "Tap the screen to show the toolbar" on touch devices; returning from print no longer resets parts the viewer had touched (e.g. m-predict counts).
192
+ - Returning from printing no longer clears what the viewer entered in a part (the counts in `m-predict`, a timer's extension). Printing, and the slide overview and the quality check in the editor, draw other positions only to come back; that return was counted as entering the slide, so parts were reset. Such renders now leave `ctx.entered` false and keep the viewer's input. Tools that draw other positions and come back wrap their `DECK.seek` calls in the new `DECK.aside(fn)`.
193
+ - Quality check panel: build warnings now count in the summary and the toolbar badge (「エラー 0 · 警告 0」 no longer sits above a list of build warnings). A build warning about a slide shows the slide number and title instead of internal names (`## s-…`, narration.md line numbers) and goes to that slide when clicked, like the checker's findings.
194
+ - Steps whose audio needs updating are listed once, as a Quality check finding on their slide (step number only), not again as a build warning with the internal step key.
195
+ - In the editor, reloading the preview no longer counts slide 1 as the current slide for a moment before the preview returns to where you were. Until then, the slide list followed slide 1 and the Slide ▾ commands would act on it.
196
+ - New… ④: on the paid plan, the social studies tile names what its instructions carry, "Maps of Japan and the world" (the world map is a paid-plan part). On the free plan it still reads "Map of Japan". Only the tile's text changes; the instructions are the same.
197
+ - Egatari Viewer on touch screens: the player takes touch itself (wake tap, `REVEAL_GUARD`, the bar shown on open, a handle), so the page's lesson shim no longer relays taps or completes clicks
198
+ - Egatari Viewer on a computer: the arrow keys, Space, PageUp/PageDown and Home/End move the lesson wherever the focus is. Before, they did nothing right after opening a file in Chrome (the frame lost the focus when the lesson loaded) and, in Safari and Chrome, after a click on the Viewer's own bar or buttons or with the focus in the Live pane, until the viewer clicked inside the lesson. The page now focuses the frame once the lesson has loaded and hands the navigation keys pressed in the page to the lesson (its lesson shim presses them as the player's buttons do; no player change)
199
+ - The Samples (`dist/examples/` and the release assets) no longer carry the exported-from-a-folder mark, so a downloaded sample opens without that notice. `build --portable` on a working folder is unchanged and still writes the mark.
200
+
201
+ ### Security
202
+
203
+ - Export to an Egatari file (`--portable`, `npm run portable -- pack`, the editor's **Save** and **Export**) never packs a reference voice (the recording an AI voice imitates) named in `voice.json` (Egatari §5 `recipe`, owner decision 2026-10-28): a step's audio or an attachment that is one (by location or by content) is left out with a finding that names the rule, and export is refused (`reference-voice`) when the slides use one. Names resolve through `IRODORI_REF_DIR` when that folder is inside the working folder.
204
+ - Quality check: `refVoice` reports a reference voice inside the working folder (error when the slides use it, warning as a step's audio or in `attachments/`, information elsewhere); the editor's quality check warns too.
205
+ - Egatari Viewer refuses to run in a frame (`frame-ancestors 'none'`, `X-Frame-Options: DENY` in `_headers`, and a script check). Self-hosters need a host that sends headers (docs/viewer.md "Self-hosting")
206
+ - Egatari Viewer follows format spec 3e4b4a6: the lesson asks for links with the §9.4 event `{egatari: "openLink", href, text}` (only on the viewer's activation, text up to 200 characters; the page applies §11 and opens nothing without a tap in its own box), and a host agreed to before gets a plain 「開く」 with its name (§11 (f)). A 「共有の端末」 (Shared device) switch keeps no recent files and deletes the kept ones
207
+ - Egatari Viewer follows format spec c002455: an `openLink` with `download: true` is refused with the host and 「この教材からはファイルを保存できません」. The Live pane is shown from the start beside or below the lesson, never over it, and nothing resizes or covers the lesson's frame while it plays (the update notice waits), so a tap meant for the page is never handed to the sandboxed frame
208
+ - Egatari Viewer's Live layout: a lesson with Live starts on a Join screen (or 「参加しないで見る」, which makes no request) before its frame is placed, and the layout is chosen once from the activities and the screen (a bar, a pane below or beside the stage, or the side slack in phone landscape; on 16:9 phones an indicator over the frame's top edge, or a 28 px strip, behind one constant), laid out again only on rotation. `tools/play-tap-measure.mjs` counts taps lost to the lesson's frame
209
+ - Egatari Viewer: each poll choice's whole row is the tap target (44 px tall where it fits, at least 24 × 24 px in the strip); the overlay is the default on 16:9 phones in landscape; the UI says ホスト and ライブ instead of 先生 and 部屋 (host, Live instead of teacher, room)
210
+
211
+ ## [0.6.0] - 2026-10-28
212
+
213
+ ### Added
214
+
215
+ - Blackout in the presenter view: while the main window is blacked out (`b`), the presenter view shows "Blacked out" and dims its current-slide preview, and `b` in the presenter view toggles blackout on the main window (not in edit mode). As on the main window, the arrows, Space and PageUp/PageDown in the presenter view end blackout without moving the slide.
216
+ - Components v1.10.0 is the default version: **`m-hissan`** (筆算: addition, subtraction, multiplication and division, decimals too, step by step like the textbook), **`m-numberline`** (数直線: points, □, jumps, inequality ranges, a 0.1 magnifier, two lines for proportions) and **`m-tape`** (テープ図・線分図 with braces and “2 倍” arrows), in the series `academic`. For now they are paid-only (`FREE_OUT`): a free pack never names them, and their purposes fall back to the nearest part or HTML there. Release notes: [egatari/components v1.10.0](https://github.com/egatari/components/releases/tag/v1.10.0)
217
+ - Components v1.11.0 adds **`m-keyboard`** (鍵盤: scales, chords and intervals lit on a piano keyboard, with the notes as component sounds), in the new series `music`, and **`m-kakijun`** (書き順 of kana, stroke by stroke), in the series `kokugo`. `m-keyboard` comes with the subject Music on both plans; `m-kakijun` is paid-only for now (`FREE_OUT`). `m-kakijun`'s licence is `MIT AND OFL-1.1` (its stroke data is derived from strokesvg / Klee One): it is recorded in the vendored manifest and `NOTICE`, and the hosted editor ships the part's `OFL.txt`, `LICENSE-strokesvg.txt` and `strokes-CHANGES.md` under `vendor/components/kakijun/<version>/`. `m-timeline` gains project-plan (Gantt) options: `after` arrows, `progress`, `today` and `unit`. Release notes: [egatari/components v1.11.0](https://github.com/egatari/components/releases/tag/v1.11.0)
218
+ - Components v1.12.0 adds **`m-syntax`** (英文の構造: S V O C M marks, phrase and clause brackets, modifier arrows, parts of speech, then the Japanese translation), in the new series `english`. It comes with the subject English (foreign language) on both plans. Release notes: [egatari/components v1.12.0](https://github.com/egatari/components/releases/tag/v1.12.0)
219
+ - Components v1.13.0 is the default version: **`m-heatmap`** (ヒートマップ: a grid of cells coloured by value, such as a confusion or correlation matrix), in the series `academic`, and **`m-map-world`** (世界地図: countries and regions, categories and values, points and arrows on a Pacific-centred world map; map data from Natural Earth, public domain), in the series `social`. Both are paid-only for now (`FREE_OUT`). `m-tree` gains branch labels and paths (paid only), `m-flow` gains decision diamonds and loops, and `m-bars` gains negative values and `stack="percent"`. Release notes: [egatari/components v1.13.0](https://github.com/egatari/components/releases/tag/v1.13.0)
220
+ - Components v1.2.0 is the default version (1.0.0–1.1.0 are kept for lessons that recorded them). Eight new parts: `m-compare`, `m-venn`, `m-tree`, `m-fishbone`, `m-scatter`, `m-pie`, `m-timeline` and `m-cycle`. For now they are in the instructions only under the paid plan (New…, “Paid plan”); under the free plan, no text names them and the purpose table falls back to “not in this text: the nearest part, or HTML or inline SVG” for their purposes. `m-kpi` has presentation variants (`count`, `rise`, `flip`, `underline`) chosen with `variant` (format spec §8.4). `m-bars` has `stack` (stacked bars). Release notes: [egatari/components v1.2.0](https://github.com/egatari/components/releases/tag/v1.2.0)
221
+ - Free plan: `FREE_CORE` (`kit/core/llm-pack-assemble.mjs`) lists the common parts whose notes go into the free common body (`m-bars`, `m-flow`, `m-menu`, the v1.1.0 set). `m-curves`, `m-kpi` and `m-quad`, now common in the components, come in only with their v1.1.0 subjects under the free plan (`FREE_HOME`: Math and statistics, Business, Business). The paid plan has every part. `npm run gen` prints the size of each plan (free per subject and with all subjects, paid), and `node kit/llm-pack.mjs --plan paid` prints the paid pack.
222
+ - A part's notes that name another part (“to compare values by aspect, use `m-compare`”) leave that clause out when the other part is not in the copied text (a purpose turned off, a subject not chosen, or a paid-only part); the “do not use” line of New… names only parts that are in the copied text.
223
+ - Components v1.5.0: **`m-map-japan`**, the 47 prefectures of Japan for geography and history (regions, a choropleth, points, arrows and shapes, each by step; the territory dots and insets are fixed in the data), in a new series `social`. **New subject 地図(社会:地理・歴史) / Maps (social studies: geography, history)** in New… (step 4, small text 日本地図 / Map of Japan; guessed from 地図, 都道府県, 地理, 人口 and the like), with its series instructions `docs/llm-parts/social.md`. The free plan still allows two subjects, and every subject and pair stays within the caps (40 KB, 50 KB; paid 120 KB).
224
+ - `m-curves`, `m-scatter` and `m-map-japan`: `anchor` also accepts `top` and `bottom`, as names for `above` and `below`. Release notes: [egatari/components v1.5.0](https://github.com/egatari/components/releases/tag/v1.5.0)
225
+ - Components v1.7.0: **`m-predict`** (predict, then check: a question and choices, the class's counts as bars, then the answer) and **`m-timer`** (a group-work timer, one phase per step), the first parts that take viewer input. The manifest now carries `interactive`, `viewerInput` and `clock`. A 16th purpose tile in New…, **予想して確かめる / Predict, then check** (手を挙げて数える・答えを開く); the `timebox` purpose makes no tile. On the free plan both parts are paid-only for now (never named in a free pack), and every free subject and pair stays within the caps. Release notes: [egatari/components v1.7.0](https://github.com/egatari/components/releases/tag/v1.7.0)
226
+ - Components v1.8.0: `m-timer` is a tool (manifest `components.timer.group: "tool"` with its own tile 「タイマー」 / "Timer"), and it has bells (`bells`, declared with `events(k)`). Studio ignores the bells for now; the clock and colours still carry the time.
227
+ - Components v1.9.0 is the default version: **`m-hist`** (histogram, frequency polygon, dot plot, with mean, median and mode lines) and **`m-boxplot`** (a box plot built step by step like the textbook procedure; groups side by side), both in the series `academic`. The 伝えたいこと tile ばらつき / Spread now reads ヒストグラム・箱ひげ図・ドットプロット. On the free plan both are paid-only for now (`FREE_OUT`: never named in a free pack; spread and compare fall back to the nearest part or HTML), so the free 数理・統計 pack stays under 40 KB. Instructions pack `8e0efb1a` → `fb9e430d`; the largest free pair is ja 49,233 B (academic + kokugo; cap 51,200 B), paid ja 101,615 B. Release notes: [egatari/components v1.9.0](https://github.com/egatari/components/releases/tag/v1.9.0)
228
+ - Files from an earlier version (no `player` in the index, format spec §7.1) open read-only: the lesson plays in the preview with its own player, editing and saving are refused, and a notice offers **Open in the earlier Studio** (`studio.egatari.org/v<made-with>/`, or the newest pre-1.0 version in `versions.json`) and **Open the migration guide**. Working folders with `egatari.json` in which no slide has an id get the same notice, with `npm run ids`; it goes away once the ids are added. A slide added by hand without an id to a 1.0 folder does not bring the notice (the next export gives it an id).
229
+ - Migration guide for lessons made with an earlier version: `docs/migrating-0.x.md` (日本語: `docs/migrating-0.x.ja.md`), written so that a person or an AI coding agent can follow it step by step.
230
+ - `npm run player:check` (information only; `--strict` for the release candidate) and `npm run player:bump -- patch|minor|major` keep the bundled player's version and lock (RELEASING.md).
231
+ - Exporting an Egatari file gives every slide without an id an id and every script heading `{#id}`, and writes them back to the working folder (with the keys in `audio/manifest.json`, `timeline.json`, `comments.json` and `egatari.json`; backups in `.cache/edits/`). Files never carry heading-text keys, hand-written `data-key` or `s<n>` keys; the build and the quality checker still accept id-less source.
232
+ - The quality checker warns (never an error) about source outside the 1.0 vocabulary (format spec §8.0): the colour classes `blue`, `red`, `gray` (use `term`, `emph`, `muted`), `data-steps` and `data-anim` (steps and motion come from `data-step`, `data-at`, `draw` and parts), and `<html data-mode="lecture">` (the viewer's “Show later steps faintly”). Studio writes none of them, and no lesson seed (`data-egatari-seed`).
233
+ - The index validator accepts `index.article` and article-only lessons (no `entry`); reading a file written before the 1.0 shape (no `player`) still works and reports it (`preDraft`).
234
+ - Markers in edit mode (#70): `m` (or the "Marker (m)" button in the editor's edit-mode bar, or the slide controls' pen button, which reads "Marker" with the key `m` while editing and is the only tool button left there; the pen key `d` also opens it) turns the pointer into a comment pen; `d` typed into a text field stays text and the presenter view still cannot choose tools while editing. Drawing a circle or an arrow on the slide opens the same note box as Alt+click, and the preview stays drawable while the box is open, so further strokes (an arrow plus a circle, several underlines) join the same pending note; Leave keeps them all, Cancel discards them all. The marks are kept in `comments.json` as `strokes: [[[x, y], …], …]` in slide coordinates (at most 20 strokes, 500 points each, 2000 in all); `pin` is the length-weighted centroid over all strokes, set by the writers. An entry with a single `stroke` is read as `strokes: [stroke]`, and writers write only `strokes` (contract §13). The editor's overlay and `npm run comment-shots` draw every stroke in the pin colour, the crop covers all of them, and the mode indicator reads "Editing: marker".
235
+ - New…, step 2 asks **Is your chat AI a free or a paid plan?** (お使いのチャットの AI は無料版ですか、有料版ですか). **Free plan** (the default) copies today's light instructions: the common body plus the subjects you choose. **Paid plan** copies the parts of every subject and hides the subject choice. The choice is recorded as `plan` (`free` or `paid`) in `egatari.json` `studio.newDeck`; an earlier record without it reads as `free` (`AI_PLANS`, `planOf`, `seriesForChoice` in `kit/core/new-deck.mjs`).
236
+ - Size caps per plan for the generated instructions: `PACK_CAP_KB` in `kit/core/llm-pack-assemble.mjs` (free: 40 KB with one subject, 59 KB with any set; paid: `PAID_PACK_KB`, 120 KB, provisional). Tests check every subject set, and the sweep over purposes turned off now runs in both plans and checks each plan's cap.
237
+ - New…, Guides (手引き) gets three subcategories with their structure templates: Manual (マニュアル: goal → the steps, one at a time → common pitfalls), Rules and regulations (規程・法令の説明: what the rules are about → who they apply to and when → what you must do → the original text and its date) and Information and orientation (案内: the situation → a list to look up by item or situation → where to ask; for example waste sorting, using the library, evacuation routes, orientation for new students or staff, course registration).
238
+ - New ④ has a subject tile **English (foreign language)** (英語, “Sentence structure (S V O C M, phrases, clauses)”), placed after Japanese language arts, with the series `english` of the AI instructions and `m-syntax`. It is a free subject: it counts as one of the two choices on the free plan. The en label says “(foreign language)” so that it is not confused with the lesson language English. The title and content suggest it (英語, 英文, 文型, 関係代名詞, …; not the word “English” alone).
239
+ - Tests: the stories S1–S7 walked end to end in the editor (`tools/test-app-newdeck.mjs`). Every free pack is checked to name no `m-*` part outside its own catalog.
240
+ - New ④ has a subject tile **Music** (音楽, “Keyboard (scales, chords)”), the series `music` of the AI instructions with `m-keyboard`. It is a free subject: it counts as one of the two choices on the free plan. The title and content suggest it (音楽, 音階, 和音, ピアノ, music, chords, …). The purpose `music` has no tile of its own (`tile: "none"`); its icon is drawn wherever purposes are listed with icons.
241
+ - New… step 4: a **道具 / Tools** row, 「スライドで道具を使いますか」 / “Will you use any tools on the slides?”, with the hint 「選んだ道具だけを、AI が使います」 / “The AI uses only the tools you choose.”, built from the components' manifest (`components.<name>.group: "tool"` and its `tile`; today タイマー / Timer). A tool part goes into the instructions only when its tile is on, on either plan; the timer is pre-ticked when the title, content or other wishes mention グループワーク, a number of minutes (「10 分」) or 時間, never over your own choice. The chosen tools are stored in `studio.newDeck.tools`. `node kit/llm-pack.mjs` takes `--tools`, and `--plan paid` now honours `--series` (`--series all --tools all --plan paid` is the full pack). `npm run gen` checks the free plan with a tool too (a tool alone against 40 KB, every subject + tool against 50 KB), every paid pair of subjects with every tool against 120 KB, and only warns for the paid all-ticked worst case.
242
+ - Editor app, **New…** has six steps (backlog #99): **1. the kind**, a category (Teaching, Research, Business, Guides, Other; “Academic” is gone) and a subcategory that sets the structure template (10 subcategories; Guides has a structure of its own), added to the request with its structure and presentation; **2. subjects and purposes**: subjects are part sets (Math and statistics, Business, Japanese language arts, Information science), the materials Table, Image, Equation and Shape are always available, and 14 purpose tiles are all on by default. A tile turned off tells the AI not to use those representations and leaves the parts used only for it out of the copied catalog (`kit/core/purposes.mjs`, `kit/core/new-deck.mjs`). Purposes are read from the components' release manifest when it lists them, otherwise from the decided table.
243
+ - **New…** records the choices in `egatari.json` as `studio.newDeck` (through `updateConfig`) when the lesson is created.
244
+ - Player: when a lesson opens, the toolbar stays for about 5 seconds. The first time on a device, one line above it says how to bring it back: "Move the mouse to the bottom of the screen (or tap) to show the toolbar" / 「マウスを画面の下に動かす(タップする)と、ツールバーが出ます」 (backlog #122)
245
+ - Player: while the toolbar is hidden, a small faint button at the bottom left, **Show toolbar** / 「ツールバーを表示」, brings it back with a click, a tap or the keyboard. It is not shown in video mode, in the presenter view's inner screens, when an embedding page turns the controls off (`embed=1&controls=0`, which now also leaves out the toolbar), or in print
246
+ - Player: the first-time hint line is hidden from screen readers (`aria-hidden`), so it is not announced when the lesson opens; keyboard users reach the toolbar with Tab, and the handle keeps its accessible name
247
+ - Player: under **Show later steps faintly**, an element marked `data-preview="none"` keeps its later steps hidden instead of faint (an answer the audience should work out first), and so does a component that declares `static preview = "none"` (m-predict, m-hissan and m-timer from the components release that adds it); the player no longer dims such a component from outside (format spec §8.4, Player P1)
248
+ - Player: `?mode=talk&preview=1` opens a slide show with later steps shown faintly (Player P8); `?mode=lecture` keeps working as before
249
+ - Player: the key list (<kbd>?</kbd>) of an Egatari file shows its versions in the order Format → Player → Made with (「形式」「プレーヤー」「作成」, e.g. Format: Egatari 1.0 · Made with: Egatari Studio 0.6.0), using `title` from `player` and `generator` when present and `name` otherwise; the Player line appears when the file names its player (format spec §4.1, Player P3)
250
+ - Saving an Egatari file with a rebuild asks first when the file carried another player (format spec §4.1): **The player will change** names the file's player and the one the saved file will carry; **Save** saves, **Cancel** keeps the changes unsaved. It follows `playerChange` from the export, so a newer version of the same player is not asked about.
251
+ - The quality checker warns about a chapter divider with an `<h2>` and no `<h1>` (`secHeading`: the title of a divider is `<h1>`), and about heading or body text whose computed colour has less than 4.5:1 contrast with the background behind it (`textContrast`, one per slide; never over images or gradients). Both are warnings, in the command line and the editor.
252
+ - The AI instructions describe the chapter divider: `<section class="slide sec noconcl static"><h1>…</h1></section>`, and R-headings says dividers use `h1`.
253
+ - Editor app: **Slide ▾ → Change theme…** changes the theme of an open deck. It lists the themes of New… ③ (display names, color swatches, the current one marked, own themes under My themes, and Load theme…, which opens the same Load theme dialog and adds what it loads to the list), rewrites only `data-theme` on the source's `<html>` (other attributes and the slides stay), pins the new theme and the themes it builds on (`extends`) at their current versions (a theme of your own, from the theme folder or a ZIP file, at its `theme.json` version or `"local"`; it is found in the same place as the build looks) in `egatari.json` `themes`, even over an earlier pin, and drops pins nothing uses (other members keep their bytes).
254
+ The preview is rebuilt; it is an unsaved change and **Undo** in the slide list restores the source and `egatari.json` byte for byte. Disabled, with the reason, in files where only narration, audio and timing can be edited.
255
+ - Editor: load custom themes from a ZIP file in every browser, including Safari, Firefox and the iPad. **Load theme…** (theme list, theme notice, **My themes…**) opens a small dialog with **Choose ZIP file…** and, where the browser can choose folders, **Choose folder…**. Themes are found up to 5 levels deep (a GitHub “Download ZIP” works), all themes in the file are loaded so `extends` within it resolves, and the file is read as untrusted (size, entry and per-file limits; `..`, absolute paths, symbolic links and bad theme names refuse it). The themes are saved in the browser as “My themes”, can be deleted one by one in **My themes…**, and with a theme folder the theme chosen or loaded last wins.
256
+ - `npm run lint:terms` (also in `npm test`): flags avoided words of the termbase in UI strings, docs and skills, with `docs/terms-allow.json` for legitimate uses, and fails where a Japanese UI string's term has no matching English term in its partner.
257
+
258
+ ### Changed (API)
259
+
260
+ - `assemble(data, {series, lang, exclude, off, plan})`, `buildPack({…, plan})`, `packWithRequest({…, plan})`, `commonBody(lang, exclude, series, off, plan)` and `seriesPart(name, lang, exclude, plan)`: `plan` is `'free'` (default; `FREE_CORE`, `FREE_HOME`, no paid-only parts) or `'paid'` (every series and every part; `series` is ignored). New: `packParts`, `planData`, `paidOnly`, `freeSeriesOf`, `goneParts` (`kit/core/llm-pack-assemble.mjs`), `PAID_ONLY`, `loadedParts(series, plan)` and `membersOfSeries(name, plan)` (`kit/core/llm-pack.mjs`), `hidden` in `purposesTable`, and `node kit/llm-pack.mjs --plan paid`.
261
+ - Egatari files follow the 1.0 file shape (format spec §4.1, §4.2, §7.1, §8.1): the index and `deck-meta` carry **`player`** (`{"name": "egatari-player", "version": …, "title": "Egatari Player"}`, the bundled Egatari Player; its version is in `kit/player.json`, with `+dev.<commit>` when the player files differ from the release in `kit/player.lock.json`) and **`generator`** (`{"name": "egatari-studio", "version": <Studio's version>, "title": "Egatari Studio"}`, was `motion-academic-slides`; `title` is the name shown to people). `contracts` is `{"source": 1}`; `contracts.runtime` is no longer written or read.
262
+ - Every Egatari file carries the **file policy**: a Content-Security-Policy `<meta>` right after `<meta charset>` with the baseline that connects nowhere. Every Egatari file copies `extensions.embed` into `deck-extensions`, and the policy adds the declared destinations of each extension in its own directive (embed → `frame-src`, Live → `connect-src`); a play-only copy with Live merges the endpoint into the policy and adds `live` to the same block, also next to embed. Readers report a missing, misplaced or different policy (compared as parsed directives) as not conforming.
263
+ - `assemble(data, {series, tools, lang, exclude, off, plan})` (`kit/core/llm-pack-assemble.mjs`), `buildPack`, `packWithRequest`, `commonBody(…, plan, tools)`, `seriesPart(…, plan, tools)` and `loadedParts(series, plan, tools)` take an optional `tools` list (tags or names, or `'all'`); without it no tool is included. With `plan: 'paid'`, `series` is now honoured (it used to be every series): pass `series: 'all', tools: 'all'` for the full pack. `kit/core/llm-pack.mjs` exports `TOOLS`; `kit/core/new-deck.mjs` exports `guessTools` and `toolsForChoice`, and `studio.newDeck` has `tools`.
264
+ - `assemble(data, {series, lang, exclude})` (`kit/core/llm-pack-assemble.mjs`), `commonBody(lang, exclude)`, `seriesPart(name, lang, exclude)` and `packWithRequest({…, exclude})` take an optional `exclude` list of component tags left out of the catalog; without it the output is unchanged.
265
+ - Component context (format spec §8.4): `ctx.entered` is `true` on the first render after the viewer entered the slide from another slide or by a jump (a link, the slide overview, a slide number, a position chosen in the presenter view or the editor, opening the lesson), and `false` otherwise, so a component knows when to reset viewer input. `deck:pos` still fires for components pinned to earlier releases
266
+ - Component context (format spec §8.4): `ctx.mode` is `"talk"` or `"video"`, never `"lecture"`; later steps shown faintly are `ctx.preview === true` (with `mode: "talk"`). Components pinned before v1.10.0 that test only `ctx.mode === "lecture"` draw their later steps hidden under preview. `ctx` passes `preview: false` to a component inside an element marked `data-preview="none"`
267
+ - Component context (format spec §8.4): `ctx.slide` is the slide's key (a string), no longer the slide's element; a component that needs its slide finds it in the document. No component in the library reads it
268
+ - `DECK.VERSION` is the version of the running player: `player.version` in `deck-meta` (format spec §4.1), `generator.version` for a file from before 1.0, and Studio's version in a plain build. The new `DECK.MADE_WITH` is `generator.version`. **Send feedback** fills `version` with the player's version and adds `made=<Studio version>` to the context when it differs.
269
+ - `assemble(data, {series, lang, exclude, off})`, `commonOf(data, lang, exclude, series, off)` / `commonBody(lang, exclude, series, off)` and `packWithRequest({…, off})`: the common body's purpose table depends on the included series (default: none, as in `docs/authoring-with-llms.md`) and on the purposes turned off. `partSpans(text, exclude)` drops text tied to excluded parts.
270
+
271
+ ### Changed
272
+
273
+ - The Audio panel is redesigned in three parts. **A** (always on top) is one status line — how many steps have audio, how many need updating because the script changed, how many AI-made steps are still in the old voice after you changed the voice (compared through `recipe.voice`, since `inputHash` ignores the voice), and “Not in the file until you save” in a single file — with one action, **Make the rest (n steps)**, **Update audio (n steps)** or **Save**, that continues with the method used last (kept as `studio.audioMethod` in `egatari.json`). **B** asks “How do you want to add audio?”: make AI audio in the cloud (Google Colab, the default), on this computer (shown only with WebGPU, then the default) or record your own voice (recording mode); the voice fields sit above the answers and read “Voice of the explainer” / “Voice of the questioner” for a dialogue. **C** is this step: Play, Listen with read-aloud, Record (r), Import from a file…, Revert and Remake on this computer.
274
+ - The cloud path is three ticked steps: Export the script (the privacy question is asked once per browser), Open Colab (the steps — Connect, switch to CPU if a T4 cannot connect, Run all, choose the file, the ZIP downloads — are written in the panel and at the top of the Colab notebook, in Japanese and English) and Import the audio… (a plain file input; no folder picker).
275
+ - Removed from the Audio panel: the “when there is no WebGPU” framing, the export scope, the “marked” list of steps whose script changed after the export (they are offered as **Update audio** instead), “Regenerate with TTS” (now “Remake on this computer”), and the stale pre-processing list. Recording mode wording: step, script, “points where the animation follows the voice”, “Use and next”.
276
+ - Theme `business` 1.0.1, `--emph` #C2410C → #BA3C05: the same orange (OKLCH hue 38.4), slightly darker, so that orange text on its own `--emph-tint` reaches 4.66:1 (was 4.34:1, under the 4.5:1 text floor; emph boxes and the kpi, quad and flow components); 5.62:1 on white.
277
+ Protan/deutan ΔE00 to the other tones moves by at most 1.7. A lesson that recorded `business` 1.0.0 keeps it (`theme pinned: …`, `--update-themes`), as for `default` 1.1.0.
278
+ - Live: the pressed **I don't follow** button takes the deck theme's `--emph` (was a fixed `#c2410c`), so it matches every theme.
279
+ - Colab notebook, Japanese (Irodori) on the CPU: without a GPU, or after the fallback to the CPU, it uses a CPU profile — fewer diffusion steps (`IRODORI_CPU_STEPS` in `colab/egatari_tts.py`, 16; 40 on the GPU — the owner heard no difference between 16 and 24) and the fp32 weights (`onnx/`), which run faster than fp16 on the CPU. Cell 1 says so in its `env:` line (`… · CPU(Irodori の steps=16)`). The worker now encodes each reference voice once instead of on every segment (same audio). On a Mac CPU one segment went from about 12.4 s (fp16, 40 steps) to about 2.7 s (fp32, 16 steps).
280
+ - Colab notebook timing: each progress line shows the step's time and the running total (`3/10 s-intro:2 (+41.2 s, total 2:15)`) and the end prints the total, from a monotonic clock around the real synthesis, since Colab's cell timer can be wrong on long runs. A `PROFILE` box in cell 3 prints the time of each stage per segment.
281
+ - Records from the notebook carry `recipe.diffusionSteps` and `recipe.precision` (Japanese) as provenance; the import keeps them and they are not part of `inputHash`. The verified note adds the owner's 2026-10-25 timings (T4 and CPU, Japanese and English), and `npm run gen` now keeps the docs' `<!-- colab-verified -->` lines in step with it.
282
+ - Components v1.10.0, **visible in lessons**: m-timer's built-in label 「時間です」 now reads 「時間」, and the −1/+1 controls of m-predict and the −1 分/+1 分 controls of m-timer use 27 px text. The demos of m-boxplot, m-predict and m-timer now pass Studio's quality check (their known errors are removed from the component test); the new m-numberline demo has one (slide 3 overflows by 47 px), listed as known until it is fixed upstream. The lecture checks inside the parts read `ctx.preview || ctx.mode === "lecture"`; Studio still passes mode `lecture`, so nothing changes yet.
283
+ - Components v1.11.0, **visible in lessons in the lecture view only** (“Show later steps faintly”): every part shows its later steps faintly at the theme's `--preview-opacity`, except `m-predict`, `m-hissan` and `m-timer`, which declare `static preview = "none"` and show nothing ahead. With no lesson seed, a part without `variant` shows its first variant (no change for lessons without a seed). Drawing fixes: the same step now leaves the same DOM whatever was drawn before (`m-cycle`, `m-codetree`, `m-seq`, `m-sweep`, `m-hist`, `m-map-japan`, `m-menu`), and `m-tree`, `m-venn` and `m-numberline` no longer rasterize differently after being redrawn. The expired known flake for macOS `m-cycle` (slide 1, step 5) is removed from `tools/step-reset-known.mjs`.
284
+ - Components v1.12.0, **visible in lessons**: `m-predict` and `m-timer` keep what the viewer chose or set while the viewer stays on the slide (stepping forward and back), and return to the author's values when the slide is entered from elsewhere or after a jump (`ctx.entered`).
285
+ - Components v1.13.0, **visible in lessons**: `m-bars` draws bars with negative values below the zero line (before, a negative value was drawn as 0).
286
+ - `m-flow`: edge labels and the text in `muted` boxes now use `--fg` (they used `--muted`, which was faint when projected). Existing lessons that use them look different when they are rebuilt with v1.2.0.
287
+ - The instructions keep only the names of a part's presentation variants (the AI does not need to write them), and shorten how stacked bars are drawn. Instructions pack `ff02abc6` → `26de0e58`.
288
+ - Components v1.2.1 is the default version (1.0.0–1.2.0 are kept for lessons that recorded them). No part's code (`index.js`) changed. The captions on the presentation-variant demo slides are now 27 px, so the quality check's known `smallText` issue for those demos is removed from `tools/test-components.mjs`. Several part notes (READMEs) no longer split an attribute's description to mention another part; the free-plan common parts (`m-bars`, `m-flow`, `m-menu`, `m-curves`, `m-quad`, `m-kpi`) are unchanged, so the free-plan sizes stay the same and only the paid pack is smaller. Instructions pack `214a0876` → `5cc9551c`.
289
+ - Components v1.3.0 is the default version (1.0.0–1.2.1 are kept for lessons that recorded them). `m-curves` gains the series words of `m-scatter`: `step` (series with the same `step` are drawn together), `tone`, `labelAt` (where the series name sits) and `anchor` `right` / `left` / `above` / `below`. The old forms still work and draw identically (`color`, `at` as the x of the name, `anchor` `start` / `middle` / `end`); they are described only outside the AI notes. The `m-scatter` notes no longer refer to `m-curves` for the axes. Instructions pack `5cc9551c` → `0f5e51c9`; free plan with all subjects: ja 59,825 B, en 58,528 B (cap 60,416 B). Release notes: [egatari/components v1.3.0](https://github.com/egatari/components/releases/tag/v1.3.0)
290
+ - Components v1.4.0: **`m-kanbun` now gives one step per line (句) of the reading order** (before, one step for the whole reading order): the default `phases="kunten order kaki"` gives 訓点 1 + one step per line read + 書き下し文 1, and a return to an earlier line by a 返り点 or a 再読文字 starts a step of its own. **An existing lesson that updates to this version gets stale steps**: its narration `[n]` must be re-aligned (one `[n]` per 句), and audio recorded for those steps no longer matches. `order-by="all"` keeps the old single step, with the same drawing and timing as v1.3.0. Lessons that recorded an earlier version stay on it until their author updates. The kokugo series instructions and the worked example now write one `[n]` per 句, and `examples/kokugo-kanbun` uses the new default (its narration has one `[n]` per 句 instead of `{cue}`).
291
+ Also fixed in v1.4.0: the current-character highlight of `m-kanbun` fades out within its step, and the `m-kobun` translation lines finish within the step. Release notes: [egatari/components v1.4.0](https://github.com/egatari/components/releases/tag/v1.4.0)
292
+ - Components v1.6.0 is the default version (the tarball is the same as v1.5.0; only the release manifest adds tile fields to its purposes). **The purpose tiles in New… are built from the manifest**: `tile: "own"` makes a tile with its `label`, `examples` and `icon`, `{"into": id}` folds a purpose into another tile (ranking into compare: turning the tile off turns both off), `"none"` makes none. The 14 tiles read as before, plus a 15th, **場所・地図 / Place / map** (日本地図・塗り分け・地点と矢印), backed by `m-map-japan` only when the Maps subject is in the instructions; otherwise the AI draws it in HTML, as for any tile without a part. A manifest without tile fields (before v1.6.0) is mapped onto the same 15 tiles by Studio's table, with a warning from `npm run gen`. The hint under the tiles reads 「今は全部使えます。押した表し方は、AI が使いません」 / “All are in use. Press one and the AI won't use that representation.” Instructions pack `0f5e51c9` → `8e0efb1a`; the largest free pair is ja 49,079 B (academic + kokugo; cap 51,200 B), paid ja 92,900 B. Release notes: [egatari/components v1.6.0](https://github.com/egatari/components/releases/tag/v1.6.0)
293
+ - Components v1.8.0: **`m-map-japan` draws differently by default, a visible change for existing lessons once they move to v1.8.0**: the 小笠原諸島 inset is off unless `islands="all"`, and 北方領土・竹島・尖閣諸島 are drawn at every size. Lessons that recorded v1.7.x or earlier keep their drawing until their author updates. New demo slide 「日本の範囲(本当の位置)」 with `layout="true"`; labels no longer sit inside the inset frames. Release notes: [egatari/components v1.8.0](https://github.com/egatari/components/releases/tag/v1.8.0)
294
+ - Components v1.9.1: only README text changed. m-kobun's and m-kanbun's implementation notes moved into `llm: omit`, so their part of the instructions is 645 B and 163 B shorter, and Studio no longer needs its own shortening of the m-kobun text, which is removed. No code changed. Release notes: [egatari/components v1.9.1](https://github.com/egatari/components/releases/tag/v1.9.1)
295
+ - Docs: the format specification's §8 is now the normative text of the authoring source. `docs/contract(.ja).md` points to it (a table of which section says what) and keeps only Studio's notes: its run-time API, the dev server, the `✎` placeholders, the quality checker's codes and Studio's CSS hooks; `docs/reference(.ja).md` points to §8 and §5.5 for slides, script and timing. The legacy `data-steps`, `data-anim`, `data-mode="lecture"` and `.blue`/`.red`/`.gray` are no longer listed as current; the migration guide says what to replace them with.
296
+ - Theme `default` 1.2.0, the conclusion row: a 5px bar in `--emph` on its left, bold text, its fixed position and a light grey ground (`--concl-bg` transparent → #F5F5F5), left-aligned instead of centred in a frame. Position and height are unchanged (571px / 72px), so the quality checks give the same results.
297
+ `--emph` text on the ground is 5.32:1 and `--fg` 14.59:1; the neutral grey looks the same for every colour-vision type and in greyscale. Vertical (`layout-tate`) slides keep the framed conclusion column. `kokugo` takes the bar in its own red; `business` keeps its pale-orange ground. A lesson that recorded `default` 1.1.0 keeps it (`theme pinned: …`, `--update-themes`). Conclusion row design proposed by @totasuko-lab
298
+ - Saving without rebuilding (tier A) keeps `player` and `generator` byte for byte; a rebuild warns when the file carried another player (`playerChange`). A lesson with an article is not rebuilt (`article-unsupported`).
299
+ - Chat AI: free plan: **m-predict (予想と答え / Predict and check) is a standard part** (`FREE_CORE` is now `m-bars`, `m-flow`, `m-menu`, `m-predict`), so the free instructions describe it and the 予想して確かめる tile has a part on both plans. Every free cap still holds, with a tool counted as one of the two choices: the largest single subject is ja kokugo 40,723 B (cap 40,960 B), the largest pair ja academic + kokugo 50,496 B and ja kokugo + timer 42,593 B (cap 51,200 B). Instructions pack `48ab84a3` → `1561b3b8`.
300
+ - Japanese and Chinese text no longer starts a line with a small kana (ゃ, っ, ァ …), a long vowel mark (ー), a closing bracket or a punctuation mark (`line-break: strict`, format spec §8.0). This now applies to horizontal slides, captions, the presenter view's script and components, as it already did to vertical slides. Some line breaks on existing Japanese slides can move; the quality check gives the same results on the bundled examples. `……`, `――` and runs of digits were already never split
301
+ - Lecture view (`?mode=lecture`, key `l`): the highlighter on the current step is removed (the underline-style background on `.cur`, and the row tint on a current table row), and no other mark replaces it. The runtime no longer adds the `.cur` class to step elements. Steps not yet reached stay dimmed with the theme variable `--lecture-dim` (0.5 by default; a theme may set it within 0.45–0.5); steps already reached are at full strength. Talk and video modes are unchanged, byte for byte. `--emph-tint` stays in the themes but the kit no longer uses it. Backlog #86
302
+ - New…: the 14 purpose tiles are in a fold, closed by default, **Choose representations the AI should not use (optional)** (AI に使わせない表し方を選ぶ(選ばなくてよい)), whose summary says how many are off. The tiles work as before (they only turn representations off) under both plans.
303
+ - New… is rewritten as five questions in thinking order: 1. Where will you use it? → 2. What is it about, and who is it for? → 3. How should it look? → 4. Send the instructions to your chat AI → 5. Paste the AI’s output. Answered questions collapse to one line with **Change**. Step 1 must be answered: nothing is pre-selected, and the subcategory question ends with **None of these**. Other and None of these add no structure lines and are stored as `subcategory: null` in `studio.newDeck`.
304
+ - New…, step 2: **Title (shown on the cover)** is required and replaces the topic. Audience, Length (a number of slides or minutes) and Content each default to “Leave it to the AI”, and items left to the AI are not written. Content has a third answer, **Already given to the chat AI**, which asks for the lesson from the material given in that chat. A **More** fold holds Language, Speakers (one, or two as Expert and Novice) and Other wishes. The plan and subject questions move to step 4, where the subjects are ticked from the title and content.
305
+ - Pasting the AI’s output (New…, Insert slide…, Revise…): two fields, **Slides (deck.html)** and **Script (narration.md)**, each showing what it holds. The whole output pasted into either field is split, and a block in the wrong field is moved. The hidden one-block-at-a-time state, “Import just this” and its reset are removed. The buttons are **Create**, **Insert** and **Replace**, and Create shows “It will be made without a script” when the script is empty.
306
+ - Lengths in minutes count toward asking in two rounds (1 min ≈ 1 slide; `slideCountOf`).
307
+ - Instructions for the AI (pack text): the request form has **Title (used as is on the cover)** instead of Topic, **Other wishes** instead of examples or figures, and a title line in B. B now reads “Make the lesson from the material given in this chat and what we have discussed so far.” R-dialogue keeps at most two roles when asked for three or more speakers.
308
+ - The free-plan cap for every subject set is 59 KB (was 58). Over a cap, `npm run gen` names the pack (plan, language, subject set), the bytes over and its three largest sections.
309
+ - docs/authoring-with-llms*.md and docs/llm-parts/ now show the full (paid-plan) pack. They have a note that a free plan should copy the lighter version from New…, and a size table for both plans.
310
+ - **Create**, **Insert** and **Replace** stay in place and, while disabled, show the first missing thing right beside them (“Answer step 1”, “Write the title in step 2”, “Paste the slides in step 5”, and the step 3 forms for Insert and Revise). Notes such as “It will be made without a script” move from the left of the footer to beside the button.
311
+ - Pasting: a code block pasted with text around it or with its fence lines leaves only the extracted block in the field and says so.
312
+ - New…, “Already given to the chat AI”: the More fold (language, speakers, other wishes) is shown again, and those lines go into the B request in the same form as A. Pack text: the B heading is now “B. From the material and discussion in this chat” (ja 「B. 渡した資料と話し合いの内容で作る」), and the blank B form has Language, Speakers and Other wishes. Instructions pack `d737805d` → `214a0876`.
313
+ - New…, Insert slides… and Revise…: only the current step is open (a one-open flow, like a checkout). All headings stay visible in order as buttons (`aria-expanded`, the current one `aria-current="step"`); steps not reached yet show only their heading, greyed. **Next** folds the answered step to its one-line summary with **Change** and opens the next one (scrolled into view, focus on its first control). Copying the instructions opens the paste step, so you land on the paste fields when you come back from the chat. **Change** reopens that step alone.
314
+ - New… step 4: **the plan no longer means “every part”; it changes how much goes in.** Subjects are chosen on both plans and pre-ticked from step 2 on both (never all ticked by default; the paid “all of them are included” state is gone). Chat AI: free plan sends the standard parts (`FREE_CORE`) and up to two choices, **subjects and tools together** (a tool counts as one: a subject plus a tool falls under the 50 KB pair cap; with two on, the other subject and tool tiles are disabled and 「チャットの AI が無料のプランなので、分野と道具を合わせて 2 つまで選べます」 / “Your chat AI is on a free plan, so you can choose up to two subjects and tools in total.” is shown); Chat AI: paid plan sends every standard part and the chosen subjects and tools with no limit. Switching back to the free plan keeps the first two ticks in tile order (subjects first, then tools) and shows the limit message. The strip 「この指示に入るパーツ」 and the answered line follow the chosen subjects and tools on both plans. Instructions pack `fb9e430d` → `48ab84a3`.
315
+ - Instructions for the AI: pack version `e43dedc5` → `2f046ca0`: new §2.7 with **R-purpose** and the purpose → representation → steps table (parts-map §10), **R-whole** (lists, KPI cards and pies are shown whole unless the narration discusses each item), and a one-line index of all parts with their pack and a pinned link to the components' READMEs in §3. Fitting the slide is now §2.8. `m-curves` and `m-quad` stay in their packs until components v1.2.0.
316
+ - `egatari.json` `studio.outline` (long lessons) is written through `updateConfig`, so other members stay byte for byte; a file that is not a JSON object is refused instead of overwritten.
317
+ - New…, step 4: the subjects are tiles like the purpose tiles (an icon, the name, a small line of what is inside; `aria-pressed`, an on tile has a check mark and a frame). Under the free plan two can be on and the rest are disabled; under the paid plan every tile is on and not pressable, with “The paid plan includes all of them.” (有料のプランでは全部入ります). The tiles come from `SUBJECTS` (`label`, `inside`, `icon`), so a new subject is one entry.
318
+ - New…: the fold is now **See parts, turn off representations (usually not needed)** (パーツを見る・表し方を外す), with “Parts: N (M turned off)” in its summary. Inside, above the purpose tiles, a read-only strip **Parts in these instructions** (この指示に入るパーツ) shows each part in the pack (the same list as the assembly, `loadedParts`); parts turned off are faded and struck through. Under the purpose tiles, one line always says “Representations without a part are drawn by the AI in HTML.” Names and icons of the parts: `kit/core/part-labels.mjs`.
319
+ - New…: the subjects hint names the standard parts from `FREE_CORE`’s labels: “With none, only the standard parts (Bar chart, Flow diagram, Contents, …)” (標準パーツ(棒グラフ・流れ図・目次など)).
320
+ - New…, free plan: up to two subjects can be ticked (`FREE_SUBJECT_MAX`, `freeSubjects` in `kit/core/new-deck.mjs`). With two ticked the other boxes are disabled and the list says “Up to two on the free plan.” (無料のプランでは 2 つまで選べます); unticking one enables them again. The guess from steps 1 and 2 ticks two at most (the first two in subject order). The paid plan has no limit.
321
+ - New… always starts with no subject ticked; it does not read the open lesson's `studio.newDeck`. A record written elsewhere with more than two subjects is kept as it is, and the free plan's pack uses its first two (`seriesForChoice`).
322
+ - Size caps for the free plan: `PACK_CAP_KB.free` is now `{ one: 40, two: 50 }` (every single subject ≤ 40 KB, every pair ≤ 50 KB, in ja and en); the cap for every subject (59 KB) is gone. `npm run gen` prints each single subject and the largest pair, and the size table in `docs/authoring-with-llms*.md` lists the largest pair instead of every subject.
323
+ - Egatari Player 1.0.0 (the bundled player that files carry, `player` in the index and `deck-meta`): the first fixed release of the player, following Egatari 1.0 (wd-2026-10-28). Files now record which player they play with, and Studio asks before a save would change it. For lessons: the toolbar shows for 5 s when a lesson opens, with a first-time hint and a faint handle while it is hidden; on touch screens a tap shows the toolbar without pressing the button underneath; Japanese and Chinese line breaks follow strict kinsoku; parts whose previews are dimmed use `--preview-opacity`.
324
+ - Player: the address bar shows the position as the slide's id and step (`#s-k3f9q2`, `#s-k3f9q2:2`, `#s-k3f9q2:concl`), as format spec §9.1A writes links to slides, instead of the slide number. A copied address opens at the same step. Addresses with a slide number (`#3`) still open, and a number typed into the address still moves there
325
+ - Later steps shown faintly are drawn at the theme's `--preview-opacity`, 0.45 (was `--lecture-dim`, 0.5), so they are slightly fainter. `kit/base.css` and theme `default` define `--preview-opacity: .45`; `--lecture-dim` stays defined, equal to it, for components pinned before v1.10.0
326
+ - Instructions for the AI: pack version `2f046ca0` → `88ecfc51`. The R-purpose table is generated from the vendored parts: each purpose lists the parts that serve it (with their pack); a purpose with no part yet says to use the nearest part, or HTML or inline SVG (no `*` markers, and no part that is not vendored is ever named); a last row lists the parts no purpose uses. The table replaces the separate list of all parts (same pinned link). Steps come from the components manifest when it has them.
327
+ - Instructions for the AI, smaller (en all 61.7 → 55.9 KB, ja all 62.9 → 57.1 KB): the worked example of each series pack shows only the slides that use its part (the full skeleton stays in the common example), a component's data example is left out where its README or the series example already shows it, “child JSON” lines that repeat the data shape column are cut, two internal notes of `m-gendai` and `m-kobun` are cut or shortened, and sentences that repeated R-components in the academic and business packs refer to it instead. Standards and their meaning are unchanged.
328
+ - Purposes use the ids of the components' `purposes.json` (`part-whole`, `key-number`, `cause-effect`, `correlation`, …). With a manifest that lists purposes, the New… tiles follow its order and leave out reserved ids; component `variants` are read too.
329
+ - `npm run components:update` keeps the release `manifest.json` in `vendor/components/` (its sha256 in `components.lock.json` as `manifestSha256`; `components:check` verifies it), so purposes and variants are read offline. The v1.1.0 manifest is vendored.
330
+ - New…: the purpose tiles are always the 14 decided ones (parts-map §9). The manifest's purposes are mapped onto them: `ranking` goes into Compare, now labelled 比べる(量・特徴) / Compare (amounts, features); ids without a tile (`text-structure`, `parameter`, `grouping`, unknown ones) make no tile and are reported by `npm run gen`.
331
+ - School lesson presentation adds 国語は縦書き、隠して音読 (parts-map §7).
332
+ - One size target for the generated pack: `LIMITS.allTarget` (59 KB, `tools/make-llm-guide.mjs`), used by the test.
333
+ - `motion-slides` skill: the outline (構成案) gives each slide what to convey (伝えたいこと, from the parts library's purposes) and a recommended part, asked as a recommendation; interactive parts are marked “can be operated during the talk”, and tools (`m-timer`) are recommended only when the lesson has a timed activity (group work, an exercise, “think for 3 minutes”), not because of its total length; an activity counts as one slide. The outline is a numbered list, one item per slide (heading, what to convey, recommended part with the reason, conclusion line, material), and contains only numbers the user gave or the scripts will compute. The skill reads the full parts list (`vendor/components/CATALOG.md`, every part, standard and subject parts alike) and `manifest.json`; when no part fits, it may make a new expression from the components repository's expression catalogue and report it as a part candidate. One Egatari Studio clone is enough to use it (parts and themes are vendored); the components repository is needed only to propose parts.
334
+ - The player's bar of playback and presentation controls is called the **toolbar** (ツールバー) in the interface and the docs; `docs/terms.json` adds the term and avoids 操作の帯, コントロールバー and “control bar”.
335
+ - Editor app, toolbar (UI redesign, stage 1): four items, **File ▾**, **Slide ▾**, **Quality check** and **Preview ▾**, using the usual menu terms of other apps. File ▾ has New…, Open…, Save, Save as…, Export ▸ (For participants (play only)…, Print / PDF, and Export working folder… for a single file), File info… and Work in a folder…; Theme folder moves to “Load theme…” at the end of the theme list in New…. Slide ▾ has Insert slide… (from a template or a chat AI), Duplicate, Delete (the slide selected in the slide list, or the one on screen) and Revise…. Preview ▾ has the display modes Check as a slide show (f, also full screen), Check as a lecture and Check as a video, and Check in presenter view (p), with the note that you present from the saved `.ega.html`. Edit, Script, Notes and Audio stay as a temporary group until they become right-panel tabs. The toolbar still fits one row at 1280 px.
336
+ - Editor app: the menus follow the ARIA menu-button pattern (↑ ↓ wrap, Home / End, letters, → / ← for Export ▸, Esc returns focus to the button, Tab closes). Keys are not sent to the preview, and `e` / `n` / `c` do not toggle the panels, while a menu or a dialog is open.
337
+ - Editor app: **Quality check** runs by itself about 1 s after each build and preview load (debounced, skipped while a build is pending) and its badge shows the errors and warnings it found, in the error colour when there are errors; build and save warnings are listed at the top of its panel (the separate Warnings button is gone).
338
+ - Editor app: **Save as…** replaces “Save as new lesson…” and “Save a copy…” (a checkbox “Save as a new file (it becomes separate from the original)” gives the new docId); in a working folder it writes the Egatari file (editable, `.ega.html`). Save is shown in a working folder too and explains that the folder is saved as you edit.
339
+ - Editor app: **For participants (play only)…** asks in a dialog with an “Add Live (questions and polls)” checkbox; ticking it shows the Live settings in the same dialog, replacing “Distribute with Live…”. A Live export gets a mark on the title side of the file name, such as `題名(ライブ 10-30).play.ega.html` (the day the Live starts); the extension is unchanged. Importing Live results is in File info… (attachments).
340
+ - Editor app: **File info…** shows the title, license, creators, copyright and attribution of the lesson (read only), the format (`version`, with the spec snapshot from `vendor/egatari-spec/SOURCE.json` when present) and the Studio version that made the file (`generator.version`; “This Studio” for a working folder), with a note that playback uses the player inside the file, above the attachments, which move there from the toolbar.
341
+ - Editor app, **New…** is the chat-AI way only, in five steps: subjects (parts; optional, none ticked), design (theme, by display name: Standard, Business, Kokugo, and user themes by their `theme.json` title or name; added to the request and given to a reply without one), what you want, copy, paste. The first screen is New… (with the 「…」 icon draft), Open, Recent files, Samples, a small “Make it with Claude Code or Cowork (advanced)” link and Work in a folder…; the table of file kinds moved to the help.
342
+ - Editor app, wording: Export (エクスポート), File info (ファイルの情報), Template (テンプレート), Samples (サンプル), Subjects (parts) (分野(使うパーツ)), Script (台本).
343
+ - Editor app, **New…** is a full-screen page (← Back and Esc leave it; the steps run top to bottom). Step 3 has a large **Content** field whose text goes into the request, with the size and a token estimate (UTF-8 bytes ÷ 3) against a 32k-token context and a soft note above about 80 %.
344
+ - Editor app, long lessons (more than 8 slides) are made in two passes: an outline first (one ```outline block, parsed and stored in `egatari.json` as `studio.outline`), then 6 slides at a time through Insert slide's chat-AI path (“Ask for the next 6”, with the outline, the range and the previous slide; the notice shows how many are left).
345
+ - Instructions for the AI: pack version `4cc280e2` → `6fa429af`: new **R-outline** (an outline-only reply in one ```outline block, and later ranges written exactly); “make fewer slides (5–7 is plenty)” is replaced by “keep it short (5–8) without an outline; for a range of an outline, write exactly those slides (at most 6 are asked at a time)”.
346
+ - The words on screen, in the docs and in the skills now follow one termbase (`docs/terms.json`, with the table `docs/terms.md`): step (was 段階), script (was 口述原稿 / narration), part (was 部品 / component), Egatari file (was 1 ファイル / single file), play-only (was 再生のみ), Export and its messages (エクスポート, not 書き出し; only the audio panel's 「台本を書き出す」 keeps 書き出す), template, samples, Live / host / participant / join code (was 授業の部屋 / 教員 / 学ぶ人 / 鍵, room, teacher, learner, key), black screen (was 暗転 / blackout), laser pointer, thumbnail (was 縮図), player (was 再生器), emphasis (was 注目の演出 / 印, attention marks), timing (was 動きに合わせる所 / cue), comments (was AI へのメモ / notes for the AI), Cancel (キャンセル, was 取消) and What to convey (伝えたいこと, was 言いたいこと / purposes). Ids, file formats, CLI flags and the instructions for the AI (pack version 8e0efb1a) are unchanged.
347
+ - Audio panel: an unknown voice now says 「声「x」はこのエディタでは使えません。既定の声「bob」で作ります」; Export script reports 「台本を書き出しました(n ステップ)。次は「Colab を開く」」 without the file name; unused imported audio names the place in plain words (「使っていません:スライド 3・ステップ 2(台本が変わっています)」); the voice sample button is 「▶ 試聴」 / “▶ Preview”. The edit prompt is titled 「このファイルを編集しますか」 with 「編集を有効にする」.
348
+ - 授業 is no longer a display mode: it is the option 「先のステップを薄く見せる」 / “Show later steps faintly” (key `l`), shown like captions in the toolbar, the presenter view, the key list and Preview ▾ (a checkbox next to the slide show and video modes). `?mode=lecture` still opens the slide show with the option on.
349
+
350
+ ### Removed
351
+
352
+ - New…: the size and token estimate under Content (with its 32k-token warning) and the sizes next to each subject. The AI plan question replaces them.
353
+ - Lesson seed (format spec §8.4, owner 2026-10-26): **New…**, `npm run new`, **Revise…** and on-slide edits (editor app and dev server) no longer write or restore `data-egatari-seed`. A part's presentation variant is chosen by name only (`variant="<name>"`); without it, every part shows its default variant (the first in its manifest). `variant` attributes in a source are kept byte for byte, and an earlier source's `data-egatari-seed` is left as it is (nothing reads it; saving does not strip it, so tier A stays byte-preserving).
354
+ - Editor app: Blank and From a template in New… (slide templates stay in Insert slide…; `npm run new` makes a new working folder).
355
+ - Editor app: “Export built HTML” (the built `out/deck.html` is still made by `node kit/build.mjs`).
356
+
357
+ ### Fixed
358
+
359
+ - Long lessons made in two rounds: after creating the first slides from the outline, opening "Ask for the next 6" right away could leave "Insert" disabled for good, even with both fields accepted (✓ slides, ✓ script). The creating dialog still finished its work (the quality check after the build) in the background and then recomputed the shared button as if it were still waiting for the outline. A dialog now updates the button only while it is the one shown.
360
+ - Components v1.13.1: `m-cycle` writes an attribute only when its value changed, which fixes the macOS step-reset raster flake. Release notes: [egatari/components v1.13.1](https://github.com/egatari/components/releases/tag/v1.13.1)
361
+ - Components v1.4.1: `m-kanbun` fits its columns to the element's height and width (characters shrink 1 px at a time, to 42 px at least, and a `console.warn` says what is missing); its notes say that a poem that still does not fit is split, 2 句 per slide. Release notes: [egatari/components v1.4.1](https://github.com/egatari/components/releases/tag/v1.4.1)
362
+ - Components v1.7.1: `m-bars` no longer draws negative bar heights in an element with no height (it warns instead), and `m-map-japan` in small elements places the territory names in the nearby sea with a leader line instead of leaving them out. Release notes: [egatari/components v1.7.1](https://github.com/egatari/components/releases/tag/v1.7.1)
363
+ - Dev server: `p` in the preview closes the presenter view again when it is open (before, it only reopened it), and `p`, Esc or **Close presenter view (p)** in the presenter view close its window (before, nothing happened). Fullscreen is left first, as in the editor app.
364
+ - Pasting an AI's output: when the script repeats the same step marker on consecutive marker lines within one slide (one `[k]` per dialogue turn, as some models write: `[2] Expert: …` / `[2] Novice: …`), the repeats are now merged under the first `[k]` as the next turns of that step, every turn kept in order, with a warning (「台本で同じステップの番号([2])が続けて繰り返されていたので、1 つのステップの発言としてまとめました」 / “The script repeated the same step marker ([2]) on consecutive lines, so those turns were kept together under one step.”). Before, the build reported the step as a duplicate and dropped a turn. A non-consecutive repeat (`[2]` … `[3]` … `[2]`) is still reported as before. The instructions pack is unchanged.
365
+ - Instructions for the AI (music series): `m-keyboard`'s `range` now says to include every key the lesson uses (both ends white keys, 1–3 octaves), and the keyboard is no longer described as sounding the notes: the 0.6.0 player never calls `events(k)`, so parts make no sound. Restore the sound wording with #114 (planned for 0.6.3).
366
+ - Quality check: boxes an ancestor hides are no longer measured. A component's readable layer (a visually hidden `<ul>` in a 1×1 `overflow:hidden` box with `clip-path: inset(50%)` or `clip: rect(0 0 0 0)`, with or without the `.sr-only` class) made `bodyBottom` report e.g. "1056px > 565px" on slides that fit, so AI fix rounds could not converge; such content no longer counts for the body-position checks, `smallText`, `smallSvgText`, `textOverlap` or `cellWordBreak`, and the body-position checks measure only the part of a box that its ancestors' `overflow` leaves visible (text cut off by a visible box is still `textClipped`; contract §10)
367
+ - `npm run check -- --json` piped to another program no longer loses the end of a large result: it waits for the output to be written before exiting
368
+ - Quality check (R-fit): an overflow of the body under 1 px is no longer reported. A fractional overflow such as 565.4px against 565px was an error whose message read 「本文が下に 0 px はみ出す(565px > 565px…)」. The overflow is now rounded to whole pixels before it is compared, and the message uses the same rounded value, so a reported overflow is never "0 px" (2 px reads "2 px"). The same rule applies to `bodyBottom`, `bodyRight`, `bodyLeft`, `tateBodyHead` and `bodyConclCol`. Slides that overflowed by less than half a pixel lose that error, and the reported px of the others can move by under 1 px.
369
+ - Player: with reduced motion (`prefers-reduced-motion`), a component that shows elapsed time as its content (`static clock = true`, such as m-timer) now gets the real time and keeps counting, instead of jumping to its end. Everything else is still shown at its final state (Player P3). The player reads `clock` and `preview` from the component class, never from a manifest
370
+ - Player on touch screens (iPad, phones, tablets): tapping the slide brings back the toolbar after it has hidden; before, it only came back when a mouse moved. The tap does not advance the slide
371
+ - Player on touch screens: the toolbar's buttons respond to a finger tap, also in Safari and other WebKit browsers, which sent no click. Each tap acts exactly once, also when the browser sends a click afterwards, and the bar still hides after a tap
372
+ - Player: a tap on the hidden toolbar, or a mouse click while it is still fading in, now only brings the toolbar back. Before, it also pressed the button underneath, such as **Listen with read-aloud** or **Next**; this came with the touch-screen change in this release
373
+ - Editor app, New…: the small text of a purpose tile wraps instead of being clipped (checked at widths 360–1280 px in Japanese and English).
374
+ - Quality check: the "component draws differently depending on call order" error no longer fires for renderer anti-aliasing noise: when the
375
+ component DOM is byte-identical and a few differing pixels all lie on shape edges inside the component (plus up to 4 isolated faint pixels), it is logged as info `compOrderNoise` instead
376
+ - Instructions for the AI (pack `88ecfc51` → `ff02abc6`): a purpose turned off in New… no longer leaves its parts anywhere in the copied text. The R-purpose table is now made when the text is assembled (`kit/core/llm-pack-assemble.mjs`): rows of purposes that are off are left out, excluded parts are dropped from the other rows, and worked-example slides, narration sections and sentences tied to a part (`<!--part:m-x-->` in `tools/llm-guide/`) are dropped with it. A test checks every single purpose and every pair across all pack combinations.
377
+ - The R-purpose table names only parts whose description is in the copied text: parts of packs that are not included are left out of the rows, and one line says which purposes those packs would serve (without naming their parts). Rows with no part say to use the nearest part, or HTML or inline SVG.
378
+ - New…: `studio.newDeck` records the choices as they were when the instructions were last copied.
379
+ - Reading the components manifest: bad purpose entries are dropped one by one with a warning (`npm run gen`) instead of silently shrinking the list; `reserved` is any truthy value; a component without `tag` is `m-<dir>`; a `manifest.json` that is not JSON falls back to the decided table with a warning; only vendored parts are named in the “do not use” line.
380
+ - Editor app: saving a lesson that has never been saved (made from the AI's output, or a `deck.html` opened on its own) no longer asks to rebuild; this editor built it, so the rebuild changes nothing else.
381
+ - Editor app: when only the theme changed (**Change theme…**), the rebuild dialog says so, instead of “You edited the slides HTML” and “Slides you did not edit may look different”.
382
+ - A chapter divider (`<section class="slide sec">`) whose title was written with `<h2>` was unreadable: the `h2` kept the colour of ordinary slide titles on the divider's ground. `.sec h2` is now styled like `.sec h1` (#128).
383
+ - Edit mode and the presenting tools no longer fight (#69): entering edit mode in the editor app or the dev server turns off the pen, fading pen and laser, stops autoplay and its audio, and closes the overview, blackout, key list, fullscreen, read-aloud and a half-typed slide number; while editing, the tool buttons are hidden and tool keys do nothing (also `b`, `a` and `f` forwarded from the editor's toolbar, header or status bar), and keys typed into text fields (also inside shadow DOM) are never tool or slide keys. Leaving edit mode restores nothing. The current mode (Editing / Presenter tool / Viewing) is shown at the screen edge, outside the slides, with an aria-live announcement.
384
+ - Editor app, New…: the sizes use one measure (UTF-8 bytes / 1024 of the copied parts), so the total is no longer smaller than the common body.
385
+
386
+ ### Security
387
+
388
+ - Player: slide-show commands sent with `postMessage` (`deck-cmd`, presenter tools) are accepted only from the presenter view the slide show opened, or, in the editor's preview, from the editor window that relays them. The current and next views inside the presenter view follow only the presenter view. Before this, any window or frame holding a reference to the slide show could move it
389
+ - Player: positions (`deck-pos`) are sent only to the presenter view and to the editor's preview window, never to another parent. A page that embeds the lesson with `embed=1` gets only the `position` events of Player P8
390
+ - Dependency updates from Dependabot: **KaTeX 0.18.2 to 0.19.0** (exact pin; its `commander` goes from 8.3.0 to 15.0.0, which needs Node 22.12 or later). All 109 formulas in the examples, fixtures and docs render to the same HTML and MathML byte for byte, and the font files are unchanged; `katex.min.css` adds `math` to the font fallbacks and a `.reflectbox` rule. **@fontsource/source-sans-3 5.3.0 to 5.3.1**. Dev only: **ajv 8.17.1 to 8.20.0** (ReDoS with `$data`, GHSA-2g4f-4pwh-qvx6) and **fast-uri 3.1.8 to 3.1.9** (four advisories); `npm audit` now finds nothing, with or without dev dependencies
391
+ - Node floor: `engines` is `^22.23.4 || ^24.22.1 || >=26.12.1` (the 2026-10-20/21 security release), and CI asks for `>=22.23.4 <23` and `>=24.22.1 <25` instead of `22` and `24`, which took the runner's cached 22.23.3 and 24.21.0 (SECURITY.md)
392
+ - Supply chain: CI and the release asset (`tools/site-versions.mjs`) install with `npm ci --ignore-scripts` (the only install script, esbuild's `postinstall`, is not needed); Dependabot waits 7 days (14 for a major version) before proposing a release (`cooldown`); the Pages workflow uses `actions/upload-pages-artifact` v5 and `actions/deploy-pages` v5. SECURITY.md and the threat model say how, and the Colab exception (`onnxruntime-node`'s `postinstall`)
393
+
394
+ ## [0.4.8] - 2026-10-24
395
+
396
+ ### Added
397
+
398
+ - Theme versions, as for components: `themes/<name>/theme.json` has a `version`, earlier versions stay in `vendor/themes/<name>/<version>/` and `themes.lock.json` lists their hashes and changed colors (`npm run themes:check`, in `npm test`).
399
+ A lesson that recorded `default` 1.0.0 keeps it: the build warns `theme pinned: …` with old → new colors, `--update-themes` updates it, and the editor shows the colors with swatches and offers **Update theme**. Single files pin `themes` in their `egatari.json`. Documents at a theme's root (`README*`, `LICENSE*`, `*.md`) are never read or hashed; the `LICENSE*` of a user or lesson-local theme travels in the single file.
400
+ - Player: **Listen with read-aloud (not saved as audio)** in the control bar reads a step without audio with a voice of the device
401
+ (local `speechSynthesis` voices only), shows “Reading aloud (this device's voice)”, and stops on the next step; never in video or print (format spec §5.6)
402
+ - Editor app: the Audio panel can read the current step or the selected word aloud with the device voice, with `{x|y}` readings, the reading dictionary
403
+ and `join-num-counter@1`; nothing is written. `app/read-aloud.js` exports `readAloud(text, lang)` for the Pronunciation button (#101)
404
+ - `kit/core/read-aloud.mjs`: the text to speak and the local-only voice choice, shared by the player (`DECK.ReadAloud`) and the editor
405
+ - Build: every `deck-narration` turn carries `ttsParts`, the spoken pieces with readings applied (the `inputHash` input; format spec §4), so the player's
406
+ read-aloud says η as “イータ”; older files fall back to the display text with “Pronunciations not applied (older file)”. No audio becomes stale
407
+
408
+ ### Changed
409
+
410
+ - Components v1.1.0 is the default version (1.0.0–1.0.3 are kept for lessons that recorded them). `m-kanbun`: reading-order numbers of two or more digits no longer spill out of their box (only their font size shrinks; one-digit numbers draw the same pixels as before), and every reading-order number carries `data-annot`, so the quality check no longer applies its 24 px minimum text size to them. `m-kobun`: the conjugation card the viewer opened also closes when a step is re-entered (`ctx.reset`). `m-codetree`: the DOM no longer depends on the order of `render` calls (nothing visible changes). Release notes: [egatari/components v1.1.0](https://github.com/egatari/components/releases/tag/v1.1.0)
411
+ - Theme `default` 1.1.0, `--emph` #C50516 → #BE3012: the orange-leaning red that CUD guidance recommends for P/D-type colour vision, darkened to text strength (5.80:1 on white, WCAG AA); protan ΔE00 to the ink 22.5 → 26.0.
412
+ The previous crimson leaned bluish, which CUD advises against, and was never a deliberate choice. `--emph-tint` follows; `kokugo` keeps its own red. Reasons: `themes/default/README.md`.
413
+ - Theme `default` 1.1.0, `--muted` #6E6E6E → #5C5853: 5.10 → 7.06:1 on white (WCAG AAA level), for projectors and small text. `kokugo` inherits the new grey.
414
+ Trade-off: muted–ink ΔE00 25.6 → 18.2, acceptable because muted text also differs from the ink by role and position.
415
+
416
+ ### Fixed
417
+
418
+ - `egatari.json`: every Studio writer (export and unpack, Save and Save as new lesson, the Attachments and Live panels, **Update theme**,
419
+ **Rebuild with** a replacement version, `--update-themes`, `npm run portable -- attach`) now changes only its own members and keeps every
420
+ other member byte for byte, in place, through one helper `updateConfig(oldText, patch)` (`kit/core/config-file.mjs`). Before, the file was
421
+ parsed and re-serialized, which reformatted other producers' members, rounded large integers, turned `1e400` into `null` and moved numeric
422
+ member names first (format spec §3.3: other producers' members are preserved unchanged). A file that is not a JSON object is now refused
423
+ instead of being overwritten
424
+ - `index.themes[].version` is always the theme's own version, never Studio's (format spec §3.8, §6): `kokugo` and `business` are 1.0.0 in
425
+ `themes.lock.json` with the hashes lessons already recorded (their files are unchanged), and a user or lesson-local theme without a `version` in
426
+ its `theme.json` is recorded as `"local"` with `source: "embedded"` and identified by its sha256 when rebuilt. Before, these themes recorded the
427
+ Studio version (e.g. `0.4.7`), and user themes were not recorded at all. `npm run themes:check` now requires every bundled theme to be in the lock
428
+ - The single file's `egatari.json` `themes` now pins exactly the entries of `index.themes` with their versions, including the parent of a theme
429
+ that `extends` another and `"local"` themes (before, only themes pinned in `themes.lock.json` were listed)
430
+
431
+ ## [0.4.7] - 2026-10-24
432
+
433
+ ### Added
434
+
435
+ - Editor app, Insert slide… → Have a chat AI write it (backlog #93): a short request of its own (`kit/core/llm-insert.mjs`: “the next n slides after slide X” or “one slide here”, with only the list of headings and the slide before, not the whole deck; the instructions can be added for a new chat). The returned slides are inserted after the selected slide (after the last one when nothing is selected), get new ids the same way as the slide list, their narration sections go in the same order, and the quality check runs; Undo works as for the slide list.
436
+ - Editor app: the two blocks of a reply can be pasted one at a time (copied with each block's own copy button, without the ``` lines). The editor tells `deck.html` from `narration.md` by content (`pastePart` in `kit/core/llm-import.mjs`), keeps the first and says which one arrived and what to paste next, joins them in either order into the same result as the whole reply, and offers “Discard and start over”. Text with both but no fences, or with neither, is refused with how to copy instead. In Revise… and Insert slide…, “Import just this” brings in a reply that has only one block (a narration-only fix replaces just the sections with those ids).
437
+ - `newDeckFiles({blank: true})` (`kit/templates/new-deck.mjs`): a deck with only the title slide.
438
+ - Live, one way: **Distribute with Live** makes the Live ID and join code itself (from a random setup secret, `crypto.getRandomValues`; still no network request) and shows one string that the host pastes once on the host page, which creates exactly that Live (egatari/live PROTOCOL.md §2.1). The string holds a secret that is not in the exported file, so a copy of the file alone cannot be used to create the Live. **Save the setup string** downloads it as `egatari-live-setup-<room>.txt` (a host who closes the editor before pasting could otherwise never create the Live the handed-out files point at); the string is never written into the lesson, `egatari.json` or any export. The earlier way (create on the host page, paste its settings back) stays under a fold. The vendored protocol is updated to egatari/live 7f859c4 (main)
439
+ - Live questions (draft): a **?** at the bottom right opens the question box on any slide; a question carries the step on screen, the lesson's `sourceSha256` (now written into the exported block as `live.sourceSha256`, since a play-only `deck-meta` has none) and an optional circled region (**Circle**, normalised with the review-notes stroke rule). **I don't follow** (kind `confused`) is a one-tap mark per step that can be taken back. The host's replies to the participant's own questions show in the pane. The editor's **Distribute with Live** offers **I don't follow** (on by default). The vendored protocol is updated to egatari/live 7f859c4 (main)
440
+ - 写した仕様(vendor/egatari-spec)が従う日付の版(egatari-spec の `wd-YYYY-MM-DD` のタグ)を SOURCE.json の `snapshot` に残す。`tools/sync-spec.mjs --ref wd-2026-10-24` で写せる。タグでないコミットは `snapshot: null` になり、`tools/spec-snapshot.mjs --check`(test-all)が知らせる(知らせだけ)
441
+ - 編集アプリの「使い方」に「形式:Egatari 1.0 WD 2026-10-24」と出す(ビルド時に SOURCE.json から読む)
442
+ - `npm run sheet -- <deck> --steps` lays out every step of each slide that has a figure or component, side by side (one row per slide), to check a figure's constraints step by step; `skills/motion-slides` now asks for the constraints to be written down first and checked on that strip
443
+ - The comments pane says, when a single file (.ega.html) is open, that notes are not saved there and disappear when it is closed
444
+ - `docs/distributing`: a table of where a single file runs (and where it does not), and a reminder to give learners the play-only copy
445
+
446
+ ### Changed
447
+
448
+ - Editor app: a chat AI is now one way inside three ordinary commands, not a separate entry (“Paste AI output” is gone). **New…** offers Blank (a working folder with only a title slide), From a template (the sample deck) and Have a chat AI write it; **Insert slide…** (“Insert slide ▾” in the slide list, which replaces “+ Add ▾”) offers From a template and Have a chat AI write it; **Revise…** (at the top of the quality check panel) has a chat AI fix the current lesson. Each AI dialog explains first (open a chat AI in another tab, send what you copy, paste the reply in step 3) and has three steps; the command fixes how the reply is brought in (no mode choice). UI and docs say “AI's reply” (「AI の返事」) instead of “AI output”.
449
+ - Editor app, New… → Have a chat AI write it: 1. write what you want (A: a new lesson — topic, audience, length, language, speakers, examples; B: from what was discussed in this chat), 2. copy the instructions (the common body is shown as always included, series are added only when needed: with no deck open none is ticked and a hint suggests Academic for formulas, graphs or data charts; what you wrote replaces the blank “What I want” form at the end, so the pack can be sent even when the chat turns it into an attachment, and the dialog says so), 3. paste the reply and open it. The instructions themselves (`kit/core/llm-pack-data.mjs`) are unchanged (`kit/core/llm-request.mjs`).
450
+ - Editor app, Revise…: the fix request has the quality check findings, what you want changed and the open notes (`comments.json`), and the reply replaces slides by id as before. The fix request button in the quality check panel leads to Revise… step 3.
451
+ - Colab の確認した範囲に、固定した版(cuda13 の組)で GPU を通したこと(2026-10-24、T4、23 ステップを 42 秒)を記した。ノートブックが取得時に出す「HF_TOKEN を設定してください」の警告だけを消した(ほかの警告はそのまま)。
452
+ - Colab の音声を別の教材に取り込もうとしたときの断り書きを、「docId が違う」ではなく、台本を書き出した教材の題を出して次にすることまで言う文にした。題は tts-job.json に任意で入れ、ノートブックが records.json に写す(古い zip は題なしの文で断る)。inputHash などの検証は変わらない。
453
+ - Colab の Kokoro も T4 で確認した(2026-10-24、59 ステップを 30 秒)。Kokoro の実行プロバイダは CUDA と CPU だけを頼み(TensorRT を頼んで出ていた長い EP Error を出さない)、phonemizer の「words count mismatch」の警告も止めた(ほかの警告はそのまま)。
454
+ - vendor/egatari-spec を WD 2026-10-24(72f8821)に合わせる。Schema・試験用の入力は変わらず、SOURCE.json だけが変わる。RELEASING に、候補の前に最新の WD と揃えることと、リリースの説明に従う版を書くことを足す
455
+ - Fix requests (`kit/core/llm-fix.mjs`) now also tell the AI not to use Canvas, slide-making or file features and to reply in the chat body with the two blocks
456
+ - Lecture view: steps not yet reached are dimmed to 0.5 (was 0.28), set by the theme variable `--lecture-dim` (default 0.5)
457
+
458
+ ### Fixed
459
+
460
+ - Importing live room results from a newer Live server no longer fails: members and kinds this Studio version doesn't know (members or kinds added by a later Live server) are ignored, and the import lists what it skipped, in the Attachments panel, in Distribute with Live, and in `npm run portable -- attach`. The attached file keeps the original bytes; anything malformed in a known member is still refused
461
+
462
+ ## [0.4.6] - 2026-10-24
463
+
464
+ ### Added
465
+
466
+ - Quality check (command and editor): text inside an element with `data-annot` (a deliberately small annotation, such as the reading-order numbers of `m-kanbun`) is not reported as too small (`smallText`, `smallSvgText`). The attribute name lives in `ANNOT_ATTR` (`kit/core/layout-scan.mjs`); [contract §10](docs/contract.md#10-quality-check-intended-clipping) is its rule. The mark only counts when a component sets it at mount; the player removes every `data-annot` written in the deck's own markup first. No other check and no rendering changes.
467
+ - Colab notebook: an optional cell to use your own reference voice for Irodori (upload a WAV/MP3 of 3-30 s or give a Drive path). It is checked, converted to 48 kHz mono and used for every speaker; without it the built-in voices are used as before. Use only a voice you have the right to use; the file stays in your Colab runtime. Output format and `inputHash` are unchanged
468
+ - Built decks now carry a tab icon: the Egatari mark (the optical 32 px version of `assets/logo`) as an inline `data:` SVG `<link rel="icon">` at the top of `<head>`. The same single SVG switches to the dark colours under `prefers-color-scheme: dark`, so it reads on light and dark tabs and is used by browsers that ignore `media` on `<link>`. It is added to the normal build, `--portable` and `--play-only` files (and the dev preview), needs no network and no change to the Live CSP (`img-src data: blob:` already allows it)
469
+ - Turn it off with `<html data-favicon="off">`; a deck that has its own `<link rel="icon">` (or `shortcut icon`) keeps it and nothing is added. The icon is added only to the built document, so the source files, `sourceSha256` and the theme hashes do not change
470
+ - Live room results (draft, format extension `live` §3): **Import live room results…** in the Attachments panel and in **Distribute with Live (questions and polls)…** adds the results JSON downloaded from the Live server as a `data` attachment (`attachments/live-<room>-<date>.json`, title with only the room and date). It is checked against the vendored egatari/live schema (a630478; activities may carry a display `label`), the 10 MiB limit and the §3.8 content checks; a room that differs from the lesson's live settings is warned about but allowed; the first import shows a one-time privacy notice. The list marks it "Learners' responses" with the number of questions and the tally per poll, shown as text only
471
+ - Results are never written into play-only copies. Exporting a single file that contains them warns and offers **Export without the results**; `npm run portable -- attach <dir> <results.json>` adds them from the command line, `pack` and `build --portable` print a warning, and `--without-live-results` leaves them out
472
+ - Components get `ctx.reset === true` in `render` on the first step entry after the viewer touched them (docs/contract.md §3)
473
+ - Editor app: a slide list (the **Slides** tab at the left edge of the preview) with thumbnails of each slide's final step. Add a slide after the selected one from a template (title and body, two columns, figure, section divider, quote), duplicate it (narration copied, audio not), delete it (a dialog names the slide and warns that its narration and audio go too) and reorder by dragging, the ↑ ↓ buttons or Alt+↑ / Alt+↓. The editor assigns new ids, keeps the narration sections in slide order and the audio bound by key, rebuilds and runs the quality check; **Undo** takes back the last action until the next one or the next save of a single file. The list is a keyboard listbox with live-region announcements
474
+ - Template leftovers: the slide list's placeholder narration lines start with a fixed mark `✎` and the template text is listed once (`kit/core/template-text.mjs`). The quality check (`npm run check` and the editor) warns about a placeholder line (`narrPlaceholder`) and template text left on a slide (`templateText`); TTS (the editor's Audio panel and Colab job, `tools/narration-json.mjs` for `tts/synth.py`) and exports (`--portable`, `--play-only`, the editor's Egatari-file exports) list them first and still let you go on
475
+ - Themes can declare their frame geometry with `metrics` in `theme.json` (`"v": 1`; body, conclusion line and vertical columns in stage pixels of 1280×720), inherited field by field through `extends`. The quality checker (command and editor) derives the body limits (`bodyBottom`, `bodyRight`, `tateBodyHead`, `bodyConclCol`, `bodyLeft`) from it, so a theme that moves these boxes is checked against the right limits; margins, minimum text sizes and title and conclusion lengths do not change. Without `metrics` the defaults reproduce the previous limits exactly. Players never use it to draw, and `theme.json` counts toward the theme's `sha256` ([contract §12](docs/contract.md#12-themes-and-the-layout-css), [reference](docs/reference.md#themes))
476
+ - `themeMetricsDrift` (warning, once per deck): the rendered boxes differ from the theme's declaration by more than 1px, or a theme without `metrics` (or the deck's own `<style>`) moves them. Unusable `metrics` values are a build warning (`theme-metrics: …`, reported as `themeMetricsInvalid`) and fall back to the parent's value
477
+ - The boxes are measured only with the bundled fonts loaded, never with a fallback font; otherwise the comparison is skipped with one `metricsFontLoad` warning
478
+ - `node tools/theme-metrics.mjs measure <theme>` prints the `metrics` block measured from the rendered theme, in whole pixels rounded outward to the more lenient limit (`check` compares it with the declaration). `tools/test-theme-metrics.mjs` fails when a bundled theme renders differently from its declared (or default) geometry
479
+
480
+ ### Changed
481
+
482
+ - Test and inspection screenshots no longer depend on the time between page load and capture: `kit/browser.mjs` gains `stableCapture(page, opts)` (hides the talk-mode control bar and toast, waits two animation frames, captures with `animations: 'disabled', caret: 'hide'`), `prepareForCapture(page)`, `releaseCapture(page)` and `captureUrl(url, mode = 'video')`. `tools/shot.mjs`, `smoke.mjs`, `sheet.mjs`, `comment-shots.mjs`, `flake.mjs` and the seek-determinism checks use it; new `tools/test-capture.mjs` checks that a talk-mode capture at 0.5 s and 3 s after load is identical
483
+ - Colab notebook: the packages are pinned in two sets chosen from the CUDA libraries cell 1 finds (one place, `COLAB_PINS` in `tools/make-colab-notebook.mjs`): `cuda13` when `libcublasLt.so.13` is there or there is no GPU (onnxruntime-node 1.30.0, @huggingface/transformers 4.3.1, onnxruntime-gpu and onnxruntime 1.31.0, kokoro-onnx 0.6.1: the set that ran on 2026-10-21), `cuda12` when only `libcublasLt.so.12` is (onnxruntime-node 1.24.3, @huggingface/transformers 4.2.0, onnxruntime-gpu and onnxruntime 1.26.0, kokoro-onnx 0.6.1), so a CUDA 12 image uses its GPU again. Cell 1 prints the environment (Python, Node, GPU and driver CUDA, the CUDA libraries found, the chosen set and its versions) and cell 3 the installed onnxruntime-node and the providers in use, to include in a problem report. The verified note now says: CPU verified on 2026-10-23; the GPU path failed that day and falls back to the CPU; GPU with the pinned versions not yet verified; Kokoro not yet
484
+ - Colab: every record's `recipe` carries `runtime`, the pin set and the execution provider that actually ran (`cuda12/cuda`, `cuda13/cpu`, …; after the CPU fallback, not the requested list), for Irodori and Kokoro. The editor's zip import keeps it in the audio manifest's `recipe`; it is not part of `inputHash`, so existing audio does not go stale
485
+ - Live player: the pane starts collapsed as a small **Live** marker at the top right (a button with `aria-expanded`), and the slides use the whole window. Tapping the marker opens the notice and **Join** before joining, and the question box once connected, on any slide. On a step with a poll the pane opens by itself (announced in a live region, without taking the focus) and collapses again when that step is left, unless the learner pinned it (**Keep open**) or opened it from the marker. While connected the collapsed marker shows the state (a green dot, and text for screen readers); **Disconnect** is in the opened pane. When open, the pane is docked beside or below the slides as before, so it never covers them. The fold strip is gone; **×** or Esc collapses the pane. Reduced motion is respected, and the zero-network rules are unchanged
486
+ - Live player: where it cannot connect (inside a frame such as an LMS, a viewer in a chat or file app, another kind of address), the pane offers **Join in the browser**, a link that opens the room's join page (`https://<endpoint host>/join#room=…&key=…`, the key only in the fragment) in a new tab, with a short explanation and the room. Nothing is loaded before it is tapped. The editor's preview still shows only the room's address as text
487
+ - Live room: polls are shown by a label such as “Slide 4 'XML の壁', step 1” (「4 枚目『XML の壁』・段階 1」) instead of the raw step key (`s-cjatth:0`) in the editor's step suggestions and poll list, with the key in the tooltip. The editor writes it as the optional `label` of each poll (display text, at most 80 characters; keys unchanged), and **Copy activities JSON** includes it, so egatari/live's teacher and join pages show it too. Older polls get a label when the panel opens if their slide is still in the deck; otherwise, and in rooms without labels, the key is shown as `s-cjatth · step 1` (`*` as “whole lesson”). The vendored protocol is updated to egatari/live a630478
488
+ - Live screens use plain words: ライブ, 参加者, 待機室, ステップ, 参加コード, ホスト用リンク, ホストのページ, 全員に表示 (in English: Live, participants, waiting room, step, join code, host link, host page, show to everyone). Export ▾ → **Distribute with Live (questions and polls)…** (before: Distribute with a live room…), **Export Egatari file (editable)** and **Export Egatari file (play only)**. Strings only; no behaviour changes
489
+ - Distribute with Live: **To fix before exporting** shows plain messages in the editor's language (for example 「投票 p1:設問を入れてください(300 字まで)」) instead of the validator's developer text. `LivePolicy().validate` returns problems as `{code, path, …params, text}` (`text` and `toString()` are the former English message, so the command line prints the same), and `app/i18n.js` (`liveProblem`) maps each code to ja/en
490
+ - Editor app: one way to record. The Audio panel's **● Record (r)** opens recording mode at the panel's step (Space, speak, Space, Esc);
491
+ the panel stays open behind it and then shows the new take. Parity of the old panel recording: docs/recording-parity.md
492
+ - Editor app: recording mode reports a stop at the 600 s limit, stops there also in a background tab, and reports a recorder that cannot start
493
+ - Build: the theme's CSS (`tokens.css`, parent themes first) now comes after `kit/layouts.css` in `<style id="deck-base">` (before: after the fonts and KaTeX, before `base.css`), in every build path (CLI, `--dev` and the dev server, portable and play-only exports, the editor app). A theme rule now overrides a layout rule of the same specificity (the cover title's position, the `.body` inset, the heading rule, `.concl`, `.pn`) without an `html` prefix. `latin.css` stays last. The bundled themes (default, business, kokugo) render the same as before (backlog #75)
494
+ - New optional tokens with the old values as fallbacks: `--marker` (list markers; default `--term`), `--bar` and `--bar-h` (the progress bar; default `--emph`, 3px). Proposed with K1 by @totasuko-lab
495
+
496
+ ### Removed
497
+
498
+ - Editor app: the Audio panel's deck-wide list “TTS steps made with an older text pre-processing”. The pre-processing and
499
+ `recipe.textNormalize` stay; old audio keeps playing and is regenerated only with “Regenerate with TTS”
500
+ - Editor app: recording inside the Audio panel (its button, meter and “Record again”); use recording mode
501
+
502
+ ### Fixed
503
+
504
+ - Colab notebook: when the GPU's CUDA libraries do not match onnxruntime (on 2026-10-23 Colab had no `libcublasLt.so.13`, which onnxruntime-node 1.30 needs, and Irodori stopped while loading `text_encoder`), the Node worker now rebuilds the session on the CPU, uses the CPU for the rest of the job and prints one line in Japanese and English with the reason; Kokoro does the same. Only a failure on the CPU as well still stops the job
505
+ - `b` now blacks out the screen: a full-window black cover goes over the slide, ink, captions, the control bar and the key help (before, the current slide stayed visible). `b` again, Esc, a click, the arrows, Space, PageUp/PageDown or Home/End bring the screen back without moving the slide, a faint “Blacked out — press b or Esc to return” hint shows in the corner for 2 s (and again on mouse move), Esc leaves blackout before it closes the key help, and entering blackout cancels the outside-link box. Print and video mode are unchanged
506
+ - Keys reach the slides after using the pen or clicking the editor: a click on the slide with the pen or laser on (or on the control bar) moves focus into the deck; in the editor app, after a click on the toolbar, header or status bar, the arrows, PageUp/PageDown, Home/End, `b`, `a` and `f` go to the preview (never Space or Enter, and never from a text field, the narration drawer or an open dialog), and toolbar buttons clicked with the mouse no longer keep focus
507
+ - Editor app: while unsaved narration holds the preview, a click or key on it shows why, with Save and Revert next to it; the first click on the preview after leaving a narration field now focuses the preview
508
+ - The outside-link box keeps focus when you click its text, and Esc and Tab work even if focus has left it
509
+ - Presenter view: a click on the "next" pane no longer swallows the keys
510
+ - Presenter view: Esc (when no drawing tool is on), `p` or the new **Close presenter view (p)** button close it and return focus to the main window (in fullscreen they only leave fullscreen), also from the current-slide pane and in the editor app; `p` in the main window closes an open presenter view; while the window has no focus, a “Click here to control” overlay takes the first click; the key help (`?`) and the docs give the cmd+Tab / Alt+Tab workaround and the recommended order (presenter view first, then the audience window fullscreen)
511
+ - Live player: a play-only copy opened on Android from the Files app in Chrome (a `content://` address) can now join the live room. It counts as a local file the learner opened, like `file:`; the other conditions are unchanged (not framed, inside the window, exactly one CSP `<meta>` whose `connect-src` is the endpoint, one tap on Join, not in video, print or the presenter view)
512
+ - The runtime calls component `mount` only after the stage is laid out: a deck started inside a `display:none` iframe or a hidden tab waits for the stage to get a size and its fonts to load, then mounts and draws, so figures (e.g. `m-kanbun`'s 書き下し文) look the same as after a normal start; `DECK.ready` comes after the mount in both cases
513
+ - Editor app: recording mode shows a failed take's error (an empty or undecodable take, a recorder that cannot start) instead of failing silently
514
+ - Printing and PDF: the section divider (`sec`) kept its text but lost its background (white text on white paper) unless the print dialog's “Background graphics” was on. Slides and dividers now carry `print-color-adjust: exact` (and `-webkit-print-color-adjust`) in `kit/base.css`'s print rules, so every slide background prints in its screen color; the page itself (`html`, `body`) stays white, and the screen rendering is unchanged. `tools/test-print-backgrounds.mjs` checks the computed styles in print media and the pixels of a PDF made without background graphics ([editor](docs/editor.md))
515
+ ![A section divider printed to PDF, background kept](docs/images/print-sec.png)
516
+ - Editor app: a Space pressed right after opening recording mode (r or **● Record (r)**) is no longer lost. The screen appears and takes the focus at once; until the step is loaded its Space button reads “準備中… / Getting ready…” (`aria-busy`, announced in the live region). A press in that time (key or button) is kept and starts one take as soon as the screen is ready (once, even if pressed twice), and is dropped if opening fails (a declined rights check, no narration, Esc). A refused microphone or a recorder that cannot start is reported as before
517
+ - Editor app: opening recording mode again while it is opening or open (r held down, Space on the still-focused panel button) no longer adds a second recording screen that Esc leaves behind
518
+ - Editor app: a Space pressed in the preview at the same moment as r no longer reaches the deck (it advanced the slide)
519
+ - State the viewer changes by hand in a component (an open `m-kobun` conjugation card) no longer carries across steps: entering any step,
520
+ also the same one again (`DECK.go`, `DECK.seek`, a slide change and back), redraws a touched component as `render(k, t)` (format spec §8.4)
521
+
522
+ ### Security
523
+
524
+ - Dependency updates for two Dependabot alerts. **KaTeX 0.16.47 to 0.18.2** (exact pin), which fixes a prototype pollution in KaTeX's settings that could bypass the `trust` restrictions. Egatari builds decks from the author's own source and only trusts `\htmlClass`, `\htmlId` and `\htmlData`, so exposure was low; formulas in the examples render pixel-for-pixel the same (the generated class names gain a `katex-` prefix, e.g. `base` is now `katex-base`; nothing in Egatari depends on them). **certifi 2026.7.22 to 2026.10.19** in `tts/uv.lock`, which drops root CAs whose intermediate keys were compromised
525
+ - Links that leave the lesson (format spec §11): a click on a link to another site or file no longer navigates. The player shows the destination's host and full address and opens it only on **Open**, in a new tab with `noopener,noreferrer`; it asks every time when the link text names another host, the destination is not `https:`, the link downloads, the address has a user name or password, or the host is punycode, and once per host otherwise. `javascript:`, `data:`, `file:` and every scheme but `http(s)`, `mailto` and `tel` are refused. The box is keyboard-operable (focus on Cancel, Tab cycles, Esc cancels) and makes the lesson behind it inert. Middle and modified clicks are covered; video mode does nothing; the editor preview and dev server frame tell where the link goes but open nothing. The rule is a pure module, `kit/core/link-policy.mjs` (`DECK.LinkPolicy`), for the future play page
526
+ - Links the player makes itself (the live room's join link, attachment saves) skip the box, as spec §11 (h) allows: they carry a JavaScript-only mark that lesson markup cannot set, and the live pane now shows the join page's host ("Goes to: …") next to the link
527
+ - SECURITY.md and the README: use a Node.js release with the latest security fixes (the 2026-10-21 releases fixed Brotli and TLS certificate checking issues)
528
+
529
+ ## [0.4.5] - 2026-10-22
530
+
531
+ ### Added
532
+
533
+ - Quality check (command and editor): on every slide, warn when text goes off a slide without `.body` (`textOffSlide`), when text boxes overlap each other or the cover's top band (`textOverlap`; on a cover or section divider the finding names the allowed children and where a subtitle goes), and when a short word in a table cell breaks across lines (`cellWordBreak`). All are R-fit warnings (backlog #64, #65).
534
+ - `npm run sheet -- <deck folder | deck.html | built.html | .ega.html> [out.png] [--mode talk] [--cols 4] [--width 640] [--tiles]` (`tools/sheet.mjs`): a contact sheet of every slide at its final step in one PNG (numbered, with the slide key when short), for looking at what the quality check cannot see (a legend with the wrong meaning, points cut at an axis edge). `--tiles` also writes the 1280×720 PNG of each slide. No new dependency. `skills/motion-slides` gets a step for it, and a line on leaving a margin beyond the data range when embedding plots
535
+ - Exported copies (format spec §3.1, `exportedFrom`): an export from a working folder (`--portable`, `npm run portable -- pack`, the editor's Export single file) records the folder's source hash in the index (no time, path or name; exports stay byte-reproducible). Editor saves keep it, except Save as new lesson (new `docId`), which drops it; the editor's notice on opening such a file says edits do not reach the folder, offers **Export working folder…** and says when the copy was edited since export. Unpacked folders carry no marker
536
+ - `npm run portable -- compare <file> <dir>`: says by source hash whether the exported copy, the folder or both were edited since the export (nothing is merged)
537
+ - Live room (draft, format extension `live`): Export ▾ → **Distribute with a live room…** adds a room of [egatari/live](https://github.com/egatari/live) (Q&A for the whole lesson, polls per step) to the play-only copy; `node kit/build.mjs <deck> --play-only --live room.json` does the same. The copy gets a CSP `<meta>` whose `connect-src` is exactly the room service, an `extensions` block and the live player (`kit/live.js`); copies without a room are byte-identical to before. The lesson keeps the settings without the key (`extensions.live` in `egatari.json` and the index); the editor connects nowhere. The endpoint must be `https:` (only the development player used by the tests accepts a loopback `http:` endpoint)
538
+ - Live player: a pane outside the stage (the stage is fitted into the rest), a notice and one tap on Join before the first connection, a persistent indicator with Disconnect, polls when their step is reached, reconnects inside the window following egatari/live's close-code table (backoff for network closes, ≥ 30 s after 4423, ≥ 60 s after 4429 and 4430, at the opening time after 4425; a manual Try again after 4441), a window of at most 3 hours in the editor, and no network at all outside the window, before Join, in previews and frames, in video mode, in print and in the presenter view. `tools/test-live.mjs` tests it against a local server speaking the vendored protocol (`vendor/egatari-live-protocol/`)
539
+
540
+ ### Changed
541
+
542
+ - The CLI writes `.ega.html` exports at the top of the lesson folder, named from the lesson title, and prints the path (before: `out/deck.ega.html`)
543
+
544
+ ## [0.4.4] - 2026-10-21
545
+
546
+ ### Added
547
+
548
+ - Editor app: **recording mode** (`r`, or **Recording mode** in the Audio panel): the step's narration in large type with the stage beside it, and keyboard-only recording: Space starts/stops (silence trimmed, used for the step right away), Enter keeps the take and goes to the next step, Backspace retakes, ← / → move, `C` places the `{cue}` / `{mark}` times while you read (`sync: "manual"`; a wrong number of presses writes no cues), with a level meter, live-region announcements and a button for every key
549
+ - Editor app: **Make the audio in Colab** (Audio panel, for computers without WebGPU, such as many school PCs, Safari and iPad): export the steps that need audio as `tts-job.json` (after a privacy question: the narration text is processed in Google's environment), run the official notebook `colab/egatari-tts.ipynb` in a free Colab (Irodori-TTS 500M-v3 for Japanese, Kokoro-82M for other languages; a T4 GPU is faster), and import the zip it returns. Only steps whose `inputHash` matches the current narration are applied, with the cue times measured from the audio (kind tts, sync auto); changed steps are listed for you to use or discard, and a zip made for another lesson is refused. Verified on 2026-10-21 with Irodori on a Colab T4 GPU; Kokoro and the CPU path are not verified yet
550
+ - `colab/egatari_tts.py` (the notebook's core, with a model-free `--dry-run`), `colab/irodori_node.mjs` (a long-lived Irodori worker: the models load once) and `tools/make-colab-notebook.mjs` (generates the notebook, `npm run gen`); `kit/core/zip-read.mjs` (a bounded zip reader that refuses zip bombs, zip64, encryption and CRC mismatches), `kit/core/colab-core.mjs` and `kit/core/wav-core.mjs`
551
+ - Quality check: warnings (R-fit) for text cut off by an `overflow` box (`textClipped`), SVG text cut off by its viewBox or going off
552
+ the slide (`svgTextOut`), SVG text overflowing the box drawn around it (`svgTextBox`, e.g. an `m-flow` label) and text outside
553
+ `.body` going off the slide or overlapping the heading, conclusion or page number (`outsideBody`); a slide that already has
554
+ `bodyBottom` does not also get `svgTextOut` for text inside `.body`
555
+ - `data-clip` on an element marks intended clipping; the four checks above skip text inside it (contract §10)
556
+
557
+ ### Changed (API)
558
+
559
+ - Components moved to their own repository, [egatari/components](https://github.com/egatari/components) (v1.0.0 is byte-identical to the former `components/`; v1.0.1 adds an `m-sweep` demo and fits the `m-kanbun` demo; see Security for v1.0.2 and v1.0.3, the default). Studio carries copies of its releases in `vendor/components/<name>/<version>/`, pinned in `components.lock.json`; `npm run components:update -- vX.Y.Z` brings in a release (checks the tarball and every file against the release's `manifest.json`, keeps every version), `npm run components:check` checks the copies offline (in `npm test` and CI).
560
+ - A single file now records a registry component's `version` as the components release (`1.0.0`) instead of Studio's version. Rebuilding a single file uses the vendored version whose `index.js` matches the recorded SHA-256; a working folder may pin versions in `egatari.json` (`components`, format spec §3.3), which the single file's copy carries (the export writes the versions it used there; the working folder's `egatari.json` is unchanged) and `npm run portable -- unpack` writes from the recorded versions when a file has none.
561
+ - Component and theme identity hashes (`index.components[].sha256`, `index.themes[].sha256`, `components.lock.json`) are taken after normalizing line endings (CRLF and lone CR to LF, leading BOM removed; format spec §6, `kit/core/identity-hash.mjs`). Files written earlier from a Windows checkout (hashes of CRLF bytes) still resolve through `crlfSha256` in the lock, and the editor allows rebuilding them. Release tarballs stay byte-exact.
562
+
563
+ ### Changed
564
+
565
+ - Editor app: the browser quality check now runs the same layout code as `npm run check` (`kit/core/layout-scan.mjs`), so it also
566
+ reports the `layout-tate` limits, a conclusion that overflows in height, small text inside SVG and a heading ending with a colon
567
+ - The Egatari logo and icons use the new colours (紺藍 and 緋色)
568
+ - `vendor/components/CATALOG.md` replaces `components/CATALOG.md`. Component proposals go to egatari/components issues (Studio's component issue templates are removed); the `motion-components` skill targets that repository.
569
+ - The components' own tests (rendering, determinism, text size, overlap, shapes, `m-codetree` / `m-kanbun` / `m-kobun` / `m-gendai` parsing) moved with them; Studio keeps integration tests (`tools/test-components.mjs` builds and quality-checks every vendored demo, `tools/test-shape.mjs`, `tools/test-kokugo-example.mjs`), and `tools/clean-env.mjs` builds the demos in a clean environment.
570
+
571
+ ### Fixed
572
+
573
+ - TTS reads “1 歩” correctly: the space between an Arabic numeral and a following Japanese character is removed just before synthesis (rule `join-num-counter@1`, in the browser TTS and the Colab notebook), recorded as `recipe.textNormalize`. `ttsParts` and `inputHash` are unchanged, and existing audio is not stale. The Audio panel lists TTS steps made with an older (or no) pre-processing and regenerates only the ones you choose
574
+ - Authoring guide: the `data-clip` sentence added to R-fit is removed again (the rule stays in contract §10 and in the `textClipped` fix request); R-components no longer calls function formulas "JavaScript" (they are arithmetic expressions that are never run as code)
575
+ - Authoring guide (pack builder): component README text is cleaned when it is copied into the pack: relative markdown links become plain text and version-history phrases ("v1.0.2 から", "since v1.0.2") are dropped; the `m-menu` lines no longer say ids come from `npm run ids` or show a link to another file (menus are added after import, the first draft uses a plain list). `vendor/` is not edited
576
+ - Quality check: findings about duplicate slide keys (headings), narration headings that differ from the slide heading (`narrHeadingDiffers`) and narration sections without a slide now carry the rule `R-headings` in `--json` (`rule` was null)
577
+ - Quality check: when the headless browser fails to launch or crashes, `npm run check` exits with code 2 (findings still exit 1) and `--json` prints `"status": "crashed"` with `"ok": false` and no findings; the reason goes to stderr only
578
+ - Quality check: `kit/core/check-result.mjs` (`parseCheck`) reads `check --json` and rejects `status: "crashed"` and exit code 2; the tests that assert "0 errors" use it (test-layout-tate, test-llm, test-components), and the skills and `docs/reference` say exit code 2 is not "0 errors"
579
+
580
+ ### Security
581
+
582
+ - Components v1.0.2 is the default version (1.0.0 and 1.0.1 are kept for lessons that recorded them). Its `m-sweep` (`f`) and `m-curves` (each series' `f`) no longer run formulas as JavaScript (`new Function`): they evaluate them with a small arithmetic parser (numbers, the component's variables, the listed `Math` functions and constants, `+ - * / % **`, comparisons, `&& || !`, `? :`, parentheses) and show the inline placeholder for anything else. Values of every formula in the examples and docs are unchanged. Grammar and audit: [egatari/components SECURITY.md](https://github.com/egatari/components/blob/v1.0.2/SECURITY.md). The code scan (`kit/core/code-scan.mjs`) still treats formulas outside plain arithmetic as code, since a document may pin an older version, and the preview's CSP keeps `'unsafe-eval'` for those versions. `tools/test-security.mjs` checks that no formula runs with the default version.
583
+ - Components v1.0.0 and v1.0.1 are yanked in favour of v1.0.2 (Egatari spec §6): components v1.0.3 lists them under `yanked` in `manifest.json`, and `npm run components:update -- v1.0.3` records the yanked versions and the replacement in `components.lock.json`. v1.0.3 is the default (its code is that of v1.0.2). A deck that pins or records a yanked version builds as recorded and warns (`yanked: m-sweep 1.0.0 …`, also from `kit/check.mjs`); the old versions are kept
584
+ - Editor app: a lesson that records a yanked version gets a notice and a button **Rebuild with 1.0.2**; the version is never replaced silently, and after the rebuild a note lists which identity hashes changed. The lesson still plays meanwhile, only inside the sandboxed preview frame (no `allow-same-origin`)
585
+ - Editor app: the page's own Content-Security-Policy no longer has `'unsafe-eval'` (only `'wasm-unsafe-eval'` remains, for the MP3 encoder's WebAssembly; hosted editor and single-file `editor.html`). The preview frame inherits it, so a yanked `m-sweep` / `m-curves` shows its inline placeholder instead of evaluating its formula there. `PREVIEW_CSP` and the dev server's deck document keep `'unsafe-eval'` for yanked versions
586
+
587
+ ## [0.4.3] - 2026-10-20
588
+
589
+ ### Added
590
+
591
+ - Editor site: every release from v0.4.1 on stays at its own URL, `/vX.Y.Z/` (e.g. https://studio.egatari.org/v0.4.2/), and the root
592
+ serves the latest. A frozen copy shows which version it is with a link to the latest; the root lists the versions (#32)
593
+ - `tools/site-versions.mjs`: builds the release asset `editor-site-vX.Y.Z.tar.gz` from a tag, verifies it against the sha256 line
594
+ in the release notes, and assembles the Pages site from the new build and the earlier releases' assets
595
+
596
+ ### Changed
597
+
598
+ - One set of quality-control terms everywhere (editor, docs, AI instruction pack, skills): **standards** (R-fit, …),
599
+ **quality check** / **quality checker** (command `npm run check`, browser in the editor), **finding**, **fix request**;
600
+ Japanese 規格・品質チェック(コマンド版・ブラウザ版)・指摘・修正依頼. Rule ids, severities, `check --json` fields and commands are unchanged
601
+ - Editor: the toolbar button and panel are **Quality check** (was Quick check); the fix request lists **Findings** and **Standards**
602
+ (Japanese 指摘・規格; was Problems / Rules, 問題・決まり)
603
+ - AI instruction pack (Japanese): shorter wording, so common + business and common + kokugo are under 35 KB again; no rule dropped
604
+ - Browser TTS: only the latest editor (the site root) removes caches of other model revisions; frozen copies keep them
605
+
606
+ ### Fixed
607
+
608
+ - Editor app: autoplay started in the presenter view plays the narration audio (in the editor window's preview, once); the
609
+ browser used to block it because the key was pressed in the other window
610
+
611
+ ## [0.4.2] - 2026-10-20
612
+
613
+ ### Added
614
+
615
+ - Player: when any step's audio was made with TTS, the control bar shows a small "AI voice" / 「AI 音声」 badge (tooltip "The narration
616
+ audio is AI-generated"), with the same line in the key list and the presenter view. Every output carries the audio `kind` in `deck-audio`
617
+ - Attachments: an optional `description` (one or two plain-text sentences, at most 300 characters), editable in the editor's
618
+ Attach panel and shown under the title in the player's download list
619
+ - Docs: `docs/distributing.md` (ja/en), how to hand a lesson to learners (Google Drive: download before opening,
620
+ email, LMS, own web space), linked from the editor help
621
+ - Docs: TTS on Windows and Linux (any OpenAI-compatible TTS server, the editor's Audio panel; a Colab route is coming),
622
+ and a release check for dependencies on the maintainer's environment (RELEASING.md)
623
+ - Editor app: **Export ▾ → Export play-only copy for students** (`.play.ega.html`) for single files and working folders
624
+ (a single file is exported from its saved state)
625
+ - AI instruction pack: a **Pack version** line (a hash of the pack's material, set by `npm run gen`), and
626
+ how to register the pack in claude.ai, ChatGPT and Gemini (pasting each time stays the default)
627
+ - AI instructions: the copied pack ends with “What I want”, a request with fields to fill in (A: a new lesson,
628
+ B: from the discussion so far); fields left empty may be deleted
629
+ - Editor app: the status bar always shows where the deck is saved (working folder, saved file, unsaved changes, not saved yet);
630
+ in a working folder **Export ▾** names the single file as the one "to hand out"
631
+ - Editor app: **Esc** closes the open cards one at a time, topmost first; **Shift+Esc** closes them all
632
+ - CI: `npm test` on macOS, and a `clean` job on Linux, Windows and macOS (`tools/clean-env.mjs`: an empty `HOME`, no TTS
633
+ server; builds, checks and exports every example, `tts/synth.py --dry-run`, `npm run new`)
634
+ - `tools/test-selfcontained.mjs` (in `npm test`): no personal paths, private addresses or secrets locations in tracked files,
635
+ only bundled skills named in `skills/`, the paths and npm scripts documents name exist, `kit/` and `server/` do not import
636
+ `tts/` or `render/`
637
+ - Editor app: **Help** shows the storage the site uses and the stored browser TTS models, with **Delete models**
638
+ - Browser TTS: loading a model deletes the caches of older model versions and asks for persistent storage
639
+ (`navigator.storage.persist`)
640
+ - Editor app, Audio panel: a voice picker per speaking role (bob / alice for Japanese, Kokoro voices for English) with
641
+ short pre-made samples (`lab/voices/samples/`); the choice goes to `voice.json` (kept in memory for single files)
642
+
643
+ ### Changed
644
+
645
+ - Editor app, dev server and docs: Alt+click comments are “Notes for the AI” (「AI へのメモ」) instead of
646
+ “Notes for Claude”, and the help names AI coding tools in general; `comments.json` is unchanged
647
+ - Editor app (Japanese): the copy buttons say 「コピー」 instead of 「写す」 (「AI への指示をコピー」 and others)
648
+ - Attachments (spec §3.8, still draft): each role takes only its formats (pdf: PDF; data: CSV, TSV, JSON, text, xlsx; code: source,
649
+ ipynb, environment files; source: TeX, Markdown, text, docx; supplement: PNG, JPEG, WebP, PDF, text), checked by name and content
650
+ - Attachments: executables (also `.js`, `.bat`), HTML, SVG, archives, macro or legacy Office, audio, video and files of two types
651
+ are never attached, nor PDFs with JavaScript, automatic actions or embedded files, nor Office files with macros or external links
652
+ - Attachments: `--portable` leaves such files out and a tier A save refuses them, naming the rule; the editor refuses them on add,
653
+ rename or role change; the checker reports MUST NOT cases (audio and video too) as errors and SHOULD cases as warnings
654
+ - Attachments: formula injection in CSV, TSV and xlsx and credential-like text are warnings only; encrypted PDFs that open
655
+ without a user password are decrypted and checked; decompression is bounded
656
+ - Attachments: the player offers only the formats each role takes and checks the first bytes before saving
657
+ - Attachments: the `egatari.json` inside a single file lists exactly `index.attachments` (spec §3.3); unpacking writes
658
+ `index.attachments` into `egatari.json`, packing reads it, and a file whose two lists differ is refused (`attachments-mismatch`)
659
+ - Attachments (spec §3.8 at 9242080): `title` is required, one line of at most 120 characters (was 200), `description` one line
660
+ of at most 300, counted in code points as in the schema; a bad title keeps it off the list, a bad description is dropped (warns)
661
+ - Attachments: the script extensions refused in every role are exactly the spec's list (`.js` … `.lnk`; JavaScript source as
662
+ `.mjs`, `.cjs` or `.ts`), reported as their own category; binary executables stay refused as executables
663
+ - Player: offers an attachment only with a valid title, an extension its role takes and the matching media type, saves it under
664
+ its path's file name, and adds "Run code only if you trust its source" to code attachments
665
+ - Editor app, Audio panel: a recorded, imported or TTS take is used for the step right away;
666
+ **↶ Revert to previous** brings back the step's earlier audio (no audio file is deleted). "Use this take" remains only when writing failed
667
+ - Editor app, Audio panel: the script field grows with the narration, can be resized, and labels every turn (Expert too) in a dialogue
668
+ - Editor app, Audio panel: without WebGPU the panel suggests recording first and no longer points to `tts/synth.py`
669
+ - Build: every output (plain build, dev and preview, single file, play-only) copies the audio record's `kind` (`tts`, `recorded`,
670
+ `imported`) into `deck-audio` (format spec 05c577f); the player reads it first and falls back to the index records
671
+ - Player: for imported audio the key list and the presenter view say "How the audio was made is not recorded" /
672
+ 「音声の作り方は記録されていません」 (format spec §7.3); nothing about the audio is shown on the slide or with the captions
673
+ - Development: GitHub Pages deploys only from release tags `vX.Y.Z` (pushes to `main` and pull requests only build); changes are recorded as `changes/*.md` fragments that `node tools/changelog.mjs --release X.Y.Z` assembles; `npm run gen` / `npm run gen:check` for the generated files; `npm test` finds unit tests by a `// test-all: unit` line and compares interface shapes with a snapshot (`tools/test-api-shapes.mjs`). See CONTRIBUTING.md and RELEASING.md
674
+ - AI instructions and `motion-slides` skill: one narrator by default; R-dialogue writes an Expert/Novice dialogue only
675
+ when asked, with Novice voicing a learner's question or paraphrasing, at most one 2–3 turn exchange per slide
676
+ (cognitive apprenticeship, arXiv:2607.12235). The worked examples are single-narrator; the skill no longer refers
677
+ to a skill outside the repository
678
+ - Editor app: **Recently opened** lists single files too (when the browser gave a file handle) and reopens them
679
+ - Editor app: in Safari and on iPad the first screen says to use **Paste AI output** to make a new lesson, and that
680
+ each save of a single file downloads a new file (also in the save notice)
681
+ - Editor app: **Export single file** and **Export built HTML** suggest the lesson title as the file name (made safe for every
682
+ OS), not `deck.ega.html`; without a title, the deck file name
683
+ - Checker: the narration language is decided apart from the slide language (`"lang"` in `voice.json`, otherwise the script of
684
+ the turns, otherwise `<html lang>`), and R-formula and long turns use each turn's own language; a new info `narrLang` says so
685
+ - The hosted Egatari Studio moved to https://studio.egatari.org/ (editor.egatari.org forwards there)
686
+ - Browser TTS: a voice name it does not have is handled alike in Japanese and English: the Audio panel says so and uses
687
+ the role's default voice; the TTS window refuses unknown names instead of silently using `am_michael`
688
+
689
+ ### Removed
690
+
691
+ - Video: the canon export (`render/export-canon.mjs`, the Marp-style lesson bundle, `CANON_DIR`) and its section in
692
+ the contract (§6, number kept), docs and the `motion-slides-video` skill. Video export (`render/render.mjs`) is unchanged
693
+
694
+ ### Fixed
695
+
696
+ - Player: captions no longer sit under the control bar; while the bar is shown over the bottom edge they move up above it
697
+ - Tests: `test-bounded-read` measures memory growth after loading instead of the absolute peak (Node 24 starts larger);
698
+ `test-app` waits for the stage to refit before measuring a comment point and compares within one screen pixel
699
+ - Checker: English narration on a Japanese deck no longer gives an R-formula warning for every English sentence
700
+ - Checker: a Japanese sentence that only names things in Latin letters (“Markdown と HTML”) is no longer taken for a formula;
701
+ formulas such as `ax + by = c` or `sin x cos y` still are
702
+ - Editor app: the preview plays the deck's audio (folder and single file): the editor reads the files that
703
+ `audio/manifest.json` lists and the preview plays them from `blob:` URLs of its own document
704
+ - Editor app: after **Paste AI output** → **Replace the current deck** in a working folder, the quick check no longer stops with
705
+ “Could not check (the deck did not answer)”: it waits for the rebuilt preview and asks that one (and asks again if the preview reloads)
706
+ - Editor app: the quick check waits until the deck is ready instead of answering with no results
707
+ - Editor app: the quick check note no longer ends with “… is npm run check” as if cut off; it says what is checked and that
708
+ **Copy fix request for your AI** (shown when there are results) has the AI fix the errors
709
+ - TTS (`tts/yomi.py` and the editor's browser TTS): the minus sign `−` (U+2212) is read as マイナス; Irodori-TTS's text
710
+ normalisation dropped it, so `−1` was read as 1. This changes the dictionary digest, so local TTS remakes every step once
711
+ - Reading dictionary: L殻, M殻, 送り仮名 and 濃い側, misread in a trial
712
+ - Docs (editor): the browser TTS uses seed 0 like the local mlx server, but its waveform is not the same
713
+ - Editor app, browser TTS: the engine (Irodori or Kokoro), the voices and the reading dictionary follow the narration language
714
+ (`voice.json` `"lang"`, then the narration text, then `<html lang>`), so English narration in a Japanese deck is no longer sent to Irodori
715
+ - Editor app, single-file editor (`file://`): the Audio panel says that “Regenerate with TTS” is not available there and suggests recording
716
+
717
+ ### Security
718
+
719
+ - PDF attachments: `/OpenAction` and `/AA` may only go to a place in the document (`GoTo`), links only `GoTo` or `URI`; other actions
720
+ (`SubmitForm`, `ImportData`, `GoToR`, `GoToE`, `Rendition`, `Named`, …) and PDFs that need a user password are refused
721
+
722
+ ## [0.4.1] - 2026-10-19
723
+
724
+ ### Added
725
+
726
+ - **Attachments** (format spec §3.8; draft, experimental; the allowed contents may be narrowed in a later version (spec §3.8 draft), per role): files for readers rather than for rendering (original source, typeset PDF, code, data, supplements). In a working folder they live in `attachments/`, with roles (`source`, `pdf`, `code`, `data`, `supplement`) and titles (required) in `egatari.json` under `attachments` (the same shape as the file's `index.attachments`; unknown members are kept). `--portable` packs the regular files under `attachments/` (links not followed, hidden files and backups left out) within the build's read budget and the attachment limits, 10 MiB each, 20 MiB together and 100 files (over a limit: left out with a warning); audio and video files (by extension or content) are left out with a warning; only files with a valid role and a title are listed in `index.attachments`. Attachments are not code (an `.html` attachment does not make the file Extended) and add nothing to `requires`. **Player:** a single file lists its attachments under **?** and with a paperclip button in the control bar, download only: the index hash, each attachment's size and SHA-256 are checked, and the bytes are saved as `application/octet-stream` through a `download` link, so HTML, SVG or PDF attachments are never opened or run (a corrupt one is not saved). Play-only copies and the normal build carry none. **Editor:** **Attach** in the toolbar opens a side panel for working folders and single files: add files (role guessed from the extension; a title is asked for, prefilled from the file name; audio and video refused), role, title (required), rename and remove (a folder keeps a backup in `.cache/edits/`); names outside `attachments/`, with `..` or colliding, and files over the limits are refused before they are read. In a single file, saving is tier A: only the index's attachment entries, their chunks and the source hash change (a change to an attachment that the slide source mentions needs a rebuild). **Checker:** warns about missing or unknown roles, missing titles, audio and video files, listed files that do not exist, names that are not allowed and files over the limits. Code: `kit/core/attachments.mjs`, identifiers in `kit/core/format.mjs` (`ATTACH_DIR`, `ATTACH_KEY`, `ATTACH_ROLES`), `app/attachments-panel.js`, workspace `remove()`. Tests: `tools/test-attachments.mjs` (in `npm test`: CLI build, unpack roundtrip, play-only, limits and names, checker, tier A with the region-aware diff, player download without navigation or execution, editor panel for a single file and a folder). Docs: reference, editor (ja/en), SECURITY
727
+ - **Egatari logo.** The mark (the hiragana え in Japanese corner brackets, its first stroke drawn as a sun) is in `assets/logo/` and at the top of the READMEs (light / dark through `<picture>`). The editor app has it as its favicon (`favicon.ico` / `favicon-dark.ico`: the bracketless glyph at 16 px, bracketed at 32 and 48 px, the dark one through `media="(prefers-color-scheme: dark)"`), apple-touch icon (180 px) and, on the hosted editor, a web app manifest with 192 and 512 px icons (the single-file `editor.html` embeds the icons as `data:` URIs and has no manifest), and in its header (the 32 px version). Waits longer than about 1 s (opening a file or an example, a slow build, browser TTS) draw the mark once (`egatari-draw-*.svg`; the final state only with reduced motion). The logo is not covered by the MIT license: it may be used unmodified to refer to Egatari or Egatari-compatible software (NOTICE, `assets/logo/README.md`). The `.ega.html` player does not contain it
728
+ - **Your own theme folders.** The build, checker, dev server and portable export also look for themes in the folders of `EGATARI_THEMES` (a list separated by the OS path delimiter, `:` or `;` on Windows) and then in `~/.egatari/themes` when it exists. Search order: the deck folder, its `themes/`, your theme folders, the bundled `themes/`. Each folder is a caller-chosen root: its real path is taken once (so `~/.egatari/themes` may be a symbolic link), and the containment rules hold inside it (no link or `extends` leaves that folder except to the bundled themes; `"extends": "default"` is the bundled `default`). A folder of `EGATARI_THEMES` that does not exist is skipped with a warning. The dev server rebuilds when a theme folder changes. A portable file stores a theme from these folders as the deck's `themes/<name>/`, so it rebuilds with the same theme on another machine and in the editor app (`kit/theme-dirs.mjs`; docs: reference ja/en, Themes and Environment variables)
729
+ - A theme the deck names (`<html data-theme>` or a parent in `extends`) that is found nowhere no longer stops the build with `theme not found`: it warns `theme not found: "<name>" — …` with where it looked and where to put the theme, and builds with `default` (or without the parent). In the editor app the same warning points to **Choose theme folder…** (below). `--theme` with a name that is not found is still an error. Tests: `tools/test-theme-dirs.mjs` (in `npm test`: search order, `EGATARI_THEMES`, a symbolic-link `~/.egatari/themes`, the missing-theme warning, containment, the portable export)
730
+ - Editor app: **Example lessons** on the first screen of the hosted editor. `tools/build-app.mjs` now builds `examples/minimal`, `pitch-fictional`, `kokugo-kanbun` and `tmlr2026-calibration` as portable files (no audio) into `dist/examples/<name>.ega.html` (about 14 MB together; `--no-examples` skips them; shared code in `tools/examples-portable.mjs`), and **Open** fetches one from the same site and opens it through the usual import path (worker parse, checks, code question for `tmlr2026-calibration`, rights prompt). Not shown in the single file from `file://`. The files are built from temporary copies of the example folders (nothing is written into `examples/`); an example without `egatari.json` gets a `docId` derived from its name, so each build is the same document
731
+ - `npm run release:assets` (`tools/release-assets.mjs`): builds the same example files and an `examples.json` (title, slides, size, sha256) into `out/release/` to attach to a GitHub release by hand; it uploads nothing
732
+ - `m-codetree` (`components/codetree/`, in the catalog, with a demo): decoding a bit string with a code tree, for a data-compression lecture (Modified Huffman, ITU-T T.4). The tree is built from the code table (`[{run, white, black}]` or `{white: {code: run}, black: {…}}`; prefix conflicts are reported): the root's left is the white tree, its right the black tree, branch 0 left. Decoding starts white; a terminating code (run < 64) switches the colour, a make-up code (run ≥ 64) keeps it, `EOL` returns to white; a code not in the table, a string that ends inside a code and a make-up code without its terminating code are reported. One step per codeword, with one cue per bit read (a narration with as many `{cue}` as bits keeps the read pointer on the words; one step per bit would split the narration into one line per bit), and a last summary step with both trees and every decoded path (the print and still state). In each step the tree is laid out again around the codeword (only the current colour's tree is expanded to `depth`, deeper and other subtrees are folded into small triangles, nodes slide between layouts), a read pointer moves along the bit string in step with a dot travelling down the tree, the leaf gives the run, and the run is filled into a scan line of white and black pixel cells, where a make-up and its terminating code combine into one run (`白 64 + 2 = 66`). Deep trees (black codes run to 13 bits) are shown through a window of a few levels that follows the travelling dot: the camera position is an eased function of the path progress, so the tree flows up as the dot goes down; in the window the tree is laid out again along the path (each sibling branch folded into a triangle on the other side) and the camera also pans so the path in the window stays centred; nodes fade at the window edges, only the incoming path is drawn across the top edge, and a breadcrumb above the window (`黒の木:ここまで 0000 0110`) keeps the colour and the bits read so far; `window="auto"` (default) follows only when the whole tree would leave less than 44 px between levels (shallow codes look as before), a number sets the window size, and the summary shows the window of the deepest path. Nodes, leaves, bits, codewords and runs carry `data-mark` names (`ct-w-1101`, `ct-w64`, `ct-bit-3`, `ct-cw-2`, `ct-run-1`) for `{mark:…}`. The demo decodes `11011011111` (white 64 + white 2, black 2) with the T.4 tables, follows the 12-bit black code of run 30 in `1000 000001101000 0111`, and shows an invalid code with a small table. New `tools/test-codetree.mjs` in `npm test` (tree building, colour alternation, make-up + terminating, EOL, invalid and incomplete codes); `tools/test-shape.mjs` covers its data shape
733
+
734
+ - Editor app: **Choose theme folder…** for decks (folders, single `deck.html` files and portable rebuilds) whose theme is neither in the deck nor bundled. The missing-theme warning shows it in a notice above the preview and in the warnings panel; **Theme folder…** in **Open ▾** and on the first screen shows the current folder and its themes and changes or forgets it. The folder (for example `~/.egatari/themes`) is picked once with the directory picker in read-only mode, its handle is kept in IndexedDB (not its contents) and read permission is asked again the next time it is needed (**Use theme folder “<name>”**). The in-browser build mounts it as a user theme folder (`/user-themes`, `env.themeDirs`), so the search order and containment rules are those of the command line (deck folder, its `themes/`, this folder, bundled themes) and only the files of the themes a build uses are read, in the build worker through the page; theme CSS and logos go through the usual theme sanitising. A portable file exported or saved from the editor carries the user theme it used as `themes/<name>/`. The editor never writes to the folder (`app/theme-folder.js`; docs: editor ja/en). Tests in `tools/test-app.mjs` with an origin-private folder as the theme folder: the prompt, picking (read mode), the theme's tokens and logo in the main-thread and worker builds, the deck's `themes/` winning, a logo outside its theme refused, the portable export, remembering across reloads, asking for permission again, Forget, and a folder without themes
735
+
736
+ ### Changed
737
+
738
+ - **Two words for where a deck lives**, everywhere in the editor app and the docs: **working folder** (作業フォルダ: `deck.html`, `narration.md`, `audio/` …) and **single file (`.ega.html`)** (1 ファイル(.ega.html)), replacing “deck folder”, “source folder”, “portable file” and their Japanese variants (デッキのフォルダ・原稿のフォルダ・持ち運べる 1 ファイル・持ち運べる教材のファイル). Menu items follow: **Open single file…**, **Open working folder…**, **Export working folder…**, **Export single file (.ega.html)**, **Export built HTML**. File formats, options and APIs keep their names. The reference anchors are now `#single-file---portable` / `#1-ファイル--portable`
739
+ - Editor app: the first screen puts single files first. The main actions are **Open single file…**, **New deck** and **Paste AI output**; a working folder opens from the secondary “Open working folder…”. A small table explains working folder, single file, play-only file and built HTML (also in Help)
740
+ - Editor app: **Open file…** (or drop) with a deck source `deck.html` (slides, no built runtime or format blocks) no longer says the file is play-only. A dialog explains that narration, audio and the deck's own components live next to it in a folder and offers **Open the folder…**, **Open this file only** and **Cancel**. *This file only* opens a new in-memory deck with just `deck.html` (no narration or audio; registry components and themes work), treated like any opened file (the code question applies, new `docId`, unsaved), and **Save** asks whether to save a portable file or export to an empty folder
741
+ - Editor app: a built presentation (`out/deck.html`) is refused with its own message (open the source folder, offered in the dialog, or a portable file), a play-only portable file with a message that names it, and other HTML as “not a portable file” (ja/en). The reader reports which of these a file without an index is (`sourceKind` in `kit/core/portable.mjs`, the error's `details.kind`)
742
+ - Build: the new option `missingFiles: 'warn'` turns a referenced file that does not exist (`{{JSON:…}}`, includes, figures) into a warning, once per file, and leaves it empty. The editor uses it for every in-memory deck (opened files, `deck.html` alone, pasted AI output); folders and the command line still fail on a missing file
743
+ - **The AI instruction pack is split into a common body and series packs.** `docs/authoring-with-llms(.ja).md` is now the common body (contract rules with the same rule ids `R-…`, sizes, output format, and the components any lesson may use: `m-menu`, `m-flow`, `m-bars`, with a new small worked example using `m-flow`); `docs/llm-parts/<series>(.ja).md` add the components of one kind of lesson: `academic` (`m-sweep`, `m-curves`, `m-seq`, `m-collect`; axis-chart sizes), `business` (`m-kpi`, `m-quad`, `m-market`, and the money and service flows of `m-flow` as an extension), `kokugo` (`m-kanbun`, `m-kobun`, `m-gendai`, vertical `layout-tate` slides) and `info` (`m-codetree`), each with its worked example. Every kit component declares its place with `series:` in its README frontmatter (`common` or a series), and the generator fails for a component without one; README text between `<!-- llm: <series> -->` and `<!-- llm: end -->` goes to that series as an extension, and `<!-- llm: omit -->` blocks (implementation notes) and timing attributes (in seconds) are left out of the pack. One function assembles the text, `buildPack({series, lang})` in `kit/core/llm-pack.mjs` (`series`: names, `'all'` or `[]`), used by the editor, by `node kit/llm-pack.mjs --series academic,info --lang ja` (`--list` for the series and sizes, in English and Japanese columns or one language with `--lang`; `--help` / `-h` prints the usage, and an unknown option is refused with it) and by `tools/make-llm-guide.mjs`, which now also writes the assembled data `kit/core/llm-pack-data.mjs`. `--check` in `npm test` also checks the sizes: the common body with one series warns above 35 KB and fails above 40 KB, all series fail above 64 KB (now about 22–35 KB and 57–59 KB). Sizes are shown the same way everywhere (`packKb`: UTF-8 bytes / 1024 with one decimal): the `--list` columns and the paste dialog, which shows the sizes of the instructions in the UI language
744
+ - Editor app: **Paste AI output…** lets you tick the series packs to copy with the common body (each with the size it adds, and the total). With a deck open, the series of its components and theme are ticked (`seriesForDeck`), otherwise `academic` (ja/en; docs: editor ja/en). Tests in `tools/test-app-llm.mjs`
745
+ - `buildFixRequest` (`kit/core/llm-fix.mjs`) no longer takes the instruction text: it quotes the rules from the common body itself and adds the notes of the components the included slides use (the same text as in the pack; `components` in the result). A caller that still passes `guide` gets a console warning and the argument is ignored
746
+
747
+ ### Removed
748
+
749
+ - The institutional themes `tml`, `tcue`, `wsd` and `ohte` and their university logos are no longer bundled (the logos were not under the MIT license). Put such themes in one of your theme folders (`EGATARI_THEMES` or `~/.egatari/themes`) or in the deck's `themes/`. Decks that name one of them and do not have it build with `default` and a warning. `examples/tmlr2026-calibration` now uses `default`; README, NOTICE, the authoring packs and the motion-slides skill no longer list them
750
+ - `docs/authoring-with-llms.core.md` and `.core.ja.md` (the short pack without component details) and the single full pack: the common body with the series packs a lesson needs replaces both (the 0.4.0 files remain in that release)
751
+
752
+ ### Fixed
753
+
754
+ - Editor app: the quick check no longer counts ruby text (`rt`, furigana at half size by design) as text that is too small, the same as `kit/check.mjs` (opening `examples/kokugo-kanbun` gave 4 small-text errors). Test in `tools/test-app.mjs`
755
+
756
+ ## [0.4.0] - 2026-10-19
757
+
758
+ ### Added
759
+
760
+ - **Drafting with a chat AI** (no Claude Code needed). `docs/authoring-with-llms.md` (English) and `docs/authoring-with-llms.ja.md` are an instruction pack to paste into claude.ai, Gemini or ChatGPT (about 54 KB; `.core.md` / `.core.ja.md`, about 25 KB, leave out the per-component details). It starts with the most common failures: both blocks complete and closed (fewer slides if the reply may be long), the slide's measured sizes (body 1184 × 443 px, 46 px per line, all text ≥ 24 px), how to size charts (components draw labels at 24–28 px; axis charts 300–380 px high and ≥ 560 px wide) and inline SVG (viewBox in displayed pixels). They are generated by `node tools/make-llm-guide.mjs` from `tools/llm-guide/` (template and three small fictional worked examples: an English academic deck with math, marks and `m-sweep`, a Japanese business deck with `m-kpi` and `m-bars`, a kanbun deck with `m-kanbun`), bullets of `docs/contract(.ja).md`, the component READMEs (frontmatter and `static props`) and the theme list; `--check` in `npm test` fails when they are out of date. The pack asks for exactly two fenced blocks, `deck.html` and `narration.md`, no slide ids (the editor adds them), one symbol or term per reading `{x|y}`, and names each rule (`R-title`, `R-narr-steps`, …) so that fix requests can refer to it
761
+ - Editor app: **Paste AI output…** (first screen and **Open ▾**). It offers to copy the instructions, then takes the two blocks out of the whole pasted reply (`kit/core/llm-import.mjs`: ```` ```deck.html ````, ```` ```html ````, ```` ```markdown ````, `title="…"` labels, a file name on the line before, `~~~`, CRLF, prose around the blocks; an unclosed block is reported as a cut-off reply, with **Copy a resend request for your AI** (only the missing narration block, or a shorter lesson), and a narration-only reply is joined with the deck that arrived; a reply copied without fences is taken from `<!DOCTYPE html>` to `</html>`), gives the slides ids in the browser with the code of `npm run ids` (now `kit/core/slide-ids.mjs`; slides with the same heading are matched to their narration sections in order), builds a portable file in the build worker and opens it like any opened file (the code check reads the content, so scripts in a reply ask before running), with a new `docId`, unsaved, and runs the quick check. **Copy fix request for your AI** in the quick check panel writes the errors and warnings (with the amount for overflow and small text: “cut 97 px from the body (about 3 lines of 46 px)”, “raise the text from 23.2px to at least 24px”), the rules they break (quoted from the same generated pack, `kit/core/llm-fix.mjs`), the build's narration notices and the current files (only the slides with problems when the deck is long) to the clipboard; **Paste the reply…** then replaces the current deck, keeping its `docId`, settings and audio (a reply with only some slides replaces those by id; a folder deck is written with backups). Tests: `tools/test-llm.mjs` (in `npm test`) and `tools/test-app-llm.mjs` (run by `tools/test-app.mjs`)
762
+ - Checker (`kit/check.mjs`, also the editor's quick check): narration for a step a slide does not have (`[k]` beyond its steps, `[concl]` on a slide without a conclusion, the conclusion step written as a number) is an error; the narration of `static` slides (the cover) is now checked like any step; a reading `{x|y}` whose display holds an operator or several symbols is a warning with a suggestion (`kit/core/narration-lint.mjs`). The new check found that the `npm run new` template narrated one step too many on its “steps” slide (`[3]` on a slide with steps 0–2); the template’s narration is fixed (ja and en)
763
+ - motion-slides skill: new slides are written without ids and `npm run ids` is run afterwards (the skill no longer asks to make up `s-…` ids)
764
+ - **Comments remember where you clicked** (dev server and editor app). Alt/⌥+click now also keeps the point as `pin: {x, y}` in slide coordinates (1280×720, independent of the zoom) in `comments.json`, next to `key` and `range`; it refers to the final state of the step. Entries without `pin` still work. The quote starts with the text near the point when there is any (a label or word inside a figure or a component, also inside a shadow root; at most 60 characters). The point comes from the untrusted preview, so the editing UI and the server (`kit/core/comment-core.mjs`, shared by `server/dev.mjs` and `app/devapi.js`) accept numbers only, clamp them to the slide and drop other fields; a forged point only moves the marker. The comment list (`c`) is numbered and shows the point; while it is open, the editing UI marks the pins of the step on screen with numbered rings drawn over the preview (placed from the iframe's own size, not taking clicks), and clicking a comment goes to its step and flashes its pin
765
+ - `npm run comment-shots -- <deck folder>` (`tools/comment-shots.mjs`): builds the deck, renders each open comment's step headlessly with `DECK.seek(i, k, Infinity)`, draws the pin and writes `<id>.png` (480×300 around the pin at 2×), `<id>-full.png` (the whole slide) and `index.json` into `<deck>/.cache/comment-shots/`. No image is taken from the preview. The motion-slides skill now runs it and looks at the images before applying comments. New `tools/test-comment-shots.mjs` in `npm test`; the dev-server and editor-app tests check pin storage, validation of forged and out-of-range points, the marker's place at two slide sizes, and list → step → flash
766
+ - **Business and pitch components** (`components/`, in the catalog, each with a demo; the screen depends only on `DECK.seek(i, k, t)`):
767
+ - `m-bars`: bars that grow from 0 step by step, vertical or horizontal (rankings), one or more series (series named on the first group, no legend), values with thousands separators and a unit written at the bar end once a bar has grown (`count="true"` counts up instead), a group `tone` to highlight one. `scale` widens the value axis at a step (log-interpolated, the previous range kept as a faint band, tick sets swapped), so a bar can push through the top of the axis. It generalizes the deck-local bars of `examples/tmlr2026-calibration`, which keeps its own choreographed component (a deck's `components/` is looked up first)
768
+ - `m-quad`: a 2×2 positioning map (or SWOT-style grid) with labelled poles and quadrant names; items are placed one per step, the `self` item is emphasized with a ring, and `to` slides an item to a target with a dashed trail
769
+ - `m-market`: TAM / SAM / SOM as nested circles, each shrinking out of the previous one, with key, value and basis written to the right; fixed ratios (default) or area proportional to the value, bottom-aligned or concentric
770
+ - `m-kpi`: KPI cards with a big number and unit, an optional prefix, a ▲ / ▼ delta (coloured by whether the direction is good) and a note; the number counts up from 0 (or `from`) with an ease-out that is a function of (k, t) only
771
+ - `m-flow`: money and value flows, backward compatible (edges without the new fields draw as before). `kind` (`money` / `service` / `data`) sets colour, width and dash; `amount` adds a bold amount on the other side of the label; `shift` offsets an edge so that the two directions between the same boxes run side by side; `pulse` sends a train of dots along an edge in its own step or in the listed steps (`pulse-dur`, `pulse-n`), and `cues(k)` returns the pulse start times so a narration `{cue}` can time them (still `null` for figures without `pulse`)
772
+ - `m-quad` moves an item's label to the other side of its dot, then above or below, when it would cross an axis line (checked at the start and the `to` position); `m-flow` moves an edge label or amount away from the line, then to the other side, when it would come within `label-gap` (12 px) of a box or leave the figure. Positions use width estimates from the character count, so they do not depend on font loading. `tools/test-components.mjs` now also reports text that crosses an axis line (`line.axis`) or comes within 4 px of another box (`rect.box`)
773
+ - `themes/business`: a neutral theme for business and pitch decks (navy base, orange emphasis and heading rule, teal third series, darker text and lines for reading at a distance, a light orange conclusion line, no logo); it uses the same BIZ UDPGothic setup as `default`
774
+ - `examples/pitch-fictional`: a 10-slide Japanese pitch for a fictional company (株式会社レポミル, a SaaS that drafts reports from company data) using all five components and the `business` theme, with narration for every step, stable slide ids and data written by `scripts/make_data.py` (fixed made-up values plus consistency checks). The company, product, people and numbers are all fictional. It exports as a `core` portable file (no own code)
775
+ - `node kit/build.mjs` accepts a deck folder and builds the `deck.html` inside it (also with `--portable` / `--play-only`); a folder without one is refused with “expected a deck.html file or a folder containing one” instead of the misleading `build-not-a-file` (FIFO, device or socket) message. New `tools/test-build-args.mjs` in `npm test`
776
+ - `npm test` builds and checks `examples/pitch-fictional` (no errors); `tools/test-components.mjs` covers the new components through their demos (render, text size and overlap, seek determinism)
777
+ - `m-gendai`: the lines joining paragraph roles now run from label to label outside the labels and frames (above the labels in vertical writing, to their left in horizontal writing), with the arrowhead on the target label's edge; a line that passes over another paragraph takes an outer lane, and the component reserves room for the lanes, so no line crosses a label or a frame. A demonstrative's arrow within one paragraph stays inside its frame. Vertical text has a wider line gap (2.4) so side lines and their label (A, B…) sit clearly with their own column; in horizontal writing, paragraphs with roles are spaced so a label no longer overlaps the frame above. `tools/test-components.mjs` reports a line, arrow or side line of `m-gendai` that enters a label or crosses a frame away from its own ends
778
+ - Slide layout `layout-tate` for fully vertical Japanese slides (`<section class="slide layout-tate">`, `kit/layouts.css`): the heading is one vertical column at the right edge, top-aligned, with the theme's heading rule turned into a vertical rule on its left; the body is in vertical writing to the left of it (paragraphs and lists in columns from right to left, `.tate` blocks filling it; components, figures and tables stay horizontal at the body width and use their own vertical option); the conclusion is a vertical column at the left edge and the page number stays at the bottom right. Works with the `default` and `kokugo` themes, `m-kanbun`, `m-kobun tate`, `m-gendai tate` and `.tate`. CSS only: slide keys, captions and the readable layer of a portable file are unchanged. The checker knows the layout: a vertical title that does not fit its column, a conclusion that overflows its vertical column, and body content below 680px, over the heading column (right of 1162px) or over the conclusion column (left of 124px; 44px without one) are errors. The 現代文 slide of `examples/kokugo-kanbun` uses it. New `tools/test-layout-tate.mjs` in `npm test` (placement without overlap in both themes, seek determinism, checker rules, keys and readable layer)
779
+ - Japanese language arts (国語), kanbun first. Shared base in `kit/layouts.css`: vertical writing (`.tate`, `.tcy`), ruby (`rt` at 0.5em, not counted by the checker's text-size rule), a Mincho family (`--font-mincho`, `.mincho`, `<html data-font="mincho">`), and `--font-cap` for the caption font
780
+ - BIZ UDPMincho (OFL): `tools/get-fonts.mjs` also downloads `BIZUDPMincho-Regular.ttf` and `-Bold.ttf` from the same pinned google/fonts commit, with size limits and SHA-256; `@fontsource/biz-udpmincho` 5.3.0 is the fallback without the TTF files. The build embeds Mincho only when the deck uses it (`var(--font-mincho)` in the deck, its theme or a used component, `class="mincho"`, or `data-font="mincho"`), subset with uv like BIZ UDPGothic. The hosted editor bundles it; the single-file `dist/editor.html` does not (it would grow by about 11 MB) and warns that Mincho is not embedded
781
+ - `m-kanbun`: kanbun in vertical writing from an author-friendly text syntax (`春眠不{=ず}レ覚(エ)レ暁(ヲ)`: `(送り仮名)`, `[返り点]` including 一レ・上レ, `{振り仮名}`, `{=かな}`, `{-}` 置き字, `(右|二度目)` 再読文字, `-` 竪点). Steps: 白文 → 訓点 (返り点 lower left, 送り仮名 lower right) → reading order (characters highlighted in kundoku order with an arc where the eye jumps back; cues at the start of each column) → 書き下し文. The kundoku order (レ点, 一二点, 上中下点, 甲乙点, 天地人点, 一レ点, 再読文字, 置き字) and the 書き下し文 are tested on known texts (`tools/test-kokugo.mjs`)
782
+ - `m-kobun`: classical Japanese split into words and colored by part of speech, one sentence per step, then the modern translation. Clicking an auxiliary verb shows its conjugation table and meanings from a table inside the component (28 classical auxiliary verbs; no network, text only); the card closes when the step changes and never opens in video mode
783
+ - `m-gendai`: modern Japanese with side lines and double side lines (labels A, B…), arrows from demonstratives to what they refer to, and paragraphs boxed by role (主張・具体例・対比) and joined by lines; horizontal or vertical
784
+ - Theme `kokugo` (Mincho body text, indigo base, vermilion emphasis, off-white background, captions in BIZ UDPGothic)
785
+ - Example `examples/kokugo-kanbun` (11 slides, narration for every step): 『史記』, 孟浩然「春暁」, 杜甫「春望」, 『論語』, 『枕草子』 and an original modern text. `npm test` runs `test-kokugo`, builds the example normally and as a portable file, and checks it (0 errors)
786
+ - Stale translation check for English/Japanese document pairs (`X.md` + `X.ja.md`): each file's first line is an invisible comment recording a hash of its counterpart at the last sync. `npm run i18n -- --check` warns when one side changed after that (e.g. “README.ja.md is older than README.md”) or the comment is missing; `--stamp <file>` records a pair as in sync after a person has compared it, `--stamp-all` stamps every pair. It runs in `npm test` and in CI (GitHub warning annotations) and only warns; `--strict` exits 1. How to update a translation is in CONTRIBUTING (`tools/i18n-pairs.mjs`, test `tools/test-i18n-pairs.mjs`)
787
+ - **Links to slides** (format spec §9.1A; [contract §9](docs/contract.md#9-links-to-slides)): an ordinary `<a href="#<slide id>">` or `<a href="#<slide id>:<stepKey>">` (step `0`, `1`, … or `concl`; split at the last `:`) moves to that slide or step inside the document, never navigating the window; the same fragments in the file's URL select the start position (`#N` still works). In talk and lecture mode the target is shown in its final state; during autoplay the player seeks there and keeps playing; video mode ignores links; a pen or the laser keeps drawing. **Back** returns to the position before the most recent link, keeping the playing state: a small button at the top left (shown only after a link, naming the slide it returns to), Backspace (when no pen is active), Alt+←, or the browser's back button (each link adds one history entry in a top-level window; forward goes to the last position after that link; in a frame the trail is kept in memory). Focus returns to a link activated from the keyboard. The presenter view follows, shows its own Back button and forwards Backspace / Alt+←; a link clicked on its "current screen" is followed by the main window. Captions follow the new step. Run-time API: `DECK.resolveFragment`, `fragment`, `follow`, `back`, `links`, `visited`; `deck:pos` and the `deck-pos` message carry `cause` and `back`
788
+ - Embedding (`?embed=1` in a frame): the player posts `{egatari:"position", slideKey, stepKey, t, cause}` to its parent on every step change (`cause`: `link`, `seek`, `control`, `play`). A host that restricts navigation refuses links with `?links=0` or `{egatari:"links", id?, follow:false}` (acknowledged with the same `id`; only `window.parent` is heard); a refused link stays put and posts `{egatari:"linkRefused", slideKey, stepKey}`
789
+ - Component `m-menu`: a grid of link cards (title from the anchor's content, `data-sub` subtitle, `data-icon` badge, a mark for links to another file), made of the plain anchors the author writes, so the deck stays Core and the readable layer stays ordinary links. Optional "visited" check for slides shown in this session (not stored, not in video or print); cards can appear by step (`per-step`), deterministic in (k, t); hidden cards are not clickable or focusable. Demo, README and catalog entry
790
+ - Checker (J): a link to an unknown slide id, a step out of range, `:concl` on a slide without a conclusion or a slide number beyond the last is an error; `#N` links, links to slides without an id and relative links to missing files are warnings
791
+ - `examples/kokugo-kanbun`: a contents slide (`m-menu`, six cards) after the cover, with narration, and a link back to it on the summary slide (11 slides)
792
+ - `tools/test-links.mjs` (in `npm test`): fragments at load, clicks in each mode, Back by button, keys and browser history, autoplay kept, keyboard focus, captions, embedding (`position` with `cause: "link"`, `links` / `linkRefused`), presenter view, `m-menu` steps and visited marks, checker errors. `tools/test-portable.mjs`: links survive a portable export, a deck with `m-menu` is Core, the readable layer is unchanged
793
+ - Format spec copy (`vendor/egatari-spec`) synced to 4a1a1ae (§9.1A links to slides; the 29 document fixtures generated from v0.3.1)
794
+ - **Narration audio in the editor app** (Audio in the toolbar; a card in the trusted side panel for the step on screen, for deck folders and portable files; [editor](docs/editor.md#narration-audio-audio-panel)): play the step's current audio with its kind, source and a **stale** badge; **record** a take from the microphone (`MediaRecorder`, level meter, record again; takes stay in memory until one is used), **import** an audio file, or **regenerate with browser TTS** (Irodori-TTS 500M-v3 for Japanese with the reading dictionary, the deck's voices and seed 0, as the local mlx server; Kokoro-82M for English; WebGPU; the download size is shown and confirmed first; without WebGPU the panel says to record or use `tts/synth.py`). **Use this take** writes `audio/<rec|tts|imp>_<hash>.mp3` and the step's record in `audio/manifest.json` (previous manifest backed up to `.cache/edits/`) with `kind`, `inputHash` and, for TTS, a `recipe` (`engine`, `model`, `voice`, `seed`, `dictionary`, `processing`), `processing` on every kind and the MP3 encoder delay as `startOffset` (format spec §5.2; the runtime and `render/render.mjs` start the audio at that time); recorded and imported takes have `sync: "none"`. No device or file names are recorded. The step's length follows the new audio. In a portable file, Save then writes it without rebuilding (tier A: only that step's audio regions change)
795
+ - Browser post-processing identical in intent to `tts/core.py` (`kit/core/audio-core.mjs`): mono, 44.1 kHz, silence trimmed at −45 dB (20 ms window, 50 ms kept), −20 LUFS integrated loudness with one linear gain capped at −1.5 dBTP (profile `trim-45-loud-20-cap-v1`, named apart from `tts/core.py` because ffmpeg switches to dynamic mode there); parts joined with 350 ms between turns and cue times like `tts/synth.py`. MP3 encoding with LAME compiled to WebAssembly (`lame-wasm` 0.3.0, pinned dependency; `kit/core/mp3.mjs`), 64 kbps CBR mono 44.1 kHz. LAME (LGPL) is not built into `app.js`: the hosted editor ships the unmodified npm file as `vendor/lame-wasm/index.js` with its LICENSE and loads it only when encoding (`app/mp3-loader.js`; replaceable, see NOTICE); the single-file editor saves WAV
796
+ - The reading dictionary in JavaScript (`kit/core/yomi.mjs`: same replacement rules as `tts/yomi.py`, terms from `tts/yomi.yaml` bundled into the editor with their SHA-256)
797
+ - Browser TTS runs in a separate window of the editor's site (`lab/tts-helper.html`, sharing model loading with the lab page through `lab/tts-engine.mjs`); the editor page keeps its no-network policy and sends that window only the text to read and the voice name
798
+ - New tests in `npm test`: `tools/test-audio-core.mjs` (post-processing against `tts/core.py` with uv and ffmpeg, MP3 frames and decoded length, reading dictionary against `tts/yomi.py`, records and staleness, a tier-A save with one step's audio replaced, region-aware diff) and `tools/test-audio.mjs` (the Audio panel with Chromium's fake microphone and a stand-in TTS engine: recording, takes, Use this take, stale badge and warnings, quick check, regeneration, portable save by tier A, the TTS window protocol, no WebGPU)
799
+ - **Component data shapes.** Each kit component declares the shape of its data in `static shape` (`kit/shape.js`, a small dependency-free subset of JSON Schema with an example; text-written components `m-gendai` `m-kanbun` `m-kobun` and the link grid `m-menu` declare that they take text or `<a href>`, and `m-sweep` declares its `values` attribute). The runtime checks it before counting steps; on a mismatch, or when `mount`/`render` throws, the component is not drawn: an inline placeholder (`.m-error`) says what differs, its steps fall back to the `steps` attribute (else 0), and the problem goes to `DECK.componentErrors`. The checker and the editor's quick check report it as `compData` (rule R-components): which slide and component, the path, expected and actual (“the data must be an array … but is object {xr, yr, …}: “series” is not a field: make the array inside it the data itself; xr, yr, … are attributes of <m-curves>; series[0].fn: there is no field “fn” (write f)”), the shape and an example. The generated guide's component list (full and core) gains a data-shape column, and each component section an example; `m-curves` notes that its data is the array itself, not `{"series": …}`. Test: `tools/test-shape.mjs` (in `npm test`; fixture `tools/fixtures/bad-curves`)
800
+ - Paste AI output: when the reply has no code blocks, **Copy a resend request for your AI** asks for both blocks in the chat message itself (no files, canvas or attachments); R-output says the same. When only the last `narration.md` block has no closing fence but the narration is complete (every slide has its section and the last line ends a sentence), it is accepted with a notice
801
+
802
+ ### Changed
803
+
804
+ - The Irodori lab page (`lab/irodori.html`) now starts with seed 0, the same as the editor's browser TTS and the local mlx server
805
+ - Skills: motion-slides now covers lessons and talks beyond academic slides (business, kokugo), describes the Egatari format and the single file (`--portable` with source and audio, `--play-only` for learners, reopened in the editor at https://editor.egatari.org/) with new triggers (「Egatari にして」「ega にして」「1 ファイルで配れる形にして」「持ち運べる形にして」), states the display modes as they are (talk, video, and the lecture view of later steps), points to the authoring guide's rules (no ids, one symbol or term per reading, lesson metadata in `egatari.json`, no learner data); motion-slides-video adds a last step that builds the audio-included portable file (and the play-only copy); motion-components says how registry and deck-local components travel in a portable file
806
+ - Checker messages (`kit/check.mjs`, texts in the new `kit/check-messages.mjs`, Japanese and English) now say where (slide number, heading, id, step), what is wrong and how to fix it, with the authoring guide's rule id where one applies (e.g. “スライドの字に です・ます がある(「…」):スライドは常体(だ・である、体言止め)で書く。です・ます は口述原稿だけ(R-style)”), so they work as a fix request for a chat AI. `--lang ja|en` chooses the language (default: the deck's language). The text output's slide headers show the id
807
+ - `kit/check.mjs --json`: `title` is now the slide's heading text (it held the slide id for slides not on screen, because it read `innerText`); new fields `id`, `key`, `step`, `code`, `rule` and `data` (the values, e.g. overflow px), and a top-level `lang`. The shape is documented in docs/reference (Checker). `kit/core/llm-fix.mjs` uses `rule` when given
808
+ - Links inside slides (`<a href>`) take the theme's `--term` color with an underline (`kit/layouts.css`, zero specificity so components can restyle them)
809
+ - The keyboard help (`?`) lists Backspace / Alt+← for Back; Backspace clears ink only while a pen is active (as before)
810
+ - Code detection (format spec §6): a `<script>` without `src` whose content is empty or only whitespace (space, tab, line feed, carriage return, form feed, vertical tab) is no longer code, so a deck with one exports with the `core` profile and opens in the editor without the code question; a script with only a comment (or `;`, or any other character) is still code. One rule in `kit/core/code-scan.mjs`, used by the build, the portable export and reader and the editor. The comment-only placeholder `<script>` in the demos of `m-bars`, `m-flow`, `m-kpi`, `m-market` and `m-quad` is removed (it was not needed: the build puts the runtime before `</body>` when there is no script)
811
+ - `m-kanbun`: a long 送り仮名 (`落(ツルコト)`, `先(ンズレバ)`) no longer pushes the next character down. As in print it starts at the lower right of its character, may run into the upper half of the next character's right column, and is compressed (tighter letter spacing, then vertically scaled; the font size stays, down to 0.78 of its natural length); the next character's 送り仮名 may move down by up to 0.36 of a character to make room when it still fits. The next character moves down only when it has 振り仮名 or the 送り仮名 does not fit even compressed. `tools/test-components.mjs` checks that right-column annotations do not overlap and that a 送り仮名 of 3 or more kana does not push the next character. The README image `docs/images/kokugo-kanbun.png` is re-shot
812
+ - `package.json` `homepage` and the editor link in the README (en, ja) point to <https://editor.egatari.org/>
813
+ - `tts/synth.py` keeps recorded and imported audio (manifest `kind` `recorded` / `imported`) instead of replacing it with TTS (`--replace-recorded` replaces it), and writes `kind: "tts"` and `inputHash` (format spec §5.4; `tools/narration-json.mjs` now outputs it per step) into each manifest entry. The audio itself and its digest are unchanged
814
+ - Stale audio is reported for deck folders too: the editor app's warnings and quick check, and the checker (`audio: stale`, warn) list steps whose audio was made from other narration (`inputHash` differs or is `null`; for entries without `inputHash`, the TTS cache record's digest is compared)
815
+ - The folder build keeps `sync` from `audio/manifest.json` (`sync: "none"` gives empty cues), as the portable export already did
816
+ - `lab/irodori.js` takes its versions, model sizes, WAV reader and resampler from `lab/tts-engine.mjs`
817
+ - Checker, fix requests and the editor's quick check keep only the message of console errors: stack lines and file paths (`file://`, temp folders, the local server's origin) are removed (`kit/core/error-text.mjs`); an old-style component exception (“M-CURVES TypeError: …”) becomes a component-data message. The checker also counts a slide's steps from its `data-step` elements and `.concl`, so a failing component no longer turns the slide's narration into orphan steps
818
+ - Orphan narration (`narrOrphan`) now says the slide's steps and valid keys (`[0] [1] [2] [concl]`), quotes the narration lines to change, and suggests merging them into the previous step `[k−1]` or adding a `data-step` element (and, if a component on the slide cannot draw, to fix its data first). The editor's fix request quotes the same lines
819
+ - Readings `{x|y}`: one symbol with a star, prime, sub- or superscript, hat/bar/tilde or a single LaTeX macro is fine (`{Q*|…}`, `{x′|…}`, `{x_0|…}`, `{θ̂|…}`, `{\theta|…}`); a warning only for an operator (`a*b`, `1-η`, `Q* = 4`) or several symbols. R-reading in the guide says so
820
+
821
+ ### Fixed
822
+
823
+ - Dev server: idle keep-alive connections are no longer closed by the server after Node's default 5 s (6 s from Node 24); `server.keepAliveTimeout` is 10 minutes, longer than browsers keep them, so the client always closes first. A client that reuses pooled connections without reading the `Keep-Alive: timeout=` hint (Playwright's `request`, an `http.Agent` without `timeout`) could send a request just as the server closed the connection and get `socket hang up` (`ECONNRESET`); this made `tools/test-dev-server.mjs` fail now and then on CI (a GET 6.0 s after the previous one). The test checks the advertised timeout
824
+ - Editor app: a preview that finishes loading while a toolbar menu (Open / Save / Export ▾) is open no longer moves the focus from the menu to the preview. Before, ↑↓ and Esc then went to the deck and the menu stayed open (on slow machines the load can finish after the menu opens; `tools/test-app.mjs` failed now and then on Windows). The test waits until the preview has loaded before opening the menu and checks that a load while the menu is open keeps the focus in it
825
+
826
+ ## [0.3.1] - 2026-10-18
827
+
828
+ ### Changed
829
+
830
+ - New home and name: the repository moved from `moiku/motion-academic-slides` to [egatari/egatari-studio](https://github.com/egatari/egatari-studio), and the project is now called **Egatari Studio** (formerly motion-academic-slides). The npm package name, the skill names and the commands stay the same. Links in the README, docs, issue templates, `package.json` (`repository`, `homepage`, `bugs`), the skills' feedback and proposal steps (`gh … -R egatari/egatari-studio`) and the default feedback link of decks (`?` help and presenter view) point to the new repository; the editor app is titled Egatari Studio
831
+ - Editor URL: the hosted editor is at <https://editor.egatari.org/> (until that domain is live, at <https://egatari.github.io/egatari-studio/>). `tools/build-app.mjs` now puts the hosted editor at the root of its output (`dist/index.html`; it was `dist/editor/`), next to `editor.html` (single file) and `lab/`; `editor/index.html` redirects old links to the root keeping the query and `#`. All paths are relative, so the site works at a domain root and under a path. The Pages workflow deploys only from `main` (on another branch it builds the artifact without deploying)
832
+
833
+ ### Fixed
834
+
835
+ - Editor app, saving without rebuilding: a font supplement no longer depends on where the fonts came from (`fonts/*.ttf` subsets or the `@fontsource` files). Without a font source, characters that were already in the original narration but that the document's fonts lack (e.g. “θ”, which the `@fontsource` BIZ UDPGothic does not have) no longer make the save fail with “no font source”; only characters new in the edit are refused (`kit/core/tier-a.mjs`)
836
+ - Editor app, saving without rebuilding: the file names of a font supplement reported in `changes.supplement.files` are cut at both `/` and `\` (on Windows the full `C:\…\x.woff2` path was reported)
837
+ - `node tools/katex-ranges.mjs --check` ignores line endings, so a CRLF checkout (Windows git) no longer reports `kit/core/katex-ranges.mjs` as stale
838
+ - Tests run on Windows and on CI without uv: child processes import modules through `file://` URLs and paths come from `fileURLToPath` (Windows), the fake ffmpeg reads folder permissions with GNU `stat -c` before BSD `stat -f` (Linux), the audio record's `recipeDigest` is compared with the manifest's digest only when there is one (no uv), the dev-server test waits for the reload after a save to settle before evaluating in the preview, and the tier-A tests use a new character that is not already in the document. No product code changed for these
839
+
840
+ ## [0.3.0] - 2026-10-18
841
+
842
+ A deck as one portable file you can reopen and fix, following **Egatari** (絵語り), an open [format for portable decks](https://github.com/egatari/egatari-spec) (draft 1.0): stable slide ids, `--portable` / `--play-only` export and `npm run portable -- unpack|pack`, the editor app opens and saves these files without the folder (narration and timing edits are saved without rebuilding the slides), and the editing UI now runs outside the deck so a deck cannot change your files. The security section below collects the results of seven review rounds.
843
+
844
+ ### Security
845
+
846
+ - `tools/get-fonts.mjs` downloads the fonts from a fixed commit of google/fonts, stops if a file is larger than expected and checks its SHA-256 before using it (it used the moving `main` branch without limits)
847
+ - SECURITY.md lists the residual risks accepted after the review of this version line
848
+
849
+ - **One bounded reader for untrusted files.** Every read of deck, workspace or portable-file data goes through `kit/bounded-read.mjs` (Node: `readRegular(path, {max})` — regular files only, `lstat` and `fstat` of the opened descriptor, non-blocking open, refused before reading when larger than `max`, at most `max` bytes read, growth refused) or `app/bounded-read.js` (browser: `readFileBounded(file, {max})` — `File.size` checked before `arrayBuffer()`, the bytes read checked after; `File.text()` is no longer used), sharing limits and errors in `kit/core/bounded-read-core.mjs`; the default limit is 32 MiB. New `tools/test-raw-reads.mjs` (in `npm test`) fails on any raw read (`readFileSync`, `fs.readFile`, `createReadStream`, `text()`, `arrayBuffer()`, …) outside these modules unless it is allowlisted, with a reason, as a read of trusted repository files. Routed through it: the dev server's and the editor's reads of `deck.html` (32 MiB), `narration.md` (16 MiB) and `comments.json` (4 MiB) — over the limit they answer 413 without reading, and refuse with 413 a save that would exceed it (previously `comments.json` was read whole and, if unreadable, overwritten); `npm run portable -- unpack`, which now refuses an input over the format's 100 MiB from the opened file's size before reading or copying it, and a FIFO without blocking; `npm run ids`, `kit/check.mjs`, `readNarration`, `render/` and the font-subset cache; the lab page's voice file.
850
+ - **Sizes are bytes.** The build's charged reader counts text in UTF-8 bytes: adapters may return `{text, bytes}` (`env.readTextBytes`, used by Node and the editor), and text from adapters that do not is charged its UTF-8 length, never its UTF-16 length (previously multi-byte text from a size-less adapter was undercounted up to three times).
851
+ - **Audio compression reads only what was charged.** The `.wav` source is read once through the bounded reader, up to the size charged for it (growth is refused), hashed from those bytes, and given to ffmpeg as a copy in a private temporary folder instead of reopening the original path.
852
+ - **Concurrent editor reads stay within the reservation.** Each of the up to 8 concurrent workspace reads of a build is capped at its listed size, which was reserved before dispatch; a file that grew since the listing is refused even within the limit. Previously each read was allowed the whole remaining budget (8 files listed as 1 B under a 64 B budget allocated 8 × 57 B before refusing).
853
+ - **Portable export projects every layer before building it.** The archive chunks are encoded only after the whole file has been checked; the index is checked from a lower bound before it is serialized (also against the reader's 4 MiB `indexBytes`), and the readable layer is counted in escaped characters (`&` → `&amp;`) while it is built and refused as soon as it would not fit. Previously the readable layer was built, escaped, before the whole-file check, and the index size was not checked.
854
+ - **Portable export shares the build's budget.** `exportPortable` (`--portable`, `--play-only`, the editor's export) creates one budget, passes it to the build and reads everything it reads itself — narration, the copied source, component and theme files, `voice.json`, `egatari.json`, audio and its segment metadata — through the same charged reader; audio is charged before compression too (also audio referenced from the archive). The projected size of the archive chunks is checked before they are encoded, and the whole file, including the readable layer, index and chunks inserted after the build, before it is joined. Previously these reads went around the budget: a 1 GiB `voice.json` or audio entry was read (and a 1 GiB MP3 produced), and the inserted layer was not size-checked.
855
+ - **Reads are reconciled with the bytes actually read, and only regular files are read** (format spec §11, `vendor/egatari-spec` synced to c576bb8). `env.size` is now an estimate: each read is charged max(estimate, actual), and a file that turns out larger than its reported size is refused (`build-too-large`, “changed while reading”). Reads get the number of bytes they may return. On Node the build checks the file with `lstat` and the opened descriptor with `fstat` (regular file, same file), opens it non-blocking and reads from that descriptor at most the allowed bytes, never `readFileSync` on an unchecked path; FIFOs, devices and sockets are refused with `build-not-a-file` before reading. The editor app re-checks `File.size` right before `arrayBuffer()` and charges the bytes read. Previously a finite `size()` suppressed the actual count (`size() => 0` let 32 bytes through a budget of 4), and a FIFO placed as an include or `tokens.css` passed the checks with size 0 and blocked the build in `readFileSync`.
856
+ - **Dev server: watchers stay inside the deck folder.** The deck folder, `audio/`, `data/`, `figs/` and `components/` are watched only if they are real folders inside the deck folder's real path (`lstat` / `realpath`); a symbolic link (also one pointing inside) is not watched, with one warning. Previously a symlinked `audio/` pointing elsewhere was watched, and changes there triggered rebuilds (nothing was read from it).
857
+ - **One read budget for the whole build.** Every file the build reads — source, includes, embeds, `theme.json`, `tokens.css`, logos and parent themes, components, narration, audio (also before compression), fonts and the runtime — now counts toward the include count and one aggregate read budget (`readChars`, 256 Mi), charged from the file size before reading (`env.size`), so an oversized file is refused with `build-too-large` without being read; logos and the whole output are size-checked before they are joined. Previously theme logos (10 001 were accepted), theme CSS and component scripts were not counted. The editor app no longer prefetches every small file of the folder: it reads only the files a build references (export too), at most 8 at a time, within the same budget checked from the listing, and stops starting reads when the build is stopped.
858
+ - **Build-worker messages are bound to their worker.** The editor app's build worker and portable-reader worker clients tie every request and reply to the worker object and generation that made it: replies and requests from a stopped or older worker are dropped, a worker's file requests are answered only to that worker and only for the workspace of one of its pending builds, request ids are unique across generations, and a deadline stops only the worker it belongs to. Previously a stopped worker's pending read reply could reach its replacement, whose ids had restarted.
859
+ - **Registry names are identifiers.** Registry `components[].name` and `themes[].name` in a portable file must match `^[a-z][a-z0-9-]{0,63}$` (format spec, `vendor/egatari-spec` synced to f031391); the reader refuses others, the writer does not record them, and `npm run portable -- unpack` compares registry components through a contained regular-file read under `components/`. Previously `name: "../../private"` passed validation and the CLI hashed a file outside the registry.
860
+ - **Editor backup cleanup deletes only backups.** The editor app's folder and in-memory workspaces now share the backup name rule (`kit/core/backup-name.mjs`) with the dev server's cleanup, and delete only `<time>-<name>` files directly in `.cache/edits/`; previously any file there beyond the newest 30 could be deleted.
861
+ - **No symbolic links followed out of a deck folder** ([format spec](https://github.com/egatari/egatari-spec) §11). All writes of the dev server (source edits, narration, comments, backups in `.cache/edits/`), `npm run ids`, `npm run portable -- unpack` / `pack`, the build's `out/` and `egatari.json` go through one helper (`kit/safe-fs.mjs`): it refuses when the file or any folder between the deck folder and it is a link (also an inside or dangling one), checks the real parent, and writes an exclusive temporary file that is synced and renamed over the target. Backup cleanup deletes only regular, backup-named files in a checked backup folder; previously a linked `comments.json` or `narration.md` let a save overwrite an outside file, and a linked `.cache/edits` received backups and lost its oldest entries. The build now checks components, `theme.json`, `tokens.css`, logos and every `extends` parent by real path against their authorized root (deck folder, `components/`, `themes/`) before reading, carrying the root through inheritance; previously a linked `tokens.css` or `index.js`, or an `extends` with `../` or an absolute path, put an outside file into the built deck. In the editor app, Chromium does not expose links in a picked folder (tested).
862
+ - **Classification parses with scripting enabled**, like the browser that shows the deck: `<noscript><p title="</noscript><script>…</script>"></p></noscript>` was read as an attribute by the classifier but ran in the preview. The build's boundary search, the portable reader and tier-A edits use the same mode.
863
+ - **Build limits and a build worker.** The build counts includes, embeds and formulas while expanding and stops with `build-too-large` (defaults: 10 000 includes and embeds, 64 Mi characters after preprocessing, 256 Mi after embedding, 500 000 tags per parse, 20 000 formulas; configurable). The editor app builds and classifies opened decks in a worker that is stopped after 60 s (`build-timeout`), so a deck that includes a small file 100 000 times no longer freezes the page.
864
+ - **A narration save no longer clears newer input.** The drawer keeps an edit revision; a save response marks it saved, and lets it follow the deck, only if nothing was typed after the save was sent. Otherwise the newer text stays, the drawer stays unsaved and the preview stays inert.
865
+ - **Code is classified on the built document.** Whether a deck can run code is decided from the document the build produces — after every include and preprocessing step, covering every file read as text whatever its extension, and on the same bytes that are rendered ([format spec](https://github.com/egatari/egatari-spec) §6). The build inserts its trusted parts (fonts and runtime CSS, the runtime scripts) at element boundaries found by parsing, not by regular expressions, reports where it put them, and classifies everything else; a trusted part that the deck's bytes swallow or break out of is not trusted. The editor app classifies the preview document itself instead of reading the folder a second time, and keeps the previous preview until the question about code is answered. A portable file is classified on its extracted source and on a build of it; exports take their profile from the same result. `<meta http-equiv="refresh">` counts as code.
866
+ - **Component formulas: one selection rule.** `m-curves` uses its data only when exactly one direct child `<script>` has the type `application/json` (trimmed, case-insensitive; any id). The classifier applies the same rule, treats several or nested data blocks as code, and checks every candidate formula, so a decoy block (for example `id="deck-…"`) cannot hide the formula that runs.
867
+ - **Dev server: no top-level preview.** `/preview` serves the deck only with a capability issued with the frame page (or presenter window) and `Sec-Fetch-Dest: iframe`; opened directly it returns a 403 text page that runs nothing. Tests check that a framed preview cannot reach an outside URL with `top.location`, `window.open`, a `target=_blank` link or `location.replace`.
868
+ - **Saves recheck their deck after every wait.** Portable saves and the folder writes recheck the workspace after the permission prompt, the save picker and while writing, abort the file write when another deck was opened, write the settings (new lesson id) and mark the deck saved only after the final write, and keep the unsaved mark when an edit happened during the save.
869
+ - **Bounded reading of portable files.** The reader parses with budgets for elements, attributes and nesting counted while parsing (`kit/core/bounded-html.mjs`) and limits the tags in the extracted source; the editor app stops a read after 30 s. A 90 MiB file of tiny elements is refused in under 0.1 s.
870
+ - **The preview is inert while you edit narration**, too, and hints from the deck do not open, close or switch panels while you edit in a trusted field.
871
+ - **The preview policy is in force before any deck byte.** The editor app builds the preview document (and the presenter view and its inner views, also in the single-file build) as a trusted prefix — doctype, `<html><head>`, `<meta charset>`, the policy `<meta>` and the trusted shim — followed by the built deck unchanged, instead of searching the deck's markup for `<head>` (which a comment, a `<template>`, an attribute value or an early `<script>` could defeat). The editor page's own policy now has `frame-src 'none'`, so a deck cannot navigate its frame to the app's origin or to a `data:` URL. `tools/test-security.mjs` (in `npm test`) tries eleven such documents against a page with the editor's policy.
872
+ - **Dev server: one framable preview endpoint.** The deck document moved to `/preview`, with a CSP `sandbox` directive (opaque origin even when opened directly); the deck's and the frame page's `frame-src` allow only that endpoint. Files of the deck folder under `/deck/…` all carry `Content-Security-Policy: sandbox; default-src 'none'` and `nosniff`; anything but audio, video, images and fonts is served as `text/plain` or `application/octet-stream` with `Content-Disposition: attachment`, so an HTML or SVG file placed in the folder never runs as a document.
873
+ - **Whether a deck can run code is decided from its content**, not from the profile a portable file declares ([format spec](https://github.com/egatari/egatari-spec) §6; `kit/core/code-scan.mjs`): scripts without a data type, event-handler attributes, `javascript:` URLs, `srcdoc`, embedded documents, included SVG or HTML with any of these, JavaScript files, and component formulas that are not plain arithmetic. A file declared “core” with code in it is asked about like any other, with a warning about the inconsistent label. Every preview and presenter-view load — including reloads, polling rebuilds and opening the presenter — goes through that question; Cancel also closes the current preview and presenter view. Exports use the same rule for their profile.
874
+ - **Sizes are checked before allocation** (format spec §11): the editor app refuses a file from `File.size` before reading it, the reader counts the extracted size per path (several paths may share one blob) before decoding, and the reader worker transfers each blob once with a path table instead of one copy per path.
875
+ - **Saves are bound to their workspace.** Each write is tied to the workspace and a generation counter captured when it starts; if another deck is opened meanwhile, it is cancelled with a message and nothing is written to either. Writes run one at a time, and the source (or narration) is read again right before writing: an outside change after the check gives a conflict instead of being overwritten. Portable saves are serialized and bound the same way.
876
+ - **Editing controls are outside the slide area.** The edit-mode bar, source box, note box and list and the narration drawer form one side panel next to the preview, under an orange marker bar (“Editing — app” / “Editing — dev server”) that the deck cannot draw outside its frame; while a source or note box is open, the preview is `inert`. Anything inside the slide area can be drawn by the deck; trust only controls in the editor's own panels.
877
+ - **The preview can no longer write.** In the dev server and in the editor app, the editing UI (source card, narration drawer, comment box and list; `server/editor-ui.js`) moved out of the deck into a trusted page: the dev server's new frame page at `/` (the deck is now an iframe at `/deck/`) and the editor app's own page. The deck runs in a sandboxed iframe with an opaque origin and only sends hints (`server/hints.js`: the element or step to open, a note position, the keys `e` / `n` / `c` / Esc, its position), which carry no text to write. The trusted UI reads the source itself, checks the range against the current build and the hash, and writes only when Save (or ⌘/Ctrl+Enter) is pressed in it. The editor app no longer answers write requests from the preview at all (`app-api` is gone), and `server/client.js` is replaced by `server/hints.js` and `server/editor-ui.js`
878
+ - Dev server: the per-run token is embedded only in the frame page, never in the deck document; `/__dev/` refuses `Origin: null` and cross-site `Sec-Fetch-Site` even with the token; text edits must name an element marked editable by the current build, narration edits a slide of the deck; the frame page cannot be framed (`frame-ancestors 'none'`)
879
+ - No network from the preview: the deck document gets a Content-Security-Policy with `connect-src 'none'`, every other resource from `data:` / `blob:` only (the dev server also allows its own `/deck/audio/`, and frames only `/preview`), no workers, forms or `<base>` — in the dev server as a response header, in the editor app as the first element of the preview document
880
+ - Editor app: before running a deck's own code — a portable file with the “extended” profile, or a folder with components (`.js` files) or scripts in `deck.html` — the editor says so and starts the preview only after “Start the preview” (Cancel opens nothing)
881
+ - `tools/hostile-deck.mjs`: a deck whose component and inline script try to write (old write messages and hints with forged text, reading the token, reaching the parent document, `fetch` / XHR / beacon to the write endpoints with and without a guessed token); `tools/test-dev-server.mjs` and `tools/test-app.mjs` check that nothing in the folder changes and that only Save in the trusted UI writes
882
+
883
+ ### Added
884
+
885
+ - Stable slide ids ([format spec](https://github.com/egatari/egatari-spec) §8.1): `<section class="slide" id="s-k3f9q2">` keys the slide, and `narration.md` addresses it as `## Heading {#s-k3f9q2}` (also `## s-k3f9q2`; plain `## Heading` stays for slides without id). The id wins over the heading text, so renaming a heading no longer breaks narration, audio or timing. Decks may mix slides with and without ids
886
+ - `npm run ids -- <deck>`: adds ids to the slides that lack one, rewrites the narration headings, and renames the keys in `audio/manifest.json`, `timeline.json`, `comments.json` and `data-morph` (audio is reused). Idempotent, keeps line endings, backs up to `.cache/edits/`, refuses decks with duplicate keys or id collisions
887
+ - `npm run new` gives every slide a random id and writes `{#id}` headings; the dev server and the editor app write `## Heading {#id}` when they add a narration section for a slide with an id
888
+ - Checker: errors for an invalid slide id, two slides with the same key, a slide id equal to another id or `\htmlId{…}` in the deck, and a narration section (also one without steps) that matches no slide; info when a `{#id}` heading's text differs from the slide's heading
889
+ - Extension lines `@x-<name>-<field> <value>` inside a narration step (format spec §8.2): excluded from turns, display text, TTS text, boundaries and digests, exposed by the parser as `ext` per step (`tools/narration-json.mjs` too), and kept verbatim by every edit path
890
+ - `vendor/egatari-spec/`: the JSON Schemas and test fixtures of the [portable deck format specification](https://github.com/egatari/egatari-spec), copied at a pinned commit by `node tools/sync-spec.mjs <clone>` (the commit is recorded in `SOURCE.json` there); the tests check the parser, the writer and the reader against them. Schemas are always loaded from this copy, never over the network
891
+ - Portable file: `node kit/build.mjs <deck.html> --portable` writes `out/<name>.ega.html`, one HTML file that plays like the normal build and also carries the deck's source (the files the build reads, `voice.json` without local paths) and its audio (stored once, AAC as with `--embed-audio`), following the [portable deck format](https://github.com/egatari/egatari-spec) draft. Comments, caches, backups, build output, credentials and unused audio stay out; registry components and themes are referenced by name, version and hash. A lesson id is kept in `egatari.json` in the deck folder, whose `metadata` may hold license, copyright, attribution and other descriptive fields
892
+ - `--play-only`: a copy without the source (keeps the audio, the lesson id and the license/copyright/attribution)
893
+ - `npm run portable -- unpack <file> <dir>` / `pack <dir>`: file ↔ folder. Unpacking reads the file as text without running it, checks every hash, size limit and path rule of the spec, and never writes outside `<dir>`; packing an unpacked folder gives the same file again
894
+ - The runtime plays audio stored inside the file (`<scheme>:<blobId>` references) as well as `data:` URIs, and ignores cue times of audio marked `sync: none`
895
+ - Checker: `slide key: legacy` warning for slides keyed by a hand-written `data-key` or by position (`s<n>`)
896
+ - Editor app: **open a portable file without a folder.** “Open file…” (first screen and toolbar) or drag and drop reads the file as bytes and extracts it in a Web Worker with the same reader as `npm run portable -- unpack` (nothing in it runs; the file is never loaded as a page), then edits it in memory with the usual preview, editing tools and quick check. “Save” overwrites the same file through its file handle (else asks where to save, or downloads), “Save as…” writes another file, and “Export folder…” writes the source and audio to an empty folder (a non-empty one is refused). Saving rebuilds the file with the editor's bundled kit and keeps the lesson id, the rights notices, unknown index members, extension data and the audio bytes. Steps whose narration changed are listed as stale (their audio is kept)
897
+ - Editor app: **rights prompt** before the first edit of an opened file: title, creators, copyright, license and attribution (shown as claims); a no-derivatives license (Creative Commons `-ND`, “All rights reserved”) or a copyright notice without a license needs an explicit confirmation ([format spec](https://github.com/egatari/egatari-spec) §7.3). The prompt also guards every write
898
+ - Editor app: a notice for files that bring their own code (scripts or deck-local components; see Security); refusal with the reason for broken or unsafe files; for a newer major version or an unknown required feature, only “Export folder…” (source extraction)
899
+ - Editor app: **saving a portable file without rebuilding** ([format spec](https://github.com/egatari/egatari-spec) §7.2, tier A, `kit/core/tier-a.mjs`). When only narration, audio or timing overrides changed, Save rewrites only the changed entries of the runtime narration, mark, timing and audio data, the changed steps of the readable layer, the source hash, the index and its hash, and the archived files, and appends a font supplement only for characters the embedded fonts lack. Every other byte of the file stays, including runtime code written by other producers or versions; edited steps keep their audio and show it as stale
900
+ - Editor app: when a slide was edited, Save rebuilds the file and first warns that slides you did not edit may look different (Cancel keeps the changes unsaved)
901
+ - Editor app: **Save as new lesson…** (a new `docId`, the original recorded as `derivedFrom`; copyright, attribution and creators kept) and **Save a copy…** (same `docId`) next to **Save**, which never sets or changes `derivedFrom`
902
+ - `tools/test-tier-a.mjs` (in `npm test`) with a region-aware diff (`tools/tier-a-diff.mjs`): `examples/minimal` and `examples/tmlr2026-calibration` with a narration edit that needs a new glyph and a changed `pad_after`, playback in headless Chrome, unpack and pack again, a file from another producer, unknown members, replaced audio, a new lesson, refusals. Document fixtures with unknown members at every level, and two files whose source cannot be extracted
903
+ - Editor app: “Export portable file” for an open folder (writes the lesson id into the folder's settings file the first time)
904
+ - Editor app: a workspace interface (`list`, `readBytes`, `readText`, `writeText`, `writeBytes`, `exists`, `backup`) with two implementations, the chosen folder and an in-memory folder (`app/workspace.js`, `app/memfs.js`); `tools/test-workspace.mjs` (in `npm test`) tests the in-memory folder, the rights rules and the portable-file workspace without a browser
905
+ - Portable file: audio entries in the runtime carry the audio media type (`mime`), and the runtime uses it instead of sniffing the bytes; the reader's “extract only” mode reads a newer major version with the 1.x rules (source extraction, no editing)
906
+ - `tools/test-portable.mjs` (in `npm test`) and `tools/portable-fixtures.mjs <dir>` (document fixtures for the spec: canary script, `</script>` break-out, path traversal, future major version, unknown required feature, bad hashes, missing chunk, oversize index, duplicate JSON members, …)
907
+
908
+ ### Changed
909
+
910
+ - Builds declare `unicode-range` on every embedded `@font-face`: subset fonts list the characters they keep, KaTeX fonts the characters of their `cmap` (precomputed in `kit/core/katex-ranges.mjs` by `node tools/katex-ranges.mjs`, so the command-line and editor builds stay byte-identical)
911
+ - Saving without rebuilding ([format spec](https://github.com/egatari/egatari-spec) §7.2): a font supplement is numbered one past the largest existing supplement, follows the last font style element, and has one `@font-face` per embedded face (family, weight, style) that lacks the new characters, so a file that embeds only weight 400 gets only 400
912
+ - Saving without rebuilding: removing a step's narration altogether also removes its audio record and audio data, with a warning (returned by `tierA()` and shown by the editor after saving); edited steps keep their audio as before (stale)
913
+ - Readable layer (§2.1): narration whose key matches no slide is left out and reported as a warning, by the portable writer and by saving without rebuilding; steps are in numeric order with `concl` last
914
+ - Saving without rebuilding (§9A): only the extension entries made from changed extension lines are rewritten; the version, other members, other steps and other extensions keep their bytes
915
+ - Dev server: `/` is a frame page around the deck (the deck document is at `/deck/`); `?presenter=1` on `/` opens a presenter window whose deck is sandboxed too, and the frame page relays its messages. The narration drawer sits beside the slide instead of over it, and typed input survives reloads (the save is refused if that part changed meanwhile)
916
+ - Editor app: the editing tools follow the editor's language (they followed the deck's language)
917
+ - Editor app: files whose runtime contract or registry component/theme hashes differ from the editor's open for narration, audio and timing edits only (saved without rebuilding) instead of read-only; read-only is left for files the editor cannot build, or that it can neither rebuild nor edit without rebuilding
918
+ - Editor app: the toolbar groups Open (folder / file), Save (new lesson / copy) and Export (HTML, portable file, folder, print) into menus and fits one row from 1280 px in both languages
919
+ - The rights prompt is shown each time a file is opened for editing, before the first change (as before; now stated in the docs as the spec requires)
920
+ - Reading a portable file: a file that requires a feature the reader does not implement can have its source extracted when the index and blobs validate (it was refused); a newer major version only when the index validates with the 1.x rules. Neither is ever edited or re-exported
921
+ - Rebuilding a portable file keeps members the editor does not know at every level of the index (metadata, audio records, blobs, components, themes, version), not only at the top; extensions made from extension lines that were deleted are no longer carried over
922
+ - `vendor/egatari-spec/` follows the spec at `0257ecc` (text only: derivation only with a new `docId`, extraction of unknown major versions and features, editors may add the settings file, unknown members at every level, rights prompt on every open)
923
+ - `vendor/egatari-spec/` follows the spec at `aea3c43` (theme entries with an optional path, optional audio media type, `null` input hash, C1 control characters in paths)
924
+ - Portable file: audio made from older narration is recorded with an input hash of `null` (unknown, treated as stale) instead of a made-up hash; unpacking and packing keep it. The readable layer without script is a `<section>`
925
+ - Reading a portable file refuses `audio/manifest.json` inside the archive and a settings file whose `docId` differs from the index, and treats a source hash recomputed from the files that differs from the index like a mismatch with the runtime metadata
926
+ - A slide's `id` now wins over a hand-written `data-key`
927
+ - Step numbers must be canonical (`0`–`999`, no leading zeros, or `concl`): `[01]` is no longer read as step 1 (build warns, the checker reports an error)
928
+ - Every `<` in the runtime JSON blocks is written as `\u003c`
929
+ - Duplicate slide keys are now a checker error (the build still adds `#2`, `#3`, … so the deck builds)
930
+ - Rewriting a narration step keeps the line ending of every other line (files with mixed CRLF/LF are no longer normalized)
931
+
932
+ ### Fixed
933
+
934
+ - Narration maps are prototype-free: slide keys such as `__proto__` or `constructor` no longer collide with `Object.prototype` (build and runtime)
935
+ - Extension-like lines were glued onto the previous turn's text
936
+ - Dev-server narration drawer: "next step is on another slide" was wrong for slide keys containing `:`
937
+ - Editor app: when a folder or file with its own code asked before starting the preview, the previous deck stayed visible (and running) behind the question; the preview is now emptied first (the iframe is replaced), so nothing of either deck is shown or runs until you choose
938
+ - Runtime key list: the check for the dev server no longer looks for the removed `server/client.js` script or the badge that moved out of the deck; it uses `DECK_DEV`, set by the hints script
939
+
940
+ ## [0.2.4] - 2026-10-18
941
+
942
+ ### Fixed
943
+
944
+ - Captions dropped the text before a `.` that is not followed by a space or the end of the text, such as a decimal point (`0.5`, `lr=0.01`), an abbreviation (`e.g.`) or `a.b.c`, and a text that was only `...` showed no caption at all. A `.` now ends a sentence only when a space or the end follows it (reported by @MnKoba in #1)
945
+
946
+ ### Security
947
+
948
+ - Low: the build could hang when a file it reads in the deck folder (an include, a theme's `tokens.css`, an embedded audio file) was a FIFO. It now reads only regular files and refuses anything else with an error
949
+ - Low: the dev server watched `audio/`, `data/`, `figs/` and `components/` even when they were symbolic links to folders outside the deck folder, so changes there caused repeated rebuilds (nothing outside was read into the output). Such links are no longer watched, with one warning
950
+ - Low: the dev server and the editor app read `comments.json`, `narration.md` and the deck file without a size limit, so a huge file could exhaust memory. They now refuse files over 8 MiB (`comments.json`, `narration.md`) or 32 MiB (the deck file) with HTTP 413 and write nothing
951
+
952
+ ## [0.2.3] - 2026-10-18
953
+
954
+ ### Fixed
955
+
956
+ - Dev server on Linux: after the first save, changes made outside the browser (in a text editor or by Claude Code) were no longer noticed, so the page did not reload. The 0.2.2 safe save replaces the file, and Node's recursive file watching on Linux watches each file. The deck folder and `audio/` are now watched as folders
957
+
958
+ ## [0.2.2] - 2026-10-18
959
+
960
+ A security release. It matters only if you build, check or serve a deck folder that you did not create yourself (for example, one downloaded or received from someone else). The editor app in Chromium is not affected by the first two items.
961
+
962
+ ### Security
963
+
964
+ - The dev server (`npm run dev`) no longer follows symbolic links placed in the deck folder when it saves. Up to 0.2.1, a deck folder that shipped `comments.json`, `narration.md` or `deck.html` as a link, or `.cache` or `.cache/edits` as a link to another folder, could make a save overwrite a file outside the deck folder, and the cleanup of old backups could delete files in that other folder. Saves now go through one checked path (`kit/safe-fs.mjs`): if the file or any folder on the way is a link, the save is refused with HTTP 403 and nothing is written; files are written to a temporary file and renamed into place. Reads of the deck, narration and comments are limited to the deck folder
965
+ - The build no longer reads files outside the deck folder through components and themes. Up to 0.2.1, a deck-local component (`components/<name>/index.js`), a theme's `tokens.css`, `theme.json` or logos, or a theme's `extends` (through `../`, an absolute path or a link) could pull the contents of a file outside the deck folder into the built HTML, contrary to what SECURITY.md said. Each of these is now checked against its allowed folder before it is read, through every level of `extends` (at most 16); anything outside is skipped with a `refused:` warning, and a refused theme falls back to `default`
966
+ - `kit/build.mjs` does not write `out/` through a link, and `tts/synth.py` stops before writing `audio/`, `.cache/voices/` or the files in them through a link
967
+ - Low: the cleanup of old backups in `.cache/edits/`, in both the dev server and the editor app, deleted any file there beyond the newest 30, not just backups. It now deletes only files with the backup name form (`<timestamp>-<name>`), shared by both through `kit/core/backup-name.mjs`
968
+ - SECURITY.md now says exactly what is and is not contained (see "What is not covered")
969
+
970
+ ### Added
971
+
972
+ - `tools/test-security.mjs` (in `npm test`): symbolic-link and `extends` cases for the dev server, the build, the build output and the TTS dry run
973
+
974
+ ## [0.2.1] - 2026-10-17
975
+
976
+ Windows support, bundled default voices, and a test page for TTS in the browser.
977
+
978
+ ### Added
979
+
980
+ - Windows: CI runs the tests and the tier-2 dry run on `windows-latest`; checked on a real Windows 11 PC (Japanese and space characters in paths, CRLF checkouts, PowerShell). README: setup with winget, installing the skills with directory junctions (no administrator rights needed), PowerShell versions of the video commands
981
+ - Microsoft Edge as a fallback browser for the checker, PDF and tests when Chrome is missing (Chrome → Edge → Playwright's Chromium)
982
+ - `node tools/get-fonts.mjs` downloads the BIZ UDPGothic TTF files without sh or curl (replaces `tools/get-fonts.sh`)
983
+ - Default reference voices are now included: `tts/voices/bob.wav` (Expert) and `alice.wav` (Novice), with English versions `bob_en.wav` and `alice_en.wav`. All are synthetic, 48 kHz, −20 LUFS; where they come from and their licenses are in `tts/voices/README.md`
984
+ - English decks use `<name>_en.wav` when it exists (a Japanese reference makes VoxCPM2 speak English with an accent)
985
+ - Reference voices that are not 48 kHz mono are converted before they are sent to the TTS server (a 16 kHz reference made the mlx server read faster)
986
+ - `lab/irodori.html` (on GitHub Pages): a test page that runs Irodori-TTS 500M-v3 in the browser on WebGPU, with determinism, reading-dictionary, speed and mlx-comparison tests and a JSON report
987
+
988
+ ### Changed
989
+
990
+ - **The default voice names are swapped to match the voices**: Expert = `bob`, Novice = `alice` (single speaker: `bob`). Decks that named `alice` or `bob` in `voice.json` or `--voices` now get the other voice
991
+ - Without uv, the build prints one line saying it skips subsetting, instead of a failure warning on stderr
992
+ - The Japanese template of `npm run new` uses 、。 punctuation
993
+
994
+ ### Fixed
995
+
996
+ - Windows: the component headers in built HTML used `\` paths, so the editor app and the command line built different files
997
+ - Windows: the TTS scripts failed to read Japanese text because Python used the system code page (cp1252/cp932); input, output and console are now UTF-8
998
+
999
+ ## [0.2.0] - 2026-10-16
1000
+
1001
+ The editor app (no install), accessibility and captions, and `npm run new`.
1002
+
1003
+ ### Added
1004
+
1005
+ - Editor app (no install): `npm run build:app` builds `dist/editor/` and a single-file `dist/editor.html`. Open a deck folder in Chrome/Edge (drag and drop or folder picker), edit text and narration, leave comments for Claude Code, export a single HTML, print to PDF — no Node or dev server needed
1006
+ - `kit/core/`: the build and narration parsing no longer depend on Node, so the CLI and the app share them
1007
+ - `npm run new -- <folder> [--lang en|ja] [--theme name] [--title "…"]` (`tools/new.mjs`): creates a new deck from a clean template (a cover and sample slides for steps, math with an attention mark, and a component, with narration for every step). It refuses to write into a folder that is not empty and prints the next steps. `npm test` now builds and checks the Japanese and English templates
1008
+ - English versions of the contract, the dev-server guide and the video guide (`docs/contract.md`, `docs/dev-server.md`, `docs/video.md`)
1009
+ - This changelog
1010
+ - Accessibility: screen-reader announcements of slide and step changes (`aria-live`), hidden slides made `inert`, labelled and keyboard-focusable control-bar, presenter and overview buttons, math exposed as MathML
1011
+ - Captions: `s` key / CC button / `?captions=1` show the current step's narration at the bottom of the slide; `render.mjs --captions` burns them into the video
1012
+ - Checker: warns about images without `alt` and SVG figures without an accessible name
1013
+ - Caption size: `Shift+s` cycles S / M / L (22 / 27 / 34px) with a brief notice, `?capsize=s|m|l`, the last choice is remembered; theme variables `--cap-size`, `--cap-bottom`, `--cap-side`, `--cap-max-lines`, `--cap-rate`
1014
+ - Pen color: the pen buttons in the control bar show the current color, and while a pen is active Red / Blue / Black swatches appear next to them (also in the presenter view, synced with the main window); changing the color shows "Pen color: Blue" and the bottom-left indicator names the color
1015
+
1016
+ ### Changed
1017
+
1018
+ - Captions while presenting by hand show one sentence group (about two lines, at most three) at a time and advance at reading speed (ja 7, en 15 characters/s), restarting at every step change, instead of stacking the whole step over the slide. Video mode (`?mode=video&captions=1`) is unchanged
1019
+ - The Japanese docs moved to `docs/contract.ja.md`, `docs/dev-server.ja.md` and `docs/video.ja.md`, following the scheme of `docs/reference.md` / `docs/reference.ja.md` (English = `.md`, Japanese = `.ja.md`). All links in the repository were updated
1020
+ - On a Mac, the help screen, the dev-server badge and the docs label the comment shortcut as ⌥ option + click instead of Alt + click
1021
+
1022
+ ### Fixed
1023
+
1024
+ - The Black pen swatch and color dots now have a solid white ring, so they stay visible on the dark control bar and in the presenter view
1025
+
1026
+ ## [0.1.0] - 2026-10-16
1027
+
1028
+ First public release.
1029
+
1030
+ ### Added
1031
+
1032
+ - **Decks as a single HTML file**: `kit/build.mjs` turns `deck.html` (+ `narration.md`) into one self-contained file with fonts, KaTeX math and local images, videos and stylesheets embedded; it works offline
1033
+ - **Steps** (`data-step`), with the conclusion line (`.concl`) always last, and **three modes** from one source: talk, lecture (everything visible, current step highlighted) and video
1034
+ - **Math** rendered with KaTeX at build time, with theme-colored highlights (`\hlE`, `\hlT`, `\hlM`) and per-deck macros (`macros.tex`)
1035
+ - **Animated figure components** (Web Components) whose screen depends only on (slide, step, time): `m-sweep`, `m-curves`, `m-flow`, `m-collect`, `m-seq`, with a generated catalog (`components/CATALOG.md`)
1036
+ - **Attention marks** (`{mark:ID|effect}` in the narration): hand-drawn underline, circle, box, spotlight and laser dot, timed to the narration
1037
+ - **Morph transitions** (`data-morph`, `\morph{ID}{…}`, `data-id`) that slide equations and elements from the previous slide
1038
+ - **Presenter tools**: presenter view with speaker notes and timer, slide overview, laser pointer, pen and fading pen, a control bar, a key list (`?`), and a feedback link that sends no slide content
1039
+ - **Themes** derived from one base color (`themes/<name>/tokens.css`, optional `theme.json` with `extends` and logos): `default`, plus the institutional themes `tml`, `tcue`, `wsd` and `ohte`
1040
+ - **Checker** (`kit/check.mjs`): overflow, text size, steps, narration coverage, contrast, component determinism, marks and morphs, with Japanese and English rules
1041
+ - **Dev server** (`server/dev.mjs`, default port 8730): live reload, in-browser editing of the source and the narration, comments for Claude Code in `comments.json`, local-only with a per-start token
1042
+ - **PDF** export (`tools/pdf.mjs`), one page per slide
1043
+ - **Narrated video (optional tier 2)**: TTS through an OpenAI-compatible speech server (`tts/synth.py`, Irodori-TTS for Japanese, VoxCPM2 for other languages) with a reading dictionary and caching, frame-exact rendering to per-step MP4 clips and a full video (`render/render.mjs`), a lesson bundle for canon (`render/export-canon.mjs`), and self-playing HTML with embedded AAC audio (`--embed-audio`)
1044
+ - **Claude Code skills**: `motion-slides`, `motion-slides-video` and `motion-components`
1045
+ - **Examples**: `examples/minimal` (Japanese, gradient descent) and `examples/tmlr2026-calibration` (English, a TMLR 2026 paper)
1046
+ - Docs: README (English and Japanese), the contract (`docs/contract.md`), a reference of every option, syntax and key (`docs/reference.md`, `docs/reference.ja.md`), guides for the dev server and video, CONTRIBUTING, SECURITY, issue forms
1047
+ - Tests (`npm test`) and GitHub Actions running them on Node 22 and 24, plus a TTS dry-run through video export
1048
+
1049
+ [Unreleased]: https://github.com/egatari/egatari-studio/compare/v0.6.4...HEAD
1050
+ [0.6.4]: https://github.com/egatari/egatari-studio/compare/v0.6.3...v0.6.4
1051
+ [0.6.3]: https://github.com/egatari/egatari-studio/compare/v0.6.2...v0.6.3
1052
+ [0.6.2]: https://github.com/egatari/egatari-studio/compare/v0.6.1...v0.6.2
1053
+ [0.6.1]: https://github.com/egatari/egatari-studio/compare/v0.6.0...v0.6.1
1054
+ [0.6.0]: https://github.com/egatari/egatari-studio/compare/v0.4.8...v0.6.0
1055
+ [0.4.8]: https://github.com/egatari/egatari-studio/compare/v0.4.7...v0.4.8
1056
+ [0.4.7]: https://github.com/egatari/egatari-studio/compare/v0.4.6...v0.4.7
1057
+ [0.4.6]: https://github.com/egatari/egatari-studio/compare/v0.4.5...v0.4.6
1058
+ [0.4.5]: https://github.com/egatari/egatari-studio/compare/v0.4.4...v0.4.5
1059
+ [0.4.4]: https://github.com/egatari/egatari-studio/compare/v0.4.3...v0.4.4
1060
+ [0.4.3]: https://github.com/egatari/egatari-studio/compare/v0.4.2...v0.4.3
1061
+ [0.4.2]: https://github.com/egatari/egatari-studio/compare/v0.4.1...v0.4.2
1062
+ [0.4.1]: https://github.com/egatari/egatari-studio/compare/v0.4.0...v0.4.1
1063
+ [0.4.0]: https://github.com/egatari/egatari-studio/compare/v0.3.1...v0.4.0
1064
+ [0.3.1]: https://github.com/egatari/egatari-studio/compare/v0.3.0...v0.3.1
1065
+ [0.3.0]: https://github.com/egatari/egatari-studio/compare/v0.2.4...v0.3.0
1066
+ [0.2.4]: https://github.com/egatari/egatari-studio/compare/v0.2.3...v0.2.4
1067
+ [0.2.3]: https://github.com/egatari/egatari-studio/compare/v0.2.2...v0.2.3
1068
+ [0.2.2]: https://github.com/egatari/egatari-studio/compare/v0.2.1...v0.2.2
1069
+ [0.2.1]: https://github.com/egatari/egatari-studio/compare/v0.2.0...v0.2.1
1070
+ [0.2.0]: https://github.com/egatari/egatari-studio/compare/v0.1.0...v0.2.0
1071
+ [0.1.0]: https://github.com/egatari/egatari-studio/releases/tag/v0.1.0