PageSourceSearch

https://workspace.agatha-legal.tech/assets/Cases-XCU4Nig6.js

js agatha-legal.tech collected 2026-10-09 21:51:33 UTC 89,264 bytes, 700 lines download raw bytes

1import{a as it,o as st,b as $,i as jt,e as c,d as R,c as t,F as rt,r as y,g as B,n as At,f as Ot,p as qt,j as It,T as ht,w as Qt}from"./vendor-vue-h7obynGm.js";import{p as S,u as vt,I as L,T as D,v as gt,L as I,ah as Rt,g as _t,q as P,P as Zt,ai as Kt,an as Yt,am as lt,ae as Jt,a as xt,aE as Xt}from"./index-Df1CnTDt.js";import{A as te}from"./account-menu-COUaZttN.js";import{N as ee}from"./notification-bell-BH0zrsVs.js";import{q as le}from"./icon_question_m-BehLMxWq.js";import{B as Tt}from"./BackButton-BIhgIaui.js";import{T as et}from"./Tooltip-g_Z0UIJh.js";import{P as oe,M as ae,G as re}from"./mobile-app-menu-o8VnAMpq.js";import{G as Gt}from"./guest-header-actions-nkuN7jtX.js";import{F as ne}from"./feedback-floating-button-80EN-Oci.js";import{M as mt,F as wt,c as ie,m as se,a as Ct}from"./mobile-sheet-DVCYU1yb.js";import{I as pt}from"./InputSearch-8AiVy0Sb.js";import{c as ce}from"./icon_up_m-CNU0jmyc.js";import{u as N}from"./cases-BOAG6kV9.js";import{a as ue,c as de,u as fe}from"./useInfiniteScroll-CNMXNK2q.js";import{S as nt}from"./Select-CNibmCO2.js";import{s as he,D as bt}from"./Drawer-Cs-nVMjU.js";import{d as U,I as Ht}from"./Input-BPLe6Cee.js";import{c as kt}from"./icon_filter_m-CBIIGcTG.js";import{B as W}from"./Badge-BecQhsm6.js";import{C as ve}from"./Counter-DzyAUMlr.js";import{u as $t}from"./useClickOutside-BNvjHqbs.js";import{u as ct,s as ge,a as xe}from"./useOverscrollLock-Cg1mGljV.js";import"./useColumnVisibility-BGs80G_X.js";import"./vendor-sanitize-Ce3TrkLl.js";import{C as pe}from"./schema-BE2Fb2KE.js";import{C as ye}from"./Collapse-DOQDuS2l.js";import{c as St}from"./icon_flag_filled_m-DsBXz9AF.js";import{h as _e}from"./icon_materials_s-Dv38x2L2.js";import{q as me}from"./icon_more_m-BsNs_peS.js";import{C as we}from"./ConfirmModal-BQAV_xAH.js";import{N as Wt}from"./Notification-bPalvJ3H.js";import{S as Q}from"./SkeletonText-8lkpY0-6.js";import{T as Ce}from"./Textarea-FEyweaR2.js";import{u as be}from"./useFormValidator-b4IV1iBu.js";import{S as ke}from"./ScrollArea-Dznl5tf7.js";import{useOnboardingStore as Se}from"./onboarding-B-S8nVhL.js";import{u as De}from"./FileDropZone-DqymjTeQ.js";import"./vendor-http-B9ygI19o.js";import"./store-CK5g7ynx.js";import"./Tabs-Bsk3tkoO.js";import"./icon_user_m-CibU2aUD.js";import"./icon_agata_simple_m-i_zhETpx.js";import"./icon_materials_m-C67lfag0.js";import"./feedback-PCM2KLB_.js";import"./Dropdown-BJhRS_uu.js";import"./case-detail-BZ3JHyk6.js";import"./materials-CGEaia4e.js";import"./debounce-BI8mxwNx.js";import"./sanitize-B7rTq4wo.js";import"./icon_upload_s-CLju1C40.js";import"./icon_info_m-BWci6xDe.js";const Be={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none"};function Ee(e,o){return st(),it("svg",Be,[...o[0]||(o[0]=[$("path",{fill:"#1C1B1F",d:"M7.674 13.216V6.123l-2.86 2.86-.784-.782L8.231 4l4.2 4.2-.782.784-2.86-2.86v7.092z"},null,-1)])])}const Dt={render:Ee},Le={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none"};function Me(e,o){return st(),it("svg",Le,[...o[0]||(o[0]=[$("g",{"clip-path":"url(#a)"},[$("path",{fill:"#1C1B1F",d:"M.055 15.339v-2.184h14.556v2.184zm2.911-5.522h.9l6.04-6.03-.457-.464-.453-.446-6.03 6.04zM1.875 10.91V8.453L10.033.306q.158-.158.359-.24.2-.08.418-.08t.42.08q.204.082.373.251l.875.886a.94.94 0 0 1 .245.362q.075.204.075.422 0 .204-.076.406a1.05 1.05 0 0 1-.244.369L4.33 10.909zm8.032-7.121-.458-.465-.453-.446z"})],-1),$("defs",null,[$("clipPath",{id:"a"},[$("path",{fill:"#fff",d:"M0 0h16v16H0z"})])],-1)])])}const Bt={render:Me},Fe={xmlns:"http://www.w3.org/2000/svg",width:"20",height:"20",fill:"none"};function ze(e,o){return st(),it("svg",Fe,[...o[0]||(o[0]=[$("path",{fill:"#1C1B1F",d:"M9.026 17.442v-7.05h-7.05V9.027h7.05v-7.05h1.364v7.05h7.05v1.365h-7.05v7.05z"},null,-1)])])}const Ae={render:ze},Oe={xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",fill:"none"};function Ie(e,o){return st(),it("svg",Oe,[...o[0]||(o[0]=[$("path",{fill:"#1C1B1F",d:"M6.65 12.627v-1.176h2.693v1.176zM3.611 8.902V7.725h8.77v1.177zM1.333 5.176V4h13.334v1.176z"},null,-1)])])}const Et={render:Ie},Lt=[{value:"active",label:"Активные"},{value:"inactive",label:"Неактивные"},{value:"archived",label:"Архивные"}],Mt=[{value:"upcoming_event",label:"по ближайшему событию"},{value:"created_at",label:"по дате создания"},{value:"claim_amount",label:"по сумме иска"}];function Re(){const e=N(),o=e.uiFilters,l=jt({search:o.search||"",clients:o.clients?[...o.clients]:[],lawyers:o.lawyers?[...o.lawyers]:[],stage:o.stage,activity:o.activity,urgent:o.urgent||!1,sortBy:o.sortBy,sortOrder:o.sortOrder}),s=c(()=>{var a;return((a=e.filters)==null?void 0:a.clients.map(g=>({value:g.name,label:g.name})))??[]}),u=c(()=>{var a;return((a=e.filters)==null?void 0:a.lawyers.map(g=>({value:g.id,label:g.name})))??[]}),m=c(()=>{var a;return((a=e.dictionaries)==null?void 0:a.case_stages.map(g=>({value:g.uuid,label:g.name})))??[]}),b=c(()=>l.clients.length>0||l.lawyers.length>0||l.stage||l.activity||l.urgent),E=c(()=>{let a=0;return l.clients.length>0&&a++,l.lawyers.length>0&&a++,l.stage&&a++,l.activity&&a++,l.urgent&&a++,a}),v=c(()=>s.value.filter(a=>l.clients.includes(a.value)).map(a=>a.label)),i=c(()=>u.value.filter(a=>l.lawyers.includes(a.value)).map(a=>a.label)),h=c(()=>{var a;return(a=m.value.find(g=>g.value===l.stage))==null?void 0:a.label}),_=c(()=>{var a;return(a=Lt.find(g=>g.value===l.activity))==null?void 0:a.label}),f=c(()=>{var a;return((a=Mt.find(g=>g.value===l.sortBy))==null?void 0:a.label)??"Сортировка"}),w=c(()=>({...l})),n=()=>{e.setFilters({...l,clients:[...l.clients],lawyers:[...l.lawyers]})},k=a=>Array.isArray(a)?a[0]:a,M=()=>{l.search="",l.clients=[],l.lawyers=[],l.stage=void 0,l.activity=void 0,l.urgent=!1,l.sortBy=void 0,l.sortOrder=void 0,n()};return{searchValue:c(()=>l.search),selectedClients:c(()=>l.clients),selectedLawyers:c(()=>l.lawyers),selectedStage:c(()=>l.stage),selectedActivity:c(()=>l.activity),isUrgent:c(()=>l.urgent),sortBy:c(()=>l.sortBy),sortOrder:c(()=>l.sortOrder),clientOptions:s,lawyerOptions:u,stageOptions:m,activityOptions:Lt,
1sortOptions:Mt,hasActiveFilters:b,activeFiltersCount:E,selectedClientLabels:v,selectedLawyerLabels:i,selectedStageLabel:h,selectedActivityLabel:_,selectedSortLabel:f,filters:w,setSearch:a=>{l.search=a,e.setSearchDebounced(a)},clearSearch:()=>{l.search="",e.setSearchDebounced("")},setClients:a=>{l.clients=[...a],n()},clearClients:()=>{l.clients=[],n()},setLawyers:a=>{l.lawyers=[...a],n()},clearLawyers:()=>{l.lawyers=[],n()},setStage:a=>{l.stage=k(a),n()},clearStage:()=>{l.stage=void 0,n()},clearActivity:()=>{l.activity=void 0,n()},setUrgent:a=>{l.urgent=a,n()},setSortBy:a=>{l.sortBy=a,l.sortOrder||(l.sortOrder="asc"),n()},setSortOrder:a=>{l.sortOrder=a,n()},toggleSortOrder:()=>{l.sortBy?l.sortOrder=l.sortOrder==="asc"?"desc":"asc":(l.sortBy="upcoming_event",l.sortOrder="asc"),n()},resetAll:M}}const Te="Cases-module__casesPage___JDIah",Ge="Cases-module__casesContent___1U7OR",He="Cases-module__casesColumn___nB-eQ",$e="Cases-module__pageFadeEnterActive___VKyWC",We="Cases-module__pageFadeLeaveActive___TqCvj",Pe="Cases-module__pageFadeEnterFrom___NBQ6-",Ve="Cases-module__pageFadeLeaveTo___LqQTF",Ue="Cases-module__casesList___ci2b4",Ne="Cases-module__emptyState___rgY39",je="Cases-module__emptyStateInner___B1CZB",qe="Cases-module__emptyStateText___qC6Ya",Qe="Cases-module__emptyStateHint___RxJjw",O={casesPage:Te,casesContent:Ge,casesColumn:He,pageFadeEnterActive:$e,pageFadeLeaveActive:We,pageFadeEnterFrom:Pe,pageFadeLeaveTo:Ve,casesList:Ue,emptyState:Ne,emptyStateInner:je,emptyStateText:qe,emptyStateHint:Qe},Ze="default-layout-header-module__defaultLayoutHeader___4a4vv",Ke="default-layout-header-module__leftSection___BEto5",Ye="default-layout-header-module__rightSection___-JcMl",Je="default-layout-header-module__backButton___cvcsg",ot={defaultLayoutHeader:Ze,leftSection:Ke,rightSection:Ye,backButton:Je},Xe=R({name:"DefaultLayoutHeader",props:{whenStartTour:S().optional(),onBack:S().optional()},setup(e){const o=c(()=>!vt().isAuthenticated);return()=>t("div",{class:ot.defaultLayoutHeader},[t("div",{class:ot.leftSection},[e.onBack&&t(Tt,{whenClick:e.onBack,class:ot.backButton},null),t(oe,null,null)]),t("div",{class:ot.rightSection},[o.value?t(Gt,null,null):t(rt,null,[e.whenStartTour&&t(et,{content:"Показать подсказки",placement:"bottom"},{default:()=>[t(L,{icon:le,size:"500",variant:"tertiary",iconColor:"color-cool-100",whenClick:e.whenStartTour},null)]}),t(ee,null,null),t(te,null,null)])])])}}),tl="default-module__defaultLayout___RPS7F",el={defaultLayout:tl},ll=R({name:"DefaultLayout",props:{whenStartTour:S().optional(),onBack:S().optional(),headerHidden:S().optional(!1)},setup(e,{slots:o}){return()=>{var l;return t("div",{class:el.defaultLayout},[!e.headerHidden&&t(Xe,{whenStartTour:e.whenStartTour,onBack:e.onBack},null),(l=o.default)==null?void 0:l.call(o),t(ne,null,null)])}}}),ol="cases-filters-sheet-module__row___yVlwD",al="cases-filters-sheet-module__rowLabel___YQ0Vc",rl="cases-filters-sheet-module__rowValue___O9GCj",nl="cases-filters-sheet-module__rowChevron___OrxdB",il="cases-filters-sheet-module__searchWrapper___vVTus",sl="cases-filters-sheet-module__empty___RGZYT",T={row:ol,rowLabel:al,rowValue:rl,rowChevron:nl,searchWrapper:il,empty:sl};function Ft(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!At(e)}const cl={filters:S().required(),whenClose:S().required()},ul=R({name:"CasesFiltersSheet",props:cl,setup(e){const o=N(),l=y("root"),s=y(""),u=n=>{s.value="",l.value=n},m=()=>{s.value="",l.value="root"},b=c(()=>{const n=e.filters.selectedClientLabels.value;return n.length?n.join(", "):"Все"}),E=c(()=>{const n=e.filters.selectedLawyerLabels.value;return n.length?n.join(", "):"Все"}),v=c(()=>e.filters.selectedStageLabel.value||"Любая"),i=(n,k,M)=>{const a=n.includes(k)?n.filter(g=>g!==k):[...n,k];M(a)},h=n=>{const k=s.value.trim().toLowerCase();return k?n.filter(M=>M.label.toLowerCase().includes(k)):n},_=(n,k,M)=>t("button",{type:"button",class:T.row,onClick:M},[t(D,{variant:"body-medium",color:"color-cool-100",class:T.rowLabel},Ft(n)?n:{default:()=>[n]}),t(D,{variant:"body-small",color:"color-cool-400",class:T.rowValue,truncate:!0},Ft(k)?k:{default:()=>[k]}),t(I,{src:ce,color:"color-cool-400",class:T.rowChevron},null)]),f=()=>t(mt,{title:"Фильтры",actionLabel:`Показать ${o.totalCount}`,secondaryLabel:e.filters.hasActiveFilters.value?"Сбросить":void 0,whenClose:e.whenClose,whenAction:e.whenClose,whenSecondary:e.filters.resetAll},{default:()=>[_("Клиенты",b.value,()=>u("clients")),_("Адвокаты",E.value,()=>u("lawyers")),_("Стадия дела",v.value,()=>u("stage")),t("button",{type:"button",class:T.row,onClick:()=>e.filters.setUrgent(!e.filters.isUrgent.value)},[t(D,{variant:"body-medium",color:"color-cool-100",class:T.rowLabel},{default:()=>[B("Только срочные")]}),t(gt,{checked:e.filters.isUrgent.value},null)])]}),w=(n,k,M,a,g)=>t(mt,{title:n,actionLabel:"Готово",whenBack:m,whenAction:m},{default:()=>
1[g&&t("div",{class:T.searchWrapper},[t(pt,{value:s.value,placeholder:"Поиск",size:"400",whenChange:F=>s.value=F,whenClearIconClick:()=>s.value=""},null)]),h(k).map(F=>t("button",{key:F.value,type:"button",class:T.row,onClick:()=>a(F.value)},[t(D,{variant:"body-medium",color:"color-cool-100",class:T.rowLabel,truncate:!0},{default:()=>[F.label]}),t(gt,{checked:M(F.value)},null)])),h(k).length===0&&t(D,{variant:"body-small",color:"color-cool-400",class:T.empty},{default:()=>[B("Ничего не найдено")]})]});return()=>l.value==="clients"?w("Клиенты",e.filters.clientOptions.value,n=>e.filters.selectedClients.value.includes(n),n=>i(e.filters.selectedClients.value,n,e.filters.setClients),!0):l.value==="lawyers"?w("Адвокаты",e.filters.lawyerOptions.value,n=>e.filters.selectedLawyers.value.includes(n),n=>i(e.filters.selectedLawyers.value,n,e.filters.setLawyers),!0):l.value==="stage"?w("Стадия дела",e.filters.stageOptions.value,n=>e.filters.selectedStage.value===n,n=>e.filters.setStage(e.filters.selectedStage.value===n?void 0:n),!1):f()}}),dl="cases-mobile-header-module__header___T-jcY",fl="cases-mobile-header-module__spacer___GQEdS",hl="cases-mobile-header-module__actions___3HMlj",dt={header:dl,spacer:fl,actions:hl},vl={canCreate:S().optional(!0),isGuest:S().optional(!1),whenOpenMenu:S().required(),whenCreate:S().optional()},gl=R({name:"CasesMobileHeader",props:vl,setup(e){return()=>t("div",{class:dt.header},[t(L,{icon:ue,iconColor:"color-cool-100",iconSize:"18",variant:"ghost",size:"400","aria-label":"Открыть меню",whenClick:e.whenOpe
1nMenu},null),t("div",{class:dt.spacer},null),t("div",{class:dt.actions},[e.isGuest?t(Gt,null,null):t(L,{icon:Rt,variant:"primary",size:"400",iconSize:"12",iconColor:"color-teal-050",title:"Создать дело",disabled:!e.canCreate,whenClick:e.whenCreate,"data-onboarding":"create-case-button"},null)])])}}),xl=new Set(["e7e9d63c-f6f9-4076-8de2-9302ac0536d5"]);function pl(e){return!!e&&xl.has(e)}const Z="__all__",yl=R({name:"GodModeBar",setup(){const e=N(),o=_t(),l=c(()=>{var i;return pl((i=o.currentUser)==null?void 0:i.uuid)}),s=y(null),u=y(null);Ot(()=>{l.value&&e.loadGodCompanies()});const m=c(()=>[{value:Z,label:"Все компании"},...e.godCompanies.map(i=>({value:i.uuid,label:`${i.name} (${i.cases_count})`}))]),b=c(()=>[{value:Z,label:"Все пользователи"},...e.godUsers.map(i=>({value:i.uuid,label:`${i.full_name||i.email||i.uuid} (${i.cases_count})`}))]),E=async i=>{const h=String(i);if(s.value=h,u.value=null,h===Z){e.godUsers=[],await e.setGodScope({all_companies:!0});return}await Promise.all([e.loadGodUsers(h),e.setGodScope({company_uuid:h})])},v=async i=>{const h=String(i);u.value=h;const _=s.value;if(!(!_||_===Z)){if(h===Z){await e.setGodScope({company_uuid:_});return}await e.setGodScope({company_uuid:_,owner_user_uuid:h})}};return()=>l.value?t("div",{style:{display:"flex",gap:"8px",marginBottom:"12px"}},[t(nt,{value:s.value,options:m.value,placeholder:"Компания",size:"400",whenChange:E},null),s.value&&s.value!==Z&&t(nt,{value:u.value,options:b.value,placeholder:"Пользователь",size:"400",whenChange:v},null)]):null}}),_l="filters-panel-module__filtersWrapper___CRCvr",ml="filters-panel-module__filtersRow___zlUPU",wl="filters-panel-module__tagsRow___nGUUT",Cl="filters-panel-module__stageSelectWrapper___QV-RL",bl="filters-panel-module__urgentCheckboxContent___gC3ND",tt={filtersWrapper:_l,filtersRow:ml,tagsRow:wl,stageSelectWrapper:Cl,urgentCheckboxContent:bl},kl=R({name:"FiltersPanel",props:{filters:S().required(),open:S().required()},setup(e){return()=>t(ye,{open:e.open},{default:()=>[t("div",{class:tt.filtersWrapper},[t("div",{class:tt.filtersRow},[t(wt,{options:e.filters.clientOptions.value,value:e.filters.selectedClients.value,placeholder:"клиенты",searchable:!0,searchPlaceholder:"Поиск клиента...",whenChange:e.filters.setClients},null),t(wt,{options:e.filters.lawyerOptions.value,value:e.filters.selectedLawyers.value,placeholder:"адвокаты",searchable:!0,searchPlaceholder:"Поиск адвоката...",whenChange:e.filters.setLawyers},null),t("div",{class:tt.stageSelectWrapper},[t(nt,{options:e.filters.stageOptions.value,value:e.filters.selectedStage.value,placeholder:"стадия дела",size:"300",whenChange:e.filters.setStage},null)]),t(P,{variant:"filter",active:e.filters.isUrgent.value,whenClick:()=>e.filters.setUrgent(!e.filters.isUrgent.value)},{default:()=>[t("div",{class:tt.urgentCheckboxContent},[t(gt,{checked:e.filters.isUrgent.value},null),B("срочно")])]})]),e.filters.hasActiveFilters.value&&t("div",{class:tt.tagsRow},[e.filters.selectedClientLabels.value.length>0&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:e.filters.clearClients},{default:()=>[B("Клиенты: "),e.filters.selectedClientLabels.value.slice(0,2).join(", "),e.filters.selectedClientLabels.value.length>2&&` (+${e.filters.selectedClientLabels.value.length-2})`]}),e.filters.selectedLawyerLabels.value.length>0&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:e.filters.clearLawyers},{default:()=>[B("Адвокаты: "),e.filters.selectedLawyerLabels.value.slice(0,2).join(", "),e.filters.selectedLawyerLabels.value.length>2&&` (+${e.filters.selectedLawyerLabels.value.length-2})`]}),e.filters.selectedStageLabel.value&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:e.filters.clearStage},{default:()=>[B("Стадия: "),e.filters.selectedStageLabel.value]}),t(P,{variant:"filter",whenClick:e.filters.resetAll},{default:()=>[B("сбросить все фильтры")]})])])]})}}),Sl="case-details-header-module__header___tGOCl",Dl="case-details-header-module__headerContent___2kA4C",Bl="case-details-header-module__mainRow___ZQm6C",El="case-details-header-module__leftSection___E-Kgf",Ll="case-details-header-module__searchWra
1pper___jfkul",Ml="case-details-header-module__selectWrapper___5ArXl",Fl="case-details-header-module__filterButtonWrapper___1MAsE",zl="case-details-header-module__sortIcon___QMIzq",Al="case-details-header-module__sortIconDesc___4ZkFl",Ol="case-details-header-module__createButton___YkEY1",Il="case-details-header-module__mobileRow___WIUM-",Rl="case-details-header-module__mobileSearch___mOR8x",Tl="case-details-header-module__mobileIconSlot___eb9a-",Gl="case-details-header-module__mobileIconButton___yGnXL",Hl="case-details-header-module__mobileCounter___Jr6ps",$l="case-details-header-module__sortMenu___8O7Ux",Wl="case-details-header-module__sortOption___GwVWA",Pl="case-details-header-module__sortMenuDivider___Gg4OW",Vl="case-details-header-module__mobileTags___wcRJX",C={header:Sl,headerContent:Dl,mainRow:Bl,leftSection:El,searchWrapper:Ll,selectWrapper:Ml,filterButtonWrapper:Fl,sortIcon:zl,sortIconDesc:Al,createButton:Ol,mobileRow:Il,mobileSearch:Rl,mobileIconSlot:Tl,mobileIconButton:Gl,mobileCounter:Hl,sortMenu:$l,sortOption:Wl,sortMenuDivider:Pl,mobileTags:Vl},Ul=R({name:"CaseDetailsHeader",props:{filters:S().required(),onCreateCase:S().optional()},setup(e){const o=N(),l=e.filters,s=ct("(max-width: 599px)"),u=y(!1),m=y(),b=y();$t([m],()=>{u.value=!1},{ignore:[b]});const E=f=>{typeof f=="string"&&l.setSortBy(f)},v=c(()=>l.sortOrder.value?l.sortOrder.value==="asc"?"По возрастанию":"По убыванию":"Включить сортировку"),i=c(()=>[C.sortIcon,l.sortOrder.value==="desc"&&C.sortIconDesc]),h=()=>t("div",{class:C.mobileRow,"data-onboarding":"cases-search-mobile"},[t("div",{class:C.mobileSearch},[t(pt,{value:l.searchValue.value,placeholder:"Поиск по делу",size:"400",whenChange:l.setSearch,whenClearIconClick:l.clearSearch},null)]),t("div",{class:C.mobileIconSlot,"data-onboarding":"cases-filters"},[t(L,{icon:kt,size:"500",variant:"tertiary",borderRadius:4,iconColor:o.filtersOpen||l.hasActiveFilters.value?"color-neutral-300":"color-cool-400","aria-label":"Фильтры",class:C.mobileIconButton,whenClick:()=>o.filtersOpen=!o.filtersOpen},null),l.activeFiltersCount.value>0&&t("span",{class:C.mobileCounter},[t(ve,{value:l.activeFiltersCount.value,size:"400",variant:"outline"},null)])]),t("div",{ref:b,class:C.mobileIconSlot},[t(L,{icon:Et,size:"500",variant:"tertiary",borderRadius:4,iconColor:l.sortBy.value?"color-neutral-300":"color-cool-400","aria-label":"Сортировка",class:C.mobileIconButton,whenClick:()=>u.value=!u.value},null)]),u.value&&t("div",{ref:m,class:C.sortMenu},[l.sortOptions.map(f=>t("button",{key:f.value,type:"button",class:C.sortOption,onClick:()=>{l.setSortBy(f.value),u.value=!1}},[t(D,{variant:"body-medium",color:l.sortBy.value===f.value?"color-neutral-200":"color-cool-100"},{default:()=>[f.label]})])),t("div",{class:C.sortMenuDivider},null),t("button",{type:"button",class:C.sortOption,onClick:l.toggleSortOrder},[t(I,{src:Dt,color:"color-cool-100",class:i.value},null),t(D,{variant:"body-medium",color:"color-cool-100"},{default:()=>[v.value]})])])]),_=()=>t("div",{class:C.mobileTags},[l.selectedClientLabels.value.length>0&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:l.clearClients},{default:()=>[B("Клиенты: "),l.selectedClientLabels.value.length]}),l.selectedLawyerLabels.value.length>0&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:l.clearLawyers},{default:()=>[B("Адвокаты: "),l.selectedLawyerLabels.value.length]}),l.selectedStageLabel.value&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:l.clearStage},{default:()=>[l.selectedStageLabel.value]}),l.isUrgent.value&&t(W,{variant:"outline",size:"600",rightIcon:t(L,{icon:U,size:"300",variant:"ghost",borderRadius:4,iconColor:"color-neutral-400"},null),whenRightIconClick:()=>l.setUrgent(!1)},{default:()=>[B("Срочно")]})]);return()=>s.value?t("div",{class:C.header},[t("div",{class:C.headerContent},[h(),l.hasActiveFilters.value&&_()])]):t("div",{class:C.header},[t("div",{class:C.headerContent},[t("div",{class:C.mainRow,"data-onboarding":"cases-search"},[t("div",{class:C.leftSection}
1,[t("div",{class:C.searchWrapper},[t(pt,{value:l.searchValue.value,placeholder:"поиск по названию дела",size:"300",whenChange:l.setSearch,whenClearIconClick:l.clearSearch},null)]),t("div",{class:C.filterButtonWrapper,"data-onboarding":"cases-filters"},[t(P,{leftIcon:t(I,{src:kt,size:"12"},null),rightIcon:t(I,{src:o.filtersOpen?ie:he},null),variant:"filter",active:o.filtersOpen||l.hasActiveFilters.value,whenClick:()=>o.filtersOpen=!o.filtersOpen},{default:()=>[l.activeFiltersCount.value>0?`фильтры (${l.activeFiltersCount.value})`:"фильтры"]})]),t("div",{class:C.selectWrapper,"data-onboarding":"cases-sorting"},[t(nt,{leftContent:t(I,{src:Et,color:l.sortBy.value?"color-neutral-300":"color-cool-300"},null),options:l.sortOptions,value:l.sortBy.value,placeholder:"сортировать",size:"300",whenChange:E},null)]),t(et,{content:v.value,placement:"bottom"},{default:()=>[t(L,{icon:Dt,size:"500",iconColor:"color-cool-100",borderRadius:4,variant:"tertiary",whenClick:l.toggleSortOrder,class:i.value},null)]})]),e.onCreateCase&&t(Zt,{icon:Rt,whenClick:e.onCreateCase,class:C.createButton,"data-onboarding":"create-case-button"},{default:()=>[B("создать дело")]})]),t(kl,{filters:l,open:o.filtersOpen},null)])])}}),Nl="CaseCard-module__card___ZVPXx",jl="CaseCard-module__cardEditing___8lTNQ",ql="CaseCard-module__row___OWOjB",Ql="CaseCard-module__partiesRow___qMdz6",Zl="CaseCard-module__lawyerRow___B1V9T",Kl="CaseCard-module__headerLeft___mNtKQ",Yl="CaseCard-module__caseNumber___VSyUL",Jl="CaseCard-module__headerBadges___sjBZs",Xl="CaseCard-module__amountBadge___0qBA4",to="CaseCard-module__closeButton___U-OiB",eo="CaseCard-module__titleRow___CEzSo",lo="CaseCard-module__titleMain___c-D5G",oo="CaseCard-module__titleEdit___LLbg5",ao="CaseCard-module__titleInput___DOFli",ro="CaseCard-module__titleEditButton___bJwRG",no="CaseCard-module__parties___H8DaG",io="CaseCard-module__partyColumn___OjcoI",so="CaseCard-module__partyRow___AS75B",co="CaseCard-module__partyLabel___rnawt",uo="CaseCard-module__partyLabelHidden___td7K7",fo="CaseCard-module__partyName___NG6El",ho="CaseCard-module__lawyerColumn___oU2Op",vo="CaseCard-module__lawyerLabel___OyM4A",go="CaseCard-module__lawyerName___lo-cV",xo="CaseCard-module__lawyerItem___iVpAz",po="CaseCard-module__lawyerLink___6gHCJ",yo="CaseCard-module__urgentButton___wdaHr",_o="CaseCard-module__actionsWrapper___sRDFN",mo="CaseCard-module__actionsTrigger___Inpht",wo="CaseCard-module__actionsMenu___HhpWB",Co="CaseCard-module__actionsItem___U27dS",bo="CaseCard-module__titleEditActions___3FvVP",ko="CaseCard-module__titleEditAction___9iQeR",r={card:Nl,cardEditing:jl,row:ql,partiesRow:Ql,lawyerRow:Zl,headerLeft:Kl,caseNumber:Yl,headerBadges:Jl,amountBadge:Xl,closeButton:to,titleRow:eo,titleMain:lo,titleEdit:oo,titleInput:ao,titleEditButton:ro,parties:no,partyColumn:io,partyRow:so,partyLabel:co,partyLabelHidden:uo,partyName:fo,lawyerColumn:ho,lawyerLabel:vo,lawyerName:go,lawyerItem:xo,lawyerLink:po,urgentButton:yo,actionsWrapper:_o,actionsTrigger:mo,actionsMenu:wo,actionsItem:Co,titleEditActions:bo,titleEditAction:ko};function yt(e){return typeof e=="function"||Object.prototype.toString.call(e)==="[object Object]"&&!At(e)}const So={caseData:S().required(),onClick:S().optional(),onLawyerClick:S().optional(),testId:S().optional()}
1,ft=(e,o)=>o.length?t("div",{class:r.partyColumn},[o.map((l,s)=>t("div",{key:`${l.name}-${s}`,class:r.partyRow},[t(D,{variant:"body-medium",color:"color-neutral-300",class:[r.partyLabel,s>0&&r.partyLabelHidden]},yt(e)?e:{default:()=>[e]}),t(D,{variant:"body-medium",color:"color-neutral-300",class:r.partyName},{default:()=>[l.name]})]))]):null,Do=e=>e.map(o=>{var l;return{userUuid:o.user_uuid,name:((l=o.full_name)==null?void 0:l.trim())??""}}).filter(o=>!!o.name),Bo=R({name:"CaseCard",props:So,setup(e){const o=N(),l=_t(),s=ct("(max-width: 599px)"),u=y(!1),m=y(!1),b=y(),E=y();$t([b],()=>{u.value=!1},{ignore:[E]});const v=y(!1),i=y(""),h=y(""),_=y(!1),f=y(!1),w=y(!1),n=y(!1),k=c(()=>{var G;if(l.isChief)return!0;const d=(G=l.currentUser)==null?void 0:G.uuid;return d?(e.caseData.lawyers??[]).some(j=>j.is_owner&&j.user_uuid===d):!1}),M=()=>{var d;v.value||w.value||(d=e.onClick)==null||d.call(e,e.caseData)},a=d=>{v.value||(d.key==="Enter"||d.key===" ")&&(d.preventDefault(),M())},g=d=>{d.stopPropagation()},F=d=>{g(d),w.value=!0},K=()=>{w.value=!1},x=async()=>{if(n.value)return;n.value=!0;const d=await o.deleteCase(e.caseData.case_uuid);if(n.value=!1,d){w.value=!1;return}Wt.alert({renderContent:"Нельзя удалить дело, пока идет обработка документов"}),w.value=!1},V=d=>{g(d),i.value=e.caseData.case_title,h.value="",v.value=!0},Y=async d=>{d==null||d.stopPropagation(),f.value=!0,v.value=!1,h.value="",await qt(),f.value=!1},A=async d=>{if(d==null||d.stopPropagation(),_.value||!v.value)return;if(i.value.trim()===e.caseData.case_title){await Y();return}_.value=!0,h.value="";const G=await o.updateCaseTitle(e.caseData.case_uuid,i.value);if(_.value=!1,!G.success){h.value=G.error||"Не удалось обновить название";return}v.value=!1},ut=d=>{d.stopPropagation(),d.key==="Enter"&&(d.preventDefault(),A()),d.key==="Escape"&&(d.preventDefault(),Y())},Pt=()=>{f.value||_.value||!v.value||s.value||A()};return()=>{let d;const J=Kt(e.caseData.claim_amount),G=Do(e.caseData.lawyers??[]),j=G.length>1?"адвокаты дела:":"адвокат дела:",Vt=e.caseData.plaintiffs.length>0||e.caseData.defendants.length>0||e.caseData.third_parties.length>0,Ut=!!e.caseData.case_number||e.caseData.is_urgent||!!e.caseData.case_stage||J!=="",Nt=!s.value||Ut;return t(rt,null,[t("article",{class:[r.card,v.value&&r.cardEditing],onClick:M,onKeydown:a,role:"button",tabindex:v.value?-1:0,"data-testid":e.testId},[Nt&&t("div",{class:r.row},[t("div",{class:r.headerLeft},[t(I,{src:_e,color:"color-cool-400"},null),t("div",{class:r.headerBadges},[e.caseData.case_number?t(D,{variant:"body-medium",color:"color-neutral-200",weight:"medium",class:r.caseNumber},{default:()=>[B("№ "),e.caseData.case_number]}):!s.value&&t(D,{variant:"body-medium",color:"color-neutral-400",weight:"medium",class:r.caseNumber},{default:()=>[B("Без номера")]}),e.caseData.is_urgent&&(s.value?t("button",{type:"button",class:r.urgentButton,"aria-label":"Почему дело срочное",onClick:z=>{g(z),m.value=!m.value}},[t(I,{src:St},null)]):t(et,{content:e.caseData.urgent_comment||"",placement:"bottom"},{default:()=>[t(I,{src:St},null)]})),e.caseData.case_stage&&t(W,{variant:"outline",size:"400",static:!0},{default:()=>[e.caseData.case_stage]}),J!==""&&t("span",{class:r.amountBadge},[J])])]),k.value&&!s.value&&t(et,{content:"Удалить дело",placement:"bottom"},{default:()=>[t(L,{icon:Yt,variant:"transparent",size:"300",borderRadius:100,iconColor:"color-cool-400",class:r.closeButton,whenClick:F},null)]})]),s.value&&m.value&&e.caseData.urgent_comment&&t("div",{class:[r.row,r.urgentRow]},[t(D,{variant:"body-small",color:"color-neutral-300"},{default:()=>[e.caseData.urgent_comment]})]),t("div",{class:[r.row,r.titleRow]},[v.value?t("div",{class:r.titleEdit,onClick:g},[t(Ht,{class:r.titleInput,value:i.value,autofocus:!0,size:"500",variant:"embedded",hideValidityIcon:!0,placeholder:"Название дела",textColor:"color-neutral-200",validity:h.value?"error":"none",caption:h.value||void 0,loading:_.value,whenChange:z=>
1{i.value=z,h.value=""},whenKeydown:ut,whenBlur:Pt},null),s.value&&t("div",{class:r.titleEditActions},[t(P,{variant:"secondary",class:r.titleEditAction,loading:_.value,whenClick:A},{default:()=>[B("Сохранить")]}),t(P,{variant:"tertiary",class:r.titleEditAction,whenClick:Y},{default:()=>[B("Отмена")]})])]):t(rt,null,[t("div",{class:r.titleMain},[t(D,{variant:"body-medium",color:"color-neutral-200"},{default:()=>[e.caseData.case_title]})]),s.value?t("div",{class:r.actionsWrapper},[t("div",{ref:E},[t(L,{icon:me,variant:"transparent",size:"400",borderRadius:100,iconColor:"color-cool-400","aria-label":"Действия с делом",class:r.actionsTrigger,whenClick:z=>{g(z),u.value=!u.value}},null)]),u.value&&t("div",{ref:b,class:r.actionsMenu},[t("button",{type:"button",class:r.actionsItem,onClick:z=>{u.value=!1,V(z)}},[t(I,{src:Bt,color:"color-cool-100"},null),t(D,{variant:"body-medium",color:"color-cool-100"},{default:()=>[B("Переименовать")]})]),k.value&&t("button",{type:"button",class:r.actionsItem,onClick:z=>{u.value=!1,F(z)}},[t(I,{src:se,color:"color-red-300"},null),t(D,{variant:"body-medium",color:"color-red-300"},{default:()=>[B("Удалить дело")]})])])]):t(et,{content:"Изменить название",placement:"bottom"},{default:()=>[t(L,{icon:Bt,variant:"transparent",size:"300",borderRadius:100,iconColor:"color-cool-400",class:r.titleEditButton,whenClick:V},null)]})])]),Vt&&t("div",{class:[r.row,r.partiesRow]},[t("div",{class:r.parties},[ft("истец:",e.caseData.plaintiffs),ft("ответчик:",e.caseData.defendants),ft("тр.лицо:",e.caseData.third_parties)])]),G.length>0&&t("div",{class:[r.row,r.lawyerRow]},[t("div",{class:r.lawyerColumn},[t(D,{variant:"body-medium",color:"color-neutral-300",class:r.lawyerLabel},yt(j)?j:{default:()=>[j]}),t(D,{variant:"body-medium",color:"color-neutral-300",class:r.lawyerName},yt(d=G.map(z=>t("span",{key:z.userUuid,class:[r.lawyerItem,e.onLawyerClick&&r.lawyerLink],role:e.onLawyerClick?"button":void 0,tabindex:e.onLawyerClick?0:void 0,onClick:e.onLawyerClick?q=>{var X;q.stopPropagation(),(X=e.onLawyerClick)==null||X.call(e,z.userUuid)}:void 0,onKeydown:e.onLawyerClick?q=>{var X;(q.key==="Enter"||q.key===" ")&&(q.preventDefault(),q.stopPropagation(),(X=e.onLawyerClick)==null||X.call(e,z.userUuid))}:void 0},[z.name])))?d:{default:()=>[d]})])])]),t(we,{open:w.value,title:"Удалить дело?",description:`Дело «${e.caseData.case_title}» и все связанные с ним данные будут удалены без возможности восстановления.`,confirmText:"Удалить",cancelText:"Отмена",loading:n.value,whenConfirm:x,whenCancel:K},null)])}}}),Eo={testId:S().optional()},zt=R({name:"CaseCardSkeleton",props:Eo,setup(e){return()=>t("div",{class:r.card,"data-testid":e.testId,style:{cursor:"default"}},[t("div",{class:r.row},[t("div",{class:r.headerLeft},[t(lt,{width:"16px",height:"16px"},null),t("div",{class:r.headerBadges},[t(Q,{width:"80px"},null),t(lt,{width:"72px",height:"18px"},null),t(lt,{width:"88px",height:"18px"},null)])]),t(lt,{width:"16px",height:"16px"},null)]),t("div",{class:[r.row,r.titleRow]},[t("div",{class:r.titleMain},[t(Q,{width:"90%"},null)])]),t("div",{class:[r.row,r.partiesRow]},[t("div",{class:r.parties},[t("div",{class:r.partyColumn},[t(Q,{width:"160px"},null)]),t("div",{class:r.partyColumn},[t(Q,{width:"160px"},null)]),t("div",{class:r.partyColumn},[t(Q,{width:"160px"},null)])])]),t("div",{class:[r.row,r.lawyerRow]},[t("div",{class:r.lawyerColumn},[t(Q,{width:"180px"},null)])])])}}),Lo=e=>({title:{value:e.title,validation:{required:!0,requiredMessage:"Введите название дела"}},comment:{value:e.comment}}),Mo="case-add-modal-module__form___ttXdQ",Fo="case-add-modal-module__fieldsGroup___Y34sW",zo="case-add-modal-module__cell___wirYe",Ao="case-add-modal-module__input___rUdWt",Oo="case-add-modal-module__actions___OIixQ",Io="case-add-modal-module__submitButton___JeYQ3",Ro="case-add-modal-module__mobileSheet___5MhTL",H={form:Mo,fieldsGroup:Fo,cell:zo,input:Ao,actions:Oo,submitButton:Io,mobileSheet:Ro},To={open:S().required(),onClose:S().required()},Go=R({name:"CaseAddModal",props:To,setup(e){const o=N(),l=y(""),s=y([]),u=y([]),m=y(""),{errors:b,validateForm:E,resetErrors:v,clearFieldError:i}=be(Lo({title:l,comment:m})),h=x=>x.map(V=>({value:V,label:V,is_client:!1})),_=c(()=>{var x;return h(((x=o.partySuggestions)==null?void 0:x.plaintiffs)??[])}),f=c(()=>{var x;return h(((x=o.partySuggestions)==null?void 0:x.defendants)??[])}),w=c(()=>s.value.some(x=>x.is_client)),n=c(()=>u.value.some(x=>x.is_client)),k=x=>{l.value=x,i("title")},M=x=>{s.value=x,i("plaintiffs")},a=x=>{u.value=x,i("defendants")}
1,g=()=>{l.value="",s.value=[],u.value=[],m.value="",v()},F=()=>{g(),e.onClose()},K=async()=>{if(!E())return;const x=await o.createCase({title:l.value,description:m.value||void 0,plaintiffs:s.value,defendants:u.value});if(x.success&&x.data){Wt.success({renderContent:"Дело успешно создано"}),F();return}xt().isOpen&&F()};return()=>t(Jt,{open:e.open,title:"Новое дело",size:"500",whenClose:F,closeIcon:!0,panelClass:H.mobileSheet},{default:()=>[t("div",{class:H.form},[t("div",{class:H.fieldsGroup},[t("div",{class:H.cell,"data-onboarding":"case-title-input"},[t(Ht,{value:l.value,label:"Название дела",placeholder:"Например, взыскание долга с ООО «Ромашка»",validity:b.title?"error":"none",caption:b.title||void 0,whenChange:k,required:!0,whenClearIconClick:()=>k(""),class:H.input},null)]),t(Ct,{value:s.value,options:_.value,label:"Истец",placeholder:"Имя или название организации",placeholderWithValues:"Добавьте следующего истца",allowCreate:!0,partyMode:!0,clientToggleDisabled:n.value,caption:b.plaintiffs||void 0,whenChange:M},null),t(Ct,{value:u.value,options:f.value,label:"Ответчик",placeholder:"Имя или название организации",placeholderWithValues:"Добавьте следующего ответчика",allowCreate:!0,partyMode:!0,clientToggleDisabled:w.value,caption:b.defendants||void 0,whenChange:a},null)]),t("div",{class:H.cell},[t(Ce,{value:m.value,label:"Комментарий",placeholder:"Кратко опишите суть дела или контекст",rows:3,whenChange:x=>m.value=x},null)]),t("div",{class:H.actions,"data-onboarding":"case-submit-button"},[t(P,{variant:"outline",class:H.submitButton,loading:o.isPending("createCase"),whenClick:K},{default:()=>[B("Создать дело")]})])])]})}}),Ho="OnboardingSlider-module__wrapper___S4nkc",$o="OnboardingSlider-module__leaveButton___jPoeg",Wo="OnboardingSlider-module__card___ZrDBL",Po="OnboardingSlider-module__imageWrap___5zN6k",Vo="OnboardingSlider-module__imageSlot___Oz6yL",Uo="OnboardingSlider-module__image___Svt4t",No="OnboardingSlider-module__dots___55tjk",jo="OnboardingSlider-module__dot___Ps9H6",qo="OnboardingSlider-module__dotActive___S-I-C",Qo="OnboardingSlider-module__textWrap___T2LfE",Zo="OnboardingSlider-module__title___ZQH8p",Ko="OnboardingSlider-module__subtitle___wampu",Yo="OnboardingSlider-module__actions___jMcZ5",Jo="O
1nboardingSlider-module__backSlot___u59hA",Xo="OnboardingSlider-module__btnBack___Gt7zw",ta="OnboardingSlider-module__btnNext___rOQFk",ea="OnboardingSlider-module__fadeImageEnterActive___nN4tc",la="OnboardingSlider-module__fadeImageLeaveActive___ARtLM",oa="OnboardingSlider-module__fadeImageEnterFrom___KuqM1",aa="OnboardingSlider-module__fadeImageLeaveTo___bHm-i",ra="OnboardingSlider-module__backSlideEnterActive___Urhl5",na="OnboardingSlider-module__backSlideLeaveActive___YX-Kf",ia="OnboardingSlider-module__backSlideEnterFrom___ETEMD",sa="OnboardingSlider-module__backSlideLeaveTo___ejNoo",ca="OnboardingSlider-module__backSlideEnterTo___yBIL4",ua="OnboardingSlider-module__backSlideLeaveFrom___-Xh3q",p={wrapper:Ho,leaveButton:$o,card:Wo,imageWrap:Po,imageSlot:Vo,image:Uo,dots:No,dot:jo,dotActive:qo,textWrap:Qo,title:Zo,subtitle:Ko,actions:Yo,backSlot:Jo,btnBack:Xo,btnNext:ta,fadeImageEnterActive:ea,fadeImageLeaveActive:la,fadeImageEnterFrom:oa,fadeImageLeaveTo:aa,backSlideEnterActive:ra,backSlideLeaveActive:na,backSlideEnterFrom:ia,backSlideLeaveTo:sa,backSlideEnterTo:ca,backSlideLeaveFrom:ua},da=`<svg viewBox="0 0 860 430" xmlns="http://www.w3.org/2000/svg" role="img"
2	aria-label="Чат с Агатой внутри дела: ответ со ссылками, документ в таблице и его предпросмотр рядом"
3	font-family="Inter, -apple-system, BlinkMacSystemFont, sans-serif">
4	<defs>
5		<!-- акцент онбординга: токена нет, значения совпадают с Button.module.css (onboarding-primary) -->
6		<linearGradient id="s4-arrow" x1="0" y1="0" x2="1" y2="0">
7			<stop offset="0" stop-color="#4e73f1" stop-opacity="0.9" />
8			<stop offset="1" stop-color="#7db4f8" />
9		</linearGradient>
10		<!-- точка активного таба: #5985ff под 20% оверлеем (Tabs.module.css .tabIcon::after) -->
11		<linearGradient id="s4-tab-dot" x1="0" y1="1" x2="1" y2="0">
12			<stop offset="0" stop-color="#5271E5" />
13			<stop offset="1" stop-color="#5D91FF" />
14		</linearGradient>
15		<!-- sRGB обязателен: в linearRGB (по умолчанию) мягкая тень даёт цветной подмес -->
16		<filter id="s4-shadow" x="-25%" y="-25%" width="150%" height="150%"
17			color-interpolation-filters="sRGB">
18			<feDropShadow dx="0" dy="10" stdDeviation="14" flood-color="#0b1020" flood-opacity="0.12" />
19		</filter>
20	</defs>
21
22	<rect x="0" y="0" width="860" height="430" rx="18" fill="var(--color-graphite-950, #f6f6f6)" />
23
24	<!-- ============ экран дела целиком: табы + три колонки ============ -->
25	<g filter="url(#s4-shadow)">
26		<rect x="16" y="16" width="828" height="398" rx="16" fill="var(--color-graphite-950, #f8f8f8)"
27			stroke="var(--color-graphite-600, #ececec)" />
28	</g>
29
30	<rect x="271" y="32" width="318" height="40" rx="18" fill="var(--color-graphite-850, #1D1E25)"
31		stroke="var(--color-graphite-600, #373A46)" />
32	<circle cx="288" cy="52" r="5" fill="url(#s4-tab-dot)" />
33	<text x="301" y="56" font-size="12.5" fill="var(--color-cool-100, #D0DDDE)">материалы</text>
34	<circle cx="403.5" cy="52" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
35	<text x="417" y="56" font-size="12.5" fill="var(--color-cool-400, #8D9798)">детали</text>
36	<circle cx="497.5" cy="52" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
37	<text x="511" y="56" font-size="12.5" fill="var(--color-cool-400, #8D9798)">хронология</text>
38
39	<rect x="32" y="88" width="796" height="310" rx="14" fill="var(--color-graphite-850, #ffffff)"
40		stroke="var(--color-graphite-600, #ececec)" />
41
42	<!-- ======== колонка 1: чат с Агатой (тёмный в обеих темах) ======== -->
43	<rect x="44" y="98" width="236" height="290" rx="10" fill="var(--color-agata-950, #1D1E25)"
44		stroke="var(--color-agata-600, #2F3A66)" />
45	<text x="58" y="118" font-size="11.5" font-weight="600" fill="var(--color-cool-100, #D0DDDE)">Чат с
46		Агатой</text>
47	<path d="M44 128 H280" stroke="var(--color-agata-600, #2F3A66)" />
48
49	<rect x="118" y="136" width="150" height="24" rx="8" fill="var(--color-agata-700, #232B3D)" />
50	<text x="128" y="152" font-size="9" fill="var(--color-cool-100, #D0DDDE)">
50Сформулируй фабулу дела</text>
51
52	<g fill="var(--color-cool-400, #8D9798)" opacity="0.55">
53		<rect x="58" y="172" width="200" height="6" rx="3" />
54		<rect x="58" y="184" width="180" height="6" rx="3" />
55		<rect x="58" y="196" width="208" height="6" rx="3" />
56	</g>
57
58	<!-- действия под ответом: копировать / к документу / лайк / дизлайк (AssistantBubble) -->
59	<g fill="none" stroke="var(--color-cool-400, #8D9798)" stroke-width="1.3" stroke-linecap="round"
60		stroke-linejoin="round">
61		<g transform="translate(58 208) scale(0.85)">
62			<rect x="2" y="4.5" width="8.5" height="9.5" rx="2" />
63			<path d="M5 4.5 V3 a2 2 0 0 1 2 -2 h4.5 a2 2 0 0 1 2 2 v6.5 a2 2 0 0 1 -2 2 H10.5" />
64		</g>
65		<g transform="translate(77 208) scale(0.85)">
66			<rect x="3" y="2" width="10" height="12" rx="2" />
67			<path d="M5.5 5.5 h5 M5.5 8 h5 M5.5 10.5 h3" />
68		</g>
69		<g transform="translate(96 208) scale(0.85)">
70			<path d="M5.5 14 V6.5 H3.2 V14 Z" />
71			<path d="M5.5 6.5 L8.2 2.2 C9 2.2 9.5 2.9 9.3 3.6 L8.9 6 H12.4 C13.2 6 13.7 6.8 13.4 7.5 L12.2 12.6
72				C12.1 13.4 11.5 14 10.8 14 H5.5 Z" />
73		</g>
74		<g transform="translate(115 208) scale(0.85) rotate(180 8 8)">
75			<path d="M5.5 14 V6.5 H3.2 V14 Z" />
76			<path d="M5.5 6.5 L8.2 2.2 C9 2.2 9.5 2.9 9.3 3.6 L8.9 6 H12.4 C13.2 6 13.7 6.8 13.4 7.5 L12.2 12.6
77				C12.1 13.4 11.5 14 10.8 14 H5.5 Z" />
78		</g>
79	</g>
80
81	<!-- источники: три группы (SourcesList — материалы дела / законодательство / практика) -->
82	<text x="58" y="242" font-size="10.5" font-weight="500"
83		fill="var(--color-neutral-200, #C3C3C3)">Источники</text>
84
85	<text x="58" y="256" font-size="8.5" fill="var(--color-cool-400, #8D9798)">Материалы дела</text>
86	<rect x="58" y="261" width="208" height="24" rx="7" fill="var(--color-agata-700, #232B3D)"
87		stroke="#4e73f1" />
88	<rect x="68" y="270" width="130" height="6" rx="3" fill="var(--color-cool-100, #D0DDDE)" opacity="0.65" />
89
90	<text x="58" y="301" font-size="8.5" fill="var(--color-cool-400, #8D9798)">Законодательство</text>
91	<rect x="58" y="306" width="208" height="22" rx="7" fill="var(--color-agata-750, #21294A)" />
92	<rect x="68" y="314" width="104" height="6" rx="3" fill="var(--color-cool-100, #D0DDDE)" opacity="0.5" />
93
94	<text x="58" y="344" font-size="8.5" fill="var(--color-cool-400, #8D9798)">Судебная практика</text>
95	<rect x="58" y="349" width="208" height="22" rx="7" fill="var(--color-agata-750, #21294A)" />
96	<rect x="68" y="357" width="126" height="6" rx="3" fill="var(--color-cool-100, #D0DDDE)" opacity="0.5" />
97
98	<!-- курсор: по карточке источника кликают -->
99	<path d="M0 0 L0 13 L3.4 9.8 L5.6 14.5 L8 13.4 L5.8 8.9 L10.4 8.6 Z" transform="translate(212 264)"
100		fill="var(--color-graphite-850, #ffffff)" stroke="var(--color-agata-950, #1D1E25)" stroke-width="1.2"
101		stroke-linejoin="round" />
102
103	<!-- ======== колонка 2: таблица материалов ======== -->
104	<!-- строка документа, на который сослалась Агата -->
105	<rect x="324" y="108" width="232" height="48" rx="8" fill="var(--color-graphite-750, #f8f8f8)" />
106	<rect x="324" y="116" width="3" height="32" rx="1.5" fill="#4e73f1" />
107	<rect x="340" y="120" width="144" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
108	<rect x="340" y="134" width="104" height="18" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
109	<text x="348" y="147" font-size="8.5" fill="var(--color-cool-100, #6e7480)">Документ клиента</text>
110
111	<g opacity="0.45">
112		<path d="M340 168 H556" stroke="var(--color-graphite-600, #ececec)" />
113		<rect x="340" y="184" width="126" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
114		<rect x="340" y="198" width="98" height="18" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
115		<text x="348" y="211" font-size="8.5" fill="var(--color-cool-100, #6e7480)">Процессуальный</text>
116		<path d="M340 230 H556" stroke="var(--color-graphite-600, #ececec)" />
117		<rect x="340" y="246" width="156" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
118		<rect x="340" y="260" width="104" height="18" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
119		<text x="348" y="273" font-size="8.5" fill="var(--color-cool-100, #6e7480)">Документ клиента</text>
120		<path d="M340 292 H556" stroke="var(--color-graphite-600, #ececec)" />
121		<rect x="340" y="308" width="118" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.4" />
122	</g>
123
124	<!-- ======== колонка 3: предпросмотр документа ======== -->
125	<rect x="600" y="98" width="216" height="290" rx="10" fill="var(--color-graphite-950, #f8f8f8)"
126		stroke="var(--color-graphite-600, #ececec)" />
127	<rect x="612" y="110" width="11" height="14" rx="2" fill="none" stroke="var(--color-cool-100, #6e7480)"
128		stroke-width="1.2" />
129	<rect x="630" y="114" width="100" height="6" rx="3" fill="var(--color-cool-400, #b1b7c2)" opacity="0.6" />
130	<path d="M792 113 l7 7 M799 113 l-7 7" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.3"
131		stroke-linecap="round" />
132	<path d="M600 136 H816" stroke="var(--color-graphite-600, #ececec)" />
133	<text x="612" y="156" font-size="9" fill="var(--color-cool-100, #6e7480)">Показать саммари</text>
134	<path d="M791 151 l4 4 l4 -4" fill="none" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.3"
135		stroke-linecap="round" stroke-linejoin="round" />
136	<path d="M600 166 H816" stroke="var(--color-graphite-600, #ececec)" />
137
138	<rect x="612" y="178" width="192" height="196" rx="4" fill="var(--color-graphite-850, #ffffff)"
139		stroke="var(--color-graphite-600, #ececec)" />
140	<g fill="var(--color-graphite-650, #ececec)">
141		<rect x="624" y="192" width="112" height="5" rx="2.5" />
142		<rect x="624" y="208" width="168" height="4" rx="2" />
143		<rect x="624" y="220" width="150" height="4" rx="2" />
144		<rect x="624" y="232" width="162" height="4" rx="2" />
145		<rect x="624" y="244" width="120" height="4" rx="2" />
146		<rect x="624" y="260" width="158" height="4" rx="2" />
147		<rect x="624" y="272" width="142" height="4" rx="2" />
148		<rect x="624" y="284" width="164" height="4" rx="2" />
149		<rect x="624" y="296" width="104" height="4" rx="2" />
150		<rect x="624" y="312" width="152" height="4" rx="2" />
151		<rect x="624" y="324" width="134" height="4" rx="2" />
152		<rect x="624" y="336" width="146" height="4" rx="2" />
153		<rect x="624" y="348" width="98" height="4" rx="2" />
154	</g>
155
156	<!-- ============ две стрелки: источник → строка в деле → док
156умент ============ -->
157	<path d="M286 268 C 300 258, 306 190, 313 153" fill="none" stroke="url(#s4-arrow)" stroke-width="8"
158		stroke-linecap="round" />
159	<path d="M0 0 l-16 -9 v18 z" transform="translate(322 140) rotate(-55)" fill="url(#s4-arrow)" />
160
161	<path d="M562 146 C 576 156, 582 174, 588 194" fill="none" stroke="url(#s4-arrow)" stroke-width="8"
162		stroke-linecap="round" />
163	<path d="M0 0 l-16 -9 v18 z" transform="translate(598 206) rotate(50)" fill="url(#s4-arrow)" />
164</svg>
165`,fa=`<svg viewBox="0 0 860 430" xmlns="http://www.w3.org/2000/svg" role="img"
166	aria-label="Хронология дела: из одного документа система достаёт несколько событий и расставляет их по датам"
167	font-family="Inter, -apple-system, BlinkMacSystemFont, sans-serif">
168	<defs>
169		<!-- акцент онбординга: токена нет, значения совпадают с Button.module.css (onboarding-primary) -->
170		<linearGradient id="s5-arrow" x1="0" y1="0" x2="1" y2="1">
171			<stop offset="0" stop-color="#4e73f1" stop-opacity="0.9" />
172			<stop offset="1" stop-color="#7db4f8" />
173		</linearGradient>
174		<!-- точка активного таба: #5985ff под 20% оверлеем (Tabs.module.css .tabIcon::after) -->
175		<linearGradient id="s5-tab-dot" x1="0" y1="1" x2="1" y2="0">
176			<stop offset="0" stop-color="#5271E5" />
177			<stop offset="1" stop-color="#5D91FF" />
178		</linearGradient>
179		<!-- sRGB обязателен: в linearRGB (по умолчанию) мягкая тень даёт цветной подмес -->
180		<filter id="s5-shadow" x="-25%" y="-25%" width="150%" height="150%"
181			color-interpolation-filters="sRGB">
182			<feDropShadow dx="0" dy="10" stdDeviation="14" flood-color="#0b1020" flood-opacity="0.12" />
183		</filter>
184	</defs>
185
186	<rect x="0" y="0" width="860" height="430" rx="18" fill="var(--color-graphite-950, #f6f6f6)" />
187
188	<!-- ============ материалы дела: источник событий ============ -->
189	<g filter="url(#s5-shadow)">
190		<rect x="16" y="64" width="300" height="300" rx="14" fill="var(--color-graphite-850, #ffffff)"
191			stroke="var(--color-graphite-600, #ececec)" />
192	</g>
193
194	<!-- документ, из которого собраны события справа -->
195	<rect x="28" y="90" width="276" height="52" rx="8" fill="var(--color-graphite-750, #f8f8f8)" />
196	<rect x="28" y="100" width="3" height="32" rx="1.5" fill="#4e73f1" />
197	<rect x="44" y="98" width="14" height="18" rx="2" fill="var(--color-graphite-650, #ececec)" />
198	<text x="68" y="108" font-size="9.5" font-weight="600" fill="var(--color-cool-050, #4a5565)">Договор
199		подряда</text>
200	<text x="68" y="124" font-size="8" fill="var(--color-cool-100, #6e7480)">№ РТС225В240010(Д)</text>
201
202	<g opacity="0.45">
203		<path d="M44 156 H292" stroke="var(--color-graphite-600, #ececec)" />
204		<rect x="44" y="170" width="14" height="18" rx="2" fill="var(--color-graphite-650, #ececec)" />
205		<text x="68" y="180" font-size="9" fill="var(--color-cool-050, #4a5565)">Акт приемки № ОН-126</text>
206		<rect x="68" y="188" width="56" height="5" rx="2.5" fill="var(--color-graphite-650, #ececec)" />
207		<path d="M44 216 H292" stroke="var(--color-graphite-600, #ececec)" />
208		<rect x="44" y="230" width="14" height="18" rx="2" fill="var(--color-graphite-650, #ececec)" />
209		<text x="68" y="240" font-size="9" fill="var(--color-cool-050, #4a5565)">Платёжное поручение № 1553</text>
210		<rect x="68" y="248" width="56" height="5" rx="2.5" fill="var(--color-graphite-650, #ececec)" />
211		<path d="M44 276 H292" stroke="var(--color-graphite-600, #ececec)" />
212		<rect x="44" y="290" width="14" height="18" rx="2" fill="var(--color-graphite-650, #ececec)" />
213		<rect x="68" y="294" width="164" height="6" rx="3" fill="var(--color-cool-400, #b1b7c2)" opacity="0.5" />
214		<rect x="68" y="308" width="56" height="5" rx="2.5" fill="var(--color-graphite-650, #ececec)" />
215		<path d="M44 336 H292" stroke="var(--color-graphite-600, #ececec)" />
216	</g>
217
218	<!-- ============ экран дела: активна вкладка «хронология» ============ -->
219	<g filter="url(#s5-shadow)">
220		<rect x="300" y="16" width="544" height="390" rx="16" fill="var(--color-graphite-950, #f8f8f8)"
221			stroke="var(--color-graphite-600, #ececec)" />
222	</g>
223
224	<rect x="421" y="36" width="318" height="40" rx="18" fill="var(--color-graphite-850, #1D1E25)"
225		stroke="var(--color-graphite-600, #373A46)" />
226	<circle cx="438" cy="56" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
227	<text x="451" y="60" font-size="12.5" fill="var(--color-cool-400, #8D9798)">материалы</text>
228	<circle cx="553.5" cy="56" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
229	<text x="567" y="60" font-size="12.5" fill="var(--color-cool-400, #8D9798)">детали</text>
230	<circle cx="647.5" cy="56" r="5" fill="url(#s5-tab-dot)" />
231	<text x="661" y="60" font-size="12.5" fill="var(--color-cool-100, #D0DDDE)">хронология</text>
232
233	<rect x="324" y="92" width="496" height="300" rx="14" fill="var(--color-graphite-850, #ffffff)"
234		stroke="var(--color-graphite-600, #ececec)" />
235
236	<!-- переключатель материальных и процессуальных событий -->
237	<rect x="348" y="106" width="277" height="26" rx="13" fill="var(--color-graphite-700, #f3f4f6)" />
238	<rect x="350" y="108" width="123" height="22" rx="11" fill="var(--color-graphite-850, #ffffff)" />
239	<text x="411" y="123" font-size="9" text-anchor="middle" fill="var(--color-cool-050, #4a5565)">Хронология
240		материалов</text>
241	<text x="548" y="123" font-size="9" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">Процессуальная
242		хронология</text>
243
244	<path d="M418 150 V382" stroke="var(--color-graphite-600, #ececec)" />
245
246	<!-- событие 1 -->
247	<text x="336" y="179" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">апрель 2024</text>
248	<circle cx="418" cy="176" r="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.7" />
249	<path d="M424 176 H444" stroke="var(--color-graphite-600, #ececec)" stroke-dasharray="3 3" />
250	<rect x="448" y="150" width="352" height="72" rx="10" fill="var(--color-graphite-950, #f6f6f6)" />
251	<rect x="448" y="160" width="3" height="52" rx="1.5" fill="#4e73f1" />
252	<text x="462" y="172" font-size="10" font-weight="600" fill="var(--color-cool-050, #4a5565)">08.04.2024</text>
253	<path d="M522 170 l7 -7 l3 3 l-7 7 h-3 z" fill="none" stroke="var(--color-cool-100, #6e7480)"
254		stroke-width="1.1" stroke-linejoin="round" />
255	<text x="462" y="192" font-size="9" fill="var(--color-cool-050, #4a5565)">Заключён договор подряда на ремонт
256		лифтов</text>
257	<text x="462" y="212" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">Документ:</text>
258	<text x="510" y="212" font-size="8.5" fill="var(--color-cool-050, #4a5565)">Договор подряда</text>
259
260	<!-- событие 2 -->
261	<text x="336" y="259" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">июнь 2024</text>
262	<circle cx="418" cy="256" r="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.7" />
263	<path d="M424 256 H444" stroke="var(--color-graphite-600, #ececec)" stroke-dasharray="3 3" />
264	<rect x="448" y="230" width="352" height="72" rx="10" fill="var(--color-graphite-950, #f6f6f6)" />
265	<rect x="448" y="240" width="3" height="52" rx="1.5" fill="#4e73f1" />
266	<text x="462" y="252" font-size="10" font-weight="600" fill="var(--color-cool-050, #4a5565)">30.06.2024</text>
267	<path d="M522 250 l7 -7 l3 3 l-7 7 h-3 z" fill="none" stroke="var(--color-cool-100, #6e7480)"
268		stroke-width="1.1" stroke-linejoin="round" />
269	<text x="462" y="272" font-size="9" fill="var(--color-cool-050, #4a5565)">Истёк срок выполнения работ по
270		договору</text>
271	<text x="462" y="292" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">Документ:</text>
272	<text x="510" y="292" font-size="8.5" fill="var(--color-cool-050, #4a5565)">Договор подряда</text>
273
274	<!-- событие 3 -->
275	<text x="336" y="339" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">июль 2024</text>
276	<circle cx="418" cy="336" r="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.7" />
277	<path d="M424 336 H444" stroke="var(--color-graphite-600, #ececec)" stroke-dasharray="3 3" />
278	<rect x="448" y="310" width="352" height="72" rx="10" fill="var(--color-graphite-950, #f6f6f6)" />
279	<rect x="448" y="320" width="3" height="52" rx="1.5" fill="#4e73f1" />
280	<text x="462" y="332" font-size="10" font-weight="600" fill="var(--color-cool-050, #4a5565)">15.07.2024</text>
281	<path d="M522 330 l7 -7 l3 3 l-7 7 h-3 z" fill="none" stroke="var(--color-cool-100, #6e7480)"
282		stroke-width="1.1" stroke-linejoin="round" />
283	<text x="462" y="352" font-size="9" fill="var(--color-cool-050, #4a5565)">Начислена неустойка за просрочку
284		работ</text>
285	<text x="462" y="372" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">Документ:</text>
286	<text x="510" y="372" font-size="8.5" fill="var(--color-cool-050, #4a5565)">Договор подряда</text>
287
288	<!-- ============ одна стрелка на группу: события собраны из подсвеченного доÐ
288ºÑƒÐ¼ÐµÐ½Ñ‚а ============ -->
289	<path d="M300 138 C 380 168, 414 212, 434 243" fill="none" stroke="url(#s5-arrow)" stroke-width="7"
290		stroke-linecap="round" />
291	<path d="M0 0 l-16 -9 v18 z" transform="translate(444 256) rotate(55)" fill="url(#s5-arrow)" />
292</svg>
293`,ha=`<svg viewBox="0 0 860 430" xmlns="http://www.w3.org/2000/svg" role="img"
294	aria-label="Создание первого дела и переход к загрузке документов"
295	font-family="Inter, -apple-system, BlinkMacSystemFont, sans-serif">
296	<defs>
297		<!-- акцент онбординга: токена нет, значения совпадают с Button.module.css (onboarding-primary) -->
298		<linearGradient id="s1-arrow" x1="0" y1="0" x2="1" y2="1">
299			<stop offset="0" stop-color="#4e73f1" stop-opacity="0.9" />
300			<stop offset="1" stop-color="#7db4f8" />
301		</linearGradient>
302		<!-- точка активного таба: #5985ff под 20% оверлеем (Tabs.module.css .tabIcon::after) -->
303		<linearGradient id="s1-tab-dot" x1="0" y1="1" x2="1" y2="0">
304			<stop offset="0" stop-color="#5271E5" />
305			<stop offset="1" stop-color="#5D91FF" />
306		</linearGradient>
307		<!-- sRGB обязателен: в linearRGB (по умолчанию) мягкая тень даёт цветной подмес -->
308		<filter id="s1-shadow" x="-25%" y="-25%" width="150%" height="150%"
309			color-interpolation-filters="sRGB">
310			<feDropShadow dx="0" dy="10" stdDeviation="14" flood-color="#0b1020" flood-opacity="0.12" />
311		</filter>
312	</defs>
313
314	<rect x="0" y="0" width="860" height="430" rx="18" fill="var(--color-graphite-950, #f6f6f6)" />
315
316	<!-- ============ страница «Все дела»: пусто ============ -->
317	<g filter="url(#s1-shadow)">
318		<rect x="16" y="60" width="400" height="320" rx="14" fill="var(--color-graphite-850, #ffffff)"
319			stroke="var(--color-graphite-600, #ececec)" />
320	</g>
321
322	<!-- тулбар списка дел -->
323	<rect x="40" y="84" width="170" height="30" rx="8" fill="var(--color-graphite-950, #f6f6f6)"
324		stroke="var(--color-graphite-600, #ececec)" />
325	<circle cx="58" cy="97" r="4.5" fill="none" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.5" />
326	<path d="M61.5 100.5 L65 104" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.5"
327		stroke-linecap="round" />
328	<rect x="74" y="95" width="92" height="7" rx="3.5" fill="var(--color-graphite-650, #ececec)" />
329	<g stroke="var(--color-graphite-600, #ececec)" fill="none">
330		<rect x="222" y="84" width="76" height="30" rx="8" />
331		<rect x="310" y="84" width="76" height="30" rx="8" />
332	</g>
333	<g fill="var(--color-graphite-650, #ececec)">
334		<rect x="234" y="95" width="42" height="7" rx="3.5" />
335		<rect x="322" y="95" width="42" height="7" rx="3.5" />
336	</g>
337
338	<!-- пустое состояние: кнопка «+» (variant="primary") -->
339	<circle cx="216" cy="206" r="26" fill="var(--color-neutral-200, #424242)" />
340	<path d="M216 195 v22 M205 206 h22" stroke="var(--color-graphite-850, #ffffff)" stroke-width="2.4"
341		stroke-linecap="round" />
342	<text x="216" y="262" font-size="13" font-weight="600" text-anchor="middle"
343		fill="var(--color-cool-050, #4a5565)">Создайте первое дело</text>
344	<text x="216" y="282" font-size="11" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">Нажмите
345		«+», чтобы начать работу</text>
346
347	<!-- ============ экран дела: рамка страницы, табы и пустой остров ============ -->
348	<g filter="url(#s1-shadow)">
349		<rect x="396" y="20" width="448" height="384" rx="16" fill="var(--color-graphite-950, #f8f8f8)"
350			stroke="var(--color-graphite-600, #ececec)" />
351	</g>
352
353	<rect x="461" y="40" width="318" height="40" rx="18" fill="var(--color-graphite-850, #1D1E25)"
354		stroke="var(--color-graphite-600, #373A46)" />
355	<circle cx="478" cy="60" r="5" fill="url(#s1-tab-dot)" />
356	<text x="491" y="64" font-size="12.5" fill="var(--color-cool-100, #D0DDDE)">материалы</text>
357	<circle cx="593.5" cy="60" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
358	<text x="607" y="64" font-size="12.5" fill="var(--color-cool-400, #8D9798)">детали</text>
359	<circle cx="687.5" cy="60" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
360	<text x="701" y="64" font-size="12.5" fill="var(--color-cool-400, #8D9798)">хронология</text>
361
362	<rect x="420" y="96" width="404" height="290" rx="14" fill="var(--color-graphite-850, #ffffff)"
363		stroke="var(--color-graphite-600, #ececec)" />
364
365	<!-- пустое состояние материалов -->
366	<circle cx="622" cy="168" r="26" fill="var(--color-graphite-650, #ececec)" />
367	<rect x="614" y="157" width="17" height="22" rx="3" fill="none" stroke="var(--color-cool-100, #6e7480)"
368		stroke-width="1.5" />
369	<path d="M618 163 h9 M618 168 h9 M618 173 h5" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.2"
370		stroke-linecap="round" />
371
372	<text x="622" y="228" font-size="13" font-weight="600" text-anchor="middle"
373		fill="var(--color-cool-050, #4a5565)">Материалы дела пока не добавлены</text>
374	<text x="622" y="248" font-size="11" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">Загрузите
375		документы по делу, чтобы работать</text>
376	<text x="622" y="264" font-size="11" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">с
377		материалами и аналитикой в системе</text>
378
379	<rect x="532" y="284" width="180" height="34" rx="8" fill="var(--color-graphite-900, #ffffff)"
380		stroke="var(--color-graphite-550, #3F4252)" />
381	<text x="622" y="306" font-size="12" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">Загрузить
382		документы</text>
383
384	<!-- ============ стрелка «создал дело → грузи документы» ============ -->
385	<path d="M248 220 C 330 262, 400 292, 504 300" fill="none" stroke="url
385(#s1-arrow)" stroke-width="8"
386		stroke-linecap="round" />
387	<path d="M528 300 l-26 -13 v26 z" fill="url(#s1-arrow)" />
388</svg>
389`,va=`<svg viewBox="0 0 860 430" xmlns="http://www.w3.org/2000/svg" role="img"
390	aria-label="Поиск и фильтры материалов: выбор категории сужает список документов"
391	font-family="Inter, -apple-system, BlinkMacSystemFont, sans-serif">
392	<defs>
393		<!-- акцент онбординга: токена нет, значения совпадают с Button.module.css (onboarding-primary) -->
394		<linearGradient id="s3-arrow" x1="1" y1="1" x2="0" y2="0">
395			<stop offset="0" stop-color="#4e73f1" stop-opacity="0.9" />
396			<stop offset="1" stop-color="#7db4f8" />
397		</linearGradient>
398		<!-- точка активного таба: #5985ff под 20% оверлеем (Tabs.module.css .tabIcon::after) -->
399		<linearGradient id="s3-tab-dot" x1="0" y1="1" x2="1" y2="0">
400			<stop offset="0" stop-color="#5271E5" />
401			<stop offset="1" stop-color="#5D91FF" />
402		</linearGradient>
403		<!-- sRGB обязателен: в linearRGB (по умолчанию) мягкая тень даёт цветной подмес -->
404		<filter id="s3-shadow" x="-25%" y="-25%" width="150%" height="150%"
405			color-interpolation-filters="sRGB">
406			<feDropShadow dx="0" dy="10" stdDeviation="14" flood-color="#0b1020" flood-opacity="0.12" />
407		</filter>
408		<filter id="s3-shadow-sm" x="-25%" y="-25%" width="150%" height="150%"
409			color-interpolation-filters="sRGB">
410			<feDropShadow dx="0" dy="8" stdDeviation="10" flood-color="#0b1020" flood-opacity="0.18" />
411		</filter>
412	</defs>
413
414	<rect x="0" y="0" width="860" height="430" rx="18" fill="var(--color-graphite-950, #f6f6f6)" />
415
416	<!-- ============ экран дела ============ -->
417	<g filter="url(#s3-shadow)">
418		<rect x="16" y="16" width="828" height="398" rx="16" fill="var(--color-graphite-950, #f8f8f8)"
419			stroke="var(--color-graphite-600, #ececec)" />
420	</g>
421
422	<rect x="271" y="32" width="318" height="40" rx="18" fill="var(--color-graphite-850, #1D1E25)"
423		stroke="var(--color-graphite-600, #373A46)" />
424	<circle cx="288" cy="52" r="5" fill="url(#s3-tab-dot)" />
425	<text x="301" y="56" font-size="12.5" fill="var(--color-cool-100, #D0DDDE)">материалы</text>
426	<circle cx="403.5" cy="52" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
427	<text x="417" y="56" font-size="12.5" fill="var(--color-cool-400, #8D9798)">детали</text>
428	<circle cx="497.5" cy="52" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
429	<text x="511" y="56" font-size="12.5" fill="var(--color-cool-400, #8D9798)">хронология</text>
430
431	<rect x="32" y="88" width="796" height="310" rx="14" fill="var(--color-graphite-850, #ffffff)"
432		stroke="var(--color-graphite-600, #ececec)" />
433
434	<!-- ======== тулбар: поиск + фильтры ======== -->
435	<rect x="48" y="104" width="250" height="32" rx="8" fill="var(--color-graphite-950, #f6f6f6)"
436		stroke="var(--color-graphite-600, #ececec)" />
437	<circle cx="66" cy="118" r="4.5" fill="none" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.5" />
438	<path d="M69.5 121.5 L73 125" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.5"
439		stroke-linecap="round" />
440	<text x="84" y="123" font-size="9.5" fill="var(--color-cool-100, #6e7480)">Поиск по названию, номеру и
441		участникам</text>
442
443	<rect x="310" y="104" width="86" height="32" rx="8" fill="none" stroke="var(--color-graphite-600, #ececec)" />
444	<text x="324" y="123" font-size="10" fill="var(--color-cool-100, #6e7480)">Дата</text>
445	<path d="M372 116 l4 4 l4 -4" fill="none" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.3"
446		stroke-linecap="round" stroke-linejoin="round" />
447
448	<rect x="408" y="104" width="150" height="32" rx="8" fill="none" stroke="var(--color-graphite-600, #ececec)" />
449	<text x="422" y="123" font-size="10" fill="var(--color-cool-100, #6e7480)">Статус обработки</text>
450	<path d="M534 116 l4 4 l4 -4" fill="none" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.3"
451		stroke-linecap="round" stroke-linejoin="round" />
452
453	<!-- «Категория» — фильтр применён -->
454	<rect x="570" y="104" width="112" height="32" rx="8" fill="#4e73f1" fill-opacity="0.1"
455		stroke="#4e73f1" />
456	<text x="584" y="123" font-size="10" fill="#4e73f1">Категория</text>
457	<path d="M658 118 l4 -4 l4 4" fill="none" stroke="#4e73f1" stroke-width="1.3" stroke-linecap="round"
458		stroke-linejoin="round" />
459
460	<rect x="694" y="104" width="118" height="32" rx="8" fill="none" stroke="var(--color-graphite-600, #ececec)" />
461	<path d="M710 114 l2.2 4.5 l5 .7 l-3.6 3.5 .9 5 -4.5 -2.4 -4.5 2.4 .9 -5 -3.6 -3.5 5 -.7 z" fill="none"
462		stroke="var(--color-cool-100, #6e7480)" stroke-width="1.2" stroke-linejoin="round" />
463	<text x="728" y="123" font-size="10" fill="var(--color-cool-100, #6e7480)">Избранные</text>
464	<circle cx="794" cy="120" r="8" fill="none" stroke="var(--color-graphite-600, #ececec)" />
465	<text x="794" y="123" font-size="9" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">2</text>
466
467	<!-- ======== таблица: остались только документы выбранной категории ======== -->
468	<g opacity="0.45">
469		<rect x="48" y="152" width="120" height="6" rx="3" fill="var(--color-graphite-650, #ececec)" />
470		<rect x="360" y="152" width="70" height="6" rx="3" fill="var(--color-graphite-650, #ececec)" />
471	</g>
472	<path d="M48 166 H816" stroke="var(--color-graphite-600, #ececec)" />
473
474	<rect x="48" y="176" width="200" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
475	<rect x="360" y="170" width="68" height="20" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
476	<text x="370" y="184" font-size="9" fill="var(--color-cool-100, #6e7480)">Оплата</text>
477	<path d="M48 200 H816" stroke="var(--color-graphite-600, #ececec)" />
478
479	<rect x="48" y="220" width="234" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
480	<rect x="360" y="214" width="68" height="20" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
481	<text x="370" y="228" font-size="9" fill="var(--color-cool-100, #6e7480)">Оплата</text>
482	<path d="M48 244 H816" stroke="var(--color-graphite-600, #ececec)" />
483
484	<rect x="48" y="264" width="176" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
485	<rect x="360" y="258" width="68" height="20" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
486	<text x="370" y="272" font-size="9" fill="var(--color-cool-100, #6e7480)">Оплата</text>
487	<path d="M48 288 H816" stroke="var(--color-graphite-600, #ececec)" />
488
489	<rect x="48" y="308" width="212" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
490	<rect x="360" y="302" width="68" height="20" rx="6" fill="var(--color-graphite-700, #f3f4f6)" />
491	<text x="370" y="316" font-size="9" fill="var(--color-cool-100, #6e7480)">Оплата</text>
492	<path d="M48 332 H816" stroke="var(--color-graphite-600, #ececec)" />
493
494	<rect x="48" y="352" width="188" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.4" />
495	<rect x="360" y="346" width="68" height="20" rx="6" fill="var(--color-graphite-700, #f3f4f6)"
496		opacity="0.6" />
497
498	<!-- ======== раскрытый фильтр «Категория» ======== -->
499	<g filter="url(#s3-shadow-sm)">
500		<rect x="530" y="148" width="290" height="232" rx="10" fill="var(--color-graphite-850, #ffffff)"
501			stroke="var(--color-graphite-600, #ececec)" />
502	</g>
503
504	<rect x="542" y="160" width="266" height="26" rx="7" fill="var(--color-graphite-950, #f6f6f6)"
505		stroke="var(--color-graphite-600, #ececec)" />
506	<circle cx="558" cy="171" r="4" fill="none" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.4" />
507	<path d="M561 174 L564 177" stroke="var(--color-cool-100, #6e7480)" stroke-width="1.4" stroke-linecap="round" />
508	<rect x="574" y="170" width="120" height="6" rx="3" fill="var(--color-graphite-650, #ececec)" />
509
510	<rect x="542" y="196" width="62" height="22" rx="7" fill="var(--color-graphite-700, #f3f4f6)" />
511	<text x="573" y="211" font-size="8.5" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">Все (663)</text>
512	<rect x="610" y="196" width="92" height="22" rx="7" fill="var(--color-graphite-700, #f3f4f6)" />
513	<text x="656" y="211" font-size="8.5" text-anchor="middle" fill="var(--color-cool-100, #6e7480)">Клиентские
514		(534)</text>
515	<rect x="708" y="196" width="104" height="22" rx="7" fill="var(--color-graphite-700, #f3f4f6)" />
516	<text x="760" y="211" font-size="8.5" text-anchor="middle"
517		fill="var(--color-cool-100, #6e7480)">Процессуальные (129)</text>
518
519	<text x="542" y="238" font-size="8.5" font-style="italic" fill="var(--color-cool-100, #6e7480)">Выбрано: 1</text>
520
521	<g font-size="9" fill="var(--color-cool-100, #6e7480)">
522		<rect x="542" y="251" width="11" height="11" rx="3" fill="none"
523			stroke="var(--color-graphite-550, #e7e7e7)" />
524		<text x="562" y="260">Переписка (75)</text>
525
526		<rect x="542" y="273" width="11" height="11" rx="3" fill="none"
527			stroke="var(--color-graphite-550, #e7e7e7)" />
528		<text x="562" y="282">Экспертиза/Оценка (43)</text>
529
530		<rect x="534" y="290" width="282" height="22" rx="6" fill="#4e73f1" fill-opacity="0.1" />
531		<rect x="542" y="295" width="11" height="11" rx="3" fill="#4e73f1" />
532		<path d="M544.6 300.5 l2 2 l4 -4.4" fill="none" stroke="#ffffff" stroke-width="1.4"
533			stroke-linecap="round" stroke-linejoin="round" />
534		<text x="562" y="304" fill="#4e73f1">Оплата (31)</text>
535
536		<rect x="542" y="317" width="11" height="11" rx="3" fill="none"
537			stroke="var(--color-graphite-550, #e7e7e7)" />
538		<text x="562" y="326">Договор (12)</text>
539
540		<rect x="542" y="339" width="11" height="11" rx="3" fill="none"
541			stroke="var(--color-graphite-550, #e7e7e7)" />
542		<text x="562" y="348">Допсоглашение (5)</text>
543	</g>
544
545	<!-- ============ стрелка «отметил категорию → список сузился» ============ -->
546	<path d="M524 296 C 496 288, 466 250, 445 229" fill="none" stroke="url
546(#s3-arrow)" stroke-width="8"
547		stroke-linecap="round" />
548	<path d="M0 0 l-16 -9 v18 z" transform="translate(432 220) rotate(215)" fill="url(#s3-arrow)" />
549</svg>
550`,ga=`<svg viewBox="0 0 860 430" xmlns="http://www.w3.org/2000/svg" role="img"
551	aria-label="Центр загрузки и обработки: файлы в разных статусах, по баннеру можно перейти к материалам дела"
552	font-family="Inter, -apple-system, BlinkMacSystemFont, sans-serif">
553	<defs>
554		<!-- акцент онбординга: токена нет, значения совпадают с Button.module.css (onboarding-primary) -->
555		<linearGradient id="s2-accent" x1="0" y1="0" x2="1" y2="0">
556			<stop offset="0" stop-color="#4e73f1" />
557			<stop offset="1" stop-color="#18c2f1" />
558		</linearGradient>
559		<linearGradient id="s2-arrow" x1="0" y1="1" x2="1" y2="0">
560			<stop offset="0" stop-color="#4e73f1" stop-opacity="0.9" />
561			<stop offset="1" stop-color="#7db4f8" />
562		</linearGradient>
563		<!-- точка активного таба: #5985ff под 20% оверлеем (Tabs.module.css .tabIcon::after) -->
564		<linearGradient id="s2-tab-dot" x1="0" y1="1" x2="1" y2="0">
565			<stop offset="0" stop-color="#5271E5" />
566			<stop offset="1" stop-color="#5D91FF" />
567		</linearGradient>
568		<!-- sRGB обязателен: в linearRGB (по умолчанию) мягкая тень даёт цветной подмес -->
569		<filter id="s2-shadow" x="-25%" y="-25%" width="150%" height="150%"
570			color-interpolation-filters="sRGB">
571			<feDropShadow dx="0" dy="10" stdDeviation="14" flood-color="#0b1020" flood-opacity="0.12" />
572		</filter>
573		<filter id="s2-shadow-sm" x="-30%" y="-30%" width="160%" height="160%"
574			color-interpolation-filters="sRGB">
575			<feDropShadow dx="0" dy="5" stdDeviation="6" flood-color="#2f56d6" flood-opacity="0.3" />
576		</filter>
577	</defs>
578
579	<rect x="0" y="0" width="860" height="430" rx="18" fill="var(--color-graphite-950, #f6f6f6)" />
580
581	<!-- ============ панель: центр загрузки и обработки ============ -->
582	<g filter="url(#s2-shadow)">
583		<rect x="16" y="76" width="440" height="318" rx="14" fill="var(--color-graphite-850, #ffffff)"
584			stroke="var(--color-graphite-600, #ececec)" />
585	</g>
586	<text x="40" y="110" font-size="15" font-weight="600" fill="var(--color-cool-050, #4a5565)">Центр
587		загрузки и обработки</text>
588
589	<!-- дропзона -->
590	<rect x="40" y="124" width="392" height="56" rx="10" fill="var(--color-graphite-950, #f6f6f6)"
591		stroke="var(--color-graphite-550, #d7d7d7)" stroke-dasharray="6 5" />
592	<circle cx="236" cy="152" r="14" fill="var(--color-graphite-650, #ececec)" />
593	<path d="M236 146 v10 M231.8 150.2 L236 146 l4.2 4.2" fill="none" stroke="var(--color-cool-100, #6e7480)"
594		stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" />
595
596	<!-- файл 1 — загружается (--status-uploading) -->
597	<g>
598		<rect x="40" y="244" width="392" height="44" rx="8" fill="var(--color-graphite-950, #f6f6f6)" />
599		<rect x="52" y="256" width="18" height="18" rx="4" fill="var(--color-graphite-650, #ececec)" />
600		<rect x="80" y="258" width="112" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.5" />
601		<rect x="358" y="258" width="58" height="7" rx="3.5" fill="var(--color-graphite-650, #ececec)" />
602		<path d="M84 278 v-9 M80.4 272.6 L84 269 l3.6 3.6 M79 281 h10" fill="none"
603			stroke="var(--status-uploading, #5985FF)" stroke-width="1.6" stroke-linecap="round"
604			stroke-linejoin="round" />
605		<rect x="98" y="273" width="244" height="4" rx="2" fill="var(--color-graphite-650, #ececec)" />
606		<rect x="98" y="273" width="72" height="4" rx="2" fill="var(--status-uploading, #5985FF)" />
607	</g>
608
609	<!-- файл 2 — обрабатывается (--status-processing) -->
610	<g>
611		<rect x="40" y="296" width="392" height="44" rx="8" fill="var(--color-graphite-950, #f6f6f6)" />
612		<rect x="52" y="308" width="18" height="18" rx="4" fill="var(--color-graphite-650, #ececec)" />
613		<rect x="80" y="310" width="86" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.5" />
614		<rect x="358" y="310" width="58" height="7" rx="3.5" fill="var(--color-graphite-650, #ececec)" />
615		<path d="M89 330 a5.5 5.5 0 1 1 -2 -4.3" fill="none" stroke="var(--status-processing, #919EFF)"
616			stroke-width="1.8" stroke-linecap="round" />
617		<rect x="102" y="323" width="15" height="13" rx="2.5" fill="none"
618			stroke="var(--status-documents, #69DAE0)" stroke-width="1.4" />
619		<path d="M105.5 327 h8 M105.5 330.5 h5" stroke="var(--status-documents, #69DAE0)" stroke-width="1.2"
620			stroke-linecap="round" />
621		<text x="122" y="334" font-size="10.5" fill="var(--status-documents, #69DAE0)">12</text>
622	</g>
623
624	<!-- файл 3 — обработан, часть файлов с ошибкой (--status-documents / --status-error) -->
625	<g>
626		<rect x="40" y="348" width="392" height="44" rx="8" fill="var(--color-graphite-950, #f6f6f6)" />
627		<rect x="52" y="360" width="18" height="18" rx="4" fill="var(--color-graphite-650, #ececec)" />
628		<rect x="80" y="362" width="100" height="7" rx="3.5" fill="var(--color-cool-400, #b1b7c2)" opacity="0.5" />
629		<rect x="358" y="362" width="58" height="7" rx="3.5" fill="var(--color-graphite-650, #ececec)" />
630		<path d="M79 382 l3.4 3.4 l6.6 -7.4" fill="none" stroke="var(--status-documents, #69DAE0)"
631			stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round" />
632		<rect x="102" y="375" width="15" height="13" rx="2.5" fill="none"
633			stroke="var(--status-documents, #69DAE0)" stroke-width="1.4" />
634		<path d="M105.5 379 h8 M105.5 382.5 h5" stroke="var(--status-documents, #69DAE0)" stroke-width="1.2"
635			stroke-linecap="round" />
636		<text x="122" y="386" font-size="10.5" fill="var(--status-documents, #69DAE0)">7</text>
637		<circle cx="150" cy="381.5" r="6" fill="none" stroke="var(--status-error, #FF9FC7)"
638			stroke-width="1.4" />
639		<path d="M146.5 378 l7 7" stroke="var(--status-error, #FF9FC7)" stroke-width="1.4"
640			stroke-linecap="round" />
641		<text x="161" y="386" font-size="10.5" fill="var(--status-error, #FF9FC7)">1</text>
642	</g>
643
644	<!-- ============ экран дела: рамка страницы, внутри — табы и остров ============ -->
645	<g filter="url(#s2-shadow)">
646		<rect x="430" y="16" width="414" height="384" rx="16" fill="var(--color-graphite-950, #f8f8f8)"
647			stroke="var(--color-graphite-600, #ececec)" />
648	</g>
649
650	<!-- таб-бар: тёмная капсула над островом (как в layouts/case-detail) -->
651	<rect x="491" y="36" width="318" height="40" rx="18" fill="var(--color-graphite-850, #1D1E25)"
652		stroke="var(--color-graphite-600, #373A46)" />
653	<circle cx="508" cy="56" r="5" fill="url(#s2-tab-dot)" />
654	<text x="521" y="60" font-size="12.5" fill="var(--color-cool-100, #D0DDDE)">материалы</text>
655	<circle cx="623.5" cy="56" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
656	<text x="637" y="60" font-size="12.5" fill="var(--color-cool-400, #8D9798)">детали</text>
657	<circle cx="717.5" cy="56" r="4.5" fill="none" stroke="var(--color-graphite-550, #3F4252)" />
658	<text x="731" y="60" font-size="12.5" fill="var(--color-cool-400, #8D9798)">хронология</text>
659
660	<!-- остров с материалами -->
661	<rect x="454" y="92" width="366" height="300" rx="14" fill="var(--color-graphite-850, #ffffff)"
662		stroke="var(--color-graphite-600, #ececec)" />
663
664	<g>
665		<rect x="478" y="118" width="290" height="8" rx="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
666		<rect x="478" y="134" width="180" height="8" rx="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
667		<rect x="478" y="152" width="126" height="24" rx="7" fill="var(--color-graphite-700, #f3f4f6)" />
668		<text x="490" y="168" font-size="10.5" fill="var(--color-cool-100, #6e7480)">Документ клиента</text>
669		<path d="M478 192 H796" stroke="var(--color-graphite-600, #ececec)" />
670	</g>
671	<g>
672		<rect x="478" y="208" width="252" height="8" rx="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
673		<rect x="478" y="226" width="118" height="24" rx="7" fill="var(--color-graphite-700, #f3f4f6)" />
674		<text x="490" y="242" font-size="10.5" fill="var(--color-cool-100, #6e7480)">Процессуальный</text>
675		<path d="M478 266 H796" stroke="var(--color-graphite-600, #ececec)" />
676	</g>
677	<g>
678		<rect x="478" y="282" width="306" height="8" rx="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.55" />
679		<rect x="478" y="300" width="126" height="24" rx="7" fill="var(--color-graphite-700, #f3f4f6)" />
680		<text x="490" y="316" font-size="10.5" fill="var(--color-cool-100, #6e7480)">Документ клиента</text>
681		<path d="M478 340 H796" stroke="var(--color-graphite-600, #ececec)" />
682	</g>
683	<rect x="478" y="358" width="224" height="8" rx="4" fill="var(--color-cool-400, #b1b7c2)" opacity="0.3" />
684
685	<!-- ============ баннер поверх обеих панелей — акцент слайда ============ -->
686	<g filter="url(#s2-shadow-sm)">
687		<rect x="28" y="196" width="414" height="42" rx="10" fill="url(#s2-accent)" />
688	</g>
689	<text x="48" y="222" font-size="12.5" font-weight="500" fill="#ffffff">Можно начать работу</text>
690	<rect x="248" y="205" width="172" height="24" rx="8" fill="#ffffff" fill-opacity="0.22" />
691	<text x="260" y="221" font-size="11" fill="#ffffff">
691Перейти к документам</text>
692	<path d="M390 217 h9 M396 214 l3.5 3 l-3.5 3" fill="none" stroke="#ffffff" stroke-width="1.5"
693		stroke-linecap="round" stroke-linejoin="round" />
694
695	<!-- ============ стрелка «действие → результат» ============ -->
696	<path d="M444 212 C 500 208, 532 152, 540 112" fill="none" stroke="url(#s2-arrow)" stroke-width="8"
697		stroke-linecap="round" />
698	<path d="M540 86 l13 26 h-26 z" fill="url(#s2-arrow)" />
699</svg>
700`,at=[{svg:ha,title:"Начните с создания дела",subtitle:"После этого вы сможете загрузить материалы и перейти к работе"},{svg:ga,title:"Обработка идёт — работать можно уже сейчас",subtitle:"Готовые документы появляются в таблице, не дожидаясь остальных"},{svg:va,title:"Найдите нужное среди сотен документов",subtitle:"Поиск, фильтры и категории — с числом документов в каждой"},{svg:da,title:"Спросите Агату — она покажет, откуда взяла",subtitle:"Ответ со ссылками на материалы дела, нормы и судебную практику"},{svg:fa,title:"Восстановите ход дела",subtitle:"Из одного документа система достаёт все события и ставит их на шкалу"}],xa={whenClose:S().required()},pa=R({name:"OnboardingSlider",props:xa,setup(e){const o=It(),l=y(0),s=at.length-1,u=c(()=>at[l.value]),m=c(()=>l.value===0),b=c(()=>l.value===s),E=()=>{if(b.value){e.whenClose();return}l.value+=1},v=()=>{l.value>0&&(l.value-=1)},i=()=>{e.whenClose(),o.push({name:"Entry"})};Xt(()=>e.whenClose());const h=f=>f===l.value,_=ct("(max-width: 599px)");return()=>t("div",{class:p.wrapper},[t(Tt,{compact:_.value,whenClick:i,class:p.leaveButton},null),t("div",{class:p.card,role:"dialog","aria-label":"Онбординг"},[t("div",{class:p.imageWrap},[t(ht,{enterActiveClass:p.fadeImageEnterActive,enterFromClass:p.fadeImageEnterFrom,leaveActiveClass:p.fadeImageLeaveActive,leaveToClass:p.fadeImageLeaveTo,mode:"out-in"},{default:()=>{var f,w;return[t("div",{key:l.value,class:p.imageSlot},[t("div",{class:p.image,role:"img","aria-label":(f=u.value)==null?void 0:f.title,innerHTML:(w=u.value)==null?void 0:w.svg},null)])]}})]),t("div",{class:p.dots,role:"tablist","aria-label":"Слайды онбординга"},[at.map((f,w)=>t("span",{key:w,class:[p.dot,h(w)&&p.dotActive],role:"tab","aria-selected":h(w),"aria-label":`Слайд ${w+1} из ${at.length}`},null))]),t("div",{class:p.textWrap},[t(D,{tag:"p",align:"center",class:p.title},{default:()=>{var f;return[(f=u.value)==null?void 0:f.title]}}),t(D,{tag:"p",align:"center",class:p.subtitle},{default:()=>{var f;return[(f=u.value)==null?void 0:f.subtitle]}})]),t("div",{class:p.actions},[t(ht,{enterActiveClass:p.backSlideEnterActive,enterFromClass:p.backSlideEnterFrom,enterToClass:p.backSlideEnterTo,leaveActiveClass:p.backSlideLeaveActive,leaveFromClass:p.backSlideLeaveFrom,leaveToClass:p.backSlideLeaveTo},{default:()=>[!m.value&&t("div",{class:p.backSlot},[t(P,{variant:"onboarding-secondary",size:"400",class:p.btnBack,leftIcon:t(I,{src:ge,color:"color-neutral-200"},null),whenClick:v},{default:()=>[B("Назад")]})])]}),t(P,{variant:"onboarding-primary",size:"400",class:p.btnNext,rightIcon:t(I,{src:de,color:"color-graphite-850"},null),whenClick:E},{default:()=>[b.value?"Начать работу":"Дальше"]})])])])}}),xr=R({name:"Cases",setup(){const e=It(),o=c(()=>!vt().isAuthenticated),l=N(),s=Re(),u=Se(),m=A=>{s.setLawyers([A]),l.filtersOpen=!0},b=y(!1),E=y(!0),v=ct("(max-width: 599px)"),i=y(!1);xe(v);const h=c(()=>o.value?E.value:u.needsOnboarding||u.previewOpen),_=()=>{if(o.value){E.value=!1;return}u.dismissOnboarding()},f=()=>{if(o.value){xt().forceShow("guest-cases-limit");return}if(!_t().canCreateCases){xt().showCasesWall("case_create");return}b.value=!0},w=()=>{i.value=!1,f()},n=320,k=()=>{i.value=!1,window.setTimeout(x,n)},M=()=>{i.value=!1,e.push({name:"Entry"}).catch(()=>{})},a=()=>{i.value=!1,e.push({name:"Profile"}).catch(()=>{})},g=async()=>{i.value=!1,await vt().logout(),await e.push({name:"Login"})},F=c(()=>
700!l.isPending("fetchCases")&&l.cases.length===0),K=A=>{e.push({name:"CaseDetail",params:{caseId:A.case_uuid}})},{startTour:x}=De(pe),{scrollAreaRef:V,checkFill:Y}=fe(()=>l.loadMore(),c(()=>l.hasMore));return Qt(()=>l.cases.length,Y),Ot(()=>{o.value||l.fetchCases(l.currentParams)}),()=>t(ll,{whenStartTour:o.value?void 0:x,onBack:()=>e.push({name:"Entry"}),headerHidden:v.value},{default:()=>[t("div",{class:O.casesPage},[v.value&&t(gl,{isGuest:o.value,whenOpenMenu:()=>i.value=!0,whenCreate:f},null),t(ht,{enterActiveClass:O.pageFadeEnterActive,leaveActiveClass:O.pageFadeLeaveActive,enterFromClass:O.pageFadeEnterFrom,leaveToClass:O.pageFadeLeaveTo,mode:"out-in"},{default:()=>[h.value?t(pa,{key:"onboarding",whenClose:_},null):t("div",{key:"cases",class:O.casesContent},[t("div",{class:O.casesColumn},[t(yl,null,null),t(Ul,{filters:s,onCreateCase:f},null),F.value?t("div",{class:O.emptyState},[t("div",{class:O.emptyStateInner},[t(L,{icon:Ae,size:"700",variant:"primary",iconColor:"color-graphite-850",whenClick:f,"data-onboarding":"create-first-case-button"},null),t(D,{variant:"accent-small",color:"color-cool-100",class:O.emptyStateText},{default:()=>[B("Создайте первое дело")]}),t(D,{variant:"body-medium",color:"color-cool-400",class:O.emptyStateHint},{default:()=>[B("Нажмите «+», чтобы начать работу")]})])]):t(ke,{ref:V,class:O.casesList},{default:()=>[l.isPending("fetchCases")?t(zt,null,null):t(rt,null,[l.cases.map((A,ut)=>A&&t("div",{key:A.case_uuid,"data-onboarding":ut===0?"case-card-first":void 0},[t(Bo,{caseData:A,onClick:K,onLawyerClick:m},null)])),l.isPending("fetchMoreCases")&&t(zt,null,null)])]})]),t(Go,{open:b.value,onClose:()=>b.value=!1},null)])]}),v.value&&t(bt,{open:l.filtersOpen,placement:"bottom",mode:"overlay",showBackdrop:!0,whenBackdropClick:()=>l.filtersOpen=!1},{default:()=>[t(ul,{filters:s,whenClose:()=>l.filtersOpen=!1},null)]}),v.value&&t(bt,{open:i.value,placement:"left",mode:"overlay",width:"80%",showBackdrop:!0,whenBackdropClick:()=>i.value=!1},{default:()=>[t(ae,{createLabel:"Создать дело",showAccount:!o.value,whenClose:()=>i.value=!1,whenCreate:w,whenStartTour:o.value?void 0:k,whenBack:M,whenOpenProfile:a,whenLogout:()=>{g().catch(()=>{})}},{promo:()=>o.value&&t(re,{title:"Сохраните свои дела",hint:"Заведите аккаунт, чтобы вернуться к материалам и хронологии с любого устройства"},null)})]})])]})}});export{xr as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.