@pie-players/pie-assessment-toolkit 0.3.2 → 0.3.4

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 (90) hide show
  1. package/README.md +5 -8
  2. package/dist/components/ItemToolBar.custom-element.js +539 -94
  3. package/dist/index.d.ts +1 -2
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +1 -1
  6. package/dist/index.js.map +1 -1
  7. package/dist/services/PNPToolResolver.d.ts.map +1 -1
  8. package/dist/services/PNPToolResolver.js +4 -1
  9. package/dist/services/PNPToolResolver.js.map +1 -1
  10. package/dist/services/ToolRegistry.d.ts +51 -0
  11. package/dist/services/ToolRegistry.d.ts.map +1 -1
  12. package/dist/services/ToolRegistry.js +60 -0
  13. package/dist/services/ToolRegistry.js.map +1 -1
  14. package/dist/services/ToolkitCoordinator.d.ts +12 -24
  15. package/dist/services/ToolkitCoordinator.d.ts.map +1 -1
  16. package/dist/services/ToolkitCoordinator.js +60 -99
  17. package/dist/services/ToolkitCoordinator.js.map +1 -1
  18. package/dist/services/defaultPersonalNeedsProfile.js +2 -2
  19. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -1
  20. package/dist/services/interfaces.d.ts +8 -3
  21. package/dist/services/interfaces.d.ts.map +1 -1
  22. package/dist/services/interfaces.js.map +1 -1
  23. package/dist/services/pnp-standard-features.d.ts +1 -1
  24. package/dist/services/tool-providers/index.d.ts +0 -4
  25. package/dist/services/tool-providers/index.d.ts.map +1 -1
  26. package/dist/services/tool-providers/index.js +0 -2
  27. package/dist/services/tool-providers/index.js.map +1 -1
  28. package/dist/services/tools-config-normalizer.d.ts +40 -3
  29. package/dist/services/tools-config-normalizer.d.ts.map +1 -1
  30. package/dist/services/tools-config-normalizer.js +86 -11
  31. package/dist/services/tools-config-normalizer.js.map +1 -1
  32. package/dist/tools/client.d.ts +0 -2
  33. package/dist/tools/client.d.ts.map +1 -1
  34. package/dist/tools/client.js +0 -4
  35. package/dist/tools/client.js.map +1 -1
  36. package/dist/tools/default-tool-module-loaders.js +1 -1
  37. package/dist/tools/default-tool-module-loaders.js.map +1 -1
  38. package/dist/tools/library-loader.d.ts.map +1 -1
  39. package/dist/tools/library-loader.js +0 -35
  40. package/dist/tools/library-loader.js.map +1 -1
  41. package/dist/tools/registrations/accessibility-tools.d.ts.map +1 -1
  42. package/dist/tools/registrations/accessibility-tools.js +44 -41
  43. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  44. package/dist/tools/registrations/calculator.d.ts.map +1 -1
  45. package/dist/tools/registrations/calculator.js +50 -2
  46. package/dist/tools/registrations/calculator.js.map +1 -1
  47. package/dist/tools/registrations/interaction-tools.d.ts.map +1 -1
  48. package/dist/tools/registrations/interaction-tools.js +22 -28
  49. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  50. package/dist/tools/registrations/measurement-tools.d.ts.map +1 -1
  51. package/dist/tools/registrations/measurement-tools.js +19 -27
  52. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  53. package/dist/tools/registrations/subject-specific-tools.d.ts.map +1 -1
  54. package/dist/tools/registrations/subject-specific-tools.js +53 -37
  55. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  56. package/dist/tools/registrations/toolbar-registration-helpers.d.ts +15 -0
  57. package/dist/tools/registrations/toolbar-registration-helpers.d.ts.map +1 -0
  58. package/dist/tools/registrations/toolbar-registration-helpers.js +22 -0
  59. package/dist/tools/registrations/toolbar-registration-helpers.js.map +1 -0
  60. package/dist/tools/registrations/tts.d.ts.map +1 -1
  61. package/dist/tools/registrations/tts.js +49 -0
  62. package/dist/tools/registrations/tts.js.map +1 -1
  63. package/dist/tools/types.d.ts +1 -1
  64. package/dist/tools/types.d.ts.map +1 -1
  65. package/dist/tools/types.js.map +1 -1
  66. package/package.json +8 -10
  67. package/dist/services/tool-providers/MathJsToolProvider.d.ts +0 -25
  68. package/dist/services/tool-providers/MathJsToolProvider.d.ts.map +0 -1
  69. package/dist/services/tool-providers/MathJsToolProvider.js +0 -53
  70. package/dist/services/tool-providers/MathJsToolProvider.js.map +0 -1
  71. package/dist/services/tool-providers/TIToolProvider.d.ts +0 -107
  72. package/dist/services/tool-providers/TIToolProvider.d.ts.map +0 -1
  73. package/dist/services/tool-providers/TIToolProvider.js +0 -123
  74. package/dist/services/tool-providers/TIToolProvider.js.map +0 -1
  75. package/dist/tools/calculators/mathjs-provider.d.ts +0 -50
  76. package/dist/tools/calculators/mathjs-provider.d.ts.map +0 -1
  77. package/dist/tools/calculators/mathjs-provider.js +0 -660
  78. package/dist/tools/calculators/mathjs-provider.js.map +0 -1
  79. package/dist/tools/calculators/ti-provider.d.ts +0 -122
  80. package/dist/tools/calculators/ti-provider.d.ts.map +0 -1
  81. package/dist/tools/calculators/ti-provider.js +0 -710
  82. package/dist/tools/calculators/ti-provider.js.map +0 -1
  83. package/src/README.md +0 -626
  84. package/src/components/ItemToolBar.svelte +0 -717
  85. package/src/components/PieAssessmentToolkit.svelte +0 -681
  86. package/src/components/SectionToolBar.svelte +0 -58
  87. package/src/components/ToolButton.svelte +0 -146
  88. package/src/components/ToolButtonGroup.svelte +0 -125
  89. package/src/tools/README.md +0 -617
  90. package/src/tools/calculators/README.md +0 -395
