qsharp-lang 1.14.5-dev → 1.15.1-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 (338) hide show
  1. package/dist/browser.d.ts +1 -1
  2. package/dist/compiler/compiler.d.ts +1 -1
  3. package/dist/compiler/compiler.js +6 -1
  4. package/dist/debug-service/debug-service.d.ts +1 -1
  5. package/dist/debug-service/debug-service.js +6 -1
  6. package/dist/katas-content.generated.js +1 -1
  7. package/dist/katas-content.generated.md.js +1 -1
  8. package/dist/samples.generated.js +1 -1
  9. package/dist/shared/circuit.d.ts +86 -30
  10. package/dist/shared/circuit.js +4 -0
  11. package/dist/shared/legacyCircuitUpdate.d.ts +9 -0
  12. package/dist/shared/legacyCircuitUpdate.js +312 -0
  13. package/dist/shared/register.d.ts +3 -5
  14. package/dist/utils.d.ts +9 -0
  15. package/dist/utils.js +41 -0
  16. package/docs/Microsoft.Quantum.Core/Length.md +1 -1
  17. package/docs/Microsoft.Quantum.Core/Repeated.md +1 -1
  18. package/docs/Microsoft.Quantum.Core/index.md +1 -1
  19. package/docs/Std.Arithmetic/AddLE.md +1 -1
  20. package/docs/Std.Arithmetic/ApplyIfEqualL.md +1 -1
  21. package/docs/Std.Arithmetic/ApplyIfEqualLE.md +1 -1
  22. package/docs/Std.Arithmetic/ApplyIfGreaterL.md +1 -1
  23. package/docs/Std.Arithmetic/ApplyIfGreaterLE.md +1 -1
  24. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualL.md +1 -1
  25. package/docs/Std.Arithmetic/ApplyIfGreaterOrEqualLE.md +1 -1
  26. package/docs/Std.Arithmetic/ApplyIfLessL.md +1 -1
  27. package/docs/Std.Arithmetic/ApplyIfLessLE.md +1 -1
  28. package/docs/Std.Arithmetic/ApplyIfLessOrEqualL.md +1 -1
  29. package/docs/Std.Arithmetic/ApplyIfLessOrEqualLE.md +1 -1
  30. package/docs/Std.Arithmetic/FourierTDIncByLE.md +1 -1
  31. package/docs/Std.Arithmetic/IncByI.md +1 -1
  32. package/docs/Std.Arithmetic/IncByIUsingIncByLE.md +1 -1
  33. package/docs/Std.Arithmetic/IncByL.md +1 -1
  34. package/docs/Std.Arithmetic/IncByLE.md +1 -1
  35. package/docs/Std.Arithmetic/IncByLEUsingAddLE.md +1 -1
  36. package/docs/Std.Arithmetic/IncByLUsingIncByLE.md +1 -1
  37. package/docs/Std.Arithmetic/LookAheadDKRSAddLE.md +1 -1
  38. package/docs/Std.Arithmetic/MAJ.md +1 -1
  39. package/docs/Std.Arithmetic/ReflectAboutInteger.md +1 -1
  40. package/docs/Std.Arithmetic/RippleCarryCGAddLE.md +1 -1
  41. package/docs/Std.Arithmetic/RippleCarryCGIncByLE.md +1 -1
  42. package/docs/Std.Arithmetic/RippleCarryTTKIncByLE.md +1 -1
  43. package/docs/Std.Arithmetic/index.md +1 -1
  44. package/docs/Std.Arrays/All.md +1 -1
  45. package/docs/Std.Arrays/Any.md +1 -1
  46. package/docs/Std.Arrays/Chunks.md +1 -1
  47. package/docs/Std.Arrays/CircularlyShifted.md +1 -1
  48. package/docs/Std.Arrays/ColumnAt.md +1 -1
  49. package/docs/Std.Arrays/Count.md +1 -1
  50. package/docs/Std.Arrays/Diagonal.md +1 -1
  51. package/docs/Std.Arrays/DrawMany.md +1 -1
  52. package/docs/Std.Arrays/Enumerated.md +1 -1
  53. package/docs/Std.Arrays/Excluding.md +1 -1
  54. package/docs/Std.Arrays/Filtered.md +1 -1
  55. package/docs/Std.Arrays/FlatMapped.md +1 -1
  56. package/docs/Std.Arrays/Flattened.md +1 -1
  57. package/docs/Std.Arrays/Fold.md +1 -1
  58. package/docs/Std.Arrays/ForEach.md +1 -1
  59. package/docs/Std.Arrays/Head.md +1 -1
  60. package/docs/Std.Arrays/HeadAndRest.md +1 -1
  61. package/docs/Std.Arrays/IndexOf.md +1 -1
  62. package/docs/Std.Arrays/IndexRange.md +1 -1
  63. package/docs/Std.Arrays/Interleaved.md +1 -1
  64. package/docs/Std.Arrays/IsEmpty.md +1 -1
  65. package/docs/Std.Arrays/IsRectangularArray.md +1 -1
  66. package/docs/Std.Arrays/IsSorted.md +1 -1
  67. package/docs/Std.Arrays/IsSquareArray.md +1 -1
  68. package/docs/Std.Arrays/Mapped.md +1 -1
  69. package/docs/Std.Arrays/MappedByIndex.md +1 -1
  70. package/docs/Std.Arrays/MappedOverRange.md +1 -1
  71. package/docs/Std.Arrays/Most.md +1 -1
  72. package/docs/Std.Arrays/MostAndTail.md +1 -1
  73. package/docs/Std.Arrays/Padded.md +1 -1
  74. package/docs/Std.Arrays/Partitioned.md +1 -1
  75. package/docs/Std.Arrays/Rest.md +1 -1
  76. package/docs/Std.Arrays/Reversed.md +1 -1
  77. package/docs/Std.Arrays/SequenceI.md +1 -1
  78. package/docs/Std.Arrays/SequenceL.md +1 -1
  79. package/docs/Std.Arrays/Sorted.md +1 -1
  80. package/docs/Std.Arrays/Subarray.md +1 -1
  81. package/docs/Std.Arrays/Swapped.md +1 -1
  82. package/docs/Std.Arrays/Tail.md +1 -1
  83. package/docs/Std.Arrays/Transposed.md +1 -1
  84. package/docs/Std.Arrays/Unzipped.md +1 -1
  85. package/docs/Std.Arrays/Where.md +1 -1
  86. package/docs/Std.Arrays/Windows.md +1 -1
  87. package/docs/Std.Arrays/Zipped.md +1 -1
  88. package/docs/Std.Arrays/index.md +1 -1
  89. package/docs/Std.Canon/ApplyCNOTChain.md +1 -1
  90. package/docs/Std.Canon/ApplyControlledOnBitString.md +1 -1
  91. package/docs/Std.Canon/ApplyControlledOnInt.md +1 -1
  92. package/docs/Std.Canon/ApplyP.md +1 -1
  93. package/docs/Std.Canon/ApplyPauli.md +1 -1
  94. package/docs/Std.Canon/ApplyPauliFromBitString.md +1 -1
  95. package/docs/Std.Canon/ApplyPauliFromInt.md +1 -1
  96. package/docs/Std.Canon/ApplyQFT.md +1 -1
  97. package/docs/Std.Canon/ApplyToEach.md +1 -1
  98. package/docs/Std.Canon/ApplyToEachA.md +1 -1
  99. package/docs/Std.Canon/ApplyToEachC.md +1 -1
  100. package/docs/Std.Canon/ApplyToEachCA.md +1 -1
  101. package/docs/Std.Canon/ApplyXorInPlace.md +1 -1
  102. package/docs/Std.Canon/ApplyXorInPlaceL.md +1 -1
  103. package/docs/Std.Canon/CX.md +1 -1
  104. package/docs/Std.Canon/CY.md +1 -1
  105. package/docs/Std.Canon/CZ.md +1 -1
  106. package/docs/Std.Canon/Fst.md +1 -1
  107. package/docs/Std.Canon/Relabel.md +1 -1
  108. package/docs/Std.Canon/Snd.md +1 -1
  109. package/docs/Std.Canon/SwapReverseRegister.md +1 -1
  110. package/docs/Std.Canon/index.md +1 -1
  111. package/docs/Std.Convert/BigIntAsBoolArray.md +1 -1
  112. package/docs/Std.Convert/BoolArrayAsBigInt.md +1 -1
  113. package/docs/Std.Convert/BoolArrayAsInt.md +1 -1
  114. package/docs/Std.Convert/BoolArrayAsResultArray.md +1 -1
  115. package/docs/Std.Convert/BoolAsResult.md +1 -1
  116. package/docs/Std.Convert/ComplexAsComplexPolar.md +1 -1
  117. package/docs/Std.Convert/ComplexPolarAsComplex.md +1 -1
  118. package/docs/Std.Convert/DoubleAsStringWithPrecision.md +1 -1
  119. package/docs/Std.Convert/IntAsBigInt.md +1 -1
  120. package/docs/Std.Convert/IntAsBoolArray.md +1 -1
  121. package/docs/Std.Convert/IntAsDouble.md +1 -1
  122. package/docs/Std.Convert/ResultArrayAsBoolArray.md +1 -1
  123. package/docs/Std.Convert/ResultArrayAsInt.md +1 -1
  124. package/docs/Std.Convert/ResultAsBool.md +1 -1
  125. package/docs/Std.Convert/index.md +1 -1
  126. package/docs/Std.Core/Length.md +1 -1
  127. package/docs/Std.Core/Repeated.md +1 -1
  128. package/docs/Std.Core/index.md +1 -1
  129. package/docs/Std.Diagnostics/ApplyIdleNoise.md +1 -1
  130. package/docs/Std.Diagnostics/BitFlipNoise.md +1 -1
  131. package/docs/Std.Diagnostics/CheckAllZero.md +1 -1
  132. package/docs/Std.Diagnostics/CheckOperationsAreEqual.md +1 -1
  133. package/docs/Std.Diagnostics/CheckZero.md +1 -1
  134. package/docs/Std.Diagnostics/ConfigurePauliNoise.md +1 -1
  135. package/docs/Std.Diagnostics/DepolarizingNoise.md +1 -1
  136. package/docs/Std.Diagnostics/DumpMachine.md +1 -1
  137. package/docs/Std.Diagnostics/DumpOperation.md +1 -1
  138. package/docs/Std.Diagnostics/DumpRegister.md +1 -1
  139. package/docs/Std.Diagnostics/Fact.md +1 -1
  140. package/docs/Std.Diagnostics/NoNoise.md +1 -1
  141. package/docs/Std.Diagnostics/PhaseFlipNoise.md +1 -1
  142. package/docs/Std.Diagnostics/StartCountingFunction.md +1 -1
  143. package/docs/Std.Diagnostics/StartCountingOperation.md +1 -1
  144. package/docs/Std.Diagnostics/StartCountingQubits.md +1 -1
  145. package/docs/Std.Diagnostics/StopCountingFunction.md +1 -1
  146. package/docs/Std.Diagnostics/StopCountingOperation.md +1 -1
  147. package/docs/Std.Diagnostics/StopCountingQubits.md +1 -1
  148. package/docs/Std.Diagnostics/index.md +1 -1
  149. package/docs/Std.Intrinsic/AND.md +1 -1
  150. package/docs/Std.Intrinsic/ApplyUnitary.md +1 -1
  151. package/docs/Std.Intrinsic/CCNOT.md +1 -1
  152. package/docs/Std.Intrinsic/CNOT.md +1 -1
  153. package/docs/Std.Intrinsic/Exp.md +1 -1
  154. package/docs/Std.Intrinsic/H.md +1 -1
  155. package/docs/Std.Intrinsic/I.md +1 -1
  156. package/docs/Std.Intrinsic/M.md +1 -1
  157. package/docs/Std.Intrinsic/Measure.md +1 -1
  158. package/docs/Std.Intrinsic/Message.md +1 -1
  159. package/docs/Std.Intrinsic/R.md +1 -1
  160. package/docs/Std.Intrinsic/R1.md +1 -1
  161. package/docs/Std.Intrinsic/R1Frac.md +1 -1
  162. package/docs/Std.Intrinsic/RFrac.md +1 -1
  163. package/docs/Std.Intrinsic/Reset.md +1 -1
  164. package/docs/Std.Intrinsic/ResetAll.md +1 -1
  165. package/docs/Std.Intrinsic/Rx.md +1 -1
  166. package/docs/Std.Intrinsic/Rxx.md +1 -1
  167. package/docs/Std.Intrinsic/Ry.md +1 -1
  168. package/docs/Std.Intrinsic/Ryy.md +1 -1
  169. package/docs/Std.Intrinsic/Rz.md +1 -1
  170. package/docs/Std.Intrinsic/Rzz.md +1 -1
  171. package/docs/Std.Intrinsic/S.md +1 -1
  172. package/docs/Std.Intrinsic/SWAP.md +1 -1
  173. package/docs/Std.Intrinsic/T.md +1 -1
  174. package/docs/Std.Intrinsic/X.md +1 -1
  175. package/docs/Std.Intrinsic/Y.md +1 -1
  176. package/docs/Std.Intrinsic/Z.md +1 -1
  177. package/docs/Std.Intrinsic/index.md +1 -1
  178. package/docs/Std.Logical/Xor.md +1 -1
  179. package/docs/Std.Logical/index.md +1 -1
  180. package/docs/Std.Math/AbsComplex.md +1 -1
  181. package/docs/Std.Math/AbsComplexPolar.md +1 -1
  182. package/docs/Std.Math/AbsD.md +1 -1
  183. package/docs/Std.Math/AbsI.md +1 -1
  184. package/docs/Std.Math/AbsL.md +1 -1
  185. package/docs/Std.Math/AbsSquaredComplex.md +1 -1
  186. package/docs/Std.Math/AbsSquaredComplexPolar.md +1 -1
  187. package/docs/Std.Math/ApproximateFactorial.md +1 -1
  188. package/docs/Std.Math/ArcCos.md +1 -1
  189. package/docs/Std.Math/ArcCosh.md +1 -1
  190. package/docs/Std.Math/ArcSin.md +1 -1
  191. package/docs/Std.Math/ArcSinh.md +1 -1
  192. package/docs/Std.Math/ArcTan.md +1 -1
  193. package/docs/Std.Math/ArcTan2.md +1 -1
  194. package/docs/Std.Math/ArcTanh.md +1 -1
  195. package/docs/Std.Math/ArgComplex.md +1 -1
  196. package/docs/Std.Math/ArgComplexPolar.md +1 -1
  197. package/docs/Std.Math/Binom.md +1 -1
  198. package/docs/Std.Math/BitSizeI.md +1 -1
  199. package/docs/Std.Math/BitSizeL.md +1 -1
  200. package/docs/Std.Math/Ceiling.md +1 -1
  201. package/docs/Std.Math/Complex.md +1 -1
  202. package/docs/Std.Math/ComplexPolar.md +1 -1
  203. package/docs/Std.Math/ContinuedFractionConvergentI.md +1 -1
  204. package/docs/Std.Math/ContinuedFractionConvergentL.md +1 -1
  205. package/docs/Std.Math/Cos.md +1 -1
  206. package/docs/Std.Math/Cosh.md +1 -1
  207. package/docs/Std.Math/DivRemI.md +1 -1
  208. package/docs/Std.Math/DivRemL.md +1 -1
  209. package/docs/Std.Math/DividedByC.md +1 -1
  210. package/docs/Std.Math/DividedByCP.md +1 -1
  211. package/docs/Std.Math/E.md +1 -1
  212. package/docs/Std.Math/ExpModI.md +1 -1
  213. package/docs/Std.Math/ExpModL.md +1 -1
  214. package/docs/Std.Math/ExtendedGreatestCommonDivisorI.md +1 -1
  215. package/docs/Std.Math/ExtendedGreatestCommonDivisorL.md +1 -1
  216. package/docs/Std.Math/FactorialI.md +1 -1
  217. package/docs/Std.Math/FactorialL.md +1 -1
  218. package/docs/Std.Math/Floor.md +1 -1
  219. package/docs/Std.Math/GreatestCommonDivisorI.md +1 -1
  220. package/docs/Std.Math/GreatestCommonDivisorL.md +1 -1
  221. package/docs/Std.Math/HammingWeightI.md +1 -1
  222. package/docs/Std.Math/InverseModI.md +1 -1
  223. package/docs/Std.Math/InverseModL.md +1 -1
  224. package/docs/Std.Math/IsCoprimeI.md +1 -1
  225. package/docs/Std.Math/IsCoprimeL.md +1 -1
  226. package/docs/Std.Math/IsInfinite.md +1 -1
  227. package/docs/Std.Math/IsNaN.md +1 -1
  228. package/docs/Std.Math/LargestFixedPoint.md +1 -1
  229. package/docs/Std.Math/Lg.md +1 -1
  230. package/docs/Std.Math/Log.md +1 -1
  231. package/docs/Std.Math/Log10.md +1 -1
  232. package/docs/Std.Math/LogFactorialD.md +1 -1
  233. package/docs/Std.Math/LogGammaD.md +1 -1
  234. package/docs/Std.Math/LogOf2.md +1 -1
  235. package/docs/Std.Math/Max.md +1 -1
  236. package/docs/Std.Math/MaxD.md +1 -1
  237. package/docs/Std.Math/MaxI.md +1 -1
  238. package/docs/Std.Math/MaxL.md +1 -1
  239. package/docs/Std.Math/Min.md +1 -1
  240. package/docs/Std.Math/MinD.md +1 -1
  241. package/docs/Std.Math/MinI.md +1 -1
  242. package/docs/Std.Math/MinL.md +1 -1
  243. package/docs/Std.Math/MinusC.md +1 -1
  244. package/docs/Std.Math/MinusCP.md +1 -1
  245. package/docs/Std.Math/ModulusI.md +1 -1
  246. package/docs/Std.Math/ModulusL.md +1 -1
  247. package/docs/Std.Math/NegationC.md +1 -1
  248. package/docs/Std.Math/NegationCP.md +1 -1
  249. package/docs/Std.Math/PI.md +1 -1
  250. package/docs/Std.Math/PNorm.md +1 -1
  251. package/docs/Std.Math/PNormalized.md +1 -1
  252. package/docs/Std.Math/PlusC.md +1 -1
  253. package/docs/Std.Math/PlusCP.md +1 -1
  254. package/docs/Std.Math/PowC.md +1 -1
  255. package/docs/Std.Math/PowCP.md +1 -1
  256. package/docs/Std.Math/RealMod.md +1 -1
  257. package/docs/Std.Math/Round.md +1 -1
  258. package/docs/Std.Math/SignD.md +1 -1
  259. package/docs/Std.Math/SignI.md +1 -1
  260. package/docs/Std.Math/SignL.md +1 -1
  261. package/docs/Std.Math/Sin.md +1 -1
  262. package/docs/Std.Math/Sinh.md +1 -1
  263. package/docs/Std.Math/SmallestFixedPoint.md +1 -1
  264. package/docs/Std.Math/Sqrt.md +1 -1
  265. package/docs/Std.Math/SquaredNorm.md +1 -1
  266. package/docs/Std.Math/Tan.md +1 -1
  267. package/docs/Std.Math/Tanh.md +1 -1
  268. package/docs/Std.Math/TimesC.md +1 -1
  269. package/docs/Std.Math/TimesCP.md +1 -1
  270. package/docs/Std.Math/TrailingZeroCountI.md +1 -1
  271. package/docs/Std.Math/TrailingZeroCountL.md +1 -1
  272. package/docs/Std.Math/Truncate.md +1 -1
  273. package/docs/Std.Math/index.md +1 -1
  274. package/docs/Std.Measurement/MResetEachZ.md +1 -1
  275. package/docs/Std.Measurement/MResetX.md +1 -1
  276. package/docs/Std.Measurement/MResetY.md +1 -1
  277. package/docs/Std.Measurement/MResetZ.md +1 -1
  278. package/docs/Std.Measurement/MeasureAllZ.md +1 -1
  279. package/docs/Std.Measurement/MeasureEachZ.md +1 -1
  280. package/docs/Std.Measurement/MeasureInteger.md +1 -1
  281. package/docs/Std.Measurement/index.md +1 -1
  282. package/docs/Std.Random/DrawRandomBool.md +1 -1
  283. package/docs/Std.Random/DrawRandomDouble.md +1 -1
  284. package/docs/Std.Random/DrawRandomInt.md +1 -1
  285. package/docs/Std.Random/index.md +1 -1
  286. package/docs/Std.Range/IsRangeEmpty.md +1 -1
  287. package/docs/Std.Range/RangeEnd.md +1 -1
  288. package/docs/Std.Range/RangeReverse.md +1 -1
  289. package/docs/Std.Range/RangeStart.md +1 -1
  290. package/docs/Std.Range/RangeStep.md +1 -1
  291. package/docs/Std.Range/index.md +1 -1
  292. package/docs/Std.ResourceEstimation/AccountForEstimates.md +1 -1
  293. package/docs/Std.ResourceEstimation/AuxQubitCount.md +1 -1
  294. package/docs/Std.ResourceEstimation/BeginEstimateCaching.md +1 -1
  295. package/docs/Std.ResourceEstimation/BeginRepeatEstimates.md +1 -1
  296. package/docs/Std.ResourceEstimation/CczCount.md +1 -1
  297. package/docs/Std.ResourceEstimation/EndEstimateCaching.md +1 -1
  298. package/docs/Std.ResourceEstimation/EndRepeatEstimates.md +1 -1
  299. package/docs/Std.ResourceEstimation/MeasurementCount.md +1 -1
  300. package/docs/Std.ResourceEstimation/PSSPCLayout.md +1 -1
  301. package/docs/Std.ResourceEstimation/RepeatEstimates.md +1 -1
  302. package/docs/Std.ResourceEstimation/RotationCount.md +1 -1
  303. package/docs/Std.ResourceEstimation/RotationDepth.md +1 -1
  304. package/docs/Std.ResourceEstimation/SingleVariant.md +1 -1
  305. package/docs/Std.ResourceEstimation/TCount.md +1 -1
  306. package/docs/Std.ResourceEstimation/index.md +1 -1
  307. package/docs/Std.StatePreparation/ApproximatelyPreparePureStateCP.md +1 -1
  308. package/docs/Std.StatePreparation/PreparePureStateD.md +1 -1
  309. package/docs/Std.StatePreparation/PrepareUniformSuperposition.md +1 -1
  310. package/docs/Std.StatePreparation/index.md +1 -1
  311. package/docs/Std.TableLookup/Select.md +1 -1
  312. package/docs/Std.TableLookup/index.md +1 -1
  313. package/docs/index.md +1 -1
  314. package/lib/node/qsc_wasm.cjs +2 -2
  315. package/lib/node/qsc_wasm_bg.wasm +0 -0
  316. package/lib/web/qsc_wasm.js +2 -2
  317. package/lib/web/qsc_wasm_bg.wasm +0 -0
  318. package/package.json +1 -1
  319. package/ux/circuit-vis/circuit.ts +11 -0
  320. package/ux/circuit-vis/circuitManipulation.ts +549 -0
  321. package/ux/circuit-vis/constants.ts +7 -0
  322. package/ux/circuit-vis/contextMenu.ts +376 -0
  323. package/ux/circuit-vis/draggable.ts +352 -0
  324. package/ux/circuit-vis/events.ts +818 -0
  325. package/ux/circuit-vis/formatters/gateFormatter.ts +56 -23
  326. package/ux/circuit-vis/formatters/inputFormatter.ts +38 -7
  327. package/ux/circuit-vis/formatters/registerFormatter.ts +12 -30
  328. package/ux/circuit-vis/index.ts +16 -11
  329. package/ux/circuit-vis/metadata.ts +3 -1
  330. package/ux/circuit-vis/panel.ts +333 -0
  331. package/ux/circuit-vis/process.ts +136 -232
  332. package/ux/circuit-vis/sqore.ts +231 -116
  333. package/ux/circuit-vis/utils.ts +269 -1
  334. package/ux/circuit.tsx +71 -37
  335. package/ux/data.ts +4 -2
  336. package/ux/index.ts +1 -1
  337. package/ux/qsharp-circuit.css +260 -4
  338. package/ux/circuit-vis/styles.ts +0 -236
