@pie-players/pie-assessment-toolkit 0.2.5 → 0.2.9

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 +200 -67
  2. package/dist/attempt/TestSession.d.ts +23 -21
  3. package/dist/attempt/TestSession.d.ts.map +1 -1
  4. package/dist/attempt/TestSession.js +17 -15
  5. package/dist/attempt/TestSession.js.map +1 -1
  6. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +50 -0
  7. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +1 -0
  8. package/dist/attempt/adapters/activity-to-test-attempt-session.js +135 -0
  9. package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -0
  10. package/dist/components/ItemToolBar.custom-element.js +628 -0
  11. package/dist/components/PieAssessmentToolkit.custom-element.js +670 -0
  12. package/dist/components/item-toolbar-element.d.ts +3 -0
  13. package/dist/components/item-toolbar-element.d.ts.map +1 -0
  14. package/dist/components/item-toolbar-element.js +2 -0
  15. package/dist/components/item-toolbar-element.js.map +1 -0
  16. package/dist/components/pie-assessment-toolkit-element.d.ts +3 -0
  17. package/dist/components/pie-assessment-toolkit-element.d.ts.map +1 -0
  18. package/dist/components/pie-assessment-toolkit-element.js +2 -0
  19. package/dist/components/pie-assessment-toolkit-element.js.map +1 -0
  20. package/dist/context/assessment-toolkit-context.d.ts +52 -0
  21. package/dist/context/assessment-toolkit-context.d.ts.map +1 -0
  22. package/dist/context/assessment-toolkit-context.js +6 -0
  23. package/dist/context/assessment-toolkit-context.js.map +1 -0
  24. package/dist/context/runtime-context-consumer.d.ts +14 -0
  25. package/dist/context/runtime-context-consumer.d.ts.map +1 -0
  26. package/dist/context/runtime-context-consumer.js +52 -0
  27. package/dist/context/runtime-context-consumer.js.map +1 -0
  28. package/dist/index.d.ts +53 -42
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +34 -32
  31. package/dist/index.js.map +1 -1
  32. package/dist/runtime/RuntimeRegistry.d.ts +13 -0
  33. package/dist/runtime/RuntimeRegistry.d.ts.map +1 -0
  34. package/dist/runtime/RuntimeRegistry.js +50 -0
  35. package/dist/runtime/RuntimeRegistry.js.map +1 -0
  36. package/dist/runtime/SectionRuntimeEngine.d.ts +45 -0
  37. package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -0
  38. package/dist/runtime/SectionRuntimeEngine.js +81 -0
  39. package/dist/runtime/SectionRuntimeEngine.js.map +1 -0
  40. package/dist/runtime/registration-events.d.ts +19 -0
  41. package/dist/runtime/registration-events.d.ts.map +1 -0
  42. package/dist/runtime/registration-events.js +4 -0
  43. package/dist/runtime/registration-events.js.map +1 -0
  44. package/dist/runtime/runtime-event-guards.d.ts +3 -0
  45. package/dist/runtime/runtime-event-guards.d.ts.map +1 -0
  46. package/dist/runtime/runtime-event-guards.js +9 -0
  47. package/dist/runtime/runtime-event-guards.js.map +1 -0
  48. package/dist/runtime/tool-host-contract.d.ts +30 -0
  49. package/dist/runtime/tool-host-contract.d.ts.map +1 -0
  50. package/dist/runtime/tool-host-contract.js +48 -0
  51. package/dist/runtime/tool-host-contract.js.map +1 -0
  52. package/dist/services/HighlightCoordinator.d.ts +2 -2
  53. package/dist/services/HighlightCoordinator.d.ts.map +1 -1
  54. package/dist/services/HighlightCoordinator.js +1 -1
  55. package/dist/services/HighlightCoordinator.js.map +1 -1
  56. package/dist/services/I18nService.js +1 -1
  57. package/dist/services/I18nService.js.map +1 -1
  58. package/dist/services/PNPToolResolver.d.ts +2 -2
  59. package/dist/services/PNPToolResolver.d.ts.map +1 -1
  60. package/dist/services/PNPToolResolver.js +1 -1
  61. package/dist/services/PNPToolResolver.js.map +1 -1
  62. package/dist/services/TTSService.d.ts +5 -3
  63. package/dist/services/TTSService.d.ts.map +1 -1
  64. package/dist/services/TTSService.js +13 -12
  65. package/dist/services/TTSService.js.map +1 -1
  66. package/dist/services/ThemeProvider.d.ts +2 -1
  67. package/dist/services/ThemeProvider.d.ts.map +1 -1
  68. package/dist/services/ThemeProvider.js +82 -46
  69. package/dist/services/ThemeProvider.js.map +1 -1
  70. package/dist/services/ToolConfigResolver.d.ts +1 -1
  71. package/dist/services/ToolConfigResolver.js +1 -1
  72. package/dist/services/ToolCoordinator.d.ts +2 -2
  73. package/dist/services/ToolCoordinator.d.ts.map +1 -1
  74. package/dist/services/ToolCoordinator.js +1 -1
  75. package/dist/services/ToolCoordinator.js.map +1 -1
  76. package/dist/services/ToolRegistry.d.ts +66 -69
  77. package/dist/services/ToolRegistry.d.ts.map +1 -1
  78. package/dist/services/ToolRegistry.js +72 -22
  79. package/dist/services/ToolRegistry.js.map +1 -1
  80. package/dist/services/ToolkitCoordinator.d.ts +112 -14
  81. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  82. package/dist/services/ToolkitCoordinator.js +508 -77
  83. package/dist/services/ToolkitCoordinator.js.map +1 -1
  84. package/dist/services/createDefaultToolRegistry.d.ts +15 -10
  85. package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
  86. package/dist/services/createDefaultToolRegistry.js +13 -17
  87. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  88. package/dist/services/defaultPersonalNeedsProfile.d.ts +4 -0
  89. package/dist/services/defaultPersonalNeedsProfile.d.ts.map +1 -0
  90. package/dist/services/defaultPersonalNeedsProfile.js +25 -0
  91. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -0
  92. package/dist/services/interfaces.d.ts +67 -7
  93. package/dist/services/interfaces.d.ts.map +1 -1
  94. package/dist/services/interfaces.js.map +1 -1
  95. package/dist/services/pnp-standard-features.d.ts +3 -4
  96. package/dist/services/pnp-standard-features.d.ts.map +1 -1
  97. package/dist/services/pnp-standard-features.js +0 -3
  98. package/dist/services/pnp-standard-features.js.map +1 -1
  99. package/dist/services/section-controller-types.d.ts +32 -0
  100. package/dist/services/section-controller-types.d.ts.map +1 -0
  101. package/dist/services/section-controller-types.js +2 -0
  102. package/dist/services/section-controller-types.js.map +1 -0
  103. package/dist/services/tool-context.d.ts +4 -4
  104. package/dist/services/tool-context.d.ts.map +1 -1
  105. package/dist/services/tool-context.js +106 -17
  106. package/dist/services/tool-context.js.map +1 -1
  107. package/dist/services/tool-instance-id.d.ts +17 -0
  108. package/dist/services/tool-instance-id.d.ts.map +1 -0
  109. package/dist/services/tool-instance-id.js +61 -0
  110. package/dist/services/tool-instance-id.js.map +1 -0
  111. package/dist/services/tool-providers/DesmosToolProvider.d.ts +1 -1
  112. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -1
  113. package/dist/services/tool-providers/IToolProvider.d.ts +2 -3
  114. package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -1
  115. package/dist/services/tool-providers/IToolProvider.js +1 -2
  116. package/dist/services/tool-providers/IToolProvider.js.map +1 -1
  117. package/dist/services/tool-providers/MathJsToolProvider.d.ts +25 -0
  118. package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +1 -0
  119. package/dist/services/tool-providers/MathJsToolProvider.js +53 -0
  120. package/dist/services/tool-providers/MathJsToolProvider.js.map +1 -0
  121. package/dist/services/tool-providers/TIToolProvider.d.ts +1 -1
  122. package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -1
  123. package/dist/services/tool-providers/TIToolProvider.js +1 -1
  124. package/dist/services/tool-providers/TIToolProvider.js.map +1 -1
  125. package/dist/services/tool-providers/TTSToolProvider.d.ts +1 -1
  126. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -1
  127. package/dist/services/tool-providers/TTSToolProvider.js +1 -1
  128. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -1
  129. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +1 -1
  130. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -1
  131. package/dist/services/tool-providers/index.d.ts +11 -9
  132. package/dist/services/tool-providers/index.d.ts.map +1 -1
  133. package/dist/services/tool-providers/index.js +5 -4
  134. package/dist/services/tool-providers/index.js.map +1 -1
  135. package/dist/services/tools-config-normalizer.d.ts +26 -0
  136. package/dist/services/tools-config-normalizer.d.ts.map +1 -0
  137. package/dist/services/tools-config-normalizer.js +63 -0
  138. package/dist/services/tools-config-normalizer.js.map +1 -0
  139. package/dist/services/tts/provider-interface.d.ts +1 -1
  140. package/dist/services/tts/provider-interface.d.ts.map +1 -1
  141. package/dist/tools/calculators/desmos-provider.js +1 -1
  142. package/dist/tools/calculators/desmos-provider.js.map +1 -1
  143. package/dist/tools/calculators/mathjs-provider.js +1 -1
  144. package/dist/tools/calculators/mathjs-provider.js.map +1 -1
  145. package/dist/tools/calculators/ti-provider.d.ts.map +1 -1
  146. package/dist/tools/calculators/ti-provider.js +127 -4
  147. package/dist/tools/calculators/ti-provider.js.map +1 -1
  148. package/dist/tools/client.d.ts +9 -8
  149. package/dist/tools/client.d.ts.map +1 -1
  150. package/dist/tools/client.js +9 -8
  151. package/dist/tools/client.js.map +1 -1
  152. package/dist/tools/default-tool-module-loaders.d.ts +9 -0
  153. package/dist/tools/default-tool-module-loaders.d.ts.map +1 -0
  154. package/dist/tools/default-tool-module-loaders.js +17 -0
  155. package/dist/tools/default-tool-module-loaders.js.map +1 -0
  156. package/dist/tools/index.d.ts +4 -3
  157. package/dist/tools/index.d.ts.map +1 -1
  158. package/dist/tools/index.js +4 -3
  159. package/dist/tools/index.js.map +1 -1
  160. package/dist/tools/library-loader.d.ts +2 -2
  161. package/dist/tools/library-loader.d.ts.map +1 -1
  162. package/dist/tools/library-loader.js +7 -2
  163. package/dist/tools/library-loader.js.map +1 -1
  164. package/dist/tools/registrations/accessibility-tools.d.ts +2 -10
  165. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  166. package/dist/tools/registrations/accessibility-tools.js +97 -115
  167. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  168. package/dist/tools/registrations/calculator.d.ts +3 -3
  169. package/dist/tools/registrations/calculator.d.ts.map +1 -1
  170. package/dist/tools/registrations/calculator.js +35 -56
  171. package/dist/tools/registrations/calculator.js.map +1 -1
  172. package/dist/tools/registrations/interaction-tools.d.ts +1 -1
  173. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  174. package/dist/tools/registrations/interaction-tools.js +79 -54
  175. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  176. package/dist/tools/registrations/measurement-tools.d.ts +1 -1
  177. package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
  178. package/dist/tools/registrations/measurement-tools.js +65 -40
  179. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  180. package/dist/tools/registrations/subject-specific-tools.d.ts +1 -1
  181. package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
  182. package/dist/tools/registrations/subject-specific-tools.js +65 -40
  183. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  184. package/dist/tools/registrations/tts.d.ts +2 -2
  185. package/dist/tools/registrations/tts.d.ts.map +1 -1
  186. package/dist/tools/registrations/tts.js +28 -42
  187. package/dist/tools/registrations/tts.js.map +1 -1
  188. package/dist/tools/response-discovery.d.ts +13 -15
  189. package/dist/tools/response-discovery.d.ts.map +1 -1
  190. package/dist/tools/response-discovery.js +23 -80
  191. package/dist/tools/response-discovery.js.map +1 -1
  192. package/dist/tools/tool-coordinator.d.ts +1 -1
  193. package/dist/tools/tool-coordinator.d.ts.map +1 -1
  194. package/dist/tools/tool-tag-map.d.ts +4 -4
  195. package/dist/tools/tool-tag-map.d.ts.map +1 -1
  196. package/dist/tools/tool-tag-map.js +2 -3
  197. package/dist/tools/tool-tag-map.js.map +1 -1
  198. package/dist/tools/types.d.ts +3 -1
  199. package/dist/tools/types.d.ts.map +1 -1
  200. package/dist/tools/variant-resolver.d.ts +1 -1
  201. package/dist/tools/variant-resolver.d.ts.map +1 -1
  202. package/package.json +25 -28
  203. package/src/README.md +16 -32
  204. package/src/components/ItemToolBar.svelte +489 -0
  205. package/src/components/PNPProvenanceViewer.svelte +14 -4
  206. package/src/components/PieAssessmentToolkit.svelte +517 -0
  207. package/src/components/ToolButton.svelte +11 -11
  208. package/src/components/ToolButtonGroup.svelte +27 -11
  209. package/src/tools/README.md +6 -5
  210. package/src/tools/calculators/README.md +4 -4
  211. package/dist/player/AssessmentPlayer.d.ts +0 -397
  212. package/dist/player/AssessmentPlayer.d.ts.map +0 -1
  213. package/dist/player/AssessmentPlayer.js +0 -974
  214. package/dist/player/AssessmentPlayer.js.map +0 -1
  215. package/dist/player/index.d.ts +0 -17
  216. package/dist/player/index.d.ts.map +0 -1
  217. package/dist/player/index.js +0 -15
  218. package/dist/player/index.js.map +0 -1
  219. package/dist/player/navigation-types.d.ts +0 -63
  220. package/dist/player/navigation-types.d.ts.map +0 -1
  221. package/dist/player/navigation-types.js +0 -7
  222. package/dist/player/navigation-types.js.map +0 -1
  223. package/dist/player/qti-navigation.d.ts +0 -29
  224. package/dist/player/qti-navigation.d.ts.map +0 -1
  225. package/dist/player/qti-navigation.js +0 -160
  226. package/dist/player/qti-navigation.js.map +0 -1
  227. package/dist/reference-layout/index.d.ts +0 -19
  228. package/dist/reference-layout/index.d.ts.map +0 -1
  229. package/dist/reference-layout/index.js +0 -20
  230. package/dist/reference-layout/index.js.map +0 -1
  231. package/dist/services/AnnotationToolbarConfig.d.ts +0 -134
  232. package/dist/services/AnnotationToolbarConfig.d.ts.map +0 -1
  233. package/dist/services/AnnotationToolbarConfig.js +0 -100
  234. package/dist/services/AnnotationToolbarConfig.js.map +0 -1
  235. package/dist/services/AssessmentAuthoringService.d.ts +0 -60
  236. package/dist/services/AssessmentAuthoringService.d.ts.map +0 -1
  237. package/dist/services/AssessmentAuthoringService.js +0 -183
  238. package/dist/services/AssessmentAuthoringService.js.map +0 -1
  239. package/dist/services/PNPMapper.d.ts +0 -81
  240. package/dist/services/PNPMapper.d.ts.map +0 -1
  241. package/dist/services/PNPMapper.js +0 -108
  242. package/dist/services/PNPMapper.js.map +0 -1
  243. package/src/components/PNPProfileTester.example.svelte +0 -188
  244. package/src/components/PNPProfileTester.svelte +0 -397
  245. package/src/components/QuestionToolBar.svelte +0 -483
  246. package/src/player/AssessmentLayout.svelte +0 -68
  247. package/src/player/README.md +0 -154
  248. package/src/reference-layout/README.md +0 -135
  249. package/src/reference-layout/ReferenceLayout.svelte +0 -201
  250. package/src/reference-layout/components/AssessmentContent.svelte +0 -259
  251. package/src/reference-layout/components/AssessmentFooter.svelte +0 -89
  252. package/src/reference-layout/components/AssessmentHeader.svelte +0 -250
  253. package/src/reference-layout/components/AssessmentNavigation.svelte +0 -134
  254. package/src/reference-layout/components/AssessmentToolsBar.svelte +0 -176
  255. package/src/reference-layout/components/ItemPanel.svelte +0 -200
  256. package/src/reference-layout/components/NotesPanel.svelte +0 -179
  257. package/src/reference-layout/components/PassagePanel.svelte +0 -76
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Tool system exports
3
3
  *
