@pie-players/pie-assessment-toolkit 0.3.74 → 1.0.0-beta.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 (257) hide show
  1. package/README.md +658 -714
  2. package/custom-elements.json +1315 -0
  3. package/dist/attempt/TestSession.d.ts +1 -21
  4. package/dist/attempt/TestSession.js +16 -102
  5. package/dist/components/ItemScope.custom-element.d.ts +1 -0
  6. package/dist/components/ItemScope.custom-element.js +1 -0
  7. package/dist/components/ItemToolBar.custom-element.js +1 -1
  8. package/dist/components/PieAssessmentToolkit.custom-element.js +14 -14
  9. package/dist/components/SectionToolBar.custom-element.js +1 -1
  10. package/dist/components/chunks/ItemToolBar-3zrc4p3d.js +4 -0
  11. package/dist/components/chunks/ItemToolBar-66hcwmfw.js +2 -0
  12. package/dist/components/chunks/ItemToolBar-9gqhfxtn.js +40 -0
  13. package/dist/components/chunks/ItemToolBar-hzc5wyjp.js +2 -0
  14. package/dist/components/chunks/{ItemToolBar-gmrryv2v.js → ItemToolBar-kkj69ptr.js} +1 -1
  15. package/dist/components/chunks/ItemToolBar-vdkyn9f3.js +2 -0
  16. package/dist/components/chunks/sre-engine-bj997w4b.js +1 -0
  17. package/dist/components/item-scope-element.d.ts +2 -0
  18. package/dist/components/item-scope-element.js +2 -0
  19. package/dist/context/assessment-toolkit-context.d.ts +33 -6
  20. package/dist/index.d.ts +25 -50
  21. package/dist/index.js +15 -45
  22. package/dist/policy/core/PolicySource.d.ts +2 -2
  23. package/dist/policy/core/ToolPolicyEngine.d.ts +118 -34
  24. package/dist/policy/core/ToolPolicyEngine.js +203 -56
  25. package/dist/policy/core/compose-decision.d.ts +28 -7
  26. package/dist/policy/core/compose-decision.js +95 -74
  27. package/dist/policy/core/decision-types.d.ts +98 -55
  28. package/dist/policy/core/feature-decision.d.ts +28 -19
  29. package/dist/policy/core/feature-decision.js +15 -11
  30. package/dist/policy/core/pnp-policy-inputs.d.ts +29 -35
  31. package/dist/policy/core/pnp-policy-inputs.js +40 -88
  32. package/dist/policy/core/provenance.d.ts +10 -5
  33. package/dist/policy/core/provenance.js +1 -1
  34. package/dist/policy/core/tool-parameters.d.ts +11 -0
  35. package/dist/policy/core/tool-parameters.js +15 -0
  36. package/dist/policy/engine.d.ts +7 -23
  37. package/dist/policy/engine.js +5 -20
  38. package/dist/policy/sources/PnpPolicySource.d.ts +43 -68
  39. package/dist/policy/sources/PnpPolicySource.js +133 -132
  40. package/dist/runtime/SectionControllerBinding.d.ts +283 -0
  41. package/dist/runtime/SectionControllerBinding.js +456 -0
  42. package/dist/runtime/SectionRuntimeEngine.d.ts +26 -289
  43. package/dist/runtime/SectionRuntimeEngine.js +30 -372
  44. package/dist/runtime/adapter/SectionEngineAdapter.d.ts +19 -80
  45. package/dist/runtime/adapter/SectionEngineAdapter.js +19 -92
  46. package/dist/runtime/adapter/dom-event-bridge.d.ts +15 -30
  47. package/dist/runtime/adapter/dom-event-bridge.js +17 -44
  48. package/dist/runtime/adapter/subscriber-fanout.d.ts +1 -3
  49. package/dist/runtime/adapter/subscriber-fanout.js +2 -6
  50. package/dist/runtime/catalog-context.d.ts +19 -0
  51. package/dist/runtime/catalog-context.js +28 -0
  52. package/dist/runtime/composition-emit-scheduler.d.ts +12 -18
  53. package/dist/runtime/composition-emit-scheduler.js +10 -16
  54. package/dist/runtime/content-language.d.ts +32 -0
  55. package/dist/runtime/content-language.js +46 -0
  56. package/dist/runtime/content-region.d.ts +13 -0
  57. package/dist/runtime/content-region.js +29 -0
  58. package/dist/runtime/content-registration.d.ts +13 -0
  59. package/dist/runtime/content-registration.js +25 -0
  60. package/dist/runtime/core/SectionEngineCore.d.ts +2 -4
  61. package/dist/runtime/core/SectionEngineCore.js +2 -6
  62. package/dist/runtime/core/cohort.d.ts +1 -6
  63. package/dist/runtime/core/cohort.js +1 -10
  64. package/dist/runtime/core/engine-input.d.ts +18 -30
  65. package/dist/runtime/core/engine-input.js +11 -12
  66. package/dist/runtime/core/engine-output.d.ts +17 -40
  67. package/dist/runtime/core/engine-output.js +9 -21
  68. package/dist/runtime/core/engine-readiness.d.ts +5 -37
  69. package/dist/runtime/core/engine-readiness.js +8 -41
  70. package/dist/runtime/core/engine-resolver.d.ts +46 -74
  71. package/dist/runtime/core/engine-resolver.js +18 -43
  72. package/dist/runtime/core/engine-state.d.ts +28 -36
  73. package/dist/runtime/core/engine-state.js +18 -21
  74. package/dist/runtime/core/engine-transition.d.ts +14 -19
  75. package/dist/runtime/core/engine-transition.js +74 -53
  76. package/dist/runtime/engine.d.ts +16 -19
  77. package/dist/runtime/engine.js +12 -19
  78. package/dist/runtime/page-warnings.d.ts +13 -0
  79. package/dist/runtime/page-warnings.js +22 -0
  80. package/dist/runtime/policy-input-forwarding.d.ts +25 -0
  81. package/dist/runtime/policy-input-forwarding.js +25 -0
  82. package/dist/runtime/registration-events.d.ts +22 -14
  83. package/dist/runtime/runtime-event-claim.d.ts +8 -0
  84. package/dist/runtime/runtime-event-claim.js +15 -0
  85. package/dist/runtime/runtime-id.d.ts +1 -1
  86. package/dist/runtime/runtime-id.js +1 -1
  87. package/dist/runtime/shell-event-bridge.d.ts +45 -0
  88. package/dist/runtime/shell-event-bridge.js +127 -0
  89. package/dist/runtime/shell-registration.d.ts +73 -0
  90. package/dist/runtime/shell-registration.js +95 -0
  91. package/dist/runtime/shell-scope.d.ts +68 -0
  92. package/dist/runtime/shell-scope.js +194 -0
  93. package/dist/runtime/tool-host-contract.d.ts +8 -14
  94. package/dist/runtime/tool-host-contract.js +12 -12
  95. package/dist/runtime/unclaimed-registration-watch.d.ts +7 -0
  96. package/dist/runtime/unclaimed-registration-watch.js +23 -0
  97. package/dist/services/AccessibilityCatalogResolver.d.ts +21 -31
  98. package/dist/services/AccessibilityCatalogResolver.js +29 -42
  99. package/dist/services/ElementToolStateStore.d.ts +42 -67
  100. package/dist/services/ElementToolStateStore.js +65 -71
  101. package/dist/services/HighlightCoordinator.d.ts +28 -40
  102. package/dist/services/HighlightCoordinator.js +459 -381
  103. package/dist/services/RangeSerializer.d.ts +11 -33
  104. package/dist/services/RangeSerializer.js +88 -59
  105. package/dist/services/SSMLExtractor.d.ts +8 -31
  106. package/dist/services/SSMLExtractor.js +18 -40
  107. package/dist/services/TTSService.d.ts +159 -119
  108. package/dist/services/TTSService.js +937 -822
  109. package/dist/services/ToolCoordinator.d.ts +42 -102
  110. package/dist/services/ToolCoordinator.js +178 -256
  111. package/dist/services/ToolRegistry.d.ts +152 -133
  112. package/dist/services/ToolRegistry.js +192 -178
  113. package/dist/services/ToolkitCoordinator.d.ts +233 -237
  114. package/dist/services/ToolkitCoordinator.js +615 -557
  115. package/dist/services/audio-handoff.d.ts +6 -7
  116. package/dist/services/audio-handoff.js +20 -14
  117. package/dist/services/catalog-owner.d.ts +0 -1
  118. package/dist/services/framework-error-bus.d.ts +3 -6
  119. package/dist/services/framework-error-bus.js +3 -6
  120. package/dist/services/framework-error.d.ts +51 -13
  121. package/dist/services/framework-error.js +19 -20
  122. package/dist/services/interfaces.d.ts +189 -184
  123. package/dist/services/section-controller-types.d.ts +7 -7
  124. package/dist/services/section-session-assignment.d.ts +21 -0
  125. package/dist/services/section-session-assignment.js +80 -0
  126. package/dist/services/spoken-audio-cards.d.ts +2 -6
  127. package/dist/services/spoken-audio-cards.js +2 -6
  128. package/dist/services/tool-config-defaults.d.ts +3 -3
  129. package/dist/services/tool-config-defaults.js +3 -3
  130. package/dist/services/tool-config-validation.d.ts +9 -12
  131. package/dist/services/tool-config-validation.js +47 -87
  132. package/dist/services/tool-context.d.ts +7 -31
  133. package/dist/services/tool-context.js +99 -65
  134. package/dist/services/tool-failure.d.ts +30 -0
  135. package/dist/services/tool-failure.js +11 -0
  136. package/dist/services/tool-icons.d.ts +5 -5
  137. package/dist/services/tool-icons.js +6 -5
  138. package/dist/services/tool-instance-id.d.ts +8 -7
  139. package/dist/services/tool-instance-id.js +12 -24
  140. package/dist/services/tool-providers/TTSToolProvider.d.ts +20 -58
  141. package/dist/services/tool-providers/TTSToolProvider.js +32 -85
  142. package/dist/services/tool-providers/ToolProviderApi.d.ts +10 -11
  143. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +29 -60
  144. package/dist/services/tool-providers/ToolProviderRegistry.js +128 -144
  145. package/dist/services/tool-request.d.ts +31 -12
  146. package/dist/services/tool-request.js +31 -16
  147. package/dist/services/toolbar-decided-tools.d.ts +16 -0
  148. package/dist/services/toolbar-decided-tools.js +29 -0
  149. package/dist/services/toolbar-items.js +2 -5
  150. package/dist/services/tools-config-normalizer.d.ts +33 -29
  151. package/dist/services/tools-config-normalizer.js +26 -28
  152. package/dist/services/tts/browser-provider.d.ts +39 -6
  153. package/dist/services/tts/browser-provider.js +280 -160
  154. package/dist/services/tts/catalog-span-alignment.js +14 -7
  155. package/dist/services/tts/flat-tree.d.ts +64 -0
  156. package/dist/services/tts/flat-tree.js +269 -0
  157. package/dist/services/tts/generated-speech/assemble-plan.d.ts +3 -1
  158. package/dist/services/tts/generated-speech/assemble-plan.js +3 -1
  159. package/dist/services/tts/generated-speech/dom/build-dom-plan.d.ts +2 -0
  160. package/dist/services/tts/generated-speech/dom/build-dom-plan.js +1 -1
  161. package/dist/services/tts/generated-speech/dom/to-chunk-inputs.d.ts +2 -2
  162. package/dist/services/tts/generated-speech/index.d.ts +1 -1
  163. package/dist/services/tts/generated-speech/index.js +1 -1
  164. package/dist/services/tts/generated-speech/math-speech-cache.d.ts +3 -1
  165. package/dist/services/tts/generated-speech/math-speech-cache.js +5 -1
  166. package/dist/services/tts/generated-speech/types.d.ts +1 -1
  167. package/dist/services/tts/generated-speech/types.js +1 -1
  168. package/dist/services/tts/highlight-pipeline/create-highlight-plan.js +22 -16
  169. package/dist/services/tts/highlight-pipeline/prose-boundary-resolver.js +6 -4
  170. package/dist/services/tts/highlight-pipeline/readable-region.js +3 -2
  171. package/dist/services/tts/highlight-pipeline/types.d.ts +5 -0
  172. package/dist/services/tts/highlight-pipeline/visible-map-range.d.ts +12 -0
  173. package/dist/services/tts/highlight-pipeline/visible-map-range.js +73 -7
  174. package/dist/services/tts/highlight-target-resolver.d.ts +12 -0
  175. package/dist/services/tts/math-aware-text-processing.d.ts +5 -1
  176. package/dist/services/tts/math-aware-text-processing.js +42 -47
  177. package/dist/services/tts/math-control-names.d.ts +21 -0
  178. package/dist/services/tts/math-control-names.js +142 -0
  179. package/dist/services/tts/math-speech.d.ts +12 -1
  180. package/dist/services/tts/math-speech.js +54 -18
  181. package/dist/services/tts/mathml-sanitization.d.ts +7 -0
  182. package/dist/services/tts/mathml-sanitization.js +9 -1
  183. package/dist/services/tts/provider-options.d.ts +52 -0
  184. package/dist/services/tts/provider-options.js +1 -0
  185. package/dist/services/tts/ssml/spoken-text.d.ts +2 -26
  186. package/dist/services/tts/ssml/spoken-text.js +29 -0
  187. package/dist/services/tts/start-failure.d.ts +4 -0
  188. package/dist/services/tts/start-failure.js +19 -0
  189. package/dist/services/tts/text-processing.d.ts +9 -0
  190. package/dist/services/tts/text-processing.js +46 -33
  191. package/dist/services/tts/text-segmentation.d.ts +12 -0
  192. package/dist/services/tts/text-segmentation.js +60 -10
  193. package/dist/services/tts-runtime-config.d.ts +54 -26
  194. package/dist/services/tts-runtime-config.js +27 -112
  195. package/dist/tools/content-capability-resolution.d.ts +9 -11
  196. package/dist/tools/content-capability-resolution.js +8 -45
  197. package/dist/tools/registration.d.ts +59 -0
  198. package/dist/tools/registration.js +55 -0
  199. package/dist/tools/registrations/toolbar-registration-helpers.d.ts +6 -0
  200. package/dist/tools/registrations/toolbar-registration-helpers.js +8 -2
  201. package/dist/tools/tool-surface-host.d.ts +6 -10
  202. package/dist/tools/tool-surface-host.js +45 -50
  203. package/dist/tools/tool-tag-map.d.ts +5 -15
  204. package/dist/tools/tool-tag-map.js +6 -20
  205. package/dist/utils/structural-equality.d.ts +11 -0
  206. package/dist/utils/structural-equality.js +47 -0
  207. package/package.json +15 -29
  208. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +0 -49
  209. package/dist/attempt/adapters/activity-to-test-attempt-session.js +0 -138
  210. package/dist/components/chunks/ItemToolBar-b9dz5jvd.js +0 -40
  211. package/dist/components/chunks/ItemToolBar-h4xap0t0.js +0 -4
  212. package/dist/components/chunks/ItemToolBar-wr2myaah.js +0 -2
  213. package/dist/components/chunks/sre-engine-wf9s43gg.js +0 -1
  214. package/dist/context/runtime-context-consumer.d.ts +0 -13
  215. package/dist/context/runtime-context-consumer.js +0 -18
  216. package/dist/item-loader.d.ts +0 -44
  217. package/dist/item-loader.js +0 -61
  218. package/dist/policy/core/engine-context.d.ts +0 -29
  219. package/dist/policy/core/engine-context.js +0 -27
  220. package/dist/policy/core/policy-source-tag.d.ts +0 -31
  221. package/dist/policy/core/policy-source-tag.js +0 -28
  222. package/dist/policy/internal.d.ts +0 -25
  223. package/dist/policy/internal.js +0 -25
  224. package/dist/runtime/adapter/coordinator-bridge.d.ts +0 -92
  225. package/dist/runtime/adapter/coordinator-bridge.js +0 -126
  226. package/dist/runtime/adapter/framework-error-bridge.d.ts +0 -36
  227. package/dist/runtime/adapter/framework-error-bridge.js +0 -46
  228. package/dist/runtime/adapter/instrumentation-bridge.d.ts +0 -31
  229. package/dist/runtime/adapter/instrumentation-bridge.js +0 -38
  230. package/dist/runtime/core/engine-stage-derivation.d.ts +0 -18
  231. package/dist/runtime/core/engine-stage-derivation.js +0 -29
  232. package/dist/runtime/engine-context.d.ts +0 -39
  233. package/dist/runtime/engine-context.js +0 -31
  234. package/dist/runtime/internal.d.ts +0 -43
  235. package/dist/runtime/internal.js +0 -45
  236. package/dist/runtime/section-runtime-engine-host-context.d.ts +0 -74
  237. package/dist/runtime/section-runtime-engine-host-context.js +0 -57
  238. package/dist/runtime/stage-emit-gate.d.ts +0 -92
  239. package/dist/runtime/stage-emit-gate.js +0 -82
  240. package/dist/services/ContextVariableStore.d.ts +0 -113
  241. package/dist/services/ContextVariableStore.js +0 -206
  242. package/dist/services/I18nService.d.ts +0 -47
  243. package/dist/services/I18nService.js +0 -84
  244. package/dist/services/ThemeProvider.d.ts +0 -95
  245. package/dist/services/ThemeProvider.js +0 -334
  246. package/dist/services/defaultPersonalNeedsProfile.d.ts +0 -21
  247. package/dist/services/defaultPersonalNeedsProfile.js +0 -26
  248. package/dist/services/pnp-standard-features.d.ts +0 -238
  249. package/dist/services/pnp-standard-features.js +0 -338
  250. package/dist/services/tts-control-events.d.ts +0 -13
  251. package/dist/services/tts-control-events.js +0 -7
  252. package/dist/tools/client.d.ts +0 -10
  253. package/dist/tools/client.js +0 -10
  254. package/dist/tools/internal.d.ts +0 -44
  255. package/dist/tools/internal.js +0 -39
  256. package/dist/utils/logger.d.ts +0 -6
  257. package/dist/utils/logger.js +0 -10
