@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
@@ -11604,6 +11604,877 @@ var DEFAULT_TOOL_MODULE_LOADERS = {
11604
11604
  calculator: loadCalculatorModule,
11605
11605
  textToSpeech: () => loadSideEffectModule(() => import("@pie-players/pie-tool-tts-inline"))
11606
11606
  };
11607
+ var H = globalThis;
11608
+ var D = H.ShadowRoot && (H.ShadyCSS === undefined || H.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
11609
+ var tt = Symbol();
11610
+ var W = /* @__PURE__ */ new WeakMap;
11611
+ var nt = class {
11612
+ constructor(t, e, s) {
11613
+ if (this._$cssResult$ = true, s !== tt)
11614
+ throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
11615
+ this.cssText = t, this.t = e;
11616
+ }
11617
+ get styleSheet() {
11618
+ let t = this.o;
11619
+ const e = this.t;
11620
+ if (D && t === undefined) {
11621
+ const s = e !== undefined && e.length === 1;
11622
+ s && (t = W.get(e)), t === undefined && ((this.o = t = new CSSStyleSheet).replaceSync(this.cssText), s && W.set(e, t));
11623
+ }
11624
+ return t;
11625
+ }
11626
+ toString() {
11627
+ return this.cssText;
11628
+ }
11629
+ };
11630
+ var rt = (o) => new nt(typeof o == "string" ? o : o + "", undefined, tt);
11631
+ var at = (o, t) => {
11632
+ if (D)
11633
+ o.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
11634
+ else
11635
+ for (const e of t) {
11636
+ const s = document.createElement("style"), i = H.litNonce;
11637
+ i !== undefined && s.setAttribute("nonce", i), s.textContent = e.cssText, o.appendChild(s);
11638
+ }
11639
+ };
11640
+ var V = D ? (o) => o : (o) => o instanceof CSSStyleSheet ? ((t) => {
11641
+ let e = "";
11642
+ for (const s of t.cssRules)
11643
+ e += s.cssText;
11644
+ return rt(e);
11645
+ })(o) : o;
11646
+ var { is: ht, defineProperty: ct, getOwnPropertyDescriptor: lt, getOwnPropertyNames: dt, getOwnPropertySymbols: ut, getPrototypeOf: pt } = Object;
11647
+ var R = globalThis;
11648
+ var F = R.trustedTypes;
11649
+ var ft = F ? F.emptyScript : "";
11650
+ var bt = R.reactiveElementPolyfillSupport;
11651
+ var S = (o, t) => o;
11652
+ var N = { toAttribute(o, t) {
11653
+ switch (t) {
11654
+ case Boolean:
11655
+ o = o ? ft : null;
11656
+ break;
11657
+ case Object:
11658
+ case Array:
11659
+ o = o == null ? o : JSON.stringify(o);
11660
+ }
11661
+ return o;
11662
+ }, fromAttribute(o, t) {
11663
+ let e = o;
11664
+ switch (t) {
11665
+ case Boolean:
11666
+ e = o !== null;
11667
+ break;
11668
+ case Number:
11669
+ e = o === null ? null : Number(o);
11670
+ break;
11671
+ case Object:
11672
+ case Array:
11673
+ try {
11674
+ e = JSON.parse(o);
11675
+ } catch {
11676
+ e = null;
11677
+ }
11678
+ }
11679
+ return e;
11680
+ } };
11681
+ var L = (o, t) => !ht(o, t);
11682
+ var J = { attribute: true, type: String, converter: N, reflect: false, useDefault: false, hasChanged: L };
11683
+ Symbol.metadata ??= Symbol("metadata"), R.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap;
11684
+ var A = class extends HTMLElement {
11685
+ static addInitializer(t) {
11686
+ this._$Ei(), (this.l ??= []).push(t);
11687
+ }
11688
+ static get observedAttributes() {
11689
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
11690
+ }
11691
+ static createProperty(t, e = J) {
11692
+ 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) {
11693
+ const s = Symbol(), i = this.getPropertyDescriptor(t, s, e);
11694
+ i !== undefined && ct(this.prototype, t, i);
11695
+ }
11696
+ }
11697
+ static getPropertyDescriptor(t, e, s) {
11698
+ const { get: i, set: n } = lt(this.prototype, t) ?? { get() {
11699
+ return this[e];
11700
+ }, set(r) {
11701
+ this[e] = r;
11702
+ } };
11703
+ return { get: i, set(r) {
11704
+ const h = i?.call(this);
11705
+ n?.call(this, r), this.requestUpdate(t, h, s);
11706
+ }, configurable: true, enumerable: true };
11707
+ }
11708
+ static getPropertyOptions(t) {
11709
+ return this.elementProperties.get(t) ?? J;
11710
+ }
11711
+ static _$Ei() {
11712
+ if (this.hasOwnProperty(S("elementProperties")))
11713
+ return;
11714
+ const t = pt(this);
11715
+ t.finalize(), t.l !== undefined && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
11716
+ }
11717
+ static finalize() {
11718
+ if (this.hasOwnProperty(S("finalized")))
11719
+ return;
11720
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(S("properties"))) {
11721
+ const e = this.properties, s = [...dt(e), ...ut(e)];
11722
+ for (const i of s)
11723
+ this.createProperty(i, e[i]);
11724
+ }
11725
+ const t = this[Symbol.metadata];
11726
+ if (t !== null) {
11727
+ const e = litPropertyMetadata.get(t);
11728
+ if (e !== undefined)
11729
+ for (const [s, i] of e)
11730
+ this.elementProperties.set(s, i);
11731
+ }
11732
+ this._$Eh = /* @__PURE__ */ new Map;
11733
+ for (const [e, s] of this.elementProperties) {
11734
+ const i = this._$Eu(e, s);
11735
+ i !== undefined && this._$Eh.set(i, e);
11736
+ }
11737
+ this.elementStyles = this.finalizeStyles(this.styles);
11738
+ }
11739
+ static finalizeStyles(t) {
11740
+ const e = [];
11741
+ if (Array.isArray(t)) {
11742
+ const s = new Set(t.flat(Infinity).reverse());
11743
+ for (const i of s)
11744
+ e.unshift(V(i));
11745
+ } else
11746
+ t !== undefined && e.push(V(t));
11747
+ return e;
11748
+ }
11749
+ static _$Eu(t, e) {
11750
+ const s = e.attribute;
11751
+ return s === false ? undefined : typeof s == "string" ? s : typeof t == "string" ? t.toLowerCase() : undefined;
11752
+ }
11753
+ constructor() {
11754
+ super(), this._$Ep = undefined, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
11755
+ }
11756
+ _$Ev() {
11757
+ this._$ES = new Promise((t) => this.enableUpdating = t), this._$AL = /* @__PURE__ */ new Map, this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t) => t(this));
11758
+ }
11759
+ addController(t) {
11760
+ (this._$EO ??= /* @__PURE__ */ new Set).add(t), this.renderRoot !== undefined && this.isConnected && t.hostConnected?.();
11761
+ }
11762
+ removeController(t) {
11763
+ this._$EO?.delete(t);
11764
+ }
11765
+ _$E_() {
11766
+ const t = /* @__PURE__ */ new Map, e = this.constructor.elementProperties;
11767
+ for (const s of e.keys())
11768
+ this.hasOwnProperty(s) && (t.set(s, this[s]), delete this[s]);
11769
+ t.size > 0 && (this._$Ep = t);
11770
+ }
11771
+ createRenderRoot() {
11772
+ const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
11773
+ return at(t, this.constructor.elementStyles), t;
11774
+ }
11775
+ connectedCallback() {
11776
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t) => t.hostConnected?.());
11777
+ }
11778
+ enableUpdating(t) {}
11779
+ disconnectedCallback() {
11780
+ this._$EO?.forEach((t) => t.hostDisconnected?.());
11781
+ }
11782
+ attributeChangedCallback(t, e, s) {
11783
+ this._$AK(t, s);
11784
+ }
11785
+ _$ET(t, e) {
11786
+ const s = this.constructor.elementProperties.get(t), i = this.constructor._$Eu(t, s);
11787
+ if (i !== undefined && s.reflect === true) {
11788
+ const n = (s.converter?.toAttribute !== undefined ? s.converter : N).toAttribute(e, s.type);
11789
+ this._$Em = t, n == null ? this.removeAttribute(i) : this.setAttribute(i, n), this._$Em = null;
11790
+ }
11791
+ }
11792
+ _$AK(t, e) {
11793
+ const s = this.constructor, i = s._$Eh.get(t);
11794
+ if (i !== undefined && this._$Em !== i) {
11795
+ const n = s.getPropertyOptions(i), r = typeof n.converter == "function" ? { fromAttribute: n.converter } : n.converter?.fromAttribute !== undefined ? n.converter : N;
11796
+ this._$Em = i;
11797
+ const h = r.fromAttribute(e, n.type);
11798
+ this[i] = h ?? this._$Ej?.get(i) ?? h, this._$Em = null;
11799
+ }
11800
+ }
11801
+ requestUpdate(t, e, s) {
11802
+ if (t !== undefined) {
11803
+ const i = this.constructor, n = this[t];
11804
+ 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))))
11805
+ return;
11806
+ this.C(t, e, s);
11807
+ }
11808
+ this.isUpdatePending === false && (this._$ES = this._$EP());
11809
+ }
11810
+ C(t, e, { useDefault: s, reflect: i, wrapped: n }, r) {
11811
+ 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));
11812
+ }
11813
+ async _$EP() {
11814
+ this.isUpdatePending = true;
11815
+ try {
11816
+ await this._$ES;
11817
+ } catch (e) {
11818
+ Promise.reject(e);
11819
+ }
11820
+ const t = this.scheduleUpdate();
11821
+ return t != null && await t, !this.isUpdatePending;
11822
+ }
11823
+ scheduleUpdate() {
11824
+ return this.performUpdate();
11825
+ }
11826
+ performUpdate() {
11827
+ if (!this.isUpdatePending)
11828
+ return;
11829
+ if (!this.hasUpdated) {
11830
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
11831
+ for (const [i, n] of this._$Ep)
11832
+ this[i] = n;
11833
+ this._$Ep = undefined;
11834
+ }
11835
+ const s = this.constructor.elementProperties;
11836
+ if (s.size > 0)
11837
+ for (const [i, n] of s) {
11838
+ const { wrapped: r } = n, h = this[i];
11839
+ r !== true || this._$AL.has(i) || h === undefined || this.C(i, undefined, n, h);
11840
+ }
11841
+ }
11842
+ let t = false;
11843
+ const e = this._$AL;
11844
+ try {
11845
+ t = this.shouldUpdate(e), t ? (this.willUpdate(e), this._$EO?.forEach((s) => s.hostUpdate?.()), this.update(e)) : this._$EM();
11846
+ } catch (s) {
11847
+ throw t = false, this._$EM(), s;
11848
+ }
11849
+ t && this._$AE(e);
11850
+ }
11851
+ willUpdate(t) {}
11852
+ _$AE(t) {
11853
+ this._$EO?.forEach((e) => e.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t)), this.updated(t);
11854
+ }
11855
+ _$EM() {
11856
+ this._$AL = /* @__PURE__ */ new Map, this.isUpdatePending = false;
11857
+ }
11858
+ get updateComplete() {
11859
+ return this.getUpdateComplete();
11860
+ }
11861
+ getUpdateComplete() {
11862
+ return this._$ES;
11863
+ }
11864
+ shouldUpdate(t) {
11865
+ return true;
11866
+ }
11867
+ update(t) {
11868
+ this._$Eq &&= this._$Eq.forEach((e) => this._$ET(e, this[e])), this._$EM();
11869
+ }
11870
+ updated(t) {}
11871
+ firstUpdated(t) {}
11872
+ };
11873
+ 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");
11874
+ var I = globalThis;
11875
+ var T = I.trustedTypes;
11876
+ var K = T ? T.createPolicy("lit-html", { createHTML: (o) => o }) : undefined;
11877
+ var et = "$lit$";
11878
+ var v = `lit$${Math.random().toFixed(9).slice(2)}$`;
11879
+ var st = "?" + v;
11880
+ var $t = `<${st}>`;
11881
+ var g = document;
11882
+ var k = () => g.createComment("");
11883
+ var P = (o) => o === null || typeof o != "object" && typeof o != "function";
11884
+ var B = Array.isArray;
11885
+ var vt = (o) => B(o) || typeof o?.[Symbol.iterator] == "function";
11886
+ var j = `[
11887
+ \f\r]`;
11888
+ var x = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
11889
+ var Z = /-->/g;
11890
+ var G = />/g;
11891
+ var y = RegExp(`>|${j}(?:([^\\s"'>=/]+)(${j}*=${j}*(?:[^
11892
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
11893
+ var Q = /'/g;
11894
+ var X = /"/g;
11895
+ var it = /^(?:script|style|textarea|title)$/i;
11896
+ var _t = (o) => (t, ...e) => ({ _$litType$: o, strings: t, values: e });
11897
+ var yt = _t(1);
11898
+ var w = Symbol.for("lit-noChange");
11899
+ var d = Symbol.for("lit-nothing");
11900
+ var Y = /* @__PURE__ */ new WeakMap;
11901
+ var m = g.createTreeWalker(g, 129);
11902
+ function ot(o, t) {
11903
+ if (!B(o) || !o.hasOwnProperty("raw"))
11904
+ throw Error("invalid template strings array");
11905
+ return K !== undefined ? K.createHTML(t) : t;
11906
+ }
11907
+ var mt = (o, t) => {
11908
+ const e = o.length - 1, s = [];
11909
+ let i, n = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", r = x;
11910
+ for (let h = 0;h < e; h++) {
11911
+ const a = o[h];
11912
+ let l, u, c = -1, f = 0;
11913
+ for (;f < a.length && (r.lastIndex = f, u = r.exec(a), u !== null); )
11914
+ 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);
11915
+ const $ = r === y && o[h + 1].startsWith("/>") ? " " : "";
11916
+ n += r === x ? a + $t : c >= 0 ? (s.push(l), a.slice(0, c) + et + a.slice(c) + v + $) : a + v + (c === -2 ? h : $);
11917
+ }
11918
+ return [ot(o, n + (o[e] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), s];
11919
+ };
11920
+
11921
+ class O {
11922
+ constructor({ strings: t, _$litType$: e }, s) {
11923
+ let i;
11924
+ this.parts = [];
11925
+ let n = 0, r = 0;
11926
+ const h = t.length - 1, a = this.parts, [l, u] = mt(t, e);
11927
+ if (this.el = O.createElement(l, s), m.currentNode = this.el.content, e === 2 || e === 3) {
11928
+ const c = this.el.content.firstChild;
11929
+ c.replaceWith(...c.childNodes);
11930
+ }
11931
+ for (;(i = m.nextNode()) !== null && a.length < h; ) {
11932
+ if (i.nodeType === 1) {
11933
+ if (i.hasAttributes())
11934
+ for (const c of i.getAttributeNames())
11935
+ if (c.endsWith(et)) {
11936
+ const f = u[r++], $ = i.getAttribute(c).split(v), M = /([.?@])?(.*)/.exec(f);
11937
+ a.push({ type: 1, index: n, name: M[2], strings: $, ctor: M[1] === "." ? At : M[1] === "?" ? wt : M[1] === "@" ? Et : z }), i.removeAttribute(c);
11938
+ } else
11939
+ c.startsWith(v) && (a.push({ type: 6, index: n }), i.removeAttribute(c));
11940
+ if (it.test(i.tagName)) {
11941
+ const c = i.textContent.split(v), f = c.length - 1;
11942
+ if (f > 0) {
11943
+ i.textContent = T ? T.emptyScript : "";
11944
+ for (let $ = 0;$ < f; $++)
11945
+ i.append(c[$], k()), m.nextNode(), a.push({ type: 2, index: ++n });
11946
+ i.append(c[f], k());
11947
+ }
11948
+ }
11949
+ } else if (i.nodeType === 8)
11950
+ if (i.data === st)
11951
+ a.push({ type: 2, index: n });
11952
+ else {
11953
+ let c = -1;
11954
+ for (;(c = i.data.indexOf(v, c + 1)) !== -1; )
11955
+ a.push({ type: 7, index: n }), c += v.length - 1;
11956
+ }
11957
+ n++;
11958
+ }
11959
+ }
11960
+ static createElement(t, e) {
11961
+ const s = g.createElement("template");
11962
+ return s.innerHTML = t, s;
11963
+ }
11964
+ }
11965
+ function E(o, t, e = o, s) {
11966
+ if (t === w)
11967
+ return t;
11968
+ let i = s !== undefined ? e._$Co?.[s] : e._$Cl;
11969
+ const n = P(t) ? undefined : t._$litDirective$;
11970
+ 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;
11971
+ }
11972
+
11973
+ class gt {
11974
+ constructor(t, e) {
11975
+ this._$AV = [], this._$AN = undefined, this._$AD = t, this._$AM = e;
11976
+ }
11977
+ get parentNode() {
11978
+ return this._$AM.parentNode;
11979
+ }
11980
+ get _$AU() {
11981
+ return this._$AM._$AU;
11982
+ }
11983
+ u(t) {
11984
+ const { el: { content: e }, parts: s } = this._$AD, i = (t?.creationScope ?? g).importNode(e, true);
11985
+ m.currentNode = i;
11986
+ let n = m.nextNode(), r = 0, h = 0, a = s[0];
11987
+ for (;a !== undefined; ) {
11988
+ if (r === a.index) {
11989
+ let l;
11990
+ 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];
11991
+ }
11992
+ r !== a?.index && (n = m.nextNode(), r++);
11993
+ }
11994
+ return m.currentNode = g, i;
11995
+ }
11996
+ p(t) {
11997
+ let e = 0;
11998
+ for (const s of this._$AV)
11999
+ s !== undefined && (s.strings !== undefined ? (s._$AI(t, s, e), e += s.strings.length - 2) : s._$AI(t[e])), e++;
12000
+ }
12001
+ }
12002
+
12003
+ class U {
12004
+ get _$AU() {
12005
+ return this._$AM?._$AU ?? this._$Cv;
12006
+ }
12007
+ constructor(t, e, s, i) {
12008
+ 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;
12009
+ }
12010
+ get parentNode() {
12011
+ let t = this._$AA.parentNode;
12012
+ const e = this._$AM;
12013
+ return e !== undefined && t?.nodeType === 11 && (t = e.parentNode), t;
12014
+ }
12015
+ get startNode() {
12016
+ return this._$AA;
12017
+ }
12018
+ get endNode() {
12019
+ return this._$AB;
12020
+ }
12021
+ _$AI(t, e = this) {
12022
+ 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);
12023
+ }
12024
+ O(t) {
12025
+ return this._$AA.parentNode.insertBefore(t, this._$AB);
12026
+ }
12027
+ T(t) {
12028
+ this._$AH !== t && (this._$AR(), this._$AH = this.O(t));
12029
+ }
12030
+ _(t) {
12031
+ this._$AH !== d && P(this._$AH) ? this._$AA.nextSibling.data = t : this.T(g.createTextNode(t)), this._$AH = t;
12032
+ }
12033
+ $(t) {
12034
+ 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);
12035
+ if (this._$AH?._$AD === i)
12036
+ this._$AH.p(e);
12037
+ else {
12038
+ const n = new gt(i, this), r = n.u(this.options);
12039
+ n.p(e), this.T(r), this._$AH = n;
12040
+ }
12041
+ }
12042
+ _$AC(t) {
12043
+ let e = Y.get(t.strings);
12044
+ return e === undefined && Y.set(t.strings, e = new O(t)), e;
12045
+ }
12046
+ k(t) {
12047
+ B(this._$AH) || (this._$AH = [], this._$AR());
12048
+ const e = this._$AH;
12049
+ let s, i = 0;
12050
+ for (const n of t)
12051
+ i === e.length ? e.push(s = new U(this.O(k()), this.O(k()), this, this.options)) : s = e[i], s._$AI(n), i++;
12052
+ i < e.length && (this._$AR(s && s._$AB.nextSibling, i), e.length = i);
12053
+ }
12054
+ _$AR(t = this._$AA.nextSibling, e) {
12055
+ for (this._$AP?.(false, true, e);t !== this._$AB; ) {
12056
+ const s = t.nextSibling;
12057
+ t.remove(), t = s;
12058
+ }
12059
+ }
12060
+ setConnected(t) {
12061
+ this._$AM === undefined && (this._$Cv = t, this._$AP?.(t));
12062
+ }
12063
+ }
12064
+
12065
+ class z {
12066
+ get tagName() {
12067
+ return this.element.tagName;
12068
+ }
12069
+ get _$AU() {
12070
+ return this._$AM._$AU;
12071
+ }
12072
+ constructor(t, e, s, i, n) {
12073
+ 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;
12074
+ }
12075
+ _$AI(t, e = this, s, i) {
12076
+ const n = this.strings;
12077
+ let r = false;
12078
+ if (n === undefined)
12079
+ t = E(this, t, e, 0), r = !P(t) || t !== this._$AH && t !== w, r && (this._$AH = t);
12080
+ else {
12081
+ const h = t;
12082
+ let a, l;
12083
+ for (t = n[0], a = 0;a < n.length - 1; a++)
12084
+ 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;
12085
+ }
12086
+ r && !i && this.j(t);
12087
+ }
12088
+ j(t) {
12089
+ t === d ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
12090
+ }
12091
+ }
12092
+
12093
+ class At extends z {
12094
+ constructor() {
12095
+ super(...arguments), this.type = 3;
12096
+ }
12097
+ j(t) {
12098
+ this.element[this.name] = t === d ? undefined : t;
12099
+ }
12100
+ }
12101
+
12102
+ class wt extends z {
12103
+ constructor() {
12104
+ super(...arguments), this.type = 4;
12105
+ }
12106
+ j(t) {
12107
+ this.element.toggleAttribute(this.name, !!t && t !== d);
12108
+ }
12109
+ }
12110
+
12111
+ class Et extends z {
12112
+ constructor(t, e, s, i, n) {
12113
+ super(t, e, s, i, n), this.type = 5;
12114
+ }
12115
+ _$AI(t, e = this) {
12116
+ if ((t = E(this, t, e, 0) ?? d) === w)
12117
+ return;
12118
+ 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);
12119
+ i && this.element.removeEventListener(this.name, this, s), n && this.element.addEventListener(this.name, this, t), this._$AH = t;
12120
+ }
12121
+ handleEvent(t) {
12122
+ typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
12123
+ }
12124
+ }
12125
+
12126
+ class xt {
12127
+ constructor(t, e, s) {
12128
+ this.element = t, this.type = 6, this._$AN = undefined, this._$AM = e, this.options = s;
12129
+ }
12130
+ get _$AU() {
12131
+ return this._$AM._$AU;
12132
+ }
12133
+ _$AI(t) {
12134
+ E(this, t);
12135
+ }
12136
+ }
12137
+ var St = I.litHtmlPolyfillSupport;
12138
+ St?.(O, U), (I.litHtmlVersions ??= []).push("3.3.1");
12139
+ var Ct = (o, t, e) => {
12140
+ const s = e?.renderBefore ?? t;
12141
+ let i = s._$litPart$;
12142
+ if (i === undefined) {
12143
+ const n = e?.renderBefore ?? null;
12144
+ s._$litPart$ = i = new U(t.insertBefore(k(), n), n, undefined, e ?? {});
12145
+ }
12146
+ return i._$AI(o), i;
12147
+ };
12148
+ var q = globalThis;
12149
+
12150
+ class C extends A {
12151
+ constructor() {
12152
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = undefined;
12153
+ }
12154
+ createRenderRoot() {
12155
+ const t = super.createRenderRoot();
12156
+ return this.renderOptions.renderBefore ??= t.firstChild, t;
12157
+ }
12158
+ update(t) {
12159
+ const e = this.render();
12160
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = Ct(e, this.renderRoot, this.renderOptions);
12161
+ }
12162
+ connectedCallback() {
12163
+ super.connectedCallback(), this._$Do?.setConnected(true);
12164
+ }
12165
+ disconnectedCallback() {
12166
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
12167
+ }
12168
+ render() {
12169
+ return w;
12170
+ }
12171
+ }
12172
+ C._$litElement$ = true, C.finalized = true, q.litElementHydrateSupport?.({ LitElement: C });
12173
+ var kt = q.litElementPolyfillSupport;
12174
+ kt?.({ LitElement: C });
12175
+ (q.litElementVersions ??= []).push("4.2.1");
12176
+ var Pt = (o) => (t, e) => {
12177
+ e !== undefined ? e.addInitializer(() => {
12178
+ customElements.get(o) || customElements.define(o, t);
12179
+ }) : customElements.get(o) || customElements.define(o, t);
12180
+ };
12181
+ var Ot = { attribute: true, type: String, converter: N, reflect: false, hasChanged: L };
12182
+ var Ut = (o = Ot, t, e) => {
12183
+ const { kind: s, metadata: i } = e;
12184
+ let n = globalThis.litPropertyMetadata.get(i);
12185
+ 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") {
12186
+ const { name: r } = e;
12187
+ return { set(h) {
12188
+ const a = t.get.call(this);
12189
+ t.set.call(this, h), this.requestUpdate(r, a, o);
12190
+ }, init(h) {
12191
+ return h !== undefined && this.C(r, undefined, o, h), h;
12192
+ } };
12193
+ }
12194
+ if (s === "setter") {
12195
+ const { name: r } = e;
12196
+ return function(h) {
12197
+ const a = this[r];
12198
+ t.call(this, h), this.requestUpdate(r, a, o);
12199
+ };
12200
+ }
12201
+ throw Error("Unsupported decorator location: " + s);
12202
+ };
12203
+ function _(o) {
12204
+ return (t, e) => typeof e == "object" ? Ut(o, t, e) : ((s, i, n) => {
12205
+ const r = i.hasOwnProperty(n);
12206
+ return i.constructor.createProperty(n, s), r ? Object.getOwnPropertyDescriptor(i, n) : undefined;
12207
+ })(o, t, e);
12208
+ }
12209
+ var Mt = Object.defineProperty;
12210
+ var Ht = Object.getOwnPropertyDescriptor;
12211
+ var b = (o, t, e, s) => {
12212
+ for (var i = s > 1 ? undefined : s ? Ht(t, e) : t, n = o.length - 1, r;n >= 0; n--)
12213
+ (r = o[n]) && (i = (s ? r(t, e, i) : r(i)) || i);
12214
+ return s && i && Mt(t, e, i), i;
12215
+ };
12216
+ var p = class extends C {
12217
+ constructor() {
12218
+ super(...arguments), this.variant = "primary", this.size = "default", this.type = "circle", this.state = "default", this.iconName = "home", this.disabled = false, this.buttonAriaLabel = "Icon button";
12219
+ }
12220
+ createRenderRoot() {
12221
+ return this;
12222
+ }
12223
+ connectedCallback() {
12224
+ if (super.connectedCallback(), !document.querySelector('link[href*="Roboto"]')) {
12225
+ const o = document.createElement("link");
12226
+ o.rel = "stylesheet", o.href = "https://ui.renaissance.com/fonts/Roboto/style.css", document.head.appendChild(o);
12227
+ }
12228
+ }
12229
+ set shape(o) {
12230
+ this.type = o;
12231
+ }
12232
+ get shape() {
12233
+ return this.type;
12234
+ }
12235
+ get buttonClasses() {
12236
+ return [
12237
+ "nds-icon-button",
12238
+ `nds-icon-button--${this.variant}`,
12239
+ `nds-icon-button--${this.size}`,
12240
+ `nds-icon-button--${this.type}`,
12241
+ this.state !== "default" ? `nds-icon-button--${this.state}` : "",
12242
+ this.disabled ? "nds-icon-button--disabled" : ""
12243
+ ].filter(Boolean).join(" ");
12244
+ }
12245
+ handleClick(o) {
12246
+ if (this.disabled) {
12247
+ o.preventDefault(), o.stopPropagation();
12248
+ return;
12249
+ }
12250
+ this.dispatchEvent(new CustomEvent("icon-button-click", {
12251
+ bubbles: true,
12252
+ composed: true,
12253
+ detail: { originalEvent: o }
12254
+ }));
12255
+ }
12256
+ render() {
12257
+ return yt`
12258
+ <style>
12259
+ nds-icon-button {
12260
+ display: inline-block;
12261
+ }
12262
+
12263
+ .nds-icon-button {
12264
+ display: inline-flex;
12265
+ align-items: center;
12266
+ justify-content: center;
12267
+ cursor: pointer;
12268
+ font-family: var(--font-family-roboto, "Roboto", sans-serif);
12269
+ font-weight: var(--font-weight-regular, 400);
12270
+ line-height: 1;
12271
+ text-decoration: none;
12272
+ background: none;
12273
+ position: relative;
12274
+ box-sizing: border-box;
12275
+ margin: 0;
12276
+ padding: 0;
12277
+ border: none;
12278
+ transition: background-color 0.2s ease-in-out,
12279
+ color 0.2s ease-in-out,
12280
+ box-shadow 0.2s ease-in-out;
12281
+ }
12282
+
12283
+ /* ── Sizes ── */
12284
+ .nds-icon-button--small {
12285
+ width: var(--height-32, 32px);
12286
+ height: var(--height-32, 32px);
12287
+ }
12288
+
12289
+ .nds-icon-button--medium {
12290
+ width: var(--height-36, 36px);
12291
+ height: var(--height-36, 36px);
12292
+ }
12293
+
12294
+ .nds-icon-button--default {
12295
+ width: var(--height-40, 40px);
12296
+ height: var(--height-40, 40px);
12297
+ }
12298
+
12299
+ .nds-icon-button--large {
12300
+ width: var(--height-48, 48px);
12301
+ height: var(--height-48, 48px);
12302
+ }
12303
+
12304
+ /* ── Shapes ── */
12305
+ .nds-icon-button--circle {
12306
+ border-radius: var(--radius-circle, 50%);
12307
+ }
12308
+
12309
+ .nds-icon-button--rounded {
12310
+ border-radius: var(--radius-8, 8px);
12311
+ }
12312
+
12313
+ /* ── Primary ── */
12314
+ .nds-icon-button--primary {
12315
+ background-color: var(--color-interactive-blue, #146eb3);
12316
+ color: var(--color-primary-white, #ffffff);
12317
+ }
12318
+
12319
+ .nds-icon-button--primary:hover:not(:disabled):not(.nds-icon-button--disabled) {
12320
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
12321
+ }
12322
+
12323
+ .nds-icon-button--primary:active:not(:disabled):not(.nds-icon-button--disabled) {
12324
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
12325
+ }
12326
+
12327
+ /* ── Secondary ── */
12328
+ .nds-icon-button--secondary {
12329
+ background-color: var(--color-primary-white, #ffffff);
12330
+ color: var(--color-interactive-blue, #146eb3);
12331
+ box-shadow: inset 0 0 0 var(--stroke-1, 1px) var(--color-interactive-blue, #146eb3);
12332
+ }
12333
+
12334
+ .nds-icon-button--secondary:hover:not(:disabled):not(.nds-icon-button--disabled) {
12335
+ background-color: var(--color-interactive-blue, #146eb3);
12336
+ color: var(--color-primary-white, #ffffff);
12337
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
12338
+ }
12339
+
12340
+ .nds-icon-button--secondary:active:not(:disabled):not(.nds-icon-button--disabled) {
12341
+ background-color: var(--color-interactive-blue, #146eb3);
12342
+ color: var(--color-primary-white, #ffffff);
12343
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
12344
+ }
12345
+
12346
+ /* ── Tertiary ── */
12347
+ .nds-icon-button--tertiary {
12348
+ background-color: var(--color-new-gray, #f3f5f7);
12349
+ color: var(--color-interactive-blue, #146eb3);
12350
+ }
12351
+
12352
+ .nds-icon-button--tertiary:hover:not(:disabled):not(.nds-icon-button--disabled) {
12353
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-interactive-blue, #146eb3);
12354
+ }
12355
+
12356
+ .nds-icon-button--tertiary:active:not(:disabled):not(.nds-icon-button--disabled) {
12357
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
12358
+ }
12359
+
12360
+ /* ── Ghost ── */
12361
+ .nds-icon-button--ghost {
12362
+ background-color: transparent;
12363
+ color: var(--color-interactive-blue, #146eb3);
12364
+ }
12365
+
12366
+ .nds-icon-button--ghost:hover:not(:disabled):not(.nds-icon-button--disabled) {
12367
+ background-color: var(--color-new-gray, #f3f5f7);
12368
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-interactive-blue, #146eb3);
12369
+ }
12370
+
12371
+ .nds-icon-button--ghost:active:not(:disabled):not(.nds-icon-button--disabled) {
12372
+ background-color: var(--color-new-gray, #f3f5f7);
12373
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
12374
+ }
12375
+
12376
+ /* ── Dark (for dark backgrounds) ── */
12377
+ .nds-icon-button--dark {
12378
+ background-color: transparent;
12379
+ color: var(--color-primary-white, #ffffff);
12380
+ box-shadow: inset 0 0 0 var(--stroke-1, 1px) var(--color-primary-white, #ffffff);
12381
+ }
12382
+
12383
+ .nds-icon-button--dark:hover:not(:disabled):not(.nds-icon-button--disabled) {
12384
+ background-color: var(--color-interactive-blue, #146eb3);
12385
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-white, #ffffff);
12386
+ }
12387
+
12388
+ .nds-icon-button--dark:active:not(:disabled):not(.nds-icon-button--disabled) {
12389
+ background-color: var(--color-interactive-blue, #146eb3);
12390
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-white, #ffffff);
12391
+ }
12392
+
12393
+ /* ── Disabled ── */
12394
+ .nds-icon-button--disabled,
12395
+ .nds-icon-button:disabled {
12396
+ opacity: 0.5;
12397
+ cursor: not-allowed;
12398
+ }
12399
+
12400
+ /* ── Icon sizing ── */
12401
+ .nds-icon-button__icon {
12402
+ line-height: 1;
12403
+ display: inline-flex;
12404
+ align-items: center;
12405
+ justify-content: center;
12406
+ color: inherit;
12407
+ }
12408
+
12409
+ .nds-icon-button--small .nds-icon-button__icon {
12410
+ font-size: var(--nds-icon-small, 12px);
12411
+ }
12412
+
12413
+ .nds-icon-button--medium .nds-icon-button__icon {
12414
+ font-size: var(--nds-icon-medium, 14px);
12415
+ }
12416
+
12417
+ .nds-icon-button--default .nds-icon-button__icon {
12418
+ font-size: var(--nds-icon-default, 16px);
12419
+ }
12420
+
12421
+ .nds-icon-button--large .nds-icon-button__icon {
12422
+ font-size: var(--nds-icon-large, 20px);
12423
+ }
12424
+
12425
+ /* ── Focus ── */
12426
+ .nds-icon-button:focus-visible {
12427
+ outline: 2px solid var(--color-focus-blue, #2b87ff);
12428
+ outline-offset: 2px;
12429
+ }
12430
+
12431
+ /* ── Reduced motion ── */
12432
+ @media (prefers-reduced-motion: reduce) {
12433
+ .nds-icon-button {
12434
+ transition: none;
12435
+ }
12436
+ }
12437
+ </style>
12438
+ <button
12439
+ type="button"
12440
+ class="${this.buttonClasses}"
12441
+ ?disabled="${this.disabled}"
12442
+ aria-disabled="${this.disabled ? "true" : "false"}"
12443
+ aria-label="${this.buttonAriaLabel}"
12444
+ @click="${this.handleClick}"
12445
+ >
12446
+ <i class="fa-light fa-${this.iconName} nds-icon-button__icon" aria-hidden="true"></i>
12447
+ </button>
12448
+ `;
12449
+ }
12450
+ };
12451
+ b([
12452
+ _()
12453
+ ], p.prototype, "variant", 2);
12454
+ b([
12455
+ _()
12456
+ ], p.prototype, "size", 2);
12457
+ b([
12458
+ _()
12459
+ ], p.prototype, "type", 2);
12460
+ b([
12461
+ _()
12462
+ ], p.prototype, "state", 2);
12463
+ b([
12464
+ _({ attribute: "icon-name" })
12465
+ ], p.prototype, "iconName", 2);
12466
+ b([
12467
+ _({ type: Boolean })
12468
+ ], p.prototype, "disabled", 2);
12469
+ b([
12470
+ _({ attribute: "button-aria-label" })
12471
+ ], p.prototype, "buttonAriaLabel", 2);
12472
+ b([
12473
+ _()
12474
+ ], p.prototype, "shape", 1);
12475
+ p = b([
12476
+ Pt("nds-icon-button")
12477
+ ], p);
11607
12478
  var __pieDefineSafely = (tagName, ctor) => {
11608
12479
  if (customElements.get(tagName))
11609
12480
  return;
@@ -11618,21 +12489,23 @@ var __pieDefineSafely = (tagName, ctor) => {
11618
12489
  };
11619
12490
  var root_4 = from_html2(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
11620
12491
  var root_5 = from_html2(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
11621
- var root_9 = from_html2(`<span aria-hidden="true"></span>`);
11622
- var root_10 = from_html2(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
11623
- var root_12 = from_html2(`<span aria-hidden="true"></span>`);
11624
- var root_13 = from_html2(`<i aria-hidden="true"></i>`);
12492
+ var root_9 = from_html2(`<span class="item-toolbar__calculator-icon svelte-rnx3ie" aria-hidden="true"><i class="fa-light fa-calculator"></i></span>`);
12493
+ var root_10 = from_html2(`<span aria-hidden="true"></span>`);
12494
+ var root_11 = from_html2(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
12495
+ var root_13 = from_html2(`<span aria-hidden="true"></span>`);
12496
+ var root_14 = from_html2(`<i aria-hidden="true"></i>`);
11625
12497
  var root_7 = from_html2(`<a><!></a>`);
11626
- var root_16 = from_html2(`<span aria-hidden="true"></span>`);
11627
- var root_17 = from_html2(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
11628
- var root_19 = from_html2(`<span aria-hidden="true"></span>`);
11629
- var root_20 = from_html2(`<i aria-hidden="true"></i>`);
11630
- var root_14 = from_html2(`<button type="button"><!></button>`);
11631
- var root_22 = from_html2(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
11632
- var root_23 = from_html2(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
11633
- var root_26 = from_html2(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
11634
- var root_27 = from_html2(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
11635
- var root_24 = from_html2(`<div></div>`);
12498
+ var root_17 = from_html2(`<span class="item-toolbar__calculator-icon svelte-rnx3ie" aria-hidden="true"><i class="fa-light fa-calculator"></i></span>`);
12499
+ var root_18 = from_html2(`<span aria-hidden="true"></span>`);
12500
+ var root_19 = from_html2(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
12501
+ var root_21 = from_html2(`<span aria-hidden="true"></span>`);
12502
+ var root_22 = from_html2(`<i aria-hidden="true"></i>`);
12503
+ var root_15 = from_html2(`<button type="button"><!></button>`);
12504
+ var root_24 = from_html2(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
12505
+ var root_25 = from_html2(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
12506
+ var root_28 = from_html2(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
12507
+ var root_29 = from_html2(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
12508
+ var root_26 = from_html2(`<div></div>`);
11636
12509
  var root_2 = from_html2(`<div><div class="item-toolbar__tools-row svelte-rnx3ie"><!> <!> <!></div> <!></div>`);
11637
12510
  var $$css = {
11638
12511
  hash: "svelte-rnx3ie",
@@ -11640,12 +12513,77 @@ var $$css = {
11640
12513
  .item-toolbar--bottom.svelte-rnx3ie {align-items:flex-end;}.item-toolbar--left.svelte-rnx3ie,
11641
12514
  .item-toolbar--right.svelte-rnx3ie {align-items:stretch;}.item-toolbar--left.svelte-rnx3ie .item-toolbar__tools-row:where(.svelte-rnx3ie),
11642
12515
  .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),
11643
- .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;}`
12516
+ .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;}
12517
+
12518
+ /* 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%;}`
11644
12519
  };
11645
12520
  function ItemToolBar($$anchor, $$props) {
11646
12521
  push2($$props, true);
11647
12522
  append_styles2($$anchor, $$css);
11648
12523
  const isBrowser = typeof window !== "undefined";
12524
+ const FA_PRO_HREFS = ["/_fa-pro/fontawesome.min.css", "/_fa-pro/light.min.css"];
12525
+ const FA_FREE_HREF = "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css";
12526
+ const ROBOTO_HREF = "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";
12527
+ const FA_LIGHT_SHIM_ID = "pie-nds-fa-light-shim";
12528
+ let ndsAssetsInstalled = false;
12529
+ const ensureNdsAssets = () => {
12530
+ if (!isBrowser || ndsAssetsInstalled)
12531
+ return;
12532
+ ndsAssetsInstalled = true;
12533
+ if (!document.querySelector('link[href*="Roboto"]')) {
12534
+ const link2 = document.createElement("link");
12535
+ link2.rel = "stylesheet";
12536
+ link2.href = ROBOTO_HREF;
12537
+ document.head.appendChild(link2);
12538
+ }
12539
+ if (!document.querySelector(`link[href="${FA_FREE_HREF}"]`)) {
12540
+ const link2 = document.createElement("link");
12541
+ link2.rel = "stylesheet";
12542
+ link2.href = FA_FREE_HREF;
12543
+ document.head.appendChild(link2);
12544
+ }
12545
+ for (const href of FA_PRO_HREFS) {
12546
+ if (document.querySelector(`link[href="${href}"]`))
12547
+ continue;
12548
+ const link2 = document.createElement("link");
12549
+ link2.rel = "stylesheet";
12550
+ link2.href = href;
12551
+ document.head.appendChild(link2);
12552
+ }
12553
+ if (!document.getElementById(FA_LIGHT_SHIM_ID)) {
12554
+ const style = document.createElement("style");
12555
+ style.id = FA_LIGHT_SHIM_ID;
12556
+ style.textContent = '.fa-light{font-family:"Font Awesome 6 Free";font-weight:900;}';
12557
+ document.head.appendChild(style);
12558
+ }
12559
+ };
12560
+ const FA_TOOLBAR_SHADOW_INSTALLED = "__pieFaToolbarShadowInstalled";
12561
+ const installFaInToolbarShadow = (root) => {
12562
+ const shadow = root.getRootNode();
12563
+ if (!(shadow instanceof ShadowRoot))
12564
+ return;
12565
+ const marker = shadow;
12566
+ if (marker[FA_TOOLBAR_SHADOW_INSTALLED])
12567
+ return;
12568
+ marker[FA_TOOLBAR_SHADOW_INSTALLED] = true;
12569
+ const appendLink = (href) => {
12570
+ const link2 = document.createElement("link");
12571
+ link2.rel = "stylesheet";
12572
+ link2.href = href;
12573
+ shadow.appendChild(link2);
12574
+ };
12575
+ appendLink(FA_FREE_HREF);
12576
+ for (const href of FA_PRO_HREFS)
12577
+ appendLink(href);
12578
+ const shim = document.createElement("style");
12579
+ shim.textContent = '.fa-light{font-family:"Font Awesome 6 Free";font-weight:900;}';
12580
+ shadow.appendChild(shim);
12581
+ };
12582
+ const ndsIconButtonAction = (node) => {
12583
+ ensureNdsAssets();
12584
+ installFaInToolbarShadow(node);
12585
+ return {};
12586
+ };
11649
12587
  const fallbackToolRegistry = createPackagedToolRegistry({ toolModuleLoaders: DEFAULT_TOOL_MODULE_LOADERS });
11650
12588
  let activeToolState = state2(proxy2({}));
11651
12589
  let level = prop2($$props, "level", 7, "item"), scopeId = prop2($$props, "scopeId", 7, ""), itemId = prop2($$props, "itemId", 7, ""), sectionId = prop2($$props, "sectionId", 7, ""), catalogId = prop2($$props, "catalogId", 7, ""), tools = prop2($$props, "tools", 7, "calculator,textToSpeech,answerEliminator"), contentKind = prop2($$props, "contentKind", 7, "assessment-item"), position = prop2($$props, "position", 7, "bottom"), scopeElement = prop2($$props, "scopeElement", 7, null), toolRegistry = prop2($$props, "toolRegistry", 7, null), item = prop2($$props, "item", 7, null), hostButtons = prop2($$props, "hostButtons", 23, () => []), className = prop2($$props, "class", 7, ""), size = prop2($$props, "size", 7, "md"), language = prop2($$props, "language", 7, "en-US");
@@ -12072,6 +13010,13 @@ function ItemToolBar($$anchor, $$props) {
12072
13010
  const controlsRowShouldExpandForActiveTool = user_derived2(() => get22(controlsRowHints).some((entry) => entry.hint?.showWhenToolActive === true && (get22(renderedToolActiveById)[entry.toolId] ?? false)));
12073
13011
  const controlsRowAlignStart = user_derived2(() => position() === "left" || position() === "right");
12074
13012
  const shouldRenderControlsRow = user_derived2(() => get22(mountedElementsControlsRow).length > 0 || get22(controlsRowShouldReserveSpace) || get22(controlsRowShouldExpandForActiveTool));
13013
+ user_effect2(() => {
13014
+ if (!isBrowser)
13015
+ return;
13016
+ if (get22(toolbarItems).some((item2) => item2.icon === "calculator")) {
13017
+ ensureNdsAssets();
13018
+ }
13019
+ });
12075
13020
  function isToolbarItemActive(item2) {
12076
13021
  if (item2.id in get22(activeToolState)) {
12077
13022
  return get22(activeToolState)[item2.id] === true;
@@ -12218,8 +13163,8 @@ function ItemToolBar($$anchor, $$props) {
12218
13163
  let resizeStartHeight = 0;
12219
13164
  let resizeStartX = 0;
12220
13165
  let resizeStartY = 0;
12221
- let x = 0;
12222
- let y = 0;
13166
+ let x2 = 0;
13167
+ let y2 = 0;
12223
13168
  let width = currentArgs.mounted.entry.shell?.initialWidth ?? 720;
12224
13169
  let height = currentArgs.mounted.entry.shell?.initialHeight ?? 560;
12225
13170
  let focusTrapCleanup = null;
@@ -12277,14 +13222,14 @@ function ItemToolBar($$anchor, $$props) {
12277
13222
  const { minWidth, minHeight, maxWidth, maxHeight } = getShellBounds();
12278
13223
  width = clamp(width, minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth)));
12279
13224
  height = clamp(height, minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight)));
12280
- x = clamp(x, 0, Math.max(0, window.innerWidth - width));
12281
- y = clamp(y, 0, Math.max(0, window.innerHeight - height));
13225
+ x2 = clamp(x2, 0, Math.max(0, window.innerWidth - width));
13226
+ y2 = clamp(y2, 0, Math.max(0, window.innerHeight - height));
12282
13227
  applyShellStyle();
12283
13228
  notifyHostedResize();
12284
13229
  };
12285
13230
  const moveBy = (dx, dy) => {
12286
- x += dx;
12287
- y += dy;
13231
+ x2 += dx;
13232
+ y2 += dy;
12288
13233
  applyPositionAndSize();
12289
13234
  };
12290
13235
  const resizeBy = (dw, dh) => {
@@ -12292,6 +13237,21 @@ function ItemToolBar($$anchor, $$props) {
12292
13237
  height += dh;
12293
13238
  applyPositionAndSize();
12294
13239
  };
13240
+ const createShellIconButton = (label, iconName, onActivate) => {
13241
+ const button = document.createElement("nds-icon-button");
13242
+ button.setAttribute("variant", "tertiary");
13243
+ button.setAttribute("size", "small");
13244
+ button.setAttribute("type", "circle");
13245
+ button.setAttribute("icon-name", iconName);
13246
+ button.setAttribute("button-aria-label", label);
13247
+ button.title = label;
13248
+ button.addEventListener("click", (event2) => {
13249
+ event2.stopPropagation();
13250
+ onActivate();
13251
+ bringToFront();
13252
+ });
13253
+ return button;
13254
+ };
12295
13255
  const createShellControlButton = (label, glyph, onActivate) => {
12296
13256
  const button = document.createElement("button");
12297
13257
  button.type = "button";
@@ -12331,8 +13291,8 @@ function ItemToolBar($$anchor, $$props) {
12331
13291
  const applyShellStyle = () => {
12332
13292
  if (!shellEl)
12333
13293
  return;
12334
- shellEl.style.left = `${x}px`;
12335
- shellEl.style.top = `${y}px`;
13294
+ shellEl.style.left = `${x2}px`;
13295
+ shellEl.style.top = `${y2}px`;
12336
13296
  shellEl.style.width = `${width}px`;
12337
13297
  shellEl.style.height = `${height}px`;
12338
13298
  shellEl.style.display = currentArgs.active ? "flex" : "none";
@@ -12370,8 +13330,8 @@ function ItemToolBar($$anchor, $$props) {
12370
13330
  const centerShell = () => {
12371
13331
  const viewportW = window.innerWidth;
12372
13332
  const viewportH = window.innerHeight;
12373
- x = Math.max(0, Math.round((viewportW - width) / 2));
12374
- y = Math.max(0, Math.round((viewportH - height) / 2));
13333
+ x2 = Math.max(0, Math.round((viewportW - width) / 2));
13334
+ y2 = Math.max(0, Math.round((viewportH - height) / 2));
12375
13335
  applyPositionAndSize();
12376
13336
  };
12377
13337
  const restoreOpenerFocus = () => {
@@ -12437,8 +13397,8 @@ function ItemToolBar($$anchor, $$props) {
12437
13397
  if (!shellEl)
12438
13398
  return;
12439
13399
  dragPointerId = event2.pointerId;
12440
- dragOffsetX = event2.clientX - x;
12441
- dragOffsetY = event2.clientY - y;
13400
+ dragOffsetX = event2.clientX - x2;
13401
+ dragOffsetY = event2.clientY - y2;
12442
13402
  shellEl.setPointerCapture(event2.pointerId);
12443
13403
  bringToFront();
12444
13404
  };
@@ -12460,8 +13420,8 @@ function ItemToolBar($$anchor, $$props) {
12460
13420
  if (dragPointerId === event2.pointerId) {
12461
13421
  const maxX = Math.max(0, window.innerWidth - width);
12462
13422
  const maxY = Math.max(0, window.innerHeight - height);
12463
- x = clamp(event2.clientX - dragOffsetX, 0, maxX);
12464
- y = clamp(event2.clientY - dragOffsetY, 0, maxY);
13423
+ x2 = clamp(event2.clientX - dragOffsetX, 0, maxX);
13424
+ y2 = clamp(event2.clientY - dragOffsetY, 0, maxY);
12465
13425
  applyShellStyle();
12466
13426
  return;
12467
13427
  }
@@ -12471,8 +13431,8 @@ function ItemToolBar($$anchor, $$props) {
12471
13431
  const minHeight = shellConfig?.minHeight ?? 240;
12472
13432
  const maxWidth = shellConfig?.maxWidth ?? window.innerWidth;
12473
13433
  const maxHeight = shellConfig?.maxHeight ?? window.innerHeight;
12474
- width = clamp(resizeStartWidth + (event2.clientX - resizeStartX), minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth - x)));
12475
- height = clamp(resizeStartHeight + (event2.clientY - resizeStartY), minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight - y)));
13434
+ width = clamp(resizeStartWidth + (event2.clientX - resizeStartX), minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth - x2)));
13435
+ height = clamp(resizeStartHeight + (event2.clientY - resizeStartY), minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight - y2)));
12476
13436
  applyShellStyle();
12477
13437
  notifyHostedResize();
12478
13438
  }
@@ -12493,6 +13453,9 @@ function ItemToolBar($$anchor, $$props) {
12493
13453
  applyPositionAndSize();
12494
13454
  };
12495
13455
  if (isBrowser && currentArgs.mounted.entry.shell) {
13456
+ const isCalculatorShell = currentArgs.mounted.toolId === "calculator";
13457
+ if (isCalculatorShell)
13458
+ ensureNdsAssets();
12496
13459
  shellEl = document.createElement("div");
12497
13460
  shellEl.className = "pie-tool-shell";
12498
13461
  shellEl.setAttribute("data-pie-tool-shell", currentArgs.mounted.toolId);
@@ -12510,9 +13473,18 @@ function ItemToolBar($$anchor, $$props) {
12510
13473
  headerEl.style.display = "flex";
12511
13474
  headerEl.style.alignItems = "center";
12512
13475
  headerEl.style.justifyContent = "space-between";
12513
- headerEl.style.padding = "10px 12px";
12514
- headerEl.style.background = "var(--pie-primary-dark, #2c3e50)";
12515
- headerEl.style.color = "var(--pie-white, #fff)";
13476
+ headerEl.style.padding = isCalculatorShell ? "12px 12px 12px 28px" : "10px 12px";
13477
+ if (isCalculatorShell) {
13478
+ headerEl.style.minHeight = "48px";
13479
+ }
13480
+ if (isCalculatorShell) {
13481
+ headerEl.style.background = "var(--pie-section-player-card-header-background, #f3f4f6)";
13482
+ headerEl.style.color = "var(--pie-text, #111827)";
13483
+ headerEl.style.borderBottom = "1px solid var(--pie-border-light, #e5e7eb)";
13484
+ } else {
13485
+ headerEl.style.background = "var(--pie-primary-dark, #2c3e50)";
13486
+ headerEl.style.color = "var(--pie-white, #fff)";
13487
+ }
12516
13488
  headerEl.style.cursor = currentArgs.mounted.entry.shell.draggable === false ? "default" : "move";
12517
13489
  headerEl.style.flex = "0 0 auto";
12518
13490
  titleEl = document.createElement("span");
@@ -12523,74 +13495,109 @@ function ItemToolBar($$anchor, $$props) {
12523
13495
  controlsEl.className = "pie-tool-shell__controls";
12524
13496
  controlsEl.style.display = "inline-flex";
12525
13497
  controlsEl.style.alignItems = "center";
12526
- controlsEl.style.gap = "4px";
13498
+ controlsEl.style.gap = isCalculatorShell ? "6px" : "4px";
12527
13499
  const shellConfig = currentArgs.mounted.entry.shell;
13500
+ const appendControl = (label, glyph, iconName, onActivate) => {
13501
+ if (!controlsEl)
13502
+ return;
13503
+ controlsEl.appendChild(isCalculatorShell ? createShellIconButton(label, iconName, onActivate) : createShellControlButton(label, glyph, onActivate));
13504
+ };
12528
13505
  if (shellConfig?.draggable !== false) {
12529
- controlsEl.appendChild(createShellControlButton("Move tool left", "←", () => moveBy(-24, 0)));
12530
- controlsEl.appendChild(createShellControlButton("Move tool right", "→", () => moveBy(24, 0)));
12531
- controlsEl.appendChild(createShellControlButton("Move tool up", "↑", () => moveBy(0, -24)));
12532
- controlsEl.appendChild(createShellControlButton("Move tool down", "↓", () => moveBy(0, 24)));
13506
+ appendControl("Move tool left", "←", "chevron-left", () => moveBy(-24, 0));
13507
+ appendControl("Move tool right", "→", "chevron-right", () => moveBy(24, 0));
13508
+ appendControl("Move tool up", "↑", "chevron-up", () => moveBy(0, -24));
13509
+ appendControl("Move tool down", "↓", "chevron-down", () => moveBy(0, 24));
12533
13510
  }
12534
13511
  if (shellConfig?.resizable !== false) {
12535
- controlsEl.appendChild(createShellControlButton("Shrink tool window", "−", () => resizeBy(-40, -40)));
12536
- controlsEl.appendChild(createShellControlButton("Grow tool window", "+", () => resizeBy(40, 40)));
12537
- }
12538
- controlsEl.appendChild(createShellControlButton("Center tool window", "◎", centerShell));
12539
- headerEl.appendChild(controlsEl);
12540
- closeButtonEl = document.createElement("button");
12541
- closeButtonEl.type = "button";
12542
- closeButtonEl.className = "pie-tool-shell__close";
12543
- closeButtonEl.setAttribute("aria-label", "Close tool");
12544
- const svgNs = "http://www.w3.org/2000/svg";
12545
- const closeIconEl = document.createElementNS(svgNs, "svg");
12546
- closeIconEl.setAttribute("xmlns", svgNs);
12547
- closeIconEl.setAttribute("viewBox", "0 0 16 16");
12548
- closeIconEl.setAttribute("aria-hidden", "true");
12549
- const closeIconPath = document.createElementNS(svgNs, "path");
12550
- closeIconPath.setAttribute("d", "M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5");
12551
- closeIconPath.setAttribute("stroke", "currentColor");
12552
- closeIconPath.setAttribute("stroke-width", "1.8");
12553
- closeIconPath.setAttribute("stroke-linecap", "round");
12554
- closeIconEl.appendChild(closeIconPath);
12555
- closeButtonEl.appendChild(closeIconEl);
12556
- const closeIconStyle = closeIconEl.style;
12557
- closeIconStyle.width = "16px";
12558
- closeIconStyle.height = "16px";
12559
- closeIconStyle.display = "block";
12560
- closeIconStyle.flexShrink = "0";
12561
- closeIconStyle.pointerEvents = "none";
12562
- const closeButtonBaseBackground = "color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)";
12563
- const closeButtonHoverBackground = "color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";
12564
- closeButtonEl.style.border = "1px solid transparent";
12565
- closeButtonEl.style.background = closeButtonBaseBackground;
12566
- closeButtonEl.style.color = "inherit";
12567
- closeButtonEl.style.cursor = "pointer";
12568
- closeButtonEl.style.display = "inline-flex";
12569
- closeButtonEl.style.alignItems = "center";
12570
- closeButtonEl.style.justifyContent = "center";
12571
- closeButtonEl.style.width = "28px";
12572
- closeButtonEl.style.height = "28px";
12573
- closeButtonEl.style.padding = "0";
12574
- closeButtonEl.style.borderRadius = "8px";
12575
- closeButtonEl.style.lineHeight = "0";
12576
- closeButtonEl.style.transition = "background-color 0.15s ease, border-color 0.15s ease";
12577
- closeButtonEl.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-flex";
12578
- closeButtonEl.onmouseenter = () => {
12579
- closeButtonEl && (closeButtonEl.style.background = closeButtonHoverBackground);
12580
- };
12581
- closeButtonEl.onmouseleave = () => {
12582
- closeButtonEl && (closeButtonEl.style.background = closeButtonBaseBackground);
12583
- };
12584
- closeButtonEl.onfocus = () => {
12585
- closeButtonEl && (closeButtonEl.style.outline = "2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))");
12586
- closeButtonEl && (closeButtonEl.style.outlineOffset = "2px");
12587
- };
12588
- closeButtonEl.onblur = () => {
12589
- closeButtonEl && (closeButtonEl.style.outline = "none");
12590
- closeButtonEl && (closeButtonEl.style.outlineOffset = "0");
12591
- };
12592
- closeButtonEl.onclick = closeShell;
12593
- headerEl.appendChild(closeButtonEl);
13512
+ appendControl("Shrink tool window", "−", "magnifying-glass-minus", () => resizeBy(-40, -40));
13513
+ appendControl("Grow tool window", "+", "magnifying-glass-plus", () => resizeBy(40, 40));
13514
+ }
13515
+ if (!isCalculatorShell) {
13516
+ controlsEl.appendChild(createShellControlButton("Center tool window", "◎", centerShell));
13517
+ }
13518
+ let rightClusterEl = null;
13519
+ if (isCalculatorShell) {
13520
+ rightClusterEl = document.createElement("div");
13521
+ rightClusterEl.className = "pie-tool-shell__header-right";
13522
+ rightClusterEl.style.display = "inline-flex";
13523
+ rightClusterEl.style.alignItems = "center";
13524
+ rightClusterEl.style.gap = "6px";
13525
+ rightClusterEl.appendChild(controlsEl);
13526
+ headerEl.appendChild(rightClusterEl);
13527
+ } else {
13528
+ headerEl.appendChild(controlsEl);
13529
+ }
13530
+ if (isCalculatorShell) {
13531
+ closeButtonEl = document.createElement("nds-icon-button");
13532
+ closeButtonEl.setAttribute("variant", "tertiary");
13533
+ closeButtonEl.setAttribute("size", "small");
13534
+ closeButtonEl.setAttribute("type", "circle");
13535
+ closeButtonEl.setAttribute("icon-name", "xmark");
13536
+ closeButtonEl.setAttribute("button-aria-label", "Close tool");
13537
+ closeButtonEl.title = "Close tool";
13538
+ closeButtonEl.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-block";
13539
+ closeButtonEl.addEventListener("click", closeShell);
13540
+ } else {
13541
+ const closeButton = document.createElement("button");
13542
+ closeButton.type = "button";
13543
+ closeButton.className = "pie-tool-shell__close";
13544
+ closeButton.setAttribute("aria-label", "Close tool");
13545
+ const svgNs = "http://www.w3.org/2000/svg";
13546
+ const closeIconEl = document.createElementNS(svgNs, "svg");
13547
+ closeIconEl.setAttribute("xmlns", svgNs);
13548
+ closeIconEl.setAttribute("viewBox", "0 0 16 16");
13549
+ closeIconEl.setAttribute("aria-hidden", "true");
13550
+ const closeIconPath = document.createElementNS(svgNs, "path");
13551
+ closeIconPath.setAttribute("d", "M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5");
13552
+ closeIconPath.setAttribute("stroke", "currentColor");
13553
+ closeIconPath.setAttribute("stroke-width", "1.8");
13554
+ closeIconPath.setAttribute("stroke-linecap", "round");
13555
+ closeIconEl.appendChild(closeIconPath);
13556
+ closeButton.appendChild(closeIconEl);
13557
+ const closeIconStyle = closeIconEl.style;
13558
+ closeIconStyle.width = "16px";
13559
+ closeIconStyle.height = "16px";
13560
+ closeIconStyle.display = "block";
13561
+ closeIconStyle.flexShrink = "0";
13562
+ closeIconStyle.pointerEvents = "none";
13563
+ const closeButtonBaseBackground = "color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)";
13564
+ const closeButtonHoverBackground = "color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";
13565
+ closeButton.style.border = "1px solid transparent";
13566
+ closeButton.style.background = closeButtonBaseBackground;
13567
+ closeButton.style.color = "inherit";
13568
+ closeButton.style.cursor = "pointer";
13569
+ closeButton.style.display = "inline-flex";
13570
+ closeButton.style.alignItems = "center";
13571
+ closeButton.style.justifyContent = "center";
13572
+ closeButton.style.width = "28px";
13573
+ closeButton.style.height = "28px";
13574
+ closeButton.style.padding = "0";
13575
+ closeButton.style.borderRadius = "8px";
13576
+ closeButton.style.lineHeight = "0";
13577
+ closeButton.style.transition = "background-color 0.15s ease, border-color 0.15s ease";
13578
+ closeButton.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-flex";
13579
+ closeButton.onmouseenter = () => {
13580
+ closeButton.style.background = closeButtonHoverBackground;
13581
+ };
13582
+ closeButton.onmouseleave = () => {
13583
+ closeButton.style.background = closeButtonBaseBackground;
13584
+ };
13585
+ closeButton.onfocus = () => {
13586
+ closeButton.style.outline = "2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))";
13587
+ closeButton.style.outlineOffset = "2px";
13588
+ };
13589
+ closeButton.onblur = () => {
13590
+ closeButton.style.outline = "none";
13591
+ closeButton.style.outlineOffset = "0";
13592
+ };
13593
+ closeButton.onclick = closeShell;
13594
+ closeButtonEl = closeButton;
13595
+ }
13596
+ if (rightClusterEl) {
13597
+ rightClusterEl.appendChild(closeButtonEl);
13598
+ } else {
13599
+ headerEl.appendChild(closeButtonEl);
13600
+ }
12594
13601
  headerEl.tabIndex = 0;
12595
13602
  headerEl.onkeydown = (event2) => {
12596
13603
  if (event2.key === "Home") {
@@ -12669,7 +13676,8 @@ function ItemToolBar($$anchor, $$props) {
12669
13676
  if (!shellEl || !contentEl || !titleEl || !closeButtonEl)
12670
13677
  return;
12671
13678
  titleEl.textContent = currentArgs.mounted.entry.shell?.title || currentArgs.mounted.toolId;
12672
- closeButtonEl.style.display = currentArgs.mounted.entry.shell?.closeable === false ? "none" : "inline-flex";
13679
+ const closeButtonOpenDisplay = currentArgs.mounted.toolId === "calculator" ? "inline-block" : "inline-flex";
13680
+ closeButtonEl.style.display = currentArgs.mounted.entry.shell?.closeable === false ? "none" : closeButtonOpenDisplay;
12673
13681
  mountContent();
12674
13682
  applyShellStyle();
12675
13683
  notifyHostedResize();
@@ -12821,7 +13829,7 @@ function ItemToolBar($$anchor, $$props) {
12821
13829
  var fragment = comment2();
12822
13830
  var node_1 = first_child2(fragment);
12823
13831
  {
12824
- var consequent_13 = ($$anchor2) => {
13832
+ var consequent_15 = ($$anchor2) => {
12825
13833
  var div = root_2();
12826
13834
  let classes;
12827
13835
  var div_1 = child2(div);
@@ -12857,24 +13865,29 @@ function ItemToolBar($$anchor, $$props) {
12857
13865
  var fragment_2 = comment2();
12858
13866
  var node_5 = first_child2(fragment_2);
12859
13867
  {
12860
- var consequent_5 = ($$anchor4) => {
13868
+ var consequent_6 = ($$anchor4) => {
12861
13869
  var a = root_7();
12862
13870
  let classes_1;
12863
13871
  var node_6 = child2(a);
12864
13872
  {
12865
- var consequent_4 = ($$anchor5) => {
13873
+ var consequent_5 = ($$anchor5) => {
12866
13874
  var fragment_3 = comment2();
12867
13875
  var node_7 = first_child2(fragment_3);
12868
13876
  {
12869
13877
  var consequent_1 = ($$anchor6) => {
12870
13878
  var span_2 = root_9();
12871
- html2(span_2, () => sanitizeSvgIcon(get22(item2).icon), true);
12872
- reset2(span_2);
13879
+ action2(span_2, ($$node) => ndsIconButtonAction?.($$node));
12873
13880
  append2($$anchor6, span_2);
12874
13881
  };
12875
- var d = user_derived2(() => isInlineSvgIcon(get22(item2).icon));
12876
13882
  var consequent_2 = ($$anchor6) => {
12877
- var img = root_10();
13883
+ var span_3 = root_10();
13884
+ html2(span_3, () => sanitizeSvgIcon(get22(item2).icon), true);
13885
+ reset2(span_3);
13886
+ append2($$anchor6, span_3);
13887
+ };
13888
+ var d2 = user_derived2(() => isInlineSvgIcon(get22(item2).icon));
13889
+ var consequent_3 = ($$anchor6) => {
13890
+ var img = root_11();
12878
13891
  template_effect2(() => set_attribute22(img, "src", get22(item2).icon));
12879
13892
  append2($$anchor6, img);
12880
13893
  };
@@ -12884,20 +13897,20 @@ function ItemToolBar($$anchor, $$props) {
12884
13897
  var fragment_4 = comment2();
12885
13898
  var node_8 = first_child2(fragment_4);
12886
13899
  {
12887
- var consequent_3 = ($$anchor7) => {
12888
- var span_3 = root_12();
12889
- html2(span_3, () => sanitizeSvgIcon(get22(fallbackIcon)), true);
12890
- reset2(span_3);
12891
- append2($$anchor7, span_3);
13900
+ var consequent_4 = ($$anchor7) => {
13901
+ var span_4 = root_13();
13902
+ html2(span_4, () => sanitizeSvgIcon(get22(fallbackIcon)), true);
13903
+ reset2(span_4);
13904
+ append2($$anchor7, span_4);
12892
13905
  };
12893
13906
  var alternate_1 = ($$anchor7) => {
12894
- var i = root_13();
13907
+ var i = root_14();
12895
13908
  template_effect2(() => set_class2(i, 1, `icon icon-${get22(item2).icon}`, "svelte-rnx3ie"));
12896
13909
  append2($$anchor7, i);
12897
13910
  };
12898
13911
  if_block2(node_8, ($$render) => {
12899
13912
  if (get22(fallbackIcon))
12900
- $$render(consequent_3);
13913
+ $$render(consequent_4);
12901
13914
  else
12902
13915
  $$render(alternate_1, -1);
12903
13916
  });
@@ -12905,10 +13918,12 @@ function ItemToolBar($$anchor, $$props) {
12905
13918
  append2($$anchor6, fragment_4);
12906
13919
  };
12907
13920
  if_block2(node_7, ($$render) => {
12908
- if (get22(d))
13921
+ if (get22(item2).icon === "calculator")
12909
13922
  $$render(consequent_1);
12910
- else if (get22(d_1))
13923
+ else if (get22(d2))
12911
13924
  $$render(consequent_2, 1);
13925
+ else if (get22(d_1))
13926
+ $$render(consequent_3, 2);
12912
13927
  else
12913
13928
  $$render(alternate_2, -1);
12914
13929
  });
@@ -12917,7 +13932,7 @@ function ItemToolBar($$anchor, $$props) {
12917
13932
  };
12918
13933
  if_block2(node_6, ($$render) => {
12919
13934
  if (get22(item2).icon)
12920
- $$render(consequent_4);
13935
+ $$render(consequent_5);
12921
13936
  });
12922
13937
  }
12923
13938
  reset2(a);
@@ -12943,23 +13958,28 @@ function ItemToolBar($$anchor, $$props) {
12943
13958
  };
12944
13959
  var d_2 = user_derived2(() => isToolbarLinkItem(get22(item2)));
12945
13960
  var alternate_5 = ($$anchor4) => {
12946
- var button_1 = root_14();
13961
+ var button_1 = root_15();
12947
13962
  let classes_2;
12948
13963
  var node_9 = child2(button_1);
12949
13964
  {
12950
- var consequent_9 = ($$anchor5) => {
13965
+ var consequent_11 = ($$anchor5) => {
12951
13966
  var fragment_5 = comment2();
12952
13967
  var node_10 = first_child2(fragment_5);
12953
13968
  {
12954
- var consequent_6 = ($$anchor6) => {
12955
- var span_4 = root_16();
12956
- html2(span_4, () => sanitizeSvgIcon(get22(item2).icon), true);
12957
- reset2(span_4);
12958
- append2($$anchor6, span_4);
13969
+ var consequent_7 = ($$anchor6) => {
13970
+ var span_5 = root_17();
13971
+ action2(span_5, ($$node) => ndsIconButtonAction?.($$node));
13972
+ append2($$anchor6, span_5);
13973
+ };
13974
+ var consequent_8 = ($$anchor6) => {
13975
+ var span_6 = root_18();
13976
+ html2(span_6, () => sanitizeSvgIcon(get22(item2).icon), true);
13977
+ reset2(span_6);
13978
+ append2($$anchor6, span_6);
12959
13979
  };
12960
13980
  var d_3 = user_derived2(() => isInlineSvgIcon(get22(item2).icon));
12961
- var consequent_7 = ($$anchor6) => {
12962
- var img_1 = root_17();
13981
+ var consequent_9 = ($$anchor6) => {
13982
+ var img_1 = root_19();
12963
13983
  template_effect2(() => set_attribute22(img_1, "src", get22(item2).icon));
12964
13984
  append2($$anchor6, img_1);
12965
13985
  };
@@ -12969,20 +13989,20 @@ function ItemToolBar($$anchor, $$props) {
12969
13989
  var fragment_6 = comment2();
12970
13990
  var node_11 = first_child2(fragment_6);
12971
13991
  {
12972
- var consequent_8 = ($$anchor7) => {
12973
- var span_5 = root_19();
12974
- html2(span_5, () => sanitizeSvgIcon(get22(fallbackIcon)), true);
12975
- reset2(span_5);
12976
- append2($$anchor7, span_5);
13992
+ var consequent_10 = ($$anchor7) => {
13993
+ var span_7 = root_21();
13994
+ html2(span_7, () => sanitizeSvgIcon(get22(fallbackIcon)), true);
13995
+ reset2(span_7);
13996
+ append2($$anchor7, span_7);
12977
13997
  };
12978
13998
  var alternate_3 = ($$anchor7) => {
12979
- var i_1 = root_20();
13999
+ var i_1 = root_22();
12980
14000
  template_effect2(() => set_class2(i_1, 1, `icon icon-${get22(item2).icon}`, "svelte-rnx3ie"));
12981
14001
  append2($$anchor7, i_1);
12982
14002
  };
12983
14003
  if_block2(node_11, ($$render) => {
12984
14004
  if (get22(fallbackIcon))
12985
- $$render(consequent_8);
14005
+ $$render(consequent_10);
12986
14006
  else
12987
14007
  $$render(alternate_3, -1);
12988
14008
  });
@@ -12990,10 +14010,12 @@ function ItemToolBar($$anchor, $$props) {
12990
14010
  append2($$anchor6, fragment_6);
12991
14011
  };
12992
14012
  if_block2(node_10, ($$render) => {
12993
- if (get22(d_3))
12994
- $$render(consequent_6);
14013
+ if (get22(item2).icon === "calculator")
14014
+ $$render(consequent_7);
14015
+ else if (get22(d_3))
14016
+ $$render(consequent_8, 1);
12995
14017
  else if (get22(d_4))
12996
- $$render(consequent_7, 1);
14018
+ $$render(consequent_9, 2);
12997
14019
  else
12998
14020
  $$render(alternate_4, -1);
12999
14021
  });
@@ -13002,7 +14024,7 @@ function ItemToolBar($$anchor, $$props) {
13002
14024
  };
13003
14025
  if_block2(node_9, ($$render) => {
13004
14026
  if (get22(item2).icon)
13005
- $$render(consequent_9);
14027
+ $$render(consequent_11);
13006
14028
  });
13007
14029
  }
13008
14030
  reset2(button_1);
@@ -13025,7 +14047,7 @@ function ItemToolBar($$anchor, $$props) {
13025
14047
  };
13026
14048
  if_block2(node_5, ($$render) => {
13027
14049
  if (get22(d_2))
13028
- $$render(consequent_5);
14050
+ $$render(consequent_6);
13029
14051
  else
13030
14052
  $$render(alternate_5, -1);
13031
14053
  });
@@ -13037,22 +14059,22 @@ function ItemToolBar($$anchor, $$props) {
13037
14059
  var fragment_7 = comment2();
13038
14060
  var node_13 = first_child2(fragment_7);
13039
14061
  {
13040
- var consequent_10 = ($$anchor4) => {
13041
- var span_6 = root_22();
13042
- action2(span_6, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
14062
+ var consequent_12 = ($$anchor4) => {
14063
+ var span_8 = root_24();
14064
+ action2(span_8, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
13043
14065
  mounted: get22(mounted),
13044
14066
  active: get22(renderedToolActiveById)[get22(mounted).toolId] ?? false
13045
14067
  }));
13046
- append2($$anchor4, span_6);
14068
+ append2($$anchor4, span_8);
13047
14069
  };
13048
14070
  var alternate_6 = ($$anchor4) => {
13049
- var span_7 = root_23();
13050
- action2(span_7, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get22(mounted).entry.element);
13051
- append2($$anchor4, span_7);
14071
+ var span_9 = root_25();
14072
+ action2(span_9, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get22(mounted).entry.element);
14073
+ append2($$anchor4, span_9);
13052
14074
  };
13053
14075
  if_block2(node_13, ($$render) => {
13054
14076
  if (get22(mounted).entry.shell)
13055
- $$render(consequent_10);
14077
+ $$render(consequent_12);
13056
14078
  else
13057
14079
  $$render(alternate_6, -1);
13058
14080
  });
@@ -13062,29 +14084,29 @@ function ItemToolBar($$anchor, $$props) {
13062
14084
  reset2(div_1);
13063
14085
  var node_14 = sibling2(div_1, 2);
13064
14086
  {
13065
- var consequent_12 = ($$anchor3) => {
13066
- var div_2 = root_24();
14087
+ var consequent_14 = ($$anchor3) => {
14088
+ var div_2 = root_26();
13067
14089
  let classes_3;
13068
14090
  each2(div_2, 21, () => get22(mountedElementsControlsRow), (mounted) => mounted.key, ($$anchor4, mounted) => {
13069
14091
  var fragment_8 = comment2();
13070
14092
  var node_15 = first_child2(fragment_8);
13071
14093
  {
13072
- var consequent_11 = ($$anchor5) => {
13073
- var span_8 = root_26();
13074
- action2(span_8, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
14094
+ var consequent_13 = ($$anchor5) => {
14095
+ var span_10 = root_28();
14096
+ action2(span_10, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
13075
14097
  mounted: get22(mounted),
13076
14098
  active: get22(renderedToolActiveById)[get22(mounted).toolId] ?? false
13077
14099
  }));
13078
- append2($$anchor5, span_8);
14100
+ append2($$anchor5, span_10);
13079
14101
  };
13080
14102
  var alternate_7 = ($$anchor5) => {
13081
- var span_9 = root_27();
13082
- action2(span_9, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get22(mounted).entry.element);
13083
- append2($$anchor5, span_9);
14103
+ var span_11 = root_29();
14104
+ action2(span_11, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get22(mounted).entry.element);
14105
+ append2($$anchor5, span_11);
13084
14106
  };
13085
14107
  if_block2(node_15, ($$render) => {
13086
14108
  if (get22(mounted).entry.shell)
13087
- $$render(consequent_11);
14109
+ $$render(consequent_13);
13088
14110
  else
13089
14111
  $$render(alternate_7, -1);
13090
14112
  });
@@ -13101,7 +14123,7 @@ function ItemToolBar($$anchor, $$props) {
13101
14123
  };
13102
14124
  if_block2(node_14, ($$render) => {
13103
14125
  if (get22(shouldRenderControlsRow))
13104
- $$render(consequent_12);
14126
+ $$render(consequent_14);
13105
14127
  });
13106
14128
  }
13107
14129
  reset2(div);
@@ -13120,7 +14142,7 @@ function ItemToolBar($$anchor, $$props) {
13120
14142
  };
13121
14143
  if_block2(node_1, ($$render) => {
13122
14144
  if (isBrowser)
13123
- $$render(consequent_13);
14145
+ $$render(consequent_15);
13124
14146
  });
13125
14147
  }
13126
14148
  append2($$anchor, fragment);