@pie-players/pie-assessment-toolkit 1.0.0-beta.3 → 1.0.0-beta.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 (38) hide show
  1. package/README.md +15 -7
  2. package/custom-elements.json +19 -0
  3. package/dist/components/ItemScope.custom-element.js +1 -1
  4. package/dist/components/ItemToolBar.custom-element.js +1 -1
  5. package/dist/components/PieAssessmentToolkit.custom-element.js +7 -7
  6. package/dist/components/SectionToolBar.custom-element.js +1 -1
  7. package/dist/components/chunks/ItemToolBar-4vq9nbxz.js +2 -0
  8. package/dist/components/chunks/{ItemToolBar-jpac75fa.js → ItemToolBar-f971t0cw.js} +1 -1
  9. package/dist/components/chunks/{ItemToolBar-341vf20n.js → ItemToolBar-n05xjkp8.js} +2 -2
  10. package/dist/components/chunks/{ItemToolBar-66hcwmfw.js → ItemToolBar-pxan157g.js} +2 -2
  11. package/dist/components/chunks/ItemToolBar-rgmvw9sm.js +40 -0
  12. package/dist/components/chunks/{ItemToolBar-kkj69ptr.js → ItemToolBar-xwjrpdmz.js} +1 -1
  13. package/dist/components/chunks/sre-engine-dq0w45fv.js +1 -0
  14. package/dist/policy/core/ToolPolicyEngine.d.ts +8 -0
  15. package/dist/policy/core/ToolPolicyEngine.js +4 -2
  16. package/dist/policy/core/compose-decision.d.ts +7 -1
  17. package/dist/policy/core/compose-decision.js +29 -0
  18. package/dist/policy/core/decision-types.d.ts +20 -0
  19. package/dist/policy/core/feature-decision.d.ts +8 -1
  20. package/dist/policy/core/feature-decision.js +9 -2
  21. package/dist/policy/core/provenance.d.ts +1 -1
  22. package/dist/policy/engine.d.ts +2 -1
  23. package/dist/policy/sources/PnpPolicySource.d.ts +44 -2
  24. package/dist/policy/sources/PnpPolicySource.js +80 -11
  25. package/dist/runtime/core/engine-resolver.d.ts +17 -0
  26. package/dist/runtime/item-feature-decisions.d.ts +44 -0
  27. package/dist/runtime/item-feature-decisions.js +115 -0
  28. package/dist/services/ToolkitCoordinator.d.ts +9 -0
  29. package/dist/services/ToolkitCoordinator.js +23 -0
  30. package/dist/services/interfaces.d.ts +10 -0
  31. package/dist/services/support-conflicts.d.ts +10 -0
  32. package/dist/services/support-conflicts.js +11 -0
  33. package/dist/services/tool-config-validation.js +8 -2
  34. package/dist/services/tool-icons.js +1 -0
  35. package/package.json +6 -6
  36. package/dist/components/chunks/ItemToolBar-qvtpthc9.js +0 -40
  37. package/dist/components/chunks/ItemToolBar-vdkyn9f3.js +0 -2
  38. package/dist/components/chunks/sre-engine-bj997w4b.js +0 -1
@@ -1,4 +1,5 @@
1
1
  import { normalizeToolsConfig, } from "./tools-config-normalizer.js";
2
+ import { ITEM_PLAYER_FEATURE_IDS } from "../runtime/item-feature-decisions.js";
2
3
  const DEFAULT_STRICTNESS = "error";
3
4
  export function normalizeToolConfigStrictness(value) {
4
5
  if (value === "off" || value === "warn" || value === "error") {
@@ -129,11 +130,16 @@ function collectPlacementDiagnostics(config, toolMap, diagnostics) {
129
130
  }
130
131
  }
131
132
  }
