Commit Graph

59400 Commits

Author SHA1 Message Date
1de8960d2a FIX: Serve RTL CSS for themes and components (#32916)
Follow up to https://github.com/discourse/discourse/pull/32881

Stylesheet `<link>` tags for themes/components are aren't getting
included/rendered in the HTML document due to a missing check in
stylesheet manager. See
https://meta.discourse.org/t/ui-layout-broken-for-rtl-language-after-latest-update/367434?u=osama.
2025-05-27 03:15:05 +03:00
adc8dd29eb DEV: Update allowed supported locales in translation editor (#32920)
## 🔍 Overview
This update adds a new site setting:

```ruby
SiteSetting.experimental_content_localization_supported_locales
```

where admins can set the supported languages for content localizations,
which will populate the picker inside the translation composer editor.
The update also ensures the content localization settings are shown in
the site setting area: "localization"

## 📷 Screenshots

![Screenshot 2025-05-26 at 10 03
14](https://github.com/user-attachments/assets/62645e4d-4d7b-460c-a249-66b563d35a93)

![Screenshot 2025-05-26 at 10 04
08](https://github.com/user-attachments/assets/dd3ac5ea-e9be-4f8f-8488-2dedea15e833)
2025-05-26 11:40:19 -07:00
487f610fc1 DEV: add user email to chat summary mailer (#32917)
Pass user email rather than relying on enrichment when sending summary
emails.
2025-05-26 19:19:16 +04:00
5cb19734e0 FIX: Also show the toggle localization button on mobile (#32912)
In https://github.com/discourse/discourse/pull/32618, the button was
added to a place which does not show up on mobile.

When the feature was still in discourse-translator
(https://github.com/discourse/discourse-translator/pull/205), it was
added to the plugin outlet which would allow it to show up on both
mobile and desktop. This commit moves the button to be a neighbour of the
plugin outlet.
2025-05-26 21:54:34 +08:00
804bdcfe5f FIX: resolve discard draft keep editing (#32667)
Fixes a bug where clicking keep editing in the discard modal dialog
would result in the composer auto save being disabled. Because of this
updates to drafts after this point can easily be lost.

The issue was that the `cancelComposer` was not resolving the promise,
and therefore not setting `skipAutoSave` to false in the final step.

This change also includes another fix for an issue that was revealed
where the discard draft dialog would continually open again after we
close it. This would happen when editing a draft while viewing a
different topic. It wasn't noticed before as the `keep editing` button
would result in the code hanging at the `await
this.cancelComposer(opts)` stage and not opening the composer again for
the new topic reply.
2025-05-26 17:40:28 +04:00
84762e6317 UX: Modal close animation (#32842)
Adding an animation on closing the modal.
2025-05-26 10:47:15 +02:00
648722dc81 FIX: back to forum button only from admin (#32911)
Search for last not admin URL only when user is in admin panel. When back to forum link is clicked from documentation plugin link should lead to homepage.

Meta: https://meta.discourse.org/t/doc-sub-category-back-to-forum-loop/367513/10
Specs: discourse/discourse-doc-categories#40
2025-05-26 16:43:47 +08:00
2f3404fe4d UX: fix search results unreachable bottom results and more button (#32883)
Meta report:
https://meta.discourse.org/t/search-in-header-gives-too-deep-results/362973

The general problem of our `menu-panel` is that it had no proper
max-height set, which mean you have to scroll the page instead of the
panel to see bottom results. In the new header-search setup however,
scrolling the page makes the panel disappear, effectively locking you
out.

This commit adds a best-estimate max-height on the parent level
`menu-panel`, dependent on where the search is triggered from (header VS
welcome banner)

| Old | New |
|--------|--------|
| ![CleanShot 2025-05-23 at 14 58
07@2x](https://github.com/user-attachments/assets/4a96d518-13d0-4f97-b472-5d1f56bbaa1a)
| ![CleanShot 2025-05-23 at 14 59
30@2x](https://github.com/user-attachments/assets/9c8546d2-a780-49b3-80d0-95eab81eff94)
|
2025-05-26 09:40:23 +02:00
5474ea4c03 DEV: maps IST rails timezone to kolkata (#32896)
This commit ensures rails will recognise `IST` as a timezone. It will be
mapped to the standard timezone `Asia/Kolkata`.

Its technically not a standard, but it's used by many people so we are
adding it as a timezone in core.

/t/-/150799
2025-05-26 08:56:04 +02:00
e20fe1a6c7 fix Right-To-Left rendering of ordered lists in posts (#32898)
change "padding-left" to "padding-inline-start".

See:

https://meta.discourse.org/t/rtl-numbered-or-bullet-lists-are-broken/367516
2025-05-26 16:49:47 +10:00
fa39af6526 FIX: prevents double load of automation.index (#32899)
Im not exactly sure of the reason, but I thought it was related to the
recent `addAdminPluginConfigurationNav`. I followed more closely what
has been made in chat for hooks and it seems to fix the problem.


/t/-/154466
2025-05-26 08:17:26 +02:00
b485e04e4f FEATURE: Also localize banners (#32908)
Banners take a different route and are retrieved separately.
2025-05-26 13:16:22 +08:00
c4ff6bd40e DEV: remove old themes/components code (#32875)
Recently, themes page was rebranded and put
`/admin/config/customize/themes`. In this PR, old
`/admin/customize/themes` was removed. In addition, when an admin visits
an old URL, they are redirected to the new one.
2025-05-26 09:21:15 +08:00
7a297a531a Build(deps): Bump snaky_hash from 2.0.2 to 2.0.3 (#32901)
Bumps [snaky_hash](https://github.com/oauth-xx/snaky_hash) from 2.0.2 to
2.0.3.
- [Release notes](https://github.com/oauth-xx/snaky_hash/releases)
-
[Changelog](https://github.com/oauth-xx/snaky_hash/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/oauth-xx/snaky_hash/compare/v2.0.2...v2.0.3)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-26 00:59:10 +02:00
b8368d1618 Build(deps): Bump json from 2.12.0 to 2.12.2 (#32902)
Bumps [json](https://github.com/ruby/json) from 2.12.0 to 2.12.2.
- [Release notes](https://github.com/ruby/json/releases)
- [Changelog](https://github.com/ruby/json/blob/master/CHANGES.md)
- [Commits](https://github.com/ruby/json/compare/v2.12.0...v2.12.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-26 00:58:52 +02:00
1e3df0b5d1 Build(deps-dev): Bump @discourse/lint-configs from 2.19.1 to 2.20.0 (#32900)
Bumps
[@discourse/lint-configs](https://github.com/discourse/lint-configs)
from 2.19.1 to 2.20.0.
- [Commits](https://github.com/discourse/lint-configs/commits)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Discourse CI <ci@ci.invalid>
2025-05-26 00:58:44 +02:00
1f11aeab6b Build(deps): Bump diff from 8.0.1 to 8.0.2 (#32870)
Bumps [diff](https://github.com/kpdecker/jsdiff) from 8.0.1 to 8.0.2.
-
[Changelog](https://github.com/kpdecker/jsdiff/blob/master/release-notes.md)
- [Commits](https://github.com/kpdecker/jsdiff/compare/v8.0.1...v8.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-24 15:22:18 +10:00
318cc6108c UX: Match theme install icon with component icon (#32894)
Just a small update to make the theme install icon match the one we use
for components.
2025-05-23 19:57:36 -06:00
0f8248d889 UX: Remove background from nav pill hover (#32893) 2025-05-23 16:19:22 -05:00
fc9703a92b FIX: allows zooming of images in chat (#32891) 2025-05-23 21:33:50 +02:00
199e120e20 UX: More border radius application (#32892) 2025-05-23 13:54:37 -05:00
bdc95398a2 UX: switch sidebar focus to focus-visible (#32882)
Reported here:
https://meta.discourse.org/t/dmenu-for-more-in-sidebar-selects-first-item-even-if-it-is-not-the-current-page/367344

focus-visible will make the focus state only appear when needed (like
when navigating with your keyboard), rather than appearing on menu open


![image](https://github.com/user-attachments/assets/9a6288a6-f67b-4493-a63c-aaaeb4214652)
2025-05-23 14:31:16 -04:00
7b6c6e6082 UX: Establish a larger default border radius (#32889) 2025-05-23 11:03:05 -05:00
4ac54c17ee DEV: Add className to flag name in flagging modal (#32888)
There is currently no selector on this `div` and we need a better
selector than `strong` for a CSS customizations.
2025-05-23 10:13:12 -05:00
7974ed508b UX: Improve intermediate state in social signup flow (#32887)
Before
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/5a060536-a32c-451c-b6dd-5b0f7e5b4124"
/>

After
<img width="500" alt="image"
src="https://github.com/user-attachments/assets/49b680cf-ff9c-453b-9268-3d28f107b613"
/>
2025-05-23 10:39:30 -04:00
67bc9df272 FIX: fix label and description not working in type objects for site settings (#32868)
`label` and `description` did not work in `type: objects` in site
settings; this PR fixes that.

In theme settings, it is still working as expected(added tests for it ).
2025-05-23 11:39:19 -03:00
8a9397f53c UX: Fix positioning of loading spinner (#32885) 2025-05-23 09:06:09 -05:00
588f1d4a42 FEATURE: allow minimizing composer when no text (#32880)
This change updates the minimize button to always minimize the composer
so we don’t inadvertently delete user input.

Internal ref: /t/129123
2025-05-23 18:06:01 +04:00
92312eec7b FIX: Fix category title link to update when category changes, add tests (#32840)
The component was importing `@ember/component` but not marking the
category arg as tracked. Changed to `@glimmer/component` so the category
arg is tracked, and cleaned up the rest of the component to match.

Related to [this issue on
meta](https://meta.discourse.org/t/category-headers-missing-the-titles/361954).

Apparently a few customers with themes using the CategoryTitleLink
component got hit with the category title not updating correctly when
the category changed.
2025-05-23 08:51:30 -05:00
aa77c45576 REFACTOR: move mobile list-controls.scss to common (#32862)
This creates a new `/common/base/list-controls.scss` file and pulls
relevant styles from `_topic_list.scss` into it along with the mobile
`list-controls.scss`
2025-05-23 09:50:06 -04:00
c0b76d1c64 DEV: signup/login spec cleanup (#32867) 2025-05-23 09:17:37 -04:00
80df219fef A11Y: Update accessible headings for more flexible translations (#32863)
Follow-up to ca658a8bb093c82410927d1fa29e5ef1940260b7

The original attempt at this wasn't flexible enough for some languages
where adjectives may depend on context, so this requires more
translation but allows for full context in each string

Discussed here:
https://meta.discourse.org/t/translating-filter-in-headings-for-discovery-routes/363520
2025-05-23 09:15:44 -04:00
b4990ccb71 DEV: Compile and serve rtl versions of theme CSS (#32881) 2025-05-23 13:48:57 +01:00
b15c1d28c9 DEV: Introduce experimental viewport-based mobile mode (#32859)
Introduces the viewport_based_mobile_mode experimental site setting.
When enabled, user-agent-based mobile/desktop detection will be replaced
with viewport-width logic. 'mobile mode' is enabled for any viewport
less than our 'sm' breakpoint (40rem, or 640px at default font size).

When this mode is enabled, mobile/desktop toggle buttons are hidden,
since they are non-functional.

Tests are also updated to use a consistent method for force-enabling the
legacy mobile mode. All state is now stored in `lib/mobile`, and the
`Site` model references that via a getter.
2025-05-23 13:01:04 +01:00
c880aa78ce FIX: Avoid double redirect after installing a theme (#32876)
Clearing of params is now happening in the addTheme callback in the call site. Calling it in the component in willDestroy results in a double redirect which breaks the redirection to the components tab.
2025-05-23 16:53:45 +08:00
a24bd6789c Build(deps-dev): Bump ruby-prof from 1.7.1 to 1.7.2 (#32872)
Bumps [ruby-prof](https://github.com/ruby-prof/ruby-prof) from 1.7.1 to
1.7.2.
-
[Changelog](https://github.com/ruby-prof/ruby-prof/blob/master/CHANGES)
-
[Commits](https://github.com/ruby-prof/ruby-prof/compare/1.7.1...1.7.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-23 16:24:04 +10:00
Sam
c1b0e8b30b DEV: track client ids published to message bus (#32878)
Allow tracking of client ids published to message bus. 

Required for when you are targeting publishing at a single browser
2025-05-23 14:23:50 +10:00
49f6f5d083 UX: rich editor checklist undoable input rule (#32877)
Removes the rich editor checklist input rule `undoable: false`, which is
not needed.

Making it undoable allows a backspace to undo the input rule conversion,
so we can go from a check to a `[]` again
2025-05-23 14:20:27 +10:00
01969e49f0 DEV: Improve tests for composer by checking for visibility (#32874)
This is a follow up to 6da091a2b1aa4940fdfb6c42ed0c59fea17ab7e3
2025-05-23 10:05:26 +08:00
10f8dba819 Revert "UX: Refactor the edit topic title UI" (#32873) 2025-05-22 20:07:19 -05:00
6cda3c728a DEV: refactor select-kit utils mixin to property-utils lib (#32665)
Follow up to refactoring the generic utils mixin used in select-kit
components in https://github.com/discourse/discourse/pull/32594.

This PR follows a different approach as the util functions related to
properties here aren't easily extracted without a major change to the
interface due to the dependency on `this.selectKit`. These util
functions are instead declared on the prototype with a class decorator
which ensures the same behaviour is maintained without relying on a
mixin.

It's largely a lift-and-shift with some minor refactoring of the
conditional logic to reduce nesting and improve readability of the
functions.
2025-05-23 09:03:10 +08:00
368900555d UX: re-add similar topics styles (#32866)
Before

![image](https://github.com/user-attachments/assets/f83e1d17-32f6-42a8-b7f8-21c1bf500136)

After

![image](https://github.com/user-attachments/assets/a81f7ddc-4001-47b4-b913-246d066673cc)
2025-05-22 16:53:35 -03:00
6da091a2b1 FIX: fullscreen composer regression (#32864)
Undoes the CSS nesting done inadvertently on
https://github.com/discourse/discourse/pull/32843.

Everything below `.fullscreen-composer` shouldn't be nested within
`.similar-topics`.
2025-05-22 16:24:42 -03:00
1a5377cf93 DEV: Add ability to hide shortcut in title (#32860)
## 🔍 Overview
This update add an _optional_ attribute to the `toolbar.addButton()` API
so that we can conditionally hide the shortcut showing up in the title.

Although for most cases, showing the shortcut in the title is fine. For
complex uses of `toolbar.addButton` where it triggers a menu, it isn't
ideal. For example, in Discourse AI, the toolbar API is used to show a
menu for the AI composer helper. The shortcut in the API is used to
trigger the proofreading item, but not necessarily for all other items.
As such, we want the shortcut hidden in the title.

## 🛠️ Usage

```diff
        withPluginApi((api) => {
          api.onToolbarCreate((toolbar) => {
            toolbar.addButton({
              id: "smile",
              group: "extras",
              name: "smile",
              icon: "far-face-smile",
              title: "cheese",
              shortcut: "ALT+S",
+              hideShortcutInTitle: true,
            });
          });
        });
``` 

### ← Before

Title shows:

> Cheese (Ctrl + Alt + S)

### → After

Title shows:

> Cheese
2025-05-22 09:36:48 -07:00
3867c879ab DEV: Make outletArgs available as regular arguments (#32819) 2025-05-22 14:55:28 +01:00
e2fe5671ed DEV: Resolve mixed-decls misconfiguration (#32858)
Marking mixed-decls as silenced & fatal simultaneously is causing a
warning "Ignoring setting to silence mixed-decls deprecation, since it
has also been made fatal"

The intention is for it to be silenced for themes/plugins, but fatal for
core.
2025-05-22 13:52:20 +01:00
9ead2e6720 PERF: Introduce lazyHash and update PluginOutlet calls to use it (#32823)
This is a more efficient version of `{{hash`, where the values are only evaluated when they're actually accessed. Also enables a new lint rule which will ensure `{{hash` is not reintroduced on PluginOutlets
2025-05-22 12:07:22 +01:00
f0fcac1243 DEV: Refactor Chat::LookupChannelThreads to follow best practices
- use `model` where possible
- extract threads fetching logic to its own action
- refactor specs to follow current guidelines/best practices
2025-05-22 12:06:54 +02:00
3e8c293fe9 Build(deps): Bump snaky_hash from 2.0.1 to 2.0.2 (#32853)
Bumps [snaky_hash](https://github.com/oauth-xx/snaky_hash) from 2.0.1 to
2.0.2.
-
[Changelog](https://github.com/oauth-xx/snaky_hash/blob/main/CHANGELOG.md)
-
[Commits](https://github.com/oauth-xx/snaky_hash/compare/v2.0.1...v2.0.2)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-22 12:02:07 +02:00
03ea73c550 Build(deps-dev): Bump @swc/core from 1.11.24 to 1.11.29 (#32850)
Bumps [@swc/core](https://github.com/swc-project/swc) from 1.11.24 to
1.11.29.
- [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.11.24...v1.11.29)

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-05-22 12:01:25 +02:00