4
- * For custom elements and client-side code, use '$lib/assessment-toolkit/tools/client' instead.
4
+ * For custom elements and client-side code, use
5
+ * '@pie-players/pie-assessment-toolkit/tools/client' instead.
5
6
  */
6
- export * from "./client";
7
- export { VariantResolverImpl, variantResolver } from "./variant-resolver";
7
+ export * from "./client.js";
8
+ export { VariantResolverImpl, variantResolver } from "./variant-resolver.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,cAAc,UAAU,CAAC;AAEzB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,cAAc,aAAa,CAAC;AAE5B,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  /**
2
2
  * Tool system exports
3
3
  *
4
- * For custom elements and client-side code, use '$lib/assessment-toolkit/tools/client' instead.
4
+ * For custom elements and client-side code, use
5
+ * '@pie-players/pie-assessment-toolkit/tools/client' instead.
5
6
  */
6
7
  // Re-export everything from client.ts (client-safe code)
7
- export * from "./client";
8
+ export * from "./client.js";
8
9
  // Variant resolver
9
- export { VariantResolverImpl, variantResolver } from "./variant-resolver";
10
+ export { VariantResolverImpl, variantResolver } from "./variant-resolver.js";
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,yDAAyD;AACzD,cAAc,UAAU,CAAC;AACzB,mBAAmB;AACnB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tools/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yDAAyD;AACzD,cAAc,aAAa,CAAC;AAC5B,mBAAmB;AACnB,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * Based on architectural enhancements from renaissance-tool-analyses.md
6
6
  * Supports both static and dynamic library loading
