qsharp-lang 1.15.2-dev → 1.15.4-dev

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 (330) hide show
  1. package/dist/katas-content.generated.js +5 -5
  2. package/dist/katas-content.generated.md.js +5 -5
  3. package/dist/samples.generated.js +6 -0
  4. package/dist/shared/legacyCircuitUpdate.js +1 -0
  5. package/dist/shared/register.d.ts +5 -5
  6. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  7. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  8. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  9. package/docs/Std.Arithmetic/AddLE.md +1 -1
  10. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  11. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  12. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  13. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  14. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  15. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  16. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  17. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  18. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  19. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  20. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  21. package/docs/Std.Arithmetic/IncByI.md +1 -1
  22. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  23. package/docs/Std.Arithmetic/IncByL.md +1 -1
  24. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  25. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  26. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  27. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  28. package/docs/Std.Arithmetic/MAJ.md +1 -1
  29. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  30. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  31. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  32. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  33. package/docs/Std.Arithmetic/index.md +1 -1
  34. package/docs/Std.Arrays/All.md +1 -1
  35. package/docs/Std.Arrays/Any.md +1 -1
  36. package/docs/Std.Arrays/Chunks.md +1 -1
  37. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  38. package/docs/Std.Arrays/ColumnAt.md +1 -1
  39. package/docs/Std.Arrays/Count.md +1 -1
  40. package/docs/Std.Arrays/Diagonal.md +1 -1
  41. package/docs/Std.Arrays/DrawMany.md +1 -1
  42. package/docs/Std.Arrays/Enumerated.md +1 -1
  43. package/docs/Std.Arrays/Excluding.md +1 -1
  44. package/docs/Std.Arrays/Filtered.md +1 -1
  45. package/docs/Std.Arrays/FlatMapped.md +1 -1
  46. package/docs/Std.Arrays/Flattened.md +1 -1
  47. package/docs/Std.Arrays/Fold.md +1 -1
  48. package/docs/Std.Arrays/ForEach.md +1 -1
  49. package/docs/Std.Arrays/Head.md +1 -1
  50. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  51. package/docs/Std.Arrays/IndexOf.md +1 -1
  52. package/docs/Std.Arrays/IndexRange.md +1 -1
  53. package/docs/Std.Arrays/Interleaved.md +1 -1
  54. package/docs/Std.Arrays/IsEmpty.md +1 -1
  55. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  56. package/docs/Std.Arrays/IsSorted.md +1 -1
  57. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  58. package/docs/Std.Arrays/Mapped.md +1 -1
  59. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  60. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  61. package/docs/Std.Arrays/Most.md +1 -1
  62. package/docs/Std.Arrays/MostAndTail.md +1 -1
  63. package/docs/Std.Arrays/Padded.md +1 -1
  64. package/docs/Std.Arrays/Partitioned.md +1 -1
  65. package/docs/Std.Arrays/Rest.md +1 -1
  66. package/docs/Std.Arrays/Reversed.md +1 -1
  67. package/docs/Std.Arrays/SequenceI.md +1 -1
  68. package/docs/Std.Arrays/SequenceL.md +1 -1
  69. package/docs/Std.Arrays/Sorted.md +1 -1
  70. package/docs/Std.Arrays/Subarray.md +1 -1
  71. package/docs/Std.Arrays/Swapped.md +1 -1
  72. package/docs/Std.Arrays/Tail.md +1 -1
  73. package/docs/Std.Arrays/Transposed.md +1 -1
  74. package/docs/Std.Arrays/Unzipped.md +1 -1
  75. package/docs/Std.Arrays/Where.md +1 -1
  76. package/docs/Std.Arrays/Windows.md +1 -1
  77. package/docs/Std.Arrays/Zipped.md +1 -1
  78. package/docs/Std.Arrays/index.md +1 -1
  79. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  80. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  81. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  82. package/docs/Std.Canon/ApplyOperationPowerA.md +25 -0
  83. package/docs/Std.Canon/ApplyP.md +1 -1
  84. package/docs/Std.Canon/ApplyPauli.md +1 -1
  85. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  86. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  87. package/docs/Std.Canon/ApplyQFT.md +1 -1
  88. package/docs/Std.Canon/ApplyToEach.md +1 -1
  89. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  90. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  91. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  92. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  93. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  94. package/docs/Std.Canon/CX.md +1 -1
  95. package/docs/Std.Canon/CY.md +1 -1
  96. package/docs/Std.Canon/CZ.md +1 -1
  97. package/docs/Std.Canon/Fst.md +1 -1
  98. package/docs/Std.Canon/Relabel.md +1 -1
  99. package/docs/Std.Canon/Snd.md +1 -1
  100. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  101. package/docs/Std.Canon/index.md +2 -1
  102. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  103. package/docs/Std.Convert/BigIntAsInt.md +30 -0
  104. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  105. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  106. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  107. package/docs/Std.Convert/BoolAsResult.md +1 -1
  108. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  109. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  110. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  111. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  112. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  113. package/docs/Std.Convert/IntAsDouble.md +1 -1
  114. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  115. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  116. package/docs/Std.Convert/ResultAsBool.md +1 -1
  117. package/docs/Std.Convert/index.md +2 -1
  118. package/docs/Std.Core/Length.md +1 -1
  119. package/docs/Std.Core/Repeated.md +1 -1
  120. package/docs/Std.Core/index.md +1 -1
  121. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  122. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  123. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  124. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  125. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  126. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  127. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  128. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  129. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  130. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  131. package/docs/Std.Diagnostics/Fact.md +1 -1
  132. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  133. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  134. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  135. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  136. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  137. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  138. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  139. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  140. package/docs/Std.Diagnostics/index.md +1 -1
  141. package/docs/Std.Intrinsic/AND.md +1 -1
  142. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  143. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  144. package/docs/Std.Intrinsic/CNOT.md +1 -1
  145. package/docs/Std.Intrinsic/Exp.md +1 -1
  146. package/docs/Std.Intrinsic/H.md +1 -1
  147. package/docs/Std.Intrinsic/I.md +1 -1
  148. package/docs/Std.Intrinsic/M.md +1 -1
  149. package/docs/Std.Intrinsic/Measure.md +1 -1
  150. package/docs/Std.Intrinsic/Message.md +1 -1
  151. package/docs/Std.Intrinsic/R.md +1 -1
  152. package/docs/Std.Intrinsic/R1.md +1 -1
  153. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  154. package/docs/Std.Intrinsic/RFrac.md +1 -1
  155. package/docs/Std.Intrinsic/Reset.md +1 -1
  156. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  157. package/docs/Std.Intrinsic/Rx.md +1 -1
  158. package/docs/Std.Intrinsic/Rxx.md +1 -1
  159. package/docs/Std.Intrinsic/Ry.md +1 -1
  160. package/docs/Std.Intrinsic/Ryy.md +1 -1
  161. package/docs/Std.Intrinsic/Rz.md +1 -1
  162. package/docs/Std.Intrinsic/Rzz.md +1 -1
  163. package/docs/Std.Intrinsic/S.md +1 -1
  164. package/docs/Std.Intrinsic/SWAP.md +1 -1
  165. package/docs/Std.Intrinsic/T.md +1 -1
  166. package/docs/Std.Intrinsic/X.md +1 -1
  167. package/docs/Std.Intrinsic/Y.md +1 -1
  168. package/docs/Std.Intrinsic/Z.md +1 -1
  169. package/docs/Std.Intrinsic/index.md +1 -1
  170. package/docs/Std.Logical/Xor.md +1 -1
  171. package/docs/Std.Logical/index.md +1 -1
  172. package/docs/Std.Math/AbsComplex.md +1 -1
  173. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  174. package/docs/Std.Math/AbsD.md +1 -1
  175. package/docs/Std.Math/AbsI.md +1 -1
  176. package/docs/Std.Math/AbsL.md +1 -1
  177. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  178. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  179. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  180. package/docs/Std.Math/ArcCos.md +1 -1
  181. package/docs/Std.Math/ArcCosh.md +1 -1
  182. package/docs/Std.Math/ArcSin.md +1 -1
  183. package/docs/Std.Math/ArcSinh.md +1 -1
  184. package/docs/Std.Math/ArcTan.md +1 -1
  185. package/docs/Std.Math/ArcTan2.md +1 -1
  186. package/docs/Std.Math/ArcTanh.md +1 -1
  187. package/docs/Std.Math/ArgComplex.md +1 -1
  188. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  189. package/docs/Std.Math/Binom.md +1 -1
  190. package/docs/Std.Math/BitSizeI.md +1 -1
  191. package/docs/Std.Math/BitSizeL.md +1 -1
  192. package/docs/Std.Math/Ceiling.md +1 -1
  193. package/docs/Std.Math/Complex.md +1 -1
  194. package/docs/Std.Math/ComplexPolar.md +1 -1
  195. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  196. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  197. package/docs/Std.Math/Cos.md +1 -1
  198. package/docs/Std.Math/Cosh.md +1 -1
  199. package/docs/Std.Math/DivRemI.md +1 -1
  200. package/docs/Std.Math/DivRemL.md +1 -1
  201. package/docs/Std.Math/DividedByC.md +1 -1
  202. package/docs/Std.Math/DividedByCP.md +1 -1
  203. package/docs/Std.Math/E.md +1 -1
  204. package/docs/Std.Math/ExpModI.md +1 -1
  205. package/docs/Std.Math/ExpModL.md +1 -1
  206. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  207. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  208. package/docs/Std.Math/FactorialI.md +1 -1
  209. package/docs/Std.Math/FactorialL.md +1 -1
  210. package/docs/Std.Math/Floor.md +1 -1
  211. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  212. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  213. package/docs/Std.Math/HammingWeightI.md +1 -1
  214. package/docs/Std.Math/InverseModI.md +1 -1
  215. package/docs/Std.Math/InverseModL.md +1 -1
  216. package/docs/Std.Math/IsCoprimeI.md +1 -1
  217. package/docs/Std.Math/IsCoprimeL.md +1 -1
  218. package/docs/Std.Math/IsInfinite.md +1 -1
  219. package/docs/Std.Math/IsNaN.md +1 -1
  220. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  221. package/docs/Std.Math/Lg.md +1 -1
  222. package/docs/Std.Math/Log.md +1 -1
  223. package/docs/Std.Math/Log10.md +1 -1
  224. package/docs/Std.Math/LogFactorialD.md +1 -1
  225. package/docs/Std.Math/LogGammaD.md +1 -1
  226. package/docs/Std.Math/LogOf2.md +1 -1
  227. package/docs/Std.Math/Max.md +1 -1
  228. package/docs/Std.Math/MaxD.md +1 -1
  229. package/docs/Std.Math/MaxI.md +1 -1
  230. package/docs/Std.Math/MaxL.md +1 -1
  231. package/docs/Std.Math/Min.md +1 -1
  232. package/docs/Std.Math/MinD.md +1 -1
  233. package/docs/Std.Math/MinI.md +1 -1
  234. package/docs/Std.Math/MinL.md +1 -1
  235. package/docs/Std.Math/MinusC.md +1 -1
  236. package/docs/Std.Math/MinusCP.md +1 -1
  237. package/docs/Std.Math/ModulusI.md +1 -1
  238. package/docs/Std.Math/ModulusL.md +1 -1
  239. package/docs/Std.Math/NegationC.md +1 -1
  240. package/docs/Std.Math/NegationCP.md +1 -1
  241. package/docs/Std.Math/PI.md +1 -1
  242. package/docs/Std.Math/PNorm.md +1 -1
  243. package/docs/Std.Math/PNormalized.md +1 -1
  244. package/docs/Std.Math/PlusC.md +1 -1
  245. package/docs/Std.Math/PlusCP.md +1 -1
  246. package/docs/Std.Math/PowC.md +1 -1
  247. package/docs/Std.Math/PowCP.md +1 -1
  248. package/docs/Std.Math/RealMod.md +1 -1
  249. package/docs/Std.Math/Round.md +8 -5
  250. package/docs/Std.Math/RoundHalfAwayFromZero.md +27 -0
  251. package/docs/Std.Math/SignD.md +1 -1
  252. package/docs/Std.Math/SignI.md +1 -1
  253. package/docs/Std.Math/SignL.md +1 -1
  254. package/docs/Std.Math/Sin.md +1 -1
  255. package/docs/Std.Math/Sinh.md +1 -1
  256. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  257. package/docs/Std.Math/Sqrt.md +1 -1
  258. package/docs/Std.Math/SquaredNorm.md +1 -1
  259. package/docs/Std.Math/Tan.md +1 -1
  260. package/docs/Std.Math/Tanh.md +1 -1
  261. package/docs/Std.Math/TimesC.md +1 -1
  262. package/docs/Std.Math/TimesCP.md +1 -1
  263. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  264. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  265. package/docs/Std.Math/Truncate.md +1 -1
  266. package/docs/Std.Math/index.md +3 -2
  267. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  268. package/docs/Std.Measurement/MResetX.md +1 -1
  269. package/docs/Std.Measurement/MResetY.md +1 -1
  270. package/docs/Std.Measurement/MResetZ.md +1 -1
  271. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  272. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  273. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  274. package/docs/Std.Measurement/index.md +1 -1
  275. package/docs/Std.Random/DrawRandomBool.md +1 -1
  276. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  277. package/docs/Std.Random/DrawRandomInt.md +1 -1
  278. package/docs/Std.Random/index.md +1 -1
  279. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  280. package/docs/Std.Range/RangeEnd.md +1 -1
  281. package/docs/Std.Range/RangeReverse.md +1 -1
  282. package/docs/Std.Range/RangeStart.md +1 -1
  283. package/docs/Std.Range/RangeStep.md +1 -1
  284. package/docs/Std.Range/index.md +1 -1
  285. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  286. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  287. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  288. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  289. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  290. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  291. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  292. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  293. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  294. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  295. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  296. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  297. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  298. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  299. package/docs/Std.ResourceEstimation/index.md +1 -1
  300. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  301. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  302. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  303. package/docs/Std.StatePreparation/index.md +1 -1
  304. package/docs/Std.TableLookup/Select.md +1 -1
  305. package/docs/Std.TableLookup/index.md +1 -1
  306. package/docs/index.md +1 -1
  307. package/docs/toc.yml +3 -0
  308. package/lib/node/qsc_wasm.cjs +2 -2
  309. package/lib/node/qsc_wasm.d.cts +3 -6
  310. package/lib/node/qsc_wasm_bg.wasm +0 -0
  311. package/lib/web/qsc_wasm.d.ts +3 -6
  312. package/lib/web/qsc_wasm.js +2 -2
  313. package/lib/web/qsc_wasm_bg.wasm +0 -0
  314. package/package.json +1 -1
  315. package/ux/circuit-vis/circuitManipulation.ts +31 -9
  316. package/ux/circuit-vis/contextMenu.ts +42 -18
  317. package/ux/circuit-vis/draggable.ts +3 -3
  318. package/ux/circuit-vis/events.ts +21 -6
  319. package/ux/circuit-vis/formatters/formatUtils.ts +3 -3
  320. package/ux/circuit-vis/formatters/gateFormatter.ts +106 -65
  321. package/ux/circuit-vis/formatters/inputFormatter.ts +9 -31
  322. package/ux/circuit-vis/formatters/registerFormatter.ts +4 -4
  323. package/ux/circuit-vis/{metadata.ts → gateRenderData.ts} +4 -4
  324. package/ux/circuit-vis/panel.ts +31 -32
  325. package/ux/circuit-vis/process.ts +114 -106
  326. package/ux/circuit-vis/register.ts +1 -1
  327. package/ux/circuit-vis/sqore.ts +14 -10
  328. package/ux/circuit-vis/utils.ts +56 -4
  329. package/ux/circuit.tsx +7 -1
  330. package/ux/qsharp-circuit.css +353 -334
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.BeginRepeatEstimates
3
3
  title: BeginRepeatEstimates operation
