@pie-players/pie-assessment-toolkit 0.3.43 → 0.3.44

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 (317) hide show
  1. package/dist/attempt/AssessmentSession.d.ts +0 -1
  2. package/dist/attempt/AssessmentSession.js.map +1 -1
  3. package/dist/attempt/TestSession.d.ts +0 -1
  4. package/dist/attempt/TestSession.js.map +1 -1
  5. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +0 -1
  6. package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -1
  7. package/dist/components/ItemToolBar.custom-element.js +1181 -157
  8. package/dist/components/SectionToolBar.custom-element.js +1179 -157
  9. package/dist/components/item-toolbar-element.d.ts +0 -1
  10. package/dist/components/item-toolbar-element.js.map +1 -1
  11. package/dist/components/pie-assessment-toolkit-element.d.ts +0 -1
  12. package/dist/components/pie-assessment-toolkit-element.js.map +1 -1
  13. package/dist/components/section-toolbar-element.d.ts +0 -1
  14. package/dist/components/section-toolbar-element.js.map +1 -1
  15. package/dist/components/vendor/nds/README.md +110 -0
  16. package/dist/components/vendor/nds/nds-icon-button.js +826 -0
  17. package/dist/context/assessment-toolkit-context.d.ts +0 -1
  18. package/dist/context/assessment-toolkit-context.js.map +1 -1
  19. package/dist/context/runtime-context-consumer.d.ts +0 -1
  20. package/dist/context/runtime-context-consumer.js.map +1 -1
  21. package/dist/index.d.ts +0 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/item-loader.d.ts +0 -1
  24. package/dist/item-loader.js.map +1 -1
  25. package/dist/policy/core/PolicySource.d.ts +0 -1
  26. package/dist/policy/core/PolicySource.js.map +1 -1
  27. package/dist/policy/core/ToolPolicyEngine.d.ts +0 -1
  28. package/dist/policy/core/ToolPolicyEngine.js.map +1 -1
  29. package/dist/policy/core/compose-decision.d.ts +0 -1
  30. package/dist/policy/core/compose-decision.js.map +1 -1
  31. package/dist/policy/core/decision-types.d.ts +0 -1
  32. package/dist/policy/core/decision-types.js.map +1 -1
  33. package/dist/policy/core/engine-context.d.ts +0 -1
  34. package/dist/policy/core/engine-context.js.map +1 -1
  35. package/dist/policy/core/pnp-policy-inputs.d.ts +0 -1
  36. package/dist/policy/core/pnp-policy-inputs.js.map +1 -1
  37. package/dist/policy/core/policy-source-tag.d.ts +0 -1
  38. package/dist/policy/core/policy-source-tag.js.map +1 -1
  39. package/dist/policy/core/provenance.d.ts +0 -1
  40. package/dist/policy/core/provenance.js.map +1 -1
  41. package/dist/policy/engine.d.ts +0 -1
  42. package/dist/policy/engine.js.map +1 -1
  43. package/dist/policy/internal.d.ts +0 -1
  44. package/dist/policy/internal.js.map +1 -1
  45. package/dist/policy/sources/PnpPolicySource.d.ts +0 -1
  46. package/dist/policy/sources/PnpPolicySource.js.map +1 -1
  47. package/dist/runtime/RuntimeRegistry.d.ts +0 -1
  48. package/dist/runtime/RuntimeRegistry.js.map +1 -1
  49. package/dist/runtime/SectionRuntimeEngine.d.ts +0 -1
  50. package/dist/runtime/SectionRuntimeEngine.js.map +1 -1
  51. package/dist/runtime/adapter/SectionEngineAdapter.d.ts +0 -1
  52. package/dist/runtime/adapter/SectionEngineAdapter.js.map +1 -1
  53. package/dist/runtime/adapter/coordinator-bridge.d.ts +0 -1
  54. package/dist/runtime/adapter/coordinator-bridge.js.map +1 -1
  55. package/dist/runtime/adapter/dom-event-bridge.d.ts +0 -1
  56. package/dist/runtime/adapter/dom-event-bridge.js.map +1 -1
  57. package/dist/runtime/adapter/framework-error-bridge.d.ts +0 -1
  58. package/dist/runtime/adapter/framework-error-bridge.js.map +1 -1
  59. package/dist/runtime/adapter/instrumentation-bridge.d.ts +0 -1
  60. package/dist/runtime/adapter/instrumentation-bridge.js.map +1 -1
  61. package/dist/runtime/adapter/subscriber-fanout.d.ts +0 -1
  62. package/dist/runtime/adapter/subscriber-fanout.js.map +1 -1
  63. package/dist/runtime/core/SectionEngineCore.d.ts +0 -1
  64. package/dist/runtime/core/SectionEngineCore.js.map +1 -1
  65. package/dist/runtime/core/cohort.d.ts +0 -1
  66. package/dist/runtime/core/cohort.js.map +1 -1
  67. package/dist/runtime/core/engine-input.d.ts +0 -1
  68. package/dist/runtime/core/engine-input.js.map +1 -1
  69. package/dist/runtime/core/engine-output.d.ts +0 -1
  70. package/dist/runtime/core/engine-output.js.map +1 -1
  71. package/dist/runtime/core/engine-readiness.d.ts +0 -1
  72. package/dist/runtime/core/engine-readiness.js.map +1 -1
  73. package/dist/runtime/core/engine-resolver.d.ts +0 -1
  74. package/dist/runtime/core/engine-resolver.js.map +1 -1
  75. package/dist/runtime/core/engine-stage-derivation.d.ts +0 -1
  76. package/dist/runtime/core/engine-stage-derivation.js.map +1 -1
  77. package/dist/runtime/core/engine-state.d.ts +0 -1
  78. package/dist/runtime/core/engine-state.js.map +1 -1
  79. package/dist/runtime/core/engine-transition.d.ts +0 -1
  80. package/dist/runtime/core/engine-transition.js.map +1 -1
  81. package/dist/runtime/engine-context.d.ts +0 -1
  82. package/dist/runtime/engine-context.js.map +1 -1
  83. package/dist/runtime/engine.d.ts +0 -1
  84. package/dist/runtime/engine.js.map +1 -1
  85. package/dist/runtime/internal.d.ts +0 -1
  86. package/dist/runtime/internal.js.map +1 -1
  87. package/dist/runtime/registration-events.d.ts +0 -1
  88. package/dist/runtime/registration-events.js.map +1 -1
  89. package/dist/runtime/runtime-id.d.ts +0 -1
  90. package/dist/runtime/runtime-id.js.map +1 -1
  91. package/dist/runtime/section-runtime-engine-host-context.d.ts +0 -1
  92. package/dist/runtime/section-runtime-engine-host-context.js.map +1 -1
  93. package/dist/runtime/session-event-emitter-policy.d.ts +0 -1
  94. package/dist/runtime/session-event-emitter-policy.js.map +1 -1
  95. package/dist/runtime/stage-emit-gate.d.ts +0 -1
  96. package/dist/runtime/stage-emit-gate.js.map +1 -1
  97. package/dist/runtime/tool-host-contract.d.ts +0 -1
  98. package/dist/runtime/tool-host-contract.js.map +1 -1
  99. package/dist/services/AccessibilityCatalogResolver.d.ts +0 -1
  100. package/dist/services/AccessibilityCatalogResolver.js.map +1 -1
  101. package/dist/services/ContextVariableStore.d.ts +0 -1
  102. package/dist/services/ContextVariableStore.js.map +1 -1
  103. package/dist/services/ElementToolStateStore.d.ts +0 -1
  104. package/dist/services/ElementToolStateStore.js.map +1 -1
  105. package/dist/services/HighlightCoordinator.d.ts +0 -1
  106. package/dist/services/HighlightCoordinator.js.map +1 -1
  107. package/dist/services/I18nService.d.ts +0 -1
  108. package/dist/services/I18nService.js.map +1 -1
  109. package/dist/services/PNPToolResolver.d.ts +0 -1
  110. package/dist/services/PNPToolResolver.js.map +1 -1
  111. package/dist/services/RangeSerializer.d.ts +0 -1
  112. package/dist/services/RangeSerializer.js.map +1 -1
  113. package/dist/services/SSMLExtractor.d.ts +0 -1
  114. package/dist/services/SSMLExtractor.js.map +1 -1
  115. package/dist/services/TTSService.d.ts +0 -1
  116. package/dist/services/TTSService.js.map +1 -1
  117. package/dist/services/ThemeProvider.d.ts +0 -1
  118. package/dist/services/ThemeProvider.js.map +1 -1
  119. package/dist/services/ToolConfigResolver.d.ts +0 -1
  120. package/dist/services/ToolConfigResolver.js.map +1 -1
  121. package/dist/services/ToolCoordinator.d.ts +0 -1
  122. package/dist/services/ToolCoordinator.js.map +1 -1
  123. package/dist/services/ToolRegistry.d.ts +0 -1
  124. package/dist/services/ToolRegistry.js.map +1 -1
  125. package/dist/services/ToolkitCoordinator.d.ts +0 -1
  126. package/dist/services/ToolkitCoordinator.js.map +1 -1
  127. package/dist/services/create-tools-config.d.ts +0 -1
  128. package/dist/services/create-tools-config.js.map +1 -1
  129. package/dist/services/createDefaultToolRegistry.d.ts +0 -1
  130. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  131. package/dist/services/defaultPersonalNeedsProfile.d.ts +0 -1
  132. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -1
  133. package/dist/services/framework-error-bus.d.ts +0 -1
  134. package/dist/services/framework-error-bus.js.map +1 -1
  135. package/dist/services/framework-error.d.ts +0 -1
  136. package/dist/services/framework-error.js.map +1 -1
  137. package/dist/services/interfaces.d.ts +0 -1
  138. package/dist/services/interfaces.js.map +1 -1
  139. package/dist/services/pnp-provenance.d.ts +0 -1
  140. package/dist/services/pnp-provenance.js.map +1 -1
  141. package/dist/services/pnp-standard-features.d.ts +0 -1
  142. package/dist/services/pnp-standard-features.js.map +1 -1
  143. package/dist/services/section-controller-types.d.ts +0 -1
  144. package/dist/services/section-controller-types.js.map +1 -1
  145. package/dist/services/tool-config-defaults.d.ts +0 -1
  146. package/dist/services/tool-config-defaults.js.map +1 -1
  147. package/dist/services/tool-config-validation.d.ts +0 -1
  148. package/dist/services/tool-config-validation.js.map +1 -1
  149. package/dist/services/tool-context.d.ts +0 -1
  150. package/dist/services/tool-context.js.map +1 -1
  151. package/dist/services/tool-instance-id.d.ts +0 -1
  152. package/dist/services/tool-instance-id.js.map +1 -1
  153. package/dist/services/tool-providers/DesmosToolProvider.d.ts +0 -1
  154. package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -1
  155. package/dist/services/tool-providers/TTSToolProvider.d.ts +0 -1
  156. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -1
  157. package/dist/services/tool-providers/ToolProviderApi.d.ts +0 -1
  158. package/dist/services/tool-providers/ToolProviderApi.js.map +1 -1
  159. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +0 -1
  160. package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -1
  161. package/dist/services/tool-providers/index.d.ts +0 -1
  162. package/dist/services/tool-providers/index.js.map +1 -1
  163. package/dist/services/toolbar-items.d.ts +0 -1
  164. package/dist/services/toolbar-items.js.map +1 -1
  165. package/dist/services/tools-config-normalizer.d.ts +0 -1
  166. package/dist/services/tools-config-normalizer.js.map +1 -1
  167. package/dist/services/tts/browser-provider.d.ts +0 -1
  168. package/dist/services/tts/browser-provider.js.map +1 -1
  169. package/dist/services/tts/text-processing.d.ts +0 -1
  170. package/dist/services/tts/text-processing.js.map +1 -1
  171. package/dist/services/tts/text-segmentation.d.ts +0 -1
  172. package/dist/services/tts/text-segmentation.js.map +1 -1
  173. package/dist/services/tts/visual-line-ranges.d.ts +0 -1
  174. package/dist/services/tts/visual-line-ranges.js.map +1 -1
  175. package/dist/services/tts-control-events.d.ts +0 -1
  176. package/dist/services/tts-control-events.js.map +1 -1
  177. package/dist/services/tts-runtime-config.d.ts +0 -1
  178. package/dist/services/tts-runtime-config.js.map +1 -1
  179. package/dist/tools/calculators/desmos-provider.d.ts +0 -1
  180. package/dist/tools/calculators/desmos-provider.js.map +1 -1
  181. package/dist/tools/client.d.ts +0 -1
  182. package/dist/tools/client.js.map +1 -1
  183. package/dist/tools/default-tool-module-loaders.d.ts +0 -1
  184. package/dist/tools/default-tool-module-loaders.js.map +1 -1
  185. package/dist/tools/index.d.ts +0 -1
  186. package/dist/tools/index.js.map +1 -1
  187. package/dist/tools/library-loader.d.ts +0 -1
  188. package/dist/tools/library-loader.js.map +1 -1
  189. package/dist/tools/registrations/accessibility-tools.d.ts +0 -1
  190. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  191. package/dist/tools/registrations/calculator.d.ts +0 -1
  192. package/dist/tools/registrations/calculator.js.map +1 -1
  193. package/dist/tools/registrations/interaction-tools.d.ts +0 -1
  194. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  195. package/dist/tools/registrations/measurement-tools.d.ts +0 -1
  196. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  197. package/dist/tools/registrations/subject-specific-tools.d.ts +0 -1
  198. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  199. package/dist/tools/registrations/toolbar-registration-helpers.d.ts +0 -1
  200. package/dist/tools/registrations/toolbar-registration-helpers.js.map +1 -1
  201. package/dist/tools/registrations/tts.d.ts +0 -1
  202. package/dist/tools/registrations/tts.js.map +1 -1
  203. package/dist/tools/response-discovery.d.ts +0 -1
  204. package/dist/tools/response-discovery.js.map +1 -1
  205. package/dist/tools/tool-tag-map.d.ts +0 -1
  206. package/dist/tools/tool-tag-map.js.map +1 -1
  207. package/dist/tools/types.d.ts +0 -1
  208. package/dist/tools/types.js.map +1 -1
  209. package/dist/tools/variant-resolver.d.ts +0 -1
  210. package/dist/tools/variant-resolver.js.map +1 -1
  211. package/dist/utils/logger.d.ts +0 -1
  212. package/dist/utils/logger.js.map +1 -1
  213. package/package.json +7 -7
  214. package/dist/attempt/AssessmentSession.d.ts.map +0 -1
  215. package/dist/attempt/TestSession.d.ts.map +0 -1
  216. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +0 -1
  217. package/dist/components/item-toolbar-element.d.ts.map +0 -1
  218. package/dist/components/pie-assessment-toolkit-element.d.ts.map +0 -1
  219. package/dist/components/section-toolbar-element.d.ts.map +0 -1
  220. package/dist/context/assessment-toolkit-context.d.ts.map +0 -1
  221. package/dist/context/runtime-context-consumer.d.ts.map +0 -1
  222. package/dist/index.d.ts.map +0 -1
  223. package/dist/item-loader.d.ts.map +0 -1
  224. package/dist/policy/core/PolicySource.d.ts.map +0 -1
  225. package/dist/policy/core/ToolPolicyEngine.d.ts.map +0 -1
  226. package/dist/policy/core/compose-decision.d.ts.map +0 -1
  227. package/dist/policy/core/decision-types.d.ts.map +0 -1
  228. package/dist/policy/core/engine-context.d.ts.map +0 -1
  229. package/dist/policy/core/pnp-policy-inputs.d.ts.map +0 -1
  230. package/dist/policy/core/policy-source-tag.d.ts.map +0 -1
  231. package/dist/policy/core/provenance.d.ts.map +0 -1
  232. package/dist/policy/engine.d.ts.map +0 -1
  233. package/dist/policy/internal.d.ts.map +0 -1
  234. package/dist/policy/sources/PnpPolicySource.d.ts.map +0 -1
  235. package/dist/runtime/RuntimeRegistry.d.ts.map +0 -1
  236. package/dist/runtime/SectionRuntimeEngine.d.ts.map +0 -1
  237. package/dist/runtime/adapter/SectionEngineAdapter.d.ts.map +0 -1
  238. package/dist/runtime/adapter/coordinator-bridge.d.ts.map +0 -1
  239. package/dist/runtime/adapter/dom-event-bridge.d.ts.map +0 -1
  240. package/dist/runtime/adapter/framework-error-bridge.d.ts.map +0 -1
  241. package/dist/runtime/adapter/instrumentation-bridge.d.ts.map +0 -1
  242. package/dist/runtime/adapter/subscriber-fanout.d.ts.map +0 -1
  243. package/dist/runtime/core/SectionEngineCore.d.ts.map +0 -1
  244. package/dist/runtime/core/cohort.d.ts.map +0 -1
  245. package/dist/runtime/core/engine-input.d.ts.map +0 -1
  246. package/dist/runtime/core/engine-output.d.ts.map +0 -1
  247. package/dist/runtime/core/engine-readiness.d.ts.map +0 -1
  248. package/dist/runtime/core/engine-resolver.d.ts.map +0 -1
  249. package/dist/runtime/core/engine-stage-derivation.d.ts.map +0 -1
  250. package/dist/runtime/core/engine-state.d.ts.map +0 -1
  251. package/dist/runtime/core/engine-transition.d.ts.map +0 -1
  252. package/dist/runtime/engine-context.d.ts.map +0 -1
  253. package/dist/runtime/engine.d.ts.map +0 -1
  254. package/dist/runtime/internal.d.ts.map +0 -1
  255. package/dist/runtime/registration-events.d.ts.map +0 -1
  256. package/dist/runtime/runtime-id.d.ts.map +0 -1
  257. package/dist/runtime/section-runtime-engine-host-context.d.ts.map +0 -1
  258. package/dist/runtime/session-event-emitter-policy.d.ts.map +0 -1
  259. package/dist/runtime/stage-emit-gate.d.ts.map +0 -1
  260. package/dist/runtime/tool-host-contract.d.ts.map +0 -1
  261. package/dist/services/AccessibilityCatalogResolver.d.ts.map +0 -1
  262. package/dist/services/ContextVariableStore.d.ts.map +0 -1
  263. package/dist/services/ElementToolStateStore.d.ts.map +0 -1
  264. package/dist/services/HighlightCoordinator.d.ts.map +0 -1
  265. package/dist/services/I18nService.d.ts.map +0 -1
  266. package/dist/services/PNPToolResolver.d.ts.map +0 -1
  267. package/dist/services/RangeSerializer.d.ts.map +0 -1
  268. package/dist/services/SSMLExtractor.d.ts.map +0 -1
  269. package/dist/services/TTSService.d.ts.map +0 -1
  270. package/dist/services/ThemeProvider.d.ts.map +0 -1
  271. package/dist/services/ToolConfigResolver.d.ts.map +0 -1
  272. package/dist/services/ToolCoordinator.d.ts.map +0 -1
  273. package/dist/services/ToolRegistry.d.ts.map +0 -1
  274. package/dist/services/ToolkitCoordinator.d.ts.map +0 -1
  275. package/dist/services/create-tools-config.d.ts.map +0 -1
  276. package/dist/services/createDefaultToolRegistry.d.ts.map +0 -1
  277. package/dist/services/defaultPersonalNeedsProfile.d.ts.map +0 -1
  278. package/dist/services/framework-error-bus.d.ts.map +0 -1
  279. package/dist/services/framework-error.d.ts.map +0 -1
  280. package/dist/services/interfaces.d.ts.map +0 -1
  281. package/dist/services/pnp-provenance.d.ts.map +0 -1
  282. package/dist/services/pnp-standard-features.d.ts.map +0 -1
  283. package/dist/services/section-controller-types.d.ts.map +0 -1
  284. package/dist/services/tool-config-defaults.d.ts.map +0 -1
  285. package/dist/services/tool-config-validation.d.ts.map +0 -1
  286. package/dist/services/tool-context.d.ts.map +0 -1
  287. package/dist/services/tool-instance-id.d.ts.map +0 -1
  288. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +0 -1
  289. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +0 -1
  290. package/dist/services/tool-providers/ToolProviderApi.d.ts.map +0 -1
  291. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +0 -1
  292. package/dist/services/tool-providers/index.d.ts.map +0 -1
  293. package/dist/services/toolbar-items.d.ts.map +0 -1
  294. package/dist/services/tools-config-normalizer.d.ts.map +0 -1
  295. package/dist/services/tts/browser-provider.d.ts.map +0 -1
  296. package/dist/services/tts/text-processing.d.ts.map +0 -1
  297. package/dist/services/tts/text-segmentation.d.ts.map +0 -1
  298. package/dist/services/tts/visual-line-ranges.d.ts.map +0 -1
  299. package/dist/services/tts-control-events.d.ts.map +0 -1
  300. package/dist/services/tts-runtime-config.d.ts.map +0 -1
  301. package/dist/tools/calculators/desmos-provider.d.ts.map +0 -1
  302. package/dist/tools/client.d.ts.map +0 -1
  303. package/dist/tools/default-tool-module-loaders.d.ts.map +0 -1
  304. package/dist/tools/index.d.ts.map +0 -1
  305. package/dist/tools/library-loader.d.ts.map +0 -1
  306. package/dist/tools/registrations/accessibility-tools.d.ts.map +0 -1
  307. package/dist/tools/registrations/calculator.d.ts.map +0 -1
  308. package/dist/tools/registrations/interaction-tools.d.ts.map +0 -1
  309. package/dist/tools/registrations/measurement-tools.d.ts.map +0 -1
  310. package/dist/tools/registrations/subject-specific-tools.d.ts.map +0 -1
  311. package/dist/tools/registrations/toolbar-registration-helpers.d.ts.map +0 -1
  312. package/dist/tools/registrations/tts.d.ts.map +0 -1
  313. package/dist/tools/response-discovery.d.ts.map +0 -1
  314. package/dist/tools/tool-tag-map.d.ts.map +0 -1
  315. package/dist/tools/types.d.ts.map +0 -1
  316. package/dist/tools/variant-resolver.d.ts.map +0 -1
  317. package/dist/utils/logger.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/services/ThemeProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/services/ThemeProvider.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ThemeProvider\n *\n * Applies consistent accessibility theming across items and tools.\n * Uses CSS custom properties and classes for framework-agnostic theming.\n *\n * Features:\n * - High contrast mode\n * - Font size scaling (small, normal, large, xlarge)\n * - Color customization (background, foreground, accent)\n * - Consistent theming across shadow DOM boundaries\n * - No framework dependencies\n *\n * Part of PIE Assessment Toolkit.\n */\n\nimport type { ThemeProviderApi } from \"./interfaces.js\";\n\n/**\n * Font size options\n */\nexport type FontSize = \"small\" | \"normal\" | \"large\" | \"xlarge\";\n\n/**\n * Theme configuration\n */\nexport interface ThemeConfig {\n\thighContrast?: boolean;\n\tfontSize?: FontSize;\n\tbackgroundColor?: string;\n\tforegroundColor?: string;\n\taccentColor?: string;\n\tlinkColor?: string;\n\terrorColor?: string;\n\tsuccessColor?: string;\n\twarningColor?: string;\n}\n\n/**\n * Font size scale (in rem units)\n */\nconst FONT_SIZE_SCALE: Record<FontSize, number> = {\n\tsmall: 0.875, // 14px at 16px base\n\tnormal: 1.0, // 16px at 16px base\n\tlarge: 1.25, // 20px at 16px base\n\txlarge: 1.5, // 24px at 16px base\n};\n\n/**\n * Default theme values\n */\nconst DEFAULT_THEME: Required<ThemeConfig> = {\n\thighContrast: false,\n\tfontSize: \"normal\",\n\tbackgroundColor: \"#ffffff\",\n\tforegroundColor: \"#000000\",\n\taccentColor: \"#3f51b5\",\n\tlinkColor: \"#146eb3\",\n\terrorColor: \"#ff9800\",\n\tsuccessColor: \"#4caf50\",\n\twarningColor: \"#d32f2f\",\n};\n\n/**\n * High contrast theme overrides\n */\nconst HIGH_CONTRAST_THEME: Partial<ThemeConfig> = {\n\tbackgroundColor: \"#000000\",\n\tforegroundColor: \"#ffffff\",\n\taccentColor: \"#ffff00\",\n\tlinkColor: \"#00ffff\",\n\terrorColor: \"#ff0000\",\n\tsuccessColor: \"#00ff00\",\n\twarningColor: \"#ffff00\",\n};\n\nexport class ThemeProvider implements ThemeProviderApi {\n\tprivate currentTheme: Required<ThemeConfig> = { ...DEFAULT_THEME };\n\tprivate styleElement: HTMLStyleElement | null = null;\n\tprivate rootElement: HTMLElement | null;\n\tprivate styleContainer: ShadowRoot | HTMLHeadElement | null = null;\n\n\tconstructor(\n\t\trootElement: HTMLElement | null = typeof document !== \"undefined\"\n\t\t\t? document.documentElement\n\t\t\t: null,\n\t) {\n\t\tthis.rootElement = rootElement;\n\n\t\t// SSR guard\n\t\tif (typeof document === \"undefined\") {\n\t\t\tconsole.warn(\"ThemeProvider: document not available (SSR context)\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initializeStyles();\n\t}\n\n\t/**\n\t * Initialize theme styles\n\t */\n\tprivate initializeStyles(): void {\n\t\tif (!this.rootElement) return;\n\n\t\tconst rootNode = this.rootElement.getRootNode();\n\t\tif (rootNode instanceof ShadowRoot) {\n\t\t\tthis.styleContainer = rootNode;\n\t\t\tthis.styleElement = rootNode.querySelector(\n\t\t\t\t'style[data-pie-theme-styles=\"true\"]',\n\t\t\t) as HTMLStyleElement | null;\n\t\t} else {\n\t\t\tthis.styleContainer = document.head;\n\t\t\tthis.styleElement = document.getElementById(\n\t\t\t\t\"pie-theme-styles\",\n\t\t\t) as HTMLStyleElement | null;\n\t\t}\n\n\t\tif (!this.styleElement) {\n\t\t\tthis.styleElement = document.createElement(\"style\");\n\t\t\tif (this.styleContainer instanceof ShadowRoot) {\n\t\t\t\tthis.styleElement.setAttribute(\"data-pie-theme-styles\", \"true\");\n\t\t\t\tthis.styleContainer.appendChild(this.styleElement);\n\t\t\t} else {\n\t\t\t\tthis.styleElement.id = \"pie-theme-styles\";\n\t\t\t\tdocument.head.appendChild(this.styleElement);\n\t\t\t}\n\t\t}\n\n\t\t// Apply default theme\n\t\tthis.applyTheme({});\n\t}\n\n\t/**\n\t * Apply theme configuration\n\t *\n\t * @param config Partial theme configuration (merged with current theme)\n\t */\n\tapplyTheme(config: ThemeConfig): void {\n\t\tif (!this.rootElement) return;\n\n\t\t// Merge with current theme\n\t\tconst newTheme = {\n\t\t\t...this.currentTheme,\n\t\t\t...config,\n\t\t};\n\n\t\t// Apply high contrast overrides if enabled\n\t\tif (newTheme.highContrast) {\n\t\t\tObject.assign(newTheme, HIGH_CONTRAST_THEME);\n\t\t}\n\n\t\tthis.currentTheme = newTheme;\n\n\t\t// Apply CSS custom properties\n\t\tthis.applyCSSVariables();\n\n\t\t// Apply CSS classes\n\t\tthis.applyCSSClasses();\n\n\t\t// Update global styles\n\t\tthis.updateGlobalStyles();\n\t}\n\n\t/**\n\t * Apply CSS custom properties to root element\n\t */\n\tprivate applyCSSVariables(): void {\n\t\tif (!this.rootElement) return;\n\n\t\tconst {\n\t\t\tfontSize,\n\t\t\tbackgroundColor,\n\t\t\tforegroundColor,\n\t\t\taccentColor,\n\t\t\tlinkColor,\n\t\t\terrorColor,\n\t\t\tsuccessColor,\n\t\t\twarningColor,\n\t\t} = this.currentTheme;\n\n\t\t// Font sizing\n\t\tthis.rootElement.style.setProperty(\"--pie-font-scale\", String(FONT_SIZE_SCALE[fontSize]));\n\n\t\t// Canonical PIE variables\n\t\tthis.rootElement.style.setProperty(\"--pie-background\", backgroundColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-text\", foregroundColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-primary\", accentColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-tertiary\", linkColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-incorrect\", errorColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-correct\", successColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-missing\", warningColor);\n\n\t\t// Derived surface tokens\n\t\tthis.rootElement.style.setProperty(\"--pie-background-dark\", this.adjustOpacity(backgroundColor, 0.95));\n\t\tthis.rootElement.style.setProperty(\"--pie-secondary-background\", this.adjustOpacity(backgroundColor, 0.92));\n\t\tthis.rootElement.style.setProperty(\"--pie-border\", this.adjustOpacity(foregroundColor, 0.25));\n\t\tthis.rootElement.style.setProperty(\"--pie-border-light\", this.adjustOpacity(foregroundColor, 0.16));\n\t\tthis.rootElement.style.setProperty(\"--pie-border-dark\", this.adjustOpacity(foregroundColor, 0.4));\n\t\tthis.rootElement.style.setProperty(\"--pie-focus-checked\", this.adjustOpacity(accentColor, 0.18));\n\t\tthis.rootElement.style.setProperty(\"--pie-focus-checked-border\", accentColor);\n\n\t\t// Button tokens used by toolkit controls\n\t\tthis.rootElement.style.setProperty(\"--pie-button-bg\", backgroundColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-button-border\", this.adjustOpacity(foregroundColor, 0.2));\n\t\tthis.rootElement.style.setProperty(\"--pie-button-color\", foregroundColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-button-hover-bg\", this.adjustOpacity(accentColor, 0.1));\n\t\tthis.rootElement.style.setProperty(\"--pie-button-hover-border\", this.adjustOpacity(accentColor, 0.5));\n\t\tthis.rootElement.style.setProperty(\"--pie-button-hover-color\", foregroundColor);\n\t\tthis.rootElement.style.setProperty(\"--pie-button-active-bg\", this.adjustOpacity(accentColor, 0.16));\n\t\tthis.rootElement.style.setProperty(\"--pie-button-focus-outline\", accentColor);\n\t}\n\n\t/**\n\t * Apply CSS classes to root element\n\t */\n\tprivate applyCSSClasses(): void {\n\t\tif (!this.rootElement) return;\n\n\t\tconst { highContrast, fontSize } = this.currentTheme;\n\n\t\t// High contrast class\n\t\tthis.rootElement.classList.toggle(\"pie-high-contrast\", highContrast);\n\n\t\t// Font size classes\n\t\tthis.rootElement.classList.remove(\n\t\t\t\"pie-font-small\",\n\t\t\t\"pie-font-normal\",\n\t\t\t\"pie-font-large\",\n\t\t\t\"pie-font-xlarge\",\n\t\t);\n\t\tthis.rootElement.classList.add(`pie-font-${fontSize}`);\n\t}\n\n\t/**\n\t * Update global theme styles\n\t */\n\tprivate updateGlobalStyles(): void {\n\t\tif (!this.styleElement) return;\n\n\t\tthis.styleElement.textContent = `\n /* PIE Assessment Toolkit - Theme Styles */\n\n /* Font scaling */\n .pie-themed,\n .pie-themed * {\n font-size: calc(1rem * var(--pie-font-scale, 1));\n }\n\n /* Color theming */\n .pie-themed {\n background-color: var(--pie-background);\n color: var(--pie-text);\n }\n\n .pie-themed a {\n color: var(--pie-tertiary);\n }\n\n .pie-themed a:hover {\n opacity: 0.8;\n }\n\n /* High contrast mode */\n .pie-high-contrast .pie-themed {\n border: 2px solid var(--pie-text);\n }\n\n .pie-high-contrast .pie-themed a {\n text-decoration: underline;\n font-weight: bold;\n }\n\n .pie-high-contrast .pie-themed button {\n border: 2px solid var(--pie-text);\n background-color: var(--pie-background);\n color: var(--pie-text);\n }\n\n .pie-high-contrast .pie-themed button:hover {\n background-color: var(--pie-text);\n color: var(--pie-background);\n }\n\n /* Error/Success/Warning states */\n .pie-themed .pie-error {\n color: var(--pie-incorrect);\n }\n\n .pie-themed .pie-success {\n color: var(--pie-correct);\n }\n\n .pie-themed .pie-warning {\n color: var(--pie-missing);\n }\n\n /* Focus indicators (accessibility) */\n .pie-themed *:focus-visible {\n outline: 3px solid var(--pie-focus-checked-border);\n outline-offset: 2px;\n }\n\n .pie-high-contrast *:focus-visible {\n outline-width: 4px;\n }\n\n /* Responsive font scaling */\n @media (max-width: 768px) {\n .pie-themed,\n .pie-themed * {\n font-size: calc(1rem * var(--pie-font-scale, 1) * 0.9);\n }\n }\n `;\n\t}\n\n\t/**\n\t * Set high contrast mode\n\t */\n\tsetHighContrast(enabled: boolean): void {\n\t\tthis.applyTheme({ highContrast: enabled });\n\t}\n\n\t/**\n\t * Set font size\n\t */\n\tsetFontSize(size: FontSize): void {\n\t\tthis.applyTheme({ fontSize: size });\n\t}\n\n\t/**\n\t * Set color scheme\n\t */\n\tsetColors(colors: {\n\t\tbackgroundColor?: string;\n\t\tforegroundColor?: string;\n\t\taccentColor?: string;\n\t}): void {\n\t\tthis.applyTheme(colors);\n\t}\n\n\t/**\n\t * Get current theme configuration\n\t */\n\tgetCurrentTheme(): Required<ThemeConfig> {\n\t\treturn { ...this.currentTheme };\n\t}\n\n\t/**\n\t * Reset to default theme\n\t */\n\treset(): void {\n\t\tthis.currentTheme = { ...DEFAULT_THEME };\n\t\tthis.applyTheme({});\n\t}\n\n\t/**\n\t * Adjust color opacity (helper)\n\t */\n\tprivate adjustOpacity(color: string, opacity: number): string {\n\t\t// Simple hex to rgba conversion\n\t\tif (color.startsWith(\"#\")) {\n\t\t\tconst r = parseInt(color.slice(1, 3), 16);\n\t\t\tconst g = parseInt(color.slice(3, 5), 16);\n\t\t\tconst b = parseInt(color.slice(5, 7), 16);\n\t\t\treturn `rgba(${r}, ${g}, ${b}, ${opacity})`;\n\t\t}\n\n\t\t// If already rgba/rgb, just return as-is (simplified)\n\t\treturn color;\n\t}\n\n\t/**\n\t * Cleanup - remove theme styles\n\t */\n\tdestroy(): void {\n\t\tif (this.styleElement) {\n\t\t\tthis.styleElement.remove();\n\t\t\tthis.styleElement = null;\n\t\t}\n\t\tthis.styleContainer = null;\n\n\t\tif (!this.rootElement) return;\n\n\t\t// Remove CSS classes\n\t\tthis.rootElement.classList.remove(\n\t\t\t\"pie-high-contrast\",\n\t\t\t\"pie-font-small\",\n\t\t\t\"pie-font-normal\",\n\t\t\t\"pie-font-large\",\n\t\t\t\"pie-font-xlarge\",\n\t\t);\n\n\t\t// Remove CSS custom properties\n\t\tthis.rootElement.style.removeProperty(\"--pie-font-scale\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-background\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-text\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-primary\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-tertiary\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-incorrect\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-correct\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-missing\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-background-dark\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-secondary-background\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-border\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-border-light\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-border-dark\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-focus-checked\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-focus-checked-border\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-bg\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-border\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-color\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-hover-bg\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-hover-border\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-hover-color\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-active-bg\");\n\t\tthis.rootElement.style.removeProperty(\"--pie-button-focus-outline\");\n\t}\n}\n"]}
