Make widgets persist across page refresh
pin less to 2.x

1.7.x causes different results, and it's probable that 3.x will as well.

It might even be appropriate to pin to 2.1.x.
qtconsole: Remove wrong overloaded signal call

This was discovered when checking the code with PyQt5
Make guiref work again
Add default (None) values to HBChannel constructor

This is needed for PyQt5 compatibility
Improve detection of when to load guiref magic
generalise manager
Add json in the base config manager name
Fix javascript iteration through array

for(var k in config) was assigning k to the properties of Array, not just the numeric indices

the second argument of add_buttons_group, k[1], should be config[k][1]
fix leading underscore

mering object with itself is stupid otherwise
JSON formatter expects JSONable dict/list

not already-serialized JSON string

pre-3.0 case of JSON string is handled with a warning.

msgspec5 made this change, but Python APIs that publish
JSON weren't updated to match.
put test in content manager
ensure warnings are raised in tests

avoids missed warnings if the warning was already shown
Make sure comm-dead is applied to the top widget view class
in all cases where the kernel disconnects.
Merge pull request #7167 from minrk/less-2

pin less to 2.x
Merge pull request #7129 from ccordoba12/pyqt5

Complete qtconsole PyQt5 port
Merge pull request #7163 from jdfreder/refresh-persist

Persist widgets across page refresh
Add a brief sleep after shutting down sessions in test teardown

This fixes a test failure for me on my Windows VM. See the comment for
details.
s/Json/JSON/g **/*.py
Bubble event and implement logic in CodeCell