This pr replaces `{{{ }}}` usage by a {{html-safe}} helper. While it doesn't solve the underlying issue, it gives us a path forward without risking breaking too much existing behavior.
Also introduces an htmlSafe computed macro:
```
import { htmlSafe } from "discourse/lib/computed";
htmlDescription: htmlSafe("description")
```
Overtime {{html-safe}} usage should be removed and moved to components properties or specialized components/helpers.
This pr replaces `{{{ }}}` usage by a {{html-safe}} helper. While it doesn't solve the underlying issue, it gives us a path forward without risking breaking too much existing behavior.
Also introduces an htmlSafe computed macro:
```
import { htmlSafe } from "discourse/lib/computed";
htmlDescription: htmlSafe("description")
```
Overtime {{html-safe}} usage should be removed and moved to components properties or specialized components/helpers.
* Editing a badge's title would show it as changed in the side even if
you didn't hit save
* Clicking a badge would not scroll to the top
* If there was an error saving a badge there was a missing i18n key
* URLs were using queryParams instead of paths
* User `label` tags for checkboxes for larger click targets
* Saved! text would persist when viewing another badge
* After creating a new badge it would show nothing
* Validation errors were not being properly released to the client
* Query errors were surrounded by an extra array