@buoy-gg/shared-ui 7.0.36 → 7.0.39

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 (284) hide show
  1. package/README.md +33 -26
  2. package/floating.d.ts +1 -0
  3. package/floating.js +2 -0
  4. package/lib/commonjs/JsModal.js +16 -1
  5. package/lib/commonjs/JsModal.web.js +16 -1
  6. package/lib/commonjs/dataViewer/CyberpunkInput.js +6 -1
  7. package/lib/commonjs/dataViewer/LiveExplorer.js +28 -16
  8. package/lib/commonjs/hooks/safe-area-impl.js +1 -1
  9. package/lib/commonjs/icons/ReactQueryIcon.js +9 -161
  10. package/lib/commonjs/icons/SentryBugIcon.js +9 -171
  11. package/lib/commonjs/index.js +57 -6
  12. package/lib/commonjs/license/AccountSetup.js +56 -0
  13. package/lib/commonjs/license/AccountSetup.web.js +81 -0
  14. package/lib/commonjs/license/FeatureGate.js +10 -43
  15. package/lib/commonjs/license/FreeAccountPrompt.js +35 -12
  16. package/lib/commonjs/license/index.js +0 -6
  17. package/lib/commonjs/license/licenseModule.js +56 -36
  18. package/lib/commonjs/license/tierLimits.js +12 -63
  19. package/lib/commonjs/storage/devToolsStorageKeys.js +8 -1
  20. package/lib/commonjs/stores/BaseEventStore.js +21 -5
  21. package/lib/commonjs/stores/createToolStore.js +21 -3
  22. package/lib/commonjs/stores/floatingToolStore.js +71 -0
  23. package/lib/commonjs/stores/floatingToolStore.test.js +112 -0
  24. package/lib/commonjs/sync/toolActionRegistry.js +85 -2
  25. package/lib/commonjs/ui/backgrounds/README.md +52 -0
  26. package/lib/commonjs/ui/backgrounds/ToolBackground.js +4 -2
  27. package/lib/commonjs/ui/backgrounds/index.js +8 -1
  28. package/lib/commonjs/ui/backgrounds/registry.js +8 -0
  29. package/lib/commonjs/ui/backgrounds/variants/wormhole/motion.js +48 -0
  30. package/lib/commonjs/ui/backgrounds/variants/wormhole/textures.js +3 -0
  31. package/lib/commonjs/ui/backgrounds/variants/wormhole.js +133 -0
  32. package/lib/commonjs/ui/components/ClipboardHintBanner.js +5 -6
  33. package/lib/commonjs/ui/components/CompactRow.js +94 -74
  34. package/lib/commonjs/ui/components/DraggableHeader.js +16 -1
  35. package/lib/commonjs/ui/components/HeaderSearchButton.js +17 -4
  36. package/lib/commonjs/ui/floating/FloatingTool.js +1010 -0
  37. package/lib/commonjs/ui/floating/FloatingTool.web.js +591 -0
  38. package/lib/commonjs/ui/floating/FloatingToolHost.js +32 -0
  39. package/lib/commonjs/ui/floating/FloatingToolHost.web.js +28 -0
  40. package/lib/commonjs/ui/floating/index.js +105 -0
  41. package/lib/commonjs/ui/floating/index.web.js +105 -0
  42. package/lib/commonjs/ui/floating/onboardingConstants.js +70 -0
  43. package/lib/commonjs/ui/floating/onboardingConstants.web.js +34 -0
  44. package/lib/commonjs/ui/gameUI/constants/gameUIColors.js +3 -1
  45. package/lib/commonjs/ui/index.js +118 -2
  46. package/lib/commonjs/ui/night/nightTheme.js +10 -0
  47. package/lib/commonjs/ui/night/primitives.js +22 -5
  48. package/lib/commonjs/ui/otto/OttoSceneView.js +69 -0
  49. package/lib/commonjs/ui/otto/index.js +22 -0
  50. package/lib/commonjs/ui/otto/ottoEngine.js +10 -7
  51. package/lib/commonjs/ui/otto/ottoScenes.js +949 -0
  52. package/lib/commonjs/utils/minimalSuperJSON.js +13 -3
  53. package/lib/module/JsModal.js +16 -1
  54. package/lib/module/JsModal.web.js +16 -1
  55. package/lib/module/dataViewer/CyberpunkInput.js +6 -1
  56. package/lib/module/dataViewer/LiveExplorer.js +28 -16
  57. package/lib/module/hooks/safe-area-impl.js +1 -1
  58. package/lib/module/icons/ReactQueryIcon.js +9 -161
  59. package/lib/module/icons/SentryBugIcon.js +9 -171
  60. package/lib/module/index.js +4 -1
  61. package/lib/module/license/AccountSetup.js +52 -0
  62. package/lib/module/license/AccountSetup.web.js +77 -0
  63. package/lib/module/license/FeatureGate.js +10 -43
  64. package/lib/module/license/FreeAccountPrompt.js +35 -12
  65. package/lib/module/license/index.js +1 -1
  66. package/lib/module/license/licenseModule.js +50 -35
  67. package/lib/module/license/tierLimits.js +13 -63
  68. package/lib/module/storage/devToolsStorageKeys.js +8 -1
  69. package/lib/module/stores/BaseEventStore.js +21 -5
  70. package/lib/module/stores/createToolStore.js +21 -3
  71. package/lib/module/stores/floatingToolStore.js +61 -0
  72. package/lib/module/stores/floatingToolStore.test.js +111 -0
  73. package/lib/module/sync/toolActionRegistry.js +84 -2
  74. package/lib/module/ui/backgrounds/README.md +52 -0
  75. package/lib/module/ui/backgrounds/ToolBackground.js +4 -2
  76. package/lib/module/ui/backgrounds/index.js +2 -1
  77. package/lib/module/ui/backgrounds/registry.js +8 -0
  78. package/lib/module/ui/backgrounds/variants/wormhole/motion.js +44 -0
  79. package/lib/module/ui/backgrounds/variants/wormhole/textures.js +3 -0
  80. package/lib/module/ui/backgrounds/variants/wormhole.js +129 -0
  81. package/lib/module/ui/components/ClipboardHintBanner.js +5 -6
  82. package/lib/module/ui/components/CompactRow.js +94 -74
  83. package/lib/module/ui/components/DraggableHeader.js +16 -1
  84. package/lib/module/ui/components/HeaderSearchButton.js +17 -4
  85. package/lib/module/ui/floating/FloatingTool.js +1003 -0
  86. package/lib/module/ui/floating/FloatingTool.web.js +590 -0
  87. package/lib/module/ui/floating/FloatingToolHost.js +29 -0
  88. package/lib/module/ui/floating/FloatingToolHost.web.js +25 -0
  89. package/lib/module/ui/floating/index.js +6 -0
  90. package/lib/module/ui/floating/index.web.js +6 -0
  91. package/lib/module/ui/floating/onboardingConstants.js +64 -0
  92. package/lib/module/ui/floating/onboardingConstants.web.js +27 -0
  93. package/lib/module/ui/gameUI/constants/gameUIColors.js +3 -1
  94. package/lib/module/ui/index.js +5 -1
  95. package/lib/module/ui/night/nightTheme.js +10 -0
  96. package/lib/module/ui/night/primitives.js +22 -5
  97. package/lib/module/ui/otto/OttoSceneView.js +64 -0
  98. package/lib/module/ui/otto/index.js +3 -1
  99. package/lib/module/ui/otto/ottoEngine.js +10 -7
  100. package/lib/module/ui/otto/ottoScenes.js +942 -0
  101. package/lib/module/utils/minimalSuperJSON.js +13 -3
  102. package/lib/typescript/commonjs/JsModal.d.ts +43 -2
  103. package/lib/typescript/commonjs/JsModal.d.ts.map +1 -1
  104. package/lib/typescript/commonjs/JsModal.web.d.ts +5 -2
  105. package/lib/typescript/commonjs/JsModal.web.d.ts.map +1 -1
  106. package/lib/typescript/commonjs/dataViewer/CyberpunkInput.d.ts.map +1 -1
  107. package/lib/typescript/commonjs/dataViewer/LiveExplorer.d.ts.map +1 -1
  108. package/lib/typescript/commonjs/hooks/safe-area-impl.d.ts +1 -1
  109. package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts +1 -2
  110. package/lib/typescript/commonjs/icons/ReactQueryIcon.d.ts.map +1 -1
  111. package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts +1 -2
  112. package/lib/typescript/commonjs/icons/SentryBugIcon.d.ts.map +1 -1
  113. package/lib/typescript/commonjs/index.d.ts +4 -1
  114. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  115. package/lib/typescript/commonjs/license/AccountSetup.d.ts +4 -0
  116. package/lib/typescript/commonjs/license/AccountSetup.d.ts.map +1 -0
  117. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts +2 -0
  118. package/lib/typescript/commonjs/license/AccountSetup.web.d.ts.map +1 -0
  119. package/lib/typescript/commonjs/license/FeatureGate.d.ts +3 -19
  120. package/lib/typescript/commonjs/license/FeatureGate.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts +8 -11
  122. package/lib/typescript/commonjs/license/FreeAccountPrompt.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/license/index.d.ts +1 -1
  124. package/lib/typescript/commonjs/license/index.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/license/licenseModule.d.ts +18 -31
  126. package/lib/typescript/commonjs/license/licenseModule.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/license/tierLimits.d.ts +9 -52
  128. package/lib/typescript/commonjs/license/tierLimits.d.ts.map +1 -1
  129. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts +6 -0
  130. package/lib/typescript/commonjs/storage/devToolsStorageKeys.d.ts.map +1 -1
  131. package/lib/typescript/commonjs/stores/BaseEventStore.d.ts.map +1 -1
  132. package/lib/typescript/commonjs/stores/createToolStore.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/stores/floatingToolStore.d.ts +27 -0
  134. package/lib/typescript/commonjs/stores/floatingToolStore.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts +2 -0
  136. package/lib/typescript/commonjs/stores/floatingToolStore.test.d.ts.map +1 -0
  137. package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts +4 -32
  138. package/lib/typescript/commonjs/sync/toolActionRegistry.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts +7 -1
  140. package/lib/typescript/commonjs/ui/backgrounds/ToolBackground.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/ui/backgrounds/index.d.ts +2 -1
  142. package/lib/typescript/commonjs/ui/backgrounds/index.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/ui/backgrounds/registry.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/ui/backgrounds/types.d.ts +11 -1
  145. package/lib/typescript/commonjs/ui/backgrounds/types.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts +24 -0
  147. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/motion.d.ts.map +1 -0
  148. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts +13 -0
  149. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole/textures.d.ts.map +1 -0
  150. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts +3 -0
  151. package/lib/typescript/commonjs/ui/backgrounds/variants/wormhole.d.ts.map +1 -0
  152. package/lib/typescript/commonjs/ui/components/ClipboardHintBanner.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/ui/components/CompactRow.d.ts +8 -1
  154. package/lib/typescript/commonjs/ui/components/CompactRow.d.ts.map +1 -1
  155. package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts +4 -1
  156. package/lib/typescript/commonjs/ui/components/DraggableHeader.d.ts.map +1 -1
  157. package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts +7 -1
  158. package/lib/typescript/commonjs/ui/components/HeaderSearchButton.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts +79 -0
  160. package/lib/typescript/commonjs/ui/floating/FloatingTool.d.ts.map +1 -0
  161. package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts +64 -0
  162. package/lib/typescript/commonjs/ui/floating/FloatingTool.web.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts +3 -0
  164. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.d.ts.map +1 -0
  165. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts +3 -0
  166. package/lib/typescript/commonjs/ui/floating/FloatingToolHost.web.d.ts.map +1 -0
  167. package/lib/typescript/commonjs/ui/floating/index.d.ts +7 -0
  168. package/lib/typescript/commonjs/ui/floating/index.d.ts.map +1 -0
  169. package/lib/typescript/commonjs/ui/floating/index.web.d.ts +7 -0
  170. package/lib/typescript/commonjs/ui/floating/index.web.d.ts.map +1 -0
  171. package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts +30 -0
  172. package/lib/typescript/commonjs/ui/floating/onboardingConstants.d.ts.map +1 -0
  173. package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts +13 -0
  174. package/lib/typescript/commonjs/ui/floating/onboardingConstants.web.d.ts.map +1 -0
  175. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts +2 -0
  176. package/lib/typescript/commonjs/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
  177. package/lib/typescript/commonjs/ui/index.d.ts +6 -0
  178. package/lib/typescript/commonjs/ui/index.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/ui/night/nightTheme.d.ts +10 -0
  180. package/lib/typescript/commonjs/ui/night/nightTheme.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/ui/night/primitives.d.ts +10 -3
  182. package/lib/typescript/commonjs/ui/night/primitives.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts +30 -0
  184. package/lib/typescript/commonjs/ui/otto/OttoSceneView.d.ts.map +1 -0
  185. package/lib/typescript/commonjs/ui/otto/index.d.ts +2 -0
  186. package/lib/typescript/commonjs/ui/otto/index.d.ts.map +1 -1
  187. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts +1 -1
  188. package/lib/typescript/commonjs/ui/otto/ottoEngine.d.ts.map +1 -1
  189. package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts +75 -0
  190. package/lib/typescript/commonjs/ui/otto/ottoScenes.d.ts.map +1 -0
  191. package/lib/typescript/commonjs/utils/minimalSuperJSON.d.ts.map +1 -1
  192. package/lib/typescript/module/JsModal.d.ts +43 -2
  193. package/lib/typescript/module/JsModal.d.ts.map +1 -1
  194. package/lib/typescript/module/JsModal.web.d.ts +5 -2
  195. package/lib/typescript/module/JsModal.web.d.ts.map +1 -1
  196. package/lib/typescript/module/dataViewer/CyberpunkInput.d.ts.map +1 -1
  197. package/lib/typescript/module/dataViewer/LiveExplorer.d.ts.map +1 -1
  198. package/lib/typescript/module/hooks/safe-area-impl.d.ts +1 -1
  199. package/lib/typescript/module/icons/ReactQueryIcon.d.ts +1 -2
  200. package/lib/typescript/module/icons/ReactQueryIcon.d.ts.map +1 -1
  201. package/lib/typescript/module/icons/SentryBugIcon.d.ts +1 -2
  202. package/lib/typescript/module/icons/SentryBugIcon.d.ts.map +1 -1
  203. package/lib/typescript/module/index.d.ts +4 -1
  204. package/lib/typescript/module/index.d.ts.map +1 -1
  205. package/lib/typescript/module/license/AccountSetup.d.ts +4 -0
  206. package/lib/typescript/module/license/AccountSetup.d.ts.map +1 -0
  207. package/lib/typescript/module/license/AccountSetup.web.d.ts +2 -0
  208. package/lib/typescript/module/license/AccountSetup.web.d.ts.map +1 -0
  209. package/lib/typescript/module/license/FeatureGate.d.ts +3 -19
  210. package/lib/typescript/module/license/FeatureGate.d.ts.map +1 -1
  211. package/lib/typescript/module/license/FreeAccountPrompt.d.ts +8 -11
  212. package/lib/typescript/module/license/FreeAccountPrompt.d.ts.map +1 -1
  213. package/lib/typescript/module/license/index.d.ts +1 -1
  214. package/lib/typescript/module/license/index.d.ts.map +1 -1
  215. package/lib/typescript/module/license/licenseModule.d.ts +18 -31
  216. package/lib/typescript/module/license/licenseModule.d.ts.map +1 -1
  217. package/lib/typescript/module/license/tierLimits.d.ts +9 -52
  218. package/lib/typescript/module/license/tierLimits.d.ts.map +1 -1
  219. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts +6 -0
  220. package/lib/typescript/module/storage/devToolsStorageKeys.d.ts.map +1 -1
  221. package/lib/typescript/module/stores/BaseEventStore.d.ts.map +1 -1
  222. package/lib/typescript/module/stores/createToolStore.d.ts.map +1 -1
  223. package/lib/typescript/module/stores/floatingToolStore.d.ts +27 -0
  224. package/lib/typescript/module/stores/floatingToolStore.d.ts.map +1 -0
  225. package/lib/typescript/module/stores/floatingToolStore.test.d.ts +2 -0
  226. package/lib/typescript/module/stores/floatingToolStore.test.d.ts.map +1 -0
  227. package/lib/typescript/module/sync/toolActionRegistry.d.ts +4 -32
  228. package/lib/typescript/module/sync/toolActionRegistry.d.ts.map +1 -1
  229. package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts +7 -1
  230. package/lib/typescript/module/ui/backgrounds/ToolBackground.d.ts.map +1 -1
  231. package/lib/typescript/module/ui/backgrounds/index.d.ts +2 -1
  232. package/lib/typescript/module/ui/backgrounds/index.d.ts.map +1 -1
  233. package/lib/typescript/module/ui/backgrounds/registry.d.ts.map +1 -1
  234. package/lib/typescript/module/ui/backgrounds/types.d.ts +11 -1
  235. package/lib/typescript/module/ui/backgrounds/types.d.ts.map +1 -1
  236. package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts +24 -0
  237. package/lib/typescript/module/ui/backgrounds/variants/wormhole/motion.d.ts.map +1 -0
  238. package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts +13 -0
  239. package/lib/typescript/module/ui/backgrounds/variants/wormhole/textures.d.ts.map +1 -0
  240. package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts +3 -0
  241. package/lib/typescript/module/ui/backgrounds/variants/wormhole.d.ts.map +1 -0
  242. package/lib/typescript/module/ui/components/ClipboardHintBanner.d.ts.map +1 -1
  243. package/lib/typescript/module/ui/components/CompactRow.d.ts +8 -1
  244. package/lib/typescript/module/ui/components/CompactRow.d.ts.map +1 -1
  245. package/lib/typescript/module/ui/components/DraggableHeader.d.ts +4 -1
  246. package/lib/typescript/module/ui/components/DraggableHeader.d.ts.map +1 -1
  247. package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts +7 -1
  248. package/lib/typescript/module/ui/components/HeaderSearchButton.d.ts.map +1 -1
  249. package/lib/typescript/module/ui/floating/FloatingTool.d.ts +79 -0
  250. package/lib/typescript/module/ui/floating/FloatingTool.d.ts.map +1 -0
  251. package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts +64 -0
  252. package/lib/typescript/module/ui/floating/FloatingTool.web.d.ts.map +1 -0
  253. package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts +3 -0
  254. package/lib/typescript/module/ui/floating/FloatingToolHost.d.ts.map +1 -0
  255. package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts +3 -0
  256. package/lib/typescript/module/ui/floating/FloatingToolHost.web.d.ts.map +1 -0
  257. package/lib/typescript/module/ui/floating/index.d.ts +7 -0
  258. package/lib/typescript/module/ui/floating/index.d.ts.map +1 -0
  259. package/lib/typescript/module/ui/floating/index.web.d.ts +7 -0
  260. package/lib/typescript/module/ui/floating/index.web.d.ts.map +1 -0
  261. package/lib/typescript/module/ui/floating/onboardingConstants.d.ts +30 -0
  262. package/lib/typescript/module/ui/floating/onboardingConstants.d.ts.map +1 -0
  263. package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts +13 -0
  264. package/lib/typescript/module/ui/floating/onboardingConstants.web.d.ts.map +1 -0
  265. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts +2 -0
  266. package/lib/typescript/module/ui/gameUI/constants/gameUIColors.d.ts.map +1 -1
  267. package/lib/typescript/module/ui/index.d.ts +6 -0
  268. package/lib/typescript/module/ui/index.d.ts.map +1 -1
  269. package/lib/typescript/module/ui/night/nightTheme.d.ts +10 -0
  270. package/lib/typescript/module/ui/night/nightTheme.d.ts.map +1 -1
  271. package/lib/typescript/module/ui/night/primitives.d.ts +10 -3
  272. package/lib/typescript/module/ui/night/primitives.d.ts.map +1 -1
  273. package/lib/typescript/module/ui/otto/OttoSceneView.d.ts +30 -0
  274. package/lib/typescript/module/ui/otto/OttoSceneView.d.ts.map +1 -0
  275. package/lib/typescript/module/ui/otto/index.d.ts +2 -0
  276. package/lib/typescript/module/ui/otto/index.d.ts.map +1 -1
  277. package/lib/typescript/module/ui/otto/ottoEngine.d.ts +1 -1
  278. package/lib/typescript/module/ui/otto/ottoEngine.d.ts.map +1 -1
  279. package/lib/typescript/module/ui/otto/ottoScenes.d.ts +75 -0
  280. package/lib/typescript/module/ui/otto/ottoScenes.d.ts.map +1 -0
  281. package/lib/typescript/module/utils/minimalSuperJSON.d.ts.map +1 -1
  282. package/package.json +25 -5
  283. package/scripts/generate-wormhole-textures.cjs +261 -0
  284. package/scripts/test-wormhole-motion.cjs +59 -0