@@ -11,8 +11,8 @@
11
11
  * - highlighting (cognitive/reading support)
12
12
  */
13
13
  import { hasChoiceInteraction, hasReadableText, } from "../../services/tool-context.js";
14
- import { createScopedToolId } from "../../services/tool-instance-id.js";
15
14
  import { createToolElement, } from "../tool-tag-map.js";
15
+ import { createScopedVisibilityBinding, syncButtonAndOverlayVisibility, } from "./toolbar-registration-helpers.js";
16
16
  /**
17
17
  * Answer Eliminator tool registration
18
18
  *
@@ -41,10 +41,10 @@ export const answerEliminatorToolRegistration = {
41
41
  return hasChoiceInteraction(context);
42
42
  },
43
43
  renderToolbar(context, toolbarContext) {
44
- const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
44
+ const visibility = createScopedVisibilityBinding(this.toolId, toolbarContext);
45
45
  const componentOverrides = toolbarContext.componentOverrides ?? {};
46
46
  const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
47
- overlay.setAttribute("tool-id", fullToolId);
47
+ overlay.setAttribute("tool-id", visibility.fullToolId);
48
48
  overlay.setAttribute("strategy", "strikethrough");
49
49
  overlay.setAttribute("button-alignment", "inline");
50
50
  const button = {
@@ -55,16 +55,18 @@ export const answerEliminatorToolRegistration = {
55
55
  ariaLabel: "Answer eliminator - Strike through choices",
56
56
  tooltip: "Strike Through",
57
57
  onClick: () => toolbarContext.toggleTool(this.toolId),
58
- active: toolbarContext.isToolVisible(fullToolId),
58
+ active: visibility.isActive(),
59
59
  };
60
60
  return {
61
61
  toolId: this.toolId,
62
62
  button,
63
63
  elements: [{ element: overlay, mount: "after-buttons" }],
64
64
  sync: () => {
65
- const active = toolbarContext.isToolVisible(fullToolId);
66
- button.active = active;
67
- overlay.visible = active;
65
+ syncButtonAndOverlayVisibility({
66
+ button,
67
+ overlay,
68
+ isActive: visibility.isActive,
69
+ });
68
70
  if (toolbarContext.toolCoordinator) {
69
71
  overlay.coordinator = toolbarContext.toolCoordinator;
70
72
  }
@@ -77,13 +79,7 @@ export const answerEliminatorToolRegistration = {
77
79
  overlay.globalElementId = globalElementId;
78
80
  }
79
81
  },
80
- subscribeActive: (callback) => {
81
- if (!toolbarContext.subscribeVisibility)
82
- return () => { };
83
- return toolbarContext.subscribeVisibility(() => {
84
- callback(toolbarContext.isToolVisible(fullToolId));
85
- });
86
- },
82
+ subscribeActive: visibility.subscribeActive,
87
83
  };
88
84
  },
89
85
  };
@@ -110,7 +106,7 @@ export const highlighterToolRegistration = {
110
106
  return hasReadableText(context);
111
107
  },
112
108
  renderToolbar(context, toolbarContext) {
113
- const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
109
+ const visibility = createScopedVisibilityBinding(this.toolId, toolbarContext);
114
110
  const button = {
115
111
  toolId: this.toolId,
116
112
  label: this.name,
@@ -119,31 +115,29 @@ export const highlighterToolRegistration = {
119
115
  ariaLabel: "Highlighter - Highlight text",
120
116
  tooltip: "Highlight",
121
117
  onClick: () => toolbarContext.toggleTool(this.toolId),
122
- active: toolbarContext.isToolVisible(fullToolId),
118
+ active: visibility.isActive(),
123
119
  };
124
120
  const componentOverrides = toolbarContext.componentOverrides ?? {};
125
121
  const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
126
- overlay.setAttribute("tool-id", fullToolId);
122
+ overlay.setAttribute("tool-id", visibility.fullToolId);
127
123
  return {
128
124
  toolId: this.toolId,
129
125
  button,
130
126
  elements: [{ element: overlay, mount: "after-buttons" }],
131
127
  sync: () => {
132
- const active = toolbarContext.isToolVisible(fullToolId);
133
- button.active = active;
134
- overlay.enabled = active;
135
- overlay.visible = active;
128
+ syncButtonAndOverlayVisibility({
129
+ button,
130
+ overlay,
131
+ isActive: visibility.isActive,
132
+ onActiveChange: (active) => {
133
+ overlay.enabled = active;
134
+ },
135
+ });
136
136
  if (toolbarContext.ttsService) {
137
137
  overlay.ttsService = toolbarContext.ttsService;
138
138
  }
139
139
  },
140
- subscribeActive: (callback) => {
141
- if (!toolbarContext.subscribeVisibility)
142
- return () => { };
143
- return toolbarContext.subscribeVisibility(() => {
144
- callback(toolbarContext.isToolVisible(fullToolId));
145
- });
146
- },
140
+ subscribeActive: visibility.subscribeActive,
147
141
  };
148
142
  },
149
143
  };
@@ -1 +1 @@
1
- {"version":3,"file":"interaction-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/interaction-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interaction-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/interaction-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/measurement-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AASxC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBA2EnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBA2ExC,CAAC"}
1
+ {"version":3,"file":"measurement-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/measurement-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AAYxC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAoEnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,EAAE,gBAoExC,CAAC"}
@@ -8,8 +8,8 @@
8
8
  * - protractor (assessment tool)
9
9
  */