@@ -159,4 +159,3 @@ export declare class ToolConfigResolver {
159
159
  */
160
160
  mergeStudentProfiles(...profiles: StudentAccommodations[]): StudentAccommodations;
161
161
  }
162
- //# sourceMappingURL=ToolConfigResolver.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolConfigResolver.js","sourceRoot":"","sources":["../../src/services/ToolConfigResolver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAoDH,MAAM,OAAO,kBAAkB;IAC9B;;;;;;;;;;;;;OAaG;IACH,WAAW,CACV,MAAc,EACd,UAA2B,EAC3B,YAA+B,EAC/B,cAAsC;QAEtC,sCAAsC;QACtC,MAAM,QAAQ,GAAG,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,QAAQ,EAAE,CAAC;YACd,uCAAuC;YACvC,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,IAAI,KAAK;gBACpC,QAAQ,EAAE,QAAQ,CAAC,QAAQ;gBAC3B,MAAM,EAAE,MAAM;aACd,CAAC;QACH,CAAC;QAED,8CAA8C;QAC9C,MAAM,eAAe,GAAG,YAAY,EAAE,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;YAC7B,qCAAqC;YACrC,OAAO,IAAI,CAAC;QACb,CAAC;QAED,IAAI,eAAe,KAAK,GAAG,EAAE,CAAC;YAC7B,0BAA0B;YAC1B,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,QAAQ;aAChB,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,gBAAgB,GACrB,cAAc,EAAE,cAAc,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC;QAC1D,IAAI,gBAAgB,EAAE,CAAC;YACtB,0CAA0C;YAC1C,OAAO;gBACN,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,KAAK;gBACf,MAAM,EAAE,SAAS;aACjB,CAAC;QACH,CAAC;QAED,mCAAmC;QACnC,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACH,UAAU,CAAC,KAAsB;QAChC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA8B,CAAC;QAEvD,uCAAuC;QACvC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,mBAAmB;QACnB,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;QAED,qBAAqB;QACrB,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,8BAA8B;QAC9B,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YAC1B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;QAED,oBAAoB;QACpB,KAAK,MAAM,MAAM,IAAI,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAC9B,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACZ,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAC9B,CAAC;QACF,CAAC;QAED,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED;;;;;;OAMG;IACH,aAAa,CAAC,MAAc,EAAE,KAAsB;QACnD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAC9B,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;IACjC,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,MAAc,EAAE,KAAsB;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAC9B,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,MAAM,EAAE,QAAQ,IAAI,KAAK,CAAC;IAClC,CAAC;IAED;;;;;;OAMG;IACH,WAAW,CAAC,MAAc,EAAE,KAAsB;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAC9B,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,MAAc,EAAE,KAAsB;QACrD,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAC9B,MAAM,EACN,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,YAAY,EAClB,KAAK,CAAC,cAAc,CACpB,CAAC;QACF,OAAO,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,KAAsB;QACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC;aACvC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,KAAsB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACxC,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED;;;;;;OAMG;IACH,QAAQ,CACP,cAA2B,EAC3B,KAAsB;QAEtB,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,CACxC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CACvC,CAAC;QAEF,OAAO;YACN,KAAK,EAAE,YAAY,CAAC,MAAM,KAAK,CAAC;YAChC,YAAY;SACZ,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACH,kBAAkB,CAAC,GAAG,OAA2B;QAChD,MAAM,MAAM,GAAqB,EAAE,CAAC;QAEpC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC9B,KAAK,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC1D,8CAA8C;gBAC9C,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;oBACvB,MAAM,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;gBACtB,CAAC;qBAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5B,yCAAyC;oBACzC,MAAM,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;gBAC5B,CAAC;YACF,CAAC;QACF,CAAC;QAED,OAAO,MAAM,CAAC;IACf,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CACnB,GAAG,QAAiC;QAEpC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAU,CAAC;QAE5C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAChC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC;QAED,OAAO;YACN,cAAc,EAAE,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAC7C,CAAC;IACH,CAAC;CACD"}
1
+ {"version":3,"file":"ToolConfigResolver.js","sourceRoot":"","sources":["../../src/services/ToolConfigResolver.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ToolConfigResolver\n *\n * Implements 3-tier hierarchy for tool configuration:\n * Item requirements > Roster allowances > Student accommodations\n *\n * Ensures IEP/504 compliance by properly handling accommodation requirements\n * while respecting item-level and test-level restrictions.\n *\n * Features:\n * - 3-tier configuration hierarchy\n * - IEP/504 accommodation support\n * - Item-specific tool requirements\n * - Test-level tool restrictions\n * - Type-safe configuration\n *\n * Part of PIE Assessment Toolkit.\n */\n\n/**\n * Tool allowance: \"0\" = blocked, \"1\" = allowed\n */\nexport type ToolAllowance = \"0\" | \"1\";\n\n/**\n * Item-level tool configuration (most specific)\n */\nexport interface ItemToolConfig {\n\t[toolId: string]: {\n\t\ttype?: string; // e.g., 'scientific' for calculator\n\t\trequired?: boolean; // true = must be available\n\t\tsettings?: any; // tool-specific settings\n\t};\n}\n\n/**\n * Roster/Test-level tool allowances (assessment-wide rules)\n */\nexport interface RosterToolConfig {\n\t[toolId: string]: ToolAllowance;\n}\n\n/**\n * Student accommodation profile (least specific)\n */\nexport interface StudentAccommodations {\n\taccommodations: string[]; // e.g., ['tts', 'calculator', 'extended-time']\n}\n\n/**\n * Resolved tool configuration\n */\nexport interface ResolvedToolConfig {\n\tenabled: boolean;\n\ttype?: string;\n\trequired?: boolean;\n\tsettings?: any;\n\tsource: \"item\" | \"roster\" | \"student\" | \"default\";\n}\n\n/**\n * Full configuration input\n */\nexport interface ToolConfigInput {\n\titemConfig?: ItemToolConfig;\n\trosterConfig?: RosterToolConfig;\n\tstudentProfile?: StudentAccommodations;\n}\n\nexport class ToolConfigResolver {\n\t/**\n\t * Resolve configuration for a specific tool\n\t *\n\t * Hierarchy (highest to lowest priority):\n\t * 1. Item level: Item requires scientific calculator → must provide\n\t * 2. Roster level: Test blocks a tool → blocked regardless of accommodation\n\t * 3. Student level: IEP requires TTS → enabled unless blocked above\n\t *\n\t * @param toolId Tool identifier\n\t * @param itemConfig Item-level tool configuration\n\t * @param rosterConfig Roster-level tool allowances\n\t * @param studentProfile Student accommodation profile\n\t * @returns Resolved configuration or null if tool not available\n\t */\n\tresolveTool(\n\t\ttoolId: string,\n\t\titemConfig?: ItemToolConfig,\n\t\trosterConfig?: RosterToolConfig,\n\t\tstudentProfile?: StudentAccommodations,\n\t): ResolvedToolConfig | null {\n\t\t// Check item level (highest priority)\n\t\tconst itemTool = itemConfig?.[toolId];\n\t\tif (itemTool) {\n\t\t\t// Item explicitly configures this tool\n\t\t\treturn {\n\t\t\t\tenabled: true,\n\t\t\t\ttype: itemTool.type,\n\t\t\t\trequired: itemTool.required ?? false,\n\t\t\t\tsettings: itemTool.settings,\n\t\t\t\tsource: \"item\",\n\t\t\t};\n\t\t}\n\n\t\t// Check roster level (blocks take precedence)\n\t\tconst rosterAllowance = rosterConfig?.[toolId];\n\t\tif (rosterAllowance === \"0\") {\n\t\t\t// Roster explicitly blocks this tool\n\t\t\treturn null;\n\t\t}\n\n\t\tif (rosterAllowance === \"1\") {\n\t\t\t// Roster allows this tool\n\t\t\treturn {\n\t\t\t\tenabled: true,\n\t\t\t\trequired: false,\n\t\t\t\tsource: \"roster\",\n\t\t\t};\n\t\t}\n\n\t\t// Check student level (lowest priority)\n\t\tconst hasAccommodation =\n\t\t\tstudentProfile?.accommodations.includes(toolId) ?? false;\n\t\tif (hasAccommodation) {\n\t\t\t// Student has accommodation for this tool\n\t\t\treturn {\n\t\t\t\tenabled: true,\n\t\t\t\trequired: false,\n\t\t\t\tsource: \"student\",\n\t\t\t};\n\t\t}\n\n\t\t// Tool not configured at any level\n\t\treturn null;\n\t}\n\n\t/**\n\t * Resolve all tools from configuration\n\t *\n\t * @param input Configuration input\n\t * @returns Map of tool ID to resolved configuration\n\t */\n\tresolveAll(input: ToolConfigInput): Map<string, ResolvedToolConfig> {\n\t\tconst resolved = new Map<string, ResolvedToolConfig>();\n\n\t\t// Collect all tool IDs from all levels\n\t\tconst allToolIds = new Set<string>();\n\n\t\t// From item config\n\t\tif (input.itemConfig) {\n\t\t\tObject.keys(input.itemConfig).forEach((id) => allToolIds.add(id));\n\t\t}\n\n\t\t// From roster config\n\t\tif (input.rosterConfig) {\n\t\t\tObject.keys(input.rosterConfig).forEach((id) => allToolIds.add(id));\n\t\t}\n\n\t\t// From student accommodations\n\t\tif (input.studentProfile) {\n\t\t\tinput.studentProfile.accommodations.forEach((id) => allToolIds.add(id));\n\t\t}\n\n\t\t// Resolve each tool\n\t\tfor (const toolId of allToolIds) {\n\t\t\tconst config = this.resolveTool(\n\t\t\t\ttoolId,\n\t\t\t\tinput.itemConfig,\n\t\t\t\tinput.rosterConfig,\n\t\t\t\tinput.studentProfile,\n\t\t\t);\n\n\t\t\tif (config) {\n\t\t\t\tresolved.set(toolId, config);\n\t\t\t}\n\t\t}\n\n\t\treturn resolved;\n\t}\n\n\t/**\n\t * Check if a tool is enabled\n\t *\n\t * @param toolId Tool identifier\n\t * @param input Configuration input\n\t * @returns true if tool is enabled\n\t */\n\tisToolEnabled(toolId: string, input: ToolConfigInput): boolean {\n\t\tconst config = this.resolveTool(\n\t\t\ttoolId,\n\t\t\tinput.itemConfig,\n\t\t\tinput.rosterConfig,\n\t\t\tinput.studentProfile,\n\t\t);\n\t\treturn config?.enabled ?? false;\n\t}\n\n\t/**\n\t * Check if a tool is required\n\t *\n\t * @param toolId Tool identifier\n\t * @param input Configuration input\n\t * @returns true if tool is required\n\t */\n\tisToolRequired(toolId: string, input: ToolConfigInput): boolean {\n\t\tconst config = this.resolveTool(\n\t\t\ttoolId,\n\t\t\tinput.itemConfig,\n\t\t\tinput.rosterConfig,\n\t\t\tinput.studentProfile,\n\t\t);\n\t\treturn config?.required ?? false;\n\t}\n\n\t/**\n\t * Get tool type (e.g., 'scientific' for calculator)\n\t *\n\t * @param toolId Tool identifier\n\t * @param input Configuration input\n\t * @returns Tool type or null\n\t */\n\tgetToolType(toolId: string, input: ToolConfigInput): string | null {\n\t\tconst config = this.resolveTool(\n\t\t\ttoolId,\n\t\t\tinput.itemConfig,\n\t\t\tinput.rosterConfig,\n\t\t\tinput.studentProfile,\n\t\t);\n\t\treturn config?.type ?? null;\n\t}\n\n\t/**\n\t * Get tool settings\n\t *\n\t * @param toolId Tool identifier\n\t * @param input Configuration input\n\t * @returns Tool settings or null\n\t */\n\tgetToolSettings(toolId: string, input: ToolConfigInput): any | null {\n\t\tconst config = this.resolveTool(\n\t\t\ttoolId,\n\t\t\tinput.itemConfig,\n\t\t\tinput.rosterConfig,\n\t\t\tinput.studentProfile,\n\t\t);\n\t\treturn config?.settings ?? null;\n\t}\n\n\t/**\n\t * Get list of all enabled tools\n\t *\n\t * @param input Configuration input\n\t * @returns Array of enabled tool IDs\n\t */\n\tgetEnabledTools(input: ToolConfigInput): string[] {\n\t\tconst resolved = this.resolveAll(input);\n\t\treturn Array.from(resolved.entries())\n\t\t\t.filter(([_, config]) => config.enabled)\n\t\t\t.map(([toolId]) => toolId);\n\t}\n\n\t/**\n\t * Get list of required tools\n\t *\n\t * @param input Configuration input\n\t * @returns Array of required tool IDs\n\t */\n\tgetRequiredTools(input: ToolConfigInput): string[] {\n\t\tconst resolved = this.resolveAll(input);\n\t\treturn Array.from(resolved.entries())\n\t\t\t.filter(([_, config]) => config.required)\n\t\t\t.map(([toolId]) => toolId);\n\t}\n\n\t/**\n\t * Validate that all required tools are available\n\t *\n\t * @param availableTools Set of available tool IDs\n\t * @param input Configuration input\n\t * @returns Object with validation result\n\t */\n\tvalidate(\n\t\tavailableTools: Set<string>,\n\t\tinput: ToolConfigInput,\n\t): { valid: boolean; missingTools: string[] } {\n\t\tconst requiredTools = this.getRequiredTools(input);\n\t\tconst missingTools = requiredTools.filter(\n\t\t\t(toolId) => !availableTools.has(toolId),\n\t\t);\n\n\t\treturn {\n\t\t\tvalid: missingTools.length === 0,\n\t\t\tmissingTools,\n\t\t};\n\t}\n\n\t/**\n\t * Merge multiple roster configurations (for complex assessments)\n\t *\n\t * More restrictive settings win (blocked > allowed).\n\t *\n\t * @param configs Array of roster configurations\n\t * @returns Merged configuration\n\t */\n\tmergeRosterConfigs(...configs: RosterToolConfig[]): RosterToolConfig {\n\t\tconst merged: RosterToolConfig = {};\n\n\t\tfor (const config of configs) {\n\t\t\tfor (const [toolId, allowance] of Object.entries(config)) {\n\t\t\t\t// If any config blocks the tool, it's blocked\n\t\t\t\tif (allowance === \"0\") {\n\t\t\t\t\tmerged[toolId] = \"0\";\n\t\t\t\t} else if (!merged[toolId]) {\n\t\t\t\t\t// If not already set, use this allowance\n\t\t\t\t\tmerged[toolId] = allowance;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn merged;\n\t}\n\n\t/**\n\t * Merge multiple student accommodation profiles\n\t *\n\t * Union of all accommodations.\n\t *\n\t * @param profiles Array of student profiles\n\t * @returns Merged profile\n\t */\n\tmergeStudentProfiles(\n\t\t...profiles: StudentAccommodations[]\n\t): StudentAccommodations {\n\t\tconst allAccommodations = new Set<string>();\n\n\t\tfor (const profile of profiles) {\n\t\t\tprofile.accommodations.forEach((acc) => allAccommodations.add(acc));\n\t\t}\n\n\t\treturn {\n\t\t\taccommodations: Array.from(allAccommodations),\n\t\t};\n\t}\n}\n"]}
@@ -134,4 +134,3 @@ export declare class ToolCoordinator implements ToolCoordinatorApi {
134
134
  */
135
135
  getVisibleTools(): ToolState[];
136
136
  }
