-
+
diff --git a/app/resources/js/components/deals/DealDetailDrawer.vue b/app/resources/js/components/deals/DealDetailDrawer.vue
index 4796958e..f4e05038 100644
--- a/app/resources/js/components/deals/DealDetailDrawer.vue
+++ b/app/resources/js/components/deals/DealDetailDrawer.vue
@@ -19,7 +19,10 @@ const props = withDefaults(
{ inline: false },
);
-const emit = defineEmits<{ 'update:open': [value: boolean] }>();
+const emit = defineEmits<{
+ 'update:open': [value: boolean];
+ 'status-changed': [slug: string];
+}>();
const drawerOpen = computed({
get: () => props.open,
@@ -33,7 +36,12 @@ function close() {
-
+ emit('status-changed', s)"
+ />
diff --git a/app/resources/js/components/deals/DealDetailHero.vue b/app/resources/js/components/deals/DealDetailHero.vue
index fdc994fb..02b2af04 100644
--- a/app/resources/js/components/deals/DealDetailHero.vue
+++ b/app/resources/js/components/deals/DealDetailHero.vue
@@ -8,13 +8,20 @@
import type { MockDeal } from '../../composables/mockDeals';
import type { LeadStatus } from '../../composables/leadStatuses';
-defineProps<{
- deal: MockDeal;
- status: LeadStatus | null;
-}>();
+withDefaults(
+ defineProps<{
+ deal: MockDeal;
+ status: LeadStatus | null;
+ // 18.05.2026 ux: inline status picker — кликабельный chip с выпадающим
+ // списком всех статусов. Если allStatuses не передан — chip read-only.
+ allStatuses?: LeadStatus[];
+ }>(),
+ { allStatuses: () => [] },
+);
defineEmits<{
close: [];
+ 'change-status': [slug: string];
}>();
function formatRelative(minutes: number): string {
@@ -41,10 +48,34 @@ function formatRelative(minutes: number): string {