@vived/component-pneumatic-panel 1.2.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +60 -21
  2. package/dist/Domain/Adapters/pneumaticPanelPMAdapter.d.ts.map +1 -1
  3. package/dist/Domain/Controllers/applyPanelState.d.ts.map +1 -1
  4. package/dist/Domain/Controllers/getPanelState.d.ts.map +1 -1
  5. package/dist/Domain/Controllers/panelStateDefaults.d.ts +0 -1
  6. package/dist/Domain/Controllers/panelStateDefaults.d.ts.map +1 -1
  7. package/dist/Domain/Entities/PneumaticPanelEntity.d.ts +0 -4
  8. package/dist/Domain/Entities/PneumaticPanelEntity.d.ts.map +1 -1
  9. package/dist/Domain/Mocks/MockPneumaticPanelSelectUC.d.ts +0 -4
  10. package/dist/Domain/Mocks/MockPneumaticPanelSelectUC.d.ts.map +1 -1
  11. package/dist/Domain/PMs/PneumaticPanelPM.d.ts +0 -3
  12. package/dist/Domain/PMs/PneumaticPanelPM.d.ts.map +1 -1
  13. package/dist/Domain/UCs/PneumaticPanelSelectUC.d.ts +0 -14
  14. package/dist/Domain/UCs/PneumaticPanelSelectUC.d.ts.map +1 -1
  15. package/dist/Frameworks/Babylon/PneumaticPanelBabylonView.d.ts +9 -12
  16. package/dist/Frameworks/Babylon/PneumaticPanelBabylonView.d.ts.map +1 -1
  17. package/dist/Frameworks/Babylon/PneumaticPanelExhaustView.d.ts +2 -2
  18. package/dist/Frameworks/Babylon/PneumaticPanelExhaustView.d.ts.map +1 -1
  19. package/dist/Frameworks/Babylon/PneumaticPanelGaugeView.d.ts +2 -2
  20. package/dist/Frameworks/Babylon/PneumaticPanelGaugeView.d.ts.map +1 -1
  21. package/dist/Frameworks/Babylon/PneumaticPanelHitboxView.d.ts +5 -7
  22. package/dist/Frameworks/Babylon/PneumaticPanelHitboxView.d.ts.map +1 -1
  23. package/dist/Frameworks/Babylon/PneumaticPanelLockView.d.ts +2 -2
  24. package/dist/Frameworks/Babylon/PneumaticPanelLockView.d.ts.map +1 -1
  25. package/dist/PneumaticPanelFacade.d.ts +1 -13
  26. package/dist/PneumaticPanelFacade.d.ts.map +1 -1
  27. package/dist/index.d.ts +1 -7
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +5169 -51
  30. package/package.json +1 -1
  31. package/dist/Domain/Controllers/clearAllHighlights.d.ts +0 -9
  32. package/dist/Domain/Controllers/clearAllHighlights.d.ts.map +0 -1
  33. package/dist/Domain/Controllers/onPanelHoverEnter.d.ts +0 -7
  34. package/dist/Domain/Controllers/onPanelHoverEnter.d.ts.map +0 -1
  35. package/dist/Domain/Controllers/onPanelHoverExit.d.ts +0 -7
  36. package/dist/Domain/Controllers/onPanelHoverExit.d.ts.map +0 -1
  37. package/dist/Domain/Controllers/panelHitboxHoverEnter.d.ts +0 -7
  38. package/dist/Domain/Controllers/panelHitboxHoverEnter.d.ts.map +0 -1
  39. package/dist/Domain/Controllers/panelHitboxHoverExit.d.ts +0 -7
  40. package/dist/Domain/Controllers/panelHitboxHoverExit.d.ts.map +0 -1
  41. package/dist/Domain/Controllers/setHighlightedObject.d.ts +0 -11
  42. package/dist/Domain/Controllers/setHighlightedObject.d.ts.map +0 -1
  43. package/dist/Frameworks/Babylon/OutlinePulseController.d.ts +0 -18
  44. package/dist/Frameworks/Babylon/OutlinePulseController.d.ts.map +0 -1
  45. package/dist/Frameworks/Babylon/OverlayPulseController.d.ts +0 -17
  46. package/dist/Frameworks/Babylon/OverlayPulseController.d.ts.map +0 -1
  47. package/dist/Frameworks/Babylon/PanelOutlineController.d.ts +0 -32
  48. package/dist/Frameworks/Babylon/PanelOutlineController.d.ts.map +0 -1
  49. package/dist/Frameworks/Babylon/ScreenSpaceOutlinePulseController.d.ts +0 -17
  50. package/dist/Frameworks/Babylon/ScreenSpaceOutlinePulseController.d.ts.map +0 -1
  51. package/dist/clipPlaneFragment-BRmzi2tV.js +0 -55
  52. package/dist/clipPlaneFragment-CDdVuU0n.js +0 -55
  53. package/dist/clipPlaneVertex-CIEg9nQi.js +0 -358
  54. package/dist/clipPlaneVertex-CIarPzTc.js +0 -391
  55. package/dist/dumpTools-BUC-AUZt.js +0 -110
  56. package/dist/glowBlurPostProcess.fragment-DDhSDO38.js +0 -13
  57. package/dist/glowBlurPostProcess.fragment-fpk0xJVe.js +0 -13
  58. package/dist/glowMapGeneration.fragment-BBSNxu8K.js +0 -193
  59. package/dist/glowMapGeneration.fragment-Cl-xwsZp.js +0 -161
  60. package/dist/glowMapGeneration.vertex-CzQHgJdT.js +0 -85
  61. package/dist/glowMapGeneration.vertex-DErxE57o.js +0 -85
  62. package/dist/glowMapMerge.vertex-BQosy0g5.js +0 -14
  63. package/dist/glowMapMerge.vertex-tVYqLRGm.js +0 -13
  64. package/dist/index-CmNnQLDH.js +0 -36863
  65. package/dist/pass.fragment-D3pYn4R1.js +0 -10
  66. package/dist/selection.fragment-CGZK1kVt.js +0 -45
  67. package/dist/selection.fragment-DjWRsu7R.js +0 -45
  68. package/dist/selection.vertex-DY_1B2lX.js +0 -84
  69. package/dist/selection.vertex-PhS5tOTA.js +0 -83
  70. package/dist/selectionOutline.fragment-Bp__J_pC.js +0 -53
  71. package/dist/selectionOutline.fragment-DmyQJACa.js +0 -54
  72. package/dist/thinEngine-dZnz-Owz.js +0 -4
