diff --git a/.template-lintrc.cjs b/.template-lintrc.cjs
index 65497436d12..7049fde55e7 100644
--- a/.template-lintrc.cjs
+++ b/.template-lintrc.cjs
@@ -4,8 +4,9 @@ module.exports = {
...templateLint,
rules: {
...templateLint.rules,
- "no-capital-arguments": false, // TODO: we extensively use `args` argument name
+ "no-capital-arguments": false, // @args is used for MountWidget
"require-button-type": false,
"no-action": true,
+ "require-strict-mode": true,
},
};
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-drawer-outlet.gjs b/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-drawer-outlet.gjs
new file mode 100644
index 00000000000..df9d881e14e
--- /dev/null
+++ b/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-drawer-outlet.gjs
@@ -0,0 +1,11 @@
+import ChatDrawer from "../../components/chat-drawer";
+
+const ChatDrawerOutlet =
+
+;
+
+export default ChatDrawerOutlet;
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-drawer-outlet.hbs b/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-drawer-outlet.hbs
deleted file mode 100644
index 57e5aa701de..00000000000
--- a/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-drawer-outlet.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.gjs b/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.gjs
new file mode 100644
index 00000000000..828481cd253
--- /dev/null
+++ b/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.gjs
@@ -0,0 +1,9 @@
+import ChatMessageActionsDesktop from "../../components/chat-message-actions-desktop";
+
+const ChatMessageActionsDesktopOutlet =
+
+;
+
+export default ChatMessageActionsDesktopOutlet;
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.hbs b/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.hbs
deleted file mode 100644
index fb4d97e44ae..00000000000
--- a/plugins/chat/assets/javascripts/discourse/connectors/below-footer/chat-message-actions-desktop-outlet.hbs
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/chat-composer-inline-buttons/emoji-picker.gjs b/plugins/chat/assets/javascripts/discourse/connectors/chat-composer-inline-buttons/emoji-picker.gjs
new file mode 100644
index 00000000000..73eb4ead349
--- /dev/null
+++ b/plugins/chat/assets/javascripts/discourse/connectors/chat-composer-inline-buttons/emoji-picker.gjs
@@ -0,0 +1,20 @@
+import Component from "@glimmer/component";
+import { service } from "@ember/service";
+import EmojiPicker from "discourse/components/emoji-picker";
+import ChatComposerSeparator from "../../components/chat/composer/separator";
+
+export default class ChatEmojiPicker extends Component {
+ @service site;
+
+
+ {{#if this.site.desktopView}}
+
+
+
+ {{/if}}
+
+}
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/chat-composer-inline-buttons/emoji-picker.hbs b/plugins/chat/assets/javascripts/discourse/connectors/chat-composer-inline-buttons/emoji-picker.hbs
deleted file mode 100644
index b02a7ddab21..00000000000
--- a/plugins/chat/assets/javascripts/discourse/connectors/chat-composer-inline-buttons/emoji-picker.hbs
+++ /dev/null
@@ -1,9 +0,0 @@
-{{#if this.site.desktopView}}
-
-
-
-{{/if}}
\ No newline at end of file
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/home-logo-wrapper/chat-header-connector.gjs b/plugins/chat/assets/javascripts/discourse/connectors/home-logo-wrapper/chat-header-connector.gjs
new file mode 100644
index 00000000000..52bf45a8cb2
--- /dev/null
+++ b/plugins/chat/assets/javascripts/discourse/connectors/home-logo-wrapper/chat-header-connector.gjs
@@ -0,0 +1 @@
+export { default } from "../../components/chat-header";
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/home-logo-wrapper/chat-header-connector.hbs b/plugins/chat/assets/javascripts/discourse/connectors/home-logo-wrapper/chat-header-connector.hbs
deleted file mode 100644
index fa8c661943c..00000000000
--- a/plugins/chat/assets/javascripts/discourse/connectors/home-logo-wrapper/chat-header-connector.hbs
+++ /dev/null
@@ -1 +0,0 @@
-{{yield}}
\ No newline at end of file
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/user-card-below-message-button/chat-button.gjs b/plugins/chat/assets/javascripts/discourse/connectors/user-card-below-message-button/chat-button.gjs
new file mode 100644
index 00000000000..b3fa2159243
--- /dev/null
+++ b/plugins/chat/assets/javascripts/discourse/connectors/user-card-below-message-button/chat-button.gjs
@@ -0,0 +1,11 @@
+import ChatDirectMessageButton from "../../components/chat/direct-message-button";
+
+const ChatButton =
+ {{#if @outletArgs.user.can_chat_user}}
+
+
+
+ {{/if}}
+;
+
+export default ChatButton;
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/user-card-below-message-button/chat-button.hbs b/plugins/chat/assets/javascripts/discourse/connectors/user-card-below-message-button/chat-button.hbs
deleted file mode 100644
index 2f880dd681c..00000000000
--- a/plugins/chat/assets/javascripts/discourse/connectors/user-card-below-message-button/chat-button.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-{{#if this.user.can_chat_user}}
-
-{{/if}}
\ No newline at end of file
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/user-profile-controls/chat-button.gjs b/plugins/chat/assets/javascripts/discourse/connectors/user-profile-controls/chat-button.gjs
new file mode 100644
index 00000000000..0df48c2b9b9
--- /dev/null
+++ b/plugins/chat/assets/javascripts/discourse/connectors/user-profile-controls/chat-button.gjs
@@ -0,0 +1,11 @@
+import ChatDirectMessageButton from "../../components/chat/direct-message-button";
+
+const ChatButton =
+ {{#if @outletArgs.model.can_chat_user}}
+
+
+
+ {{/if}}
+;
+
+export default ChatButton;
diff --git a/plugins/chat/assets/javascripts/discourse/connectors/user-profile-controls/chat-button.hbs b/plugins/chat/assets/javascripts/discourse/connectors/user-profile-controls/chat-button.hbs
deleted file mode 100644
index 7762c2fea4f..00000000000
--- a/plugins/chat/assets/javascripts/discourse/connectors/user-profile-controls/chat-button.hbs
+++ /dev/null
@@ -1,3 +0,0 @@
-{{#if this.model.can_chat_user}}
-
-{{/if}}
\ No newline at end of file
diff --git a/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.gjs b/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.gjs
new file mode 100644
index 00000000000..33c22876870
--- /dev/null
+++ b/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.gjs
@@ -0,0 +1,45 @@
+import Component from "@glimmer/component";
+import { tracked } from "@glimmer/tracking";
+import { action } from "@ember/object";
+import DMultiSelect from "discourse/components/d-multi-select";
+import StyleguideComponent from "../../styleguide/component";
+import StyleguideExample from "../../styleguide-example";
+
+export default class MultiSelect extends Component {
+ @tracked selection = [{ id: 1, name: "foo" }];
+
+ @action
+ onChange(selection) {
+ this.selection = selection;
+ }
+
+ @action
+ async loadDummyData(filter) {
+ await new Promise((resolve) => setTimeout(resolve, 500));
+
+ return [
+ { id: 1, name: "foo" },
+ { id: 2, name: "bar" },
+ { id: 3, name: "baz" },
+ ].filter((item) => {
+ return item.name.toLowerCase().includes(filter.toLowerCase());
+ });
+ }
+
+
+ ">
+
+ <:sample>
+
+ <:result as |result|>{{result.name}}
+ <:selection as |result|>{{result.name}}
+
+
+
+
+
+}
diff --git a/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.hbs b/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.hbs
deleted file mode 100644
index f7225133af7..00000000000
--- a/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.hbs
+++ /dev/null
@@ -1,14 +0,0 @@
-">
-
- <:sample>
-
- <:result as |result|>{{result.name}}
- <:selection as |result|>{{result.name}}
-
-
-
-
\ No newline at end of file
diff --git a/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.js b/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.js
deleted file mode 100644
index d57e5926cf7..00000000000
--- a/plugins/styleguide/assets/javascripts/discourse/components/sections/molecules/multi-select.js
+++ /dev/null
@@ -1,25 +0,0 @@
-import Component from "@glimmer/component";
-import { tracked } from "@glimmer/tracking";
-import { action } from "@ember/object";
-
-export default class MultiSelect extends Component {
- @tracked selection = [{ id: 1, name: "foo" }];
-
- @action
- onChange(selection) {
- this.selection = selection;
- }
-
- @action
- async loadDummyData(filter) {
- await new Promise((resolve) => setTimeout(resolve, 500));
-
- return [
- { id: 1, name: "foo" },
- { id: 2, name: "bar" },
- { id: 3, name: "baz" },
- ].filter((item) => {
- return item.name.toLowerCase().includes(filter.toLowerCase());
- });
- }
-}