137
- //# sourceMappingURL=ToolCoordinator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolCoordinator.js","sourceRoot":"","sources":["../../src/services/ToolCoordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolCoordinator.js","sourceRoot":"","sources":["../../src/services/ToolCoordinator.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * ToolCoordinator\n *\n * Manages z-index layering and visibility for floating tools.\n * Prevents conflicts between calculator, ruler, protractor, etc.\n *\n * Features:\n * - Centralized z-index management with defined layers\n * - Tool visibility state tracking\n * - Bring-to-front on interaction\n * - Framework-agnostic (works with any DOM element)\n *\n * Part of PIE Assessment Toolkit.\n */\n\nimport { createLogger } from \"../utils/logger.js\";\nimport type { ToolCoordinatorApi, ToolState } from \"./interfaces.js\";\n\nconst log = createLogger(\"ToolCoordinator\");\n\n/**\n * Z-index layers for assessment components\n */\nexport enum ZIndexLayer {\n\tBASE = 0, // PIE content, player chrome (0-999)\n\tTOOL = 1000, // Non-modal tools (ruler, protractor) (1000-1999)\n\tMODAL = 2000, // Modal tools (calculator) (2000-2999)\n\tCONTROL = 3000, // Drag handles, resize controls (3000-3999)\n\tHIGHLIGHT = 4000, // TTS and annotation highlights (4000-4999)\n}\n\n/**\n * Tool registration info\n */\ninterface ToolRegistration {\n\tid: string;\n\tname: string;\n\telement: HTMLElement | null;\n\tlayer: ZIndexLayer;\n\tisVisible: boolean;\n\tbaseZIndex: number;\n\tmouseDownHandler?: (e: MouseEvent) => void;\n}\n\n/**\n * Configuration for ToolCoordinator\n * Currently empty but allows future extension without breaking changes\n */\nexport type ToolCoordinatorConfig = Record<string, never>;\n\nexport class ToolCoordinator implements ToolCoordinatorApi {\n\tprivate config: ToolCoordinatorConfig;\n\tprivate tools = new Map<string, ToolRegistration>();\n\tprivate layerCounters = new Map<ZIndexLayer, number>();\n\tprivate listeners = new Set<() => void>();\n\n\tconstructor(config: ToolCoordinatorConfig = {}) {\n\t\tthis.config = config;\n\t\t// Initialize layer counters\n\t\tthis.layerCounters.set(ZIndexLayer.BASE, 0);\n\t\tthis.layerCounters.set(ZIndexLayer.TOOL, 0);\n\t\tthis.layerCounters.set(ZIndexLayer.MODAL, 0);\n\t\tthis.layerCounters.set(ZIndexLayer.CONTROL, 0);\n\t\tthis.layerCounters.set(ZIndexLayer.HIGHLIGHT, 0);\n\t}\n\n\t/**\n\t * Subscribe to tool state changes\n\t * Returns unsubscribe function\n\t */\n\tsubscribe(listener: () => void): () => void {\n\t\tthis.listeners.add(listener);\n\t\treturn () => {\n\t\t\tthis.listeners.delete(listener);\n\t\t};\n\t}\n\n\t/**\n\t * Notify all listeners of state change\n\t */\n\tprivate notifyListeners(): void {\n\t\tthis.listeners.forEach((listener) => listener());\n\t}\n\n\t/**\n\t * Register a tool with the coordinator\n\t *\n\t * @param id Unique tool identifier\n\t * @param name Display name\n\t * @param element DOM element for the tool (optional)\n\t * @param layer Z-index layer (defaults to MODAL)\n\t */\n\tregisterTool(\n\t\tid: string,\n\t\tname: string,\n\t\telement?: HTMLElement,\n\t\tlayer: ZIndexLayer = ZIndexLayer.MODAL,\n\t): void {\n\t\tlog(\"registerTool called:\", { id, name, hasElement: !!element, layer });\n\n\t\tif (this.tools.has(id)) {\n\t\t\tlog(`Tool ${id} is already registered`);\n\t\t\treturn;\n\t\t}\n\n\t\t// If no element provided, create a placeholder registration\n\t\tif (!element) {\n\t\t\tthis.tools.set(id, {\n\t\t\t\tid,\n\t\t\t\tname,\n\t\t\t\telement: null,\n\t\t\t\tlayer,\n\t\t\t\tisVisible: false,\n\t\t\t\tbaseZIndex: layer,\n\t\t\t});\n\t\t\tlog(\"Tool registered without element:\", id);\n\t\t\treturn;\n\t\t}\n\n\t\t// Calculate base z-index for this layer\n\t\tconst baseZIndex = layer + this.getNextLayerOffset(layer);\n\n\t\t// Apply z-index\n\t\telement.style.zIndex = String(baseZIndex);\n\n\t\t// Create and store event handler to enable proper cleanup\n\t\tconst mouseDownHandler = () => this.bringToFront(element);\n\t\telement.addEventListener(\"mousedown\", mouseDownHandler);\n\n\t\t// Register tool with handler reference\n\t\tthis.tools.set(id, {\n\t\t\tid,\n\t\t\tname,\n\t\t\telement,\n\t\t\tlayer,\n\t\t\tisVisible: false,\n\t\t\tbaseZIndex,\n\t\t\tmouseDownHandler,\n\t\t});\n\n\t\tlog(\"Tool registered with element:\", id);\n\t}\n\n\t/**\n\t * Unregister a tool\n\t *\n\t * @param id Tool identifier\n\t */\n\tunregisterTool(id: string): void {\n\t\tconst tool = this.tools.get(id);\n\t\tif (!tool) return;\n\n\t\t// Remove event listeners using stored handler reference\n\t\tif (tool.element && tool.mouseDownHandler) {\n\t\t\ttool.element.removeEventListener(\"mousedown\", tool.mouseDownHandler);\n\t\t}\n\n\t\tthis.tools.delete(id);\n\t}\n\n\t/**\n\t * Show a tool\n\t *\n\t * @param id Tool identifier\n\t */\n\tshowTool(id: string): void {\n\t\tconst tool = this.tools.get(id);\n\t\tif (!tool) {\n\t\t\tlog(`Tool ${id} not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (tool.element) {\n\t\t\ttool.element.style.display = \"\";\n\t\t\tthis.bringToFront(tool.element);\n\t\t}\n\t\ttool.isVisible = true;\n\t\tthis.notifyListeners();\n\t}\n\n\t/**\n\t * Hide a tool\n\t *\n\t * @param id Tool identifier\n\t */\n\thideTool(id: string): void {\n\t\tconst tool = this.tools.get(id);\n\t\tif (!tool) {\n\t\t\tlog(`Tool ${id} not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (tool.element) {\n\t\t\ttool.element.style.display = \"none\";\n\t\t}\n\t\ttool.isVisible = false;\n\t\tthis.notifyListeners();\n\t}\n\n\t/**\n\t * Toggle tool visibility\n\t *\n\t * @param id Tool identifier\n\t */\n\ttoggleTool(id: string): void {\n\t\tlog(\"toggleTool called for:\", id);\n\t\tconst tool = this.tools.get(id);\n\t\tif (!tool) {\n\t\t\tlog(\n\t\t\t\t`Tool ${id} not found. Registered tools:`,\n\t\t\t\tArray.from(this.tools.keys()),\n\t\t\t);\n\t\t\treturn;\n\t\t}\n\n\t\tlog(\"Tool found, current visibility:\", tool.isVisible);\n\t\tif (tool.isVisible) {\n\t\t\tthis.hideTool(id);\n\t\t} else {\n\t\t\tthis.showTool(id);\n\t\t}\n\t}\n\n\t/**\n\t * Check if tool is visible\n\t *\n\t * @param id Tool identifier\n\t * @returns true if tool is visible\n\t */\n\tisToolVisible(id: string): boolean {\n\t\tconst tool = this.tools.get(id);\n\t\treturn tool?.isVisible ?? false;\n\t}\n\n\t/**\n\t * Bring element to front of its layer\n\t *\n\t * @param element DOM element to bring forward\n\t */\n\tbringToFront(element: HTMLElement): void {\n\t\t// Find tool registration\n\t\tconst tool = Array.from(this.tools.values()).find(\n\t\t\t(t) => t.element === element,\n\t\t);\n\t\tif (!tool) return;\n\n\t\t// Calculate new z-index (highest in layer + 1)\n\t\tconst maxZIndexInLayer = this.getMaxZIndexInLayer(tool.layer);\n\t\tconst newZIndex = Math.max(maxZIndexInLayer + 1, tool.layer + 1);\n\n\t\t// Update z-index\n\t\telement.style.zIndex = String(newZIndex);\n\t\ttool.baseZIndex = newZIndex;\n\t}\n\n\t/**\n\t * Get all registered tool IDs\n\t */\n\tgetRegisteredTools(): string[] {\n\t\treturn Array.from(this.tools.keys());\n\t}\n\n\t/**\n\t * Get tool element by ID\n\t */\n\tgetToolElement(id: string): HTMLElement | null {\n\t\treturn this.tools.get(id)?.element ?? null;\n\t}\n\n\t/**\n\t * Get next offset within a layer\n\t */\n\tprivate getNextLayerOffset(layer: ZIndexLayer): number {\n\t\tconst current = this.layerCounters.get(layer) ?? 0;\n\t\tthis.layerCounters.set(layer, current + 1);\n\t\treturn current;\n\t}\n\n\t/**\n\t * Get maximum z-index currently in use in a layer\n\t */\n\tprivate getMaxZIndexInLayer(layer: ZIndexLayer): number {\n\t\tlet max = layer;\n\n\t\tfor (const tool of this.tools.values()) {\n\t\t\tif (tool.layer === layer) {\n\t\t\t\tmax = Math.max(max, tool.baseZIndex);\n\t\t\t}\n\t\t}\n\n\t\treturn max;\n\t}\n\n\t/**\n\t * Reset all tools to their base z-indices\n\t */\n\tresetZIndices(): void {\n\t\tfor (const tool of this.tools.values()) {\n\t\t\tif (tool.element) {\n\t\t\t\ttool.element.style.zIndex = String(tool.baseZIndex);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Update tool element reference\n\t *\n\t * @param id Tool identifier\n\t * @param element New DOM element\n\t */\n\tupdateToolElement(id: string, element: HTMLElement): void {\n\t\tconst tool = this.tools.get(id);\n\t\tif (!tool) {\n\t\t\tlog(`Tool ${id} not found`);\n\t\t\treturn;\n\t\t}\n\n\t\t// Remove old event listener using stored handler reference\n\t\tif (tool.element && tool.mouseDownHandler) {\n\t\t\ttool.element.removeEventListener(\"mousedown\", tool.mouseDownHandler);\n\t\t}\n\n\t\t// Create new handler and add listener\n\t\tconst mouseDownHandler = () => this.bringToFront(element);\n\t\telement.addEventListener(\"mousedown\", mouseDownHandler);\n\n\t\t// Update element and handler reference\n\t\ttool.element = element;\n\t\ttool.mouseDownHandler = mouseDownHandler;\n\n\t\t// Apply z-index to new element\n\t\telement.style.zIndex = String(tool.baseZIndex);\n\t\tif (tool.isVisible) {\n\t\t\telement.style.display = \"\";\n\t\t} else {\n\t\t\telement.style.display = \"none\";\n\t\t}\n\t}\n\n\t/**\n\t * Hide all tools\n\t */\n\thideAllTools(): void {\n\t\tfor (const id of this.tools.keys()) {\n\t\t\tthis.hideTool(id);\n\t\t}\n\t\tthis.notifyListeners();\n\t}\n\n\t/**\n\t * Get tool state (interface method)\n\t *\n\t * @param id Tool identifier\n\t * @returns Tool state or undefined\n\t */\n\tgetToolState(id: string): ToolState | undefined {\n\t\tconst tool = this.tools.get(id);\n\t\tif (!tool) return undefined;\n\n\t\treturn {\n\t\t\tid: tool.id,\n\t\t\tname: tool.name,\n\t\t\tisVisible: tool.isVisible,\n\t\t\telement: tool.element ?? null,\n\t\t\tlayer: tool.layer,\n\t\t};\n\t}\n\n\t/**\n\t * Get all visible tools (interface method)\n\t *\n\t * @returns Array of visible tool states\n\t */\n\tgetVisibleTools(): ToolState[] {\n\t\treturn Array.from(this.tools.values())\n\t\t\t.filter((tool) => tool.isVisible)\n\t\t\t.map((tool) => ({\n\t\t\t\tid: tool.id,\n\t\t\t\tname: tool.name,\n\t\t\t\tisVisible: tool.isVisible,\n\t\t\t\telement: tool.element ?? null,\n\t\t\t\tlayer: tool.layer,\n\t\t\t}));\n\t}\n}\n"]}
@@ -336,4 +336,3 @@ export declare class ToolRegistry {
336
336
  */
337
337
  renderForToolbar(toolId: string, context: ToolContext, toolbarContext: ToolbarContext): ToolToolbarRenderResult | null;
338
338
  }