package/README.md CHANGED
@@ -15,13 +15,15 @@ A 3D interactive pneumatic control panel for VIVED slide applications. Features
15
15
  npm install @vived/component-pneumatic-panel @vived/core @babylonjs/core
16
16
  ```
17
17
 
18
+ The host-facing surface is the **`PneumaticPanelFacade`** — a single typed object (Smart
19
+ Component Facade Contract v1) that drives an instance through commands, typed events,
20
+ lifecycle, and persisted state.
21
+
18
22
  ```typescript
19
23
  import { makeAppObjectRepo, makeDomainFactoryRepo } from "@vived/core";
20
24
  import {
21
25
  makePneumaticPanelFeatureFactory,
22
- createBabylonPneumaticPanel,
23
- tryToggleExhaust,
24
- tryToggleLock,
26
+ PneumaticPanelFacade,
25
27
  } from "@vived/component-pneumatic-panel";
26
28
 
27
29
  const appObjects = makeAppObjectRepo();
@@ -29,34 +31,71 @@ const factoryRepo = makeDomainFactoryRepo(appObjects);
29
31
  makePneumaticPanelFeatureFactory(appObjects);
30
32
  factoryRepo.setupDomain();
31
33
 
32
- const appObject = await createBabylonPneumaticPanel("panel-1", appObjects);
34
+ const panel = new PneumaticPanelFacade("panel-1", appObjects); // wires the domain stack (sync)
35
+ await panel.load(); // attaches and loads the Babylon view
36
+
37
+ panel.toggleExhaust(); // open exhaust
38
+ panel.toggleLock(); // engage lock
39
+ panel.toggleExhaust(); // false — blocked by lock
33
40
 
34
- tryToggleExhaust("panel-1", appObjects); // open exhaust
35
- tryToggleLock("panel-1", appObjects); // engage lock
36
- tryToggleExhaust("panel-1", appObjects); // false — blocked by lock
41
+ const unsubscribe = panel.onEvent("exhaustOpened", () => console.log("opened"));
37
42
  ```
38
43
 
44
+ > Need the raw `AppObject` (e.g. to parent the root node or register shadow casters)? Use
45
+ > the `createBabylonPneumaticPanel(id, appObjects)` composition entry point, which creates
46
+ > the same domain stack and view and returns the `AppObject`.
47
+
39
48
  ## API
40
49
 
41
- | Controller | Returns | Description |
42
- | ------------------ | --------- | --------------------------------------------------------- |
43
- | `tryToggleExhaust` | `boolean` | Toggle exhaust valve. Returns `false` if locked. |
44
- | `tryToggleLock` | `boolean` | Toggle safety lock. Returns `false` if exhaust is closed. |
45
- | `checkPressure` | `void` | Shows current pressure in an alert dialog. |
50
+ `PneumaticPanelFacade` implements **Contract v1** — eight mandatory members shared by every
51
+ VIVED smart component, plus component-specific commands and a typed event catalog.
52
+
53
+ ### Contract members
54
+
55
+ | Member | Signature | Description |
56
+ | ------------------ | ------------------------------------------ | -------------------------------------------------------- |
57
+ | `id` | `readonly string` | Instance identifier. |
58
+ | `interfaceVersion` | `readonly number` | Contract version implemented (`1`). |
59
+ | `onEvent` | `(event, cb) => () => void` | Subscribe to a typed event; returns unsubscribe. |
60
+ | `onViewModel` | `(cb) => () => void` | Subscribe to the reactive VM (emits immediately). |
61
+ | `load` | `(variant?) => Promise<void>` | Attach and load the Babylon view. |
62
+ | `destroy` | `() => void` | Tear down and release resources. |
63
+ | `getState` | `() => PneumaticPanelState` | Versioned state snapshot. |
64
+ | `applyState` | `(state) => void` | Restore a snapshot. |
65
+
66
+ ### Commands
67
+
68
+ | Command | Returns | Description |
69
+ | ----------------------------- | --------- | --------------------------------------------------------- |
70
+ | `toggleExhaust()` | `boolean` | Toggle exhaust valve. Returns `false` if locked. |
71
+ | `toggleLock()` | `boolean` | Toggle safety lock. Returns `false` if exhaust is closed. |
72
+ | `checkPressure()` | `void` | Show current pressure in an alert dialog. |
73
+ | `setShowGhostLockHint(show)` | `void` | Toggle always-visible ghost-lock hint. |
74
+ | `enableHitbox()` / `disableHitbox()` | `void` | Toggle whole-panel selection mode. |
75
+
76
+ ### Events (`onEvent`)
77
+
78
+ `exhaustOpened`, `exhaustClosed`, `exhaustCloseBlockedByLock`, `panelLocked`,
79
+ `panelUnlocked`, `panelSelected`, `pressureChecked`.
80
+ All callbacks are `() => void` — read current state from `getState()` or `onViewModel`.
81
+
82
+ > Hover/hint/selection feedback is the Host's responsibility (ADR-0009). The component is
83
+ > presentation-free for interaction state — read `view.highlightGroupsByObjectId` to outline
84
+ > the panel from the invisible hitbox.
46
85
 
47
- ### View Model
86
+ ### Reactive view model
48
87
 
49
88
  ```typescript
