@pie-players/pie-assessment-toolkit 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/README.md +520 -0
  2. package/dist/attempt/TestSession.d.ts +90 -0
  3. package/dist/attempt/TestSession.d.ts.map +1 -0
  4. package/dist/attempt/TestSession.js +174 -0
  5. package/dist/attempt/TestSession.js.map +1 -0
  6. package/dist/core/TypedEventBus.d.ts +48 -0
  7. package/dist/core/TypedEventBus.d.ts.map +1 -0
  8. package/dist/core/TypedEventBus.js +63 -0
  9. package/dist/core/TypedEventBus.js.map +1 -0
  10. package/dist/index.d.ts +37 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +44 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/item-loader.d.ts +45 -0
  15. package/dist/item-loader.d.ts.map +1 -0
  16. package/dist/item-loader.js +62 -0
  17. package/dist/item-loader.js.map +1 -0
  18. package/dist/player/AssessmentPlayer.d.ts +388 -0
  19. package/dist/player/AssessmentPlayer.d.ts.map +1 -0
  20. package/dist/player/AssessmentPlayer.js +965 -0
  21. package/dist/player/AssessmentPlayer.js.map +1 -0
  22. package/dist/player/index.d.ts +17 -0
  23. package/dist/player/index.d.ts.map +1 -0
  24. package/dist/player/index.js +15 -0
  25. package/dist/player/index.js.map +1 -0
  26. package/dist/player/navigation-types.d.ts +63 -0
  27. package/dist/player/navigation-types.d.ts.map +1 -0
  28. package/dist/player/navigation-types.js +7 -0
  29. package/dist/player/navigation-types.js.map +1 -0
  30. package/dist/player/qti-navigation.d.ts +29 -0
  31. package/dist/player/qti-navigation.d.ts.map +1 -0
  32. package/dist/player/qti-navigation.js +160 -0
  33. package/dist/player/qti-navigation.js.map +1 -0
  34. package/dist/reference-layout/index.d.ts +19 -0
  35. package/dist/reference-layout/index.d.ts.map +1 -0
  36. package/dist/reference-layout/index.js +20 -0
  37. package/dist/reference-layout/index.js.map +1 -0
  38. package/dist/services/AccessibilityCatalogResolver.d.ts +141 -0
  39. package/dist/services/AccessibilityCatalogResolver.d.ts.map +1 -0
  40. package/dist/services/AccessibilityCatalogResolver.js +249 -0
  41. package/dist/services/AccessibilityCatalogResolver.js.map +1 -0
  42. package/dist/services/AssessmentAuthoringService.d.ts +60 -0
  43. package/dist/services/AssessmentAuthoringService.d.ts.map +1 -0
  44. package/dist/services/AssessmentAuthoringService.js +183 -0
  45. package/dist/services/AssessmentAuthoringService.js.map +1 -0
  46. package/dist/services/ContextVariableStore.d.ts +114 -0
  47. package/dist/services/ContextVariableStore.d.ts.map +1 -0
  48. package/dist/services/ContextVariableStore.js +207 -0
  49. package/dist/services/ContextVariableStore.js.map +1 -0
  50. package/dist/services/ElementToolStateStore.d.ts +125 -0
  51. package/dist/services/ElementToolStateStore.d.ts.map +1 -0
  52. package/dist/services/ElementToolStateStore.js +200 -0
  53. package/dist/services/ElementToolStateStore.js.map +1 -0
  54. package/dist/services/HighlightCoordinator.d.ts +179 -0
  55. package/dist/services/HighlightCoordinator.d.ts.map +1 -0
  56. package/dist/services/HighlightCoordinator.js +446 -0
  57. package/dist/services/HighlightCoordinator.js.map +1 -0
  58. package/dist/services/I18nService.d.ts +121 -0
  59. package/dist/services/I18nService.d.ts.map +1 -0
  60. package/dist/services/I18nService.js +276 -0
  61. package/dist/services/I18nService.js.map +1 -0
  62. package/dist/services/PNPMapper.d.ts +71 -0
  63. package/dist/services/PNPMapper.d.ts.map +1 -0
  64. package/dist/services/PNPMapper.js +98 -0
  65. package/dist/services/PNPMapper.js.map +1 -0
  66. package/dist/services/PNPToolResolver.d.ts +127 -0
  67. package/dist/services/PNPToolResolver.d.ts.map +1 -0
  68. package/dist/services/PNPToolResolver.js +222 -0
  69. package/dist/services/PNPToolResolver.js.map +1 -0
  70. package/dist/services/SSMLExtractor.d.ts +61 -0
  71. package/dist/services/SSMLExtractor.d.ts.map +1 -0
  72. package/dist/services/SSMLExtractor.js +181 -0
  73. package/dist/services/SSMLExtractor.js.map +1 -0
  74. package/dist/services/TTSService.d.ts +162 -0
  75. package/dist/services/TTSService.d.ts.map +1 -0
  76. package/dist/services/TTSService.js +465 -0
  77. package/dist/services/TTSService.js.map +1 -0
  78. package/dist/services/ThemeProvider.d.ts +95 -0
  79. package/dist/services/ThemeProvider.d.ts.map +1 -0
  80. package/dist/services/ThemeProvider.js +299 -0
  81. package/dist/services/ThemeProvider.js.map +1 -0
  82. package/dist/services/ToolConfigResolver.d.ts +162 -0
  83. package/dist/services/ToolConfigResolver.d.ts.map +1 -0
  84. package/dist/services/ToolConfigResolver.js +230 -0
  85. package/dist/services/ToolConfigResolver.js.map +1 -0
  86. package/dist/services/ToolCoordinator.d.ts +137 -0
  87. package/dist/services/ToolCoordinator.d.ts.map +1 -0
  88. package/dist/services/ToolCoordinator.js +318 -0
  89. package/dist/services/ToolCoordinator.js.map +1 -0
  90. package/dist/services/ToolkitCoordinator.d.ts +188 -0
  91. package/dist/services/ToolkitCoordinator.d.ts.map +1 -0
  92. package/dist/services/ToolkitCoordinator.js +252 -0
  93. package/dist/services/ToolkitCoordinator.js.map +1 -0
  94. package/dist/services/interfaces.d.ts +391 -0
  95. package/dist/services/interfaces.d.ts.map +1 -0
  96. package/dist/services/interfaces.js +12 -0
  97. package/dist/services/interfaces.js.map +1 -0
  98. package/dist/services/tool-providers/DesmosToolProvider.d.ts +103 -0
  99. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +1 -0
  100. package/dist/services/tool-providers/DesmosToolProvider.js +127 -0
  101. package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -0
  102. package/dist/services/tool-providers/IToolProvider.d.ts +137 -0
  103. package/dist/services/tool-providers/IToolProvider.d.ts.map +1 -0
  104. package/dist/services/tool-providers/IToolProvider.js +13 -0
  105. package/dist/services/tool-providers/IToolProvider.js.map +1 -0
  106. package/dist/services/tool-providers/TIToolProvider.d.ts +107 -0
  107. package/dist/services/tool-providers/TIToolProvider.d.ts.map +1 -0
  108. package/dist/services/tool-providers/TIToolProvider.js +123 -0
  109. package/dist/services/tool-providers/TIToolProvider.js.map +1 -0
  110. package/dist/services/tool-providers/TTSToolProvider.d.ts +143 -0
  111. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +1 -0
  112. package/dist/services/tool-providers/TTSToolProvider.js +168 -0
  113. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -0
  114. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +165 -0
  115. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +1 -0
  116. package/dist/services/tool-providers/ToolProviderRegistry.js +240 -0
  117. package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -0
  118. package/dist/services/tool-providers/index.d.ts +18 -0
  119. package/dist/services/tool-providers/index.d.ts.map +1 -0
  120. package/dist/services/tool-providers/index.js +15 -0
  121. package/dist/services/tool-providers/index.js.map +1 -0
  122. package/dist/services/tts/browser-provider.d.ts +24 -0
  123. package/dist/services/tts/browser-provider.d.ts.map +1 -0
  124. package/dist/services/tts/browser-provider.js +177 -0
  125. package/dist/services/tts/browser-provider.js.map +1 -0
  126. package/dist/services/tts/provider-interface.d.ts +131 -0
  127. package/dist/services/tts/provider-interface.d.ts.map +1 -0
  128. package/dist/services/tts/provider-interface.js +10 -0
  129. package/dist/services/tts/provider-interface.js.map +1 -0
  130. package/dist/tools/calculators/desmos-provider.d.ts +54 -0
  131. package/dist/tools/calculators/desmos-provider.d.ts.map +1 -0
  132. package/dist/tools/calculators/desmos-provider.js +384 -0
  133. package/dist/tools/calculators/desmos-provider.js.map +1 -0
  134. package/dist/tools/calculators/mathjs-provider.d.ts +50 -0
  135. package/dist/tools/calculators/mathjs-provider.d.ts.map +1 -0
  136. package/dist/tools/calculators/mathjs-provider.js +660 -0
  137. package/dist/tools/calculators/mathjs-provider.js.map +1 -0
  138. package/dist/tools/calculators/ti-provider.d.ts +122 -0
  139. package/dist/tools/calculators/ti-provider.d.ts.map +1 -0
  140. package/dist/tools/calculators/ti-provider.js +587 -0
  141. package/dist/tools/calculators/ti-provider.js.map +1 -0
  142. package/dist/tools/client.d.ts +17 -0
  143. package/dist/tools/client.d.ts.map +1 -0
  144. package/dist/tools/client.js +26 -0
  145. package/dist/tools/client.js.map +1 -0
  146. package/dist/tools/index.d.ts +8 -0
  147. package/dist/tools/index.d.ts.map +1 -0
  148. package/dist/tools/index.js +10 -0
  149. package/dist/tools/index.js.map +1 -0
  150. package/dist/tools/library-loader.d.ts +63 -0
  151. package/dist/tools/library-loader.d.ts.map +1 -0
  152. package/dist/tools/library-loader.js +292 -0
  153. package/dist/tools/library-loader.js.map +1 -0
  154. package/dist/tools/response-discovery.d.ts +72 -0
  155. package/dist/tools/response-discovery.d.ts.map +1 -0
  156. package/dist/tools/response-discovery.js +183 -0
  157. package/dist/tools/response-discovery.js.map +1 -0
  158. package/dist/tools/tool-coordinator.d.ts +76 -0
  159. package/dist/tools/tool-coordinator.d.ts.map +1 -0
  160. package/dist/tools/tool-coordinator.js +197 -0
  161. package/dist/tools/tool-coordinator.js.map +1 -0
  162. package/dist/tools/types.d.ts +427 -0
  163. package/dist/tools/types.d.ts.map +1 -0
  164. package/dist/tools/types.js +13 -0
  165. package/dist/tools/types.js.map +1 -0
  166. package/dist/tools/variant-resolver.d.ts +48 -0
  167. package/dist/tools/variant-resolver.d.ts.map +1 -0
  168. package/dist/tools/variant-resolver.js +214 -0
  169. package/dist/tools/variant-resolver.js.map +1 -0
  170. package/dist/types/events.d.ts +157 -0
  171. package/dist/types/events.d.ts.map +1 -0
  172. package/dist/types/events.js +11 -0
  173. package/dist/types/events.js.map +1 -0
  174. package/dist/utils/logger.d.ts +7 -0
  175. package/dist/utils/logger.d.ts.map +1 -0
  176. package/dist/utils/logger.js +11 -0
  177. package/dist/utils/logger.js.map +1 -0
  178. package/package.json +71 -0
  179. package/src/README.md +626 -0
  180. package/src/components/QuestionToolBar.svelte +406 -0
  181. package/src/player/AssessmentLayout.svelte +68 -0
  182. package/src/player/README.md +154 -0
  183. package/src/reference-layout/README.md +135 -0
  184. package/src/reference-layout/ReferenceLayout.svelte +209 -0
  185. package/src/reference-layout/components/AssessmentContent.svelte +259 -0
  186. package/src/reference-layout/components/AssessmentFooter.svelte +89 -0
  187. package/src/reference-layout/components/AssessmentHeader.svelte +250 -0
  188. package/src/reference-layout/components/AssessmentNavigation.svelte +134 -0
  189. package/src/reference-layout/components/AssessmentToolsBar.svelte +176 -0
  190. package/src/reference-layout/components/ItemPanel.svelte +200 -0
  191. package/src/reference-layout/components/NotesPanel.svelte +179 -0
  192. package/src/reference-layout/components/PassagePanel.svelte +76 -0
  193. package/src/tools/README.md +616 -0
  194. package/src/tools/calculators/README.md +395 -0
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Tool Coordinator Store (Svelte-specific)
3
+ *
4
+ * Svelte store-based implementation of tool coordination.
5
+ * This is a framework-specific alternative to the class-based ToolCoordinator service.
6
+ *
7
+ * **When to use:**
8
+ * - In Svelte components that need reactive tool state
9
+ * - When you want automatic subscription/unsubscription
10
+ *
11
+ * **When NOT to use:**
12
+ * - In framework-agnostic code
13
+ * - When you need fine-grained control over service lifecycle
14
+ * - In testing scenarios (prefer class-based ToolCoordinator with DI)
15
+ *
16
+ * For framework-agnostic code, use the class-based ToolCoordinator from services/.
17
+ */
18
+ import type { ToolCoordinator, ToolId, ToolState } from "./types";
19
+ interface ToolCoordinatorState {
20
+ tools: Map<ToolId, ToolState>;
21
+ highestZIndex: number;
22
+ activeTool: ToolId | null;
23
+ }
24
+ declare const subscribe: (this: void, run: import("svelte/store").Subscriber<ToolCoordinatorState>, invalidate?: () => void) => import("svelte/store").Unsubscriber;
25
+ /**
26
+ * Register a new tool with the coordinator
27
+ */
28
+ export declare function registerTool(id: ToolId, name: string, element?: HTMLElement): void;
29
+ /**
30
+ * Unregister a tool
31
+ */
32
+ export declare function unregisterTool(id: ToolId): void;
33
+ /**
34
+ * Show a tool
35
+ */
36
+ export declare function showTool(id: ToolId): void;
37
+ /**
38
+ * Hide a tool
39
+ */
40
+ export declare function hideTool(id: ToolId): void;
41
+ /**
42
+ * Toggle a tool's visibility
43
+ */
44
+ export declare function toggleTool(id: ToolId): void;
45
+ /**
46
+ * Bring a tool to front (highest z-index)
47
+ * Can be called with either a tool ID or an element directly
48
+ */
49
+ export declare function bringToFront(idOrElement: ToolId | HTMLElement): void;
50
+ /**
51
+ * Update tool element reference
52
+ */
53
+ export declare function updateToolElement(id: ToolId, element: HTMLElement): void;
54
+ /**
55
+ * Hide all tools
56
+ */
57
+ export declare function hideAllTools(): void;
58
+ /**
59
+ * Get tool state
60
+ */
61
+ export declare function getToolState(id: ToolId): ToolState | undefined;
62
+ /**
63
+ * Check if a tool is visible
64
+ */
65
+ export declare function isToolVisible(id: ToolId): boolean;
66
+ export declare const visibleTools: import("svelte/store").Readable<ToolState[]>;
67
+ export declare const activeTool: import("svelte/store").Readable<ToolState | null | undefined>;
68
+ export declare const toolCoordinatorStore: ToolCoordinator & {
69
+ subscribe: typeof subscribe;
70
+ };
71
+ /** @deprecated Use toolCoordinatorStore instead */
72
+ export declare const toolCoordinator: ToolCoordinator & {
73
+ subscribe: typeof subscribe;
74
+ };
75
+ export {};
76
+ //# sourceMappingURL=tool-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-coordinator.d.ts","sourceRoot":"","sources":["../../src/tools/tool-coordinator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAElE,UAAU,oBAAoB;IAC7B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AASD,QAAA,MAAQ,SAAS,4IAAyD,CAAC;AAE3E;;GAEG;AACH,wBAAgB,YAAY,CAC3B,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,WAAW,GACnB,IAAI,CAYN;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ/C;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAgBzC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAazC;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAS3C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CA8BpE;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,IAAI,CAWxE;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,IAAI,CASnC;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAG9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAEjD;AAGD,eAAO,MAAM,YAAY,8CAExB,CAAC;AAGF,eAAO,MAAM,UAAU,+DAEtB,CAAC;AAIF,eAAO,MAAM,oBAAoB,EAAE,eAAe,GAAG;IACpD,SAAS,EAAE,OAAO,SAAS,CAAC;CAa5B,CAAC;AAGF,mDAAmD;AACnD,eAAO,MAAM,eAAe;eAjBhB,OAAO,SAAS;CAiBuB,CAAC"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * Tool Coordinator Store (Svelte-specific)
3
+ *
4
+ * Svelte store-based implementation of tool coordination.
5
+ * This is a framework-specific alternative to the class-based ToolCoordinator service.
6
+ *
7
+ * **When to use:**
8
+ * - In Svelte components that need reactive tool state
9
+ * - When you want automatic subscription/unsubscription
10
+ *
11
+ * **When NOT to use:**
12
+ * - In framework-agnostic code
13
+ * - When you need fine-grained control over service lifecycle
14
+ * - In testing scenarios (prefer class-based ToolCoordinator with DI)
15
+ *
16
+ * For framework-agnostic code, use the class-based ToolCoordinator from services/.
17
+ */
18
+ import { derived, get, writable } from "svelte/store";
19
+ const initialState = {
20
+ tools: new Map(),
21
+ highestZIndex: 1000,
22
+ activeTool: null,
23
+ };
24
+ // Create the writable store
25
+ const { subscribe, update } = writable(initialState);
26
+ /**
27
+ * Register a new tool with the coordinator
28
+ */
29
+ export function registerTool(id, name, element) {
30
+ update((state) => {
31
+ state.tools.set(id, {
32
+ id,
33
+ name,
34
+ isVisible: false,
35
+ isActive: false,
36
+ zIndex: state.highestZIndex,
37
+ element,
38
+ });
39
+ return state;
40
+ });
41
+ }
42
+ /**
43
+ * Unregister a tool
44
+ */
45
+ export function unregisterTool(id) {
46
+ update((state) => {
47
+ state.tools.delete(id);
48
+ if (state.activeTool === id) {
49
+ state.activeTool = null;
50
+ }
51
+ return state;
52
+ });
53
+ }
54
+ /**
55
+ * Show a tool
56
+ */
57
+ export function showTool(id) {
58
+ update((state) => {
59
+ const tool = state.tools.get(id);
60
+ if (tool) {
61
+ tool.isVisible = true;
62
+ tool.isActive = true;
63
+ tool.zIndex = ++state.highestZIndex;
64
+ state.activeTool = id;
65
+ // Update element z-index if available
66
+ if (tool.element) {
67
+ tool.element.style.zIndex = String(tool.zIndex);
68
+ }
69
+ }
70
+ return state;
71
+ });
72
+ }
73
+ /**
74
+ * Hide a tool
75
+ */
76
+ export function hideTool(id) {
77
+ update((state) => {
78
+ const tool = state.tools.get(id);
79
+ if (tool) {
80
+ tool.isVisible = false;
81
+ tool.isActive = false;
82
+ if (state.activeTool === id) {
83
+ state.activeTool = null;
84
+ }
85
+ }
86
+ return state;
87
+ });
88
+ }
89
+ /**
90
+ * Toggle a tool's visibility
91
+ */
92
+ export function toggleTool(id) {
93
+ const state = get({ subscribe });
94
+ const tool = state.tools.get(id);
95
+ if (tool?.isVisible) {
96
+ hideTool(id);
97
+ }
98
+ else {
99
+ showTool(id);
100
+ }
101
+ }
102
+ /**
103
+ * Bring a tool to front (highest z-index)
104
+ * Can be called with either a tool ID or an element directly
105
+ */
106
+ export function bringToFront(idOrElement) {
107
+ update((state) => {
108
+ // If given an element directly, just update its z-index
109
+ if (idOrElement instanceof HTMLElement) {
110
+ idOrElement.style.zIndex = String(++state.highestZIndex);
111
+ return state;
112
+ }
113
+ // Otherwise, treat as tool ID (legacy behavior)
114
+ const id = idOrElement;
115
+ const tool = state.tools.get(id);
116
+ if (tool && tool.isVisible) {
117
+ tool.zIndex = ++state.highestZIndex;
118
+ tool.isActive = true;
119
+ state.activeTool = id;
120
+ // Update element z-index if available
121
+ if (tool.element) {
122
+ tool.element.style.zIndex = String(tool.zIndex);
123
+ }
124
+ // Deactivate other tools
125
+ state.tools.forEach((t, tId) => {
126
+ if (tId !== id) {
127
+ t.isActive = false;
128
+ }
129
+ });
130
+ }
131
+ return state;
132
+ });
133
+ }
134
+ /**
135
+ * Update tool element reference
136
+ */
137
+ export function updateToolElement(id, element) {
138
+ update((state) => {
139
+ const tool = state.tools.get(id);
140
+ if (tool) {
141
+ tool.element = element;
142
+ if (tool.isVisible && element) {
143
+ element.style.zIndex = String(tool.zIndex);
144
+ }
145
+ }
146
+ return state;
147
+ });
148
+ }
149
+ /**
150
+ * Hide all tools
151
+ */
152
+ export function hideAllTools() {
153
+ update((state) => {
154
+ state.tools.forEach((tool) => {
155
+ tool.isVisible = false;
156
+ tool.isActive = false;
157
+ });
158
+ state.activeTool = null;
159
+ return state;
160
+ });
161
+ }
162
+ /**
163
+ * Get tool state
164
+ */
165
+ export function getToolState(id) {
166
+ const state = get({ subscribe });
167
+ return state.tools.get(id);
168
+ }
169
+ /**
170
+ * Check if a tool is visible
171
+ */
172
+ export function isToolVisible(id) {
173
+ return getToolState(id)?.isVisible ?? false;
174
+ }
175
+ // Derived store for getting all visible tools
176
+ export const visibleTools = derived({ subscribe }, ($state) => Array.from($state.tools.values()).filter((tool) => tool.isVisible));
177
+ // Derived store for getting active tool
178
+ export const activeTool = derived({ subscribe }, ($state) => $state.activeTool ? $state.tools.get($state.activeTool) : null);
179
+ // Export the main store with explicit type
180
+ // Renamed to toolCoordinatorStore to distinguish from class-based ToolCoordinator
181
+ export const toolCoordinatorStore = {
182
+ subscribe,
183
+ registerTool,
184
+ unregisterTool,
185
+ showTool,
186
+ hideTool,
187
+ toggleTool,
188
+ bringToFront,
189
+ updateToolElement,
190
+ hideAllTools,
191
+ getToolState,
192
+ isToolVisible,
193
+ };
194
+ // Backward compatibility alias (deprecated - use toolCoordinatorStore)
195
+ /** @deprecated Use toolCoordinatorStore instead */
196
+ export const toolCoordinator = toolCoordinatorStore;
197
+ //# sourceMappingURL=tool-coordinator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-coordinator.js","sourceRoot":"","sources":["../../src/tools/tool-coordinator.ts"],"names":[],"mappings":"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"}