@pie-players/pie-assessment-toolkit 0.3.42 → 0.3.44

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 (317) hide show
  1. package/dist/attempt/AssessmentSession.d.ts +0 -1
  2. package/dist/attempt/AssessmentSession.js.map +1 -1
  3. package/dist/attempt/TestSession.d.ts +0 -1
  4. package/dist/attempt/TestSession.js.map +1 -1
  5. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +0 -1
  6. package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -1
  7. package/dist/components/ItemToolBar.custom-element.js +1181 -157
  8. package/dist/components/SectionToolBar.custom-element.js +1179 -157
  9. package/dist/components/item-toolbar-element.d.ts +0 -1
  10. package/dist/components/item-toolbar-element.js.map +1 -1
  11. package/dist/components/pie-assessment-toolkit-element.d.ts +0 -1
  12. package/dist/components/pie-assessment-toolkit-element.js.map +1 -1
  13. package/dist/components/section-toolbar-element.d.ts +0 -1
  14. package/dist/components/section-toolbar-element.js.map +1 -1
  15. package/dist/components/vendor/nds/README.md +110 -0
  16. package/dist/components/vendor/nds/nds-icon-button.js +826 -0
  17. package/dist/context/assessment-toolkit-context.d.ts +0 -1
  18. package/dist/context/assessment-toolkit-context.js.map +1 -1
  19. package/dist/context/runtime-context-consumer.d.ts +0 -1
  20. package/dist/context/runtime-context-consumer.js.map +1 -1
  21. package/dist/index.d.ts +0 -1
  22. package/dist/index.js.map +1 -1
  23. package/dist/item-loader.d.ts +0 -1
  24. package/dist/item-loader.js.map +1 -1
  25. package/dist/policy/core/PolicySource.d.ts +0 -1
  26. package/dist/policy/core/PolicySource.js.map +1 -1
  27. package/dist/policy/core/ToolPolicyEngine.d.ts +0 -1
  28. package/dist/policy/core/ToolPolicyEngine.js.map +1 -1
  29. package/dist/policy/core/compose-decision.d.ts +0 -1
  30. package/dist/policy/core/compose-decision.js.map +1 -1
  31. package/dist/policy/core/decision-types.d.ts +0 -1
  32. package/dist/policy/core/decision-types.js.map +1 -1
  33. package/dist/policy/core/engine-context.d.ts +0 -1
  34. package/dist/policy/core/engine-context.js.map +1 -1
  35. package/dist/policy/core/pnp-policy-inputs.d.ts +0 -1
  36. package/dist/policy/core/pnp-policy-inputs.js.map +1 -1
  37. package/dist/policy/core/policy-source-tag.d.ts +0 -1
  38. package/dist/policy/core/policy-source-tag.js.map +1 -1
  39. package/dist/policy/core/provenance.d.ts +0 -1
  40. package/dist/policy/core/provenance.js.map +1 -1
  41. package/dist/policy/engine.d.ts +0 -1
  42. package/dist/policy/engine.js.map +1 -1
  43. package/dist/policy/internal.d.ts +0 -1
  44. package/dist/policy/internal.js.map +1 -1
  45. package/dist/policy/sources/PnpPolicySource.d.ts +0 -1
  46. package/dist/policy/sources/PnpPolicySource.js.map +1 -1
  47. package/dist/runtime/RuntimeRegistry.d.ts +0 -1
  48. package/dist/runtime/RuntimeRegistry.js.map +1 -1
  49. package/dist/runtime/SectionRuntimeEngine.d.ts +0 -1
  50. package/dist/runtime/SectionRuntimeEngine.js.map +1 -1
  51. package/dist/runtime/adapter/SectionEngineAdapter.d.ts +0 -1
  52. package/dist/runtime/adapter/SectionEngineAdapter.js.map +1 -1
  53. package/dist/runtime/adapter/coordinator-bridge.d.ts +0 -1
  54. package/dist/runtime/adapter/coordinator-bridge.js.map +1 -1
  55. package/dist/runtime/adapter/dom-event-bridge.d.ts +0 -1
  56. package/dist/runtime/adapter/dom-event-bridge.js.map +1 -1
  57. package/dist/runtime/adapter/framework-error-bridge.d.ts +0 -1
  58. package/dist/runtime/adapter/framework-error-bridge.js.map +1 -1
  59. package/dist/runtime/adapter/instrumentation-bridge.d.ts +0 -1
  60. package/dist/runtime/adapter/instrumentation-bridge.js.map +1 -1
  61. package/dist/runtime/adapter/subscriber-fanout.d.ts +0 -1
  62. package/dist/runtime/adapter/subscriber-fanout.js.map +1 -1
  63. package/dist/runtime/core/SectionEngineCore.d.ts +0 -1
  64. package/dist/runtime/core/SectionEngineCore.js.map +1 -1
  65. package/dist/runtime/core/cohort.d.ts +0 -1
  66. package/dist/runtime/core/cohort.js.map +1 -1
  67. package/dist/runtime/core/engine-input.d.ts +0 -1
  68. package/dist/runtime/core/engine-input.js.map +1 -1
  69. package/dist/runtime/core/engine-output.d.ts +0 -1
  70. package/dist/runtime/core/engine-output.js.map +1 -1
  71. package/dist/runtime/core/engine-readiness.d.ts +0 -1
  72. package/dist/runtime/core/engine-readiness.js.map +1 -1
  73. package/dist/runtime/core/engine-resolver.d.ts +0 -1
  74. package/dist/runtime/core/engine-resolver.js.map +1 -1
  75. package/dist/runtime/core/engine-stage-derivation.d.ts +0 -1
  76. package/dist/runtime/core/engine-stage-derivation.js.map +1 -1
  77. package/dist/runtime/core/engine-state.d.ts +0 -1
  78. package/dist/runtime/core/engine-state.js.map +1 -1
  79. package/dist/runtime/core/engine-transition.d.ts +0 -1
  80. package/dist/runtime/core/engine-transition.js.map +1 -1
  81. package/dist/runtime/engine-context.d.ts +0 -1
  82. package/dist/runtime/engine-context.js.map +1 -1
  83. package/dist/runtime/engine.d.ts +0 -1
  84. package/dist/runtime/engine.js.map +1 -1
  85. package/dist/runtime/internal.d.ts +0 -1
  86. package/dist/runtime/internal.js.map +1 -1
  87. package/dist/runtime/registration-events.d.ts +0 -1
  88. package/dist/runtime/registration-events.js.map +1 -1
  89. package/dist/runtime/runtime-id.d.ts +0 -1
  90. package/dist/runtime/runtime-id.js.map +1 -1
  91. package/dist/runtime/section-runtime-engine-host-context.d.ts +0 -1
  92. package/dist/runtime/section-runtime-engine-host-context.js.map +1 -1
  93. package/dist/runtime/session-event-emitter-policy.d.ts +0 -1
  94. package/dist/runtime/session-event-emitter-policy.js.map +1 -1
  95. package/dist/runtime/stage-emit-gate.d.ts +0 -1
  96. package/dist/runtime/stage-emit-gate.js.map +1 -1
  97. package/dist/runtime/tool-host-contract.d.ts +0 -1
  98. package/dist/runtime/tool-host-contract.js.map +1 -1
  99. package/dist/services/AccessibilityCatalogResolver.d.ts +0 -1
  100. package/dist/services/AccessibilityCatalogResolver.js.map +1 -1
  101. package/dist/services/ContextVariableStore.d.ts +0 -1
  102. package/dist/services/ContextVariableStore.js.map +1 -1
  103. package/dist/services/ElementToolStateStore.d.ts +0 -1
  104. package/dist/services/ElementToolStateStore.js.map +1 -1
  105. package/dist/services/HighlightCoordinator.d.ts +0 -1
  106. package/dist/services/HighlightCoordinator.js.map +1 -1
  107. package/dist/services/I18nService.d.ts +0 -1
  108. package/dist/services/I18nService.js.map +1 -1
  109. package/dist/services/PNPToolResolver.d.ts +0 -1
  110. package/dist/services/PNPToolResolver.js.map +1 -1
  111. package/dist/services/RangeSerializer.d.ts +0 -1
  112. package/dist/services/RangeSerializer.js.map +1 -1
  113. package/dist/services/SSMLExtractor.d.ts +0 -1
  114. package/dist/services/SSMLExtractor.js.map +1 -1
  115. package/dist/services/TTSService.d.ts +0 -1
  116. package/dist/services/TTSService.js.map +1 -1
  117. package/dist/services/ThemeProvider.d.ts +0 -1
  118. package/dist/services/ThemeProvider.js.map +1 -1
  119. package/dist/services/ToolConfigResolver.d.ts +0 -1
  120. package/dist/services/ToolConfigResolver.js.map +1 -1
  121. package/dist/services/ToolCoordinator.d.ts +0 -1
  122. package/dist/services/ToolCoordinator.js.map +1 -1
  123. package/dist/services/ToolRegistry.d.ts +0 -1
  124. package/dist/services/ToolRegistry.js.map +1 -1
  125. package/dist/services/ToolkitCoordinator.d.ts +0 -1
  126. package/dist/services/ToolkitCoordinator.js.map +1 -1
  127. package/dist/services/create-tools-config.d.ts +0 -1
  128. package/dist/services/create-tools-config.js.map +1 -1
  129. package/dist/services/createDefaultToolRegistry.d.ts +0 -1
  130. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  131. package/dist/services/defaultPersonalNeedsProfile.d.ts +0 -1
  132. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -1
  133. package/dist/services/framework-error-bus.d.ts +0 -1
  134. package/dist/services/framework-error-bus.js.map +1 -1
  135. package/dist/services/framework-error.d.ts +0 -1
  136. package/dist/services/framework-error.js.map +1 -1
  137. package/dist/services/interfaces.d.ts +0 -1
  138. package/dist/services/interfaces.js.map +1 -1
  139. package/dist/services/pnp-provenance.d.ts +0 -1
  140. package/dist/services/pnp-provenance.js.map +1 -1
  141. package/dist/services/pnp-standard-features.d.ts +0 -1
  142. package/dist/services/pnp-standard-features.js.map +1 -1
  143. package/dist/services/section-controller-types.d.ts +0 -1
  144. package/dist/services/section-controller-types.js.map +1 -1
  145. package/dist/services/tool-config-defaults.d.ts +0 -1
  146. package/dist/services/tool-config-defaults.js.map +1 -1
  147. package/dist/services/tool-config-validation.d.ts +0 -1
  148. package/dist/services/tool-config-validation.js.map +1 -1
  149. package/dist/services/tool-context.d.ts +0 -1
  150. package/dist/services/tool-context.js.map +1 -1
  151. package/dist/services/tool-instance-id.d.ts +0 -1
  152. package/dist/services/tool-instance-id.js.map +1 -1
  153. package/dist/services/tool-providers/DesmosToolProvider.d.ts +0 -1
  154. package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -1
  155. package/dist/services/tool-providers/TTSToolProvider.d.ts +0 -1
  156. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -1
  157. package/dist/services/tool-providers/ToolProviderApi.d.ts +0 -1
  158. package/dist/services/tool-providers/ToolProviderApi.js.map +1 -1
  159. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +0 -1
  160. package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -1
  161. package/dist/services/tool-providers/index.d.ts +0 -1
  162. package/dist/services/tool-providers/index.js.map +1 -1
  163. package/dist/services/toolbar-items.d.ts +0 -1
  164. package/dist/services/toolbar-items.js.map +1 -1
  165. package/dist/services/tools-config-normalizer.d.ts +0 -1
  166. package/dist/services/tools-config-normalizer.js.map +1 -1
  167. package/dist/services/tts/browser-provider.d.ts +0 -1
  168. package/dist/services/tts/browser-provider.js.map +1 -1
  169. package/dist/services/tts/text-processing.d.ts +0 -1
  170. package/dist/services/tts/text-processing.js.map +1 -1
  171. package/dist/services/tts/text-segmentation.d.ts +0 -1
  172. package/dist/services/tts/text-segmentation.js.map +1 -1
  173. package/dist/services/tts/visual-line-ranges.d.ts +0 -1
  174. package/dist/services/tts/visual-line-ranges.js.map +1 -1
  175. package/dist/services/tts-control-events.d.ts +0 -1
  176. package/dist/services/tts-control-events.js.map +1 -1
  177. package/dist/services/tts-runtime-config.d.ts +0 -1
  178. package/dist/services/tts-runtime-config.js.map +1 -1
  179. package/dist/tools/calculators/desmos-provider.d.ts +0 -1
  180. package/dist/tools/calculators/desmos-provider.js.map +1 -1
  181. package/dist/tools/client.d.ts +0 -1
  182. package/dist/tools/client.js.map +1 -1
  183. package/dist/tools/default-tool-module-loaders.d.ts +0 -1
  184. package/dist/tools/default-tool-module-loaders.js.map +1 -1
  185. package/dist/tools/index.d.ts +0 -1
  186. package/dist/tools/index.js.map +1 -1
  187. package/dist/tools/library-loader.d.ts +0 -1
  188. package/dist/tools/library-loader.js.map +1 -1
  189. package/dist/tools/registrations/accessibility-tools.d.ts +0 -1
  190. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  191. package/dist/tools/registrations/calculator.d.ts +0 -1
  192. package/dist/tools/registrations/calculator.js.map +1 -1
  193. package/dist/tools/registrations/interaction-tools.d.ts +0 -1
  194. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  195. package/dist/tools/registrations/measurement-tools.d.ts +0 -1
  196. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  197. package/dist/tools/registrations/subject-specific-tools.d.ts +0 -1
  198. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  199. package/dist/tools/registrations/toolbar-registration-helpers.d.ts +0 -1
  200. package/dist/tools/registrations/toolbar-registration-helpers.js.map +1 -1
  201. package/dist/tools/registrations/tts.d.ts +0 -1
  202. package/dist/tools/registrations/tts.js.map +1 -1
  203. package/dist/tools/response-discovery.d.ts +0 -1
  204. package/dist/tools/response-discovery.js.map +1 -1
  205. package/dist/tools/tool-tag-map.d.ts +0 -1
  206. package/dist/tools/tool-tag-map.js.map +1 -1
  207. package/dist/tools/types.d.ts +0 -1
  208. package/dist/tools/types.js.map +1 -1
  209. package/dist/tools/variant-resolver.d.ts +0 -1
  210. package/dist/tools/variant-resolver.js.map +1 -1
  211. package/dist/utils/logger.d.ts +0 -1
  212. package/dist/utils/logger.js.map +1 -1
  213. package/package.json +7 -7
  214. package/dist/attempt/AssessmentSession.d.ts.map +0 -1
  215. package/dist/attempt/TestSession.d.ts.map +0 -1
  216. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +0 -1
  217. package/dist/components/item-toolbar-element.d.ts.map +0 -1
  218. package/dist/components/pie-assessment-toolkit-element.d.ts.map +0 -1
  219. package/dist/components/section-toolbar-element.d.ts.map +0 -1
  220. package/dist/context/assessment-toolkit-context.d.ts.map +0 -1
  221. package/dist/context/runtime-context-consumer.d.ts.map +0 -1
  222. package/dist/index.d.ts.map +0 -1
  223. package/dist/item-loader.d.ts.map +0 -1
  224. package/dist/policy/core/PolicySource.d.ts.map +0 -1
  225. package/dist/policy/core/ToolPolicyEngine.d.ts.map +0 -1
  226. package/dist/policy/core/compose-decision.d.ts.map +0 -1
  227. package/dist/policy/core/decision-types.d.ts.map +0 -1
  228. package/dist/policy/core/engine-context.d.ts.map +0 -1
  229. package/dist/policy/core/pnp-policy-inputs.d.ts.map +0 -1
  230. package/dist/policy/core/policy-source-tag.d.ts.map +0 -1
  231. package/dist/policy/core/provenance.d.ts.map +0 -1
  232. package/dist/policy/engine.d.ts.map +0 -1
  233. package/dist/policy/internal.d.ts.map +0 -1
  234. package/dist/policy/sources/PnpPolicySource.d.ts.map +0 -1
  235. package/dist/runtime/RuntimeRegistry.d.ts.map +0 -1
  236. package/dist/runtime/SectionRuntimeEngine.d.ts.map +0 -1
  237. package/dist/runtime/adapter/SectionEngineAdapter.d.ts.map +0 -1
  238. package/dist/runtime/adapter/coordinator-bridge.d.ts.map +0 -1
  239. package/dist/runtime/adapter/dom-event-bridge.d.ts.map +0 -1
  240. package/dist/runtime/adapter/framework-error-bridge.d.ts.map +0 -1
  241. package/dist/runtime/adapter/instrumentation-bridge.d.ts.map +0 -1
  242. package/dist/runtime/adapter/subscriber-fanout.d.ts.map +0 -1
  243. package/dist/runtime/core/SectionEngineCore.d.ts.map +0 -1
  244. package/dist/runtime/core/cohort.d.ts.map +0 -1
  245. package/dist/runtime/core/engine-input.d.ts.map +0 -1
  246. package/dist/runtime/core/engine-output.d.ts.map +0 -1
  247. package/dist/runtime/core/engine-readiness.d.ts.map +0 -1
  248. package/dist/runtime/core/engine-resolver.d.ts.map +0 -1
  249. package/dist/runtime/core/engine-stage-derivation.d.ts.map +0 -1
  250. package/dist/runtime/core/engine-state.d.ts.map +0 -1
  251. package/dist/runtime/core/engine-transition.d.ts.map +0 -1
  252. package/dist/runtime/engine-context.d.ts.map +0 -1
  253. package/dist/runtime/engine.d.ts.map +0 -1
  254. package/dist/runtime/internal.d.ts.map +0 -1
  255. package/dist/runtime/registration-events.d.ts.map +0 -1
  256. package/dist/runtime/runtime-id.d.ts.map +0 -1
  257. package/dist/runtime/section-runtime-engine-host-context.d.ts.map +0 -1
  258. package/dist/runtime/session-event-emitter-policy.d.ts.map +0 -1
  259. package/dist/runtime/stage-emit-gate.d.ts.map +0 -1
  260. package/dist/runtime/tool-host-contract.d.ts.map +0 -1
  261. package/dist/services/AccessibilityCatalogResolver.d.ts.map +0 -1
  262. package/dist/services/ContextVariableStore.d.ts.map +0 -1
  263. package/dist/services/ElementToolStateStore.d.ts.map +0 -1
  264. package/dist/services/HighlightCoordinator.d.ts.map +0 -1
  265. package/dist/services/I18nService.d.ts.map +0 -1
  266. package/dist/services/PNPToolResolver.d.ts.map +0 -1
  267. package/dist/services/RangeSerializer.d.ts.map +0 -1
  268. package/dist/services/SSMLExtractor.d.ts.map +0 -1
  269. package/dist/services/TTSService.d.ts.map +0 -1
  270. package/dist/services/ThemeProvider.d.ts.map +0 -1
  271. package/dist/services/ToolConfigResolver.d.ts.map +0 -1
  272. package/dist/services/ToolCoordinator.d.ts.map +0 -1
  273. package/dist/services/ToolRegistry.d.ts.map +0 -1
  274. package/dist/services/ToolkitCoordinator.d.ts.map +0 -1
  275. package/dist/services/create-tools-config.d.ts.map +0 -1
  276. package/dist/services/createDefaultToolRegistry.d.ts.map +0 -1
  277. package/dist/services/defaultPersonalNeedsProfile.d.ts.map +0 -1
  278. package/dist/services/framework-error-bus.d.ts.map +0 -1
  279. package/dist/services/framework-error.d.ts.map +0 -1
  280. package/dist/services/interfaces.d.ts.map +0 -1
  281. package/dist/services/pnp-provenance.d.ts.map +0 -1
  282. package/dist/services/pnp-standard-features.d.ts.map +0 -1
  283. package/dist/services/section-controller-types.d.ts.map +0 -1
  284. package/dist/services/tool-config-defaults.d.ts.map +0 -1
  285. package/dist/services/tool-config-validation.d.ts.map +0 -1
  286. package/dist/services/tool-context.d.ts.map +0 -1
  287. package/dist/services/tool-instance-id.d.ts.map +0 -1
  288. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +0 -1
  289. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +0 -1
  290. package/dist/services/tool-providers/ToolProviderApi.d.ts.map +0 -1
  291. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +0 -1
  292. package/dist/services/tool-providers/index.d.ts.map +0 -1
  293. package/dist/services/toolbar-items.d.ts.map +0 -1
  294. package/dist/services/tools-config-normalizer.d.ts.map +0 -1
  295. package/dist/services/tts/browser-provider.d.ts.map +0 -1
  296. package/dist/services/tts/text-processing.d.ts.map +0 -1
  297. package/dist/services/tts/text-segmentation.d.ts.map +0 -1
  298. package/dist/services/tts/visual-line-ranges.d.ts.map +0 -1
  299. package/dist/services/tts-control-events.d.ts.map +0 -1
  300. package/dist/services/tts-runtime-config.d.ts.map +0 -1
  301. package/dist/tools/calculators/desmos-provider.d.ts.map +0 -1
  302. package/dist/tools/client.d.ts.map +0 -1
  303. package/dist/tools/default-tool-module-loaders.d.ts.map +0 -1
  304. package/dist/tools/index.d.ts.map +0 -1
  305. package/dist/tools/library-loader.d.ts.map +0 -1
  306. package/dist/tools/registrations/accessibility-tools.d.ts.map +0 -1
  307. package/dist/tools/registrations/calculator.d.ts.map +0 -1
  308. package/dist/tools/registrations/interaction-tools.d.ts.map +0 -1
  309. package/dist/tools/registrations/measurement-tools.d.ts.map +0 -1
  310. package/dist/tools/registrations/subject-specific-tools.d.ts.map +0 -1
  311. package/dist/tools/registrations/toolbar-registration-helpers.d.ts.map +0 -1
  312. package/dist/tools/registrations/tts.d.ts.map +0 -1
  313. package/dist/tools/response-discovery.d.ts.map +0 -1
  314. package/dist/tools/tool-tag-map.d.ts.map +0 -1
  315. package/dist/tools/types.d.ts.map +0 -1
  316. package/dist/tools/variant-resolver.d.ts.map +0 -1
  317. package/dist/utils/logger.d.ts.map +0 -1