@@ -1,154 +1,94 @@
1
1
  /**
2
2
  * ToolCoordinator
3
3
  *
4
- * Manages z-index layering and visibility for floating tools.
5
- * Prevents conflicts between calculator, ruler, protractor, etc.
4
+ * Holds the visibility state of floating tools and stacks their elements.
6
5
  *
7
- * Features:
8
- * - Centralized z-index management with defined layers
9
- * - Tool visibility state tracking
10
- * - Bring-to-front on interaction
11
- * - Framework-agnostic (works with any DOM element)
12
- *
13
- * Part of PIE Assessment Toolkit.
6
+ * Visibility is state: the coordinator records it and notifies subscribers, and
7
+ * whoever renders a tool shows or hides it from that state. Stacking is the
8
+ * coordinator's alone: an element bound to a tool (`registerTool` with an
9
+ * element, or `updateToolElement`) takes a z-index in the tool's layer and comes
10
+ * to the front of that layer when shown or pressed.
14
11
  */
15
- import type { ToolCoordinatorApi, ToolState } from "./interfaces.js";
12
+ import type { ToolCoordinatorApi, ToolState, ToolStateFilter } from "./interfaces.js";
16
13
  /**
17
14
  * Z-index layers for assessment components
18
15
  */
19
16
  export declare enum ZIndexLayer {
20
17
  BASE = 0,// PIE content, player chrome (0-999)
21
- TOOL = 1000,// Non-modal tools (ruler, protractor) (1000-1999)
22
- MODAL = 2000,// Modal tools (calculator) (2000-2999)
18
+ TOOL = 1000,// Floating tools and their windows (1000-1999)
19
+ MODAL = 2000,// Modal tool surfaces (2000-2999)
23
20
  CONTROL = 3000,// Drag handles, resize controls (3000-3999)
24
21
  HIGHLIGHT = 4000
25
22
  }
