allyhub 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (643) hide show
  1. package/dist/commands/add.js +2 -2
  2. package/dist/commands/auth.js +4 -4
  3. package/dist/commands/cloud-tools.js +9 -10
  4. package/dist/commands/dev.js +1 -1
  5. package/dist/commands/doctor.js +4 -4
  6. package/dist/commands/frames/piece.js +1 -1
  7. package/dist/commands/frames.js +6 -6
  8. package/dist/commands/index.js +1 -1
  9. package/dist/commands/inspect/contrast.js +1 -1
  10. package/dist/commands/inspect/layout.js +1 -1
  11. package/dist/commands/orgs.js +2 -2
  12. package/dist/commands/render.js +2 -2
  13. package/dist/commands/sheet.js +2 -2
  14. package/dist/commands/slides.js +3 -0
  15. package/dist/main.js +3 -3
  16. package/dist/text/facts-text.js +5 -5
  17. package/dist/text/format.js +2 -2
  18. package/dist/works.js +1 -1
  19. package/editor-web/assets/browser-B31cR_c2.js +105 -0
  20. package/editor-web/assets/dist-6TNEuNMX.js +4 -0
  21. package/editor-web/assets/dist-Cm2TIjW5.js +2 -0
  22. package/editor-web/assets/dist-Cpt0p8bX.js +6 -0
  23. package/editor-web/assets/dist-D2GccKEJ.js +1 -0
  24. package/editor-web/assets/dist-Z0zvYXmu.js +233 -0
  25. package/editor-web/assets/dist-fs4ONrUV.js +32 -0
  26. package/editor-web/assets/index-CAcsAZ9u.js +70 -0
  27. package/editor-web/assets/index-DlcJckhO.css +2 -0
  28. package/editor-web/assets/list-D2v7U8K8.js +1 -0
  29. package/editor-web/assets/react-D0RmGe2w.js +101 -0
  30. package/editor-web/assets/rolldown-runtime-XKyaHtl9.js +1 -0
  31. package/editor-web/assets/text-align-start-B3k2cx5f.js +1 -0
  32. package/editor-web/assets/undo-2-Ecr7-Obc.js +1 -0
  33. package/editor-web/index.html +4 -4
  34. package/node_modules/@allyhub-next/audio/package.json +1 -1
  35. package/node_modules/@allyhub-next/browser/package.json +1 -1
  36. package/node_modules/@allyhub-next/build/dist/data.js +1 -1
  37. package/node_modules/@allyhub-next/build/dist/meta-worker.d.ts +10 -0
  38. package/node_modules/@allyhub-next/build/dist/meta-worker.js +2 -2
  39. package/node_modules/@allyhub-next/build/dist/model-info.js +2 -1
  40. package/node_modules/@allyhub-next/build/dist/plugin.d.ts +2 -0
  41. package/node_modules/@allyhub-next/build/dist/plugin.js +9 -8
  42. package/node_modules/@allyhub-next/build/dist/prepare.d.ts +13 -1
  43. package/node_modules/@allyhub-next/build/dist/prepare.js +2 -2
  44. package/node_modules/@allyhub-next/build/dist/scan.d.ts +1 -1
  45. package/node_modules/@allyhub-next/build/dist/scan.js +1 -1
  46. package/node_modules/@allyhub-next/build/dist/types.js +3 -3
  47. package/node_modules/@allyhub-next/build/package.json +1 -1
  48. package/node_modules/@allyhub-next/check/dist/check.js +3 -3
  49. package/node_modules/@allyhub-next/check/dist/generated.d.ts +1 -1
  50. package/node_modules/@allyhub-next/check/package.json +1 -1
  51. package/node_modules/@allyhub-next/cloud/dist/index.js +1 -1
  52. package/node_modules/@allyhub-next/cloud/dist/signin.js +2 -2
  53. package/node_modules/@allyhub-next/cloud/dist/token.js +1 -1
  54. package/node_modules/@allyhub-next/cloud/package.json +1 -1
  55. package/node_modules/@allyhub-next/components/package.json +1 -1
  56. package/node_modules/@allyhub-next/dev-server/dist/card.d.ts +2 -11
  57. package/node_modules/@allyhub-next/dev-server/dist/card.js +1 -1
  58. package/node_modules/@allyhub-next/dev-server/dist/exports.d.ts +2 -2
  59. package/node_modules/@allyhub-next/dev-server/dist/exports.js +1 -1
  60. package/node_modules/@allyhub-next/dev-server/dist/index.d.ts +1 -1
  61. package/node_modules/@allyhub-next/dev-server/dist/index.js +1 -1
  62. package/node_modules/@allyhub-next/dev-server/dist/live.d.ts +3 -0
  63. package/node_modules/@allyhub-next/dev-server/dist/live.js +1 -1
  64. package/node_modules/@allyhub-next/dev-server/dist/project.d.ts +3 -0
  65. package/node_modules/@allyhub-next/dev-server/dist/project.js +1 -1
  66. package/node_modules/@allyhub-next/dev-server/dist/reveal.d.ts +6 -0
  67. package/node_modules/@allyhub-next/dev-server/dist/reveal.js +2 -0
  68. package/node_modules/@allyhub-next/dev-server/dist/server.js +1 -1
  69. package/node_modules/@allyhub-next/dev-server/dist/stage.d.ts +2 -0
  70. package/node_modules/@allyhub-next/dev-server/dist/stage.js +22 -2
  71. package/node_modules/@allyhub-next/dev-server/dist/tools.d.ts +2 -0
  72. package/node_modules/@allyhub-next/dev-server/dist/tools.js +1 -1
  73. package/node_modules/@allyhub-next/dev-server/package.json +1 -1
  74. package/node_modules/@allyhub-next/doc/dist/docx.d.ts +28 -0
  75. package/node_modules/@allyhub-next/doc/dist/docx.js +4 -0
  76. package/node_modules/@allyhub-next/doc/dist/html.d.ts +3 -0
  77. package/node_modules/@allyhub-next/doc/dist/html.js +1 -1
  78. package/node_modules/@allyhub-next/doc/package.json +5 -1
  79. package/node_modules/@allyhub-next/export/dist/deck-fonts.d.ts +24 -0
  80. package/node_modules/@allyhub-next/export/dist/deck-fonts.js +2 -0
  81. package/node_modules/@allyhub-next/export/dist/deck-pptx.d.ts +12 -0
  82. package/node_modules/@allyhub-next/export/dist/deck-pptx.js +2 -0
  83. package/node_modules/@allyhub-next/export/dist/export.d.ts +12 -3
  84. package/node_modules/@allyhub-next/export/dist/export.js +2 -2
  85. package/node_modules/@allyhub-next/export/dist/index.d.ts +1 -0
  86. package/node_modules/@allyhub-next/export/dist/index.js +1 -1
  87. package/node_modules/@allyhub-next/export/dist/names.d.ts +11 -6
  88. package/node_modules/@allyhub-next/export/dist/names.js +1 -1
  89. package/node_modules/@allyhub-next/export/package.json +1 -1
  90. package/node_modules/@allyhub-next/formats/dist/data/script.d.ts +22 -0
  91. package/node_modules/@allyhub-next/formats/dist/data/script.js +1 -1
  92. package/node_modules/@allyhub-next/formats/dist/data/slides.d.ts +1494 -0
  93. package/node_modules/@allyhub-next/formats/dist/data/slides.js +2 -0
  94. package/node_modules/@allyhub-next/formats/dist/index.d.ts +2 -0
  95. package/node_modules/@allyhub-next/formats/dist/index.js +1 -1
  96. package/node_modules/@allyhub-next/formats/dist/items.d.ts +21 -0
  97. package/node_modules/@allyhub-next/formats/dist/items.js +1 -1
  98. package/node_modules/@allyhub-next/formats/dist/note-shape.d.ts +39 -0
  99. package/node_modules/@allyhub-next/formats/dist/note-shape.js +2 -0
  100. package/node_modules/@allyhub-next/formats/dist/schemas.d.ts +418 -0
  101. package/node_modules/@allyhub-next/formats/dist/schemas.js +1 -1
  102. package/node_modules/@allyhub-next/formats/package.json +1 -1
  103. package/node_modules/@allyhub-next/measure/dist/index.d.ts +1 -1
  104. package/node_modules/@allyhub-next/measure/dist/index.js +1 -1
  105. package/node_modules/@allyhub-next/measure/dist/overlay.d.ts +14 -1
  106. package/node_modules/@allyhub-next/measure/dist/overlay.js +1 -1
  107. package/node_modules/@allyhub-next/measure/package.json +1 -1
  108. package/node_modules/@allyhub-next/media/dist/asr/parakeet.d.ts +1 -4
  109. package/node_modules/@allyhub-next/media/dist/asr/parakeet.js +4 -4
  110. package/node_modules/@allyhub-next/media/dist/asr/transcribe.d.ts +1 -1
  111. package/node_modules/@allyhub-next/media/dist/asr/transcribe.js +1 -1
  112. package/node_modules/@allyhub-next/media/dist/grid.d.ts +3 -3
  113. package/node_modules/@allyhub-next/media/dist/grid.js +5 -5
  114. package/node_modules/@allyhub-next/media/dist/local.d.ts +3 -0
  115. package/node_modules/@allyhub-next/media/dist/local.js +1 -1
  116. package/node_modules/@allyhub-next/media/dist/ocr/tesseract.d.ts +8 -2
  117. package/node_modules/@allyhub-next/media/dist/ocr/tesseract.js +1 -1
  118. package/node_modules/@allyhub-next/media/dist/ocr/text.js +3 -3
  119. package/node_modules/@allyhub-next/media/dist/ocr/worker.js +1 -1
  120. package/node_modules/@allyhub-next/media/dist/sheet.js +3 -3
  121. package/node_modules/@allyhub-next/media/dist/tools.d.ts +11 -1
  122. package/node_modules/@allyhub-next/media/dist/tools.js +1 -1
  123. package/node_modules/@allyhub-next/media/dist/vision/faces.js +1 -1
  124. package/node_modules/@allyhub-next/media/dist/vision/matte.js +1 -1
  125. package/node_modules/@allyhub-next/media/dist/vision/runtime.d.ts +1 -1
  126. package/node_modules/@allyhub-next/media/dist/vision/runtime.js +2 -2
  127. package/node_modules/@allyhub-next/media/dist/worker-process.d.ts +1 -1
  128. package/node_modules/@allyhub-next/media/dist/worker-process.js +1 -1
  129. package/node_modules/@allyhub-next/media/package.json +1 -1
  130. package/node_modules/@allyhub-next/model/dist/build-job.d.ts +2 -0
  131. package/node_modules/@allyhub-next/model/dist/build-worker.js +1 -1
  132. package/node_modules/@allyhub-next/model/dist/build.d.ts +10 -0
  133. package/node_modules/@allyhub-next/model/dist/build.js +2 -1
  134. package/node_modules/@allyhub-next/model/package.json +1 -1
  135. package/node_modules/@allyhub-next/project/dist/digest.d.ts +1 -3
  136. package/node_modules/@allyhub-next/project/dist/digest.js +1 -1
  137. package/node_modules/@allyhub-next/project/dist/page.d.ts +0 -5
  138. package/node_modules/@allyhub-next/project/dist/page.js +2 -2
  139. package/node_modules/@allyhub-next/project/dist/session.js +1 -1
  140. package/node_modules/@allyhub-next/project/package.json +1 -1
  141. package/node_modules/@allyhub-next/protocol/dist/app.d.ts +0 -64
  142. package/node_modules/@allyhub-next/protocol/dist/app.js +1 -1
  143. package/node_modules/@allyhub-next/protocol/dist/auth.d.ts +0 -17
  144. package/node_modules/@allyhub-next/protocol/dist/auth.js +1 -1
  145. package/node_modules/@allyhub-next/protocol/dist/cli.d.ts +0 -4
  146. package/node_modules/@allyhub-next/protocol/dist/cli.js +1 -1
  147. package/node_modules/@allyhub-next/protocol/dist/editor.d.ts +9 -26
  148. package/node_modules/@allyhub-next/protocol/dist/editor.js +1 -1
  149. package/node_modules/@allyhub-next/protocol/dist/index.d.ts +1 -0
  150. package/node_modules/@allyhub-next/protocol/dist/index.js +1 -1
  151. package/node_modules/@allyhub-next/protocol/dist/notes.d.ts +163 -0
  152. package/node_modules/@allyhub-next/protocol/dist/notes.js +2 -0
  153. package/node_modules/@allyhub-next/protocol/dist/registry.d.ts +1 -1
  154. package/node_modules/@allyhub-next/protocol/dist/runtimes.d.ts +3 -0
  155. package/node_modules/@allyhub-next/protocol/dist/runtimes.js +1 -1
  156. package/node_modules/@allyhub-next/protocol/dist/tools.d.ts +37 -0
  157. package/node_modules/@allyhub-next/protocol/dist/tools.js +1 -1
  158. package/node_modules/@allyhub-next/protocol/package.json +1 -1
  159. package/node_modules/@allyhub-next/registry/dist/registry.js +1 -1
  160. package/node_modules/@allyhub-next/registry/package.json +1 -1
  161. package/node_modules/@allyhub-next/render/dist/doc/index.d.ts +1 -1
  162. package/node_modules/@allyhub-next/render/dist/doc/index.js +1 -1
  163. package/node_modules/@allyhub-next/render/dist/doc/print.d.ts +11 -0
  164. package/node_modules/@allyhub-next/render/dist/doc/print.js +17 -1
  165. package/node_modules/@allyhub-next/render/dist/exports.d.ts +29 -4
  166. package/node_modules/@allyhub-next/render/dist/exports.js +2 -2
  167. package/node_modules/@allyhub-next/render/dist/page.d.ts +11 -1
  168. package/node_modules/@allyhub-next/render/dist/render.d.ts +2 -0
  169. package/node_modules/@allyhub-next/render/dist/render.js +2 -2
  170. package/node_modules/@allyhub-next/render/package.json +1 -1
  171. package/node_modules/@allyhub-next/runtime/LICENSE +241 -0
  172. package/node_modules/@allyhub-next/runtime/dist/bridge.d.ts +13 -3
  173. package/node_modules/@allyhub-next/runtime/dist/clock.js +1 -1
  174. package/node_modules/@allyhub-next/runtime/dist/env.js +1 -1
  175. package/node_modules/@allyhub-next/runtime/dist/facade.js +1 -1
  176. package/node_modules/@allyhub-next/runtime/dist/footage.js +1 -1
  177. package/node_modules/@allyhub-next/runtime/dist/frame.js +1 -1
  178. package/node_modules/@allyhub-next/runtime/dist/index.d.ts +2 -0
  179. package/node_modules/@allyhub-next/runtime/dist/index.js +1 -1
  180. package/node_modules/@allyhub-next/runtime/dist/locate.d.ts +11 -0
  181. package/node_modules/@allyhub-next/runtime/dist/locate.js +2 -0
  182. package/node_modules/@allyhub-next/runtime/dist/measure.d.ts +2 -1
  183. package/node_modules/@allyhub-next/runtime/dist/measure.js +1 -1
  184. package/node_modules/@allyhub-next/runtime/dist/music.js +1 -1
  185. package/node_modules/@allyhub-next/runtime/dist/output.js +1 -1
  186. package/node_modules/@allyhub-next/runtime/dist/piece.d.ts +5 -9
  187. package/node_modules/@allyhub-next/runtime/dist/piece.js +2 -2
  188. package/node_modules/@allyhub-next/runtime/dist/player/player.js +1 -1
  189. package/node_modules/@allyhub-next/runtime/dist/reads.d.ts +2 -0
  190. package/node_modules/@allyhub-next/runtime/dist/reads.js +1 -1
  191. package/node_modules/@allyhub-next/runtime/dist/sound.js +1 -1
  192. package/node_modules/@allyhub-next/runtime/dist/stage-kit.d.ts +12 -0
  193. package/node_modules/@allyhub-next/runtime/dist/stage-kit.js +2 -0
  194. package/node_modules/@allyhub-next/runtime/package.json +5 -6
  195. package/node_modules/@allyhub-next/runtimes/dist/errors.d.ts +5 -1
  196. package/node_modules/@allyhub-next/runtimes/dist/index.d.ts +1 -0
  197. package/node_modules/@allyhub-next/runtimes/dist/index.js +1 -1
  198. package/node_modules/@allyhub-next/runtimes/dist/node-program.d.ts +3 -0
  199. package/node_modules/@allyhub-next/runtimes/dist/node-program.js +2 -0
  200. package/node_modules/@allyhub-next/runtimes/dist/packages.d.ts +65 -0
  201. package/node_modules/@allyhub-next/runtimes/dist/packages.js +4 -0
  202. package/node_modules/@allyhub-next/runtimes/dist/runtimes.js +2 -2
  203. package/node_modules/@allyhub-next/runtimes/dist/unpack.d.ts +7 -0
  204. package/node_modules/@allyhub-next/runtimes/dist/unpack.js +1 -1
  205. package/node_modules/@allyhub-next/runtimes/package.json +5 -1
  206. package/node_modules/@allyhub-next/runtimes/pins/docx/package-lock.json +67 -0
  207. package/node_modules/@allyhub-next/runtimes/pins/docx/package.json +9 -0
  208. package/node_modules/@allyhub-next/runtimes/pins/exceljs/package-lock.json +2533 -0
  209. package/node_modules/@allyhub-next/runtimes/pins/exceljs/package.json +8 -0
  210. package/node_modules/@allyhub-next/runtimes/pins/gltf-tools/package-lock.json +753 -0
  211. package/node_modules/@allyhub-next/runtimes/pins/gltf-tools/package.json +14 -0
  212. package/node_modules/@allyhub-next/runtimes/pins/manifold-3d/package-lock.json +950 -0
  213. package/node_modules/@allyhub-next/runtimes/pins/manifold-3d/package.json +8 -0
  214. package/node_modules/@allyhub-next/runtimes/pins/onnxruntime-node/package-lock.json +227 -0
  215. package/node_modules/@allyhub-next/runtimes/pins/onnxruntime-node/package.json +8 -0
  216. package/node_modules/@allyhub-next/runtimes/pins/sherpa-onnx-node/package-lock.json +105 -0
  217. package/node_modules/@allyhub-next/runtimes/pins/sherpa-onnx-node/package.json +8 -0
  218. package/node_modules/@allyhub-next/runtimes/pins/tesseract.js/package-lock.json +128 -0
  219. package/node_modules/@allyhub-next/runtimes/pins/tesseract.js/package.json +9 -0
  220. package/node_modules/@allyhub-next/runtimes/schemas/runtimes.schema.json +5 -24
  221. package/node_modules/@allyhub-next/scaffold/dist/index.js +3 -3
  222. package/node_modules/@allyhub-next/scaffold/package.json +1 -1
  223. package/node_modules/@allyhub-next/scenery/package.json +1 -1
  224. package/node_modules/@allyhub-next/scenery-host/dist/bundle.d.ts +2 -2
  225. package/node_modules/@allyhub-next/scenery-host/dist/bundle.js +3 -3
  226. package/node_modules/@allyhub-next/scenery-host/dist/viewer.d.ts +11 -0
  227. package/node_modules/@allyhub-next/scenery-host/dist/viewer.js +1 -1
  228. package/node_modules/@allyhub-next/scenery-host/package.json +1 -1
  229. package/node_modules/@allyhub-next/sheet/package.json +1 -1
  230. package/node_modules/@allyhub-next/site/dist/media.js +2 -2
  231. package/node_modules/@allyhub-next/site/package.json +1 -1
  232. package/node_modules/@allyhub-next/slides-core/LICENSE +241 -0
  233. package/node_modules/@allyhub-next/slides-core/dist/animation.d.ts +129 -0
  234. package/node_modules/@allyhub-next/slides-core/dist/animation.js +2 -0
  235. package/node_modules/@allyhub-next/slides-core/dist/api.d.ts +649 -0
  236. package/node_modules/@allyhub-next/slides-core/dist/api.js +4 -0
  237. package/node_modules/@allyhub-next/slides-core/dist/capabilities.d.ts +18 -0
  238. package/node_modules/@allyhub-next/slides-core/dist/capabilities.js +2 -0
  239. package/node_modules/@allyhub-next/slides-core/dist/chart-api.d.ts +165 -0
  240. package/node_modules/@allyhub-next/slides-core/dist/chart-api.js +2 -0
  241. package/node_modules/@allyhub-next/slides-core/dist/chart-file.d.ts +11 -0
  242. package/node_modules/@allyhub-next/slides-core/dist/chart-file.js +2 -0
  243. package/node_modules/@allyhub-next/slides-core/dist/chart.d.ts +184 -0
  244. package/node_modules/@allyhub-next/slides-core/dist/chart.js +2 -0
  245. package/node_modules/@allyhub-next/slides-core/dist/check.d.ts +7 -0
  246. package/node_modules/@allyhub-next/slides-core/dist/check.js +2 -0
  247. package/node_modules/@allyhub-next/slides-core/dist/enums.d.ts +146 -0
  248. package/node_modules/@allyhub-next/slides-core/dist/enums.js +2 -0
  249. package/node_modules/@allyhub-next/slides-core/dist/file.d.ts +109 -0
  250. package/node_modules/@allyhub-next/slides-core/dist/file.js +4 -0
  251. package/node_modules/@allyhub-next/slides-core/dist/index.d.ts +21 -0
  252. package/node_modules/@allyhub-next/slides-core/dist/index.js +2 -0
  253. package/node_modules/@allyhub-next/slides-core/dist/measure.d.ts +34 -0
  254. package/node_modules/@allyhub-next/slides-core/dist/measure.js +2 -0
  255. package/node_modules/@allyhub-next/slides-core/dist/model.d.ts +278 -0
  256. package/node_modules/@allyhub-next/slides-core/dist/model.js +2 -0
  257. package/node_modules/@allyhub-next/slides-core/dist/office.d.ts +58 -0
  258. package/node_modules/@allyhub-next/slides-core/dist/office.js +2 -0
  259. package/node_modules/@allyhub-next/slides-core/dist/path.d.ts +6 -0
  260. package/node_modules/@allyhub-next/slides-core/dist/path.js +2 -0
  261. package/node_modules/@allyhub-next/slides-core/dist/placeholders.d.ts +7 -0
  262. package/node_modules/@allyhub-next/slides-core/dist/placeholders.js +2 -0
  263. package/node_modules/@allyhub-next/slides-core/dist/resolve.d.ts +181 -0
  264. package/node_modules/@allyhub-next/slides-core/dist/resolve.js +2 -0
  265. package/node_modules/@allyhub-next/slides-core/dist/script.d.ts +43 -0
  266. package/node_modules/@allyhub-next/slides-core/dist/script.js +3 -0
  267. package/node_modules/@allyhub-next/slides-core/dist/stage.d.ts +63 -0
  268. package/node_modules/@allyhub-next/slides-core/dist/stage.js +2 -0
  269. package/node_modules/@allyhub-next/slides-core/dist/strict.d.ts +23 -0
  270. package/node_modules/@allyhub-next/slides-core/dist/strict.js +2 -0
  271. package/node_modules/@allyhub-next/slides-core/dist/theme.d.ts +72 -0
  272. package/node_modules/@allyhub-next/slides-core/dist/theme.js +2 -0
  273. package/node_modules/@allyhub-next/slides-core/dist/units.d.ts +35 -0
  274. package/node_modules/@allyhub-next/slides-core/dist/units.js +2 -0
  275. package/node_modules/@allyhub-next/slides-core/package.json +14 -0
  276. package/node_modules/@allyhub-next/slides-pptx/LICENSE +241 -0
  277. package/node_modules/@allyhub-next/slides-pptx/dist/charts.d.ts +6 -0
  278. package/node_modules/@allyhub-next/slides-pptx/dist/charts.js +2 -0
  279. package/node_modules/@allyhub-next/slides-pptx/dist/fonts.d.ts +45 -0
  280. package/node_modules/@allyhub-next/slides-pptx/dist/fonts.js +2 -0
  281. package/node_modules/@allyhub-next/slides-pptx/dist/import.d.ts +18 -0
  282. package/node_modules/@allyhub-next/slides-pptx/dist/import.js +3 -0
  283. package/node_modules/@allyhub-next/slides-pptx/dist/index.d.ts +5 -0
  284. package/node_modules/@allyhub-next/slides-pptx/dist/index.js +2 -0
  285. package/node_modules/@allyhub-next/slides-pptx/dist/read.d.ts +55 -0
  286. package/node_modules/@allyhub-next/slides-pptx/dist/read.js +4 -0
  287. package/node_modules/@allyhub-next/slides-pptx/dist/shapes.d.ts +67 -0
  288. package/node_modules/@allyhub-next/slides-pptx/dist/shapes.js +2 -0
  289. package/node_modules/@allyhub-next/slides-pptx/dist/text.d.ts +21 -0
  290. package/node_modules/@allyhub-next/slides-pptx/dist/text.js +2 -0
  291. package/node_modules/@allyhub-next/slides-pptx/dist/theme.d.ts +4 -0
  292. package/node_modules/@allyhub-next/slides-pptx/dist/theme.js +2 -0
  293. package/node_modules/@allyhub-next/slides-pptx/dist/timing.d.ts +32 -0
  294. package/node_modules/@allyhub-next/slides-pptx/dist/timing.js +2 -0
  295. package/node_modules/@allyhub-next/slides-pptx/dist/write.d.ts +32 -0
  296. package/node_modules/@allyhub-next/slides-pptx/dist/write.js +3 -0
  297. package/node_modules/@allyhub-next/slides-pptx/dist/xml.d.ts +26 -0
  298. package/node_modules/@allyhub-next/slides-pptx/dist/xml.js +3 -0
  299. package/node_modules/@allyhub-next/slides-pptx/package.json +14 -0
  300. package/node_modules/@allyhub-next/slides-runtime/LICENSE +241 -0
  301. package/node_modules/@allyhub-next/slides-runtime/dist/draw.d.ts +40 -0
  302. package/node_modules/@allyhub-next/slides-runtime/dist/draw.js +3 -0
  303. package/node_modules/@allyhub-next/slides-runtime/dist/edit.d.ts +4 -0
  304. package/node_modules/@allyhub-next/slides-runtime/dist/edit.js +2 -0
  305. package/node_modules/@allyhub-next/slides-runtime/dist/index.d.ts +4 -0
  306. package/node_modules/@allyhub-next/slides-runtime/dist/index.js +2 -0
  307. package/node_modules/@allyhub-next/slides-runtime/dist/ink.d.ts +10 -0
  308. package/node_modules/@allyhub-next/slides-runtime/dist/ink.js +2 -0
  309. package/node_modules/@allyhub-next/slides-runtime/dist/load.d.ts +6 -0
  310. package/node_modules/@allyhub-next/slides-runtime/dist/load.js +6 -0
  311. package/node_modules/@allyhub-next/slides-runtime/package.json +14 -0
  312. package/node_modules/@allyhub-next/stage/dist/graphics.js +1 -1
  313. package/node_modules/@allyhub-next/stage/dist/identity.js +1 -1
  314. package/node_modules/@allyhub-next/stage/dist/page.d.ts +9 -0
  315. package/node_modules/@allyhub-next/stage/dist/page.js +12 -2
  316. package/node_modules/@allyhub-next/stage/dist/server.js +1 -1
  317. package/node_modules/@allyhub-next/stage/package.json +1 -1
  318. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/400-italic.css +79 -0
  319. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/400.css +79 -0
  320. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/700-italic.css +79 -0
  321. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/700.css +79 -0
  322. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/LICENSE +93 -0
  323. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/arial.css +316 -0
  324. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-400-italic.woff2 +0 -0
  325. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-400-normal.woff2 +0 -0
  326. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-700-italic.woff2 +0 -0
  327. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-700-normal.woff2 +0 -0
  328. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-400-italic.woff2 +0 -0
  329. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-400-normal.woff2 +0 -0
  330. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-700-italic.woff2 +0 -0
  331. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-cyrillic-ext-700-normal.woff2 +0 -0
  332. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-400-italic.woff2 +0 -0
  333. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-400-normal.woff2 +0 -0
  334. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-700-italic.woff2 +0 -0
  335. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-700-normal.woff2 +0 -0
  336. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-400-italic.woff2 +0 -0
  337. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-400-normal.woff2 +0 -0
  338. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-700-italic.woff2 +0 -0
  339. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-greek-ext-700-normal.woff2 +0 -0
  340. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-400-italic.woff2 +0 -0
  341. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-400-normal.woff2 +0 -0
  342. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-700-italic.woff2 +0 -0
  343. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-hebrew-700-normal.woff2 +0 -0
  344. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-400-italic.woff2 +0 -0
  345. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-400-normal.woff2 +0 -0
  346. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-700-italic.woff2 +0 -0
  347. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-700-normal.woff2 +0 -0
  348. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-400-italic.woff2 +0 -0
  349. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-400-normal.woff2 +0 -0
  350. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-700-italic.woff2 +0 -0
  351. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-latin-ext-700-normal.woff2 +0 -0
  352. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-400-italic.woff2 +0 -0
  353. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-400-normal.woff2 +0 -0
  354. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-700-italic.woff2 +0 -0
  355. package/node_modules/@allyhub-next/stage-page/dist/fonts/arimo/files/arimo-vietnamese-700-normal.woff2 +0 -0
  356. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/400-italic.css +69 -0
  357. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/400.css +69 -0
  358. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/700-italic.css +69 -0
  359. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/700.css +69 -0
  360. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/LICENSE +93 -0
  361. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/calibri.css +276 -0
  362. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-400-italic.woff2 +0 -0
  363. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-400-normal.woff2 +0 -0
  364. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-700-italic.woff2 +0 -0
  365. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-700-normal.woff2 +0 -0
  366. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-400-italic.woff2 +0 -0
  367. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-400-normal.woff2 +0 -0
  368. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-700-italic.woff2 +0 -0
  369. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-cyrillic-ext-700-normal.woff2 +0 -0
  370. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-400-italic.woff2 +0 -0
  371. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-400-normal.woff2 +0 -0
  372. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-700-italic.woff2 +0 -0
  373. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-700-normal.woff2 +0 -0
  374. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-400-italic.woff2 +0 -0
  375. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-400-normal.woff2 +0 -0
  376. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-700-italic.woff2 +0 -0
  377. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-greek-ext-700-normal.woff2 +0 -0
  378. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-400-italic.woff2 +0 -0
  379. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-400-normal.woff2 +0 -0
  380. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-700-italic.woff2 +0 -0
  381. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-700-normal.woff2 +0 -0
  382. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-400-italic.woff2 +0 -0
  383. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-400-normal.woff2 +0 -0
  384. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-700-italic.woff2 +0 -0
  385. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-latin-ext-700-normal.woff2 +0 -0
  386. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-400-italic.woff2 +0 -0
  387. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-400-normal.woff2 +0 -0
  388. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-700-italic.woff2 +0 -0
  389. package/node_modules/@allyhub-next/stage-page/dist/fonts/carlito/files/carlito-vietnamese-700-normal.woff2 +0 -0
  390. package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/400.css +1 -1
  391. package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/700.css +1 -1
  392. package/node_modules/@allyhub-next/stage-page/dist/fonts/noto-sans-sc/microsoft-yahei.css +2018 -0
  393. package/node_modules/@allyhub-next/stage-page/dist/host.js +21 -0
  394. package/node_modules/@allyhub-next/stage-page/dist/page.js +79 -0
  395. package/node_modules/@allyhub-next/stage-page/package.json +14 -0
  396. package/node_modules/@allyhub-next/video-core/dist/export.d.ts +6 -5
  397. package/node_modules/@allyhub-next/video-core/dist/export.js +1 -1
  398. package/node_modules/@allyhub-next/video-core/dist/fact.d.ts +173 -4
  399. package/node_modules/@allyhub-next/video-core/dist/fact.js +1 -1
  400. package/node_modules/@allyhub-next/video-core/dist/formats.d.ts +6 -13
  401. package/node_modules/@allyhub-next/video-core/dist/formats.js +1 -1
  402. package/node_modules/@allyhub-next/video-core/dist/index.d.ts +0 -1
  403. package/node_modules/@allyhub-next/video-core/dist/index.js +1 -1
  404. package/node_modules/@allyhub-next/video-core/dist/measure.d.ts +83 -0
  405. package/node_modules/@allyhub-next/video-core/dist/piece.d.ts +8 -9
  406. package/node_modules/@allyhub-next/video-core/dist/piece.js +1 -1
  407. package/node_modules/@allyhub-next/video-core/dist/problem.d.ts +5 -1
  408. package/node_modules/@allyhub-next/video-core/dist/problem.js +1 -1
  409. package/node_modules/@allyhub-next/video-core/dist/schema.d.ts +0 -2
  410. package/node_modules/@allyhub-next/video-core/dist/script-edit.d.ts +4 -0
  411. package/node_modules/@allyhub-next/video-core/dist/script.d.ts +8 -0
  412. package/node_modules/@allyhub-next/video-core/dist/script.js +1 -1
  413. package/node_modules/@allyhub-next/video-core/dist/timeline.d.ts +34 -1
  414. package/node_modules/@allyhub-next/video-core/package.json +1 -1
  415. package/package.json +48 -41
  416. package/dist/commands/mcp-app.js +0 -3
  417. package/dist/commands/mcp-docs.js +0 -2
  418. package/dist/commands/mcp.js +0 -2
  419. package/editor-app/view.html +0 -128
  420. package/editor-web/assets/chevron-left-W6sP7nB1.js +0 -1
  421. package/editor-web/assets/chevron-up-566GQpAm.js +0 -1
  422. package/editor-web/assets/dist-BKDr73BR.js +0 -136
  423. package/editor-web/assets/dist-CPCNTYVu.js +0 -8
  424. package/editor-web/assets/dist-C_NajYp0.js +0 -1
  425. package/editor-web/assets/dist-mA6NrAKh.js +0 -232
  426. package/editor-web/assets/floating-ui.react-dom-BUxFRF6t.js +0 -1
  427. package/editor-web/assets/index-CFZhjTQW.js +0 -56
  428. package/editor-web/assets/index-DgU-lyX6.css +0 -2
  429. package/editor-web/assets/react-Ff_buMj8.js +0 -61
  430. package/editor-web/assets/undo-2-BKFItM3X.js +0 -1
  431. package/node_modules/@allyhub-next/runtime/dist/host.js +0 -21
  432. package/node_modules/@allyhub-next/runtime/dist/page.js +0 -72
  433. package/node_modules/@allyhub-next/runtime/dist/paged.d.ts +0 -16
  434. package/node_modules/@allyhub-next/runtime/dist/paged.js +0 -2
  435. package/node_modules/@allyhub-next/video-core/dist/slides.d.ts +0 -37
  436. package/node_modules/@allyhub-next/video-core/dist/slides.js +0 -2
  437. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/LICENSE +0 -0
  438. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/emoji.css +0 -0
  439. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-color-emoji/files/noto-color-emoji-emoji-400-normal.woff2 +0 -0
  440. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/LICENSE +0 -0
  441. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-100-400-normal.woff2 +0 -0
  442. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-100-700-normal.woff2 +0 -0
  443. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-101-400-normal.woff2 +0 -0
  444. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-101-700-normal.woff2 +0 -0
  445. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-102-400-normal.woff2 +0 -0
  446. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-102-700-normal.woff2 +0 -0
  447. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-103-400-normal.woff2 +0 -0
  448. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-103-700-normal.woff2 +0 -0
  449. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-104-400-normal.woff2 +0 -0
  450. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-104-700-normal.woff2 +0 -0
  451. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-105-400-normal.woff2 +0 -0
  452. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-105-700-normal.woff2 +0 -0
  453. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-106-400-normal.woff2 +0 -0
  454. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-106-700-normal.woff2 +0 -0
  455. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-107-400-normal.woff2 +0 -0
  456. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-107-700-normal.woff2 +0 -0
  457. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-108-400-normal.woff2 +0 -0
  458. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-108-700-normal.woff2 +0 -0
  459. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-109-400-normal.woff2 +0 -0
  460. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-109-700-normal.woff2 +0 -0
  461. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-110-400-normal.woff2 +0 -0
  462. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-110-700-normal.woff2 +0 -0
  463. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-111-400-normal.woff2 +0 -0
  464. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-111-700-normal.woff2 +0 -0
  465. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-112-400-normal.woff2 +0 -0
  466. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-112-700-normal.woff2 +0 -0
  467. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-113-400-normal.woff2 +0 -0
  468. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-113-700-normal.woff2 +0 -0
  469. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-114-400-normal.woff2 +0 -0
  470. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-114-700-normal.woff2 +0 -0
  471. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-115-400-normal.woff2 +0 -0
  472. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-115-700-normal.woff2 +0 -0
  473. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-116-400-normal.woff2 +0 -0
  474. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-116-700-normal.woff2 +0 -0
  475. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-117-400-normal.woff2 +0 -0
  476. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-117-700-normal.woff2 +0 -0
  477. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-118-400-normal.woff2 +0 -0
  478. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-118-700-normal.woff2 +0 -0
  479. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-119-400-normal.woff2 +0 -0
  480. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-119-700-normal.woff2 +0 -0
  481. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-21-400-normal.woff2 +0 -0
  482. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-21-700-normal.woff2 +0 -0
  483. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-22-400-normal.woff2 +0 -0
  484. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-22-700-normal.woff2 +0 -0
  485. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-23-400-normal.woff2 +0 -0
  486. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-23-700-normal.woff2 +0 -0
  487. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-24-400-normal.woff2 +0 -0
  488. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-24-700-normal.woff2 +0 -0
  489. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-25-400-normal.woff2 +0 -0
  490. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-25-700-normal.woff2 +0 -0
  491. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-26-400-normal.woff2 +0 -0
  492. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-26-700-normal.woff2 +0 -0
  493. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-27-400-normal.woff2 +0 -0
  494. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-27-700-normal.woff2 +0 -0
  495. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-28-400-normal.woff2 +0 -0
  496. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-28-700-normal.woff2 +0 -0
  497. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-29-400-normal.woff2 +0 -0
  498. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-29-700-normal.woff2 +0 -0
  499. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-30-400-normal.woff2 +0 -0
  500. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-30-700-normal.woff2 +0 -0
  501. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-31-400-normal.woff2 +0 -0
  502. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-31-700-normal.woff2 +0 -0
  503. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-32-400-normal.woff2 +0 -0
  504. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-32-700-normal.woff2 +0 -0
  505. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-33-400-normal.woff2 +0 -0
  506. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-33-700-normal.woff2 +0 -0
  507. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-34-400-normal.woff2 +0 -0
  508. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-34-700-normal.woff2 +0 -0
  509. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-35-400-normal.woff2 +0 -0
  510. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-35-700-normal.woff2 +0 -0
  511. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-36-400-normal.woff2 +0 -0
  512. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-36-700-normal.woff2 +0 -0
  513. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-37-400-normal.woff2 +0 -0
  514. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-37-700-normal.woff2 +0 -0
  515. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-38-400-normal.woff2 +0 -0
  516. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-38-700-normal.woff2 +0 -0
  517. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-39-400-normal.woff2 +0 -0
  518. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-39-700-normal.woff2 +0 -0
  519. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-4-400-normal.woff2 +0 -0
  520. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-4-700-normal.woff2 +0 -0
  521. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-40-400-normal.woff2 +0 -0
  522. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-40-700-normal.woff2 +0 -0
  523. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-41-400-normal.woff2 +0 -0
  524. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-41-700-normal.woff2 +0 -0
  525. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-42-400-normal.woff2 +0 -0
  526. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-42-700-normal.woff2 +0 -0
  527. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-43-400-normal.woff2 +0 -0
  528. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-43-700-normal.woff2 +0 -0
  529. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-44-400-normal.woff2 +0 -0
  530. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-44-700-normal.woff2 +0 -0
  531. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-45-400-normal.woff2 +0 -0
  532. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-45-700-normal.woff2 +0 -0
  533. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-46-400-normal.woff2 +0 -0
  534. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-46-700-normal.woff2 +0 -0
  535. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-47-400-normal.woff2 +0 -0
  536. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-47-700-normal.woff2 +0 -0
  537. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-48-400-normal.woff2 +0 -0
  538. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-48-700-normal.woff2 +0 -0
  539. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-49-400-normal.woff2 +0 -0
  540. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-49-700-normal.woff2 +0 -0
  541. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-5-400-normal.woff2 +0 -0
  542. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-5-700-normal.woff2 +0 -0
  543. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-50-400-normal.woff2 +0 -0
  544. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-50-700-normal.woff2 +0 -0
  545. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-51-400-normal.woff2 +0 -0
  546. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-51-700-normal.woff2 +0 -0
  547. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-52-400-normal.woff2 +0 -0
  548. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-52-700-normal.woff2 +0 -0
  549. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-53-400-normal.woff2 +0 -0
  550. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-53-700-normal.woff2 +0 -0
  551. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-54-400-normal.woff2 +0 -0
  552. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-54-700-normal.woff2 +0 -0
  553. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-55-400-normal.woff2 +0 -0
  554. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-55-700-normal.woff2 +0 -0
  555. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-56-400-normal.woff2 +0 -0
  556. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-56-700-normal.woff2 +0 -0
  557. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-57-400-normal.woff2 +0 -0
  558. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-57-700-normal.woff2 +0 -0
  559. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-58-400-normal.woff2 +0 -0
  560. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-58-700-normal.woff2 +0 -0
  561. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-59-400-normal.woff2 +0 -0
  562. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-59-700-normal.woff2 +0 -0
  563. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-6-400-normal.woff2 +0 -0
  564. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-6-700-normal.woff2 +0 -0
  565. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-60-400-normal.woff2 +0 -0
  566. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-60-700-normal.woff2 +0 -0
  567. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-61-400-normal.woff2 +0 -0
  568. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-61-700-normal.woff2 +0 -0
  569. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-62-400-normal.woff2 +0 -0
  570. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-62-700-normal.woff2 +0 -0
  571. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-63-400-normal.woff2 +0 -0
  572. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-63-700-normal.woff2 +0 -0
  573. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-64-400-normal.woff2 +0 -0
  574. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-64-700-normal.woff2 +0 -0
  575. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-65-400-normal.woff2 +0 -0
  576. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-65-700-normal.woff2 +0 -0
  577. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-66-400-normal.woff2 +0 -0
  578. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-66-700-normal.woff2 +0 -0
  579. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-67-400-normal.woff2 +0 -0
  580. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-67-700-normal.woff2 +0 -0
  581. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-68-400-normal.woff2 +0 -0
  582. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-68-700-normal.woff2 +0 -0
  583. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-69-400-normal.woff2 +0 -0
  584. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-69-700-normal.woff2 +0 -0
  585. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-70-400-normal.woff2 +0 -0
  586. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-70-700-normal.woff2 +0 -0
  587. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-71-400-normal.woff2 +0 -0
  588. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-71-700-normal.woff2 +0 -0
  589. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-72-400-normal.woff2 +0 -0
  590. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-72-700-normal.woff2 +0 -0
  591. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-73-400-normal.woff2 +0 -0
  592. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-73-700-normal.woff2 +0 -0
  593. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-74-400-normal.woff2 +0 -0
  594. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-74-700-normal.woff2 +0 -0
  595. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-75-400-normal.woff2 +0 -0
  596. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-75-700-normal.woff2 +0 -0
  597. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-76-400-normal.woff2 +0 -0
  598. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-76-700-normal.woff2 +0 -0
  599. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-77-400-normal.woff2 +0 -0
  600. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-77-700-normal.woff2 +0 -0
  601. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-78-400-normal.woff2 +0 -0
  602. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-78-700-normal.woff2 +0 -0
  603. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-79-400-normal.woff2 +0 -0
  604. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-79-700-normal.woff2 +0 -0
  605. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-80-400-normal.woff2 +0 -0
  606. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-80-700-normal.woff2 +0 -0
  607. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-81-400-normal.woff2 +0 -0
  608. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-81-700-normal.woff2 +0 -0
  609. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-82-400-normal.woff2 +0 -0
  610. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-82-700-normal.woff2 +0 -0
  611. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-83-400-normal.woff2 +0 -0
  612. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-83-700-normal.woff2 +0 -0
  613. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-84-400-normal.woff2 +0 -0
  614. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-84-700-normal.woff2 +0 -0
  615. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-85-400-normal.woff2 +0 -0
  616. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-85-700-normal.woff2 +0 -0
  617. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-86-400-normal.woff2 +0 -0
  618. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-86-700-normal.woff2 +0 -0
  619. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-87-400-normal.woff2 +0 -0
  620. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-87-700-normal.woff2 +0 -0
  621. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-88-400-normal.woff2 +0 -0
  622. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-88-700-normal.woff2 +0 -0
  623. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-89-400-normal.woff2 +0 -0
  624. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-89-700-normal.woff2 +0 -0
  625. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-90-400-normal.woff2 +0 -0
  626. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-90-700-normal.woff2 +0 -0
  627. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-91-400-normal.woff2 +0 -0
  628. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-91-700-normal.woff2 +0 -0
  629. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-97-400-normal.woff2 +0 -0
  630. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-97-700-normal.woff2 +0 -0
  631. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-98-400-normal.woff2 +0 -0
  632. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-98-700-normal.woff2 +0 -0
  633. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-99-400-normal.woff2 +0 -0
  634. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-99-700-normal.woff2 +0 -0
  635. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-cyrillic-400-normal.woff2 +0 -0
  636. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-cyrillic-700-normal.woff2 +0 -0
  637. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-400-normal.woff2 +0 -0
  638. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-700-normal.woff2 +0 -0
  639. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-ext-400-normal.woff2 +0 -0
  640. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-latin-ext-700-normal.woff2 +0 -0
  641. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-vietnamese-400-normal.woff2 +0 -0
  642. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/fonts/noto-sans-sc/files/noto-sans-sc-vietnamese-700-normal.woff2 +0 -0
  643. /package/node_modules/@allyhub-next/{runtime → stage-page}/dist/host.d.ts +0 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "@allyhub-next/stage-page",