4
4
  description: "Q# BeginRepeatEstimates operation: Instructs the resource estimator to assume that the resources from the call of this operation until a call to `EndRepeatEstimates` are accounted for `count` times, without the need to execute the code that many times. Calls to `BeginRepeatEstimates` and `EndRepeatEstimates` can be nested. A helper operation `RepeatEstimates` allows to call the two functions in a `within` block."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.CczCount
3
3
  title: CczCount function
4
4
  description: "Q# CczCount function: Returns a tuple that can be passed to the `AccountForEstimates` operation to specify that the number of the CCZ gates is equal to the `amount`."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.EndEstimateCaching
3
3
  title: EndEstimateCaching function
4
4
  description: "Q# EndEstimateCaching function: Instructs the resource estimator to stop estimates caching because the code fragment in consideration is over. This function is only available when using resource estimator execution target."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.EndRepeatEstimates
3
3
  title: EndRepeatEstimates operation
4
4
  description: "Q# EndRepeatEstimates operation: Companion operation to `BeginRepeatEstimates`."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.MeasurementCount
3
3
  title: MeasurementCount function
4
4
  description: "Q# MeasurementCount function: Returns a tuple that can be passed to the `AccountForEstimates` operation to specify that the number Measurements is equal to the `amount`."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.PSSPCLayout
