@pie-players/pie-assessment-toolkit 0.3.43 → 0.3.45

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 (441) hide show
  1. package/README.md +54 -69
  2. package/dist/attempt/AssessmentSession.d.ts +0 -1
  3. package/dist/attempt/AssessmentSession.js.map +1 -1
  4. package/dist/attempt/TestSession.d.ts +0 -1
  5. package/dist/attempt/TestSession.js.map +1 -1
  6. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts +0 -1
  7. package/dist/attempt/adapters/activity-to-test-attempt-session.js.map +1 -1
  8. package/dist/components/ItemToolBar.custom-element.js +1607 -428
  9. package/dist/components/PieAssessmentToolkit.custom-element.js +19498 -3590
  10. package/dist/components/SectionToolBar.custom-element.js +1887 -611
  11. package/dist/components/item-toolbar-element.d.ts +0 -1
  12. package/dist/components/item-toolbar-element.js.map +1 -1
  13. package/dist/components/pie-assessment-toolkit-element.d.ts +0 -1
  14. package/dist/components/pie-assessment-toolkit-element.js.map +1 -1
  15. package/dist/components/section-toolbar-element.d.ts +0 -1
  16. package/dist/components/section-toolbar-element.js.map +1 -1
  17. package/dist/components/vendor/nds/README.md +110 -0
  18. package/dist/components/vendor/nds/nds-icon-button.js +826 -0
  19. package/dist/context/assessment-toolkit-context.d.ts +0 -1
  20. package/dist/context/assessment-toolkit-context.js.map +1 -1
  21. package/dist/context/runtime-context-consumer.d.ts +0 -1
  22. package/dist/context/runtime-context-consumer.js.map +1 -1
  23. package/dist/index.d.ts +3 -7
  24. package/dist/index.js +1 -3
  25. package/dist/index.js.map +1 -1
  26. package/dist/item-loader.d.ts +0 -1
  27. package/dist/item-loader.js.map +1 -1
  28. package/dist/policy/core/PolicySource.d.ts +0 -1
  29. package/dist/policy/core/PolicySource.js.map +1 -1
  30. package/dist/policy/core/ToolPolicyEngine.d.ts +1 -3
  31. package/dist/policy/core/ToolPolicyEngine.js +1 -2
  32. package/dist/policy/core/ToolPolicyEngine.js.map +1 -1
  33. package/dist/policy/core/compose-decision.d.ts +0 -1
  34. package/dist/policy/core/compose-decision.js.map +1 -1
  35. package/dist/policy/core/decision-types.d.ts +0 -1
  36. package/dist/policy/core/decision-types.js.map +1 -1
  37. package/dist/policy/core/engine-context.d.ts +0 -1
  38. package/dist/policy/core/engine-context.js.map +1 -1
  39. package/dist/policy/core/pnp-policy-inputs.d.ts +2 -4
  40. package/dist/policy/core/pnp-policy-inputs.js +2 -3
  41. package/dist/policy/core/pnp-policy-inputs.js.map +1 -1
  42. package/dist/policy/core/policy-source-tag.d.ts +0 -1
  43. package/dist/policy/core/policy-source-tag.js.map +1 -1
  44. package/dist/policy/core/provenance.d.ts +7 -35
  45. package/dist/policy/core/provenance.js +4 -21
  46. package/dist/policy/core/provenance.js.map +1 -1
  47. package/dist/policy/engine.d.ts +0 -1
  48. package/dist/policy/engine.js.map +1 -1
  49. package/dist/policy/internal.d.ts +0 -1
  50. package/dist/policy/internal.js.map +1 -1
  51. package/dist/policy/sources/PnpPolicySource.d.ts +6 -20
  52. package/dist/policy/sources/PnpPolicySource.js +6 -19
  53. package/dist/policy/sources/PnpPolicySource.js.map +1 -1
  54. package/dist/runtime/RuntimeRegistry.d.ts +0 -1
  55. package/dist/runtime/RuntimeRegistry.js.map +1 -1
  56. package/dist/runtime/SectionRuntimeEngine.d.ts +13 -29
  57. package/dist/runtime/SectionRuntimeEngine.js +13 -27
  58. package/dist/runtime/SectionRuntimeEngine.js.map +1 -1
  59. package/dist/runtime/adapter/SectionEngineAdapter.d.ts +2 -3
  60. package/dist/runtime/adapter/SectionEngineAdapter.js +2 -2
  61. package/dist/runtime/adapter/SectionEngineAdapter.js.map +1 -1
  62. package/dist/runtime/adapter/coordinator-bridge.d.ts +1 -2
  63. package/dist/runtime/adapter/coordinator-bridge.js +1 -1
  64. package/dist/runtime/adapter/coordinator-bridge.js.map +1 -1
  65. package/dist/runtime/adapter/dom-event-bridge.d.ts +1 -2
  66. package/dist/runtime/adapter/dom-event-bridge.js +1 -1
  67. package/dist/runtime/adapter/dom-event-bridge.js.map +1 -1
  68. package/dist/runtime/adapter/framework-error-bridge.d.ts +0 -1
  69. package/dist/runtime/adapter/framework-error-bridge.js.map +1 -1
  70. package/dist/runtime/adapter/instrumentation-bridge.d.ts +0 -1
  71. package/dist/runtime/adapter/instrumentation-bridge.js.map +1 -1
  72. package/dist/runtime/adapter/subscriber-fanout.d.ts +0 -1
  73. package/dist/runtime/adapter/subscriber-fanout.js.map +1 -1
  74. package/dist/runtime/catalog-registration.d.ts +12 -0
  75. package/dist/runtime/catalog-registration.js +54 -0
  76. package/dist/runtime/catalog-registration.js.map +1 -0
  77. package/dist/runtime/core/SectionEngineCore.d.ts +0 -1
  78. package/dist/runtime/core/SectionEngineCore.js.map +1 -1
  79. package/dist/runtime/core/cohort.d.ts +0 -1
  80. package/dist/runtime/core/cohort.js.map +1 -1
  81. package/dist/runtime/core/engine-input.d.ts +0 -1
  82. package/dist/runtime/core/engine-input.js.map +1 -1
  83. package/dist/runtime/core/engine-output.d.ts +2 -3
  84. package/dist/runtime/core/engine-output.js +2 -2
  85. package/dist/runtime/core/engine-output.js.map +1 -1
  86. package/dist/runtime/core/engine-readiness.d.ts +2 -3
  87. package/dist/runtime/core/engine-readiness.js.map +1 -1
  88. package/dist/runtime/core/engine-resolver.d.ts +13 -42
  89. package/dist/runtime/core/engine-resolver.js +19 -76
  90. package/dist/runtime/core/engine-resolver.js.map +1 -1
  91. package/dist/runtime/core/engine-stage-derivation.d.ts +0 -1
  92. package/dist/runtime/core/engine-stage-derivation.js.map +1 -1
  93. package/dist/runtime/core/engine-state.d.ts +0 -1
  94. package/dist/runtime/core/engine-state.js.map +1 -1
  95. package/dist/runtime/core/engine-transition.d.ts +1 -2
  96. package/dist/runtime/core/engine-transition.js +1 -1
  97. package/dist/runtime/core/engine-transition.js.map +1 -1
  98. package/dist/runtime/engine-context.d.ts +0 -1
  99. package/dist/runtime/engine-context.js.map +1 -1
  100. package/dist/runtime/engine.d.ts +1 -2
  101. package/dist/runtime/engine.js.map +1 -1
  102. package/dist/runtime/internal.d.ts +0 -1
  103. package/dist/runtime/internal.js.map +1 -1
  104. package/dist/runtime/registration-events.d.ts +0 -1
  105. package/dist/runtime/registration-events.js.map +1 -1
  106. package/dist/runtime/runtime-id.d.ts +0 -1
  107. package/dist/runtime/runtime-id.js.map +1 -1
  108. package/dist/runtime/section-runtime-engine-host-context.d.ts +22 -16
  109. package/dist/runtime/section-runtime-engine-host-context.js +10 -10
  110. package/dist/runtime/section-runtime-engine-host-context.js.map +1 -1
  111. package/dist/runtime/session-event-emitter-policy.d.ts +0 -1
  112. package/dist/runtime/session-event-emitter-policy.js.map +1 -1
  113. package/dist/runtime/stage-emit-gate.d.ts +4 -5
  114. package/dist/runtime/stage-emit-gate.js +3 -3
  115. package/dist/runtime/stage-emit-gate.js.map +1 -1
  116. package/dist/runtime/tool-host-contract.d.ts +0 -1
  117. package/dist/runtime/tool-host-contract.js.map +1 -1
  118. package/dist/services/AccessibilityCatalogResolver.d.ts +23 -1
  119. package/dist/services/AccessibilityCatalogResolver.js +200 -28
  120. package/dist/services/AccessibilityCatalogResolver.js.map +1 -1
  121. package/dist/services/ContextVariableStore.d.ts +0 -1
  122. package/dist/services/ContextVariableStore.js.map +1 -1
  123. package/dist/services/ElementToolStateStore.d.ts +0 -1
  124. package/dist/services/ElementToolStateStore.js.map +1 -1
  125. package/dist/services/HighlightCoordinator.d.ts +25 -1
  126. package/dist/services/HighlightCoordinator.js +125 -0
  127. package/dist/services/HighlightCoordinator.js.map +1 -1
  128. package/dist/services/I18nService.d.ts +0 -1
  129. package/dist/services/I18nService.js.map +1 -1
  130. package/dist/services/RangeSerializer.d.ts +0 -1
  131. package/dist/services/RangeSerializer.js.map +1 -1
  132. package/dist/services/SSMLExtractor.d.ts +16 -2
  133. package/dist/services/SSMLExtractor.js +86 -7
  134. package/dist/services/SSMLExtractor.js.map +1 -1
  135. package/dist/services/TTSService.d.ts +30 -5
  136. package/dist/services/TTSService.js +652 -159
  137. package/dist/services/TTSService.js.map +1 -1
  138. package/dist/services/ThemeProvider.d.ts +0 -1
  139. package/dist/services/ThemeProvider.js.map +1 -1
  140. package/dist/services/ToolConfigResolver.d.ts +0 -1
  141. package/dist/services/ToolConfigResolver.js.map +1 -1
  142. package/dist/services/ToolCoordinator.d.ts +0 -1
  143. package/dist/services/ToolCoordinator.js.map +1 -1
  144. package/dist/services/ToolRegistry.d.ts +2 -3
  145. package/dist/services/ToolRegistry.js +1 -1
  146. package/dist/services/ToolRegistry.js.map +1 -1
  147. package/dist/services/ToolkitCoordinator.d.ts +16 -74
  148. package/dist/services/ToolkitCoordinator.js +34 -113
  149. package/dist/services/ToolkitCoordinator.js.map +1 -1
  150. package/dist/services/create-tools-config.d.ts +0 -1
  151. package/dist/services/create-tools-config.js.map +1 -1
  152. package/dist/services/createDefaultToolRegistry.d.ts +0 -1
  153. package/dist/services/createDefaultToolRegistry.js.map +1 -1
  154. package/dist/services/defaultPersonalNeedsProfile.d.ts +0 -1
  155. package/dist/services/defaultPersonalNeedsProfile.js.map +1 -1
  156. package/dist/services/framework-error-bus.d.ts +0 -1
  157. package/dist/services/framework-error-bus.js.map +1 -1
  158. package/dist/services/framework-error.d.ts +0 -1
  159. package/dist/services/framework-error.js.map +1 -1
  160. package/dist/services/interfaces.d.ts +20 -3
  161. package/dist/services/interfaces.js.map +1 -1
  162. package/dist/services/pnp-standard-features.d.ts +0 -1
  163. package/dist/services/pnp-standard-features.js.map +1 -1
  164. package/dist/services/section-controller-types.d.ts +0 -1
  165. package/dist/services/section-controller-types.js.map +1 -1
  166. package/dist/services/tool-config-defaults.d.ts +0 -1
  167. package/dist/services/tool-config-defaults.js.map +1 -1
  168. package/dist/services/tool-config-validation.d.ts +1 -2
  169. package/dist/services/tool-config-validation.js +7 -7
  170. package/dist/services/tool-config-validation.js.map +1 -1
  171. package/dist/services/tool-context.d.ts +0 -1
  172. package/dist/services/tool-context.js.map +1 -1
  173. package/dist/services/tool-instance-id.d.ts +0 -1
  174. package/dist/services/tool-instance-id.js +1 -1
  175. package/dist/services/tool-instance-id.js.map +1 -1
  176. package/dist/services/tool-providers/DesmosToolProvider.d.ts +0 -1
  177. package/dist/services/tool-providers/DesmosToolProvider.js.map +1 -1
  178. package/dist/services/tool-providers/TTSToolProvider.d.ts +0 -1
  179. package/dist/services/tool-providers/TTSToolProvider.js +3 -3
  180. package/dist/services/tool-providers/TTSToolProvider.js.map +1 -1
  181. package/dist/services/tool-providers/ToolProviderApi.d.ts +0 -1
  182. package/dist/services/tool-providers/ToolProviderApi.js.map +1 -1
  183. package/dist/services/tool-providers/ToolProviderRegistry.d.ts +0 -1
  184. package/dist/services/tool-providers/ToolProviderRegistry.js.map +1 -1
  185. package/dist/services/tool-providers/index.d.ts +0 -1
  186. package/dist/services/tool-providers/index.js.map +1 -1
  187. package/dist/services/toolbar-items.d.ts +0 -1
  188. package/dist/services/toolbar-items.js.map +1 -1
  189. package/dist/services/tools-config-normalizer.d.ts +13 -3
  190. package/dist/services/tools-config-normalizer.js +3 -8
  191. package/dist/services/tools-config-normalizer.js.map +1 -1
  192. package/dist/services/tts/browser-provider.d.ts +0 -1
  193. package/dist/services/tts/browser-provider.js +2 -0
  194. package/dist/services/tts/browser-provider.js.map +1 -1
  195. package/dist/services/tts/catalog-span-alignment.d.ts +39 -0
  196. package/dist/services/tts/catalog-span-alignment.js +300 -0
  197. package/dist/services/tts/catalog-span-alignment.js.map +1 -0
  198. package/dist/services/tts/generated-speech/assemble-plan.d.ts +33 -0
  199. package/dist/services/tts/generated-speech/assemble-plan.js +111 -0
  200. package/dist/services/tts/generated-speech/assemble-plan.js.map +1 -0
  201. package/dist/services/tts/generated-speech/dom/build-dom-plan.d.ts +25 -0
  202. package/dist/services/tts/generated-speech/dom/build-dom-plan.js +66 -0
  203. package/dist/services/tts/generated-speech/dom/build-dom-plan.js.map +1 -0
  204. package/dist/services/tts/generated-speech/dom/to-chunk-inputs.d.ts +19 -0
  205. package/dist/services/tts/generated-speech/dom/to-chunk-inputs.js +71 -0
  206. package/dist/services/tts/generated-speech/dom/to-chunk-inputs.js.map +1 -0
  207. package/dist/services/tts/generated-speech/dom/types.d.ts +37 -0
  208. package/dist/services/tts/generated-speech/dom/types.js +2 -0
  209. package/dist/services/tts/generated-speech/dom/types.js.map +1 -0
  210. package/dist/services/tts/generated-speech/index.d.ts +17 -0
  211. package/dist/services/tts/generated-speech/index.js +17 -0
  212. package/dist/services/tts/generated-speech/index.js.map +1 -0
  213. package/dist/services/tts/generated-speech/math-speech-cache.d.ts +15 -0
  214. package/dist/services/tts/generated-speech/math-speech-cache.js +78 -0
  215. package/dist/services/tts/generated-speech/math-speech-cache.js.map +1 -0
  216. package/dist/services/tts/generated-speech/types.d.ts +104 -0
  217. package/dist/services/tts/generated-speech/types.js +18 -0
  218. package/dist/services/tts/generated-speech/types.js.map +1 -0
  219. package/dist/services/tts/highlight-pipeline/boundary-normalizer.d.ts +2 -0
  220. package/dist/services/tts/highlight-pipeline/boundary-normalizer.js +106 -0
  221. package/dist/services/tts/highlight-pipeline/boundary-normalizer.js.map +1 -0
  222. package/dist/services/tts/highlight-pipeline/create-highlight-plan.d.ts +6 -0
  223. package/dist/services/tts/highlight-pipeline/create-highlight-plan.js +217 -0
  224. package/dist/services/tts/highlight-pipeline/create-highlight-plan.js.map +1 -0
  225. package/dist/services/tts/highlight-pipeline/highlight-policy.d.ts +2 -0
  226. package/dist/services/tts/highlight-pipeline/highlight-policy.js +32 -0
  227. package/dist/services/tts/highlight-pipeline/highlight-policy.js.map +1 -0
  228. package/dist/services/tts/highlight-pipeline/index.d.ts +9 -0
  229. package/dist/services/tts/highlight-pipeline/index.js +9 -0
  230. package/dist/services/tts/highlight-pipeline/index.js.map +1 -0
  231. package/dist/services/tts/highlight-pipeline/math-semantic-resolver.d.ts +3 -0
  232. package/dist/services/tts/highlight-pipeline/math-semantic-resolver.js +32 -0
  233. package/dist/services/tts/highlight-pipeline/math-semantic-resolver.js.map +1 -0
  234. package/dist/services/tts/highlight-pipeline/normalize-speech-chunks.d.ts +29 -0
  235. package/dist/services/tts/highlight-pipeline/normalize-speech-chunks.js +44 -0
  236. package/dist/services/tts/highlight-pipeline/normalize-speech-chunks.js.map +1 -0
  237. package/dist/services/tts/highlight-pipeline/prose-boundary-resolver.d.ts +2 -0
  238. package/dist/services/tts/highlight-pipeline/prose-boundary-resolver.js +20 -0
  239. package/dist/services/tts/highlight-pipeline/prose-boundary-resolver.js.map +1 -0
  240. package/dist/services/tts/highlight-pipeline/readable-region.d.ts +1 -0
  241. package/dist/services/tts/highlight-pipeline/readable-region.js +19 -0
  242. package/dist/services/tts/highlight-pipeline/readable-region.js.map +1 -0
  243. package/dist/services/tts/highlight-pipeline/rendered-math-target-resolver.d.ts +6 -0
  244. package/dist/services/tts/highlight-pipeline/rendered-math-target-resolver.js +198 -0
  245. package/dist/services/tts/highlight-pipeline/rendered-math-target-resolver.js.map +1 -0
  246. package/dist/services/tts/highlight-pipeline/types.d.ts +72 -0
  247. package/dist/services/tts/highlight-pipeline/types.js +2 -0
  248. package/dist/services/tts/highlight-pipeline/types.js.map +1 -0
  249. package/dist/services/tts/highlight-pipeline/visible-map-range.d.ts +2 -0
  250. package/dist/services/tts/highlight-pipeline/visible-map-range.js +22 -0
  251. package/dist/services/tts/highlight-pipeline/visible-map-range.js.map +1 -0
  252. package/dist/services/tts/math-alignment/index.d.ts +30 -0
  253. package/dist/services/tts/math-alignment/index.js +66 -0
  254. package/dist/services/tts/math-alignment/index.js.map +1 -0
  255. package/dist/services/tts/math-alignment/mathml-tokenizer.d.ts +2 -0
  256. package/dist/services/tts/math-alignment/mathml-tokenizer.js +317 -0
  257. package/dist/services/tts/math-alignment/mathml-tokenizer.js.map +1 -0
  258. package/dist/services/tts/math-alignment/range-resolver.d.ts +10 -0
  259. package/dist/services/tts/math-alignment/range-resolver.js +13 -0
  260. package/dist/services/tts/math-alignment/range-resolver.js.map +1 -0
  261. package/dist/services/tts/math-alignment/sequence-aligner.d.ts +7 -0
  262. package/dist/services/tts/math-alignment/sequence-aligner.js +119 -0
  263. package/dist/services/tts/math-alignment/sequence-aligner.js.map +1 -0
  264. package/dist/services/tts/math-alignment/speech-tokenizer.d.ts +31 -0
  265. package/dist/services/tts/math-alignment/speech-tokenizer.js +143 -0
  266. package/dist/services/tts/math-alignment/speech-tokenizer.js.map +1 -0
  267. package/dist/services/tts/math-alignment/types.d.ts +58 -0
  268. package/dist/services/tts/math-alignment/types.js +2 -0
  269. package/dist/services/tts/math-alignment/types.js.map +1 -0
  270. package/dist/services/tts/math-aware-text-processing.d.ts +18 -0
  271. package/dist/services/tts/math-aware-text-processing.js +348 -0
  272. package/dist/services/tts/math-aware-text-processing.js.map +1 -0
  273. package/dist/services/tts/math-speech.d.ts +44 -0
  274. package/dist/services/tts/math-speech.js +147 -0
  275. package/dist/services/tts/math-speech.js.map +1 -0
  276. package/dist/services/tts/mathml-sanitization.d.ts +1 -0
  277. package/dist/services/tts/mathml-sanitization.js +170 -0
  278. package/dist/services/tts/mathml-sanitization.js.map +1 -0
  279. package/dist/services/tts/ssml/spoken-text.d.ts +33 -0
  280. package/dist/services/tts/ssml/spoken-text.js +159 -0
  281. package/dist/services/tts/ssml/spoken-text.js.map +1 -0
  282. package/dist/services/tts/text-processing.d.ts +3 -1
  283. package/dist/services/tts/text-processing.js +30 -4
  284. package/dist/services/tts/text-processing.js.map +1 -1
  285. package/dist/services/tts/text-segmentation.d.ts +0 -1
  286. package/dist/services/tts/text-segmentation.js.map +1 -1
  287. package/dist/services/tts/visual-line-ranges.d.ts +0 -1
  288. package/dist/services/tts/visual-line-ranges.js.map +1 -1
  289. package/dist/services/tts-control-events.d.ts +0 -1
  290. package/dist/services/tts-control-events.js.map +1 -1
  291. package/dist/services/tts-runtime-config.d.ts +17 -2
  292. package/dist/services/tts-runtime-config.js +11 -1
  293. package/dist/services/tts-runtime-config.js.map +1 -1
  294. package/dist/tools/calculators/desmos-provider.d.ts +0 -1
  295. package/dist/tools/calculators/desmos-provider.js.map +1 -1
  296. package/dist/tools/client.d.ts +0 -1
  297. package/dist/tools/client.js.map +1 -1
  298. package/dist/tools/default-tool-module-loaders.d.ts +0 -1
  299. package/dist/tools/default-tool-module-loaders.js.map +1 -1
  300. package/dist/tools/index.d.ts +0 -1
  301. package/dist/tools/index.js.map +1 -1
  302. package/dist/tools/library-loader.d.ts +0 -1
  303. package/dist/tools/library-loader.js.map +1 -1
  304. package/dist/tools/registrations/accessibility-tools.d.ts +0 -1
  305. package/dist/tools/registrations/accessibility-tools.js +0 -1
  306. package/dist/tools/registrations/accessibility-tools.js.map +1 -1
  307. package/dist/tools/registrations/calculator.d.ts +0 -1
  308. package/dist/tools/registrations/calculator.js +41 -2
  309. package/dist/tools/registrations/calculator.js.map +1 -1
  310. package/dist/tools/registrations/interaction-tools.d.ts +0 -1
  311. package/dist/tools/registrations/interaction-tools.js.map +1 -1
  312. package/dist/tools/registrations/measurement-tools.d.ts +0 -1
  313. package/dist/tools/registrations/measurement-tools.js.map +1 -1
  314. package/dist/tools/registrations/subject-specific-tools.d.ts +0 -1
  315. package/dist/tools/registrations/subject-specific-tools.js.map +1 -1
  316. package/dist/tools/registrations/toolbar-registration-helpers.d.ts +0 -1
  317. package/dist/tools/registrations/toolbar-registration-helpers.js.map +1 -1
  318. package/dist/tools/registrations/tts.d.ts +0 -1
  319. package/dist/tools/registrations/tts.js.map +1 -1
  320. package/dist/tools/response-discovery.d.ts +0 -1
  321. package/dist/tools/response-discovery.js.map +1 -1
  322. package/dist/tools/tool-tag-map.d.ts +0 -1
  323. package/dist/tools/tool-tag-map.js +0 -1
  324. package/dist/tools/tool-tag-map.js.map +1 -1
  325. package/dist/tools/types.d.ts +0 -1
  326. package/dist/tools/types.js.map +1 -1
  327. package/dist/tools/variant-resolver.d.ts +0 -1
  328. package/dist/tools/variant-resolver.js.map +1 -1
  329. package/dist/utils/logger.d.ts +0 -1
  330. package/dist/utils/logger.js.map +1 -1
  331. package/package.json +8 -11
  332. package/dist/attempt/AssessmentSession.d.ts.map +0 -1
  333. package/dist/attempt/TestSession.d.ts.map +0 -1
  334. package/dist/attempt/adapters/activity-to-test-attempt-session.d.ts.map +0 -1
  335. package/dist/components/item-toolbar-element.d.ts.map +0 -1
  336. package/dist/components/pie-assessment-toolkit-element.d.ts.map +0 -1
  337. package/dist/components/section-toolbar-element.d.ts.map +0 -1
  338. package/dist/context/assessment-toolkit-context.d.ts.map +0 -1
  339. package/dist/context/runtime-context-consumer.d.ts.map +0 -1
  340. package/dist/index.d.ts.map +0 -1
  341. package/dist/item-loader.d.ts.map +0 -1
  342. package/dist/policy/core/PolicySource.d.ts.map +0 -1
  343. package/dist/policy/core/ToolPolicyEngine.d.ts.map +0 -1
  344. package/dist/policy/core/compose-decision.d.ts.map +0 -1
  345. package/dist/policy/core/decision-types.d.ts.map +0 -1
  346. package/dist/policy/core/engine-context.d.ts.map +0 -1
  347. package/dist/policy/core/pnp-policy-inputs.d.ts.map +0 -1
  348. package/dist/policy/core/policy-source-tag.d.ts.map +0 -1
  349. package/dist/policy/core/provenance.d.ts.map +0 -1
  350. package/dist/policy/engine.d.ts.map +0 -1
  351. package/dist/policy/internal.d.ts.map +0 -1
  352. package/dist/policy/sources/PnpPolicySource.d.ts.map +0 -1
  353. package/dist/runtime/RuntimeRegistry.d.ts.map +0 -1
  354. package/dist/runtime/SectionRuntimeEngine.d.ts.map +0 -1
  355. package/dist/runtime/adapter/SectionEngineAdapter.d.ts.map +0 -1
  356. package/dist/runtime/adapter/coordinator-bridge.d.ts.map +0 -1
  357. package/dist/runtime/adapter/dom-event-bridge.d.ts.map +0 -1
  358. package/dist/runtime/adapter/framework-error-bridge.d.ts.map +0 -1
  359. package/dist/runtime/adapter/instrumentation-bridge.d.ts.map +0 -1
  360. package/dist/runtime/adapter/subscriber-fanout.d.ts.map +0 -1
  361. package/dist/runtime/core/SectionEngineCore.d.ts.map +0 -1
  362. package/dist/runtime/core/cohort.d.ts.map +0 -1
  363. package/dist/runtime/core/engine-input.d.ts.map +0 -1
  364. package/dist/runtime/core/engine-output.d.ts.map +0 -1
  365. package/dist/runtime/core/engine-readiness.d.ts.map +0 -1
  366. package/dist/runtime/core/engine-resolver.d.ts.map +0 -1
  367. package/dist/runtime/core/engine-stage-derivation.d.ts.map +0 -1
  368. package/dist/runtime/core/engine-state.d.ts.map +0 -1
  369. package/dist/runtime/core/engine-transition.d.ts.map +0 -1
  370. package/dist/runtime/engine-context.d.ts.map +0 -1
  371. package/dist/runtime/engine.d.ts.map +0 -1
  372. package/dist/runtime/internal.d.ts.map +0 -1
  373. package/dist/runtime/registration-events.d.ts.map +0 -1
  374. package/dist/runtime/runtime-id.d.ts.map +0 -1
  375. package/dist/runtime/section-runtime-engine-host-context.d.ts.map +0 -1
  376. package/dist/runtime/session-event-emitter-policy.d.ts.map +0 -1
  377. package/dist/runtime/stage-emit-gate.d.ts.map +0 -1
  378. package/dist/runtime/tool-host-contract.d.ts.map +0 -1
  379. package/dist/services/AccessibilityCatalogResolver.d.ts.map +0 -1
  380. package/dist/services/ContextVariableStore.d.ts.map +0 -1
  381. package/dist/services/ElementToolStateStore.d.ts.map +0 -1
  382. package/dist/services/HighlightCoordinator.d.ts.map +0 -1
  383. package/dist/services/I18nService.d.ts.map +0 -1
  384. package/dist/services/PNPToolResolver.d.ts +0 -281
  385. package/dist/services/PNPToolResolver.d.ts.map +0 -1
  386. package/dist/services/PNPToolResolver.js +0 -514
  387. package/dist/services/PNPToolResolver.js.map +0 -1
  388. package/dist/services/RangeSerializer.d.ts.map +0 -1
  389. package/dist/services/SSMLExtractor.d.ts.map +0 -1
  390. package/dist/services/TTSService.d.ts.map +0 -1
  391. package/dist/services/ThemeProvider.d.ts.map +0 -1
  392. package/dist/services/ToolConfigResolver.d.ts.map +0 -1
  393. package/dist/services/ToolCoordinator.d.ts.map +0 -1
  394. package/dist/services/ToolRegistry.d.ts.map +0 -1
  395. package/dist/services/ToolkitCoordinator.d.ts.map +0 -1
  396. package/dist/services/create-tools-config.d.ts.map +0 -1
  397. package/dist/services/createDefaultToolRegistry.d.ts.map +0 -1
  398. package/dist/services/defaultPersonalNeedsProfile.d.ts.map +0 -1
  399. package/dist/services/framework-error-bus.d.ts.map +0 -1
  400. package/dist/services/framework-error.d.ts.map +0 -1
  401. package/dist/services/interfaces.d.ts.map +0 -1
  402. package/dist/services/pnp-provenance.d.ts +0 -167
  403. package/dist/services/pnp-provenance.d.ts.map +0 -1
  404. package/dist/services/pnp-provenance.js +0 -231
  405. package/dist/services/pnp-provenance.js.map +0 -1
  406. package/dist/services/pnp-standard-features.d.ts.map +0 -1
  407. package/dist/services/section-controller-types.d.ts.map +0 -1
  408. package/dist/services/tool-config-defaults.d.ts.map +0 -1
  409. package/dist/services/tool-config-validation.d.ts.map +0 -1
  410. package/dist/services/tool-context.d.ts.map +0 -1
  411. package/dist/services/tool-instance-id.d.ts.map +0 -1
  412. package/dist/services/tool-providers/DesmosToolProvider.d.ts.map +0 -1
  413. package/dist/services/tool-providers/TTSToolProvider.d.ts.map +0 -1
  414. package/dist/services/tool-providers/ToolProviderApi.d.ts.map +0 -1
  415. package/dist/services/tool-providers/ToolProviderRegistry.d.ts.map +0 -1
  416. package/dist/services/tool-providers/index.d.ts.map +0 -1
  417. package/dist/services/toolbar-items.d.ts.map +0 -1
  418. package/dist/services/tools-config-normalizer.d.ts.map +0 -1
  419. package/dist/services/tts/browser-provider.d.ts.map +0 -1
  420. package/dist/services/tts/text-processing.d.ts.map +0 -1
  421. package/dist/services/tts/text-segmentation.d.ts.map +0 -1
  422. package/dist/services/tts/visual-line-ranges.d.ts.map +0 -1
  423. package/dist/services/tts-control-events.d.ts.map +0 -1
  424. package/dist/services/tts-runtime-config.d.ts.map +0 -1
  425. package/dist/tools/calculators/desmos-provider.d.ts.map +0 -1
  426. package/dist/tools/client.d.ts.map +0 -1
  427. package/dist/tools/default-tool-module-loaders.d.ts.map +0 -1
  428. package/dist/tools/index.d.ts.map +0 -1
  429. package/dist/tools/library-loader.d.ts.map +0 -1
  430. package/dist/tools/registrations/accessibility-tools.d.ts.map +0 -1
  431. package/dist/tools/registrations/calculator.d.ts.map +0 -1
  432. package/dist/tools/registrations/interaction-tools.d.ts.map +0 -1
  433. package/dist/tools/registrations/measurement-tools.d.ts.map +0 -1
  434. package/dist/tools/registrations/subject-specific-tools.d.ts.map +0 -1
  435. package/dist/tools/registrations/toolbar-registration-helpers.d.ts.map +0 -1
  436. package/dist/tools/registrations/tts.d.ts.map +0 -1
  437. package/dist/tools/response-discovery.d.ts.map +0 -1
  438. package/dist/tools/tool-tag-map.d.ts.map +0 -1
  439. package/dist/tools/types.d.ts.map +0 -1
  440. package/dist/tools/variant-resolver.d.ts.map +0 -1
  441. package/dist/utils/logger.d.ts.map +0 -1
