@coffer-org/web 7.2.0 → 7.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{DiagnosticsPage-tAFkmCz8.js → DiagnosticsPage-lKgGju82.js} +1 -1
- package/dist/assets/{NewRecordView-CTSqFBfe.js → NewRecordView-DJrRPNxT.js} +1 -1
- package/dist/assets/{SettingsPage-Cqp1tUyi.js → SettingsPage-CaPzeX50.js} +1 -1
- package/dist/assets/{api-DD1tY5Dq.js → api-COuWgOWV.js} +1 -1
- package/dist/assets/{auth-context-BCos5wiL.js → auth-context-L2NSpevo.js} +1 -1
- package/dist/assets/{index-DpBBejzP.js → index-CdXz_Li2.js} +3 -3
- package/dist/index.html +3 -3
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-0mNSwLu_.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-CzSUaSLk.js","assets/input-tJjsdU1x.js","assets/popover-C2xHG6L3.js","assets/ui-vendor-BuwRGdK1.js","assets/icons-BTbA1N7a.js","assets/esm-DJsKiDbH.js","assets/development-olQNibq5.js","assets/lib-DU7Qh2A4.js","assets/esm-YFvMvTG9.css","assets/esm-BsLSfif3.js","assets/dist-COeDLrWj.js","assets/phone-input-BeYLRpyW.js","assets/phone-input-CZF7hU3E.js","assets/src-dXlj2maQ.js","assets/src-CTlBmB5n.js","assets/fields-GPyF03tK.js","assets/shelf-CpE68_8d.js","assets/extend-BMkkNVfm.js","assets/plugin-CFEkHH3f.js","assets/ical-FRtCagm-.js","assets/src-Bmc_xgWr.js","assets/settings-rQsBFoL2.js","assets/src-yL3q5Nfe.js","assets/src-IYiBUs1S.js","assets/src-DEqFDnFO.js","assets/data-size-qpzofknI.js","assets/src-CIrBx5O0.js","assets/showcase-CUDyXMb7.js","assets/src-d_-Z83D-.js","assets/src-BRA1s942.js","assets/src-2QhdFJyH.js","assets/src-DEcZTAam.js","assets/src-uWOnIJWD.js","assets/src-CvUhNHtO.js","assets/src-Bv7IbF5F.js","assets/src-DXSkgVrX.js","assets/src-DaHZILQZ.js","assets/src-D5pqHmdF.js","assets/src-WB1-7_Wh.js","assets/src-DAUYP87f2.js","assets/src-D9ZNj5Fi2.js","assets/src-BnvKHmLu.js","assets/src-Dvbi--2I.js","assets/src-eAsO2o4h2.js","assets/src-Uu0k-CHA.js","assets/src-C3X1cmlu.js","assets/src-C3hdIsRT.js","assets/ui-kICtw37s.js","assets/src-Cp4yFztL.js","assets/plugin-ui-CKd6q8ec.js","assets/ui-A8aS2-NQ.js","assets/ui-BK1F_c4b.js","assets/ui-C9-epiVm.js","assets/SettingsPage-
|
|
2
|
-
import{n as e,r as t}from"./rolldown-runtime-QTnfLwEv.js";import{a as n,i as r,r as i,t as a}from"./i18n-vendor-T6EnJ_TL.js";import{a as o,c as s,d as c,f as l,i as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v}from"./react-vendor-CzSUaSLk.js";import{$ as y,$n as b,$r as x,$t as S,A as C,An as w,At as T,Bn as ee,Br as te,Bt as E,C as ne,Cn as re,Ct as ie,D as ae,Dn as oe,Dr as se,Dt as ce,E as D,En as le,Er as ue,Et as de,F as fe,Fn as pe,Ft as me,Gn as he,Gr as ge,Gt as _e,Hn as ve,Hr as ye,Ht as be,I as xe,In as O,Ir as Se,It as Ce,Jn as we,Jr as Te,Jt as Ee,Kn as De,Kr as Oe,L as ke,Ln as Ae,Lr as je,Lt as Me,M as k,Mn as Ne,Mr as Pe,Mt as Fe,N as Ie,Nn as Le,Nr as Re,Nt as ze,O as Be,Or as Ve,P as He,Pn as Ue,Pr as We,Pt as Ge,Qn as Ke,Qt as qe,R as Je,Rn as Ye,Rr as Xe,S as Ze,Sn as Qe,St as $e,T as et,Tn as tt,Tr as nt,Tt as rt,Un as it,Ur as at,Ut as ot,Vn as st,Vr as ct,Vt as lt,Wn as ut,Wr as dt,Wt as ft,Xn as pt,Xr as mt,Xt as ht,Yn as gt,Yr as _t,Yt as vt,Zn as yt,Zr as bt,Zt as xt,_ as St,_t as Ct,a as wt,ai as Tt,an as Et,ar as Dt,at as Ot,b as kt,bn as At,br as jt,bt as Mt,c as Nt,cn as Pt,ct as Ft,d as It,di as Lt,dn as Rt,dr as zt,dt as Bt,ei as Vt,en as Ht,er as Ut,et as A,f as Wt,fn as Gt,fr as Kt,ft as qt,g as Jt,gn as Yt,gr as Xt,gt as Zt,h as Qt,hn as $t,hr as en,ht as tn,i as nn,ii as j,in as rn,ir as an,it as on,j as sn,jn as cn,jt as ln,k as un,kn as dn,kt as M,l as fn,li as pn,ln as mn,lr as hn,lt as gn,m as _n,mn as vn,mr as yn,mt as bn,n as xn,ni as Sn,nn as Cn,nr as wn,o as Tn,oi as En,on as Dn,or as On,ot as kn,p as An,pn as jn,pr as Mn,pt as Nn,qn as Pn,qr as Fn,qt as In,ri as Ln,rn as Rn,rr as zn,rt as Bn,s as Vn,si as Hn,sn as Un,sr as Wn,st as Gn,ti as Kn,tn as qn,tr as Jn,tt as Yn,u as Xn,ui as Zn,un as Qn,ur as $n,ut as er,v as tr,vn as nr,vr as rr,vt as ir,w as ar,wn as or,wr as sr,wt as N,x as cr,xn as lr,xr as ur,xt as dr,y as fr,yn as pr,yt as mr,z as hr,zn as gr,zr as _r,zt as vr}from"./src-Cp4yFztL.js";import{F as yr,a as br,b as xr,c as Sr,d as Cr,i as wr,l as Tr,m as Er,n as Dr,o as Or,p as kr,t as Ar,w as jr,x as Mr}from"./fields-GPyF03tK.js";import{A as Nr,M as Pr,N as Fr,P as Ir,S as Lr,_ as Rr,b as zr,c as Br,d as Vr,f as Hr,g as Ur,h as Wr,k as Gr,l as Kr,o as qr,p as Jr,r as Yr,s as Xr,u as Zr,x as Qr,y as $r}from"./shelf-CpE68_8d.js";import{a as ei,i as ti,r as ni,t as ri}from"./plugin-ui-CKd6q8ec.js";import{i as ii,n as ai,r as oi,t as si}from"./file-text-DI3tERhf.js";import{i as ci,n as li,r as ui,t as P}from"./input-tJjsdU1x.js";import{t as di}from"./arrow-left-DDsxjRCq.js";import{t as fi}from"./ThemeSwitcher-BPuCvU1U.js";import{c as pi,f as mi,i as hi,l as F,n as gi,o as _i,p as vi,r as yi,s as bi}from"./phone-input-CZF7hU3E.js";import{a as xi,i as Si,r as Ci,s as wi,t as Ti,u as Ei}from"./popover-C2xHG6L3.js";import{nt as Di,tt as Oi}from"./ui-vendor-BuwRGdK1.js";import{t as ki}from"./markdown-vendor-CtaBI5gJ.js";import{c as Ai,d as ji,f as Mi,i as Ni,l as Pi,m as Fi,n as Ii,o as Li,p as Ri,r as zi,s as Bi,t as Vi,u as Hi}from"./list-cache-B4i_A9fj.js";import{C as Ui,D as Wi,E as Gi,F as Ki,L as qi,M as Ji,O as Yi,R as Xi,S as Zi,T as Qi,_ as $i,b as ea,c as ta,d as na,f as ra,g as ia,h as aa,i as oa,j as sa,k as ca,l as la,n as ua,o as da,r as fa,t as pa,u as ma,w as ha,x as ga,y as _a}from"./api-DD1tY5Dq.js";import{t as va}from"./auth-context-BCos5wiL.js";import{t as ya}from"./SettingsForm-C_K9RpFr.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var I=t(n(),1),ba=d(),xa={common:{loading:`Завантаження…`,saving:`Збереження…`,error:`Помилка`,back:`Назад`,yes:`Так`,no:`Ні`,notFound:`Тип не знайдено`,daysUnit:`дн.`,peopleUnit:`ос.`,empty:`Немає записів`},actions:{new:`Новий`,addFirst:`Додати перший запис`,edit:`Редагувати`,copy:`Копіювати`,copied:`Скопійовано`,save:`Зберегти`,create:`Створити`,cancel:`Скасувати`,confirm:`Підтвердити`,confirmDelete:`Видалити цей запис?`,delete:`Видалити`,clear:`Очистити`,favoriteAdd:`Додати до обраного`,favoriteRemove:`Вилучити з обраного`,upload:`Завантажити`,retry:`Повторити`,replace:`Замінити`,confirmDeletePhoto:`Видалити фото?`,add:`Додати`,actionSuccess:`Готово`,actionError:`Помилка`,actionNotFound:`Дію не зареєстровано`,notice:`Повідомлення`},save:{saving:`Збереження…`,done:`Збережено`,failed:`Не вдалося зберегти`},upload:{tooLarge:`Файл завеликий (макс. 25 МБ)`,failed:`Не вдалося завантажити`,progress:`Прогрес завантаження`},files:{preview:`Попередній перегляд`,download:`Завантажити`,loadingPreview:`Завантаження попереднього перегляду…`,previewFailed:`Не вдалося завантажити попередній перегляд`,previewTruncated:`Попередній перегляд скорочено до 1 МБ.`},source:{download:`Завантажити собі`,empty:`Файлу немає`},localpath:{listFailed:`Не вдалося отримати список каталогу`},embed:{open:`Відкрити`,pastePlaceholder:`Вставте URL…`,resolveFailed:`Не вдалося завантажити прев'ю`},reminder:{today:`сьогодні`,inDays_one:`через {{count}} день`,inDays_few:`через {{count}} дні`,inDays_many:`через {{count}} днів`,inDays_other:`через {{count}} днів`,inWeeks_one:`через {{count}} тиждень`,inWeeks_few:`через {{count}} тижні`,inWeeks_many:`через {{count}} тижнів`,inWeeks_other:`через {{count}} тижнів`,inMonths_one:`через {{count}} місяць`,inMonths_few:`через {{count}} місяці`,inMonths_many:`через {{count}} місяців`,inMonths_other:`через {{count}} місяців`,overdue:`прострочено {{days}} дн`},age:{years_one:`{{count}} рік`,years_few:`{{count}} роки`,years_many:`{{count}} років`,years_other:`{{count}} років`},timetable:{next:`наступний`,runs_one:`{{count}} рейс`,runs_few:`{{count}} рейси`,runs_many:`{{count}} рейсів`,runs_other:`{{count}} рейсів`},units:{days:`днів`},nav:{selectType:`Оберіть тип у меню`,plugins:`Плагіни`,home:`Головна`,search:`Пошук`,settings:`Налаштування`,trash:`Кошик`},trash:{title:`Кошик`,description:`Видалені записи зберігаються в базі даних. Тут їх можна відновити або видалити назавжди.`,empty:`Кошик порожній`,restore:`Відновити`,purge:`Видалити назавжди`,confirmPurge:`Видалити запис назавжди? Цю дію не можна скасувати.`,restored:`Запис відновлено`,purged:`Запис видалено назавжди`},dashboard:{title:`Головна`,empty:`Немає активних полиць`},settings:{title:`Налаштування`,appearance:`Вигляд`,theme:`Тема`,language:`Мова`,systemDescription:`Налаштування всієї системи та базові пакети.`,systemUpdateTitle:`Оновити базові пакети (core + рантайм)`,componentsTitle:`Компоненти`,componentsDescription:`Системні пакети та плагіни: оновлення, увімкнення, видалення даних.`,personalTitle:`Особисте`,usersTitle:`Користувачі`,usersDescription:`Керування всіма акаунтами інстансу.`,diagnosticsTitle:`Діагностика`,diagnosticsDescription:`Стан сервера, агенти, конектори та останні події оркестратора.`},appearance:{label:`Оформлення`,theme:`Тема`,colours:`Кольори`,muted:`Приглушені`,neutral:`Без кольору`,hue:{red:`Червоний`,orange:`Помаранчевий`,yellow:`Жовтий`,lime:`Лайм`,green:`Зелений`,emerald:`Смарагд`,teal:`Бірюза`,azure:`Лазур`,blue:`Синій`,violet:`Фіолетовий`,purple:`Пурпуровий`,pink:`Рожевий`,brown:`Коричневий`,pine:`Хвоя`,plum:`Слива`,grey:`Сірий`}},theme:{label:`Тема`,auto:`Авто`,light:`Світла`,dark:`Темна`,eink:`E-ink`},diagnostics:{title:`Діагностика`,description:`Стан сервера та останні події оркестратора. Вміст повідомлень тут не показується.`,adminOnly:`Діагностика доступна лише адміністраторам.`,refresh:`Оновити`,refreshing:`Оновлення…`,loadFailed:`Не вдалося завантажити діагностику.`,server:`Сервер`,healthy:`Працює`,unavailable:`Недоступний`,agents:`Зареєстровані агенти`,connectors:`Зареєстровані конектори`,versions:`Версії пакетів`,component:`Компонент`,installed:`Встановлена`,latest:`Остання`,outdated:`Доступні оновлення для пакетів: {{count}}.`,noData:`Немає даних про версії.`,recentMessages:`Останні повідомлення`,time:`Час`,connector:`Конектор`,role:`Роль`,duration:`Тривалість`,tokens:`Токени вхід / вихід`,noMessages:`Метрик повідомлень поки немає.`,recentErrors:`Останні помилки виконання`,noErrors:`Після останнього запуску помилок не записано.`},group:{title:`Групування`,field:`Поле`,all:`Всі записи`,noValue:`Без значення`,yes:`Так`,no:`Ні`},table:{total:`Разом`,noValue:`Без значення`},triState:{yes:`Так`,no:`Ні`,unknown:`Невідомо`},plugins:{loading:`Завантаження…`,restartBannerBefore:`Зміни застосуються після `,restartBannerBold:`рестарту сервера`,restartBannerAfter:` (набір активних плагінів читається на старті).`,confirmPurge:`Видалити ВСІ дані плагіна «{{id}}»? Таблиці буде дропнуто безповоротно.`,genericError:`Помилка: {{code}}`,purgeButton:`Видалити дані`,purgeTitle:`Видалити всі дані плагіна (безповоротно)`,switchDisable:`Вимкнути`,switchEnable:`Увімкнути`,blockedByDependents:`Не можна вимкнути: від нього залежать увімкнені плагіни — {{list}}`,metaDepends:`залежить:`,metaLibraries:`бібліотеки:`,metaExtends:`розширення:`,updateButton:`Оновити`,checkUpdates:`Перевірити оновлення`,checkingUpdates:`Перевіряю…`,updateCheckError:`Не вдалося перевірити оновлення.`,updatesAvailable:`Доступні оновлення: {{count}}.`,noUpdates:`Оновлень немає.`,lastChecked:`Перевірено о {{time}}.`,restartTimeout:`Пакети встановлено, але сервер не підтвердив перезапуск за 60 секунд. Перевірте діагностику та повторіть перевірку пізніше.`,updateTitle:`Оновити з v{{from}} до v{{to}}`,confirmUpdate:`Оновити плагін «{{id}}» з v{{from}} до v{{to}}? Сервер перезапуститься одразу після встановлення — переконайтесь, що він працює під process-manager'ом (systemd/pm2/docker), який автоматично його підніме. Рекомендовано зробити резервну копію бази даних заздалегідь.`,updateError:`Оновлення не вдалося`,updateAllButton:`Оновити все ({{count}})`,runtimeLabel:`Рантайм (server/web/cli)`,confirmUpdateAll:`Оновити {{count}} компонент(ів)?
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-0mNSwLu_.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-CzSUaSLk.js","assets/input-tJjsdU1x.js","assets/popover-C2xHG6L3.js","assets/ui-vendor-BuwRGdK1.js","assets/icons-BTbA1N7a.js","assets/esm-DJsKiDbH.js","assets/development-olQNibq5.js","assets/lib-DU7Qh2A4.js","assets/esm-YFvMvTG9.css","assets/esm-BsLSfif3.js","assets/dist-COeDLrWj.js","assets/phone-input-BeYLRpyW.js","assets/phone-input-CZF7hU3E.js","assets/src-dXlj2maQ.js","assets/src-CTlBmB5n.js","assets/fields-GPyF03tK.js","assets/shelf-CpE68_8d.js","assets/extend-BMkkNVfm.js","assets/plugin-CFEkHH3f.js","assets/ical-FRtCagm-.js","assets/src-Bmc_xgWr.js","assets/settings-rQsBFoL2.js","assets/src-yL3q5Nfe.js","assets/src-IYiBUs1S.js","assets/src-DEqFDnFO.js","assets/data-size-qpzofknI.js","assets/src-CIrBx5O0.js","assets/showcase-CUDyXMb7.js","assets/src-d_-Z83D-.js","assets/src-BRA1s942.js","assets/src-2QhdFJyH.js","assets/src-DEcZTAam.js","assets/src-uWOnIJWD.js","assets/src-CvUhNHtO.js","assets/src-Bv7IbF5F.js","assets/src-DXSkgVrX.js","assets/src-DaHZILQZ.js","assets/src-D5pqHmdF.js","assets/src-WB1-7_Wh.js","assets/src-DAUYP87f2.js","assets/src-D9ZNj5Fi2.js","assets/src-BnvKHmLu.js","assets/src-Dvbi--2I.js","assets/src-eAsO2o4h2.js","assets/src-Uu0k-CHA.js","assets/src-C3X1cmlu.js","assets/src-C3hdIsRT.js","assets/ui-kICtw37s.js","assets/src-Cp4yFztL.js","assets/plugin-ui-CKd6q8ec.js","assets/ui-A8aS2-NQ.js","assets/ui-BK1F_c4b.js","assets/ui-C9-epiVm.js","assets/SettingsPage-CaPzeX50.js","assets/ThemeSwitcher-BPuCvU1U.js","assets/api-COuWgOWV.js","assets/auth-context-L2NSpevo.js","assets/version-CtfLXkhy.js","assets/DiagnosticsPage-lKgGju82.js","assets/PluginSettingsPage-BFsSZgTa.js","assets/SettingsForm-C_K9RpFr.js","assets/arrow-left-DDsxjRCq.js","assets/NewRecordView-DJrRPNxT.js","assets/list-cache-B4i_A9fj.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{n as e,r as t}from"./rolldown-runtime-QTnfLwEv.js";import{a as n,i as r,r as i,t as a}from"./i18n-vendor-T6EnJ_TL.js";import{a as o,c as s,d as c,f as l,i as u,m as d,n as f,o as p,p as m,r as h,s as g,t as _,u as v}from"./react-vendor-CzSUaSLk.js";import{$ as y,$n as b,$r as x,$t as S,A as C,An as w,At as T,Bn as ee,Br as te,Bt as E,C as ne,Cn as re,Ct as ie,D as ae,Dn as oe,Dr as se,Dt as ce,E as D,En as le,Er as ue,Et as de,F as fe,Fn as pe,Ft as me,Gn as he,Gr as ge,Gt as _e,Hn as ve,Hr as ye,Ht as be,I as xe,In as O,Ir as Se,It as Ce,Jn as we,Jr as Te,Jt as Ee,Kn as De,Kr as Oe,L as ke,Ln as Ae,Lr as je,Lt as Me,M as k,Mn as Ne,Mr as Pe,Mt as Fe,N as Ie,Nn as Le,Nr as Re,Nt as ze,O as Be,Or as Ve,P as He,Pn as Ue,Pr as We,Pt as Ge,Qn as Ke,Qt as qe,R as Je,Rn as Ye,Rr as Xe,S as Ze,Sn as Qe,St as $e,T as et,Tn as tt,Tr as nt,Tt as rt,Un as it,Ur as at,Ut as ot,Vn as st,Vr as ct,Vt as lt,Wn as ut,Wr as dt,Wt as ft,Xn as pt,Xr as mt,Xt as ht,Yn as gt,Yr as _t,Yt as vt,Zn as yt,Zr as bt,Zt as xt,_ as St,_t as Ct,a as wt,ai as Tt,an as Et,ar as Dt,at as Ot,b as kt,bn as At,br as jt,bt as Mt,c as Nt,cn as Pt,ct as Ft,d as It,di as Lt,dn as Rt,dr as zt,dt as Bt,ei as Vt,en as Ht,er as Ut,et as A,f as Wt,fn as Gt,fr as Kt,ft as qt,g as Jt,gn as Yt,gr as Xt,gt as Zt,h as Qt,hn as $t,hr as en,ht as tn,i as nn,ii as j,in as rn,ir as an,it as on,j as sn,jn as cn,jt as ln,k as un,kn as dn,kt as M,l as fn,li as pn,ln as mn,lr as hn,lt as gn,m as _n,mn as vn,mr as yn,mt as bn,n as xn,ni as Sn,nn as Cn,nr as wn,o as Tn,oi as En,on as Dn,or as On,ot as kn,p as An,pn as jn,pr as Mn,pt as Nn,qn as Pn,qr as Fn,qt as In,ri as Ln,rn as Rn,rr as zn,rt as Bn,s as Vn,si as Hn,sn as Un,sr as Wn,st as Gn,ti as Kn,tn as qn,tr as Jn,tt as Yn,u as Xn,ui as Zn,un as Qn,ur as $n,ut as er,v as tr,vn as nr,vr as rr,vt as ir,w as ar,wn as or,wr as sr,wt as N,x as cr,xn as lr,xr as ur,xt as dr,y as fr,yn as pr,yt as mr,z as hr,zn as gr,zr as _r,zt as vr}from"./src-Cp4yFztL.js";import{F as yr,a as br,b as xr,c as Sr,d as Cr,i as wr,l as Tr,m as Er,n as Dr,o as Or,p as kr,t as Ar,w as jr,x as Mr}from"./fields-GPyF03tK.js";import{A as Nr,M as Pr,N as Fr,P as Ir,S as Lr,_ as Rr,b as zr,c as Br,d as Vr,f as Hr,g as Ur,h as Wr,k as Gr,l as Kr,o as qr,p as Jr,r as Yr,s as Xr,u as Zr,x as Qr,y as $r}from"./shelf-CpE68_8d.js";import{a as ei,i as ti,r as ni,t as ri}from"./plugin-ui-CKd6q8ec.js";import{i as ii,n as ai,r as oi,t as si}from"./file-text-DI3tERhf.js";import{i as ci,n as li,r as ui,t as P}from"./input-tJjsdU1x.js";import{t as di}from"./arrow-left-DDsxjRCq.js";import{t as fi}from"./ThemeSwitcher-BPuCvU1U.js";import{c as pi,f as mi,i as hi,l as F,n as gi,o as _i,p as vi,r as yi,s as bi}from"./phone-input-CZF7hU3E.js";import{a as xi,i as Si,r as Ci,s as wi,t as Ti,u as Ei}from"./popover-C2xHG6L3.js";import{nt as Di,tt as Oi}from"./ui-vendor-BuwRGdK1.js";import{t as ki}from"./markdown-vendor-CtaBI5gJ.js";import{c as Ai,d as ji,f as Mi,i as Ni,l as Pi,m as Fi,n as Ii,o as Li,p as Ri,r as zi,s as Bi,t as Vi,u as Hi}from"./list-cache-B4i_A9fj.js";import{C as Ui,D as Wi,E as Gi,F as Ki,L as qi,M as Ji,O as Yi,R as Xi,S as Zi,T as Qi,_ as $i,b as ea,c as ta,d as na,f as ra,g as ia,h as aa,i as oa,j as sa,k as ca,l as la,n as ua,o as da,r as fa,t as pa,u as ma,w as ha,x as ga,y as _a}from"./api-COuWgOWV.js";import{t as va}from"./auth-context-L2NSpevo.js";import{t as ya}from"./SettingsForm-C_K9RpFr.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),e.crossOrigin===`use-credentials`?t.credentials=`include`:e.crossOrigin===`anonymous`?t.credentials=`omit`:t.credentials=`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var I=t(n(),1),ba=d(),xa={common:{loading:`Завантаження…`,saving:`Збереження…`,error:`Помилка`,back:`Назад`,yes:`Так`,no:`Ні`,notFound:`Тип не знайдено`,daysUnit:`дн.`,peopleUnit:`ос.`,empty:`Немає записів`},actions:{new:`Новий`,addFirst:`Додати перший запис`,edit:`Редагувати`,copy:`Копіювати`,copied:`Скопійовано`,save:`Зберегти`,create:`Створити`,cancel:`Скасувати`,confirm:`Підтвердити`,confirmDelete:`Видалити цей запис?`,delete:`Видалити`,clear:`Очистити`,favoriteAdd:`Додати до обраного`,favoriteRemove:`Вилучити з обраного`,upload:`Завантажити`,retry:`Повторити`,replace:`Замінити`,confirmDeletePhoto:`Видалити фото?`,add:`Додати`,actionSuccess:`Готово`,actionError:`Помилка`,actionNotFound:`Дію не зареєстровано`,notice:`Повідомлення`},save:{saving:`Збереження…`,done:`Збережено`,failed:`Не вдалося зберегти`},upload:{tooLarge:`Файл завеликий (макс. 25 МБ)`,failed:`Не вдалося завантажити`,progress:`Прогрес завантаження`},files:{preview:`Попередній перегляд`,download:`Завантажити`,loadingPreview:`Завантаження попереднього перегляду…`,previewFailed:`Не вдалося завантажити попередній перегляд`,previewTruncated:`Попередній перегляд скорочено до 1 МБ.`},source:{download:`Завантажити собі`,empty:`Файлу немає`},localpath:{listFailed:`Не вдалося отримати список каталогу`},embed:{open:`Відкрити`,pastePlaceholder:`Вставте URL…`,resolveFailed:`Не вдалося завантажити прев'ю`},reminder:{today:`сьогодні`,inDays_one:`через {{count}} день`,inDays_few:`через {{count}} дні`,inDays_many:`через {{count}} днів`,inDays_other:`через {{count}} днів`,inWeeks_one:`через {{count}} тиждень`,inWeeks_few:`через {{count}} тижні`,inWeeks_many:`через {{count}} тижнів`,inWeeks_other:`через {{count}} тижнів`,inMonths_one:`через {{count}} місяць`,inMonths_few:`через {{count}} місяці`,inMonths_many:`через {{count}} місяців`,inMonths_other:`через {{count}} місяців`,overdue:`прострочено {{days}} дн`},age:{years_one:`{{count}} рік`,years_few:`{{count}} роки`,years_many:`{{count}} років`,years_other:`{{count}} років`},timetable:{next:`наступний`,runs_one:`{{count}} рейс`,runs_few:`{{count}} рейси`,runs_many:`{{count}} рейсів`,runs_other:`{{count}} рейсів`},units:{days:`днів`},nav:{selectType:`Оберіть тип у меню`,plugins:`Плагіни`,home:`Головна`,search:`Пошук`,settings:`Налаштування`,trash:`Кошик`},trash:{title:`Кошик`,description:`Видалені записи зберігаються в базі даних. Тут їх можна відновити або видалити назавжди.`,empty:`Кошик порожній`,restore:`Відновити`,purge:`Видалити назавжди`,confirmPurge:`Видалити запис назавжди? Цю дію не можна скасувати.`,restored:`Запис відновлено`,purged:`Запис видалено назавжди`},dashboard:{title:`Головна`,empty:`Немає активних полиць`},settings:{title:`Налаштування`,appearance:`Вигляд`,theme:`Тема`,language:`Мова`,systemDescription:`Налаштування всієї системи та базові пакети.`,systemUpdateTitle:`Оновити базові пакети (core + рантайм)`,componentsTitle:`Компоненти`,componentsDescription:`Системні пакети та плагіни: оновлення, увімкнення, видалення даних.`,personalTitle:`Особисте`,usersTitle:`Користувачі`,usersDescription:`Керування всіма акаунтами інстансу.`,diagnosticsTitle:`Діагностика`,diagnosticsDescription:`Стан сервера, агенти, конектори та останні події оркестратора.`},appearance:{label:`Оформлення`,theme:`Тема`,colours:`Кольори`,muted:`Приглушені`,neutral:`Без кольору`,hue:{red:`Червоний`,orange:`Помаранчевий`,yellow:`Жовтий`,lime:`Лайм`,green:`Зелений`,emerald:`Смарагд`,teal:`Бірюза`,azure:`Лазур`,blue:`Синій`,violet:`Фіолетовий`,purple:`Пурпуровий`,pink:`Рожевий`,brown:`Коричневий`,pine:`Хвоя`,plum:`Слива`,grey:`Сірий`}},theme:{label:`Тема`,auto:`Авто`,light:`Світла`,dark:`Темна`,eink:`E-ink`},diagnostics:{title:`Діагностика`,description:`Стан сервера та останні події оркестратора. Вміст повідомлень тут не показується.`,adminOnly:`Діагностика доступна лише адміністраторам.`,refresh:`Оновити`,refreshing:`Оновлення…`,loadFailed:`Не вдалося завантажити діагностику.`,server:`Сервер`,healthy:`Працює`,unavailable:`Недоступний`,agents:`Зареєстровані агенти`,connectors:`Зареєстровані конектори`,versions:`Версії пакетів`,component:`Компонент`,installed:`Встановлена`,latest:`Остання`,outdated:`Доступні оновлення для пакетів: {{count}}.`,noData:`Немає даних про версії.`,recentMessages:`Останні повідомлення`,time:`Час`,connector:`Конектор`,role:`Роль`,duration:`Тривалість`,tokens:`Токени вхід / вихід`,noMessages:`Метрик повідомлень поки немає.`,recentErrors:`Останні помилки виконання`,noErrors:`Після останнього запуску помилок не записано.`},group:{title:`Групування`,field:`Поле`,all:`Всі записи`,noValue:`Без значення`,yes:`Так`,no:`Ні`},table:{total:`Разом`,noValue:`Без значення`},triState:{yes:`Так`,no:`Ні`,unknown:`Невідомо`},plugins:{loading:`Завантаження…`,restartBannerBefore:`Зміни застосуються після `,restartBannerBold:`рестарту сервера`,restartBannerAfter:` (набір активних плагінів читається на старті).`,confirmPurge:`Видалити ВСІ дані плагіна «{{id}}»? Таблиці буде дропнуто безповоротно.`,genericError:`Помилка: {{code}}`,purgeButton:`Видалити дані`,purgeTitle:`Видалити всі дані плагіна (безповоротно)`,switchDisable:`Вимкнути`,switchEnable:`Увімкнути`,blockedByDependents:`Не можна вимкнути: від нього залежать увімкнені плагіни — {{list}}`,metaDepends:`залежить:`,metaLibraries:`бібліотеки:`,metaExtends:`розширення:`,updateButton:`Оновити`,checkUpdates:`Перевірити оновлення`,checkingUpdates:`Перевіряю…`,updateCheckError:`Не вдалося перевірити оновлення.`,updatesAvailable:`Доступні оновлення: {{count}}.`,noUpdates:`Оновлень немає.`,lastChecked:`Перевірено о {{time}}.`,restartTimeout:`Пакети встановлено, але сервер не підтвердив перезапуск за 60 секунд. Перевірте діагностику та повторіть перевірку пізніше.`,updateTitle:`Оновити з v{{from}} до v{{to}}`,confirmUpdate:`Оновити плагін «{{id}}» з v{{from}} до v{{to}}? Сервер перезапуститься одразу після встановлення — переконайтесь, що він працює під process-manager'ом (systemd/pm2/docker), який автоматично його підніме. Рекомендовано зробити резервну копію бази даних заздалегідь.`,updateError:`Оновлення не вдалося`,updateAllButton:`Оновити все ({{count}})`,runtimeLabel:`Рантайм (server/web/cli)`,confirmUpdateAll:`Оновити {{count}} компонент(ів)?
|
|
3
3
|
|
|
4
4
|
{{list}}
|
|
5
5
|
|
|
@@ -21,4 +21,4 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
21
21
|
Prefix can't start with '-' when allowNegative is true.
|
|
22
22
|
prefix: `+i+`
|
|
23
23
|
allowNegative: `+a+`
|
|
24
|
-
`),a=!1),Object.assign(Object.assign({},e),{allowNegative:a})}function wp(e){e=Cp(e),e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle;var t=e.suffix,n=e.allowNegative,r=e.allowLeadingZeros,i=e.onKeyDown;i===void 0&&(i=zf);var a=e.onBlur;a===void 0&&(a=zf);var o=e.thousandSeparator,s=e.decimalScale,c=e.fixedDecimalScale,l=e.prefix;l===void 0&&(l=``);var u=e.defaultValue,d=e.value,f=e.valueIsNumericString,p=e.onValueChange,m=Lf(e,[`decimalSeparator`,`allowedDecimalSeparators`,`thousandsGroupStyle`,`suffix`,`allowNegative`,`allowLeadingZeros`,`onKeyDown`,`onBlur`,`thousandSeparator`,`decimalScale`,`fixedDecimalScale`,`prefix`,`defaultValue`,`value`,`valueIsNumericString`,`onValueChange`]),h=_p(e),g=h.decimalSeparator,_=h.allowedDecimalSeparators,v=function(t){return gp(t,e)},y=function(t,n){return xp(t,n,e)},b=Hf(d)?u:d,x=f??bp(b,l,t);Hf(d)?Hf(u)||(x||=typeof u==`number`):x||=typeof d==`number`;var S=function(e){return Wf(e)?e:(typeof e==`number`&&(e=$f(e)),x&&typeof s==`number`?ep(e,s,!!c):e)},C=fp(S(d),S(u),!!x,v,y,p),w=C[0],T=w.numAsString,ee=w.formattedValue,te=C[1];return Object.assign(Object.assign({},m),{value:ee,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===g||Vf(e)},isCharacterSame:function(e){var t=e.currentValue,n=e.lastValue,r=e.formattedValue,i=e.currentValueIndex,a=e.formattedValueIndex,o=t[i],u=r[a],f=np(n,t).to,p=function(e){return y(e).indexOf(`.`)+l.length};return d===0&&c&&s&&t[f.start]===g&&p(t)<i&&p(r)>a?!1:i>=f.start&&i<f.end&&_&&_.includes(o)&&u===g?!0:o===u},onValueChange:te,format:v,removeFormatting:y,getCaretBoundary:function(t){return Sp(t,e)},onKeyDown:function(e){var t=e.target,r=e.key,a=t.selectionStart,u=t.selectionEnd,d=t.value;if(d===void 0&&(d=``),(r===`Backspace`||r===`Delete`)&&u<l.length&&d!==`-`){e.preventDefault();return}if(a!==u){i(e);return}r===`Backspace`&&d[0]===`-`&&a===l.length+1&&n&&tp(t,1),s&&c&&(r===`Backspace`&&d[a-1]===g?(tp(t,a-1),e.preventDefault()):r===`Delete`&&d[a]===g&&e.preventDefault()),_?.includes(r)&&d[a]===g&&tp(t,a+1);var f=o===!0?`,`:o;r===`Backspace`&&d[a-1]===f&&tp(t,a-1),r===`Delete`&&d[a]===f&&tp(t,a+1),i(e)},onBlur:function(t){var n=T;n.match(/\d/g)||(n=``),r||(n=Xf(n)),c&&s&&(n=ep(n,s,c)),n!==T&&te({formattedValue:gp(n,e),value:n,floatValue:parseFloat(n)},{event:t,source:Rf.event}),a(t)}})}function Tp(e){var t=wp(e);return I.createElement(hp,Object.assign({},t))}var V=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/number.tsx`;function Ep(e){return(0,L.jsxDEV)(`span`,{className:`font-mono`,children:String(e)},void 0,!1,{fileName:V,lineNumber:38,columnNumber:10},this)}function Dp({name:e,field:t,value:n,onChange:r}){let i=t.hints;return t.hints.multiple===!0?(0,L.jsxDEV)(er,{value:n,onChange:r,validate:e=>!isNaN(Number(e))&&e!==``,display:Ep,renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:`number`,value:e,onChange:e=>t(e.target.value),placeholder:`0`,className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:V,lineNumber:51,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:45,columnNumber:7},this):(0,L.jsxDEV)(Tp,{customInput:P,id:e,value:n===``||n==null?``:String(n),thousandSeparator:!0,decimalScale:t.column===`integer`?0:void 0,min:i.min,max:i.max,step:i.step,onValueChange:e=>r(e.floatValue??``),placeholder:`0`},void 0,!1,{fileName:V,lineNumber:69,columnNumber:5},this)}function Op({field:e,value:t}){return(0,L.jsxDEV)(`span`,{className:`font-mono`,children:vn(t,e)},void 0,!1,{fileName:V,lineNumber:92,columnNumber:10},this)}function kp({field:e,value:t}){return e.hints.multiple===!0?(0,L.jsxDEV)(Ae,{items:Qn(t,[]),content:Ep},void 0,!1,{fileName:V,lineNumber:98,columnNumber:12},this):Ct(t,t=>(0,L.jsxDEV)(`span`,{children:vn(t,e)},void 0,!1,{fileName:V,lineNumber:100,columnNumber:31},this))}function Ap(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(kp,{field:e.field,value:t},void 0,!1,{fileName:V,lineNumber:115,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Dp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:V,lineNumber:117,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:105,columnNumber:5},this)}function jp({field:e,value:t}){return t==null||t===``?null:(0,L.jsxDEV)(`span`,{className:`truncate font-mono tabular-nums`,children:vn(t,e)},void 0,!1,{fileName:V,lineNumber:127,columnNumber:10},this)}j({kinds:[`number`],Page:Ap,Inline:jp,Value:Op});var Mp=e=>Array.from({length:e},(e,t)=>(0,L.jsxDEV)(st,{className:`size-5 data-[state=empty]:text-border`,style:{color:me(`yellow`)}},t,!1,{fileName:V,lineNumber:140,columnNumber:5},void 0));function Np({value:e,onChange:t,field:n}){let r=Number(n.hints.max??5),i=e?Number(e):0;return(0,L.jsxDEV)(`div`,{className:`flex items-center min-h-9${t?``:` pointer-events-none`}`,children:(0,L.jsxDEV)(ee,{value:i,max:r,clearable:!0,readOnly:!t,activationMode:`manual`,onValueChange:e=>t?.(e===0?``:e),"aria-label":n.label,children:Mp(r)},void 0,!1,{fileName:V,lineNumber:161,columnNumber:7},this)},void 0,!1,{fileName:V,lineNumber:160,columnNumber:5},this)}function Pp({field:e,value:t}){return(0,L.jsxDEV)(Np,{field:e,value:t},void 0,!1,{fileName:V,lineNumber:182,columnNumber:10},this)}function Fp({field:e,draft:t,save:n}){return(0,L.jsxDEV)(Np,{field:e,value:t,onChange:e=>n(e)},void 0,!1,{fileName:V,lineNumber:191,columnNumber:10},this)}function Ip(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-fit`,bare:e.bare,view:t=>(0,L.jsxDEV)(Np,{field:e.field,value:t},void 0,!1,{fileName:V,lineNumber:206,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Np,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:V,lineNumber:207,columnNumber:30},this)},void 0,!1,{fileName:V,lineNumber:196,columnNumber:5},this)}function Lp({value:e}){let t=Number(e);return(0,L.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 truncate`,children:Number.isNaN(t)||!t?`—`:(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`span`,{style:{color:me(`yellow`)},className:`inline-flex`,children:(0,L.jsxDEV)(rr,{name:`lucide:star`,size:12,className:`fill-current`},void 0,!1,{fileName:V,lineNumber:223,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:222,columnNumber:11},this),t]},void 0,!0,{fileName:V,lineNumber:219,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:215,columnNumber:5},this)}j({kinds:[`rating`],Page:Ip,Inline:Lp,Value:Pp,Picker:Fp,pickerCommits:!0});function Rp({value:e,onChange:t,field:n}){let{t:r}=a(),i=Number(n.hints.step??60),o=e?Number(e):0,s=Math.floor(o/86400),c=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),u=o%60,d=i<60;function f(e,n,r,i){let a=Math.max(0,e*86400+n*3600+r*60+i);t(a>0?a:``)}let p=({val:e,unit:t,...n})=>(0,L.jsxDEV)(yi,{className:`w-[5.25rem]`,children:[(0,L.jsxDEV)(_i,{type:`number`,value:e||``,min:0,placeholder:`0`,...n},void 0,!1,{fileName:V,lineNumber:260,columnNumber:7},this),(0,L.jsxDEV)(hi,{align:`inline-end`,children:(0,L.jsxDEV)(bi,{children:t},void 0,!1,{fileName:V,lineNumber:262,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:261,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:259,columnNumber:5},this);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 flex-wrap ${In}`,children:[(0,L.jsxDEV)(p,{val:s,unit:r(`form.days`),onChange:e=>f(Number(e.target.value)||0,c,l,u)},void 0,!1,{fileName:V,lineNumber:268,columnNumber:7},this),(0,L.jsxDEV)(p,{val:c,unit:r(`form.hours`),max:23,onChange:e=>f(s,Number(e.target.value)||0,l,u)},void 0,!1,{fileName:V,lineNumber:269,columnNumber:7},this),(0,L.jsxDEV)(p,{val:l,unit:r(`form.minutes`),max:59,step:d?1:Math.max(1,Math.floor(i/60)),onChange:e=>f(s,c,Number(e.target.value)||0,u)},void 0,!1,{fileName:V,lineNumber:270,columnNumber:7},this),d&&(0,L.jsxDEV)(p,{val:u,unit:r(`form.seconds`),max:59,step:i,onChange:e=>f(s,c,l,Number(e.target.value)||0)},void 0,!1,{fileName:V,lineNumber:278,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:267,columnNumber:5},this)}function zp({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:V,lineNumber:293,columnNumber:43},this):(0,L.jsxDEV)(`span`,{className:`text-sm`,children:$t(n,t)},void 0,!1,{fileName:V,lineNumber:294,columnNumber:10},this)}function Bp(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:t=>(0,L.jsxDEV)(zp,{field:e.field,value:t},void 0,!1,{fileName:V,lineNumber:309,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Rp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:V,lineNumber:311,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:299,columnNumber:5},this)}function Vp({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,L.jsxDEV)(`span`,{children:`—`},void 0,!1,{fileName:V,lineNumber:320,columnNumber:43},this):(0,L.jsxDEV)(`span`,{className:`truncate`,children:$t(n,t)},void 0,!1,{fileName:V,lineNumber:321,columnNumber:10},this)}j({kinds:[`duration`],Page:Bp,Inline:Vp});var H=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/datetime.tsx`;function Hp(e,t){return e.granularity??t}function Up(e,t=`minute`){let n=String(e??``);return t===`second`?n.length>19?n.slice(0,19):n:t===`hour`?n.length>13?n.slice(0,13):n:n.length>16?n.slice(0,16):n}function Wp(e,t){return function(n){return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(rr,{name:e,size:13,className:`shrink-0 text-muted`},void 0,!1,{fileName:H,lineNumber:86,columnNumber:9},this),(0,L.jsxDEV)(`span`,{children:t?t(String(n)):String(n)},void 0,!1,{fileName:H,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:85,columnNumber:7},this)}}function Gp({value:e,format:t,icon:n}){return(0,L.jsxDEV)(Ae,{items:Qn(e,[]),content:Wp(n,t)},void 0,!1,{fileName:H,lineNumber:96,columnNumber:10},this)}function Kp({value:e}){let{i18n:t}=a();return(0,L.jsxDEV)(L.Fragment,{children:Wp(`lucide:calendar`,e=>at(e,t.language)||e)(e)},void 0,!1,{fileName:H,lineNumber:107,columnNumber:10},this)}function qp({value:e}){let{i18n:t}=a();return(0,L.jsxDEV)(L.Fragment,{children:Wp(`lucide:calendar-clock`,e=>ct(e,t.language)||e)(e)},void 0,!1,{fileName:H,lineNumber:112,columnNumber:10},this)}function Jp({field:e,value:t}){let{i18n:n}=a();return e.hints.multiple===!0?(0,L.jsxDEV)(Gp,{value:t,icon:`lucide:calendar`,format:e=>at(e,n.language)||e},void 0,!1,{fileName:H,lineNumber:120,columnNumber:12},this):Ct(t,t=>{let r=Hp(e.hints,`day`);return(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:r===`month`||r===`year`?String(t):at(String(t),n.language)||String(t)},void 0,!1,{fileName:H,lineNumber:127,columnNumber:7},this)})}function Yp({name:e,field:t,value:n,onChange:r}){let i=Hp(t.hints,`day`),a=i===`month`?`month`:i===`year`?`number`:`date`;if(t.hints.multiple===!0)return(0,L.jsxDEV)(er,{value:n,onChange:r,display:Wp(`lucide:calendar`),renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:a,value:e,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:H,lineNumber:144,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:139,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);return i===`year`?(0,L.jsxDEV)(we,{value:o,onChange:r},void 0,!1,{fileName:H,lineNumber:165,columnNumber:28},this):i===`month`?(0,L.jsxDEV)(De,{value:o,onChange:r},void 0,!1,{fileName:H,lineNumber:166,columnNumber:29},this):(0,L.jsxDEV)(pt,{value:o,onChange:r},void 0,!1,{fileName:H,lineNumber:167,columnNumber:10},this)}function Xp(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,L.jsxDEV)(Jp,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:182,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Yp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:184,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:172,columnNumber:5},this)}function Zp(e,t,n){if(e==null||e===``)return[];let r=Hp(t.hints,`day`),i=String(e);return[{value:i,rawValue:e,label:r===`year`||r===`month`?i:at(i,n.locale)||i}]}function Qp({field:e,draft:t,save:n}){let r=Hp(e.hints,`day`),i=typeof t==`string`?t:String(t??``);if(r===`year`)return(0,L.jsxDEV)(Pn,{value:i,onChange:e=>n(e)},void 0,!1,{fileName:H,lineNumber:213,columnNumber:28},this);if(r===`month`)return(0,L.jsxDEV)(he,{value:i,onChange:e=>n(e)},void 0,!1,{fileName:H,lineNumber:214,columnNumber:29},this);let a=ye(i);return(0,L.jsxDEV)(Wn,{mode:`single`,selected:a,captionLayout:`dropdown`,defaultMonth:a,className:`w-full`,onSelect:e=>n(e?te(e):``)},void 0,!1,{fileName:H,lineNumber:217,columnNumber:5},this)}function $p({field:e,value:t}){let{i18n:n}=a(),r=Hp(e.hints,`day`),i=String(t??``);return i?(0,L.jsxDEV)(`span`,{className:`truncate whitespace-nowrap`,children:r===`month`||r===`year`?i:at(i,n.language)||i},void 0,!1,{fileName:H,lineNumber:242,columnNumber:5},this):null}j({kinds:[`date`],Page:Xp,Inline:$p,Value:Kp,Picker:Qp,pickerCommits:!0,keys:Zp});var em={hour:/^([01]\d|2[0-3])$/,minute:/^([01]\d|2[0-3]):[0-5]\d$/,second:/^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$/};function tm({field:e,value:t}){return e.hints.multiple!==!0&&(t==null||t===``)?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:H,lineNumber:269,columnNumber:83},this):e.hints.multiple===!0?(0,L.jsxDEV)(Gp,{value:t,icon:`lucide:clock`},void 0,!1,{fileName:H,lineNumber:271,columnNumber:5},this):(0,L.jsxDEV)(`span`,{className:`font-mono text-sm`,children:String(t)},void 0,!1,{fileName:H,lineNumber:273,columnNumber:5},this)}function nm({name:e,field:t,value:n,onChange:r}){let i=Hp(t.hints,`second`),a=i===`second`?1:i===`minute`?60:3600;if(t.hints.multiple===!0)return(0,L.jsxDEV)(er,{value:n,onChange:r,validate:e=>em[i]?.test(e)??!1,display:Wp(`lucide:clock`),renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:`time`,step:a,value:e,onChange:e=>t(e.target.value),className:`w-36`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:H,lineNumber:289,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:283,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);if(i===`hour`)return(0,L.jsxDEV)(P,{id:e,type:`time`,step:a,value:o,onChange:e=>r(e.target.value),className:`appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`},void 0,!1,{fileName:H,lineNumber:314,columnNumber:7},this);let s=i===`second`;return(0,L.jsxDEV)(nr,{value:o,onValueChange:r,showSeconds:s,children:[(0,L.jsxDEV)(re,{id:e,children:[(0,L.jsxDEV)(Qe,{segment:`hour`},void 0,!1,{fileName:H,lineNumber:329,columnNumber:9},this),(0,L.jsxDEV)(le,{},void 0,!1,{fileName:H,lineNumber:330,columnNumber:9},this),(0,L.jsxDEV)(Qe,{segment:`minute`},void 0,!1,{fileName:H,lineNumber:331,columnNumber:9},this),s&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(le,{},void 0,!1,{fileName:H,lineNumber:334,columnNumber:13},this),(0,L.jsxDEV)(Qe,{segment:`second`},void 0,!1,{fileName:H,lineNumber:335,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:333,columnNumber:11},this),(0,L.jsxDEV)(oe,{},void 0,!1,{fileName:H,lineNumber:338,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:328,columnNumber:7},this),(0,L.jsxDEV)(At,{children:[(0,L.jsxDEV)(lr,{},void 0,!1,{fileName:H,lineNumber:341,columnNumber:9},this),(0,L.jsxDEV)(or,{},void 0,!1,{fileName:H,lineNumber:342,columnNumber:9},this),s&&(0,L.jsxDEV)(tt,{},void 0,!1,{fileName:H,lineNumber:343,columnNumber:25},this),(0,L.jsxDEV)(pr,{},void 0,!1,{fileName:H,lineNumber:344,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:340,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:327,columnNumber:5},this)}function rm(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(tm,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:362,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(nm,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:364,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:352,columnNumber:5},this)}function im(e){return String(e).padStart(2,`0`)}var am=Array.from({length:24},(e,t)=>({value:im(t),title:im(t)})),om=Array.from({length:60},(e,t)=>({value:im(t),title:im(t)}));function sm({value:e,onChange:t,granularity:n}){let[r=``,i=``,a=``]=e.split(`:`),o=n!==`hour`,s=n===`second`,c=(e,t,n)=>{if(!o)return e;let r=`${e||`00`}:${t||`00`}`;return s?`${r}:${n||`00`}`:r},l=(e,t,n)=>(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(gr,{options:e,value:t,multiple:!1,literal:!0,search:!1,onPick:e=>n(String(e))},void 0,!1,{fileName:H,lineNumber:410,columnNumber:7},this)},void 0,!1,{fileName:H,lineNumber:409,columnNumber:5},this);return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 gap-1`,children:[l(am,r,e=>t(c(e,i,a))),o&&l(om,i,e=>t(c(r,e,a))),s&&l(om,a,e=>t(c(r,i,e)))]},void 0,!0,{fileName:H,lineNumber:414,columnNumber:5},this)}function cm({field:e,draft:t,setDraft:n}){let r=Hp(e.hints,`second`);return(0,L.jsxDEV)(sm,{value:typeof t==`string`?t:String(t??``),onChange:n,granularity:r},void 0,!1,{fileName:H,lineNumber:427,columnNumber:10},this)}function lm({value:e}){return(0,L.jsxDEV)(`span`,{className:`font-mono text-sm`,children:String(e??``)},void 0,!1,{fileName:H,lineNumber:432,columnNumber:10},this)}j({kinds:[`time`],Page:rm,Value:lm,Picker:cm});var um={hour:/^\d{4}-\d{2}-\d{2}T([01]\d|2[0-3])$/,minute:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/,second:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/};function dm({field:e,value:t}){let{i18n:n}=a();if(e.hints.multiple!==!0&&(t==null||t===``))return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:H,lineNumber:452,columnNumber:83},this);let r=Hp(e.hints,`minute`);return e.hints.multiple===!0?(0,L.jsxDEV)(Gp,{value:t,icon:`lucide:calendar-clock`,format:e=>ct(Up(e,r),n.language)||Up(e,r).replace(`T`,` `)},void 0,!1,{fileName:H,lineNumber:455,columnNumber:5},this):(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:ct(Up(t,r),n.language)},void 0,!1,{fileName:H,lineNumber:461,columnNumber:5},this)}function fm({name:e,field:t,value:n,onChange:r}){let i=Hp(t.hints,`minute`),a=i===`second`?1:i===`hour`?3600:60;if(t.hints.multiple===!0)return(0,L.jsxDEV)(er,{value:n,onChange:r,validate:e=>um[i]?.test(e)??!1,display:Wp(`lucide:calendar-clock`,e=>Up(e,i).replace(`T`,` `)),renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:`datetime-local`,step:a,value:e,onChange:e=>t(e.target.value),className:`w-52`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:H,lineNumber:477,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:471,columnNumber:7},this);let{date:o,time:s}=ge(Up(n,i));return(0,L.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,L.jsxDEV)(pt,{value:o,onChange:e=>r(dt(e,s||`00:00`))},void 0,!1,{fileName:H,lineNumber:498,columnNumber:7},this),(0,L.jsxDEV)(P,{id:e,type:`time`,step:a,value:s,onChange:e=>r(dt(o,e.target.value)),className:`w-32 appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`},void 0,!1,{fileName:H,lineNumber:499,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:497,columnNumber:5},this)}function pm(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,L.jsxDEV)(dm,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:523,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(fm,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:525,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:513,columnNumber:5},this)}function mm({value:e,field:t}){let{i18n:n}=a();return(0,L.jsxDEV)(`span`,{className:`truncate`,children:ct(Up(e,Hp(t.hints,`minute`)),n.language)},void 0,!1,{fileName:H,lineNumber:539,columnNumber:10},this)}function hm(e,t,n){if(e==null||e===``)return[];let r=Up(e,Hp(t.hints,`minute`));return[{value:r,rawValue:e,label:ct(r,n.locale)}]}function gm({field:e,draft:t,setDraft:n}){let r=Hp(e.hints,`minute`),{date:i,time:a}=ge(Up(t,r)),o=ye(i);return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-wrap gap-2`,children:[(0,L.jsxDEV)(Wn,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o,onSelect:e=>n(dt(e?te(e):``,a||`00:00`))},void 0,!1,{fileName:H,lineNumber:560,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(sm,{value:a,onChange:e=>n(dt(i,e)),granularity:r},void 0,!1,{fileName:H,lineNumber:568,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:567,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:559,columnNumber:5},this)}j({kinds:[`datetime`],pickerSize:`large`,Page:pm,Picker:gm,Inline:mm,Value:qp,keys:hm});var _m=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/choice.tsx`;function vm({value:e}){return(0,L.jsxDEV)(`span`,{children:be(e)?(0,L.jsxDEV)(rr,{name:`lucide:check`,size:14,className:`inline text-success`},void 0,!1,{fileName:_m,lineNumber:55,columnNumber:36},this):`—`},void 0,!1,{fileName:_m,lineNumber:55,columnNumber:10},this)}function ym({value:e,onChange:t,label:n}){let{saving:r}=Xt();return(0,L.jsxDEV)(Dt,{checked:be(e),disabled:r,"aria-label":n,onCheckedChange:e=>t?.(e===!0)},void 0,!1,{fileName:_m,lineNumber:69,columnNumber:5},this)}function bm(e){let t=E();return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:(n,r)=>r&&t?(0,L.jsxDEV)(ym,{value:n,label:e.label,onChange:e=>void r(e)},void 0,!1,{fileName:_m,lineNumber:101,columnNumber:11},this):(0,L.jsxDEV)(vm,{field:e.field,value:n},void 0,!1,{fileName:_m,lineNumber:103,columnNumber:11},this),edit:(t,n)=>(0,L.jsxDEV)(ym,{value:t,label:e.label,onChange:n},void 0,!1,{fileName:_m,lineNumber:106,columnNumber:30},this)},void 0,!1,{fileName:_m,lineNumber:89,columnNumber:5},this)}function xm({value:e}){return(0,L.jsxDEV)(`span`,{children:be(e)?(0,L.jsxDEV)(rr,{name:`lucide:check`,size:14,className:`inline text-success`},void 0,!1,{fileName:_m,lineNumber:112,columnNumber:36},this):`—`},void 0,!1,{fileName:_m,lineNumber:112,columnNumber:10},this)}function Sm(e,t,n){if(e==null||e===``)return[];let r=Gt(e);return[{value:r?`true`:`false`,rawValue:r,label:r?n.t(`group.yes`):n.t(`group.no`)}]}j({kinds:[`boolean`],Page:bm,Inline:xm,Value:vm,editor:`inplace`,keys:Sm});var U=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/illustrated.tsx`,Cm=170;function wm(e){let t=Mr(e.parts??[]);return{tKey:t.text??`text`,iKey:t.image??`image`}}function Tm(e,t){let{tKey:n,iKey:r}=wm(t),i=e&&typeof e==`object`?e:null;return i?{text:i[n],image:i[r]}:{}}function Em(e){let t=e.hints.config??{};return{width:t.imageWidth??Cm,side:t.side??`left`}}function Dm(e){return e.parts?.find(e=>e.role===`image`)?.meta.kind??`image`}var Om=e=>e===`poster`?`aspect-[2/3]`:`aspect-square`;function km({name:e,width:t,kind:n=`image`}){let[r,i]=(0,I.useState)(!1);return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`illustrated-image`,onClick:()=>i(!0),style:{"--illus-w":`${t}px`},className:`relative block ${Om(n)} w-full cursor-zoom-in overflow-hidden rounded-xl border border-border transition-colors hover:border-accent @sm:w-(--illus-w)`,children:(0,L.jsxDEV)(Be,{name:e},void 0,!1,{fileName:U,lineNumber:120,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:113,columnNumber:7},this),r&&(0,L.jsxDEV)(ae,{images:[e],index:0,onClose:()=>i(!1),onIndex:()=>{}},void 0,!1,{fileName:U,lineNumber:122,columnNumber:16},this)]},void 0,!0,{fileName:U,lineNumber:112,columnNumber:5},this)}function Am({width:e,side:t,picture:n,prose:r}){return(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[n!=null&&(0,L.jsxDEV)(`div`,{"data-testid":`illustrated-figure`,style:{"--illus-w":`${e}px`},className:`mb-3 w-full @sm:mb-2 @sm:w-(--illus-w) ${t===`right`?`@sm:float-right @sm:ml-4`:`@sm:float-left @sm:mr-4`}`,children:n},void 0,!1,{fileName:U,lineNumber:155,columnNumber:9},this),r!=null&&(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:r},void 0,!1,{fileName:U,lineNumber:165,columnNumber:25},this),(0,L.jsxDEV)(`div`,{className:`clear-both`},void 0,!1,{fileName:U,lineNumber:167,columnNumber:7},this)]},void 0,!0,{fileName:U,lineNumber:153,columnNumber:5},this)}function jm({field:e,value:t}){let{text:n,image:r}=Tm(t,e),{width:i,side:a}=Em(e),o=r!=null&&r!==``?un(r)[0]:void 0,s=n!=null&&n!==``;return(0,L.jsxDEV)(Am,{width:i,side:a,picture:o?(0,L.jsxDEV)(km,{name:o.name,width:i,kind:Dm(e)},void 0,!1,{fileName:U,lineNumber:185,columnNumber:22},this):null,prose:s?(0,L.jsxDEV)(`div`,{"data-testid":`illustrated-text`,className:`min-w-0`,children:(0,L.jsxDEV)(vd,{value:String(n)},void 0,!1,{fileName:U,lineNumber:189,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:188,columnNumber:11},this):null},void 0,!1,{fileName:U,lineNumber:182,columnNumber:5},this)}function Mm({field:e,value:t,onChange:n}){let{tKey:r,iKey:i}=wm(e),{text:a,image:o}=Tm(t,e),{width:s}=Em(e),c=Dm(e),l=o!=null&&o!==``?un(o)[0]:void 0,u=e.parts?.find(e=>e.role===`text`),d=u!=null&&u.mode!==`stored`,f=e.parts?.find(e=>e.role===`image`),p=f!=null&&f.mode!==`stored`,m=e=>{let t=bn(e.text),a=bn(e.image);n(t==null&&a==null?``:{[r]:t,[i]:a})};return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-3 min-w-0`,children:[p?(0,L.jsxDEV)(`div`,{className:`text-sm text-muted`,children:l?(0,L.jsxDEV)(km,{name:l.name,width:s,kind:c},void 0,!1,{fileName:U,lineNumber:232,columnNumber:18},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:232,columnNumber:85},this)},void 0,!1,{fileName:U,lineNumber:231,columnNumber:9},this):(0,L.jsxDEV)(et,{value:o??``,onChange:e=>m({text:a,image:e}),width:s,poster:c===`poster`},void 0,!1,{fileName:U,lineNumber:235,columnNumber:9},this),d?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted whitespace-pre-wrap`,children:a!=null&&a!==``?String(a):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:244,columnNumber:57},this)},void 0,!1,{fileName:U,lineNumber:243,columnNumber:9},this):(0,L.jsxDEV)(pi,{id:`field-${e.label}`,value:a==null?``:String(a),onChange:e=>m({text:e.target.value,image:o})},void 0,!1,{fileName:U,lineNumber:247,columnNumber:9},this)]},void 0,!0,{fileName:U,lineNumber:229,columnNumber:5},this)}function Nm({image:e,fixed:t,width:n,kind:r=`image`,onChange:i}){let a=e!=null&&e!==``?un(e)[0]:void 0;return t||!i?(0,L.jsxDEV)(`div`,{className:`text-sm text-muted`,children:a?(0,L.jsxDEV)(km,{name:a.name,width:n,kind:r},void 0,!1,{fileName:U,lineNumber:284,columnNumber:16},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:284,columnNumber:83},this)},void 0,!1,{fileName:U,lineNumber:283,columnNumber:7},this):(0,L.jsxDEV)(et,{value:e??``,onChange:i,width:n,poster:r===`poster`},void 0,!1,{fileName:U,lineNumber:292,columnNumber:10},this)}function Pm({text:e,fixed:t,meta:n,label:r,onChange:i}){return t||!i?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted whitespace-pre-wrap`,children:e!=null&&e!==``?String(e):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:323,columnNumber:55},this)},void 0,!1,{fileName:U,lineNumber:322,columnNumber:7},this):(0,L.jsxDEV)(Yn,{field:{...n,kind:`markdown`,hints:{...n.hints,noLabel:!0}},value:e??``,label:r,geom:`none`,width:`w-full`,view:e=>e!=null&&e!==``?(0,L.jsxDEV)(vd,{value:String(e)},void 0,!1,{fileName:U,lineNumber:335,columnNumber:45},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:335,columnNumber:82},this),edit:(e,t)=>(0,L.jsxDEV)(pi,{value:e==null?``:String(e),onChange:e=>t(e.target.value)},void 0,!1,{fileName:U,lineNumber:336,columnNumber:25},this),onCommit:i},void 0,!1,{fileName:U,lineNumber:329,columnNumber:5},this)}function Fm({field:e,value:t,onChange:n,label:r,required:i,error:a}){let{tKey:o,iKey:s}=wm(e),{text:c,image:l}=Tm(t,e),{width:u,side:d}=Em(e),f=Dm(e),p=e.parts?.find(e=>e.role===`text`),m=p!=null&&p.mode!==`stored`,h=e.parts?.find(e=>e.role===`image`),g=h!=null&&h.mode!==`stored`,_=e.hints.noLabel===!0||r===void 0,v=(e,t)=>{let r=bn(e),i=bn(t);return n(r==null&&i==null?``:{[o]:r,[s]:i})};return(0,L.jsxDEV)(`div`,{className:`group/field relative w-full`,children:[!_&&(0,L.jsxDEV)(ht,{label:r,required:i},void 0,!1,{fileName:U,lineNumber:381,columnNumber:20},this),(0,L.jsxDEV)(Am,{width:u,side:d,picture:(0,L.jsxDEV)(Nm,{image:l,fixed:g,width:u,kind:f,onChange:g?void 0:e=>void v(c,e)},void 0,!1,{fileName:U,lineNumber:388,columnNumber:11},this),prose:(0,L.jsxDEV)(Pm,{text:c,fixed:m,meta:p?.meta??e,label:r,onChange:m?void 0:e=>v(e,l)},void 0,!1,{fileName:U,lineNumber:397,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:384,columnNumber:7},this),(0,L.jsxDEV)(vt,{error:a},void 0,!1,{fileName:U,lineNumber:406,columnNumber:7},this)]},void 0,!0,{fileName:U,lineNumber:380,columnNumber:5},this)}function Im(e){let{live:t,write:n}=dr(e);return t?(0,L.jsxDEV)(Fm,{field:e.field,value:e.value,onChange:n,label:e.label,required:e.required,error:e.error},void 0,!1,{fileName:U,lineNumber:420,columnNumber:7},this):(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,L.jsxDEV)(jm,{field:e.field,value:t},void 0,!1,{fileName:U,lineNumber:441,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Mm,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:U,lineNumber:443,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:431,columnNumber:5},this)}function Lm({field:e,value:t}){let{text:n}=Tm(t,e);return n==null||n===``?(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:U,lineNumber:451,columnNumber:43},this):(0,L.jsxDEV)(`span`,{className:`truncate`,children:String(n)},void 0,!1,{fileName:U,lineNumber:452,columnNumber:10},this)}j({kinds:[`illustrated`],layout:`block`,Page:Im,Inline:Lm,editor:`own`});var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/file.tsx`;function Rm(e){return Ke({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`})}function zm(e){return e==null?null:e>=1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${Math.round(e/1024)} KB`}var Bm=/\.(txt|md|markdown|csv|json|xml|log|yaml|yml|ini|toml|js|jsx|ts|tsx|css|html)$/i;function Vm(e){let t=e.mime?.toLowerCase().split(`;`,1)[0];return t===`application/pdf`||/\.pdf$/i.test(e.name)?`pdf`:t?.startsWith(`text/`)||t===`application/json`||t===`application/xml`||Bm.test(e.name)?`text`:null}var Hm=1e6;function Um({rec:e,kind:t,onClose:n}){let{t:r}=a(),[i,o]=(0,I.useState)(null),[s,c]=(0,I.useState)(!1);return(0,I.useEffect)(()=>{if(t!==`text`)return;let n=new AbortController;return o(null),c(!1),fetch(_t(e.name),{signal:n.signal}).then(e=>{if(!e.ok)throw Error(`preview_${e.status}`);return e.text()}).then(e=>o(e.length>Hm?`${e.slice(0,Hm)}\n\n${r(`files.previewTruncated`)}`:e)).catch(e=>{e?.name!==`AbortError`&&c(!0)}),()=>n.abort()},[t,e.name,r]),(0,L.jsxDEV)(b,{open:!0,onOpenChange:e=>!e&&n(),children:(0,L.jsxDEV)(Jn,{className:`h-[88dvh] max-w-5xl overflow-hidden @lg:h-[85dvh]`,children:[(0,L.jsxDEV)(zn,{children:(0,L.jsxDEV)(an,{className:`truncate pr-8`,children:e.name},void 0,!1,{fileName:W,lineNumber:102,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:101,columnNumber:9},this),(0,L.jsxDEV)(Ut,{children:t===`pdf`?(0,L.jsxDEV)(`iframe`,{title:e.name,src:_t(e.name),className:`h-full w-full rounded-lg border border-border bg-white`},void 0,!1,{fileName:W,lineNumber:106,columnNumber:13},this):s?(0,L.jsxDEV)(`div`,{className:`flex h-full items-center justify-center text-sm text-danger`,children:r(`files.previewFailed`)},void 0,!1,{fileName:W,lineNumber:112,columnNumber:13},this):i===null?(0,L.jsxDEV)(`div`,{className:`flex h-full items-center justify-center text-sm text-muted`,children:r(`files.loadingPreview`)},void 0,!1,{fileName:W,lineNumber:116,columnNumber:13},this):(0,L.jsxDEV)(`pre`,{className:`h-full overflow-auto whitespace-pre-wrap break-words rounded-lg border border-border bg-bg p-4 font-mono text-xs leading-relaxed`,children:i},void 0,!1,{fileName:W,lineNumber:120,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:104,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:100,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:99,columnNumber:5},this)}function Wm({rec:e}){let{t}=a(),n=Vm(e),[r,i]=(0,I.useState)(!1);return n?(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,className:`text-muted hover:text-accent`,title:t(`files.preview`),"aria-label":t(`files.preview`),onClick:()=>i(!0),children:(0,L.jsxDEV)(Cl,{size:15},void 0,!1,{fileName:W,lineNumber:146,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:137,columnNumber:7},this),r&&(0,L.jsxDEV)(Um,{rec:e,kind:n,onClose:()=>i(!1)},void 0,!1,{fileName:W,lineNumber:148,columnNumber:16},this)]},void 0,!0,{fileName:W,lineNumber:136,columnNumber:5},this):null}function Gm({rec:e}){return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(si,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:W,lineNumber:158,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:e.name},void 0,!1,{fileName:W,lineNumber:159,columnNumber:7},this),zm(e.size)&&(0,L.jsxDEV)(`span`,{className:`text-xs text-muted`,children:zm(e.size)},void 0,!1,{fileName:W,lineNumber:160,columnNumber:35},this)]},void 0,!0,{fileName:W,lineNumber:157,columnNumber:5},this)}function Km({kind:e,rec:t,className:n}){return e===`audio`?(0,L.jsxDEV)(`audio`,{controls:!0,src:_t(t.name),className:n},void 0,!1,{fileName:W,lineNumber:168,columnNumber:5},this):(0,L.jsxDEV)(`video`,{controls:!0,src:_t(t.name),className:n},void 0,!1,{fileName:W,lineNumber:170,columnNumber:5},this)}var qm={file:`*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.txt,.csv`,audio:`audio/*`,video:`video/*`,image:`image/*`,media:`image/*,video/*`,avatar:`image/*`,cover:`image/*`,poster:`image/*`};function Jm({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c,retry:l,canRetry:u}=C(),d=un(t),f=e=>n(e.length?e:``);async function p(e){if(!e)return;let t=await c(e);t&&f([...d,t])}async function m(){let e=await l();e&&f([...d,e])}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[d.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`flex min-h-9 items-center gap-2 rounded-lg border border-border px-2`,children:[(0,L.jsxDEV)(Gm,{rec:e},void 0,!1,{fileName:W,lineNumber:219,columnNumber:11},this),(0,L.jsxDEV)(Wm,{rec:e},void 0,!1,{fileName:W,lineNumber:220,columnNumber:11},this),(0,L.jsxDEV)(`a`,{href:_t(e.name),download:!0,className:`text-muted hover:text-accent`,title:r(`files.download`),"aria-label":r(`files.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:W,lineNumber:228,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:221,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`text-muted hover:text-danger`,onClick:async()=>{await Rm(r)&&f(d.filter((e,n)=>n!==t))},children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:W,lineNumber:240,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:230,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:W,lineNumber:218,columnNumber:9},this)),(0,L.jsxDEV)(Bt,{accept:qm[e]??`*`,busy:i,error:o,progress:s,onPick:p,onRetry:()=>void m(),canRetry:u},void 0,!1,{fileName:W,lineNumber:244,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:216,columnNumber:5},this)}function Ym({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c,retry:l,canRetry:u}=C(),d=un(t)[0];async function f(e){if(!e)return;let t=await c(e);t&&n(t)}async function p(){let e=await l();e&&n(e)}return d?(0,L.jsxDEV)(`div`,{"data-testid":`single-file`,className:`flex min-h-9 items-center gap-2 rounded-lg border border-border px-2 hover:border-accent`,children:[(0,L.jsxDEV)(Gm,{rec:d},void 0,!1,{fileName:W,lineNumber:314,columnNumber:7},this),(0,L.jsxDEV)(Wm,{rec:d},void 0,!1,{fileName:W,lineNumber:315,columnNumber:7},this),(0,L.jsxDEV)(`a`,{href:_t(d.name),download:!0,className:`text-muted hover:text-accent`,title:r(`files.download`),"aria-label":r(`files.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:W,lineNumber:323,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:316,columnNumber:7},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`text-muted hover:text-danger`,onClick:async()=>{await Rm(r)&&n(``)},children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:W,lineNumber:335,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:325,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:310,columnNumber:5},this):(0,L.jsxDEV)(Bt,{accept:qm[e]??`*`,busy:i,error:o,progress:s,onPick:e=>void f(e),onRetry:()=>void p(),canRetry:u,compact:!0},void 0,!1,{fileName:W,lineNumber:297,columnNumber:7},this)}function Xm({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c,retry:l,canRetry:u}=C(),d=un(t),f=e=>n(e.length?e:``);async function p(e){if(!e)return;let t=await c(e);t&&f([...d,t])}async function m(){let e=await l();e&&f([...d,e])}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[d.map((t,n)=>(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxDEV)(Km,{kind:e,rec:t,className:e===`audio`?`min-w-0 flex-1`:`min-w-0 flex-1 max-h-72 rounded-lg`},void 0,!1,{fileName:W,lineNumber:373,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`shrink-0 text-muted hover:text-danger`,onClick:async()=>{await Rm(r)&&f(d.filter((e,t)=>t!==n))},children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:W,lineNumber:388,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:378,columnNumber:11},this)]},`${t.name}-${n}`,!0,{fileName:W,lineNumber:372,columnNumber:9},this)),(0,L.jsxDEV)(Bt,{accept:qm[e]??`*`,busy:i,error:o,progress:s,onPick:p,onRetry:()=>void m(),canRetry:u},void 0,!1,{fileName:W,lineNumber:392,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:370,columnNumber:5},this)}function Zm(e,t,n,r){if(e===`avatar`)return(0,L.jsxDEV)(kt,{value:t,onChange:n,accept:qm[e],multiple:r},void 0,!1,{fileName:W,lineNumber:409,columnNumber:12},this);if(e===`cover`)return(0,L.jsxDEV)(Ze,{value:t,onChange:n,accept:qm[e],multiple:r},void 0,!1,{fileName:W,lineNumber:412,columnNumber:12},this);if(e===`image`||e===`media`||e===`poster`){let i=e===`poster`;return r?(0,L.jsxDEV)(D,{value:t,onChange:n,accept:qm[e],poster:i},void 0,!1,{fileName:W,lineNumber:417,columnNumber:7},this):(0,L.jsxDEV)(et,{value:t,onChange:n,accept:qm[e],poster:i},void 0,!1,{fileName:W,lineNumber:419,columnNumber:7},this)}return e===`audio`||e===`video`?(0,L.jsxDEV)(Xm,{kind:e,value:t,onChange:n},void 0,!1,{fileName:W,lineNumber:423,columnNumber:12},this):(0,L.jsxDEV)(Jm,{kind:e,value:t,onChange:n},void 0,!1,{fileName:W,lineNumber:425,columnNumber:10},this)}function Qm({kind:e,value:t}){let{t:n}=a(),r=un(t);return r.length?e===`avatar`?(0,L.jsxDEV)(fr,{value:t},void 0,!1,{fileName:W,lineNumber:438,columnNumber:33},this):e===`cover`?(0,L.jsxDEV)(cr,{value:t},void 0,!1,{fileName:W,lineNumber:439,columnNumber:32},this):e===`image`||e===`media`?(0,L.jsxDEV)(ne,{value:t},void 0,!1,{fileName:W,lineNumber:440,columnNumber:52},this):e===`poster`?(0,L.jsxDEV)(ne,{value:t,poster:!0},void 0,!1,{fileName:W,lineNumber:441,columnNumber:33},this):e===`audio`||e===`video`?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:r.map((t,n)=>(0,L.jsxDEV)(Km,{kind:e,rec:t,className:e===`audio`?`w-full`:`max-h-72 rounded-lg`},`${t.name}-${n}`,!1,{fileName:W,lineNumber:446,columnNumber:11},this))},void 0,!1,{fileName:W,lineNumber:444,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:r.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`flex min-h-9 items-center gap-2 rounded-lg border border-border px-2 hover:border-accent`,children:[(0,L.jsxDEV)(Gm,{rec:e},void 0,!1,{fileName:W,lineNumber:463,columnNumber:11},this),(0,L.jsxDEV)(Wm,{rec:e},void 0,!1,{fileName:W,lineNumber:464,columnNumber:11},this),(0,L.jsxDEV)(`a`,{href:_t(e.name),download:!0,className:`text-muted hover:text-accent`,title:n(`files.download`),"aria-label":n(`files.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:W,lineNumber:472,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:465,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:W,lineNumber:459,columnNumber:9},this))},void 0,!1,{fileName:W,lineNumber:457,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:W,lineNumber:437,columnNumber:28},this)}function $m(e){let t=e.field.kind,n=e.field.hints.multiple===!0,r=E();return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:(e,i)=>i&&r?Zm(t,e??``,e=>void i(e),n):(0,L.jsxDEV)(Qm,{kind:t,value:e??``},void 0,!1,{fileName:W,lineNumber:511,columnNumber:11},this),edit:(e,r)=>Zm(t,e??``,r,n)},void 0,!1,{fileName:W,lineNumber:496,columnNumber:5},this)}function eh(e){let t=un(e.value)[0];if(!t)return(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:W,lineNumber:523,columnNumber:20},this);let n=e.field?.kind,r=n===`audio`?Al:n===`video`?El:si,i=zm(t.size);return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 text-sm`,children:[(0,L.jsxDEV)(r,{size:14,className:`text-muted shrink-0`},void 0,!1,{fileName:W,lineNumber:529,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`truncate`,children:t.name},void 0,!1,{fileName:W,lineNumber:530,columnNumber:7},this),i&&(0,L.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,children:i},void 0,!1,{fileName:W,lineNumber:531,columnNumber:14},this)]},void 0,!0,{fileName:W,lineNumber:528,columnNumber:5},this)}j({kinds:[`image`,`media`,`poster`],layout:Sn,box:`none`,Page:$m,Inline:ar,editor:`inplace`}),j({kinds:[`file`,`document`,`audio`,`video`],layout:Sn,box:`none`,Page:$m,Inline:eh,editor:`inplace`}),j({kinds:[`avatar`],layout:Sn,box:`none`,Page:$m,Inline:tr,editor:`inplace`}),j({kinds:[`cover`],layout:`block`,Page:$m,Inline:ar,editor:`inplace`});var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/attachment.tsx`;function th(e){let t=Mr(e.parts??[]);return{lKey:t.label??`label`,fKey:t.file??`file`}}function nh(e,t){let{lKey:n,fKey:r}=th(t),i=e&&typeof e==`object`?e:null;return i?{label:i[n],file:i[r]}:{}}function rh(e){return e.parts?.find(e=>e.role===`file`)?.meta.kind??`file`}function ih(e,t){let n=e.parts?.find(e=>e.role===t);return n!=null&&n.mode!==`stored`}function ah({name:e,file:t}){return(0,L.jsxDEV)(`div`,{"data-testid":`attachment`,className:`flex min-w-0 flex-col gap-1`,children:[e,t]},void 0,!0,{fileName:G,lineNumber:99,columnNumber:5},this)}function oh({label:e,dash:t}){return e==null||e===``?t?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:G,lineNumber:114,columnNumber:52},this):null:(0,L.jsxDEV)(`span`,{"data-testid":`attachment-label`,className:`block truncate text-[15px] font-medium`,children:String(e)},void 0,!1,{fileName:G,lineNumber:116,columnNumber:5},this)}function sh({field:e,value:t}){let{label:n,file:r}=nh(t,e);return(0,L.jsxDEV)(ah,{name:(0,L.jsxDEV)(oh,{label:n},void 0,!1,{fileName:G,lineNumber:132,columnNumber:13},this),file:(0,L.jsxDEV)(Qm,{kind:rh(e),value:r??``},void 0,!1,{fileName:G,lineNumber:133,columnNumber:13},this)},void 0,!1,{fileName:G,lineNumber:131,columnNumber:5},this)}function ch({file:e,fixed:t,kind:n,onChange:r}){return t||!r?(0,L.jsxDEV)(Qm,{kind:n,value:e??``},void 0,!1,{fileName:G,lineNumber:156,columnNumber:34},this):(0,L.jsxDEV)(Ym,{kind:n,value:e??``,onChange:r},void 0,!1,{fileName:G,lineNumber:157,columnNumber:10},this)}function lh({label:e,fixed:t,meta:n,fieldLabel:r,onChange:i}){return t||!i?(0,L.jsxDEV)(oh,{label:e,dash:!0},void 0,!1,{fileName:G,lineNumber:192,columnNumber:34},this):(0,L.jsxDEV)(Yn,{field:{...n,kind:`text`,hints:{...n.hints,noLabel:!0}},value:e??``,label:r,geom:`none`,width:`w-full`,view:e=>e!=null&&e!==``?(0,L.jsxDEV)(oh,{label:e},void 0,!1,{fileName:G,lineNumber:201,columnNumber:45},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:G,lineNumber:201,columnNumber:76},this),edit:(e,t)=>(0,L.jsxDEV)(P,{value:e==null?``:String(e),onChange:e=>t(e.target.value)},void 0,!1,{fileName:G,lineNumber:202,columnNumber:25},this),onCommit:i},void 0,!1,{fileName:G,lineNumber:195,columnNumber:5},this)}function uh({field:e,value:t,onChange:n}){let{lKey:r,fKey:i}=th(e),{label:a,file:o}=nh(t,e),s=rh(e),c=ih(e,`label`),l=ih(e,`file`),u=e=>{let t=bn(e.label),a=bn(e.file);n(t==null&&a==null?``:{[r]:t,[i]:a})};return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[c?(0,L.jsxDEV)(oh,{label:a,dash:!0},void 0,!1,{fileName:G,lineNumber:236,columnNumber:9},this):(0,L.jsxDEV)(P,{id:`field-${e.label}`,value:a==null?``:String(a),onChange:e=>u({label:e.target.value,file:o})},void 0,!1,{fileName:G,lineNumber:238,columnNumber:9},this),l?(0,L.jsxDEV)(Qm,{kind:s,value:o??``},void 0,!1,{fileName:G,lineNumber:245,columnNumber:9},this):(0,L.jsxDEV)(Ym,{kind:s,value:o??``,onChange:e=>u({label:a,file:e})},void 0,!1,{fileName:G,lineNumber:247,columnNumber:9},this)]},void 0,!0,{fileName:G,lineNumber:234,columnNumber:5},this)}function dh({field:e,value:t,onChange:n,label:r,required:i,error:a}){let{lKey:o,fKey:s}=th(e),{label:c,file:l}=nh(t,e),u=rh(e),d=ih(e,`label`),f=ih(e,`file`),p=e.parts?.find(e=>e.role===`label`),m=e.hints.noLabel===!0||r===void 0,h=(e,t)=>{let r=bn(e),i=bn(t);return n(r==null&&i==null?``:{[o]:r,[s]:i})};return(0,L.jsxDEV)(`div`,{className:`group/field relative w-full`,children:[!m&&(0,L.jsxDEV)(ht,{label:r,required:i},void 0,!1,{fileName:G,lineNumber:290,columnNumber:20},this),(0,L.jsxDEV)(ah,{name:(0,L.jsxDEV)(lh,{label:c,fixed:d,meta:p?.meta??e,fieldLabel:r,onChange:d?void 0:e=>h(e,l)},void 0,!1,{fileName:G,lineNumber:295,columnNumber:11},this),file:(0,L.jsxDEV)(ch,{file:l,fixed:f,kind:u,onChange:f?void 0:e=>void h(c,e)},void 0,!1,{fileName:G,lineNumber:304,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:293,columnNumber:7},this),(0,L.jsxDEV)(vt,{error:a},void 0,!1,{fileName:G,lineNumber:312,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:289,columnNumber:5},this)}function fh(e){let{live:t,write:n}=dr(e);return t?(0,L.jsxDEV)(dh,{field:e.field,value:e.value,onChange:n,label:e.label,required:e.required,error:e.error},void 0,!1,{fileName:G,lineNumber:325,columnNumber:7},this):(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,L.jsxDEV)(sh,{field:e.field,value:t},void 0,!1,{fileName:G,lineNumber:346,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(uh,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:G,lineNumber:348,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:336,columnNumber:5},this)}function ph({field:e,value:t}){let{label:n,file:r}=nh(t,e);if(n!=null&&n!==``)return(0,L.jsxDEV)(`span`,{className:`truncate`,children:String(n)},void 0,!1,{fileName:G,lineNumber:361,columnNumber:45},this);let i=un(r)[0];return i?(0,L.jsxDEV)(`span`,{className:`truncate text-muted`,children:i.name},void 0,!1,{fileName:G,lineNumber:363,columnNumber:19},this):(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:G,lineNumber:364,columnNumber:10},this)}j({kinds:[`attachment`],layout:`block`,Page:fh,Inline:ph,editor:`own`});function mh(e){if(!(typeof e!=`string`||!e))try{let t=JSON.parse(e),n=Array.isArray(t)?t[0]:t;return n&&typeof n==`object`&&typeof n.name==`string`?n.name:typeof n==`string`?n:void 0}catch{return e}}function hh(e,t){for(let[n,r]of Br(e.fields))if(n===t)return r.kind}function gh(e,t,n){let r=hh(e,t);if(r&&Jr(r)){let e=mh(n[t]);return e?{kind:`image`,value:_t(e)}:void 0}}function _h(e,t){let n=e.views?.select;if(n){let r=Array.isArray(n.title)?n.title:[n.title];return{icon:n.icon?gh(e,n.icon,t):void 0,title:r.map(e=>String(t[e]??``)).filter(Boolean).join(` `),subtitle:n.subtitle&&String(t[n.subtitle]??``)||void 0}}let r=Vr(e),i=r?mh(t[r]):void 0;return{icon:i?{kind:`image`,value:_t(i)}:void 0,title:Hr(e,t)}}var K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/edit.tsx`;function vh({value:e,onChange:t,field:n,t:r,recordCtx:i={library:``,shelf:``,recordId:``}}){let a=n.hints.rowMultiple===!0,o=n.hints.fields??[],s=n.hints.unique??[],c=new Set((n.parts??[]).filter(e=>e.mode!==`stored`).map(xr)),l=(0,I.useRef)(0),u=e=>e.map(e=>({id:++l.current,data:e})),d=()=>Object.fromEntries(o.map(e=>[e.key,``])),f=()=>{let t=Qn(e,a?[]:{});return a?Array.isArray(t)?t:[]:[t&&!Array.isArray(t)&&Object.keys(t).length?t:d()]},[p,m]=(0,I.useState)(()=>u(f()));(0,I.useEffect)(()=>{e||m(a?[]:u([d()]))},[e]);let h=e=>o.some(t=>{let n=(e[t.key]??``).trim();return t.prim===`checkbox`?n===`true`:n!==``});function g(e){m(e);let n=e.map(e=>e.data).filter(h);t(a?n.length?n:``:n.length?n[0]:``)}function _(e,t,n){g(p.map((r,i)=>i===e?{...r,data:{...r.data,[t]:String(n)}}:r))}function v(e,t){return s.includes(e)?p.filter((e,n)=>n!==t).map(t=>t.data[e]??``).filter(Boolean):[]}function y({id:e,data:t},n){return(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2 flex-wrap border border-border rounded-xl p-3`,children:[o.map(e=>c.has(e.key)?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:[e.label?(0,L.jsxDEV)(ht,{label:r(e.label)},void 0,!1,{fileName:K,lineNumber:126,columnNumber:28},this):null,(0,L.jsxDEV)(`div`,{className:`flex h-9 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:t[e.key]||(0,L.jsxDEV)(O,{},void 0,!1,{fileName:K,lineNumber:128,columnNumber:34},this)},void 0,!1,{fileName:K,lineNumber:127,columnNumber:15},this)]},e.key,!0,{fileName:K,lineNumber:125,columnNumber:13},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:(0,L.jsxDEV)(k,{field:Ar(e),value:e.prim===`checkbox`?t[e.key]===`true`:t[e.key]??``,excludeValues:v(e.key,n),onChange:t=>_(n,e.key,t),label:e.label?r(e.label):void 0,mode:`edit`,recordCtx:i},void 0,!1,{fileName:K,lineNumber:133,columnNumber:15},this)},e.key,!1,{fileName:K,lineNumber:132,columnNumber:13},this)),a&&(0,L.jsxDEV)(Ye,{className:`mt-6`,onClick:()=>g(p.filter((e,t)=>t!==n))},void 0,!1,{fileName:K,lineNumber:145,columnNumber:22},this)]},e,!0,{fileName:K,lineNumber:121,columnNumber:7},this)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[p.map(y),a&&(0,L.jsxDEV)(Ft,{onClick:()=>m(e=>[...e,...u([d()])]),children:r(`form.addRow`)},void 0,!1,{fileName:K,lineNumber:153,columnNumber:20},this)]},void 0,!0,{fileName:K,lineNumber:151,columnNumber:5},this)}function yh({value:e,onChange:t,field:n}){let{t:r}=a(),i=(0,I.useMemo)(()=>yr(n.hints.units)??[],[n.hints]),o=n.parts?.find(e=>e.role===`unit`),s=o!=null&&o.mode!==`stored`,c=n.parts?.find(e=>e.role===`value`),l=c!=null&&c.mode!==`stored`,u=(0,I.useMemo)(()=>Mr(n.parts??[]),[n.parts]),d=u.value??`value`,f=u.unit??`unit`,p=s&&typeof o.value==`string`?o.value:``,m=(0,I.useMemo)(()=>{let t=e&&typeof e==`object`?e:Qn(String(e),null);return typeof t!=`object`||!t?{value:``,unit:p||(i[0]?.value??``)}:{value:t[d]??``,unit:t[f]??``}},[e,i,p,d,f]),h=e=>{if(l){t({[f]:e.unit});return}t(e.value===``?``:{[d]:e.value,[f]:e.unit})};return(0,L.jsxDEV)(yi,{className:`min-w-0`,children:[l?(0,L.jsxDEV)(`div`,{className:`flex h-9 flex-1 min-w-0 items-center px-3 text-sm text-muted`,children:m.value===``?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:K,lineNumber:235,columnNumber:34},this):String(m.value)},void 0,!1,{fileName:K,lineNumber:234,columnNumber:9},this):(0,L.jsxDEV)(_i,{type:`number`,className:`min-w-0`,value:m.value===``?``:String(m.value),min:n.hints.min,max:n.hints.max,step:n.hints.step??`any`,onChange:e=>{let t=parseFloat(e.target.value);h({...m,value:isNaN(t)?``:t})},placeholder:`0`},void 0,!1,{fileName:K,lineNumber:238,columnNumber:9},this),(0,L.jsxDEV)(hi,{align:`inline-end`,className:`pr-1`,children:s?(0,L.jsxDEV)(`span`,{className:`px-2 text-xs text-muted`,children:Wt(n,m.unit||p,r)},void 0,!1,{fileName:K,lineNumber:254,columnNumber:11},this):(0,L.jsxDEV)(pe,{value:m.unit||``,onChange:e=>h({...m,unit:e}),items:i.map(e=>({value:e.value,title:r(e.label)})),triggerClassName:`h-7 gap-1 border-0 bg-transparent px-2 text-muted shadow-none focus:ring-0`},void 0,!1,{fileName:K,lineNumber:256,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:252,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:232,columnNumber:5},this)}function bh({field:e,value:t,onChange:n,excludeValues:r}){let{t:i}=a(),o=e.relation?.library??``,s=e.relation?.shelf??``,c=!!e.hints.multi,{labelMap:l,records:u,loadState:d}=He(o,s,String(e.hints.displayKey??`name`),(0,I.useMemo)(()=>{let t=e.relation?.filter;if(t)return Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t)]))},[e.relation?.filter])),f=x(o,s),p=(0,I.useMemo)(()=>t?c?Array.isArray(t)?t.map(String):Qn(t,[]).map(String):[String(t)]:[],[t,c]),m=fe(o,s,p),h=(0,I.useMemo)(()=>{let e=new Map(u.map(e=>[String(e.id),e]));for(let[t,n]of m)e.has(t)||e.set(t,n);return[...e.values()]},[u,m]),g=(0,I.useMemo)(()=>h.filter(e=>String(e.id)===String(t)||p.includes(String(e.id))||!r?.includes(String(e.id))).map(e=>{let t=f?_h(f,e):{title:String(e.id)},n=f?(0,L.jsxDEV)(hn,{shelf:f,row:e,size:`sm`,height:28},void 0,!1,{fileName:K,lineNumber:330,columnNumber:28},this):void 0;return{value:String(e.id),title:t.title,icon:t.icon,subtitle:t.subtitle,node:n}}),[h,r,t,p,f]);return d===`loading`?(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.loading`)},void 0,!1,{fileName:K,lineNumber:338,columnNumber:39},this):d===`error`?(0,L.jsxDEV)(`p`,{className:`text-danger text-sm py-1`,children:i(`form.loadError`)},void 0,!1,{fileName:K,lineNumber:339,columnNumber:37},this):g.length?c?(0,L.jsxDEV)(Ue,{selected:p,items:g,placeholder:i(`form.addRecord`),labelOf:e=>l.get(e)??g.find(t=>t.value===e)?.title??e,onChange:e=>n(e.length?e:``)},void 0,!1,{fileName:K,lineNumber:347,columnNumber:5},this):(0,L.jsxDEV)(pe,{value:t==null?``:String(t),onChange:n,items:g},void 0,!1,{fileName:K,lineNumber:344,columnNumber:22},this):(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.noRecords`)},void 0,!1,{fileName:K,lineNumber:341,columnNumber:29},this)}function xh(e){return{text:``,checks:Array(e).fill(!1)}}function Sh({value:e,onChange:t,field:n,recordCtx:r={library:``,shelf:``,recordId:null}}){let i=n.hints.slots??[``],a=_n(n.hints.fields),[o,s]=(0,I.useState)(()=>Qn(e,{}));(0,I.useEffect)(()=>{e||s({})},[e,i.length]);let c=a.length?{text:String(o.text??``),checks:Array.from({length:i.length},(e,t)=>o[`check`+t]===!0)}:Nn(e,i.length);function l(e){s(e);let n=a.length?a.some(t=>{let n=e[t.key];return n!=null&&n!==``&&!(Array.isArray(n)&&n.length===0)}):String(e.text??``).trim()!==``,r=Array.isArray(e.checks)?e.checks:[],o=i.some((t,n)=>e[`check`+n]===!0)||i.some((e,t)=>r[t]===!0);if(a.length)t(n||o?e:``);else{let a={text:String(e.text??``),checks:i.map((t,n)=>e[`check`+n]===!0||r[n]===!0)};t(n||o?qt(a):``)}}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxDEV)(Qt,{row:c,slotCount:i.length,editing:!0,onChange:e=>{let t={...o};i.forEach((n,r)=>{t[`check`+r]=e.checks[r]===!0}),a.length||(t.text=e.text),l(t)},content:a.length?(0,L.jsxDEV)(An,{fields:a,row:o,editing:!0,onChange:(e,t)=>l({...o,[e]:t}),recordCtx:r},void 0,!1,{fileName:K,lineNumber:431,columnNumber:13},this):void 0},void 0,!1,{fileName:K,lineNumber:417,columnNumber:7},this),(0,L.jsxDEV)(gn,{slots:i},void 0,!1,{fileName:K,lineNumber:441,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:416,columnNumber:5},this)}function Ch({value:e,onChange:t,field:n}){let{t:r}=a(),i=n.hints.slots??[``],[o,s]=(0,I.useState)(()=>Qn(e,[]));(0,I.useEffect)(()=>{e||s([])},[e]);function c(e){s(e);let n=e.filter(e=>e.text.trim()!==``||e.checks.some(Boolean));t(n.length?n:``)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 py-1`,children:[o.map((e,t)=>(0,L.jsxDEV)(Qt,{row:e,slotCount:i.length,editing:!0,onChange:e=>c(o.map((n,r)=>r===t?e:n)),onRemove:()=>c(o.filter((e,n)=>n!==t))},t,!1,{fileName:K,lineNumber:472,columnNumber:9},this)),(0,L.jsxDEV)(gn,{slots:i},void 0,!1,{fileName:K,lineNumber:481,columnNumber:7},this),(0,L.jsxDEV)(Ft,{onClick:()=>s(e=>[...e,xh(i.length)]),children:r(`form.addItem`)},void 0,!1,{fileName:K,lineNumber:482,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:470,columnNumber:5},this)}function wh(e){let t=e=>!!e&&typeof e==`object`&&`unit`in e;if(Array.isArray(e))return e.filter(t);try{let n=JSON.parse(String(e??``));if(Array.isArray(n))return n.map(e=>{if(t(e))return e;try{return JSON.parse(String(e))}catch{return null}}).filter(Boolean)}catch{}return[]}function Th({field:e,value:t,onChange:n}){let{t:r}=a(),i=(0,I.useMemo)(()=>wh(t),[t]),[o,s]=(0,I.useState)(``);function c(e){n(e.length?e:``)}function l(){!o||typeof o!=`object`||o.value===``||(c([...i,o]),s(``))}return(0,L.jsxDEV)(Ae,{items:i,content:Xn(e,r),onRemove:e=>c(i.filter((t,n)=>n!==e)),editor:(0,L.jsxDEV)(`div`,{className:`flex gap-2 items-center min-w-0`,children:[(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(yh,{value:o,onChange:e=>s(e),field:e},void 0,!1,{fileName:K,lineNumber:632,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:631,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:l,children:(0,L.jsxDEV)(se,{size:14},void 0,!1,{fileName:K,lineNumber:635,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:634,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:630,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:625,columnNumber:5},this)}var Eh=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/composite.tsx`;function Dh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,L.jsxDEV)(fn,{field:e.field,value:t},void 0,!1,{fileName:Eh,lineNumber:49,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(bh,{field:e.field,value:t,onChange:n,excludeValues:e.excludeValues},void 0,!1,{fileName:Eh,lineNumber:51,columnNumber:9},this)},void 0,!1,{fileName:Eh,lineNumber:39,columnNumber:5},this)}function Oh({field:e,draft:t,setDraft:n,save:r}){let{t:i}=a(),o=e.relation?.library??``,s=e.relation?.shelf??``,c=!!e.hints.multi,l=String(e.hints.displayKey??`name`),u=(0,I.useMemo)(()=>{let t=e.relation?.filter;if(t)return Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t)]))},[e.relation?.filter]),d=(0,I.useMemo)(()=>t==null||t===``?[]:c?(Array.isArray(t)?t:Qn(t,[])).map(String):[String(t)],[t,c]),{records:f,loadState:p}=He(o,s,l,u),m=fe(o,s,d),h=x(o,s),g=(0,I.useMemo)(()=>{let e=new Map(f.map(e=>[String(e.id),e]));for(let[t,n]of m)e.has(t)||e.set(t,n);return[...e.entries()].map(([e,t])=>{let n=h?_h(h,t):{title:e,icon:void 0,subtitle:void 0};return{value:e,title:n.title||e,...n.icon&&{icon:n.icon},...n.subtitle&&{subtitle:n.subtitle}}})},[f,m,h]);return p===`loading`?(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.loading`)},void 0,!1,{fileName:Eh,lineNumber:115,columnNumber:39},this):p===`error`?(0,L.jsxDEV)(`p`,{className:`text-danger text-sm py-1`,children:i(`form.loadError`)},void 0,!1,{fileName:Eh,lineNumber:116,columnNumber:37},this):g.length?(0,L.jsxDEV)(gr,{field:e,options:g,value:c?d:t,multiple:c,literal:!0,onPick:e=>{if(!c){r(e===``?``:Number(e));return}let t=e.map(Number);n(t.length?t:``)}},void 0,!1,{fileName:Eh,lineNumber:120,columnNumber:5},this):(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.noRecords`)},void 0,!1,{fileName:Eh,lineNumber:117,columnNumber:31},this)}function kh({value:e}){let t=Qn(e,null);return(0,L.jsxDEV)(`span`,{className:`truncate`,children:Array.isArray(t)?t.length?String(t.length):`—`:e?`1`:`—`},void 0,!1,{fileName:Eh,lineNumber:143,columnNumber:10},this)}function Ah(e,t,n){if(e==null||e===``)return[];let r=String(e),i=n.labelMap?.get(r)??r;return[{value:r,rawValue:e,label:i,sort:i}]}j({kinds:[`relation`],layout:Sn,Page:Dh,Inline:kh,Picker:Oh,pickerCommits:e=>e.hints.multi!==!0,keys:Ah});function jh({field:e,value:t}){let{t:n}=a();return(0,L.jsxDEV)(Ae,{items:Array.isArray(t)?t:ir(String(t??``)),content:Xn(e,n)},void 0,!1,{fileName:Eh,lineNumber:174,columnNumber:10},this)}function Mh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:t=>e.field.hints.multiple===!0?(0,L.jsxDEV)(jh,{field:e.field,value:t},void 0,!1,{fileName:Eh,lineNumber:191,columnNumber:11},this):(0,L.jsxDEV)(Vn,{field:e.field,value:t},void 0,!1,{fileName:Eh,lineNumber:193,columnNumber:11},this),edit:(t,n)=>e.field.hints.multiple===!0?(0,L.jsxDEV)(Th,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Eh,lineNumber:198,columnNumber:11},this):(0,L.jsxDEV)(yh,{value:t,onChange:n,field:e.field},void 0,!1,{fileName:Eh,lineNumber:204,columnNumber:11},this)},void 0,!1,{fileName:Eh,lineNumber:179,columnNumber:5},this)}function Nh({field:e,value:t}){let{t:n}=a(),{vKey:r,uKey:i}=It(e),o=Qn(t,null);return(0,L.jsxDEV)(`span`,{className:`truncate`,children:o?`${vn(o[r],e)} ${Wt(e,String(o[i]??``),n)}`:`—`},void 0,!1,{fileName:Eh,lineNumber:224,columnNumber:10},this)}j({kinds:[`measured`],Page:Mh,Inline:Nh});function Ph(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>{let n=e.field.hints.slots??[``],r=e.field.hints.fields;return e.field.hints.multiple===!0?(0,L.jsxDEV)(Nt,{value:t,slots:n},void 0,!1,{fileName:Eh,lineNumber:251,columnNumber:11},this):(0,L.jsxDEV)(Tn,{value:t,slots:n,fields:r,recordCtx:e.recordCtx},void 0,!1,{fileName:Eh,lineNumber:253,columnNumber:11},this)},edit:(t,n)=>e.field.hints.multiple===!0?(0,L.jsxDEV)(Ch,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Eh,lineNumber:258,columnNumber:11},this):(0,L.jsxDEV)(Sh,{field:e.field,value:t,recordCtx:e.recordCtx,onChange:n},void 0,!1,{fileName:Eh,lineNumber:260,columnNumber:11},this)},void 0,!1,{fileName:Eh,lineNumber:237,columnNumber:5},this)}function Fh({value:e,field:t}){let n=Nn(e,(t.hints.slots??[``]).length),r=n.checks.length;return!n.text&&!n.checks.some(Boolean)?(0,L.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:Eh,lineNumber:276,columnNumber:54},this):(0,L.jsxDEV)(`span`,{className:`truncate`,children:r?`${n.checks.filter(Boolean).length}/${r}`:n.text||`—`},void 0,!1,{fileName:Eh,lineNumber:278,columnNumber:10},this)}j({kinds:[`check`],layout:`block`,Page:Ph,Inline:Fh});var Ih=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/amount.tsx`;function Lh({field:e,value:t}){let{t:n}=a(),r=e.hints.unitValue;return t==null||t===``?(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:Ih,lineNumber:21,columnNumber:45},this):(0,L.jsxDEV)(`span`,{className:`font-mono`,children:[vn(t,e),r?(0,L.jsxDEV)(`span`,{className:`ml-1 text-xs text-muted`,children:n(`core.units.${String(r)}`)},void 0,!1,{fileName:Ih,lineNumber:25,columnNumber:12},this):null]},void 0,!0,{fileName:Ih,lineNumber:23,columnNumber:5},this)}function Rh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(Lh,{field:e.field,value:t},void 0,!1,{fileName:Ih,lineNumber:42,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Dp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:Ih,lineNumber:44,columnNumber:9},this)},void 0,!1,{fileName:Ih,lineNumber:32,columnNumber:5},this)}function zh({field:e,value:t}){return(0,L.jsxDEV)(`span`,{className:`truncate font-mono`,children:t==null||t===``?`—`:vn(t,e)},void 0,!1,{fileName:Ih,lineNumber:51,columnNumber:10},this)}j({kinds:[`amount`],Page:Rh,Inline:zh});var Bh=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/period.tsx`;function Vh(e){let t=Mr(e.parts??[]);return{fromKey:t.from??`from`,untilKey:t.until??`until`}}function Hh(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`&&Object.keys(e).length)return[e];if(typeof e==`string`&&e)try{let t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&typeof t==`object`&&Object.keys(t).length)return[t]}catch{}return[]}function Uh(e,t){return e?t===`datetime`?String(e).replace(`T`,` `):String(e):`…`}function Wh(e,t,n,r){return`${Uh(e[n],t)}–${Uh(e[r],t)}`}function Gh({field:e,value:t,onChange:n}){let{t:r}=a();return(0,L.jsxDEV)(vh,{value:t,onChange:n,field:e,t:r},void 0,!1,{fileName:Bh,lineNumber:79,columnNumber:10},this)}function Kh({field:e,value:t}){let n=e.hints.granularity??`day`,{fromKey:r,untilKey:i}=Vh(e);return(0,L.jsxDEV)(Ae,{items:Hh(t),content:e=>(0,L.jsxDEV)(`span`,{className:`font-mono`,children:Wh(e,n,r,i)},void 0,!1,{fileName:Bh,lineNumber:89,columnNumber:23},this)},void 0,!1,{fileName:Bh,lineNumber:87,columnNumber:5},this)}function qh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,L.jsxDEV)(Kh,{field:e.field,value:t},void 0,!1,{fileName:Bh,lineNumber:105,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Gh,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:Bh,lineNumber:107,columnNumber:9},this)},void 0,!1,{fileName:Bh,lineNumber:96,columnNumber:5},this)}function Jh({value:e,field:t}){let n=t.hints.granularity??`day`,{fromKey:r,untilKey:i}=Vh(t),a=Hh(e);return(0,L.jsxDEV)(`span`,{className:`truncate`,children:a.length?a.map(e=>Wh(e,n,r,i)).join(`, `):`—`},void 0,!1,{fileName:Bh,lineNumber:123,columnNumber:5},this)}j({kinds:[`period`],Page:qh,Inline:Jh});var Yh=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group-edit.tsx`;function Xh(e,t,n){let r=ot(t,n);return e===`view`?r.editing?{mode:`edit`,value:r.draft,onChange:r.setDraft,actions:(0,L.jsxDEV)(Rn,{size:`xs`,busy:r.busy,onSave:()=>r.commit(),onCancel:r.cancel},void 0,!1,{fileName:Yh,lineNumber:58,columnNumber:14},this)}:{mode:`view`,value:t,onChange:e=>n(e),actions:(0,L.jsxDEV)(Ee,{scope:`group`,onEdit:r.beginEdit},void 0,!1,{fileName:Yh,lineNumber:51,columnNumber:16},this)}:{mode:e,value:t,onChange:e=>n(e),actions:null}}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group.tsx`;function Zh({onRemove:e}){let{t}=a();return(0,L.jsxDEV)(`div`,{className:`flex shrink-0 flex-col`,children:[(0,L.jsxDEV)(`div`,{className:`min-h-8 mb-1.5`,"aria-hidden":!0},void 0,!1,{fileName:q,lineNumber:52,columnNumber:7},this),(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,size:`iconSm`,onClick:e,title:t(`actions.delete`),"aria-hidden":!e||void 0,tabIndex:e?void 0:-1,className:`rounded-lg text-muted hover:border-danger hover:text-danger${e?``:` invisible`}`,children:(0,L.jsxDEV)(ur,{size:14},void 0,!1,{fileName:q,lineNumber:63,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:53,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:51,columnNumber:5},this)}function Qh({index:e,count:t,children:n}){let r=t>1;return!r&&!n?null:(0,L.jsxDEV)(`div`,{className:`mb-2 flex min-w-0 flex-wrap items-baseline gap-x-4 gap-y-1 border-b border-border pb-2`,"data-testid":`row-title`,children:[r&&(0,L.jsxDEV)(`span`,{className:`text-[11px] tabular-nums text-faint`,"data-testid":`row-ordinal`,children:String(e+1).padStart(2,`0`)},void 0,!1,{fileName:q,lineNumber:88,columnNumber:9},this),n]},void 0,!0,{fileName:q,lineNumber:83,columnNumber:5},this)}function $h(e){let t=e.view?.title??[];return{subs:t.flatMap(t=>{let n=e.fields.find(e=>Cr(e)&&e.key===t);return n?[n]:[]}),inTitle:new Set(t)}}function eg({group:e,value:t,onChange:n,recordCtx:r}){let{t:i}=a(),o=Ge(),s=Array.isArray(t)?t:[],c=e.unique??[],{subs:l,inTitle:u}=$h(e);function d(e,t,r){n(s.map((n,i)=>i===e?{...n,[t]:r}:n))}function f(t,n,a){return t.type.derived?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[t.type.label?(0,L.jsxDEV)(ht,{label:i(t.type.label)},void 0,!1,{fileName:q,lineNumber:144,columnNumber:29},this):null,(0,L.jsxDEV)(k,{field:t.type,value:n[t.key]??``,mode:`view`,bare:!0,recordCtx:r},void 0,!1,{fileName:q,lineNumber:145,columnNumber:11},this)]},t.key,!0,{fileName:q,lineNumber:143,columnNumber:9},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,L.jsxDEV)(k,{field:t.type,fieldKey:t.key,value:n[t.key]??``,excludeValues:ie(s,c,t.key,a),onChange:e=>d(a,t.key,e),label:t.type.label?i(t.type.label):void 0,mode:`edit`,recordCtx:r,error:kr(e)?o([e.key,a,t.key]):void 0},void 0,!1,{fileName:q,lineNumber:154,columnNumber:9},this)},t.key,!1,{fileName:q,lineNumber:153,columnNumber:7},this)}function p(t,i){return(0,L.jsxDEV)(Rt,{values:t,children:(0,L.jsxDEV)(qn,{children:[(0,L.jsxDEV)(Qh,{index:i,count:s.length,children:l.length>0?l.map(e=>(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-baseline ${Pt(e.type)}`.trim(),children:(0,L.jsxDEV)(k,{field:e.type,fieldKey:e.key,value:t[e.key]??``,onChange:t=>d(i,e.key,t),mode:`edit`,bare:!0,recordCtx:r},void 0,!1,{fileName:q,lineNumber:179,columnNumber:21},this)},e.key,!1,{fileName:q,lineNumber:178,columnNumber:19},this)):null},void 0,!1,{fileName:q,lineNumber:175,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(mn,{scroll:e.display===`scroll`,items:e.fields.flatMap((e,n)=>Cr(e)&&u.has(e.key)?[]:wr(e)?!kr(e)&&e.display===`scroll`?[{key:e.label??`flow`,span:12,node:(0,L.jsxDEV)(mn,{scroll:!0,items:e.fields.flatMap(e=>Cr(e)?[{key:e.key,node:f(e,t,i)}]:[])},void 0,!1,{fileName:q,lineNumber:208,columnNumber:29},this)}]:[{key:e.key??e.label??`g`,span:Ln(e),node:(0,L.jsxDEV)(ug,{group:e,value:t[e.key],onChange:t=>d(i,e.key,t),recordCtx:r,mode:`edit`},void 0,!1,{fileName:q,lineNumber:225,columnNumber:27},this)}]:Cr(e)?[{key:e.key,span:Ln(e),node:f(e,t,i)}]:[])},void 0,!1,{fileName:q,lineNumber:194,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:193,columnNumber:13},this),(0,L.jsxDEV)(Zh,{onRemove:()=>n(s.filter((e,t)=>t!==i))},void 0,!1,{fileName:q,lineNumber:243,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:192,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:174,columnNumber:9},this)},i,!1,{fileName:q,lineNumber:173,columnNumber:7},this)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[s.map(p),(0,L.jsxDEV)(Ft,{onClick:()=>n([...s,{}]),children:i(`form.addRow`)},void 0,!1,{fileName:q,lineNumber:253,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:251,columnNumber:5},this)}function tg({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Un(),c=E()&&i===`view`,l=Xh(i,t,e=>n(e));return l.mode===`view`?(0,L.jsxDEV)(ig,{group:e,value:l.value,onChange:e=>l.onChange(e),recordCtx:r,actions:c?null:l.actions,editable:c},void 0,!1,{fileName:q,lineNumber:283,columnNumber:7},this):(0,L.jsxDEV)(`fieldset`,{className:`${Et(s)} flex flex-col min-w-0 ${Cn}`,children:[(0,L.jsxDEV)(qe,{as:`legend`,label:o(e.label),icon:rn(e),count:Array.isArray(l.value)?l.value.length:0,actions:l.actions},void 0,!1,{fileName:q,lineNumber:297,columnNumber:7},this),(0,L.jsxDEV)(eg,{group:e,value:l.value,onChange:e=>l.onChange(e),recordCtx:r},void 0,!1,{fileName:q,lineNumber:304,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:296,columnNumber:5},this)}var ng=e=>`${Et(e)} flex flex-col min-w-0 ${Cn}`;function rg({sub:e,row:t,group:n,recordCtx:r,onChange:i,heading:o}){let{t:s}=a(),c=E()&&!!i,l=c?i:void 0;return(0,L.jsxDEV)(`div`,{className:`${o?`flex min-w-0 items-baseline`:`flex flex-col gap-0.5 min-w-0`} ${Pt(e.type)}`.trim(),children:[!o&&e.type.label?(0,L.jsxDEV)(ht,{label:s(e.type.label)},void 0,!1,{fileName:q,lineNumber:358,columnNumber:37},this):null,(0,L.jsxDEV)(k,{field:e.type,fieldKey:c?e.key:void 0,value:t[e.key]??``,mode:`view`,bare:!c,recordCtx:r,onChange:l},void 0,!1,{fileName:q,lineNumber:359,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:355,columnNumber:5},this)}function ig({group:e,value:t,onChange:n,recordCtx:r,actions:i,editable:o=!1}){let{t:s}=a(),c=Un(),l=Array.isArray(t)?t:[],[u,d]=(0,I.useState)([]),f=[...l,...u],p=e=>Object.values(e).some(e=>e!==``&&e!=null&&e!==!1),{subs:m,inTitle:h}=$h(e);function g(e,t,r){let i=f.map((n,i)=>i===e?{...n,[t]:r}:n).filter(p);d([]),n(i)}function _(e){if(e<l.length){d([]),n(l.filter((t,n)=>n!==e));return}d(t=>t.filter((t,n)=>n!==e-l.length))}return(0,L.jsxDEV)(`fieldset`,{className:ng(c),children:[(0,L.jsxDEV)(qe,{as:`legend`,label:s(e.label),icon:rn(e),count:f.length,actions:i},void 0,!1,{fileName:q,lineNumber:434,columnNumber:7},this),(0,L.jsxDEV)(xt,{depth:c+1,children:(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[f.map((t,n)=>(0,L.jsxDEV)(Rt,{values:t,children:(0,L.jsxDEV)(qn,{children:[(0,L.jsxDEV)(Qh,{index:n,count:f.length,children:m.length>0?m.map(i=>(0,L.jsxDEV)(rg,{heading:!0,sub:i,row:t,group:e,recordCtx:r,onChange:e=>g(n,i.key,e)},i.key,!1,{fileName:q,lineNumber:443,columnNumber:25},this)):null},void 0,!1,{fileName:q,lineNumber:440,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(mn,{scroll:e.display===`scroll`,items:e.fields.flatMap((i,a)=>Cr(i)&&h.has(i.key)?[]:wr(i)?!kr(i)&&i.display===`scroll`?[{key:i.label??`flow`,span:12,node:(0,L.jsxDEV)(mn,{scroll:!0,items:i.fields.flatMap(i=>{if(!Cr(i))return[];let a=i.key;return[{key:a,node:(0,L.jsxDEV)(rg,{sub:i,row:t,group:e,recordCtx:r,onChange:e=>g(n,a,e)},void 0,!1,{fileName:q,lineNumber:479,columnNumber:45},this)}]})},void 0,!1,{fileName:q,lineNumber:470,columnNumber:35},this)}]:[{key:i.key??i.label??`g`,span:Ln(i),node:(0,L.jsxDEV)(ug,{group:i,value:t[i.key],onChange:e=>g(n,i.key,e),recordCtx:r,mode:`view`},void 0,!1,{fileName:q,lineNumber:502,columnNumber:33},this)}]:Cr(i)?[{key:i.key,span:Ln(i),node:(0,L.jsxDEV)(rg,{sub:i,row:t,group:e,recordCtx:r,onChange:e=>g(n,i.key,e)},void 0,!1,{fileName:q,lineNumber:521,columnNumber:31},this)}]:[])},void 0,!1,{fileName:q,lineNumber:457,columnNumber:21},this)},void 0,!1,{fileName:q,lineNumber:456,columnNumber:19},this),o&&(0,L.jsxDEV)(Ye,{className:`mt-6`,onClick:()=>_(n)},void 0,!1,{fileName:q,lineNumber:535,columnNumber:32},this)]},void 0,!0,{fileName:q,lineNumber:455,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:439,columnNumber:15},this)},n,!1,{fileName:q,lineNumber:438,columnNumber:13},this)),o&&(0,L.jsxDEV)(Ft,{onClick:()=>d(e=>[...e,{}]),children:s(`form.addRow`)},void 0,!1,{fileName:q,lineNumber:540,columnNumber:24},this)]},void 0,!0,{fileName:q,lineNumber:436,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:435,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:433,columnNumber:5},this)}var ag=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/table-group.tsx`;function og({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Ge(),c=Un(),l=e.fields.filter(e=>Cr(e)||wr(e)&&!!e.kind),u=e=>e.key,d=e=>Or(e)?e.type.label:e.label,f=e=>Or(e)?{field:e.type}:{field:e,el:e},p=l.reduce((e,t,n)=>Ln(t)>Ln(l[e])?n:e,0),m=(e,t)=>t===p,h=e.unique??[],g=Xh(i,t,e=>n(e)),_=g.mode!==`view`,v=E()&&i===`view`,y=Array.isArray(g.value)?g.value:[],[b,x]=(0,I.useState)([]),S=v?[...y,...b]:y,C=e=>Object.values(e).some(e=>e!==``&&e!=null&&e!==!1),w=e=>{x([]),g.onChange(v?e.filter(C):e)},T=(e,t,n)=>w(S.map((r,i)=>i===e?{...r,[t]:n}:r)),ee=e=>{if(!v||e<y.length)return w(S.filter((t,n)=>n!==e));x(t=>t.filter((t,n)=>n!==e-y.length))},te=()=>v?x(e=>[...e,{}]):w([...S,{}]),ne=_||v,re=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`overflow-x-auto rounded-lg border border-border bg-elevated shadow-2xs`,children:(0,L.jsxDEV)(`table`,{className:`w-full border-collapse text-sm`,children:[(0,L.jsxDEV)(`thead`,{children:(0,L.jsxDEV)(`tr`,{className:`border-b border-border bg-elevated`,children:[l.map((e,t)=>(0,L.jsxDEV)(`th`,{className:`text-left px-3.5 py-2.5 ${m(e,t)?`w-full min-w-[140px]`:`whitespace-nowrap min-w-[90px]`}`,children:(0,L.jsxDEV)(_e,{children:d(e)?o(d(e)):``},void 0,!1,{fileName:ag,lineNumber:98,columnNumber:13},this)},u(e),!1,{fileName:ag,lineNumber:94,columnNumber:11},this)),ne&&(0,L.jsxDEV)(`th`,{className:`w-10 px-2`,"aria-hidden":!0},void 0,!1,{fileName:ag,lineNumber:101,columnNumber:22},this)]},void 0,!0,{fileName:ag,lineNumber:92,columnNumber:7},this)},void 0,!1,{fileName:ag,lineNumber:91,columnNumber:5},this),(0,L.jsxDEV)(`tbody`,{className:`divide-y divide-border/30`,children:S.map((t,n)=>(0,L.jsxDEV)(Rt,{values:t,children:(0,L.jsxDEV)(`tr`,{className:`align-top hover:bg-elevated transition-colors`,children:[l.map((i,a)=>(0,L.jsxDEV)(`td`,{className:`px-3.5 py-2.5 min-h-10 ${m(i,a)?`min-w-[140px]`:`min-w-[90px]`} ${Pt(f(i).field)}`.trim(),children:(0,L.jsxDEV)(k,{...f(i),value:t[u(i)]??(Or(i)?``:null),excludeValues:ie(S,h,u(i),n),onChange:e=>T(n,u(i),e),fieldKey:v?u(i):void 0,mode:_?`edit`:`view`,bare:!v,recordCtx:r,error:kr(e)?s([e.key,n,u(i)]):void 0},void 0,!1,{fileName:ag,lineNumber:118,columnNumber:17},this)},u(i),!1,{fileName:ag,lineNumber:114,columnNumber:15},this)),ne&&(0,L.jsxDEV)(`td`,{className:`px-2 py-2 min-h-10 w-10`,children:(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,size:`iconSm`,onClick:()=>ee(n),title:o(`actions.delete`),className:`rounded-lg text-muted hover:border-danger hover:text-danger`,children:(0,L.jsxDEV)(ur,{size:14},void 0,!1,{fileName:ag,lineNumber:141,columnNumber:19},this)},void 0,!1,{fileName:ag,lineNumber:133,columnNumber:17},this)},void 0,!1,{fileName:ag,lineNumber:132,columnNumber:15},this)]},void 0,!0,{fileName:ag,lineNumber:112,columnNumber:11},this)},n,!1,{fileName:ag,lineNumber:111,columnNumber:9},this))},void 0,!1,{fileName:ag,lineNumber:107,columnNumber:5},this)]},void 0,!0,{fileName:ag,lineNumber:154,columnNumber:9},this)},void 0,!1,{fileName:ag,lineNumber:153,columnNumber:7},this),ne&&(0,L.jsxDEV)(Ft,{onClick:te,children:o(`form.addRow`)},void 0,!1,{fileName:ag,lineNumber:159,columnNumber:20},this)]},void 0,!0,{fileName:ag,lineNumber:152,columnNumber:5},this);return i===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(c)} flex flex-col gap-2 min-w-0`,children:[(0,L.jsxDEV)(qe,{as:`h3`,label:o(e.label),icon:rn(e),count:S.length,actions:v?null:g.actions},void 0,!1,{fileName:ag,lineNumber:170,columnNumber:7},this),(0,L.jsxDEV)(xt,{depth:c+1,children:re},void 0,!1,{fileName:ag,lineNumber:177,columnNumber:7},this)]},void 0,!0,{fileName:ag,lineNumber:169,columnNumber:5},this):re}var sg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/fixed-collection.tsx`;function cg({group:e,value:t,onChange:n,recordCtx:r,mode:i=`edit`}){let{t:o}=a(),s=Un(),c=Xh(i,t,e=>n(e)),l=c.mode!==`view`,u=E()&&i===`view`,d=e.view?.by,f=e.fields.find(e=>Cr(e)&&e.key===d),p=e.fields.filter(e=>Cr(e)&&e.key!==d),m=jn(f.type),h=Array.isArray(c.value)?c.value:[],g=m.map(e=>h.find(t=>String(t[f.key]??``)===String(e.value))??{[f.key]:e.value});function _(e){c.onChange(e.filter(e=>p.some(t=>e[t.key]!=null&&e[t.key]!==``)))}function v(e,t,n){_(g.map((r,i)=>i===e?{...r,[t]:n}:r))}return(0,L.jsxDEV)(`fieldset`,{className:`${Et(s)} flex flex-col min-w-0 ${Cn}`,children:[(0,L.jsxDEV)(qe,{as:`legend`,label:o(e.label),icon:rn(e),actions:u?null:c.actions},void 0,!1,{fileName:sg,lineNumber:78,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:g.map((e,t)=>(0,L.jsxDEV)(Rt,{values:e,children:(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0 shrink-0`,children:[f.type.label?(0,L.jsxDEV)(ht,{label:o(f.type.label)},void 0,!1,{fileName:sg,lineNumber:85,columnNumber:36},this):null,(0,L.jsxDEV)(`span`,{className:`text-sm px-1 py-2`,children:Yt(o,{options:m},String(e[f.key]??``))},void 0,!1,{fileName:sg,lineNumber:86,columnNumber:19},this)]},void 0,!0,{fileName:sg,lineNumber:84,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(mn,{items:p.map(n=>({key:n.key,span:Ln(n),node:l?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,L.jsxDEV)(k,{field:n.type,value:e[n.key]??``,onChange:e=>v(t,n.key,e),label:n.type.label?o(n.type.label):void 0,mode:`edit`,recordCtx:r},void 0,!1,{fileName:sg,lineNumber:97,columnNumber:27},this)},void 0,!1,{fileName:sg,lineNumber:96,columnNumber:25},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0 ${Pt(n.type)}`.trim(),children:[n.type.label?(0,L.jsxDEV)(ht,{label:o(n.type.label)},void 0,!1,{fileName:sg,lineNumber:112,columnNumber:45},this):null,(0,L.jsxDEV)(k,{field:n.type,fieldKey:u?n.key:void 0,value:e[n.key]??``,onChange:u?e=>v(t,n.key,e):void 0,mode:`view`,bare:!u,recordCtx:r},void 0,!1,{fileName:sg,lineNumber:113,columnNumber:27},this)]},void 0,!0,{fileName:sg,lineNumber:111,columnNumber:25},this)}))},void 0,!1,{fileName:sg,lineNumber:91,columnNumber:19},this)},void 0,!1,{fileName:sg,lineNumber:90,columnNumber:17},this)]},void 0,!0,{fileName:sg,lineNumber:83,columnNumber:15},this)},void 0,!1,{fileName:sg,lineNumber:82,columnNumber:13},this)},String(e[f.key]),!1,{fileName:sg,lineNumber:81,columnNumber:11},this))},void 0,!1,{fileName:sg,lineNumber:79,columnNumber:7},this)]},void 0,!0,{fileName:sg,lineNumber:77,columnNumber:5},this)}var lg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group-field.tsx`;function ug({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=E()&&i===`view`,c=Ge(),l=e.kind?En({kind:e.kind}):void 0;if(l)return(0,L.jsxDEV)(rt,{field:e,value:t,commit:n,children:(0,L.jsxDEV)(l.Page,{el:e,value:t,mode:i,recordCtx:r},void 0,!1,{fileName:lg,lineNumber:56,columnNumber:9},this)},void 0,!1,{fileName:lg,lineNumber:55,columnNumber:7},this);if(Sr(e)&&e.fixed)return(0,L.jsxDEV)(cg,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:lg,lineNumber:63,columnNumber:7},this);if(Sr(e)&&e.display===`scroll`)return(0,L.jsxDEV)(og,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:lg,lineNumber:77,columnNumber:7},this);if(Sr(e))return(0,L.jsxDEV)(tg,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:lg,lineNumber:90,columnNumber:7},this);if(Tr(e)){let a=t??{},l=(e,t)=>n({...a,[e]:t}),u=e.fields.filter(e=>Cr(e));return(0,L.jsxDEV)(Rt,{values:a,children:(0,L.jsxDEV)(`fieldset`,{className:`flex flex-col min-w-0 ${Cn}`,children:[(0,L.jsxDEV)(qe,{as:`legend`,label:o(e.label),icon:rn(e)},void 0,!1,{fileName:lg,lineNumber:110,columnNumber:11},this),(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(mn,{items:u.map(t=>({key:t.key,span:Ln(t),node:(0,L.jsxDEV)(k,{field:t.type,fieldKey:s?t.key:void 0,value:a[t.key]??``,onChange:e=>l(t.key,e),label:t.type.label?o(t.type.label):void 0,mode:i,recordCtx:r,error:kr(e)?c([e.key,t.key]):void 0},void 0,!1,{fileName:lg,lineNumber:119,columnNumber:19},this)}))},void 0,!1,{fileName:lg,lineNumber:114,columnNumber:13},this)},void 0,!1,{fileName:lg,lineNumber:113,columnNumber:11},this)]},void 0,!0,{fileName:lg,lineNumber:109,columnNumber:9},this)},void 0,!1,{fileName:lg,lineNumber:108,columnNumber:7},this)}return null}var dg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/storage-group.tsx`;function fg({el:e,value:t,recordCtx:n,mode:r}){let{write:i}=ce();return(0,L.jsxDEV)(ug,{group:e,value:t,onChange:e=>void i(e),recordCtx:n,mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:dg,lineNumber:20,columnNumber:5},this)}function pg({el:e,value:t,recordCtx:n,mode:r}){let{write:i}=ce();return(0,L.jsxDEV)(ug,{group:e,value:t,onChange:e=>void i(e),recordCtx:n,mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:dg,lineNumber:33,columnNumber:5},this)}function mg({el:e,value:t}){let n=e,r=t&&typeof t==`object`?t:{},i=(n?.fields??[]).filter(e=>Cr(e));return i.length?(0,L.jsxDEV)(Rt,{values:r,children:(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-2`,children:i.map(e=>(0,L.jsxDEV)(sn,{field:e.type,value:r[e.key]},e.key,!1,{fileName:dg,lineNumber:63,columnNumber:11},this))},void 0,!1,{fileName:dg,lineNumber:61,columnNumber:7},this)},void 0,!1,{fileName:dg,lineNumber:60,columnNumber:5},this):null}j({kinds:[`collection`],layout:`block`,Page:fg,Value:mg,editor:`own`}),j({kinds:[`embedded`],layout:`block`,Page:pg,editor:`own`});var hg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/weekday-grid.tsx`,gg=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],_g={kind:`number`,prim:`number`,column:`real`,label:``,required:!1,hints:{}};function vg({group:e,value:t,onChange:n,mode:r}){let{t:i}=a(),o=i(`weekdaysShort`,{returnObjects:!0}),s=E(),c=Array.isArray(t)?t:[],l=new Map(c.map(e=>[e.day,Number(e.value)])),u=r!==`view`,d=e.fields.slice(1).find(e=>Cr(e)),f=d?.type.hints.min,p=d?.type.hints.max,m=d?.type.hints.step,h=d?{...d.type,label:``,required:!1}:_g;function g(e,t){n(gg.flatMap(n=>{let r=n===e?t:l.get(n)??0;return r>0?[{day:n,value:r}]:[]}))}let _=(e,t)=>(0,L.jsxDEV)(P,{type:`number`,className:`w-full text-center px-1 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,min:f,max:p,step:m??`any`,value:e===0||e==null?``:String(e),onChange:e=>t(e.target.value===``?``:Number(e.target.value))},void 0,!1,{fileName:hg,lineNumber:68,columnNumber:5},this),v=Math.max(p??0,...gg.map(e=>l.get(e)??0),1),y=gg[(new Date().getDay()+6)%7],b=e=>(0,L.jsxDEV)(`div`,{className:`relative h-11 w-full overflow-hidden rounded-lg border ${e?`border-border text-accent`:`border-border text-faint`}`,children:[e>0&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`absolute inset-x-0 bottom-0 bg-accent/15`,style:{height:`${Math.round(Math.min(e,v)/v*100)}%`}},void 0,!1,{fileName:hg,lineNumber:95,columnNumber:9},this),(0,L.jsxDEV)(`span`,{className:`relative flex h-full items-center justify-center text-sm font-semibold tabular-nums`,children:e||(0,L.jsxDEV)(O,{},void 0,!1,{fileName:hg,lineNumber:104,columnNumber:15},this)},void 0,!1,{fileName:hg,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:hg,lineNumber:87,columnNumber:5},this);return!u&&!s&&!c.some(e=>Number(e.value)>0)?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:hg,lineNumber:112,columnNumber:83},this):(0,L.jsxDEV)(`div`,{className:`flex ${In}`,children:(0,L.jsxDEV)(`div`,{className:`grid grid-cols-[repeat(7,minmax(2.25rem,1fr))] gap-1.5 w-full max-w-72`,children:gg.map((e,t)=>{let n=l.get(e)??0;return(0,L.jsxDEV)(`div`,{className:`flex flex-col items-stretch gap-1 min-w-0 text-center`,children:[(0,L.jsxDEV)(`span`,{className:`text-[10px] ${e===y?`font-semibold text-accent`:`text-muted`}`,children:o[t]},void 0,!1,{fileName:hg,lineNumber:129,columnNumber:15},this),s?(0,L.jsxDEV)(Yn,{field:h,value:n||``,geom:`none`,width:`w-full`,view:()=>b(n),edit:_,onCommit:t=>g(e,Number(t)||0)},void 0,!1,{fileName:hg,lineNumber:133,columnNumber:17},this):u?_(n||``,t=>g(e,Number(t)||0)):b(n)]},e,!0,{fileName:hg,lineNumber:128,columnNumber:13},this)})},void 0,!1,{fileName:hg,lineNumber:121,columnNumber:7},this)},void 0,!1,{fileName:hg,lineNumber:117,columnNumber:5},this)}var yg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/url-widget.tsx`;function bg({value:e,onChange:t,mode:n}){let r=e??null;if(n===`view`){let e=Pr(r);return e?(0,L.jsxDEV)(`a`,{href:Fr(r),target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-accent hover:underline text-sm break-all`,children:[e,` `,(0,L.jsxDEV)(xl,{size:12},void 0,!1,{fileName:yg,lineNumber:34,columnNumber:16},this)]},void 0,!0,{fileName:yg,lineNumber:28,columnNumber:7},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:yg,lineNumber:26,columnNumber:23},this)}return(0,L.jsxDEV)(P,{type:`text`,inputMode:`url`,value:Pr(r),onChange:e=>t(Ir(e.target.value))},void 0,!1,{fileName:yg,lineNumber:40,columnNumber:10},this)}var xg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/checklist-group.tsx`;function Sg({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Un(),c=e.fields.filter(e=>Cr(e)&&/^check\d+$/.test(e.key)),l=e.fields.filter(e=>Cr(e)&&!/^check\d+$/.test(e.key)),u=l.map(e=>({key:e.key,type:e.type})),d=l.find(e=>e.key===`text`),f=c.map(e=>e.type.label??``),p=Xh(i,t,e=>n(e)),m=Array.isArray(p.value)?p.value:[],{rowId:h,updateRow:g,removeRow:_}=$e(m,p.onChange),v=p.mode!==`view`,y=E()&&i===`view`,b=v||y,x=e=>({text:d?String(e[d.key]??``):``,checks:c.map(t=>e[t.key]===!0)}),S=(e,t)=>{let n={...t};return c.forEach((t,r)=>{n[t.key]=e.checks[r]===!0}),d&&(n[d.key]=e.text),n},C=(e,t,n)=>(0,L.jsxDEV)(Yn,{field:{...n.type,hints:{...n.type.hints,noLabel:!0}},label:n.type.label?o(n.type.label):void 0,value:e[n.key]===!0,geom:`none`,width:`w-fit`,view:(e,t)=>(0,L.jsxDEV)(Dt,{checked:e===!0,disabled:!t,"aria-label":n.type.label?o(n.type.label):void 0,onCheckedChange:e=>t?.(e===!0)},void 0,!1,{fileName:xg,lineNumber:87,columnNumber:9},this),edit:(e,t)=>(0,L.jsxDEV)(Dt,{checked:e===!0,onCheckedChange:e=>t(e===!0)},void 0,!1,{fileName:xg,lineNumber:94,columnNumber:25},this),onCommit:r=>g(t,{...e,[n.key]:r===!0})},n.key,!1,{fileName:xg,lineNumber:77,columnNumber:5},this),w=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,L.jsxDEV)(`ul`,{className:`flex flex-col gap-1.5`,children:m.map((e,t)=>(0,L.jsxDEV)(`li`,{children:(0,L.jsxDEV)(Qt,{row:x(e),slotCount:f.length,editing:v,checkCells:y?c.map(n=>C(e,t,n)):void 0,onChange:n=>g(t,S(n,e)),onRemove:b?()=>_(t):void 0,content:(0,L.jsxDEV)(An,{fields:u,row:e,editing:v,onChange:(n,r)=>g(t,{...e,[n]:r}),recordCtx:r},void 0,!1,{fileName:xg,lineNumber:114,columnNumber:19},this)},void 0,!1,{fileName:xg,lineNumber:106,columnNumber:15},this)},h(e),!1,{fileName:xg,lineNumber:105,columnNumber:13},this))},void 0,!1,{fileName:xg,lineNumber:101,columnNumber:7},this),b&&(0,L.jsxDEV)(Ft,{onClick:()=>p.onChange([...m,{}]),children:o(`form.addRow`)},void 0,!1,{fileName:xg,lineNumber:127,columnNumber:20},this),(0,L.jsxDEV)(gn,{slots:f},void 0,!1,{fileName:xg,lineNumber:128,columnNumber:7},this)]},void 0,!0,{fileName:xg,lineNumber:100,columnNumber:5},this);return i===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(s)} flex flex-col gap-1 min-w-0`,children:[(0,L.jsxDEV)(qe,{as:`h3`,label:o(e.label),count:m.length,actions:!y&&p.actions},void 0,!1,{fileName:xg,lineNumber:140,columnNumber:7},this),(0,L.jsxDEV)(xt,{depth:s+1,children:w},void 0,!1,{fileName:xg,lineNumber:141,columnNumber:7},this)]},void 0,!0,{fileName:xg,lineNumber:139,columnNumber:5},this):w}var Cg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/two-cell-group.tsx`;function wg(e,t){return{kind:t,label:``,required:!1,prim:t,column:`text`,hints:{},parts:e.fields.map(e=>{let t=e;return{role:t.key,key:t.key,meta:t.type,mode:t.type.derived?`computedStored`:`stored`,overridden:!1}})}}function Tg(e){let{RowEdit:t,RowLive:n,Body:r}=e;return function({el:i,value:o,mode:s}){let{t:c}=a(),l=Un(),{write:u}=ce(),d=i,f=wg(d,e.kind),p=Xh(s,o,u),m=Array.isArray(p.value)?p.value:[],h=p.mode!==`view`,g=E()&&s===`view`,_=h||g,{rowId:v,updateRow:y,removeRow:b}=$e(m,p.onChange),x=(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col ${e.rowGap}`,"data-testid":e.testid,children:[m.map((e,i)=>(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[h?(0,L.jsxDEV)(t,{meta:f,row:e,onChange:e=>y(i,e)},void 0,!1,{fileName:Cg,lineNumber:122,columnNumber:15},this):g?(0,L.jsxDEV)(n,{meta:f,row:e,onChange:e=>y(i,e)},void 0,!1,{fileName:Cg,lineNumber:124,columnNumber:15},this):(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(r,{field:f,value:e},void 0,!1,{fileName:Cg,lineNumber:127,columnNumber:17},this)},void 0,!1,{fileName:Cg,lineNumber:126,columnNumber:15},this),_&&(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,onClick:()=>b(i),title:c(`actions.delete`),className:`h-5 w-5 shrink-0 rounded text-muted hover:text-danger`,children:(0,L.jsxDEV)(ur,{size:12},void 0,!1,{fileName:Cg,lineNumber:139,columnNumber:17},this)},void 0,!1,{fileName:Cg,lineNumber:131,columnNumber:15},this)]},v(e),!0,{fileName:Cg,lineNumber:120,columnNumber:11},this)),_&&(0,L.jsxDEV)(Ft,{onClick:()=>p.onChange([...m,{}]),children:c(`form.addRow`)},void 0,!1,{fileName:Cg,lineNumber:144,columnNumber:22},this)]},void 0,!0,{fileName:Cg,lineNumber:118,columnNumber:7},this);return s===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(l)} flex min-w-0 flex-col gap-1`,children:[(0,L.jsxDEV)(qe,{as:`h3`,label:c(d.label),count:m.length},void 0,!1,{fileName:Cg,lineNumber:157,columnNumber:9},this),(0,L.jsxDEV)(xt,{depth:l+1,children:x},void 0,!1,{fileName:Cg,lineNumber:158,columnNumber:9},this)]},void 0,!0,{fileName:Cg,lineNumber:156,columnNumber:7},this):x}}var Eg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/illustrated-group.tsx`;function Dg({meta:e,row:t,onChange:n}){let{tKey:r,iKey:i}=wm(e),{width:a}=Em(e),o=Dm(e),s=t[r],c=t[i],l=e.parts?.find(e=>e.role===`text`),u=l!=null&&l.mode!==`stored`,d=e.parts?.find(e=>e.role===`image`),f=d!=null&&d.mode!==`stored`,p=c!=null&&c!==``?un(c)[0]:void 0;return(0,L.jsxDEV)(`div`,{className:`flex flex-1 flex-col gap-3 min-w-0`,children:[f?(0,L.jsxDEV)(`div`,{className:`text-sm text-muted`,children:p?(0,L.jsxDEV)(km,{name:p.name,width:a,kind:o},void 0,!1,{fileName:Eg,lineNumber:52,columnNumber:18},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Eg,lineNumber:52,columnNumber:85},this)},void 0,!1,{fileName:Eg,lineNumber:51,columnNumber:9},this):(0,L.jsxDEV)(et,{value:c??``,onChange:e=>n({...t,[i]:bn(e)}),width:a,poster:o===`poster`},void 0,!1,{fileName:Eg,lineNumber:55,columnNumber:9},this),u?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted whitespace-pre-wrap`,children:s!=null&&s!==``?String(s):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Eg,lineNumber:64,columnNumber:57},this)},void 0,!1,{fileName:Eg,lineNumber:63,columnNumber:9},this):(0,L.jsxDEV)(pi,{value:s==null?``:String(s),onChange:e=>n({...t,[r]:bn(e.target.value)})},void 0,!1,{fileName:Eg,lineNumber:67,columnNumber:9},this)]},void 0,!0,{fileName:Eg,lineNumber:49,columnNumber:5},this)}function Og({meta:e,row:t,onChange:n}){let{tKey:r,iKey:i}=wm(e),{width:a,side:o}=Em(e),s=Dm(e),c=t[r],l=t[i],u=e.parts?.find(e=>e.role===`text`),d=u!=null&&u.mode!==`stored`,f=e.parts?.find(e=>e.role===`image`),p=f!=null&&f.mode!==`stored`;return(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(Am,{width:a,side:o,picture:(0,L.jsxDEV)(Nm,{image:l,fixed:p,width:a,kind:s,onChange:p?void 0:e=>n({...t,[i]:bn(e)})},void 0,!1,{fileName:Eg,lineNumber:102,columnNumber:11},this),prose:(0,L.jsxDEV)(Pm,{text:c,fixed:d,meta:u?.meta??e,onChange:d?void 0:e=>n({...t,[r]:bn(e)})},void 0,!1,{fileName:Eg,lineNumber:111,columnNumber:11},this)},void 0,!1,{fileName:Eg,lineNumber:98,columnNumber:7},this)},void 0,!1,{fileName:Eg,lineNumber:95,columnNumber:5},this)}j({kinds:[`illustratedList`],layout:`block`,Page:Tg({kind:`illustrated`,testid:`illustrated-list`,rowGap:`gap-4`,RowEdit:Dg,RowLive:Og,Body:jm}),editor:`own`});var kg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/attachment-group.tsx`;function Ag({meta:e,row:t,onChange:n}){let{lKey:r,fKey:i}=th(e),a=rh(e),o=t[r],s=t[i],c=ih(e,`label`),l=ih(e,`file`);return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[c?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted`,children:o!=null&&o!==``?String(o):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:kg,lineNumber:46,columnNumber:96},this)},void 0,!1,{fileName:kg,lineNumber:46,columnNumber:9},this):(0,L.jsxDEV)(P,{value:o==null?``:String(o),onChange:e=>n({...t,[r]:bn(e.target.value)})},void 0,!1,{fileName:kg,lineNumber:48,columnNumber:9},this),l?(0,L.jsxDEV)(Qm,{kind:a,value:s??``},void 0,!1,{fileName:kg,lineNumber:54,columnNumber:9},this):(0,L.jsxDEV)(Ym,{kind:a,value:s??``,onChange:e=>n({...t,[i]:bn(e)})},void 0,!1,{fileName:kg,lineNumber:56,columnNumber:9},this)]},void 0,!0,{fileName:kg,lineNumber:44,columnNumber:5},this)}function jg({meta:e,row:t,onChange:n}){let{lKey:r,fKey:i}=th(e),a=rh(e),o=t[r],s=t[i],c=e.parts?.find(e=>e.role===`label`),l=ih(e,`label`),u=ih(e,`file`);return(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(ah,{name:(0,L.jsxDEV)(lh,{label:o,fixed:l,meta:c?.meta??e,onChange:l?void 0:e=>n({...t,[r]:bn(e)})},void 0,!1,{fileName:kg,lineNumber:87,columnNumber:11},this),file:(0,L.jsxDEV)(ch,{file:s,fixed:u,kind:a,onChange:u?void 0:e=>n({...t,[i]:bn(e)})},void 0,!1,{fileName:kg,lineNumber:95,columnNumber:11},this)},void 0,!1,{fileName:kg,lineNumber:85,columnNumber:7},this)},void 0,!1,{fileName:kg,lineNumber:82,columnNumber:5},this)}j({kinds:[`attachmentList`],layout:`block`,Page:Tg({kind:`attachment`,testid:`attachment-list`,rowGap:`gap-3`,RowEdit:Ag,RowLive:jg,Body:sh}),editor:`own`});var Mg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group-widgets.tsx`;function Ng({el:e,value:t,mode:n,bare:r}){let{t:i}=a(),{write:o}=ce(),s=e,c=(0,L.jsxDEV)(vg,{group:s,value:t,onChange:e=>void o(e),mode:n},void 0,!1,{fileName:Mg,lineNumber:28,columnNumber:18},this);return r?c:(0,L.jsxDEV)(`div`,{className:`group/field flex flex-col min-w-0 ${Cn}`,children:[s.label&&(0,L.jsxDEV)(ht,{label:i(s.label)},void 0,!1,{fileName:Mg,lineNumber:34,columnNumber:23},this),c]},void 0,!0,{fileName:Mg,lineNumber:33,columnNumber:5},this)}var Pg={kind:`url`,prim:`text`,column:`text`,label:``,required:!1,hints:{}};function Fg({el:e,value:t,mode:n,bare:r}){let{t:i}=a(),o=ce(),s=e,c=E(),l=(e,t,n)=>(0,L.jsxDEV)(bg,{value:t,onChange:e=>n(e),mode:e},void 0,!1,{fileName:Mg,lineNumber:61,columnNumber:5},this);return r?l(n===`view`?`view`:`edit`,t,e=>void o.write(e)):c&&o.writable?(0,L.jsxDEV)(Yn,{field:Pg,value:t,label:s.label?i(s.label):void 0,geom:`none`,width:`w-full`,view:e=>l(`view`,e,()=>{}),edit:(e,t)=>l(`edit`,e,t),onCommit:o.write},void 0,!1,{fileName:Mg,lineNumber:66,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`group/field flex flex-col min-w-0 ${Cn}`,children:[s.label&&(0,L.jsxDEV)(ht,{label:i(s.label)},void 0,!1,{fileName:Mg,lineNumber:81,columnNumber:23},this),l(n===`view`?`view`:`edit`,t,e=>void o.write(e))]},void 0,!0,{fileName:Mg,lineNumber:80,columnNumber:5},this)}function Ig({el:e,value:t,recordCtx:n,mode:r}){let{write:i}=ce();return(0,L.jsxDEV)(Sg,{group:e,value:t,onChange:e=>void i(e),recordCtx:n,mode:r},void 0,!1,{fileName:Mg,lineNumber:90,columnNumber:5},this)}j({kinds:[`per-weekday`],layout:`block`,Page:Ng,editor:`own`}),j({kinds:[`url`],layout:`block`,Page:Fg,activate:`value`}),j({kinds:[`checklist`],layout:`block`,Page:Ig,editor:`own`});var Lg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/actions/TemplateHost.tsx`,Rg=new Map;function zg(e){let t=Hn(e);if(!t)return null;let n=Rg.get(e);return n||(n=(0,I.lazy)(t),Rg.set(e,n)),n}var Bg=class extends I.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}};function Vg({name:e,data:t}){let{t:n}=a(),r=(0,L.jsxDEV)(L.Fragment,{children:n(`actions.notice`)},void 0,!1,{fileName:Lg,lineNumber:33,columnNumber:20},this),i=zg(e);return i?(0,L.jsxDEV)(Bg,{fallback:r,children:(0,L.jsxDEV)(I.Suspense,{fallback:(0,L.jsxDEV)(ve,{},void 0,!1,{fileName:Lg,lineNumber:41,columnNumber:27},this),children:(0,L.jsxDEV)(i,{data:t,t:n},void 0,!1,{fileName:Lg,lineNumber:42,columnNumber:9},this)},void 0,!1,{fileName:Lg,lineNumber:41,columnNumber:7},this)},void 0,!1,{fileName:Lg,lineNumber:40,columnNumber:5},this):(console.warn(`[template] unknown '${e}'`),r)}var Hg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/actions/PopupBody.tsx`;function Ug({ui:e}){let{t}=a();return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(an,{children:e.title?t(e.title,e.params):t(`actions.notice`)},void 0,!1,{fileName:Hg,lineNumber:11,columnNumber:7},this),e.component?(0,L.jsxDEV)(Vg,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Hg,lineNumber:13,columnNumber:9},this):(0,L.jsxDEV)(wn,{children:t(e.message??``,e.params)},void 0,!1,{fileName:Hg,lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:Hg,lineNumber:10,columnNumber:5},this)}var Wg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/layout-elements.tsx`;function Gg({el:e}){let t=e?.label;return t?(0,L.jsxDEV)(xe,{label:t},void 0,!1,{fileName:Wg,lineNumber:29,columnNumber:18},this):(0,L.jsxDEV)(`hr`,{className:`border-border`},void 0,!1,{fileName:Wg,lineNumber:29,columnNumber:54},this)}function Kg({el:e}){return(0,L.jsxDEV)(`div`,{className:`rounded-lg border border-border bg-elevated px-4 py-3 text-sm text-text`,children:(0,L.jsxDEV)(hr,{value:y(e.text)},void 0,!1,{fileName:Wg,lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:Wg,lineNumber:35,columnNumber:5},this)}function qg(e){let{t}=a(),n=e.el,r=e.recordCtx,[i,o]=(0,I.useState)(!1),[s,c]=(0,I.useState)(null),l=e=>{if(e.kind===`popup`){c(e);return}let n=e.component?(0,L.jsxDEV)(Vg,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Wg,lineNumber:54,columnNumber:7},this):t(e.message??``,e.params);e.variant===`success`?Lt.success(n):e.variant===`error`?Lt.error(n):Lt(n)};return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,L.jsxDEV)(F,{variant:n.variant??`outline`,onClick:async()=>{let e=Pl(n.value);if(!e){Lt.error(t(`actions.actionNotFound`));return}o(!0);try{let n=await e({library:r.library,shelf:r.shelf,recordId:r.recordId??``});n?l(n):Lt.success(t(`actions.actionSuccess`))}catch(e){let n=e.ui;n?l(n):Lt.error(e instanceof Error?e.message:t(`actions.actionError`))}finally{o(!1)}},disabled:i,className:`max-w-full min-w-0`,children:[i?(0,L.jsxDEV)(ve,{},void 0,!1,{fileName:Wg,lineNumber:86,columnNumber:20},this):n.icon&&(0,L.jsxDEV)(rr,{name:n.icon,size:16},void 0,!1,{fileName:Wg,lineNumber:86,columnNumber:45},this),(0,L.jsxDEV)(`span`,{className:`truncate`,children:t(n.label)},void 0,!1,{fileName:Wg,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:Wg,lineNumber:85,columnNumber:7},this),(0,L.jsxDEV)(b,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,L.jsxDEV)(Jn,{children:(0,L.jsxDEV)(zn,{children:s&&(0,L.jsxDEV)(Ug,{ui:s},void 0,!1,{fileName:Wg,lineNumber:91,columnNumber:35},this)},void 0,!1,{fileName:Wg,lineNumber:91,columnNumber:11},this)},void 0,!1,{fileName:Wg,lineNumber:90,columnNumber:9},this)},void 0,!1,{fileName:Wg,lineNumber:89,columnNumber:7},this)]},void 0,!0,{fileName:Wg,lineNumber:84,columnNumber:5},this)}function Jg({el:e,children:t}){let{t:n}=a(),r=e;return(0,L.jsxDEV)(Je,{label:r.label?n(r.label):void 0,icon:rn(r),children:t},void 0,!1,{fileName:Wg,lineNumber:105,columnNumber:5},this)}j({kinds:[`divider`],layout:`block`,Page:Gg}),j({kinds:[`info`],layout:`block`,Page:Kg}),j({kinds:[`button`],layout:`scalar`,Page:qg}),j({kinds:[`group`],layout:`block`,Page:Jg,editor:`own`});var Yg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/tristate.tsx`,Xg={unknown:`yes`,yes:`no`,no:`unknown`},Zg={yes:!0,no:!1,unknown:`indeterminate`},Qg=[`yes`,`no`,`unknown`];function $g({value:e,onChange:t,label:n}){let{saving:r}=Xt(),i=e||`unknown`;return(0,L.jsxDEV)(Oi,{checked:Zg[i],disabled:r,onCheckedChange:()=>t?.(Xg[i]),"aria-label":n,className:ci(`peer h-4.5 w-4.5 shrink-0 rounded border border-border bg-bg transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`data-[state=checked]:border-accent data-[state=checked]:text-accent`,`data-[state=indeterminate]:border-accent data-[state=indeterminate]:text-accent`),children:(0,L.jsxDEV)(Di,{className:`flex items-center justify-center text-current`,children:i===`yes`?(0,L.jsxDEV)(li,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:Yg,lineNumber:43,columnNumber:11},this):(0,L.jsxDEV)(wi,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:Yg,lineNumber:45,columnNumber:11},this)},void 0,!1,{fileName:Yg,lineNumber:41,columnNumber:7},this)},void 0,!1,{fileName:Yg,lineNumber:29,columnNumber:5},this)}function e_({value:e}){let t=String(e||`unknown`)??`unknown`;return(0,L.jsxDEV)(r_[t]??wi,{size:16,className:t===`yes`?`text-success`:t===`no`?`text-danger`:`text-muted`},void 0,!1,{fileName:Yg,lineNumber:59,columnNumber:10},this)}function t_({draft:e,save:t}){let{t:n}=a();return(0,L.jsxDEV)(gr,{options:Qg.map(e=>({value:e,title:n(`triState.${e}`)})),value:String(e||`unknown`),multiple:!1,literal:!0,search:!1,onPick:e=>t(e)},void 0,!1,{fileName:Yg,lineNumber:70,columnNumber:5},this)}function n_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(e_,{field:e.field,value:t},void 0,!1,{fileName:Yg,lineNumber:93,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)($g,{value:String(t??``),onChange:n,label:e.label},void 0,!1,{fileName:Yg,lineNumber:94,columnNumber:30},this)},void 0,!1,{fileName:Yg,lineNumber:83,columnNumber:5},this)}var r_={yes:li,unknown:wi,no:mi};function i_({value:e}){let t=String(e??`unknown`);return(0,L.jsxDEV)(r_[t]??wi,{size:16,className:t===`yes`?`text-success`:t===`no`?`text-danger`:`text-muted`},void 0,!1,{fileName:Yg,lineNumber:107,columnNumber:10},this)}j({kinds:[`triState`],Page:n_,Inline:i_,Value:e_,Picker:t_,pickerCommits:!0});var a_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/stepper.tsx`;function o_(e,t){let n=String(t??``),r=jn(e);if(!r.length)return{state:`unlisted`,value:n};if(n===``)return{state:`empty`};let i=r.findIndex(e=>e.value===n);return i===-1?{state:`unknown`,value:n}:{state:`reached`,index:i}}function s_({value:e}){let{t}=a();return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 flex-wrap items-center gap-1.5 text-danger`,"data-testid":`stepper-unknown`,children:[(0,L.jsxDEV)(rr,{name:`lucide:alert-triangle`,size:14,className:`shrink-0`},void 0,!1,{fileName:a_,lineNumber:77,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-pre font-mono text-[13px]`,children:e},void 0,!1,{fileName:a_,lineNumber:78,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`text-xs`,children:t(`form.unknownStage`,`Stage not in the list`)},void 0,!1,{fileName:a_,lineNumber:79,columnNumber:7},this)]},void 0,!0,{fileName:a_,lineNumber:76,columnNumber:5},this)}function c_({value:e}){return e===``?(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:a_,lineNumber:90,columnNumber:28},this):(0,L.jsxDEV)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-pre align-bottom`,"data-testid":`stepper-unlisted`,children:e},void 0,!1,{fileName:a_,lineNumber:92,columnNumber:5},this)}function l_({field:e,value:t}){let{t:n}=a(),r=o_(e,t);if(r.state===`unlisted`)return(0,L.jsxDEV)(c_,{value:r.value},void 0,!1,{fileName:a_,lineNumber:109,columnNumber:38},this);if(r.state===`unknown`)return(0,L.jsxDEV)(s_,{value:r.value},void 0,!1,{fileName:a_,lineNumber:110,columnNumber:37},this);let i=jn(e),o=r.state===`reached`?r.index:-1;return(0,L.jsxDEV)(`ol`,{className:`flex min-w-0 flex-wrap items-center gap-x-1 gap-y-1.5`,"data-testid":`stepper-rail`,children:i.map((e,t)=>{let r=t<o?`passed`:t===o?`current`:`remaining`;return(0,L.jsxDEV)(`li`,{className:`flex min-w-0 items-center gap-1`,children:[t>0&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`h-px w-2 shrink-0 bg-border`},void 0,!1,{fileName:a_,lineNumber:119,columnNumber:23},this),(0,L.jsxDEV)(`span`,{"data-testid":`stepper-stage-${r}`,"data-stage":e.value,className:ci(`min-w-0 truncate rounded-full border px-2 py-0.5 text-[11px] leading-4`,r===`passed`&&`border-accent text-accent`,r===`current`&&`border-accent text-accent font-semibold ring-1 ring-accent`,r===`remaining`&&`border-border text-muted`),children:n(e.title)},void 0,!1,{fileName:a_,lineNumber:120,columnNumber:13},this)]},e.value,!0,{fileName:a_,lineNumber:118,columnNumber:11},this)})},void 0,!1,{fileName:a_,lineNumber:114,columnNumber:5},this)}function u_({field:e,value:t}){let n=o_(e,t);return n.state===`unknown`?(0,L.jsxDEV)(s_,{value:n.value},void 0,!1,{fileName:a_,lineNumber:151,columnNumber:37},this):(0,L.jsxDEV)(on,{field:e,value:t},void 0,!1,{fileName:a_,lineNumber:152,columnNumber:10},this)}function d_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,L.jsxDEV)(l_,{field:e.field,value:t},void 0,!1,{fileName:a_,lineNumber:167,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Bn,{field:e.field,value:t,onChange:n,offered:e.selectOptions},void 0,!1,{fileName:a_,lineNumber:169,columnNumber:9},this)},void 0,!1,{fileName:a_,lineNumber:157,columnNumber:5},this)}function f_({field:e,value:t}){let{t:n}=a(),r=o_(e,t);if(r.state===`unlisted`)return(0,L.jsxDEV)(c_,{value:r.value},void 0,!1,{fileName:a_,lineNumber:185,columnNumber:38},this);if(r.state===`empty`)return(0,L.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:a_,lineNumber:186,columnNumber:35},this);if(r.state===`unknown`)return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1 text-danger`,"data-testid":`stepper-inline-unknown`,children:[(0,L.jsxDEV)(rr,{name:`lucide:alert-triangle`,size:13,className:`shrink-0`},void 0,!1,{fileName:a_,lineNumber:190,columnNumber:9},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-pre font-mono`,children:r.value},void 0,!1,{fileName:a_,lineNumber:191,columnNumber:9},this)]},void 0,!0,{fileName:a_,lineNumber:189,columnNumber:7},this);let i=jn(e).length;return(0,L.jsxDEV)(`span`,{className:`truncate`,children:[Yt(n,e,t),` `,(0,L.jsxDEV)(`span`,{className:`text-muted text-xs`,children:`${r.index+1}/${i}`},void 0,!1,{fileName:a_,lineNumber:197,columnNumber:38},this)]},void 0,!0,{fileName:a_,lineNumber:196,columnNumber:5},this)}function p_(e,t,n){if(e==null||e===``)return[];let r=o_(t,e),i=String(e),a=Yt(n.t,t,i);return[{value:i,rawValue:e,label:a,sort:r.state===`reached`?String(r.index).padStart(3,`0`):r.state===`unlisted`?a:`999${i}`}]}j({kinds:[`stepper`],layout:`block`,Page:d_,Inline:f_,Value:u_,editor:`popover`,keys:p_});var m_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/money.tsx`;function h_(e){let t=e.hints.currencyValue;return typeof t==`string`&&t?t:void 0}function g_(e,t){if(e==null||e===``||Number.isNaN(Number(e)))return``;let n=Number(e);if(!t)return new Intl.NumberFormat(void 0,{maximumFractionDigits:2}).format(n);try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(n)}catch{return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:2}).format(n)} ${Fi(t)}`}}function __({value:e,field:t}){let n=g_(e,h_(t));return n?(0,L.jsxDEV)(`span`,{children:n},void 0,!1,{fileName:m_,lineNumber:46,columnNumber:14},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:m_,lineNumber:46,columnNumber:33},this)}function v_({field:e,value:t,onChange:n}){let r=h_(e);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,L.jsxDEV)(Tp,{customInput:P,className:`flex-1 min-w-0`,value:t==null||t===``?``:Number(t),thousandSeparator:!0,decimalScale:2,min:e.hints.min,max:e.hints.max,placeholder:`0.00`,onValueChange:e=>n(e.value===``?``:e.floatValue??``)},void 0,!1,{fileName:m_,lineNumber:53,columnNumber:7},this),r&&(0,L.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,children:Fi(r)},void 0,!1,{fileName:m_,lineNumber:64,columnNumber:15},this)]},void 0,!0,{fileName:m_,lineNumber:52,columnNumber:5},this)}function y_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,L.jsxDEV)(__,{value:t,field:e.field},void 0,!1,{fileName:m_,lineNumber:81,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(v_,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:m_,lineNumber:83,columnNumber:9},this)},void 0,!1,{fileName:m_,lineNumber:71,columnNumber:5},this)}function b_({value:e,field:t}){return(0,L.jsxDEV)(__,{value:e,field:t},void 0,!1,{fileName:m_,lineNumber:90,columnNumber:10},this)}j({kinds:[`money`],Page:y_,Inline:b_});var x_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/range.tsx`;function S_(e){let t=Mr(e.parts??[]);return{fromKey:t.from??`from`,toKey:t.to??`to`}}function C_(e,t){let{fromKey:n,toKey:r}=S_(t),i=e&&typeof e==`object`?e:(()=>{try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:null}catch{return null}})();return i?{from:i[n],to:i[r]}:{}}function w_({field:e,value:t,onChange:n}){let r=(0,I.useMemo)(()=>C_(t,e),[t,e]),i=e.hints,a=e=>e===``?void 0:Number(e),{fromKey:o,toKey:s}=S_(e),c=e.parts?.find(e=>e.role===`from`),l=c!=null&&c.mode!==`stored`,u=e.parts?.find(e=>e.role===`to`),d=u!=null&&u.mode!==`stored`,f=e=>n(e.from==null&&e.to==null?``:{[o]:e.from,[s]:e.to});return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[l?(0,L.jsxDEV)(`div`,{className:`flex flex-1 min-w-0 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:r.from??(0,L.jsxDEV)(O,{},void 0,!1,{fileName:x_,lineNumber:76,columnNumber:22},this)},void 0,!1,{fileName:x_,lineNumber:75,columnNumber:9},this):(0,L.jsxDEV)(P,{type:`number`,className:`flex-1 min-w-0`,placeholder:`від`,value:r.from??``,min:i.min,max:i.max,step:i.step,onChange:e=>f({from:a(e.target.value),to:r.to})},void 0,!1,{fileName:x_,lineNumber:79,columnNumber:9},this),(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`–`},void 0,!1,{fileName:x_,lineNumber:90,columnNumber:7},this),d?(0,L.jsxDEV)(`div`,{className:`flex flex-1 min-w-0 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:r.to??(0,L.jsxDEV)(O,{},void 0,!1,{fileName:x_,lineNumber:93,columnNumber:20},this)},void 0,!1,{fileName:x_,lineNumber:92,columnNumber:9},this):(0,L.jsxDEV)(P,{type:`number`,className:`flex-1 min-w-0`,placeholder:`до`,value:r.to??``,min:i.min,max:i.max,step:i.step,onChange:e=>f({from:r.from,to:a(e.target.value)})},void 0,!1,{fileName:x_,lineNumber:96,columnNumber:9},this)]},void 0,!0,{fileName:x_,lineNumber:73,columnNumber:5},this)}function T_({value:e,field:t}){let n=C_(e,t);return n.from==null&&n.to==null?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:x_,lineNumber:113,columnNumber:46},this):(0,L.jsxDEV)(`span`,{children:[n.from??`…`,`–`,n.to??`…`]},void 0,!0,{fileName:x_,lineNumber:118,columnNumber:5},this)}function E_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:t=>(0,L.jsxDEV)(T_,{value:t,field:e.field},void 0,!1,{fileName:x_,lineNumber:136,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(w_,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:x_,lineNumber:138,columnNumber:9},this)},void 0,!1,{fileName:x_,lineNumber:126,columnNumber:5},this)}function D_({value:e,field:t}){return(0,L.jsxDEV)(T_,{value:e,field:t},void 0,!1,{fileName:x_,lineNumber:145,columnNumber:10},this)}j({kinds:[`numberRange`,`realRange`],Page:E_,Inline:D_});var O_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/source.tsx`;function k_(e,t){return`${(e??``).trim().toLowerCase().replace(/[^\p{L}\p{N}.-]+/gu,`-`).replace(/^-+|-+$/g,``)||`file`}.${t}`}function A_(e,t,n){let r=e.hints.fileName;return typeof r==`string`&&r!==``?`${r}.${n}`:k_(t,n)}function j_(e){return typeof e==`string`?e:``}function M_({field:e,label:t,value:n,onChange:r}){let{t:i}=a(),[o,s]=(0,I.useState)(!1),c=e.hints.ext??`txt`,l=A_(e,t??e.label,c),u=j_(n),d=u.length>0,f=async e=>{if(e){s(!0);try{let t=await e.text();await r?.(t)}finally{s(!1)}}};return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border px-3 py-2`,children:[d?(0,L.jsxDEV)(wl,{size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:O_,lineNumber:103,columnNumber:11},this):(0,L.jsxDEV)(Tl,{size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:O_,lineNumber:105,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:d?l:i(`source.empty`)},void 0,!1,{fileName:O_,lineNumber:107,columnNumber:9},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:!d,onClick:()=>{let e=URL.createObjectURL(new Blob([u],{type:`text/plain;charset=utf-8`})),t=document.createElement(`a`);t.href=e,t.download=l,t.click(),setTimeout(()=>URL.revokeObjectURL(e),0)},title:i(`source.download`),"aria-label":i(`source.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:O_,lineNumber:117,columnNumber:11},this)},void 0,!1,{fileName:O_,lineNumber:108,columnNumber:9},this)]},void 0,!0,{fileName:O_,lineNumber:101,columnNumber:7},this),(0,L.jsxDEV)(Bt,{accept:`.${c},text/*`,busy:o,error:null,onPick:e=>void f(e),compact:!0},void 0,!1,{fileName:O_,lineNumber:120,columnNumber:7},this)]},void 0,!0,{fileName:O_,lineNumber:100,columnNumber:5},this)}function N_(e){let t=(t,n)=>(0,L.jsxDEV)(M_,{field:e.field,label:e.label,value:t,onChange:n},void 0,!1,{fileName:O_,lineNumber:127,columnNumber:5},this);return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,bare:e.bare,view:(e,n)=>t(e,n),edit:(e,n)=>t(e,n)},void 0,!1,{fileName:O_,lineNumber:130,columnNumber:5},this)}function P_({field:e,value:t}){let{t:n}=a(),r=e.hints.ext??`txt`;return j_(t)?(0,L.jsxDEV)(`span`,{className:`truncate font-mono text-xs`,children:A_(e,n(e.label),r)},void 0,!1,{fileName:O_,lineNumber:152,columnNumber:10},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:O_,lineNumber:151,columnNumber:30},this)}j({kinds:[`source`],layout:`scalar`,Page:N_,Inline:P_});var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/embed.tsx`;function F_(e){let t=e=>!!e&&typeof e==`object`&&typeof e.url==`string`;if(Array.isArray(e))return e.filter(t);if(t(e))return[e];try{let n=JSON.parse(String(e??``));return Array.isArray(n)?n.filter(t):t(n)?[n]:[]}catch{return[]}}var I_=e=>(e.type===`video`||e.type===`rich`)&&!!e.html;function L_(e){try{return new URL(e).hostname}catch{return e}}function R_(e){try{let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return e}catch{}}function z_({rec:e,onOpen:t,onRemove:n}){return(0,L.jsxDEV)(`div`,{className:`group relative @container`,children:[(0,L.jsxDEV)(`button`,{type:`button`,onClick:t,className:`flex w-full items-center gap-2 overflow-hidden rounded-lg border border-border text-left @[20rem]:flex-col @[20rem]:items-stretch @[20rem]:gap-0`,children:[(0,L.jsxDEV)(`div`,{className:`relative aspect-video w-20 shrink-0 bg-elevated @[20rem]:w-full`,children:[e.thumbnail?(0,L.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:68,columnNumber:13},this):(0,L.jsxDEV)(Dl,{className:`absolute inset-0 m-auto text-muted`,size:20},void 0,!1,{fileName:J,lineNumber:70,columnNumber:13},this),I_(e)&&(0,L.jsxDEV)(`span`,{className:`absolute inset-0 m-auto flex h-8 w-8 items-center justify-center rounded-full bg-black/60 text-white`,children:(0,L.jsxDEV)(Ve,{size:16},void 0,!1,{fileName:J,lineNumber:74,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:73,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:66,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 px-2 py-2`,children:[(0,L.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:e.title??e.url},void 0,!1,{fileName:J,lineNumber:79,columnNumber:11},this),e.provider&&(0,L.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.provider},void 0,!1,{fileName:J,lineNumber:80,columnNumber:28},this)]},void 0,!0,{fileName:J,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:61,columnNumber:7},this),n&&(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,className:`absolute right-1 top-1 text-muted opacity-0 hover:text-danger group-hover:opacity-100`,onClick:n,children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:J,lineNumber:91,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:60,columnNumber:5},this)}function B_({rec:e}){let t=e.title||L_(e.url),n=R_(e.url),r=`group flex items-center gap-2 overflow-hidden rounded-lg border border-border bg-elevated px-3 py-2 transition-colors hover:bg-elevated`,i=(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`shrink-0 text-muted group-hover:text-text`,children:I_(e)?(0,L.jsxDEV)(Ve,{size:16},void 0,!1,{fileName:J,lineNumber:107,columnNumber:26},this):(0,L.jsxDEV)(Dl,{size:16},void 0,!1,{fileName:J,lineNumber:107,columnNumber:47},this)},void 0,!1,{fileName:J,lineNumber:106,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:t},void 0,!1,{fileName:J,lineNumber:110,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.url},void 0,!1,{fileName:J,lineNumber:111,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:109,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:105,columnNumber:5},this);return n?(0,L.jsxDEV)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:r,children:i},void 0,!1,{fileName:J,lineNumber:117,columnNumber:5},this):(0,L.jsxDEV)(`div`,{className:r,children:i},void 0,!1,{fileName:J,lineNumber:121,columnNumber:5},this)}function V_({rec:e,onClose:t}){let{t:n}=a(),r=R_(e.url);return(0,L.jsxDEV)(b,{open:!0,onOpenChange:e=>!e&&t(),children:(0,L.jsxDEV)(Jn,{className:`max-w-2xl`,children:[(0,L.jsxDEV)(an,{className:`truncate`,children:e.title??e.url},void 0,!1,{fileName:J,lineNumber:132,columnNumber:9},this),I_(e)?(0,L.jsxDEV)(`iframe`,{title:e.title??`embed`,srcDoc:e.html,sandbox:`allow-scripts allow-presentation`,allowFullScreen:!0,className:`aspect-video w-full rounded-md border-0`},void 0,!1,{fileName:J,lineNumber:134,columnNumber:11},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[e.thumbnail&&(0,L.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`w-full rounded-md`},void 0,!1,{fileName:J,lineNumber:143,columnNumber:31},this),e.description&&(0,L.jsxDEV)(`p`,{className:`text-sm text-muted`,children:e.description},void 0,!1,{fileName:J,lineNumber:144,columnNumber:33},this)]},void 0,!0,{fileName:J,lineNumber:142,columnNumber:11},this),r&&(0,L.jsxDEV)(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`,children:(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,className:`w-full`,children:[(0,L.jsxDEV)(xl,{size:15},void 0,!1,{fileName:J,lineNumber:150,columnNumber:15},this),` `,n(`embed.open`)]},void 0,!0,{fileName:J,lineNumber:149,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:131,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:130,columnNumber:5},this)}function H_({value:e,onChange:t,multiple:n}){let{t:r}=a(),i=F_(e),[o,s]=(0,I.useState)(null),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(!1),[f,p]=(0,I.useState)(!1),m=e=>t?.(e.length?e:``);async function h(){if(u||!c.trim())return;d(!0),p(!1);let e=await bt(c.trim());if(d(!1),!e)return p(!0);m([...i,e]),l(``)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[t?(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-2 @md:grid-cols-2 @2xl:grid-cols-3`,children:i.map((e,t)=>(0,L.jsxDEV)(z_,{rec:e,onOpen:()=>s(e),onRemove:()=>m(i.filter((e,n)=>n!==t))},`${e.url}-${t}`,!1,{fileName:J,lineNumber:196,columnNumber:13},this))},void 0,!1,{fileName:J,lineNumber:194,columnNumber:9},this):i.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:i.map((e,t)=>(0,L.jsxDEV)(B_,{rec:e},`${e.url}-${t}`,!1,{fileName:J,lineNumber:209,columnNumber:15},this))},void 0,!1,{fileName:J,lineNumber:207,columnNumber:11},this),t&&(n||i.length===0)&&(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,L.jsxDEV)(P,{value:c,placeholder:r(`embed.pastePlaceholder`),onChange:e=>l(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),h())},void 0,!1,{fileName:J,lineNumber:217,columnNumber:13},this),(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,disabled:u||!c.trim(),onClick:h,children:u?`…`:`+`},void 0,!1,{fileName:J,lineNumber:223,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:216,columnNumber:11},this),f&&(0,L.jsxDEV)(`span`,{className:`text-xs text-danger`,children:r(`embed.resolveFailed`)},void 0,!1,{fileName:J,lineNumber:227,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:215,columnNumber:9},this),o&&(0,L.jsxDEV)(V_,{rec:o,onClose:()=>s(null)},void 0,!1,{fileName:J,lineNumber:230,columnNumber:16},this)]},void 0,!0,{fileName:J,lineNumber:191,columnNumber:5},this)}function U_(e){let t=e.field.hints.multiple===!0;return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:e=>(0,L.jsxDEV)(H_,{value:e,multiple:t},void 0,!1,{fileName:J,lineNumber:253,columnNumber:20},this),edit:(e,n)=>(0,L.jsxDEV)(H_,{value:e,onChange:n,multiple:t},void 0,!1,{fileName:J,lineNumber:255,columnNumber:9},this)},void 0,!1,{fileName:J,lineNumber:243,columnNumber:5},this)}function W_(e){let t=F_(e.value);if(t.length===0)return null;let n=t[0];return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[I_(n)?(0,L.jsxDEV)(Ve,{size:12},void 0,!1,{fileName:J,lineNumber:267,columnNumber:26},this):(0,L.jsxDEV)(Dl,{size:12},void 0,!1,{fileName:J,lineNumber:267,columnNumber:47},this),(0,L.jsxDEV)(`span`,{className:`truncate`,children:n.title??L_(n.url)},void 0,!1,{fileName:J,lineNumber:268,columnNumber:7},this),t.length>1&&(0,L.jsxDEV)(`span`,{className:`text-muted`,children:[`+`,t.length-1]},void 0,!0,{fileName:J,lineNumber:269,columnNumber:27},this)]},void 0,!0,{fileName:J,lineNumber:266,columnNumber:5},this)}j({kinds:[`embed`],layout:`block`,Page:U_,Inline:W_,pickerSize:`large`,activate:`value`});var G_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/reminder.tsx`;function K_(){return new Date().toISOString().slice(0,10)}function q_(e,t){return Math.round((Date.parse(e)-Date.parse(t))/864e5)}function J_(e,t,n=K_()){if(!e)return`neutral`;let r=q_(e,n);return r<0?`overdue`:r===0?`today`:r<=t?`soon`:`neutral`}var Y_={days:`reminder.inDays`,weeks:`reminder.inWeeks`,months:`reminder.inMonths`};function X_(e){return e<14?{unit:`days`,count:e}:e<60?{unit:`weeks`,count:Math.round(e/7)}:{unit:`months`,count:Math.round(e/30)}}var Z_={overdue:`text-danger`,today:`text-accent font-medium`,soon:`text-warning`,neutral:``};function Q_({field:e,value:t}){let{t:n,i18n:r}=a(),i=String(t??``);if(!i)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:G_,lineNumber:80,columnNumber:18},this);let o=J_(i,e.hints.lead??30),s=q_(i,K_()),c=null;if(o===`today`)c=n(`reminder.today`);else if(o===`overdue`)c=n(`reminder.overdue`,{days:Math.abs(s)});else if(o===`soon`){let{unit:e,count:t}=X_(s);c=n(Y_[e],{count:t})}return(0,L.jsxDEV)(`span`,{className:Z_[o],children:[(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:at(i,r.language)},void 0,!1,{fileName:G_,lineNumber:99,columnNumber:7},this),c?(0,L.jsxDEV)(`span`,{className:`ml-2 text-xs`,children:c},void 0,!1,{fileName:G_,lineNumber:100,columnNumber:15},this):null]},void 0,!0,{fileName:G_,lineNumber:95,columnNumber:5},this)}function $_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,L.jsxDEV)(Q_,{field:e.field,value:t},void 0,!1,{fileName:G_,lineNumber:117,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(P,{type:`date`,value:String(e??``),onChange:e=>t(e.target.value)},void 0,!1,{fileName:G_,lineNumber:119,columnNumber:9},this)},void 0,!1,{fileName:G_,lineNumber:107,columnNumber:5},this)}function ev({field:e,value:t}){return(0,L.jsxDEV)(Q_,{field:e,value:t},void 0,!1,{fileName:G_,lineNumber:130,columnNumber:10},this)}j({kinds:[`reminder`],Page:$_,Inline:ev,Picker:Qp,pickerCommits:!0});var tv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/age.tsx`;function nv(){return new Date().toISOString().slice(0,10)}function rv(e,t=nv()){if(!e)return null;let n=new Date(`${e}T00:00:00Z`),r=new Date(`${t}T00:00:00Z`);if(Number.isNaN(n.getTime())||Number.isNaN(r.getTime())||n.getTime()>r.getTime())return null;let i=r.getUTCFullYear()-n.getUTCFullYear(),a=r.getUTCMonth()-n.getUTCMonth(),o=r.getUTCDate()-n.getUTCDate();return(a<0||a===0&&o<0)&&i--,i}function iv({value:e}){let{t,i18n:n}=a(),r=String(e??``);if(!r)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:tv,lineNumber:46,columnNumber:18},this);let i=rv(r);return(0,L.jsxDEV)(`span`,{children:[(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:at(r,n.language)},void 0,!1,{fileName:tv,lineNumber:53,columnNumber:7},this),i===null?null:(0,L.jsxDEV)(`span`,{className:`ml-2 text-xs text-muted`,children:`· ${t(`age.years`,{count:i})}`},void 0,!1,{fileName:tv,lineNumber:55,columnNumber:9},this)]},void 0,!0,{fileName:tv,lineNumber:49,columnNumber:5},this)}function av(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:e=>(0,L.jsxDEV)(iv,{value:e},void 0,!1,{fileName:tv,lineNumber:73,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(P,{type:`date`,value:String(e??``),onChange:e=>t(e.target.value)},void 0,!1,{fileName:tv,lineNumber:75,columnNumber:9},this)},void 0,!1,{fileName:tv,lineNumber:63,columnNumber:5},this)}function ov({value:e}){return(0,L.jsxDEV)(iv,{value:e},void 0,!1,{fileName:tv,lineNumber:86,columnNumber:10},this)}j({kinds:[`age`],Page:av,Inline:ov,Picker:Qp,pickerCommits:!0});var sv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/timetable.tsx`;function cv(e){let t=String(e??``).trim(),n=/^([01]\d|2[0-3]):([0-5]\d)/.exec(t);return n?`${n[1]}:${n[2]}`:null}function lv(e){return Number(e.slice(0,2))*60+Number(e.slice(3,5))}function uv(e){let t=[...new Set(e.map(cv).filter(e=>e!==null))].sort((e,t)=>lv(e)-lv(t)),n=[];for(let e of t){let t=e.slice(0,2),r=n[n.length-1];r&&r.hour===t?r.minutes.push(e.slice(3,5)):n.push({hour:t,minutes:[e.slice(3,5)]})}return n}function dv(e,t){let n=cv(t);return n?[...new Set(e.map(cv).filter(e=>e!==null))].sort((e,t)=>lv(e)-lv(t)).find(e=>lv(e)>=lv(n))??null:null}function fv(){let e=new Date;return`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}function pv({value:e}){let{t}=a(),n=lt(e),r=uv(n);if(!r.length)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:sv,lineNumber:87,columnNumber:28},this);let i=`${r[0].hour}:${r[0].minutes[0]}`,o=r[r.length-1],s=`${o.hour}:${o.minutes[o.minutes.length-1]}`,c=r.reduce((e,t)=>e+t.minutes.length,0),l=dv(n,fv());return(0,L.jsxDEV)(`div`,{className:`min-w-0 overflow-hidden rounded-lg border border-border`,"data-testid":`timetable`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-1 border-b border-border bg-elevated px-3 py-2`,"data-testid":`timetable-header`,children:[(0,L.jsxDEV)(`span`,{className:`font-mono text-sm tabular-nums whitespace-nowrap`,children:[i,` – `,s]},void 0,!0,{fileName:sv,lineNumber:103,columnNumber:9},this),(0,L.jsxDEV)(_e,{children:t(`timetable.runs`,{count:c})},void 0,!1,{fileName:sv,lineNumber:106,columnNumber:9},this),l&&(0,L.jsxDEV)(`span`,{className:`ml-auto text-xs whitespace-nowrap text-accent`,"data-testid":`timetable-next`,children:[t(`timetable.next`),` `,(0,L.jsxDEV)(`span`,{className:`font-mono tabular-nums`,children:l},void 0,!1,{fileName:sv,lineNumber:109,columnNumber:35},this)]},void 0,!0,{fileName:sv,lineNumber:108,columnNumber:11},this)]},void 0,!0,{fileName:sv,lineNumber:99,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`columns-1 gap-x-6 px-3 py-1 [&>*]:break-inside-avoid @md:columns-2 @lg:columns-3`,children:r.map(e=>(0,L.jsxDEV)(`div`,{className:`flex items-baseline gap-3 border-b border-border py-1 last:border-b-0`,children:[(0,L.jsxDEV)(`span`,{className:`w-6 shrink-0 font-mono text-xs tabular-nums text-muted`,children:e.hour},void 0,!1,{fileName:sv,lineNumber:122,columnNumber:13},this),(0,L.jsxDEV)(`span`,{className:`flex min-w-0 flex-wrap gap-x-2 font-mono text-sm tabular-nums`,children:e.minutes.map(t=>(0,L.jsxDEV)(`span`,{className:l===`${e.hour}:${t}`?`font-semibold text-accent underline underline-offset-4`:``,children:t},t,!1,{fileName:sv,lineNumber:127,columnNumber:19},this))},void 0,!1,{fileName:sv,lineNumber:123,columnNumber:13},this)]},e.hour,!0,{fileName:sv,lineNumber:121,columnNumber:11},this))},void 0,!1,{fileName:sv,lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:sv,lineNumber:96,columnNumber:5},this)}function mv({value:e}){let t=uv(lt(e));if(!t.length)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:sv,lineNumber:142,columnNumber:28},this);let n=t[t.length-1];return(0,L.jsxDEV)(`span`,{className:`truncate font-mono text-sm tabular-nums`,children:[t[0].hour,`:`,t[0].minutes[0],` – `,n.hour,`:`,n.minutes[n.minutes.length-1]]},void 0,!0,{fileName:sv,lineNumber:145,columnNumber:5},this)}function hv(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:e=>(0,L.jsxDEV)(pv,{value:e},void 0,!1,{fileName:sv,lineNumber:163,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(nm,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:sv,lineNumber:167,columnNumber:9},this)},void 0,!1,{fileName:sv,lineNumber:153,columnNumber:5},this)}j({kinds:[`timetable`],layout:`block`,Page:hv,Inline:mv});var gv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/weight.tsx`;function _v(e){if(e==null||e===``||Number.isNaN(Number(e)))return null;let t=Number(e);return t<1e3?{n:t,unit:`g`}:{n:Number((t/1e3).toFixed(2)),unit:`kg`}}function vv({value:e}){let{t}=a(),n=_v(e);return n?(0,L.jsxDEV)(`span`,{children:[n.n,` `,t(`core.units.${n.unit}`)]},void 0,!0,{fileName:gv,lineNumber:25,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:gv,lineNumber:20,columnNumber:18},this)}function yv({unit:e,onPick:t,label:n}){let{t:r}=a();return(0,L.jsxDEV)(`div`,{role:`radiogroup`,"aria-label":n,className:`flex shrink-0 rounded-lg border border-border p-0.5`,children:[`g`,`kg`].map(n=>(0,L.jsxDEV)(`button`,{type:`button`,role:`radio`,"aria-checked":n===e,onClick:()=>t(n),className:`rounded-md px-2 py-1 text-xs transition-colors ${n===e?`bg-bg font-medium text-accent`:`text-muted hover:text-text`}`,children:r(`core.units.${n}`)},n,!1,{fileName:gv,lineNumber:43,columnNumber:9},this))},void 0,!1,{fileName:gv,lineNumber:41,columnNumber:5},this)}function bv({value:e,onChange:t,label:n}){let r=e===``?``:Number(e),[i,a]=(0,I.useState)(r!==``&&Number(r)>=1e3?`kg`:`g`),o=r===``?``:i===`kg`?Number(r)/1e3:r,s=e=>Math.round(i===`kg`?e*1e3:e);return(0,L.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,L.jsxDEV)(P,{type:`number`,className:`flex-1 min-w-0`,min:0,value:o,onChange:e=>t(e.target.value===``?``:String(s(Number(e.target.value))))},void 0,!1,{fileName:gv,lineNumber:69,columnNumber:7},this),(0,L.jsxDEV)(yv,{unit:i,onPick:a,label:n},void 0,!1,{fileName:gv,lineNumber:76,columnNumber:7},this)]},void 0,!0,{fileName:gv,lineNumber:68,columnNumber:5},this)}function xv(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:e=>(0,L.jsxDEV)(vv,{value:e},void 0,!1,{fileName:gv,lineNumber:93,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(bv,{value:String(t??``),onChange:n,label:e.label??``},void 0,!1,{fileName:gv,lineNumber:95,columnNumber:9},this)},void 0,!1,{fileName:gv,lineNumber:83,columnNumber:5},this)}function Sv({value:e}){return(0,L.jsxDEV)(vv,{value:e},void 0,!1,{fileName:gv,lineNumber:102,columnNumber:10},this)}j({kinds:[`weight`],Page:xv,Inline:Sv});var Cv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/dimensions.tsx`;function wv(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function Tv(e){let t=wv(e);if(t.w==null||t.h==null||t.d==null)return``;let n=e=>Number((e/10).toFixed(1));return`${n(t.w)}×${n(t.h)}×${n(t.d)} см`}function Ev({value:e,onChange:t}){let n=wv(e),r=(e,r)=>{let i={...n,[e]:r===``?void 0:Math.round(Number(r))};t(i.w==null&&i.h==null&&i.d==null?``:i)},i=(e,t)=>(0,L.jsxDEV)(P,{type:`number`,min:0,className:`w-20 min-w-0`,placeholder:t,value:n[e]??``,onChange:t=>r(e,t.target.value)},void 0,!1,{fileName:Cv,lineNumber:33,columnNumber:5},this);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-1 min-w-0 ${In}`,children:[i(`w`,`Ш`),(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:Cv,lineNumber:45,columnNumber:7},this),i(`h`,`В`),(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:Cv,lineNumber:47,columnNumber:7},this),i(`d`,`Г`),(0,L.jsxDEV)(`span`,{className:`ml-1 text-xs text-muted`,children:`мм`},void 0,!1,{fileName:Cv,lineNumber:49,columnNumber:7},this)]},void 0,!0,{fileName:Cv,lineNumber:43,columnNumber:5},this)}function Dv({value:e}){let t=Tv(e);return t?(0,L.jsxDEV)(`span`,{children:t},void 0,!1,{fileName:Cv,lineNumber:59,columnNumber:14},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Cv,lineNumber:59,columnNumber:33},this)}function Ov(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:e=>(0,L.jsxDEV)(Dv,{value:e},void 0,!1,{fileName:Cv,lineNumber:73,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(Ev,{value:e,onChange:t},void 0,!1,{fileName:Cv,lineNumber:74,columnNumber:34},this)},void 0,!1,{fileName:Cv,lineNumber:63,columnNumber:5},this)}function kv({value:e}){return(0,L.jsxDEV)(Dv,{value:e},void 0,!1,{fileName:Cv,lineNumber:79,columnNumber:10},this)}j({kinds:[`dimensions`],voice:`data`,Page:Ov,Inline:kv});var Av=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/backrefs.tsx`,jv=8;function Mv({el:e,recordCtx:t}){let{t:n}=a(),r=e.from,i=t.recordId,[o,s]=(0,I.useState)(null);if((0,I.useEffect)(()=>{if(!i){s([]);return}let e=!0;return Te(r.library,r.shelf,{[r.field]:i}).then(t=>{e&&s(t)}),()=>{e=!1}},[i,r.library,r.shelf,r.field]),o===null)return(0,L.jsxDEV)(ve,{},void 0,!1,{fileName:Av,lineNumber:67,columnNumber:29},this);if(o.length===0)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Av,lineNumber:71,columnNumber:33},this);let c=x(r.library,r.shelf),l=o.slice(0,jv),u=o.length-l.length;return(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[l.map(e=>{let t=e.id;return(0,L.jsxDEV)(h,{to:`/${r.library}/${r.shelf}/${t}`,className:`inline-flex items-center gap-1.5 min-h-9 text-accent border border-transparent rounded-lg px-3 text-sm hover:border-border transition-colors`,children:c?(0,L.jsxDEV)(hn,{shelf:c,row:e,size:`sm`,height:28},void 0,!1,{fileName:Av,lineNumber:87,columnNumber:18},this):mr(String(t))},t,!1,{fileName:Av,lineNumber:82,columnNumber:11},this)}),u>0&&(0,L.jsxDEV)(h,{to:`/${r.library}/${r.shelf}?${encodeURIComponent(r.field)}=${encodeURIComponent(i)}`,className:`inline-flex items-center min-h-9 px-3 text-sm text-muted hover:text-accent transition-colors`,children:n(`core.backrefs.more`,{count:u})},void 0,!1,{fileName:Av,lineNumber:92,columnNumber:9},this)]},void 0,!0,{fileName:Av,lineNumber:78,columnNumber:5},this)}j({kinds:[`backrefs`],layout:`block`,Page:Mv});var Nv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/block-shell.tsx`;function Pv(e,t){return t===void 0?void 0:e.find(e=>e.name===t)}function Fv(e,t){return t.map(t=>Pv(e,t)).filter(e=>e!==void 0)}function Iv({label:e,icon:t,children:n}){let{t:r}=a();return e?(0,L.jsxDEV)(Je,{label:r(e),icon:t,children:n},void 0,!1,{fileName:Nv,lineNumber:63,columnNumber:5},this):(0,L.jsxDEV)(L.Fragment,{children:n},void 0,!1,{fileName:Nv,lineNumber:61,columnNumber:22},this)}function Lv(e,t){let n=e.field.label??(Cr(e.field)?e.field.type.label:void 0);return n?t(n):void 0}function Rv(e){return Cr(e.field)?Pt(e.field.type):``}var zv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/grid.tsx`,Bv={2:`grid-cols-1 @sm:grid-cols-2`,3:`grid-cols-1 @sm:grid-cols-2 @3xl:grid-cols-3`,4:`grid-cols-1 @sm:grid-cols-2 @3xl:grid-cols-4`};function Vv({el:e}){let t=e,n=t.view?.columns??3,r=M(),i=(0,L.jsxDEV)(`div`,{className:`grid gap-3 ${Bv[n]??Bv[3]}`,children:r.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`grid-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:zv,lineNumber:32,columnNumber:13},this)},e.name,!1,{fileName:zv,lineNumber:31,columnNumber:11},this))},void 0,!1,{fileName:zv,lineNumber:27,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:i},void 0,!1,{fileName:zv,lineNumber:39,columnNumber:5},this)}j({kinds:[`grid`],layout:`block`,editor:`own`,Page:Vv});var Hv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/bento.tsx`,Uv=`rounded-lg border border-border bg-surface p-3 min-w-0`,Wv={"2x1":`@sm:col-span-2`,"1x2":`@sm:row-span-2`,"2x2":`@sm:col-span-2 @sm:row-span-2`,wide:`col-span-full`};function Gv({el:e}){let t=e,n=t.view?.spans??{},r=(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 @sm:grid-cols-3 auto-rows-auto gap-3`,children:M().map((e,t)=>{if(e.handle.hidden)return null;let r=n[e.name];return(0,L.jsxDEV)(`div`,{className:`${Uv} ${r?Wv[r]??``:``}`,"data-testid":`bento-tile-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:Hv,lineNumber:44,columnNumber:13},this)},e.name,!1,{fileName:Hv,lineNumber:39,columnNumber:11},this)})},void 0,!1,{fileName:Hv,lineNumber:30,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:Hv,lineNumber:51,columnNumber:5},this)}j({kinds:[`bento`],layout:`block`,editor:`own`,Page:Gv});var Kv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/split.tsx`;j({kinds:[`split`],layout:`block`,editor:`own`,Page:({el:e})=>{let t=e,[n,r]=t.view?.ratio??[1,1],i=t.view?.first??[],a=t.view?.second??[];return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:[grid-template-columns:var(--split)]`,style:{"--split":`${n}fr ${r}fr`},children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,children:i.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:Kv,lineNumber:29,columnNumber:13},void 0))},void 0,!1,{fileName:Kv,lineNumber:27,columnNumber:9},void 0),(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,children:a.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:Kv,lineNumber:34,columnNumber:13},void 0))},void 0,!1,{fileName:Kv,lineNumber:32,columnNumber:9},void 0)]},void 0,!0,{fileName:Kv,lineNumber:23,columnNumber:7},void 0)}});var qv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/aside.tsx`;j({kinds:[`aside`],layout:`block`,editor:`own`,Page:({el:e})=>{let t=e,n=t.view?.main??[],r=t.view?.aside??[];return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:grid-cols-[minmax(0,1fr)_14rem]`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,children:n.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:qv,lineNumber:25,columnNumber:13},void 0))},void 0,!1,{fileName:qv,lineNumber:23,columnNumber:9},void 0),(0,L.jsxDEV)(`aside`,{className:`min-w-0 space-y-2 text-sm text-muted @sm:border-l @sm:border-border @sm:pl-4`,children:r.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:qv,lineNumber:30,columnNumber:13},void 0))},void 0,!1,{fileName:qv,lineNumber:28,columnNumber:9},void 0)]},void 0,!0,{fileName:qv,lineNumber:22,columnNumber:7},void 0)}});var Jv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/spread.tsx`;function Yv({el:e}){let t=e,n=t.view?.visual,r=t.view?.quote,i=t.view?.facts??[],a=M(),o=Pv(a,r),s=Fv(a,i);return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:Jv,lineNumber:25,columnNumber:9},this)},void 0,!1,{fileName:Jv,lineNumber:24,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[o&&!o.handle.hidden&&(0,L.jsxDEV)(`blockquote`,{className:`border-l-2 border-accent pl-3 italic text-muted`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Jv,lineNumber:30,columnNumber:13},this)},void 0,!1,{fileName:Jv,lineNumber:29,columnNumber:11},this),s.map(e=>(0,L.jsxDEV)(N,{name:e.name},e.name,!1,{fileName:Jv,lineNumber:34,columnNumber:11},this))]},void 0,!0,{fileName:Jv,lineNumber:27,columnNumber:7},this)]},void 0,!0,{fileName:Jv,lineNumber:23,columnNumber:5},this)}j({kinds:[`spread`],layout:`block`,editor:`own`,Page:Yv});var Xv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/tabs.tsx`;function Zv(){return(0,L.jsxDEV)(L.Fragment,{children:M().map(e=>(0,L.jsxDEV)(N,{name:e.name},e.name,!1,{fileName:Xv,lineNumber:31,columnNumber:9},this))},void 0,!1,{fileName:Xv,lineNumber:29,columnNumber:5},this)}function Qv({el:e}){let t=e,{t:n}=a(),r=t.view?.tabs??[],[i,o]=(0,I.useState)(0);return(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,L.jsxDEV)(`div`,{role:`tablist`,className:`flex flex-nowrap gap-1 overflow-x-auto border-b border-border`,children:r.map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,role:`tab`,"aria-selected":t===i,onClick:()=>o(t),className:`flex shrink-0 items-center gap-1.5 whitespace-nowrap border-b-2 px-3 py-2 text-sm font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${t===i?`border-accent text-accent`:`border-transparent text-muted`}`,children:[e.icon&&(0,L.jsxDEV)(rr,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:Xv,lineNumber:57,columnNumber:26},this),n(e.label)]},e.name,!0,{fileName:Xv,lineNumber:47,columnNumber:11},this))},void 0,!1,{fileName:Xv,lineNumber:45,columnNumber:7},this),r.map((e,t)=>(0,L.jsxDEV)(`div`,{role:`tabpanel`,hidden:t!==i,className:`min-w-0 space-y-3 pt-3`,children:(0,L.jsxDEV)(de,{name:e.name,children:(0,L.jsxDEV)(Zv,{},void 0,!1,{fileName:Xv,lineNumber:65,columnNumber:13},this)},void 0,!1,{fileName:Xv,lineNumber:64,columnNumber:11},this)},e.name,!1,{fileName:Xv,lineNumber:63,columnNumber:9},this))]},void 0,!0,{fileName:Xv,lineNumber:44,columnNumber:5},this)}j({kinds:[`tabs`],layout:`block`,editor:`own`,Page:Qv});var $v=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/accordion.tsx`;function ey(){return(0,L.jsxDEV)(L.Fragment,{children:M().map(e=>(0,L.jsxDEV)(N,{name:e.name},e.name,!1,{fileName:$v,lineNumber:28,columnNumber:9},this))},void 0,!1,{fileName:$v,lineNumber:26,columnNumber:5},this)}function ty({el:e}){let t=e,{t:n}=a();return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:(t.view?.sections??[]).map(e=>(0,L.jsxDEV)(`details`,{className:`rounded-lg border border-border`,open:e.open,children:[(0,L.jsxDEV)(`summary`,{className:`flex cursor-pointer items-center gap-1.5 px-3 py-2 font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[e.icon&&(0,L.jsxDEV)(rr,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:$v,lineNumber:44,columnNumber:30},this),n(e.label)]},void 0,!0,{fileName:$v,lineNumber:43,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`space-y-3 px-3 pb-3`,children:(0,L.jsxDEV)(de,{name:e.name,children:(0,L.jsxDEV)(ey,{},void 0,!1,{fileName:$v,lineNumber:49,columnNumber:15},this)},void 0,!1,{fileName:$v,lineNumber:48,columnNumber:13},this)},void 0,!1,{fileName:$v,lineNumber:47,columnNumber:11},this)]},e.name,!0,{fileName:$v,lineNumber:42,columnNumber:9},this))},void 0,!1,{fileName:$v,lineNumber:40,columnNumber:5},this)}j({kinds:[`accordion`],layout:`block`,editor:`own`,Page:ty});var ny=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/ledger.tsx`;function ry({el:e}){let t=e,{t:n}=a(),r=(0,L.jsxDEV)(`div`,{className:`flex flex-col divide-y divide-border`,"data-testid":`ledger`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 py-2`,"data-testid":`ledger-row-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline gap-2`,"data-testid":`ledger-leader`,children:[(0,L.jsxDEV)(`span`,{className:`shrink-0`,children:Lv(e,n)},void 0,!1,{fileName:ny,lineNumber:55,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 border-b border-dotted border-border`,"data-testid":`ledger-dots`},void 0,!1,{fileName:ny,lineNumber:56,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right font-medium ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:ny,lineNumber:57,columnNumber:19},this)]},void 0,!0,{fileName:ny,lineNumber:54,columnNumber:17},this)},void 0,!1,{fileName:ny,lineNumber:50,columnNumber:13},this)},e.name,!1,{fileName:ny,lineNumber:49,columnNumber:11},this))},void 0,!1,{fileName:ny,lineNumber:42,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:ny,lineNumber:69,columnNumber:5},this)}j({kinds:[`ledger`],layout:`block`,editor:`own`,Page:ry,childWidth:`w-full`});var iy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/stats.tsx`;function ay({el:e}){let t=e,{t:n}=a(),r=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap gap-x-8 gap-y-4 @sm:flex-nowrap @sm:divide-x @sm:divide-border py-1`,"data-testid":`stats`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 @sm:px-5 @sm:first:pl-0`,"data-testid":`stats-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex min-w-0 flex-col items-start gap-0.5 py-1`,"data-testid":`stats-figure`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0 text-2xl font-semibold text-text ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:iy,lineNumber:49,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:ft,children:Lv(e,n)},void 0,!1,{fileName:iy,lineNumber:52,columnNumber:19},this)]},void 0,!0,{fileName:iy,lineNumber:48,columnNumber:17},this)},void 0,!1,{fileName:iy,lineNumber:44,columnNumber:13},this)},e.name,!1,{fileName:iy,lineNumber:43,columnNumber:11},this))},void 0,!1,{fileName:iy,lineNumber:36,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:iy,lineNumber:62,columnNumber:5},this)}j({kinds:[`stats`],layout:`block`,editor:`own`,Page:ay,childWidth:`w-full`});var oy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/facets.tsx`;function sy({el:e}){let t=e,{t:n}=a(),r=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,"data-testid":`facets`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 rounded-full border border-border px-3 py-1 text-sm`,"data-testid":`facets-pill-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,"data-testid":`facets-pair`,children:[(0,L.jsxDEV)(`span`,{className:`shrink-0`,children:Lv(e,n)},void 0,!1,{fileName:oy,lineNumber:53,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 font-semibold text-text`,children:t},void 0,!1,{fileName:oy,lineNumber:54,columnNumber:19},this)]},void 0,!0,{fileName:oy,lineNumber:52,columnNumber:17},this)},void 0,!1,{fileName:oy,lineNumber:48,columnNumber:13},this)},e.name,!1,{fileName:oy,lineNumber:43,columnNumber:11},this))},void 0,!1,{fileName:oy,lineNumber:39,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:oy,lineNumber:64,columnNumber:5},this)}j({kinds:[`facets`],layout:`block`,editor:`own`,Page:sy,childWidth:`w-fit`});var cy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/prose.tsx`,ly=`first-letter:float-left first-letter:mr-2 first-letter:text-5xl first-letter:font-bold first-letter:leading-[0.8]`;function uy({el:e}){let t=e,n=t.view?.dropCap,r=(0,L.jsxDEV)(`div`,{className:`max-w-[65ch] space-y-3 font-serif text-base leading-relaxed`,"data-testid":`prose`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 ${e.name===n?ly:``}`,"data-testid":`prose-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:cy,lineNumber:35,columnNumber:13},this)},e.name,!1,{fileName:cy,lineNumber:30,columnNumber:11},this))},void 0,!1,{fileName:cy,lineNumber:26,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:cy,lineNumber:42,columnNumber:5},this)}j({kinds:[`prose`],layout:`block`,editor:`own`,Page:uy});var dy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/epigraph.tsx`;function fy({el:e}){let t=e,n=t.view?.source,r=t.view?.attribution,i=Pv(M(),r);return(0,L.jsxDEV)(`blockquote`,{className:`border-l-2 border-accent pl-4`,"data-testid":`epigraph`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-lg leading-snug italic`,"data-testid":`epigraph-source`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:dy,lineNumber:22,columnNumber:9},this)},void 0,!1,{fileName:dy,lineNumber:21,columnNumber:7},this),i&&!i.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`mt-2 min-w-0 text-sm text-muted before:mr-1 before:content-['—']`,"data-testid":`epigraph-attribution`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:dy,lineNumber:29,columnNumber:11},this)},void 0,!1,{fileName:dy,lineNumber:25,columnNumber:9},this)]},void 0,!0,{fileName:dy,lineNumber:20,columnNumber:5},this)}j({kinds:[`epigraph`],layout:`block`,editor:`own`,Page:fy});var py=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/terminal.tsx`;function my({el:e}){let t=e,{t:n}=a(),r=t.view?.caption,i=M(),o=(0,L.jsxDEV)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-surface`,"data-testid":`terminal`,children:[r&&(0,L.jsxDEV)(`div`,{className:`border-b border-border bg-elevated px-3 py-1.5 text-xs font-medium text-muted`,"data-testid":`terminal-caption`,children:n(r)},void 0,!1,{fileName:py,lineNumber:29,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`overflow-x-auto p-3 font-mono text-sm`,"data-testid":`terminal-body`,children:i.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`terminal-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:py,lineNumber:41,columnNumber:15},this)},e.name,!1,{fileName:py,lineNumber:40,columnNumber:13},this))},void 0,!1,{fileName:py,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:py,lineNumber:27,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:o},void 0,!1,{fileName:py,lineNumber:49,columnNumber:5},this)}j({kinds:[`terminal`],layout:`block`,editor:`own`,Page:my});var hy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/plaque.tsx`;function gy({el:e}){let t=e,n=t.view?.title,r=t.view?.subtitle??[],i=M(),a=Pv(i,n),o=Fv(i,r),s=(0,L.jsxDEV)(`div`,{className:`flex flex-col items-center gap-3 py-4 text-center`,"data-testid":`plaque`,children:[a&&!a.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 w-full border-b border-border pb-3`,"data-testid":`plaque-item-0`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>(0,L.jsxDEV)(`div`,{className:`text-base font-semibold text-text`,"data-testid":`plaque-title`,children:t},void 0,!1,{fileName:hy,lineNumber:36,columnNumber:15},this)},void 0,!1,{fileName:hy,lineNumber:33,columnNumber:11},this)},void 0,!1,{fileName:hy,lineNumber:32,columnNumber:9},this),o.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`plaque-item-${t+1}`,children:(0,L.jsxDEV)(N,{name:e.name,render:(e,t)=>(0,L.jsxDEV)(`div`,{className:ft,"data-testid":`plaque-subtitle`,children:t},void 0,!1,{fileName:hy,lineNumber:49,columnNumber:17},this)},void 0,!1,{fileName:hy,lineNumber:46,columnNumber:13},this)},e.name,!1,{fileName:hy,lineNumber:45,columnNumber:11},this))]},void 0,!0,{fileName:hy,lineNumber:30,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:s},void 0,!1,{fileName:hy,lineNumber:60,columnNumber:5},this)}j({kinds:[`plaque`],layout:`block`,editor:`own`,Page:gy});var _y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/figure.tsx`;function vy({el:e}){let t=e,n=t.view?.image,r=t.view?.caption,i=Pv(M(),r);return(0,L.jsxDEV)(`figure`,{className:`min-w-0`,"data-testid":`figure`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`figure-image`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:_y,lineNumber:22,columnNumber:9},this)},void 0,!1,{fileName:_y,lineNumber:21,columnNumber:7},this),i&&!i.handle.hidden&&(0,L.jsxDEV)(`figcaption`,{className:`mt-2 min-w-0 text-sm text-muted italic`,"data-testid":`figure-caption`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:_y,lineNumber:26,columnNumber:11},this)},void 0,!1,{fileName:_y,lineNumber:25,columnNumber:9},this)]},void 0,!0,{fileName:_y,lineNumber:20,columnNumber:5},this)}j({kinds:[`figure`],layout:`block`,editor:`own`,Page:vy});var yy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/compare.tsx`;function by({el:e}){let t=e,{t:n}=a(),r=t.view?.left??[],i=t.view?.right??[],o=t.view?.leftLabel,s=t.view?.rightLabel,c=(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:grid-cols-2`,"data-testid":`compare`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,"data-testid":`compare-left`,children:[o&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(o)},void 0,!1,{fileName:yy,lineNumber:30,columnNumber:23},this),r.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:yy,lineNumber:32,columnNumber:11},this))]},void 0,!0,{fileName:yy,lineNumber:29,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3 @sm:border-l @sm:border-border @sm:pl-4`,"data-testid":`compare-right`,children:[s&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(s)},void 0,!1,{fileName:yy,lineNumber:36,columnNumber:24},this),i.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:yy,lineNumber:38,columnNumber:11},this))]},void 0,!0,{fileName:yy,lineNumber:35,columnNumber:7},this)]},void 0,!0,{fileName:yy,lineNumber:28,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:c},void 0,!1,{fileName:yy,lineNumber:44,columnNumber:5},this)}j({kinds:[`compare`],layout:`block`,editor:`own`,Page:by});var xy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/callout.tsx`,Sy={note:`border-l-4 border-accent bg-elevated`,warn:`border-l-4 border-warning bg-elevated font-medium`,danger:`border-l-[6px] border-danger bg-elevated font-semibold`};function Cy({el:e}){let t=e,n=t.view?.tone??`note`,r=M(),i=(0,L.jsxDEV)(`div`,{className:`space-y-2 rounded-lg px-4 py-3 ${Sy[n]??Sy.note}`,"data-testid":`callout`,"data-tone":n,children:r.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`callout-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:xy,lineNumber:35,columnNumber:13},this)},e.name,!1,{fileName:xy,lineNumber:34,columnNumber:11},this))},void 0,!1,{fileName:xy,lineNumber:30,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:i},void 0,!1,{fileName:xy,lineNumber:42,columnNumber:5},this)}j({kinds:[`callout`],layout:`block`,editor:`own`,Page:Cy});var wy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/masthead.tsx`;function Ty({el:e}){let t=e,n=t.view?.title,r=t.view?.overline,i=t.view?.meta??[],a=M(),o=Pv(a,r),s=Fv(a,i).filter(e=>!e.handle.hidden);return(0,L.jsxDEV)(`div`,{className:`space-y-1`,"data-testid":`masthead`,children:[o&&!o.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`masthead-overline`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:wy,lineNumber:29,columnNumber:11},this)},void 0,!1,{fileName:wy,lineNumber:28,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 text-2xl leading-tight font-bold`,"data-testid":`masthead-title`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:wy,lineNumber:33,columnNumber:9},this)},void 0,!1,{fileName:wy,lineNumber:32,columnNumber:7},this),s.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-1 border-t border-b border-border py-1.5 text-sm text-muted`,"data-testid":`masthead-meta`,children:s.map((e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center ${t>0?`before:mr-2 before:text-muted before:content-['·']`:``}`,"data-testid":`masthead-meta-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:wy,lineNumber:46,columnNumber:15},this)},e.name,!1,{fileName:wy,lineNumber:41,columnNumber:13},this))},void 0,!1,{fileName:wy,lineNumber:36,columnNumber:9},this)]},void 0,!0,{fileName:wy,lineNumber:26,columnNumber:5},this)}j({kinds:[`masthead`],layout:`block`,editor:`own`,Page:Ty});var Ey=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/score.tsx`;function Dy({el:e}){let{t}=a(),n=e,r=n.view?.source,i=Array.isArray(r)?r:r===void 0?[]:[r],o=n.view?.verdict,s=n.view?.max,c=M(),l=Pv(c,o),u=Fv(c,i).filter(e=>!e.handle.hidden),d=u.length>1,f=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-3`,"data-testid":`score`,children:[u.map(e=>(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,L.jsxDEV)(N,{name:e.name,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-0.5 text-3xl font-bold ${Rv(e)}`.trim(),"data-testid":`score-figure`,children:[t,s!=null&&(0,L.jsxDEV)(`span`,{className:`text-lg font-normal text-muted`,children:[`/`,s]},void 0,!0,{fileName:Ey,lineNumber:55,columnNumber:33},this)]},void 0,!0,{fileName:Ey,lineNumber:47,columnNumber:15},this)},void 0,!1,{fileName:Ey,lineNumber:44,columnNumber:11},this),d&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`score-source-label`,children:t(e.handle.field.label??e.name)},void 0,!1,{fileName:Ey,lineNumber:63,columnNumber:13},this)]},e.name,!0,{fileName:Ey,lineNumber:43,columnNumber:9},this)),l&&!l.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-muted`,"data-testid":`score-verdict`,children:(0,L.jsxDEV)(N,{name:o},void 0,!1,{fileName:Ey,lineNumber:71,columnNumber:11},this)},void 0,!1,{fileName:Ey,lineNumber:70,columnNumber:9},this)]},void 0,!0,{fileName:Ey,lineNumber:41,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:n.label,icon:n.icon,children:f},void 0,!1,{fileName:Ey,lineNumber:77,columnNumber:5},this)}j({kinds:[`score`],layout:`block`,editor:`own`,Page:Dy});var Oy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/status.tsx`;function ky({el:e}){let t=e,n=t.view?.source,r=t.view?.since,i=Pv(M(),r),a=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-3`,"data-testid":`status`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>{let{chipClassName:n,chipStyle:r}=Ot(e.field.type);return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-2 rounded-lg border px-3 py-1.5 font-medium ${n?n(e.value):``}`,style:r?r(e.value):void 0,"data-testid":`status-banner`,children:t},void 0,!1,{fileName:Oy,lineNumber:43,columnNumber:15},this)}},void 0,!1,{fileName:Oy,lineNumber:38,columnNumber:9},this)},void 0,!1,{fileName:Oy,lineNumber:37,columnNumber:7},this),i&&!i.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted`,"data-testid":`status-since`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Oy,lineNumber:56,columnNumber:11},this)},void 0,!1,{fileName:Oy,lineNumber:55,columnNumber:9},this)]},void 0,!0,{fileName:Oy,lineNumber:36,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:a},void 0,!1,{fileName:Oy,lineNumber:62,columnNumber:5},this)}j({kinds:[`status`],layout:`block`,editor:`own`,Page:ky});var Ay=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/meter.tsx`;function jy(e,t,n){return!t||n===void 0||!Number.isFinite(e)?`neutral`:t===`ceiling`?e>n?`danger`:`success`:e<n?`danger`:`success`}var My={danger:`bg-danger`,success:`bg-success`,neutral:`bg-accent`},Ny={danger:`text-danger`,success:`text-success`,neutral:``};function Py(e,t,n,r){if(!n)return;if(n===`ceiling`){let t=e?.max==null?r:Number(e.max);return Number.isFinite(t)?t:void 0}let i=e?.min==null?t.hints.min:e.min,a=i==null?r:Number(i);return Number.isFinite(a)?a:void 0}function Fy(e,t,n){let r=Number(e?.min??t.hints.min??0),i=e?.max??t.hints.max??(Number.isFinite(n)?n:void 0),a=i==null?r+1:Number(i);return{min:Number.isFinite(r)?r:0,max:Number.isFinite(a)&&a>r?a:r+1}}function Iy(e){if(e==null||e===``)return NaN;if(typeof e==`object`&&`value`in e){let t=e.value;return t==null||t===``?NaN:Number(t)}return Number(e)}function Ly({el:e}){let t=e,n=t.view?.source,r=t.view?.of,i=t.view,a=i?.direction,o=M(),s=Pv(o,r),c=Pv(o,n),l=s?Iy(s.handle.value):void 0,u=a===`ceiling`?l:void 0,{min:d,max:f}=c?Fy(i,c.handle.field.type,u):{min:0,max:1},p=c?Py(i,c.handle.field.type,a,l):void 0,m=c?jy(Iy(c.handle.value),a,p):`neutral`,h=m===`danger`?jt:m===`success`?li:null,g=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-end gap-3`,"data-testid":`meter`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>{let n=Iy(e.value);if(!Number.isFinite(n))return t;let r=Math.max(0,Math.min(1,(n-d)/(f-d)));return(0,L.jsxDEV)(`span`,{className:`flex min-w-0 flex-col gap-1`,"data-testid":`meter-figure`,"data-tone":m,children:[(0,L.jsxDEV)(`span`,{className:`inline-flex items-center gap-1.5 text-2xl font-semibold ${Ny[m]} ${Rv(e)}`.trim(),children:[h&&(0,L.jsxDEV)(h,{size:18,className:`shrink-0`,"aria-hidden":`true`},void 0,!1,{fileName:Ay,lineNumber:202,columnNumber:29},this),t]},void 0,!0,{fileName:Ay,lineNumber:199,columnNumber:17},this),(0,L.jsxDEV)(`span`,{role:`progressbar`,"aria-valuemin":d,"aria-valuemax":f,"aria-valuenow":Number.isFinite(n)?Math.max(d,Math.min(f,n)):d,className:`h-2 w-full overflow-hidden rounded-full bg-border`,"data-testid":`meter-bar`,children:(0,L.jsxDEV)(`span`,{className:`block h-full rounded-full transition-[width] ${My[m]}`,style:{width:`${r*100}%`},"data-testid":`meter-fill`},void 0,!1,{fileName:Ay,lineNumber:213,columnNumber:19},this)},void 0,!1,{fileName:Ay,lineNumber:205,columnNumber:17},this)]},void 0,!0,{fileName:Ay,lineNumber:198,columnNumber:15},this)}},void 0,!1,{fileName:Ay,lineNumber:187,columnNumber:9},this)},void 0,!1,{fileName:Ay,lineNumber:186,columnNumber:7},this),s&&!s.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted ${Ny[m]}`.trim(),"data-testid":`meter-of`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Ay,lineNumber:226,columnNumber:11},this)},void 0,!1,{fileName:Ay,lineNumber:225,columnNumber:9},this)]},void 0,!0,{fileName:Ay,lineNumber:185,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:g},void 0,!1,{fileName:Ay,lineNumber:232,columnNumber:5},this)}j({kinds:[`meter`],layout:`block`,editor:`own`,Page:Ly});var Ry=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/balance.tsx`;function zy({el:e}){let t=e,n=t.view?.source,{t:r}=a(),i=t.view?.caption,o=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,"data-testid":`balance`,children:[(0,L.jsxDEV)(N,{name:n,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-3xl font-semibold ${Rv(e)}`.trim(),"data-testid":`balance-figure`,children:t},void 0,!1,{fileName:Ry,lineNumber:36,columnNumber:11},this)},void 0,!1,{fileName:Ry,lineNumber:33,columnNumber:7},this),i&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`balance-caption`,children:r(i)},void 0,!1,{fileName:Ry,lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:Ry,lineNumber:32,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:o},void 0,!1,{fileName:Ry,lineNumber:49,columnNumber:5},this)}j({kinds:[`balance`],layout:`block`,editor:`own`,Page:zy});var By=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/countdown.tsx`,Vy=864e5;function Hy(e,t){let n=typeof e==`string`?e.slice(0,10):``;if(!/^\d{4}-\d{2}-\d{2}$/.test(n))return null;let r=Date.parse(n),i=Date.parse(t);return Number.isNaN(r)||Number.isNaN(i)?null:Math.round((r-i)/Vy)}function Uy(){return new Date().toISOString().slice(0,10)}function Wy({el:e}){let t=e,n=t.view?.source,{t:r}=a(),i=t.view?.caption,o=(0,L.jsxDEV)(`div`,{"data-testid":`countdown`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>{let n=Hy(e.value,Uy());return n===null?t:(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-3`,"data-testid":`countdown-figure`,"data-direction":n>0?`remaining`:n<0?`elapsed`:`today`,children:[(0,L.jsxDEV)(`span`,{className:`inline-flex flex-col items-start gap-0.5`,children:[(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-1.5`,children:[(0,L.jsxDEV)(n>0?Xe:n<0?_r:wi,{size:16,className:`shrink-0 self-center text-muted`,"aria-hidden":`true`},void 0,!1,{fileName:By,lineNumber:80,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`text-3xl font-bold tabular-nums`,children:Math.abs(n)},void 0,!1,{fileName:By,lineNumber:81,columnNumber:19},this)]},void 0,!0,{fileName:By,lineNumber:79,columnNumber:17},this),i&&(0,L.jsxDEV)(`span`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`countdown-caption`,children:r(i)},void 0,!1,{fileName:By,lineNumber:84,columnNumber:19},this)]},void 0,!0,{fileName:By,lineNumber:78,columnNumber:15},this),(0,L.jsxDEV)(`span`,{className:`text-sm text-muted`,"data-testid":`countdown-date`,children:t},void 0,!1,{fileName:By,lineNumber:89,columnNumber:15},this)]},void 0,!0,{fileName:By,lineNumber:66,columnNumber:13},this)}},void 0,!1,{fileName:By,lineNumber:58,columnNumber:7},this)},void 0,!1,{fileName:By,lineNumber:57,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:o},void 0,!1,{fileName:By,lineNumber:99,columnNumber:5},this)}j({kinds:[`countdown`],layout:`block`,editor:`own`,Page:Wy});function Gy(e,t){return e.hints.multi?Qn(t,[]).map(String):tn(t)?[String(t)]:[]}var Ky=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/deck.tsx`;function qy({field:e,value:t}){let n=e.relation?.library??``,r=e.relation?.shelf??``,i=Gy(e,t),a=fe(n,r,i),o=x(n,r);return i.length?(0,L.jsxDEV)(`div`,{className:`overflow-x-auto`,"data-testid":`deck`,children:(0,L.jsxDEV)(`div`,{className:`flex gap-3 pb-1`,children:i.map(e=>{let t=a.get(e);return(0,L.jsxDEV)(`div`,{className:`flex w-40 shrink-0 flex-col gap-2 rounded-lg border border-border p-3`,"data-testid":`deck-card`,children:(0,L.jsxDEV)(h,{to:`/${n}/${r}/${e}`,className:`min-w-0 hover:text-accent`,children:o&&t?(0,L.jsxDEV)(hn,{shelf:o,row:t},void 0,!1,{fileName:Ky,lineNumber:53,columnNumber:29},this):mr(e)},void 0,!1,{fileName:Ky,lineNumber:52,columnNumber:15},this)},e,!1,{fileName:Ky,lineNumber:47,columnNumber:13},this)})},void 0,!1,{fileName:Ky,lineNumber:43,columnNumber:7},this)},void 0,!1,{fileName:Ky,lineNumber:42,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Ky,lineNumber:40,columnNumber:27},this)}function Jy({el:e}){let t=e,n=t.view?.source;return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:(0,L.jsxDEV)(N,{name:n,render:e=>(0,L.jsxDEV)(qy,{field:e.field.type,value:e.value},void 0,!1,{fileName:Ky,lineNumber:70,columnNumber:29},this)},void 0,!1,{fileName:Ky,lineNumber:68,columnNumber:7},this)},void 0,!1,{fileName:Ky,lineNumber:67,columnNumber:5},this)}j({kinds:[`deck`],layout:`block`,editor:`own`,Page:Jy});var Yy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/people.tsx`;function Xy({field:e,value:t}){let n=e.relation?.library??``,r=e.relation?.shelf??``,i=Gy(e,t),a=fe(n,r,i),o=x(n,r);return i.length?(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,"data-testid":`people`,children:[(0,L.jsxDEV)(`div`,{className:`flex items-center`,"data-testid":`people-avatars`,children:i.map((e,t)=>{let n=a.get(e),{icon:r}=o&&n?_h(o,n):{icon:void 0};return(0,L.jsxDEV)(`span`,{className:`rounded-full ring-2 ring-surface ${t>0?`-ml-2.5`:``}`,style:{zIndex:i.length-t},"data-testid":`people-avatar-${t}`,children:r?(0,L.jsxDEV)($n,{icon:r,framed:!0,size:`md`},void 0,!1,{fileName:Yy,lineNumber:54,columnNumber:17},this):(0,L.jsxDEV)($n,{icon:{kind:`icon`,value:o?.icon??`lucide:user`},framed:!0,size:`md`},void 0,!1,{fileName:Yy,lineNumber:56,columnNumber:17},this)},e,!1,{fileName:Yy,lineNumber:47,columnNumber:13},this)})},void 0,!1,{fileName:Yy,lineNumber:42,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-1.5 text-sm`,"data-testid":`people-names`,children:i.map(e=>{let t=a.get(e),{title:i}=o&&t?_h(o,t):{title:mr(e)};return(0,L.jsxDEV)(h,{to:`/${n}/${r}/${e}`,className:`hover:text-accent hover:underline`,children:i},e,!1,{fileName:Yy,lineNumber:67,columnNumber:13},this)})},void 0,!1,{fileName:Yy,lineNumber:62,columnNumber:7},this)]},void 0,!0,{fileName:Yy,lineNumber:41,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Yy,lineNumber:39,columnNumber:27},this)}function Zy({el:e}){let t=e,n=t.view?.source;return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:(0,L.jsxDEV)(N,{name:n,render:e=>(0,L.jsxDEV)(Xy,{field:e.field.type,value:e.value},void 0,!1,{fileName:Yy,lineNumber:84,columnNumber:29},this)},void 0,!1,{fileName:Yy,lineNumber:82,columnNumber:7},this)},void 0,!1,{fileName:Yy,lineNumber:81,columnNumber:5},this)}j({kinds:[`people`],layout:`block`,editor:`own`,Page:Zy});var Qy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/identity.tsx`,$y=e=>/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`;function eb(e,t){if(e.kind===`tel`){let e=String(t??``).trim();return e?`tel:${e}`:void 0}if(e.kind===`email`){let e=String(t??``).trim();return e?`mailto:${e}`:void 0}if(e.kind===`link`){let e=String(t??``).trim();return e?$y(e):void 0}}var tb={tel:jl,email:Ol,link:Ei};function nb({el:e}){let t=e,{t:n}=a(),r=t.view?.avatar,i=t.view?.name,o=t.view?.role,s=t.view?.channels??[],c=M(),l=Pv(c,r),u=Pv(c,o),d=Fv(c,s),f=d.filter(e=>!e.handle.hidden),p=(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3`,"data-testid":`identity`,children:[l&&!l.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`shrink-0`,"data-testid":`identity-avatar`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Qy,lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:Qy,lineNumber:77,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-lg font-semibold`,"data-testid":`identity-name`,children:(0,L.jsxDEV)(N,{name:i},void 0,!1,{fileName:Qy,lineNumber:83,columnNumber:11},this)},void 0,!1,{fileName:Qy,lineNumber:82,columnNumber:9},this),u&&!u.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted`,"data-testid":`identity-role`,children:(0,L.jsxDEV)(N,{name:o},void 0,!1,{fileName:Qy,lineNumber:87,columnNumber:13},this)},void 0,!1,{fileName:Qy,lineNumber:86,columnNumber:11},this)]},void 0,!0,{fileName:Qy,lineNumber:81,columnNumber:7},this),f.length>0&&(0,L.jsxDEV)(`div`,{className:`flex shrink-0 items-center gap-1.5`,"data-testid":`identity-channels`,children:d.map(e=>e.handle.hidden?null:(0,L.jsxDEV)(`span`,{children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>{let r=e.field.type,i=eb(r,e.value);if(!i)return t;let a=tb[r.kind]??Ei;return(0,L.jsxDEV)(`a`,{href:i,"aria-label":Lv(e,n),className:`inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border text-muted transition-colors hover:border-accent hover:text-accent`,children:(0,L.jsxDEV)(a,{size:16},void 0,!1,{fileName:Qy,lineNumber:110,columnNumber:25},this)},void 0,!1,{fileName:Qy,lineNumber:105,columnNumber:23},this)}},void 0,!1,{fileName:Qy,lineNumber:96,columnNumber:17},this)},e.name,!1,{fileName:Qy,lineNumber:95,columnNumber:15},this))},void 0,!1,{fileName:Qy,lineNumber:92,columnNumber:9},this)]},void 0,!0,{fileName:Qy,lineNumber:75,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:p},void 0,!1,{fileName:Qy,lineNumber:123,columnNumber:5},this)}j({kinds:[`identity`],layout:`block`,editor:`own`,Page:nb});var rb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/timeline.tsx`;function ib(){return new Date().toISOString().slice(0,10)}function ab(e,t){let n=typeof e==`string`?e.slice(0,10):``;if(!/^\d{4}-\d{2}-\d{2}$/.test(n))return null;let r=Date.parse(n),i=Date.parse(t);return Number.isNaN(r)||Number.isNaN(i)?null:r<i}function ob({el:e}){let t=e,n=M(),r=(0,L.jsxDEV)(`div`,{className:`relative flex flex-col gap-2`,"data-testid":`timeline`,children:[(0,L.jsxDEV)(`div`,{className:`absolute top-2 bottom-2 left-[5px] w-px bg-border`,"aria-hidden":!0},void 0,!1,{fileName:rb,lineNumber:51,columnNumber:7},this),n.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`relative min-w-0`,"data-testid":`timeline-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,render:(e,t)=>{let n=ab(e.value,ib());return(0,L.jsxDEV)(`span`,{className:`flex min-w-0 items-start gap-3`,"data-testid":`timeline-entry`,children:[(0,L.jsxDEV)(`span`,{className:`relative z-10 mt-1 h-2.5 w-2.5 shrink-0 rounded-full border-2 border-accent ${n?`bg-accent`:`bg-surface`}`,"data-testid":`timeline-dot`,"data-past":n===null?void 0:n,"aria-hidden":!0},void 0,!1,{fileName:rb,lineNumber:62,columnNumber:21},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 pb-1`,children:t},void 0,!1,{fileName:rb,lineNumber:68,columnNumber:21},this)]},void 0,!0,{fileName:rb,lineNumber:61,columnNumber:19},this)}},void 0,!1,{fileName:rb,lineNumber:56,columnNumber:13},this)},e.name,!1,{fileName:rb,lineNumber:55,columnNumber:11},this))]},void 0,!0,{fileName:rb,lineNumber:50,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:rb,lineNumber:79,columnNumber:5},this)}j({kinds:[`timeline`],layout:`block`,editor:`own`,Page:ob});var sb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/receipt.tsx`;function cb({el:e}){let t=e,{t:n}=a(),r=t.view?.lines??[],i=t.view?.total,o=M(),s=Fv(o,r),c=Pv(o,i),l=(0,L.jsxDEV)(`div`,{className:`flex flex-col`,"data-testid":`receipt`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-col divide-y divide-dashed divide-border`,children:s.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 py-1.5`,"data-testid":`receipt-line-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3`,"data-testid":`receipt-line`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0 text-muted`,children:Lv(e,n)},void 0,!1,{fileName:sb,lineNumber:47,columnNumber:21},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:sb,lineNumber:48,columnNumber:21},this)]},void 0,!0,{fileName:sb,lineNumber:46,columnNumber:19},this)},void 0,!1,{fileName:sb,lineNumber:42,columnNumber:15},this)},e.name,!1,{fileName:sb,lineNumber:41,columnNumber:13},this))},void 0,!1,{fileName:sb,lineNumber:38,columnNumber:7},this),c&&!c.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`mt-2 min-w-0 border-t-2 border-border pt-2`,"data-testid":`receipt-total-row`,children:(0,L.jsxDEV)(N,{name:i,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3 text-lg font-bold`,"data-testid":`receipt-total`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0`,children:Lv(e,n)},void 0,!1,{fileName:sb,lineNumber:66,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:sb,lineNumber:67,columnNumber:17},this)]},void 0,!0,{fileName:sb,lineNumber:62,columnNumber:15},this)},void 0,!1,{fileName:sb,lineNumber:58,columnNumber:11},this)},void 0,!1,{fileName:sb,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:sb,lineNumber:37,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:l},void 0,!1,{fileName:sb,lineNumber:76,columnNumber:5},this)}j({kinds:[`receipt`],layout:`block`,editor:`own`,Page:cb,childWidth:`w-full`});var lb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/idcard.tsx`;function ub(e){let t=e.replace(/\s+/g,``);if(!t)return``;let n=[];for(let e=0;e<t.length;e+=4)n.push(t.slice(e,e+4));return n.join(` `)}function db({slots:e,t}){return e.length?(0,L.jsxDEV)(`div`,{className:`mt-3`,"data-testid":`idcard-blank`,children:(0,L.jsxDEV)(mn,{items:e.map(e=>({key:e.name,span:3,node:(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,L.jsxDEV)(`div`,{className:ft,children:t(e.handle.field.type?.label??e.handle.field.label??e.name)},void 0,!1,{fileName:lb,lineNumber:57,columnNumber:15},this),(0,L.jsxDEV)(O,{},void 0,!1,{fileName:lb,lineNumber:61,columnNumber:15},this)]},void 0,!0,{fileName:lb,lineNumber:56,columnNumber:13},this)}))},void 0,!1,{fileName:lb,lineNumber:51,columnNumber:7},this)},void 0,!1,{fileName:lb,lineNumber:50,columnNumber:5},this):null}function fb({slots:e,testid:t}){return e.length?(0,L.jsxDEV)(`div`,{"data-testid":t,children:(0,L.jsxDEV)(mn,{items:e.map(e=>({key:e.name,span:Ln(e.handle.field),node:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:lb,lineNumber:78,columnNumber:17},this)}))},void 0,!1,{fileName:lb,lineNumber:74,columnNumber:7},this)},void 0,!1,{fileName:lb,lineNumber:73,columnNumber:5},this):null}var pb={passport:new Set([`photo`,`mrz`]),biometric:new Set([`photo`,`mrz`]),idcard:new Set([`photo`]),licence:new Set([`photo`]),residence:new Set([`photo`]),protection:new Set([`photo`]),military:new Set([`photo`]),tax:new Set([]),social:new Set([]),visa:new Set([`photo`]),workpermit:new Set([]),medical:new Set([]),insurance:new Set([]),birth:new Set([]),marriage:new Set([]),divorce:new Set([]),death:new Set([]),diploma:new Set([]),vaccination:new Set([])},mb={passport:`page`,biometric:`page`,idcard:`plastic`,licence:`plastic`,residence:`plastic`,protection:`plastic`,military:`plastic`,tax:`plastic`,social:`plastic`,visa:`sticker`,workpermit:`sticker`,medical:`form`,insurance:`form`,birth:`paper`,marriage:`paper`,divorce:`paper`,death:`paper`,diploma:`paper`,vaccination:`paper`};function hb({el:e}){let{t}=a(),n=e,r=n.view?.number,i=n.view?.overline,o=n.view?.photo,s=n.view?.mrz,c=n.view?.meta??[],l=n.view?.footer??[],u=M(),d=Pv(u,i),f=Pv(u,o),p=Pv(u,s),m=(d?jn(d.handle.field.type??{}).find(e=>e.value===String(d.handle.value??``))?.face:void 0)??`plain`,h=mb[m]??`plain`,g=pb[m],_=e=>g===void 0||g.has(e),v=e=>e!==void 0&&!e.handle.hidden&&tn(e.handle.value),y=_(`photo`)&&v(f),b=_(`mrz`)&&v(p),x=[..._(`photo`)&&!y&&f?[f]:[],..._(`mrz`)&&!b&&p?[p]:[]],S=e=>{let t=e.handle.field.type?.hints?.faces;return t===void 0||t.includes(m)},C=Fv(u,c).filter(e=>!e.handle.hidden&&S(e)),w=Fv(u,l).filter(e=>!e.handle.hidden&&S(e));return(0,L.jsxDEV)(`div`,{className:`idcard-paper overflow-hidden rounded-xl border border-border bg-surface`,"data-face":m,"data-form":h,"data-testid":`idcard`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-4 px-5 py-4`,children:[(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-baseline justify-between gap-4 border-b border-border pb-3`,"data-testid":`idcard-head`,children:[d&&!d.handle.hidden?(0,L.jsxDEV)(`div`,{className:ft,"data-testid":`idcard-overline`,children:(0,L.jsxDEV)(N,{name:i,ownLabel:!0},void 0,!1,{fileName:lb,lineNumber:276,columnNumber:15},this)},void 0,!1,{fileName:lb,lineNumber:273,columnNumber:13},this):(0,L.jsxDEV)(`span`,{"aria-hidden":!0},void 0,!1,{fileName:lb,lineNumber:281,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 shrink-0`,children:(0,L.jsxDEV)(N,{name:r,ownLabel:!0,render:(e,t)=>{let n=ub(typeof e.value==`string`||typeof e.value==`number`?String(e.value):``);return n?(0,L.jsxDEV)(`span`,{className:`text-lg font-semibold tracking-widest text-accent`,"data-testid":`idcard-number`,children:n},void 0,!1,{fileName:lb,lineNumber:300,columnNumber:19},this):t}},void 0,!1,{fileName:lb,lineNumber:284,columnNumber:13},this)},void 0,!1,{fileName:lb,lineNumber:283,columnNumber:11},this)]},void 0,!0,{fileName:lb,lineNumber:268,columnNumber:9},this),(f||C.length>0)&&(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-start gap-5`,children:[y&&(0,L.jsxDEV)(`div`,{className:`aspect-[3/4] w-28 shrink-0 overflow-hidden rounded-md border border-border bg-elevated`,"data-testid":`idcard-photo`,children:(0,L.jsxDEV)(N,{name:o,ownLabel:!0},void 0,!1,{fileName:lb,lineNumber:320,columnNumber:17},this)},void 0,!1,{fileName:lb,lineNumber:314,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(fb,{slots:C,testid:`idcard-meta`},void 0,!1,{fileName:lb,lineNumber:324,columnNumber:15},this)},void 0,!1,{fileName:lb,lineNumber:323,columnNumber:13},this)]},void 0,!0,{fileName:lb,lineNumber:310,columnNumber:11},this),(w.length>0||x.length>0)&&(0,L.jsxDEV)(`div`,{className:`border-t border-border pt-3`,children:[(0,L.jsxDEV)(fb,{slots:w,testid:`idcard-footer`},void 0,!1,{fileName:lb,lineNumber:336,columnNumber:13},this),(0,L.jsxDEV)(db,{slots:x,t},void 0,!1,{fileName:lb,lineNumber:337,columnNumber:13},this)]},void 0,!0,{fileName:lb,lineNumber:335,columnNumber:11},this)]},void 0,!0,{fileName:lb,lineNumber:266,columnNumber:7},this),b&&(0,L.jsxDEV)(`div`,{className:`border-t border-dashed border-border px-5 py-3`,"data-testid":`idcard-mrz`,children:(0,L.jsxDEV)(N,{name:s,ownLabel:!0},void 0,!1,{fileName:lb,lineNumber:351,columnNumber:11},this)},void 0,!1,{fileName:lb,lineNumber:350,columnNumber:9},this)]},void 0,!0,{fileName:lb,lineNumber:257,columnNumber:5},this)}j({kinds:[`idcard`],layout:`block`,editor:`own`,Page:hb});var gb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/route.tsx`;function _b({el:e}){let t=e,n=t.view?.from,r=t.view?.to,i=t.view?.depart,a=t.view?.arrive,o=t.view?.duration,s=M(),c=Pv(s,n),l=Pv(s,r),u=Pv(s,i),d=Pv(s,a),f=Fv(s,t.view?.stub??[]).filter(e=>!e.handle.hidden),p=Pv(s,o),m=c!==void 0&&!c.handle.hidden,h=l!==void 0&&!l.handle.hidden,g=p!==void 0&&!p.handle.hidden;return(0,L.jsxDEV)(`div`,{className:`flex items-start gap-3`,"data-testid":`route`,children:[m&&(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 flex-col items-start gap-1`,"data-testid":`route-from`,children:[(0,L.jsxDEV)(N,{name:n,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-xl font-bold`,"data-testid":`route-endpoint-0`,children:t},void 0,!1,{fileName:gb,lineNumber:48,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:45,columnNumber:11},this),u&&!u.handle.hidden&&(0,L.jsxDEV)(`span`,{className:`min-w-0 text-xs text-muted`,"data-testid":`route-depart`,children:(0,L.jsxDEV)(N,{name:i},void 0,!1,{fileName:gb,lineNumber:55,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:54,columnNumber:13},this)]},void 0,!0,{fileName:gb,lineNumber:44,columnNumber:9},this),(m||h||g)&&(0,L.jsxDEV)(`div`,{className:`relative flex min-w-[3rem] flex-1 shrink-0 flex-col items-center justify-center self-stretch`,"data-testid":`route-axis`,children:[(0,L.jsxDEV)(`span`,{className:`absolute inset-x-0 top-1/2 border-t border-dashed border-border`,"aria-hidden":!0},void 0,!1,{fileName:gb,lineNumber:65,columnNumber:11},this),g&&(0,L.jsxDEV)(`span`,{className:`relative z-10 bg-surface px-1.5 text-xs font-medium text-muted`,"data-testid":`route-duration`,children:(0,L.jsxDEV)(N,{name:o},void 0,!1,{fileName:gb,lineNumber:71,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:67,columnNumber:13},this)]},void 0,!0,{fileName:gb,lineNumber:61,columnNumber:9},this),h&&(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 flex-col items-end gap-1 text-right`,"data-testid":`route-to`,children:[(0,L.jsxDEV)(N,{name:r,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-xl font-bold`,"data-testid":`route-endpoint-1`,children:t},void 0,!1,{fileName:gb,lineNumber:81,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:78,columnNumber:11},this),d&&!d.handle.hidden&&(0,L.jsxDEV)(`span`,{className:`min-w-0 text-xs text-muted`,"data-testid":`route-arrive`,children:(0,L.jsxDEV)(N,{name:a},void 0,!1,{fileName:gb,lineNumber:88,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:gb,lineNumber:77,columnNumber:9},this),f.length>0&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`route-perf`,"aria-hidden":!0},void 0,!1,{fileName:gb,lineNumber:99,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-x-6 gap-y-2 pt-3`,"data-testid":`route-stub`,children:f.map(e=>(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:gb,lineNumber:103,columnNumber:17},this)},e.name,!1,{fileName:gb,lineNumber:102,columnNumber:15},this))},void 0,!1,{fileName:gb,lineNumber:100,columnNumber:11},this)]},void 0,!0,{fileName:gb,lineNumber:94,columnNumber:9},this)]},void 0,!0,{fileName:gb,lineNumber:42,columnNumber:5},this)}j({kinds:[`route`],layout:`block`,editor:`own`,Page:_b});var vb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/specimen.tsx`;function yb({el:e}){let t=e,{t:n}=a(),r=t.view?.title,i=t.view?.subtitle,o=t.view?.conditions??[],s=M(),c=Pv(s,i),l=Fv(s,o),u=l.filter(e=>!e.handle.hidden);return(0,L.jsxDEV)(`div`,{className:`space-y-2`,"data-testid":`specimen`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:r,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-xl font-medium italic`,"data-testid":`specimen-title`,children:t},void 0,!1,{fileName:vb,lineNumber:45,columnNumber:13},this)},void 0,!1,{fileName:vb,lineNumber:42,columnNumber:9},this)},void 0,!1,{fileName:vb,lineNumber:41,columnNumber:7},this),c&&!c.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted`,"data-testid":`specimen-subtitle`,children:(0,L.jsxDEV)(N,{name:i},void 0,!1,{fileName:vb,lineNumber:53,columnNumber:11},this)},void 0,!1,{fileName:vb,lineNumber:52,columnNumber:9},this),u.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,"data-testid":`specimen-conditions`,children:l.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{"data-testid":`specimen-condition-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,children:[(0,L.jsxDEV)(rr,{name:`lucide:circle`,size:8,className:`relative top-[0.15em] shrink-0 fill-current text-muted`},void 0,!1,{fileName:vb,lineNumber:66,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-muted`,children:Lv(e,n)},void 0,!1,{fileName:vb,lineNumber:71,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 font-medium text-text`,children:t},void 0,!1,{fileName:vb,lineNumber:72,columnNumber:23},this)]},void 0,!0,{fileName:vb,lineNumber:65,columnNumber:21},this)},void 0,!1,{fileName:vb,lineNumber:61,columnNumber:17},this)},e.name,!1,{fileName:vb,lineNumber:60,columnNumber:15},this))},void 0,!1,{fileName:vb,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:vb,lineNumber:40,columnNumber:5},this)}j({kinds:[`specimen`],layout:`block`,editor:`own`,Page:yb});var bb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/nutrition.tsx`;function xb({el:e}){let t=e,{t:n}=a(),r=t.view?.energy,i=t.view?.fields??[],o=M(),s=Pv(o,r),c=Fv(o,i),l=s!==void 0&&!s.handle.hidden,u=c.filter(e=>!e.handle.hidden);if(!l&&u.length===0)return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:null},void 0,!1,{fileName:bb,lineNumber:39,columnNumber:7},this);let d=(0,L.jsxDEV)(`div`,{className:`w-full max-w-xs border-2 border-text p-3`,"data-testid":`nutrition`,children:[l&&(0,L.jsxDEV)(`div`,{className:`mb-2 border-b-4 border-text pb-2`,"data-testid":`nutrition-energy-row`,children:(0,L.jsxDEV)(N,{name:r,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3`,"data-testid":`nutrition-energy`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0 text-base font-bold tracking-wide`,children:Lv(e,n)},void 0,!1,{fileName:bb,lineNumber:52,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-2xl font-black ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:bb,lineNumber:53,columnNumber:17},this)]},void 0,!0,{fileName:bb,lineNumber:51,columnNumber:15},this)},void 0,!1,{fileName:bb,lineNumber:47,columnNumber:11},this)},void 0,!1,{fileName:bb,lineNumber:46,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col divide-y divide-border`,children:c.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 py-1`,"data-testid":`nutrition-row-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0`,children:Lv(e,n)},void 0,!1,{fileName:bb,lineNumber:74,columnNumber:21},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right font-medium ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:bb,lineNumber:75,columnNumber:21},this)]},void 0,!0,{fileName:bb,lineNumber:73,columnNumber:19},this)},void 0,!1,{fileName:bb,lineNumber:69,columnNumber:15},this)},e.name,!1,{fileName:bb,lineNumber:68,columnNumber:13},this))},void 0,!1,{fileName:bb,lineNumber:61,columnNumber:7},this)]},void 0,!0,{fileName:bb,lineNumber:44,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:d},void 0,!1,{fileName:bb,lineNumber:88,columnNumber:5},this)}j({kinds:[`nutrition`],layout:`block`,editor:`own`,Page:xb,childWidth:`w-full`});function Sb(e,t){return e.fields.find(e=>Cr(e)&&e.key===t)}function Cb(e,t){let{rowId:n,updateRow:r,removeRow:i}=$e(e,t);return{rowId:n,updateRow:(t,n,i)=>r(t,{...e[t],[n]:i}),removeRow:i,addRow:()=>t([...e,{}])}}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/calendar.tsx`;function wb(e){let t=typeof e==`string`?e:typeof e==`number`?String(e):``,n=/^(\d{4})-(\d{2})-(\d{2})/.exec(t);if(n)return{year:Number(n[1]),month:Number(n[2])-1,day:Number(n[3])}}function Tb({day:e,month:t,year:n,matchingRows:r,dateKey:i,dateFld:o,restFields:s,recordCtx:c,errorFor:l,onUpdateRow:u,onRemoveRow:d,onAddRow:f,rowTools:p,editing:m}){let{t:h}=a(),[g,_]=(0,I.useState)(!1);if(e==null)return(0,L.jsxDEV)(`div`,{className:`aspect-square`},void 0,!1,{fileName:Y,lineNumber:78,columnNumber:12},this);let v=r[0],y=v!==void 0,b=`${n}-${String(t+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,x=new Date(n,t,e).toLocaleDateString(void 0,{day:`numeric`,month:`long`,year:`numeric`}),S=r.map(({idx:e})=>l(e,i)||s.map(t=>l(e,t.key)).find(Boolean)).find(Boolean),C=(0,L.jsxDEV)(`button`,{type:`button`,role:`button`,className:`relative flex aspect-square w-full items-center justify-center rounded-md text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${S?`border border-danger text-danger font-semibold`:y?`border border-accent bg-bg font-semibold text-accent shadow-xs`:`text-text hover:bg-elevated`}`,"data-testid":v?`calendar-date-${v.idx}`:void 0,"aria-label":b,children:[e,y&&(0,L.jsxDEV)(`span`,{"data-testid":`calendar-marked-${e}`,className:`absolute bottom-1 h-1 w-1 rounded-full ${S?`bg-danger`:`bg-accent`}`},void 0,!1,{fileName:Y,lineNumber:115,columnNumber:9},this),S&&(0,L.jsxDEV)(`span`,{className:`sr-only text-danger`,children:S},void 0,!1,{fileName:Y,lineNumber:120,columnNumber:24},this)]},void 0,!0,{fileName:Y,lineNumber:95,columnNumber:5},this);return p?(0,L.jsxDEV)(`div`,{"data-testid":v?`calendar-entry-${v.idx}`:void 0,className:`w-full`,children:(0,L.jsxDEV)(Ti,{open:g,onOpenChange:_,children:[(0,L.jsxDEV)(xi,{asChild:!0,children:C},void 0,!1,{fileName:Y,lineNumber:135,columnNumber:9},this),(0,L.jsxDEV)(Si,{align:`center`,className:`w-72 p-3 space-y-3 shadow-lg`,sideOffset:6,children:[(0,L.jsxDEV)(Ci,{},void 0,!1,{fileName:Y,lineNumber:137,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex items-center justify-between border-b border-border pb-2`,children:[(0,L.jsxDEV)(`span`,{className:`text-xs font-semibold text-text`,children:x},void 0,!1,{fileName:Y,lineNumber:139,columnNumber:13},this),(0,L.jsxDEV)(`span`,{className:`text-[11px] font-mono text-muted`,children:b},void 0,!1,{fileName:Y,lineNumber:140,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:138,columnNumber:11},this),y?(0,L.jsxDEV)(`div`,{className:`space-y-3`,children:r.map(({row:e,idx:t})=>{let n=l(t,i);return(0,L.jsxDEV)(`div`,{className:`space-y-2 border-b border-border pb-2 last:border-b-0 last:pb-0`,children:[n&&(0,L.jsxDEV)(`div`,{className:`text-xs text-danger font-medium`,children:n},void 0,!1,{fileName:Y,lineNumber:149,columnNumber:29},this),s.length>0&&(0,L.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,L.jsxDEV)(An,{fields:s,row:e,editing:m,onChange:(e,n)=>u(t,e,n),recordCtx:c,error:e=>l(t,e)},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:25},this),s.map(e=>{let n=l(t,e.key);return n?(0,L.jsxDEV)(`div`,{className:`text-xs text-danger font-medium`,children:n},e.key,!1,{fileName:Y,lineNumber:163,columnNumber:29},this):null})]},void 0,!0,{fileName:Y,lineNumber:151,columnNumber:23},this),(0,L.jsxDEV)(`div`,{className:`flex items-center justify-between pt-1`,children:(0,L.jsxDEV)(`button`,{type:`button`,"aria-label":`remove`,onClick:()=>{d(t),_(!1)},className:`inline-flex items-center gap-1 text-xs text-danger hover:text-danger/80 transition-colors`,children:[(0,L.jsxDEV)(ur,{size:12},void 0,!1,{fileName:Y,lineNumber:180,columnNumber:25},this),` `,h(`actions.delete`,`Delete`)]},void 0,!0,{fileName:Y,lineNumber:171,columnNumber:23},this)},void 0,!1,{fileName:Y,lineNumber:170,columnNumber:21},this)]},t,!0,{fileName:Y,lineNumber:148,columnNumber:19},this)})},void 0,!1,{fileName:Y,lineNumber:144,columnNumber:13},this):(0,L.jsxDEV)(`div`,{className:`space-y-2 pt-1`,children:(0,L.jsxDEV)(F,{size:`sm`,className:`w-full h-8 text-xs flex items-center justify-center gap-1.5`,onClick:()=>{f(b),_(!1)},children:[(0,L.jsxDEV)(se,{size:13},void 0,!1,{fileName:Y,lineNumber:197,columnNumber:17},this),` `,h(`actions.add`,`Add`)]},void 0,!0,{fileName:Y,lineNumber:189,columnNumber:15},this)},void 0,!1,{fileName:Y,lineNumber:188,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:136,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:134,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:133,columnNumber:5},this):(0,L.jsxDEV)(`div`,{"data-testid":v?`calendar-entry-${v.idx}`:void 0,className:`w-full`,children:C},void 0,!1,{fileName:Y,lineNumber:126,columnNumber:7},this)}function Eb({rows:e,dateKey:t,dateFld:n,restFields:r,recordCtx:i,errorFor:a,onUpdateRow:o,onRemoveRow:s,onAddRow:c,rowTools:l,editing:u}){let[d,f]=(0,I.useState)(()=>{for(let n of e){let e=wb(n[t]);if(e)return new Date(e.year,e.month,1)}return new Date}),p=d.getMonth(),m=d.getFullYear(),h=()=>f(new Date(m,p-1,1)),g=()=>f(new Date(m,p+1,1)),_=new Date(m,p,1),v=new Date(m,p+1,0).getDate(),y=_.getDay(),b=[...Array.from({length:y},()=>null),...Array.from({length:v},(e,t)=>t+1)];for(;b.length%7!=0;)b.push(null);let x=[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],S=new Date(m,p,1).toLocaleDateString(void 0,{month:`long`,year:`numeric`}),C=new Map,w=[];return e.forEach((e,n)=>{let r=wb(e[t]);if(r&&r.year===m&&r.month===p){let t=C.get(r.day)??[];t.push({row:e,idx:n}),C.set(r.day,t)}else r||w.push({row:e,idx:n})}),(0,L.jsxDEV)(`div`,{className:`w-full max-w-[280px] rounded-lg border border-border bg-surface p-3`,"data-testid":`calendar-grid`,children:[(0,L.jsxDEV)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,L.jsxDEV)(`span`,{className:`text-xs font-semibold text-text capitalize`,children:S},void 0,!1,{fileName:Y,lineNumber:274,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[(0,L.jsxDEV)(`button`,{type:`button`,onClick:h,"aria-label":`Previous month`,className:`rounded p-1 text-muted hover:bg-elevated hover:text-text transition-colors`,children:(0,L.jsxDEV)(je,{size:13},void 0,!1,{fileName:Y,lineNumber:282,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:276,columnNumber:11},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:g,"aria-label":`Next month`,className:`rounded p-1 text-muted hover:bg-elevated hover:text-text transition-colors`,children:(0,L.jsxDEV)(Se,{size:13},void 0,!1,{fileName:Y,lineNumber:290,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:284,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:275,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:273,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`mb-1 grid grid-cols-7 gap-1 text-center text-[10px] font-medium text-muted`,children:x.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`py-0.5`,children:e},t,!1,{fileName:Y,lineNumber:296,columnNumber:11},this))},void 0,!1,{fileName:Y,lineNumber:294,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-1`,children:b.map((e,d)=>(0,L.jsxDEV)(Tb,{day:e,month:p,year:m,matchingRows:e==null?[]:C.get(e)??[],dateKey:t,dateFld:n,restFields:r,recordCtx:i,errorFor:a,onUpdateRow:o,onRemoveRow:s,onAddRow:c,rowTools:l,editing:u},d,!1,{fileName:Y,lineNumber:303,columnNumber:11},this))},void 0,!1,{fileName:Y,lineNumber:301,columnNumber:7},this),w.length>0&&(0,L.jsxDEV)(`div`,{className:`mt-3 space-y-1.5 border-t border-border pt-2`,children:w.map(({idx:e})=>{let n=a(e,t);return(0,L.jsxDEV)(`div`,{"data-testid":`calendar-entry-${e}`,className:`flex items-center justify-between text-xs`,children:[(0,L.jsxDEV)(`div`,{"data-testid":`calendar-date-${e}`,className:`text-danger font-medium`,children:n||`Required`},void 0,!1,{fileName:Y,lineNumber:333,columnNumber:17},this),l&&(0,L.jsxDEV)(Ye,{onClick:()=>s(e)},void 0,!1,{fileName:Y,lineNumber:336,columnNumber:30},this)]},e,!0,{fileName:Y,lineNumber:328,columnNumber:15},this)})},void 0,!1,{fileName:Y,lineNumber:324,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:272,columnNumber:5},this)}function Db({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.date,d=Sb(l,u),f=Xh(r,t,e=>c(e)),p=Array.isArray(f.value)?f.value:[],m=f.mode!==`view`,h=E()&&r===`view`,g=m||h;if(!d||!u)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:Y,lineNumber:363,columnNumber:7},this);let _=l.fields.filter(e=>Cr(e)&&e.key!==u).map(e=>({key:e.key,type:e.type})),v=(0,L.jsxDEV)(Eb,{rows:p,dateKey:u,dateFld:d,restFields:_,recordCtx:n,errorFor:(e,t)=>kr(l)?s([l.key,e,t]):void 0,onUpdateRow:(e,t,n)=>{let r={...p[e],[t]:n};f.onChange(p.map((t,n)=>n===e?r:t))},onRemoveRow:e=>{f.onChange(p.filter((t,n)=>n!==e))},onAddRow:e=>{f.onChange([...p,{[u]:e}])},rowTools:g,editing:m},void 0,!1,{fileName:Y,lineNumber:395,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`calendar`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:p.length,actions:!h&&f.actions},void 0,!1,{fileName:Y,lineNumber:414,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:v},void 0,!1,{fileName:Y,lineNumber:415,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:413,columnNumber:5},this):v}j({kinds:[`calendar`],layout:`block`,Page:Db,editor:`own`});var Ob=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/journal.tsx`;function kb(e,t,n,r,i,a,o,s){return r?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:n,value:t[n]??``,onChange:a,mode:`edit`,bare:!0,recordCtx:o,error:s},void 0,!1,{fileName:Ob,lineNumber:85,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:i?n:void 0,value:t[n]??``,mode:`view`,bare:!i,recordCtx:o,onChange:i?a:void 0,error:s},void 0,!1,{fileName:Ob,lineNumber:99,columnNumber:5},this)}function Ab({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.date,d=l.view?.text,f=Sb(l,u),p=Sb(l,d),m=Xh(r,t,e=>c(e)),h=Array.isArray(m.value)?m.value:[],g=m.mode!==`view`,_=E()&&r===`view`,v=g||_,{rowId:y,updateRow:b,removeRow:x,addRow:S}=Cb(h,e=>m.onChange(e));if(!f||!p||!u||!d)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:Ob,lineNumber:137,columnNumber:7},this);let C=l.fields.filter(e=>Cr(e)&&e.key!==u&&e.key!==d).map(e=>({key:e.key,type:e.type})),w=(e,t)=>kr(l)?s([l.key,e,t]):void 0,T=(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[h.map((e,t)=>(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`flex items-start gap-3`,"data-testid":`journal-entry-${t}`,children:[(0,L.jsxDEV)(`div`,{className:`w-20 shrink-0 text-xs text-muted ${Pt(f.type)}`.trim(),"data-testid":`journal-date-${t}`,children:kb(f,e,u,g,_,e=>b(t,u,e),n,w(t,u))},void 0,!1,{fileName:Ob,lineNumber:159,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 text-sm`,"data-testid":`journal-text-${t}`,children:kb(p,e,d,g,_,e=>b(t,d,e),n,w(t,d))},void 0,!1,{fileName:Ob,lineNumber:174,columnNumber:13},this),C.length>0&&(0,L.jsxDEV)(An,{fields:C,row:e,editing:g,onChange:(e,n)=>b(t,e,n),recordCtx:n,error:e=>w(t,e)},void 0,!1,{fileName:Ob,lineNumber:187,columnNumber:15},this),v&&(0,L.jsxDEV)(Ye,{className:`mt-0.5`,onClick:()=>x(t)},void 0,!1,{fileName:Ob,lineNumber:196,columnNumber:26},this)]},void 0,!0,{fileName:Ob,lineNumber:158,columnNumber:11},this)},y(e),!1,{fileName:Ob,lineNumber:157,columnNumber:9},this)),v&&(0,L.jsxDEV)(Ft,{onClick:S,children:i(`form.addRow`)},void 0,!1,{fileName:Ob,lineNumber:200,columnNumber:20},this)]},void 0,!0,{fileName:Ob,lineNumber:155,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`journal`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:h.length,actions:!_&&m.actions},void 0,!1,{fileName:Ob,lineNumber:208,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:T},void 0,!1,{fileName:Ob,lineNumber:209,columnNumber:7},this)]},void 0,!0,{fileName:Ob,lineNumber:207,columnNumber:5},this):T}j({kinds:[`journal`],layout:`block`,Page:Ab,editor:`own`});var jb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/manifest.tsx`;function Mb(e,t,n,r,i,a,o,s){return r?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:n,value:t[n]??``,onChange:a,mode:`edit`,bare:!0,recordCtx:o,error:s},void 0,!1,{fileName:jb,lineNumber:63,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:i?n:void 0,value:t[n]??``,mode:`view`,bare:!i,recordCtx:o,onChange:i?a:void 0,error:s},void 0,!1,{fileName:jb,lineNumber:77,columnNumber:5},this)}function Nb({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.quantity,d=l.view?.item,f=Sb(l,u),p=Sb(l,d),m=Xh(r,t,e=>c(e)),h=Array.isArray(m.value)?m.value:[],g=m.mode!==`view`,_=E()&&r===`view`,v=g||_,{rowId:y,updateRow:b,removeRow:x,addRow:S}=Cb(h,e=>m.onChange(e));if(!f||!p||!u||!d)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:jb,lineNumber:113,columnNumber:7},this);let C=l.fields.filter(e=>Cr(e)&&e.key!==u&&e.key!==d).map(e=>({key:e.key,type:e.type})),w=(e,t)=>kr(l)?s([l.key,e,t]):void 0,T=(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[h.map((e,t)=>(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3`,"data-testid":`manifest-row-${t}`,children:[(0,L.jsxDEV)(`div`,{className:`w-12 shrink-0 text-right text-sm ${Pt(f.type)}`.trim(),"data-testid":`manifest-quantity-${t}`,children:Mb(f,e,u,g,_,e=>b(t,u,e),n,w(t,u))},void 0,!1,{fileName:jb,lineNumber:135,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 text-sm`,"data-testid":`manifest-item-${t}`,children:Mb(p,e,d,g,_,e=>b(t,d,e),n,w(t,d))},void 0,!1,{fileName:jb,lineNumber:150,columnNumber:13},this),C.length>0&&(0,L.jsxDEV)(An,{fields:C,row:e,editing:g,onChange:(e,n)=>b(t,e,n),recordCtx:n,error:e=>w(t,e)},void 0,!1,{fileName:jb,lineNumber:163,columnNumber:15},this),v&&(0,L.jsxDEV)(Ye,{onClick:()=>x(t)},void 0,!1,{fileName:jb,lineNumber:172,columnNumber:26},this)]},void 0,!0,{fileName:jb,lineNumber:134,columnNumber:11},this)},y(e),!1,{fileName:jb,lineNumber:133,columnNumber:9},this)),v&&(0,L.jsxDEV)(Ft,{onClick:S,children:i(`form.addRow`)},void 0,!1,{fileName:jb,lineNumber:176,columnNumber:20},this)]},void 0,!0,{fileName:jb,lineNumber:131,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`manifest`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:h.length,actions:!_&&m.actions},void 0,!1,{fileName:jb,lineNumber:184,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:T},void 0,!1,{fileName:jb,lineNumber:185,columnNumber:7},this)]},void 0,!0,{fileName:jb,lineNumber:183,columnNumber:5},this):T}j({kinds:[`manifest`],layout:`block`,Page:Nb,editor:`own`});var Pb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/assay.tsx`;function Fb(e){if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ib({value:e,low:t,high:n}){return e===null?!1:t!==null&&e<t||n!==null&&e>n}function Lb(e){let{value:t,low:n,high:r}=e;if(n===null||r===null||!(r>n))return null;let i=r-n,a=n-i*.6,o=r+i*.6,s=e=>(e-a)/(o-a)*100;return{refLeft:s(n),refWidth:s(r)-s(n),tick:t===null?null:Math.min(100,Math.max(0,s(t)))}}function Rb(e,t,n,r,i,a,o,s){return r?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:n,value:t[n]??``,onChange:a,mode:`edit`,bare:!0,recordCtx:o,error:s},void 0,!1,{fileName:Pb,lineNumber:109,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:i?n:void 0,value:t[n]??``,mode:`view`,bare:!i,recordCtx:o,onChange:i?a:void 0,error:s},void 0,!1,{fileName:Pb,lineNumber:123,columnNumber:5},this)}function zb({reading:e,out:t,idx:n}){let r=Lb(e);return r?(0,L.jsxDEV)(`div`,{className:`relative h-2.5 min-w-0`,"data-testid":`assay-band-${n}`,"data-out":t||void 0,children:[(0,L.jsxDEV)(`span`,{className:`absolute inset-x-0 top-1 block h-0.5 rounded-full bg-border`},void 0,!1,{fileName:Pb,lineNumber:146,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`absolute top-[3px] block h-0.5 rounded-full bg-success`,style:{left:`${r.refLeft}%`,width:`${r.refWidth}%`}},void 0,!1,{fileName:Pb,lineNumber:152,columnNumber:7},this),r.tick!==null&&(0,L.jsxDEV)(`span`,{className:`absolute -top-px block h-3 w-0.5 -translate-x-1/2 rounded-full ${t?`w-1 bg-danger`:`bg-text`}`,style:{left:`${r.tick}%`},"data-testid":`assay-tick-${n}`},void 0,!1,{fileName:Pb,lineNumber:157,columnNumber:9},this)]},void 0,!0,{fileName:Pb,lineNumber:144,columnNumber:5},this):(0,L.jsxDEV)(`div`,{"data-testid":`assay-band-${n}`},void 0,!1,{fileName:Pb,lineNumber:142,columnNumber:21},this)}function Bb({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.analyte,d=l.view?.value,f=l.view?.unit,p=l.view?.low,m=l.view?.high,h=Sb(l,u),g=Sb(l,d),_=Sb(l,f),v=Xh(r,t,e=>c(e)),y=Array.isArray(v.value)?v.value:[],b=v.mode!==`view`,x=E()&&r===`view`,S=b||x,{rowId:C,updateRow:w,removeRow:T,addRow:ee}=Cb(y,e=>v.onChange(e));if(!h||!g||!u||!d)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:Pb,lineNumber:195,columnNumber:7},this);let te=new Set([u,d,f,p,m].filter(Boolean)),ne=l.fields.filter(e=>Cr(e)&&!te.has(e.key)).map(e=>({key:e.key,type:e.type})),re=(e,t)=>kr(l)?s([l.key,e,t]):void 0,ie=e=>({value:Fb(e[d]),low:p?Fb(e[p]):null,high:m?Fb(e[m]):null}),ae=(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[y.map((e,t)=>{let r=ie(e),i=Ib(r);return(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[minmax(0,1.4fr)_auto_minmax(90px,1.1fr)]`,"data-testid":`assay-row-${t}`,"data-out":i||void 0,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm`,"data-testid":`assay-analyte-${t}`,children:Rb(h,e,u,b,x,e=>w(t,u,e),n,re(t,u))},void 0,!1,{fileName:Pb,lineNumber:233,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`flex items-baseline justify-end gap-1 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`font-semibold ${i?`text-danger`:``} ${Pt(g.type)}`.trim(),"data-testid":`assay-value-${t}`,children:Rb(g,e,d,b,x,e=>w(t,d,e),n,re(t,d))},void 0,!1,{fileName:Pb,lineNumber:247,columnNumber:17},this),_&&f&&(0,L.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,"data-testid":`assay-unit-${t}`,children:Rb(_,e,f,b,x,e=>w(t,f,e),n,re(t,f))},void 0,!1,{fileName:Pb,lineNumber:263,columnNumber:19},this)]},void 0,!0,{fileName:Pb,lineNumber:246,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`col-span-2 min-w-0 @sm:col-span-1`,children:b?(0,L.jsxDEV)(An,{fields:[p,m].filter(e=>!!e).map(e=>({key:e,type:Sb(l,e).type})),row:e,editing:!0,onChange:(e,n)=>w(t,e,n),recordCtx:n,error:e=>re(t,e)},void 0,!1,{fileName:Pb,lineNumber:282,columnNumber:19},this):(0,L.jsxDEV)(zb,{reading:r,out:i,idx:t},void 0,!1,{fileName:Pb,lineNumber:293,columnNumber:19},this)},void 0,!1,{fileName:Pb,lineNumber:280,columnNumber:15},this),ne.length>0&&(0,L.jsxDEV)(`div`,{className:`col-span-2 min-w-0 @sm:col-span-3`,children:(0,L.jsxDEV)(An,{fields:ne,row:e,editing:b,onChange:(e,n)=>w(t,e,n),recordCtx:n,error:e=>re(t,e)},void 0,!1,{fileName:Pb,lineNumber:299,columnNumber:19},this)},void 0,!1,{fileName:Pb,lineNumber:298,columnNumber:17},this),S&&(0,L.jsxDEV)(`div`,{className:`col-span-2 flex justify-end @sm:col-span-3`,children:(0,L.jsxDEV)(Ye,{onClick:()=>T(t)},void 0,!1,{fileName:Pb,lineNumber:312,columnNumber:19},this)},void 0,!1,{fileName:Pb,lineNumber:311,columnNumber:17},this)]},void 0,!0,{fileName:Pb,lineNumber:228,columnNumber:13},this)},C(e),!1,{fileName:Pb,lineNumber:227,columnNumber:11},this)}),S&&(0,L.jsxDEV)(Ft,{onClick:ee,children:i(`form.addRow`)},void 0,!1,{fileName:Pb,lineNumber:319,columnNumber:20},this)]},void 0,!0,{fileName:Pb,lineNumber:222,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`assay`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:y.length,actions:!x&&v.actions},void 0,!1,{fileName:Pb,lineNumber:327,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:ae},void 0,!1,{fileName:Pb,lineNumber:328,columnNumber:7},this)]},void 0,!0,{fileName:Pb,lineNumber:326,columnNumber:5},this):ae}j({kinds:[`assay`],layout:`block`,Page:Bb,editor:`own`});var Vb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/flow.tsx`;function Hb({slot:e,testid:t}){let{t:n}=a();return(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,"data-testid":t,children:[e.handle.field.label&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(e.handle.field.label)},void 0,!1,{fileName:Vb,lineNumber:35,columnNumber:35},this),(0,L.jsxDEV)(`div`,{className:`mt-0.5 min-w-0 text-sm`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:Vb,lineNumber:37,columnNumber:9},this)},void 0,!1,{fileName:Vb,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:Vb,lineNumber:34,columnNumber:5},this)}function Ub({el:e}){let{t}=a(),n=Un(),r=e,i=r.view?.amount,o=r.view?.from,s=r.view?.to,c=r.view?.meta??[],l=M(),u=Pv(l,i),d=Pv(l,o),f=Pv(l,s),p=Fv(l,c).filter(e=>!e.handle.hidden),m=[d,f].filter(e=>!!e&&!e.handle.hidden);return(0,L.jsxDEV)(`section`,{className:`${Et(n)} flex flex-col gap-1 min-w-0`,"data-testid":`flow`,"data-ends":m.length,children:[r.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:t(r.label)},void 0,!1,{fileName:Vb,lineNumber:69,columnNumber:19},this),(0,L.jsxDEV)(xt,{depth:n+1,children:(0,L.jsxDEV)(`div`,{className:`rounded-xl border border-border border-l-4 bg-surface px-4 py-3`,children:[u&&(0,L.jsxDEV)(`div`,{className:`text-2xl font-semibold`,"data-testid":`flow-amount`,children:(0,L.jsxDEV)(N,{name:u.name},void 0,!1,{fileName:Vb,lineNumber:74,columnNumber:15},this)},void 0,!1,{fileName:Vb,lineNumber:73,columnNumber:13},this),m.length>0&&(0,L.jsxDEV)(`div`,{className:`mt-3 flex flex-wrap items-end gap-3`,"data-testid":`flow-path`,children:[d&&!d.handle.hidden&&(0,L.jsxDEV)(Hb,{slot:d,testid:`flow-from`},void 0,!1,{fileName:Vb,lineNumber:80,columnNumber:47},this),m.length===2&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`shrink-0 pb-0.5 text-lg text-faint`,children:`→`},void 0,!1,{fileName:Vb,lineNumber:84,columnNumber:17},this),f&&!f.handle.hidden&&(0,L.jsxDEV)(Hb,{slot:f,testid:`flow-to`},void 0,!1,{fileName:Vb,lineNumber:88,columnNumber:43},this)]},void 0,!0,{fileName:Vb,lineNumber:79,columnNumber:13},this),p.length>0&&(0,L.jsxDEV)(`div`,{className:`mt-4 border-t border-border pt-3`,"data-testid":`flow-meta`,children:(0,L.jsxDEV)(mn,{items:p.map(e=>({key:e.name,span:Ln(e.handle.field),node:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:Vb,lineNumber:98,columnNumber:25},this)}))},void 0,!1,{fileName:Vb,lineNumber:94,columnNumber:15},this)},void 0,!1,{fileName:Vb,lineNumber:93,columnNumber:13},this)]},void 0,!0,{fileName:Vb,lineNumber:71,columnNumber:9},this)},void 0,!1,{fileName:Vb,lineNumber:70,columnNumber:7},this)]},void 0,!0,{fileName:Vb,lineNumber:64,columnNumber:5},this)}j({kinds:[`flow`],layout:`block`,Page:Ub,editor:`own`});var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/table.tsx`,Wb=` __table_none__`;function Gb(e){return e.fields.filter(e=>Cr(e))}var Kb=new Set;function qb(e,t,n){let r=`${e.key}:${t}:${n}`;Kb.has(r)||(Kb.add(r),console.warn(`[table] '${e.key}': ${t} names '${n}', which is not a column of the row; ignored.`))}function Jb(e,t){let n=Yr(e.type,e.key,t),r=Ur(e.type),i=r?$r(n,r):n,a=i==null||i===``?NaN:Number(i);return Number.isFinite(a)?a:void 0}function Yb(e,t,n){if(e===`count`)return n.length;let r=n.map(e=>Jb(t,e)).filter(e=>e!==void 0);if(r.length){if(e===`sum`)return r.reduce((e,t)=>e+t,0);if(e===`avg`)return r.reduce((e,t)=>e+t,0)/r.length;if(e===`min`)return Math.min(...r);if(e!==`range`)return Math.max(...r)}}function Xb(e,t){let n=t.map(t=>Jb(e,t)).filter(e=>e!==void 0);if(n.length)return[Math.min(...n),Math.max(...n)]}function Zb(e,t,n){let r=Ur(e.type);return r?Lr(t.map(t=>Yr(e.type,e.key,t)).find(e=>e&&typeof e==`object`),r,n):n}function Qb(e,t,n,r,i,a,o){return n?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:e.key,value:t[e.key]??``,onChange:i,mode:`edit`,bare:!0,recordCtx:a,error:o},void 0,!1,{fileName:X,lineNumber:136,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:r?e.key:void 0,value:t[e.key]??``,mode:`view`,bare:!r,recordCtx:a,onChange:r?i:void 0,error:o},void 0,!1,{fileName:X,lineNumber:150,columnNumber:5},this)}function $b({el:e,value:t,recordCtx:n,mode:r}){let{t:i,i18n:o}=a(),s=Un(),c=Ge(),{write:l}=ce(),u=e,d=Gb(u),f=u.view?.sort,p=u.view?.dir??`asc`,m=e=>d.find(t=>t.key===e);f&&!m(f)&&qb(u,`sort`,f);let[h,g]=(0,I.useState)(f&&m(f)?{key:f,dir:p}:null),_=e=>g(t=>t?.key===e?t.dir===`asc`?{key:e,dir:`desc`}:null:{key:e,dir:`asc`}),v=Xh(r,t,e=>l(e)),y=Array.isArray(v.value)?v.value:[],b=v.mode!==`view`,x=E()&&r===`view`,S=(0,I.useMemo)(()=>({t:i,locale:o.language}),[i,o.language]),C=(0,I.useMemo)(()=>{if(b||!h)return y;let e=m(h.key);return e?St(y,h.key,h.dir,e.type,S):y},[y,h,b,S]),w=(0,I.useMemo)(()=>new Map(y.map((e,t)=>[e,t])),[y]),T=u.view?.groupBy,ee=m(T);T&&!ee&&qb(u,`groupBy`,T);let te=(0,I.useMemo)(()=>{if(b||!T||!ee)return[{key:null,sort:``,label:``,rows:C}];let e=new Map,t=[];for(let n of C){let r=Ie(ee.type,Yr(ee.type,T,n),S)[0];if(!r){t.push(n);continue}let i=e.get(r.value)??{key:r.value,sort:r.sort??r.value,label:r.label,rows:[]};i.rows.push(n),e.set(r.value,i)}let n=[...e.values()].sort((e,t)=>e.sort.localeCompare(t.sort,void 0,{numeric:!0,sensitivity:`base`}));return t.length&&n.push({key:Wb,sort:Wb,label:i(`table.noValue`),rows:t}),n},[C,b,T,ee,S,i]),ne=b||x,re=u.view?.numbered===!0,ie=u.view?.totals;for(let e of Object.keys(ie??{}))m(e)||qb(u,`totals`,e);let ae=!!(ie&&Object.keys(ie).some(e=>m(e))),oe=(e,t)=>(0,L.jsxDEV)(`tr`,{"data-testid":t,className:`text-xs text-muted`,children:[re&&(0,L.jsxDEV)(`td`,{className:`border-b border-border py-1.5 pr-3`},void 0,!1,{fileName:X,lineNumber:252,columnNumber:20},this),d.map((t,r)=>{let a=ie?.[t.key],o=a&&m(t.key)?Yb(a,t,e):void 0;return(0,L.jsxDEV)(`td`,{className:`border-b border-border py-1.5 pr-4 ${Pt(t.type)}`.trim(),children:[r===0&&!ie?.[t.key]?i(`table.total`):null,o===void 0?null:(0,L.jsxDEV)(k,{el:t,field:t.type,value:Zb(t,e,o),mode:`view`,bare:!0,recordCtx:n},void 0,!1,{fileName:X,lineNumber:260,columnNumber:15},this)]},t.key,!0,{fileName:X,lineNumber:257,columnNumber:11},this)}),ne&&(0,L.jsxDEV)(`td`,{className:`border-b border-border`},void 0,!1,{fileName:X,lineNumber:272,columnNumber:20},this)]},void 0,!0,{fileName:X,lineNumber:251,columnNumber:5},this),{rowId:se,updateRow:D,removeRow:le,addRow:ue}=Cb(y,e=>v.onChange(e)),de=(e,t)=>kr(u)?c([u.key,e,t]):void 0,fe=(e,t,r)=>(0,L.jsxDEV)(`tr`,{"data-testid":`table-row-${t}`,children:[re&&(0,L.jsxDEV)(`td`,{className:`border-b border-border py-2 pr-3 text-xs text-muted`,children:r},void 0,!1,{fileName:X,lineNumber:283,columnNumber:20},this),d.map(r=>(0,L.jsxDEV)(`td`,{className:`border-b border-border py-2 pr-4 align-top ${Pt(r.type)}`.trim(),children:[(0,L.jsxDEV)(`span`,{className:`table-cell-label ${ft}`,children:i(r.type.label)},void 0,!1,{fileName:X,lineNumber:289,columnNumber:11},this),Qb(r,e,b,x,e=>D(t,r.key,e),n,de(t,r.key))]},r.key,!0,{fileName:X,lineNumber:285,columnNumber:9},this)),ne&&(0,L.jsxDEV)(`td`,{className:`border-b border-border py-2 align-top`,children:(0,L.jsxDEV)(Ye,{className:`mt-0.5`,onClick:()=>le(t)},void 0,!1,{fileName:X,lineNumber:295,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:294,columnNumber:9},this)]},se(e),!0,{fileName:X,lineNumber:282,columnNumber:5},this),pe=u.view?.summary,me=(e,t)=>(0,L.jsxDEV)(k,{el:e,field:e.type,value:Zb(e,y,t),mode:`view`,recordCtx:n},void 0,!1,{fileName:X,lineNumber:315,columnNumber:5},this),he=Object.entries(pe??{}).flatMap(([e,t])=>{let n=d.find(t=>t.key===e);if(!n)return[];if(t===`range`){let t=Xb(n,y);return t?[{key:e,node:(0,L.jsxDEV)(L.Fragment,{children:[me(n,t[0]),` `,(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`–`},void 0,!1,{fileName:X,lineNumber:328,columnNumber:38},this),` `,me(n,t[1])]},void 0,!0,{fileName:X,lineNumber:327,columnNumber:17},this)}]:[]}let r=Yb(t,n,y);return r===void 0?[]:[{key:e,node:t===`count`?(0,L.jsxDEV)(L.Fragment,{children:r},void 0,!1,{fileName:X,lineNumber:337,columnNumber:45},this):me(n,r)}]}),ge=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[he.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-1 text-sm text-muted`,"data-testid":`table-summary`,children:he.map((e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-1 text-text ${t>0?`before:mr-2 before:text-muted before:content-['·']`:``}`,children:e.node},e.key,!1,{fileName:X,lineNumber:345,columnNumber:13},this))},void 0,!1,{fileName:X,lineNumber:343,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`table-fold overflow-auto max-h-[60vh]`,children:(0,L.jsxDEV)(`table`,{className:`w-full border-separate border-spacing-0 text-sm`,"data-testid":`table-block`,children:[(0,L.jsxDEV)(`thead`,{className:`eink-solid sticky top-0 z-10 bg-bg/95 backdrop-blur`,children:(0,L.jsxDEV)(`tr`,{children:[re&&(0,L.jsxDEV)(`th`,{className:`border-b border-border py-1.5 pr-3`},void 0,!1,{fileName:X,lineNumber:365,columnNumber:28},this),d.map(e=>(0,L.jsxDEV)(`th`,{className:`border-b border-border py-1.5 pr-4 text-left ${ft}`,children:(0,L.jsxDEV)(`button`,{type:`button`,className:`inline-flex items-center gap-1 focus-visible:outline-2 focus-visible:outline-accent`,onClick:()=>_(e.key),children:[i(e.type.label),!b&&h?.key===e.key&&(0,L.jsxDEV)(rr,{name:h.dir===`asc`?`lucide:arrow-up`:`lucide:arrow-down`,className:`size-3`},void 0,!1,{fileName:X,lineNumber:377,columnNumber:23},this)]},void 0,!0,{fileName:X,lineNumber:368,columnNumber:19},this)},e.key,!1,{fileName:X,lineNumber:367,columnNumber:17},this)),ne&&(0,L.jsxDEV)(`th`,{className:`border-b border-border`},void 0,!1,{fileName:X,lineNumber:382,columnNumber:28},this)]},void 0,!0,{fileName:X,lineNumber:364,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:363,columnNumber:11},this),te.map(e=>(0,L.jsxDEV)(`tbody`,{children:[e.key!==null&&(0,L.jsxDEV)(`tr`,{"data-testid":`table-group-${e.key}`,children:(0,L.jsxDEV)(`th`,{colSpan:d.length+ +!!re+ +!!ne,className:`border-b border-border pt-4 pb-1 text-left min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted ${ee?Pt(ee.type):``}`.trim(),children:[e.key===Wb||!ee?e.label:(0,L.jsxDEV)(k,{el:ee,field:ee.type,value:e.rows[0]?.[T??``],mode:`view`,bare:!0,recordCtx:n},void 0,!1,{fileName:X,lineNumber:420,columnNumber:23},this),` `,(0,L.jsxDEV)(`span`,{className:`text-faint`,children:e.rows.length},void 0,!1,{fileName:X,lineNumber:429,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:389,columnNumber:19},this)},void 0,!1,{fileName:X,lineNumber:388,columnNumber:17},this),e.rows.map((e,t)=>fe(e,w.get(e)??-1,t+1)),ae&&e.key!==null&&oe(e.rows,`table-subtotal-${e.key}`)]},e.key??`all`,!0,{fileName:X,lineNumber:386,columnNumber:13},this)),ae&&(0,L.jsxDEV)(`tfoot`,{children:oe(y,`table-total`)},void 0,!1,{fileName:X,lineNumber:441,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:362,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:361,columnNumber:7},this),ne&&(0,L.jsxDEV)(Ft,{onClick:ue,children:i(`form.addRow`)},void 0,!1,{fileName:X,lineNumber:444,columnNumber:20},this)]},void 0,!0,{fileName:X,lineNumber:341,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(s)} flex flex-col gap-1 min-w-0`,"data-testid":`table`,children:[u.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(u.label),count:y.length,actions:!x&&v.actions},void 0,!1,{fileName:X,lineNumber:452,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:s+1,children:ge},void 0,!1,{fileName:X,lineNumber:453,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:451,columnNumber:5},this):ge}j({kinds:[`table`],layout:`block`,Page:$b,editor:`own`});var ex=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/properties.tsx`,tx={2:`grid-cols-1 @sm:grid-cols-2`,3:`grid-cols-1 @sm:grid-cols-2 @md:grid-cols-3`,4:`grid-cols-1 @sm:grid-cols-2 @md:grid-cols-4`};function nx({el:e}){let t=e,n=tx[t.view?.columns??2]??tx[2],r=M(),i=(0,L.jsxDEV)(`div`,{className:`@container grid gap-x-4 gap-y-3.5 p-4 rounded-xl border border-border bg-elevated ${n}`,children:r.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`properties-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:ex,lineNumber:30,columnNumber:13},this)},e.name,!1,{fileName:ex,lineNumber:29,columnNumber:11},this))},void 0,!1,{fileName:ex,lineNumber:25,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:i},void 0,!1,{fileName:ex,lineNumber:38,columnNumber:5},this)}j({kinds:[`properties`],layout:`block`,editor:`own`,Page:nx});var rx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/stack.tsx`;function ix({el:e}){let t=e,n=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-3 w-full`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`w-full min-w-0`,"data-testid":`stack-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:rx,lineNumber:19,columnNumber:13},this)},e.name,!1,{fileName:rx,lineNumber:18,columnNumber:11},this))},void 0,!1,{fileName:rx,lineNumber:14,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:n},void 0,!1,{fileName:rx,lineNumber:27,columnNumber:5},this)}j({kinds:[`stack`],layout:`block`,editor:`own`,Page:ix});function ax(e){let t=typeof e==`string`?e:typeof e==`number`?String(e):``,n=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?)?/.exec(t);if(n)return Date.UTC(Number(n[1]),Number(n[2])-1,Number(n[3]),Number(n[4]??0),Number(n[5]??0),Number(n[6]??0))}function ox(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?t:void 0}}function sx(e,t,n){let r=[];for(let i of e){let e=ox(i[t]);e!==void 0&&r.push({value:e,t:ax(i[n]),row:i})}return r.length>1&&r.every(e=>e.t!==void 0)&&r.sort((e,t)=>e.t-t.t),r}function cx(e){return Math.round(e*100)/100}function lx(e,t){let n=t.pad??0,r=Math.max(0,t.width-n*2),i=Math.max(0,t.height-n*2),a=e.filter(e=>Number.isFinite(e.value));if(a.length===0)return{path:``,coords:[],min:void 0,max:void 0};let o=a.map(e=>e.value),s=Math.min(...o),c=Math.max(...o),l=c-s,u=a.map((e,t)=>{let o=a.length>1?t/(a.length-1):0,c=l>0?(e.value-s)/l:.5;return{x:cx(n+o*r),y:cx(n+(1-c)*i)}}),d=u.map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `);return{path:u.length===1?`${d} L ${u[0].x} ${u[0].y}`:d,coords:u,min:s,max:c}}function ux(e){if(!(e.length<2))return e[e.length-1].value-e[e.length-2].value}var dx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/chart.tsx`,fx={width:100,height:28,pad:2};function px(e){let t=Math.round(e*100)/100;return`${t>0?`+`:``}${t}`}function mx({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),{write:s}=ce(),c=e,l=c.view?.value,u=c.view?.date,d=!!c.view?.delta,f=Sb(c,l),p=Sb(c,u),m=Xh(r,t,e=>s(e)),h=Array.isArray(m.value)?m.value:[],g=m.mode!==`view`;if(!l||!u||!f||!p)return(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:t,onChange:e=>void s(e),recordCtx:n,mode:r},void 0,!1,{fileName:dx,lineNumber:75,columnNumber:7},this);let _=sx(h,l,u),v=lx(_,fx),y=_[_.length-1],b=d?ux(_):void 0,x=(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:m.value,onChange:e=>m.onChange(e),recordCtx:n,mode:`edit`},void 0,!1,{fileName:dx,lineNumber:95,columnNumber:5},this),S=e=>(0,L.jsxDEV)(k,{el:f,field:f.type,value:e.row?.[l]??e.value,mode:`view`,bare:!0,recordCtx:n},void 0,!1,{fileName:dx,lineNumber:109,columnNumber:5},this),C=_.length?_.reduce((e,t)=>t.value<e.value?t:e):void 0,w=_.length?_.reduce((e,t)=>t.value>e.value?t:e):void 0,T=y===void 0?(0,L.jsxDEV)(`p`,{className:`py-1 text-sm text-muted`,"data-testid":`chart-empty`,children:i(`form.noSeries`,`No readings yet`)},void 0,!1,{fileName:dx,lineNumber:123,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,"data-testid":`chart-body`,children:[(0,L.jsxDEV)(`div`,{className:`flex items-baseline gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-2xl font-semibold text-text ${Pt(f.type)}`.trim(),"data-testid":`chart-last`,children:S(y)},void 0,!1,{fileName:dx,lineNumber:129,columnNumber:11},this),b!==void 0&&(0,L.jsxDEV)(`span`,{className:`text-sm font-medium tabular-nums ${b>0?`text-success`:b<0?`text-danger`:`text-muted`}`,"data-testid":`chart-delta`,children:px(b)},void 0,!1,{fileName:dx,lineNumber:143,columnNumber:13},this)]},void 0,!0,{fileName:dx,lineNumber:128,columnNumber:9},this),(0,L.jsxDEV)(`svg`,{className:`h-12 w-full text-accent`,viewBox:`0 0 ${fx.width} ${fx.height}`,preserveAspectRatio:`none`,"aria-hidden":`true`,"data-testid":`chart-spark`,children:(0,L.jsxDEV)(`path`,{d:v.path,"data-testid":`chart-path`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`},void 0,!1,{fileName:dx,lineNumber:160,columnNumber:11},this)},void 0,!1,{fileName:dx,lineNumber:151,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex items-baseline gap-1 text-[10px] text-muted ${Pt(f.type)}`.trim(),"data-testid":`chart-range`,children:[C&&S(C),(0,L.jsxDEV)(`span`,{"aria-hidden":`true`,children:`–`},void 0,!1,{fileName:dx,lineNumber:182,columnNumber:11},this),w&&S(w)]},void 0,!0,{fileName:dx,lineNumber:177,columnNumber:9},this)]},void 0,!0,{fileName:dx,lineNumber:127,columnNumber:7},this),ee=g?x:T;return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`chart`,children:[c.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(c.label),count:h.length,actions:m.actions},void 0,!1,{fileName:dx,lineNumber:194,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:ee},void 0,!1,{fileName:dx,lineNumber:195,columnNumber:7},this)]},void 0,!0,{fileName:dx,lineNumber:193,columnNumber:5},this):ee}j({kinds:[`chart`],layout:`block`,Page:mx,editor:`own`});var hx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/heatmap.tsx`,gx=864e5,_x=4,vx=260;function yx(e,t,n){return!Number.isFinite(e)||e<=0?0:n===t?Math.ceil(_x/2):Math.min(_x,Math.max(1,Math.ceil(e/n*_x)))}function bx(e){return Math.floor(e/gx)*gx}function xx(e){return new Date(e).toISOString().slice(0,10)}function Sx(e){return(new Date(e).getUTCDay()+6)%7}function Cx(e){return e-Sx(e)*gx}function wx(e){return e+(6-Sx(e))*gx}function Tx(e){if(e.size===0)return;let t=[...e.keys()].sort((e,t)=>e-t),n=t[0],r=t[t.length-1];if(Math.round((wx(r)-Cx(n)+gx)/(gx*7))>vx){let i=Ex(t,e);n=i.from,r=i.to}let i=0;for(let[t,a]of e)(t<n||t>r)&&(i+=a);let a=Cx(n),o=wx(r),s=[];for(let e=a;e<=o;e+=gx)s.push(e);return{days:s,from:n,to:r,clipped:i}}function Ex(e,t){let n=(vx*7-1)*gx,r=0,i=0,a=0,o=-1,s=Cx(e[0]);for(let c of e){let l=Cx(c),u=l+n;for(;i<e.length&&e[i]<=u;)a+=t.get(e[i++]);for(;r<e.length&&e[r]<l;)a-=t.get(e[r++]);a>=o&&(o=a,s=l)}let c=e.filter(e=>e>=s&&e<=s+n);return{from:c[0],to:c[c.length-1]}}var Dx=[`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`,`Su`];function Ox({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),{write:s}=ce(),c=e,l=c.view?.date,u=Sb(c,l),d=Xh(r,t,e=>s(e)),f=Array.isArray(d.value)?d.value:[],p=d.mode!==`view`;if(!l||!u)return(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:t,onChange:e=>void s(e),recordCtx:n,mode:r},void 0,!1,{fileName:hx,lineNumber:233,columnNumber:7},this);let m=new Map,h=0;for(let e of f){let t=ax(e[l]);if(t===void 0){h+=1;continue}let n=bx(t);m.set(n,(m.get(n)??0)+1)}let g=Tx(m),_=g?[...m.entries()].filter(([e])=>e>=g.from&&e<=g.to).map(([,e])=>e):[],v=_.length?Math.max(..._):0,y=_.length?Math.min(..._):0,b=h+(g?.clipped??0),x=(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:d.value,onChange:e=>d.onChange(e),recordCtx:n,mode:`edit`},void 0,!1,{fileName:hx,lineNumber:272,columnNumber:5},this),S=g?Array.from({length:g.days.length/7},(e,t)=>{let n=g.days[t*7],r=t>0?g.days[(t-1)*7]:void 0,i=new Date(n).getUTCMonth();return(0,L.jsxDEV)(`div`,{className:`h-3 whitespace-nowrap`,children:r===void 0||new Date(r).getUTCMonth()!==i?new Date(n).toLocaleDateString(void 0,{month:`short`,timeZone:`UTC`}):``},t,!1,{fileName:hx,lineNumber:288,columnNumber:11},this)}):[],C=(g?.days??[]).map(e=>{if(e<g.from||e>g.to)return(0,L.jsxDEV)(`div`,{className:`h-4 w-4`,"data-testid":`heatmap-pad`},e,!1,{fileName:hx,lineNumber:301,columnNumber:14},this);let t=m.get(e)??0,n=yx(t,y,v),r=xx(e);return(0,L.jsxDEV)(`div`,{"data-testid":`heatmap-day-${r}`,"data-count":t,"data-level":n,title:`${r} · ${t}`,className:`relative h-4 w-4 overflow-hidden rounded-[3px] border border-border`,children:[n>0&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`absolute inset-x-0 bottom-0 bg-accent/15`,style:{height:`${Math.round(n/_x*100)}%`}},void 0,!1,{fileName:hx,lineNumber:319,columnNumber:11},this),t>0&&(0,L.jsxDEV)(`span`,{className:`sr-only`,children:`${r} · ${t}`},void 0,!1,{fileName:hx,lineNumber:327,columnNumber:23},this)]},e,!0,{fileName:hx,lineNumber:307,columnNumber:7},this)}),w=g===void 0?(0,L.jsxDEV)(`p`,{className:`py-1 text-sm text-muted`,"data-testid":`heatmap-empty`,children:i(`form.noDates`,`No dated entries yet`)},void 0,!1,{fileName:hx,lineNumber:334,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`max-w-full overflow-x-auto`,"data-testid":`heatmap-body`,children:(0,L.jsxDEV)(`div`,{className:`inline-flex flex-col gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`flex gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`w-5 shrink-0`},void 0,!1,{fileName:hx,lineNumber:341,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`grid grid-flow-col auto-cols-[1rem] gap-1 text-[9px] leading-3 text-muted`,children:S},void 0,!1,{fileName:hx,lineNumber:342,columnNumber:13},this)]},void 0,!0,{fileName:hx,lineNumber:340,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`grid w-5 shrink-0 grid-rows-7 gap-1 text-[9px] leading-4 text-muted`,children:Dx.map((e,t)=>(0,L.jsxDEV)(`div`,{children:t%2==0?e:``},e,!1,{fileName:hx,lineNumber:351,columnNumber:17},this))},void 0,!1,{fileName:hx,lineNumber:347,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`grid grid-rows-7 grid-flow-col auto-cols-[1rem] gap-1`,"data-testid":`heatmap-grid`,children:C},void 0,!1,{fileName:hx,lineNumber:354,columnNumber:13},this)]},void 0,!0,{fileName:hx,lineNumber:346,columnNumber:11},this)]},void 0,!0,{fileName:hx,lineNumber:339,columnNumber:9},this)},void 0,!1,{fileName:hx,lineNumber:338,columnNumber:7},this),T=p?x:(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[w,b>0&&(0,L.jsxDEV)(`p`,{className:`text-[11px] text-muted`,"data-testid":`heatmap-offgrid`,children:i(`form.offGrid`,{n:b,defaultValue:`{{n}} not on the grid`})},void 0,!1,{fileName:hx,lineNumber:368,columnNumber:9},this)]},void 0,!0,{fileName:hx,lineNumber:365,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`heatmap`,children:[c.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(c.label),count:f.length,actions:d.actions},void 0,!1,{fileName:hx,lineNumber:379,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:T},void 0,!1,{fileName:hx,lineNumber:380,columnNumber:7},this)]},void 0,!0,{fileName:hx,lineNumber:378,columnNumber:5},this):T}j({kinds:[`heatmap`],layout:`block`,Page:Ox,editor:`own`});var kx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/admin/internal-api-token-renderer.tsx`;function Ax(){let e=crypto.getRandomValues(new Uint8Array(32)),t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function jx({label:e}){let{t}=a(),[n,r]=(0,I.useState)([]),[i,o]=(0,I.useState)(``),[s,c]=(0,I.useState)(null),[l,u]=(0,I.useState)(!1);function d(){ea().then(e=>e.ok&&r(e.data))}(0,I.useEffect)(d,[]);async function f(){if(!i.trim())return;u(!0);let e=Ax(),n=await ta(i.trim(),e);u(!1),n.ok?(c(e),o(``),d()):Lt.error(t(`auth.genericError`))}async function p(e){await Ke({title:t(`auth.tokenConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await ca(e)).ok?d():Lt.error(t(`auth.genericError`)))}return(0,L.jsxDEV)(`div`,{children:[(0,L.jsxDEV)(`h2`,{className:`mb-2 ${ft}`,children:t(e||`auth.tokensTitle`)},void 0,!1,{fileName:kx,lineNumber:72,columnNumber:7},this),s&&(0,L.jsxDEV)(ut,{className:`mb-3 break-all`,children:[t(`auth.tokenCreatedOnce`),` `,(0,L.jsxDEV)(`code`,{children:s},void 0,!1,{fileName:kx,lineNumber:75,columnNumber:40},this)]},void 0,!0,{fileName:kx,lineNumber:74,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`mb-3 flex gap-2`,children:[(0,L.jsxDEV)(P,{placeholder:t(`auth.tokenNamePlaceholder`),value:i,onChange:e=>o(e.target.value)},void 0,!1,{fileName:kx,lineNumber:79,columnNumber:9},this),(0,L.jsxDEV)(F,{type:`button`,disabled:l||!i.trim(),onClick:f,children:t(`auth.tokenCreate`)},void 0,!1,{fileName:kx,lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:kx,lineNumber:78,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,L.jsxDEV)(On,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.name},void 0,!1,{fileName:kx,lineNumber:88,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:kx,lineNumber:89,columnNumber:15},this)]},void 0,!0,{fileName:kx,lineNumber:87,columnNumber:13},this),(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`sm`,type:`button`,onClick:()=>p(e.id),className:`shrink-0`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:kx,lineNumber:93,columnNumber:13},this)]},e.id,!0,{fileName:kx,lineNumber:86,columnNumber:11},this))},void 0,!1,{fileName:kx,lineNumber:84,columnNumber:7},this)]},void 0,!0,{fileName:kx,lineNumber:71,columnNumber:5},this)}j({kinds:[`internalApiToken`],layout:`block`,Page:jx,editor:`own`});var Mx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/admin/internal-oauth-grants-renderer.tsx`;function Nx({label:e}){let{t}=a(),[n,r]=(0,I.useState)([]);function i(){ia().then(e=>e.ok&&r(e.data))}(0,I.useEffect)(i,[]);async function o(e){await Ke({title:t(`auth.grantConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await Yi(e)).ok?i():Lt.error(t(`auth.genericError`)))}return(0,L.jsxDEV)(`div`,{children:[(0,L.jsxDEV)(`h2`,{className:`mb-2 ${ft}`,children:t(e||`auth.grantsTitle`)},void 0,!1,{fileName:Mx,lineNumber:45,columnNumber:7},this),n.length===0?(0,L.jsxDEV)(`p`,{className:`text-sm text-muted`,children:t(`auth.grantsEmpty`)},void 0,!1,{fileName:Mx,lineNumber:47,columnNumber:9},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,L.jsxDEV)(On,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.clientName},void 0,!1,{fileName:Mx,lineNumber:53,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:Mx,lineNumber:54,columnNumber:17},this)]},void 0,!0,{fileName:Mx,lineNumber:52,columnNumber:15},this),(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`sm`,type:`button`,onClick:()=>o(e.clientId),className:`shrink-0`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:Mx,lineNumber:58,columnNumber:15},this)]},e.clientId,!0,{fileName:Mx,lineNumber:51,columnNumber:13},this))},void 0,!1,{fileName:Mx,lineNumber:49,columnNumber:9},this)]},void 0,!0,{fileName:Mx,lineNumber:44,columnNumber:5},this)}j({kinds:[`internalOauthGrants`],layout:`block`,Page:Nx,editor:`own`}),_l(xn);var Px=[{pattern:`/`,purpose:`dashboard`},{pattern:`/trash`,purpose:`reversible trash for deleted records`},{pattern:`/settings`,purpose:`settings index`},{pattern:`/settings/diagnostics`,purpose:`runtime and agent diagnostics (admin)`},{pattern:`/settings/account`,purpose:`the signed-in user's own account settings`},{pattern:`/settings/users`,purpose:`user list (admin)`},{pattern:`/settings/users/new`,purpose:`form for a new user (admin)`},{pattern:`/settings/users/:id`,purpose:`one user (admin)`},{pattern:`/settings/:groupId`,purpose:`one settings group (a plugin, or the instance itself)`},{pattern:`/:library/:shelf`,purpose:`list of every record on a shelf`},{pattern:`/:library/:shelf/new`,purpose:`form for a new record on a shelf`},{pattern:`/:library/:shelf/:id`,purpose:`page of one record`}],Z=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/LoginPage.tsx`,Fx=jr({login:Dr.string({label:`auth.login`,required:!0}),password:Dr.password({label:`auth.password`,required:!0})});function Ix(){let{t:e}=a(),{values:t,bridge:n}=Jt({fm:Kr(Fx),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`login`},initial:{login:``,password:``}}),[r,i]=(0,I.useState)(null),[o,s]=(0,I.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await pa(t.login,t.password);if(s(!1),!r.ok){i(r.status===401?e(`auth.invalidCredentials`):e(`auth.genericError`));return}window.location.href=`/`}return(0,L.jsxDEV)(`main`,{className:`login-page`,children:[(0,L.jsxDEV)(`div`,{className:`login-orb login-orb-one`,"aria-hidden":`true`},void 0,!1,{fileName:Z,lineNumber:48,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`login-orb login-orb-two`,"aria-hidden":`true`},void 0,!1,{fileName:Z,lineNumber:49,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`login-shell`,children:[(0,L.jsxDEV)(`section`,{className:`login-intro`,"aria-label":`Coffer`,children:[(0,L.jsxDEV)(`div`,{className:`login-brand`,children:[(0,L.jsxDEV)(`span`,{className:`login-brand-mark`,"aria-hidden":`true`,children:[(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:55,columnNumber:15},this),(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:56,columnNumber:15},this),(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:57,columnNumber:15},this),(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:58,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:54,columnNumber:13},this),(0,L.jsxDEV)(`span`,{children:`Coffer`},void 0,!1,{fileName:Z,lineNumber:60,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:53,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`login-intro-copy`,children:[(0,L.jsxDEV)(`p`,{className:`login-eyebrow`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:Z,lineNumber:63,columnNumber:13},this),(0,L.jsxDEV)(`h2`,{children:e(`auth.welcomeTitle`)},void 0,!1,{fileName:Z,lineNumber:64,columnNumber:13},this),(0,L.jsxDEV)(`p`,{children:e(`auth.welcomeText`)},void 0,!1,{fileName:Z,lineNumber:65,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:62,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`login-status`,children:[(0,L.jsxDEV)(`span`,{className:`login-status-dot`,"aria-hidden":`true`},void 0,!1,{fileName:Z,lineNumber:68,columnNumber:13},this),(0,L.jsxDEV)(`span`,{children:e(`auth.secureConnection`)},void 0,!1,{fileName:Z,lineNumber:69,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:67,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:52,columnNumber:9},this),(0,L.jsxDEV)(`form`,{onSubmit:c,className:`login-card`,children:[(0,L.jsxDEV)(`div`,{className:`login-card-heading`,children:[(0,L.jsxDEV)(`div`,{className:`login-mobile-brand`,children:`Coffer`},void 0,!1,{fileName:Z,lineNumber:75,columnNumber:13},this),(0,L.jsxDEV)(`p`,{className:`login-card-kicker`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:Z,lineNumber:76,columnNumber:13},this),(0,L.jsxDEV)(`h1`,{children:e(`auth.loginTitle`)},void 0,!1,{fileName:Z,lineNumber:77,columnNumber:13},this),(0,L.jsxDEV)(`p`,{className:`login-card-subtitle`,children:e(`auth.welcomeText`)},void 0,!1,{fileName:Z,lineNumber:78,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:74,columnNumber:11},this),r&&(0,L.jsxDEV)(`div`,{className:`login-error`,role:`alert`,children:r},void 0,!1,{fileName:Z,lineNumber:81,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`login-fields`,children:(0,L.jsxDEV)(ke,{items:Fx,ctx:{bridge:n}},void 0,!1,{fileName:Z,lineNumber:86,columnNumber:13},this)},void 0,!1,{fileName:Z,lineNumber:85,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`submit`,disabled:o,className:`login-submit`,children:[(0,L.jsxDEV)(`span`,{children:o?`…`:e(`auth.signIn`)},void 0,!1,{fileName:Z,lineNumber:89,columnNumber:13},this),!o&&(0,L.jsxDEV)(`span`,{className:`login-submit-arrow`,"aria-hidden":`true`,children:`→`},void 0,!1,{fileName:Z,lineNumber:91,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:88,columnNumber:11},this),(0,L.jsxDEV)(`p`,{className:`login-footer`,children:e(`auth.secureConnection`)},void 0,!1,{fileName:Z,lineNumber:96,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:73,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:51,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:47,columnNumber:5},this)}var Lx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SetupPage.tsx`,Rx=jr({displayName:Dr.string({label:`auth.displayName`,required:!0}),login:Dr.string({label:`auth.login`,required:!0}),password:Dr.password({label:`auth.password`,required:!0})});function zx(){let{t:e}=a(),{values:t,bridge:n}=Jt({fm:Kr(Rx),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`setup`},initial:{displayName:``,login:``,password:``}}),[r,i]=(0,I.useState)(null),[o,s]=(0,I.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await oa(t.login,t.password,t.displayName);if(s(!1),!r.ok){i(e(`auth.genericError`));return}window.location.href=`/`}return(0,L.jsxDEV)(`div`,{className:`flex min-h-dvh items-center justify-center bg-bg px-4`,children:(0,L.jsxDEV)(`form`,{onSubmit:c,className:`w-full max-w-sm rounded-2xl border border-border bg-surface p-6`,children:[(0,L.jsxDEV)(`h1`,{className:`mb-6 text-xl font-bold text-text`,children:e(`auth.setupTitle`)},void 0,!1,{fileName:Lx,lineNumber:49,columnNumber:9},this),r&&(0,L.jsxDEV)(ut,{tone:`danger`,className:`mb-4`,children:r},void 0,!1,{fileName:Lx,lineNumber:51,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`mb-5 flex flex-col gap-3`,children:(0,L.jsxDEV)(ke,{items:Rx,ctx:{bridge:n}},void 0,!1,{fileName:Lx,lineNumber:56,columnNumber:11},this)},void 0,!1,{fileName:Lx,lineNumber:55,columnNumber:9},this),(0,L.jsxDEV)(F,{type:`submit`,disabled:o,className:`w-full`,children:e(`auth.createAccount`)},void 0,!1,{fileName:Lx,lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:Lx,lineNumber:48,columnNumber:7},this)},void 0,!1,{fileName:Lx,lineNumber:47,columnNumber:5},this)}var Bx=`coffer-collapsed-libraries`;function Vx(){try{let e=localStorage.getItem(Bx);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function Hx(){let[e,t]=(0,I.useState)(()=>Vx());return{collapsed:e,toggle:(0,I.useCallback)(e=>{t(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{localStorage.setItem(Bx,JSON.stringify([...n]))}catch{}return n})},[])}}var Ux=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/SidebarNav.tsx`;function Wx({onSearchOpen:e}){let{t}=a(),{collapsed:n,toggle:r}=Hx(),i=Bi();return(0,L.jsxDEV)(`aside`,{className:`hidden nav:flex flex-col w-52 shrink-0 bg-surface border-r border-border h-dvh fixed top-0 left-0 z-30`,children:[(0,L.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto px-3 py-4`,children:[(0,L.jsxDEV)(u,{to:`/`,className:`flex items-center gap-2 mb-4 px-2 group`,title:t(`nav.home`),children:[(0,L.jsxDEV)(`div`,{className:`w-7 h-7 border border-accent rounded-lg flex items-center justify-center text-accent text-xs font-bold`,children:`S`},void 0,!1,{fileName:Ux,lineNumber:24,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`font-bold text-text group-hover:text-accent transition-colors`,children:`Coffer`},void 0,!1,{fileName:Ux,lineNumber:27,columnNumber:11},this)]},void 0,!0,{fileName:Ux,lineNumber:23,columnNumber:9},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:e,"aria-label":t(`search.title`),title:t(`search.title`),className:`flex w-full items-center gap-2 px-3 py-1.5 mb-3 rounded-lg text-sm text-muted bg-elevated border border-border hover:border-accent hover:text-text transition-colors`,children:[(0,L.jsxDEV)(nt,{size:14,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:36,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`flex-1 text-left truncate`,children:t(`search.title`)},void 0,!1,{fileName:Ux,lineNumber:37,columnNumber:11},this),(0,L.jsxDEV)(`kbd`,{className:`hidden lg:inline-flex items-center gap-0.5 text-[10px] text-muted border border-border rounded px-1`,children:`⌘K`},void 0,!1,{fileName:Ux,lineNumber:38,columnNumber:11},this)]},void 0,!0,{fileName:Ux,lineNumber:29,columnNumber:9},this),i.map(e=>{let i=n.has(e.meta.id);return(0,L.jsxDEV)(`div`,{className:`mb-0.5`,children:[(0,L.jsxDEV)(`button`,{type:`button`,onClick:()=>r(e.meta.id),className:`flex w-full items-center justify-between px-3 py-1.5 rounded-lg hover:bg-elevated hover:text-text transition-colors ${ft}`,children:[(0,L.jsxDEV)(`span`,{className:`truncate`,children:t(e.meta.label)},void 0,!1,{fileName:Ux,lineNumber:51,columnNumber:17},this),(0,L.jsxDEV)(vi,{size:13,className:`shrink-0 transition-transform ${i?`-rotate-90`:``}`},void 0,!1,{fileName:Ux,lineNumber:52,columnNumber:17},this)]},void 0,!0,{fileName:Ux,lineNumber:46,columnNumber:15},this),!i&&(0,L.jsxDEV)(L.Fragment,{children:[Mi(e.meta.id).map(n=>(0,L.jsxDEV)(u,{to:`/${e.meta.id}/${n.id}`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:n.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:62,columnNumber:23},this),t(n.label)]},n.id,!0,{fileName:Ux,lineNumber:57,columnNumber:21},this)),e.shelves.filter(e=>e.standalone!==!1).map(e=>(0,L.jsxDEV)(u,{to:`/${e.library}/${e.shelf}`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:74,columnNumber:25},this),t(e.label)]},e.shelf,!0,{fileName:Ux,lineNumber:69,columnNumber:23},this))]},void 0,!0,{fileName:Ux,lineNumber:55,columnNumber:17},this)]},e.meta.id,!0,{fileName:Ux,lineNumber:45,columnNumber:13},this)}),ni().map(e=>(0,L.jsxDEV)(u,{to:e.to,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:85,columnNumber:13},this),t(e.labelKey)]},e.to,!0,{fileName:Ux,lineNumber:84,columnNumber:11},this))]},void 0,!0,{fileName:Ux,lineNumber:22,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`border-t border-border p-2 space-y-1`,children:[(0,L.jsxDEV)(fi,{},void 0,!1,{fileName:Ux,lineNumber:93,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/trash`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:`lucide:trash-2`,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:95,columnNumber:11},this),` `,t(`nav.trash`)]},void 0,!0,{fileName:Ux,lineNumber:94,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/settings`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:`lucide:settings`,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:98,columnNumber:11},this),` `,t(`nav.settings`)]},void 0,!0,{fileName:Ux,lineNumber:97,columnNumber:9},this)]},void 0,!0,{fileName:Ux,lineNumber:92,columnNumber:7},this)]},void 0,!0,{fileName:Ux,lineNumber:21,columnNumber:5},this)}var Gx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/BottomNav.tsx`;function Kx({onSearchOpen:e}){let{t}=a();return(0,L.jsxDEV)(`nav`,{className:`nav:hidden fixed bottom-0 left-0 right-0 z-40 border-t border-border bg-surface pb-[env(safe-area-inset-bottom)]`,children:(0,L.jsxDEV)(`div`,{className:`flex items-stretch`,children:[(0,L.jsxDEV)(u,{to:`/`,end:!0,className:({isActive:e})=>`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,L.jsxDEV)(Re,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:22,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.home`)},void 0,!1,{fileName:Gx,lineNumber:23,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:14,columnNumber:9},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:e,className:`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors text-muted hover:text-text`,children:[(0,L.jsxDEV)(nt,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:30,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.search`)},void 0,!1,{fileName:Gx,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:25,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/settings`,className:({isActive:e})=>`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,L.jsxDEV)(sr,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:40,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.settings`)},void 0,!1,{fileName:Gx,lineNumber:41,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:33,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/trash`,className:({isActive:e})=>`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,L.jsxDEV)(ur,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:50,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.trash`)},void 0,!1,{fileName:Gx,lineNumber:51,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:43,columnNumber:9},this)]},void 0,!0,{fileName:Gx,lineNumber:13,columnNumber:7},this)},void 0,!1,{fileName:Gx,lineNumber:12,columnNumber:5},this)}var qx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/CommandPalette.tsx`;function Jx({open:e,onClose:t}){let{t:n}=a(),r=v(),[i,o]=(0,I.useState)(``),[s,c]=(0,I.useState)([]),[l,u]=(0,I.useState)(!1),[d,f]=(0,I.useState)(0),p=(0,I.useRef)(null);(0,I.useEffect)(()=>{e&&(o(``),c([]),f(0),setTimeout(()=>p.current?.focus(),50))},[e]),(0,I.useEffect)(()=>{if(i.length<2){c([]);return}let e=setTimeout(async()=>{u(!0);try{let e=await fetch(`/api/search?q=${encodeURIComponent(i)}&limit=15`);c(e.ok?await e.json():[])}catch{c([])}finally{u(!1)}},250);return()=>clearTimeout(e)},[i]);let m=Bi().flatMap(e=>e.shelves.filter(e=>e.standalone!==!1).map(t=>({v:e,m:t}))),h=m.filter(({m:e})=>!i||n(e.label).toLowerCase().includes(i.toLowerCase())).map(({v:e,m:t})=>({kind:`shelf`,label:n(t.label),sub:n(e.meta.label),icon:t.icon,to:`/${t.library}/${t.shelf}`})),g=s.map(e=>{let t=m.find(({m:t})=>t.library===e.library&&t.shelf===e.shelf)?.m;return{kind:`record`,label:e.label||e.id,sub:e.snippet===e.label?t?n(t.label):e.shelf:e.snippet,icon:t?.icon,to:`/${e.library}/${e.shelf}/${e.id}`}}),_=i.length>=2?[...g,...h.slice(0,5)]:h,y=_.length>0?Math.min(d,_.length-1):0;function b(e){r(e.to),t()}function x(e){if(e.key===`Escape`){t();return}e.key===`ArrowDown`&&(e.preventDefault(),f(e=>Math.min(e+1,_.length-1))),e.key===`ArrowUp`&&(e.preventDefault(),f(e=>Math.max(e-1,0))),e.key===`Enter`&&_[y]&&b(_[y])}if(!e)return null;let S=i.length<2,C=i.length>=2&&g.length>0,w=i.length>=2&&h.length>0,T=_.length===0&&!l;return(0,L.jsxDEV)(`div`,{className:`fixed inset-0 z-[60] flex items-start justify-center pt-[10vh] px-4`,onClick:e=>{e.target===e.currentTarget&&t()},children:[(0,L.jsxDEV)(`div`,{className:`absolute inset-0 bg-bg/70 backdrop-blur-sm`,onClick:t},void 0,!1,{fileName:qx,lineNumber:140,columnNumber:7},this),(0,L.jsxDEV)(`div`,{role:`dialog`,"aria-label":n(`search.title`),className:`relative w-full max-w-lg bg-surface border border-border rounded-xl shadow-xl overflow-hidden`,children:[(0,L.jsxDEV)(`div`,{className:`px-4 pt-3 pb-1 ${ft}`,children:n(`search.title`)},void 0,!1,{fileName:qx,lineNumber:149,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 px-4 py-3 border-b border-border`,children:[(0,L.jsxDEV)(nt,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:qx,lineNumber:152,columnNumber:11},this),(0,L.jsxDEV)(`input`,{ref:p,type:`text`,value:i,onChange:e=>{o(e.target.value),f(0)},onKeyDown:x,placeholder:n(`search.placeholder`),"aria-label":n(`search.title`),className:`flex-1 bg-transparent text-text placeholder:text-muted outline-none text-sm`},void 0,!1,{fileName:qx,lineNumber:153,columnNumber:11},this),l&&(0,L.jsxDEV)(`span`,{className:`text-xs text-muted`,children:n(`common.loading`)},void 0,!1,{fileName:qx,lineNumber:166,columnNumber:23},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:t,className:`text-muted hover:text-text transition-colors`,children:(0,L.jsxDEV)(mi,{size:16},void 0,!1,{fileName:qx,lineNumber:168,columnNumber:13},this)},void 0,!1,{fileName:qx,lineNumber:167,columnNumber:11},this)]},void 0,!0,{fileName:qx,lineNumber:151,columnNumber:9},this),(0,L.jsxDEV)(`ul`,{className:`max-h-80 overflow-y-auto py-1`,children:[T&&i.length>=2&&(0,L.jsxDEV)(`li`,{className:`px-4 py-6 text-center text-muted text-sm`,children:n(`search.noResults`)},void 0,!1,{fileName:qx,lineNumber:175,columnNumber:13},this),S&&(0,L.jsxDEV)(`li`,{className:`px-4 py-1.5 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(`search.allShelves`)},void 0,!1,{fileName:qx,lineNumber:177,columnNumber:33},this),C&&(0,L.jsxDEV)(`li`,{className:`px-4 py-1.5 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(`search.results`)},void 0,!1,{fileName:qx,lineNumber:178,columnNumber:33},this),_.map((e,t)=>(0,L.jsxDEV)(`li`,{children:[i.length>=2&&t>=g.length&&t===g.length&&w&&(0,L.jsxDEV)(`div`,{className:`px-4 py-1.5 border-t border-border mt-1 pt-2 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(`search.allShelves`)},void 0,!1,{fileName:qx,lineNumber:185,columnNumber:19},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:()=>b(e),onMouseEnter:()=>f(t),className:`w-full flex items-center gap-3 px-4 py-2 text-left transition-colors ${t===y?`bg-bg font-medium text-text`:`text-text hover:bg-elevated`}`,children:[e.icon&&(0,L.jsxDEV)(rr,{name:e.icon,size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:qx,lineNumber:197,columnNumber:33},this),(0,L.jsxDEV)(`span`,{className:`flex-1 min-w-0`,children:[(0,L.jsxDEV)(`span`,{className:`block text-sm font-medium truncate`,children:e.label},void 0,!1,{fileName:qx,lineNumber:199,columnNumber:21},this),e.sub&&(0,L.jsxDEV)(`span`,{className:`block text-xs text-muted truncate`,children:e.sub},void 0,!1,{fileName:qx,lineNumber:200,columnNumber:34},this)]},void 0,!0,{fileName:qx,lineNumber:198,columnNumber:19},this)]},void 0,!0,{fileName:qx,lineNumber:189,columnNumber:17},this)]},`${e.to}-${t}`,!0,{fileName:qx,lineNumber:183,columnNumber:15},this))]},void 0,!0,{fileName:qx,lineNumber:173,columnNumber:9},this)]},void 0,!0,{fileName:qx,lineNumber:143,columnNumber:7},this)]},void 0,!0,{fileName:qx,lineNumber:131,columnNumber:5},this)}var Yx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Dashboard.tsx`;function Xx(){let[e,t]=(0,I.useState)({});return(0,I.useEffect)(()=>{let e=new AbortController;return fetch(`/api/counts`,{signal:e.signal}).then(e=>e.ok?e.json():{}).then(t).catch(()=>{}),()=>e.abort()},[]),e}function Zx(){let{t:e}=a(),t=Xx(),n=Bi();return(0,L.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,L.jsxDEV)(`div`,{className:`mx-auto max-w-5xl px-5 py-8 md:px-8`,children:[(0,L.jsxDEV)(`h1`,{className:`mb-6 ${Ht}`,children:e(`dashboard.title`)},void 0,!1,{fileName:Yx,lineNumber:29,columnNumber:9},this),n.length===0?(0,L.jsxDEV)(`p`,{className:`text-muted`,children:e(`dashboard.empty`)},void 0,!1,{fileName:Yx,lineNumber:31,columnNumber:11},this):(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:n.map(n=>{let r=n.shelves.filter(e=>e.standalone!==!1);return r.length===0?null:(0,L.jsxDEV)(`section`,{className:`rounded-2xl border border-border bg-surface p-4`,children:[(0,L.jsxDEV)(`h2`,{className:`mb-3 flex items-center gap-2 ${ft}`,children:[n.meta.icon&&(0,L.jsxDEV)(rr,{name:n.meta.icon,size:16,className:`shrink-0`},void 0,!1,{fileName:Yx,lineNumber:40,columnNumber:37},this),e(n.meta.label)]},void 0,!0,{fileName:Yx,lineNumber:39,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:r.map(n=>(0,L.jsxDEV)(u,{to:`/${n.library}/${n.shelf}`,className:`flex items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-text transition-colors hover:bg-elevated`,children:[(0,L.jsxDEV)(rr,{name:n.icon,size:17,className:`shrink-0 text-muted`},void 0,!1,{fileName:Yx,lineNumber:50,columnNumber:25},this),(0,L.jsxDEV)(`span`,{className:`flex-1 truncate`,children:e(n.label)},void 0,!1,{fileName:Yx,lineNumber:51,columnNumber:25},this),(0,L.jsxDEV)(it,{children:t[`${n.library}/${n.shelf}`]??`·`},void 0,!1,{fileName:Yx,lineNumber:52,columnNumber:25},this)]},n.shelf,!0,{fileName:Yx,lineNumber:45,columnNumber:23},this))},void 0,!1,{fileName:Yx,lineNumber:43,columnNumber:19},this)]},n.meta.id,!0,{fileName:Yx,lineNumber:38,columnNumber:17},this)})},void 0,!1,{fileName:Yx,lineNumber:33,columnNumber:11},this)]},void 0,!0,{fileName:Yx,lineNumber:28,columnNumber:7},this)},void 0,!1,{fileName:Yx,lineNumber:27,columnNumber:5},this)}var Qx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/TrashPage.tsx`;function $x(e){let t=Bi().flatMap(e=>e.shelves).find(t=>t.library===e.library&&t.shelf===e.shelf);return t?Rr(t,e.record):String(e.record.name??e.record.id??``)}function eS(){let{t:e}=a(),[t,n]=(0,I.useState)([]),[r,i]=(0,I.useState)(!0),o=(0,I.useCallback)(async()=>{i(!0);try{n(await ga())}catch{Lt.error(e(`common.error`))}finally{i(!1)}},[e]);(0,I.useEffect)(()=>{o()},[o]);async function s(t){if(!await Wi(t.library,t.shelf,Number(t.record.id))){Lt.error(e(`common.error`));return}Lt.success(e(`trash.restored`)),n(e=>e.filter(e=>e!==t))}async function c(t){if(await Ke({title:e(`trash.confirmPurge`),confirmLabel:e(`trash.purge`),variant:`destructive`})){if(!await Qi(t.library,t.shelf,Number(t.record.id))){Lt.error(e(`common.error`));return}Lt.success(e(`trash.purged`)),n(e=>e.filter(e=>e!==t))}}return(0,L.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,L.jsxDEV)(Mn,{children:(0,L.jsxDEV)(`h1`,{className:Ht,children:e(`trash.title`)},void 0,!1,{fileName:Qx,lineNumber:66,columnNumber:9},this)},void 0,!1,{fileName:Qx,lineNumber:65,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`p-4 sm:p-6 max-w-4xl w-full mx-auto`,children:[(0,L.jsxDEV)(`p`,{className:`text-sm text-muted mb-5`,children:e(`trash.description`)},void 0,!1,{fileName:Qx,lineNumber:69,columnNumber:9},this),r?(0,L.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`common.loading`)},void 0,!1,{fileName:Qx,lineNumber:71,columnNumber:11},this):t.length===0?(0,L.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`trash.empty`)},void 0,!1,{fileName:Qx,lineNumber:73,columnNumber:11},this):(0,L.jsxDEV)(`div`,{className:`space-y-2`,children:t.map(t=>{let n=Number(t.record.id);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3 rounded-xl border border-border bg-surface px-4 py-3`,children:[(0,L.jsxDEV)(ur,{size:18,className:`shrink-0 text-muted`},void 0,!1,{fileName:Qx,lineNumber:83,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`truncate font-medium text-text`,children:$x(t)},void 0,!1,{fileName:Qx,lineNumber:85,columnNumber:21},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e(t.label),` · `,t.library,`/`,t.shelf,` · #`,n]},void 0,!0,{fileName:Qx,lineNumber:86,columnNumber:21},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:String(t.record.deleted_at??``)},void 0,!1,{fileName:Qx,lineNumber:89,columnNumber:21},this)]},void 0,!0,{fileName:Qx,lineNumber:84,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,L.jsxDEV)(F,{variant:`secondary`,size:`sm`,onClick:()=>void s(t),children:[(0,L.jsxDEV)(ue,{size:15},void 0,!1,{fileName:Qx,lineNumber:93,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.restore`)},void 0,!1,{fileName:Qx,lineNumber:94,columnNumber:23},this)]},void 0,!0,{fileName:Qx,lineNumber:92,columnNumber:21},this),(0,L.jsxDEV)(F,{variant:`destructive`,size:`sm`,onClick:()=>void c(t),children:[(0,L.jsxDEV)(ur,{size:15},void 0,!1,{fileName:Qx,lineNumber:97,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.purge`)},void 0,!1,{fileName:Qx,lineNumber:98,columnNumber:23},this)]},void 0,!0,{fileName:Qx,lineNumber:96,columnNumber:21},this)]},void 0,!0,{fileName:Qx,lineNumber:91,columnNumber:19},this)]},`${t.library}/${t.shelf}/${n}`,!0,{fileName:Qx,lineNumber:79,columnNumber:17},this)})},void 0,!1,{fileName:Qx,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:Qx,lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:Qx,lineNumber:64,columnNumber:5},this)}var tS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/AccountSettingsPage.tsx`,nS=jr({displayName:Dr.string({label:`auth.fieldDisplayName`}),password:Dr.password({label:`auth.fieldPasswordOptional`}),apiTokens:Dr.internalApiToken({label:`auth.tokensTitle`}),oauthGrants:Dr.internalOauthGrants({label:`auth.grantsTitle`})});function rS(){let{t:e}=a(),[t,n]=(0,I.useState)([]),[r,i]=(0,I.useState)([]),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(null);function u(){$i().then(e=>{e.ok&&(n(e.data.links),i(e.data.linkable))})}(0,I.useEffect)(u,[]);async function d(){s(!0);let t=await ha();s(!1),t.ok?l(t.data):Lt.error(e(`auth.genericError`))}async function f(t){await Ke({title:e(`auth.linkConfirmUnlink`),confirmLabel:e(`auth.linkUnlink`),variant:`destructive`})&&((await Ji(t.connector,t.externalId)).ok?u():Lt.error(e(`auth.genericError`)))}function p(t){return e(`auth.linkConnectorNames.${t}`,{defaultValue:t})}return(0,L.jsxDEV)(`section`,{className:`mt-10 border-t border-border pt-6`,"aria-labelledby":`account-links-title`,children:[(0,L.jsxDEV)(`h2`,{id:`account-links-title`,className:`mb-2 ${ft}`,children:e(`auth.linksTitle`)},void 0,!1,{fileName:tS,lineNumber:86,columnNumber:7},this),c&&(0,L.jsxDEV)(ut,{className:`mb-3 break-all`,children:[e(`auth.linkCodeCreatedOnce`),` `,(0,L.jsxDEV)(`code`,{children:c.raw},void 0,!1,{fileName:tS,lineNumber:98,columnNumber:43},this),Object.entries(c.links??{}).map(([t,n])=>(0,L.jsxDEV)(`div`,{className:`mt-1`,children:(0,L.jsxDEV)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,className:`underline`,children:e(`auth.linkOpenConnector`,{connector:p(t)})},void 0,!1,{fileName:tS,lineNumber:101,columnNumber:15},this)},t,!1,{fileName:tS,lineNumber:100,columnNumber:13},this)),Object.keys(c.links??{}).length===0&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`br`,{},void 0,!1,{fileName:tS,lineNumber:108,columnNumber:15},this),e(`auth.linkCodeHint`,{code:c.raw})]},void 0,!0,{fileName:tS,lineNumber:107,columnNumber:13},this)]},void 0,!0,{fileName:tS,lineNumber:97,columnNumber:9},this),r.length>0&&(0,L.jsxDEV)(`div`,{className:`mb-3`,children:(0,L.jsxDEV)(F,{type:`button`,disabled:o,onClick:d,children:e(`auth.linkMint`)},void 0,!1,{fileName:tS,lineNumber:120,columnNumber:11},this)},void 0,!1,{fileName:tS,lineNumber:119,columnNumber:9},this),t.length===0?(0,L.jsxDEV)(`p`,{className:`text-sm text-muted`,children:e(`auth.linksEmpty`)},void 0,!1,{fileName:tS,lineNumber:127,columnNumber:9},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:t.map(t=>(0,L.jsxDEV)(On,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`font-semibold text-text`,children:p(t.connector)},void 0,!1,{fileName:tS,lineNumber:133,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:t.linkedAt},void 0,!1,{fileName:tS,lineNumber:134,columnNumber:17},this)]},void 0,!0,{fileName:tS,lineNumber:132,columnNumber:15},this),(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`sm`,type:`button`,onClick:()=>f(t),className:`shrink-0`,children:e(`auth.linkUnlink`)},void 0,!1,{fileName:tS,lineNumber:136,columnNumber:15},this)]},`${t.connector}:${t.externalId}`,!0,{fileName:tS,lineNumber:131,columnNumber:13},this))},void 0,!1,{fileName:tS,lineNumber:129,columnNumber:9},this)]},void 0,!0,{fileName:tS,lineNumber:85,columnNumber:5},this)}function iS(){let{t:e}=a(),[t,n]=(0,I.useState)(!1);async function r(){let e=await fa();return{displayName:e?.displayName??``,password:e?.password??``}}async function i(e){let t=await da({displayName:e.displayName,password:e.password});return t.ok?{ok:!0,row:{displayName:t.data.displayName,password:t.data.password}}:t.status===422?{ok:!1,status:422,issues:t.data.issues}:{ok:!1,status:t.status}}async function o(){n(!0);try{await ua()}finally{window.location.href=`/login`}}return(0,L.jsxDEV)(ya,{fields:nS,recordCtx:{library:``,shelf:`account`,recordId:`me`},load:r,save:i,title:e(`auth.accountTitle`),backTo:`/settings`,backLabel:e(`settings.title`),footer:(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(rS,{},void 0,!1,{fileName:tS,lineNumber:195,columnNumber:11},this),(0,L.jsxDEV)(`section`,{className:`mt-10 border-t border-border pt-6`,"aria-labelledby":`account-session-title`,children:[(0,L.jsxDEV)(`h2`,{id:`account-session-title`,className:`mb-1 ${ft}`,children:e(`auth.sessionTitle`)},void 0,!1,{fileName:tS,lineNumber:197,columnNumber:13},this),(0,L.jsxDEV)(On,{className:`flex items-center justify-between gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`p`,{className:`min-w-0 text-sm text-muted`,children:e(`auth.logoutDescription`)},void 0,!1,{fileName:tS,lineNumber:201,columnNumber:15},this),(0,L.jsxDEV)(F,{type:`button`,variant:`destructive`,size:`sm`,disabled:t,onClick:o,className:`shrink-0`,children:[(0,L.jsxDEV)(rr,{name:`lucide:log-out`,size:16},void 0,!1,{fileName:tS,lineNumber:210,columnNumber:17},this),e(`auth.logout`)]},void 0,!0,{fileName:tS,lineNumber:202,columnNumber:15},this)]},void 0,!0,{fileName:tS,lineNumber:200,columnNumber:13},this)]},void 0,!0,{fileName:tS,lineNumber:196,columnNumber:11},this)]},void 0,!0,{fileName:tS,lineNumber:194,columnNumber:9},this)},void 0,!1,{fileName:tS,lineNumber:185,columnNumber:5},this)}var aS=Xr({shelf:`users`,library:``,label:`auth.usersTitle`,icon:`lucide:users`,views:{title:`login`,list:[`displayName`,`role`,`disabled`]},fields:{login:Dr.string({label:`auth.fieldLogin`}),displayName:Dr.string({label:`auth.fieldDisplayName`}),role:Dr.string({label:`auth.fieldRole`,strict:!0,noSearch:!0,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),disabled:Dr.boolean({label:`auth.fieldDisabled`})}});function oS(e){if(!e)return null;let[t,n]=e.split(`:`);return!t||n!==`asc`&&n!==`desc`?null:{key:t,dir:n}}function sS(){let[e,t]=l(),[n,r]=(0,I.useState)(()=>e.get(`q`)??``),[i,a]=(0,I.useState)(n);(0,I.useEffect)(()=>{let e=setTimeout(()=>{a(n),t(e=>{let t=new URLSearchParams(e);return n?t.set(`q`,n):t.delete(`q`),t},{replace:!0})},300);return()=>clearTimeout(e)},[n,t]);let o=oS(e.get(`sort`));function s(e){t(t=>{let n=new URLSearchParams(t),r=oS(n.get(`sort`)),i;return i=e===`_rank`?r?.key===`_rank`&&r.dir===`desc`?null:{key:e,dir:`desc`}:!r||r.key!==e?{key:e,dir:`asc`}:r.dir===`asc`?{key:e,dir:`desc`}:null,i?n.set(`sort`,`${i.key}:${i.dir}`):n.delete(`sort`),n},{replace:!0})}function c(e){t(t=>{let n=new URLSearchParams(t);return e?n.set(`sort`,`${e.key}:${e.dir}`):n.delete(`sort`),n},{replace:!0})}return{q:n,setQ:r,debouncedQ:i,sort:o,toggleSort:s,setSort:c}}var cS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/shared/Dialog.tsx`;function lS({title:e,onClose:t,children:n}){return(0,L.jsxDEV)(b,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsxDEV)(Jn,{children:[(0,L.jsxDEV)(zn,{children:(0,L.jsxDEV)(an,{children:e},void 0,!1,{fileName:cS,lineNumber:24,columnNumber:11},this)},void 0,!1,{fileName:cS,lineNumber:23,columnNumber:9},this),(0,L.jsxDEV)(Ut,{children:n},void 0,!1,{fileName:cS,lineNumber:26,columnNumber:9},this)]},void 0,!0,{fileName:cS,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:cS,lineNumber:16,columnNumber:5},this)}var uS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/GroupPanel.tsx`,dS=`__none__`;function fS({grouping:e,total:t,sort:n}){let{t:r}=a(),{fields:i,field:o,setField:s,facets:c,selected:l,setSelected:u}=e;return(0,L.jsxDEV)(`div`,{className:`folder-tree flex flex-col gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`px-1 pt-1`,children:(0,L.jsxDEV)(`div`,{className:`folder-node${l===null?` active`:``}`,onClick:()=>u(null),children:[(0,L.jsxDEV)(`span`,{className:`folder-name`,children:r(`group.all`)},void 0,!1,{fileName:uS,lineNumber:32,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:t},void 0,!1,{fileName:uS,lineNumber:33,columnNumber:11},this)]},void 0,!0,{fileName:uS,lineNumber:31,columnNumber:9},this)},void 0,!1,{fileName:uS,lineNumber:30,columnNumber:7},this),n&&n.keys.length>0&&(0,L.jsxDEV)(`div`,{className:`px-1 list:hidden`,children:[(0,L.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`list.sortBy`)},void 0,!1,{fileName:uS,lineNumber:41,columnNumber:11},this),(0,L.jsxDEV)(dn,{value:n.value?`${n.value.key}:${n.value.dir}`:dS,onValueChange:e=>{if(e===dS)return n.onChange(null);let[t,r]=e.split(`:`);n.onChange({key:t,dir:r})},children:[(0,L.jsxDEV)(Ne,{className:`h-8 w-full text-sm`,children:(0,L.jsxDEV)(Le,{placeholder:r(`list.sortBy`)},void 0,!1,{fileName:uS,lineNumber:51,columnNumber:15},this)},void 0,!1,{fileName:uS,lineNumber:50,columnNumber:13},this),(0,L.jsxDEV)(w,{children:[(0,L.jsxDEV)(cn,{value:dS,children:[r(`list.sortRating`),` ↑`]},void 0,!0,{fileName:uS,lineNumber:56,columnNumber:15},this),(0,L.jsxDEV)(cn,{value:`_rank:desc`,children:[r(`list.sortRating`),` ↓`]},void 0,!0,{fileName:uS,lineNumber:57,columnNumber:15},this),n.keys.flatMap(({key:e,label:t})=>[(0,L.jsxDEV)(cn,{value:`${e}:asc`,children:[t,` ↑`]},`${e}:asc`,!0,{fileName:uS,lineNumber:59,columnNumber:17},this),(0,L.jsxDEV)(cn,{value:`${e}:desc`,children:[t,` ↓`]},`${e}:desc`,!0,{fileName:uS,lineNumber:62,columnNumber:17},this)])]},void 0,!0,{fileName:uS,lineNumber:53,columnNumber:13},this)]},void 0,!0,{fileName:uS,lineNumber:42,columnNumber:11},this)]},void 0,!0,{fileName:uS,lineNumber:40,columnNumber:9},this),i.length>0&&(0,L.jsxDEV)(`div`,{className:`px-1`,children:[(0,L.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`group.field`)},void 0,!1,{fileName:uS,lineNumber:74,columnNumber:11},this),(0,L.jsxDEV)(dn,{value:o??void 0,onValueChange:s,children:[(0,L.jsxDEV)(Ne,{className:`h-8 w-full text-sm`,children:(0,L.jsxDEV)(Le,{placeholder:r(`group.field`)},void 0,!1,{fileName:uS,lineNumber:77,columnNumber:15},this)},void 0,!1,{fileName:uS,lineNumber:76,columnNumber:13},this),(0,L.jsxDEV)(w,{children:i.map(e=>(0,L.jsxDEV)(cn,{value:e.key,children:e.label},e.key,!1,{fileName:uS,lineNumber:81,columnNumber:17},this))},void 0,!1,{fileName:uS,lineNumber:79,columnNumber:13},this)]},void 0,!0,{fileName:uS,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:uS,lineNumber:73,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`folder-tree-scroll`,children:(0,L.jsxDEV)(`div`,{className:`folder-tree-nodes`,children:c.map(e=>(0,L.jsxDEV)(`div`,{className:`folder-node${l===e.key?` active`:``}`,title:e.label,onClick:()=>u(e.key),children:[e.tone&&(0,L.jsxDEV)(`span`,{"aria-hidden":`true`,className:`mr-2 inline-block size-2 shrink-0 rounded-full`,style:{background:e.tone},"data-testid":`facet-tone`},void 0,!1,{fileName:uS,lineNumber:104,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`folder-name truncate`,children:e.label},void 0,!1,{fileName:uS,lineNumber:111,columnNumber:15},this),(0,L.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:e.count},void 0,!1,{fileName:uS,lineNumber:112,columnNumber:15},this)]},e.key,!0,{fileName:uS,lineNumber:94,columnNumber:13},this))},void 0,!1,{fileName:uS,lineNumber:92,columnNumber:9},this)},void 0,!1,{fileName:uS,lineNumber:91,columnNumber:7},this)]},void 0,!0,{fileName:uS,lineNumber:28,columnNumber:5},this)}function pS(e,t){let{t:n,i18n:r}=a(),i=t?Kr(e.fields)[t]:void 0,o=i?.prim===`relation`?i.relation:void 0,s=i?.hints?.displayKey??`name`,{labelMap:c}=He(o?.library??``,o?.shelf??``,s);return(0,I.useMemo)(()=>({t:n,locale:r.language,labelMap:c}),[n,r.language,c])}function mS(e,t,n,r,i){let a=new Map,o=0;for(let i of t){let t=Ie(e,i[n],r);if(!t.length){o++;continue}for(let e of t){let t=a.get(e.value)??{label:e.label,n:0};t.n++,a.set(e.value,t)}}let s=jn(e),c=[...a.entries()].map(([e,{label:t,n}])=>({key:e,label:t,tone:s.length?Gn(s,e):void 0,count:n})).sort((e,t)=>t.count-e.count||e.label.localeCompare(t.label));return o>0&&c.push({key:hS,label:i,count:o}),c}var hS=`\0__none__`;function gS(e,t){let{t:n}=a(),r=Kr(e.fields),i=(0,I.useMemo)(()=>Zr(e).filter(e=>r[e]),[e,r]),o=(0,I.useMemo)(()=>i.map(e=>({key:e,label:r[e]?n(r[e].label):e})),[i,r,n]),[s,c]=l(),u=s.get(`groupBy`),d=s.get(`groupItem`)??null,f=(0,I.useMemo)(()=>{if(u&&i.includes(u))return u;let t=qr(e);return t&&i.includes(t)?t:i[0]??null},[u,i,e]),p=pS(e,f);return{fields:o,field:f,setField:e=>{c(t=>{let n=new URLSearchParams(t);return n.set(`groupBy`,e),n.delete(`groupItem`),n},{replace:!0})},facets:(0,I.useMemo)(()=>{if(!f)return[];let e=r[f];return e?mS(e,t,f,p,n(`group.noValue`)):[]},[f,r,t,p,n]),selected:d,setSelected:e=>{c(t=>{let n=new URLSearchParams(t);return e===null?n.delete(`groupItem`):n.set(`groupItem`,e),n},{replace:!0})},filtered:(0,I.useMemo)(()=>{if(!f||d===null)return t;let e=r[f];return e?d===`\0__none__`?t.filter(t=>Ie(e,t[f],p).length===0):t.filter(t=>Ie(e,t[f],p).some(e=>e.value===d)):t},[t,f,r,d,p])}}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/EntityListView.tsx`;function _S({mod:e,hrefBase:t,fetchRows:n,onDelete:r,resetKey:i,cacheKey:o}){let{t:s}=a(),c=v(),[u,d]=(0,I.useState)(null),[f,p]=(0,I.useState)(null),[m,h]=(0,I.useState)(!1),[g,_]=(0,I.useState)(0),{q:y,setQ:b,debouncedQ:x,sort:S,toggleSort:C,setSort:w}=sS(),[,T]=l(),ee=Me(`panel`,1e3),te=o?`${o}?${x}`:null,[E,ne]=(0,I.useState)(()=>te?zi(te)?.rows??[]:[]),[re,ie]=(0,I.useState)(E.length===0),ae=(0,I.useRef)(0),oe=(0,I.useCallback)(async(e=x)=>{let t=o?`${o}?${e}`:null,r=t?zi(t):void 0;if(r){ne(r.rows),ie(!1);return}ie(!0);let i=++ae.current;try{let r=await n(e);if(i!==ae.current)return;ne(r),t&&Ni(t,r)}catch{i===ae.current&&ne([])}finally{i===ae.current&&ie(!1)}},[n,x,o]),ce=(0,I.useRef)(null);(0,I.useEffect)(()=>{i!==void 0&&(ce.current!==null&&ce.current!==i&&(b(``),T({},{replace:!0})),ce.current=i)},[i]),(0,I.useEffect)(()=>{oe()},[oe,g]);let D=gS(e,E),le=pS(e,S?.key??null),ue=(0,I.useMemo)(()=>{if(!S||S.key===`_rank`&&S.dir===`asc`)return D.filtered;if(S.key===`_rank`)return[...D.filtered].reverse();let t=Kr(e.fields)[S.key];return St(D.filtered,S.key,S.dir,t,le)},[D.filtered,S,e,le]),de=(0,I.useMemo)(()=>Qr(e),[e]),fe=Kr(e.fields),pe=(0,I.useMemo)(()=>{let t=Wr(e),n=vl(t);if(!n)return console.error(`[list] unknown view '${t}' for ${e.library}/${e.shelf} — showing table`),vl(`table`);let r=n.check?.(e,de);return r?(console.error(`[list] view '${t}' is not compatible with ${e.library}/${e.shelf}: ${r} — showing table`),vl(`table`)):n},[e,de]),me={keys:de.map(e=>({key:e,label:nn(s,e,fe[e])})),value:S,onChange:w};function he(){c(`${t}/new`)}let ge=(0,I.useCallback)(async e=>{if(!await Ke({title:s(`actions.confirmDelete`),confirmLabel:s(`actions.delete`),variant:`destructive`}))return;d(e);let t=await r(e);if(d(null),!t.ok){Lt.error(t.error===`last_admin`?s(`auth.lastAdminError`):s(`common.error`));return}o&&(Vi(o),wt(o)),_(e=>e+1)},[r,s,o]),_e=(0,I.useCallback)(async t=>{let n=E.find(e=>String(e.id)===t)?._activity;p(t);let r=await sa(e.library,e.shelf,t,!n?.favorite);if(p(null),!r){Lt.error(s(`common.error`));return}o&&Vi(o),_(e=>e+1)},[E,e.library,e.shelf,o,s]);return(0,L.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,L.jsxDEV)(Mn,{actions:(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`relative w-[220px] hidden nav:block`,children:[(0,L.jsxDEV)(nt,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:Q,lineNumber:225,columnNumber:15},this),(0,L.jsxDEV)(`input`,{type:`search`,value:y,onChange:e=>b(e.target.value),placeholder:s(`list.searchPlaceholder`),className:`w-full h-8 pr-3 text-sm rounded-lg border border-border bg-surface text-text placeholder:text-muted focus:outline-none focus:border-accent transition-colors`,style:{paddingLeft:`2rem`}},void 0,!1,{fileName:Q,lineNumber:226,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:224,columnNumber:13},this),(0,L.jsxDEV)(F,{variant:`outline`,size:`icon`,className:`panel:hidden`,onClick:()=>h(!0),children:(0,L.jsxDEV)(kl,{size:16},void 0,!1,{fileName:Q,lineNumber:237,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:236,columnNumber:13},this),(0,L.jsxDEV)(F,{onClick:he,children:[(0,L.jsxDEV)(se,{size:16},void 0,!1,{fileName:Q,lineNumber:240,columnNumber:15},this),(0,L.jsxDEV)(`span`,{className:`hidden sm:inline`,children:s(`actions.new`)},void 0,!1,{fileName:Q,lineNumber:241,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:239,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:222,columnNumber:11},this),children:[(0,L.jsxDEV)(rr,{name:e.icon,size:20,className:`shrink-0 text-text`},void 0,!1,{fileName:Q,lineNumber:246,columnNumber:9},this),(0,L.jsxDEV)(`h1`,{className:`text-base font-bold text-text truncate`,children:s(e.label)},void 0,!1,{fileName:Q,lineNumber:247,columnNumber:9},this),(0,L.jsxDEV)(it,{children:ue.length},void 0,!1,{fileName:Q,lineNumber:248,columnNumber:9},this),re&&E.length>0&&(0,L.jsxDEV)(Pe,{size:13,className:`animate-spin text-muted shrink-0`,"aria-hidden":!0},void 0,!1,{fileName:Q,lineNumber:250,columnNumber:40},this)]},void 0,!0,{fileName:Q,lineNumber:220,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex items-start`,children:[ee&&(0,L.jsxDEV)(`div`,{className:`hidden panel:block w-56 shrink-0 border-r border-border sticky top-[52px] self-start h-[calc(100dvh-52px)] overflow-y-auto`,children:(0,L.jsxDEV)(`div`,{className:`pt-2`,children:(0,L.jsxDEV)(fS,{grouping:D,total:E.length,sort:me},void 0,!1,{fileName:Q,lineNumber:259,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:258,columnNumber:13},this)},void 0,!1,{fileName:Q,lineNumber:257,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:ue.length===0?re?(0,L.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted`,children:(0,L.jsxDEV)(Pe,{size:28,className:`animate-spin`},void 0,!1,{fileName:Q,lineNumber:271,columnNumber:17},this)},void 0,!1,{fileName:Q,lineNumber:270,columnNumber:15},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center gap-4 py-20 text-muted`,children:[(0,L.jsxDEV)(rr,{name:e.icon,size:48,className:`text-muted`},void 0,!1,{fileName:Q,lineNumber:275,columnNumber:17},this),(0,L.jsxDEV)(`p`,{className:`text-base`,children:s(`list.empty`)},void 0,!1,{fileName:Q,lineNumber:276,columnNumber:17},this),(0,L.jsxDEV)(F,{onClick:he,children:[(0,L.jsxDEV)(se,{size:16},void 0,!1,{fileName:Q,lineNumber:278,columnNumber:19},this),` `,s(`actions.addFirst`)]},void 0,!0,{fileName:Q,lineNumber:277,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:274,columnNumber:15},this):(0,L.jsxDEV)(pe.View,{rows:ue,shelf:e,keys:de,hrefBase:t,onDelete:ge,deletingId:u,onToggleFavorite:_e,favoriteBusyId:f,sort:S,onToggleSort:C,scrollKey:te??void 0},void 0,!1,{fileName:Q,lineNumber:283,columnNumber:13},this)},void 0,!1,{fileName:Q,lineNumber:265,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:254,columnNumber:7},this),m&&(0,L.jsxDEV)(lS,{title:s(`group.title`),onClose:()=>h(!1),children:[(0,L.jsxDEV)(`div`,{className:`relative mb-4 nav:hidden`,children:[(0,L.jsxDEV)(nt,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:Q,lineNumber:305,columnNumber:13},this),(0,L.jsxDEV)(`input`,{type:`search`,value:y,onChange:e=>b(e.target.value),placeholder:s(`list.searchPlaceholder`),className:`w-full h-9 pr-3 text-sm rounded-lg border border-border bg-surface text-text placeholder:text-muted focus:outline-none focus:border-accent transition-colors`,style:{paddingLeft:`2rem`}},void 0,!1,{fileName:Q,lineNumber:306,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:304,columnNumber:11},this),(0,L.jsxDEV)(fS,{grouping:D,total:E.length,sort:me},void 0,!1,{fileName:Q,lineNumber:315,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:302,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:218,columnNumber:5},this)}var vS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UsersListPage.tsx`;function yS(){return(0,L.jsxDEV)(_S,{mod:aS,hrefBase:`/settings/users`,fetchRows:async e=>{let t=await Zi(e);return t.ok?t.data:[]},onDelete:async e=>{let t=await na(Number(e));return t.ok?{ok:!0}:t.status===409?{ok:!1,error:`last_admin`}:{ok:!1}}},void 0,!1,{fileName:vS,lineNumber:7,columnNumber:5},this)}var bS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserCreatePage.tsx`,xS=jr({login:Dr.string({label:`auth.fieldLogin`,required:!0}),displayName:Dr.string({label:`auth.fieldDisplayName`,required:!0}),password:Dr.password({label:`auth.password`,required:!0}),role:Dr.string({label:`auth.fieldRole`,strict:!0,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]})});function SS(){let{t:e}=a(),t=v();async function n(){return{login:``,displayName:``,password:``,role:`member`}}async function r(e){let n=await la({login:e.login,displayName:e.displayName,password:e.password,role:e.role});return n.ok?(t(`/settings/users`),{ok:!0,row:{login:n.data.login,displayName:n.data.displayName,password:n.data.password,role:n.data.role}}):n.status===422?{ok:!1,status:422,issues:n.data.issues}:{ok:!1,status:n.status}}return(0,L.jsxDEV)(ya,{fields:xS,recordCtx:{library:``,shelf:`users`,recordId:`new`},load:n,save:r,title:e(`auth.userCreateTitle`),backTo:`/settings/users`,backLabel:e(`auth.usersTitle`)},void 0,!1,{fileName:bS,lineNumber:53,columnNumber:5},this)}var CS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserEditPage.tsx`,wS=jr({displayName:Dr.string({label:`auth.fieldDisplayName`}),role:Dr.string({label:`auth.fieldRole`,strict:!0,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),disabled:Dr.boolean({label:`auth.fieldDisabled`}),password:Dr.password({label:`auth.fieldPasswordOptional`})});function TS(){let{id:e}=c(),{t}=a(),n=Number(e);async function r(){let e=await Zi(),t=e.ok?e.data.find(e=>e.id===n):void 0;return{displayName:t?.displayName??``,role:t?.role??`member`,disabled:t?.disabled??!1,password:t?.password??``}}async function i(e){let t=await qi(n,{displayName:e.displayName,role:e.role,disabled:e.disabled,password:e.password});return t.ok?{ok:!0,row:{displayName:t.data.displayName,role:t.data.role,disabled:t.data.disabled,password:t.data.password}}:t.status===409?{ok:!1,status:422,issues:[{field:`role`,code:`last_admin`,path:[],params:{}}]}:t.status===422?{ok:!1,status:422,issues:t.data.issues}:{ok:!1,status:t.status}}return(0,L.jsxDEV)(ya,{fields:wS,recordCtx:{library:``,shelf:`users`,recordId:e??``},load:r,save:i,title:t(`auth.usersTitle`),backTo:`/settings/users`,backLabel:t(`auth.usersTitle`)},void 0,!1,{fileName:CS,lineNumber:67,columnNumber:5},this)}var ES=(e,t)=>`coffer:list-origin:${e}/${t}`;function DS(){try{return window.sessionStorage}catch{return null}}function OS(e,t){DS()?.setItem(ES(e.library,e.shelf),JSON.stringify(t))}function kS(e){DS()?.removeItem(ES(e.library,e.shelf))}function AS(e,t){let n=DS()?.getItem(ES(e,t));if(n)try{let e=JSON.parse(n);return typeof e.path==`string`&&typeof e.label==`string`?{path:e.path,label:e.label}:void 0}catch{return}}var jS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/ShowcaseView.tsx`;function MS(e,t){return{...e,label:t.label,icon:t.icon,views:{...e.views,list:t.columns,...t.defaultGroupBy?{defaultGroupBy:t.defaultGroupBy}:{}}}}function NS({showcase:e}){let{t}=a(),n=Pi(e.source.library,e.source.shelf),r=(0,I.useCallback)(async t=>{let n=t?`?q=${encodeURIComponent(t)}`:``;try{return(await ra(`/api/showcase/${e.library}/${e.id}${n}`)).rows}catch{return[]}},[e.library,e.id]),i=(0,I.useCallback)(async t=>(await ma(e.source.library,e.source.shelf,t),{ok:!0}),[e]);return(0,I.useEffect)(()=>{OS(e.source,{path:`/${e.library}/${e.id}`,label:e.label})},[e]),n?(0,L.jsxDEV)(_S,{mod:MS(n,e),hrefBase:`/${e.source.library}/${e.source.shelf}`,resetKey:`${e.library}:${e.id}`,fetchRows:r,onDelete:i},void 0,!1,{fileName:jS,lineNumber:71,columnNumber:5},this):(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:t(`common.notFound`)},void 0,!1,{fileName:jS,lineNumber:68,columnNumber:23},this)}var PS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/ShelfView.tsx`;function FS(){let{t:e}=a(),{library:t,shelf:n}=c(),r=Bi().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),i=(0,I.useCallback)(async e=>{let r=e?`?q=${encodeURIComponent(e)}`:``;try{return await ra(`/api/${t}/${n}${r}`)}catch{return[]}},[t,n]),s=(0,I.useCallback)(async e=>(await ma(t,n,e),{ok:!0}),[t,n]),[l,u]=(0,I.useState)(null),[d,f]=(0,I.useState)(!1),p=`${t}/${n}`,[m,h]=(0,I.useState)(p);m!==p&&(h(p),u(null),f(!1)),(0,I.useEffect)(()=>{r&&t&&n&&kS({library:t,shelf:n})},[r,t,n]),(0,I.useEffect)(()=>{if(!r?.single)return;let e=!0;return ra(`/api/${t}/${n}/single`).then(t=>{e&&u(String(t.id))}).catch(()=>{e&&f(!0)}),()=>{e=!1}},[r,t,n]);let g=!r&&t&&n?ji(t,n):void 0;return g?(0,L.jsxDEV)(NS,{showcase:g},void 0,!1,{fileName:PS,lineNumber:89,columnNumber:24},this):!r||r.standalone===!1?(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:PS,lineNumber:91,columnNumber:44},this):r.single?d?(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:PS,lineNumber:94,columnNumber:29},this):l?(0,L.jsxDEV)(o,{to:`/${t}/${n}/${l}`,replace:!0},void 0,!1,{fileName:PS,lineNumber:95,columnNumber:23},this):(0,L.jsxDEV)(`div`,{className:`p-6`},void 0,!1,{fileName:PS,lineNumber:95,columnNumber:86},this):(0,L.jsxDEV)(_S,{mod:r,hrefBase:`/${t}/${n}`,resetKey:`${t}:${n}`,cacheKey:`${t}/${n}`,fetchRows:i,onDelete:s},void 0,!1,{fileName:PS,lineNumber:99,columnNumber:5},this)}function IS(e,t){let n={muted:[]};for(let[r,i]of Br(e.fields)){if(Nr(i.hidden,t))continue;let e=i.hints.role;e===`cover`&&!n.cover?n.cover={key:r,field:i}:e===`avatar`&&!n.avatar&&(n.avatar={key:r,field:i}),i.hints.emphasis===`muted`&&n.muted.push({key:r,field:i})}return n}var LS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/display/index.tsx`;function RS(e){return e!=null&&e!==``}function zS(e,t,n){return e.map(e=>({ext:e,data:t?.[e.id]})).filter(({ext:e,data:t})=>t!=null&&Br(e.fields).some(([e])=>RS(t[e]))||e.showWhen==null||Gr(e.showWhen,n))}function BS(e,t,n,r,i){return e||!n?Promise.resolve(void 0):t(()=>n(r,i))}function VS({field:e,fieldKey:t,label:n,value:r,recordCtx:i,onChange:a}){return(0,L.jsxDEV)(k,{field:e,fieldKey:t,label:n,value:r,mode:`view`,recordCtx:i,onChange:a},void 0,!1,{fileName:LS,lineNumber:108,columnNumber:5},this)}function HS({shelf:e,record:t,onUpdate:n,onUpdateExtend:r,errorAt:i=(()=>void 0)}){let{t:o}=a(),{saving:s,run:c}=Xt(),l=Kr(e.fields),u=e=>{let t=l[e];return t?.label?o(t.label):e},d=(e,t)=>{let n=l[e]?.options?.find(e=>e.value===String(t));return n?o(n.title):String(t)},f=zr(e),p=l[f],m=!!n,h={library:e.library,shelf:e.shelf,recordId:String(t.id)},g=t,_=(0,I.useMemo)(()=>IS(e,g),[e,g]),v=(0,I.useMemo)(()=>new Set([_.cover?.key,_.avatar?.key,..._.muted.map(e=>e.key)].filter(Boolean)),[_]),y=`view`,b=e=>t[e],x=e=>n?t=>BS(s,c,n,e,t):void 0,C={bridge:{mode:`view`,recordCtx:h,values:g,getValue:e=>t[e],setValue:(e,t)=>{BS(s,c,n,e,t)},isHidden:e=>!!(e===f||v.has(e)||Nr(l[e]?.hidden,g)),requiredOf:e=>Nr(l[e]?.required,g),error:e=>i([e]),touch:()=>{}}},w=(0,I.useMemo)(()=>zS(Li(e.library,e.shelf),t._extends,g),[e.library,e.shelf,t,g]);return(0,L.jsxDEV)(T.Provider,{value:i,children:(0,L.jsxDEV)(`article`,{className:`max-w-7xl mx-auto px-5 py-8 md:px-8 md:py-10 flex flex-col ${S}`,children:[_.cover&&(0,L.jsxDEV)(VS,{field:_.cover.field,fieldKey:_.cover.key,label:u(_.cover.key),value:b(_.cover.key),recordCtx:h,onChange:x(_.cover.key)},void 0,!1,{fileName:LS,lineNumber:215,columnNumber:11},this),(p||_.avatar)&&(0,L.jsxDEV)(`header`,{className:`flex items-center gap-4`,children:[_.avatar&&(0,L.jsxDEV)(`div`,{className:`shrink-0`,children:(0,L.jsxDEV)(k,{field:_.avatar.field,fieldKey:_.avatar.key,label:u(_.avatar.key),value:b(_.avatar.key),mode:y,recordCtx:h,onChange:x(_.avatar.key)},void 0,!1,{fileName:LS,lineNumber:238,columnNumber:17},this)},void 0,!1,{fileName:LS,lineNumber:237,columnNumber:15},this),p&&(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,role:`heading`,"aria-level":1,children:(0,L.jsxDEV)(k,{field:p,fieldKey:f,value:b(f),mode:y,recordCtx:h,onChange:x(f)},void 0,!1,{fileName:LS,lineNumber:251,columnNumber:17},this)},void 0,!1,{fileName:LS,lineNumber:250,columnNumber:15},this)]},void 0,!0,{fileName:LS,lineNumber:235,columnNumber:11},this),(0,L.jsxDEV)(ke,{items:e.fields,ctx:C},void 0,!1,{fileName:LS,lineNumber:265,columnNumber:9},this),w.map(({ext:n,data:i})=>(0,L.jsxDEV)(US,{ext:n,data:i,m:e,recordId:String(t.id),editable:m,onUpdateExtend:r,fieldLabelOf:u,valueLabelOf:d},n.id,!1,{fileName:LS,lineNumber:270,columnNumber:11},this)),_.muted.length>0&&(0,L.jsxDEV)(`div`,{className:`border-t border-border pt-3 flex flex-col gap-1.5`,children:_.muted.map(({key:e,field:t})=>(0,L.jsxDEV)(k,{field:t,fieldKey:e,label:u(e),value:b(e),mode:y,recordCtx:h,onChange:x(e)},e,!1,{fileName:LS,lineNumber:287,columnNumber:15},this))},void 0,!1,{fileName:LS,lineNumber:285,columnNumber:11},this)]},void 0,!0,{fileName:LS,lineNumber:212,columnNumber:7},this)},void 0,!1,{fileName:LS,lineNumber:211,columnNumber:5},this)}function US({ext:e,data:t,m:n,recordId:r,editable:i,onUpdateExtend:o,fieldLabelOf:s,valueLabelOf:c}){let{t:l}=a(),{saving:u,run:d}=Xt(),f=`view`,p=t=>o?n=>BS(u,d,(t,n)=>o(e.id,t,n),t,n):void 0,m={renderField:(a,o)=>!i&&!RS(t?.[a])?null:(0,L.jsxDEV)(k,{field:o,fieldKey:a,extId:e.id,value:t?.[a],label:o.label?l(o.label):void 0,required:o.required===!0,mode:f,recordCtx:{library:n.library,shelf:n.shelf,recordId:r},onChange:p(a)},void 0,!1,{fileName:LS,lineNumber:346,columnNumber:9},this),renderGroup:(e,a)=>{let o=t?.[e];if(!i&&!RS(o))return null;let s=En({kind:Kn(a)});return s?(0,L.jsxDEV)(rt,{field:a,value:o,commit:p(e),children:(0,L.jsxDEV)(s.Page,{el:a,value:o,mode:f,recordCtx:{library:n.library,shelf:n.shelf,recordId:r}},void 0,!1,{fileName:LS,lineNumber:369,columnNumber:11},this)},void 0,!1,{fileName:LS,lineNumber:368,columnNumber:9},this):null},values:t??{},setValue:o?(t,n)=>BS(u,d,(t,n)=>o(e.id,t,n),t,n):void 0,isHidden:i?void 0:e=>!RS(t?.[e]),mode:f},h=ke({items:e.fields,ctx:m});return h==null?null:(0,L.jsxDEV)(`div`,{className:`border-t border-border pt-6`,children:(0,L.jsxDEV)(Je,{label:l(e.label),icon:e.icon??`lucide:puzzle`,rail:!1,tone:`section`,labelAfter:(0,L.jsxDEV)(zt,{ext:e,fieldLabel:s,valueLabel:c},void 0,!1,{fileName:LS,lineNumber:406,columnNumber:21},this),children:h},void 0,!1,{fileName:LS,lineNumber:401,columnNumber:7},this)},void 0,!1,{fileName:LS,lineNumber:400,columnNumber:5},this)}function WS(e){return m(()=>import(e),[])}var GS=Object.assign({"../plugin-calendar/src/index.ts":()=>m(()=>import(`./src-dXlj2maQ.js`),__vite__mapDeps([16,17,18,1,19,20,21,22])),"../plugin-claude-agent/src/index.ts":()=>m(()=>import(`./src-Bmc_xgWr.js`),__vite__mapDeps([23,18,1,21,24])),"../plugin-console/src/index.ts":()=>m(()=>import(`./src-yL3q5Nfe.js`),__vite__mapDeps([25,18,1,21,24])),"../plugin-dav/src/index.ts":()=>m(()=>import(`./src-IYiBUs1S.js`),__vite__mapDeps([26,21])),"../plugin-devices/src/index.ts":()=>m(()=>import(`./src-DEqFDnFO.js`),__vite__mapDeps([27,28,18,1,29,19,20,21,24,30])),"../plugin-documents/src/index.ts":()=>m(()=>import(`./src-d_-Z83D-.js`),__vite__mapDeps([31,18,1,19,20,21])),"../plugin-drone/src/index.ts":()=>m(()=>import(`./src-BRA1s942.js`),__vite__mapDeps([32,18,1,19,20,21,30])),"../plugin-finance/src/index.ts":()=>m(()=>import(`./src-2QhdFJyH.js`),__vite__mapDeps([33,34,18,1,19,20,21,24])),"../plugin-garden/src/index.ts":()=>m(()=>import(`./src-uWOnIJWD.js`),__vite__mapDeps([35,18,1,19,21])),"../plugin-geo/src/index.ts":()=>m(()=>import(`./src-CvUhNHtO.js`),__vite__mapDeps([36,21])),"../plugin-health/src/index.ts":()=>m(()=>import(`./src-Bv7IbF5F.js`),__vite__mapDeps([37,18,1,19,20,21,24])),"../plugin-home/src/index.ts":()=>m(()=>import(`./src-DXSkgVrX.js`),__vite__mapDeps([38,18,1,19,21])),"../plugin-http/src/index.ts":()=>m(()=>import(`./src-DaHZILQZ.js`),__vite__mapDeps([39,18,1,21,24])),"../plugin-kitchen/src/index.ts":()=>m(()=>import(`./src-D5pqHmdF.js`),__vite__mapDeps([40,18,1,19,21])),"../plugin-lab/src/index.ts":()=>m(()=>import(`./src-WB1-7_Wh.js`),__vite__mapDeps([41,18,1,19,20,21,17,22,24,29,28,30,34])),"../plugin-media/src/index.ts":()=>m(()=>import(`./src-DAUYP87f2.js`),__vite__mapDeps([42,18,1,19,21,24])),"../plugin-people/src/index.ts":()=>m(()=>import(`./src-D9ZNj5Fi2.js`),__vite__mapDeps([43,18,1,19,21])),"../plugin-telegram/src/index.ts":()=>m(()=>import(`./src-BnvKHmLu.js`),__vite__mapDeps([44,18,1,21,24])),"../plugin-things/src/index.ts":()=>m(()=>import(`./src-Dvbi--2I.js`),__vite__mapDeps([45,18,1,19,21])),"../plugin-transit/src/index.ts":()=>m(()=>import(`./src-eAsO2o4h2.js`),__vite__mapDeps([46,18,1,19,21,24])),"../plugin-travel/src/index.ts":()=>m(()=>import(`./src-Uu0k-CHA.js`),__vite__mapDeps([47,18,1,19,21])),"../plugin-webchat/src/index.ts":()=>m(()=>import(`./src-C3X1cmlu.js`),__vite__mapDeps([48,18,1,21,24])),"../plugin-webexport/src/index.ts":()=>m(()=>import(`./src-C3hdIsRT.js`),__vite__mapDeps([49,18,1,21,24]))}),KS=Object.assign({"../plugin-calendar/src/ui.tsx":()=>m(()=>import(`./ui-kICtw37s.js`),__vite__mapDeps([50,1,2,3,51,18,19,4,15,6,7,5,9,52,22])),"../plugin-devices/src/fields/ui.tsx":()=>m(()=>import(`./ui-A8aS2-NQ.js`),__vite__mapDeps([53,1,2,3,51,18,19,4,15,6,7,5,9,52,28])),"../plugin-geo/src/ui.tsx":()=>m(()=>import(`./ui-BK1F_c4b.js`),__vite__mapDeps([54,1,2,3,51,18,19,4,15,6,7,5,9,52])),"../plugin-webchat/src/ui/ui.tsx":()=>m(()=>import(`./ui-C9-epiVm.js`),__vite__mapDeps([55,3,1,2,51,18,19,4,15,6,7,5,9,52]))});[...Object.keys(GS),...Object.keys(KS)];async function qS(e,t){let n=Object.entries(GS).find(([t])=>t.includes(`/plugin-${e}/`));if(!n)return null;let r=(await n[1]()).default??null;for(let[n,r]of Object.entries(KS)){if(!n.includes(`/plugin-${e}/`))continue;let i=(await r()).default;i&&t(i)}return r}var JS={};function YS(e,t){return JS[`${e}/${t}`]}function XS(e){ri(e),e.shelf?.RecordView&&e.shelf.library&&e.shelf.shelf&&(JS[`${e.shelf.library}/${e.shelf.shelf}`]=e.shelf.RecordView);for(let t of e.renderers??[])j(t);for(let t of e.listViews??[])_l(t);for(let[t,n]of Object.entries(e.templates??{}))Tt(t,n);for(let[t,n]of Object.entries(e.translations??{}))n&&Ta.addResourceBundle(t,`translation`,n,!0,!0)}function ZS(e){if(!e.startsWith(`/`)){console.warn(`[federation] skip non-same-origin css: ${e}`);return}if(document.querySelector(`link[href="${e}"]`))return;let t=document.createElement(`link`);t.rel=`stylesheet`,t.href=e,document.head.appendChild(t)}function QS(e){let t=new Map(e.map(e=>[e.id,e])),n=new Set,r=[],i=e=>{if(!n.has(e.id)){n.add(e.id);for(let n of e.dependsOn){let e=t.get(n);e&&i(e)}r.push(e)}};for(let t of e)i(t);return r}async function $S(){let e=await fetch(`/api/plugins`);if(!e.ok)throw Error(`[federation] /api/plugins ${e.status}`);let t=QS((await e.json()).filter(e=>e.enabled)),n=await Promise.all(t.map(async e=>{{let t=[],n=await qS(e.id,e=>t.push(e)).catch(t=>(console.error(`[federation] ${e.id}: dev source failed —`,t),null));if(n)return{e,devManifest:n,devBundles:t}}if(!e.schema)return{e};let t=await WS(e.schema).catch(t=>{console.error(`[federation] ${e.id}: schema failed, skipping plugin —`,t)});return t?{e,schemaMod:t,webMod:e.web?await WS(e.web).catch(t=>{console.error(`[federation] ${e.id}: web bundle failed —`,t)}):void 0}:{e}})),r=[];for(let{e,devManifest:t,devBundles:i,schemaMod:a,webMod:o}of n)try{if(t){r.push(t);for(let e of i??[])XS(e);continue}let n=a?.default;if(!n)continue;r.push(n),e.css&&ZS(e.css);let s=o?.default;s&&XS(s)}catch(t){console.error(`[federation] ${e.id}: applying bundle failed —`,t)}return r}var eC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/RecordView.tsx`;function tC(){let{t:e}=a(),{library:t,shelf:n,id:r}=c(),i=v(),o=Bi().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),[s,l]=(0,I.useState)(null),u=(0,I.useRef)(s);(0,I.useEffect)(()=>{u.current=s},[s]);let[d,f]=(0,I.useState)({}),[p,m]=(0,I.useState)(!1),[h,g]=(0,I.useState)(!1),_=Fe(e),y=e=>d[e.join(`.`)];function b(e){l(e??null)}if((0,I.useEffect)(()=>{if(!o||o.standalone===!1||!r)return;let e=!0;return ra(`/api/${o.library}/${o.shelf}/${r}`).then(t=>{e&&l(t)}).catch(()=>{e&&l(null)}),()=>{e=!1}},[o,r]),!o||o.standalone===!1)return(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:eC,lineNumber:71,columnNumber:44},this);async function x(t,n){if(!o||!r)return;let i=u.current?.[t];f(e=>ln(e,t)),l(e=>e&&{...e,[t]:n});let a=await Ki(o.library,o.shelf,r,{[t]:n});if(a.ok){b(a.row),Ii(`${o.library}/${o.shelf}`,a.row??{});return}l(e=>e&&{...e,[t]:i});let s=ze(a.issues??[],_);f(e=>({...ln(e,t),...s}));let c=(a.issues??[]).find(e=>e.field===t)??a.issues?.[0];return c?_(c.code,c.params):e(`validation.server`)}async function S(t,n,i){if(!o||!r)return;let a=u.current?._extends?.[t]?.[n];f(e=>ln(e,n)),l(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:i}}}});let s=await Ki(o.library,o.shelf,r,{[`_extend_${t}`]:{[n]:i}});if(s.ok){b(s.row),Ii(`${o.library}/${o.shelf}`,s.row??{});return}l(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:a}}}}),f(e=>({...ln(e,n),...ze(s.issues??[],_)}));let c=(s.issues??[]).find(e=>e.field===n)??s.issues?.[0];return c?_(c.code,c.params):e(`validation.server`)}async function C(){if(!o||!r||!await Ke({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`}))return;m(!0);let t=await ma(o.library,o.shelf,r);if(m(!1),!t){Lt.error(e(`common.error`));return}Vi(`${o.library}/${o.shelf}`),i(`/${o.library}/${o.shelf}`)}async function w(){if(!o||!r||!s)return;let t=s._activity?.favorite===!0;g(!0);let n=await sa(o.library,o.shelf,r,!t);if(g(!1),!n){Lt.error(e(`common.error`));return}l(e=>e&&{...e,_activity:n}),Vi(`${o.library}/${o.shelf}`)}let T=AS(o.library,o.shelf);function ee(){let e=window.history.state?.idx;if(typeof e==`number`&&e>0){i(-1);return}i(T?.path??`/${t}/${n}`)}let te=YS(o.library,o.shelf);return(0,L.jsxDEV)(en,{children:(0,L.jsxDEV)(vr,{children:(0,L.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,L.jsxDEV)(Mn,{actions:s&&!te&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(yn,{},void 0,!1,{fileName:eC,lineNumber:183,columnNumber:19},this),(0,L.jsxDEV)(Kt,{variant:`outline`,favorite:!!s._activity?.favorite,busy:h,labelAdd:e(`actions.favoriteAdd`),labelRemove:e(`actions.favoriteRemove`),onClick:w},void 0,!1,{fileName:eC,lineNumber:184,columnNumber:19},this),!o.single&&(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`icon`,disabled:p,onClick:C,title:e(`actions.delete`),children:(0,L.jsxDEV)(ur,{size:16},void 0,!1,{fileName:eC,lineNumber:200,columnNumber:23},this)},void 0,!1,{fileName:eC,lineNumber:193,columnNumber:21},this)]},void 0,!0,{fileName:eC,lineNumber:182,columnNumber:17},this),children:o.single?(0,L.jsxDEV)(`span`,{className:`px-2 text-sm font-medium truncate`,children:e(o.label)},void 0,!1,{fileName:eC,lineNumber:210,columnNumber:15},this):(0,L.jsxDEV)(F,{variant:`ghost`,size:`sm`,className:`px-2`,onClick:ee,children:[(0,L.jsxDEV)(di,{size:18},void 0,!1,{fileName:eC,lineNumber:213,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`text-sm`,children:e(T?.label??o.label)},void 0,!1,{fileName:eC,lineNumber:214,columnNumber:17},this)]},void 0,!0,{fileName:eC,lineNumber:212,columnNumber:15},this)},void 0,!1,{fileName:eC,lineNumber:178,columnNumber:11},this),(0,L.jsxDEV)(Ce,{children:s?te?(0,L.jsxDEV)(te,{record:s,onEdit:()=>{}},void 0,!1,{fileName:eC,lineNumber:226,columnNumber:15},this):(0,L.jsxDEV)(HS,{shelf:o,record:s,onUpdate:x,onUpdateExtend:S,errorAt:y},void 0,!1,{fileName:eC,lineNumber:228,columnNumber:15},this):(0,L.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted text-sm`,children:e(`common.loading`)},void 0,!1,{fileName:eC,lineNumber:224,columnNumber:15},this)},void 0,!1,{fileName:eC,lineNumber:222,columnNumber:11},this)]},void 0,!0,{fileName:eC,lineNumber:175,columnNumber:9},this)},void 0,!1,{fileName:eC,lineNumber:174,columnNumber:7},this)},void 0,!1,{fileName:eC,lineNumber:173,columnNumber:5},this)}var nC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/PluginSlot.tsx`,rC=new WeakMap;function iC(e){let t=rC.get(e);return t||(t=(0,I.lazy)(e),rC.set(e,t)),t}var aC=class extends I.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`[plugin-slot] contribution "${this.props.id}" failed —`,e)}render(){return this.state.failed?null:this.props.children}};function oC({name:e}){let t=ei(e);return t.length?(0,L.jsxDEV)(L.Fragment,{children:t.map(e=>{let t=iC(e.load);return(0,L.jsxDEV)(aC,{id:e.id,children:(0,L.jsxDEV)(I.Suspense,{fallback:null,children:(0,L.jsxDEV)(t,{},void 0,!1,{fileName:nC,lineNumber:54,columnNumber:15},this)},void 0,!1,{fileName:nC,lineNumber:53,columnNumber:13},this)},e.id,!1,{fileName:nC,lineNumber:52,columnNumber:11},this)})},void 0,!1,{fileName:nC,lineNumber:48,columnNumber:5},this):null}function sC({id:e,load:t}){let n=iC(t);return(0,L.jsxDEV)(aC,{id:e,children:(0,L.jsxDEV)(I.Suspense,{fallback:null,children:(0,L.jsxDEV)(n,{},void 0,!1,{fileName:nC,lineNumber:69,columnNumber:9},this)},void 0,!1,{fileName:nC,lineNumber:68,columnNumber:7},this)},void 0,!1,{fileName:nC,lineNumber:67,columnNumber:5},this)}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Shell.tsx`,cC=(0,I.lazy)(()=>m(()=>import(`./SettingsPage-Cqp1tUyi.js`).then(e=>({default:e.SettingsPage})),__vite__mapDeps([56,1,2,3,51,18,19,4,15,6,7,5,9,57,58,59,60]))),lC=(0,I.lazy)(()=>m(()=>import(`./DiagnosticsPage-tAFkmCz8.js`).then(e=>({default:e.DiagnosticsPage})),__vite__mapDeps([61,1,2,3,51,18,19,4,15,6,7,5,9,58,59,60]))),uC=(0,I.lazy)(()=>m(()=>import(`./PluginSettingsPage-BFsSZgTa.js`).then(e=>({default:e.PluginSettingsPage})),__vite__mapDeps([62,1,2,3,51,18,19,4,15,6,7,5,9,63,64]))),dC=(0,I.lazy)(()=>m(()=>import(`./NewRecordView-CTSqFBfe.js`).then(e=>({default:e.NewRecordView})),__vite__mapDeps([65,1,2,3,51,18,19,4,15,6,7,5,9,64,66,20,21,58]))),fC={"/":(0,L.jsxDEV)(Zx,{},void 0,!1,{fileName:$,lineNumber:33,columnNumber:8},void 0),"/trash":(0,L.jsxDEV)(eS,{},void 0,!1,{fileName:$,lineNumber:34,columnNumber:13},void 0),"/settings":(0,L.jsxDEV)(cC,{},void 0,!1,{fileName:$,lineNumber:35,columnNumber:16},void 0),"/settings/diagnostics":(0,L.jsxDEV)(lC,{},void 0,!1,{fileName:$,lineNumber:36,columnNumber:28},void 0),"/settings/account":(0,L.jsxDEV)(iS,{},void 0,!1,{fileName:$,lineNumber:37,columnNumber:24},void 0),"/settings/users":(0,L.jsxDEV)(yS,{},void 0,!1,{fileName:$,lineNumber:38,columnNumber:22},void 0),"/settings/users/new":(0,L.jsxDEV)(SS,{},void 0,!1,{fileName:$,lineNumber:39,columnNumber:26},void 0),"/settings/users/:id":(0,L.jsxDEV)(TS,{},void 0,!1,{fileName:$,lineNumber:40,columnNumber:26},void 0),"/settings/:groupId":(0,L.jsxDEV)(uC,{},void 0,!1,{fileName:$,lineNumber:41,columnNumber:25},void 0),"/:library/:shelf":(0,L.jsxDEV)(FS,{},void 0,!1,{fileName:$,lineNumber:42,columnNumber:23},void 0),"/:library/:shelf/new":(0,L.jsxDEV)(dC,{},void 0,!1,{fileName:$,lineNumber:43,columnNumber:27},void 0),"/:library/:shelf/:id":(0,L.jsxDEV)(tC,{},void 0,!1,{fileName:$,lineNumber:44,columnNumber:27},void 0)};function pC(){return(0,L.jsxDEV)(g,{children:[(0,L.jsxDEV)(p,{path:`/login`,element:(0,L.jsxDEV)(Ix,{},void 0,!1,{fileName:$,lineNumber:50,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:50,columnNumber:7},this),(0,L.jsxDEV)(p,{path:`/setup`,element:(0,L.jsxDEV)(zx,{},void 0,!1,{fileName:$,lineNumber:51,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:51,columnNumber:7},this),(0,L.jsxDEV)(p,{path:`/*`,element:(0,L.jsxDEV)(va,{children:(0,L.jsxDEV)(mC,{},void 0,!1,{fileName:$,lineNumber:56,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:55,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:52,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:49,columnNumber:5},this)}function mC(){let[e,t]=(0,I.useState)(!1);return(0,I.useEffect)(()=>{function e(e){(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),t(e=>!e))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`min-h-dvh bg-bg`,children:[(0,L.jsxDEV)(Wx,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:81,columnNumber:9},this),(0,L.jsxDEV)(`main`,{className:`nav:pl-52 pb-16 nav:pb-0`,children:(0,L.jsxDEV)(I.Suspense,{fallback:(0,L.jsxDEV)(`div`,{className:`flex justify-center py-16`,children:(0,L.jsxDEV)(Pe,{className:`animate-spin text-muted`,size:20},void 0,!1,{fileName:$,lineNumber:90,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:89,columnNumber:15},this),children:(0,L.jsxDEV)(g,{children:[Px.map(e=>(0,L.jsxDEV)(p,{path:e.pattern,element:fC[e.pattern]},e.pattern,!1,{fileName:$,lineNumber:96,columnNumber:17},this)),(0,L.jsxDEV)(p,{path:`/plugins`,element:(0,L.jsxDEV)(o,{to:`/settings`,replace:!0},void 0,!1,{fileName:$,lineNumber:99,columnNumber:47},this)},void 0,!1,{fileName:$,lineNumber:99,columnNumber:15},this),ti().map(e=>(0,L.jsxDEV)(p,{path:e.path,element:(0,L.jsxDEV)(sC,{id:e.path,load:e.load},void 0,!1,{fileName:$,lineNumber:101,columnNumber:60},this)},e.path,!1,{fileName:$,lineNumber:101,columnNumber:17},this))]},void 0,!0,{fileName:$,lineNumber:94,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:87,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:86,columnNumber:9},this),(0,L.jsxDEV)(Kx,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:106,columnNumber:9},this),(0,L.jsxDEV)(oC,{name:`overlay`},void 0,!1,{fileName:$,lineNumber:107,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:80,columnNumber:7},this),(0,L.jsxDEV)(Jx,{open:e,onClose:()=>t(!1)},void 0,!1,{fileName:$,lineNumber:109,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:79,columnNumber:5},this)}var hC=typeof window>`u`?``:window.location.origin;async function gC(){try{let e=await fetch(Oe.instance);if(!e.ok){e.status!==401&&console.warn(`[instance] GET ${Oe.instance} → ${e.status}`);return}let t=await e.json();typeof t.origin==`string`&&t.origin&&(hC=t.origin.replace(/\/+$/,``))}catch{}}function _C(){return hC}function vC(){mt({origin:_C,mediaUrl:Ui,uploadFile:Xi,resolveEmbed:Gi,listRecords:_a,listDir:aa}),Vt({getShelf:Pi,getOptionList:Ai})}var yC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/main.tsx`,bC=[];try{bC=await $S()}catch(e){console.warn(`[federation] failed to load plugins, continuing with none:`,e)}Ri(bC),await gC(),vC(),oi(Px),ii(Hi().map(e=>({library:e.library,shelf:e.shelf}))),(0,ba.createRoot)(document.getElementById(`root`)).render((0,L.jsxDEV)(I.StrictMode,{children:(0,L.jsxDEV)(f,{children:[(0,L.jsxDEV)(pC,{},void 0,!1,{fileName:yC,lineNumber:64,columnNumber:7},void 0),(0,L.jsxDEV)(yt,{},void 0,!1,{fileName:yC,lineNumber:65,columnNumber:7},void 0),(0,L.jsxDEV)(Zn,{richColors:!0,position:`bottom-right`},void 0,!1,{fileName:yC,lineNumber:66,columnNumber:7},void 0)]},void 0,!0,{fileName:yC,lineNumber:63,columnNumber:5},void 0)},void 0,!1,{fileName:yC,lineNumber:62,columnNumber:3},void 0));
|
|
24
|
+
`),a=!1),Object.assign(Object.assign({},e),{allowNegative:a})}function wp(e){e=Cp(e),e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle;var t=e.suffix,n=e.allowNegative,r=e.allowLeadingZeros,i=e.onKeyDown;i===void 0&&(i=zf);var a=e.onBlur;a===void 0&&(a=zf);var o=e.thousandSeparator,s=e.decimalScale,c=e.fixedDecimalScale,l=e.prefix;l===void 0&&(l=``);var u=e.defaultValue,d=e.value,f=e.valueIsNumericString,p=e.onValueChange,m=Lf(e,[`decimalSeparator`,`allowedDecimalSeparators`,`thousandsGroupStyle`,`suffix`,`allowNegative`,`allowLeadingZeros`,`onKeyDown`,`onBlur`,`thousandSeparator`,`decimalScale`,`fixedDecimalScale`,`prefix`,`defaultValue`,`value`,`valueIsNumericString`,`onValueChange`]),h=_p(e),g=h.decimalSeparator,_=h.allowedDecimalSeparators,v=function(t){return gp(t,e)},y=function(t,n){return xp(t,n,e)},b=Hf(d)?u:d,x=f??bp(b,l,t);Hf(d)?Hf(u)||(x||=typeof u==`number`):x||=typeof d==`number`;var S=function(e){return Wf(e)?e:(typeof e==`number`&&(e=$f(e)),x&&typeof s==`number`?ep(e,s,!!c):e)},C=fp(S(d),S(u),!!x,v,y,p),w=C[0],T=w.numAsString,ee=w.formattedValue,te=C[1];return Object.assign(Object.assign({},m),{value:ee,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===g||Vf(e)},isCharacterSame:function(e){var t=e.currentValue,n=e.lastValue,r=e.formattedValue,i=e.currentValueIndex,a=e.formattedValueIndex,o=t[i],u=r[a],f=np(n,t).to,p=function(e){return y(e).indexOf(`.`)+l.length};return d===0&&c&&s&&t[f.start]===g&&p(t)<i&&p(r)>a?!1:i>=f.start&&i<f.end&&_&&_.includes(o)&&u===g?!0:o===u},onValueChange:te,format:v,removeFormatting:y,getCaretBoundary:function(t){return Sp(t,e)},onKeyDown:function(e){var t=e.target,r=e.key,a=t.selectionStart,u=t.selectionEnd,d=t.value;if(d===void 0&&(d=``),(r===`Backspace`||r===`Delete`)&&u<l.length&&d!==`-`){e.preventDefault();return}if(a!==u){i(e);return}r===`Backspace`&&d[0]===`-`&&a===l.length+1&&n&&tp(t,1),s&&c&&(r===`Backspace`&&d[a-1]===g?(tp(t,a-1),e.preventDefault()):r===`Delete`&&d[a]===g&&e.preventDefault()),_?.includes(r)&&d[a]===g&&tp(t,a+1);var f=o===!0?`,`:o;r===`Backspace`&&d[a-1]===f&&tp(t,a-1),r===`Delete`&&d[a]===f&&tp(t,a+1),i(e)},onBlur:function(t){var n=T;n.match(/\d/g)||(n=``),r||(n=Xf(n)),c&&s&&(n=ep(n,s,c)),n!==T&&te({formattedValue:gp(n,e),value:n,floatValue:parseFloat(n)},{event:t,source:Rf.event}),a(t)}})}function Tp(e){var t=wp(e);return I.createElement(hp,Object.assign({},t))}var V=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/number.tsx`;function Ep(e){return(0,L.jsxDEV)(`span`,{className:`font-mono`,children:String(e)},void 0,!1,{fileName:V,lineNumber:38,columnNumber:10},this)}function Dp({name:e,field:t,value:n,onChange:r}){let i=t.hints;return t.hints.multiple===!0?(0,L.jsxDEV)(er,{value:n,onChange:r,validate:e=>!isNaN(Number(e))&&e!==``,display:Ep,renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:`number`,value:e,onChange:e=>t(e.target.value),placeholder:`0`,className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:V,lineNumber:51,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:45,columnNumber:7},this):(0,L.jsxDEV)(Tp,{customInput:P,id:e,value:n===``||n==null?``:String(n),thousandSeparator:!0,decimalScale:t.column===`integer`?0:void 0,min:i.min,max:i.max,step:i.step,onValueChange:e=>r(e.floatValue??``),placeholder:`0`},void 0,!1,{fileName:V,lineNumber:69,columnNumber:5},this)}function Op({field:e,value:t}){return(0,L.jsxDEV)(`span`,{className:`font-mono`,children:vn(t,e)},void 0,!1,{fileName:V,lineNumber:92,columnNumber:10},this)}function kp({field:e,value:t}){return e.hints.multiple===!0?(0,L.jsxDEV)(Ae,{items:Qn(t,[]),content:Ep},void 0,!1,{fileName:V,lineNumber:98,columnNumber:12},this):Ct(t,t=>(0,L.jsxDEV)(`span`,{children:vn(t,e)},void 0,!1,{fileName:V,lineNumber:100,columnNumber:31},this))}function Ap(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(kp,{field:e.field,value:t},void 0,!1,{fileName:V,lineNumber:115,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Dp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:V,lineNumber:117,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:105,columnNumber:5},this)}function jp({field:e,value:t}){return t==null||t===``?null:(0,L.jsxDEV)(`span`,{className:`truncate font-mono tabular-nums`,children:vn(t,e)},void 0,!1,{fileName:V,lineNumber:127,columnNumber:10},this)}j({kinds:[`number`],Page:Ap,Inline:jp,Value:Op});var Mp=e=>Array.from({length:e},(e,t)=>(0,L.jsxDEV)(st,{className:`size-5 data-[state=empty]:text-border`,style:{color:me(`yellow`)}},t,!1,{fileName:V,lineNumber:140,columnNumber:5},void 0));function Np({value:e,onChange:t,field:n}){let r=Number(n.hints.max??5),i=e?Number(e):0;return(0,L.jsxDEV)(`div`,{className:`flex items-center min-h-9${t?``:` pointer-events-none`}`,children:(0,L.jsxDEV)(ee,{value:i,max:r,clearable:!0,readOnly:!t,activationMode:`manual`,onValueChange:e=>t?.(e===0?``:e),"aria-label":n.label,children:Mp(r)},void 0,!1,{fileName:V,lineNumber:161,columnNumber:7},this)},void 0,!1,{fileName:V,lineNumber:160,columnNumber:5},this)}function Pp({field:e,value:t}){return(0,L.jsxDEV)(Np,{field:e,value:t},void 0,!1,{fileName:V,lineNumber:182,columnNumber:10},this)}function Fp({field:e,draft:t,save:n}){return(0,L.jsxDEV)(Np,{field:e,value:t,onChange:e=>n(e)},void 0,!1,{fileName:V,lineNumber:191,columnNumber:10},this)}function Ip(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-fit`,bare:e.bare,view:t=>(0,L.jsxDEV)(Np,{field:e.field,value:t},void 0,!1,{fileName:V,lineNumber:206,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Np,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:V,lineNumber:207,columnNumber:30},this)},void 0,!1,{fileName:V,lineNumber:196,columnNumber:5},this)}function Lp({value:e}){let t=Number(e);return(0,L.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 truncate`,children:Number.isNaN(t)||!t?`—`:(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`span`,{style:{color:me(`yellow`)},className:`inline-flex`,children:(0,L.jsxDEV)(rr,{name:`lucide:star`,size:12,className:`fill-current`},void 0,!1,{fileName:V,lineNumber:223,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:222,columnNumber:11},this),t]},void 0,!0,{fileName:V,lineNumber:219,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:215,columnNumber:5},this)}j({kinds:[`rating`],Page:Ip,Inline:Lp,Value:Pp,Picker:Fp,pickerCommits:!0});function Rp({value:e,onChange:t,field:n}){let{t:r}=a(),i=Number(n.hints.step??60),o=e?Number(e):0,s=Math.floor(o/86400),c=Math.floor(o%86400/3600),l=Math.floor(o%3600/60),u=o%60,d=i<60;function f(e,n,r,i){let a=Math.max(0,e*86400+n*3600+r*60+i);t(a>0?a:``)}let p=({val:e,unit:t,...n})=>(0,L.jsxDEV)(yi,{className:`w-[5.25rem]`,children:[(0,L.jsxDEV)(_i,{type:`number`,value:e||``,min:0,placeholder:`0`,...n},void 0,!1,{fileName:V,lineNumber:260,columnNumber:7},this),(0,L.jsxDEV)(hi,{align:`inline-end`,children:(0,L.jsxDEV)(bi,{children:t},void 0,!1,{fileName:V,lineNumber:262,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:261,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:259,columnNumber:5},this);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 flex-wrap ${In}`,children:[(0,L.jsxDEV)(p,{val:s,unit:r(`form.days`),onChange:e=>f(Number(e.target.value)||0,c,l,u)},void 0,!1,{fileName:V,lineNumber:268,columnNumber:7},this),(0,L.jsxDEV)(p,{val:c,unit:r(`form.hours`),max:23,onChange:e=>f(s,Number(e.target.value)||0,l,u)},void 0,!1,{fileName:V,lineNumber:269,columnNumber:7},this),(0,L.jsxDEV)(p,{val:l,unit:r(`form.minutes`),max:59,step:d?1:Math.max(1,Math.floor(i/60)),onChange:e=>f(s,c,Number(e.target.value)||0,u)},void 0,!1,{fileName:V,lineNumber:270,columnNumber:7},this),d&&(0,L.jsxDEV)(p,{val:u,unit:r(`form.seconds`),max:59,step:i,onChange:e=>f(s,c,l,Number(e.target.value)||0)},void 0,!1,{fileName:V,lineNumber:278,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:267,columnNumber:5},this)}function zp({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:V,lineNumber:293,columnNumber:43},this):(0,L.jsxDEV)(`span`,{className:`text-sm`,children:$t(n,t)},void 0,!1,{fileName:V,lineNumber:294,columnNumber:10},this)}function Bp(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:t=>(0,L.jsxDEV)(zp,{field:e.field,value:t},void 0,!1,{fileName:V,lineNumber:309,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Rp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:V,lineNumber:311,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:299,columnNumber:5},this)}function Vp({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,L.jsxDEV)(`span`,{children:`—`},void 0,!1,{fileName:V,lineNumber:320,columnNumber:43},this):(0,L.jsxDEV)(`span`,{className:`truncate`,children:$t(n,t)},void 0,!1,{fileName:V,lineNumber:321,columnNumber:10},this)}j({kinds:[`duration`],Page:Bp,Inline:Vp});var H=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/datetime.tsx`;function Hp(e,t){return e.granularity??t}function Up(e,t=`minute`){let n=String(e??``);return t===`second`?n.length>19?n.slice(0,19):n:t===`hour`?n.length>13?n.slice(0,13):n:n.length>16?n.slice(0,16):n}function Wp(e,t){return function(n){return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(rr,{name:e,size:13,className:`shrink-0 text-muted`},void 0,!1,{fileName:H,lineNumber:86,columnNumber:9},this),(0,L.jsxDEV)(`span`,{children:t?t(String(n)):String(n)},void 0,!1,{fileName:H,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:85,columnNumber:7},this)}}function Gp({value:e,format:t,icon:n}){return(0,L.jsxDEV)(Ae,{items:Qn(e,[]),content:Wp(n,t)},void 0,!1,{fileName:H,lineNumber:96,columnNumber:10},this)}function Kp({value:e}){let{i18n:t}=a();return(0,L.jsxDEV)(L.Fragment,{children:Wp(`lucide:calendar`,e=>at(e,t.language)||e)(e)},void 0,!1,{fileName:H,lineNumber:107,columnNumber:10},this)}function qp({value:e}){let{i18n:t}=a();return(0,L.jsxDEV)(L.Fragment,{children:Wp(`lucide:calendar-clock`,e=>ct(e,t.language)||e)(e)},void 0,!1,{fileName:H,lineNumber:112,columnNumber:10},this)}function Jp({field:e,value:t}){let{i18n:n}=a();return e.hints.multiple===!0?(0,L.jsxDEV)(Gp,{value:t,icon:`lucide:calendar`,format:e=>at(e,n.language)||e},void 0,!1,{fileName:H,lineNumber:120,columnNumber:12},this):Ct(t,t=>{let r=Hp(e.hints,`day`);return(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:r===`month`||r===`year`?String(t):at(String(t),n.language)||String(t)},void 0,!1,{fileName:H,lineNumber:127,columnNumber:7},this)})}function Yp({name:e,field:t,value:n,onChange:r}){let i=Hp(t.hints,`day`),a=i===`month`?`month`:i===`year`?`number`:`date`;if(t.hints.multiple===!0)return(0,L.jsxDEV)(er,{value:n,onChange:r,display:Wp(`lucide:calendar`),renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:a,value:e,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:H,lineNumber:144,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:139,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);return i===`year`?(0,L.jsxDEV)(we,{value:o,onChange:r},void 0,!1,{fileName:H,lineNumber:165,columnNumber:28},this):i===`month`?(0,L.jsxDEV)(De,{value:o,onChange:r},void 0,!1,{fileName:H,lineNumber:166,columnNumber:29},this):(0,L.jsxDEV)(pt,{value:o,onChange:r},void 0,!1,{fileName:H,lineNumber:167,columnNumber:10},this)}function Xp(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,L.jsxDEV)(Jp,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:182,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Yp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:184,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:172,columnNumber:5},this)}function Zp(e,t,n){if(e==null||e===``)return[];let r=Hp(t.hints,`day`),i=String(e);return[{value:i,rawValue:e,label:r===`year`||r===`month`?i:at(i,n.locale)||i}]}function Qp({field:e,draft:t,save:n}){let r=Hp(e.hints,`day`),i=typeof t==`string`?t:String(t??``);if(r===`year`)return(0,L.jsxDEV)(Pn,{value:i,onChange:e=>n(e)},void 0,!1,{fileName:H,lineNumber:213,columnNumber:28},this);if(r===`month`)return(0,L.jsxDEV)(he,{value:i,onChange:e=>n(e)},void 0,!1,{fileName:H,lineNumber:214,columnNumber:29},this);let a=ye(i);return(0,L.jsxDEV)(Wn,{mode:`single`,selected:a,captionLayout:`dropdown`,defaultMonth:a,className:`w-full`,onSelect:e=>n(e?te(e):``)},void 0,!1,{fileName:H,lineNumber:217,columnNumber:5},this)}function $p({field:e,value:t}){let{i18n:n}=a(),r=Hp(e.hints,`day`),i=String(t??``);return i?(0,L.jsxDEV)(`span`,{className:`truncate whitespace-nowrap`,children:r===`month`||r===`year`?i:at(i,n.language)||i},void 0,!1,{fileName:H,lineNumber:242,columnNumber:5},this):null}j({kinds:[`date`],Page:Xp,Inline:$p,Value:Kp,Picker:Qp,pickerCommits:!0,keys:Zp});var em={hour:/^([01]\d|2[0-3])$/,minute:/^([01]\d|2[0-3]):[0-5]\d$/,second:/^([01]\d|2[0-3]):[0-5]\d:[0-5]\d$/};function tm({field:e,value:t}){return e.hints.multiple!==!0&&(t==null||t===``)?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:H,lineNumber:269,columnNumber:83},this):e.hints.multiple===!0?(0,L.jsxDEV)(Gp,{value:t,icon:`lucide:clock`},void 0,!1,{fileName:H,lineNumber:271,columnNumber:5},this):(0,L.jsxDEV)(`span`,{className:`font-mono text-sm`,children:String(t)},void 0,!1,{fileName:H,lineNumber:273,columnNumber:5},this)}function nm({name:e,field:t,value:n,onChange:r}){let i=Hp(t.hints,`second`),a=i===`second`?1:i===`minute`?60:3600;if(t.hints.multiple===!0)return(0,L.jsxDEV)(er,{value:n,onChange:r,validate:e=>em[i]?.test(e)??!1,display:Wp(`lucide:clock`),renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:`time`,step:a,value:e,onChange:e=>t(e.target.value),className:`w-36`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:H,lineNumber:289,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:283,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);if(i===`hour`)return(0,L.jsxDEV)(P,{id:e,type:`time`,step:a,value:o,onChange:e=>r(e.target.value),className:`appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`},void 0,!1,{fileName:H,lineNumber:314,columnNumber:7},this);let s=i===`second`;return(0,L.jsxDEV)(nr,{value:o,onValueChange:r,showSeconds:s,children:[(0,L.jsxDEV)(re,{id:e,children:[(0,L.jsxDEV)(Qe,{segment:`hour`},void 0,!1,{fileName:H,lineNumber:329,columnNumber:9},this),(0,L.jsxDEV)(le,{},void 0,!1,{fileName:H,lineNumber:330,columnNumber:9},this),(0,L.jsxDEV)(Qe,{segment:`minute`},void 0,!1,{fileName:H,lineNumber:331,columnNumber:9},this),s&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(le,{},void 0,!1,{fileName:H,lineNumber:334,columnNumber:13},this),(0,L.jsxDEV)(Qe,{segment:`second`},void 0,!1,{fileName:H,lineNumber:335,columnNumber:13},this)]},void 0,!0,{fileName:H,lineNumber:333,columnNumber:11},this),(0,L.jsxDEV)(oe,{},void 0,!1,{fileName:H,lineNumber:338,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:328,columnNumber:7},this),(0,L.jsxDEV)(At,{children:[(0,L.jsxDEV)(lr,{},void 0,!1,{fileName:H,lineNumber:341,columnNumber:9},this),(0,L.jsxDEV)(or,{},void 0,!1,{fileName:H,lineNumber:342,columnNumber:9},this),s&&(0,L.jsxDEV)(tt,{},void 0,!1,{fileName:H,lineNumber:343,columnNumber:25},this),(0,L.jsxDEV)(pr,{},void 0,!1,{fileName:H,lineNumber:344,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:340,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:327,columnNumber:5},this)}function rm(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(tm,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:362,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(nm,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:364,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:352,columnNumber:5},this)}function im(e){return String(e).padStart(2,`0`)}var am=Array.from({length:24},(e,t)=>({value:im(t),title:im(t)})),om=Array.from({length:60},(e,t)=>({value:im(t),title:im(t)}));function sm({value:e,onChange:t,granularity:n}){let[r=``,i=``,a=``]=e.split(`:`),o=n!==`hour`,s=n===`second`,c=(e,t,n)=>{if(!o)return e;let r=`${e||`00`}:${t||`00`}`;return s?`${r}:${n||`00`}`:r},l=(e,t,n)=>(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(gr,{options:e,value:t,multiple:!1,literal:!0,search:!1,onPick:e=>n(String(e))},void 0,!1,{fileName:H,lineNumber:410,columnNumber:7},this)},void 0,!1,{fileName:H,lineNumber:409,columnNumber:5},this);return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 gap-1`,children:[l(am,r,e=>t(c(e,i,a))),o&&l(om,i,e=>t(c(r,e,a))),s&&l(om,a,e=>t(c(r,i,e)))]},void 0,!0,{fileName:H,lineNumber:414,columnNumber:5},this)}function cm({field:e,draft:t,setDraft:n}){let r=Hp(e.hints,`second`);return(0,L.jsxDEV)(sm,{value:typeof t==`string`?t:String(t??``),onChange:n,granularity:r},void 0,!1,{fileName:H,lineNumber:427,columnNumber:10},this)}function lm({value:e}){return(0,L.jsxDEV)(`span`,{className:`font-mono text-sm`,children:String(e??``)},void 0,!1,{fileName:H,lineNumber:432,columnNumber:10},this)}j({kinds:[`time`],Page:rm,Value:lm,Picker:cm});var um={hour:/^\d{4}-\d{2}-\d{2}T([01]\d|2[0-3])$/,minute:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}$/,second:/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}$/};function dm({field:e,value:t}){let{i18n:n}=a();if(e.hints.multiple!==!0&&(t==null||t===``))return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:H,lineNumber:452,columnNumber:83},this);let r=Hp(e.hints,`minute`);return e.hints.multiple===!0?(0,L.jsxDEV)(Gp,{value:t,icon:`lucide:calendar-clock`,format:e=>ct(Up(e,r),n.language)||Up(e,r).replace(`T`,` `)},void 0,!1,{fileName:H,lineNumber:455,columnNumber:5},this):(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:ct(Up(t,r),n.language)},void 0,!1,{fileName:H,lineNumber:461,columnNumber:5},this)}function fm({name:e,field:t,value:n,onChange:r}){let i=Hp(t.hints,`minute`),a=i===`second`?1:i===`hour`?3600:60;if(t.hints.multiple===!0)return(0,L.jsxDEV)(er,{value:n,onChange:r,validate:e=>um[i]?.test(e)??!1,display:Wp(`lucide:calendar-clock`,e=>Up(e,i).replace(`T`,` `)),renderInput:(e,t,n)=>(0,L.jsxDEV)(P,{type:`datetime-local`,step:a,value:e,onChange:e=>t(e.target.value),className:`w-52`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:H,lineNumber:477,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:471,columnNumber:7},this);let{date:o,time:s}=ge(Up(n,i));return(0,L.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,L.jsxDEV)(pt,{value:o,onChange:e=>r(dt(e,s||`00:00`))},void 0,!1,{fileName:H,lineNumber:498,columnNumber:7},this),(0,L.jsxDEV)(P,{id:e,type:`time`,step:a,value:s,onChange:e=>r(dt(o,e.target.value)),className:`w-32 appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`},void 0,!1,{fileName:H,lineNumber:499,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:497,columnNumber:5},this)}function pm(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,L.jsxDEV)(dm,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:523,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(fm,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:525,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:513,columnNumber:5},this)}function mm({value:e,field:t}){let{i18n:n}=a();return(0,L.jsxDEV)(`span`,{className:`truncate`,children:ct(Up(e,Hp(t.hints,`minute`)),n.language)},void 0,!1,{fileName:H,lineNumber:539,columnNumber:10},this)}function hm(e,t,n){if(e==null||e===``)return[];let r=Up(e,Hp(t.hints,`minute`));return[{value:r,rawValue:e,label:ct(r,n.locale)}]}function gm({field:e,draft:t,setDraft:n}){let r=Hp(e.hints,`minute`),{date:i,time:a}=ge(Up(t,r)),o=ye(i);return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-wrap gap-2`,children:[(0,L.jsxDEV)(Wn,{mode:`single`,selected:o,captionLayout:`dropdown`,defaultMonth:o,onSelect:e=>n(dt(e?te(e):``,a||`00:00`))},void 0,!1,{fileName:H,lineNumber:560,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(sm,{value:a,onChange:e=>n(dt(i,e)),granularity:r},void 0,!1,{fileName:H,lineNumber:568,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:567,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:559,columnNumber:5},this)}j({kinds:[`datetime`],pickerSize:`large`,Page:pm,Picker:gm,Inline:mm,Value:qp,keys:hm});var _m=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/choice.tsx`;function vm({value:e}){return(0,L.jsxDEV)(`span`,{children:be(e)?(0,L.jsxDEV)(rr,{name:`lucide:check`,size:14,className:`inline text-success`},void 0,!1,{fileName:_m,lineNumber:55,columnNumber:36},this):`—`},void 0,!1,{fileName:_m,lineNumber:55,columnNumber:10},this)}function ym({value:e,onChange:t,label:n}){let{saving:r}=Xt();return(0,L.jsxDEV)(Dt,{checked:be(e),disabled:r,"aria-label":n,onCheckedChange:e=>t?.(e===!0)},void 0,!1,{fileName:_m,lineNumber:69,columnNumber:5},this)}function bm(e){let t=E();return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:(n,r)=>r&&t?(0,L.jsxDEV)(ym,{value:n,label:e.label,onChange:e=>void r(e)},void 0,!1,{fileName:_m,lineNumber:101,columnNumber:11},this):(0,L.jsxDEV)(vm,{field:e.field,value:n},void 0,!1,{fileName:_m,lineNumber:103,columnNumber:11},this),edit:(t,n)=>(0,L.jsxDEV)(ym,{value:t,label:e.label,onChange:n},void 0,!1,{fileName:_m,lineNumber:106,columnNumber:30},this)},void 0,!1,{fileName:_m,lineNumber:89,columnNumber:5},this)}function xm({value:e}){return(0,L.jsxDEV)(`span`,{children:be(e)?(0,L.jsxDEV)(rr,{name:`lucide:check`,size:14,className:`inline text-success`},void 0,!1,{fileName:_m,lineNumber:112,columnNumber:36},this):`—`},void 0,!1,{fileName:_m,lineNumber:112,columnNumber:10},this)}function Sm(e,t,n){if(e==null||e===``)return[];let r=Gt(e);return[{value:r?`true`:`false`,rawValue:r,label:r?n.t(`group.yes`):n.t(`group.no`)}]}j({kinds:[`boolean`],Page:bm,Inline:xm,Value:vm,editor:`inplace`,keys:Sm});var U=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/illustrated.tsx`,Cm=170;function wm(e){let t=Mr(e.parts??[]);return{tKey:t.text??`text`,iKey:t.image??`image`}}function Tm(e,t){let{tKey:n,iKey:r}=wm(t),i=e&&typeof e==`object`?e:null;return i?{text:i[n],image:i[r]}:{}}function Em(e){let t=e.hints.config??{};return{width:t.imageWidth??Cm,side:t.side??`left`}}function Dm(e){return e.parts?.find(e=>e.role===`image`)?.meta.kind??`image`}var Om=e=>e===`poster`?`aspect-[2/3]`:`aspect-square`;function km({name:e,width:t,kind:n=`image`}){let[r,i]=(0,I.useState)(!1);return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`button`,{type:`button`,"data-testid":`illustrated-image`,onClick:()=>i(!0),style:{"--illus-w":`${t}px`},className:`relative block ${Om(n)} w-full cursor-zoom-in overflow-hidden rounded-xl border border-border transition-colors hover:border-accent @sm:w-(--illus-w)`,children:(0,L.jsxDEV)(Be,{name:e},void 0,!1,{fileName:U,lineNumber:120,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:113,columnNumber:7},this),r&&(0,L.jsxDEV)(ae,{images:[e],index:0,onClose:()=>i(!1),onIndex:()=>{}},void 0,!1,{fileName:U,lineNumber:122,columnNumber:16},this)]},void 0,!0,{fileName:U,lineNumber:112,columnNumber:5},this)}function Am({width:e,side:t,picture:n,prose:r}){return(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[n!=null&&(0,L.jsxDEV)(`div`,{"data-testid":`illustrated-figure`,style:{"--illus-w":`${e}px`},className:`mb-3 w-full @sm:mb-2 @sm:w-(--illus-w) ${t===`right`?`@sm:float-right @sm:ml-4`:`@sm:float-left @sm:mr-4`}`,children:n},void 0,!1,{fileName:U,lineNumber:155,columnNumber:9},this),r!=null&&(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:r},void 0,!1,{fileName:U,lineNumber:165,columnNumber:25},this),(0,L.jsxDEV)(`div`,{className:`clear-both`},void 0,!1,{fileName:U,lineNumber:167,columnNumber:7},this)]},void 0,!0,{fileName:U,lineNumber:153,columnNumber:5},this)}function jm({field:e,value:t}){let{text:n,image:r}=Tm(t,e),{width:i,side:a}=Em(e),o=r!=null&&r!==``?un(r)[0]:void 0,s=n!=null&&n!==``;return(0,L.jsxDEV)(Am,{width:i,side:a,picture:o?(0,L.jsxDEV)(km,{name:o.name,width:i,kind:Dm(e)},void 0,!1,{fileName:U,lineNumber:185,columnNumber:22},this):null,prose:s?(0,L.jsxDEV)(`div`,{"data-testid":`illustrated-text`,className:`min-w-0`,children:(0,L.jsxDEV)(vd,{value:String(n)},void 0,!1,{fileName:U,lineNumber:189,columnNumber:13},this)},void 0,!1,{fileName:U,lineNumber:188,columnNumber:11},this):null},void 0,!1,{fileName:U,lineNumber:182,columnNumber:5},this)}function Mm({field:e,value:t,onChange:n}){let{tKey:r,iKey:i}=wm(e),{text:a,image:o}=Tm(t,e),{width:s}=Em(e),c=Dm(e),l=o!=null&&o!==``?un(o)[0]:void 0,u=e.parts?.find(e=>e.role===`text`),d=u!=null&&u.mode!==`stored`,f=e.parts?.find(e=>e.role===`image`),p=f!=null&&f.mode!==`stored`,m=e=>{let t=bn(e.text),a=bn(e.image);n(t==null&&a==null?``:{[r]:t,[i]:a})};return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-3 min-w-0`,children:[p?(0,L.jsxDEV)(`div`,{className:`text-sm text-muted`,children:l?(0,L.jsxDEV)(km,{name:l.name,width:s,kind:c},void 0,!1,{fileName:U,lineNumber:232,columnNumber:18},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:232,columnNumber:85},this)},void 0,!1,{fileName:U,lineNumber:231,columnNumber:9},this):(0,L.jsxDEV)(et,{value:o??``,onChange:e=>m({text:a,image:e}),width:s,poster:c===`poster`},void 0,!1,{fileName:U,lineNumber:235,columnNumber:9},this),d?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted whitespace-pre-wrap`,children:a!=null&&a!==``?String(a):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:244,columnNumber:57},this)},void 0,!1,{fileName:U,lineNumber:243,columnNumber:9},this):(0,L.jsxDEV)(pi,{id:`field-${e.label}`,value:a==null?``:String(a),onChange:e=>m({text:e.target.value,image:o})},void 0,!1,{fileName:U,lineNumber:247,columnNumber:9},this)]},void 0,!0,{fileName:U,lineNumber:229,columnNumber:5},this)}function Nm({image:e,fixed:t,width:n,kind:r=`image`,onChange:i}){let a=e!=null&&e!==``?un(e)[0]:void 0;return t||!i?(0,L.jsxDEV)(`div`,{className:`text-sm text-muted`,children:a?(0,L.jsxDEV)(km,{name:a.name,width:n,kind:r},void 0,!1,{fileName:U,lineNumber:284,columnNumber:16},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:284,columnNumber:83},this)},void 0,!1,{fileName:U,lineNumber:283,columnNumber:7},this):(0,L.jsxDEV)(et,{value:e??``,onChange:i,width:n,poster:r===`poster`},void 0,!1,{fileName:U,lineNumber:292,columnNumber:10},this)}function Pm({text:e,fixed:t,meta:n,label:r,onChange:i}){return t||!i?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted whitespace-pre-wrap`,children:e!=null&&e!==``?String(e):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:323,columnNumber:55},this)},void 0,!1,{fileName:U,lineNumber:322,columnNumber:7},this):(0,L.jsxDEV)(Yn,{field:{...n,kind:`markdown`,hints:{...n.hints,noLabel:!0}},value:e??``,label:r,geom:`none`,width:`w-full`,view:e=>e!=null&&e!==``?(0,L.jsxDEV)(vd,{value:String(e)},void 0,!1,{fileName:U,lineNumber:335,columnNumber:45},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:U,lineNumber:335,columnNumber:82},this),edit:(e,t)=>(0,L.jsxDEV)(pi,{value:e==null?``:String(e),onChange:e=>t(e.target.value)},void 0,!1,{fileName:U,lineNumber:336,columnNumber:25},this),onCommit:i},void 0,!1,{fileName:U,lineNumber:329,columnNumber:5},this)}function Fm({field:e,value:t,onChange:n,label:r,required:i,error:a}){let{tKey:o,iKey:s}=wm(e),{text:c,image:l}=Tm(t,e),{width:u,side:d}=Em(e),f=Dm(e),p=e.parts?.find(e=>e.role===`text`),m=p!=null&&p.mode!==`stored`,h=e.parts?.find(e=>e.role===`image`),g=h!=null&&h.mode!==`stored`,_=e.hints.noLabel===!0||r===void 0,v=(e,t)=>{let r=bn(e),i=bn(t);return n(r==null&&i==null?``:{[o]:r,[s]:i})};return(0,L.jsxDEV)(`div`,{className:`group/field relative w-full`,children:[!_&&(0,L.jsxDEV)(ht,{label:r,required:i},void 0,!1,{fileName:U,lineNumber:381,columnNumber:20},this),(0,L.jsxDEV)(Am,{width:u,side:d,picture:(0,L.jsxDEV)(Nm,{image:l,fixed:g,width:u,kind:f,onChange:g?void 0:e=>void v(c,e)},void 0,!1,{fileName:U,lineNumber:388,columnNumber:11},this),prose:(0,L.jsxDEV)(Pm,{text:c,fixed:m,meta:p?.meta??e,label:r,onChange:m?void 0:e=>v(e,l)},void 0,!1,{fileName:U,lineNumber:397,columnNumber:11},this)},void 0,!1,{fileName:U,lineNumber:384,columnNumber:7},this),(0,L.jsxDEV)(vt,{error:a},void 0,!1,{fileName:U,lineNumber:406,columnNumber:7},this)]},void 0,!0,{fileName:U,lineNumber:380,columnNumber:5},this)}function Im(e){let{live:t,write:n}=dr(e);return t?(0,L.jsxDEV)(Fm,{field:e.field,value:e.value,onChange:n,label:e.label,required:e.required,error:e.error},void 0,!1,{fileName:U,lineNumber:420,columnNumber:7},this):(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,L.jsxDEV)(jm,{field:e.field,value:t},void 0,!1,{fileName:U,lineNumber:441,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Mm,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:U,lineNumber:443,columnNumber:9},this)},void 0,!1,{fileName:U,lineNumber:431,columnNumber:5},this)}function Lm({field:e,value:t}){let{text:n}=Tm(t,e);return n==null||n===``?(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:U,lineNumber:451,columnNumber:43},this):(0,L.jsxDEV)(`span`,{className:`truncate`,children:String(n)},void 0,!1,{fileName:U,lineNumber:452,columnNumber:10},this)}j({kinds:[`illustrated`],layout:`block`,Page:Im,Inline:Lm,editor:`own`});var W=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/file.tsx`;function Rm(e){return Ke({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`})}function zm(e){return e==null?null:e>=1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${Math.round(e/1024)} KB`}var Bm=/\.(txt|md|markdown|csv|json|xml|log|yaml|yml|ini|toml|js|jsx|ts|tsx|css|html)$/i;function Vm(e){let t=e.mime?.toLowerCase().split(`;`,1)[0];return t===`application/pdf`||/\.pdf$/i.test(e.name)?`pdf`:t?.startsWith(`text/`)||t===`application/json`||t===`application/xml`||Bm.test(e.name)?`text`:null}var Hm=1e6;function Um({rec:e,kind:t,onClose:n}){let{t:r}=a(),[i,o]=(0,I.useState)(null),[s,c]=(0,I.useState)(!1);return(0,I.useEffect)(()=>{if(t!==`text`)return;let n=new AbortController;return o(null),c(!1),fetch(_t(e.name),{signal:n.signal}).then(e=>{if(!e.ok)throw Error(`preview_${e.status}`);return e.text()}).then(e=>o(e.length>Hm?`${e.slice(0,Hm)}\n\n${r(`files.previewTruncated`)}`:e)).catch(e=>{e?.name!==`AbortError`&&c(!0)}),()=>n.abort()},[t,e.name,r]),(0,L.jsxDEV)(b,{open:!0,onOpenChange:e=>!e&&n(),children:(0,L.jsxDEV)(Jn,{className:`h-[88dvh] max-w-5xl overflow-hidden @lg:h-[85dvh]`,children:[(0,L.jsxDEV)(zn,{children:(0,L.jsxDEV)(an,{className:`truncate pr-8`,children:e.name},void 0,!1,{fileName:W,lineNumber:102,columnNumber:11},this)},void 0,!1,{fileName:W,lineNumber:101,columnNumber:9},this),(0,L.jsxDEV)(Ut,{children:t===`pdf`?(0,L.jsxDEV)(`iframe`,{title:e.name,src:_t(e.name),className:`h-full w-full rounded-lg border border-border bg-white`},void 0,!1,{fileName:W,lineNumber:106,columnNumber:13},this):s?(0,L.jsxDEV)(`div`,{className:`flex h-full items-center justify-center text-sm text-danger`,children:r(`files.previewFailed`)},void 0,!1,{fileName:W,lineNumber:112,columnNumber:13},this):i===null?(0,L.jsxDEV)(`div`,{className:`flex h-full items-center justify-center text-sm text-muted`,children:r(`files.loadingPreview`)},void 0,!1,{fileName:W,lineNumber:116,columnNumber:13},this):(0,L.jsxDEV)(`pre`,{className:`h-full overflow-auto whitespace-pre-wrap break-words rounded-lg border border-border bg-bg p-4 font-mono text-xs leading-relaxed`,children:i},void 0,!1,{fileName:W,lineNumber:120,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:104,columnNumber:9},this)]},void 0,!0,{fileName:W,lineNumber:100,columnNumber:7},this)},void 0,!1,{fileName:W,lineNumber:99,columnNumber:5},this)}function Wm({rec:e}){let{t}=a(),n=Vm(e),[r,i]=(0,I.useState)(!1);return n?(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,className:`text-muted hover:text-accent`,title:t(`files.preview`),"aria-label":t(`files.preview`),onClick:()=>i(!0),children:(0,L.jsxDEV)(Cl,{size:15},void 0,!1,{fileName:W,lineNumber:146,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:137,columnNumber:7},this),r&&(0,L.jsxDEV)(Um,{rec:e,kind:n,onClose:()=>i(!1)},void 0,!1,{fileName:W,lineNumber:148,columnNumber:16},this)]},void 0,!0,{fileName:W,lineNumber:136,columnNumber:5},this):null}function Gm({rec:e}){return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(si,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:W,lineNumber:158,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:e.name},void 0,!1,{fileName:W,lineNumber:159,columnNumber:7},this),zm(e.size)&&(0,L.jsxDEV)(`span`,{className:`text-xs text-muted`,children:zm(e.size)},void 0,!1,{fileName:W,lineNumber:160,columnNumber:35},this)]},void 0,!0,{fileName:W,lineNumber:157,columnNumber:5},this)}function Km({kind:e,rec:t,className:n}){return e===`audio`?(0,L.jsxDEV)(`audio`,{controls:!0,src:_t(t.name),className:n},void 0,!1,{fileName:W,lineNumber:168,columnNumber:5},this):(0,L.jsxDEV)(`video`,{controls:!0,src:_t(t.name),className:n},void 0,!1,{fileName:W,lineNumber:170,columnNumber:5},this)}var qm={file:`*`,document:`.pdf,.doc,.docx,.xls,.xlsx,.txt,.csv`,audio:`audio/*`,video:`video/*`,image:`image/*`,media:`image/*,video/*`,avatar:`image/*`,cover:`image/*`,poster:`image/*`};function Jm({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c,retry:l,canRetry:u}=C(),d=un(t),f=e=>n(e.length?e:``);async function p(e){if(!e)return;let t=await c(e);t&&f([...d,t])}async function m(){let e=await l();e&&f([...d,e])}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[d.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`flex min-h-9 items-center gap-2 rounded-lg border border-border px-2`,children:[(0,L.jsxDEV)(Gm,{rec:e},void 0,!1,{fileName:W,lineNumber:219,columnNumber:11},this),(0,L.jsxDEV)(Wm,{rec:e},void 0,!1,{fileName:W,lineNumber:220,columnNumber:11},this),(0,L.jsxDEV)(`a`,{href:_t(e.name),download:!0,className:`text-muted hover:text-accent`,title:r(`files.download`),"aria-label":r(`files.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:W,lineNumber:228,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:221,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`text-muted hover:text-danger`,onClick:async()=>{await Rm(r)&&f(d.filter((e,n)=>n!==t))},children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:W,lineNumber:240,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:230,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:W,lineNumber:218,columnNumber:9},this)),(0,L.jsxDEV)(Bt,{accept:qm[e]??`*`,busy:i,error:o,progress:s,onPick:p,onRetry:()=>void m(),canRetry:u},void 0,!1,{fileName:W,lineNumber:244,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:216,columnNumber:5},this)}function Ym({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c,retry:l,canRetry:u}=C(),d=un(t)[0];async function f(e){if(!e)return;let t=await c(e);t&&n(t)}async function p(){let e=await l();e&&n(e)}return d?(0,L.jsxDEV)(`div`,{"data-testid":`single-file`,className:`flex min-h-9 items-center gap-2 rounded-lg border border-border px-2 hover:border-accent`,children:[(0,L.jsxDEV)(Gm,{rec:d},void 0,!1,{fileName:W,lineNumber:314,columnNumber:7},this),(0,L.jsxDEV)(Wm,{rec:d},void 0,!1,{fileName:W,lineNumber:315,columnNumber:7},this),(0,L.jsxDEV)(`a`,{href:_t(d.name),download:!0,className:`text-muted hover:text-accent`,title:r(`files.download`),"aria-label":r(`files.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:W,lineNumber:323,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:316,columnNumber:7},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`text-muted hover:text-danger`,onClick:async()=>{await Rm(r)&&n(``)},children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:W,lineNumber:335,columnNumber:9},this)},void 0,!1,{fileName:W,lineNumber:325,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:310,columnNumber:5},this):(0,L.jsxDEV)(Bt,{accept:qm[e]??`*`,busy:i,error:o,progress:s,onPick:e=>void f(e),onRetry:()=>void p(),canRetry:u,compact:!0},void 0,!1,{fileName:W,lineNumber:297,columnNumber:7},this)}function Xm({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c,retry:l,canRetry:u}=C(),d=un(t),f=e=>n(e.length?e:``);async function p(e){if(!e)return;let t=await c(e);t&&f([...d,t])}async function m(){let e=await l();e&&f([...d,e])}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[d.map((t,n)=>(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxDEV)(Km,{kind:e,rec:t,className:e===`audio`?`min-w-0 flex-1`:`min-w-0 flex-1 max-h-72 rounded-lg`},void 0,!1,{fileName:W,lineNumber:373,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`shrink-0 text-muted hover:text-danger`,onClick:async()=>{await Rm(r)&&f(d.filter((e,t)=>t!==n))},children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:W,lineNumber:388,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:378,columnNumber:11},this)]},`${t.name}-${n}`,!0,{fileName:W,lineNumber:372,columnNumber:9},this)),(0,L.jsxDEV)(Bt,{accept:qm[e]??`*`,busy:i,error:o,progress:s,onPick:p,onRetry:()=>void m(),canRetry:u},void 0,!1,{fileName:W,lineNumber:392,columnNumber:7},this)]},void 0,!0,{fileName:W,lineNumber:370,columnNumber:5},this)}function Zm(e,t,n,r){if(e===`avatar`)return(0,L.jsxDEV)(kt,{value:t,onChange:n,accept:qm[e],multiple:r},void 0,!1,{fileName:W,lineNumber:409,columnNumber:12},this);if(e===`cover`)return(0,L.jsxDEV)(Ze,{value:t,onChange:n,accept:qm[e],multiple:r},void 0,!1,{fileName:W,lineNumber:412,columnNumber:12},this);if(e===`image`||e===`media`||e===`poster`){let i=e===`poster`;return r?(0,L.jsxDEV)(D,{value:t,onChange:n,accept:qm[e],poster:i},void 0,!1,{fileName:W,lineNumber:417,columnNumber:7},this):(0,L.jsxDEV)(et,{value:t,onChange:n,accept:qm[e],poster:i},void 0,!1,{fileName:W,lineNumber:419,columnNumber:7},this)}return e===`audio`||e===`video`?(0,L.jsxDEV)(Xm,{kind:e,value:t,onChange:n},void 0,!1,{fileName:W,lineNumber:423,columnNumber:12},this):(0,L.jsxDEV)(Jm,{kind:e,value:t,onChange:n},void 0,!1,{fileName:W,lineNumber:425,columnNumber:10},this)}function Qm({kind:e,value:t}){let{t:n}=a(),r=un(t);return r.length?e===`avatar`?(0,L.jsxDEV)(fr,{value:t},void 0,!1,{fileName:W,lineNumber:438,columnNumber:33},this):e===`cover`?(0,L.jsxDEV)(cr,{value:t},void 0,!1,{fileName:W,lineNumber:439,columnNumber:32},this):e===`image`||e===`media`?(0,L.jsxDEV)(ne,{value:t},void 0,!1,{fileName:W,lineNumber:440,columnNumber:52},this):e===`poster`?(0,L.jsxDEV)(ne,{value:t,poster:!0},void 0,!1,{fileName:W,lineNumber:441,columnNumber:33},this):e===`audio`||e===`video`?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:r.map((t,n)=>(0,L.jsxDEV)(Km,{kind:e,rec:t,className:e===`audio`?`w-full`:`max-h-72 rounded-lg`},`${t.name}-${n}`,!1,{fileName:W,lineNumber:446,columnNumber:11},this))},void 0,!1,{fileName:W,lineNumber:444,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:r.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`flex min-h-9 items-center gap-2 rounded-lg border border-border px-2 hover:border-accent`,children:[(0,L.jsxDEV)(Gm,{rec:e},void 0,!1,{fileName:W,lineNumber:463,columnNumber:11},this),(0,L.jsxDEV)(Wm,{rec:e},void 0,!1,{fileName:W,lineNumber:464,columnNumber:11},this),(0,L.jsxDEV)(`a`,{href:_t(e.name),download:!0,className:`text-muted hover:text-accent`,title:n(`files.download`),"aria-label":n(`files.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:W,lineNumber:472,columnNumber:13},this)},void 0,!1,{fileName:W,lineNumber:465,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:W,lineNumber:459,columnNumber:9},this))},void 0,!1,{fileName:W,lineNumber:457,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:W,lineNumber:437,columnNumber:28},this)}function $m(e){let t=e.field.kind,n=e.field.hints.multiple===!0,r=E();return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:(e,i)=>i&&r?Zm(t,e??``,e=>void i(e),n):(0,L.jsxDEV)(Qm,{kind:t,value:e??``},void 0,!1,{fileName:W,lineNumber:511,columnNumber:11},this),edit:(e,r)=>Zm(t,e??``,r,n)},void 0,!1,{fileName:W,lineNumber:496,columnNumber:5},this)}function eh(e){let t=un(e.value)[0];if(!t)return(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:W,lineNumber:523,columnNumber:20},this);let n=e.field?.kind,r=n===`audio`?Al:n===`video`?El:si,i=zm(t.size);return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 text-sm`,children:[(0,L.jsxDEV)(r,{size:14,className:`text-muted shrink-0`},void 0,!1,{fileName:W,lineNumber:529,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`truncate`,children:t.name},void 0,!1,{fileName:W,lineNumber:530,columnNumber:7},this),i&&(0,L.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,children:i},void 0,!1,{fileName:W,lineNumber:531,columnNumber:14},this)]},void 0,!0,{fileName:W,lineNumber:528,columnNumber:5},this)}j({kinds:[`image`,`media`,`poster`],layout:Sn,box:`none`,Page:$m,Inline:ar,editor:`inplace`}),j({kinds:[`file`,`document`,`audio`,`video`],layout:Sn,box:`none`,Page:$m,Inline:eh,editor:`inplace`}),j({kinds:[`avatar`],layout:Sn,box:`none`,Page:$m,Inline:tr,editor:`inplace`}),j({kinds:[`cover`],layout:`block`,Page:$m,Inline:ar,editor:`inplace`});var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/attachment.tsx`;function th(e){let t=Mr(e.parts??[]);return{lKey:t.label??`label`,fKey:t.file??`file`}}function nh(e,t){let{lKey:n,fKey:r}=th(t),i=e&&typeof e==`object`?e:null;return i?{label:i[n],file:i[r]}:{}}function rh(e){return e.parts?.find(e=>e.role===`file`)?.meta.kind??`file`}function ih(e,t){let n=e.parts?.find(e=>e.role===t);return n!=null&&n.mode!==`stored`}function ah({name:e,file:t}){return(0,L.jsxDEV)(`div`,{"data-testid":`attachment`,className:`flex min-w-0 flex-col gap-1`,children:[e,t]},void 0,!0,{fileName:G,lineNumber:99,columnNumber:5},this)}function oh({label:e,dash:t}){return e==null||e===``?t?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:G,lineNumber:114,columnNumber:52},this):null:(0,L.jsxDEV)(`span`,{"data-testid":`attachment-label`,className:`block truncate text-[15px] font-medium`,children:String(e)},void 0,!1,{fileName:G,lineNumber:116,columnNumber:5},this)}function sh({field:e,value:t}){let{label:n,file:r}=nh(t,e);return(0,L.jsxDEV)(ah,{name:(0,L.jsxDEV)(oh,{label:n},void 0,!1,{fileName:G,lineNumber:132,columnNumber:13},this),file:(0,L.jsxDEV)(Qm,{kind:rh(e),value:r??``},void 0,!1,{fileName:G,lineNumber:133,columnNumber:13},this)},void 0,!1,{fileName:G,lineNumber:131,columnNumber:5},this)}function ch({file:e,fixed:t,kind:n,onChange:r}){return t||!r?(0,L.jsxDEV)(Qm,{kind:n,value:e??``},void 0,!1,{fileName:G,lineNumber:156,columnNumber:34},this):(0,L.jsxDEV)(Ym,{kind:n,value:e??``,onChange:r},void 0,!1,{fileName:G,lineNumber:157,columnNumber:10},this)}function lh({label:e,fixed:t,meta:n,fieldLabel:r,onChange:i}){return t||!i?(0,L.jsxDEV)(oh,{label:e,dash:!0},void 0,!1,{fileName:G,lineNumber:192,columnNumber:34},this):(0,L.jsxDEV)(Yn,{field:{...n,kind:`text`,hints:{...n.hints,noLabel:!0}},value:e??``,label:r,geom:`none`,width:`w-full`,view:e=>e!=null&&e!==``?(0,L.jsxDEV)(oh,{label:e},void 0,!1,{fileName:G,lineNumber:201,columnNumber:45},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:G,lineNumber:201,columnNumber:76},this),edit:(e,t)=>(0,L.jsxDEV)(P,{value:e==null?``:String(e),onChange:e=>t(e.target.value)},void 0,!1,{fileName:G,lineNumber:202,columnNumber:25},this),onCommit:i},void 0,!1,{fileName:G,lineNumber:195,columnNumber:5},this)}function uh({field:e,value:t,onChange:n}){let{lKey:r,fKey:i}=th(e),{label:a,file:o}=nh(t,e),s=rh(e),c=ih(e,`label`),l=ih(e,`file`),u=e=>{let t=bn(e.label),a=bn(e.file);n(t==null&&a==null?``:{[r]:t,[i]:a})};return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:[c?(0,L.jsxDEV)(oh,{label:a,dash:!0},void 0,!1,{fileName:G,lineNumber:236,columnNumber:9},this):(0,L.jsxDEV)(P,{id:`field-${e.label}`,value:a==null?``:String(a),onChange:e=>u({label:e.target.value,file:o})},void 0,!1,{fileName:G,lineNumber:238,columnNumber:9},this),l?(0,L.jsxDEV)(Qm,{kind:s,value:o??``},void 0,!1,{fileName:G,lineNumber:245,columnNumber:9},this):(0,L.jsxDEV)(Ym,{kind:s,value:o??``,onChange:e=>u({label:a,file:e})},void 0,!1,{fileName:G,lineNumber:247,columnNumber:9},this)]},void 0,!0,{fileName:G,lineNumber:234,columnNumber:5},this)}function dh({field:e,value:t,onChange:n,label:r,required:i,error:a}){let{lKey:o,fKey:s}=th(e),{label:c,file:l}=nh(t,e),u=rh(e),d=ih(e,`label`),f=ih(e,`file`),p=e.parts?.find(e=>e.role===`label`),m=e.hints.noLabel===!0||r===void 0,h=(e,t)=>{let r=bn(e),i=bn(t);return n(r==null&&i==null?``:{[o]:r,[s]:i})};return(0,L.jsxDEV)(`div`,{className:`group/field relative w-full`,children:[!m&&(0,L.jsxDEV)(ht,{label:r,required:i},void 0,!1,{fileName:G,lineNumber:290,columnNumber:20},this),(0,L.jsxDEV)(ah,{name:(0,L.jsxDEV)(lh,{label:c,fixed:d,meta:p?.meta??e,fieldLabel:r,onChange:d?void 0:e=>h(e,l)},void 0,!1,{fileName:G,lineNumber:295,columnNumber:11},this),file:(0,L.jsxDEV)(ch,{file:l,fixed:f,kind:u,onChange:f?void 0:e=>void h(c,e)},void 0,!1,{fileName:G,lineNumber:304,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:293,columnNumber:7},this),(0,L.jsxDEV)(vt,{error:a},void 0,!1,{fileName:G,lineNumber:312,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:289,columnNumber:5},this)}function fh(e){let{live:t,write:n}=dr(e);return t?(0,L.jsxDEV)(dh,{field:e.field,value:e.value,onChange:n,label:e.label,required:e.required,error:e.error},void 0,!1,{fileName:G,lineNumber:325,columnNumber:7},this):(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,L.jsxDEV)(sh,{field:e.field,value:t},void 0,!1,{fileName:G,lineNumber:346,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(uh,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:G,lineNumber:348,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:336,columnNumber:5},this)}function ph({field:e,value:t}){let{label:n,file:r}=nh(t,e);if(n!=null&&n!==``)return(0,L.jsxDEV)(`span`,{className:`truncate`,children:String(n)},void 0,!1,{fileName:G,lineNumber:361,columnNumber:45},this);let i=un(r)[0];return i?(0,L.jsxDEV)(`span`,{className:`truncate text-muted`,children:i.name},void 0,!1,{fileName:G,lineNumber:363,columnNumber:19},this):(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:G,lineNumber:364,columnNumber:10},this)}j({kinds:[`attachment`],layout:`block`,Page:fh,Inline:ph,editor:`own`});function mh(e){if(!(typeof e!=`string`||!e))try{let t=JSON.parse(e),n=Array.isArray(t)?t[0]:t;return n&&typeof n==`object`&&typeof n.name==`string`?n.name:typeof n==`string`?n:void 0}catch{return e}}function hh(e,t){for(let[n,r]of Br(e.fields))if(n===t)return r.kind}function gh(e,t,n){let r=hh(e,t);if(r&&Jr(r)){let e=mh(n[t]);return e?{kind:`image`,value:_t(e)}:void 0}}function _h(e,t){let n=e.views?.select;if(n){let r=Array.isArray(n.title)?n.title:[n.title];return{icon:n.icon?gh(e,n.icon,t):void 0,title:r.map(e=>String(t[e]??``)).filter(Boolean).join(` `),subtitle:n.subtitle&&String(t[n.subtitle]??``)||void 0}}let r=Vr(e),i=r?mh(t[r]):void 0;return{icon:i?{kind:`image`,value:_t(i)}:void 0,title:Hr(e,t)}}var K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/edit.tsx`;function vh({value:e,onChange:t,field:n,t:r,recordCtx:i={library:``,shelf:``,recordId:``}}){let a=n.hints.rowMultiple===!0,o=n.hints.fields??[],s=n.hints.unique??[],c=new Set((n.parts??[]).filter(e=>e.mode!==`stored`).map(xr)),l=(0,I.useRef)(0),u=e=>e.map(e=>({id:++l.current,data:e})),d=()=>Object.fromEntries(o.map(e=>[e.key,``])),f=()=>{let t=Qn(e,a?[]:{});return a?Array.isArray(t)?t:[]:[t&&!Array.isArray(t)&&Object.keys(t).length?t:d()]},[p,m]=(0,I.useState)(()=>u(f()));(0,I.useEffect)(()=>{e||m(a?[]:u([d()]))},[e]);let h=e=>o.some(t=>{let n=(e[t.key]??``).trim();return t.prim===`checkbox`?n===`true`:n!==``});function g(e){m(e);let n=e.map(e=>e.data).filter(h);t(a?n.length?n:``:n.length?n[0]:``)}function _(e,t,n){g(p.map((r,i)=>i===e?{...r,data:{...r.data,[t]:String(n)}}:r))}function v(e,t){return s.includes(e)?p.filter((e,n)=>n!==t).map(t=>t.data[e]??``).filter(Boolean):[]}function y({id:e,data:t},n){return(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2 flex-wrap border border-border rounded-xl p-3`,children:[o.map(e=>c.has(e.key)?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:[e.label?(0,L.jsxDEV)(ht,{label:r(e.label)},void 0,!1,{fileName:K,lineNumber:126,columnNumber:28},this):null,(0,L.jsxDEV)(`div`,{className:`flex h-9 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:t[e.key]||(0,L.jsxDEV)(O,{},void 0,!1,{fileName:K,lineNumber:128,columnNumber:34},this)},void 0,!1,{fileName:K,lineNumber:127,columnNumber:15},this)]},e.key,!0,{fileName:K,lineNumber:125,columnNumber:13},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:(0,L.jsxDEV)(k,{field:Ar(e),value:e.prim===`checkbox`?t[e.key]===`true`:t[e.key]??``,excludeValues:v(e.key,n),onChange:t=>_(n,e.key,t),label:e.label?r(e.label):void 0,mode:`edit`,recordCtx:i},void 0,!1,{fileName:K,lineNumber:133,columnNumber:15},this)},e.key,!1,{fileName:K,lineNumber:132,columnNumber:13},this)),a&&(0,L.jsxDEV)(Ye,{className:`mt-6`,onClick:()=>g(p.filter((e,t)=>t!==n))},void 0,!1,{fileName:K,lineNumber:145,columnNumber:22},this)]},e,!0,{fileName:K,lineNumber:121,columnNumber:7},this)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[p.map(y),a&&(0,L.jsxDEV)(Ft,{onClick:()=>m(e=>[...e,...u([d()])]),children:r(`form.addRow`)},void 0,!1,{fileName:K,lineNumber:153,columnNumber:20},this)]},void 0,!0,{fileName:K,lineNumber:151,columnNumber:5},this)}function yh({value:e,onChange:t,field:n}){let{t:r}=a(),i=(0,I.useMemo)(()=>yr(n.hints.units)??[],[n.hints]),o=n.parts?.find(e=>e.role===`unit`),s=o!=null&&o.mode!==`stored`,c=n.parts?.find(e=>e.role===`value`),l=c!=null&&c.mode!==`stored`,u=(0,I.useMemo)(()=>Mr(n.parts??[]),[n.parts]),d=u.value??`value`,f=u.unit??`unit`,p=s&&typeof o.value==`string`?o.value:``,m=(0,I.useMemo)(()=>{let t=e&&typeof e==`object`?e:Qn(String(e),null);return typeof t!=`object`||!t?{value:``,unit:p||(i[0]?.value??``)}:{value:t[d]??``,unit:t[f]??``}},[e,i,p,d,f]),h=e=>{if(l){t({[f]:e.unit});return}t(e.value===``?``:{[d]:e.value,[f]:e.unit})};return(0,L.jsxDEV)(yi,{className:`min-w-0`,children:[l?(0,L.jsxDEV)(`div`,{className:`flex h-9 flex-1 min-w-0 items-center px-3 text-sm text-muted`,children:m.value===``?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:K,lineNumber:235,columnNumber:34},this):String(m.value)},void 0,!1,{fileName:K,lineNumber:234,columnNumber:9},this):(0,L.jsxDEV)(_i,{type:`number`,className:`min-w-0`,value:m.value===``?``:String(m.value),min:n.hints.min,max:n.hints.max,step:n.hints.step??`any`,onChange:e=>{let t=parseFloat(e.target.value);h({...m,value:isNaN(t)?``:t})},placeholder:`0`},void 0,!1,{fileName:K,lineNumber:238,columnNumber:9},this),(0,L.jsxDEV)(hi,{align:`inline-end`,className:`pr-1`,children:s?(0,L.jsxDEV)(`span`,{className:`px-2 text-xs text-muted`,children:Wt(n,m.unit||p,r)},void 0,!1,{fileName:K,lineNumber:254,columnNumber:11},this):(0,L.jsxDEV)(pe,{value:m.unit||``,onChange:e=>h({...m,unit:e}),items:i.map(e=>({value:e.value,title:r(e.label)})),triggerClassName:`h-7 gap-1 border-0 bg-transparent px-2 text-muted shadow-none focus:ring-0`},void 0,!1,{fileName:K,lineNumber:256,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:252,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:232,columnNumber:5},this)}function bh({field:e,value:t,onChange:n,excludeValues:r}){let{t:i}=a(),o=e.relation?.library??``,s=e.relation?.shelf??``,c=!!e.hints.multi,{labelMap:l,records:u,loadState:d}=He(o,s,String(e.hints.displayKey??`name`),(0,I.useMemo)(()=>{let t=e.relation?.filter;if(t)return Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t)]))},[e.relation?.filter])),f=x(o,s),p=(0,I.useMemo)(()=>t?c?Array.isArray(t)?t.map(String):Qn(t,[]).map(String):[String(t)]:[],[t,c]),m=fe(o,s,p),h=(0,I.useMemo)(()=>{let e=new Map(u.map(e=>[String(e.id),e]));for(let[t,n]of m)e.has(t)||e.set(t,n);return[...e.values()]},[u,m]),g=(0,I.useMemo)(()=>h.filter(e=>String(e.id)===String(t)||p.includes(String(e.id))||!r?.includes(String(e.id))).map(e=>{let t=f?_h(f,e):{title:String(e.id)},n=f?(0,L.jsxDEV)(hn,{shelf:f,row:e,size:`sm`,height:28},void 0,!1,{fileName:K,lineNumber:330,columnNumber:28},this):void 0;return{value:String(e.id),title:t.title,icon:t.icon,subtitle:t.subtitle,node:n}}),[h,r,t,p,f]);return d===`loading`?(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.loading`)},void 0,!1,{fileName:K,lineNumber:338,columnNumber:39},this):d===`error`?(0,L.jsxDEV)(`p`,{className:`text-danger text-sm py-1`,children:i(`form.loadError`)},void 0,!1,{fileName:K,lineNumber:339,columnNumber:37},this):g.length?c?(0,L.jsxDEV)(Ue,{selected:p,items:g,placeholder:i(`form.addRecord`),labelOf:e=>l.get(e)??g.find(t=>t.value===e)?.title??e,onChange:e=>n(e.length?e:``)},void 0,!1,{fileName:K,lineNumber:347,columnNumber:5},this):(0,L.jsxDEV)(pe,{value:t==null?``:String(t),onChange:n,items:g},void 0,!1,{fileName:K,lineNumber:344,columnNumber:22},this):(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.noRecords`)},void 0,!1,{fileName:K,lineNumber:341,columnNumber:29},this)}function xh(e){return{text:``,checks:Array(e).fill(!1)}}function Sh({value:e,onChange:t,field:n,recordCtx:r={library:``,shelf:``,recordId:null}}){let i=n.hints.slots??[``],a=_n(n.hints.fields),[o,s]=(0,I.useState)(()=>Qn(e,{}));(0,I.useEffect)(()=>{e||s({})},[e,i.length]);let c=a.length?{text:String(o.text??``),checks:Array.from({length:i.length},(e,t)=>o[`check`+t]===!0)}:Nn(e,i.length);function l(e){s(e);let n=a.length?a.some(t=>{let n=e[t.key];return n!=null&&n!==``&&!(Array.isArray(n)&&n.length===0)}):String(e.text??``).trim()!==``,r=Array.isArray(e.checks)?e.checks:[],o=i.some((t,n)=>e[`check`+n]===!0)||i.some((e,t)=>r[t]===!0);if(a.length)t(n||o?e:``);else{let a={text:String(e.text??``),checks:i.map((t,n)=>e[`check`+n]===!0||r[n]===!0)};t(n||o?qt(a):``)}}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxDEV)(Qt,{row:c,slotCount:i.length,editing:!0,onChange:e=>{let t={...o};i.forEach((n,r)=>{t[`check`+r]=e.checks[r]===!0}),a.length||(t.text=e.text),l(t)},content:a.length?(0,L.jsxDEV)(An,{fields:a,row:o,editing:!0,onChange:(e,t)=>l({...o,[e]:t}),recordCtx:r},void 0,!1,{fileName:K,lineNumber:431,columnNumber:13},this):void 0},void 0,!1,{fileName:K,lineNumber:417,columnNumber:7},this),(0,L.jsxDEV)(gn,{slots:i},void 0,!1,{fileName:K,lineNumber:441,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:416,columnNumber:5},this)}function Ch({value:e,onChange:t,field:n}){let{t:r}=a(),i=n.hints.slots??[``],[o,s]=(0,I.useState)(()=>Qn(e,[]));(0,I.useEffect)(()=>{e||s([])},[e]);function c(e){s(e);let n=e.filter(e=>e.text.trim()!==``||e.checks.some(Boolean));t(n.length?n:``)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 py-1`,children:[o.map((e,t)=>(0,L.jsxDEV)(Qt,{row:e,slotCount:i.length,editing:!0,onChange:e=>c(o.map((n,r)=>r===t?e:n)),onRemove:()=>c(o.filter((e,n)=>n!==t))},t,!1,{fileName:K,lineNumber:472,columnNumber:9},this)),(0,L.jsxDEV)(gn,{slots:i},void 0,!1,{fileName:K,lineNumber:481,columnNumber:7},this),(0,L.jsxDEV)(Ft,{onClick:()=>s(e=>[...e,xh(i.length)]),children:r(`form.addItem`)},void 0,!1,{fileName:K,lineNumber:482,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:470,columnNumber:5},this)}function wh(e){let t=e=>!!e&&typeof e==`object`&&`unit`in e;if(Array.isArray(e))return e.filter(t);try{let n=JSON.parse(String(e??``));if(Array.isArray(n))return n.map(e=>{if(t(e))return e;try{return JSON.parse(String(e))}catch{return null}}).filter(Boolean)}catch{}return[]}function Th({field:e,value:t,onChange:n}){let{t:r}=a(),i=(0,I.useMemo)(()=>wh(t),[t]),[o,s]=(0,I.useState)(``);function c(e){n(e.length?e:``)}function l(){!o||typeof o!=`object`||o.value===``||(c([...i,o]),s(``))}return(0,L.jsxDEV)(Ae,{items:i,content:Xn(e,r),onRemove:e=>c(i.filter((t,n)=>n!==e)),editor:(0,L.jsxDEV)(`div`,{className:`flex gap-2 items-center min-w-0`,children:[(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(yh,{value:o,onChange:e=>s(e),field:e},void 0,!1,{fileName:K,lineNumber:632,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:631,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:l,children:(0,L.jsxDEV)(se,{size:14},void 0,!1,{fileName:K,lineNumber:635,columnNumber:13},this)},void 0,!1,{fileName:K,lineNumber:634,columnNumber:11},this)]},void 0,!0,{fileName:K,lineNumber:630,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:625,columnNumber:5},this)}var Eh=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/composite.tsx`;function Dh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,L.jsxDEV)(fn,{field:e.field,value:t},void 0,!1,{fileName:Eh,lineNumber:49,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(bh,{field:e.field,value:t,onChange:n,excludeValues:e.excludeValues},void 0,!1,{fileName:Eh,lineNumber:51,columnNumber:9},this)},void 0,!1,{fileName:Eh,lineNumber:39,columnNumber:5},this)}function Oh({field:e,draft:t,setDraft:n,save:r}){let{t:i}=a(),o=e.relation?.library??``,s=e.relation?.shelf??``,c=!!e.hints.multi,l=String(e.hints.displayKey??`name`),u=(0,I.useMemo)(()=>{let t=e.relation?.filter;if(t)return Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t)]))},[e.relation?.filter]),d=(0,I.useMemo)(()=>t==null||t===``?[]:c?(Array.isArray(t)?t:Qn(t,[])).map(String):[String(t)],[t,c]),{records:f,loadState:p}=He(o,s,l,u),m=fe(o,s,d),h=x(o,s),g=(0,I.useMemo)(()=>{let e=new Map(f.map(e=>[String(e.id),e]));for(let[t,n]of m)e.has(t)||e.set(t,n);return[...e.entries()].map(([e,t])=>{let n=h?_h(h,t):{title:e,icon:void 0,subtitle:void 0};return{value:e,title:n.title||e,...n.icon&&{icon:n.icon},...n.subtitle&&{subtitle:n.subtitle}}})},[f,m,h]);return p===`loading`?(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.loading`)},void 0,!1,{fileName:Eh,lineNumber:115,columnNumber:39},this):p===`error`?(0,L.jsxDEV)(`p`,{className:`text-danger text-sm py-1`,children:i(`form.loadError`)},void 0,!1,{fileName:Eh,lineNumber:116,columnNumber:37},this):g.length?(0,L.jsxDEV)(gr,{field:e,options:g,value:c?d:t,multiple:c,literal:!0,onPick:e=>{if(!c){r(e===``?``:Number(e));return}let t=e.map(Number);n(t.length?t:``)}},void 0,!1,{fileName:Eh,lineNumber:120,columnNumber:5},this):(0,L.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.noRecords`)},void 0,!1,{fileName:Eh,lineNumber:117,columnNumber:31},this)}function kh({value:e}){let t=Qn(e,null);return(0,L.jsxDEV)(`span`,{className:`truncate`,children:Array.isArray(t)?t.length?String(t.length):`—`:e?`1`:`—`},void 0,!1,{fileName:Eh,lineNumber:143,columnNumber:10},this)}function Ah(e,t,n){if(e==null||e===``)return[];let r=String(e),i=n.labelMap?.get(r)??r;return[{value:r,rawValue:e,label:i,sort:i}]}j({kinds:[`relation`],layout:Sn,Page:Dh,Inline:kh,Picker:Oh,pickerCommits:e=>e.hints.multi!==!0,keys:Ah});function jh({field:e,value:t}){let{t:n}=a();return(0,L.jsxDEV)(Ae,{items:Array.isArray(t)?t:ir(String(t??``)),content:Xn(e,n)},void 0,!1,{fileName:Eh,lineNumber:174,columnNumber:10},this)}function Mh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:t=>e.field.hints.multiple===!0?(0,L.jsxDEV)(jh,{field:e.field,value:t},void 0,!1,{fileName:Eh,lineNumber:191,columnNumber:11},this):(0,L.jsxDEV)(Vn,{field:e.field,value:t},void 0,!1,{fileName:Eh,lineNumber:193,columnNumber:11},this),edit:(t,n)=>e.field.hints.multiple===!0?(0,L.jsxDEV)(Th,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Eh,lineNumber:198,columnNumber:11},this):(0,L.jsxDEV)(yh,{value:t,onChange:n,field:e.field},void 0,!1,{fileName:Eh,lineNumber:204,columnNumber:11},this)},void 0,!1,{fileName:Eh,lineNumber:179,columnNumber:5},this)}function Nh({field:e,value:t}){let{t:n}=a(),{vKey:r,uKey:i}=It(e),o=Qn(t,null);return(0,L.jsxDEV)(`span`,{className:`truncate`,children:o?`${vn(o[r],e)} ${Wt(e,String(o[i]??``),n)}`:`—`},void 0,!1,{fileName:Eh,lineNumber:224,columnNumber:10},this)}j({kinds:[`measured`],Page:Mh,Inline:Nh});function Ph(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>{let n=e.field.hints.slots??[``],r=e.field.hints.fields;return e.field.hints.multiple===!0?(0,L.jsxDEV)(Nt,{value:t,slots:n},void 0,!1,{fileName:Eh,lineNumber:251,columnNumber:11},this):(0,L.jsxDEV)(Tn,{value:t,slots:n,fields:r,recordCtx:e.recordCtx},void 0,!1,{fileName:Eh,lineNumber:253,columnNumber:11},this)},edit:(t,n)=>e.field.hints.multiple===!0?(0,L.jsxDEV)(Ch,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Eh,lineNumber:258,columnNumber:11},this):(0,L.jsxDEV)(Sh,{field:e.field,value:t,recordCtx:e.recordCtx,onChange:n},void 0,!1,{fileName:Eh,lineNumber:260,columnNumber:11},this)},void 0,!1,{fileName:Eh,lineNumber:237,columnNumber:5},this)}function Fh({value:e,field:t}){let n=Nn(e,(t.hints.slots??[``]).length),r=n.checks.length;return!n.text&&!n.checks.some(Boolean)?(0,L.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:Eh,lineNumber:276,columnNumber:54},this):(0,L.jsxDEV)(`span`,{className:`truncate`,children:r?`${n.checks.filter(Boolean).length}/${r}`:n.text||`—`},void 0,!1,{fileName:Eh,lineNumber:278,columnNumber:10},this)}j({kinds:[`check`],layout:`block`,Page:Ph,Inline:Fh});var Ih=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/amount.tsx`;function Lh({field:e,value:t}){let{t:n}=a(),r=e.hints.unitValue;return t==null||t===``?(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:Ih,lineNumber:21,columnNumber:45},this):(0,L.jsxDEV)(`span`,{className:`font-mono`,children:[vn(t,e),r?(0,L.jsxDEV)(`span`,{className:`ml-1 text-xs text-muted`,children:n(`core.units.${String(r)}`)},void 0,!1,{fileName:Ih,lineNumber:25,columnNumber:12},this):null]},void 0,!0,{fileName:Ih,lineNumber:23,columnNumber:5},this)}function Rh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(Lh,{field:e.field,value:t},void 0,!1,{fileName:Ih,lineNumber:42,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Dp,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:Ih,lineNumber:44,columnNumber:9},this)},void 0,!1,{fileName:Ih,lineNumber:32,columnNumber:5},this)}function zh({field:e,value:t}){return(0,L.jsxDEV)(`span`,{className:`truncate font-mono`,children:t==null||t===``?`—`:vn(t,e)},void 0,!1,{fileName:Ih,lineNumber:51,columnNumber:10},this)}j({kinds:[`amount`],Page:Rh,Inline:zh});var Bh=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/period.tsx`;function Vh(e){let t=Mr(e.parts??[]);return{fromKey:t.from??`from`,untilKey:t.until??`until`}}function Hh(e){if(Array.isArray(e))return e;if(e&&typeof e==`object`&&Object.keys(e).length)return[e];if(typeof e==`string`&&e)try{let t=JSON.parse(e);if(Array.isArray(t))return t;if(t&&typeof t==`object`&&Object.keys(t).length)return[t]}catch{}return[]}function Uh(e,t){return e?t===`datetime`?String(e).replace(`T`,` `):String(e):`…`}function Wh(e,t,n,r){return`${Uh(e[n],t)}–${Uh(e[r],t)}`}function Gh({field:e,value:t,onChange:n}){let{t:r}=a();return(0,L.jsxDEV)(vh,{value:t,onChange:n,field:e,t:r},void 0,!1,{fileName:Bh,lineNumber:79,columnNumber:10},this)}function Kh({field:e,value:t}){let n=e.hints.granularity??`day`,{fromKey:r,untilKey:i}=Vh(e);return(0,L.jsxDEV)(Ae,{items:Hh(t),content:e=>(0,L.jsxDEV)(`span`,{className:`font-mono`,children:Wh(e,n,r,i)},void 0,!1,{fileName:Bh,lineNumber:89,columnNumber:23},this)},void 0,!1,{fileName:Bh,lineNumber:87,columnNumber:5},this)}function qh(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,L.jsxDEV)(Kh,{field:e.field,value:t},void 0,!1,{fileName:Bh,lineNumber:105,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Gh,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:Bh,lineNumber:107,columnNumber:9},this)},void 0,!1,{fileName:Bh,lineNumber:96,columnNumber:5},this)}function Jh({value:e,field:t}){let n=t.hints.granularity??`day`,{fromKey:r,untilKey:i}=Vh(t),a=Hh(e);return(0,L.jsxDEV)(`span`,{className:`truncate`,children:a.length?a.map(e=>Wh(e,n,r,i)).join(`, `):`—`},void 0,!1,{fileName:Bh,lineNumber:123,columnNumber:5},this)}j({kinds:[`period`],Page:qh,Inline:Jh});var Yh=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group-edit.tsx`;function Xh(e,t,n){let r=ot(t,n);return e===`view`?r.editing?{mode:`edit`,value:r.draft,onChange:r.setDraft,actions:(0,L.jsxDEV)(Rn,{size:`xs`,busy:r.busy,onSave:()=>r.commit(),onCancel:r.cancel},void 0,!1,{fileName:Yh,lineNumber:58,columnNumber:14},this)}:{mode:`view`,value:t,onChange:e=>n(e),actions:(0,L.jsxDEV)(Ee,{scope:`group`,onEdit:r.beginEdit},void 0,!1,{fileName:Yh,lineNumber:51,columnNumber:16},this)}:{mode:e,value:t,onChange:e=>n(e),actions:null}}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group.tsx`;function Zh({onRemove:e}){let{t}=a();return(0,L.jsxDEV)(`div`,{className:`flex shrink-0 flex-col`,children:[(0,L.jsxDEV)(`div`,{className:`min-h-8 mb-1.5`,"aria-hidden":!0},void 0,!1,{fileName:q,lineNumber:52,columnNumber:7},this),(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,size:`iconSm`,onClick:e,title:t(`actions.delete`),"aria-hidden":!e||void 0,tabIndex:e?void 0:-1,className:`rounded-lg text-muted hover:border-danger hover:text-danger${e?``:` invisible`}`,children:(0,L.jsxDEV)(ur,{size:14},void 0,!1,{fileName:q,lineNumber:63,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:53,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:51,columnNumber:5},this)}function Qh({index:e,count:t,children:n}){let r=t>1;return!r&&!n?null:(0,L.jsxDEV)(`div`,{className:`mb-2 flex min-w-0 flex-wrap items-baseline gap-x-4 gap-y-1 border-b border-border pb-2`,"data-testid":`row-title`,children:[r&&(0,L.jsxDEV)(`span`,{className:`text-[11px] tabular-nums text-faint`,"data-testid":`row-ordinal`,children:String(e+1).padStart(2,`0`)},void 0,!1,{fileName:q,lineNumber:88,columnNumber:9},this),n]},void 0,!0,{fileName:q,lineNumber:83,columnNumber:5},this)}function $h(e){let t=e.view?.title??[];return{subs:t.flatMap(t=>{let n=e.fields.find(e=>Cr(e)&&e.key===t);return n?[n]:[]}),inTitle:new Set(t)}}function eg({group:e,value:t,onChange:n,recordCtx:r}){let{t:i}=a(),o=Ge(),s=Array.isArray(t)?t:[],c=e.unique??[],{subs:l,inTitle:u}=$h(e);function d(e,t,r){n(s.map((n,i)=>i===e?{...n,[t]:r}:n))}function f(t,n,a){return t.type.derived?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[t.type.label?(0,L.jsxDEV)(ht,{label:i(t.type.label)},void 0,!1,{fileName:q,lineNumber:144,columnNumber:29},this):null,(0,L.jsxDEV)(k,{field:t.type,value:n[t.key]??``,mode:`view`,bare:!0,recordCtx:r},void 0,!1,{fileName:q,lineNumber:145,columnNumber:11},this)]},t.key,!0,{fileName:q,lineNumber:143,columnNumber:9},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,L.jsxDEV)(k,{field:t.type,fieldKey:t.key,value:n[t.key]??``,excludeValues:ie(s,c,t.key,a),onChange:e=>d(a,t.key,e),label:t.type.label?i(t.type.label):void 0,mode:`edit`,recordCtx:r,error:kr(e)?o([e.key,a,t.key]):void 0},void 0,!1,{fileName:q,lineNumber:154,columnNumber:9},this)},t.key,!1,{fileName:q,lineNumber:153,columnNumber:7},this)}function p(t,i){return(0,L.jsxDEV)(Rt,{values:t,children:(0,L.jsxDEV)(qn,{children:[(0,L.jsxDEV)(Qh,{index:i,count:s.length,children:l.length>0?l.map(e=>(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-baseline ${Pt(e.type)}`.trim(),children:(0,L.jsxDEV)(k,{field:e.type,fieldKey:e.key,value:t[e.key]??``,onChange:t=>d(i,e.key,t),mode:`edit`,bare:!0,recordCtx:r},void 0,!1,{fileName:q,lineNumber:179,columnNumber:21},this)},e.key,!1,{fileName:q,lineNumber:178,columnNumber:19},this)):null},void 0,!1,{fileName:q,lineNumber:175,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(mn,{scroll:e.display===`scroll`,items:e.fields.flatMap((e,n)=>Cr(e)&&u.has(e.key)?[]:wr(e)?!kr(e)&&e.display===`scroll`?[{key:e.label??`flow`,span:12,node:(0,L.jsxDEV)(mn,{scroll:!0,items:e.fields.flatMap(e=>Cr(e)?[{key:e.key,node:f(e,t,i)}]:[])},void 0,!1,{fileName:q,lineNumber:208,columnNumber:29},this)}]:[{key:e.key??e.label??`g`,span:Ln(e),node:(0,L.jsxDEV)(ug,{group:e,value:t[e.key],onChange:t=>d(i,e.key,t),recordCtx:r,mode:`edit`},void 0,!1,{fileName:q,lineNumber:225,columnNumber:27},this)}]:Cr(e)?[{key:e.key,span:Ln(e),node:f(e,t,i)}]:[])},void 0,!1,{fileName:q,lineNumber:194,columnNumber:15},this)},void 0,!1,{fileName:q,lineNumber:193,columnNumber:13},this),(0,L.jsxDEV)(Zh,{onRemove:()=>n(s.filter((e,t)=>t!==i))},void 0,!1,{fileName:q,lineNumber:243,columnNumber:13},this)]},void 0,!0,{fileName:q,lineNumber:192,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:174,columnNumber:9},this)},i,!1,{fileName:q,lineNumber:173,columnNumber:7},this)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[s.map(p),(0,L.jsxDEV)(Ft,{onClick:()=>n([...s,{}]),children:i(`form.addRow`)},void 0,!1,{fileName:q,lineNumber:253,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:251,columnNumber:5},this)}function tg({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Un(),c=E()&&i===`view`,l=Xh(i,t,e=>n(e));return l.mode===`view`?(0,L.jsxDEV)(ig,{group:e,value:l.value,onChange:e=>l.onChange(e),recordCtx:r,actions:c?null:l.actions,editable:c},void 0,!1,{fileName:q,lineNumber:283,columnNumber:7},this):(0,L.jsxDEV)(`fieldset`,{className:`${Et(s)} flex flex-col min-w-0 ${Cn}`,children:[(0,L.jsxDEV)(qe,{as:`legend`,label:o(e.label),icon:rn(e),count:Array.isArray(l.value)?l.value.length:0,actions:l.actions},void 0,!1,{fileName:q,lineNumber:297,columnNumber:7},this),(0,L.jsxDEV)(eg,{group:e,value:l.value,onChange:e=>l.onChange(e),recordCtx:r},void 0,!1,{fileName:q,lineNumber:304,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:296,columnNumber:5},this)}var ng=e=>`${Et(e)} flex flex-col min-w-0 ${Cn}`;function rg({sub:e,row:t,group:n,recordCtx:r,onChange:i,heading:o}){let{t:s}=a(),c=E()&&!!i,l=c?i:void 0;return(0,L.jsxDEV)(`div`,{className:`${o?`flex min-w-0 items-baseline`:`flex flex-col gap-0.5 min-w-0`} ${Pt(e.type)}`.trim(),children:[!o&&e.type.label?(0,L.jsxDEV)(ht,{label:s(e.type.label)},void 0,!1,{fileName:q,lineNumber:358,columnNumber:37},this):null,(0,L.jsxDEV)(k,{field:e.type,fieldKey:c?e.key:void 0,value:t[e.key]??``,mode:`view`,bare:!c,recordCtx:r,onChange:l},void 0,!1,{fileName:q,lineNumber:359,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:355,columnNumber:5},this)}function ig({group:e,value:t,onChange:n,recordCtx:r,actions:i,editable:o=!1}){let{t:s}=a(),c=Un(),l=Array.isArray(t)?t:[],[u,d]=(0,I.useState)([]),f=[...l,...u],p=e=>Object.values(e).some(e=>e!==``&&e!=null&&e!==!1),{subs:m,inTitle:h}=$h(e);function g(e,t,r){let i=f.map((n,i)=>i===e?{...n,[t]:r}:n).filter(p);d([]),n(i)}function _(e){if(e<l.length){d([]),n(l.filter((t,n)=>n!==e));return}d(t=>t.filter((t,n)=>n!==e-l.length))}return(0,L.jsxDEV)(`fieldset`,{className:ng(c),children:[(0,L.jsxDEV)(qe,{as:`legend`,label:s(e.label),icon:rn(e),count:f.length,actions:i},void 0,!1,{fileName:q,lineNumber:434,columnNumber:7},this),(0,L.jsxDEV)(xt,{depth:c+1,children:(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[f.map((t,n)=>(0,L.jsxDEV)(Rt,{values:t,children:(0,L.jsxDEV)(qn,{children:[(0,L.jsxDEV)(Qh,{index:n,count:f.length,children:m.length>0?m.map(i=>(0,L.jsxDEV)(rg,{heading:!0,sub:i,row:t,group:e,recordCtx:r,onChange:e=>g(n,i.key,e)},i.key,!1,{fileName:q,lineNumber:443,columnNumber:25},this)):null},void 0,!1,{fileName:q,lineNumber:440,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-start gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(mn,{scroll:e.display===`scroll`,items:e.fields.flatMap((i,a)=>Cr(i)&&h.has(i.key)?[]:wr(i)?!kr(i)&&i.display===`scroll`?[{key:i.label??`flow`,span:12,node:(0,L.jsxDEV)(mn,{scroll:!0,items:i.fields.flatMap(i=>{if(!Cr(i))return[];let a=i.key;return[{key:a,node:(0,L.jsxDEV)(rg,{sub:i,row:t,group:e,recordCtx:r,onChange:e=>g(n,a,e)},void 0,!1,{fileName:q,lineNumber:479,columnNumber:45},this)}]})},void 0,!1,{fileName:q,lineNumber:470,columnNumber:35},this)}]:[{key:i.key??i.label??`g`,span:Ln(i),node:(0,L.jsxDEV)(ug,{group:i,value:t[i.key],onChange:e=>g(n,i.key,e),recordCtx:r,mode:`view`},void 0,!1,{fileName:q,lineNumber:502,columnNumber:33},this)}]:Cr(i)?[{key:i.key,span:Ln(i),node:(0,L.jsxDEV)(rg,{sub:i,row:t,group:e,recordCtx:r,onChange:e=>g(n,i.key,e)},void 0,!1,{fileName:q,lineNumber:521,columnNumber:31},this)}]:[])},void 0,!1,{fileName:q,lineNumber:457,columnNumber:21},this)},void 0,!1,{fileName:q,lineNumber:456,columnNumber:19},this),o&&(0,L.jsxDEV)(Ye,{className:`mt-6`,onClick:()=>_(n)},void 0,!1,{fileName:q,lineNumber:535,columnNumber:32},this)]},void 0,!0,{fileName:q,lineNumber:455,columnNumber:17},this)]},void 0,!0,{fileName:q,lineNumber:439,columnNumber:15},this)},n,!1,{fileName:q,lineNumber:438,columnNumber:13},this)),o&&(0,L.jsxDEV)(Ft,{onClick:()=>d(e=>[...e,{}]),children:s(`form.addRow`)},void 0,!1,{fileName:q,lineNumber:540,columnNumber:24},this)]},void 0,!0,{fileName:q,lineNumber:436,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:435,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:433,columnNumber:5},this)}var ag=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/table-group.tsx`;function og({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Ge(),c=Un(),l=e.fields.filter(e=>Cr(e)||wr(e)&&!!e.kind),u=e=>e.key,d=e=>Or(e)?e.type.label:e.label,f=e=>Or(e)?{field:e.type}:{field:e,el:e},p=l.reduce((e,t,n)=>Ln(t)>Ln(l[e])?n:e,0),m=(e,t)=>t===p,h=e.unique??[],g=Xh(i,t,e=>n(e)),_=g.mode!==`view`,v=E()&&i===`view`,y=Array.isArray(g.value)?g.value:[],[b,x]=(0,I.useState)([]),S=v?[...y,...b]:y,C=e=>Object.values(e).some(e=>e!==``&&e!=null&&e!==!1),w=e=>{x([]),g.onChange(v?e.filter(C):e)},T=(e,t,n)=>w(S.map((r,i)=>i===e?{...r,[t]:n}:r)),ee=e=>{if(!v||e<y.length)return w(S.filter((t,n)=>n!==e));x(t=>t.filter((t,n)=>n!==e-y.length))},te=()=>v?x(e=>[...e,{}]):w([...S,{}]),ne=_||v,re=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`overflow-x-auto rounded-lg border border-border bg-elevated shadow-2xs`,children:(0,L.jsxDEV)(`table`,{className:`w-full border-collapse text-sm`,children:[(0,L.jsxDEV)(`thead`,{children:(0,L.jsxDEV)(`tr`,{className:`border-b border-border bg-elevated`,children:[l.map((e,t)=>(0,L.jsxDEV)(`th`,{className:`text-left px-3.5 py-2.5 ${m(e,t)?`w-full min-w-[140px]`:`whitespace-nowrap min-w-[90px]`}`,children:(0,L.jsxDEV)(_e,{children:d(e)?o(d(e)):``},void 0,!1,{fileName:ag,lineNumber:98,columnNumber:13},this)},u(e),!1,{fileName:ag,lineNumber:94,columnNumber:11},this)),ne&&(0,L.jsxDEV)(`th`,{className:`w-10 px-2`,"aria-hidden":!0},void 0,!1,{fileName:ag,lineNumber:101,columnNumber:22},this)]},void 0,!0,{fileName:ag,lineNumber:92,columnNumber:7},this)},void 0,!1,{fileName:ag,lineNumber:91,columnNumber:5},this),(0,L.jsxDEV)(`tbody`,{className:`divide-y divide-border/30`,children:S.map((t,n)=>(0,L.jsxDEV)(Rt,{values:t,children:(0,L.jsxDEV)(`tr`,{className:`align-top hover:bg-elevated transition-colors`,children:[l.map((i,a)=>(0,L.jsxDEV)(`td`,{className:`px-3.5 py-2.5 min-h-10 ${m(i,a)?`min-w-[140px]`:`min-w-[90px]`} ${Pt(f(i).field)}`.trim(),children:(0,L.jsxDEV)(k,{...f(i),value:t[u(i)]??(Or(i)?``:null),excludeValues:ie(S,h,u(i),n),onChange:e=>T(n,u(i),e),fieldKey:v?u(i):void 0,mode:_?`edit`:`view`,bare:!v,recordCtx:r,error:kr(e)?s([e.key,n,u(i)]):void 0},void 0,!1,{fileName:ag,lineNumber:118,columnNumber:17},this)},u(i),!1,{fileName:ag,lineNumber:114,columnNumber:15},this)),ne&&(0,L.jsxDEV)(`td`,{className:`px-2 py-2 min-h-10 w-10`,children:(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,size:`iconSm`,onClick:()=>ee(n),title:o(`actions.delete`),className:`rounded-lg text-muted hover:border-danger hover:text-danger`,children:(0,L.jsxDEV)(ur,{size:14},void 0,!1,{fileName:ag,lineNumber:141,columnNumber:19},this)},void 0,!1,{fileName:ag,lineNumber:133,columnNumber:17},this)},void 0,!1,{fileName:ag,lineNumber:132,columnNumber:15},this)]},void 0,!0,{fileName:ag,lineNumber:112,columnNumber:11},this)},n,!1,{fileName:ag,lineNumber:111,columnNumber:9},this))},void 0,!1,{fileName:ag,lineNumber:107,columnNumber:5},this)]},void 0,!0,{fileName:ag,lineNumber:154,columnNumber:9},this)},void 0,!1,{fileName:ag,lineNumber:153,columnNumber:7},this),ne&&(0,L.jsxDEV)(Ft,{onClick:te,children:o(`form.addRow`)},void 0,!1,{fileName:ag,lineNumber:159,columnNumber:20},this)]},void 0,!0,{fileName:ag,lineNumber:152,columnNumber:5},this);return i===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(c)} flex flex-col gap-2 min-w-0`,children:[(0,L.jsxDEV)(qe,{as:`h3`,label:o(e.label),icon:rn(e),count:S.length,actions:v?null:g.actions},void 0,!1,{fileName:ag,lineNumber:170,columnNumber:7},this),(0,L.jsxDEV)(xt,{depth:c+1,children:re},void 0,!1,{fileName:ag,lineNumber:177,columnNumber:7},this)]},void 0,!0,{fileName:ag,lineNumber:169,columnNumber:5},this):re}var sg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/fixed-collection.tsx`;function cg({group:e,value:t,onChange:n,recordCtx:r,mode:i=`edit`}){let{t:o}=a(),s=Un(),c=Xh(i,t,e=>n(e)),l=c.mode!==`view`,u=E()&&i===`view`,d=e.view?.by,f=e.fields.find(e=>Cr(e)&&e.key===d),p=e.fields.filter(e=>Cr(e)&&e.key!==d),m=jn(f.type),h=Array.isArray(c.value)?c.value:[],g=m.map(e=>h.find(t=>String(t[f.key]??``)===String(e.value))??{[f.key]:e.value});function _(e){c.onChange(e.filter(e=>p.some(t=>e[t.key]!=null&&e[t.key]!==``)))}function v(e,t,n){_(g.map((r,i)=>i===e?{...r,[t]:n}:r))}return(0,L.jsxDEV)(`fieldset`,{className:`${Et(s)} flex flex-col min-w-0 ${Cn}`,children:[(0,L.jsxDEV)(qe,{as:`legend`,label:o(e.label),icon:rn(e),actions:u?null:c.actions},void 0,!1,{fileName:sg,lineNumber:78,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:g.map((e,t)=>(0,L.jsxDEV)(Rt,{values:e,children:(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0 shrink-0`,children:[f.type.label?(0,L.jsxDEV)(ht,{label:o(f.type.label)},void 0,!1,{fileName:sg,lineNumber:85,columnNumber:36},this):null,(0,L.jsxDEV)(`span`,{className:`text-sm px-1 py-2`,children:Yt(o,{options:m},String(e[f.key]??``))},void 0,!1,{fileName:sg,lineNumber:86,columnNumber:19},this)]},void 0,!0,{fileName:sg,lineNumber:84,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(mn,{items:p.map(n=>({key:n.key,span:Ln(n),node:l?(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,L.jsxDEV)(k,{field:n.type,value:e[n.key]??``,onChange:e=>v(t,n.key,e),label:n.type.label?o(n.type.label):void 0,mode:`edit`,recordCtx:r},void 0,!1,{fileName:sg,lineNumber:97,columnNumber:27},this)},void 0,!1,{fileName:sg,lineNumber:96,columnNumber:25},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0 ${Pt(n.type)}`.trim(),children:[n.type.label?(0,L.jsxDEV)(ht,{label:o(n.type.label)},void 0,!1,{fileName:sg,lineNumber:112,columnNumber:45},this):null,(0,L.jsxDEV)(k,{field:n.type,fieldKey:u?n.key:void 0,value:e[n.key]??``,onChange:u?e=>v(t,n.key,e):void 0,mode:`view`,bare:!u,recordCtx:r},void 0,!1,{fileName:sg,lineNumber:113,columnNumber:27},this)]},void 0,!0,{fileName:sg,lineNumber:111,columnNumber:25},this)}))},void 0,!1,{fileName:sg,lineNumber:91,columnNumber:19},this)},void 0,!1,{fileName:sg,lineNumber:90,columnNumber:17},this)]},void 0,!0,{fileName:sg,lineNumber:83,columnNumber:15},this)},void 0,!1,{fileName:sg,lineNumber:82,columnNumber:13},this)},String(e[f.key]),!1,{fileName:sg,lineNumber:81,columnNumber:11},this))},void 0,!1,{fileName:sg,lineNumber:79,columnNumber:7},this)]},void 0,!0,{fileName:sg,lineNumber:77,columnNumber:5},this)}var lg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group-field.tsx`;function ug({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=E()&&i===`view`,c=Ge(),l=e.kind?En({kind:e.kind}):void 0;if(l)return(0,L.jsxDEV)(rt,{field:e,value:t,commit:n,children:(0,L.jsxDEV)(l.Page,{el:e,value:t,mode:i,recordCtx:r},void 0,!1,{fileName:lg,lineNumber:56,columnNumber:9},this)},void 0,!1,{fileName:lg,lineNumber:55,columnNumber:7},this);if(Sr(e)&&e.fixed)return(0,L.jsxDEV)(cg,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:lg,lineNumber:63,columnNumber:7},this);if(Sr(e)&&e.display===`scroll`)return(0,L.jsxDEV)(og,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:lg,lineNumber:77,columnNumber:7},this);if(Sr(e))return(0,L.jsxDEV)(tg,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:lg,lineNumber:90,columnNumber:7},this);if(Tr(e)){let a=t??{},l=(e,t)=>n({...a,[e]:t}),u=e.fields.filter(e=>Cr(e));return(0,L.jsxDEV)(Rt,{values:a,children:(0,L.jsxDEV)(`fieldset`,{className:`flex flex-col min-w-0 ${Cn}`,children:[(0,L.jsxDEV)(qe,{as:`legend`,label:o(e.label),icon:rn(e)},void 0,!1,{fileName:lg,lineNumber:110,columnNumber:11},this),(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(mn,{items:u.map(t=>({key:t.key,span:Ln(t),node:(0,L.jsxDEV)(k,{field:t.type,fieldKey:s?t.key:void 0,value:a[t.key]??``,onChange:e=>l(t.key,e),label:t.type.label?o(t.type.label):void 0,mode:i,recordCtx:r,error:kr(e)?c([e.key,t.key]):void 0},void 0,!1,{fileName:lg,lineNumber:119,columnNumber:19},this)}))},void 0,!1,{fileName:lg,lineNumber:114,columnNumber:13},this)},void 0,!1,{fileName:lg,lineNumber:113,columnNumber:11},this)]},void 0,!0,{fileName:lg,lineNumber:109,columnNumber:9},this)},void 0,!1,{fileName:lg,lineNumber:108,columnNumber:7},this)}return null}var dg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/storage-group.tsx`;function fg({el:e,value:t,recordCtx:n,mode:r}){let{write:i}=ce();return(0,L.jsxDEV)(ug,{group:e,value:t,onChange:e=>void i(e),recordCtx:n,mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:dg,lineNumber:20,columnNumber:5},this)}function pg({el:e,value:t,recordCtx:n,mode:r}){let{write:i}=ce();return(0,L.jsxDEV)(ug,{group:e,value:t,onChange:e=>void i(e),recordCtx:n,mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:dg,lineNumber:33,columnNumber:5},this)}function mg({el:e,value:t}){let n=e,r=t&&typeof t==`object`?t:{},i=(n?.fields??[]).filter(e=>Cr(e));return i.length?(0,L.jsxDEV)(Rt,{values:r,children:(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-2`,children:i.map(e=>(0,L.jsxDEV)(sn,{field:e.type,value:r[e.key]},e.key,!1,{fileName:dg,lineNumber:63,columnNumber:11},this))},void 0,!1,{fileName:dg,lineNumber:61,columnNumber:7},this)},void 0,!1,{fileName:dg,lineNumber:60,columnNumber:5},this):null}j({kinds:[`collection`],layout:`block`,Page:fg,Value:mg,editor:`own`}),j({kinds:[`embedded`],layout:`block`,Page:pg,editor:`own`});var hg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/weekday-grid.tsx`,gg=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`],_g={kind:`number`,prim:`number`,column:`real`,label:``,required:!1,hints:{}};function vg({group:e,value:t,onChange:n,mode:r}){let{t:i}=a(),o=i(`weekdaysShort`,{returnObjects:!0}),s=E(),c=Array.isArray(t)?t:[],l=new Map(c.map(e=>[e.day,Number(e.value)])),u=r!==`view`,d=e.fields.slice(1).find(e=>Cr(e)),f=d?.type.hints.min,p=d?.type.hints.max,m=d?.type.hints.step,h=d?{...d.type,label:``,required:!1}:_g;function g(e,t){n(gg.flatMap(n=>{let r=n===e?t:l.get(n)??0;return r>0?[{day:n,value:r}]:[]}))}let _=(e,t)=>(0,L.jsxDEV)(P,{type:`number`,className:`w-full text-center px-1 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,min:f,max:p,step:m??`any`,value:e===0||e==null?``:String(e),onChange:e=>t(e.target.value===``?``:Number(e.target.value))},void 0,!1,{fileName:hg,lineNumber:68,columnNumber:5},this),v=Math.max(p??0,...gg.map(e=>l.get(e)??0),1),y=gg[(new Date().getDay()+6)%7],b=e=>(0,L.jsxDEV)(`div`,{className:`relative h-11 w-full overflow-hidden rounded-lg border ${e?`border-border text-accent`:`border-border text-faint`}`,children:[e>0&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`absolute inset-x-0 bottom-0 bg-accent/15`,style:{height:`${Math.round(Math.min(e,v)/v*100)}%`}},void 0,!1,{fileName:hg,lineNumber:95,columnNumber:9},this),(0,L.jsxDEV)(`span`,{className:`relative flex h-full items-center justify-center text-sm font-semibold tabular-nums`,children:e||(0,L.jsxDEV)(O,{},void 0,!1,{fileName:hg,lineNumber:104,columnNumber:15},this)},void 0,!1,{fileName:hg,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:hg,lineNumber:87,columnNumber:5},this);return!u&&!s&&!c.some(e=>Number(e.value)>0)?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:hg,lineNumber:112,columnNumber:83},this):(0,L.jsxDEV)(`div`,{className:`flex ${In}`,children:(0,L.jsxDEV)(`div`,{className:`grid grid-cols-[repeat(7,minmax(2.25rem,1fr))] gap-1.5 w-full max-w-72`,children:gg.map((e,t)=>{let n=l.get(e)??0;return(0,L.jsxDEV)(`div`,{className:`flex flex-col items-stretch gap-1 min-w-0 text-center`,children:[(0,L.jsxDEV)(`span`,{className:`text-[10px] ${e===y?`font-semibold text-accent`:`text-muted`}`,children:o[t]},void 0,!1,{fileName:hg,lineNumber:129,columnNumber:15},this),s?(0,L.jsxDEV)(Yn,{field:h,value:n||``,geom:`none`,width:`w-full`,view:()=>b(n),edit:_,onCommit:t=>g(e,Number(t)||0)},void 0,!1,{fileName:hg,lineNumber:133,columnNumber:17},this):u?_(n||``,t=>g(e,Number(t)||0)):b(n)]},e,!0,{fileName:hg,lineNumber:128,columnNumber:13},this)})},void 0,!1,{fileName:hg,lineNumber:121,columnNumber:7},this)},void 0,!1,{fileName:hg,lineNumber:117,columnNumber:5},this)}var yg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/url-widget.tsx`;function bg({value:e,onChange:t,mode:n}){let r=e??null;if(n===`view`){let e=Pr(r);return e?(0,L.jsxDEV)(`a`,{href:Fr(r),target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-accent hover:underline text-sm break-all`,children:[e,` `,(0,L.jsxDEV)(xl,{size:12},void 0,!1,{fileName:yg,lineNumber:34,columnNumber:16},this)]},void 0,!0,{fileName:yg,lineNumber:28,columnNumber:7},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:yg,lineNumber:26,columnNumber:23},this)}return(0,L.jsxDEV)(P,{type:`text`,inputMode:`url`,value:Pr(r),onChange:e=>t(Ir(e.target.value))},void 0,!1,{fileName:yg,lineNumber:40,columnNumber:10},this)}var xg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/checklist-group.tsx`;function Sg({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Un(),c=e.fields.filter(e=>Cr(e)&&/^check\d+$/.test(e.key)),l=e.fields.filter(e=>Cr(e)&&!/^check\d+$/.test(e.key)),u=l.map(e=>({key:e.key,type:e.type})),d=l.find(e=>e.key===`text`),f=c.map(e=>e.type.label??``),p=Xh(i,t,e=>n(e)),m=Array.isArray(p.value)?p.value:[],{rowId:h,updateRow:g,removeRow:_}=$e(m,p.onChange),v=p.mode!==`view`,y=E()&&i===`view`,b=v||y,x=e=>({text:d?String(e[d.key]??``):``,checks:c.map(t=>e[t.key]===!0)}),S=(e,t)=>{let n={...t};return c.forEach((t,r)=>{n[t.key]=e.checks[r]===!0}),d&&(n[d.key]=e.text),n},C=(e,t,n)=>(0,L.jsxDEV)(Yn,{field:{...n.type,hints:{...n.type.hints,noLabel:!0}},label:n.type.label?o(n.type.label):void 0,value:e[n.key]===!0,geom:`none`,width:`w-fit`,view:(e,t)=>(0,L.jsxDEV)(Dt,{checked:e===!0,disabled:!t,"aria-label":n.type.label?o(n.type.label):void 0,onCheckedChange:e=>t?.(e===!0)},void 0,!1,{fileName:xg,lineNumber:87,columnNumber:9},this),edit:(e,t)=>(0,L.jsxDEV)(Dt,{checked:e===!0,onCheckedChange:e=>t(e===!0)},void 0,!1,{fileName:xg,lineNumber:94,columnNumber:25},this),onCommit:r=>g(t,{...e,[n.key]:r===!0})},n.key,!1,{fileName:xg,lineNumber:77,columnNumber:5},this),w=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,L.jsxDEV)(`ul`,{className:`flex flex-col gap-1.5`,children:m.map((e,t)=>(0,L.jsxDEV)(`li`,{children:(0,L.jsxDEV)(Qt,{row:x(e),slotCount:f.length,editing:v,checkCells:y?c.map(n=>C(e,t,n)):void 0,onChange:n=>g(t,S(n,e)),onRemove:b?()=>_(t):void 0,content:(0,L.jsxDEV)(An,{fields:u,row:e,editing:v,onChange:(n,r)=>g(t,{...e,[n]:r}),recordCtx:r},void 0,!1,{fileName:xg,lineNumber:114,columnNumber:19},this)},void 0,!1,{fileName:xg,lineNumber:106,columnNumber:15},this)},h(e),!1,{fileName:xg,lineNumber:105,columnNumber:13},this))},void 0,!1,{fileName:xg,lineNumber:101,columnNumber:7},this),b&&(0,L.jsxDEV)(Ft,{onClick:()=>p.onChange([...m,{}]),children:o(`form.addRow`)},void 0,!1,{fileName:xg,lineNumber:127,columnNumber:20},this),(0,L.jsxDEV)(gn,{slots:f},void 0,!1,{fileName:xg,lineNumber:128,columnNumber:7},this)]},void 0,!0,{fileName:xg,lineNumber:100,columnNumber:5},this);return i===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(s)} flex flex-col gap-1 min-w-0`,children:[(0,L.jsxDEV)(qe,{as:`h3`,label:o(e.label),count:m.length,actions:!y&&p.actions},void 0,!1,{fileName:xg,lineNumber:140,columnNumber:7},this),(0,L.jsxDEV)(xt,{depth:s+1,children:w},void 0,!1,{fileName:xg,lineNumber:141,columnNumber:7},this)]},void 0,!0,{fileName:xg,lineNumber:139,columnNumber:5},this):w}var Cg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/two-cell-group.tsx`;function wg(e,t){return{kind:t,label:``,required:!1,prim:t,column:`text`,hints:{},parts:e.fields.map(e=>{let t=e;return{role:t.key,key:t.key,meta:t.type,mode:t.type.derived?`computedStored`:`stored`,overridden:!1}})}}function Tg(e){let{RowEdit:t,RowLive:n,Body:r}=e;return function({el:i,value:o,mode:s}){let{t:c}=a(),l=Un(),{write:u}=ce(),d=i,f=wg(d,e.kind),p=Xh(s,o,u),m=Array.isArray(p.value)?p.value:[],h=p.mode!==`view`,g=E()&&s===`view`,_=h||g,{rowId:v,updateRow:y,removeRow:b}=$e(m,p.onChange),x=(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col ${e.rowGap}`,"data-testid":e.testid,children:[m.map((e,i)=>(0,L.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[h?(0,L.jsxDEV)(t,{meta:f,row:e,onChange:e=>y(i,e)},void 0,!1,{fileName:Cg,lineNumber:122,columnNumber:15},this):g?(0,L.jsxDEV)(n,{meta:f,row:e,onChange:e=>y(i,e)},void 0,!1,{fileName:Cg,lineNumber:124,columnNumber:15},this):(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(r,{field:f,value:e},void 0,!1,{fileName:Cg,lineNumber:127,columnNumber:17},this)},void 0,!1,{fileName:Cg,lineNumber:126,columnNumber:15},this),_&&(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,onClick:()=>b(i),title:c(`actions.delete`),className:`h-5 w-5 shrink-0 rounded text-muted hover:text-danger`,children:(0,L.jsxDEV)(ur,{size:12},void 0,!1,{fileName:Cg,lineNumber:139,columnNumber:17},this)},void 0,!1,{fileName:Cg,lineNumber:131,columnNumber:15},this)]},v(e),!0,{fileName:Cg,lineNumber:120,columnNumber:11},this)),_&&(0,L.jsxDEV)(Ft,{onClick:()=>p.onChange([...m,{}]),children:c(`form.addRow`)},void 0,!1,{fileName:Cg,lineNumber:144,columnNumber:22},this)]},void 0,!0,{fileName:Cg,lineNumber:118,columnNumber:7},this);return s===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(l)} flex min-w-0 flex-col gap-1`,children:[(0,L.jsxDEV)(qe,{as:`h3`,label:c(d.label),count:m.length},void 0,!1,{fileName:Cg,lineNumber:157,columnNumber:9},this),(0,L.jsxDEV)(xt,{depth:l+1,children:x},void 0,!1,{fileName:Cg,lineNumber:158,columnNumber:9},this)]},void 0,!0,{fileName:Cg,lineNumber:156,columnNumber:7},this):x}}var Eg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/illustrated-group.tsx`;function Dg({meta:e,row:t,onChange:n}){let{tKey:r,iKey:i}=wm(e),{width:a}=Em(e),o=Dm(e),s=t[r],c=t[i],l=e.parts?.find(e=>e.role===`text`),u=l!=null&&l.mode!==`stored`,d=e.parts?.find(e=>e.role===`image`),f=d!=null&&d.mode!==`stored`,p=c!=null&&c!==``?un(c)[0]:void 0;return(0,L.jsxDEV)(`div`,{className:`flex flex-1 flex-col gap-3 min-w-0`,children:[f?(0,L.jsxDEV)(`div`,{className:`text-sm text-muted`,children:p?(0,L.jsxDEV)(km,{name:p.name,width:a,kind:o},void 0,!1,{fileName:Eg,lineNumber:52,columnNumber:18},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Eg,lineNumber:52,columnNumber:85},this)},void 0,!1,{fileName:Eg,lineNumber:51,columnNumber:9},this):(0,L.jsxDEV)(et,{value:c??``,onChange:e=>n({...t,[i]:bn(e)}),width:a,poster:o===`poster`},void 0,!1,{fileName:Eg,lineNumber:55,columnNumber:9},this),u?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted whitespace-pre-wrap`,children:s!=null&&s!==``?String(s):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Eg,lineNumber:64,columnNumber:57},this)},void 0,!1,{fileName:Eg,lineNumber:63,columnNumber:9},this):(0,L.jsxDEV)(pi,{value:s==null?``:String(s),onChange:e=>n({...t,[r]:bn(e.target.value)})},void 0,!1,{fileName:Eg,lineNumber:67,columnNumber:9},this)]},void 0,!0,{fileName:Eg,lineNumber:49,columnNumber:5},this)}function Og({meta:e,row:t,onChange:n}){let{tKey:r,iKey:i}=wm(e),{width:a,side:o}=Em(e),s=Dm(e),c=t[r],l=t[i],u=e.parts?.find(e=>e.role===`text`),d=u!=null&&u.mode!==`stored`,f=e.parts?.find(e=>e.role===`image`),p=f!=null&&f.mode!==`stored`;return(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,L.jsxDEV)(Am,{width:a,side:o,picture:(0,L.jsxDEV)(Nm,{image:l,fixed:p,width:a,kind:s,onChange:p?void 0:e=>n({...t,[i]:bn(e)})},void 0,!1,{fileName:Eg,lineNumber:102,columnNumber:11},this),prose:(0,L.jsxDEV)(Pm,{text:c,fixed:d,meta:u?.meta??e,onChange:d?void 0:e=>n({...t,[r]:bn(e)})},void 0,!1,{fileName:Eg,lineNumber:111,columnNumber:11},this)},void 0,!1,{fileName:Eg,lineNumber:98,columnNumber:7},this)},void 0,!1,{fileName:Eg,lineNumber:95,columnNumber:5},this)}j({kinds:[`illustratedList`],layout:`block`,Page:Tg({kind:`illustrated`,testid:`illustrated-list`,rowGap:`gap-4`,RowEdit:Dg,RowLive:Og,Body:jm}),editor:`own`});var kg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/attachment-group.tsx`;function Ag({meta:e,row:t,onChange:n}){let{lKey:r,fKey:i}=th(e),a=rh(e),o=t[r],s=t[i],c=ih(e,`label`),l=ih(e,`file`);return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-2`,children:[c?(0,L.jsxDEV)(`p`,{className:`text-[15px] text-muted`,children:o!=null&&o!==``?String(o):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:kg,lineNumber:46,columnNumber:96},this)},void 0,!1,{fileName:kg,lineNumber:46,columnNumber:9},this):(0,L.jsxDEV)(P,{value:o==null?``:String(o),onChange:e=>n({...t,[r]:bn(e.target.value)})},void 0,!1,{fileName:kg,lineNumber:48,columnNumber:9},this),l?(0,L.jsxDEV)(Qm,{kind:a,value:s??``},void 0,!1,{fileName:kg,lineNumber:54,columnNumber:9},this):(0,L.jsxDEV)(Ym,{kind:a,value:s??``,onChange:e=>n({...t,[i]:bn(e)})},void 0,!1,{fileName:kg,lineNumber:56,columnNumber:9},this)]},void 0,!0,{fileName:kg,lineNumber:44,columnNumber:5},this)}function jg({meta:e,row:t,onChange:n}){let{lKey:r,fKey:i}=th(e),a=rh(e),o=t[r],s=t[i],c=e.parts?.find(e=>e.role===`label`),l=ih(e,`label`),u=ih(e,`file`);return(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(ah,{name:(0,L.jsxDEV)(lh,{label:o,fixed:l,meta:c?.meta??e,onChange:l?void 0:e=>n({...t,[r]:bn(e)})},void 0,!1,{fileName:kg,lineNumber:87,columnNumber:11},this),file:(0,L.jsxDEV)(ch,{file:s,fixed:u,kind:a,onChange:u?void 0:e=>n({...t,[i]:bn(e)})},void 0,!1,{fileName:kg,lineNumber:95,columnNumber:11},this)},void 0,!1,{fileName:kg,lineNumber:85,columnNumber:7},this)},void 0,!1,{fileName:kg,lineNumber:82,columnNumber:5},this)}j({kinds:[`attachmentList`],layout:`block`,Page:Tg({kind:`attachment`,testid:`attachment-list`,rowGap:`gap-3`,RowEdit:Ag,RowLive:jg,Body:sh}),editor:`own`});var Mg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/widgets/group-widgets.tsx`;function Ng({el:e,value:t,mode:n,bare:r}){let{t:i}=a(),{write:o}=ce(),s=e,c=(0,L.jsxDEV)(vg,{group:s,value:t,onChange:e=>void o(e),mode:n},void 0,!1,{fileName:Mg,lineNumber:28,columnNumber:18},this);return r?c:(0,L.jsxDEV)(`div`,{className:`group/field flex flex-col min-w-0 ${Cn}`,children:[s.label&&(0,L.jsxDEV)(ht,{label:i(s.label)},void 0,!1,{fileName:Mg,lineNumber:34,columnNumber:23},this),c]},void 0,!0,{fileName:Mg,lineNumber:33,columnNumber:5},this)}var Pg={kind:`url`,prim:`text`,column:`text`,label:``,required:!1,hints:{}};function Fg({el:e,value:t,mode:n,bare:r}){let{t:i}=a(),o=ce(),s=e,c=E(),l=(e,t,n)=>(0,L.jsxDEV)(bg,{value:t,onChange:e=>n(e),mode:e},void 0,!1,{fileName:Mg,lineNumber:61,columnNumber:5},this);return r?l(n===`view`?`view`:`edit`,t,e=>void o.write(e)):c&&o.writable?(0,L.jsxDEV)(Yn,{field:Pg,value:t,label:s.label?i(s.label):void 0,geom:`none`,width:`w-full`,view:e=>l(`view`,e,()=>{}),edit:(e,t)=>l(`edit`,e,t),onCommit:o.write},void 0,!1,{fileName:Mg,lineNumber:66,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`group/field flex flex-col min-w-0 ${Cn}`,children:[s.label&&(0,L.jsxDEV)(ht,{label:i(s.label)},void 0,!1,{fileName:Mg,lineNumber:81,columnNumber:23},this),l(n===`view`?`view`:`edit`,t,e=>void o.write(e))]},void 0,!0,{fileName:Mg,lineNumber:80,columnNumber:5},this)}function Ig({el:e,value:t,recordCtx:n,mode:r}){let{write:i}=ce();return(0,L.jsxDEV)(Sg,{group:e,value:t,onChange:e=>void i(e),recordCtx:n,mode:r},void 0,!1,{fileName:Mg,lineNumber:90,columnNumber:5},this)}j({kinds:[`per-weekday`],layout:`block`,Page:Ng,editor:`own`}),j({kinds:[`url`],layout:`block`,Page:Fg,activate:`value`}),j({kinds:[`checklist`],layout:`block`,Page:Ig,editor:`own`});var Lg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/actions/TemplateHost.tsx`,Rg=new Map;function zg(e){let t=Hn(e);if(!t)return null;let n=Rg.get(e);return n||(n=(0,I.lazy)(t),Rg.set(e,n)),n}var Bg=class extends I.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}};function Vg({name:e,data:t}){let{t:n}=a(),r=(0,L.jsxDEV)(L.Fragment,{children:n(`actions.notice`)},void 0,!1,{fileName:Lg,lineNumber:33,columnNumber:20},this),i=zg(e);return i?(0,L.jsxDEV)(Bg,{fallback:r,children:(0,L.jsxDEV)(I.Suspense,{fallback:(0,L.jsxDEV)(ve,{},void 0,!1,{fileName:Lg,lineNumber:41,columnNumber:27},this),children:(0,L.jsxDEV)(i,{data:t,t:n},void 0,!1,{fileName:Lg,lineNumber:42,columnNumber:9},this)},void 0,!1,{fileName:Lg,lineNumber:41,columnNumber:7},this)},void 0,!1,{fileName:Lg,lineNumber:40,columnNumber:5},this):(console.warn(`[template] unknown '${e}'`),r)}var Hg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/actions/PopupBody.tsx`;function Ug({ui:e}){let{t}=a();return(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(an,{children:e.title?t(e.title,e.params):t(`actions.notice`)},void 0,!1,{fileName:Hg,lineNumber:11,columnNumber:7},this),e.component?(0,L.jsxDEV)(Vg,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Hg,lineNumber:13,columnNumber:9},this):(0,L.jsxDEV)(wn,{children:t(e.message??``,e.params)},void 0,!1,{fileName:Hg,lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:Hg,lineNumber:10,columnNumber:5},this)}var Wg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/layout-elements.tsx`;function Gg({el:e}){let t=e?.label;return t?(0,L.jsxDEV)(xe,{label:t},void 0,!1,{fileName:Wg,lineNumber:29,columnNumber:18},this):(0,L.jsxDEV)(`hr`,{className:`border-border`},void 0,!1,{fileName:Wg,lineNumber:29,columnNumber:54},this)}function Kg({el:e}){return(0,L.jsxDEV)(`div`,{className:`rounded-lg border border-border bg-elevated px-4 py-3 text-sm text-text`,children:(0,L.jsxDEV)(hr,{value:y(e.text)},void 0,!1,{fileName:Wg,lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:Wg,lineNumber:35,columnNumber:5},this)}function qg(e){let{t}=a(),n=e.el,r=e.recordCtx,[i,o]=(0,I.useState)(!1),[s,c]=(0,I.useState)(null),l=e=>{if(e.kind===`popup`){c(e);return}let n=e.component?(0,L.jsxDEV)(Vg,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Wg,lineNumber:54,columnNumber:7},this):t(e.message??``,e.params);e.variant===`success`?Lt.success(n):e.variant===`error`?Lt.error(n):Lt(n)};return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,L.jsxDEV)(F,{variant:n.variant??`outline`,onClick:async()=>{let e=Pl(n.value);if(!e){Lt.error(t(`actions.actionNotFound`));return}o(!0);try{let n=await e({library:r.library,shelf:r.shelf,recordId:r.recordId??``});n?l(n):Lt.success(t(`actions.actionSuccess`))}catch(e){let n=e.ui;n?l(n):Lt.error(e instanceof Error?e.message:t(`actions.actionError`))}finally{o(!1)}},disabled:i,className:`max-w-full min-w-0`,children:[i?(0,L.jsxDEV)(ve,{},void 0,!1,{fileName:Wg,lineNumber:86,columnNumber:20},this):n.icon&&(0,L.jsxDEV)(rr,{name:n.icon,size:16},void 0,!1,{fileName:Wg,lineNumber:86,columnNumber:45},this),(0,L.jsxDEV)(`span`,{className:`truncate`,children:t(n.label)},void 0,!1,{fileName:Wg,lineNumber:87,columnNumber:9},this)]},void 0,!0,{fileName:Wg,lineNumber:85,columnNumber:7},this),(0,L.jsxDEV)(b,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,L.jsxDEV)(Jn,{children:(0,L.jsxDEV)(zn,{children:s&&(0,L.jsxDEV)(Ug,{ui:s},void 0,!1,{fileName:Wg,lineNumber:91,columnNumber:35},this)},void 0,!1,{fileName:Wg,lineNumber:91,columnNumber:11},this)},void 0,!1,{fileName:Wg,lineNumber:90,columnNumber:9},this)},void 0,!1,{fileName:Wg,lineNumber:89,columnNumber:7},this)]},void 0,!0,{fileName:Wg,lineNumber:84,columnNumber:5},this)}function Jg({el:e,children:t}){let{t:n}=a(),r=e;return(0,L.jsxDEV)(Je,{label:r.label?n(r.label):void 0,icon:rn(r),children:t},void 0,!1,{fileName:Wg,lineNumber:105,columnNumber:5},this)}j({kinds:[`divider`],layout:`block`,Page:Gg}),j({kinds:[`info`],layout:`block`,Page:Kg}),j({kinds:[`button`],layout:`scalar`,Page:qg}),j({kinds:[`group`],layout:`block`,Page:Jg,editor:`own`});var Yg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/tristate.tsx`,Xg={unknown:`yes`,yes:`no`,no:`unknown`},Zg={yes:!0,no:!1,unknown:`indeterminate`},Qg=[`yes`,`no`,`unknown`];function $g({value:e,onChange:t,label:n}){let{saving:r}=Xt(),i=e||`unknown`;return(0,L.jsxDEV)(Oi,{checked:Zg[i],disabled:r,onCheckedChange:()=>t?.(Xg[i]),"aria-label":n,className:ci(`peer h-4.5 w-4.5 shrink-0 rounded border border-border bg-bg transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,`data-[state=checked]:border-accent data-[state=checked]:text-accent`,`data-[state=indeterminate]:border-accent data-[state=indeterminate]:text-accent`),children:(0,L.jsxDEV)(Di,{className:`flex items-center justify-center text-current`,children:i===`yes`?(0,L.jsxDEV)(li,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:Yg,lineNumber:43,columnNumber:11},this):(0,L.jsxDEV)(wi,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:Yg,lineNumber:45,columnNumber:11},this)},void 0,!1,{fileName:Yg,lineNumber:41,columnNumber:7},this)},void 0,!1,{fileName:Yg,lineNumber:29,columnNumber:5},this)}function e_({value:e}){let t=String(e||`unknown`)??`unknown`;return(0,L.jsxDEV)(r_[t]??wi,{size:16,className:t===`yes`?`text-success`:t===`no`?`text-danger`:`text-muted`},void 0,!1,{fileName:Yg,lineNumber:59,columnNumber:10},this)}function t_({draft:e,save:t}){let{t:n}=a();return(0,L.jsxDEV)(gr,{options:Qg.map(e=>({value:e,title:n(`triState.${e}`)})),value:String(e||`unknown`),multiple:!1,literal:!0,search:!1,onPick:e=>t(e)},void 0,!1,{fileName:Yg,lineNumber:70,columnNumber:5},this)}function n_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,L.jsxDEV)(e_,{field:e.field,value:t},void 0,!1,{fileName:Yg,lineNumber:93,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)($g,{value:String(t??``),onChange:n,label:e.label},void 0,!1,{fileName:Yg,lineNumber:94,columnNumber:30},this)},void 0,!1,{fileName:Yg,lineNumber:83,columnNumber:5},this)}var r_={yes:li,unknown:wi,no:mi};function i_({value:e}){let t=String(e??`unknown`);return(0,L.jsxDEV)(r_[t]??wi,{size:16,className:t===`yes`?`text-success`:t===`no`?`text-danger`:`text-muted`},void 0,!1,{fileName:Yg,lineNumber:107,columnNumber:10},this)}j({kinds:[`triState`],Page:n_,Inline:i_,Value:e_,Picker:t_,pickerCommits:!0});var a_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/stepper.tsx`;function o_(e,t){let n=String(t??``),r=jn(e);if(!r.length)return{state:`unlisted`,value:n};if(n===``)return{state:`empty`};let i=r.findIndex(e=>e.value===n);return i===-1?{state:`unknown`,value:n}:{state:`reached`,index:i}}function s_({value:e}){let{t}=a();return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 flex-wrap items-center gap-1.5 text-danger`,"data-testid":`stepper-unknown`,children:[(0,L.jsxDEV)(rr,{name:`lucide:alert-triangle`,size:14,className:`shrink-0`},void 0,!1,{fileName:a_,lineNumber:77,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-pre font-mono text-[13px]`,children:e},void 0,!1,{fileName:a_,lineNumber:78,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`text-xs`,children:t(`form.unknownStage`,`Stage not in the list`)},void 0,!1,{fileName:a_,lineNumber:79,columnNumber:7},this)]},void 0,!0,{fileName:a_,lineNumber:76,columnNumber:5},this)}function c_({value:e}){return e===``?(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:a_,lineNumber:90,columnNumber:28},this):(0,L.jsxDEV)(`span`,{className:`inline-block max-w-full overflow-hidden text-ellipsis whitespace-pre align-bottom`,"data-testid":`stepper-unlisted`,children:e},void 0,!1,{fileName:a_,lineNumber:92,columnNumber:5},this)}function l_({field:e,value:t}){let{t:n}=a(),r=o_(e,t);if(r.state===`unlisted`)return(0,L.jsxDEV)(c_,{value:r.value},void 0,!1,{fileName:a_,lineNumber:109,columnNumber:38},this);if(r.state===`unknown`)return(0,L.jsxDEV)(s_,{value:r.value},void 0,!1,{fileName:a_,lineNumber:110,columnNumber:37},this);let i=jn(e),o=r.state===`reached`?r.index:-1;return(0,L.jsxDEV)(`ol`,{className:`flex min-w-0 flex-wrap items-center gap-x-1 gap-y-1.5`,"data-testid":`stepper-rail`,children:i.map((e,t)=>{let r=t<o?`passed`:t===o?`current`:`remaining`;return(0,L.jsxDEV)(`li`,{className:`flex min-w-0 items-center gap-1`,children:[t>0&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`h-px w-2 shrink-0 bg-border`},void 0,!1,{fileName:a_,lineNumber:119,columnNumber:23},this),(0,L.jsxDEV)(`span`,{"data-testid":`stepper-stage-${r}`,"data-stage":e.value,className:ci(`min-w-0 truncate rounded-full border px-2 py-0.5 text-[11px] leading-4`,r===`passed`&&`border-accent text-accent`,r===`current`&&`border-accent text-accent font-semibold ring-1 ring-accent`,r===`remaining`&&`border-border text-muted`),children:n(e.title)},void 0,!1,{fileName:a_,lineNumber:120,columnNumber:13},this)]},e.value,!0,{fileName:a_,lineNumber:118,columnNumber:11},this)})},void 0,!1,{fileName:a_,lineNumber:114,columnNumber:5},this)}function u_({field:e,value:t}){let n=o_(e,t);return n.state===`unknown`?(0,L.jsxDEV)(s_,{value:n.value},void 0,!1,{fileName:a_,lineNumber:151,columnNumber:37},this):(0,L.jsxDEV)(on,{field:e,value:t},void 0,!1,{fileName:a_,lineNumber:152,columnNumber:10},this)}function d_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,L.jsxDEV)(l_,{field:e.field,value:t},void 0,!1,{fileName:a_,lineNumber:167,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(Bn,{field:e.field,value:t,onChange:n,offered:e.selectOptions},void 0,!1,{fileName:a_,lineNumber:169,columnNumber:9},this)},void 0,!1,{fileName:a_,lineNumber:157,columnNumber:5},this)}function f_({field:e,value:t}){let{t:n}=a(),r=o_(e,t);if(r.state===`unlisted`)return(0,L.jsxDEV)(c_,{value:r.value},void 0,!1,{fileName:a_,lineNumber:185,columnNumber:38},this);if(r.state===`empty`)return(0,L.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:a_,lineNumber:186,columnNumber:35},this);if(r.state===`unknown`)return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1 text-danger`,"data-testid":`stepper-inline-unknown`,children:[(0,L.jsxDEV)(rr,{name:`lucide:alert-triangle`,size:13,className:`shrink-0`},void 0,!1,{fileName:a_,lineNumber:190,columnNumber:9},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 overflow-hidden text-ellipsis whitespace-pre font-mono`,children:r.value},void 0,!1,{fileName:a_,lineNumber:191,columnNumber:9},this)]},void 0,!0,{fileName:a_,lineNumber:189,columnNumber:7},this);let i=jn(e).length;return(0,L.jsxDEV)(`span`,{className:`truncate`,children:[Yt(n,e,t),` `,(0,L.jsxDEV)(`span`,{className:`text-muted text-xs`,children:`${r.index+1}/${i}`},void 0,!1,{fileName:a_,lineNumber:197,columnNumber:38},this)]},void 0,!0,{fileName:a_,lineNumber:196,columnNumber:5},this)}function p_(e,t,n){if(e==null||e===``)return[];let r=o_(t,e),i=String(e),a=Yt(n.t,t,i);return[{value:i,rawValue:e,label:a,sort:r.state===`reached`?String(r.index).padStart(3,`0`):r.state===`unlisted`?a:`999${i}`}]}j({kinds:[`stepper`],layout:`block`,Page:d_,Inline:f_,Value:u_,editor:`popover`,keys:p_});var m_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/money.tsx`;function h_(e){let t=e.hints.currencyValue;return typeof t==`string`&&t?t:void 0}function g_(e,t){if(e==null||e===``||Number.isNaN(Number(e)))return``;let n=Number(e);if(!t)return new Intl.NumberFormat(void 0,{maximumFractionDigits:2}).format(n);try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:t}).format(n)}catch{return`${new Intl.NumberFormat(void 0,{maximumFractionDigits:2}).format(n)} ${Fi(t)}`}}function __({value:e,field:t}){let n=g_(e,h_(t));return n?(0,L.jsxDEV)(`span`,{children:n},void 0,!1,{fileName:m_,lineNumber:46,columnNumber:14},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:m_,lineNumber:46,columnNumber:33},this)}function v_({field:e,value:t,onChange:n}){let r=h_(e);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,L.jsxDEV)(Tp,{customInput:P,className:`flex-1 min-w-0`,value:t==null||t===``?``:Number(t),thousandSeparator:!0,decimalScale:2,min:e.hints.min,max:e.hints.max,placeholder:`0.00`,onValueChange:e=>n(e.value===``?``:e.floatValue??``)},void 0,!1,{fileName:m_,lineNumber:53,columnNumber:7},this),r&&(0,L.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,children:Fi(r)},void 0,!1,{fileName:m_,lineNumber:64,columnNumber:15},this)]},void 0,!0,{fileName:m_,lineNumber:52,columnNumber:5},this)}function y_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,L.jsxDEV)(__,{value:t,field:e.field},void 0,!1,{fileName:m_,lineNumber:81,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(v_,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:m_,lineNumber:83,columnNumber:9},this)},void 0,!1,{fileName:m_,lineNumber:71,columnNumber:5},this)}function b_({value:e,field:t}){return(0,L.jsxDEV)(__,{value:e,field:t},void 0,!1,{fileName:m_,lineNumber:90,columnNumber:10},this)}j({kinds:[`money`],Page:y_,Inline:b_});var x_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/range.tsx`;function S_(e){let t=Mr(e.parts??[]);return{fromKey:t.from??`from`,toKey:t.to??`to`}}function C_(e,t){let{fromKey:n,toKey:r}=S_(t),i=e&&typeof e==`object`?e:(()=>{try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:null}catch{return null}})();return i?{from:i[n],to:i[r]}:{}}function w_({field:e,value:t,onChange:n}){let r=(0,I.useMemo)(()=>C_(t,e),[t,e]),i=e.hints,a=e=>e===``?void 0:Number(e),{fromKey:o,toKey:s}=S_(e),c=e.parts?.find(e=>e.role===`from`),l=c!=null&&c.mode!==`stored`,u=e.parts?.find(e=>e.role===`to`),d=u!=null&&u.mode!==`stored`,f=e=>n(e.from==null&&e.to==null?``:{[o]:e.from,[s]:e.to});return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[l?(0,L.jsxDEV)(`div`,{className:`flex flex-1 min-w-0 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:r.from??(0,L.jsxDEV)(O,{},void 0,!1,{fileName:x_,lineNumber:76,columnNumber:22},this)},void 0,!1,{fileName:x_,lineNumber:75,columnNumber:9},this):(0,L.jsxDEV)(P,{type:`number`,className:`flex-1 min-w-0`,placeholder:`від`,value:r.from??``,min:i.min,max:i.max,step:i.step,onChange:e=>f({from:a(e.target.value),to:r.to})},void 0,!1,{fileName:x_,lineNumber:79,columnNumber:9},this),(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`–`},void 0,!1,{fileName:x_,lineNumber:90,columnNumber:7},this),d?(0,L.jsxDEV)(`div`,{className:`flex flex-1 min-w-0 items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:r.to??(0,L.jsxDEV)(O,{},void 0,!1,{fileName:x_,lineNumber:93,columnNumber:20},this)},void 0,!1,{fileName:x_,lineNumber:92,columnNumber:9},this):(0,L.jsxDEV)(P,{type:`number`,className:`flex-1 min-w-0`,placeholder:`до`,value:r.to??``,min:i.min,max:i.max,step:i.step,onChange:e=>f({from:r.from,to:a(e.target.value)})},void 0,!1,{fileName:x_,lineNumber:96,columnNumber:9},this)]},void 0,!0,{fileName:x_,lineNumber:73,columnNumber:5},this)}function T_({value:e,field:t}){let n=C_(e,t);return n.from==null&&n.to==null?(0,L.jsxDEV)(O,{},void 0,!1,{fileName:x_,lineNumber:113,columnNumber:46},this):(0,L.jsxDEV)(`span`,{children:[n.from??`…`,`–`,n.to??`…`]},void 0,!0,{fileName:x_,lineNumber:118,columnNumber:5},this)}function E_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:t=>(0,L.jsxDEV)(T_,{value:t,field:e.field},void 0,!1,{fileName:x_,lineNumber:136,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(w_,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:x_,lineNumber:138,columnNumber:9},this)},void 0,!1,{fileName:x_,lineNumber:126,columnNumber:5},this)}function D_({value:e,field:t}){return(0,L.jsxDEV)(T_,{value:e,field:t},void 0,!1,{fileName:x_,lineNumber:145,columnNumber:10},this)}j({kinds:[`numberRange`,`realRange`],Page:E_,Inline:D_});var O_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/source.tsx`;function k_(e,t){return`${(e??``).trim().toLowerCase().replace(/[^\p{L}\p{N}.-]+/gu,`-`).replace(/^-+|-+$/g,``)||`file`}.${t}`}function A_(e,t,n){let r=e.hints.fileName;return typeof r==`string`&&r!==``?`${r}.${n}`:k_(t,n)}function j_(e){return typeof e==`string`?e:``}function M_({field:e,label:t,value:n,onChange:r}){let{t:i}=a(),[o,s]=(0,I.useState)(!1),c=e.hints.ext??`txt`,l=A_(e,t??e.label,c),u=j_(n),d=u.length>0,f=async e=>{if(e){s(!0);try{let t=await e.text();await r?.(t)}finally{s(!1)}}};return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border px-3 py-2`,children:[d?(0,L.jsxDEV)(wl,{size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:O_,lineNumber:103,columnNumber:11},this):(0,L.jsxDEV)(Tl,{size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:O_,lineNumber:105,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:d?l:i(`source.empty`)},void 0,!1,{fileName:O_,lineNumber:107,columnNumber:9},this),(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:!d,onClick:()=>{let e=URL.createObjectURL(new Blob([u],{type:`text/plain;charset=utf-8`})),t=document.createElement(`a`);t.href=e,t.download=l,t.click(),setTimeout(()=>URL.revokeObjectURL(e),0)},title:i(`source.download`),"aria-label":i(`source.download`),children:(0,L.jsxDEV)(bl,{size:15},void 0,!1,{fileName:O_,lineNumber:117,columnNumber:11},this)},void 0,!1,{fileName:O_,lineNumber:108,columnNumber:9},this)]},void 0,!0,{fileName:O_,lineNumber:101,columnNumber:7},this),(0,L.jsxDEV)(Bt,{accept:`.${c},text/*`,busy:o,error:null,onPick:e=>void f(e),compact:!0},void 0,!1,{fileName:O_,lineNumber:120,columnNumber:7},this)]},void 0,!0,{fileName:O_,lineNumber:100,columnNumber:5},this)}function N_(e){let t=(t,n)=>(0,L.jsxDEV)(M_,{field:e.field,label:e.label,value:t,onChange:n},void 0,!1,{fileName:O_,lineNumber:127,columnNumber:5},this);return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,bare:e.bare,view:(e,n)=>t(e,n),edit:(e,n)=>t(e,n)},void 0,!1,{fileName:O_,lineNumber:130,columnNumber:5},this)}function P_({field:e,value:t}){let{t:n}=a(),r=e.hints.ext??`txt`;return j_(t)?(0,L.jsxDEV)(`span`,{className:`truncate font-mono text-xs`,children:A_(e,n(e.label),r)},void 0,!1,{fileName:O_,lineNumber:152,columnNumber:10},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:O_,lineNumber:151,columnNumber:30},this)}j({kinds:[`source`],layout:`scalar`,Page:N_,Inline:P_});var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/embed.tsx`;function F_(e){let t=e=>!!e&&typeof e==`object`&&typeof e.url==`string`;if(Array.isArray(e))return e.filter(t);if(t(e))return[e];try{let n=JSON.parse(String(e??``));return Array.isArray(n)?n.filter(t):t(n)?[n]:[]}catch{return[]}}var I_=e=>(e.type===`video`||e.type===`rich`)&&!!e.html;function L_(e){try{return new URL(e).hostname}catch{return e}}function R_(e){try{let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return e}catch{}}function z_({rec:e,onOpen:t,onRemove:n}){return(0,L.jsxDEV)(`div`,{className:`group relative @container`,children:[(0,L.jsxDEV)(`button`,{type:`button`,onClick:t,className:`flex w-full items-center gap-2 overflow-hidden rounded-lg border border-border text-left @[20rem]:flex-col @[20rem]:items-stretch @[20rem]:gap-0`,children:[(0,L.jsxDEV)(`div`,{className:`relative aspect-video w-20 shrink-0 bg-elevated @[20rem]:w-full`,children:[e.thumbnail?(0,L.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:68,columnNumber:13},this):(0,L.jsxDEV)(Dl,{className:`absolute inset-0 m-auto text-muted`,size:20},void 0,!1,{fileName:J,lineNumber:70,columnNumber:13},this),I_(e)&&(0,L.jsxDEV)(`span`,{className:`absolute inset-0 m-auto flex h-8 w-8 items-center justify-center rounded-full bg-black/60 text-white`,children:(0,L.jsxDEV)(Ve,{size:16},void 0,!1,{fileName:J,lineNumber:74,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:73,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:66,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 px-2 py-2`,children:[(0,L.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:e.title??e.url},void 0,!1,{fileName:J,lineNumber:79,columnNumber:11},this),e.provider&&(0,L.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.provider},void 0,!1,{fileName:J,lineNumber:80,columnNumber:28},this)]},void 0,!0,{fileName:J,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:61,columnNumber:7},this),n&&(0,L.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,className:`absolute right-1 top-1 text-muted opacity-0 hover:text-danger group-hover:opacity-100`,onClick:n,children:(0,L.jsxDEV)(ur,{size:13},void 0,!1,{fileName:J,lineNumber:91,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:84,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:60,columnNumber:5},this)}function B_({rec:e}){let t=e.title||L_(e.url),n=R_(e.url),r=`group flex items-center gap-2 overflow-hidden rounded-lg border border-border bg-elevated px-3 py-2 transition-colors hover:bg-elevated`,i=(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`shrink-0 text-muted group-hover:text-text`,children:I_(e)?(0,L.jsxDEV)(Ve,{size:16},void 0,!1,{fileName:J,lineNumber:107,columnNumber:26},this):(0,L.jsxDEV)(Dl,{size:16},void 0,!1,{fileName:J,lineNumber:107,columnNumber:47},this)},void 0,!1,{fileName:J,lineNumber:106,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:t},void 0,!1,{fileName:J,lineNumber:110,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.url},void 0,!1,{fileName:J,lineNumber:111,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:109,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:105,columnNumber:5},this);return n?(0,L.jsxDEV)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:r,children:i},void 0,!1,{fileName:J,lineNumber:117,columnNumber:5},this):(0,L.jsxDEV)(`div`,{className:r,children:i},void 0,!1,{fileName:J,lineNumber:121,columnNumber:5},this)}function V_({rec:e,onClose:t}){let{t:n}=a(),r=R_(e.url);return(0,L.jsxDEV)(b,{open:!0,onOpenChange:e=>!e&&t(),children:(0,L.jsxDEV)(Jn,{className:`max-w-2xl`,children:[(0,L.jsxDEV)(an,{className:`truncate`,children:e.title??e.url},void 0,!1,{fileName:J,lineNumber:132,columnNumber:9},this),I_(e)?(0,L.jsxDEV)(`iframe`,{title:e.title??`embed`,srcDoc:e.html,sandbox:`allow-scripts allow-presentation`,allowFullScreen:!0,className:`aspect-video w-full rounded-md border-0`},void 0,!1,{fileName:J,lineNumber:134,columnNumber:11},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[e.thumbnail&&(0,L.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`w-full rounded-md`},void 0,!1,{fileName:J,lineNumber:143,columnNumber:31},this),e.description&&(0,L.jsxDEV)(`p`,{className:`text-sm text-muted`,children:e.description},void 0,!1,{fileName:J,lineNumber:144,columnNumber:33},this)]},void 0,!0,{fileName:J,lineNumber:142,columnNumber:11},this),r&&(0,L.jsxDEV)(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`,children:(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,className:`w-full`,children:[(0,L.jsxDEV)(xl,{size:15},void 0,!1,{fileName:J,lineNumber:150,columnNumber:15},this),` `,n(`embed.open`)]},void 0,!0,{fileName:J,lineNumber:149,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:131,columnNumber:7},this)},void 0,!1,{fileName:J,lineNumber:130,columnNumber:5},this)}function H_({value:e,onChange:t,multiple:n}){let{t:r}=a(),i=F_(e),[o,s]=(0,I.useState)(null),[c,l]=(0,I.useState)(``),[u,d]=(0,I.useState)(!1),[f,p]=(0,I.useState)(!1),m=e=>t?.(e.length?e:``);async function h(){if(u||!c.trim())return;d(!0),p(!1);let e=await bt(c.trim());if(d(!1),!e)return p(!0);m([...i,e]),l(``)}return(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[t?(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-2 @md:grid-cols-2 @2xl:grid-cols-3`,children:i.map((e,t)=>(0,L.jsxDEV)(z_,{rec:e,onOpen:()=>s(e),onRemove:()=>m(i.filter((e,n)=>n!==t))},`${e.url}-${t}`,!1,{fileName:J,lineNumber:196,columnNumber:13},this))},void 0,!1,{fileName:J,lineNumber:194,columnNumber:9},this):i.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:i.map((e,t)=>(0,L.jsxDEV)(B_,{rec:e},`${e.url}-${t}`,!1,{fileName:J,lineNumber:209,columnNumber:15},this))},void 0,!1,{fileName:J,lineNumber:207,columnNumber:11},this),t&&(n||i.length===0)&&(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,L.jsxDEV)(P,{value:c,placeholder:r(`embed.pastePlaceholder`),onChange:e=>l(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),h())},void 0,!1,{fileName:J,lineNumber:217,columnNumber:13},this),(0,L.jsxDEV)(F,{type:`button`,variant:`outline`,disabled:u||!c.trim(),onClick:h,children:u?`…`:`+`},void 0,!1,{fileName:J,lineNumber:223,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:216,columnNumber:11},this),f&&(0,L.jsxDEV)(`span`,{className:`text-xs text-danger`,children:r(`embed.resolveFailed`)},void 0,!1,{fileName:J,lineNumber:227,columnNumber:19},this)]},void 0,!0,{fileName:J,lineNumber:215,columnNumber:9},this),o&&(0,L.jsxDEV)(V_,{rec:o,onClose:()=>s(null)},void 0,!1,{fileName:J,lineNumber:230,columnNumber:16},this)]},void 0,!0,{fileName:J,lineNumber:191,columnNumber:5},this)}function U_(e){let t=e.field.hints.multiple===!0;return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:e=>(0,L.jsxDEV)(H_,{value:e,multiple:t},void 0,!1,{fileName:J,lineNumber:253,columnNumber:20},this),edit:(e,n)=>(0,L.jsxDEV)(H_,{value:e,onChange:n,multiple:t},void 0,!1,{fileName:J,lineNumber:255,columnNumber:9},this)},void 0,!1,{fileName:J,lineNumber:243,columnNumber:5},this)}function W_(e){let t=F_(e.value);if(t.length===0)return null;let n=t[0];return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[I_(n)?(0,L.jsxDEV)(Ve,{size:12},void 0,!1,{fileName:J,lineNumber:267,columnNumber:26},this):(0,L.jsxDEV)(Dl,{size:12},void 0,!1,{fileName:J,lineNumber:267,columnNumber:47},this),(0,L.jsxDEV)(`span`,{className:`truncate`,children:n.title??L_(n.url)},void 0,!1,{fileName:J,lineNumber:268,columnNumber:7},this),t.length>1&&(0,L.jsxDEV)(`span`,{className:`text-muted`,children:[`+`,t.length-1]},void 0,!0,{fileName:J,lineNumber:269,columnNumber:27},this)]},void 0,!0,{fileName:J,lineNumber:266,columnNumber:5},this)}j({kinds:[`embed`],layout:`block`,Page:U_,Inline:W_,pickerSize:`large`,activate:`value`});var G_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/reminder.tsx`;function K_(){return new Date().toISOString().slice(0,10)}function q_(e,t){return Math.round((Date.parse(e)-Date.parse(t))/864e5)}function J_(e,t,n=K_()){if(!e)return`neutral`;let r=q_(e,n);return r<0?`overdue`:r===0?`today`:r<=t?`soon`:`neutral`}var Y_={days:`reminder.inDays`,weeks:`reminder.inWeeks`,months:`reminder.inMonths`};function X_(e){return e<14?{unit:`days`,count:e}:e<60?{unit:`weeks`,count:Math.round(e/7)}:{unit:`months`,count:Math.round(e/30)}}var Z_={overdue:`text-danger`,today:`text-accent font-medium`,soon:`text-warning`,neutral:``};function Q_({field:e,value:t}){let{t:n,i18n:r}=a(),i=String(t??``);if(!i)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:G_,lineNumber:80,columnNumber:18},this);let o=J_(i,e.hints.lead??30),s=q_(i,K_()),c=null;if(o===`today`)c=n(`reminder.today`);else if(o===`overdue`)c=n(`reminder.overdue`,{days:Math.abs(s)});else if(o===`soon`){let{unit:e,count:t}=X_(s);c=n(Y_[e],{count:t})}return(0,L.jsxDEV)(`span`,{className:Z_[o],children:[(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:at(i,r.language)},void 0,!1,{fileName:G_,lineNumber:99,columnNumber:7},this),c?(0,L.jsxDEV)(`span`,{className:`ml-2 text-xs`,children:c},void 0,!1,{fileName:G_,lineNumber:100,columnNumber:15},this):null]},void 0,!0,{fileName:G_,lineNumber:95,columnNumber:5},this)}function $_(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,L.jsxDEV)(Q_,{field:e.field,value:t},void 0,!1,{fileName:G_,lineNumber:117,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(P,{type:`date`,value:String(e??``),onChange:e=>t(e.target.value)},void 0,!1,{fileName:G_,lineNumber:119,columnNumber:9},this)},void 0,!1,{fileName:G_,lineNumber:107,columnNumber:5},this)}function ev({field:e,value:t}){return(0,L.jsxDEV)(Q_,{field:e,value:t},void 0,!1,{fileName:G_,lineNumber:130,columnNumber:10},this)}j({kinds:[`reminder`],Page:$_,Inline:ev,Picker:Qp,pickerCommits:!0});var tv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/age.tsx`;function nv(){return new Date().toISOString().slice(0,10)}function rv(e,t=nv()){if(!e)return null;let n=new Date(`${e}T00:00:00Z`),r=new Date(`${t}T00:00:00Z`);if(Number.isNaN(n.getTime())||Number.isNaN(r.getTime())||n.getTime()>r.getTime())return null;let i=r.getUTCFullYear()-n.getUTCFullYear(),a=r.getUTCMonth()-n.getUTCMonth(),o=r.getUTCDate()-n.getUTCDate();return(a<0||a===0&&o<0)&&i--,i}function iv({value:e}){let{t,i18n:n}=a(),r=String(e??``);if(!r)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:tv,lineNumber:46,columnNumber:18},this);let i=rv(r);return(0,L.jsxDEV)(`span`,{children:[(0,L.jsxDEV)(`span`,{className:`whitespace-nowrap`,children:at(r,n.language)},void 0,!1,{fileName:tv,lineNumber:53,columnNumber:7},this),i===null?null:(0,L.jsxDEV)(`span`,{className:`ml-2 text-xs text-muted`,children:`· ${t(`age.years`,{count:i})}`},void 0,!1,{fileName:tv,lineNumber:55,columnNumber:9},this)]},void 0,!0,{fileName:tv,lineNumber:49,columnNumber:5},this)}function av(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:e=>(0,L.jsxDEV)(iv,{value:e},void 0,!1,{fileName:tv,lineNumber:73,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(P,{type:`date`,value:String(e??``),onChange:e=>t(e.target.value)},void 0,!1,{fileName:tv,lineNumber:75,columnNumber:9},this)},void 0,!1,{fileName:tv,lineNumber:63,columnNumber:5},this)}function ov({value:e}){return(0,L.jsxDEV)(iv,{value:e},void 0,!1,{fileName:tv,lineNumber:86,columnNumber:10},this)}j({kinds:[`age`],Page:av,Inline:ov,Picker:Qp,pickerCommits:!0});var sv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/timetable.tsx`;function cv(e){let t=String(e??``).trim(),n=/^([01]\d|2[0-3]):([0-5]\d)/.exec(t);return n?`${n[1]}:${n[2]}`:null}function lv(e){return Number(e.slice(0,2))*60+Number(e.slice(3,5))}function uv(e){let t=[...new Set(e.map(cv).filter(e=>e!==null))].sort((e,t)=>lv(e)-lv(t)),n=[];for(let e of t){let t=e.slice(0,2),r=n[n.length-1];r&&r.hour===t?r.minutes.push(e.slice(3,5)):n.push({hour:t,minutes:[e.slice(3,5)]})}return n}function dv(e,t){let n=cv(t);return n?[...new Set(e.map(cv).filter(e=>e!==null))].sort((e,t)=>lv(e)-lv(t)).find(e=>lv(e)>=lv(n))??null:null}function fv(){let e=new Date;return`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`}function pv({value:e}){let{t}=a(),n=lt(e),r=uv(n);if(!r.length)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:sv,lineNumber:87,columnNumber:28},this);let i=`${r[0].hour}:${r[0].minutes[0]}`,o=r[r.length-1],s=`${o.hour}:${o.minutes[o.minutes.length-1]}`,c=r.reduce((e,t)=>e+t.minutes.length,0),l=dv(n,fv());return(0,L.jsxDEV)(`div`,{className:`min-w-0 overflow-hidden rounded-lg border border-border`,"data-testid":`timetable`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-1 border-b border-border bg-elevated px-3 py-2`,"data-testid":`timetable-header`,children:[(0,L.jsxDEV)(`span`,{className:`font-mono text-sm tabular-nums whitespace-nowrap`,children:[i,` – `,s]},void 0,!0,{fileName:sv,lineNumber:103,columnNumber:9},this),(0,L.jsxDEV)(_e,{children:t(`timetable.runs`,{count:c})},void 0,!1,{fileName:sv,lineNumber:106,columnNumber:9},this),l&&(0,L.jsxDEV)(`span`,{className:`ml-auto text-xs whitespace-nowrap text-accent`,"data-testid":`timetable-next`,children:[t(`timetable.next`),` `,(0,L.jsxDEV)(`span`,{className:`font-mono tabular-nums`,children:l},void 0,!1,{fileName:sv,lineNumber:109,columnNumber:35},this)]},void 0,!0,{fileName:sv,lineNumber:108,columnNumber:11},this)]},void 0,!0,{fileName:sv,lineNumber:99,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`columns-1 gap-x-6 px-3 py-1 [&>*]:break-inside-avoid @md:columns-2 @lg:columns-3`,children:r.map(e=>(0,L.jsxDEV)(`div`,{className:`flex items-baseline gap-3 border-b border-border py-1 last:border-b-0`,children:[(0,L.jsxDEV)(`span`,{className:`w-6 shrink-0 font-mono text-xs tabular-nums text-muted`,children:e.hour},void 0,!1,{fileName:sv,lineNumber:122,columnNumber:13},this),(0,L.jsxDEV)(`span`,{className:`flex min-w-0 flex-wrap gap-x-2 font-mono text-sm tabular-nums`,children:e.minutes.map(t=>(0,L.jsxDEV)(`span`,{className:l===`${e.hour}:${t}`?`font-semibold text-accent underline underline-offset-4`:``,children:t},t,!1,{fileName:sv,lineNumber:127,columnNumber:19},this))},void 0,!1,{fileName:sv,lineNumber:123,columnNumber:13},this)]},e.hour,!0,{fileName:sv,lineNumber:121,columnNumber:11},this))},void 0,!1,{fileName:sv,lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:sv,lineNumber:96,columnNumber:5},this)}function mv({value:e}){let t=uv(lt(e));if(!t.length)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:sv,lineNumber:142,columnNumber:28},this);let n=t[t.length-1];return(0,L.jsxDEV)(`span`,{className:`truncate font-mono text-sm tabular-nums`,children:[t[0].hour,`:`,t[0].minutes[0],` – `,n.hour,`:`,n.minutes[n.minutes.length-1]]},void 0,!0,{fileName:sv,lineNumber:145,columnNumber:5},this)}function hv(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:e=>(0,L.jsxDEV)(pv,{value:e},void 0,!1,{fileName:sv,lineNumber:163,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(nm,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:sv,lineNumber:167,columnNumber:9},this)},void 0,!1,{fileName:sv,lineNumber:153,columnNumber:5},this)}j({kinds:[`timetable`],layout:`block`,Page:hv,Inline:mv});var gv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/weight.tsx`;function _v(e){if(e==null||e===``||Number.isNaN(Number(e)))return null;let t=Number(e);return t<1e3?{n:t,unit:`g`}:{n:Number((t/1e3).toFixed(2)),unit:`kg`}}function vv({value:e}){let{t}=a(),n=_v(e);return n?(0,L.jsxDEV)(`span`,{children:[n.n,` `,t(`core.units.${n.unit}`)]},void 0,!0,{fileName:gv,lineNumber:25,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:gv,lineNumber:20,columnNumber:18},this)}function yv({unit:e,onPick:t,label:n}){let{t:r}=a();return(0,L.jsxDEV)(`div`,{role:`radiogroup`,"aria-label":n,className:`flex shrink-0 rounded-lg border border-border p-0.5`,children:[`g`,`kg`].map(n=>(0,L.jsxDEV)(`button`,{type:`button`,role:`radio`,"aria-checked":n===e,onClick:()=>t(n),className:`rounded-md px-2 py-1 text-xs transition-colors ${n===e?`bg-bg font-medium text-accent`:`text-muted hover:text-text`}`,children:r(`core.units.${n}`)},n,!1,{fileName:gv,lineNumber:43,columnNumber:9},this))},void 0,!1,{fileName:gv,lineNumber:41,columnNumber:5},this)}function bv({value:e,onChange:t,label:n}){let r=e===``?``:Number(e),[i,a]=(0,I.useState)(r!==``&&Number(r)>=1e3?`kg`:`g`),o=r===``?``:i===`kg`?Number(r)/1e3:r,s=e=>Math.round(i===`kg`?e*1e3:e);return(0,L.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,L.jsxDEV)(P,{type:`number`,className:`flex-1 min-w-0`,min:0,value:o,onChange:e=>t(e.target.value===``?``:String(s(Number(e.target.value))))},void 0,!1,{fileName:gv,lineNumber:69,columnNumber:7},this),(0,L.jsxDEV)(yv,{unit:i,onPick:a,label:n},void 0,!1,{fileName:gv,lineNumber:76,columnNumber:7},this)]},void 0,!0,{fileName:gv,lineNumber:68,columnNumber:5},this)}function xv(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:e=>(0,L.jsxDEV)(vv,{value:e},void 0,!1,{fileName:gv,lineNumber:93,columnNumber:20},this),edit:(t,n)=>(0,L.jsxDEV)(bv,{value:String(t??``),onChange:n,label:e.label??``},void 0,!1,{fileName:gv,lineNumber:95,columnNumber:9},this)},void 0,!1,{fileName:gv,lineNumber:83,columnNumber:5},this)}function Sv({value:e}){return(0,L.jsxDEV)(vv,{value:e},void 0,!1,{fileName:gv,lineNumber:102,columnNumber:10},this)}j({kinds:[`weight`],Page:xv,Inline:Sv});var Cv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/dimensions.tsx`;function wv(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function Tv(e){let t=wv(e);if(t.w==null||t.h==null||t.d==null)return``;let n=e=>Number((e/10).toFixed(1));return`${n(t.w)}×${n(t.h)}×${n(t.d)} см`}function Ev({value:e,onChange:t}){let n=wv(e),r=(e,r)=>{let i={...n,[e]:r===``?void 0:Math.round(Number(r))};t(i.w==null&&i.h==null&&i.d==null?``:i)},i=(e,t)=>(0,L.jsxDEV)(P,{type:`number`,min:0,className:`w-20 min-w-0`,placeholder:t,value:n[e]??``,onChange:t=>r(e,t.target.value)},void 0,!1,{fileName:Cv,lineNumber:33,columnNumber:5},this);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-1 min-w-0 ${In}`,children:[i(`w`,`Ш`),(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:Cv,lineNumber:45,columnNumber:7},this),i(`h`,`В`),(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:Cv,lineNumber:47,columnNumber:7},this),i(`d`,`Г`),(0,L.jsxDEV)(`span`,{className:`ml-1 text-xs text-muted`,children:`мм`},void 0,!1,{fileName:Cv,lineNumber:49,columnNumber:7},this)]},void 0,!0,{fileName:Cv,lineNumber:43,columnNumber:5},this)}function Dv({value:e}){let t=Tv(e);return t?(0,L.jsxDEV)(`span`,{children:t},void 0,!1,{fileName:Cv,lineNumber:59,columnNumber:14},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Cv,lineNumber:59,columnNumber:33},this)}function Ov(e){return(0,L.jsxDEV)(A,{field:e.field,value:e.value,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:e=>(0,L.jsxDEV)(Dv,{value:e},void 0,!1,{fileName:Cv,lineNumber:73,columnNumber:20},this),edit:(e,t)=>(0,L.jsxDEV)(Ev,{value:e,onChange:t},void 0,!1,{fileName:Cv,lineNumber:74,columnNumber:34},this)},void 0,!1,{fileName:Cv,lineNumber:63,columnNumber:5},this)}function kv({value:e}){return(0,L.jsxDEV)(Dv,{value:e},void 0,!1,{fileName:Cv,lineNumber:79,columnNumber:10},this)}j({kinds:[`dimensions`],voice:`data`,Page:Ov,Inline:kv});var Av=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/core/backrefs.tsx`,jv=8;function Mv({el:e,recordCtx:t}){let{t:n}=a(),r=e.from,i=t.recordId,[o,s]=(0,I.useState)(null);if((0,I.useEffect)(()=>{if(!i){s([]);return}let e=!0;return Te(r.library,r.shelf,{[r.field]:i}).then(t=>{e&&s(t)}),()=>{e=!1}},[i,r.library,r.shelf,r.field]),o===null)return(0,L.jsxDEV)(ve,{},void 0,!1,{fileName:Av,lineNumber:67,columnNumber:29},this);if(o.length===0)return(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Av,lineNumber:71,columnNumber:33},this);let c=x(r.library,r.shelf),l=o.slice(0,jv),u=o.length-l.length;return(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-1.5`,children:[l.map(e=>{let t=e.id;return(0,L.jsxDEV)(h,{to:`/${r.library}/${r.shelf}/${t}`,className:`inline-flex items-center gap-1.5 min-h-9 text-accent border border-transparent rounded-lg px-3 text-sm hover:border-border transition-colors`,children:c?(0,L.jsxDEV)(hn,{shelf:c,row:e,size:`sm`,height:28},void 0,!1,{fileName:Av,lineNumber:87,columnNumber:18},this):mr(String(t))},t,!1,{fileName:Av,lineNumber:82,columnNumber:11},this)}),u>0&&(0,L.jsxDEV)(h,{to:`/${r.library}/${r.shelf}?${encodeURIComponent(r.field)}=${encodeURIComponent(i)}`,className:`inline-flex items-center min-h-9 px-3 text-sm text-muted hover:text-accent transition-colors`,children:n(`core.backrefs.more`,{count:u})},void 0,!1,{fileName:Av,lineNumber:92,columnNumber:9},this)]},void 0,!0,{fileName:Av,lineNumber:78,columnNumber:5},this)}j({kinds:[`backrefs`],layout:`block`,Page:Mv});var Nv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/block-shell.tsx`;function Pv(e,t){return t===void 0?void 0:e.find(e=>e.name===t)}function Fv(e,t){return t.map(t=>Pv(e,t)).filter(e=>e!==void 0)}function Iv({label:e,icon:t,children:n}){let{t:r}=a();return e?(0,L.jsxDEV)(Je,{label:r(e),icon:t,children:n},void 0,!1,{fileName:Nv,lineNumber:63,columnNumber:5},this):(0,L.jsxDEV)(L.Fragment,{children:n},void 0,!1,{fileName:Nv,lineNumber:61,columnNumber:22},this)}function Lv(e,t){let n=e.field.label??(Cr(e.field)?e.field.type.label:void 0);return n?t(n):void 0}function Rv(e){return Cr(e.field)?Pt(e.field.type):``}var zv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/grid.tsx`,Bv={2:`grid-cols-1 @sm:grid-cols-2`,3:`grid-cols-1 @sm:grid-cols-2 @3xl:grid-cols-3`,4:`grid-cols-1 @sm:grid-cols-2 @3xl:grid-cols-4`};function Vv({el:e}){let t=e,n=t.view?.columns??3,r=M(),i=(0,L.jsxDEV)(`div`,{className:`grid gap-3 ${Bv[n]??Bv[3]}`,children:r.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`grid-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:zv,lineNumber:32,columnNumber:13},this)},e.name,!1,{fileName:zv,lineNumber:31,columnNumber:11},this))},void 0,!1,{fileName:zv,lineNumber:27,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:i},void 0,!1,{fileName:zv,lineNumber:39,columnNumber:5},this)}j({kinds:[`grid`],layout:`block`,editor:`own`,Page:Vv});var Hv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/bento.tsx`,Uv=`rounded-lg border border-border bg-surface p-3 min-w-0`,Wv={"2x1":`@sm:col-span-2`,"1x2":`@sm:row-span-2`,"2x2":`@sm:col-span-2 @sm:row-span-2`,wide:`col-span-full`};function Gv({el:e}){let t=e,n=t.view?.spans??{},r=(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 @sm:grid-cols-3 auto-rows-auto gap-3`,children:M().map((e,t)=>{if(e.handle.hidden)return null;let r=n[e.name];return(0,L.jsxDEV)(`div`,{className:`${Uv} ${r?Wv[r]??``:``}`,"data-testid":`bento-tile-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:Hv,lineNumber:44,columnNumber:13},this)},e.name,!1,{fileName:Hv,lineNumber:39,columnNumber:11},this)})},void 0,!1,{fileName:Hv,lineNumber:30,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:Hv,lineNumber:51,columnNumber:5},this)}j({kinds:[`bento`],layout:`block`,editor:`own`,Page:Gv});var Kv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/split.tsx`;j({kinds:[`split`],layout:`block`,editor:`own`,Page:({el:e})=>{let t=e,[n,r]=t.view?.ratio??[1,1],i=t.view?.first??[],a=t.view?.second??[];return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:[grid-template-columns:var(--split)]`,style:{"--split":`${n}fr ${r}fr`},children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,children:i.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:Kv,lineNumber:29,columnNumber:13},void 0))},void 0,!1,{fileName:Kv,lineNumber:27,columnNumber:9},void 0),(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,children:a.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:Kv,lineNumber:34,columnNumber:13},void 0))},void 0,!1,{fileName:Kv,lineNumber:32,columnNumber:9},void 0)]},void 0,!0,{fileName:Kv,lineNumber:23,columnNumber:7},void 0)}});var qv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/aside.tsx`;j({kinds:[`aside`],layout:`block`,editor:`own`,Page:({el:e})=>{let t=e,n=t.view?.main??[],r=t.view?.aside??[];return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:grid-cols-[minmax(0,1fr)_14rem]`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,children:n.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:qv,lineNumber:25,columnNumber:13},void 0))},void 0,!1,{fileName:qv,lineNumber:23,columnNumber:9},void 0),(0,L.jsxDEV)(`aside`,{className:`min-w-0 space-y-2 text-sm text-muted @sm:border-l @sm:border-border @sm:pl-4`,children:r.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:qv,lineNumber:30,columnNumber:13},void 0))},void 0,!1,{fileName:qv,lineNumber:28,columnNumber:9},void 0)]},void 0,!0,{fileName:qv,lineNumber:22,columnNumber:7},void 0)}});var Jv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/spread.tsx`;function Yv({el:e}){let t=e,n=t.view?.visual,r=t.view?.quote,i=t.view?.facts??[],a=M(),o=Pv(a,r),s=Fv(a,i);return(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:grid-cols-[minmax(0,1.4fr)_minmax(0,1fr)]`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:Jv,lineNumber:25,columnNumber:9},this)},void 0,!1,{fileName:Jv,lineNumber:24,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col gap-3`,children:[o&&!o.handle.hidden&&(0,L.jsxDEV)(`blockquote`,{className:`border-l-2 border-accent pl-3 italic text-muted`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Jv,lineNumber:30,columnNumber:13},this)},void 0,!1,{fileName:Jv,lineNumber:29,columnNumber:11},this),s.map(e=>(0,L.jsxDEV)(N,{name:e.name},e.name,!1,{fileName:Jv,lineNumber:34,columnNumber:11},this))]},void 0,!0,{fileName:Jv,lineNumber:27,columnNumber:7},this)]},void 0,!0,{fileName:Jv,lineNumber:23,columnNumber:5},this)}j({kinds:[`spread`],layout:`block`,editor:`own`,Page:Yv});var Xv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/tabs.tsx`;function Zv(){return(0,L.jsxDEV)(L.Fragment,{children:M().map(e=>(0,L.jsxDEV)(N,{name:e.name},e.name,!1,{fileName:Xv,lineNumber:31,columnNumber:9},this))},void 0,!1,{fileName:Xv,lineNumber:29,columnNumber:5},this)}function Qv({el:e}){let t=e,{t:n}=a(),r=t.view?.tabs??[],[i,o]=(0,I.useState)(0);return(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,L.jsxDEV)(`div`,{role:`tablist`,className:`flex flex-nowrap gap-1 overflow-x-auto border-b border-border`,children:r.map((e,t)=>(0,L.jsxDEV)(`button`,{type:`button`,role:`tab`,"aria-selected":t===i,onClick:()=>o(t),className:`flex shrink-0 items-center gap-1.5 whitespace-nowrap border-b-2 px-3 py-2 text-sm font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${t===i?`border-accent text-accent`:`border-transparent text-muted`}`,children:[e.icon&&(0,L.jsxDEV)(rr,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:Xv,lineNumber:57,columnNumber:26},this),n(e.label)]},e.name,!0,{fileName:Xv,lineNumber:47,columnNumber:11},this))},void 0,!1,{fileName:Xv,lineNumber:45,columnNumber:7},this),r.map((e,t)=>(0,L.jsxDEV)(`div`,{role:`tabpanel`,hidden:t!==i,className:`min-w-0 space-y-3 pt-3`,children:(0,L.jsxDEV)(de,{name:e.name,children:(0,L.jsxDEV)(Zv,{},void 0,!1,{fileName:Xv,lineNumber:65,columnNumber:13},this)},void 0,!1,{fileName:Xv,lineNumber:64,columnNumber:11},this)},e.name,!1,{fileName:Xv,lineNumber:63,columnNumber:9},this))]},void 0,!0,{fileName:Xv,lineNumber:44,columnNumber:5},this)}j({kinds:[`tabs`],layout:`block`,editor:`own`,Page:Qv});var $v=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/accordion.tsx`;function ey(){return(0,L.jsxDEV)(L.Fragment,{children:M().map(e=>(0,L.jsxDEV)(N,{name:e.name},e.name,!1,{fileName:$v,lineNumber:28,columnNumber:9},this))},void 0,!1,{fileName:$v,lineNumber:26,columnNumber:5},this)}function ty({el:e}){let t=e,{t:n}=a();return(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-col gap-2`,children:(t.view?.sections??[]).map(e=>(0,L.jsxDEV)(`details`,{className:`rounded-lg border border-border`,open:e.open,children:[(0,L.jsxDEV)(`summary`,{className:`flex cursor-pointer items-center gap-1.5 px-3 py-2 font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent`,children:[e.icon&&(0,L.jsxDEV)(rr,{name:e.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:$v,lineNumber:44,columnNumber:30},this),n(e.label)]},void 0,!0,{fileName:$v,lineNumber:43,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`space-y-3 px-3 pb-3`,children:(0,L.jsxDEV)(de,{name:e.name,children:(0,L.jsxDEV)(ey,{},void 0,!1,{fileName:$v,lineNumber:49,columnNumber:15},this)},void 0,!1,{fileName:$v,lineNumber:48,columnNumber:13},this)},void 0,!1,{fileName:$v,lineNumber:47,columnNumber:11},this)]},e.name,!0,{fileName:$v,lineNumber:42,columnNumber:9},this))},void 0,!1,{fileName:$v,lineNumber:40,columnNumber:5},this)}j({kinds:[`accordion`],layout:`block`,editor:`own`,Page:ty});var ny=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/ledger.tsx`;function ry({el:e}){let t=e,{t:n}=a(),r=(0,L.jsxDEV)(`div`,{className:`flex flex-col divide-y divide-border`,"data-testid":`ledger`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 py-2`,"data-testid":`ledger-row-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline gap-2`,"data-testid":`ledger-leader`,children:[(0,L.jsxDEV)(`span`,{className:`shrink-0`,children:Lv(e,n)},void 0,!1,{fileName:ny,lineNumber:55,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 border-b border-dotted border-border`,"data-testid":`ledger-dots`},void 0,!1,{fileName:ny,lineNumber:56,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right font-medium ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:ny,lineNumber:57,columnNumber:19},this)]},void 0,!0,{fileName:ny,lineNumber:54,columnNumber:17},this)},void 0,!1,{fileName:ny,lineNumber:50,columnNumber:13},this)},e.name,!1,{fileName:ny,lineNumber:49,columnNumber:11},this))},void 0,!1,{fileName:ny,lineNumber:42,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:ny,lineNumber:69,columnNumber:5},this)}j({kinds:[`ledger`],layout:`block`,editor:`own`,Page:ry,childWidth:`w-full`});var iy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/stats.tsx`;function ay({el:e}){let t=e,{t:n}=a(),r=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap gap-x-8 gap-y-4 @sm:flex-nowrap @sm:divide-x @sm:divide-border py-1`,"data-testid":`stats`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 @sm:px-5 @sm:first:pl-0`,"data-testid":`stats-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex min-w-0 flex-col items-start gap-0.5 py-1`,"data-testid":`stats-figure`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0 text-2xl font-semibold text-text ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:iy,lineNumber:49,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:ft,children:Lv(e,n)},void 0,!1,{fileName:iy,lineNumber:52,columnNumber:19},this)]},void 0,!0,{fileName:iy,lineNumber:48,columnNumber:17},this)},void 0,!1,{fileName:iy,lineNumber:44,columnNumber:13},this)},e.name,!1,{fileName:iy,lineNumber:43,columnNumber:11},this))},void 0,!1,{fileName:iy,lineNumber:36,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:iy,lineNumber:62,columnNumber:5},this)}j({kinds:[`stats`],layout:`block`,editor:`own`,Page:ay,childWidth:`w-full`});var oy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/facets.tsx`;function sy({el:e}){let t=e,{t:n}=a(),r=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,"data-testid":`facets`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 rounded-full border border-border px-3 py-1 text-sm`,"data-testid":`facets-pill-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,"data-testid":`facets-pair`,children:[(0,L.jsxDEV)(`span`,{className:`shrink-0`,children:Lv(e,n)},void 0,!1,{fileName:oy,lineNumber:53,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 font-semibold text-text`,children:t},void 0,!1,{fileName:oy,lineNumber:54,columnNumber:19},this)]},void 0,!0,{fileName:oy,lineNumber:52,columnNumber:17},this)},void 0,!1,{fileName:oy,lineNumber:48,columnNumber:13},this)},e.name,!1,{fileName:oy,lineNumber:43,columnNumber:11},this))},void 0,!1,{fileName:oy,lineNumber:39,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:oy,lineNumber:64,columnNumber:5},this)}j({kinds:[`facets`],layout:`block`,editor:`own`,Page:sy,childWidth:`w-fit`});var cy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/prose.tsx`,ly=`first-letter:float-left first-letter:mr-2 first-letter:text-5xl first-letter:font-bold first-letter:leading-[0.8]`;function uy({el:e}){let t=e,n=t.view?.dropCap,r=(0,L.jsxDEV)(`div`,{className:`max-w-[65ch] space-y-3 font-serif text-base leading-relaxed`,"data-testid":`prose`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 ${e.name===n?ly:``}`,"data-testid":`prose-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:cy,lineNumber:35,columnNumber:13},this)},e.name,!1,{fileName:cy,lineNumber:30,columnNumber:11},this))},void 0,!1,{fileName:cy,lineNumber:26,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:cy,lineNumber:42,columnNumber:5},this)}j({kinds:[`prose`],layout:`block`,editor:`own`,Page:uy});var dy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/epigraph.tsx`;function fy({el:e}){let t=e,n=t.view?.source,r=t.view?.attribution,i=Pv(M(),r);return(0,L.jsxDEV)(`blockquote`,{className:`border-l-2 border-accent pl-4`,"data-testid":`epigraph`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-lg leading-snug italic`,"data-testid":`epigraph-source`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:dy,lineNumber:22,columnNumber:9},this)},void 0,!1,{fileName:dy,lineNumber:21,columnNumber:7},this),i&&!i.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`mt-2 min-w-0 text-sm text-muted before:mr-1 before:content-['—']`,"data-testid":`epigraph-attribution`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:dy,lineNumber:29,columnNumber:11},this)},void 0,!1,{fileName:dy,lineNumber:25,columnNumber:9},this)]},void 0,!0,{fileName:dy,lineNumber:20,columnNumber:5},this)}j({kinds:[`epigraph`],layout:`block`,editor:`own`,Page:fy});var py=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/terminal.tsx`;function my({el:e}){let t=e,{t:n}=a(),r=t.view?.caption,i=M(),o=(0,L.jsxDEV)(`div`,{className:`overflow-hidden rounded-lg border border-border bg-surface`,"data-testid":`terminal`,children:[r&&(0,L.jsxDEV)(`div`,{className:`border-b border-border bg-elevated px-3 py-1.5 text-xs font-medium text-muted`,"data-testid":`terminal-caption`,children:n(r)},void 0,!1,{fileName:py,lineNumber:29,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`overflow-x-auto p-3 font-mono text-sm`,"data-testid":`terminal-body`,children:i.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`terminal-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:py,lineNumber:41,columnNumber:15},this)},e.name,!1,{fileName:py,lineNumber:40,columnNumber:13},this))},void 0,!1,{fileName:py,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:py,lineNumber:27,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:o},void 0,!1,{fileName:py,lineNumber:49,columnNumber:5},this)}j({kinds:[`terminal`],layout:`block`,editor:`own`,Page:my});var hy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/plaque.tsx`;function gy({el:e}){let t=e,n=t.view?.title,r=t.view?.subtitle??[],i=M(),a=Pv(i,n),o=Fv(i,r),s=(0,L.jsxDEV)(`div`,{className:`flex flex-col items-center gap-3 py-4 text-center`,"data-testid":`plaque`,children:[a&&!a.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 w-full border-b border-border pb-3`,"data-testid":`plaque-item-0`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>(0,L.jsxDEV)(`div`,{className:`text-base font-semibold text-text`,"data-testid":`plaque-title`,children:t},void 0,!1,{fileName:hy,lineNumber:36,columnNumber:15},this)},void 0,!1,{fileName:hy,lineNumber:33,columnNumber:11},this)},void 0,!1,{fileName:hy,lineNumber:32,columnNumber:9},this),o.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`plaque-item-${t+1}`,children:(0,L.jsxDEV)(N,{name:e.name,render:(e,t)=>(0,L.jsxDEV)(`div`,{className:ft,"data-testid":`plaque-subtitle`,children:t},void 0,!1,{fileName:hy,lineNumber:49,columnNumber:17},this)},void 0,!1,{fileName:hy,lineNumber:46,columnNumber:13},this)},e.name,!1,{fileName:hy,lineNumber:45,columnNumber:11},this))]},void 0,!0,{fileName:hy,lineNumber:30,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:s},void 0,!1,{fileName:hy,lineNumber:60,columnNumber:5},this)}j({kinds:[`plaque`],layout:`block`,editor:`own`,Page:gy});var _y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/figure.tsx`;function vy({el:e}){let t=e,n=t.view?.image,r=t.view?.caption,i=Pv(M(),r);return(0,L.jsxDEV)(`figure`,{className:`min-w-0`,"data-testid":`figure`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`figure-image`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:_y,lineNumber:22,columnNumber:9},this)},void 0,!1,{fileName:_y,lineNumber:21,columnNumber:7},this),i&&!i.handle.hidden&&(0,L.jsxDEV)(`figcaption`,{className:`mt-2 min-w-0 text-sm text-muted italic`,"data-testid":`figure-caption`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:_y,lineNumber:26,columnNumber:11},this)},void 0,!1,{fileName:_y,lineNumber:25,columnNumber:9},this)]},void 0,!0,{fileName:_y,lineNumber:20,columnNumber:5},this)}j({kinds:[`figure`],layout:`block`,editor:`own`,Page:vy});var yy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/compare.tsx`;function by({el:e}){let t=e,{t:n}=a(),r=t.view?.left??[],i=t.view?.right??[],o=t.view?.leftLabel,s=t.view?.rightLabel,c=(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 @sm:grid-cols-2`,"data-testid":`compare`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3`,"data-testid":`compare-left`,children:[o&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(o)},void 0,!1,{fileName:yy,lineNumber:30,columnNumber:23},this),r.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:yy,lineNumber:32,columnNumber:11},this))]},void 0,!0,{fileName:yy,lineNumber:29,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 space-y-3 @sm:border-l @sm:border-border @sm:pl-4`,"data-testid":`compare-right`,children:[s&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(s)},void 0,!1,{fileName:yy,lineNumber:36,columnNumber:24},this),i.map(e=>(0,L.jsxDEV)(N,{name:e},e,!1,{fileName:yy,lineNumber:38,columnNumber:11},this))]},void 0,!0,{fileName:yy,lineNumber:35,columnNumber:7},this)]},void 0,!0,{fileName:yy,lineNumber:28,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:c},void 0,!1,{fileName:yy,lineNumber:44,columnNumber:5},this)}j({kinds:[`compare`],layout:`block`,editor:`own`,Page:by});var xy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/callout.tsx`,Sy={note:`border-l-4 border-accent bg-elevated`,warn:`border-l-4 border-warning bg-elevated font-medium`,danger:`border-l-[6px] border-danger bg-elevated font-semibold`};function Cy({el:e}){let t=e,n=t.view?.tone??`note`,r=M(),i=(0,L.jsxDEV)(`div`,{className:`space-y-2 rounded-lg px-4 py-3 ${Sy[n]??Sy.note}`,"data-testid":`callout`,"data-tone":n,children:r.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`callout-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:xy,lineNumber:35,columnNumber:13},this)},e.name,!1,{fileName:xy,lineNumber:34,columnNumber:11},this))},void 0,!1,{fileName:xy,lineNumber:30,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:i},void 0,!1,{fileName:xy,lineNumber:42,columnNumber:5},this)}j({kinds:[`callout`],layout:`block`,editor:`own`,Page:Cy});var wy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/masthead.tsx`;function Ty({el:e}){let t=e,n=t.view?.title,r=t.view?.overline,i=t.view?.meta??[],a=M(),o=Pv(a,r),s=Fv(a,i).filter(e=>!e.handle.hidden);return(0,L.jsxDEV)(`div`,{className:`space-y-1`,"data-testid":`masthead`,children:[o&&!o.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`masthead-overline`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:wy,lineNumber:29,columnNumber:11},this)},void 0,!1,{fileName:wy,lineNumber:28,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 text-2xl leading-tight font-bold`,"data-testid":`masthead-title`,children:(0,L.jsxDEV)(N,{name:n},void 0,!1,{fileName:wy,lineNumber:33,columnNumber:9},this)},void 0,!1,{fileName:wy,lineNumber:32,columnNumber:7},this),s.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-1 border-t border-b border-border py-1.5 text-sm text-muted`,"data-testid":`masthead-meta`,children:s.map((e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center ${t>0?`before:mr-2 before:text-muted before:content-['·']`:``}`,"data-testid":`masthead-meta-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:wy,lineNumber:46,columnNumber:15},this)},e.name,!1,{fileName:wy,lineNumber:41,columnNumber:13},this))},void 0,!1,{fileName:wy,lineNumber:36,columnNumber:9},this)]},void 0,!0,{fileName:wy,lineNumber:26,columnNumber:5},this)}j({kinds:[`masthead`],layout:`block`,editor:`own`,Page:Ty});var Ey=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/score.tsx`;function Dy({el:e}){let{t}=a(),n=e,r=n.view?.source,i=Array.isArray(r)?r:r===void 0?[]:[r],o=n.view?.verdict,s=n.view?.max,c=M(),l=Pv(c,o),u=Fv(c,i).filter(e=>!e.handle.hidden),d=u.length>1,f=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-3`,"data-testid":`score`,children:[u.map(e=>(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,L.jsxDEV)(N,{name:e.name,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-0.5 text-3xl font-bold ${Rv(e)}`.trim(),"data-testid":`score-figure`,children:[t,s!=null&&(0,L.jsxDEV)(`span`,{className:`text-lg font-normal text-muted`,children:[`/`,s]},void 0,!0,{fileName:Ey,lineNumber:55,columnNumber:33},this)]},void 0,!0,{fileName:Ey,lineNumber:47,columnNumber:15},this)},void 0,!1,{fileName:Ey,lineNumber:44,columnNumber:11},this),d&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`score-source-label`,children:t(e.handle.field.label??e.name)},void 0,!1,{fileName:Ey,lineNumber:63,columnNumber:13},this)]},e.name,!0,{fileName:Ey,lineNumber:43,columnNumber:9},this)),l&&!l.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-muted`,"data-testid":`score-verdict`,children:(0,L.jsxDEV)(N,{name:o},void 0,!1,{fileName:Ey,lineNumber:71,columnNumber:11},this)},void 0,!1,{fileName:Ey,lineNumber:70,columnNumber:9},this)]},void 0,!0,{fileName:Ey,lineNumber:41,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:n.label,icon:n.icon,children:f},void 0,!1,{fileName:Ey,lineNumber:77,columnNumber:5},this)}j({kinds:[`score`],layout:`block`,editor:`own`,Page:Dy});var Oy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/status.tsx`;function ky({el:e}){let t=e,n=t.view?.source,r=t.view?.since,i=Pv(M(),r),a=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-3`,"data-testid":`status`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>{let{chipClassName:n,chipStyle:r}=Ot(e.field.type);return(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-2 rounded-lg border px-3 py-1.5 font-medium ${n?n(e.value):``}`,style:r?r(e.value):void 0,"data-testid":`status-banner`,children:t},void 0,!1,{fileName:Oy,lineNumber:43,columnNumber:15},this)}},void 0,!1,{fileName:Oy,lineNumber:38,columnNumber:9},this)},void 0,!1,{fileName:Oy,lineNumber:37,columnNumber:7},this),i&&!i.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted`,"data-testid":`status-since`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Oy,lineNumber:56,columnNumber:11},this)},void 0,!1,{fileName:Oy,lineNumber:55,columnNumber:9},this)]},void 0,!0,{fileName:Oy,lineNumber:36,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:a},void 0,!1,{fileName:Oy,lineNumber:62,columnNumber:5},this)}j({kinds:[`status`],layout:`block`,editor:`own`,Page:ky});var Ay=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/meter.tsx`;function jy(e,t,n){return!t||n===void 0||!Number.isFinite(e)?`neutral`:t===`ceiling`?e>n?`danger`:`success`:e<n?`danger`:`success`}var My={danger:`bg-danger`,success:`bg-success`,neutral:`bg-accent`},Ny={danger:`text-danger`,success:`text-success`,neutral:``};function Py(e,t,n,r){if(!n)return;if(n===`ceiling`){let t=e?.max==null?r:Number(e.max);return Number.isFinite(t)?t:void 0}let i=e?.min==null?t.hints.min:e.min,a=i==null?r:Number(i);return Number.isFinite(a)?a:void 0}function Fy(e,t,n){let r=Number(e?.min??t.hints.min??0),i=e?.max??t.hints.max??(Number.isFinite(n)?n:void 0),a=i==null?r+1:Number(i);return{min:Number.isFinite(r)?r:0,max:Number.isFinite(a)&&a>r?a:r+1}}function Iy(e){if(e==null||e===``)return NaN;if(typeof e==`object`&&`value`in e){let t=e.value;return t==null||t===``?NaN:Number(t)}return Number(e)}function Ly({el:e}){let t=e,n=t.view?.source,r=t.view?.of,i=t.view,a=i?.direction,o=M(),s=Pv(o,r),c=Pv(o,n),l=s?Iy(s.handle.value):void 0,u=a===`ceiling`?l:void 0,{min:d,max:f}=c?Fy(i,c.handle.field.type,u):{min:0,max:1},p=c?Py(i,c.handle.field.type,a,l):void 0,m=c?jy(Iy(c.handle.value),a,p):`neutral`,h=m===`danger`?jt:m===`success`?li:null,g=(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-end gap-3`,"data-testid":`meter`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>{let n=Iy(e.value);if(!Number.isFinite(n))return t;let r=Math.max(0,Math.min(1,(n-d)/(f-d)));return(0,L.jsxDEV)(`span`,{className:`flex min-w-0 flex-col gap-1`,"data-testid":`meter-figure`,"data-tone":m,children:[(0,L.jsxDEV)(`span`,{className:`inline-flex items-center gap-1.5 text-2xl font-semibold ${Ny[m]} ${Rv(e)}`.trim(),children:[h&&(0,L.jsxDEV)(h,{size:18,className:`shrink-0`,"aria-hidden":`true`},void 0,!1,{fileName:Ay,lineNumber:202,columnNumber:29},this),t]},void 0,!0,{fileName:Ay,lineNumber:199,columnNumber:17},this),(0,L.jsxDEV)(`span`,{role:`progressbar`,"aria-valuemin":d,"aria-valuemax":f,"aria-valuenow":Number.isFinite(n)?Math.max(d,Math.min(f,n)):d,className:`h-2 w-full overflow-hidden rounded-full bg-border`,"data-testid":`meter-bar`,children:(0,L.jsxDEV)(`span`,{className:`block h-full rounded-full transition-[width] ${My[m]}`,style:{width:`${r*100}%`},"data-testid":`meter-fill`},void 0,!1,{fileName:Ay,lineNumber:213,columnNumber:19},this)},void 0,!1,{fileName:Ay,lineNumber:205,columnNumber:17},this)]},void 0,!0,{fileName:Ay,lineNumber:198,columnNumber:15},this)}},void 0,!1,{fileName:Ay,lineNumber:187,columnNumber:9},this)},void 0,!1,{fileName:Ay,lineNumber:186,columnNumber:7},this),s&&!s.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted ${Ny[m]}`.trim(),"data-testid":`meter-of`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Ay,lineNumber:226,columnNumber:11},this)},void 0,!1,{fileName:Ay,lineNumber:225,columnNumber:9},this)]},void 0,!0,{fileName:Ay,lineNumber:185,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:g},void 0,!1,{fileName:Ay,lineNumber:232,columnNumber:5},this)}j({kinds:[`meter`],layout:`block`,editor:`own`,Page:Ly});var Ry=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/balance.tsx`;function zy({el:e}){let t=e,n=t.view?.source,{t:r}=a(),i=t.view?.caption,o=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,"data-testid":`balance`,children:[(0,L.jsxDEV)(N,{name:n,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-3xl font-semibold ${Rv(e)}`.trim(),"data-testid":`balance-figure`,children:t},void 0,!1,{fileName:Ry,lineNumber:36,columnNumber:11},this)},void 0,!1,{fileName:Ry,lineNumber:33,columnNumber:7},this),i&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`balance-caption`,children:r(i)},void 0,!1,{fileName:Ry,lineNumber:42,columnNumber:9},this)]},void 0,!0,{fileName:Ry,lineNumber:32,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:o},void 0,!1,{fileName:Ry,lineNumber:49,columnNumber:5},this)}j({kinds:[`balance`],layout:`block`,editor:`own`,Page:zy});var By=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/countdown.tsx`,Vy=864e5;function Hy(e,t){let n=typeof e==`string`?e.slice(0,10):``;if(!/^\d{4}-\d{2}-\d{2}$/.test(n))return null;let r=Date.parse(n),i=Date.parse(t);return Number.isNaN(r)||Number.isNaN(i)?null:Math.round((r-i)/Vy)}function Uy(){return new Date().toISOString().slice(0,10)}function Wy({el:e}){let t=e,n=t.view?.source,{t:r}=a(),i=t.view?.caption,o=(0,L.jsxDEV)(`div`,{"data-testid":`countdown`,children:(0,L.jsxDEV)(N,{name:n,render:(e,t)=>{let n=Hy(e.value,Uy());return n===null?t:(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-3`,"data-testid":`countdown-figure`,"data-direction":n>0?`remaining`:n<0?`elapsed`:`today`,children:[(0,L.jsxDEV)(`span`,{className:`inline-flex flex-col items-start gap-0.5`,children:[(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-1.5`,children:[(0,L.jsxDEV)(n>0?Xe:n<0?_r:wi,{size:16,className:`shrink-0 self-center text-muted`,"aria-hidden":`true`},void 0,!1,{fileName:By,lineNumber:80,columnNumber:19},this),(0,L.jsxDEV)(`span`,{className:`text-3xl font-bold tabular-nums`,children:Math.abs(n)},void 0,!1,{fileName:By,lineNumber:81,columnNumber:19},this)]},void 0,!0,{fileName:By,lineNumber:79,columnNumber:17},this),i&&(0,L.jsxDEV)(`span`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,"data-testid":`countdown-caption`,children:r(i)},void 0,!1,{fileName:By,lineNumber:84,columnNumber:19},this)]},void 0,!0,{fileName:By,lineNumber:78,columnNumber:15},this),(0,L.jsxDEV)(`span`,{className:`text-sm text-muted`,"data-testid":`countdown-date`,children:t},void 0,!1,{fileName:By,lineNumber:89,columnNumber:15},this)]},void 0,!0,{fileName:By,lineNumber:66,columnNumber:13},this)}},void 0,!1,{fileName:By,lineNumber:58,columnNumber:7},this)},void 0,!1,{fileName:By,lineNumber:57,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:o},void 0,!1,{fileName:By,lineNumber:99,columnNumber:5},this)}j({kinds:[`countdown`],layout:`block`,editor:`own`,Page:Wy});function Gy(e,t){return e.hints.multi?Qn(t,[]).map(String):tn(t)?[String(t)]:[]}var Ky=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/deck.tsx`;function qy({field:e,value:t}){let n=e.relation?.library??``,r=e.relation?.shelf??``,i=Gy(e,t),a=fe(n,r,i),o=x(n,r);return i.length?(0,L.jsxDEV)(`div`,{className:`overflow-x-auto`,"data-testid":`deck`,children:(0,L.jsxDEV)(`div`,{className:`flex gap-3 pb-1`,children:i.map(e=>{let t=a.get(e);return(0,L.jsxDEV)(`div`,{className:`flex w-40 shrink-0 flex-col gap-2 rounded-lg border border-border p-3`,"data-testid":`deck-card`,children:(0,L.jsxDEV)(h,{to:`/${n}/${r}/${e}`,className:`min-w-0 hover:text-accent`,children:o&&t?(0,L.jsxDEV)(hn,{shelf:o,row:t},void 0,!1,{fileName:Ky,lineNumber:53,columnNumber:29},this):mr(e)},void 0,!1,{fileName:Ky,lineNumber:52,columnNumber:15},this)},e,!1,{fileName:Ky,lineNumber:47,columnNumber:13},this)})},void 0,!1,{fileName:Ky,lineNumber:43,columnNumber:7},this)},void 0,!1,{fileName:Ky,lineNumber:42,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Ky,lineNumber:40,columnNumber:27},this)}function Jy({el:e}){let t=e,n=t.view?.source;return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:(0,L.jsxDEV)(N,{name:n,render:e=>(0,L.jsxDEV)(qy,{field:e.field.type,value:e.value},void 0,!1,{fileName:Ky,lineNumber:70,columnNumber:29},this)},void 0,!1,{fileName:Ky,lineNumber:68,columnNumber:7},this)},void 0,!1,{fileName:Ky,lineNumber:67,columnNumber:5},this)}j({kinds:[`deck`],layout:`block`,editor:`own`,Page:Jy});var Yy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/people.tsx`;function Xy({field:e,value:t}){let n=e.relation?.library??``,r=e.relation?.shelf??``,i=Gy(e,t),a=fe(n,r,i),o=x(n,r);return i.length?(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-3 gap-y-1`,"data-testid":`people`,children:[(0,L.jsxDEV)(`div`,{className:`flex items-center`,"data-testid":`people-avatars`,children:i.map((e,t)=>{let n=a.get(e),{icon:r}=o&&n?_h(o,n):{icon:void 0};return(0,L.jsxDEV)(`span`,{className:`rounded-full ring-2 ring-surface ${t>0?`-ml-2.5`:``}`,style:{zIndex:i.length-t},"data-testid":`people-avatar-${t}`,children:r?(0,L.jsxDEV)($n,{icon:r,framed:!0,size:`md`},void 0,!1,{fileName:Yy,lineNumber:54,columnNumber:17},this):(0,L.jsxDEV)($n,{icon:{kind:`icon`,value:o?.icon??`lucide:user`},framed:!0,size:`md`},void 0,!1,{fileName:Yy,lineNumber:56,columnNumber:17},this)},e,!1,{fileName:Yy,lineNumber:47,columnNumber:13},this)})},void 0,!1,{fileName:Yy,lineNumber:42,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-x-1.5 text-sm`,"data-testid":`people-names`,children:i.map(e=>{let t=a.get(e),{title:i}=o&&t?_h(o,t):{title:mr(e)};return(0,L.jsxDEV)(h,{to:`/${n}/${r}/${e}`,className:`hover:text-accent hover:underline`,children:i},e,!1,{fileName:Yy,lineNumber:67,columnNumber:13},this)})},void 0,!1,{fileName:Yy,lineNumber:62,columnNumber:7},this)]},void 0,!0,{fileName:Yy,lineNumber:41,columnNumber:5},this):(0,L.jsxDEV)(O,{},void 0,!1,{fileName:Yy,lineNumber:39,columnNumber:27},this)}function Zy({el:e}){let t=e,n=t.view?.source;return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:(0,L.jsxDEV)(N,{name:n,render:e=>(0,L.jsxDEV)(Xy,{field:e.field.type,value:e.value},void 0,!1,{fileName:Yy,lineNumber:84,columnNumber:29},this)},void 0,!1,{fileName:Yy,lineNumber:82,columnNumber:7},this)},void 0,!1,{fileName:Yy,lineNumber:81,columnNumber:5},this)}j({kinds:[`people`],layout:`block`,editor:`own`,Page:Zy});var Qy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/identity.tsx`,$y=e=>/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`;function eb(e,t){if(e.kind===`tel`){let e=String(t??``).trim();return e?`tel:${e}`:void 0}if(e.kind===`email`){let e=String(t??``).trim();return e?`mailto:${e}`:void 0}if(e.kind===`link`){let e=String(t??``).trim();return e?$y(e):void 0}}var tb={tel:jl,email:Ol,link:Ei};function nb({el:e}){let t=e,{t:n}=a(),r=t.view?.avatar,i=t.view?.name,o=t.view?.role,s=t.view?.channels??[],c=M(),l=Pv(c,r),u=Pv(c,o),d=Fv(c,s),f=d.filter(e=>!e.handle.hidden),p=(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3`,"data-testid":`identity`,children:[l&&!l.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`shrink-0`,"data-testid":`identity-avatar`,children:(0,L.jsxDEV)(N,{name:r},void 0,!1,{fileName:Qy,lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:Qy,lineNumber:77,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-lg font-semibold`,"data-testid":`identity-name`,children:(0,L.jsxDEV)(N,{name:i},void 0,!1,{fileName:Qy,lineNumber:83,columnNumber:11},this)},void 0,!1,{fileName:Qy,lineNumber:82,columnNumber:9},this),u&&!u.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted`,"data-testid":`identity-role`,children:(0,L.jsxDEV)(N,{name:o},void 0,!1,{fileName:Qy,lineNumber:87,columnNumber:13},this)},void 0,!1,{fileName:Qy,lineNumber:86,columnNumber:11},this)]},void 0,!0,{fileName:Qy,lineNumber:81,columnNumber:7},this),f.length>0&&(0,L.jsxDEV)(`div`,{className:`flex shrink-0 items-center gap-1.5`,"data-testid":`identity-channels`,children:d.map(e=>e.handle.hidden?null:(0,L.jsxDEV)(`span`,{children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>{let r=e.field.type,i=eb(r,e.value);if(!i)return t;let a=tb[r.kind]??Ei;return(0,L.jsxDEV)(`a`,{href:i,"aria-label":Lv(e,n),className:`inline-flex h-9 w-9 items-center justify-center rounded-lg border border-border text-muted transition-colors hover:border-accent hover:text-accent`,children:(0,L.jsxDEV)(a,{size:16},void 0,!1,{fileName:Qy,lineNumber:110,columnNumber:25},this)},void 0,!1,{fileName:Qy,lineNumber:105,columnNumber:23},this)}},void 0,!1,{fileName:Qy,lineNumber:96,columnNumber:17},this)},e.name,!1,{fileName:Qy,lineNumber:95,columnNumber:15},this))},void 0,!1,{fileName:Qy,lineNumber:92,columnNumber:9},this)]},void 0,!0,{fileName:Qy,lineNumber:75,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:p},void 0,!1,{fileName:Qy,lineNumber:123,columnNumber:5},this)}j({kinds:[`identity`],layout:`block`,editor:`own`,Page:nb});var rb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/timeline.tsx`;function ib(){return new Date().toISOString().slice(0,10)}function ab(e,t){let n=typeof e==`string`?e.slice(0,10):``;if(!/^\d{4}-\d{2}-\d{2}$/.test(n))return null;let r=Date.parse(n),i=Date.parse(t);return Number.isNaN(r)||Number.isNaN(i)?null:r<i}function ob({el:e}){let t=e,n=M(),r=(0,L.jsxDEV)(`div`,{className:`relative flex flex-col gap-2`,"data-testid":`timeline`,children:[(0,L.jsxDEV)(`div`,{className:`absolute top-2 bottom-2 left-[5px] w-px bg-border`,"aria-hidden":!0},void 0,!1,{fileName:rb,lineNumber:51,columnNumber:7},this),n.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`relative min-w-0`,"data-testid":`timeline-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,render:(e,t)=>{let n=ab(e.value,ib());return(0,L.jsxDEV)(`span`,{className:`flex min-w-0 items-start gap-3`,"data-testid":`timeline-entry`,children:[(0,L.jsxDEV)(`span`,{className:`relative z-10 mt-1 h-2.5 w-2.5 shrink-0 rounded-full border-2 border-accent ${n?`bg-accent`:`bg-surface`}`,"data-testid":`timeline-dot`,"data-past":n===null?void 0:n,"aria-hidden":!0},void 0,!1,{fileName:rb,lineNumber:62,columnNumber:21},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 flex-1 pb-1`,children:t},void 0,!1,{fileName:rb,lineNumber:68,columnNumber:21},this)]},void 0,!0,{fileName:rb,lineNumber:61,columnNumber:19},this)}},void 0,!1,{fileName:rb,lineNumber:56,columnNumber:13},this)},e.name,!1,{fileName:rb,lineNumber:55,columnNumber:11},this))]},void 0,!0,{fileName:rb,lineNumber:50,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:r},void 0,!1,{fileName:rb,lineNumber:79,columnNumber:5},this)}j({kinds:[`timeline`],layout:`block`,editor:`own`,Page:ob});var sb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/receipt.tsx`;function cb({el:e}){let t=e,{t:n}=a(),r=t.view?.lines??[],i=t.view?.total,o=M(),s=Fv(o,r),c=Pv(o,i),l=(0,L.jsxDEV)(`div`,{className:`flex flex-col`,"data-testid":`receipt`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-col divide-y divide-dashed divide-border`,children:s.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 py-1.5`,"data-testid":`receipt-line-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3`,"data-testid":`receipt-line`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0 text-muted`,children:Lv(e,n)},void 0,!1,{fileName:sb,lineNumber:47,columnNumber:21},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:sb,lineNumber:48,columnNumber:21},this)]},void 0,!0,{fileName:sb,lineNumber:46,columnNumber:19},this)},void 0,!1,{fileName:sb,lineNumber:42,columnNumber:15},this)},e.name,!1,{fileName:sb,lineNumber:41,columnNumber:13},this))},void 0,!1,{fileName:sb,lineNumber:38,columnNumber:7},this),c&&!c.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`mt-2 min-w-0 border-t-2 border-border pt-2`,"data-testid":`receipt-total-row`,children:(0,L.jsxDEV)(N,{name:i,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3 text-lg font-bold`,"data-testid":`receipt-total`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0`,children:Lv(e,n)},void 0,!1,{fileName:sb,lineNumber:66,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:sb,lineNumber:67,columnNumber:17},this)]},void 0,!0,{fileName:sb,lineNumber:62,columnNumber:15},this)},void 0,!1,{fileName:sb,lineNumber:58,columnNumber:11},this)},void 0,!1,{fileName:sb,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:sb,lineNumber:37,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:l},void 0,!1,{fileName:sb,lineNumber:76,columnNumber:5},this)}j({kinds:[`receipt`],layout:`block`,editor:`own`,Page:cb,childWidth:`w-full`});var lb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/idcard.tsx`;function ub(e){let t=e.replace(/\s+/g,``);if(!t)return``;let n=[];for(let e=0;e<t.length;e+=4)n.push(t.slice(e,e+4));return n.join(` `)}function db({slots:e,t}){return e.length?(0,L.jsxDEV)(`div`,{className:`mt-3`,"data-testid":`idcard-blank`,children:(0,L.jsxDEV)(mn,{items:e.map(e=>({key:e.name,span:3,node:(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:[(0,L.jsxDEV)(`div`,{className:ft,children:t(e.handle.field.type?.label??e.handle.field.label??e.name)},void 0,!1,{fileName:lb,lineNumber:57,columnNumber:15},this),(0,L.jsxDEV)(O,{},void 0,!1,{fileName:lb,lineNumber:61,columnNumber:15},this)]},void 0,!0,{fileName:lb,lineNumber:56,columnNumber:13},this)}))},void 0,!1,{fileName:lb,lineNumber:51,columnNumber:7},this)},void 0,!1,{fileName:lb,lineNumber:50,columnNumber:5},this):null}function fb({slots:e,testid:t}){return e.length?(0,L.jsxDEV)(`div`,{"data-testid":t,children:(0,L.jsxDEV)(mn,{items:e.map(e=>({key:e.name,span:Ln(e.handle.field),node:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:lb,lineNumber:78,columnNumber:17},this)}))},void 0,!1,{fileName:lb,lineNumber:74,columnNumber:7},this)},void 0,!1,{fileName:lb,lineNumber:73,columnNumber:5},this):null}var pb={passport:new Set([`photo`,`mrz`]),biometric:new Set([`photo`,`mrz`]),idcard:new Set([`photo`]),licence:new Set([`photo`]),residence:new Set([`photo`]),protection:new Set([`photo`]),military:new Set([`photo`]),tax:new Set([]),social:new Set([]),visa:new Set([`photo`]),workpermit:new Set([]),medical:new Set([]),insurance:new Set([]),birth:new Set([]),marriage:new Set([]),divorce:new Set([]),death:new Set([]),diploma:new Set([]),vaccination:new Set([])},mb={passport:`page`,biometric:`page`,idcard:`plastic`,licence:`plastic`,residence:`plastic`,protection:`plastic`,military:`plastic`,tax:`plastic`,social:`plastic`,visa:`sticker`,workpermit:`sticker`,medical:`form`,insurance:`form`,birth:`paper`,marriage:`paper`,divorce:`paper`,death:`paper`,diploma:`paper`,vaccination:`paper`};function hb({el:e}){let{t}=a(),n=e,r=n.view?.number,i=n.view?.overline,o=n.view?.photo,s=n.view?.mrz,c=n.view?.meta??[],l=n.view?.footer??[],u=M(),d=Pv(u,i),f=Pv(u,o),p=Pv(u,s),m=(d?jn(d.handle.field.type??{}).find(e=>e.value===String(d.handle.value??``))?.face:void 0)??`plain`,h=mb[m]??`plain`,g=pb[m],_=e=>g===void 0||g.has(e),v=e=>e!==void 0&&!e.handle.hidden&&tn(e.handle.value),y=_(`photo`)&&v(f),b=_(`mrz`)&&v(p),x=[..._(`photo`)&&!y&&f?[f]:[],..._(`mrz`)&&!b&&p?[p]:[]],S=e=>{let t=e.handle.field.type?.hints?.faces;return t===void 0||t.includes(m)},C=Fv(u,c).filter(e=>!e.handle.hidden&&S(e)),w=Fv(u,l).filter(e=>!e.handle.hidden&&S(e));return(0,L.jsxDEV)(`div`,{className:`idcard-paper overflow-hidden rounded-xl border border-border bg-surface`,"data-face":m,"data-form":h,"data-testid":`idcard`,children:[(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-4 px-5 py-4`,children:[(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-baseline justify-between gap-4 border-b border-border pb-3`,"data-testid":`idcard-head`,children:[d&&!d.handle.hidden?(0,L.jsxDEV)(`div`,{className:ft,"data-testid":`idcard-overline`,children:(0,L.jsxDEV)(N,{name:i,ownLabel:!0},void 0,!1,{fileName:lb,lineNumber:276,columnNumber:15},this)},void 0,!1,{fileName:lb,lineNumber:273,columnNumber:13},this):(0,L.jsxDEV)(`span`,{"aria-hidden":!0},void 0,!1,{fileName:lb,lineNumber:281,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 shrink-0`,children:(0,L.jsxDEV)(N,{name:r,ownLabel:!0,render:(e,t)=>{let n=ub(typeof e.value==`string`||typeof e.value==`number`?String(e.value):``);return n?(0,L.jsxDEV)(`span`,{className:`text-lg font-semibold tracking-widest text-accent`,"data-testid":`idcard-number`,children:n},void 0,!1,{fileName:lb,lineNumber:300,columnNumber:19},this):t}},void 0,!1,{fileName:lb,lineNumber:284,columnNumber:13},this)},void 0,!1,{fileName:lb,lineNumber:283,columnNumber:11},this)]},void 0,!0,{fileName:lb,lineNumber:268,columnNumber:9},this),(f||C.length>0)&&(0,L.jsxDEV)(`div`,{className:`flex min-w-0 items-start gap-5`,children:[y&&(0,L.jsxDEV)(`div`,{className:`aspect-[3/4] w-28 shrink-0 overflow-hidden rounded-md border border-border bg-elevated`,"data-testid":`idcard-photo`,children:(0,L.jsxDEV)(N,{name:o,ownLabel:!0},void 0,!1,{fileName:lb,lineNumber:320,columnNumber:17},this)},void 0,!1,{fileName:lb,lineNumber:314,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,L.jsxDEV)(fb,{slots:C,testid:`idcard-meta`},void 0,!1,{fileName:lb,lineNumber:324,columnNumber:15},this)},void 0,!1,{fileName:lb,lineNumber:323,columnNumber:13},this)]},void 0,!0,{fileName:lb,lineNumber:310,columnNumber:11},this),(w.length>0||x.length>0)&&(0,L.jsxDEV)(`div`,{className:`border-t border-border pt-3`,children:[(0,L.jsxDEV)(fb,{slots:w,testid:`idcard-footer`},void 0,!1,{fileName:lb,lineNumber:336,columnNumber:13},this),(0,L.jsxDEV)(db,{slots:x,t},void 0,!1,{fileName:lb,lineNumber:337,columnNumber:13},this)]},void 0,!0,{fileName:lb,lineNumber:335,columnNumber:11},this)]},void 0,!0,{fileName:lb,lineNumber:266,columnNumber:7},this),b&&(0,L.jsxDEV)(`div`,{className:`border-t border-dashed border-border px-5 py-3`,"data-testid":`idcard-mrz`,children:(0,L.jsxDEV)(N,{name:s,ownLabel:!0},void 0,!1,{fileName:lb,lineNumber:351,columnNumber:11},this)},void 0,!1,{fileName:lb,lineNumber:350,columnNumber:9},this)]},void 0,!0,{fileName:lb,lineNumber:257,columnNumber:5},this)}j({kinds:[`idcard`],layout:`block`,editor:`own`,Page:hb});var gb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/route.tsx`;function _b({el:e}){let t=e,n=t.view?.from,r=t.view?.to,i=t.view?.depart,a=t.view?.arrive,o=t.view?.duration,s=M(),c=Pv(s,n),l=Pv(s,r),u=Pv(s,i),d=Pv(s,a),f=Fv(s,t.view?.stub??[]).filter(e=>!e.handle.hidden),p=Pv(s,o),m=c!==void 0&&!c.handle.hidden,h=l!==void 0&&!l.handle.hidden,g=p!==void 0&&!p.handle.hidden;return(0,L.jsxDEV)(`div`,{className:`flex items-start gap-3`,"data-testid":`route`,children:[m&&(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 flex-col items-start gap-1`,"data-testid":`route-from`,children:[(0,L.jsxDEV)(N,{name:n,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-xl font-bold`,"data-testid":`route-endpoint-0`,children:t},void 0,!1,{fileName:gb,lineNumber:48,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:45,columnNumber:11},this),u&&!u.handle.hidden&&(0,L.jsxDEV)(`span`,{className:`min-w-0 text-xs text-muted`,"data-testid":`route-depart`,children:(0,L.jsxDEV)(N,{name:i},void 0,!1,{fileName:gb,lineNumber:55,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:54,columnNumber:13},this)]},void 0,!0,{fileName:gb,lineNumber:44,columnNumber:9},this),(m||h||g)&&(0,L.jsxDEV)(`div`,{className:`relative flex min-w-[3rem] flex-1 shrink-0 flex-col items-center justify-center self-stretch`,"data-testid":`route-axis`,children:[(0,L.jsxDEV)(`span`,{className:`absolute inset-x-0 top-1/2 border-t border-dashed border-border`,"aria-hidden":!0},void 0,!1,{fileName:gb,lineNumber:65,columnNumber:11},this),g&&(0,L.jsxDEV)(`span`,{className:`relative z-10 bg-surface px-1.5 text-xs font-medium text-muted`,"data-testid":`route-duration`,children:(0,L.jsxDEV)(N,{name:o},void 0,!1,{fileName:gb,lineNumber:71,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:67,columnNumber:13},this)]},void 0,!0,{fileName:gb,lineNumber:61,columnNumber:9},this),h&&(0,L.jsxDEV)(`div`,{className:`flex min-w-0 flex-1 flex-col items-end gap-1 text-right`,"data-testid":`route-to`,children:[(0,L.jsxDEV)(N,{name:r,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-xl font-bold`,"data-testid":`route-endpoint-1`,children:t},void 0,!1,{fileName:gb,lineNumber:81,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:78,columnNumber:11},this),d&&!d.handle.hidden&&(0,L.jsxDEV)(`span`,{className:`min-w-0 text-xs text-muted`,"data-testid":`route-arrive`,children:(0,L.jsxDEV)(N,{name:a},void 0,!1,{fileName:gb,lineNumber:88,columnNumber:15},this)},void 0,!1,{fileName:gb,lineNumber:87,columnNumber:13},this)]},void 0,!0,{fileName:gb,lineNumber:77,columnNumber:9},this),f.length>0&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`route-perf`,"aria-hidden":!0},void 0,!1,{fileName:gb,lineNumber:99,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-x-6 gap-y-2 pt-3`,"data-testid":`route-stub`,children:f.map(e=>(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:gb,lineNumber:103,columnNumber:17},this)},e.name,!1,{fileName:gb,lineNumber:102,columnNumber:15},this))},void 0,!1,{fileName:gb,lineNumber:100,columnNumber:11},this)]},void 0,!0,{fileName:gb,lineNumber:94,columnNumber:9},this)]},void 0,!0,{fileName:gb,lineNumber:42,columnNumber:5},this)}j({kinds:[`route`],layout:`block`,editor:`own`,Page:_b});var vb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/specimen.tsx`;function yb({el:e}){let t=e,{t:n}=a(),r=t.view?.title,i=t.view?.subtitle,o=t.view?.conditions??[],s=M(),c=Pv(s,i),l=Fv(s,o),u=l.filter(e=>!e.handle.hidden);return(0,L.jsxDEV)(`div`,{className:`space-y-2`,"data-testid":`specimen`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0`,children:(0,L.jsxDEV)(N,{name:r,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`text-xl font-medium italic`,"data-testid":`specimen-title`,children:t},void 0,!1,{fileName:vb,lineNumber:45,columnNumber:13},this)},void 0,!1,{fileName:vb,lineNumber:42,columnNumber:9},this)},void 0,!1,{fileName:vb,lineNumber:41,columnNumber:7},this),c&&!c.handle.hidden&&(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm text-muted`,"data-testid":`specimen-subtitle`,children:(0,L.jsxDEV)(N,{name:i},void 0,!1,{fileName:vb,lineNumber:53,columnNumber:11},this)},void 0,!1,{fileName:vb,lineNumber:52,columnNumber:9},this),u.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,"data-testid":`specimen-conditions`,children:l.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{"data-testid":`specimen-condition-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-baseline gap-1.5`,children:[(0,L.jsxDEV)(rr,{name:`lucide:circle`,size:8,className:`relative top-[0.15em] shrink-0 fill-current text-muted`},void 0,!1,{fileName:vb,lineNumber:66,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-muted`,children:Lv(e,n)},void 0,!1,{fileName:vb,lineNumber:71,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`min-w-0 font-medium text-text`,children:t},void 0,!1,{fileName:vb,lineNumber:72,columnNumber:23},this)]},void 0,!0,{fileName:vb,lineNumber:65,columnNumber:21},this)},void 0,!1,{fileName:vb,lineNumber:61,columnNumber:17},this)},e.name,!1,{fileName:vb,lineNumber:60,columnNumber:15},this))},void 0,!1,{fileName:vb,lineNumber:57,columnNumber:9},this)]},void 0,!0,{fileName:vb,lineNumber:40,columnNumber:5},this)}j({kinds:[`specimen`],layout:`block`,editor:`own`,Page:yb});var bb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/nutrition.tsx`;function xb({el:e}){let t=e,{t:n}=a(),r=t.view?.energy,i=t.view?.fields??[],o=M(),s=Pv(o,r),c=Fv(o,i),l=s!==void 0&&!s.handle.hidden,u=c.filter(e=>!e.handle.hidden);if(!l&&u.length===0)return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:null},void 0,!1,{fileName:bb,lineNumber:39,columnNumber:7},this);let d=(0,L.jsxDEV)(`div`,{className:`w-full max-w-xs border-2 border-text p-3`,"data-testid":`nutrition`,children:[l&&(0,L.jsxDEV)(`div`,{className:`mb-2 border-b-4 border-text pb-2`,"data-testid":`nutrition-energy-row`,children:(0,L.jsxDEV)(N,{name:r,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3`,"data-testid":`nutrition-energy`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0 text-base font-bold tracking-wide`,children:Lv(e,n)},void 0,!1,{fileName:bb,lineNumber:52,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-2xl font-black ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:bb,lineNumber:53,columnNumber:17},this)]},void 0,!0,{fileName:bb,lineNumber:51,columnNumber:15},this)},void 0,!1,{fileName:bb,lineNumber:47,columnNumber:11},this)},void 0,!1,{fileName:bb,lineNumber:46,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col divide-y divide-border`,children:c.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0 py-1`,"data-testid":`nutrition-row-${t}`,children:(0,L.jsxDEV)(N,{name:e.name,ownLabel:!0,render:(e,t)=>(0,L.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-baseline justify-between gap-3 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`min-w-0`,children:Lv(e,n)},void 0,!1,{fileName:bb,lineNumber:74,columnNumber:21},this),(0,L.jsxDEV)(`span`,{className:`shrink-0 text-right font-medium ${Rv(e)}`.trim(),children:t},void 0,!1,{fileName:bb,lineNumber:75,columnNumber:21},this)]},void 0,!0,{fileName:bb,lineNumber:73,columnNumber:19},this)},void 0,!1,{fileName:bb,lineNumber:69,columnNumber:15},this)},e.name,!1,{fileName:bb,lineNumber:68,columnNumber:13},this))},void 0,!1,{fileName:bb,lineNumber:61,columnNumber:7},this)]},void 0,!0,{fileName:bb,lineNumber:44,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:d},void 0,!1,{fileName:bb,lineNumber:88,columnNumber:5},this)}j({kinds:[`nutrition`],layout:`block`,editor:`own`,Page:xb,childWidth:`w-full`});function Sb(e,t){return e.fields.find(e=>Cr(e)&&e.key===t)}function Cb(e,t){let{rowId:n,updateRow:r,removeRow:i}=$e(e,t);return{rowId:n,updateRow:(t,n,i)=>r(t,{...e[t],[n]:i}),removeRow:i,addRow:()=>t([...e,{}])}}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/calendar.tsx`;function wb(e){let t=typeof e==`string`?e:typeof e==`number`?String(e):``,n=/^(\d{4})-(\d{2})-(\d{2})/.exec(t);if(n)return{year:Number(n[1]),month:Number(n[2])-1,day:Number(n[3])}}function Tb({day:e,month:t,year:n,matchingRows:r,dateKey:i,dateFld:o,restFields:s,recordCtx:c,errorFor:l,onUpdateRow:u,onRemoveRow:d,onAddRow:f,rowTools:p,editing:m}){let{t:h}=a(),[g,_]=(0,I.useState)(!1);if(e==null)return(0,L.jsxDEV)(`div`,{className:`aspect-square`},void 0,!1,{fileName:Y,lineNumber:78,columnNumber:12},this);let v=r[0],y=v!==void 0,b=`${n}-${String(t+1).padStart(2,`0`)}-${String(e).padStart(2,`0`)}`,x=new Date(n,t,e).toLocaleDateString(void 0,{day:`numeric`,month:`long`,year:`numeric`}),S=r.map(({idx:e})=>l(e,i)||s.map(t=>l(e,t.key)).find(Boolean)).find(Boolean),C=(0,L.jsxDEV)(`button`,{type:`button`,role:`button`,className:`relative flex aspect-square w-full items-center justify-center rounded-md text-xs font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-accent ${S?`border border-danger text-danger font-semibold`:y?`border border-accent bg-bg font-semibold text-accent shadow-xs`:`text-text hover:bg-elevated`}`,"data-testid":v?`calendar-date-${v.idx}`:void 0,"aria-label":b,children:[e,y&&(0,L.jsxDEV)(`span`,{"data-testid":`calendar-marked-${e}`,className:`absolute bottom-1 h-1 w-1 rounded-full ${S?`bg-danger`:`bg-accent`}`},void 0,!1,{fileName:Y,lineNumber:115,columnNumber:9},this),S&&(0,L.jsxDEV)(`span`,{className:`sr-only text-danger`,children:S},void 0,!1,{fileName:Y,lineNumber:120,columnNumber:24},this)]},void 0,!0,{fileName:Y,lineNumber:95,columnNumber:5},this);return p?(0,L.jsxDEV)(`div`,{"data-testid":v?`calendar-entry-${v.idx}`:void 0,className:`w-full`,children:(0,L.jsxDEV)(Ti,{open:g,onOpenChange:_,children:[(0,L.jsxDEV)(xi,{asChild:!0,children:C},void 0,!1,{fileName:Y,lineNumber:135,columnNumber:9},this),(0,L.jsxDEV)(Si,{align:`center`,className:`w-72 p-3 space-y-3 shadow-lg`,sideOffset:6,children:[(0,L.jsxDEV)(Ci,{},void 0,!1,{fileName:Y,lineNumber:137,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex items-center justify-between border-b border-border pb-2`,children:[(0,L.jsxDEV)(`span`,{className:`text-xs font-semibold text-text`,children:x},void 0,!1,{fileName:Y,lineNumber:139,columnNumber:13},this),(0,L.jsxDEV)(`span`,{className:`text-[11px] font-mono text-muted`,children:b},void 0,!1,{fileName:Y,lineNumber:140,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:138,columnNumber:11},this),y?(0,L.jsxDEV)(`div`,{className:`space-y-3`,children:r.map(({row:e,idx:t})=>{let n=l(t,i);return(0,L.jsxDEV)(`div`,{className:`space-y-2 border-b border-border pb-2 last:border-b-0 last:pb-0`,children:[n&&(0,L.jsxDEV)(`div`,{className:`text-xs text-danger font-medium`,children:n},void 0,!1,{fileName:Y,lineNumber:149,columnNumber:29},this),s.length>0&&(0,L.jsxDEV)(`div`,{className:`space-y-1`,children:[(0,L.jsxDEV)(An,{fields:s,row:e,editing:m,onChange:(e,n)=>u(t,e,n),recordCtx:c,error:e=>l(t,e)},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:25},this),s.map(e=>{let n=l(t,e.key);return n?(0,L.jsxDEV)(`div`,{className:`text-xs text-danger font-medium`,children:n},e.key,!1,{fileName:Y,lineNumber:163,columnNumber:29},this):null})]},void 0,!0,{fileName:Y,lineNumber:151,columnNumber:23},this),(0,L.jsxDEV)(`div`,{className:`flex items-center justify-between pt-1`,children:(0,L.jsxDEV)(`button`,{type:`button`,"aria-label":`remove`,onClick:()=>{d(t),_(!1)},className:`inline-flex items-center gap-1 text-xs text-danger hover:text-danger/80 transition-colors`,children:[(0,L.jsxDEV)(ur,{size:12},void 0,!1,{fileName:Y,lineNumber:180,columnNumber:25},this),` `,h(`actions.delete`,`Delete`)]},void 0,!0,{fileName:Y,lineNumber:171,columnNumber:23},this)},void 0,!1,{fileName:Y,lineNumber:170,columnNumber:21},this)]},t,!0,{fileName:Y,lineNumber:148,columnNumber:19},this)})},void 0,!1,{fileName:Y,lineNumber:144,columnNumber:13},this):(0,L.jsxDEV)(`div`,{className:`space-y-2 pt-1`,children:(0,L.jsxDEV)(F,{size:`sm`,className:`w-full h-8 text-xs flex items-center justify-center gap-1.5`,onClick:()=>{f(b),_(!1)},children:[(0,L.jsxDEV)(se,{size:13},void 0,!1,{fileName:Y,lineNumber:197,columnNumber:17},this),` `,h(`actions.add`,`Add`)]},void 0,!0,{fileName:Y,lineNumber:189,columnNumber:15},this)},void 0,!1,{fileName:Y,lineNumber:188,columnNumber:13},this)]},void 0,!0,{fileName:Y,lineNumber:136,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:134,columnNumber:7},this)},void 0,!1,{fileName:Y,lineNumber:133,columnNumber:5},this):(0,L.jsxDEV)(`div`,{"data-testid":v?`calendar-entry-${v.idx}`:void 0,className:`w-full`,children:C},void 0,!1,{fileName:Y,lineNumber:126,columnNumber:7},this)}function Eb({rows:e,dateKey:t,dateFld:n,restFields:r,recordCtx:i,errorFor:a,onUpdateRow:o,onRemoveRow:s,onAddRow:c,rowTools:l,editing:u}){let[d,f]=(0,I.useState)(()=>{for(let n of e){let e=wb(n[t]);if(e)return new Date(e.year,e.month,1)}return new Date}),p=d.getMonth(),m=d.getFullYear(),h=()=>f(new Date(m,p-1,1)),g=()=>f(new Date(m,p+1,1)),_=new Date(m,p,1),v=new Date(m,p+1,0).getDate(),y=_.getDay(),b=[...Array.from({length:y},()=>null),...Array.from({length:v},(e,t)=>t+1)];for(;b.length%7!=0;)b.push(null);let x=[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],S=new Date(m,p,1).toLocaleDateString(void 0,{month:`long`,year:`numeric`}),C=new Map,w=[];return e.forEach((e,n)=>{let r=wb(e[t]);if(r&&r.year===m&&r.month===p){let t=C.get(r.day)??[];t.push({row:e,idx:n}),C.set(r.day,t)}else r||w.push({row:e,idx:n})}),(0,L.jsxDEV)(`div`,{className:`w-full max-w-[280px] rounded-lg border border-border bg-surface p-3`,"data-testid":`calendar-grid`,children:[(0,L.jsxDEV)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,L.jsxDEV)(`span`,{className:`text-xs font-semibold text-text capitalize`,children:S},void 0,!1,{fileName:Y,lineNumber:274,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex items-center gap-0.5`,children:[(0,L.jsxDEV)(`button`,{type:`button`,onClick:h,"aria-label":`Previous month`,className:`rounded p-1 text-muted hover:bg-elevated hover:text-text transition-colors`,children:(0,L.jsxDEV)(je,{size:13},void 0,!1,{fileName:Y,lineNumber:282,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:276,columnNumber:11},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:g,"aria-label":`Next month`,className:`rounded p-1 text-muted hover:bg-elevated hover:text-text transition-colors`,children:(0,L.jsxDEV)(Se,{size:13},void 0,!1,{fileName:Y,lineNumber:290,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:284,columnNumber:11},this)]},void 0,!0,{fileName:Y,lineNumber:275,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:273,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`mb-1 grid grid-cols-7 gap-1 text-center text-[10px] font-medium text-muted`,children:x.map((e,t)=>(0,L.jsxDEV)(`div`,{className:`py-0.5`,children:e},t,!1,{fileName:Y,lineNumber:296,columnNumber:11},this))},void 0,!1,{fileName:Y,lineNumber:294,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-1`,children:b.map((e,d)=>(0,L.jsxDEV)(Tb,{day:e,month:p,year:m,matchingRows:e==null?[]:C.get(e)??[],dateKey:t,dateFld:n,restFields:r,recordCtx:i,errorFor:a,onUpdateRow:o,onRemoveRow:s,onAddRow:c,rowTools:l,editing:u},d,!1,{fileName:Y,lineNumber:303,columnNumber:11},this))},void 0,!1,{fileName:Y,lineNumber:301,columnNumber:7},this),w.length>0&&(0,L.jsxDEV)(`div`,{className:`mt-3 space-y-1.5 border-t border-border pt-2`,children:w.map(({idx:e})=>{let n=a(e,t);return(0,L.jsxDEV)(`div`,{"data-testid":`calendar-entry-${e}`,className:`flex items-center justify-between text-xs`,children:[(0,L.jsxDEV)(`div`,{"data-testid":`calendar-date-${e}`,className:`text-danger font-medium`,children:n||`Required`},void 0,!1,{fileName:Y,lineNumber:333,columnNumber:17},this),l&&(0,L.jsxDEV)(Ye,{onClick:()=>s(e)},void 0,!1,{fileName:Y,lineNumber:336,columnNumber:30},this)]},e,!0,{fileName:Y,lineNumber:328,columnNumber:15},this)})},void 0,!1,{fileName:Y,lineNumber:324,columnNumber:9},this)]},void 0,!0,{fileName:Y,lineNumber:272,columnNumber:5},this)}function Db({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.date,d=Sb(l,u),f=Xh(r,t,e=>c(e)),p=Array.isArray(f.value)?f.value:[],m=f.mode!==`view`,h=E()&&r===`view`,g=m||h;if(!d||!u)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:Y,lineNumber:363,columnNumber:7},this);let _=l.fields.filter(e=>Cr(e)&&e.key!==u).map(e=>({key:e.key,type:e.type})),v=(0,L.jsxDEV)(Eb,{rows:p,dateKey:u,dateFld:d,restFields:_,recordCtx:n,errorFor:(e,t)=>kr(l)?s([l.key,e,t]):void 0,onUpdateRow:(e,t,n)=>{let r={...p[e],[t]:n};f.onChange(p.map((t,n)=>n===e?r:t))},onRemoveRow:e=>{f.onChange(p.filter((t,n)=>n!==e))},onAddRow:e=>{f.onChange([...p,{[u]:e}])},rowTools:g,editing:m},void 0,!1,{fileName:Y,lineNumber:395,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`calendar`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:p.length,actions:!h&&f.actions},void 0,!1,{fileName:Y,lineNumber:414,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:v},void 0,!1,{fileName:Y,lineNumber:415,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:413,columnNumber:5},this):v}j({kinds:[`calendar`],layout:`block`,Page:Db,editor:`own`});var Ob=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/journal.tsx`;function kb(e,t,n,r,i,a,o,s){return r?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:n,value:t[n]??``,onChange:a,mode:`edit`,bare:!0,recordCtx:o,error:s},void 0,!1,{fileName:Ob,lineNumber:85,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:i?n:void 0,value:t[n]??``,mode:`view`,bare:!i,recordCtx:o,onChange:i?a:void 0,error:s},void 0,!1,{fileName:Ob,lineNumber:99,columnNumber:5},this)}function Ab({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.date,d=l.view?.text,f=Sb(l,u),p=Sb(l,d),m=Xh(r,t,e=>c(e)),h=Array.isArray(m.value)?m.value:[],g=m.mode!==`view`,_=E()&&r===`view`,v=g||_,{rowId:y,updateRow:b,removeRow:x,addRow:S}=Cb(h,e=>m.onChange(e));if(!f||!p||!u||!d)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:Ob,lineNumber:137,columnNumber:7},this);let C=l.fields.filter(e=>Cr(e)&&e.key!==u&&e.key!==d).map(e=>({key:e.key,type:e.type})),w=(e,t)=>kr(l)?s([l.key,e,t]):void 0,T=(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[h.map((e,t)=>(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`flex items-start gap-3`,"data-testid":`journal-entry-${t}`,children:[(0,L.jsxDEV)(`div`,{className:`w-20 shrink-0 text-xs text-muted ${Pt(f.type)}`.trim(),"data-testid":`journal-date-${t}`,children:kb(f,e,u,g,_,e=>b(t,u,e),n,w(t,u))},void 0,!1,{fileName:Ob,lineNumber:159,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 text-sm`,"data-testid":`journal-text-${t}`,children:kb(p,e,d,g,_,e=>b(t,d,e),n,w(t,d))},void 0,!1,{fileName:Ob,lineNumber:174,columnNumber:13},this),C.length>0&&(0,L.jsxDEV)(An,{fields:C,row:e,editing:g,onChange:(e,n)=>b(t,e,n),recordCtx:n,error:e=>w(t,e)},void 0,!1,{fileName:Ob,lineNumber:187,columnNumber:15},this),v&&(0,L.jsxDEV)(Ye,{className:`mt-0.5`,onClick:()=>x(t)},void 0,!1,{fileName:Ob,lineNumber:196,columnNumber:26},this)]},void 0,!0,{fileName:Ob,lineNumber:158,columnNumber:11},this)},y(e),!1,{fileName:Ob,lineNumber:157,columnNumber:9},this)),v&&(0,L.jsxDEV)(Ft,{onClick:S,children:i(`form.addRow`)},void 0,!1,{fileName:Ob,lineNumber:200,columnNumber:20},this)]},void 0,!0,{fileName:Ob,lineNumber:155,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`journal`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:h.length,actions:!_&&m.actions},void 0,!1,{fileName:Ob,lineNumber:208,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:T},void 0,!1,{fileName:Ob,lineNumber:209,columnNumber:7},this)]},void 0,!0,{fileName:Ob,lineNumber:207,columnNumber:5},this):T}j({kinds:[`journal`],layout:`block`,Page:Ab,editor:`own`});var jb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/manifest.tsx`;function Mb(e,t,n,r,i,a,o,s){return r?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:n,value:t[n]??``,onChange:a,mode:`edit`,bare:!0,recordCtx:o,error:s},void 0,!1,{fileName:jb,lineNumber:63,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:i?n:void 0,value:t[n]??``,mode:`view`,bare:!i,recordCtx:o,onChange:i?a:void 0,error:s},void 0,!1,{fileName:jb,lineNumber:77,columnNumber:5},this)}function Nb({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.quantity,d=l.view?.item,f=Sb(l,u),p=Sb(l,d),m=Xh(r,t,e=>c(e)),h=Array.isArray(m.value)?m.value:[],g=m.mode!==`view`,_=E()&&r===`view`,v=g||_,{rowId:y,updateRow:b,removeRow:x,addRow:S}=Cb(h,e=>m.onChange(e));if(!f||!p||!u||!d)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:jb,lineNumber:113,columnNumber:7},this);let C=l.fields.filter(e=>Cr(e)&&e.key!==u&&e.key!==d).map(e=>({key:e.key,type:e.type})),w=(e,t)=>kr(l)?s([l.key,e,t]):void 0,T=(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[h.map((e,t)=>(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3`,"data-testid":`manifest-row-${t}`,children:[(0,L.jsxDEV)(`div`,{className:`w-12 shrink-0 text-right text-sm ${Pt(f.type)}`.trim(),"data-testid":`manifest-quantity-${t}`,children:Mb(f,e,u,g,_,e=>b(t,u,e),n,w(t,u))},void 0,!1,{fileName:jb,lineNumber:135,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1 text-sm`,"data-testid":`manifest-item-${t}`,children:Mb(p,e,d,g,_,e=>b(t,d,e),n,w(t,d))},void 0,!1,{fileName:jb,lineNumber:150,columnNumber:13},this),C.length>0&&(0,L.jsxDEV)(An,{fields:C,row:e,editing:g,onChange:(e,n)=>b(t,e,n),recordCtx:n,error:e=>w(t,e)},void 0,!1,{fileName:jb,lineNumber:163,columnNumber:15},this),v&&(0,L.jsxDEV)(Ye,{onClick:()=>x(t)},void 0,!1,{fileName:jb,lineNumber:172,columnNumber:26},this)]},void 0,!0,{fileName:jb,lineNumber:134,columnNumber:11},this)},y(e),!1,{fileName:jb,lineNumber:133,columnNumber:9},this)),v&&(0,L.jsxDEV)(Ft,{onClick:S,children:i(`form.addRow`)},void 0,!1,{fileName:jb,lineNumber:176,columnNumber:20},this)]},void 0,!0,{fileName:jb,lineNumber:131,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`manifest`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:h.length,actions:!_&&m.actions},void 0,!1,{fileName:jb,lineNumber:184,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:T},void 0,!1,{fileName:jb,lineNumber:185,columnNumber:7},this)]},void 0,!0,{fileName:jb,lineNumber:183,columnNumber:5},this):T}j({kinds:[`manifest`],layout:`block`,Page:Nb,editor:`own`});var Pb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/assay.tsx`;function Fb(e){if(typeof e==`number`)return Number.isFinite(e)?e:null;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?t:null}return null}function Ib({value:e,low:t,high:n}){return e===null?!1:t!==null&&e<t||n!==null&&e>n}function Lb(e){let{value:t,low:n,high:r}=e;if(n===null||r===null||!(r>n))return null;let i=r-n,a=n-i*.6,o=r+i*.6,s=e=>(e-a)/(o-a)*100;return{refLeft:s(n),refWidth:s(r)-s(n),tick:t===null?null:Math.min(100,Math.max(0,s(t)))}}function Rb(e,t,n,r,i,a,o,s){return r?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:n,value:t[n]??``,onChange:a,mode:`edit`,bare:!0,recordCtx:o,error:s},void 0,!1,{fileName:Pb,lineNumber:109,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:i?n:void 0,value:t[n]??``,mode:`view`,bare:!i,recordCtx:o,onChange:i?a:void 0,error:s},void 0,!1,{fileName:Pb,lineNumber:123,columnNumber:5},this)}function zb({reading:e,out:t,idx:n}){let r=Lb(e);return r?(0,L.jsxDEV)(`div`,{className:`relative h-2.5 min-w-0`,"data-testid":`assay-band-${n}`,"data-out":t||void 0,children:[(0,L.jsxDEV)(`span`,{className:`absolute inset-x-0 top-1 block h-0.5 rounded-full bg-border`},void 0,!1,{fileName:Pb,lineNumber:146,columnNumber:7},this),(0,L.jsxDEV)(`span`,{className:`absolute top-[3px] block h-0.5 rounded-full bg-success`,style:{left:`${r.refLeft}%`,width:`${r.refWidth}%`}},void 0,!1,{fileName:Pb,lineNumber:152,columnNumber:7},this),r.tick!==null&&(0,L.jsxDEV)(`span`,{className:`absolute -top-px block h-3 w-0.5 -translate-x-1/2 rounded-full ${t?`w-1 bg-danger`:`bg-text`}`,style:{left:`${r.tick}%`},"data-testid":`assay-tick-${n}`},void 0,!1,{fileName:Pb,lineNumber:157,columnNumber:9},this)]},void 0,!0,{fileName:Pb,lineNumber:144,columnNumber:5},this):(0,L.jsxDEV)(`div`,{"data-testid":`assay-band-${n}`},void 0,!1,{fileName:Pb,lineNumber:142,columnNumber:21},this)}function Bb({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),s=Ge(),{write:c}=ce(),l=e,u=l.view?.analyte,d=l.view?.value,f=l.view?.unit,p=l.view?.low,m=l.view?.high,h=Sb(l,u),g=Sb(l,d),_=Sb(l,f),v=Xh(r,t,e=>c(e)),y=Array.isArray(v.value)?v.value:[],b=v.mode!==`view`,x=E()&&r===`view`,S=b||x,{rowId:C,updateRow:w,removeRow:T,addRow:ee}=Cb(y,e=>v.onChange(e));if(!h||!g||!u||!d)return(0,L.jsxDEV)(ug,{group:{...l,kind:void 0},value:t,onChange:e=>void c(e),recordCtx:n,mode:r},void 0,!1,{fileName:Pb,lineNumber:195,columnNumber:7},this);let te=new Set([u,d,f,p,m].filter(Boolean)),ne=l.fields.filter(e=>Cr(e)&&!te.has(e.key)).map(e=>({key:e.key,type:e.type})),re=(e,t)=>kr(l)?s([l.key,e,t]):void 0,ie=e=>({value:Fb(e[d]),low:p?Fb(e[p]):null,high:m?Fb(e[m]):null}),ae=(0,L.jsxDEV)(`div`,{className:`flex flex-col ${Cn}`,children:[y.map((e,t)=>{let r=ie(e),i=Ib(r);return(0,L.jsxDEV)(qn,{children:(0,L.jsxDEV)(`div`,{className:`grid grid-cols-[minmax(0,1fr)_auto] items-center gap-x-3 gap-y-1 @sm:grid-cols-[minmax(0,1.4fr)_auto_minmax(90px,1.1fr)]`,"data-testid":`assay-row-${t}`,"data-out":i||void 0,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-sm`,"data-testid":`assay-analyte-${t}`,children:Rb(h,e,u,b,x,e=>w(t,u,e),n,re(t,u))},void 0,!1,{fileName:Pb,lineNumber:233,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`flex items-baseline justify-end gap-1 text-sm`,children:[(0,L.jsxDEV)(`span`,{className:`font-semibold ${i?`text-danger`:``} ${Pt(g.type)}`.trim(),"data-testid":`assay-value-${t}`,children:Rb(g,e,d,b,x,e=>w(t,d,e),n,re(t,d))},void 0,!1,{fileName:Pb,lineNumber:247,columnNumber:17},this),_&&f&&(0,L.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,"data-testid":`assay-unit-${t}`,children:Rb(_,e,f,b,x,e=>w(t,f,e),n,re(t,f))},void 0,!1,{fileName:Pb,lineNumber:263,columnNumber:19},this)]},void 0,!0,{fileName:Pb,lineNumber:246,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`col-span-2 min-w-0 @sm:col-span-1`,children:b?(0,L.jsxDEV)(An,{fields:[p,m].filter(e=>!!e).map(e=>({key:e,type:Sb(l,e).type})),row:e,editing:!0,onChange:(e,n)=>w(t,e,n),recordCtx:n,error:e=>re(t,e)},void 0,!1,{fileName:Pb,lineNumber:282,columnNumber:19},this):(0,L.jsxDEV)(zb,{reading:r,out:i,idx:t},void 0,!1,{fileName:Pb,lineNumber:293,columnNumber:19},this)},void 0,!1,{fileName:Pb,lineNumber:280,columnNumber:15},this),ne.length>0&&(0,L.jsxDEV)(`div`,{className:`col-span-2 min-w-0 @sm:col-span-3`,children:(0,L.jsxDEV)(An,{fields:ne,row:e,editing:b,onChange:(e,n)=>w(t,e,n),recordCtx:n,error:e=>re(t,e)},void 0,!1,{fileName:Pb,lineNumber:299,columnNumber:19},this)},void 0,!1,{fileName:Pb,lineNumber:298,columnNumber:17},this),S&&(0,L.jsxDEV)(`div`,{className:`col-span-2 flex justify-end @sm:col-span-3`,children:(0,L.jsxDEV)(Ye,{onClick:()=>T(t)},void 0,!1,{fileName:Pb,lineNumber:312,columnNumber:19},this)},void 0,!1,{fileName:Pb,lineNumber:311,columnNumber:17},this)]},void 0,!0,{fileName:Pb,lineNumber:228,columnNumber:13},this)},C(e),!1,{fileName:Pb,lineNumber:227,columnNumber:11},this)}),S&&(0,L.jsxDEV)(Ft,{onClick:ee,children:i(`form.addRow`)},void 0,!1,{fileName:Pb,lineNumber:319,columnNumber:20},this)]},void 0,!0,{fileName:Pb,lineNumber:222,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`assay`,children:[l.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(l.label),count:y.length,actions:!x&&v.actions},void 0,!1,{fileName:Pb,lineNumber:327,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:ae},void 0,!1,{fileName:Pb,lineNumber:328,columnNumber:7},this)]},void 0,!0,{fileName:Pb,lineNumber:326,columnNumber:5},this):ae}j({kinds:[`assay`],layout:`block`,Page:Bb,editor:`own`});var Vb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/flow.tsx`;function Hb({slot:e,testid:t}){let{t:n}=a();return(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,"data-testid":t,children:[e.handle.field.label&&(0,L.jsxDEV)(`div`,{className:`min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(e.handle.field.label)},void 0,!1,{fileName:Vb,lineNumber:35,columnNumber:35},this),(0,L.jsxDEV)(`div`,{className:`mt-0.5 min-w-0 text-sm`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:Vb,lineNumber:37,columnNumber:9},this)},void 0,!1,{fileName:Vb,lineNumber:36,columnNumber:7},this)]},void 0,!0,{fileName:Vb,lineNumber:34,columnNumber:5},this)}function Ub({el:e}){let{t}=a(),n=Un(),r=e,i=r.view?.amount,o=r.view?.from,s=r.view?.to,c=r.view?.meta??[],l=M(),u=Pv(l,i),d=Pv(l,o),f=Pv(l,s),p=Fv(l,c).filter(e=>!e.handle.hidden),m=[d,f].filter(e=>!!e&&!e.handle.hidden);return(0,L.jsxDEV)(`section`,{className:`${Et(n)} flex flex-col gap-1 min-w-0`,"data-testid":`flow`,"data-ends":m.length,children:[r.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:t(r.label)},void 0,!1,{fileName:Vb,lineNumber:69,columnNumber:19},this),(0,L.jsxDEV)(xt,{depth:n+1,children:(0,L.jsxDEV)(`div`,{className:`rounded-xl border border-border border-l-4 bg-surface px-4 py-3`,children:[u&&(0,L.jsxDEV)(`div`,{className:`text-2xl font-semibold`,"data-testid":`flow-amount`,children:(0,L.jsxDEV)(N,{name:u.name},void 0,!1,{fileName:Vb,lineNumber:74,columnNumber:15},this)},void 0,!1,{fileName:Vb,lineNumber:73,columnNumber:13},this),m.length>0&&(0,L.jsxDEV)(`div`,{className:`mt-3 flex flex-wrap items-end gap-3`,"data-testid":`flow-path`,children:[d&&!d.handle.hidden&&(0,L.jsxDEV)(Hb,{slot:d,testid:`flow-from`},void 0,!1,{fileName:Vb,lineNumber:80,columnNumber:47},this),m.length===2&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`shrink-0 pb-0.5 text-lg text-faint`,children:`→`},void 0,!1,{fileName:Vb,lineNumber:84,columnNumber:17},this),f&&!f.handle.hidden&&(0,L.jsxDEV)(Hb,{slot:f,testid:`flow-to`},void 0,!1,{fileName:Vb,lineNumber:88,columnNumber:43},this)]},void 0,!0,{fileName:Vb,lineNumber:79,columnNumber:13},this),p.length>0&&(0,L.jsxDEV)(`div`,{className:`mt-4 border-t border-border pt-3`,"data-testid":`flow-meta`,children:(0,L.jsxDEV)(mn,{items:p.map(e=>({key:e.name,span:Ln(e.handle.field),node:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:Vb,lineNumber:98,columnNumber:25},this)}))},void 0,!1,{fileName:Vb,lineNumber:94,columnNumber:15},this)},void 0,!1,{fileName:Vb,lineNumber:93,columnNumber:13},this)]},void 0,!0,{fileName:Vb,lineNumber:71,columnNumber:9},this)},void 0,!1,{fileName:Vb,lineNumber:70,columnNumber:7},this)]},void 0,!0,{fileName:Vb,lineNumber:64,columnNumber:5},this)}j({kinds:[`flow`],layout:`block`,Page:Ub,editor:`own`});var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/table.tsx`,Wb=` __table_none__`;function Gb(e){return e.fields.filter(e=>Cr(e))}var Kb=new Set;function qb(e,t,n){let r=`${e.key}:${t}:${n}`;Kb.has(r)||(Kb.add(r),console.warn(`[table] '${e.key}': ${t} names '${n}', which is not a column of the row; ignored.`))}function Jb(e,t){let n=Yr(e.type,e.key,t),r=Ur(e.type),i=r?$r(n,r):n,a=i==null||i===``?NaN:Number(i);return Number.isFinite(a)?a:void 0}function Yb(e,t,n){if(e===`count`)return n.length;let r=n.map(e=>Jb(t,e)).filter(e=>e!==void 0);if(r.length){if(e===`sum`)return r.reduce((e,t)=>e+t,0);if(e===`avg`)return r.reduce((e,t)=>e+t,0)/r.length;if(e===`min`)return Math.min(...r);if(e!==`range`)return Math.max(...r)}}function Xb(e,t){let n=t.map(t=>Jb(e,t)).filter(e=>e!==void 0);if(n.length)return[Math.min(...n),Math.max(...n)]}function Zb(e,t,n){let r=Ur(e.type);return r?Lr(t.map(t=>Yr(e.type,e.key,t)).find(e=>e&&typeof e==`object`),r,n):n}function Qb(e,t,n,r,i,a,o){return n?(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:e.key,value:t[e.key]??``,onChange:i,mode:`edit`,bare:!0,recordCtx:a,error:o},void 0,!1,{fileName:X,lineNumber:136,columnNumber:7},this):(0,L.jsxDEV)(k,{el:e,field:e.type,fieldKey:r?e.key:void 0,value:t[e.key]??``,mode:`view`,bare:!r,recordCtx:a,onChange:r?i:void 0,error:o},void 0,!1,{fileName:X,lineNumber:150,columnNumber:5},this)}function $b({el:e,value:t,recordCtx:n,mode:r}){let{t:i,i18n:o}=a(),s=Un(),c=Ge(),{write:l}=ce(),u=e,d=Gb(u),f=u.view?.sort,p=u.view?.dir??`asc`,m=e=>d.find(t=>t.key===e);f&&!m(f)&&qb(u,`sort`,f);let[h,g]=(0,I.useState)(f&&m(f)?{key:f,dir:p}:null),_=e=>g(t=>t?.key===e?t.dir===`asc`?{key:e,dir:`desc`}:null:{key:e,dir:`asc`}),v=Xh(r,t,e=>l(e)),y=Array.isArray(v.value)?v.value:[],b=v.mode!==`view`,x=E()&&r===`view`,S=(0,I.useMemo)(()=>({t:i,locale:o.language}),[i,o.language]),C=(0,I.useMemo)(()=>{if(b||!h)return y;let e=m(h.key);return e?St(y,h.key,h.dir,e.type,S):y},[y,h,b,S]),w=(0,I.useMemo)(()=>new Map(y.map((e,t)=>[e,t])),[y]),T=u.view?.groupBy,ee=m(T);T&&!ee&&qb(u,`groupBy`,T);let te=(0,I.useMemo)(()=>{if(b||!T||!ee)return[{key:null,sort:``,label:``,rows:C}];let e=new Map,t=[];for(let n of C){let r=Ie(ee.type,Yr(ee.type,T,n),S)[0];if(!r){t.push(n);continue}let i=e.get(r.value)??{key:r.value,sort:r.sort??r.value,label:r.label,rows:[]};i.rows.push(n),e.set(r.value,i)}let n=[...e.values()].sort((e,t)=>e.sort.localeCompare(t.sort,void 0,{numeric:!0,sensitivity:`base`}));return t.length&&n.push({key:Wb,sort:Wb,label:i(`table.noValue`),rows:t}),n},[C,b,T,ee,S,i]),ne=b||x,re=u.view?.numbered===!0,ie=u.view?.totals;for(let e of Object.keys(ie??{}))m(e)||qb(u,`totals`,e);let ae=!!(ie&&Object.keys(ie).some(e=>m(e))),oe=(e,t)=>(0,L.jsxDEV)(`tr`,{"data-testid":t,className:`text-xs text-muted`,children:[re&&(0,L.jsxDEV)(`td`,{className:`border-b border-border py-1.5 pr-3`},void 0,!1,{fileName:X,lineNumber:252,columnNumber:20},this),d.map((t,r)=>{let a=ie?.[t.key],o=a&&m(t.key)?Yb(a,t,e):void 0;return(0,L.jsxDEV)(`td`,{className:`border-b border-border py-1.5 pr-4 ${Pt(t.type)}`.trim(),children:[r===0&&!ie?.[t.key]?i(`table.total`):null,o===void 0?null:(0,L.jsxDEV)(k,{el:t,field:t.type,value:Zb(t,e,o),mode:`view`,bare:!0,recordCtx:n},void 0,!1,{fileName:X,lineNumber:260,columnNumber:15},this)]},t.key,!0,{fileName:X,lineNumber:257,columnNumber:11},this)}),ne&&(0,L.jsxDEV)(`td`,{className:`border-b border-border`},void 0,!1,{fileName:X,lineNumber:272,columnNumber:20},this)]},void 0,!0,{fileName:X,lineNumber:251,columnNumber:5},this),{rowId:se,updateRow:D,removeRow:le,addRow:ue}=Cb(y,e=>v.onChange(e)),de=(e,t)=>kr(u)?c([u.key,e,t]):void 0,fe=(e,t,r)=>(0,L.jsxDEV)(`tr`,{"data-testid":`table-row-${t}`,children:[re&&(0,L.jsxDEV)(`td`,{className:`border-b border-border py-2 pr-3 text-xs text-muted`,children:r},void 0,!1,{fileName:X,lineNumber:283,columnNumber:20},this),d.map(r=>(0,L.jsxDEV)(`td`,{className:`border-b border-border py-2 pr-4 align-top ${Pt(r.type)}`.trim(),children:[(0,L.jsxDEV)(`span`,{className:`table-cell-label ${ft}`,children:i(r.type.label)},void 0,!1,{fileName:X,lineNumber:289,columnNumber:11},this),Qb(r,e,b,x,e=>D(t,r.key,e),n,de(t,r.key))]},r.key,!0,{fileName:X,lineNumber:285,columnNumber:9},this)),ne&&(0,L.jsxDEV)(`td`,{className:`border-b border-border py-2 align-top`,children:(0,L.jsxDEV)(Ye,{className:`mt-0.5`,onClick:()=>le(t)},void 0,!1,{fileName:X,lineNumber:295,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:294,columnNumber:9},this)]},se(e),!0,{fileName:X,lineNumber:282,columnNumber:5},this),pe=u.view?.summary,me=(e,t)=>(0,L.jsxDEV)(k,{el:e,field:e.type,value:Zb(e,y,t),mode:`view`,recordCtx:n},void 0,!1,{fileName:X,lineNumber:315,columnNumber:5},this),he=Object.entries(pe??{}).flatMap(([e,t])=>{let n=d.find(t=>t.key===e);if(!n)return[];if(t===`range`){let t=Xb(n,y);return t?[{key:e,node:(0,L.jsxDEV)(L.Fragment,{children:[me(n,t[0]),` `,(0,L.jsxDEV)(`span`,{className:`text-muted`,children:`–`},void 0,!1,{fileName:X,lineNumber:328,columnNumber:38},this),` `,me(n,t[1])]},void 0,!0,{fileName:X,lineNumber:327,columnNumber:17},this)}]:[]}let r=Yb(t,n,y);return r===void 0?[]:[{key:e,node:t===`count`?(0,L.jsxDEV)(L.Fragment,{children:r},void 0,!1,{fileName:X,lineNumber:337,columnNumber:45},this):me(n,r)}]}),ge=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[he.length>0&&(0,L.jsxDEV)(`div`,{className:`flex flex-wrap items-baseline gap-x-3 gap-y-1 text-sm text-muted`,"data-testid":`table-summary`,children:he.map((e,t)=>(0,L.jsxDEV)(`span`,{className:`inline-flex items-baseline gap-1 text-text ${t>0?`before:mr-2 before:text-muted before:content-['·']`:``}`,children:e.node},e.key,!1,{fileName:X,lineNumber:345,columnNumber:13},this))},void 0,!1,{fileName:X,lineNumber:343,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`table-fold overflow-auto max-h-[60vh]`,children:(0,L.jsxDEV)(`table`,{className:`w-full border-separate border-spacing-0 text-sm`,"data-testid":`table-block`,children:[(0,L.jsxDEV)(`thead`,{className:`eink-solid sticky top-0 z-10 bg-bg/95 backdrop-blur`,children:(0,L.jsxDEV)(`tr`,{children:[re&&(0,L.jsxDEV)(`th`,{className:`border-b border-border py-1.5 pr-3`},void 0,!1,{fileName:X,lineNumber:365,columnNumber:28},this),d.map(e=>(0,L.jsxDEV)(`th`,{className:`border-b border-border py-1.5 pr-4 text-left ${ft}`,children:(0,L.jsxDEV)(`button`,{type:`button`,className:`inline-flex items-center gap-1 focus-visible:outline-2 focus-visible:outline-accent`,onClick:()=>_(e.key),children:[i(e.type.label),!b&&h?.key===e.key&&(0,L.jsxDEV)(rr,{name:h.dir===`asc`?`lucide:arrow-up`:`lucide:arrow-down`,className:`size-3`},void 0,!1,{fileName:X,lineNumber:377,columnNumber:23},this)]},void 0,!0,{fileName:X,lineNumber:368,columnNumber:19},this)},e.key,!1,{fileName:X,lineNumber:367,columnNumber:17},this)),ne&&(0,L.jsxDEV)(`th`,{className:`border-b border-border`},void 0,!1,{fileName:X,lineNumber:382,columnNumber:28},this)]},void 0,!0,{fileName:X,lineNumber:364,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:363,columnNumber:11},this),te.map(e=>(0,L.jsxDEV)(`tbody`,{children:[e.key!==null&&(0,L.jsxDEV)(`tr`,{"data-testid":`table-group-${e.key}`,children:(0,L.jsxDEV)(`th`,{colSpan:d.length+ +!!re+ +!!ne,className:`border-b border-border pt-4 pb-1 text-left min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted ${ee?Pt(ee.type):``}`.trim(),children:[e.key===Wb||!ee?e.label:(0,L.jsxDEV)(k,{el:ee,field:ee.type,value:e.rows[0]?.[T??``],mode:`view`,bare:!0,recordCtx:n},void 0,!1,{fileName:X,lineNumber:420,columnNumber:23},this),` `,(0,L.jsxDEV)(`span`,{className:`text-faint`,children:e.rows.length},void 0,!1,{fileName:X,lineNumber:429,columnNumber:21},this)]},void 0,!0,{fileName:X,lineNumber:389,columnNumber:19},this)},void 0,!1,{fileName:X,lineNumber:388,columnNumber:17},this),e.rows.map((e,t)=>fe(e,w.get(e)??-1,t+1)),ae&&e.key!==null&&oe(e.rows,`table-subtotal-${e.key}`)]},e.key??`all`,!0,{fileName:X,lineNumber:386,columnNumber:13},this)),ae&&(0,L.jsxDEV)(`tfoot`,{children:oe(y,`table-total`)},void 0,!1,{fileName:X,lineNumber:441,columnNumber:25},this)]},void 0,!0,{fileName:X,lineNumber:362,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:361,columnNumber:7},this),ne&&(0,L.jsxDEV)(Ft,{onClick:ue,children:i(`form.addRow`)},void 0,!1,{fileName:X,lineNumber:444,columnNumber:20},this)]},void 0,!0,{fileName:X,lineNumber:341,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(s)} flex flex-col gap-1 min-w-0`,"data-testid":`table`,children:[u.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(u.label),count:y.length,actions:!x&&v.actions},void 0,!1,{fileName:X,lineNumber:452,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:s+1,children:ge},void 0,!1,{fileName:X,lineNumber:453,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:451,columnNumber:5},this):ge}j({kinds:[`table`],layout:`block`,Page:$b,editor:`own`});var ex=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/properties.tsx`,tx={2:`grid-cols-1 @sm:grid-cols-2`,3:`grid-cols-1 @sm:grid-cols-2 @md:grid-cols-3`,4:`grid-cols-1 @sm:grid-cols-2 @md:grid-cols-4`};function nx({el:e}){let t=e,n=tx[t.view?.columns??2]??tx[2],r=M(),i=(0,L.jsxDEV)(`div`,{className:`@container grid gap-x-4 gap-y-3.5 p-4 rounded-xl border border-border bg-elevated ${n}`,children:r.map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`min-w-0`,"data-testid":`properties-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:ex,lineNumber:30,columnNumber:13},this)},e.name,!1,{fileName:ex,lineNumber:29,columnNumber:11},this))},void 0,!1,{fileName:ex,lineNumber:25,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:i},void 0,!1,{fileName:ex,lineNumber:38,columnNumber:5},this)}j({kinds:[`properties`],layout:`block`,editor:`own`,Page:nx});var rx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/stack.tsx`;function ix({el:e}){let t=e,n=(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-3 w-full`,children:M().map((e,t)=>e.handle.hidden?null:(0,L.jsxDEV)(`div`,{className:`w-full min-w-0`,"data-testid":`stack-item-${t}`,children:(0,L.jsxDEV)(N,{name:e.name},void 0,!1,{fileName:rx,lineNumber:19,columnNumber:13},this)},e.name,!1,{fileName:rx,lineNumber:18,columnNumber:11},this))},void 0,!1,{fileName:rx,lineNumber:14,columnNumber:5},this);return(0,L.jsxDEV)(Iv,{label:t.label,icon:t.icon,children:n},void 0,!1,{fileName:rx,lineNumber:27,columnNumber:5},this)}j({kinds:[`stack`],layout:`block`,editor:`own`,Page:ix});function ax(e){let t=typeof e==`string`?e:typeof e==`number`?String(e):``,n=/^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2})(?::(\d{2}))?)?/.exec(t);if(n)return Date.UTC(Number(n[1]),Number(n[2])-1,Number(n[3]),Number(n[4]??0),Number(n[5]??0),Number(n[6]??0))}function ox(e){if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e==`string`&&e.trim()!==``){let t=Number(e);return Number.isFinite(t)?t:void 0}}function sx(e,t,n){let r=[];for(let i of e){let e=ox(i[t]);e!==void 0&&r.push({value:e,t:ax(i[n]),row:i})}return r.length>1&&r.every(e=>e.t!==void 0)&&r.sort((e,t)=>e.t-t.t),r}function cx(e){return Math.round(e*100)/100}function lx(e,t){let n=t.pad??0,r=Math.max(0,t.width-n*2),i=Math.max(0,t.height-n*2),a=e.filter(e=>Number.isFinite(e.value));if(a.length===0)return{path:``,coords:[],min:void 0,max:void 0};let o=a.map(e=>e.value),s=Math.min(...o),c=Math.max(...o),l=c-s,u=a.map((e,t)=>{let o=a.length>1?t/(a.length-1):0,c=l>0?(e.value-s)/l:.5;return{x:cx(n+o*r),y:cx(n+(1-c)*i)}}),d=u.map((e,t)=>`${t===0?`M`:`L`} ${e.x} ${e.y}`).join(` `);return{path:u.length===1?`${d} L ${u[0].x} ${u[0].y}`:d,coords:u,min:s,max:c}}function ux(e){if(!(e.length<2))return e[e.length-1].value-e[e.length-2].value}var dx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/chart.tsx`,fx={width:100,height:28,pad:2};function px(e){let t=Math.round(e*100)/100;return`${t>0?`+`:``}${t}`}function mx({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),{write:s}=ce(),c=e,l=c.view?.value,u=c.view?.date,d=!!c.view?.delta,f=Sb(c,l),p=Sb(c,u),m=Xh(r,t,e=>s(e)),h=Array.isArray(m.value)?m.value:[],g=m.mode!==`view`;if(!l||!u||!f||!p)return(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:t,onChange:e=>void s(e),recordCtx:n,mode:r},void 0,!1,{fileName:dx,lineNumber:75,columnNumber:7},this);let _=sx(h,l,u),v=lx(_,fx),y=_[_.length-1],b=d?ux(_):void 0,x=(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:m.value,onChange:e=>m.onChange(e),recordCtx:n,mode:`edit`},void 0,!1,{fileName:dx,lineNumber:95,columnNumber:5},this),S=e=>(0,L.jsxDEV)(k,{el:f,field:f.type,value:e.row?.[l]??e.value,mode:`view`,bare:!0,recordCtx:n},void 0,!1,{fileName:dx,lineNumber:109,columnNumber:5},this),C=_.length?_.reduce((e,t)=>t.value<e.value?t:e):void 0,w=_.length?_.reduce((e,t)=>t.value>e.value?t:e):void 0,T=y===void 0?(0,L.jsxDEV)(`p`,{className:`py-1 text-sm text-muted`,"data-testid":`chart-empty`,children:i(`form.noSeries`,`No readings yet`)},void 0,!1,{fileName:dx,lineNumber:123,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,"data-testid":`chart-body`,children:[(0,L.jsxDEV)(`div`,{className:`flex items-baseline gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 text-2xl font-semibold text-text ${Pt(f.type)}`.trim(),"data-testid":`chart-last`,children:S(y)},void 0,!1,{fileName:dx,lineNumber:129,columnNumber:11},this),b!==void 0&&(0,L.jsxDEV)(`span`,{className:`text-sm font-medium tabular-nums ${b>0?`text-success`:b<0?`text-danger`:`text-muted`}`,"data-testid":`chart-delta`,children:px(b)},void 0,!1,{fileName:dx,lineNumber:143,columnNumber:13},this)]},void 0,!0,{fileName:dx,lineNumber:128,columnNumber:9},this),(0,L.jsxDEV)(`svg`,{className:`h-12 w-full text-accent`,viewBox:`0 0 ${fx.width} ${fx.height}`,preserveAspectRatio:`none`,"aria-hidden":`true`,"data-testid":`chart-spark`,children:(0,L.jsxDEV)(`path`,{d:v.path,"data-testid":`chart-path`,fill:`none`,stroke:`currentColor`,strokeWidth:1.5,strokeLinecap:`round`,strokeLinejoin:`round`,vectorEffect:`non-scaling-stroke`},void 0,!1,{fileName:dx,lineNumber:160,columnNumber:11},this)},void 0,!1,{fileName:dx,lineNumber:151,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex items-baseline gap-1 text-[10px] text-muted ${Pt(f.type)}`.trim(),"data-testid":`chart-range`,children:[C&&S(C),(0,L.jsxDEV)(`span`,{"aria-hidden":`true`,children:`–`},void 0,!1,{fileName:dx,lineNumber:182,columnNumber:11},this),w&&S(w)]},void 0,!0,{fileName:dx,lineNumber:177,columnNumber:9},this)]},void 0,!0,{fileName:dx,lineNumber:127,columnNumber:7},this),ee=g?x:T;return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`chart`,children:[c.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(c.label),count:h.length,actions:m.actions},void 0,!1,{fileName:dx,lineNumber:194,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:ee},void 0,!1,{fileName:dx,lineNumber:195,columnNumber:7},this)]},void 0,!0,{fileName:dx,lineNumber:193,columnNumber:5},this):ee}j({kinds:[`chart`],layout:`block`,Page:mx,editor:`own`});var hx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web-ui/src/render/blocks/heatmap.tsx`,gx=864e5,_x=4,vx=260;function yx(e,t,n){return!Number.isFinite(e)||e<=0?0:n===t?Math.ceil(_x/2):Math.min(_x,Math.max(1,Math.ceil(e/n*_x)))}function bx(e){return Math.floor(e/gx)*gx}function xx(e){return new Date(e).toISOString().slice(0,10)}function Sx(e){return(new Date(e).getUTCDay()+6)%7}function Cx(e){return e-Sx(e)*gx}function wx(e){return e+(6-Sx(e))*gx}function Tx(e){if(e.size===0)return;let t=[...e.keys()].sort((e,t)=>e-t),n=t[0],r=t[t.length-1];if(Math.round((wx(r)-Cx(n)+gx)/(gx*7))>vx){let i=Ex(t,e);n=i.from,r=i.to}let i=0;for(let[t,a]of e)(t<n||t>r)&&(i+=a);let a=Cx(n),o=wx(r),s=[];for(let e=a;e<=o;e+=gx)s.push(e);return{days:s,from:n,to:r,clipped:i}}function Ex(e,t){let n=(vx*7-1)*gx,r=0,i=0,a=0,o=-1,s=Cx(e[0]);for(let c of e){let l=Cx(c),u=l+n;for(;i<e.length&&e[i]<=u;)a+=t.get(e[i++]);for(;r<e.length&&e[r]<l;)a-=t.get(e[r++]);a>=o&&(o=a,s=l)}let c=e.filter(e=>e>=s&&e<=s+n);return{from:c[0],to:c[c.length-1]}}var Dx=[`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`,`Su`];function Ox({el:e,value:t,recordCtx:n,mode:r}){let{t:i}=a(),o=Un(),{write:s}=ce(),c=e,l=c.view?.date,u=Sb(c,l),d=Xh(r,t,e=>s(e)),f=Array.isArray(d.value)?d.value:[],p=d.mode!==`view`;if(!l||!u)return(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:t,onChange:e=>void s(e),recordCtx:n,mode:r},void 0,!1,{fileName:hx,lineNumber:233,columnNumber:7},this);let m=new Map,h=0;for(let e of f){let t=ax(e[l]);if(t===void 0){h+=1;continue}let n=bx(t);m.set(n,(m.get(n)??0)+1)}let g=Tx(m),_=g?[...m.entries()].filter(([e])=>e>=g.from&&e<=g.to).map(([,e])=>e):[],v=_.length?Math.max(..._):0,y=_.length?Math.min(..._):0,b=h+(g?.clipped??0),x=(0,L.jsxDEV)(ug,{group:{...c,kind:void 0},value:d.value,onChange:e=>d.onChange(e),recordCtx:n,mode:`edit`},void 0,!1,{fileName:hx,lineNumber:272,columnNumber:5},this),S=g?Array.from({length:g.days.length/7},(e,t)=>{let n=g.days[t*7],r=t>0?g.days[(t-1)*7]:void 0,i=new Date(n).getUTCMonth();return(0,L.jsxDEV)(`div`,{className:`h-3 whitespace-nowrap`,children:r===void 0||new Date(r).getUTCMonth()!==i?new Date(n).toLocaleDateString(void 0,{month:`short`,timeZone:`UTC`}):``},t,!1,{fileName:hx,lineNumber:288,columnNumber:11},this)}):[],C=(g?.days??[]).map(e=>{if(e<g.from||e>g.to)return(0,L.jsxDEV)(`div`,{className:`h-4 w-4`,"data-testid":`heatmap-pad`},e,!1,{fileName:hx,lineNumber:301,columnNumber:14},this);let t=m.get(e)??0,n=yx(t,y,v),r=xx(e);return(0,L.jsxDEV)(`div`,{"data-testid":`heatmap-day-${r}`,"data-count":t,"data-level":n,title:`${r} · ${t}`,className:`relative h-4 w-4 overflow-hidden rounded-[3px] border border-border`,children:[n>0&&(0,L.jsxDEV)(`span`,{"aria-hidden":!0,className:`absolute inset-x-0 bottom-0 bg-accent/15`,style:{height:`${Math.round(n/_x*100)}%`}},void 0,!1,{fileName:hx,lineNumber:319,columnNumber:11},this),t>0&&(0,L.jsxDEV)(`span`,{className:`sr-only`,children:`${r} · ${t}`},void 0,!1,{fileName:hx,lineNumber:327,columnNumber:23},this)]},e,!0,{fileName:hx,lineNumber:307,columnNumber:7},this)}),w=g===void 0?(0,L.jsxDEV)(`p`,{className:`py-1 text-sm text-muted`,"data-testid":`heatmap-empty`,children:i(`form.noDates`,`No dated entries yet`)},void 0,!1,{fileName:hx,lineNumber:334,columnNumber:7},this):(0,L.jsxDEV)(`div`,{className:`max-w-full overflow-x-auto`,"data-testid":`heatmap-body`,children:(0,L.jsxDEV)(`div`,{className:`inline-flex flex-col gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`flex gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`w-5 shrink-0`},void 0,!1,{fileName:hx,lineNumber:341,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`grid grid-flow-col auto-cols-[1rem] gap-1 text-[9px] leading-3 text-muted`,children:S},void 0,!1,{fileName:hx,lineNumber:342,columnNumber:13},this)]},void 0,!0,{fileName:hx,lineNumber:340,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex gap-1`,children:[(0,L.jsxDEV)(`div`,{className:`grid w-5 shrink-0 grid-rows-7 gap-1 text-[9px] leading-4 text-muted`,children:Dx.map((e,t)=>(0,L.jsxDEV)(`div`,{children:t%2==0?e:``},e,!1,{fileName:hx,lineNumber:351,columnNumber:17},this))},void 0,!1,{fileName:hx,lineNumber:347,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`grid grid-rows-7 grid-flow-col auto-cols-[1rem] gap-1`,"data-testid":`heatmap-grid`,children:C},void 0,!1,{fileName:hx,lineNumber:354,columnNumber:13},this)]},void 0,!0,{fileName:hx,lineNumber:346,columnNumber:11},this)]},void 0,!0,{fileName:hx,lineNumber:339,columnNumber:9},this)},void 0,!1,{fileName:hx,lineNumber:338,columnNumber:7},this),T=p?x:(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[w,b>0&&(0,L.jsxDEV)(`p`,{className:`text-[11px] text-muted`,"data-testid":`heatmap-offgrid`,children:i(`form.offGrid`,{n:b,defaultValue:`{{n}} not on the grid`})},void 0,!1,{fileName:hx,lineNumber:368,columnNumber:9},this)]},void 0,!0,{fileName:hx,lineNumber:365,columnNumber:5},this);return r===`view`?(0,L.jsxDEV)(`section`,{className:`${Et(o)} flex flex-col gap-1 min-w-0`,"data-testid":`heatmap`,children:[c.label&&(0,L.jsxDEV)(qe,{as:`h3`,label:i(c.label),count:f.length,actions:d.actions},void 0,!1,{fileName:hx,lineNumber:379,columnNumber:23},this),(0,L.jsxDEV)(xt,{depth:o+1,children:T},void 0,!1,{fileName:hx,lineNumber:380,columnNumber:7},this)]},void 0,!0,{fileName:hx,lineNumber:378,columnNumber:5},this):T}j({kinds:[`heatmap`],layout:`block`,Page:Ox,editor:`own`});var kx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/admin/internal-api-token-renderer.tsx`;function Ax(){let e=crypto.getRandomValues(new Uint8Array(32)),t=``;for(let n of e)t+=String.fromCharCode(n);return btoa(t).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/,``)}function jx({label:e}){let{t}=a(),[n,r]=(0,I.useState)([]),[i,o]=(0,I.useState)(``),[s,c]=(0,I.useState)(null),[l,u]=(0,I.useState)(!1);function d(){ea().then(e=>e.ok&&r(e.data))}(0,I.useEffect)(d,[]);async function f(){if(!i.trim())return;u(!0);let e=Ax(),n=await ta(i.trim(),e);u(!1),n.ok?(c(e),o(``),d()):Lt.error(t(`auth.genericError`))}async function p(e){await Ke({title:t(`auth.tokenConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await ca(e)).ok?d():Lt.error(t(`auth.genericError`)))}return(0,L.jsxDEV)(`div`,{children:[(0,L.jsxDEV)(`h2`,{className:`mb-2 ${ft}`,children:t(e||`auth.tokensTitle`)},void 0,!1,{fileName:kx,lineNumber:72,columnNumber:7},this),s&&(0,L.jsxDEV)(ut,{className:`mb-3 break-all`,children:[t(`auth.tokenCreatedOnce`),` `,(0,L.jsxDEV)(`code`,{children:s},void 0,!1,{fileName:kx,lineNumber:75,columnNumber:40},this)]},void 0,!0,{fileName:kx,lineNumber:74,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`mb-3 flex gap-2`,children:[(0,L.jsxDEV)(P,{placeholder:t(`auth.tokenNamePlaceholder`),value:i,onChange:e=>o(e.target.value)},void 0,!1,{fileName:kx,lineNumber:79,columnNumber:9},this),(0,L.jsxDEV)(F,{type:`button`,disabled:l||!i.trim(),onClick:f,children:t(`auth.tokenCreate`)},void 0,!1,{fileName:kx,lineNumber:80,columnNumber:9},this)]},void 0,!0,{fileName:kx,lineNumber:78,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,L.jsxDEV)(On,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.name},void 0,!1,{fileName:kx,lineNumber:88,columnNumber:15},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:kx,lineNumber:89,columnNumber:15},this)]},void 0,!0,{fileName:kx,lineNumber:87,columnNumber:13},this),(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`sm`,type:`button`,onClick:()=>p(e.id),className:`shrink-0`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:kx,lineNumber:93,columnNumber:13},this)]},e.id,!0,{fileName:kx,lineNumber:86,columnNumber:11},this))},void 0,!1,{fileName:kx,lineNumber:84,columnNumber:7},this)]},void 0,!0,{fileName:kx,lineNumber:71,columnNumber:5},this)}j({kinds:[`internalApiToken`],layout:`block`,Page:jx,editor:`own`});var Mx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/admin/internal-oauth-grants-renderer.tsx`;function Nx({label:e}){let{t}=a(),[n,r]=(0,I.useState)([]);function i(){ia().then(e=>e.ok&&r(e.data))}(0,I.useEffect)(i,[]);async function o(e){await Ke({title:t(`auth.grantConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await Yi(e)).ok?i():Lt.error(t(`auth.genericError`)))}return(0,L.jsxDEV)(`div`,{children:[(0,L.jsxDEV)(`h2`,{className:`mb-2 ${ft}`,children:t(e||`auth.grantsTitle`)},void 0,!1,{fileName:Mx,lineNumber:45,columnNumber:7},this),n.length===0?(0,L.jsxDEV)(`p`,{className:`text-sm text-muted`,children:t(`auth.grantsEmpty`)},void 0,!1,{fileName:Mx,lineNumber:47,columnNumber:9},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,L.jsxDEV)(On,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.clientName},void 0,!1,{fileName:Mx,lineNumber:53,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:Mx,lineNumber:54,columnNumber:17},this)]},void 0,!0,{fileName:Mx,lineNumber:52,columnNumber:15},this),(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`sm`,type:`button`,onClick:()=>o(e.clientId),className:`shrink-0`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:Mx,lineNumber:58,columnNumber:15},this)]},e.clientId,!0,{fileName:Mx,lineNumber:51,columnNumber:13},this))},void 0,!1,{fileName:Mx,lineNumber:49,columnNumber:9},this)]},void 0,!0,{fileName:Mx,lineNumber:44,columnNumber:5},this)}j({kinds:[`internalOauthGrants`],layout:`block`,Page:Nx,editor:`own`}),_l(xn);var Px=[{pattern:`/`,purpose:`dashboard`},{pattern:`/trash`,purpose:`reversible trash for deleted records`},{pattern:`/settings`,purpose:`settings index`},{pattern:`/settings/diagnostics`,purpose:`runtime and agent diagnostics (admin)`},{pattern:`/settings/account`,purpose:`the signed-in user's own account settings`},{pattern:`/settings/users`,purpose:`user list (admin)`},{pattern:`/settings/users/new`,purpose:`form for a new user (admin)`},{pattern:`/settings/users/:id`,purpose:`one user (admin)`},{pattern:`/settings/:groupId`,purpose:`one settings group (a plugin, or the instance itself)`},{pattern:`/:library/:shelf`,purpose:`list of every record on a shelf`},{pattern:`/:library/:shelf/new`,purpose:`form for a new record on a shelf`},{pattern:`/:library/:shelf/:id`,purpose:`page of one record`}],Z=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/LoginPage.tsx`,Fx=jr({login:Dr.string({label:`auth.login`,required:!0}),password:Dr.password({label:`auth.password`,required:!0})});function Ix(){let{t:e}=a(),{values:t,bridge:n}=Jt({fm:Kr(Fx),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`login`},initial:{login:``,password:``}}),[r,i]=(0,I.useState)(null),[o,s]=(0,I.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await pa(t.login,t.password);if(s(!1),!r.ok){i(r.status===401?e(`auth.invalidCredentials`):e(`auth.genericError`));return}window.location.href=`/`}return(0,L.jsxDEV)(`main`,{className:`login-page`,children:[(0,L.jsxDEV)(`div`,{className:`login-orb login-orb-one`,"aria-hidden":`true`},void 0,!1,{fileName:Z,lineNumber:48,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`login-orb login-orb-two`,"aria-hidden":`true`},void 0,!1,{fileName:Z,lineNumber:49,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`login-shell`,children:[(0,L.jsxDEV)(`section`,{className:`login-intro`,"aria-label":`Coffer`,children:[(0,L.jsxDEV)(`div`,{className:`login-brand`,children:[(0,L.jsxDEV)(`span`,{className:`login-brand-mark`,"aria-hidden":`true`,children:[(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:55,columnNumber:15},this),(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:56,columnNumber:15},this),(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:57,columnNumber:15},this),(0,L.jsxDEV)(`i`,{},void 0,!1,{fileName:Z,lineNumber:58,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:54,columnNumber:13},this),(0,L.jsxDEV)(`span`,{children:`Coffer`},void 0,!1,{fileName:Z,lineNumber:60,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:53,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`login-intro-copy`,children:[(0,L.jsxDEV)(`p`,{className:`login-eyebrow`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:Z,lineNumber:63,columnNumber:13},this),(0,L.jsxDEV)(`h2`,{children:e(`auth.welcomeTitle`)},void 0,!1,{fileName:Z,lineNumber:64,columnNumber:13},this),(0,L.jsxDEV)(`p`,{children:e(`auth.welcomeText`)},void 0,!1,{fileName:Z,lineNumber:65,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:62,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`login-status`,children:[(0,L.jsxDEV)(`span`,{className:`login-status-dot`,"aria-hidden":`true`},void 0,!1,{fileName:Z,lineNumber:68,columnNumber:13},this),(0,L.jsxDEV)(`span`,{children:e(`auth.secureConnection`)},void 0,!1,{fileName:Z,lineNumber:69,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:67,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:52,columnNumber:9},this),(0,L.jsxDEV)(`form`,{onSubmit:c,className:`login-card`,children:[(0,L.jsxDEV)(`div`,{className:`login-card-heading`,children:[(0,L.jsxDEV)(`div`,{className:`login-mobile-brand`,children:`Coffer`},void 0,!1,{fileName:Z,lineNumber:75,columnNumber:13},this),(0,L.jsxDEV)(`p`,{className:`login-card-kicker`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:Z,lineNumber:76,columnNumber:13},this),(0,L.jsxDEV)(`h1`,{children:e(`auth.loginTitle`)},void 0,!1,{fileName:Z,lineNumber:77,columnNumber:13},this),(0,L.jsxDEV)(`p`,{className:`login-card-subtitle`,children:e(`auth.welcomeText`)},void 0,!1,{fileName:Z,lineNumber:78,columnNumber:13},this)]},void 0,!0,{fileName:Z,lineNumber:74,columnNumber:11},this),r&&(0,L.jsxDEV)(`div`,{className:`login-error`,role:`alert`,children:r},void 0,!1,{fileName:Z,lineNumber:81,columnNumber:13},this),(0,L.jsxDEV)(`div`,{className:`login-fields`,children:(0,L.jsxDEV)(ke,{items:Fx,ctx:{bridge:n}},void 0,!1,{fileName:Z,lineNumber:86,columnNumber:13},this)},void 0,!1,{fileName:Z,lineNumber:85,columnNumber:11},this),(0,L.jsxDEV)(F,{type:`submit`,disabled:o,className:`login-submit`,children:[(0,L.jsxDEV)(`span`,{children:o?`…`:e(`auth.signIn`)},void 0,!1,{fileName:Z,lineNumber:89,columnNumber:13},this),!o&&(0,L.jsxDEV)(`span`,{className:`login-submit-arrow`,"aria-hidden":`true`,children:`→`},void 0,!1,{fileName:Z,lineNumber:91,columnNumber:15},this)]},void 0,!0,{fileName:Z,lineNumber:88,columnNumber:11},this),(0,L.jsxDEV)(`p`,{className:`login-footer`,children:e(`auth.secureConnection`)},void 0,!1,{fileName:Z,lineNumber:96,columnNumber:11},this)]},void 0,!0,{fileName:Z,lineNumber:73,columnNumber:9},this)]},void 0,!0,{fileName:Z,lineNumber:51,columnNumber:7},this)]},void 0,!0,{fileName:Z,lineNumber:47,columnNumber:5},this)}var Lx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SetupPage.tsx`,Rx=jr({displayName:Dr.string({label:`auth.displayName`,required:!0}),login:Dr.string({label:`auth.login`,required:!0}),password:Dr.password({label:`auth.password`,required:!0})});function zx(){let{t:e}=a(),{values:t,bridge:n}=Jt({fm:Kr(Rx),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`setup`},initial:{displayName:``,login:``,password:``}}),[r,i]=(0,I.useState)(null),[o,s]=(0,I.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await oa(t.login,t.password,t.displayName);if(s(!1),!r.ok){i(e(`auth.genericError`));return}window.location.href=`/`}return(0,L.jsxDEV)(`div`,{className:`flex min-h-dvh items-center justify-center bg-bg px-4`,children:(0,L.jsxDEV)(`form`,{onSubmit:c,className:`w-full max-w-sm rounded-2xl border border-border bg-surface p-6`,children:[(0,L.jsxDEV)(`h1`,{className:`mb-6 text-xl font-bold text-text`,children:e(`auth.setupTitle`)},void 0,!1,{fileName:Lx,lineNumber:49,columnNumber:9},this),r&&(0,L.jsxDEV)(ut,{tone:`danger`,className:`mb-4`,children:r},void 0,!1,{fileName:Lx,lineNumber:51,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`mb-5 flex flex-col gap-3`,children:(0,L.jsxDEV)(ke,{items:Rx,ctx:{bridge:n}},void 0,!1,{fileName:Lx,lineNumber:56,columnNumber:11},this)},void 0,!1,{fileName:Lx,lineNumber:55,columnNumber:9},this),(0,L.jsxDEV)(F,{type:`submit`,disabled:o,className:`w-full`,children:e(`auth.createAccount`)},void 0,!1,{fileName:Lx,lineNumber:58,columnNumber:9},this)]},void 0,!0,{fileName:Lx,lineNumber:48,columnNumber:7},this)},void 0,!1,{fileName:Lx,lineNumber:47,columnNumber:5},this)}var Bx=`coffer-collapsed-libraries`;function Vx(){try{let e=localStorage.getItem(Bx);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function Hx(){let[e,t]=(0,I.useState)(()=>Vx());return{collapsed:e,toggle:(0,I.useCallback)(e=>{t(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{localStorage.setItem(Bx,JSON.stringify([...n]))}catch{}return n})},[])}}var Ux=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/SidebarNav.tsx`;function Wx({onSearchOpen:e}){let{t}=a(),{collapsed:n,toggle:r}=Hx(),i=Bi();return(0,L.jsxDEV)(`aside`,{className:`hidden nav:flex flex-col w-52 shrink-0 bg-surface border-r border-border h-dvh fixed top-0 left-0 z-30`,children:[(0,L.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto px-3 py-4`,children:[(0,L.jsxDEV)(u,{to:`/`,className:`flex items-center gap-2 mb-4 px-2 group`,title:t(`nav.home`),children:[(0,L.jsxDEV)(`div`,{className:`w-7 h-7 border border-accent rounded-lg flex items-center justify-center text-accent text-xs font-bold`,children:`S`},void 0,!1,{fileName:Ux,lineNumber:24,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`font-bold text-text group-hover:text-accent transition-colors`,children:`Coffer`},void 0,!1,{fileName:Ux,lineNumber:27,columnNumber:11},this)]},void 0,!0,{fileName:Ux,lineNumber:23,columnNumber:9},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:e,"aria-label":t(`search.title`),title:t(`search.title`),className:`flex w-full items-center gap-2 px-3 py-1.5 mb-3 rounded-lg text-sm text-muted bg-elevated border border-border hover:border-accent hover:text-text transition-colors`,children:[(0,L.jsxDEV)(nt,{size:14,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:36,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`flex-1 text-left truncate`,children:t(`search.title`)},void 0,!1,{fileName:Ux,lineNumber:37,columnNumber:11},this),(0,L.jsxDEV)(`kbd`,{className:`hidden lg:inline-flex items-center gap-0.5 text-[10px] text-muted border border-border rounded px-1`,children:`⌘K`},void 0,!1,{fileName:Ux,lineNumber:38,columnNumber:11},this)]},void 0,!0,{fileName:Ux,lineNumber:29,columnNumber:9},this),i.map(e=>{let i=n.has(e.meta.id);return(0,L.jsxDEV)(`div`,{className:`mb-0.5`,children:[(0,L.jsxDEV)(`button`,{type:`button`,onClick:()=>r(e.meta.id),className:`flex w-full items-center justify-between px-3 py-1.5 rounded-lg hover:bg-elevated hover:text-text transition-colors ${ft}`,children:[(0,L.jsxDEV)(`span`,{className:`truncate`,children:t(e.meta.label)},void 0,!1,{fileName:Ux,lineNumber:51,columnNumber:17},this),(0,L.jsxDEV)(vi,{size:13,className:`shrink-0 transition-transform ${i?`-rotate-90`:``}`},void 0,!1,{fileName:Ux,lineNumber:52,columnNumber:17},this)]},void 0,!0,{fileName:Ux,lineNumber:46,columnNumber:15},this),!i&&(0,L.jsxDEV)(L.Fragment,{children:[Mi(e.meta.id).map(n=>(0,L.jsxDEV)(u,{to:`/${e.meta.id}/${n.id}`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:n.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:62,columnNumber:23},this),t(n.label)]},n.id,!0,{fileName:Ux,lineNumber:57,columnNumber:21},this)),e.shelves.filter(e=>e.standalone!==!1).map(e=>(0,L.jsxDEV)(u,{to:`/${e.library}/${e.shelf}`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:74,columnNumber:25},this),t(e.label)]},e.shelf,!0,{fileName:Ux,lineNumber:69,columnNumber:23},this))]},void 0,!0,{fileName:Ux,lineNumber:55,columnNumber:17},this)]},e.meta.id,!0,{fileName:Ux,lineNumber:45,columnNumber:13},this)}),ni().map(e=>(0,L.jsxDEV)(u,{to:e.to,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:85,columnNumber:13},this),t(e.labelKey)]},e.to,!0,{fileName:Ux,lineNumber:84,columnNumber:11},this))]},void 0,!0,{fileName:Ux,lineNumber:22,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`border-t border-border p-2 space-y-1`,children:[(0,L.jsxDEV)(fi,{},void 0,!1,{fileName:Ux,lineNumber:93,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/trash`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:`lucide:trash-2`,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:95,columnNumber:11},this),` `,t(`nav.trash`)]},void 0,!0,{fileName:Ux,lineNumber:94,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/settings`,className:({isActive:e})=>Dn(e),children:[(0,L.jsxDEV)(rr,{name:`lucide:settings`,size:17,className:`shrink-0`},void 0,!1,{fileName:Ux,lineNumber:98,columnNumber:11},this),` `,t(`nav.settings`)]},void 0,!0,{fileName:Ux,lineNumber:97,columnNumber:9},this)]},void 0,!0,{fileName:Ux,lineNumber:92,columnNumber:7},this)]},void 0,!0,{fileName:Ux,lineNumber:21,columnNumber:5},this)}var Gx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/BottomNav.tsx`;function Kx({onSearchOpen:e}){let{t}=a();return(0,L.jsxDEV)(`nav`,{className:`nav:hidden fixed bottom-0 left-0 right-0 z-40 border-t border-border bg-surface pb-[env(safe-area-inset-bottom)]`,children:(0,L.jsxDEV)(`div`,{className:`flex items-stretch`,children:[(0,L.jsxDEV)(u,{to:`/`,end:!0,className:({isActive:e})=>`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,L.jsxDEV)(Re,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:22,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.home`)},void 0,!1,{fileName:Gx,lineNumber:23,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:14,columnNumber:9},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:e,className:`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors text-muted hover:text-text`,children:[(0,L.jsxDEV)(nt,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:30,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.search`)},void 0,!1,{fileName:Gx,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:25,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/settings`,className:({isActive:e})=>`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,L.jsxDEV)(sr,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:40,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.settings`)},void 0,!1,{fileName:Gx,lineNumber:41,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:33,columnNumber:9},this),(0,L.jsxDEV)(u,{to:`/trash`,className:({isActive:e})=>`flex min-h-11 flex-1 touch-manipulation flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,L.jsxDEV)(ur,{size:20,className:`shrink-0`},void 0,!1,{fileName:Gx,lineNumber:50,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.trash`)},void 0,!1,{fileName:Gx,lineNumber:51,columnNumber:11},this)]},void 0,!0,{fileName:Gx,lineNumber:43,columnNumber:9},this)]},void 0,!0,{fileName:Gx,lineNumber:13,columnNumber:7},this)},void 0,!1,{fileName:Gx,lineNumber:12,columnNumber:5},this)}var qx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/CommandPalette.tsx`;function Jx({open:e,onClose:t}){let{t:n}=a(),r=v(),[i,o]=(0,I.useState)(``),[s,c]=(0,I.useState)([]),[l,u]=(0,I.useState)(!1),[d,f]=(0,I.useState)(0),p=(0,I.useRef)(null);(0,I.useEffect)(()=>{e&&(o(``),c([]),f(0),setTimeout(()=>p.current?.focus(),50))},[e]),(0,I.useEffect)(()=>{if(i.length<2){c([]);return}let e=setTimeout(async()=>{u(!0);try{let e=await fetch(`/api/search?q=${encodeURIComponent(i)}&limit=15`);c(e.ok?await e.json():[])}catch{c([])}finally{u(!1)}},250);return()=>clearTimeout(e)},[i]);let m=Bi().flatMap(e=>e.shelves.filter(e=>e.standalone!==!1).map(t=>({v:e,m:t}))),h=m.filter(({m:e})=>!i||n(e.label).toLowerCase().includes(i.toLowerCase())).map(({v:e,m:t})=>({kind:`shelf`,label:n(t.label),sub:n(e.meta.label),icon:t.icon,to:`/${t.library}/${t.shelf}`})),g=s.map(e=>{let t=m.find(({m:t})=>t.library===e.library&&t.shelf===e.shelf)?.m;return{kind:`record`,label:e.label||e.id,sub:e.snippet===e.label?t?n(t.label):e.shelf:e.snippet,icon:t?.icon,to:`/${e.library}/${e.shelf}/${e.id}`}}),_=i.length>=2?[...g,...h.slice(0,5)]:h,y=_.length>0?Math.min(d,_.length-1):0;function b(e){r(e.to),t()}function x(e){if(e.key===`Escape`){t();return}e.key===`ArrowDown`&&(e.preventDefault(),f(e=>Math.min(e+1,_.length-1))),e.key===`ArrowUp`&&(e.preventDefault(),f(e=>Math.max(e-1,0))),e.key===`Enter`&&_[y]&&b(_[y])}if(!e)return null;let S=i.length<2,C=i.length>=2&&g.length>0,w=i.length>=2&&h.length>0,T=_.length===0&&!l;return(0,L.jsxDEV)(`div`,{className:`fixed inset-0 z-[60] flex items-start justify-center pt-[10vh] px-4`,onClick:e=>{e.target===e.currentTarget&&t()},children:[(0,L.jsxDEV)(`div`,{className:`absolute inset-0 bg-bg/70 backdrop-blur-sm`,onClick:t},void 0,!1,{fileName:qx,lineNumber:140,columnNumber:7},this),(0,L.jsxDEV)(`div`,{role:`dialog`,"aria-label":n(`search.title`),className:`relative w-full max-w-lg bg-surface border border-border rounded-xl shadow-xl overflow-hidden`,children:[(0,L.jsxDEV)(`div`,{className:`px-4 pt-3 pb-1 ${ft}`,children:n(`search.title`)},void 0,!1,{fileName:qx,lineNumber:149,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`flex items-center gap-2 px-4 py-3 border-b border-border`,children:[(0,L.jsxDEV)(nt,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:qx,lineNumber:152,columnNumber:11},this),(0,L.jsxDEV)(`input`,{ref:p,type:`text`,value:i,onChange:e=>{o(e.target.value),f(0)},onKeyDown:x,placeholder:n(`search.placeholder`),"aria-label":n(`search.title`),className:`flex-1 bg-transparent text-text placeholder:text-muted outline-none text-sm`},void 0,!1,{fileName:qx,lineNumber:153,columnNumber:11},this),l&&(0,L.jsxDEV)(`span`,{className:`text-xs text-muted`,children:n(`common.loading`)},void 0,!1,{fileName:qx,lineNumber:166,columnNumber:23},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:t,className:`text-muted hover:text-text transition-colors`,children:(0,L.jsxDEV)(mi,{size:16},void 0,!1,{fileName:qx,lineNumber:168,columnNumber:13},this)},void 0,!1,{fileName:qx,lineNumber:167,columnNumber:11},this)]},void 0,!0,{fileName:qx,lineNumber:151,columnNumber:9},this),(0,L.jsxDEV)(`ul`,{className:`max-h-80 overflow-y-auto py-1`,children:[T&&i.length>=2&&(0,L.jsxDEV)(`li`,{className:`px-4 py-6 text-center text-muted text-sm`,children:n(`search.noResults`)},void 0,!1,{fileName:qx,lineNumber:175,columnNumber:13},this),S&&(0,L.jsxDEV)(`li`,{className:`px-4 py-1.5 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(`search.allShelves`)},void 0,!1,{fileName:qx,lineNumber:177,columnNumber:33},this),C&&(0,L.jsxDEV)(`li`,{className:`px-4 py-1.5 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(`search.results`)},void 0,!1,{fileName:qx,lineNumber:178,columnNumber:33},this),_.map((e,t)=>(0,L.jsxDEV)(`li`,{children:[i.length>=2&&t>=g.length&&t===g.length&&w&&(0,L.jsxDEV)(`div`,{className:`px-4 py-1.5 border-t border-border mt-1 pt-2 min-w-0 font-sans text-[11px] font-medium tracking-wide text-muted`,children:n(`search.allShelves`)},void 0,!1,{fileName:qx,lineNumber:185,columnNumber:19},this),(0,L.jsxDEV)(`button`,{type:`button`,onClick:()=>b(e),onMouseEnter:()=>f(t),className:`w-full flex items-center gap-3 px-4 py-2 text-left transition-colors ${t===y?`bg-bg font-medium text-text`:`text-text hover:bg-elevated`}`,children:[e.icon&&(0,L.jsxDEV)(rr,{name:e.icon,size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:qx,lineNumber:197,columnNumber:33},this),(0,L.jsxDEV)(`span`,{className:`flex-1 min-w-0`,children:[(0,L.jsxDEV)(`span`,{className:`block text-sm font-medium truncate`,children:e.label},void 0,!1,{fileName:qx,lineNumber:199,columnNumber:21},this),e.sub&&(0,L.jsxDEV)(`span`,{className:`block text-xs text-muted truncate`,children:e.sub},void 0,!1,{fileName:qx,lineNumber:200,columnNumber:34},this)]},void 0,!0,{fileName:qx,lineNumber:198,columnNumber:19},this)]},void 0,!0,{fileName:qx,lineNumber:189,columnNumber:17},this)]},`${e.to}-${t}`,!0,{fileName:qx,lineNumber:183,columnNumber:15},this))]},void 0,!0,{fileName:qx,lineNumber:173,columnNumber:9},this)]},void 0,!0,{fileName:qx,lineNumber:143,columnNumber:7},this)]},void 0,!0,{fileName:qx,lineNumber:131,columnNumber:5},this)}var Yx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Dashboard.tsx`;function Xx(){let[e,t]=(0,I.useState)({});return(0,I.useEffect)(()=>{let e=new AbortController;return fetch(`/api/counts`,{signal:e.signal}).then(e=>e.ok?e.json():{}).then(t).catch(()=>{}),()=>e.abort()},[]),e}function Zx(){let{t:e}=a(),t=Xx(),n=Bi();return(0,L.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,L.jsxDEV)(`div`,{className:`mx-auto max-w-5xl px-5 py-8 md:px-8`,children:[(0,L.jsxDEV)(`h1`,{className:`mb-6 ${Ht}`,children:e(`dashboard.title`)},void 0,!1,{fileName:Yx,lineNumber:29,columnNumber:9},this),n.length===0?(0,L.jsxDEV)(`p`,{className:`text-muted`,children:e(`dashboard.empty`)},void 0,!1,{fileName:Yx,lineNumber:31,columnNumber:11},this):(0,L.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:n.map(n=>{let r=n.shelves.filter(e=>e.standalone!==!1);return r.length===0?null:(0,L.jsxDEV)(`section`,{className:`rounded-2xl border border-border bg-surface p-4`,children:[(0,L.jsxDEV)(`h2`,{className:`mb-3 flex items-center gap-2 ${ft}`,children:[n.meta.icon&&(0,L.jsxDEV)(rr,{name:n.meta.icon,size:16,className:`shrink-0`},void 0,!1,{fileName:Yx,lineNumber:40,columnNumber:37},this),e(n.meta.label)]},void 0,!0,{fileName:Yx,lineNumber:39,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:r.map(n=>(0,L.jsxDEV)(u,{to:`/${n.library}/${n.shelf}`,className:`flex items-center gap-2.5 rounded-lg px-2.5 py-2 text-sm text-text transition-colors hover:bg-elevated`,children:[(0,L.jsxDEV)(rr,{name:n.icon,size:17,className:`shrink-0 text-muted`},void 0,!1,{fileName:Yx,lineNumber:50,columnNumber:25},this),(0,L.jsxDEV)(`span`,{className:`flex-1 truncate`,children:e(n.label)},void 0,!1,{fileName:Yx,lineNumber:51,columnNumber:25},this),(0,L.jsxDEV)(it,{children:t[`${n.library}/${n.shelf}`]??`·`},void 0,!1,{fileName:Yx,lineNumber:52,columnNumber:25},this)]},n.shelf,!0,{fileName:Yx,lineNumber:45,columnNumber:23},this))},void 0,!1,{fileName:Yx,lineNumber:43,columnNumber:19},this)]},n.meta.id,!0,{fileName:Yx,lineNumber:38,columnNumber:17},this)})},void 0,!1,{fileName:Yx,lineNumber:33,columnNumber:11},this)]},void 0,!0,{fileName:Yx,lineNumber:28,columnNumber:7},this)},void 0,!1,{fileName:Yx,lineNumber:27,columnNumber:5},this)}var Qx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/TrashPage.tsx`;function $x(e){let t=Bi().flatMap(e=>e.shelves).find(t=>t.library===e.library&&t.shelf===e.shelf);return t?Rr(t,e.record):String(e.record.name??e.record.id??``)}function eS(){let{t:e}=a(),[t,n]=(0,I.useState)([]),[r,i]=(0,I.useState)(!0),o=(0,I.useCallback)(async()=>{i(!0);try{n(await ga())}catch{Lt.error(e(`common.error`))}finally{i(!1)}},[e]);(0,I.useEffect)(()=>{o()},[o]);async function s(t){if(!await Wi(t.library,t.shelf,Number(t.record.id))){Lt.error(e(`common.error`));return}Lt.success(e(`trash.restored`)),n(e=>e.filter(e=>e!==t))}async function c(t){if(await Ke({title:e(`trash.confirmPurge`),confirmLabel:e(`trash.purge`),variant:`destructive`})){if(!await Qi(t.library,t.shelf,Number(t.record.id))){Lt.error(e(`common.error`));return}Lt.success(e(`trash.purged`)),n(e=>e.filter(e=>e!==t))}}return(0,L.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,L.jsxDEV)(Mn,{children:(0,L.jsxDEV)(`h1`,{className:Ht,children:e(`trash.title`)},void 0,!1,{fileName:Qx,lineNumber:66,columnNumber:9},this)},void 0,!1,{fileName:Qx,lineNumber:65,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`p-4 sm:p-6 max-w-4xl w-full mx-auto`,children:[(0,L.jsxDEV)(`p`,{className:`text-sm text-muted mb-5`,children:e(`trash.description`)},void 0,!1,{fileName:Qx,lineNumber:69,columnNumber:9},this),r?(0,L.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`common.loading`)},void 0,!1,{fileName:Qx,lineNumber:71,columnNumber:11},this):t.length===0?(0,L.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`trash.empty`)},void 0,!1,{fileName:Qx,lineNumber:73,columnNumber:11},this):(0,L.jsxDEV)(`div`,{className:`space-y-2`,children:t.map(t=>{let n=Number(t.record.id);return(0,L.jsxDEV)(`div`,{className:`flex items-center gap-3 rounded-xl border border-border bg-surface px-4 py-3`,children:[(0,L.jsxDEV)(ur,{size:18,className:`shrink-0 text-muted`},void 0,!1,{fileName:Qx,lineNumber:83,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`truncate font-medium text-text`,children:$x(t)},void 0,!1,{fileName:Qx,lineNumber:85,columnNumber:21},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e(t.label),` · `,t.library,`/`,t.shelf,` · #`,n]},void 0,!0,{fileName:Qx,lineNumber:86,columnNumber:21},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:String(t.record.deleted_at??``)},void 0,!1,{fileName:Qx,lineNumber:89,columnNumber:21},this)]},void 0,!0,{fileName:Qx,lineNumber:84,columnNumber:19},this),(0,L.jsxDEV)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,L.jsxDEV)(F,{variant:`secondary`,size:`sm`,onClick:()=>void s(t),children:[(0,L.jsxDEV)(ue,{size:15},void 0,!1,{fileName:Qx,lineNumber:93,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.restore`)},void 0,!1,{fileName:Qx,lineNumber:94,columnNumber:23},this)]},void 0,!0,{fileName:Qx,lineNumber:92,columnNumber:21},this),(0,L.jsxDEV)(F,{variant:`destructive`,size:`sm`,onClick:()=>void c(t),children:[(0,L.jsxDEV)(ur,{size:15},void 0,!1,{fileName:Qx,lineNumber:97,columnNumber:23},this),(0,L.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.purge`)},void 0,!1,{fileName:Qx,lineNumber:98,columnNumber:23},this)]},void 0,!0,{fileName:Qx,lineNumber:96,columnNumber:21},this)]},void 0,!0,{fileName:Qx,lineNumber:91,columnNumber:19},this)]},`${t.library}/${t.shelf}/${n}`,!0,{fileName:Qx,lineNumber:79,columnNumber:17},this)})},void 0,!1,{fileName:Qx,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:Qx,lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:Qx,lineNumber:64,columnNumber:5},this)}var tS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/AccountSettingsPage.tsx`,nS=jr({displayName:Dr.string({label:`auth.fieldDisplayName`}),password:Dr.password({label:`auth.fieldPasswordOptional`}),apiTokens:Dr.internalApiToken({label:`auth.tokensTitle`}),oauthGrants:Dr.internalOauthGrants({label:`auth.grantsTitle`})});function rS(){let{t:e}=a(),[t,n]=(0,I.useState)([]),[r,i]=(0,I.useState)([]),[o,s]=(0,I.useState)(!1),[c,l]=(0,I.useState)(null);function u(){$i().then(e=>{e.ok&&(n(e.data.links),i(e.data.linkable))})}(0,I.useEffect)(u,[]);async function d(){s(!0);let t=await ha();s(!1),t.ok?l(t.data):Lt.error(e(`auth.genericError`))}async function f(t){await Ke({title:e(`auth.linkConfirmUnlink`),confirmLabel:e(`auth.linkUnlink`),variant:`destructive`})&&((await Ji(t.connector,t.externalId)).ok?u():Lt.error(e(`auth.genericError`)))}function p(t){return e(`auth.linkConnectorNames.${t}`,{defaultValue:t})}return(0,L.jsxDEV)(`section`,{className:`mt-10 border-t border-border pt-6`,"aria-labelledby":`account-links-title`,children:[(0,L.jsxDEV)(`h2`,{id:`account-links-title`,className:`mb-2 ${ft}`,children:e(`auth.linksTitle`)},void 0,!1,{fileName:tS,lineNumber:86,columnNumber:7},this),c&&(0,L.jsxDEV)(ut,{className:`mb-3 break-all`,children:[e(`auth.linkCodeCreatedOnce`),` `,(0,L.jsxDEV)(`code`,{children:c.raw},void 0,!1,{fileName:tS,lineNumber:98,columnNumber:43},this),Object.entries(c.links??{}).map(([t,n])=>(0,L.jsxDEV)(`div`,{className:`mt-1`,children:(0,L.jsxDEV)(`a`,{href:n,target:`_blank`,rel:`noreferrer`,className:`underline`,children:e(`auth.linkOpenConnector`,{connector:p(t)})},void 0,!1,{fileName:tS,lineNumber:101,columnNumber:15},this)},t,!1,{fileName:tS,lineNumber:100,columnNumber:13},this)),Object.keys(c.links??{}).length===0&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`br`,{},void 0,!1,{fileName:tS,lineNumber:108,columnNumber:15},this),e(`auth.linkCodeHint`,{code:c.raw})]},void 0,!0,{fileName:tS,lineNumber:107,columnNumber:13},this)]},void 0,!0,{fileName:tS,lineNumber:97,columnNumber:9},this),r.length>0&&(0,L.jsxDEV)(`div`,{className:`mb-3`,children:(0,L.jsxDEV)(F,{type:`button`,disabled:o,onClick:d,children:e(`auth.linkMint`)},void 0,!1,{fileName:tS,lineNumber:120,columnNumber:11},this)},void 0,!1,{fileName:tS,lineNumber:119,columnNumber:9},this),t.length===0?(0,L.jsxDEV)(`p`,{className:`text-sm text-muted`,children:e(`auth.linksEmpty`)},void 0,!1,{fileName:tS,lineNumber:127,columnNumber:9},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:t.map(t=>(0,L.jsxDEV)(On,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,L.jsxDEV)(`div`,{className:`font-semibold text-text`,children:p(t.connector)},void 0,!1,{fileName:tS,lineNumber:133,columnNumber:17},this),(0,L.jsxDEV)(`div`,{className:`text-xs text-muted`,children:t.linkedAt},void 0,!1,{fileName:tS,lineNumber:134,columnNumber:17},this)]},void 0,!0,{fileName:tS,lineNumber:132,columnNumber:15},this),(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`sm`,type:`button`,onClick:()=>f(t),className:`shrink-0`,children:e(`auth.linkUnlink`)},void 0,!1,{fileName:tS,lineNumber:136,columnNumber:15},this)]},`${t.connector}:${t.externalId}`,!0,{fileName:tS,lineNumber:131,columnNumber:13},this))},void 0,!1,{fileName:tS,lineNumber:129,columnNumber:9},this)]},void 0,!0,{fileName:tS,lineNumber:85,columnNumber:5},this)}function iS(){let{t:e}=a(),[t,n]=(0,I.useState)(!1);async function r(){let e=await fa();return{displayName:e?.displayName??``,password:e?.password??``}}async function i(e){let t=await da({displayName:e.displayName,password:e.password});return t.ok?{ok:!0,row:{displayName:t.data.displayName,password:t.data.password}}:t.status===422?{ok:!1,status:422,issues:t.data.issues}:{ok:!1,status:t.status}}async function o(){n(!0);try{await ua()}finally{window.location.href=`/login`}}return(0,L.jsxDEV)(ya,{fields:nS,recordCtx:{library:``,shelf:`account`,recordId:`me`},load:r,save:i,title:e(`auth.accountTitle`),backTo:`/settings`,backLabel:e(`settings.title`),footer:(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(rS,{},void 0,!1,{fileName:tS,lineNumber:195,columnNumber:11},this),(0,L.jsxDEV)(`section`,{className:`mt-10 border-t border-border pt-6`,"aria-labelledby":`account-session-title`,children:[(0,L.jsxDEV)(`h2`,{id:`account-session-title`,className:`mb-1 ${ft}`,children:e(`auth.sessionTitle`)},void 0,!1,{fileName:tS,lineNumber:197,columnNumber:13},this),(0,L.jsxDEV)(On,{className:`flex items-center justify-between gap-4 px-4 py-3`,children:[(0,L.jsxDEV)(`p`,{className:`min-w-0 text-sm text-muted`,children:e(`auth.logoutDescription`)},void 0,!1,{fileName:tS,lineNumber:201,columnNumber:15},this),(0,L.jsxDEV)(F,{type:`button`,variant:`destructive`,size:`sm`,disabled:t,onClick:o,className:`shrink-0`,children:[(0,L.jsxDEV)(rr,{name:`lucide:log-out`,size:16},void 0,!1,{fileName:tS,lineNumber:210,columnNumber:17},this),e(`auth.logout`)]},void 0,!0,{fileName:tS,lineNumber:202,columnNumber:15},this)]},void 0,!0,{fileName:tS,lineNumber:200,columnNumber:13},this)]},void 0,!0,{fileName:tS,lineNumber:196,columnNumber:11},this)]},void 0,!0,{fileName:tS,lineNumber:194,columnNumber:9},this)},void 0,!1,{fileName:tS,lineNumber:185,columnNumber:5},this)}var aS=Xr({shelf:`users`,library:``,label:`auth.usersTitle`,icon:`lucide:users`,views:{title:`login`,list:[`displayName`,`role`,`disabled`]},fields:{login:Dr.string({label:`auth.fieldLogin`}),displayName:Dr.string({label:`auth.fieldDisplayName`}),role:Dr.string({label:`auth.fieldRole`,strict:!0,noSearch:!0,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),disabled:Dr.boolean({label:`auth.fieldDisabled`})}});function oS(e){if(!e)return null;let[t,n]=e.split(`:`);return!t||n!==`asc`&&n!==`desc`?null:{key:t,dir:n}}function sS(){let[e,t]=l(),[n,r]=(0,I.useState)(()=>e.get(`q`)??``),[i,a]=(0,I.useState)(n);(0,I.useEffect)(()=>{let e=setTimeout(()=>{a(n),t(e=>{let t=new URLSearchParams(e);return n?t.set(`q`,n):t.delete(`q`),t},{replace:!0})},300);return()=>clearTimeout(e)},[n,t]);let o=oS(e.get(`sort`));function s(e){t(t=>{let n=new URLSearchParams(t),r=oS(n.get(`sort`)),i;return i=e===`_rank`?r?.key===`_rank`&&r.dir===`desc`?null:{key:e,dir:`desc`}:!r||r.key!==e?{key:e,dir:`asc`}:r.dir===`asc`?{key:e,dir:`desc`}:null,i?n.set(`sort`,`${i.key}:${i.dir}`):n.delete(`sort`),n},{replace:!0})}function c(e){t(t=>{let n=new URLSearchParams(t);return e?n.set(`sort`,`${e.key}:${e.dir}`):n.delete(`sort`),n},{replace:!0})}return{q:n,setQ:r,debouncedQ:i,sort:o,toggleSort:s,setSort:c}}var cS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/shared/Dialog.tsx`;function lS({title:e,onClose:t,children:n}){return(0,L.jsxDEV)(b,{open:!0,onOpenChange:e=>{e||t()},children:(0,L.jsxDEV)(Jn,{children:[(0,L.jsxDEV)(zn,{children:(0,L.jsxDEV)(an,{children:e},void 0,!1,{fileName:cS,lineNumber:24,columnNumber:11},this)},void 0,!1,{fileName:cS,lineNumber:23,columnNumber:9},this),(0,L.jsxDEV)(Ut,{children:n},void 0,!1,{fileName:cS,lineNumber:26,columnNumber:9},this)]},void 0,!0,{fileName:cS,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:cS,lineNumber:16,columnNumber:5},this)}var uS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/GroupPanel.tsx`,dS=`__none__`;function fS({grouping:e,total:t,sort:n}){let{t:r}=a(),{fields:i,field:o,setField:s,facets:c,selected:l,setSelected:u}=e;return(0,L.jsxDEV)(`div`,{className:`folder-tree flex flex-col gap-2`,children:[(0,L.jsxDEV)(`div`,{className:`px-1 pt-1`,children:(0,L.jsxDEV)(`div`,{className:`folder-node${l===null?` active`:``}`,onClick:()=>u(null),children:[(0,L.jsxDEV)(`span`,{className:`folder-name`,children:r(`group.all`)},void 0,!1,{fileName:uS,lineNumber:32,columnNumber:11},this),(0,L.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:t},void 0,!1,{fileName:uS,lineNumber:33,columnNumber:11},this)]},void 0,!0,{fileName:uS,lineNumber:31,columnNumber:9},this)},void 0,!1,{fileName:uS,lineNumber:30,columnNumber:7},this),n&&n.keys.length>0&&(0,L.jsxDEV)(`div`,{className:`px-1 list:hidden`,children:[(0,L.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`list.sortBy`)},void 0,!1,{fileName:uS,lineNumber:41,columnNumber:11},this),(0,L.jsxDEV)(dn,{value:n.value?`${n.value.key}:${n.value.dir}`:dS,onValueChange:e=>{if(e===dS)return n.onChange(null);let[t,r]=e.split(`:`);n.onChange({key:t,dir:r})},children:[(0,L.jsxDEV)(Ne,{className:`h-8 w-full text-sm`,children:(0,L.jsxDEV)(Le,{placeholder:r(`list.sortBy`)},void 0,!1,{fileName:uS,lineNumber:51,columnNumber:15},this)},void 0,!1,{fileName:uS,lineNumber:50,columnNumber:13},this),(0,L.jsxDEV)(w,{children:[(0,L.jsxDEV)(cn,{value:dS,children:[r(`list.sortRating`),` ↑`]},void 0,!0,{fileName:uS,lineNumber:56,columnNumber:15},this),(0,L.jsxDEV)(cn,{value:`_rank:desc`,children:[r(`list.sortRating`),` ↓`]},void 0,!0,{fileName:uS,lineNumber:57,columnNumber:15},this),n.keys.flatMap(({key:e,label:t})=>[(0,L.jsxDEV)(cn,{value:`${e}:asc`,children:[t,` ↑`]},`${e}:asc`,!0,{fileName:uS,lineNumber:59,columnNumber:17},this),(0,L.jsxDEV)(cn,{value:`${e}:desc`,children:[t,` ↓`]},`${e}:desc`,!0,{fileName:uS,lineNumber:62,columnNumber:17},this)])]},void 0,!0,{fileName:uS,lineNumber:53,columnNumber:13},this)]},void 0,!0,{fileName:uS,lineNumber:42,columnNumber:11},this)]},void 0,!0,{fileName:uS,lineNumber:40,columnNumber:9},this),i.length>0&&(0,L.jsxDEV)(`div`,{className:`px-1`,children:[(0,L.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`group.field`)},void 0,!1,{fileName:uS,lineNumber:74,columnNumber:11},this),(0,L.jsxDEV)(dn,{value:o??void 0,onValueChange:s,children:[(0,L.jsxDEV)(Ne,{className:`h-8 w-full text-sm`,children:(0,L.jsxDEV)(Le,{placeholder:r(`group.field`)},void 0,!1,{fileName:uS,lineNumber:77,columnNumber:15},this)},void 0,!1,{fileName:uS,lineNumber:76,columnNumber:13},this),(0,L.jsxDEV)(w,{children:i.map(e=>(0,L.jsxDEV)(cn,{value:e.key,children:e.label},e.key,!1,{fileName:uS,lineNumber:81,columnNumber:17},this))},void 0,!1,{fileName:uS,lineNumber:79,columnNumber:13},this)]},void 0,!0,{fileName:uS,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:uS,lineNumber:73,columnNumber:9},this),(0,L.jsxDEV)(`div`,{className:`folder-tree-scroll`,children:(0,L.jsxDEV)(`div`,{className:`folder-tree-nodes`,children:c.map(e=>(0,L.jsxDEV)(`div`,{className:`folder-node${l===e.key?` active`:``}`,title:e.label,onClick:()=>u(e.key),children:[e.tone&&(0,L.jsxDEV)(`span`,{"aria-hidden":`true`,className:`mr-2 inline-block size-2 shrink-0 rounded-full`,style:{background:e.tone},"data-testid":`facet-tone`},void 0,!1,{fileName:uS,lineNumber:104,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`folder-name truncate`,children:e.label},void 0,!1,{fileName:uS,lineNumber:111,columnNumber:15},this),(0,L.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:e.count},void 0,!1,{fileName:uS,lineNumber:112,columnNumber:15},this)]},e.key,!0,{fileName:uS,lineNumber:94,columnNumber:13},this))},void 0,!1,{fileName:uS,lineNumber:92,columnNumber:9},this)},void 0,!1,{fileName:uS,lineNumber:91,columnNumber:7},this)]},void 0,!0,{fileName:uS,lineNumber:28,columnNumber:5},this)}function pS(e,t){let{t:n,i18n:r}=a(),i=t?Kr(e.fields)[t]:void 0,o=i?.prim===`relation`?i.relation:void 0,s=i?.hints?.displayKey??`name`,{labelMap:c}=He(o?.library??``,o?.shelf??``,s);return(0,I.useMemo)(()=>({t:n,locale:r.language,labelMap:c}),[n,r.language,c])}function mS(e,t,n,r,i){let a=new Map,o=0;for(let i of t){let t=Ie(e,i[n],r);if(!t.length){o++;continue}for(let e of t){let t=a.get(e.value)??{label:e.label,n:0};t.n++,a.set(e.value,t)}}let s=jn(e),c=[...a.entries()].map(([e,{label:t,n}])=>({key:e,label:t,tone:s.length?Gn(s,e):void 0,count:n})).sort((e,t)=>t.count-e.count||e.label.localeCompare(t.label));return o>0&&c.push({key:hS,label:i,count:o}),c}var hS=`\0__none__`;function gS(e,t){let{t:n}=a(),r=Kr(e.fields),i=(0,I.useMemo)(()=>Zr(e).filter(e=>r[e]),[e,r]),o=(0,I.useMemo)(()=>i.map(e=>({key:e,label:r[e]?n(r[e].label):e})),[i,r,n]),[s,c]=l(),u=s.get(`groupBy`),d=s.get(`groupItem`)??null,f=(0,I.useMemo)(()=>{if(u&&i.includes(u))return u;let t=qr(e);return t&&i.includes(t)?t:i[0]??null},[u,i,e]),p=pS(e,f);return{fields:o,field:f,setField:e=>{c(t=>{let n=new URLSearchParams(t);return n.set(`groupBy`,e),n.delete(`groupItem`),n},{replace:!0})},facets:(0,I.useMemo)(()=>{if(!f)return[];let e=r[f];return e?mS(e,t,f,p,n(`group.noValue`)):[]},[f,r,t,p,n]),selected:d,setSelected:e=>{c(t=>{let n=new URLSearchParams(t);return e===null?n.delete(`groupItem`):n.set(`groupItem`,e),n},{replace:!0})},filtered:(0,I.useMemo)(()=>{if(!f||d===null)return t;let e=r[f];return e?d===`\0__none__`?t.filter(t=>Ie(e,t[f],p).length===0):t.filter(t=>Ie(e,t[f],p).some(e=>e.value===d)):t},[t,f,r,d,p])}}var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/EntityListView.tsx`;function _S({mod:e,hrefBase:t,fetchRows:n,onDelete:r,resetKey:i,cacheKey:o}){let{t:s}=a(),c=v(),[u,d]=(0,I.useState)(null),[f,p]=(0,I.useState)(null),[m,h]=(0,I.useState)(!1),[g,_]=(0,I.useState)(0),{q:y,setQ:b,debouncedQ:x,sort:S,toggleSort:C,setSort:w}=sS(),[,T]=l(),ee=Me(`panel`,1e3),te=o?`${o}?${x}`:null,[E,ne]=(0,I.useState)(()=>te?zi(te)?.rows??[]:[]),[re,ie]=(0,I.useState)(E.length===0),ae=(0,I.useRef)(0),oe=(0,I.useCallback)(async(e=x)=>{let t=o?`${o}?${e}`:null,r=t?zi(t):void 0;if(r){ne(r.rows),ie(!1);return}ie(!0);let i=++ae.current;try{let r=await n(e);if(i!==ae.current)return;ne(r),t&&Ni(t,r)}catch{i===ae.current&&ne([])}finally{i===ae.current&&ie(!1)}},[n,x,o]),ce=(0,I.useRef)(null);(0,I.useEffect)(()=>{i!==void 0&&(ce.current!==null&&ce.current!==i&&(b(``),T({},{replace:!0})),ce.current=i)},[i]),(0,I.useEffect)(()=>{oe()},[oe,g]);let D=gS(e,E),le=pS(e,S?.key??null),ue=(0,I.useMemo)(()=>{if(!S||S.key===`_rank`&&S.dir===`asc`)return D.filtered;if(S.key===`_rank`)return[...D.filtered].reverse();let t=Kr(e.fields)[S.key];return St(D.filtered,S.key,S.dir,t,le)},[D.filtered,S,e,le]),de=(0,I.useMemo)(()=>Qr(e),[e]),fe=Kr(e.fields),pe=(0,I.useMemo)(()=>{let t=Wr(e),n=vl(t);if(!n)return console.error(`[list] unknown view '${t}' for ${e.library}/${e.shelf} — showing table`),vl(`table`);let r=n.check?.(e,de);return r?(console.error(`[list] view '${t}' is not compatible with ${e.library}/${e.shelf}: ${r} — showing table`),vl(`table`)):n},[e,de]),me={keys:de.map(e=>({key:e,label:nn(s,e,fe[e])})),value:S,onChange:w};function he(){c(`${t}/new`)}let ge=(0,I.useCallback)(async e=>{if(!await Ke({title:s(`actions.confirmDelete`),confirmLabel:s(`actions.delete`),variant:`destructive`}))return;d(e);let t=await r(e);if(d(null),!t.ok){Lt.error(t.error===`last_admin`?s(`auth.lastAdminError`):s(`common.error`));return}o&&(Vi(o),wt(o)),_(e=>e+1)},[r,s,o]),_e=(0,I.useCallback)(async t=>{let n=E.find(e=>String(e.id)===t)?._activity;p(t);let r=await sa(e.library,e.shelf,t,!n?.favorite);if(p(null),!r){Lt.error(s(`common.error`));return}o&&Vi(o),_(e=>e+1)},[E,e.library,e.shelf,o,s]);return(0,L.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,L.jsxDEV)(Mn,{actions:(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`relative w-[220px] hidden nav:block`,children:[(0,L.jsxDEV)(nt,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:Q,lineNumber:225,columnNumber:15},this),(0,L.jsxDEV)(`input`,{type:`search`,value:y,onChange:e=>b(e.target.value),placeholder:s(`list.searchPlaceholder`),className:`w-full h-8 pr-3 text-sm rounded-lg border border-border bg-surface text-text placeholder:text-muted focus:outline-none focus:border-accent transition-colors`,style:{paddingLeft:`2rem`}},void 0,!1,{fileName:Q,lineNumber:226,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:224,columnNumber:13},this),(0,L.jsxDEV)(F,{variant:`outline`,size:`icon`,className:`panel:hidden`,onClick:()=>h(!0),children:(0,L.jsxDEV)(kl,{size:16},void 0,!1,{fileName:Q,lineNumber:237,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:236,columnNumber:13},this),(0,L.jsxDEV)(F,{onClick:he,children:[(0,L.jsxDEV)(se,{size:16},void 0,!1,{fileName:Q,lineNumber:240,columnNumber:15},this),(0,L.jsxDEV)(`span`,{className:`hidden sm:inline`,children:s(`actions.new`)},void 0,!1,{fileName:Q,lineNumber:241,columnNumber:15},this)]},void 0,!0,{fileName:Q,lineNumber:239,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:222,columnNumber:11},this),children:[(0,L.jsxDEV)(rr,{name:e.icon,size:20,className:`shrink-0 text-text`},void 0,!1,{fileName:Q,lineNumber:246,columnNumber:9},this),(0,L.jsxDEV)(`h1`,{className:`text-base font-bold text-text truncate`,children:s(e.label)},void 0,!1,{fileName:Q,lineNumber:247,columnNumber:9},this),(0,L.jsxDEV)(it,{children:ue.length},void 0,!1,{fileName:Q,lineNumber:248,columnNumber:9},this),re&&E.length>0&&(0,L.jsxDEV)(Pe,{size:13,className:`animate-spin text-muted shrink-0`,"aria-hidden":!0},void 0,!1,{fileName:Q,lineNumber:250,columnNumber:40},this)]},void 0,!0,{fileName:Q,lineNumber:220,columnNumber:7},this),(0,L.jsxDEV)(`div`,{className:`flex items-start`,children:[ee&&(0,L.jsxDEV)(`div`,{className:`hidden panel:block w-56 shrink-0 border-r border-border sticky top-[52px] self-start h-[calc(100dvh-52px)] overflow-y-auto`,children:(0,L.jsxDEV)(`div`,{className:`pt-2`,children:(0,L.jsxDEV)(fS,{grouping:D,total:E.length,sort:me},void 0,!1,{fileName:Q,lineNumber:259,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:258,columnNumber:13},this)},void 0,!1,{fileName:Q,lineNumber:257,columnNumber:11},this),(0,L.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:ue.length===0?re?(0,L.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted`,children:(0,L.jsxDEV)(Pe,{size:28,className:`animate-spin`},void 0,!1,{fileName:Q,lineNumber:271,columnNumber:17},this)},void 0,!1,{fileName:Q,lineNumber:270,columnNumber:15},this):(0,L.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center gap-4 py-20 text-muted`,children:[(0,L.jsxDEV)(rr,{name:e.icon,size:48,className:`text-muted`},void 0,!1,{fileName:Q,lineNumber:275,columnNumber:17},this),(0,L.jsxDEV)(`p`,{className:`text-base`,children:s(`list.empty`)},void 0,!1,{fileName:Q,lineNumber:276,columnNumber:17},this),(0,L.jsxDEV)(F,{onClick:he,children:[(0,L.jsxDEV)(se,{size:16},void 0,!1,{fileName:Q,lineNumber:278,columnNumber:19},this),` `,s(`actions.addFirst`)]},void 0,!0,{fileName:Q,lineNumber:277,columnNumber:17},this)]},void 0,!0,{fileName:Q,lineNumber:274,columnNumber:15},this):(0,L.jsxDEV)(pe.View,{rows:ue,shelf:e,keys:de,hrefBase:t,onDelete:ge,deletingId:u,onToggleFavorite:_e,favoriteBusyId:f,sort:S,onToggleSort:C,scrollKey:te??void 0},void 0,!1,{fileName:Q,lineNumber:283,columnNumber:13},this)},void 0,!1,{fileName:Q,lineNumber:265,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:254,columnNumber:7},this),m&&(0,L.jsxDEV)(lS,{title:s(`group.title`),onClose:()=>h(!1),children:[(0,L.jsxDEV)(`div`,{className:`relative mb-4 nav:hidden`,children:[(0,L.jsxDEV)(nt,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:Q,lineNumber:305,columnNumber:13},this),(0,L.jsxDEV)(`input`,{type:`search`,value:y,onChange:e=>b(e.target.value),placeholder:s(`list.searchPlaceholder`),className:`w-full h-9 pr-3 text-sm rounded-lg border border-border bg-surface text-text placeholder:text-muted focus:outline-none focus:border-accent transition-colors`,style:{paddingLeft:`2rem`}},void 0,!1,{fileName:Q,lineNumber:306,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:304,columnNumber:11},this),(0,L.jsxDEV)(fS,{grouping:D,total:E.length,sort:me},void 0,!1,{fileName:Q,lineNumber:315,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:302,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:218,columnNumber:5},this)}var vS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UsersListPage.tsx`;function yS(){return(0,L.jsxDEV)(_S,{mod:aS,hrefBase:`/settings/users`,fetchRows:async e=>{let t=await Zi(e);return t.ok?t.data:[]},onDelete:async e=>{let t=await na(Number(e));return t.ok?{ok:!0}:t.status===409?{ok:!1,error:`last_admin`}:{ok:!1}}},void 0,!1,{fileName:vS,lineNumber:7,columnNumber:5},this)}var bS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserCreatePage.tsx`,xS=jr({login:Dr.string({label:`auth.fieldLogin`,required:!0}),displayName:Dr.string({label:`auth.fieldDisplayName`,required:!0}),password:Dr.password({label:`auth.password`,required:!0}),role:Dr.string({label:`auth.fieldRole`,strict:!0,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]})});function SS(){let{t:e}=a(),t=v();async function n(){return{login:``,displayName:``,password:``,role:`member`}}async function r(e){let n=await la({login:e.login,displayName:e.displayName,password:e.password,role:e.role});return n.ok?(t(`/settings/users`),{ok:!0,row:{login:n.data.login,displayName:n.data.displayName,password:n.data.password,role:n.data.role}}):n.status===422?{ok:!1,status:422,issues:n.data.issues}:{ok:!1,status:n.status}}return(0,L.jsxDEV)(ya,{fields:xS,recordCtx:{library:``,shelf:`users`,recordId:`new`},load:n,save:r,title:e(`auth.userCreateTitle`),backTo:`/settings/users`,backLabel:e(`auth.usersTitle`)},void 0,!1,{fileName:bS,lineNumber:53,columnNumber:5},this)}var CS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserEditPage.tsx`,wS=jr({displayName:Dr.string({label:`auth.fieldDisplayName`}),role:Dr.string({label:`auth.fieldRole`,strict:!0,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),disabled:Dr.boolean({label:`auth.fieldDisabled`}),password:Dr.password({label:`auth.fieldPasswordOptional`})});function TS(){let{id:e}=c(),{t}=a(),n=Number(e);async function r(){let e=await Zi(),t=e.ok?e.data.find(e=>e.id===n):void 0;return{displayName:t?.displayName??``,role:t?.role??`member`,disabled:t?.disabled??!1,password:t?.password??``}}async function i(e){let t=await qi(n,{displayName:e.displayName,role:e.role,disabled:e.disabled,password:e.password});return t.ok?{ok:!0,row:{displayName:t.data.displayName,role:t.data.role,disabled:t.data.disabled,password:t.data.password}}:t.status===409?{ok:!1,status:422,issues:[{field:`role`,code:`last_admin`,path:[],params:{}}]}:t.status===422?{ok:!1,status:422,issues:t.data.issues}:{ok:!1,status:t.status}}return(0,L.jsxDEV)(ya,{fields:wS,recordCtx:{library:``,shelf:`users`,recordId:e??``},load:r,save:i,title:t(`auth.usersTitle`),backTo:`/settings/users`,backLabel:t(`auth.usersTitle`)},void 0,!1,{fileName:CS,lineNumber:67,columnNumber:5},this)}var ES=(e,t)=>`coffer:list-origin:${e}/${t}`;function DS(){try{return window.sessionStorage}catch{return null}}function OS(e,t){DS()?.setItem(ES(e.library,e.shelf),JSON.stringify(t))}function kS(e){DS()?.removeItem(ES(e.library,e.shelf))}function AS(e,t){let n=DS()?.getItem(ES(e,t));if(n)try{let e=JSON.parse(n);return typeof e.path==`string`&&typeof e.label==`string`?{path:e.path,label:e.label}:void 0}catch{return}}var jS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/ShowcaseView.tsx`;function MS(e,t){return{...e,label:t.label,icon:t.icon,views:{...e.views,list:t.columns,...t.defaultGroupBy?{defaultGroupBy:t.defaultGroupBy}:{}}}}function NS({showcase:e}){let{t}=a(),n=Pi(e.source.library,e.source.shelf),r=(0,I.useCallback)(async t=>{let n=t?`?q=${encodeURIComponent(t)}`:``;try{return(await ra(`/api/showcase/${e.library}/${e.id}${n}`)).rows}catch{return[]}},[e.library,e.id]),i=(0,I.useCallback)(async t=>(await ma(e.source.library,e.source.shelf,t),{ok:!0}),[e]);return(0,I.useEffect)(()=>{OS(e.source,{path:`/${e.library}/${e.id}`,label:e.label})},[e]),n?(0,L.jsxDEV)(_S,{mod:MS(n,e),hrefBase:`/${e.source.library}/${e.source.shelf}`,resetKey:`${e.library}:${e.id}`,fetchRows:r,onDelete:i},void 0,!1,{fileName:jS,lineNumber:71,columnNumber:5},this):(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:t(`common.notFound`)},void 0,!1,{fileName:jS,lineNumber:68,columnNumber:23},this)}var PS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/ShelfView.tsx`;function FS(){let{t:e}=a(),{library:t,shelf:n}=c(),r=Bi().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),i=(0,I.useCallback)(async e=>{let r=e?`?q=${encodeURIComponent(e)}`:``;try{return await ra(`/api/${t}/${n}${r}`)}catch{return[]}},[t,n]),s=(0,I.useCallback)(async e=>(await ma(t,n,e),{ok:!0}),[t,n]),[l,u]=(0,I.useState)(null),[d,f]=(0,I.useState)(!1),p=`${t}/${n}`,[m,h]=(0,I.useState)(p);m!==p&&(h(p),u(null),f(!1)),(0,I.useEffect)(()=>{r&&t&&n&&kS({library:t,shelf:n})},[r,t,n]),(0,I.useEffect)(()=>{if(!r?.single)return;let e=!0;return ra(`/api/${t}/${n}/single`).then(t=>{e&&u(String(t.id))}).catch(()=>{e&&f(!0)}),()=>{e=!1}},[r,t,n]);let g=!r&&t&&n?ji(t,n):void 0;return g?(0,L.jsxDEV)(NS,{showcase:g},void 0,!1,{fileName:PS,lineNumber:89,columnNumber:24},this):!r||r.standalone===!1?(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:PS,lineNumber:91,columnNumber:44},this):r.single?d?(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:PS,lineNumber:94,columnNumber:29},this):l?(0,L.jsxDEV)(o,{to:`/${t}/${n}/${l}`,replace:!0},void 0,!1,{fileName:PS,lineNumber:95,columnNumber:23},this):(0,L.jsxDEV)(`div`,{className:`p-6`},void 0,!1,{fileName:PS,lineNumber:95,columnNumber:86},this):(0,L.jsxDEV)(_S,{mod:r,hrefBase:`/${t}/${n}`,resetKey:`${t}:${n}`,cacheKey:`${t}/${n}`,fetchRows:i,onDelete:s},void 0,!1,{fileName:PS,lineNumber:99,columnNumber:5},this)}function IS(e,t){let n={muted:[]};for(let[r,i]of Br(e.fields)){if(Nr(i.hidden,t))continue;let e=i.hints.role;e===`cover`&&!n.cover?n.cover={key:r,field:i}:e===`avatar`&&!n.avatar&&(n.avatar={key:r,field:i}),i.hints.emphasis===`muted`&&n.muted.push({key:r,field:i})}return n}var LS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/display/index.tsx`;function RS(e){return e!=null&&e!==``}function zS(e,t,n){return e.map(e=>({ext:e,data:t?.[e.id]})).filter(({ext:e,data:t})=>t!=null&&Br(e.fields).some(([e])=>RS(t[e]))||e.showWhen==null||Gr(e.showWhen,n))}function BS(e,t,n,r,i){return e||!n?Promise.resolve(void 0):t(()=>n(r,i))}function VS({field:e,fieldKey:t,label:n,value:r,recordCtx:i,onChange:a}){return(0,L.jsxDEV)(k,{field:e,fieldKey:t,label:n,value:r,mode:`view`,recordCtx:i,onChange:a},void 0,!1,{fileName:LS,lineNumber:108,columnNumber:5},this)}function HS({shelf:e,record:t,onUpdate:n,onUpdateExtend:r,errorAt:i=(()=>void 0)}){let{t:o}=a(),{saving:s,run:c}=Xt(),l=Kr(e.fields),u=e=>{let t=l[e];return t?.label?o(t.label):e},d=(e,t)=>{let n=l[e]?.options?.find(e=>e.value===String(t));return n?o(n.title):String(t)},f=zr(e),p=l[f],m=!!n,h={library:e.library,shelf:e.shelf,recordId:String(t.id)},g=t,_=(0,I.useMemo)(()=>IS(e,g),[e,g]),v=(0,I.useMemo)(()=>new Set([_.cover?.key,_.avatar?.key,..._.muted.map(e=>e.key)].filter(Boolean)),[_]),y=`view`,b=e=>t[e],x=e=>n?t=>BS(s,c,n,e,t):void 0,C={bridge:{mode:`view`,recordCtx:h,values:g,getValue:e=>t[e],setValue:(e,t)=>{BS(s,c,n,e,t)},isHidden:e=>!!(e===f||v.has(e)||Nr(l[e]?.hidden,g)),requiredOf:e=>Nr(l[e]?.required,g),error:e=>i([e]),touch:()=>{}}},w=(0,I.useMemo)(()=>zS(Li(e.library,e.shelf),t._extends,g),[e.library,e.shelf,t,g]);return(0,L.jsxDEV)(T.Provider,{value:i,children:(0,L.jsxDEV)(`article`,{className:`max-w-7xl mx-auto px-5 py-8 md:px-8 md:py-10 flex flex-col ${S}`,children:[_.cover&&(0,L.jsxDEV)(VS,{field:_.cover.field,fieldKey:_.cover.key,label:u(_.cover.key),value:b(_.cover.key),recordCtx:h,onChange:x(_.cover.key)},void 0,!1,{fileName:LS,lineNumber:215,columnNumber:11},this),(p||_.avatar)&&(0,L.jsxDEV)(`header`,{className:`flex items-center gap-4`,children:[_.avatar&&(0,L.jsxDEV)(`div`,{className:`shrink-0`,children:(0,L.jsxDEV)(k,{field:_.avatar.field,fieldKey:_.avatar.key,label:u(_.avatar.key),value:b(_.avatar.key),mode:y,recordCtx:h,onChange:x(_.avatar.key)},void 0,!1,{fileName:LS,lineNumber:238,columnNumber:17},this)},void 0,!1,{fileName:LS,lineNumber:237,columnNumber:15},this),p&&(0,L.jsxDEV)(`div`,{className:`min-w-0 flex-1`,role:`heading`,"aria-level":1,children:(0,L.jsxDEV)(k,{field:p,fieldKey:f,value:b(f),mode:y,recordCtx:h,onChange:x(f)},void 0,!1,{fileName:LS,lineNumber:251,columnNumber:17},this)},void 0,!1,{fileName:LS,lineNumber:250,columnNumber:15},this)]},void 0,!0,{fileName:LS,lineNumber:235,columnNumber:11},this),(0,L.jsxDEV)(ke,{items:e.fields,ctx:C},void 0,!1,{fileName:LS,lineNumber:265,columnNumber:9},this),w.map(({ext:n,data:i})=>(0,L.jsxDEV)(US,{ext:n,data:i,m:e,recordId:String(t.id),editable:m,onUpdateExtend:r,fieldLabelOf:u,valueLabelOf:d},n.id,!1,{fileName:LS,lineNumber:270,columnNumber:11},this)),_.muted.length>0&&(0,L.jsxDEV)(`div`,{className:`border-t border-border pt-3 flex flex-col gap-1.5`,children:_.muted.map(({key:e,field:t})=>(0,L.jsxDEV)(k,{field:t,fieldKey:e,label:u(e),value:b(e),mode:y,recordCtx:h,onChange:x(e)},e,!1,{fileName:LS,lineNumber:287,columnNumber:15},this))},void 0,!1,{fileName:LS,lineNumber:285,columnNumber:11},this)]},void 0,!0,{fileName:LS,lineNumber:212,columnNumber:7},this)},void 0,!1,{fileName:LS,lineNumber:211,columnNumber:5},this)}function US({ext:e,data:t,m:n,recordId:r,editable:i,onUpdateExtend:o,fieldLabelOf:s,valueLabelOf:c}){let{t:l}=a(),{saving:u,run:d}=Xt(),f=`view`,p=t=>o?n=>BS(u,d,(t,n)=>o(e.id,t,n),t,n):void 0,m={renderField:(a,o)=>!i&&!RS(t?.[a])?null:(0,L.jsxDEV)(k,{field:o,fieldKey:a,extId:e.id,value:t?.[a],label:o.label?l(o.label):void 0,required:o.required===!0,mode:f,recordCtx:{library:n.library,shelf:n.shelf,recordId:r},onChange:p(a)},void 0,!1,{fileName:LS,lineNumber:346,columnNumber:9},this),renderGroup:(e,a)=>{let o=t?.[e];if(!i&&!RS(o))return null;let s=En({kind:Kn(a)});return s?(0,L.jsxDEV)(rt,{field:a,value:o,commit:p(e),children:(0,L.jsxDEV)(s.Page,{el:a,value:o,mode:f,recordCtx:{library:n.library,shelf:n.shelf,recordId:r}},void 0,!1,{fileName:LS,lineNumber:369,columnNumber:11},this)},void 0,!1,{fileName:LS,lineNumber:368,columnNumber:9},this):null},values:t??{},setValue:o?(t,n)=>BS(u,d,(t,n)=>o(e.id,t,n),t,n):void 0,isHidden:i?void 0:e=>!RS(t?.[e]),mode:f},h=ke({items:e.fields,ctx:m});return h==null?null:(0,L.jsxDEV)(`div`,{className:`border-t border-border pt-6`,children:(0,L.jsxDEV)(Je,{label:l(e.label),icon:e.icon??`lucide:puzzle`,rail:!1,tone:`section`,labelAfter:(0,L.jsxDEV)(zt,{ext:e,fieldLabel:s,valueLabel:c},void 0,!1,{fileName:LS,lineNumber:406,columnNumber:21},this),children:h},void 0,!1,{fileName:LS,lineNumber:401,columnNumber:7},this)},void 0,!1,{fileName:LS,lineNumber:400,columnNumber:5},this)}function WS(e){return m(()=>import(e),[])}var GS=Object.assign({"../plugin-calendar/src/index.ts":()=>m(()=>import(`./src-dXlj2maQ.js`),__vite__mapDeps([16,17,18,1,19,20,21,22])),"../plugin-claude-agent/src/index.ts":()=>m(()=>import(`./src-Bmc_xgWr.js`),__vite__mapDeps([23,18,1,21,24])),"../plugin-console/src/index.ts":()=>m(()=>import(`./src-yL3q5Nfe.js`),__vite__mapDeps([25,18,1,21,24])),"../plugin-dav/src/index.ts":()=>m(()=>import(`./src-IYiBUs1S.js`),__vite__mapDeps([26,21])),"../plugin-devices/src/index.ts":()=>m(()=>import(`./src-DEqFDnFO.js`),__vite__mapDeps([27,28,18,1,29,19,20,21,24,30])),"../plugin-documents/src/index.ts":()=>m(()=>import(`./src-d_-Z83D-.js`),__vite__mapDeps([31,18,1,19,20,21])),"../plugin-drone/src/index.ts":()=>m(()=>import(`./src-BRA1s942.js`),__vite__mapDeps([32,18,1,19,20,21,30])),"../plugin-finance/src/index.ts":()=>m(()=>import(`./src-2QhdFJyH.js`),__vite__mapDeps([33,34,18,1,19,20,21,24])),"../plugin-garden/src/index.ts":()=>m(()=>import(`./src-uWOnIJWD.js`),__vite__mapDeps([35,18,1,19,21])),"../plugin-geo/src/index.ts":()=>m(()=>import(`./src-CvUhNHtO.js`),__vite__mapDeps([36,21])),"../plugin-health/src/index.ts":()=>m(()=>import(`./src-Bv7IbF5F.js`),__vite__mapDeps([37,18,1,19,20,21,24])),"../plugin-home/src/index.ts":()=>m(()=>import(`./src-DXSkgVrX.js`),__vite__mapDeps([38,18,1,19,21])),"../plugin-http/src/index.ts":()=>m(()=>import(`./src-DaHZILQZ.js`),__vite__mapDeps([39,18,1,21,24])),"../plugin-kitchen/src/index.ts":()=>m(()=>import(`./src-D5pqHmdF.js`),__vite__mapDeps([40,18,1,19,21])),"../plugin-lab/src/index.ts":()=>m(()=>import(`./src-WB1-7_Wh.js`),__vite__mapDeps([41,18,1,19,20,21,17,22,24,29,28,30,34])),"../plugin-media/src/index.ts":()=>m(()=>import(`./src-DAUYP87f2.js`),__vite__mapDeps([42,18,1,19,21,24])),"../plugin-people/src/index.ts":()=>m(()=>import(`./src-D9ZNj5Fi2.js`),__vite__mapDeps([43,18,1,19,21])),"../plugin-telegram/src/index.ts":()=>m(()=>import(`./src-BnvKHmLu.js`),__vite__mapDeps([44,18,1,21,24])),"../plugin-things/src/index.ts":()=>m(()=>import(`./src-Dvbi--2I.js`),__vite__mapDeps([45,18,1,19,21])),"../plugin-transit/src/index.ts":()=>m(()=>import(`./src-eAsO2o4h2.js`),__vite__mapDeps([46,18,1,19,21,24])),"../plugin-travel/src/index.ts":()=>m(()=>import(`./src-Uu0k-CHA.js`),__vite__mapDeps([47,18,1,19,21])),"../plugin-webchat/src/index.ts":()=>m(()=>import(`./src-C3X1cmlu.js`),__vite__mapDeps([48,18,1,21,24])),"../plugin-webexport/src/index.ts":()=>m(()=>import(`./src-C3hdIsRT.js`),__vite__mapDeps([49,18,1,21,24]))}),KS=Object.assign({"../plugin-calendar/src/ui.tsx":()=>m(()=>import(`./ui-kICtw37s.js`),__vite__mapDeps([50,1,2,3,51,18,19,4,15,6,7,5,9,52,22])),"../plugin-devices/src/fields/ui.tsx":()=>m(()=>import(`./ui-A8aS2-NQ.js`),__vite__mapDeps([53,1,2,3,51,18,19,4,15,6,7,5,9,52,28])),"../plugin-geo/src/ui.tsx":()=>m(()=>import(`./ui-BK1F_c4b.js`),__vite__mapDeps([54,1,2,3,51,18,19,4,15,6,7,5,9,52])),"../plugin-webchat/src/ui/ui.tsx":()=>m(()=>import(`./ui-C9-epiVm.js`),__vite__mapDeps([55,3,1,2,51,18,19,4,15,6,7,5,9,52]))});[...Object.keys(GS),...Object.keys(KS)];async function qS(e,t){let n=Object.entries(GS).find(([t])=>t.includes(`/plugin-${e}/`));if(!n)return null;let r=(await n[1]()).default??null;for(let[n,r]of Object.entries(KS)){if(!n.includes(`/plugin-${e}/`))continue;let i=(await r()).default;i&&t(i)}return r}var JS={};function YS(e,t){return JS[`${e}/${t}`]}function XS(e){ri(e),e.shelf?.RecordView&&e.shelf.library&&e.shelf.shelf&&(JS[`${e.shelf.library}/${e.shelf.shelf}`]=e.shelf.RecordView);for(let t of e.renderers??[])j(t);for(let t of e.listViews??[])_l(t);for(let[t,n]of Object.entries(e.templates??{}))Tt(t,n);for(let[t,n]of Object.entries(e.translations??{}))n&&Ta.addResourceBundle(t,`translation`,n,!0,!0)}function ZS(e){if(!e.startsWith(`/`)){console.warn(`[federation] skip non-same-origin css: ${e}`);return}if(document.querySelector(`link[href="${e}"]`))return;let t=document.createElement(`link`);t.rel=`stylesheet`,t.href=e,document.head.appendChild(t)}function QS(e){let t=new Map(e.map(e=>[e.id,e])),n=new Set,r=[],i=e=>{if(!n.has(e.id)){n.add(e.id);for(let n of e.dependsOn){let e=t.get(n);e&&i(e)}r.push(e)}};for(let t of e)i(t);return r}async function $S(){let e=await fetch(`/api/plugins`);if(!e.ok)throw Error(`[federation] /api/plugins ${e.status}`);let t=QS((await e.json()).filter(e=>e.enabled)),n=await Promise.all(t.map(async e=>{{let t=[],n=await qS(e.id,e=>t.push(e)).catch(t=>(console.error(`[federation] ${e.id}: dev source failed —`,t),null));if(n)return{e,devManifest:n,devBundles:t}}if(!e.schema)return{e};let t=await WS(e.schema).catch(t=>{console.error(`[federation] ${e.id}: schema failed, skipping plugin —`,t)});return t?{e,schemaMod:t,webMod:e.web?await WS(e.web).catch(t=>{console.error(`[federation] ${e.id}: web bundle failed —`,t)}):void 0}:{e}})),r=[];for(let{e,devManifest:t,devBundles:i,schemaMod:a,webMod:o}of n)try{if(t){r.push(t);for(let e of i??[])XS(e);continue}let n=a?.default;if(!n)continue;r.push(n),e.css&&ZS(e.css);let s=o?.default;s&&XS(s)}catch(t){console.error(`[federation] ${e.id}: applying bundle failed —`,t)}return r}var eC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/RecordView.tsx`;function tC(){let{t:e}=a(),{library:t,shelf:n,id:r}=c(),i=v(),o=Bi().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),[s,l]=(0,I.useState)(null),u=(0,I.useRef)(s);(0,I.useEffect)(()=>{u.current=s},[s]);let[d,f]=(0,I.useState)({}),[p,m]=(0,I.useState)(!1),[h,g]=(0,I.useState)(!1),_=Fe(e),y=e=>d[e.join(`.`)];function b(e){l(e??null)}if((0,I.useEffect)(()=>{if(!o||o.standalone===!1||!r)return;let e=!0;return ra(`/api/${o.library}/${o.shelf}/${r}`).then(t=>{e&&l(t)}).catch(()=>{e&&l(null)}),()=>{e=!1}},[o,r]),!o||o.standalone===!1)return(0,L.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:eC,lineNumber:71,columnNumber:44},this);async function x(t,n){if(!o||!r)return;let i=u.current?.[t];f(e=>ln(e,t)),l(e=>e&&{...e,[t]:n});let a=await Ki(o.library,o.shelf,r,{[t]:n});if(a.ok){b(a.row),Ii(`${o.library}/${o.shelf}`,a.row??{});return}l(e=>e&&{...e,[t]:i});let s=ze(a.issues??[],_);f(e=>({...ln(e,t),...s}));let c=(a.issues??[]).find(e=>e.field===t)??a.issues?.[0];return c?_(c.code,c.params):e(`validation.server`)}async function S(t,n,i){if(!o||!r)return;let a=u.current?._extends?.[t]?.[n];f(e=>ln(e,n)),l(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:i}}}});let s=await Ki(o.library,o.shelf,r,{[`_extend_${t}`]:{[n]:i}});if(s.ok){b(s.row),Ii(`${o.library}/${o.shelf}`,s.row??{});return}l(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:a}}}}),f(e=>({...ln(e,n),...ze(s.issues??[],_)}));let c=(s.issues??[]).find(e=>e.field===n)??s.issues?.[0];return c?_(c.code,c.params):e(`validation.server`)}async function C(){if(!o||!r||!await Ke({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`}))return;m(!0);let t=await ma(o.library,o.shelf,r);if(m(!1),!t){Lt.error(e(`common.error`));return}Vi(`${o.library}/${o.shelf}`),i(`/${o.library}/${o.shelf}`)}async function w(){if(!o||!r||!s)return;let t=s._activity?.favorite===!0;g(!0);let n=await sa(o.library,o.shelf,r,!t);if(g(!1),!n){Lt.error(e(`common.error`));return}l(e=>e&&{...e,_activity:n}),Vi(`${o.library}/${o.shelf}`)}let T=AS(o.library,o.shelf);function ee(){let e=window.history.state?.idx;if(typeof e==`number`&&e>0){i(-1);return}i(T?.path??`/${t}/${n}`)}let te=YS(o.library,o.shelf);return(0,L.jsxDEV)(en,{children:(0,L.jsxDEV)(vr,{children:(0,L.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,L.jsxDEV)(Mn,{actions:s&&!te&&(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(yn,{},void 0,!1,{fileName:eC,lineNumber:183,columnNumber:19},this),(0,L.jsxDEV)(Kt,{variant:`outline`,favorite:!!s._activity?.favorite,busy:h,labelAdd:e(`actions.favoriteAdd`),labelRemove:e(`actions.favoriteRemove`),onClick:w},void 0,!1,{fileName:eC,lineNumber:184,columnNumber:19},this),!o.single&&(0,L.jsxDEV)(F,{variant:`destructiveOutline`,size:`icon`,disabled:p,onClick:C,title:e(`actions.delete`),children:(0,L.jsxDEV)(ur,{size:16},void 0,!1,{fileName:eC,lineNumber:200,columnNumber:23},this)},void 0,!1,{fileName:eC,lineNumber:193,columnNumber:21},this)]},void 0,!0,{fileName:eC,lineNumber:182,columnNumber:17},this),children:o.single?(0,L.jsxDEV)(`span`,{className:`px-2 text-sm font-medium truncate`,children:e(o.label)},void 0,!1,{fileName:eC,lineNumber:210,columnNumber:15},this):(0,L.jsxDEV)(F,{variant:`ghost`,size:`sm`,className:`px-2`,onClick:ee,children:[(0,L.jsxDEV)(di,{size:18},void 0,!1,{fileName:eC,lineNumber:213,columnNumber:17},this),(0,L.jsxDEV)(`span`,{className:`text-sm`,children:e(T?.label??o.label)},void 0,!1,{fileName:eC,lineNumber:214,columnNumber:17},this)]},void 0,!0,{fileName:eC,lineNumber:212,columnNumber:15},this)},void 0,!1,{fileName:eC,lineNumber:178,columnNumber:11},this),(0,L.jsxDEV)(Ce,{children:s?te?(0,L.jsxDEV)(te,{record:s,onEdit:()=>{}},void 0,!1,{fileName:eC,lineNumber:226,columnNumber:15},this):(0,L.jsxDEV)(HS,{shelf:o,record:s,onUpdate:x,onUpdateExtend:S,errorAt:y},void 0,!1,{fileName:eC,lineNumber:228,columnNumber:15},this):(0,L.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted text-sm`,children:e(`common.loading`)},void 0,!1,{fileName:eC,lineNumber:224,columnNumber:15},this)},void 0,!1,{fileName:eC,lineNumber:222,columnNumber:11},this)]},void 0,!0,{fileName:eC,lineNumber:175,columnNumber:9},this)},void 0,!1,{fileName:eC,lineNumber:174,columnNumber:7},this)},void 0,!1,{fileName:eC,lineNumber:173,columnNumber:5},this)}var nC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/PluginSlot.tsx`,rC=new WeakMap;function iC(e){let t=rC.get(e);return t||(t=(0,I.lazy)(e),rC.set(e,t)),t}var aC=class extends I.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}componentDidCatch(e){console.error(`[plugin-slot] contribution "${this.props.id}" failed —`,e)}render(){return this.state.failed?null:this.props.children}};function oC({name:e}){let t=ei(e);return t.length?(0,L.jsxDEV)(L.Fragment,{children:t.map(e=>{let t=iC(e.load);return(0,L.jsxDEV)(aC,{id:e.id,children:(0,L.jsxDEV)(I.Suspense,{fallback:null,children:(0,L.jsxDEV)(t,{},void 0,!1,{fileName:nC,lineNumber:54,columnNumber:15},this)},void 0,!1,{fileName:nC,lineNumber:53,columnNumber:13},this)},e.id,!1,{fileName:nC,lineNumber:52,columnNumber:11},this)})},void 0,!1,{fileName:nC,lineNumber:48,columnNumber:5},this):null}function sC({id:e,load:t}){let n=iC(t);return(0,L.jsxDEV)(aC,{id:e,children:(0,L.jsxDEV)(I.Suspense,{fallback:null,children:(0,L.jsxDEV)(n,{},void 0,!1,{fileName:nC,lineNumber:69,columnNumber:9},this)},void 0,!1,{fileName:nC,lineNumber:68,columnNumber:7},this)},void 0,!1,{fileName:nC,lineNumber:67,columnNumber:5},this)}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Shell.tsx`,cC=(0,I.lazy)(()=>m(()=>import(`./SettingsPage-CaPzeX50.js`).then(e=>({default:e.SettingsPage})),__vite__mapDeps([56,1,2,3,51,18,19,4,15,6,7,5,9,57,58,59,60]))),lC=(0,I.lazy)(()=>m(()=>import(`./DiagnosticsPage-lKgGju82.js`).then(e=>({default:e.DiagnosticsPage})),__vite__mapDeps([61,1,2,3,51,18,19,4,15,6,7,5,9,58,59,60]))),uC=(0,I.lazy)(()=>m(()=>import(`./PluginSettingsPage-BFsSZgTa.js`).then(e=>({default:e.PluginSettingsPage})),__vite__mapDeps([62,1,2,3,51,18,19,4,15,6,7,5,9,63,64]))),dC=(0,I.lazy)(()=>m(()=>import(`./NewRecordView-DJrRPNxT.js`).then(e=>({default:e.NewRecordView})),__vite__mapDeps([65,1,2,3,51,18,19,4,15,6,7,5,9,64,66,20,21,58]))),fC={"/":(0,L.jsxDEV)(Zx,{},void 0,!1,{fileName:$,lineNumber:33,columnNumber:8},void 0),"/trash":(0,L.jsxDEV)(eS,{},void 0,!1,{fileName:$,lineNumber:34,columnNumber:13},void 0),"/settings":(0,L.jsxDEV)(cC,{},void 0,!1,{fileName:$,lineNumber:35,columnNumber:16},void 0),"/settings/diagnostics":(0,L.jsxDEV)(lC,{},void 0,!1,{fileName:$,lineNumber:36,columnNumber:28},void 0),"/settings/account":(0,L.jsxDEV)(iS,{},void 0,!1,{fileName:$,lineNumber:37,columnNumber:24},void 0),"/settings/users":(0,L.jsxDEV)(yS,{},void 0,!1,{fileName:$,lineNumber:38,columnNumber:22},void 0),"/settings/users/new":(0,L.jsxDEV)(SS,{},void 0,!1,{fileName:$,lineNumber:39,columnNumber:26},void 0),"/settings/users/:id":(0,L.jsxDEV)(TS,{},void 0,!1,{fileName:$,lineNumber:40,columnNumber:26},void 0),"/settings/:groupId":(0,L.jsxDEV)(uC,{},void 0,!1,{fileName:$,lineNumber:41,columnNumber:25},void 0),"/:library/:shelf":(0,L.jsxDEV)(FS,{},void 0,!1,{fileName:$,lineNumber:42,columnNumber:23},void 0),"/:library/:shelf/new":(0,L.jsxDEV)(dC,{},void 0,!1,{fileName:$,lineNumber:43,columnNumber:27},void 0),"/:library/:shelf/:id":(0,L.jsxDEV)(tC,{},void 0,!1,{fileName:$,lineNumber:44,columnNumber:27},void 0)};function pC(){return(0,L.jsxDEV)(g,{children:[(0,L.jsxDEV)(p,{path:`/login`,element:(0,L.jsxDEV)(Ix,{},void 0,!1,{fileName:$,lineNumber:50,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:50,columnNumber:7},this),(0,L.jsxDEV)(p,{path:`/setup`,element:(0,L.jsxDEV)(zx,{},void 0,!1,{fileName:$,lineNumber:51,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:51,columnNumber:7},this),(0,L.jsxDEV)(p,{path:`/*`,element:(0,L.jsxDEV)(va,{children:(0,L.jsxDEV)(mC,{},void 0,!1,{fileName:$,lineNumber:56,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:55,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:52,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:49,columnNumber:5},this)}function mC(){let[e,t]=(0,I.useState)(!1);return(0,I.useEffect)(()=>{function e(e){(e.metaKey||e.ctrlKey)&&e.key===`k`&&(e.preventDefault(),t(e=>!e))}return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,L.jsxDEV)(L.Fragment,{children:[(0,L.jsxDEV)(`div`,{className:`min-h-dvh bg-bg`,children:[(0,L.jsxDEV)(Wx,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:81,columnNumber:9},this),(0,L.jsxDEV)(`main`,{className:`nav:pl-52 pb-16 nav:pb-0`,children:(0,L.jsxDEV)(I.Suspense,{fallback:(0,L.jsxDEV)(`div`,{className:`flex justify-center py-16`,children:(0,L.jsxDEV)(Pe,{className:`animate-spin text-muted`,size:20},void 0,!1,{fileName:$,lineNumber:90,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:89,columnNumber:15},this),children:(0,L.jsxDEV)(g,{children:[Px.map(e=>(0,L.jsxDEV)(p,{path:e.pattern,element:fC[e.pattern]},e.pattern,!1,{fileName:$,lineNumber:96,columnNumber:17},this)),(0,L.jsxDEV)(p,{path:`/plugins`,element:(0,L.jsxDEV)(o,{to:`/settings`,replace:!0},void 0,!1,{fileName:$,lineNumber:99,columnNumber:47},this)},void 0,!1,{fileName:$,lineNumber:99,columnNumber:15},this),ti().map(e=>(0,L.jsxDEV)(p,{path:e.path,element:(0,L.jsxDEV)(sC,{id:e.path,load:e.load},void 0,!1,{fileName:$,lineNumber:101,columnNumber:60},this)},e.path,!1,{fileName:$,lineNumber:101,columnNumber:17},this))]},void 0,!0,{fileName:$,lineNumber:94,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:87,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:86,columnNumber:9},this),(0,L.jsxDEV)(Kx,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:106,columnNumber:9},this),(0,L.jsxDEV)(oC,{name:`overlay`},void 0,!1,{fileName:$,lineNumber:107,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:80,columnNumber:7},this),(0,L.jsxDEV)(Jx,{open:e,onClose:()=>t(!1)},void 0,!1,{fileName:$,lineNumber:109,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:79,columnNumber:5},this)}var hC=typeof window>`u`?``:window.location.origin;async function gC(){try{let e=await fetch(Oe.instance);if(!e.ok){e.status!==401&&console.warn(`[instance] GET ${Oe.instance} → ${e.status}`);return}let t=await e.json();typeof t.origin==`string`&&t.origin&&(hC=t.origin.replace(/\/+$/,``))}catch{}}function _C(){return hC}function vC(){mt({origin:_C,mediaUrl:Ui,uploadFile:Xi,resolveEmbed:Gi,listRecords:_a,listDir:aa}),Vt({getShelf:Pi,getOptionList:Ai})}var yC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/main.tsx`,bC=[];try{bC=await $S()}catch(e){console.warn(`[federation] failed to load plugins, continuing with none:`,e)}Ri(bC),await gC(),vC(),oi(Px),ii(Hi().map(e=>({library:e.library,shelf:e.shelf}))),(0,ba.createRoot)(document.getElementById(`root`)).render((0,L.jsxDEV)(I.StrictMode,{children:(0,L.jsxDEV)(f,{children:[(0,L.jsxDEV)(pC,{},void 0,!1,{fileName:yC,lineNumber:64,columnNumber:7},void 0),(0,L.jsxDEV)(yt,{},void 0,!1,{fileName:yC,lineNumber:65,columnNumber:7},void 0),(0,L.jsxDEV)(Zn,{richColors:!0,position:`bottom-right`},void 0,!1,{fileName:yC,lineNumber:66,columnNumber:7},void 0)]},void 0,!0,{fileName:yC,lineNumber:63,columnNumber:5},void 0)},void 0,!1,{fileName:yC,lineNumber:62,columnNumber:3},void 0));
|