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

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 (465) 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 +10 -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 +33 -4
  25. package/dist-types/components/component.d.ts.map +1 -1
  26. package/dist-types/components/container-abstract.d.ts +56 -11
  27. package/dist-types/components/container-abstract.d.ts.map +1 -1
  28. package/dist-types/components/container.d.ts +9 -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 +10 -3
  37. package/dist-types/components/ellipse.d.ts.map +1 -1
  38. package/dist-types/components/generic-placeholders.d.ts +294 -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 +9 -2
  50. package/dist-types/components/html-overlay-container.d.ts.map +1 -1
  51. package/dist-types/components/html-overlay-element.d.ts +19 -5
  52. package/dist-types/components/html-overlay-element.d.ts.map +1 -1
  53. package/dist-types/components/image-view.d.ts +10 -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 +10 -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 +10 -3
  62. package/dist-types/components/local-ref.d.ts.map +1 -1
  63. package/dist-types/components/mixins/connectable.d.ts +10 -3
  64. package/dist-types/components/mixins/connectable.d.ts.map +1 -1
  65. package/dist-types/components/mixins/data-source.d.ts +10 -3
  66. package/dist-types/components/mixins/data-source.d.ts.map +1 -1
  67. package/dist-types/components/mixins/gltf-component.d.ts +282 -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 +9 -2
  72. package/dist-types/components/mixins/html-element.d.ts.map +1 -1
  73. package/dist-types/components/mixins/move-handle.d.ts +19 -7
  74. package/dist-types/components/mixins/move-handle.d.ts.map +1 -1
  75. package/dist-types/components/mixins/rect-path.d.ts +10 -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 +250 -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 +10 -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 +10 -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 +40 -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 +20 -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 +10 -3
  104. package/dist-types/components/ruler.d.ts.map +1 -1
  105. package/dist-types/components/service-component.d.ts +271 -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 +10 -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/index.d.ts +2 -0
  186. package/dist-types/items/arrangement/index.d.ts.map +1 -0
  187. package/dist-types/items/capacity-mixin.d.ts +303 -0
  188. package/dist-types/items/capacity-mixin.d.ts.map +1 -0
  189. package/dist-types/items/capacity.d.ts +53 -0
  190. package/dist-types/items/capacity.d.ts.map +1 -0
  191. package/dist-types/items/index.d.ts +7 -0
  192. package/dist-types/items/index.d.ts.map +1 -0
  193. package/dist-types/items/items-data-binding.d.ts +103 -0
  194. package/dist-types/items/items-data-binding.d.ts.map +1 -0
  195. package/dist-types/items/slot-record.d.ts +23 -0
  196. package/dist-types/items/slot-record.d.ts.map +1 -0
  197. package/dist-types/items/stacking/index.d.ts +3 -0
  198. package/dist-types/items/stacking/index.d.ts.map +1 -0
  199. package/dist-types/items/stacking/stack-layout.d.ts +33 -0
  200. package/dist-types/items/stacking/stack-layout.d.ts.map +1 -0
  201. package/dist-types/items/stacking/stacking-strategy.d.ts +114 -0
  202. package/dist-types/items/stacking/stacking-strategy.d.ts.map +1 -0
  203. package/dist-types/layer/action/popup.d.ts +13 -0
  204. package/dist-types/layer/action/popup.d.ts.map +1 -1
  205. package/dist-types/layer/add-layer.d.ts +8 -0
  206. package/dist-types/layer/add-layer.d.ts.map +1 -1
  207. package/dist-types/layer/dual-canvas-layer.d.ts.map +1 -1
  208. package/dist-types/layer/index.d.ts +1 -0
  209. package/dist-types/layer/index.d.ts.map +1 -1
  210. package/dist-types/layer/layer.d.ts +2 -0
  211. package/dist-types/layer/layer.d.ts.map +1 -1
  212. package/dist-types/layer/model-layer.d.ts +81 -7
  213. package/dist-types/layer/model-layer.d.ts.map +1 -1
  214. package/dist-types/layer/modeler/index.d.ts +1 -0
  215. package/dist-types/layer/modeler/index.d.ts.map +1 -1
  216. package/dist-types/layer/modeler/move-handle-icon.d.ts +2 -0
  217. package/dist-types/layer/modeler/move-handle-icon.d.ts.map +1 -0
  218. package/dist-types/layer/modeler/move-handle-modeler.d.ts +18 -0
  219. package/dist-types/layer/modeler/move-handle-modeler.d.ts.map +1 -0
  220. package/dist-types/layer/modeler/path-handler.d.ts.map +1 -1
  221. package/dist-types/layer/modeler/rotator.d.ts.map +1 -1
  222. package/dist-types/layer/modeling-layer.d.ts +19 -0
  223. package/dist-types/layer/modeling-layer.d.ts.map +1 -1
  224. package/dist-types/layer/selection/selected-finder.d.ts +1 -1
  225. package/dist-types/layer/selection/selected-finder.d.ts.map +1 -1
  226. package/dist-types/layer/selection-layer.d.ts +7 -0
  227. package/dist-types/layer/selection-layer.d.ts.map +1 -1
  228. package/dist-types/layer/snap-guide-layer.d.ts +23 -0
  229. package/dist-types/layer/snap-guide-layer.d.ts.map +1 -0
  230. package/dist-types/layout/absolute.d.ts +2 -2
  231. package/dist-types/layout/card.d.ts +2 -2
  232. package/dist-types/layout/linear-horizontal.d.ts +2 -2
  233. package/dist-types/layout/linear-vertical.d.ts +2 -2
  234. package/dist-types/layout/table.d.ts +3 -3
  235. package/dist-types/license/license.d.ts.map +1 -1
  236. package/dist-types/math/component-pose.d.ts +51 -0
  237. package/dist-types/math/component-pose.d.ts.map +1 -0
  238. package/dist-types/math/index.d.ts +3 -0
  239. package/dist-types/math/index.d.ts.map +1 -0
  240. package/dist-types/math/pose6dof.d.ts +93 -0
  241. package/dist-types/math/pose6dof.d.ts.map +1 -0
  242. package/dist-types/navigation/index.d.ts +7 -0
  243. package/dist-types/navigation/index.d.ts.map +1 -0
  244. package/dist-types/navigation/nav-graph.d.ts +55 -0
  245. package/dist-types/navigation/nav-graph.d.ts.map +1 -0
  246. package/dist-types/navigation/path-planner.d.ts +29 -0
  247. package/dist-types/navigation/path-planner.d.ts.map +1 -0
  248. package/dist-types/navigation/reservation-table.d.ts +103 -0
  249. package/dist-types/navigation/reservation-table.d.ts.map +1 -0
  250. package/dist-types/navigation/types.d.ts +145 -0
  251. package/dist-types/navigation/types.d.ts.map +1 -0
  252. package/dist-types/placement/index.d.ts +3 -0
  253. package/dist-types/placement/index.d.ts.map +1 -0
  254. package/dist-types/placement/placement.d.ts +53 -0
  255. package/dist-types/placement/placement.d.ts.map +1 -0
  256. package/dist-types/search/index.d.ts +3 -0
  257. package/dist-types/search/index.d.ts.map +1 -0
  258. package/dist-types/search/scene-search-engine.d.ts +64 -0
  259. package/dist-types/search/scene-search-engine.d.ts.map +1 -0
  260. package/dist-types/search/search-overlay.d.ts +94 -0
  261. package/dist-types/search/search-overlay.d.ts.map +1 -0
  262. package/dist-types/things-scene/api/add-start.d.ts +25 -0
  263. package/dist-types/things-scene/api/add-start.d.ts.map +1 -1
  264. package/dist-types/things-scene/api/align.d.ts.map +1 -1
  265. package/dist-types/things-scene/api/distribute.d.ts.map +1 -1
  266. package/dist-types/things-scene/api/ids.d.ts +4 -1
  267. package/dist-types/things-scene/api/ids.d.ts.map +1 -1
  268. package/dist-types/things-scene/api/index.d.ts +1 -1
  269. package/dist-types/things-scene/api/index.d.ts.map +1 -1
  270. package/dist-types/things-scene/api/place.d.ts.map +1 -1
  271. package/dist-types/things-scene/api/zorder.d.ts.map +1 -1
  272. package/dist-types/things-scene/application-context.d.ts +62 -0
  273. package/dist-types/things-scene/application-context.d.ts.map +1 -1
  274. package/dist-types/things-scene/create.d.ts +43 -3
  275. package/dist-types/things-scene/create.d.ts.map +1 -1
  276. package/dist-types/things-scene/index.d.ts +29 -0
  277. package/dist-types/things-scene/index.d.ts.map +1 -1
  278. package/dist-types/things-scene/scene.d.ts +120 -2
  279. package/dist-types/things-scene/scene.d.ts.map +1 -1
  280. package/dist-types/threed/arrow-3d.d.ts +13 -4
  281. package/dist-types/threed/arrow-3d.d.ts.map +1 -1
  282. package/dist-types/threed/environments/base-environment.d.ts +17 -0
  283. package/dist-types/threed/environments/base-environment.d.ts.map +1 -0
  284. package/dist-types/threed/environments/cloudy-environment.d.ts +10 -0
  285. package/dist-types/threed/environments/cloudy-environment.d.ts.map +1 -0
  286. package/dist-types/threed/environments/factory-environment.d.ts +3 -3
  287. package/dist-types/threed/environments/factory-environment.d.ts.map +1 -1
  288. package/dist-types/threed/environments/home-environment.d.ts +3 -3
  289. package/dist-types/threed/environments/home-environment.d.ts.map +1 -1
  290. package/dist-types/threed/environments/office-environment.d.ts +3 -3
  291. package/dist-types/threed/environments/office-environment.d.ts.map +1 -1
  292. package/dist-types/threed/environments/rainy-environment.d.ts +10 -0
  293. package/dist-types/threed/environments/rainy-environment.d.ts.map +1 -0
  294. package/dist-types/threed/environments/studio-environment.d.ts +2 -3
  295. package/dist-types/threed/environments/studio-environment.d.ts.map +1 -1
  296. package/dist-types/threed/environments/sunny-environment.d.ts +10 -0
  297. package/dist-types/threed/environments/sunny-environment.d.ts.map +1 -0
  298. package/dist-types/threed/environments/warehouse-environment.d.ts +3 -3
  299. package/dist-types/threed/environments/warehouse-environment.d.ts.map +1 -1
  300. package/dist-types/threed/factories/backdrop.d.ts +541 -0
  301. package/dist-types/threed/factories/backdrop.d.ts.map +1 -0
  302. package/dist-types/threed/factories/banner.d.ts +16 -4
  303. package/dist-types/threed/factories/banner.d.ts.map +1 -1
  304. package/dist-types/threed/factories/camera.d.ts +12 -3
  305. package/dist-types/threed/factories/camera.d.ts.map +1 -1
  306. package/dist-types/threed/factories/cube.d.ts +11 -3
  307. package/dist-types/threed/factories/cube.d.ts.map +1 -1
  308. package/dist-types/threed/factories/cylinder.d.ts +1 -0
  309. package/dist-types/threed/factories/cylinder.d.ts.map +1 -1
  310. package/dist-types/threed/factories/decal.d.ts +516 -0
  311. package/dist-types/threed/factories/decal.d.ts.map +1 -0
  312. package/dist-types/threed/factories/floor-plate.d.ts +11 -0
  313. package/dist-types/threed/factories/floor-plate.d.ts.map +1 -0
  314. package/dist-types/threed/factories/gltf-object.d.ts +270 -38
  315. package/dist-types/threed/factories/gltf-object.d.ts.map +1 -1
  316. package/dist-types/threed/factories/group.d.ts +2 -0
  317. package/dist-types/threed/factories/group.d.ts.map +1 -0
  318. package/dist-types/threed/factories/light.d.ts +1 -0
  319. package/dist-types/threed/factories/light.d.ts.map +1 -1
  320. package/dist-types/threed/factories/line.d.ts +10 -0
  321. package/dist-types/threed/factories/line.d.ts.map +1 -0
  322. package/dist-types/threed/factories/ortholine.d.ts +10 -0
  323. package/dist-types/threed/factories/ortholine.d.ts.map +1 -0
  324. package/dist-types/threed/factories/polygon.d.ts +19 -0
  325. package/dist-types/threed/factories/polygon.d.ts.map +1 -1
  326. package/dist-types/threed/factories/polyline.d.ts +10 -0
  327. package/dist-types/threed/factories/polyline.d.ts.map +1 -0
  328. package/dist-types/threed/factories/rect.d.ts.map +1 -1
  329. package/dist-types/threed/factories/sphere.d.ts +6 -0
  330. package/dist-types/threed/factories/sphere.d.ts.map +1 -1
  331. package/dist-types/threed/factories/sprite.d.ts +11 -3
  332. package/dist-types/threed/factories/sprite.d.ts.map +1 -1
  333. package/dist-types/threed/factories/triangle.d.ts.map +1 -1
  334. package/dist-types/threed/factories/wall.d.ts +11 -3
  335. package/dist-types/threed/factories/wall.d.ts.map +1 -1
  336. package/dist-types/threed/floor/floor.d.ts.map +1 -1
  337. package/dist-types/threed/handle-3d.d.ts +21 -0
  338. package/dist-types/threed/handle-3d.d.ts.map +1 -0
  339. package/dist-types/threed/html/elements.d.ts.map +1 -1
  340. package/dist-types/threed/index.d.ts +24 -0
  341. package/dist-types/threed/index.d.ts.map +1 -1
  342. package/dist-types/threed/managers/box-selection-manager.d.ts +26 -0
  343. package/dist-types/threed/managers/box-selection-manager.d.ts.map +1 -0
  344. package/dist-types/threed/managers/camera-bookmark-manager.d.ts +66 -32
  345. package/dist-types/threed/managers/camera-bookmark-manager.d.ts.map +1 -1
  346. package/dist-types/threed/managers/camera-manager.d.ts +9 -3
  347. package/dist-types/threed/managers/camera-manager.d.ts.map +1 -1
  348. package/dist-types/threed/managers/controls-manager.d.ts +25 -4
  349. package/dist-types/threed/managers/controls-manager.d.ts.map +1 -1
  350. package/dist-types/threed/managers/event-manager3d.d.ts +14 -0
  351. package/dist-types/threed/managers/event-manager3d.d.ts.map +1 -1
  352. package/dist-types/threed/managers/gizmo-manager.d.ts +6 -0
  353. package/dist-types/threed/managers/gizmo-manager.d.ts.map +1 -1
  354. package/dist-types/threed/managers/gizmo-operation-manager.d.ts +54 -1
  355. package/dist-types/threed/managers/gizmo-operation-manager.d.ts.map +1 -1
  356. package/dist-types/threed/managers/index.d.ts +3 -1
  357. package/dist-types/threed/managers/index.d.ts.map +1 -1
  358. package/dist-types/threed/managers/interaction-manager.d.ts +17 -0
  359. package/dist-types/threed/managers/interaction-manager.d.ts.map +1 -1
  360. package/dist-types/threed/managers/light-manager.d.ts +15 -0
  361. package/dist-types/threed/managers/light-manager.d.ts.map +1 -1
  362. package/dist-types/threed/managers/renderer-manager.d.ts +37 -0
  363. package/dist-types/threed/managers/renderer-manager.d.ts.map +1 -1
  364. package/dist-types/threed/managers/scene-manager.d.ts +12 -2
  365. package/dist-types/threed/managers/scene-manager.d.ts.map +1 -1
  366. package/dist-types/threed/managers/types.d.ts +4 -2
  367. package/dist-types/threed/managers/types.d.ts.map +1 -1
  368. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts +154 -0
  369. package/dist-types/threed/managers/vertex-gizmo-manager.d.ts.map +1 -0
  370. package/dist-types/threed/material-3d.d.ts +5 -2
  371. package/dist-types/threed/material-3d.d.ts.map +1 -1
  372. package/dist-types/threed/ratio-lock-utils.d.ts +9 -0
  373. package/dist-types/threed/ratio-lock-utils.d.ts.map +1 -0
  374. package/dist-types/threed/real-object-dom-element.d.ts +2 -0
  375. package/dist-types/threed/real-object-dom-element.d.ts.map +1 -1
  376. package/dist-types/threed/real-object-dom-texture.d.ts +9 -0
  377. package/dist-types/threed/real-object-dom-texture.d.ts.map +1 -1
  378. package/dist-types/threed/real-object-external-model.d.ts +24 -0
  379. package/dist-types/threed/real-object-external-model.d.ts.map +1 -0
  380. package/dist-types/threed/real-object-extrude.d.ts +16 -1
  381. package/dist-types/threed/real-object-extrude.d.ts.map +1 -1
  382. package/dist-types/threed/real-object-gltf.d.ts +21 -11
  383. package/dist-types/threed/real-object-gltf.d.ts.map +1 -1
  384. package/dist-types/threed/real-object-group.d.ts +2 -0
  385. package/dist-types/threed/real-object-group.d.ts.map +1 -1
  386. package/dist-types/threed/real-object-line.d.ts +83 -0
  387. package/dist-types/threed/real-object-line.d.ts.map +1 -0
  388. package/dist-types/threed/real-object-mesh.d.ts.map +1 -1
  389. package/dist-types/threed/real-object-plane-2d.d.ts +23 -0
  390. package/dist-types/threed/real-object-plane-2d.d.ts.map +1 -1
  391. package/dist-types/threed/real-object-service.d.ts +14 -0
  392. package/dist-types/threed/real-object-service.d.ts.map +1 -0
  393. package/dist-types/threed/real-object-sprite.d.ts +7 -1
  394. package/dist-types/threed/real-object-sprite.d.ts.map +1 -1
  395. package/dist-types/threed/real-object-text.d.ts +5 -0
  396. package/dist-types/threed/real-object-text.d.ts.map +1 -1
  397. package/dist-types/threed/real-object.d.ts +261 -7
  398. package/dist-types/threed/real-object.d.ts.map +1 -1
  399. package/dist-types/threed/text-editor-3d.d.ts +11 -0
  400. package/dist-types/threed/text-editor-3d.d.ts.map +1 -0
  401. package/dist-types/threed/texture/canvas-texture.d.ts +7 -0
  402. package/dist-types/threed/texture/canvas-texture.d.ts.map +1 -1
  403. package/dist-types/threed/texture/fillstyle-texture.d.ts +57 -0
  404. package/dist-types/threed/texture/fillstyle-texture.d.ts.map +1 -0
  405. package/dist-types/threed/texture/text-texture.d.ts +15 -0
  406. package/dist-types/threed/texture/text-texture.d.ts.map +1 -1
  407. package/dist-types/threed/three-capability.d.ts +131 -15
  408. package/dist-types/threed/three-capability.d.ts.map +1 -1
  409. package/dist-types/threed/three-container.d.ts +0 -1
  410. package/dist-types/threed/three-container.d.ts.map +1 -1
  411. package/dist-types/threed/three-dimensional-container.d.ts +0 -1
  412. package/dist-types/threed/three-dimensional-container.d.ts.map +1 -1
  413. package/dist-types/threed/utils/anchor.d.ts +33 -0
  414. package/dist-types/threed/utils/anchor.d.ts.map +1 -0
  415. package/dist-types/threed/utils/dispose.d.ts.map +1 -1
  416. package/dist-types/threed/utils/polygon-shape.d.ts +21 -0
  417. package/dist-types/threed/utils/polygon-shape.d.ts.map +1 -0
  418. package/dist-types/threed/utils/tether.d.ts +46 -0
  419. package/dist-types/threed/utils/tether.d.ts.map +1 -0
  420. package/dist-types/threed/z-priority.d.ts +27 -0
  421. package/dist-types/threed/z-priority.d.ts.map +1 -0
  422. package/dist-types/tracker/tracker.d.ts +57 -0
  423. package/dist-types/tracker/tracker.d.ts.map +1 -0
  424. package/dist-types/transfer/carrier-line-capability.d.ts +95 -0
  425. package/dist-types/transfer/carrier-line-capability.d.ts.map +1 -0
  426. package/dist-types/transfer/centering-slot-strategy.d.ts +8 -0
  427. package/dist-types/transfer/centering-slot-strategy.d.ts.map +1 -0
  428. package/dist-types/transfer/fixed-slot-strategy.d.ts +8 -0
  429. package/dist-types/transfer/fixed-slot-strategy.d.ts.map +1 -0
  430. package/dist-types/transfer/index.d.ts +24 -0
  431. package/dist-types/transfer/index.d.ts.map +1 -0
  432. package/dist-types/transfer/pickup-helpers.d.ts +75 -0
  433. package/dist-types/transfer/pickup-helpers.d.ts.map +1 -0
  434. package/dist-types/transfer/simulation-clock.d.ts +45 -0
  435. package/dist-types/transfer/simulation-clock.d.ts.map +1 -0
  436. package/dist-types/transfer/tracer.d.ts +35 -0
  437. package/dist-types/transfer/tracer.d.ts.map +1 -0
  438. package/dist-types/transfer/transfer-helpers.d.ts +18 -0
  439. package/dist-types/transfer/transfer-helpers.d.ts.map +1 -0
  440. package/dist-types/transfer/transfer.d.ts +257 -0
  441. package/dist-types/transfer/transfer.d.ts.map +1 -0
  442. package/dist-types/transfer/transferable-mixin.d.ts +275 -0
  443. package/dist-types/transfer/transferable-mixin.d.ts.map +1 -0
  444. package/dist-types/transfer/types.d.ts +462 -0
  445. package/dist-types/transfer/types.d.ts.map +1 -0
  446. package/dist-types/transition/transition-effect.d.ts +117 -0
  447. package/dist-types/transition/transition-effect.d.ts.map +1 -0
  448. package/dist-types/types/bounding.d.ts +1 -1
  449. package/dist-types/types/bounding.d.ts.map +1 -1
  450. package/dist-types/types/capability.d.ts +59 -0
  451. package/dist-types/types/capability.d.ts.map +1 -0
  452. package/dist-types/types/component.d.ts +6 -177
  453. package/dist-types/types/component.d.ts.map +1 -1
  454. package/dist-types/types/event.d.ts +57 -0
  455. package/dist-types/types/event.d.ts.map +1 -1
  456. package/dist-types/types/polygon-path-arc.d.ts +72 -0
  457. package/dist-types/types/polygon-path-arc.d.ts.map +1 -0
  458. package/dist-types/types/polygon-path.d.ts +153 -0
  459. package/dist-types/types/polygon-path.d.ts.map +1 -0
  460. package/package.json +13 -2
  461. package/things-scene-min.js +12 -13
  462. package/things-scene-min.js.map +1 -1
  463. package/things-scene-transfer.mjs +7 -0
  464. package/things-scene.mjs +8 -9
  465. package/things-scene.mjs.map +1 -1
