@hatiolab/things-scene 10.0.0-beta.13 → 10.0.0-beta.130

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 (471) hide show
  1. package/dist-types/animation/animate.d.ts.map +1 -1
  2. package/dist-types/animation/animations/animation.d.ts +5 -3
  3. package/dist-types/animation/animations/animation.d.ts.map +1 -1
  4. package/dist-types/animation/animations/heartbeat.d.ts +0 -7
  5. package/dist-types/animation/animations/heartbeat.d.ts.map +1 -1
  6. package/dist-types/animation/animations/waypoint.d.ts +45 -4
  7. package/dist-types/animation/animations/waypoint.d.ts.map +1 -1
  8. package/dist-types/animation/interfaces.d.ts +1 -1
  9. package/dist-types/animation/interfaces.d.ts.map +1 -1
  10. package/dist-types/clock/frame-clock.d.ts +119 -0
  11. package/dist-types/clock/frame-clock.d.ts.map +1 -0
  12. package/dist-types/clock/index.d.ts +3 -0
  13. package/dist-types/clock/index.d.ts.map +1 -0
  14. package/dist-types/command/command-migrate.d.ts.map +1 -1
  15. package/dist-types/command/snapshot-commander.d.ts.map +1 -1
  16. package/dist-types/components/audio.d.ts +8 -3
  17. package/dist-types/components/audio.d.ts.map +1 -1
  18. package/dist-types/components/component-data.d.ts +24 -0
  19. package/dist-types/components/component-data.d.ts.map +1 -1
  20. package/dist-types/components/component-drawing.d.ts.map +1 -1
  21. package/dist-types/components/component-geometry.d.ts.map +1 -1
  22. package/dist-types/components/component-hierarchy.d.ts +1 -1
  23. package/dist-types/components/component-hierarchy.d.ts.map +1 -1
  24. package/dist-types/components/component.d.ts +31 -4
  25. package/dist-types/components/component.d.ts.map +1 -1
  26. package/dist-types/components/container-abstract.d.ts +52 -11
  27. package/dist-types/components/container-abstract.d.ts.map +1 -1
  28. package/dist-types/components/container.d.ts +7 -2
  29. package/dist-types/components/container.d.ts.map +1 -1
  30. package/dist-types/components/data/data.d.ts.map +1 -1
  31. package/dist-types/components/data/evaluator.d.ts +27 -0
  32. package/dist-types/components/data/evaluator.d.ts.map +1 -1
  33. package/dist-types/components/donut.d.ts.map +1 -1
  34. package/dist-types/components/drawer/fill.d.ts.map +1 -1
  35. package/dist-types/components/drawer/stroke.d.ts.map +1 -1
  36. package/dist-types/components/ellipse.d.ts +8 -3
  37. package/dist-types/components/ellipse.d.ts.map +1 -1
  38. package/dist-types/components/generic-placeholders.d.ts +292 -0
  39. package/dist-types/components/generic-placeholders.d.ts.map +1 -0
  40. package/dist-types/components/geometry/snap-guide.d.ts +45 -0
  41. package/dist-types/components/geometry/snap-guide.d.ts.map +1 -0
  42. package/dist-types/components/geometry/transcoord.d.ts.map +1 -1
  43. package/dist-types/components/global-ref.d.ts.map +1 -1
  44. package/dist-types/components/group.d.ts +2 -0
  45. package/dist-types/components/group.d.ts.map +1 -1
  46. package/dist-types/components/html/reposition.d.ts.map +1 -1
  47. package/dist-types/components/html/shadow.d.ts +33 -1
  48. package/dist-types/components/html/shadow.d.ts.map +1 -1
  49. package/dist-types/components/html-overlay-container.d.ts +7 -2
  50. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  51. package/dist-types/components/html-overlay-element.d.ts +15 -5
  52. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  53. package/dist-types/components/image-view.d.ts +8 -3
  54. package/dist-types/components/image-view.d.ts.map +1 -1
  55. package/dist-types/components/index.d.ts +7 -0
  56. package/dist-types/components/index.d.ts.map +1 -1
  57. package/dist-types/components/info-window.d.ts +8 -3
  58. package/dist-types/components/info-window.d.ts.map +1 -1
  59. package/dist-types/components/line.d.ts +2 -1
  60. package/dist-types/components/line.d.ts.map +1 -1
  61. package/dist-types/components/local-ref.d.ts +8 -3
  62. package/dist-types/components/local-ref.d.ts.map +1 -1
  63. package/dist-types/components/mixins/connectable.d.ts +8 -3
  64. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  65. package/dist-types/components/mixins/data-source.d.ts +8 -3
  66. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  67. package/dist-types/components/mixins/gltf-component.d.ts +280 -0
  68. package/dist-types/components/mixins/gltf-component.d.ts.map +1 -0
  69. package/dist-types/components/mixins/holdable.d.ts +12 -0
  70. package/dist-types/components/mixins/holdable.d.ts.map +1 -0
  71. package/dist-types/components/mixins/html-element.d.ts +7 -2
  72. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  73. package/dist-types/components/mixins/move-handle.d.ts +17 -7
  74. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  75. package/dist-types/components/mixins/rect-path.d.ts +8 -3
  76. package/dist-types/components/mixins/rect-path.d.ts.map +1 -1
  77. package/dist-types/components/mixins/three-d-only.d.ts +248 -0
  78. package/dist-types/components/mixins/three-d-only.d.ts.map +1 -0
  79. package/dist-types/components/mixins/value-holder.d.ts +8 -3
  80. package/dist-types/components/mixins/value-holder.d.ts.map +1 -1
  81. package/dist-types/components/mutater/path.d.ts.map +1 -1
  82. package/dist-types/components/node.d.ts +8 -3
  83. package/dist-types/components/node.d.ts.map +1 -1
  84. package/dist-types/components/outline/path-outline.d.ts.map +1 -1
  85. package/dist-types/components/polygon-container.d.ts +61 -0
  86. package/dist-types/components/polygon-container.d.ts.map +1 -0
  87. package/dist-types/components/polygon.d.ts +2 -0
  88. package/dist-types/components/polygon.d.ts.map +1 -1
  89. package/dist-types/components/polyline.d.ts +6 -0
  90. package/dist-types/components/polyline.d.ts.map +1 -1
  91. package/dist-types/components/popup-container.d.ts +25 -0
  92. package/dist-types/components/popup-container.d.ts.map +1 -0
  93. package/dist-types/components/popup.d.ts +38 -3
  94. package/dist-types/components/popup.d.ts.map +1 -1
  95. package/dist-types/components/position/popup-position.d.ts +11 -0
  96. package/dist-types/components/position/popup-position.d.ts.map +1 -1
  97. package/dist-types/components/rect.d.ts +16 -6
  98. package/dist-types/components/rect.d.ts.map +1 -1
  99. package/dist-types/components/retention/retention-manager.d.ts +9 -1
  100. package/dist-types/components/retention/retention-manager.d.ts.map +1 -1
  101. package/dist-types/components/root-container.d.ts +18 -4
  102. package/dist-types/components/root-container.d.ts.map +1 -1
  103. package/dist-types/components/ruler.d.ts +8 -3
  104. package/dist-types/components/ruler.d.ts.map +1 -1
  105. package/dist-types/components/service-component.d.ts +269 -0
  106. package/dist-types/components/service-component.d.ts.map +1 -0
  107. package/dist-types/components/shape.d.ts.map +1 -1
  108. package/dist-types/components/star.d.ts.map +1 -1
  109. package/dist-types/components/text.d.ts +8 -3
  110. package/dist-types/components/text.d.ts.map +1 -1
  111. package/dist-types/core/dom-to-image.d.ts.map +1 -1
  112. package/dist-types/core/logger.d.ts.map +1 -1
  113. package/dist-types/core/memoize.d.ts.map +1 -1
  114. package/dist-types/decorator/decorator-registry.d.ts +14 -1
  115. package/dist-types/decorator/decorator-registry.d.ts.map +1 -1
  116. package/dist-types/decorator/decorators/animated-icon-decorator.d.ts.map +1 -1
  117. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts +0 -4
  118. package/dist-types/decorator/decorators/border-highlighting-decorator.d.ts.map +1 -1
  119. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts +0 -3
  120. package/dist-types/decorator/decorators/bouncing-arrow-decorator.d.ts.map +1 -1
  121. package/dist-types/decorator/decorators/data-spread-decorator.d.ts +16 -0
  122. package/dist-types/decorator/decorators/data-spread-decorator.d.ts.map +1 -1
  123. package/dist-types/diagnostics/contract-inspector.d.ts +110 -0
  124. package/dist-types/diagnostics/contract-inspector.d.ts.map +1 -0
  125. package/dist-types/diagnostics/data-lag-tracker.d.ts +50 -0
  126. package/dist-types/diagnostics/data-lag-tracker.d.ts.map +1 -0
  127. package/dist-types/diagnostics/inspector.d.ts +192 -5
  128. package/dist-types/diagnostics/inspector.d.ts.map +1 -1
  129. package/dist-types/diagnostics/load-tracker.d.ts +82 -0
  130. package/dist-types/diagnostics/load-tracker.d.ts.map +1 -0
  131. package/dist-types/diagnostics/loading-overlay.d.ts +58 -0
  132. package/dist-types/diagnostics/loading-overlay.d.ts.map +1 -0
  133. package/dist-types/diagnostics/metrics.d.ts +10 -0
  134. package/dist-types/diagnostics/metrics.d.ts.map +1 -1
  135. package/dist-types/effect/shadow.d.ts +3 -1
  136. package/dist-types/effect/shadow.d.ts.map +1 -1
  137. package/dist-types/event-map/index.d.ts +1 -0
  138. package/dist-types/event-map/index.d.ts.map +1 -1
  139. package/dist-types/event-map/transition-handler.d.ts +2 -0
  140. package/dist-types/event-map/transition-handler.d.ts.map +1 -0
  141. package/dist-types/flow/auto-route.d.ts +36 -0
  142. package/dist-types/flow/auto-route.d.ts.map +1 -0
  143. package/dist-types/flow/face-anchors.d.ts +26 -0
  144. package/dist-types/flow/face-anchors.d.ts.map +1 -0
  145. package/dist-types/flow/flow-engine.d.ts +122 -0
  146. package/dist-types/flow/flow-engine.d.ts.map +1 -0
  147. package/dist-types/flow/flow-graph-coordinator.d.ts +80 -0
  148. package/dist-types/flow/flow-graph-coordinator.d.ts.map +1 -0
  149. package/dist-types/flow/flow-graph-validator.d.ts +33 -0
  150. package/dist-types/flow/flow-graph-validator.d.ts.map +1 -0
  151. package/dist-types/flow/flow-graph.d.ts +76 -0
  152. package/dist-types/flow/flow-graph.d.ts.map +1 -0
  153. package/dist-types/flow/flow-introspection.d.ts +36 -0
  154. package/dist-types/flow/flow-introspection.d.ts.map +1 -0
  155. package/dist-types/flow/flow-node.d.ts +69 -0
  156. package/dist-types/flow/flow-node.d.ts.map +1 -0
  157. package/dist-types/flow/flow-orientation-coordinator.d.ts +13 -0
  158. package/dist-types/flow/flow-orientation-coordinator.d.ts.map +1 -0
  159. package/dist-types/flow/flow-orientation.d.ts +42 -0
  160. package/dist-types/flow/flow-orientation.d.ts.map +1 -0
  161. package/dist-types/flow/flow-trace.d.ts +5 -0
  162. package/dist-types/flow/flow-trace.d.ts.map +1 -0
  163. package/dist-types/flow/index.d.ts +16 -0
  164. package/dist-types/flow/index.d.ts.map +1 -0
  165. package/dist-types/flow/segment-topology.d.ts +225 -0
  166. package/dist-types/flow/segment-topology.d.ts.map +1 -0
  167. package/dist-types/flow/station-host-inference.d.ts +23 -0
  168. package/dist-types/flow/station-host-inference.d.ts.map +1 -0
  169. package/dist-types/interfaces/event-handler.d.ts +40 -0
  170. package/dist-types/interfaces/event-handler.d.ts.map +1 -0
  171. package/dist-types/interfaces/index.d.ts +2 -0
  172. package/dist-types/interfaces/index.d.ts.map +1 -1
  173. package/dist-types/interfaces/layout.d.ts +35 -1
  174. package/dist-types/interfaces/layout.d.ts.map +1 -1
  175. package/dist-types/interfaces/providers.d.ts +27 -3
  176. package/dist-types/interfaces/providers.d.ts.map +1 -1
  177. package/dist-types/interfaces/real-object.d.ts +8 -1
  178. package/dist-types/interfaces/real-object.d.ts.map +1 -1
  179. package/dist-types/interfaces/rendering.d.ts +86 -14
  180. package/dist-types/interfaces/rendering.d.ts.map +1 -1
  181. package/dist-types/interfaces/types.d.ts +20 -1
  182. package/dist-types/interfaces/types.d.ts.map +1 -1
  183. package/dist-types/items/arrangement/centering-queue-strategy.d.ts +10 -0
  184. package/dist-types/items/arrangement/centering-queue-strategy.d.ts.map +1 -0
  185. package/dist-types/items/arrangement/gravity-strategy.d.ts +9 -0
  186. package/dist-types/items/arrangement/gravity-strategy.d.ts.map +1 -0
  187. package/dist-types/items/arrangement/grid-strategy.d.ts +11 -0
  188. package/dist-types/items/arrangement/grid-strategy.d.ts.map +1 -0
  189. package/dist-types/items/arrangement/index.d.ts +7 -0
  190. package/dist-types/items/arrangement/index.d.ts.map +1 -0
  191. package/dist-types/items/arrangement/queue-strategy.d.ts +9 -0
  192. package/dist-types/items/arrangement/queue-strategy.d.ts.map +1 -0
  193. package/dist-types/items/arrangement/shelf-strategy.d.ts +11 -0
  194. package/dist-types/items/arrangement/shelf-strategy.d.ts.map +1 -0
  195. package/dist-types/items/arrangement/stack-strategy.d.ts +9 -0
  196. package/dist-types/items/arrangement/stack-strategy.d.ts.map +1 -0
  197. package/dist-types/items/capacity-mixin.d.ts +299 -0
  198. package/dist-types/items/capacity-mixin.d.ts.map +1 -0
  199. package/dist-types/items/capacity.d.ts +53 -0
  200. package/dist-types/items/capacity.d.ts.map +1 -0
  201. package/dist-types/items/index.d.ts +5 -0
  202. package/dist-types/items/index.d.ts.map +1 -0
  203. package/dist-types/items/items-data-binding.d.ts +79 -0
  204. package/dist-types/items/items-data-binding.d.ts.map +1 -0
  205. package/dist-types/items/slot-record.d.ts +23 -0
  206. package/dist-types/items/slot-record.d.ts.map +1 -0
  207. package/dist-types/layer/action/popup.d.ts +13 -0
  208. package/dist-types/layer/action/popup.d.ts.map +1 -1
  209. package/dist-types/layer/add-layer.d.ts +8 -0
  210. package/dist-types/layer/add-layer.d.ts.map +1 -1
  211. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  212. package/dist-types/layer/index.d.ts +1 -0
  213. package/dist-types/layer/index.d.ts.map +1 -1
  214. package/dist-types/layer/layer.d.ts +2 -0
  215. package/dist-types/layer/layer.d.ts.map +1 -1
  216. package/dist-types/layer/model-layer.d.ts +81 -7
  217. package/dist-types/layer/model-layer.d.ts.map +1 -1
  218. package/dist-types/layer/modeler/index.d.ts +1 -0
  219. package/dist-types/layer/modeler/index.d.ts.map +1 -1
  220. package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
  221. package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
  222. package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
  223. package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
  224. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  225. package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
  226. package/dist-types/layer/modeling-layer.d.ts +19 -0
  227. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  228. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  229. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  230. package/dist-types/layer/selection-layer.d.ts +7 -0
  231. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  232. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  233. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  234. package/dist-types/layout/absolute.d.ts +2 -2
  235. package/dist-types/layout/card.d.ts +2 -2
  236. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  237. package/dist-types/layout/linear-vertical.d.ts +2 -2
  238. package/dist-types/layout/table.d.ts +3 -3
  239. package/dist-types/license/license.d.ts.map +1 -1
  240. package/dist-types/math/component-pose.d.ts +51 -0
  241. package/dist-types/math/component-pose.d.ts.map +1 -0
  242. package/dist-types/math/index.d.ts +3 -0
  243. package/dist-types/math/index.d.ts.map +1 -0
  244. package/dist-types/math/pose6dof.d.ts +93 -0
  245. package/dist-types/math/pose6dof.d.ts.map +1 -0
  246. package/dist-types/navigation/index.d.ts +7 -0
  247. package/dist-types/navigation/index.d.ts.map +1 -0
  248. package/dist-types/navigation/nav-graph.d.ts +55 -0
  249. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  250. package/dist-types/navigation/path-planner.d.ts +29 -0
  251. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  252. package/dist-types/navigation/reservation-table.d.ts +103 -0
  253. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  254. package/dist-types/navigation/types.d.ts +145 -0
  255. package/dist-types/navigation/types.d.ts.map +1 -0
  256. package/dist-types/placement/index.d.ts +3 -0
  257. package/dist-types/placement/index.d.ts.map +1 -0
  258. package/dist-types/placement/placement.d.ts +53 -0
  259. package/dist-types/placement/placement.d.ts.map +1 -0
  260. package/dist-types/search/index.d.ts +3 -0
  261. package/dist-types/search/index.d.ts.map +1 -0
  262. package/dist-types/search/scene-search-engine.d.ts +64 -0
  263. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  264. package/dist-types/search/search-overlay.d.ts +94 -0
  265. package/dist-types/search/search-overlay.d.ts.map +1 -0
  266. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  267. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  268. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  269. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  270. package/dist-types/things-scene/api/ids.d.ts +4 -1
  271. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  272. package/dist-types/things-scene/api/index.d.ts +1 -1
  273. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  274. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  275. package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
  276. package/dist-types/things-scene/application-context.d.ts +62 -0
  277. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  278. package/dist-types/things-scene/create.d.ts +43 -3
  279. package/dist-types/things-scene/create.d.ts.map +1 -1
  280. package/dist-types/things-scene/index.d.ts +29 -0
  281. package/dist-types/things-scene/index.d.ts.map +1 -1
  282. package/dist-types/things-scene/scene.d.ts +120 -2
  283. package/dist-types/things-scene/scene.d.ts.map +1 -1
  284. package/dist-types/threed/arrow-3d.d.ts +13 -4
  285. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  286. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  287. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  288. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  289. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  290. package/dist-types/threed/environments/factory-environment.d.ts +3 -3
  291. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  292. package/dist-types/threed/environments/home-environment.d.ts +3 -3
  293. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  294. package/dist-types/threed/environments/office-environment.d.ts +3 -3
  295. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  296. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  297. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  298. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  299. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  300. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  301. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  302. package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
  303. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  304. package/dist-types/threed/factories/backdrop.d.ts +537 -0
  305. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  306. package/dist-types/threed/factories/banner.d.ts +14 -4
  307. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  308. package/dist-types/threed/factories/camera.d.ts +10 -3
  309. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  310. package/dist-types/threed/factories/cube.d.ts +9 -3
  311. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  312. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  313. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  314. package/dist-types/threed/factories/decal.d.ts +512 -0
  315. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  316. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  317. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  318. package/dist-types/threed/factories/gltf-object.d.ts +266 -38
  319. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  320. package/dist-types/threed/factories/group.d.ts +2 -0
  321. package/dist-types/threed/factories/group.d.ts.map +1 -0
  322. package/dist-types/threed/factories/light.d.ts +1 -0
  323. package/dist-types/threed/factories/light.d.ts.map +1 -1
  324. package/dist-types/threed/factories/line.d.ts +10 -0
  325. package/dist-types/threed/factories/line.d.ts.map +1 -0
  326. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  327. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  328. package/dist-types/threed/factories/polygon.d.ts +19 -0
  329. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  330. package/dist-types/threed/factories/polyline.d.ts +10 -0
  331. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  332. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  333. package/dist-types/threed/factories/sphere.d.ts +6 -0
  334. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  335. package/dist-types/threed/factories/sprite.d.ts +9 -3
  336. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  337. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  338. package/dist-types/threed/factories/wall.d.ts +9 -3
  339. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  340. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  341. package/dist-types/threed/handle-3d.d.ts +21 -0
  342. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  343. package/dist-types/threed/html/elements.d.ts.map +1 -1
  344. package/dist-types/threed/index.d.ts +24 -0
  345. package/dist-types/threed/index.d.ts.map +1 -1
  346. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  347. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  348. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +66 -32
  349. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -1
  350. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  351. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  352. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  353. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  354. package/dist-types/threed/managers/event-manager3d.d.ts +14 -0
  355. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  356. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  357. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  358. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +54 -1
  359. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  360. package/dist-types/threed/managers/index.d.ts +3 -1
  361. package/dist-types/threed/managers/index.d.ts.map +1 -1
  362. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  363. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  364. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  365. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  366. package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
  367. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  368. package/dist-types/threed/managers/scene-manager.d.ts +12 -2
  369. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  370. package/dist-types/threed/managers/types.d.ts +4 -2
  371. package/dist-types/threed/managers/types.d.ts.map +1 -1
  372. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +154 -0
  373. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  374. package/dist-types/threed/material-3d.d.ts +5 -2
  375. package/dist-types/threed/material-3d.d.ts.map +1 -1
  376. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  377. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  378. package/dist-types/threed/real-object-dom-element.d.ts +2 -0
  379. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  380. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  381. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  382. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  383. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  384. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  385. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  386. package/dist-types/threed/real-object-gltf.d.ts +21 -11
  387. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  388. package/dist-types/threed/real-object-group.d.ts +2 -0
  389. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  390. package/dist-types/threed/real-object-line.d.ts +83 -0
  391. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  392. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  393. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  394. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  395. package/dist-types/threed/real-object-service.d.ts +14 -0
  396. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  397. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  398. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  399. package/dist-types/threed/real-object-text.d.ts +5 -0
  400. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  401. package/dist-types/threed/real-object.d.ts +246 -7
  402. package/dist-types/threed/real-object.d.ts.map +1 -1
  403. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  404. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  405. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  406. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  407. package/dist-types/threed/texture/fillstyle-texture.d.ts +57 -0
  408. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  409. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  410. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  411. package/dist-types/threed/three-capability.d.ts +131 -15
  412. package/dist-types/threed/three-capability.d.ts.map +1 -1
  413. package/dist-types/threed/three-container.d.ts +0 -1
  414. package/dist-types/threed/three-container.d.ts.map +1 -1
  415. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  416. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  417. package/dist-types/threed/utils/anchor.d.ts +33 -0
  418. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  419. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  420. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  421. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  422. package/dist-types/threed/utils/tether.d.ts +46 -0
  423. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  424. package/dist-types/threed/z-priority.d.ts +27 -0
  425. package/dist-types/threed/z-priority.d.ts.map +1 -0
  426. package/dist-types/tracker/tracker.d.ts +57 -0
  427. package/dist-types/tracker/tracker.d.ts.map +1 -0
  428. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  429. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  430. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  431. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  432. package/dist-types/transfer/container-capacity-helpers.d.ts +18 -0
  433. package/dist-types/transfer/container-capacity-helpers.d.ts.map +1 -0
  434. package/dist-types/transfer/container-capacity.d.ts +11 -0
  435. package/dist-types/transfer/container-capacity.d.ts.map +1 -0
  436. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  437. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  438. package/dist-types/transfer/index.d.ts +25 -0
  439. package/dist-types/transfer/index.d.ts.map +1 -0
  440. package/dist-types/transfer/pickup-helpers.d.ts +65 -0
  441. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  442. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  443. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  444. package/dist-types/transfer/tracer.d.ts +35 -0
  445. package/dist-types/transfer/tracer.d.ts.map +1 -0
  446. package/dist-types/transfer/transfer.d.ts +229 -0
  447. package/dist-types/transfer/transfer.d.ts.map +1 -0
  448. package/dist-types/transfer/transferable-mixin.d.ts +260 -0
  449. package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
  450. package/dist-types/transfer/types.d.ts +424 -0
  451. package/dist-types/transfer/types.d.ts.map +1 -0
  452. package/dist-types/transition/transition-effect.d.ts +117 -0
  453. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  454. package/dist-types/types/bounding.d.ts +1 -1
  455. package/dist-types/types/bounding.d.ts.map +1 -1
  456. package/dist-types/types/capability.d.ts +59 -0
  457. package/dist-types/types/capability.d.ts.map +1 -0
  458. package/dist-types/types/component.d.ts +6 -177
  459. package/dist-types/types/component.d.ts.map +1 -1
  460. package/dist-types/types/event.d.ts +57 -0
  461. package/dist-types/types/event.d.ts.map +1 -1
  462. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  463. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  464. package/dist-types/types/polygon-path.d.ts +153 -0
  465. package/dist-types/types/polygon-path.d.ts.map +1 -0
  466. package/package.json +13 -2
  467. package/things-scene-min.js +12 -13
  468. package/things-scene-min.js.map +1 -1
  469. package/things-scene-transfer.mjs +7 -0
  470. package/things-scene.mjs +8 -9
  471. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,69 @@
