@pie-players/pie-default-tool-loaders 0.3.73 → 0.3.75

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 (45) hide show
  1. package/README.md +56 -58
  2. package/dist/calculator-providers/CortexToolProvider.d.ts +12 -0
  3. package/dist/calculator-providers/CortexToolProvider.js +31 -0
  4. package/dist/calculator-providers/DesmosToolProvider.d.ts +13 -0
  5. package/dist/calculator-providers/DesmosToolProvider.js +31 -0
  6. package/dist/calculator-providers/GeoGebraToolProvider.d.ts +15 -0
  7. package/dist/calculator-providers/GeoGebraToolProvider.js +31 -0
  8. package/dist/calculator-providers/LazyCalculatorToolProvider.d.ts +34 -0
  9. package/dist/calculator-providers/LazyCalculatorToolProvider.js +95 -0
  10. package/dist/content-alternates.d.ts +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.js +1 -1
  13. package/dist/packaged-capability-composition.d.ts +17 -49
  14. package/dist/packaged-capability-composition.js +61 -262
  15. package/dist/registrations/accessibility-tools.d.ts +1 -5
  16. package/dist/registrations/accessibility-tools.js +6 -41
  17. package/dist/registrations/audio-transcript.d.ts +1 -1
  18. package/dist/registrations/audio-transcript.js +0 -1
  19. package/dist/registrations/calculator.d.ts +2 -6
  20. package/dist/registrations/calculator.js +18 -73
  21. package/dist/registrations/dictionary-tools.d.ts +6 -5
  22. package/dist/registrations/dictionary-tools.js +23 -27
  23. package/dist/registrations/interaction-tools.d.ts +1 -7
  24. package/dist/registrations/interaction-tools.js +24 -28
  25. package/dist/registrations/measurement-tools.d.ts +1 -5
  26. package/dist/registrations/measurement-tools.js +1 -19
  27. package/dist/registrations/overlay-element-cache.d.ts +23 -0
  28. package/dist/registrations/overlay-element-cache.js +48 -0
  29. package/dist/registrations/overlay-toolbar-render.d.ts +3 -10
  30. package/dist/registrations/overlay-toolbar-render.js +5 -8
  31. package/dist/registrations/selection-actions.d.ts +1 -1
  32. package/dist/registrations/selection-actions.js +1 -1
  33. package/dist/registrations/subject-specific-tools.d.ts +3 -8
  34. package/dist/registrations/subject-specific-tools.js +10 -26
  35. package/dist/registrations/tts.d.ts +1 -6
  36. package/dist/registrations/tts.js +41 -90
  37. package/package.json +24 -21
  38. package/dist/packaged-tool-registry.d.ts +0 -2
  39. package/dist/packaged-tool-registry.js +0 -1
  40. package/dist/tool-placement.d.ts +0 -1
  41. package/dist/tool-placement.js +0 -1
  42. package/dist/tool-tag-map.d.ts +0 -1
  43. package/dist/tool-tag-map.js +0 -1
  44. package/dist/universal-supports.d.ts +0 -1
  45. package/dist/universal-supports.js +0 -1
@@ -12,7 +12,7 @@
12
12
  * cannot originate one at all. Every tool named here also opens from the toolbar and
13
13
  * carries its own term field.
14
14
  */
