diff --git a/internal/outpost/ak/api_ws.go b/internal/outpost/ak/api_ws.go
index 082e58d7be..fbd9295a50 100644
--- a/internal/outpost/ak/api_ws.go
+++ b/internal/outpost/ak/api_ws.go
@@ -128,6 +128,7 @@ func (ac *APIController) startWSHealth() {
if err != nil {
ac.logger.WithField("loop", "ws-health").WithError(err).Warning("ws write error, reconnecting")
ac.wsConn.CloseAndReconnect()
+ time.Sleep(time.Second * 5)
continue
} else {
ConnectionStatus.With(prometheus.Labels{
diff --git a/web/package-lock.json b/web/package-lock.json
index e5fe21475b..4101dbc3b8 100644
--- a/web/package-lock.json
+++ b/web/package-lock.json
@@ -46,8 +46,7 @@
"eslint-plugin-lit": "^1.5.1",
"flowchart.js": "^1.15.0",
"fuse.js": "^6.4.6",
- "lit-element": "^3.0.0",
- "lit-html": "^2.0.0",
+ "lit": "^2.0.0",
"moment": "^2.29.1",
"prettier": "^2.4.1",
"rapidoc": "^9.1.2",
@@ -5494,6 +5493,16 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
},
+ "node_modules/lit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-2.0.0.tgz",
+ "integrity": "sha512-pqi5O/wVzQ9Bn4ERRoYQlt1EAUWyY5Wv888vzpoArbtChc+zfUv1XohRqSdtQZYCogl0eHKd+MQwymg2XJfECg==",
+ "dependencies": {
+ "@lit/reactive-element": "^1.0.0",
+ "lit-element": "^3.0.0",
+ "lit-html": "^2.0.0"
+ }
+ },
"node_modules/lit-analyzer": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/lit-analyzer/-/lit-analyzer-1.2.1.tgz",
@@ -12483,6 +12492,16 @@
"resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz",
"integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA="
},
+ "lit": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lit/-/lit-2.0.0.tgz",
+ "integrity": "sha512-pqi5O/wVzQ9Bn4ERRoYQlt1EAUWyY5Wv888vzpoArbtChc+zfUv1XohRqSdtQZYCogl0eHKd+MQwymg2XJfECg==",
+ "requires": {
+ "@lit/reactive-element": "^1.0.0",
+ "lit-element": "^3.0.0",
+ "lit-html": "^2.0.0"
+ }
+ },
"lit-analyzer": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/lit-analyzer/-/lit-analyzer-1.2.1.tgz",
diff --git a/web/package.json b/web/package.json
index 40975dcb7e..b443ed9ade 100644
--- a/web/package.json
+++ b/web/package.json
@@ -78,8 +78,7 @@
"eslint-plugin-lit": "^1.5.1",
"flowchart.js": "^1.15.0",
"fuse.js": "^6.4.6",
- "lit-element": "^3.0.0",
- "lit-html": "^2.0.0",
+ "lit": "^2.0.0",
"moment": "^2.29.1",
"prettier": "^2.4.1",
"rapidoc": "^9.1.2",
diff --git a/web/poly.ts b/web/poly.ts
index 9fdc4a56df..43009f976f 100644
--- a/web/poly.ts
+++ b/web/poly.ts
@@ -2,3 +2,4 @@
window["polymerSkipLoadingFontRoboto"] = true;
import "construct-style-sheets-polyfill";
import "@webcomponents/webcomponentsjs";
+import "lit/polyfill-support";
diff --git a/web/src/elements/CodeMirror.ts b/web/src/elements/CodeMirror.ts
index 657d504622..18d819374f 100644
--- a/web/src/elements/CodeMirror.ts
+++ b/web/src/elements/CodeMirror.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import CodeMirror from "codemirror";
import "codemirror/addon/display/autorefresh";
@@ -22,7 +15,7 @@ import CodeMirrorStyle from "codemirror/lib/codemirror.css";
import CodeMirrorTheme from "codemirror/theme/monokai.css";
import CodeMirrorDialogStyle from "codemirror/addon/dialog/dialog.css";
import CodeMirrorShowHintStyle from "codemirror/addon/hint/show-hint.css";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import YAML from "yaml";
@customElement("ak-codemirror")
diff --git a/web/src/elements/Divider.ts b/web/src/elements/Divider.ts
index a3451d82f6..f6ee702c92 100644
--- a/web/src/elements/Divider.ts
+++ b/web/src/elements/Divider.ts
@@ -1,6 +1,7 @@
-import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import AKGlobal from "../authentik.css";
+import { customElement } from "lit/decorators";
@customElement("ak-divider")
export class Divider extends LitElement {
diff --git a/web/src/elements/EmptyState.ts b/web/src/elements/EmptyState.ts
index 03eaf5f328..c8239f82ae 100644
--- a/web/src/elements/EmptyState.ts
+++ b/web/src/elements/EmptyState.ts
@@ -1,9 +1,9 @@
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
import PFEmptyState from "@patternfly/patternfly/components/EmptyState/empty-state.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFTitle from "@patternfly/patternfly/components/Title/title.css";
import AKGlobal from "../authentik.css";
-
+import { customElement, property } from "lit/decorators";
import { PFSize } from "./Spinner";
@customElement("ak-empty-state")
diff --git a/web/src/elements/Expand.ts b/web/src/elements/Expand.ts
index 8d1c91af1a..f26412bb2e 100644
--- a/web/src/elements/Expand.ts
+++ b/web/src/elements/Expand.ts
@@ -1,6 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
import PFExpandableSection from "../../node_modules/@patternfly/patternfly/components/ExpandableSection/expandable-section.css";
+import { customElement, property } from "lit/decorators";
@customElement("ak-expand")
export class Expand extends LitElement {
diff --git a/web/src/elements/Label.ts b/web/src/elements/Label.ts
index 87cc4c3bcc..7adccdddca 100644
--- a/web/src/elements/Label.ts
+++ b/web/src/elements/Label.ts
@@ -1,7 +1,8 @@
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFLabel from "@patternfly/patternfly/components/Label/label.css";
import AKGlobal from "../authentik.css";
+import { customElement, property } from "lit/decorators";
export enum PFColor {
Green = "pf-m-green",
diff --git a/web/src/elements/LoadingOverlay.ts b/web/src/elements/LoadingOverlay.ts
index b757e8ca7c..1f88d86ab3 100644
--- a/web/src/elements/LoadingOverlay.ts
+++ b/web/src/elements/LoadingOverlay.ts
@@ -1,14 +1,7 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import { PFSize } from "./Spinner";
+import { customElement, property } from "lit/decorators";
@customElement("ak-loading-overlay")
export class LoadingOverlay extends LitElement {
diff --git a/web/src/elements/PageHeader.ts b/web/src/elements/PageHeader.ts
index b3c433fb82..4017b91607 100644
--- a/web/src/elements/PageHeader.ts
+++ b/web/src/elements/PageHeader.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
import AKGlobal from "../authentik.css";
diff --git a/web/src/elements/Spinner.ts b/web/src/elements/Spinner.ts
index 2443d2dcb3..78a26d8506 100644
--- a/web/src/elements/Spinner.ts
+++ b/web/src/elements/Spinner.ts
@@ -1,6 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
import PFSpinner from "@patternfly/patternfly/components/Spinner/spinner.css";
+import { customElement, property } from "lit/decorators";
export enum PFSize {
Small = "pf-m-sm",
diff --git a/web/src/elements/Tabs.ts b/web/src/elements/Tabs.ts
index 56a0b57ad1..bc6fecde7d 100644
--- a/web/src/elements/Tabs.ts
+++ b/web/src/elements/Tabs.ts
@@ -1,13 +1,6 @@
-import {
- LitElement,
- html,
- customElement,
- property,
- CSSResult,
- TemplateResult,
- css,
-} from "lit-element";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { LitElement, html, CSSResult, TemplateResult, css } from "lit";
+import { customElement, property } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
import PFTabs from "@patternfly/patternfly/components/Tabs/tabs.css";
import PFGlobal from "@patternfly/patternfly/patternfly-base.css";
import AKGlobal from "../authentik.css";
diff --git a/web/src/elements/buttons/ActionButton.ts b/web/src/elements/buttons/ActionButton.ts
index ef87760e59..0446fccdeb 100644
--- a/web/src/elements/buttons/ActionButton.ts
+++ b/web/src/elements/buttons/ActionButton.ts
@@ -1,4 +1,4 @@
-import { customElement, property } from "lit-element";
+import { customElement, property } from "lit/decorators";
import { SpinnerButton } from "./SpinnerButton";
import { showMessage } from "../messages/MessageContainer";
import { MessageLevel } from "../messages/Message";
diff --git a/web/src/elements/buttons/Dropdown.ts b/web/src/elements/buttons/Dropdown.ts
index 3a7c767ed1..ac9da36f7a 100644
--- a/web/src/elements/buttons/Dropdown.ts
+++ b/web/src/elements/buttons/Dropdown.ts
@@ -1,4 +1,5 @@
-import { customElement, html, LitElement, TemplateResult } from "lit-element";
+import { html, LitElement, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
@customElement("ak-dropdown")
export class DropdownButton extends LitElement {
diff --git a/web/src/elements/buttons/ModalButton.ts b/web/src/elements/buttons/ModalButton.ts
index a8bd42f398..74173bfbf3 100644
--- a/web/src/elements/buttons/ModalButton.ts
+++ b/web/src/elements/buttons/ModalButton.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFModalBox from "@patternfly/patternfly/components/ModalBox/modal-box.css";
diff --git a/web/src/elements/buttons/SpinnerButton.ts b/web/src/elements/buttons/SpinnerButton.ts
index 27bbc07593..20a88494ee 100644
--- a/web/src/elements/buttons/SpinnerButton.ts
+++ b/web/src/elements/buttons/SpinnerButton.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFSpinner from "@patternfly/patternfly/components/Spinner/spinner.css";
diff --git a/web/src/elements/buttons/TokenCopyButton.ts b/web/src/elements/buttons/TokenCopyButton.ts
index 348caa7487..9914a1cfc2 100644
--- a/web/src/elements/buttons/TokenCopyButton.ts
+++ b/web/src/elements/buttons/TokenCopyButton.ts
@@ -1,4 +1,4 @@
-import { customElement, property } from "lit-element";
+import { customElement, property } from "lit/decorators";
import { CoreApi } from "@goauthentik/api";
import { ERROR_CLASS, SECONDARY_CLASS, SUCCESS_CLASS } from "../../constants";
import { DEFAULT_CONFIG } from "../../api/Config";
diff --git a/web/src/elements/cards/AggregateCard.ts b/web/src/elements/cards/AggregateCard.ts
index dd38c40747..ebc73b90cd 100644
--- a/web/src/elements/cards/AggregateCard.ts
+++ b/web/src/elements/cards/AggregateCard.ts
@@ -1,13 +1,6 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFCard from "@patternfly/patternfly/components/Card/card.css";
import PFFlex from "@patternfly/patternfly/layouts/Flex/flex.css";
diff --git a/web/src/elements/cards/AggregatePromiseCard.ts b/web/src/elements/cards/AggregatePromiseCard.ts
index 4ac796b1cc..273d1c57bd 100644
--- a/web/src/elements/cards/AggregatePromiseCard.ts
+++ b/web/src/elements/cards/AggregatePromiseCard.ts
@@ -1,5 +1,6 @@
-import { customElement, html, property, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import { AggregateCard } from "./AggregateCard";
import "../Spinner";
import { PFSize } from "../Spinner";
diff --git a/web/src/elements/charts/AdminLoginsChart.ts b/web/src/elements/charts/AdminLoginsChart.ts
index 34f2d7a91d..13f6026d14 100644
--- a/web/src/elements/charts/AdminLoginsChart.ts
+++ b/web/src/elements/charts/AdminLoginsChart.ts
@@ -1,4 +1,4 @@
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { ChartData } from "chart.js";
import { AdminApi, LoginMetrics } from "@goauthentik/api";
import { AKChart } from "./Chart";
diff --git a/web/src/elements/charts/ApplicationAuthorizeChart.ts b/web/src/elements/charts/ApplicationAuthorizeChart.ts
index 55d7d2ce20..7fd9669189 100644
--- a/web/src/elements/charts/ApplicationAuthorizeChart.ts
+++ b/web/src/elements/charts/ApplicationAuthorizeChart.ts
@@ -1,4 +1,4 @@
-import { customElement, property } from "lit-element";
+import { customElement, property } from "lit/decorators";
import { Coordinate, CoreApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
import { AKChart } from "./Chart";
diff --git a/web/src/elements/charts/Chart.ts b/web/src/elements/charts/Chart.ts
index cd6c0635b0..13074c7aae 100644
--- a/web/src/elements/charts/Chart.ts
+++ b/web/src/elements/charts/Chart.ts
@@ -1,4 +1,5 @@
-import { css, CSSResult, html, LitElement, property, TemplateResult } from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { property } from "lit/decorators";
import { Chart, Plugin, Tick, ChartConfiguration, ChartData, ChartOptions } from "chart.js";
import { Legend, Tooltip } from "chart.js";
import { DoughnutController, LineController, BarController } from "chart.js";
diff --git a/web/src/elements/charts/UserChart.ts b/web/src/elements/charts/UserChart.ts
index d732cd3b66..f68b6cd4bb 100644
--- a/web/src/elements/charts/UserChart.ts
+++ b/web/src/elements/charts/UserChart.ts
@@ -1,4 +1,4 @@
-import { customElement, property } from "lit-element";
+import { customElement, property } from "lit/decorators";
import { CoreApi, UserMetrics } from "@goauthentik/api";
import { AKChart } from "./Chart";
import { DEFAULT_CONFIG } from "../../api/Config";
diff --git a/web/src/elements/chips/Chip.ts b/web/src/elements/chips/Chip.ts
index 8a59418eeb..4f3d350f97 100644
--- a/web/src/elements/chips/Chip.ts
+++ b/web/src/elements/chips/Chip.ts
@@ -1,4 +1,5 @@
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
diff --git a/web/src/elements/chips/ChipGroup.ts b/web/src/elements/chips/ChipGroup.ts
index a320458c12..7ab30c9365 100644
--- a/web/src/elements/chips/ChipGroup.ts
+++ b/web/src/elements/chips/ChipGroup.ts
@@ -1,4 +1,5 @@
-import { CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFChip from "@patternfly/patternfly/components/Chip/chip.css";
diff --git a/web/src/elements/events/ObjectChangelog.ts b/web/src/elements/events/ObjectChangelog.ts
index a05c98ba9f..8101522d13 100644
--- a/web/src/elements/events/ObjectChangelog.ts
+++ b/web/src/elements/events/ObjectChangelog.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../table/Table";
import { Event, EventsApi } from "@goauthentik/api";
diff --git a/web/src/elements/events/UserEvents.ts b/web/src/elements/events/UserEvents.ts
index a10c6fb4b7..6595e2184b 100644
--- a/web/src/elements/events/UserEvents.ts
+++ b/web/src/elements/events/UserEvents.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../table/Table";
import { Event, EventsApi } from "@goauthentik/api";
diff --git a/web/src/elements/forms/ConfirmationForm.ts b/web/src/elements/forms/ConfirmationForm.ts
index 7bc4620ee9..ece7525e69 100644
--- a/web/src/elements/forms/ConfirmationForm.ts
+++ b/web/src/elements/forms/ConfirmationForm.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EVENT_REFRESH } from "../../constants";
import { ModalButton } from "../buttons/ModalButton";
import "../buttons/SpinnerButton";
diff --git a/web/src/elements/forms/DeleteBulkForm.ts b/web/src/elements/forms/DeleteBulkForm.ts
index 2ae8cd816e..146927204e 100644
--- a/web/src/elements/forms/DeleteBulkForm.ts
+++ b/web/src/elements/forms/DeleteBulkForm.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EVENT_REFRESH } from "../../constants";
import { ModalButton } from "../buttons/ModalButton";
import { MessageLevel } from "../messages/Message";
@@ -7,7 +8,7 @@ import { showMessage } from "../messages/MessageContainer";
import "../buttons/SpinnerButton";
import { UsedBy, UsedByActionEnum } from "@goauthentik/api";
import PFList from "@patternfly/patternfly/components/List/list.css";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { Table, TableColumn } from "../table/Table";
import { AKResponse } from "../../api/Client";
import { PFSize } from "../Spinner";
diff --git a/web/src/elements/forms/DeleteForm.ts b/web/src/elements/forms/DeleteForm.ts
index cd6bad53d9..ecb3ea5ad2 100644
--- a/web/src/elements/forms/DeleteForm.ts
+++ b/web/src/elements/forms/DeleteForm.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EVENT_REFRESH } from "../../constants";
import { ModalButton } from "../buttons/ModalButton";
import { MessageLevel } from "../messages/Message";
@@ -7,7 +8,7 @@ import { showMessage } from "../messages/MessageContainer";
import "../buttons/SpinnerButton";
import { UsedBy, UsedByActionEnum } from "@goauthentik/api";
import PFList from "@patternfly/patternfly/components/List/list.css";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
@customElement("ak-forms-delete")
export class DeleteForm extends ModalButton {
diff --git a/web/src/elements/forms/Form.ts b/web/src/elements/forms/Form.ts
index 4ec7125209..4d52ec87bb 100644
--- a/web/src/elements/forms/Form.ts
+++ b/web/src/elements/forms/Form.ts
@@ -2,15 +2,8 @@ import "@polymer/paper-input/paper-input";
import "@polymer/iron-form/iron-form";
import { PaperInputElement } from "@polymer/paper-input/paper-input";
import { showMessage } from "../../elements/messages/MessageContainer";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFCard from "@patternfly/patternfly/components/Card/card.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
diff --git a/web/src/elements/forms/FormElement.ts b/web/src/elements/forms/FormElement.ts
index a906a6835c..99ff428cd4 100644
--- a/web/src/elements/forms/FormElement.ts
+++ b/web/src/elements/forms/FormElement.ts
@@ -1,5 +1,6 @@
-import { customElement, LitElement, CSSResult, property, css } from "lit-element";
-import { TemplateResult, html } from "lit-html";
+import { LitElement, CSSResult, css } from "lit";
+import { customElement, property } from "lit/decorators";
+import { TemplateResult, html } from "lit";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
import { ErrorDetail } from "@goauthentik/api";
diff --git a/web/src/elements/forms/FormGroup.ts b/web/src/elements/forms/FormGroup.ts
index c58f90ef85..87bf214bf7 100644
--- a/web/src/elements/forms/FormGroup.ts
+++ b/web/src/elements/forms/FormGroup.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/elements/forms/HorizontalFormElement.ts b/web/src/elements/forms/HorizontalFormElement.ts
index bd735d5399..bf0a9330d6 100644
--- a/web/src/elements/forms/HorizontalFormElement.ts
+++ b/web/src/elements/forms/HorizontalFormElement.ts
@@ -1,5 +1,6 @@
-import { customElement, LitElement, CSSResult, property, css } from "lit-element";
-import { TemplateResult, html } from "lit-html";
+import { LitElement, CSSResult, css } from "lit";
+import { customElement, property } from "lit/decorators";
+import { TemplateResult, html } from "lit";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/elements/forms/ModalForm.ts b/web/src/elements/forms/ModalForm.ts
index 80d58a790c..4a217e4655 100644
--- a/web/src/elements/forms/ModalForm.ts
+++ b/web/src/elements/forms/ModalForm.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EVENT_REFRESH } from "../../constants";
import { ModalButton } from "../buttons/ModalButton";
import { Form } from "./Form";
diff --git a/web/src/elements/forms/ModelForm.ts b/web/src/elements/forms/ModelForm.ts
index 0168788386..e3f53b1096 100644
--- a/web/src/elements/forms/ModelForm.ts
+++ b/web/src/elements/forms/ModelForm.ts
@@ -1,4 +1,5 @@
-import { property, TemplateResult } from "lit-element";
+import { TemplateResult } from "lit";
+import { property } from "lit/decorators";
import { EVENT_REFRESH } from "../../constants";
import { Form } from "./Form";
diff --git a/web/src/elements/forms/ProxyForm.ts b/web/src/elements/forms/ProxyForm.ts
index cb8e1a3ac7..f57806d66c 100644
--- a/web/src/elements/forms/ProxyForm.ts
+++ b/web/src/elements/forms/ProxyForm.ts
@@ -1,4 +1,5 @@
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { Form } from "./Form";
@customElement("ak-proxy-form")
diff --git a/web/src/elements/messages/Message.ts b/web/src/elements/messages/Message.ts
index 8e191a2eb8..c2ceed6494 100644
--- a/web/src/elements/messages/Message.ts
+++ b/web/src/elements/messages/Message.ts
@@ -1,4 +1,5 @@
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFAlertGroup from "@patternfly/patternfly/components/AlertGroup/alert-group.css";
import PFAlert from "@patternfly/patternfly/components/Alert/alert.css";
diff --git a/web/src/elements/messages/MessageContainer.ts b/web/src/elements/messages/MessageContainer.ts
index fef7876710..0c3307b795 100644
--- a/web/src/elements/messages/MessageContainer.ts
+++ b/web/src/elements/messages/MessageContainer.ts
@@ -1,12 +1,5 @@
-import {
- LitElement,
- html,
- customElement,
- TemplateResult,
- property,
- CSSResult,
- css,
-} from "lit-element";
+import { LitElement, html, TemplateResult, CSSResult, css } from "lit";
+import { customElement, property } from "lit/decorators";
import "./Message";
import { APIMessage } from "./Message";
import PFAlertGroup from "@patternfly/patternfly/components/AlertGroup/alert-group.css";
diff --git a/web/src/elements/notifications/APIDrawer.ts b/web/src/elements/notifications/APIDrawer.ts
index b4aaacbba3..e8a4a9571f 100644
--- a/web/src/elements/notifications/APIDrawer.ts
+++ b/web/src/elements/notifications/APIDrawer.ts
@@ -1,13 +1,6 @@
import { Middleware, ResponseContext } from "@goauthentik/api";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFNotificationDrawer from "@patternfly/patternfly/components/NotificationDrawer/notification-drawer.css";
import PFDropdown from "@patternfly/patternfly/components/Dropdown/dropdown.css";
diff --git a/web/src/elements/notifications/NotificationDrawer.ts b/web/src/elements/notifications/NotificationDrawer.ts
index 20343da394..9d4d5113eb 100644
--- a/web/src/elements/notifications/NotificationDrawer.ts
+++ b/web/src/elements/notifications/NotificationDrawer.ts
@@ -1,13 +1,6 @@
import { t } from "@lingui/macro";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EventsApi, Notification } from "@goauthentik/api";
import { AKResponse } from "../../api/Client";
import { DEFAULT_CONFIG } from "../../api/Config";
diff --git a/web/src/elements/oauth/UserCodeList.ts b/web/src/elements/oauth/UserCodeList.ts
index 27203151da..89a0d7a256 100644
--- a/web/src/elements/oauth/UserCodeList.ts
+++ b/web/src/elements/oauth/UserCodeList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../table/Table";
diff --git a/web/src/elements/oauth/UserRefreshList.ts b/web/src/elements/oauth/UserRefreshList.ts
index d19f42574a..4c435a0fa8 100644
--- a/web/src/elements/oauth/UserRefreshList.ts
+++ b/web/src/elements/oauth/UserRefreshList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../table/Table";
import PFFlex from "@patternfly/patternfly/layouts/Flex/flex.css";
diff --git a/web/src/elements/router/Route.ts b/web/src/elements/router/Route.ts
index 90ac2b64e9..7a0dc4b110 100644
--- a/web/src/elements/router/Route.ts
+++ b/web/src/elements/router/Route.ts
@@ -1,4 +1,4 @@
-import { html, TemplateResult } from "lit-html";
+import { html, TemplateResult } from "lit";
export const SLUG_REGEX = "[-a-zA-Z0-9_]+";
export const ID_REGEX = "\\d+";
diff --git a/web/src/elements/router/RouteMatch.ts b/web/src/elements/router/RouteMatch.ts
index 046b3e0143..3113cc581b 100644
--- a/web/src/elements/router/RouteMatch.ts
+++ b/web/src/elements/router/RouteMatch.ts
@@ -1,4 +1,4 @@
-import { TemplateResult } from "lit-html";
+import { TemplateResult } from "lit";
import { Route } from "./Route";
export class RouteMatch {
diff --git a/web/src/elements/router/Router404.ts b/web/src/elements/router/Router404.ts
index 2c3e2200a1..8783635f1e 100644
--- a/web/src/elements/router/Router404.ts
+++ b/web/src/elements/router/Router404.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFEmptyState from "@patternfly/patternfly/components/EmptyState/empty-state.css";
import PFTitle from "@patternfly/patternfly/components/Title/title.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
diff --git a/web/src/elements/router/RouterOutlet.ts b/web/src/elements/router/RouterOutlet.ts
index 2aeb4493a0..2e493c07b5 100644
--- a/web/src/elements/router/RouterOutlet.ts
+++ b/web/src/elements/router/RouterOutlet.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { Route } from "./Route";
import { RouteMatch } from "./RouteMatch";
import AKGlobal from "../../authentik.css";
diff --git a/web/src/elements/sidebar/Sidebar.ts b/web/src/elements/sidebar/Sidebar.ts
index a86ad4139d..fefa8cc964 100644
--- a/web/src/elements/sidebar/Sidebar.ts
+++ b/web/src/elements/sidebar/Sidebar.ts
@@ -1,4 +1,5 @@
-import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFNav from "@patternfly/patternfly/components/Nav/nav.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
diff --git a/web/src/elements/sidebar/SidebarBrand.ts b/web/src/elements/sidebar/SidebarBrand.ts
index d8d982f103..83933a6a0e 100644
--- a/web/src/elements/sidebar/SidebarBrand.ts
+++ b/web/src/elements/sidebar/SidebarBrand.ts
@@ -1,12 +1,5 @@
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFGlobal from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
diff --git a/web/src/elements/sidebar/SidebarItem.ts b/web/src/elements/sidebar/SidebarItem.ts
index 3d1ebb184b..9c1a42a624 100644
--- a/web/src/elements/sidebar/SidebarItem.ts
+++ b/web/src/elements/sidebar/SidebarItem.ts
@@ -1,10 +1,11 @@
-import { css, CSSResult, customElement, LitElement, property } from "lit-element";
+import { css, CSSResult, LitElement } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFNav from "@patternfly/patternfly/components/Nav/nav.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import AKGlobal from "../../authentik.css";
-import { TemplateResult, html } from "lit-html";
-import { until } from "lit-html/directives/until";
+import { TemplateResult, html } from "lit";
+import { until } from "lit/directives/until";
import { ROUTE_SEPARATOR } from "../../constants";
@customElement("ak-sidebar-item")
diff --git a/web/src/elements/sidebar/SidebarUser.ts b/web/src/elements/sidebar/SidebarUser.ts
index e140ec35c8..40ac50c395 100644
--- a/web/src/elements/sidebar/SidebarUser.ts
+++ b/web/src/elements/sidebar/SidebarUser.ts
@@ -1,11 +1,12 @@
-import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFNav from "@patternfly/patternfly/components/Nav/nav.css";
import PFAvatar from "@patternfly/patternfly/components/Avatar/avatar.css";
import { me } from "../../api/Users";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-sidebar-user")
export class SidebarUser extends LitElement {
diff --git a/web/src/elements/table/Table.ts b/web/src/elements/table/Table.ts
index 70ea614837..595894d582 100644
--- a/web/src/elements/table/Table.ts
+++ b/web/src/elements/table/Table.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
@@ -17,7 +18,7 @@ import "../EmptyState";
import "../chips/Chip";
import "../chips/ChipGroup";
import { EVENT_REFRESH } from "../../constants";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
export class TableColumn {
title: string;
diff --git a/web/src/elements/table/TableModal.ts b/web/src/elements/table/TableModal.ts
index 4b50f76688..2c7862207f 100644
--- a/web/src/elements/table/TableModal.ts
+++ b/web/src/elements/table/TableModal.ts
@@ -1,5 +1,6 @@
-import { CSSResult, LitElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { CSSResult, LitElement } from "lit";
+import { property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { Table } from "./Table";
import PFModalBox from "@patternfly/patternfly/components/ModalBox/modal-box.css";
import PFBullseye from "@patternfly/patternfly/layouts/Bullseye/bullseye.css";
diff --git a/web/src/elements/table/TablePage.ts b/web/src/elements/table/TablePage.ts
index 2109dfa998..203c6cde18 100644
--- a/web/src/elements/table/TablePage.ts
+++ b/web/src/elements/table/TablePage.ts
@@ -1,6 +1,6 @@
-import { CSSResult } from "lit-element";
-import { html, TemplateResult } from "lit-html";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { CSSResult } from "lit";
+import { html, TemplateResult } from "lit";
+import { ifDefined } from "lit/directives/if-defined";
import { Table } from "./Table";
import "../../elements/PageHeader";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
diff --git a/web/src/elements/table/TablePagination.ts b/web/src/elements/table/TablePagination.ts
index e589af365e..75ce831f5f 100644
--- a/web/src/elements/table/TablePagination.ts
+++ b/web/src/elements/table/TablePagination.ts
@@ -1,4 +1,5 @@
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKPagination } from "../../api/Client";
import { t } from "@lingui/macro";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
diff --git a/web/src/elements/table/TableSearch.ts b/web/src/elements/table/TableSearch.ts
index 20a40ce305..94d2ec84ae 100644
--- a/web/src/elements/table/TableSearch.ts
+++ b/web/src/elements/table/TableSearch.ts
@@ -1,5 +1,6 @@
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFToolbar from "@patternfly/patternfly/components/Toolbar/toolbar.css";
diff --git a/web/src/elements/user/SessionList.ts b/web/src/elements/user/SessionList.ts
index 3dbdbdaec1..3c486937e6 100644
--- a/web/src/elements/user/SessionList.ts
+++ b/web/src/elements/user/SessionList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../table/Table";
diff --git a/web/src/elements/user/UserConsentList.ts b/web/src/elements/user/UserConsentList.ts
index 6b0a7e217e..549ccfcd49 100644
--- a/web/src/elements/user/UserConsentList.ts
+++ b/web/src/elements/user/UserConsentList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../table/Table";
diff --git a/web/src/flows/FlowExecutor.ts b/web/src/flows/FlowExecutor.ts
index bd4456904f..ca34b862d5 100644
--- a/web/src/flows/FlowExecutor.ts
+++ b/web/src/flows/FlowExecutor.ts
@@ -1,14 +1,6 @@
import { t } from "@lingui/macro";
-import {
- LitElement,
- html,
- customElement,
- property,
- TemplateResult,
- CSSResult,
- css,
-} from "lit-element";
-
+import { LitElement, html, TemplateResult, CSSResult, css } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFTitle from "@patternfly/patternfly/components/Title/title.css";
@@ -17,7 +9,7 @@ import PFList from "@patternfly/patternfly/components/List/list.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import AKGlobal from "../authentik.css";
-import { unsafeHTML } from "lit-html/directives/unsafe-html";
+import { unsafeHTML } from "lit/directives/unsafe-html";
import "../elements/LoadingOverlay";
import "./access_denied/FlowAccessDenied";
import "./stages/authenticator_static/AuthenticatorStaticStage";
@@ -45,7 +37,7 @@ import {
ShellChallenge,
} from "@goauthentik/api";
import { DEFAULT_CONFIG, tenant } from "../api/Config";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { TITLE_DEFAULT } from "../constants";
import { configureSentry } from "../api/Sentry";
import { WebsocketClient } from "../common/ws";
diff --git a/web/src/flows/FormStatic.ts b/web/src/flows/FormStatic.ts
index b2aa38d340..3b10e15d89 100644
--- a/web/src/flows/FormStatic.ts
+++ b/web/src/flows/FormStatic.ts
@@ -1,15 +1,8 @@
import { t } from "@lingui/macro";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFAvatar from "@patternfly/patternfly/components/Avatar/avatar.css";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-form-static")
export class FormStatic extends LitElement {
diff --git a/web/src/flows/access_denied/FlowAccessDenied.ts b/web/src/flows/access_denied/FlowAccessDenied.ts
index 389146c270..468180a3df 100644
--- a/web/src/flows/access_denied/FlowAccessDenied.ts
+++ b/web/src/flows/access_denied/FlowAccessDenied.ts
@@ -1,5 +1,6 @@
import { AccessDeniedChallenge, FlowChallengeResponseRequest } from "@goauthentik/api";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { BaseStage } from "../stages/base";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFTitle from "@patternfly/patternfly/components/Title/title.css";
diff --git a/web/src/flows/sources/plex/PlexLoginInit.ts b/web/src/flows/sources/plex/PlexLoginInit.ts
index 3b174b33b0..a18ad3fcbc 100644
--- a/web/src/flows/sources/plex/PlexLoginInit.ts
+++ b/web/src/flows/sources/plex/PlexLoginInit.ts
@@ -10,8 +10,9 @@ import PFTitle from "@patternfly/patternfly/components/Title/title.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import AKGlobal from "../../../authentik.css";
-import { CSSResult, customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { CSSResult } from "lit";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { BaseStage } from "../../stages/base";
import { PlexAPIClient, popupCenterScreen } from "./API";
import { DEFAULT_CONFIG } from "../../../api/Config";
diff --git a/web/src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts b/web/src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts
index a06f1ce549..af05fb4e81 100644
--- a/web/src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts
+++ b/web/src/flows/stages/authenticator_duo/AuthenticatorDuoStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -17,7 +18,7 @@ import {
StagesApi,
} from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-authenticator-duo")
export class AuthenticatorDuoStage extends BaseStage<
diff --git a/web/src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts b/web/src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts
index 0db675f9c0..73f8df752d 100644
--- a/web/src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts
+++ b/web/src/flows/stages/authenticator_static/AuthenticatorStaticStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { css, CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -15,7 +16,7 @@ import {
AuthenticatorStaticChallenge,
AuthenticatorStaticChallengeResponseRequest,
} from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
export const STATIC_TOKEN_STYLE = css`
/* Static OTP Tokens */
diff --git a/web/src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts b/web/src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts
index 31670802ba..8049a2ef65 100644
--- a/web/src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts
+++ b/web/src/flows/stages/authenticator_totp/AuthenticatorTOTPStage.ts
@@ -1,5 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
+
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -18,7 +20,7 @@ import {
AuthenticatorTOTPChallenge,
AuthenticatorTOTPChallengeResponseRequest,
} from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-authenticator-totp")
export class AuthenticatorTOTPStage extends BaseStage<
diff --git a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts
index cf189879b9..79addc3f7e 100644
--- a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts
+++ b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { css, CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts
index 0be36ab303..635ed885c0 100644
--- a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts
+++ b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageCode.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -18,7 +19,7 @@ import {
AuthenticatorValidationChallengeResponseRequest,
DeviceChallenge,
} from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-authenticator-validate-code")
export class AuthenticatorValidateStageWebCode extends BaseStage<
diff --git a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts
index dc430446bc..5772059ef0 100644
--- a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts
+++ b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageDuo.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -17,7 +18,7 @@ import {
AuthenticatorValidationChallengeResponseRequest,
DeviceChallenge,
} from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-authenticator-validate-duo")
export class AuthenticatorValidateStageWebDuo extends BaseStage<
diff --git a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts
index 35f41b6acf..2354068f75 100644
--- a/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts
+++ b/web/src/flows/stages/authenticator_validate/AuthenticatorValidateStageWebAuthn.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts b/web/src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts
index 50f4a6d106..490a076923 100644
--- a/web/src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts
+++ b/web/src/flows/stages/authenticator_webauthn/WebAuthnAuthenticatorRegisterStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/flows/stages/autosubmit/AutosubmitStage.ts b/web/src/flows/stages/autosubmit/AutosubmitStage.ts
index c56b8b910e..718387b858 100644
--- a/web/src/flows/stages/autosubmit/AutosubmitStage.ts
+++ b/web/src/flows/stages/autosubmit/AutosubmitStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/flows/stages/base.ts b/web/src/flows/stages/base.ts
index b188d4669f..cfc6b2f530 100644
--- a/web/src/flows/stages/base.ts
+++ b/web/src/flows/stages/base.ts
@@ -1,5 +1,6 @@
import { ErrorDetail } from "@goauthentik/api";
-import { html, LitElement, property, TemplateResult } from "lit-element";
+import { html, LitElement, TemplateResult } from "lit";
+import { property } from "lit/decorators";
export interface StageHost {
challenge?: unknown;
diff --git a/web/src/flows/stages/captcha/CaptchaStage.ts b/web/src/flows/stages/captcha/CaptchaStage.ts
index dde16949eb..5f99b9edd6 100644
--- a/web/src/flows/stages/captcha/CaptchaStage.ts
+++ b/web/src/flows/stages/captcha/CaptchaStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -13,7 +14,7 @@ import "../../../elements/forms/FormElement";
import "../../../elements/EmptyState";
import "../../FormStatic";
import { CaptchaChallenge, CaptchaChallengeResponseRequest } from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-captcha")
export class CaptchaStage extends BaseStage {
diff --git a/web/src/flows/stages/consent/ConsentStage.ts b/web/src/flows/stages/consent/ConsentStage.ts
index 3ade523d7d..a5736f0b73 100644
--- a/web/src/flows/stages/consent/ConsentStage.ts
+++ b/web/src/flows/stages/consent/ConsentStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFList from "@patternfly/patternfly/components/List/list.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
@@ -13,7 +14,7 @@ import { BaseStage } from "../base";
import "../../../elements/EmptyState";
import "../../FormStatic";
import { ConsentChallenge, ConsentChallengeResponseRequest } from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-consent")
export class ConsentStage extends BaseStage {
diff --git a/web/src/flows/stages/dummy/DummyStage.ts b/web/src/flows/stages/dummy/DummyStage.ts
index 41a3245a1e..5fa17f7ccc 100644
--- a/web/src/flows/stages/dummy/DummyStage.ts
+++ b/web/src/flows/stages/dummy/DummyStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/flows/stages/email/EmailStage.ts b/web/src/flows/stages/email/EmailStage.ts
index e3c1f1fb7f..fea006741a 100644
--- a/web/src/flows/stages/email/EmailStage.ts
+++ b/web/src/flows/stages/email/EmailStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/flows/stages/identification/IdentificationStage.ts b/web/src/flows/stages/identification/IdentificationStage.ts
index bf1db06322..f2322844d5 100644
--- a/web/src/flows/stages/identification/IdentificationStage.ts
+++ b/web/src/flows/stages/identification/IdentificationStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { css, CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { BaseStage } from "../base";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
diff --git a/web/src/flows/stages/password/PasswordStage.ts b/web/src/flows/stages/password/PasswordStage.ts
index 067d851993..c9310aa10d 100644
--- a/web/src/flows/stages/password/PasswordStage.ts
+++ b/web/src/flows/stages/password/PasswordStage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
@@ -13,7 +14,7 @@ import "../../../elements/EmptyState";
import { PasswordManagerPrefill } from "../identification/IdentificationStage";
import "../../FormStatic";
import { PasswordChallenge, PasswordChallengeResponseRequest } from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-stage-password")
export class PasswordStage extends BaseStage {
diff --git a/web/src/flows/stages/prompt/PromptStage.ts b/web/src/flows/stages/prompt/PromptStage.ts
index 72a1e0aa67..5e7037b7cc 100644
--- a/web/src/flows/stages/prompt/PromptStage.ts
+++ b/web/src/flows/stages/prompt/PromptStage.ts
@@ -1,6 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
-import { unsafeHTML } from "lit-html/directives/unsafe-html";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
+import { unsafeHTML } from "lit/directives/unsafe-html";
import PFLogin from "@patternfly/patternfly/components/Login/login.css";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
diff --git a/web/src/interfaces/AdminInterface.ts b/web/src/interfaces/AdminInterface.ts
index a627a179a4..c7aaf574a1 100644
--- a/web/src/interfaces/AdminInterface.ts
+++ b/web/src/interfaces/AdminInterface.ts
@@ -1,13 +1,6 @@
import "../elements/messages/MessageContainer";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { me } from "../api/Users";
import { ID_REGEX, SLUG_REGEX, UUID_REGEX } from "../elements/router/Route";
import "./locale";
@@ -23,7 +16,7 @@ import "../elements/router/RouterOutlet";
import "../elements/messages/MessageContainer";
import "../elements/notifications/NotificationDrawer";
import "../elements/sidebar/Sidebar";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import {
EVENT_API_DRAWER_TOGGLE,
EVENT_NOTIFICATION_DRAWER_TOGGLE,
diff --git a/web/src/interfaces/UserInterface.ts b/web/src/interfaces/UserInterface.ts
index c623d82318..b64b019aaf 100644
--- a/web/src/interfaces/UserInterface.ts
+++ b/web/src/interfaces/UserInterface.ts
@@ -1,13 +1,6 @@
import "../elements/messages/MessageContainer";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { me } from "../api/Users";
import "./locale";
import "../elements/sidebar/SidebarItem";
@@ -37,7 +30,7 @@ import { WebsocketClient } from "../common/ws";
import { ROUTES } from "../routesUser";
import { first } from "../utils";
import { DefaultTenant } from "../elements/sidebar/SidebarBrand";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { uiConfig } from "../user/config";
@customElement("ak-interface-user")
diff --git a/web/src/pages/admin-overview/AdminOverviewPage.ts b/web/src/pages/admin-overview/AdminOverviewPage.ts
index 9e734ff17f..c2e925f5cf 100644
--- a/web/src/pages/admin-overview/AdminOverviewPage.ts
+++ b/web/src/pages/admin-overview/AdminOverviewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import "../../elements/charts/AdminLoginsChart";
import "../../elements/cards/AggregatePromiseCard";
diff --git a/web/src/pages/admin-overview/TopApplicationsTable.ts b/web/src/pages/admin-overview/TopApplicationsTable.ts
index 24905debd1..4f9c628cb1 100644
--- a/web/src/pages/admin-overview/TopApplicationsTable.ts
+++ b/web/src/pages/admin-overview/TopApplicationsTable.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EventsApi, EventTopPerUser } from "@goauthentik/api";
import PFTable from "@patternfly/patternfly/components/Table/table.css";
import AKGlobal from "../../authentik.css";
diff --git a/web/src/pages/admin-overview/cards/AdminStatusCard.ts b/web/src/pages/admin-overview/cards/AdminStatusCard.ts
index 09d9b01be7..049473987f 100644
--- a/web/src/pages/admin-overview/cards/AdminStatusCard.ts
+++ b/web/src/pages/admin-overview/cards/AdminStatusCard.ts
@@ -1,5 +1,5 @@
-import { html, TemplateResult } from "lit-html";
-import { until } from "lit-html/directives/until";
+import { html, TemplateResult } from "lit";
+import { until } from "lit/directives/until";
import { EVENT_REFRESH } from "../../../constants";
import { AggregateCard } from "../../../elements/cards/AggregateCard";
import { PFSize } from "../../../elements/Spinner";
diff --git a/web/src/pages/admin-overview/cards/BackupStatusCard.ts b/web/src/pages/admin-overview/cards/BackupStatusCard.ts
index cc2623bdd1..4d78b4baf1 100644
--- a/web/src/pages/admin-overview/cards/BackupStatusCard.ts
+++ b/web/src/pages/admin-overview/cards/BackupStatusCard.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { AdminStatus, AdminStatusCard } from "./AdminStatusCard";
import { AdminApi, StatusEnum, CapabilitiesEnum } from "@goauthentik/api";
import { config, DEFAULT_CONFIG } from "../../../api/Config";
diff --git a/web/src/pages/admin-overview/cards/SystemStatusCard.ts b/web/src/pages/admin-overview/cards/SystemStatusCard.ts
index 7ebcb1771a..564f3e5fba 100644
--- a/web/src/pages/admin-overview/cards/SystemStatusCard.ts
+++ b/web/src/pages/admin-overview/cards/SystemStatusCard.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { AdminApi, System } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { AdminStatusCard, AdminStatus } from "./AdminStatusCard";
diff --git a/web/src/pages/admin-overview/cards/VersionStatusCard.ts b/web/src/pages/admin-overview/cards/VersionStatusCard.ts
index ccfa91c021..debb793443 100644
--- a/web/src/pages/admin-overview/cards/VersionStatusCard.ts
+++ b/web/src/pages/admin-overview/cards/VersionStatusCard.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { AdminApi, Version } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { AdminStatusCard, AdminStatus } from "./AdminStatusCard";
diff --git a/web/src/pages/admin-overview/cards/WorkerStatusCard.ts b/web/src/pages/admin-overview/cards/WorkerStatusCard.ts
index e701083a4b..f8daaeb235 100644
--- a/web/src/pages/admin-overview/cards/WorkerStatusCard.ts
+++ b/web/src/pages/admin-overview/cards/WorkerStatusCard.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html } from "lit-element";
+import { html } from "lit";
+import { customElement } from "lit/decorators";
import { AdminApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { AdminStatus, AdminStatusCard } from "./AdminStatusCard";
diff --git a/web/src/pages/admin-overview/charts/FlowStatusChart.ts b/web/src/pages/admin-overview/charts/FlowStatusChart.ts
index 93b04ceef0..4df2d75012 100644
--- a/web/src/pages/admin-overview/charts/FlowStatusChart.ts
+++ b/web/src/pages/admin-overview/charts/FlowStatusChart.ts
@@ -1,5 +1,5 @@
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { FlowsApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/ConfirmationForm";
diff --git a/web/src/pages/admin-overview/charts/GroupCountStatusChart.ts b/web/src/pages/admin-overview/charts/GroupCountStatusChart.ts
index 664f6d1ac7..24ed01a254 100644
--- a/web/src/pages/admin-overview/charts/GroupCountStatusChart.ts
+++ b/web/src/pages/admin-overview/charts/GroupCountStatusChart.ts
@@ -1,4 +1,4 @@
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { CoreApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { AKChart } from "../../../elements/charts/Chart";
diff --git a/web/src/pages/admin-overview/charts/LDAPSyncStatusChart.ts b/web/src/pages/admin-overview/charts/LDAPSyncStatusChart.ts
index e12cd86af1..f65aedb47d 100644
--- a/web/src/pages/admin-overview/charts/LDAPSyncStatusChart.ts
+++ b/web/src/pages/admin-overview/charts/LDAPSyncStatusChart.ts
@@ -1,5 +1,5 @@
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { SourcesApi, StatusEnum } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/ConfirmationForm";
diff --git a/web/src/pages/admin-overview/charts/OutpostStatusChart.ts b/web/src/pages/admin-overview/charts/OutpostStatusChart.ts
index 54bd3f1bcc..1b7b8ce68d 100644
--- a/web/src/pages/admin-overview/charts/OutpostStatusChart.ts
+++ b/web/src/pages/admin-overview/charts/OutpostStatusChart.ts
@@ -1,5 +1,5 @@
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { OutpostsApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/ConfirmationForm";
diff --git a/web/src/pages/admin-overview/charts/PolicyStatusChart.ts b/web/src/pages/admin-overview/charts/PolicyStatusChart.ts
index 5ce453b0c1..474b10aad9 100644
--- a/web/src/pages/admin-overview/charts/PolicyStatusChart.ts
+++ b/web/src/pages/admin-overview/charts/PolicyStatusChart.ts
@@ -1,5 +1,5 @@
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { PoliciesApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/ConfirmationForm";
diff --git a/web/src/pages/admin-overview/charts/UserCountStatusChart.ts b/web/src/pages/admin-overview/charts/UserCountStatusChart.ts
index 4842963654..147d1565c2 100644
--- a/web/src/pages/admin-overview/charts/UserCountStatusChart.ts
+++ b/web/src/pages/admin-overview/charts/UserCountStatusChart.ts
@@ -1,4 +1,4 @@
-import { customElement } from "lit-element";
+import { customElement } from "lit/decorators";
import { CoreApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { AKChart } from "../../../elements/charts/Chart";
diff --git a/web/src/pages/applications/ApplicationCheckAccessForm.ts b/web/src/pages/applications/ApplicationCheckAccessForm.ts
index 61072fce0b..e0a0219bb8 100644
--- a/web/src/pages/applications/ApplicationCheckAccessForm.ts
+++ b/web/src/pages/applications/ApplicationCheckAccessForm.ts
@@ -1,10 +1,10 @@
import { Application, CoreApi, PolicyTestResult } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import { Form } from "../../elements/forms/Form";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import "../../elements/forms/HorizontalFormElement";
@customElement("ak-application-check-access-form")
diff --git a/web/src/pages/applications/ApplicationForm.ts b/web/src/pages/applications/ApplicationForm.ts
index daee9c30d9..85ff4faf83 100644
--- a/web/src/pages/applications/ApplicationForm.ts
+++ b/web/src/pages/applications/ApplicationForm.ts
@@ -7,11 +7,12 @@ import {
CapabilitiesEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { CSSResult, customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { CSSResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { config, DEFAULT_CONFIG } from "../../api/Config";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/buttons/Dropdown";
import "../../elements/Spinner";
import "../../elements/forms/ProxyForm";
diff --git a/web/src/pages/applications/ApplicationListPage.ts b/web/src/pages/applications/ApplicationListPage.ts
index bbe28a03a2..0b15e3c983 100644
--- a/web/src/pages/applications/ApplicationListPage.ts
+++ b/web/src/pages/applications/ApplicationListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { css, CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFAvatar from "@patternfly/patternfly/components/Avatar/avatar.css";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
diff --git a/web/src/pages/applications/ApplicationViewPage.ts b/web/src/pages/applications/ApplicationViewPage.ts
index 4370c83875..131f01a60f 100644
--- a/web/src/pages/applications/ApplicationViewPage.ts
+++ b/web/src/pages/applications/ApplicationViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import "../../elements/Tabs";
import "../../elements/charts/ApplicationAuthorizeChart";
@@ -20,7 +21,7 @@ import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
import AKGlobal from "../../authentik.css";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-application-view")
export class ApplicationViewPage extends LitElement {
diff --git a/web/src/pages/crypto/CertificateGenerateForm.ts b/web/src/pages/crypto/CertificateGenerateForm.ts
index 4404d88f04..ebd9a0d356 100644
--- a/web/src/pages/crypto/CertificateGenerateForm.ts
+++ b/web/src/pages/crypto/CertificateGenerateForm.ts
@@ -1,7 +1,7 @@
import { CertificateGenerationRequest, CertificateKeyPair, CryptoApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import { Form } from "../../elements/forms/Form";
import "../../elements/forms/HorizontalFormElement";
diff --git a/web/src/pages/crypto/CertificateKeyPairForm.ts b/web/src/pages/crypto/CertificateKeyPairForm.ts
index 9330b47f28..6a8d268fe6 100644
--- a/web/src/pages/crypto/CertificateKeyPairForm.ts
+++ b/web/src/pages/crypto/CertificateKeyPairForm.ts
@@ -1,9 +1,9 @@
import { CertificateKeyPair, CertificateKeyPairRequest, CryptoApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
import { ModelForm } from "../../elements/forms/ModelForm";
diff --git a/web/src/pages/crypto/CertificateKeyPairListPage.ts b/web/src/pages/crypto/CertificateKeyPairListPage.ts
index dbd5d666bf..6ed34ac092 100644
--- a/web/src/pages/crypto/CertificateKeyPairListPage.ts
+++ b/web/src/pages/crypto/CertificateKeyPairListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
diff --git a/web/src/pages/events/EventInfo.ts b/web/src/pages/events/EventInfo.ts
index 5bb86ee8a3..b324442d6d 100644
--- a/web/src/pages/events/EventInfo.ts
+++ b/web/src/pages/events/EventInfo.ts
@@ -1,14 +1,7 @@
import { t } from "@lingui/macro";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
-import { until } from "lit-html/directives/until";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import { EventActions, FlowsApi } from "@goauthentik/api";
import "../../elements/Spinner";
import "../../elements/Expand";
diff --git a/web/src/pages/events/EventInfoPage.ts b/web/src/pages/events/EventInfoPage.ts
index 254f14188e..525a50a5d8 100644
--- a/web/src/pages/events/EventInfoPage.ts
+++ b/web/src/pages/events/EventInfoPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { EventsApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
import { EventWithContext } from "../../api/Events";
diff --git a/web/src/pages/events/EventListPage.ts b/web/src/pages/events/EventListPage.ts
index 5931e2999a..e3d9d62df7 100644
--- a/web/src/pages/events/EventListPage.ts
+++ b/web/src/pages/events/EventListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { Event, EventsApi } from "@goauthentik/api";
import { AKResponse } from "../../api/Client";
import { DEFAULT_CONFIG } from "../../api/Config";
diff --git a/web/src/pages/events/RuleForm.ts b/web/src/pages/events/RuleForm.ts
index b7bbb495b3..2772219c25 100644
--- a/web/src/pages/events/RuleForm.ts
+++ b/web/src/pages/events/RuleForm.ts
@@ -1,11 +1,11 @@
import { CoreApi, EventsApi, NotificationRule, SeverityEnum } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { ModelForm } from "../../elements/forms/ModelForm";
@customElement("ak-event-rule-form")
diff --git a/web/src/pages/events/RuleListPage.ts b/web/src/pages/events/RuleListPage.ts
index 5270627c83..b1bd8194b7 100644
--- a/web/src/pages/events/RuleListPage.ts
+++ b/web/src/pages/events/RuleListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
diff --git a/web/src/pages/events/TransportForm.ts b/web/src/pages/events/TransportForm.ts
index 42d0abb59b..c9acdc820f 100644
--- a/web/src/pages/events/TransportForm.ts
+++ b/web/src/pages/events/TransportForm.ts
@@ -5,14 +5,14 @@ import {
PropertymappingsApi,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import { first } from "../../utils";
import { ModelForm } from "../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
@customElement("ak-event-transport-form")
export class TransportForm extends ModelForm {
diff --git a/web/src/pages/events/TransportListPage.ts b/web/src/pages/events/TransportListPage.ts
index 95a1a5bd0b..00f3c1da60 100644
--- a/web/src/pages/events/TransportListPage.ts
+++ b/web/src/pages/events/TransportListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
diff --git a/web/src/pages/flows/BoundStagesList.ts b/web/src/pages/flows/BoundStagesList.ts
index 4c30865de3..343d79263c 100644
--- a/web/src/pages/flows/BoundStagesList.ts
+++ b/web/src/pages/flows/BoundStagesList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../../elements/table/Table";
@@ -11,11 +12,11 @@ import "../../elements/Tabs";
import "../../elements/buttons/SpinnerButton";
import "../../elements/buttons/Dropdown";
import "../policies/BoundPoliciesList";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { PAGE_SIZE } from "../../constants";
import { FlowsApi, FlowStageBinding, StagesApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-bound-stages-list")
export class BoundStagesList extends Table {
diff --git a/web/src/pages/flows/FlowDiagram.ts b/web/src/pages/flows/FlowDiagram.ts
index f211b58c82..6c29ddb8ef 100644
--- a/web/src/pages/flows/FlowDiagram.ts
+++ b/web/src/pages/flows/FlowDiagram.ts
@@ -1,4 +1,5 @@
-import { customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import FlowChart from "flowchart.js";
import { loading } from "../../utils";
import { FlowsApi } from "@goauthentik/api";
diff --git a/web/src/pages/flows/FlowForm.ts b/web/src/pages/flows/FlowForm.ts
index bf1863616f..b2e163a7fb 100644
--- a/web/src/pages/flows/FlowForm.ts
+++ b/web/src/pages/flows/FlowForm.ts
@@ -6,13 +6,13 @@ import {
CapabilitiesEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { config, DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { first } from "../../utils";
@customElement("ak-flow-form")
diff --git a/web/src/pages/flows/FlowImportForm.ts b/web/src/pages/flows/FlowImportForm.ts
index 066a2e9cea..ae61f61a92 100644
--- a/web/src/pages/flows/FlowImportForm.ts
+++ b/web/src/pages/flows/FlowImportForm.ts
@@ -1,7 +1,7 @@
import { Flow, FlowsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import { Form } from "../../elements/forms/Form";
import "../../elements/forms/HorizontalFormElement";
diff --git a/web/src/pages/flows/FlowListPage.ts b/web/src/pages/flows/FlowListPage.ts
index ba451bbba5..a8e76a90a9 100644
--- a/web/src/pages/flows/FlowListPage.ts
+++ b/web/src/pages/flows/FlowListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
diff --git a/web/src/pages/flows/FlowViewPage.ts b/web/src/pages/flows/FlowViewPage.ts
index d1e336cedc..7245b3cf50 100644
--- a/web/src/pages/flows/FlowViewPage.ts
+++ b/web/src/pages/flows/FlowViewPage.ts
@@ -1,14 +1,6 @@
import { t } from "@lingui/macro";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
-
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import "../../elements/Tabs";
import "../../elements/PageHeader";
import "../../elements/events/ObjectChangelog";
diff --git a/web/src/pages/flows/StageBindingForm.ts b/web/src/pages/flows/StageBindingForm.ts
index cd6972170f..342c3f9d66 100644
--- a/web/src/pages/flows/StageBindingForm.ts
+++ b/web/src/pages/flows/StageBindingForm.ts
@@ -7,11 +7,11 @@ import {
StagesApi,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import { first, groupBy } from "../../utils";
import { ModelForm } from "../../elements/forms/ModelForm";
@@ -131,6 +131,7 @@ export class StageBindingForm extends ModelForm {
+
{
+
{
diff --git a/web/src/pages/outposts/ServiceConnectionDockerForm.ts b/web/src/pages/outposts/ServiceConnectionDockerForm.ts
index 542f0dee31..0b5d42014e 100644
--- a/web/src/pages/outposts/ServiceConnectionDockerForm.ts
+++ b/web/src/pages/outposts/ServiceConnectionDockerForm.ts
@@ -1,10 +1,10 @@
import { CryptoApi, DockerServiceConnection, OutpostsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import { first } from "../../utils";
import { ModelForm } from "../../elements/forms/ModelForm";
diff --git a/web/src/pages/outposts/ServiceConnectionKubernetesForm.ts b/web/src/pages/outposts/ServiceConnectionKubernetesForm.ts
index b02b42a8ad..541b4831e8 100644
--- a/web/src/pages/outposts/ServiceConnectionKubernetesForm.ts
+++ b/web/src/pages/outposts/ServiceConnectionKubernetesForm.ts
@@ -1,9 +1,9 @@
import { KubernetesServiceConnection, OutpostsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
import YAML from "yaml";
diff --git a/web/src/pages/outposts/ServiceConnectionListPage.ts b/web/src/pages/outposts/ServiceConnectionListPage.ts
index ec7a0140bd..0cedfbecfb 100644
--- a/web/src/pages/outposts/ServiceConnectionListPage.ts
+++ b/web/src/pages/outposts/ServiceConnectionListPage.ts
@@ -1,6 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { AKResponse } from "../../api/Client";
import { TableColumn } from "../../elements/table/Table";
import { TablePage } from "../../elements/table/TablePage";
@@ -12,12 +12,12 @@ import "../../elements/forms/DeleteBulkForm";
import "../../elements/forms/ModalForm";
import "./ServiceConnectionKubernetesForm";
import "./ServiceConnectionDockerForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { PAGE_SIZE } from "../../constants";
import { OutpostsApi, ServiceConnection } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
import "../../elements/forms/ProxyForm";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import { PFColor } from "../../elements/Label";
@customElement("ak-outpost-service-connection-list")
diff --git a/web/src/pages/policies/BoundPoliciesList.ts b/web/src/pages/policies/BoundPoliciesList.ts
index 429b519143..8b4863d1fc 100644
--- a/web/src/pages/policies/BoundPoliciesList.ts
+++ b/web/src/pages/policies/BoundPoliciesList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { Table, TableColumn } from "../../elements/table/Table";
import { PoliciesApi, PolicyBinding } from "@goauthentik/api";
@@ -9,7 +10,7 @@ import "../../elements/Tabs";
import "../../elements/forms/ProxyForm";
import "../../elements/buttons/SpinnerButton";
import "../../elements/buttons/Dropdown";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { PAGE_SIZE } from "../../constants";
import { DEFAULT_CONFIG } from "../../api/Config";
@@ -17,7 +18,7 @@ import "../../elements/forms/ModalForm";
import "../groups/GroupForm";
import "../users/UserForm";
import "./PolicyBindingForm";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import { PFSize } from "../../elements/Spinner";
@customElement("ak-bound-policies-list")
diff --git a/web/src/pages/policies/PolicyBindingForm.ts b/web/src/pages/policies/PolicyBindingForm.ts
index 0677c36563..e9730566e8 100644
--- a/web/src/pages/policies/PolicyBindingForm.ts
+++ b/web/src/pages/policies/PolicyBindingForm.ts
@@ -1,10 +1,11 @@
import { CoreApi, PoliciesApi, Policy, PolicyBinding } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { css, CSSResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import { first, groupBy } from "../../utils";
import "../../elements/forms/HorizontalFormElement";
import PFToggleGroup from "@patternfly/patternfly/components/ToggleGroup/toggle-group.css";
@@ -280,6 +281,7 @@ export class PolicyBindingForm extends ModelForm {
+
{
diff --git a/web/src/pages/property-mappings/PropertyMappingNotification.ts b/web/src/pages/property-mappings/PropertyMappingNotification.ts
index f2ae5e36f0..bce843c718 100644
--- a/web/src/pages/property-mappings/PropertyMappingNotification.ts
+++ b/web/src/pages/property-mappings/PropertyMappingNotification.ts
@@ -1,9 +1,9 @@
import { NotificationWebhookMapping, PropertymappingsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
import { ModelForm } from "../../elements/forms/ModelForm";
diff --git a/web/src/pages/property-mappings/PropertyMappingSAMLForm.ts b/web/src/pages/property-mappings/PropertyMappingSAMLForm.ts
index 423729f7fb..d14247cac1 100644
--- a/web/src/pages/property-mappings/PropertyMappingSAMLForm.ts
+++ b/web/src/pages/property-mappings/PropertyMappingSAMLForm.ts
@@ -1,9 +1,9 @@
import { SAMLPropertyMapping, PropertymappingsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
import { ModelForm } from "../../elements/forms/ModelForm";
diff --git a/web/src/pages/property-mappings/PropertyMappingScopeForm.ts b/web/src/pages/property-mappings/PropertyMappingScopeForm.ts
index 0783ec5f43..aca4a8f772 100644
--- a/web/src/pages/property-mappings/PropertyMappingScopeForm.ts
+++ b/web/src/pages/property-mappings/PropertyMappingScopeForm.ts
@@ -1,10 +1,10 @@
import { ScopeMapping, PropertymappingsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import { ModelForm } from "../../elements/forms/ModelForm";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
diff --git a/web/src/pages/property-mappings/PropertyMappingTestForm.ts b/web/src/pages/property-mappings/PropertyMappingTestForm.ts
index ddc82a28ed..fb4217ee81 100644
--- a/web/src/pages/property-mappings/PropertyMappingTestForm.ts
+++ b/web/src/pages/property-mappings/PropertyMappingTestForm.ts
@@ -6,12 +6,12 @@ import {
PropertyMappingTestResult,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import { Form } from "../../elements/forms/Form";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
import YAML from "yaml";
diff --git a/web/src/pages/providers/ProviderListPage.ts b/web/src/pages/providers/ProviderListPage.ts
index f1189233ac..e2a3173d10 100644
--- a/web/src/pages/providers/ProviderListPage.ts
+++ b/web/src/pages/providers/ProviderListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
@@ -14,11 +15,11 @@ import "./proxy/ProxyProviderForm";
import "./saml/SAMLProviderForm";
import "./saml/SAMLProviderImportForm";
import { TableColumn } from "../../elements/table/Table";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { PAGE_SIZE } from "../../constants";
import { Provider, ProvidersApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-provider-list")
export class ProviderListPage extends TablePage {
diff --git a/web/src/pages/providers/ProviderViewPage.ts b/web/src/pages/providers/ProviderViewPage.ts
index f6cff18d9c..2457ff16f6 100644
--- a/web/src/pages/providers/ProviderViewPage.ts
+++ b/web/src/pages/providers/ProviderViewPage.ts
@@ -1,4 +1,5 @@
-import { customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import "../../elements/buttons/SpinnerButton";
import "../../elements/EmptyState";
@@ -10,7 +11,7 @@ import "./proxy/ProxyProviderViewPage";
import "./ldap/LDAPProviderViewPage";
import { Provider, ProvidersApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-provider-view")
export class ProviderViewPage extends LitElement {
diff --git a/web/src/pages/providers/RelatedApplicationButton.ts b/web/src/pages/providers/RelatedApplicationButton.ts
index 2e6574f6d6..084a7a7f4c 100644
--- a/web/src/pages/providers/RelatedApplicationButton.ts
+++ b/web/src/pages/providers/RelatedApplicationButton.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { Provider } from "@goauthentik/api";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
diff --git a/web/src/pages/providers/ldap/LDAPProviderForm.ts b/web/src/pages/providers/ldap/LDAPProviderForm.ts
index 218237e442..09e09bff61 100644
--- a/web/src/pages/providers/ldap/LDAPProviderForm.ts
+++ b/web/src/pages/providers/ldap/LDAPProviderForm.ts
@@ -7,12 +7,12 @@ import {
CryptoApi,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG, tenant } from "../../../api/Config";
import { ModelForm } from "../../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { first } from "../../../utils";
diff --git a/web/src/pages/providers/ldap/LDAPProviderViewPage.ts b/web/src/pages/providers/ldap/LDAPProviderViewPage.ts
index e5f3a84615..eb434a2c82 100644
--- a/web/src/pages/providers/ldap/LDAPProviderViewPage.ts
+++ b/web/src/pages/providers/ldap/LDAPProviderViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
diff --git a/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts b/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts
index cdeb696e8a..1926a37421 100644
--- a/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts
+++ b/web/src/pages/providers/oauth2/OAuth2ProviderForm.ts
@@ -11,12 +11,12 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { ModelForm } from "../../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { first, randomString } from "../../../utils";
diff --git a/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts b/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts
index a87a53196f..d952564ca0 100644
--- a/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts
+++ b/web/src/pages/providers/oauth2/OAuth2ProviderViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
diff --git a/web/src/pages/providers/proxy/ProxyProviderForm.ts b/web/src/pages/providers/proxy/ProxyProviderForm.ts
index e3566efcad..0a0736987a 100644
--- a/web/src/pages/providers/proxy/ProxyProviderForm.ts
+++ b/web/src/pages/providers/proxy/ProxyProviderForm.ts
@@ -7,15 +7,16 @@ import {
ProxyProvider,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { css, CSSResult, customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { css, CSSResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { ModelForm } from "../../../elements/forms/ModelForm";
import PFToggleGroup from "@patternfly/patternfly/components/ToggleGroup/toggle-group.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
import PFSpacing from "@patternfly/patternfly/utilities/Spacing/spacing.css";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { first } from "../../../utils";
diff --git a/web/src/pages/providers/proxy/ProxyProviderViewPage.ts b/web/src/pages/providers/proxy/ProxyProviderViewPage.ts
index 8300509255..83a512454a 100644
--- a/web/src/pages/providers/proxy/ProxyProviderViewPage.ts
+++ b/web/src/pages/providers/proxy/ProxyProviderViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
diff --git a/web/src/pages/providers/saml/SAMLProviderForm.ts b/web/src/pages/providers/saml/SAMLProviderForm.ts
index 135e2960d9..f0bdb98e54 100644
--- a/web/src/pages/providers/saml/SAMLProviderForm.ts
+++ b/web/src/pages/providers/saml/SAMLProviderForm.ts
@@ -10,12 +10,12 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { ModelForm } from "../../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { until } from "lit/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
diff --git a/web/src/pages/providers/saml/SAMLProviderImportForm.ts b/web/src/pages/providers/saml/SAMLProviderImportForm.ts
index 09ad4d7878..de6c537637 100644
--- a/web/src/pages/providers/saml/SAMLProviderImportForm.ts
+++ b/web/src/pages/providers/saml/SAMLProviderImportForm.ts
@@ -5,9 +5,9 @@ import {
SAMLProvider,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
-import { until } from "lit-html/directives/until";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { Form } from "../../../elements/forms/Form";
import "../../../elements/forms/HorizontalFormElement";
diff --git a/web/src/pages/providers/saml/SAMLProviderViewPage.ts b/web/src/pages/providers/saml/SAMLProviderViewPage.ts
index cec8e3ef6c..3826c947d1 100644
--- a/web/src/pages/providers/saml/SAMLProviderViewPage.ts
+++ b/web/src/pages/providers/saml/SAMLProviderViewPage.ts
@@ -1,6 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
import PFGallery from "@patternfly/patternfly/layouts/Gallery/gallery.css";
@@ -24,7 +25,7 @@ import "./SAMLProviderForm";
import { ProvidersApi, SAMLProvider } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { EVENT_REFRESH } from "../../../constants";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-provider-saml-view")
export class SAMLProviderViewPage extends LitElement {
diff --git a/web/src/pages/sources/SourceViewPage.ts b/web/src/pages/sources/SourceViewPage.ts
index 3c7e86cf27..9ff0c120cf 100644
--- a/web/src/pages/sources/SourceViewPage.ts
+++ b/web/src/pages/sources/SourceViewPage.ts
@@ -1,4 +1,5 @@
-import { customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { Source, SourcesApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
@@ -10,7 +11,7 @@ import "./ldap/LDAPSourceViewPage";
import "./oauth/OAuthSourceViewPage";
import "./saml/SAMLSourceViewPage";
import "./plex/PlexSourceViewPage";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-source-view")
export class SourceViewPage extends LitElement {
diff --git a/web/src/pages/sources/SourcesListPage.ts b/web/src/pages/sources/SourcesListPage.ts
index d34ed5d679..b694e4d6ce 100644
--- a/web/src/pages/sources/SourcesListPage.ts
+++ b/web/src/pages/sources/SourcesListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TableColumn } from "../../elements/table/Table";
import { TablePage } from "../../elements/table/TablePage";
@@ -9,11 +10,11 @@ import "../../elements/buttons/Dropdown";
import "../../elements/forms/DeleteBulkForm";
import "../../elements/forms/ModalForm";
import "../../elements/forms/ProxyForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { PAGE_SIZE } from "../../constants";
import { Source, SourcesApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "./ldap/LDAPSourceForm";
import "./saml/SAMLSourceForm";
import "./oauth/OAuthSourceForm";
diff --git a/web/src/pages/sources/ldap/LDAPSourceForm.ts b/web/src/pages/sources/ldap/LDAPSourceForm.ts
index 85b286b1f9..0fdffbda45 100644
--- a/web/src/pages/sources/ldap/LDAPSourceForm.ts
+++ b/web/src/pages/sources/ldap/LDAPSourceForm.ts
@@ -1,12 +1,12 @@
import { LDAPSource, SourcesApi, PropertymappingsApi, LDAPSourceRequest } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/FormGroup";
import "../../../elements/forms/HorizontalFormElement";
-import { ifDefined } from "lit-html/directives/if-defined";
-import { until } from "lit-html/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/sources/ldap/LDAPSourceViewPage.ts b/web/src/pages/sources/ldap/LDAPSourceViewPage.ts
index 965321bb52..ff823d3a6e 100644
--- a/web/src/pages/sources/ldap/LDAPSourceViewPage.ts
+++ b/web/src/pages/sources/ldap/LDAPSourceViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
@@ -21,7 +22,7 @@ import "../../../elements/Tabs";
import "../../../elements/events/ObjectChangelog";
import "../../../elements/forms/ModalForm";
import "./LDAPSourceForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { LDAPSource, SourcesApi, StatusEnum } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { EVENT_REFRESH } from "../../../constants";
diff --git a/web/src/pages/sources/oauth/OAuthSourceForm.ts b/web/src/pages/sources/oauth/OAuthSourceForm.ts
index e2731944fd..591c872b50 100644
--- a/web/src/pages/sources/oauth/OAuthSourceForm.ts
+++ b/web/src/pages/sources/oauth/OAuthSourceForm.ts
@@ -8,13 +8,13 @@ import {
SourceType,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/FormGroup";
import "../../../elements/forms/HorizontalFormElement";
-import { ifDefined } from "lit-html/directives/if-defined";
-import { until } from "lit-html/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/sources/oauth/OAuthSourceViewPage.ts b/web/src/pages/sources/oauth/OAuthSourceViewPage.ts
index 02df2a598a..1421011c1b 100644
--- a/web/src/pages/sources/oauth/OAuthSourceViewPage.ts
+++ b/web/src/pages/sources/oauth/OAuthSourceViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
diff --git a/web/src/pages/sources/plex/PlexSourceForm.ts b/web/src/pages/sources/plex/PlexSourceForm.ts
index b7e4434264..9fdf817de7 100644
--- a/web/src/pages/sources/plex/PlexSourceForm.ts
+++ b/web/src/pages/sources/plex/PlexSourceForm.ts
@@ -6,13 +6,13 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/FormGroup";
import "../../../elements/forms/HorizontalFormElement";
-import { ifDefined } from "lit-html/directives/if-defined";
-import { until } from "lit-html/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
+import { until } from "lit/directives/until";
import { first, randomString } from "../../../utils";
import { PlexAPIClient, PlexResource, popupCenterScreen } from "../../../flows/sources/plex/API";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/sources/plex/PlexSourceViewPage.ts b/web/src/pages/sources/plex/PlexSourceViewPage.ts
index 68ca2ea22a..b8b204cfaa 100644
--- a/web/src/pages/sources/plex/PlexSourceViewPage.ts
+++ b/web/src/pages/sources/plex/PlexSourceViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
diff --git a/web/src/pages/sources/saml/SAMLSourceForm.ts b/web/src/pages/sources/saml/SAMLSourceForm.ts
index 0a171dd67f..38bb031775 100644
--- a/web/src/pages/sources/saml/SAMLSourceForm.ts
+++ b/web/src/pages/sources/saml/SAMLSourceForm.ts
@@ -10,13 +10,13 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/FormGroup";
import "../../../elements/forms/HorizontalFormElement";
-import { ifDefined } from "lit-html/directives/if-defined";
-import { until } from "lit-html/directives/until";
+import { ifDefined } from "lit/directives/if-defined";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/sources/saml/SAMLSourceViewPage.ts b/web/src/pages/sources/saml/SAMLSourceViewPage.ts
index a2d9619c07..320fc27011 100644
--- a/web/src/pages/sources/saml/SAMLSourceViewPage.ts
+++ b/web/src/pages/sources/saml/SAMLSourceViewPage.ts
@@ -1,6 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
@@ -24,7 +25,7 @@ import "./SAMLSourceForm";
import { SAMLSource, SourcesApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { EVENT_REFRESH } from "../../../constants";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-source-saml-view")
export class SAMLSourceViewPage extends LitElement {
diff --git a/web/src/pages/stages/StageListPage.ts b/web/src/pages/stages/StageListPage.ts
index 298ce5b073..7a48d51a24 100644
--- a/web/src/pages/stages/StageListPage.ts
+++ b/web/src/pages/stages/StageListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TableColumn } from "../../elements/table/Table";
import { TablePage } from "../../elements/table/TablePage";
@@ -9,11 +10,11 @@ import "../../elements/buttons/Dropdown";
import "../../elements/forms/DeleteBulkForm";
import "../../elements/forms/ProxyForm";
import "../../elements/forms/ModalForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { PAGE_SIZE } from "../../constants";
import { Stage, StagesApi } from "@goauthentik/api";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "./authenticator_duo/AuthenticatorDuoStageForm.ts";
import "./authenticator_static/AuthenticatorStaticStageForm.ts";
diff --git a/web/src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts b/web/src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts
index abb3870493..c5b6659a36 100644
--- a/web/src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts
+++ b/web/src/pages/stages/authenticator_duo/AuthenticatorDuoStageForm.ts
@@ -6,13 +6,13 @@ import {
AuthenticatorDuoStageRequest,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts b/web/src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts
index f874345785..9487fada23 100644
--- a/web/src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts
+++ b/web/src/pages/stages/authenticator_static/AuthenticatorStaticStageForm.ts
@@ -5,13 +5,13 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts b/web/src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts
index 6b2c230a5d..51e0c6d8d2 100644
--- a/web/src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts
+++ b/web/src/pages/stages/authenticator_totp/AuthenticatorTOTPStageForm.ts
@@ -5,13 +5,13 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { ModelForm } from "../../../elements/forms/ModelForm";
@customElement("ak-stage-authenticator-totp-form")
diff --git a/web/src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts b/web/src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts
index 3888ccfda2..f235496292 100644
--- a/web/src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts
+++ b/web/src/pages/stages/authenticator_validate/AuthenticatorValidateStageForm.ts
@@ -5,13 +5,13 @@ import {
StagesApi,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { ModelForm } from "../../../elements/forms/ModelForm";
@customElement("ak-stage-authenticator-validate-form")
diff --git a/web/src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts b/web/src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts
index 9bec8fc4eb..521037fa71 100644
--- a/web/src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts
+++ b/web/src/pages/stages/authenticator_webauthn/AuthenticateWebAuthnStageForm.ts
@@ -1,9 +1,9 @@
import { AuthenticateWebAuthnStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/captcha/CaptchaStageForm.ts b/web/src/pages/stages/captcha/CaptchaStageForm.ts
index 95d2a4d311..62b65850a3 100644
--- a/web/src/pages/stages/captcha/CaptchaStageForm.ts
+++ b/web/src/pages/stages/captcha/CaptchaStageForm.ts
@@ -1,9 +1,9 @@
import { CaptchaStage, CaptchaStageRequest, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/consent/ConsentStageForm.ts b/web/src/pages/stages/consent/ConsentStageForm.ts
index 3b89b7e043..8661295fbf 100644
--- a/web/src/pages/stages/consent/ConsentStageForm.ts
+++ b/web/src/pages/stages/consent/ConsentStageForm.ts
@@ -1,9 +1,9 @@
import { ConsentStage, ConsentStageModeEnum, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/deny/DenyStageForm.ts b/web/src/pages/stages/deny/DenyStageForm.ts
index e06b88bbfc..d2a42df317 100644
--- a/web/src/pages/stages/deny/DenyStageForm.ts
+++ b/web/src/pages/stages/deny/DenyStageForm.ts
@@ -1,9 +1,9 @@
import { DenyStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/dummy/DummyStageForm.ts b/web/src/pages/stages/dummy/DummyStageForm.ts
index 425651e82e..f861585f7e 100644
--- a/web/src/pages/stages/dummy/DummyStageForm.ts
+++ b/web/src/pages/stages/dummy/DummyStageForm.ts
@@ -1,9 +1,9 @@
import { DummyStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/email/EmailStageForm.ts b/web/src/pages/stages/email/EmailStageForm.ts
index 6176021c98..bbfbb80c8f 100644
--- a/web/src/pages/stages/email/EmailStageForm.ts
+++ b/web/src/pages/stages/email/EmailStageForm.ts
@@ -1,13 +1,13 @@
import { EmailStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { first } from "../../../utils";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { ModelForm } from "../../../elements/forms/ModelForm";
@customElement("ak-stage-email-form")
diff --git a/web/src/pages/stages/identification/IdentificationStageForm.ts b/web/src/pages/stages/identification/IdentificationStageForm.ts
index b29ad86881..1969524004 100644
--- a/web/src/pages/stages/identification/IdentificationStageForm.ts
+++ b/web/src/pages/stages/identification/IdentificationStageForm.ts
@@ -7,13 +7,13 @@ import {
SourcesApi,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/invitation/InvitationForm.ts b/web/src/pages/stages/invitation/InvitationForm.ts
index d2851264b6..a292990b55 100644
--- a/web/src/pages/stages/invitation/InvitationForm.ts
+++ b/web/src/pages/stages/invitation/InvitationForm.ts
@@ -1,7 +1,7 @@
import { Invitation, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/CodeMirror";
diff --git a/web/src/pages/stages/invitation/InvitationListLink.ts b/web/src/pages/stages/invitation/InvitationListLink.ts
index 50b5f72f95..d8031554ec 100644
--- a/web/src/pages/stages/invitation/InvitationListLink.ts
+++ b/web/src/pages/stages/invitation/InvitationListLink.ts
@@ -1,6 +1,7 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import PFForm from "@patternfly/patternfly/components/Form/form.css";
import PFFormControl from "@patternfly/patternfly/components/FormControl/form-control.css";
import AKGlobal from "../../../authentik.css";
diff --git a/web/src/pages/stages/invitation/InvitationListPage.ts b/web/src/pages/stages/invitation/InvitationListPage.ts
index 3cba800367..f2560bc104 100644
--- a/web/src/pages/stages/invitation/InvitationListPage.ts
+++ b/web/src/pages/stages/invitation/InvitationListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../../api/Client";
import { TablePage } from "../../../elements/table/TablePage";
diff --git a/web/src/pages/stages/invitation/InvitationStageForm.ts b/web/src/pages/stages/invitation/InvitationStageForm.ts
index d2625e5759..107d12cbb1 100644
--- a/web/src/pages/stages/invitation/InvitationStageForm.ts
+++ b/web/src/pages/stages/invitation/InvitationStageForm.ts
@@ -1,9 +1,9 @@
import { InvitationStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { first } from "../../../utils";
diff --git a/web/src/pages/stages/password/PasswordStageForm.ts b/web/src/pages/stages/password/PasswordStageForm.ts
index 6c62a21bc1..226dc02963 100644
--- a/web/src/pages/stages/password/PasswordStageForm.ts
+++ b/web/src/pages/stages/password/PasswordStageForm.ts
@@ -6,13 +6,13 @@ import {
FlowsInstancesListDesignationEnum,
} from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/prompt/PromptForm.ts b/web/src/pages/stages/prompt/PromptForm.ts
index a0164677ab..007782e0f2 100644
--- a/web/src/pages/stages/prompt/PromptForm.ts
+++ b/web/src/pages/stages/prompt/PromptForm.ts
@@ -1,9 +1,9 @@
import { Prompt, PromptTypeEnum, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { first } from "../../../utils";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/prompt/PromptListPage.ts b/web/src/pages/stages/prompt/PromptListPage.ts
index 640ac29d5d..cdf1668996 100644
--- a/web/src/pages/stages/prompt/PromptListPage.ts
+++ b/web/src/pages/stages/prompt/PromptListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../../api/Client";
import { TablePage } from "../../../elements/table/TablePage";
diff --git a/web/src/pages/stages/prompt/PromptStageForm.ts b/web/src/pages/stages/prompt/PromptStageForm.ts
index b74d8c5763..0262e62d83 100644
--- a/web/src/pages/stages/prompt/PromptStageForm.ts
+++ b/web/src/pages/stages/prompt/PromptStageForm.ts
@@ -1,14 +1,14 @@
import { PoliciesApi, PromptStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import "../../../elements/forms/ModalForm";
import "./PromptForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { ModelForm } from "../../../elements/forms/ModelForm";
@customElement("ak-stage-prompt-form")
diff --git a/web/src/pages/stages/user_delete/UserDeleteStageForm.ts b/web/src/pages/stages/user_delete/UserDeleteStageForm.ts
index 4cbc30b4e0..26324a2ba6 100644
--- a/web/src/pages/stages/user_delete/UserDeleteStageForm.ts
+++ b/web/src/pages/stages/user_delete/UserDeleteStageForm.ts
@@ -1,9 +1,9 @@
import { UserDeleteStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/user_login/UserLoginStageForm.ts b/web/src/pages/stages/user_login/UserLoginStageForm.ts
index 2c0ac3ee67..370f518674 100644
--- a/web/src/pages/stages/user_login/UserLoginStageForm.ts
+++ b/web/src/pages/stages/user_login/UserLoginStageForm.ts
@@ -1,7 +1,7 @@
import { UserLoginStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
diff --git a/web/src/pages/stages/user_logout/UserLogoutStageForm.ts b/web/src/pages/stages/user_logout/UserLogoutStageForm.ts
index 5c2dcd7c44..202955757a 100644
--- a/web/src/pages/stages/user_logout/UserLogoutStageForm.ts
+++ b/web/src/pages/stages/user_logout/UserLogoutStageForm.ts
@@ -1,9 +1,9 @@
import { UserLogoutStage, StagesApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/pages/stages/user_write/UserWriteStageForm.ts b/web/src/pages/stages/user_write/UserWriteStageForm.ts
index 55191a8520..1e48bcb342 100644
--- a/web/src/pages/stages/user_write/UserWriteStageForm.ts
+++ b/web/src/pages/stages/user_write/UserWriteStageForm.ts
@@ -1,14 +1,14 @@
import { UserWriteStage, StagesApi, CoreApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import "../../../elements/forms/FormGroup";
import { ModelForm } from "../../../elements/forms/ModelForm";
import { first } from "../../../utils";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
@customElement("ak-stage-user-write-form")
export class UserWriteStageForm extends ModelForm {
diff --git a/web/src/pages/system-tasks/SystemTaskListPage.ts b/web/src/pages/system-tasks/SystemTaskListPage.ts
index e2f863a1ff..92f9f8e73b 100644
--- a/web/src/pages/system-tasks/SystemTaskListPage.ts
+++ b/web/src/pages/system-tasks/SystemTaskListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
diff --git a/web/src/pages/tenants/TenantForm.ts b/web/src/pages/tenants/TenantForm.ts
index a73ee3fa88..6d677b1303 100644
--- a/web/src/pages/tenants/TenantForm.ts
+++ b/web/src/pages/tenants/TenantForm.ts
@@ -1,13 +1,13 @@
import { CoreApi, FlowsApi, FlowsInstancesListDesignationEnum, Tenant } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/forms/FormGroup";
import { first } from "../../utils";
import { ModelForm } from "../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { DefaultTenant } from "../../elements/sidebar/SidebarBrand";
@customElement("ak-tenant-form")
diff --git a/web/src/pages/tenants/TenantListPage.ts b/web/src/pages/tenants/TenantListPage.ts
index 35644b0e91..74801fb780 100644
--- a/web/src/pages/tenants/TenantListPage.ts
+++ b/web/src/pages/tenants/TenantListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
diff --git a/web/src/pages/tokens/TokenForm.ts b/web/src/pages/tokens/TokenForm.ts
index 806ffaf2cb..87fd4ccc97 100644
--- a/web/src/pages/tokens/TokenForm.ts
+++ b/web/src/pages/tokens/TokenForm.ts
@@ -1,13 +1,13 @@
import { CoreApi, IntentEnum, Token } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/forms/FormGroup";
import { dateTimeLocal, first } from "../../utils";
import { ModelForm } from "../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
@customElement("ak-token-form")
export class TokenForm extends ModelForm {
diff --git a/web/src/pages/tokens/TokenListPage.ts b/web/src/pages/tokens/TokenListPage.ts
index 4be022cbac..ca6dc547ec 100644
--- a/web/src/pages/tokens/TokenListPage.ts
+++ b/web/src/pages/tokens/TokenListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
diff --git a/web/src/pages/users/GroupSelectModal.ts b/web/src/pages/users/GroupSelectModal.ts
index 8762d32411..62000e37d0 100644
--- a/web/src/pages/users/GroupSelectModal.ts
+++ b/web/src/pages/users/GroupSelectModal.ts
@@ -1,7 +1,7 @@
import { t } from "@lingui/macro";
import { CoreApi, Group } from "@goauthentik/api";
-import { customElement, property } from "lit-element";
-import { TemplateResult, html } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { TemplateResult, html } from "lit";
import { AKResponse } from "../../api/Client";
import { DEFAULT_CONFIG } from "../../api/Config";
import { PAGE_SIZE } from "../../constants";
diff --git a/web/src/pages/users/ServiceAccountForm.ts b/web/src/pages/users/ServiceAccountForm.ts
index 54e766a464..d2a082a8e0 100644
--- a/web/src/pages/users/ServiceAccountForm.ts
+++ b/web/src/pages/users/ServiceAccountForm.ts
@@ -1,12 +1,12 @@
import { CoreApi, UserServiceAccountRequest, UserServiceAccountResponse } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import "../../elements/forms/HorizontalFormElement";
import { Form } from "../../elements/forms/Form";
import { ModalForm } from "../../elements/forms/ModalForm";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-user-service-account")
export class ServiceAccountForm extends Form {
diff --git a/web/src/pages/users/UserActiveForm.ts b/web/src/pages/users/UserActiveForm.ts
index e941620625..38cfadbcd6 100644
--- a/web/src/pages/users/UserActiveForm.ts
+++ b/web/src/pages/users/UserActiveForm.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { DeleteForm } from "../../elements/forms/DeleteForm";
import { MessageLevel } from "../../elements/messages/Message";
import { showMessage } from "../../elements/messages/MessageContainer";
diff --git a/web/src/pages/users/UserForm.ts b/web/src/pages/users/UserForm.ts
index 98ed0be804..47d61933b8 100644
--- a/web/src/pages/users/UserForm.ts
+++ b/web/src/pages/users/UserForm.ts
@@ -1,16 +1,16 @@
import { CoreApi, Group, User } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../elements/forms/HorizontalFormElement";
import "../../elements/CodeMirror";
import "./GroupSelectModal";
import YAML from "yaml";
import { first } from "../../utils";
import { ModelForm } from "../../elements/forms/ModelForm";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
@customElement("ak-user-form")
export class UserForm extends ModelForm {
diff --git a/web/src/pages/users/UserListPage.ts b/web/src/pages/users/UserListPage.ts
index 6331501420..2a324442a7 100644
--- a/web/src/pages/users/UserListPage.ts
+++ b/web/src/pages/users/UserListPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../api/Client";
import { TablePage } from "../../elements/table/TablePage";
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
@@ -18,7 +19,7 @@ import "./ServiceAccountForm";
import { showMessage } from "../../elements/messages/MessageContainer";
import { MessageLevel } from "../../elements/messages/Message";
import { first } from "../../utils";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
@customElement("ak-user-list")
export class UserListPage extends TablePage {
diff --git a/web/src/pages/users/UserResetEmailForm.ts b/web/src/pages/users/UserResetEmailForm.ts
index beb3b557c5..e9f335b73a 100644
--- a/web/src/pages/users/UserResetEmailForm.ts
+++ b/web/src/pages/users/UserResetEmailForm.ts
@@ -1,10 +1,10 @@
import { CoreApi, CoreUsersRecoveryEmailRetrieveRequest, StagesApi, User } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../api/Config";
import { Form } from "../../elements/forms/Form";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import "../../elements/forms/HorizontalFormElement";
@customElement("ak-user-reset-email-form")
diff --git a/web/src/pages/users/UserViewPage.ts b/web/src/pages/users/UserViewPage.ts
index 52761d3f43..15c47de6a2 100644
--- a/web/src/pages/users/UserViewPage.ts
+++ b/web/src/pages/users/UserViewPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
diff --git a/web/src/routesAdmin.ts b/web/src/routesAdmin.ts
index abd01e74fd..e198a8b274 100644
--- a/web/src/routesAdmin.ts
+++ b/web/src/routesAdmin.ts
@@ -1,4 +1,4 @@
-import { html } from "lit-html";
+import { html } from "lit";
import { Route, SLUG_REGEX, ID_REGEX, UUID_REGEX } from "./elements/router/Route";
import "./pages/admin-overview/AdminOverviewPage";
diff --git a/web/src/routesUser.ts b/web/src/routesUser.ts
index 44f17b46cf..6b2e747601 100644
--- a/web/src/routesUser.ts
+++ b/web/src/routesUser.ts
@@ -1,4 +1,4 @@
-import { html } from "lit-html";
+import { html } from "lit";
import { Route } from "./elements/router/Route";
import "./user/LibraryPage";
diff --git a/web/src/user/LibraryApplication.ts b/web/src/user/LibraryApplication.ts
index b9f05fbead..87d213b833 100644
--- a/web/src/user/LibraryApplication.ts
+++ b/web/src/user/LibraryApplication.ts
@@ -1,15 +1,8 @@
import { t } from "@lingui/macro";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
-import { ifDefined } from "lit-html/directives/if-defined";
-import { until } from "lit-html/directives/until";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { ifDefined } from "lit/directives/if-defined";
+import { until } from "lit/directives/until";
import { Application } from "@goauthentik/api";
import { me } from "../api/Users";
import { truncate } from "../utils";
@@ -29,7 +22,7 @@ export class LibraryApplication extends LitElement {
selected = false;
@property()
- background: string = "";
+ background = "";
static get styles(): CSSResult[] {
return [
diff --git a/web/src/user/LibraryPage.ts b/web/src/user/LibraryPage.ts
index 055a2fe2d0..45ac135658 100644
--- a/web/src/user/LibraryPage.ts
+++ b/web/src/user/LibraryPage.ts
@@ -1,13 +1,6 @@
import { t } from "@lingui/macro";
-import {
- css,
- CSSResult,
- customElement,
- html,
- LitElement,
- property,
- TemplateResult,
-} from "lit-element";
+import { css, CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import Fuse from "fuse.js";
import { Application, CoreApi } from "@goauthentik/api";
import { AKResponse } from "../api/Client";
@@ -20,7 +13,7 @@ import PFEmptyState from "@patternfly/patternfly/components/EmptyState/empty-sta
import PFGallery from "@patternfly/patternfly/layouts/Gallery/gallery.css";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import "./LibraryApplication";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { UIConfig, uiConfig } from "./config";
@customElement("ak-library")
diff --git a/web/src/user/user-settings/BaseUserSettings.ts b/web/src/user/user-settings/BaseUserSettings.ts
index a5eb6d713d..a86d287c8c 100644
--- a/web/src/user/user-settings/BaseUserSettings.ts
+++ b/web/src/user/user-settings/BaseUserSettings.ts
@@ -1,4 +1,5 @@
-import { CSSResult, LitElement, property } from "lit-element";
+import { CSSResult, LitElement } from "lit";
+import { property } from "lit/decorators";
import PFBase from "@patternfly/patternfly/patternfly-base.css";
import PFCard from "@patternfly/patternfly/components/Card/card.css";
import PFButton from "@patternfly/patternfly/components/Button/button.css";
diff --git a/web/src/user/user-settings/UserSelfForm.ts b/web/src/user/user-settings/UserSelfForm.ts
index de4781f3bb..a22d4b248f 100644
--- a/web/src/user/user-settings/UserSelfForm.ts
+++ b/web/src/user/user-settings/UserSelfForm.ts
@@ -1,13 +1,14 @@
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { CoreApi, UserSelf } from "@goauthentik/api";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import { DEFAULT_CONFIG, tenant } from "../../api/Config";
import "../../elements/forms/FormElement";
import "../../elements/EmptyState";
import "../../elements/forms/Form";
import "../../elements/forms/HorizontalFormElement";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { ModelForm } from "../../elements/forms/ModelForm";
@customElement("ak-user-self-form")
diff --git a/web/src/user/user-settings/UserSettingsPage.ts b/web/src/user/user-settings/UserSettingsPage.ts
index faaad67b23..9ad439c767 100644
--- a/web/src/user/user-settings/UserSettingsPage.ts
+++ b/web/src/user/user-settings/UserSettingsPage.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, TemplateResult } from "lit-element";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import PFPage from "@patternfly/patternfly/components/Page/page.css";
import PFContent from "@patternfly/patternfly/components/Content/content.css";
@@ -20,7 +21,7 @@ import "./tokens/UserTokenList";
import "./UserSelfForm";
import "./sources/SourceSettings";
import "./stages/StageSettings";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { me } from "../../api/Users";
@customElement("ak-user-settings")
diff --git a/web/src/user/user-settings/sources/SourceSettings.ts b/web/src/user/user-settings/sources/SourceSettings.ts
index 1e192f087c..e95457e136 100644
--- a/web/src/user/user-settings/sources/SourceSettings.ts
+++ b/web/src/user/user-settings/sources/SourceSettings.ts
@@ -1,7 +1,8 @@
import { SourcesApi, UserSetting } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { EVENT_REFRESH } from "../../../constants";
import PFGrid from "@patternfly/patternfly/layouts/Grid/grid.css";
diff --git a/web/src/user/user-settings/sources/SourceSettingsOAuth.ts b/web/src/user/user-settings/sources/SourceSettingsOAuth.ts
index 1f8a47fb99..6f4adf71cc 100644
--- a/web/src/user/user-settings/sources/SourceSettingsOAuth.ts
+++ b/web/src/user/user-settings/sources/SourceSettingsOAuth.ts
@@ -1,10 +1,11 @@
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { BaseUserSettings } from "../BaseUserSettings";
import { SourcesApi } from "@goauthentik/api";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { t } from "@lingui/macro";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-user-settings-source-oauth")
export class SourceSettingsOAuth extends BaseUserSettings {
diff --git a/web/src/user/user-settings/sources/SourceSettingsPlex.ts b/web/src/user/user-settings/sources/SourceSettingsPlex.ts
index c660c76098..32005058be 100644
--- a/web/src/user/user-settings/sources/SourceSettingsPlex.ts
+++ b/web/src/user/user-settings/sources/SourceSettingsPlex.ts
@@ -1,7 +1,8 @@
-import { customElement, html, property, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { BaseUserSettings } from "../BaseUserSettings";
import { SourcesApi } from "@goauthentik/api";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { t } from "@lingui/macro";
diff --git a/web/src/user/user-settings/stages/StageSettings.ts b/web/src/user/user-settings/stages/StageSettings.ts
index 41062d8e45..75c64af9ba 100644
--- a/web/src/user/user-settings/stages/StageSettings.ts
+++ b/web/src/user/user-settings/stages/StageSettings.ts
@@ -1,7 +1,8 @@
import { StagesApi, UserSetting } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, LitElement, property, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { CSSResult, html, LitElement, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { EVENT_REFRESH } from "../../../constants";
import PFStack from "@patternfly/patternfly/layouts/Stack/stack.css";
diff --git a/web/src/user/user-settings/stages/UserSettingsAuthenticatorDuo.ts b/web/src/user/user-settings/stages/UserSettingsAuthenticatorDuo.ts
index e36597d30b..71ef7951e3 100644
--- a/web/src/user/user-settings/stages/UserSettingsAuthenticatorDuo.ts
+++ b/web/src/user/user-settings/stages/UserSettingsAuthenticatorDuo.ts
@@ -1,7 +1,8 @@
import { AuthenticatorsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { BaseUserSettings } from "../BaseUserSettings";
import { EVENT_REFRESH } from "../../../constants";
diff --git a/web/src/user/user-settings/stages/UserSettingsAuthenticatorStatic.ts b/web/src/user/user-settings/stages/UserSettingsAuthenticatorStatic.ts
index 4331547f3c..303e923dab 100644
--- a/web/src/user/user-settings/stages/UserSettingsAuthenticatorStatic.ts
+++ b/web/src/user/user-settings/stages/UserSettingsAuthenticatorStatic.ts
@@ -1,11 +1,12 @@
import { AuthenticatorsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { CSSResult, html, TemplateResult } from "lit";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { STATIC_TOKEN_STYLE } from "../../../flows/stages/authenticator_static/AuthenticatorStaticStage";
import { BaseUserSettings } from "../BaseUserSettings";
import { EVENT_REFRESH } from "../../../constants";
+import { customElement } from "lit/decorators";
@customElement("ak-user-settings-authenticator-static")
export class UserSettingsAuthenticatorStatic extends BaseUserSettings {
diff --git a/web/src/user/user-settings/stages/UserSettingsAuthenticatorTOTP.ts b/web/src/user/user-settings/stages/UserSettingsAuthenticatorTOTP.ts
index 271ccbbf60..87bdafb97b 100644
--- a/web/src/user/user-settings/stages/UserSettingsAuthenticatorTOTP.ts
+++ b/web/src/user/user-settings/stages/UserSettingsAuthenticatorTOTP.ts
@@ -1,7 +1,8 @@
import { AuthenticatorsApi } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, html, TemplateResult } from "lit-element";
-import { until } from "lit-html/directives/until";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { BaseUserSettings } from "../BaseUserSettings";
import { EVENT_REFRESH } from "../../../constants";
diff --git a/web/src/user/user-settings/stages/UserSettingsAuthenticatorWebAuthn.ts b/web/src/user/user-settings/stages/UserSettingsAuthenticatorWebAuthn.ts
index d806fc14ce..9d6baead42 100644
--- a/web/src/user/user-settings/stages/UserSettingsAuthenticatorWebAuthn.ts
+++ b/web/src/user/user-settings/stages/UserSettingsAuthenticatorWebAuthn.ts
@@ -1,7 +1,8 @@
-import { CSSResult, customElement, html, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { t } from "@lingui/macro";
import { AuthenticatorsApi, WebAuthnDevice } from "@goauthentik/api";
-import { until } from "lit-html/directives/until";
+import { until } from "lit/directives/until";
import { DEFAULT_CONFIG } from "../../../api/Config";
import { BaseUserSettings } from "../BaseUserSettings";
import PFDataList from "@patternfly/patternfly/components/DataList/data-list.css";
@@ -11,7 +12,7 @@ import "../../../elements/forms/DeleteForm";
import "../../../elements/forms/Form";
import "../../../elements/forms/ModalForm";
import "../../../elements/forms/HorizontalFormElement";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import { EVENT_REFRESH } from "../../../constants";
@customElement("ak-user-settings-authenticator-webauthn")
diff --git a/web/src/user/user-settings/stages/UserSettingsPassword.ts b/web/src/user/user-settings/stages/UserSettingsPassword.ts
index ed14e92393..c5235d53ad 100644
--- a/web/src/user/user-settings/stages/UserSettingsPassword.ts
+++ b/web/src/user/user-settings/stages/UserSettingsPassword.ts
@@ -1,7 +1,8 @@
-import { customElement, html, TemplateResult } from "lit-element";
+import { html, TemplateResult } from "lit";
+import { customElement } from "lit/decorators";
import { t } from "@lingui/macro";
import { BaseUserSettings } from "../BaseUserSettings";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
@customElement("ak-user-settings-password")
export class UserSettingsPassword extends BaseUserSettings {
diff --git a/web/src/user/user-settings/tokens/UserTokenForm.ts b/web/src/user/user-settings/tokens/UserTokenForm.ts
index 3c4ffd4c23..80b4b09b7f 100644
--- a/web/src/user/user-settings/tokens/UserTokenForm.ts
+++ b/web/src/user/user-settings/tokens/UserTokenForm.ts
@@ -1,9 +1,9 @@
import { CoreApi, IntentEnum, Token } from "@goauthentik/api";
import { t } from "@lingui/macro";
-import { customElement, property } from "lit-element";
-import { html, TemplateResult } from "lit-html";
+import { customElement, property } from "lit/decorators";
+import { html, TemplateResult } from "lit";
import { DEFAULT_CONFIG } from "../../../api/Config";
-import { ifDefined } from "lit-html/directives/if-defined";
+import { ifDefined } from "lit/directives/if-defined";
import "../../../elements/forms/HorizontalFormElement";
import { ModelForm } from "../../../elements/forms/ModelForm";
diff --git a/web/src/user/user-settings/tokens/UserTokenList.ts b/web/src/user/user-settings/tokens/UserTokenList.ts
index d85bd70574..5193bca1be 100644
--- a/web/src/user/user-settings/tokens/UserTokenList.ts
+++ b/web/src/user/user-settings/tokens/UserTokenList.ts
@@ -1,5 +1,6 @@
import { t } from "@lingui/macro";
-import { CSSResult, customElement, html, property, TemplateResult } from "lit-element";
+import { CSSResult, html, TemplateResult } from "lit";
+import { customElement, property } from "lit/decorators";
import { AKResponse } from "../../../api/Client";
import PFDescriptionList from "@patternfly/patternfly/components/DescriptionList/description-list.css";
diff --git a/web/src/utils.ts b/web/src/utils.ts
index 1993f52672..e41af1a835 100644
--- a/web/src/utils.ts
+++ b/web/src/utils.ts
@@ -1,5 +1,5 @@
import { t } from "@lingui/macro";
-import { html, TemplateResult } from "lit-html";
+import { html, TemplateResult } from "lit";
import "./elements/EmptyState";
export function getCookie(name: string): string {