1
+ import type Component from '../components/component.js';
2
+ type Constructor<T = {}> = new (...args: any[]) => T;
3
+ /** 3D position. */
4
+ export type Vec3 = {
5
+ x: number;
6
+ y: number;
7
+ z: number;
8
+ };
9
+ /**
10
+ * Port — flow graph 의 edge endpoint (inbound / outbound).
11
+ * 그래프 측 routing / FlowEngine 이 활용.
12
+ */
13
+ export interface Port {
14
+ /** Port id (node 안 유일). */
15
+ id: string;
16
+ /** 위치 (node-local). 도메인 측 routing / 시각화 활용. */
17
+ position?: Vec3;
18
+ /** 진행 방향 (node-local). 그래프 측 tangent. */
19
+ direction?: Vec3;
20
+ /** 도메인 메타데이터 (label / capability tag 등). */
21
+ meta?: Record<string, any>;
22
+ }
23
+ /**
24
+ * SlotInfo — node 안 세분 위치 (slot / cell 등).
25
+ *
26
+ * 3 capability 가 query 로 활용:
27
+ * - Dwellable.attachPointFor(item, { slotId }) — slot.attach 활용
28
+ * - Transferable.receive(item, { slotId }) — slot 별 receive
29
+ * - Operable.transform(inputs, outputs, { slotId }) — slot 별 변화
30
+ */
31
+ export interface SlotInfo {
32
+ /** node-local 위치. */
33
+ position: Vec3;
34
+ /** node-local size (옵션). */
35
+ size?: {
36
+ width: number;
37
+ height: number;
38
+ depth: number;
39
+ };
40
+ /** 3D scene-graph attach point (옵션). holder 의 _realObject 자손 object3d. */
41
+ attach?: any;
42
+ /** 도메인 메타데이터. */
43
+ meta?: Record<string, any>;
44
+ }
45
+ /**
46
+ * FlowNode capability — flow graph 의 노드 (구조 + flow). 보유는 Holdable 위임.
47
+ *
48
+ * 모든 자식 (Transferable / Dwellable / Operable) 의 base. Dwellable 적용 안 한 node
49
+ * 도 Holdable 로 _items 사용 가능 — 정책 (capacity 등) 만 추가 layer.
50
+ *
51
+ * Phase D-4 (2026-06-20): ItemsDataBinding 자동 합류 — 모든 FlowNode 자손이
52
+ * `holder.data` 표준 entry 자동 보유.
53
+ */
54
+ export default function FlowNode<T extends Constructor<Component>>(superclass: T): any;
55
+ /** Type guard. */
56
+ export declare function isFlowNode(c: any): c is {
57
+ isFlowNode: true;
58
+ inboundPorts(): Port[];
59
+ outboundPorts(): Port[];
60
+ slotIds?(): string[];
61
+ slotAt?(slotId: string): SlotInfo | null;
62
+ _items: any[];
63
+ addItem: (h: any, o?: any) => void;
64
+ removeItem: (h: any, silent?: boolean) => void;
65
+ handoverIn: (c: any, o?: any) => void;
66
+ handoverOut: (c: any) => void;
67
+ };
68
+ export {};
69
+ //# sourceMappingURL=flow-node.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-node.d.ts","sourceRoot":"","sources":["../../src/flow/flow-node.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AA6BvD,KAAK,WAAW,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;AAEpD,mBAAmB;AACnB,MAAM,MAAM,IAAI,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtD;;;GAGG;AACH,MAAM,WAAW,IAAI;IACnB,2BAA2B;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,IAAI,CAAA;IACf,yCAAyC;IACzC,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACvB,qBAAqB;IACrB,QAAQ,EAAE,IAAI,CAAA;IACd,4BAA4B;IAC5B,IAAI,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACvD,0EAA0E;IAC1E,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,iBAAiB;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC3B;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,WAAW,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,CAAC,GAAG,GAAG,CAyGrF;AAED,kBAAkB;AAClB,wBAAgB,UAAU,CACxB,CAAC,EAAE,GAAG,GACL,CAAC,IAAI;IACN,UAAU,EAAE,IAAI,CAAA;IAChB,YAAY,IAAI,IAAI,EAAE,CAAA;IACtB,aAAa,IAAI,IAAI,EAAE,CAAA;IACvB,OAAO,CAAC,IAAI,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAAA;IACxC,MAAM,EAAE,GAAG,EAAE,CAAA;IACb,OAAO,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IAClC,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;IAC9C,UAAU,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;IACrC,WAAW,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAA;CAC9B,CAEA"}
@@ -0,0 +1,13 @@
1
+ import { type FlowDir } from './flow-orientation.js';
2
+ /** 트리에서 segment/anchor/hub 수집 → 흐름 방향 map. */
3
+ export declare function computeFlowMap(root: any): Map<string, FlowDir>;
4
+ /**
5
+ * 컨베이어가 자기 흐름 방향(reverse 여부)을 조회 — getSegmentTopology 에서 호출.
6
+ * true=reverse, false=forward, undefined=미결정(override 안 함, 수동값 유지).
7
+ *
8
+ * 흐름 방향은 *정적 레이아웃의 함수*라 시뮬 중엔 안 바뀐다 → root 당 *1회*만 computeFlowMap
9
+ * 하고 캐시 (per-call 전체 트리 스캔 제거 = 성능 핵심). 첫 조회는 모델 빌드 완료 후 발생하고,
10
+ * 모델 재로드 시 root(model_layer)가 새로 생겨 캐시도 자연히 비므로 별도 무효화 불필요.
11
+ */
12
+ export declare function flowReverseFor(self: any): boolean | undefined;
13
+ //# sourceMappingURL=flow-orientation-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-orientation-coordinator.d.ts","sourceRoot":"","sources":["../../src/flow/flow-orientation-coordinator.ts"],"names":[],"mappings":"AAoBA,OAAO,EAA+D,KAAK,OAAO,EAAa,MAAM,uBAAuB,CAAA;AAuC5H,8CAA8C;AAC9C,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAkF9D;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,GAAG,GAAG,OAAO,GAAG,SAAS,CAkB7D"}
@@ -0,0 +1,42 @@
1
+ export interface Vec2 {
2
+ x: number;
3
+ z: number;
4
+ }
5
+ /** 방향 추론 대상 segment — start→end 가 intrinsic forward. */
6
+ export interface FlowSegmentInput {
7
+ id: string;
8
+ start: Vec2;
9
+ end: Vec2;
10
+ }
11
+ /** 방향 기준점 — 연결 지점(세그먼트 끝점과 매칭)에서의 소스/싱크. */
12
+ export interface FlowAnchor {
13
+ pos: Vec2;
14
+ /** 'source' = 여기서 흘려보냄(연결 세그먼트의 진입), 'sink' = 여기로 빨아들임(진출). */
15
+ kind: 'source' | 'sink';
16
+ }
17
+ /** forward = start→end, reverse = end→start, unknown = 미결정(anchor 미도달). */
18
+ export type FlowDir = 'forward' | 'reverse' | 'unknown';
19
+ export interface FlowResult {
20
+ /** segment id → 흐름 방향. */
21
+ directions: Map<string, FlowDir>;
22
+ /** anchor 불일치로 충돌한 segment id 들. */
23
+ conflicts: string[];
24
+ }
25
+ /**
26
+ * 연결된 segment 들의 흐름 방향을 anchor 에서 전파해 추론.
27
+ * @param tolerance 끝점 일치(연결) 판정 거리 (scene unit). default 5.
28
+ * @param hubs joint 처럼 *여러 컨베이어를 잇는 허브* — 한 그룹의 위치들은 단일
29
+ * 연결점으로 병합돼 그 사이로 흐름이 전파/보존된다 (2-way joint=통과, 3+=분기).
30
+ * @param anchorTolerance anchor(소스/싱크)→세그먼트 끝점 매칭 거리. 소스(generator)는
31
+ * 컨베이어와 *면 overlap*(~halfSpan) 으로 연결돼 점거리가 클 수 있어 endpoint
32
+ * 클러스터(tolerance)보다 넉넉해야 한다. default = tolerance.
33
+ */
34
+ /** hub 입력 — 위치 그룹(기존) 또는 source/sink 성격을 가진 hub.
35
+ * kind 'sink' = drain(연결 세그먼트 모두 hub 로 흘러듦), 'source' = spring(모두 나감).
36
+ * joint 가 chute(sink)/generator(source) 를 footprint 에 품으면 그 kind 로 표시. */
37
+ export type FlowHub = ReadonlyArray<Vec2> | {
38
+ positions: ReadonlyArray<Vec2>;
39
+ kind?: 'source' | 'sink';
40
+ };
41
+ export declare function inferFlowDirections(segments: ReadonlyArray<FlowSegmentInput>, anchors: ReadonlyArray<FlowAnchor>, tolerance?: number, hubs?: ReadonlyArray<FlowHub>, anchorTolerance?: number): FlowResult;
42
+ //# sourceMappingURL=flow-orientation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-orientation.d.ts","sourceRoot":"","sources":["../../src/flow/flow-orientation.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,wDAAwD;AACxD,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,IAAI,CAAA;IACX,GAAG,EAAE,IAAI,CAAA;CACV;AAED,4CAA4C;AAC5C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,IAAI,CAAA;IACT,+DAA+D;IAC/D,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;CACxB;AAED,2EAA2E;AAC3E,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,CAAA;AAEvD,MAAM,WAAW,UAAU;IACzB,0BAA0B;IAC1B,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,oCAAoC;IACpC,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AAMD;;;;;;;;GAQG;AACH;;2EAE2E;AAC3E,MAAM,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG;IAAE,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAA;CAAE,CAAA;AAExG,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,aAAa,CAAC,gBAAgB,CAAC,EACzC,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC,EAClC,SAAS,SAAI,EACb,IAAI,GAAE,aAAa,CAAC,OAAO,CAAM,EACjC,eAAe,SAAY,GAC1B,UAAU,CAyPZ"}
@@ -0,0 +1,5 @@
1
+ export declare const FLOW_TRACE = false;
2
+ export declare function ftrace(...args: unknown[]): void;
3
+ /** 컴포넌트 식별자 — state.id 우선, refid fallback. */
4
+ export declare function ftId(c: any): string;
5
+ //# sourceMappingURL=flow-trace.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-trace.d.ts","sourceRoot":"","sources":["../../src/flow/flow-trace.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,QAAQ,CAAA;AAK/B,wBAAgB,MAAM,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI,CAM/C;AAED,8CAA8C;AAC9C,wBAAgB,IAAI,CAAC,CAAC,EAAE,GAAG,GAAG,MAAM,CAEnC"}
@@ -0,0 +1,16 @@
1
+ export { anchorsConnect, deliversInto, matchOutbounds, pointInRotatedRect, rayAbsDistanceToRect, straightSegmentTopology, straightSegmentEndpoints, arcSegmentTopology, straightSegmentMultiInbound, type Anchor2D, type SegmentTopology, type SegmentBounds, type MatchTolerance } from './segment-topology.js';
2
+ export { rectFaceAnchors, type FaceAnchor } from './face-anchors.js';
3
+ export { buildFlowGraph, nextHops, nextHop, nextHopsToAny, nextHopsToAnyDetailed, canReach, reachableSinks, reachableByOutbound, type FlowGraph, type FlowGraphNode, type NextHopCandidate } from './flow-graph.js';
4
+ export { validate as validateFlowGraph } from './flow-graph-validator.js';
5
+ export type { IssueSeverity, IssueCode, ValidateOptions, FlowGraphIssue } from './flow-graph-validator.js';
6
+ export { inferDownstreamId, collectAdjacentSegments } from './auto-route.js';
7
+ export { enumerateDataScenarios, type DataScenario } from './flow-introspection.js';
8
+ export { inferFlowDirections, type FlowAnchor, type FlowSegmentInput, type FlowDir, type Vec2 } from './flow-orientation.js';
9
+ export { computeFlowMap, flowReverseFor } from './flow-orientation-coordinator.js';
10
+ export { ftrace, ftId } from './flow-trace.js';
11
+ export { next, downstream, reachableDestinations, reachableDestinationsFrom, reachableDestinationsWeightedFrom, pickWeightedDestination, graphFor, validate, FlowEngine, type RoutingResult, type WeightedDestination } from './flow-engine.js';
12
+ export { flowGraphFor, resolveNextHop, flowGraphIssues, sinksForDestination, componentForNode, nodeIdOf, allDestinations, applyPolicy, isRoutingTarget, type RoutingTarget, type BalancingPolicy, type BalancingState } from './flow-graph-coordinator.js';
13
+ export { findNearestStationHost, isStationHost, type StationHostCandidate } from './station-host-inference.js';
14
+ export { default as FlowNode, isFlowNode } from './flow-node.js';
15
+ export type { Port, SlotInfo, Vec3 } from './flow-node.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/flow/index.ts"],"names":[],"mappings":"AASA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,oBAAoB,EACpB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,2BAA2B,EAC3B,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACpB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGpE,OAAO,EACL,cAAc,EACd,QAAQ,EACR,OAAO,EACP,aAAa,EACb,qBAAqB,EACrB,QAAQ,EACR,cAAc,EACd,mBAAmB,EACnB,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACtB,MAAM,iBAAiB,CAAA;AAGxB,OAAO,EAAE,QAAQ,IAAI,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AACzE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG1G,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAA;AAC5E,OAAO,EAAE,sBAAsB,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,mBAAmB,EAAE,KAAK,UAAU,EAAE,KAAK,gBAAgB,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,uBAAuB,CAAA;AAC5H,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAA;AAI9C,OAAO,EACL,IAAI,EACJ,UAAU,EACV,qBAAqB,EACrB,yBAAyB,EACzB,iCAAiC,EACjC,uBAAuB,EACvB,QAAQ,EACR,QAAQ,EACR,UAAU,EACV,KAAK,aAAa,EAClB,KAAK,mBAAmB,EACzB,MAAM,kBAAkB,CAAA;AACzB,OAAO,EACL,YAAY,EACZ,cAAc,EACd,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,QAAQ,EACR,eAAe,EACf,WAAW,EACX,eAAe,EACf,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,6BAA6B,CAAA;AACpC,OAAO,EAAE,sBAAsB,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAI9G,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,225 @@
1
+ import { rectFaceAnchors } from './face-anchors.js';
2
+ export { rectFaceAnchors };
3
+ /** XZ 평면 vector (= scene world 좌표의 X/Z, Y 는 floor-level 무시). */
4
+ export interface Anchor2D {
5
+ /** scene world position (x = state.left + offset, z = state.top + offset). */
6
+ worldPos: {
7
+ x: number;
8
+ z: number;
9
+ };
10
+ /** 진행 방향 단위 vector (carrier 의 속도 vector 와 일치). */
11
+ direction: {
12
+ x: number;
13
+ z: number;
14
+ };
15
+ /**
16
+ * 면(face) 의 절반 길이 — anchor 가 *면* 에서 유래한 경우. anchorsConnect 가
17
+ * 접선 방향 판정을 중심 거리 근사가 아닌 *면 segment 겹침* 으로 수행하는 데
18
+ * 사용. 미지정 (점 anchor) 시 기존 중심 거리 판정 fallback.
19
+ */
20
+ halfSpan?: number;
21
+ }
22
+ /** Segment 의 입출구 anchor 들. inbound/outbound 각 1개 이상. */
23
+ export interface SegmentTopology {
24
+ /** 입구 anchor 들. carrier 가 들어올 수 있는 면. 미구현 segment = 빈 배열. */
25
+ inbounds: Anchor2D[];
26
+ /** 출구 anchor 들. carrier 가 나갈 수 있는 면. 미구현 segment = 빈 배열. */
27
+ outbounds: Anchor2D[];
28
+ }
29
+ /** Anchor 매칭 tolerance (= 자동 연결 판정 기준). */
30
+ export interface MatchTolerance {
31
+ /** 좌표 distance 임계 (scene unit). default 5. */
32
+ distance?: number;
33
+ /** 방향 dot product 임계 (= cosine). 1 = 완전 일치, 0.95 ≈ 18° 이내. default 0.9. */
34
+ cosine?: number;
35
+ /** sink(outbound 없는 종착: StockPile/Dock 등) footprint-배달 margin. default 30 —
36
+ * 딱 안 붙어도 인접하면 자동링크. 흐름연속 후보는 영향 없음(6 고정). */
37
+ sinkMargin?: number;
38
+ }
39
+ /**
40
+ * State 기반 *_straight segment_* 의 topology. 가장 흔한 케이스 — Conveyor /
41
+ * cross-belt-line / induct-station 등. orientation 자동 추정 (horizontal /
42
+ * vertical / auto by aspect).
43
+ *
44
+ * 가정:
45
+ * - state.left/top = 좌상단, width/height = 크기
46
+ * - rotation = 중심 기준 회전 (radian, CW positive — things-scene 표준)
47
+ * - 흐름 방향 = *_긴 축_* (orientation auto 시 width vs height 비교)
48
+ * - status='reverse' 시 흐름 반대 (= inbound/outbound swap)
49
+ *
50
+ * 결과:
51
+ * - inbound = 시작 짧은 면의 중앙
52
+ * - outbound = 끝 짧은 면의 중앙
53
+ * - direction = 시작 → 끝 단위 vector
54
+ */
55
+ export declare function straightSegmentTopology(state: {
56
+ left?: number;
57
+ top?: number;
58
+ width?: number;
59
+ height?: number;
60
+ rotation?: number;
61
+ orientation?: 'horizontal' | 'vertical' | '';
62
+ status?: string;
63
+ }, reverseOverride?: boolean): SegmentTopology;
64
+ /**
65
+ * Straight segment 의 *기하 끝점* (start/end) — status/reverse 무관. flow-orientation
66
+ * 이 흐름 방향을 추론할 때 순환(현재 reverse 가 다음 추론에 영향) 을 피하려 *고정된*
67
+ * 기하 끝점이 필요. straightSegmentTopology 의 startPos/endPos 와 동일 좌표.
68
+ * 반환: { start, end } — start→end 가 intrinsic forward (reverse=false 일 때 흐름).
69
+ */
70
+ export declare function straightSegmentEndpoints(state: {
71
+ left?: number;
72
+ top?: number;
73
+ width?: number;
74
+ height?: number;
75
+ rotation?: number;
76
+ orientation?: 'horizontal' | 'vertical' | '';
77
+ }): {
78
+ start: {
79
+ x: number;
80
+ z: number;
81
+ };
82
+ end: {
83
+ x: number;
84
+ z: number;
85
+ };
86
+ } | null;
87
+ /**
88
+ * Arc (curve) segment topology — cross-belt-curve / conveyor-join 같은 *_도넛
89
+ * 섹터_* segment. carrier 가 호 위를 따라 시작→끝 각도로 흐름.
90
+ *
91
+ * State shape (도넛 섹터):
92
+ * - cx, cy: 호 중심 (scene absolute 좌표)
93
+ * - rx, ry: 외측 반지름 (x/y 다름 = ellipse 호 가능)
94
+ * - ratio (0..100): 내측 반지름 비율 (innerRx = rx * ratio/100)
95
+ * - startAngle, endAngle: 시작/끝 각도 (radian, things-scene 컨벤션)
96
+ *
97
+ * 호 위 점 공식 (line 348 의 ConveyorJoin.controls 와 일치):
98
+ * P(θ) = (cx + r*sin(θ), cy - r*cos(θ))
99
+ * tangent (carrier 진행 방향) = (cos(θ), sin(θ))
100
+ *
101
+ * Anchor:
102
+ * - inbound at startAngle: midR 거리 + 진행 방향 (= θ 증가 방향)
103
+ * - outbound at endAngle: midR 거리 + 진행 방향
104
+ * - reverse 시 swap + direction 반전
105
+ */
106
+ export declare function arcSegmentTopology(state: {
107
+ cx?: number;
108
+ cy?: number;
109
+ rx?: number;
110
+ ry?: number;
111
+ ratio?: number;
112
+ startAngle?: number;
113
+ endAngle?: number;
114
+ status?: string;
115
+ }): SegmentTopology;
116
+ /**
117
+ * Multi-inbound straight segment — 합류 (merger) 의 토대. 흐름축은 그대로 (1
118
+ * outbound 한 면) 인데, *_나머지 모든 면이 inbound_* (= 어느 옆 conveyor 가
119
+ * 와도 합류 가능).
120
+ *
121
+ * - outbounds = straightSegmentTopology(state).outbounds (= 1 face)
122
+ * - inbounds = 직교 (흐름축 시작 + 양 perpendicular) + 측면 사선 (45° 전진 편향)
123
+ *
124
+ * 사선 anchor — 실물 merger 는 양쪽에서 *사선* 으로 모이는 Y자 합류가 통상.
125
+ * 측면 (흐름과 perpendicular) inbound 마다 본선 진행방향으로 45° 기운 anchor 를
126
+ * 추가 선언 — 회전시킨 일반 conveyor 가 비스듬히 닿으면 자동 연결 (새 컴포넌트
127
+ * 불요). 가로 본선 기준 top 면은 ↘, bottom 면은 ↗ 로 자연 분리돼 양쪽 사선
128
+ * 합류가 성립. 직교 anchor 보존 (직교 합류도 유효).
129
+ *
130
+ * Direction 검사 가 *_같은 방향만 매칭_* 보장 — 옆 conveyor 가 방향 일치
131
+ * (직교 또는 사선) 시에만 자동 매칭. 의도 안 한 합류 차단.
132
+ */
133
+ export declare function straightSegmentMultiInbound(state: {
134
+ left?: number;
135
+ top?: number;
136
+ width?: number;
137
+ height?: number;
138
+ rotation?: number;
139
+ orientation?: 'horizontal' | 'vertical' | '';
140
+ status?: string;
141
+ }): SegmentTopology;
142
+ /**
143
+ * 두 anchor 가 연결 가능한지 (= 자동 routing 후보). A 의 outbound 가 B 의
144
+ * inbound 와 *_위치 + 방향_* 일치하면 true.
145
+ *
146
+ * - 위치: distance <= tolerance.distance
147
+ * - 방향: outbound.direction · inbound.direction >= tolerance.cosine
148
+ * (둘 다 *_carrier 의 진행 방향_*이므로 같은 방향이어야 함)
149
+ */
150
+ export declare function anchorsConnect(out: Anchor2D, inn: Anchor2D, tolerance?: MatchTolerance): boolean;
151
+ /** 컴포넌트의 board footprint (rotation 포함). matchOutbounds 의 배달 판정용. */
152
+ export interface SegmentBounds {
153
+ left?: number;
154
+ top?: number;
155
+ width?: number;
156
+ height?: number;
157
+ rotation?: number;
158
+ }
159
+ /**
160
+ * 점 (px, pz) 가 회전된 사각 footprint 안인지 — margin 만큼 확장.
161
+ * board (x = left, z = top) 좌표계.
162
+ */
163
+ export declare function pointInRotatedRect(px: number, pz: number, b: SegmentBounds, margin?: number): boolean;
164
+ /**
165
+ * Ray-rectangle 절대값 거리 — chute 출구점을 통과하는 face normal 의 *_양방향 직선_*
166
+ * 과 사각형의 가장 가까운 교점까지 거리. 광선이 사각형 안에서 출발하면 (겹침) 가까운
167
+ * face 쪽 거리. 교차 없으면 Infinity.
168
+ *
169
+ * # 왜 이 metric 인가 (2026-06-17 사용자 통찰)
170
+ *
171
+ * 이전 matchOutbounds 의 ② 단계 tie-break = *_chute 출구점 ↔ stockpile center 의 유클리드
172
+ * 거리_*. 단점:
173
+ * - 큰 stockpile 의 center 가 *_chute face 와 평행하지만 멀게_* 측정됨
174
+ * - chute 가 *_정면으로_* 향한 stockpile 이 *_center 가 우연히 가까운_* 다른 sink 에 밀림
175
+ *
176
+ * 직교거리 (face normal 방향 ray cast) 가 *_물리적으로 자연_*:
177
+ * - "chute 가 정면으로 가까운 face" 가 정확히 측정됨
178
+ * - 큰 stockpile 의 긴 face 가 *_chute face 와 평행_* 일 때 hit 거리 짧음
179
+ * - 컴포넌트 center 위치와 무관 — center 왜곡 제거
180
+ *
181
+ * # 절대값 (양방향) 이유
182
+ * chute 출구점이 stockpile 영역 안 (겹침) 인 경우도 자연스럽게 처리. 정방향 hit 가 더 멀어도
183
+ * 역방향에 더 가까운 face 가 있으면 그 거리. 진행 방향 의존성 제거.
184
+ */
185
+ export declare function rayAbsDistanceToRect(origin: {
186
+ x: number;
187
+ z: number;
188
+ }, direction: {
189
+ x: number;
190
+ z: number;
191
+ }, rect: SegmentBounds): number;
192
+ /**
193
+ * source 배출 anchor 가 target footprint 로 *배달* 되는지 — anchor 끝-끝
194
+ * 매칭의 보완. 사용자가 컴포넌트를 (회전·겹침 포함) 손으로 놓아 배출 끝점이
195
+ * 상대 입구를 파고들어도 (= 겹침) 자동 연결되도록.
196
+ *
197
+ * - 끝점이 footprint 안 (+ margin) — 물리적으로 들이밀고 있음
198
+ * - 방향이 전진 호환 — candidateFlow (target 흐름) 와 dot ≥ 0 (역류 차단).
199
+ * flow 없으면 (sink) footprint 중심을 향하는지로 대체.
200
+ *
201
+ * 끝-끝 정밀 매칭 (anchorsConnect) 의 거리 tolerance(5) 가 hand-place 겹침
202
+ * (10~25 unit) 을 갭으로 거부하던 결함 보완 (2026-06-08 보고).
203
+ */
204
+ export declare function deliversInto(out: Anchor2D, bounds: SegmentBounds, candidateFlow?: {
205
+ x: number;
206
+ z: number;
207
+ }, margin?: number): boolean;
208
+ /**
209
+ * 자기 outbound 각각에 대해 *_연결 가능한 인근 segment_* 의 id 를 매칭.
210
+ *
211
+ * - candidates: scene 안 모든 segment (자기 자신 제외). 각 항목은
212
+ * { id, topology } — pure helper 라 component 객체가 아닌 추출 정보만.
213
+ * - 결과: outbound index → matched candidate id (또는 null). 자기 outbound
214
+ * 수 만큼.
215
+ *
216
+ * 매칭 우선순위:
217
+ * - 정확 일치 후보가 여럿이면 *_가장 가까운 worldPos_*.
218
+ * - 그래도 동률이면 id 사전순 (결정성).
219
+ */
220
+ export declare function matchOutbounds(selfTopology: SegmentTopology, candidates: ReadonlyArray<{
221
+ id: string;
222
+ topology: SegmentTopology;
223
+ bounds?: SegmentBounds;
224
+ }>, tolerance?: MatchTolerance): Array<string | null>;
225
+ //# sourceMappingURL=segment-topology.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"segment-topology.d.ts","sourceRoot":"","sources":["../../src/flow/segment-topology.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ export interface StationHostCandidate {
2
+ id: string;
3
+ component: any;
4
+ distance: number;
5
+ }
6
+ /**
7
+ * StationHost 자격 duck — *_register_*_* 메서드 보유로 sorter 류만 매칭 (chute 처럼
8
+ * routingLinks 만 가진 노드는 제외).
9
+ */
10
+ export declare function isStationHost(c: any): boolean;
11
+ /**
12
+ * 가까운 StationHost 자동 발견 — root 트리를 walk 하며 StationHost 자격 노드 중 입구
13
+ * 거리 최소. 동률은 id lexical order — 결정론 보장. 미발견 시 null.
14
+ *
15
+ * @param entry chute/induct 의 입구 좌표 (board frame)
16
+ * @param root root component
17
+ * @param exclude self (자기 자신 제외)
18
+ */
19
+ export declare function findNearestStationHost(entry: {
20
+ x: number;
21
+ y: number;
22
+ }, root: any, exclude?: any): StationHostCandidate | null;
23
+ //# sourceMappingURL=station-host-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"station-host-inference.d.ts","sourceRoot":"","sources":["../../src/flow/station-host-inference.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,GAAG,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AASD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,GAAG,GAAG,OAAO,CAO7C;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,EAC/B,IAAI,EAAE,GAAG,EACT,OAAO,CAAC,EAAE,GAAG,GACZ,oBAAoB,GAAG,IAAI,CAmB7B"}
@@ -0,0 +1,40 @@
1
+ /** 지원 trigger — DOM 이벤트 + 의미적 alias. */
2
+ export type EventTrigger = 'click' | 'tap' | 'dblclick' | 'mouseenter' | 'hover' | 'mouseleave' | 'longpress' | 'mousedown' | 'mouseup' | 'pressed';
3
+ /** 단일 이벤트 핸들러 spec. */
4
+ export interface EventHandler {
5
+ /** trigger — 어느 DOM 이벤트에 반응할지. */
6
+ trigger: EventTrigger;
7
+ /**
8
+ * action — 'script' 자유 코드 또는 declarative action name.
9
+ * 'script' / 'data-toggle' / 'data-set' / 'emphasize' / 'info-window' / ...
10
+ * 빈 문자열 또는 미설정 시 no-op.
11
+ */
12
+ action?: string;
13
+ /** action='script' 시 JS 코드 (await 지원). */
14
+ code?: string;
15
+ /** Target selector — script 의 `targets` 또는 declarative action 의 대상. */
16
+ target?: string;
17
+ /** Value — script 의 `value` 또는 action 의 value (`component.access(value)` 적용). */
18
+ value?: any;
19
+ /** action 의 부가 옵션 (emphasize / restore / pressed / options 등). */
20
+ options?: Record<string, any>;
21
+ /** 비활성화. UI 토글용. */
22
+ disabled?: boolean;
23
+ }
24
+ /**
25
+ * legacy `{ tap, hover, dblclick, longpress }` 객체를 `EventHandler[]` 로 변환.
26
+ * Component constructor 의 *자동 마이그레이션* + UI 의 fallback 변환 모두 사용.
27
+ */
28
+ export declare function migrateLegacyEvent(legacy: any): EventHandler[];
29
+ /**
30
+ * 두 속성 통합 — 신규 `state.eventHandlers` 우선, 없으면 legacy `state.event`
31
+ * (객체) 를 *read-only* 변환해 반환. 컴포넌트 constructor 의 자동 마이그레이션이
32
+ * 처리 못 한 케이스 (런타임 state mutation 등) 의 fallback.
33
+ *
34
+ * 정책:
35
+ * - `state.event` (legacy) — *손대지 않음* (rollback 안전망 + 옛 코드 호환)
36
+ * - `state.eventHandlers` (신규) — UI / 자동 마이그레이션이 write
37
+ * - dispatcher: 신규 우선 / 없으면 legacy fallback
38
+ */
39
+ export declare function normalizeEventHandlers(state: any): EventHandler[];
40
+ //# sourceMappingURL=event-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"event-handler.d.ts","sourceRoot":"","sources":["../../src/interfaces/event-handler.ts"],"names":[],"mappings":"AAiBA,wCAAwC;AACxC,MAAM,MAAM,YAAY,GACpB,OAAO,GAAG,KAAK,GACf,UAAU,GACV,YAAY,GAAG,OAAO,GACtB,YAAY,GACZ,WAAW,GACX,WAAW,GAAG,SAAS,GACvB,SAAS,CAAA;AAEb,uBAAuB;AACvB,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,OAAO,EAAE,YAAY,CAAA;IACrB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,0CAA0C;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uEAAuE;IACvE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iFAAiF;IACjF,KAAK,CAAC,EAAE,GAAG,CAAA;IACX,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,GAAG,GAAG,YAAY,EAAE,CAoC9D;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,GAAG,GAAG,YAAY,EAAE,CAKjE"}
@@ -2,4 +2,6 @@ export * from './types';
2
2
  export * from './providers';