3
+ "version": "0.4.0",
4
+ "type": "module",
5
+ "exports": {
6
+ ".": {
7
+ "types": "./dist/host.d.ts",
8
+ "default": "./dist/host.js"
9
+ },
10
+ "./page.js": "./dist/page.js"
11
+ },
12
+ "private": true,
13
+ "license": "SEE LICENSE IN LICENSE.md"
14
+ }
@@ -1,4 +1,3 @@
1
- import type { OutputKind } from "./piece.js";
2
1
  export declare const FILE_TYPES: {
3
2
  readonly mp4: {
4
3
  readonly ext: "mp4";
@@ -62,14 +61,16 @@ export declare function exportFile(type: FileType): {
62
61
  };
63
62
  /**
64
63
  * File types each output kind can be exported as. png is a page per file
65
- * for a paged output, and a frame per file for a video.
64
+ * for a deck, and a frame per file for a video.
66
65
  */
67
- export declare const KIND_TYPES: Record<OutputKind, readonly FileType[]>;
66
+ /** What is exported: a video, or a deck (`@allyhub-next/slides-core`). */
67
+ export type ExportKind = "video" | "slides";
68
+ export declare const KIND_TYPES: Record<ExportKind, readonly FileType[]>;
68
69
  /** What `allyhub render` makes when no file type is asked for. */
69
- export declare const DEFAULT_TYPES: Record<OutputKind, readonly FileType[]>;
70
+ export declare const DEFAULT_TYPES: Record<ExportKind, readonly FileType[]>;
70
71
  /** The output item as the check loaded it (only what matters here). */
71
72
  export interface ExportTarget {
72
- kind: OutputKind;
73
+ kind: ExportKind;
73
74
  /** Whether any part says something (has speech). */
74
75
  speech?: boolean;
75
76
  }
@@ -1,2 +1,2 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- export const FILE_TYPES={mp4:{ext:"mp4",type:"video/mp4"},mov:{ext:"mov",type:"video/quicktime"},webm:{ext:"webm",type:"video/webm"},gif:{ext:"gif",type:"image/gif"},srt:{ext:"srt",type:"application/x-subrip"},vtt:{ext:"vtt",type:"text/vtt"},cover:{ext:"cover.jpg",type:"image/jpeg"},wav:{ext:"wav",type:"audio/wav"},png:{ext:"png",type:"image/png"},pdf:{ext:"pdf",type:"application/pdf"},pptx:{ext:"pptx",type:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}};export function isFileType(e){return Object.hasOwn(FILE_TYPES,e)}export function exportFile(e){return e==="png"?{ext:"png.zip",type:"application/zip",zipped:!0}:{...FILE_TYPES[e],zipped:!1}}export const KIND_TYPES={video:["mp4","mov","webm","gif","png","srt","vtt","cover","wav","pdf","pptx"],paged:["png","pdf","pptx"]},DEFAULT_TYPES={video:["mp4"],paged:["pdf"]};export function exportProblem(e,t){const p=KIND_TYPES[e.kind];if(!p.includes(t))return{code:"bad_type",message:`A ${e.kind} output cannot be exported as ${t}.`,hint:`Choose one of: ${p.join(", ")}`};if((t==="srt"||t==="vtt")&&e.speech!==!0)return{code:"no_speech",message:"No part of this output says anything, so it has no captions to export.",hint:'Give parts speech: speech: take("./take.mp4") or say(s("…")).'}}export const MOTION_TYPES=["mp4","mov","webm","gif"],ALPHA_TYPES=["mov","webm","png"];export function exportStem(e){const t=p=>p.replace(/^[. ]+|[. ]+$/gu,"");return t(t(e.normalize("NFC").replace(/[\u0000-\u001f\u007f/\\:*?"<>|]+/gu," ").replace(/\s+/gu," ")).slice(0,120))}
2
+ export const FILE_TYPES={mp4:{ext:"mp4",type:"video/mp4"},mov:{ext:"mov",type:"video/quicktime"},webm:{ext:"webm",type:"video/webm"},gif:{ext:"gif",type:"image/gif"},srt:{ext:"srt",type:"application/x-subrip"},vtt:{ext:"vtt",type:"text/vtt"},cover:{ext:"cover.jpg",type:"image/jpeg"},wav:{ext:"wav",type:"audio/wav"},png:{ext:"png",type:"image/png"},pdf:{ext:"pdf",type:"application/pdf"},pptx:{ext:"pptx",type:"application/vnd.openxmlformats-officedocument.presentationml.presentation"}};export function isFileType(e){return Object.hasOwn(FILE_TYPES,e)}export function exportFile(e){return e==="png"?{ext:"png.zip",type:"application/zip",zipped:!0}:{...FILE_TYPES[e],zipped:!1}}export const KIND_TYPES={video:["mp4","mov","webm","gif","png","srt","vtt","cover","wav","pdf","pptx"],slides:["pdf","png","pptx","cover"]},DEFAULT_TYPES={video:["mp4"],slides:["pdf"]};export function exportProblem(e,t){const p=KIND_TYPES[e.kind];if(!p.includes(t))return{code:"bad_type",message:`A ${e.kind} output cannot be exported as ${t}.`,hint:`Choose one of: ${p.join(", ")}`};if((t==="srt"||t==="vtt")&&e.speech!==!0)return{code:"no_speech",message:"No part of this output says anything, so it has no captions to export.",hint:'Give parts speech: speech: take("./take.mp4") or say(s("…")).'}}export const MOTION_TYPES=["mp4","mov","webm","gif"],ALPHA_TYPES=["mov","webm","png"];export function exportStem(e){const t=p=>p.replace(/^[. ]+|[. ]+$/gu,"");return t(t(e.normalize("NFC").replace(/[\u0000-\u001f\u007f/\\:*?"<>|]+/gu," ").replace(/\s+/gu," ")).slice(0,120))}
@@ -59,7 +59,7 @@ export interface GeneratedUse {
59
59
  * shows), during the part at most.
60
60
  */
61
61
  as: "footage" | "speech" | "music" | "sound" | "read";
62
- /** Film seconds it shows or plays from and until; absent on a paged output, or outside any part. */
62
+ /** Film seconds it shows or plays from and until; absent on a deck, or outside any part. */
63
63
  start?: number;
64
64
  end?: number;
65
65
  }
@@ -75,11 +75,11 @@ export interface GeneratedFile {
75
75
  /** Its record's sha256 is not the file's (the gen-mismatch fact). */
76
76
  mismatch?: true;
77
77
  uses: GeneratedUse[];
78
- /** Film seconds during which it shows or plays, overlapping uses counted once; absent on a paged output. */
78
+ /** Film seconds during which it shows or plays, overlapping uses counted once; absent on a deck. */
79
79
  seconds?: number;
80
80
  }
81
81
  /** What each kind of fact measures. */
82
- export interface FactData {
82
+ export interface FactData extends DeckFactData {
83
83
  /** Two text blocks of different layers drawn over each other. */
84
84
  "text-overlap": {
85
85
  a: MeasuredText;
@@ -501,7 +501,7 @@ export interface FactData {
501
501
  */
502
502
  "generated-media": {
503
503
  files: GeneratedFile[];
504
- /** The video's length, seconds; absent on a paged output. */
504
+ /** The video's length, seconds; absent on a deck. */
505
505
  duration?: number;
506
506
  /** The combo was put together from its parts, not loaded. */
507
507
  estimated?: true;
@@ -888,6 +888,175 @@ export interface SceneryRange {
888
888
  most: number;
889
889
  mostAt: number;
890
890
  }
891
+ /** An edge of a box and how far past a line it is, in pixels. */
892
+ export interface EdgePast {
893
+ side: "top" | "bottom" | "left" | "right";
894
+ px: number;
895
+ }
896
+ /** Facts of a deck: what is measured of each slide as drawn (`deckFacts`, @allyhub-next/slides-core). */
897
+ export interface DeckFactData {
898
+ /** A shape's text past its box, by its lines' glyphs. */
899
+ "text-overflow": {
900
+ shape: string;
901
+ text: string;
902
+ box: Box;
903
+ glyphs: Box;
904
+ edges: EdgePast[];
905
+ /** Its lines, and those past the box. */
906
+ lines: number;
907
+ past: number;
908
+ /** The share autofit shrank it to, when it did and it still does not fit. */
909
+ scale?: number;
910
+ };
911
+ /** A shape partly or wholly past the slide's edge. */
912
+ "shape-off-slide": {
913
+ shape: string;
914
+ box: Box;
915
+ edges: EdgePast[];
916
+ /** Its area past the edge, as a share of its own (0–1). */
917
+ share: number;
918
+ };
919
+ /**
920
+ * Two shapes of a slide over each other, not a master's or a layout's own
921
+ * under another: what shows of each, its box when it is filled or a
922
+ * picture, else its text's glyphs.
923
+ */
924
+ "shape-overlap": {
925
+ a: string;
926
+ b: string;
927
+ /** Pixels both cover, and that as a share of the smaller (0–1). */
928
+ area: number;
929
+ share: number;
930
+ };
931
+ /** Edges or centres of two shapes, or of a shape and the slide, nearly in line and not. */
932
+ "near-alignment": {
933
+ a: string;
934
+ /** Another shape, or "slide" for the slide's centre. */
935
+ b: string;
936
+ line: "left" | "right" | "top" | "bottom" | "centre-x" | "centre-y";
937
+ /** How far apart, in points. */
938
+ gap: number;
939
+ options: {
940
+ within: number;
941
+ aligned: number;
942
+ };
943
+ };
944
+ /** A shape of one name at different places on slides of one layout. */
945
+ "placement-drift": {
946
+ layout: string;
947
+ shape: string;
948
+ /** Each place, in points, with the slides it is at. */
949
+ places: {
950
+ frame: Box;
951
+ slides: string[];
952
+ }[];
953
+ options: {
954
+ drift: number;
955
+ };
956
+ };
957
+ /** The sizes and weights the deck's text uses, and on how many slides. */
958
+ "type-in-use": {
959
+ type: {
960
+ size: number;
961
+ weight: number;
962
+ slides: number;
963
+ shapes: number;
964
+ }[];
965
+ /** The smallest size, in points. */
966
+ smallest: number;
967
+ };
968
+ /** A text's size as read: on the slide, on a screen from the farthest seat, on a phone. */
969
+ "read-size": {
970
+ shape: string;
971
+ text: string;
972
+ /** Its smallest size and lowercase x's height, in points on the slide. */
973
+ size: number;
974
+ xHeight?: number;
975
+ /**
976
+ * On a room's screen, when one is given: its lowercase x (`by: "x"`), or for text with
977
+ * no lowercase Latin letter (CJK) its em (`by: "em"`), in millimetres,
978
+ * and the angle that makes at the farthest seat, in minutes of arc.
979
+ */
980
+ screen?: {
981
+ by: "x" | "em";
982
+ mm: number;
983
+ arcmin: number;
984
+ };
985
+ /** Its size in points on the phone of `options.phone`, the slide fitted inside it. */
986
+ phone: number;
987
+ options: {
988
+ room?: {
989
+ screen: number;
990
+ distance: number;
991
+ };
992
+ phone: [number, number];
993
+ };
994
+ };
995
+ /** Words, lines and texts on a slide. */
996
+ "words-on-slide": {
997
+ words: number;
998
+ lines: number;
999
+ texts: number;
1000
+ };
1001
+ /** A picture drawn larger than its pixels, or stretched. */
1002
+ "picture-resolution": {
1003
+ shape: string;
1004
+ source: [number, number];
1005
+ shown: [number, number];
1006
+ box: Box;
1007
+ /** Slide pixels per source pixel, the larger of the two directions (over 1: enlarged). */
1008
+ scale: number;
1009
+ /** Source pixels per inch of the slide, the smaller of the two directions. */
1010
+ ppi: number;
1011
+ /** How much wider than its pixels it is drawn, against how much taller, less 1 (0: not stretched). */
1012
+ stretch: number;
1013
+ };
1014
+ /** A shape another covers whole. */
1015
+ /** Covered whole at every step that shows it (`by`), or shown by no step. */
1016
+ "shape-hidden": {
1017
+ shape: string;
1018
+ by?: string;
1019
+ never?: true;
1020
+ };
1021
+ /** A table's rows its words made taller than they are set, in points, which moves all that is under them. */
1022
+ "chart-data": {
1023
+ shape: string;
1024
+ type: string;
1025
+ categories: number;
1026
+ series: number;
1027
+ /** The smallest and largest number it shows; absent when it shows none. */
1028
+ low?: number;
1029
+ high?: number;
1030
+ /** The project file its numbers came from; absent: written in slides.yaml or the code. */
1031
+ source?: string;
1032
+ };
1033
+ "table-grown": {
1034
+ shape: string;
1035
+ /** Its height as set and as drawn. */
1036
+ set: number;
1037
+ drawn: number;
1038
+ rows: {
1039
+ row: number;
1040
+ set: number;
1041
+ drawn: number;
1042
+ }[];
1043
+ };
1044
+ /**
1045
+ * The fonts a deck's PowerPoint file names, and whether each is one
1046
+ * every PowerPoint, Keynote and Google Slides has (`options.standard`):
1047
+ * one that is not is replaced where the file is opened without it.
1048
+ */
1049
+ "deck-fonts": {
1050
+ fonts: {
1051
+ name: string;
1052
+ where: "theme" | "text";
1053
+ standard: boolean;
1054
+ }[];
1055
+ options: {
1056
+ standard: string[];
1057
+ };
1058
+ };
1059
+ }
891
1060
  /** Where a scenery fact is from: the scenery layer (its name), and its window on its part's clock, s. */
892
1061
  export interface SceneryFactPlace {
893
1062
  layer: string;
@@ -1,2 +1,2 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- import{READ_DEFAULTS as f,boxRows as d,contentBox as l,freeBands as h,unionSpans as u,wordsAtOnce as m}from"./measure.js";export const FACT_KINDS={"text-speaker":"Text over the speaker's face box or person matte","text-off-frame":"Text the frame's edges cut: its glyphs outside the frame, in pixels and as a share","text-contrast":"Text against the pixels behind its glyphs: WCAG contrast ratios, the lowest, a low percentile and the median","text-covered":"Text in the area a platform's interface covers","text-overlap":"Text over text of another layer","text-overlap-own":"Text over text of the same layer","text-outside":"Text reaching outside a box it is drawn inside (a background, border or shadow)","text-time":"How long each text shows whole, against its words, and how large it is on a phone, with its lowercase letters' height","words-on-screen":"Words whole on screen at once in each part: the most, and every change","footage-scale":"Footage enlargement: output pixels per source pixel, largest and smallest","free-bands":"Bands of the frame inside the covered edges that the speaker's face box or person matte leaves free","graphics-under-footage":"Graphic layers drawn under footage (listed before it), and how much of the frame the footage covers","flat-frames":"Runs of nearly flat frames unlike the picture around them","still-picture":"Stretches where the picture holds: how long, and how much changed in them","cut-seam":"How things move either side of each join: direction, speed and the change across; things named alike on both sides",flash:"Frames unlike both the frame before and the frame after: a flash, a blank frame, a layer for one frame","music-length":"Music length against video length","join-loudness":"Speech loudness either side of a join, or why it was not measured","matrix-coverage":"Matrix: combos asked for, possible and chosen, per candidate","generated-media":"Generated media (files with a .gen.json record) shown or played, and when","gen-mismatch":"A .gen.json record whose sha256 is not its file's, or that cannot be read",fallback:"Drawn or timed a fallback way: a face track, matte, take or music tempo missing","scenery-contact":"3D scenery: named objects that touch or cross, with the shared area, the crossing's length, how deep at least, the lift that clears them and the shared volume","scenery-support":"3D scenery: what each named object rests on, the gap below or how far it is sunk, its footprint in contact and its centre of mass against the contact","scenery-bake":"3D scenery: whether a scenery layer's scenery was drawn with its bake laid; when not, the scene's digest looked for, whether it was baked before (out of date) or never, and the command that makes it","mesh-health":"3D scenery: named objects whose surface is open, non-manifold, degenerate or crosses itself","camera-clearance":"3D scenery: a scenery layer's camera near a surface, inside an object, or cutting geometry with its near plane","camera-motion":"3D scenery: a scenery layer's camera motion in its own frame: peaks of truck, pedestal, dolly, pan, tilt, roll, zoom, speed, acceleration and jerk, smoothness, the largest step","scenery-screen":"3D scenery: a screen in a scenery layer: when it is on the frame, its share, how much its content is enlarged or shrunk, its angle to the view, how much is hidden in front of it, how blurred with an aperture, where it is drawn and at what scale, its smallest text on the frame as drawn and the speed of each stretch between cues","scenery-screen-fidelity":"3D scenery: a screen drawn in the scenery against its own element drawn flat: the colour difference, the share of pixels that differ, the regions where they differ and the elements in them the scenery's picture is known to draw otherwise","cut-in-word":"A part playing a stretch of a video item cut inside one of its words"};export function isFactKind(e){return Object.hasOwn(FACT_KINDS,e)}export function fact(e,a,r){return{kind:e,...a,data:r}}export function factsOf(e,a){return e.filter(r=>r.kind===a)}export function countFacts(e){const a={};for(const r of e)a[r.kind]=(a[r.kind]??0)+1;return a}export function filterFacts(e,a){return e.filter(r=>!(a.kinds?.length&&!a.kinds.includes(r.kind)||a.part!==void 0&&r.part!==a.part||(a.from!==void 0||a.to!==void 0)&&(r.t===void 0||a.from!==void 0&&r.t<a.from-1e-6||a.to!==void 0&&r.t>a.to+1e-6)))}export function freeBandsData(e){const a=l(e.width,e.height,e.safe),r=(o,s)=>{const n=u(s.flat());return{files:o,seen:s.filter(c=>c.length>0).length,rows:n,bands:h(a,n)}},i="missing"in e.face?e.face:{...r(e.face.files,e.face.boxes.map(o=>{const s=o?d(o,a.x):void 0;return s?[s]:[]})),...e.face.speaker===void 0?{}:{speaker:e.face.speaker}},t="missing"in e.person?e.person:r(e.person.files,e.person.rows);return{frame:[e.width,e.height],covered:e.safe,content:a,...e.profile?{profile:e.profile}:{},moments:e.moments,face:i,person:t,bands:h(a,[..."rows"in i?i.rows:[],..."rows"in t?t.rows:[]])}}export function layoutFacts(e,a,r){const i=[];for(const t of e.moments){const o={...a,part:t.part,t:t.t};for(const s of t.overlaps){const n=t.texts[s.a],c=t.texts[s.b];!n||!c||i.push(fact("text-overlap",o,{a:n,b:c,area:s.area,share:s.share}))}for(const s of t.ownOverlaps){const n=t.texts[s.a],c=t.texts[s.b];!n||!c||i.push(fact("text-overlap-own",o,{a:n,b:c,area:s.area,share:s.share}))}for(const s of t.outside){const n=t.texts[s.text];n&&i.push(fact("text-outside",o,{text:n,container:s.container,edges:s.edges}))}for(const s of t.faceOverlaps){const n=t.texts[s.text];!n||!t.face||i.push(fact("text-speaker",o,{text:n,face:{box:t.face,area:s.area,ofText:s.ofText,ofFace:s.ofFace}}))}for(const s of t.offFrame){const n=t.texts[s.text];n&&i.push(fact("text-off-frame",o,{text:n,frame:[e.width,e.height],edges:s.edges,outside:s.outside,share:s.share,glyphs:s.glyphs}))}for(const s of t.safeOverlaps){const n=t.texts[s.text];n&&i.push(fact("text-covered",o,{text:n,frame:[e.width,e.height],covered:e.safe,...r?{profile:r}:{},edges:s.edges}))}}for(const t of e.reading?.texts??[])i.push(fact("text-time",{...a,part:t.part,t:t.first},{text:t.text,words:t.words,chars:t.chars,seconds:t.seconds,spans:t.spans,onScreen:t.onScreen,...t.size?{size:t.size}:{},options:e.reading?.options??f}));for(const t of m(e.reading?.texts??[])){const{part:o,...s}=t;i.push(fact("words-on-screen",{...a,part:o,t:t.from},{...s,options:e.reading?.options??f}))}for(const t of e.footage){const{part:o,...s}=t;i.push(fact("footage-scale",{...a,part:o,t:t.max.t},s))}return i}
2
+ import{READ_DEFAULTS as c,boxRows as f,contentBox as l,freeBands as d,unionSpans as u,wordsAtOnce as p}from"./measure.js";export const FACT_KINDS={"text-speaker":"Text over the speaker's face box or person matte","text-off-frame":"Text the frame's edges cut: its glyphs outside the frame, in pixels and as a share","text-contrast":"Text against the pixels behind its glyphs: WCAG contrast ratios, the lowest, a low percentile and the median","text-covered":"Text in the area a platform's interface covers","text-overlap":"Text over text of another layer","text-overlap-own":"Text over text of the same layer","text-outside":"Text reaching outside a box it is drawn inside (a background, border or shadow)","text-time":"How long each text shows whole, against its words, and how large it is on a phone, with its lowercase letters' height","words-on-screen":"Words whole on screen at once in each part: the most, and every change","footage-scale":"Footage enlargement: output pixels per source pixel, largest and smallest","free-bands":"Bands of the frame inside the covered edges that the speaker's face box or person matte leaves free","graphics-under-footage":"Graphic layers drawn under footage (listed before it), and how much of the frame the footage covers","flat-frames":"Runs of nearly flat frames unlike the picture around them","still-picture":"Stretches where the picture holds: how long, and how much changed in them","cut-seam":"How things move either side of each join: direction, speed and the change across; things named alike on both sides",flash:"Frames unlike both the frame before and the frame after: a flash, a blank frame, a layer for one frame","music-length":"Music length against video length","join-loudness":"Speech loudness either side of a join, or why it was not measured","matrix-coverage":"Matrix: combos asked for, possible and chosen, per candidate","generated-media":"Generated media (files with a .gen.json record) shown or played, and when","gen-mismatch":"A .gen.json record whose sha256 is not its file's, or that cannot be read",fallback:"Drawn or timed a fallback way: a face track, matte, take or music tempo missing","scenery-contact":"3D scenery: named objects that touch or cross, with the shared area, the crossing's length, how deep at least, the lift that clears them and the shared volume","scenery-support":"3D scenery: what each named object rests on, the gap below or how far it is sunk, its footprint in contact and its centre of mass against the contact","scenery-bake":"3D scenery: whether a scenery layer's scenery was drawn with its bake laid; when not, the scene's digest looked for, whether it was baked before (out of date) or never, and the command that makes it","mesh-health":"3D scenery: named objects whose surface is open, non-manifold, degenerate or crosses itself","camera-clearance":"3D scenery: a scenery layer's camera near a surface, inside an object, or cutting geometry with its near plane","camera-motion":"3D scenery: a scenery layer's camera motion in its own frame: peaks of truck, pedestal, dolly, pan, tilt, roll, zoom, speed, acceleration and jerk, smoothness, the largest step","scenery-screen":"3D scenery: a screen in a scenery layer: when it is on the frame, its share, how much its content is enlarged or shrunk, its angle to the view, how much is hidden in front of it, how blurred with an aperture, where it is drawn and at what scale, its smallest text on the frame as drawn and the speed of each stretch between cues","scenery-screen-fidelity":"3D scenery: a screen drawn in the scenery against its own element drawn flat: the colour difference, the share of pixels that differ, the regions where they differ and the elements in them the scenery's picture is known to draw otherwise","text-overflow":"A deck: a shape's text past its box, by its lines' glyphs: how far, and the lines past it","shape-off-slide":"A deck: a shape partly or wholly past the slide's edge, and the share of it outside","shape-overlap":"A deck: two shapes of a slide over each other (not a master's or a layout's own under another), and by how much","near-alignment":"A deck: edges and centres of two shapes, or of a shape and the slide, nearly in line and not, in points","placement-drift":"A deck: a shape of one name at different places on slides of one layout","type-in-use":"A deck: the text sizes and weights it uses, on how many slides each, and the smallest","read-size":"A deck: each text's size on the slide, on a phone, and with --room on a room's screen and at its farthest seat","words-on-slide":"A deck: words, lines and texts on each slide","picture-resolution":"A deck: a picture drawn larger than its pixels, its pixels per inch, and how much it is stretched","shape-hidden":"A deck: a shape another covers whole at every build, or an animation that never shows its shape","chart-data":"A chart's numbers: how many, how far they run, and the file they came from","table-grown":"A deck: a table's rows its words made taller than they are set","deck-fonts":"A deck: the fonts its PowerPoint file names, and whether each is one every PowerPoint, Keynote and Google Slides has","cut-in-word":"A part playing a stretch of a video item cut inside one of its words"};export function isFactKind(e){return Object.hasOwn(FACT_KINDS,e)}export function fact(e,a,o){return{kind:e,...a,data:o}}export function factsOf(e,a){return e.filter(o=>o.kind===a)}export function countFacts(e){const a={};for(const o of e)a[o.kind]=(a[o.kind]??0)+1;return a}export function filterFacts(e,a){return e.filter(o=>!(a.kinds?.length&&!a.kinds.includes(o.kind)||a.part!==void 0&&o.part!==a.part||(a.from!==void 0||a.to!==void 0)&&(o.t===void 0||a.from!==void 0&&o.t<a.from-1e-6||a.to!==void 0&&o.t>a.to+1e-6)))}export function freeBandsData(e){const a=l(e.width,e.height,e.safe),o=(r,s)=>{const n=u(s.flat());return{files:r,seen:s.filter(h=>h.length>0).length,rows:n,bands:d(a,n)}},i="missing"in e.face?e.face:{...o(e.face.files,e.face.boxes.map(r=>{const s=r?f(r,a.x):void 0;return s?[s]:[]})),...e.face.speaker===void 0?{}:{speaker:e.face.speaker}},t="missing"in e.person?e.person:o(e.person.files,e.person.rows);return{frame:[e.width,e.height],covered:e.safe,content:a,...e.profile?{profile:e.profile}:{},moments:e.moments,face:i,person:t,bands:d(a,[..."rows"in i?i.rows:[],..."rows"in t?t.rows:[]])}}export function layoutFacts(e,a,o){const i=[];for(const t of e.moments){const r={...a,part:t.part,t:t.t};for(const s of t.overlaps){const n=t.texts[s.a],h=t.texts[s.b];!n||!h||i.push(fact("text-overlap",r,{a:n,b:h,area:s.area,share:s.share}))}for(const s of t.ownOverlaps){const n=t.texts[s.a],h=t.texts[s.b];!n||!h||i.push(fact("text-overlap-own",r,{a:n,b:h,area:s.area,share:s.share}))}for(const s of t.outside){const n=t.texts[s.text];n&&i.push(fact("text-outside",r,{text:n,container:s.container,edges:s.edges}))}for(const s of t.faceOverlaps){const n=t.texts[s.text];!n||!t.face||i.push(fact("text-speaker",r,{text:n,face:{box:t.face,area:s.area,ofText:s.ofText,ofFace:s.ofFace}}))}for(const s of t.offFrame){const n=t.texts[s.text];n&&i.push(fact("text-off-frame",r,{text:n,frame:[e.width,e.height],edges:s.edges,outside:s.outside,share:s.share,glyphs:s.glyphs}))}for(const s of t.safeOverlaps){const n=t.texts[s.text];n&&i.push(fact("text-covered",r,{text:n,frame:[e.width,e.height],covered:e.safe,...o?{profile:o}:{},edges:s.edges}))}}for(const t of e.reading?.texts??[])i.push(fact("text-time",{...a,part:t.part,t:t.first},{text:t.text,words:t.words,chars:t.chars,seconds:t.seconds,spans:t.spans,onScreen:t.onScreen,...t.size?{size:t.size}:{},options:e.reading?.options??c}));for(const t of p(e.reading?.texts??[])){const{part:r,...s}=t;i.push(fact("words-on-screen",{...a,part:r,t:t.from},{...s,options:e.reading?.options??c}))}for(const t of e.footage){const{part:r,...s}=t;i.push(fact("footage-scale",{...a,part:r,t:t.max.t},s))}return i}
@@ -169,20 +169,15 @@ export declare function fpsRational(fps: number): {
169
169
  export declare function toFrame(t: number, fps?: number): number;
170
170
  /** Rounds a time to the nearest frame boundary. */
171
171
  export declare function roundToFrame(t: number, fps?: number): number;
172
- /** Document formats a paged output can have besides the four presets. */
173
- export declare const PAGE_FORMATS: readonly ["a4", "letter"];
174
- export type PageFormat = (typeof PAGE_FORMATS)[number];
175
172
  /**
176
- * A format: one of the four presets, a document format, or `WxH` in
173
+ * A format: one of the four presets, a platform profile, or `WxH` in
177
174
  * pixels (each side 64–8192), e.g. "1200x630". Presets win: "16x9" is
178
175
  * the 1920×1080 frame, not 16 by 9 pixels.
179
176
  */
180
- export type Format = Preset | Profile | PageFormat | `${number}x${number}`;
181
- /** Pixels per inch of the document formats: print quality for PNGs and slides. */
182
- export declare const PAGE_DPI = 150;
177
+ export type Format = Preset | Profile | `${number}x${number}`;
183
178
  /**
184
- * A format with some of its numbers changed, in `formats` (or a paged
185
- * output's `format`) in place of its name: its covered edges (`safe`, any
179
+ * A format with some of its numbers changed, in `formats` in place of
180
+ * its name: its covered edges (`safe`, any
186
181
  * format), and a platform profile's longest length (`maxDuration`,
187
182
  * AK-F001) and mastering loudness (`loudness`, LUFS). Its name stays the
188
183
  * format's own (`format`): combos, file names and --format use it, so a
@@ -230,11 +225,9 @@ export declare function isVideoFormat(v: unknown): v is VideoFormat;
230
225
  export declare function isFormat(v: unknown): v is Format;
231
226
  /** The formats a video can have, in words (for errors and help). */
232
227
  export declare const VIDEO_FORMAT_HELP: string;
233
- /** The formats a paged output can have, in words (for errors and help). */
234
- export declare const FORMAT_HELP: string;
235
228
  /**
236
- * The paper a format prints on (CSS `@page size`): A4 and Letter at their
237
- * real size; any other format at its pixels (96 per inch, as Chrome prints).
229
+ * The paper a format prints on (CSS `@page size`): its pixels (96 per
230
+ * inch, as Chrome prints). A deck's timeline says its own (`paper`).
238
231
  */
239
232
  export declare function paperOf(format: string): string;
240
233
  //# sourceMappingURL=formats.d.ts.map
@@ -1,2 +1,2 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- export const PRESETS=["16x9","9x16","1x1","4x5"];export function isPreset(e){return typeof e=="string"&&PRESETS.includes(e)}const f={"16x9":{width:1920,height:1080,orient:"landscape",safe:{top:60,bottom:90,left:80,right:80}},"9x16":{width:1080,height:1920,orient:"portrait",safe:{top:150,bottom:400,left:40,right:140}},"1x1":{width:1080,height:1080,orient:"square",safe:{top:50,bottom:90,left:40,right:40}},"4x5":{width:1080,height:1350,orient:"portrait",safe:{top:60,bottom:120,left:40,right:40}}};export function contentEdges(e,t={}){const{width:o,height:i,orient:n,safe:r}=e,a=Math.min(o,i)/1080,x=t.margin??(n==="landscape"?120:84)*a,s=Math.max(x,r.left,r.right),g=Math.max(s,r.top+(t.topGap??30*a)),b=i-Math.max(s,r.bottom+(t.bottomGap??20*a));return{k:a,pad:s,top:g,bottom:b,left:s,right:o-s}}export function presetInfo(e){return f[e]}export const PROFILES=["tiktok","reels","shorts","meta-feed","amazon","linkedin"];export function isProfile(e){return typeof e=="string"&&PROFILES.includes(e)}const d={tiktok:{name:"tiktok",label:"TikTok",width:1080,height:1920,safe:{top:240,bottom:660,left:120,right:180},maxDuration:600,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1920},maxBytes:5e8,encode:{crf:20,maxKbps:6e3}},served:{video:{codec:"h264",profile:"high",kbps:900,width:720,height:1280,fps:30,preset:"slow"},audio:{codec:"he-aac-v2",kbps:32,rate:44100,channels:2}}},reels:{name:"reels",label:"Instagram Reels",width:1080,height:1920,safe:{top:269,bottom:672,left:65,right:65},maxDuration:180,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1920},maxBytes:4e9,encode:{crf:20,maxKbps:6e3}}},shorts:{name:"shorts",label:"YouTube Shorts",width:1080,height:1920,safe:{top:288,bottom:672,left:48,right:192},maxDuration:180,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1920},maxBytes:256e9,encode:{crf:20,maxKbps:8e3}}},"meta-feed":{name:"meta-feed",label:"Facebook and Instagram feed",width:1080,height:1350,safe:{top:60,bottom:120,left:40,right:40},maxDuration:14460,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1350},maxBytes:4e9,encode:{crf:20,maxKbps:6e3}}},amazon:{name:"amazon",label:"Amazon Sponsored Brands video",width:1920,height:1080,safe:{top:60,bottom:90,left:80,right:80},maxDuration:45,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1920,height:1080},maxBytes:5e8,encode:{crf:20,maxKbps:8e3}}},linkedin:{name:"linkedin",label:"LinkedIn",width:1080,height:1080,safe:{top:50,bottom:90,left:40,right:40},maxDuration:1800,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1080},maxBytes:2e8,encode:{crf:20,maxKbps:6e3}}}};export function profileInfo(e){return d[e]}export function profileOf(e){return isProfile(e)?d[e]:void 0}export const FPS=30,LOAD_LIMIT=10,SEEK_LIMIT=30,LOAD_WAITS=4,MAX_FPS=120;const u=[24,30,48,60,120];export const FPS_HELP="a whole number from 1 to 120, or an NTSC rate: 23.976, 29.97, 47.952, 59.94 or 119.88 (also written 24000/1001, 30000/1001 …)";export function parseFps(e){if(typeof e=="number"){if(!Number.isFinite(e))return;if(Number.isInteger(e))return e>=1&&e<=MAX_FPS?e:void 0;for(const i of u){const n=i*1e3/1001;if(Math.abs(e-n)<.005)return n}return}if(typeof e!="string")return;const t=e.trim(),o=/^(\d+)\s*\/\s*(\d+)$/.exec(t);if(o){const i=Number(o[1]),n=Number(o[2]);return n===1?parseFps(i):n===1001&&u.some(r=>r*1e3===i)?i/n:void 0}return t!==""&&Number.isFinite(Number(t))?parseFps(Number(t)):void 0}export function fpsRational(e){for(const o of u)if(Math.abs(e-o*1e3/1001)<1e-9)return{num:o*1e3,den:1001,text:`${String(o*1e3)}/1001`};const t=Math.round(e);return{num:t,den:1,text:String(t)}}export function toFrame(e,t=FPS){return Math.floor(e*t+1e-9)/t}export function roundToFrame(e,t=FPS){return Math.round(e*t)/t}export const PAGE_FORMATS=["a4","letter"],PAGE_DPI=150;const m={a4:{width:1240,height:1754,css:"210mm 297mm"},letter:{width:1275,height:1650,css:"8.5in 11in"}},w=/^([1-9]\d{1,3})x([1-9]\d{1,3})$/,p={top:0,bottom:0,left:0,right:0},h=(e,t)=>e>t?"landscape":e<t?"portrait":"square",c=e=>PAGE_FORMATS.includes(e);export function formatName(e){return typeof e=="string"?e:e.format}export function formatEntry(e,t){return e.find(o=>formatName(o)===t)}function _(e,t){const o={...e.safe,...l(t.safe??{})},i=e.profile;return{...e,safe:o,...i?{profile:{...i,safe:o,...t.maxDuration===void 0?{}:{maxDuration:t.maxDuration},...t.loudness===void 0?{}:{loudness:t.loudness}}}:{}}}function l(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}export function formatSpecProblem(e){const t=formatInfo(e.format);if(!t)return;const o={...t.safe,...l(e.safe??{})};for(const[i,n]of Object.entries(e.safe??{}))if(n!==void 0&&(!Number.isInteger(n)||n<0))return`safe.${i} is ${String(n)}: covered edges are whole pixels from 0`;if(o.left+o.right>=t.width||o.top+o.bottom>=t.height)return`safe leaves nothing of the ${String(t.width)}×${String(t.height)} frame uncovered`;if(!t.profile&&(e.maxDuration!==void 0||e.loudness!==void 0))return`${e.format} is not a platform profile (${PROFILES.join(", ")}): maxDuration and loudness belong to one; a video's own limit is video(…, { maxDuration }) and its loudness video(…, { master })`}export function formatInfo(e){if(typeof e!="string"){const n=formatInfo(e.format);return n&&_(n,e)}if(isPreset(e))return f[e];if(isProfile(e)){const n=d[e];return{width:n.width,height:n.height,orient:h(n.width,n.height),safe:n.safe,profile:n}}if(c(e)){const n=m[e];return{width:n.width,height:n.height,orient:h(n.width,n.height),safe:p}}const t=w.exec(e);if(!t)return;const o=Number(t[1]),i=Number(t[2]);if(!(o<64||i<64||o>8192||i>8192))return{width:o,height:i,orient:h(o,i),safe:p}}export function isVideoFormat(e){if(isPreset(e)||isProfile(e))return!0;if(typeof e!="string"||c(e))return!1;const t=formatInfo(e);return t!==void 0&&t.width%2===0&&t.height%2===0}export function isFormat(e){return typeof e=="string"&&formatInfo(e)!==void 0}export const VIDEO_FORMAT_HELP=`one of ${PRESETS.join(", ")}, a platform profile (${PROFILES.join(", ")}), or WIDTHxHEIGHT in pixels with even sides from 64 to 8192, such as 1280x720`,FORMAT_HELP=`one of ${[...PRESETS,...PAGE_FORMATS].join(", ")}, a platform profile (${PROFILES.join(", ")}), or WIDTHxHEIGHT in pixels (each side 64–8192, such as 1200x630)`;export function paperOf(e){if(c(e))return m[e].css;const t=formatInfo(e)??f["16x9"];return`${String(t.width)}px ${String(t.height)}px`}
2
+ export const PRESETS=["16x9","9x16","1x1","4x5"];export function isPreset(e){return typeof e=="string"&&PRESETS.includes(e)}const f={"16x9":{width:1920,height:1080,orient:"landscape",safe:{top:60,bottom:90,left:80,right:80}},"9x16":{width:1080,height:1920,orient:"portrait",safe:{top:150,bottom:400,left:40,right:140}},"1x1":{width:1080,height:1080,orient:"square",safe:{top:50,bottom:90,left:40,right:40}},"4x5":{width:1080,height:1350,orient:"portrait",safe:{top:60,bottom:120,left:40,right:40}}};export function contentEdges(e,t={}){const{width:n,height:i,orient:o,safe:r}=e,s=Math.min(n,i)/1080,m=t.margin??(o==="landscape"?120:84)*s,a=Math.max(m,r.left,r.right),p=Math.max(a,r.top+(t.topGap??30*s)),l=i-Math.max(a,r.bottom+(t.bottomGap??20*s));return{k:s,pad:a,top:p,bottom:l,left:a,right:n-a}}export function presetInfo(e){return f[e]}export const PROFILES=["tiktok","reels","shorts","meta-feed","amazon","linkedin"];export function isProfile(e){return typeof e=="string"&&PROFILES.includes(e)}const d={tiktok:{name:"tiktok",label:"TikTok",width:1080,height:1920,safe:{top:240,bottom:660,left:120,right:180},maxDuration:600,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1920},maxBytes:5e8,encode:{crf:20,maxKbps:6e3}},served:{video:{codec:"h264",profile:"high",kbps:900,width:720,height:1280,fps:30,preset:"slow"},audio:{codec:"he-aac-v2",kbps:32,rate:44100,channels:2}}},reels:{name:"reels",label:"Instagram Reels",width:1080,height:1920,safe:{top:269,bottom:672,left:65,right:65},maxDuration:180,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1920},maxBytes:4e9,encode:{crf:20,maxKbps:6e3}}},shorts:{name:"shorts",label:"YouTube Shorts",width:1080,height:1920,safe:{top:288,bottom:672,left:48,right:192},maxDuration:180,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1920},maxBytes:256e9,encode:{crf:20,maxKbps:8e3}}},"meta-feed":{name:"meta-feed",label:"Facebook and Instagram feed",width:1080,height:1350,safe:{top:60,bottom:120,left:40,right:40},maxDuration:14460,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1350},maxBytes:4e9,encode:{crf:20,maxKbps:6e3}}},amazon:{name:"amazon",label:"Amazon Sponsored Brands video",width:1920,height:1080,safe:{top:60,bottom:90,left:80,right:80},maxDuration:45,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1920,height:1080},maxBytes:5e8,encode:{crf:20,maxKbps:8e3}}},linkedin:{name:"linkedin",label:"LinkedIn",width:1080,height:1080,safe:{top:50,bottom:90,left:40,right:40},maxDuration:1800,loudness:-14,file:{container:"mp4",video:"h264",audio:"aac",cover:{width:1080,height:1080},maxBytes:2e8,encode:{crf:20,maxKbps:6e3}}}};export function profileInfo(e){return d[e]}export function profileOf(e){return isProfile(e)?d[e]:void 0}export const FPS=30,LOAD_LIMIT=10,SEEK_LIMIT=30,LOAD_WAITS=4,MAX_FPS=120;const u=[24,30,48,60,120];export const FPS_HELP="a whole number from 1 to 120, or an NTSC rate: 23.976, 29.97, 47.952, 59.94 or 119.88 (also written 24000/1001, 30000/1001 …)";export function parseFps(e){if(typeof e=="number"){if(!Number.isFinite(e))return;if(Number.isInteger(e))return e>=1&&e<=MAX_FPS?e:void 0;for(const i of u){const o=i*1e3/1001;if(Math.abs(e-o)<.005)return o}return}if(typeof e!="string")return;const t=e.trim(),n=/^(\d+)\s*\/\s*(\d+)$/.exec(t);if(n){const i=Number(n[1]),o=Number(n[2]);return o===1?parseFps(i):o===1001&&u.some(r=>r*1e3===i)?i/o:void 0}return t!==""&&Number.isFinite(Number(t))?parseFps(Number(t)):void 0}export function fpsRational(e){for(const n of u)if(Math.abs(e-n*1e3/1001)<1e-9)return{num:n*1e3,den:1001,text:`${String(n*1e3)}/1001`};const t=Math.round(e);return{num:t,den:1,text:String(t)}}export function toFrame(e,t=FPS){return Math.floor(e*t+1e-9)/t}export function roundToFrame(e,t=FPS){return Math.round(e*t)/t}const x=/^([1-9]\d{1,3})x([1-9]\d{1,3})$/,g={top:0,bottom:0,left:0,right:0},h=(e,t)=>e>t?"landscape":e<t?"portrait":"square";export function formatName(e){return typeof e=="string"?e:e.format}export function formatEntry(e,t){return e.find(n=>formatName(n)===t)}function b(e,t){const n={...e.safe,...c(t.safe??{})},i=e.profile;return{...e,safe:n,...i?{profile:{...i,safe:n,...t.maxDuration===void 0?{}:{maxDuration:t.maxDuration},...t.loudness===void 0?{}:{loudness:t.loudness}}}:{}}}function c(e){return Object.fromEntries(Object.entries(e).filter(([,t])=>t!==void 0))}export function formatSpecProblem(e){const t=formatInfo(e.format);if(!t)return;const n={...t.safe,...c(e.safe??{})};for(const[i,o]of Object.entries(e.safe??{}))if(o!==void 0&&(!Number.isInteger(o)||o<0))return`safe.${i} is ${String(o)}: covered edges are whole pixels from 0`;if(n.left+n.right>=t.width||n.top+n.bottom>=t.height)return`safe leaves nothing of the ${String(t.width)}×${String(t.height)} frame uncovered`;if(!t.profile&&(e.maxDuration!==void 0||e.loudness!==void 0))return`${e.format} is not a platform profile (${PROFILES.join(", ")}): maxDuration and loudness belong to one; a video's own limit is video(…, { maxDuration }) and its loudness video(…, { master })`}export function formatInfo(e){if(typeof e!="string"){const o=formatInfo(e.format);return o&&b(o,e)}if(isPreset(e))return f[e];if(isProfile(e)){const o=d[e];return{width:o.width,height:o.height,orient:h(o.width,o.height),safe:o.safe,profile:o}}const t=x.exec(e);if(!t)return;const n=Number(t[1]),i=Number(t[2]);if(!(n<64||i<64||n>8192||i>8192))return{width:n,height:i,orient:h(n,i),safe:g}}export function isVideoFormat(e){if(isPreset(e)||isProfile(e))return!0;if(typeof e!="string")return!1;const t=formatInfo(e);return t!==void 0&&t.width%2===0&&t.height%2===0}export function isFormat(e){return typeof e=="string"&&formatInfo(e)!==void 0}export const VIDEO_FORMAT_HELP=`one of ${PRESETS.join(", ")}, a platform profile (${PROFILES.join(", ")}), or WIDTHxHEIGHT in pixels with even sides from 64 to 8192, such as 1280x720`;export function paperOf(e){const t=formatInfo(e)??f["16x9"];return`${String(t.width)}px ${String(t.height)}px`}
@@ -1,5 +1,4 @@
1
1
  export * from "./piece.js";