50
- interface PneumaticPanelVM {
51
- exhaustOpen: boolean;
52
- isLocked: boolean;
53
- pressure: number;
54
- }
89
+ const unsubscribe = panel.onViewModel((vm) => {
90
+ console.log(vm.exhaustOpen, vm.isLocked, vm.pressure, vm.panelHitboxEnabled);
91
+ });
55
92
  ```
56
93
 
57
- Subscribe to state changes via the facade: `panel.onViewModel(callback)` (returns an
58
- unsubscribe function). See `COMPONENT_KNOWLEDGE.md` for the full `PneumaticPanelFacade`
59
- host-facing surface.
94
+ The flat controllers and `pneumaticPanelPMAdapter` remain exported as the underlying
95
+ mechanism the facade delegates to (and which the Babylon view boundary calls directly),
96
+ but the facade is the canonical host-facing surface. See
97
+ [COMPONENT_KNOWLEDGE.md](COMPONENT_KNOWLEDGE.md) for the full API reference, recipes, and
98
+ the complete export list.
60
99
 
61
100
  ## Development
62
101
 
@@ -1 +1 @@
1
- {"version":3,"file":"pneumaticPanelPMAdapter.d.ts","sourceRoot":"","sources":["../../../src/Domain/Adapters/pneumaticPanelPMAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,gBAAgB,CA0C/D,CAAC"}
1
+ {"version":3,"file":"pneumaticPanelPMAdapter.d.ts","sourceRoot":"","sources":["../../../src/Domain/Adapters/pneumaticPanelPMAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAC;AAEjC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,EAAE,SAAS,CAAC,gBAAgB,CAyC/D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"applyPanelState.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/applyPanelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAClC,IAAI,CAuBN"}
1
+ {"version":3,"file":"applyPanelState.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/applyPanelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAClC,IAAI,CAoBN"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPanelState.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/getPanelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,GACd,mBAAmB,CAsBrB"}
1
+ {"version":3,"file":"getPanelState.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/getPanelState.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,wBAAgB,aAAa,CAC3B,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,EACzB,OAAO,EAAE,MAAM,GACd,mBAAmB,CAqBrB"}
@@ -2,7 +2,6 @@ export declare const PNEUMATIC_PANEL_DEFAULT_STATE_FIELDS: {
2
2
  readonly exhaustOpen: false;
3
3
  readonly isLocked: false;
4
4
  readonly showGhostLockHint: false;
5
- readonly highlightedObject: "none";
6
5
  readonly panelHitboxEnabled: false;
7
6
  };
8
7
  //# sourceMappingURL=panelStateDefaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"panelStateDefaults.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/panelStateDefaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC;;;;;;CAMvC,CAAC"}
1
+ {"version":3,"file":"panelStateDefaults.d.ts","sourceRoot":"","sources":["../../../src/Domain/Controllers/panelStateDefaults.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oCAAoC;;;;;CAKvC,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { AppObject, AppObjectEntity, AppObjectRepo } from "@vived/core";
2
- export type PneumaticPanelHighlightedObject = "none" | "ghostLock" | "lock" | "exhaustKnob" | "gauge" | "panelHitbox";
3
2
  /**
4
3
  * Pneumatic Panel Entity
5
4
  *
@@ -23,9 +22,6 @@ export declare abstract class PneumaticPanelEntity extends AppObjectEntity {
23
22
  */
24
23
  abstract get showGhostLockHint(): boolean;
25
24
  abstract set showGhostLockHint(val: boolean);
26
- /** Which object should be highlighted in the scene. */
27
- abstract get highlightedObject(): PneumaticPanelHighlightedObject;
28
- abstract set highlightedObject(val: PneumaticPanelHighlightedObject);
29
25
  /** Whether the panel hitbox is enabled for whole-panel selection. */
30
26
  abstract get panelHitboxEnabled(): boolean;
31
27
  abstract set panelHitboxEnabled(val: boolean);
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelEntity.d.ts","sourceRoot":"","sources":["../../../src/Domain/Entities/PneumaticPanelEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EAGd,MAAM,aAAa,CAAC;AAErB,MAAM,MAAM,+BAA+B,GACvC,MAAM,GACN,WAAW,GACX,MAAM,GACN,aAAa,GACb,OAAO,GACP,aAAa,CAAC;AAElB;;;;;GAKG;AACH,8BAAsB,oBAAqB,SAAQ,eAAe;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAE9C,wCAAwC;IACxC,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IACpC,QAAQ,KAAK,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IAEvC,gEAAgE;IAChE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IACjC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE;IAEpC,+BAA+B;IAC/B,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC;IAChC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE;IAEnC;;;OAGG;IACH,QAAQ,KAAK,iBAAiB,IAAI,OAAO,CAAC;IAC1C,QAAQ,KAAK,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE;IAE7C,uDAAuD;IACvD,QAAQ,KAAK,iBAAiB,IAAI,+BAA+B,CAAC;IAClE,QAAQ,KAAK,iBAAiB,CAAC,GAAG,EAAE,+BAA+B,EAAE;IAErE,qEAAqE;IACrE,QAAQ,KAAK,kBAAkB,IAAI,OAAO,CAAC;IAC3C,QAAQ,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE;IAE9C;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,GAAG,SAAS;IAI/D;;OAEG;IACH,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,oBAAoB,GAAG,SAAS;CAGpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,oBAAoB,CAEtB"}
1
+ {"version":3,"file":"PneumaticPanelEntity.d.ts","sourceRoot":"","sources":["../../../src/Domain/Entities/PneumaticPanelEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EAGd,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AACH,8BAAsB,oBAAqB,SAAQ,eAAe;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,0BAA0B;IAE9C,wCAAwC;IACxC,QAAQ,KAAK,WAAW,IAAI,OAAO,CAAC;IACpC,QAAQ,KAAK,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE;IAEvC,gEAAgE;IAChE,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC;IACjC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,OAAO,EAAE;IAEpC,+BAA+B;IAC/B,QAAQ,KAAK,QAAQ,IAAI,MAAM,CAAC;IAChC,QAAQ,KAAK,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE;IAEnC;;;OAGG;IACH,QAAQ,KAAK,iBAAiB,IAAI,OAAO,CAAC;IAC1C,QAAQ,KAAK,iBAAiB,CAAC,GAAG,EAAE,OAAO,EAAE;IAE7C,qEAAqE;IACrE,QAAQ,KAAK,kBAAkB,IAAI,OAAO,CAAC;IAC3C,QAAQ,KAAK,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE;IAE9C;;OAEG;IACH,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,oBAAoB,GAAG,SAAS;IAI/D;;OAEG;IACH,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,oBAAoB,GAAG,SAAS;CAGpC;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,SAAS,GACnB,oBAAoB,CAEtB"}
@@ -8,10 +8,6 @@ export declare class MockPneumaticPanelSelectUC extends PneumaticPanelSelectUC {
8
8
  disableHitbox: () => void;
9
9
  subscribeOnPanelSelected: () => (() => void);
10
10
  notifyPanelSelected: () => void;
11
- subscribeOnPanelHoverEnter: () => (() => void);
12
- notifyPanelHoverEnter: () => void;
13
- subscribeOnPanelHoverExit: () => (() => void);
14
- notifyPanelHoverExit: () => void;
15
11
  constructor(appObject: AppObject);
16
12
  }
17
13
  //# sourceMappingURL=MockPneumaticPanelSelectUC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MockPneumaticPanelSelectUC.d.ts","sourceRoot":"","sources":["../../../src/Domain/Mocks/MockPneumaticPanelSelectUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB;IACpE,YAAY,QAAO,IAAI,CAAO;IAC9B,aAAa,QAAO,IAAI,CAAO;IAC/B,wBAAwB,QAAO,CAAC,MAAM,IAAI,CAAC,CAAa;IACxD,mBAAmB,QAAO,IAAI,CAAO;IACrC,0BAA0B,QAAO,CAAC,MAAM,IAAI,CAAC,CAAa;IAC1D,qBAAqB,QAAO,IAAI,CAAO;IACvC,yBAAyB,QAAO,CAAC,MAAM,IAAI,CAAC,CAAa;IACzD,oBAAoB,QAAO,IAAI,CAAO;gBAE1B,SAAS,EAAE,SAAS;CAGjC"}
1
+ {"version":3,"file":"MockPneumaticPanelSelectUC.d.ts","sourceRoot":"","sources":["../../../src/Domain/Mocks/MockPneumaticPanelSelectUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAEvE;;GAEG;AACH,qBAAa,0BAA2B,SAAQ,sBAAsB;IACpE,YAAY,QAAO,IAAI,CAAO;IAC9B,aAAa,QAAO,IAAI,CAAO;IAC/B,wBAAwB,QAAO,CAAC,MAAM,IAAI,CAAC,CAAa;IACxD,mBAAmB,QAAO,IAAI,CAAO;gBAEzB,SAAS,EAAE,SAAS;CAGjC"}
@@ -1,5 +1,4 @@
1
1
  import { AppObject, AppObjectPM, AppObjectRepo } from "@vived/core";
2
- import { type PneumaticPanelHighlightedObject } from "../Entities/PneumaticPanelEntity";
3
2
  /**
4
3
  * View Model for Pneumatic Panel UI rendering.
5
4
  * Immutable snapshot of component state suitable for views.
@@ -16,8 +15,6 @@ export interface PneumaticPanelVM {
16
15
  * When false, reveal it only on hover (assessment mode).
17
16
  */
18
17
  showGhostLockHint: boolean;
19
- /** Which object should be highlighted in the scene. */
20
- highlightedObject: PneumaticPanelHighlightedObject;
21
18
  /** Whether the panel hitbox is enabled for whole-panel selection. */
22
19
  panelHitboxEnabled: boolean;
23
20
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelPM.d.ts","sourceRoot":"","sources":["../../../src/Domain/PMs/PneumaticPanelPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAEL,KAAK,+BAA+B,EACrC,MAAM,kCAAkC,CAAC;AAE1C;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,uDAAuD;IACvD,iBAAiB,EAAE,+BAA+B,CAAC;IACnD,qEAAqE;IACrE,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;GAMG;AACH,8BAAsB,gBAAiB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,sBAAsB;IAE1C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAI3D,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,gBAAgB,GAAG,SAAS;CAGhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
1
+ {"version":3,"file":"PneumaticPanelPM.d.ts","sourceRoot":"","sources":["../../../src/Domain/PMs/PneumaticPanelPM.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGpE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wCAAwC;IACxC,WAAW,EAAE,OAAO,CAAC;IACrB,oCAAoC;IACpC,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;IAC3B,qEAAqE;IACrE,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,wBAAwB,EAAE,OAAO,CAAC;CACnC;AAED;;;;;;GAMG;AACH,8BAAsB,gBAAiB,SAAQ,WAAW,CAAC,gBAAgB,CAAC;IAC1E,MAAM,CAAC,QAAQ,CAAC,IAAI,sBAAsB;IAE1C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,gBAAgB,GAAG,SAAS;IAI3D,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,gBAAgB,GAAG,SAAS;CAGhC;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAE3E"}
@@ -18,20 +18,6 @@ export declare abstract class PneumaticPanelSelectUC extends AppObjectUC {
18
18
  * Called exclusively via the panelHitboxClicked controller (framework boundary).
19
19
  */
20
20
  abstract notifyPanelSelected(): void;
21
- /** Subscribe to panel-hover-enter events. Returns an unsubscribe function. */
22
- abstract subscribeOnPanelHoverEnter(callback: () => void): () => void;
23
- /**
24
- * Notify all subscribers that the pointer entered the panel hitbox.
25
- * Called exclusively via the panelHitboxHoverEnter controller (framework boundary).
26
- */
27
- abstract notifyPanelHoverEnter(): void;
28
- /** Subscribe to panel-hover-exit events. Returns an unsubscribe function. */
29
- abstract subscribeOnPanelHoverExit(callback: () => void): () => void;
30
- /**
31
- * Notify all subscribers that the pointer exited the panel hitbox.
32
- * Called exclusively via the panelHitboxHoverExit controller (framework boundary).
33
- */
34
- abstract notifyPanelHoverExit(): void;
35
21
  static get(appObj: AppObject): PneumaticPanelSelectUC | undefined;
36
22
  static getById(id: string, appObjects: AppObjectRepo): PneumaticPanelSelectUC | undefined;
37
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelSelectUC.d.ts","sourceRoot":"","sources":["../../../src/Domain/UCs/PneumaticPanelSelectUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGpE;;;;;GAKG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D,MAAM,CAAC,QAAQ,CAAC,IAAI,4BAA4B;IAEhD,mDAAmD;IACnD,QAAQ,CAAC,YAAY,IAAI,IAAI;IAE7B,mFAAmF;IACnF,QAAQ,CAAC,aAAa,IAAI,IAAI;IAE9B,2EAA2E;IAC3E,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAEnE;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,IAAI,IAAI;IAEpC,8EAA8E;IAC9E,QAAQ,CAAC,0BAA0B,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAErE;;;OAGG;IACH,QAAQ,CAAC,qBAAqB,IAAI,IAAI;IAEtC,6EAA6E;IAC7E,QAAQ,CAAC,yBAAyB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAEpE;;;OAGG;IACH,QAAQ,CAAC,oBAAoB,IAAI,IAAI;IAErC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,GAAG,SAAS;IAIjE,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,sBAAsB,GAAG,SAAS;CAGtC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
1
+ {"version":3,"file":"PneumaticPanelSelectUC.d.ts","sourceRoot":"","sources":["../../../src/Domain/UCs/PneumaticPanelSelectUC.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAGpE;;;;;GAKG;AACH,8BAAsB,sBAAuB,SAAQ,WAAW;IAC9D,MAAM,CAAC,QAAQ,CAAC,IAAI,4BAA4B;IAEhD,mDAAmD;IACnD,QAAQ,CAAC,YAAY,IAAI,IAAI;IAE7B,mFAAmF;IACnF,QAAQ,CAAC,aAAa,IAAI,IAAI;IAE9B,2EAA2E;IAC3E,QAAQ,CAAC,wBAAwB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAEnE;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,IAAI,IAAI;IAEpC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,GAAG,SAAS;IAIjE,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,sBAAsB,GAAG,SAAS;CAGtC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
@@ -2,14 +2,6 @@ import type { AbstractMesh } from "@babylonjs/core";
2
2
  import type { Node } from "@babylonjs/core";
3
3
  import type { TransformNode } from "@babylonjs/core";
4
4
  import { AppObject, AppObjectView } from "@vived/core";
5
- export type PneumaticPanelGlowConfig = {
6
- blurHorizontalSize: number;
7
- blurVerticalSize: number;
8
- innerGlow: boolean;
9
- isEnabled: boolean;
10
- neutralAlpha: number;
11
- outerGlow: boolean;
12
- };
13
5
  export declare abstract class PneumaticPanelBabylonView extends AppObjectView {
14
6
  static readonly type = "PneumaticPanelBabylonView";
15
7
  /** Resolves the Babylon scene, loads meshes, and subscribes to updates. */
@@ -20,10 +12,15 @@ export declare abstract class PneumaticPanelBabylonView extends AppObjectView {
20
12
  abstract get shadowCasters(): AbstractMesh[];
21
13
  /** Lookup of every scene node keyed by its objectId metadata. Populated after load() completes. */
22
14
  abstract get nodesByObjectId(): ReadonlyMap<string, Node>;
23
- /** Current runtime glow/highlight layer config used by this view. */
24
- abstract get glowConfig(): Readonly<PneumaticPanelGlowConfig>;
25
- /** Merge-and-apply a partial glow config at runtime. */
26
- abstract updateGlowConfig(patch: Partial<PneumaticPanelGlowConfig>): Readonly<PneumaticPanelGlowConfig>;
15
+ /**
16
+ * Meshes the Host should treat as one highlightable unit, keyed by semantic objectId.
17
+ * Populated after load() completes.
18
+ *
19
+ * The `panel_hitbox` entry maps to every visible panel mesh (all meshes except the
20
+ * invisible hitbox itself), so outlining the invisible hitbox outlines the visible panel.
21
+ * All other entries map to a single-element array for their respective mesh.
22
+ */
23
+ abstract get highlightGroupsByObjectId(): ReadonlyMap<string, AbstractMesh[]>;
27
24
  static get(appObj: AppObject): PneumaticPanelBabylonView | undefined;
28
25
  }
29
26
  export declare function makePneumaticPanelBabylonView(appObject: AppObject): PneumaticPanelBabylonView;
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelBabylonView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelBabylonView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAwBvD,MAAM,MAAM,wBAAwB,GAAG;IACrC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,8BAAsB,yBAA0B,SAAQ,aAAa;IACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;IAEnD,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,gGAAgG;IAChG,QAAQ,KAAK,iBAAiB,IAAI,aAAa,GAAG,SAAS,CAAC;IAE5D,sEAAsE;IACtE,QAAQ,KAAK,aAAa,IAAI,YAAY,EAAE,CAAC;IAE7C,mGAAmG;IACnG,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D,qEAAqE;IACrE,QAAQ,KAAK,UAAU,IAAI,QAAQ,CAAC,wBAAwB,CAAC,CAAC;IAE9D,wDAAwD;IACxD,QAAQ,CAAC,gBAAgB,CACvB,KAAK,EAAE,OAAO,CAAC,wBAAwB,CAAC,GACvC,QAAQ,CAAC,wBAAwB,CAAC;IAErC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,yBAAyB,GAAG,SAAS;CAGrE;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,yBAAyB,CAE3B"}
1
+ {"version":3,"file":"PneumaticPanelBabylonView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelBabylonView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAoBvD,8BAAsB,yBAA0B,SAAQ,aAAa;IACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;IAEnD,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,gGAAgG;IAChG,QAAQ,KAAK,iBAAiB,IAAI,aAAa,GAAG,SAAS,CAAC;IAE5D,sEAAsE;IACtE,QAAQ,KAAK,aAAa,IAAI,YAAY,EAAE,CAAC;IAE7C,mGAAmG;IACnG,QAAQ,KAAK,eAAe,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAE1D;;;;;;;OAOG;IACH,QAAQ,KAAK,yBAAyB,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;IAE9E,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,yBAAyB,GAAG,SAAS;CAGrE;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,yBAAyB,CAE3B"}
@@ -1,4 +1,4 @@
1
- import { HighlightLayer, Node } from "@babylonjs/core";
1
+ import { Node } from "@babylonjs/core";
2
2
  import { AppObject, AppObjectView } from "@vived/core";
3
3
  export declare const pneumaticPanelExhaustKnobMetadata = "exhaust_knob";
4
4
  /**
@@ -10,7 +10,7 @@ export declare const pneumaticPanelExhaustKnobMetadata = "exhaust_knob";
10
10
  */
11
11
  export declare abstract class PneumaticPanelExhaustView extends AppObjectView {
12
12
  static readonly type = "PneumaticPanelExhaustView";
13
- abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>, highlightLayer: HighlightLayer): void;
13
+ abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
14
14
  static get(appObj: AppObject): PneumaticPanelExhaustView | undefined;
15
15
  }
16
16
  export declare function makePneumaticPanelExhaustView(appObject: AppObject): PneumaticPanelExhaustView;
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelExhaustView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelExhaustView.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,cAAc,EACd,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQvD,eAAO,MAAM,iCAAiC,iBAAiB,CAAC;AAEhE;;;;;;GAMG;AACH,8BAAsB,yBAA0B,SAAQ,aAAa;IACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;IAEnD,QAAQ,CAAC,UAAU,CACjB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,cAAc,EAAE,cAAc,GAC7B,IAAI;IAEP,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,yBAAyB,GAAG,SAAS;CAGrE;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,yBAAyB,CAE3B"}
1
+ {"version":3,"file":"PneumaticPanelExhaustView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelExhaustView.ts"],"names":[],"mappings":"AAAA,OAAO,EAOL,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAMvD,eAAO,MAAM,iCAAiC,iBAAiB,CAAC;AAEhE;;;;;;GAMG;AACH,8BAAsB,yBAA0B,SAAQ,aAAa;IACnE,MAAM,CAAC,QAAQ,CAAC,IAAI,+BAA+B;IAEnD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAErE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,yBAAyB,GAAG,SAAS;CAGrE;AAED,wBAAgB,6BAA6B,CAC3C,SAAS,EAAE,SAAS,GACnB,yBAAyB,CAE3B"}
@@ -1,9 +1,9 @@
1
- import { HighlightLayer, Node } from "@babylonjs/core";
1
+ import { Node } from "@babylonjs/core";
2
2
  import { AppObject, AppObjectView } from "@vived/core";
3
3
  export declare const pneumaticPanelGaugeMetadata = "gauge";
4
4
  export declare abstract class PneumaticPanelGaugeView extends AppObjectView {
5
5
  static readonly type = "PneumaticPanelGaugeView";
6
- abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>, highlightLayer: HighlightLayer): void;
6
+ abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
7
7
  static get(appObj: AppObject): PneumaticPanelGaugeView | undefined;
8
8
  }
9
9
  export declare function makePneumaticPanelGaugeView(appObject: AppObject): PneumaticPanelGaugeView;
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelGaugeView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelGaugeView.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EACd,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOvD,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,8BAAsB,uBAAwB,SAAQ,aAAa;IACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,6BAA6B;IAEjD,QAAQ,CAAC,UAAU,CACjB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,cAAc,EAAE,cAAc,GAC7B,IAAI;IAEP,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;CAGnE;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,GACnB,uBAAuB,CAEzB"}
1
+ {"version":3,"file":"PneumaticPanelGaugeView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelGaugeView.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,eAAO,MAAM,2BAA2B,UAAU,CAAC;AAEnD,8BAAsB,uBAAwB,SAAQ,aAAa;IACjE,MAAM,CAAC,QAAQ,CAAC,IAAI,6BAA6B;IAEjD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAErE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,uBAAuB,GAAG,SAAS;CAGnE;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,SAAS,GACnB,uBAAuB,CAEzB"}
@@ -1,18 +1,16 @@
1
- import { HighlightLayer, Node } from "@babylonjs/core";
1
+ import { Node } from "@babylonjs/core";
2
2
  import { AppObject, AppObjectView } from "@vived/core";
3
- import { type PanelOutlineController } from "./PanelOutlineController";
4
3
  export declare const pneumaticPanelHitboxMetadata = "panel_hitbox";
5
4
  /**
6
- * Babylon view that owns panel hitbox interaction and visual feedback.
5
+ * Babylon view that owns panel hitbox click interaction.
7
6
  *
8
7
  * The hitbox is an invisible bounding mesh (objectId: "panel_hitbox") that
9
- * covers the entire panel. When enabled, it is pickable and responds to
10
- * pointer events with a hover outline. The Activity-authored hint glow is
11
- * driven by highlightedObject === "panelHitbox" via the domain VM.
8
+ * covers the entire panel. When enabled, it is pickable. The Host owns all
9
+ * hover detection and interaction-state presentation (ADR 0009).
12
10
  */
13
11
  export declare abstract class PneumaticPanelHitboxView extends AppObjectView {
14
12
  static readonly type = "PneumaticPanelHitboxView";
15
- abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>, highlightLayer: HighlightLayer, panelOutline: PanelOutlineController): void;
13
+ abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
16
14
  static get(appObj: AppObject): PneumaticPanelHitboxView | undefined;
17
15
  }
18
16
  export declare function makePneumaticPanelHitboxView(appObject: AppObject): PneumaticPanelHitboxView;
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelHitboxView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelHitboxView.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,cAAc,EAEd,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOvD,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAQ3D;;;;;;;GAOG;AACH,8BAAsB,wBAAyB,SAAQ,aAAa;IAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAElD,QAAQ,CAAC,UAAU,CACjB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,sBAAsB,GACnC,IAAI;IAEP,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,wBAAwB,GAAG,SAAS;CAGpE;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,GACnB,wBAAwB,CAE1B"}
1
+ {"version":3,"file":"PneumaticPanelHitboxView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelHitboxView.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,IAAI,EACL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,eAAO,MAAM,4BAA4B,iBAAiB,CAAC;AAE3D;;;;;;GAMG;AACH,8BAAsB,wBAAyB,SAAQ,aAAa;IAClE,MAAM,CAAC,QAAQ,CAAC,IAAI,8BAA8B;IAElD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IAErE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,wBAAwB,GAAG,SAAS;CAGpE;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,SAAS,GACnB,wBAAwB,CAE1B"}
@@ -1,4 +1,4 @@
1
- import { HighlightLayer, Node } from "@babylonjs/core";
1
+ import { Node } from "@babylonjs/core";
2
2
  import { AppObject, AppObjectView } from "@vived/core";
3
3
  export declare const pneumaticPanelLockMetadata = "lock";
4
4
  export declare const pneumaticPanelGhostLockMetadata = "ghost_lock";
@@ -10,7 +10,7 @@ export declare const pneumaticPanelGhostLockMetadata = "ghost_lock";
10
10
  */
11
11
  export declare abstract class PneumaticPanelLockView extends AppObjectView {
12
12
  static readonly type = "PneumaticPanelLockView";
13
- abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>, highlightLayer: HighlightLayer): void;
13
+ abstract bindMeshes(nodesByObjectId: ReadonlyMap<string, Node>): void;
14
14
  abstract flash(): void;
15
15
  static get(appObj: AppObject): PneumaticPanelLockView | undefined;
16
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelLockView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelLockView.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,EACd,IAAI,EAEL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAOvD,eAAO,MAAM,0BAA0B,SAAS,CAAC;AACjD,eAAO,MAAM,+BAA+B,eAAe,CAAC;AAE5D;;;;;GAKG;AACH,8BAAsB,sBAAuB,SAAQ,aAAa;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,4BAA4B;IAEhD,QAAQ,CAAC,UAAU,CACjB,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,EAC1C,cAAc,EAAE,cAAc,GAC7B,IAAI;IACP,QAAQ,CAAC,KAAK,IAAI,IAAI;IAEtB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,GAAG,SAAS;CAGlE;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
1
+ {"version":3,"file":"PneumaticPanelLockView.d.ts","sourceRoot":"","sources":["../../../src/Frameworks/Babylon/PneumaticPanelLockView.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,IAAI,EAEL,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKvD,eAAO,MAAM,0BAA0B,SAAS,CAAC;AACjD,eAAO,MAAM,+BAA+B,eAAe,CAAC;AAE5D;;;;;GAKG;AACH,8BAAsB,sBAAuB,SAAQ,aAAa;IAChE,MAAM,CAAC,QAAQ,CAAC,IAAI,4BAA4B;IAEhD,QAAQ,CAAC,UAAU,CAAC,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI;IACrE,QAAQ,CAAC,KAAK,IAAI,IAAI;IAEtB,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,sBAAsB,GAAG,SAAS;CAGlE;AAED,wBAAgB,0BAA0B,CACxC,SAAS,EAAE,SAAS,GACnB,sBAAsB,CAExB"}
@@ -1,13 +1,11 @@
1
1
  import { AppObjectRepo } from "@vived/core";
2
- import { type PneumaticPanelHighlightedObject } from "./Domain/Entities/PneumaticPanelEntity";
3
2
  import type { PneumaticPanelVM } from "./Domain/PMs/PneumaticPanelPM";
4
- export declare const PNEUMATIC_PANEL_STATE_VERSION = 1;
3
+ export declare const PNEUMATIC_PANEL_STATE_VERSION = 2;
5
4
  export type PneumaticPanelState = {
6
5
  version: number;
7
6
  exhaustOpen: boolean;
8
7
  isLocked: boolean;
9
8
  showGhostLockHint: boolean;
10
- highlightedObject: PneumaticPanelHighlightedObject;
11
9
  panelHitboxEnabled: boolean;
12
10
  };
13
11
  /**
@@ -36,8 +34,6 @@ export type PneumaticPanelEvents = {
36
34
  panelUnlocked: () => void;
37
35
  panelSelected: () => void;
38
36
  pressureChecked: () => void;
39
- panelHoverEnter: () => void;
40
- panelHoverExit: () => void;
41
37
  };
42
38
  /**
43
39
  * Host-facing facade for Pneumatic Panel smart component.
@@ -90,14 +86,6 @@ export declare class PneumaticPanelFacade implements SmartComponent {
90
86
  * Trigger a pressure check.
91
87
  */
92
88
  checkPressure(): void;
93
- /**
94
- * Set which single object should be highlighted in the scene.
95
- */
96
- setHighlightedObject(obj: PneumaticPanelHighlightedObject): void;
97
- /**
98
- * Clear all highlights.
99
- */
100
- clearAllHighlights(): void;
101
89
  /**
102
90
  * Show or hide the ghost lock hint.
103
91
  */
@@ -1 +1 @@
1
- {"version":3,"file":"PneumaticPanelFacade.d.ts","sourceRoot":"","sources":["../src/PneumaticPanelFacade.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PneumaticPanelFacade.d.ts","sourceRoot":"","sources":["../src/PneumaticPanelFacade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAkB5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IACnE,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC5D,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,OAAO,IAAI,IAAI,CAAC;IAChB,QAAQ,IAAI,mBAAmB,CAAC;IAChC,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,yBAAyB,EAAE,MAAM,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,eAAe,EAAE,MAAM,IAAI,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,gBAAgB,KAAK;IAC9B,OAAO,CAAC,UAAU,CAAgB;IAElC;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAWtB;IAEF;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa;IASjD;;;OAGG;IACH;;;;;;OAMG;IAEG,IAAI,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3C;;OAEG;IACH,OAAO,IAAI,IAAI;IAIf;;;OAGG;IACH,aAAa,IAAI,OAAO;IAIxB;;;OAGG;IACH,UAAU,IAAI,OAAO;IAIrB;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB;;OAEG;IACH,oBAAoB,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;IAIzC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,aAAa,IAAI,IAAI;IAIrB,QAAQ,IAAI,mBAAmB;IAQ/B,UAAU,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI;IAI5C;;;;;OAKG;IACH,OAAO,CAAC,CAAC,SAAS,MAAM,oBAAoB,EAC1C,KAAK,EAAE,CAAC,EACR,EAAE,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAC1B,MAAM,IAAI;IAKb;;;OAGG;IACH,WAAW,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI;CAI5D"}
package/dist/index.d.ts CHANGED
@@ -13,8 +13,6 @@ export { tryToggleExhaust } from "./Domain/Controllers/tryToggleExhaust";
13
13
  export { tryToggleLock } from "./Domain/Controllers/tryToggleLock";
14
14
  export { checkPressure } from "./Domain/Controllers/checkPressure";
15
15
  export { setShowGhostLockHint } from "./Domain/Controllers/setShowGhostLockHint";
16
- export { setHighlightedObject } from "./Domain/Controllers/setHighlightedObject";
17
- export { clearAllHighlights } from "./Domain/Controllers/clearAllHighlights";
18
16
  export { getPanelState } from "./Domain/Controllers/getPanelState";
19
17
  export { applyPanelState } from "./Domain/Controllers/applyPanelState";
20
18
  export { onExhaustOpened } from "./Domain/Controllers/onExhaustOpened";
@@ -27,13 +25,9 @@ export { disablePanelHitbox } from "./Domain/Controllers/disablePanelHitbox";
27
25
  export { onPanelSelected } from "./Domain/Controllers/onPanelSelected";
28
26
  export { onCheckPressure } from "./Domain/Controllers/onCheckPressure";
29
27
  export { panelHitboxClicked } from "./Domain/Controllers/panelHitboxClicked";
30
- export { onPanelHoverEnter } from "./Domain/Controllers/onPanelHoverEnter";
31
- export { onPanelHoverExit } from "./Domain/Controllers/onPanelHoverExit";
32
- export { panelHitboxHoverEnter } from "./Domain/Controllers/panelHitboxHoverEnter";
33
- export { panelHitboxHoverExit } from "./Domain/Controllers/panelHitboxHoverExit";
34
28
  export { PneumaticPanelPM, makePneumaticPanelPM, type PneumaticPanelVM, } from "./Domain/PMs/PneumaticPanelPM";
35
29
  export { pneumaticPanelPMAdapter } from "./Domain/Adapters/pneumaticPanelPMAdapter";
36
- export { PneumaticPanelBabylonView, makePneumaticPanelBabylonView, type PneumaticPanelGlowConfig, } from "./Frameworks/Babylon/PneumaticPanelBabylonView";
30
+ export { PneumaticPanelBabylonView, makePneumaticPanelBabylonView, } from "./Frameworks/Babylon/PneumaticPanelBabylonView";
37
31
  export { PneumaticPanelFeatureFactory, makePneumaticPanelFeatureFactory, } from "./Domain/Factory/PneumaticPanelFeatureFactory";
38
32
  export { createBabylonPneumaticPanel } from "./Frameworks/Babylon/createBabylonPneumaticPanel";
39
33
  export { MockPneumaticPanelPM } from "./Domain/Mocks/MockPneumaticPanelPM";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,oBAAoB,EACpB,wBAAwB,GACzB,MAAM,wCAAwC,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,4CAA4C,CAAC;AACpD,OAAO,EACL,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAC/F,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAG7E,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,gBAAgB,GACtB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAGpF,OAAO,EACL,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,gDAAgD,CAAC;AAGxD,OAAO,EACL,4BAA4B,EAC5B,gCAAgC,GACjC,MAAM,+CAA+C,CAAC;AAGvD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kDAAkD,CAAC;AAG/F,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,8BAA8B,EAAE,MAAM,+CAA+C,CAAC;AAC/F,OAAO,EAAE,iCAAiC,EAAE,MAAM,kDAAkD,CAAC;AACrG,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAGvF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC7B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,oBAAoB,GAC1B,MAAM,wBAAwB,CAAC"}