3
3
  export * from './layout';
4
4
  export type { IRealObject } from './real-object.js';
5
+ export type { EventHandler, EventTrigger } from './event-handler.js';
6
+ export { normalizeEventHandlers } from './event-handler.js';
5
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/interfaces/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACpE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA"}
@@ -1,5 +1,7 @@
1
+ import type Component from '../components/component.js';
2
+ import type Container from '../components/container.js';
1
3
  /**
2
- * 레이아웃 인터페이스
4
+ * 레이아웃 인터페이스 (구현체용)
3
5
  */
4
6
  export interface LAYOUT {
5
7
  reflow(container: any, component?: any): void;
@@ -9,6 +11,38 @@ export interface LAYOUT {
9
11
  keyNavigate?(container: any, component: any, e: KeyboardEvent): any | undefined;
10
12
  joinType?: boolean;
11
13
  }
14
+ /**
15
+ * 레이아웃 인터페이스 (Public API — 외부 타입 어노테이션용)
16
+ *
17
+ * A layout strategy defines how a container arranges its child components.
18
+ * Only components with `position: 'static'` should be affected by layout.
19
+ */
20
+ export interface Layout {
21
+ /**
22
+ * Recalculates the positions and sizes of child components.
23
+ */
24
+ reflow(container: Container, component?: Component): void;
25
+ /**
26
+ * Returns components that are eligible for interaction.
27
+ */
28
+ capturables(container: Container): Component[];
29
+ /**
30
+ * Returns components that should be rendered.
31
+ */
32
+ drawables(container: Container): Component[];
33
+ /**
34
+ * Determines whether the given component is "stuck" in its layout position.
35
+ */
36
+ isStuck(component: Component): boolean;
37
+ /**
38
+ * (Optional) Key navigation handler for keyboard interaction within the layout.
39
+ */
40
+ keyNavigate?(container: Container, component: Component, e: KeyboardEvent): Component | undefined;
41
+ /**
42
+ * (Optional) Whether the layout joins component types.
43
+ */
44
+ joinType?: boolean;
45
+ }
12
46
  /**
13
47
  * 레이아웃 레지스트리 인터페이스
14
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/interfaces/layout.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IAC7C,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;IAClC,SAAS,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;IAChC,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAA;IAChC,WAAW,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,GAAG,GAAG,GAAG,SAAS,CAAA;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,IAAI,IAAI;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACnC"}
1
+ {"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../src/interfaces/layout.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,MAAM,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,GAAG,GAAG,IAAI,CAAA;IAC7C,WAAW,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;IAClC,SAAS,CAAC,SAAS,EAAE,GAAG,GAAG,GAAG,EAAE,CAAA;IAChC,OAAO,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAA;IAChC,WAAW,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,EAAE,aAAa,GAAG,GAAG,GAAG,SAAS,CAAA;IAC/E,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,MAAM;IACrB;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAA;IAEzD;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;IAE9C;;OAEG;IACH,SAAS,CAAC,SAAS,EAAE,SAAS,GAAG,SAAS,EAAE,CAAA;IAE5C;;OAEG;IACH,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAA;IAEtC;;OAEG;IACH,WAAW,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,aAAa,GAAG,SAAS,GAAG,SAAS,CAAA;IAEjG;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC9B,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;IACzB,IAAI,IAAI;QAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE,CAAA;CACnC"}
@@ -1,35 +1,47 @@
1
1
  import type { SceneMode } from '../const';
2
2
  import type { Scene } from '../types/scene';
3
3
  /**
4
- * 참조 제공자 인터페이스
4
+ * Provides sub-board references for board-to-board linking (goto, link-open).
5
+ * Implementations should cache loaded scenes and handle lifecycle (release).
5
6
  */
6
7
  export interface ReferenceProvider {
8
+ /** All registered board IDs */
7
9
  get ids(): string[];
10
+ /** Register a board scene by ID */
8
11
  add(id: string, target?: any): Promise<Scene & {
9
12
  release: () => void;
10
13
  }>;
14
+ /** Get a board scene by ID, optionally creating if not found */
11
15
  get(id: string, createIf?: boolean): Promise<Scene & {
12
16
  release: () => void;
13
17
  }>;
18
+ /** Create a new board scene by ID */
14
19
  create(id: string): Promise<Scene & {
15
20
  release: () => void;
16
21
  }>;
17
22
  }
18
23
  /**
19
- * 데이터 구독 제공자 인터페이스
24
+ * Provides real-time data subscriptions for components with a `tag` property.
25
+ * Components receive live data via `component.data = ...` when subscribed.
20
26
  */
21
27
  export interface DataSubscriptionProvider {
28
+ /** Subscribe a component to a data tag. Returns an unsubscribe handle. */
22
29
  subscribe(tag: string, component: any): Promise<{
23
30
  unsubscribe: () => void;
24
31
  }>;
32
+ /** Dispose all active subscriptions */
25
33
  dispose(): void;
26
34
  }
27
35
  /**
28
- * 영속성 데이터 저장소 인터페이스
36
+ * Per-component persistent data storage for saving/restoring component state
37
+ * across sessions (e.g. user inputs, slider positions).
29
38
  */
30
39
  export interface PersistentDataStorage {
40
+ /** Load persisted data for a component */
31
41
  load(key: object): Promise<any>;
42
+ /** Save data for a component */
32
43
  save(key: object, value: any): Promise<void>;
44
+ /** Clear persisted data for a component */
33
45
  clear(key: object): Promise<void>;
34
46
  }
35
47
  /**
@@ -50,6 +62,18 @@ export interface ApplicationContext {
50
62
  PPI?: number;
51
63
  /** Command executor for undo/redo operations (edit mode) */
52
64
  commander?: any;
65
+ /** Loading monitor */
66
+ loadTracker?: import('../diagnostics/load-tracker.js').LoadTracker;
67
+ adoptLoadTracker?(tracker: import('../diagnostics/load-tracker.js').LoadTracker): void;
68
+ /** Data lag monitor (optional, created when dataLagMonitor configured) */
69
+ lagTracker?: import('../diagnostics/data-lag-tracker.js').DataLagTracker;
70
+ /**
71
+ * 모델링 포커스 dim 필터(transient/비영속) — 반환 false 컴포넌트는 편집 모드에서
72
+ * dim + 선택/이동(gizmo) 제외. undefined = 미적용.
73
+ */
74
+ focusFilter?: (component: any) => boolean;
75
+ /** 마퀴(selbox) 영역 선택 드래그 진행 중 여부 — 드래그 중 UI 갱신 억제용(transient). */
76
+ isSelecting?: boolean;
53
77
  url(x: string): string;
54
78
  dispose(): void;
55
79
  subscribe?(tag: string, component: any): Promise<any>;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/interfaces/providers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,IAAI,GAAG,IAAI,MAAM,EAAE,CAAA;IACnB,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IACvE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC7E,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5E,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAA;IAC3D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAE5B,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,SAAS,CAAC,EAAE,GAAG,CAAA;IAEf,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;IACf,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACtD"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/interfaces/providers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,IAAI,GAAG,IAAI,MAAM,EAAE,CAAA;IACnB,mCAAmC;IACnC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IACvE,gEAAgE;IAChE,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC7E,qCAAqC;IACrC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG;QAAE,OAAO,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;CAC7D;AAED;;;GAGG;AACH,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC,CAAA;IAC5E,uCAAuC;IACvC,OAAO,IAAI,IAAI,CAAA;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC,0CAA0C;IAC1C,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;IAC/B,gCAAgC;IAChC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,2CAA2C;IAC3C,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,WAAW,EAAE,iBAAiB,CAAA;IACvC,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAA;IAC3C,QAAQ,CAAC,wBAAwB,EAAE,wBAAwB,CAAA;IAC3D,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAA;IAE5B,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,+CAA+C;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,8CAA8C;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,4DAA4D;IAC5D,SAAS,CAAC,EAAE,GAAG,CAAA;IAEf,sBAAsB;IACtB,WAAW,CAAC,EAAE,OAAO,gCAAgC,EAAE,WAAW,CAAA;IAClE,gBAAgB,CAAC,CAAC,OAAO,EAAE,OAAO,gCAAgC,EAAE,WAAW,GAAG,IAAI,CAAA;IACtF,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,oCAAoC,EAAE,cAAc,CAAA;IAExE;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,KAAK,OAAO,CAAA;IAEzC,iEAAiE;IACjE,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,OAAO,IAAI,IAAI,CAAA;IACf,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAA;CACtD"}