diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 000000000..df2d47160
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,7 @@
+>0.2%
+not op_mini all
+Safari > 15
+Firefox >= 115
+Firefox ESR
+Android > 4
+not dead
diff --git a/.gitignore b/.gitignore
index 4df5ec838..0d5befd28 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,3 +8,4 @@ selenium-debug.log
.idea/
config/local.json
static/emoji.json
+logs/
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 2b4452d53..f4c5cf43a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,6 +43,9 @@ lint:
test:
stage: test
+ tags:
+ - amd64
+ - himem
variables:
APT_CACHE_DIR: apt-cache
script:
@@ -54,6 +57,9 @@ test:
build:
stage: build
+ tags:
+ - amd64
+ - himem
script:
- yarn
- npm run build
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe382b960..9844319e3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,80 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
+## 2.7.1
+Bugfix release. Added small optimizations to emoji picker that should make it a bit more responsive, however it needs rather large change to make it more performant which might come in a major release.
+
+### Fixed
+- Instance default theme not respected
+- Nested panel header having wrong sticky position if navbar height != panel header height
+- Toggled buttons having bad contrast (when using v2 theme)
+
+### Changed
+- Simplify the OAuth client_name to 'PleromaFE'
+- Small optimizations to emoji picker
+
+
+## 2.7.0
+
+### Known issues
+We got some reports related to emoji picker performance, this hopefully will be fixed in 2.7.1.
+
+### Notes
+This release overhauls how themes work, themes now need to be "compiled", which can cause some delay when loading for the first time and temporarily look "wrong" in some places (popups, menus, dialogs). Please do report any issues, especially if your theme looks wrong or breaks interface when loading. Also report issues if you're experiencing constant performance issues.
+
+To admins: remember that you can update PleromaFE to recent `master` or `develop` in admin dashboard in "Front-ends" tab, scroll down to find PleromaFE box and click "Reinstall `master`" or dropdown and then "Reinstall `develop`". Currently there is no mechanism to check if there is an update or not.
+
+### Changed
+- Overhauled the way themes work, migrating to new Pleroma Interface Style Sheets system aka "Themes 3".
+- Notifications are no longer sorted by "seen" status since interacting with them can change their read status and makes UI jumpy. Old behavior can be restored in settings.
+- Notifications are now shown through a ServiceWorker (since mobile chrome does not allow them otherwise), it's always enabled, even if previously we only enabled it for WebPush notifications only. If you don't like websites "running" while closed, check how to disable them in your browser. Old way to show notifications will be used as a fallback but might not have all the new features.
+- Reorganized Settings modal to move out visual stuff into Appearance tab
+
+### Added
+- Emoji pack management to the admin panel
+- Support `status` notification type (subscriptions/bell, fixes PleromaFE on newer PleromaBE versions)
+- Poll end notifications.
+- Added option to not mark all notifications when closing notifications drawer on mobile, this creates a new button to mark all as seen.
+- Option to always "show" notifications when using web push for better compatibility with some browsers (chrome, edge, safari)
+- Option to toggle what notification types appear in native notifications, by default less important ones (likes, repeats, etc) will no longer show up in native notifications.
+- Option to treat non-interactive notifications (likes, repeats et all) as seen for visual purposes (no read mark, ignored in counters, still can show in native notifications)
+- Ability to resize UI (and certain components) scale independent of browser/text scale
+- Ability to override certain aspects of UI style independent of theme used (UI roundness, fonts, underlay)
+- Theme selector with visual previews of the theme
+- Display loading and error indicator for conversation page
+- Option to only show scrobbles that are recent enough
+- Interacting (opening reply box etc) or simply clicking on non-interactive notifications now marks them as read. Clicking on native notifications for non-interactive ones also marks them as seen.
+- Support group actors
+- Focusing into a tab clears all current desktop notifications
+- Ability to change size of emoji
+- Ability to view APNG (Animated PNG) attachments.
+- Support showing extra notifications in the notifications column
+- Create a link to the URL of the scrobble when it's present
+- Allow hiding custom emojis in picker.
+- Ability to mute sensitive posts (ported from eintei).
+- Native notifications now also have "badge" property that matches instance's favicon (visible in Android Chromium at least)
+- Display public favorites on user profiles
+- Display quotes count on posts and add quotes list page
+- Show a dedicated registration notice page when further action is required after registering
+
+### Fixed
+- Synchronized requested notification types with backend, hopefully should fix missing notifications for polls and follow requests
+- Error that appeared on mobile Chromium (and derivatives) when native notifications are allowed
+- Being unable to set notification visibility for reports and follow requests
+- Native notifications appearing as many times as there are open tabs. Clicking on notification will focus last focused tab.
+- The expiry date indication won't be shown if the poll never expires
+- Profile mentions causing a 422 error on newer PleromaBE versions.
+- Color inputs are less ugly now
+- Unread notifications should now properly catch up between sessions (eventually) in polling mode
+- Video posters on Safari
+
+
+## 2.6.1
+### Fixed
+- fix admin dashboard not having any feedback on frontend installation
+- Fix frontend admin tab crashing when no primary frontend is set
+- Add aria attributes to react and extra buttons
+
## 2.6.0
### Added
- add the initial i18n translation file for Taiwanese (Hokkien), and modify some related files.
diff --git a/changelog.d/admin-dash-fixes.fix b/changelog.d/admin-dash-fixes.fix
deleted file mode 100644
index ff8eb0a25..000000000
--- a/changelog.d/admin-dash-fixes.fix
+++ /dev/null
@@ -1 +0,0 @@
-fix admin dashboard not having any feedback on frontend installation
diff --git a/changelog.d/browsers-support.change b/changelog.d/browsers-support.change
new file mode 100644
index 000000000..a62e50240
--- /dev/null
+++ b/changelog.d/browsers-support.change
@@ -0,0 +1,9 @@
+Updated our build system to support browsers:
+ Safari >= 15
+ Firefox >= 115
+ Android > 4
+ no Opera Mini support
+ no IE support
+ no "dead" (unmaintained) browsers support
+
+This does not guarantee that browsers will or will not work.
diff --git a/changelog.d/date-absolute.add b/changelog.d/date-absolute.add
new file mode 100644
index 000000000..d9365f464
--- /dev/null
+++ b/changelog.d/date-absolute.add
@@ -0,0 +1 @@
+Support displaying time in absolute format
diff --git a/changelog.d/double-notifications.fix b/changelog.d/double-notifications.fix
deleted file mode 100644
index 24e08c0ff..000000000
--- a/changelog.d/double-notifications.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix native notifications appearing as many times as there are open tabs. Clicking on notification will focus last focused tab.
diff --git a/changelog.d/extra-notifications.add b/changelog.d/extra-notifications.add
deleted file mode 100644
index 90f21f540..000000000
--- a/changelog.d/extra-notifications.add
+++ /dev/null
@@ -1 +0,0 @@
-Support showing extra notifications in the notifications column
diff --git a/changelog.d/fix-admin-crash-when-no-primary-fe-set.fix b/changelog.d/fix-admin-crash-when-no-primary-fe-set.fix
deleted file mode 100644
index 78eae3be9..000000000
--- a/changelog.d/fix-admin-crash-when-no-primary-fe-set.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fix frontend admin tab crashing when no primary frontend is set
diff --git a/changelog.d/focus-clear.add b/changelog.d/focus-clear.add
deleted file mode 100644
index 70f54ab69..000000000
--- a/changelog.d/focus-clear.add
+++ /dev/null
@@ -1 +0,0 @@
-Focusing into a tab clears all current desktop notifications
diff --git a/changelog.d/mobile-chrome-notifs.fix b/changelog.d/mobile-chrome-notifs.fix
deleted file mode 100644
index 7db10c56a..000000000
--- a/changelog.d/mobile-chrome-notifs.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fixed error that appeared on mobile Chrome(ium) (and derivatives) when native notifications are allowed
diff --git a/changelog.d/mobile-drawer-notifications.change b/changelog.d/mobile-drawer-notifications.change
deleted file mode 100644
index 9353c709d..000000000
--- a/changelog.d/mobile-drawer-notifications.change
+++ /dev/null
@@ -1 +0,0 @@
-Added option to not mark all notifications when closing notifications drawer on mobile, this creates a new button to mark all as seen.
diff --git a/changelog.d/more-notification-types-setting.fix b/changelog.d/more-notification-types-setting.fix
deleted file mode 100644
index 2d71b5993..000000000
--- a/changelog.d/more-notification-types-setting.fix
+++ /dev/null
@@ -1 +0,0 @@
-Fixed being unable to set notification visibility for reports and follow requests
diff --git a/changelog.d/native-filtering.add b/changelog.d/native-filtering.add
deleted file mode 100644
index 82ab9a23a..000000000
--- a/changelog.d/native-filtering.add
+++ /dev/null
@@ -1 +0,0 @@
-Added option to toggle what notification types appear in native notifications, by default less important ones (likes, repeats, etc) will no longer show up in native notifications.
diff --git a/changelog.d/native-notifications.add b/changelog.d/native-notifications.add
deleted file mode 100644
index d896e7c04..000000000
--- a/changelog.d/native-notifications.add
+++ /dev/null
@@ -1 +0,0 @@
-Native notifications now also have "badge" property that matches instance's favicon (visible in Android Chromium at least)
diff --git a/changelog.d/non-anonymous-polls.add b/changelog.d/non-anonymous-polls.add
new file mode 100644
index 000000000..9ff7f3adc
--- /dev/null
+++ b/changelog.d/non-anonymous-polls.add
@@ -0,0 +1 @@
+Inform users that Smithereen public polls are public
\ No newline at end of file
diff --git a/changelog.d/noninteractive-ignore-read.add b/changelog.d/noninteractive-ignore-read.add
deleted file mode 100644
index 5e8710cf0..000000000
--- a/changelog.d/noninteractive-ignore-read.add
+++ /dev/null
@@ -1 +0,0 @@
-Added option to treat non-interactive notifications (likes, repeats et all) as seen for visual purposes (no read mark, ignored in counters, still can show in native notifications)
diff --git a/changelog.d/notification-read.add b/changelog.d/notification-read.add
deleted file mode 100644
index e5027a954..000000000
--- a/changelog.d/notification-read.add
+++ /dev/null
@@ -1 +0,0 @@
-Interacting (opening reply box etc) or simply clicking on non-interactive notifications now marks them as read. Clicking on native notifications for non-interactive ones also marks them as seen.
diff --git a/changelog.d/notifications-sorting.change b/changelog.d/notifications-sorting.change
deleted file mode 100644
index 3a6162441..000000000
--- a/changelog.d/notifications-sorting.change
+++ /dev/null
@@ -1 +0,0 @@
-Notifications are no longer sorted by "seen" status since interacting with them can change their read status and makes UI jumpy. Old behavior can be restored in settings.
diff --git a/changelog.d/oauth-app-name.change b/changelog.d/oauth-app-name.change
new file mode 100644
index 000000000..15d6f87ee
--- /dev/null
+++ b/changelog.d/oauth-app-name.change
@@ -0,0 +1 @@
+Simplify the OAuth client_name to 'PleromaFE'
diff --git a/changelog.d/piss-fix.skip b/changelog.d/piss-fix.skip
new file mode 100644
index 000000000..e69de29bb
diff --git a/changelog.d/piss-serialization.skip b/changelog.d/piss-serialization.skip
new file mode 100644
index 000000000..e69de29bb
diff --git a/changelog.d/react-more-actions-fix.fix b/changelog.d/react-more-actions-fix.fix
deleted file mode 100644
index 9ab41de23..000000000
--- a/changelog.d/react-more-actions-fix.fix
+++ /dev/null
@@ -1 +0,0 @@
-Add aria attributes to react and extra buttons
diff --git a/changelog.d/serviceworkers.change b/changelog.d/serviceworkers.change
deleted file mode 100644
index b3b64f6d8..000000000
--- a/changelog.d/serviceworkers.change
+++ /dev/null
@@ -1 +0,0 @@
-Notifications are now shown through a serviceworker (since mobile chrome does not allow them otherwise), it's always enabled, even if previously we only enabled it for WebPush notifications only. If you don't like websites "running" while closed, check how to disable them in your browser. Old way to show notifications will be used as a fallback but might not have all the new features.
diff --git a/changelog.d/show-recent-scrobble.skip b/changelog.d/show-recent-scrobble.skip
deleted file mode 100644
index 9227de069..000000000
--- a/changelog.d/show-recent-scrobble.skip
+++ /dev/null
@@ -1 +0,0 @@
-Shows the most recent scrobble under each post when available
diff --git a/changelog.d/unreads-sync.fix b/changelog.d/unreads-sync.fix
deleted file mode 100644
index 1eac33649..000000000
--- a/changelog.d/unreads-sync.fix
+++ /dev/null
@@ -1 +0,0 @@
-unread notifications should now properly catch up (eventually) in polling mode
diff --git a/index.html b/index.html
index a02939f7e..6d9c4ce5c 100644
--- a/index.html
+++ b/index.html
@@ -3,8 +3,10 @@