krona-front/dist/assets/DynamicDashboard-CEusXfUQ.js

1 line
No EOL
22 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import{f as e,h as t,i as n,r,s as i}from"./useToast-CS8pZhce.js";import{t as a}from"./dollar-sign-Bf6JneNn.js";import{t as o}from"./truck-D5o8mTsH.js";import{t as s}from"./utensils-BhILG_B7.js";import{B as c,E as l,K as u,R as d,V as f,X as p,c as m,ft as h,g,i as _,j as v,lt as y,o as b,s as x,t as S}from"./index-CNnq9VO5.js";import{t as C}from"./formatters-WvGQLZg0.js";import{O as w,d as T,f as E,ft as D,l as O,t as k,u as A}from"./AreaChart-BnzyacT3.js";var j=t(e(),1),M=i(),N=[{time:`10:00`,revenue:14200,orders:4},{time:`12:00`,revenue:38400,orders:12},{time:`14:00`,revenue:76e3,orders:24},{time:`16:00`,revenue:104500,orders:32},{time:`18:00`,revenue:149e3,orders:45},{time:`20:00`,revenue:184500,orders:58}],P=[{time:`Пн`,revenue:142e3,orders:48},{time:`Вт`,revenue:156e3,orders:52},{time:`Ср`,revenue:168e3,orders:56},{time:`Чт`,revenue:174e3,orders:59},{time:`Пт`,revenue:245e3,orders:84},{time:`Сб`,revenue:29e4,orders:98},{time:`Вс`,revenue:26e4,orders:89}],F=()=>{let{getActiveProfile:e,getActiveCapabilities:t,activeLocation:i,setIsQuickActionsOpen:F,kdsTickets:I,deliveries:L,workOrders:R}=y(),z=e(),B=t(),V=h(),[H,U]=(0,j.useState)(`today`);return(0,M.jsxs)(`div`,{className:`space-y-5 animate-fade-in`,children:[(0,M.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 bg-krona-surface border border-krona-border rounded-xl p-4 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsxs)(`h1`,{className:`text-lg font-bold text-krona-primary tracking-tight`,children:[`Операционный центр • `,z.companyName]}),(0,M.jsx)(r,{variant:`gold`,size:`sm`,children:z.category}),(0,M.jsx)(S,{level:`pilot1`,size:`sm`})]}),(0,M.jsxs)(`p`,{className:`text-xs text-krona-secondary mt-1`,children:[`Локация: `,(0,M.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:i}),` • Контур реального времени синхронизирован`]})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(n,{variant:`outline`,size:`sm`,onClick:()=>V(`/operations`),children:`Открыть рабочий стол`}),(0,M.jsx)(n,{variant:`primary`,size:`sm`,onClick:()=>F(!0),children:`+ Быстрое действие`})]})]}),(()=>{switch(z.id){case`car_wash`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Машин в работе`,value:`${R.filter(e=>e.status===`in_progress`).length||4} авто`,change:{value:`+2`,trend:`up`},subtitle:`2 бокса на въезде`,icon:(0,M.jsx)(u,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Загрузка боксов`,value:`83%`,change:{value:`+5%`,trend:`up`},subtitle:`5 из 6 боксов заняты`,icon:(0,M.jsx)(v,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Средний чек мойки`,value:C(1850),change:{value:`+12%`,trend:`up`},subtitle:`Комплекс + воск`,icon:(0,M.jsx)(m,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Время на пост`,value:`28 минут`,change:{value:`-3 мин`,trend:`up`},subtitle:`Норматив: 30 мин`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-green`})})]});case`auto_service`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Авто на постах`,value:`${R.length} авто`,change:{value:`+3`,trend:`up`},subtitle:`В работе: 3 • Ожидают: 1`,icon:(0,M.jsx)(u,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Подъемники`,value:`4 из 4 заняты`,change:{value:`100%`,trend:`up`},subtitle:`Очередь: 2 авто`,icon:(0,M.jsx)(v,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Нормо-часы`,value:`42.5 н-ч`,change:{value:`+6.5`,trend:`up`},subtitle:`Ставка: 2 100 ₽/н-ч`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Запчасти в нарядах`,value:C(186400),change:{value:`+18%`,trend:`up`},subtitle:`На складе: 94% позиций`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})})]});case`restaurant_delivery_only`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Выручка доставки`,value:C(142800),change:{value:`+22%`,trend:`up`},subtitle:`План: 130 000 ₽`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Курьеров на линии`,value:`${L.filter(e=>e.status===`in_transit`).length+3} курьера`,change:{value:`+2`,trend:`up`},subtitle:`3 на авто, 2 самокат`,icon:(0,M.jsx)(o,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Среднее время доставки`,value:`34 мин`,change:{value:`-4 мин`,trend:`up`},subtitle:`Готовка 14 мин + путь 20 мин`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Онлайн-чеков`,value:`${L.length+38} заказов`,change:{value:`+14`,trend:`up`},subtitle:`Сайт: 60% • Бот: 40%`,icon:(0,M.jsx)(g,{className:`w-4 h-4 text-krona-info`})})]});case`fitness`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Активных абонементов`,value:`840 карт`,change:{value:`+32`,trend:`up`},subtitle:`Продлений в мес: 78%`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Загрузка залов`,value:`72%`,change:{value:`+8%`,trend:`up`},subtitle:`Пик: 18:00 - 21:00`,icon:(0,M.jsx)(v,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Тренировок сегодня`,value:`18 занятий`,subtitle:`Персональных: 12`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Выручка сегодня`,value:C(92e3),change:{value:`+15%`,trend:`up`},subtitle:`Карты + спортбар`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})})]});case`clinic`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Приёмов сегодня`,value:`36 пациентов`,change:{value:`+4`,trend:`up`},subtitle:`Подтверждено: 34`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Занятость кабинетов`,value:`90%`,change:{value:`+6%`,trend:`up`},subtitle:`9 из 10 кабинетов`,icon:(0,M.jsx)(v,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Средний чек приема`,value:C(3400),change:{value:`+300 ₽`,trend:`up`},subtitle:`Первичный + анализы`,icon:(0,M.jsx)(m,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Выручка сегодня`,value:C(122400),change:{value:`+11%`,trend:`up`},subtitle:`Оплата картами: 82%`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})})]});case`coworking`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Занятость рабочих мест`,value:`88% (44 из 50)`,change:{value:`+6%`,trend:`up`},subtitle:`Свободно 6 мест`,icon:(0,M.jsx)(v,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Брони переговорных`,value:`9 броней`,change:{value:`+2`,trend:`up`},subtitle:`Зал А, Б и Скайп-румы`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Активных резидентов`,value:`64 чел`,subtitle:`Командных офисов: 6`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Выручка сегодня`,value:C(45e3),change:{value:`+8%`,trend:`up`},subtitle:`Дневные пропуски + кофе`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})})]});case`logistics`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Заказов в пути`,value:`18 отправлений`,change:{value:`+5`,trend:`up`},subtitle:`В доставке прямо сейчас`,icon:(0,M.jsx)(o,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Доставлено вовремя %`,value:`97.8%`,change:{value:`+0.5%`,trend:`up`},subtitle:`SLA: 95%`,icon:(0,M.jsx)(c,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Курьеров на маршрутах`,value:`8 курьеров`,subtitle:`Авто: 5, Мото: 3`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Среднее время рейса`,value:`26 минут`,change:{value:`-2 мин`,trend:`up`},subtitle:`Городской экспресс`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-green`})})]});case`retail`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Выручка магазина`,value:C(248e3),change:{value:`+19%`,trend:`up`},subtitle:`Чеков сегодня: 142`,icon:(0,M.jsx)(g,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Средний чек`,value:C(1746),change:{value:`+4%`,trend:`up`},subtitle:`Товаров в чеке: 3.2`,icon:(0,M.jsx)(m,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Товарных позиций на складе`,value:`1 420 SKU`,subtitle:`Критический остаток: 4 SKU`,icon:(0,M.jsx)(l,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Оборачиваемость склада`,value:`14.2 дня`,change:{value:`-1.5 дн`,trend:`up`},subtitle:`Маржинальность: 42.4%`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})})]});case`beauty_services`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Выручка салона`,value:C(124e3),change:{value:`+12%`,trend:`up`},subtitle:`18 визитов сегодня`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Загрузка мастеров`,value:`86%`,change:{value:`+5%`,trend:`up`},subtitle:`5 мастеров на смене`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Записей на сегодня`,value:`22 клиента`,subtitle:`Подтверждено: 19`,icon:(0,M.jsx)(d,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Средний чек визита`,value:C(4850),change:{value:`+350 ₽`,trend:`up`},subtitle:`Услуги + уход дома`,icon:(0,M.jsx)(m,{className:`w-4 h-4 text-krona-green`})})]});case`wholesale_b2b`:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[(0,M.jsx)(_,{title:`Объем отгрузок сегодня`,value:C(145e4),change:{value:`+24%`,trend:`up`},subtitle:`9 партий сформировано`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Активные B2B контракты`,value:`42 контрагента`,subtitle:`В согласовании: 3`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Дебиторская задолженность`,value:C(84e4),change:{value:`-8%`,trend:`up`},subtitle:`Просрочено: 95 000 ₽`,icon:(0,M.jsx)(m,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Загрузка распредцентра`,value:`84%`,subtitle:`Свободно 320 паллетомест`,icon:(0,M.jsx)(l,{className:`w-4 h-4 text-krona-green`})})]});default:return(0,M.jsxs)(`div`,{className:`grid grid-cols-2 lg:grid-cols-5 gap-3.5`,children:[(0,M.jsx)(_,{title:`Выручка сегодня`,value:C(184500),change:{value:`+14%`,trend:`up`},subtitle:`План: 170 000 ₽ (108%)`,icon:(0,M.jsx)(a,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Заказы`,value:`58 чеков`,change:{value:`+8`,trend:`up`},subtitle:`Зал: 34 • Доставка: 24`,icon:(0,M.jsx)(s,{className:`w-4 h-4 text-krona-gold`})}),(0,M.jsx)(_,{title:`Средний чек`,value:C(3180),change:{value:`+6.2%`,trend:`up`},subtitle:`Зал: 3 650 ₽ • Онлайн: 2 450 ₽`,icon:(0,M.jsx)(m,{className:`w-4 h-4 text-krona-green`})}),(0,M.jsx)(_,{title:`Загрузка зала`,value:`82%`,change:{value:`+12%`,trend:`up`},subtitle:`11 из 14 столов заняты`,icon:(0,M.jsx)(b,{className:`w-4 h-4 text-krona-info`})}),(0,M.jsx)(_,{title:`Food Cost / Маржа`,value:`29.4%`,change:{value:`-0.8%`,trend:`up`},subtitle:`Маржинальность: 70.6%`,icon:(0,M.jsx)(l,{className:`w-4 h-4 text-krona-green`})})]})}})(),(0,M.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-xl p-4 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between mb-4`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-krona-primary`,children:`Динамика выручки и среднего чека`}),(0,M.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Почасовая разбивка с кассовых узлов и онлайн-заказов`})]}),(0,M.jsxs)(`div`,{className:`flex items-center gap-1 bg-krona-workspace p-1 rounded-lg border border-krona-border text-xs`,children:[(0,M.jsx)(`button`,{onClick:()=>U(`today`),className:`px-3 py-1 rounded font-medium transition-colors ${H===`today`?`bg-[#2F684C] text-white`:`text-krona-secondary hover:text-krona-primary`}`,children:`Сегодня`}),(0,M.jsx)(`button`,{onClick:()=>U(`week`),className:`px-3 py-1 rounded font-medium transition-colors ${H===`week`?`bg-[#2F684C] text-white`:`text-krona-secondary hover:text-krona-primary`}`,children:`Неделя`})]})]}),(0,M.jsx)(`div`,{className:`h-64 w-full`,children:(0,M.jsx)(D,{width:`100%`,height:`100%`,children:(0,M.jsxs)(k,{data:H===`today`?N:P,children:[(0,M.jsx)(`defs`,{children:(0,M.jsxs)(`linearGradient`,{id:`colorRev`,x1:`0`,y1:`0`,x2:`0`,y2:`1`,children:[(0,M.jsx)(`stop`,{offset:`5%`,stopColor:`#2F684C`,stopOpacity:.4}),(0,M.jsx)(`stop`,{offset:`95%`,stopColor:`#2F684C`,stopOpacity:0})]})}),(0,M.jsx)(E,{strokeDasharray:`3 3`,stroke:`#D8D5CB`,opacity:.4}),(0,M.jsx)(A,{dataKey:`time`,stroke:`#686C65`,fontSize:11}),(0,M.jsx)(O,{stroke:`#686C65`,fontSize:11,tickFormatter:e=>`${e/1e3}k`}),(0,M.jsx)(w,{formatter:e=>[C(Number(e)),`Выручка`],contentStyle:{backgroundColor:`#F8F6F0`,borderColor:`#D8D5CB`,borderRadius:8,fontSize:12}}),(0,M.jsx)(T,{type:`monotone`,dataKey:`revenue`,stroke:`#2F684C`,strokeWidth:2.5,fillOpacity:1,fill:`url(#colorRev)`})]})})})]}),(0,M.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-xl p-4 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between mb-3`,children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsx)(x,{className:`w-4 h-4 text-krona-warning`}),(0,M.jsx)(`h3`,{className:`text-sm font-semibold text-krona-primary`,children:`Требует внимания управляющего`})]}),(0,M.jsx)(`span`,{className:`text-xs text-krona-secondary`,children:`3 критических инцидента`})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-3`,children:[(0,M.jsxs)(`div`,{className:`p-3 rounded-lg border border-krona-danger/40 bg-krona-danger/10 flex flex-col justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-semibold text-krona-danger`,children:[(0,M.jsx)(f,{className:`w-4 h-4`}),(0,M.jsx)(`span`,{children:`Критический остаток`})]}),(0,M.jsxs)(`p`,{className:`text-xs text-krona-primary mt-1.5 leading-relaxed`,children:[`Лосось охлажденный: осталось `,(0,M.jsx)(`strong`,{children:`2.4 кг`}),` (порог 6 кг). Хватит на ~2.5 часа работы кухни.`]})]}),(0,M.jsxs)(n,{variant:`outline`,size:`sm`,className:`mt-3 bg-krona-surface text-xs justify-between`,onClick:()=>V(`/operations/inventory`),children:[(0,M.jsx)(`span`,{children:`Заявка поставщику`}),(0,M.jsx)(p,{className:`w-3.5 h-3.5`})]})]}),(0,M.jsxs)(`div`,{className:`p-3 rounded-lg border border-krona-warning/40 bg-krona-warning/10 flex flex-col justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-semibold text-krona-warning`,children:[(0,M.jsx)(d,{className:`w-4 h-4`}),(0,M.jsx)(`span`,{children:`Задержка на кухне (KDS)`})]}),(0,M.jsxs)(`p`,{className:`text-xs text-krona-primary mt-1.5 leading-relaxed`,children:[`Заказ #104 на `,(0,M.jsx)(`strong`,{children:`Стол 4`}),` находится в работе уже 18 минут при норме 12 минут.`]})]}),(0,M.jsxs)(n,{variant:`outline`,size:`sm`,className:`mt-3 bg-krona-surface text-xs justify-between`,onClick:()=>V(`/operations/kds`),children:[(0,M.jsx)(`span`,{children:`Открыть KDS кухни`}),(0,M.jsx)(p,{className:`w-3.5 h-3.5`})]})]}),(0,M.jsxs)(`div`,{className:`p-3 rounded-lg border border-krona-info/40 bg-krona-info/10 flex flex-col justify-between`,children:[(0,M.jsxs)(`div`,{children:[(0,M.jsxs)(`div`,{className:`flex items-center gap-1.5 text-xs font-semibold text-krona-info`,children:[(0,M.jsx)(o,{className:`w-4 h-4`}),(0,M.jsx)(`span`,{children:`Наличные у курьера`})]}),(0,M.jsxs)(`p`,{className:`text-xs text-krona-primary mt-1.5 leading-relaxed`,children:[`Курьер Алексей Смирнов держит `,(0,M.jsx)(`strong`,{children:`24 500 ₽`}),` наличными после 7 доставок.`]})]}),(0,M.jsxs)(n,{variant:`outline`,size:`sm`,className:`mt-3 bg-krona-surface text-xs justify-between`,onClick:()=>V(`/operations/delivery`),children:[(0,M.jsx)(`span`,{children:`Принять инкассацию`}),(0,M.jsx)(p,{className:`w-3.5 h-3.5`})]})]})]})]}),(0,M.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-3.5`,children:[B.dining&&(0,M.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-lg p-3.5 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-2`,children:[(0,M.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:`Зал и столы`}),(0,M.jsx)(r,{variant:`green`,size:`sm`,children:`82% занято`})]}),(0,M.jsxs)(`div`,{className:`text-xs text-krona-secondary space-y-1`,children:[(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Открытых чеков:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`11 столов`})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Среднее время посадки:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`48 минут`})]})]}),(0,M.jsx)(`button`,{onClick:()=>V(`/operations/dining`),className:`mt-2.5 text-xs text-krona-green font-medium hover:underline block`,children:`Схема зала →`})]}),B.kds&&(0,M.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-lg p-3.5 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-2`,children:[(0,M.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:`Кухня (KDS)`}),(0,M.jsxs)(r,{variant:`gold`,size:`sm`,children:[I.length,` в работе`]})]}),(0,M.jsxs)(`div`,{className:`text-xs text-krona-secondary space-y-1`,children:[(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Суши-цех:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`4 блюда`})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Горячий цех:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`2 блюда`})]})]}),(0,M.jsx)(`button`,{onClick:()=>V(`/operations/kds`),className:`mt-2.5 text-xs text-krona-green font-medium hover:underline block`,children:`Кухонный экран →`})]}),B.delivery&&(0,M.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-lg p-3.5 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-2`,children:[(0,M.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:`Доставка & Курьеры`}),(0,M.jsx)(r,{variant:`info`,size:`sm`,children:`3 в пути`})]}),(0,M.jsxs)(`div`,{className:`text-xs text-krona-secondary space-y-1`,children:[(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Среднее время доставки:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`34 мин`})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Курьеров на линии:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`4 сотрудника`})]})]}),(0,M.jsx)(`button`,{onClick:()=>V(`/operations/delivery`),className:`mt-2.5 text-xs text-krona-green font-medium hover:underline block`,children:`Управление доставкой →`})]}),(0,M.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-lg p-3.5 shadow-krona-soft`,children:[(0,M.jsxs)(`div`,{className:`flex items-center justify-between text-xs mb-2`,children:[(0,M.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:`Финансы & Кассы`}),(0,M.jsx)(r,{variant:`green`,size:`sm`,children:`Смены открыты`})]}),(0,M.jsxs)(`div`,{className:`text-xs text-krona-secondary space-y-1`,children:[(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Наличные в кассе:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`42 800 ₽`})]}),(0,M.jsxs)(`div`,{className:`flex justify-between`,children:[(0,M.jsx)(`span`,{children:`Безнал / Эквайринг:`}),(0,M.jsx)(`span`,{className:`font-medium text-krona-primary`,children:`141 700 ₽`})]})]}),(0,M.jsx)(`button`,{onClick:()=>V(`/finance`),className:`mt-2.5 text-xs text-krona-green font-medium hover:underline block`,children:`ДДС & Сальдо →`})]})]})]})};export{F as DynamicDashboard};