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,265 +2,371 @@
2
2
  Licensed under the MIT License. */
3
3
 
4
4
  /* Circuit panel */
5
- .qs-circuit-panel p {
6
- padding: 10px 0px;
7
- }
5
+ .qs-circuit-panel {
6
+ p {
7
+ padding: 10px 0px;
8
+ }
8
9
 
9
- /* Error div in circuit panel */
10
- .qs-circuit-error {
11
- padding: 10px 0px;
12
- }
10
+ /* Error div in circuit panel */
11
+ .qs-circuit-error {
12
+ padding: 10px 0px;
13
+ }
13
14
 
14
- .qs-circuit-error p {
15
- padding: 10px 0px;
16
- }
15
+ .qs-circuit-error p {
16
+ padding: 10px 0px;
17
+ }
17
18
 
18
- /*
19
+ /*
19
20
  Styles for Q# circuits.
20
21
  Copied and modified from the default CSS generated by
21
22
  https://github.com/microsoft/quantum-viz.js/blob/288e0cb506ee866ecca1b414c522e2d634f7b36d/src/styles.ts
22
23
  */
23
24
 
24
- /* Background color for the circuit diagram */
25
- .qs-circuit {
26
- background: var(--main-background);
27
- }
28
-
29
- /* Wires and gate outlines */
30
- .qs-circuit line,
31
- .qs-circuit circle,
32
- .qs-circuit rect {
33
- stroke: var(--main-color);
34
- stroke-width: 1;
35
- }
36
-
37
- /* Text for qubit labels */
38
- .qs-circuit text {
39
- fill: var(--main-color);
40
- dominant-baseline: middle;
41
- text-anchor: middle;
42
- font-family: Arial;
43
- }
44
-
45
- /* Background for gates */
46
- .qs-circuit .gate-unitary {
47
- fill: var(--vscode-button-secondaryBackground, #333333);
48
- }
49
-
50
- /* Text for gates */
51
- .qs-circuit .gate text {
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 */
74
- }
75
-
76
- /* Dot and line for controlled gates */
77
- .qs-circuit .gate > line,
78
- .qs-circuit .control-dot {
79
- fill: var(--main-color);
80
- }
81
-
82
- /* X gate */
83
- .qs-circuit .gate > .oplus > line,
84
- .qs-circuit .gate > .oplus > circle {
85
- fill: var(--main-background);
86
- stroke: var(--main-color);
87
- stroke-width: 2;
88
- }
89
-
90
- /* Measurement gate */
91
- .qs-circuit .gate-measure {
92
- fill: var(--vscode-button-background, #007acc);
93
- }
94
-
95
- /* Measurement gate icon */
96
- .qs-circuit .gate > g > line,
97
- .qs-circuit .arc-measure {
98
- stroke: var(--vscode-button-foreground, #ffffff);
99
- fill: none;
100
- stroke-width: 1;
101
- }
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
-
114
- /* SWAP gate */
115
- .qs-circuit rect.gate-swap {
116
- fill: transparent;
117
- stroke: transparent;
118
- }
119
-
120
- /* Classical wire */
121
- .qs-circuit .register-classical {
122
- stroke-width: 0.5;
123
- }
124
-
125
- /*
25
+ /* Background color for the circuit diagram */
26
+ .qs-circuit {
27
+ background: var(--main-background);
28
+ }
29
+
30
+ /* Wires and gate outlines */
31
+ .qs-circuit line,
32
+ .qs-circuit circle,
33
+ .qs-circuit rect {
34
+ stroke: var(--main-color);
35
+ stroke-width: 1;
36
+ }
37
+
38
+ /* Text for qubit labels */
39
+ .qs-circuit text {
40
+ fill: var(--main-color);
41
+ dominant-baseline: middle;
42
+ text-anchor: middle;
43
+ }
44
+
45
+ /* When run in VS Code, the "KaTeX_Main" and "KaTeX_Math" fonts are already present */
46
+ /* When run in Jupyter in the browser, the MJX* (MathJax) fonts are used and present */
47
+ .qs-maintext {
48
+ font-family: "KaTeX_Main", "MJXZERO", "MJXTEX", sans-serif;
49
+ font-style: normal;
50
+ }
51
+
52
+ .qs-mathtext {
53
+ font-family: "KaTeX_Math", "MJXZERO", "MJXTEX-I", serif;
54
+ }
55
+
56
+ /* The math font used in KaTex (thus in VS Code) needs italic applied also, whereas
57
+ the font used in MathJax (thus Jupyter web) doesn't. So apply if in VS Code */
58
+ [data-vscode-theme-kind] .qs-mathtext {
59
+ font-style: italic;
60
+ }
61
+
62
+ /* Background for gates */
63
+ .qs-circuit .gate-unitary {
64
+ fill: var(--vscode-button-secondaryBackground, #333333);
65
+ }
66
+
67
+ /* Text for gates */
68
+ .qs-circuit .gate text {
69
+ fill: var(--vscode-button-secondaryForeground, #ffffff);
70
+ }
71
+
72
+ /* Default style for arg-button */
73
+ .qs-circuit .arg-button {
74
+ fill: var(--vscode-editor-foreground, #ffffff);
75
+ text-decoration: none;
76
+ cursor: default;
77
+ pointer-events: none;
78
+ word-spacing: -0.2em;
79
+ }
80
+
81
+ /* Edit mode style for arg-button (hyperlink appearance) */
82
+ .qs-circuit .arg-button.edit-mode {
83
+ fill: var(--vscode-textLink-foreground, #0066cc);
84
+ text-decoration: underline;
85
+ cursor: pointer;
86
+ pointer-events: all;
87
+ }
88
+
89
+ /* Hover style for arg-button in edit mode */
90
+ .qs-circuit .arg-button.edit-mode:hover {
91
+ fill: var(--vscode-textLink-activeForeground, #004499); /* Hover color */
92
+ }
93
+
94
+ /* Dot and line for controlled gates */
95
+ .qs-circuit .gate > line,
96
+ .qs-circuit .control-dot {
97
+ fill: var(--main-color);
98
+ }
99
+
100
+ /* X gate */
101
+ .qs-circuit .gate > .oplus > line,
102
+ .qs-circuit .gate > .oplus > circle {
103
+ fill: var(--main-background);
104
+ stroke: var(--main-color);
105
+ stroke-width: 2;
106
+ }
107
+
108
+ /* Measurement gate */
109
+ .qs-circuit .gate-measure {
110
+ fill: var(--vscode-button-background, #007acc);
111
+ }
112
+
113
+ /* Measurement gate icon */
114
+ .qs-circuit .gate > g > line,
115
+ .qs-circuit .arc-measure {
116
+ stroke: var(--vscode-button-foreground, #ffffff);
117
+ fill: none;
118
+ stroke-width: 1;
119
+ }
120
+
121
+ /* Ket gate */
122
+ .qs-circuit .gate-ket {
123
+ fill: var(--vscode-button-background, #007acc);
124
+ }
125
+
126
+ /* Ket gate text */
127
+ .qs-circuit text.ket-text {
128
+ fill: var(--vscode-button-foreground, #ffffff);
129
+ stroke: none;
130
+ }
131
+
132
+ /* SWAP gate */
133
+ .qs-circuit rect.gate-swap {
134
+ fill: transparent;
135
+ stroke: transparent;
136
+ }
137
+
138
+ /* Classical wire */
139
+ .qs-circuit .register-classical {
140
+ stroke-width: 0.5;
141
+ }
142
+
143
+ /*
126
144
  The following styles are unused so they are unthemed.
127
145
  They relate to conditional circuits which are not currently supported.
128
146
  */
129
147
 
130
- .qs-circuit .hidden {
131
- display: none;
132
- }
133
-
134
- .qs-circuit .classically-controlled-unknown {
135
- opacity: 0.25;
136
- }
137
-
138
- .qs-circuit .classically-controlled-one .classical-container,
139
- .qs-circuit .classically-controlled-one .classical-line {
140
- stroke: #4059bd;
141
- stroke-width: 1.3;
142
- fill: #4059bd;
143
- fill-opacity: 0.1;
144
- }
145
-
146
- .qs-circuit .classically-controlled-zero .classical-container,
147
- .qs-circuit .classically-controlled-zero .classical-line {
148
- stroke: #c40000;
149
- stroke-width: 1.3;
150
- fill: #c40000;
151
- fill-opacity: 0.1;
152
- }
153
-
154
- .qs-circuit .classically-controlled-btn {
155
- cursor: pointer;
156
- }
157
-
158
- .qs-circuit .classically-controlled-unknown .classically-controlled-btn {
159
- fill: #e5e5e5;
160
- }
161
-
162
- .qs-circuit .classically-controlled-one .classically-controlled-btn {
163
- fill: #4059bd;
164
- }
165
-
166
- .qs-circuit .classically-controlled-zero .classically-controlled-btn {
167
- fill: #c40000;
168
- }
169
-
170
- .qs-circuit .classically-controlled-btn text {
171
- dominant-baseline: middle;
172
- text-anchor: middle;
173
- stroke: none;
174
- font-family: Arial;
175
- }
176
-
177
- .qs-circuit .classically-controlled-unknown .classically-controlled-btn text {
178
- fill: #000000;
179
- }
180
-
181
- .qs-circuit .classically-controlled-one .classically-controlled-btn text {
182
- fill: #ffffff;
183
- }
184
-
185
- .qs-circuit .classically-controlled-zero .classically-controlled-btn text {
186
- fill: #ffffff;
187
- }
188
-
189
- .qs-circuit .qviz .gate-collapse,
190
- .qs-circuit .qviz .gate-expand {
191
- opacity: 0;
192
- transition: opacity 1s;
193
- }
194
-
195
- .qs-circuit .qviz:hover .gate-collapse,
196
- .qs-circuit .qviz:hover .gate-expand {
197
- visibility: visible;
198
- opacity: 0.2;
199
- transition: visibility 1s;
200
- transition: opacity 1s;
201
- }
202
-
203
- .qs-circuit .gate-expand,
204
- .gate-collapse {
205
- cursor: pointer;
206
- }
207
-
208
- .qs-circuit .gate-collapse circle,
209
- .qs-circuit .gate-expand circle {
210
- fill: white;
211
- stroke-width: 2px;
212
- stroke: black;
213
- }
214
-
215
- .qs-circuit .gate-collapse path,
216
- .qs-circuit .gate-expand path {
217
- stroke-width: 4px;
218
- stroke: black;
219
- }
220
-
221
- .qs-circuit .gate:hover > .gate-collapse,
222
- .qs-circuit .gate:hover > .gate-expand {
223
- visibility: visible;
224
- opacity: 1;
225
- transition: opacity 1s;
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;
148
+ .qs-circuit .hidden {
149
+ display: none;
150
+ }
151
+
152
+ .qs-circuit .classically-controlled-unknown {
153
+ opacity: 0.25;
154
+ }
155
+
156
+ .qs-circuit .classically-controlled-one .classical-container,
157
+ .qs-circuit .classically-controlled-one .classical-line {
158
+ stroke: #4059bd;
159
+ stroke-width: 1.3;
160
+ fill: #4059bd;
161
+ fill-opacity: 0.1;
162
+ }
163
+
164
+ .qs-circuit .classically-controlled-zero .classical-container,
165
+ .qs-circuit .classically-controlled-zero .classical-line {
166
+ stroke: #c40000;
167
+ stroke-width: 1.3;
168
+ fill: #c40000;
169
+ fill-opacity: 0.1;
170
+ }
171
+
172
+ .qs-circuit .classically-controlled-btn {
173
+ cursor: pointer;
174
+ }
175
+
176
+ .qs-circuit .classically-controlled-unknown .classically-controlled-btn {
177
+ fill: #e5e5e5;
178
+ }
179
+
180
+ .qs-circuit .classically-controlled-one .classically-controlled-btn {
181
+ fill: #4059bd;
182
+ }
183
+
184
+ .qs-circuit .classically-controlled-zero .classically-controlled-btn {
185
+ fill: #c40000;
186
+ }
187
+
188
+ .qs-circuit .classically-controlled-btn text {
189
+ dominant-baseline: middle;
190
+ text-anchor: middle;
191
+ stroke: none;
192
+ font-family: Arial;
193
+ }
194
+
195
+ .qs-circuit .classically-controlled-unknown .classically-controlled-btn text {
196
+ fill: #000000;
197
+ }
198
+
199
+ .qs-circuit .classically-controlled-one .classically-controlled-btn text {
200
+ fill: #ffffff;
201
+ }
202
+
203
+ .qs-circuit .classically-controlled-zero .classically-controlled-btn text {
204
+ fill: #ffffff;
205
+ }
206
+
207
+ .qs-circuit .qviz .gate-collapse,
208
+ .qs-circuit .qviz .gate-expand {
209
+ opacity: 0;
210
+ transition: opacity 1s;
211
+ }
212
+
213
+ .qs-circuit .qviz:hover .gate-collapse,
214
+ .qs-circuit .qviz:hover .gate-expand {
215
+ visibility: visible;
216
+ opacity: 0.2;
217
+ transition: visibility 1s;
218
+ transition: opacity 1s;
219
+ }
220
+
221
+ .qs-circuit .gate-expand,
222
+ .gate-collapse {
223
+ cursor: pointer;
224
+ }
225
+
226
+ .qs-circuit .gate-collapse circle,
227
+ .qs-circuit .gate-expand circle {
228
+ fill: white;
229
+ stroke-width: 2px;
230
+ stroke: black;
231
+ }
232
+
233
+ .qs-circuit .gate-collapse path,
234
+ .qs-circuit .gate-expand path {
235
+ stroke-width: 4px;
236
+ stroke: black;
237
+ }
238
+
239
+ .qs-circuit .gate:hover > .gate-collapse,
240
+ .qs-circuit .gate:hover > .gate-expand {
241
+ visibility: visible;
242
+ opacity: 1;
243
+ transition: opacity 1s;
244
+ }
245
+
246
+ text {
247
+ user-select: none;
248
+ pointer-events: none;
249
+ }
250
+ .dropzone-layer {
251
+ display: none;
252
+ }
253
+ .dropzone {
254
+ fill-opacity: 0%;
255
+ stroke-opacity: 0%;
256
+ }
257
+ .dropzone:hover {
258
+ fill: var(--vscode-editor-selectionBackground, #ec7063);
259
+ fill-opacity: 50%;
260
+ }
261
+ .dropzone-full-wire {
262
+ fill-opacity: 0%;
263
+ stroke-opacity: 0%;
264
+ }
265
+ .dropzone-full-wire:hover {
266
+ fill: var(--vscode-editor-selectionBackground, #ec7063);
267
+ fill-opacity: 50%;
268
+ }
269
+ .grab {
270
+ cursor: grab;
271
+ }
272
+ .moving {
273
+ cursor: move;
274
+ }
275
+ .copying {
276
+ cursor: copy;
277
+ }
278
+
279
+ .panel {
280
+ display: flex;
281
+ flex-direction: row;
282
+ }
283
+
284
+ .container {
285
+ display: flex;
286
+ }
287
+
288
+ .edit-panel {
289
+ display: flex;
290
+ flex-direction: column;
291
+ }
292
+
293
+ .title {
294
+ margin: 0 0 4px;
295
+ font-size: 1.2rem;
296
+ user-select: none;
297
+ }
298
+
299
+ .block {
300
+ display: block;
301
+ }
302
+
303
+ .target-input,
304
+ .controls-input,
305
+ .parameters-input {
306
+ margin-bottom: 8px;
307
+ }
308
+
309
+ .toolbox-panel {
310
+ width: 100px;
311
+ min-height: var(--minToolboxHeight);
312
+ border-right: medium solid var(--vscode-editorWidget-border, #000000);
313
+ }
314
+
315
+ .toolbox-panel .title {
316
+ margin-top: 6px;
317
+ }
318
+
319
+ .toolbox-panel-svg {
320
+ width: -webkit-fill-available;
321
+ min-height: var(--minToolboxHeight);
322
+ height: 100%;
323
+ }
324
+
325
+ .ghost {
326
+ width: var(--minGateWidth);
327
+ height: var(--gateHeight);
328
+ position: absolute;
329
+ z-index: 1;
330
+ pointer-events: none;
331
+ opacity: 0.5;
332
+ }
333
+
334
+ .qubit-line-control {
335
+ display: flex;
336
+ justify-content: flex-start;
337
+ align-items: center;
338
+ margin-bottom: 8px;
339
+ }
340
+
341
+ .qubit-line-control .title {
342
+ margin-left: 16px;
343
+ }
344
+
345
+ .add-qubit-line,
346
+ .remove-qubit-line {
347
+ border-radius: 4px;
348
+ padding: 8px 16px;
349
+ margin: 4px;
350
+ cursor: pointer;
351
+ font-size: 14px;
352
+ user-select: none;
353
+ background: var(--vscode-button-background, #007acc);
354
+ color: var(--vscode-button-foreground, #ffffff);
355
+ border: 1px solid var(--vscode-button-border, #005a9e);
356
+ }
357
+
358
+ .add-qubit-line:hover,
359
+ .remove-qubit-line:hover {
360
+ background: var(--vscode-button-hoverBackground, #005a9e);
361
+ }
362
+
363
+ .add-qubit-line:disabled,
364
+ .remove-qubit-line:disabled {
365
+ background: var(--vscode-button-secondaryBackground, #d4d4d4);
366
+ color: var(--vscode-disabledForeground, #a1a1a1);
367
+ border: 1px solid var(--vscode-button-secondaryBackground, #d4d4d4);
368
+ cursor: not-allowed;
369
+ }
264
370
  }
265
371
 
266
372
  .context-menu {
@@ -361,90 +467,3 @@ text {
361
467
  line-height: 40px;
362
468
  font-size: 16px;
363
469
  }
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
- }