* Make better tabs components, apply to user page
* Remove fishy unused href property from tabs
* Remove tab ID property
* Clean up crufty markup in tabs component
* Fix naming to be right (thanks James!)
* Reuse DAY_MS in update-metrics job
* More concise transaction in cancelbet
* Remove some meaningless awaits
* Do less work in onCreateLiquidityProvision
* Do less work in onCreateAnswer
* Move concurrently dep upwards
* Add express as explicit dependency
* Accept just one HTTP method per endpoint
* Fix endpoint option coalescing
* Expressification of cloud functions
* Nicer logging of API requests
* Refactor web package.json
* Add ts-node and nodemon to dev dependencies, bring back cors
* Add scaffolding to point dev server at local functions
* Enable emulator in dev server scaffolding
* Fix up a little stuff I broke
* Add @ mentions to editor
* Fix mention list not loading
* Sort mention list by prefix, follow count
* Render at mention with Linkify component
- mentions are now Next <Link> rather than <a>
- fix bug where editor.getText() returns [object Object] for mentions
- fix mention rendering for posted markets
* Try embedding iframes in tiptap
* When iframe code is pasted, inject it into the editor
* Code cleanups and comments
* Remove clsx dependency
Cuz it doesn't exist in `common` anyways
* Rename to tiptap-iframe
* Prototype range limit order UI
* Conditionally show YES or NO max payout
* Range bet executes both bets immediately.
* Validate lowLimitProb < highLimitProb
* Show error if low limit is higher than high limit
* Update range order UI
* Revert "Validate lowLimitProb < highLimitProb"
This reverts commit c261fc2743.
* Revert "Range bet executes both bets immediately."
This reverts commit 30b95d75d9.
* Buy panel only non-limit orders
* Bet choice => outcome
* More iterating on range UI
* betChoice => outcome
* Lighten placeholder text