@@ -44,12 +44,33 @@
44
44
 
45
45
  /* Background for gates */
46
46
  .qs-circuit .gate-unitary {
47
- fill: var(--vscode-button-secondaryBackground, #d9f1fa);
47
+ fill: var(--vscode-button-secondaryBackground, #333333);
48
48
  }
49
49
 
50
50
  /* Text for gates */
51
51
  .qs-circuit .gate text {
52
- fill: var(--vscode-button-secondaryForeground, #000000);
52
+ fill: var(--vscode-button-secondaryForeground, #ffffff);
53
+ }
54
+
55
+ /* Default style for arg-button */
56
+ .qs-circuit .arg-button {
57
+ fill: var(--vscode-editor-foreground, #ffffff);
58
+ text-decoration: none;
59
+ cursor: default;
60
+ pointer-events: none;
61
+ }
62
+
63
+ /* Edit mode style for arg-button (hyperlink appearance) */
64
+ .qs-circuit .arg-button.edit-mode {
65
+ fill: var(--vscode-textLink-foreground, #0066cc);
66
+ text-decoration: underline;
67
+ cursor: pointer;
68
+ pointer-events: all;
69
+ }
70
+
71
+ /* Hover style for arg-button in edit mode */
72
+ .qs-circuit .arg-button.edit-mode:hover {
73
+ fill: var(--vscode-textLink-activeForeground, #004499); /* Hover color */
53
74
  }
54
75
 
55
76
  /* Dot and line for controlled gates */
@@ -68,17 +89,28 @@
68
89
 
69
90
  /* Measurement gate */
70
91
  .qs-circuit .gate-measure {
71
- fill: var(--vscode-button-background, #ffde86);
92
+ fill: var(--vscode-button-background, #007acc);
72
93
  }
73
94
 
74
95
  /* Measurement gate icon */
75
96
  .qs-circuit .gate > g > line,
76
97
  .qs-circuit .arc-measure {
77
- stroke: var(--vscode-button-foreground, #000000);
98
+ stroke: var(--vscode-button-foreground, #ffffff);
78
99
  fill: none;
79
100
  stroke-width: 1;
80
101
  }
81
102
 
103
+ /* Ket gate */
104
+ .qs-circuit .gate-ket {
105
+ fill: var(--vscode-button-background, #007acc);
106
+ }
107
+
108
+ /* Ket gate text */
109
+ .qs-circuit text.ket-text {
110
+ fill: var(--vscode-button-foreground, #ffffff);
111
+ stroke: none;
112
+ }
113
+
82
114
  /* SWAP gate */
83
115
  .qs-circuit rect.gate-swap {
84
116
  fill: transparent;
@@ -192,3 +224,227 @@
192
224
  opacity: 1;
193
225
  transition: opacity 1s;
194
226
  }
227
+
228
+ text {
229
+ user-select: none;
230
+ pointer-events: none;
231
+ }
232
+ .dropzone-layer {
233
+ display: none;
234
+ }
235
+ .dropzone {
236
+ fill-opacity: 0%;
237
+ stroke-opacity: 0%;
238
+ }
239
+ .dropzone:hover {
240
+ fill: var(--vscode-editor-selectionBackground, #ec7063);
241
+ fill-opacity: 50%;
242
+ }
243
+ .dropzone-full-wire {
244
+ fill-opacity: 0%;
245
+ stroke-opacity: 0%;
246
+ }
247
+ .dropzone-full-wire:hover {
248
+ fill: var(--vscode-editor-selectionBackground, #ec7063);
249
+ fill-opacity: 50%;
250
+ }
251
+ .grab {
252
+ cursor: grab;
253
+ }
254
+ .moving {
255
+ cursor: move;
256
+ }
257
+ .copying {
258
+ cursor: copy;
259
+ }
260
+
261
+ .panel {
262
+ display: flex;
263
+ flex-direction: row;
264
+ }
265
+
266
+ .context-menu {
267
+ position: absolute;
268
+ background-color: var(--vscode-menu-background, #ffffff);
269
+ border: 1px solid var(--vscode-menu-border, #cccccc);
270
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
271
+ z-index: 1000;
272
+ padding: 5px 0;
273
+ border-radius: 4px;
274
+ }
275
+
276
+ .context-menu-option {
277
+ padding: 8px 12px;
278
+ cursor: pointer;
279
+ white-space: nowrap;
280
+ color: var(--vscode-menu-foreground, #000000);
281
+ }
282
+
283
+ .context-menu-option:hover {
284
+ background-color: var(--vscode-menu-selectionBackground, #f0f0f0);
285
+ color: var(--vscode-menu-selectionForeground, #000000);
286
+ }
287
+
288
+ .prompt-overlay {
289
+ position: fixed;
290
+ top: 0;
291
+ left: 0;
292
+ width: 100%;
293
+ height: 100%;
294
+ background: rgba(0, 0, 0, 0.5);
295
+ display: flex;
296
+ justify-content: center;
297
+ align-items: center;
298
+ z-index: 1000;
299
+ }
300
+
301
+ .prompt-container {
302
+ background: var(--vscode-editor-background, #ffffff);
303
+ color: var(--vscode-editor-foreground, #000000);
304
+ padding: 20px;
305
+ border-radius: 5px;
306
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
307
+ text-align: center;
308
+ width: 400px;
309
+ max-width: 90%;
310
+ }
311
+
312
+ .prompt-message {
313
+ margin-bottom: 10px;
314
+ color: var(--vscode-editor-foreground, #000000);
315
+ font-size: 1rem;
316
+ }
317
+
318
+ .prompt-input {
319
+ width: 100%;
320
+ padding: 8px;
321
+ margin-bottom: 10px;
322
+ background: var(--vscode-input-background, #ffffff);
323
+ color: var(--vscode-input-foreground, #000000);
324
+ border: 1px solid var(--vscode-input-border, #cccccc);
325
+ font-size: 1rem;
326
+ border-radius: 4px;
327
+ box-sizing: border-box;
328
+ }
329
+
330
+ .prompt-buttons {
331
+ display: flex;
332
+ justify-content: space-between;
333
+ }
334
+
335
+ .prompt-button {
336
+ padding: 8px 16px;
337
+ margin: 0 5px;
338
+ background: var(--vscode-button-background, #007acc);
339
+ color: var(--vscode-button-foreground, #ffffff);
340
+ border: 1px solid var(--vscode-button-border, #005a9e);
341
+ cursor: pointer;
342
+ border-radius: 4px;
343
+ }
344
+
345
+ .prompt-button:hover {
346
+ background: var(--vscode-button-hoverBackground, #005a9e);
347
+ }
348
+
349
+ .prompt-button:disabled {
350
+ background: var(--vscode-button-secondaryBackground, #d4d4d4);
351
+ color: var(--vscode-disabledForeground, #a1a1a1);
352
+ border: 1px solid var(--vscode-button-secondaryBackground, #d4d4d4);
353
+ cursor: not-allowed;
354
+ }
355
+
356
+ .pi-button {
357
+ width: 40px;
358
+ height: 40px;
359
+ padding: 0;
360
+ text-align: center;
361
+ line-height: 40px;
362
+ font-size: 16px;
363
+ }
364
+
365
+ .container {
366
+ display: flex;
367
+ }
368
+
369
+ .edit-panel {
370
+ display: flex;
371
+ flex-direction: column;
372
+ }
373
+
374
+ .title {
375
+ margin: 0 0 4px;
376
+ font-size: 1.2rem;
377
+ user-select: none;
378
+ }
379
+
380
+ .block {
381
+ display: block;
382
+ }
383
+
384
+ .target-input,
385
+ .controls-input,
386
+ .parameters-input {
387
+ margin-bottom: 8px;
388
+ }
389
+
390
+ .toolbox-panel {
391
+ width: 100px;
392
+ min-height: var(--minToolboxHeight);
393
+ border-right: medium solid var(--vscode-editorWidget-border, #000000);
394
+ }
395
+
396
+ .toolbox-panel .title {
397
+ margin-top: 6px;
398
+ }
399
+
400
+ .toolbox-panel-svg {
401
+ width: -webkit-fill-available;
402
+ min-height: var(--minToolboxHeight);
403
+ height: 100%;
404
+ }
405
+
406
+ .ghost {
407
+ width: var(--minGateWidth);
408
+ height: var(--gateHeight);
409
+ position: absolute;
410
+ z-index: 1;
411
+ pointer-events: none;
412
+ opacity: 0.5;
413
+ }
414
+
415
+ .qubit-line-control {
416
+ display: flex;
417
+ justify-content: flex-start;
418
+ align-items: center;
419
+ margin-bottom: 8px;
420
+ }
421
+
422
+ .qubit-line-control .title {
423
+ margin-left: 16px;
424
+ }
425
+
426
+ .add-qubit-line,
427
+ .remove-qubit-line {
428
+ border-radius: 4px;
429
+ padding: 8px 16px;
430
+ margin: 4px;
431
+ cursor: pointer;
432
+ font-size: 14px;
433
+ user-select: none;
434
+ background: var(--vscode-button-background, #007acc);
435
+ color: var(--vscode-button-foreground, #ffffff);
436
+ border: 1px solid var(--vscode-button-border, #005a9e);
437
+ }
438
+
439
+ .add-qubit-line:hover,
440
+ .remove-qubit-line:hover {
441
+ background: var(--vscode-button-hoverBackground, #005a9e);
442
+ }
443
+
444
+ .add-qubit-line:disabled,
445
+ .remove-qubit-line:disabled {
446
+ background: var(--vscode-button-secondaryBackground, #d4d4d4);
447
+ color: var(--vscode-disabledForeground, #a1a1a1);
448
+ border: 1px solid var(--vscode-button-secondaryBackground, #d4d4d4);
449
+ cursor: not-allowed;
450
+ }
@@ -1,236 +0,0 @@
1
- // Copyright (c) Microsoft Corporation.
2
- // Licensed under the MIT license.
3
-
4
- /**
5
- * Provides configuration for CSS styles of visualization.
6
- */
7
- export interface StyleConfig {
8
- /** Line stroke style. */
9
- lineStroke?: string;
10
- /** Line width. */
11
- lineWidth?: number;
12
- /** Text colour. */
13
- textColour?: string;
14
- /** Single qubit unitary fill colour. */
15
- unitary?: string;
16
- /** Oplus circle fill colour. */
17
- oplus?: string;
18
- /** Measurement gate fill colour. */
19
- measure?: string;
20
- /** Measurement unknown primary colour. */
21
- classicalUnknown?: string;
22
- /** Measurement zero primary colour. */
23
- classicalZero?: string;
24
- /** Measurement one primary colour. */
25
- classicalOne?: string;
26
- /** Measurement zero text colour */
27
- classicalZeroText?: string;
28
- /** Measurement one text colour */
29
- classicalOneText?: string;
30
- }
31
-
32
- const defaultStyle: StyleConfig = {
33
- lineStroke: "#000000",
34
- lineWidth: 1,
35
- textColour: "#000000",
36
- unitary: "#D9F1FA",
37
- oplus: "#FFFFFF",
38
- measure: "#FFDE86",
39
- classicalUnknown: "#E5E5E5",
40
- classicalZero: "#C40000",
41
- classicalOne: "#4059BD",
42
- classicalZeroText: "#FFFFFF",
43
- classicalOneText: "#FFFFFF",
44
- };
45
-
46
- const blackAndWhiteStyle: StyleConfig = {
47
- lineStroke: "#000000",
48
- lineWidth: 1,
49
- textColour: "#000000",
50
- unitary: "#FFFFFF",
51
- oplus: "#FFFFFF",
52
- measure: "#FFFFFF",
53
- classicalUnknown: "#FFFFFF",
54
- classicalZero: "#000000",
55
- classicalOne: "#000000",
56
- classicalZeroText: "#FFFFFF",
57
- classicalOneText: "#FFFFFF",
58
- };
59
-
60
- const invertedStyle: StyleConfig = {
61
- lineStroke: "#FFFFFF",
62
- lineWidth: 1,
63
- textColour: "#FFFFFF",
64
- unitary: "#000000",
65
- oplus: "#000000",
66
- measure: "#000000",
67
- classicalUnknown: "#000000",
68
- classicalZero: "#FFFFFF",
69
- classicalOne: "#FFFFFF",
70
- classicalZeroText: "#000000",
71
- classicalOneText: "#000000",
72
- };
73
-
74
- /**
75
- * Set of default styles.
76
- */
77
- export const STYLES: { [name: string]: StyleConfig } = {
78
- /** Default style with coloured gates. */
79
- Default: defaultStyle,
80
- /** Black and white style. */
81
- BlackAndWhite: blackAndWhiteStyle,
82
- /** Inverted black and white style (for black backgrounds). */
83
- Inverted: invertedStyle,
84
- };
85
-
86
- /**
87
- * CSS style script to be injected into visualization SVG.
88
- *
89
- * @param customStyle Custom style configuration.
90
- *
91
- * @returns String containing CSS style script.
92
- */
93
- export const style = (customStyle: StyleConfig = {}): string => {
94
- const styleConfig = { ...defaultStyle, ...customStyle };
95
-
96
- return `${_defaultGates(styleConfig)}
97
- ${_classicallyControlledGates(styleConfig)}
98
- ${_expandCollapse}`;
99
- };
100
-
101
- const _defaultGates = (styleConfig: StyleConfig): string => `
102
- line,
103
- circle,
104
- rect {
105
- stroke: ${styleConfig.lineStroke};
106
- stroke-width: ${styleConfig.lineWidth};
107
- }
108
- text {
109
- fill: ${styleConfig.textColour};
110
- dominant-baseline: middle;
111
- text-anchor: middle;
112
- font-family: Arial;
113
- }
114
- .control-dot {
115
- fill: ${styleConfig.lineStroke};
116
- }
117
- .oplus line, .oplus circle {
118
- fill: ${styleConfig.oplus};
119
- stroke-width: 2;
120
- }
121
- .gate-unitary {
122
- fill: ${styleConfig.unitary};
123
- }
124
- .gate-measure {
125
- fill: ${styleConfig.measure};
126
- }
127
- rect.gate-swap {
128
- fill: transparent;
129
- stroke: transparent;
130
- }
131
- .arc-measure {
132
- stroke: ${styleConfig.lineStroke};
133
- fill: none;
134
- stroke-width: ${styleConfig.lineWidth};
135
- }
136
- .register-classical {
137
- stroke-width: ${(styleConfig.lineWidth || 0) / 2};
138
- }`;
139
-
140
- const _classicallyControlledGates = (styleConfig: StyleConfig): string => {
141
- const gateOutline = `
142
- .classically-controlled-one .classical-container,
143
- .classically-controlled-one .classical-line {
144
- stroke: ${styleConfig.classicalOne};
145
- stroke-width: ${(styleConfig.lineWidth || 0) + 0.3};
146
- fill: ${styleConfig.classicalOne};
147
- fill-opacity: 0.1;
148
- }
149
- .classically-controlled-zero .classical-container,
150
- .classically-controlled-zero .classical-line {
151
- stroke: ${styleConfig.classicalZero};
152
- stroke-width: ${(styleConfig.lineWidth || 0) + 0.3};
153
- fill: ${styleConfig.classicalZero};
154
- fill-opacity: 0.1;
155
- }`;
156
- const controlBtn = `
157
- .classically-controlled-btn {
158
- cursor: pointer;
159
- }
160
- .classically-controlled-unknown .classically-controlled-btn {
161
- fill: ${styleConfig.classicalUnknown};
162
- }
163
- .classically-controlled-one .classically-controlled-btn {
164
- fill: ${styleConfig.classicalOne};
165
- }
166
- .classically-controlled-zero .classically-controlled-btn {
167
- fill: ${styleConfig.classicalZero};
168
- }`;
169
-
170
- const controlBtnText = `
171
- .classically-controlled-btn text {
172
- dominant-baseline: middle;
173
- text-anchor: middle;
174
- stroke: none;
175
- font-family: Arial;
176
- }
177
- .classically-controlled-unknown .classically-controlled-btn text {
178
- fill: ${styleConfig.textColour};
179
- }
180
- .classically-controlled-one .classically-controlled-btn text {
181
- fill: ${styleConfig.classicalOneText};
182
- }
183
- .classically-controlled-zero .classically-controlled-btn text {
184
- fill: ${styleConfig.classicalZeroText};
185
- }`;
186
-
187
- return `
188
- .hidden {
189
- display: none;
190
- }
191
- .classically-controlled-unknown {
192
- opacity: 0.25;
193
- }
194
-
195
- ${gateOutline}
196
- ${controlBtn}
197
- ${controlBtnText}`;
198
- };
199
-
200
- const _expandCollapse = `
201
- .qviz .gate-collapse,
202
- .qviz .gate-expand {
203
- opacity: 0;
204
- transition: opacity 1s;
205
- }
206
-
207
- .qviz:hover .gate-collapse,
208
- .qviz:hover .gate-expand {
209
- visibility: visible;
210
- opacity: 0.2;
211
- transition: visibility 1s;
212
- transition: opacity 1s;
213
- }
214
-
215
- .gate-expand, .gate-collapse {
216
- cursor: pointer;
217
- }
218
-
219
- .gate-collapse circle,
220
- .gate-expand circle {
221
- fill: white;
222
- stroke-width: 2px;
223
- stroke: black;
224
- }
225
- .gate-collapse path,
226
- .gate-expand path {
227
- stroke-width: 4px;
228
- stroke: black;
229
- }
230
-
231
- .gate:hover > .gate-collapse,
232
- .gate:hover > .gate-expand {
233
- visibility: visible;
234
- opacity: 1;
235
- transition: opacity 1s;
236
- }`;