26
23
  export declare class ToolCoordinator implements ToolCoordinatorApi {
27
24
  private tools;
28
- private layerCounters;
29
25
  private listeners;
30
- /**
31
- * Activation (on/off) state keyed by tool id, kept independent of the
32
- * element registration lifecycle. A tool's DOM element can be unregistered
33
- * and re-registered as the item re-renders (e.g. a model change re-mounts
34
- * the toolbar overlay); when that happens the on/off state must survive so
35
- * that only an explicit toggle — the toolbar button — turns a tool off.
36
- * Cleared on genuine teardown via {@link releaseTool}.
37
- */
38
- private visibilityState;
39
- constructor();
40
26
  /**
41
27
  * Subscribe to tool state changes
42
28
  * Returns unsubscribe function
43
29
  */
44
30
  subscribe(listener: () => void): () => void;
45
- /**
46
- * Notify all listeners of state change
47
- */
48
31
  private notifyListeners;
49
32
  /**
50
- * Register a tool with the coordinator
51
- *
52
- * @param id Unique tool identifier
53
- * @param name Display name
54
- * @param element DOM element for the tool (optional)
55
- * @param layer Z-index layer (defaults to MODAL)
33
+ * Register a tool with the coordinator. Registering a known id keeps its
34
+ * on/off state and takes the name, the element when one is given, and the
35
+ * layer when none was declared before. Without a `layer` the tool stacks on
36
+ * TOOL until a registration names one.
56
37
  */
57
38
  registerTool(id: string, name: string, element?: HTMLElement, layer?: ZIndexLayer): void;
58
39
  /**
59
- * Unregister a tool
60
- *
61
- * Detaches the element binding (listeners, registration) but intentionally
62
- * preserves the tool's activation state in {@link visibilityState}, so a
63
- * subsequent re-registration of the same id (e.g. after an item re-render)
64
- * restores whether the tool was on or off. Use {@link releaseTool} to also
65
- * discard the activation state on genuine teardown.
66
- *
67
- * @param id Tool identifier
40
+ * Unregister a tool's element binding, keeping its on/off state so a
41
+ * re-registration of the same id (an item re-render) restores it. Use
42
+ * {@link releaseTool} on genuine teardown.
68
43
  */
69
44
  unregisterTool(id: string): void;
70
45
  /**
71
- * Fully release a tool: unregister its element binding AND discard its
72
- * preserved activation state. Call this on genuine teardown (e.g. leaving
73
- * the item/section that owns the tool) rather than {@link unregisterTool},
74
- * which keeps the on/off state alive across element re-registration.
75
- *
76
- * @param id Tool identifier
46
+ * Fully release a tool: unregister its element binding and discard its
47
+ * on/off state. Call this on genuine teardown (leaving the item or section
48
+ * that owns the tool).
77
49
  */
78
50
  releaseTool(id: string): void;
79
- /**
80
- * Show a tool
81
- *
82
- * @param id Tool identifier
83
- */
84
51
  showTool(id: string): void;
85
- /**
86
- * Hide a tool
87
- *
88
- * @param id Tool identifier
89
- */
90
52
  hideTool(id: string): void;
91
- /**
92
- * Toggle tool visibility
93
- *
94
- * @param id Tool identifier
95
- */
96
53
  toggleTool(id: string): void;
97
- /**
98
- * Check if tool is visible
99
- *
100
- * @param id Tool identifier
101
- * @returns true if tool is visible
102
- */
103
54
  isToolVisible(id: string): boolean;
104
55
  /**
105
- * Bring element to front of its layer
106
- *
107
- * @param element DOM element to bring forward
56
+ * Bring a bound element to the front of its tool's layer. An element no tool
57
+ * is bound to is left alone.
108
58
  */
109
59
  bringToFront(element: HTMLElement): void;
110
60
  /**
111
- * Get all registered tool IDs
112
- */
113
- getRegisteredTools(): string[];
114
- /**
115
- * Get tool element by ID
61
+ * Release every tool, registered or not, and drop the subscribers. The
62
+ * owning toolkit coordinator calls this when it is disposed.
116
63
  */
117
- getToolElement(id: string): HTMLElement | null;
64
+ destroy(): void;
65
+ private setVisible;
66
+ private detachElement;
118
67
  /**
119
- * Get next offset within a layer
68
+ * Put `entry` in front of its layer. The layer is renumbered from its base on
69
+ * every move, so its z-indices stay within it however often tools are raised.
120
70
  */
121
- private getNextLayerOffset;
71
+ private stackOnTop;
122
72
  /**
123
- * Get maximum z-index currently in use in a layer
124
- */
125
- private getMaxZIndexInLayer;
126
- /**
127
- * Reset all tools to their base z-indices
128
- */
129
- resetZIndices(): void;
130
- /**
131
- * Update tool element reference
73
+ * Bind the element a tool stacks by. It takes the tool's z-index and comes to
74
+ * the front of the layer when pressed, and when bound while the tool is shown.
132
75
  *
133
- * @param id Tool identifier
134
- * @param element New DOM element
76
+ * The outermost element stacks: binding an element inside the bound one keeps
77
+ * the binding, so a tool rendered inside a toolbar's floating window stacks
78
+ * by that window whichever binds first.
135
79
  */
136
80
  updateToolElement(id: string, element: HTMLElement): void;
137
81
  /**
138
- * Hide all tools
139
- */
140
- hideAllTools(): void;
141
- /**
142
- * Get tool state (interface method)
143
- *
144
- * @param id Tool identifier
145
- * @returns Tool state or undefined
82
+ * Hide every visible tool, or every instance of one tool with
83
+ * `{ baseId }`, notifying subscribers once.
146
84
  */
85
+ hideAllTools(filter?: ToolStateFilter): void;
86
+ /** State of a tool an element registration holds. */
147
87
  getToolState(id: string): ToolState | undefined;
148
88
  /**
149
- * Get all visible tools (interface method)
150
- *
151
- * @returns Array of visible tool states
89
+ * Every visible tool, or every visible instance of one tool with
90
+ * `{ baseId }`. A tool shown while its element re-renders counts, as
91
+ * {@link isToolVisible} counts it.
152
92
  */
153
- getVisibleTools(): ToolState[];
93
+ getVisibleTools(filter?: ToolStateFilter): ToolState[];
154
94
  }