@@ -1 +1 @@
1
- {"version":3,"file":"ottoEngine.d.ts","sourceRoot":"","sources":["../../../../../src/ui/otto/ottoEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ottoEngine.d.ts","sourceRoot":"","sources":["../../../../../src/ui/otto/ottoEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Otto × tools — pixel scenes.
3
+ *
4
+ * One scene per dev tool: Otto in an engine pose, holding / leaning on /
5
+ * pointing at a hand-drawn PIXEL prop that stands for the tool. Everything is
6
+ * on the same 1-cell grid as the sprite, so a scene is just a bigger frame:
7
+ *
8
+ * renderOttoScene(scene, t) → W×H grid of palette keys (`.` = transparent)
9
+ * ottoSceneRuns(grid) → coloured horizontal runs for a renderer
10
+ *
11
+ * Props are ASCII art in `OTTO_SCENE_PALETTE` keys. A layer gets a one-cell
12
+ * black keyline around it (`outline`), sits over or under Otto (`over`), and
13
+ * can ride his hands (`follow` = bob with `OTTO_ANCHORS[state]`). Otto's own
14
+ * frame comes straight from `renderOttoFrame`, so the mascot is never
15
+ * redrawn here — only what he is doing with the tool.
16
+ *
17
+ * Pure, no React: the same module renders the website gallery, the export
18
+ * script and any RN still.
19
+ */
20
+ import { type OttoState } from "./ottoEngine";
21
+ /** Sprite palette plus prop colours. `.` and space are transparent. */
22
+ export declare const OTTO_SCENE_PALETTE: Record<string, string>;
23
+ export interface OttoSceneLayer {
24
+ /** Rows of palette keys. `.` / space = transparent. Rows may differ in length. */
25
+ art: string[];
26
+ /** Top-left cell of the art on the scene canvas. */
27
+ x: number;
28
+ y: number;
29
+ /** Dilate a one-cell `K` keyline around every filled cell (default true). */
30
+ outline?: boolean;
31
+ /** Draw over Otto (true) or behind him (false, default). */
32
+ over?: boolean;
33
+ /** Bob with the pose's anchor: vertical delta of `OTTO_ANCHORS[state]` vs tick 0. */
34
+ follow?: boolean;
35
+ }
36
+ export interface OttoScene {
37
+ /** Tool id (matches `buoy.tools.json`). */
38
+ id: string;
39
+ name: string;
40
+ /** Tool accent, for the card glow / dot. */
41
+ color: string;
42
+ /** One-line caption. */
43
+ line: string;
44
+ /** Engine state Otto is in. */
45
+ state: OttoState;
46
+ /** Where the 16×16 sprite's top-left sits on the canvas (default OTTO_SCENE_OTTO). */
47
+ ottoX?: number;
48
+ ottoY?: number;
49
+ layers: OttoSceneLayer[];
50
+ /** Ground strip columns `[x0, x1]` on the canvas; `false` for none. Default under Otto. */
51
+ ground?: readonly [number, number] | false;
52
+ }
53
+ export declare const OTTO_SCENE_W = 30;
54
+ export declare const OTTO_SCENE_H = 24;
55
+ /** Default sprite position: feet on row 17, lamp on row 7, prop room on both sides. */
56
+ export declare const OTTO_SCENE_OTTO: {
57
+ readonly x: 2;
58
+ readonly y: 5;
59
+ };
60
+ /** One frame of a scene as a `OTTO_SCENE_W × OTTO_SCENE_H` grid of palette keys. */
61
+ export declare function renderOttoScene(scene: OttoScene, t?: number): string[][];
62
+ export interface OttoSceneRun {
63
+ x: number;
64
+ y: number;
65
+ w: number;
66
+ color: string;
67
+ }
68
+ /** Run-length encode a scene frame into coloured spans, skipping transparency. */
69
+ export declare function ottoSceneRuns(grid: string[][]): OttoSceneRun[];
70
+ /** Tight bounds of the filled cells: `[x0, y0, x1, y1]` inclusive, or null when empty. */
71
+ export declare function ottoSceneBounds(grid: string[][]): [number, number, number, number] | null;
72
+ export declare const OTTO_SCENES: ReadonlyArray<OttoScene>;
73
+ /** Scene lookup by tool id. */
74
+ export declare const OTTO_SCENE_BY_ID: Readonly<Record<string, OttoScene>>;
75
+ //# sourceMappingURL=ottoScenes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ottoScenes.d.ts","sourceRoot":"","sources":["../../../../../src/ui/otto/ottoScenes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,EAA0D,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtG,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA6BrD,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,kFAAkF;IAClF,GAAG,EAAE,MAAM,EAAE,CAAC;IACd,oDAAoD;IACpD,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,6EAA6E;IAC7E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,qFAAqF;IACrF,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE,SAAS,CAAC;IACjB,sFAAsF;IACtF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,2FAA2F;IAC3F,MAAM,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAAC;CAC5C;AAED,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,eAAO,MAAM,YAAY,KAAK,CAAC;AAC/B,uFAAuF;AACvF,eAAO,MAAM,eAAe;;;CAA0B,CAAC;AAyCvD,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,EAAE,CAAC,SAAI,GAAG,MAAM,EAAE,EAAE,CAyCnE;AAED,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED,kFAAkF;AAClF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,YAAY,EAAE,CAiB9D;AAED,0FAA0F;AAC1F,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAezF;AA4TD,eAAO,MAAM,WAAW,EAAE,aAAa,CAAC,SAAS,CAoShD,CAAC;AAEF,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAyD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"minimalSuperJSON.d.ts","sourceRoot":"","sources":["../../../../src/utils/minimalSuperJSON.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0EH,KAAK,cAAc,GACf,WAAW,GACX,QAAQ,GACR,MAAM,GACN,OAAO,GACP,QAAQ,GACR,KAAK,GACL,KAAK,GACL,QAAQ,GACR,KAAK,GACL,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AA+T5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;KACzC,CAAC;CACH;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,CAYtD;AAED,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,CAyBpE"}
1
+ {"version":3,"file":"minimalSuperJSON.d.ts","sourceRoot":"","sources":["../../../../src/utils/minimalSuperJSON.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0EH,KAAK,cAAc,GACf,WAAW,GACX,QAAQ,GACR,MAAM,GACN,OAAO,GACP,QAAQ,GACR,KAAK,GACL,KAAK,GACL,QAAQ,GACR,KAAK,GACL,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;AA+T5B,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,GAAG,CAAC;IACV,IAAI,CAAC,EAAE;QACL,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;KACzC,CAAC;CACH;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,GAAG,GAAG,eAAe,CAYtD;AAED,wBAAgB,WAAW,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,eAAe,GAAG,CAAC,CA6BpE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@buoy-gg/shared-ui",
3
- "version": "7.0.36",
3
+ "version": "7.0.39",
4
4
  "description": "Shared UI components, hooks, and utilities",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -84,6 +84,17 @@
84
84
  "default": "./lib/commonjs/history/index.js",
85
85
  "types": "./lib/typescript/commonjs/history/index.d.ts"
86
86
  }
87
+ },
88
+ "./floating": {
89
+ "react-native": "./lib/module/ui/floating/index.js",
90
+ "import": {
91
+ "types": "./lib/typescript/module/ui/floating/index.web.d.ts",
92
+ "default": "./lib/module/ui/floating/index.web.js"
93
+ },
94
+ "require": {
95
+ "types": "./lib/typescript/commonjs/ui/floating/index.web.d.ts",
96
+ "default": "./lib/commonjs/ui/floating/index.web.js"
97
+ }
87
98
  }
88
99
  },
89
100
  "typesVersions": {
@@ -117,6 +128,9 @@
117
128
  ],
118
129
  "history/*": [
119
130
  "lib/typescript/module/history/*"
131
+ ],
132
+ "floating": [
133
+ "lib/typescript/module/ui/floating/index.d.ts"
120
134
  ]
121
135
  }
122
136
  },
