diff --git a/src/action.tsx b/src/action.tsx
index 3dcc62f0bd..6d0b74e287 100644
--- a/src/action.tsx
+++ b/src/action.tsx
@@ -15,6 +15,11 @@
* along with this program. If not, see .
*/
+// Keep in order so precedence is preserved
+import "@/vendors/theme/app/app.scss";
+import "@/vendors/overrides.scss";
+import "@/action.scss";
+
import "@/extensionContext";
import "@/actionPanel/messenger/registration";
@@ -24,11 +29,6 @@ import React from "react";
import registerBuiltinBlocks from "@/blocks/registerBuiltinBlocks";
import registerContribBlocks from "@/contrib/registerContribBlocks";
-// Keep in order so precedence is preserved
-import "@/vendors/theme/app/app.scss";
-import "@/vendors/overrides.scss";
-import "@/action.scss";
-
registerContribBlocks();
registerBuiltinBlocks();
diff --git a/src/auth/ScopeSettings.tsx b/src/auth/ScopeSettings.tsx
index 5cbc3f802c..c2f993f2a1 100644
--- a/src/auth/ScopeSettings.tsx
+++ b/src/auth/ScopeSettings.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./ScopeSettings.module.scss";
+
import React, { useCallback } from "react";
import { Formik, FormikBag, FormikValues } from "formik";
import { Alert, Button, Container, Form } from "react-bootstrap";
@@ -28,7 +30,6 @@ import { isAxiosError } from "@/errors";
import reportError from "@/telemetry/reportError";
import useNotifications from "@/hooks/useNotifications";
import ConnectedFieldTemplate from "@/components/form/ConnectedFieldTemplate";
-import styles from "./ScopeSettings.module.scss";
import { useGetAuthQuery } from "@/services/api";
interface Profile {
diff --git a/src/components/brickModal/BrickModal.tsx b/src/components/brickModal/BrickModal.tsx
index 149ee48f03..d1b93ac348 100644
--- a/src/components/brickModal/BrickModal.tsx
+++ b/src/components/brickModal/BrickModal.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./BrickModal.module.scss";
+
import React, {
CSSProperties,
useCallback,
@@ -45,7 +47,6 @@ import BrickDetail from "./BrickDetail";
import QuickAdd from "@/components/brickModal/QuickAdd";
import { Except } from "type-fest";
import cx from "classnames";
-import styles from "./BrickModal.module.scss";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faPlus } from "@fortawesome/free-solid-svg-icons";
diff --git a/src/components/documentBuilder/edit/ElementEditor.tsx b/src/components/documentBuilder/edit/ElementEditor.tsx
index e817ba391f..7b85a6651c 100644
--- a/src/components/documentBuilder/edit/ElementEditor.tsx
+++ b/src/components/documentBuilder/edit/ElementEditor.tsx
@@ -15,12 +15,13 @@
* along with this program. If not, see .
*/
+import styles from "./DocumentEditor.module.scss";
+
import { useField } from "formik";
import React from "react";
import { DocumentElement } from "@/components/documentBuilder/documentBuilderTypes";
import { getProperty } from "@/utils";
import { Col, Row } from "react-bootstrap";
-import styles from "./DocumentEditor.module.scss";
import RemoveElement from "./RemoveElement";
import MoveElement from "./MoveElement";
import elementTypeLabels from "@/components/documentBuilder/elementTypeLabels";
diff --git a/src/components/documentBuilder/preview/DocumentPreview.tsx b/src/components/documentBuilder/preview/DocumentPreview.tsx
index b7b47dcde3..8da6bafbcc 100644
--- a/src/components/documentBuilder/preview/DocumentPreview.tsx
+++ b/src/components/documentBuilder/preview/DocumentPreview.tsx
@@ -15,6 +15,10 @@
* along with this program. If not, see .
*/
+import previewStyles from "./ElementPreview.module.scss";
+import documentTreeStyles from "@/components/documentBuilder/preview/documentTree.module.scss";
+import styles from "./DocumentPreview.module.scss";
+
import { useField } from "formik";
import React, { MouseEventHandler, useMemo, useState } from "react";
import { DocumentElement } from "@/components/documentBuilder/documentBuilderTypes";
@@ -22,9 +26,6 @@ import AddElementAction from "./AddElementAction";
import ElementPreview from "./ElementPreview";
import { ROOT_ELEMENT_TYPES } from "@/components/documentBuilder/allowedElementTypes";
import cx from "classnames";
-import previewStyles from "./ElementPreview.module.scss";
-import documentTreeStyles from "@/components/documentBuilder/preview/documentTree.module.scss";
-import styles from "./DocumentPreview.module.scss";
import { getPreviewValues } from "@/components/fields/fieldUtils";
type DocumentPreviewProps = {
diff --git a/src/components/documentBuilder/preview/getPreviewComponentDefinition.tsx b/src/components/documentBuilder/preview/getPreviewComponentDefinition.tsx
index 11714273cf..51e251e2f2 100644
--- a/src/components/documentBuilder/preview/getPreviewComponentDefinition.tsx
+++ b/src/components/documentBuilder/preview/getPreviewComponentDefinition.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import documentTreeStyles from "./documentTree.module.scss";
+
import {
DocumentComponent,
DocumentElement,
@@ -24,7 +26,6 @@ import { get } from "lodash";
import { UnknownObject } from "@/types";
import { isExpression } from "@/runtime/mapArgs";
import cx from "classnames";
-import documentTreeStyles from "./documentTree.module.scss";
import React from "react";
import { Button } from "react-bootstrap";
import { getComponentDefinition } from "@/components/documentBuilder/documentTree";
diff --git a/src/components/fields/schemaFields/widgets/TemplateToggleWidget.tsx b/src/components/fields/schemaFields/widgets/TemplateToggleWidget.tsx
index 1743f6ce4a..c95617a74a 100644
--- a/src/components/fields/schemaFields/widgets/TemplateToggleWidget.tsx
+++ b/src/components/fields/schemaFields/widgets/TemplateToggleWidget.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./TemplateToggleWidget.module.scss";
+
import React, { useCallback, useEffect, useMemo, useState } from "react";
import { FieldInputMode } from "@/components/fields/schemaFields/fieldInputMode";
import { Expression } from "@/core";
@@ -23,7 +25,6 @@ import { UnknownObject } from "@/types";
import { SchemaFieldProps } from "@/components/fields/schemaFields/propTypes";
import { JSONSchema7Array } from "json-schema";
import WidgetLoadingIndicator from "@/components/fields/schemaFields/widgets/WidgetLoadingIndicator";
-import styles from "./TemplateToggleWidget.module.scss";
import useToggleFormField from "@/devTools/editor/hooks/useToggleFormField";
import { useField } from "formik";
diff --git a/src/components/form/Form.tsx b/src/components/form/Form.tsx
index 74d4f8ca80..2e0984e109 100644
--- a/src/components/form/Form.tsx
+++ b/src/components/form/Form.tsx
@@ -15,11 +15,12 @@
* along with this program. If not, see .
*/
+import styles from "./Form.module.scss";
+
import React, { ReactElement } from "react";
import { Button, Form as BootstrapForm } from "react-bootstrap";
import { Formik, FormikHelpers, FormikValues } from "formik";
import * as yup from "yup";
-import styles from "./Form.module.scss";
export type OnSubmit = (
values: TValues,
diff --git a/src/components/form/lockedLabel/LockedExtensionPointLabel.tsx b/src/components/form/lockedLabel/LockedExtensionPointLabel.tsx
index 83b7035249..fe845250ed 100644
--- a/src/components/form/lockedLabel/LockedExtensionPointLabel.tsx
+++ b/src/components/form/lockedLabel/LockedExtensionPointLabel.tsx
@@ -15,13 +15,14 @@
* along with this program. If not, see .
*/
+import styles from "./LockedExtensionPointLabel.module.scss";
+
import React from "react";
import { OverlayTrigger, Tooltip } from "react-bootstrap";
import { uuidv4 } from "@/types/helpers";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faLock } from "@fortawesome/free-solid-svg-icons";
import { useField } from "formik";
-import styles from "./LockedExtensionPointLabel.module.scss";
const LockedExtensionPointLabel: React.FC<{
label: string;
diff --git a/src/components/formBuilder/FormBuilder.tsx b/src/components/formBuilder/FormBuilder.tsx
index e7b93f9417..3660965126 100644
--- a/src/components/formBuilder/FormBuilder.tsx
+++ b/src/components/formBuilder/FormBuilder.tsx
@@ -15,10 +15,11 @@
* along with this program. If not, see .
*/
+import styles from "./FormBuilder.module.scss";
+
import React, { useState } from "react";
import FormEditor from "./FormEditor";
import FormPreview from "./FormPreview";
-import styles from "./FormBuilder.module.scss";
import { useField } from "formik";
import { RJSFSchema } from "@/components/formBuilder/formBuilderTypes";
diff --git a/src/components/formBuilder/FormEditor.tsx b/src/components/formBuilder/FormEditor.tsx
index 2c1d91c1a8..d7b2566119 100644
--- a/src/components/formBuilder/FormEditor.tsx
+++ b/src/components/formBuilder/FormEditor.tsx
@@ -15,7 +15,8 @@
* along with this program. If not, see .
*/
-/* eslint-disable security/detect-object-injection */
+import styles from "./FormEditor.module.scss";
+
import { useField } from "formik";
import React, { useEffect, useMemo } from "react";
import {
@@ -38,7 +39,6 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faPlus, faTrash } from "@fortawesome/free-solid-svg-icons";
import { Schema } from "@/core";
import { produce } from "immer";
-import styles from "./FormEditor.module.scss";
import { joinName } from "@/utils";
import FieldTemplate from "@/components/form/FieldTemplate";
import { SchemaFieldProps } from "@/components/fields/schemaFields/propTypes";
diff --git a/src/components/formBuilder/FormPreviewFieldTemplate.tsx b/src/components/formBuilder/FormPreviewFieldTemplate.tsx
index 56dd0c59f2..ef6da65b4f 100644
--- a/src/components/formBuilder/FormPreviewFieldTemplate.tsx
+++ b/src/components/formBuilder/FormPreviewFieldTemplate.tsx
@@ -15,11 +15,12 @@
* along with this program. If not, see .
*/
+import styles from "./FormPreviewFieldTemplate.module.scss";
+
import { Field, FieldProps } from "@rjsf/core";
import React from "react";
import { SetActiveField } from "./formBuilderTypes";
import { UI_SCHEMA_ACTIVE } from "./schemaFieldNames";
-import styles from "./FormPreviewFieldTemplate.module.scss";
import cx from "classnames";
export interface FormPreviewFieldProps extends FieldProps {
diff --git a/src/components/jsonTree/JsonTree.tsx b/src/components/jsonTree/JsonTree.tsx
index 31d379ec9c..08237b5cbc 100644
--- a/src/components/jsonTree/JsonTree.tsx
+++ b/src/components/jsonTree/JsonTree.tsx
@@ -15,12 +15,13 @@
* along with this program. If not, see .
*/
+import styles from "./JsonTree.module.scss";
+
import { JSONTree } from "react-json-tree";
import { jsonTreeTheme as theme } from "@/themes/light";
import React, { useCallback, useMemo, useState } from "react";
import { useDebounce } from "use-debounce";
import FieldTemplate from "@/components/form/FieldTemplate";
-import styles from "./JsonTree.module.scss";
import GridLoader from "react-spinners/GridLoader";
import { searchData } from "@/devTools/utils";
import { useLabelRenderer } from "./treeHooks";
diff --git a/src/components/schemaTree/SchemaTree.tsx b/src/components/schemaTree/SchemaTree.tsx
index b00ffe19ca..4b857960c2 100644
--- a/src/components/schemaTree/SchemaTree.tsx
+++ b/src/components/schemaTree/SchemaTree.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./SchemaTree.module.scss";
+
import React, { useMemo } from "react";
import { Schema } from "@/core";
import { Table } from "react-bootstrap";
@@ -27,7 +29,6 @@ import {
faCheck,
} from "@fortawesome/free-solid-svg-icons";
import { isServiceField } from "@/components/fields/schemaFields/ServiceField";
-import styles from "./SchemaTree.module.scss";
import cx from "classnames";
type SchemaTreeRow = {
diff --git a/src/devTools/editor/ElementWizard.tsx b/src/devTools/editor/ElementWizard.tsx
index 99933644a0..9d33683790 100644
--- a/src/devTools/editor/ElementWizard.tsx
+++ b/src/devTools/editor/ElementWizard.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./ElementWizard.module.scss";
+
import React, { useCallback, useContext, useMemo, useState } from "react";
import { useFormikContext } from "formik";
import { groupBy } from "lodash";
@@ -36,7 +38,6 @@ import { produce } from "immer";
import { useAsyncEffect } from "use-async-effect";
import { upgradePipelineToV3 } from "@/devTools/editor/extensionPoints/upgrade";
import BlueprintOptionsTab from "./tabs/blueprintOptionsTab/BlueprintOptionsTab";
-import styles from "./ElementWizard.module.scss";
import AskQuestionModalButton from "./askQuestion/AskQuestionModalButton";
import useFlags from "@/hooks/useFlags";
diff --git a/src/devTools/editor/panes/insert/GenericInsertPane.tsx b/src/devTools/editor/panes/insert/GenericInsertPane.tsx
index 459ac6a720..6530bc97b3 100644
--- a/src/devTools/editor/panes/insert/GenericInsertPane.tsx
+++ b/src/devTools/editor/panes/insert/GenericInsertPane.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./GenericInsertPane.module.scss";
+
import React, { useCallback } from "react";
import { useDispatch } from "react-redux";
import useAvailableExtensionPoints from "@/devTools/editor/hooks/useAvailableExtensionPoints";
@@ -30,7 +32,6 @@ import { reportEvent } from "@/telemetry/events";
import { useToasts } from "react-toast-notifications";
import reportError from "@/telemetry/reportError";
import { getCurrentURL, thisTab } from "@/devTools/utils";
-import styles from "./GenericInsertPane.module.scss";
import {
showActionPanel,
updateDynamicElement,
diff --git a/src/devTools/editor/sidebar/Footer.tsx b/src/devTools/editor/sidebar/Footer.tsx
index 29eb92c28e..5b16763b49 100644
--- a/src/devTools/editor/sidebar/Footer.tsx
+++ b/src/devTools/editor/sidebar/Footer.tsx
@@ -15,11 +15,12 @@
* along with this program. If not, see .
*/
+import styles from "./Footer.module.scss";
+
import React, { useContext } from "react";
import { useGetAuthQuery } from "@/services/api";
import { DevToolsContext } from "@/devTools/context";
import BeatLoader from "react-spinners/BeatLoader";
-import styles from "./Footer.module.scss";
const Footer: React.FunctionComponent = () => {
const {
diff --git a/src/devTools/editor/sidebar/InstalledEntry.tsx b/src/devTools/editor/sidebar/InstalledEntry.tsx
index 2b7a21585c..1eda9f99a5 100644
--- a/src/devTools/editor/sidebar/InstalledEntry.tsx
+++ b/src/devTools/editor/sidebar/InstalledEntry.tsx
@@ -16,6 +16,7 @@
*/
import styles from "./Entry.module.scss";
+
import React, { useCallback } from "react";
import { IExtension, UUID } from "@/core";
import { useDispatch } from "react-redux";
diff --git a/src/devTools/editor/sidebar/Sidebar.tsx b/src/devTools/editor/sidebar/Sidebar.tsx
index 1e8cb8ca5c..9c40188f7c 100644
--- a/src/devTools/editor/sidebar/Sidebar.tsx
+++ b/src/devTools/editor/sidebar/Sidebar.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./Sidebar.module.scss";
+
import browser from "webextension-polyfill";
import React, { FormEvent, useContext, useMemo, useState } from "react";
import { FormState } from "@/devTools/editor/slices/editorSlice";
@@ -41,7 +43,6 @@ import DynamicEntry from "@/devTools/editor/sidebar/DynamicEntry";
import { isExtension } from "@/devTools/editor/sidebar/common";
import useAddElement from "@/devTools/editor/hooks/useAddElement";
import Footer from "@/devTools/editor/sidebar/Footer";
-import styles from "./Sidebar.module.scss";
import {
faAngleDoubleLeft,
faAngleDoubleRight,
diff --git a/src/devTools/editor/tabs/blueprintOptionsTab/BlueprintOptionsTab.tsx b/src/devTools/editor/tabs/blueprintOptionsTab/BlueprintOptionsTab.tsx
index 55b19dfd11..0c0b84d97f 100644
--- a/src/devTools/editor/tabs/blueprintOptionsTab/BlueprintOptionsTab.tsx
+++ b/src/devTools/editor/tabs/blueprintOptionsTab/BlueprintOptionsTab.tsx
@@ -15,6 +15,9 @@
* along with this program. If not, see .
*/
+import styles from "./BlueprintOptionsTab.module.scss";
+import dataPanelStyles from "@/devTools/editor/tabs/dataPanelTabs.module.scss";
+
import { useFormikContext } from "formik";
import React, { useMemo, useState } from "react";
import { Alert, Col, Container, Nav, Row, Tab } from "react-bootstrap";
@@ -33,8 +36,6 @@ import { useGetRecipesQuery } from "@/services/api";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faExclamationTriangle } from "@fortawesome/free-solid-svg-icons";
import cx from "classnames";
-import styles from "./BlueprintOptionsTab.module.scss";
-import dataPanelStyles from "@/devTools/editor/tabs/dataPanelTabs.module.scss";
const fieldTypes = FIELD_TYPE_OPTIONS.filter(
(type) => !["File", "Image crop"].includes(type.label)
diff --git a/src/devTools/editor/tabs/editTab/UpgradedToApiV3.tsx b/src/devTools/editor/tabs/editTab/UpgradedToApiV3.tsx
index 4bb26ef98d..e588e4ae5c 100644
--- a/src/devTools/editor/tabs/editTab/UpgradedToApiV3.tsx
+++ b/src/devTools/editor/tabs/editTab/UpgradedToApiV3.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./UpgradedToApiV3.module.scss";
+
import React from "react";
import { Alert } from "react-bootstrap";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
@@ -22,7 +24,6 @@ import {
faExclamationCircle,
faTimes,
} from "@fortawesome/free-solid-svg-icons";
-import styles from "./UpgradedToApiV3.module.scss";
import { useDispatch, useSelector } from "react-redux";
import { RootState } from "@/devTools/store";
import { actions } from "@/devTools/editor/slices/editorSlice";
diff --git a/src/devTools/editor/tabs/editTab/editorNodeConfigPanel/EditorNodeConfigPanel.tsx b/src/devTools/editor/tabs/editTab/editorNodeConfigPanel/EditorNodeConfigPanel.tsx
index 6df846ffdd..9722837929 100644
--- a/src/devTools/editor/tabs/editTab/editorNodeConfigPanel/EditorNodeConfigPanel.tsx
+++ b/src/devTools/editor/tabs/editTab/editorNodeConfigPanel/EditorNodeConfigPanel.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./EditorNodeConfigPanel.module.scss";
+
import React, { useMemo } from "react";
import { Col, Row } from "react-bootstrap";
import { RegistryId } from "@/core";
@@ -24,7 +26,6 @@ import { useAsyncState } from "@/hooks/common";
import blockRegistry from "@/blocks/registry";
import { getType } from "@/blocks/util";
import { showOutputKey } from "@/devTools/editor/tabs/editTab/editHelpers";
-import styles from "./EditorNodeConfigPanel.module.scss";
import PopoverInfoLabel from "@/components/form/popoverInfoLabel/PopoverInfoLabel";
import KeyNameWidget from "@/components/form/widgets/KeyNameWidget";
diff --git a/src/devTools/editor/tabs/effect/AdvancedLinks.tsx b/src/devTools/editor/tabs/effect/AdvancedLinks.tsx
index 8213b9c454..0d0ff5e75e 100644
--- a/src/devTools/editor/tabs/effect/AdvancedLinks.tsx
+++ b/src/devTools/editor/tabs/effect/AdvancedLinks.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./AdvancedLinks.module.scss";
+
import { BlockIf, BlockWindow } from "@/blocks/types";
import { TemplateEngine } from "@/core";
import { joinName } from "@/utils";
@@ -22,7 +24,6 @@ import { useField } from "formik";
import { partial } from "lodash";
import React, { MutableRefObject } from "react";
import { Button } from "react-bootstrap";
-import styles from "./AdvancedLinks.module.scss";
import { isExpression } from "@/runtime/mapArgs";
export const DEFAULT_TEMPLATE_ENGINE_VALUE: TemplateEngine = "mustache";
diff --git a/src/ephemeralForm.tsx b/src/ephemeralForm.tsx
index 100fd2ad57..33d1dd4c4d 100644
--- a/src/ephemeralForm.tsx
+++ b/src/ephemeralForm.tsx
@@ -15,14 +15,14 @@
* along with this program. If not, see .
*/
+import "bootstrap/dist/css/bootstrap.min.css";
+import "react-image-crop/dist/ReactCrop.css";
+import "@/ephemeralForm.scss";
+
import "@/extensionContext";
import React from "react";
import { render } from "react-dom";
import EphemeralForm from "@/blocks/transformers/ephemeralForm/EphemeralForm";
-import "bootstrap/dist/css/bootstrap.min.css";
-import "react-image-crop/dist/ReactCrop.css";
-import "@/ephemeralForm.scss";
-
render(, document.querySelector("#container"));
diff --git a/src/options/pages/SetupPage.tsx b/src/options/pages/SetupPage.tsx
index 9f4d19491b..96c6843f40 100644
--- a/src/options/pages/SetupPage.tsx
+++ b/src/options/pages/SetupPage.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import "./SetupPage.scss";
+
import React, { useCallback } from "react";
import { faCheck, faLink } from "@fortawesome/free-solid-svg-icons";
import { Col, Row, Card, Button, ListGroup } from "react-bootstrap";
@@ -27,7 +29,6 @@ import cx from "classnames";
import { useAsyncState } from "@/hooks/common";
import GridLoader from "react-spinners/GridLoader";
-import "./SetupPage.scss";
import { useTitle } from "@/hooks/title";
import { LinkButton } from "@/components/LinkButton";
diff --git a/src/options/pages/blueprints/BlueprintsCard.tsx b/src/options/pages/blueprints/BlueprintsCard.tsx
index c89494f83c..a6d96d31dd 100644
--- a/src/options/pages/blueprints/BlueprintsCard.tsx
+++ b/src/options/pages/blueprints/BlueprintsCard.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./BlueprintsCard.module.scss";
+
import { Button, Col, Row as BootstrapRow } from "react-bootstrap";
import React, { Fragment, useMemo } from "react";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
@@ -47,7 +49,6 @@ import {
import blueprintsSlice from "./blueprintsSlice";
import { useSelector } from "react-redux";
import { uniq } from "lodash";
-import styles from "./BlueprintsCard.module.scss";
import useInstallableViewItems from "@/options/pages/blueprints/useInstallableViewItems";
// These react-table columns aren't rendered as column headings,
diff --git a/src/options/pages/blueprints/gridView/GridCard.tsx b/src/options/pages/blueprints/gridView/GridCard.tsx
index 0c278b2698..0620570e36 100644
--- a/src/options/pages/blueprints/gridView/GridCard.tsx
+++ b/src/options/pages/blueprints/gridView/GridCard.tsx
@@ -15,13 +15,14 @@
* along with this program. If not, see .
*/
+import styles from "./GridCard.module.scss";
+
import React from "react";
import { InstallableViewItem } from "@/options/pages/blueprints/blueprintsTypes";
import { Card } from "react-bootstrap";
import SharingLabel from "@/options/pages/blueprints/SharingLabel";
import { timeSince } from "@/utils/timeUtils";
import Status from "@/options/pages/blueprints/Status";
-import styles from "./GridCard.module.scss";
import BlueprintActions from "@/options/pages/blueprints/BlueprintActions";
type GridCardProps = {
diff --git a/src/options/pages/blueprints/gridView/GridView.tsx b/src/options/pages/blueprints/gridView/GridView.tsx
index 6b4db81012..73560d57cf 100644
--- a/src/options/pages/blueprints/gridView/GridView.tsx
+++ b/src/options/pages/blueprints/gridView/GridView.tsx
@@ -15,10 +15,11 @@
* along with this program. If not, see .
*/
+import styles from "./GridView.module.scss";
+
import React from "react";
import { BlueprintListViewProps } from "@/options/pages/blueprints/blueprintsTypes";
import { getUniqueId } from "@/options/pages/blueprints/installableUtils";
-import styles from "./GridView.module.scss";
import GridCard from "./GridCard";
const GridView: React.VoidFunctionComponent = ({
diff --git a/src/options/pages/blueprints/tableView/TableRow.tsx b/src/options/pages/blueprints/tableView/TableRow.tsx
index ff832f193b..f1855660e5 100644
--- a/src/options/pages/blueprints/tableView/TableRow.tsx
+++ b/src/options/pages/blueprints/tableView/TableRow.tsx
@@ -15,13 +15,14 @@
* along with this program. If not, see .
*/
+import styles from "./TableRow.module.scss";
+
import React from "react";
import SharingLabel from "@/options/pages/blueprints/SharingLabel";
import BlueprintActions from "@/options/pages/blueprints/BlueprintActions";
import { timeSince } from "@/utils/timeUtils";
import { InstallableViewItem } from "@/options/pages/blueprints/blueprintsTypes";
import Status from "@/options/pages/blueprints/Status";
-import styles from "./TableRow.module.scss";
const TableRow: React.VoidFunctionComponent<{
installableItem: InstallableViewItem;
diff --git a/src/options/pages/brickEditor/BrickHistory.tsx b/src/options/pages/brickEditor/BrickHistory.tsx
index d2caed5ba2..e1faf5a470 100644
--- a/src/options/pages/brickEditor/BrickHistory.tsx
+++ b/src/options/pages/brickEditor/BrickHistory.tsx
@@ -14,13 +14,15 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
+import styles from "./BrickHistory.module.scss";
+
import React, { useEffect, useMemo, useState, Suspense } from "react";
import Select, { components, OptionProps } from "react-select";
import useFetch from "@/hooks/useFetch";
import { PackageVersion, Package } from "@/types/contract";
import DiffEditor from "@/vendors/DiffEditor";
import objectHash from "object-hash";
-import styles from "./BrickHistory.module.scss";
import { UUID } from "@/core";
export interface PackageVersionOption {
diff --git a/src/options/pages/brickEditor/EditPage.tsx b/src/options/pages/brickEditor/EditPage.tsx
index a05cfb853c..b828c684a0 100644
--- a/src/options/pages/brickEditor/EditPage.tsx
+++ b/src/options/pages/brickEditor/EditPage.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import "./EditPage.scss";
+
import React, { useEffect, useMemo } from "react";
import { PageTitle } from "@/layout/Page";
import { faHammer } from "@fortawesome/free-solid-svg-icons";
@@ -26,7 +28,6 @@ import { truncate } from "lodash";
import GridLoader from "react-spinners/GridLoader";
import useSubmitBrick from "./useSubmitBrick";
import BootstrapSwitchButton from "bootstrap-switch-button-react";
-import "./EditPage.scss";
import { useDispatch, useSelector } from "react-redux";
import { RawConfig } from "@/core";
import { selectExtensions } from "@/store/extensionsSelectors";
diff --git a/src/options/pages/brickEditor/referenceTab/BlockResult.tsx b/src/options/pages/brickEditor/referenceTab/BlockResult.tsx
index 31d01546fc..734eb9ed05 100644
--- a/src/options/pages/brickEditor/referenceTab/BlockResult.tsx
+++ b/src/options/pages/brickEditor/referenceTab/BlockResult.tsx
@@ -15,11 +15,12 @@
* along with this program. If not, see .
*/
+import styles from "./BlockResult.module.scss";
+
import React, { useMemo } from "react";
import { ListGroup } from "react-bootstrap";
import cx from "classnames";
import { ReferenceEntry } from "@/options/pages/brickEditor/brickEditorTypes";
-import styles from "./BlockResult.module.scss";
import { OfficialBadge } from "@/components/OfficialBadge";
import BrickIcon from "@/components/BrickIcon";
import {
diff --git a/src/options/pages/brickEditor/referenceTab/BrickDetail.tsx b/src/options/pages/brickEditor/referenceTab/BrickDetail.tsx
index a8d240a6a5..50c970d341 100644
--- a/src/options/pages/brickEditor/referenceTab/BrickDetail.tsx
+++ b/src/options/pages/brickEditor/referenceTab/BrickDetail.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./BrickDetail.module.scss";
+
import React, { Suspense } from "react";
import { Button } from "react-bootstrap";
import { isEmpty } from "lodash";
@@ -30,7 +32,6 @@ import useUserAction from "@/hooks/useUserAction";
import DetailSection from "./DetailSection";
import { ReferenceEntry } from "@/options/pages/brickEditor/brickEditorTypes";
import { Schema } from "@/core";
-import styles from "./BrickDetail.module.scss";
import { useGetMarketplaceListingsQuery } from "@/services/api";
import BrickIcon from "@/components/BrickIcon";
diff --git a/src/options/pages/brickEditor/referenceTab/BrickReference.tsx b/src/options/pages/brickEditor/referenceTab/BrickReference.tsx
index 5ada278ab8..aac698ed42 100644
--- a/src/options/pages/brickEditor/referenceTab/BrickReference.tsx
+++ b/src/options/pages/brickEditor/referenceTab/BrickReference.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./BrickReference.module.scss";
+
import React, { useEffect, useMemo, useState } from "react";
import {
Col,
@@ -27,7 +29,6 @@ import {
import { IBlock, IService } from "@/core";
import Fuse from "fuse.js";
import { sortBy } from "lodash";
-import styles from "./BrickReference.module.scss";
import GridLoader from "react-spinners/GridLoader";
import BrickDetail from "./BrickDetail";
import { ReferenceEntry } from "@/options/pages/brickEditor/brickEditorTypes";
diff --git a/src/options/pages/installed/ExtensionGroup.tsx b/src/options/pages/installed/ExtensionGroup.tsx
index a4169f9d3b..12eb1eb14e 100644
--- a/src/options/pages/installed/ExtensionGroup.tsx
+++ b/src/options/pages/installed/ExtensionGroup.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./ExtensionGroup.module.scss";
+
import React, { useCallback, useMemo, useState } from "react";
import cx from "classnames";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
@@ -38,7 +40,6 @@ import {
RemoveAction,
} from "@/options/pages/installed/installedPageTypes";
import EllipsisMenu from "@/components/ellipsisMenu/EllipsisMenu";
-import styles from "./ExtensionGroup.module.scss";
import ExtensionRows from "./ExtensionRows";
import { useDispatch } from "react-redux";
import { installedPageSlice } from "./installedPageSlice";
diff --git a/src/options/pages/installed/ExtensionLogsModal.tsx b/src/options/pages/installed/ExtensionLogsModal.tsx
index 616407ce5c..112e0f8ee7 100644
--- a/src/options/pages/installed/ExtensionLogsModal.tsx
+++ b/src/options/pages/installed/ExtensionLogsModal.tsx
@@ -15,12 +15,13 @@
* along with this program. If not, see .
*/
+import styles from "./ExtensionLogsModal.module.scss";
+
import { MessageContext } from "@/core";
import React from "react";
import { Modal } from "react-bootstrap";
import { useDispatch } from "react-redux";
import BrickLogs from "@/options/pages/brickEditor/BrickLogs";
-import styles from "./ExtensionLogsModal.module.scss";
import { installedPageSlice } from "./installedPageSlice";
const ExtensionLogsModal: React.FC<{
diff --git a/src/options/pages/installed/ShareExtensionModal.tsx b/src/options/pages/installed/ShareExtensionModal.tsx
index d41755eab1..c3591e3e2c 100644
--- a/src/options/pages/installed/ShareExtensionModal.tsx
+++ b/src/options/pages/installed/ShareExtensionModal.tsx
@@ -14,6 +14,9 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
+
+import styles from "./ShareExtensionModal.module.scss";
+
import React, { useCallback, useMemo } from "react";
import {
Button,
@@ -55,7 +58,6 @@ import extensionsSlice from "@/store/extensionsSlice";
import SwitchButtonWidget from "@/components/form/widgets/switchButton/SwitchButtonWidget";
import FieldTemplate from "@/components/form/FieldTemplate";
import { installedPageSlice } from "@/options/pages/installed/installedPageSlice";
-import styles from "./ShareExtensionModal.module.scss";
import { selectExtensions } from "@/store/extensionsSelectors";
import { RequireScope } from "@/auth/RequireScope";
diff --git a/src/options/pages/services/PrivateServicesCard.tsx b/src/options/pages/services/PrivateServicesCard.tsx
index 4430b359af..fbf2093d16 100644
--- a/src/options/pages/services/PrivateServicesCard.tsx
+++ b/src/options/pages/services/PrivateServicesCard.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./PrivateServicesCard.module.scss";
+
import { useSelector } from "react-redux";
import { Button, Card, Table } from "react-bootstrap";
import React, { useCallback, useMemo, useState } from "react";
@@ -26,7 +28,6 @@ import { useGetAuthQuery } from "@/services/api";
import { deleteCachedAuthData } from "@/background/messenger/api";
import { ServicesState } from "@/store/servicesSlice";
import useNotifications from "@/hooks/useNotifications";
-import styles from "./PrivateServicesCard.module.scss";
import EllipsisMenu from "@/components/ellipsisMenu/EllipsisMenu";
import BrickIcon from "@/components/BrickIcon";
import Pagination from "@/components/pagination/Pagination";
diff --git a/src/options/pages/services/ServiceEditorModal.tsx b/src/options/pages/services/ServiceEditorModal.tsx
index 05979c4030..eae707838f 100644
--- a/src/options/pages/services/ServiceEditorModal.tsx
+++ b/src/options/pages/services/ServiceEditorModal.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "./ServiceEditorModal.module.scss";
+
import optionsRegistry from "@/components/fields/optionsRegistry";
import React, { useCallback, useMemo } from "react";
import { Modal, Button, Form } from "react-bootstrap";
@@ -34,7 +36,6 @@ import FieldTemplate from "@/components/form/FieldTemplate";
import FieldRuntimeContext, {
RuntimeContext,
} from "@/components/fields/schemaFields/FieldRuntimeContext";
-import styles from "./ServiceEditorModal.module.scss";
import { OPTIONS_DEFAULT_RUNTIME_API_VERSION } from "@/options/constants";
export type OwnProps = {
diff --git a/src/options/pages/services/ServicesEditor.tsx b/src/options/pages/services/ServicesEditor.tsx
index a4a80bb8d3..96dc654a6e 100644
--- a/src/options/pages/services/ServicesEditor.tsx
+++ b/src/options/pages/services/ServicesEditor.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import styles from "@/options/pages/services/PrivateServicesCard.module.scss";
+
import React, { useCallback, useState } from "react";
import { connect } from "react-redux";
import servicesSlice from "@/store/servicesSlice";
@@ -33,7 +35,6 @@ import useNotifications from "@/hooks/useNotifications";
import { useParams } from "react-router";
import { IService, RawServiceConfiguration, UUID } from "@/core";
import BrickModal from "@/components/brickModal/BrickModal";
-import styles from "@/options/pages/services/PrivateServicesCard.module.scss";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { uuidv4 } from "@/types/helpers";
import useAuthorizationGrantFlow from "@/hooks/useAuthorizationGrantFlow";
diff --git a/src/pages/marketplace/MarketplacePage.tsx b/src/pages/marketplace/MarketplacePage.tsx
index 42ad20795e..d0e1a967c6 100644
--- a/src/pages/marketplace/MarketplacePage.tsx
+++ b/src/pages/marketplace/MarketplacePage.tsx
@@ -15,6 +15,8 @@
* along with this program. If not, see .
*/
+import "./MarketplacePage.scss";
+
import React, { useMemo, useState } from "react";
import GridLoader from "react-spinners/GridLoader";
import { PageTitle } from "@/layout/Page";
@@ -27,7 +29,6 @@ import {
import { Metadata, Sharing, UUID } from "@/core";
import { RecipeDefinition } from "@/types/definitions";
import { Col, InputGroup, ListGroup, Row, Button, Form } from "react-bootstrap";
-import "./MarketplacePage.scss";
import type { ButtonProps } from "react-bootstrap";
import useFetch from "@/hooks/useFetch";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";