diff --git a/ui/src/components/CompanyEditPanel.vue b/ui/src/components/CompanyEditPanel.vue
index 03c79bb..bda3557 100644
--- a/ui/src/components/CompanyEditPanel.vue
+++ b/ui/src/components/CompanyEditPanel.vue
@@ -66,9 +66,8 @@
{{ form.locked ? 'mdi-lock' : 'mdi-lock-open-variant-outline' }}
{{ t('group.locked') }}
-
- {{ form.locked ? t('user.statusLocked') : t('user.statusActive') }}
-
+
@@ -105,7 +104,7 @@
import { ref, computed, onMounted, onBeforeUnmount } from 'vue'
import { useApi, useErrorStore, useI18nStore } from '@ligoj/host'
import { TYPE_ICONS } from '../composables/delegateTypes.js'
-import { VibrantConfirmDialog as LigojConfirmDialog, LjButton, LjAvailabilityField } from '@ligoj/host'
+import { VibrantConfirmDialog as LigojConfirmDialog, LjButton, LjAvailabilityField, LjStatus } from '@ligoj/host'
const props = defineProps({
/**
diff --git a/ui/src/views/CompanyListView.vue b/ui/src/views/CompanyListView.vue
index 1a4cb02..9b13e07 100644
--- a/ui/src/views/CompanyListView.vue
+++ b/ui/src/views/CompanyListView.vue
@@ -37,10 +37,8 @@
{{ item.count ?? '—' }}
-
- mdi-lock
-
- —
+
@@ -79,7 +77,7 @@ import { ref, computed, onMounted } from 'vue'
import { useRoute } from 'vue-router'
import { useDataTable, useApi, useAppStore, useErrorStore, useI18nStore } from '@ligoj/host'
import { TYPE_ICONS } from '../composables/delegateTypes.js'
-import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjDialog } from '@ligoj/host'
+import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjDialog, LjStatus } from '@ligoj/host'
import CompanyEditPanel from '../components/CompanyEditPanel.vue'
const route = useRoute()
diff --git a/ui/src/views/ContainerScopeView.vue b/ui/src/views/ContainerScopeView.vue
index 0cfcf08..876cb24 100644
--- a/ui/src/views/ContainerScopeView.vue
+++ b/ui/src/views/ContainerScopeView.vue
@@ -29,10 +29,8 @@
{{ item.dn || '—' }}
-
- mdi-lock
-
- —
+
@@ -74,7 +72,7 @@
import { ref, computed, watch, onMounted } from 'vue'
import { useApi, useAppStore, useErrorStore, useI18nStore } from '@ligoj/host'
import { TYPE_ICONS } from '../composables/delegateTypes.js'
-import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjSegmented, LjDialog, LjAvailabilityField } from '@ligoj/host'
+import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjSegmented, LjDialog, LjAvailabilityField, LjStatus } from '@ligoj/host'
const api = useApi()
const appStore = useAppStore()
@@ -214,5 +212,4 @@ onMounted(() => {
.locked-note { display: flex; align-items: center; gap: 6px; margin: 6px 0 0 8px; font-size: 12px; color: var(--ink-3); }
.locked-note .v-icon { color: rgb(var(--v-theme-warning)); }
.dn { font-family: var(--mono); font-size: 12.5px; color: var(--ink-2); }
-.dash { color: var(--ink-3); }
diff --git a/ui/src/views/DelegateListView.vue b/ui/src/views/DelegateListView.vue
index 65cbc14..f695a91 100644
--- a/ui/src/views/DelegateListView.vue
+++ b/ui/src/views/DelegateListView.vue
@@ -39,14 +39,12 @@
-
-
-
+
-
-
-
+
@@ -79,7 +77,7 @@
import { ref, computed, onMounted } from 'vue'
import { useDataTable, useApi, useAppStore, useI18nStore } from '@ligoj/host'
import { TYPE_ICONS } from '../composables/delegateTypes.js'
-import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch } from '@ligoj/host'
+import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjStatus } from '@ligoj/host'
import DelegateEditDialog from './DelegateEditDialog.vue'
const appStore = useAppStore()
@@ -171,19 +169,4 @@ onMounted(() => {
.rcv-name {
font-weight: 600;
}
-
-/* Status dot: muted when off, vivid green with a glow when on. */
-.bdot {
- display: inline-block;
- width: 10px;
- height: 10px;
- border-radius: 50%;
- background: rgba(var(--v-theme-on-surface), .2);
- transition: background .15s, box-shadow .15s;
-}
-
-.bdot.on {
- background: #1d9d63;
- box-shadow: 0 0 0 3px rgba(29, 157, 99, .18), 0 0 10px 1px rgba(29, 157, 99, .6);
-}
\ No newline at end of file
diff --git a/ui/src/views/GroupListView.vue b/ui/src/views/GroupListView.vue
index 54a10f5..fdd9a0c 100644
--- a/ui/src/views/GroupListView.vue
+++ b/ui/src/views/GroupListView.vue
@@ -39,10 +39,8 @@
{{ item.count ?? '—' }}
-
- mdi-lock
-
- —
+
@@ -85,7 +83,7 @@ import { useRoute } from 'vue-router'
import { useDataTable, useApi, useAppStore, useErrorStore, useI18nStore } from '@ligoj/host'
import { TYPE_ICONS } from '../composables/delegateTypes.js'
import { useGroupMembersDialog } from '../composables/useGroupMembersDialog.js'
-import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjDialog } from '@ligoj/host'
+import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjDialog, LjStatus } from '@ligoj/host'
import GroupEditPanel from '../components/GroupEditPanel.vue'
const route = useRoute()
diff --git a/ui/src/views/UserListView.vue b/ui/src/views/UserListView.vue
index 5d66124..dadeefa 100644
--- a/ui/src/views/UserListView.vue
+++ b/ui/src/views/UserListView.vue
@@ -56,11 +56,8 @@
-
-
- {{ item.locked ? 'mdi-lock' : 'mdi-lock-open-variant' }}
-
-
+
@@ -106,7 +103,7 @@ import { useDataTable, useApi, useAppStore, useErrorStore, useI18nStore } from '
import { TYPE_ICONS } from '../composables/delegateTypes.js'
// Shared 2026 chrome: table, confirm dialog (aliased so
// tags need no change), page header, buttons, search — all from the host.
-import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch } from '@ligoj/host'
+import { VibrantDataTable, VibrantConfirmDialog as LigojConfirmDialog, LjPageHeader, LjButton, LjSearch, LjStatus } from '@ligoj/host'
import UserEditDialog from './UserEditDialog.vue'
const appStore = useAppStore()