This is just code to support using details/summary for a "read more"
system. The entire summary portion can be clicked to expand/collapse,
but the overall usability feels "better than before" to me.
"Suggested spread" is now renamed "Guessed spread", to make it clearer
that it's not exactly a suggestion, more of a guess of what might be a
good spread.
Speed EVs are now suggested a lot more often, with the new basic
threshold at 80+ Spe instead of 95+. (71+ Spe is still enough to get
Spe EVs on a non-bulky stat spread.)
EV spreads are now guessed based on post-Mega stats (so e.g. Mega
Metagross gets Spe EVs).
In addition, Speed EVs are now suggested for support spreads above 110
base Spe (mostly for support Starmie sets).
I wouldn't call the EV guesser _good_ by any means, but I still
strongly believe it's better than nothing.
I mostly wanted this to be in TypeScript before I did any further work
on it, and also with the teambuilder at 3k lines, it needs to be broken
apart anyway.
I feel mildly bad about introducing ~600 lines of code that replays
will never need, but the EV suggester does fall under the general
category of "set insights" and is relevant to tooltips.
This is mostly useful for the testclient, which otherwise can't interact
with the login server without huge hacks like the iframe copy/paste.
Requiring an external sid resolves any security issues; sid being the
only cookie we use for security-sensitive things, and also being our
CSRF token.
In theory, this is also useful for clients that don't support cookies,
although I'm unsure how they'd get their hands on an sid in the first
place. I guess just run login actions?
Our Composer dependencies are all optional at the moment - Sentry is
only used in the live config file, and we stopped using Google's PHP API
because it was too buggy (we're calling out to Node instead).
(This also removes composer.lock; lockfiles are really unnecessary for
PS's use-case.)
For the first time since original tooltips, we have a pressed-down
animation for move/switch buttons!
More importantly, long-presses are no longer weird, and now just
lock in the tooltip instead of also opening a context menu.
In addition, clicking on a locked tooltip dismisses it, which should
help address complaints about locked tooltips being hard to dismiss.
This makes it slightly harder to select text in locked tooltips, but
clicking and dragging on desktop still works.