@@ -132,14 +146,17 @@
132
146
  "utils.js",
133
147
  "utils.d.ts",
134
148
  "history.js",
135
- "history.d.ts"
149
+ "history.d.ts",
150
+ "floating.js",
151
+ "floating.d.ts"
136
152
  ],
137
153
  "sideEffects": false,
138
154
  "dependencies": {
139
- "@buoy-gg/floating-tools-core": "^7.0.36"
155
+ "@buoy-gg/floating-tools-core": "^7.0.39",
156
+ "@buoy-gg/floating-tools-react": "^7.0.39"
140
157
  },
141
158
  "peerDependencies": {
142
- "@buoy-gg/license": "7.0.36",
159
+ "@buoy-gg/license": "7.0.39",
143
160
  "@react-native-clipboard/clipboard": "*",
144
161
  "expo-clipboard": "*",
145
162
  "expo-file-system": "*",
@@ -159,6 +176,9 @@
159
176
  },
160
177
  "expo-file-system": {
161
178
  "optional": true
179
+ },
180
+ "react-native": {
181
+ "optional": true
162
182
  }
163
183
  },
164
184
  "devDependencies": {
@@ -167,7 +187,7 @@
167
187
  "expo-clipboard": "~7.1.5",
168
188
  "react-native-safe-area-context": "^5.6.2",
169
189
  "typescript": "~5.8.3",
170
- "@buoy-gg/license": "^7.0.36"
190
+ "@buoy-gg/license": "^7.0.39"
171
191
  },
