1681-engine 0.5.8 → 0.5.10

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 (724) hide show
  1. package/CHANGELOG.md +95 -0
  2. package/README.md +3 -0
  3. package/dist/1681-engine.js +526 -409
  4. package/dist/ambient/ColorGrade.js +0 -1
  5. package/dist/ambient/DayClock.js +0 -1
  6. package/dist/ambient/WeatherLayer.js +0 -1
  7. package/dist/ambient/grade.js +0 -1
  8. package/dist/ambient/life/Birds.js +73 -0
  9. package/dist/ambient/life/Butterflies.js +43 -0
  10. package/dist/ambient/life/ChimneySmoke.js +50 -0
  11. package/dist/ambient/life/Drift.js +75 -0
  12. package/dist/ambient/life/Fireflies.js +52 -0
  13. package/dist/ambient/life/lifeMotion.js +49 -0
  14. package/dist/ambient/weather.js +0 -1
  15. package/dist/anim/AnimStateMachine.js +0 -1
  16. package/dist/anim/Animator.js +0 -1
  17. package/dist/anim/animStateCompile.js +0 -1
  18. package/dist/anim/animStateSystem.js +0 -1
  19. package/dist/anim/animationSystem.js +0 -1
  20. package/dist/anim/asepriteSlices.js +0 -1
  21. package/dist/anim/asepriteTags.js +0 -1
  22. package/dist/anim/parseAseprite.js +0 -1
  23. package/dist/assets/AssetLoader.js +177 -34
  24. package/dist/assets/Prepainter.js +61 -0
  25. package/dist/assets/loadAseprite.js +0 -1
  26. package/dist/assets/takeCleanerWorker-DTcI_Jqr.js +0 -1
  27. package/dist/assets/textureAtlas.js +58 -0
  28. package/dist/assets/workerPainter.js +39 -0
  29. package/dist/audio/Footsteps.js +0 -1
  30. package/dist/audio/MusicPlayer.js +0 -1
  31. package/dist/audio/SoundEngine.js +13 -7
  32. package/dist/audio/cleanTake.js +0 -1
  33. package/dist/audio/music/ElementVoice.js +0 -1
  34. package/dist/audio/music/GraphVoice.js +0 -1
  35. package/dist/audio/music/MusicChannel.js +0 -1
  36. package/dist/audio/music/musicVoice.js +0 -1
  37. package/dist/audio/sampleBank.js +0 -1
  38. package/dist/audio/soundTable.js +0 -1
  39. package/dist/audio/synth.js +0 -1
  40. package/dist/cjs/electron/electronLike.d.ts +55 -0
  41. package/dist/cjs/electron/electronLike.js +7 -0
  42. package/dist/cjs/electron/index.d.ts +14 -0
  43. package/dist/cjs/electron/index.js +20 -0
  44. package/dist/cjs/electron/lockdown.d.ts +33 -0
  45. package/dist/cjs/electron/lockdown.js +69 -0
  46. package/dist/cjs/electron/lockdownRules.d.ts +28 -0
  47. package/dist/cjs/electron/lockdownRules.js +61 -0
  48. package/dist/cjs/electron/sessionStore.d.ts +40 -0
  49. package/dist/cjs/electron/sessionStore.js +77 -0
  50. package/dist/cjs/electron/shellId.d.ts +22 -0
  51. package/dist/cjs/electron/shellId.js +31 -0
  52. package/dist/cjs/electron/webFiles.d.ts +13 -0
  53. package/dist/cjs/electron/webFiles.js +52 -0
  54. package/dist/cjs/electron/webPatcher.d.ts +80 -0
  55. package/dist/cjs/electron/webPatcher.js +216 -0
  56. package/dist/cjs/electron/webPointers.d.ts +19 -0
  57. package/dist/cjs/electron/webPointers.js +35 -0
  58. package/dist/cjs/package.json +1 -0
  59. package/dist/cjs/updates/index.d.ts +8 -0
  60. package/dist/cjs/updates/index.js +21 -0
  61. package/dist/cjs/updates/manifest.d.ts +73 -0
  62. package/dist/cjs/updates/manifest.js +67 -0
  63. package/dist/cjs/updates/pickUpdate.d.ts +42 -0
  64. package/dist/cjs/updates/pickUpdate.js +52 -0
  65. package/dist/cjs/updates/webPlan.d.ts +20 -0
  66. package/dist/cjs/updates/webPlan.js +34 -0
  67. package/dist/core/BitmapLabel.js +0 -1
  68. package/dist/core/Camera.js +1 -2
  69. package/dist/core/Clock.js +31 -21
  70. package/dist/core/Graphics.js +0 -1
  71. package/dist/core/Group.js +0 -1
  72. package/dist/core/Image.js +0 -1
  73. package/dist/core/ObjectFactory.js +0 -1
  74. package/dist/core/Pointer.js +46 -24
  75. package/dist/core/Rectangle.js +0 -1
  76. package/dist/core/Stage.js +5 -6
  77. package/dist/core/Text.js +0 -1
  78. package/dist/core/TextureRegistry.js +54 -24
  79. package/dist/core/Timeline.js +0 -1
  80. package/dist/core/TimelineBuilder.js +0 -1
  81. package/dist/core/TimelineChild.js +0 -1
  82. package/dist/core/Tweener.js +0 -1
  83. package/dist/core/atlas.js +0 -1
  84. package/dist/core/atlasPlan.js +0 -1
  85. package/dist/core/blendLayer.js +11 -0
  86. package/dist/core/eases.js +0 -1
  87. package/dist/core/gameObject.js +22 -20
  88. package/dist/core/pixelZoom.js +43 -0
  89. package/dist/core/pixiPatches.js +0 -1
  90. package/dist/core/runDue.js +28 -0
  91. package/dist/core/silhouette.js +49 -0
  92. package/dist/core/timelinePlace.js +0 -1
  93. package/dist/core/tweenProps.js +0 -1
  94. package/dist/debug/DebugOverlay.js +0 -1
  95. package/dist/debug/DrawCallCounter.js +15 -12
  96. package/dist/debug/ErrorLog.js +0 -1
  97. package/dist/debug/FrameStats.js +0 -1
  98. package/dist/debug/inspectWorld.js +0 -1
  99. package/dist/diagnostics/ErrorDeduper.js +0 -1
  100. package/dist/diagnostics/FrameSampler.js +0 -1
  101. package/dist/diagnostics/bootWatch.js +0 -1
  102. package/dist/diagnostics/captureErrors.js +0 -1
  103. package/dist/diagnostics/contextLoss.js +0 -1
  104. package/dist/diagnostics/frameStats.js +0 -1
  105. package/dist/diagnostics/gpuInfo.js +0 -1
  106. package/dist/diagnostics/renderGuard.js +0 -1
  107. package/dist/ecs/SparseSet.js +0 -1
  108. package/dist/ecs/World.js +0 -1
  109. package/dist/ecs/fields.js +0 -1
  110. package/dist/electron/lockdown.js +31 -0
  111. package/dist/electron/lockdownRules.js +42 -0
  112. package/dist/electron/sessionStore.js +48 -0
  113. package/dist/electron/shellId.js +18 -0
  114. package/dist/electron/webFiles.js +36 -0
  115. package/dist/electron/webPatcher.js +147 -0
  116. package/dist/electron/webPointers.js +25 -0
  117. package/dist/electron.js +19 -0
  118. package/dist/engine/Engine.js +42 -18
  119. package/dist/engine/FixedLoop.js +0 -1
  120. package/dist/engine/HiddenPause.js +27 -0
  121. package/dist/engine/Scene.js +0 -1
  122. package/dist/engine/SceneManager.js +0 -1
  123. package/dist/events/EventBus.js +0 -1
  124. package/dist/fx/Afterimages.js +82 -0
  125. package/dist/fx/FloatingText.js +0 -1
  126. package/dist/fx/hitStop.js +0 -1
  127. package/dist/fx/viewCull.js +0 -1
  128. package/dist/i18n/Translator.js +0 -1
  129. package/dist/i18n/extractStrings.js +0 -1
  130. package/dist/i18n/formatMessage.js +0 -1
  131. package/dist/input/Actions.js +29 -21
  132. package/dist/input/AimGesture.js +0 -1
  133. package/dist/input/Keyboard.js +0 -1
  134. package/dist/input/Keymap.js +0 -1
  135. package/dist/input/TargetLock.js +0 -1
  136. package/dist/input/aimAxis.js +0 -1
  137. package/dist/input/haptics.js +50 -0
  138. package/dist/input/keyChord.js +0 -1
  139. package/dist/input/longPress.js +0 -1
  140. package/dist/input/rumble.js +42 -0
  141. package/dist/input/stickAxis.js +0 -1
  142. package/dist/input/touchDetect.js +0 -1
  143. package/dist/light/LightLayer.js +0 -1
  144. package/dist/nav/MinHeap.js +0 -1
  145. package/dist/nav/findPath.js +0 -1
  146. package/dist/nav/navGrid.js +0 -1
  147. package/dist/nav/nearestOpen.js +0 -1
  148. package/dist/nav/straightenPath.js +0 -1
  149. package/dist/net/ApiClient.js +96 -0
  150. package/dist/net/Connection.js +39 -16
  151. package/dist/net/InterpolationBuffer.js +0 -1
  152. package/dist/net/PredictedMover.js +0 -1
  153. package/dist/net/Room.js +0 -1
  154. package/dist/net/RoomHost.js +0 -1
  155. package/dist/net/cadence.js +0 -1
  156. package/dist/net/constants.js +0 -1
  157. package/dist/net/lobby/LobbyClient.js +0 -1
  158. package/dist/net/lobby/LobbyHost.js +0 -1
  159. package/dist/net/lobby/LobbyRooms.js +0 -1
  160. package/dist/net/lobby/Matchmaker.js +0 -1
  161. package/dist/net/movement.js +40 -39
  162. package/dist/net/protocol.js +0 -1
  163. package/dist/net/reconnect.js +10 -0
  164. package/dist/net/serverClock.js +0 -1
  165. package/dist/net/snapshotCodec.js +0 -1
  166. package/dist/parallax/Parallax.js +0 -1
  167. package/dist/parallax/ParallaxLayer.js +0 -1
  168. package/dist/parallax/parallaxMath.js +0 -1
  169. package/dist/particles/Emitter.js +0 -1
  170. package/dist/particles/ParticleBudget.js +0 -1
  171. package/dist/particles/ParticleSim.js +0 -1
  172. package/dist/particles/particleCurves.js +0 -1
  173. package/dist/particles/particleSampling.js +0 -1
  174. package/dist/physics/Body.js +0 -1
  175. package/dist/physics/BroadPhase.js +0 -1
  176. package/dist/physics/Contact.js +0 -1
  177. package/dist/physics/ContactSolver.js +0 -1
  178. package/dist/physics/PhysicsWorld.js +0 -1
  179. package/dist/physics/SpatialHash.js +0 -1
  180. package/dist/physics/collide.js +0 -1
  181. package/dist/physics/collidePolygon.js +0 -1
  182. package/dist/physics/contactReport.js +0 -1
  183. package/dist/physics/drawColliders.js +0 -1
  184. package/dist/physics/physicsSystem.js +0 -1
  185. package/dist/physics/polygon.js +0 -1
  186. package/dist/physics/raycast.js +0 -1
  187. package/dist/physics/syncToBody.js +0 -1
  188. package/dist/physics/tileBodies.js +0 -1
  189. package/dist/physics/types.js +0 -1
  190. package/dist/pixel/Darkness.js +50 -47
  191. package/dist/pixel/DitherVignette.js +0 -1
  192. package/dist/pixel/Evaporation.js +0 -1
  193. package/dist/pixel/NightShade.js +0 -1
  194. package/dist/pixel/PixelLayer.js +0 -1
  195. package/dist/pixel/PixelMarks.js +99 -0
  196. package/dist/pixel/SwayProp.js +0 -1
  197. package/dist/pixel/aimPixels.js +67 -0
  198. package/dist/pixel/lifeArt.js +83 -0
  199. package/dist/pixel/lights.js +0 -1
  200. package/dist/pixel/nineSlice.js +0 -1
  201. package/dist/pixel/paintLayer.js +0 -1
  202. package/dist/pixel/palette.js +0 -1
  203. package/dist/pixel/pixel.js +0 -1
  204. package/dist/pixel/pixelPaint.js +27 -24
  205. package/dist/pixel/pixelParticles.js +35 -0
  206. package/dist/pixel/pixelTone.js +0 -1
  207. package/dist/pixel/propKit.js +0 -1
  208. package/dist/pixel/ramp.js +0 -1
  209. package/dist/pixel/selout.js +0 -1
  210. package/dist/pixel/spritePixels.js +0 -1
  211. package/dist/pixel/swayRig.js +0 -1
  212. package/dist/pixel/vignetteMask.js +0 -1
  213. package/dist/pixel/weatherArt.js +0 -1
  214. package/dist/pixel.js +82 -71
  215. package/dist/platform/appResume.js +18 -0
  216. package/dist/platform/fullscreen.js +52 -0
  217. package/dist/platform/orientation.js +26 -0
  218. package/dist/platform/pointerLock.js +37 -0
  219. package/dist/platform/reducedMotion.js +23 -0
  220. package/dist/platform/timeoutSignal.js +14 -0
  221. package/dist/platform/touch.js +0 -1
  222. package/dist/postfx/BloomFilter.js +0 -1
  223. package/dist/postfx/ChromaticAberrationFilter.js +0 -1
  224. package/dist/postfx/ColorAdjustFilter.js +0 -1
  225. package/dist/postfx/CrtFilter.js +0 -1
  226. package/dist/postfx/PixelateFilter.js +0 -1
  227. package/dist/postfx/PostFx.js +0 -1
  228. package/dist/postfx/ShockwaveFilter.js +0 -1
  229. package/dist/postfx/VignetteFilter.js +0 -1
  230. package/dist/postfx/fxAnimator.js +0 -1
  231. package/dist/postfx/fxShader.js +0 -1
  232. package/dist/postfx.js +0 -1
  233. package/dist/react/ChoiceDialog.js +0 -1
  234. package/dist/react/ConfirmButton.js +24 -0
  235. package/dist/react/ConfirmDialog.js +0 -1
  236. package/dist/react/Glyph.js +0 -1
  237. package/dist/react/Modal.js +0 -1
  238. package/dist/react/Panel.js +0 -1
  239. package/dist/react/PixelImage.js +0 -1
  240. package/dist/react/Select.js +0 -1
  241. package/dist/react/Slider.js +0 -1
  242. package/dist/react/SplitPane.js +0 -1
  243. package/dist/react/TabStrip.js +0 -1
  244. package/dist/react/TitleTips.js +0 -1
  245. package/dist/react/Tooltip.js +0 -1
  246. package/dist/react/UiProvider.js +0 -1
  247. package/dist/react/baseCss.js +1 -1
  248. package/dist/react/choiceStore.js +0 -1
  249. package/dist/react/classNames.js +0 -1
  250. package/dist/react/confirmStore.js +0 -1
  251. package/dist/react/labels.js +7 -7
  252. package/dist/react/placement.js +0 -1
  253. package/dist/react/useFillSheet.js +0 -1
  254. package/dist/react/useFitToViewport.js +0 -1
  255. package/dist/react/useJsonSelector.js +13 -0
  256. package/dist/react/usePicked.js +0 -1
  257. package/dist/react/useStore.js +0 -1
  258. package/dist/react/useViewport.js +0 -1
  259. package/dist/react.js +73 -69
  260. package/dist/rig/PosePlayer.js +0 -1
  261. package/dist/rig/RigView.js +0 -1
  262. package/dist/rig/Skeleton.js +0 -1
  263. package/dist/rig/humanoid.js +0 -1
  264. package/dist/rig/humanoid.json.js +0 -1
  265. package/dist/rig/humanoidPoses.js +0 -1
  266. package/dist/rig/poseMath.js +0 -1
  267. package/dist/rig/poses.json.js +0 -1
  268. package/dist/save/Autosaver.js +0 -1
  269. package/dist/save/MemoryBackend.js +0 -1
  270. package/dist/save/SaveStore.js +0 -1
  271. package/dist/save/WebStorageBackend.js +0 -1
  272. package/dist/save/checksum.js +0 -1
  273. package/dist/save/migrateSave.js +0 -1
  274. package/dist/settings.js +0 -1
  275. package/dist/tilemap/TilemapView.js +57 -33
  276. package/dist/tilemap/autotile.js +103 -0
  277. package/dist/tilemap/collision.js +29 -19
  278. package/dist/tilemap/ldtk.js +21 -0
  279. package/dist/tilemap/ldtkParse.js +191 -0
  280. package/dist/tilemap/tiled.js +0 -1
  281. package/dist/transitions/CrossfadeTransition.js +0 -1
  282. package/dist/transitions/DitherWipeTransition.js +0 -1
  283. package/dist/transitions/FadeTransition.js +0 -1
  284. package/dist/transitions/Letterbox.js +0 -1
  285. package/dist/transitions/ditherMask.js +0 -1
  286. package/dist/transitions/transitionTo.js +0 -1
  287. package/dist/transitions/tweenDone.js +0 -1
  288. package/dist/types/ambient/life/Birds.d.ts +50 -0
  289. package/dist/types/ambient/life/Birds.d.ts.map +1 -0
  290. package/dist/types/ambient/life/Butterflies.d.ts +32 -0
  291. package/dist/types/ambient/life/Butterflies.d.ts.map +1 -0
  292. package/dist/types/ambient/life/ChimneySmoke.d.ts +37 -0
  293. package/dist/types/ambient/life/ChimneySmoke.d.ts.map +1 -0
  294. package/dist/types/ambient/life/Drift.d.ts +58 -0
  295. package/dist/types/ambient/life/Drift.d.ts.map +1 -0
  296. package/dist/types/ambient/life/Fireflies.d.ts +43 -0
  297. package/dist/types/ambient/life/Fireflies.d.ts.map +1 -0
  298. package/dist/types/ambient/life/lifeMotion.d.ts +63 -0
  299. package/dist/types/ambient/life/lifeMotion.d.ts.map +1 -0
  300. package/dist/types/assets/AssetLoader.d.ts +83 -8
  301. package/dist/types/assets/AssetLoader.d.ts.map +1 -1
  302. package/dist/types/assets/Prepainter.d.ts +64 -0
  303. package/dist/types/assets/Prepainter.d.ts.map +1 -0
  304. package/dist/types/assets/textureAtlas.d.ts +35 -0
  305. package/dist/types/assets/textureAtlas.d.ts.map +1 -0
  306. package/dist/types/assets/workerPainter.d.ts +21 -0
  307. package/dist/types/assets/workerPainter.d.ts.map +1 -0
  308. package/dist/types/audio/SoundEngine.d.ts +5 -0
  309. package/dist/types/audio/SoundEngine.d.ts.map +1 -1
  310. package/dist/types/core/Camera.d.ts +1 -1
  311. package/dist/types/core/Camera.d.ts.map +1 -1
  312. package/dist/types/core/Clock.d.ts +14 -2
  313. package/dist/types/core/Clock.d.ts.map +1 -1
  314. package/dist/types/core/Pointer.d.ts +18 -0
  315. package/dist/types/core/Pointer.d.ts.map +1 -1
  316. package/dist/types/core/Stage.d.ts.map +1 -1
  317. package/dist/types/core/TextureRegistry.d.ts +39 -0
  318. package/dist/types/core/TextureRegistry.d.ts.map +1 -1
  319. package/dist/types/core/blendLayer.d.ts +23 -0
  320. package/dist/types/core/blendLayer.d.ts.map +1 -0
  321. package/dist/types/core/gameObject.d.ts.map +1 -1
  322. package/dist/types/core/pixelZoom.d.ts +45 -0
  323. package/dist/types/core/pixelZoom.d.ts.map +1 -0
  324. package/dist/types/core/runDue.d.ts +15 -0
  325. package/dist/types/core/runDue.d.ts.map +1 -0
  326. package/dist/types/core/silhouette.d.ts +16 -0
  327. package/dist/types/core/silhouette.d.ts.map +1 -0
  328. package/dist/types/debug/DrawCallCounter.d.ts.map +1 -1
  329. package/dist/types/electron/electronLike.d.ts +56 -0
  330. package/dist/types/electron/electronLike.d.ts.map +1 -0
  331. package/dist/types/electron/index.d.ts +15 -0
  332. package/dist/types/electron/index.d.ts.map +1 -0
  333. package/dist/types/electron/lockdown.d.ts +34 -0
  334. package/dist/types/electron/lockdown.d.ts.map +1 -0
  335. package/dist/types/electron/lockdownRules.d.ts +29 -0
  336. package/dist/types/electron/lockdownRules.d.ts.map +1 -0
  337. package/dist/types/electron/sessionStore.d.ts +41 -0
  338. package/dist/types/electron/sessionStore.d.ts.map +1 -0
  339. package/dist/types/electron/shellId.d.ts +23 -0
  340. package/dist/types/electron/shellId.d.ts.map +1 -0
  341. package/dist/types/electron/webFiles.d.ts +14 -0
  342. package/dist/types/electron/webFiles.d.ts.map +1 -0
  343. package/dist/types/electron/webPatcher.d.ts +81 -0
  344. package/dist/types/electron/webPatcher.d.ts.map +1 -0
  345. package/dist/types/electron/webPointers.d.ts +20 -0
  346. package/dist/types/electron/webPointers.d.ts.map +1 -0
  347. package/dist/types/engine/Engine.d.ts +16 -0
  348. package/dist/types/engine/Engine.d.ts.map +1 -1
  349. package/dist/types/engine/HiddenPause.d.ts +22 -0
  350. package/dist/types/engine/HiddenPause.d.ts.map +1 -0
  351. package/dist/types/fx/Afterimages.d.ts +62 -0
  352. package/dist/types/fx/Afterimages.d.ts.map +1 -0
  353. package/dist/types/index.d.ts +32 -4
  354. package/dist/types/index.d.ts.map +1 -1
  355. package/dist/types/input/Actions.d.ts +7 -1
  356. package/dist/types/input/Actions.d.ts.map +1 -1
  357. package/dist/types/input/haptics.d.ts +42 -0
  358. package/dist/types/input/haptics.d.ts.map +1 -0
  359. package/dist/types/input/rumble.d.ts +41 -0
  360. package/dist/types/input/rumble.d.ts.map +1 -0
  361. package/dist/types/net/ApiClient.d.ts +74 -0
  362. package/dist/types/net/ApiClient.d.ts.map +1 -0
  363. package/dist/types/net/Connection.d.ts +22 -0
  364. package/dist/types/net/Connection.d.ts.map +1 -1
  365. package/dist/types/net/constants.d.ts +13 -4
  366. package/dist/types/net/constants.d.ts.map +1 -1
  367. package/dist/types/net/movement.d.ts.map +1 -1
  368. package/dist/types/net/reconnect.d.ts +14 -0
  369. package/dist/types/net/reconnect.d.ts.map +1 -0
  370. package/dist/types/pixel/Darkness.d.ts +17 -5
  371. package/dist/types/pixel/Darkness.d.ts.map +1 -1
  372. package/dist/types/pixel/PixelMarks.d.ts +68 -0
  373. package/dist/types/pixel/PixelMarks.d.ts.map +1 -0
  374. package/dist/types/pixel/aimPixels.d.ts +23 -0
  375. package/dist/types/pixel/aimPixels.d.ts.map +1 -0
  376. package/dist/types/pixel/index.d.ts +4 -1
  377. package/dist/types/pixel/index.d.ts.map +1 -1
  378. package/dist/types/pixel/lifeArt.d.ts +63 -0
  379. package/dist/types/pixel/lifeArt.d.ts.map +1 -0
  380. package/dist/types/pixel/pixelPaint.d.ts +1 -0
  381. package/dist/types/pixel/pixelPaint.d.ts.map +1 -1
  382. package/dist/types/pixel/pixelParticles.d.ts +21 -0
  383. package/dist/types/pixel/pixelParticles.d.ts.map +1 -0
  384. package/dist/types/platform/appResume.d.ts +25 -0
  385. package/dist/types/platform/appResume.d.ts.map +1 -0
  386. package/dist/types/platform/fullscreen.d.ts +37 -0
  387. package/dist/types/platform/fullscreen.d.ts.map +1 -0
  388. package/dist/types/platform/orientation.d.ts +19 -0
  389. package/dist/types/platform/orientation.d.ts.map +1 -0
  390. package/dist/types/platform/pointerLock.d.ts +26 -0
  391. package/dist/types/platform/pointerLock.d.ts.map +1 -0
  392. package/dist/types/platform/reducedMotion.d.ts +20 -0
  393. package/dist/types/platform/reducedMotion.d.ts.map +1 -0
  394. package/dist/types/platform/timeoutSignal.d.ts +6 -0
  395. package/dist/types/platform/timeoutSignal.d.ts.map +1 -0
  396. package/dist/types/react/ConfirmButton.d.ts +26 -0
  397. package/dist/types/react/ConfirmButton.d.ts.map +1 -0
  398. package/dist/types/react/baseCss.d.ts +1 -1
  399. package/dist/types/react/baseCss.d.ts.map +1 -1
  400. package/dist/types/react/index.d.ts +2 -0
  401. package/dist/types/react/index.d.ts.map +1 -1
  402. package/dist/types/react/labels.d.ts +2 -0
  403. package/dist/types/react/labels.d.ts.map +1 -1
  404. package/dist/types/react/useJsonSelector.d.ts +13 -0
  405. package/dist/types/react/useJsonSelector.d.ts.map +1 -0
  406. package/dist/types/tilemap/TilemapView.d.ts +17 -0
  407. package/dist/types/tilemap/TilemapView.d.ts.map +1 -1
  408. package/dist/types/tilemap/autotile.d.ts +95 -0
  409. package/dist/types/tilemap/autotile.d.ts.map +1 -0
  410. package/dist/types/tilemap/collision.d.ts +8 -0
  411. package/dist/types/tilemap/collision.d.ts.map +1 -1
  412. package/dist/types/tilemap/ldtk.d.ts +97 -0
  413. package/dist/types/tilemap/ldtk.d.ts.map +1 -0
  414. package/dist/types/tilemap/ldtkParse.d.ts +26 -0
  415. package/dist/types/tilemap/ldtkParse.d.ts.map +1 -0
  416. package/dist/types/ui/index.d.ts +4 -0
  417. package/dist/types/ui/index.d.ts.map +1 -1
  418. package/dist/types/ui/rich/RichText.d.ts +48 -0
  419. package/dist/types/ui/rich/RichText.d.ts.map +1 -0
  420. package/dist/types/ui/rich/richFonts.d.ts +70 -0
  421. package/dist/types/ui/rich/richFonts.d.ts.map +1 -0
  422. package/dist/types/ui/rich/richLayout.d.ts +76 -0
  423. package/dist/types/ui/rich/richLayout.d.ts.map +1 -0
  424. package/dist/types/ui/rich/richMarkup.d.ts +48 -0
  425. package/dist/types/ui/rich/richMarkup.d.ts.map +1 -0
  426. package/dist/types/updates/index.d.ts +9 -0
  427. package/dist/types/updates/index.d.ts.map +1 -0
  428. package/dist/types/updates/manifest.d.ts +74 -0
  429. package/dist/types/updates/manifest.d.ts.map +1 -0
  430. package/dist/types/updates/pickUpdate.d.ts +43 -0
  431. package/dist/types/updates/pickUpdate.d.ts.map +1 -0
  432. package/dist/types/updates/webPlan.d.ts +21 -0
  433. package/dist/types/updates/webPlan.d.ts.map +1 -0
  434. package/dist/ui/Bar.js +0 -1
  435. package/dist/ui/Button.js +0 -1
  436. package/dist/ui/Dialog.js +0 -1
  437. package/dist/ui/FocusManager.js +0 -1
  438. package/dist/ui/Label.js +0 -1
  439. package/dist/ui/List.js +0 -1
  440. package/dist/ui/Panel.js +0 -1
  441. package/dist/ui/ScrollView.js +0 -1
  442. package/dist/ui/Slider.js +0 -1
  443. package/dist/ui/Stack.js +0 -1
  444. package/dist/ui/Toggle.js +0 -1
  445. package/dist/ui/UiHost.js +0 -1
  446. package/dist/ui/UiPointerGate.js +0 -1
  447. package/dist/ui/UiRoot.js +0 -1
  448. package/dist/ui/Widget.js +0 -1
  449. package/dist/ui/dom/DomOverlay.js +0 -1
  450. package/dist/ui/dom/DomWorldAnchors.js +0 -1
  451. package/dist/ui/dom/InputShield.js +0 -1
  452. package/dist/ui/dom/createStore.js +0 -1
  453. package/dist/ui/dom/shieldDecision.js +0 -1
  454. package/dist/ui/dom/worldToScreen.js +0 -1
  455. package/dist/ui/layout/anchor.js +0 -1
  456. package/dist/ui/layout/barDrain.js +0 -1
  457. package/dist/ui/layout/fitToViewport.js +0 -1
  458. package/dist/ui/layout/focusNav.js +0 -1
  459. package/dist/ui/layout/geometry.js +0 -1
  460. package/dist/ui/layout/listWidth.js +0 -1
  461. package/dist/ui/layout/placeTooltip.js +0 -1
  462. package/dist/ui/layout/scroll.js +0 -1
  463. package/dist/ui/layout/slider.js +0 -1
  464. package/dist/ui/layout/stack.js +0 -1
  465. package/dist/ui/layout/wrapRow.js +0 -1
  466. package/dist/ui/rich/RichText.js +87 -0
  467. package/dist/ui/rich/richFonts.js +105 -0
  468. package/dist/ui/rich/richLayout.js +132 -0
  469. package/dist/ui/rich/richMarkup.js +67 -0
  470. package/dist/ui.js +75 -65
  471. package/dist/updates/manifest.js +35 -0
  472. package/dist/updates/pickUpdate.js +27 -0
  473. package/dist/updates/webPlan.js +14 -0
  474. package/dist/updates.js +15 -0
  475. package/package.json +31 -6
  476. package/dist/1681-engine.js.map +0 -1
  477. package/dist/ambient/ColorGrade.js.map +0 -1
  478. package/dist/ambient/DayClock.js.map +0 -1
  479. package/dist/ambient/WeatherLayer.js.map +0 -1
  480. package/dist/ambient/grade.js.map +0 -1
  481. package/dist/ambient/weather.js.map +0 -1
  482. package/dist/anim/AnimStateMachine.js.map +0 -1
  483. package/dist/anim/Animator.js.map +0 -1
  484. package/dist/anim/animStateCompile.js.map +0 -1
  485. package/dist/anim/animStateSystem.js.map +0 -1
  486. package/dist/anim/animationSystem.js.map +0 -1
  487. package/dist/anim/asepriteSlices.js.map +0 -1
  488. package/dist/anim/asepriteTags.js.map +0 -1
  489. package/dist/anim/parseAseprite.js.map +0 -1
  490. package/dist/assets/AssetLoader.js.map +0 -1
  491. package/dist/assets/loadAseprite.js.map +0 -1
  492. package/dist/assets/takeCleanerWorker-DTcI_Jqr.js.map +0 -1
  493. package/dist/audio/Footsteps.js.map +0 -1
  494. package/dist/audio/MusicPlayer.js.map +0 -1
  495. package/dist/audio/SoundEngine.js.map +0 -1
  496. package/dist/audio/cleanTake.js.map +0 -1
  497. package/dist/audio/music/ElementVoice.js.map +0 -1
  498. package/dist/audio/music/GraphVoice.js.map +0 -1
  499. package/dist/audio/music/MusicChannel.js.map +0 -1
  500. package/dist/audio/music/musicVoice.js.map +0 -1
  501. package/dist/audio/sampleBank.js.map +0 -1
  502. package/dist/audio/soundTable.js.map +0 -1
  503. package/dist/audio/synth.js.map +0 -1
  504. package/dist/core/BitmapLabel.js.map +0 -1
  505. package/dist/core/Camera.js.map +0 -1
  506. package/dist/core/Clock.js.map +0 -1
  507. package/dist/core/Graphics.js.map +0 -1
  508. package/dist/core/Group.js.map +0 -1
  509. package/dist/core/Image.js.map +0 -1
  510. package/dist/core/ObjectFactory.js.map +0 -1
  511. package/dist/core/Pointer.js.map +0 -1
  512. package/dist/core/Rectangle.js.map +0 -1
  513. package/dist/core/Stage.js.map +0 -1
  514. package/dist/core/Text.js.map +0 -1
  515. package/dist/core/TextureRegistry.js.map +0 -1
  516. package/dist/core/Timeline.js.map +0 -1
  517. package/dist/core/TimelineBuilder.js.map +0 -1
  518. package/dist/core/TimelineChild.js.map +0 -1
  519. package/dist/core/Tweener.js.map +0 -1
  520. package/dist/core/atlas.js.map +0 -1
  521. package/dist/core/atlasPlan.js.map +0 -1
  522. package/dist/core/eases.js.map +0 -1
  523. package/dist/core/gameObject.js.map +0 -1
  524. package/dist/core/pixiPatches.js.map +0 -1
  525. package/dist/core/timelinePlace.js.map +0 -1
  526. package/dist/core/tweenProps.js.map +0 -1
  527. package/dist/debug/DebugOverlay.js.map +0 -1
  528. package/dist/debug/DrawCallCounter.js.map +0 -1
  529. package/dist/debug/ErrorLog.js.map +0 -1
  530. package/dist/debug/FrameStats.js.map +0 -1
  531. package/dist/debug/inspectWorld.js.map +0 -1
  532. package/dist/diagnostics/ErrorDeduper.js.map +0 -1
  533. package/dist/diagnostics/FrameSampler.js.map +0 -1
  534. package/dist/diagnostics/bootWatch.js.map +0 -1
  535. package/dist/diagnostics/captureErrors.js.map +0 -1
  536. package/dist/diagnostics/contextLoss.js.map +0 -1
  537. package/dist/diagnostics/frameStats.js.map +0 -1
  538. package/dist/diagnostics/gpuInfo.js.map +0 -1
  539. package/dist/diagnostics/renderGuard.js.map +0 -1
  540. package/dist/ecs/SparseSet.js.map +0 -1
  541. package/dist/ecs/World.js.map +0 -1
  542. package/dist/ecs/fields.js.map +0 -1
  543. package/dist/engine/Engine.js.map +0 -1
  544. package/dist/engine/FixedLoop.js.map +0 -1
  545. package/dist/engine/Scene.js.map +0 -1
  546. package/dist/engine/SceneManager.js.map +0 -1
  547. package/dist/events/EventBus.js.map +0 -1
  548. package/dist/fx/FloatingText.js.map +0 -1
  549. package/dist/fx/hitStop.js.map +0 -1
  550. package/dist/fx/viewCull.js.map +0 -1
  551. package/dist/i18n/Translator.js.map +0 -1
  552. package/dist/i18n/extractStrings.js.map +0 -1
  553. package/dist/i18n/formatMessage.js.map +0 -1
  554. package/dist/input/Actions.js.map +0 -1
  555. package/dist/input/AimGesture.js.map +0 -1
  556. package/dist/input/Keyboard.js.map +0 -1
  557. package/dist/input/Keymap.js.map +0 -1
  558. package/dist/input/TargetLock.js.map +0 -1
  559. package/dist/input/aimAxis.js.map +0 -1
  560. package/dist/input/keyChord.js.map +0 -1
  561. package/dist/input/longPress.js.map +0 -1
  562. package/dist/input/stickAxis.js.map +0 -1
  563. package/dist/input/touchDetect.js.map +0 -1
  564. package/dist/light/LightLayer.js.map +0 -1
  565. package/dist/nav/MinHeap.js.map +0 -1
  566. package/dist/nav/findPath.js.map +0 -1
  567. package/dist/nav/navGrid.js.map +0 -1
  568. package/dist/nav/nearestOpen.js.map +0 -1
  569. package/dist/nav/straightenPath.js.map +0 -1
  570. package/dist/net/Connection.js.map +0 -1
  571. package/dist/net/InterpolationBuffer.js.map +0 -1
  572. package/dist/net/PredictedMover.js.map +0 -1
  573. package/dist/net/Room.js.map +0 -1
  574. package/dist/net/RoomHost.js.map +0 -1
  575. package/dist/net/cadence.js.map +0 -1
  576. package/dist/net/constants.js.map +0 -1
  577. package/dist/net/lobby/LobbyClient.js.map +0 -1
  578. package/dist/net/lobby/LobbyHost.js.map +0 -1
  579. package/dist/net/lobby/LobbyRooms.js.map +0 -1
  580. package/dist/net/lobby/Matchmaker.js.map +0 -1
  581. package/dist/net/movement.js.map +0 -1
  582. package/dist/net/protocol.js.map +0 -1
  583. package/dist/net/serverClock.js.map +0 -1
  584. package/dist/net/snapshotCodec.js.map +0 -1
  585. package/dist/parallax/Parallax.js.map +0 -1
  586. package/dist/parallax/ParallaxLayer.js.map +0 -1
  587. package/dist/parallax/parallaxMath.js.map +0 -1
  588. package/dist/particles/Emitter.js.map +0 -1
  589. package/dist/particles/ParticleBudget.js.map +0 -1
  590. package/dist/particles/ParticleSim.js.map +0 -1
  591. package/dist/particles/particleCurves.js.map +0 -1
  592. package/dist/particles/particleSampling.js.map +0 -1
  593. package/dist/physics/Body.js.map +0 -1
  594. package/dist/physics/BroadPhase.js.map +0 -1
  595. package/dist/physics/Contact.js.map +0 -1
  596. package/dist/physics/ContactSolver.js.map +0 -1
  597. package/dist/physics/PhysicsWorld.js.map +0 -1
  598. package/dist/physics/SpatialHash.js.map +0 -1
  599. package/dist/physics/collide.js.map +0 -1
  600. package/dist/physics/collidePolygon.js.map +0 -1
  601. package/dist/physics/contactReport.js.map +0 -1
  602. package/dist/physics/drawColliders.js.map +0 -1
  603. package/dist/physics/physicsSystem.js.map +0 -1
  604. package/dist/physics/polygon.js.map +0 -1
  605. package/dist/physics/raycast.js.map +0 -1
  606. package/dist/physics/syncToBody.js.map +0 -1
  607. package/dist/physics/tileBodies.js.map +0 -1
  608. package/dist/physics/types.js.map +0 -1
  609. package/dist/pixel/Darkness.js.map +0 -1
  610. package/dist/pixel/DitherVignette.js.map +0 -1
  611. package/dist/pixel/Evaporation.js.map +0 -1
  612. package/dist/pixel/NightShade.js.map +0 -1
  613. package/dist/pixel/PixelLayer.js.map +0 -1
  614. package/dist/pixel/SwayProp.js.map +0 -1
  615. package/dist/pixel/lights.js.map +0 -1
  616. package/dist/pixel/nineSlice.js.map +0 -1
  617. package/dist/pixel/paintLayer.js.map +0 -1
  618. package/dist/pixel/palette.js.map +0 -1
  619. package/dist/pixel/pixel.js.map +0 -1
  620. package/dist/pixel/pixelPaint.js.map +0 -1
  621. package/dist/pixel/pixelTone.js.map +0 -1
  622. package/dist/pixel/propKit.js.map +0 -1
  623. package/dist/pixel/ramp.js.map +0 -1
  624. package/dist/pixel/selout.js.map +0 -1
  625. package/dist/pixel/spritePixels.js.map +0 -1
  626. package/dist/pixel/swayRig.js.map +0 -1
  627. package/dist/pixel/vignetteMask.js.map +0 -1
  628. package/dist/pixel/weatherArt.js.map +0 -1
  629. package/dist/pixel.js.map +0 -1
  630. package/dist/platform/touch.js.map +0 -1
  631. package/dist/postfx/BloomFilter.js.map +0 -1
  632. package/dist/postfx/ChromaticAberrationFilter.js.map +0 -1
  633. package/dist/postfx/ColorAdjustFilter.js.map +0 -1
  634. package/dist/postfx/CrtFilter.js.map +0 -1
  635. package/dist/postfx/PixelateFilter.js.map +0 -1
  636. package/dist/postfx/PostFx.js.map +0 -1
  637. package/dist/postfx/ShockwaveFilter.js.map +0 -1
  638. package/dist/postfx/VignetteFilter.js.map +0 -1
  639. package/dist/postfx/fxAnimator.js.map +0 -1
  640. package/dist/postfx/fxShader.js.map +0 -1
  641. package/dist/postfx.js.map +0 -1
  642. package/dist/react/ChoiceDialog.js.map +0 -1
  643. package/dist/react/ConfirmDialog.js.map +0 -1
  644. package/dist/react/Glyph.js.map +0 -1
  645. package/dist/react/Modal.js.map +0 -1
  646. package/dist/react/Panel.js.map +0 -1
  647. package/dist/react/PixelImage.js.map +0 -1
  648. package/dist/react/Select.js.map +0 -1
  649. package/dist/react/Slider.js.map +0 -1
  650. package/dist/react/SplitPane.js.map +0 -1
  651. package/dist/react/TabStrip.js.map +0 -1
  652. package/dist/react/TitleTips.js.map +0 -1
  653. package/dist/react/Tooltip.js.map +0 -1
  654. package/dist/react/UiProvider.js.map +0 -1
  655. package/dist/react/baseCss.js.map +0 -1
  656. package/dist/react/choiceStore.js.map +0 -1
  657. package/dist/react/classNames.js.map +0 -1
  658. package/dist/react/confirmStore.js.map +0 -1
  659. package/dist/react/labels.js.map +0 -1
  660. package/dist/react/placement.js.map +0 -1
  661. package/dist/react/useFillSheet.js.map +0 -1
  662. package/dist/react/useFitToViewport.js.map +0 -1
  663. package/dist/react/usePicked.js.map +0 -1
  664. package/dist/react/useStore.js.map +0 -1
  665. package/dist/react/useViewport.js.map +0 -1
  666. package/dist/react.js.map +0 -1
  667. package/dist/rig/PosePlayer.js.map +0 -1
  668. package/dist/rig/RigView.js.map +0 -1
  669. package/dist/rig/Skeleton.js.map +0 -1
  670. package/dist/rig/humanoid.js.map +0 -1
  671. package/dist/rig/humanoid.json.js.map +0 -1
  672. package/dist/rig/humanoidPoses.js.map +0 -1
  673. package/dist/rig/poseMath.js.map +0 -1
  674. package/dist/rig/poses.json.js.map +0 -1
  675. package/dist/save/Autosaver.js.map +0 -1
  676. package/dist/save/MemoryBackend.js.map +0 -1
  677. package/dist/save/SaveStore.js.map +0 -1
  678. package/dist/save/WebStorageBackend.js.map +0 -1
  679. package/dist/save/checksum.js.map +0 -1
  680. package/dist/save/migrateSave.js.map +0 -1
  681. package/dist/settings.js.map +0 -1
  682. package/dist/tilemap/TilemapView.js.map +0 -1
  683. package/dist/tilemap/collision.js.map +0 -1
  684. package/dist/tilemap/tiled.js.map +0 -1
  685. package/dist/transitions/CrossfadeTransition.js.map +0 -1
  686. package/dist/transitions/DitherWipeTransition.js.map +0 -1
  687. package/dist/transitions/FadeTransition.js.map +0 -1
  688. package/dist/transitions/Letterbox.js.map +0 -1
  689. package/dist/transitions/ditherMask.js.map +0 -1
  690. package/dist/transitions/transitionTo.js.map +0 -1
  691. package/dist/transitions/tweenDone.js.map +0 -1
  692. package/dist/ui/Bar.js.map +0 -1
  693. package/dist/ui/Button.js.map +0 -1
  694. package/dist/ui/Dialog.js.map +0 -1
  695. package/dist/ui/FocusManager.js.map +0 -1
  696. package/dist/ui/Label.js.map +0 -1
  697. package/dist/ui/List.js.map +0 -1
  698. package/dist/ui/Panel.js.map +0 -1
  699. package/dist/ui/ScrollView.js.map +0 -1
  700. package/dist/ui/Slider.js.map +0 -1
  701. package/dist/ui/Stack.js.map +0 -1
  702. package/dist/ui/Toggle.js.map +0 -1
  703. package/dist/ui/UiHost.js.map +0 -1
  704. package/dist/ui/UiPointerGate.js.map +0 -1
  705. package/dist/ui/UiRoot.js.map +0 -1
  706. package/dist/ui/Widget.js.map +0 -1
  707. package/dist/ui/dom/DomOverlay.js.map +0 -1
  708. package/dist/ui/dom/DomWorldAnchors.js.map +0 -1
  709. package/dist/ui/dom/InputShield.js.map +0 -1
  710. package/dist/ui/dom/createStore.js.map +0 -1
  711. package/dist/ui/dom/shieldDecision.js.map +0 -1
  712. package/dist/ui/dom/worldToScreen.js.map +0 -1
  713. package/dist/ui/layout/anchor.js.map +0 -1
  714. package/dist/ui/layout/barDrain.js.map +0 -1
  715. package/dist/ui/layout/fitToViewport.js.map +0 -1
  716. package/dist/ui/layout/focusNav.js.map +0 -1
  717. package/dist/ui/layout/geometry.js.map +0 -1
  718. package/dist/ui/layout/listWidth.js.map +0 -1
  719. package/dist/ui/layout/placeTooltip.js.map +0 -1
  720. package/dist/ui/layout/scroll.js.map +0 -1
  721. package/dist/ui/layout/slider.js.map +0 -1
  722. package/dist/ui/layout/stack.js.map +0 -1
  723. package/dist/ui/layout/wrapRow.js.map +0 -1
  724. package/dist/ui.js.map +0 -1