7
7
  */
8
- import type { LibraryConfig, LibraryLoader, LoaderStats } from "./types";
8
+ import type { LibraryConfig, LibraryLoader, LoaderStats } from "./types.js";
9
9
  /**
10
10
  * Implementation of LibraryLoader service
11
11
  */
@@ -21,7 +21,7 @@ export declare class LibraryLoaderImpl implements LibraryLoader {
21
21
  /**
22
22
  * Load a stylesheet
23
23
  */
24
- loadStylesheet(url: string): Promise<void>;
24
+ loadStylesheet(url: string, targetRoot?: Document | ShadowRoot): Promise<void>;
25
25
  /**
26
26
  * Check if a library is already loaded
27
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"library-loader.d.ts","sourceRoot":"","sources":["../../src/tools/library-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEzE;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACtD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,KAAK,CAOX;IAEF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDvD;;OAEG;IACG,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BhD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/B;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;YACW,oBAAoB;IA4ClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkD1B;;OAEG;IACH,OAAO,CAAC,MAAM;CAGd;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,mBAA0B,CAAC;AAQrD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0E1D,CAAC"}
1
+ {"version":3,"file":"library-loader.d.ts","sourceRoot":"","sources":["../../src/tools/library-loader.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5E;;GAEG;AACH,qBAAa,iBAAkB,YAAW,aAAa;IACtD,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,KAAK,CAOX;IAEF;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAoDvD;;OAEG;IACG,cAAc,CACnB,GAAG,EAAE,MAAM,EACX,UAAU,CAAC,EAAE,QAAQ,GAAG,UAAU,GAChC,OAAO,CAAC,IAAI,CAAC;IAgChB;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC;;OAEG;IACG,OAAO,CAAC,SAAS,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxD;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAgB/B;;OAEG;IACH,QAAQ,IAAI,WAAW;IAIvB;;OAEG;YACW,oBAAoB;IA4ClC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkD1B;;OAEG;IACH,OAAO,CAAC,MAAM;CAGd;AAED;;GAEG;AACH,eAAO,MAAM,aAAa,mBAA0B,CAAC;AAQrD;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CA0E1D,CAAC"}
@@ -69,14 +69,15 @@ export class LibraryLoaderImpl {
69
69
  /**
70
70
  * Load a stylesheet
71
71
  */
72
- async loadStylesheet(url) {
72
+ async loadStylesheet(url, targetRoot) {
73
73
  // SSR guard: Stylesheet loading should NEVER run on the server
74
74
  if (typeof window === "undefined" || typeof document === "undefined") {
75
75
  throw new Error("Stylesheet loader can only be used in the browser");
76
76
  }
77
77
  return new Promise((resolve, reject) => {
78
+ const root = targetRoot ?? document;
78
79
  // Check if already loaded
79
- const existing = document.querySelector(`link[href="${url}"]`);
80
+ const existing = root.querySelector(`link[href="${url}"]`);
80
81
  if (existing) {
81
82
  resolve();
82
83
  return;
@@ -86,6 +87,10 @@ export class LibraryLoaderImpl {
86
87
  link.href = url;
87
88
  link.onload = () => resolve();
88
89
  link.onerror = () => reject(new Error(`Failed to load stylesheet: ${url}`));
90
+ if (root instanceof ShadowRoot) {
91
+ root.appendChild(link);
92
+ return;
93
+ }
89
94
  document.head.appendChild(link);
90
95
  });
91
96
  }
@@ -1 +1 @@
1
- {"version":3,"file":"library-loader.js","sourceRoot":"","sources":["../../src/tools/library-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"library-loader.js","sourceRoot":"","sources":["../../src/tools/library-loader.ts"],"names":[],"mappings":"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"}
@@ -2,23 +2,15 @@
2
2
  * Accessibility Tools Registrations
3
3
  *
4
4
  * Registers tools for visual accessibility and reading support:
5
- * - Magnifier (zoom lens)
6
5
  * - Line Reader (reading guide)
7
6
  * - Color Scheme (theme/contrast)
8
7
  * - Annotation Toolbar (text highlighting)
9
8
  *
10
9
  * Maps to QTI 3.0 standard access features from:
11
- * - visual category: magnification, highContrastDisplay, colorContrast
10
+ * - visual category: highContrastDisplay, colorContrast
12
11
  * - reading category: readingMask, readingGuide, highlighting
13
12
  */
14
- import type { ToolRegistration } from "../../services/ToolRegistry";
15
- /**
16
- * Magnifier tool registration
17
- *
18
- * Provides a draggable zoom lens for visual accessibility.
19
- * Global tool that works across entire assessment.
20
- */
21
- export declare const magnifierToolRegistration: ToolRegistration;
13
+ import type { ToolRegistration } from "../../services/ToolRegistry.js";
22
14
  /**
23
15
  * Line Reader tool registration
24
16
  *
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/accessibility-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,6BAA6B,CAAC;AAQrC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,EAAE,gBAuEvC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAsExC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,gBAwEzC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,gBAsE3C,CAAC"}
1
+ {"version":3,"file":"accessibility-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/accessibility-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AASxC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBA8ExC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,EAAE,gBA+EzC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,gBA8E3C,CAAC"}
@@ -2,71 +2,17 @@
2
2
  * Accessibility Tools Registrations
3
3
  *
4
4
  * Registers tools for visual accessibility and reading support:
5
- * - Magnifier (zoom lens)
6
5
  * - Line Reader (reading guide)
7
6
  * - Color Scheme (theme/contrast)
8
7
  * - Annotation Toolbar (text highlighting)
9
8
  *
10
9
  * Maps to QTI 3.0 standard access features from:
11
- * - visual category: magnification, highContrastDisplay, colorContrast
10
+ * - visual category: highContrastDisplay, colorContrast
12
11
  * - reading category: readingMask, readingGuide, highlighting
13
12
  */
14
- import { hasReadableText } from "../../services/tool-context";
15
- import { createToolElement, } from "../tool-tag-map";
16
- /**
17
- * Magnifier tool registration
18
- *
19
- * Provides a draggable zoom lens for visual accessibility.
20
- * Global tool that works across entire assessment.
21
- */
22
- export const magnifierToolRegistration = {
23
- toolId: "magnifier",
24
- name: "Magnifier",
25
- description: "Zoom lens for visual accessibility",
26
- icon: "magnifying-glass",
27
- // Magnifier is assessment-wide (global)
28
- supportedLevels: ["assessment", "section"],
29
- // PNP support IDs
30
- // Maps to QTI 3.0 standard features: magnification, screenMagnifier, zoomable
31
- pnpSupportIds: [
32
- "magnification", // QTI 3.0 standard (visual.magnification)
33
- "screenMagnifier", // QTI 3.0 standard (visual.screenMagnifier)
34
- "zoomable", // QTI 3.0 standard (visual.zoomable)
35
- "magnifier", // Common variant
36
- "zoom", // Common variant
37
- "visualZoom", // Common variant
38
- ],
39
- /**
40
- * Pass 2: Magnifier is always relevant when allowed
41
- */
42
- isVisibleInContext(context) {
43
- return true; // Always show if allowed by orchestrator
44
- },
45
- createButton(context, options) {
46
- return {
47
- toolId: this.toolId,
48
- label: this.name,
49
- icon: typeof this.icon === "function" ? this.icon(context) : this.icon,
50
- disabled: options.disabled || false,
51
- ariaLabel: options.ariaLabel || "Magnifier - Zoom in on content",
52
- tooltip: options.tooltip || "Magnifier",
53
- onClick: options.onClick || (() => { }),
54
- className: options.className,
55
- };
56
- },
57
- createToolInstance(context, options) {
58
- const componentOverrides = options.config ?? {};
59
- const magnifier = createToolElement(this.toolId, context, options, componentOverrides);
60
- magnifier.visible = true;
61
- if (options.config?.toolkitCoordinator) {
62
- magnifier.toolkitCoordinator = options.config.toolkitCoordinator;
63
- }
64
- if (options.onClose) {
65
- magnifier.addEventListener("close", options.onClose);
66
- }
67
- return magnifier;
68
- },
69
- };
13
+ import { hasReadableText } from "../../services/tool-context.js";
14
+ import { createScopedToolId } from "../../services/tool-instance-id.js";
15
+ import { createToolElement, } from "../tool-tag-map.js";
70
16
  /**
71
17
  * Line Reader tool registration
72
18
  *
@@ -95,29 +41,41 @@ export const lineReaderToolRegistration = {
95
41
  isVisibleInContext(context) {
96
42
  return hasReadableText(context);
97
43
  },
98
- createButton(context, options) {
99
- return {
44
+ renderToolbar(context, toolbarContext) {
45
+ const fullToolId = createScopedToolId(this.toolId, "item", toolbarContext.itemId);
46
+ const button = {
100
47
  toolId: this.toolId,
101
48
  label: this.name,
102
49
  icon: typeof this.icon === "function" ? this.icon(context) : this.icon,
103
- disabled: options.disabled || false,
104
- ariaLabel: options.ariaLabel || "Line reader - Reading guide",
105
- tooltip: options.tooltip || "Line Reader",
106
- onClick: options.onClick || (() => { }),
107
- className: options.className,
50
+ disabled: false,
51
+ ariaLabel: "Line reader - Reading guide",
52
+ tooltip: "Line Reader",
53
+ onClick: () => toolbarContext.toggleTool(this.toolId),
54
+ active: toolbarContext.isToolVisible(fullToolId),
55
+ };
56
+ const componentOverrides = toolbarContext.componentOverrides ?? {};
57
+ const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
58
+ overlay.setAttribute("tool-id", fullToolId);
59
+ return {
60
+ toolId: this.toolId,
61
+ button,
62
+ overlayElement: overlay,
63
+ sync: () => {
64
+ const active = toolbarContext.isToolVisible(fullToolId);
65
+ button.active = active;
66
+ overlay.visible = active;
67
+ if (toolbarContext.toolkitCoordinator) {
68
+ overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
69
+ }
70
+ },
71
+ subscribeActive: (callback) => {
72
+ if (!toolbarContext.subscribeVisibility)
73
+ return () => { };
74
+ return toolbarContext.subscribeVisibility(() => {
75
+ callback(toolbarContext.isToolVisible(fullToolId));
76
+ });
77
+ },
108
78
  };
109
- },
110
- createToolInstance(context, options) {
111
- const componentOverrides = options.config ?? {};
112
- const lineReader = createToolElement(this.toolId, context, options, componentOverrides);
113
- lineReader.visible = true;
114
- if (options.config?.toolkitCoordinator) {
115
- lineReader.toolkitCoordinator = options.config.toolkitCoordinator;
116
- }
117
- if (options.onClose) {
118
- lineReader.addEventListener("close", options.onClose);
119
- }
120
- return lineReader;
121
79
  },
122
80
  };
123
81
  /**
@@ -149,29 +107,41 @@ export const colorSchemeToolRegistration = {
149
107
  isVisibleInContext(context) {
150
108
  return true; // Always show if allowed by orchestrator
151
109
  },
152
- createButton(context, options) {
153
- return {
110
+ renderToolbar(context, toolbarContext) {
111
+ const fullToolId = createScopedToolId(this.toolId, "item", toolbarContext.itemId);
112
+ const button = {
154
113
  toolId: this.toolId,
155
114
  label: this.name,
156
115
  icon: typeof this.icon === "function" ? this.icon(context) : this.icon,
157
- disabled: options.disabled || false,
158
- ariaLabel: options.ariaLabel || "Color scheme - Change colors and contrast",
159
- tooltip: options.tooltip || "Color Scheme",
160
- onClick: options.onClick || (() => { }),
161
- className: options.className,
116
+ disabled: false,
117
+ ariaLabel: "Color scheme - Change colors and contrast",
118
+ tooltip: "Color Scheme",
119
+ onClick: () => toolbarContext.toggleTool(this.toolId),
120
+ active: toolbarContext.isToolVisible(fullToolId),
121
+ };
122
+ const componentOverrides = toolbarContext.componentOverrides ?? {};
123
+ const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
124
+ overlay.setAttribute("tool-id", fullToolId);
125
+ return {
126
+ toolId: this.toolId,
127
+ button,
128
+ overlayElement: overlay,
129
+ sync: () => {
130
+ const active = toolbarContext.isToolVisible(fullToolId);
131
+ button.active = active;
132
+ overlay.visible = active;
133
+ if (toolbarContext.toolkitCoordinator) {
134
+ overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
135
+ }
136
+ },
137
+ subscribeActive: (callback) => {
138
+ if (!toolbarContext.subscribeVisibility)
139
+ return () => { };
140
+ return toolbarContext.subscribeVisibility(() => {
141
+ callback(toolbarContext.isToolVisible(fullToolId));
142
+ });
143
+ },
162
144
  };
163
- },
164
- createToolInstance(context, options) {
165
- const componentOverrides = options.config ?? {};
166
- const colorScheme = createToolElement(this.toolId, context, options, componentOverrides);
167
- colorScheme.visible = true;
168
- if (options.config?.toolkitCoordinator) {
169
- colorScheme.toolkitCoordinator = options.config.toolkitCoordinator;
170
- }
171
- if (options.onClose) {
172
- colorScheme.addEventListener("close", options.onClose);
173
- }
174
- return colorScheme;
175
145
  },
176
146
  };
177
147
  /**
@@ -202,29 +172,41 @@ export const annotationToolbarRegistration = {
202
172
  isVisibleInContext(context) {
203
173
  return hasReadableText(context);
204
174
  },
205
- createButton(context, options) {
206
- return {
175
+ renderToolbar(context, toolbarContext) {
176
+ const fullToolId = createScopedToolId(this.toolId, "item", toolbarContext.itemId);
177
+ const button = {
207
178
  toolId: this.toolId,
208
179
  label: this.name,
209
180
  icon: typeof this.icon === "function" ? this.icon(context) : this.icon,
210
- disabled: options.disabled || false,
211
- ariaLabel: options.ariaLabel || "Annotation toolbar - Highlight text",
212
- tooltip: options.tooltip || "Highlight",
213
- onClick: options.onClick || (() => { }),
214
- className: options.className,
181
+ disabled: false,
182
+ ariaLabel: "Annotation toolbar - Highlight text",
183
+ tooltip: "Highlight",
184
+ onClick: () => toolbarContext.toggleTool(this.toolId),
185
+ active: toolbarContext.isToolVisible(fullToolId),
186
+ };
187
+ const componentOverrides = toolbarContext.componentOverrides ?? {};
188
+ const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
189
+ overlay.setAttribute("tool-id", fullToolId);
190
+ return {
191
+ toolId: this.toolId,
192
+ button,
193
+ overlayElement: overlay,
194
+ sync: () => {
195
+ const active = toolbarContext.isToolVisible(fullToolId);
196
+ button.active = active;
197
+ overlay.visible = active;
198
+ if (toolbarContext.toolkitCoordinator) {
199
+ overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
200
+ }
201
+ },
202
+ subscribeActive: (callback) => {
203
+ if (!toolbarContext.subscribeVisibility)
204
+ return () => { };
205
+ return toolbarContext.subscribeVisibility(() => {
206
+ callback(toolbarContext.isToolVisible(fullToolId));
207
+ });
208
+ },
215
209
  };
216
- },
217
- createToolInstance(context, options) {
218
- const componentOverrides = options.config ?? {};
219
- const toolbar = createToolElement(this.toolId, context, options, componentOverrides);
220
- toolbar.visible = true;
221
- if (options.config?.toolkitCoordinator) {
222
- toolbar.toolkitCoordinator = options.config.toolkitCoordinator;
223
- }
224
- if (options.onClose) {
225
- toolbar.addEventListener("close", options.onClose);
226
- }
227
- return toolbar;
228
210
  },
229
211
  };
230
212
  //# sourceMappingURL=accessibility-tools.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"accessibility-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/accessibility-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accessibility-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/accessibility-tools.ts"],"names":[],"mappings":"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"}
@@ -8,14 +8,14 @@
8
8
  * - calculator (cognitive support)
9
9
  * - graphingCalculator (assessment tool)
10
10
  */
11
- import type { ToolRegistration } from "../../services/ToolRegistry";
11
+ import type { ToolRegistration } from "../../services/ToolRegistry.js";
12
12
  /**
13
13
  * Calculator tool registration
14
14
  *
15
15
  * Supports:
16
16
  * - Basic, scientific, and graphing calculators via Desmos
17
- * - Context-aware visibility (shows when math content is detected)
18
- * - All levels except assessment (section, item, passage, rubric, element)
17
+ * - Context-aware visibility (shows only when math content is detected)
18
+ * - Item level only
19
19
  */
20
20
  export declare const calculatorToolRegistration: ToolRegistration;
21
21
  //# sourceMappingURL=calculator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,6BAA6B,CAAC;AAQrC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBA4GxC,CAAC"}
1
+ {"version":3,"file":"calculator.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAGhB,MAAM,gCAAgC,CAAC;AAMxC;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBA6ExC,CAAC"}
@@ -8,23 +8,24 @@
8
8
  * - calculator (cognitive support)
9
9
  * - graphingCalculator (assessment tool)
10
10
  */
11
- import { hasMathContent } from "../../services/tool-context";
12
- import { createToolElement, } from "../tool-tag-map";
11
+ import { hasMathContent } from "../../services/tool-context.js";
12
+ import { createScopedToolId } from "../../services/tool-instance-id.js";
13
+ import { createToolElement } from "../tool-tag-map.js";
13
14
  /**
14
15
  * Calculator tool registration
15
16
  *
16
17
  * Supports:
17
18
  * - Basic, scientific, and graphing calculators via Desmos
18
- * - Context-aware visibility (shows when math content is detected)
19
- * - All levels except assessment (section, item, passage, rubric, element)
19
+ * - Context-aware visibility (shows only when math content is detected)
20
+ * - Item level only
20
21
  */
21
22
  export const calculatorToolRegistration = {
22
23
  toolId: "calculator",
23
24
  name: "Calculator",
24
25
  description: "Multi-type calculator (basic, scientific, graphing)",
25
26
  icon: "calculator",
26
- // Calculator can appear at all levels except assessment
27
- supportedLevels: ["section", "item", "passage", "rubric", "element"],
27
+ // Calculator is item-level in this player architecture.
28
+ supportedLevels: ["item"],
28
29
  // PNP support IDs that enable this tool
29
30
  // Maps to QTI 3.0 standard features: calculator, graphingCalculator
30
31
  pnpSupportIds: [
@@ -36,63 +37,41 @@ export const calculatorToolRegistration = {
36
37
  /**
37
38
  * Pass 2: Determine if calculator is relevant in this context
38
39
  *
39
- * Calculator is relevant when:
40
- * - Context contains mathematical content (MathML, LaTeX, arithmetic)
41
- * - Section/item level (always show - student might need for any problem)
40
+ * Calculator is relevant when context contains mathematical content
41
+ * (MathML, LaTeX, arithmetic markers).
42
42
  */
43
43
  isVisibleInContext(context) {
44
- // At section/item level, always show (student might need it)
45
- if (context.level === "section" || context.level === "item") {
46
- return true;
47
- }
48
- // At passage/rubric/element level, show if math content detected
44
+ // Show only when math is present in item content.
49
45
  return hasMathContent(context);
50
46
  },
51
- /**
52
- * Create calculator button for toolbar
53
- */
54
- createButton(context, options) {
55
- const icon = typeof this.icon === "function" ? this.icon(context) : this.icon;
47
+ renderToolbar(context, toolbarContext) {
48
+ const fullToolId = createScopedToolId(this.toolId, "item", toolbarContext.itemId);
49
+ const componentOverrides = toolbarContext.componentOverrides;
50
+ const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
51
+ overlay.setAttribute("tool-id", fullToolId);
52
+ const inline = document.createElement("pie-tool-calculator-inline");
53
+ inline.setAttribute("tool-id", createScopedToolId(this.toolId, "item", toolbarContext.itemId, "inline"));
54
+ inline.setAttribute("target-tool-id", fullToolId);
55
+ inline.setAttribute("calculator-type", "scientific");
56
+ inline.setAttribute("available-types", "basic,scientific,graphing");
57
+ inline.setAttribute("size", toolbarContext.ui?.size || "md");
56
58
  return {
57
59
  toolId: this.toolId,
58
- label: this.name,
59
- icon: icon,
60
- disabled: options.disabled || false,
61
- ariaLabel: options.ariaLabel ||
62
- "Open calculator - Press to activate calculator tool",
63
- tooltip: options.tooltip || "Calculator",
64
- onClick: options.onClick || (() => { }),
65
- className: options.className,
60
+ inlineElement: inline,
61
+ overlayElement: overlay,
62
+ button: null,
63
+ sync: () => {
64
+ const active = toolbarContext.isToolVisible(fullToolId);
65
+ overlay.visible = active;
66
+ },
67
+ subscribeActive: (callback) => {
68
+ if (!toolbarContext.subscribeVisibility)
69
+ return () => { };
70
+ return toolbarContext.subscribeVisibility(() => {
71
+ callback(toolbarContext.isToolVisible(fullToolId));
72
+ });
73
+ },
66
74
  };
67
75
  },
68
- /**
69
- * Create calculator tool instance
70
- *
71
- * Creates a <pie-tool-calculator> web component and initializes it.
72
- */
73
- createToolInstance(context, options) {
74
- const componentOverrides = options.config ?? {};
75
- const calculator = createToolElement(this.toolId, context, options, componentOverrides);
76
- // Set default calculator type (can be overridden via config)
77
- const calculatorType = options.config?.calculatorType || "scientific";
78
- const availableTypes = options.config?.availableTypes || [
79
- "basic",
80
- "scientific",
81
- "graphing",
82
- ];
83
- // Configure calculator
84
- calculator.visible = true;
85
- calculator.calculatorType = calculatorType;
86
- calculator.availableTypes = availableTypes;
87
- // Pass toolkit coordinator if available from context
88
- if (options.config?.toolkitCoordinator) {
89
- calculator.toolkitCoordinator = options.config.toolkitCoordinator;
90
- }
91
- // Handle close callback
92
- if (options.onClose) {
93
- calculator.addEventListener("close", options.onClose);
94
- }
95
- return calculator;
96
- },
97
76
  };
98
77
  //# sourceMappingURL=calculator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/tools/registrations/calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACN,iBAAiB,GAEjB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqB;IAC3D,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,YAAY;IAElB,wDAAwD;IACxD,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC;IAEpE,wCAAwC;IACxC,oEAAoE;IACpE,aAAa,EAAE;QACd,YAAY,EAAE,0CAA0C;QACxD,oBAAoB,EAAE,mDAAmD;QACzE,iBAAiB,EAAE,iBAAiB;QACpC,sBAAsB,EAAE,iBAAiB;KACzC;IAED;;;;;;OAMG;IACH,kBAAkB,CAAC,OAAoB;QACtC,6DAA6D;QAC7D,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,MAAM,EAAE,CAAC;YAC7D,OAAO,IAAI,CAAC;QACb,CAAC;QAED,iEAAiE;QACjE,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,YAAY,CACX,OAAoB,EACpB,OAA0B;QAE1B,MAAM,IAAI,GACT,OAAO,IAAI,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAElE,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,IAAI;YAChB,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,KAAK;YACnC,SAAS,EACR,OAAO,CAAC,SAAS;gBACjB,qDAAqD;YACtD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,YAAY;YACxC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC;YACtC,SAAS,EAAE,OAAO,CAAC,SAAS;SAC5B,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,kBAAkB,CACjB,OAAoB,EACpB,OAA4B;QAE5B,MAAM,kBAAkB,GACtB,OAAO,CAAC,MAA6C,IAAI,EAAE,CAAC;QAC9D,MAAM,UAAU,GAAG,iBAAiB,CACnC,IAAI,CAAC,MAAM,EACX,OAAO,EACP,OAAO,EACP,kBAAkB,CAMlB,CAAC;QAEF,6DAA6D;QAC7D,MAAM,cAAc,GAClB,OAAO,CAAC,MAAM,EAAE,cAAyB,IAAI,YAAY,CAAC;QAC5D,MAAM,cAAc,GAAI,OAAO,CAAC,MAAM,EAAE,cAA2B,IAAI;YACtE,OAAO;YACP,YAAY;YACZ,UAAU;SACV,CAAC;QAEF,uBAAuB;QACvB,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC;QAC1B,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;QAC3C,UAAU,CAAC,cAAc,GAAG,cAAc,CAAC;QAE3C,qDAAqD;QACrD,IAAI,OAAO,CAAC,MAAM,EAAE,kBAAkB,EAAE,CAAC;YACxC,UAAU,CAAC,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC;QACnE,CAAC;QAED,wBAAwB;QACxB,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACrB,UAAU,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,UAAU,CAAC;IACnB,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"calculator.js","sourceRoot":"","sources":["../../../src/tools/registrations/calculator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAQH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAqB;IAC3D,MAAM,EAAE,YAAY;IACpB,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,qDAAqD;IAClE,IAAI,EAAE,YAAY;IAElB,wDAAwD;IACxD,eAAe,EAAE,CAAC,MAAM,CAAC;IAEzB,wCAAwC;IACxC,oEAAoE;IACpE,aAAa,EAAE;QACd,YAAY,EAAE,0CAA0C;QACxD,oBAAoB,EAAE,mDAAmD;QACzE,iBAAiB,EAAE,iBAAiB;QACpC,sBAAsB,EAAE,iBAAiB;KACzC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,OAAoB;QACtC,kDAAkD;QAClD,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IAED,aAAa,CACZ,OAAoB,EACpB,cAA8B;QAE9B,MAAM,UAAU,GAAG,kBAAkB,CACpC,IAAI,CAAC,MAAM,EACX,MAAM,EACN,cAAc,CAAC,MAAM,CACrB,CAAC;QACF,MAAM,kBAAkB,GAAG,cAAc,CAAC,kBAAkB,CAAC;QAC7D,MAAM,OAAO,GAAG,iBAAiB,CAChC,IAAI,CAAC,MAAM,EACX,OAAO,EACP,cAAc,EACd,kBAAkB,CAIlB,CAAC;QACF,OAAO,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAE5C,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC;QACpE,MAAM,CAAC,YAAY,CAClB,SAAS,EACT,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CACxE,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACrD,MAAM,CAAC,YAAY,CAAC,iBAAiB,EAAE,2BAA2B,CAAC,CAAC;QACpE,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAE7D,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,MAAM;YACrB,cAAc,EAAE,OAAO;YACvB,MAAM,EAAE,IAAI;YACZ,IAAI,EAAE,GAAG,EAAE;gBACV,MAAM,MAAM,GAAG,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACxD,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;YAC1B,CAAC;YACD,eAAe,EAAE,CAAC,QAAmC,EAAE,EAAE;gBACxD,IAAI,CAAC,cAAc,CAAC,mBAAmB;oBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;gBACzD,OAAO,cAAc,CAAC,mBAAmB,CAAC,GAAG,EAAE;oBAC9C,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;gBACpD,CAAC,CAAC,CAAC;YACJ,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAC"}