3
3
  title: PSSPCLayout function
4
4
  description: "Q# PSSPCLayout function: Pass the value returned by the function to the `AccountForEstimates` operation to indicate Parallel Synthesis Sequential Pauli Computation (PSSPC) layout. See https://arxiv.org/pdf/2211.07629.pdf for details."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.RepeatEstimates
3
3
  title: RepeatEstimates operation
4
4
  description: "Q# RepeatEstimates operation: Instructs the resource estimator to assume that the resources from the call of this operation until a call to `Adjoint RepeatEstimates` are accounted for `count` times, without the need to execute the code that many times."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.RotationCount
3
3
  title: RotationCount function
4
4
  description: "Q# RotationCount function: Returns a tuple that can be passed to the `AccountForEstimates` operation to specify that the number of rotations is equal to the `amount`."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.RotationDepth
3
3
  title: RotationDepth function
4
4
  description: "Q# RotationDepth function: Returns a tuple that can be passed to the `AccountForEstimates` operation to specify that the rotation depth is equal to the `amount`."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.SingleVariant
3
3
  title: SingleVariant function
4
4
  description: "Q# SingleVariant function: Used to specify that there's only one execution variant in `BeginEstimateCaching` function"
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.ResourceEstimation.TCount
3
3
  title: TCount function