@@ -7536,6 +7536,879 @@ var DEFAULT_TOOL_MODULE_LOADERS = {
7536
7536
  textToSpeech: () => loadSideEffectModule(() => import("@pie-players/pie-tool-tts-inline"))
7537
7537
  };
7538
7538
 
7539
+ // dist/components/vendor/nds/nds-icon-button.js
7540
+ var H = globalThis;
7541
+ var D = H.ShadowRoot && (H.ShadyCSS === undefined || H.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
7542
+ var tt = Symbol();
7543
+ var W = /* @__PURE__ */ new WeakMap;
7544
+ var nt = class {
7545
+ constructor(t, e, s) {
7546
+ if (this._$cssResult$ = true, s !== tt)
7547
+ throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
7548
+ this.cssText = t, this.t = e;
7549
+ }
7550
+ get styleSheet() {
7551
+ let t = this.o;
7552
+ const e = this.t;
7553
+ if (D && t === undefined) {
7554
+ const s = e !== undefined && e.length === 1;
7555
+ s && (t = W.get(e)), t === undefined && ((this.o = t = new CSSStyleSheet).replaceSync(this.cssText), s && W.set(e, t));
7556
+ }
7557
+ return t;
7558
+ }
7559
+ toString() {
7560
+ return this.cssText;
7561
+ }
7562
+ };
7563
+ var rt = (o) => new nt(typeof o == "string" ? o : o + "", undefined, tt);
7564
+ var at = (o, t) => {
7565
+ if (D)
7566
+ o.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
7567
+ else
7568
+ for (const e of t) {
7569
+ const s = document.createElement("style"), i = H.litNonce;
7570
+ i !== undefined && s.setAttribute("nonce", i), s.textContent = e.cssText, o.appendChild(s);
7571
+ }
7572
+ };
7573
+ var V = D ? (o) => o : (o) => o instanceof CSSStyleSheet ? ((t) => {
7574
+ let e = "";
7575
+ for (const s of t.cssRules)
7576
+ e += s.cssText;
7577
+ return rt(e);
7578
+ })(o) : o;
7579
+ var { is: ht, defineProperty: ct, getOwnPropertyDescriptor: lt, getOwnPropertyNames: dt, getOwnPropertySymbols: ut, getPrototypeOf: pt } = Object;
7580
+ var R = globalThis;
7581
+ var F = R.trustedTypes;
7582
+ var ft = F ? F.emptyScript : "";
7583
+ var bt = R.reactiveElementPolyfillSupport;
7584
+ var S = (o, t) => o;
7585
+ var N = { toAttribute(o, t) {
7586
+ switch (t) {
7587
+ case Boolean:
7588
+ o = o ? ft : null;
7589
+ break;
7590
+ case Object:
7591
+ case Array:
7592
+ o = o == null ? o : JSON.stringify(o);
7593
+ }
7594
+ return o;
7595
+ }, fromAttribute(o, t) {
7596
+ let e = o;
7597
+ switch (t) {
7598
+ case Boolean:
7599
+ e = o !== null;
7600
+ break;
7601
+ case Number:
7602
+ e = o === null ? null : Number(o);
7603
+ break;
7604
+ case Object:
7605
+ case Array:
7606
+ try {
7607
+ e = JSON.parse(o);
7608
+ } catch {
7609
+ e = null;
7610
+ }
7611
+ }
7612
+ return e;
7613
+ } };
7614
+ var L = (o, t) => !ht(o, t);
7615
+ var J = { attribute: true, type: String, converter: N, reflect: false, useDefault: false, hasChanged: L };
7616
+ Symbol.metadata ??= Symbol("metadata"), R.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap;
7617
+ var A = class extends HTMLElement {
7618
+ static addInitializer(t) {
7619
+ this._$Ei(), (this.l ??= []).push(t);
7620
+ }
7621
+ static get observedAttributes() {
7622
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
7623
+ }
7624
+ static createProperty(t, e = J) {
7625
+ if (e.state && (e.attribute = false), this._$Ei(), this.prototype.hasOwnProperty(t) && ((e = Object.create(e)).wrapped = true), this.elementProperties.set(t, e), !e.noAccessor) {
7626
+ const s = Symbol(), i = this.getPropertyDescriptor(t, s, e);
7627
+ i !== undefined && ct(this.prototype, t, i);
7628
+ }
7629
+ }
7630
+ static getPropertyDescriptor(t, e, s) {
7631
+ const { get: i, set: n } = lt(this.prototype, t) ?? { get() {
7632
+ return this[e];
7633
+ }, set(r) {
7634
+ this[e] = r;
7635
+ } };
7636
+ return { get: i, set(r) {
7637
+ const h = i?.call(this);
7638
+ n?.call(this, r), this.requestUpdate(t, h, s);
7639
+ }, configurable: true, enumerable: true };
7640
+ }
7641
+ static getPropertyOptions(t) {
7642
+ return this.elementProperties.get(t) ?? J;
7643
+ }
7644
+ static _$Ei() {
7645
+ if (this.hasOwnProperty(S("elementProperties")))
7646
+ return;
7647
+ const t = pt(this);
7648
+ t.finalize(), t.l !== undefined && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
7649
+ }
7650
+ static finalize() {
7651
+ if (this.hasOwnProperty(S("finalized")))
7652
+ return;
7653
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(S("properties"))) {
7654
+ const e = this.properties, s = [...dt(e), ...ut(e)];
7655
+ for (const i of s)
7656
+ this.createProperty(i, e[i]);
7657
+ }
7658
+ const t = this[Symbol.metadata];
7659
+ if (t !== null) {
7660
+ const e = litPropertyMetadata.get(t);
7661
+ if (e !== undefined)
7662
+ for (const [s, i] of e)
7663
+ this.elementProperties.set(s, i);
7664
+ }
7665
+ this._$Eh = /* @__PURE__ */ new Map;
7666
+ for (const [e, s] of this.elementProperties) {
7667
+ const i = this._$Eu(e, s);
7668
+ i !== undefined && this._$Eh.set(i, e);
7669
+ }
7670
+ this.elementStyles = this.finalizeStyles(this.styles);
7671
+ }
7672
+ static finalizeStyles(t) {
7673
+ const e = [];
7674
+ if (Array.isArray(t)) {
7675
+ const s = new Set(t.flat(1 / 0).reverse());
7676
+ for (const i of s)
7677
+ e.unshift(V(i));
7678
+ } else
7679
+ t !== undefined && e.push(V(t));
7680
+ return e;
7681
+ }
7682
+ static _$Eu(t, e) {
7683
+ const s = e.attribute;
7684
+ return s === false ? undefined : typeof s == "string" ? s : typeof t == "string" ? t.toLowerCase() : undefined;
7685
+ }
7686
+ constructor() {
7687
+ super(), this._$Ep = undefined, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
7688
+ }
7689
+ _$Ev() {
7690
+ this._$ES = new Promise((t) => this.enableUpdating = t), this._$AL = /* @__PURE__ */ new Map, this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t) => t(this));
7691
+ }
7692
+ addController(t) {
7693
+ (this._$EO ??= /* @__PURE__ */ new Set).add(t), this.renderRoot !== undefined && this.isConnected && t.hostConnected?.();
7694
+ }
7695
+ removeController(t) {
7696
+ this._$EO?.delete(t);
7697
+ }
7698
+ _$E_() {
7699
+ const t = /* @__PURE__ */ new Map, e = this.constructor.elementProperties;
7700
+ for (const s of e.keys())
7701
+ this.hasOwnProperty(s) && (t.set(s, this[s]), delete this[s]);
7702
+ t.size > 0 && (this._$Ep = t);
7703
+ }
7704
+ createRenderRoot() {
7705
+ const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
7706
+ return at(t, this.constructor.elementStyles), t;
7707
+ }
7708
+ connectedCallback() {
7709
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t) => t.hostConnected?.());
7710
+ }
7711
+ enableUpdating(t) {}
7712
+ disconnectedCallback() {
7713
+ this._$EO?.forEach((t) => t.hostDisconnected?.());
7714
+ }
7715
+ attributeChangedCallback(t, e, s) {
7716
+ this._$AK(t, s);
7717
+ }
7718
+ _$ET(t, e) {
7719
+ const s = this.constructor.elementProperties.get(t), i = this.constructor._$Eu(t, s);
7720
+ if (i !== undefined && s.reflect === true) {
7721
+ const n = (s.converter?.toAttribute !== undefined ? s.converter : N).toAttribute(e, s.type);
7722
+ this._$Em = t, n == null ? this.removeAttribute(i) : this.setAttribute(i, n), this._$Em = null;
7723
+ }
7724
+ }
7725
+ _$AK(t, e) {
7726
+ const s = this.constructor, i = s._$Eh.get(t);
7727
+ if (i !== undefined && this._$Em !== i) {
7728
+ const n = s.getPropertyOptions(i), r = typeof n.converter == "function" ? { fromAttribute: n.converter } : n.converter?.fromAttribute !== undefined ? n.converter : N;
7729
+ this._$Em = i;
7730
+ const h = r.fromAttribute(e, n.type);
7731
+ this[i] = h ?? this._$Ej?.get(i) ?? h, this._$Em = null;
7732
+ }
7733
+ }
7734
+ requestUpdate(t, e, s) {
7735
+ if (t !== undefined) {
7736
+ const i = this.constructor, n = this[t];
7737
+ if (s ??= i.getPropertyOptions(t), !((s.hasChanged ?? L)(n, e) || s.useDefault && s.reflect && n === this._$Ej?.get(t) && !this.hasAttribute(i._$Eu(t, s))))
7738
+ return;
7739
+ this.C(t, e, s);
7740
+ }
7741
+ this.isUpdatePending === false && (this._$ES = this._$EP());
7742
+ }
7743
+ C(t, e, { useDefault: s, reflect: i, wrapped: n }, r) {
7744
+ s && !(this._$Ej ??= /* @__PURE__ */ new Map).has(t) && (this._$Ej.set(t, r ?? e ?? this[t]), n !== true || r !== undefined) || (this._$AL.has(t) || (this.hasUpdated || s || (e = undefined), this._$AL.set(t, e)), i === true && this._$Em !== t && (this._$Eq ??= /* @__PURE__ */ new Set).add(t));
7745
+ }
7746
+ async _$EP() {
7747
+ this.isUpdatePending = true;
7748
+ try {
7749
+ await this._$ES;
7750
+ } catch (e) {
7751
+ Promise.reject(e);
7752
+ }
7753
+ const t = this.scheduleUpdate();
7754
+ return t != null && await t, !this.isUpdatePending;
7755
+ }
7756
+ scheduleUpdate() {
7757
+ return this.performUpdate();
7758
+ }
7759
+ performUpdate() {
7760
+ if (!this.isUpdatePending)
7761
+ return;
7762
+ if (!this.hasUpdated) {
7763
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
7764
+ for (const [i, n] of this._$Ep)
7765
+ this[i] = n;
7766
+ this._$Ep = undefined;
7767
+ }
7768
+ const s = this.constructor.elementProperties;
7769
+ if (s.size > 0)
7770
+ for (const [i, n] of s) {
7771
+ const { wrapped: r } = n, h = this[i];
7772
+ r !== true || this._$AL.has(i) || h === undefined || this.C(i, undefined, n, h);
7773
+ }
7774
+ }
7775
+ let t = false;
7776
+ const e = this._$AL;
7777
+ try {
7778
+ t = this.shouldUpdate(e), t ? (this.willUpdate(e), this._$EO?.forEach((s) => s.hostUpdate?.()), this.update(e)) : this._$EM();
7779
+ } catch (s) {
7780
+ throw t = false, this._$EM(), s;
7781
+ }
7782
+ t && this._$AE(e);
7783
+ }
7784
+ willUpdate(t) {}
7785
+ _$AE(t) {
7786
+ this._$EO?.forEach((e) => e.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t)), this.updated(t);
7787
+ }
7788
+ _$EM() {
7789
+ this._$AL = /* @__PURE__ */ new Map, this.isUpdatePending = false;
7790
+ }
7791
+ get updateComplete() {
7792
+ return this.getUpdateComplete();
7793
+ }
7794
+ getUpdateComplete() {
7795
+ return this._$ES;
7796
+ }
7797
+ shouldUpdate(t) {
7798
+ return true;
7799
+ }
7800
+ update(t) {
7801
+ this._$Eq &&= this._$Eq.forEach((e) => this._$ET(e, this[e])), this._$EM();
7802
+ }
7803
+ updated(t) {}
7804
+ firstUpdated(t) {}
7805
+ };
7806
+ A.elementStyles = [], A.shadowRootOptions = { mode: "open" }, A[S("elementProperties")] = /* @__PURE__ */ new Map, A[S("finalized")] = /* @__PURE__ */ new Map, bt?.({ ReactiveElement: A }), (R.reactiveElementVersions ??= []).push("2.1.1");
7807
+ var I = globalThis;
7808
+ var T = I.trustedTypes;
7809
+ var K = T ? T.createPolicy("lit-html", { createHTML: (o) => o }) : undefined;
7810
+ var et = "$lit$";
7811
+ var v = `lit$${Math.random().toFixed(9).slice(2)}$`;
7812
+ var st = "?" + v;
7813
+ var $t = `<${st}>`;
7814
+ var g = document;
7815
+ var k = () => g.createComment("");
7816
+ var P = (o) => o === null || typeof o != "object" && typeof o != "function";
7817
+ var B = Array.isArray;
7818
+ var vt = (o) => B(o) || typeof o?.[Symbol.iterator] == "function";
7819
+ var j = `[
7820
+ \f\r]`;
7821
+ var x = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
7822
+ var Z = /-->/g;
7823
+ var G = />/g;
7824
+ var y = RegExp(`>|${j}(?:([^\\s"'>=/]+)(${j}*=${j}*(?:[^
7825
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
7826
+ var Q = /'/g;
7827
+ var X = /"/g;
7828
+ var it = /^(?:script|style|textarea|title)$/i;
7829
+ var _t = (o) => (t, ...e) => ({ _$litType$: o, strings: t, values: e });
7830
+ var yt = _t(1);
7831
+ var w = Symbol.for("lit-noChange");
7832
+ var d = Symbol.for("lit-nothing");
7833
+ var Y = /* @__PURE__ */ new WeakMap;
7834
+ var m = g.createTreeWalker(g, 129);
7835
+ function ot(o, t) {
7836
+ if (!B(o) || !o.hasOwnProperty("raw"))
7837
+ throw Error("invalid template strings array");
7838
+ return K !== undefined ? K.createHTML(t) : t;
7839
+ }
7840
+ var mt = (o, t) => {
7841
+ const e = o.length - 1, s = [];
7842
+ let i, n = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", r = x;
7843
+ for (let h = 0;h < e; h++) {
7844
+ const a = o[h];
7845
+ let l, u, c = -1, f = 0;
7846
+ for (;f < a.length && (r.lastIndex = f, u = r.exec(a), u !== null); )
7847
+ f = r.lastIndex, r === x ? u[1] === "!--" ? r = Z : u[1] !== undefined ? r = G : u[2] !== undefined ? (it.test(u[2]) && (i = RegExp("</" + u[2], "g")), r = y) : u[3] !== undefined && (r = y) : r === y ? u[0] === ">" ? (r = i ?? x, c = -1) : u[1] === undefined ? c = -2 : (c = r.lastIndex - u[2].length, l = u[1], r = u[3] === undefined ? y : u[3] === '"' ? X : Q) : r === X || r === Q ? r = y : r === Z || r === G ? r = x : (r = y, i = undefined);
7848
+ const $ = r === y && o[h + 1].startsWith("/>") ? " " : "";
7849
+ n += r === x ? a + $t : c >= 0 ? (s.push(l), a.slice(0, c) + et + a.slice(c) + v + $) : a + v + (c === -2 ? h : $);
7850
+ }
7851
+ return [ot(o, n + (o[e] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), s];
7852
+ };
7853
+
7854
+ class O {
7855
+ constructor({ strings: t, _$litType$: e }, s) {
7856
+ let i;
7857
+ this.parts = [];
7858
+ let n = 0, r = 0;
7859
+ const h = t.length - 1, a = this.parts, [l, u] = mt(t, e);
7860
+ if (this.el = O.createElement(l, s), m.currentNode = this.el.content, e === 2 || e === 3) {
7861
+ const c = this.el.content.firstChild;
7862
+ c.replaceWith(...c.childNodes);
7863
+ }
7864
+ for (;(i = m.nextNode()) !== null && a.length < h; ) {
7865
+ if (i.nodeType === 1) {
7866
+ if (i.hasAttributes())
7867
+ for (const c of i.getAttributeNames())
7868
+ if (c.endsWith(et)) {
7869
+ const f = u[r++], $ = i.getAttribute(c).split(v), M = /([.?@])?(.*)/.exec(f);
7870
+ a.push({ type: 1, index: n, name: M[2], strings: $, ctor: M[1] === "." ? At : M[1] === "?" ? wt : M[1] === "@" ? Et : z }), i.removeAttribute(c);
7871
+ } else
7872
+ c.startsWith(v) && (a.push({ type: 6, index: n }), i.removeAttribute(c));
7873
+ if (it.test(i.tagName)) {
7874
+ const c = i.textContent.split(v), f = c.length - 1;
7875
+ if (f > 0) {
7876
+ i.textContent = T ? T.emptyScript : "";
7877
+ for (let $ = 0;$ < f; $++)
7878
+ i.append(c[$], k()), m.nextNode(), a.push({ type: 2, index: ++n });
7879
+ i.append(c[f], k());
7880
+ }
7881
+ }
7882
+ } else if (i.nodeType === 8)
7883
+ if (i.data === st)
7884
+ a.push({ type: 2, index: n });
7885
+ else {
7886
+ let c = -1;
7887
+ for (;(c = i.data.indexOf(v, c + 1)) !== -1; )
7888
+ a.push({ type: 7, index: n }), c += v.length - 1;
7889
+ }
7890
+ n++;
7891
+ }
7892
+ }
7893
+ static createElement(t, e) {
7894
+ const s = g.createElement("template");
7895
+ return s.innerHTML = t, s;
7896
+ }
7897
+ }
7898
+ function E(o, t, e = o, s) {
7899
+ if (t === w)
7900
+ return t;
7901
+ let i = s !== undefined ? e._$Co?.[s] : e._$Cl;
7902
+ const n = P(t) ? undefined : t._$litDirective$;
7903
+ return i?.constructor !== n && (i?._$AO?.(false), n === undefined ? i = undefined : (i = new n(o), i._$AT(o, e, s)), s !== undefined ? (e._$Co ??= [])[s] = i : e._$Cl = i), i !== undefined && (t = E(o, i._$AS(o, t.values), i, s)), t;
7904
+ }
7905
+
7906
+ class gt {
7907
+ constructor(t, e) {
7908
+ this._$AV = [], this._$AN = undefined, this._$AD = t, this._$AM = e;
7909
+ }
7910
+ get parentNode() {
7911
+ return this._$AM.parentNode;
7912
+ }
7913
+ get _$AU() {
7914
+ return this._$AM._$AU;
7915
+ }
7916
+ u(t) {
7917
+ const { el: { content: e }, parts: s } = this._$AD, i = (t?.creationScope ?? g).importNode(e, true);
7918
+ m.currentNode = i;
7919
+ let n = m.nextNode(), r = 0, h = 0, a = s[0];
7920
+ for (;a !== undefined; ) {
7921
+ if (r === a.index) {
7922
+ let l;
7923
+ a.type === 2 ? l = new U(n, n.nextSibling, this, t) : a.type === 1 ? l = new a.ctor(n, a.name, a.strings, this, t) : a.type === 6 && (l = new xt(n, this, t)), this._$AV.push(l), a = s[++h];
7924
+ }
7925
+ r !== a?.index && (n = m.nextNode(), r++);
7926
+ }
7927
+ return m.currentNode = g, i;
7928
+ }
7929
+ p(t) {
7930
+ let e = 0;
7931
+ for (const s of this._$AV)
7932
+ s !== undefined && (s.strings !== undefined ? (s._$AI(t, s, e), e += s.strings.length - 2) : s._$AI(t[e])), e++;
7933
+ }
7934
+ }
7935
+
7936
+ class U {
7937
+ get _$AU() {
7938
+ return this._$AM?._$AU ?? this._$Cv;
7939
+ }
7940
+ constructor(t, e, s, i) {
7941
+ this.type = 2, this._$AH = d, this._$AN = undefined, this._$AA = t, this._$AB = e, this._$AM = s, this.options = i, this._$Cv = i?.isConnected ?? true;
7942
+ }
7943
+ get parentNode() {
7944
+ let t = this._$AA.parentNode;
7945
+ const e = this._$AM;
7946
+ return e !== undefined && t?.nodeType === 11 && (t = e.parentNode), t;
7947
+ }
7948
+ get startNode() {
7949
+ return this._$AA;
7950
+ }
7951
+ get endNode() {
7952
+ return this._$AB;
7953
+ }
7954
+ _$AI(t, e = this) {
7955
+ t = E(this, t, e), P(t) ? t === d || t == null || t === "" ? (this._$AH !== d && this._$AR(), this._$AH = d) : t !== this._$AH && t !== w && this._(t) : t._$litType$ !== undefined ? this.$(t) : t.nodeType !== undefined ? this.T(t) : vt(t) ? this.k(t) : this._(t);
7956
+ }
7957
+ O(t) {
7958
+ return this._$AA.parentNode.insertBefore(t, this._$AB);
7959
+ }
7960
+ T(t) {
7961
+ this._$AH !== t && (this._$AR(), this._$AH = this.O(t));
7962
+ }
7963
+ _(t) {
7964
+ this._$AH !== d && P(this._$AH) ? this._$AA.nextSibling.data = t : this.T(g.createTextNode(t)), this._$AH = t;
7965
+ }
7966
+ $(t) {
7967
+ const { values: e, _$litType$: s } = t, i = typeof s == "number" ? this._$AC(t) : (s.el === undefined && (s.el = O.createElement(ot(s.h, s.h[0]), this.options)), s);
7968
+ if (this._$AH?._$AD === i)
7969
+ this._$AH.p(e);
7970
+ else {
7971
+ const n = new gt(i, this), r = n.u(this.options);
7972
+ n.p(e), this.T(r), this._$AH = n;
7973
+ }
7974
+ }
7975
+ _$AC(t) {
7976
+ let e = Y.get(t.strings);
7977
+ return e === undefined && Y.set(t.strings, e = new O(t)), e;
7978
+ }
7979
+ k(t) {
7980
+ B(this._$AH) || (this._$AH = [], this._$AR());
7981
+ const e = this._$AH;
7982
+ let s, i = 0;
7983
+ for (const n of t)
7984
+ i === e.length ? e.push(s = new U(this.O(k()), this.O(k()), this, this.options)) : s = e[i], s._$AI(n), i++;
7985
+ i < e.length && (this._$AR(s && s._$AB.nextSibling, i), e.length = i);
7986
+ }
7987
+ _$AR(t = this._$AA.nextSibling, e) {
7988
+ for (this._$AP?.(false, true, e);t !== this._$AB; ) {
7989
+ const s = t.nextSibling;
7990
+ t.remove(), t = s;
7991
+ }
7992
+ }
7993
+ setConnected(t) {
7994
+ this._$AM === undefined && (this._$Cv = t, this._$AP?.(t));
7995
+ }
7996
+ }
7997
+
7998
+ class z {
7999
+ get tagName() {
8000
+ return this.element.tagName;
8001
+ }
8002
+ get _$AU() {
8003
+ return this._$AM._$AU;
8004
+ }
8005
+ constructor(t, e, s, i, n) {
8006
+ this.type = 1, this._$AH = d, this._$AN = undefined, this.element = t, this.name = e, this._$AM = i, this.options = n, s.length > 2 || s[0] !== "" || s[1] !== "" ? (this._$AH = Array(s.length - 1).fill(new String), this.strings = s) : this._$AH = d;
8007
+ }
8008
+ _$AI(t, e = this, s, i) {
8009
+ const n = this.strings;
8010
+ let r = false;
8011
+ if (n === undefined)
8012
+ t = E(this, t, e, 0), r = !P(t) || t !== this._$AH && t !== w, r && (this._$AH = t);
8013
+ else {
8014
+ const h = t;
8015
+ let a, l;
8016
+ for (t = n[0], a = 0;a < n.length - 1; a++)
8017
+ l = E(this, h[s + a], e, a), l === w && (l = this._$AH[a]), r ||= !P(l) || l !== this._$AH[a], l === d ? t = d : t !== d && (t += (l ?? "") + n[a + 1]), this._$AH[a] = l;
8018
+ }
8019
+ r && !i && this.j(t);
8020
+ }
8021
+ j(t) {
8022
+ t === d ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
8023
+ }
8024
+ }
8025
+
8026
+ class At extends z {
8027
+ constructor() {
8028
+ super(...arguments), this.type = 3;
8029
+ }
8030
+ j(t) {
8031
+ this.element[this.name] = t === d ? undefined : t;
8032
+ }
8033
+ }
8034
+
8035
+ class wt extends z {
8036
+ constructor() {
8037
+ super(...arguments), this.type = 4;
8038
+ }
8039
+ j(t) {
8040
+ this.element.toggleAttribute(this.name, !!t && t !== d);
8041
+ }
8042
+ }
8043
+
8044
+ class Et extends z {
8045
+ constructor(t, e, s, i, n) {
8046
+ super(t, e, s, i, n), this.type = 5;
8047
+ }
8048
+ _$AI(t, e = this) {
8049
+ if ((t = E(this, t, e, 0) ?? d) === w)
8050
+ return;
8051
+ const s = this._$AH, i = t === d && s !== d || t.capture !== s.capture || t.once !== s.once || t.passive !== s.passive, n = t !== d && (s === d || i);
8052
+ i && this.element.removeEventListener(this.name, this, s), n && this.element.addEventListener(this.name, this, t), this._$AH = t;
8053
+ }
8054
+ handleEvent(t) {
8055
+ typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
8056
+ }
8057
+ }
8058
+
8059
+ class xt {
8060
+ constructor(t, e, s) {
8061
+ this.element = t, this.type = 6, this._$AN = undefined, this._$AM = e, this.options = s;
8062
+ }
8063
+ get _$AU() {
8064
+ return this._$AM._$AU;
8065
+ }
8066
+ _$AI(t) {
8067
+ E(this, t);
8068
+ }
8069
+ }
8070
+ var St = I.litHtmlPolyfillSupport;
8071
+ St?.(O, U), (I.litHtmlVersions ??= []).push("3.3.1");
8072
+ var Ct = (o, t, e) => {
8073
+ const s = e?.renderBefore ?? t;
8074
+ let i = s._$litPart$;
8075
+ if (i === undefined) {
8076
+ const n = e?.renderBefore ?? null;
8077
+ s._$litPart$ = i = new U(t.insertBefore(k(), n), n, undefined, e ?? {});
8078
+ }
8079
+ return i._$AI(o), i;
8080
+ };
8081
+ var q = globalThis;
8082
+
8083
+ class C extends A {
8084
+ constructor() {
8085
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = undefined;
8086
+ }
8087
+ createRenderRoot() {
8088
+ const t = super.createRenderRoot();
8089
+ return this.renderOptions.renderBefore ??= t.firstChild, t;
8090
+ }
8091
+ update(t) {
8092
+ const e = this.render();
8093
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = Ct(e, this.renderRoot, this.renderOptions);
8094
+ }
8095
+ connectedCallback() {
8096
+ super.connectedCallback(), this._$Do?.setConnected(true);
8097
+ }
8098
+ disconnectedCallback() {
8099
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
8100
+ }
8101
+ render() {
8102
+ return w;
8103
+ }
8104
+ }
8105
+ C._$litElement$ = true, C.finalized = true, q.litElementHydrateSupport?.({ LitElement: C });
8106
+ var kt = q.litElementPolyfillSupport;
8107
+ kt?.({ LitElement: C });
8108
+ (q.litElementVersions ??= []).push("4.2.1");
8109
+ var Pt = (o) => (t, e) => {
8110
+ e !== undefined ? e.addInitializer(() => {
8111
+ customElements.get(o) || customElements.define(o, t);
8112
+ }) : customElements.get(o) || customElements.define(o, t);
8113
+ };
8114
+ var Ot = { attribute: true, type: String, converter: N, reflect: false, hasChanged: L };
8115
+ var Ut = (o = Ot, t, e) => {
8116
+ const { kind: s, metadata: i } = e;
8117
+ let n = globalThis.litPropertyMetadata.get(i);
8118
+ if (n === undefined && globalThis.litPropertyMetadata.set(i, n = /* @__PURE__ */ new Map), s === "setter" && ((o = Object.create(o)).wrapped = true), n.set(e.name, o), s === "accessor") {
8119
+ const { name: r } = e;
8120
+ return { set(h) {
8121
+ const a = t.get.call(this);
8122
+ t.set.call(this, h), this.requestUpdate(r, a, o);
8123
+ }, init(h) {
8124
+ return h !== undefined && this.C(r, undefined, o, h), h;
8125
+ } };
8126
+ }
8127
+ if (s === "setter") {
8128
+ const { name: r } = e;
8129
+ return function(h) {
8130
+ const a = this[r];
8131
+ t.call(this, h), this.requestUpdate(r, a, o);
8132
+ };
8133
+ }
8134
+ throw Error("Unsupported decorator location: " + s);
8135
+ };
8136
+ function _(o) {
8137
+ return (t, e) => typeof e == "object" ? Ut(o, t, e) : ((s, i, n) => {
8138
+ const r = i.hasOwnProperty(n);
8139
+ return i.constructor.createProperty(n, s), r ? Object.getOwnPropertyDescriptor(i, n) : undefined;
8140
+ })(o, t, e);
8141
+ }
8142
+ var Mt = Object.defineProperty;
8143
+ var Ht = Object.getOwnPropertyDescriptor;
8144
+ var b = (o, t, e, s) => {
8145
+ for (var i = s > 1 ? undefined : s ? Ht(t, e) : t, n = o.length - 1, r;n >= 0; n--)
8146
+ (r = o[n]) && (i = (s ? r(t, e, i) : r(i)) || i);
8147
+ return s && i && Mt(t, e, i), i;
8148
+ };
8149
+ var p = class extends C {
8150
+ constructor() {
8151
+ super(...arguments), this.variant = "primary", this.size = "default", this.type = "circle", this.state = "default", this.iconName = "home", this.disabled = false, this.buttonAriaLabel = "Icon button";
8152
+ }
8153
+ createRenderRoot() {
8154
+ return this;
8155
+ }
8156
+ connectedCallback() {
8157
+ if (super.connectedCallback(), !document.querySelector('link[href*="Roboto"]')) {
8158
+ const o = document.createElement("link");
8159
+ o.rel = "stylesheet", o.href = "https://ui.renaissance.com/fonts/Roboto/style.css", document.head.appendChild(o);
8160
+ }
8161
+ }
8162
+ set shape(o) {
8163
+ this.type = o;
8164
+ }
8165
+ get shape() {
8166
+ return this.type;
8167
+ }
8168
+ get buttonClasses() {
8169
+ return [
8170
+ "nds-icon-button",
8171
+ `nds-icon-button--${this.variant}`,
8172
+ `nds-icon-button--${this.size}`,
8173
+ `nds-icon-button--${this.type}`,
8174
+ this.state !== "default" ? `nds-icon-button--${this.state}` : "",
8175
+ this.disabled ? "nds-icon-button--disabled" : ""
8176
+ ].filter(Boolean).join(" ");
8177
+ }
8178
+ handleClick(o) {
8179
+ if (this.disabled) {
8180
+ o.preventDefault(), o.stopPropagation();
8181
+ return;
8182
+ }
8183
+ this.dispatchEvent(new CustomEvent("icon-button-click", {
8184
+ bubbles: true,
8185
+ composed: true,
8186
+ detail: { originalEvent: o }
8187
+ }));
8188
+ }
8189
+ render() {
8190
+ return yt`
8191
+ <style>
8192
+ nds-icon-button {
8193
+ display: inline-block;
8194
+ }
8195
+
8196
+ .nds-icon-button {
8197
+ display: inline-flex;
8198
+ align-items: center;
8199
+ justify-content: center;
8200
+ cursor: pointer;
8201
+ font-family: var(--font-family-roboto, "Roboto", sans-serif);
8202
+ font-weight: var(--font-weight-regular, 400);
8203
+ line-height: 1;
8204
+ text-decoration: none;
8205
+ background: none;
8206
+ position: relative;
8207
+ box-sizing: border-box;
8208
+ margin: 0;
8209
+ padding: 0;
8210
+ border: none;
8211
+ transition: background-color 0.2s ease-in-out,
8212
+ color 0.2s ease-in-out,
8213
+ box-shadow 0.2s ease-in-out;
8214
+ }
8215
+
8216
+ /* ── Sizes ── */
8217
+ .nds-icon-button--small {
8218
+ width: var(--height-32, 32px);
8219
+ height: var(--height-32, 32px);
8220
+ }
8221
+
8222
+ .nds-icon-button--medium {
8223
+ width: var(--height-36, 36px);
8224
+ height: var(--height-36, 36px);
8225
+ }
8226
+
8227
+ .nds-icon-button--default {
8228
+ width: var(--height-40, 40px);
8229
+ height: var(--height-40, 40px);
8230
+ }
8231
+
8232
+ .nds-icon-button--large {
8233
+ width: var(--height-48, 48px);
8234
+ height: var(--height-48, 48px);
8235
+ }
8236
+
8237
+ /* ── Shapes ── */
8238
+ .nds-icon-button--circle {
8239
+ border-radius: var(--radius-circle, 50%);
8240
+ }
8241
+
8242
+ .nds-icon-button--rounded {
8243
+ border-radius: var(--radius-8, 8px);
8244
+ }
8245
+
8246
+ /* ── Primary ── */
8247
+ .nds-icon-button--primary {
8248
+ background-color: var(--color-interactive-blue, #146eb3);
8249
+ color: var(--color-primary-white, #ffffff);
8250
+ }
8251
+
8252
+ .nds-icon-button--primary:hover:not(:disabled):not(.nds-icon-button--disabled) {
8253
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8254
+ }
8255
+
8256
+ .nds-icon-button--primary:active:not(:disabled):not(.nds-icon-button--disabled) {
8257
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8258
+ }
8259
+
8260
+ /* ── Secondary ── */
8261
+ .nds-icon-button--secondary {
8262
+ background-color: var(--color-primary-white, #ffffff);
8263
+ color: var(--color-interactive-blue, #146eb3);
8264
+ box-shadow: inset 0 0 0 var(--stroke-1, 1px) var(--color-interactive-blue, #146eb3);
8265
+ }
8266
+
8267
+ .nds-icon-button--secondary:hover:not(:disabled):not(.nds-icon-button--disabled) {
8268
+ background-color: var(--color-interactive-blue, #146eb3);
8269
+ color: var(--color-primary-white, #ffffff);
8270
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8271
+ }
8272
+
8273
+ .nds-icon-button--secondary:active:not(:disabled):not(.nds-icon-button--disabled) {
8274
+ background-color: var(--color-interactive-blue, #146eb3);
8275
+ color: var(--color-primary-white, #ffffff);
8276
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8277
+ }
8278
+
8279
+ /* ── Tertiary ── */
8280
+ .nds-icon-button--tertiary {
8281
+ background-color: var(--color-new-gray, #f3f5f7);
8282
+ color: var(--color-interactive-blue, #146eb3);
8283
+ }
8284
+
8285
+ .nds-icon-button--tertiary:hover:not(:disabled):not(.nds-icon-button--disabled) {
8286
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-interactive-blue, #146eb3);
8287
+ }
8288
+
8289
+ .nds-icon-button--tertiary:active:not(:disabled):not(.nds-icon-button--disabled) {
8290
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8291
+ }
8292
+
8293
+ /* ── Ghost ── */
8294
+ .nds-icon-button--ghost {
8295
+ background-color: transparent;
8296
+ color: var(--color-interactive-blue, #146eb3);
8297
+ }
8298
+
8299
+ .nds-icon-button--ghost:hover:not(:disabled):not(.nds-icon-button--disabled) {
8300
+ background-color: var(--color-new-gray, #f3f5f7);
8301
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-interactive-blue, #146eb3);
8302
+ }
8303
+
8304
+ .nds-icon-button--ghost:active:not(:disabled):not(.nds-icon-button--disabled) {
8305
+ background-color: var(--color-new-gray, #f3f5f7);
8306
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8307
+ }
8308
+
8309
+ /* ── Dark (for dark backgrounds) ── */
8310
+ .nds-icon-button--dark {
8311
+ background-color: transparent;
8312
+ color: var(--color-primary-white, #ffffff);
8313
+ box-shadow: inset 0 0 0 var(--stroke-1, 1px) var(--color-primary-white, #ffffff);
8314
+ }
8315
+
8316
+ .nds-icon-button--dark:hover:not(:disabled):not(.nds-icon-button--disabled) {
8317
+ background-color: var(--color-interactive-blue, #146eb3);
8318
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-white, #ffffff);
8319
+ }
8320
+
8321
+ .nds-icon-button--dark:active:not(:disabled):not(.nds-icon-button--disabled) {
8322
+ background-color: var(--color-interactive-blue, #146eb3);
8323
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-white, #ffffff);
8324
+ }
8325
+
8326
+ /* ── Disabled ── */
8327
+ .nds-icon-button--disabled,
8328
+ .nds-icon-button:disabled {
8329
+ opacity: 0.5;
8330
+ cursor: not-allowed;
8331
+ }
8332
+
8333
+ /* ── Icon sizing ── */
8334
+ .nds-icon-button__icon {
8335
+ line-height: 1;
8336
+ display: inline-flex;
8337
+ align-items: center;
8338
+ justify-content: center;
8339
+ color: inherit;
8340
+ }
8341
+
8342
+ .nds-icon-button--small .nds-icon-button__icon {
8343
+ font-size: var(--nds-icon-small, 12px);
8344
+ }
8345
+
8346
+ .nds-icon-button--medium .nds-icon-button__icon {
8347
+ font-size: var(--nds-icon-medium, 14px);
8348
+ }
8349
+
8350
+ .nds-icon-button--default .nds-icon-button__icon {
8351
+ font-size: var(--nds-icon-default, 16px);
8352
+ }
8353
+
8354
+ .nds-icon-button--large .nds-icon-button__icon {
8355
+ font-size: var(--nds-icon-large, 20px);
8356
+ }
8357
+
8358
+ /* ── Focus ── */
8359
+ .nds-icon-button:focus-visible {
8360
+ outline: 2px solid var(--color-focus-blue, #2b87ff);
8361
+ outline-offset: 2px;
8362
+ }
8363
+
8364
+ /* ── Reduced motion ── */
8365
+ @media (prefers-reduced-motion: reduce) {
8366
+ .nds-icon-button {
8367
+ transition: none;
8368
+ }
8369
+ }
8370
+ </style>
8371
+ <button
8372
+ type="button"
8373
+ class="${this.buttonClasses}"
8374
+ ?disabled="${this.disabled}"
8375
+ aria-disabled="${this.disabled ? "true" : "false"}"
8376
+ aria-label="${this.buttonAriaLabel}"
8377
+ @click="${this.handleClick}"
8378
+ >
8379
+ <i class="fa-light fa-${this.iconName} nds-icon-button__icon" aria-hidden="true"></i>
8380
+ </button>
8381
+ `;
8382
+ }
8383
+ };
8384
+ b([
8385
+ _()
8386
+ ], p.prototype, "variant", 2);
8387
+ b([
8388
+ _()
8389
+ ], p.prototype, "size", 2);
8390
+ b([
8391
+ _()
8392
+ ], p.prototype, "type", 2);
8393
+ b([
8394
+ _()
8395
+ ], p.prototype, "state", 2);
8396
+ b([
8397
+ _({ attribute: "icon-name" })
8398
+ ], p.prototype, "iconName", 2);
8399
+ b([
8400
+ _({ type: Boolean })
8401
+ ], p.prototype, "disabled", 2);
8402
+ b([
8403
+ _({ attribute: "button-aria-label" })
8404
+ ], p.prototype, "buttonAriaLabel", 2);
8405
+ b([
8406
+ _()
8407
+ ], p.prototype, "shape", 1);
8408
+ p = b([
8409
+ Pt("nds-icon-button")
8410
+ ], p);
8411
+
7539
8412
  // dist/components/.ItemToolBar.custom-element.unbundled.js
7540
8413
  var __pieDefineSafely = (tagName, ctor) => {
7541
8414
  if (customElements.get(tagName))
@@ -7551,21 +8424,23 @@ var __pieDefineSafely = (tagName, ctor) => {
7551
8424
  };
7552
8425
  var root_4 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7553
8426
  var root_5 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7554
- var root_9 = from_html(`<span aria-hidden="true"></span>`);
7555
- var root_10 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
7556
- var root_12 = from_html(`<span aria-hidden="true"></span>`);
7557
- var root_13 = from_html(`<i aria-hidden="true"></i>`);
8427
+ var root_9 = from_html(`<span class="item-toolbar__calculator-icon svelte-rnx3ie" aria-hidden="true"><i class="fa-light fa-calculator"></i></span>`);
8428
+ var root_10 = from_html(`<span aria-hidden="true"></span>`);
8429
+ var root_11 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
8430
+ var root_13 = from_html(`<span aria-hidden="true"></span>`);
8431
+ var root_14 = from_html(`<i aria-hidden="true"></i>`);
7558
8432
  var root_7 = from_html(`<a><!></a>`);
7559
- var root_16 = from_html(`<span aria-hidden="true"></span>`);
7560
- var root_17 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
7561
- var root_19 = from_html(`<span aria-hidden="true"></span>`);
7562
- var root_20 = from_html(`<i aria-hidden="true"></i>`);
7563
- var root_14 = from_html(`<button type="button"><!></button>`);
7564
- var root_22 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7565
- var root_23 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7566
- var root_26 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
7567
- var root_27 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
7568
- var root_24 = from_html(`<div></div>`);
8433
+ var root_17 = from_html(`<span class="item-toolbar__calculator-icon svelte-rnx3ie" aria-hidden="true"><i class="fa-light fa-calculator"></i></span>`);
8434
+ var root_18 = from_html(`<span aria-hidden="true"></span>`);
8435
+ var root_19 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
8436
+ var root_21 = from_html(`<span aria-hidden="true"></span>`);
8437
+ var root_22 = from_html(`<i aria-hidden="true"></i>`);
8438
+ var root_15 = from_html(`<button type="button"><!></button>`);
8439
+ var root_24 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
8440
+ var root_25 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
8441
+ var root_28 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
8442
+ var root_29 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
8443
+ var root_26 = from_html(`<div></div>`);
7569
8444
  var root_2 = from_html(`<div><div class="item-toolbar__tools-row svelte-rnx3ie"><!> <!> <!></div> <!></div>`);
7570
8445
  var $$css = {
7571
8446
  hash: "svelte-rnx3ie",
@@ -7573,12 +8448,77 @@ var $$css = {
7573
8448
  .item-toolbar--bottom.svelte-rnx3ie {align-items:flex-end;}.item-toolbar--left.svelte-rnx3ie,
7574
8449
  .item-toolbar--right.svelte-rnx3ie {align-items:stretch;}.item-toolbar--left.svelte-rnx3ie .item-toolbar__tools-row:where(.svelte-rnx3ie),
7575
8450
  .item-toolbar--right.svelte-rnx3ie .item-toolbar__tools-row:where(.svelte-rnx3ie) {flex-direction:column;align-items:center;justify-content:flex-start;flex-wrap:nowrap;}.item-toolbar--left.svelte-rnx3ie .item-toolbar__controls-row:where(.svelte-rnx3ie),
7576
- .item-toolbar--right.svelte-rnx3ie .item-toolbar__controls-row:where(.svelte-rnx3ie) {justify-content:flex-start;width:auto;min-height:0;height:auto;}.item-toolbar__button.svelte-rnx3ie {display:flex;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;}.item-toolbar__element-host.svelte-rnx3ie {display:contents;}.item-toolbar--sm.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.75rem;height:2.75rem;}.item-toolbar--sm.svelte-rnx3ie {--pie-toolbar-tools-row-height: 2.75rem;--pie-tts-controls-row-height: 3.625rem;}.item-toolbar--lg.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.5rem;height:2.5rem;}.item-toolbar--lg.svelte-rnx3ie {--pie-toolbar-tools-row-height: 2.5rem;--pie-tts-controls-row-height: 3.375rem;}.item-toolbar__button.svelte-rnx3ie: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-rnx3ie:active:not(:disabled) {transform:translateY(0);box-shadow:none;}.item-toolbar__button--active.svelte-rnx3ie {background-color:var(--pie-primary, #1976d2);color:var(--pie-white, #fff);border-color:var(--pie-primary, #1976d2);}.item-toolbar__button--active.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-primary-dark, #1565c0);}.item-toolbar__button.svelte-rnx3ie:focus-visible {outline:2px solid var(--pie-button-focus-outline, var(--pie-primary, #1976d2));outline-offset:2px;}.item-toolbar__button.svelte-rnx3ie:disabled {opacity:0.5;cursor:not-allowed;}.item-toolbar__button.svelte-rnx3ie svg {width:100%;height:100%;}.item-toolbar__icon-image.svelte-rnx3ie {width:100%;height:100%;object-fit:contain;}`
8451
+ .item-toolbar--right.svelte-rnx3ie .item-toolbar__controls-row:where(.svelte-rnx3ie) {justify-content:flex-start;width:auto;min-height:0;height:auto;}.item-toolbar__button.svelte-rnx3ie {display:flex;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;}.item-toolbar__element-host.svelte-rnx3ie {display:contents;}.item-toolbar--sm.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.75rem;height:2.75rem;}.item-toolbar--sm.svelte-rnx3ie {--pie-toolbar-tools-row-height: 2.75rem;--pie-tts-controls-row-height: 3.625rem;}.item-toolbar--lg.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.5rem;height:2.5rem;}.item-toolbar--lg.svelte-rnx3ie {--pie-toolbar-tools-row-height: 2.5rem;--pie-tts-controls-row-height: 3.375rem;}.item-toolbar__button.svelte-rnx3ie: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-rnx3ie:active:not(:disabled) {transform:translateY(0);box-shadow:none;}.item-toolbar__button--active.svelte-rnx3ie {background-color:var(--pie-primary, #1976d2);color:var(--pie-white, #fff);border-color:var(--pie-primary, #1976d2);}.item-toolbar__button--active.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-primary-dark, #1565c0);}.item-toolbar__button.svelte-rnx3ie:focus-visible {outline:2px solid var(--pie-button-focus-outline, var(--pie-primary, #1976d2));outline-offset:2px;}.item-toolbar__button.svelte-rnx3ie:disabled {opacity:0.5;cursor:not-allowed;}.item-toolbar__button.svelte-rnx3ie svg {width:100%;height:100%;}.item-toolbar__icon-image.svelte-rnx3ie {width:100%;height:100%;object-fit:contain;}
8452
+
8453
+ /* Decorative only — the outer link/button owns focus and aria semantics. */.item-toolbar__calculator-icon.svelte-rnx3ie {pointer-events:none;display:inline-flex;align-items:center;justify-content:center;width:100%;height:100%;}`
7577
8454
  };
7578
8455
  function ItemToolBar($$anchor, $$props) {
7579
8456
  push($$props, true);
7580
8457
  append_styles($$anchor, $$css);
7581
8458
  const isBrowser = typeof window !== "undefined";
8459
+ const FA_PRO_HREFS = ["/_fa-pro/fontawesome.min.css", "/_fa-pro/light.min.css"];
8460
+ const FA_FREE_HREF = "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css";
8461
+ const ROBOTO_HREF = "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";
8462
+ const FA_LIGHT_SHIM_ID = "pie-nds-fa-light-shim";
8463
+ let ndsAssetsInstalled = false;
8464
+ const ensureNdsAssets = () => {
8465
+ if (!isBrowser || ndsAssetsInstalled)
8466
+ return;
8467
+ ndsAssetsInstalled = true;
8468
+ if (!document.querySelector('link[href*="Roboto"]')) {
8469
+ const link2 = document.createElement("link");
8470
+ link2.rel = "stylesheet";
8471
+ link2.href = ROBOTO_HREF;
8472
+ document.head.appendChild(link2);
8473
+ }
8474
+ if (!document.querySelector(`link[href="${FA_FREE_HREF}"]`)) {
8475
+ const link2 = document.createElement("link");
8476
+ link2.rel = "stylesheet";
8477
+ link2.href = FA_FREE_HREF;
8478
+ document.head.appendChild(link2);
8479
+ }
8480
+ for (const href of FA_PRO_HREFS) {
8481
+ if (document.querySelector(`link[href="${href}"]`))
8482
+ continue;
8483
+ const link2 = document.createElement("link");
8484
+ link2.rel = "stylesheet";
8485
+ link2.href = href;
8486
+ document.head.appendChild(link2);
8487
+ }
8488
+ if (!document.getElementById(FA_LIGHT_SHIM_ID)) {
8489
+ const style = document.createElement("style");
8490
+ style.id = FA_LIGHT_SHIM_ID;
8491
+ style.textContent = '.fa-light{font-family:"Font Awesome 6 Free";font-weight:900;}';
8492
+ document.head.appendChild(style);
8493
+ }
8494
+ };
8495
+ const FA_TOOLBAR_SHADOW_INSTALLED = "__pieFaToolbarShadowInstalled";
8496
+ const installFaInToolbarShadow = (root) => {
8497
+ const shadow = root.getRootNode();
8498
+ if (!(shadow instanceof ShadowRoot))
8499
+ return;
8500
+ const marker = shadow;
8501
+ if (marker[FA_TOOLBAR_SHADOW_INSTALLED])
8502
+ return;
8503
+ marker[FA_TOOLBAR_SHADOW_INSTALLED] = true;
8504
+ const appendLink = (href) => {
8505
+ const link2 = document.createElement("link");
8506
+ link2.rel = "stylesheet";
8507
+ link2.href = href;
8508
+ shadow.appendChild(link2);
8509
+ };
8510
+ appendLink(FA_FREE_HREF);
8511
+ for (const href of FA_PRO_HREFS)
8512
+ appendLink(href);
8513
+ const shim = document.createElement("style");
8514
+ shim.textContent = '.fa-light{font-family:"Font Awesome 6 Free";font-weight:900;}';
8515
+ shadow.appendChild(shim);
8516
+ };
8517
+ const ndsIconButtonAction = (node) => {
8518
+ ensureNdsAssets();
8519
+ installFaInToolbarShadow(node);
8520
+ return {};
8521
+ };
7582
8522
  const fallbackToolRegistry = createPackagedToolRegistry({ toolModuleLoaders: DEFAULT_TOOL_MODULE_LOADERS });
7583
8523
  let activeToolState = state(proxy({}));
7584
8524
  let level = prop($$props, "level", 7, "item"), scopeId = prop($$props, "scopeId", 7, ""), itemId = prop($$props, "itemId", 7, ""), sectionId = prop($$props, "sectionId", 7, ""), catalogId = prop($$props, "catalogId", 7, ""), tools = prop($$props, "tools", 7, "calculator,textToSpeech,answerEliminator"), contentKind = prop($$props, "contentKind", 7, "assessment-item"), position = prop($$props, "position", 7, "bottom"), scopeElement = prop($$props, "scopeElement", 7, null), toolRegistry = prop($$props, "toolRegistry", 7, null), item = prop($$props, "item", 7, null), hostButtons = prop($$props, "hostButtons", 23, () => []), className = prop($$props, "class", 7, ""), size = prop($$props, "size", 7, "md"), language = prop($$props, "language", 7, "en-US");
@@ -8005,6 +8945,13 @@ function ItemToolBar($$anchor, $$props) {
8005
8945
  const controlsRowShouldExpandForActiveTool = user_derived(() => get2(controlsRowHints).some((entry) => entry.hint?.showWhenToolActive === true && (get2(renderedToolActiveById)[entry.toolId] ?? false)));
8006
8946
  const controlsRowAlignStart = user_derived(() => position() === "left" || position() === "right");
8007
8947
  const shouldRenderControlsRow = user_derived(() => get2(mountedElementsControlsRow).length > 0 || get2(controlsRowShouldReserveSpace) || get2(controlsRowShouldExpandForActiveTool));
8948
+ user_effect(() => {
8949
+ if (!isBrowser)
8950
+ return;
8951
+ if (get2(toolbarItems).some((item2) => item2.icon === "calculator")) {
8952
+ ensureNdsAssets();
8953
+ }
8954
+ });
8008
8955
  function isToolbarItemActive(item2) {
8009
8956
  if (item2.id in get2(activeToolState)) {
8010
8957
  return get2(activeToolState)[item2.id] === true;
@@ -8151,8 +9098,8 @@ function ItemToolBar($$anchor, $$props) {
8151
9098
  let resizeStartHeight = 0;
8152
9099
  let resizeStartX = 0;
8153
9100
  let resizeStartY = 0;
8154
- let x = 0;
8155
- let y = 0;
9101
+ let x2 = 0;
9102
+ let y2 = 0;
8156
9103
  let width = currentArgs.mounted.entry.shell?.initialWidth ?? 720;
8157
9104
  let height = currentArgs.mounted.entry.shell?.initialHeight ?? 560;
8158
9105
  let focusTrapCleanup = null;
@@ -8210,14 +9157,14 @@ function ItemToolBar($$anchor, $$props) {
8210
9157
  const { minWidth, minHeight, maxWidth, maxHeight } = getShellBounds();
8211
9158
  width = clamp(width, minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth)));
8212
9159
  height = clamp(height, minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight)));
8213
- x = clamp(x, 0, Math.max(0, window.innerWidth - width));
8214
- y = clamp(y, 0, Math.max(0, window.innerHeight - height));
9160
+ x2 = clamp(x2, 0, Math.max(0, window.innerWidth - width));
9161
+ y2 = clamp(y2, 0, Math.max(0, window.innerHeight - height));
8215
9162
  applyShellStyle();
8216
9163
  notifyHostedResize();
8217
9164
  };
8218
9165
  const moveBy = (dx, dy) => {
8219
- x += dx;
8220
- y += dy;
9166
+ x2 += dx;
9167
+ y2 += dy;
8221
9168
  applyPositionAndSize();
8222
9169
  };
8223
9170
  const resizeBy = (dw, dh) => {
@@ -8225,6 +9172,21 @@ function ItemToolBar($$anchor, $$props) {
8225
9172
  height += dh;
8226
9173
  applyPositionAndSize();
8227
9174
  };
9175
+ const createShellIconButton = (label, iconName, onActivate) => {
9176
+ const button = document.createElement("nds-icon-button");
9177
+ button.setAttribute("variant", "tertiary");
9178
+ button.setAttribute("size", "small");
9179
+ button.setAttribute("type", "circle");
9180
+ button.setAttribute("icon-name", iconName);
9181
+ button.setAttribute("button-aria-label", label);
9182
+ button.title = label;
9183
+ button.addEventListener("click", (event2) => {
9184
+ event2.stopPropagation();
9185
+ onActivate();
9186
+ bringToFront();
9187
+ });
9188
+ return button;
9189
+ };
8228
9190
  const createShellControlButton = (label, glyph, onActivate) => {
8229
9191
  const button = document.createElement("button");
8230
9192
  button.type = "button";
@@ -8264,8 +9226,8 @@ function ItemToolBar($$anchor, $$props) {
8264
9226
  const applyShellStyle = () => {
8265
9227
  if (!shellEl)
8266
9228
  return;
8267
- shellEl.style.left = `${x}px`;
8268
- shellEl.style.top = `${y}px`;
9229
+ shellEl.style.left = `${x2}px`;
9230
+ shellEl.style.top = `${y2}px`;
8269
9231
  shellEl.style.width = `${width}px`;
8270
9232
  shellEl.style.height = `${height}px`;
8271
9233
  shellEl.style.display = currentArgs.active ? "flex" : "none";
@@ -8303,8 +9265,8 @@ function ItemToolBar($$anchor, $$props) {
8303
9265
  const centerShell = () => {
8304
9266
  const viewportW = window.innerWidth;
8305
9267
  const viewportH = window.innerHeight;
8306
- x = Math.max(0, Math.round((viewportW - width) / 2));
8307
- y = Math.max(0, Math.round((viewportH - height) / 2));
9268
+ x2 = Math.max(0, Math.round((viewportW - width) / 2));
9269
+ y2 = Math.max(0, Math.round((viewportH - height) / 2));
8308
9270
  applyPositionAndSize();
8309
9271
  };
8310
9272
  const restoreOpenerFocus = () => {
@@ -8370,8 +9332,8 @@ function ItemToolBar($$anchor, $$props) {
8370
9332
  if (!shellEl)
8371
9333
  return;
8372
9334
  dragPointerId = event2.pointerId;
8373
- dragOffsetX = event2.clientX - x;
8374
- dragOffsetY = event2.clientY - y;
9335
+ dragOffsetX = event2.clientX - x2;
9336
+ dragOffsetY = event2.clientY - y2;
8375
9337
  shellEl.setPointerCapture(event2.pointerId);
8376
9338
  bringToFront();
8377
9339
  };
@@ -8393,8 +9355,8 @@ function ItemToolBar($$anchor, $$props) {
8393
9355
  if (dragPointerId === event2.pointerId) {
8394
9356
  const maxX = Math.max(0, window.innerWidth - width);
8395
9357
  const maxY = Math.max(0, window.innerHeight - height);
8396
- x = clamp(event2.clientX - dragOffsetX, 0, maxX);
8397
- y = clamp(event2.clientY - dragOffsetY, 0, maxY);
9358
+ x2 = clamp(event2.clientX - dragOffsetX, 0, maxX);
9359
+ y2 = clamp(event2.clientY - dragOffsetY, 0, maxY);
8398
9360
  applyShellStyle();
8399
9361
  return;
8400
9362
  }
@@ -8404,8 +9366,8 @@ function ItemToolBar($$anchor, $$props) {
8404
9366
  const minHeight = shellConfig?.minHeight ?? 240;
8405
9367
  const maxWidth = shellConfig?.maxWidth ?? window.innerWidth;
8406
9368
  const maxHeight = shellConfig?.maxHeight ?? window.innerHeight;
8407
- width = clamp(resizeStartWidth + (event2.clientX - resizeStartX), minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth - x)));
8408
- height = clamp(resizeStartHeight + (event2.clientY - resizeStartY), minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight - y)));
9369
+ width = clamp(resizeStartWidth + (event2.clientX - resizeStartX), minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth - x2)));
9370
+ height = clamp(resizeStartHeight + (event2.clientY - resizeStartY), minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight - y2)));
8409
9371
  applyShellStyle();
8410
9372
  notifyHostedResize();
8411
9373
  }
@@ -8426,6 +9388,9 @@ function ItemToolBar($$anchor, $$props) {
8426
9388
  applyPositionAndSize();
8427
9389
  };
8428
9390
  if (isBrowser && currentArgs.mounted.entry.shell) {
9391
+ const isCalculatorShell = currentArgs.mounted.toolId === "calculator";
9392
+ if (isCalculatorShell)
9393
+ ensureNdsAssets();
8429
9394
  shellEl = document.createElement("div");
8430
9395
  shellEl.className = "pie-tool-shell";
8431
9396
  shellEl.setAttribute("data-pie-tool-shell", currentArgs.mounted.toolId);
@@ -8443,9 +9408,18 @@ function ItemToolBar($$anchor, $$props) {
8443
9408
  headerEl.style.display = "flex";
8444
9409
  headerEl.style.alignItems = "center";
8445
9410
  headerEl.style.justifyContent = "space-between";
8446
- headerEl.style.padding = "10px 12px";
8447
- headerEl.style.background = "var(--pie-primary-dark, #2c3e50)";
8448
- headerEl.style.color = "var(--pie-white, #fff)";
9411
+ headerEl.style.padding = isCalculatorShell ? "12px 12px 12px 28px" : "10px 12px";
9412
+ if (isCalculatorShell) {
9413
+ headerEl.style.minHeight = "48px";
9414
+ }
9415
+ if (isCalculatorShell) {
9416
+ headerEl.style.background = "var(--pie-section-player-card-header-background, #f3f4f6)";
9417
+ headerEl.style.color = "var(--pie-text, #111827)";
9418
+ headerEl.style.borderBottom = "1px solid var(--pie-border-light, #e5e7eb)";
9419
+ } else {
9420
+ headerEl.style.background = "var(--pie-primary-dark, #2c3e50)";
9421
+ headerEl.style.color = "var(--pie-white, #fff)";
9422
+ }
8449
9423
  headerEl.style.cursor = currentArgs.mounted.entry.shell.draggable === false ? "default" : "move";
8450
9424
  headerEl.style.flex = "0 0 auto";
8451
9425
  titleEl = document.createElement("span");
@@ -8456,74 +9430,109 @@ function ItemToolBar($$anchor, $$props) {
8456
9430
  controlsEl.className = "pie-tool-shell__controls";
8457
9431
  controlsEl.style.display = "inline-flex";
8458
9432
  controlsEl.style.alignItems = "center";
8459
- controlsEl.style.gap = "4px";
9433
+ controlsEl.style.gap = isCalculatorShell ? "6px" : "4px";
8460
9434
  const shellConfig = currentArgs.mounted.entry.shell;
9435
+ const appendControl = (label, glyph, iconName, onActivate) => {
9436
+ if (!controlsEl)
9437
+ return;
9438
+ controlsEl.appendChild(isCalculatorShell ? createShellIconButton(label, iconName, onActivate) : createShellControlButton(label, glyph, onActivate));
9439
+ };
8461
9440
  if (shellConfig?.draggable !== false) {
8462
- controlsEl.appendChild(createShellControlButton("Move tool left", "←", () => moveBy(-24, 0)));
8463
- controlsEl.appendChild(createShellControlButton("Move tool right", "→", () => moveBy(24, 0)));
8464
- controlsEl.appendChild(createShellControlButton("Move tool up", "↑", () => moveBy(0, -24)));
8465
- controlsEl.appendChild(createShellControlButton("Move tool down", "↓", () => moveBy(0, 24)));
9441
+ appendControl("Move tool left", "←", "chevron-left", () => moveBy(-24, 0));
9442
+ appendControl("Move tool right", "→", "chevron-right", () => moveBy(24, 0));
9443
+ appendControl("Move tool up", "↑", "chevron-up", () => moveBy(0, -24));
9444
+ appendControl("Move tool down", "↓", "chevron-down", () => moveBy(0, 24));
8466
9445
  }
8467
9446
  if (shellConfig?.resizable !== false) {
8468
- controlsEl.appendChild(createShellControlButton("Shrink tool window", "−", () => resizeBy(-40, -40)));
8469
- controlsEl.appendChild(createShellControlButton("Grow tool window", "+", () => resizeBy(40, 40)));
8470
- }
8471
- controlsEl.appendChild(createShellControlButton("Center tool window", "◎", centerShell));
8472
- headerEl.appendChild(controlsEl);
8473
- closeButtonEl = document.createElement("button");
8474
- closeButtonEl.type = "button";
8475
- closeButtonEl.className = "pie-tool-shell__close";
8476
- closeButtonEl.setAttribute("aria-label", "Close tool");
8477
- const svgNs = "http://www.w3.org/2000/svg";
8478
- const closeIconEl = document.createElementNS(svgNs, "svg");
8479
- closeIconEl.setAttribute("xmlns", svgNs);
8480
- closeIconEl.setAttribute("viewBox", "0 0 16 16");
8481
- closeIconEl.setAttribute("aria-hidden", "true");
8482
- const closeIconPath = document.createElementNS(svgNs, "path");
8483
- closeIconPath.setAttribute("d", "M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5");
8484
- closeIconPath.setAttribute("stroke", "currentColor");
8485
- closeIconPath.setAttribute("stroke-width", "1.8");
8486
- closeIconPath.setAttribute("stroke-linecap", "round");
8487
- closeIconEl.appendChild(closeIconPath);
8488
- closeButtonEl.appendChild(closeIconEl);
8489
- const closeIconStyle = closeIconEl.style;
8490
- closeIconStyle.width = "16px";
8491
- closeIconStyle.height = "16px";
8492
- closeIconStyle.display = "block";
8493
- closeIconStyle.flexShrink = "0";
8494
- closeIconStyle.pointerEvents = "none";
8495
- const closeButtonBaseBackground = "color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)";
8496
- const closeButtonHoverBackground = "color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";
8497
- closeButtonEl.style.border = "1px solid transparent";
8498
- closeButtonEl.style.background = closeButtonBaseBackground;
8499
- closeButtonEl.style.color = "inherit";
8500
- closeButtonEl.style.cursor = "pointer";
8501
- closeButtonEl.style.display = "inline-flex";
8502
- closeButtonEl.style.alignItems = "center";
8503
- closeButtonEl.style.justifyContent = "center";
8504
- closeButtonEl.style.width = "28px";
8505
- closeButtonEl.style.height = "28px";
8506
- closeButtonEl.style.padding = "0";
8507
- closeButtonEl.style.borderRadius = "8px";
8508
- closeButtonEl.style.lineHeight = "0";
8509
- closeButtonEl.style.transition = "background-color 0.15s ease, border-color 0.15s ease";
8510
- closeButtonEl.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-flex";
8511
- closeButtonEl.onmouseenter = () => {
8512
- closeButtonEl && (closeButtonEl.style.background = closeButtonHoverBackground);
8513
- };
8514
- closeButtonEl.onmouseleave = () => {
8515
- closeButtonEl && (closeButtonEl.style.background = closeButtonBaseBackground);
8516
- };
8517
- closeButtonEl.onfocus = () => {
8518
- closeButtonEl && (closeButtonEl.style.outline = "2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))");
8519
- closeButtonEl && (closeButtonEl.style.outlineOffset = "2px");
8520
- };
8521
- closeButtonEl.onblur = () => {
8522
- closeButtonEl && (closeButtonEl.style.outline = "none");
8523
- closeButtonEl && (closeButtonEl.style.outlineOffset = "0");
8524
- };
8525
- closeButtonEl.onclick = closeShell;
8526
- headerEl.appendChild(closeButtonEl);
9447
+ appendControl("Shrink tool window", "−", "magnifying-glass-minus", () => resizeBy(-40, -40));
9448
+ appendControl("Grow tool window", "+", "magnifying-glass-plus", () => resizeBy(40, 40));
9449
+ }
9450
+ if (!isCalculatorShell) {
9451
+ controlsEl.appendChild(createShellControlButton("Center tool window", "◎", centerShell));
9452
+ }
9453
+ let rightClusterEl = null;
9454
+ if (isCalculatorShell) {
9455
+ rightClusterEl = document.createElement("div");
9456
+ rightClusterEl.className = "pie-tool-shell__header-right";
9457
+ rightClusterEl.style.display = "inline-flex";
9458
+ rightClusterEl.style.alignItems = "center";
9459
+ rightClusterEl.style.gap = "6px";
9460
+ rightClusterEl.appendChild(controlsEl);
9461
+ headerEl.appendChild(rightClusterEl);
9462
+ } else {
9463
+ headerEl.appendChild(controlsEl);
9464
+ }
9465
+ if (isCalculatorShell) {
9466
+ closeButtonEl = document.createElement("nds-icon-button");
9467
+ closeButtonEl.setAttribute("variant", "tertiary");
9468
+ closeButtonEl.setAttribute("size", "small");
9469
+ closeButtonEl.setAttribute("type", "circle");
9470
+ closeButtonEl.setAttribute("icon-name", "xmark");
9471
+ closeButtonEl.setAttribute("button-aria-label", "Close tool");
9472
+ closeButtonEl.title = "Close tool";
9473
+ closeButtonEl.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-block";
9474
+ closeButtonEl.addEventListener("click", closeShell);
9475
+ } else {
9476
+ const closeButton = document.createElement("button");
9477
+ closeButton.type = "button";
9478
+ closeButton.className = "pie-tool-shell__close";
9479
+ closeButton.setAttribute("aria-label", "Close tool");
9480
+ const svgNs = "http://www.w3.org/2000/svg";
9481
+ const closeIconEl = document.createElementNS(svgNs, "svg");
9482
+ closeIconEl.setAttribute("xmlns", svgNs);
9483
+ closeIconEl.setAttribute("viewBox", "0 0 16 16");
9484
+ closeIconEl.setAttribute("aria-hidden", "true");
9485
+ const closeIconPath = document.createElementNS(svgNs, "path");
9486
+ closeIconPath.setAttribute("d", "M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5");
9487
+ closeIconPath.setAttribute("stroke", "currentColor");
9488
+ closeIconPath.setAttribute("stroke-width", "1.8");
9489
+ closeIconPath.setAttribute("stroke-linecap", "round");
9490
+ closeIconEl.appendChild(closeIconPath);
9491
+ closeButton.appendChild(closeIconEl);
9492
+ const closeIconStyle = closeIconEl.style;
9493
+ closeIconStyle.width = "16px";
9494
+ closeIconStyle.height = "16px";
9495
+ closeIconStyle.display = "block";
9496
+ closeIconStyle.flexShrink = "0";
9497
+ closeIconStyle.pointerEvents = "none";
9498
+ const closeButtonBaseBackground = "color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)";
9499
+ const closeButtonHoverBackground = "color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";
9500
+ closeButton.style.border = "1px solid transparent";
9501
+ closeButton.style.background = closeButtonBaseBackground;
9502
+ closeButton.style.color = "inherit";
9503
+ closeButton.style.cursor = "pointer";
9504
+ closeButton.style.display = "inline-flex";
9505
+ closeButton.style.alignItems = "center";
9506
+ closeButton.style.justifyContent = "center";
9507
+ closeButton.style.width = "28px";
9508
+ closeButton.style.height = "28px";
9509
+ closeButton.style.padding = "0";
9510
+ closeButton.style.borderRadius = "8px";
9511
+ closeButton.style.lineHeight = "0";
9512
+ closeButton.style.transition = "background-color 0.15s ease, border-color 0.15s ease";
9513
+ closeButton.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-flex";
9514
+ closeButton.onmouseenter = () => {
9515
+ closeButton.style.background = closeButtonHoverBackground;
9516
+ };
9517
+ closeButton.onmouseleave = () => {
9518
+ closeButton.style.background = closeButtonBaseBackground;
9519
+ };
9520
+ closeButton.onfocus = () => {
9521
+ closeButton.style.outline = "2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))";
9522
+ closeButton.style.outlineOffset = "2px";
9523
+ };
9524
+ closeButton.onblur = () => {
9525
+ closeButton.style.outline = "none";
9526
+ closeButton.style.outlineOffset = "0";
9527
+ };
9528
+ closeButton.onclick = closeShell;
9529
+ closeButtonEl = closeButton;
9530
+ }
9531
+ if (rightClusterEl) {
9532
+ rightClusterEl.appendChild(closeButtonEl);
9533
+ } else {
9534
+ headerEl.appendChild(closeButtonEl);
9535
+ }
8527
9536
  headerEl.tabIndex = 0;
8528
9537
  headerEl.onkeydown = (event2) => {
8529
9538
  if (event2.key === "Home") {
@@ -8602,7 +9611,8 @@ function ItemToolBar($$anchor, $$props) {
8602
9611
  if (!shellEl || !contentEl || !titleEl || !closeButtonEl)
8603
9612
  return;
8604
9613
  titleEl.textContent = currentArgs.mounted.entry.shell?.title || currentArgs.mounted.toolId;
8605
- closeButtonEl.style.display = currentArgs.mounted.entry.shell?.closeable === false ? "none" : "inline-flex";
9614
+ const closeButtonOpenDisplay = currentArgs.mounted.toolId === "calculator" ? "inline-block" : "inline-flex";
9615
+ closeButtonEl.style.display = currentArgs.mounted.entry.shell?.closeable === false ? "none" : closeButtonOpenDisplay;
8606
9616
  mountContent();
8607
9617
  applyShellStyle();
8608
9618
  notifyHostedResize();
@@ -8754,7 +9764,7 @@ function ItemToolBar($$anchor, $$props) {
8754
9764
  var fragment = comment();
8755
9765
  var node_1 = first_child(fragment);
8756
9766
  {
8757
- var consequent_13 = ($$anchor2) => {
9767
+ var consequent_15 = ($$anchor2) => {
8758
9768
  var div = root_2();
8759
9769
  let classes;
8760
9770
  var div_1 = child(div);
@@ -8790,24 +9800,29 @@ function ItemToolBar($$anchor, $$props) {
8790
9800
  var fragment_2 = comment();
8791
9801
  var node_5 = first_child(fragment_2);
8792
9802
  {
8793
- var consequent_5 = ($$anchor4) => {
9803
+ var consequent_6 = ($$anchor4) => {
8794
9804
  var a = root_7();
8795
9805
  let classes_1;
8796
9806
  var node_6 = child(a);
8797
9807
  {
8798
- var consequent_4 = ($$anchor5) => {
9808
+ var consequent_5 = ($$anchor5) => {
8799
9809
  var fragment_3 = comment();
8800
9810
  var node_7 = first_child(fragment_3);
8801
9811
  {
8802
9812
  var consequent_1 = ($$anchor6) => {
8803
9813
  var span_2 = root_9();
8804
- html(span_2, () => sanitizeSvgIcon(get2(item2).icon), true);
8805
- reset(span_2);
9814
+ action(span_2, ($$node) => ndsIconButtonAction?.($$node));
8806
9815
  append($$anchor6, span_2);
8807
9816
  };
8808
- var d = user_derived(() => isInlineSvgIcon(get2(item2).icon));
8809
9817
  var consequent_2 = ($$anchor6) => {
8810
- var img = root_10();
9818
+ var span_3 = root_10();
9819
+ html(span_3, () => sanitizeSvgIcon(get2(item2).icon), true);
9820
+ reset(span_3);
9821
+ append($$anchor6, span_3);
9822
+ };
9823
+ var d2 = user_derived(() => isInlineSvgIcon(get2(item2).icon));
9824
+ var consequent_3 = ($$anchor6) => {
9825
+ var img = root_11();
8811
9826
  template_effect(() => set_attribute2(img, "src", get2(item2).icon));
8812
9827
  append($$anchor6, img);
8813
9828
  };
@@ -8817,20 +9832,20 @@ function ItemToolBar($$anchor, $$props) {
8817
9832
  var fragment_4 = comment();
8818
9833
  var node_8 = first_child(fragment_4);
8819
9834
  {
8820
- var consequent_3 = ($$anchor7) => {
8821
- var span_3 = root_12();
8822
- html(span_3, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
8823
- reset(span_3);
8824
- append($$anchor7, span_3);
9835
+ var consequent_4 = ($$anchor7) => {
9836
+ var span_4 = root_13();
9837
+ html(span_4, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
9838
+ reset(span_4);
9839
+ append($$anchor7, span_4);
8825
9840
  };
8826
9841
  var alternate_1 = ($$anchor7) => {
8827
- var i = root_13();
9842
+ var i = root_14();
8828
9843
  template_effect(() => set_class(i, 1, `icon icon-${get2(item2).icon}`, "svelte-rnx3ie"));
8829
9844
  append($$anchor7, i);
8830
9845
  };
8831
9846
  if_block(node_8, ($$render) => {
8832
9847
  if (get2(fallbackIcon))
8833
- $$render(consequent_3);
9848
+ $$render(consequent_4);
8834
9849
  else
8835
9850
  $$render(alternate_1, -1);
8836
9851
  });
@@ -8838,10 +9853,12 @@ function ItemToolBar($$anchor, $$props) {
8838
9853
  append($$anchor6, fragment_4);
8839
9854
  };
8840
9855
  if_block(node_7, ($$render) => {
8841
- if (get2(d))
9856
+ if (get2(item2).icon === "calculator")
8842
9857
  $$render(consequent_1);
8843
- else if (get2(d_1))
9858
+ else if (get2(d2))
8844
9859
  $$render(consequent_2, 1);
9860
+ else if (get2(d_1))
9861
+ $$render(consequent_3, 2);
8845
9862
  else
8846
9863
  $$render(alternate_2, -1);
8847
9864
  });
@@ -8850,7 +9867,7 @@ function ItemToolBar($$anchor, $$props) {
8850
9867
  };
8851
9868
  if_block(node_6, ($$render) => {
8852
9869
  if (get2(item2).icon)
8853
- $$render(consequent_4);
9870
+ $$render(consequent_5);
8854
9871
  });
8855
9872
  }
8856
9873
  reset(a);
@@ -8876,23 +9893,28 @@ function ItemToolBar($$anchor, $$props) {
8876
9893
  };
8877
9894
  var d_2 = user_derived(() => isToolbarLinkItem(get2(item2)));
8878
9895
  var alternate_5 = ($$anchor4) => {
8879
- var button_1 = root_14();
9896
+ var button_1 = root_15();
8880
9897
  let classes_2;
8881
9898
  var node_9 = child(button_1);
8882
9899
  {
8883
- var consequent_9 = ($$anchor5) => {
9900
+ var consequent_11 = ($$anchor5) => {
8884
9901
  var fragment_5 = comment();
8885
9902
  var node_10 = first_child(fragment_5);
8886
9903
  {
8887
- var consequent_6 = ($$anchor6) => {
8888
- var span_4 = root_16();
8889
- html(span_4, () => sanitizeSvgIcon(get2(item2).icon), true);
8890
- reset(span_4);
8891
- append($$anchor6, span_4);
9904
+ var consequent_7 = ($$anchor6) => {
9905
+ var span_5 = root_17();
9906
+ action(span_5, ($$node) => ndsIconButtonAction?.($$node));
9907
+ append($$anchor6, span_5);
9908
+ };
9909
+ var consequent_8 = ($$anchor6) => {
9910
+ var span_6 = root_18();
9911
+ html(span_6, () => sanitizeSvgIcon(get2(item2).icon), true);
9912
+ reset(span_6);
9913
+ append($$anchor6, span_6);
8892
9914
  };
8893
9915
  var d_3 = user_derived(() => isInlineSvgIcon(get2(item2).icon));
8894
- var consequent_7 = ($$anchor6) => {
8895
- var img_1 = root_17();
9916
+ var consequent_9 = ($$anchor6) => {
9917
+ var img_1 = root_19();
8896
9918
  template_effect(() => set_attribute2(img_1, "src", get2(item2).icon));
8897
9919
  append($$anchor6, img_1);
8898
9920
  };
@@ -8902,20 +9924,20 @@ function ItemToolBar($$anchor, $$props) {
8902
9924
  var fragment_6 = comment();
8903
9925
  var node_11 = first_child(fragment_6);
8904
9926
  {
8905
- var consequent_8 = ($$anchor7) => {
8906
- var span_5 = root_19();
8907
- html(span_5, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
8908
- reset(span_5);
8909
- append($$anchor7, span_5);
9927
+ var consequent_10 = ($$anchor7) => {
9928
+ var span_7 = root_21();
9929
+ html(span_7, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
9930
+ reset(span_7);
9931
+ append($$anchor7, span_7);
8910
9932
  };
8911
9933
  var alternate_3 = ($$anchor7) => {
8912
- var i_1 = root_20();
9934
+ var i_1 = root_22();
8913
9935
  template_effect(() => set_class(i_1, 1, `icon icon-${get2(item2).icon}`, "svelte-rnx3ie"));
8914
9936
  append($$anchor7, i_1);
8915
9937
  };
8916
9938
  if_block(node_11, ($$render) => {
8917
9939
  if (get2(fallbackIcon))
8918
- $$render(consequent_8);
9940
+ $$render(consequent_10);
8919
9941
  else
8920
9942
  $$render(alternate_3, -1);
8921
9943
  });
@@ -8923,10 +9945,12 @@ function ItemToolBar($$anchor, $$props) {
8923
9945
  append($$anchor6, fragment_6);
8924
9946
  };
8925
9947
  if_block(node_10, ($$render) => {
8926
- if (get2(d_3))
8927
- $$render(consequent_6);
9948
+ if (get2(item2).icon === "calculator")
9949
+ $$render(consequent_7);
9950
+ else if (get2(d_3))
9951
+ $$render(consequent_8, 1);
8928
9952
  else if (get2(d_4))
8929
- $$render(consequent_7, 1);
9953
+ $$render(consequent_9, 2);
8930
9954
  else
8931
9955
  $$render(alternate_4, -1);
8932
9956
  });
@@ -8935,7 +9959,7 @@ function ItemToolBar($$anchor, $$props) {
8935
9959
  };
8936
9960
  if_block(node_9, ($$render) => {
8937
9961
  if (get2(item2).icon)
8938
- $$render(consequent_9);
9962
+ $$render(consequent_11);
8939
9963
  });
8940
9964
  }
8941
9965
  reset(button_1);
@@ -8958,7 +9982,7 @@ function ItemToolBar($$anchor, $$props) {
8958
9982
  };
8959
9983
  if_block(node_5, ($$render) => {
8960
9984
  if (get2(d_2))
8961
- $$render(consequent_5);
9985
+ $$render(consequent_6);
8962
9986
  else
8963
9987
  $$render(alternate_5, -1);
8964
9988
  });
@@ -8970,22 +9994,22 @@ function ItemToolBar($$anchor, $$props) {
8970
9994
  var fragment_7 = comment();
8971
9995
  var node_13 = first_child(fragment_7);
8972
9996
  {
8973
- var consequent_10 = ($$anchor4) => {
8974
- var span_6 = root_22();
8975
- action(span_6, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
9997
+ var consequent_12 = ($$anchor4) => {
9998
+ var span_8 = root_24();
9999
+ action(span_8, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
8976
10000
  mounted: get2(mounted),
8977
10001
  active: get2(renderedToolActiveById)[get2(mounted).toolId] ?? false
8978
10002
  }));
8979
- append($$anchor4, span_6);
10003
+ append($$anchor4, span_8);
8980
10004
  };
8981
10005
  var alternate_6 = ($$anchor4) => {
8982
- var span_7 = root_23();
8983
- action(span_7, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
8984
- append($$anchor4, span_7);
10006
+ var span_9 = root_25();
10007
+ action(span_9, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
10008
+ append($$anchor4, span_9);
8985
10009
  };
8986
10010
  if_block(node_13, ($$render) => {
8987
10011
  if (get2(mounted).entry.shell)
8988
- $$render(consequent_10);
10012
+ $$render(consequent_12);
8989
10013
  else
8990
10014
  $$render(alternate_6, -1);
8991
10015
  });
@@ -8995,29 +10019,29 @@ function ItemToolBar($$anchor, $$props) {
8995
10019
  reset(div_1);
8996
10020
  var node_14 = sibling(div_1, 2);
8997
10021
  {
8998
- var consequent_12 = ($$anchor3) => {
8999
- var div_2 = root_24();
10022
+ var consequent_14 = ($$anchor3) => {
10023
+ var div_2 = root_26();
9000
10024
  let classes_3;
9001
10025
  each(div_2, 21, () => get2(mountedElementsControlsRow), (mounted) => mounted.key, ($$anchor4, mounted) => {
9002
10026
  var fragment_8 = comment();
9003
10027
  var node_15 = first_child(fragment_8);
9004
10028
  {
9005
- var consequent_11 = ($$anchor5) => {
9006
- var span_8 = root_26();
9007
- action(span_8, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
10029
+ var consequent_13 = ($$anchor5) => {
10030
+ var span_10 = root_28();
10031
+ action(span_10, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
9008
10032
  mounted: get2(mounted),
9009
10033
  active: get2(renderedToolActiveById)[get2(mounted).toolId] ?? false
9010
10034
  }));
9011
- append($$anchor5, span_8);
10035
+ append($$anchor5, span_10);
9012
10036
  };
9013
10037
  var alternate_7 = ($$anchor5) => {
9014
- var span_9 = root_27();
9015
- action(span_9, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
9016
- append($$anchor5, span_9);
10038
+ var span_11 = root_29();
10039
+ action(span_11, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
10040
+ append($$anchor5, span_11);
9017
10041
  };
9018
10042
  if_block(node_15, ($$render) => {
9019
10043
  if (get2(mounted).entry.shell)
9020
- $$render(consequent_11);
10044
+ $$render(consequent_13);
9021
10045
  else
9022
10046
  $$render(alternate_7, -1);
9023
10047
  });
@@ -9034,7 +10058,7 @@ function ItemToolBar($$anchor, $$props) {
9034
10058
  };
9035
10059
  if_block(node_14, ($$render) => {
9036
10060
  if (get2(shouldRenderControlsRow))
9037
- $$render(consequent_12);
10061
+ $$render(consequent_14);
9038
10062
  });
9039
10063
  }
9040
10064
  reset(div);
@@ -9053,7 +10077,7 @@ function ItemToolBar($$anchor, $$props) {
9053
10077
  };
9054
10078
  if_block(node_1, ($$render) => {
9055
10079
  if (isBrowser)
9056
- $$render(consequent_13);
10080
+ $$render(consequent_15);
9057
10081
  });
9058
10082
  }
9059
10083
  append($$anchor, fragment);