@@ -0,0 +1,76 @@
1
+ import type { RichSpan, RichStyle } from './richMarkup.js';
2
+ /**
3
+ * Line breaking and placement for `RichText`, pure: every width and height comes from a `RichMeasure` the caller
4
+ * hands in, so the same layout runs under node in a test, with a canvas font, or with a bitmap font.
5
+ *
6
+ * Lines break only at spaces and `\n`; a word wider than the whole line is broken between letters. Text and icons
7
+ * with no space between them (`[icon=coin]50`) stay together. Text of one style that ends up side by side on a line
8
+ * is one item, so a paragraph in one colour costs one display object a line.
9
+ */
10
+ export interface RichMeasure {
11
+ /** Advance width of `text` in `style` (spaces included: they are measured on their own). */
12
+ textWidth(text: string, style: RichStyle): number;
13
+ /** Height of a line of text in `style`. */
14
+ lineHeight(style: RichStyle): number;
15
+ /** Baseline from the top of such a line; 0.8 of the line height when not given. */
16
+ ascent?(style: RichStyle): number;
17
+ /** Size of an icon's frame in texture pixels. */
18
+ iconSize(key: string, frame: string | undefined): {
19
+ width: number;
20
+ height: number;
21
+ };
22
+ }
23
+ export type RichAlign = 'left' | 'center' | 'right';
24
+ export interface RichLayoutOptions {
25
+ /** Wrap lines to this width; unset, lines break only at `\n`. */
26
+ wrapWidth?: number;
27
+ align?: RichAlign;
28
+ /** Extra pixels between lines. */
29
+ lineSpacing?: number;
30
+ /**
31
+ * `'line'` (default): an icon is as tall as its style's line — on a pixel-perfect layout the largest whole multiple
32
+ * of its frame that fits, never below 1×, so its texels stay square. A number: that scale, whatever the line.
33
+ */
34
+ iconScale?: 'line' | number;
35
+ /** Whole-pixel positions and icon scales (a pixel-art game). */
36
+ pixelPerfect?: boolean;
37
+ }
38
+ export interface RichTextItem {
39
+ kind: 'text';
40
+ text: string;
41
+ style: RichStyle;
42
+ x: number;
43
+ /** Top of the text's own line box. */
44
+ y: number;
45
+ width: number;
46
+ height: number;
47
+ }
48
+ export interface RichIconItem {
49
+ kind: 'icon';
50
+ key: string;
51
+ frame?: string;
52
+ style: RichStyle;
53
+ x: number;
54
+ y: number;
55
+ width: number;
56
+ height: number;
57
+ }
58
+ export type RichItem = RichTextItem | RichIconItem;
59
+ export interface RichLine {
60
+ y: number;
61
+ width: number;
62
+ height: number;
63
+ /** Baseline from the line's top. */
64
+ baseline: number;
65
+ items: RichItem[];
66
+ }
67
+ export interface RichLayout {
68
+ /** The box: `wrapWidth` when wrapping, else the widest line. */
69
+ width: number;
70
+ height: number;
71
+ lines: RichLine[];
72
+ }
73
+ /** Breaks spans into lines and places every run and icon. */
74
+ export declare function layoutRichText(spans: readonly RichSpan[], measure: RichMeasure, options?: RichLayoutOptions): RichLayout;
75
+ export declare function sameStyle(a: RichStyle, b: RichStyle): boolean;
76
+ //# sourceMappingURL=richLayout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richLayout.d.ts","sourceRoot":"","sources":["../../../../src/ui/rich/richLayout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAExD;;;;;;;GAOG;AAEH,MAAM,WAAW,WAAW;IAC1B,4FAA4F;IAC5F,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAClD,2CAA2C;IAC3C,UAAU,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IACrC,mFAAmF;IACnF,MAAM,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM,CAAC;IAClC,iDAAiD;IACjD,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACrF;AAED,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAChC,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gEAAgE;IAChE,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,sCAAsC;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,SAAS,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,QAAQ;IACvB,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,oCAAoC;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,QAAQ,EAAE,CAAC;CACnB;AAaD,6DAA6D;AAC7D,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,iBAAsB,GAAG,UAAU,CA+D5H;AA4HD,wBAAgB,SAAS,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,GAAG,OAAO,CAE7D"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * The markup `RichText` reads: square-bracket tags, like BBCode, chosen because a translator can type them, a chat
3
+ * line can carry them, and nothing in ordinary prose looks like one.
4
+ *
5
+ * | Markup | Means |
6
+ * |---|---|
7
+ * | `[color=#f0c060]…[/color]` | colour: `#rgb`, `#rrggbb`, or a name the caller defines (`colors: { gold: '#f0c060' }`) |
8
+ * | `[b]…[/b]`, `[i]…[/i]` | bold, italic (where the font has them) |
9
+ * | `[size=16]…[/size]` | font size in pixels |
10
+ * | `[icon=coin]`, `[icon=items:12]` | an inline icon: a texture key, and after the last `:` a frame of it |
11
+ * | `[[` | a literal `[` |
12
+ *
13
+ * Anything else in brackets — an unknown tag, a bad value, a close with nothing open — is printed as written, so a
14
+ * typo shows on screen instead of swallowing the text after it. Tags still open at the end are closed there; closing
15
+ * an outer tag closes the ones opened inside it. Text from players (names, chat) goes through `escapeRichText` first.
16
+ * Pure: no Pixi, no DOM.
17
+ */
18
+ /** How a run of text is drawn. Unset fields fall back to the font's own. */
19
+ export interface RichStyle {
20
+ color?: string;
21
+ bold: boolean;
22
+ italic: boolean;
23
+ size?: number;
24
+ }
25
+ export interface RichTextSpan {
26
+ kind: 'text';
27
+ text: string;
28
+ style: RichStyle;
29
+ }
30
+ export interface RichIconSpan {
31
+ kind: 'icon';
32
+ key: string;
33
+ frame?: string;
34
+ /** The style around it: its size decides the icon's height. */
35
+ style: RichStyle;
36
+ }
37
+ export type RichSpan = RichTextSpan | RichIconSpan;
38
+ export interface RichMarkupOptions {
39
+ /** Colour names the markup may use besides hex (`[color=gold]`). */
40
+ colors?: Readonly<Record<string, string>>;
41
+ }
42
+ /** Makes text safe to put inside markup: every `[` doubled, so a player named `[b]` prints as typed. */
43
+ export declare function escapeRichText(text: string): string;
44
+ /** Parses markup into spans; adjacent text of one style is one span. */
45
+ export declare function parseRichText(source: string, options?: RichMarkupOptions): RichSpan[];
46
+ /** Plain text of markup: tags gone, icons gone, escapes undone (for measuring, logs, screen readers). */
47
+ export declare function stripRichText(source: string, options?: RichMarkupOptions): string;
48
+ //# sourceMappingURL=richMarkup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"richMarkup.d.ts","sourceRoot":"","sources":["../../../../src/ui/rich/richMarkup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,4EAA4E;AAC5E,MAAM,WAAW,SAAS;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,KAAK,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG,YAAY,GAAG,YAAY,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAC3C;AAMD,wGAAwG;AACxG,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wEAAwE;AACxE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,QAAQ,EAAE,CAwCzF;AAED,yGAAyG;AACzG,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAIrF"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * `1681-engine/updates`: file-by-file web updates from a release store, the pure half — the feed's shapes, which web
3
+ * to take, and what to copy or download to build it. No Node, DOM or Electron: shared by the desktop shell
4
+ * (`1681-engine/electron`), a browser build and the phone apps.
5
+ */
6
+ export { isNewer, safePath, isSha256, validManifest, fileUrl, type WebFile, type WebManifest, type LatestJson, type ReleaseFile, } from './manifest.js';
7
+ export { planWeb, type WebPlan } from './webPlan.js';
8
+ export { pickWebUpdate, apkUpdateOf, pluginEntries, heldBundle, type WebBundle, type NewerRelease, type PluginEntry } from './pickUpdate.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/updates/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,aAAa,EACb,OAAO,EACP,KAAK,OAAO,EACZ,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * The shapes of a release store's feed for file-by-file web updates, and the rules for trusting one. One definition
3
+ * for every client that reads it: the desktop shell's patcher (`1681-engine/electron`), a browser build and the phone
4
+ * apps' over-the-air updater. A publish script writes, per channel:
5
+ *
6
+ * - `<channel>/latest.json` ({@link LatestJson}): the newest build and where its pieces lie, as paths under the channel,
7
+ * written last so a client never reads a release that is half up;
8
+ * - `<channel>/web/<version>.json` ({@link WebManifest}): every file of the built web with its sha256;
9
+ * - `<channel>/files/<sha256>`: each content once, so a release uploads and a client downloads only what is new.
10
+ *
11
+ * Kept pure (no Node, no DOM, no Electron) so a phone's web view and an Electron main process share it.
12
+ */
13
+ /** One file of a built web, as the manifest lists it. */
14
+ export interface WebFile {
15
+ /** Relative to the web's root, forward slashes (`assets/index-3f2a.js`). */
16
+ path: string;
17
+ /** Lower-case hex sha256 of the content; also its name under `<channel>/files/`. */
18
+ sha256: string;
19
+ size: number;
20
+ }
21
+ /** `<channel>/web/<version>.json`. */
22
+ export interface WebManifest {
23
+ version: string;
24
+ /**
25
+ * The desktop shell this web needs (`shellId` in `1681-engine/electron`): a web talks to its shell through a
26
+ * preload script and may need what a newer shell adds, so any other shell takes the installer instead.
27
+ */
28
+ shell: string;
29
+ /** The lowest native build of the phone apps this web needs: a web calling a plugin the app lacks must never reach it. */
30
+ minNative: number;
31
+ files: WebFile[];
32
+ }
33
+ /** A packaged download listed in `latest.json` (an APK, an installer). */
34
+ export interface ReleaseFile {
35
+ file: string;
36
+ size: number;
37
+ sha256?: string;
38
+ }
39
+ /** `<channel>/latest.json`. */
40
+ export interface LatestJson {
41
+ version: string;
42
+ date?: string;
43
+ /** The build's web: its manifest's path under the channel, the shell and native build it needs. */
44
+ web?: {
45
+ manifest: string;
46
+ shell: string;
47
+ minNative: number;
48
+ };
49
+ /** The Android package, when the channel publishes one. */
50
+ apk?: {
51
+ file: string;
52
+ size: number;
53
+ sha256: string;
54
+ };
55
+ /** Desktop installers by platform key (the publisher names the keys, e.g. `win`, `macArm`, `macX64`). */
56
+ desktop?: Record<string, ReleaseFile | undefined>;
57
+ }
58
+ /** Whether version `a` ("0.5.23", "v0.5.23") is newer than `b`, number by number; a missing part counts 0. */
59
+ export declare function isNewer(a: string, b: string): boolean;
60
+ /**
61
+ * A path a manifest may name: relative, forward slashes, no `.` or `..` segment, no NUL — nothing that could write
62
+ * outside the web's own folder once joined to it.
63
+ */
64
+ export declare function safePath(p: string): boolean;
65
+ /** Whether `s` is a lower-case hex sha256. */
66
+ export declare function isSha256(s: unknown): s is string;
67
+ /**
68
+ * A manifest whose shape may be trusted: every path safe and listed once, every hash a sha256, every size a number,
69
+ * and an `index.html` (a web without one cannot be loaded, and a truncated upload is the usual way to get one).
70
+ */
71
+ export declare function validManifest(m: unknown): m is WebManifest;
72
+ /** Where a content lies in the store: `<channelUrl>/files/<sha256>`. */
73
+ export declare function fileUrl(channelUrl: string, sha256: string): string;
74
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../src/updates/manifest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,yDAAyD;AACzD,MAAM,WAAW,OAAO;IACtB,4EAA4E;IAC5E,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,sCAAsC;AACtC,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,KAAK,EAAE,MAAM,CAAC;IACd,0HAA0H;IAC1H,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,EAAE,CAAC;CAClB;AAED,0EAA0E;AAC1E,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,+BAA+B;AAC/B,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mGAAmG;IACnG,GAAG,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7D,2DAA2D;IAC3D,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrD,yGAAyG;IACzG,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,SAAS,CAAC,CAAC;CACnD;AAED,8GAA8G;AAC9G,wBAAgB,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CASrD;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAG3C;AAID,8CAA8C;AAC9C,wBAAgB,QAAQ,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,MAAM,CAEhD;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,OAAO,GAAG,CAAC,IAAI,WAAW,CAU1D;AAED,wEAAwE;AACxE,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElE"}
@@ -0,0 +1,43 @@
1
+ import { type LatestJson } from './manifest.js';
2
+ /** A web a client may take: its version, its manifest's full URL and the native build it needs. */
3
+ export interface WebBundle {
4
+ version: string;
5
+ manifestUrl: string;
6
+ minNative: number;
7
+ }
8
+ /**
9
+ * The web to take from `latest`: newer than the web running (`webVersion`), and needing no native code this app lacks
10
+ * (`nativeBuild` ≥ the web's `minNative`). A browser or desktop build with no native layer passes `Infinity`.
11
+ */
12
+ export declare function pickWebUpdate(latest: LatestJson, channelUrl: string, webVersion: string, nativeBuild: number): WebBundle | null;
13
+ /** A newer build than this one, and where its Android package downloads from. */
14
+ export interface NewerRelease {
15
+ version: string;
16
+ apkUrl: string;
17
+ }
18
+ /**
19
+ * The build's APK, when it is newer than this client and its web cannot come over the air instead (`webBundle` is
20
+ * what {@link pickWebUpdate} found): the package is the slow road, for native changes.
21
+ */
22
+ export declare function apkUpdateOf(latest: LatestJson, channelUrl: string, clientVersion: string, webBundle: WebBundle | null): NewerRelease | null;
23
+ /** One entry of a multi-file bundle download, in the shape `@capgo/capacitor-updater`'s `ManifestEntry` takes. */
24
+ export interface PluginEntry {
25
+ file_name: string;
26
+ file_hash: string;
27
+ download_url: string;
28
+ }
29
+ /**
30
+ * A phone updater's download list for `manifest`, or null when the manifest is not one to trust (another version, an
31
+ * unsafe or repeated path, a bad hash, no `index.html`). The updater checks each file against its hash and reuses
32
+ * every file it already holds, so only new content is fetched.
33
+ */
34
+ export declare function pluginEntries(manifest: unknown, version: string, channelUrl: string): PluginEntry[] | null;
35
+ /**
36
+ * A copy of `bundle` the updater already holds whole (downloaded and checked, applied or waiting), so asking again —
37
+ * a settings screen's check after the login screen's — takes it instead of downloading the same files twice.
38
+ */
39
+ export declare function heldBundle<T extends {
40
+ version: string;
41
+ status: string;
42
+ }>(held: readonly T[], bundle: WebBundle): T | null;
43
+ //# sourceMappingURL=pickUpdate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickUpdate.d.ts","sourceRoot":"","sources":["../../../src/updates/pickUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,UAAU,EAAoB,MAAM,YAAY,CAAC;AAErG,mGAAmG;AACnG,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAI/H;AAED,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,IAAI,GAAG,YAAY,GAAG,IAAI,CAG3I;AAED,kHAAkH;AAClH,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,IAAI,CAW1G;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,GAAG,IAAI,CAEzH"}
@@ -0,0 +1,21 @@
1
+ import type { WebFile, WebManifest } from './manifest.js';
2
+ /** What building a new web takes, given the files a client already holds. */
3
+ export interface WebPlan {
4
+ /** Files taken from the web held now: `from` is their path there. */
5
+ copy: {
6
+ path: string;
7
+ from: string;
8
+ }[];
9
+ /** Files to fetch from `<channel>/files/<sha256>`; content shared by several paths appears once per path. */
10
+ download: WebFile[];
11
+ /** Bytes to download, each distinct content counted once. */
12
+ bytes: number;
13
+ }
14
+ /**
15
+ * What to copy and what to download for `target`, given the web held now (`have`: path → sha256): a file whose path
16
+ * holds the same content is copied from there, one whose content lies under another path (a bundler renamed it) is
17
+ * copied from that path, and only content found nowhere is downloaded — once, however many paths share it. This is
18
+ * what makes a patch cost only what changed, the way a game launcher patches.
19
+ */
20
+ export declare function planWeb(target: WebManifest, have: ReadonlyMap<string, string>): WebPlan;
21
+ //# sourceMappingURL=webPlan.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webPlan.d.ts","sourceRoot":"","sources":["../../../src/updates/webPlan.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEvD,6EAA6E;AAC7E,MAAM,WAAW,OAAO;IACtB,qEAAqE;IACrE,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACvC,6GAA6G;IAC7G,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAoBvF"}
package/dist/ui/Bar.js CHANGED
@@ -51,4 +51,3 @@ class v extends d {
51
51
  export {
52
52
  v as Bar
53
53
  };
54
- //# sourceMappingURL=Bar.js.map
package/dist/ui/Button.js CHANGED
@@ -55,4 +55,3 @@ class v extends d {
55
55
  export {
56
56
  v as Button
57
57
  };
58
- //# sourceMappingURL=Button.js.map
package/dist/ui/Dialog.js CHANGED
@@ -53,4 +53,3 @@ class H extends p {
53
53
  export {
54
54
  H as Dialog
55
55
  };
56
- //# sourceMappingURL=Dialog.js.map
@@ -94,4 +94,3 @@ export {
94
94
  f as DEFAULT_NAV,
95
95
  x as FocusManager
96
96
  };
97
- //# sourceMappingURL=FocusManager.js.map
package/dist/ui/Label.js CHANGED
@@ -33,4 +33,3 @@ class i extends c {
33
33
  export {
34
34
  i as Label
35
35
  };
36
- //# sourceMappingURL=Label.js.map
package/dist/ui/List.js CHANGED
@@ -42,4 +42,3 @@ class m extends c {
42
42
  export {
43
43
  m as List
44
44
  };
45
- //# sourceMappingURL=List.js.map
package/dist/ui/Panel.js CHANGED
@@ -35,4 +35,3 @@ class x extends f {
35
35
  export {
36
36
  x as Panel
37
37
  };
38
- //# sourceMappingURL=Panel.js.map
@@ -93,4 +93,3 @@ class w extends n {
93
93
  export {
94
94
  w as ScrollView
95
95
  };
96
- //# sourceMappingURL=ScrollView.js.map
package/dist/ui/Slider.js CHANGED
@@ -52,4 +52,3 @@ class b extends l {
52
52
  export {
53
53
  b as Slider
54
54
  };
55
- //# sourceMappingURL=Slider.js.map
package/dist/ui/Stack.js CHANGED
@@ -25,4 +25,3 @@ class f extends h {
25
25
  export {
26
26
  f as Stack
27
27
  };
28
- //# sourceMappingURL=Stack.js.map
package/dist/ui/Toggle.js CHANGED
@@ -34,4 +34,3 @@ class o extends a {
34
34
  export {
35
35
  o as Toggle
36
36
  };
37
- //# sourceMappingURL=Toggle.js.map
package/dist/ui/UiHost.js CHANGED
@@ -6,4 +6,3 @@ function e(r) {
6
6
  export {
7
7
  e as uiHostOf
8
8
  };
9
- //# sourceMappingURL=UiHost.js.map
@@ -22,4 +22,3 @@ const u = {
22
22
  export {
23
23
  u as UiPointerGate
24
24
  };
25
- //# sourceMappingURL=UiPointerGate.js.map
package/dist/ui/UiRoot.js CHANGED
@@ -90,4 +90,3 @@ class y extends h {
90
90
  export {
91
91
  y as UiRoot
92
92
  };
93
- //# sourceMappingURL=UiRoot.js.map
package/dist/ui/Widget.js CHANGED
@@ -87,4 +87,3 @@ export {
87
87
  n as Widget,
88
88
  b as sizeOf
89
89
  };
90
- //# sourceMappingURL=Widget.js.map
@@ -56,4 +56,3 @@ class r {
56
56
  export {
57
57
  r as DomOverlay
58
58
  };
59
- //# sourceMappingURL=DomOverlay.js.map
@@ -56,4 +56,3 @@ class m {
56
56
  export {
57
57
  m as DomWorldAnchors
58
58
  };
59
- //# sourceMappingURL=DomWorldAnchors.js.map
@@ -24,4 +24,3 @@ class a {
24
24
  export {
25
25
  a as InputShield
26
26
  };
27
- //# sourceMappingURL=InputShield.js.map
@@ -39,4 +39,3 @@ function l(f) {
39
39
  export {
40
40
  l as createStore
41
41
  };
42
- //# sourceMappingURL=createStore.js.map
@@ -33,4 +33,3 @@ export {
33
33
  i as isInside,
34
34
  u as shouldShield
35
35
  };
36
- //# sourceMappingURL=shieldDecision.js.map
@@ -8,4 +8,3 @@ export {
8
8
  f as onScreen,
9
9
  x as worldToScreen
10
10
  };
11
- //# sourceMappingURL=worldToScreen.js.map
@@ -17,4 +17,3 @@ function b(e, t, o, g = 0, n = !1) {
17
17
  export {
18
18
  b as anchorPosition
19
19
  };
20
- //# sourceMappingURL=anchor.js.map
@@ -22,4 +22,3 @@ export {
22
22
  d as setDrainValue,
23
23
  f as stepDrain
24
24
  };
25
- //# sourceMappingURL=barDrain.js.map
@@ -14,4 +14,3 @@ function W(h, a, n = {}) {
14
14
  export {
15
15
  W as fitToViewport
16
16
  };
17
- //# sourceMappingURL=fitToViewport.js.map
@@ -39,4 +39,3 @@ export {
39
39
  G as linearFocus,
40
40
  F as nextFocus
41
41
  };
42
- //# sourceMappingURL=focusNav.js.map
@@ -18,4 +18,3 @@ export {
18
18
  i as snapPx,
19
19
  u as snapRect
20
20
  };
21
- //# sourceMappingURL=geometry.js.map
@@ -7,4 +7,3 @@ function m(i, n, t = {}) {
7
7
  export {
8
8
  m as listWidth
9
9
  };
10
- //# sourceMappingURL=listWidth.js.map
@@ -25,4 +25,3 @@ function a(e, t, s, h = {}) {
25
25
  export {
26
26
  a as placeTooltip
27
27
  };
28
- //# sourceMappingURL=placeTooltip.js.map
@@ -21,4 +21,3 @@ export {
21
21
  a as scrollIntoView,
22
22
  p as stepFling
23
23
  };
24
- //# sourceMappingURL=scroll.js.map
@@ -17,4 +17,3 @@ export {
17
17
  i as sliderFraction,
18
18
  s as sliderValueAt
19
19
  };
20
- //# sourceMappingURL=slider.js.map
@@ -24,4 +24,3 @@ function M(h, s = {}) {
24
24
  export {
25
25
  M as stackLayout
26
26
  };
27
- //# sourceMappingURL=stack.js.map
@@ -10,4 +10,3 @@ function p(s, h, u = 0) {
10
10
  export {
11
11
  p as wrapRow
12
12
  };
13
- //# sourceMappingURL=wrapRow.js.map
@@ -0,0 +1,87 @@
1
+ import { Sprite as a } from "pixi.js";
2
+ import { Widget as c } from "../Widget.js";
3
+ import { layoutRichText as d } from "./richLayout.js";
4
+ import { parseRichText as p } from "./richMarkup.js";
5
+ class b extends c {
6
+ source = "";
7
+ last = { width: 0, height: 0, lines: [] };
8
+ runs = [];
9
+ icons = [];
10
+ measure;
11
+ options;
12
+ /** Whether the last layout was on whole pixels. */
13
+ snapped = !1;
14
+ constructor(t, h) {
15
+ super(), this.options = { ...h };
16
+ const s = h.font;
17
+ this.measure = {
18
+ textWidth: (i, o) => s.textWidth(i, o),
19
+ lineHeight: (i) => s.lineHeight(i),
20
+ ascent: (i) => s.ascent?.(i) ?? s.lineHeight(i) * 0.8,
21
+ iconSize: (i, o) => {
22
+ const r = h.textures?.get(i, o);
23
+ return r ? { width: r.orig.width, height: r.orig.height } : { width: 0, height: 0 };
24
+ }
25
+ }, this.source = t, this.relayout(), h.pixelPerfect === void 0 && this.on("added", () => this.pixelPerfect() !== this.snapped && this.relayout());
26
+ }
27
+ /** The markup shown. */
28
+ get markup() {
29
+ return this.source;
30
+ }
31
+ /** Where every line, run and icon was placed, for hit-testing a word or drawing behind one. */
32
+ get layout() {
33
+ return this.last;
34
+ }
35
+ /** Changes the text; the same markup again costs nothing. */
36
+ setText(t) {
37
+ return t === this.source ? this : (this.source = t, this.relayout(), this);
38
+ }
39
+ /** Wraps to a new width (undefined: only at `\n`). */
40
+ setWrapWidth(t) {
41
+ return t === this.options.wrapWidth ? this : (t === void 0 ? delete this.options.wrapWidth : this.options.wrapWidth = t, this.relayout(), this);
42
+ }
43
+ setAlign(t) {
44
+ return t === (this.options.align ?? "left") ? this : (this.options.align = t, this.relayout(), this);
45
+ }
46
+ /** Lays out and draws again: after the font's colours or the icons' textures were swapped under it. */
47
+ relayout() {
48
+ const t = this.snapped = this.pixelPerfect(), h = p(this.source, this.options);
49
+ this.last = d(h, this.measure, { ...this.options, pixelPerfect: t });
50
+ let s = 0, i = 0;
51
+ for (const l of this.last.lines)
52
+ for (const e of l.items) {
53
+ if (e.kind === "text") {
54
+ const u = this.runs[s] ?? this.addRun();
55
+ s++, this.options.font.updateRun(u, e.text, e.style), u.position.set(e.x, e.y), u.visible = !0;
56
+ continue;
57
+ }
58
+ if (!this.options.textures || e.width === 0) continue;
59
+ const n = this.icons[i] ?? this.addIcon();
60
+ i++, n.texture = this.options.textures.get(e.key, e.frame), n.position.set(e.x, e.y), n.setSize(e.width, e.height), n.visible = !0;
61
+ }
62
+ for (; s < this.runs.length; s++) this.runs[s].visible = !1;
63
+ for (; i < this.icons.length; i++) this.icons[i].visible = !1;
64
+ const o = this.boxW, r = this.boxH;
65
+ this.boxW = Math.ceil(this.last.width), this.boxH = Math.ceil(this.last.height), (this.boxW !== o || this.boxH !== r) && this.notifyResized();
66
+ }
67
+ destroy(t) {
68
+ super.destroy(typeof t == "object" ? { ...t, children: !0, texture: !1 } : { children: !0 });
69
+ }
70
+ redraw() {
71
+ this.alpha = this.enabled ? 1 : 0.5;
72
+ }
73
+ pixelPerfect() {
74
+ return this.options.pixelPerfect ?? this.host?.pixelPerfect ?? !1;
75
+ }
76
+ addRun() {
77
+ const t = this.options.font.createRun();
78
+ return this.runs.push(t), this.addChild(t), t;
79
+ }
80
+ addIcon() {
81
+ const t = new a();
82
+ return t.roundPixels = !0, this.icons.push(t), this.addChild(t), t;
83
+ }
84
+ }
85
+ export {
86
+ b as RichText
87
+ };