4
4
  description: "Q# TCount function: Returns a tuple that can be passed to the `AccountForEstimates` operation to specify that the number of the T gates is equal to the `amount`."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: function
8
8
  qsharp.package: __Std__
@@ -4,7 +4,7 @@ title: Std.ResourceEstimation namespace
4
4
  description: Table of contents for the Q# ResourceEstimation namespace
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 04/18/2025
7
+ ms.date: 04/30/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.StatePreparation.ApproximatelyPreparePureStateCP
3
3
  title: ApproximatelyPreparePureStateCP operation
4
4
  description: "Q# ApproximatelyPreparePureStateCP operation: Given a set of coefficients and a big-endian quantum register, prepares a state on that register described by the given coefficients, up to a given approximation tolerance."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.StatePreparation.PreparePureStateD
3
3
  title: PreparePureStateD operation
4
4
  description: "Q# PreparePureStateD operation: Given a set of coefficients and a big-endian quantum register, prepares a state on that register described by the given coefficients."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.StatePreparation.PrepareUniformSuperposition
3
3
  title: PrepareUniformSuperposition operation
4
4
  description: "Q# PrepareUniformSuperposition operation: Prepares a uniform superposition of states that represent integers 0 through `nStates - 1` in a little-endian `qubits` register."
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -4,7 +4,7 @@ title: Std.StatePreparation namespace
4
4
  description: Table of contents for the Q# StatePreparation namespace
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 04/18/2025
7
+ ms.date: 04/30/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
@@ -2,7 +2,7 @@
2
2
  uid: Qdk.Std.TableLookup.Select