10
10
  import { hasMathContent } from "../../services/tool-context.js";
11
- import { createScopedToolId } from "../../services/tool-instance-id.js";
12
11
  import { createToolElement, } from "../tool-tag-map.js";
12
+ import { createScopedVisibilityBinding, syncButtonAndOverlayVisibility, } from "./toolbar-registration-helpers.js";
13
13
  /**
14
14
  * Ruler tool registration
15
15
  *
@@ -36,7 +36,7 @@ export const rulerToolRegistration = {
36
36
  return hasMathContent(context);
37
37
  },
38
38
  renderToolbar(context, toolbarContext) {
39
- const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
39
+ const visibility = createScopedVisibilityBinding(this.toolId, toolbarContext);
40
40
  const button = {
41
41
  toolId: this.toolId,
42
42
  label: this.name,
@@ -45,30 +45,26 @@ export const rulerToolRegistration = {
45
45
  ariaLabel: "Open ruler tool",
46
46
  tooltip: "Ruler",
47
47
  onClick: () => toolbarContext.toggleTool(this.toolId),
48
- active: toolbarContext.isToolVisible(fullToolId),
48
+ active: visibility.isActive(),
49
49
  };
50
50
  const componentOverrides = toolbarContext.componentOverrides ?? {};
51
51
  const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
52
- overlay.setAttribute("tool-id", fullToolId);
52
+ overlay.setAttribute("tool-id", visibility.fullToolId);
53
53
  return {
54
54
  toolId: this.toolId,
55
55
  button,
56
56
  elements: [{ element: overlay, mount: "after-buttons" }],
57
57
  sync: () => {
58
- const active = toolbarContext.isToolVisible(fullToolId);
59
- button.active = active;
60
- overlay.visible = active;
58
+ syncButtonAndOverlayVisibility({
59
+ button,
60
+ overlay,
61
+ isActive: visibility.isActive,
62
+ });
61
63
  if (toolbarContext.toolkitCoordinator) {
62
64
  overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
63
65
  }
64
66
  },
65
- subscribeActive: (callback) => {
66
- if (!toolbarContext.subscribeVisibility)
67
- return () => { };
68
- return toolbarContext.subscribeVisibility(() => {
69
- callback(toolbarContext.isToolVisible(fullToolId));
70
- });
71
- },
67
+ subscribeActive: visibility.subscribeActive,
72
68
  };
73
69
  },
74
70
  };
@@ -98,7 +94,7 @@ export const protractorToolRegistration = {
98
94
  return hasMathContent(context);
99
95
  },
100
96
  renderToolbar(context, toolbarContext) {
101
- const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
97
+ const visibility = createScopedVisibilityBinding(this.toolId, toolbarContext);
102
98
  const button = {
103
99
  toolId: this.toolId,
104
100
  label: this.name,
@@ -107,30 +103,26 @@ export const protractorToolRegistration = {
107
103
  ariaLabel: "Open protractor tool",
108
104
  tooltip: "Protractor",
109
105
  onClick: () => toolbarContext.toggleTool(this.toolId),
110
- active: toolbarContext.isToolVisible(fullToolId),
106
+ active: visibility.isActive(),
111
107
  };
112
108
  const componentOverrides = toolbarContext.componentOverrides ?? {};
113
109
  const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
114
- overlay.setAttribute("tool-id", fullToolId);
110
+ overlay.setAttribute("tool-id", visibility.fullToolId);
115
111
  return {
116
112
  toolId: this.toolId,
117
113
  button,
118
114
  elements: [{ element: overlay, mount: "after-buttons" }],
119
115
  sync: () => {
120
- const active = toolbarContext.isToolVisible(fullToolId);
121
- button.active = active;
122
- overlay.visible = active;
116
+ syncButtonAndOverlayVisibility({
117
+ button,
118
+ overlay,
119
+ isActive: visibility.isActive,
120
+ });
123
121
  if (toolbarContext.toolkitCoordinator) {
124
122
  overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
125
123
  }
126
124
  },
127
- subscribeActive: (callback) => {
128
- if (!toolbarContext.subscribeVisibility)
129
- return () => { };
130
- return toolbarContext.subscribeVisibility(() => {
131
- callback(toolbarContext.isToolVisible(fullToolId));
132
- });
133
- },
125
+ subscribeActive: visibility.subscribeActive,
134
126
  };
135
127
  },
136
128
  };
@@ -1 +1 @@
1
- {"version":3,"file":"measurement-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/measurement-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"measurement-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/measurement-tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"subject-specific-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/subject-specific-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AASxC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBA6EnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,gBA4E3C,CAAC"}
1
+ {"version":3,"file":"subject-specific-tools.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/subject-specific-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AAYxC;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,gBAiFnC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,EAAE,gBAgF3C,CAAC"}
@@ -11,8 +11,8 @@
11
11
  * - periodicTable (assessment tool)
12
12
  */
