# Changelog ## [1.4.0](https://github.com/flarum/framework/compare/v1.3.1...v1.4.0) ### Added - `created_at` and `updated_at` columns added to several tables (https://github.com/flarum/framework/pull/3435) - Priorities added to AdminNav links (https://github.com/flarum/framework/pull/3453) - `app.translator` allows retrieving and setting locale (https://github.com/flarum/framework/pull/3451) - Extensions can now declare custom settings components for use with `buildSettingComponent` (https://github.com/flarum/framework/pull/3494) - Implement extensibility on `rel` and `target` attributes on links (https://github.com/flarum/framework/pull/3455) - New backend tests were added to some of the bundled extensions (https://github.com/flarum/framework/issues/3508) ### Changed - Split boot script for Flarum in HTML footer into two parts for CSP hashing (https://github.com/flarum/framework/pull/3461) - Split asset compilation by giving assembling compilers its own method (https://github.com/flarum/framework/pull/3446) - Increase visibility of Component typescript class for better extensibility (https://github.com/flarum/framework/pull/3437) ### Fixed - Mentioning an event post breaks the notification dropdown (https://github.com/flarum/framework/pull/3493) - Suspension modal shows after suspension is over (https://github.com/flarum/framework/pull/3449) - CLI based installations don't exit with an error code on failure (https://github.com/flarum/framework/pull/3452) - Tabbing through dropdown controls doesn't make them visible (https://github.com/flarum/framework/pull/3450) - Requiring zero tags on new discussions forces the user to select tags (https://github.com/flarum/framework/pull/3448) - Long topic titles in the notification list don't overflow (https://github.com/flarum/framework/pull/3500) - Subtags of tags the user has access to are visible even if these are not accessible (https://github.com/flarum/framework/pull/3419) - `assertAdmin` tests access based on wrong gate ability (https://github.com/flarum/framework/pull/3501) - Increasing the composer header size causes elements to slip underneath (https://github.com/flarum/framework/pull/3502) - The profile mentions tab errors when sorting by `created_at` (https://github.com/flarum/framework/pull/3506) ## [1.3.1](https://github.com/flarum/framework/compare/v1.3.0...v1.3.1) ### Changed - UserCard now has ItemList for easier extending (https://github.com/flarum/framework/pull/3436) ### Fixed - Button to go directly to all results page is hidden while API request for search hasn't completed (https://github.com/flarum/framework/pull/3431) - Setting extender does not register modifications beyond first fluent call (https://github.com/flarum/framework/pull/3439) - Link to font awesome icons list no longer works (https://github.com/flarum/framework/commit/df1bdd2ad84e992414c0e1e7be576558b4b0fe29) - Mentions: mentions with deleted authors not showing (https://github.com/flarum/framework/pull/3432) - Nicknames: regex validation isn't functional (https://github.com/flarum/framework/pull/3430) - Subscriptions: reply notifications not working (https://github.com/flarum/framework/pull/3445) - Suspend: not providing suspension reason breaks mail (https://github.com/flarum/framework/pull/3433) ## [1.3.0](https://github.com/flarum/framework/compare/33d939cb012716ed6309ea02236737ad4f25a75b...v1.3.0) From v1.2.1 on all bundled Flarum extensions and `flarum/core` are merged into one monorepo. As a result of this, the full code diff linked above looks rather complex and messy compared to the full list of changes made for this release. ### Added - [A11Y] Added role feed to DiscussionList (https://github.com/flarum/framework/pull/3359) - Support multiple confirmation dialogs when closing a tab/window (https://github.com/flarum/framework/pull/3372) - Markdown: markdown toolbar support for admin frontend (https://github.com/flarum/framework/commit/16d5cc11e3aee5c94aeed877987cdb199a2a0d2c) ### Changed - Post number calculation is now executed inside the database layer, preventing integrity constraints (https://github.com/flarum/framework/pull/3358) - Errors from within extensions no longer make Flarum crash but trigger a visible warning (https://github.com/flarum/framework/pull/3349) - Sorting options for discussion index is now extensible (https://github.com/flarum/framework/pull/3377) - Event listeners from the framework now are added before those of extensions (https://github.com/flarum/framework/pull/3373) ### Fixed - Typings and missing typescript components (https://github.com/flarum/framework/pull/3348) - `Post--by-start-user` CSS class is not added to post html (https://github.com/flarum/framework/pull/3356) - Timestamps for notifications are incorrect on servers that have a timezone different than UTC (https://github.com/flarum/framework/pull/3379) - Extensions with dependencies that are enabled do not cause dependencies to be enforced (https://github.com/flarum/framework/pull/3352) - Search using non-words doesn't work (https://github.com/flarum/framework/pull/3385) - Slugs are not working for other languages than English (https://github.com/flarum/framework/pull/3387) - Deprecations are triggered on PHP 8.1 (https://github.com/flarum/framework/pull/3384) - Post permalink for subdirectory installs have duplicate paths segments (https://github.com/flarum/framework/pull/3354) - Composer discussion title is not always clearly visible (https://github.com/flarum/framework/pull/3413) - Mentions: extensions re-using mentions can cause errors due to missing context (https://github.com/flarum/framework/pull/3382) - Tags: tag selection modal errors on new discussions when pressing down (https://github.com/flarum/framework/issues/3403) - [A11Y] Tags: focus to input and layout of tag selection modal are off (https://github.com/flarum/framework/pull/3412) - Subscriptions: searching inside the following page will search in all discussions (https://github.com/flarum/framework/pull/3376) ## [1.2.1](https://github.com/flarum/framework/compare/v1.2.0...v1.2.1) ### Fixed - Don't escape single quotes in discussion title meta tags (60600f4d2b8f0c5dac94c329041427a0a08fad42) ## [1.2.0](https://github.com/flarum/framework/compare/v1.1.1...v1.2.0) ### Added - View `README` documentation in extension pages (https://github.com/flarum/framework/pull/3094). - Declare & Use CSS Custom Properties (https://github.com/flarum/framework/pull/3146). - Lazy draw dropdowns to improve performance (https://github.com/flarum/framework/pull/2925). - Default Settings Extender (https://github.com/flarum/framework/pull/3127). - Add `textarea` setting type to admin pages (https://github.com/flarum/framework/pull/3141). - Allow registering settings as `Less` config vars through Settings Extender (https://github.com/flarum/framework/pull/3011). - Allow replacing of blade template namespaces via extender (https://github.com/flarum/framework/pull/3167). - Update to Webpack 5 (https://github.com/flarum/framework/pull/3135). - Introduce `Less` custom function extender with a `is-extension-enabled` function (https://github.com/flarum/framework/pull/3190). - Support for `few` in ICU Message syntax (https://github.com/flarum/framework/pull/3122). - ES6 local support for number formatting (https://github.com/flarum/framework/pull/3099). - Added dedicated endpoint for retrieving single groups (https://github.com/flarum/framework/pull/3084). - Callback `loadWhere` relation eager loading extender (https://github.com/flarum/framework/pull/3116). - Extensible document title driver implementation (https://github.com/flarum/framework/pull/3109). - Type checks, typescript coverage GH action (https://github.com/flarum/framework/pull/3136). - Add color indicator in appearance admin page instead of validating colors (https://github.com/flarum/framework/pull/3140). - Add typing files for our translator libraries (https://github.com/flarum/framework/pull/3175). - `StatusWidget` tools extensibility (https://github.com/flarum/framework/pull/3189). - Allow switching the `ImageManager` driver (https://github.com/flarum/framework/pull/3195). - Events for notification read/all read actions (https://github.com/flarum/framework/pull/3203). ### Changed - Testing with php8.1 (https://github.com/flarum/framework/pull/3102). - Migrate fully to Yarn (https://github.com/flarum/framework/pull/3155). - Handle post rendering errors to avoid crashes (https://github.com/flarum/framework/pull/3061). - Added basic filtering, sorting, and pagination to groups endpoint (https://github.com/flarum/framework/pull/3084). - Pass IP address to API Client pipeline (https://github.com/flarum/framework/pull/3124). - Rename Extension Page "Uninstall" to "Purge" (https://github.com/flarum/framework/pull/3123). - [A11Y] Improve accessibility for discussion reply count on post stream (https://github.com/flarum/framework/pull/3090). - Improved post loading support (https://github.com/flarum/framework/pull/3100). - Rewrite SubtreeRetainer into Typescript (https://github.com/flarum/framework/pull/3137). - Rewrite ModalManager and state to Typescript (https://github.com/flarum/framework/pull/3007). - Rewrite frontend application files to Typescript (https://github.com/flarum/framework/pull/3006). - Allow extensions to modify the minimum search length in the Search component (https://github.com/flarum/framework/pull/3130). - Allow use of any tag in `listItems` helper (https://github.com/flarum/framework/pull/3147). - Replace `for ... in` with `Array.reduce` (https://github.com/flarum/framework/pull/3149). - Page title format is now implemented through translations (https://github.com/flarum/framework/pull/3077, https://github.com/flarum/framework/pull/3228) - Add `aria-label` attribute to the navigation drawer button (https://github.com/flarum/framework/pull/3157). - Convert extend util to TypeScript (https://github.com/flarum/framework/pull/2928). - Better typings for DiscussionListState (https://github.com/flarum/framework/pull/3132). - Rewrite ItemList, update `ItemList` typings (https://github.com/flarum/framework/pull/3005). - Add priority order to discussion page controls (https://github.com/flarum/framework/pull/3165). - Use `@php` in Blade templates (https://github.com/flarum/framework/pull/3172). - Convert some common classes/utils to TS (https://github.com/flarum/framework/pull/2929). - Convert routes to Typescript (https://github.com/flarum/framework/pull/3177). - Move admin `colorItems` to an `ItemList` (https://github.com/flarum/framework/pull/3186). - Centralize pagination/canonical meta URL generation in Document (https://github.com/flarum/framework/pull/3077). - Use revision versioner to allow custom asset versioning (https://github.com/flarum/framework/pull/3183). - Split up application error handling (https://github.com/flarum/framework/pull/3184). - Make SlugManager available to blade template (https://github.com/flarum/framework/pull/3194). - Convert models to TS (https://github.com/flarum/framework/pull/3174). - Allow loading relations in other discussion endpoints (https://github.com/flarum/framework/pull/3191). - Improve selected text stylization (https://github.com/flarum/framework/pull/2961). - Extract notification `primaryControl` items to an ItemList (https://github.com/flarum/framework/pull/3204). - Frontend code housekeeping (#3214, #3213). - Only retain scroll position if coming from discussion (https://github.com/flarum/framework/pull/3229). - Use `aria-live` regions to focus screenreader attention on alerts as they appear (https://github.com/flarum/framework/pull/3237). - Prevent unwarranted `a11y` warnings on custom Button subclasses (https://github.com/flarum/framework/pull/3238). ### Fixed - Missing locale text in the user editing modal (https://github.com/flarum/framework/pull/3093). - Dashes in table prefix prevent installation (https://github.com/flarum/framework/pull/3089). - Missing autocomplete attributes to input fields (https://github.com/flarum/framework/pull/3088). - Missing route parameters throwing an error (https://github.com/flarum/framework/pull/3118). - Mail settings select component never used (https://github.com/flarum/framework/pull/3120). - White avatar image throws javascript errors on the profile page (https://github.com/flarum/framework/pull/3119). - Unformatted avatar upload validation errors (https://github.com/flarum/framework/pull/2946). - Webkit input clear button shows up with the custom one (https://github.com/flarum/framework/pull/3128). - Media query breakpoints conflict with Windows display scaling (https://github.com/flarum/framework/pull/3139). - `typeof this` not recognized by some IDEs (https://github.com/flarum/framework/pull/3142). - `Model.save()` cannot save `null` `hasOne` relationship (https://github.com/flarum/framework/pull/3131). - Edit post `until reply` policy broken on PHP 8 (https://github.com/flarum/framework/pull/3145). - Inaccurate `Component.component` argument typings (https://github.com/flarum/framework/pull/3148). - Scrolling notification list infinitely repeats (https://github.com/flarum/framework/pull/3159). - Argument for INFO constant was assigned to `maxfiles` argument incorrectly (bfd81a83cfd0fa8125395a147ff0c9ce622f38e3). - `Activated` event is sent every time an email is confirmed instead of just once (https://github.com/flarum/framework/pull/3163). - [A11Y] Modal close button missing accessible label (https://github.com/flarum/framework/pull/3161). - [A11Y] Auth modal inputs missing accessible labels (https://github.com/flarum/framework/pull/3207). - [A11Y] Triggering click on drawer button can cause layered backdrops (https://github.com/flarum/framework/pull/3018). - [A11Y] Focus can leave open nav drawer on mobile (https://github.com/flarum/framework/pull/3018). - [A11Y] Post action items not showing when focus is within the post (https://github.com/flarum/framework/pull/3173). - [A11Y] Missing accessible label for alert dismiss button (https://github.com/flarum/framework/pull/3237). - Error accessing the forum after saving a setting with more than 65k characters (https://github.com/flarum/framework/pull/3162). - Cannot restart queue from within (https://github.com/flarum/framework/pull/3166). - `Post--by-actor` not showing when comparing user instances (https://github.com/flarum/framework/pull/3170). - Incorrect typings for Modal `hide()` method (https://github.com/flarum/framework/pull/3180). - Avatar Upload throws errors with correct mimetype and incorrect extension (https://github.com/flarum/framework/pull/3181). - Clicking the dropdown button on a post opens all dropdowns in `Post-actions` (https://github.com/flarum/framework/pull/3185). - `getPlainContent()` causes external content to be fetched (https://github.com/flarum/framework/pull/3193). - `listItems` not accepting all `Mithril.Children` (https://github.com/flarum/framework/pull/3176). - Notifications mark as read option updates all notifications including the read ones (https://github.com/flarum/framework/pull/3202). - Post meta permalink not properly generated (https://github.com/flarum/framework/pull/3216). - Broken contribution link in README (https://github.com/flarum/framework/pull/3211). - `WelcomeHero` is displayed when content is empty (https://github.com/flarum/framework/pull/3219). - `last_activity_at, last_seen_at` updated on all API requests (https://github.com/flarum/framework/pull/3231). - `RememberMe` access token updated twice in API requests (https://github.com/flarum/framework/pull/3233). - Error in `funding` item in `composer.json` bricks the frontend (https://github.com/flarum/framework/pull/3239). - Escaped quotes in window title (https://github.com/flarum/framework/pull/3264) - `schedule:list` command fails due to missing timezone configuration. ### Deprecated - Unused `evented` utility (https://github.com/flarum/framework/pull/3125). ## [1.1.1](https://github.com/flarum/framework/compare/v1.1.0...v1.1.1) ### Fixed - Performance issue with very large communities. ## [1.1.0](https://github.com/flarum/framework/compare/v1.0.4...v1.1.0) ### Added - Info command now displays MySQL version, queue driver, mail driver (https://github.com/flarum/framework/pull/2991) - Use organization Prettier config (https://github.com/flarum/framework/pull/2967) - Support for global typings in extensions (https://github.com/flarum/framework/pull/2992) - Typings for class component state attribute (https://github.com/flarum/framework/pull/2995) - Custom colorising with CSS custom properties (https://github.com/flarum/framework/pull/3001) - Theme Extender to allow overriding LESS files (https://github.com/flarum/framework/pull/3008) - Update lastSeenAt when authenticating via API (https://github.com/flarum/framework/pull/3058) - NoJs Admin View (https://github.com/flarum/framework/pull/3059) - Preload FontAwesome, JS and CSS, and add `preload` extender (https://github.com/flarum/framework/pull/3057) ### Changed - Move Day.js plugin types import to global typings (https://github.com/flarum/framework/pull/2954) - Avoid resolving excluded middleware on each middleware items - Allow extra attrs provided to `