@@ -0,0 +1,145 @@
1
+ import type { Vec3 } from '../transfer/types.js';
2
+ export interface LaneGeometry {
3
+ /** 중앙선의 점들 (시작 → 끝). */
4
+ centerPoints: Vec3[];
5
+ /** lane 의 폭 (vehicle 이 이 안에 들어가야 함). */
6
+ width: number;
7
+ }
8
+ export interface Lane {
9
+ id: string;
10
+ geometry: LaneGeometry;
11
+ /** oneway 면 centerPoints 의 시작→끝 방향만, twoway 면 양방향 허용. */
12
+ direction: 'oneway' | 'twoway';
13
+ /** 속도 제한 (scene units / sim sec). undefined = 무제한. */
14
+ speedLimit?: number;
15
+ /** 통과 가능한 도구 type (Pickable.toolType 과 같은 축). 빈 배열 = 모두 허용. */
16
+ allowedToolTypes?: string[];
17
+ /** 동시에 들어갈 수 있는 vehicle 수. 1 = 단독 점유 (1차원 큐). */
18
+ capacity: number;
19
+ }
20
+ /**
21
+ * 두 lane 의 진입쌍이 충돌하는지 표현. e.g. north→south 와 east→west 는 직각
22
+ * 교차로에서 충돌하지만 north→east 와 south→east 는 충돌 안 함 (병행).
23
+ */
24
+ export interface ConflictPair {
25
+ fromLane: string;
26
+ toLane: string;
27
+ /** 어떤 우선순위 정책을 적용할지. */
28
+ resolveBy: 'fifo' | 'priority' | 'roundrobin';
29
+ }
30
+ export interface Intersection {
31
+ id: string;
32
+ lanes: string[];
33
+ conflicts: ConflictPair[];
34
+ /** 통과 시간 (vehicle 이 교차로 안에 머무는 sim ms). 보수적으로 추정. */
35
+ crossingTimeMs: number;
36
+ }
37
+ export interface NavPolygon {
38
+ vertices: Vec3[];
39
+ }
40
+ /**
41
+ * lane 으로 표현하기 어려운 넓은 영역 (open warehouse floor, dock plaza 등).
42
+ * 시공간 격자로 점유권을 관리.
43
+ */
44
+ export interface OpenZone {
45
+ id: string;
46
+ boundary: NavPolygon;
47
+ /** 점유 격자의 cell 한 변 크기 (scene unit). 작을수록 정확하지만 reservation 많아짐. */
48
+ cellSize: number;
49
+ }
50
+ export interface TimeWindow {
51
+ /** sim time milliseconds. */
52
+ startSimMs: number;
53
+ endSimMs: number;
54
+ }
55
+ /**
56
+ * 어떤 resource 를 어떤 시간 window 동안 누가 점유하는가.
57
+ *
58
+ * resource 는 lane id / intersection id / open-zone cell key 등 resource 의
59
+ * 단일 식별자. cell 의 경우 e.g. `${zoneId}:cell:${i},${j}`.
60
+ */
61
+ export interface Reservation {
62
+ id: string;
63
+ resource: string;
64
+ timeWindow: TimeWindow;
65
+ reserverId: string;
66
+ /** 낮을수록 우선. emergency = -1, task-bound = 0, idle = 10 등. */
67
+ priority: number;
68
+ /** 부수 메타 (어떤 task 의 일부인지, 어떤 carrier 를 운반 중인지 등). */
69
+ metadata?: Record<string, any>;
70
+ }
71
+ export interface SpeedProfile {
72
+ /** 최대 속도 (scene units / sim sec). */
73
+ max: number;
74
+ /** 가속도 (scene units / sim sec²). */
75
+ accel: number;
76
+ /** 감속도 (scene units / sim sec²). */
77
+ decel: number;
78
+ }
79
+ export interface PathSegment {
80
+ resource: string;
81
+ /** 이 segment 를 통과하는 sim time. */
82
+ timeWindow: TimeWindow;
83
+ /** segment 시작 / 끝 좌표 (시각화용). */
84
+ fromPos: Vec3;
85
+ toPos: Vec3;
86
+ }
87
+ export interface PathPlan {
88
+ segments: PathSegment[];
89
+ /** 전체 경로의 sim time 길이. */
90
+ totalDurationMs: number;
91
+ /** 전체 경로 길이 (scene unit). */
92
+ totalDistance: number;
93
+ }
94
+ export interface PathPlanOptions {
95
+ /** sim time 시작점. 미지정 시 현재 globalSimClock.now. */
96
+ startSimMs?: number;
97
+ /** vehicle 의 toolType — lane.allowedToolTypes 검사용. */
98
+ toolType?: string;
99
+ /** vehicle 의 speed profile. */
100
+ speed?: SpeedProfile;
101
+ /** 우선순위 (충돌 시 양보 결정용). */
102
+ priority?: number;
103
+ /** deadline (sim ms) — 이 시간 안에 도착 못 하면 null 반환. */
104
+ deadlineSimMs?: number;
105
+ }
106
+ /**
107
+ * Vehicle 이 navigation 능력을 노출하는 인터페이스. Mover 의 sub-trait.
108
+ *
109
+ * lifecycle:
110
+ * 1. planPath(target) → PathPlan | null (lookup, 부수효과 없음)
111
+ * 2. reservePath(plan) → Reservation[] | null (table 에 add, 충돌 시 null)
112
+ * 3. followReservation(rs) → Promise<void> (sim time 진행)
113
+ * 4. releaseReservation(rs) (도착 후 또는 cancel)
114
+ *
115
+ * 단계 분리로 충돌 감지가 commit 직전, replay 가 결정적, 디버깅이 가능.
116
+ */
117
+ export interface Navigable {
118
+ toolType: string;
119
+ speedProfile: SpeedProfile;
120
+ /**
121
+ * 경로 계획. 시간-공간 reservation 가능성 검증 포함 (단, table 에 commit 안 함).
122
+ * null 반환 = 도달 가능 경로 없음 (deadline 초과 / 모든 lane 점유 등).
123
+ */
124
+ planPath(target: Vec3, options?: PathPlanOptions): PathPlan | null;
125
+ /**
126
+ * 계획된 경로를 reservation table 에 commit. 다른 vehicle 이 이미 점유한
127
+ * window 와 충돌 시 null — 호출자가 reroute 하든 대기하든 결정.
128
+ */
129
+ reservePath(plan: PathPlan, priority?: number): Reservation[] | null;
130
+ /**
131
+ * commit 된 reservation 따라 sim time 진행. resolve = 마지막 segment 도착.
132
+ */
133
+ followReservation(reservations: Reservation[]): Promise<void>;
134
+ /** 점유 해제. 도착 완료 또는 cancel 시 호출. */
135
+ releaseReservation(reservations: Reservation[]): void;
136
+ }
137
+ export type YieldDecision = 'a-yields' | 'b-yields' | 'replan-both';
138
+ export interface YieldPolicy {
139
+ /**
140
+ * 두 reservation 이 시간-공간 충돌할 때 누가 양보하는가.
141
+ * 기본: priority 낮은 (수치 높은) 쪽이 양보. 같으면 fifo (먼저 만든 게 우선).
142
+ */
143
+ resolveConflict(a: Reservation, b: Reservation): YieldDecision;
144
+ }
145
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/navigation/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export type { Placement, PlacementPolicy } from './placement.js';
2
+ export { DEFAULT_PLACEMENT, isStateDriven } from './placement.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/placement/index.ts"],"names":[],"mappings":"AAMA,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * 컴포넌트의 placement 결정 정책.
3
+ *
4
+ * - **state-driven** (default): state.left/top/zPos/rotation/... 이 obj3d 에 반영.
5
+ * 현재 things-scene 의 모든 컴포넌트가 묵시적으로 따르는 정책.
6
+ *
7
+ * - **carried**: 다른 holder 의 attach frame 에 부착. holder 의 movement 를
8
+ * scene-graph 통해 자동 추종. carrier policy (world-preserve / belt-aligned /
9
+ * world-fixed 등) 는 holder 가 결정. 예: AGV 위 박스, sorter carrier 위 파레트.
10
+ *
11
+ * - **animated**: animation system 이 일시적으로 obj3d 를 override. animation
12
+ * 종료 시 다른 정책으로 복귀.
13
+ *
14
+ * - **fixed**: world 좌표 고정 (parent 변경 무관). HUD / screenFixed 컴포넌트.
15
+ *
16
+ * - **transitioning**: reparent 중 TransitionEffect 가 보간 제어. transition
17
+ * 완료 시 keepSuppressed 면 carried 또는 manual, 아니면 state-driven 으로 복귀.
18
+ *
19
+ * - **manual**: 컴포넌트 코드가 직접 obj3d.position/quaternion 을 매 frame
20
+ * 조작. framework 는 개입 안 함. 예: cross-belt-line 의 _tickSim, IK
21
+ * smoothing, URDF physics.
22
+ */
23
+ export type PlacementPolicy = 'state-driven' | 'carried' | 'animated' | 'fixed' | 'transitioning' | 'manual';
24
+ /**
25
+ * Placement 선언. 컴포넌트의 RealObject 가 이 객체를 반환하면 framework 가
26
+ * 정책에 따라 동작.
27
+ *
28
+ * Step 1 에선 policy 만 정의. 후속 step 에서 정책별 metadata (예: carried 의
29
+ * carryPolicy 'world-preserve' / 'belt-aligned', transitioning 의 transition 객체)
30
+ * 를 추가.
31
+ */
32
+ export interface Placement {
33
+ policy: PlacementPolicy;
34
+ /**
35
+ * 정책별 metadata. 선언 시점에 정책에 따라 추가 정보를 담음.
36
+ * Step 1 에선 미사용. 향후 정책 별로 타입 좁히기 (discriminated union) 적용.
37
+ */
38
+ meta?: Record<string, unknown>;
39
+ }
40
+ /** 기본 placement = 현재 동작 = state pipeline 이 obj3d 를 결정. */
41
+ export declare const DEFAULT_PLACEMENT: Placement;
42
+ /**
43
+ * Placement 정책이 state pipeline 적용을 허용하는가.
44
+ *
45
+ * - state-driven: ✓ 적용
46
+ * - 그 외: framework 가 obj3d 를 건드리지 않음 (다른 시스템 또는 컴포넌트가 책임).
47
+ *
48
+ * 현재 RealObject 의 `suppressTransform` 플래그와 의미가 겹침. 마이그레이션
49
+ * 단계 (Step 2~7) 에서 suppressTransform 이 점진적으로 `placement.policy !==
50
+ * 'state-driven'` 으로 흡수됨. 호환성 위해 두 메커니즘 일정 기간 병존.
51
+ */
52
+ export declare function isStateDriven(placement: Placement): boolean;
53
+ //# sourceMappingURL=placement.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"placement.d.ts","sourceRoot":"","sources":["../../src/placement/placement.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,MAAM,eAAe,GACvB,cAAc,GACd,SAAS,GACT,UAAU,GACV,OAAO,GACP,eAAe,GACf,QAAQ,CAAA;AAEZ;;;;;;;GAOG;AACH,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAA;IACvB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC/B;AAED,0DAA0D;AAC1D,eAAO,MAAM,iBAAiB,EAAE,SAAsC,CAAA;AAEtE;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,3 @@
1
+ export { SceneSearchEngine, type SearchResult, type SearchOptions } from './scene-search-engine.js';
2
+ export { SearchOverlay, type SearchOverlayHost } from './search-overlay.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/search/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,KAAK,YAAY,EAAE,KAAK,aAAa,EAAE,MAAM,0BAA0B,CAAA;AACnG,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA"}
@@ -0,0 +1,64 @@
1
+ import type Component from '../components/component.js';
2
+ /**
3
+ * 검색 결과 하나를 나타낸다.
4
+ */
5
+ export interface SearchResult {
6
+ /** 매칭된 컴포넌트 */
7
+ component: Component;
8
+ /** 매칭 카테고리 */
9
+ matchType: 'id' | 'name' | 'tag' | 'type' | 'class' | 'text' | 'data' | 'property';
10
+ /** 매칭된 필드 이름 (예: 'accessor', 'fillStyle') */
11
+ matchField: string;
12
+ /** 매칭된 값 */
13
+ matchValue: string;
14
+ }
15
+ export interface SearchOptions {
16
+ /** 검색할 필드 범위 (기본: 전체) */
17
+ fields?: SearchResult['matchType'][];
18
+ /** 대소문자 구분 (기본: false) */
19
+ caseSensitive?: boolean;
20
+ /** hidden 컴포넌트 포함 (기본: false) */
21
+ includeHidden?: boolean;
22
+ /** 최대 결과 수 (기본: 무제한) */
23
+ maxResults?: number;
24
+ }
25
+ /**
26
+ * things-scene 컴포넌트 트리를 대상으로 텍스트 검색을 수행하는 엔진.
27
+ *
28
+ * 에디터/뷰어, 2D/3D 모드 공용.
29
+ * 검색 대상: id, name, tag, type, class, text, data-binding(accessor/target/property), 주요 속성값.
30
+ */
31
+ export declare class SceneSearchEngine {
32
+ private _results;
33
+ private _currentIndex;
34
+ get results(): readonly SearchResult[];
35
+ get currentIndex(): number;
36
+ get currentResult(): SearchResult | undefined;
37
+ get resultCount(): number;
38
+ /**
39
+ * 컴포넌트 트리에서 query를 검색한다.
40
+ * 동일 컴포넌트가 여러 필드에서 매칭되면 첫 번째 매칭만 결과에 포함한다.
41
+ */
42
+ search(root: Component, query: string, options?: SearchOptions): SearchResult[];
43
+ /** 다음 결과로 이동 */
44
+ navigateNext(): SearchResult | undefined;
45
+ /** 이전 결과로 이동 */
46
+ navigatePrev(): SearchResult | undefined;
47
+ /** 특정 인덱스로 이동 */
48
+ navigateTo(index: number): SearchResult | undefined;
49
+ /** 검색 결과 초기화 */
50
+ clear(): void;
51
+ private _traverse;
52
+ private _matchComponent;
53
+ /**
54
+ * data-binding 설정(mappings)에서 검색.
55
+ * accessor, target, property, source 필드를 대상으로 한다.
56
+ */
57
+ private _matchDataBinding;
58
+ /**
59
+ * 주요 속성값에서 검색.
60
+ * fillStyle(문자열), strokeStyle(문자열), ref, src 등.
61
+ */
62
+ private _matchProperties;
63
+ }
64
+ //# sourceMappingURL=scene-search-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scene-search-engine.d.ts","sourceRoot":"","sources":["../../src/search/scene-search-engine.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AAEvD;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,eAAe;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc;IACd,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,UAAU,CAAA;IAClF,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,YAAY;IACZ,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,MAAM,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC,EAAE,CAAA;IACpC,0BAA0B;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAMD;;;;;GAKG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,aAAa,CAAK;IAE1B,IAAI,OAAO,IAAI,SAAS,YAAY,EAAE,CAErC;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,IAAI,aAAa,IAAI,YAAY,GAAG,SAAS,CAE5C;IAED,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,YAAY,EAAE;IAkC/E,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,gBAAgB;IAChB,YAAY,IAAI,YAAY,GAAG,SAAS;IAMxC,iBAAiB;IACjB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAMnD,gBAAgB;IAChB,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,eAAe;IAoEvB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAiCzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;CAkCzB"}
@@ -0,0 +1,94 @@
1
+ import type Component from '../components/component.js';
2
+ import { SceneSearchEngine } from './scene-search-engine.js';
3
+ /**
4
+ * SearchOverlayHost: 검색 오버레이가 동작하기 위한 호스트 인터페이스.
5
+ * Scene이 이 인터페이스를 구현한다.
6
+ */
7
+ export interface SearchOverlayHost {
8
+ /** 검색 대상 루트 컴포넌트 */
9
+ readonly root: Component & {
10
+ selected?: Component[];
11
+ };
12
+ /** 오버레이를 붙일 DOM element */
13
+ readonly element: HTMLElement | null;
14
+ /** 컴포넌트로 카메라/뷰포트 이동 */
15
+ centerTo(component: Component, animated?: boolean): void;
16
+ /** 선택 변경 */
17
+ setSelected(components: Component[]): void;
18
+ /** 3D outline 하이라이트 (있으면) */
19
+ highlightSearchResults?(components: Component[]): void;
20
+ /** 2D invalidate */
21
+ invalidate?(): void;
22
+ }
23
+ /**
24
+ * 2D/3D 모드 공용 검색 오버레이 UI.
25
+ *
26
+ * 호스트의 DOM element에 겹쳐 놓는 가벼운 검색 바.
27
+ * F키로 토글, ↑↓ 결과 네비게이션, Enter 선택, Esc 닫기.
28
+ * 입력 히스토리(↑↓), Shift+Tab으로 input 복귀, 마우스+키보드 심리스 전환.
29
+ */
30
+ export declare class SearchOverlay {
31
+ private _host?;
32
+ private _engine;
33
+ private _container?;
34
+ private _input?;
35
+ private _statusEl?;
36
+ private _resultListEl?;
37
+ private _visible;
38
+ private _debounceTimer?;
39
+ private _queryHistory;
40
+ private _historyIndex;
41
+ private _savedInput;
42
+ private static MAX_HISTORY;
43
+ get isVisible(): boolean;
44
+ get engine(): SceneSearchEngine;
45
+ setup(host: SearchOverlayHost): void;
46
+ /**
47
+ * 오버레이 토글. 이미 열려 있으면 입력 필드에 포커스.
48
+ */
49
+ toggle(): void;
50
+ show(): void;
51
+ hide(): void;
52
+ destroy(): void;
53
+ private _buildDOM;
54
+ /**
55
+ * 드래그 핸들 설정. mousedown on `handle` 에서 시작, document 의 mousemove 로
56
+ * container 위치 추적, mouseup 으로 종료. input/button/icon 같은 인터랙티브
57
+ * 요소 위에서 시작된 mousedown 은 드래그로 잡지 않음 (본연의 click/focus 보존).
58
+ */
59
+ private _setupDrag;
60
+ private _buttonStyle;
61
+ private _doSearch;
62
+ private _addToHistory;
63
+ private _navigateHistory;
64
+ private _isHistoryMode;
65
+ /**
66
+ * input 의 raw 값을 host 에 query-submit 으로 전달. Enter 키 / 돋보기 아이콘 클릭
67
+ * 공통 진입점.
68
+ * - VIEW 모드: input 의 raw 값을 query-submit 으로 host 에 dispatch. 결과 유무
69
+ * 무관하게 입력값 자체를 정확한 ID 로 host 가 처리 (예: 미래 ID 영구 추적).
70
+ * - EDIT 모드: things-scene 기본 동작 위임 — 결과가 있으면 첫 결과 _selectResult.
71
+ * @returns input value 가 비어있지 않아 submit 처리했으면 true.
72
+ */
73
+ private _submitQuery;
74
+ /**
75
+ * VIEW 모드의 디폴트 query-submit 동작 — application 의 onSearchSubmit override
76
+ * 가 있으면 그것 호출. 반환 true 시 디폴트 (host.tracker.start) skip.
77
+ */
78
+ private _invokeViewSubmit;
79
+ /**
80
+ * VIEW 모드의 디폴트 close 동작 — application override (onSearchClose) 가 있으면
81
+ * 호출. 반환 true 시 디폴트 (host.tracker.stop) skip.
82
+ */
83
+ private _invokeViewClose;
84
+ private _focusResult;
85
+ private _isEditMode;
86
+ private _selectResult;
87
+ private _clearHighlight;
88
+ private _updateStatus;
89
+ private _renderResultList;
90
+ private _updateResultListSelection;
91
+ private _hideResultList;
92
+ private _truncate;
93
+ }
94
+ //# sourceMappingURL=search-overlay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search-overlay.d.ts","sourceRoot":"","sources":["../../src/search/search-overlay.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,SAAS,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAE5D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,SAAS,GAAG;QAAE,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAA;KAAE,CAAA;IACrD,2BAA2B;IAC3B,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;IACpC,uBAAuB;IACvB,QAAQ,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IACxD,YAAY;IACZ,WAAW,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1C,6BAA6B;IAC7B,sBAAsB,CAAC,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IACtD,oBAAoB;IACpB,UAAU,CAAC,IAAI,IAAI,CAAA;CACpB;AAaD;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,KAAK,CAAC,CAAmB;IACjC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,UAAU,CAAC,CAAgB;IACnC,OAAO,CAAC,MAAM,CAAC,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAC,CAAiB;IACnC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,cAAc,CAAC,CAA+B;IAGtD,OAAO,CAAC,aAAa,CAAe;IACpC,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,MAAM,CAAC,WAAW,CAAK;IAE/B,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,MAAM,IAAI,iBAAiB,CAE9B;IAED,KAAK,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAKpC;;OAEG;IACH,MAAM,IAAI,IAAI;IAad,IAAI,IAAI,IAAI;IAqBZ,IAAI,IAAI,IAAI;IAkBZ,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IA8JjB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAqClB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,SAAS;IAmBjB,OAAO,CAAC,aAAa;IAcrB,OAAO,CAAC,gBAAgB;IA4BxB,OAAO,CAAC,cAAc;IAItB;;;;;;;OAOG;IACH,OAAO,CAAC,YAAY;IAoBpB;;;OAGG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAYxB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,aAAa;IA8CrB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,iBAAiB;IA8HzB,OAAO,CAAC,0BAA0B;IAmBlC,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,SAAS;CAGlB"}
@@ -1,2 +1,27 @@
1
1
  export declare function startAddMode(this: any, models: any): void;