3
3
  title: Select operation
4
4
  description: "Q# Select operation: Performs table lookup using a SELECT network"
5
- ms.date: 04/18/2025
5
+ ms.date: 04/30/2025
6
6
  ms.topic: managed-reference
7
7
  qsharp.kind: operation
8
8
  qsharp.package: __Std__
@@ -4,7 +4,7 @@ title: Std.TableLookup namespace
4
4
  description: Table of contents for the Q# TableLookup namespace
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 04/18/2025
7
+ ms.date: 04/30/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
package/docs/index.md CHANGED
@@ -4,7 +4,7 @@ title: Q# standard libraries for the Azure Quantum Development Kit
4
4
  description: Table of contents for the Q# standard libraries for Azure Quantum Development Kit
5
5
  author: {AUTHOR}
6
6
  ms.author: {MS_AUTHOR}
7
- ms.date: 04/18/2025
7
+ ms.date: 04/30/2025
8
8
  ms.topic: landing-page
9
9
  ---
10
10
 
package/docs/toc.yml CHANGED
@@ -92,6 +92,7 @@
92
92
  - {name: ApplyCNOTChain, uid: Qdk.Std.Canon.ApplyCNOTChain}
93
93
  - {name: ApplyControlledOnBitString, uid: Qdk.Std.Canon.ApplyControlledOnBitString}
94
94
  - {name: ApplyControlledOnInt, uid: Qdk.Std.Canon.ApplyControlledOnInt}
95
+ - {name: ApplyOperationPowerA, uid: Qdk.Std.Canon.ApplyOperationPowerA}
95
96
  - {name: ApplyP, uid: Qdk.Std.Canon.ApplyP}
96
97
  - {name: ApplyPauli, uid: Qdk.Std.Canon.ApplyPauli}
97
98
  - {name: ApplyPauliFromBitString, uid: Qdk.Std.Canon.ApplyPauliFromBitString}
@@ -115,6 +116,7 @@
115
116
  - items:
116
117
  - {name: Overview, uid: Qdk.Std.Convert-toc}
117
118
  - {name: BigIntAsBoolArray, uid: Qdk.Std.Convert.BigIntAsBoolArray}
119
+ - {name: BigIntAsInt, uid: Qdk.Std.Convert.BigIntAsInt}
118
120
  - {name: BoolArrayAsBigInt, uid: Qdk.Std.Convert.BoolArrayAsBigInt}
119
121
  - {name: BoolArrayAsInt, uid: Qdk.Std.Convert.BoolArrayAsInt}
120
122
  - {name: BoolArrayAsResultArray, uid: Qdk.Std.Convert.BoolArrayAsResultArray}
@@ -276,6 +278,7 @@
276
278
  - {name: PowCP, uid: Qdk.Std.Math.PowCP}
277
279
  - {name: RealMod, uid: Qdk.Std.Math.RealMod}
278
280
  - {name: Round, uid: Qdk.Std.Math.Round}
281
+ - {name: RoundHalfAwayFromZero, uid: Qdk.Std.Math.RoundHalfAwayFromZero}
279
282
  - {name: SignD, uid: Qdk.Std.Math.SignD}
280
283
  - {name: SignI, uid: Qdk.Std.Math.SignI}
281
284
  - {name: SignL, uid: Qdk.Std.Math.SignL}
@@ -1499,8 +1499,8 @@ module.exports.__wbindgen_cb_drop = function(arg0) {
1499
1499
  return ret;
1500
1500
  };
1501
1501
 
