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

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 (112) hide show
  1. package/dist/components/ItemToolBar.custom-element.js +425 -93
  2. package/dist/components/PieAssessmentToolkit.custom-element.js +200 -46
  3. package/dist/components/SectionToolBar.custom-element.js +162 -0
  4. package/dist/components/section-toolbar-element.d.ts +3 -0
  5. package/dist/components/section-toolbar-element.d.ts.map +1 -0
  6. package/dist/components/section-toolbar-element.js +2 -0
  7. package/dist/components/section-toolbar-element.js.map +1 -0
  8. package/dist/context/assessment-toolkit-context.d.ts +1 -1
  9. package/dist/context/assessment-toolkit-context.d.ts.map +1 -1
  10. package/dist/index.d.ts +5 -3
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +2 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/runtime/SectionRuntimeEngine.d.ts +57 -1
  15. package/dist/runtime/SectionRuntimeEngine.d.ts.map +1 -1
  16. package/dist/runtime/SectionRuntimeEngine.js +23 -0
  17. package/dist/runtime/SectionRuntimeEngine.js.map +1 -1
  18. package/dist/runtime/registration-events.d.ts +19 -0
  19. package/dist/runtime/registration-events.d.ts.map +1 -1
  20. package/dist/runtime/registration-events.js +3 -0
  21. package/dist/runtime/registration-events.js.map +1 -1
  22. package/dist/runtime/runtime-event-guards.d.ts +0 -1
  23. package/dist/runtime/runtime-event-guards.d.ts.map +1 -1
  24. package/dist/runtime/runtime-event-guards.js +0 -5
  25. package/dist/runtime/runtime-event-guards.js.map +1 -1
  26. package/dist/runtime/session-event-emitter-policy.d.ts +12 -0
  27. package/dist/runtime/session-event-emitter-policy.d.ts.map +1 -0
  28. package/dist/runtime/session-event-emitter-policy.js +57 -0
  29. package/dist/runtime/session-event-emitter-policy.js.map +1 -0
  30. package/dist/services/HighlightCoordinator.d.ts +9 -0
  31. package/dist/services/HighlightCoordinator.d.ts.map +1 -1
  32. package/dist/services/HighlightCoordinator.js +196 -55
  33. package/dist/services/HighlightCoordinator.js.map +1 -1
  34. package/dist/services/TTSService.d.ts +18 -0
  35. package/dist/services/TTSService.d.ts.map +1 -1
  36. package/dist/services/TTSService.js +343 -105
  37. package/dist/services/TTSService.js.map +1 -1
  38. package/dist/services/ToolRegistry.d.ts +40 -2
  39. package/dist/services/ToolRegistry.d.ts.map +1 -1
  40. package/dist/services/ToolRegistry.js +22 -1
  41. package/dist/services/ToolRegistry.js.map +1 -1
  42. package/dist/services/ToolkitCoordinator.d.ts +34 -1
  43. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  44. package/dist/services/ToolkitCoordinator.js +203 -2
  45. package/dist/services/ToolkitCoordinator.js.map +1 -1
  46. package/dist/services/createDefaultToolRegistry.d.ts +5 -11
  47. package/dist/services/createDefaultToolRegistry.d.ts.map +1 -1
  48. package/dist/services/createDefaultToolRegistry.js +5 -48
  49. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  50. package/dist/services/interfaces.d.ts +7 -2
  51. package/dist/services/interfaces.d.ts.map +1 -1
  52. package/dist/services/interfaces.js.map +1 -1
  53. package/dist/services/pnp-standard-features.d.ts +1 -1
  54. package/dist/services/section-controller-types.d.ts +5 -0
  55. package/dist/services/section-controller-types.d.ts.map +1 -1
  56. package/dist/services/tool-config-defaults.d.ts +14 -0
  57. package/dist/services/tool-config-defaults.d.ts.map +1 -0
  58. package/dist/services/tool-config-defaults.js +23 -0
  59. package/dist/services/tool-config-defaults.js.map +1 -0
  60. package/dist/services/tool-context.d.ts.map +1 -1
  61. package/dist/services/tool-context.js +50 -3
  62. package/dist/services/tool-context.js.map +1 -1
  63. package/dist/services/tool-instance-id.d.ts +1 -3
  64. package/dist/services/tool-instance-id.d.ts.map +1 -1
  65. package/dist/services/tool-instance-id.js +4 -10
  66. package/dist/services/tool-instance-id.js.map +1 -1
  67. package/dist/services/toolbar-items.d.ts +26 -0
  68. package/dist/services/toolbar-items.d.ts.map +1 -0
  69. package/dist/services/toolbar-items.js +10 -0
  70. package/dist/services/toolbar-items.js.map +1 -0
  71. package/dist/services/tools-config-normalizer.d.ts.map +1 -1
  72. package/dist/services/tools-config-normalizer.js +5 -6
  73. package/dist/services/tools-config-normalizer.js.map +1 -1
  74. package/dist/services/tts/browser-provider.d.ts.map +1 -1
  75. package/dist/services/tts/browser-provider.js +201 -34
  76. package/dist/services/tts/browser-provider.js.map +1 -1
  77. package/dist/services/tts/text-processing.d.ts +17 -0
  78. package/dist/services/tts/text-processing.d.ts.map +1 -0
  79. package/dist/services/tts/text-processing.js +144 -0
  80. package/dist/services/tts/text-processing.js.map +1 -0
  81. package/dist/tools/default-tool-module-loaders.d.ts.map +1 -1
  82. package/dist/tools/default-tool-module-loaders.js +1 -7
  83. package/dist/tools/default-tool-module-loaders.js.map +1 -1
  84. package/dist/tools/registrations/accessibility-tools.d.ts +7 -2
  85. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  86. package/dist/tools/registrations/accessibility-tools.js +23 -15
  87. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  88. package/dist/tools/registrations/calculator.d.ts.map +1 -1
  89. package/dist/tools/registrations/calculator.js +18 -10
  90. package/dist/tools/registrations/calculator.js.map +1 -1
  91. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  92. package/dist/tools/registrations/interaction-tools.js +5 -4
  93. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  94. package/dist/tools/registrations/measurement-tools.js +4 -4
  95. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  96. package/dist/tools/registrations/subject-specific-tools.js +4 -4
  97. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  98. package/dist/tools/registrations/tts.d.ts.map +1 -1
  99. package/dist/tools/registrations/tts.js +161 -17
  100. package/dist/tools/registrations/tts.js.map +1 -1
  101. package/dist/tools/tool-tag-map.d.ts.map +1 -1
  102. package/dist/tools/tool-tag-map.js +2 -1
  103. package/dist/tools/tool-tag-map.js.map +1 -1
  104. package/package.json +12 -8
  105. package/src/components/ItemToolBar.svelte +275 -47
  106. package/src/components/PieAssessmentToolkit.svelte +217 -53
  107. package/src/components/SectionToolBar.svelte +58 -0
  108. package/dist/services/tts/provider-interface.d.ts +0 -131
  109. package/dist/services/tts/provider-interface.d.ts.map +0 -1
  110. package/dist/services/tts/provider-interface.js +0 -10
  111. package/dist/services/tts/provider-interface.js.map +0 -1
  112. package/src/components/PNPProvenanceViewer.svelte +0 -270