133
+ /**
134
+ * Ids the host gates decide that name no tool: the features an item player
135
+ * applies to its item's models.
136
+ */
137
+ const POLICY_FEATURE_IDS = new Set(ITEM_PLAYER_FEATURE_IDS);
132
138
  function collectPolicyDiagnostics(config, toolMap, diagnostics) {
133
139
  if (toolMap.size === 0)
134
140
  return;
135
141
  for (const toolId of config.policy.allowed || []) {
136
- if (toolMap.has(toolId))
142
+ if (toolMap.has(toolId) || POLICY_FEATURE_IDS.has(toolId))
137
143
  continue;
138
144
  diagnostics.push(createDiagnostic({
139
145
  code: "tools.unknownToolId",
@@ -144,7 +150,7 @@ function collectPolicyDiagnostics(config, toolMap, diagnostics) {
144
150
  }));
145
151
  }
146
152
  for (const toolId of config.policy.blocked || []) {
147
- if (toolMap.has(toolId))
153
+ if (toolMap.has(toolId) || POLICY_FEATURE_IDS.has(toolId))
148
154
  continue;
149
155
  diagnostics.push(createDiagnostic({
150
156
  code: "tools.unknownToolId",
@@ -22,6 +22,7 @@ const TOOL_FALLBACK_ICONS = {
22
22
  beaker: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 21c-.85 0-1.454-.38-1.813-1.137-.358-.759-.27-1.463.263-2.113L9 11V5H8a.968.968 0 0 1-.713-.287A.968.968 0 0 1 7 4c0-.283.096-.52.287-.712A.968.968 0 0 1 8 3h8c.283 0 .52.096.712.288.192.191.288.429.288.712s-.096.52-.288.713A.968.968 0 0 1 16 5h-1v6l5.55 6.75c.533.65.62 1.354.262 2.113C20.454 20.62 19.85 21 19 21H5Zm2-3h10l-3.4-4h-3.2L7 18Zm-2 1h14l-6-7.3V5h-2v6.7L5 19Z" fill="currentColor"/></svg>',
23
23
  protractor: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m6.75 21-.25-2.2 2.85-7.85a3.95 3.95 0 0 0 1.75.95l-2.75 7.55L6.75 21Zm10.5 0-1.6-1.55-2.75-7.55a3.948 3.948 0 0 0 1.75-.95l2.85 7.85-.25 2.2ZM12 11a2.893 2.893 0 0 1-2.125-.875A2.893 2.893 0 0 1 9 8c0-.65.188-1.23.563-1.737A2.935 2.935 0 0 1 11 5.2V3h2v2.2c.583.2 1.063.554 1.438 1.063C14.812 6.77 15 7.35 15 8c0 .833-.292 1.542-.875 2.125A2.893 2.893 0 0 1 12 11Zm0-2c.283 0 .52-.096.713-.287A.967.967 0 0 0 13 8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8c0 .283.096.52.287.713.192.191.43.287.713.287Z" fill="currentColor"/></svg>',
24
24
  "bars-3": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.85 15c.517 0 .98-.15 1.388-.45.408-.3.695-.692.862-1.175l.375-1.15c.267-.8.2-1.537-.2-2.213C8.875 9.337 8.3 9 7.55 9H4.025l.475 3.925c.083.583.346 1.075.787 1.475.442.4.963.6 1.563.6Zm10.3 0c.6 0 1.12-.2 1.563-.6.441-.4.704-.892.787-1.475L19.975 9h-3.5c-.75 0-1.325.342-1.725 1.025-.4.683-.467 1.425-.2 2.225l.35 1.125c.167.483.454.875.862 1.175.409.3.871.45 1.388.45Zm-10.3 2c-1.1 0-2.063-.363-2.887-1.088a4.198 4.198 0 0 1-1.438-2.737L2 9H1V7h6.55c.733 0 1.404.18 2.013.537A3.906 3.906 0 0 1 11 9h2.025c.35-.617.83-1.104 1.438-1.463A3.892 3.892 0 0 1 16.474 7H23v2h-1l-.525 4.175a4.198 4.198 0 0 1-1.438 2.737A4.238 4.238 0 0 1 17.15 17c-.95 0-1.804-.27-2.562-.813A4.234 4.234 0 0 1 13 14.026l-.375-1.125a21.35 21.35 0 0 1-.1-.363 4.926 4.926 0 0 1-.1-.537h-.85c-.033.2-.067.363-.1.488a21.35 21.35 0 0 1-.1.362L11 14a4.3 4.3 0 0 1-1.588 2.175A4.258 4.258 0 0 1 6.85 17Z" fill="currentColor"/></svg>',
25
+ "magnifying-glass": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.5 14h-.79l-.28-.27A6.47 6.47 0 0 0 16 9.5 6.5 6.5 0 1 0 9.5 16a6.47 6.47 0 0 0 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5Zm-6 0A4.5 4.5 0 1 1 14 9.5 4.49 4.49 0 0 1 9.5 14ZM12 10h-2v2H9v-2H7V9h2V7h1v2h2v1Z" fill="currentColor"/></svg>',
25
26
  ruler: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.8 10.95 2.15-2.175-1.4-1.425-1.1 1.1-1.4-1.4 1.075-1.1L7 4.825 4.825 7 8.8 10.95Zm8.2 8.225L19.175 17l-1.125-1.125-1.1 1.075-1.4-1.4 1.075-1.1-1.425-1.4-2.15 2.15L17 19.175ZM7.25 21H3v-4.25l4.375-4.375L2 7l5-5 5.4 5.4 3.775-3.8c.2-.2.425-.35.675-.45a2.068 2.068 0 0 1 1.55 0c.25.1.475.25.675.45L20.4 4.95c.2.2.35.425.45.675.1.25.15.508.15.775a1.975 1.975 0 0 1-.6 1.425l-3.775 3.8L22 17l-5 5-5.375-5.375L7.25 21ZM5 19h1.4l9.8-9.775L14.775 7.8 5 17.6V19Z" fill="currentColor"/></svg>',
26
27
  "book-open": '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 6.25a6.6 6.6 0 0 0-2.3-1.32A8.6 8.6 0 0 0 7 4.5c-.63 0-1.25.06-1.85.18-.6.12-1.19.3-1.76.54a1.5 1.5 0 0 0-.93 1.4v10.1c0 .52.26.98.68 1.24.42.26.92.28 1.35.06.36-.18.75-.31 1.18-.4.42-.09.86-.13 1.33-.13.78 0 1.53.14 2.24.42.7.28 1.35.7 1.93 1.24l.83-.75.83.75c.58-.54 1.22-.96 1.93-1.24a6.1 6.1 0 0 1 2.24-.42c.47 0 .91.04 1.33.13.43.09.82.22 1.18.4.43.22.93.2 1.35-.06.42-.26.68-.72.68-1.24V6.62c0-.6-.36-1.15-.93-1.4a9.3 9.3 0 0 0-1.76-.54A9.8 9.8 0 0 0 17 4.5a8.6 8.6 0 0 0-2.7.43A6.6 6.6 0 0 0 12 6.25Zm1 10.06V8.02c.55-.5 1.16-.88 1.84-1.13A6 6 0 0 1 17 6.5c.45 0 .89.04 1.32.11.43.08.85.19 1.26.34v9.24a8.2 8.2 0 0 0-1.28-.24A10 10 0 0 0 17 15.85c-.72 0-1.42.09-2.09.26a7.7 7.7 0 0 0-1.91.8Zm-2 0a7.7 7.7 0 0 0-1.91-.8 8.4 8.4 0 0 0-2.09-.26c-.44 0-.87.02-1.3.07-.43.05-.86.13-1.28.24V6.95c.41-.15.83-.26 1.26-.34A7.7 7.7 0 0 1 7 6.5c.76 0 1.48.13 2.16.39.68.25 1.29.63 1.84 1.13Z" fill="currentColor"/></svg>',
27
28
  photo: '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 21c-.55 0-1.02-.2-1.41-.59A1.93 1.93 0 0 1 2 19V5c0-.55.2-1.02.59-1.41A1.93 1.93 0 0 1 4 3h16c.55 0 1.02.2 1.41.59.39.39.59.86.59 1.41v14c0 .55-.2 1.02-.59 1.41-.39.39-.86.59-1.41.59H4Zm0-2h16V5H4v14Zm1.5-2.5h13l-4.1-5.47-3.4 4.47-2.5-3.25L5.5 16.5ZM8.5 10a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" fill="currentColor"/></svg>',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pie-players/pie-assessment-toolkit",
3
- "version": "1.0.0-beta.3",
3
+ "version": "1.0.0-beta.4",
4
4
  "type": "module",
5
5
  "description": "PIE assessment toolkit: composable services + reference implementation for assessment players and tool coordination",
6
6
  "license": "MIT",
@@ -69,16 +69,16 @@
69
69
  "test": "bun test"
70
70
  },
71
71
  "dependencies": {
72
- "@pie-players/pie-calculator": "1.0.0-beta.3",
73
- "@pie-players/pie-context": "1.0.0-beta.3",
74
- "@pie-players/pie-players-shared": "1.0.0-beta.3",
75
- "@pie-players/pie-tts": "1.0.0-beta.3",
72
+ "@pie-players/pie-calculator": "1.0.0-beta.4",
73
+ "@pie-players/pie-context": "1.0.0-beta.4",
74
+ "@pie-players/pie-players-shared": "1.0.0-beta.4",
75
+ "@pie-players/pie-tts": "1.0.0-beta.4",
76
76
  "speech-rule-engine": "5.0.0-rc.4"
77
77
  },
78
78
  "devDependencies": {
79
79
  "@biomejs/biome": "^2.5.15",
80
80
  "@happy-dom/global-registrator": "^20.14.5",
81
- "@pie-players/tts-client-server": "1.0.0-beta.3",
81
+ "@pie-players/tts-client-server": "1.0.0-beta.4",
82
82
  "svelte": "^5.57.2",
83
83
  "svelte-check": "^4.7.6",
84
84
  "typescript": "^5.9.3"
@@ -1,40 +0,0 @@
1
- import{m as O6,n as G6,p as F6,r as P6}from"./ItemToolBar-341vf20n.js";import{$ as V6,A as r,B as K6,C as iJ,D as yJ,F as TZ,G as $,H as o,I as J,K as VZ,L as X6,M as LJ,N as xJ,O as y,Q as NJ,R as Q6,S as YZ,T as Q0,V as U6,W as LZ,X as U0,Y as OJ,Z as l,_ as BJ,aa as u,ba as Y6,ca as L6,ha as q6,ia as D6,ka as V0,la as N6,ma as l0,t as AZ,u as GJ,v as Z6,w as j6,x as O,y as h,z as UJ}from"./ItemToolBar-jpac75fa.js";import{ContextProvider as G9}from"@pie-players/pie-context";function j0(D,L,M,H){if(typeof D?.reportToolFailure==="function"){D.reportToolFailure(L,M,H);return}console.error(`[${L}] ${M} failed:`,H)}function K0(D){return typeof D.href==="string"}function a0(D){if(!D||typeof D!=="object"||Array.isArray(D))return!1;let L=D;if(typeof L.id!=="string"||L.id.trim().length===0)return!1;if(typeof L.label!=="string"||L.label.trim().length===0)return!1;if(L.ariaLabel!==void 0&&typeof L.ariaLabel!=="string")return!1;if(L.icon!==void 0&&typeof L.icon!=="string")return!1;if(L.tooltip!==void 0&&typeof L.tooltip!=="string")return!1;if(L.active!==void 0&&typeof L.active!=="boolean")return!1;if(L.disabled!==void 0&&typeof L.disabled!=="boolean")return!1;let M=typeof L.href==="string",H=typeof L.onClick==="function";return M!==H}function i0(D){return typeof D==="string"&&D.trimStart().startsWith("<svg")}function s0(D){return typeof D==="string"&&D.trimStart().startsWith("http")}import{sanitizeSvgIcon as n0}from"@pie-players/pie-players-shared/security";import{resolveInterfaceI18n as N9}from"@pie-players/pie-players-shared/i18n/provider";import{collectFocusable as F9,createFocusTrap as P9,createPointerGesture as W9,FOCUSABLE_SELECTOR as M9,isProgrammaticFocusTarget as R9}from"@pie-players/pie-players-shared";var j9={calculator:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 2h10a2 2 0 0 1 2 2v16a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2Zm0 2v4h10V4H7Zm0 6v2h2v-2H7Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Zm-8 4v2h2v-2H7Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Zm-8 4v2h2v-2H7Zm4 0v2h2v-2h-2Zm4 0v2h2v-2h-2Z" fill="currentColor"/></svg>',"volume-up":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 3.23v2.06A7.002 7.002 0 0 1 19 12a7 7 0 0 1-5 6.71v2.06c4.01-.91 7-4.49 7-8.77s-2.99-7.86-7-8.77Zm-2 17.75V3L7 8H3v8h4l5 5Zm4.5-9a4.5 4.5 0 0 0-2.5-4.03v8.05A4.5 4.5 0 0 0 16.5 12Z" fill="currentColor"/></svg>',swatch:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 3a9 9 0 1 0 9 9c0-.55-.45-1-1-1h-2.5a1.5 1.5 0 0 1 0-3H20a1 1 0 0 0 1-1 8.99 8.99 0 0 0-9-4Zm-5.5 9A1.5 1.5 0 1 1 8 13.5 1.5 1.5 0 0 1 6.5 12Zm3-4A1.5 1.5 0 1 1 11 9.5 1.5 1.5 0 0 1 9.5 8Zm5 0A1.5 1.5 0 1 1 16 9.5 1.5 1.5 0 0 1 14.5 8Z" fill="currentColor"/></svg>',"chart-bar":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4.75 5a.76.76 0 0 1 .75.75v11c0 .438.313.75.75.75h13a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-13C5 19 4 18 4 16.75v-11A.74.74 0 0 1 4.75 5ZM8 8.25a.74.74 0 0 1 .75-.75h6.5a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-6.5A.722.722 0 0 1 8 8.25Zm.75 2.25h4.5a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-4.5a.723.723 0 0 1-.75-.75.74.74 0 0 1 .75-.75Zm0 3h8.5a.76.76 0 0 1 .696 1.039.74.74 0 0 1-.696.461h-8.5a.723.723 0 0 1-.75-.75.74.74 0 0 1 .75-.75Z" fill="currentColor"/></svg>',beaker:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M5 21c-.85 0-1.454-.38-1.813-1.137-.358-.759-.27-1.463.263-2.113L9 11V5H8a.968.968 0 0 1-.713-.287A.968.968 0 0 1 7 4c0-.283.096-.52.287-.712A.968.968 0 0 1 8 3h8c.283 0 .52.096.712.288.192.191.288.429.288.712s-.096.52-.288.713A.968.968 0 0 1 16 5h-1v6l5.55 6.75c.533.65.62 1.354.262 2.113C20.454 20.62 19.85 21 19 21H5Zm2-3h10l-3.4-4h-3.2L7 18Zm-2 1h14l-6-7.3V5h-2v6.7L5 19Z" fill="currentColor"/></svg>',protractor:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m6.75 21-.25-2.2 2.85-7.85a3.95 3.95 0 0 0 1.75.95l-2.75 7.55L6.75 21Zm10.5 0-1.6-1.55-2.75-7.55a3.948 3.948 0 0 0 1.75-.95l2.85 7.85-.25 2.2ZM12 11a2.893 2.893 0 0 1-2.125-.875A2.893 2.893 0 0 1 9 8c0-.65.188-1.23.563-1.737A2.935 2.935 0 0 1 11 5.2V3h2v2.2c.583.2 1.063.554 1.438 1.063C14.812 6.77 15 7.35 15 8c0 .833-.292 1.542-.875 2.125A2.893 2.893 0 0 1 12 11Zm0-2c.283 0 .52-.096.713-.287A.967.967 0 0 0 13 8a.967.967 0 0 0-.287-.713A.968.968 0 0 0 12 7a.968.968 0 0 0-.713.287A.967.967 0 0 0 11 8c0 .283.096.52.287.713.192.191.43.287.713.287Z" fill="currentColor"/></svg>',"bars-3":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M6.85 15c.517 0 .98-.15 1.388-.45.408-.3.695-.692.862-1.175l.375-1.15c.267-.8.2-1.537-.2-2.213C8.875 9.337 8.3 9 7.55 9H4.025l.475 3.925c.083.583.346 1.075.787 1.475.442.4.963.6 1.563.6Zm10.3 0c.6 0 1.12-.2 1.563-.6.441-.4.704-.892.787-1.475L19.975 9h-3.5c-.75 0-1.325.342-1.725 1.025-.4.683-.467 1.425-.2 2.225l.35 1.125c.167.483.454.875.862 1.175.409.3.871.45 1.388.45Zm-10.3 2c-1.1 0-2.063-.363-2.887-1.088a4.198 4.198 0 0 1-1.438-2.737L2 9H1V7h6.55c.733 0 1.404.18 2.013.537A3.906 3.906 0 0 1 11 9h2.025c.35-.617.83-1.104 1.438-1.463A3.892 3.892 0 0 1 16.474 7H23v2h-1l-.525 4.175a4.198 4.198 0 0 1-1.438 2.737A4.238 4.238 0 0 1 17.15 17c-.95 0-1.804-.27-2.562-.813A4.234 4.234 0 0 1 13 14.026l-.375-1.125a21.35 21.35 0 0 1-.1-.363 4.926 4.926 0 0 1-.1-.537h-.85c-.033.2-.067.363-.1.488a21.35 21.35 0 0 1-.1.362L11 14a4.3 4.3 0 0 1-1.588 2.175A4.258 4.258 0 0 1 6.85 17Z" fill="currentColor"/></svg>',ruler:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="m8.8 10.95 2.15-2.175-1.4-1.425-1.1 1.1-1.4-1.4 1.075-1.1L7 4.825 4.825 7 8.8 10.95Zm8.2 8.225L19.175 17l-1.125-1.125-1.1 1.075-1.4-1.4 1.075-1.1-1.425-1.4-2.15 2.15L17 19.175ZM7.25 21H3v-4.25l4.375-4.375L2 7l5-5 5.4 5.4 3.775-3.8c.2-.2.425-.35.675-.45a2.068 2.068 0 0 1 1.55 0c.25.1.475.25.675.45L20.4 4.95c.2.2.35.425.45.675.1.25.15.508.15.775a1.975 1.975 0 0 1-.6 1.425l-3.775 3.8L22 17l-5 5-5.375-5.375L7.25 21ZM5 19h1.4l9.8-9.775L14.775 7.8 5 17.6V19Z" fill="currentColor"/></svg>',"book-open":'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 6.25a6.6 6.6 0 0 0-2.3-1.32A8.6 8.6 0 0 0 7 4.5c-.63 0-1.25.06-1.85.18-.6.12-1.19.3-1.76.54a1.5 1.5 0 0 0-.93 1.4v10.1c0 .52.26.98.68 1.24.42.26.92.28 1.35.06.36-.18.75-.31 1.18-.4.42-.09.86-.13 1.33-.13.78 0 1.53.14 2.24.42.7.28 1.35.7 1.93 1.24l.83-.75.83.75c.58-.54 1.22-.96 1.93-1.24a6.1 6.1 0 0 1 2.24-.42c.47 0 .91.04 1.33.13.43.09.82.22 1.18.4.43.22.93.2 1.35-.06.42-.26.68-.72.68-1.24V6.62c0-.6-.36-1.15-.93-1.4a9.3 9.3 0 0 0-1.76-.54A9.8 9.8 0 0 0 17 4.5a8.6 8.6 0 0 0-2.7.43A6.6 6.6 0 0 0 12 6.25Zm1 10.06V8.02c.55-.5 1.16-.88 1.84-1.13A6 6 0 0 1 17 6.5c.45 0 .89.04 1.32.11.43.08.85.19 1.26.34v9.24a8.2 8.2 0 0 0-1.28-.24A10 10 0 0 0 17 15.85c-.72 0-1.42.09-2.09.26a7.7 7.7 0 0 0-1.91.8Zm-2 0a7.7 7.7 0 0 0-1.91-.8 8.4 8.4 0 0 0-2.09-.26c-.44 0-.87.02-1.3.07-.43.05-.86.13-1.28.24V6.95c.41-.15.83-.26 1.26-.34A7.7 7.7 0 0 1 7 6.5c.76 0 1.48.13 2.16.39.68.25 1.29.63 1.84 1.13Z" fill="currentColor"/></svg>',photo:'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 21c-.55 0-1.02-.2-1.41-.59A1.93 1.93 0 0 1 2 19V5c0-.55.2-1.02.59-1.41A1.93 1.93 0 0 1 4 3h16c.55 0 1.02.2 1.41.59.39.39.59.86.59 1.41v14c0 .55-.2 1.02-.59 1.41-.39.39-.86.59-1.41.59H4Zm0-2h16V5H4v14Zm1.5-2.5h13l-4.1-5.47-3.4 4.47-2.5-3.25L5.5 16.5ZM8.5 10a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z" fill="currentColor"/></svg>'};function d0(D){return j9[D]||null}import{runtimeElementTags as K9}from"@pie-players/pie-players-shared/pie";import{parseVersionedTagName as X9}from"@pie-players/pie-players-shared/pie/tag-names";function Q9(D){return D.level==="item"}function U9(D){return D.level==="passage"}function V9(D){return D.level==="element"}function X0(D){if(Array.isArray(D))return D;if(D&&typeof D==="object")return Object.values(D);return[]}function Y9(D,L){return X0(D).find((M)=>!!M&&typeof M==="object"&&M.id===L)}function L9(D,L){if(!L||typeof L!=="object")return;let M=L,H=M[D]??M[X9(D).baseName];return typeof H==="string"&&H?H:void 0}function q9(D){let L;try{L=D.pieSupports}catch{return}if(!Array.isArray(L))return;return L.filter((M)=>typeof M==="string")}function D9(D,L){if(!D||typeof D!=="object")return null;let{id:M,element:H}=D;if(typeof H!=="string"||!H)return null;let p=L9(H,L),FJ=K9(H,p),$J=typeof customElements>"u"?void 0:customElements;for(let IJ of FJ){let pJ=$J?.get(IJ);if(pJ)return{elementId:typeof M==="string"?M:void 0,tag:H,packageSpec:p,supports:q9(pJ),pendingTags:[]}}return{elementId:typeof M==="string"?M:void 0,tag:H,packageSpec:p,supports:void 0,pendingTags:$J?FJ:[]}}function r0(D){let L,M;if(V9(D))L=D.item.config,M=[Y9(L?.models,D.elementId)];else if(Q9(D))L=D.item?.config,M=X0(L?.models);else if(U9(D))L=D.passage?.config,M=X0(L?.models);else return[];return M.flatMap((H)=>{let p=D9(H,L?.elements);return p?[p]:[]})}function o0(){let D=null;return(L,M)=>{if(!L)return D=null,null;let H=L.visibleTools.map((p)=>({toolId:p.toolId,required:p.required,alwaysAvailable:p.alwaysAvailable,activateAtInit:p.activateAtInit,parameters:p.parameters}));if(D?.renderVersion===M&&l0(D.tools,H))return D.tools;return D={renderVersion:M,tools:H},H}}import"@pie-players/pie-players-shared/nds-icon-button";var O9=(D,L)=>{if(customElements.get(D))return;try{customElements.define(D,L)}catch(M){if(!(M instanceof DOMException&&M.name==="NotSupportedError"||M&&typeof M==="object"&&M.name==="NotSupportedError")||!customElements.get(D))throw M}},t0=(D,L=AZ)=>{var M=xJ(),H=yJ(M);{var p=(n)=>{var jJ=e0();Q0(jJ,()=>n0(L()),!0),GJ(jJ),y(n,jJ)},FJ=O(()=>i0(L())),$J=(n)=>{var jJ=k9();o(()=>l(jJ,"src",L())),y(n,jJ)},IJ=O(()=>s0(L())),pJ=(n)=>{let jJ=O(()=>d0(L()));var sJ=xJ(),vJ=yJ(sJ);{var qZ=(PJ)=>{var WJ=e0();Q0(WJ,()=>n0(J(jJ)),!0),GJ(WJ),y(PJ,WJ)},SZ=(PJ)=>{var WJ=z9();o(()=>OJ(WJ,1,`icon icon-${L()}`,"svelte-1c13522")),y(PJ,WJ)};NJ(vJ,(PJ)=>{if(J(jJ))PJ(qZ);else PJ(SZ,-1)})}y(n,sJ)};NJ(H,(n)=>{if(J(FJ))n(p);else if(J(IJ))n($J,1);else n(pJ,-1)})}y(D,M)},e0=LJ('<span aria-hidden="true"></span>'),k9=LJ('<img class="item-toolbar__icon-image svelte-1c13522" alt=""/>'),z9=LJ('<i aria-hidden="true"></i>'),J6=LJ("<span></span>"),H9=LJ('<span class="item-toolbar__nds-button-zoom svelte-1c13522"><nds-icon-button></nds-icon-button></span>',2),w9=LJ("<a><!></a>"),B9=LJ('<button type="button"><!></button>'),I9=LJ("<div></div>"),T9=LJ('<div><div class="item-toolbar__tools-row svelte-1c13522"><!> <!> <!></div> <!></div>'),A9={hash:"svelte-1c13522",code:`.item-toolbar.svelte-1c13522 {display:flex;flex-direction:column;align-items:flex-end;min-width:0;max-width:100%;gap:0;--pie-toolbar-tools-row-height: 2rem;--pie-tts-controls-row-height: 2.875rem;}.item-toolbar__tools-row.svelte-1c13522 {display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:0.5rem;max-width:100%;min-height:var(--pie-toolbar-tools-row-height);}
2
-
3
- /* A granted section tool must stay reachable even when there isn't room for
4
- every button: scroll the row rather than clipping items past the edge,
5
- which left them impossible to focus, tab to, or click. \`min-width: 0\`
6
- beats the flex default (\`auto\`, i.e. never shrink below content), which
7
- would otherwise keep the row at full content width and make overflow-x
8
- moot. Item and passage rows wrap without an overflow clip so an inline
9
- reading-controls panel can still extend outside the row. */.item-toolbar[data-level="section"].svelte-1c13522 .item-toolbar__tools-row:where(.svelte-1c13522) {flex-wrap:nowrap;justify-content:flex-start;
10
- /* Keep the focus outline inside the scrolling box on both axes. */padding:4px;scroll-padding:4px;box-sizing:border-box;overflow-x:auto;max-width:100%;min-width:0;}.item-toolbar__controls-row.svelte-1c13522 {display:flex;align-items:center;justify-content:flex-end;width:100%;min-height:0;height:auto;}.item-toolbar__controls-row--reserve.svelte-1c13522 {min-height:var(--pie-tts-controls-row-height);height:var(--pie-tts-controls-row-height);}.item-toolbar__controls-row--active.svelte-1c13522 {min-height:var(--pie-tts-controls-row-height);height:var(--pie-tts-controls-row-height);}.item-toolbar__controls-row--align-start.svelte-1c13522 {justify-content:flex-start;}.item-toolbar__controls-host.svelte-1c13522 {display:inline-flex;align-items:center;justify-content:flex-end;width:100%;}.item-toolbar--top.svelte-1c13522,
11
- .item-toolbar--bottom.svelte-1c13522 {align-items:flex-end;}.item-toolbar--left.svelte-1c13522,
12
- .item-toolbar--right.svelte-1c13522 {align-items:stretch;}.item-toolbar--left.svelte-1c13522 .item-toolbar__tools-row:where(.svelte-1c13522),
13
- .item-toolbar--right.svelte-1c13522 .item-toolbar__tools-row:where(.svelte-1c13522) {flex-direction:column;align-items:center;justify-content:flex-start;flex-wrap:nowrap;}.item-toolbar--left.svelte-1c13522 .item-toolbar__controls-row:where(.svelte-1c13522),
14
- .item-toolbar--right.svelte-1c13522 .item-toolbar__controls-row:where(.svelte-1c13522) {justify-content:flex-start;width:auto;min-height:0;height:auto;}.item-toolbar__button.svelte-1c13522 {display:flex;flex-shrink:0;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0.25rem;border:1px solid var(--pie-button-border, var(--pie-border, #ccc));border-radius:0.25rem;background-color:var(--pie-button-bg, var(--pie-background, white));color:var(--pie-button-color, var(--pie-text, #333));cursor:pointer;transition:all 0.15s ease;text-decoration:none;}
15
-
16
- /* Drive the vendored NDS icon button's outer size via its own \`--height-32\`
17
- custom property so its light-DOM inner button matches the toolbar's
18
- md/sm/lg dimensions (32 / 44 / 40 px) without a layout shift. The glyph
19
- keeps the NDS-native icon size (we render size="small"), so it isn't
20
- oversized. */.item-toolbar__nds-button-zoom.svelte-1c13522 {display:inline-flex;flex-shrink:0;}.item-toolbar.svelte-1c13522 nds-icon-button:where(.svelte-1c13522) {
21
- /* Host-settable button size per toolbar size (drives the NDS outer button
22
- via its own --height-32). */--height-32: var(--pie-calculator-button-size, 2rem);
23
- /* Host-settable accent for the calculator button: the NDS tertiary glyph
24
- colour derives from --color-interactive-blue, remapped here to a
25
- themeable variable. --pie-calculator-button-color is package-private, so
26
- nothing sets it and the default is what ships: it now resolves through
27
- --pie-button-color (DaisyUI base-content) instead of holding the Figma
28
- blue on every theme, with the literal as the no-theme last resort.
29
- Not --pie-primary or --pie-tertiary: both are \`direct\` mappings of
30
- DaisyUI slots chosen to pair with their own -content colour, so a glyph
31
- taken from either sits at 1.37:1 against the page under \`pastel\` and 11
32
- of the 35 shipped themes fall under SC 1.4.11's 3:1. */--color-interactive-blue: var(--pie-calculator-button-color, var(--pie-button-color, var(--pie-text, #222)));
33
- /* NDS palette bridge — keep in sync with the copies in tool-tts-inline
34
- and section-player SectionItemsPane (asserted by
35
- scripts/check-theme-tokens.mjs). The vendored button paints its fill,
36
- its on-accent glyph, its hover ring and its focus ring from the NDS
37
- design-system palette, which no PIE theme sets, so a tertiary button
38
- kept a #f3f5f7 pill on every page — and once the glyph followed the
39
- theme, a light glyph landed on that light pill. */--color-new-gray: var(--pie-background-dark, #f3f5f7);--color-primary-white: var(--pie-white, #ffffff);--color-primary-black: var(--pie-text, #000000);--color-focus-blue: var(--pie-button-focus-outline, #2b87ff);}.item-toolbar--sm.svelte-1c13522 nds-icon-button:where(.svelte-1c13522) {--height-32: var(--pie-calculator-button-size-sm, 2.75rem);}.item-toolbar--lg.svelte-1c13522 nds-icon-button:where(.svelte-1c13522) {--height-32: var(--pie-calculator-button-size-lg, 2.5rem);}.item-toolbar__element-host.svelte-1c13522 {display:contents;}.item-toolbar--sm.svelte-1c13522 .item-toolbar__button:where(.svelte-1c13522) {width:2.75rem;height:2.75rem;}.item-toolbar--sm.svelte-1c13522 {--pie-toolbar-tools-row-height: 2.75rem;--pie-tts-controls-row-height: 3.625rem;}.item-toolbar--lg.svelte-1c13522 .item-toolbar__button:where(.svelte-1c13522) {width:2.5rem;height:2.5rem;}.item-toolbar--lg.svelte-1c13522 {--pie-toolbar-tools-row-height: 2.5rem;--pie-tts-controls-row-height: 3.375rem;}.item-toolbar__button.svelte-1c13522:hover:not(:disabled) {background-color:var(--pie-button-hover-bg, var(--pie-secondary-background, #f5f5f5));border-color:var(--pie-button-hover-border, var(--pie-button-border, var(--pie-border, #ccc)));color:var(--pie-button-hover-color, var(--pie-button-color, var(--pie-text, #333)));transform:translateY(-1px);box-shadow:0 2px 4px color-mix(in srgb, var(--pie-black, #000) 10%, transparent);}.item-toolbar__button.svelte-1c13522:active:not(:disabled) {transform:translateY(0);box-shadow:none;}.item-toolbar__button--active.svelte-1c13522 {background-color:var(--pie-primary, #1976d2);color:var(--pie-white, #fff);border-color:var(--pie-primary, #1976d2);}.item-toolbar__button--active.svelte-1c13522:hover:not(:disabled) {background-color:var(--pie-primary-dark, #1565c0);}.item-toolbar__button.svelte-1c13522:focus-visible {outline:2px solid var(--pie-button-focus-outline, var(--pie-primary, #1976d2));outline-offset:2px;}.item-toolbar__button.svelte-1c13522:disabled {opacity:0.5;cursor:not-allowed;}.item-toolbar__button.svelte-1c13522 svg {width:100%;height:100%;}.item-toolbar__icon-image.svelte-1c13522 {width:100%;height:100%;object-fit:contain;}`};function W6(D,L){Z6(L,!0),U6(D,A9);let M=(Z,K=AZ,j=AZ)=>{var Q=xJ(),N=yJ(Q);{var k=(P)=>{var S=xJ(),z=yJ(S);Q6(z,()=>J(PZ),(G)=>{var e=J6();LZ(e,(JJ,s)=>c6?.(JJ,s),()=>({mounted:K(),active:J(aZ)[K().toolId]??!1,runtime:J(B),i18n:J(L0)})),o(()=>OJ(e,1,U0(j()),"svelte-1c13522")),y(G,e)}),y(P,S)},q=(P)=>{var S=J6();LZ(S,(z,G)=>u6?.(z,G),()=>K().entry),o(()=>OJ(S,1,U0(j()),"svelte-1c13522")),y(P,S)};NJ(N,(P)=>{if(K().entry.shell)P(k);else P(q,-1)})}y(Z,Q)},H=typeof window<"u",p="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css",FJ=/font.?awesome|fa-?pro/i,$J=/fontawesome-free/i,IJ=()=>Array.from(document.querySelectorAll('link[rel="stylesheet"][href]')),pJ=()=>IJ().some((Z)=>FJ.test(Z.href)&&!$J.test(Z.href)),n=(Z,K)=>{let j=pJ()?K:"fa-solid";if(j==="fa-light")return()=>{};let Q=()=>{for(let k of Z.querySelectorAll("i.fa-light"))k.classList.remove("fa-light"),k.classList.add(j)};Q();let N=new MutationObserver(Q);return N.observe(Z,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["class"]}),()=>N.disconnect()},jJ=(Z)=>{if(document.querySelector(`link[href="${Z}"]`))return;let K=document.createElement("link");K.rel="stylesheet",K.href=Z,K.addEventListener("error",()=>{K.dataset.pieLoadFailed=""},{once:!0}),document.head.appendChild(K)},sJ=!1,vJ=()=>{if(!H||sJ)return;if(sJ=!0,IJ().some((K)=>FJ.test(K.href)))return;jJ(p)},qZ="__pieFaToolbarShadowInstalled",SZ=(Z)=>{let K=Z.getRootNode();if(!(K instanceof ShadowRoot))return;let j=K;if(j[qZ])return;j[qZ]=!0;let Q=new Set,N=(q)=>{if(!q||Q.has(q))return;Q.add(q);let P=document.createElement("link");P.rel="stylesheet",P.href=q,K.appendChild(P)},k=IJ().filter((q)=>FJ.test(q.href));for(let q of k){if("pieLoadFailed"in q.dataset)continue;if(q.sheet){N(q.href);continue}let P=(S)=>{if(q.removeEventListener("load",P),q.removeEventListener("error",P),S.type==="load")N(q.href)};q.addEventListener("load",P),q.addEventListener("error",P)}},PJ=(Z)=>{return vJ(),SZ(Z),{destroy:n(Z,"fa-light")}},WJ=(Z,K)=>{let j=K,Q=()=>{let k=Z.querySelector("button");if(k)k.setAttribute("aria-pressed",j?"true":"false")};Q();let N=new MutationObserver(Q);return N.observe(Z,{childList:!0,subtree:!0}),{update(k){j=k,Q()},destroy(){N.disconnect()}}},Y0=(Z)=>Z.faIconName||null,M6=new F6,TJ=UJ(K6({})),EJ=u(L,"level",7,"item"),DZ=u(L,"scopeId",7,""),_Z=u(L,"itemId",7,""),CZ=u(L,"sectionId",7,""),fZ=u(L,"catalogId",7,""),bZ=u(L,"tools",7,""),yZ=u(L,"contentKind",7,"assessment-item"),MJ=u(L,"position",7,"bottom"),OZ=u(L,"scopeElement",7,null),GZ=u(L,"toolRegistry",7,null),xZ=u(L,"item",7,null),NZ=u(L,"hostButtons",23,()=>[]),$Z=u(L,"class",7,""),FZ=u(L,"size",7,"md"),pZ=u(L,"language",7,""),KJ=UJ(null),B=UJ(null),PZ=O(()=>J(B)?.ndsIcons===!0),L0=O(()=>N9(J(B))),R6=O(()=>pZ()||J(B)?.contentLanguage||void 0),gJ=UJ(null),dJ=UJ(0),rJ=UJ(0),vZ=UJ(0),EZ=UJ(0),gZ=UJ(0);$(()=>{if(!J(KJ))return;return q6(J(KJ),(Z)=>{r(B,Z,!0)})}),$(()=>{if(!J(KJ))return;return D6(J(KJ),(Z)=>{r(gJ,Z,!0)})}),$(()=>{let Z=J(B)?.toolkitCoordinator;if(!Z||typeof Z.onPolicyChange!=="function")return;let K=Z.onPolicyChange((j)=>{if(r(rJ,J(rJ)+1),j?.reason!=="item-settings")r(vZ,J(vZ)+1)});return()=>{try{K?.()}catch{}}}),$(()=>{let Z=J(B)?.toolkitCoordinator;if(!Z||typeof Z.onToolContextResolverChange!=="function")return;let K=Z.onToolContextResolverChange(()=>{r(EZ,J(EZ)+1)});return()=>{try{K?.()}catch{}}});let t=O(()=>J(B)?.toolCoordinator),k6=O(()=>J(B)?.ttsService),mZ=O(()=>J(B)?.elementToolStateStore),q0=O(()=>J(B)?.assessmentId??""),WZ=O(()=>_Z()||J(gJ)?.itemId||""),AJ=O(()=>J(gJ)?.canonicalItemId||J(WZ)),lJ=O(()=>CZ()||J(B)?.sectionId||""),oJ=O(()=>yZ()||J(gJ)?.contentKind||(EJ()==="section"?"section":"assessment-item")),A=O(()=>{if(EJ()&&EJ()!=="item")return EJ();if(J(oJ)==="rubric-block-stimulus")return"passage";return"item"}),RJ=O(()=>{if(DZ())return DZ();if(J(A)==="section")return J(lJ)||J(B)?.sectionId||"default-section";if(J(A)==="assessment")return J(B)?.assessmentId||"default-assessment";return J(AJ)||J(WZ)||"default-item"}),z6=O(()=>fZ()||J(RJ)),qJ=O(()=>xZ()||J(gJ)?.item||null),v=O(()=>{if(GZ())return GZ();return J(rJ),J(B)?.toolkitCoordinator?.getToolRegistry?.()||M6}),H6=O(()=>P6(bZ())),w6=O(()=>J(v).normalizeToolIds(J(H6)).filter(Boolean)),D0=O(()=>{if(J(A)==="section")return"section";if(J(A)==="passage"||J(oJ)==="rubric-block-stimulus")return"passage";return"item"}),O0=O(()=>{J(rJ);let Z=J(B)?.toolkitCoordinator;if(!Z||typeof Z.decideToolPolicy!=="function")return null;return Z.decideToolPolicy({level:J(D0),scope:{level:J(A),scopeId:J(RJ),assessmentId:J(B)?.assessmentId,sectionId:J(lJ)||void 0,itemId:J(WZ)||void 0,canonicalItemId:J(AJ)||void 0,contentKind:J(oJ)}})}),B6=o0(),nJ=O(()=>B6(J(O0),J(vZ))),tJ=O(()=>{let Z=(K)=>Array.from(new Set(K));if(J(nJ))return Z(J(v).normalizeToolIds(J(nJ).map((K)=>K.toolId)).filter(Boolean));return Z(J(w6))});$(()=>{if(!J(O0)||J(tJ).length===0)return;if(J(v).getAllTools().length>0)return;let Z=J(KJ)?.ownerDocument,K=J(tJ).join(", "),j=setTimeout(()=>{N6(Z,"toolbarWithoutRegistry",`[pie-item-toolbar] Policy places ${K} on this toolbar, but its tool registry is still empty after ${V0/1000} s, so it renders no buttons. Pass a toolRegistry to <pie-assessment-toolkit> or its coordinator; @pie-players/pie-default-tool-loaders builds the stock one. Reported once per page.`)},V0);return()=>clearTimeout(j)});let hZ=O(()=>{if(J(A)==="section"||J(A)==="assessment")return!0;let Z=J(qJ)?.config;return!!(J(qJ)&&Z&&typeof Z==="object")}),I6=O(()=>{J(rJ);let Z=J(B)?.toolkitCoordinator;if(!Z||typeof Z.getPolicyInputs!=="function")return null;return Z.getPolicyInputs()}),mJ=O(()=>J(I6)?.assessment??null),MZ=O(()=>({id:J(AJ)})),hJ=O(()=>{if(J(A)==="section")return{level:"section",assessment:J(mJ)||{},section:{}};if(J(A)==="assessment")return{level:"assessment",assessment:J(mJ)||{}};if(!J(hZ)||!J(qJ))return null;if(J(A)==="passage")return{level:"passage",assessment:J(mJ)||{},itemRef:J(MZ),passage:J(qJ)};return{level:"item",assessment:J(mJ)||{},itemRef:J(MZ),item:J(qJ)}}),G0=O(()=>{if(J(hJ))return J(hJ);return{level:"item",assessment:J(mJ)||{},itemRef:J(MZ),item:J(qJ)||{id:J(AJ),config:{}}}}),N0=O(()=>{if(J(A)!=="item"&&J(A)!=="passage")return[];if(!J(hZ)||!J(qJ))return[];let Z=J(qJ)?.config?.models;return(Array.isArray(Z)?Z:Z&&typeof Z==="object"?Object.values(Z):[]).filter((j)=>j&&typeof j==="object"&&typeof j.id==="string").map((j)=>({level:"element",assessment:J(mJ)||{},itemRef:J(MZ),item:J(qJ),elementId:j.id}))});function RZ(Z){return O6(Z,J(A),J(RJ))}let SJ=null;function F0(Z,K){if(SJ?.coordinator===Z)SJ.ids.add(K)}function uZ(Z,K){let j=RZ(K);if(!Z.getToolState(j))Z.registerTool(j,K);return F0(Z,j),j}$(()=>{let Z=J(t);if(J(A),J(RJ),!Z)return;let K={coordinator:Z,ids:new Set,activated:new Set};return SJ=K,()=>{if(SJ===K)SJ=null;for(let j of K.ids)Z.releaseTool(j)}});function T6(Z){if(!J(mZ)||!J(q0)||!J(lJ)||!J(AJ))return null;return J(mZ).getGlobalElementId({assessmentId:J(q0),sectionId:J(lJ),attemptId:J(B)?.attemptId??"",itemId:J(AJ),elementId:Z})}function A6(){if(OZ())return OZ();return J(gJ)?.scopeElement||null}function P0(){let Z=J(t)||null;return{scope:{level:J(A),scopeId:J(RJ),assessmentId:J(B)?.assessmentId,sectionId:J(lJ),itemId:J(WZ),canonicalItemId:J(AJ),contentKind:J(oJ)},itemId:J(RJ),catalogId:J(z6),language:J(R6),i18n:J(L0),ui:{size:FZ()},getScopeElement:A6,getGlobalElementId:T6,toolCoordinator:Z,toolkitCoordinator:J(B)?.toolkitCoordinator||null,ttsService:J(k6)||null,elementToolStateStore:J(mZ)||null,toggleTool:(K)=>{if(!Z)return;Z.toggleTool(uZ(Z,K))},isToolVisible:(K)=>Z?.isToolVisible(RZ(K))??!1,subscribeVisibility:Z?(K)=>Z.subscribe(K):null}}let S6=O(P0),cZ=O(()=>{J(EZ);let Z=J(B)?.toolkitCoordinator;if(!Z||typeof Z.hasToolContextResolver!=="function"||typeof Z.resolveToolContext!=="function")return{};let K={};for(let j of J(tJ)){if(!J(v).get(j)?.supportedLevels.includes(J(A)))continue;if(!Z.hasToolContextResolver(j))continue;let N=Z.resolveToolContext({toolId:j,context:J(G0),toolbarContext:J(S6)});if(N)K[j]=N}return K}),_6=O(()=>{J(gZ);let Z=J(cZ),K=(J(nJ)??J(tJ).map((k)=>({toolId:k,required:!1,alwaysAvailable:!1,activateAtInit:!1}))).filter((k)=>!Z[J(v).normalizeToolId(k.toolId)]),j=!J(hZ)?[]:J(hJ)?[J(hJ),...J(N0)]:J(N0),Q=(k,q,P)=>j0(J(B)?.toolkitCoordinator,k,q,P),N=new Set(J(v).filterDecidedToolIds(K,J(A),j,Q));return J(tJ).filter((k)=>N.has(k)||Z[k]?.visible)});$(()=>{if(!H||!J(hJ)||typeof customElements>"u")return;let Z=new Set(r0(J(hJ)).flatMap((j)=>j.pendingTags));if(Z.size===0)return;let K=!1;for(let j of Z)customElements.whenDefined(j).then(()=>{if(!K)r(gZ,J(gZ)+1)},()=>{});return()=>{K=!0}});let eJ=UJ(null),uJ=O(()=>{let Z=J(eJ)?.registry===J(v)?J(eJ).toolIds:null,K=J(v).filterToolIdsByActivation(J(_6),"toolbar-toggle");return Z?K.filter((j)=>!Z.has(j)):K});$(()=>{if(!H)return;let Z=J(v),K=!1;return Z.ensureToolModulesLoaded(J(uJ)).then((j)=>{if(j.size>0){let Q=J(eJ)?.registry===Z?J(eJ).toolIds:[];r(eJ,{registry:Z,toolIds:new Set([...Q,...j.keys()])},!0);for(let[N,k]of j)j0(J(B)?.toolkitCoordinator,N,"tool-module-load",k)}if(!K)r(dJ,J(dJ)+1)}),()=>{K=!0}});let C6=O(()=>{let Z=new Map;for(let K of J(nJ)??[]){if(!K.parameters)continue;let[j]=J(v).normalizeToolIds([K.toolId]);if(j)Z.set(j,K.parameters)}return Z}),_J=O(()=>{let Z=J(C6);return{...P0(),getResolvedToolContext:(K)=>J(cZ)[K]??null,getToolParameters:(K)=>Z.get(J(v).normalizeToolId(K))??null,getToolRenderParams:(K)=>{let j=J(cZ)[K]?.params??null,Q=W0.get(K);if(!Q)return j;return{...j??{},...Q}}}}),W0=new Map,M0=0,XJ=O(()=>{if(!H)return[];J(dJ);let Z=[];for(let K of J(uJ)){let j=J(v).renderForToolbar(K,J(G0),J(_J));if(j)Z.push(j)}return Z});$(()=>{let Z=J(t);if(!Z)return;for(let K of J(XJ))F0(Z,RZ(K.toolId))});let f6=O(()=>new Set(J(v).normalizeToolIds((J(nJ)??[]).filter((Z)=>Z.activateAtInit).map((Z)=>Z.toolId))));$(()=>{let Z=J(t),K=J(f6);J(A),J(RJ);let j=SJ;if(!Z||K.size===0||j?.coordinator!==Z)return;let Q=J(XJ).filter((N)=>N.button&&K.has(N.toolId)).map((N)=>N.toolId).filter((N)=>!j.activated.has(N));if(Q.length===0)return;for(let N of Q)j.activated.add(N);queueMicrotask(()=>{if(SJ!==j)return;for(let N of Q)Z.showTool(uZ(Z,N));CJ()})});let R0=O(()=>{if(!Array.isArray(NZ()))return[];let Z=[];return NZ().forEach((K,j)=>{if(a0(K)){Z.push(K);return}console.warn(`[ItemToolBar] Ignoring invalid host button at index ${j}. Expected { id, label, href | onClick } with valid types.`)}),Z}),b6=O(()=>J(XJ).filter((Z)=>!!Z.button).map((Z)=>{let K=Z.button;return{id:Z.toolId,label:K.label,ariaLabel:K.ariaLabel||K.label,icon:K.icon,faIconName:K.faIconName,tooltip:K.tooltip||K.label,disabled:K.disabled,active:J(TJ)[Z.toolId]??K.active??!1,onClick:()=>{K.onClick(),CJ()}}})),k0=O(()=>[...J(b6),...J(R0)]),aZ=O(()=>{let Z={};for(let K of J(XJ))Z[K.toolId]=J(TJ)[K.toolId]??K.button?.active??!1;return Z}),iZ=(Z,K,j)=>Z.flatMap((Q)=>(Q.elements||[]).filter((N)=>N.mount===K).filter((N)=>Boolean(N.element)).map((N,k)=>({key:`${j}-${Q.toolId}-${k}`,toolId:Q.toolId,entry:N}))),y6=O(()=>iZ(J(XJ),"before-buttons","before")),x6=O(()=>iZ(J(XJ),"after-buttons","after")),z0=O(()=>iZ(J(XJ),"controls-row","controls-row")),H0=O(()=>J(XJ).flatMap((Z)=>(Z.elements||[]).map((K)=>({toolId:Z.toolId,hint:K.layoutHints?.controlsRow})).filter((K)=>Boolean(K.hint)))),w0=O(()=>J(XJ).flatMap((Z)=>(Z.elements||[]).map((K)=>({toolId:Z.toolId,hint:K.layoutHints?.headerOverlay})).filter((K)=>Boolean(K.hint)))),B0=O(()=>J(H0).some((Z)=>Z.hint?.reserveSpace===!0)),I0=O(()=>J(H0).some((Z)=>Z.hint?.showWhenToolActive===!0&&(J(aZ)[Z.toolId]??!1))),$6=O(()=>MJ()==="left"||MJ()==="right"),T0=O(()=>J(w0).some((Z)=>Z.hint?.showWhenToolActive===!0&&(J(aZ)[Z.toolId]??!1))),p6=O(()=>J(z0).length>0||J(B0)||J(I0)),v6=O(()=>J(uJ).length===0&&J(R0).length===0);function E6(){if(!J(KJ))return null;let Z=J(KJ).getRootNode();if(Z instanceof ShadowRoot)return Z.host;return null}$(()=>{let Z=E6();if(!Z)return;let K=J(w0).length>0,j=J(T0);return Z.setAttribute("data-pie-header-overlay",K?"true":"false"),Z.setAttribute("data-pie-header-overlay-active",j?"true":"false"),Z.setAttribute("data-pie-toolbar-empty",J(v6)?"true":"false"),()=>{Z.removeAttribute("data-pie-header-overlay"),Z.removeAttribute("data-pie-header-overlay-active"),Z.removeAttribute("data-pie-toolbar-empty")}}),$(()=>{if(!H||!J(PZ))return;if(J(k0).some((Z)=>!!Y0(Z)))vJ()});function kZ(Z){if(Z.id in J(TJ))return J(TJ)[Z.id]===!0;return Z.active===!0}function CJ(){let Z={};for(let K of J(XJ))if(K.sync?.(),K.button)Z[K.toolId]=K.button.active??!1;r(TJ,Z,!0)}$(()=>{let Z=[];CJ();for(let K of J(XJ))if(K.subscribeActive){let j=!1,Q=K.subscribeActive((N)=>{queueMicrotask(()=>{if(j)return;r(TJ,{...J(TJ),[K.toolId]:N},!0),K.sync?.()})});Z.push(()=>{j=!0,Q()})}return()=>{Z.forEach((K)=>K())}}),$(()=>{let Z=J(B)?.toolkitCoordinator;if(typeof Z?.registerToolRequestTarget!=="function")return;let K=J(D0);return Z.registerToolRequestTarget({level:K,get scopeId(){return J(RJ)},hostsTool:(j)=>J(uJ).includes(j),open:(j,Q)=>{if(!J(t))return;if(!J(uJ).includes(j))return;if(Q&&Object.keys(Q).length>0)M0+=1,W0.set(j,{...Q,toolRequestId:M0});let N=uZ(J(t),j);J(t).showTool(N),queueMicrotask(()=>CJ())}})}),$(()=>{if(!J(_J).subscribeVisibility)return;let Z=!1,K=J(_J).subscribeVisibility(()=>{queueMicrotask(()=>{if(Z)return;CJ()})});return()=>{Z=!0,K?.()}}),$(()=>{let Z=J(_J).toolkitCoordinator;if(typeof Z?.subscribeTelemetry!=="function")return;let K=!1,j=Z.subscribeTelemetry(({eventName:Q,payload:N})=>{if(Q!=="pie-toolkit-tool-config-updated")return;if(N?.toolId&&!J(uJ).includes(N.toolId))return;queueMicrotask(()=>{if(K)return;r(dJ,J(dJ)+1),CJ()})});return()=>{K=!0,j?.()}});let g6="[data-pie-tool-overlay-boundary]";function m6(Z,K){if(K.container!=="content-boundary")return Z;let j=Z;while(j){if(j instanceof HTMLElement&&j.matches(g6))return j;if(j instanceof HTMLElement&&j.parentElement){j=j.parentElement;continue}let Q=j.getRootNode();j=Q instanceof ShadowRoot?Q.host:null}return Z}let h6="__pieToolElementUnmount";function sZ(Z){if(!Z)return;let K=Z[h6];if(typeof K==="function")K()}function u6(Z,K){let j=K,Q=null,N=Z,k=(q)=>{if(Q===q)return;if(Q){if(sZ(Q),Q.parentNode===N)N.removeChild(Q)}if(Q=q,Q){if(N=m6(Z,j),Q.parentNode&&Q.parentNode!==N)Q.parentNode.removeChild(Q);N.appendChild(Q)}};return k(K.element),{update(q){j=q,k(q.element)},destroy(){k(null)}}}let A0=720,S0=560,_0=320,dZ=240,kJ=24,zJ=40;function c6(Z,K){let j=K,Q=null,N=null,k=[],q=null,P=null,S=null,z=null,G=null,e=null,JJ=null,s=!1,DJ=!1,JZ=()=>j.mounted.entry.shell?.pageTabOrder===!0,VJ=()=>j.mounted.entry.shell?.ndsHeaderControls===!0,T=null,fJ=null,ZZ=W9({onMove:(X)=>Z9(X),onEnd:()=>{fJ=null}}),ZJ=0,w=0,I=0,x=0,HJ=0,C=0,jZ=0,rZ=0,KZ=null,lZ=[],E=0,g=0,f=j.mounted.entry.shell?.initialWidth??A0,b=j.mounted.entry.shell?.initialHeight??S0,f0=f,b0=b,XZ=!1,cJ=null,YJ=null,zZ=!1,oZ=()=>{let X=j.mounted.entry.shell;if(!X)return null;return{toolId:j.mounted.toolId,toolbarContext:J(_J),shellConfig:X}},d6=(X)=>{let V=J(v).get(j.mounted.toolId),F=oZ();if(!V?.onHostedMount||!F)return;V.onHostedMount(X,F)},HZ=()=>{let X=J(v).get(j.mounted.toolId),V=oZ();if(!X?.onHostedResize||!V)return;X.onHostedResize({width:f,height:b},j.mounted.entry.element,V)},r6=()=>{let X=J(v).get(j.mounted.toolId),V=oZ();if(!X?.onHostedUnmount||!V)return;X.onHostedUnmount(j.mounted.entry.element,V)},i=(X,V,F)=>Math.max(V,Math.min(X,F)),bJ=(X)=>{try{X.focus()}catch{}},l6=()=>{let X=j.mounted.entry.shell,V=X?.minWidth??_0,F=X?.minHeight??dZ,Y=X?.maxWidth??window.innerWidth,U=X?.maxHeight??window.innerHeight;return{minWidth:V,minHeight:F,maxWidth:Y,maxHeight:U}},nZ=()=>{let X=j.mounted.entry.shell?.minWidth,V=typeof X==="number"&&X>0&&f<X,F=V?`${X}px`:"";if(T)T.style.minWidth=F;if(q)q.style.minWidth="0";if(P)P.style.minWidth="0",P.style.overflowX=V?"auto":"hidden"},y0=()=>j.mounted.entry.shell?.content?.overflowY==="auto"?"auto":"hidden",o6=()=>{if(!q)return 0;let X=q.getBoundingClientRect().height;if(X>0)return X;return q.offsetHeight||0},tZ=()=>{if(!P)return;let X=j.mounted.entry.shell;if(P.style.overflowY=y0(),!T)return;if(X?.content?.preserveMinHeight===!0){let V=o6(),F=X.minHeight??dZ,Y=Math.max(0,F-V),U=Math.max(0,b-V),W=Math.max(U,Y);T.style.height=`${W}px`,T.style.minHeight="0",T.style.flex=`0 0 ${W}px`;return}T.style.height="100%",T.style.minHeight="0",T.style.flex="1 1 auto"},n6=()=>{let X=j.mounted.entry.shell,V=X?.initialWidth??A0,F=X?.initialHeight??S0;if(V===f0&&F===b0)return;if(f0=V,b0=F,XZ)return;f=V,b=F,IZ()},wZ=()=>{let{minWidth:X,minHeight:V,maxWidth:F,maxHeight:Y}=l6(),U=Math.min(X,window.innerWidth),W=Math.min(V,window.innerHeight);f=i(f,U,Math.max(U,Math.min(F,window.innerWidth))),b=i(b,W,Math.max(W,Math.min(Y,window.innerHeight))),E=i(E,0,Math.max(0,window.innerWidth-f)),g=i(g,0,Math.max(0,window.innerHeight-b)),QZ(),nZ(),tZ(),HZ()},wJ=(X,V)=>{XZ=!0,E+=X,g+=V,wZ()},BZ=(X,V)=>{XZ=!0,f+=X,b+=V,wZ()},x0=(X,V,F,Y="fa-regular")=>{vJ();let U=document.createElement("nds-icon-button");return U.setAttribute("variant","tertiary"),U.setAttribute("size","small"),U.setAttribute("type","circle"),U.setAttribute("icon-name",V),U.setAttribute("button-aria-label",X),U.title=X,U.addEventListener("click",(W)=>{W.stopPropagation(),F(),aJ()}),n(U,Y),U},$0=(X,V,F)=>{let Y=document.createElement("button");return Y.type="button",Y.className="pie-tool-shell__control",Y.setAttribute("aria-label",X),Y.title=X,Y.textContent=V,Y.style.border="1px solid transparent",Y.style.background="color-mix(in srgb, var(--pie-white, #fff) 10%, transparent)",Y.style.color="inherit",Y.style.cursor="pointer",Y.style.display="inline-flex",Y.style.alignItems="center",Y.style.justifyContent="center",Y.style.width="28px",Y.style.height="28px",Y.style.padding="0",Y.style.fontSize="14px",Y.style.fontWeight="700",Y.style.borderRadius="8px",Y.style.lineHeight="1",Y.onclick=(U)=>{U.stopPropagation(),F(),aJ()},Y.onfocus=()=>{Y.style.outline="2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))",Y.style.outlineOffset="2px"},Y.onblur=()=>{Y.style.outline="none",Y.style.outlineOffset="0"},Y},QZ=()=>{if(!Q)return;Q.style.left=`${E}px`,Q.style.top=`${g}px`,Q.style.width=`${f}px`,Q.style.height=`${b}px`,Q.style.display=j.active?"flex":"none"},p0=()=>{if(S)S.textContent=j.mounted.entry.shell?.title||j.mounted.toolId;for(let{el:X,key:V}of k){let F=j.i18n.t(V);if(X.tagName==="NDS-ICON-BUTTON")X.setAttribute("button-aria-label",F);else X.setAttribute("aria-label",F);if(X.title)X.title=F}},v0=()=>{if(!P)return;let X=j.mounted.entry.element;if(X.style.display="block",X.style.width="100%",X.style.height="100%",X.style.flex="1 1 auto",X.style.minHeight="0",T&&T!==X){if(T.parentNode===P)sZ(T),P.removeChild(T);T=null}if(X.parentNode&&X.parentNode!==P)X.parentNode.removeChild(X);if(X.parentNode!==P)P.appendChild(X);T=X,nZ(),tZ(),d6(X)},aJ=()=>{if(J(t)&&Q)J(t).bringToFront(Q)},E0=()=>{if(!Q||!J(t)||!j.active)return;let X=RZ(j.mounted.toolId);if(J(t).getToolState(X)?.element===Q)return;J(t).updateToolElement(X,Q)},IZ=()=>{let{innerWidth:X,innerHeight:V}=window,F=j.mounted.entry.shell,Y=F?.initialAlign??"center",U=F?.initialMargin??16,W=U+60;switch(Y){case"top-left":E=U,g=W;break;case"top-right":E=Math.max(0,X-f-U),g=W;break;case"bottom-left":E=U,g=Math.max(0,V-b-W);break;case"bottom-right":E=Math.max(0,X-f-U),g=Math.max(0,V-b-W);break;default:E=Math.max(0,Math.round((X-f)/2)),g=Math.max(0,Math.round((V-b)/2))}wZ()},t6=()=>{let X=YJ;if(!X)return;queueMicrotask(()=>{if(!X.isConnected)return;bJ(X)})},g0=()=>{if(typeof document>"u")return null;let X=document.activeElement;while(X){let V=X.shadowRoot;if(V&&V.activeElement&&V.activeElement!==X)X=V.activeElement;else break}return X??null},m0=()=>{if(!Q||cJ)return;let X=g0();if(!YJ&&X&&!Q.contains(X))YJ=X;if(JZ()&&!DJ)document.addEventListener("keydown",J0,!0),DJ=!0;cJ=P9(Q,{initialFocus:G,onEscape:()=>{Z0()},wrap:!JZ(),onTabExit:JZ()?(V,F)=>{if(V==="backward"){if(YJ?.isConnected)F.preventDefault(),bJ(YJ);return}let Y=eZ();if(Y)F.preventDefault(),bJ(Y)}:void 0})},eZ=()=>{let X=J(_J).getScopeElement?.()??null;if(!X)return null;let V=(Y)=>{if(J(KJ)&&J(KJ).contains(Y))return!0;if(Q&&Q.contains(Y))return!0;return!1},F=(Y)=>{if(Y instanceof HTMLElement){if(V(Y))return null;if(Y.matches?.(M9)&&R9(Y))return Y}let U=Y.shadowRoot;if(U)for(let W=0;W<U.children.length;W++){let R=F(U.children[W]);if(R)return R}for(let W=0;W<Y.children.length;W++){let R=F(Y.children[W]);if(R)return R}return null};return F(X)},e6=()=>{if(!Q)return[];return F9(Q).filter((X)=>X!==e&&X!==JJ)},J0=(X)=>{if(X.key!=="Tab")return;if(!Q||!j.active)return;let V=g0();if(!V)return;if(Q.contains(V))return;let F=e6();if(F.length===0)return;if(X.shiftKey){let Y=eZ();if(V!==Y)return;X.preventDefault(),bJ(F[F.length-1]);return}if(V!==YJ)return;X.preventDefault(),bJ(F[0])},h0=()=>{if(DJ)document.removeEventListener("keydown",J0,!0),DJ=!1;if(!cJ)return;let X=cJ;cJ=null;try{X()}catch{}t6()},Z0=()=>{J(_J).toggleTool(j.mounted.toolId),CJ()},u0=(X)=>{if(!j.mounted.entry.shell?.draggable)return;if(X.target.closest("button")||!Q)return;if(!ZZ.begin(X,Q))return;fJ="drag",XZ=!0,ZJ=X.clientX-E,w=X.clientY-g,Q.setPointerCapture(X.pointerId),aJ()},J9=(X)=>(V)=>{if(!Q||!j.mounted.entry.shell?.resizable)return;if(V.stopPropagation(),!ZZ.begin(V,Q))return;fJ="resize",XZ=!0,KZ=X,I=f,x=b,HJ=V.clientX,C=V.clientY,jZ=E,rZ=g,Q.setPointerCapture(V.pointerId),aJ()},Z9=(X)=>{if(!Q)return;if(fJ==="drag"){X.preventDefault();let V=Math.max(0,window.innerWidth-f),F=Math.max(0,window.innerHeight-b);E=i(X.clientX-ZJ,0,V),g=i(X.clientY-w,0,F),QZ();return}if(fJ==="resize"){X.preventDefault();let V=j.mounted.entry.shell,F=V?.minWidth??_0,Y=V?.minHeight??dZ,U=Math.min(F,window.innerWidth),W=Math.min(Y,window.innerHeight),R=V?.maxWidth??window.innerWidth,m=V?.maxHeight??window.innerHeight,c=X.clientX-HJ,d=X.clientY-C;if(KZ==="se")f=i(I+c,U,Math.max(U,Math.min(R,window.innerWidth-E))),b=i(x+d,W,Math.max(W,Math.min(m,window.innerHeight-g)));else if(KZ==="sw"){let a=jZ+I,QJ=i(I-c,U,Math.min(R,a));E=a-QJ,f=QJ,b=i(x+d,W,Math.max(W,Math.min(m,window.innerHeight-g)))}else if(KZ==="ne"){let a=rZ+x;f=i(I+c,U,Math.max(U,Math.min(R,window.innerWidth-E)));let QJ=i(x-d,W,Math.min(m,a));g=a-QJ,b=QJ}else if(KZ==="nw"){let a=jZ+I,QJ=rZ+x,_=i(I-c,U,Math.min(R,a));E=a-_,f=_;let UZ=i(x-d,W,Math.min(m,QJ));g=QJ-UZ,b=UZ}QZ(),nZ(),tZ(),HZ()}},c0=()=>{wZ()};if(H&&j.mounted.entry.shell){let X=VJ()&&J(PZ);if(X)vJ();if(Q=document.createElement("div"),Q.className="pie-tool-shell",Q.setAttribute("data-pie-tool-shell",j.mounted.toolId),Q.style.position="fixed",Q.style.zIndex=String(G6.TOOL),Q.style.background="var(--pie-background, #fff)",Q.style.border="1px solid var(--pie-border-light, #d1d5db)",Q.style.borderRadius="12px",Q.style.boxShadow="0 10px 40px color-mix(in srgb, var(--pie-black, #000) 25%, transparent)",Q.style.setProperty("--color-interactive-blue","var(--pie-calculator-button-color, var(--pie-button-color, var(--pie-text, #222)))"),Q.style.setProperty("--color-new-gray","var(--pie-background-dark, #f3f5f7)"),Q.style.setProperty("--color-primary-white","var(--pie-white, #ffffff)"),Q.style.setProperty("--color-primary-black","var(--pie-text, #000000)"),Q.style.setProperty("--color-focus-blue","var(--pie-button-focus-outline, #2b87ff)"),Q.style.overflow="visible",Q.style.display=j.active?"flex":"none",Q.style.flexDirection="column",Q.style.userSelect="none",Q.style.webkitUserSelect="none",Q.style.touchAction="none",Q.setAttribute("draggable","false"),Q.addEventListener("dragstart",(U)=>U.preventDefault()),q=document.createElement("div"),q.className="pie-tool-shell__header",q.style.display="flex",q.style.flexWrap="wrap",q.style.alignItems="center",q.style.justifyContent="space-between",q.style.gap="6px",q.style.padding=VJ()?"12px 12px 12px 28px":"10px 12px",VJ())q.style.minHeight="48px",q.style.background="var(--pie-section-player-card-header-background, var(--pie-button-active-bg, #f3f4f6))",q.style.color="var(--pie-text, #111827)",q.style.borderBottom="1px solid var(--pie-border-light, #e5e7eb)";else q.style.background="var(--pie-primary-dark, #2c3e50)",q.style.color="var(--pie-white, #fff)";q.style.cursor=j.mounted.entry.shell.draggable===!1?"default":"move",q.style.flex="0 0 auto",q.style.borderRadius="12px 12px 0 0",q.style.overflow="hidden",q.style.userSelect="none",q.style.webkitUserSelect="none",q.style.touchAction="none",q.setAttribute("draggable","false"),q.addEventListener("dragstart",(U)=>U.preventDefault()),S=document.createElement("span"),S.className="pie-tool-shell__title",S.style.minWidth="0",S.style.overflowWrap="anywhere",S.textContent=j.mounted.entry.shell.title||j.mounted.toolId,q.appendChild(S),z=document.createElement("div"),z.className="pie-tool-shell__controls",z.style.display="inline-flex",z.style.flexWrap="wrap",z.style.minWidth="0",z.style.alignItems="center",z.style.gap=VJ()?"6px":"4px";let V=j.mounted.entry.shell,F=(U,W,R,m,c="fa-regular")=>{if(!z)return;let d=j.i18n.t(U),a=X?x0(d,R,m,c):$0(d,W,m);k.push({el:a,key:U}),z.appendChild(a)};if(V?.draggable!==!1)F("toolkit.window.moveLeftA11y","←","chevron-left",()=>wJ(-kJ,0)),F("toolkit.window.moveRightA11y","→","chevron-right",()=>wJ(kJ,0)),F("toolkit.window.moveUpA11y","↑","chevron-up",()=>wJ(0,-kJ)),F("toolkit.window.moveDownA11y","↓","chevron-down",()=>wJ(0,kJ));if(V?.resizable!==!1)F("toolkit.window.shrinkA11y","−","magnifying-glass-minus",()=>BZ(-zJ,-zJ)),F("toolkit.window.growA11y","+","magnifying-glass-plus",()=>BZ(zJ,zJ));if(!VJ()){let U=$0(j.i18n.t("toolkit.window.centerA11y"),"◎",IZ);k.push({el:U,key:"toolkit.window.centerA11y"}),z.appendChild(U)}let Y=null;if(VJ())Y=document.createElement("div"),Y.className="pie-tool-shell__header-right",Y.style.display="inline-flex",Y.style.flexWrap="wrap",Y.style.maxWidth="100%",Y.style.justifyContent="flex-end",Y.style.alignItems="center",Y.style.gap="6px",Y.appendChild(z),q.appendChild(Y);else q.appendChild(z);if(X)G=x0(j.i18n.t("toolkit.window.closeA11y"),"xmark",Z0,"fa-regular"),k.push({el:G,key:"toolkit.window.closeA11y"}),G.style.display=j.mounted.entry.shell.closeable===!1?"none":"inline-block";else{let U=document.createElement("button");U.type="button",U.className="pie-tool-shell__close",U.setAttribute("aria-label",j.i18n.t("toolkit.window.closeA11y")),k.push({el:U,key:"toolkit.window.closeA11y"});let W="http://www.w3.org/2000/svg",R=document.createElementNS(W,"svg");R.setAttribute("xmlns",W),R.setAttribute("viewBox","0 0 16 16"),R.setAttribute("aria-hidden","true");let m=document.createElementNS(W,"path");m.setAttribute("d","M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5"),m.setAttribute("stroke","currentColor"),m.setAttribute("stroke-width","1.8"),m.setAttribute("stroke-linecap","round"),R.appendChild(m),U.appendChild(R);let c=R.style;c.width="16px",c.height="16px",c.display="block",c.flexShrink="0",c.pointerEvents="none";let d="color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)",a="color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";U.style.border="1px solid transparent",U.style.background=d,U.style.color="inherit",U.style.cursor="pointer",U.style.display="inline-flex",U.style.alignItems="center",U.style.justifyItems="center",U.style.width="28px",U.style.height="28px",U.style.padding="0",U.style.borderRadius="8px",U.style.lineHeight="0",U.style.transition="background-color 0.15s ease, border-color 0.15s ease",U.style.display=j.mounted.entry.shell.closeable===!1?"none":"inline-flex",U.onmouseenter=()=>{U.style.background=a},U.onmouseleave=()=>{U.style.background=d},U.onfocus=()=>{U.style.outline="2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))",U.style.outlineOffset="2px"},U.onblur=()=>{U.style.outline="none",U.style.outlineOffset="0"},U.onclick=Z0,G=U}if(Y)Y.appendChild(G);else q.appendChild(G);if(q.tabIndex=0,q.onkeydown=(U)=>{if(U.key==="Home"){U.preventDefault(),IZ();return}let W=j.mounted.entry.shell;if(U.shiftKey&&W?.resizable!==!1){if(U.key==="ArrowRight"||U.key==="ArrowDown"){U.preventDefault(),BZ(zJ,zJ);return}if(U.key==="ArrowLeft"||U.key==="ArrowUp"){U.preventDefault(),BZ(-zJ,-zJ);return}}if(W?.draggable!==!1){if(U.key==="ArrowLeft")U.preventDefault(),wJ(-kJ,0);else if(U.key==="ArrowRight")U.preventDefault(),wJ(kJ,0);else if(U.key==="ArrowUp")U.preventDefault(),wJ(0,-kJ);else if(U.key==="ArrowDown")U.preventDefault(),wJ(0,kJ)}},P=document.createElement("div"),P.className="pie-tool-shell__content",P.style.position="relative",P.style.width="100%",P.style.flex="1 1 auto",P.style.minHeight="0",P.style.overflowX="hidden",P.style.overflowY=y0(),P.style.borderRadius="0 0 12px 12px",VJ()){let U=(W)=>{let R=document.createElement("div");return R.tabIndex=0,R.setAttribute("aria-hidden","true"),R.setAttribute("data-pie-tool-shell-focus-guard",W),R.style.position="absolute",R.style.width="1px",R.style.height="1px",R.style.padding="0",R.style.margin="-1px",R.style.overflow="hidden",R.style.clipPath="inset(50%)",R.style.whiteSpace="nowrap",R.style.border="0",R};e=U("start"),JJ=U("end"),e.addEventListener("focus",(W)=>{if(s)return;s=!0;try{if(W.stopPropagation(),YJ?.isConnected)bJ(YJ)}finally{queueMicrotask(()=>{s=!1})}}),JJ.addEventListener("focus",(W)=>{if(s)return;s=!0;try{W.stopPropagation();let R=eZ();if(R)bJ(R)}finally{queueMicrotask(()=>{s=!1})}}),Q.appendChild(e)}if(Q.appendChild(q),Q.appendChild(P),VJ()&&JJ)Q.appendChild(JJ);if(j.mounted.entry.shell.resizable!==!1){let U=(W,R,m,c,d,a,QJ)=>{let _=document.createElement("div");if(_.className="pie-tool-shell__resize",_.style.position="absolute",_.style.width="24px",_.style.height="24px",_.style.cursor=a,_.style.zIndex="10",_.style.touchAction="none",_.setAttribute("draggable","false"),R!==null)_.style.top=R;if(m!==null)_.style.right=m;if(c!==null)_.style.bottom=c;if(d!==null)_.style.left=d;if(QJ!==null)_.style.background=`linear-gradient(${QJ}, transparent 0%, transparent 40%, rgba(0,0,0,0.35) 40%, rgba(0,0,0,0.35) 60%, transparent 60%, transparent 100%)`;let UZ=J9(W);_.addEventListener("pointerdown",UZ),Q.appendChild(_),lZ.push({el:_,handler:UZ})};U("se",null,"0","0",null,"nwse-resize",null),U("nw","0",null,null,"0","nwse-resize","135deg"),U("ne","0","0",null,null,"nesw-resize",null),U("sw",null,null,"0","0","nesw-resize",null)}if(q.addEventListener("pointerdown",u0),Q.addEventListener("pointerdown",aJ),window.addEventListener("resize",c0),document.body.appendChild(Q),N=new G9(Q,{context:L6,initialValue:j.runtime}),N.connect(),IZ(),QZ(),E0(),p0(),v0(),HZ(),j.active)m0();zZ=j.active}return{update(X){if(j=X,!Q||!P||!S||!G)return;N?.setValue(j.runtime),p0(),n6();let V=G.tagName.toLowerCase()==="nds-icon-button"?"inline-block":"inline-flex";if(G.style.display=j.mounted.entry.shell?.closeable===!1?"none":V,QZ(),E0(),v0(),HZ(),!zZ&&j.active)m0();else if(zZ&&!j.active)h0(),YJ=null;zZ=j.active},destroy(){if(r6(),N?.disconnect(),N=null,k.length=0,cJ)h0();if(DJ)document.removeEventListener("keydown",J0,!0),DJ=!1;for(let{el:X,handler:V}of lZ)X.removeEventListener("pointerdown",V);if(YJ=null,lZ.length=0,q)q.removeEventListener("pointerdown",u0),q.onkeydown=null;if(ZZ.release(),Q)Q.removeEventListener("pointerdown",aJ);if(window.removeEventListener("resize",c0),T&&P&&T.parentNode===P)sZ(T),P.removeChild(T);if(T=null,Q&&Q.parentElement)Q.remove()}}}var a6={get level(){return EJ()},set level(Z){EJ(Z),h()},get scopeId(){return DZ()},set scopeId(Z){DZ(Z),h()},get itemId(){return _Z()},set itemId(Z){_Z(Z),h()},get sectionId(){return CZ()},set sectionId(Z){CZ(Z),h()},get catalogId(){return fZ()},set catalogId(Z){fZ(Z),h()},get tools(){return bZ()},set tools(Z){bZ(Z),h()},get contentKind(){return yZ()},set contentKind(Z){yZ(Z),h()},get position(){return MJ()},set position(Z){MJ(Z),h()},get scopeElement(){return OZ()},set scopeElement(Z){OZ(Z),h()},get toolRegistry(){return GZ()},set toolRegistry(Z){GZ(Z),h()},get item(){return xZ()},set item(Z){xZ(Z),h()},get hostButtons(){return NZ()},set hostButtons(Z){NZ(Z),h()},get class(){return $Z()},set class(Z){$Z(Z),h()},get size(){return FZ()},set size(Z){FZ(Z),h()},get language(){return pZ()},set language(Z){pZ(Z),h()}},C0=xJ(),i6=yJ(C0);{var s6=(Z)=>{var K=T9();let j;var Q=iJ(K),N=iJ(Q);YZ(N,17,()=>J(y6),(z)=>z.key,(z,G)=>{M(z,()=>J(G),()=>"item-toolbar__element-host")});var k=TZ(N,2);YZ(k,17,()=>J(k0),(z)=>z.id,(z,G,e,JJ)=>{let s=O(()=>J(PZ)&&!K0(J(G))?Y0(J(G)):null);var DJ=xJ(),JZ=yJ(DJ);{var VJ=(ZJ)=>{var w=H9(),I=iJ(w);OJ(I,1,"item-toolbar__nds-button svelte-1c13522"),BJ(I,"type","circle"),BJ(I,"size","small"),BJ(I,"variant","tertiary"),o(()=>BJ(I,"icon-name",J(s))),o(()=>BJ(I,"button-aria-label",J(G).ariaLabel||J(G).label)),o(()=>BJ(I,"title",J(G).tooltip||J(G).label)),o(()=>BJ(I,"disabled",J(G).disabled)),LZ(I,(x)=>PJ?.(x)),LZ(I,(x,HJ)=>WJ?.(x,HJ),()=>kZ(J(G))),GJ(w),VZ("click",I,function(...x){J(G).onClick?.apply(this,x)}),y(ZJ,w)},T=(ZJ)=>{var w=w9();let I;var x=iJ(w);{var HJ=(C)=>{t0(C,()=>J(G).icon)};NJ(x,(C)=>{if(J(G).icon)C(HJ)})}GJ(w),o((C)=>{I=OJ(w,1,"item-toolbar__button svelte-1c13522",null,I,{"item-toolbar__button--active":C}),l(w,"href",J(G).disabled?void 0:J(G).href),l(w,"target",J(G).target),l(w,"rel",J(G).rel),l(w,"aria-label",J(G).ariaLabel||J(G).label),l(w,"title",J(G).tooltip||J(G).label),l(w,"aria-disabled",J(G).disabled?"true":void 0)},[()=>kZ(J(G))]),VZ("click",w,(C)=>{if(J(G).disabled)C.preventDefault()}),y(ZJ,w)},fJ=O(()=>K0(J(G))),ZZ=(ZJ)=>{var w=B9();let I;var x=iJ(w);{var HJ=(C)=>{t0(C,()=>J(G).icon)};NJ(x,(C)=>{if(J(G).icon)C(HJ)})}GJ(w),o((C,jZ)=>{I=OJ(w,1,"item-toolbar__button svelte-1c13522",null,I,{"item-toolbar__button--active":C}),l(w,"aria-label",J(G).ariaLabel||J(G).label),l(w,"aria-pressed",jZ),l(w,"title",J(G).tooltip||J(G).label),w.disabled=J(G).disabled},[()=>kZ(J(G)),()=>kZ(J(G))]),VZ("click",w,function(...C){J(G).onClick?.apply(this,C)}),y(ZJ,w)};NJ(JZ,(ZJ)=>{if(J(s))ZJ(VJ);else if(J(fJ))ZJ(T,1);else ZJ(ZZ,-1)})}y(z,DJ)});var q=TZ(k,2);YZ(q,17,()=>J(x6),(z)=>z.key,(z,G)=>{M(z,()=>J(G),()=>"item-toolbar__element-host")}),GJ(Q);var P=TZ(Q,2);{var S=(z)=>{var G=I9();let e;YZ(G,21,()=>J(z0),(JJ)=>JJ.key,(JJ,s)=>{M(JJ,()=>J(s),()=>"item-toolbar__controls-host")}),GJ(G),o(()=>e=OJ(G,1,"item-toolbar__controls-row svelte-1c13522",null,e,{"item-toolbar__controls-row--reserve":J(B0),"item-toolbar__controls-row--active":J(I0),"item-toolbar__controls-row--align-start":J($6)})),y(z,G)};NJ(P,(z)=>{if(J(p6))z(S)})}GJ(K),V6(K,(z)=>r(KJ,z),()=>J(KJ)),o(()=>{j=OJ(K,1,`item-toolbar ${$Z()??""} item-toolbar--${FZ()??""}`,"svelte-1c13522",j,{"item-toolbar--top":MJ()==="top","item-toolbar--right":MJ()==="right","item-toolbar--bottom":MJ()==="bottom","item-toolbar--left":MJ()==="left","item-toolbar--header-overlay-active":J(T0)}),l(K,"data-content-kind",J(oJ)),l(K,"data-level",J(A))}),VZ("focusin",Q,(z)=>{if(J(A)==="section"&&z.target instanceof HTMLElement)z.target.scrollIntoView({block:"nearest",inline:"nearest"})}),y(Z,K)};NJ(i6,(Z)=>{if(H)Z(s6)})}return y(D,C0),j6(a6)}X6(["focusin","click"]);O9("pie-item-toolbar",Y6(W6,{level:{attribute:"level",type:"String"},scopeId:{attribute:"scope-id",type:"String"},itemId:{attribute:"item-id",type:"String"},sectionId:{attribute:"section-id",type:"String"},catalogId:{attribute:"catalog-id",type:"String"},tools:{attribute:"tools",type:"String"},contentKind:{attribute:"content-kind",type:"String"},position:{attribute:"position",type:"String"},size:{attribute:"size",type:"String"},language:{attribute:"language",type:"String"},scopeElement:{type:"Object"},toolRegistry:{type:"Object"},item:{type:"Object"},hostButtons:{type:"Object"},class:{}},[],[],{mode:"open"}));
40
- export{W6 as l};
@@ -1,2 +0,0 @@
1
- var P="pie-register",S="pie-unregister",V="pie-item-session-changed",L="item-session-changed",M="pie-content-loaded",O="pie-item-player-error",D="pie-formative-action",G="pie-media-time-source";var p=(E)=>Array.isArray(E)&&E.length>0;function R(E){if(E.kind==="passage")return{ownerKind:"passage",assessmentId:E.assessmentId,sectionId:E.sectionId,passageId:E.canonicalItemId||E.itemId};return{ownerKind:"itemModel",assessmentId:E.assessmentId,sectionId:E.sectionId,itemId:E.itemId,canonicalItemId:E.canonicalItemId||E.itemId}}function A(E,I){if(!E)return[];let N=R(I),_=[];if(p(E.accessibilityCatalogs))_.push({context:N,catalogs:E.accessibilityCatalogs});if(p(E.config?.extractedCatalogs))_.push({context:N,catalogs:E.config.extractedCatalogs});if(I.kind==="passage")return _;if(N.ownerKind!=="itemModel")return _;for(let T of E.config?.models??[]){if(!p(T.accessibilityCatalogs))continue;_.push({context:{...N,modelId:T.id},catalogs:T.accessibilityCatalogs})}return _}function x(E,I){let N=A(E,{kind:I,itemId:""});try{return JSON.stringify(N.map((_)=>[_.context.modelId??null,_.catalogs]))}catch{return null}}
2
- export{P as a,S as b,V as c,L as d,M as e,O as f,D as g,G as h,R as i,A as j,x as k};
@@ -1 +0,0 @@
1
- import{pa as v}from"./ItemToolBar-66hcwmfw.js";import"./ItemToolBar-kkj69ptr.js";import*as q from"speech-rule-engine";var x=q.default??q;x.setupEngine(v());var B=x;export{B as default};