2
+ /** bulk-create 모드 결과 — 사용자가 영역 드래그 완료 시 area, ESC/취소 시 null. */
3
+ export interface BulkCreateResult {
4
+ area: {
5
+ left: number;
6
+ top: number;
7
+ width: number;
8
+ height: number;
9
+ };
10
+ template: any;
11
+ }
12
+ /**
13
+ * Bulk-create 모드 진입. AddLayer 가 캔버스 위에 드래그 박스 그림. 사용자가 영역을
14
+ * 선택하면 `{area, template}` 로 resolve, ESC/취소 시 null 로 resolve.
15
+ *
16
+ * 내부적으로 'bulkareaselected' / 'addstop' event 의 lifecycle 을 캡슐화 — consumer 가
17
+ * listener 등록/정리 boilerplate 없이 한 줄 `await` 로 처리.
18
+ *
19
+ * @param template 복사 원본 모델. bulkareaselected event payload 와 결과 객체에 그대로 전달.
20
+ * @param options.boxStrokeStyle addbox 의 stroke 색. 기본 'black' (일반 add 와 동일).
21
+ *
22
+ * this should be root-container.
23
+ */
24
+ export declare function startBulkCreateMode(this: any, template: any, options?: {
25
+ boxStrokeStyle?: string;
26
+ }): Promise<BulkCreateResult | null>;
2
27
  //# sourceMappingURL=add-start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD"}