@@ -6,15 +6,15 @@ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require
6
6
  throw Error('Dynamic require of "' + x + '" is not supported');
7
7
  });
8
8
 
9
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/version.js
9
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/version.js
10
10
  var PUBLIC_VERSION = "5";
11
11
 
12
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/disclose-version.js
12
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/disclose-version.js
13
13
  if (typeof window !== "undefined") {
14
14
  ((window.__svelte ??= {}).v ??= new Set).add(PUBLIC_VERSION);
15
15
  }
16
16
 
17
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/constants.js
17
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/constants.js
18
18
  var EACH_ITEM_REACTIVE = 1;
19
19
  var EACH_INDEX_REACTIVE = 1 << 1;
20
20
  var EACH_IS_CONTROLLED = 1 << 2;
@@ -38,7 +38,7 @@ var HYDRATION_END = "]";
38
38
  var HYDRATION_ERROR = {};
39
39
  var ELEMENT_PRESERVE_ATTRIBUTE_CASE = 1 << 1;
40
40
  var ELEMENT_IS_INPUT = 1 << 2;
41
- var UNINITIALIZED = Symbol();
41
+ var UNINITIALIZED = Symbol("uninitialized");
42
42
  var FILENAME = Symbol("filename");
43
43
  var HMR = Symbol("hmr");
44
44
  var NAMESPACE_HTML = "http://www.w3.org/1999/xhtml";
@@ -47,7 +47,7 @@ var NAMESPACE_MATHML = "http://www.w3.org/1998/Math/MathML";
47
47
 
48
48
  // ../../node_modules/.bun/esm-env@1.2.2/node_modules/esm-env/true.js
49
49
  var true_default = true;
50
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/shared/utils.js
50
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/shared/utils.js
51
51
  var is_array = Array.isArray;
52
52
  var index_of = Array.prototype.indexOf;
53
53
  var includes = Array.prototype.includes;
@@ -76,7 +76,7 @@ function deferred() {
76
76
  return { promise, resolve, reject };
77
77
  }
78
78
 
79
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/constants.js
79
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/constants.js
80
80
  var DERIVED = 1 << 1;
81
81
  var EFFECT = 1 << 2;
82
82
  var RENDER_EFFECT = 1 << 3;
@@ -107,6 +107,11 @@ var STATE_SYMBOL = Symbol("$state");
107
107
  var LEGACY_PROPS = Symbol("legacy props");
108
108
  var LOADING_ATTR_SYMBOL = Symbol("");
109
109
  var PROXY_PATH_SYMBOL = Symbol("proxy path");
110
+ var ATTRIBUTES_CACHE = Symbol("attributes");
111
+ var CLASS_CACHE = Symbol("class");
112
+ var STYLE_CACHE = Symbol("style");
113
+ var TEXT_CACHE = Symbol("text");
114
+ var FORM_RESET_HANDLER = Symbol("form reset");
110
115
  var HMR_ANCHOR = Symbol("hmr anchor");
111
116
  var STALE_REACTION = new class StaleReactionError extends Error {
112
117
  name = "StaleReactionError";
@@ -116,7 +121,7 @@ var IS_XHTML = !!globalThis.document?.contentType && /* @__PURE__ */ globalThis.
116
121
  var TEXT_NODE = 3;
117
122
  var COMMENT_NODE = 8;
118
123
 
119
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/shared/errors.js
124
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/shared/errors.js
120
125
  function invariant_violation(message) {
121
126
  if (true_default) {
122
127
  const error = new Error(`invariant_violation
@@ -129,7 +134,7 @@ https://svelte.dev/e/invariant_violation`);
129
134
  }
130
135
  }
131
136
 
132
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/errors.js
137
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/errors.js
133
138
  function async_derived_orphan() {
134
139
  if (true_default) {
135
140
  const error = new Error(`async_derived_orphan
@@ -296,7 +301,7 @@ https://svelte.dev/e/svelte_boundary_reset_onerror`);
296
301
  }
297
302
  }
298
303
 
299
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/warnings.js
304
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/warnings.js
300
305
  var bold = "font-weight: bold";
301
306
  var normal = "font-weight: normal";
302
307
  function await_reactivity_loss(name) {
@@ -390,7 +395,7 @@ https://svelte.dev/e/svelte_boundary_reset_noop`, bold, normal);
390
395
  }
391
396
  }
392
397
 
393
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/hydration.js
398
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/hydration.js
394
399
  var hydrating = false;