1502
- module.exports.__wbindgen_closure_wrapper946 = function(arg0, arg1, arg2) {
1503
- const ret = makeMutClosure(arg0, arg1, 385, __wbg_adapter_52);
1502
+ module.exports.__wbindgen_closure_wrapper955 = function(arg0, arg1, arg2) {
1503
+ const ret = makeMutClosure(arg0, arg1, 387, __wbg_adapter_52);
1504
1504
  return addHeapObject(ret);
1505
1505
  };
1506
1506
 
@@ -102,7 +102,7 @@ export interface IWorkspaceConfiguration {
102
102
  targetProfile?: TargetProfile;
103
103
  packageType?: "exe" | "lib";
104
104
  languageFeatures?: LanguageFeatures[];
105
- lints?: { lint: string; level: string }[];
105
+ lints?: ({ lint: string; level: string } | { group: string; level: string })[];
106
106
  }
107
107
 
108
108
  export interface ICodeAction {
@@ -222,7 +222,7 @@ export interface IProgramConfig {
222
222
  }
223
223
 
224
224
 
225
-
225
+
226
226
  export interface IPackageInfo {
227
227
  sources: [string, string][];
228
228
  languageFeatures: string[];
@@ -240,10 +240,7 @@ export interface IProjectConfig {
240
240
  */
241
241
  projectUri: string;
242
242
  packageGraphSources: IPackageGraphSources;
243
- lints: {
244
- lint: string;
245
- level: string;
246
- }[];
243
+ lints: ({ lint: string; level: string } | { group: string; level: string })[];
247
244
  errors: string[];
248
245
  }
249
246
 
Binary file
@@ -102,7 +102,7 @@ export interface IWorkspaceConfiguration {
102
102
  targetProfile?: TargetProfile;
103
103
  packageType?: "exe" | "lib";
104
104
  languageFeatures?: LanguageFeatures[];
105
- lints?: { lint: string; level: string }[];
105
+ lints?: ({ lint: string; level: string } | { group: string; level: string })[];
106
106
  }
107
107
 
108
108
  export interface ICodeAction {
@@ -222,7 +222,7 @@ export interface IProgramConfig {
222
222
  }
223
223
 
224
224
 
225
-
225
+
226
226
  export interface IPackageInfo {
227
227
  sources: [string, string][];
228
228
  languageFeatures: string[];
@@ -240,10 +240,7 @@ export interface IProjectConfig {
240
240
  */
241
241
  projectUri: string;
242
242
  packageGraphSources: IPackageGraphSources;
243
- lints: {
244
- lint: string;
245
- level: string;
246
- }[];
243
+ lints: ({ lint: string; level: string } | { group: string; level: string })[];
247
244
  errors: string[];
248
245
  }
249
246
 
@@ -1455,8 +1455,8 @@ function __wbg_get_imports() {
1455
1455
  const ret = false;
1456
1456
  return ret;
1457
1457
  };
1458
- imports.wbg.__wbindgen_closure_wrapper946 = function(arg0, arg1, arg2) {
1459
- const ret = makeMutClosure(arg0, arg1, 385, __wbg_adapter_52);
1458
+ imports.wbg.__wbindgen_closure_wrapper955 = function(arg0, arg1, arg2) {
1459
+ const ret = makeMutClosure(arg0, arg1, 387, __wbg_adapter_52);
1460
1460
  return addHeapObject(ret);
1461
1461
  };
1462
1462
  imports.wbg.__wbindgen_debug_string = function(arg0, arg1) {
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "qsharp-lang",
3
3
  "description": "qsharp language package for quantum development",
4
- "version": "1.15.2-dev",
4
+ "version": "1.15.4-dev",
5
5
  "license": "MIT",
6
6
  "engines": {
7
7
  "node": ">=16.17.0"
@@ -129,27 +129,49 @@ const _moveY = (
129
129
  movingControl: boolean,
130
130
  ): void => {
131
131
  // Check if the source operation already has a target or control on the target wire
132
- let registers: Register[];
132
+ let targets: Register[];
133
133
  switch (sourceOperation.kind) {
134
134
  case "unitary":
135
- registers = [
136
- ...sourceOperation.targets,
137
- ...(sourceOperation.controls || []),
138
- ];
135
+ case "ket":
136
+ targets = sourceOperation.targets;
139
137
  break;
140
138
  case "measurement":
141
- registers = [...sourceOperation.qubits, ...sourceOperation.results];
139
+ targets = sourceOperation.qubits;
140
+ break;
141
+ }
142
+
143
+ let controls: Register[];
144
+ switch (sourceOperation.kind) {
145
+ case "unitary":
146
+ controls = sourceOperation.controls || [];
142
147
  break;
148
+ case "measurement":
143
149
  case "ket":
144
- registers = sourceOperation.targets;
150
+ controls = [];
145
151
  break;
146
152
  }
147
153
 
148
- if (registers.find((target) => target.qubit === targetWire)) {
149
- // If the target or control already exists, don't move the target/control
154
+ let likeRegisters: Register[];
155
+ let unlikeRegisters: Register[];
156
+ if (movingControl) {
157
+ likeRegisters = controls;
158
+ unlikeRegisters = targets;
159
+ } else {
160
+ likeRegisters = targets;
161
+ unlikeRegisters = controls;
162
+ }
163
+
164
+ // If a similar register already exists, don't move the gate
165
+ if (likeRegisters.find((reg) => reg.qubit === targetWire)) {
150
166
  return;
151
167
  }
152
168
 
169
+ // If a different kind of register already exists, swap the control and target
170
+ if (unlikeRegisters.find((reg) => reg.qubit === targetWire)) {
171
+ const index = unlikeRegisters.findIndex((reg) => reg.qubit === targetWire);
172
+ unlikeRegisters[index].qubit = sourceWire;
173
+ }
174
+
153
175
  switch (sourceOperation.kind) {
154
176
  case "unitary":
155
177
  if (movingControl) {
@@ -238,7 +238,7 @@ const validateExpression = (input: string): boolean => {
238
238
  // Validate the remaining expression (without parentheses)
239
239
  const sign = "[+-]?";
240
240
  const number = "((\\d+(\\.\\d*)?))"; // Matches integers and decimals
241
- const pi = "(?i:π|pi)"; // Matches π or pi
241
+ const pi = "(?i)"; // Matches π
242
242
  const value = `${sign}(${number}|${pi})`; // Matches a signed number or π
243
243
  const operator = "[+\\-*/]"; // Matches arithmetic operators
244
244
  const expressionRegex = new RegExp(
@@ -311,6 +311,39 @@ const _createInputPrompt = (
311
311
  const buttonsContainer = document.createElement("div");
312
312
  buttonsContainer.classList.add("prompt-buttons");
313
313
 
314
+ // Create the OK button
315
+ const okButton = document.createElement("button");
316
+ okButton.classList.add("prompt-button");
317
+ okButton.textContent = "OK";
318
+
319
+ // Function to replace "pi" with "π" (case-insensitive)
320
+ const replacePiWithSymbol = (input: string) => input.replace(/pi/gi, "π");
321
+
322
+ // Function to validate input and toggle the OK button
323
+ const validateAndToggleOkButton = () => {
324
+ const processedInput = replacePiWithSymbol(inputElem.value.trim());
325
+ const isValid = validateInput(processedInput);
326
+ okButton.disabled = !isValid;
327
+ };
328
+
329
+ // Add input event listener for validation
330
+ inputElem.addEventListener("input", validateAndToggleOkButton);
331
+
332
+ // Handle Enter key when input is focused
333
+ inputElem.addEventListener("keydown", (event) => {
334
+ if (event.key === "Enter" && !okButton.disabled) {
335
+ event.preventDefault();
336
+ okButton.click();
337
+ }
338
+ });
339
+
340
+ okButton.disabled = !validateInput(replacePiWithSymbol(defaultValue.trim()));
341
+ okButton.addEventListener("click", () => {
342
+ callback(replacePiWithSymbol(inputElem.value.trim()));
343
+ document.body.removeChild(overlay);
344
+ document.removeEventListener("keydown", handleGlobalKeyDown, true);
345
+ });
346
+
314
347
  // Create the π button
315
348
  const piButton = document.createElement("button");
316
349
  piButton.textContent = "π";
@@ -325,16 +358,6 @@ const _createInputPrompt = (
325
358
  validateAndToggleOkButton();
326
359
  });
327
360
 
328
- // Create the OK button
329
- const okButton = document.createElement("button");
330
- okButton.classList.add("prompt-button");
331
- okButton.textContent = "OK";
332
- okButton.disabled = !validateInput(defaultValue);
333
- okButton.addEventListener("click", () => {
334
- callback(inputElem.value.trim());
335
- document.body.removeChild(overlay);
336
- });
337
-
338
361
  // Create the Cancel button
339
362
  const cancelButton = document.createElement("button");
340
363
  cancelButton.classList.add("prompt-button");
@@ -342,16 +365,17 @@ const _createInputPrompt = (
342
365
  cancelButton.addEventListener("click", () => {
343
366
  callback(null);
344
367
  document.body.removeChild(overlay);
368
+ document.removeEventListener("keydown", handleGlobalKeyDown, true);
345
369
  });
346
370
 
347
- // Function to validate input and toggle the OK button
348
- const validateAndToggleOkButton = () => {
349
- const isValid = validateInput(inputElem.value.trim());
350
- okButton.disabled = !isValid;
371
+ // Handle Escape key globally while prompt is open
372
+ const handleGlobalKeyDown = (event: KeyboardEvent) => {
373
+ if (event.key === "Escape") {
374
+ event.preventDefault();
375
+ cancelButton.click();
376
+ }
351
377
  };
352
-
353
- // Add input event listener for validation
354
- inputElem.addEventListener("input", validateAndToggleOkButton);
378
+ document.addEventListener("keydown", handleGlobalKeyDown, true);
355
379
 
356
380
  // Append buttons to the container
357
381
  buttonsContainer.appendChild(piButton);
@@ -6,7 +6,7 @@ import { ComponentGrid, Operation } from "./circuit";
6
6
  import { gatePadding, minGateWidth, startX } from "./constants";
7
7
  import { box, controlDot } from "./formatters/formatUtils";
8
8
  import { formatGate } from "./formatters/gateFormatter";
9
- import { toMetadata } from "./panel";
9
+ import { toRenderData } from "./panel";
10
10
  import { Sqore } from "./sqore";
11
11
  import {
12
12
  findLocation,
@@ -60,8 +60,8 @@ const createGhostElement = (
60
60
  const ghost = isControl
61
61
  ? controlDot(20, 20)
62
62
  : (() => {
63
- const ghostMetadata = toMetadata(selectedOperation, 0, 0);
64
- return formatGate(ghostMetadata).cloneNode(true) as SVGElement;
63
+ const ghostRenderData = toRenderData(selectedOperation, 0, 0);
64
+ return formatGate(ghostRenderData).cloneNode(true) as SVGElement;
65
65
  })();
66
66
 
67
67
  // Generate svg element to wrap around ghost element
@@ -1,8 +1,6 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
 
4
- import cloneDeep from "lodash/cloneDeep";
5
- import isEqual from "lodash/isEqual";
6
4
  import { ComponentGrid, Operation, Qubit, Unitary } from "./circuit";
7
5
  import { Sqore } from "./sqore";
8
6
  import { toolboxGateDictionary } from "./panel";
@@ -15,6 +13,7 @@ import {
15
13
  getWireData,
16
14
  locationStringToIndexes,
17
15
  findParentArray,
16
+ deepEqual,
18
17
  } from "./utils";
19
18
  import { addContextMenuToHostElem, promptForArguments } from "./contextMenu";
20
19
  import {
@@ -420,7 +419,10 @@ class CircuitEvents {
420
419
  dropzoneElems.forEach((dropzoneElem) => {
421
420
  dropzoneElem.addEventListener("mouseup", async (ev: MouseEvent) => {
422
421
  const copying = ev.ctrlKey;
423
- const originalGrid = cloneDeep(this.componentGrid);
422
+ // Create a deep copy of the component grid
423
+ const originalGrid = JSON.parse(
424
+ JSON.stringify(this.componentGrid),
425
+ ) as ComponentGrid;
424
426
  const targetLoc = dropzoneElem.getAttribute("data-dropzone-location");
425
427
  const insertNewColumn =
426
428
  dropzoneElem.getAttribute("data-dropzone-inter-column") == "true" ||
@@ -483,7 +485,7 @@ class CircuitEvents {
483
485
  targetLoc,
484
486
  this.selectedWire,
485
487
  targetWire,
486
- false,
488
+ this.movingControl,
487
489
  insertNewColumn,
488
490
  );
489
491
  } else {
@@ -512,8 +514,7 @@ class CircuitEvents {
512
514
  this.selectedOperation = null;
513
515
  this.movingControl = false;
514
516
 
515
- if (isEqual(originalGrid, this.componentGrid) === false)
516
- this.renderFn();
517
+ if (!deepEqual(originalGrid, this.componentGrid)) this.renderFn();
517
518
  });
518
519
  });
519
520
  }
@@ -789,6 +790,7 @@ const _createConfirmPrompt = (
789
790
  okButton.addEventListener("click", () => {
790
791
  callback(true); // User confirmed
791
792
  document.body.removeChild(overlay);
793
+ document.removeEventListener("keydown", handleGlobalKeyDown, true);
792
794
  });
793
795
 
794
796
  // Create the Cancel button
@@ -798,8 +800,21 @@ const _createConfirmPrompt = (
798
800
  cancelButton.addEventListener("click", () => {
799
801
  callback(false); // User canceled
800
802
  document.body.removeChild(overlay);
803
+ document.removeEventListener("keydown", handleGlobalKeyDown, true);
801
804
  });
802
805
 
806
+ // Handle Enter and Escape keys globally while prompt is open
807
+ const handleGlobalKeyDown = (event: KeyboardEvent) => {
808
+ if (event.key === "Enter") {
809
+ event.preventDefault();
810
+ okButton.click();
811
+ } else if (event.key === "Escape") {
812
+ event.preventDefault();
813
+ cancelButton.click();
814
+ }
815
+ };
816
+ document.addEventListener("keydown", handleGlobalKeyDown, true);
817
+
803
818
  buttonsContainer.appendChild(okButton);
804
819
  buttonsContainer.appendChild(cancelButton);
805
820
 
@@ -146,12 +146,12 @@ export const text = (
146
146
  x: number,
147
147
  y: number,
148
148
  fs: number = labelFontSize,
149
- ): SVGElement => {
150
- const el: SVGElement = createSvgElement("text", {
149
+ ): SVGTextElement => {
150
+ const el = createSvgElement("text", {
151
151
  "font-size": fs.toString(),
152
152
  x: x.toString(),
153
153
  y: y.toString(),
154
- });
154
+ }) as SVGTextElement;
155
155
  el.textContent = text;
156
156
  return el;
157
157
  };