diff --git a/tgui/packages/common/keycodes.js b/tgui/packages/common/keycodes.ts
similarity index 100%
rename from tgui/packages/common/keycodes.js
rename to tgui/packages/common/keycodes.ts
diff --git a/tgui/packages/tgui-dev-server/dreamseeker.js b/tgui/packages/tgui-dev-server/dreamseeker.js
index 2b25b155ae0..c81f51e35c5 100644
--- a/tgui/packages/tgui-dev-server/dreamseeker.js
+++ b/tgui/packages/tgui-dev-server/dreamseeker.js
@@ -6,8 +6,8 @@
import { exec } from 'child_process';
import { promisify } from 'util';
-import { createLogger } from './logging.js';
-import { require } from './require.js';
+import { createLogger } from './logging';
+import { require } from './require';
const axios = require('axios');
const logger = createLogger('dreamseeker');
diff --git a/tgui/packages/tgui-dev-server/index.js b/tgui/packages/tgui-dev-server/index.js
index 199e93d8363..460b15d99ad 100644
--- a/tgui/packages/tgui-dev-server/index.js
+++ b/tgui/packages/tgui-dev-server/index.js
@@ -4,8 +4,8 @@
* @license MIT
*/
-import { createCompiler } from './webpack.js';
-import { reloadByondCache } from './reloader.js';
+import { createCompiler } from './webpack';
+import { reloadByondCache } from './reloader';
const noHot = process.argv.includes('--no-hot');
const noTmp = process.argv.includes('--no-tmp');
diff --git a/tgui/packages/tgui-dev-server/link/retrace.js b/tgui/packages/tgui-dev-server/link/retrace.js
index 842de228fdf..949835c7002 100644
--- a/tgui/packages/tgui-dev-server/link/retrace.js
+++ b/tgui/packages/tgui-dev-server/link/retrace.js
@@ -6,9 +6,9 @@
import fs from 'fs';
import { basename } from 'path';
-import { createLogger } from '../logging.js';
-import { require } from '../require.js';
-import { resolveGlob } from '../util.js';
+import { createLogger } from '../logging';
+import { require } from '../require';
+import { resolveGlob } from '../util';
const SourceMap = require('source-map');
const { parse: parseStackTrace } = require('stacktrace-parser');
diff --git a/tgui/packages/tgui-dev-server/link/server.js b/tgui/packages/tgui-dev-server/link/server.js
index 60cc78c1bd9..f0c0d153d3a 100644
--- a/tgui/packages/tgui-dev-server/link/server.js
+++ b/tgui/packages/tgui-dev-server/link/server.js
@@ -6,9 +6,9 @@
import http from 'http';
import { inspect } from 'util';
-import { createLogger, directLog } from '../logging.js';
-import { require } from '../require.js';
-import { loadSourceMaps, retrace } from './retrace.js';
+import { createLogger, directLog } from '../logging';
+import { require } from '../require';
+import { loadSourceMaps, retrace } from './retrace';
const WebSocket = require('ws');
diff --git a/tgui/packages/tgui-dev-server/reloader.js b/tgui/packages/tgui-dev-server/reloader.js
index c13a8afdfcf..aed9a7dcd77 100644
--- a/tgui/packages/tgui-dev-server/reloader.js
+++ b/tgui/packages/tgui-dev-server/reloader.js
@@ -7,10 +7,10 @@
import fs from 'fs';
import os from 'os';
import { basename } from 'path';
-import { DreamSeeker } from './dreamseeker.js';
-import { createLogger } from './logging.js';
-import { resolveGlob, resolvePath } from './util.js';
-import { regQuery } from './winreg.js';
+import { DreamSeeker } from './dreamseeker';
+import { createLogger } from './logging';
+import { resolveGlob, resolvePath } from './util';
+import { regQuery } from './winreg';
const logger = createLogger('reloader');
diff --git a/tgui/packages/tgui-dev-server/util.js b/tgui/packages/tgui-dev-server/util.js
index 9d07b96c71a..d60ebb212fa 100644
--- a/tgui/packages/tgui-dev-server/util.js
+++ b/tgui/packages/tgui-dev-server/util.js
@@ -6,7 +6,7 @@
import fs from 'fs';
import path from 'path';
-import { require } from './require.js';
+import { require } from './require';
const globPkg = require('glob');
diff --git a/tgui/packages/tgui-dev-server/webpack.js b/tgui/packages/tgui-dev-server/webpack.js
index 139610b79ce..1c16345a892 100644
--- a/tgui/packages/tgui-dev-server/webpack.js
+++ b/tgui/packages/tgui-dev-server/webpack.js
@@ -7,10 +7,10 @@
import fs from 'fs';
import { createRequire } from 'module';
import { dirname } from 'path';
-import { loadSourceMaps, setupLink } from './link/server.js';
-import { createLogger } from './logging.js';
-import { reloadByondCache } from './reloader.js';
-import { resolveGlob } from './util.js';
+import { loadSourceMaps, setupLink } from './link/server';
+import { createLogger } from './logging';
+import { reloadByondCache } from './reloader';
+import { resolveGlob } from './util';
const logger = createLogger('webpack');
diff --git a/tgui/packages/tgui-dev-server/winreg.js b/tgui/packages/tgui-dev-server/winreg.js
index b61fddc1a25..d7408b5c390 100644
--- a/tgui/packages/tgui-dev-server/winreg.js
+++ b/tgui/packages/tgui-dev-server/winreg.js
@@ -8,7 +8,7 @@
import { exec } from 'child_process';
import { promisify } from 'util';
-import { createLogger } from './logging.js';
+import { createLogger } from './logging';
const logger = createLogger('winreg');
diff --git a/tgui/packages/tgui-panel/Notifications.js b/tgui/packages/tgui-panel/Notifications.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/Notifications.js
rename to tgui/packages/tgui-panel/Notifications.jsx
diff --git a/tgui/packages/tgui-panel/Panel.js b/tgui/packages/tgui-panel/Panel.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/Panel.js
rename to tgui/packages/tgui-panel/Panel.jsx
diff --git a/tgui/packages/tgui-panel/audio/NowPlayingWidget.js b/tgui/packages/tgui-panel/audio/NowPlayingWidget.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/audio/NowPlayingWidget.js
rename to tgui/packages/tgui-panel/audio/NowPlayingWidget.jsx
diff --git a/tgui/packages/tgui-panel/audio/index.js b/tgui/packages/tgui-panel/audio/index.ts
similarity index 100%
rename from tgui/packages/tgui-panel/audio/index.js
rename to tgui/packages/tgui-panel/audio/index.ts
diff --git a/tgui/packages/tgui-panel/chat/ChatPageSettings.js b/tgui/packages/tgui-panel/chat/ChatPageSettings.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/chat/ChatPageSettings.js
rename to tgui/packages/tgui-panel/chat/ChatPageSettings.jsx
diff --git a/tgui/packages/tgui-panel/chat/ChatPanel.js b/tgui/packages/tgui-panel/chat/ChatPanel.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/chat/ChatPanel.js
rename to tgui/packages/tgui-panel/chat/ChatPanel.jsx
diff --git a/tgui/packages/tgui-panel/chat/ChatTabs.js b/tgui/packages/tgui-panel/chat/ChatTabs.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/chat/ChatTabs.js
rename to tgui/packages/tgui-panel/chat/ChatTabs.jsx
diff --git a/tgui/packages/tgui-panel/chat/constants.js b/tgui/packages/tgui-panel/chat/constants.ts
similarity index 100%
rename from tgui/packages/tgui-panel/chat/constants.js
rename to tgui/packages/tgui-panel/chat/constants.ts
diff --git a/tgui/packages/tgui-panel/chat/index.js b/tgui/packages/tgui-panel/chat/index.ts
similarity index 100%
rename from tgui/packages/tgui-panel/chat/index.js
rename to tgui/packages/tgui-panel/chat/index.ts
diff --git a/tgui/packages/tgui-panel/game/constants.js b/tgui/packages/tgui-panel/game/constants.ts
similarity index 100%
rename from tgui/packages/tgui-panel/game/constants.js
rename to tgui/packages/tgui-panel/game/constants.ts
diff --git a/tgui/packages/tgui-panel/game/index.js b/tgui/packages/tgui-panel/game/index.ts
similarity index 100%
rename from tgui/packages/tgui-panel/game/index.js
rename to tgui/packages/tgui-panel/game/index.ts
diff --git a/tgui/packages/tgui-panel/ping/PingIndicator.js b/tgui/packages/tgui-panel/ping/PingIndicator.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/ping/PingIndicator.js
rename to tgui/packages/tgui-panel/ping/PingIndicator.jsx
diff --git a/tgui/packages/tgui-panel/ping/constants.js b/tgui/packages/tgui-panel/ping/constants.ts
similarity index 100%
rename from tgui/packages/tgui-panel/ping/constants.js
rename to tgui/packages/tgui-panel/ping/constants.ts
diff --git a/tgui/packages/tgui-panel/ping/index.js b/tgui/packages/tgui-panel/ping/index.ts
similarity index 100%
rename from tgui/packages/tgui-panel/ping/index.js
rename to tgui/packages/tgui-panel/ping/index.ts
diff --git a/tgui/packages/tgui-panel/settings/SettingsPanel.js b/tgui/packages/tgui-panel/settings/SettingsPanel.jsx
similarity index 100%
rename from tgui/packages/tgui-panel/settings/SettingsPanel.js
rename to tgui/packages/tgui-panel/settings/SettingsPanel.jsx
diff --git a/tgui/packages/tgui-panel/settings/constants.js b/tgui/packages/tgui-panel/settings/constants.ts
similarity index 100%
rename from tgui/packages/tgui-panel/settings/constants.js
rename to tgui/packages/tgui-panel/settings/constants.ts
diff --git a/tgui/packages/tgui-panel/settings/index.js b/tgui/packages/tgui-panel/settings/index.ts
similarity index 100%
rename from tgui/packages/tgui-panel/settings/index.js
rename to tgui/packages/tgui-panel/settings/index.ts
diff --git a/tgui/packages/tgui/components/Blink.js b/tgui/packages/tgui/components/Blink.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Blink.js
rename to tgui/packages/tgui/components/Blink.jsx
diff --git a/tgui/packages/tgui/components/BlockQuote.js b/tgui/packages/tgui/components/BlockQuote.jsx
similarity index 100%
rename from tgui/packages/tgui/components/BlockQuote.js
rename to tgui/packages/tgui/components/BlockQuote.jsx
diff --git a/tgui/packages/tgui/components/Button.js b/tgui/packages/tgui/components/Button.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Button.js
rename to tgui/packages/tgui/components/Button.jsx
diff --git a/tgui/packages/tgui/components/ByondUi.js b/tgui/packages/tgui/components/ByondUi.jsx
similarity index 100%
rename from tgui/packages/tgui/components/ByondUi.js
rename to tgui/packages/tgui/components/ByondUi.jsx
diff --git a/tgui/packages/tgui/components/Chart.js b/tgui/packages/tgui/components/Chart.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Chart.js
rename to tgui/packages/tgui/components/Chart.jsx
diff --git a/tgui/packages/tgui/components/Collapsible.js b/tgui/packages/tgui/components/Collapsible.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Collapsible.js
rename to tgui/packages/tgui/components/Collapsible.jsx
diff --git a/tgui/packages/tgui/components/ColorBox.js b/tgui/packages/tgui/components/ColorBox.jsx
similarity index 100%
rename from tgui/packages/tgui/components/ColorBox.js
rename to tgui/packages/tgui/components/ColorBox.jsx
diff --git a/tgui/packages/tgui/components/Dimmer.js b/tgui/packages/tgui/components/Dimmer.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Dimmer.js
rename to tgui/packages/tgui/components/Dimmer.jsx
diff --git a/tgui/packages/tgui/components/Divider.js b/tgui/packages/tgui/components/Divider.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Divider.js
rename to tgui/packages/tgui/components/Divider.jsx
diff --git a/tgui/packages/tgui/components/DraggableControl.js b/tgui/packages/tgui/components/DraggableControl.jsx
similarity index 100%
rename from tgui/packages/tgui/components/DraggableControl.js
rename to tgui/packages/tgui/components/DraggableControl.jsx
diff --git a/tgui/packages/tgui/components/FakeTerminal.jsx b/tgui/packages/tgui/components/FakeTerminal.jsx
new file mode 100644
index 00000000000..d6479a25796
--- /dev/null
+++ b/tgui/packages/tgui/components/FakeTerminal.jsx
@@ -0,0 +1,51 @@
+import { Box } from './Box';
+import { Component, Fragment } from 'inferno';
+
+export class FakeTerminal extends Component {
+ constructor(props) {
+ super(props);
+ this.timer = null;
+ this.state = {
+ currentIndex: 0,
+ currentDisplay: [],
+ };
+ }
+
+ tick() {
+ const { props, state } = this;
+ if (state.currentIndex <= props.allMessages.length) {
+ this.setState((prevState) => {
+ return {
+ currentIndex: prevState.currentIndex + 1,
+ };
+ });
+ const { currentDisplay } = state;
+ currentDisplay.push(props.allMessages[state.currentIndex]);
+ } else {
+ clearTimeout(this.timer);
+ setTimeout(props.onFinished, props.finishedTimeout);
+ }
+ }
+
+ componentDidMount() {
+ const { linesPerSecond = 2.5 } = this.props;
+ this.timer = setInterval(() => this.tick(), 1000 / linesPerSecond);
+ }
+
+ componentWillUnmount() {
+ clearTimeout(this.timer);
+ }
+
+ render() {
+ return (
+
+ {this.state.currentDisplay.map((value) => (
+
+ {value}
+
+
+ ))}
+
+ );
+ }
+}
diff --git a/tgui/packages/tgui/components/Grid.js b/tgui/packages/tgui/components/Grid.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Grid.js
rename to tgui/packages/tgui/components/Grid.jsx
diff --git a/tgui/packages/tgui/components/InfinitePlane.js b/tgui/packages/tgui/components/InfinitePlane.jsx
similarity index 100%
rename from tgui/packages/tgui/components/InfinitePlane.js
rename to tgui/packages/tgui/components/InfinitePlane.jsx
diff --git a/tgui/packages/tgui/components/Input.js b/tgui/packages/tgui/components/Input.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Input.js
rename to tgui/packages/tgui/components/Input.jsx
diff --git a/tgui/packages/tgui/components/Knob.js b/tgui/packages/tgui/components/Knob.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Knob.js
rename to tgui/packages/tgui/components/Knob.jsx
diff --git a/tgui/packages/tgui/components/LabeledControls.js b/tgui/packages/tgui/components/LabeledControls.jsx
similarity index 100%
rename from tgui/packages/tgui/components/LabeledControls.js
rename to tgui/packages/tgui/components/LabeledControls.jsx
diff --git a/tgui/packages/tgui/components/Modal.js b/tgui/packages/tgui/components/Modal.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Modal.js
rename to tgui/packages/tgui/components/Modal.jsx
diff --git a/tgui/packages/tgui/components/NoticeBox.js b/tgui/packages/tgui/components/NoticeBox.jsx
similarity index 100%
rename from tgui/packages/tgui/components/NoticeBox.js
rename to tgui/packages/tgui/components/NoticeBox.jsx
diff --git a/tgui/packages/tgui/components/NumberInput.js b/tgui/packages/tgui/components/NumberInput.jsx
similarity index 100%
rename from tgui/packages/tgui/components/NumberInput.js
rename to tgui/packages/tgui/components/NumberInput.jsx
diff --git a/tgui/packages/tgui/components/ProgressBar.js b/tgui/packages/tgui/components/ProgressBar.jsx
similarity index 100%
rename from tgui/packages/tgui/components/ProgressBar.js
rename to tgui/packages/tgui/components/ProgressBar.jsx
diff --git a/tgui/packages/tgui/components/RestrictedInput.js b/tgui/packages/tgui/components/RestrictedInput.jsx
similarity index 100%
rename from tgui/packages/tgui/components/RestrictedInput.js
rename to tgui/packages/tgui/components/RestrictedInput.jsx
diff --git a/tgui/packages/tgui/components/RoundGauge.js b/tgui/packages/tgui/components/RoundGauge.jsx
similarity index 100%
rename from tgui/packages/tgui/components/RoundGauge.js
rename to tgui/packages/tgui/components/RoundGauge.jsx
diff --git a/tgui/packages/tgui/components/Slider.js b/tgui/packages/tgui/components/Slider.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Slider.js
rename to tgui/packages/tgui/components/Slider.jsx
diff --git a/tgui/packages/tgui/components/Table.js b/tgui/packages/tgui/components/Table.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Table.js
rename to tgui/packages/tgui/components/Table.jsx
diff --git a/tgui/packages/tgui/components/Tabs.js b/tgui/packages/tgui/components/Tabs.jsx
similarity index 100%
rename from tgui/packages/tgui/components/Tabs.js
rename to tgui/packages/tgui/components/Tabs.jsx
diff --git a/tgui/packages/tgui/components/TextArea.js b/tgui/packages/tgui/components/TextArea.jsx
similarity index 100%
rename from tgui/packages/tgui/components/TextArea.js
rename to tgui/packages/tgui/components/TextArea.jsx
diff --git a/tgui/packages/tgui/components/TimeDisplay.js b/tgui/packages/tgui/components/TimeDisplay.jsx
similarity index 100%
rename from tgui/packages/tgui/components/TimeDisplay.js
rename to tgui/packages/tgui/components/TimeDisplay.jsx
diff --git a/tgui/packages/tgui/components/index.js b/tgui/packages/tgui/components/index.ts
similarity index 100%
rename from tgui/packages/tgui/components/index.js
rename to tgui/packages/tgui/components/index.ts
diff --git a/tgui/packages/tgui/debug/KitchenSink.js b/tgui/packages/tgui/debug/KitchenSink.jsx
similarity index 100%
rename from tgui/packages/tgui/debug/KitchenSink.js
rename to tgui/packages/tgui/debug/KitchenSink.jsx
diff --git a/tgui/packages/tgui/debug/index.js b/tgui/packages/tgui/debug/index.ts
similarity index 100%
rename from tgui/packages/tgui/debug/index.js
rename to tgui/packages/tgui/debug/index.ts
diff --git a/tgui/packages/tgui/interfaces/AbductorConsole.js b/tgui/packages/tgui/interfaces/AbductorConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AbductorConsole.js
rename to tgui/packages/tgui/interfaces/AbductorConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/Achievements.js b/tgui/packages/tgui/interfaces/Achievements.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Achievements.js
rename to tgui/packages/tgui/interfaces/Achievements.jsx
diff --git a/tgui/packages/tgui/interfaces/AdminFax.js b/tgui/packages/tgui/interfaces/AdminFax.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AdminFax.js
rename to tgui/packages/tgui/interfaces/AdminFax.jsx
diff --git a/tgui/packages/tgui/interfaces/AdminPDA.js b/tgui/packages/tgui/interfaces/AdminPDA.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AdminPDA.js
rename to tgui/packages/tgui/interfaces/AdminPDA.jsx
diff --git a/tgui/packages/tgui/interfaces/AiAirlock.js b/tgui/packages/tgui/interfaces/AiAirlock.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AiAirlock.js
rename to tgui/packages/tgui/interfaces/AiAirlock.jsx
diff --git a/tgui/packages/tgui/interfaces/AmmoWorkbench.js b/tgui/packages/tgui/interfaces/AmmoWorkbench.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AmmoWorkbench.js
rename to tgui/packages/tgui/interfaces/AmmoWorkbench.jsx
diff --git a/tgui/packages/tgui/interfaces/AnomalyRefinery.js b/tgui/packages/tgui/interfaces/AnomalyRefinery.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AnomalyRefinery.js
rename to tgui/packages/tgui/interfaces/AnomalyRefinery.jsx
diff --git a/tgui/packages/tgui/interfaces/AntagInfoSentient.js b/tgui/packages/tgui/interfaces/AntagInfoSentient.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AntagInfoSentient.js
rename to tgui/packages/tgui/interfaces/AntagInfoSentient.jsx
diff --git a/tgui/packages/tgui/interfaces/AntagInfoShade.js b/tgui/packages/tgui/interfaces/AntagInfoShade.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AntagInfoShade.js
rename to tgui/packages/tgui/interfaces/AntagInfoShade.jsx
diff --git a/tgui/packages/tgui/interfaces/Apc.js b/tgui/packages/tgui/interfaces/Apc.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Apc.js
rename to tgui/packages/tgui/interfaces/Apc.jsx
diff --git a/tgui/packages/tgui/interfaces/ApcControl.js b/tgui/packages/tgui/interfaces/ApcControl.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ApcControl.js
rename to tgui/packages/tgui/interfaces/ApcControl.jsx
diff --git a/tgui/packages/tgui/interfaces/ArmamentStation.js b/tgui/packages/tgui/interfaces/ArmamentStation.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ArmamentStation.js
rename to tgui/packages/tgui/interfaces/ArmamentStation.jsx
diff --git a/tgui/packages/tgui/interfaces/AtmosControlPanel.js b/tgui/packages/tgui/interfaces/AtmosControlPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/AtmosControlPanel.js
rename to tgui/packages/tgui/interfaces/AtmosControlPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/BorerChem.js b/tgui/packages/tgui/interfaces/BorerChem.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/BorerChem.js
rename to tgui/packages/tgui/interfaces/BorerChem.jsx
diff --git a/tgui/packages/tgui/interfaces/BorgPanel.js b/tgui/packages/tgui/interfaces/BorgPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/BorgPanel.js
rename to tgui/packages/tgui/interfaces/BorgPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/Canister.js b/tgui/packages/tgui/interfaces/Canister.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Canister.js
rename to tgui/packages/tgui/interfaces/Canister.jsx
diff --git a/tgui/packages/tgui/interfaces/Cargo.js b/tgui/packages/tgui/interfaces/Cargo.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Cargo.js
rename to tgui/packages/tgui/interfaces/Cargo.jsx
diff --git a/tgui/packages/tgui/interfaces/CargoImportConsole.js b/tgui/packages/tgui/interfaces/CargoImportConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CargoImportConsole.js
rename to tgui/packages/tgui/interfaces/CargoImportConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/CentcomPodLauncher.js b/tgui/packages/tgui/interfaces/CentcomPodLauncher.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CentcomPodLauncher.js
rename to tgui/packages/tgui/interfaces/CentcomPodLauncher.jsx
diff --git a/tgui/packages/tgui/interfaces/ChameleonCard.js b/tgui/packages/tgui/interfaces/ChameleonCard.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ChameleonCard.js
rename to tgui/packages/tgui/interfaces/ChameleonCard.jsx
diff --git a/tgui/packages/tgui/interfaces/Changelog.js b/tgui/packages/tgui/interfaces/Changelog.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Changelog.js
rename to tgui/packages/tgui/interfaces/Changelog.jsx
diff --git a/tgui/packages/tgui/interfaces/ChemHeater.js b/tgui/packages/tgui/interfaces/ChemHeater.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ChemHeater.js
rename to tgui/packages/tgui/interfaces/ChemHeater.jsx
diff --git a/tgui/packages/tgui/interfaces/ChemPress.js b/tgui/packages/tgui/interfaces/ChemPress.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ChemPress.js
rename to tgui/packages/tgui/interfaces/ChemPress.jsx
diff --git a/tgui/packages/tgui/interfaces/ChemRecipeDebug.js b/tgui/packages/tgui/interfaces/ChemRecipeDebug.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ChemRecipeDebug.js
rename to tgui/packages/tgui/interfaces/ChemRecipeDebug.jsx
diff --git a/tgui/packages/tgui/interfaces/CircuitModule.js b/tgui/packages/tgui/interfaces/CircuitModule.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CircuitModule.js
rename to tgui/packages/tgui/interfaces/CircuitModule.jsx
diff --git a/tgui/packages/tgui/interfaces/CivCargoHoldTerminal.js b/tgui/packages/tgui/interfaces/CivCargoHoldTerminal.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CivCargoHoldTerminal.js
rename to tgui/packages/tgui/interfaces/CivCargoHoldTerminal.jsx
diff --git a/tgui/packages/tgui/interfaces/ClockworkSlab.js b/tgui/packages/tgui/interfaces/ClockworkSlab.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ClockworkSlab.js
rename to tgui/packages/tgui/interfaces/ClockworkSlab.jsx
diff --git a/tgui/packages/tgui/interfaces/CommandReportConsole.js b/tgui/packages/tgui/interfaces/CommandReportConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CommandReportConsole.js
rename to tgui/packages/tgui/interfaces/CommandReportConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/CommunicationsConsole.js b/tgui/packages/tgui/interfaces/CommunicationsConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CommunicationsConsole.js
rename to tgui/packages/tgui/interfaces/CommunicationsConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/CrewConsole.js b/tgui/packages/tgui/interfaces/CrewConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CrewConsole.js
rename to tgui/packages/tgui/interfaces/CrewConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/CrewConsoleSkyrat.js b/tgui/packages/tgui/interfaces/CrewConsoleSkyrat.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CrewConsoleSkyrat.js
rename to tgui/packages/tgui/interfaces/CrewConsoleSkyrat.jsx
diff --git a/tgui/packages/tgui/interfaces/CrewConsoleSkyratBlueshield.js b/tgui/packages/tgui/interfaces/CrewConsoleSkyratBlueshield.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CrewConsoleSkyratBlueshield.js
rename to tgui/packages/tgui/interfaces/CrewConsoleSkyratBlueshield.jsx
diff --git a/tgui/packages/tgui/interfaces/CrewManifest.js b/tgui/packages/tgui/interfaces/CrewManifest.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CrewManifest.js
rename to tgui/packages/tgui/interfaces/CrewManifest.jsx
diff --git a/tgui/packages/tgui/interfaces/Cryo.js b/tgui/packages/tgui/interfaces/Cryo.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Cryo.js
rename to tgui/packages/tgui/interfaces/Cryo.jsx
diff --git a/tgui/packages/tgui/interfaces/CryopodConsole.js b/tgui/packages/tgui/interfaces/CryopodConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CryopodConsole.js
rename to tgui/packages/tgui/interfaces/CryopodConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/CyborgBootDebug.js b/tgui/packages/tgui/interfaces/CyborgBootDebug.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/CyborgBootDebug.js
rename to tgui/packages/tgui/interfaces/CyborgBootDebug.jsx
diff --git a/tgui/packages/tgui/interfaces/DisposalUnit.js b/tgui/packages/tgui/interfaces/DisposalUnit.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DisposalUnit.js
rename to tgui/packages/tgui/interfaces/DisposalUnit.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleEnzymes.js b/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleEnzymes.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleEnzymes.js
rename to tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleEnzymes.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.js b/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.js
rename to tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleSequencer.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleStorage.js b/tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleStorage.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleStorage.js
rename to tgui/packages/tgui/interfaces/DnaConsole/DnaConsoleStorage.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/DnaScanner.js b/tgui/packages/tgui/interfaces/DnaConsole/DnaScanner.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/DnaScanner.js
rename to tgui/packages/tgui/interfaces/DnaConsole/DnaScanner.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/GeneticMakeupInfo.js b/tgui/packages/tgui/interfaces/DnaConsole/GeneticMakeupInfo.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/GeneticMakeupInfo.js
rename to tgui/packages/tgui/interfaces/DnaConsole/GeneticMakeupInfo.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/MutationInfo.js b/tgui/packages/tgui/interfaces/DnaConsole/MutationInfo.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/MutationInfo.js
rename to tgui/packages/tgui/interfaces/DnaConsole/MutationInfo.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/constants.js b/tgui/packages/tgui/interfaces/DnaConsole/constants.ts
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/constants.js
rename to tgui/packages/tgui/interfaces/DnaConsole/constants.ts
diff --git a/tgui/packages/tgui/interfaces/DnaConsole/index.js b/tgui/packages/tgui/interfaces/DnaConsole/index.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaConsole/index.js
rename to tgui/packages/tgui/interfaces/DnaConsole/index.jsx
diff --git a/tgui/packages/tgui/interfaces/DnaVault.js b/tgui/packages/tgui/interfaces/DnaVault.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DnaVault.js
rename to tgui/packages/tgui/interfaces/DnaVault.jsx
diff --git a/tgui/packages/tgui/interfaces/DopplerArray.js b/tgui/packages/tgui/interfaces/DopplerArray.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/DopplerArray.js
rename to tgui/packages/tgui/interfaces/DopplerArray.jsx
diff --git a/tgui/packages/tgui/interfaces/Electropack.js b/tgui/packages/tgui/interfaces/Electropack.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Electropack.js
rename to tgui/packages/tgui/interfaces/Electropack.jsx
diff --git a/tgui/packages/tgui/interfaces/EmergencyShuttleConsole.js b/tgui/packages/tgui/interfaces/EmergencyShuttleConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/EmergencyShuttleConsole.js
rename to tgui/packages/tgui/interfaces/EmergencyShuttleConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/EngravedMessage.js b/tgui/packages/tgui/interfaces/EngravedMessage.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/EngravedMessage.js
rename to tgui/packages/tgui/interfaces/EngravedMessage.jsx
diff --git a/tgui/packages/tgui/interfaces/EventPanel.js b/tgui/packages/tgui/interfaces/EventPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/EventPanel.js
rename to tgui/packages/tgui/interfaces/EventPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/ExaminePanel.js b/tgui/packages/tgui/interfaces/ExaminePanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ExaminePanel.js
rename to tgui/packages/tgui/interfaces/ExaminePanel.jsx
diff --git a/tgui/packages/tgui/interfaces/ExosuitControlConsole.js b/tgui/packages/tgui/interfaces/ExosuitControlConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ExosuitControlConsole.js
rename to tgui/packages/tgui/interfaces/ExosuitControlConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/ExperimentConfigure.js b/tgui/packages/tgui/interfaces/ExperimentConfigure.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ExperimentConfigure.js
rename to tgui/packages/tgui/interfaces/ExperimentConfigure.jsx
diff --git a/tgui/packages/tgui/interfaces/Filteriffic.js b/tgui/packages/tgui/interfaces/Filteriffic.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Filteriffic.js
rename to tgui/packages/tgui/interfaces/Filteriffic.jsx
diff --git a/tgui/packages/tgui/interfaces/Gateway.js b/tgui/packages/tgui/interfaces/Gateway.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Gateway.js
rename to tgui/packages/tgui/interfaces/Gateway.jsx
diff --git a/tgui/packages/tgui/interfaces/GhostPoolProtection.js b/tgui/packages/tgui/interfaces/GhostPoolProtection.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/GhostPoolProtection.js
rename to tgui/packages/tgui/interfaces/GhostPoolProtection.jsx
diff --git a/tgui/packages/tgui/interfaces/Gps.js b/tgui/packages/tgui/interfaces/Gps.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Gps.js
rename to tgui/packages/tgui/interfaces/Gps.jsx
diff --git a/tgui/packages/tgui/interfaces/GravityGenerator.js b/tgui/packages/tgui/interfaces/GravityGenerator.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/GravityGenerator.js
rename to tgui/packages/tgui/interfaces/GravityGenerator.jsx
diff --git a/tgui/packages/tgui/interfaces/GulagTeleporterConsole.js b/tgui/packages/tgui/interfaces/GulagTeleporterConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/GulagTeleporterConsole.js
rename to tgui/packages/tgui/interfaces/GulagTeleporterConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/Holodeck.js b/tgui/packages/tgui/interfaces/Holodeck.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Holodeck.js
rename to tgui/packages/tgui/interfaces/Holodeck.jsx
diff --git a/tgui/packages/tgui/interfaces/Holopad.js b/tgui/packages/tgui/interfaces/Holopad.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Holopad.js
rename to tgui/packages/tgui/interfaces/Holopad.jsx
diff --git a/tgui/packages/tgui/interfaces/HypnoChair.js b/tgui/packages/tgui/interfaces/HypnoChair.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/HypnoChair.js
rename to tgui/packages/tgui/interfaces/HypnoChair.jsx
diff --git a/tgui/packages/tgui/interfaces/ImplantChair.js b/tgui/packages/tgui/interfaces/ImplantChair.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ImplantChair.js
rename to tgui/packages/tgui/interfaces/ImplantChair.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/BasicInput.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/CircuitInfo.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/ComponentMenu.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/ComponentMenu.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/ComponentMenu.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/ComponentMenu.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayComponent.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayComponent.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayComponent.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayComponent.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/DisplayName.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/FundamentalTypes.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/ObjectComponent.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/Port.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/Port.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/Port.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/Port.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/VariableMenu.jsx
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/constants.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/constants.ts
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/constants.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/constants.ts
diff --git a/tgui/packages/tgui/interfaces/IntegratedCircuit/index.js b/tgui/packages/tgui/interfaces/IntegratedCircuit/index.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/IntegratedCircuit/index.js
rename to tgui/packages/tgui/interfaces/IntegratedCircuit/index.jsx
diff --git a/tgui/packages/tgui/interfaces/Intellicard.js b/tgui/packages/tgui/interfaces/Intellicard.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Intellicard.js
rename to tgui/packages/tgui/interfaces/Intellicard.jsx
diff --git a/tgui/packages/tgui/interfaces/Interview.js b/tgui/packages/tgui/interfaces/Interview.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Interview.js
rename to tgui/packages/tgui/interfaces/Interview.jsx
diff --git a/tgui/packages/tgui/interfaces/InterviewManager.js b/tgui/packages/tgui/interfaces/InterviewManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/InterviewManager.js
rename to tgui/packages/tgui/interfaces/InterviewManager.jsx
diff --git a/tgui/packages/tgui/interfaces/Jukebox.js b/tgui/packages/tgui/interfaces/Jukebox.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Jukebox.js
rename to tgui/packages/tgui/interfaces/Jukebox.jsx
diff --git a/tgui/packages/tgui/interfaces/KeycardAuth.js b/tgui/packages/tgui/interfaces/KeycardAuth.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/KeycardAuth.js
rename to tgui/packages/tgui/interfaces/KeycardAuth.jsx
diff --git a/tgui/packages/tgui/interfaces/LaborClaimConsole.js b/tgui/packages/tgui/interfaces/LaborClaimConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LaborClaimConsole.js
rename to tgui/packages/tgui/interfaces/LaborClaimConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/LanguageMenu.js b/tgui/packages/tgui/interfaces/LanguageMenu.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LanguageMenu.js
rename to tgui/packages/tgui/interfaces/LanguageMenu.jsx
diff --git a/tgui/packages/tgui/interfaces/LaunchpadConsole.js b/tgui/packages/tgui/interfaces/LaunchpadConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LaunchpadConsole.js
rename to tgui/packages/tgui/interfaces/LaunchpadConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/LibraryConsole.js b/tgui/packages/tgui/interfaces/LibraryConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LibraryConsole.js
rename to tgui/packages/tgui/interfaces/LibraryConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/LibraryScanner.js b/tgui/packages/tgui/interfaces/LibraryScanner.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LibraryScanner.js
rename to tgui/packages/tgui/interfaces/LibraryScanner.jsx
diff --git a/tgui/packages/tgui/interfaces/LibraryVisitor.js b/tgui/packages/tgui/interfaces/LibraryVisitor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LibraryVisitor.js
rename to tgui/packages/tgui/interfaces/LibraryVisitor.jsx
diff --git a/tgui/packages/tgui/interfaces/Limbgrower.js b/tgui/packages/tgui/interfaces/Limbgrower.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Limbgrower.js
rename to tgui/packages/tgui/interfaces/Limbgrower.jsx
diff --git a/tgui/packages/tgui/interfaces/LoadoutManager.js b/tgui/packages/tgui/interfaces/LoadoutManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LoadoutManager.js
rename to tgui/packages/tgui/interfaces/LoadoutManager.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/CallModal.js b/tgui/packages/tgui/interfaces/LuaEditor/CallModal.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/CallModal.js
rename to tgui/packages/tgui/interfaces/LuaEditor/CallModal.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.js b/tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.js
rename to tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/ListMapper.js b/tgui/packages/tgui/interfaces/LuaEditor/ListMapper.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/ListMapper.js
rename to tgui/packages/tgui/interfaces/LuaEditor/ListMapper.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/Log.js b/tgui/packages/tgui/interfaces/LuaEditor/Log.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/Log.js
rename to tgui/packages/tgui/interfaces/LuaEditor/Log.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.js b/tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.js
rename to tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/TaskManager.js b/tgui/packages/tgui/interfaces/LuaEditor/TaskManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/TaskManager.js
rename to tgui/packages/tgui/interfaces/LuaEditor/TaskManager.jsx
diff --git a/tgui/packages/tgui/interfaces/LuaEditor/index.js b/tgui/packages/tgui/interfaces/LuaEditor/index.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/LuaEditor/index.js
rename to tgui/packages/tgui/interfaces/LuaEditor/index.jsx
diff --git a/tgui/packages/tgui/interfaces/MODpaint.js b/tgui/packages/tgui/interfaces/MODpaint.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MODpaint.js
rename to tgui/packages/tgui/interfaces/MODpaint.jsx
diff --git a/tgui/packages/tgui/interfaces/MalfunctionModulePicker.js b/tgui/packages/tgui/interfaces/MalfunctionModulePicker.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MalfunctionModulePicker.js
rename to tgui/packages/tgui/interfaces/MalfunctionModulePicker.jsx
diff --git a/tgui/packages/tgui/interfaces/MassDriverControl.js b/tgui/packages/tgui/interfaces/MassDriverControl.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MassDriverControl.js
rename to tgui/packages/tgui/interfaces/MassDriverControl.jsx
diff --git a/tgui/packages/tgui/interfaces/MassSpec.js b/tgui/packages/tgui/interfaces/MassSpec.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MassSpec.js
rename to tgui/packages/tgui/interfaces/MassSpec.jsx
diff --git a/tgui/packages/tgui/interfaces/MechBayPowerConsole.js b/tgui/packages/tgui/interfaces/MechBayPowerConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MechBayPowerConsole.js
rename to tgui/packages/tgui/interfaces/MechBayPowerConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/MechpadConsole.js b/tgui/packages/tgui/interfaces/MechpadConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MechpadConsole.js
rename to tgui/packages/tgui/interfaces/MechpadConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/MedicalKiosk.js b/tgui/packages/tgui/interfaces/MedicalKiosk.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MedicalKiosk.js
rename to tgui/packages/tgui/interfaces/MedicalKiosk.jsx
diff --git a/tgui/packages/tgui/interfaces/MemoryPanel.js b/tgui/packages/tgui/interfaces/MemoryPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MemoryPanel.js
rename to tgui/packages/tgui/interfaces/MemoryPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/MicrofusionGunControl.js b/tgui/packages/tgui/interfaces/MicrofusionGunControl.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MicrofusionGunControl.js
rename to tgui/packages/tgui/interfaces/MicrofusionGunControl.jsx
diff --git a/tgui/packages/tgui/interfaces/Microscope.js b/tgui/packages/tgui/interfaces/Microscope.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Microscope.js
rename to tgui/packages/tgui/interfaces/Microscope.jsx
diff --git a/tgui/packages/tgui/interfaces/MilkingMachine.js b/tgui/packages/tgui/interfaces/MilkingMachine.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/MilkingMachine.js
rename to tgui/packages/tgui/interfaces/MilkingMachine.jsx
diff --git a/tgui/packages/tgui/interfaces/Mule.js b/tgui/packages/tgui/interfaces/Mule.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Mule.js
rename to tgui/packages/tgui/interfaces/Mule.jsx
diff --git a/tgui/packages/tgui/interfaces/Newscaster.js b/tgui/packages/tgui/interfaces/Newscaster.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Newscaster.js
rename to tgui/packages/tgui/interfaces/Newscaster.jsx
diff --git a/tgui/packages/tgui/interfaces/NifPanel.js b/tgui/packages/tgui/interfaces/NifPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NifPanel.js
rename to tgui/packages/tgui/interfaces/NifPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/NifSoulPoem.js b/tgui/packages/tgui/interfaces/NifSoulPoem.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NifSoulPoem.js
rename to tgui/packages/tgui/interfaces/NifSoulPoem.jsx
diff --git a/tgui/packages/tgui/interfaces/NightmareInfo.js b/tgui/packages/tgui/interfaces/NightmareInfo.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NightmareInfo.js
rename to tgui/packages/tgui/interfaces/NightmareInfo.jsx
diff --git a/tgui/packages/tgui/interfaces/NotificationPreferences.js b/tgui/packages/tgui/interfaces/NotificationPreferences.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NotificationPreferences.js
rename to tgui/packages/tgui/interfaces/NotificationPreferences.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosArcade.js b/tgui/packages/tgui/interfaces/NtosArcade.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosArcade.js
rename to tgui/packages/tgui/interfaces/NtosArcade.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosCamera.js b/tgui/packages/tgui/interfaces/NtosCamera.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosCamera.js
rename to tgui/packages/tgui/interfaces/NtosCamera.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosCard.js b/tgui/packages/tgui/interfaces/NtosCard.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosCard.js
rename to tgui/packages/tgui/interfaces/NtosCard.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosCargo.tsx b/tgui/packages/tgui/interfaces/NtosCargo.tsx
index b5009c0aeaf..b478e42e5ae 100644
--- a/tgui/packages/tgui/interfaces/NtosCargo.tsx
+++ b/tgui/packages/tgui/interfaces/NtosCargo.tsx
@@ -1,4 +1,4 @@
-import { CargoContent } from './Cargo.js';
+import { CargoContent } from './Cargo';
import { NtosWindow } from '../layouts';
export const NtosCargo = (props, context) => {
diff --git a/tgui/packages/tgui/interfaces/NtosCrewManifest.js b/tgui/packages/tgui/interfaces/NtosCrewManifest.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosCrewManifest.js
rename to tgui/packages/tgui/interfaces/NtosCrewManifest.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosCyborgRemoteMonitor.js b/tgui/packages/tgui/interfaces/NtosCyborgRemoteMonitor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosCyborgRemoteMonitor.js
rename to tgui/packages/tgui/interfaces/NtosCyborgRemoteMonitor.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosEmojipedia.js b/tgui/packages/tgui/interfaces/NtosEmojipedia.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosEmojipedia.js
rename to tgui/packages/tgui/interfaces/NtosEmojipedia.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosFileManager.js b/tgui/packages/tgui/interfaces/NtosFileManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosFileManager.js
rename to tgui/packages/tgui/interfaces/NtosFileManager.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosJobManager.js b/tgui/packages/tgui/interfaces/NtosJobManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosJobManager.js
rename to tgui/packages/tgui/interfaces/NtosJobManager.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosMODsuit.js b/tgui/packages/tgui/interfaces/NtosMODsuit.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosMODsuit.js
rename to tgui/packages/tgui/interfaces/NtosMODsuit.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosMain.js b/tgui/packages/tgui/interfaces/NtosMain.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosMain.js
rename to tgui/packages/tgui/interfaces/NtosMain.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosNetChat.js b/tgui/packages/tgui/interfaces/NtosNetChat.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosNetChat.js
rename to tgui/packages/tgui/interfaces/NtosNetChat.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosNetDos.js b/tgui/packages/tgui/interfaces/NtosNetDos.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosNetDos.js
rename to tgui/packages/tgui/interfaces/NtosNetDos.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosNetDownloader.js b/tgui/packages/tgui/interfaces/NtosNetDownloader.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosNetDownloader.js
rename to tgui/packages/tgui/interfaces/NtosNetDownloader.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosNetMonitor.js b/tgui/packages/tgui/interfaces/NtosNetMonitor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosNetMonitor.js
rename to tgui/packages/tgui/interfaces/NtosNetMonitor.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosNewsArchive.js b/tgui/packages/tgui/interfaces/NtosNewsArchive.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosNewsArchive.js
rename to tgui/packages/tgui/interfaces/NtosNewsArchive.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosNifsoftCatalog.js b/tgui/packages/tgui/interfaces/NtosNifsoftCatalog.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosNifsoftCatalog.js
rename to tgui/packages/tgui/interfaces/NtosNifsoftCatalog.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosPhysScanner.js b/tgui/packages/tgui/interfaces/NtosPhysScanner.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosPhysScanner.js
rename to tgui/packages/tgui/interfaces/NtosPhysScanner.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosPortraitPrinter.js b/tgui/packages/tgui/interfaces/NtosPortraitPrinter.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosPortraitPrinter.js
rename to tgui/packages/tgui/interfaces/NtosPortraitPrinter.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosRecords.js b/tgui/packages/tgui/interfaces/NtosRecords.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosRecords.js
rename to tgui/packages/tgui/interfaces/NtosRecords.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosRoboControl.js b/tgui/packages/tgui/interfaces/NtosRoboControl.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosRoboControl.js
rename to tgui/packages/tgui/interfaces/NtosRoboControl.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosRobotact.js b/tgui/packages/tgui/interfaces/NtosRobotact.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosRobotact.js
rename to tgui/packages/tgui/interfaces/NtosRobotact.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosScipaper.js b/tgui/packages/tgui/interfaces/NtosScipaper.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosScipaper.js
rename to tgui/packages/tgui/interfaces/NtosScipaper.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosSkillTracker.js b/tgui/packages/tgui/interfaces/NtosSkillTracker.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NtosSkillTracker.js
rename to tgui/packages/tgui/interfaces/NtosSkillTracker.jsx
diff --git a/tgui/packages/tgui/interfaces/NtosTechweb.tsx b/tgui/packages/tgui/interfaces/NtosTechweb.tsx
index 844198c6a1f..6bec8c9b0bb 100644
--- a/tgui/packages/tgui/interfaces/NtosTechweb.tsx
+++ b/tgui/packages/tgui/interfaces/NtosTechweb.tsx
@@ -1,4 +1,4 @@
-import { AppTechweb } from './Techweb.js';
+import { AppTechweb } from './Techweb';
export const NtosTechweb = (props, context) => {
return ;
diff --git a/tgui/packages/tgui/interfaces/NuclearBomb.js b/tgui/packages/tgui/interfaces/NuclearBomb.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/NuclearBomb.js
rename to tgui/packages/tgui/interfaces/NuclearBomb.jsx
diff --git a/tgui/packages/tgui/interfaces/OperatingComputer.js b/tgui/packages/tgui/interfaces/OperatingComputer.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/OperatingComputer.js
rename to tgui/packages/tgui/interfaces/OperatingComputer.jsx
diff --git a/tgui/packages/tgui/interfaces/OpposingForcePanel.js b/tgui/packages/tgui/interfaces/OpposingForcePanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/OpposingForcePanel.js
rename to tgui/packages/tgui/interfaces/OpposingForcePanel.jsx
diff --git a/tgui/packages/tgui/interfaces/OreRedemptionMachine.js b/tgui/packages/tgui/interfaces/OreRedemptionMachine.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/OreRedemptionMachine.js
rename to tgui/packages/tgui/interfaces/OreRedemptionMachine.jsx
diff --git a/tgui/packages/tgui/interfaces/OrionGame.js b/tgui/packages/tgui/interfaces/OrionGame.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/OrionGame.js
rename to tgui/packages/tgui/interfaces/OrionGame.jsx
diff --git a/tgui/packages/tgui/interfaces/OutfitEditor.js b/tgui/packages/tgui/interfaces/OutfitEditor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/OutfitEditor.js
rename to tgui/packages/tgui/interfaces/OutfitEditor.jsx
diff --git a/tgui/packages/tgui/interfaces/OutfitManager.js b/tgui/packages/tgui/interfaces/OutfitManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/OutfitManager.js
rename to tgui/packages/tgui/interfaces/OutfitManager.jsx
diff --git a/tgui/packages/tgui/interfaces/PaintingMachine.js b/tgui/packages/tgui/interfaces/PaintingMachine.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/PaintingMachine.js
rename to tgui/packages/tgui/interfaces/PaintingMachine.jsx
diff --git a/tgui/packages/tgui/interfaces/ParticleAccelerator.js b/tgui/packages/tgui/interfaces/ParticleAccelerator.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ParticleAccelerator.js
rename to tgui/packages/tgui/interfaces/ParticleAccelerator.jsx
diff --git a/tgui/packages/tgui/interfaces/Photocopier.js b/tgui/packages/tgui/interfaces/Photocopier.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Photocopier.js
rename to tgui/packages/tgui/interfaces/Photocopier.jsx
diff --git a/tgui/packages/tgui/interfaces/PortableGenerator.js b/tgui/packages/tgui/interfaces/PortableGenerator.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/PortableGenerator.js
rename to tgui/packages/tgui/interfaces/PortableGenerator.jsx
diff --git a/tgui/packages/tgui/interfaces/PortablePump.js b/tgui/packages/tgui/interfaces/PortablePump.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/PortablePump.js
rename to tgui/packages/tgui/interfaces/PortablePump.jsx
diff --git a/tgui/packages/tgui/interfaces/PortableTurret.js b/tgui/packages/tgui/interfaces/PortableTurret.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/PortableTurret.js
rename to tgui/packages/tgui/interfaces/PortableTurret.jsx
diff --git a/tgui/packages/tgui/interfaces/PortraitPicker.js b/tgui/packages/tgui/interfaces/PortraitPicker.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/PortraitPicker.js
rename to tgui/packages/tgui/interfaces/PortraitPicker.jsx
diff --git a/tgui/packages/tgui/interfaces/PowerMonitor.js b/tgui/packages/tgui/interfaces/PowerMonitor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/PowerMonitor.js
rename to tgui/packages/tgui/interfaces/PowerMonitor.jsx
diff --git a/tgui/packages/tgui/interfaces/ProbingConsole.js b/tgui/packages/tgui/interfaces/ProbingConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ProbingConsole.js
rename to tgui/packages/tgui/interfaces/ProbingConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/ProximitySensor.js b/tgui/packages/tgui/interfaces/ProximitySensor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ProximitySensor.js
rename to tgui/packages/tgui/interfaces/ProximitySensor.jsx
diff --git a/tgui/packages/tgui/interfaces/Radio.js b/tgui/packages/tgui/interfaces/Radio.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Radio.js
rename to tgui/packages/tgui/interfaces/Radio.jsx
diff --git a/tgui/packages/tgui/interfaces/RadioactiveMicrolaser.js b/tgui/packages/tgui/interfaces/RadioactiveMicrolaser.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/RadioactiveMicrolaser.js
rename to tgui/packages/tgui/interfaces/RadioactiveMicrolaser.jsx
diff --git a/tgui/packages/tgui/interfaces/Reagents.js b/tgui/packages/tgui/interfaces/Reagents.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Reagents.js
rename to tgui/packages/tgui/interfaces/Reagents.jsx
diff --git a/tgui/packages/tgui/interfaces/RecordManifest.js b/tgui/packages/tgui/interfaces/RecordManifest.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/RecordManifest.js
rename to tgui/packages/tgui/interfaces/RecordManifest.jsx
diff --git a/tgui/packages/tgui/interfaces/ReligiousTool.js b/tgui/packages/tgui/interfaces/ReligiousTool.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ReligiousTool.js
rename to tgui/packages/tgui/interfaces/ReligiousTool.jsx
diff --git a/tgui/packages/tgui/interfaces/RemoteRobotControl.js b/tgui/packages/tgui/interfaces/RemoteRobotControl.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/RemoteRobotControl.js
rename to tgui/packages/tgui/interfaces/RemoteRobotControl.jsx
diff --git a/tgui/packages/tgui/interfaces/RequestManager.js b/tgui/packages/tgui/interfaces/RequestManager.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/RequestManager.js
rename to tgui/packages/tgui/interfaces/RequestManager.jsx
diff --git a/tgui/packages/tgui/interfaces/RoboticsControlConsole.js b/tgui/packages/tgui/interfaces/RoboticsControlConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/RoboticsControlConsole.js
rename to tgui/packages/tgui/interfaces/RoboticsControlConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/Roulette.js b/tgui/packages/tgui/interfaces/Roulette.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Roulette.js
rename to tgui/packages/tgui/interfaces/Roulette.jsx
diff --git a/tgui/packages/tgui/interfaces/Safe.js b/tgui/packages/tgui/interfaces/Safe.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Safe.js
rename to tgui/packages/tgui/interfaces/Safe.jsx
diff --git a/tgui/packages/tgui/interfaces/ScannerGate.js b/tgui/packages/tgui/interfaces/ScannerGate.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ScannerGate.js
rename to tgui/packages/tgui/interfaces/ScannerGate.jsx
diff --git a/tgui/packages/tgui/interfaces/Secrets.js b/tgui/packages/tgui/interfaces/Secrets.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Secrets.js
rename to tgui/packages/tgui/interfaces/Secrets.jsx
diff --git a/tgui/packages/tgui/interfaces/SelectEquipment.js b/tgui/packages/tgui/interfaces/SelectEquipment.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SelectEquipment.js
rename to tgui/packages/tgui/interfaces/SelectEquipment.jsx
diff --git a/tgui/packages/tgui/interfaces/SentienceFunBalloon.js b/tgui/packages/tgui/interfaces/SentienceFunBalloon.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SentienceFunBalloon.js
rename to tgui/packages/tgui/interfaces/SentienceFunBalloon.jsx
diff --git a/tgui/packages/tgui/interfaces/ServerControlPanel.js b/tgui/packages/tgui/interfaces/ServerControlPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ServerControlPanel.js
rename to tgui/packages/tgui/interfaces/ServerControlPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/ServerMonitor.js b/tgui/packages/tgui/interfaces/ServerMonitor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ServerMonitor.js
rename to tgui/packages/tgui/interfaces/ServerMonitor.jsx
diff --git a/tgui/packages/tgui/interfaces/ShuttleConsole.js b/tgui/packages/tgui/interfaces/ShuttleConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ShuttleConsole.js
rename to tgui/packages/tgui/interfaces/ShuttleConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/ShuttleManipulator.js b/tgui/packages/tgui/interfaces/ShuttleManipulator.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ShuttleManipulator.js
rename to tgui/packages/tgui/interfaces/ShuttleManipulator.jsx
diff --git a/tgui/packages/tgui/interfaces/Signalvib.js b/tgui/packages/tgui/interfaces/Signalvib.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Signalvib.js
rename to tgui/packages/tgui/interfaces/Signalvib.jsx
diff --git a/tgui/packages/tgui/interfaces/SkillPanel.js b/tgui/packages/tgui/interfaces/SkillPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SkillPanel.js
rename to tgui/packages/tgui/interfaces/SkillPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/SkillStation.js b/tgui/packages/tgui/interfaces/SkillStation.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SkillStation.js
rename to tgui/packages/tgui/interfaces/SkillStation.jsx
diff --git a/tgui/packages/tgui/interfaces/Sleeper.js b/tgui/packages/tgui/interfaces/Sleeper.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Sleeper.js
rename to tgui/packages/tgui/interfaces/Sleeper.jsx
diff --git a/tgui/packages/tgui/interfaces/SlimeBodySwapper.js b/tgui/packages/tgui/interfaces/SlimeBodySwapper.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SlimeBodySwapper.js
rename to tgui/packages/tgui/interfaces/SlimeBodySwapper.jsx
diff --git a/tgui/packages/tgui/interfaces/Smes.js b/tgui/packages/tgui/interfaces/Smes.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Smes.js
rename to tgui/packages/tgui/interfaces/Smes.jsx
diff --git a/tgui/packages/tgui/interfaces/Soulcatcher.js b/tgui/packages/tgui/interfaces/Soulcatcher.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Soulcatcher.js
rename to tgui/packages/tgui/interfaces/Soulcatcher.jsx
diff --git a/tgui/packages/tgui/interfaces/SoulcatcherUser.js b/tgui/packages/tgui/interfaces/SoulcatcherUser.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SoulcatcherUser.js
rename to tgui/packages/tgui/interfaces/SoulcatcherUser.jsx
diff --git a/tgui/packages/tgui/interfaces/SpaceHeater.js b/tgui/packages/tgui/interfaces/SpaceHeater.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SpaceHeater.js
rename to tgui/packages/tgui/interfaces/SpaceHeater.jsx
diff --git a/tgui/packages/tgui/interfaces/StackingConsole.js b/tgui/packages/tgui/interfaces/StackingConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/StackingConsole.js
rename to tgui/packages/tgui/interfaces/StackingConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/StationAlertConsole.js b/tgui/packages/tgui/interfaces/StationAlertConsole.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/StationAlertConsole.js
rename to tgui/packages/tgui/interfaces/StationAlertConsole.jsx
diff --git a/tgui/packages/tgui/interfaces/SyndContractor.js b/tgui/packages/tgui/interfaces/SyndContractor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/SyndContractor.js
rename to tgui/packages/tgui/interfaces/SyndContractor.jsx
diff --git a/tgui/packages/tgui/interfaces/Tank.js b/tgui/packages/tgui/interfaces/Tank.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Tank.js
rename to tgui/packages/tgui/interfaces/Tank.jsx
diff --git a/tgui/packages/tgui/interfaces/TankCompressor.js b/tgui/packages/tgui/interfaces/TankCompressor.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TankCompressor.js
rename to tgui/packages/tgui/interfaces/TankCompressor.jsx
diff --git a/tgui/packages/tgui/interfaces/TankDispenser.js b/tgui/packages/tgui/interfaces/TankDispenser.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TankDispenser.js
rename to tgui/packages/tgui/interfaces/TankDispenser.jsx
diff --git a/tgui/packages/tgui/interfaces/Techweb.js b/tgui/packages/tgui/interfaces/Techweb.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Techweb.js
rename to tgui/packages/tgui/interfaces/Techweb.jsx
diff --git a/tgui/packages/tgui/interfaces/Telecomms.js b/tgui/packages/tgui/interfaces/Telecomms.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Telecomms.js
rename to tgui/packages/tgui/interfaces/Telecomms.jsx
diff --git a/tgui/packages/tgui/interfaces/Teleporter.js b/tgui/packages/tgui/interfaces/Teleporter.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Teleporter.js
rename to tgui/packages/tgui/interfaces/Teleporter.jsx
diff --git a/tgui/packages/tgui/interfaces/ThermoMachine.js b/tgui/packages/tgui/interfaces/ThermoMachine.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/ThermoMachine.js
rename to tgui/packages/tgui/interfaces/ThermoMachine.jsx
diff --git a/tgui/packages/tgui/interfaces/Thermometer.js b/tgui/packages/tgui/interfaces/Thermometer.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Thermometer.js
rename to tgui/packages/tgui/interfaces/Thermometer.jsx
diff --git a/tgui/packages/tgui/interfaces/TimeClock.js b/tgui/packages/tgui/interfaces/TimeClock.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TimeClock.js
rename to tgui/packages/tgui/interfaces/TimeClock.jsx
diff --git a/tgui/packages/tgui/interfaces/TrackedPlaytime.js b/tgui/packages/tgui/interfaces/TrackedPlaytime.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TrackedPlaytime.js
rename to tgui/packages/tgui/interfaces/TrackedPlaytime.jsx
diff --git a/tgui/packages/tgui/interfaces/TramControl.js b/tgui/packages/tgui/interfaces/TramControl.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TramControl.js
rename to tgui/packages/tgui/interfaces/TramControl.jsx
diff --git a/tgui/packages/tgui/interfaces/TransferValve.js b/tgui/packages/tgui/interfaces/TransferValve.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TransferValve.js
rename to tgui/packages/tgui/interfaces/TransferValve.jsx
diff --git a/tgui/packages/tgui/interfaces/TrophyAdminPanel.js b/tgui/packages/tgui/interfaces/TrophyAdminPanel.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/TrophyAdminPanel.js
rename to tgui/packages/tgui/interfaces/TrophyAdminPanel.jsx
diff --git a/tgui/packages/tgui/interfaces/Trophycase.js b/tgui/packages/tgui/interfaces/Trophycase.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/Trophycase.js
rename to tgui/packages/tgui/interfaces/Trophycase.jsx
diff --git a/tgui/packages/tgui/interfaces/common/AccessConfig.js b/tgui/packages/tgui/interfaces/common/AccessConfig.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/AccessConfig.js
rename to tgui/packages/tgui/interfaces/common/AccessConfig.jsx
diff --git a/tgui/packages/tgui/interfaces/common/AccessList.js b/tgui/packages/tgui/interfaces/common/AccessList.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/AccessList.js
rename to tgui/packages/tgui/interfaces/common/AccessList.jsx
diff --git a/tgui/packages/tgui/interfaces/common/BeakerContents.js b/tgui/packages/tgui/interfaces/common/BeakerContents.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/BeakerContents.js
rename to tgui/packages/tgui/interfaces/common/BeakerContents.jsx
diff --git a/tgui/packages/tgui/interfaces/common/InterfaceLockNoticeBox.js b/tgui/packages/tgui/interfaces/common/InterfaceLockNoticeBox.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/InterfaceLockNoticeBox.js
rename to tgui/packages/tgui/interfaces/common/InterfaceLockNoticeBox.jsx
diff --git a/tgui/packages/tgui/interfaces/common/PortableAtmos.js b/tgui/packages/tgui/interfaces/common/PortableAtmos.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/PortableAtmos.js
rename to tgui/packages/tgui/interfaces/common/PortableAtmos.jsx
diff --git a/tgui/packages/tgui/interfaces/common/ReagentLookup.js b/tgui/packages/tgui/interfaces/common/ReagentLookup.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/ReagentLookup.js
rename to tgui/packages/tgui/interfaces/common/ReagentLookup.jsx
diff --git a/tgui/packages/tgui/interfaces/common/RecipeLookup.js b/tgui/packages/tgui/interfaces/common/RecipeLookup.jsx
similarity index 100%
rename from tgui/packages/tgui/interfaces/common/RecipeLookup.js
rename to tgui/packages/tgui/interfaces/common/RecipeLookup.jsx
diff --git a/tgui/packages/tgui/layouts/Layout.js b/tgui/packages/tgui/layouts/Layout.jsx
similarity index 100%
rename from tgui/packages/tgui/layouts/Layout.js
rename to tgui/packages/tgui/layouts/Layout.jsx
diff --git a/tgui/packages/tgui/layouts/NtosWindow.js b/tgui/packages/tgui/layouts/NtosWindow.jsx
similarity index 100%
rename from tgui/packages/tgui/layouts/NtosWindow.js
rename to tgui/packages/tgui/layouts/NtosWindow.jsx
diff --git a/tgui/packages/tgui/layouts/Pane.js b/tgui/packages/tgui/layouts/Pane.jsx
similarity index 100%
rename from tgui/packages/tgui/layouts/Pane.js
rename to tgui/packages/tgui/layouts/Pane.jsx
diff --git a/tgui/packages/tgui/layouts/Window.js b/tgui/packages/tgui/layouts/Window.jsx
similarity index 100%
rename from tgui/packages/tgui/layouts/Window.js
rename to tgui/packages/tgui/layouts/Window.jsx
diff --git a/tgui/packages/tgui/layouts/index.js b/tgui/packages/tgui/layouts/index.ts
similarity index 100%
rename from tgui/packages/tgui/layouts/index.js
rename to tgui/packages/tgui/layouts/index.ts
diff --git a/tgui/packages/tgui/routes.tsx b/tgui/packages/tgui/routes.tsx
index 39598c4cc6e..fc2785cde5e 100644
--- a/tgui/packages/tgui/routes.tsx
+++ b/tgui/packages/tgui/routes.tsx
@@ -72,9 +72,9 @@ export const getRoutedComponent = (store: Store) => {
const name = config?.interface;
const interfacePathBuilders = [
(name: string) => `./${name}.tsx`,
- (name: string) => `./${name}.js`,
+ (name: string) => `./${name}.jsx`,
(name: string) => `./${name}/index.tsx`,
- (name: string) => `./${name}/index.js`,
+ (name: string) => `./${name}/index.jsx`,
];
let esModule;
while (!esModule && interfacePathBuilders.length > 0) {
diff --git a/tgui/webpack.config.js b/tgui/webpack.config.js
index 19e2975715f..27a07fd0d09 100644
--- a/tgui/webpack.config.js
+++ b/tgui/webpack.config.js
@@ -33,18 +33,9 @@ module.exports = (env = {}, argv) => {
context: path.resolve(__dirname),
target: ['web', 'es3', 'browserslist:ie 8'],
entry: {
- 'tgui': [
- './packages/tgui-polyfill',
- './packages/tgui',
- ],
- 'tgui-panel': [
- './packages/tgui-polyfill',
- './packages/tgui-panel',
- ],
- 'tgui-say': [
- './packages/tgui-polyfill',
- './packages/tgui-say',
- ],
+ 'tgui': ['./packages/tgui-polyfill', './packages/tgui'],
+ 'tgui-panel': ['./packages/tgui-polyfill', './packages/tgui-panel'],
+ 'tgui-say': ['./packages/tgui-polyfill', './packages/tgui-say'],
},
output: {
path: argv.useTmpFolder
@@ -55,13 +46,13 @@ module.exports = (env = {}, argv) => {
chunkLoadTimeout: 15000,
},
resolve: {
- extensions: ['.tsx', '.ts', '.js'],
+ extensions: ['.tsx', '.ts', '.js', '.jsx'],
alias: {},
},
module: {
rules: [
{
- test: /\.(js|cjs|ts|tsx)$/,
+ test: /\.(js(x)?|cjs|ts(x)?)$/,
use: [
{
loader: require.resolve('babel-loader'),