395
400
  function set_hydrating(value) {
396
401
  hydrating = value;
@@ -453,7 +458,7 @@ function read_hydration_instruction(node) {
453
458
  return node.data;
454
459
  }
455
460
 
456
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/equality.js
461
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/equality.js
457
462
  function equals(value) {
458
463
  return value === this.v;
459
464
  }
@@ -464,12 +469,12 @@ function safe_equals(value) {
464
469
  return !safe_not_equal(value, this.v);
465
470
  }
466
471
 
467
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/flags/index.js
472
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/flags/index.js
468
473
  var async_mode_flag = false;
469
474
  var legacy_mode_flag = false;
470
475
  var tracing_mode_flag = false;
471
476
 
472
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dev/tracing.js
477
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dev/tracing.js
473
478
  var tracing_expressions = null;
474
479
  function tag(source, label) {
475
480
  source.label = label;
@@ -481,7 +486,7 @@ function tag_proxy(value, label) {
481
486
  return value;
482
487
  }
483
488
 
484
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/shared/dev.js
489
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/shared/dev.js
485
490
  function get_error(label) {
486
491
  const error = new Error;
487
492
  const stack = get_stack();
@@ -533,7 +538,7 @@ function invariant(condition, message) {
533
538
  invariant_violation(message);
534
539
  }
535
540
 
536
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/context.js
541
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/context.js
537
542
  var component_context = null;
538
543
  function set_component_context(context) {
539
544
  component_context = context;
@@ -585,7 +590,7 @@ function is_runes() {
585
590
  return !legacy_mode_flag || component_context !== null && component_context.l === null;
586
591
  }
587
592
 
588
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/task.js
593
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/task.js
589
594
  var micro_tasks = [];
590
595
  function run_micro_tasks() {
591
596
  var tasks = micro_tasks;
@@ -608,7 +613,7 @@ function flush_tasks() {
608
613
  }
609
614
  }
610
615
 
611
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/error-handling.js
616
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/error-handling.js
612
617
  var adjustments = new WeakMap;
613
618
  function handle_error(error) {
614
619
  var effect = active_effect;
@@ -681,7 +686,7 @@ function apply_adjustments(error) {
681
686
  }
682
687
  }
683
688
 
684
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/status.js
689
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/status.js
685
690
  var STATUS_MASK = ~(DIRTY | MAYBE_DIRTY | CLEAN);
686
691
  function set_signal_status(signal, status) {
687
692
  signal.f = signal.f & STATUS_MASK | status;
@@ -694,7 +699,7 @@ function update_derived_status(derived) {
694
699
  }
695
700
  }
696
701
 
697
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/utils.js
702
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/utils.js
698
703
  function clear_marked(deps) {
699
704
  if (deps === null)
700
705
  return;
@@ -716,10 +721,10 @@ function defer_effect(effect, dirty_effects, maybe_dirty_effects) {
716
721
  set_signal_status(effect, CLEAN);
717
722
  }
718
723
 
719
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/store.js
724
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/store.js
720
725
  var legacy_is_updating_store = false;
721
726
  var is_store_binding = false;
722
- var IS_UNMOUNTED = Symbol();
727
+ var IS_UNMOUNTED = Symbol("unmounted");
723
728
  function capture_store_binding(fn) {
724
729
  var previous_is_store_binding = is_store_binding;
725
730
  try {
@@ -730,8 +735,9 @@ function capture_store_binding(fn) {
730
735
  }
731
736
  }
732
737
 
733
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/batch.js
734
- var batches = new Set;
738
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/batch.js
739
+ var first_batch = null;
740
+ var last_batch = null;
735
741
  var current_batch = null;
736
742
  var previous_batch = null;
737
743
  var batch_values = null;
@@ -741,17 +747,21 @@ var is_processing = false;
741
747
  var collected_effects = null;
742
748
  var legacy_updates = null;
743
749
  var flush_count = 0;
744
- var source_stacks = true_default ? new Set : null;
750
+ var source_stacks = new Set;
745
751
  var uid = 1;
746
752
 
747
753
  class Batch {
748
754
  id = uid++;
755
+ #started = false;
756
+ linked = true;
757
+ #prev = null;
758
+ #next = null;
759
+ async_deriveds = new Map;
749
760
  current = new Map;
750
761
  previous = new Map;
751
762
  #commit_callbacks = new Set;
752
763
  #discard_callbacks = new Set;
753
- #fork_commit_callbacks = new Set;
754
- #pending = new Map;
764
+ #pending = 0;
755
765
  #blocking_pending = new Map;
756
766
  #deferred = null;
757
767
  #roots = [];
@@ -762,25 +772,30 @@ class Batch {
762
772
  #unskipped_branches = new Set;
763
773
  is_fork = false;
764
774
  #decrement_queued = false;
765
- #blockers = new Set;
775
+ constructor() {
776
+ if (last_batch === null) {
777
+ first_batch = last_batch = this;
778
+ } else {
779
+ last_batch.#next = this;
780
+ this.#prev = last_batch;
781
+ }
782
+ last_batch = this;
783
+ }
766
784
  #is_deferred() {
767
- return this.is_fork || this.#blocking_pending.size > 0;
768
- }
769
- #is_blocked() {
770
- for (const batch of this.#blockers) {
771
- for (const effect of batch.#blocking_pending.keys()) {
772
- var skipped = false;
773
- var e = effect;
774
- while (e.parent !== null) {
775
- if (this.#skipped_branches.has(e)) {
776
- skipped = true;
777
- break;
778
- }
779
- e = e.parent;
780
- }
781
- if (!skipped) {
782
- return true;
785
+ if (this.is_fork)
786
+ return true;
787
+ for (const effect of this.#blocking_pending.keys()) {
788
+ var e = effect;
789
+ var skipped = false;
790
+ while (e.parent !== null) {
791
+ if (this.#skipped_branches.has(e)) {
792
+ skipped = true;
793
+ break;
783
794
  }
795
+ e = e.parent;
796
+ }
797
+ if (!skipped) {
798
+ return true;
784
799
  }
785
800
  }
786
801
  return false;
@@ -807,21 +822,25 @@ class Batch {
807
822
  this.#unskipped_branches.add(effect);
808
823
  }
809
824
  #process() {
825
+ this.#started = true;
810
826
  if (flush_count++ > 1000) {
811
- batches.delete(this);
827
+ this.#unlink();
812
828
  infinite_loop_guard();
813
829
  }
814
- if (!this.#is_deferred()) {
815
- for (const e of this.#dirty_effects) {
816
- this.#maybe_dirty_effects.delete(e);
817
- set_signal_status(e, DIRTY);
818
- this.schedule(e);
819
- }
820
- for (const e of this.#maybe_dirty_effects) {
821
- set_signal_status(e, MAYBE_DIRTY);
822
- this.schedule(e);
830
+ if (true_default) {
831
+ for (const value of this.current.keys()) {
832
+ source_stacks.add(value);
823
833
  }
824
834
  }
835
+ for (const e of this.#dirty_effects) {
836
+ this.#maybe_dirty_effects.delete(e);
837
+ set_signal_status(e, DIRTY);
838
+ this.schedule(e);
839
+ }
840
+ for (const e of this.#maybe_dirty_effects) {
841
+ set_signal_status(e, MAYBE_DIRTY);
842
+ this.schedule(e);
843
+ }
825
844
  const roots = this.#roots;
826
845
  this.#roots = [];
827
846
  this.apply();
@@ -833,6 +852,8 @@ class Batch {
833
852
  this.#traverse(root, effects, render_effects);
834
853
  } catch (e) {
835
854
  reset_all(root);
855
+ if (!this.#is_deferred())
856
+ this.discard();
836
857
  throw e;
837
858
  }
838
859
  }
@@ -845,44 +866,53 @@ class Batch {
845
866
  }
846
867
  collected_effects = null;
847
868
  legacy_updates = null;
848
- if (this.#is_deferred() || this.#is_blocked()) {
869
+ if (this.#is_deferred()) {
849
870
  this.#defer_effects(render_effects);
850
871
  this.#defer_effects(effects);
851
872
  for (const [e, t] of this.#skipped_branches) {
852
873
  reset_branch(e, t);
853
874
  }
854
- } else {
855
- if (this.#pending.size === 0) {
856
- batches.delete(this);
857
- }
858
- this.#dirty_effects.clear();
859
- this.#maybe_dirty_effects.clear();
860
- for (const fn of this.#commit_callbacks)
861
- fn(this);
862
- this.#commit_callbacks.clear();
863
- previous_batch = this;
864
- flush_queued_effects(render_effects);
865
- flush_queued_effects(effects);
866
- previous_batch = null;
867
- this.#deferred?.resolve();
875
+ if (updates.length > 0) {
876
+ current_batch.#process();
877
+ }
878
+ return;
879
+ }
880
+ const earlier_batch = this.#find_earlier_batch();
881
+ if (earlier_batch) {
882
+ this.#defer_effects(render_effects);
883
+ this.#defer_effects(effects);
884
+ earlier_batch.#merge(this);
885
+ return;
868
886
  }
887
+ this.#dirty_effects.clear();
888
+ this.#maybe_dirty_effects.clear();
889
+ for (const fn of this.#commit_callbacks)
890
+ fn(this);
891
+ this.#commit_callbacks.clear();
892
+ previous_batch = this;
893
+ flush_queued_effects(render_effects);
894
+ flush_queued_effects(effects);
895
+ previous_batch = null;
896
+ this.#deferred?.resolve();
869
897
  var next_batch = current_batch;
898
+ if (this.#pending === 0 && (this.#roots.length === 0 || next_batch !== null)) {
899
+ this.#unlink();
900
+ if (async_mode_flag) {
901
+ this.#commit();
902
+ current_batch = next_batch;
903
+ }
904
+ }
870
905
  if (this.#roots.length > 0) {
871
- const batch2 = next_batch ??= this;
872
- batch2.#roots.push(...this.#roots.filter((r) => !batch2.#roots.includes(r)));
906
+ if (next_batch !== null) {
907
+ const batch2 = next_batch;
908
+ batch2.#roots.push(...this.#roots.filter((r) => !batch2.#roots.includes(r)));
909
+ } else {
910
+ next_batch = this;
911
+ }
873
912
  }
874
913
  if (next_batch !== null) {
875
- batches.add(next_batch);
876
- if (true_default) {
877
- for (const source2 of this.current.keys()) {
878
- source_stacks.add(source2);
879
- }
880
- }
881
914
  next_batch.#process();
882
915
  }
883
- if (async_mode_flag && !batches.has(this)) {
884
- this.#commit();
885
- }
886
916
  }
887
917
  #traverse(root, effects, render_effects) {
888
918
  root.f ^= CLEAN;
@@ -920,6 +950,59 @@ class Batch {
920
950
  }
921
951
  }
922
952
  }
953
+ #find_earlier_batch() {
954
+ var batch = this.#prev;
955
+ while (batch !== null) {
956
+ if (!batch.is_fork) {
957
+ for (const [value, [, is_derived]] of this.current) {
958
+ if (batch.current.has(value) && !is_derived) {
959
+ return batch;
960
+ }
961
+ }
962
+ }
963
+ batch = batch.#prev;
964
+ }
965
+ return null;
966
+ }
967
+ #merge(batch) {
968
+ for (const [source2, value] of batch.current) {
969
+ if (!this.previous.has(source2) && batch.previous.has(source2)) {
970
+ this.previous.set(source2, batch.previous.get(source2));
971
+ }
972
+ this.current.set(source2, value);
973
+ }
974
+ for (const [effect, deferred2] of batch.async_deriveds) {
975
+ const d = this.async_deriveds.get(effect);
976
+ if (d)
977
+ deferred2.promise.then(d.resolve).catch(d.reject);
978
+ }
979
+ this.transfer_effects(batch.#dirty_effects, batch.#maybe_dirty_effects);
980
+ const mark = (value) => {
981
+ var reactions = value.reactions;
982
+ if (reactions === null)
983
+ return;
984
+ for (const reaction of reactions) {
985
+ var flags = reaction.f;
986
+ if ((flags & DERIVED) !== 0) {
987
+ mark(reaction);
988
+ } else {
989
+ var effect = reaction;
990
+ if (flags & (ASYNC | BLOCK_EFFECT) && !this.async_deriveds.has(effect)) {
991
+ this.#maybe_dirty_effects.delete(effect);
992
+ set_signal_status(effect, DIRTY);
993
+ this.schedule(effect);
994
+ }
995
+ }
996
+ }
997
+ };
998
+ for (const source2 of this.current.keys()) {
999
+ mark(source2);
1000
+ }
1001
+ this.oncommit(() => batch.discard());
1002
+ batch.#unlink();
1003
+ current_batch = this;
1004
+ this.#process();
1005
+ }
923
1006
  #defer_effects(effects) {
924
1007
  for (var i = 0;i < effects.length; i += 1) {
925
1008
  defer_effect(effects[i], this.#dirty_effects, this.#maybe_dirty_effects);
@@ -945,8 +1028,10 @@ class Batch {
945
1028
  batch_values = null;
946
1029
  }
947
1030
  flush() {
948
- var source_stacks2 = true_default ? new Set : null;
949
1031
  try {
1032
+ if (true_default) {
1033
+ source_stacks.clear();
1034
+ }
950
1035
  is_processing = true;
951
1036
  current_batch = this;
952
1037
  this.#process();
@@ -960,7 +1045,7 @@ class Batch {
960
1045
  batch_values = null;
961
1046
  old_values.clear();
962
1047
  if (true_default) {
963
- for (const source2 of source_stacks2) {
1048
+ for (const source2 of source_stacks) {
964
1049
  source2.updated = null;
965
1050
  }
966
1051
  }
@@ -970,14 +1055,14 @@ class Batch {
970
1055
  for (const fn of this.#discard_callbacks)
971
1056
  fn(this);
972
1057
  this.#discard_callbacks.clear();
973
- this.#fork_commit_callbacks.clear();
974
- batches.delete(this);
1058
+ this.#unlink();
1059
+ this.#deferred?.resolve();
975
1060
  }
976
1061
  register_created_effect(effect) {
977
1062
  this.#new_effects.push(effect);
978
1063
  }
979
1064
  #commit() {
980
- for (const batch of batches) {
1065
+ for (let batch = first_batch;batch !== null; batch = batch.#next) {
981
1066
  var is_earlier = batch.id < this.id;
982
1067
  var sources = [];
983
1068
  for (const [source3, [value, is_derived]] of this.current) {
@@ -991,13 +1076,22 @@ class Batch {
991
1076
  }
992
1077
  sources.push(source3);
993
1078
  }
994
- var others = [...batch.current.keys()].filter((s) => !this.current.has(s));
1079
+ if (is_earlier) {
1080
+ for (const [effect, deferred2] of this.async_deriveds) {
1081
+ const d = batch.async_deriveds.get(effect);
1082
+ if (d)
1083
+ deferred2.promise.then(d.resolve).catch(d.reject);
1084
+ }
1085
+ }
1086
+ if (!batch.#started)
1087
+ continue;
1088
+ var others = [...batch.current.keys()].filter((s) => !batch.current.get(s)[1] && !this.current.has(s));
995
1089
  if (others.length === 0) {
996
1090
  if (is_earlier) {
997
1091
  batch.discard();
998
1092
  }
999
1093
  } else if (sources.length > 0) {
1000
- if (true_default) {
1094
+ if (true_default && !batch.#decrement_queued) {
1001
1095
  invariant(batch.#roots.length === 0, "Batch has scheduled roots");
1002
1096
  }
1003
1097
  if (is_earlier) {
@@ -1018,18 +1112,25 @@ class Batch {
1018
1112
  mark_effects(source2, others, marked, checked);
1019
1113
  }
1020
1114
  checked = new Map;
1021
- var current_unequal = [...batch.current.keys()].filter((c) => this.current.has(c) ? this.current.get(c)[0] !== c : true);
1022
- for (const effect of this.#new_effects) {
1023
- if ((effect.f & (DESTROYED | INERT | EAGER_EFFECT)) === 0 && depends_on(effect, current_unequal, checked)) {
1024
- if ((effect.f & (ASYNC | BLOCK_EFFECT)) !== 0) {
1025
- set_signal_status(effect, DIRTY);
1026
- batch.schedule(effect);
1027
- } else {
1028
- batch.#dirty_effects.add(effect);
1115
+ var current_unequal = [...batch.current].filter(([c, v1]) => {
1116
+ const v2 = this.current.get(c);
1117
+ if (!v2)
1118
+ return true;
1119
+ return v2[0] !== v1[0] || v2[1] !== v1[1];
1120
+ }).map(([c]) => c);
1121
+ if (current_unequal.length > 0) {
1122
+ for (const effect of this.#new_effects) {
1123
+ if ((effect.f & (DESTROYED | INERT | EAGER_EFFECT)) === 0 && depends_on(effect, current_unequal, checked)) {
1124
+ if ((effect.f & (ASYNC | BLOCK_EFFECT)) !== 0) {
1125
+ set_signal_status(effect, DIRTY);
1126
+ batch.schedule(effect);
1127
+ } else {
1128
+ batch.#dirty_effects.add(effect);
1129
+ }
1029
1130
  }
1030
1131
  }
1031
1132
  }
1032
- if (batch.#roots.length > 0) {
1133
+ if (batch.#roots.length > 0 && !batch.#decrement_queued) {
1033
1134
  batch.apply();
1034
1135
  for (var root of batch.#roots) {
1035
1136
  batch.#traverse(root, [], []);
@@ -1039,31 +1140,16 @@ class Batch {
1039
1140
  batch.deactivate();
1040
1141
  }
1041
1142
  }
1042
- for (const batch of batches) {
1043
- if (batch.#blockers.has(this)) {
1044
- batch.#blockers.delete(this);
1045
- if (batch.#blockers.size === 0 && !batch.#is_deferred()) {
1046
- batch.activate();
1047
- batch.#process();
1048
- }
1049
- }
1050
- }
1051
1143
  }
1052
1144
  increment(blocking, effect) {
1053
- let pending_count = this.#pending.get(effect) ?? 0;
1054
- this.#pending.set(effect, pending_count + 1);
1145
+ this.#pending += 1;
1055
1146
  if (blocking) {
1056
1147
  let blocking_pending_count = this.#blocking_pending.get(effect) ?? 0;
1057
1148
  this.#blocking_pending.set(effect, blocking_pending_count + 1);
1058
1149
  }
1059
1150
  }
1060
- decrement(blocking, effect, skip) {
1061
- let pending_count = this.#pending.get(effect) ?? 0;
1062
- if (pending_count === 1) {
1063
- this.#pending.delete(effect);
1064
- } else {
1065
- this.#pending.set(effect, pending_count - 1);
1066
- }
1151
+ decrement(blocking, effect) {
1152
+ this.#pending -= 1;
1067
1153
  if (blocking) {
1068
1154
  let blocking_pending_count = this.#blocking_pending.get(effect) ?? 0;
1069
1155
  if (blocking_pending_count === 1) {
@@ -1072,12 +1158,14 @@ class Batch {
1072
1158
  this.#blocking_pending.set(effect, blocking_pending_count - 1);
1073
1159
  }
1074
1160
  }
1075
- if (this.#decrement_queued || skip)
1161
+ if (this.#decrement_queued)
1076
1162
  return;
1077
1163
  this.#decrement_queued = true;
1078
1164
  queue_micro_task(() => {
1079
1165
  this.#decrement_queued = false;
1080
- this.flush();
1166
+ if (this.linked) {
1167
+ this.flush();
1168
+ }
1081
1169
  });
1082
1170
  }
1083
1171
  transfer_effects(dirty_effects, maybe_dirty_effects) {
@@ -1096,36 +1184,24 @@ class Batch {
1096
1184
  ondiscard(fn) {
1097
1185
  this.#discard_callbacks.add(fn);
1098
1186
  }
1099
- on_fork_commit(fn) {
1100
- this.#fork_commit_callbacks.add(fn);
1101
- }
1102
- run_fork_commit_callbacks() {
1103
- for (const fn of this.#fork_commit_callbacks)
1104
- fn(this);
1105
- this.#fork_commit_callbacks.clear();
1106
- }
1107
1187
  settled() {
1108
1188
  return (this.#deferred ??= deferred()).promise;
1109
1189
  }
1110
1190
  static ensure() {
1111
1191
  if (current_batch === null) {
1112
1192
  const batch = current_batch = new Batch;
1113
- if (!is_processing) {
1114
- batches.add(current_batch);
1115
- if (!is_flushing_sync) {
1116
- queue_micro_task(() => {
1117
- if (current_batch !== batch) {
1118
- return;
1119
- }
1193
+ if (!is_processing && !is_flushing_sync) {
1194
+ queue_micro_task(() => {
1195
+ if (!batch.#started) {
1120
1196
  batch.flush();
1121
- });
1122
- }
1197
+ }
1198
+ });
1123
1199
  }
1124
1200
  }
1125
1201
  return current_batch;
1126
1202
  }
1127
1203
  apply() {
1128
- if (!async_mode_flag || !this.is_fork && batches.size === 1) {
1204
+ if (!async_mode_flag || !this.is_fork && this.#prev === null && this.#next === null) {
1129
1205
  batch_values = null;
1130
1206
  return;
1131
1207
  }
@@ -1133,22 +1209,21 @@ class Batch {
1133
1209
  for (const [source2, [value]] of this.current) {
1134
1210
  batch_values.set(source2, value);
1135
1211
  }
1136
- for (const batch of batches) {
1212
+ for (let batch = first_batch;batch !== null; batch = batch.#next) {
1137
1213
  if (batch === this || batch.is_fork)
1138
1214
  continue;
1139
1215
  var intersects = false;
1140
- var differs = false;
1141
1216
  if (batch.id < this.id) {
1142
1217
  for (const [source2, [, is_derived]] of batch.current) {
1143
1218
  if (is_derived)
1144
1219
  continue;
1145
- intersects ||= this.current.has(source2);
1146
- differs ||= !this.current.has(source2);
1220
+ if (this.current.has(source2)) {
1221
+ intersects = true;
1222
+ break;
1223
+ }
1147
1224
  }
1148
1225
  }
1149
- if (intersects && differs) {
1150
- this.#blockers.add(batch);
1151
- } else {
1226
+ if (!intersects) {
1152
1227
  for (const [source2, previous] of batch.previous) {
1153
1228
  if (!batch_values.has(source2)) {
1154
1229
  batch_values.set(source2, previous);
@@ -1183,6 +1258,23 @@ class Batch {
1183
1258
  }
1184
1259
  this.#roots.push(e);
1185
1260
  }
1261
+ #unlink() {
1262
+ if (!this.linked)
1263
+ return;
1264
+ var prev = this.#prev;
1265
+ var next2 = this.#next;
1266
+ if (prev === null) {
1267
+ first_batch = next2;
1268
+ } else {
1269
+ prev.#next = next2;
1270
+ }
1271
+ if (next2 === null) {
1272
+ last_batch = prev;
1273
+ } else {
1274
+ next2.#prev = prev;
1275
+ }
1276
+ this.linked = false;
1277
+ }
1186
1278
  }
1187
1279
  function flushSync(fn) {
1188
1280
  var was_flushing_sync = is_flushing_sync;
@@ -1312,6 +1404,7 @@ function depends_on(reaction, sources, checked) {
1312
1404
  function schedule_effect(effect) {
1313
1405
  current_batch.schedule(effect);
1314
1406
  }
1407
+ var version_map = new Map;
1315
1408
  function reset_branch(effect, tracked) {
1316
1409
  if ((effect.f & BRANCH_EFFECT) !== 0 && (effect.f & CLEAN) !== 0) {
1317
1410
  return;
@@ -1337,7 +1430,7 @@ function reset_all(effect) {
1337
1430
  }
1338
1431
  }
1339
1432
 
1340
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/reactivity/create-subscriber.js
1433
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/reactivity/create-subscriber.js
1341
1434
  function createSubscriber(start) {
1342
1435
  let subscribers = 0;
1343
1436
  let version = source(0);
@@ -1368,7 +1461,7 @@ function createSubscriber(start) {
1368
1461
  };
1369
1462
  }
1370
1463
 
1371
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/blocks/boundary.js
1464
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/blocks/boundary.js
1372
1465
  var flags = EFFECT_TRANSPARENT | EFFECT_PRESERVED;
1373
1466
  function boundary(node, props, children, transform_error) {
1374
1467
  new Boundary(node, props, children, transform_error);
@@ -1574,7 +1667,7 @@ class Boundary {
1574
1667
  current_batch.skip_effect(this.#pending_effect);
1575
1668
  if (this.#failed_effect)
1576
1669
  current_batch.skip_effect(this.#failed_effect);
1577
- current_batch.on_fork_commit(() => {
1670
+ current_batch.oncommit(() => {
1578
1671
  this.#handle_error(error);
1579
1672
  });
1580
1673
  } else {
@@ -1662,7 +1755,7 @@ class Boundary {
1662
1755
  }
1663
1756
  }
1664
1757
 
1665
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/async.js
1758
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/async.js
1666
1759
  function flatten(blockers, sync, async, fn) {
1667
1760
  const d = is_runes() ? derived : derived_safe_equal;
1668
1761
  var pending = blockers.filter((b) => !b.settled);
@@ -1674,23 +1767,24 @@ function flatten(blockers, sync, async, fn) {
1674
1767
  var restore = capture();
1675
1768
  var blocker_promise = pending.length === 1 ? pending[0].promise : pending.length > 1 ? Promise.all(pending.map((b) => b.promise)) : null;
1676
1769
  function finish(values) {
1770
+ if ((parent.f & DESTROYED) !== 0) {
1771
+ return;
1772
+ }
1677
1773
  restore();
1678
1774
  try {
1679
1775
  fn(values);
1680
1776
  } catch (error) {
1681
- if ((parent.f & DESTROYED) === 0) {
1682
- invoke_error_boundary(error, parent);
1683
- }
1777
+ invoke_error_boundary(error, parent);
1684
1778
  }
1685
1779
  unset_context();
1686
1780
  }
1781
+ var decrement_pending = increment_pending();
1687
1782
  if (async.length === 0) {
1688
- blocker_promise.then(() => finish(sync.map(d)));
1783
+ blocker_promise.then(() => finish(sync.map(d))).finally(decrement_pending);
1689
1784
  return;
1690
1785
  }
1691
- var decrement_pending = increment_pending();
1692
1786
  function run() {
1693
- Promise.all(async.map((expression) => async_derived(expression))).then((result) => finish([...sync.map(d), ...result])).catch((error) => invoke_error_boundary(error, parent)).finally(() => decrement_pending());
1787
+ Promise.all(async.map((expression) => async_derived(expression))).then((result) => finish([...sync.map(d), ...result])).catch((error) => invoke_error_boundary(error, parent)).finally(decrement_pending);
1694
1788
  }
1695
1789
  if (blocker_promise) {
1696
1790
  blocker_promise.then(() => {
@@ -1739,16 +1833,16 @@ function increment_pending() {
1739
1833
  var effect = active_effect;
1740
1834
  var boundary2 = effect.b;
1741
1835
  var batch = current_batch;
1742
- var blocking = boundary2.is_rendered();
1743
- boundary2.update_pending_count(1, batch);
1836
+ var blocking = !!boundary2?.is_rendered();
1837
+ boundary2?.update_pending_count(1, batch);
1744
1838
  batch.increment(blocking, effect);
1745
- return (skip = false) => {
1746
- boundary2.update_pending_count(-1, batch);
1747
- batch.decrement(blocking, effect, skip);
1839
+ return () => {
1840
+ boundary2?.update_pending_count(-1, batch);
1841
+ batch.decrement(blocking, effect);
1748
1842
  };
1749
1843
  }
1750
1844
 
1751
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/deriveds.js
1845
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/deriveds.js
1752
1846
  var reactivity_loss_tracker = null;
1753
1847
  function set_reactivity_loss_tracker(v) {
1754
1848
  reactivity_loss_tracker = v;
@@ -1778,6 +1872,7 @@ function derived(fn) {
1778
1872
  }
1779
1873
  return signal;
1780
1874
  }
1875
+ var OBSOLETE = Symbol("obsolete");
1781
1876
  function async_derived(fn, label, location) {
1782
1877
  let parent = active_effect;
1783
1878
  if (parent === null) {
@@ -1786,9 +1881,9 @@ function async_derived(fn, label, location) {
1786
1881
  var promise = undefined;
1787
1882
  var signal = source(UNINITIALIZED);
1788
1883
  if (true_default)
1789
- signal.label = label;
1884
+ signal.label = label ?? fn.toString();
1790
1885
  var should_suspend = !active_reaction;
1791
- var deferreds = new Map;
1886
+ var deferreds = new Set;
1792
1887
  async_effect(() => {
1793
1888
  var effect = active_effect;
1794
1889
  if (true_default) {
@@ -1797,7 +1892,10 @@ function async_derived(fn, label, location) {
1797
1892
  var d = deferred();
1798
1893
  promise = d.promise;
1799
1894
  try {
1800
- Promise.resolve(fn()).then(d.resolve, d.reject).finally(unset_context);
1895
+ Promise.resolve(fn()).then(d.resolve, (e) => {
1896
+ if (e !== STALE_REACTION)
1897
+ d.reject(e);
1898
+ }).finally(unset_context);
1801
1899
  } catch (error) {
1802
1900
  d.reject(error);
1803
1901
  unset_context();
@@ -1822,28 +1920,24 @@ function async_derived(fn, label, location) {
1822
1920
  if ((effect.f & REACTION_RAN) !== 0) {
1823
1921
  var decrement_pending = increment_pending();
1824
1922
  }
1825
- if (parent.b.is_rendered()) {
1826
- deferreds.get(batch)?.reject(STALE_REACTION);
1827
- deferreds.delete(batch);
1923
+ if (parent.b?.is_rendered()) {
1924
+ batch.async_deriveds.get(effect)?.reject(OBSOLETE);
1828
1925
  } else {
1829
1926
  for (const d2 of deferreds.values()) {
1830
- d2.reject(STALE_REACTION);
1927
+ d2.reject(OBSOLETE);
1831
1928
  }
1832
- deferreds.clear();
1833
1929
  }
1834
- deferreds.set(batch, d);
1930
+ deferreds.add(d);
1931
+ batch.async_deriveds.set(effect, d);
1835
1932
  }
1836
1933
  const handler = (value, error = undefined) => {
1837
1934
  if (true_default) {
1838
1935
  reactivity_loss_tracker = null;
1839
1936
  }
1840
- if (decrement_pending) {
1841
- var skip = error === STALE_REACTION;
1842
- decrement_pending(skip);
1843
- }
1844
- if (error === STALE_REACTION || (effect.f & DESTROYED) !== 0) {
1937
+ decrement_pending?.();
1938
+ deferreds.delete(d);
1939
+ if (error === OBSOLETE)
1845
1940
  return;
1846
- }
1847
1941
  batch.activate();
1848
1942
  if (error) {
1849
1943
  signal.f |= ERROR_VALUE;
@@ -1852,30 +1946,24 @@ function async_derived(fn, label, location) {
1852
1946
  if ((signal.f & ERROR_VALUE) !== 0) {
1853
1947
  signal.f ^= ERROR_VALUE;
1854
1948
  }
1855
- internal_set(signal, value);
1856
- for (const [b, d2] of deferreds) {
1857
- deferreds.delete(b);
1858
- if (b === batch)
1859
- break;
1860
- d2.reject(STALE_REACTION);
1861
- }
1862
- if (true_default && location !== undefined) {
1949
+ if (true_default && location !== undefined && !signal.equals(value)) {
1863
1950
  recent_async_deriveds.add(signal);
1864
1951
  setTimeout(() => {
1865
- if (recent_async_deriveds.has(signal)) {
1952
+ if (recent_async_deriveds.has(signal) && (effect.f & DESTROYED) === 0) {
1866
1953
  await_waterfall(signal.label, location);
1867
1954
  recent_async_deriveds.delete(signal);
1868
1955
  }
1869
1956
  });
1870
1957
  }
1958
+ internal_set(signal, value);
1871
1959
  }
1872
1960
  batch.deactivate();
1873
1961
  };
1874
1962
  d.promise.then(handler, (e) => handler(null, e || "unknown"));
1875
1963
  });
1876
1964
  teardown(() => {
1877
- for (const d of deferreds.values()) {
1878
- d.reject(STALE_REACTION);
1965
+ for (const d of deferreds) {
1966
+ d.reject(OBSOLETE);
1879
1967
  }
1880
1968
  });
1881
1969
  if (true_default) {
@@ -1920,7 +2008,7 @@ function execute_derived(derived2) {
1920
2008
  var value;
1921
2009
  var prev_active_effect = active_effect;
1922
2010
  var parent = derived2.parent;
1923
- if (!is_destroying_effect && parent !== null && (parent.f & (DESTROYED | INERT)) !== 0) {
2011
+ if (!is_destroying_effect && parent !== null && derived2.v !== UNINITIALIZED && (parent.f & (DESTROYED | INERT)) !== 0) {
1924
2012
  derived_inert();
1925
2013
  return derived2.v;
1926
2014
  }
@@ -1959,6 +2047,7 @@ function update_derived(derived2) {
1959
2047
  if (!current_batch?.is_fork || derived2.deps === null) {
1960
2048
  if (current_batch !== null) {
1961
2049
  current_batch.capture(derived2, value, true);
2050
+ previous_batch?.capture(derived2, value, true);
1962
2051
  } else {
1963
2052
  derived2.v = value;
1964
2053
  }
@@ -1986,7 +2075,8 @@ function freeze_derived_effects(derived2) {
1986
2075
  if (e.teardown || e.ac) {
1987
2076
  e.teardown?.();
1988
2077
  e.ac?.abort(STALE_REACTION);
1989
- e.teardown = noop;
2078
+ if (e.fn !== null)
2079
+ e.teardown = noop;
1990
2080
  e.ac = null;
1991
2081
  remove_reactions(e, 0);
1992
2082
  destroy_effect_children(e);
@@ -1997,13 +2087,13 @@ function unfreeze_derived_effects(derived2) {
1997
2087
  if (derived2.effects === null)
1998
2088
  return;
1999
2089
  for (const e of derived2.effects) {
2000
- if (e.teardown) {
2090
+ if (e.teardown && e.fn !== null) {
2001
2091
  update_effect(e);
2002
2092
  }
2003
2093
  }
2004
2094
  }
2005
2095
 
2006
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/sources.js
2096
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/sources.js
2007
2097
  var eager_effects = new Set;
2008
2098
  var old_values = new Map;
2009
2099
  function set_eager_effects(v) {
@@ -2046,7 +2136,7 @@ function mutable_source(initial_value, immutable = false, trackable = true) {
2046
2136
  return s;
2047
2137
  }
2048
2138
  function set(source2, value, should_proxy = false) {
2049
- if (active_reaction !== null && (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && (current_sources === null || !includes.call(current_sources, source2))) {
2139
+ if (active_reaction !== null && (!untracking || (active_reaction.f & EAGER_EFFECT) !== 0) && is_runes() && (active_reaction.f & (DERIVED | BLOCK_EFFECT | ASYNC | EAGER_EFFECT)) !== 0 && (current_sources === null || !current_sources.has(source2))) {
2050
2140
  state_unsafe_mutation();
2051
2141
  }
2052
2142
  let new_value = should_proxy ? proxy(value) : value;
@@ -2111,7 +2201,13 @@ function flush_eager_effects() {
2111
2201
  if ((effect.f & CLEAN) !== 0) {
2112
2202
  set_signal_status(effect, MAYBE_DIRTY);
2113
2203
  }
2114
- if (is_dirty(effect)) {
2204
+ let dirty;
2205
+ try {
2206
+ dirty = is_dirty(effect);
2207
+ } catch {
2208
+ dirty = true;
2209
+ }
2210
+ if (dirty) {
2115
2211
  update_effect(effect);
2116
2212
  }
2117
2213
  }
@@ -2131,19 +2227,17 @@ function mark_reactions(signal, status, updated_during_traversal) {
2131
2227
  var flags2 = reaction.f;
2132
2228
  if (!runes && reaction === active_effect)
2133
2229
  continue;
2134
- if (true_default && (flags2 & EAGER_EFFECT) !== 0) {
2135
- eager_effects.add(reaction);
2136
- continue;
2137
- }
2138
2230
  var not_dirty = (flags2 & DIRTY) === 0;
2139
2231
  if (not_dirty) {
2140
2232
  set_signal_status(reaction, status);
2141
2233
  }
2142
- if ((flags2 & DERIVED) !== 0) {
2234
+ if ((flags2 & EAGER_EFFECT) !== 0) {
2235
+ eager_effects.add(reaction);
2236
+ } else if ((flags2 & DERIVED) !== 0) {
2143
2237
  var derived2 = reaction;
2144
2238
  batch_values?.delete(derived2);
2145
2239
  if ((flags2 & WAS_MARKED) === 0) {
2146
- if (flags2 & CONNECTED) {
2240
+ if (flags2 & CONNECTED && (active_effect === null || (active_effect.f & REACTION_IS_UPDATING) === 0)) {
2147
2241
  reaction.f |= WAS_MARKED;
2148
2242
  }
2149
2243
  mark_reactions(derived2, MAYBE_DIRTY, updated_during_traversal);
@@ -2162,7 +2256,7 @@ function mark_reactions(signal, status, updated_during_traversal) {
2162
2256
  }
2163
2257
  }
2164
2258
 
2165
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/proxy.js
2259
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/proxy.js
2166
2260
  var regex_is_valid_identifier = /^[a-zA-Z_$][a-zA-Z_$0-9]*$/;
2167
2261
  function proxy(value) {
2168
2262
  if (typeof value !== "object" || value === null || STATE_SYMBOL in value) {
@@ -2425,7 +2519,7 @@ function inspectable_array(array) {
2425
2519
  });
2426
2520
  }
2427
2521
 
2428
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dev/equality.js
2522
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dev/equality.js
2429
2523
  function init_array_prototype_warnings() {
2430
2524
  const array_prototype2 = Array.prototype;
2431
2525
  const cleanup = Array.__svelte_cleanup;
@@ -2476,7 +2570,7 @@ function init_array_prototype_warnings() {
2476
2570
  };
2477
2571
  }
2478
2572
 
2479
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/operations.js
2573
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/operations.js
2480
2574
  var $window;
2481
2575
  var $document;
2482
2576
  var is_firefox;
@@ -2495,14 +2589,13 @@ function init_operations() {
2495
2589
  first_child_getter = get_descriptor(node_prototype, "firstChild").get;
2496
2590
  next_sibling_getter = get_descriptor(node_prototype, "nextSibling").get;
2497
2591
  if (is_extensible(element_prototype)) {
2498
- element_prototype.__click = undefined;
2499
- element_prototype.__className = undefined;
2500
- element_prototype.__attributes = null;
2501
- element_prototype.__style = undefined;
2592
+ element_prototype[CLASS_CACHE] = undefined;
2593
+ element_prototype[ATTRIBUTES_CACHE] = null;
2594
+ element_prototype[STYLE_CACHE] = undefined;
2502
2595
  element_prototype.__e = undefined;
2503
2596
  }
2504
2597
  if (is_extensible(text_prototype)) {
2505
- text_prototype.__t = undefined;
2598
+ text_prototype[TEXT_CACHE] = undefined;
2506
2599
  }
2507
2600
  if (true_default) {
2508
2601
  element_prototype.__svelte_meta = null;
@@ -2593,8 +2686,10 @@ function should_defer_append() {
2593
2686
  return (flags2 & REACTION_RAN) !== 0;
2594
2687
  }
2595
2688
  function create_element(tag2, namespace, is) {
2596
- let options = is ? { is } : undefined;
2597
- return document.createElementNS(namespace ?? NAMESPACE_HTML, tag2, options);
2689
+ if (namespace == null || namespace === NAMESPACE_HTML) {
2690
+ return is ? document.createElement(tag2, { is }) : document.createElement(tag2);
2691
+ }
2692
+ return is ? document.createElementNS(namespace, tag2, { is }) : document.createElementNS(namespace, tag2);
2598
2693
  }
2599
2694
  function merge_text_nodes(text) {
2600
2695
  if (text.nodeValue.length < 65536) {
@@ -2608,7 +2703,7 @@ function merge_text_nodes(text) {
2608
2703
  }
2609
2704
  }
2610
2705
 
2611
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js
2706
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/bindings/shared.js
2612
2707
  function without_reactive_context(fn) {
2613
2708
  var previous_reaction = active_reaction;
2614
2709
  var previous_effect = active_effect;
@@ -2622,7 +2717,7 @@ function without_reactive_context(fn) {
2622
2717
  }
2623
2718
  }
2624
2719
 
2625
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/effects.js
2720
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/effects.js
2626
2721
  function validate_effect(rune) {
2627
2722
  if (active_effect === null) {
2628
2723
  if (active_reaction === null) {
@@ -2724,7 +2819,7 @@ function user_effect(fn) {
2724
2819
  });
2725
2820
  }
2726
2821
  var flags2 = active_effect.f;
2727
- var defer = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && (flags2 & REACTION_RAN) === 0;
2822
+ var defer = !active_reaction && (flags2 & BRANCH_EFFECT) !== 0 && component_context !== null && !component_context.i;
2728
2823
  if (defer) {
2729
2824
  var context = component_context;
2730
2825
  (context.e ??= []).push(fn);
@@ -2956,10 +3051,10 @@ function move_effect(effect2, fragment) {
2956
3051
  }
2957
3052
  }
2958
3053
 
2959
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/legacy.js
3054
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/legacy.js
2960
3055
  var captured_signals = null;
2961
3056
 
2962
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/runtime.js
3057
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/runtime.js
2963
3058
  var is_updating_effect = false;
2964
3059
  var is_destroying_effect = false;
2965
3060
  function set_is_destroying_effect(value) {
@@ -2977,11 +3072,7 @@ function set_active_effect(effect2) {
2977
3072
  var current_sources = null;
2978
3073
  function push_reaction_value(value) {
2979
3074
  if (active_reaction !== null && (!async_mode_flag || (active_reaction.f & DERIVED) !== 0)) {
2980
- if (current_sources === null) {
2981
- current_sources = [value];
2982
- } else {
2983
- current_sources.push(value);
2984
- }
3075
+ (current_sources ??= new Set).add(value);
2985
3076
  }
2986
3077
  }
2987
3078
  var new_deps = null;
@@ -3029,7 +3120,7 @@ function schedule_possible_effect_self_invalidation(signal, effect2, root = true
3029
3120
  var reactions = signal.reactions;
3030
3121
  if (reactions === null)
3031
3122
  return;
3032
- if (!async_mode_flag && current_sources !== null && includes.call(current_sources, signal)) {
3123
+ if (!async_mode_flag && current_sources !== null && current_sources.has(signal)) {
3033
3124
  return;
3034
3125
  }
3035
3126
  for (var i = 0;i < reactions.length; i++) {
@@ -3226,7 +3317,7 @@ function get2(signal) {
3226
3317
  captured_signals?.add(signal);
3227
3318
  if (active_reaction !== null && !untracking) {
3228
3319
  var destroyed = active_effect !== null && (active_effect.f & DESTROYED) !== 0;
3229
- if (!destroyed && (current_sources === null || !includes.call(current_sources, signal))) {
3320
+ if (!destroyed && (current_sources === null || !current_sources.has(signal))) {
3230
3321
  var deps = active_reaction.deps;
3231
3322
  if ((active_reaction.f & REACTION_IS_UPDATING) !== 0) {
3232
3323
  if (signal.rv < read_version) {
@@ -3240,7 +3331,10 @@ function get2(signal) {
3240
3331
  }
3241
3332
  }
3242
3333
  } else {
3243
- (active_reaction.deps ??= []).push(signal);
3334
+ active_reaction.deps ??= [];
3335
+ if (!includes.call(active_reaction.deps, signal)) {
3336
+ active_reaction.deps.push(signal);
3337
+ }
3244
3338
  var reactions = signal.reactions;
3245
3339
  if (reactions === null) {
3246
3340
  signal.reactions = [active_reaction];
@@ -3388,7 +3482,7 @@ function deep_read(value, visited = new Set) {
3388
3482
  }
3389
3483
  }
3390
3484
  }
3391
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/events.js
3485
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/events.js
3392
3486
  var event_symbol = Symbol("events");
3393
3487
  var all_registered_events = new Set;
3394
3488
  var root_event_handles = new Set;
@@ -3444,7 +3538,8 @@ function handle_event_propagation(event) {
3444
3538
  var throw_error;
3445
3539
  var other_errors = [];
3446
3540
  while (current_target !== null) {
3447
- var parent_element = current_target.assignedSlot || current_target.parentNode || current_target.host || null;
3541
+ if (current_target === handler_element)
3542
+ break;
3448
3543
  try {
3449
3544
  var delegated2 = current_target[event_symbol]?.[event_name];
3450
3545
  if (delegated2 != null && (!current_target.disabled || event.target === current_target)) {
@@ -3457,10 +3552,10 @@ function handle_event_propagation(event) {
3457
3552
  throw_error = error;
3458
3553
  }
3459
3554
  }
3460
- if (event.cancelBubble || parent_element === handler_element || parent_element === null) {
3555
+ if (event.cancelBubble)
3461
3556
  break;
3462
- }
3463
- current_target = parent_element;
3557
+ path_idx++;
3558
+ current_target = path_idx < path.length ? path[path_idx] : null;
3464
3559
  }
3465
3560
  if (throw_error) {
3466
3561
  for (let error of other_errors) {
@@ -3478,7 +3573,7 @@ function handle_event_propagation(event) {
3478
3573
  }
3479
3574
  }
3480
3575
 
3481
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/reconciler.js
3576
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/reconciler.js
3482
3577
  var policy = globalThis?.window?.trustedTypes && /* @__PURE__ */ globalThis.window.trustedTypes.createPolicy("svelte-trusted-html", {
3483
3578
  createHTML: (html) => {
3484
3579
  return html;
@@ -3493,7 +3588,7 @@ function create_fragment_from_html(html) {
3493
3588
  return elem.content;
3494
3589
  }
3495
3590
 
3496
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/template.js
3591
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/template.js
3497
3592
  function assign_nodes(start, end) {
3498
3593
  var effect2 = active_effect;
3499
3594
  if (effect2.nodes === null) {
@@ -3553,7 +3648,7 @@ function append(anchor, dom) {
3553
3648
  anchor.before(dom);
3554
3649
  }
3555
3650
 
3556
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/utils.js
3651
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/utils.js
3557
3652
  var regex_return_characters = /\r/g;
3558
3653
  function hash(str) {
3559
3654
  str = str.replace(regex_return_characters, "");
@@ -3641,7 +3736,7 @@ function sanitize_location(location) {
3641
3736
  return location?.replace(/\//g, "/​");
3642
3737
  }
3643
3738
 
3644
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/render.js
3739
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/render.js
3645
3740
  var should_intro = true;
3646
3741
  function mount(component, options) {
3647
3742
  return _mount(component, options);
@@ -3783,7 +3878,7 @@ function unmount(component, options) {
3783
3878
  }
3784
3879
  return Promise.resolve();
3785
3880
  }
3786
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/blocks/branches.js
3881
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/blocks/branches.js
3787
3882
  class BranchManager {
3788
3883
  anchor;
3789
3884
  #batches = new Map;
@@ -3806,6 +3901,7 @@ class BranchManager {
3806
3901
  } else {
3807
3902
  var offscreen = this.#offscreen.get(key);
3808
3903
  if (offscreen) {
3904
+ resume_effect(offscreen.effect);
3809
3905
  this.#onscreen.set(key, offscreen.effect);
3810
3906
  this.#offscreen.delete(key);
3811
3907
  if (true_default) {
@@ -3904,7 +4000,7 @@ class BranchManager {
3904
4000
  }
3905
4001
  }
3906
4002
 
3907
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/index-client.js
4003
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/index-client.js
3908
4004
  if (true_default) {
3909
4005
  let throw_rune_error = function(rune) {
3910
4006
  if (!(rune in globalThis)) {
@@ -3930,7 +4026,7 @@ if (true_default) {
3930
4026
  throw_rune_error("$props");
3931
4027
  throw_rune_error("$bindable");
3932
4028
  }
3933
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dev/css.js
4029
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dev/css.js
3934
4030
  var all_styles = new Map;
3935
4031
  function register_style(hash2, style) {
3936
4032
  var styles = all_styles.get(hash2);
@@ -3940,7 +4036,7 @@ function register_style(hash2, style) {
3940
4036
  }
3941
4037
  styles.add(style);
3942
4038
  }
3943
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/blocks/if.js
4039
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/blocks/if.js
3944
4040
  function if_block(node, fn, elseif = false) {
3945
4041
  var marker;
3946
4042
  if (hydrating) {
@@ -3975,9 +4071,9 @@ function if_block(node, fn, elseif = false) {
3975
4071
  }
3976
4072
  }, flags2);
3977
4073
  }
3978
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/blocks/key.js
4074
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/blocks/key.js
3979
4075
  var NAN = Symbol("NaN");
3980
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/blocks/each.js
4076
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/blocks/each.js
3981
4077
  function pause_effects(state2, to_destroy, controlled_anchor) {
3982
4078
  var transitions = [];
3983
4079
  var length = to_destroy.length;
@@ -4412,7 +4508,7 @@ function validate_each_keys(array, key_fn) {
4412
4508
  keys.set(key, i);
4413
4509
  }
4414
4510
  }
4415
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/blocks/html.js
4511
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/blocks/html.js
4416
4512
  function check_hash(element, server_hash, value) {
4417
4513
  if (!server_hash || server_hash === hash(String(value ?? "")))
4418
4514
  return;
@@ -4488,14 +4584,14 @@ function html(node, get_value, is_controlled = false, svg = false, mathml = fals
4488
4584
  }
4489
4585
  });
4490
4586
  }
4491
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/timing.js
4587
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/timing.js
4492
4588
  var now = true_default ? () => performance.now() : () => Date.now();
4493
4589
  var raf = {
4494
4590
  tick: (_) => (true_default ? requestAnimationFrame : noop)(_),
4495
4591
  now: () => now(),
4496
4592
  tasks: new Set
4497
4593
  };
4498
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/css.js
4594
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/css.js
4499
4595
  function append_styles(anchor, css) {
4500
4596
  effect(() => {
4501
4597
  var root = anchor.getRootNode();
@@ -4511,7 +4607,7 @@ function append_styles(anchor, css) {
4511
4607
  }
4512
4608
  });
4513
4609
  }
4514
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/actions.js
4610
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/actions.js
4515
4611
  function action(dom, action2, get_value) {
4516
4612
  effect(() => {
4517
4613
  var payload = untrack(() => action2(dom, get_value?.()) || {});
@@ -4533,7 +4629,7 @@ function action(dom, action2, get_value) {
4533
4629
  }
4534
4630
  });
4535
4631
  }
4536
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/shared/attributes.js
4632
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/shared/attributes.js
4537
4633
  var replacements = {
4538
4634
  translate: new Map([
4539
4635
  [true, "yes"],
@@ -4568,9 +4664,9 @@ function to_class(value, hash2, directives) {
4568
4664
  return classname === "" ? null : classname;
4569
4665
  }
4570
4666
 
4571
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/class.js
4667
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/class.js
4572
4668
  function set_class(dom, is_html, value, hash2, prev_classes, next_classes) {
4573
- var prev = dom.__className;
4669
+ var prev = dom[CLASS_CACHE];
4574
4670
  if (hydrating || prev !== value || prev === undefined) {
4575
4671
  var next_class_name = to_class(value, hash2, next_classes);
4576
4672
  if (!hydrating || next_class_name !== dom.getAttribute("class")) {
@@ -4582,7 +4678,7 @@ function set_class(dom, is_html, value, hash2, prev_classes, next_classes) {
4582
4678
  dom.setAttribute("class", next_class_name);
4583
4679
  }
4584
4680
  }
4585
- dom.__className = value;
4681
+ dom[CLASS_CACHE] = value;
4586
4682
  } else if (next_classes && prev_classes !== next_classes) {
4587
4683
  for (var key in next_classes) {
4588
4684
  var is_present = !!next_classes[key];
@@ -4594,7 +4690,7 @@ function set_class(dom, is_html, value, hash2, prev_classes, next_classes) {
4594
4690
  return next_classes;
4595
4691
  }
4596
4692
 
4597
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/attributes.js
4693
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/attributes.js
4598
4694
  var CLASS = Symbol("class");
4599
4695
  var STYLE = Symbol("style");
4600
4696
  var IS_CUSTOM_ELEMENT = Symbol("is custom element");
@@ -4625,7 +4721,7 @@ function set_attribute2(element, attribute, value, skip_warning) {
4625
4721
  }
4626
4722
  }
4627
4723
  function get_attributes(element) {
4628
- return element.__attributes ??= {
4724
+ return element[ATTRIBUTES_CACHE] ??= {
4629
4725
  [IS_CUSTOM_ELEMENT]: element.nodeName.includes("-"),
4630
4726
  [IS_HTML]: element.namespaceURI === NAMESPACE_HTML
4631
4727
  };
@@ -4643,7 +4739,7 @@ function get_setters(element) {
4643
4739
  while (element_proto !== proto) {
4644
4740
  descriptors = get_descriptors(proto);
4645
4741
  for (var key in descriptors) {
4646
- if (descriptors[key].set) {
4742
+ if (descriptors[key].set && key !== "innerHTML" && key !== "textContent" && key !== "innerText") {
4647
4743
  setters.push(key);
4648
4744
  }
4649
4745
  }
@@ -4673,9 +4769,9 @@ function srcset_url_equal(element, srcset) {
4673
4769
  var urls = split_srcset(srcset);
4674
4770
  return urls.length === element_urls.length && urls.every(([url, width], i) => width === element_urls[i][1] && (src_url_equal(element_urls[i][0], url) || src_url_equal(url, element_urls[i][0])));
4675
4771
  }
4676
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/bindings/input.js
4772
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/bindings/input.js
4677
4773
  var pending = new Set;
4678
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/bindings/size.js
4774
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/bindings/size.js
4679
4775
  class ResizeObserverSingleton {
4680
4776
  #listeners = new WeakMap;
4681
4777
  #observer;
@@ -4709,7 +4805,7 @@ class ResizeObserverSingleton {
4709
4805
  }));
4710
4806
  }
4711
4807
  }
4712
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/bindings/this.js
4808
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/bindings/this.js
4713
4809
  function is_bound_this(bound_value, element_or_component) {
4714
4810
  return bound_value === element_or_component || bound_value?.[STATE_SYMBOL] === element_or_component;
4715
4811
  }
@@ -4723,7 +4819,7 @@ function bind_this(element_or_component = {}, update2, get_value, get_parts) {
4723
4819
  old_parts = parts;
4724
4820
  parts = get_parts?.() || [];
4725
4821
  untrack(() => {
4726
- if (element_or_component !== get_value(...parts)) {
4822
+ if (!is_bound_this(get_value(...parts), element_or_component)) {
4727
4823
  update2(element_or_component, ...parts);
4728
4824
  if (old_parts && is_bound_this(get_value(...old_parts), element_or_component)) {
4729
4825
  update2(null, ...old_parts);
@@ -4750,14 +4846,19 @@ function bind_this(element_or_component = {}, update2, get_value, get_parts) {
4750
4846
  });
4751
4847
  return element_or_component;
4752
4848
  }
4753
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/reactivity/props.js
4849
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/reactivity/props.js
4754
4850
  function prop(props, key, flags2, fallback) {
4755
4851
  var runes = !legacy_mode_flag || (flags2 & PROPS_IS_RUNES) !== 0;
4756
4852
  var bindable = (flags2 & PROPS_IS_BINDABLE) !== 0;
4757
4853
  var lazy = (flags2 & PROPS_IS_LAZY_INITIAL) !== 0;
4758
4854
  var fallback_value = fallback;
4759
4855
  var fallback_dirty = true;
4856
+ var fallback_signal = undefined;
4760
4857
  var get_fallback = () => {
4858
+ if (lazy && runes) {
4859
+ fallback_signal ??= derived(fallback);
4860
+ return get2(fallback_signal);
4861
+ }
4761
4862
  if (fallback_dirty) {
4762
4863
  fallback_dirty = false;
4763
4864
  fallback_value = lazy ? untrack(fallback) : fallback;
@@ -4844,7 +4945,7 @@ function prop(props, key, flags2, fallback) {
4844
4945
  return get2(d);
4845
4946
  };
4846
4947
  }
4847
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/legacy/legacy-client.js
4948
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/legacy/legacy-client.js
4848
4949
  function createClassComponent(options) {
4849
4950
  return new Svelte4Component(options);
4850
4951
  }
@@ -4922,7 +5023,7 @@ class Svelte4Component {
4922
5023
  }
4923
5024
  }
4924
5025
 
4925
- // ../../node_modules/.bun/svelte@5.55.4/node_modules/svelte/src/internal/client/dom/elements/custom-element.js
5026
+ // ../../node_modules/.bun/svelte@5.56.0/node_modules/svelte/src/internal/client/dom/elements/custom-element.js
4926
5027
  var SvelteElement;
4927
5028
  if (typeof HTMLElement === "function") {
4928
5029
  SvelteElement = class extends HTMLElement {
@@ -5786,7 +5887,7 @@ function createScopedToolId(baseToolId, scopeLevel, scopeId) {
5786
5887
  }
5787
5888
  function parseScopedToolId(id) {
5788
5889
  const parts = id.split(":");
5789
- if (parts.length !== 3 && parts.length !== 4)
5890
+ if (parts.length !== 3)
5790
5891
  return null;
5791
5892
  const [baseToolId, scopeLevelRaw, scopeId] = parts;
5792
5893
  if (!baseToolId || !scopeId)
@@ -6141,7 +6242,8 @@ class BrowserTTSProvider {
6141
6242
  supportsWordBoundary: true,
6142
6243
  supportsVoiceSelection: true,
6143
6244
  supportsRateControl: true,
6144
- supportsPitchControl: true
6245
+ supportsPitchControl: true,
6246
+ supportsSSML: false
6145
6247
  };
6146
6248
  }
6147
6249
  destroy() {}
@@ -6440,7 +6542,7 @@ class TTSToolProvider {
6440
6542
  }
6441
6543
  const moduleLoadStartedAt = Date.now();
6442
6544
  await this.emitTelemetry("pie-tool-library-load-start", {
6443
- toolId: "tts",
6545
+ toolId: "textToSpeech",
6444
6546
  operation: "server-provider-module-import",
6445
6547
  backend: config.serverProvider || config.backend
6446
6548
  });
@@ -6448,7 +6550,7 @@ class TTSToolProvider {
6448
6550
  try {
6449
6551
  const loaded = await import("@pie-players/tts-client-server");
6450
6552
  await this.emitTelemetry("pie-tool-library-load-success", {
6451
- toolId: "tts",
6553
+ toolId: "textToSpeech",
6452
6554
  operation: "server-provider-module-import",
6453
6555
  backend: config.serverProvider || config.backend,
6454
6556
  duration: Date.now() - moduleLoadStartedAt
@@ -6456,7 +6558,7 @@ class TTSToolProvider {
6456
6558
  return loaded;
6457
6559
  } catch (error) {
6458
6560
  await this.emitTelemetry("pie-tool-library-load-error", {
6459
- toolId: "tts",
6561
+ toolId: "textToSpeech",
6460
6562
  operation: "server-provider-module-import",
6461
6563
  backend: config.serverProvider || config.backend,
6462
6564
  duration: Date.now() - moduleLoadStartedAt,
@@ -6514,7 +6616,6 @@ var DEFAULT_TOOL_TAG_MAP = {
6514
6616
  highlighter: "pie-tool-annotation-toolbar",
6515
6617
  lineReader: "pie-tool-line-reader",
6516
6618
  theme: "pie-tool-theme",
6517
- colorScheme: "pie-tool-theme",
6518
6619
  annotationToolbar: "pie-tool-annotation-toolbar",
6519
6620
  graph: "pie-tool-graph",
6520
6621
  periodicTable: "pie-tool-periodic-table"
@@ -6532,6 +6633,30 @@ var createToolElement = (toolId, context, toolbarContext, overrides) => {
6532
6633
  };
6533
6634
 
6534
6635
  // dist/tools/registrations/calculator.js
6636
+ var overlayElementCache = new WeakMap;
6637
+ function getCachedOverlay(coordinator, fullToolId) {
6638
+ if (!coordinator)
6639
+ return null;
6640
+ const scoped = overlayElementCache.get(coordinator);
6641
+ const element2 = scoped?.get(fullToolId);
6642
+ if (!element2)
6643
+ return null;
6644
+ if (!element2.isConnected) {
6645
+ scoped?.delete(fullToolId);
6646
+ return null;
6647
+ }
6648
+ return element2;
6649
+ }
6650
+ function setCachedOverlay(coordinator, fullToolId, element2) {
6651
+ if (!coordinator)
6652
+ return;
6653
+ let scoped = overlayElementCache.get(coordinator);
6654
+ if (!scoped) {
6655
+ scoped = new Map;
6656
+ overlayElementCache.set(coordinator, scoped);
6657
+ }
6658
+ scoped.set(fullToolId, element2);
6659
+ }
6535
6660
  function normalizeCalculatorType(value) {
6536
6661
  return value === "basic" || value === "scientific" ? value : null;
6537
6662
  }
@@ -6601,7 +6726,11 @@ var calculatorToolRegistration = {
6601
6726
  const { calculatorType, availableTypes, displayName } = getCalculatorRenderParams(toolbarContext);
6602
6727
  const fullToolId = createScopedToolId(this.toolId, toolbarContext.scope.level, toolbarContext.scope.scopeId);
6603
6728
  const componentOverrides = toolbarContext.componentOverrides;
6604
- const overlay = createToolElement(this.toolId, context, toolbarContext, componentOverrides);
6729
+ const cachedOverlay = getCachedOverlay(toolbarContext.toolCoordinator, fullToolId);
6730
+ const overlay = cachedOverlay ?? createToolElement(this.toolId, context, toolbarContext, componentOverrides);
6731
+ if (!cachedOverlay) {
6732
+ setCachedOverlay(toolbarContext.toolCoordinator, fullToolId, overlay);
6733
+ }
6605
6734
  overlay.setAttribute("tool-id", fullToolId);
6606
6735
  overlay.toolkitCoordinator = toolbarContext.toolkitCoordinator;
6607
6736
  applyCalculatorParamsToElement(overlay, calculatorType, availableTypes);
@@ -6618,7 +6747,9 @@ var calculatorToolRegistration = {
6618
6747
  active: toolbarContext.isToolVisible(fullToolId)
6619
6748
  };
6620
6749
  let lastVisibleState = button.active;
6621
- overlay.visible = button.active;
6750
+ if (overlay.visible !== button.active) {
6751
+ overlay.visible = button.active;
6752
+ }
6622
6753
  return {
6623
6754
  toolId: this.toolId,
6624
6755
  elements: [
@@ -6664,6 +6795,25 @@ var calculatorToolRegistration = {
6664
6795
  }
6665
6796
  };
6666
6797
 
6798
+ // dist/services/tts/math-speech.js
6799
+ var sreOperationQueue = Promise.resolve();
6800
+ var isPlainRecord = (value) => !!value && typeof value === "object" && !Array.isArray(value);
6801
+ var trimOption = (value) => typeof value === "string" && value.trim() ? value.trim() : undefined;
6802
+ var normalizeSREMathSpeechOptions = (options) => {
6803
+ if (!isPlainRecord(options))
6804
+ return;
6805
+ const domain = trimOption(options.domain);
6806
+ const style = trimOption(options.style);
6807
+ const engineOptions = isPlainRecord(options.engineOptions) ? options.engineOptions : undefined;
6808
+ if (!domain && !style && !engineOptions)
6809
+ return;
6810
+ return {
6811
+ ...domain ? { domain } : {},
6812
+ ...style ? { style } : {},
6813
+ ...engineOptions ? { engineOptions } : {}
6814
+ };
6815
+ };
6816
+
6667
6817
  // dist/services/tts-runtime-config.js
6668
6818
  var VALID_TTS_LAYOUT_MODES = new Set([
6669
6819
  "reserved-row",
@@ -6729,7 +6879,7 @@ var applyRuntimeDefaults = (config) => {
6729
6879
  };
6730
6880
  var resolveTTSRuntimeSettings = (config) => {
6731
6881
  const configRecord = toRecord(config);
6732
- const settingsRecord = toRecord(config?.settings);
6882
+ const settingsRecord = toRecord(configRecord.settings);
6733
6883
  return applyRuntimeDefaults({
6734
6884
  ...configRecord,
6735
6885
  ...settingsRecord
@@ -6749,6 +6899,7 @@ var buildRuntimeTTSConfig = (config) => {
6749
6899
  const backend = resolveTTSBackend(config);
6750
6900
  const runtimeProvider = resolveRuntimeProvider(config, backend);
6751
6901
  const transportMode = resolveTransportMode(config, runtimeProvider);
6902
+ const mathSpeech = normalizeSREMathSpeechOptions(config.mathSpeech);
6752
6903
  return {
6753
6904
  voice: config.defaultVoice,
6754
6905
  rate: config.rate,
@@ -6763,7 +6914,8 @@ var buildRuntimeTTSConfig = (config) => {
6763
6914
  } : {},
6764
6915
  ...transportMode === "custom" && typeof config.cache === "boolean" ? { cache: config.cache } : {},
6765
6916
  ...transportMode === "custom" && config.speedRate ? { speedRate: config.speedRate } : {},
6766
- ...transportMode === "custom" && config.lang_id ? { lang_id: config.lang_id } : {}
6917
+ ...transportMode === "custom" && config.lang_id ? { lang_id: config.lang_id } : {},
6918
+ ...mathSpeech ? { mathSpeech } : {}
6767
6919
  },
6768
6920
  apiEndpoint: config.apiEndpoint,
6769
6921
  provider: runtimeProvider,
@@ -6772,7 +6924,8 @@ var buildRuntimeTTSConfig = (config) => {
6772
6924
  endpointMode: config.endpointMode,
6773
6925
  endpointValidationMode: config.endpointValidationMode,
6774
6926
  includeAuthOnAssetFetch: config.includeAuthOnAssetFetch,
6775
- validateEndpoint: config.validateEndpoint
6927
+ validateEndpoint: config.validateEndpoint,
6928
+ ...typeof config.mathTokenHighlighting === "boolean" ? { mathTokenHighlighting: config.mathTokenHighlighting } : {}
6776
6929
  };
6777
6930
  };
6778
6931
  var resolveTTSLayoutMode = (config) => normalizeTTSLayoutMode(config.layoutMode);
@@ -7238,7 +7391,6 @@ var themeToolRegistration = {
7238
7391
  "highContrastDisplay",
7239
7392
  "colorContrast",
7240
7393
  "invertColors",
7241
- "colorScheme",
7242
7394
  "theme",
7243
7395
  "highContrast",
7244
7396
  "customColors"
@@ -7536,6 +7688,879 @@ var DEFAULT_TOOL_MODULE_LOADERS = {
7536
7688
  textToSpeech: () => loadSideEffectModule(() => import("@pie-players/pie-tool-tts-inline"))
7537
7689
  };
7538
7690
 
7691
+ // dist/components/vendor/nds/nds-icon-button.js
7692
+ var H = globalThis;
7693
+ var D = H.ShadowRoot && (H.ShadyCSS === undefined || H.ShadyCSS.nativeShadow) && "adoptedStyleSheets" in Document.prototype && "replace" in CSSStyleSheet.prototype;
7694
+ var tt = Symbol();
7695
+ var W = /* @__PURE__ */ new WeakMap;
7696
+ var nt = class {
7697
+ constructor(t, e, s) {
7698
+ if (this._$cssResult$ = true, s !== tt)
7699
+ throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");
7700
+ this.cssText = t, this.t = e;
7701
+ }
7702
+ get styleSheet() {
7703
+ let t = this.o;
7704
+ const e = this.t;
7705
+ if (D && t === undefined) {
7706
+ const s = e !== undefined && e.length === 1;
7707
+ s && (t = W.get(e)), t === undefined && ((this.o = t = new CSSStyleSheet).replaceSync(this.cssText), s && W.set(e, t));
7708
+ }
7709
+ return t;
7710
+ }
7711
+ toString() {
7712
+ return this.cssText;
7713
+ }
7714
+ };
7715
+ var rt = (o) => new nt(typeof o == "string" ? o : o + "", undefined, tt);
7716
+ var at = (o, t) => {
7717
+ if (D)
7718
+ o.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
7719
+ else
7720
+ for (const e of t) {
7721
+ const s = document.createElement("style"), i = H.litNonce;
7722
+ i !== undefined && s.setAttribute("nonce", i), s.textContent = e.cssText, o.appendChild(s);
7723
+ }
7724
+ };
7725
+ var V = D ? (o) => o : (o) => o instanceof CSSStyleSheet ? ((t) => {
7726
+ let e = "";
7727
+ for (const s of t.cssRules)
7728
+ e += s.cssText;
7729
+ return rt(e);
7730
+ })(o) : o;
7731
+ var { is: ht, defineProperty: ct, getOwnPropertyDescriptor: lt, getOwnPropertyNames: dt, getOwnPropertySymbols: ut, getPrototypeOf: pt } = Object;
7732
+ var R = globalThis;
7733
+ var F = R.trustedTypes;
7734
+ var ft = F ? F.emptyScript : "";
7735
+ var bt = R.reactiveElementPolyfillSupport;
7736
+ var S = (o, t) => o;
7737
+ var N = { toAttribute(o, t) {
7738
+ switch (t) {
7739
+ case Boolean:
7740
+ o = o ? ft : null;
7741
+ break;
7742
+ case Object:
7743
+ case Array:
7744
+ o = o == null ? o : JSON.stringify(o);
7745
+ }
7746
+ return o;
7747
+ }, fromAttribute(o, t) {
7748
+ let e = o;
7749
+ switch (t) {
7750
+ case Boolean:
7751
+ e = o !== null;
7752
+ break;
7753
+ case Number:
7754
+ e = o === null ? null : Number(o);
7755
+ break;
7756
+ case Object:
7757
+ case Array:
7758
+ try {
7759
+ e = JSON.parse(o);
7760
+ } catch {
7761
+ e = null;
7762
+ }
7763
+ }
7764
+ return e;
7765
+ } };
7766
+ var L = (o, t) => !ht(o, t);
7767
+ var J = { attribute: true, type: String, converter: N, reflect: false, useDefault: false, hasChanged: L };
7768
+ Symbol.metadata ??= Symbol("metadata"), R.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap;
7769
+ var A = class extends HTMLElement {
7770
+ static addInitializer(t) {
7771
+ this._$Ei(), (this.l ??= []).push(t);
7772
+ }
7773
+ static get observedAttributes() {
7774
+ return this.finalize(), this._$Eh && [...this._$Eh.keys()];
7775
+ }
7776
+ static createProperty(t, e = J) {
7777
+ 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) {
7778
+ const s = Symbol(), i = this.getPropertyDescriptor(t, s, e);
7779
+ i !== undefined && ct(this.prototype, t, i);
7780
+ }
7781
+ }
7782
+ static getPropertyDescriptor(t, e, s) {
7783
+ const { get: i, set: n } = lt(this.prototype, t) ?? { get() {
7784
+ return this[e];
7785
+ }, set(r) {
7786
+ this[e] = r;
7787
+ } };
7788
+ return { get: i, set(r) {
7789
+ const h = i?.call(this);
7790
+ n?.call(this, r), this.requestUpdate(t, h, s);
7791
+ }, configurable: true, enumerable: true };
7792
+ }
7793
+ static getPropertyOptions(t) {
7794
+ return this.elementProperties.get(t) ?? J;
7795
+ }
7796
+ static _$Ei() {
7797
+ if (this.hasOwnProperty(S("elementProperties")))
7798
+ return;
7799
+ const t = pt(this);
7800
+ t.finalize(), t.l !== undefined && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
7801
+ }
7802
+ static finalize() {
7803
+ if (this.hasOwnProperty(S("finalized")))
7804
+ return;
7805
+ if (this.finalized = true, this._$Ei(), this.hasOwnProperty(S("properties"))) {
7806
+ const e = this.properties, s = [...dt(e), ...ut(e)];
7807
+ for (const i of s)
7808
+ this.createProperty(i, e[i]);
7809
+ }
7810
+ const t = this[Symbol.metadata];
7811
+ if (t !== null) {
7812
+ const e = litPropertyMetadata.get(t);
7813
+ if (e !== undefined)
7814
+ for (const [s, i] of e)
7815
+ this.elementProperties.set(s, i);
7816
+ }
7817
+ this._$Eh = /* @__PURE__ */ new Map;
7818
+ for (const [e, s] of this.elementProperties) {
7819
+ const i = this._$Eu(e, s);
7820
+ i !== undefined && this._$Eh.set(i, e);
7821
+ }
7822
+ this.elementStyles = this.finalizeStyles(this.styles);
7823
+ }
7824
+ static finalizeStyles(t) {
7825
+ const e = [];
7826
+ if (Array.isArray(t)) {
7827
+ const s = new Set(t.flat(1 / 0).reverse());
7828
+ for (const i of s)
7829
+ e.unshift(V(i));
7830
+ } else
7831
+ t !== undefined && e.push(V(t));
7832
+ return e;
7833
+ }
7834
+ static _$Eu(t, e) {
7835
+ const s = e.attribute;
7836
+ return s === false ? undefined : typeof s == "string" ? s : typeof t == "string" ? t.toLowerCase() : undefined;
7837
+ }
7838
+ constructor() {
7839
+ super(), this._$Ep = undefined, this.isUpdatePending = false, this.hasUpdated = false, this._$Em = null, this._$Ev();
7840
+ }
7841
+ _$Ev() {
7842
+ this._$ES = new Promise((t) => this.enableUpdating = t), this._$AL = /* @__PURE__ */ new Map, this._$E_(), this.requestUpdate(), this.constructor.l?.forEach((t) => t(this));
7843
+ }
7844
+ addController(t) {
7845
+ (this._$EO ??= /* @__PURE__ */ new Set).add(t), this.renderRoot !== undefined && this.isConnected && t.hostConnected?.();
7846
+ }
7847
+ removeController(t) {
7848
+ this._$EO?.delete(t);
7849
+ }
7850
+ _$E_() {
7851
+ const t = /* @__PURE__ */ new Map, e = this.constructor.elementProperties;
7852
+ for (const s of e.keys())
7853
+ this.hasOwnProperty(s) && (t.set(s, this[s]), delete this[s]);
7854
+ t.size > 0 && (this._$Ep = t);
7855
+ }
7856
+ createRenderRoot() {
7857
+ const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
7858
+ return at(t, this.constructor.elementStyles), t;
7859
+ }
7860
+ connectedCallback() {
7861
+ this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(true), this._$EO?.forEach((t) => t.hostConnected?.());
7862
+ }
7863
+ enableUpdating(t) {}
7864
+ disconnectedCallback() {
7865
+ this._$EO?.forEach((t) => t.hostDisconnected?.());
7866
+ }
7867
+ attributeChangedCallback(t, e, s) {
7868
+ this._$AK(t, s);
7869
+ }
7870
+ _$ET(t, e) {
7871
+ const s = this.constructor.elementProperties.get(t), i = this.constructor._$Eu(t, s);
7872
+ if (i !== undefined && s.reflect === true) {
7873
+ const n = (s.converter?.toAttribute !== undefined ? s.converter : N).toAttribute(e, s.type);
7874
+ this._$Em = t, n == null ? this.removeAttribute(i) : this.setAttribute(i, n), this._$Em = null;
7875
+ }
7876
+ }
7877
+ _$AK(t, e) {
7878
+ const s = this.constructor, i = s._$Eh.get(t);
7879
+ if (i !== undefined && this._$Em !== i) {
7880
+ const n = s.getPropertyOptions(i), r = typeof n.converter == "function" ? { fromAttribute: n.converter } : n.converter?.fromAttribute !== undefined ? n.converter : N;
7881
+ this._$Em = i;
7882
+ const h = r.fromAttribute(e, n.type);
7883
+ this[i] = h ?? this._$Ej?.get(i) ?? h, this._$Em = null;
7884
+ }
7885
+ }
7886
+ requestUpdate(t, e, s) {
7887
+ if (t !== undefined) {
7888
+ const i = this.constructor, n = this[t];
7889
+ 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))))
7890
+ return;
7891
+ this.C(t, e, s);
7892
+ }
7893
+ this.isUpdatePending === false && (this._$ES = this._$EP());
7894
+ }
7895
+ C(t, e, { useDefault: s, reflect: i, wrapped: n }, r) {
7896
+ 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));
7897
+ }
7898
+ async _$EP() {
7899
+ this.isUpdatePending = true;
7900
+ try {
7901
+ await this._$ES;
7902
+ } catch (e) {
7903
+ Promise.reject(e);
7904
+ }
7905
+ const t = this.scheduleUpdate();
7906
+ return t != null && await t, !this.isUpdatePending;
7907
+ }
7908
+ scheduleUpdate() {
7909
+ return this.performUpdate();
7910
+ }
7911
+ performUpdate() {
7912
+ if (!this.isUpdatePending)
7913
+ return;
7914
+ if (!this.hasUpdated) {
7915
+ if (this.renderRoot ??= this.createRenderRoot(), this._$Ep) {
7916
+ for (const [i, n] of this._$Ep)
7917
+ this[i] = n;
7918
+ this._$Ep = undefined;
7919
+ }
7920
+ const s = this.constructor.elementProperties;
7921
+ if (s.size > 0)
7922
+ for (const [i, n] of s) {
7923
+ const { wrapped: r } = n, h = this[i];
7924
+ r !== true || this._$AL.has(i) || h === undefined || this.C(i, undefined, n, h);
7925
+ }
7926
+ }
7927
+ let t = false;
7928
+ const e = this._$AL;
7929
+ try {
7930
+ t = this.shouldUpdate(e), t ? (this.willUpdate(e), this._$EO?.forEach((s) => s.hostUpdate?.()), this.update(e)) : this._$EM();
7931
+ } catch (s) {
7932
+ throw t = false, this._$EM(), s;
7933
+ }
7934
+ t && this._$AE(e);
7935
+ }
7936
+ willUpdate(t) {}
7937
+ _$AE(t) {
7938
+ this._$EO?.forEach((e) => e.hostUpdated?.()), this.hasUpdated || (this.hasUpdated = true, this.firstUpdated(t)), this.updated(t);
7939
+ }
7940
+ _$EM() {
7941
+ this._$AL = /* @__PURE__ */ new Map, this.isUpdatePending = false;
7942
+ }
7943
+ get updateComplete() {
7944
+ return this.getUpdateComplete();
7945
+ }
7946
+ getUpdateComplete() {
7947
+ return this._$ES;
7948
+ }
7949
+ shouldUpdate(t) {
7950
+ return true;
7951
+ }
7952
+ update(t) {
7953
+ this._$Eq &&= this._$Eq.forEach((e) => this._$ET(e, this[e])), this._$EM();
7954
+ }
7955
+ updated(t) {}
7956
+ firstUpdated(t) {}
7957
+ };
7958
+ 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");
7959
+ var I = globalThis;
7960
+ var T = I.trustedTypes;
7961
+ var K = T ? T.createPolicy("lit-html", { createHTML: (o) => o }) : undefined;
7962
+ var et = "$lit$";
7963
+ var v = `lit$${Math.random().toFixed(9).slice(2)}$`;
7964
+ var st = "?" + v;
7965
+ var $t = `<${st}>`;
7966
+ var g = document;
7967
+ var k = () => g.createComment("");
7968
+ var P = (o) => o === null || typeof o != "object" && typeof o != "function";
7969
+ var B = Array.isArray;
7970
+ var vt = (o) => B(o) || typeof o?.[Symbol.iterator] == "function";
7971
+ var j = `[
7972
+ \f\r]`;
7973
+ var x = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g;
7974
+ var Z = /-->/g;
7975
+ var G = />/g;
7976
+ var y = RegExp(`>|${j}(?:([^\\s"'>=/]+)(${j}*=${j}*(?:[^
7977
+ \f\r"'\`<>=]|("|')|))|$)`, "g");
7978
+ var Q = /'/g;
7979
+ var X = /"/g;
7980
+ var it = /^(?:script|style|textarea|title)$/i;
7981
+ var _t = (o) => (t, ...e) => ({ _$litType$: o, strings: t, values: e });
7982
+ var yt = _t(1);
7983
+ var w = Symbol.for("lit-noChange");
7984
+ var d = Symbol.for("lit-nothing");
7985
+ var Y = /* @__PURE__ */ new WeakMap;
7986
+ var m = g.createTreeWalker(g, 129);
7987
+ function ot(o, t) {
7988
+ if (!B(o) || !o.hasOwnProperty("raw"))
7989
+ throw Error("invalid template strings array");
7990
+ return K !== undefined ? K.createHTML(t) : t;
7991
+ }
7992
+ var mt = (o, t) => {
7993
+ const e = o.length - 1, s = [];
7994
+ let i, n = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", r = x;
7995
+ for (let h = 0;h < e; h++) {
7996
+ const a = o[h];
7997
+ let l, u, c = -1, f = 0;
7998
+ for (;f < a.length && (r.lastIndex = f, u = r.exec(a), u !== null); )
7999
+ 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);
8000
+ const $ = r === y && o[h + 1].startsWith("/>") ? " " : "";
8001
+ n += r === x ? a + $t : c >= 0 ? (s.push(l), a.slice(0, c) + et + a.slice(c) + v + $) : a + v + (c === -2 ? h : $);
8002
+ }
8003
+ return [ot(o, n + (o[e] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), s];
8004
+ };
8005
+
8006
+ class O {
8007
+ constructor({ strings: t, _$litType$: e }, s) {
8008
+ let i;
8009
+ this.parts = [];
8010
+ let n = 0, r = 0;
8011
+ const h = t.length - 1, a = this.parts, [l, u] = mt(t, e);
8012
+ if (this.el = O.createElement(l, s), m.currentNode = this.el.content, e === 2 || e === 3) {
8013
+ const c = this.el.content.firstChild;
8014
+ c.replaceWith(...c.childNodes);
8015
+ }
8016
+ for (;(i = m.nextNode()) !== null && a.length < h; ) {
8017
+ if (i.nodeType === 1) {
8018
+ if (i.hasAttributes())
8019
+ for (const c of i.getAttributeNames())
8020
+ if (c.endsWith(et)) {
8021
+ const f = u[r++], $ = i.getAttribute(c).split(v), M = /([.?@])?(.*)/.exec(f);
8022
+ a.push({ type: 1, index: n, name: M[2], strings: $, ctor: M[1] === "." ? At : M[1] === "?" ? wt : M[1] === "@" ? Et : z }), i.removeAttribute(c);
8023
+ } else
8024
+ c.startsWith(v) && (a.push({ type: 6, index: n }), i.removeAttribute(c));
8025
+ if (it.test(i.tagName)) {
8026
+ const c = i.textContent.split(v), f = c.length - 1;
8027
+ if (f > 0) {
8028
+ i.textContent = T ? T.emptyScript : "";
8029
+ for (let $ = 0;$ < f; $++)
8030
+ i.append(c[$], k()), m.nextNode(), a.push({ type: 2, index: ++n });
8031
+ i.append(c[f], k());
8032
+ }
8033
+ }
8034
+ } else if (i.nodeType === 8)
8035
+ if (i.data === st)
8036
+ a.push({ type: 2, index: n });
8037
+ else {
8038
+ let c = -1;
8039
+ for (;(c = i.data.indexOf(v, c + 1)) !== -1; )
8040
+ a.push({ type: 7, index: n }), c += v.length - 1;
8041
+ }
8042
+ n++;
8043
+ }
8044
+ }
8045
+ static createElement(t, e) {
8046
+ const s = g.createElement("template");
8047
+ return s.innerHTML = t, s;
8048
+ }
8049
+ }
8050
+ function E(o, t, e = o, s) {
8051
+ if (t === w)
8052
+ return t;
8053
+ let i = s !== undefined ? e._$Co?.[s] : e._$Cl;
8054
+ const n = P(t) ? undefined : t._$litDirective$;
8055
+ 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;
8056
+ }
8057
+
8058
+ class gt {
8059
+ constructor(t, e) {
8060
+ this._$AV = [], this._$AN = undefined, this._$AD = t, this._$AM = e;
8061
+ }
8062
+ get parentNode() {
8063
+ return this._$AM.parentNode;
8064
+ }
8065
+ get _$AU() {
8066
+ return this._$AM._$AU;
8067
+ }
8068
+ u(t) {
8069
+ const { el: { content: e }, parts: s } = this._$AD, i = (t?.creationScope ?? g).importNode(e, true);
8070
+ m.currentNode = i;
8071
+ let n = m.nextNode(), r = 0, h = 0, a = s[0];
8072
+ for (;a !== undefined; ) {
8073
+ if (r === a.index) {
8074
+ let l;
8075
+ 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];
8076
+ }
8077
+ r !== a?.index && (n = m.nextNode(), r++);
8078
+ }
8079
+ return m.currentNode = g, i;
8080
+ }
8081
+ p(t) {
8082
+ let e = 0;
8083
+ for (const s of this._$AV)
8084
+ s !== undefined && (s.strings !== undefined ? (s._$AI(t, s, e), e += s.strings.length - 2) : s._$AI(t[e])), e++;
8085
+ }
8086
+ }
8087
+
8088
+ class U {
8089
+ get _$AU() {
8090
+ return this._$AM?._$AU ?? this._$Cv;
8091
+ }
8092
+ constructor(t, e, s, i) {
8093
+ 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;
8094
+ }
8095
+ get parentNode() {
8096
+ let t = this._$AA.parentNode;
8097
+ const e = this._$AM;
8098
+ return e !== undefined && t?.nodeType === 11 && (t = e.parentNode), t;
8099
+ }
8100
+ get startNode() {
8101
+ return this._$AA;
8102
+ }
8103
+ get endNode() {
8104
+ return this._$AB;
8105
+ }
8106
+ _$AI(t, e = this) {
8107
+ 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);
8108
+ }
8109
+ O(t) {
8110
+ return this._$AA.parentNode.insertBefore(t, this._$AB);
8111
+ }
8112
+ T(t) {
8113
+ this._$AH !== t && (this._$AR(), this._$AH = this.O(t));
8114
+ }
8115
+ _(t) {
8116
+ this._$AH !== d && P(this._$AH) ? this._$AA.nextSibling.data = t : this.T(g.createTextNode(t)), this._$AH = t;
8117
+ }
8118
+ $(t) {
8119
+ 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);
8120
+ if (this._$AH?._$AD === i)
8121
+ this._$AH.p(e);
8122
+ else {
8123
+ const n = new gt(i, this), r = n.u(this.options);
8124
+ n.p(e), this.T(r), this._$AH = n;
8125
+ }
8126
+ }
8127
+ _$AC(t) {
8128
+ let e = Y.get(t.strings);
8129
+ return e === undefined && Y.set(t.strings, e = new O(t)), e;
8130
+ }
8131
+ k(t) {
8132
+ B(this._$AH) || (this._$AH = [], this._$AR());
8133
+ const e = this._$AH;
8134
+ let s, i = 0;
8135
+ for (const n of t)
8136
+ i === e.length ? e.push(s = new U(this.O(k()), this.O(k()), this, this.options)) : s = e[i], s._$AI(n), i++;
8137
+ i < e.length && (this._$AR(s && s._$AB.nextSibling, i), e.length = i);
8138
+ }
8139
+ _$AR(t = this._$AA.nextSibling, e) {
8140
+ for (this._$AP?.(false, true, e);t !== this._$AB; ) {
8141
+ const s = t.nextSibling;
8142
+ t.remove(), t = s;
8143
+ }
8144
+ }
8145
+ setConnected(t) {
8146
+ this._$AM === undefined && (this._$Cv = t, this._$AP?.(t));
8147
+ }
8148
+ }
8149
+
8150
+ class z {
8151
+ get tagName() {
8152
+ return this.element.tagName;
8153
+ }
8154
+ get _$AU() {
8155
+ return this._$AM._$AU;
8156
+ }
8157
+ constructor(t, e, s, i, n) {
8158
+ 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;
8159
+ }
8160
+ _$AI(t, e = this, s, i) {
8161
+ const n = this.strings;
8162
+ let r = false;
8163
+ if (n === undefined)
8164
+ t = E(this, t, e, 0), r = !P(t) || t !== this._$AH && t !== w, r && (this._$AH = t);
8165
+ else {
8166
+ const h = t;
8167
+ let a, l;
8168
+ for (t = n[0], a = 0;a < n.length - 1; a++)
8169
+ 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;
8170
+ }
8171
+ r && !i && this.j(t);
8172
+ }
8173
+ j(t) {
8174
+ t === d ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
8175
+ }
8176
+ }
8177
+
8178
+ class At extends z {
8179
+ constructor() {
8180
+ super(...arguments), this.type = 3;
8181
+ }
8182
+ j(t) {
8183
+ this.element[this.name] = t === d ? undefined : t;
8184
+ }
8185
+ }
8186
+
8187
+ class wt extends z {
8188
+ constructor() {
8189
+ super(...arguments), this.type = 4;
8190
+ }
8191
+ j(t) {
8192
+ this.element.toggleAttribute(this.name, !!t && t !== d);
8193
+ }
8194
+ }
8195
+
8196
+ class Et extends z {
8197
+ constructor(t, e, s, i, n) {
8198
+ super(t, e, s, i, n), this.type = 5;
8199
+ }
8200
+ _$AI(t, e = this) {
8201
+ if ((t = E(this, t, e, 0) ?? d) === w)
8202
+ return;
8203
+ 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);
8204
+ i && this.element.removeEventListener(this.name, this, s), n && this.element.addEventListener(this.name, this, t), this._$AH = t;
8205
+ }
8206
+ handleEvent(t) {
8207
+ typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
8208
+ }
8209
+ }
8210
+
8211
+ class xt {
8212
+ constructor(t, e, s) {
8213
+ this.element = t, this.type = 6, this._$AN = undefined, this._$AM = e, this.options = s;
8214
+ }
8215
+ get _$AU() {
8216
+ return this._$AM._$AU;
8217
+ }
8218
+ _$AI(t) {
8219
+ E(this, t);
8220
+ }
8221
+ }
8222
+ var St = I.litHtmlPolyfillSupport;
8223
+ St?.(O, U), (I.litHtmlVersions ??= []).push("3.3.1");
8224
+ var Ct = (o, t, e) => {
8225
+ const s = e?.renderBefore ?? t;
8226
+ let i = s._$litPart$;
8227
+ if (i === undefined) {
8228
+ const n = e?.renderBefore ?? null;
8229
+ s._$litPart$ = i = new U(t.insertBefore(k(), n), n, undefined, e ?? {});
8230
+ }
8231
+ return i._$AI(o), i;
8232
+ };
8233
+ var q = globalThis;
8234
+
8235
+ class C extends A {
8236
+ constructor() {
8237
+ super(...arguments), this.renderOptions = { host: this }, this._$Do = undefined;
8238
+ }
8239
+ createRenderRoot() {
8240
+ const t = super.createRenderRoot();
8241
+ return this.renderOptions.renderBefore ??= t.firstChild, t;
8242
+ }
8243
+ update(t) {
8244
+ const e = this.render();
8245
+ this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = Ct(e, this.renderRoot, this.renderOptions);
8246
+ }
8247
+ connectedCallback() {
8248
+ super.connectedCallback(), this._$Do?.setConnected(true);
8249
+ }
8250
+ disconnectedCallback() {
8251
+ super.disconnectedCallback(), this._$Do?.setConnected(false);
8252
+ }
8253
+ render() {
8254
+ return w;
8255
+ }
8256
+ }
8257
+ C._$litElement$ = true, C.finalized = true, q.litElementHydrateSupport?.({ LitElement: C });
8258
+ var kt = q.litElementPolyfillSupport;
8259
+ kt?.({ LitElement: C });
8260
+ (q.litElementVersions ??= []).push("4.2.1");
8261
+ var Pt = (o) => (t, e) => {
8262
+ e !== undefined ? e.addInitializer(() => {
8263
+ customElements.get(o) || customElements.define(o, t);
8264
+ }) : customElements.get(o) || customElements.define(o, t);
8265
+ };
8266
+ var Ot = { attribute: true, type: String, converter: N, reflect: false, hasChanged: L };
8267
+ var Ut = (o = Ot, t, e) => {
8268
+ const { kind: s, metadata: i } = e;
8269
+ let n = globalThis.litPropertyMetadata.get(i);
8270
+ 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") {
8271
+ const { name: r } = e;
8272
+ return { set(h) {
8273
+ const a = t.get.call(this);
8274
+ t.set.call(this, h), this.requestUpdate(r, a, o);
8275
+ }, init(h) {
8276
+ return h !== undefined && this.C(r, undefined, o, h), h;
8277
+ } };
8278
+ }
8279
+ if (s === "setter") {
8280
+ const { name: r } = e;
8281
+ return function(h) {
8282
+ const a = this[r];
8283
+ t.call(this, h), this.requestUpdate(r, a, o);
8284
+ };
8285
+ }
8286
+ throw Error("Unsupported decorator location: " + s);
8287
+ };
8288
+ function _(o) {
8289
+ return (t, e) => typeof e == "object" ? Ut(o, t, e) : ((s, i, n) => {
8290
+ const r = i.hasOwnProperty(n);
8291
+ return i.constructor.createProperty(n, s), r ? Object.getOwnPropertyDescriptor(i, n) : undefined;
8292
+ })(o, t, e);
8293
+ }
8294
+ var Mt = Object.defineProperty;
8295
+ var Ht = Object.getOwnPropertyDescriptor;
8296
+ var b = (o, t, e, s) => {
8297
+ for (var i = s > 1 ? undefined : s ? Ht(t, e) : t, n = o.length - 1, r;n >= 0; n--)
8298
+ (r = o[n]) && (i = (s ? r(t, e, i) : r(i)) || i);
8299
+ return s && i && Mt(t, e, i), i;
8300
+ };
8301
+ var p = class extends C {
8302
+ constructor() {
8303
+ super(...arguments), this.variant = "primary", this.size = "default", this.type = "circle", this.state = "default", this.iconName = "home", this.disabled = false, this.buttonAriaLabel = "Icon button";
8304
+ }
8305
+ createRenderRoot() {
8306
+ return this;
8307
+ }
8308
+ connectedCallback() {
8309
+ if (super.connectedCallback(), !document.querySelector('link[href*="Roboto"]')) {
8310
+ const o = document.createElement("link");
8311
+ o.rel = "stylesheet", o.href = "https://ui.renaissance.com/fonts/Roboto/style.css", document.head.appendChild(o);
8312
+ }
8313
+ }
8314
+ set shape(o) {
8315
+ this.type = o;
8316
+ }
8317
+ get shape() {
8318
+ return this.type;
8319
+ }
8320
+ get buttonClasses() {
8321
+ return [
8322
+ "nds-icon-button",
8323
+ `nds-icon-button--${this.variant}`,
8324
+ `nds-icon-button--${this.size}`,
8325
+ `nds-icon-button--${this.type}`,
8326
+ this.state !== "default" ? `nds-icon-button--${this.state}` : "",
8327
+ this.disabled ? "nds-icon-button--disabled" : ""
8328
+ ].filter(Boolean).join(" ");
8329
+ }
8330
+ handleClick(o) {
8331
+ if (this.disabled) {
8332
+ o.preventDefault(), o.stopPropagation();
8333
+ return;
8334
+ }
8335
+ this.dispatchEvent(new CustomEvent("icon-button-click", {
8336
+ bubbles: true,
8337
+ composed: true,
8338
+ detail: { originalEvent: o }
8339
+ }));
8340
+ }
8341
+ render() {
8342
+ return yt`
8343
+ <style>
8344
+ nds-icon-button {
8345
+ display: inline-block;
8346
+ }
8347
+
8348
+ .nds-icon-button {
8349
+ display: inline-flex;
8350
+ align-items: center;
8351
+ justify-content: center;
8352
+ cursor: pointer;
8353
+ font-family: var(--font-family-roboto, "Roboto", sans-serif);
8354
+ font-weight: var(--font-weight-regular, 400);
8355
+ line-height: 1;
8356
+ text-decoration: none;
8357
+ background: none;
8358
+ position: relative;
8359
+ box-sizing: border-box;
8360
+ margin: 0;
8361
+ padding: 0;
8362
+ border: none;
8363
+ transition: background-color 0.2s ease-in-out,
8364
+ color 0.2s ease-in-out,
8365
+ box-shadow 0.2s ease-in-out;
8366
+ }
8367
+
8368
+ /* ── Sizes ── */
8369
+ .nds-icon-button--small {
8370
+ width: var(--height-32, 32px);
8371
+ height: var(--height-32, 32px);
8372
+ }
8373
+
8374
+ .nds-icon-button--medium {
8375
+ width: var(--height-36, 36px);
8376
+ height: var(--height-36, 36px);
8377
+ }
8378
+
8379
+ .nds-icon-button--default {
8380
+ width: var(--height-40, 40px);
8381
+ height: var(--height-40, 40px);
8382
+ }
8383
+
8384
+ .nds-icon-button--large {
8385
+ width: var(--height-48, 48px);
8386
+ height: var(--height-48, 48px);
8387
+ }
8388
+
8389
+ /* ── Shapes ── */
8390
+ .nds-icon-button--circle {
8391
+ border-radius: var(--radius-circle, 50%);
8392
+ }
8393
+
8394
+ .nds-icon-button--rounded {
8395
+ border-radius: var(--radius-8, 8px);
8396
+ }
8397
+
8398
+ /* ── Primary ── */
8399
+ .nds-icon-button--primary {
8400
+ background-color: var(--color-interactive-blue, #146eb3);
8401
+ color: var(--color-primary-white, #ffffff);
8402
+ }
8403
+
8404
+ .nds-icon-button--primary:hover:not(:disabled):not(.nds-icon-button--disabled) {
8405
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8406
+ }
8407
+
8408
+ .nds-icon-button--primary:active:not(:disabled):not(.nds-icon-button--disabled) {
8409
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8410
+ }
8411
+
8412
+ /* ── Secondary ── */
8413
+ .nds-icon-button--secondary {
8414
+ background-color: var(--color-primary-white, #ffffff);
8415
+ color: var(--color-interactive-blue, #146eb3);
8416
+ box-shadow: inset 0 0 0 var(--stroke-1, 1px) var(--color-interactive-blue, #146eb3);
8417
+ }
8418
+
8419
+ .nds-icon-button--secondary:hover:not(:disabled):not(.nds-icon-button--disabled) {
8420
+ background-color: var(--color-interactive-blue, #146eb3);
8421
+ color: var(--color-primary-white, #ffffff);
8422
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8423
+ }
8424
+
8425
+ .nds-icon-button--secondary:active:not(:disabled):not(.nds-icon-button--disabled) {
8426
+ background-color: var(--color-interactive-blue, #146eb3);
8427
+ color: var(--color-primary-white, #ffffff);
8428
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8429
+ }
8430
+
8431
+ /* ── Tertiary ── */
8432
+ .nds-icon-button--tertiary {
8433
+ background-color: var(--color-new-gray, #f3f5f7);
8434
+ color: var(--color-interactive-blue, #146eb3);
8435
+ }
8436
+
8437
+ .nds-icon-button--tertiary:hover:not(:disabled):not(.nds-icon-button--disabled) {
8438
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-interactive-blue, #146eb3);
8439
+ }
8440
+
8441
+ .nds-icon-button--tertiary:active:not(:disabled):not(.nds-icon-button--disabled) {
8442
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8443
+ }
8444
+
8445
+ /* ── Ghost ── */
8446
+ .nds-icon-button--ghost {
8447
+ background-color: transparent;
8448
+ color: var(--color-interactive-blue, #146eb3);
8449
+ }
8450
+
8451
+ .nds-icon-button--ghost:hover:not(:disabled):not(.nds-icon-button--disabled) {
8452
+ background-color: var(--color-new-gray, #f3f5f7);
8453
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-interactive-blue, #146eb3);
8454
+ }
8455
+
8456
+ .nds-icon-button--ghost:active:not(:disabled):not(.nds-icon-button--disabled) {
8457
+ background-color: var(--color-new-gray, #f3f5f7);
8458
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-black, #000000);
8459
+ }
8460
+
8461
+ /* ── Dark (for dark backgrounds) ── */
8462
+ .nds-icon-button--dark {
8463
+ background-color: transparent;
8464
+ color: var(--color-primary-white, #ffffff);
8465
+ box-shadow: inset 0 0 0 var(--stroke-1, 1px) var(--color-primary-white, #ffffff);
8466
+ }
8467
+
8468
+ .nds-icon-button--dark:hover:not(:disabled):not(.nds-icon-button--disabled) {
8469
+ background-color: var(--color-interactive-blue, #146eb3);
8470
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-white, #ffffff);
8471
+ }
8472
+
8473
+ .nds-icon-button--dark:active:not(:disabled):not(.nds-icon-button--disabled) {
8474
+ background-color: var(--color-interactive-blue, #146eb3);
8475
+ box-shadow: inset 0 0 0 var(--stroke-2, 2px) var(--color-primary-white, #ffffff);
8476
+ }
8477
+
8478
+ /* ── Disabled ── */
8479
+ .nds-icon-button--disabled,
8480
+ .nds-icon-button:disabled {
8481
+ opacity: 0.5;
8482
+ cursor: not-allowed;
8483
+ }
8484
+
8485
+ /* ── Icon sizing ── */
8486
+ .nds-icon-button__icon {
8487
+ line-height: 1;
8488
+ display: inline-flex;
8489
+ align-items: center;
8490
+ justify-content: center;
8491
+ color: inherit;
8492
+ }
8493
+
8494
+ .nds-icon-button--small .nds-icon-button__icon {
8495
+ font-size: var(--nds-icon-small, 12px);
8496
+ }
8497
+
8498
+ .nds-icon-button--medium .nds-icon-button__icon {
8499
+ font-size: var(--nds-icon-medium, 14px);
8500
+ }
8501
+
8502
+ .nds-icon-button--default .nds-icon-button__icon {
8503
+ font-size: var(--nds-icon-default, 16px);
8504
+ }
8505
+
8506
+ .nds-icon-button--large .nds-icon-button__icon {
8507
+ font-size: var(--nds-icon-large, 20px);
8508
+ }
8509
+
8510
+ /* ── Focus ── */
8511
+ .nds-icon-button:focus-visible {
8512
+ outline: 2px solid var(--color-focus-blue, #2b87ff);
8513
+ outline-offset: 2px;
8514
+ }
8515
+
8516
+ /* ── Reduced motion ── */
8517
+ @media (prefers-reduced-motion: reduce) {
8518
+ .nds-icon-button {
8519
+ transition: none;
8520
+ }
8521
+ }
8522
+ </style>
8523
+ <button
8524
+ type="button"
8525
+ class="${this.buttonClasses}"
8526
+ ?disabled="${this.disabled}"
8527
+ aria-disabled="${this.disabled ? "true" : "false"}"
8528
+ aria-label="${this.buttonAriaLabel}"
8529
+ @click="${this.handleClick}"
8530
+ >
8531
+ <i class="fa-light fa-${this.iconName} nds-icon-button__icon" aria-hidden="true"></i>
8532
+ </button>
8533
+ `;
8534
+ }
8535
+ };
8536
+ b([
8537
+ _()
8538
+ ], p.prototype, "variant", 2);
8539
+ b([
8540
+ _()
8541
+ ], p.prototype, "size", 2);
8542
+ b([
8543
+ _()
8544
+ ], p.prototype, "type", 2);
8545
+ b([
8546
+ _()
8547
+ ], p.prototype, "state", 2);
8548
+ b([
8549
+ _({ attribute: "icon-name" })
8550
+ ], p.prototype, "iconName", 2);
8551
+ b([
8552
+ _({ type: Boolean })
8553
+ ], p.prototype, "disabled", 2);
8554
+ b([
8555
+ _({ attribute: "button-aria-label" })
8556
+ ], p.prototype, "buttonAriaLabel", 2);
8557
+ b([
8558
+ _()
8559
+ ], p.prototype, "shape", 1);
8560
+ p = b([
8561
+ Pt("nds-icon-button")
8562
+ ], p);
8563
+
7539
8564
  // dist/components/.ItemToolBar.custom-element.unbundled.js
7540
8565
  var __pieDefineSafely = (tagName, ctor) => {
7541
8566
  if (customElements.get(tagName))
@@ -7549,36 +8574,94 @@ var __pieDefineSafely = (tagName, ctor) => {
7549
8574
  }
7550
8575
  }
7551
8576
  };
7552
- var root_4 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7553
- var root_5 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7554
- var root_9 = from_html(`<span aria-hidden="true"></span>`);
7555
- var root_10 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
7556
- var root_12 = from_html(`<span aria-hidden="true"></span>`);
7557
- var root_13 = from_html(`<i aria-hidden="true"></i>`);
7558
- var root_7 = from_html(`<a><!></a>`);
7559
- var root_16 = from_html(`<span aria-hidden="true"></span>`);
7560
- var root_17 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
7561
- var root_19 = from_html(`<span aria-hidden="true"></span>`);
7562
- var root_20 = from_html(`<i aria-hidden="true"></i>`);
7563
- var root_14 = from_html(`<button type="button"><!></button>`);
7564
- var root_22 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7565
- var root_23 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
7566
- var root_26 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
7567
- var root_27 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
7568
- var root_24 = from_html(`<div></div>`);
7569
- var root_2 = from_html(`<div><div class="item-toolbar__tools-row svelte-rnx3ie"><!> <!> <!></div> <!></div>`);
8577
+ var root_1 = from_html(`<span class="item-toolbar__element-host svelte-rnx3ie"></span>`);
8578
+ var root_2 = from_html(`<span class="item-toolbar__calculator-icon svelte-rnx3ie" aria-hidden="true"><i class="fa-regular fa-calculator svelte-rnx3ie"></i></span>`);
8579
+ var root_3 = from_html(`<span aria-hidden="true"></span>`);
8580
+ var root_4 = from_html(`<img class="item-toolbar__icon-image svelte-rnx3ie" alt=""/>`);
8581
+ var root_5 = from_html(`<i aria-hidden="true"></i>`);
8582
+ var root_6 = from_html(`<a><!></a>`);
8583
+ var root_7 = from_html(`<button type="button"><!></button>`);
8584
+ var root_8 = from_html(`<span class="item-toolbar__controls-host svelte-rnx3ie"></span>`);
8585
+ var root_9 = from_html(`<div></div>`);
8586
+ var root_10 = from_html(`<div><div class="item-toolbar__tools-row svelte-rnx3ie"><!> <!> <!></div> <!></div>`);
7570
8587
  var $$css = {
7571
8588
  hash: "svelte-rnx3ie",
7572
8589
  code: `.item-toolbar.svelte-rnx3ie {display:flex;flex-direction:column;align-items:flex-end;gap:0;--pie-toolbar-tools-row-height: 2rem;--pie-tts-controls-row-height: 2.875rem;}.item-toolbar__tools-row.svelte-rnx3ie {display:flex;align-items:center;justify-content:flex-end;flex-wrap:nowrap;gap:0.5rem;min-height:var(--pie-toolbar-tools-row-height);}.item-toolbar__controls-row.svelte-rnx3ie {display:flex;align-items:center;justify-content:flex-end;width:100%;min-height:0;height:auto;}.item-toolbar__controls-row--reserve.svelte-rnx3ie {min-height:var(--pie-tts-controls-row-height);height:var(--pie-tts-controls-row-height);}.item-toolbar__controls-row--active.svelte-rnx3ie {min-height:var(--pie-tts-controls-row-height);height:var(--pie-tts-controls-row-height);}.item-toolbar__controls-row--align-start.svelte-rnx3ie {justify-content:flex-start;}.item-toolbar__controls-host.svelte-rnx3ie {display:inline-flex;align-items:center;justify-content:flex-end;width:100%;}.item-toolbar--top.svelte-rnx3ie,
7573
8590
  .item-toolbar--bottom.svelte-rnx3ie {align-items:flex-end;}.item-toolbar--left.svelte-rnx3ie,
7574
8591
  .item-toolbar--right.svelte-rnx3ie {align-items:stretch;}.item-toolbar--left.svelte-rnx3ie .item-toolbar__tools-row:where(.svelte-rnx3ie),
7575
8592
  .item-toolbar--right.svelte-rnx3ie .item-toolbar__tools-row:where(.svelte-rnx3ie) {flex-direction:column;align-items:center;justify-content:flex-start;flex-wrap:nowrap;}.item-toolbar--left.svelte-rnx3ie .item-toolbar__controls-row:where(.svelte-rnx3ie),
7576
- .item-toolbar--right.svelte-rnx3ie .item-toolbar__controls-row:where(.svelte-rnx3ie) {justify-content:flex-start;width:auto;min-height:0;height:auto;}.item-toolbar__button.svelte-rnx3ie {display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;padding:0.25rem;border:1px solid var(--pie-button-border, var(--pie-border, #ccc));border-radius:0.25rem;background-color:var(--pie-button-bg, var(--pie-background, white));color:var(--pie-button-color, var(--pie-text, #333));cursor:pointer;transition:all 0.15s ease;text-decoration:none;}.item-toolbar__element-host.svelte-rnx3ie {display:contents;}.item-toolbar--sm.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.75rem;height:2.75rem;}.item-toolbar--sm.svelte-rnx3ie {--pie-toolbar-tools-row-height: 2.75rem;--pie-tts-controls-row-height: 3.625rem;}.item-toolbar--lg.svelte-rnx3ie .item-toolbar__button:where(.svelte-rnx3ie) {width:2.5rem;height:2.5rem;}.item-toolbar--lg.svelte-rnx3ie {--pie-toolbar-tools-row-height: 2.5rem;--pie-tts-controls-row-height: 3.375rem;}.item-toolbar__button.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-button-hover-bg, var(--pie-secondary-background, #f5f5f5));border-color:var(--pie-button-hover-border, var(--pie-button-border, var(--pie-border, #ccc)));color:var(--pie-button-hover-color, var(--pie-button-color, var(--pie-text, #333)));transform:translateY(-1px);box-shadow:0 2px 4px color-mix(in srgb, var(--pie-black, #000) 10%, transparent);}.item-toolbar__button.svelte-rnx3ie:active:not(:disabled) {transform:translateY(0);box-shadow:none;}.item-toolbar__button--active.svelte-rnx3ie {background-color:var(--pie-primary, #1976d2);color:var(--pie-white, #fff);border-color:var(--pie-primary, #1976d2);}.item-toolbar__button--active.svelte-rnx3ie:hover:not(:disabled) {background-color:var(--pie-primary-dark, #1565c0);}.item-toolbar__button.svelte-rnx3ie:focus-visible {outline:2px solid var(--pie-button-focus-outline, var(--pie-primary, #1976d2));outline-offset:2px;}.item-toolbar__button.svelte-rnx3ie:disabled {opacity:0.5;cursor:not-allowed;}.item-toolbar__button.svelte-rnx3ie svg {width:100%;height:100%;}.item-toolbar__icon-image.svelte-rnx3ie {width:100%;height:100%;object-fit:contain;}`
8593
+ .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;}
8594
+
8595
+ /* 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%;}
8596
+
8597
+ /* Defensive: if FA fails to load (shadow injection misses, CSP blocks the
8598
+ stylesheet, etc.), the <i> would otherwise render as italic text. */.item-toolbar__calculator-icon.svelte-rnx3ie > i:where(.svelte-rnx3ie) {font-style:normal;}`
7577
8599
  };
7578
8600
  function ItemToolBar($$anchor, $$props) {
7579
8601
  push($$props, true);
7580
8602
  append_styles($$anchor, $$css);
7581
8603
  const isBrowser = typeof window !== "undefined";
8604
+ const FA_PRO_HREFS = ["/_fa-pro/fontawesome.min.css", "/_fa-pro/light.min.css"];
8605
+ const FA_FREE_HREF = "https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.5.2/css/all.min.css";
8606
+ const ROBOTO_HREF = "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap";
8607
+ let ndsAssetsInstalled = false;
8608
+ const ensureNdsAssets = () => {
8609
+ if (!isBrowser || ndsAssetsInstalled)
8610
+ return;
8611
+ ndsAssetsInstalled = true;
8612
+ if (!document.querySelector('link[href*="Roboto"]')) {
8613
+ const link2 = document.createElement("link");
8614
+ link2.rel = "stylesheet";
8615
+ link2.href = ROBOTO_HREF;
8616
+ document.head.appendChild(link2);
8617
+ }
8618
+ if (!document.querySelector(`link[href="${FA_FREE_HREF}"]`)) {
8619
+ const link2 = document.createElement("link");
8620
+ link2.rel = "stylesheet";
8621
+ link2.href = FA_FREE_HREF;
8622
+ document.head.appendChild(link2);
8623
+ }
8624
+ for (const href of FA_PRO_HREFS) {
8625
+ if (document.querySelector(`link[href="${href}"]`))
8626
+ continue;
8627
+ const link2 = document.createElement("link");
8628
+ link2.rel = "stylesheet";
8629
+ link2.href = href;
8630
+ document.head.appendChild(link2);
8631
+ }
8632
+ };
8633
+ const FA_TOOLBAR_SHADOW_INSTALLED = "__pieFaToolbarShadowInstalled";
8634
+ const FA_HREF_PATTERN = /font.?awesome|fa-?pro/i;
8635
+ const installFaInToolbarShadow = (root) => {
8636
+ const shadow = root.getRootNode();
8637
+ if (!(shadow instanceof ShadowRoot))
8638
+ return;
8639
+ const marker = shadow;
8640
+ if (marker[FA_TOOLBAR_SHADOW_INSTALLED])
8641
+ return;
8642
+ marker[FA_TOOLBAR_SHADOW_INSTALLED] = true;
8643
+ const seenHrefs = new Set;
8644
+ const appendLink = (href) => {
8645
+ if (!href || seenHrefs.has(href))
8646
+ return;
8647
+ seenHrefs.add(href);
8648
+ const link2 = document.createElement("link");
8649
+ link2.rel = "stylesheet";
8650
+ link2.href = href;
8651
+ shadow.appendChild(link2);
8652
+ };
8653
+ const documentFaLinks = Array.from(document.querySelectorAll('link[rel="stylesheet"][href]')).filter((link2) => FA_HREF_PATTERN.test(link2.href));
8654
+ for (const link2 of documentFaLinks)
8655
+ appendLink(link2.href);
8656
+ const shim = document.createElement("style");
8657
+ shim.textContent = '.fa-light{font-family:"Font Awesome 6 Free";font-weight:900;}';
8658
+ shadow.appendChild(shim);
8659
+ };
8660
+ const ndsIconButtonAction = (node) => {
8661
+ ensureNdsAssets();
8662
+ installFaInToolbarShadow(node);
8663
+ return {};
8664
+ };
7582
8665
  const fallbackToolRegistry = createPackagedToolRegistry({ toolModuleLoaders: DEFAULT_TOOL_MODULE_LOADERS });
7583
8666
  let activeToolState = state(proxy({}));
7584
8667
  let level = prop($$props, "level", 7, "item"), scopeId = prop($$props, "scopeId", 7, ""), itemId = prop($$props, "itemId", 7, ""), sectionId = prop($$props, "sectionId", 7, ""), catalogId = prop($$props, "catalogId", 7, ""), tools = prop($$props, "tools", 7, "calculator,textToSpeech,answerEliminator"), contentKind = prop($$props, "contentKind", 7, "assessment-item"), position = prop($$props, "position", 7, "bottom"), scopeElement = prop($$props, "scopeElement", 7, null), toolRegistry = prop($$props, "toolRegistry", 7, null), item = prop($$props, "item", 7, null), hostButtons = prop($$props, "hostButtons", 23, () => []), className = prop($$props, "class", 7, ""), size = prop($$props, "size", 7, "md"), language = prop($$props, "language", 7, "en-US");
@@ -8005,6 +9088,13 @@ function ItemToolBar($$anchor, $$props) {
8005
9088
  const controlsRowShouldExpandForActiveTool = user_derived(() => get2(controlsRowHints).some((entry) => entry.hint?.showWhenToolActive === true && (get2(renderedToolActiveById)[entry.toolId] ?? false)));
8006
9089
  const controlsRowAlignStart = user_derived(() => position() === "left" || position() === "right");
8007
9090
  const shouldRenderControlsRow = user_derived(() => get2(mountedElementsControlsRow).length > 0 || get2(controlsRowShouldReserveSpace) || get2(controlsRowShouldExpandForActiveTool));
9091
+ user_effect(() => {
9092
+ if (!isBrowser)
9093
+ return;
9094
+ if (get2(toolbarItems).some((item2) => item2.icon === "calculator")) {
9095
+ ensureNdsAssets();
9096
+ }
9097
+ });
8008
9098
  function isToolbarItemActive(item2) {
8009
9099
  if (item2.id in get2(activeToolState)) {
8010
9100
  return get2(activeToolState)[item2.id] === true;
@@ -8151,8 +9241,8 @@ function ItemToolBar($$anchor, $$props) {
8151
9241
  let resizeStartHeight = 0;
8152
9242
  let resizeStartX = 0;
8153
9243
  let resizeStartY = 0;
8154
- let x = 0;
8155
- let y = 0;
9244
+ let x2 = 0;
9245
+ let y2 = 0;
8156
9246
  let width = currentArgs.mounted.entry.shell?.initialWidth ?? 720;
8157
9247
  let height = currentArgs.mounted.entry.shell?.initialHeight ?? 560;
8158
9248
  let focusTrapCleanup = null;
@@ -8210,14 +9300,14 @@ function ItemToolBar($$anchor, $$props) {
8210
9300
  const { minWidth, minHeight, maxWidth, maxHeight } = getShellBounds();
8211
9301
  width = clamp(width, minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth)));
8212
9302
  height = clamp(height, minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight)));
8213
- x = clamp(x, 0, Math.max(0, window.innerWidth - width));
8214
- y = clamp(y, 0, Math.max(0, window.innerHeight - height));
9303
+ x2 = clamp(x2, 0, Math.max(0, window.innerWidth - width));
9304
+ y2 = clamp(y2, 0, Math.max(0, window.innerHeight - height));
8215
9305
  applyShellStyle();
8216
9306
  notifyHostedResize();
8217
9307
  };
8218
9308
  const moveBy = (dx, dy) => {
8219
- x += dx;
8220
- y += dy;
9309
+ x2 += dx;
9310
+ y2 += dy;
8221
9311
  applyPositionAndSize();
8222
9312
  };
8223
9313
  const resizeBy = (dw, dh) => {
@@ -8225,6 +9315,40 @@ function ItemToolBar($$anchor, $$props) {
8225
9315
  height += dh;
8226
9316
  applyPositionAndSize();
8227
9317
  };
9318
+ const createShellIconButton = (label, iconName, onActivate, faVariant = "fa-regular") => {
9319
+ const button = document.createElement("nds-icon-button");
9320
+ button.setAttribute("variant", "tertiary");
9321
+ button.setAttribute("size", "small");
9322
+ button.setAttribute("type", "circle");
9323
+ button.setAttribute("icon-name", iconName);
9324
+ button.setAttribute("button-aria-label", label);
9325
+ button.title = label;
9326
+ button.addEventListener("click", (event2) => {
9327
+ event2.stopPropagation();
9328
+ onActivate();
9329
+ bringToFront();
9330
+ });
9331
+ if (faVariant !== "fa-light") {
9332
+ const swapVariant = (icon) => {
9333
+ icon.classList.remove("fa-light");
9334
+ icon.classList.add(faVariant);
9335
+ };
9336
+ const existing = button.querySelector("i.fa-light");
9337
+ if (existing) {
9338
+ swapVariant(existing);
9339
+ } else {
9340
+ const observer = new MutationObserver(() => {
9341
+ const target = button.querySelector("i.fa-light");
9342
+ if (target) {
9343
+ swapVariant(target);
9344
+ observer.disconnect();
9345
+ }
9346
+ });
9347
+ observer.observe(button, { childList: true, subtree: true });
9348
+ }
9349
+ }
9350
+ return button;
9351
+ };
8228
9352
  const createShellControlButton = (label, glyph, onActivate) => {
8229
9353
  const button = document.createElement("button");
8230
9354
  button.type = "button";
@@ -8264,8 +9388,8 @@ function ItemToolBar($$anchor, $$props) {
8264
9388
  const applyShellStyle = () => {
8265
9389
  if (!shellEl)
8266
9390
  return;
8267
- shellEl.style.left = `${x}px`;
8268
- shellEl.style.top = `${y}px`;
9391
+ shellEl.style.left = `${x2}px`;
9392
+ shellEl.style.top = `${y2}px`;
8269
9393
  shellEl.style.width = `${width}px`;
8270
9394
  shellEl.style.height = `${height}px`;
8271
9395
  shellEl.style.display = currentArgs.active ? "flex" : "none";
@@ -8303,8 +9427,8 @@ function ItemToolBar($$anchor, $$props) {
8303
9427
  const centerShell = () => {
8304
9428
  const viewportW = window.innerWidth;
8305
9429
  const viewportH = window.innerHeight;
8306
- x = Math.max(0, Math.round((viewportW - width) / 2));
8307
- y = Math.max(0, Math.round((viewportH - height) / 2));
9430
+ x2 = Math.max(0, Math.round((viewportW - width) / 2));
9431
+ y2 = Math.max(0, Math.round((viewportH - height) / 2));
8308
9432
  applyPositionAndSize();
8309
9433
  };
8310
9434
  const restoreOpenerFocus = () => {
@@ -8370,8 +9494,8 @@ function ItemToolBar($$anchor, $$props) {
8370
9494
  if (!shellEl)
8371
9495
  return;
8372
9496
  dragPointerId = event2.pointerId;
8373
- dragOffsetX = event2.clientX - x;
8374
- dragOffsetY = event2.clientY - y;
9497
+ dragOffsetX = event2.clientX - x2;
9498
+ dragOffsetY = event2.clientY - y2;
8375
9499
  shellEl.setPointerCapture(event2.pointerId);
8376
9500
  bringToFront();
8377
9501
  };
@@ -8393,8 +9517,8 @@ function ItemToolBar($$anchor, $$props) {
8393
9517
  if (dragPointerId === event2.pointerId) {
8394
9518
  const maxX = Math.max(0, window.innerWidth - width);
8395
9519
  const maxY = Math.max(0, window.innerHeight - height);
8396
- x = clamp(event2.clientX - dragOffsetX, 0, maxX);
8397
- y = clamp(event2.clientY - dragOffsetY, 0, maxY);
9520
+ x2 = clamp(event2.clientX - dragOffsetX, 0, maxX);
9521
+ y2 = clamp(event2.clientY - dragOffsetY, 0, maxY);
8398
9522
  applyShellStyle();
8399
9523
  return;
8400
9524
  }
@@ -8404,8 +9528,8 @@ function ItemToolBar($$anchor, $$props) {
8404
9528
  const minHeight = shellConfig?.minHeight ?? 240;
8405
9529
  const maxWidth = shellConfig?.maxWidth ?? window.innerWidth;
8406
9530
  const maxHeight = shellConfig?.maxHeight ?? window.innerHeight;
8407
- width = clamp(resizeStartWidth + (event2.clientX - resizeStartX), minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth - x)));
8408
- height = clamp(resizeStartHeight + (event2.clientY - resizeStartY), minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight - y)));
9531
+ width = clamp(resizeStartWidth + (event2.clientX - resizeStartX), minWidth, Math.max(minWidth, Math.min(maxWidth, window.innerWidth - x2)));
9532
+ height = clamp(resizeStartHeight + (event2.clientY - resizeStartY), minHeight, Math.max(minHeight, Math.min(maxHeight, window.innerHeight - y2)));
8409
9533
  applyShellStyle();
8410
9534
  notifyHostedResize();
8411
9535
  }
@@ -8426,6 +9550,9 @@ function ItemToolBar($$anchor, $$props) {
8426
9550
  applyPositionAndSize();
8427
9551
  };
8428
9552
  if (isBrowser && currentArgs.mounted.entry.shell) {
9553
+ const isCalculatorShell = currentArgs.mounted.toolId === "calculator";
9554
+ if (isCalculatorShell)
9555
+ ensureNdsAssets();
8429
9556
  shellEl = document.createElement("div");
8430
9557
  shellEl.className = "pie-tool-shell";
8431
9558
  shellEl.setAttribute("data-pie-tool-shell", currentArgs.mounted.toolId);
@@ -8443,9 +9570,18 @@ function ItemToolBar($$anchor, $$props) {
8443
9570
  headerEl.style.display = "flex";
8444
9571
  headerEl.style.alignItems = "center";
8445
9572
  headerEl.style.justifyContent = "space-between";
8446
- headerEl.style.padding = "10px 12px";
8447
- headerEl.style.background = "var(--pie-primary-dark, #2c3e50)";
8448
- headerEl.style.color = "var(--pie-white, #fff)";
9573
+ headerEl.style.padding = isCalculatorShell ? "12px 12px 12px 28px" : "10px 12px";
9574
+ if (isCalculatorShell) {
9575
+ headerEl.style.minHeight = "48px";
9576
+ }
9577
+ if (isCalculatorShell) {
9578
+ headerEl.style.background = "var(--pie-section-player-card-header-background, #f3f4f6)";
9579
+ headerEl.style.color = "var(--pie-text, #111827)";
9580
+ headerEl.style.borderBottom = "1px solid var(--pie-border-light, #e5e7eb)";
9581
+ } else {
9582
+ headerEl.style.background = "var(--pie-primary-dark, #2c3e50)";
9583
+ headerEl.style.color = "var(--pie-white, #fff)";
9584
+ }
8449
9585
  headerEl.style.cursor = currentArgs.mounted.entry.shell.draggable === false ? "default" : "move";
8450
9586
  headerEl.style.flex = "0 0 auto";
8451
9587
  titleEl = document.createElement("span");
@@ -8456,74 +9592,102 @@ function ItemToolBar($$anchor, $$props) {
8456
9592
  controlsEl.className = "pie-tool-shell__controls";
8457
9593
  controlsEl.style.display = "inline-flex";
8458
9594
  controlsEl.style.alignItems = "center";
8459
- controlsEl.style.gap = "4px";
9595
+ controlsEl.style.gap = isCalculatorShell ? "6px" : "4px";
8460
9596
  const shellConfig = currentArgs.mounted.entry.shell;
9597
+ const appendControl = (label, glyph, iconName, onActivate, faVariant = "fa-regular") => {
9598
+ if (!controlsEl)
9599
+ return;
9600
+ controlsEl.appendChild(isCalculatorShell ? createShellIconButton(label, iconName, onActivate, faVariant) : createShellControlButton(label, glyph, onActivate));
9601
+ };
8461
9602
  if (shellConfig?.draggable !== false) {
8462
- controlsEl.appendChild(createShellControlButton("Move tool left", "←", () => moveBy(-24, 0)));
8463
- controlsEl.appendChild(createShellControlButton("Move tool right", "→", () => moveBy(24, 0)));
8464
- controlsEl.appendChild(createShellControlButton("Move tool up", "↑", () => moveBy(0, -24)));
8465
- controlsEl.appendChild(createShellControlButton("Move tool down", "↓", () => moveBy(0, 24)));
9603
+ appendControl("Move tool left", "←", "chevron-left", () => moveBy(-24, 0));
9604
+ appendControl("Move tool right", "→", "chevron-right", () => moveBy(24, 0));
9605
+ appendControl("Move tool up", "↑", "chevron-up", () => moveBy(0, -24));
9606
+ appendControl("Move tool down", "↓", "chevron-down", () => moveBy(0, 24));
8466
9607
  }
8467
9608
  if (shellConfig?.resizable !== false) {
8468
- controlsEl.appendChild(createShellControlButton("Shrink tool window", "−", () => resizeBy(-40, -40)));
8469
- controlsEl.appendChild(createShellControlButton("Grow tool window", "+", () => resizeBy(40, 40)));
8470
- }
8471
- controlsEl.appendChild(createShellControlButton("Center tool window", "◎", centerShell));
8472
- headerEl.appendChild(controlsEl);
8473
- closeButtonEl = document.createElement("button");
8474
- closeButtonEl.type = "button";
8475
- closeButtonEl.className = "pie-tool-shell__close";
8476
- closeButtonEl.setAttribute("aria-label", "Close tool");
8477
- const svgNs = "http://www.w3.org/2000/svg";
8478
- const closeIconEl = document.createElementNS(svgNs, "svg");
8479
- closeIconEl.setAttribute("xmlns", svgNs);
8480
- closeIconEl.setAttribute("viewBox", "0 0 16 16");
8481
- closeIconEl.setAttribute("aria-hidden", "true");
8482
- const closeIconPath = document.createElementNS(svgNs, "path");
8483
- closeIconPath.setAttribute("d", "M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5");
8484
- closeIconPath.setAttribute("stroke", "currentColor");
8485
- closeIconPath.setAttribute("stroke-width", "1.8");
8486
- closeIconPath.setAttribute("stroke-linecap", "round");
8487
- closeIconEl.appendChild(closeIconPath);
8488
- closeButtonEl.appendChild(closeIconEl);
8489
- const closeIconStyle = closeIconEl.style;
8490
- closeIconStyle.width = "16px";
8491
- closeIconStyle.height = "16px";
8492
- closeIconStyle.display = "block";
8493
- closeIconStyle.flexShrink = "0";
8494
- closeIconStyle.pointerEvents = "none";
8495
- const closeButtonBaseBackground = "color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)";
8496
- const closeButtonHoverBackground = "color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";
8497
- closeButtonEl.style.border = "1px solid transparent";
8498
- closeButtonEl.style.background = closeButtonBaseBackground;
8499
- closeButtonEl.style.color = "inherit";
8500
- closeButtonEl.style.cursor = "pointer";
8501
- closeButtonEl.style.display = "inline-flex";
8502
- closeButtonEl.style.alignItems = "center";
8503
- closeButtonEl.style.justifyContent = "center";
8504
- closeButtonEl.style.width = "28px";
8505
- closeButtonEl.style.height = "28px";
8506
- closeButtonEl.style.padding = "0";
8507
- closeButtonEl.style.borderRadius = "8px";
8508
- closeButtonEl.style.lineHeight = "0";
8509
- closeButtonEl.style.transition = "background-color 0.15s ease, border-color 0.15s ease";
8510
- closeButtonEl.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-flex";
8511
- closeButtonEl.onmouseenter = () => {
8512
- closeButtonEl && (closeButtonEl.style.background = closeButtonHoverBackground);
8513
- };
8514
- closeButtonEl.onmouseleave = () => {
8515
- closeButtonEl && (closeButtonEl.style.background = closeButtonBaseBackground);
8516
- };
8517
- closeButtonEl.onfocus = () => {
8518
- closeButtonEl && (closeButtonEl.style.outline = "2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))");
8519
- closeButtonEl && (closeButtonEl.style.outlineOffset = "2px");
8520
- };
8521
- closeButtonEl.onblur = () => {
8522
- closeButtonEl && (closeButtonEl.style.outline = "none");
8523
- closeButtonEl && (closeButtonEl.style.outlineOffset = "0");
8524
- };
8525
- closeButtonEl.onclick = closeShell;
8526
- headerEl.appendChild(closeButtonEl);
9609
+ appendControl("Shrink tool window", "−", "magnifying-glass-minus", () => resizeBy(-40, -40));
9610
+ appendControl("Grow tool window", "+", "magnifying-glass-plus", () => resizeBy(40, 40));
9611
+ }
9612
+ if (!isCalculatorShell) {
9613
+ controlsEl.appendChild(createShellControlButton("Center tool window", "◎", centerShell));
9614
+ }
9615
+ let rightClusterEl = null;
9616
+ if (isCalculatorShell) {
9617
+ rightClusterEl = document.createElement("div");
9618
+ rightClusterEl.className = "pie-tool-shell__header-right";
9619
+ rightClusterEl.style.display = "inline-flex";
9620
+ rightClusterEl.style.alignItems = "center";
9621
+ rightClusterEl.style.gap = "6px";
9622
+ rightClusterEl.appendChild(controlsEl);
9623
+ headerEl.appendChild(rightClusterEl);
9624
+ } else {
9625
+ headerEl.appendChild(controlsEl);
9626
+ }
9627
+ if (isCalculatorShell) {
9628
+ closeButtonEl = createShellIconButton("Close tool", "xmark", closeShell, "fa-regular");
9629
+ closeButtonEl.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-block";
9630
+ } else {
9631
+ const closeButton = document.createElement("button");
9632
+ closeButton.type = "button";
9633
+ closeButton.className = "pie-tool-shell__close";
9634
+ closeButton.setAttribute("aria-label", "Close tool");
9635
+ const svgNs = "http://www.w3.org/2000/svg";
9636
+ const closeIconEl = document.createElementNS(svgNs, "svg");
9637
+ closeIconEl.setAttribute("xmlns", svgNs);
9638
+ closeIconEl.setAttribute("viewBox", "0 0 16 16");
9639
+ closeIconEl.setAttribute("aria-hidden", "true");
9640
+ const closeIconPath = document.createElementNS(svgNs, "path");
9641
+ closeIconPath.setAttribute("d", "M3.5 3.5L12.5 12.5M12.5 3.5L3.5 12.5");
9642
+ closeIconPath.setAttribute("stroke", "currentColor");
9643
+ closeIconPath.setAttribute("stroke-width", "1.8");
9644
+ closeIconPath.setAttribute("stroke-linecap", "round");
9645
+ closeIconEl.appendChild(closeIconPath);
9646
+ closeButton.appendChild(closeIconEl);
9647
+ const closeIconStyle = closeIconEl.style;
9648
+ closeIconStyle.width = "16px";
9649
+ closeIconStyle.height = "16px";
9650
+ closeIconStyle.display = "block";
9651
+ closeIconStyle.flexShrink = "0";
9652
+ closeIconStyle.pointerEvents = "none";
9653
+ const closeButtonBaseBackground = "color-mix(in srgb, var(--pie-white, #fff) 8%, transparent)";
9654
+ const closeButtonHoverBackground = "color-mix(in srgb, var(--pie-white, #fff) 18%, transparent)";
9655
+ closeButton.style.border = "1px solid transparent";
9656
+ closeButton.style.background = closeButtonBaseBackground;
9657
+ closeButton.style.color = "inherit";
9658
+ closeButton.style.cursor = "pointer";
9659
+ closeButton.style.display = "inline-flex";
9660
+ closeButton.style.alignItems = "center";
9661
+ closeButton.style.justifyContent = "center";
9662
+ closeButton.style.width = "28px";
9663
+ closeButton.style.height = "28px";
9664
+ closeButton.style.padding = "0";
9665
+ closeButton.style.borderRadius = "8px";
9666
+ closeButton.style.lineHeight = "0";
9667
+ closeButton.style.transition = "background-color 0.15s ease, border-color 0.15s ease";
9668
+ closeButton.style.display = currentArgs.mounted.entry.shell.closeable === false ? "none" : "inline-flex";
9669
+ closeButton.onmouseenter = () => {
9670
+ closeButton.style.background = closeButtonHoverBackground;
9671
+ };
9672
+ closeButton.onmouseleave = () => {
9673
+ closeButton.style.background = closeButtonBaseBackground;
9674
+ };
9675
+ closeButton.onfocus = () => {
9676
+ closeButton.style.outline = "2px solid var(--pie-button-focus-outline, var(--pie-primary, #4A90E2))";
9677
+ closeButton.style.outlineOffset = "2px";
9678
+ };
9679
+ closeButton.onblur = () => {
9680
+ closeButton.style.outline = "none";
9681
+ closeButton.style.outlineOffset = "0";
9682
+ };
9683
+ closeButton.onclick = closeShell;
9684
+ closeButtonEl = closeButton;
9685
+ }
9686
+ if (rightClusterEl) {
9687
+ rightClusterEl.appendChild(closeButtonEl);
9688
+ } else {
9689
+ headerEl.appendChild(closeButtonEl);
9690
+ }
8527
9691
  headerEl.tabIndex = 0;
8528
9692
  headerEl.onkeydown = (event2) => {
8529
9693
  if (event2.key === "Home") {
@@ -8602,7 +9766,8 @@ function ItemToolBar($$anchor, $$props) {
8602
9766
  if (!shellEl || !contentEl || !titleEl || !closeButtonEl)
8603
9767
  return;
8604
9768
  titleEl.textContent = currentArgs.mounted.entry.shell?.title || currentArgs.mounted.toolId;
8605
- closeButtonEl.style.display = currentArgs.mounted.entry.shell?.closeable === false ? "none" : "inline-flex";
9769
+ const closeButtonOpenDisplay = currentArgs.mounted.toolId === "calculator" ? "inline-block" : "inline-flex";
9770
+ closeButtonEl.style.display = currentArgs.mounted.entry.shell?.closeable === false ? "none" : closeButtonOpenDisplay;
8606
9771
  mountContent();
8607
9772
  applyShellStyle();
8608
9773
  notifyHostedResize();
@@ -8754,8 +9919,8 @@ function ItemToolBar($$anchor, $$props) {
8754
9919
  var fragment = comment();
8755
9920
  var node_1 = first_child(fragment);
8756
9921
  {
8757
- var consequent_13 = ($$anchor2) => {
8758
- var div = root_2();
9922
+ var consequent_15 = ($$anchor2) => {
9923
+ var div = root_10();
8759
9924
  let classes;
8760
9925
  var div_1 = child(div);
8761
9926
  var node_2 = child(div_1);
@@ -8764,7 +9929,7 @@ function ItemToolBar($$anchor, $$props) {
8764
9929
  var node_3 = first_child(fragment_1);
8765
9930
  {
8766
9931
  var consequent = ($$anchor4) => {
8767
- var span = root_4();
9932
+ var span = root_1();
8768
9933
  action(span, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
8769
9934
  mounted: get2(mounted),
8770
9935
  active: get2(renderedToolActiveById)[get2(mounted).toolId] ?? false
@@ -8772,7 +9937,7 @@ function ItemToolBar($$anchor, $$props) {
8772
9937
  append($$anchor4, span);
8773
9938
  };
8774
9939
  var alternate = ($$anchor4) => {
8775
- var span_1 = root_5();
9940
+ var span_1 = root_1();
8776
9941
  action(span_1, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
8777
9942
  append($$anchor4, span_1);
8778
9943
  };
@@ -8790,24 +9955,29 @@ function ItemToolBar($$anchor, $$props) {
8790
9955
  var fragment_2 = comment();
8791
9956
  var node_5 = first_child(fragment_2);
8792
9957
  {
8793
- var consequent_5 = ($$anchor4) => {
8794
- var a = root_7();
9958
+ var consequent_6 = ($$anchor4) => {
9959
+ var a = root_6();
8795
9960
  let classes_1;
8796
9961
  var node_6 = child(a);
8797
9962
  {
8798
- var consequent_4 = ($$anchor5) => {
9963
+ var consequent_5 = ($$anchor5) => {
8799
9964
  var fragment_3 = comment();
8800
9965
  var node_7 = first_child(fragment_3);
8801
9966
  {
8802
9967
  var consequent_1 = ($$anchor6) => {
8803
- var span_2 = root_9();
8804
- html(span_2, () => sanitizeSvgIcon(get2(item2).icon), true);
8805
- reset(span_2);
9968
+ var span_2 = root_2();
9969
+ action(span_2, ($$node) => ndsIconButtonAction?.($$node));
8806
9970
  append($$anchor6, span_2);
8807
9971
  };
8808
- var d = user_derived(() => isInlineSvgIcon(get2(item2).icon));
8809
9972
  var consequent_2 = ($$anchor6) => {
8810
- var img = root_10();
9973
+ var span_3 = root_3();
9974
+ html(span_3, () => sanitizeSvgIcon(get2(item2).icon), true);
9975
+ reset(span_3);
9976
+ append($$anchor6, span_3);
9977
+ };
9978
+ var d2 = user_derived(() => isInlineSvgIcon(get2(item2).icon));
9979
+ var consequent_3 = ($$anchor6) => {
9980
+ var img = root_4();
8811
9981
  template_effect(() => set_attribute2(img, "src", get2(item2).icon));
8812
9982
  append($$anchor6, img);
8813
9983
  };
@@ -8817,20 +9987,20 @@ function ItemToolBar($$anchor, $$props) {
8817
9987
  var fragment_4 = comment();
8818
9988
  var node_8 = first_child(fragment_4);
8819
9989
  {
8820
- var consequent_3 = ($$anchor7) => {
8821
- var span_3 = root_12();
8822
- html(span_3, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
8823
- reset(span_3);
8824
- append($$anchor7, span_3);
9990
+ var consequent_4 = ($$anchor7) => {
9991
+ var span_4 = root_3();
9992
+ html(span_4, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
9993
+ reset(span_4);
9994
+ append($$anchor7, span_4);
8825
9995
  };
8826
9996
  var alternate_1 = ($$anchor7) => {
8827
- var i = root_13();
9997
+ var i = root_5();
8828
9998
  template_effect(() => set_class(i, 1, `icon icon-${get2(item2).icon}`, "svelte-rnx3ie"));
8829
9999
  append($$anchor7, i);
8830
10000
  };
8831
10001
  if_block(node_8, ($$render) => {
8832
10002
  if (get2(fallbackIcon))
8833
- $$render(consequent_3);
10003
+ $$render(consequent_4);
8834
10004
  else
8835
10005
  $$render(alternate_1, -1);
8836
10006
  });
@@ -8838,10 +10008,12 @@ function ItemToolBar($$anchor, $$props) {
8838
10008
  append($$anchor6, fragment_4);
8839
10009
  };
8840
10010
  if_block(node_7, ($$render) => {
8841
- if (get2(d))
10011
+ if (get2(item2).icon === "calculator")
8842
10012
  $$render(consequent_1);
8843
- else if (get2(d_1))
10013
+ else if (get2(d2))
8844
10014
  $$render(consequent_2, 1);
10015
+ else if (get2(d_1))
10016
+ $$render(consequent_3, 2);
8845
10017
  else
8846
10018
  $$render(alternate_2, -1);
8847
10019
  });
@@ -8850,7 +10022,7 @@ function ItemToolBar($$anchor, $$props) {
8850
10022
  };
8851
10023
  if_block(node_6, ($$render) => {
8852
10024
  if (get2(item2).icon)
8853
- $$render(consequent_4);
10025
+ $$render(consequent_5);
8854
10026
  });
8855
10027
  }
8856
10028
  reset(a);
@@ -8876,23 +10048,28 @@ function ItemToolBar($$anchor, $$props) {
8876
10048
  };
8877
10049
  var d_2 = user_derived(() => isToolbarLinkItem(get2(item2)));
8878
10050
  var alternate_5 = ($$anchor4) => {
8879
- var button_1 = root_14();
10051
+ var button_1 = root_7();
8880
10052
  let classes_2;
8881
10053
  var node_9 = child(button_1);
8882
10054
  {
8883
- var consequent_9 = ($$anchor5) => {
10055
+ var consequent_11 = ($$anchor5) => {
8884
10056
  var fragment_5 = comment();
8885
10057
  var node_10 = first_child(fragment_5);
8886
10058
  {
8887
- var consequent_6 = ($$anchor6) => {
8888
- var span_4 = root_16();
8889
- html(span_4, () => sanitizeSvgIcon(get2(item2).icon), true);
8890
- reset(span_4);
8891
- append($$anchor6, span_4);
10059
+ var consequent_7 = ($$anchor6) => {
10060
+ var span_5 = root_2();
10061
+ action(span_5, ($$node) => ndsIconButtonAction?.($$node));
10062
+ append($$anchor6, span_5);
10063
+ };
10064
+ var consequent_8 = ($$anchor6) => {
10065
+ var span_6 = root_3();
10066
+ html(span_6, () => sanitizeSvgIcon(get2(item2).icon), true);
10067
+ reset(span_6);
10068
+ append($$anchor6, span_6);
8892
10069
  };
8893
10070
  var d_3 = user_derived(() => isInlineSvgIcon(get2(item2).icon));
8894
- var consequent_7 = ($$anchor6) => {
8895
- var img_1 = root_17();
10071
+ var consequent_9 = ($$anchor6) => {
10072
+ var img_1 = root_4();
8896
10073
  template_effect(() => set_attribute2(img_1, "src", get2(item2).icon));
8897
10074
  append($$anchor6, img_1);
8898
10075
  };
@@ -8902,20 +10079,20 @@ function ItemToolBar($$anchor, $$props) {
8902
10079
  var fragment_6 = comment();
8903
10080
  var node_11 = first_child(fragment_6);
8904
10081
  {
8905
- var consequent_8 = ($$anchor7) => {
8906
- var span_5 = root_19();
8907
- html(span_5, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
8908
- reset(span_5);
8909
- append($$anchor7, span_5);
10082
+ var consequent_10 = ($$anchor7) => {
10083
+ var span_7 = root_3();
10084
+ html(span_7, () => sanitizeSvgIcon(get2(fallbackIcon)), true);
10085
+ reset(span_7);
10086
+ append($$anchor7, span_7);
8910
10087
  };
8911
10088
  var alternate_3 = ($$anchor7) => {
8912
- var i_1 = root_20();
10089
+ var i_1 = root_5();
8913
10090
  template_effect(() => set_class(i_1, 1, `icon icon-${get2(item2).icon}`, "svelte-rnx3ie"));
8914
10091
  append($$anchor7, i_1);
8915
10092
  };
8916
10093
  if_block(node_11, ($$render) => {
8917
10094
  if (get2(fallbackIcon))
8918
- $$render(consequent_8);
10095
+ $$render(consequent_10);
8919
10096
  else
8920
10097
  $$render(alternate_3, -1);
8921
10098
  });
@@ -8923,10 +10100,12 @@ function ItemToolBar($$anchor, $$props) {
8923
10100
  append($$anchor6, fragment_6);
8924
10101
  };
8925
10102
  if_block(node_10, ($$render) => {
8926
- if (get2(d_3))
8927
- $$render(consequent_6);
10103
+ if (get2(item2).icon === "calculator")
10104
+ $$render(consequent_7);
10105
+ else if (get2(d_3))
10106
+ $$render(consequent_8, 1);
8928
10107
  else if (get2(d_4))
8929
- $$render(consequent_7, 1);
10108
+ $$render(consequent_9, 2);
8930
10109
  else
8931
10110
  $$render(alternate_4, -1);
8932
10111
  });
@@ -8935,7 +10114,7 @@ function ItemToolBar($$anchor, $$props) {
8935
10114
  };
8936
10115
  if_block(node_9, ($$render) => {
8937
10116
  if (get2(item2).icon)
8938
- $$render(consequent_9);
10117
+ $$render(consequent_11);
8939
10118
  });
8940
10119
  }
8941
10120
  reset(button_1);
@@ -8958,7 +10137,7 @@ function ItemToolBar($$anchor, $$props) {
8958
10137
  };
8959
10138
  if_block(node_5, ($$render) => {
8960
10139
  if (get2(d_2))
8961
- $$render(consequent_5);
10140
+ $$render(consequent_6);
8962
10141
  else
8963
10142
  $$render(alternate_5, -1);
8964
10143
  });
@@ -8970,22 +10149,22 @@ function ItemToolBar($$anchor, $$props) {
8970
10149
  var fragment_7 = comment();
8971
10150
  var node_13 = first_child(fragment_7);
8972
10151
  {
8973
- var consequent_10 = ($$anchor4) => {
8974
- var span_6 = root_22();
8975
- action(span_6, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
10152
+ var consequent_12 = ($$anchor4) => {
10153
+ var span_8 = root_1();
10154
+ action(span_8, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
8976
10155
  mounted: get2(mounted),
8977
10156
  active: get2(renderedToolActiveById)[get2(mounted).toolId] ?? false
8978
10157
  }));
8979
- append($$anchor4, span_6);
10158
+ append($$anchor4, span_8);
8980
10159
  };
8981
10160
  var alternate_6 = ($$anchor4) => {
8982
- var span_7 = root_23();
8983
- action(span_7, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
8984
- append($$anchor4, span_7);
10161
+ var span_9 = root_1();
10162
+ action(span_9, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
10163
+ append($$anchor4, span_9);
8985
10164
  };
8986
10165
  if_block(node_13, ($$render) => {
8987
10166
  if (get2(mounted).entry.shell)
8988
- $$render(consequent_10);
10167
+ $$render(consequent_12);
8989
10168
  else
8990
10169
  $$render(alternate_6, -1);
8991
10170
  });
@@ -8995,29 +10174,29 @@ function ItemToolBar($$anchor, $$props) {
8995
10174
  reset(div_1);
8996
10175
  var node_14 = sibling(div_1, 2);
8997
10176
  {
8998
- var consequent_12 = ($$anchor3) => {
8999
- var div_2 = root_24();
10177
+ var consequent_14 = ($$anchor3) => {
10178
+ var div_2 = root_9();
9000
10179
  let classes_3;
9001
10180
  each(div_2, 21, () => get2(mountedElementsControlsRow), (mounted) => mounted.key, ($$anchor4, mounted) => {
9002
10181
  var fragment_8 = comment();
9003
10182
  var node_15 = first_child(fragment_8);
9004
10183
  {
9005
- var consequent_11 = ($$anchor5) => {
9006
- var span_8 = root_26();
9007
- action(span_8, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
10184
+ var consequent_13 = ($$anchor5) => {
10185
+ var span_10 = root_8();
10186
+ action(span_10, ($$node, $$action_arg) => mountElementWithShell?.($$node, $$action_arg), () => ({
9008
10187
  mounted: get2(mounted),
9009
10188
  active: get2(renderedToolActiveById)[get2(mounted).toolId] ?? false
9010
10189
  }));
9011
- append($$anchor5, span_8);
10190
+ append($$anchor5, span_10);
9012
10191
  };
9013
10192
  var alternate_7 = ($$anchor5) => {
9014
- var span_9 = root_27();
9015
- action(span_9, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
9016
- append($$anchor5, span_9);
10193
+ var span_11 = root_8();
10194
+ action(span_11, ($$node, $$action_arg) => mountElement?.($$node, $$action_arg), () => get2(mounted).entry.element);
10195
+ append($$anchor5, span_11);
9017
10196
  };
9018
10197
  if_block(node_15, ($$render) => {
9019
10198
  if (get2(mounted).entry.shell)
9020
- $$render(consequent_11);
10199
+ $$render(consequent_13);
9021
10200
  else
9022
10201
  $$render(alternate_7, -1);
9023
10202
  });
@@ -9034,7 +10213,7 @@ function ItemToolBar($$anchor, $$props) {
9034
10213
  };
9035
10214
  if_block(node_14, ($$render) => {
9036
10215
  if (get2(shouldRenderControlsRow))
9037
- $$render(consequent_12);
10216
+ $$render(consequent_14);
9038
10217
  });
9039
10218
  }
9040
10219
  reset(div);
@@ -9053,7 +10232,7 @@ function ItemToolBar($$anchor, $$props) {
9053
10232
  };
9054
10233
  if_block(node_1, ($$render) => {
9055
10234
  if (isBrowser)
9056
- $$render(consequent_13);
10235
+ $$render(consequent_15);
9057
10236
  });
9058
10237
  }
9059
10238
  append($$anchor, fragment);