57644 Commits

Author SHA1 Message Date
Penar Musaraj
eb041085bc
UX: Fix minimized composer position on iOS PWA and app (#30926)
See
https://meta.discourse.org/t/minimized-composer-reply-control-issues/348337
2025-01-22 13:38:34 -05:00
Kris
c85708b438
UX: rename "hamburger menu" to "navigation menu" in keyboard help (#30927)
Reported here:
https://meta.discourse.org/t/open-hamburger-menu-wording/348216

After adding the sidebar, we started calling related settings the
"navigation menu" because it can either be the sidebar or the hamburger
menu (dropdown) — this reflects that change in the keyboard shortcuts
modal as well


Before:


![image](https://github.com/user-attachments/assets/ae888771-8df0-4b01-9df3-5fbcfdfb5f51)


After: 


![image](https://github.com/user-attachments/assets/c0119494-4360-40d1-a7e8-358fb8dcbd32)
2025-01-22 12:30:36 -05:00
Joffrey JAFFEUX
3be699fe2e
FIX: ensures more icon is visible on hover (#30925) 2025-01-22 14:19:01 +01:00
Joffrey JAFFEUX
2cff8c82e3
UX: adds chat send shortcut user preference (#30473)
Users can now decide if they want to send a message on:
- <kbd>enter</kbd>
- <kbd>meta + enter</kbd>

If you choose <kbd>meta + enter</kbd>, <kbd>enter</kbd> will add a
linebreak.

<img width="192" alt="Screenshot 2025-01-21 at 12 57 48"
src="https://github.com/user-attachments/assets/abfd6f8b-83b3-4e6f-be67-8f63d536ca8a"
/>
2025-01-22 13:17:45 +01:00
Joffrey JAFFEUX
a66e5ff728
FIX: ensures chat navbar is on top of content (#30923)
Since this change
6c3a7f2a67 (diff-48126857aeb1748fb1eb2500ca69b832212061db59d93ed61dde9fd5dcddf0c7)
we had various behaviours in different browsers as what should be at the
top was ambiguous. This commit ensures the navbar is one layer above the
content.
2025-01-22 11:48:02 +01:00
Osama Sayegh
a793f4843b
DEV: Introduce theme-owned color palettes (#30915)
Related to https://github.com/discourse/discourse/pull/30893

As part of the theme overhauling project, we're making each theme fully
own/control its color palette which can be edited directly on the theme
page. To make this possible, we need to introduce a special type of
color palettes that are marked as "owned by a theme" in the database
which aren't displayed in the admin color palettes page and can't be
edited from it. This commit is the first step of this change; it adds a new
join table to associate a color palette with a theme. For now, we're
keeping the relationship one-to-one (hence the `UNIQUE` indexes), but we
may later change it to one-to-many.

Internal topic: t/141648.
2025-01-22 12:03:37 +03:00
Martin Brennan
f7904d82b7
DEV: Bump discourse-fonts (#30917)
Brings in more Inter font changes
c.f.
12124ea144
2025-01-22 12:45:48 +10:00
Martin Brennan
83cc97994f
FEATURE: Handle special font properties from discourse-fonts (#30891)
In https://github.com/discourse/discourse-fonts/pull/15 we are
introducing special font properties for certain fonts,
specifically the `font-variation-settings` and `font-feature-settings`.
For now this will only apply to Inter, but we may do it for other
fonts in future.

This commit makes it so the color_definitions.css file includes
these special properties for each font, either defined on the
root `html` element for the body font or on the `h1-h6` elements
for the heading font. This is done in this way because defining
them on `@font-face` is ignored by the browser.

This also ensures special CSS classes for the wizard container
e.g. wizard-container-font-FONTID are defined, this is so we can
use these special properties scoped to the font selected in the
wizard, which will affect the way the canvas preview is rendered.

Here is an example of before/after with special properties applied to
Inter,
in this case:

```css
font-variation-settings: 'opsz' 28;
font-feature-settings: 'calt' 0, 'ccmp' 0, 'ss02' 1;
```
2025-01-22 10:56:09 +10:00
Martin Brennan
32c6d3be06
FIX: Admin sidebar problem check missing -1 check (#30916)
When we initially turned on admin sidebar for new sites,
existing sites had the value set to -1. We need to show
the problem check to these sites too, but currently it only
checks if `admin_sidebar_enabled_groups` is empty.
2025-01-22 10:21:30 +10:00
David Taylor
83737aab5f
FIX: Restore footer-nav backdrop-filter for iOS < 18 (#30914)
This was inadvertantly removed in
d88ee33eb622e52cec5f442dd6416e68c8f758e4

See https://meta.discourse.org/t/348262/4
2025-01-21 23:48:14 +00:00
David Taylor
c266e4acb8
FIX: Enforce 'prefix' notation for media-query ranges (#30913)
"context" notation is not supported in iOS < 16.4, and we don't have any
post-processing on our CSS files which can automatically make that
conversion.

For now, changing the stylelint config to enforce the more-compatible
syntax, and updating all occurences.
2025-01-21 23:42:17 +00:00
Jarek Radosz
9b100db91c
DEV: Update irb to 1.15.0 (#30912)
Dependabot PR: https://github.com/discourse/discourse/pull/30909
2025-01-22 00:33:36 +01:00
Jarek Radosz
e98644fbc6
DEV: Replace remaining uses of query helper (#30019) 2025-01-22 00:25:03 +01:00
Kris
fbb90aac1b
FIX: lint issue follow-up to a3359ac (#30911)
Expected empty line before rule `rule-empty-line-before`
2025-01-21 17:58:27 -05:00
dependabot[bot]
2d9f9613bb
Build(deps-dev): Bump @swc/core from 1.10.8 to 1.10.9 (#30906)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.10.8 to
1.10.9.
- [Release notes](https://github.com/swc-project/swc/releases)
- [Changelog](https://github.com/swc-project/swc/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/swc-project/swc/compare/v1.10.8...v1.10.9)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 23:51:56 +01:00
dependabot[bot]
d7c71b48d7
Build(deps-dev): Bump lefthook from 1.10.9 to 1.10.10 (#30905)
Bumps [lefthook](https://github.com/evilmartians/lefthook) from 1.10.9
to 1.10.10.
- [Release notes](https://github.com/evilmartians/lefthook/releases)
-
[Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/evilmartians/lefthook/compare/v1.10.9...v1.10.10)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 23:51:36 +01:00
Jarek Radosz
8e31991613
DEV: Fix a warning in a chat spec (#30904)
```
Checking for expected text of nil is confusing and/or pointless
since it will always match. Please specify a string or regexp instead.
plugins/chat/spec/system/chat_message_interaction_spec.rb:51
```
2025-01-21 23:44:28 +01:00
Kris
a3359ac7ad
UX: set mobile read state indicator to static size to avoid overflow (#30910)
This fixes an issue where topics could scroll horizontally on mobile:
https://meta.discourse.org/t/topic-page-layout-issue/348262?u=pmusaraj

It seems some recent core change impacted the read state size/position 

This sets the size and position to more static values (not based on
global font changes) to avoid the issue, and removes the horizontal
scroll.
2025-01-21 17:24:58 -05:00
David Taylor
d7f008d482
UX: Only lock viewport scale during focusin events for iOS PWA/Hub (#30908)
c171e3dc works well in Safari, because the browser ignores the
`user-scalable=no` directive. However, PWA/Hub do respect the directive,
which means that it stopped pinch-zooming from working.

This commit updates the strategy for those environments so that the
viewport is only locked briefly during a focusin event. The simpler
strategy is maintained for the real safari browser.
2025-01-21 22:19:59 +00:00
Jarek Radosz
8c31f1aa5f
UX: Improve git/code oneboxes (#30822) 2025-01-21 14:20:36 -06:00
Discourse Translator Bot
f0d6e9758d
Update translations (#30898) 2025-01-21 15:55:30 +01:00
Joffrey JAFFEUX
6f11c82801
FIX: removes mousewheel edge case on messages (#30900) 2025-01-21 15:38:07 +01:00
David Taylor
df205c9290
UX: Remove loading="lazy" from avatars for improved UX (#30897)
Lazy loading images naturally causes a slight delay, because the browser
only starts to load them after laying out the DOM and checking whether
they're in the viewport. Plus, in Safari, re-rendering the DOM of a
lazy-loaded image always causes a brief flicker, even if the image is
already cached in the browser.

Lazy-loading is most beneficial on large one-off images which are often
rendered outside the viewport. That's frequently the case for images
which users share in topics. Avatars, on the other hand, are very small
images, they're very often above-the-fold, and the same avatar often
occurs many times on the same page.

Therefore, this commit removes `loading="lazy"` from avatars, which
should improve avatar load times in all browsers, and stop the flicker
in Safari.

---

Tapping logo to reload topic-list in Safari. Before: https://github.com/user-attachments/assets/242299f8-aa13-4991-b321-2f143603ed26

After: https://github.com/user-attachments/assets/5e5bfd28-3a78-40fd-af21-3d92e7b3ba8a
2025-01-21 14:06:45 +00:00
David Taylor
6fd577d97d
FEATURE: Improve use_email_for_username_and_name_suggestions (#30845)
Previously this setting would only control values received in an 'email'
field from an identity provider. This commit extends it, so that it also
applies to email-like content in other fields. This provides improved
protections against partial email addresses being leaked
2025-01-21 13:04:48 +00:00
Joffrey JAFFEUX
e8d5059156
FIX: emoji picker position when clicking more (#30896)
When clicking more in the emoji autocomplete menu, the picker would
sometimes be hidden at the bottom of the page. It was easily
reproducible in long topic pages when scrolled to the bottom.

This commit just marks the textarea as the trigger which is not a
perfect position but is still a good fallback.
2025-01-21 13:58:07 +01:00
David Taylor
076c0c4bca
UX: Workaround iOS bottom overscroll bug in header-offset calcs (#30895) 2025-01-21 12:23:09 +00:00
David Taylor
5ac308fe85
UX: Extend Safari scrolling fix to work in iPad PWA (#30894)
Followup to 4933cfd46cf2b30600da9a72bb82d02c19ead8a3
2025-01-21 11:50:38 +00:00
Jarek Radosz
184ec95d01
DEV: Don't nest deferring calls (#30449)
Each case simplified:

`next(() => later(() => ...))` -> "wait 0 ms then wait X ms"
`next(() => debounce(() => ...))` -> "wait 0 ms then wait X ms
(debounced)"
`next(() => scheduleAfter("render", ...))` -> "in the next (empty) run
loop, do the thing (after a no-op render step)"
2025-01-21 11:24:33 +01:00
David Taylor
db998ee1ab
DEV: Make interactive-widget viewport config chrome-only (#30889)
This stops it printing an error to the console in Safari
2025-01-21 09:46:18 +00:00
David Taylor
4933cfd46c
UX: Improve sidebar positioning in Safari (#30888)
- Calculate the overscroll amount and subtract it from viewport-based
measurements

- Only round at the end of calculations, to avoid sub-pixel rounding
discrepancies

- Compensate for < 1px fluctuations which happen during scroll

Before: https://github.com/user-attachments/assets/a1044405-9f4a-46b1-a3b1-bc5fff29bf45

After: https://github.com/user-attachments/assets/212e4a32-aa97-4054-aba0-b7f1d993f007
2025-01-21 09:43:30 +00:00
dependabot[bot]
4a7b98ef6d
Build(deps-dev): Bump @ember/test-helpers from 4.0.4 to 5.0.0 (#30859)
Bumps
[@ember/test-helpers](https://github.com/emberjs/ember-test-helpers)
from 4.0.4 to 5.0.0.
- [Release
notes](https://github.com/emberjs/ember-test-helpers/releases)
-
[Changelog](https://github.com/emberjs/ember-test-helpers/blob/master/CHANGELOG.md)
- [Commits](https://github.com/emberjs/ember-test-helpers/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 02:42:11 +01:00
dependabot[bot]
fccf1c6636
Build(deps-dev): Bump stylelint-config-standard-scss from 13.1.0 to 14.0.0 (#30887)
Bumps
[stylelint-config-standard-scss](https://github.com/stylelint-scss/stylelint-config-standard-scss)
from 13.1.0 to 14.0.0.
- [Release
notes](https://github.com/stylelint-scss/stylelint-config-standard-scss/releases)
-
[Changelog](https://github.com/stylelint-scss/stylelint-config-standard-scss/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/stylelint-scss/stylelint-config-standard-scss/compare/v13.1.0...v14.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 02:42:00 +01:00
Penar Musaraj
120f1afc91
UX: Fix scrolling of form template composer on mobile (#30883)
This was a regression in recent composer refactors, this change ensures the `with-form-template` container is scrollable.
2025-01-20 17:32:32 -08:00
dependabot[bot]
50f31813ec
Build(deps): Bump nokogiri from 1.18.1 to 1.18.2 (#30853)
Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.18.1
to 1.18.2.
- [Release notes](https://github.com/sparklemotion/nokogiri/releases)
-
[Changelog](https://github.com/sparklemotion/nokogiri/blob/v1.18.2/CHANGELOG.md)
-
[Commits](https://github.com/sparklemotion/nokogiri/compare/v1.18.1...v1.18.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 02:12:16 +01:00
dependabot[bot]
8f0354deb6
Build(deps-dev): Bump selenium-webdriver from 4.27.0 to 4.28.0 (#30882)
Bumps [selenium-webdriver](https://github.com/SeleniumHQ/selenium) from
4.27.0 to 4.28.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
-
[Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
-
[Commits](https://github.com/SeleniumHQ/selenium/compare/selenium-4.27.0...selenium-4.28.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 02:02:00 +01:00
dependabot[bot]
98b6d420b8
Build(deps-dev): Bump selenium-devtools from 0.131.0 to 0.132.0 (#30880)
Bumps [selenium-devtools](https://github.com/SeleniumHQ/selenium) from
0.131.0 to 0.132.0.
- [Release notes](https://github.com/SeleniumHQ/selenium/releases)
-
[Changelog](https://github.com/SeleniumHQ/selenium/blob/trunk/rb/CHANGES)
- [Commits](https://github.com/SeleniumHQ/selenium/commits)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 02:01:48 +01:00
dependabot[bot]
2230e68854
Build(deps-dev): Bump lefthook from 1.10.8 to 1.10.9 (#30884)
Bumps [lefthook](https://github.com/evilmartians/lefthook) from 1.10.8
to 1.10.9.
- [Release notes](https://github.com/evilmartians/lefthook/releases)
-
[Changelog](https://github.com/evilmartians/lefthook/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/evilmartians/lefthook/compare/v1.10.8...v1.10.9)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 01:59:46 +01:00
dependabot[bot]
ebc07bc05f
Build(deps-dev): Bump stylelint-config-standard from 36.0.1 to 37.0.0 (#30885)
Bumps
[stylelint-config-standard](https://github.com/stylelint/stylelint-config-standard)
from 36.0.1 to 37.0.0.
- [Release
notes](https://github.com/stylelint/stylelint-config-standard/releases)
-
[Changelog](https://github.com/stylelint/stylelint-config-standard/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/stylelint/stylelint-config-standard/compare/36.0.1...37.0.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 01:59:29 +01:00
dependabot[bot]
62a3745764
Build(deps-dev): Bump qunit from 2.23.1 to 2.24.0 (#30886)
Bumps [qunit](https://github.com/qunitjs/qunit) from 2.23.1 to 2.24.0.
- [Release notes](https://github.com/qunitjs/qunit/releases)
- [Changelog](https://github.com/qunitjs/qunit/blob/2.24.0/History.md)
- [Commits](https://github.com/qunitjs/qunit/compare/2.23.1...2.24.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 01:58:58 +01:00
dependabot[bot]
af61844eaa
Build(deps): Bump i18n from 1.14.6 to 1.14.7 (#30870)
Bumps [i18n](https://github.com/ruby-i18n/i18n) from 1.14.6 to 1.14.7.
- [Release notes](https://github.com/ruby-i18n/i18n/releases)
-
[Changelog](https://github.com/ruby-i18n/i18n/blob/master/CHANGELOG.md)
- [Commits](https://github.com/ruby-i18n/i18n/compare/v1.14.6...v1.14.7)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 01:56:36 +01:00
dependabot[bot]
43cb85e2ff
Build(deps-dev): Bump rubocop-rails from 2.28.0 to 2.29.0 (#30856)
Bumps [rubocop-rails](https://github.com/rubocop/rubocop-rails) from
2.28.0 to 2.29.0.
- [Release notes](https://github.com/rubocop/rubocop-rails/releases)
-
[Changelog](https://github.com/rubocop/rubocop-rails/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/rubocop/rubocop-rails/compare/v2.28.0...v2.29.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 01:53:56 +01:00
dependabot[bot]
0fd27e1228
Build(deps): Bump psych from 5.2.2 to 5.2.3 (#30854)
Bumps [psych](https://github.com/ruby/psych) from 5.2.2 to 5.2.3.
- [Release notes](https://github.com/ruby/psych/releases)
- [Commits](https://github.com/ruby/psych/compare/v5.2.2...v5.2.3)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 01:53:36 +01:00
dependabot[bot]
5837663d81
Build(deps-dev): Bump rubocop-rspec from 3.3.0 to 3.4.0 (#30881)
Bumps [rubocop-rspec](https://github.com/rubocop/rubocop-rspec) from
3.3.0 to 3.4.0.
- [Release notes](https://github.com/rubocop/rubocop-rspec/releases)
-
[Changelog](https://github.com/rubocop/rubocop-rspec/blob/master/CHANGELOG.md)
-
[Commits](https://github.com/rubocop/rubocop-rspec/compare/v3.3.0...v3.4.0)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-21 07:36:50 +08:00
Gerhard Schlager
2d05a82f52
DEV: Add Upload to IntermediateDB (#29780) 2025-01-20 23:16:30 +01:00
Penar Musaraj
ba5cd20ef2
UX: Remove table editor transition effect (#30878)
This fixes a bit of jitteriness on mobile, noticeable mostly when going
from the topic list to a post that has a table.
2025-01-20 17:08:53 -05:00
Régis Hanol
8207086d5f
FIX: supports quoting mathjax (#30876)
This will properly extract the text used to generate mathjax expression
(both inline and block display modes) as well as remove all the cruft
that mathjax is adding in the DOM.

Internal ref - t/135307
2025-01-20 20:26:43 +01:00
David Taylor
c171e3dccd
UX: Replace font-size-ios-input workaround (#30877)
By default, iOS safari will automatically zoom into focused inputs with
font-sizes less than 16px. To avoid this, we had a CSS rule to ensure
inputs always had a large font-size on iOS. This worked, but did lead to
design inconsistencies.

Instead, we can set `user-scalable=no` on the viewport meta tag. Since
iOS 10, this property doesn't actually stop users zooming. But it *does*
still prevent the automatic zooming of inputs. So it solves our zoom
problem, and allows us to remove the CSS font-size workaround.
2025-01-20 19:17:30 +00:00
Sérgio Saquetim
a99bb0caff
DEV: Add wrapper outlet around the topic cell top and bottom lines (#30848) 2025-01-20 15:10:14 -03:00
Régis Hanol
e2c3dff669
UX: convert "view all notification" to a link (#30874)
so it respects the user's input of opening it in another tab when
CTRL/META/MIDDLE clicking it.

<img width="471" alt="Screenshot 2025-01-20 at 16 20 14"
src="https://github.com/user-attachments/assets/2ba1a78a-0c12-452e-b054-ef7e7c1338c1"
/>
2025-01-20 18:24:08 +01:00
David Taylor
d88ee33eb6
DEV: Introduce stylelint (#29852)
Stylelint is a css linter: https://stylelint.io/

As part of this change we have added two javascript scripts:

```
pnpm lint:css
pnpm lint:css:fix
```

Look at `.vscode/settings.json.sample` and `.vscode/extensions.json` for
configuration in VSCode.

---------

Co-authored-by: Joffrey JAFFEUX <j.jaffeux@gmail.com>
2025-01-20 15:27:42 +00:00