1
+ {"version":3,"file":"add-start.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/add-start.ts"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,QAMlD;AAED,gEAAgE;AAChE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAA;IAClE,QAAQ,EAAE,GAAG,CAAA;CACd;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,GACpC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAsBlC"}
@@ -1 +1 @@
1
- {"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"AA4GA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYpD"}
1
+ {"version":3,"file":"align.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/align.ts"],"names":[],"mappings":"AA2JA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"AAsDA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYzD"}
1
+ {"version":3,"file":"distribute.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/distribute.ts"],"names":[],"mappings":"AAqFA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAYzD"}
@@ -1,2 +1,5 @@
1
- export declare function getIds(this: any): any[];
1
+ export declare function getIds(this: any): {
2
+ key: any;
3
+ value: any;
4
+ }[];
2
5
  //# sourceMappingURL=ids.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/ids.ts"],"names":[],"mappings":"AAKA,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,SAgB/B"}
1
+ {"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/ids.ts"],"names":[],"mappings":"AAKA,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG;;;IAoB/B"}
@@ -13,6 +13,6 @@ export { symmetryX, symmetryY } from './symmetry.js';
13
13
  export { change, undoableChange } from './change.js';
14
14
  export { getIds } from './ids.js';
15
15
  export { default as place } from './place.js';