15
- import { resolveFallbackToolIcon } from "@pie-players/pie-assessment-toolkit/tools/internal";
15
+ import { resolveFallbackToolIcon } from "@pie-players/pie-assessment-toolkit/tools/registration";
16
16
  function asRequestCapable(coordinator) {
17
17
  const candidate = coordinator;
18
18
  if (typeof candidate?.canRequestTool !== "function")
@@ -2,19 +2,14 @@
2
2
  * Subject-Specific Tools Registrations
3
3
  *
4
4
  * Registers tools for specific subject areas:
5
- * - Graph (graphing calculator/coordinate plane)
5
+ * - Graph (coordinate plane)
6
6
  * - Periodic Table (chemistry reference)
7
- *
8
- * Maps to QTI 3.0 standard access features:
9
- * - graphingCalculator (assessment tool)
10
- * - graph (assessment tool)
11
- * - periodicTable (assessment tool)
12
7
  */
13
- import type { ToolRegistration } from "@pie-players/pie-assessment-toolkit/tools/internal";
8
+ import type { ToolRegistration } from "@pie-players/pie-assessment-toolkit/tools/registration";
14
9
  /**
15
10
  * Graph tool registration
16
11
  *
17
- * Provides graphing calculator and coordinate plane functionality.
12
+ * Provides a coordinate plane.
18
13
  * Context-smart: appears automatically for math content or when explicitly enabled.
19
14
  */
20
15
  export declare const graphToolRegistration: ToolRegistration;
@@ -2,39 +2,27 @@
2
2
  * Subject-Specific Tools Registrations
3
3
  *
4
4
  * Registers tools for specific subject areas:
5
- * - Graph (graphing calculator/coordinate plane)
5
+ * - Graph (coordinate plane)
6
6
  * - Periodic Table (chemistry reference)
7
- *
8
- * Maps to QTI 3.0 standard access features:
9
- * - graphingCalculator (assessment tool)
10
- * - graph (assessment tool)
11
- * - periodicTable (assessment tool)
12
7
  */
13
- import { hasMathContent, hasScienceContent, } from "@pie-players/pie-assessment-toolkit/tools/internal";
14
- import { createToolElement, } from "@pie-players/pie-assessment-toolkit/tools/internal";
15
- import { createScopedVisibilityBinding, syncButtonAndOverlayVisibility, } from "@pie-players/pie-assessment-toolkit/tools/internal";
8
+ import { hasMathContent, hasScienceContent, } from "@pie-players/pie-assessment-toolkit/tools/registration";
16
9
  import { renderOverlayToolbar } from "./overlay-toolbar-render.js";
17
10
  /**
18
11
  * Graph tool registration
19
12
  *
20
- * Provides graphing calculator and coordinate plane functionality.
13
+ * Provides a coordinate plane.
21
14
  * Context-smart: appears automatically for math content or when explicitly enabled.
22
15
  */
23
16
  export const graphToolRegistration = {
24
17
  toolId: "graph",
25
18
  name: "Graph",
26
- description: "Graphing calculator and coordinate plane",
19
+ description: "Coordinate plane",
27
20
  nameKey: "tools.graph.name",
28
21
  descriptionKey: "tools.graph.description",
29
22
  icon: "chart-bar",
30
- // Graph is a section-level floating tool.
31
- supportedLevels: ["section"],
32
- // PNP support IDs
33
- // Maps to QTI 3.0 standard features: graph, graphingCalculator
34
- pnpSupportIds: [
35
- "graph", // QTI 3.0 standard (assessment.graph)
36
- "graphingCalculator", // QTI 3.0 standard (assessment.graphingCalculator)
37
- ],
23
+ // A floating tool, placed on a section toolbar or on an item toolbar where
24
+ // the toolkit runs without a section.
25
+ supportedLevels: ["section", "item"],
38
26
  /**
39
27
  * Pass 2: Graph is relevant when math content is present
40
28
  */
@@ -66,13 +54,9 @@ export const periodicTableToolRegistration = {
66
54
  nameKey: "tools.periodicTable.name",
67
55
  descriptionKey: "tools.periodicTable.description",
68
56
  icon: "beaker",
69
- // Periodic table is a section-level floating tool.
70
- supportedLevels: ["section"],
71
- // PNP support IDs
72
- // Maps to QTI 3.0 standard feature: periodicTable
73
- pnpSupportIds: [
74
- "periodicTable", // QTI 3.0 standard (assessment.periodicTable)
75
- ],
57
+ // A floating tool, placed on a section toolbar or on an item toolbar where
58
+ // the toolkit runs without a section.
59
+ supportedLevels: ["section", "item"],
76
60
  /**
77
61
  * Pass 2: Periodic table is relevant when science content is present
78
62
  */
@@ -2,13 +2,8 @@
2
2
  * Text-to-Speech (TTS) Tool Registration
3
3
  *
4
4
  * Registers the TTS tool for reading content aloud.
5
- *
6
- * Maps to QTI 3.0 standard access features:
7
- * - textToSpeech (auditory support)
8
- * - readAloud (auditory support)
9
5
  */
10
- import type { ToolRegistration } from "@pie-players/pie-assessment-toolkit/tools/internal";
11
- export declare const TOOL_ELEMENT_UNMOUNT_CALLBACK_PROP = "__pieToolElementUnmount";
6
+ import type { ToolRegistration } from "@pie-players/pie-assessment-toolkit/tools/registration";
12
7
  export declare const TOOL_ACTIVE_CHANGE_EVENT = "pie-tool-active-change";
13
8
  /**
14
9
  * Text-to-Speech tool registration
@@ -2,17 +2,15 @@
2
2
  * Text-to-Speech (TTS) Tool Registration
3
3
  *
4
4
  * Registers the TTS tool for reading content aloud.
5
- *
6
- * Maps to QTI 3.0 standard access features:
7
- * - textToSpeech (auditory support)
8
- * - readAloud (auditory support)
9
5
  */
10
- import { hasReadableText } from "@pie-players/pie-assessment-toolkit/tools/internal";
11
- import { createScopedToolId } from "@pie-players/pie-assessment-toolkit/tools/internal";
12
- import { buildRuntimeTTSConfig, normalizeTTSLayoutMode, normalizeTTSSpeedControlOptions, resolveTTSHostToolbarLayout, resolveTTSLayoutMode, resolveTTSBackend, resolveTTSRuntimeSettings, resolveRuntimeProvider, resolveTransportMode, } from "@pie-players/pie-assessment-toolkit/tools/internal";
13
- import { TTSToolProvider } from "@pie-players/pie-assessment-toolkit/tools/internal";
14
- const inlineTTSControls = new Map();
15
- export const TOOL_ELEMENT_UNMOUNT_CALLBACK_PROP = "__pieToolElementUnmount";
6
+ import { hasReadableText } from "@pie-players/pie-assessment-toolkit/tools/registration";
7
+ import { createScopedToolId, createToolElement, } from "@pie-players/pie-assessment-toolkit/tools/registration";
8
+ import { buildRuntimeTTSConfig, normalizeTTSLayoutMode, normalizeTTSSpeedControlOptions, resolveTTSHostToolbarLayout, resolveTTSLayoutMode, resolveTTSRuntimeSettings, } from "@pie-players/pie-assessment-toolkit/tools/registration";
9
+ import { TTSToolProvider } from "@pie-players/pie-assessment-toolkit/tools/registration";
10
+ import { resolveOverlayElement } from "./overlay-element-cache.js";
11
+ // This package owns the server adapter's import, so the toolkit never names it
12
+ // and a bundler building the toolkit alone has nothing to resolve.
13
+ const loadServerTTSProvider = async () => (await import("@pie-players/tts-client-server")).ServerTTSProvider;
16
14
  export const TOOL_ACTIVE_CHANGE_EVENT = "pie-tool-active-change";
17
15
  /**
18
16
  * Text-to-Speech tool registration
@@ -30,63 +28,34 @@ export const ttsToolRegistration = {
30
28
  descriptionKey: "tools.textToSpeech.description",
31
29
  icon: "volume-up",
32
30
  provider: {
33
- getProviderId: () => "tts",
34
31
  createProvider: (config) => {
35
- const settings = resolveTTSRuntimeSettings(config);
36
- return new TTSToolProvider(resolveTTSBackend(settings));
37
- },
38
- getInitConfig: (config) => {
39
- const settings = resolveTTSRuntimeSettings(config);
40
- const backend = resolveTTSBackend(settings);
41
- const serverProvider = resolveRuntimeProvider(settings, backend);
42
- const transportMode = resolveTransportMode(settings, serverProvider);
43
- return {
44
- backend,
45
- serverProvider,
46
- transportMode,
47
- ...buildRuntimeTTSConfig(settings),
48
- };
32
+ return new TTSToolProvider(resolveTTSRuntimeSettings(config).backend, {
33
+ loadServerProvider: loadServerTTSProvider,
34
+ });
49
35
  },
36
+ getInitConfig: (config) => buildRuntimeTTSConfig(resolveTTSRuntimeSettings(config)),
50
37
  getAuthFetcher: (config) => {
51
38
  const runtimeAuthFetcher = config?.provider?.runtime?.authFetcher;
52
39
  return typeof runtimeAuthFetcher === "function"
53
40
  ? runtimeAuthFetcher
54
41
  : undefined;
55
42
  },
56
- sanitizeConfig: (config) => {
57
- const settings = config.settings && typeof config.settings === "object"
58
- ? { ...config.settings }
59
- : undefined;
60
- if (settings && "layoutMode" in settings) {
61
- settings.layoutMode = normalizeTTSLayoutMode(settings.layoutMode);
62
- }
63
- if (settings && "speedOptions" in settings) {
64
- settings.speedOptions = normalizeTTSSpeedControlOptions(settings.speedOptions);
65
- }
66
- const normalizedConfig = {
67
- ...config,
68
- };
69
- if ("layoutMode" in normalizedConfig) {
70
- normalizedConfig.layoutMode = normalizeTTSLayoutMode(normalizedConfig.layoutMode);
71
- }
72
- if ("speedOptions" in normalizedConfig) {
73
- normalizedConfig.speedOptions = normalizeTTSSpeedControlOptions(normalizedConfig.speedOptions);
74
- }
75
- if (settings) {
76
- normalizedConfig.settings = settings;
77
- }
78
- return normalizedConfig;
79
- },
80
43
  lazy: true,
81
44
  },
45
+ sanitizeConfig: (config) => {
46
+ const normalizedConfig = {
47
+ ...config,
48
+ };
49
+ if ("layoutMode" in normalizedConfig) {
50
+ normalizedConfig.layoutMode = normalizeTTSLayoutMode(normalizedConfig.layoutMode);
51
+ }
52
+ if ("speedOptions" in normalizedConfig) {
53
+ normalizedConfig.speedOptions = normalizeTTSSpeedControlOptions(normalizedConfig.speedOptions);
54
+ }
55
+ return normalizedConfig;
56
+ },
82
57
  // TTS is inline-only and scoped to item/passage contexts.
83
58
  supportedLevels: ["item", "passage"],
84
- // PNP support IDs that enable this tool
85
- // Maps to QTI 3.0 standard features: textToSpeech, readAloud
86
- pnpSupportIds: [
87
- "textToSpeech", // QTI 3.0 standard (auditory.textToSpeech)
88
- "readAloud", // QTI 3.0 standard (auditory.readAloud)
89
- ],
90
59
  /**
91
60
  * Pass 2: Determine if TTS is relevant in this context
92
61
  *
@@ -96,7 +65,7 @@ export const ttsToolRegistration = {
96
65
  isVisibleInContext(context) {
97
66
  return hasReadableText(context);
98
67
  },
99
- renderToolbar(_context, toolbarContext) {
68
+ renderToolbar(context, toolbarContext) {
100
69
  const resolveRuntimeSettings = () => resolveTTSRuntimeSettings(toolbarContext.toolkitCoordinator?.getToolConfig(this.toolId) ||
101
70
  undefined);
102
71
  const resolveElementSpeedOptions = () => {
@@ -106,45 +75,38 @@ export const ttsToolRegistration = {
106
75
  const resolveLayoutMode = () => resolveTTSLayoutMode(resolveRuntimeSettings());
107
76
  const resolveHostLayout = () => resolveTTSHostToolbarLayout(resolveRuntimeSettings());
108
77
  const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
78
+ // Only a language the toolbar or its host named: unnamed, the control resolves
79
+ // markup `lang`, and the browser voice follows the browser's language.
80
+ const applyContentLanguage = (element) => {
81
+ if (toolbarContext.language) {
82
+ element.setAttribute("language", toolbarContext.language);
83
+ }
84
+ else {
85
+ element.removeAttribute("language");
86
+ }
87
+ };
109
88
  const resolveControlSize = () => {
110
89
  const raw = toolbarContext.ui?.size;
111
90
  return raw === "sm" || raw === "lg" ? raw : "md";
112
91
  };
113
- const ensureElement = () => {
114
- let element = inlineTTSControls.get(fullToolId);
115
- if (element &&
116
- typeof element.isConnected ===
117
- "boolean" &&
118
- !element.isConnected) {
119
- inlineTTSControls.delete(fullToolId);
120
- element = undefined;
121
- }
122
- if (!element) {
123
- element = document.createElement("pie-tool-tts-inline");
124
- element[TOOL_ELEMENT_UNMOUNT_CALLBACK_PROP] = () => {
125
- if (inlineTTSControls.get(fullToolId) === element) {
126
- inlineTTSControls.delete(fullToolId);
127
- }
128
- };
129
- inlineTTSControls.set(fullToolId, element);
130
- }
131
- element.setAttribute("tool-id", fullToolId);
92
+ const element = resolveOverlayElement(toolbarContext, fullToolId, () => createToolElement(this.toolId, context, toolbarContext, toolbarContext.componentOverrides));
93
+ const applyAttributes = () => {
132
94
  element.setAttribute("catalog-id", toolbarContext.catalogId || toolbarContext.itemId);
133
- element.setAttribute("language", toolbarContext.language || "en-US");
95
+ applyContentLanguage(element);
134
96
  element.setAttribute("size", resolveControlSize());
135
97
  element.setAttribute("layout-mode", resolveLayoutMode());
136
98
  element.speedOptions = resolveElementSpeedOptions();
137
99
  element.showSingleSpeedOption =
138
100
  resolveRuntimeSettings().showSingleSpeedOption === true;
139
- return element;
140
101
  };
102
+ applyAttributes();
141
103
  const hostLayout = resolveHostLayout();
142
104
  return {
143
105
  toolId: this.toolId,
144
106
  button: null,
145
107
  elements: [
146
108
  {
147
- element: ensureElement(),
109
+ element,
148
110
  mount: hostLayout.mount,
149
111
  layoutHints: {
150
112
  controlsRow: {
@@ -158,7 +120,6 @@ export const ttsToolRegistration = {
158
120
  },
159
121
  ],
160
122
  subscribeActive: (callback) => {
161
- const element = ensureElement();
162
123
  const handler = (event) => {
163
124
  const detail = event.detail;
164
125
  callback(detail?.active === true);
@@ -168,17 +129,7 @@ export const ttsToolRegistration = {
168
129
  element.removeEventListener(TOOL_ACTIVE_CHANGE_EVENT, handler);
169
130
  };
170
131
  },
171
- sync: () => {
172
- const element = ensureElement();
173
- element.setAttribute("tool-id", fullToolId);
174
- element.setAttribute("catalog-id", toolbarContext.catalogId || toolbarContext.itemId);
175
- element.setAttribute("language", toolbarContext.language || "en-US");
176
- element.setAttribute("size", resolveControlSize());
177
- element.setAttribute("layout-mode", resolveLayoutMode());
178
- element.speedOptions = resolveElementSpeedOptions();
179
- element.showSingleSpeedOption =
180
- resolveRuntimeSettings().showSingleSpeedOption === true;
181
- },
132
+ sync: applyAttributes,
182
133
  };
183
134
  },
184
135
  };
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@pie-players/pie-default-tool-loaders",
3
- "version": "0.3.73",
3
+ "version": "0.3.75",
4
4
  "type": "module",
5
- "description": "Composition layer for the packaged PIE assessment tools: registrations, tag map, placement presets, universal supports and lazy module loaders",
5
+ "description": "Composition layer for the packaged PIE assessment tools: registrations, tag map, placement preset, universal and empty profiles, and lazy module loaders",
6
6
  "repository": {
7
7
  "type": "git",
8
8
  "url": "git+https://github.com/pie-framework/pie-players.git",
@@ -29,30 +29,33 @@
29
29
  "check:composition": "bun test tests/packaged-capability-composition.test.ts",
30
30
  "dev": "tsc -p tsconfig.json --watch",
31
31
  "typecheck": "tsc -p tsconfig.json --noEmit",
32
- "lint": "biome check .",
32
+ "lint": "biome lint .",
33
33
  "test": "bun test"
34
34
  },
35
35
  "dependencies": {
36
- "@pie-players/pie-assessment-toolkit": "0.3.73",
37
- "@pie-players/pie-players-shared": "0.3.73",
38
- "@pie-players/pie-tool-annotation-toolbar": "0.3.73",
39
- "@pie-players/pie-tool-answer-eliminator": "0.3.73",
40
- "@pie-players/pie-tool-calculator-desmos": "0.3.73",
41
- "@pie-players/pie-tool-calculator-cortex": "0.3.73",
42
- "@pie-players/pie-tool-calculator-geogebra": "0.3.73",
43
- "@pie-players/pie-tool-calculator-shared": "0.3.73",
44
- "@pie-players/pie-tool-dictionary": "0.3.73",
45
- "@pie-players/pie-tool-graph": "0.3.73",
46
- "@pie-players/pie-tool-line-reader": "0.3.73",
47
- "@pie-players/pie-tool-periodic-table": "0.3.73",
48
- "@pie-players/pie-tool-picture-dictionary": "0.3.73",
49
- "@pie-players/pie-tool-protractor": "0.3.73",
50
- "@pie-players/pie-tool-ruler": "0.3.73",
51
- "@pie-players/pie-tool-theme": "0.3.73",
52
- "@pie-players/pie-tool-tts-inline": "0.3.73"
36
+ "@pie-players/pie-assessment-toolkit": "0.3.75",
37
+ "@pie-players/pie-calculator": "0.3.75",
38
+ "@pie-players/pie-calculator-cortex": "0.3.75",
39
+ "@pie-players/pie-calculator-desmos": "0.3.75",
40
+ "@pie-players/pie-calculator-geogebra": "0.3.75",
41
+ "@pie-players/pie-players-shared": "0.3.75",
42
+ "@pie-players/pie-tool-annotation-toolbar": "0.3.75",
43
+ "@pie-players/pie-tool-answer-eliminator": "0.3.75",
44
+ "@pie-players/pie-tool-calculator-shared": "0.3.75",
45
+ "@pie-players/pie-tool-dictionary": "0.3.75",
46
+ "@pie-players/pie-tool-graph": "0.3.75",
47
+ "@pie-players/pie-tool-line-reader": "0.3.75",
48
+ "@pie-players/pie-tool-periodic-table": "0.3.75",
49
+ "@pie-players/pie-tool-picture-dictionary": "0.3.75",
50
+ "@pie-players/pie-tool-protractor": "0.3.75",
51
+ "@pie-players/pie-tool-ruler": "0.3.75",
52
+ "@pie-players/pie-tool-theme": "0.3.75",
53
+ "@pie-players/pie-tool-tts-inline": "0.3.75",
54
+ "@pie-players/tts-client-server": "0.3.75"
53
55
  },
54
56
  "devDependencies": {
55
- "@biomejs/biome": "^2.5.13",
57
+ "@biomejs/biome": "^2.5.15",
58
+ "@happy-dom/global-registrator": "^20.14.5",
56
59
  "typescript": "^5.9.3"
57
60
  },
58
61
  "homepage": "https://github.com/pie-framework/pie-players/tree/master/packages/default-tool-loaders#readme",
@@ -1,2 +0,0 @@
1
- export type { PackagedToolRegistryOptions, RegisterPackagedToolsOptions, } from "./packaged-capability-composition.js";
2
- export { createPackagedToolRegistry, PACKAGED_TOOL_ORDER, PACKAGED_TOOL_REGISTRATIONS, registerPackagedTools, } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { createPackagedToolRegistry, PACKAGED_TOOL_ORDER, PACKAGED_TOOL_REGISTRATIONS, registerPackagedTools, } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { PACKAGED_TOOL_PLACEMENT, SECTION_PLAYER_PREFERRED_TOOL_PLACEMENT, } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { PACKAGED_TOOL_PLACEMENT, SECTION_PLAYER_PREFERRED_TOOL_PLACEMENT, } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { PACKAGED_TOOL_TAG_MAP } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { PACKAGED_TOOL_TAG_MAP } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { UNIVERSAL_SUPPORTS_PRESET, createUniversalPersonalNeedsProfile, } from "./packaged-capability-composition.js";
@@ -1 +0,0 @@
1
- export { UNIVERSAL_SUPPORTS_PRESET, createUniversalPersonalNeedsProfile, } from "./packaged-capability-composition.js";