2
- export * from "./slides.js";
3
2
  export * from "./timeline.js";
4
3
  export * from "./look.js";
5
4
  export * from "./formats.js";
@@ -1,2 +1,2 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- export*from"./piece.js";export*from"./slides.js";export*from"./timeline.js";export*from"./look.js";export*from"./formats.js";export*from"./placement.js";export*from"./media.js";export*from"./gen.js";export*from"./messages.js";export*from"./script.js";export*from"./anchors.js";export*from"./marks.js";export*from"./script-edit.js";export*from"./edit.js";export*from"./timing.js";export*from"./music.js";export*from"./words.js";export*from"./speech.js";export*from"./edits.js";export*from"./voice.js";export*from"./transcript.js";export*from"./cut-report.js";export*from"./captions.js";export*from"./transition.js";export*from"./motion.js";export*from"./footage-motion.js";export*from"./backdrop.js";export*from"./measure.js";export*from"./seams.js";export*from"./contrast.js";export*from"./matrix.js";export*from"./problem.js";export*from"./fact.js";export*from"./console.js";export*from"./export.js";export*from"./schema.js";export*from"./audio-types.js";export*from"./render-types.js";export*from"./sound-under.js";
2
+ export*from"./piece.js";export*from"./timeline.js";export*from"./look.js";export*from"./formats.js";export*from"./placement.js";export*from"./media.js";export*from"./gen.js";export*from"./messages.js";export*from"./script.js";export*from"./anchors.js";export*from"./marks.js";export*from"./script-edit.js";export*from"./edit.js";export*from"./timing.js";export*from"./music.js";export*from"./words.js";export*from"./speech.js";export*from"./edits.js";export*from"./voice.js";export*from"./transcript.js";export*from"./cut-report.js";export*from"./captions.js";export*from"./transition.js";export*from"./motion.js";export*from"./footage-motion.js";export*from"./backdrop.js";export*from"./measure.js";export*from"./seams.js";export*from"./contrast.js";export*from"./matrix.js";export*from"./problem.js";export*from"./fact.js";export*from"./console.js";export*from"./export.js";export*from"./schema.js";export*from"./audio-types.js";export*from"./render-types.js";export*from"./sound-under.js";
@@ -212,9 +212,92 @@ export interface TextSize {
212
212
  phone: number;
213
213
  };