@@ -42,30 +42,174 @@ export const ttsToolRegistration = {
42
42
  return hasReadableText(context);
43
43
  },
44
44
  renderToolbar(_context, toolbarContext) {
45
- const fullToolId = createScopedToolId(this.toolId, "item", toolbarContext.itemId, "inline");
46
- const inline = document.createElement("pie-tool-tts-inline");
47
- inline.setAttribute("tool-id", fullToolId);
48
- inline.setAttribute("catalog-id", toolbarContext.catalogId || toolbarContext.itemId);
49
- inline.setAttribute("language", toolbarContext.language);
50
- inline.setAttribute("size", toolbarContext.ui?.size || "md");
51
- let readyRequested = false;
45
+ let ensureReadyPromise = null;
46
+ const ttsService = toolbarContext.ttsService;
47
+ const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
48
+ const isReading = () => {
49
+ return toolbarContext.isToolVisible(fullToolId);
50
+ };
51
+ const button = {
52
+ toolId: this.toolId,
53
+ label: "Read aloud",
54
+ icon: typeof this.icon === "function" ? this.icon(_context) : this.icon,
55
+ ariaLabel: "Read aloud",
56
+ tooltip: "Read aloud",
57
+ onClick: () => {
58
+ void toggleReadAloud();
59
+ },
60
+ disabled: false,
61
+ active: false,
62
+ };
63
+ const syncButtonState = () => {
64
+ const label = isReading() ? "Stop reading" : "Read aloud";
65
+ button.label = label;
66
+ button.ariaLabel = label;
67
+ button.tooltip = label;
68
+ button.active = isReading();
69
+ button.disabled = !toolbarContext.ttsService;
70
+ };
71
+ const onPlaybackFinished = (state) => {
72
+ // Keep toolbar state aligned with TTS lifecycle:
73
+ // when playback naturally finishes (or errors), button should reset.
74
+ if ((state === "idle" || state === "error") && isReading()) {
75
+ toolbarContext.toggleTool(this.toolId);
76
+ syncButtonState();
77
+ }
78
+ };
79
+ const ensureReady = async () => {
80
+ if (!toolbarContext.ensureTTSReady)
81
+ return;
82
+ if (!ensureReadyPromise) {
83
+ ensureReadyPromise = (async () => {
84
+ await toolbarContext.ensureTTSReady?.();
85
+ if (toolbarContext.toolkitCoordinator?.highlightCoordinator) {
86
+ ttsService?.setHighlightCoordinator?.(toolbarContext.toolkitCoordinator.highlightCoordinator);
87
+ }
88
+ })();
89
+ }
90
+ await ensureReadyPromise;
91
+ };
92
+ const stopReading = () => {
93
+ ttsService?.stop?.();
94
+ if (isReading()) {
95
+ toolbarContext.toggleTool(this.toolId);
96
+ }
97
+ syncButtonState();
98
+ };
99
+ const resolveReadingRoot = () => {
100
+ const scoped = toolbarContext.getScopeElement?.();
101
+ if (scoped)
102
+ return scoped;
103
+ const cssEscape = (value) => {
104
+ if (typeof CSS !== "undefined" && typeof CSS.escape === "function") {
105
+ return CSS.escape(value);
106
+ }
107
+ return value.replace(/"/g, '\\"');
108
+ };
109
+ const candidateIds = [
110
+ toolbarContext.catalogId,
111
+ toolbarContext.scope.itemId,
112
+ toolbarContext.scope.canonicalItemId,
113
+ ].filter((id) => typeof id === "string" && id.length > 0);
114
+ const selectors = [];
115
+ for (const id of candidateIds) {
116
+ const escapedId = cssEscape(id);
117
+ if (toolbarContext.scope.level === "passage") {
118
+ selectors.push(`pie-passage-shell[item-id="${escapedId}"] [data-region="content"]`);
119
+ }
120
+ selectors.push(`pie-item-shell[item-id="${escapedId}"] [data-region="content"]`);
121
+ }
122
+ selectors.push("[data-region='content']");
123
+ for (const selector of selectors) {
124
+ const element = document.querySelector(selector);
125
+ if (element instanceof HTMLElement) {
126
+ return element;
127
+ }
128
+ }
129
+ return null;
130
+ };
131
+ const toggleReadAloud = async () => {
132
+ if (!ttsService?.speak || !toolbarContext.ttsService)
133
+ return;
134
+ if (isReading()) {
135
+ stopReading();
136
+ return;
137
+ }
138
+ const scopeElement = resolveReadingRoot();
139
+ if (!scopeElement)
140
+ return;
141
+ const text = scopeElement.textContent || "";
142
+ if (!text.trim())
143
+ return;
144
+ try {
145
+ if (!isReading()) {
146
+ toolbarContext.toggleTool(this.toolId);
147
+ }
148
+ syncButtonState();
149
+ await ensureReady();
150
+ ttsService.setRootElement?.(scopeElement);
151
+ void ttsService.speak(text, {
152
+ // For passage-level TTS, use rendered DOM text as the source of truth.
153
+ // Catalog/SSML content can diverge from rendered text and break
154
+ // word-boundary-to-DOM mapping for progressive yellow highlighting.
155
+ catalogId: toolbarContext.scope.level === "passage"
156
+ ? undefined
157
+ : (toolbarContext.catalogId || toolbarContext.itemId),
158
+ language: toolbarContext.language,
159
+ contentElement: scopeElement,
160
+ }).catch((error) => {
161
+ console.error("[ttsToolRegistration] Failed to start reading:", error);
162
+ syncButtonState();
163
+ });
164
+ syncButtonState();
165
+ }
166
+ catch (error) {
167
+ syncButtonState();
168
+ console.error("[ttsToolRegistration] Failed to start reading:", error);
169
+ }
170
+ };
52
171
  return {
53
172
  toolId: this.toolId,
54
- inlineElement: inline,
173
+ button,
55
174
  sync: () => {
56
- inline.setAttribute("catalog-id", toolbarContext.catalogId || toolbarContext.itemId);
57
- inline.setAttribute("language", toolbarContext.language);
58
- inline.setAttribute("size", toolbarContext.ui?.size || "md");
59
- if (toolbarContext.ttsService) {
60
- inline.ttsService = toolbarContext.ttsService;
61
- }
62
- if (!readyRequested && toolbarContext.ensureTTSReady) {
63
- readyRequested = true;
64
- void toolbarContext.ensureTTSReady().catch((error) => {
175
+ syncButtonState();
176
+ if (toolbarContext.ensureTTSReady) {
177
+ void ensureReady().catch((error) => {
65
178
  console.error("[ttsToolRegistration] Failed to initialize TTS service:", error);
66
179
  });
67
180
  }
68
181
  },
182
+ subscribeActive: (callback) => {
183
+ const unsubscribers = [];
184
+ if (toolbarContext.subscribeVisibility) {
185
+ const unsubscribeVisibility = toolbarContext.subscribeVisibility(() => {
186
+ const active = isReading();
187
+ syncButtonState();
188
+ callback(active);
189
+ });
190
+ unsubscribers.push(unsubscribeVisibility);
191
+ }
192
+ if (toolbarContext.ttsService) {
193
+ const stateListenerId = `tts-toolbar:${fullToolId}`;
194
+ const onStateChange = (state) => {
195
+ onPlaybackFinished(String(state || ""));
196
+ const active = isReading();
197
+ syncButtonState();
198
+ callback(active);
199
+ };
200
+ toolbarContext.ttsService.onStateChange(stateListenerId, onStateChange);
201
+ unsubscribers.push(() => {
202
+ toolbarContext.ttsService?.offStateChange(stateListenerId, onStateChange);
203
+ });
204
+ }
205
+ if (unsubscribers.length === 0)
206
+ return () => { };
207
+ return () => {
208
+ for (const unsubscribe of unsubscribers) {
209
+ unsubscribe();
210
+ }
211
+ };
212
+ },
69
213
  };
70
214
  },
71
215
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tts.js","sourceRoot":"","sources":["../../../src/tools/registrations/tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAqB;IACpD,MAAM,EAAE,cAAc;IACtB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EAAE,oBAAoB;IACjC,IAAI,EAAE,WAAW;IAEjB,8DAA8D;IAC9D,eAAe,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC;IAEzD,wCAAwC;IACxC,6DAA6D;IAC7D,aAAa,EAAE;QACd,cAAc,EAAE,2CAA2C;QAC3D,WAAW,EAAE,wCAAwC;QACrD,KAAK,EAAE,sBAAsB;QAC7B,cAAc,EAAE,iBAAiB;KACjC;IAED;;;;;OAKG;IACH,kBAAkB,CAAC,OAAoB;QACtC,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;IAED,aAAa,CACZ,QAAqB,EACrB,cAA8B;QAE9B,MAAM,UAAU,GAAG,kBAAkB,CACpC,IAAI,CAAC,MAAM,EACX,MAAM,EACN,cAAc,CAAC,MAAM,EACrB,QAAQ,CACR,CAAC;QACF,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,qBAAqB,CAM1D,CAAC;QACF,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QAC3C,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;QACrF,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;QAE7D,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,OAAO;YACN,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,aAAa,EAAE,MAAM;YACrB,IAAI,EAAE,GAAG,EAAE;gBACV,MAAM,CAAC,YAAY,CAAC,YAAY,EAAE,cAAc,CAAC,SAAS,IAAI,cAAc,CAAC,MAAM,CAAC,CAAC;gBACrF,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,cAAc,CAAC,QAAQ,CAAC,CAAC;gBACzD,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,cAAc,CAAC,EAAE,EAAE,IAAI,IAAI,IAAI,CAAC,CAAC;gBAC7D,IAAI,cAAc,CAAC,UAAU,EAAE,CAAC;oBAC/B,MAAM,CAAC,UAAU,GAAG,cAAc,CAAC,UAAU,CAAC;gBAC/C,CAAC;gBACD,IAAI,CAAC,cAAc,IAAI,cAAc,CAAC,cAAc,EAAE,CAAC;oBACtD,cAAc,GAAG,IAAI,CAAC;oBACtB,KAAK,cAAc,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;wBAC7D,OAAO,CAAC,KAAK,CAAC,yDAAyD,EAAE,KAAK,CAAC,CAAC;oBACjF,CAAC,CAAC,CAAC;gBACJ,CAAC;YACF,CAAC;SACD,CAAC;IACH,CAAC;CACD,CAAC"}
1
+ {"version":3,"file":"tts.js","sourceRoot":"","sources":["../../../src/tools/registrations/tts.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"tool-tag-map.d.ts","sourceRoot":"","sources":["../../src/tools/tool-tag-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAC/B,KAAK,WAAW,CAAC;AAElB,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAYlC,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,QAAQ,MAAM,EACd,YAAY,sBAAsB,KAChC,MAIF,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC7B,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,gBAAgB,cAAc,EAC9B,YAAY,sBAAsB,KAChC,WAOF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,SAAS,MAAM,EACf,YAAY,sBAAsB,KAChC,MAAM,GAAG,SAIX,CAAC"}
1
+ {"version":3,"file":"tool-tag-map.d.ts","sourceRoot":"","sources":["../../src/tools/tool-tag-map.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEhD,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,EAAE;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,cAAc,EAAE,cAAc,CAAC;CAC/B,KAAK,WAAW,CAAC;AAElB,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACtC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;IACjC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAC1D;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,UAalC,CAAC;AAEF,eAAO,MAAM,cAAc,GAC1B,QAAQ,MAAM,EACd,YAAY,sBAAsB,KAChC,MAIF,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAC7B,QAAQ,MAAM,EACd,SAAS,WAAW,EACpB,gBAAgB,cAAc,EAC9B,YAAY,sBAAsB,KAChC,WAOF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC3B,SAAS,MAAM,EACf,YAAY,sBAAsB,KAChC,MAAM,GAAG,SAIX,CAAC"}
@@ -11,7 +11,8 @@ export const DEFAULT_TOOL_TAG_MAP = {
11
11
  answerEliminator: "pie-tool-answer-eliminator",
12
12
  highlighter: "pie-tool-annotation-toolbar",
13
13
  lineReader: "pie-tool-line-reader",
14
- colorScheme: "pie-tool-color-scheme",
14
+ theme: "pie-tool-theme",
15
+ colorScheme: "pie-tool-theme",
15
16
  annotationToolbar: "pie-tool-annotation-toolbar",
16
17
  graph: "pie-tool-graph",
17
18
  periodicTable: "pie-tool-periodic-table",
@@ -1 +1 @@
1
- {"version":3,"file":"tool-tag-map.js","sourceRoot":"","sources":["../../src/tools/tool-tag-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAqBzF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC/C,UAAU,EAAE,qBAAqB;IACjC,YAAY,EAAE,yBAAyB;IACvC,KAAK,EAAE,gBAAgB;IACvB,UAAU,EAAE,qBAAqB;IACjC,gBAAgB,EAAE,4BAA4B;IAC9C,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,sBAAsB;IAClC,WAAW,EAAE,uBAAuB;IACpC,iBAAiB,EAAE,6BAA6B;IAChD,KAAK,EAAE,gBAAgB;IACvB,aAAa,EAAE,yBAAyB;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,MAAc,EACd,SAAkC,EACzB,EAAE;IACX,MAAM,MAAM,GACX,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IAC3E,OAAO,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,MAAM,GAAG,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAe,EAAE,CACjE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,MAAc,EACd,OAAoB,EACpB,cAA8B,EAC9B,SAAkC,EACpB,EAAE;IAChB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,SAAS,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,cAAc,IAAI,SAAS,EAAE,oBAAoB,CAAC;IAClE,OAAO,OAAO;QACb,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACvD,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,OAAe,EACf,SAAkC,EACb,EAAE;IACvB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC"}
1
+ {"version":3,"file":"tool-tag-map.js","sourceRoot":"","sources":["../../src/tools/tool-tag-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+CAA+C,CAAC;AAqBzF;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAe;IAC/C,UAAU,EAAE,qBAAqB;IACjC,YAAY,EAAE,yBAAyB;IACvC,KAAK,EAAE,gBAAgB;IACvB,UAAU,EAAE,qBAAqB;IACjC,gBAAgB,EAAE,4BAA4B;IAC9C,WAAW,EAAE,6BAA6B;IAC1C,UAAU,EAAE,sBAAsB;IAClC,KAAK,EAAE,gBAAgB;IACvB,WAAW,EAAE,gBAAgB;IAC7B,iBAAiB,EAAE,6BAA6B;IAChD,KAAK,EAAE,gBAAgB;IACvB,aAAa,EAAE,yBAAyB;CACxC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,MAAc,EACd,SAAkC,EACzB,EAAE;IACX,MAAM,MAAM,GACX,SAAS,EAAE,UAAU,EAAE,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IAC3E,OAAO,wBAAwB,CAAC,MAAM,EAAE,2BAA2B,MAAM,GAAG,CAAC,CAAC;AAC/E,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG,CAAC,OAAe,EAAe,EAAE,CACjE,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAChC,MAAc,EACd,OAAoB,EACpB,cAA8B,EAC9B,SAAkC,EACpB,EAAE;IAChB,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAClD,MAAM,cAAc,GAAG,SAAS,EAAE,sBAAsB,EAAE,CAAC,MAAM,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,cAAc,IAAI,SAAS,EAAE,oBAAoB,CAAC;IAClE,OAAO,OAAO;QACb,CAAC,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;QACvD,CAAC,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC9B,OAAe,EACf,SAAkC,EACb,EAAE;IACvB,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAC;IACzE,MAAM,GAAG,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,CAAC;IAClE,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-players/pie-assessment-toolkit",
3
- "version": "0.2.9",
3
+ "version": "0.2.11",
4
4
  "type": "module",
5
5
  "description": "PIE assessment toolkit: composable services + reference implementation for assessment players and tool coordination",
6
6
  "license": "MIT",
@@ -33,6 +33,10 @@
33
33
  "types": "./dist/components/pie-assessment-toolkit-element.d.ts",
34
34
  "import": "./dist/components/pie-assessment-toolkit-element.js"
35
35
  },
36
+ "./components/section-toolbar-element": {
37
+ "types": "./dist/components/section-toolbar-element.d.ts",
38
+ "import": "./dist/components/section-toolbar-element.js"
39
+ },
36
40
  "./services/pnp-standard-features": {
37
41
  "types": "./dist/services/pnp-standard-features.d.ts",
38
42
  "import": "./dist/services/pnp-standard-features.js"
@@ -52,7 +56,7 @@
52
56
  "README.md"
53
57
  ],
54
58
  "scripts": {
55
- "build": "rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json && node ./scripts/build-ce-components.mjs",
59
+ "build": "rm -rf dist tsconfig.tsbuildinfo && tsc -p tsconfig.json && bun ./scripts/build-ce-components.mjs",
56
60
  "dev": "tsc -p tsconfig.json --watch",
57
61
  "typecheck": "tsc -p tsconfig.json --noEmit",
58
62
  "lint": "biome check .",
@@ -60,12 +64,12 @@
60
64
  "test": "bun test"
61
65
  },
62
66
  "dependencies": {
63
- "@pie-players/pie-calculator": "0.1.4",
64
- "@pie-players/pie-calculator-desmos": "0.1.5",
65
- "@pie-players/pie-context": "0.1.1",
66
- "@pie-players/pie-players-shared": "0.2.5",
67
- "@pie-players/pie-tts": "0.1.4",
68
- "@pie-players/tts-client-server": "0.2.4",
67
+ "@pie-players/pie-calculator": "0.1.6",
68
+ "@pie-players/pie-calculator-desmos": "0.1.7",
69
+ "@pie-players/pie-context": "0.1.3",
70
+ "@pie-players/pie-players-shared": "0.2.7",
71
+ "@pie-players/pie-tts": "0.1.6",
72
+ "@pie-players/tts-client-server": "0.2.6",
69
73
  "daisyui": "^5.5.18"
70
74
  },
71
75
  "peerDependencies": {