172
192
  "react-native-builder-bob": {
173
193
  "source": "src",
@@ -0,0 +1,261 @@
1
+ // Generates src/ui/backgrounds/variants/wormhole/textures.ts.
2
+ // Usage (from packages/shared): node scripts/generate-wormhole-textures.cjs [--still scene.jpg] [--keep dir]
3
+ //
4
+ // The moving scene is a zoom, and a zoom only loops invisibly when the picture
5
+ // is self-similar under the handoff transform. So the cloud sheet is built by
6
+ // tiling ONE annulus of the real shader frame in log-polar space with the
7
+ // spiral symmetry sheet(K·ρ, φ+θ) = sheet(ρ, φ) (K, θ come from motion.ts).
8
+ // Two copies of the sheet, one K× larger and θ further round, are then the same
9
+ // picture, so the crossfade between them cannot be seen. The destination is
10
+ // cut from the same frame and drawn as a static layer above the sheets.
11
+ //
12
+ // Pipeline (all in memory, no image dependencies):
13
+ // 1. CPU port of apps/website vortexShader.ts renders the dark scene at u_t=4,
14
+ // framed so the destination sits at the centre, without the site vignette.
15
+ // 2. That frame is tiled into the sheet (opaque → JPEG via macOS `sips`).
16
+ // 3. The eye is cut with a feathered alpha (→ PNG, zlib only).
17
+ // 4. The reduced-motion still is kept from the existing module unless --still
18
+ // supplies a fresh WebGL capture (a centered 640px JPEG of the website).
19
+ const fs = require('node:fs'), path = require('node:path'), zlib = require('node:zlib'), os = require('node:os');
20
+ const { execFileSync } = require('node:child_process');
21
+ const ts = require('typescript');
22
+ const vm = require('node:vm');
23
+
24
+ const ROOT = path.join(__dirname, '..');
25
+ const MOTION = path.join(ROOT, 'src/ui/backgrounds/variants/wormhole/motion.ts');
26
+ const MODULE = path.join(ROOT, 'src/ui/backgrounds/variants/wormhole/textures.ts');
27
+ const args = process.argv.slice(2);
28
+ const flag = (name) => { const i = args.indexOf(name); return i >= 0 ? args[i + 1] : null; };
29
+
30
+ // The same numbers the animation uses — the sheet's symmetry MUST match them.
31
+ const motion = {};
32
+ vm.runInNewContext(ts.transpileModule(fs.readFileSync(MOTION, 'utf8'), { compilerOptions: { module: ts.ModuleKind.CommonJS } }).outputText, { exports: motion });
33
+ const K = motion.WORMHOLE_PERIOD, THETA = motion.WORMHOLE_TWIST * Math.PI / 180;
34
+
35
+ // Radii below are in STILL units: 1 = the edge of the shipped 640px still, which
36
+ // the plane stretches to its own radius. The source frame is rendered with a
37
+ // wider field (WIDE) so the whole tile annulus fits inside it.
38
+ const SOURCE_PX = 2560; // render size; every visible sheet period samples it at ≥ 1:1
39
+ const WIDE = 1.25; // still units per source-frame radius
40
+ const SHEET_PX = 1440; // opaque JPEG, stretched over the plane (≈ the old texel size at the shells' mean scale)
41
+ const CORE_PX = 384; // RGBA PNG, covers the centre half of the plane
42
+ const CORE_SPAN = 0.5; // still radii covered by the core image
43
+ const CORE_FEATHER = [0.12, 0.34]; // alpha 1→0 across these still radii
44
+ const BAND_INNER = 0.45; // the annulus [BAND_INNER, K·BAND_INNER] of the frame is the tile
45
+ const SEAM = 0.3; // fraction of a period crossfaded into the next tile
46
+ const JPEG_QUALITY = 88;
47
+
48
+ // ---------------------------------------------------------------------------
49
+ // 1. Shader port (dark palette, u_t = 4, no pointer / ripple / copy scrim)
50
+ // ---------------------------------------------------------------------------
51
+ const fract = (x) => x - Math.floor(x);
52
+ const pmod = (x, m) => ((x % m) + m) % m;
53
+ const hash = (x, y) => fract(Math.sin(x * 127.1 + y * 311.7) * 43758.5453123);
54
+ const smooth = (a, b, x) => { const t = Math.max(0, Math.min(1, (x - a) / (b - a))); return t * t * (3 - 2 * t); };
55
+ const mix = (a, b, t) => a + (b - a) * t;
56
+ const TAU = Math.PI * 2;
57
+ function noise(x, y) {
58
+ const ix = Math.floor(x), iy = Math.floor(y); let fx = x - ix, fy = y - iy;
59
+ fx = fx * fx * (3 - 2 * fx); fy = fy * fy * (3 - 2 * fy);
60
+ return mix(mix(hash(ix, iy), hash(ix + 1, iy), fx), mix(hash(ix, iy + 1), hash(ix + 1, iy + 1), fx), fy);
61
+ }
62
+ function volumeNoise(x, y, z) {
63
+ const zi = Math.floor(z); let f = z - zi; f = f * f * (3 - 2 * f);
64
+ const a = pmod(zi, 256), b = pmod(zi + 1, 256);
65
+ return mix(noise(x + a * 17.1, y + a * 31.7), noise(x + b * 17.1, y + b * 31.7), f);
66
+ }
67
+ function vapor(x, y, z) {
68
+ let r = 0, w = 0.53;
69
+ for (let i = 0; i < 3; i++) { r += volumeNoise(x, y, z) * w; x = x * 2.03 + 2.1; y = y * 2.03 + 5.7; z = z * 2.03 + 9.3; w *= 0.48; }
70
+ return r;
71
+ }
72
+ const WALL = [0.06, 0.16, 0.48], LIGHT = [0.2, 0.62, 1.0], DEST = [1.0, 0.33, 0.1], DUST = [0.8, 0.95, 1.0], LIFT = [0.004, 0.008, 0.017];
73
+ const SPEED = 0.68, TWIST = 0.48, BEND = 0.32, T = 4, FOV = 1.55 * WIDE;
74
+ const flightCourse = (z) => [(Math.sin(z * 0.24) * 2.2 + Math.sin(z * 0.08) * 1.4) * BEND, Math.cos(z * 0.19) * 1.7 * BEND];
75
+ const camera = T * SPEED * 2.1;
76
+ const origin = flightCourse(camera);
77
+ const ahead = flightCourse(camera + 2.2);
78
+ const look = [(ahead[0] - origin[0]) / 2.2, (ahead[1] - origin[1]) / 2.2];
79
+ const passage = (z) => { const f = flightCourse(camera + z); return [f[0] - origin[0] - look[0] * z, f[1] - origin[1] - look[1] * z]; };
80
+ const roll = Math.sin(T * 0.13) * 0.055, cr = Math.cos(roll), sr = Math.sin(roll);
81
+ // Frame the destination at the centre: undo the roll on its p-space position.
82
+ const far = passage(14).map((v) => v / 14);
83
+ const FRAME = [0.5 - (Math.cos(-roll) * far[0] - Math.sin(-roll) * far[1]) / FOV, 0.5 - (Math.sin(-roll) * far[0] + Math.cos(-roll) * far[1]) / FOV];
84
+
85
+ function shade(uvx, uvy) {
86
+ let px = (uvx - FRAME[0]) * FOV, py = (uvy - FRAME[1]) * FOV;
87
+ [px, py] = [cr * px - sr * py, sr * px + cr * py];
88
+ let z = 0;
89
+ for (let i = 0; i < 48; i++) {
90
+ const pz = passage(z), qx = px * z - pz[0], qy = py * z - pz[1];
91
+ const a = Math.atan2(qy, qx + 1e-6);
92
+ const gap = 0.78 + 0.055 * Math.sin(a * 4 + (camera + z) * 0.7) - Math.hypot(qx, qy);
93
+ if (gap < 0.004 || z > 18) break;
94
+ z += Math.max(0.003, gap * 0.65 / Math.hypot(px, py, 1));
95
+ }
96
+ const pz = passage(z), wx = px * z - pz[0], wy = py * z - pz[1];
97
+ const angle = Math.atan2(wy, wx), textureZ = camera + z, twist = angle + textureZ * TWIST;
98
+ const sx = Math.cos(twist) * 2.6, sy = Math.sin(twist) * 2.6, sz = textureZ * 0.78;
99
+ const n = vapor(sx, sy, sz);
100
+ const detail = volumeNoise(sx * 3.2 + n * 1.7, sy * 3.2 + n * 1.7, sz * 3.2 + n * 1.7);
101
+ const depth = 1 - Math.exp(-z * 0.13), wallFade = 1 - smooth(10, 18, z);
102
+ const billow = smooth(0.18, 0.75, n);
103
+ const ridges = Math.pow(1 - Math.abs(detail * 2 - 1), 7);
104
+ const ribbons = Math.pow(0.5 + 0.5 * Math.sin(twist * 5 + n * 6 + textureZ * 2.6), 7);
105
+ const copper = smooth(2.5, 9, z), side = 0.55 + 0.45 * Math.sin(angle - 0.8 + n * 1.2);
106
+ const dx = px - far[0], dy = py - far[1], core = Math.hypot(dx, dy);
107
+ const glow = Math.exp(-core * 13) * (0.23 + 0.04 * Math.sin(T * 0.7)), haze = Math.exp(-core * 5) * 0.025;
108
+ const c = [0, 0, 0];
109
+ for (let i = 0; i < 3; i++) {
110
+ let v = WALL[i] * (0.2 + billow * 1.15) + LIGHT[i] * (ridges * 0.17 + ribbons * 0.4) * (0.3 + billow);
111
+ v = mix(v, DEST[i] * (billow * 0.55 + ribbons * 0.3), copper);
112
+ c[i] = v * side * (0.75 + depth * 0.55) * wallFade + DEST[i] * glow + LIGHT[i] * haze;
113
+ }
114
+ for (let layer = 0; layer < 3; layer++) {
115
+ const r = Math.max(core, 0.012), angular = (Math.atan2(dy, dx) / TAU + 0.5) * (85 + layer * 27);
116
+ const seed = hash(Math.floor(angular), layer + 5);
117
+ const along = fract(Math.log(r) * (2.3 + layer * 0.5) - camera * (0.75 + seed * 0.5) + seed * 13);
118
+ const across = (fract(angular) - 0.5) / ((0.045 + layer * 0.012) / (0.5 + r));
119
+ const streak = Math.exp(-across * across) * Math.exp(-along * 36) * (seed > 0.69 ? 1 : 0) * smooth(0.06, 0.25, r);
120
+ for (let i = 0; i < 3; i++) c[i] += mix(LIGHT[i], DUST[i], 0.6) * streak * 0.4;
121
+ }
122
+ for (let i = 0; i < 3; i++) c[i] = 1 - Math.exp(-(c[i] + LIFT[i]) * 1.3);
123
+ return c;
124
+ }
125
+
126
+ // ---------------------------------------------------------------------------
127
+ // 2–3. Tiling and the eye cut
128
+ // ---------------------------------------------------------------------------
129
+ function png(w, h, rgba) {
130
+ const crcTable = []; for (let n = 0; n < 256; n++) { let c = n; for (let k = 0; k < 8; k++) c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1; crcTable[n] = c >>> 0; }
131
+ const crc = (buf) => { let c = 0xffffffff; for (const b of buf) c = crcTable[(c ^ b) & 0xff] ^ (c >>> 8); return (c ^ 0xffffffff) >>> 0; };
132
+ const chunk = (type, data) => { const t = Buffer.from(type), len = Buffer.alloc(4), sum = Buffer.alloc(4); len.writeUInt32BE(data.length); sum.writeUInt32BE(crc(Buffer.concat([t, data]))); return Buffer.concat([len, t, data, sum]); };
133
+ const header = Buffer.alloc(13); header.writeUInt32BE(w); header.writeUInt32BE(h, 4); header[8] = 8; header[9] = 6;
134
+ const rows = [];
135
+ for (let y = 0; y < h; y++) {
136
+ const row = Buffer.alloc(w * 4);
137
+ for (let x = 0; x < w * 4; x++) row[x] = (rgba[y * w * 4 + x] - (x >= 4 ? rgba[y * w * 4 + x - 4] : 0) + 256) % 256;
138
+ rows.push(Buffer.from([1]), row);
139
+ }
140
+ return Buffer.concat([Buffer.from([137, 80, 78, 71, 13, 10, 26, 10]), chunk('IHDR', header), chunk('IDAT', zlib.deflateSync(Buffer.concat(rows), { level: 9 })), chunk('IEND', Buffer.alloc(0))]);
141
+ }
142
+
143
+ console.log(`rendering ${SOURCE_PX}px source frame…`);
144
+ let t0 = Date.now();
145
+ const source = new Float32Array(SOURCE_PX * SOURCE_PX * 3);
146
+ for (let y = 0; y < SOURCE_PX; y++) for (let x = 0; x < SOURCE_PX; x++) {
147
+ const c = shade((x + 0.5) / SOURCE_PX, (y + 0.5) / SOURCE_PX);
148
+ source.set(c, (y * SOURCE_PX + x) * 3);
149
+ }
150
+ console.log(` ${((Date.now() - t0) / 1000).toFixed(1)}s`);
151
+
152
+ // Bilinear sample at still radii (u, v).
153
+ function sample(u, v) {
154
+ u /= WIDE; v /= WIDE;
155
+ if (Math.max(Math.abs(u), Math.abs(v)) > 1) throw new Error(`sample outside the source frame (${u.toFixed(2)}, ${v.toFixed(2)}): raise WIDE`);
156
+ const x = Math.max(0, Math.min(SOURCE_PX - 1.001, (u + 1) / 2 * SOURCE_PX - 0.5)), y = Math.max(0, Math.min(SOURCE_PX - 1.001, (v + 1) / 2 * SOURCE_PX - 0.5));
157
+ const x0 = Math.floor(x), y0 = Math.floor(y), fx = x - x0, fy = y - y0;
158
+ const out = [0, 0, 0];
159
+ for (const [xx, yy, w] of [[x0, y0, (1 - fx) * (1 - fy)], [x0 + 1, y0, fx * (1 - fy)], [x0, y0 + 1, (1 - fx) * fy], [x0 + 1, y0 + 1, fx * fy]]) {
160
+ const i = (yy * SOURCE_PX + xx) * 3; out[0] += source[i] * w; out[1] += source[i + 1] * w; out[2] += source[i + 2] * w;
161
+ }
162
+ return out;
163
+ }
164
+ const polar = (rho, phi) => sample(rho * Math.cos(phi), rho * Math.sin(phi));
165
+ // One sheet sample: which period is this radius in, and where in the tile.
166
+ // A sheet radius is K still radii, so at the shells' mean scale (K) the sheet
167
+ // shows the still's features at their own size.
168
+ function tile(px, py) {
169
+ const rho = Math.max(Math.hypot(px, py) * K, 1e-9), phi = Math.atan2(py, px);
170
+ const u = Math.log(rho / BAND_INNER) / Math.log(K), m = Math.floor(u), f = u - m;
171
+ // Period m is the tile rotated m·θ further round (screen convention: positive = clockwise).
172
+ const c = polar(BAND_INNER * Math.pow(K, f), phi - m * THETA);
173
+ if (f > 1 - SEAM) {
174
+ const t = smooth(1 - SEAM, 1, f), d = polar(BAND_INNER * Math.pow(K, f - 1), phi - (m + 1) * THETA);
175
+ for (let i = 0; i < 3; i++) c[i] += (d[i] - c[i]) * t;
176
+ }
177
+ return c;
178
+ }
179
+
180
+ console.log(`tiling ${SHEET_PX}px sheet (K=${K.toFixed(4)}, θ=${motion.WORMHOLE_TWIST}°)…`);
181
+ t0 = Date.now();
182
+ const sheet = Buffer.alloc(SHEET_PX * SHEET_PX * 4);
183
+ for (let y = 0; y < SHEET_PX; y++) for (let x = 0; x < SHEET_PX; x++) {
184
+ const px = ((x + 0.5) / SHEET_PX) * 2 - 1, py = ((y + 0.5) / SHEET_PX) * 2 - 1;
185
+ // Periods shrink toward the centre, so supersample harder there.
186
+ const ss = Math.max(2, Math.min(12, Math.ceil(2 / Math.max(Math.hypot(px, py) * K, 0.02))));
187
+ const acc = [0, 0, 0];
188
+ for (let j = 0; j < ss; j++) for (let i = 0; i < ss; i++) {
189
+ const c = tile(px + ((i + 0.5) / ss - 0.5) * 2 / SHEET_PX, py + ((j + 0.5) / ss - 0.5) * 2 / SHEET_PX);
190
+ acc[0] += c[0]; acc[1] += c[1]; acc[2] += c[2];
191
+ }
192
+ const o = (y * SHEET_PX + x) * 4;
193
+ for (let i = 0; i < 3; i++) sheet[o + i] = Math.max(0, Math.min(255, Math.round(acc[i] / (ss * ss) * 255)));
194
+ sheet[o + 3] = 255;
195
+ }
196
+ console.log(` ${((Date.now() - t0) / 1000).toFixed(1)}s`);
197
+
198
+ // Self-check: the sheet drawn K× larger and θ further round must be the same
199
+ // picture. Compare against the 4px-neighbour difference so "similar" is
200
+ // relative to the sheet's own detail, not an absolute threshold.
201
+ {
202
+ const N = SHEET_PX, c = N / 2, at = (x, y) => { x = Math.round(x); y = Math.round(y); if (x < 0 || y < 0 || x >= N || y >= N) return null; const i = (y * N + x) * 4; return [sheet[i], sheet[i + 1], sheet[i + 2]]; };
203
+ let err = 0, base = 0, n = 0;
204
+ for (let y = 0; y < N; y += 5) for (let x = 0; x < N; x += 5) {
205
+ const dx = x - c, dy = y - c, r = Math.hypot(dx, dy); if (r > c * 0.45 || r < c * 0.08) continue;
206
+ const cs = Math.cos(-THETA), sn = Math.sin(-THETA);
207
+ const a = at(x, y), b = at((dx * cs - dy * sn) / K + c, (dx * sn + dy * cs) / K + c), d = at(x + 4, y); if (!a || !b || !d) continue;
208
+ for (let i = 0; i < 3; i++) { err += Math.abs(a[i] - b[i]); base += Math.abs(a[i] - d[i]); }
209
+ n++;
210
+ }
211
+ console.log(` symmetry residual ${(err / n / 3).toFixed(2)} vs neighbour difference ${(base / n / 3).toFixed(2)}`);
212
+ if (err > base) throw new Error('sheet is not self-similar under (K, θ) — the handoff would be visible');
213
+ }
214
+
215
+ console.log(`cutting ${CORE_PX}px eye…`);
216
+ const core = Buffer.alloc(CORE_PX * CORE_PX * 4);
217
+ for (let y = 0; y < CORE_PX; y++) for (let x = 0; x < CORE_PX; x++) {
218
+ const u = (((x + 0.5) / CORE_PX) * 2 - 1) * CORE_SPAN, v = (((y + 0.5) / CORE_PX) * 2 - 1) * CORE_SPAN;
219
+ const ss = 3, acc = [0, 0, 0];
220
+ for (let j = 0; j < ss; j++) for (let i = 0; i < ss; i++) {
221
+ const c = sample(u + ((i + 0.5) / ss - 0.5) * 2 * CORE_SPAN / CORE_PX, v + ((j + 0.5) / ss - 0.5) * 2 * CORE_SPAN / CORE_PX);
222
+ acc[0] += c[0]; acc[1] += c[1]; acc[2] += c[2];
223
+ }
224
+ const o = (y * CORE_PX + x) * 4;
225
+ for (let i = 0; i < 3; i++) core[o + i] = Math.max(0, Math.min(255, Math.round(acc[i] / (ss * ss) * 255)));
226
+ core[o + 3] = Math.round(255 * (1 - smooth(CORE_FEATHER[0], CORE_FEATHER[1], Math.hypot(u, v))));
227
+ }
228
+
229
+ // ---------------------------------------------------------------------------
230
+ // 4. Encode and emit
231
+ // ---------------------------------------------------------------------------
232
+ const keep = flag('--keep');
233
+ const work = keep ? path.resolve(keep) : fs.mkdtempSync(path.join(os.tmpdir(), 'wormhole-'));
234
+ fs.mkdirSync(work, { recursive: true });
235
+ const sheetPng = path.join(work, 'sheet.png'), sheetJpg = path.join(work, 'sheet.jpg'), corePng = path.join(work, 'core.png');
236
+ fs.writeFileSync(sheetPng, png(SHEET_PX, SHEET_PX, sheet));
237
+ fs.writeFileSync(corePng, png(CORE_PX, CORE_PX, core));
238
+ try {
239
+ execFileSync('sips', ['-s', 'format', 'jpeg', '-s', 'formatOptions', String(JPEG_QUALITY), sheetPng, '--out', sheetJpg], { stdio: 'ignore' });
240
+ } catch (error) {
241
+ throw new Error(`JPEG encoding needs macOS \`sips\` (${error.message}); the PNG is at ${sheetPng}`);
242
+ }
243
+ const stillArg = flag('--still');
244
+ const still = stillArg
245
+ ? fs.readFileSync(stillArg).toString('base64')
246
+ : /WORMHOLE_STILL = \{ uri: "data:image\/jpeg;base64,([^"]+)"/.exec(fs.readFileSync(MODULE, 'utf8'))?.[1];
247
+ if (!still) throw new Error('No still: pass --still scene.jpg (a centered 640px WebGL capture of the website wormhole)');
248
+ const sheetB64 = fs.readFileSync(sheetJpg).toString('base64'), coreB64 = fs.readFileSync(corePng).toString('base64');
249
+ const module_ = '// Generated by scripts/generate-wormhole-textures.cjs — do not edit.\n'
250
+ + '// Shared source objects reuse the decoded images across instances.\n'
251
+ + '/** The website frame as captured (reduced motion / animation off). */\n'
252
+ + `export const WORMHOLE_STILL = { uri: "data:image/jpeg;base64,${still}" };\n`
253
+ + `/** Opaque cloud sheet, self-similar under scale ×${K.toFixed(4)} + rotate ${motion.WORMHOLE_TWIST}°; stretched over the plane. */\n`
254
+ + `export const WORMHOLE_SHEET = { uri: "data:image/jpeg;base64,${sheetB64}" };\n`
255
+ + `/** The destination, feathered; drawn static over the sheets at half the plane's size. */\n`
256
+ + `export const WORMHOLE_CORE = { uri: "data:image/png;base64,${coreB64}" };\n`;
257
+ fs.writeFileSync(MODULE, module_);
258
+ const kib = (s) => Math.round(s / 1024);
259
+ console.log(`wrote ${path.relative(ROOT, MODULE)}: still ${kib(still.length * 0.75)} KiB, sheet ${kib(sheetB64.length * 0.75)} KiB, core ${kib(coreB64.length * 0.75)} KiB (module ${kib(module_.length)} KiB)`);
260
+ console.log(`decoded: sheet ${(SHEET_PX * SHEET_PX * 4 / 1048576).toFixed(1)} MiB + core ${(CORE_PX * CORE_PX * 4 / 1048576).toFixed(1)} MiB while moving; still ${(640 * 640 * 4 / 1048576).toFixed(1)} MiB otherwise`);
261
+ if (!keep) fs.rmSync(work, { recursive: true, force: true }); else console.log(`intermediates kept in ${work}`);
@@ -0,0 +1,59 @@
1
+ // Run from packages/shared: node scripts/test-wormhole-motion.cjs
2
+ // Checks the keyframe math only. Whether the handoff is VISIBLE depends on the
3
+ // sheet texture being self-similar under (WORMHOLE_PERIOD, WORMHOLE_TWIST);
4
+ // generate-wormhole-textures.cjs checks that against the rendered pixels.
5
+ const fs = require('node:fs');
6
+ const vm = require('node:vm');
7
+ const assert = require('node:assert/strict');
8
+ const ts = require('typescript');
9
+ const e = {};
10
+ const source = fs.readFileSync('src/ui/backgrounds/variants/wormhole/motion.ts', 'utf8');
11
+ vm.runInNewContext(ts.transpileModule(source, { compilerOptions: { module: ts.ModuleKind.CommonJS } }).outputText, { exports: e });
12
+ const { WORMHOLE_INPUT: input, WORMHOLE_SHELLS: shells, WORMHOLE_PERIOD: K, WORMHOLE_TWIST: THETA } = e;
13
+ const passMs = e.WORMHOLE_CYCLE_MS / e.WORMHOLE_PASSES;
14
+ assert.equal(passMs, 6000);
15
+ assert.equal(shells.length, 2, 'reuse the existing two image layers');
16
+ const close = (a, b, tolerance = 1e-9) => Math.abs(a - b) < tolerance;
17
+ for (const shell of shells) {
18
+ for (const values of [shell.scale, shell.opacity, shell.rotate]) {
19
+ assert.equal(values.length, input.length);
20
+ assert.equal(values[0], values.at(-1), 'camera loop must be seamless');
21
+ }
22
+ for (let i = 1; i < input.length; i++) {
23
+ assert(input[i] > input[i - 1]);
24
+ assert(shell.scale[i] >= 1 - 1e-9 && shell.scale[i] <= K * K + 1e-9, 'the sheet covers the plane from scale 1 and a pass spans one K² zoom');
25
+ assert(shell.opacity[i] >= 0 && shell.opacity[i] <= 0.9200000001);
26
+ if (shell.scale[i] < shell.scale[i - 1]) {
27
+ assert.equal(shell.opacity[i - 1], 0, 'hide before reset');
28
+ assert.equal(shell.opacity[i], 0, 'hide during reset');
29
+ // The reset is itself a symmetry of the sheet: K² in scale and 2θ in
30
+ // rotation (the keyframe before the wrap sits one step short of both).
31
+ const step = shell.scale[1] / shell.scale[0], turn = parseFloat(shell.rotate[1]) - parseFloat(shell.rotate[0]);
32
+ assert(close(shell.scale[i - 1] / shell.scale[i] * step, K * K, 1e-6), 'reset jumps exactly two periods');
33
+ assert(close(parseFloat(shell.rotate[i - 1]) - parseFloat(shell.rotate[i]) + turn, 2 * THETA, 1e-6), 'reset unwinds exactly two twists');
34
+ }
35
+ }
36
+ }
37
+ for (let i = 0; i < input.length; i++) {
38
+ const transmission = shells.reduce((total, shell) => total * (1 - shell.opacity[i]), 1);
39
+ assert(close(transmission, 0.08, 1e-10), 'handoff must not pulse its composited opacity');
40
+ // THE invariant that hides the handoff: whichever shell is larger is exactly
41
+ // the other one scaled by K and turned by θ, i.e. the same picture.
42
+ const [a, b] = shells[0].scale[i] < shells[1].scale[i] ? [shells[0], shells[1]] : [shells[1], shells[0]];
43
+ assert(close(b.scale[i] / a.scale[i], K, 1e-6), `shells must sit one period apart (index ${i})`);
44
+ assert(close(parseFloat(b.rotate[i]) - parseFloat(a.rotate[i]), THETA, 1e-6), `shells must sit one twist apart (index ${i})`);
45
+ }
46
+ for (const shell of shells) {
47
+ const ratios = [];
48
+ for (let i = 1; i < input.length; i++) {
49
+ if (shell.scale[i] > shell.scale[i - 1]) ratios.push(shell.scale[i] / shell.scale[i - 1]);
50
+ assert(Math.abs(shell.opacity[i] - shell.opacity[i - 1]) < 0.09, 'no abrupt opacity steps');
51
+ }
52
+ assert(Math.max(...ratios) - Math.min(...ratios) < 1e-10, 'consistent proportional forward speed');
53
+ }
54
+ const rotation = e.WORMHOLE_CAMERA_ROTATION.map(parseFloat);
55
+ const turnaround = (input.length - 1) / 2;
56
+ assert.equal(rotation[0], rotation.at(-1));
57
+ assert(Math.abs(rotation[1] - rotation[0]) < 0.002, 'camera eases through loop seam');
58
+ assert(Math.abs(rotation[turnaround + 1] - rotation[turnaround]) < 0.002, 'camera eases through turnaround');
59
+ console.log(`PASS: shells always one (×${K}, ${THETA}°) symmetry apart, resets are symmetries too, continuous optical density, steady forward expansion, sheet never shows an edge, smooth camera turns, same two layers.`);