214
214
  }
215
+ /** A text of a deck's shape as drawn. */
216
+ export interface DeckTextLayout {
217
+ text: string;
218
+ words: number;
219
+ /** Its lines as drawn, a box of each one's glyphs, in the slide's pixels. */
220
+ lines: Box[];
221
+ /** All of its glyphs; null when none shows. */
222
+ glyphs: Box | null;
223
+ /** The sizes and weights it is drawn at, each once: size and lowercase x's height in points. */
224
+ type: {
225
+ size: number;
226
+ weight: number;
227
+ xHeight?: number;
228
+ }[];
229
+ /** The share autofit shrank it to, when it did. */
230
+ scale?: number;
231
+ /** Its first paragraph's alignment: the line it is aligned by. */
232
+ align?: "l" | "ctr" | "r" | "just";
233
+ }
234
+ /** A deck's shape as drawn on its slide. */
235
+ export interface DeckShapeLayout {
236
+ name: string;
237
+ /** placeholder, textbox, picture, movie, autoshape, line, component. */
238
+ kind: string;
239
+ /** Where it comes from: its master's or layout's own, or the slide's (placeholders are the slide's). */
240
+ level: "master" | "layout" | "slide";
241
+ placeholder?: string;
242
+ /** Its frame as set, in the slide's pixels. */
243
+ frame: Box;
244
+ /** Its box as drawn (a shape that fits its text has grown to it). */
245
+ box: Box;
246
+ /** It hides what is under it: filled, a picture, a movie. */
247
+ opaque: boolean;
248
+ /** Not drawn at this moment: its entrance is to come, or its exit has been. */
249
+ hidden?: boolean;
250
+ text?: DeckTextLayout;
251
+ /** A table's rows, each as tall as it is set and as it is drawn, in the slide's pixels. */
252
+ rows?: {
253
+ set: number;
254
+ drawn: number;
255
+ }[];
256
+ /** A chart's numbers: how many, how far they run, and the project file they came from. */
257
+ chart?: {
258
+ type: string;
259
+ categories: number;
260
+ series: number;
261
+ low?: number;
262
+ high?: number;
263
+ source?: string;
264
+ };
265
+ picture?: {
266
+ /** The file's own pixels. */
267
+ source: [width: number, height: number];
268
+ /** The part of them shown (its crop). */
269
+ shown: [width: number, height: number];
270
+ };
271
+ }
272
+ /** A deck's slide as drawn at a still: one of its steps'. */
273
+ export interface DeckSlideLayout {
274
+ slide: string;
275
+ /** How many steps the slide has, so that all of them measured can be told. */
276
+ steps?: number;
277
+ /** Its still, in the deck's seconds. */
278
+ t: number;
279
+ layout: string;
280
+ hidden: boolean;
281
+ notes?: string;
282
+ /** Back to front, as drawn; an empty placeholder is not drawn. */
283
+ shapes: DeckShapeLayout[];
284
+ }
285
+ /** A deck as drawn, measured for its facts. */
286
+ export interface DeckLayout {
287
+ /** The slide's pixels per point. */
288
+ pxPerPt: number;
289
+ /** The fonts its PowerPoint file names: its theme's, and those its text names itself. */
290
+ fonts?: {
291
+ name: string;
292
+ where: "theme" | "text";
293
+ }[];
294
+ slides: DeckSlideLayout[];
295
+ }
215
296
  export interface LayoutReport {
216
297
  width: number;
217
298
  height: number;
299
+ /** A deck's slides as drawn (a deck's measure() only). */
300
+ deck?: DeckLayout;
218
301
  /** The format's covered edges, in pixels. */
219
302
  safe: SafeZone;
220
303
  moments: LayoutMoment[];
@@ -8,7 +8,6 @@ import type { Ease } from "./motion.js";
8
8
  import type { MusicStretch, MusicTime } from "./music.js";
9
9
  import type { PixelRect } from "./timeline.js";
10
10
  import type { TransitionInput } from "./transition.js";
11
- import type { PagedOutput, PagedPiece } from "./slides.js";
12
11
  /** Marks a piece made by video() or slides(). */
13
12
  export declare const PIECE_BRAND = "__allyhubPiece";
14
13
  /** Marks a part made by part(), so the runtime can tell parts from other values. */
@@ -19,8 +18,8 @@ export declare const LAYER_BRAND = "__allyhubLayer";
19
18
  export declare const SPEECH_BRAND = "__allyhubSpeech";
20
19
  /** Marks a media value (an import or ctx.asset), whose url the runtime resolves. */
21
20
  export declare const MEDIA_BRAND = "__allyhubMedia";
22
- /** The two output kinds: videos and paged outputs (decks, images, PDFs). */
23
- export declare const OUTPUT_KINDS: readonly ["video", "paged"];
21
+ /** The output kinds of a piece: a video (a deck is @allyhub-next/slides-core's). */
22
+ export declare const OUTPUT_KINDS: readonly ["video"];
24
23
  export type OutputKind = (typeof OUTPUT_KINDS)[number];
25
24
  /**
26
25
  * A moment in a part: a word of its speech ("inbox"), the nth time it is
@@ -141,7 +140,7 @@ export interface EmbeddedVideo {
141
140
  }
142
141
  export interface StageContext {
143
142
  look: Look;
144
- /** The format being drawn, e.g. "9x16"; a paged output's may be "a4", "letter" or "1200x630". */
143
+ /** The format being drawn, e.g. "9x16". */
145
144
  format: Format;
146
145
  /** Its pixels, orientation and platform safe zone. */
147
146
  dims: SizeInfo;
@@ -1074,7 +1073,7 @@ export interface VideoPiece extends PieceCommon, VideoOptions {
1074
1073
  parts(ctx: PieceContext): PartSpec[] | Promise<PartSpec[]>;
1075
1074
  }
1076
1075
  /** One deliverable: a video or a deck. Another one is an item of its own. */
1077
- export type PieceDefinition = VideoPiece | PagedPiece;
1076
+ export type PieceDefinition = VideoPiece;
1078
1077
  export declare function isPieceDefinition(v: unknown): v is PieceDefinition;
1079
1078
  /**
1080
1079
  * A piece's output as the build and the runtime handle it: its kind, the
@@ -1086,18 +1085,18 @@ export interface OutputDefinition<K extends OutputKind = OutputKind> {
1086
1085
  build(ctx: PieceContext): unknown;
1087
1086
  options: object;
1088
1087
  }
1089
- export interface VideoOutput extends OutputDefinition<"video"> {
1088
+ export interface VideoOutput extends OutputDefinition {
1090
1089
  build: VideoBuild;
1091
1090
  options: VideoOptions;
1092
1091
  }
1093
1092
  /**
1094
1093
  * The name of a piece's one output: its item's kind, as its entry file is
1095
- * named (video, slides), and as a doc's file is doc.pdf.
1094
+ * named (video, slides).
1096
1095
  */
1097
1096
  export declare const outputName: (kind: OutputKind) => string;
1098
1097
  /** A piece's one output: its kind, its build function and its options. */
1099
- export declare function outputOf(def: PieceDefinition): VideoOutput | PagedOutput;
1100
- /** The function that makes a piece's parts or pages. */
1098
+ export declare function outputOf(def: PieceDefinition): VideoOutput;
1099
+ /** The function that makes a video's parts. */
1101
1100
  export declare const buildOf: (def: PieceDefinition) => unknown;
1102
1101
  /**
1103
1102
  * Whether a piece is the one a command names, or under it as a folder of
@@ -1,2 +1,2 @@
1
1
  /*! AllyHub. Copyright (c) 2026 AllyHub, Inc. All rights reserved. Use is subject to LICENSE.md. */
2
- import{ANCHOR_NAME as o}from"./anchors.js";export const PIECE_BRAND="__allyhubPiece",PART_BRAND="__allyhubPart",LAYER_BRAND="__allyhubLayer",SPEECH_BRAND="__allyhubSpeech",MEDIA_BRAND="__allyhubMedia",OUTPUT_KINDS=["video","paged"];export function partAnchorsProblem(e){if(typeof e!="object"||e===null||Array.isArray(e))return"is { name: seconds } or { name: [from, to] }";const t=r=>typeof r=="number"&&Number.isFinite(r)&&r>=0;for(const[r,n]of Object.entries(e)){if(!o.test(r))return`"${r}" is not a name of letters, digits, _ and -`;if(!(Array.isArray(n)?n.length===2&&t(n[0])&&t(n[1])&&n[1]>=n[0]:t(n)))return`.${r} is seconds from the part's start, or [from, to] with to not before from (not ${JSON.stringify(n)})`}}export function partAnchorList(e){return Object.entries(e??{}).map(([t,r])=>typeof r=="number"?{name:t,at:r}:{name:t,at:r[0],end:r[1]})}export const SPEECH_SPEED={min:.5,max:2};export function speechSpeedProblem(e){return typeof e=="number"&&Number.isFinite(e)&&e>=SPEECH_SPEED.min&&e<=SPEECH_SPEED.max?void 0:`speed is how many times as fast it plays, from ${String(SPEECH_SPEED.min)} to ${String(SPEECH_SPEED.max)} (1 as recorded), not ${typeof e=="number"?String(e):JSON.stringify(e)}`}export function isSpeechSpec(e){return typeof e=="object"&&e!==null&&SPEECH_BRAND in e}export const ORIENT_KEYS=["landscape","portrait","square","default"];export function isPerOrient(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}export function forOrient(e,t){return isPerOrient(e)?e[t]??e.default:e}export function isLayerSpec(e){return typeof e=="object"&&e!==null&&LAYER_BRAND in e}export function isPartSpec(e){return typeof e=="object"&&e!==null&&PART_BRAND in e}export const PART_DEFAULTS={dur:4,lead:.2,tail:.3};export function partDefaults(...e){const t={...PART_DEFAULTS};for(const r of e)r?.dur!==void 0&&(t.dur=r.dur),r?.lead!==void 0&&(t.lead=r.lead),r?.tail!==void 0&&(t.tail=r.tail);return t}export function isPieceDefinition(e){return typeof e=="object"&&e!==null&&PIECE_BRAND in e}export const outputName=e=>e==="paged"?"slides":"video";export function outputOf(e){const t={};for(const[r,n]of Object.entries(e))i.has(r)||(t[r]=n);return e.kind==="paged"?{kind:"paged",build:e.pages,options:t}:{kind:"video",build:e.parts,options:t}}const i=new Set([PIECE_BRAND,"kind","parts","pages","id","base","title","format","matrix","meta","written"]);export const buildOf=e=>e.kind==="paged"?e.pages:e.parts,pieceIn=(e,t)=>e===t||e.startsWith(`${t}/`);export function pieceName(e){let t=e.replaceAll("\\","/").replace(/^\.\//u,"").replace(/\/+$/u,"");return t=t.replace(/\/(?:video|slides)\.(?:ts|tsx|js|jsx|mts|mjs)$/u,""),t}export const pieceNamed=(e,t)=>{const r=pieceName(t);return pieceIn(e.id,r)||e.path!==void 0&&pieceIn(e.path,r)},pieceIs=(e,t)=>{const r=pieceName(t);return e.id===r||e.path===r};export function messagePrefix(e){return e.replace(/\//g,".")}export const LAYER_OFF="data-ak-off";export function showLayer(e,t){e.toggleAttribute(LAYER_OFF,!t)}export function layerShown(e){return!e.hasAttribute(LAYER_OFF)}export function addLayerRule(e){if(e.adoptedStyleSheets.some(r=>r.allyhubLayers))return;const t=new CSSStyleSheet;t.replaceSync(`[${LAYER_OFF}] { display: none !important; }`),Object.assign(t,{allyhubLayers:!0}),e.adoptedStyleSheets=[...e.adoptedStyleSheets,t]}
2
+ import{ANCHOR_NAME as o}from"./anchors.js";export const PIECE_BRAND="__allyhubPiece",PART_BRAND="__allyhubPart",LAYER_BRAND="__allyhubLayer",SPEECH_BRAND="__allyhubSpeech",MEDIA_BRAND="__allyhubMedia",OUTPUT_KINDS=["video"];export function partAnchorsProblem(t){if(typeof t!="object"||t===null||Array.isArray(t))return"is { name: seconds } or { name: [from, to] }";const e=r=>typeof r=="number"&&Number.isFinite(r)&&r>=0;for(const[r,n]of Object.entries(t)){if(!o.test(r))return`"${r}" is not a name of letters, digits, _ and -`;if(!(Array.isArray(n)?n.length===2&&e(n[0])&&e(n[1])&&n[1]>=n[0]:e(n)))return`.${r} is seconds from the part's start, or [from, to] with to not before from (not ${JSON.stringify(n)})`}}export function partAnchorList(t){return Object.entries(t??{}).map(([e,r])=>typeof r=="number"?{name:e,at:r}:{name:e,at:r[0],end:r[1]})}export const SPEECH_SPEED={min:.5,max:2};export function speechSpeedProblem(t){return typeof t=="number"&&Number.isFinite(t)&&t>=SPEECH_SPEED.min&&t<=SPEECH_SPEED.max?void 0:`speed is how many times as fast it plays, from ${String(SPEECH_SPEED.min)} to ${String(SPEECH_SPEED.max)} (1 as recorded), not ${typeof t=="number"?String(t):JSON.stringify(t)}`}export function isSpeechSpec(t){return typeof t=="object"&&t!==null&&SPEECH_BRAND in t}export const ORIENT_KEYS=["landscape","portrait","square","default"];export function isPerOrient(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}export function forOrient(t,e){return isPerOrient(t)?t[e]??t.default:t}export function isLayerSpec(t){return typeof t=="object"&&t!==null&&LAYER_BRAND in t}export function isPartSpec(t){return typeof t=="object"&&t!==null&&PART_BRAND in t}export const PART_DEFAULTS={dur:4,lead:.2,tail:.3};export function partDefaults(...t){const e={...PART_DEFAULTS};for(const r of t)r?.dur!==void 0&&(e.dur=r.dur),r?.lead!==void 0&&(e.lead=r.lead),r?.tail!==void 0&&(e.tail=r.tail);return e}export function isPieceDefinition(t){return typeof t=="object"&&t!==null&&PIECE_BRAND in t}export const outputName=t=>t;export function outputOf(t){const e={};for(const[r,n]of Object.entries(t))i.has(r)||(e[r]=n);return{kind:"video",build:t.parts,options:e}}const i=new Set([PIECE_BRAND,"kind","parts","id","base","title","format","matrix","meta","written"]);export const buildOf=t=>t.parts,pieceIn=(t,e)=>t===e||t.startsWith(`${e}/`);export function pieceName(t){let e=t.replaceAll("\\","/").replace(/^\.\//u,"").replace(/\/+$/u,"");return e=e.replace(/\/(?:video|slides)\.(?:ts|tsx|js|jsx|mts|mjs)$/u,""),e}export const pieceNamed=(t,e)=>{const r=pieceName(e);return pieceIn(t.id,r)||t.path!==void 0&&pieceIn(t.path,r)},pieceIs=(t,e)=>{const r=pieceName(e);return t.id===r||t.path===r};export function messagePrefix(t){return t.replace(/\//g,".")}export const LAYER_OFF="data-ak-off";export function showLayer(t,e){t.toggleAttribute(LAYER_OFF,!e)}export function layerShown(t){return!t.hasAttribute(LAYER_OFF)}export function addLayerRule(t){if(t.adoptedStyleSheets.some(r=>r.allyhubLayers))return;const e=new CSSStyleSheet;e.replaceSync(`[${LAYER_OFF}] { display: none !important; }`),Object.assign(e,{allyhubLayers:!0}),t.adoptedStyleSheets=[...t.adoptedStyleSheets,e]}
@@ -65,6 +65,10 @@ export declare const RULES: {
65
65
  readonly level: "error";
66
66
  readonly rule: "A video item reaches itself through the videos it shows (a screen, a video take, a footage of a video item)";
67
67
  };
68
+ readonly "AK-M011": {
69
+ readonly level: "error";
70
+ readonly rule: "A deck's slides.yaml does not match the format, or names a layout, a prop, a file or a video item the deck does not have";
71
+ };
68
72
  readonly "AK-B001": {
69
73
  readonly level: "error";
70
74
  readonly rule: "Two pieces have the same id";
@@ -183,7 +187,7 @@ export declare const RULES: {
183
187
  };
184
188
  readonly "AK-G001": {
185
189
  readonly level: "error";
186
- readonly rule: "Unknown format: not one of the four presets or WIDTHxHEIGHT (a4 and letter for paged outputs only, and even sides for video)";
190
+ readonly rule: "Unknown format: not one of the four presets, a platform profile or WIDTHxHEIGHT with even sides";
187
191
  };
188
192
  readonly "AK-X001": {
189
193
  readonly level: "error";