add panelsnap.dart