339
- //# sourceMappingURL=ToolRegistry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/services/ToolRegistry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolRegistry.js","sourceRoot":"","sources":["../../src/services/ToolRegistry.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Tool Registry\n *\n * Central registry for all assessment tools. Manages tool metadata, visibility logic,\n * and button/instance creation. Supports dynamic registration and override by integrators.\n */\n\nimport type { ToolContext, ToolLevel } from \"./tool-context.js\";\nimport type { ToolComponentOverrides } from \"../tools/tool-tag-map.js\";\nimport type {\n\tElementToolStateStoreApi,\n\tToolCoordinatorApi,\n\tToolkitCoordinatorApi,\n\tTtsServiceApi,\n} from \"./interfaces.js\";\nimport type { ToolProviderApi } from \"./tool-providers/ToolProviderApi.js\";\nimport type { ToolProviderConfig as ToolRuntimeConfig } from \"./tools-config-normalizer.js\";\nimport type { ToolConfigDiagnostic } from \"./tool-config-validation.js\";\nimport { normalizeToolAlias } from \"./tools-config-normalizer.js\";\n\nexport type ToolModuleLoader = () => Promise<unknown>;\n\nexport interface ToolToolbarButtonDefinition {\n\ttoolId: string;\n\tlabel: string;\n\ticon: string;\n\tariaLabel: string;\n\ttooltip?: string;\n\tonClick: () => void;\n\tclassName?: string;\n\tdisabled?: boolean;\n\tactive?: boolean;\n}\n\nexport interface ToolbarContext {\n\tscope: {\n\t\tlevel: ToolLevel;\n\t\tscopeId: string;\n\t\tassessmentId?: string;\n\t\tsectionId?: string;\n\t\titemId?: string;\n\t\tcanonicalItemId?: string;\n\t\tcontentKind?: string;\n\t};\n\titemId: string;\n\tcatalogId: string;\n\tlanguage: string;\n\tui?: {\n\t\tsize?: string;\n\t};\n\tgetScopeElement?: () => HTMLElement | null;\n\tgetGlobalElementId?: () => string | null;\n\ttoolCoordinator: ToolCoordinatorApi | null;\n\ttoolkitCoordinator: ToolkitCoordinatorApi | null;\n\tttsService: TtsServiceApi | null;\n\telementToolStateStore: ElementToolStateStoreApi | null;\n\ttoggleTool: (toolId: string) => void;\n\tisToolVisible: (toolId: string) => boolean;\n\tsubscribeVisibility: ((listener: () => void) => () => void) | null;\n\tcomponentOverrides?: ToolComponentOverrides;\n\tgetResolvedToolContext?: (toolId: string) => ResolvedToolContext | null;\n\tgetToolRenderParams?: (toolId: string) => Record<string, unknown> | null;\n}\n\nexport interface ToolContextResolverContext {\n\ttoolId: string;\n\tcontext: ToolContext;\n\ttoolbarContext: ToolbarContext;\n}\n\nexport interface ToolContextResolverResult {\n\tvisible?: boolean;\n\tparams?: Record<string, unknown>;\n\treason?: string;\n}\n\nexport type ToolContextResolver = (\n\tcontext: ToolContextResolverContext,\n) => ToolContextResolverResult | null | undefined;\n\nexport type ToolContextResolverMap = Record<\n\tstring,\n\tToolContextResolver | null | undefined\n>;\n\nexport interface ResolvedToolContext {\n\ttoolId: string;\n\tvisible: boolean;\n\tparams: Record<string, unknown>;\n\treason?: string;\n}\n\nexport interface ToolRenderElement {\n\telement: HTMLElement | null;\n\tmount: \"before-buttons\" | \"after-buttons\" | \"controls-row\";\n\tlayoutHints?: {\n\t\tcontrolsRow?: {\n\t\t\treserveSpace?: boolean;\n\t\t\tshowWhenToolActive?: boolean;\n\t\t};\n\t};\n\tshell?: ToolWindowShellConfig;\n}\n\nexport interface ToolWindowShellAction {\n\tid: string;\n\tlabel: string;\n\tariaLabel?: string;\n\ticonSvg?: string;\n\tonClick: () => void;\n}\n\nexport interface ToolWindowShellConfig {\n\ttitle?: string;\n\tdraggable?: boolean;\n\tresizable?: boolean;\n\tcloseable?: boolean;\n\tinitialWidth?: number;\n\tinitialHeight?: number;\n\tminWidth?: number;\n\tminHeight?: number;\n\tmaxWidth?: number;\n\tmaxHeight?: number;\n\tactions?: ToolWindowShellAction[];\n}\n\nexport interface HostedToolContext {\n\ttoolId: string;\n\ttoolbarContext: ToolbarContext;\n\tshellConfig: ToolWindowShellConfig;\n}\n\nexport interface HostedToolSize {\n\twidth: number;\n\theight: number;\n}\n\nexport interface ToolProviderDescriptor {\n\tgetProviderId?: (config: ToolRuntimeConfig | undefined) => string;\n\tcreateProvider: (config: ToolRuntimeConfig | undefined) => ToolProviderApi;\n\tgetInitConfig?: (\n\t\tconfig: ToolRuntimeConfig | undefined,\n\t) => Record<string, unknown>;\n\tsanitizeConfig?: (config: ToolRuntimeConfig) => ToolRuntimeConfig;\n\tvalidateConfig?: (config: ToolRuntimeConfig) => ToolConfigDiagnostic[];\n\tgetAuthFetcher?: (\n\t\tconfig: ToolRuntimeConfig | undefined,\n\t) => (() => Promise<Record<string, unknown>>) | undefined;\n\tlazy?: boolean;\n}\n\nexport interface ToolToolbarRenderResult {\n\ttoolId: string;\n\telements?: ToolRenderElement[];\n\tbutton?: ToolToolbarButtonDefinition | null;\n\tsync?: () => void;\n\tsubscribeActive?: (callback: (active: boolean) => void) => () => void;\n}\n\nexport type ToolActivation = \"toolbar-toggle\" | \"selection-gateway\";\nexport type ToolSingletonScope = \"section\";\n\n/**\n * Tool registration interface\n */\nexport interface ToolRegistration {\n\t/** Unique tool identifier (e.g., 'calculator', 'textToSpeech') */\n\ttoolId: string;\n\n\t/** Human-readable name */\n\tname: string;\n\n\t/** Description of what the tool does */\n\tdescription: string;\n\n\t/** Icon identifier or SVG string */\n\ticon: string | ((context: ToolContext) => string);\n\n\t/** Which levels this tool supports */\n\tsupportedLevels: ToolLevel[];\n\n\t/**\n\t * Activation model for this tool.\n\t * - toolbar-toggle: rendered as a toolbar button (default)\n\t * - selection-gateway: rendered as a singleton selection-driven gateway\n\t */\n\tactivation?: ToolActivation;\n\n\t/**\n\t * Optional singleton scope for activation models that mount exactly one instance.\n\t */\n\tsingletonScope?: ToolSingletonScope;\n\n\t/**\n\t * PNP support IDs that enable this tool (optional)\n\t * Used by PNPToolResolver to determine if tool is allowed\n\t * Example: ['calculator', 'basic-calculator', 'scientific-calculator']\n\t */\n\tpnpSupportIds?: string[];\n\t/**\n\t * Optional provider registration metadata.\n\t * When present, ToolkitCoordinator can register provider(s) generically\n\t * without hardcoded tool-specific branches.\n\t */\n\tprovider?: ToolProviderDescriptor;\n\t/**\n\t * Optional shell-host lifecycle hooks for hosted (floating) tools.\n\t */\n\tonHostedMount?: (\n\t\telement: HTMLElement,\n\t\tcontext: HostedToolContext,\n\t) => void | Promise<void>;\n\tonHostedResize?: (\n\t\tsize: HostedToolSize,\n\t\telement: HTMLElement,\n\t\tcontext: HostedToolContext,\n\t) => void | Promise<void>;\n\tonHostedUnmount?: (\n\t\telement: HTMLElement,\n\t\tcontext: HostedToolContext,\n\t) => void | Promise<void>;\n\n\t/**\n\t * Pass 2: Tool decides if it's relevant in this context\n\t * Called ONLY if orchestrator has already allowed the tool (Pass 1)\n\t *\n\t * @param context - Rich context about where tool is being evaluated\n\t * @returns true if tool should be visible, false to hide\n\t */\n\tisVisibleInContext(context: ToolContext): boolean;\n\n\t/** Required toolbar-first render contract. */\n\trenderToolbar(\n\t\tcontext: ToolContext,\n\t\ttoolbarContext: ToolbarContext,\n\t): ToolToolbarRenderResult | null;\n}\n\nconst VALID_TOOL_LEVELS: ToolLevel[] = [\n\t\"assessment\",\n\t\"section\",\n\t\"item\",\n\t\"passage\",\n\t\"rubric\",\n\t\"element\",\n];\n\nfunction assertNonEmptyString(\n\tvalue: unknown,\n\tfieldName: string,\n): asserts value is string {\n\tif (typeof value !== \"string\" || value.trim().length === 0) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration: \"${fieldName}\" must be a non-empty string.`,\n\t\t);\n\t}\n}\n\n// Defence-in-depth: reject obvious XSS payloads in tool-registered icon\n// markup at registration time. Runtime rendering still runs each icon\n// through DOMPurify (see `ToolIcon.svelte`), but surfacing the problem\n// early produces a clearer error for tool authors than \"the icon silently\n// disappeared after sanitization\".\nconst SCRIPTABLE_ICON_PATTERNS: Array<{ pattern: RegExp; reason: string }> = [\n\t{ pattern: /<script\\b/i, reason: \"contains a <script> tag\" },\n\t{\n\t\tpattern: /\\son[a-z]+\\s*=/i,\n\t\treason: \"contains an inline event handler (on*=) attribute\",\n\t},\n\t{ pattern: /javascript:/i, reason: \"contains a javascript: URL\" },\n\t{\n\t\tpattern: /<foreignObject\\b/i,\n\t\treason: \"contains a <foreignObject> element\",\n\t},\n];\n\nfunction assertIconStringIsSafe(\n\ttoolId: string,\n\ticon: string,\n\tfieldName: string,\n): void {\n\tconst trimmed = icon.trimStart();\n\tconst looksLikeSvg = trimmed.toLowerCase().startsWith(\"<svg\");\n\tconst looksLikeUrl = /^https?:/i.test(trimmed);\n\tconst looksLikeDataUrl = /^data:/i.test(trimmed);\n\tif (looksLikeDataUrl) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${toolId}\": \"${fieldName}\" may not be a data: URL.`,\n\t\t);\n\t}\n\tif (!looksLikeSvg && !looksLikeUrl) return;\n\tfor (const { pattern, reason } of SCRIPTABLE_ICON_PATTERNS) {\n\t\tif (pattern.test(icon)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Invalid tool registration \"${toolId}\": \"${fieldName}\" ${reason}. Inline SVG icons must not include scriptable content.`,\n\t\t\t);\n\t\t}\n\t}\n}\n\nfunction assertToolRegistrationShape(registration: ToolRegistration): void {\n\tassertNonEmptyString(registration.toolId, \"toolId\");\n\tassertNonEmptyString(registration.name, \"name\");\n\tassertNonEmptyString(registration.description, \"description\");\n\n\tif (\n\t\ttypeof registration.icon !== \"string\" &&\n\t\ttypeof registration.icon !== \"function\"\n\t) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": \"icon\" must be a string or function.`,\n\t\t);\n\t}\n\tif (typeof registration.icon === \"string\") {\n\t\tassertIconStringIsSafe(registration.toolId, registration.icon, \"icon\");\n\t}\n\tif (\n\t\t!Array.isArray(registration.supportedLevels) ||\n\t\tregistration.supportedLevels.length === 0\n\t) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": \"supportedLevels\" must be a non-empty array.`,\n\t\t);\n\t}\n\tconst invalidLevel = registration.supportedLevels.find(\n\t\t(level) => !VALID_TOOL_LEVELS.includes(level),\n\t);\n\tif (invalidLevel) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": unsupported level \"${invalidLevel}\".`,\n\t\t);\n\t}\n\tif (\n\t\tregistration.activation !== undefined &&\n\t\tregistration.activation !== \"toolbar-toggle\" &&\n\t\tregistration.activation !== \"selection-gateway\"\n\t) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": unsupported activation \"${String(registration.activation)}\".`,\n\t\t);\n\t}\n\tif (\n\t\tregistration.singletonScope !== undefined &&\n\t\tregistration.singletonScope !== \"section\"\n\t) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": unsupported singletonScope \"${String(registration.singletonScope)}\".`,\n\t\t);\n\t}\n\tif (\n\t\tregistration.activation === \"selection-gateway\" &&\n\t\tregistration.singletonScope !== \"section\"\n\t) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": selection-gateway tools must declare singletonScope \"section\".`,\n\t\t);\n\t}\n\tif (\n\t\tregistration.pnpSupportIds !== undefined &&\n\t\t(!Array.isArray(registration.pnpSupportIds) ||\n\t\t\tregistration.pnpSupportIds.some(\n\t\t\t\t(pnpId) => typeof pnpId !== \"string\" || pnpId.trim().length === 0,\n\t\t\t))\n\t) {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": \"pnpSupportIds\" must be an array of non-empty strings.`,\n\t\t);\n\t}\n\tif (typeof registration.isVisibleInContext !== \"function\") {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": \"isVisibleInContext\" must be a function.`,\n\t\t);\n\t}\n\tif (typeof registration.renderToolbar !== \"function\") {\n\t\tthrow new Error(\n\t\t\t`Invalid tool registration \"${registration.toolId}\": \"renderToolbar\" must be a function.`,\n\t\t);\n\t}\n}\n\n/**\n * Tool Registry\n *\n * Manages tool registrations and provides query/lookup functionality\n */\nexport class ToolRegistry {\n\tprivate tools = new Map<string, ToolRegistration>();\n\tprivate pnpIndex = new Map<string, Set<string>>(); // pnpSupportId → Set<toolId>\n\tprivate componentOverrides: ToolComponentOverrides = {};\n\tprivate moduleLoaders = new Map<string, ToolModuleLoader>();\n\tprivate loadedToolModules = new Set<string>();\n\tprivate moduleLoadPromises = new Map<string, Promise<void>>();\n\n\t/**\n\t * Normalize a single tool alias to canonical toolId.\n\t */\n\tnormalizeToolId(toolId: string): string {\n\t\treturn normalizeToolAlias(toolId);\n\t}\n\n\t/**\n\t * Normalize a list of tool aliases to canonical toolIds.\n\t */\n\tnormalizeToolIds(toolIds: string[]): string[] {\n\t\treturn toolIds.map((toolId) => this.normalizeToolId(toolId));\n\t}\n\n\t/**\n\t * Register a tool\n\t *\n\t * @param registration - Tool registration\n\t * @throws Error if toolId is already registered\n\t */\n\tregister(registration: ToolRegistration): void {\n\t\tassertToolRegistrationShape(registration);\n\t\tif (this.tools.has(registration.toolId)) {\n\t\t\tthrow new Error(`Tool '${registration.toolId}' is already registered`);\n\t\t}\n\n\t\tthis.tools.set(registration.toolId, registration);\n\n\t\t// Index PNP support IDs\n\t\tif (registration.pnpSupportIds) {\n\t\t\tfor (const pnpId of registration.pnpSupportIds) {\n\t\t\t\tif (!this.pnpIndex.has(pnpId)) {\n\t\t\t\t\tthis.pnpIndex.set(pnpId, new Set());\n\t\t\t\t}\n\t\t\t\tthis.pnpIndex.get(pnpId)!.add(registration.toolId);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Override an existing tool registration\n\t *\n\t * @param registration - New tool registration (must have existing toolId)\n\t */\n\toverride(registration: ToolRegistration): void {\n\t\tassertToolRegistrationShape(registration);\n\t\tif (!this.tools.has(registration.toolId)) {\n\t\t\tthrow new Error(\n\t\t\t\t`Cannot override non-existent tool '${registration.toolId}'`,\n\t\t\t);\n\t\t}\n\n\t\t// Remove old PNP index entries\n\t\tconst oldReg = this.tools.get(registration.toolId)!;\n\t\tif (oldReg.pnpSupportIds) {\n\t\t\tfor (const pnpId of oldReg.pnpSupportIds) {\n\t\t\t\tthis.pnpIndex.get(pnpId)?.delete(registration.toolId);\n\t\t\t}\n\t\t}\n\n\t\t// Add new registration\n\t\tthis.tools.set(registration.toolId, registration);\n\n\t\t// Re-index PNP support IDs\n\t\tif (registration.pnpSupportIds) {\n\t\t\tfor (const pnpId of registration.pnpSupportIds) {\n\t\t\t\tif (!this.pnpIndex.has(pnpId)) {\n\t\t\t\t\tthis.pnpIndex.set(pnpId, new Set());\n\t\t\t\t}\n\t\t\t\tthis.pnpIndex.get(pnpId)!.add(registration.toolId);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Unregister a tool\n\t *\n\t * @param toolId - Tool ID to remove\n\t */\n\tunregister(toolId: string): void {\n\t\tconst reg = this.tools.get(toolId);\n\t\tif (!reg) return;\n\n\t\t// Remove PNP index entries\n\t\tif (reg.pnpSupportIds) {\n\t\t\tfor (const pnpId of reg.pnpSupportIds) {\n\t\t\t\tthis.pnpIndex.get(pnpId)?.delete(toolId);\n\t\t\t}\n\t\t}\n\n\t\tthis.tools.delete(toolId);\n\t}\n\n\t/**\n\t * Get a tool registration by ID\n\t *\n\t * @param toolId - Tool ID\n\t * @returns Tool registration or undefined\n\t */\n\tget(toolId: string): ToolRegistration | undefined {\n\t\treturn this.tools.get(toolId);\n\t}\n\n\t/**\n\t * Check if a tool is registered\n\t *\n\t * @param toolId - Tool ID\n\t * @returns true if registered\n\t */\n\thas(toolId: string): boolean {\n\t\treturn this.tools.has(toolId);\n\t}\n\n\t/**\n\t * Get all registered tool IDs\n\t *\n\t * @returns Array of tool IDs\n\t */\n\tgetAllToolIds(): string[] {\n\t\treturn Array.from(this.tools.keys());\n\t}\n\n\t/**\n\t * Get all tool registrations\n\t *\n\t * @returns Array of tool registrations\n\t */\n\tgetAllTools(): ToolRegistration[] {\n\t\treturn Array.from(this.tools.values());\n\t}\n\n\t/**\n\t * Find tool IDs that support a given PNP support ID\n\t *\n\t * @param pnpSupportId - PNP support ID (e.g., 'calculator')\n\t * @returns Set of tool IDs that support this PNP ID\n\t */\n\tgetToolsByPNPSupport(pnpSupportId: string): Set<string> {\n\t\treturn this.pnpIndex.get(pnpSupportId) || new Set();\n\t}\n\n\t/**\n\t * Get tools that support a specific level\n\t *\n\t * @param level - Tool level (assessment, section, item, passage, element)\n\t * @returns Array of tool registrations that support this level\n\t */\n\tgetToolsByLevel(level: ToolLevel): ToolRegistration[] {\n\t\treturn this.getAllTools().filter((tool) =>\n\t\t\ttool.supportedLevels.includes(level),\n\t\t);\n\t}\n\n\t/**\n\t * Resolve tool activation with backward-compatible defaults.\n\t */\n\tgetToolActivation(toolId: string): ToolActivation {\n\t\treturn this.get(toolId)?.activation || \"toolbar-toggle\";\n\t}\n\n\t/**\n\t * Resolve singleton scope for a tool when present.\n\t */\n\tgetToolSingletonScope(toolId: string): ToolSingletonScope | null {\n\t\treturn this.get(toolId)?.singletonScope || null;\n\t}\n\n\t/**\n\t * Filter tool IDs by activation type.\n\t */\n\tfilterToolIdsByActivation(\n\t\ttoolIds: string[],\n\t\tactivation: ToolActivation,\n\t): string[] {\n\t\treturn toolIds.filter(\n\t\t\t(toolId) => this.getToolActivation(toolId) === activation,\n\t\t);\n\t}\n\n\t/**\n\t * Filter tools by visibility in a given context\n\t *\n\t * Pass 2 of the two-pass model: Given a list of allowed tool IDs (from Pass 1),\n\t * ask each tool if it's relevant in this context.\n\t *\n\t * @param allowedToolIds - Tool IDs that passed Pass 1 (orchestrator approval)\n\t * @param context - Context to evaluate\n\t * @returns Array of visible tool registrations\n\t */\n\tfilterVisibleInContext(\n\t\tallowedToolIds: string[],\n\t\tcontext: ToolContext,\n\t): ToolRegistration[] {\n\t\tconst visible: ToolRegistration[] = [];\n\n\t\tfor (const toolId of allowedToolIds) {\n\t\t\tconst tool = this.get(toolId);\n\t\t\tif (!tool) {\n\t\t\t\tconsole.warn(`Tool '${toolId}' is allowed but not registered`);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check if tool supports this level\n\t\t\tif (!tool.supportedLevels.includes(context.level)) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Pass 2: Ask tool if it's relevant\n\t\t\ttry {\n\t\t\t\tif (tool.isVisibleInContext(context)) {\n\t\t\t\t\tvisible.push(tool);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(\n\t\t\t\t\t`Error evaluating visibility for tool '${toolId}':`,\n\t\t\t\t\terror,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\treturn visible;\n\t}\n\n\t/**\n\t * Get tool metadata for building UIs\n\t * Useful for building PNP configuration interfaces\n\t *\n\t * @returns Array of tool metadata (id, name, description, pnpSupportIds)\n\t */\n\tgetToolMetadata(): Array<{\n\t\ttoolId: string;\n\t\tname: string;\n\t\tdescription: string;\n\t\tpnpSupportIds: string[];\n\t\tsupportedLevels: ToolLevel[];\n\t\tactivation: ToolActivation;\n\t\tsingletonScope: ToolSingletonScope | null;\n\t}> {\n\t\treturn this.getAllTools().map((tool) => ({\n\t\t\ttoolId: tool.toolId,\n\t\t\tname: tool.name,\n\t\t\tdescription: tool.description,\n\t\t\tpnpSupportIds: tool.pnpSupportIds || [],\n\t\t\tsupportedLevels: tool.supportedLevels,\n\t\t\tactivation: tool.activation || \"toolbar-toggle\",\n\t\t\tsingletonScope: tool.singletonScope || null,\n\t\t}));\n\t}\n\n\t/**\n\t * Generate PNP support IDs from enabled tools\n\t * Useful for creating PNP profiles\n\t *\n\t * @param enabledToolIds - Tool IDs to enable\n\t * @returns Array of unique PNP support IDs\n\t */\n\tgeneratePNPSupportsFromTools(enabledToolIds: string[]): string[] {\n\t\tconst pnpSupports = new Set<string>();\n\n\t\tfor (const toolId of enabledToolIds) {\n\t\t\tconst tool = this.get(toolId);\n\t\t\tif (tool?.pnpSupportIds) {\n\t\t\t\tfor (const pnpId of tool.pnpSupportIds) {\n\t\t\t\t\tpnpSupports.add(pnpId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Array.from(pnpSupports);\n\t}\n\n\t/**\n\t * Clear all registrations (useful for testing)\n\t */\n\tclear(): void {\n\t\tthis.tools.clear();\n\t\tthis.pnpIndex.clear();\n\t}\n\n\t/**\n\t * Configure global component overrides used by tool instance creation.\n\t */\n\tsetComponentOverrides(overrides: ToolComponentOverrides): void {\n\t\tthis.componentOverrides = overrides;\n\t}\n\n\t/**\n\t * Register lazy module loaders by toolId.\n\t * Toolbars call ensureToolModuleLoaded(toolId) before instance creation.\n\t */\n\tsetToolModuleLoaders(\n\t\tloaders: Partial<Record<string, ToolModuleLoader>>,\n\t): void {\n\t\tfor (const [toolId, loader] of Object.entries(loaders)) {\n\t\t\tif (!loader) continue;\n\t\t\tassertNonEmptyString(toolId, \"tool module loader id\");\n\t\t\tif (typeof loader !== \"function\") {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Invalid tool module loader for \"${toolId}\": expected a function.`,\n\t\t\t\t);\n\t\t\t}\n\t\t\tthis.moduleLoaders.set(toolId, loader);\n\t\t}\n\t}\n\n\t/**\n\t * Ensure tool module side-effects are loaded exactly once.\n\t * Safe to call repeatedly; concurrent callers share the same promise.\n\t */\n\tasync ensureToolModuleLoaded(toolId: string): Promise<void> {\n\t\tif (this.loadedToolModules.has(toolId)) return;\n\n\t\tconst existingPromise = this.moduleLoadPromises.get(toolId);\n\t\tif (existingPromise) {\n\t\t\tawait existingPromise;\n\t\t\treturn;\n\t\t}\n\n\t\tconst loader = this.moduleLoaders.get(toolId);\n\t\tif (!loader) return;\n\n\t\tconst loadPromise = (async () => {\n\t\t\tawait loader();\n\t\t\tthis.loadedToolModules.add(toolId);\n\t\t})();\n\n\t\tthis.moduleLoadPromises.set(toolId, loadPromise);\n\t\ttry {\n\t\t\tawait loadPromise;\n\t\t} finally {\n\t\t\tthis.moduleLoadPromises.delete(toolId);\n\t\t}\n\t}\n\n\t/**\n\t * Ensure a set of tool modules are loaded.\n\t */\n\tasync ensureToolModulesLoaded(toolIds: string[]): Promise<void> {\n\t\tawait Promise.all(\n\t\t\ttoolIds.map((toolId) => this.ensureToolModuleLoaded(toolId)),\n\t\t);\n\t}\n\n\t/**\n\t * Whether a tool module has already been loaded.\n\t */\n\tisToolModuleLoaded(toolId: string): boolean {\n\t\treturn this.loadedToolModules.has(toolId);\n\t}\n\n\t/**\n\t * Render a tool for toolbar use with component overrides attached.\n\t */\n\trenderForToolbar(\n\t\ttoolId: string,\n\t\tcontext: ToolContext,\n\t\ttoolbarContext: ToolbarContext,\n\t): ToolToolbarRenderResult | null {\n\t\tconst tool = this.get(toolId);\n\t\tif (!tool) {\n\t\t\tthrow new Error(`Tool '${toolId}' is not registered`);\n\t\t}\n\n\t\tconst mergedContext: ToolbarContext = {\n\t\t\t...toolbarContext,\n\t\t\tcomponentOverrides: {\n\t\t\t\t...(this.componentOverrides || {}),\n\t\t\t\t...(toolbarContext.componentOverrides || {}),\n\t\t\t},\n\t\t};\n\n\t\treturn tool.renderToolbar(context, mergedContext);\n\t}\n}\n"]}
@@ -816,4 +816,3 @@ export declare class ToolkitCoordinator {
816
816
  private _applyToolConfigChange;
817
817
  private _reconfigureTTSProvider;
818
818
  }
819
- //# sourceMappingURL=ToolkitCoordinator.d.ts.map