13
13
  import { hasMathContent, hasScienceContent } from "../../services/tool-context.js";
14
- import { createScopedToolId } from "../../services/tool-instance-id.js";
15
14
  import { createToolElement, } from "../tool-tag-map.js";
15
+ import { createScopedVisibilityBinding, syncButtonAndOverlayVisibility, } from "./toolbar-registration-helpers.js";
16
16
  /**
17
17
  * Graph tool registration
18
18
  *
@@ -24,8 +24,8 @@ export const graphToolRegistration = {
24
24
  name: "Graph",
25
25
  description: "Graphing calculator and coordinate plane",
26
26
  icon: "chart-bar",
27
- // Graph appears at item and element level where graphing might be needed
28
- supportedLevels: ["item", "element"],
27
+ // Graph is a section-level floating tool.
28
+ supportedLevels: ["section"],
29
29
  // PNP support IDs
30
30
  // Maps to QTI 3.0 standard features: graph, graphingCalculator
31
31
  pnpSupportIds: [
@@ -41,7 +41,7 @@ export const graphToolRegistration = {
41
41
  return hasMathContent(context);
42
42
  },
43
43
  renderToolbar(context, toolbarContext) {
44
- const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
44
+ const visibility = createScopedVisibilityBinding(this.toolId, toolbarContext);
45
45
  const button = {
46
46
  toolId: this.toolId,
47
47
  label: this.name,
@@ -50,30 +50,38 @@ export const graphToolRegistration = {
50
50
  ariaLabel: "Graph - Graphing calculator",
51
51
  tooltip: "Graph",
52
52
  onClick: () => toolbarContext.toggleTool(this.toolId),
53
- active: toolbarContext.isToolVisible(fullToolId),
53
+ active: visibility.isActive(),
54
54
  };
55
55
  const componentOverrides = toolbarContext.componentOverrides ?? {};
56
56
  const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
57
- overlay.setAttribute("tool-id", fullToolId);
57
+ overlay.setAttribute("tool-id", visibility.fullToolId);
58
58
  return {
59
59
  toolId: this.toolId,
60
60
  button,
61
- elements: [{ element: overlay, mount: "after-buttons" }],
61
+ elements: [
62
+ {
63
+ element: overlay,
64
+ mount: "after-buttons",
65
+ shell: {
66
+ title: this.name,
67
+ draggable: true,
68
+ resizable: true,
69
+ closeable: true,
70
+ initialWidth: 920,
71
+ initialHeight: 680,
72
+ minWidth: 640,
73
+ minHeight: 500,
74
+ },
75
+ },
76
+ ],
62
77
  sync: () => {
63
- const active = toolbarContext.isToolVisible(fullToolId);
64
- button.active = active;
65
- overlay.visible = active;
66
- if (toolbarContext.toolkitCoordinator) {
67
- overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
68
- }
69
- },
70
- subscribeActive: (callback) => {
71
- if (!toolbarContext.subscribeVisibility)
72
- return () => { };
73
- return toolbarContext.subscribeVisibility(() => {
74
- callback(toolbarContext.isToolVisible(fullToolId));
78
+ syncButtonAndOverlayVisibility({
79
+ button,
80
+ overlay,
81
+ isActive: visibility.isActive,
75
82
  });
76
83
  },
84
+ subscribeActive: visibility.subscribeActive,
77
85
  };
78
86
  },
79
87
  };
@@ -88,8 +96,8 @@ export const periodicTableToolRegistration = {
88
96
  name: "Periodic Table",
89
97
  description: "Chemistry periodic table reference",
90
98
  icon: "beaker",
91
- // Periodic table appears at item and element level
92
- supportedLevels: ["item", "element"],
99
+ // Periodic table is a section-level floating tool.
100
+ supportedLevels: ["section"],
93
101
  // PNP support IDs
94
102
  // Maps to QTI 3.0 standard feature: periodicTable
95
103
  pnpSupportIds: [
@@ -104,7 +112,7 @@ export const periodicTableToolRegistration = {
104
112
  return hasScienceContent(context);
105
113
  },
106
114
  renderToolbar(context, toolbarContext) {
107
- const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
115
+ const visibility = createScopedVisibilityBinding(this.toolId, toolbarContext);
108
116
  const button = {
109
117
  toolId: this.toolId,
110
118
  label: this.name,
@@ -113,30 +121,38 @@ export const periodicTableToolRegistration = {
113
121
  ariaLabel: "Periodic table - Chemistry reference",
114
122
  tooltip: "Periodic Table",
115
123
  onClick: () => toolbarContext.toggleTool(this.toolId),
116
- active: toolbarContext.isToolVisible(fullToolId),
124
+ active: visibility.isActive(),
117
125
  };
118
126
  const componentOverrides = toolbarContext.componentOverrides ?? {};
119
127
  const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
120
- overlay.setAttribute("tool-id", fullToolId);
128
+ overlay.setAttribute("tool-id", visibility.fullToolId);
121
129
  return {
122
130
  toolId: this.toolId,
123
131
  button,
124
- elements: [{ element: overlay, mount: "after-buttons" }],
132
+ elements: [
133
+ {
134
+ element: overlay,
135
+ mount: "after-buttons",
136
+ shell: {
137
+ title: this.name,
138
+ draggable: true,
139
+ resizable: true,
140
+ closeable: true,
141
+ initialWidth: 1160,
142
+ initialHeight: 760,
143
+ minWidth: 920,
144
+ minHeight: 620,
145
+ },
146
+ },
147
+ ],
125
148
  sync: () => {
126
- const active = toolbarContext.isToolVisible(fullToolId);
127
- button.active = active;
128
- overlay.visible = active;
129
- if (toolbarContext.toolkitCoordinator) {
130
- overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
131
- }
132
- },
133
- subscribeActive: (callback) => {
134
- if (!toolbarContext.subscribeVisibility)
135
- return () => { };
136
- return toolbarContext.subscribeVisibility(() => {
137
- callback(toolbarContext.isToolVisible(fullToolId));
149
+ syncButtonAndOverlayVisibility({
150
+ button,
151
+ overlay,
152
+ isActive: visibility.isActive,
138
153
  });
139
154
  },
155
+ subscribeActive: visibility.subscribeActive,
140
156
  };
141
157
  },
142
158
  };
@@ -1 +1 @@
1
- {"version":3,"file":"subject-specific-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/subject-specific-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subject-specific-tools.js","sourceRoot":"","sources":["../../../src/tools/registrations/subject-specific-tools.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { ToolToolbarButtonDefinition, ToolToolbarRenderResult, ToolbarContext } from "../../services/ToolRegistry.js";
2
+ export declare function createScopedVisibilityBinding(toolId: string, toolbarContext: ToolbarContext): {
3
+ fullToolId: string;
4
+ isActive: () => boolean;
5
+ subscribeActive: ToolToolbarRenderResult["subscribeActive"];
6
+ };
7
+ export declare function syncButtonAndOverlayVisibility(args: {
8
+ button: ToolToolbarButtonDefinition;
9
+ overlay: {
10
+ visible?: boolean;
11
+ };
12
+ isActive: () => boolean;
13
+ onActiveChange?: (active: boolean) => void;
14
+ }): void;
15
+ //# sourceMappingURL=toolbar-registration-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar-registration-helpers.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/toolbar-registration-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,2BAA2B,EAC3B,uBAAuB,EACvB,cAAc,EACd,MAAM,gCAAgC,CAAC;AAGxC,wBAAgB,6BAA6B,CAC5C,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,GAC5B;IACF,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,eAAe,EAAE,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;CAC5D,CAgBA;AAED,wBAAgB,8BAA8B,CAAC,IAAI,EAAE;IACpD,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,QAAQ,EAAE,MAAM,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C,GAAG,IAAI,CAKP"}
@@ -0,0 +1,22 @@
1
+ import { createScopedToolId } from "../../services/tool-instance-id.js";
2
+ export function createScopedVisibilityBinding(toolId, toolbarContext) {
3
+ const fullToolId = createScopedToolId(toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
4
+ return {
5
+ fullToolId,
6
+ isActive: () => toolbarContext.isToolVisible(fullToolId),
7
+ subscribeActive: (callback) => {
8
+ if (!toolbarContext.subscribeVisibility)
9
+ return () => { };
10
+ return toolbarContext.subscribeVisibility(() => {
11
+ callback(toolbarContext.isToolVisible(fullToolId));
12
+ });
13
+ },
14
+ };
15
+ }
16
+ export function syncButtonAndOverlayVisibility(args) {
17
+ const active = args.isActive();
18
+ args.button.active = active;
19
+ args.overlay.visible = active;
20
+ args.onActiveChange?.(active);
21
+ }
22
+ //# sourceMappingURL=toolbar-registration-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolbar-registration-helpers.js","sourceRoot":"","sources":["../../../src/tools/registrations/toolbar-registration-helpers.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAExE,MAAM,UAAU,6BAA6B,CAC5C,MAAc,EACd,cAA8B;IAM9B,MAAM,UAAU,GAAG,kBAAkB,CACpC,MAAM,EACN,cAAc,CAAC,KAAK,CAAC,KAAK,EAC1B,cAAc,CAAC,KAAK,CAAC,OAAO,CAC5B,CAAC;IACF,OAAO;QACN,UAAU;QACV,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC;QACxD,eAAe,EAAE,CAAC,QAAmC,EAAE,EAAE;YACxD,IAAI,CAAC,cAAc,CAAC,mBAAmB;gBAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;YACzD,OAAO,cAAc,CAAC,mBAAmB,CAAC,GAAG,EAAE;gBAC9C,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,CAAC;QACJ,CAAC;KACD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,IAK9C;IACA,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC5B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC;IAC9B,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AAKxC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBA8OjC,CAAC"}
1
+ {"version":3,"file":"tts.d.ts","sourceRoot":"","sources":["../../../src/tools/registrations/tts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAIhB,MAAM,gCAAgC,CAAC;AAkCxC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,EAAE,gBA0RjC,CAAC"}
@@ -9,6 +9,14 @@
9
9
  */