16
- export { startAddMode } from './add-start.js';
16
+ export { startAddMode, startBulkCreateMode, type BulkCreateResult } from './add-start.js';
17
17
  export { startStylePasteMode, stopStylePasteMode, startDatabindPasteMode, stopDatabindPasteMode } from './paste-start.js';
18
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAC7C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,kBAAkB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,UAAU,CAAA;AACzC,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAC5C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3C,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA;AACjC,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AACzF,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,kBAAkB,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/place.ts"],"names":[],"mappings":"AAkFA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAapD"}
1
+ {"version":3,"file":"place.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/place.ts"],"names":[],"mappings":"AAkFA,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAcpD"}
@@ -1 +1 @@
1
- {"version":3,"file":"zorder.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/zorder.ts"],"names":[],"mappings":"AAQA,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAYlF;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAwD7C"}
1
+ {"version":3,"file":"zorder.d.ts","sourceRoot":"","sources":["../../../src/things-scene/api/zorder.ts"],"names":[],"mappings":"AAQA,wBAAgB,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,QAYlF;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,QAsD7C"}
@@ -1,9 +1,19 @@
1
+ import { DataLagTracker } from '../diagnostics/data-lag-tracker.js';
2
+ import type { LagMonitorConfig } from '../diagnostics/data-lag-tracker.js';
3
+ import { LoadTracker } from '../diagnostics/load-tracker.js';
4
+ import type { LoadingOptions } from '../diagnostics/load-tracker.js';
1
5
  export default class ApplicationContext {
2
6
  _mode: number;
3
7
  _screen: number;
4
8
  _baseUrl: string | null;
5
9
  _refProvider: unknown;
6
10
  _postprocessing: boolean;
11
+ /**
12
+ * Z-fighting 완화용 로그 depth buffer 강제. undefined = "auto" (포스트프로세싱 +
13
+ * 환경 프리셋 추천에 따라 자동 결정). true/false = 명시 override.
14
+ * **Renderer 생성 시점에만 적용** — 런타임 변경은 renderer 재생성 필요.
15
+ */
16
+ _logarithmicDepth?: boolean;
7
17
  _rotateStep: number;
8
18
  _rotateStepForced: boolean;
9
19
  _dataSubscriptionProvider: {
@@ -14,8 +24,32 @@ export default class ApplicationContext {
14
24
  _PPI: number;
15
25
  _PPM: number;
16
26
  _commander: unknown;
27
+ _loadTracker?: LoadTracker;
28
+ _loadTrackerOwned: boolean;
29
+ /** 영구 플래그 (런타임 setter로 조작) */
30
+ _suppressAnimationsFlag: boolean;
31
+ /** 스코프드 API 의 중첩 호출용 ref count */
32
+ _suppressScopeCount: number;
33
+ /**
34
+ * 모델링 포커스 dim 필터 — 반환 false 인 컴포넌트는 **편집 모드에서** dim + pick 제외된다.
35
+ * transient(비영속) view 상태: 모델(hidden)·저장물·undo 와 무관. undefined = 미적용.
36
+ */
37
+ _focusFilter?: (component: any) => boolean;
38
+ /** 마퀴(selbox) 영역 선택 드래그 진행 중 — 드래그 중 UI 갱신 억제용(transient, 비영속). */
39
+ isSelecting: boolean;
17
40
  trigger: (event: string, ...args: unknown[]) => void;
18
41
  constructor(mode: number, refProvider: unknown);
42
+ initLoadTracker(options?: LoadingOptions): LoadTracker;
43
+ get loadTracker(): LoadTracker | undefined;
44
+ /** 앱에서 미리 생성한 LoadTracker를 받아서 사용 (dispose 책임은 앱에 있음) */
45
+ adoptLoadTracker(tracker: LoadTracker): void;
46
+ initLagTracker(config: LagMonitorConfig | LagMonitorConfig[]): DataLagTracker;
47
+ /**
48
+ * 데이터 지연 트래커 — 모듈 싱글톤(dataLagTracker)을 가리킨다. 그래야
49
+ * globalThis.scene.dataLagTracker(모듈)와 app.lagTracker(인스턴스)가 동일 인스턴스를
50
+ * 공유해서, 모니터 익스텐션/오버레이/구독 핸들러가 같은 통계를 본다.
51
+ */
52
+ get lagTracker(): DataLagTracker;
19
53
  dispose(): void;
20
54
  _calcScreen(): void;
21
55
  subscribe(tag: string, component: unknown): unknown;
@@ -39,6 +73,8 @@ export default class ApplicationContext {
39
73
  set mode(mode: number);
40
74
  get isViewMode(): boolean;
41
75
  get isEditMode(): boolean;
76
+ get focusFilter(): ((component: any) => boolean) | undefined;
77
+ set focusFilter(filter: ((component: any) => boolean) | undefined);
42
78
  get baseUrl(): string | null;
43
79
  set baseUrl(baseUrl: string | null);
44
80
  url(x: string): any;
@@ -50,5 +86,31 @@ export default class ApplicationContext {
50
86
  set dataStorage(dataStorage: unknown);
51
87
  get postprocessing(): boolean;
52
88
  set postprocessing(value: boolean);
89
+ /** 로그 depth buffer 강제 (z-fighting 완화). undefined = auto. */
90
+ get logarithmicDepth(): boolean | undefined;
91
+ set logarithmicDepth(value: boolean | undefined);
92
+ /**
93
+ * 애니메이션 억제 상태 (영구 플래그 OR 활성 스코프 중 하나라도 해당되면 true).
94
+ *
95
+ * 확인 지점: Animation.start, animate(), ValueHolder.animOnValueChange,
96
+ * DecoratorRegistry.addToOverlay, AnimatedIconDecorator.start
97
+ */
98
+ get suppressAnimations(): boolean;
99
+ /** 런타임에 영구 플래그 토글. 스코프드 카운트와 OR 로 병합됨. */
100
+ set suppressAnimations(value: boolean);
101
+ /**
102
+ * 주어진 콜백을 애니메이션 억제 상태에서 실행.
103
+ * - 중첩 호출 안전 (ref-count)
104
+ * - sync/async 자동 판별 — Promise 리턴 시 완료될 때까지 억제 유지
105
+ * - 예외 발생 시에도 카운터 정상 복구
106
+ */
107
+ withSuppressedAnimations<T>(fn: () => T | Promise<T>): T | Promise<T>;
108
+ /**
109
+ * 수동 제어용 disposable. `end()` 를 반드시 호출해야 함.
110
+ * 스코프가 콜백 경계를 넘어서는 경우 (이벤트 핸들러 사이 등) 사용.
111
+ */
112
+ beginSuppressAnimations(): {
113
+ end(): void;
114
+ };
53
115
  }
54
116
  //# sourceMappingURL=application-context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application-context.d.ts","sourceRoot":"","sources":["../../src/things-scene/application-context.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAG,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,YAAY,EAAE,OAAO,CAAA;IACrB,eAAe,EAAE,OAAO,CAAO;IAC/B,WAAW,EAAG,MAAM,CAAA;IACpB,iBAAiB,EAAG,OAAO,CAAA;IAC3B,yBAAyB,EAAE;QAAE,SAAS,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAAC;QAAC,OAAO,CAAC,IAAI,IAAI,CAAA;KAAE,GAAG,SAAS,CAAA;IACjH,YAAY,EAAE,OAAO,CAAA;IACrB,IAAI,EAAG,MAAM,CAAA;IACb,IAAI,EAAG,MAAM,CAAA;IACb,UAAU,EAAE,OAAO,CAAA;IACnB,OAAO,EAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;gBAEzC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO;IAY9C,OAAO;IAKP,WAAW;IAUX,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO;IAIzC,IAAI,WAAW,YAEd;IAED,IAAI,wBAAwB,CAAC,wBAAwB;wBA1CR,MAAM,aAAa,OAAO,GAAG,OAAO;oBAAc,IAAI;iBA0C9C,EAEpD;IAED,IAAI,wBAAwB;wBA9CiB,MAAM,aAAa,OAAO,GAAG,OAAO;oBAAc,IAAI;kBAgDlG;IAED,IAAI,SAAS,CAAC,SAAS,SAAA,EAEtB;IAED,IAAI,SAAS,YAEZ;IAED,IAAI,MAAM,WAET;IAED,IAAI,MAAM,CAAC,MAAM,QAAA,EAGhB;IAED,IAAI,IAAI,WAEP;IAED,IAAI,GAAG,WAEN;IAED,IAAI,GAAG,WAEN;IAED,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,CAAC,IAAI,QAAA,EAMZ;IAED,IAAI,UAAU,YAEb;IAED,IAAI,UAAU,YAEb;IAED,IAAI,OAAO,kBAEV;IAED,IAAI,OAAO,CAAC,OAAO,eAAA,EASlB;IAED,GAAG,CAAC,CAAC,EAAE,MAAM;IAiBb,IAAI,UAAU,WAEb;IAED,IAAI,UAAU,CAAC,IAAI,QAAA,EAElB;IAOD,IAAI,gBAAgB,YAEnB;IAED,IAAI,gBAAgB,CAAC,KAAK,SAAA,EAEzB;IAGD,IAAI,WAAW,YAEd;IAED,IAAI,WAAW,CAAC,WAAW,SAAA,EAE1B;IAED,IAAI,cAAc,IAIQ,OAAO,CAFhC;IAED,IAAI,cAAc,CAAC,KAAK,EAAE,OAAO,EAEhC;CACF"}
1
+ {"version":3,"file":"application-context.d.ts","sourceRoot":"","sources":["../../src/things-scene/application-context.ts"],"names":[],"mappings":"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"}