10
10
  import { hasReadableText } from "../../services/tool-context.js";
11
11
  import { createScopedToolId } from "../../services/tool-instance-id.js";
12
+ import { TTSToolProvider } from "../../services/tool-providers/index.js";
13
+ const toRecord = (value) => value && typeof value === "object" ? value : {};
14
+ const resolveTTSRuntimeSettings = (config) => {
15
+ const configRecord = toRecord(config);
16
+ const settingsRecord = toRecord(config?.settings);
17
+ const merged = { ...configRecord, ...settingsRecord };
18
+ return merged;
19
+ };
12
20
  /**
13
21
  * Text-to-Speech tool registration
14
22
  *
@@ -22,6 +30,47 @@ export const ttsToolRegistration = {
22
30
  name: "Text to Speech",
23
31
  description: "Read content aloud",
24
32
  icon: "volume-up",
33
+ provider: {
34
+ getProviderId: () => "tts",
35
+ createProvider: (config) => {
36
+ const settings = resolveTTSRuntimeSettings(config);
37
+ return new TTSToolProvider(settings.backend || "browser");
38
+ },
39
+ getInitConfig: (config) => {
40
+ const settings = resolveTTSRuntimeSettings(config);
41
+ const backend = settings.backend || "browser";
42
+ const serverProvider = settings.serverProvider ||
43
+ settings.provider ||
44
+ (backend === "polly" || backend === "google" ? backend : undefined);
45
+ return {
46
+ backend,
47
+ apiEndpoint: settings.apiEndpoint,
48
+ serverProvider,
49
+ providerOptions: backend === "polly"
50
+ ? {
51
+ ...(settings.engine ? { engine: settings.engine } : {}),
52
+ ...(typeof settings.sampleRate === "number"
53
+ ? { sampleRate: settings.sampleRate }
54
+ : {}),
55
+ ...(settings.format ? { format: settings.format } : {}),
56
+ speechMarkTypes: settings.speechMarksMode === "word+sentence"
57
+ ? ["word", "sentence"]
58
+ : ["word"],
59
+ }
60
+ : undefined,
61
+ voice: settings.defaultVoice,
62
+ rate: settings.rate,
63
+ pitch: settings.pitch,
64
+ };
65
+ },
66
+ getAuthFetcher: (config) => {
67
+ const runtimeAuthFetcher = config?.provider?.runtime?.authFetcher;
68
+ return typeof runtimeAuthFetcher === "function"
69
+ ? runtimeAuthFetcher
70
+ : undefined;
71
+ },
72
+ lazy: true,
73
+ },
25
74
  // TTS can appear at all levels except assessment and element.
26
75
  supportedLevels: ["section", "item", "passage", "rubric"],
27
76
  // PNP support IDs that enable this tool
@@ -1 +1 @@
1
- {"version":3,"file":"tts.js","sourceRoot":"","sources":["../../../src/tools/registrations/tts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tts.js","sourceRoot":"","sources":["../../../src/tools/registrations/tts.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Tool system type definitions
3
3
  */
4
- export type { CalculationHistoryEntry, Calculator, CalculatorProvider, CalculatorProviderCapabilities, CalculatorProviderConfig, CalculatorState, CalculatorType, DesmosCalculatorConfig, TICalculatorConfig, } from "@pie-players/pie-calculator";
4
+ export type { CalculationHistoryEntry, Calculator, CalculatorProvider, CalculatorProviderCapabilities, CalculatorProviderConfig, CalculatorState, CalculatorType, DesmosCalculatorConfig, } from "@pie-players/pie-calculator";
5
5
  export type ToolId = string;
6
6
  export interface ToolState {
7
7
  id: ToolId;