@coffer-org/web 2.3.1 → 2.3.2
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/{ExtendReasonInfo-z28f5Xmg.js → ExtendReasonInfo-CgKQ39nC.js} +1 -1
- package/dist/assets/{Icon-CdBq17IP.js → Icon-DaSvVHpK.js} +1 -1
- package/dist/assets/{NewRecordView-BHQca6YX.js → NewRecordView-B-kwzTNR.js} +1 -1
- package/dist/assets/{PluginSettingsPage-BEp95q6I.js → PluginSettingsPage-DRIoUrWh.js} +1 -1
- package/dist/assets/{SettingsForm-DdtiBGb3.js → SettingsForm-Uo2Q5LpZ.js} +1 -1
- package/dist/assets/{SettingsPage-qVIURuje.js → SettingsPage-gIBSGdWr.js} +2 -2
- package/dist/assets/ThemeSwitcher-ZT85TTNj.js +1 -0
- package/dist/assets/{Toolbar-DXfFoY9S.js → Toolbar-BnOdDu6X.js} +1 -1
- package/dist/assets/{chrome-DUkOYMaR.js → chrome-sd97kYfl.js} +1 -1
- package/dist/assets/{field-frame-BvHP_maQ.js → field-frame-Bkoto67V.js} +1 -1
- package/dist/assets/{index-BNmHBQkx.js → index-DcR103zg.js} +11 -11
- package/dist/assets/{shared-Bo5mxHya.js → shared-ndFHu4pt.js} +1 -1
- package/dist/assets/{ui-Bjep8RzZ.js → ui-BBV3pDRp.js} +1 -1
- package/dist/assets/{ui-D91-SKFW.js → ui-_GSLTUsI.js} +1 -1
- package/dist/index.html +9 -9
- package/package.json +1 -1
- package/dist/assets/ThemeSwitcher-CB9R_Qiy.js +0 -1
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-CxlMpjDc.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/clsx-CjueKrWZ.js","assets/ui-vendor-EU9CHLyR.js","assets/icons-DBHj1PyA.js","assets/purify.es-sLXpNpJ5.js","assets/development-olQNibq5.js","assets/micromark-extension-gfm-BUw6_ZLT.js","assets/dist-BKBBNg6L.js","assets/dist-CJsxDt1W.js","assets/lib-Du7RHLba.js","assets/zwitch-656t1L3N.js","assets/lib-B13BbhLB.js","assets/MarkdownEditor-BMHuPElP.css","assets/esm-Dfm1ivm4.js","assets/space-separated-tokens-IJiqTQpk.js","assets/lib-BJGpevNH.js","assets/lib-sYoE14fC.js","assets/esm-YFvMvTG9.css","assets/esm-C5Scej0H.js","assets/dist-COeDLrWj.js","assets/phone-input-DLmP9Sfd.js","assets/x-BFRg18Fi.js","assets/input-group-Bmvb-qBI.js","assets/button-D-Q6I5Ob.js","assets/combobox-DkZHekBD.js","assets/src-CaN2oqQE.js","assets/fields-CnmTcDr4.js","assets/plugin-q1oOYqt7.js","assets/settings-Dfvzj6n2.js","assets/src-DtIj8-CE.js","assets/src-D49LGQ58.js","assets/color-names-CKKZbleV.js","assets/countries-BlKrWFMP.js","assets/src-UycGO1Ve.js","assets/data-size-Ki_AjEms.js","assets/src-zZtvluoL.js","assets/shelf-BdJ77CWj.js","assets/extend-lcgcPDs5.js","assets/src-CJE27ksq.js","assets/src-qmUWHIuy.js","assets/src-BpfdeepB.js","assets/src-DbJOMlGp.js","assets/src-B_SQm4m2.js","assets/src-DNRPYtVW.js","assets/src-CEzuKpEh.js","assets/src-2_pykFU4.js","assets/src-Ba-jB65j.js","assets/src-BKiejyjC.js","assets/src-D8vyOddU.js","assets/src-BS0Fu0Fq.js","assets/src-DEBwxHUA.js","assets/src-41AhrwZ4.js","assets/src-B-9OrFPA.js","assets/src-D2RcwCOa.js","assets/src-dtQwwxRD.js","assets/src-DwfQCgYj.js","assets/src-Dz6ZM88a.js","assets/src-BpJzKzOW.js","assets/ui-
|
|
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,d as s,f as c,i as l,l as u,n as d,o as f,p,r as m,s as h,t as g,u as _}from"./react-vendor-BskHO5hY.js";import{n as v,r as y,t as b}from"./SettingsForm-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/MarkdownEditor-CxlMpjDc.js","assets/rolldown-runtime-QTnfLwEv.js","assets/i18n-vendor-T6EnJ_TL.js","assets/react-vendor-BskHO5hY.js","assets/clsx-CjueKrWZ.js","assets/ui-vendor-EU9CHLyR.js","assets/icons-DBHj1PyA.js","assets/purify.es-sLXpNpJ5.js","assets/development-olQNibq5.js","assets/micromark-extension-gfm-BUw6_ZLT.js","assets/dist-BKBBNg6L.js","assets/dist-CJsxDt1W.js","assets/lib-Du7RHLba.js","assets/zwitch-656t1L3N.js","assets/lib-B13BbhLB.js","assets/MarkdownEditor-BMHuPElP.css","assets/esm-Dfm1ivm4.js","assets/space-separated-tokens-IJiqTQpk.js","assets/lib-BJGpevNH.js","assets/lib-sYoE14fC.js","assets/esm-YFvMvTG9.css","assets/esm-C5Scej0H.js","assets/dist-COeDLrWj.js","assets/phone-input-DLmP9Sfd.js","assets/x-BFRg18Fi.js","assets/input-group-Bmvb-qBI.js","assets/button-D-Q6I5Ob.js","assets/combobox-DkZHekBD.js","assets/src-CaN2oqQE.js","assets/fields-CnmTcDr4.js","assets/plugin-q1oOYqt7.js","assets/settings-Dfvzj6n2.js","assets/src-DtIj8-CE.js","assets/src-D49LGQ58.js","assets/color-names-CKKZbleV.js","assets/countries-BlKrWFMP.js","assets/src-UycGO1Ve.js","assets/data-size-Ki_AjEms.js","assets/src-zZtvluoL.js","assets/shelf-BdJ77CWj.js","assets/extend-lcgcPDs5.js","assets/src-CJE27ksq.js","assets/src-qmUWHIuy.js","assets/src-BpfdeepB.js","assets/src-DbJOMlGp.js","assets/src-B_SQm4m2.js","assets/src-DNRPYtVW.js","assets/src-CEzuKpEh.js","assets/src-2_pykFU4.js","assets/src-Ba-jB65j.js","assets/src-BKiejyjC.js","assets/src-D8vyOddU.js","assets/src-BS0Fu0Fq.js","assets/src-DEBwxHUA.js","assets/src-41AhrwZ4.js","assets/src-B-9OrFPA.js","assets/src-D2RcwCOa.js","assets/src-dtQwwxRD.js","assets/src-DwfQCgYj.js","assets/src-Dz6ZM88a.js","assets/src-BpJzKzOW.js","assets/ui-BBV3pDRp.js","assets/shared-ndFHu4pt.js","assets/Icon-DaSvVHpK.js","assets/square-CiErsTOS.js","assets/upload-Bp-ZANIb.js","assets/json-CkyL3W27.js","assets/src-DKYT_mO5.js","assets/plugin-ui-CKd6q8ec.js","assets/field-frame-Bkoto67V.js","assets/chrome-sd97kYfl.js","assets/ui-_GSLTUsI.js","assets/dispatch-Pl-o9vd6.js","assets/ui-C8hTdKa2.js","assets/SettingsPage-gIBSGdWr.js","assets/ThemeSwitcher-ZT85TTNj.js","assets/api-8XMJe9yT.js","assets/dialog-DqWXrq6M.js","assets/PageBody-Y-cpiRMh.js","assets/PluginSettingsPage-DRIoUrWh.js","assets/SettingsForm-Uo2Q5LpZ.js","assets/Toolbar-BnOdDu6X.js","assets/NewRecordView-B-kwzTNR.js","assets/ExtendReasonInfo-CgKQ39nC.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,d as s,f as c,i as l,l as u,n as d,o as f,p,r as m,s as h,t as g,u as _}from"./react-vendor-BskHO5hY.js";import{n as v,r as y,t as b}from"./SettingsForm-Uo2Q5LpZ.js";import{n as x}from"./color-names-CKKZbleV.js";import{n as S,r as C,t as w}from"./x-BFRg18Fi.js";import{a as T,c as E,i as D,n as O,o as k,s as A,t as ee}from"./input-group-Bmvb-qBI.js";import{A as te,F as ne,M as j,N as M,P as re,ft as ie,j as ae,tt as oe}from"./ui-vendor-EU9CHLyR.js";import{a as se,c as ce,i as le,l as ue,n as N,o as P,r as de,s as fe,t as pe}from"./ExtendReasonInfo-CgKQ39nC.js";import{a as me,d as he,f as ge,i as _e,l as ve,n as ye,o as be,p as xe,r as Se,s as Ce,t as we}from"./Icon-DaSvVHpK.js";import{_ as Te,a as Ee,b as De,c as Oe,d as ke,h as Ae,i as je,l as Me,m as Ne,n as Pe,o as Fe,p as Ie,r as Le,s as Re,t as ze,u as Be,v as Ve,y as He}from"./Toolbar-BnOdDu6X.js";import{a as Ue,i as We,n as Ge,o as Ke,t as qe}from"./ThemeSwitcher-ZT85TTNj.js";import{i as Je,n as Ye,t as F}from"./button-D-Q6I5Ob.js";import{C as Xe,D as Ze,E as Qe,O as $e,S as et,T as tt,_ as nt,a as rt,b as it,c as at,d as ot,f as st,g as ct,h as lt,i as ut,l as dt,m as ft,n as pt,o as mt,p as ht,r as gt,s as _t,t as vt,u as yt,v as bt,w as xt,x as St,y as Ct}from"./shared-ndFHu4pt.js";import{a as wt,i as Tt,o as Et,t as Dt}from"./use-media-query-BED2JoBm.js";import{n as Ot,t as kt}from"./upload-Bp-ZANIb.js";import{a as At,c as jt,d as Mt,f as Nt,g as Pt,h as Ft,l as It,m as Lt,n as Rt,o as zt,p as Bt,r as Vt,s as Ht,u as Ut}from"./chrome-sd97kYfl.js";import{n as Wt}from"./square-CiErsTOS.js";import{A as Gt,D as Kt,c as qt,d as Jt,f as Yt,i as Xt,k as Zt,o as Qt,r as $t,u as en}from"./fields-CnmTcDr4.js";import{_ as tn,a as nn,b as rn,c as an,d as on,f as sn,h as cn,i as ln,l as un,m as dn,o as fn,p as pn,r as mn,s as hn,u as gn,v as _n,x as vn,y as yn}from"./shelf-BdJ77CWj.js";import{a as bn,i as I,n as xn,o as Sn,r as Cn,s as wn,t as Tn}from"./src-DKYT_mO5.js";import{a as En,i as Dn,r as On,t as kn}from"./plugin-ui-CKd6q8ec.js";import{t as An}from"./json-CkyL3W27.js";import{a as jn,i as Mn,o as Nn,t as Pn}from"./field-frame-Bkoto67V.js";import{t as Fn}from"./markdown-vendor-CtaBI5gJ.js";import{t as In}from"./purify.es-sLXpNpJ5.js";import{a as Ln,c as Rn,i as zn,l as Bn,n as Vn,o as Hn,r as Un,t as Wn,u as Gn}from"./combobox-DkZHekBD.js";import"./countries-BlKrWFMP.js";import{C as Kn,M as qn,S as Jn,T as Yn,_ as Xn,b as Zn,c as Qn,d as $n,f as er,g as tr,i as nr,j as rr,k as ir,l as ar,m as or,n as sr,o as cr,r as lr,t as ur,u as dr,v as fr,w as pr,x as mr,y as hr}from"./api-8XMJe9yT.js";import{n as gr,r as _r,t as vr}from"./dispatch-Pl-o9vd6.js";import{a as yr,i as br,n as xr,r as Sr,t as Cr}from"./dialog-DqWXrq6M.js";import{r as wr,t as Tr}from"./lib-BJGpevNH.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 L=t(n(),1),Er=p(),Dr={common:{loading:`Завантаження…`,saving:`Збереження…`,error:`Помилка`,back:`Назад`,yes:`Так`,no:`Ні`,notFound:`Тип не знайдено`,daysUnit:`дн.`,peopleUnit:`ос.`,empty:`Немає записів`},actions:{new:`Новий`,addFirst:`Додати перший запис`,edit:`Редагувати`,editAll:`Редагувати все`,save:`Зберегти`,create:`Створити`,cancel:`Скасувати`,confirm:`Підтвердити`,confirmDelete:`Видалити цей запис?`,delete:`Видалити`,upload:`Завантажити`,replace:`Замінити`,confirmDeletePhoto:`Видалити фото?`,add:`Додати`,actionSuccess:`Готово`,actionError:`Помилка`,actionNotFound:`Дію не зареєстровано`,notice:`Повідомлення`},save:{saving:`Збереження…`,done:`Збережено`,failed:`Не вдалося зберегти`},upload:{tooLarge:`Файл завеликий (макс. 25 МБ)`,failed:`Не вдалося завантажити`,progress:`Прогрес завантаження`},embed:{open:`Відкрити`,pastePlaceholder:`Вставте URL…`,resolveFailed:`Не вдалося завантажити прев'ю`},reminder:{today:`сьогодні`,inDays:`через {{days}} дн`,overdue:`прострочено {{days}} дн`},nav:{selectType:`Оберіть тип у меню`,plugins:`Плагіни`,home:`Головна`,search:`Пошук`,browse:`Огляд`,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:`Керування всіма акаунтами інстансу.`},theme:{label:`Тема`,auto:`Авто`,light:`Світла`,dark:`Темна`,eink:`E-ink`},group:{title:`Групування`,field:`Поле`,all:`Всі записи`,noValue:`Без значення`,yes:`Так`,no:`Ні`},plugins:{loading:`Завантаження…`,restartBannerBefore:`Зміни застосуються після `,restartBannerBold:`рестарту сервера`,restartBannerAfter:` (набір активних плагінів читається на старті).`,confirmPurge:`Видалити ВСІ дані плагіна «{{id}}»? Таблиці буде дропнуто безповоротно.`,genericError:`Помилка: {{code}}`,purgeButton:`Видалити дані`,purgeTitle:`Видалити всі дані плагіна (безповоротно)`,switchDisable:`Вимкнути`,switchEnable:`Увімкнути`,blockedByDependents:`Не можна вимкнути: від нього залежать увімкнені плагіни — {{list}}`,metaDepends:`залежить:`,metaLibraries:`бібліотеки:`,metaExtends:`розширення:`,updateButton:`Оновити`,checkUpdates:`Перевірити оновлення`,checkingUpdates:`Перевіряю…`,updateCheckError:`Не вдалося перевірити оновлення.`,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
|
|
|
6
|
-
Сервер перезапуститься одразу після встановлення — переконайтесь, що він працює під process-manager'ом (systemd/pm2/docker), який автоматично його підніме. Рекомендовано зробити резервну копію бази даних заздалегідь.`,errors:{core_required:`Плагін core вимкнути не можна.`,has_dependents:`Від нього залежать увімкнені: {{list}}.`,missing_deps:`Спершу увімкни залежності: {{list}}.`,unknown_plugin:`Невідомий плагін.`}},auth:{loginTitle:`Вхід`,welcomeEyebrow:`Особистий простір`,welcomeTitle:`Ваші дані. Під вашим контролем.`,welcomeText:`Увійдіть, щоб продовжити роботу з Coffer.`,secureConnection:`Захищене з’єднання`,setupTitle:`Створити першого адміністратора`,login:`Логін`,password:`Пароль`,displayName:`Ім'я`,signIn:`Увійти`,createAccount:`Створити акаунт`,invalidCredentials:`Невірний логін або пароль.`,genericError:`Щось пішло не так.`,accountTitle:`Мій акаунт`,sessionTitle:`Сеанс`,logoutDescription:`Завершити поточний сеанс на цьому пристрої.`,logout:`Вийти`,fieldDisplayName:`Ім'я`,fieldLogin:`Логін`,fieldPasswordOptional:`Новий пароль (лишіть порожнім, щоб не міняти)`,tokensTitle:`API-токени`,tokenNamePlaceholder:`Назва токена (напр. "agent")`,tokenCreate:`Створити токен`,tokenCreatedOnce:`Скопіюйте токен зараз — більше він не покажеться:`,tokenRevoke:`Відкликати`,tokenConfirmRevoke:`Відкликати цей токен? Усе, що його використовує, перестане працювати.`,grantsTitle:`Підключені застосунки`,grantsEmpty:`Жоден застосунок ще не авторизовано. Вони зʼявляться тут після підтвердження на екрані згоди Coffer.`,grantConfirmRevoke:`Відключити цей застосунок? Його токени доступу перестануть працювати одразу.`,usersTitle:`Користувачі`,addUser:`Додати користувача`,roleAdmin:`Адмін`,roleMember:`Учасник`,fieldRole:`Роль`,fieldDisabled:`Вимкнено`,userCreateTitle:`Новий користувач`,lastAdminError:`Не можна прибрати останнього адміна.`},form:{serverRejected:`Сервер відхилив:`,createTitle:`Новий — {{label}}`,editTitle:`Редагувати — {{label}}`,mdPlaceholder:`Текст у форматі Markdown…`,photo:`+ Фото`,properties:`Властивості`,keyPlaceholder:`ключ`,valuePlaceholderShort:`значення`,addProperty:`Властивість`,days:`дн`,hours:`год`,minutes:`хв`,seconds:`с`,addTag:`Додати тег…`,addRow:`+ Додати рядок`,search:`Пошук…`,loading:`Завантаження…`,loadError:`Помилка завантаження`,noRecords:`Немає записів`,addRecord:`+ Додати…`,addItem:`+ Додати пункт`},list:{empty:`Поки порожньо`,searchPlaceholder:`Пошук…`,sortBy:`Сортувати за`,sortNone:`Без сортування`,asc:`За зростанням`,desc:`За спаданням`,peopleCount_one:`{{count}} ос.`,peopleCount_few:`{{count}} ос.`,peopleCount_many:`{{count}} ос.`,peopleCount_other:`{{count}} ос.`,pairsCount_one:`{{count}} пара`,pairsCount_few:`{{count}} пари`,pairsCount_many:`{{count}} пар`,pairsCount_other:`{{count}} пар`},search:{title:`Глобальний пошук`,placeholder:`Пошук полиць і записів…`,allShelves:`Усі полиці`,results:`Результати`,noResults:`Нічого не знайдено`},record:{count_one:`{{count}} запис`,count_few:`{{count}} записи`,count_many:`{{count}} записів`,count_other:`{{count}} записів`,hide:`Сховати`,show:`Показати`},extend:{shownWhen:`Показується коли:`},weekdaysShort:[`Пн`,`Вт`,`Ср`,`Чт`,`Пт`,`Сб`,`Нд`],lang:{uk:`Українська`,ru:`Русский`,en:`English`},validation:{required:`обов'язкове поле`,invalid_type:`неприпустимий тип значення`,min_length:`мінімум {{min}} симв.`,max_length:`максимум {{max}} симв.`,pattern:`неприпустимий формат`,email:`некоректна email-адреса`,min:`не менше {{min}}`,max:`не більше {{max}}`,int:`має бути цілим`,date_format:`формат YYYY-MM-DD`,date_min:`не раніше {{min}}`,date_max:`не пізніше {{max}}`,enum:`оберіть зі списку`,json:`невалідний JSON`,structure:`невалідна структура`,int_list:`невалідні посилання на записи`,kv_single:`дозволено лише одну пару`,links_structure:`невалідна структура підключень`,time_format:`формат HH:MM:SS`,datetime_format:`формат YYYY-MM-DDTHH:MM`,tags_list:`очікується масив тегів`,slotted_length:`невірна кількість елементів`,check_structure:`невалідна структура відмітки`,measured_structure:`очікується {value, unit}`,measured_unit:`невідома одиниця`,money_structure:`некоректна сума`,geo_structure:`очікується {lat, lng}`,money_currency:`невідома валюта`,color_format:`формат #RRGGBB`,row_structure:`невалідна структура рядків`,row_duplicate:`значення «{{key}}» повторюється між рядками`,array:`очікується масив`,array_item:`невалідне значення у масиві`,ip_structure:`невалідна IP-адреса`,cidr_structure:`невалідний CIDR`,per_weekday:`масив із 7 чисел`,period_order:`початок не може бути після кінця`,range_structure:`очікується {from, to}`,last_admin:`Не можна прибрати останнього адміна.`,range_order:`from має бути ≤ to`,file_structure:`некоректний файл`,file_remote_url:`file-поле тримає завантажений файл, а не віддалений URL`,file_unknown_key:`у файлі можуть бути лише name, mime і size`,file_name:`очікується голе ім’я файлу, без шляху`,file_not_uploaded:`такого завантаженого файлу немає — спершу завантажте його`,code_structure:`очікується {code, lang}`,url:`некоректний URL`,embed_structure:`некоректне вкладення`,colorname:`невідома назва кольору`},core:{plugin:{label:`Система`},settings:{label:`Система`,publicUrl:`Публічна адреса`,publicUrlHint:`Лише origin, без кінцевого слеша — напр. https://coffer.example`,language:`Мова`},fields:{type:`Тип`,name:`Назва`,weekday:`День тижня`,value:`Значення`,text:`Текст`,check:`Позначка`},presets:{slug:`лише малі латинські літери, цифри й дефіс`,imei:`IMEI — рівно 15 цифр`,mac:`MAC — формат XX:XX:XX:XX:XX:XX`,iban:`IBAN — 2 літери, 2 цифри, далі літери й цифри (без пробілів)`,hostname:`імʼя хоста / FQDN (мітки через крапку: літери, цифри, дефіс)`,tel:`номер телефону`,link:`URL (scheme:// або домен із крапкою)`},lookup:{enough:`Досить`,partial:`Частково`,missing:`Немає`,noData:`немає даних`},period:{from:`З`,until:`По`},sex:{M:`Чоловіча`,F:`Жіноча`,other:`Інша`},weekdays:{mon:`Понеділок`,tue:`Вівторок`,wed:`Середа`,thu:`Четвер`,fri:`П'ятниця`,sat:`Субота`,sun:`Неділя`},colors:x.uk,countries:{AF:`Афганістан`,AL:`Албанія`,DZ:`Алжир`,AD:`Андорра`,AO:`Ангола`,AG:`Антигуа і Барбуда`,AR:`Аргентина`,AM:`Вірменія`,AU:`Австралія`,AT:`Австрія`,AZ:`Азербайджан`,BS:`Багамські Острови`,BH:`Бахрейн`,BD:`Бангладеш`,BY:`Білорусь`,BE:`Бельгія`,BZ:`Беліз`,BJ:`Бенін`,BT:`Бутан`,BO:`Болівія`,BA:`Боснія і Герцеговина`,BW:`Ботсвана`,BR:`Бразилія`,BN:`Бруней`,BG:`Болгарія`,BF:`Буркіна-Фасо`,BI:`Бурунді`,CV:`Кабо-Верде`,KH:`Камбоджа`,CM:`Камерун`,CA:`Канада`,CF:`ЦАР`,TD:`Чад`,CL:`Чилі`,CN:`Китай`,CO:`Колумбія`,KM:`Комори`,CG:`Конго`,CD:`ДР Конго`,CR:`Коста-Рика`,CI:`Кот-д'Івуар`,HR:`Хорватія`,CU:`Куба`,CY:`Кіпр`,CZ:`Чехія`,DK:`Данія`,DJ:`Джибуті`,DM:`Домініка`,DO:`Домініканська Республіка`,EC:`Еквадор`,EG:`Єгипет`,SV:`Сальвадор`,GQ:`Екваторіальна Гвінея`,ER:`Еритрея`,EE:`Естонія`,SZ:`Есватіні`,ET:`Ефіопія`,FJ:`Фіджі`,FI:`Фінляндія`,FR:`Франція`,GA:`Габон`,GM:`Гамбія`,GE:`Грузія`,DE:`Німеччина`,GH:`Гана`,GR:`Греція`,GD:`Гренада`,GT:`Гватемала`,GN:`Гвінея`,GW:`Гвінея-Бісау`,GY:`Гаяна`,HT:`Гаїті`,HN:`Гондурас`,HU:`Угорщина`,IS:`Ісландія`,IN:`Індія`,ID:`Індонезія`,IR:`Іран`,IQ:`Ірак`,IE:`Ірландія`,IL:`Ізраїль`,IT:`Італія`,JM:`Ямайка`,JP:`Японія`,JO:`Йорданія`,KZ:`Казахстан`,KE:`Кенія`,KI:`Кірибаті`,KP:`КНДР`,KR:`Південна Корея`,KW:`Кувейт`,KG:`Киргизстан`,LA:`Лаос`,LV:`Латвія`,LB:`Ліван`,LS:`Лесото`,LR:`Ліберія`,LY:`Лівія`,LI:`Ліхтенштейн`,LT:`Литва`,LU:`Люксембург`,MG:`Мадагаскар`,MW:`Малаві`,MY:`Малайзія`,MV:`Мальдіви`,ML:`Малі`,MT:`Мальта`,MH:`Маршаллові Острови`,MR:`Мавританія`,MU:`Маврикій`,MX:`Мексика`,FM:`Мікронезія`,MD:`Молдова`,MC:`Монако`,MN:`Монголія`,ME:`Чорногорія`,MA:`Марокко`,MZ:`Мозамбік`,MM:`М'янма`,NA:`Намібія`,NR:`Науру`,NP:`Непал`,NL:`Нідерланди`,NZ:`Нова Зеландія`,NI:`Нікарагуа`,NE:`Нігер`,NG:`Нігерія`,MK:`Північна Македонія`,NO:`Норвегія`,OM:`Оман`,PK:`Пакистан`,PW:`Палау`,PA:`Панама`,PG:`Папуа Нова Гвінея`,PY:`Парагвай`,PE:`Перу`,PH:`Філіппіни`,PL:`Польща`,PT:`Португалія`,QA:`Катар`,RO:`Румунія`,RU:`Росія`,RW:`Руанда`,KN:`Сент-Кітс і Невіс`,LC:`Сент-Люсія`,VC:`Сент-Вінсент і Гренадіни`,WS:`Самоа`,SM:`Сан-Марино`,ST:`Сан-Томе і Принсіпі`,SA:`Саудівська Аравія`,SN:`Сенегал`,RS:`Сербія`,SC:`Сейшели`,SL:`Сьєрра-Леоне`,SG:`Сінгапур`,SK:`Словаччина`,SI:`Словенія`,SB:`Соломонові Острови`,SO:`Сомалі`,ZA:`ПАР`,SS:`Південний Судан`,ES:`Іспанія`,LK:`Шрі-Ланка`,SD:`Судан`,SR:`Суринам`,SE:`Швеція`,CH:`Швейцарія`,SY:`Сирія`,TW:`Тайвань`,TJ:`Таджикистан`,TZ:`Танзанія`,TH:`Таїланд`,TL:`Тімор-Лесте`,TG:`Того`,TO:`Тонга`,TT:`Тринідад і Тобаго`,TN:`Туніс`,TR:`Туреччина`,TM:`Туркменістан`,TV:`Тувалу`,UG:`Уганда`,UA:`Україна`,AE:`ОАЕ`,GB:`Велика Британія`,US:`США`,UY:`Уругвай`,UZ:`Узбекистан`,VU:`Вануату`,VE:`Венесуела`,VN:`В'єтнам`,YE:`Ємен`,ZM:`Замбія`,ZW:`Зімбабве`},units:{UAH:`₴ UAH`,USD:`$ USD`,EUR:`€ EUR`,GBP:`£ GBP`,CZK:`Kč CZK`,PLN:`zł PLN`,mg:`мг`,g:`г`,kg:`кг`,t:`т`,oz:`oz`,lb:`lb`,ml:`мл`,cl:`сл`,dl:`дл`,l:`л`,tsp:`ч.л.`,tbsp:`ст.л.`,cup:`чашка`,fl_oz:`fl oz`,pcs:`шт`,pair:`пара`,set:`набір`,pack:`пачка`,s:`сек`,min:`хв`,h:`год`,d:`день`,w:`тиждень`,C:`°C`,F:`°F`,K:`К`,mm:`мм`,cm:`см`,m:`м`,km:`км`,in:`дюйм`,ft:`фут`,mi:`миля`,nm:`морська миля`,cm2:`см²`,m2:`м²`,ha:`га`,km2:`км²`,ft2:`фут²`,ac:`акр`,B:`Б`,KB:`КБ`,MB:`МБ`,GB:`ГБ`,TB:`ТБ`,mAh:`мАг`,Ah:`Аг`,Wh:`Вт·год`,kWh:`кВт·год`,mW:`мВт`,W:`Вт`,kW:`кВт`,mV:`мВ`,V:`В`,ms:`м/с`,kmh:`км/год`,mph:`mph`,kn:`вузол`,"%":`%`,ppm:`ppm`}}},Pr={common:{loading:`Загрузка…`,saving:`Сохранение…`,error:`Ошибка`,back:`Назад`,yes:`Да`,no:`Нет`,notFound:`Тип не найден`,daysUnit:`дн.`,peopleUnit:`чел.`,empty:`Нет записей`},actions:{new:`Новый`,addFirst:`Добавить первую запись`,edit:`Редактировать`,editAll:`Редактировать всё`,save:`Сохранить`,create:`Создать`,cancel:`Отмена`,confirm:`Подтвердить`,confirmDelete:`Удалить эту запись?`,delete:`Удалить`,upload:`Загрузить`,replace:`Заменить`,confirmDeletePhoto:`Удалить фото?`,add:`Добавить`,actionSuccess:`Готово`,actionError:`Ошибка`,actionNotFound:`Действие не зарегистрировано`,notice:`Уведомление`},save:{saving:`Сохранение…`,done:`Сохранено`,failed:`Не удалось сохранить`},upload:{tooLarge:`Файл слишком большой (макс. 25 МБ)`,failed:`Не удалось загрузить`,progress:`Прогресс загрузки`},embed:{open:`Открыть`,pastePlaceholder:`Вставьте URL…`,resolveFailed:`Не удалось загрузить превью`},reminder:{today:`сегодня`,inDays:`через {{days}} дн`,overdue:`просрочено {{days}} дн`},nav:{selectType:`Выберите тип в меню`,plugins:`Плагины`,home:`Главная`,search:`Поиск`,browse:`Обзор`,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:`Управление всеми аккаунтами инстанса.`},theme:{label:`Тема`,auto:`Авто`,light:`Светлая`,dark:`Тёмная`,eink:`E-ink`},folders:{title:`Папки`,all:`Все`,noFolder:`Без папки`,newFolder:`+ Новая папка`,namePlaceholder:`Название папки…`,confirmDelete:`Удалить папку? Записи останутся.`,collapse:`Свернуть`,expand:`Развернуть`,newSubfolder:`Новая подпапка`,rename:`Переименовать`,delete:`Удалить`},plugins:{loading:`Загрузка…`,restartBannerBefore:`Изменения применятся после `,restartBannerBold:`перезапуска сервера`,restartBannerAfter:` (набор активных плагинов читается при старте).`,confirmPurge:`Удалить ВСЕ данные плагина «{{id}}»? Таблицы будут удалены безвозвратно.`,genericError:`Ошибка: {{code}}`,purgeButton:`Удалить данные`,purgeTitle:`Удалить все данные плагина (безвозвратно)`,switchDisable:`Выключить`,switchEnable:`Включить`,blockedByDependents:`Нельзя выключить: от него зависят включённые плагины — {{list}}`,metaDepends:`зависит:`,metaLibraries:`библиотеки:`,metaExtends:`расширения:`,updateButton:`Обновить`,checkUpdates:`Проверить обновления`,checkingUpdates:`Проверяю…`,updateCheckError:`Не удалось проверить обновления.`,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}} компонент(ов)?
|
|
6
|
+
Сервер перезапуститься одразу після встановлення — переконайтесь, що він працює під process-manager'ом (systemd/pm2/docker), який автоматично його підніме. Рекомендовано зробити резервну копію бази даних заздалегідь.`,errors:{core_required:`Плагін core вимкнути не можна.`,has_dependents:`Від нього залежать увімкнені: {{list}}.`,missing_deps:`Спершу увімкни залежності: {{list}}.`,unknown_plugin:`Невідомий плагін.`}},auth:{loginTitle:`Вхід`,welcomeEyebrow:`Особистий простір`,welcomeTitle:`Ваші дані. Під вашим контролем.`,welcomeText:`Увійдіть, щоб продовжити роботу з Coffer.`,secureConnection:`Захищене з’єднання`,setupTitle:`Створити першого адміністратора`,login:`Логін`,password:`Пароль`,displayName:`Ім'я`,signIn:`Увійти`,createAccount:`Створити акаунт`,invalidCredentials:`Невірний логін або пароль.`,genericError:`Щось пішло не так.`,accountTitle:`Мій акаунт`,sessionTitle:`Сеанс`,logoutDescription:`Завершити поточний сеанс на цьому пристрої.`,logout:`Вийти`,fieldDisplayName:`Ім'я`,fieldLogin:`Логін`,fieldPasswordOptional:`Новий пароль (лишіть порожнім, щоб не міняти)`,tokensTitle:`API-токени`,tokenNamePlaceholder:`Назва токена (напр. "agent")`,tokenCreate:`Створити токен`,tokenCreatedOnce:`Скопіюйте токен зараз — більше він не покажеться:`,tokenRevoke:`Відкликати`,tokenConfirmRevoke:`Відкликати цей токен? Усе, що його використовує, перестане працювати.`,grantsTitle:`Підключені застосунки`,grantsEmpty:`Жоден застосунок ще не авторизовано. Вони зʼявляться тут після підтвердження на екрані згоди Coffer.`,grantConfirmRevoke:`Відключити цей застосунок? Його токени доступу перестануть працювати одразу.`,usersTitle:`Користувачі`,addUser:`Додати користувача`,roleAdmin:`Адмін`,roleMember:`Учасник`,fieldRole:`Роль`,fieldDisabled:`Вимкнено`,userCreateTitle:`Новий користувач`,lastAdminError:`Не можна прибрати останнього адміна.`},form:{serverRejected:`Сервер відхилив:`,createTitle:`Новий — {{label}}`,editTitle:`Редагувати — {{label}}`,mdPlaceholder:`Текст у форматі Markdown…`,photo:`+ Фото`,properties:`Властивості`,keyPlaceholder:`ключ`,valuePlaceholderShort:`значення`,addProperty:`Властивість`,days:`дн`,hours:`год`,minutes:`хв`,seconds:`с`,addTag:`Додати тег…`,addRow:`+ Додати рядок`,search:`Пошук…`,loading:`Завантаження…`,loadError:`Помилка завантаження`,noRecords:`Немає записів`,addRecord:`+ Додати…`,addItem:`+ Додати пункт`},list:{empty:`Поки порожньо`,searchPlaceholder:`Пошук…`,sortBy:`Сортувати за`,sortNone:`Без сортування`,asc:`За зростанням`,desc:`За спаданням`,peopleCount_one:`{{count}} ос.`,peopleCount_few:`{{count}} ос.`,peopleCount_many:`{{count}} ос.`,peopleCount_other:`{{count}} ос.`,pairsCount_one:`{{count}} пара`,pairsCount_few:`{{count}} пари`,pairsCount_many:`{{count}} пар`,pairsCount_other:`{{count}} пар`},search:{title:`Глобальний пошук`,placeholder:`Пошук полиць і записів…`,allShelves:`Усі полиці`,results:`Результати`,noResults:`Нічого не знайдено`},record:{count_one:`{{count}} запис`,count_few:`{{count}} записи`,count_many:`{{count}} записів`,count_other:`{{count}} записів`,hide:`Сховати`,show:`Показати`},extend:{shownWhen:`Показується коли:`},weekdaysShort:[`Пн`,`Вт`,`Ср`,`Чт`,`Пт`,`Сб`,`Нд`],lang:{uk:`Українська`,ru:`Русский`,en:`English`},validation:{required:`обов'язкове поле`,invalid_type:`неприпустимий тип значення`,min_length:`мінімум {{min}} симв.`,max_length:`максимум {{max}} симв.`,pattern:`неприпустимий формат`,email:`некоректна email-адреса`,min:`не менше {{min}}`,max:`не більше {{max}}`,int:`має бути цілим`,date_format:`формат YYYY-MM-DD`,date_min:`не раніше {{min}}`,date_max:`не пізніше {{max}}`,enum:`оберіть зі списку`,json:`невалідний JSON`,structure:`невалідна структура`,int_list:`невалідні посилання на записи`,kv_single:`дозволено лише одну пару`,links_structure:`невалідна структура підключень`,time_format:`формат HH:MM:SS`,datetime_format:`формат YYYY-MM-DDTHH:MM`,tags_list:`очікується масив тегів`,slotted_length:`невірна кількість елементів`,check_structure:`невалідна структура відмітки`,measured_structure:`очікується {value, unit}`,measured_unit:`невідома одиниця`,money_structure:`некоректна сума`,geo_structure:`очікується {lat, lng}`,money_currency:`невідома валюта`,color_format:`формат #RRGGBB`,row_structure:`невалідна структура рядків`,row_duplicate:`значення «{{key}}» повторюється між рядками`,array:`очікується масив`,array_item:`невалідне значення у масиві`,ip_structure:`невалідна IP-адреса`,cidr_structure:`невалідний CIDR`,per_weekday:`масив із 7 чисел`,period_order:`початок не може бути після кінця`,range_structure:`очікується {from, to}`,last_admin:`Не можна прибрати останнього адміна.`,range_order:`from має бути ≤ to`,file_structure:`некоректний файл`,file_remote_url:`file-поле тримає завантажений файл, а не віддалений URL`,file_unknown_key:`у файлі можуть бути лише name, mime і size`,file_name:`очікується голе ім’я файлу, без шляху`,file_not_uploaded:`такого завантаженого файлу немає — спершу завантажте його`,code_structure:`очікується {code, lang}`,url:`некоректний URL`,embed_structure:`некоректне вкладення`,colorname:`невідома назва кольору`},core:{plugin:{label:`Система`},settings:{label:`Система`,publicUrl:`Публічна адреса`,publicUrlHint:`Лише origin, без кінцевого слеша — напр. https://coffer.example`,language:`Мова`},fields:{type:`Тип`,name:`Назва`,weekday:`День тижня`,value:`Значення`,text:`Текст`,check:`Позначка`},presets:{slug:`лише малі латинські літери, цифри й дефіс`,imei:`IMEI — рівно 15 цифр`,mac:`MAC — формат XX:XX:XX:XX:XX:XX`,iban:`IBAN — 2 літери, 2 цифри, далі літери й цифри (без пробілів)`,hostname:`імʼя хоста / FQDN (мітки через крапку: літери, цифри, дефіс)`,tel:`номер телефону`,link:`URL (scheme:// або домен із крапкою)`},lookup:{enough:`Досить`,partial:`Частково`,missing:`Немає`,noData:`немає даних`},period:{from:`З`,until:`По`},sex:{M:`Чоловіча`,F:`Жіноча`,other:`Інша`},weekdays:{mon:`Понеділок`,tue:`Вівторок`,wed:`Середа`,thu:`Четвер`,fri:`П'ятниця`,sat:`Субота`,sun:`Неділя`},colors:x.uk,countries:{AF:`Афганістан`,AL:`Албанія`,DZ:`Алжир`,AD:`Андорра`,AO:`Ангола`,AG:`Антигуа і Барбуда`,AR:`Аргентина`,AM:`Вірменія`,AU:`Австралія`,AT:`Австрія`,AZ:`Азербайджан`,BS:`Багамські Острови`,BH:`Бахрейн`,BD:`Бангладеш`,BY:`Білорусь`,BE:`Бельгія`,BZ:`Беліз`,BJ:`Бенін`,BT:`Бутан`,BO:`Болівія`,BA:`Боснія і Герцеговина`,BW:`Ботсвана`,BR:`Бразилія`,BN:`Бруней`,BG:`Болгарія`,BF:`Буркіна-Фасо`,BI:`Бурунді`,CV:`Кабо-Верде`,KH:`Камбоджа`,CM:`Камерун`,CA:`Канада`,CF:`ЦАР`,TD:`Чад`,CL:`Чилі`,CN:`Китай`,CO:`Колумбія`,KM:`Комори`,CG:`Конго`,CD:`ДР Конго`,CR:`Коста-Рика`,CI:`Кот-д'Івуар`,HR:`Хорватія`,CU:`Куба`,CY:`Кіпр`,CZ:`Чехія`,DK:`Данія`,DJ:`Джибуті`,DM:`Домініка`,DO:`Домініканська Республіка`,EC:`Еквадор`,EG:`Єгипет`,SV:`Сальвадор`,GQ:`Екваторіальна Гвінея`,ER:`Еритрея`,EE:`Естонія`,SZ:`Есватіні`,ET:`Ефіопія`,FJ:`Фіджі`,FI:`Фінляндія`,FR:`Франція`,GA:`Габон`,GM:`Гамбія`,GE:`Грузія`,DE:`Німеччина`,GH:`Гана`,GR:`Греція`,GD:`Гренада`,GT:`Гватемала`,GN:`Гвінея`,GW:`Гвінея-Бісау`,GY:`Гаяна`,HT:`Гаїті`,HN:`Гондурас`,HU:`Угорщина`,IS:`Ісландія`,IN:`Індія`,ID:`Індонезія`,IR:`Іран`,IQ:`Ірак`,IE:`Ірландія`,IL:`Ізраїль`,IT:`Італія`,JM:`Ямайка`,JP:`Японія`,JO:`Йорданія`,KZ:`Казахстан`,KE:`Кенія`,KI:`Кірибаті`,KP:`КНДР`,KR:`Південна Корея`,KW:`Кувейт`,KG:`Киргизстан`,LA:`Лаос`,LV:`Латвія`,LB:`Ліван`,LS:`Лесото`,LR:`Ліберія`,LY:`Лівія`,LI:`Ліхтенштейн`,LT:`Литва`,LU:`Люксембург`,MG:`Мадагаскар`,MW:`Малаві`,MY:`Малайзія`,MV:`Мальдіви`,ML:`Малі`,MT:`Мальта`,MH:`Маршаллові Острови`,MR:`Мавританія`,MU:`Маврикій`,MX:`Мексика`,FM:`Мікронезія`,MD:`Молдова`,MC:`Монако`,MN:`Монголія`,ME:`Чорногорія`,MA:`Марокко`,MZ:`Мозамбік`,MM:`М'янма`,NA:`Намібія`,NR:`Науру`,NP:`Непал`,NL:`Нідерланди`,NZ:`Нова Зеландія`,NI:`Нікарагуа`,NE:`Нігер`,NG:`Нігерія`,MK:`Північна Македонія`,NO:`Норвегія`,OM:`Оман`,PK:`Пакистан`,PW:`Палау`,PA:`Панама`,PG:`Папуа Нова Гвінея`,PY:`Парагвай`,PE:`Перу`,PH:`Філіппіни`,PL:`Польща`,PT:`Португалія`,QA:`Катар`,RO:`Румунія`,RU:`Росія`,RW:`Руанда`,KN:`Сент-Кітс і Невіс`,LC:`Сент-Люсія`,VC:`Сент-Вінсент і Гренадіни`,WS:`Самоа`,SM:`Сан-Марино`,ST:`Сан-Томе і Принсіпі`,SA:`Саудівська Аравія`,SN:`Сенегал`,RS:`Сербія`,SC:`Сейшели`,SL:`Сьєрра-Леоне`,SG:`Сінгапур`,SK:`Словаччина`,SI:`Словенія`,SB:`Соломонові Острови`,SO:`Сомалі`,ZA:`ПАР`,SS:`Південний Судан`,ES:`Іспанія`,LK:`Шрі-Ланка`,SD:`Судан`,SR:`Суринам`,SE:`Швеція`,CH:`Швейцарія`,SY:`Сирія`,TW:`Тайвань`,TJ:`Таджикистан`,TZ:`Танзанія`,TH:`Таїланд`,TL:`Тімор-Лесте`,TG:`Того`,TO:`Тонга`,TT:`Тринідад і Тобаго`,TN:`Туніс`,TR:`Туреччина`,TM:`Туркменістан`,TV:`Тувалу`,UG:`Уганда`,UA:`Україна`,AE:`ОАЕ`,GB:`Велика Британія`,US:`США`,UY:`Уругвай`,UZ:`Узбекистан`,VU:`Вануату`,VE:`Венесуела`,VN:`В'єтнам`,YE:`Ємен`,ZM:`Замбія`,ZW:`Зімбабве`},units:{UAH:`₴ UAH`,USD:`$ USD`,EUR:`€ EUR`,GBP:`£ GBP`,CZK:`Kč CZK`,PLN:`zł PLN`,mg:`мг`,g:`г`,kg:`кг`,t:`т`,oz:`oz`,lb:`lb`,ml:`мл`,cl:`сл`,dl:`дл`,l:`л`,tsp:`ч.л.`,tbsp:`ст.л.`,cup:`чашка`,fl_oz:`fl oz`,pcs:`шт`,pair:`пара`,set:`набір`,pack:`пачка`,s:`сек`,min:`хв`,h:`год`,d:`день`,w:`тиждень`,C:`°C`,F:`°F`,K:`К`,mm:`мм`,cm:`см`,m:`м`,km:`км`,in:`дюйм`,ft:`фут`,mi:`миля`,nm:`морська миля`,cm2:`см²`,m2:`м²`,ha:`га`,km2:`км²`,ft2:`фут²`,ac:`акр`,B:`Б`,KB:`КБ`,MB:`МБ`,GB:`ГБ`,TB:`ТБ`,mAh:`мАг`,Ah:`Аг`,Wh:`Вт·год`,kWh:`кВт·год`,mW:`мВт`,W:`Вт`,kW:`кВт`,mV:`мВ`,V:`В`,ms:`м/с`,kmh:`км/год`,mph:`mph`,kn:`вузол`,"%":`%`,ppm:`ppm`}}},Or={common:{loading:`Загрузка…`,saving:`Сохранение…`,error:`Ошибка`,back:`Назад`,yes:`Да`,no:`Нет`,notFound:`Тип не найден`,daysUnit:`дн.`,peopleUnit:`чел.`,empty:`Нет записей`},actions:{new:`Новый`,addFirst:`Добавить первую запись`,edit:`Редактировать`,editAll:`Редактировать всё`,save:`Сохранить`,create:`Создать`,cancel:`Отмена`,confirm:`Подтвердить`,confirmDelete:`Удалить эту запись?`,delete:`Удалить`,upload:`Загрузить`,replace:`Заменить`,confirmDeletePhoto:`Удалить фото?`,add:`Добавить`,actionSuccess:`Готово`,actionError:`Ошибка`,actionNotFound:`Действие не зарегистрировано`,notice:`Уведомление`},save:{saving:`Сохранение…`,done:`Сохранено`,failed:`Не удалось сохранить`},upload:{tooLarge:`Файл слишком большой (макс. 25 МБ)`,failed:`Не удалось загрузить`,progress:`Прогресс загрузки`},embed:{open:`Открыть`,pastePlaceholder:`Вставьте URL…`,resolveFailed:`Не удалось загрузить превью`},reminder:{today:`сегодня`,inDays:`через {{days}} дн`,overdue:`просрочено {{days}} дн`},nav:{selectType:`Выберите тип в меню`,plugins:`Плагины`,home:`Главная`,search:`Поиск`,browse:`Обзор`,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:`Управление всеми аккаунтами инстанса.`},theme:{label:`Тема`,auto:`Авто`,light:`Светлая`,dark:`Тёмная`,eink:`E-ink`},folders:{title:`Папки`,all:`Все`,noFolder:`Без папки`,newFolder:`+ Новая папка`,namePlaceholder:`Название папки…`,confirmDelete:`Удалить папку? Записи останутся.`,collapse:`Свернуть`,expand:`Развернуть`,newSubfolder:`Новая подпапка`,rename:`Переименовать`,delete:`Удалить`},plugins:{loading:`Загрузка…`,restartBannerBefore:`Изменения применятся после `,restartBannerBold:`перезапуска сервера`,restartBannerAfter:` (набор активных плагинов читается при старте).`,confirmPurge:`Удалить ВСЕ данные плагина «{{id}}»? Таблицы будут удалены безвозвратно.`,genericError:`Ошибка: {{code}}`,purgeButton:`Удалить данные`,purgeTitle:`Удалить все данные плагина (безвозвратно)`,switchDisable:`Выключить`,switchEnable:`Включить`,blockedByDependents:`Нельзя выключить: от него зависят включённые плагины — {{list}}`,metaDepends:`зависит:`,metaLibraries:`библиотеки:`,metaExtends:`расширения:`,updateButton:`Обновить`,checkUpdates:`Проверить обновления`,checkingUpdates:`Проверяю…`,updateCheckError:`Не удалось проверить обновления.`,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}} компонент(ов)?
|
|
7
7
|
|
|
8
8
|
{{list}}
|
|
9
9
|
|
|
10
|
-
Сервер перезапустится сразу после установки — убедитесь, что он работает под process-manager'ом (systemd/pm2/docker), который автоматически его поднимет. Рекомендуется сделать резервную копию базы данных заранее.`,errors:{core_required:`Плагин core нельзя выключить.`,has_dependents:`От него зависят включённые: {{list}}.`,missing_deps:`Сначала включи зависимости: {{list}}.`,unknown_plugin:`Неизвестный плагин.`}},auth:{loginTitle:`Вход`,welcomeEyebrow:`Личное пространство`,welcomeTitle:`Ваши данные. Под вашим контролем.`,welcomeText:`Войдите, чтобы продолжить работу с Coffer.`,secureConnection:`Защищённое соединение`,setupTitle:`Создать первого администратора`,login:`Логин`,password:`Пароль`,displayName:`Имя`,signIn:`Войти`,createAccount:`Создать аккаунт`,invalidCredentials:`Неверный логин или пароль.`,genericError:`Что-то пошло не так.`,accountTitle:`Мой аккаунт`,sessionTitle:`Сессия`,logoutDescription:`Завершить текущую сессию на этом устройстве.`,logout:`Выйти`,fieldDisplayName:`Имя`,fieldLogin:`Логин`,fieldPasswordOptional:`Новый пароль (оставьте пустым, чтобы не менять)`,tokensTitle:`API-токены`,tokenNamePlaceholder:`Название токена (напр. "agent")`,tokenCreate:`Создать токен`,tokenCreatedOnce:`Скопируйте токен сейчас — он больше не будет показан:`,tokenRevoke:`Отозвать`,tokenConfirmRevoke:`Отозвать этот токен? Всё, что его использует, перестанет работать.`,grantsTitle:`Подключённые приложения`,grantsEmpty:`Ни одно приложение ещё не авторизовано. Они появятся здесь после подтверждения на экране согласия Coffer.`,grantConfirmRevoke:`Отключить это приложение? Его токены доступа перестанут работать сразу.`,usersTitle:`Пользователи`,addUser:`Добавить пользователя`,roleAdmin:`Админ`,roleMember:`Участник`,fieldRole:`Роль`,fieldDisabled:`Отключён`,userCreateTitle:`Новый пользователь`,lastAdminError:`Нельзя убрать последнего админа.`},form:{serverRejected:`Сервер отклонил:`,createTitle:`Новый — {{label}}`,editTitle:`Редактировать — {{label}}`,mdPlaceholder:`Текст в формате Markdown…`,photo:`+ Фото`,properties:`Свойства`,keyPlaceholder:`ключ`,valuePlaceholderShort:`значение`,addProperty:`Свойство`,days:`дн`,hours:`ч`,minutes:`мин`,seconds:`с`,addTag:`Добавить тег…`,addRow:`+ Добавить строку`,search:`Поиск…`,loading:`Загрузка…`,loadError:`Ошибка загрузки`,noRecords:`Нет записей`,addRecord:`+ Добавить…`,addItem:`+ Добавить пункт`},list:{empty:`Пока пусто`,searchPlaceholder:`Поиск…`,sortBy:`Сортировать по`,sortNone:`Без сортировки`,asc:`По возрастанию`,desc:`По убыванию`,peopleCount_one:`{{count}} чел.`,peopleCount_few:`{{count}} чел.`,peopleCount_many:`{{count}} чел.`,peopleCount_other:`{{count}} чел.`,pairsCount_one:`{{count}} пара`,pairsCount_few:`{{count}} пары`,pairsCount_many:`{{count}} пар`,pairsCount_other:`{{count}} пар`},search:{title:`Глобальный поиск`,placeholder:`Поиск полок и записей…`,allShelves:`Все полки`,results:`Результаты`,noResults:`Ничего не найдено`},record:{count_one:`{{count}} запись`,count_few:`{{count}} записи`,count_many:`{{count}} записей`,count_other:`{{count}} записей`,hide:`Скрыть`,show:`Показать`},extend:{shownWhen:`Показывается когда:`},weekdaysShort:[`Пн`,`Вт`,`Ср`,`Чт`,`Пт`,`Сб`,`Вс`],lang:{uk:`Українська`,ru:`Русский`,en:`English`},validation:{required:`обязательное поле`,invalid_type:`недопустимый тип значения`,min_length:`минимум {{min}} симв.`,max_length:`максимум {{max}} симв.`,pattern:`недопустимый формат`,email:`некорректный email-адрес`,min:`не меньше {{min}}`,max:`не больше {{max}}`,int:`должно быть целым`,date_format:`формат YYYY-MM-DD`,date_min:`не раньше {{min}}`,date_max:`не позже {{max}}`,enum:`выберите из списка`,json:`невалидный JSON`,structure:`недопустимая структура`,int_list:`недопустимые ссылки на записи`,kv_single:`допустима только одна пара`,links_structure:`недопустимая структура подключений`,time_format:`формат HH:MM:SS`,datetime_format:`формат YYYY-MM-DDTHH:MM`,tags_list:`ожидается массив тегов`,slotted_length:`неверное количество элементов`,check_structure:`неверная структура отметки`,measured_structure:`ожидается {value, unit}`,measured_unit:`неизвестная единица`,money_structure:`некорректная сумма`,geo_structure:`ожидается {lat, lng}`,money_currency:`неизвестная валюта`,color_format:`формат #RRGGBB`,row_structure:`недопустимая структура строк`,row_duplicate:`значение «{{key}}» повторяется между строками`,array:`ожидается массив`,array_item:`недопустимое значение в массиве`,ip_structure:`недопустимый IP-адрес`,cidr_structure:`недопустимый CIDR`,per_weekday:`массив из 7 чисел`,period_order:`начало не должно быть позже конца`,range_structure:`ожидается {from, to}`,last_admin:`Нельзя убрать последнего админа.`,range_order:`from должно быть ≤ to`,file_structure:`некорректный файл`,file_remote_url:`file-поле хранит загруженный файл, а не удалённый URL`,file_unknown_key:`у файла могут быть только name, mime и size`,file_name:`ожидается голое имя файла, без пути`,file_not_uploaded:`такого загруженного файла нет — сначала загрузите его`,code_structure:`ожидается {code, lang}`,url:`некорректный URL`,embed_structure:`некорректное вложение`,colorname:`неизвестное название цвета`},core:{plugin:{label:`Система`},settings:{label:`Система`,publicUrl:`Публичный адрес`,publicUrlHint:`Только origin, без завершающего слеша — напр. https://coffer.example`,language:`Язык`},fields:{type:`Тип`,name:`Название`,weekday:`День недели`,value:`Значение`,text:`Текст`,check:`Отметка`},presets:{slug:`только строчные латинские буквы, цифры и дефис`,imei:`IMEI — ровно 15 цифр`,mac:`MAC — формат XX:XX:XX:XX:XX:XX`,iban:`IBAN — 2 буквы, 2 цифры, далее буквы и цифры (без пробелов)`,hostname:`имя хоста / FQDN (метки через точку: буквы, цифры, дефис)`,tel:`номер телефона`,link:`URL (scheme:// или домен с точкой)`},lookup:{enough:`Достаточно`,partial:`Частично`,missing:`Нет`,noData:`нет данных`},period:{from:`С`,until:`По`},sex:{M:`Мужской`,F:`Женский`,other:`Другой`},weekdays:{mon:`Понедельник`,tue:`Вторник`,wed:`Среда`,thu:`Четверг`,fri:`Пятница`,sat:`Суббота`,sun:`Воскресенье`},colors:x.ru,countries:{AF:`Афганистан`,AL:`Албания`,DZ:`Алжир`,AD:`Андорра`,AO:`Ангола`,AG:`Антигуа и Барбуда`,AR:`Аргентина`,AM:`Армения`,AU:`Австралия`,AT:`Австрия`,AZ:`Азербайджан`,BS:`Багамы`,BH:`Бахрейн`,BD:`Бангладеш`,BY:`Беларусь`,BE:`Бельгия`,BZ:`Белиз`,BJ:`Бенин`,BT:`Бутан`,BO:`Боливия`,BA:`Босния и Герцеговина`,BW:`Ботсвана`,BR:`Бразилия`,BN:`Бруней`,BG:`Болгария`,BF:`Буркина-Фасо`,BI:`Бурунди`,CV:`Кабо-Верде`,KH:`Камбоджа`,CM:`Камерун`,CA:`Канада`,CF:`Центрально-Африканская Республика`,TD:`Чад`,CL:`Чили`,CN:`Китай`,CO:`Колумбия`,KM:`Коморы`,CG:`Конго - Браззавиль`,CD:`Конго - Киншаса`,CR:`Коста-Рика`,CI:`Кот-д’Ивуар`,HR:`Хорватия`,CU:`Куба`,CY:`Кипр`,CZ:`Чехия`,DK:`Дания`,DJ:`Джибути`,DM:`Доминика`,DO:`Доминиканская Республика`,EC:`Эквадор`,EG:`Египет`,SV:`Сальвадор`,GQ:`Экваториальная Гвинея`,ER:`Эритрея`,EE:`Эстония`,SZ:`Эсватини`,ET:`Эфиопия`,FJ:`Фиджи`,FI:`Финляндия`,FR:`Франция`,GA:`Габон`,GM:`Гамбия`,GE:`Грузия`,DE:`Германия`,GH:`Гана`,GR:`Греция`,GD:`Гренада`,GT:`Гватемала`,GN:`Гвинея`,GW:`Гвинея-Бисау`,GY:`Гайана`,HT:`Гаити`,HN:`Гондурас`,HU:`Венгрия`,IS:`Исландия`,IN:`Индия`,ID:`Индонезия`,IR:`Иран`,IQ:`Ирак`,IE:`Ирландия`,IL:`Израиль`,IT:`Италия`,JM:`Ямайка`,JP:`Япония`,JO:`Иордания`,KZ:`Казахстан`,KE:`Кения`,KI:`Кирибати`,KP:`КНДР`,KR:`Республика Корея`,KW:`Кувейт`,KG:`Киргизия`,LA:`Лаос`,LV:`Латвия`,LB:`Ливан`,LS:`Лесото`,LR:`Либерия`,LY:`Ливия`,LI:`Лихтенштейн`,LT:`Литва`,LU:`Люксембург`,MG:`Мадагаскар`,MW:`Малави`,MY:`Малайзия`,MV:`Мальдивы`,ML:`Мали`,MT:`Мальта`,MH:`Маршалловы о-ва`,MR:`Мавритания`,MU:`Маврикий`,MX:`Мексика`,FM:`Федеративные Штаты Микронезии`,MD:`Молдова`,MC:`Монако`,MN:`Монголия`,ME:`Черногория`,MA:`Марокко`,MZ:`Мозамбик`,MM:`Мьянма (Бирма)`,NA:`Намибия`,NR:`Науру`,NP:`Непал`,NL:`Нидерланды`,NZ:`Новая Зеландия`,NI:`Никарагуа`,NE:`Нигер`,NG:`Нигерия`,MK:`Северная Македония`,NO:`Норвегия`,OM:`Оман`,PK:`Пакистан`,PW:`Палау`,PA:`Панама`,PG:`Папуа — Новая Гвинея`,PY:`Парагвай`,PE:`Перу`,PH:`Филиппины`,PL:`Польша`,PT:`Португалия`,QA:`Катар`,RO:`Румыния`,RU:`Россия`,RW:`Руанда`,KN:`Сент-Китс и Невис`,LC:`Сент-Люсия`,VC:`Сент-Винсент и Гренадины`,WS:`Самоа`,SM:`Сан-Марино`,ST:`Сан-Томе и Принсипи`,SA:`Саудовская Аравия`,SN:`Сенегал`,RS:`Сербия`,SC:`Сейшельские о-ва`,SL:`Сьерра-Леоне`,SG:`Сингапур`,SK:`Словакия`,SI:`Словения`,SB:`Соломоновы о-ва`,SO:`Сомали`,ZA:`Южно-Африканская Республика`,SS:`Южный Судан`,ES:`Испания`,LK:`Шри-Ланка`,SD:`Судан`,SR:`Суринам`,SE:`Швеция`,CH:`Швейцария`,SY:`Сирия`,TW:`Тайвань`,TJ:`Таджикистан`,TZ:`Танзания`,TH:`Таиланд`,TL:`Восточный Тимор`,TG:`Того`,TO:`Тонга`,TT:`Тринидад и Тобаго`,TN:`Тунис`,TR:`Турция`,TM:`Туркменистан`,TV:`Тувалу`,UG:`Уганда`,UA:`Украина`,AE:`ОАЭ`,GB:`Великобритания`,US:`Соединенные Штаты`,UY:`Уругвай`,UZ:`Узбекистан`,VU:`Вануату`,VE:`Венесуэла`,VN:`Вьетнам`,YE:`Йемен`,ZM:`Замбия`,ZW:`Зимбабве`},units:{UAH:`₴ UAH`,USD:`$ USD`,EUR:`€ EUR`,GBP:`£ GBP`,CZK:`Kč CZK`,PLN:`zł PLN`,mg:`мг`,g:`г`,kg:`кг`,t:`т`,oz:`oz`,lb:`lb`,ml:`мл`,cl:`сл`,dl:`дл`,l:`л`,tsp:`ч.л.`,tbsp:`ст.л.`,cup:`чашка`,fl_oz:`fl oz`,pcs:`шт`,pair:`пара`,set:`набор`,pack:`пачка`,s:`сек`,min:`мин`,h:`ч`,d:`день`,w:`неделя`,C:`°C`,F:`°F`,K:`К`,mm:`мм`,cm:`см`,m:`м`,km:`км`,in:`дюйм`,ft:`фут`,mi:`миля`,nm:`морская миля`,cm2:`см²`,m2:`м²`,ha:`га`,km2:`км²`,ft2:`фут²`,ac:`акр`,B:`Б`,KB:`КБ`,MB:`МБ`,GB:`ГБ`,TB:`ТБ`,mAh:`мАч`,Ah:`Ач`,Wh:`Вт·ч`,kWh:`кВт·ч`,mW:`мВт`,W:`Вт`,kW:`кВт`,mV:`мВ`,V:`В`,ms:`м/с`,kmh:`км/ч`,mph:`mph`,kn:`узел`,"%":`%`,ppm:`ppm`}}},Fr={common:{loading:`Loading…`,saving:`Saving…`,error:`Error`,back:`Back`,yes:`Yes`,no:`No`,notFound:`Type not found`,daysUnit:`d`,peopleUnit:`ppl`,empty:`No records`},actions:{new:`New`,addFirst:`Add first record`,edit:`Edit`,editAll:`Edit all`,save:`Save`,create:`Create`,cancel:`Cancel`,confirm:`Confirm`,confirmDelete:`Delete this record?`,delete:`Delete`,upload:`Upload`,replace:`Replace`,confirmDeletePhoto:`Delete photo?`,add:`Add`,actionSuccess:`Done`,actionError:`Error`,actionNotFound:`Action not registered`,notice:`Notice`},save:{saving:`Saving…`,done:`Saved`,failed:`Save failed`},upload:{tooLarge:`File too large (max 25 MB)`,failed:`Upload failed`,progress:`Upload progress`},embed:{open:`Open`,pastePlaceholder:`Paste a URL…`,resolveFailed:`Could not load preview`},reminder:{today:`today`,inDays:`in {{days}}d`,overdue:`overdue {{days}}d`},nav:{selectType:`Select a type from the menu`,plugins:`Plugins`,home:`Home`,search:`Search`,browse:`Browse`,settings:`Settings`,trash:`Trash`},trash:{title:`Trash`,description:`Deleted records remain in the database. Restore them here or remove them permanently.`,empty:`Trash is empty`,restore:`Restore`,purge:`Delete permanently`,confirmPurge:`Delete this record permanently? This cannot be undone.`,restored:`Record restored`,purged:`Record permanently deleted`},dashboard:{title:`Home`,empty:`No active shelves`},settings:{title:`Settings`,appearance:`Appearance`,theme:`Theme`,language:`Language`,systemDescription:`App-wide settings and base packages.`,systemUpdateTitle:`Update the base packages (core + runtime)`,componentsTitle:`Components`,componentsDescription:`System packages and plugins: updates, enable/disable, purge data.`,personalTitle:`Personal`,usersTitle:`Users`,usersDescription:`Manage every account on this instance.`},theme:{label:`Theme`,auto:`Auto`,light:`Light`,dark:`Dark`,eink:`E-ink`},group:{title:`Grouping`,field:`Field`,all:`All records`,noValue:`No value`,yes:`Yes`,no:`No`},plugins:{loading:`Loading…`,restartBannerBefore:`Changes will take effect after `,restartBannerBold:`server restart`,restartBannerAfter:` (the active plugin set is read at startup).`,confirmPurge:`Delete ALL data for plugin "{{id}}"? Tables will be dropped permanently.`,genericError:`Error: {{code}}`,purgeButton:`Delete data`,purgeTitle:`Delete all plugin data (permanently)`,switchDisable:`Disable`,switchEnable:`Enable`,blockedByDependents:`Can't disable: enabled plugins depend on it — {{list}}`,metaDepends:`depends on:`,metaLibraries:`libraries:`,metaExtends:`extends:`,updateButton:`Update`,checkUpdates:`Check for updates`,checkingUpdates:`Checking…`,updateCheckError:`Could not check for updates.`,updateTitle:`Update from v{{from}} to v{{to}}`,confirmUpdate:`Update plugin "{{id}}" from v{{from}} to v{{to}}? The server will restart immediately after install — make sure it runs under a process manager (systemd/pm2/docker) that will bring it back up automatically. A database backup beforehand is recommended.`,updateError:`Update failed`,updateAllButton:`Update all ({{count}})`,runtimeLabel:`Runtime (server/web/cli)`,confirmUpdateAll:`Update {{count}} component(s)?
|
|
10
|
+
Сервер перезапустится сразу после установки — убедитесь, что он работает под process-manager'ом (systemd/pm2/docker), который автоматически его поднимет. Рекомендуется сделать резервную копию базы данных заранее.`,errors:{core_required:`Плагин core нельзя выключить.`,has_dependents:`От него зависят включённые: {{list}}.`,missing_deps:`Сначала включи зависимости: {{list}}.`,unknown_plugin:`Неизвестный плагин.`}},auth:{loginTitle:`Вход`,welcomeEyebrow:`Личное пространство`,welcomeTitle:`Ваши данные. Под вашим контролем.`,welcomeText:`Войдите, чтобы продолжить работу с Coffer.`,secureConnection:`Защищённое соединение`,setupTitle:`Создать первого администратора`,login:`Логин`,password:`Пароль`,displayName:`Имя`,signIn:`Войти`,createAccount:`Создать аккаунт`,invalidCredentials:`Неверный логин или пароль.`,genericError:`Что-то пошло не так.`,accountTitle:`Мой аккаунт`,sessionTitle:`Сессия`,logoutDescription:`Завершить текущую сессию на этом устройстве.`,logout:`Выйти`,fieldDisplayName:`Имя`,fieldLogin:`Логин`,fieldPasswordOptional:`Новый пароль (оставьте пустым, чтобы не менять)`,tokensTitle:`API-токены`,tokenNamePlaceholder:`Название токена (напр. "agent")`,tokenCreate:`Создать токен`,tokenCreatedOnce:`Скопируйте токен сейчас — он больше не будет показан:`,tokenRevoke:`Отозвать`,tokenConfirmRevoke:`Отозвать этот токен? Всё, что его использует, перестанет работать.`,grantsTitle:`Подключённые приложения`,grantsEmpty:`Ни одно приложение ещё не авторизовано. Они появятся здесь после подтверждения на экране согласия Coffer.`,grantConfirmRevoke:`Отключить это приложение? Его токены доступа перестанут работать сразу.`,usersTitle:`Пользователи`,addUser:`Добавить пользователя`,roleAdmin:`Админ`,roleMember:`Участник`,fieldRole:`Роль`,fieldDisabled:`Отключён`,userCreateTitle:`Новый пользователь`,lastAdminError:`Нельзя убрать последнего админа.`},form:{serverRejected:`Сервер отклонил:`,createTitle:`Новый — {{label}}`,editTitle:`Редактировать — {{label}}`,mdPlaceholder:`Текст в формате Markdown…`,photo:`+ Фото`,properties:`Свойства`,keyPlaceholder:`ключ`,valuePlaceholderShort:`значение`,addProperty:`Свойство`,days:`дн`,hours:`ч`,minutes:`мин`,seconds:`с`,addTag:`Добавить тег…`,addRow:`+ Добавить строку`,search:`Поиск…`,loading:`Загрузка…`,loadError:`Ошибка загрузки`,noRecords:`Нет записей`,addRecord:`+ Добавить…`,addItem:`+ Добавить пункт`},list:{empty:`Пока пусто`,searchPlaceholder:`Поиск…`,sortBy:`Сортировать по`,sortNone:`Без сортировки`,asc:`По возрастанию`,desc:`По убыванию`,peopleCount_one:`{{count}} чел.`,peopleCount_few:`{{count}} чел.`,peopleCount_many:`{{count}} чел.`,peopleCount_other:`{{count}} чел.`,pairsCount_one:`{{count}} пара`,pairsCount_few:`{{count}} пары`,pairsCount_many:`{{count}} пар`,pairsCount_other:`{{count}} пар`},search:{title:`Глобальный поиск`,placeholder:`Поиск полок и записей…`,allShelves:`Все полки`,results:`Результаты`,noResults:`Ничего не найдено`},record:{count_one:`{{count}} запись`,count_few:`{{count}} записи`,count_many:`{{count}} записей`,count_other:`{{count}} записей`,hide:`Скрыть`,show:`Показать`},extend:{shownWhen:`Показывается когда:`},weekdaysShort:[`Пн`,`Вт`,`Ср`,`Чт`,`Пт`,`Сб`,`Вс`],lang:{uk:`Українська`,ru:`Русский`,en:`English`},validation:{required:`обязательное поле`,invalid_type:`недопустимый тип значения`,min_length:`минимум {{min}} симв.`,max_length:`максимум {{max}} симв.`,pattern:`недопустимый формат`,email:`некорректный email-адрес`,min:`не меньше {{min}}`,max:`не больше {{max}}`,int:`должно быть целым`,date_format:`формат YYYY-MM-DD`,date_min:`не раньше {{min}}`,date_max:`не позже {{max}}`,enum:`выберите из списка`,json:`невалидный JSON`,structure:`недопустимая структура`,int_list:`недопустимые ссылки на записи`,kv_single:`допустима только одна пара`,links_structure:`недопустимая структура подключений`,time_format:`формат HH:MM:SS`,datetime_format:`формат YYYY-MM-DDTHH:MM`,tags_list:`ожидается массив тегов`,slotted_length:`неверное количество элементов`,check_structure:`неверная структура отметки`,measured_structure:`ожидается {value, unit}`,measured_unit:`неизвестная единица`,money_structure:`некорректная сумма`,geo_structure:`ожидается {lat, lng}`,money_currency:`неизвестная валюта`,color_format:`формат #RRGGBB`,row_structure:`недопустимая структура строк`,row_duplicate:`значение «{{key}}» повторяется между строками`,array:`ожидается массив`,array_item:`недопустимое значение в массиве`,ip_structure:`недопустимый IP-адрес`,cidr_structure:`недопустимый CIDR`,per_weekday:`массив из 7 чисел`,period_order:`начало не должно быть позже конца`,range_structure:`ожидается {from, to}`,last_admin:`Нельзя убрать последнего админа.`,range_order:`from должно быть ≤ to`,file_structure:`некорректный файл`,file_remote_url:`file-поле хранит загруженный файл, а не удалённый URL`,file_unknown_key:`у файла могут быть только name, mime и size`,file_name:`ожидается голое имя файла, без пути`,file_not_uploaded:`такого загруженного файла нет — сначала загрузите его`,code_structure:`ожидается {code, lang}`,url:`некорректный URL`,embed_structure:`некорректное вложение`,colorname:`неизвестное название цвета`},core:{plugin:{label:`Система`},settings:{label:`Система`,publicUrl:`Публичный адрес`,publicUrlHint:`Только origin, без завершающего слеша — напр. https://coffer.example`,language:`Язык`},fields:{type:`Тип`,name:`Название`,weekday:`День недели`,value:`Значение`,text:`Текст`,check:`Отметка`},presets:{slug:`только строчные латинские буквы, цифры и дефис`,imei:`IMEI — ровно 15 цифр`,mac:`MAC — формат XX:XX:XX:XX:XX:XX`,iban:`IBAN — 2 буквы, 2 цифры, далее буквы и цифры (без пробелов)`,hostname:`имя хоста / FQDN (метки через точку: буквы, цифры, дефис)`,tel:`номер телефона`,link:`URL (scheme:// или домен с точкой)`},lookup:{enough:`Достаточно`,partial:`Частично`,missing:`Нет`,noData:`нет данных`},period:{from:`С`,until:`По`},sex:{M:`Мужской`,F:`Женский`,other:`Другой`},weekdays:{mon:`Понедельник`,tue:`Вторник`,wed:`Среда`,thu:`Четверг`,fri:`Пятница`,sat:`Суббота`,sun:`Воскресенье`},colors:x.ru,countries:{AF:`Афганистан`,AL:`Албания`,DZ:`Алжир`,AD:`Андорра`,AO:`Ангола`,AG:`Антигуа и Барбуда`,AR:`Аргентина`,AM:`Армения`,AU:`Австралия`,AT:`Австрия`,AZ:`Азербайджан`,BS:`Багамы`,BH:`Бахрейн`,BD:`Бангладеш`,BY:`Беларусь`,BE:`Бельгия`,BZ:`Белиз`,BJ:`Бенин`,BT:`Бутан`,BO:`Боливия`,BA:`Босния и Герцеговина`,BW:`Ботсвана`,BR:`Бразилия`,BN:`Бруней`,BG:`Болгария`,BF:`Буркина-Фасо`,BI:`Бурунди`,CV:`Кабо-Верде`,KH:`Камбоджа`,CM:`Камерун`,CA:`Канада`,CF:`Центрально-Африканская Республика`,TD:`Чад`,CL:`Чили`,CN:`Китай`,CO:`Колумбия`,KM:`Коморы`,CG:`Конго - Браззавиль`,CD:`Конго - Киншаса`,CR:`Коста-Рика`,CI:`Кот-д’Ивуар`,HR:`Хорватия`,CU:`Куба`,CY:`Кипр`,CZ:`Чехия`,DK:`Дания`,DJ:`Джибути`,DM:`Доминика`,DO:`Доминиканская Республика`,EC:`Эквадор`,EG:`Египет`,SV:`Сальвадор`,GQ:`Экваториальная Гвинея`,ER:`Эритрея`,EE:`Эстония`,SZ:`Эсватини`,ET:`Эфиопия`,FJ:`Фиджи`,FI:`Финляндия`,FR:`Франция`,GA:`Габон`,GM:`Гамбия`,GE:`Грузия`,DE:`Германия`,GH:`Гана`,GR:`Греция`,GD:`Гренада`,GT:`Гватемала`,GN:`Гвинея`,GW:`Гвинея-Бисау`,GY:`Гайана`,HT:`Гаити`,HN:`Гондурас`,HU:`Венгрия`,IS:`Исландия`,IN:`Индия`,ID:`Индонезия`,IR:`Иран`,IQ:`Ирак`,IE:`Ирландия`,IL:`Израиль`,IT:`Италия`,JM:`Ямайка`,JP:`Япония`,JO:`Иордания`,KZ:`Казахстан`,KE:`Кения`,KI:`Кирибати`,KP:`КНДР`,KR:`Республика Корея`,KW:`Кувейт`,KG:`Киргизия`,LA:`Лаос`,LV:`Латвия`,LB:`Ливан`,LS:`Лесото`,LR:`Либерия`,LY:`Ливия`,LI:`Лихтенштейн`,LT:`Литва`,LU:`Люксембург`,MG:`Мадагаскар`,MW:`Малави`,MY:`Малайзия`,MV:`Мальдивы`,ML:`Мали`,MT:`Мальта`,MH:`Маршалловы о-ва`,MR:`Мавритания`,MU:`Маврикий`,MX:`Мексика`,FM:`Федеративные Штаты Микронезии`,MD:`Молдова`,MC:`Монако`,MN:`Монголия`,ME:`Черногория`,MA:`Марокко`,MZ:`Мозамбик`,MM:`Мьянма (Бирма)`,NA:`Намибия`,NR:`Науру`,NP:`Непал`,NL:`Нидерланды`,NZ:`Новая Зеландия`,NI:`Никарагуа`,NE:`Нигер`,NG:`Нигерия`,MK:`Северная Македония`,NO:`Норвегия`,OM:`Оман`,PK:`Пакистан`,PW:`Палау`,PA:`Панама`,PG:`Папуа — Новая Гвинея`,PY:`Парагвай`,PE:`Перу`,PH:`Филиппины`,PL:`Польша`,PT:`Португалия`,QA:`Катар`,RO:`Румыния`,RU:`Россия`,RW:`Руанда`,KN:`Сент-Китс и Невис`,LC:`Сент-Люсия`,VC:`Сент-Винсент и Гренадины`,WS:`Самоа`,SM:`Сан-Марино`,ST:`Сан-Томе и Принсипи`,SA:`Саудовская Аравия`,SN:`Сенегал`,RS:`Сербия`,SC:`Сейшельские о-ва`,SL:`Сьерра-Леоне`,SG:`Сингапур`,SK:`Словакия`,SI:`Словения`,SB:`Соломоновы о-ва`,SO:`Сомали`,ZA:`Южно-Африканская Республика`,SS:`Южный Судан`,ES:`Испания`,LK:`Шри-Ланка`,SD:`Судан`,SR:`Суринам`,SE:`Швеция`,CH:`Швейцария`,SY:`Сирия`,TW:`Тайвань`,TJ:`Таджикистан`,TZ:`Танзания`,TH:`Таиланд`,TL:`Восточный Тимор`,TG:`Того`,TO:`Тонга`,TT:`Тринидад и Тобаго`,TN:`Тунис`,TR:`Турция`,TM:`Туркменистан`,TV:`Тувалу`,UG:`Уганда`,UA:`Украина`,AE:`ОАЭ`,GB:`Великобритания`,US:`Соединенные Штаты`,UY:`Уругвай`,UZ:`Узбекистан`,VU:`Вануату`,VE:`Венесуэла`,VN:`Вьетнам`,YE:`Йемен`,ZM:`Замбия`,ZW:`Зимбабве`},units:{UAH:`₴ UAH`,USD:`$ USD`,EUR:`€ EUR`,GBP:`£ GBP`,CZK:`Kč CZK`,PLN:`zł PLN`,mg:`мг`,g:`г`,kg:`кг`,t:`т`,oz:`oz`,lb:`lb`,ml:`мл`,cl:`сл`,dl:`дл`,l:`л`,tsp:`ч.л.`,tbsp:`ст.л.`,cup:`чашка`,fl_oz:`fl oz`,pcs:`шт`,pair:`пара`,set:`набор`,pack:`пачка`,s:`сек`,min:`мин`,h:`ч`,d:`день`,w:`неделя`,C:`°C`,F:`°F`,K:`К`,mm:`мм`,cm:`см`,m:`м`,km:`км`,in:`дюйм`,ft:`фут`,mi:`миля`,nm:`морская миля`,cm2:`см²`,m2:`м²`,ha:`га`,km2:`км²`,ft2:`фут²`,ac:`акр`,B:`Б`,KB:`КБ`,MB:`МБ`,GB:`ГБ`,TB:`ТБ`,mAh:`мАч`,Ah:`Ач`,Wh:`Вт·ч`,kWh:`кВт·ч`,mW:`мВт`,W:`Вт`,kW:`кВт`,mV:`мВ`,V:`В`,ms:`м/с`,kmh:`км/ч`,mph:`mph`,kn:`узел`,"%":`%`,ppm:`ppm`}}},kr={common:{loading:`Loading…`,saving:`Saving…`,error:`Error`,back:`Back`,yes:`Yes`,no:`No`,notFound:`Type not found`,daysUnit:`d`,peopleUnit:`ppl`,empty:`No records`},actions:{new:`New`,addFirst:`Add first record`,edit:`Edit`,editAll:`Edit all`,save:`Save`,create:`Create`,cancel:`Cancel`,confirm:`Confirm`,confirmDelete:`Delete this record?`,delete:`Delete`,upload:`Upload`,replace:`Replace`,confirmDeletePhoto:`Delete photo?`,add:`Add`,actionSuccess:`Done`,actionError:`Error`,actionNotFound:`Action not registered`,notice:`Notice`},save:{saving:`Saving…`,done:`Saved`,failed:`Save failed`},upload:{tooLarge:`File too large (max 25 MB)`,failed:`Upload failed`,progress:`Upload progress`},embed:{open:`Open`,pastePlaceholder:`Paste a URL…`,resolveFailed:`Could not load preview`},reminder:{today:`today`,inDays:`in {{days}}d`,overdue:`overdue {{days}}d`},nav:{selectType:`Select a type from the menu`,plugins:`Plugins`,home:`Home`,search:`Search`,browse:`Browse`,settings:`Settings`,trash:`Trash`},trash:{title:`Trash`,description:`Deleted records remain in the database. Restore them here or remove them permanently.`,empty:`Trash is empty`,restore:`Restore`,purge:`Delete permanently`,confirmPurge:`Delete this record permanently? This cannot be undone.`,restored:`Record restored`,purged:`Record permanently deleted`},dashboard:{title:`Home`,empty:`No active shelves`},settings:{title:`Settings`,appearance:`Appearance`,theme:`Theme`,language:`Language`,systemDescription:`App-wide settings and base packages.`,systemUpdateTitle:`Update the base packages (core + runtime)`,componentsTitle:`Components`,componentsDescription:`System packages and plugins: updates, enable/disable, purge data.`,personalTitle:`Personal`,usersTitle:`Users`,usersDescription:`Manage every account on this instance.`},theme:{label:`Theme`,auto:`Auto`,light:`Light`,dark:`Dark`,eink:`E-ink`},group:{title:`Grouping`,field:`Field`,all:`All records`,noValue:`No value`,yes:`Yes`,no:`No`},plugins:{loading:`Loading…`,restartBannerBefore:`Changes will take effect after `,restartBannerBold:`server restart`,restartBannerAfter:` (the active plugin set is read at startup).`,confirmPurge:`Delete ALL data for plugin "{{id}}"? Tables will be dropped permanently.`,genericError:`Error: {{code}}`,purgeButton:`Delete data`,purgeTitle:`Delete all plugin data (permanently)`,switchDisable:`Disable`,switchEnable:`Enable`,blockedByDependents:`Can't disable: enabled plugins depend on it — {{list}}`,metaDepends:`depends on:`,metaLibraries:`libraries:`,metaExtends:`extends:`,updateButton:`Update`,checkUpdates:`Check for updates`,checkingUpdates:`Checking…`,updateCheckError:`Could not check for updates.`,updateTitle:`Update from v{{from}} to v{{to}}`,confirmUpdate:`Update plugin "{{id}}" from v{{from}} to v{{to}}? The server will restart immediately after install — make sure it runs under a process manager (systemd/pm2/docker) that will bring it back up automatically. A database backup beforehand is recommended.`,updateError:`Update failed`,updateAllButton:`Update all ({{count}})`,runtimeLabel:`Runtime (server/web/cli)`,confirmUpdateAll:`Update {{count}} component(s)?
|
|
11
11
|
|
|
12
12
|
{{list}}
|
|
13
13
|
|
|
14
|
-
The server will restart immediately after install — make sure it runs under a process manager (systemd/pm2/docker) that will bring it back up automatically. A database backup beforehand is recommended.`,errors:{core_required:`The core plugin cannot be disabled.`,has_dependents:`Enabled plugins depend on it: {{list}}.`,missing_deps:`Enable dependencies first: {{list}}.`,unknown_plugin:`Unknown plugin.`}},auth:{loginTitle:`Sign in`,welcomeEyebrow:`Personal workspace`,welcomeTitle:`Your data. In your hands.`,welcomeText:`Sign in to continue working with Coffer.`,secureConnection:`Secure connection`,setupTitle:`Create the first admin account`,login:`Login`,password:`Password`,displayName:`Display name`,signIn:`Sign in`,createAccount:`Create account`,invalidCredentials:`Wrong login or password.`,genericError:`Something went wrong.`,accountTitle:`My account`,sessionTitle:`Session`,logoutDescription:`End the current session on this device.`,logout:`Sign out`,fieldDisplayName:`Display name`,fieldLogin:`Login`,fieldPasswordOptional:`New password (leave blank to keep unchanged)`,tokensTitle:`API tokens`,tokenNamePlaceholder:`Token name (e.g. "agent")`,tokenCreate:`Create token`,tokenCreatedOnce:`Copy this token now — it will not be shown again:`,tokenRevoke:`Revoke`,tokenConfirmRevoke:`Revoke this token? Anything using it will stop working.`,grantsTitle:`Connected apps`,grantsEmpty:`No app has been authorized yet. Apps appear here after you approve them on the Coffer consent screen.`,grantConfirmRevoke:`Disconnect this app? Its access tokens stop working immediately.`,usersTitle:`Users`,addUser:`Add user`,roleAdmin:`Admin`,roleMember:`Member`,fieldRole:`Role`,fieldDisabled:`Disabled`,userCreateTitle:`New user`,lastAdminError:`Cannot remove the last admin.`},form:{serverRejected:`Server rejected:`,createTitle:`New — {{label}}`,editTitle:`Edit — {{label}}`,mdPlaceholder:`Markdown text…`,photo:`+ Photo`,properties:`Properties`,keyPlaceholder:`key`,valuePlaceholderShort:`value`,addProperty:`Property`,days:`d`,hours:`h`,minutes:`min`,seconds:`s`,addTag:`Add tag…`,addRow:`+ Add row`,search:`Search…`,loading:`Loading…`,loadError:`Load error`,noRecords:`No records`,addRecord:`+ Add…`,addItem:`+ Add item`},list:{empty:`Nothing here yet`,searchPlaceholder:`Search…`,sortBy:`Sort by`,sortNone:`No sorting`,asc:`Ascending`,desc:`Descending`,peopleCount_one:`{{count}} person`,peopleCount_other:`{{count}} ppl`,pairsCount_one:`{{count}} pair`,pairsCount_other:`{{count}} pairs`},search:{title:`Global Search`,placeholder:`Search shelves and records…`,allShelves:`All shelves`,results:`Results`,noResults:`Nothing found`},record:{count_one:`{{count}} record`,count_other:`{{count}} records`,hide:`Hide`,show:`Show`},extend:{shownWhen:`Shown when:`},weekdaysShort:[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],lang:{uk:`Українська`,ru:`Русский`,en:`English`},validation:{required:`required field`,invalid_type:`invalid value type`,min_length:`minimum {{min}} chars`,max_length:`maximum {{max}} chars`,pattern:`invalid format`,email:`invalid email address`,min:`at least {{min}}`,max:`at most {{max}}`,int:`must be an integer`,date_format:`format YYYY-MM-DD`,date_min:`not earlier than {{min}}`,date_max:`not later than {{max}}`,enum:`choose from the list`,json:`invalid JSON`,structure:`invalid structure`,int_list:`invalid record references`,kv_single:`only one pair allowed`,links_structure:`invalid connections structure`,time_format:`format HH:MM:SS`,datetime_format:`format YYYY-MM-DDTHH:MM`,tags_list:`expected array of tags`,slotted_length:`wrong number of items`,check_structure:`invalid check structure`,measured_structure:`expected {value, unit}`,measured_unit:`unknown unit`,money_structure:`invalid amount`,geo_structure:`expected {lat, lng}`,money_currency:`unknown currency`,color_format:`format #RRGGBB`,row_structure:`invalid row structure`,row_duplicate:`value "{{key}}" is duplicated across rows`,array:`expected an array`,array_item:`invalid value in array`,ip_structure:`invalid IP address`,cidr_structure:`invalid CIDR`,per_weekday:`array of 7 numbers`,period_order:`start must not be after end`,range_structure:`expected {from, to}`,last_admin:`Cannot remove the last admin.`,range_order:`from must be ≤ to`,file_structure:`invalid file`,file_remote_url:`file fields hold an uploaded file, not a remote URL`,file_unknown_key:`a file may only carry name, mime and size`,file_name:`expected a bare filename, without a path`,file_not_uploaded:`no such uploaded file — upload it first`,code_structure:`expected {code, lang}`,url:`invalid URL`,embed_structure:`invalid embed`,colorname:`unknown color name`},core:{plugin:{label:`System`},settings:{label:`System`,publicUrl:`Public URL`,publicUrlHint:`Origin only, no trailing slash — e.g. https://coffer.example`,language:`Language`},fields:{type:`Type`,name:`Name`,weekday:`Weekday`,value:`Value`,text:`Text`,check:`Check`},presets:{slug:`lowercase latin letters, digits and hyphen only`,imei:`IMEI — exactly 15 digits`,mac:`MAC — format XX:XX:XX:XX:XX:XX`,iban:`IBAN — 2 letters, 2 digits, then letters and digits (no spaces)`,hostname:`hostname / FQDN (dot-separated labels: letters, digits, hyphen)`,tel:`phone number`,link:`URL (scheme:// or a domain with a dot)`},lookup:{enough:`Enough`,partial:`Partial`,missing:`Missing`,noData:`no data`},period:{from:`From`,until:`Until`},sex:{M:`Male`,F:`Female`,other:`Other`},weekdays:{mon:`Monday`,tue:`Tuesday`,wed:`Wednesday`,thu:`Thursday`,fri:`Friday`,sat:`Saturday`,sun:`Sunday`},colors:x.en,countries:{AF:`Afghanistan`,AL:`Albania`,DZ:`Algeria`,AD:`Andorra`,AO:`Angola`,AG:`Antigua & Barbuda`,AR:`Argentina`,AM:`Armenia`,AU:`Australia`,AT:`Austria`,AZ:`Azerbaijan`,BS:`Bahamas`,BH:`Bahrain`,BD:`Bangladesh`,BY:`Belarus`,BE:`Belgium`,BZ:`Belize`,BJ:`Benin`,BT:`Bhutan`,BO:`Bolivia`,BA:`Bosnia & Herzegovina`,BW:`Botswana`,BR:`Brazil`,BN:`Brunei`,BG:`Bulgaria`,BF:`Burkina Faso`,BI:`Burundi`,CV:`Cape Verde`,KH:`Cambodia`,CM:`Cameroon`,CA:`Canada`,CF:`Central African Republic`,TD:`Chad`,CL:`Chile`,CN:`China`,CO:`Colombia`,KM:`Comoros`,CG:`Congo - Brazzaville`,CD:`Congo - Kinshasa`,CR:`Costa Rica`,CI:`Côte d’Ivoire`,HR:`Croatia`,CU:`Cuba`,CY:`Cyprus`,CZ:`Czechia`,DK:`Denmark`,DJ:`Djibouti`,DM:`Dominica`,DO:`Dominican Republic`,EC:`Ecuador`,EG:`Egypt`,SV:`El Salvador`,GQ:`Equatorial Guinea`,ER:`Eritrea`,EE:`Estonia`,SZ:`Eswatini`,ET:`Ethiopia`,FJ:`Fiji`,FI:`Finland`,FR:`France`,GA:`Gabon`,GM:`Gambia`,GE:`Georgia`,DE:`Germany`,GH:`Ghana`,GR:`Greece`,GD:`Grenada`,GT:`Guatemala`,GN:`Guinea`,GW:`Guinea-Bissau`,GY:`Guyana`,HT:`Haiti`,HN:`Honduras`,HU:`Hungary`,IS:`Iceland`,IN:`India`,ID:`Indonesia`,IR:`Iran`,IQ:`Iraq`,IE:`Ireland`,IL:`Israel`,IT:`Italy`,JM:`Jamaica`,JP:`Japan`,JO:`Jordan`,KZ:`Kazakhstan`,KE:`Kenya`,KI:`Kiribati`,KP:`North Korea`,KR:`South Korea`,KW:`Kuwait`,KG:`Kyrgyzstan`,LA:`Laos`,LV:`Latvia`,LB:`Lebanon`,LS:`Lesotho`,LR:`Liberia`,LY:`Libya`,LI:`Liechtenstein`,LT:`Lithuania`,LU:`Luxembourg`,MG:`Madagascar`,MW:`Malawi`,MY:`Malaysia`,MV:`Maldives`,ML:`Mali`,MT:`Malta`,MH:`Marshall Islands`,MR:`Mauritania`,MU:`Mauritius`,MX:`Mexico`,FM:`Micronesia`,MD:`Moldova`,MC:`Monaco`,MN:`Mongolia`,ME:`Montenegro`,MA:`Morocco`,MZ:`Mozambique`,MM:`Myanmar (Burma)`,NA:`Namibia`,NR:`Nauru`,NP:`Nepal`,NL:`Netherlands`,NZ:`New Zealand`,NI:`Nicaragua`,NE:`Niger`,NG:`Nigeria`,MK:`North Macedonia`,NO:`Norway`,OM:`Oman`,PK:`Pakistan`,PW:`Palau`,PA:`Panama`,PG:`Papua New Guinea`,PY:`Paraguay`,PE:`Peru`,PH:`Philippines`,PL:`Poland`,PT:`Portugal`,QA:`Qatar`,RO:`Romania`,RU:`Russia`,RW:`Rwanda`,KN:`St. Kitts & Nevis`,LC:`St. Lucia`,VC:`St. Vincent & Grenadines`,WS:`Samoa`,SM:`San Marino`,ST:`São Tomé & Príncipe`,SA:`Saudi Arabia`,SN:`Senegal`,RS:`Serbia`,SC:`Seychelles`,SL:`Sierra Leone`,SG:`Singapore`,SK:`Slovakia`,SI:`Slovenia`,SB:`Solomon Islands`,SO:`Somalia`,ZA:`South Africa`,SS:`South Sudan`,ES:`Spain`,LK:`Sri Lanka`,SD:`Sudan`,SR:`Suriname`,SE:`Sweden`,CH:`Switzerland`,SY:`Syria`,TW:`Taiwan`,TJ:`Tajikistan`,TZ:`Tanzania`,TH:`Thailand`,TL:`Timor-Leste`,TG:`Togo`,TO:`Tonga`,TT:`Trinidad & Tobago`,TN:`Tunisia`,TR:`Türkiye`,TM:`Turkmenistan`,TV:`Tuvalu`,UG:`Uganda`,UA:`Ukraine`,AE:`United Arab Emirates`,GB:`United Kingdom`,US:`United States`,UY:`Uruguay`,UZ:`Uzbekistan`,VU:`Vanuatu`,VE:`Venezuela`,VN:`Vietnam`,YE:`Yemen`,ZM:`Zambia`,ZW:`Zimbabwe`},units:{UAH:`₴ UAH`,USD:`$ USD`,EUR:`€ EUR`,GBP:`£ GBP`,CZK:`Kč CZK`,PLN:`zł PLN`,mg:`mg`,g:`g`,kg:`kg`,t:`t`,oz:`oz`,lb:`lb`,ml:`ml`,cl:`cl`,dl:`dl`,l:`l`,tsp:`tsp`,tbsp:`tbsp`,cup:`cup`,fl_oz:`fl oz`,pcs:`pcs`,pair:`pair`,set:`set`,pack:`pack`,s:`s`,min:`min`,h:`h`,d:`day`,w:`week`,C:`°C`,F:`°F`,K:`K`,mm:`mm`,cm:`cm`,m:`m`,km:`km`,in:`in`,ft:`ft`,mi:`mi`,nm:`nmi`,cm2:`cm²`,m2:`m²`,ha:`ha`,km2:`km²`,ft2:`ft²`,ac:`ac`,B:`B`,KB:`KB`,MB:`MB`,GB:`GB`,TB:`TB`,mAh:`mAh`,Ah:`Ah`,Wh:`Wh`,kWh:`kWh`,mW:`mW`,W:`W`,kW:`kW`,mV:`mV`,V:`V`,ms:`m/s`,kmh:`km/h`,mph:`mph`,kn:`kn`,"%":`%`,ppm:`ppm`}}},Ir=typeof localStorage<`u`?localStorage.getItem(`lang`)??`uk`:`uk`;r.use(i).init({resources:{uk:{translation:Nr},ru:{translation:Pr},en:{translation:Fr}},lng:Ir,fallbackLng:`uk`,interpolation:{escapeValue:!1},parseMissingKeyHandler:e=>(console.warn(`[i18n] missing key:`,e),e)}),fetch(`/api/plugins/core/settings`).then(e=>e.ok?e.json():null).then(e=>{let t=e?.language;if(t&&t!==r.language){r.changeLanguage(t);try{localStorage.setItem(`lang`,t)}catch{}}}).catch(e=>console.warn(`[i18n] language reconcile failed:`,e));var Lr=r,Rr=e({default:()=>zr}),zr={"claude-agent":{plugin:{label:`Claude AI agent`,description:`In-process Claude Agent SDK runtime with optional RAG.`},settings:{label:`Agent settings`,groups:{runtime:`Model & runtime`,rag:`RAG search`,langfuse:`Langfuse tracing`},auth_mode:`Billing mode`,auth_mode_subscription:`Subscription (session from system)`,auth_mode_api_key:`API key (pay per token)`,anthropic_api_key:`Anthropic API key`,claude_model:`Claude model`,skip_permissions:`Skip permissions check`,response_timeout:`Response timeout (s)`,rag_enabled:`Enable RAG`,openai_api_key:`OpenAI API key (embeddings, optional — default from OPENAI_API_KEY)`,langfuse_public_key:`Langfuse public key`,langfuse_secret_key:`Langfuse secret key`,langfuse_base_url:`Langfuse base URL`,tracing_enabled:`Enable Langfuse tracing`,thinking_enabled:`Extended thinking (opus/sonnet/fable only)`}}},Br=e({default:()=>Vr}),Vr={"claude-agent":{plugin:{label:`Claude AI-агент`,description:`Рантайм Claude Agent SDK в процессе с опциональным RAG.`},settings:{label:`Настройки агента`,groups:{runtime:`Модель и выполнение`,rag:`Поиск RAG`,langfuse:`Трейсинг Langfuse`},auth_mode:`Способ оплаты`,auth_mode_subscription:`Подписка (сессия из системы)`,auth_mode_api_key:`API-ключ (оплата за токены)`,anthropic_api_key:`Ключ Anthropic API`,claude_model:`Модель Claude`,skip_permissions:`Пропустить проверку прав`,response_timeout:`Тайм-аут ответа (с)`,rag_enabled:`Включить RAG`,openai_api_key:`Ключ OpenAI (эмбеддинги, опц. — по умолчанию из OPENAI_API_KEY)`,langfuse_public_key:`Langfuse public key`,langfuse_secret_key:`Langfuse secret key`,langfuse_base_url:`Langfuse base URL`,tracing_enabled:`Включить трейсинг Langfuse`,thinking_enabled:`Extended thinking (только opus/sonnet/fable)`}}},Hr=e({default:()=>Ur}),Ur={"claude-agent":{plugin:{label:`Claude AI-агент`,description:`Рантайм Claude Agent SDK у процесі з опційним RAG.`},settings:{label:`Налаштування агента`,groups:{runtime:`Модель і виконання`,rag:`Пошук RAG`,langfuse:`Трейсинг Langfuse`},auth_mode:`Спосіб оплати`,auth_mode_subscription:`Підписка (сесія з системи)`,auth_mode_api_key:`API-ключ (оплата за токени)`,anthropic_api_key:`Ключ Anthropic API`,claude_model:`Модель Claude`,skip_permissions:`Пропустити перевірку прав`,response_timeout:`Тайм-аут відповіді (с)`,rag_enabled:`Увімкнути RAG`,openai_api_key:`Ключ OpenAI (ембединги, опц. — типово з OPENAI_API_KEY)`,langfuse_public_key:`Langfuse public key`,langfuse_secret_key:`Langfuse secret key`,langfuse_base_url:`Langfuse base URL`,tracing_enabled:`Увімкнути трейсинг Langfuse`,thinking_enabled:`Extended thinking (лише opus/sonnet/fable)`}}},Wr=e({console:()=>Gr,default:()=>Kr}),Gr={plugin:{label:`Console access`,description:`Drive Coffer from a terminal AI (Claude Code / Codex) via the coffer MCP.`},settings:{label:`Console access`,intro:"## Use Coffer from the console\n\nThe Coffer server itself exposes your libraries to a terminal AI as MCP tools (`list_libraries`, `describe_type`, `list_records`, `get_record`, `create_record`, `update_record`, `delete_record`, `refresh_schema`, `search_records`, plus the tools of any installed plugin). It is schema-driven: any plugin or library you enable shows up after a server restart — no client changes.\n\nThe transport is **Streamable HTTP** on `POST /mcp` of that same server (default `http://localhost:7023/mcp`); there is no separate process — `npx @coffer-org/mcp` starts nothing. You need an API token: **Settings → API tokens**. The token's role decides the tool set (`member` — data, `admin` — plus plugin admin tools).",claude:'### Claude Code / Claude CLI\n\n```sh\nclaude mcp add coffer -s user --transport http http://localhost:7023/mcp \\\n --header "Authorization: Bearer <API_TOKEN>"\n```\n\nThen in any session the tools appear as `mcp__coffer__*`. Ask e.g. _"list my libraries"_ or _"add a record to …"_ and the agent calls them directly.',codex:'### Codex CLI\n\nAdd to `~/.codex/config.toml` (keep the token in the `COFFER_TOKEN` environment variable):\n\n```toml\n[mcp_servers.coffer]\nurl = "http://localhost:7023/mcp"\nbearer_token_env_var = "COFFER_TOKEN"\n```',skills:"### Skills\n\nFor repeatable flows, drop a `SKILL.md` (Claude Code) or a prompt file that chains the `coffer` tools — e.g. a weekly review that reads a library and writes a summary record. The MCP tools are the only building blocks you need; no Coffer-specific SDK is required on the client side."}},Kr={console:Gr},qr=e({console:()=>Jr,default:()=>Yr}),Jr={plugin:{label:`Консольный доступ`,description:`Управляй Coffer из терминального AI (Claude Code / Codex) через MCP-сервер coffer.`},settings:{label:`Консольный доступ`,intro:"## Coffer из консоли\n\nСам сервер Coffer отдаёт твои библиотеки терминальному AI как MCP-инструменты (`list_libraries`, `describe_type`, `list_records`, `get_record`, `create_record`, `update_record`, `delete_record`, `refresh_schema`, `search_records`, плюс инструменты установленных плагинов). Управляется схемой: любой включённый плагин или библиотека появляется после перезапуска сервера — без изменений на клиенте.\n\nТранспорт — **Streamable HTTP** на `POST /mcp` того же сервера (по умолчанию `http://localhost:7023/mcp`); отдельного процесса нет, `npx @coffer-org/mcp` ничего не запускает. Нужен API-токен: **Настройки → API-токены**. Роль токена определяет набор инструментов (`member` — данные, `admin` — плюс админские инструменты плагинов).",claude:'### Claude Code / Claude CLI\n\n```sh\nclaude mcp add coffer -s user --transport http http://localhost:7023/mcp \\\n --header "Authorization: Bearer <API_TOKEN>"\n```\n\nЗатем в любой сессии инструменты появляются как `mcp__coffer__*`. Спроси напр. _«покажи мои библиотеки»_ или _«добавь запись в …»_ — агент вызовет их напрямую.',codex:'### Codex CLI\n\nДобавь в `~/.codex/config.toml` (токен — в переменной окружения `COFFER_TOKEN`):\n\n```toml\n[mcp_servers.coffer]\nurl = "http://localhost:7023/mcp"\nbearer_token_env_var = "COFFER_TOKEN"\n```',skills:"### Навыки (skills)\n\nДля повторяющихся сценариев положи `SKILL.md` (Claude Code) или промпт-файл, который цепочкой вызывает инструменты `coffer` — напр. еженедельный обзор, читающий библиотеку и пишущий запись-итог. MCP-инструментов достаточно; отдельный Coffer SDK на клиенте не нужен."}},Yr={console:Jr},Xr=e({console:()=>Zr,default:()=>Qr}),Zr={plugin:{label:`Консольний доступ`,description:`Керуй Coffer з термінального AI (Claude Code / Codex) через MCP-сервер coffer.`},settings:{label:`Консольний доступ`,intro:"## Coffer з консолі\n\nСам сервер Coffer віддає твої бібліотеки термінальному AI як MCP-інструменти (`list_libraries`, `describe_type`, `list_records`, `get_record`, `create_record`, `update_record`, `delete_record`, `refresh_schema`, `search_records`, плюс інструменти встановлених плагінів). Керується схемою: будь-який увімкнений плагін чи бібліотека зʼявляється після перезапуску сервера — без змін на клієнті.\n\nТранспорт — **Streamable HTTP** на `POST /mcp` того самого сервера (типово `http://localhost:7023/mcp`); окремого процесу немає, `npx @coffer-org/mcp` нічого не запускає. Потрібен API-токен: **Налаштування → API-токени**. Роль токена вирішує набір інструментів (`member` — дані, `admin` — ще й адмінські інструменти плагінів).",claude:'### Claude Code / Claude CLI\n\n```sh\nclaude mcp add coffer -s user --transport http http://localhost:7023/mcp \\\n --header "Authorization: Bearer <API_TOKEN>"\n```\n\nПотім у будь-якій сесії інструменти зʼявляються як `mcp__coffer__*`. Спитай напр. _«покажи мої бібліотеки»_ або _«додай запис до …»_ — агент викличе їх напряму.',codex:'### Codex CLI\n\nДодай у `~/.codex/config.toml` (токен — у змінній оточення `COFFER_TOKEN`):\n\n```toml\n[mcp_servers.coffer]\nurl = "http://localhost:7023/mcp"\nbearer_token_env_var = "COFFER_TOKEN"\n```',skills:"### Навички (skills)\n\nДля повторюваних сценаріїв поклади `SKILL.md` (Claude Code) або промпт-файл, що ланцюжком викликає інструменти `coffer` — напр. щотижневий огляд, який читає бібліотеку й пише запис-підсумок. MCP-інструментів достатньо; окремий Coffer SDK на клієнті не потрібен."}},Qr={console:Zr},$r=e({default:()=>ti,devices:()=>ei}),ei={plugin:{label:`Devices & network`,description:`Networks, devices and their settings.`},settings:{label:`Network scan`,scan_info:`LAN scan runs automatically twice a day. Press the button to run a scan now.`,scan_button:`Scan now`,secrets_help:"<details>\n<summary>How to fill service secrets</summary>\n\nAdd plaintext secrets to `~/.profile` as `export PREFIX_FIELD=value`. The LAN scan reads them and fills the matching secret slots on each service card. Hashed values (bcrypt/argon2/…) are skipped. Empty slots are always created so you can fill them manually.\n\n| Service | Variables |\n| --- | --- |\n| Home Assistant | `HOME_ASSISTANT_LOGIN`, `HOME_ASSISTANT_PASSWORD`, `HOME_ASSISTANT_TOKEN` |\n| Nextcloud | `NEXTCLOUD_LOGIN`, `NEXTCLOUD_PASSWORD`, `NEXTCLOUD_TOKEN` |\n| Syncthing | `SYNCTHING_TOKEN`, `SYNCTHING_LOGIN`, `SYNCTHING_PASSWORD` |\n| Transmission | `TRANSMISSION_LOGIN`, `TRANSMISSION_PASSWORD` |\n| Firefly III | `FIREFLY_TOKEN`, `FIREFLY_PASSWORD`, `FIREFLY_CRON_TOKEN` |\n| MariaDB | `MARIADB_ROOT_PASSWORD`, `MARIADB_USER`, `MARIADB_PASSWORD` |\n| Pi-hole | `PIHOLE_PASSWORD`, `PIHOLE_TOKEN` |\n| Kodi | `KODI_LOGIN`, `KODI_PASSWORD` |\n| Gitea | `GITEA_API_KEY`, `GITEA_PASSWORD` |\n| Grafana | `GRAFANA_LOGIN`, `GRAFANA_PASSWORD`, `GRAFANA_TOKEN` |\n| Vaultwarden | `VAULTWARDEN_ADMIN_TOKEN` |\n| Portainer | `PORTAINER_LOGIN`, `PORTAINER_PASSWORD` |\n| Proxmox | `PROXMOX_ROOT_PASSWORD`, `PROXMOX_TOKEN` |\n| AdGuard Home | `ADGUARD_LOGIN`, `ADGUARD_PASSWORD` |\n| Uptime Kuma | `UPTIME_KUMA_LOGIN`, `UPTIME_KUMA_PASSWORD` |\n| Node-RED | `NODE_RED_PASSWORD`, `NODE_RED_TOKEN` |\n| qBittorrent | `QBITTORRENT_LOGIN`, `QBITTORRENT_PASSWORD` |\n| Radarr | `RADARR_API_KEY` |\n| Sonarr | `SONARR_API_KEY` |\n| Prowlarr | `PROWLARR_API_KEY` |\n| Jellyfin | `JELLYFIN_TOKEN` |\n| Plex | `PLEX_TOKEN` |\n| Redis | `REDIS_PASSWORD` |\n| PostgreSQL | `POSTGRES_USER`, `POSTGRES_PASSWORD` |\n| Mosquitto | `MOSQUITTO_USER`, `MOSQUITTO_PASSWORD` |\n\n</details>",sync_targets_info:`### Where device data is written
|
|
14
|
+
The server will restart immediately after install — make sure it runs under a process manager (systemd/pm2/docker) that will bring it back up automatically. A database backup beforehand is recommended.`,errors:{core_required:`The core plugin cannot be disabled.`,has_dependents:`Enabled plugins depend on it: {{list}}.`,missing_deps:`Enable dependencies first: {{list}}.`,unknown_plugin:`Unknown plugin.`}},auth:{loginTitle:`Sign in`,welcomeEyebrow:`Personal workspace`,welcomeTitle:`Your data. In your hands.`,welcomeText:`Sign in to continue working with Coffer.`,secureConnection:`Secure connection`,setupTitle:`Create the first admin account`,login:`Login`,password:`Password`,displayName:`Display name`,signIn:`Sign in`,createAccount:`Create account`,invalidCredentials:`Wrong login or password.`,genericError:`Something went wrong.`,accountTitle:`My account`,sessionTitle:`Session`,logoutDescription:`End the current session on this device.`,logout:`Sign out`,fieldDisplayName:`Display name`,fieldLogin:`Login`,fieldPasswordOptional:`New password (leave blank to keep unchanged)`,tokensTitle:`API tokens`,tokenNamePlaceholder:`Token name (e.g. "agent")`,tokenCreate:`Create token`,tokenCreatedOnce:`Copy this token now — it will not be shown again:`,tokenRevoke:`Revoke`,tokenConfirmRevoke:`Revoke this token? Anything using it will stop working.`,grantsTitle:`Connected apps`,grantsEmpty:`No app has been authorized yet. Apps appear here after you approve them on the Coffer consent screen.`,grantConfirmRevoke:`Disconnect this app? Its access tokens stop working immediately.`,usersTitle:`Users`,addUser:`Add user`,roleAdmin:`Admin`,roleMember:`Member`,fieldRole:`Role`,fieldDisabled:`Disabled`,userCreateTitle:`New user`,lastAdminError:`Cannot remove the last admin.`},form:{serverRejected:`Server rejected:`,createTitle:`New — {{label}}`,editTitle:`Edit — {{label}}`,mdPlaceholder:`Markdown text…`,photo:`+ Photo`,properties:`Properties`,keyPlaceholder:`key`,valuePlaceholderShort:`value`,addProperty:`Property`,days:`d`,hours:`h`,minutes:`min`,seconds:`s`,addTag:`Add tag…`,addRow:`+ Add row`,search:`Search…`,loading:`Loading…`,loadError:`Load error`,noRecords:`No records`,addRecord:`+ Add…`,addItem:`+ Add item`},list:{empty:`Nothing here yet`,searchPlaceholder:`Search…`,sortBy:`Sort by`,sortNone:`No sorting`,asc:`Ascending`,desc:`Descending`,peopleCount_one:`{{count}} person`,peopleCount_other:`{{count}} ppl`,pairsCount_one:`{{count}} pair`,pairsCount_other:`{{count}} pairs`},search:{title:`Global Search`,placeholder:`Search shelves and records…`,allShelves:`All shelves`,results:`Results`,noResults:`Nothing found`},record:{count_one:`{{count}} record`,count_other:`{{count}} records`,hide:`Hide`,show:`Show`},extend:{shownWhen:`Shown when:`},weekdaysShort:[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],lang:{uk:`Українська`,ru:`Русский`,en:`English`},validation:{required:`required field`,invalid_type:`invalid value type`,min_length:`minimum {{min}} chars`,max_length:`maximum {{max}} chars`,pattern:`invalid format`,email:`invalid email address`,min:`at least {{min}}`,max:`at most {{max}}`,int:`must be an integer`,date_format:`format YYYY-MM-DD`,date_min:`not earlier than {{min}}`,date_max:`not later than {{max}}`,enum:`choose from the list`,json:`invalid JSON`,structure:`invalid structure`,int_list:`invalid record references`,kv_single:`only one pair allowed`,links_structure:`invalid connections structure`,time_format:`format HH:MM:SS`,datetime_format:`format YYYY-MM-DDTHH:MM`,tags_list:`expected array of tags`,slotted_length:`wrong number of items`,check_structure:`invalid check structure`,measured_structure:`expected {value, unit}`,measured_unit:`unknown unit`,money_structure:`invalid amount`,geo_structure:`expected {lat, lng}`,money_currency:`unknown currency`,color_format:`format #RRGGBB`,row_structure:`invalid row structure`,row_duplicate:`value "{{key}}" is duplicated across rows`,array:`expected an array`,array_item:`invalid value in array`,ip_structure:`invalid IP address`,cidr_structure:`invalid CIDR`,per_weekday:`array of 7 numbers`,period_order:`start must not be after end`,range_structure:`expected {from, to}`,last_admin:`Cannot remove the last admin.`,range_order:`from must be ≤ to`,file_structure:`invalid file`,file_remote_url:`file fields hold an uploaded file, not a remote URL`,file_unknown_key:`a file may only carry name, mime and size`,file_name:`expected a bare filename, without a path`,file_not_uploaded:`no such uploaded file — upload it first`,code_structure:`expected {code, lang}`,url:`invalid URL`,embed_structure:`invalid embed`,colorname:`unknown color name`},core:{plugin:{label:`System`},settings:{label:`System`,publicUrl:`Public URL`,publicUrlHint:`Origin only, no trailing slash — e.g. https://coffer.example`,language:`Language`},fields:{type:`Type`,name:`Name`,weekday:`Weekday`,value:`Value`,text:`Text`,check:`Check`},presets:{slug:`lowercase latin letters, digits and hyphen only`,imei:`IMEI — exactly 15 digits`,mac:`MAC — format XX:XX:XX:XX:XX:XX`,iban:`IBAN — 2 letters, 2 digits, then letters and digits (no spaces)`,hostname:`hostname / FQDN (dot-separated labels: letters, digits, hyphen)`,tel:`phone number`,link:`URL (scheme:// or a domain with a dot)`},lookup:{enough:`Enough`,partial:`Partial`,missing:`Missing`,noData:`no data`},period:{from:`From`,until:`Until`},sex:{M:`Male`,F:`Female`,other:`Other`},weekdays:{mon:`Monday`,tue:`Tuesday`,wed:`Wednesday`,thu:`Thursday`,fri:`Friday`,sat:`Saturday`,sun:`Sunday`},colors:x.en,countries:{AF:`Afghanistan`,AL:`Albania`,DZ:`Algeria`,AD:`Andorra`,AO:`Angola`,AG:`Antigua & Barbuda`,AR:`Argentina`,AM:`Armenia`,AU:`Australia`,AT:`Austria`,AZ:`Azerbaijan`,BS:`Bahamas`,BH:`Bahrain`,BD:`Bangladesh`,BY:`Belarus`,BE:`Belgium`,BZ:`Belize`,BJ:`Benin`,BT:`Bhutan`,BO:`Bolivia`,BA:`Bosnia & Herzegovina`,BW:`Botswana`,BR:`Brazil`,BN:`Brunei`,BG:`Bulgaria`,BF:`Burkina Faso`,BI:`Burundi`,CV:`Cape Verde`,KH:`Cambodia`,CM:`Cameroon`,CA:`Canada`,CF:`Central African Republic`,TD:`Chad`,CL:`Chile`,CN:`China`,CO:`Colombia`,KM:`Comoros`,CG:`Congo - Brazzaville`,CD:`Congo - Kinshasa`,CR:`Costa Rica`,CI:`Côte d’Ivoire`,HR:`Croatia`,CU:`Cuba`,CY:`Cyprus`,CZ:`Czechia`,DK:`Denmark`,DJ:`Djibouti`,DM:`Dominica`,DO:`Dominican Republic`,EC:`Ecuador`,EG:`Egypt`,SV:`El Salvador`,GQ:`Equatorial Guinea`,ER:`Eritrea`,EE:`Estonia`,SZ:`Eswatini`,ET:`Ethiopia`,FJ:`Fiji`,FI:`Finland`,FR:`France`,GA:`Gabon`,GM:`Gambia`,GE:`Georgia`,DE:`Germany`,GH:`Ghana`,GR:`Greece`,GD:`Grenada`,GT:`Guatemala`,GN:`Guinea`,GW:`Guinea-Bissau`,GY:`Guyana`,HT:`Haiti`,HN:`Honduras`,HU:`Hungary`,IS:`Iceland`,IN:`India`,ID:`Indonesia`,IR:`Iran`,IQ:`Iraq`,IE:`Ireland`,IL:`Israel`,IT:`Italy`,JM:`Jamaica`,JP:`Japan`,JO:`Jordan`,KZ:`Kazakhstan`,KE:`Kenya`,KI:`Kiribati`,KP:`North Korea`,KR:`South Korea`,KW:`Kuwait`,KG:`Kyrgyzstan`,LA:`Laos`,LV:`Latvia`,LB:`Lebanon`,LS:`Lesotho`,LR:`Liberia`,LY:`Libya`,LI:`Liechtenstein`,LT:`Lithuania`,LU:`Luxembourg`,MG:`Madagascar`,MW:`Malawi`,MY:`Malaysia`,MV:`Maldives`,ML:`Mali`,MT:`Malta`,MH:`Marshall Islands`,MR:`Mauritania`,MU:`Mauritius`,MX:`Mexico`,FM:`Micronesia`,MD:`Moldova`,MC:`Monaco`,MN:`Mongolia`,ME:`Montenegro`,MA:`Morocco`,MZ:`Mozambique`,MM:`Myanmar (Burma)`,NA:`Namibia`,NR:`Nauru`,NP:`Nepal`,NL:`Netherlands`,NZ:`New Zealand`,NI:`Nicaragua`,NE:`Niger`,NG:`Nigeria`,MK:`North Macedonia`,NO:`Norway`,OM:`Oman`,PK:`Pakistan`,PW:`Palau`,PA:`Panama`,PG:`Papua New Guinea`,PY:`Paraguay`,PE:`Peru`,PH:`Philippines`,PL:`Poland`,PT:`Portugal`,QA:`Qatar`,RO:`Romania`,RU:`Russia`,RW:`Rwanda`,KN:`St. Kitts & Nevis`,LC:`St. Lucia`,VC:`St. Vincent & Grenadines`,WS:`Samoa`,SM:`San Marino`,ST:`São Tomé & Príncipe`,SA:`Saudi Arabia`,SN:`Senegal`,RS:`Serbia`,SC:`Seychelles`,SL:`Sierra Leone`,SG:`Singapore`,SK:`Slovakia`,SI:`Slovenia`,SB:`Solomon Islands`,SO:`Somalia`,ZA:`South Africa`,SS:`South Sudan`,ES:`Spain`,LK:`Sri Lanka`,SD:`Sudan`,SR:`Suriname`,SE:`Sweden`,CH:`Switzerland`,SY:`Syria`,TW:`Taiwan`,TJ:`Tajikistan`,TZ:`Tanzania`,TH:`Thailand`,TL:`Timor-Leste`,TG:`Togo`,TO:`Tonga`,TT:`Trinidad & Tobago`,TN:`Tunisia`,TR:`Türkiye`,TM:`Turkmenistan`,TV:`Tuvalu`,UG:`Uganda`,UA:`Ukraine`,AE:`United Arab Emirates`,GB:`United Kingdom`,US:`United States`,UY:`Uruguay`,UZ:`Uzbekistan`,VU:`Vanuatu`,VE:`Venezuela`,VN:`Vietnam`,YE:`Yemen`,ZM:`Zambia`,ZW:`Zimbabwe`},units:{UAH:`₴ UAH`,USD:`$ USD`,EUR:`€ EUR`,GBP:`£ GBP`,CZK:`Kč CZK`,PLN:`zł PLN`,mg:`mg`,g:`g`,kg:`kg`,t:`t`,oz:`oz`,lb:`lb`,ml:`ml`,cl:`cl`,dl:`dl`,l:`l`,tsp:`tsp`,tbsp:`tbsp`,cup:`cup`,fl_oz:`fl oz`,pcs:`pcs`,pair:`pair`,set:`set`,pack:`pack`,s:`s`,min:`min`,h:`h`,d:`day`,w:`week`,C:`°C`,F:`°F`,K:`K`,mm:`mm`,cm:`cm`,m:`m`,km:`km`,in:`in`,ft:`ft`,mi:`mi`,nm:`nmi`,cm2:`cm²`,m2:`m²`,ha:`ha`,km2:`km²`,ft2:`ft²`,ac:`ac`,B:`B`,KB:`KB`,MB:`MB`,GB:`GB`,TB:`TB`,mAh:`mAh`,Ah:`Ah`,Wh:`Wh`,kWh:`kWh`,mW:`mW`,W:`W`,kW:`kW`,mV:`mV`,V:`V`,ms:`m/s`,kmh:`km/h`,mph:`mph`,kn:`kn`,"%":`%`,ppm:`ppm`}}},Ar=typeof localStorage<`u`?localStorage.getItem(`lang`)??`uk`:`uk`;r.use(i).init({resources:{uk:{translation:Dr},ru:{translation:Or},en:{translation:kr}},lng:Ar,fallbackLng:`uk`,interpolation:{escapeValue:!1},parseMissingKeyHandler:e=>(console.warn(`[i18n] missing key:`,e),e)}),fetch(`/api/plugins/core/settings`).then(e=>e.ok?e.json():null).then(e=>{let t=e?.language;if(t&&t!==r.language){r.changeLanguage(t);try{localStorage.setItem(`lang`,t)}catch{}}}).catch(e=>console.warn(`[i18n] language reconcile failed:`,e));var jr=r,Mr=e({default:()=>Nr}),Nr={"claude-agent":{plugin:{label:`Claude AI agent`,description:`In-process Claude Agent SDK runtime with optional RAG.`},settings:{label:`Agent settings`,groups:{runtime:`Model & runtime`,rag:`RAG search`,langfuse:`Langfuse tracing`},auth_mode:`Billing mode`,auth_mode_subscription:`Subscription (session from system)`,auth_mode_api_key:`API key (pay per token)`,anthropic_api_key:`Anthropic API key`,claude_model:`Claude model`,skip_permissions:`Skip permissions check`,response_timeout:`Response timeout (s)`,rag_enabled:`Enable RAG`,openai_api_key:`OpenAI API key (embeddings, optional — default from OPENAI_API_KEY)`,langfuse_public_key:`Langfuse public key`,langfuse_secret_key:`Langfuse secret key`,langfuse_base_url:`Langfuse base URL`,tracing_enabled:`Enable Langfuse tracing`,thinking_enabled:`Extended thinking (opus/sonnet/fable only)`}}},Pr=e({default:()=>Fr}),Fr={"claude-agent":{plugin:{label:`Claude AI-агент`,description:`Рантайм Claude Agent SDK в процессе с опциональным RAG.`},settings:{label:`Настройки агента`,groups:{runtime:`Модель и выполнение`,rag:`Поиск RAG`,langfuse:`Трейсинг Langfuse`},auth_mode:`Способ оплаты`,auth_mode_subscription:`Подписка (сессия из системы)`,auth_mode_api_key:`API-ключ (оплата за токены)`,anthropic_api_key:`Ключ Anthropic API`,claude_model:`Модель Claude`,skip_permissions:`Пропустить проверку прав`,response_timeout:`Тайм-аут ответа (с)`,rag_enabled:`Включить RAG`,openai_api_key:`Ключ OpenAI (эмбеддинги, опц. — по умолчанию из OPENAI_API_KEY)`,langfuse_public_key:`Langfuse public key`,langfuse_secret_key:`Langfuse secret key`,langfuse_base_url:`Langfuse base URL`,tracing_enabled:`Включить трейсинг Langfuse`,thinking_enabled:`Extended thinking (только opus/sonnet/fable)`}}},Ir=e({default:()=>Lr}),Lr={"claude-agent":{plugin:{label:`Claude AI-агент`,description:`Рантайм Claude Agent SDK у процесі з опційним RAG.`},settings:{label:`Налаштування агента`,groups:{runtime:`Модель і виконання`,rag:`Пошук RAG`,langfuse:`Трейсинг Langfuse`},auth_mode:`Спосіб оплати`,auth_mode_subscription:`Підписка (сесія з системи)`,auth_mode_api_key:`API-ключ (оплата за токени)`,anthropic_api_key:`Ключ Anthropic API`,claude_model:`Модель Claude`,skip_permissions:`Пропустити перевірку прав`,response_timeout:`Тайм-аут відповіді (с)`,rag_enabled:`Увімкнути RAG`,openai_api_key:`Ключ OpenAI (ембединги, опц. — типово з OPENAI_API_KEY)`,langfuse_public_key:`Langfuse public key`,langfuse_secret_key:`Langfuse secret key`,langfuse_base_url:`Langfuse base URL`,tracing_enabled:`Увімкнути трейсинг Langfuse`,thinking_enabled:`Extended thinking (лише opus/sonnet/fable)`}}},Rr=e({console:()=>zr,default:()=>Br}),zr={plugin:{label:`Console access`,description:`Drive Coffer from a terminal AI (Claude Code / Codex) via the coffer MCP.`},settings:{label:`Console access`,intro:"## Use Coffer from the console\n\nThe Coffer server itself exposes your libraries to a terminal AI as MCP tools (`list_libraries`, `describe_type`, `list_records`, `get_record`, `create_record`, `update_record`, `delete_record`, `refresh_schema`, `search_records`, plus the tools of any installed plugin). It is schema-driven: any plugin or library you enable shows up after a server restart — no client changes.\n\nThe transport is **Streamable HTTP** on `POST /mcp` of that same server (default `http://localhost:7023/mcp`); there is no separate process — `npx @coffer-org/mcp` starts nothing. You need an API token: **Settings → API tokens**. The token's role decides the tool set (`member` — data, `admin` — plus plugin admin tools).",claude:'### Claude Code / Claude CLI\n\n```sh\nclaude mcp add coffer -s user --transport http http://localhost:7023/mcp \\\n --header "Authorization: Bearer <API_TOKEN>"\n```\n\nThen in any session the tools appear as `mcp__coffer__*`. Ask e.g. _"list my libraries"_ or _"add a record to …"_ and the agent calls them directly.',codex:'### Codex CLI\n\nAdd to `~/.codex/config.toml` (keep the token in the `COFFER_TOKEN` environment variable):\n\n```toml\n[mcp_servers.coffer]\nurl = "http://localhost:7023/mcp"\nbearer_token_env_var = "COFFER_TOKEN"\n```',skills:"### Skills\n\nFor repeatable flows, drop a `SKILL.md` (Claude Code) or a prompt file that chains the `coffer` tools — e.g. a weekly review that reads a library and writes a summary record. The MCP tools are the only building blocks you need; no Coffer-specific SDK is required on the client side."}},Br={console:zr},Vr=e({console:()=>Hr,default:()=>Ur}),Hr={plugin:{label:`Консольный доступ`,description:`Управляй Coffer из терминального AI (Claude Code / Codex) через MCP-сервер coffer.`},settings:{label:`Консольный доступ`,intro:"## Coffer из консоли\n\nСам сервер Coffer отдаёт твои библиотеки терминальному AI как MCP-инструменты (`list_libraries`, `describe_type`, `list_records`, `get_record`, `create_record`, `update_record`, `delete_record`, `refresh_schema`, `search_records`, плюс инструменты установленных плагинов). Управляется схемой: любой включённый плагин или библиотека появляется после перезапуска сервера — без изменений на клиенте.\n\nТранспорт — **Streamable HTTP** на `POST /mcp` того же сервера (по умолчанию `http://localhost:7023/mcp`); отдельного процесса нет, `npx @coffer-org/mcp` ничего не запускает. Нужен API-токен: **Настройки → API-токены**. Роль токена определяет набор инструментов (`member` — данные, `admin` — плюс админские инструменты плагинов).",claude:'### Claude Code / Claude CLI\n\n```sh\nclaude mcp add coffer -s user --transport http http://localhost:7023/mcp \\\n --header "Authorization: Bearer <API_TOKEN>"\n```\n\nЗатем в любой сессии инструменты появляются как `mcp__coffer__*`. Спроси напр. _«покажи мои библиотеки»_ или _«добавь запись в …»_ — агент вызовет их напрямую.',codex:'### Codex CLI\n\nДобавь в `~/.codex/config.toml` (токен — в переменной окружения `COFFER_TOKEN`):\n\n```toml\n[mcp_servers.coffer]\nurl = "http://localhost:7023/mcp"\nbearer_token_env_var = "COFFER_TOKEN"\n```',skills:"### Навыки (skills)\n\nДля повторяющихся сценариев положи `SKILL.md` (Claude Code) или промпт-файл, который цепочкой вызывает инструменты `coffer` — напр. еженедельный обзор, читающий библиотеку и пишущий запись-итог. MCP-инструментов достаточно; отдельный Coffer SDK на клиенте не нужен."}},Ur={console:Hr},Wr=e({console:()=>Gr,default:()=>Kr}),Gr={plugin:{label:`Консольний доступ`,description:`Керуй Coffer з термінального AI (Claude Code / Codex) через MCP-сервер coffer.`},settings:{label:`Консольний доступ`,intro:"## Coffer з консолі\n\nСам сервер Coffer віддає твої бібліотеки термінальному AI як MCP-інструменти (`list_libraries`, `describe_type`, `list_records`, `get_record`, `create_record`, `update_record`, `delete_record`, `refresh_schema`, `search_records`, плюс інструменти встановлених плагінів). Керується схемою: будь-який увімкнений плагін чи бібліотека зʼявляється після перезапуску сервера — без змін на клієнті.\n\nТранспорт — **Streamable HTTP** на `POST /mcp` того самого сервера (типово `http://localhost:7023/mcp`); окремого процесу немає, `npx @coffer-org/mcp` нічого не запускає. Потрібен API-токен: **Налаштування → API-токени**. Роль токена вирішує набір інструментів (`member` — дані, `admin` — ще й адмінські інструменти плагінів).",claude:'### Claude Code / Claude CLI\n\n```sh\nclaude mcp add coffer -s user --transport http http://localhost:7023/mcp \\\n --header "Authorization: Bearer <API_TOKEN>"\n```\n\nПотім у будь-якій сесії інструменти зʼявляються як `mcp__coffer__*`. Спитай напр. _«покажи мої бібліотеки»_ або _«додай запис до …»_ — агент викличе їх напряму.',codex:'### Codex CLI\n\nДодай у `~/.codex/config.toml` (токен — у змінній оточення `COFFER_TOKEN`):\n\n```toml\n[mcp_servers.coffer]\nurl = "http://localhost:7023/mcp"\nbearer_token_env_var = "COFFER_TOKEN"\n```',skills:"### Навички (skills)\n\nДля повторюваних сценаріїв поклади `SKILL.md` (Claude Code) або промпт-файл, що ланцюжком викликає інструменти `coffer` — напр. щотижневий огляд, який читає бібліотеку й пише запис-підсумок. MCP-інструментів достатньо; окремий Coffer SDK на клієнті не потрібен."}},Kr={console:Gr},qr=e({default:()=>Yr,devices:()=>Jr}),Jr={plugin:{label:`Devices & network`,description:`Networks, devices and their settings.`},settings:{label:`Network scan`,scan_info:`LAN scan runs automatically twice a day. Press the button to run a scan now.`,scan_button:`Scan now`,secrets_help:"<details>\n<summary>How to fill service secrets</summary>\n\nAdd plaintext secrets to `~/.profile` as `export PREFIX_FIELD=value`. The LAN scan reads them and fills the matching secret slots on each service card. Hashed values (bcrypt/argon2/…) are skipped. Empty slots are always created so you can fill them manually.\n\n| Service | Variables |\n| --- | --- |\n| Home Assistant | `HOME_ASSISTANT_LOGIN`, `HOME_ASSISTANT_PASSWORD`, `HOME_ASSISTANT_TOKEN` |\n| Nextcloud | `NEXTCLOUD_LOGIN`, `NEXTCLOUD_PASSWORD`, `NEXTCLOUD_TOKEN` |\n| Syncthing | `SYNCTHING_TOKEN`, `SYNCTHING_LOGIN`, `SYNCTHING_PASSWORD` |\n| Transmission | `TRANSMISSION_LOGIN`, `TRANSMISSION_PASSWORD` |\n| Firefly III | `FIREFLY_TOKEN`, `FIREFLY_PASSWORD`, `FIREFLY_CRON_TOKEN` |\n| MariaDB | `MARIADB_ROOT_PASSWORD`, `MARIADB_USER`, `MARIADB_PASSWORD` |\n| Pi-hole | `PIHOLE_PASSWORD`, `PIHOLE_TOKEN` |\n| Kodi | `KODI_LOGIN`, `KODI_PASSWORD` |\n| Gitea | `GITEA_API_KEY`, `GITEA_PASSWORD` |\n| Grafana | `GRAFANA_LOGIN`, `GRAFANA_PASSWORD`, `GRAFANA_TOKEN` |\n| Vaultwarden | `VAULTWARDEN_ADMIN_TOKEN` |\n| Portainer | `PORTAINER_LOGIN`, `PORTAINER_PASSWORD` |\n| Proxmox | `PROXMOX_ROOT_PASSWORD`, `PROXMOX_TOKEN` |\n| AdGuard Home | `ADGUARD_LOGIN`, `ADGUARD_PASSWORD` |\n| Uptime Kuma | `UPTIME_KUMA_LOGIN`, `UPTIME_KUMA_PASSWORD` |\n| Node-RED | `NODE_RED_PASSWORD`, `NODE_RED_TOKEN` |\n| qBittorrent | `QBITTORRENT_LOGIN`, `QBITTORRENT_PASSWORD` |\n| Radarr | `RADARR_API_KEY` |\n| Sonarr | `SONARR_API_KEY` |\n| Prowlarr | `PROWLARR_API_KEY` |\n| Jellyfin | `JELLYFIN_TOKEN` |\n| Plex | `PLEX_TOKEN` |\n| Redis | `REDIS_PASSWORD` |\n| PostgreSQL | `POSTGRES_USER`, `POSTGRES_PASSWORD` |\n| Mosquitto | `MOSQUITTO_USER`, `MOSQUITTO_PASSWORD` |\n\n</details>",sync_targets_info:`### Where device data is written
|
|
15
15
|
|
|
16
16
|
After a scan, cards sync into local app configs. Only empty/missing entries are written — manual edits are preserved.
|
|
17
17
|
|
|
@@ -34,19 +34,19 @@ After a scan, cards sync into local app configs. Only empty/missing entries are
|
|
|
34
34
|
- KRDC — \`~/.local/share/krdc/bookmarks.xml\` (rdp/vnc)
|
|
35
35
|
|
|
36
36
|
**Bookmarks**
|
|
37
|
-
- Firefox — webexport HTML`,ssh_config_path:`SSH config path`,pihole_conf_path:`Pi-hole dnsmasq conf path`,syncthing_ini_path:`Syncthing Tray INI path`,gtk_bookmarks_path:`GTK bookmarks path`,kodi_sources_path:`Kodi sources.xml path`,krdc_bookmarks_path:`KRDC bookmarks path`,rclone_config_path:`rclone config path`,remmina_dir:`Remmina directory`,remoteview_dir:`KDE Dolphin (remoteview) directory`,delfin_config_path:`Delfin config path`,pihole_reload_cmd:`Pi-hole reload command`},scan:{failTitle:`Scan failed`,noMacTitle:`Devices without MAC ({{count}})`,noMacBody:`Not created — MAC required for identification:`,copyIp:`Copy IP`,summaryTitle:`Scan complete`,activeLabel:`Active`,createdLabel:`Created`,macUpdatedLabel:`MAC updated`,skippedLabel:`Skipped`,hostnameChangedTitle:`Different hostname ({{count}})`,hostnameChangedBody:`Stored hostname kept (not overwritten) — reconcile manually:`},unknownDevice:`Unknown`,library:{label:`Network`},accessTypes:{http:`HTTP`,https:`HTTPS`,ssh:`SSH`,mysql:`MySQL`,mqtt:`MQTT`,ws:`WebSocket`,dns:`DNS`,other:`Other`},visibilityTypes:{lan:`LAN`,public:`Public`},connFields:{url:`URL`,login:`Login`,password:`Password`,token:`Token`},service:{type:`Type`,category:`Category`,url:`URL`,access:`Access`,description:`Description`,description_mode:`Description source`,description_mode_key:`Translation key`,description_mode_own:`Custom text`,visibility:`Visibility`,hide:`Hidden`,links:`Links`,secrets:`Secrets`,secretName:`Name`,secretValue:`Value`,login:`Login`,token:`Token`,password:`Password`,code:`Code`,cat:{access:`Access`,infra:`Infrastructure`,monitoring:`Monitoring`,database:`Database`,automation:`Automation`,network:`Network`,media:`Media`,lighting:`Lighting`,files:`Files`,downloads:`Downloads`,finance:`Finance`,calendars:`Calendars`,web:`Web`,devices:`Devices`,other:`Other`},desc:{ssh:`SSH access to the device terminal.`,pacoloco:`Pacoloco caching proxy for Arch Linux packages.`,portainer:`Portainer web UI for managing Docker containers.`,grafana:`Grafana dashboards for monitoring and visualizing metrics.`,mariadb:`MariaDB/MySQL database server.`,mysql:`MySQL database server.`,postgres:`PostgreSQL database server.`,redis:`Redis — in-memory key-value store.`,homeassistant:`Home Assistant web UI for home automation control.`,zigbee2mqtt:`Zigbee2MQTT web UI — bridge between Zigbee devices and MQTT.`,mosquitto:`Mosquitto MQTT broker for IoT messaging.`,mqtt:`MQTT broker for IoT messaging.`,"node-red":`Node-RED editor for visual automation programming.`,pihole:`Pi-hole admin UI — network-wide DNS ad filter.`,"pihole-dns":`Pi-hole DNS server — ad filtering at the DNS level.`,dns:`DNS server.`,kodi:`Kodi web UI for controlling the media player and library.`,jellyfin:`Jellyfin web UI — media server for streaming video and music.`,pinchflat:`Pinchflat — downloads YouTube videos by subscription.`,"android-tv":`Web UI for controlling an Android TV media box.`,twonky:`Twonky — DLNA/UPnP media server for streaming content on the network.`,dlna:`UPnP/DLNA media server for streaming content to network devices.`,hyperion:`Hyperion panel for controlling the ambient light by the media box.`,hyperhdr:`HyperHDR panel for controlling Ambilight backlight.`,wled:`WLED control panel — ESP-based RGB lighting controller.`,syncthing:`Syncthing web UI for managing file synchronization.`,"syncthing-sync":`Syncthing sync protocol (port 22000).`,nextcloud:`Nextcloud web UI — cloud storage and collaboration.`,webdav:`WebDAV endpoint for mounting as a network drive.`,smb:`SMB/Samba file shares.`,transmission:`Transmission web UI — BitTorrent client.`,firefly:`Firefly III web UI — personal finance manager.`,radicale:`Radicale CalDAV/CardDAV server for calendars and contacts.`,"nginx-site":`nginx-based web page or proxy.`,apache:`Apache web server.`,lighttpd:`lighttpd web server.`,http:`HTTP service or web UI.`,api:`HTTP REST API.`,printer:`Printer IPP endpoint for network printing.`,caddy:`Caddy web server.`,docker:`Docker container engine.`,proxmox:`Proxmox VE virtualization hypervisor.`,plex:`Plex media server for streaming.`,sonarr:`Sonarr TV series manager.`,radarr:`Radarr movie manager.`,prowlarr:`Prowlarr indexer manager for the *arr apps.`,qbittorrent:`qBittorrent BitTorrent client web UI.`,adguard:`AdGuard Home DNS ad-blocker.`,tailscale:`Tailscale mesh VPN.`,wireguard:`WireGuard VPN.`,netdata:`Netdata real-time monitoring.`,prometheus:`Prometheus metrics & monitoring.`,"uptime-kuma":`Uptime Kuma availability monitor.`,gitea:`Gitea self-hosted Git server.`,vaultwarden:`Vaultwarden password manager (Bitwarden-compatible).`,other:`Unknown or other service.`}},deviceGroups:{pc:`Servers & PCs`,server:`Servers`,mobile:`Phones`,tv:`TV & media`,iot:`IoT`,network:`Infrastructure`,other:`Other`},connectService:`+ Connect service`,network:{label:`Network`,fields:{description:`Description`,vlan:`VLAN ID`,domain:`Domain (DNS suffix)`,subnet:`Subnet (CIDR)`,gateway:`Gateway`,dnsPrimary:`Primary DNS`,dnsFallback:`Fallback DNS`,poolStart:`Static pool: from`,poolEnd:`Static pool: to`}},device_info:{label:`Device (network)`,fields:{hostname:`Hostname`,addresses:`Network addresses`,ip:`IP address`,mac:`MAC address`,group:`Group`,vendor:`Vendor`,model:`Model`,os:`OS`,cpu:`CPU`,ram:`RAM`,gpu:`GPU`,arch:`Architecture`,kernel:`Kernel`,disks_usage:`Disks`,services:`Services`},disk:{mount:`Mount`,size:`Size`,used:`Used`,free:`Free`}},service_catalog:{label:`Service catalog`}},ti={devices:ei},ni=e({default:()=>ii,devices:()=>ri}),ri=JSON.parse('{"plugin":{"label":"Устройства и сеть","description":"Сети, устройства и их параметры."},"settings":{"label":"Сканирование сети","scan_info":"Сканирование LAN запускается автоматически дважды в день. Нажмите кнопку, чтобы запустить прогон сейчас.","scan_button":"Сканировать сейчас","secrets_help":"<details>\\n<summary>Как заполнить секреты сервисов</summary>\\n\\nДобавьте секреты в открытом виде в `~/.profile` как `export PREFIX_FIELD=value`. Скан LAN читает их и заполняет соответствующие слоты секретов на карточке сервиса. Хешированные значения (bcrypt/argon2/…) пропускаются. Пустые слоты создаются всегда — можно заполнить вручную.\\n\\n| Сервис | Переменные |\\n| --- | --- |\\n| Home Assistant | `HOME_ASSISTANT_LOGIN`, `HOME_ASSISTANT_PASSWORD`, `HOME_ASSISTANT_TOKEN` |\\n| Nextcloud | `NEXTCLOUD_LOGIN`, `NEXTCLOUD_PASSWORD`, `NEXTCLOUD_TOKEN` |\\n| Syncthing | `SYNCTHING_TOKEN`, `SYNCTHING_LOGIN`, `SYNCTHING_PASSWORD` |\\n| Transmission | `TRANSMISSION_LOGIN`, `TRANSMISSION_PASSWORD` |\\n| Firefly III | `FIREFLY_TOKEN`, `FIREFLY_PASSWORD`, `FIREFLY_CRON_TOKEN` |\\n| MariaDB | `MARIADB_ROOT_PASSWORD`, `MARIADB_USER`, `MARIADB_PASSWORD` |\\n| Pi-hole | `PIHOLE_PASSWORD`, `PIHOLE_TOKEN` |\\n| Kodi | `KODI_LOGIN`, `KODI_PASSWORD` |\\n| Gitea | `GITEA_API_KEY`, `GITEA_PASSWORD` |\\n| Grafana | `GRAFANA_LOGIN`, `GRAFANA_PASSWORD`, `GRAFANA_TOKEN` |\\n| Vaultwarden | `VAULTWARDEN_ADMIN_TOKEN` |\\n| Portainer | `PORTAINER_LOGIN`, `PORTAINER_PASSWORD` |\\n| Proxmox | `PROXMOX_ROOT_PASSWORD`, `PROXMOX_TOKEN` |\\n| AdGuard Home | `ADGUARD_LOGIN`, `ADGUARD_PASSWORD` |\\n| Uptime Kuma | `UPTIME_KUMA_LOGIN`, `UPTIME_KUMA_PASSWORD` |\\n| Node-RED | `NODE_RED_PASSWORD`, `NODE_RED_TOKEN` |\\n| qBittorrent | `QBITTORRENT_LOGIN`, `QBITTORRENT_PASSWORD` |\\n| Radarr | `RADARR_API_KEY` |\\n| Sonarr | `SONARR_API_KEY` |\\n| Prowlarr | `PROWLARR_API_KEY` |\\n| Jellyfin | `JELLYFIN_TOKEN` |\\n| Plex | `PLEX_TOKEN` |\\n| Redis | `REDIS_PASSWORD` |\\n| PostgreSQL | `POSTGRES_USER`, `POSTGRES_PASSWORD` |\\n| Mosquitto | `MOSQUITTO_USER`, `MOSQUITTO_PASSWORD` |\\n\\n</details>","sync_targets_info":"### Куда пишутся данные устройств\\n\\nПосле скана карточки синхронизируются в конфиги локальных программ. Пишутся только пустые/отсутствующие записи — ручные изменения сохраняются.\\n\\n**Сеть / DNS**\\n- SSH config — `~/.ssh/config`\\n- Pi-hole — dnsmasq host-records\\n\\n**Файловые менеджеры**\\n- KDE Dolphin — `~/.local/share/remoteview/*.desktop` (sftp/smb/ftp/webdav)\\n- GTK (Nautilus/Thunar) — `~/.config/gtk-3.0/bookmarks`\\n- rclone — `~/.config/rclone/rclone.conf`\\n\\n**Медиа**\\n- Syncthing Tray — `~/.config/syncthingtray.ini`\\n- Delfin (Jellyfin) — `~/.config/delfin/config.toml`\\n- Kodi — `userdata/sources.xml`\\n\\n**Удалённый доступ**\\n- Remmina — `~/.local/share/remmina/*.remmina` (rdp/vnc/sftp)\\n- KRDC — `~/.local/share/krdc/bookmarks.xml` (rdp/vnc)\\n\\n**Закладки**\\n- Firefox — webexport HTML","ssh_config_path":"Путь SSH config","pihole_conf_path":"Путь Pi-hole dnsmasq conf","syncthing_ini_path":"Путь Syncthing Tray INI","gtk_bookmarks_path":"Путь GTK-закладок","kodi_sources_path":"Путь Kodi sources.xml","krdc_bookmarks_path":"Путь KRDC-закладок","rclone_config_path":"Путь rclone config","remmina_dir":"Каталог Remmina","remoteview_dir":"Каталог KDE Dolphin (remoteview)","delfin_config_path":"Путь Delfin config","pihole_reload_cmd":"Команда reload Pi-hole"},"scan":{"failTitle":"Скан не удался","noMacTitle":"Устройства без MAC ({{count}})","noMacBody":"Не созданы — MAC обязателен для идентификации:","copyIp":"Копировать IP","summaryTitle":"Скан завершён","activeLabel":"Активные","createdLabel":"Создано","macUpdatedLabel":"Обновлено MAC","skippedLabel":"Пропущено","hostnameChangedTitle":"Другой hostname ({{count}})","hostnameChangedBody":"Сохранённый hostname не перезаписан — сверьте вручную:"},"unknownDevice":"Неизвестное","library":{"label":"Сеть"},"accessTypes":{"http":"HTTP","https":"HTTPS","ssh":"SSH","mysql":"MySQL","mqtt":"MQTT","ws":"WebSocket","dns":"DNS","other":"Другое"},"visibilityTypes":{"lan":"LAN","public":"Публичный"},"connFields":{"url":"URL","login":"Логин","password":"Пароль","token":"Токен"},"service":{"type":"Тип","category":"Категория","url":"URL","access":"Доступ","description":"Описание","description_mode":"Источник описания","description_mode_key":"Ключ перевода","description_mode_own":"Свой текст","visibility":"Видимость","hide":"Скрытый","links":"Ссылки","secrets":"Секреты","secretName":"Название","secretValue":"Значение","login":"Логин","token":"Токен","password":"Пароль","code":"Код","cat":{"access":"Доступ","infra":"Инфраструктура","monitoring":"Мониторинг","database":"База данных","automation":"Автоматизация","network":"Сеть","media":"Медиа","lighting":"Подсветка","files":"Файлы","downloads":"Загрузки","finance":"Финансы","calendars":"Календари","web":"Веб","devices":"Устройства","other":"Прочее"},"desc":{"ssh":"SSH-доступ к терминалу устройства.","pacoloco":"Кэш-прокси Pacoloco для пакетов Arch Linux.","portainer":"Веб-интерфейс Portainer для управления Docker-контейнерами.","grafana":"Дашборды Grafana для мониторинга и визуализации метрик.","mariadb":"СУБД MariaDB/MySQL.","mysql":"СУБД MySQL.","postgres":"СУБД PostgreSQL.","redis":"Redis — in-memory хранилище ключ-значение.","homeassistant":"Веб-интерфейс Home Assistant для управления домашней автоматизацией.","zigbee2mqtt":"Веб-интерфейс Zigbee2MQTT — мост между Zigbee-устройствами и MQTT.","mosquitto":"MQTT-брокер Mosquitto для обмена сообщениями IoT.","mqtt":"MQTT-брокер для обмена сообщениями IoT.","node-red":"Редактор Node-RED для визуального программирования автоматизаций.","pihole":"Веб-админка Pi-hole — DNS-фильтр рекламы для локальной сети.","pihole-dns":"DNS-сервер Pi-hole — фильтр рекламы на уровне DNS.","dns":"DNS-сервер.","kodi":"Веб-интерфейс Kodi для управления медиаплеером и библиотекой.","jellyfin":"Веб-интерфейс Jellyfin — медиасервер для стриминга видео и музыки.","pinchflat":"Pinchflat — загрузчик видео с YouTube по подпискам.","android-tv":"Веб-интерфейс управления медиаприставкой на Android TV.","twonky":"Twonky — DLNA/UPnP медиасервер для стриминга контента в сети.","dlna":"UPnP/DLNA медиасервер для стриминга контента на сетевые устройства.","hyperion":"Панель Hyperion для управления подсветкой возле медиаприставки.","hyperhdr":"Панель HyperHDR для управления подсветкой Ambilight.","wled":"Панель управления WLED — контроллер RGB-подсветки на базе ESP.","syncthing":"Веб-панель Syncthing для управления синхронизацией файлов.","syncthing-sync":"Протокол синхронизации Syncthing (порт 22000).","nextcloud":"Веб-интерфейс Nextcloud — облачное хранилище и совместная работа.","webdav":"WebDAV-точка доступа для монтирования как сетевого диска.","smb":"Общие папки SMB/Samba.","transmission":"Веб-интерфейс Transmission — BitTorrent-клиент.","firefly":"Веб-интерфейс Firefly III — личный финансовый менеджер.","radicale":"CalDAV/CardDAV-сервер Radicale для календарей и контактов.","nginx-site":"Веб-страница или прокси на базе nginx.","apache":"Веб-сервер Apache.","lighttpd":"Веб-сервер lighttpd.","http":"HTTP-сервис или веб-интерфейс.","api":"HTTP REST API.","printer":"IPP-интерфейс принтера для сетевой печати.","caddy":"Веб-сервер Caddy.","docker":"Docker — движок контейнеров.","proxmox":"Proxmox VE — гипервизор виртуализации.","plex":"Plex — медиасервер для стриминга.","sonarr":"Sonarr — менеджер сериалов.","radarr":"Radarr — менеджер фильмов.","prowlarr":"Prowlarr — менеджер индексеров для *arr.","qbittorrent":"qBittorrent — веб-интерфейс BitTorrent-клиента.","adguard":"AdGuard Home — DNS-фильтр рекламы.","tailscale":"Tailscale — mesh-VPN.","wireguard":"WireGuard VPN.","netdata":"Netdata — мониторинг в реальном времени.","prometheus":"Prometheus — система метрик и мониторинга.","uptime-kuma":"Uptime Kuma — мониторинг доступности сервисов.","gitea":"Gitea — self-hosted Git-сервер.","vaultwarden":"Vaultwarden — менеджер паролей (Bitwarden-совместимый).","other":"Неизвестный или другой сервис."}},"deviceGroups":{"pc":"Серверы и ПК","server":"Серверы","mobile":"Телефоны","tv":"ТВ и медиа","iot":"IoT","network":"Инфраструктура","other":"Другое"},"connectService":"+ Подключить сервис","network":{"label":"Сеть","fields":{"description":"Описание","vlan":"VLAN ID","domain":"Домен (DNS-суффикс)","subnet":"Подсеть (CIDR)","gateway":"Шлюз","dnsPrimary":"DNS основной","dnsFallback":"DNS резервный","poolStart":"Статический пул: от","poolEnd":"Статический пул: до"}},"device_info":{"label":"Устройство (сеть)","fields":{"hostname":"Hostname","addresses":"Сетевые адреса","ip":"IP-адрес","mac":"MAC-адрес","group":"Группа","vendor":"Производитель","model":"Модель","os":"ОС","cpu":"CPU","ram":"RAM","gpu":"GPU","arch":"Архитектура","kernel":"Ядро","disks_usage":"Диски","services":"Сервисы"},"disk":{"mount":"Точка монтирования","size":"Размер","used":"Занято","free":"Свободно"}},"service_catalog":{"label":"Каталог сервисов"}}'),ii={devices:ri},ai=e({default:()=>si,devices:()=>oi}),oi=JSON.parse('{"plugin":{"label":"Пристрої та мережа","description":"Мережі, пристрої та їхні параметри."},"settings":{"label":"Сканування мережі","scan_info":"Сканування LAN запускається автоматично двічі на день. Натисніть кнопку, щоб запустити прогін зараз.","scan_button":"Сканувати зараз","secrets_help":"<details>\\n<summary>Як заповнити секрети сервісів</summary>\\n\\nДодайте секрети у відкритому вигляді в `~/.profile` як `export PREFIX_FIELD=value`. Скан LAN читає їх і заповнює відповідні слоти секретів на картці сервісу. Хешовані значення (bcrypt/argon2/…) пропускаються. Порожні слоти створюються завжди — можна заповнити вручну.\\n\\n| Сервіс | Змінні |\\n| --- | --- |\\n| Home Assistant | `HOME_ASSISTANT_LOGIN`, `HOME_ASSISTANT_PASSWORD`, `HOME_ASSISTANT_TOKEN` |\\n| Nextcloud | `NEXTCLOUD_LOGIN`, `NEXTCLOUD_PASSWORD`, `NEXTCLOUD_TOKEN` |\\n| Syncthing | `SYNCTHING_TOKEN`, `SYNCTHING_LOGIN`, `SYNCTHING_PASSWORD` |\\n| Transmission | `TRANSMISSION_LOGIN`, `TRANSMISSION_PASSWORD` |\\n| Firefly III | `FIREFLY_TOKEN`, `FIREFLY_PASSWORD`, `FIREFLY_CRON_TOKEN` |\\n| MariaDB | `MARIADB_ROOT_PASSWORD`, `MARIADB_USER`, `MARIADB_PASSWORD` |\\n| Pi-hole | `PIHOLE_PASSWORD`, `PIHOLE_TOKEN` |\\n| Kodi | `KODI_LOGIN`, `KODI_PASSWORD` |\\n| Gitea | `GITEA_API_KEY`, `GITEA_PASSWORD` |\\n| Grafana | `GRAFANA_LOGIN`, `GRAFANA_PASSWORD`, `GRAFANA_TOKEN` |\\n| Vaultwarden | `VAULTWARDEN_ADMIN_TOKEN` |\\n| Portainer | `PORTAINER_LOGIN`, `PORTAINER_PASSWORD` |\\n| Proxmox | `PROXMOX_ROOT_PASSWORD`, `PROXMOX_TOKEN` |\\n| AdGuard Home | `ADGUARD_LOGIN`, `ADGUARD_PASSWORD` |\\n| Uptime Kuma | `UPTIME_KUMA_LOGIN`, `UPTIME_KUMA_PASSWORD` |\\n| Node-RED | `NODE_RED_PASSWORD`, `NODE_RED_TOKEN` |\\n| qBittorrent | `QBITTORRENT_LOGIN`, `QBITTORRENT_PASSWORD` |\\n| Radarr | `RADARR_API_KEY` |\\n| Sonarr | `SONARR_API_KEY` |\\n| Prowlarr | `PROWLARR_API_KEY` |\\n| Jellyfin | `JELLYFIN_TOKEN` |\\n| Plex | `PLEX_TOKEN` |\\n| Redis | `REDIS_PASSWORD` |\\n| PostgreSQL | `POSTGRES_USER`, `POSTGRES_PASSWORD` |\\n| Mosquitto | `MOSQUITTO_USER`, `MOSQUITTO_PASSWORD` |\\n\\n</details>","sync_targets_info":"### Куди пишуться дані пристроїв\\n\\nПісля скану картки синхронізуються в конфіги локальних програм. Пишуться лише порожні/відсутні записи — ручні зміни зберігаються.\\n\\n**Мережа / DNS**\\n- SSH config — `~/.ssh/config`\\n- Pi-hole — dnsmasq host-records\\n\\n**Файлові менеджери**\\n- KDE Dolphin — `~/.local/share/remoteview/*.desktop` (sftp/smb/ftp/webdav)\\n- GTK (Nautilus/Thunar) — `~/.config/gtk-3.0/bookmarks`\\n- rclone — `~/.config/rclone/rclone.conf`\\n\\n**Медіа**\\n- Syncthing Tray — `~/.config/syncthingtray.ini`\\n- Delfin (Jellyfin) — `~/.config/delfin/config.toml`\\n- Kodi — `userdata/sources.xml`\\n\\n**Віддалений доступ**\\n- Remmina — `~/.local/share/remmina/*.remmina` (rdp/vnc/sftp)\\n- KRDC — `~/.local/share/krdc/bookmarks.xml` (rdp/vnc)\\n\\n**Закладки**\\n- Firefox — webexport HTML","ssh_config_path":"Шлях SSH config","pihole_conf_path":"Шлях Pi-hole dnsmasq conf","syncthing_ini_path":"Шлях Syncthing Tray INI","gtk_bookmarks_path":"Шлях GTK-закладок","kodi_sources_path":"Шлях Kodi sources.xml","krdc_bookmarks_path":"Шлях KRDC-закладок","rclone_config_path":"Шлях rclone config","remmina_dir":"Тека Remmina","remoteview_dir":"Тека KDE Dolphin (remoteview)","delfin_config_path":"Шлях Delfin config","pihole_reload_cmd":"Команда reload Pi-hole"},"scan":{"failTitle":"Скан не вдався","noMacTitle":"Пристрої без MAC ({{count}})","noMacBody":"Не створено — MAC обов\'язковий для ідентифікації:","copyIp":"Копіювати IP","summaryTitle":"Скан завершено","activeLabel":"Активні","createdLabel":"Створено","macUpdatedLabel":"Оновлено MAC","skippedLabel":"Пропущено","hostnameChangedTitle":"Інший hostname ({{count}})","hostnameChangedBody":"Збережений hostname не перезаписано — звірте вручну:"},"unknownDevice":"Невідоме","library":{"label":"Мережа"},"accessTypes":{"http":"HTTP","https":"HTTPS","ssh":"SSH","mysql":"MySQL","mqtt":"MQTT","ws":"WebSocket","dns":"DNS","other":"Інше"},"visibilityTypes":{"lan":"LAN","public":"Публічний"},"connFields":{"url":"URL","login":"Логін","password":"Пароль","token":"Токен"},"service":{"type":"Тип","category":"Категорія","url":"URL","access":"Доступ","description":"Опис","description_mode":"Джерело опису","description_mode_key":"Ключ перекладу","description_mode_own":"Власний текст","visibility":"Видимість","hide":"Прихований","links":"Посилання","secrets":"Секрети","secretName":"Назва","secretValue":"Значення","login":"Логін","token":"Токен","password":"Пароль","code":"Код","cat":{"access":"Доступ","infra":"Інфраструктура","monitoring":"Моніторинг","database":"База даних","automation":"Автоматизація","network":"Мережа","media":"Медіа","lighting":"Підсвітка","files":"Файли","downloads":"Завантаження","finance":"Фінанси","calendars":"Календарі","web":"Веб","devices":"Пристрої","other":"Інше"},"desc":{"ssh":"SSH-доступ до терміналу пристрою.","pacoloco":"Кеш-проксі Pacoloco для пакетів Arch Linux.","portainer":"Веб-інтерфейс Portainer для керування Docker-контейнерами.","grafana":"Дашборди Grafana для моніторингу та візуалізації метрик.","mariadb":"СУБД MariaDB/MySQL.","mysql":"СУБД MySQL.","postgres":"СУБД PostgreSQL.","redis":"Redis — in-memory сховище ключ-значення.","homeassistant":"Веб-інтерфейс Home Assistant для керування домашньою автоматизацією.","zigbee2mqtt":"Веб-інтерфейс Zigbee2MQTT — міст між Zigbee-пристроями і MQTT.","mosquitto":"MQTT-брокер Mosquitto для обміну повідомленнями IoT.","mqtt":"MQTT-брокер для обміну повідомленнями IoT.","node-red":"Редактор Node-RED для візуального програмування автоматизацій.","pihole":"Веб-адмінка Pi-hole — DNS-фільтр реклами для локальної мережі.","pihole-dns":"DNS-сервер Pi-hole — фільтр реклами на рівні DNS.","dns":"DNS-сервер.","kodi":"Веб-інтерфейс Kodi для керування медіаплеєром і бібліотекою.","jellyfin":"Веб-інтерфейс Jellyfin — медіасервер для стрімінгу відео та музики.","pinchflat":"Pinchflat — завантажувач відео з YouTube за підписками.","android-tv":"Веб-інтерфейс керування медіаприставкою на Android TV.","twonky":"Twonky — DLNA/UPnP медіасервер для стрімінгу контенту в мережі.","dlna":"UPnP/DLNA медіасервер для стрімінгу контенту на мережеві пристрої.","hyperion":"Панель Hyperion для керування підсвіткою біля медіаприставки.","hyperhdr":"Панель HyperHDR для керування підсвіткою Ambilight.","wled":"Панель керування WLED — контролер RGB-підсвітки на базі ESP.","syncthing":"Веб-панель Syncthing для керування синхронізацією файлів.","syncthing-sync":"Протокол синхронізації Syncthing (порт 22000).","nextcloud":"Веб-інтерфейс Nextcloud — хмарне сховище та колаборація.","webdav":"WebDAV-точка доступу для монтування як мережевого диска.","smb":"Спільні теки SMB/Samba.","transmission":"Веб-інтерфейс Transmission — BitTorrent-клієнт.","firefly":"Веб-інтерфейс Firefly III — особистий фінансовий менеджер.","radicale":"CalDAV/CardDAV-сервер Radicale для календарів і контактів.","nginx-site":"Веб-сторінка або проксі на базі nginx.","apache":"Веб-сервер Apache.","lighttpd":"Веб-сервер lighttpd.","http":"HTTP-сервіс або веб-інтерфейс.","api":"HTTP REST API.","printer":"IPP-інтерфейс принтера для мережевого друку.","caddy":"Веб-сервер Caddy.","docker":"Docker — рушій контейнерів.","proxmox":"Proxmox VE — гіпервізор віртуалізації.","plex":"Plex — медіасервер для стрімінгу.","sonarr":"Sonarr — менеджер серіалів.","radarr":"Radarr — менеджер фільмів.","prowlarr":"Prowlarr — менеджер індексерів для *arr.","qbittorrent":"qBittorrent — веб-інтерфейс BitTorrent-клієнта.","adguard":"AdGuard Home — DNS-фільтр реклами.","tailscale":"Tailscale — mesh-VPN.","wireguard":"WireGuard VPN.","netdata":"Netdata — моніторинг у реальному часі.","prometheus":"Prometheus — система метрик і моніторингу.","uptime-kuma":"Uptime Kuma — моніторинг доступності сервісів.","gitea":"Gitea — self-hosted Git-сервер.","vaultwarden":"Vaultwarden — менеджер паролів (Bitwarden-сумісний).","other":"Невідомий або інший сервіс."}},"deviceGroups":{"pc":"Сервери та ПК","server":"Сервери","mobile":"Телефони","tv":"ТВ та медіа","iot":"IoT","network":"Інфраструктура","other":"Інше"},"connectService":"+ Підключити сервіс","network":{"label":"Мережа","fields":{"description":"Опис","vlan":"VLAN ID","domain":"Домен (DNS-суфікс)","subnet":"Підмережа (CIDR)","gateway":"Шлюз","dnsPrimary":"DNS основний","dnsFallback":"DNS резервний","poolStart":"Статичний пул: від","poolEnd":"Статичний пул: до"}},"device_info":{"label":"Пристрій (мережа)","fields":{"hostname":"Hostname","addresses":"Мережеві адреси","ip":"IP-адреса","mac":"MAC-адреса","group":"Група","vendor":"Виробник","model":"Модель","os":"ОС","cpu":"CPU","ram":"RAM","gpu":"GPU","arch":"Архітектура","kernel":"Ядро","disks_usage":"Диски","services":"Сервіси"},"disk":{"mount":"Точка монтування","size":"Розмір","used":"Зайнято","free":"Вільно"}},"service_catalog":{"label":"Каталог сервісів"}}'),si={devices:oi},ci=e({default:()=>ui,documents:()=>li}),li={plugin:{label:`Documents`,description:`Personal documents and identity.`},library:{label:`Documents`},person_identity:{label:`Identity`,fields:{nationality:`Nationality`,variants:`Variants (languages)`},variants:{lang:`Language`,name:`First name`,surname:`Last name`}},personal_document:{label:`Document`,fields:{logo:`Front side`,description:`Comment`,surname:`Surname`,given_names:`Given names`,sex:`Sex`,birth_date:`Date of birth`,nationality:`Nationality`,number:`Document number`,record_no:`Record No.`,issued:`Date of issue`,expires:`Expiry date`,authority:`Issuing authority`,storage:`Storage location`,mrz:`MRZ (machine-readable zone)`,owner:`Owner`,photos:`Other photos`,notes:`Notes`,tags:`Tags`},options:{sex:{M:`Male`,F:`Female`},type:{P:`Passport`,PA:`Passport (biometric)`,TP:`Temporary protection`,ID:`ID card`,DL:`Driver's licence`,BR:`Birth certificate`,MC:`Medical card / policy`,OT:`Other`}}}},ui={documents:li},di=e({default:()=>pi,documents:()=>fi}),fi={plugin:{label:`Документы`,description:`Личные документы и идентичность.`},library:{label:`Документы`},person_identity:{label:`Идентичность`,fields:{nationality:`Гражданство`,variants:`Варианты (языки)`},variants:{lang:`Язык`,name:`Имя`,surname:`Фамилия`}},personal_document:{label:`Документ`,fields:{logo:`Лицевая сторона`,description:`Комментарий`,surname:`Фамилия`,given_names:`Имя и отчество`,sex:`Пол`,birth_date:`Дата рождения`,nationality:`Гражданство`,number:`Номер документа`,record_no:`Запись №`,issued:`Выдан`,expires:`Действителен до`,authority:`Кем выдан`,storage:`Место хранения`,mrz:`MRZ (строка)`,owner:`Владелец`,photos:`Другие фото`,notes:`Заметки`,tags:`Теги`},options:{sex:{M:`Мужской`,F:`Женский`},type:{P:`Паспорт`,PA:`Паспорт (биометрический)`,TP:`Временная защита`,ID:`ID-карта`,DL:`Водительское удостоверение`,BR:`Свидетельство о рождении`,MC:`Медицинская карта / полис`,OT:`Другое`}}}},pi={documents:fi},mi=e({default:()=>gi,documents:()=>hi}),hi={plugin:{label:`Документи`,description:`Особисті документи та ідентичність.`},library:{label:`Документи`},person_identity:{label:`Ідентичність`,fields:{nationality:`Громадянство`,variants:`Варіанти (мови)`},variants:{lang:`Мова`,name:`Ім'я`,surname:`Прізвище`}},personal_document:{label:`Документ`,fields:{logo:`Лицьова сторона`,description:`Коментар`,surname:`Прізвище`,given_names:`Ім'я та по батькові`,sex:`Стать`,birth_date:`Дата народження`,nationality:`Громадянство`,number:`Номер документа`,record_no:`Запис №`,issued:`Виданий`,expires:`Дійсний до`,authority:`Ким виданий`,storage:`Де зберігається`,mrz:`MRZ (машиночитаємий рядок)`,owner:`Власник`,photos:`Інші фото`,notes:`Нотатки`,tags:`Теги`},options:{sex:{M:`Чоловіча`,F:`Жіноча`},type:{P:`Паспорт`,PA:`Паспорт (біометричний)`,TP:`Тимчасовий захист`,ID:`ID-картка`,DL:`Посвідчення водія`,BR:`Свідоцтво про народження`,MC:`Медична картка / полюс`,OT:`Інше`}}}},gi={documents:hi},_i=e({default:()=>yi,drone:()=>vi}),vi={plugin:{label:`Drones`,description:`FPV drones and their components.`},drone:{label:`FPV Drone`,fields:{frame_size:`Frame`,purpose:`Purpose`,motors:`Motors`,props:`Propellers`,camera:`Camera`,flight_controller:`Flight controller`,vtx:`Video transmitter`,gps_module:`GPS module`,radio_link:`Radio link`,receiver:`Receiver`,video_system:`Video system`,power_module:`Power`,flight_time:`Flight time`,firmware:`Firmware`,firmware_target:`Firmware target`,notes:`Notes`,photos:`Photos`}},drone_battery:{label:`Drone battery`,fields:{brand:`Brand`,charger:`Charger`,cells:`Cell count`,capacity:`Capacity`,c_rate:`C-rating`,auw:`AUW (all-up weight)`}},drone_vtx:{label:`Video transmitter (VTX)`,fields:{input_voltage:`Input voltage`,output_power:`Output power`,protocol:`Protocol`,antenna_interface:`Antenna connector`,channel_count:`Channels`,mounting:`Mounting`,built_in_microphone:`Built-in microphone`,frequency_groups:`Frequency groups`,output_power_levels:`Power levels (details)`}},drone_goggles:{label:`FPV goggles`,fields:{display_size:`Display`,display_resolution:`Resolution`,display_brightness:`Brightness`,view_angle:`Field of view`,antenna:`Antenna`,frequency_bands:`Frequency bands`,battery:`Battery`,battery_life:`Battery life`,charging:`Charging`,band_channels:`Band channels (frequencies)`}},drone_gps:{label:`Drone GPS module`,fields:{gnss_chip:`GNSS chip`,compass_chip:`Compass`,barometer:`Barometer`,interface:`Interface`,input_voltage:`Input voltage`,update_rate_hz:`Update rate (Hz)`,receiving_channels:`Receiving channels`,supported_protocols:`Protocols`,baud_rates:`Baud rates`,satellite_systems:`Satellite systems`}},drone_flight_controller:{label:`Flight controller`,fields:{mcu:`MCU`,gyro:`Gyroscope`,barometer:`Barometer`,osd_chip:`OSD chip`,blackbox:`Blackbox`,bluetooth:`Bluetooth`,wifi:`Wi-Fi`,current_sensor_input:`Current sensor`,power_input:`Input voltage`,constant_current:`Constant current`,peak_current:`Peak current`,bec_5v:`BEC 5V`,bec_9v:`BEC 9V`,mounting:`Mounting`,uart_count:`UART ports`,supported_firmware:`Supported firmware`,firmware_target:`Firmware target`,build_role:`Build role`}},contrib:{type:{fpv_controller:`FPV controller`,fpv_camera:`FPV camera`}}},yi={drone:vi},bi=e({default:()=>Si,drone:()=>xi}),xi={plugin:{label:`Дроны`,description:`FPV-дроны и их компоненты.`},drone:{label:`FPV-дрон`,fields:{frame_size:`Рама`,purpose:`Назначение`,motors:`Моторы`,props:`Пропеллеры`,camera:`Камера`,flight_controller:`Полётный контроллер`,vtx:`Видеопередатчик`,gps_module:`GPS-модуль`,radio_link:`Радиосвязь`,receiver:`Приёмник`,video_system:`Видеосистема`,power_module:`Питание`,flight_time:`Время полёта`,firmware:`Прошивка`,firmware_target:`Цель прошивки`,notes:`Заметки`,photos:`Фото`}},drone_battery:{label:`Аккумулятор дрона`,fields:{brand:`Производитель`,charger:`Зарядное устройство`,cells:`Количество ячеек`,capacity:`Ёмкость`,c_rate:`C-рейтинг`,auw:`AUW (вес в полёте)`}},drone_vtx:{label:`Видеопередатчик (VTX)`,fields:{input_voltage:`Входное напряжение`,output_power:`Мощность`,protocol:`Протокол`,antenna_interface:`Антенный разъём`,channel_count:`Каналов`,mounting:`Крепление`,built_in_microphone:`Встроенный микрофон`,frequency_groups:`Группы частот`,output_power_levels:`Уровни мощности (детали)`}},drone_goggles:{label:`FPV-очки`,fields:{display_size:`Дисплей`,display_resolution:`Разрешение`,display_brightness:`Яркость`,view_angle:`Угол обзора`,antenna:`Антенна`,frequency_bands:`Радиодиапазоны`,battery:`Аккумулятор`,battery_life:`Время работы`,charging:`Зарядка`,band_channels:`Каналы диапазонов (частоты)`}},drone_gps:{label:`GPS-модуль дрона`,fields:{gnss_chip:`GNSS чип`,compass_chip:`Компас`,barometer:`Барометр`,interface:`Интерфейс`,input_voltage:`Входное напряжение`,update_rate_hz:`Частота обновления (Гц)`,receiving_channels:`Каналов приёма`,supported_protocols:`Протоколы`,baud_rates:`Baud rates`,satellite_systems:`Спутниковые системы`}},drone_flight_controller:{label:`Полётный контроллер`,fields:{mcu:`MCU`,gyro:`Гироскоп`,barometer:`Барометр`,osd_chip:`OSD-чип`,blackbox:`Blackbox`,bluetooth:`Bluetooth`,wifi:`Wi-Fi`,current_sensor_input:`Датчик тока`,power_input:`Входное напряжение`,constant_current:`Постоянный ток`,peak_current:`Пиковый ток`,bec_5v:`BEC 5V`,bec_9v:`BEC 9V`,mounting:`Крепление`,uart_count:`UART портов`,supported_firmware:`Поддерживаемые прошивки`,firmware_target:`Цель прошивки`,build_role:`Роль в сборке`}},contrib:{type:{fpv_controller:`FPV контроллер`,fpv_camera:`FPV камера`}}},Si={drone:xi},Ci=e({default:()=>Ti,drone:()=>wi}),wi={plugin:{label:`Дрони`,description:`FPV-дрони та їхні компоненти.`},drone:{label:`FPV-дрон`,fields:{frame_size:`Рама`,purpose:`Призначення`,motors:`Мотори`,props:`Пропелери`,camera:`Камера`,flight_controller:`Польотний контролер`,vtx:`Відеопередавач`,gps_module:`GPS-модуль`,radio_link:`Радіозв'язок`,receiver:`Приймач`,video_system:`Відеосистема`,power_module:`Живлення`,flight_time:`Час польоту`,firmware:`Прошивка`,firmware_target:`Ціль прошивки`,notes:`Нотатки`,photos:`Фото`}},drone_battery:{label:`Акумулятор дрона`,fields:{brand:`Виробник`,charger:`Зарядний пристрій`,cells:`Кількість комірок`,capacity:`Ємність`,c_rate:`C-рейтинг`,auw:`AUW (вага в польоті)`}},drone_vtx:{label:`Відеопередавач (VTX)`,fields:{input_voltage:`Вхідна напруга`,output_power:`Потужність`,protocol:`Протокол`,antenna_interface:`Антенний роз'єм`,channel_count:`Каналів`,mounting:`Кріплення`,built_in_microphone:`Вбудований мікрофон`,frequency_groups:`Групи частот`,output_power_levels:`Рівні потужності (деталі)`}},drone_goggles:{label:`FPV-окуляри`,fields:{display_size:`Дисплей`,display_resolution:`Роздільна здатність`,display_brightness:`Яскравість`,view_angle:`Кут огляду`,antenna:`Антена`,frequency_bands:`Радіосмуги`,battery:`Акумулятор`,battery_life:`Час роботи`,charging:`Зарядка`,band_channels:`Канали смуг (частоти)`}},drone_gps:{label:`GPS-модуль дрона`,fields:{gnss_chip:`GNSS чіп`,compass_chip:`Компас`,barometer:`Барометр`,interface:`Інтерфейс`,input_voltage:`Вхідна напруга`,update_rate_hz:`Частота оновлення (Гц)`,receiving_channels:`Каналів прийому`,supported_protocols:`Протоколи`,baud_rates:`Baud rates`,satellite_systems:`Супутникові системи`}},drone_flight_controller:{label:`Польотний контролер`,fields:{mcu:`MCU`,gyro:`Гіроскоп`,barometer:`Барометр`,osd_chip:`OSD-чіп`,blackbox:`Blackbox`,bluetooth:`Bluetooth`,wifi:`Wi-Fi`,current_sensor_input:`Датчик струму`,power_input:`Вхідна напруга`,constant_current:`Постійний струм`,peak_current:`Піковий струм`,bec_5v:`BEC 5V`,bec_9v:`BEC 9V`,mounting:`Кріплення`,uart_count:`UART портів`,supported_firmware:`Підтримувані прошивки`,firmware_target:`Ціль прошивки`,build_role:`Роль у збірці`}},contrib:{type:{fpv_controller:`FPV контролер`,fpv_camera:`FPV камера`}}},Ti={drone:wi},Ei=e({default:()=>Oi,finance:()=>Di}),Di={plugin:{label:`Finance`,description:`Read-only mirror of Firefly III.`},presets:{bic:`Enter a valid BIC/SWIFT code (8 or 11 characters)`},library:{label:`Finance`},settings:{label:`Finance settings`,firefly_url:`Firefly III URL`,token:`Personal Access Token`,test_button:`Test connection`,sync_button:`Sync now`,wise_csv:`Wise CSV statement`,wise_account:`Import into account`,wise_import_button:`Import Wise`},account:{label:`Account`,fields:{kind:`Kind`,currency:`Currency`,current_balance:`Balance`,iban:`IBAN`,bank:`Bank`,bic:`BIC / SWIFT`,firefly_id:`Firefly ID`},options:{asset:`Asset`,expense:`Expense`,revenue:`Revenue`,liability:`Liability`,cash:`Cash`}},transaction:{label:`Transaction`,fields:{date:`Date`,amount:`Amount`,kind:`Kind`,description:`Description`,source:`Source`,destination:`Destination`,category:`Category`,firefly_id:`Firefly ID`},options:{withdrawal:`Withdrawal`,deposit:`Deposit`,transfer:`Transfer`}},bill:{label:`Bill`,fields:{amount_min:`Min amount`,amount_max:`Max amount`,repeat:`Repeat`,next_expected:`Next expected`,active:`Active`,firefly_id:`Firefly ID`},options:{weekly:`Weekly`,monthly:`Monthly`,quarterly:`Quarterly`,yearly:`Yearly`}},item_financing:{label:`Installment / credit`,fields:{creditor:`Creditor`,holder:`Registered to`,total:`Total amount`,downPayment:`Down payment`,monthly:`Monthly payment`,remaining:`Remaining`,termMonths:`Term, months`,paidMonths:`Paid, months`,rate:`Rate, %`,startDate:`Start date`,nextPayment:`Next payment`,paidOff:`Paid off`}}},Oi={finance:Di},ki=e({default:()=>ji,finance:()=>Ai}),Ai={plugin:{label:`Финансы`,description:`Read-only зеркало Firefly III.`},presets:{bic:`Введите корректный BIC/SWIFT (8 или 11 символов)`},library:{label:`Финансы`},settings:{label:`Настройки финансов`,firefly_url:`URL Firefly III`,token:`Personal Access Token`,test_button:`Проверить соединение`,sync_button:`Синхронизировать`,wise_csv:`Wise CSV выписка`,wise_account:`Счёт для импорта`,wise_import_button:`Импортировать Wise`},account:{label:`Счёт`,fields:{kind:`Тип`,currency:`Валюта`,current_balance:`Баланс`,iban:`IBAN`,bank:`Банк`,bic:`BIC / SWIFT`,firefly_id:`Firefly ID`},options:{asset:`Актив`,expense:`Расходы`,revenue:`Доход`,liability:`Обязательство`,cash:`Наличные`}},transaction:{label:`Транзакция`,fields:{date:`Дата`,amount:`Сумма`,kind:`Тип`,description:`Описание`,source:`Откуда`,destination:`Куда`,category:`Категория`,firefly_id:`Firefly ID`},options:{withdrawal:`Расход`,deposit:`Поступление`,transfer:`Перевод`}},bill:{label:`Счёт к оплате`,fields:{amount_min:`Мин. сумма`,amount_max:`Макс. сумма`,repeat:`Периодичность`,next_expected:`Следующий`,active:`Активный`,firefly_id:`Firefly ID`},options:{weekly:`Еженедельно`,monthly:`Ежемесячно`,quarterly:`Ежеквартально`,yearly:`Ежегодно`}},item_financing:{label:`Рассрочка / кредит`,fields:{creditor:`Кому должны`,holder:`На кого оформлено`,total:`Сумма долга`,downPayment:`Первый взнос`,monthly:`Платёж/мес`,remaining:`Остаток долга`,termMonths:`Срок, мес`,paidMonths:`Оплачено, мес`,rate:`Ставка, %`,startDate:`Дата начала`,nextPayment:`Следующий платёж`,paidOff:`Погашено`}}},ji={finance:Ai},Mi=e({default:()=>Pi,finance:()=>Ni}),Ni={plugin:{label:`Фінанси`,description:`Read-only дзеркало Firefly III.`},presets:{bic:`Введіть коректний BIC/SWIFT (8 або 11 символів)`},library:{label:`Фінанси`},settings:{label:`Налаштування фінансів`,firefly_url:`URL Firefly III`,token:`Personal Access Token`,test_button:`Перевірити з'єднання`,sync_button:`Синхронізувати`,wise_csv:`Wise CSV виписка`,wise_account:`Рахунок для імпорту`,wise_import_button:`Імпортувати Wise`},account:{label:`Рахунок`,fields:{kind:`Тип`,currency:`Валюта`,current_balance:`Баланс`,iban:`IBAN`,bank:`Банк`,bic:`BIC / SWIFT`,firefly_id:`Firefly ID`},options:{asset:`Актив`,expense:`Витрати`,revenue:`Дохід`,liability:`Зобов'язання`,cash:`Готівка`}},transaction:{label:`Транзакція`,fields:{date:`Дата`,amount:`Сума`,kind:`Тип`,description:`Опис`,source:`Звідки`,destination:`Куди`,category:`Категорія`,firefly_id:`Firefly ID`},options:{withdrawal:`Видаток`,deposit:`Надходження`,transfer:`Переказ`}},bill:{label:`Рахунок до сплати`,fields:{amount_min:`Мін. сума`,amount_max:`Макс. сума`,repeat:`Періодичність`,next_expected:`Наступний`,active:`Активний`,firefly_id:`Firefly ID`},options:{weekly:`Щотижня`,monthly:`Щомісяця`,quarterly:`Щокварталу`,yearly:`Щороку`}},item_financing:{label:`Розстрочка / кредит`,fields:{creditor:`Кому винні`,holder:`На кого оформлено`,total:`Сума боргу`,downPayment:`Перший внесок`,monthly:`Платіж/міс`,remaining:`Залишок боргу`,termMonths:`Строк, міс`,paidMonths:`Сплачено, міс`,rate:`Ставка, %`,startDate:`Дата початку`,nextPayment:`Наступний платіж`,paidOff:`Погашено`}}},Pi={finance:Ni},Fi=e({default:()=>Li,garden:()=>Ii}),Ii={plugin:{label:`Garden`,description:`Plants and their care.`},library:{label:`Garden`},plant:{label:`Plant`,fields:{logo:`Photo`,variety:`Variety`,location:`Location`,sunlight:`Sunlight`,pot:`Pot / label`,planted:`Planted`,wateringDays:`Watering (days)`,lastWatered:`Last watered`,fertilizerDays:`Fertilizing (days)`,lastFertilized:`Last fertilized`,nextWatering:`Next watering`,nextFertilizing:`Next fertilizing`,notes:`Notes`,tags:`Tags`},actions:{watered:`Watered`,fertilized:`Fertilized`,done:`Done`,failed:`Update failed`},options:{location:{windowsill:`Windowsill`,balcony:`Balcony`,hanging:`Hanging`,floor:`Floor`,other:`Other`},sunlight:{shade:`Shade`,partial:`Partial shade`,indirect:`Indirect light`,direct:`Direct sun`}}},contrib:{type:{garden:`Garden`}}},Li={garden:Ii},Ri=e({default:()=>Bi,garden:()=>zi}),zi={plugin:{label:`Сад`,description:`Растения и уход за ними.`},library:{label:`Сад`},plant:{label:`Растение`,fields:{logo:`Фото`,variety:`Сорт`,location:`Место`,sunlight:`Освещённость`,pot:`Горшок / метка`,planted:`Посажено`,wateringDays:`Полив (дни)`,lastWatered:`Последний полив`,fertilizerDays:`Подкормка (дни)`,lastFertilized:`Последняя подкормка`,nextWatering:`Следующий полив`,nextFertilizing:`Следующая подкормка`,notes:`Заметки`,tags:`Теги`},actions:{watered:`Полил`,fertilized:`Подкормил`,done:`Готово`,failed:`Не удалось обновить`},options:{location:{windowsill:`Подоконник`,balcony:`Балкон`,hanging:`Подвесной`,floor:`Пол`,other:`Другое`},sunlight:{shade:`Тень`,partial:`Рассеянный свет`,indirect:`Непрямой свет`,direct:`Прямое солнце`}}},contrib:{type:{garden:`Сад / растения`}}},Bi={garden:zi},Vi=e({default:()=>Ui,garden:()=>Hi}),Hi={plugin:{label:`Сад`,description:`Рослини та догляд за ними.`},library:{label:`Сад`},plant:{label:`Рослина`,fields:{logo:`Фото`,variety:`Сорт`,location:`Місце`,sunlight:`Освітленість`,pot:`Горщик / мітка`,planted:`Посаджено`,wateringDays:`Полив (дні)`,lastWatered:`Останній полив`,fertilizerDays:`Підживлення (дні)`,lastFertilized:`Останнє підживлення`,nextWatering:`Наступний полив`,nextFertilizing:`Наступне підживлення`,notes:`Нотатки`,tags:`Теги`},actions:{watered:`Полив`,fertilized:`Підживив`,done:`Готово`,failed:`Не вдалося`},options:{location:{windowsill:`Підвіконня`,balcony:`Балкон`,hanging:`Підвісний`,floor:`Підлога`,other:`Інше`},sunlight:{shade:`Тінь`,partial:`Розсіяне`,indirect:`Непряме`,direct:`Пряме сонце`}}},contrib:{type:{garden:`Сад / рослини`}}},Ui={garden:Hi},Wi=e({default:()=>Ki,health:()=>Gi}),Gi={plugin:{label:`Health`,description:`Medicines, tests, visits and body metrics.`},library:{label:`Health`},dayPeriods:{any:`Any time`,before_breakfast:`Before breakfast`,with_breakfast:`With breakfast`,after_breakfast:`After breakfast`,with_food:`With food`,after_lunch:`After lunch`,evening:`In the evening`,before_bed:`Before bed`,as_needed:`As needed`},person_body:{label:`Anthropometry`,fields:{weightKg:`Weight (kg)`,heightCm:`Height (cm)`,bloodGroup:`Blood group`,allergies:`Allergies`}},medicine:{label:`Medicine`,fields:{photo:`Photo`,quantity:`Quantity`,quantityCheckedAt:`Last quantity check date`,description:`Description`,dose:`Dose by day (Mon–Sun)`,dose_person:`Person`,dose_value:`Dose by day (Mon–Sun)`,intakeTimes:`Intake time`,intakePeriods:`Intake courses`,form:`Form`},options:{type:{vitamin:`Vitamin`,supplement:`Supplement`,medication:`Medication`,antibiotic:`Antibiotic`,hormone:`Hormonal`,painkiller:`Painkiller`,homeopathy:`Homeopathy`,herbal:`Herbal`},form:{tablet:`Tablets`,capsule:`Capsules`,syrup:`Syrup`,drops:`Drops`,ointment:`Ointment`,gel:`Gel`,spray:`Spray`,injection:`Injection`,powder:`Powder`,suppository:`Suppositories`}}},health_test:{label:`Test / examination`,fields:{date:`Date`,clinic:`Clinic / laboratory`,status:`Status`,test_type:`Test type`,person:`Patient`,result:`Result`,attachments:`Documents`},options:{status:{ordered:`Ordered`,completed:`Completed`,cancelled:`Cancelled`},test_type:{blood:`Blood test`,urine:`Urine test`,ultrasound:`Ultrasound`,xray:`X-Ray`,mri:`MRI/CT`,other:`Other`}}},settings:{label:`Sync settings`,caldav_calendar:`Calendar URL`,caldav_url:`CalDAV server URL`,caldav_username:`Username`,caldav_password:`Password`,time_any:`Time: anytime`,time_before_breakfast:`Time: before breakfast`,time_with_breakfast:`Time: with breakfast`,time_after_breakfast:`Time: after breakfast`,time_with_food:`Time: with food`,time_after_lunch:`Time: after lunch`,time_evening:`Time: evening`,time_before_bed:`Time: before bed`},health_visit:{label:`Doctor visit`,fields:{date:`Date`,specialist:`Doctor`,specialty:`Specialty`,clinic:`Clinic`,person:`Patient`,reason:`Reason`,result:`Result / diagnosis`,next_step:`Next steps`,cost:`Cost`,photos:`Photos`,files:`Documents`,medicines:`Medicines`,nextVisit:`Next visit`}}},Ki={health:Gi},qi=e({default:()=>Yi,health:()=>Ji}),Ji={plugin:{label:`Здоровье`,description:`Препараты, анализы, визиты и антропометрия.`},library:{label:`Здоровье`},dayPeriods:{any:`В любое время`,before_breakfast:`До завтрака`,with_breakfast:`Во время завтрака`,after_breakfast:`После завтрака`,with_food:`Во время еды`,after_lunch:`После обеда`,evening:`Вечером`,before_bed:`Перед сном`,as_needed:`По необходимости`},person_body:{label:`Антропометрия`,fields:{weightKg:`Вес (кг)`,heightCm:`Рост (см)`,bloodGroup:`Группа крови`,allergies:`Аллергии`}},medicine:{label:`Препарат`,fields:{photo:`Фото`,quantity:`Количество`,quantityCheckedAt:`Дата последней проверки количества`,description:`Описание`,dose:`Доза по дням (пн–вс)`,dose_person:`Человек`,dose_value:`Доза по дням (пн–вс)`,intakeTimes:`Время приёма`,intakePeriods:`Курсы приёма`,form:`Форма выпуска`},options:{type:{vitamin:`Витамин`,supplement:`Добавка / БАД`,medication:`Лекарство`,antibiotic:`Антибиотик`,hormone:`Гормональный`,painkiller:`Обезболивающее`,homeopathy:`Гомеопатия`,herbal:`Растительный препарат`},form:{tablet:`Таблетки`,capsule:`Капсулы`,syrup:`Сироп`,drops:`Капли`,ointment:`Мазь`,gel:`Гель`,spray:`Спрей`,injection:`Инъекция`,powder:`Порошок`,suppository:`Свечи`}}},health_test:{label:`Анализ / обследование`,fields:{date:`Дата`,clinic:`Клиника / лаборатория`,status:`Статус`,test_type:`Тип обследования`,person:`Пациент`,result:`Результат`,attachments:`Документы`},options:{status:{ordered:`Заказано`,completed:`Выполнено`,cancelled:`Отменено`},test_type:{blood:`Кровь`,urine:`Моча`,ultrasound:`УЗИ`,xray:`Рентген`,mri:`МРТ/КТ`,other:`Другое`}}},settings:{label:`Настройки синхронизации`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Имя пользователя`,caldav_password:`Пароль`,time_any:`Время: в любое время`,time_before_breakfast:`Время: до завтрака`,time_with_breakfast:`Время: во время завтрака`,time_after_breakfast:`Время: после завтрака`,time_with_food:`Время: во время еды`,time_after_lunch:`Время: после обеда`,time_evening:`Время: вечером`,time_before_bed:`Время: перед сном`},health_visit:{label:`Визит к врачу`,fields:{date:`Дата`,specialist:`Врач`,specialty:`Специализация`,clinic:`Клиника`,person:`Пациент`,reason:`Причина`,result:`Результат / диагноз`,next_step:`Следующие шаги`,cost:`Стоимость`,photos:`Фотографии`,files:`Документы`,medicines:`Препараты`,nextVisit:`Следующий визит`}}},Yi={health:Ji},Xi=e({default:()=>Qi,health:()=>Zi}),Zi={plugin:{label:`Здоров’я`,description:`Препарати, аналізи, візити та антропометрія.`},library:{label:`Здоров'я`},dayPeriods:{any:`Будь-коли`,before_breakfast:`До сніданку`,with_breakfast:`Під час сніданку`,after_breakfast:`Після сніданку`,with_food:`Під час їжі`,after_lunch:`Після обіду`,evening:`Ввечері`,before_bed:`Перед сном`,as_needed:`За потреби`},person_body:{label:`Антропометрія`,fields:{weightKg:`Вага (кг)`,heightCm:`Зріст (см)`,bloodGroup:`Група крові`,allergies:`Алергії`}},medicine:{label:`Препарат`,fields:{photo:`Фото`,quantity:`Кількість`,quantityCheckedAt:`Дата останньої перевірки кількості`,description:`Опис`,dose:`Доза по днях (пн–нд)`,dose_person:`Особа`,dose_value:`Доза по днях (пн–нд)`,intakeTimes:`Час прийому`,intakePeriods:`Курси прийому`,form:`Форма випуску`},options:{type:{vitamin:`Вітамін`,supplement:`Добавка / БАД`,medication:`Ліки`,antibiotic:`Антибіотик`,hormone:`Гормональний`,painkiller:`Знеболювальне`,homeopathy:`Гомеопатія`,herbal:`Рослинний препарат`},form:{tablet:`Таблетки`,capsule:`Капсули`,syrup:`Сироп`,drops:`Краплі`,ointment:`Мазь`,gel:`Гель`,spray:`Спрей`,injection:`Ін'єкція`,powder:`Порошок`,suppository:`Свічки`}}},health_test:{label:`Аналіз / обстеження`,fields:{date:`Дата`,clinic:`Клініка / лабораторія`,status:`Статус`,test_type:`Тип обстеження`,person:`Пацієнт`,result:`Результат`,attachments:`Документи`},options:{status:{ordered:`Замовлено`,completed:`Виконано`,cancelled:`Скасовано`},test_type:{blood:`Кров`,urine:`Сеча`,ultrasound:`УЗД`,xray:`Рентген`,mri:`МРТ/КТ`,other:`Інше`}}},settings:{label:`Налаштування синхронізації`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Ім'я користувача`,caldav_password:`Пароль`,time_any:`Час: будь-коли`,time_before_breakfast:`Час: до сніданку`,time_with_breakfast:`Час: під час сніданку`,time_after_breakfast:`Час: після сніданку`,time_with_food:`Час: під час їжі`,time_after_lunch:`Час: після обіду`,time_evening:`Час: ввечері`,time_before_bed:`Час: перед сном`},health_visit:{label:`Візит до лікаря`,fields:{date:`Дата`,specialist:`Лікар`,specialty:`Спеціалізація`,clinic:`Клініка`,person:`Пацієнт`,reason:`Причина`,result:`Результат / діагноз`,next_step:`Наступні кроки`,cost:`Вартість`,photos:`Фотографії`,files:`Документи`,medicines:`Препарати`,nextVisit:`Наступний візит`}}},Qi={health:Zi},$i=e({default:()=>ta,home:()=>ea}),ea={plugin:{label:`Home`,description:`Utility meter readings and household.`},library:{label:`Home`},meter_reading:{label:`Meter readings`,fields:{date:`Reading date`,cold_water:`Cold water, m³`,hot_water:`Hot water, m³`,electricity:`Electricity, kWh`,gas:`Gas, m³`,note:`Note`}},room:{label:`Room`,fields:{area:`Area`,note:`Note`}},material:{label:`Material`,group:{identity:`Identification`,purchase:`Purchase`,media:`Photos & notes`},fields:{brand:`Brand`,color:`Color`,color_code:`Color code (RAL/NCS)`,rooms:`Used in`,price:`Price`,quantity:`Quantity`,store:`Store`,bought_date:`Purchase date`,link:`Product link`,photo:`Photo`,rating:`Rating`,notes:`Notes`},options:{type:{paint:`Paint`,primer:`Primer`,lacquer:`Lacquer`,enamel:`Enamel`,plaster:`Plaster`,tile:`Tile`,laminate:`Laminate`,wallpaper:`Wallpaper`,skirting:`Skirting`,panel:`Panels`,putty:`Putty`,glue:`Glue`,cement:`Cement`,drywall:`Drywall`,insulation:`Insulation`,fixture:`Fixture`,plumbing:`Plumbing`,other:`Other`}}}},ta={home:ea},na=e({default:()=>ia,home:()=>ra}),ra={plugin:{label:`Дом`,description:`Показания счётчиков и быт.`},library:{label:`Дом`},meter_reading:{label:`Показания счётчиков`,fields:{date:`Дата снятия`,cold_water:`Холодная вода, м³`,hot_water:`Горячая вода, м³`,electricity:`Электричество, кВт·ч`,gas:`Газ, м³`,note:`Примечание`}},room:{label:`Комната`,fields:{area:`Площадь`,note:`Примечание`}},material:{label:`Материал`,group:{identity:`Идентификация`,purchase:`Покупка`,media:`Фото и заметки`},fields:{brand:`Производитель`,color:`Цвет`,color_code:`Код цвета (RAL/NCS)`,rooms:`Где использовано`,price:`Цена`,quantity:`Количество`,store:`Магазин`,bought_date:`Дата покупки`,link:`Ссылка на товар`,photo:`Фото`,rating:`Оценка`,notes:`Заметки`},options:{type:{paint:`Краска`,primer:`Грунтовка`,lacquer:`Лак`,enamel:`Эмаль`,plaster:`Штукатурка`,tile:`Плитка`,laminate:`Ламинат`,wallpaper:`Обои`,skirting:`Плинтус`,panel:`Панели`,putty:`Шпаклёвка`,glue:`Клей`,cement:`Цемент`,drywall:`Гипсокартон`,insulation:`Изоляция`,fixture:`Фурнитура`,plumbing:`Сантехника`,other:`Другое`}}}},ia={home:ra},aa=e({default:()=>sa,home:()=>oa}),oa={plugin:{label:`Дім`,description:`Показники лічильників та побут.`},library:{label:`Дім`},meter_reading:{label:`Показники лічильників`,fields:{date:`Дата зняття`,cold_water:`Холодна вода, м³`,hot_water:`Гаряча вода, м³`,electricity:`Електрика, кВт·год`,gas:`Газ, м³`,note:`Примітка`}},room:{label:`Кімната`,fields:{area:`Площа`,note:`Примітка`}},material:{label:`Матеріал`,group:{identity:`Ідентифікація`,purchase:`Купівля`,media:`Фото та нотатки`},fields:{brand:`Виробник`,color:`Колір`,color_code:`Код кольору (RAL/NCS)`,rooms:`Де використано`,price:`Ціна`,quantity:`Кількість`,store:`Магазин`,bought_date:`Дата купівлі`,link:`Посилання на товар`,photo:`Фото`,rating:`Оцінка`,notes:`Нотатки`},options:{type:{paint:`Фарба`,primer:`Ґрунтовка`,lacquer:`Лак`,enamel:`Емаль`,plaster:`Штукатурка`,tile:`Плитка`,laminate:`Ламінат`,wallpaper:`Шпалери`,skirting:`Плінтус`,panel:`Панелі`,putty:`Шпаклівка`,glue:`Клей`,cement:`Цемент`,drywall:`Гіпсокартон`,insulation:`Ізоляція`,fixture:`Фурнітура`,plumbing:`Сантехніка`,other:`Інше`}}}},sa={home:oa},ca=e({default:()=>ua,http:()=>la}),la={plugin:{label:`HTTP connector`,description:`HTTP connector — POST a message to the agent (localhost only).`},settings:{label:`HTTP connector settings`,port:`Port`,access_password:`Access password`}},ua={http:la},da=e({default:()=>pa,http:()=>fa}),fa={plugin:{label:`HTTP-коннектор`,description:`HTTP-коннектор — отправьте сообщение агенту (только localhost).`},settings:{label:`Настройки HTTP-коннектора`,port:`Порт`,access_password:`Пароль доступа`}},pa={http:fa},ma=e({default:()=>ga,http:()=>ha}),ha={plugin:{label:`HTTP-конектор`,description:`HTTP-конектор — надішліть повідомлення агенту (лише localhost).`},settings:{label:`Налаштування HTTP-конектора`,port:`Порт`,access_password:`Пароль доступу`}},ga={http:ha},_a=e({default:()=>ya,kitchen:()=>va}),va={plugin:{label:`Kitchen`,description:`Food items and recipes.`},library:{label:`Kitchen`},food_item:{label:`Product`,fields:{logo:`Photo`,description:`Notes`,subcategory:`Category`,quantity:`Quantity`,minQuantity:`Minimum stock`,expires:`Expiry date`,location:`Storage location`,brand:`Brand`,tags:`Tags`}},food_recipe:{label:`Recipe`,fields:{images:`Photos`,description:`Description`,servings:`Servings`,difficulty:`Difficulty`,category:`Category`,tags:`Tags`,prep_time:`Prep time`,cook_time:`Cook time`,ingredients:`Ingredients`,steps:`Preparation`,comment:`Comment`},options:{difficulty:{easy:`Easy`,medium:`Medium`,hard:`Hard`},category:{first:`First course`,main:`Main course`,salad:`Salad`,appetizer:`Appetizer`,side:`Side dish`,dessert:`Dessert`,drink:`Drink`,sauce:`Sauce`}},ingredient:{product:`Product`,amount:`Amount`,stock:`Stock`}},contrib:{type:{kitchenware:`Kitchenware`}}},ya={kitchen:va},ba=e({default:()=>Sa,kitchen:()=>xa}),xa={plugin:{label:`Кухня`,description:`Продукты и рецепты.`},library:{label:`Кухня`},food_item:{label:`Продукт`,fields:{logo:`Фото`,description:`Заметки`,subcategory:`Категория`,quantity:`Количество`,minQuantity:`Минимальный запас`,expires:`Срок годности`,location:`Место хранения`,brand:`Бренд`,tags:`Теги`}},food_recipe:{label:`Рецепт`,fields:{images:`Фото`,description:`Описание`,servings:`Порций`,difficulty:`Сложность`,category:`Категория`,tags:`Теги`,prep_time:`Время подготовки`,cook_time:`Время приготовления`,ingredients:`Ингредиенты`,steps:`Приготовление`,comment:`Комментарий`},options:{difficulty:{easy:`Легко`,medium:`Средне`,hard:`Сложно`},category:{first:`Первое`,main:`Второе`,salad:`Салат`,appetizer:`Закуска`,side:`Гарнир`,dessert:`Десерт`,drink:`Напиток`,sauce:`Соус`}},ingredient:{product:`Продукт`,amount:`Количество`,stock:`Наличие`}},contrib:{type:{kitchenware:`Посуда / утварь`}}},Sa={kitchen:xa},Ca=e({default:()=>Ta,kitchen:()=>wa}),wa={plugin:{label:`Кухня`,description:`Продукти та рецепти.`},library:{label:`Кухня`},food_item:{label:`Продукт`,fields:{logo:`Фото`,description:`Нотатки`,subcategory:`Категорія`,quantity:`Кількість`,minQuantity:`Мінімальний запас`,expires:`Термін придатності`,location:`Місце зберігання`,brand:`Бренд`,tags:`Теги`}},food_recipe:{label:`Рецепт`,fields:{images:`Фото`,description:`Опис`,servings:`Порцій`,difficulty:`Складність`,category:`Категорія`,tags:`Теги`,prep_time:`Час підготовки`,cook_time:`Час приготування`,ingredients:`Інгредієнти`,steps:`Приготування`,comment:`Коментар`},options:{difficulty:{easy:`Легко`,medium:`Середньо`,hard:`Складно`},category:{first:`Перше`,main:`Друге`,salad:`Салат`,appetizer:`Закуска`,side:`Гарнір`,dessert:`Десерт`,drink:`Напій`,sauce:`Соус`}},ingredient:{product:`Продукт`,amount:`Кількість`,stock:`Наявність`}},contrib:{type:{kitchenware:`Посуд / начиння`}}},Ta={kitchen:wa},Ea=e({default:()=>Oa,lab:()=>Da}),Da={plugin:{label:`Lab`,description:`Field-type demos and experiments.`},library:{label:`Laboratory`},settings:{label:`Lab settings`,intro:`## Demo settings
|
|
37
|
+
- Firefox — webexport HTML`,ssh_config_path:`SSH config path`,pihole_conf_path:`Pi-hole dnsmasq conf path`,syncthing_ini_path:`Syncthing Tray INI path`,gtk_bookmarks_path:`GTK bookmarks path`,kodi_sources_path:`Kodi sources.xml path`,krdc_bookmarks_path:`KRDC bookmarks path`,rclone_config_path:`rclone config path`,remmina_dir:`Remmina directory`,remoteview_dir:`KDE Dolphin (remoteview) directory`,delfin_config_path:`Delfin config path`,pihole_reload_cmd:`Pi-hole reload command`},scan:{failTitle:`Scan failed`,noMacTitle:`Devices without MAC ({{count}})`,noMacBody:`Not created — MAC required for identification:`,copyIp:`Copy IP`,summaryTitle:`Scan complete`,activeLabel:`Active`,createdLabel:`Created`,macUpdatedLabel:`MAC updated`,skippedLabel:`Skipped`,hostnameChangedTitle:`Different hostname ({{count}})`,hostnameChangedBody:`Stored hostname kept (not overwritten) — reconcile manually:`},unknownDevice:`Unknown`,library:{label:`Network`},accessTypes:{http:`HTTP`,https:`HTTPS`,ssh:`SSH`,mysql:`MySQL`,mqtt:`MQTT`,ws:`WebSocket`,dns:`DNS`,other:`Other`},visibilityTypes:{lan:`LAN`,public:`Public`},connFields:{url:`URL`,login:`Login`,password:`Password`,token:`Token`},service:{type:`Type`,category:`Category`,url:`URL`,access:`Access`,description:`Description`,description_mode:`Description source`,description_mode_key:`Translation key`,description_mode_own:`Custom text`,visibility:`Visibility`,hide:`Hidden`,links:`Links`,secrets:`Secrets`,secretName:`Name`,secretValue:`Value`,login:`Login`,token:`Token`,password:`Password`,code:`Code`,cat:{access:`Access`,infra:`Infrastructure`,monitoring:`Monitoring`,database:`Database`,automation:`Automation`,network:`Network`,media:`Media`,lighting:`Lighting`,files:`Files`,downloads:`Downloads`,finance:`Finance`,calendars:`Calendars`,web:`Web`,devices:`Devices`,other:`Other`},desc:{ssh:`SSH access to the device terminal.`,pacoloco:`Pacoloco caching proxy for Arch Linux packages.`,portainer:`Portainer web UI for managing Docker containers.`,grafana:`Grafana dashboards for monitoring and visualizing metrics.`,mariadb:`MariaDB/MySQL database server.`,mysql:`MySQL database server.`,postgres:`PostgreSQL database server.`,redis:`Redis — in-memory key-value store.`,homeassistant:`Home Assistant web UI for home automation control.`,zigbee2mqtt:`Zigbee2MQTT web UI — bridge between Zigbee devices and MQTT.`,mosquitto:`Mosquitto MQTT broker for IoT messaging.`,mqtt:`MQTT broker for IoT messaging.`,"node-red":`Node-RED editor for visual automation programming.`,pihole:`Pi-hole admin UI — network-wide DNS ad filter.`,"pihole-dns":`Pi-hole DNS server — ad filtering at the DNS level.`,dns:`DNS server.`,kodi:`Kodi web UI for controlling the media player and library.`,jellyfin:`Jellyfin web UI — media server for streaming video and music.`,pinchflat:`Pinchflat — downloads YouTube videos by subscription.`,"android-tv":`Web UI for controlling an Android TV media box.`,twonky:`Twonky — DLNA/UPnP media server for streaming content on the network.`,dlna:`UPnP/DLNA media server for streaming content to network devices.`,hyperion:`Hyperion panel for controlling the ambient light by the media box.`,hyperhdr:`HyperHDR panel for controlling Ambilight backlight.`,wled:`WLED control panel — ESP-based RGB lighting controller.`,syncthing:`Syncthing web UI for managing file synchronization.`,"syncthing-sync":`Syncthing sync protocol (port 22000).`,nextcloud:`Nextcloud web UI — cloud storage and collaboration.`,webdav:`WebDAV endpoint for mounting as a network drive.`,smb:`SMB/Samba file shares.`,transmission:`Transmission web UI — BitTorrent client.`,firefly:`Firefly III web UI — personal finance manager.`,radicale:`Radicale CalDAV/CardDAV server for calendars and contacts.`,"nginx-site":`nginx-based web page or proxy.`,apache:`Apache web server.`,lighttpd:`lighttpd web server.`,http:`HTTP service or web UI.`,api:`HTTP REST API.`,printer:`Printer IPP endpoint for network printing.`,caddy:`Caddy web server.`,docker:`Docker container engine.`,proxmox:`Proxmox VE virtualization hypervisor.`,plex:`Plex media server for streaming.`,sonarr:`Sonarr TV series manager.`,radarr:`Radarr movie manager.`,prowlarr:`Prowlarr indexer manager for the *arr apps.`,qbittorrent:`qBittorrent BitTorrent client web UI.`,adguard:`AdGuard Home DNS ad-blocker.`,tailscale:`Tailscale mesh VPN.`,wireguard:`WireGuard VPN.`,netdata:`Netdata real-time monitoring.`,prometheus:`Prometheus metrics & monitoring.`,"uptime-kuma":`Uptime Kuma availability monitor.`,gitea:`Gitea self-hosted Git server.`,vaultwarden:`Vaultwarden password manager (Bitwarden-compatible).`,other:`Unknown or other service.`}},deviceGroups:{pc:`Servers & PCs`,server:`Servers`,mobile:`Phones`,tv:`TV & media`,iot:`IoT`,network:`Infrastructure`,other:`Other`},connectService:`+ Connect service`,network:{label:`Network`,fields:{description:`Description`,vlan:`VLAN ID`,domain:`Domain (DNS suffix)`,subnet:`Subnet (CIDR)`,gateway:`Gateway`,dnsPrimary:`Primary DNS`,dnsFallback:`Fallback DNS`,poolStart:`Static pool: from`,poolEnd:`Static pool: to`}},device_info:{label:`Device (network)`,fields:{hostname:`Hostname`,addresses:`Network addresses`,ip:`IP address`,mac:`MAC address`,group:`Group`,vendor:`Vendor`,model:`Model`,os:`OS`,cpu:`CPU`,ram:`RAM`,gpu:`GPU`,arch:`Architecture`,kernel:`Kernel`,disks_usage:`Disks`,services:`Services`},disk:{mount:`Mount`,size:`Size`,used:`Used`,free:`Free`}},service_catalog:{label:`Service catalog`}},Yr={devices:Jr},Xr=e({default:()=>Qr,devices:()=>Zr}),Zr=JSON.parse('{"plugin":{"label":"Устройства и сеть","description":"Сети, устройства и их параметры."},"settings":{"label":"Сканирование сети","scan_info":"Сканирование LAN запускается автоматически дважды в день. Нажмите кнопку, чтобы запустить прогон сейчас.","scan_button":"Сканировать сейчас","secrets_help":"<details>\\n<summary>Как заполнить секреты сервисов</summary>\\n\\nДобавьте секреты в открытом виде в `~/.profile` как `export PREFIX_FIELD=value`. Скан LAN читает их и заполняет соответствующие слоты секретов на карточке сервиса. Хешированные значения (bcrypt/argon2/…) пропускаются. Пустые слоты создаются всегда — можно заполнить вручную.\\n\\n| Сервис | Переменные |\\n| --- | --- |\\n| Home Assistant | `HOME_ASSISTANT_LOGIN`, `HOME_ASSISTANT_PASSWORD`, `HOME_ASSISTANT_TOKEN` |\\n| Nextcloud | `NEXTCLOUD_LOGIN`, `NEXTCLOUD_PASSWORD`, `NEXTCLOUD_TOKEN` |\\n| Syncthing | `SYNCTHING_TOKEN`, `SYNCTHING_LOGIN`, `SYNCTHING_PASSWORD` |\\n| Transmission | `TRANSMISSION_LOGIN`, `TRANSMISSION_PASSWORD` |\\n| Firefly III | `FIREFLY_TOKEN`, `FIREFLY_PASSWORD`, `FIREFLY_CRON_TOKEN` |\\n| MariaDB | `MARIADB_ROOT_PASSWORD`, `MARIADB_USER`, `MARIADB_PASSWORD` |\\n| Pi-hole | `PIHOLE_PASSWORD`, `PIHOLE_TOKEN` |\\n| Kodi | `KODI_LOGIN`, `KODI_PASSWORD` |\\n| Gitea | `GITEA_API_KEY`, `GITEA_PASSWORD` |\\n| Grafana | `GRAFANA_LOGIN`, `GRAFANA_PASSWORD`, `GRAFANA_TOKEN` |\\n| Vaultwarden | `VAULTWARDEN_ADMIN_TOKEN` |\\n| Portainer | `PORTAINER_LOGIN`, `PORTAINER_PASSWORD` |\\n| Proxmox | `PROXMOX_ROOT_PASSWORD`, `PROXMOX_TOKEN` |\\n| AdGuard Home | `ADGUARD_LOGIN`, `ADGUARD_PASSWORD` |\\n| Uptime Kuma | `UPTIME_KUMA_LOGIN`, `UPTIME_KUMA_PASSWORD` |\\n| Node-RED | `NODE_RED_PASSWORD`, `NODE_RED_TOKEN` |\\n| qBittorrent | `QBITTORRENT_LOGIN`, `QBITTORRENT_PASSWORD` |\\n| Radarr | `RADARR_API_KEY` |\\n| Sonarr | `SONARR_API_KEY` |\\n| Prowlarr | `PROWLARR_API_KEY` |\\n| Jellyfin | `JELLYFIN_TOKEN` |\\n| Plex | `PLEX_TOKEN` |\\n| Redis | `REDIS_PASSWORD` |\\n| PostgreSQL | `POSTGRES_USER`, `POSTGRES_PASSWORD` |\\n| Mosquitto | `MOSQUITTO_USER`, `MOSQUITTO_PASSWORD` |\\n\\n</details>","sync_targets_info":"### Куда пишутся данные устройств\\n\\nПосле скана карточки синхронизируются в конфиги локальных программ. Пишутся только пустые/отсутствующие записи — ручные изменения сохраняются.\\n\\n**Сеть / DNS**\\n- SSH config — `~/.ssh/config`\\n- Pi-hole — dnsmasq host-records\\n\\n**Файловые менеджеры**\\n- KDE Dolphin — `~/.local/share/remoteview/*.desktop` (sftp/smb/ftp/webdav)\\n- GTK (Nautilus/Thunar) — `~/.config/gtk-3.0/bookmarks`\\n- rclone — `~/.config/rclone/rclone.conf`\\n\\n**Медиа**\\n- Syncthing Tray — `~/.config/syncthingtray.ini`\\n- Delfin (Jellyfin) — `~/.config/delfin/config.toml`\\n- Kodi — `userdata/sources.xml`\\n\\n**Удалённый доступ**\\n- Remmina — `~/.local/share/remmina/*.remmina` (rdp/vnc/sftp)\\n- KRDC — `~/.local/share/krdc/bookmarks.xml` (rdp/vnc)\\n\\n**Закладки**\\n- Firefox — webexport HTML","ssh_config_path":"Путь SSH config","pihole_conf_path":"Путь Pi-hole dnsmasq conf","syncthing_ini_path":"Путь Syncthing Tray INI","gtk_bookmarks_path":"Путь GTK-закладок","kodi_sources_path":"Путь Kodi sources.xml","krdc_bookmarks_path":"Путь KRDC-закладок","rclone_config_path":"Путь rclone config","remmina_dir":"Каталог Remmina","remoteview_dir":"Каталог KDE Dolphin (remoteview)","delfin_config_path":"Путь Delfin config","pihole_reload_cmd":"Команда reload Pi-hole"},"scan":{"failTitle":"Скан не удался","noMacTitle":"Устройства без MAC ({{count}})","noMacBody":"Не созданы — MAC обязателен для идентификации:","copyIp":"Копировать IP","summaryTitle":"Скан завершён","activeLabel":"Активные","createdLabel":"Создано","macUpdatedLabel":"Обновлено MAC","skippedLabel":"Пропущено","hostnameChangedTitle":"Другой hostname ({{count}})","hostnameChangedBody":"Сохранённый hostname не перезаписан — сверьте вручную:"},"unknownDevice":"Неизвестное","library":{"label":"Сеть"},"accessTypes":{"http":"HTTP","https":"HTTPS","ssh":"SSH","mysql":"MySQL","mqtt":"MQTT","ws":"WebSocket","dns":"DNS","other":"Другое"},"visibilityTypes":{"lan":"LAN","public":"Публичный"},"connFields":{"url":"URL","login":"Логин","password":"Пароль","token":"Токен"},"service":{"type":"Тип","category":"Категория","url":"URL","access":"Доступ","description":"Описание","description_mode":"Источник описания","description_mode_key":"Ключ перевода","description_mode_own":"Свой текст","visibility":"Видимость","hide":"Скрытый","links":"Ссылки","secrets":"Секреты","secretName":"Название","secretValue":"Значение","login":"Логин","token":"Токен","password":"Пароль","code":"Код","cat":{"access":"Доступ","infra":"Инфраструктура","monitoring":"Мониторинг","database":"База данных","automation":"Автоматизация","network":"Сеть","media":"Медиа","lighting":"Подсветка","files":"Файлы","downloads":"Загрузки","finance":"Финансы","calendars":"Календари","web":"Веб","devices":"Устройства","other":"Прочее"},"desc":{"ssh":"SSH-доступ к терминалу устройства.","pacoloco":"Кэш-прокси Pacoloco для пакетов Arch Linux.","portainer":"Веб-интерфейс Portainer для управления Docker-контейнерами.","grafana":"Дашборды Grafana для мониторинга и визуализации метрик.","mariadb":"СУБД MariaDB/MySQL.","mysql":"СУБД MySQL.","postgres":"СУБД PostgreSQL.","redis":"Redis — in-memory хранилище ключ-значение.","homeassistant":"Веб-интерфейс Home Assistant для управления домашней автоматизацией.","zigbee2mqtt":"Веб-интерфейс Zigbee2MQTT — мост между Zigbee-устройствами и MQTT.","mosquitto":"MQTT-брокер Mosquitto для обмена сообщениями IoT.","mqtt":"MQTT-брокер для обмена сообщениями IoT.","node-red":"Редактор Node-RED для визуального программирования автоматизаций.","pihole":"Веб-админка Pi-hole — DNS-фильтр рекламы для локальной сети.","pihole-dns":"DNS-сервер Pi-hole — фильтр рекламы на уровне DNS.","dns":"DNS-сервер.","kodi":"Веб-интерфейс Kodi для управления медиаплеером и библиотекой.","jellyfin":"Веб-интерфейс Jellyfin — медиасервер для стриминга видео и музыки.","pinchflat":"Pinchflat — загрузчик видео с YouTube по подпискам.","android-tv":"Веб-интерфейс управления медиаприставкой на Android TV.","twonky":"Twonky — DLNA/UPnP медиасервер для стриминга контента в сети.","dlna":"UPnP/DLNA медиасервер для стриминга контента на сетевые устройства.","hyperion":"Панель Hyperion для управления подсветкой возле медиаприставки.","hyperhdr":"Панель HyperHDR для управления подсветкой Ambilight.","wled":"Панель управления WLED — контроллер RGB-подсветки на базе ESP.","syncthing":"Веб-панель Syncthing для управления синхронизацией файлов.","syncthing-sync":"Протокол синхронизации Syncthing (порт 22000).","nextcloud":"Веб-интерфейс Nextcloud — облачное хранилище и совместная работа.","webdav":"WebDAV-точка доступа для монтирования как сетевого диска.","smb":"Общие папки SMB/Samba.","transmission":"Веб-интерфейс Transmission — BitTorrent-клиент.","firefly":"Веб-интерфейс Firefly III — личный финансовый менеджер.","radicale":"CalDAV/CardDAV-сервер Radicale для календарей и контактов.","nginx-site":"Веб-страница или прокси на базе nginx.","apache":"Веб-сервер Apache.","lighttpd":"Веб-сервер lighttpd.","http":"HTTP-сервис или веб-интерфейс.","api":"HTTP REST API.","printer":"IPP-интерфейс принтера для сетевой печати.","caddy":"Веб-сервер Caddy.","docker":"Docker — движок контейнеров.","proxmox":"Proxmox VE — гипервизор виртуализации.","plex":"Plex — медиасервер для стриминга.","sonarr":"Sonarr — менеджер сериалов.","radarr":"Radarr — менеджер фильмов.","prowlarr":"Prowlarr — менеджер индексеров для *arr.","qbittorrent":"qBittorrent — веб-интерфейс BitTorrent-клиента.","adguard":"AdGuard Home — DNS-фильтр рекламы.","tailscale":"Tailscale — mesh-VPN.","wireguard":"WireGuard VPN.","netdata":"Netdata — мониторинг в реальном времени.","prometheus":"Prometheus — система метрик и мониторинга.","uptime-kuma":"Uptime Kuma — мониторинг доступности сервисов.","gitea":"Gitea — self-hosted Git-сервер.","vaultwarden":"Vaultwarden — менеджер паролей (Bitwarden-совместимый).","other":"Неизвестный или другой сервис."}},"deviceGroups":{"pc":"Серверы и ПК","server":"Серверы","mobile":"Телефоны","tv":"ТВ и медиа","iot":"IoT","network":"Инфраструктура","other":"Другое"},"connectService":"+ Подключить сервис","network":{"label":"Сеть","fields":{"description":"Описание","vlan":"VLAN ID","domain":"Домен (DNS-суффикс)","subnet":"Подсеть (CIDR)","gateway":"Шлюз","dnsPrimary":"DNS основной","dnsFallback":"DNS резервный","poolStart":"Статический пул: от","poolEnd":"Статический пул: до"}},"device_info":{"label":"Устройство (сеть)","fields":{"hostname":"Hostname","addresses":"Сетевые адреса","ip":"IP-адрес","mac":"MAC-адрес","group":"Группа","vendor":"Производитель","model":"Модель","os":"ОС","cpu":"CPU","ram":"RAM","gpu":"GPU","arch":"Архитектура","kernel":"Ядро","disks_usage":"Диски","services":"Сервисы"},"disk":{"mount":"Точка монтирования","size":"Размер","used":"Занято","free":"Свободно"}},"service_catalog":{"label":"Каталог сервисов"}}'),Qr={devices:Zr},$r=e({default:()=>ti,devices:()=>ei}),ei=JSON.parse('{"plugin":{"label":"Пристрої та мережа","description":"Мережі, пристрої та їхні параметри."},"settings":{"label":"Сканування мережі","scan_info":"Сканування LAN запускається автоматично двічі на день. Натисніть кнопку, щоб запустити прогін зараз.","scan_button":"Сканувати зараз","secrets_help":"<details>\\n<summary>Як заповнити секрети сервісів</summary>\\n\\nДодайте секрети у відкритому вигляді в `~/.profile` як `export PREFIX_FIELD=value`. Скан LAN читає їх і заповнює відповідні слоти секретів на картці сервісу. Хешовані значення (bcrypt/argon2/…) пропускаються. Порожні слоти створюються завжди — можна заповнити вручну.\\n\\n| Сервіс | Змінні |\\n| --- | --- |\\n| Home Assistant | `HOME_ASSISTANT_LOGIN`, `HOME_ASSISTANT_PASSWORD`, `HOME_ASSISTANT_TOKEN` |\\n| Nextcloud | `NEXTCLOUD_LOGIN`, `NEXTCLOUD_PASSWORD`, `NEXTCLOUD_TOKEN` |\\n| Syncthing | `SYNCTHING_TOKEN`, `SYNCTHING_LOGIN`, `SYNCTHING_PASSWORD` |\\n| Transmission | `TRANSMISSION_LOGIN`, `TRANSMISSION_PASSWORD` |\\n| Firefly III | `FIREFLY_TOKEN`, `FIREFLY_PASSWORD`, `FIREFLY_CRON_TOKEN` |\\n| MariaDB | `MARIADB_ROOT_PASSWORD`, `MARIADB_USER`, `MARIADB_PASSWORD` |\\n| Pi-hole | `PIHOLE_PASSWORD`, `PIHOLE_TOKEN` |\\n| Kodi | `KODI_LOGIN`, `KODI_PASSWORD` |\\n| Gitea | `GITEA_API_KEY`, `GITEA_PASSWORD` |\\n| Grafana | `GRAFANA_LOGIN`, `GRAFANA_PASSWORD`, `GRAFANA_TOKEN` |\\n| Vaultwarden | `VAULTWARDEN_ADMIN_TOKEN` |\\n| Portainer | `PORTAINER_LOGIN`, `PORTAINER_PASSWORD` |\\n| Proxmox | `PROXMOX_ROOT_PASSWORD`, `PROXMOX_TOKEN` |\\n| AdGuard Home | `ADGUARD_LOGIN`, `ADGUARD_PASSWORD` |\\n| Uptime Kuma | `UPTIME_KUMA_LOGIN`, `UPTIME_KUMA_PASSWORD` |\\n| Node-RED | `NODE_RED_PASSWORD`, `NODE_RED_TOKEN` |\\n| qBittorrent | `QBITTORRENT_LOGIN`, `QBITTORRENT_PASSWORD` |\\n| Radarr | `RADARR_API_KEY` |\\n| Sonarr | `SONARR_API_KEY` |\\n| Prowlarr | `PROWLARR_API_KEY` |\\n| Jellyfin | `JELLYFIN_TOKEN` |\\n| Plex | `PLEX_TOKEN` |\\n| Redis | `REDIS_PASSWORD` |\\n| PostgreSQL | `POSTGRES_USER`, `POSTGRES_PASSWORD` |\\n| Mosquitto | `MOSQUITTO_USER`, `MOSQUITTO_PASSWORD` |\\n\\n</details>","sync_targets_info":"### Куди пишуться дані пристроїв\\n\\nПісля скану картки синхронізуються в конфіги локальних програм. Пишуться лише порожні/відсутні записи — ручні зміни зберігаються.\\n\\n**Мережа / DNS**\\n- SSH config — `~/.ssh/config`\\n- Pi-hole — dnsmasq host-records\\n\\n**Файлові менеджери**\\n- KDE Dolphin — `~/.local/share/remoteview/*.desktop` (sftp/smb/ftp/webdav)\\n- GTK (Nautilus/Thunar) — `~/.config/gtk-3.0/bookmarks`\\n- rclone — `~/.config/rclone/rclone.conf`\\n\\n**Медіа**\\n- Syncthing Tray — `~/.config/syncthingtray.ini`\\n- Delfin (Jellyfin) — `~/.config/delfin/config.toml`\\n- Kodi — `userdata/sources.xml`\\n\\n**Віддалений доступ**\\n- Remmina — `~/.local/share/remmina/*.remmina` (rdp/vnc/sftp)\\n- KRDC — `~/.local/share/krdc/bookmarks.xml` (rdp/vnc)\\n\\n**Закладки**\\n- Firefox — webexport HTML","ssh_config_path":"Шлях SSH config","pihole_conf_path":"Шлях Pi-hole dnsmasq conf","syncthing_ini_path":"Шлях Syncthing Tray INI","gtk_bookmarks_path":"Шлях GTK-закладок","kodi_sources_path":"Шлях Kodi sources.xml","krdc_bookmarks_path":"Шлях KRDC-закладок","rclone_config_path":"Шлях rclone config","remmina_dir":"Тека Remmina","remoteview_dir":"Тека KDE Dolphin (remoteview)","delfin_config_path":"Шлях Delfin config","pihole_reload_cmd":"Команда reload Pi-hole"},"scan":{"failTitle":"Скан не вдався","noMacTitle":"Пристрої без MAC ({{count}})","noMacBody":"Не створено — MAC обов\'язковий для ідентифікації:","copyIp":"Копіювати IP","summaryTitle":"Скан завершено","activeLabel":"Активні","createdLabel":"Створено","macUpdatedLabel":"Оновлено MAC","skippedLabel":"Пропущено","hostnameChangedTitle":"Інший hostname ({{count}})","hostnameChangedBody":"Збережений hostname не перезаписано — звірте вручну:"},"unknownDevice":"Невідоме","library":{"label":"Мережа"},"accessTypes":{"http":"HTTP","https":"HTTPS","ssh":"SSH","mysql":"MySQL","mqtt":"MQTT","ws":"WebSocket","dns":"DNS","other":"Інше"},"visibilityTypes":{"lan":"LAN","public":"Публічний"},"connFields":{"url":"URL","login":"Логін","password":"Пароль","token":"Токен"},"service":{"type":"Тип","category":"Категорія","url":"URL","access":"Доступ","description":"Опис","description_mode":"Джерело опису","description_mode_key":"Ключ перекладу","description_mode_own":"Власний текст","visibility":"Видимість","hide":"Прихований","links":"Посилання","secrets":"Секрети","secretName":"Назва","secretValue":"Значення","login":"Логін","token":"Токен","password":"Пароль","code":"Код","cat":{"access":"Доступ","infra":"Інфраструктура","monitoring":"Моніторинг","database":"База даних","automation":"Автоматизація","network":"Мережа","media":"Медіа","lighting":"Підсвітка","files":"Файли","downloads":"Завантаження","finance":"Фінанси","calendars":"Календарі","web":"Веб","devices":"Пристрої","other":"Інше"},"desc":{"ssh":"SSH-доступ до терміналу пристрою.","pacoloco":"Кеш-проксі Pacoloco для пакетів Arch Linux.","portainer":"Веб-інтерфейс Portainer для керування Docker-контейнерами.","grafana":"Дашборди Grafana для моніторингу та візуалізації метрик.","mariadb":"СУБД MariaDB/MySQL.","mysql":"СУБД MySQL.","postgres":"СУБД PostgreSQL.","redis":"Redis — in-memory сховище ключ-значення.","homeassistant":"Веб-інтерфейс Home Assistant для керування домашньою автоматизацією.","zigbee2mqtt":"Веб-інтерфейс Zigbee2MQTT — міст між Zigbee-пристроями і MQTT.","mosquitto":"MQTT-брокер Mosquitto для обміну повідомленнями IoT.","mqtt":"MQTT-брокер для обміну повідомленнями IoT.","node-red":"Редактор Node-RED для візуального програмування автоматизацій.","pihole":"Веб-адмінка Pi-hole — DNS-фільтр реклами для локальної мережі.","pihole-dns":"DNS-сервер Pi-hole — фільтр реклами на рівні DNS.","dns":"DNS-сервер.","kodi":"Веб-інтерфейс Kodi для керування медіаплеєром і бібліотекою.","jellyfin":"Веб-інтерфейс Jellyfin — медіасервер для стрімінгу відео та музики.","pinchflat":"Pinchflat — завантажувач відео з YouTube за підписками.","android-tv":"Веб-інтерфейс керування медіаприставкою на Android TV.","twonky":"Twonky — DLNA/UPnP медіасервер для стрімінгу контенту в мережі.","dlna":"UPnP/DLNA медіасервер для стрімінгу контенту на мережеві пристрої.","hyperion":"Панель Hyperion для керування підсвіткою біля медіаприставки.","hyperhdr":"Панель HyperHDR для керування підсвіткою Ambilight.","wled":"Панель керування WLED — контролер RGB-підсвітки на базі ESP.","syncthing":"Веб-панель Syncthing для керування синхронізацією файлів.","syncthing-sync":"Протокол синхронізації Syncthing (порт 22000).","nextcloud":"Веб-інтерфейс Nextcloud — хмарне сховище та колаборація.","webdav":"WebDAV-точка доступу для монтування як мережевого диска.","smb":"Спільні теки SMB/Samba.","transmission":"Веб-інтерфейс Transmission — BitTorrent-клієнт.","firefly":"Веб-інтерфейс Firefly III — особистий фінансовий менеджер.","radicale":"CalDAV/CardDAV-сервер Radicale для календарів і контактів.","nginx-site":"Веб-сторінка або проксі на базі nginx.","apache":"Веб-сервер Apache.","lighttpd":"Веб-сервер lighttpd.","http":"HTTP-сервіс або веб-інтерфейс.","api":"HTTP REST API.","printer":"IPP-інтерфейс принтера для мережевого друку.","caddy":"Веб-сервер Caddy.","docker":"Docker — рушій контейнерів.","proxmox":"Proxmox VE — гіпервізор віртуалізації.","plex":"Plex — медіасервер для стрімінгу.","sonarr":"Sonarr — менеджер серіалів.","radarr":"Radarr — менеджер фільмів.","prowlarr":"Prowlarr — менеджер індексерів для *arr.","qbittorrent":"qBittorrent — веб-інтерфейс BitTorrent-клієнта.","adguard":"AdGuard Home — DNS-фільтр реклами.","tailscale":"Tailscale — mesh-VPN.","wireguard":"WireGuard VPN.","netdata":"Netdata — моніторинг у реальному часі.","prometheus":"Prometheus — система метрик і моніторингу.","uptime-kuma":"Uptime Kuma — моніторинг доступності сервісів.","gitea":"Gitea — self-hosted Git-сервер.","vaultwarden":"Vaultwarden — менеджер паролів (Bitwarden-сумісний).","other":"Невідомий або інший сервіс."}},"deviceGroups":{"pc":"Сервери та ПК","server":"Сервери","mobile":"Телефони","tv":"ТВ та медіа","iot":"IoT","network":"Інфраструктура","other":"Інше"},"connectService":"+ Підключити сервіс","network":{"label":"Мережа","fields":{"description":"Опис","vlan":"VLAN ID","domain":"Домен (DNS-суфікс)","subnet":"Підмережа (CIDR)","gateway":"Шлюз","dnsPrimary":"DNS основний","dnsFallback":"DNS резервний","poolStart":"Статичний пул: від","poolEnd":"Статичний пул: до"}},"device_info":{"label":"Пристрій (мережа)","fields":{"hostname":"Hostname","addresses":"Мережеві адреси","ip":"IP-адреса","mac":"MAC-адреса","group":"Група","vendor":"Виробник","model":"Модель","os":"ОС","cpu":"CPU","ram":"RAM","gpu":"GPU","arch":"Архітектура","kernel":"Ядро","disks_usage":"Диски","services":"Сервіси"},"disk":{"mount":"Точка монтування","size":"Розмір","used":"Зайнято","free":"Вільно"}},"service_catalog":{"label":"Каталог сервісів"}}'),ti={devices:ei},ni=e({default:()=>ii,documents:()=>ri}),ri={plugin:{label:`Documents`,description:`Personal documents and identity.`},library:{label:`Documents`},person_identity:{label:`Identity`,fields:{nationality:`Nationality`,variants:`Variants (languages)`},variants:{lang:`Language`,name:`First name`,surname:`Last name`}},personal_document:{label:`Document`,fields:{logo:`Front side`,description:`Comment`,surname:`Surname`,given_names:`Given names`,sex:`Sex`,birth_date:`Date of birth`,nationality:`Nationality`,number:`Document number`,record_no:`Record No.`,issued:`Date of issue`,expires:`Expiry date`,authority:`Issuing authority`,storage:`Storage location`,mrz:`MRZ (machine-readable zone)`,owner:`Owner`,photos:`Other photos`,notes:`Notes`,tags:`Tags`},options:{sex:{M:`Male`,F:`Female`},type:{P:`Passport`,PA:`Passport (biometric)`,TP:`Temporary protection`,ID:`ID card`,DL:`Driver's licence`,BR:`Birth certificate`,MC:`Medical card / policy`,OT:`Other`}}}},ii={documents:ri},ai=e({default:()=>si,documents:()=>oi}),oi={plugin:{label:`Документы`,description:`Личные документы и идентичность.`},library:{label:`Документы`},person_identity:{label:`Идентичность`,fields:{nationality:`Гражданство`,variants:`Варианты (языки)`},variants:{lang:`Язык`,name:`Имя`,surname:`Фамилия`}},personal_document:{label:`Документ`,fields:{logo:`Лицевая сторона`,description:`Комментарий`,surname:`Фамилия`,given_names:`Имя и отчество`,sex:`Пол`,birth_date:`Дата рождения`,nationality:`Гражданство`,number:`Номер документа`,record_no:`Запись №`,issued:`Выдан`,expires:`Действителен до`,authority:`Кем выдан`,storage:`Место хранения`,mrz:`MRZ (строка)`,owner:`Владелец`,photos:`Другие фото`,notes:`Заметки`,tags:`Теги`},options:{sex:{M:`Мужской`,F:`Женский`},type:{P:`Паспорт`,PA:`Паспорт (биометрический)`,TP:`Временная защита`,ID:`ID-карта`,DL:`Водительское удостоверение`,BR:`Свидетельство о рождении`,MC:`Медицинская карта / полис`,OT:`Другое`}}}},si={documents:oi},ci=e({default:()=>ui,documents:()=>li}),li={plugin:{label:`Документи`,description:`Особисті документи та ідентичність.`},library:{label:`Документи`},person_identity:{label:`Ідентичність`,fields:{nationality:`Громадянство`,variants:`Варіанти (мови)`},variants:{lang:`Мова`,name:`Ім'я`,surname:`Прізвище`}},personal_document:{label:`Документ`,fields:{logo:`Лицьова сторона`,description:`Коментар`,surname:`Прізвище`,given_names:`Ім'я та по батькові`,sex:`Стать`,birth_date:`Дата народження`,nationality:`Громадянство`,number:`Номер документа`,record_no:`Запис №`,issued:`Виданий`,expires:`Дійсний до`,authority:`Ким виданий`,storage:`Де зберігається`,mrz:`MRZ (машиночитаємий рядок)`,owner:`Власник`,photos:`Інші фото`,notes:`Нотатки`,tags:`Теги`},options:{sex:{M:`Чоловіча`,F:`Жіноча`},type:{P:`Паспорт`,PA:`Паспорт (біометричний)`,TP:`Тимчасовий захист`,ID:`ID-картка`,DL:`Посвідчення водія`,BR:`Свідоцтво про народження`,MC:`Медична картка / полюс`,OT:`Інше`}}}},ui={documents:li},di=e({default:()=>pi,drone:()=>fi}),fi={plugin:{label:`Drones`,description:`FPV drones and their components.`},drone:{label:`FPV Drone`,fields:{frame_size:`Frame`,purpose:`Purpose`,motors:`Motors`,props:`Propellers`,camera:`Camera`,flight_controller:`Flight controller`,vtx:`Video transmitter`,gps_module:`GPS module`,radio_link:`Radio link`,receiver:`Receiver`,video_system:`Video system`,power_module:`Power`,flight_time:`Flight time`,firmware:`Firmware`,firmware_target:`Firmware target`,notes:`Notes`,photos:`Photos`}},drone_battery:{label:`Drone battery`,fields:{brand:`Brand`,charger:`Charger`,cells:`Cell count`,capacity:`Capacity`,c_rate:`C-rating`,auw:`AUW (all-up weight)`}},drone_vtx:{label:`Video transmitter (VTX)`,fields:{input_voltage:`Input voltage`,output_power:`Output power`,protocol:`Protocol`,antenna_interface:`Antenna connector`,channel_count:`Channels`,mounting:`Mounting`,built_in_microphone:`Built-in microphone`,frequency_groups:`Frequency groups`,output_power_levels:`Power levels (details)`}},drone_goggles:{label:`FPV goggles`,fields:{display_size:`Display`,display_resolution:`Resolution`,display_brightness:`Brightness`,view_angle:`Field of view`,antenna:`Antenna`,frequency_bands:`Frequency bands`,battery:`Battery`,battery_life:`Battery life`,charging:`Charging`,band_channels:`Band channels (frequencies)`}},drone_gps:{label:`Drone GPS module`,fields:{gnss_chip:`GNSS chip`,compass_chip:`Compass`,barometer:`Barometer`,interface:`Interface`,input_voltage:`Input voltage`,update_rate_hz:`Update rate (Hz)`,receiving_channels:`Receiving channels`,supported_protocols:`Protocols`,baud_rates:`Baud rates`,satellite_systems:`Satellite systems`}},drone_flight_controller:{label:`Flight controller`,fields:{mcu:`MCU`,gyro:`Gyroscope`,barometer:`Barometer`,osd_chip:`OSD chip`,blackbox:`Blackbox`,bluetooth:`Bluetooth`,wifi:`Wi-Fi`,current_sensor_input:`Current sensor`,power_input:`Input voltage`,constant_current:`Constant current`,peak_current:`Peak current`,bec_5v:`BEC 5V`,bec_9v:`BEC 9V`,mounting:`Mounting`,uart_count:`UART ports`,supported_firmware:`Supported firmware`,firmware_target:`Firmware target`,build_role:`Build role`}},contrib:{type:{fpv_controller:`FPV controller`,fpv_camera:`FPV camera`}}},pi={drone:fi},mi=e({default:()=>gi,drone:()=>hi}),hi={plugin:{label:`Дроны`,description:`FPV-дроны и их компоненты.`},drone:{label:`FPV-дрон`,fields:{frame_size:`Рама`,purpose:`Назначение`,motors:`Моторы`,props:`Пропеллеры`,camera:`Камера`,flight_controller:`Полётный контроллер`,vtx:`Видеопередатчик`,gps_module:`GPS-модуль`,radio_link:`Радиосвязь`,receiver:`Приёмник`,video_system:`Видеосистема`,power_module:`Питание`,flight_time:`Время полёта`,firmware:`Прошивка`,firmware_target:`Цель прошивки`,notes:`Заметки`,photos:`Фото`}},drone_battery:{label:`Аккумулятор дрона`,fields:{brand:`Производитель`,charger:`Зарядное устройство`,cells:`Количество ячеек`,capacity:`Ёмкость`,c_rate:`C-рейтинг`,auw:`AUW (вес в полёте)`}},drone_vtx:{label:`Видеопередатчик (VTX)`,fields:{input_voltage:`Входное напряжение`,output_power:`Мощность`,protocol:`Протокол`,antenna_interface:`Антенный разъём`,channel_count:`Каналов`,mounting:`Крепление`,built_in_microphone:`Встроенный микрофон`,frequency_groups:`Группы частот`,output_power_levels:`Уровни мощности (детали)`}},drone_goggles:{label:`FPV-очки`,fields:{display_size:`Дисплей`,display_resolution:`Разрешение`,display_brightness:`Яркость`,view_angle:`Угол обзора`,antenna:`Антенна`,frequency_bands:`Радиодиапазоны`,battery:`Аккумулятор`,battery_life:`Время работы`,charging:`Зарядка`,band_channels:`Каналы диапазонов (частоты)`}},drone_gps:{label:`GPS-модуль дрона`,fields:{gnss_chip:`GNSS чип`,compass_chip:`Компас`,barometer:`Барометр`,interface:`Интерфейс`,input_voltage:`Входное напряжение`,update_rate_hz:`Частота обновления (Гц)`,receiving_channels:`Каналов приёма`,supported_protocols:`Протоколы`,baud_rates:`Baud rates`,satellite_systems:`Спутниковые системы`}},drone_flight_controller:{label:`Полётный контроллер`,fields:{mcu:`MCU`,gyro:`Гироскоп`,barometer:`Барометр`,osd_chip:`OSD-чип`,blackbox:`Blackbox`,bluetooth:`Bluetooth`,wifi:`Wi-Fi`,current_sensor_input:`Датчик тока`,power_input:`Входное напряжение`,constant_current:`Постоянный ток`,peak_current:`Пиковый ток`,bec_5v:`BEC 5V`,bec_9v:`BEC 9V`,mounting:`Крепление`,uart_count:`UART портов`,supported_firmware:`Поддерживаемые прошивки`,firmware_target:`Цель прошивки`,build_role:`Роль в сборке`}},contrib:{type:{fpv_controller:`FPV контроллер`,fpv_camera:`FPV камера`}}},gi={drone:hi},_i=e({default:()=>yi,drone:()=>vi}),vi={plugin:{label:`Дрони`,description:`FPV-дрони та їхні компоненти.`},drone:{label:`FPV-дрон`,fields:{frame_size:`Рама`,purpose:`Призначення`,motors:`Мотори`,props:`Пропелери`,camera:`Камера`,flight_controller:`Польотний контролер`,vtx:`Відеопередавач`,gps_module:`GPS-модуль`,radio_link:`Радіозв'язок`,receiver:`Приймач`,video_system:`Відеосистема`,power_module:`Живлення`,flight_time:`Час польоту`,firmware:`Прошивка`,firmware_target:`Ціль прошивки`,notes:`Нотатки`,photos:`Фото`}},drone_battery:{label:`Акумулятор дрона`,fields:{brand:`Виробник`,charger:`Зарядний пристрій`,cells:`Кількість комірок`,capacity:`Ємність`,c_rate:`C-рейтинг`,auw:`AUW (вага в польоті)`}},drone_vtx:{label:`Відеопередавач (VTX)`,fields:{input_voltage:`Вхідна напруга`,output_power:`Потужність`,protocol:`Протокол`,antenna_interface:`Антенний роз'єм`,channel_count:`Каналів`,mounting:`Кріплення`,built_in_microphone:`Вбудований мікрофон`,frequency_groups:`Групи частот`,output_power_levels:`Рівні потужності (деталі)`}},drone_goggles:{label:`FPV-окуляри`,fields:{display_size:`Дисплей`,display_resolution:`Роздільна здатність`,display_brightness:`Яскравість`,view_angle:`Кут огляду`,antenna:`Антена`,frequency_bands:`Радіосмуги`,battery:`Акумулятор`,battery_life:`Час роботи`,charging:`Зарядка`,band_channels:`Канали смуг (частоти)`}},drone_gps:{label:`GPS-модуль дрона`,fields:{gnss_chip:`GNSS чіп`,compass_chip:`Компас`,barometer:`Барометр`,interface:`Інтерфейс`,input_voltage:`Вхідна напруга`,update_rate_hz:`Частота оновлення (Гц)`,receiving_channels:`Каналів прийому`,supported_protocols:`Протоколи`,baud_rates:`Baud rates`,satellite_systems:`Супутникові системи`}},drone_flight_controller:{label:`Польотний контролер`,fields:{mcu:`MCU`,gyro:`Гіроскоп`,barometer:`Барометр`,osd_chip:`OSD-чіп`,blackbox:`Blackbox`,bluetooth:`Bluetooth`,wifi:`Wi-Fi`,current_sensor_input:`Датчик струму`,power_input:`Вхідна напруга`,constant_current:`Постійний струм`,peak_current:`Піковий струм`,bec_5v:`BEC 5V`,bec_9v:`BEC 9V`,mounting:`Кріплення`,uart_count:`UART портів`,supported_firmware:`Підтримувані прошивки`,firmware_target:`Ціль прошивки`,build_role:`Роль у збірці`}},contrib:{type:{fpv_controller:`FPV контролер`,fpv_camera:`FPV камера`}}},yi={drone:vi},bi=e({default:()=>Si,finance:()=>xi}),xi={plugin:{label:`Finance`,description:`Read-only mirror of Firefly III.`},presets:{bic:`Enter a valid BIC/SWIFT code (8 or 11 characters)`},library:{label:`Finance`},settings:{label:`Finance settings`,firefly_url:`Firefly III URL`,token:`Personal Access Token`,test_button:`Test connection`,sync_button:`Sync now`,wise_csv:`Wise CSV statement`,wise_account:`Import into account`,wise_import_button:`Import Wise`},account:{label:`Account`,fields:{kind:`Kind`,currency:`Currency`,current_balance:`Balance`,iban:`IBAN`,bank:`Bank`,bic:`BIC / SWIFT`,firefly_id:`Firefly ID`},options:{asset:`Asset`,expense:`Expense`,revenue:`Revenue`,liability:`Liability`,cash:`Cash`}},transaction:{label:`Transaction`,fields:{date:`Date`,amount:`Amount`,kind:`Kind`,description:`Description`,source:`Source`,destination:`Destination`,category:`Category`,firefly_id:`Firefly ID`},options:{withdrawal:`Withdrawal`,deposit:`Deposit`,transfer:`Transfer`}},bill:{label:`Bill`,fields:{amount_min:`Min amount`,amount_max:`Max amount`,repeat:`Repeat`,next_expected:`Next expected`,active:`Active`,firefly_id:`Firefly ID`},options:{weekly:`Weekly`,monthly:`Monthly`,quarterly:`Quarterly`,yearly:`Yearly`}},item_financing:{label:`Installment / credit`,fields:{creditor:`Creditor`,holder:`Registered to`,total:`Total amount`,downPayment:`Down payment`,monthly:`Monthly payment`,remaining:`Remaining`,termMonths:`Term, months`,paidMonths:`Paid, months`,rate:`Rate, %`,startDate:`Start date`,nextPayment:`Next payment`,paidOff:`Paid off`}}},Si={finance:xi},Ci=e({default:()=>Ti,finance:()=>wi}),wi={plugin:{label:`Финансы`,description:`Read-only зеркало Firefly III.`},presets:{bic:`Введите корректный BIC/SWIFT (8 или 11 символов)`},library:{label:`Финансы`},settings:{label:`Настройки финансов`,firefly_url:`URL Firefly III`,token:`Personal Access Token`,test_button:`Проверить соединение`,sync_button:`Синхронизировать`,wise_csv:`Wise CSV выписка`,wise_account:`Счёт для импорта`,wise_import_button:`Импортировать Wise`},account:{label:`Счёт`,fields:{kind:`Тип`,currency:`Валюта`,current_balance:`Баланс`,iban:`IBAN`,bank:`Банк`,bic:`BIC / SWIFT`,firefly_id:`Firefly ID`},options:{asset:`Актив`,expense:`Расходы`,revenue:`Доход`,liability:`Обязательство`,cash:`Наличные`}},transaction:{label:`Транзакция`,fields:{date:`Дата`,amount:`Сумма`,kind:`Тип`,description:`Описание`,source:`Откуда`,destination:`Куда`,category:`Категория`,firefly_id:`Firefly ID`},options:{withdrawal:`Расход`,deposit:`Поступление`,transfer:`Перевод`}},bill:{label:`Счёт к оплате`,fields:{amount_min:`Мин. сумма`,amount_max:`Макс. сумма`,repeat:`Периодичность`,next_expected:`Следующий`,active:`Активный`,firefly_id:`Firefly ID`},options:{weekly:`Еженедельно`,monthly:`Ежемесячно`,quarterly:`Ежеквартально`,yearly:`Ежегодно`}},item_financing:{label:`Рассрочка / кредит`,fields:{creditor:`Кому должны`,holder:`На кого оформлено`,total:`Сумма долга`,downPayment:`Первый взнос`,monthly:`Платёж/мес`,remaining:`Остаток долга`,termMonths:`Срок, мес`,paidMonths:`Оплачено, мес`,rate:`Ставка, %`,startDate:`Дата начала`,nextPayment:`Следующий платёж`,paidOff:`Погашено`}}},Ti={finance:wi},Ei=e({default:()=>Oi,finance:()=>Di}),Di={plugin:{label:`Фінанси`,description:`Read-only дзеркало Firefly III.`},presets:{bic:`Введіть коректний BIC/SWIFT (8 або 11 символів)`},library:{label:`Фінанси`},settings:{label:`Налаштування фінансів`,firefly_url:`URL Firefly III`,token:`Personal Access Token`,test_button:`Перевірити з'єднання`,sync_button:`Синхронізувати`,wise_csv:`Wise CSV виписка`,wise_account:`Рахунок для імпорту`,wise_import_button:`Імпортувати Wise`},account:{label:`Рахунок`,fields:{kind:`Тип`,currency:`Валюта`,current_balance:`Баланс`,iban:`IBAN`,bank:`Банк`,bic:`BIC / SWIFT`,firefly_id:`Firefly ID`},options:{asset:`Актив`,expense:`Витрати`,revenue:`Дохід`,liability:`Зобов'язання`,cash:`Готівка`}},transaction:{label:`Транзакція`,fields:{date:`Дата`,amount:`Сума`,kind:`Тип`,description:`Опис`,source:`Звідки`,destination:`Куди`,category:`Категорія`,firefly_id:`Firefly ID`},options:{withdrawal:`Видаток`,deposit:`Надходження`,transfer:`Переказ`}},bill:{label:`Рахунок до сплати`,fields:{amount_min:`Мін. сума`,amount_max:`Макс. сума`,repeat:`Періодичність`,next_expected:`Наступний`,active:`Активний`,firefly_id:`Firefly ID`},options:{weekly:`Щотижня`,monthly:`Щомісяця`,quarterly:`Щокварталу`,yearly:`Щороку`}},item_financing:{label:`Розстрочка / кредит`,fields:{creditor:`Кому винні`,holder:`На кого оформлено`,total:`Сума боргу`,downPayment:`Перший внесок`,monthly:`Платіж/міс`,remaining:`Залишок боргу`,termMonths:`Строк, міс`,paidMonths:`Сплачено, міс`,rate:`Ставка, %`,startDate:`Дата початку`,nextPayment:`Наступний платіж`,paidOff:`Погашено`}}},Oi={finance:Di},ki=e({default:()=>ji,garden:()=>Ai}),Ai={plugin:{label:`Garden`,description:`Plants and their care.`},library:{label:`Garden`},plant:{label:`Plant`,fields:{logo:`Photo`,variety:`Variety`,location:`Location`,sunlight:`Sunlight`,pot:`Pot / label`,planted:`Planted`,wateringDays:`Watering (days)`,lastWatered:`Last watered`,fertilizerDays:`Fertilizing (days)`,lastFertilized:`Last fertilized`,nextWatering:`Next watering`,nextFertilizing:`Next fertilizing`,notes:`Notes`,tags:`Tags`},actions:{watered:`Watered`,fertilized:`Fertilized`,done:`Done`,failed:`Update failed`},options:{location:{windowsill:`Windowsill`,balcony:`Balcony`,hanging:`Hanging`,floor:`Floor`,other:`Other`},sunlight:{shade:`Shade`,partial:`Partial shade`,indirect:`Indirect light`,direct:`Direct sun`}}},contrib:{type:{garden:`Garden`}}},ji={garden:Ai},Mi=e({default:()=>Pi,garden:()=>Ni}),Ni={plugin:{label:`Сад`,description:`Растения и уход за ними.`},library:{label:`Сад`},plant:{label:`Растение`,fields:{logo:`Фото`,variety:`Сорт`,location:`Место`,sunlight:`Освещённость`,pot:`Горшок / метка`,planted:`Посажено`,wateringDays:`Полив (дни)`,lastWatered:`Последний полив`,fertilizerDays:`Подкормка (дни)`,lastFertilized:`Последняя подкормка`,nextWatering:`Следующий полив`,nextFertilizing:`Следующая подкормка`,notes:`Заметки`,tags:`Теги`},actions:{watered:`Полил`,fertilized:`Подкормил`,done:`Готово`,failed:`Не удалось обновить`},options:{location:{windowsill:`Подоконник`,balcony:`Балкон`,hanging:`Подвесной`,floor:`Пол`,other:`Другое`},sunlight:{shade:`Тень`,partial:`Рассеянный свет`,indirect:`Непрямой свет`,direct:`Прямое солнце`}}},contrib:{type:{garden:`Сад / растения`}}},Pi={garden:Ni},Fi=e({default:()=>Li,garden:()=>Ii}),Ii={plugin:{label:`Сад`,description:`Рослини та догляд за ними.`},library:{label:`Сад`},plant:{label:`Рослина`,fields:{logo:`Фото`,variety:`Сорт`,location:`Місце`,sunlight:`Освітленість`,pot:`Горщик / мітка`,planted:`Посаджено`,wateringDays:`Полив (дні)`,lastWatered:`Останній полив`,fertilizerDays:`Підживлення (дні)`,lastFertilized:`Останнє підживлення`,nextWatering:`Наступний полив`,nextFertilizing:`Наступне підживлення`,notes:`Нотатки`,tags:`Теги`},actions:{watered:`Полив`,fertilized:`Підживив`,done:`Готово`,failed:`Не вдалося`},options:{location:{windowsill:`Підвіконня`,balcony:`Балкон`,hanging:`Підвісний`,floor:`Підлога`,other:`Інше`},sunlight:{shade:`Тінь`,partial:`Розсіяне`,indirect:`Непряме`,direct:`Пряме сонце`}}},contrib:{type:{garden:`Сад / рослини`}}},Li={garden:Ii},Ri=e({default:()=>Bi,health:()=>zi}),zi={plugin:{label:`Health`,description:`Medicines, tests, visits and body metrics.`},library:{label:`Health`},dayPeriods:{any:`Any time`,before_breakfast:`Before breakfast`,with_breakfast:`With breakfast`,after_breakfast:`After breakfast`,with_food:`With food`,after_lunch:`After lunch`,evening:`In the evening`,before_bed:`Before bed`,as_needed:`As needed`},person_body:{label:`Anthropometry`,fields:{weightKg:`Weight (kg)`,heightCm:`Height (cm)`,bloodGroup:`Blood group`,allergies:`Allergies`}},medicine:{label:`Medicine`,fields:{photo:`Photo`,quantity:`Quantity`,quantityCheckedAt:`Last quantity check date`,description:`Description`,dose:`Dose by day (Mon–Sun)`,dose_person:`Person`,dose_value:`Dose by day (Mon–Sun)`,intakeTimes:`Intake time`,intakePeriods:`Intake courses`,form:`Form`},options:{type:{vitamin:`Vitamin`,supplement:`Supplement`,medication:`Medication`,antibiotic:`Antibiotic`,hormone:`Hormonal`,painkiller:`Painkiller`,homeopathy:`Homeopathy`,herbal:`Herbal`},form:{tablet:`Tablets`,capsule:`Capsules`,syrup:`Syrup`,drops:`Drops`,ointment:`Ointment`,gel:`Gel`,spray:`Spray`,injection:`Injection`,powder:`Powder`,suppository:`Suppositories`}}},health_test:{label:`Test / examination`,fields:{date:`Date`,clinic:`Clinic / laboratory`,status:`Status`,test_type:`Test type`,person:`Patient`,result:`Result`,attachments:`Documents`},options:{status:{ordered:`Ordered`,completed:`Completed`,cancelled:`Cancelled`},test_type:{blood:`Blood test`,urine:`Urine test`,ultrasound:`Ultrasound`,xray:`X-Ray`,mri:`MRI/CT`,other:`Other`}}},settings:{label:`Sync settings`,caldav_calendar:`Calendar URL`,caldav_url:`CalDAV server URL`,caldav_username:`Username`,caldav_password:`Password`,time_any:`Time: anytime`,time_before_breakfast:`Time: before breakfast`,time_with_breakfast:`Time: with breakfast`,time_after_breakfast:`Time: after breakfast`,time_with_food:`Time: with food`,time_after_lunch:`Time: after lunch`,time_evening:`Time: evening`,time_before_bed:`Time: before bed`},health_visit:{label:`Doctor visit`,fields:{date:`Date`,specialist:`Doctor`,specialty:`Specialty`,clinic:`Clinic`,person:`Patient`,reason:`Reason`,result:`Result / diagnosis`,next_step:`Next steps`,cost:`Cost`,photos:`Photos`,files:`Documents`,medicines:`Medicines`,nextVisit:`Next visit`}}},Bi={health:zi},Vi=e({default:()=>Ui,health:()=>Hi}),Hi={plugin:{label:`Здоровье`,description:`Препараты, анализы, визиты и антропометрия.`},library:{label:`Здоровье`},dayPeriods:{any:`В любое время`,before_breakfast:`До завтрака`,with_breakfast:`Во время завтрака`,after_breakfast:`После завтрака`,with_food:`Во время еды`,after_lunch:`После обеда`,evening:`Вечером`,before_bed:`Перед сном`,as_needed:`По необходимости`},person_body:{label:`Антропометрия`,fields:{weightKg:`Вес (кг)`,heightCm:`Рост (см)`,bloodGroup:`Группа крови`,allergies:`Аллергии`}},medicine:{label:`Препарат`,fields:{photo:`Фото`,quantity:`Количество`,quantityCheckedAt:`Дата последней проверки количества`,description:`Описание`,dose:`Доза по дням (пн–вс)`,dose_person:`Человек`,dose_value:`Доза по дням (пн–вс)`,intakeTimes:`Время приёма`,intakePeriods:`Курсы приёма`,form:`Форма выпуска`},options:{type:{vitamin:`Витамин`,supplement:`Добавка / БАД`,medication:`Лекарство`,antibiotic:`Антибиотик`,hormone:`Гормональный`,painkiller:`Обезболивающее`,homeopathy:`Гомеопатия`,herbal:`Растительный препарат`},form:{tablet:`Таблетки`,capsule:`Капсулы`,syrup:`Сироп`,drops:`Капли`,ointment:`Мазь`,gel:`Гель`,spray:`Спрей`,injection:`Инъекция`,powder:`Порошок`,suppository:`Свечи`}}},health_test:{label:`Анализ / обследование`,fields:{date:`Дата`,clinic:`Клиника / лаборатория`,status:`Статус`,test_type:`Тип обследования`,person:`Пациент`,result:`Результат`,attachments:`Документы`},options:{status:{ordered:`Заказано`,completed:`Выполнено`,cancelled:`Отменено`},test_type:{blood:`Кровь`,urine:`Моча`,ultrasound:`УЗИ`,xray:`Рентген`,mri:`МРТ/КТ`,other:`Другое`}}},settings:{label:`Настройки синхронизации`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Имя пользователя`,caldav_password:`Пароль`,time_any:`Время: в любое время`,time_before_breakfast:`Время: до завтрака`,time_with_breakfast:`Время: во время завтрака`,time_after_breakfast:`Время: после завтрака`,time_with_food:`Время: во время еды`,time_after_lunch:`Время: после обеда`,time_evening:`Время: вечером`,time_before_bed:`Время: перед сном`},health_visit:{label:`Визит к врачу`,fields:{date:`Дата`,specialist:`Врач`,specialty:`Специализация`,clinic:`Клиника`,person:`Пациент`,reason:`Причина`,result:`Результат / диагноз`,next_step:`Следующие шаги`,cost:`Стоимость`,photos:`Фотографии`,files:`Документы`,medicines:`Препараты`,nextVisit:`Следующий визит`}}},Ui={health:Hi},Wi=e({default:()=>Ki,health:()=>Gi}),Gi={plugin:{label:`Здоров’я`,description:`Препарати, аналізи, візити та антропометрія.`},library:{label:`Здоров'я`},dayPeriods:{any:`Будь-коли`,before_breakfast:`До сніданку`,with_breakfast:`Під час сніданку`,after_breakfast:`Після сніданку`,with_food:`Під час їжі`,after_lunch:`Після обіду`,evening:`Ввечері`,before_bed:`Перед сном`,as_needed:`За потреби`},person_body:{label:`Антропометрія`,fields:{weightKg:`Вага (кг)`,heightCm:`Зріст (см)`,bloodGroup:`Група крові`,allergies:`Алергії`}},medicine:{label:`Препарат`,fields:{photo:`Фото`,quantity:`Кількість`,quantityCheckedAt:`Дата останньої перевірки кількості`,description:`Опис`,dose:`Доза по днях (пн–нд)`,dose_person:`Особа`,dose_value:`Доза по днях (пн–нд)`,intakeTimes:`Час прийому`,intakePeriods:`Курси прийому`,form:`Форма випуску`},options:{type:{vitamin:`Вітамін`,supplement:`Добавка / БАД`,medication:`Ліки`,antibiotic:`Антибіотик`,hormone:`Гормональний`,painkiller:`Знеболювальне`,homeopathy:`Гомеопатія`,herbal:`Рослинний препарат`},form:{tablet:`Таблетки`,capsule:`Капсули`,syrup:`Сироп`,drops:`Краплі`,ointment:`Мазь`,gel:`Гель`,spray:`Спрей`,injection:`Ін'єкція`,powder:`Порошок`,suppository:`Свічки`}}},health_test:{label:`Аналіз / обстеження`,fields:{date:`Дата`,clinic:`Клініка / лабораторія`,status:`Статус`,test_type:`Тип обстеження`,person:`Пацієнт`,result:`Результат`,attachments:`Документи`},options:{status:{ordered:`Замовлено`,completed:`Виконано`,cancelled:`Скасовано`},test_type:{blood:`Кров`,urine:`Сеча`,ultrasound:`УЗД`,xray:`Рентген`,mri:`МРТ/КТ`,other:`Інше`}}},settings:{label:`Налаштування синхронізації`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Ім'я користувача`,caldav_password:`Пароль`,time_any:`Час: будь-коли`,time_before_breakfast:`Час: до сніданку`,time_with_breakfast:`Час: під час сніданку`,time_after_breakfast:`Час: після сніданку`,time_with_food:`Час: під час їжі`,time_after_lunch:`Час: після обіду`,time_evening:`Час: ввечері`,time_before_bed:`Час: перед сном`},health_visit:{label:`Візит до лікаря`,fields:{date:`Дата`,specialist:`Лікар`,specialty:`Спеціалізація`,clinic:`Клініка`,person:`Пацієнт`,reason:`Причина`,result:`Результат / діагноз`,next_step:`Наступні кроки`,cost:`Вартість`,photos:`Фотографії`,files:`Документи`,medicines:`Препарати`,nextVisit:`Наступний візит`}}},Ki={health:Gi},qi=e({default:()=>Yi,home:()=>Ji}),Ji={plugin:{label:`Home`,description:`Utility meter readings and household.`},library:{label:`Home`},meter_reading:{label:`Meter readings`,fields:{date:`Reading date`,cold_water:`Cold water, m³`,hot_water:`Hot water, m³`,electricity:`Electricity, kWh`,gas:`Gas, m³`,note:`Note`}},room:{label:`Room`,fields:{area:`Area`,note:`Note`}},material:{label:`Material`,group:{identity:`Identification`,purchase:`Purchase`,media:`Photos & notes`},fields:{brand:`Brand`,color:`Color`,color_code:`Color code (RAL/NCS)`,rooms:`Used in`,price:`Price`,quantity:`Quantity`,store:`Store`,bought_date:`Purchase date`,link:`Product link`,photo:`Photo`,rating:`Rating`,notes:`Notes`},options:{type:{paint:`Paint`,primer:`Primer`,lacquer:`Lacquer`,enamel:`Enamel`,plaster:`Plaster`,tile:`Tile`,laminate:`Laminate`,wallpaper:`Wallpaper`,skirting:`Skirting`,panel:`Panels`,putty:`Putty`,glue:`Glue`,cement:`Cement`,drywall:`Drywall`,insulation:`Insulation`,fixture:`Fixture`,plumbing:`Plumbing`,other:`Other`}}}},Yi={home:Ji},Xi=e({default:()=>Qi,home:()=>Zi}),Zi={plugin:{label:`Дом`,description:`Показания счётчиков и быт.`},library:{label:`Дом`},meter_reading:{label:`Показания счётчиков`,fields:{date:`Дата снятия`,cold_water:`Холодная вода, м³`,hot_water:`Горячая вода, м³`,electricity:`Электричество, кВт·ч`,gas:`Газ, м³`,note:`Примечание`}},room:{label:`Комната`,fields:{area:`Площадь`,note:`Примечание`}},material:{label:`Материал`,group:{identity:`Идентификация`,purchase:`Покупка`,media:`Фото и заметки`},fields:{brand:`Производитель`,color:`Цвет`,color_code:`Код цвета (RAL/NCS)`,rooms:`Где использовано`,price:`Цена`,quantity:`Количество`,store:`Магазин`,bought_date:`Дата покупки`,link:`Ссылка на товар`,photo:`Фото`,rating:`Оценка`,notes:`Заметки`},options:{type:{paint:`Краска`,primer:`Грунтовка`,lacquer:`Лак`,enamel:`Эмаль`,plaster:`Штукатурка`,tile:`Плитка`,laminate:`Ламинат`,wallpaper:`Обои`,skirting:`Плинтус`,panel:`Панели`,putty:`Шпаклёвка`,glue:`Клей`,cement:`Цемент`,drywall:`Гипсокартон`,insulation:`Изоляция`,fixture:`Фурнитура`,plumbing:`Сантехника`,other:`Другое`}}}},Qi={home:Zi},$i=e({default:()=>ta,home:()=>ea}),ea={plugin:{label:`Дім`,description:`Показники лічильників та побут.`},library:{label:`Дім`},meter_reading:{label:`Показники лічильників`,fields:{date:`Дата зняття`,cold_water:`Холодна вода, м³`,hot_water:`Гаряча вода, м³`,electricity:`Електрика, кВт·год`,gas:`Газ, м³`,note:`Примітка`}},room:{label:`Кімната`,fields:{area:`Площа`,note:`Примітка`}},material:{label:`Матеріал`,group:{identity:`Ідентифікація`,purchase:`Купівля`,media:`Фото та нотатки`},fields:{brand:`Виробник`,color:`Колір`,color_code:`Код кольору (RAL/NCS)`,rooms:`Де використано`,price:`Ціна`,quantity:`Кількість`,store:`Магазин`,bought_date:`Дата купівлі`,link:`Посилання на товар`,photo:`Фото`,rating:`Оцінка`,notes:`Нотатки`},options:{type:{paint:`Фарба`,primer:`Ґрунтовка`,lacquer:`Лак`,enamel:`Емаль`,plaster:`Штукатурка`,tile:`Плитка`,laminate:`Ламінат`,wallpaper:`Шпалери`,skirting:`Плінтус`,panel:`Панелі`,putty:`Шпаклівка`,glue:`Клей`,cement:`Цемент`,drywall:`Гіпсокартон`,insulation:`Ізоляція`,fixture:`Фурнітура`,plumbing:`Сантехніка`,other:`Інше`}}}},ta={home:ea},na=e({default:()=>ia,http:()=>ra}),ra={plugin:{label:`HTTP connector`,description:`HTTP connector — POST a message to the agent (localhost only).`},settings:{label:`HTTP connector settings`,port:`Port`,access_password:`Access password`}},ia={http:ra},aa=e({default:()=>sa,http:()=>oa}),oa={plugin:{label:`HTTP-коннектор`,description:`HTTP-коннектор — отправьте сообщение агенту (только localhost).`},settings:{label:`Настройки HTTP-коннектора`,port:`Порт`,access_password:`Пароль доступа`}},sa={http:oa},ca=e({default:()=>ua,http:()=>la}),la={plugin:{label:`HTTP-конектор`,description:`HTTP-конектор — надішліть повідомлення агенту (лише localhost).`},settings:{label:`Налаштування HTTP-конектора`,port:`Порт`,access_password:`Пароль доступу`}},ua={http:la},da=e({default:()=>pa,kitchen:()=>fa}),fa={plugin:{label:`Kitchen`,description:`Food items and recipes.`},library:{label:`Kitchen`},food_item:{label:`Product`,fields:{logo:`Photo`,description:`Notes`,subcategory:`Category`,quantity:`Quantity`,minQuantity:`Minimum stock`,expires:`Expiry date`,location:`Storage location`,brand:`Brand`,tags:`Tags`}},food_recipe:{label:`Recipe`,fields:{images:`Photos`,description:`Description`,servings:`Servings`,difficulty:`Difficulty`,category:`Category`,tags:`Tags`,prep_time:`Prep time`,cook_time:`Cook time`,ingredients:`Ingredients`,steps:`Preparation`,comment:`Comment`},options:{difficulty:{easy:`Easy`,medium:`Medium`,hard:`Hard`},category:{first:`First course`,main:`Main course`,salad:`Salad`,appetizer:`Appetizer`,side:`Side dish`,dessert:`Dessert`,drink:`Drink`,sauce:`Sauce`}},ingredient:{product:`Product`,amount:`Amount`,stock:`Stock`}},contrib:{type:{kitchenware:`Kitchenware`}}},pa={kitchen:fa},ma=e({default:()=>ga,kitchen:()=>ha}),ha={plugin:{label:`Кухня`,description:`Продукты и рецепты.`},library:{label:`Кухня`},food_item:{label:`Продукт`,fields:{logo:`Фото`,description:`Заметки`,subcategory:`Категория`,quantity:`Количество`,minQuantity:`Минимальный запас`,expires:`Срок годности`,location:`Место хранения`,brand:`Бренд`,tags:`Теги`}},food_recipe:{label:`Рецепт`,fields:{images:`Фото`,description:`Описание`,servings:`Порций`,difficulty:`Сложность`,category:`Категория`,tags:`Теги`,prep_time:`Время подготовки`,cook_time:`Время приготовления`,ingredients:`Ингредиенты`,steps:`Приготовление`,comment:`Комментарий`},options:{difficulty:{easy:`Легко`,medium:`Средне`,hard:`Сложно`},category:{first:`Первое`,main:`Второе`,salad:`Салат`,appetizer:`Закуска`,side:`Гарнир`,dessert:`Десерт`,drink:`Напиток`,sauce:`Соус`}},ingredient:{product:`Продукт`,amount:`Количество`,stock:`Наличие`}},contrib:{type:{kitchenware:`Посуда / утварь`}}},ga={kitchen:ha},_a=e({default:()=>ya,kitchen:()=>va}),va={plugin:{label:`Кухня`,description:`Продукти та рецепти.`},library:{label:`Кухня`},food_item:{label:`Продукт`,fields:{logo:`Фото`,description:`Нотатки`,subcategory:`Категорія`,quantity:`Кількість`,minQuantity:`Мінімальний запас`,expires:`Термін придатності`,location:`Місце зберігання`,brand:`Бренд`,tags:`Теги`}},food_recipe:{label:`Рецепт`,fields:{images:`Фото`,description:`Опис`,servings:`Порцій`,difficulty:`Складність`,category:`Категорія`,tags:`Теги`,prep_time:`Час підготовки`,cook_time:`Час приготування`,ingredients:`Інгредієнти`,steps:`Приготування`,comment:`Коментар`},options:{difficulty:{easy:`Легко`,medium:`Середньо`,hard:`Складно`},category:{first:`Перше`,main:`Друге`,salad:`Салат`,appetizer:`Закуска`,side:`Гарнір`,dessert:`Десерт`,drink:`Напій`,sauce:`Соус`}},ingredient:{product:`Продукт`,amount:`Кількість`,stock:`Наявність`}},contrib:{type:{kitchenware:`Посуд / начиння`}}},ya={kitchen:va},ba=e({default:()=>Sa,lab:()=>xa}),xa={plugin:{label:`Lab`,description:`Field-type demos and experiments.`},library:{label:`Laboratory`},settings:{label:`Lab settings`,intro:`## Demo settings
|
|
38
38
|
|
|
39
39
|
This page is an example of a plugin settings page. Values below are stored as a **single** settings record. Edit a field, save — and it persists.`,fields:{greeting:`Greeting text`,enabled:`Feature enabled`,mode:`Mode`,retries:`Retry count (0–10)`},modes:{fast:`Fast`,safe:`Safe`,debug:`Debug`},actions_info:`### Actions
|
|
40
40
|
|
|
41
|
-
Buttons below trigger registered actions. The first succeeds after a short delay; the second deliberately fails to show error handling.`,run_button:`Run demo action`,fail_button:`Run failing action`,variants:{default:`Primary`,secondary:`Secondary`,ghost:`Ghost`,link:`Link`}},field_demo:{label:`Field Demo`,fields:{image:`Image — single photo`,avatar:`Avatar — single (big circle)`,cover:`Cover — hero (single)`,text_plain:`Text — plain`,text_minmax:`Text — min/max + in table`,text_pattern:`Text — pattern (letters only)`,text_multiline:`Text — multiline`,text_email:`Text — format: email`,text_emails:`Text — format: email + multiple`,text_url:`Text — format: url`,text_tel:`Text — format: tel`,text_password:`Text — format: password`,imei:`IMEI — pattern (15 digits)`,mac:`MAC — pattern (XX:XX:XX:XX:XX:XX)`,iban:`IBAN — pattern (account)`,textarea:`Textarea`,small_text:`Small text (scalar textarea)`,markdown:`Markdown (WYSIWYG)`,code:`Code — monospace editor (yaml)`,number_int:`Number — integer (int)`,number_decimal:`Number — decimal`,integer:`Integer (min/max)`,rating_5:`Rating — 5 stars`,rating_10:`Rating — 10 stars`,date:`Date`,date_future:`Date — future only`,time_field:`Time (HH:MM)`,datetime:`Datetime`,datetimes_multi:`Datetime — multiple`,boolean:`Boolean (checkbox)`,select:`Select`,select_multi:`Select — multiple`,day_period:`Day-period (intake time)`,day_period_multi:`Day-period — multiple`,country:`Country (with flag)`,country_multi:`Country — multiple`,tags_field:`Tags (with suggestions)`,demo_check:`Check (single)`,demo_check_multi:`Check (multiple)`,demo_check_stages:`Delivery (stages)`,stage_ordered:`Ordered`,stage_paid:`Paid`,stage_shipped:`Shipped`,color_hex:`Color — hex (#RRGGBB)`,color_multi:`Color — multiple`,color_name:`ColorName (CSS name)`,duration_short:`Duration (min, step 5)`,measured_currency:`Measured — currency`,measured_weight:`Measured — weight`,measured_custom:`Measured — custom units`,demo_reminder:`Reminder`,demo_weight:`Weight`,demo_dimensions:`Dimensions`,demo_datasize:`Data size`,demo_ram:`RAM`,demo_disk:`Disk size`,demo_weekday:`Weekday`,demo_weekdays:`Weekdays — multiple`,ip_addr:`IP address`,ip_addrs:`IP addresses — multiple`,cidr_subnet:`CIDR (subnet)`,numbers_multi:`Number — multiple`,dates_multi:`Date — multiple`,row_single:`Row — single`,variants:`Per-row — language (name/surname by language)`,row_ingredients:`Row — ingredients (relation+measured+lookup)`,relation_single:`Relation — single record`,relation_multi:`Relation — multiple records`,coll_text:`Collection — text`,coll_integer:`Collection — integer`,coll_select:`Collection — select`,pp_person:`Person`,pp_value:`Value`,per_weekday:`Per-weekday (7 slots)`,per_weekday_per_person:`Per-weekday + per-record (by person)`,image_gallery:`Image — gallery (multiple)`,avatar_row:`Avatar — row (multiple)`,cover_carousel:`Cover — carousel (multiple)`,json:`JSON`,key_value:`Key-value — multiple pairs`,key_value_secret:`Key-value — secret (one pair)`,services_bylist:`Services (collection over static list)`,type:`Type (classifier → extends)`,periods:`Periods (date ranges)`,button_demo:`Button — demo action (lab.demoAction)`,price:`Price`,ageRange:`Age range`,tempRange:`Temperature range`,agree:`Agree`,origin:`Country of origin`,birthYear:`Birth year`,attachment:`Attachment`,doc:`Document`,voice:`Voice note`,clip:`Video clip`,gallery:`Media gallery`,place:`Location`,compact_note:`Compact note (no edit control)`,snippet_struct:`Code (with language)`,embed_wide:`Embed — wide (multiple)`,embed_narrow:`Embed — narrow (multiple)`,perkey_fixed:`Fixed perKey — qty per size`},options:{select:{red:`Red`,green:`Green`,blue:`Blue`},pp_select:{s:`S`,m:`M`,l:`L`},type:{basic:`Basic`,advanced:`Advanced`},env:{dev:`Development`,prod:`Production`},size:{s:`S`,m:`M`,l:`L`}},per_row:{name:`First name`,surname:`Last name`,url:`URL`,token:`Token`,env:`Environment`,lang:`Language`,product:`Product`,amount:`Amount`,stock:`Stock`,size:`Size`,qty:`Qty`},units:{shot:`shot`,scoop:`measuring spoon`},groups:{demo:`Text fields`},validation:{letters_only:`Letters only`},info:{intro:`Demonstration shelf of all platform field types. Fill in the fields below to see them in action.`},actions:{scan_done:`Found {{count}} devices`,fail_title:`Action failed`,fail_body:`Server returned an error (code {{code}})`}},field_demo_child:{label:`Child Record`,fields:{demo_id:`Parent demo UUID`,note:`Note`}},demo_extra:{label:`Extended fields (extend)`,fields:{extra_text:`Additional text`,extra_number:`Additional number`,extra_flag:`Additional flag`}}},
|
|
41
|
+
Buttons below trigger registered actions. The first succeeds after a short delay; the second deliberately fails to show error handling.`,run_button:`Run demo action`,fail_button:`Run failing action`,variants:{default:`Primary`,secondary:`Secondary`,ghost:`Ghost`,link:`Link`}},field_demo:{label:`Field Demo`,fields:{image:`Image — single photo`,avatar:`Avatar — single (big circle)`,cover:`Cover — hero (single)`,text_plain:`Text — plain`,text_minmax:`Text — min/max + in table`,text_pattern:`Text — pattern (letters only)`,text_multiline:`Text — multiline`,text_email:`Text — format: email`,text_emails:`Text — format: email + multiple`,text_url:`Text — format: url`,text_tel:`Text — format: tel`,text_password:`Text — format: password`,imei:`IMEI — pattern (15 digits)`,mac:`MAC — pattern (XX:XX:XX:XX:XX:XX)`,iban:`IBAN — pattern (account)`,textarea:`Textarea`,small_text:`Small text (scalar textarea)`,markdown:`Markdown (WYSIWYG)`,code:`Code — monospace editor (yaml)`,number_int:`Number — integer (int)`,number_decimal:`Number — decimal`,integer:`Integer (min/max)`,rating_5:`Rating — 5 stars`,rating_10:`Rating — 10 stars`,date:`Date`,date_future:`Date — future only`,time_field:`Time (HH:MM)`,datetime:`Datetime`,datetimes_multi:`Datetime — multiple`,boolean:`Boolean (checkbox)`,select:`Select`,select_multi:`Select — multiple`,day_period:`Day-period (intake time)`,day_period_multi:`Day-period — multiple`,country:`Country (with flag)`,country_multi:`Country — multiple`,tags_field:`Tags (with suggestions)`,demo_check:`Check (single)`,demo_check_multi:`Check (multiple)`,demo_check_stages:`Delivery (stages)`,stage_ordered:`Ordered`,stage_paid:`Paid`,stage_shipped:`Shipped`,color_hex:`Color — hex (#RRGGBB)`,color_multi:`Color — multiple`,color_name:`ColorName (CSS name)`,duration_short:`Duration (min, step 5)`,measured_currency:`Measured — currency`,measured_weight:`Measured — weight`,measured_custom:`Measured — custom units`,demo_reminder:`Reminder`,demo_weight:`Weight`,demo_dimensions:`Dimensions`,demo_datasize:`Data size`,demo_ram:`RAM`,demo_disk:`Disk size`,demo_weekday:`Weekday`,demo_weekdays:`Weekdays — multiple`,ip_addr:`IP address`,ip_addrs:`IP addresses — multiple`,cidr_subnet:`CIDR (subnet)`,numbers_multi:`Number — multiple`,dates_multi:`Date — multiple`,row_single:`Row — single`,variants:`Per-row — language (name/surname by language)`,row_ingredients:`Row — ingredients (relation+measured+lookup)`,relation_single:`Relation — single record`,relation_multi:`Relation — multiple records`,coll_text:`Collection — text`,coll_integer:`Collection — integer`,coll_select:`Collection — select`,pp_person:`Person`,pp_value:`Value`,per_weekday:`Per-weekday (7 slots)`,per_weekday_per_person:`Per-weekday + per-record (by person)`,image_gallery:`Image — gallery (multiple)`,avatar_row:`Avatar — row (multiple)`,cover_carousel:`Cover — carousel (multiple)`,json:`JSON`,key_value:`Key-value — multiple pairs`,key_value_secret:`Key-value — secret (one pair)`,services_bylist:`Services (collection over static list)`,type:`Type (classifier → extends)`,periods:`Periods (date ranges)`,button_demo:`Button — demo action (lab.demoAction)`,price:`Price`,ageRange:`Age range`,tempRange:`Temperature range`,agree:`Agree`,origin:`Country of origin`,birthYear:`Birth year`,attachment:`Attachment`,doc:`Document`,voice:`Voice note`,clip:`Video clip`,gallery:`Media gallery`,place:`Location`,compact_note:`Compact note (no edit control)`,snippet_struct:`Code (with language)`,embed_wide:`Embed — wide (multiple)`,embed_narrow:`Embed — narrow (multiple)`,perkey_fixed:`Fixed perKey — qty per size`},options:{select:{red:`Red`,green:`Green`,blue:`Blue`},pp_select:{s:`S`,m:`M`,l:`L`},type:{basic:`Basic`,advanced:`Advanced`},env:{dev:`Development`,prod:`Production`},size:{s:`S`,m:`M`,l:`L`}},per_row:{name:`First name`,surname:`Last name`,url:`URL`,token:`Token`,env:`Environment`,lang:`Language`,product:`Product`,amount:`Amount`,stock:`Stock`,size:`Size`,qty:`Qty`},units:{shot:`shot`,scoop:`measuring spoon`},groups:{demo:`Text fields`},validation:{letters_only:`Letters only`},info:{intro:`Demonstration shelf of all platform field types. Fill in the fields below to see them in action.`},actions:{scan_done:`Found {{count}} devices`,fail_title:`Action failed`,fail_body:`Server returned an error (code {{code}})`}},field_demo_child:{label:`Child Record`,fields:{demo_id:`Parent demo UUID`,note:`Note`}},demo_extra:{label:`Extended fields (extend)`,fields:{extra_text:`Additional text`,extra_number:`Additional number`,extra_flag:`Additional flag`}}},Sa={lab:xa},Ca=e({default:()=>Ta,lab:()=>wa}),wa={plugin:{label:`Лаборатория`,description:`Демо и эксперименты с типами полей.`},library:{label:`Лаборатория`},settings:{label:`Настройки лаборатории`,intro:`## Демо-настройки
|
|
42
42
|
|
|
43
43
|
Эта страница — пример страницы настроек плагина. Значения ниже хранятся как **единственная** запись настроек. Измени поле, сохрани — и оно сохранится.`,fields:{greeting:`Текст приветствия`,enabled:`Функция включена`,mode:`Режим`,retries:`Число повторов (0–10)`},modes:{fast:`Быстрый`,safe:`Безопасный`,debug:`Отладка`},actions_info:`### Действия
|
|
44
44
|
|
|
45
|
-
Кнопки ниже запускают зарегистрированные действия. Первая завершается успехом после короткой задержки; вторая намеренно падает, чтобы показать обработку ошибок.`,run_button:`Запустить демо-действие`,fail_button:`Запустить действие с ошибкой`,variants:{default:`Основная`,secondary:`Второстепенная`,ghost:`Призрак`,link:`Ссылка`}},field_demo:{label:`Демо полей`,fields:{image:`Image — одно фото`,avatar:`Аватар — одно (большой круг)`,cover:`Обложка — hero (одно)`,text_plain:`Text — обычный`,text_minmax:`Text — min/max + в таблице`,text_pattern:`Text — pattern (только буквы)`,text_multiline:`Text — многострочный`,text_email:`Text — format: email`,text_emails:`Text — format: email + multiple`,text_url:`Text — format: url`,text_tel:`Text — format: tel`,text_password:`Text — format: password`,imei:`IMEI — pattern (15 цифр)`,mac:`MAC — pattern (XX:XX:XX:XX:XX:XX)`,iban:`IBAN — pattern (счёт)`,textarea:`Textarea`,small_text:`Малый текст (scalar textarea)`,markdown:`Markdown (WYSIWYG)`,code:`Code — моноширинный редактор (yaml)`,number_int:`Number — целое (int)`,number_decimal:`Number — дробное`,integer:`Integer (min/max)`,rating_5:`Rating — 5 звёзд`,rating_10:`Rating — 10 звёзд`,date:`Дата`,date_future:`Дата — только будущее`,time_field:`Time (HH:MM)`,datetime:`Datetime`,datetimes_multi:`Datetime — multiple`,boolean:`Boolean (checkbox)`,select:`Select`,select_multi:`Select — multiple`,day_period:`Day-period (время приёма)`,day_period_multi:`Day-period — multiple`,country:`Country (с флагом)`,country_multi:`Country — multiple`,tags_field:`Tags (с подсказками)`,demo_check:`Check (один)`,demo_check_multi:`Check (несколько)`,demo_check_stages:`Доставка (этапы)`,stage_ordered:`Заказано`,stage_paid:`Оплачено`,stage_shipped:`Доставлено`,color_hex:`Color — hex (#RRGGBB)`,color_multi:`Color — multiple`,color_name:`ColorName (CSS-название)`,duration_short:`Duration (мин, шаг 5)`,measured_currency:`Measured — валюта`,measured_weight:`Measured — вес`,measured_custom:`Measured — custom единицы`,demo_reminder:`Напоминание`,demo_weight:`Вес`,demo_dimensions:`Габариты`,demo_datasize:`Объём данных`,demo_ram:`Оперативная память`,demo_disk:`Объём диска`,demo_weekday:`День недели`,demo_weekdays:`Дни недели — multiple`,ip_addr:`IP-адрес`,ip_addrs:`IP-адреса — multiple`,cidr_subnet:`CIDR (подсеть)`,numbers_multi:`Number — multiple`,dates_multi:`Date — multiple`,row_single:`Row — одна строка`,variants:`Per-row — language (имя/фамилия по языкам)`,row_ingredients:`Row — ингредиенты (relation+measured+lookup)`,relation_single:`Relation — одна запись`,relation_multi:`Relation — несколько записей`,coll_text:`Коллекция — text`,coll_integer:`Коллекция — integer`,coll_select:`Коллекция — select`,pp_person:`Человек`,pp_value:`Значение`,per_weekday:`Per-weekday (7 слотов)`,per_weekday_per_person:`Per-weekday + per-record (по людям)`,image_gallery:`Image — галерея (multiple)`,avatar_row:`Аватар — ряд (несколько)`,cover_carousel:`Обложка — карусель (несколько)`,json:`JSON`,key_value:`Key-value — несколько пар`,key_value_secret:`Key-value — секрет (одна пара)`,services_bylist:`Services (коллекция над статическим списком)`,type:`Type (классификатор → extends)`,periods:`Periods (диапазоны дат)`,button_demo:`Button — demo действие (lab.demoAction)`,price:`Цена`,ageRange:`Диапазон возраста`,tempRange:`Диапазон температуры`,agree:`Согласие`,origin:`Страна происхождения`,birthYear:`Год рождения`,attachment:`Вложение`,doc:`Документ`,voice:`Голосовая заметка`,clip:`Видеоклип`,gallery:`Медиагалерея`,place:`Местоположение`,compact_note:`Компактная заметка (без кнопок)`,snippet_struct:`Код (с языком)`,embed_wide:`Embed — широкий (multiple)`,embed_narrow:`Embed — узкий (multiple)`,perkey_fixed:`Fixed perKey — количество на размер`},options:{select:{red:`Красный`,green:`Зелёный`,blue:`Синий`},pp_select:{s:`S`,m:`M`,l:`L`},type:{basic:`Базовый`,advanced:`Расширенный`},env:{dev:`Разработка`,prod:`Продакшн`},size:{s:`S`,m:`M`,l:`L`}},per_row:{name:`Имя`,surname:`Фамилия`,url:`URL`,token:`Токен`,env:`Среда`,lang:`Язык`,product:`Продукт`,amount:`Количество`,stock:`Наличие`,size:`Размер`,qty:`Количество`},units:{shot:`шот`,scoop:`мерная ложка`},groups:{demo:`Текстовые поля`},validation:{letters_only:`Только буквы`},info:{intro:`Демонстрационная полка всех типов полей платформы. Заполните поля ниже, чтобы увидеть их в действии.`},actions:{scan_done:`Найдено {{count}} устройств`,fail_title:`Действие не выполнено`,fail_body:`Сервер вернул ошибку (код {{code}})`}},field_demo_child:{label:`Дочерняя запись`,fields:{demo_id:`UUID родительского демо`,note:`Заметка`}},demo_extra:{label:`Расширенные поля (extend)`,fields:{extra_text:`Дополнительный текст`,extra_number:`Дополнительное число`,extra_flag:`Дополнительный флажок`}}},
|
|
45
|
+
Кнопки ниже запускают зарегистрированные действия. Первая завершается успехом после короткой задержки; вторая намеренно падает, чтобы показать обработку ошибок.`,run_button:`Запустить демо-действие`,fail_button:`Запустить действие с ошибкой`,variants:{default:`Основная`,secondary:`Второстепенная`,ghost:`Призрак`,link:`Ссылка`}},field_demo:{label:`Демо полей`,fields:{image:`Image — одно фото`,avatar:`Аватар — одно (большой круг)`,cover:`Обложка — hero (одно)`,text_plain:`Text — обычный`,text_minmax:`Text — min/max + в таблице`,text_pattern:`Text — pattern (только буквы)`,text_multiline:`Text — многострочный`,text_email:`Text — format: email`,text_emails:`Text — format: email + multiple`,text_url:`Text — format: url`,text_tel:`Text — format: tel`,text_password:`Text — format: password`,imei:`IMEI — pattern (15 цифр)`,mac:`MAC — pattern (XX:XX:XX:XX:XX:XX)`,iban:`IBAN — pattern (счёт)`,textarea:`Textarea`,small_text:`Малый текст (scalar textarea)`,markdown:`Markdown (WYSIWYG)`,code:`Code — моноширинный редактор (yaml)`,number_int:`Number — целое (int)`,number_decimal:`Number — дробное`,integer:`Integer (min/max)`,rating_5:`Rating — 5 звёзд`,rating_10:`Rating — 10 звёзд`,date:`Дата`,date_future:`Дата — только будущее`,time_field:`Time (HH:MM)`,datetime:`Datetime`,datetimes_multi:`Datetime — multiple`,boolean:`Boolean (checkbox)`,select:`Select`,select_multi:`Select — multiple`,day_period:`Day-period (время приёма)`,day_period_multi:`Day-period — multiple`,country:`Country (с флагом)`,country_multi:`Country — multiple`,tags_field:`Tags (с подсказками)`,demo_check:`Check (один)`,demo_check_multi:`Check (несколько)`,demo_check_stages:`Доставка (этапы)`,stage_ordered:`Заказано`,stage_paid:`Оплачено`,stage_shipped:`Доставлено`,color_hex:`Color — hex (#RRGGBB)`,color_multi:`Color — multiple`,color_name:`ColorName (CSS-название)`,duration_short:`Duration (мин, шаг 5)`,measured_currency:`Measured — валюта`,measured_weight:`Measured — вес`,measured_custom:`Measured — custom единицы`,demo_reminder:`Напоминание`,demo_weight:`Вес`,demo_dimensions:`Габариты`,demo_datasize:`Объём данных`,demo_ram:`Оперативная память`,demo_disk:`Объём диска`,demo_weekday:`День недели`,demo_weekdays:`Дни недели — multiple`,ip_addr:`IP-адрес`,ip_addrs:`IP-адреса — multiple`,cidr_subnet:`CIDR (подсеть)`,numbers_multi:`Number — multiple`,dates_multi:`Date — multiple`,row_single:`Row — одна строка`,variants:`Per-row — language (имя/фамилия по языкам)`,row_ingredients:`Row — ингредиенты (relation+measured+lookup)`,relation_single:`Relation — одна запись`,relation_multi:`Relation — несколько записей`,coll_text:`Коллекция — text`,coll_integer:`Коллекция — integer`,coll_select:`Коллекция — select`,pp_person:`Человек`,pp_value:`Значение`,per_weekday:`Per-weekday (7 слотов)`,per_weekday_per_person:`Per-weekday + per-record (по людям)`,image_gallery:`Image — галерея (multiple)`,avatar_row:`Аватар — ряд (несколько)`,cover_carousel:`Обложка — карусель (несколько)`,json:`JSON`,key_value:`Key-value — несколько пар`,key_value_secret:`Key-value — секрет (одна пара)`,services_bylist:`Services (коллекция над статическим списком)`,type:`Type (классификатор → extends)`,periods:`Periods (диапазоны дат)`,button_demo:`Button — demo действие (lab.demoAction)`,price:`Цена`,ageRange:`Диапазон возраста`,tempRange:`Диапазон температуры`,agree:`Согласие`,origin:`Страна происхождения`,birthYear:`Год рождения`,attachment:`Вложение`,doc:`Документ`,voice:`Голосовая заметка`,clip:`Видеоклип`,gallery:`Медиагалерея`,place:`Местоположение`,compact_note:`Компактная заметка (без кнопок)`,snippet_struct:`Код (с языком)`,embed_wide:`Embed — широкий (multiple)`,embed_narrow:`Embed — узкий (multiple)`,perkey_fixed:`Fixed perKey — количество на размер`},options:{select:{red:`Красный`,green:`Зелёный`,blue:`Синий`},pp_select:{s:`S`,m:`M`,l:`L`},type:{basic:`Базовый`,advanced:`Расширенный`},env:{dev:`Разработка`,prod:`Продакшн`},size:{s:`S`,m:`M`,l:`L`}},per_row:{name:`Имя`,surname:`Фамилия`,url:`URL`,token:`Токен`,env:`Среда`,lang:`Язык`,product:`Продукт`,amount:`Количество`,stock:`Наличие`,size:`Размер`,qty:`Количество`},units:{shot:`шот`,scoop:`мерная ложка`},groups:{demo:`Текстовые поля`},validation:{letters_only:`Только буквы`},info:{intro:`Демонстрационная полка всех типов полей платформы. Заполните поля ниже, чтобы увидеть их в действии.`},actions:{scan_done:`Найдено {{count}} устройств`,fail_title:`Действие не выполнено`,fail_body:`Сервер вернул ошибку (код {{code}})`}},field_demo_child:{label:`Дочерняя запись`,fields:{demo_id:`UUID родительского демо`,note:`Заметка`}},demo_extra:{label:`Расширенные поля (extend)`,fields:{extra_text:`Дополнительный текст`,extra_number:`Дополнительное число`,extra_flag:`Дополнительный флажок`}}},Ta={lab:wa},Ea=e({default:()=>Oa,lab:()=>Da}),Da={plugin:{label:`Лабораторія`,description:`Демо й експерименти з типами полів.`},library:{label:`Лабораторія`},settings:{label:`Налаштування лабораторії`,intro:`## Демо-налаштування
|
|
46
46
|
|
|
47
47
|
Ця сторінка — приклад сторінки налаштувань плагіна. Значення нижче зберігаються як **єдиний** запис налаштувань. Зміни поле, збережи — і воно лишиться.`,fields:{greeting:`Текст привітання`,enabled:`Функцію ввімкнено`,mode:`Режим`,retries:`Кількість повторів (0–10)`},modes:{fast:`Швидкий`,safe:`Безпечний`,debug:`Налагодження`},actions_info:`### Дії
|
|
48
48
|
|
|
49
|
-
Кнопки нижче запускають зареєстровані дії. Перша завершується успіхом після короткої затримки; друга навмисно падає, щоб показати обробку помилок.`,run_button:`Запустити демо-дію`,fail_button:`Запустити дію з помилкою`,variants:{default:`Основна`,secondary:`Другорядна`,ghost:`Привид`,link:`Посилання`}},field_demo:{label:`Демо полів`,fields:{image:`Image — одне фото`,avatar:`Аватар — одне (велике коло)`,cover:`Обкладинка — hero (одне)`,text_plain:`Text — звичайний`,text_minmax:`Text — min/max + в таблиці`,text_pattern:`Text — pattern (лише літери)`,text_multiline:`Text — multiline`,text_email:`Text — format: email`,text_emails:`Text — format: email + multiple`,text_url:`Text — format: url`,text_tel:`Text — format: tel`,text_password:`Text — format: password`,imei:`IMEI — pattern (15 цифр)`,mac:`MAC — pattern (XX:XX:XX:XX:XX:XX)`,iban:`IBAN — pattern (рахунок)`,textarea:`Textarea`,small_text:`Малий текст (scalar textarea)`,markdown:`Markdown (WYSIWYG)`,code:`Code — моноширинний редактор (yaml)`,number_int:`Number — ціле (int)`,number_decimal:`Number — дробове`,integer:`Integer (min/max)`,rating_5:`Rating — 5 зірок`,rating_10:`Rating — 10 зірок`,date:`Date`,date_future:`Date — лише майбутнє`,time_field:`Time (HH:MM)`,datetime:`Datetime`,datetimes_multi:`Datetime — multiple`,boolean:`Boolean (checkbox)`,select:`Select`,select_multi:`Select — multiple`,day_period:`Day-period (час прийому)`,day_period_multi:`Day-period — multiple`,country:`Country (з прапором)`,country_multi:`Country — multiple`,tags_field:`Tags (з підказками)`,demo_check:`Check (один)`,demo_check_multi:`Check (кілька)`,demo_check_stages:`Доставка (етапи)`,stage_ordered:`Замовлено`,stage_paid:`Оплачено`,stage_shipped:`Доставлено`,color_hex:`Color — hex (#RRGGBB)`,color_multi:`Color — multiple`,color_name:`ColorName (CSS-назва)`,duration_short:`Duration (хв, крок 5)`,measured_currency:`Measured — валюта`,measured_weight:`Measured — вага`,measured_custom:`Measured — custom одиниці`,demo_reminder:`Нагадування`,demo_weight:`Вага`,demo_dimensions:`Габарити`,demo_datasize:`Обсяг даних`,demo_ram:`Оперативна пам'ять`,demo_disk:`Обсяг диску`,demo_weekday:`День тижня`,demo_weekdays:`Дні тижня — multiple`,ip_addr:`IP-адреса`,ip_addrs:`IP-адреси — multiple`,cidr_subnet:`CIDR (підмережа)`,numbers_multi:`Number — multiple`,dates_multi:`Date — multiple`,row_single:`Row — один рядок`,variants:`Per-row — language (ім'я/прізвище мовами)`,row_ingredients:`Row — інгредієнти (relation+measured+lookup)`,relation_single:`Relation — один запис`,relation_multi:`Relation — кілька записів`,coll_text:`Колекція — text`,coll_integer:`Колекція — integer`,coll_select:`Колекція — select`,pp_person:`Особа`,pp_value:`Значення`,per_weekday:`Per-weekday (7 слотів)`,per_weekday_per_person:`Per-weekday + per-record (по людях)`,image_gallery:`Image — галерея (multiple)`,avatar_row:`Аватар — ряд (кілька)`,cover_carousel:`Обкладинка — карусель (кілька)`,json:`JSON`,key_value:`Key-value — кілька пар`,key_value_secret:`Key-value — секрет (одна пара)`,services_bylist:`Services (колекція над статичним списком)`,type:`Type (класифікатор → extends)`,periods:`Periods (діапазони дат)`,button_demo:`Button — demo дія (lab.demoAction)`,price:`Ціна`,ageRange:`Діапазон віку`,tempRange:`Діапазон температури`,agree:`Згода`,origin:`Країна походження`,birthYear:`Рік народження`,attachment:`Вкладення`,doc:`Документ`,voice:`Голосова нотатка`,clip:`Відеокліп`,gallery:`Медіагалерея`,place:`Місцезнаходження`,compact_note:`Компактна нотатка (без кнопок)`,snippet_struct:`Код (з мовою)`,embed_wide:`Embed — широкий (multiple)`,embed_narrow:`Embed — вузький (multiple)`,perkey_fixed:`Fixed perKey — кількість на розмір`},options:{select:{red:`Червоний`,green:`Зелений`,blue:`Синій`},pp_select:{s:`S`,m:`M`,l:`L`},type:{basic:`Базовий`,advanced:`Розширений`},env:{dev:`Розробка`,prod:`Продакшн`},size:{s:`S`,m:`M`,l:`L`}},per_row:{name:`Ім'я`,surname:`Прізвище`,url:`URL`,token:`Токен`,env:`Середовище`,lang:`Мова`,product:`Продукт`,amount:`Кількість`,stock:`Наявність`,size:`Розмір`,qty:`Кількість`},units:{shot:`шот`,scoop:`мірна ложка`},groups:{demo:`Текстові поля`},validation:{letters_only:`Лише літери`},info:{intro:`Демонстраційна полиця усіх типів полів платформи. Заповніть поля нижче, щоб побачити їх у дії.`},actions:{scan_done:`Знайдено {{count}} пристроїв`,fail_title:`Дію не виконано`,fail_body:`Сервер повернув помилку (код {{code}})`}},field_demo_child:{label:`Дочірній запис`,fields:{demo_id:`UUID батьківського демо`,note:`Нотатка`}},demo_extra:{label:`Розширені поля (extend)`,fields:{extra_text:`Додатковий текст`,extra_number:`Додаткове число`,extra_flag:`Додатковий прапорець`}}},Pa={lab:Na},Fa=e({default:()=>La,media:()=>Ia}),Ia={plugin:{label:`Media`,description:`Movies & series watchlist, synced from Jellyfin.`},library:{label:`Media`},settings:{label:`Media settings`,tmdb_key:`TMDB API key`,omdb_key:`OMDb API key`,jellyfin_url:`Jellyfin URL`,jellyfin_token:`Jellyfin API token`,jellyfin_user_id:`Jellyfin user id`,test_button:`Test Jellyfin`,sync_button:`Sync Jellyfin`},title:{label:`Title`,fields:{kind:`Kind`,poster:`Poster`,year:`Year`,overview:`Overview`,genres:`Genres`,runtime:`Runtime`,tmdb_id:`TMDB ID`,imdb_id:`IMDb ID`,tmdb_rating:`TMDB rating`,imdb_rating:`IMDb rating`,status:`Status`,watched_date:`Watched on`,seasons:`Seasons`,episodes:`Episodes`,in_library:`In library`,jellyfin_id:`Jellyfin ID`,source:`Source`,link:`Link`},options:{kind:{movie:`Movie`,series:`Series`},status:{want:`Want to watch`,unwatched:`Unwatched`,watching:`Watching`,watched:`Watched`,dropped:`Dropped`},source:{manual:`Manual`,jellyfin:`Jellyfin`,agent:`Agent`}}}},La={media:Ia},Ra=e({default:()=>Ba,media:()=>za}),za={plugin:{label:`Медиа`,description:`Список фильмов и сериалов, синхронизируется с Jellyfin.`},library:{label:`Медиа`},settings:{label:`Настройки Медиа`,tmdb_key:`TMDB API ключ`,omdb_key:`OMDb API ключ`,jellyfin_url:`Jellyfin URL`,jellyfin_token:`Jellyfin API токен`,jellyfin_user_id:`Jellyfin user id`,test_button:`Проверить Jellyfin`,sync_button:`Синхронизировать Jellyfin`},title:{label:`Тайтл`,fields:{kind:`Тип`,poster:`Постер`,year:`Год`,overview:`Описание`,genres:`Жанры`,runtime:`Длительность`,tmdb_id:`TMDB ID`,imdb_id:`IMDb ID`,tmdb_rating:`Рейтинг TMDB`,imdb_rating:`Рейтинг IMDb`,status:`Статус`,watched_date:`Просмотрено`,seasons:`Сезоны`,episodes:`Эпизоды`,in_library:`В библиотеке`,jellyfin_id:`Jellyfin ID`,source:`Источник`,link:`Ссылка`},options:{kind:{movie:`Фильм`,series:`Сериал`},status:{want:`Хочу посмотреть`,unwatched:`Не просмотрено`,watching:`Смотрю`,watched:`Просмотрел`,dropped:`Брошено`},source:{manual:`Вручную`,jellyfin:`Jellyfin`,agent:`Агент`}}}},Ba={media:za},Va=e({default:()=>Ua,media:()=>Ha}),Ha={plugin:{label:`Медіа`,description:`Список фільмів і серіалів, синхронізований з Jellyfin.`},library:{label:`Медіа`},settings:{label:`Налаштування Медіа`,tmdb_key:`TMDB API ключ`,omdb_key:`OMDb API ключ`,jellyfin_url:`Jellyfin URL`,jellyfin_token:`Jellyfin API токен`,jellyfin_user_id:`Jellyfin user id`,test_button:`Перевірити Jellyfin`,sync_button:`Синхронізувати Jellyfin`},title:{label:`Тайтл`,fields:{kind:`Тип`,poster:`Постер`,year:`Рік`,overview:`Опис`,genres:`Жанри`,runtime:`Тривалість`,tmdb_id:`TMDB ID`,imdb_id:`IMDb ID`,tmdb_rating:`Рейтинг TMDB`,imdb_rating:`Рейтинг IMDb`,status:`Статус`,watched_date:`Переглянуто`,seasons:`Сезони`,episodes:`Епізоди`,in_library:`У бібліотеці`,jellyfin_id:`Jellyfin ID`,source:`Джерело`,link:`Посилання`},options:{kind:{movie:`Фільм`,series:`Серіал`},status:{want:`Хочу подивитись`,unwatched:`Не переглянуто`,watching:`Дивлюсь`,watched:`Переглянув`,dropped:`Закинув`},source:{manual:`Вручну`,jellyfin:`Jellyfin`,agent:`Агент`}}}},Ua={media:Ha},Wa=e({default:()=>Ka,orchestrator:()=>Ga}),Ga={plugin:{label:`Orchestrator`,description:`Capability-driven agent orchestrator. Routes connector messages to the agent runtime.`},settings:{label:`Orchestrator settings`,agent_id:`Agent`,access_password:`Access password`,trigger_prefix:`Trigger prefix`,reply_window:`Reply window (s)`}},Ka={orchestrator:Ga},qa=e({default:()=>Ya,orchestrator:()=>Ja}),Ja={plugin:{label:`Оркестратор`,description:`Оркестратор агента на основе возможностей. Маршрутизирует сообщения коннекторов в рантайм агента.`},settings:{label:`Настройки оркестратора`,agent_id:`Агент`,access_password:`Пароль доступа`,trigger_prefix:`Префикс триггера`,reply_window:`Окно ответа (с)`}},Ya={orchestrator:Ja},Xa=e({default:()=>Qa,orchestrator:()=>Za}),Za={plugin:{label:`Оркестратор`,description:`Оркестратор агента на основі можливостей. Маршрутизує повідомлення конекторів у рантайм агента.`},settings:{label:`Налаштування оркестратора`,agent_id:`Агент`,access_password:`Пароль доступу`,trigger_prefix:`Префікс тригера`,reply_window:`Вікно відповіді (с)`}},Qa={orchestrator:Za},$a=e({default:()=>to,people:()=>eo}),eo={plugin:{label:`People`,description:`Contacts and personal data about people.`},library:{label:`People`},person:{label:`Person`,fields:{logo:`Photo`,fullName:`Name`,birthDate:`Date of birth`,sex:`Sex`,phone:`Phone`,email:`Email`,address:`Address`,occupation:`Occupation`,notes:`Notes`,description:`Comment`,tags:`Tags`}}},to={people:eo},no=e({default:()=>io,people:()=>ro}),ro={plugin:{label:`Люди`,description:`Контакты и личные данные людей.`},library:{label:`Люди`},person:{label:`Человек`,fields:{logo:`Фото`,fullName:`Имя`,birthDate:`Дата рождения`,sex:`Пол`,phone:`Телефон`,email:`Email`,address:`Адрес`,occupation:`Род занятий`,notes:`Заметки`,description:`Комментарий`,tags:`Теги`}}},io={people:ro},ao=e({default:()=>so,people:()=>oo}),oo={plugin:{label:`Люди`,description:`Контакти та особисті дані людей.`},library:{label:`Люди`},person:{label:`Людина`,fields:{logo:`Фото`,fullName:`Ім'я`,birthDate:`Дата народження`,sex:`Стать`,phone:`Телефон`,email:`Email`,address:`Адреса`,occupation:`Рід занять`,notes:`Нотатки`,description:`Коментар`,tags:`Теги`}}},so={people:oo},co=e({default:()=>uo,telegram:()=>lo}),lo={plugin:{label:`Telegram bot`,description:`Connects Telegram to the orchestrator via GramJS.`},settings:{label:`Bot settings`,api_id:`API ID`,api_hash:`API Hash`,bot_token:`Bot token`,phone:`Phone number`,reasoning_display:`Reasoning display`,reasoning_display_off:`Hidden`,reasoning_display_collapsible:`Collapsible block`,reasoning_display_separate:`Separate messages`}},uo={telegram:lo},fo=e({default:()=>mo,telegram:()=>po}),po={plugin:{label:`Telegram-бот`,description:`Подключает Telegram к оркестратору через GramJS.`},settings:{label:`Настройки бота`,api_id:`API ID`,api_hash:`API Hash`,bot_token:`Токен бота`,phone:`Номер телефона`,reasoning_display:`Показ рассуждений`,reasoning_display_off:`Не показывать`,reasoning_display_collapsible:`Свёрнутым блоком`,reasoning_display_separate:`Отдельными сообщениями`}},mo={telegram:po},ho=e({default:()=>_o,telegram:()=>go}),go={plugin:{label:`Telegram-бот`,description:`Підключає Telegram до оркестратора через GramJS.`},settings:{label:`Налаштування бота`,api_id:`API ID`,api_hash:`API Hash`,bot_token:`Токен бота`,phone:`Номер телефону`,reasoning_display:`Показ міркувань`,reasoning_display_off:`Не показувати`,reasoning_display_collapsible:`Згорнутим блоком`,reasoning_display_separate:`Окремими повідомленнями`}},_o={telegram:go},vo=e({default:()=>bo,things:()=>yo}),yo={plugin:{label:`Things`,description:`Personal belongings and storage locations.`},library:{label:`Things`},item:{label:`Item`,fields:{logo:`Photo`,description:`Description`,brand:`Brand`,model:`Model`,location:`Storage location`,quantity:`Quantity`,owner:`Owner`,color:`Color`,material:`Material`,madeIn:`Country of origin`,weight:`Weight`,dimensions:`Dimensions`,serialNumber:`Serial number`,purchaseDate:`Purchase date`,purchasePrice:`Purchase price`,condition:`Condition`,warrantyExpires:`Warranty expires`,link:`Link`,photos:`Gallery`,tags:`Tags`,paymentStatus:`Payment`,receipt:`Receipt`,orderNumber:`Order number`,manual:`Manual`,store:`Store`},options:{type:{clothing:`Clothing`,bag:`Bag / backpack`,cable:`Cable / adapter`,tool:`Tool`,furniture:`Furniture`,appliance:`Appliance`,household:`Household`,consumable:`Consumable`,personal_care:`Personal care`,sports:`Sports`,hobby:`Hobby / craft`,hardware:`Hardware / parts`,decor:`Decor / lighting`,stationery:`Stationery`,document:`Document`,other:`Other`},condition:{new:`New`,good:`Good`,fair:`Fair`,poor:`Poor`},paymentStatus:{bought:`Bought`,installment:`Installment`,credit:`Credit`}},groups:{purchase:`Purchase`}},storage_location:{label:`Storage location`,fields:{path:`Hierarchy (levels)`}}},bo={things:yo},xo=e({default:()=>Co,things:()=>So}),So={plugin:{label:`Вещи`,description:`Учёт личных вещей и мест хранения.`},library:{label:`Вещи`},item:{label:`Вещь`,fields:{logo:`Фото`,description:`Описание`,brand:`Бренд`,model:`Модель`,location:`Место хранения`,quantity:`Количество`,owner:`Владелец`,color:`Цвет`,material:`Материал`,madeIn:`Страна производства`,weight:`Вес`,dimensions:`Размеры`,serialNumber:`Серийный номер`,purchaseDate:`Дата приобретения`,purchasePrice:`Цена покупки`,condition:`Состояние`,warrantyExpires:`Гарантия до`,link:`Ссылка`,photos:`Галерея`,tags:`Теги`,paymentStatus:`Способ оплаты`,receipt:`Чек / гарантийник`,orderNumber:`Номер заказа`,manual:`Инструкция`,store:`Магазин`},options:{type:{clothing:`Одежда`,bag:`Сумка / рюкзак`,cable:`Кабель / адаптер`,tool:`Инструмент`,furniture:`Мебель`,appliance:`Бытовая техника`,household:`Хозтовары / дом`,consumable:`Расходники`,personal_care:`Гигиена / уход`,sports:`Спорт`,hobby:`Хобби / крафт`,hardware:`Крепёж / детали`,decor:`Декор / освещение`,stationery:`Канцелярия`,document:`Документ`,other:`Другое`},condition:{new:`Новый`,good:`Хороший`,fair:`Удовлетворительный`,poor:`Плохой`},paymentStatus:{bought:`Куплено`,installment:`Рассрочка`,credit:`Кредит`}},groups:{purchase:`Покупка`}},storage_location:{label:`Место хранения`,fields:{path:`Иерархия (уровни)`}}},Co={things:So},wo=e({default:()=>Eo,things:()=>To}),To={plugin:{label:`Речі`,description:`Облік особистих речей і місць зберігання.`},library:{label:`Речі`},item:{label:`Річ`,fields:{logo:`Фото`,description:`Опис`,brand:`Бренд`,model:`Модель`,location:`Місце зберігання`,quantity:`Кількість`,owner:`Власник`,color:`Колір`,material:`Матеріал`,madeIn:`Країна виробництва`,weight:`Вага`,dimensions:`Розміри`,serialNumber:`Серійний номер`,purchaseDate:`Дата придбання`,purchasePrice:`Ціна покупки`,condition:`Стан`,warrantyExpires:`Гарантія до`,link:`Посилання`,photos:`Галерея`,tags:`Теги`,paymentStatus:`Спосіб оплати`,receipt:`Чек / гарантійник`,orderNumber:`Номер замовлення`,manual:`Інструкція`,store:`Магазин`},options:{type:{clothing:`Одяг`,bag:`Сумка / рюкзак`,cable:`Кабель / адаптер`,tool:`Інструмент`,furniture:`Меблі`,appliance:`Побутова техніка`,household:`Побутове / дім`,consumable:`Розхідники`,personal_care:`Гігієна / догляд`,sports:`Спорт`,hobby:`Хобі / крафт`,hardware:`Кріплення / деталі`,decor:`Декор / освітлення`,stationery:`Канцелярія`,document:`Документ`,other:`Інше`},condition:{new:`Новий`,good:`Добрий`,fair:`Задовільний`,poor:`Поганий`},paymentStatus:{bought:`Куплено`,installment:`Розстрочка`,credit:`Кредит`}},groups:{purchase:`Купівля`}},storage_location:{label:`Місце зберігання`,fields:{path:`Ієрархія (рівні)`}}},Eo={things:To},Do=e({default:()=>ko,transit:()=>Oo}),Oo={plugin:{label:`Transit`,description:`Public transport routes and schedules.`},library:{label:`Transit`},settings:{label:`Sync settings`,caldav_calendar:`Calendar URL`,caldav_url:`CalDAV server URL`,caldav_username:`Username`,caldav_password:`Password`},bus_route:{label:`Route`,fields:{route_number:`Route No.`,from:`From`,to:`To`,stop:`Stop`,weekday_times:`Weekdays`,saturday_times:`Saturday`,sunday_times:`Sunday`,notes:`Notes`,tags:`Tags`}}},ko={transit:Oo},Ao=e({default:()=>Mo,transit:()=>jo}),jo={plugin:{label:`Транспорт`,description:`Маршруты общественного транспорта и расписания.`},library:{label:`Транспорт`},settings:{label:`Настройки синхронизации`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Имя пользователя`,caldav_password:`Пароль`},bus_route:{label:`Маршрут`,fields:{route_number:`Маршрут №`,from:`Откуда`,to:`Куда`,stop:`Остановка`,weekday_times:`Будни`,saturday_times:`Суббота`,sunday_times:`Воскресенье`,notes:`Заметки`,tags:`Теги`}}},Mo={transit:jo},No=e({default:()=>Fo,transit:()=>Po}),Po={plugin:{label:`Транспорт`,description:`Маршрути громадського транспорту та розклади.`},library:{label:`Транспорт`},settings:{label:`Налаштування синхронізації`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Ім'я користувача`,caldav_password:`Пароль`},bus_route:{label:`Маршрут`,fields:{route_number:`Маршрут №`,from:`Звідки`,to:`Куди`,stop:`Зупинка`,weekday_times:`Будні`,saturday_times:`Субота`,sunday_times:`Неділя`,notes:`Нотатки`,tags:`Теги`}}},Fo={transit:Po},Io=e({default:()=>Ro,travel:()=>Lo}),Lo={plugin:{label:`Travel`,description:`Trips, flights and bookings.`},library:{label:`Travel`},trip:{label:`Trip`,fields:{description:`Notes`,destination:`Destination`,date_from:`Departure date`,date_to:`Return date`,status:`Status`,participants:`Participants`,budget:`Budget`,notes:`Notes`,photos:`Photos`,packing_list:`Packing list`,legs:`Legs`,accommodations:`Accommodations`,insurances:`Insurances`,activities:`Activities`,tags:`Tags`},options:{status:{planned:`Planned`,active:`In progress`,completed:`Completed`,cancelled:`Cancelled`}},packing:{prepared:`Prepared`,packed:`Packed`,packed_back:`Packed back`,item:`Item`},leg:{date:`Date`,leg_type:`Type`,operator:`Carrier`,number:`Flight / trip number`,seat:`Seat`,class:`Class`,booking_ref:`Booking ref`,terminal:`Terminal`,gate:`Gate`,origin_city:`Origin city`,origin_code:`Airport / station code`,departure_time:`Departure time`,destination_city:`Destination city`,destination_code:`Destination airport / station code`,arrival_time:`Arrival time`,duration:`Duration`,checked_in:`Checked in`,notes:`Notes`},leg_opt:{leg_type:{flight:`Flight`,train:`Train`,bus:`Bus`,car:`Car`,ferry:`Ferry`,other:`Other`},class:{economy:`Economy`,business:`Business`,first:`First`}},accom:{accom_type:`Type`,location:`Address`,address:`Address`,rating:`Stars`,breakfast:`Breakfast included`,check_in:`Check-in`,check_out:`Check-out`,booking_ref:`Booking reference`,cost:`Cost`,notes:`Notes`},accom_opt:{accom_type:{hotel:`Hotel`,apartment:`Apartment`,hostel:`Hostel`,other:`Other`},rating:{1:`★`,2:`★★`,3:`★★★`,4:`★★★★`,5:`★★★★★`}},insur:{insurer:`Insurer`,policy_number:`Policy number`,coverage:`Coverage`,cost:`Cost`,valid_from:`Valid from`,valid_until:`Valid until`,emergency_phone:`Emergency phone`,notes:`Notes`},act:{activity_type:`Type`,date:`Date`,time_start:`Start time`,time_end:`End time`,location:`Location`,booking_ref:`Booking ref`,cost:`Cost`,notes:`Notes`},act_opt:{activity_type:{sightseeing:`Sightseeing`,museum:`Museum`,beach:`Beach`,nature:`Nature`,restaurant:`Restaurant`,tour:`Tour`,shopping:`Shopping`,entertainment:`Entertainment`,other:`Other`}}}},Ro={travel:Lo},zo=e({default:()=>Vo,travel:()=>Bo}),Bo={plugin:{label:`Путешествия`,description:`Поездки, перелёты и бронирования.`},library:{label:`Путешествия`},trip:{label:`Поездка`,fields:{description:`Заметки`,destination:`Направление`,date_from:`Дата вылета`,date_to:`Дата возвращения`,status:`Статус`,participants:`Участники`,budget:`Бюджет`,notes:`Заметки`,photos:`Фото`,packing_list:`Список вещей`,legs:`Перевозки`,accommodations:`Проживание`,insurances:`Страховки`,activities:`Активности`,tags:`Теги`},options:{status:{planned:`Запланировано`,active:`В пути`,completed:`Завершено`,cancelled:`Отменено`}},packing:{prepared:`Подготовлено`,packed:`Сложено в сумки`,packed_back:`Собрано обратно`,item:`Вещь`},leg:{date:`Дата`,leg_type:`Тип`,operator:`Перевозчик`,number:`Номер рейса`,seat:`Место`,class:`Класс`,booking_ref:`Код бронирования`,terminal:`Терминал`,gate:`Выход`,origin_city:`Город отправления`,origin_code:`Код аэропорта/вокзала`,departure_time:`Время отправления`,destination_city:`Город прибытия`,destination_code:`Код аэропорта/вокзала назначения`,arrival_time:`Время прибытия`,duration:`Продолжительность`,checked_in:`Зарегистрировано`,notes:`Заметки`},leg_opt:{leg_type:{flight:`Рейс`,train:`Поезд`,bus:`Автобус`,car:`Авто`,ferry:`Паром`,other:`Другое`},class:{economy:`Эконом`,business:`Бизнес`,first:`Первый`}},accom:{accom_type:`Тип`,location:`Адрес`,address:`Адрес`,rating:`Звёзды`,breakfast:`Завтрак включён`,check_in:`Заезд`,check_out:`Выезд`,booking_ref:`Номер бронирования`,cost:`Стоимость`,notes:`Заметки`},accom_opt:{accom_type:{hotel:`Отель`,apartment:`Апартаменты`,hostel:`Хостел`,other:`Другое`},rating:{1:`★`,2:`★★`,3:`★★★`,4:`★★★★`,5:`★★★★★`}},insur:{insurer:`Страховщик`,policy_number:`Номер полиса`,coverage:`Покрытие`,cost:`Стоимость`,valid_from:`Действительна с`,valid_until:`Действительна до`,emergency_phone:`Телефон экстренной помощи`,notes:`Заметки`},act:{activity_type:`Тип`,date:`Дата`,time_start:`Время начала`,time_end:`Время завершения`,location:`Локация`,booking_ref:`Код бронирования`,cost:`Стоимость`,notes:`Заметки`},act_opt:{activity_type:{sightseeing:`Осмотр города`,museum:`Музей`,beach:`Пляж`,nature:`Природа`,restaurant:`Ресторан`,tour:`Экскурсия`,shopping:`Шопинг`,entertainment:`Развлечения`,other:`Другое`}}}},Vo={travel:Bo},Ho=e({default:()=>Wo,travel:()=>Uo}),Uo={plugin:{label:`Подорожі`,description:`Поїздки, перельоти та бронювання.`},library:{label:`Подорожі`},trip:{label:`Поїздка`,fields:{description:`Нотатки`,destination:`Напрямок`,date_from:`Дата вильоту`,date_to:`Дата повернення`,status:`Статус`,participants:`Учасники`,budget:`Бюджет`,notes:`Нотатки`,photos:`Фото`,packing_list:`Список речей`,legs:`Перевезення`,accommodations:`Проживання`,insurances:`Страховки`,activities:`Активності`,tags:`Теги`},options:{status:{planned:`Заплановано`,active:`В дорозі`,completed:`Завершено`,cancelled:`Скасовано`}},packing:{prepared:`Підготовлено`,packed:`Спаковано`,packed_back:`Зібрано назад`,item:`Річ`},leg:{date:`Дата`,leg_type:`Тип`,operator:`Перевізник`,number:`Номер рейсу`,seat:`Місце`,class:`Клас`,booking_ref:`Підтвердження`,terminal:`Термінал`,gate:`Гейт`,origin_city:`Місто відправлення`,origin_code:`Код аеропорту/вокзалу`,departure_time:`Час відправлення`,destination_city:`Місто прибуття`,destination_code:`Код аеропорту/вокзалу призначення`,arrival_time:`Час прибуття`,duration:`Тривалість`,checked_in:`Зареєстровано`,notes:`Нотатки`},leg_opt:{leg_type:{flight:`Рейс`,train:`Потяг`,bus:`Автобус`,car:`Авто`,ferry:`Паром`,other:`Інше`},class:{economy:`Економ`,business:`Бізнес`,first:`Перший`}},accom:{accom_type:`Тип`,location:`Адреса`,address:`Адреса`,rating:`Зірки`,breakfast:`Сніданок включено`,check_in:`Заїзд`,check_out:`Виїзд`,booking_ref:`Номер бронювання`,cost:`Вартість`,notes:`Нотатки`},accom_opt:{accom_type:{hotel:`Готель`,apartment:`Апартаменти`,hostel:`Хостел`,other:`Інше`},rating:{1:`★`,2:`★★`,3:`★★★`,4:`★★★★`,5:`★★★★★`}},insur:{insurer:`Страховик`,policy_number:`Номер полісу`,coverage:`Покриття`,cost:`Вартість`,valid_from:`Дійсна з`,valid_until:`Дійсна до`,emergency_phone:`Телефон екстреної допомоги`,notes:`Нотатки`},act:{activity_type:`Тип`,date:`Дата`,time_start:`Час початку`,time_end:`Час завершення`,location:`Локація`,booking_ref:`Підтвердження`,cost:`Вартість`,notes:`Нотатки`},act_opt:{activity_type:{sightseeing:`Огляд міста`,museum:`Музей`,beach:`Пляж`,nature:`Природа`,restaurant:`Ресторан`,tour:`Екскурсія`,shopping:`Шопінг`,entertainment:`Розваги`,other:`Інше`}}}},Wo={travel:Uo},Go=e({default:()=>qo,webchat:()=>Ko}),Ko={plugin:{label:`Web chat`,description:`In-browser chat with the agent.`},title:`Agent`,open:`Open chat`,close:`Close`,expand:`Expand`,collapse:`Collapse`,newConversation:`New conversation`,threads:`Conversations`,empty:`No messages yet`,placeholder:`Ask about your data…`,send:`Send`,stop:`Stop`,attach:`Attach file`,removeAttachment:`Remove {{name}}`,uploading:`Uploading…`,uploadProgress:`Upload progress`,uploadTooLarge:`File is too large (maximum 25 MB).`,uploadFailed:`Could not upload the file.`,dropFiles:`Drop files here`,dropFilesHint:`The file will be attached to your next message`,thinking:`Thinking…`,error:`Error: {{message}}`,reasoning:`Reasoning`,settings:{label:`Web chat`,reasoning_display:`Reasoning display`,reasoning_display_live:`Live block`,reasoning_display_off:`Hidden`}},qo={webchat:Ko},Jo=e({default:()=>Xo,webchat:()=>Yo}),Yo={plugin:{label:`Чат на сайте`,description:`Веб-чат для общения с агентом.`},title:`Агент`,open:`Открыть чат`,close:`Закрыть`,expand:`Развернуть`,collapse:`Свернуть`,newConversation:`Новый разговор`,threads:`Разговоры`,empty:`Пока нет сообщений`,placeholder:`Спроси о своих данных…`,send:`Отправить`,stop:`Стоп`,attach:`Прикрепить файл`,removeAttachment:`Удалить {{name}}`,uploading:`Загрузка…`,uploadProgress:`Прогресс загрузки`,uploadTooLarge:`Файл слишком большой (максимум 25 МБ).`,uploadFailed:`Не удалось загрузить файл.`,dropFiles:`Перетащите файлы сюда`,dropFilesHint:`Файл будет прикреплён к следующему сообщению`,thinking:`Думает…`,error:`Ошибка: {{message}}`,reasoning:`Рассуждения`,settings:{label:`Чат на сайте`,reasoning_display:`Показ рассуждений`,reasoning_display_live:`Живым блоком`,reasoning_display_off:`Не показывать`}},Xo={webchat:Yo},Zo=e({default:()=>$o,webchat:()=>Qo}),Qo={plugin:{label:`Чат на сайті`,description:`Вебчат для спілкування з агентом.`},title:`Агент`,open:`Відкрити чат`,close:`Закрити`,expand:`Розгорнути`,collapse:`Згорнути`,newConversation:`Нова розмова`,threads:`Розмови`,empty:`Ще немає повідомлень`,placeholder:`Запитай про свої дані…`,send:`Надіслати`,stop:`Стоп`,attach:`Додати файл`,removeAttachment:`Видалити {{name}}`,uploading:`Завантаження…`,uploadProgress:`Прогрес завантаження`,uploadTooLarge:`Файл завеликий (максимум 25 МБ).`,uploadFailed:`Не вдалося завантажити файл.`,dropFiles:`Перетягніть файли сюди`,dropFilesHint:`Файл буде додано до наступного повідомлення`,thinking:`Думає…`,error:`Помилка: {{message}}`,reasoning:`Міркування`,settings:{label:`Чат на сайті`,reasoning_display:`Показ міркувань`,reasoning_display_live:`Живим блоком`,reasoning_display_off:`Не показувати`}},$o={webchat:Qo},es=e({default:()=>ns,webexport:()=>ts}),ts={plugin:{label:`Web export`,description:`Static HTML export host: shared output dir and common css/js assets.`},settings:{label:`Web export settings`,output_dir:`Output directory`}},ns={webexport:ts},rs=e({default:()=>as,webexport:()=>is}),is={plugin:{label:`Веб-экспорт`,description:`Хост статического HTML-экспорта: общая папка вывода и общие css/js.`},settings:{label:`Настройки веб-экспорта`,output_dir:`Папка вывода`}},as={webexport:is},os=e({default:()=>cs,webexport:()=>ss}),ss={plugin:{label:`Веб-експорт`,description:`Хост статичного HTML-експорту: спільна тека виводу та спільні css/js.`},settings:{label:`Налаштування веб-експорту`,output_dir:`Тека виводу`}},cs={webexport:ss},ls=Object.assign({"../plugin-claude-agent/locales/en.json":Rr,"../plugin-claude-agent/locales/ru.json":Br,"../plugin-claude-agent/locales/uk.json":Hr,"../plugin-console/locales/en.json":Wr,"../plugin-console/locales/ru.json":qr,"../plugin-console/locales/uk.json":Xr,"../plugin-devices/locales/en.json":$r,"../plugin-devices/locales/ru.json":ni,"../plugin-devices/locales/uk.json":ai,"../plugin-documents/locales/en.json":ci,"../plugin-documents/locales/ru.json":di,"../plugin-documents/locales/uk.json":mi,"../plugin-drone/locales/en.json":_i,"../plugin-drone/locales/ru.json":bi,"../plugin-drone/locales/uk.json":Ci,"../plugin-finance/locales/en.json":Ei,"../plugin-finance/locales/ru.json":ki,"../plugin-finance/locales/uk.json":Mi,"../plugin-garden/locales/en.json":Fi,"../plugin-garden/locales/ru.json":Ri,"../plugin-garden/locales/uk.json":Vi,"../plugin-health/locales/en.json":Wi,"../plugin-health/locales/ru.json":qi,"../plugin-health/locales/uk.json":Xi,"../plugin-home/locales/en.json":$i,"../plugin-home/locales/ru.json":na,"../plugin-home/locales/uk.json":aa,"../plugin-http/locales/en.json":ca,"../plugin-http/locales/ru.json":da,"../plugin-http/locales/uk.json":ma,"../plugin-kitchen/locales/en.json":_a,"../plugin-kitchen/locales/ru.json":ba,"../plugin-kitchen/locales/uk.json":Ca,"../plugin-lab/locales/en.json":Ea,"../plugin-lab/locales/ru.json":ka,"../plugin-lab/locales/uk.json":Ma,"../plugin-media/locales/en.json":Fa,"../plugin-media/locales/ru.json":Ra,"../plugin-media/locales/uk.json":Va,"../plugin-orchestrator/locales/en.json":Wa,"../plugin-orchestrator/locales/ru.json":qa,"../plugin-orchestrator/locales/uk.json":Xa,"../plugin-people/locales/en.json":$a,"../plugin-people/locales/ru.json":no,"../plugin-people/locales/uk.json":ao,"../plugin-telegram/locales/en.json":co,"../plugin-telegram/locales/ru.json":fo,"../plugin-telegram/locales/uk.json":ho,"../plugin-things/locales/en.json":vo,"../plugin-things/locales/ru.json":xo,"../plugin-things/locales/uk.json":wo,"../plugin-transit/locales/en.json":Do,"../plugin-transit/locales/ru.json":Ao,"../plugin-transit/locales/uk.json":No,"../plugin-travel/locales/en.json":Io,"../plugin-travel/locales/ru.json":zo,"../plugin-travel/locales/uk.json":Ho,"../plugin-webchat/locales/en.json":Go,"../plugin-webchat/locales/ru.json":Jo,"../plugin-webchat/locales/uk.json":Zo,"../plugin-webexport/locales/en.json":es,"../plugin-webexport/locales/ru.json":rs,"../plugin-webexport/locales/uk.json":os});for(let[e,t]of Object.entries(ls)){let n=e.match(/\/([a-z]{2})\.json$/)?.[1];n&&t.default&&Lr.addResourceBundle(n,`translation`,t.default,!0,!0)}var us=new Map;function ds(e,t){if(us.has(e))throw Error(`[actions] '${e}' already registered`);us.set(e,t)}function fs(e){return us.get(e)}var ps=e({});ds(`devices.runScan`,async e=>{let t=await fetch(`/api/plugins/devices/scan`,{method:`POST`});if(!t.ok){let e=await t.json(),n=Error(e.error??`Server error ${t.status}`);throw n.ui={kind:`popup`,variant:`error`,title:`devices.scan.failTitle`,message:e.error??`Server error ${t.status}`},n}let{result:n}=await t.json();return n.noMac.length>0?{kind:`popup`,variant:`error`,component:{name:`devices.scan.noMac`,data:{count:n.noMac.length,noMac:n.noMac}}}:{kind:`popup`,variant:`success`,component:{name:`devices.scan.summary`,data:{active:n.active,created:n.created,macChanged:n.macChanged,skipped:n.skipped,hostnameChanged:n.hostnameChanged}}}});var ms=e({});ds(`finance.testConnection`,async e=>{let t=await fetch(`/api/plugins/finance/test`,{method:`POST`});if(!t.ok){let e=await t.json();throw Error(e.error??`Server error ${t.status}`)}}),ds(`finance.sync`,async e=>{let t=await fetch(`/api/plugins/finance/sync`,{method:`POST`});if(!t.ok){let e=await t.json();throw Error(e.error??`Server error ${t.status}`)}}),ds(`finance.importWise`,async e=>{let t=await fetch(`/api/plugins/finance/import-wise`,{method:`POST`}),n=await t.json();if(!t.ok)throw Error(n.error??`Server error ${t.status}`);if(n.errors?.length)throw Error(`Imported ${n.imported}, skipped ${n.skipped}, errors ${n.errors.length}: ${n.errors[0]}`)});var hs=e({}),gs=()=>new Date().toISOString().slice(0,10),_s=(e,t)=>{let n=new Date(e);return n.setDate(n.getDate()+t),n.toISOString().slice(0,10)};async function vs(e,t,n,r){let i=await(await fetch(`/api/${e.library}/${e.shelf}/${e.recordId}`)).json(),a=Number(i[n])||0,o=gs(),s={[t]:o,[r]:a?_s(o,a):null};if(!(await fetch(`/api/${e.library}/${e.shelf}/${e.recordId}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(s)})).ok){let e=Error(`update failed`);throw e.ui={kind:`toast`,variant:`error`,message:`garden.plant.actions.failed`},e}return{kind:`toast`,variant:`success`,message:`garden.plant.actions.done`}}ds(`garden.watered`,e=>vs(e,`lastWatered`,`wateringDays`,`nextWatering`)),ds(`garden.fertilized`,e=>vs(e,`lastFertilized`,`fertilizerDays`,`nextFertilizing`));var ys=e({});ds(`lab.demoAction`,async e=>(await new Promise(e=>setTimeout(e,800)),{kind:`toast`,variant:`success`,message:`lab.field_demo.actions.scan_done`,params:{count:Math.floor(Math.random()*9)+1}})),ds(`lab.demoFail`,async()=>{await new Promise(e=>setTimeout(e,400));let e=Error(`Demo error`);throw e.ui={kind:`popup`,variant:`error`,title:`lab.field_demo.actions.fail_title`,message:`lab.field_demo.actions.fail_body`,params:{code:500}},e});var bs=e({});ds(`media.testJellyfin`,async e=>{let t=await fetch(`/api/plugins/media/test`,{method:`POST`});if(!t.ok){let e=await t.json();throw Error(e.error??`Server error ${t.status}`)}}),ds(`media.syncJellyfin`,async e=>{let t=await fetch(`/api/plugins/media/sync`,{method:`POST`}),n=await t.json();if(!t.ok)throw Error(n.error??`Server error ${t.status}`)}),Object.keys(Object.assign({"../plugin-devices/src/actions.ts":ps,"../plugin-finance/src/actions.ts":ms,"../plugin-garden/src/actions.ts":hs,"../plugin-lab/src/field_demo/actions.ts":ys,"../plugin-media/src/actions.ts":bs}));var xs=S(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),Ss=S(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),Cs=S(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),ws=S(`corner-left-up`,[[`path`,{d:`M14 9 9 4 4 9`,key:`1af5af`}],[`path`,{d:`M20 20h-7a4 4 0 0 1-4-4V4`,key:`1blwi3`}]]),Ts=S(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),Es=S(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),Ds=S(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Os=S(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),ks=S(`film`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]),As=S(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),js=S(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Ms=S(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ns=S(`music`,[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]),Ps=S(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Fs={"--w-rjv-font-family":`monospace`,"--w-rjv-color":`#0184a6`,"--w-rjv-key-string":`#0184a6`,"--w-rjv-background-color":`#202020`,"--w-rjv-line-color":`#323232`,"--w-rjv-arrow-color":`var(--w-rjv-color)`,"--w-rjv-edit-color":`var(--w-rjv-color)`,"--w-rjv-info-color":`#656565`,"--w-rjv-update-color":`#ebcb8b`,"--w-rjv-copied-color":`#0184a6`,"--w-rjv-copied-success-color":`#28a745`,"--w-rjv-curlybraces-color":`#1896b6`,"--w-rjv-brackets-color":`#1896b6`,"--w-rjv-quotes-color":`var(--w-rjv-key-string)`,"--w-rjv-quotes-string-color":`var(--w-rjv-type-string-color)`,"--w-rjv-type-string-color":`#cb4b16`,"--w-rjv-type-int-color":`#268bd2`,"--w-rjv-type-float-color":`#859900`,"--w-rjv-type-bigint-color":`#268bd2`,"--w-rjv-type-boolean-color":`#2aa198`,"--w-rjv-type-date-color":`#586e75`,"--w-rjv-type-url-color":`#649bd8`,"--w-rjv-type-null-color":`#d33682`,"--w-rjv-type-nan-color":`#076678`,"--w-rjv-type-undefined-color":`#586e75`};function Is(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function Ls(...e){return t=>{let n=!1,r=e.map(e=>{let r=Is(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():Is(e[t],null)}}}}function Rs(...e){return L.useCallback(Ls(...e),e)}var R=g(),zs=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/mask-input.tsx`,Bs=120,Vs=10,Hs=`USD`,Us=`en-US`,Ws=/^(phone|zipCode|zipCodeExtended|ssn|ein|time|date|creditCard|creditCardExpiry)$/,Gs=/[€$%]/,Ks=new Map,qs=new Map,Js=new Map,Ys=[31,28,31,30,31,30,31,31,30,31,30,31],z={digitsOnly:/^\d+$/,nonDigits:/\D/g,nonAlphaNumeric:/[^A-Z0-9]/gi,nonNumericDot:/[^0-9.]/g,nonCurrencyChars:/[^\d.,]/g,hashPattern:/#/g,currencyAtEnd:/\d\s*[^\d\s]+$/,percentageChars:/[^\d.]/g,phone:/^\d{10}$/,ssn:/^\d{9}$/,zipCode:/^\d{5}$/,zipCodeExtended:/^\d{9}$/,isbn:/^\d{13}$/,ein:/^\d{9}$/,time:/^\d{4}$/,creditCard:/^\d{13,19}$/,creditCardExpiry:/^\d{4}$/,licensePlate:/^[A-Z0-9]{6}$/,macAddress:/^[A-F0-9]{12}$/,currencyValidation:/^\d+(\.\d{1,2})?$/,ipv4Segment:/^\d{1,3}$/};function Xs(e,t){let{currency:n,minimumFractionDigits:r=0,maximumFractionDigits:i=2}=t,a=`${e}|${n}|${r}|${i}`;if(!Ks.has(a))try{Ks.set(a,new Intl.NumberFormat(e,{style:`currency`,currency:n,...t}))}catch{Ks.set(a,new Intl.NumberFormat(Us,{style:`currency`,currency:Hs,...t}))}let o=Ks.get(a);if(!o)throw Error(`Failed to create formatter for ${a}`);return o}function Zs(e){let{locale:t,currency:n}=e,r=`${t}|${n}`,i=Js.get(r);if(i)return i;let a=`$`,o=`.`,s=`,`;try{let e=Xs(t,{currency:n,minimumFractionDigits:0,maximumFractionDigits:2}).formatToParts(1234.5),r=e.find(e=>e.type===`currency`),i=e.find(e=>e.type===`decimal`),c=e.find(e=>e.type===`group`);r&&(a=r.value),i&&(o=i.value),c&&(s=c.value)}catch{}let c={currency:a,decimal:o,group:s};return Js.set(r,c),c}function Qs(e){let{locale:t,currency:n}=e,r=`${t}|${n}`,i=qs.get(r);if(i!==void 0)return i;try{let e=Xs(t,{currency:n,minimumFractionDigits:0,maximumFractionDigits:0}).format(123),i=z.currencyAtEnd.test(e);return qs.set(r,i),i}catch{return qs.set(r,!1),!1}}function $s(e){let{mask:t,pattern:n}=e;return t===`currency`||!!(n&&(n.includes(`$`)||n.includes(`€`)))}var ec={phone:{pattern:`(###) ###-####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.phone.test(e.replace(z.nonDigits,``))},ssn:{pattern:`###-##-####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.ssn.test(e.replace(z.nonDigits,``))},date:{pattern:`##/##/####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(t.length!==8)return!1;let n=parseInt(t.substring(0,2),10),r=parseInt(t.substring(2,4),10),i=parseInt(t.substring(4,8),10),a=new Date().getFullYear(),o=a-Bs,s=a+Vs;return n<1||n>12||r<1||i<o||i>s?!1:r<=(n===2&&(i%4==0&&i%100!=0||i%400==0)?29:Ys[n-1]??31)}},time:{pattern:`##:##`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(!z.time.test(t))return!1;let n=parseInt(t.substring(0,2),10),r=parseInt(t.substring(2,4),10);return n<=23&&r<=59}},creditCard:{pattern:`#### #### #### ####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(!z.creditCard.test(t))return!1;let n=0,r=!1;for(let e=t.length-1;e>=0;e--){let i=t[e];if(!i)continue;let a=parseInt(i,10);r&&(a*=2,a>9&&(a-=9)),n+=a,r=!r}return n%10==0}},creditCardExpiry:{pattern:`##/##`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(!z.creditCardExpiry.test(t))return!1;let n=parseInt(t.substring(0,2),10),r=parseInt(t.substring(2,4),10);if(n<1||n>12)return!1;let i=new Date,a=i.getFullYear(),o=i.getMonth()+1,s=r<=75?2e3+r:1900+r;return!(s<a||s===a&&n<o||s>a+50)}},zipCode:{pattern:`#####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.zipCode.test(e.replace(z.nonDigits,``))},zipCodeExtended:{pattern:`#####-####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.zipCodeExtended.test(e.replace(z.nonDigits,``))},currency:{pattern:`$###,###.##`,transform:(e,{currency:t=Hs,locale:n=Us}={})=>{let r=`.`;try{let e=Xs(n,{currency:t,minimumFractionDigits:0,maximumFractionDigits:2}).formatToParts(1234.5).find(e=>e.type===`decimal`);e&&(r=e.value)}catch{}let i=e.replace(z.nonCurrencyChars,``),a=i.indexOf(`.`),o=i.indexOf(`,`),s=!1,c=-1;if(r===`,`){let e=i.lastIndexOf(`,`);if(e!==-1){let t=i.substring(e+1);t.length<=2&&/^\d*$/.test(t)&&(s=!0,c=e)}if(!s&&a!==-1){let e=i.substring(a+1);e.length<=2&&/^\d*$/.test(e)&&(s=!0,c=a)}if(!s&&i.length>=4){let e=i.match(/^(\d+)\.(\d{3})(\d{1,2})$/);if(e){let[,t,n,r]=e;return`${(t??``)+(n??``)}.${r}`}}}else{let e=i.lastIndexOf(`.`);if(e!==-1){let t=i.substring(e+1);t.length<=2&&/^\d*$/.test(t)&&(s=!0,c=e)}if(!s&&o!==-1){let e=i.substring(o+1);!(o<=3&&e.length>=3)&&e.length<=2&&/^\d*$/.test(e)&&(s=!0,c=o)}}if(s&&c!==-1){let e=i.substring(0,c).replace(/[.,]/g,``),t=i.substring(c+1).replace(/[.,]/g,``);return t===``?`${e}.`:`${e}.${t.substring(0,2)}`}return i.replace(/[.,]/g,``)},validate:e=>{if(!z.currencyValidation.test(e))return!1;let t=parseFloat(e);return!Number.isNaN(t)&&t>=0}},percentage:{pattern:`##.##%`,transform:e=>{let t=e.replace(z.percentageChars,``),n=t.split(`.`);return n.length>2?`${n[0]}.${n.slice(1).join(``)}`:n[1]&&n[1].length>2?`${n[0]}.${n[1].substring(0,2)}`:t},validate:(e,t={})=>{let n=parseFloat(e),r=t.min??0,i=t.max??100;return!Number.isNaN(n)&&n>=r&&n<=i}},licensePlate:{pattern:`###-###`,transform:e=>e.replace(z.nonAlphaNumeric,``).toUpperCase(),validate:e=>z.licensePlate.test(e)},ipv4:{pattern:`###.###.###.###`,transform:e=>e.replace(z.nonNumericDot,``),validate:e=>{if(e.includes(`.`)){let t=e.split(`.`);return t.length>4?!1:t.every(e=>e===``?!0:z.ipv4Segment.test(e)?parseInt(e,10)<=255:!1)}else{if(!z.digitsOnly.test(e)||e.length>12)return!1;let t=[];for(let n=0;n<e.length;n+=3)t.push(e.substring(n,n+3));return t.length>4?!1:t.every(e=>{let t=parseInt(e,10);return t>=0&&t<=255})}}},macAddress:{pattern:`##:##:##:##:##:##`,transform:e=>e.replace(z.nonAlphaNumeric,``).toUpperCase(),validate:e=>z.macAddress.test(e)},isbn:{pattern:`###-#-###-#####-#`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.isbn.test(e.replace(z.nonDigits,``))},ein:{pattern:`##-#######`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.ein.test(e.replace(z.nonDigits,``))}};function tc(e){let{value:t,pattern:n,currency:r,locale:i,mask:a}=e,o=t;if(n.includes(`$`)||n.includes(`€`)||a===`currency`)return nc({value:o,currency:r??Hs,locale:i??Us});if(n.includes(`%`))return rc(o);if(a===`ipv4`)return o;let s=[],c=0;for(let e=0;e<n.length&&c<o.length;e++){let t=n[e],r=o[c];t===`#`&&r?(s.push(r),c++):t&&s.push(t)}return s.join(``)}function nc(e){let{value:t,currency:n=Hs,locale:r=Us}=e;if(!t)return``;let{currency:i,decimal:a,group:o}=Zs({locale:r,currency:n}),s=t.replace(RegExp(`\\${o.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}`,`g`),``).replace(a,`.`).split(`.`),c=s[0]??``,l=s[1]??``;if(!c&&!l)return``;let u=c??`0`,d=l.slice(0,2),f=Number(`${u}.${d??``}`);if(Number.isNaN(f)){let e=t.replace(/[^\d]/g,``);return e?`${i}${e}`:``}let p=t.includes(`.`)||t.includes(a);try{let e=Xs(r,{currency:n,minimumFractionDigits:d?d.length:0,maximumFractionDigits:2}).format(f);return p&&!d?e.match(/^[^\d\s]+/)?e.replace(/(\d)$/,`$1${a}`):e.replace(/(\d)(\s*)([^\d\s]+)$/,`$1${a}$2$3`):e}catch{let e=`${i}${u.replace(/\B(?=(\d{3})+(?!\d))/g,o)}`;return p&&(e+=`${a}${d}`),e}}function rc(e){if(!e)return``;let t=e.split(`.`),n=t[0]??`0`;return e.includes(`.`)&&(n+=`.${(t[1]??``).substring(0,2)}`),`${n}%`}function ic(e){let{value:t,transform:n,currency:r,locale:i}=e;return n?n(t,{currency:r,locale:i}):t.replace(z.nonDigits,``)}function ac(e){let{masked:t,pattern:n,caret:r}=e,i=0;for(let e=0;e<r&&e<t.length&&e<n.length;e++)n[e]===`#`&&i++;return i}function oc(e){let{masked:t,pattern:n,unmaskedIndex:r}=e,i=0;for(let e=0;e<t.length&&e<n.length;e++)if(n[e]===`#`&&(i++,i===r))return e+1;return t.length}function sc(e){let{newValue:t,mask:n,transformOpts:r,oldCursorPosition:i,oldValue:a,previousUnmasked:o}=e;if(i!==void 0&&a&&o!==void 0&&i<a.length){let e=a.substring(0,i).replace(/\D/g,``).length,n=0;for(let r=0;r<t.length;r++)if(/\d/.test(t[r]??``)&&(n++,n===e))return r+1}if(n===`currency`)if(Qs(r)){let e=t.match(/(\d)\s*([^\d\s]+)$/);return e?.[1]?t.lastIndexOf(e[1])+1:t.length}else return t.length;else return t.length}function cc(e){let{newValue:t,maskPattern:n,currentUnmasked:r,oldCursorPosition:i,oldValue:a,previousUnmasked:o}=e,s=0,c=0;if(i!==void 0&&a&&o!==void 0){let e=ac({masked:a,pattern:n.pattern,caret:i});if(i<a.length){let i=Math.min(e,r.length);for(let e=0;e<n.pattern.length&&e<t.length;e++)n.pattern[e]===`#`&&(c++,c<=i&&(s=e+1));return s}}for(let e=0;e<n.pattern.length&&e<t.length;e++)n.pattern[e]===`#`&&(c++,c<=r.length&&(s=e+1));return s}function lc(e){let{value:t,defaultValue:n,onValueChange:r,onValidate:i,onBlur:a,onFocus:o,onKeyDown:s,onPaste:c,onCompositionStart:l,onCompositionEnd:u,validationMode:d=`onChange`,mask:f,maskPlaceholder:p,currency:m=Hs,locale:h=Us,placeholder:g,inputMode:_,min:v,max:y,maxLength:b,asChild:x=!1,disabled:S=!1,invalid:w=!1,readOnly:T=!1,required:E=!1,withoutMask:D=!1,className:O,ref:k,...A}=e,[ee,te]=L.useState(n??``),[ne,j]=L.useState(!1),[M,re]=L.useState(!1),[ae,oe]=L.useState(!1),se=L.useRef(null),ce=Rs(k,se),le=t!==void 0,ue=le?t:ee,N=L.useMemo(()=>typeof f==`string`?ec[f]:f,[f]),P=L.useMemo(()=>({currency:m,locale:h}),[m,h]),de=L.useMemo(()=>D?g:g&&p?ne?p:g:p?ne?p:void 0:g,[g,p,ne,D]),fe=L.useMemo(()=>D||!N||!ue?ue??``:tc({value:ic({value:ue,transform:N.transform,...P}),pattern:N.pattern,...P,mask:f}),[ue,N,D,P,f]),pe=L.useMemo(()=>{if(!(!N||Gs.test(N.pattern)))return N.pattern.match(z.hashPattern)?.length??0},[N])?N?.pattern.length:b,me=L.useMemo(()=>{if(_)return _;if(N){if(f===`currency`||f===`percentage`||f===`ipv4`)return`decimal`;if(typeof f==`string`&&Ws.test(f))return`numeric`}},[N,f,_]),he=L.useCallback(e=>{if(!i||!N?.validate)return!1;switch(d){case`onChange`:return e===`change`;case`onBlur`:return e===`blur`;case`onSubmit`:return!1;case`onTouched`:return ae?e===`change`:e===`blur`;case`all`:return!0;default:return e===`change`}},[i,N,d,ae]),ge=L.useMemo(()=>({min:typeof v==`string`?parseFloat(v):v,max:typeof y==`string`?parseFloat(y):y}),[v,y]),_e=L.useCallback(e=>{if(i&&N?.validate){let t=N.validate(e,ge);i(t,e)}},[i,N?.validate,ge]),ve=L.useCallback(e=>{let t=e.target.value,n=t,a=t;if(M){le||te(t);return}if(D||!N){le||te(t),he(`change`)&&i?.(!0,t),r?.(t,t);return}if(N&&(a=ic({value:t,transform:N.transform,...P}),n=tc({value:a,pattern:N.pattern,...P,mask:f}),se.current&&n!==t)){let e=se.current;if(!(e instanceof HTMLInputElement))return;let r=e.selectionStart??0;e.value=n;let i=ic({value:n,transform:N.transform,...P}),a,o=ic({value:ue,transform:N.transform,...P});a=Gs.test(N.pattern)?sc({newValue:n,mask:f,transformOpts:P,oldCursorPosition:r,oldValue:t,previousUnmasked:o}):cc({newValue:n,maskPattern:N,currentUnmasked:i,oldCursorPosition:r,oldValue:t,previousUnmasked:o}),$s({mask:f,pattern:N.pattern})?f===`currency`&&Qs(P)||(a=Math.max(1,a)):N.pattern.includes(`%`)&&(a=Math.min(n.length-1,a)),a=Math.min(a,n.length),e.setSelectionRange(a,a)}le||te(n),he(`change`)&&_e(a),r?.(n,a)},[N,le,r,i,_e,M,he,D,P,f,ue]),ye=L.useCallback(e=>{o?.(e),!e.defaultPrevented&&j(!0)},[o]),be=L.useCallback(e=>{if(a?.(e),!e.defaultPrevented&&(j(!1),ae||oe(!0),he(`blur`))){let t=e.target.value,n=N?ic({value:t,transform:N.transform,...P}):t;_e(n)}},[a,ae,he,_e,N,P]),xe=L.useCallback(e=>{l?.(e),!e.defaultPrevented&&re(!0)},[l]),Se=L.useCallback(e=>{if(u?.(e),e.defaultPrevented)return;re(!1);let t=se.current;if(!t||!(t instanceof HTMLInputElement))return;let n=t.value;if(!N||D){le||te(n),he(`change`)&&i?.(!0,n),r?.(n,n);return}let a=ic({value:n,transform:N.transform,...P}),o=tc({value:a,pattern:N.pattern,...P,mask:f});le||te(o),he(`change`)&&_e(a),r?.(o,a)},[u,N,D,le,he,i,r,P,f,_e]),Ce=L.useCallback(e=>{if(c?.(e),e.defaultPrevented||D||!N||f===`ipv4`)return;let t=e.target;if(!(t instanceof HTMLInputElement))return;let n=e.clipboardData.getData(`text`);if(!n)return;e.preventDefault();let i=t.value,a=t.selectionStart??0,o=t.selectionEnd??0,s=i.slice(0,a),l=i.slice(o),u=ic({value:s+n+l,transform:N.transform,...P}),d=tc({value:u,pattern:N.pattern,...P,mask:f});if(t.value=d,$s({mask:f,pattern:N.pattern})){let e=Qs(P)?d.search(/\s*[^\d\s]+$/):d.length;t.setSelectionRange(e,e);return}if(N.pattern.includes(`%`)){t.setSelectionRange(d.length-1,d.length-1);return}let p=d.length;try{let e=u.length,t=0,n=0;for(let r=0;r<N.pattern.length&&r<d.length;r++)N.pattern[r]===`#`&&(n++,n<=e&&(t=r+1));p=t}catch{}t.setSelectionRange(p,p),le||te(d),he(`change`)&&_e(u),r?.(d,u)},[c,D,N,f,P,le,he,_e,r]),we=L.useCallback(e=>{if(s?.(e),!e.defaultPrevented&&!(D||!N)&&f!==`ipv4`){if(e.key===`Backspace`){let t=e.target;if(!(t instanceof HTMLInputElement))return;let n=t.selectionStart??0,i=t.selectionEnd??0,a=t.value;if(f===`currency`||f===`percentage`||N.pattern.includes(`$`)||N.pattern.includes(`€`)||N.pattern.includes(`%`)||n!==i)return;if(n>0&&a[n-1]){e.preventDefault();let i=ac({masked:a,pattern:N.pattern,caret:n});if(i>0){let e=ic({value:a,transform:N.transform,...P}),n=e.slice(0,i-1)+e.slice(i),o=tc({value:n,pattern:N.pattern,...P,mask:f});t.value=o;let s=oc({masked:o,pattern:N.pattern,unmaskedIndex:i-1});t.setSelectionRange(s,s),r?.(o,n)}return}}if(e.key===`Delete`){let t=e.target;if(!(t instanceof HTMLInputElement))return;let n=t.selectionStart??0,i=t.selectionEnd??0,a=t.value;if(f===`currency`||f===`percentage`||N.pattern.includes(`$`)||N.pattern.includes(`€`)||N.pattern.includes(`%`)||n!==i)return;if(n<a.length&&a[n]){e.preventDefault();let i=ac({masked:a,pattern:N.pattern,caret:n}),o=ic({value:a,transform:N.transform,...P});if(i<o.length){let e=o.slice(0,i)+o.slice(i+1),n=tc({value:e,pattern:N.pattern,...P,mask:f});t.value=n;let a=oc({masked:n,pattern:N.pattern,unmaskedIndex:i});t.setSelectionRange(a,a),r?.(n,e)}return}}}},[N,s,r,P,f,D]);return(0,R.jsxDEV)(x?ie:`input`,{"aria-invalid":w,"data-disabled":S?``:void 0,"data-invalid":w?``:void 0,"data-readonly":T?``:void 0,"data-required":E?``:void 0,"data-slot":`mask-input`,...A,className:C(`flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30`,`focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,`aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40`,O),placeholder:de,ref:ce,value:fe,disabled:S,maxLength:pe,readOnly:T,required:E,inputMode:me,min:v,max:y,onFocus:ye,onBlur:be,onKeyDown:we,onPaste:Ce,onChange:ve,onCompositionStart:xe,onCompositionEnd:Se},void 0,!1,{fileName:zs,lineNumber:1468,columnNumber:5},this)}var uc=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/option-icon.tsx`,dc={xs:14,sm:16,md:20,lg:28};function fc({icon:e,size:t=`sm`,framed:n=!1,className:r}){let i=dc[t];if(n){let t={width:i,height:i};return e.kind===`image`?(0,R.jsxDEV)(`img`,{src:e.value,alt:``,loading:`lazy`,className:`shrink-0 rounded-full border border-border object-cover ${r??``}`,style:t},void 0,!1,{fileName:uc,lineNumber:28,columnNumber:9},this):e.kind===`swatch`?(0,R.jsxDEV)(`span`,{className:`shrink-0 rounded-full border border-border ${r??``}`,style:{...t,backgroundColor:e.value}},void 0,!1,{fileName:uc,lineNumber:38,columnNumber:9},this):(0,R.jsxDEV)(`span`,{className:`shrink-0 grid place-items-center rounded-full border border-border bg-elevated text-muted ${r??``}`,style:t,children:(0,R.jsxDEV)(Te,{name:e.value,size:Math.round(i*.55)},void 0,!1,{fileName:uc,lineNumber:48,columnNumber:9},this)},void 0,!1,{fileName:uc,lineNumber:44,columnNumber:7},this)}return e.kind===`swatch`?(0,R.jsxDEV)(`span`,{className:`shrink-0 inline-block rounded-full border border-border/60 ${r??``}`,style:{width:i,height:i,backgroundColor:e.value}},void 0,!1,{fileName:uc,lineNumber:54,columnNumber:7},this):e.kind===`image`?(0,R.jsxDEV)(`img`,{src:e.value,alt:``,loading:`lazy`,className:`shrink-0 rounded-full border border-border object-cover ${r??``}`,style:{width:i,height:i}},void 0,!1,{fileName:uc,lineNumber:61,columnNumber:7},this):(0,R.jsxDEV)(Te,{name:e.value,size:i,className:`shrink-0 ${r??``}`},void 0,!1,{fileName:uc,lineNumber:69,columnNumber:10},this)}var pc={};function mc(e){if(!e.kind)throw Error(`[list-view] view without kind`);if(pc[e.kind])throw Error(`[list-view] kind '${e.kind}' already registered`);pc[e.kind]=e}function hc(e){return pc[e]}function gc(e){return(e??``).replace(/```[\s\S]*?```/g,` `).replace(/`([^`]+)`/g,`$1`).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/^#{1,6}\s+/gm,``).replace(/[*_~>#-]+/g,` `).replace(/\s+/g,` `).trim()}var _c=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/markdown-view.tsx`;Hn.addHook(`afterSanitizeAttributes`,e=>{e.tagName===`A`&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))});function vc(e){let t=Vn.parse(e,{async:!1});return Hn.sanitize(t)}function yc({value:e}){return(0,R.jsxDEV)(`div`,{className:`md-static`,dangerouslySetInnerHTML:{__html:vc(e)}},void 0,!1,{fileName:_c,lineNumber:32,columnNumber:10},this)}var B=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/text.tsx`,bc=(0,L.lazy)(()=>c(()=>import(`./MarkdownEditor-CxlMpjDc.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),xc=(0,L.lazy)(()=>c(()=>import(`./esm-Dfm1ivm4.js`),__vite__mapDeps([16,1,2,6,8,17,18,12,13,19,20]))),Sc=(0,L.lazy)(()=>c(()=>import(`./esm-C5Scej0H.js`),__vite__mapDeps([21,1,2,6]))),Cc=(0,L.lazy)(()=>c(()=>import(`./dist-COeDLrWj.js`).then(e=>({default:e.HexColorPicker})),__vite__mapDeps([22,1,2]))),wc=(0,L.lazy)(()=>c(()=>import(`./phone-input-DLmP9Sfd.js`).then(e=>({default:e.PhoneInput})),__vite__mapDeps([23,1,2,3,24,4,25,26,5,6,27]))),Tc={iban:{pattern:`#### #### #### #### #### #### #### ##`,transform:e=>e.replace(/[^a-z0-9]/gi,``).toUpperCase()}};function Ec({name:e,field:t,value:n,onChange:r}){let i=t.hints,a=i.inputType??`text`;if(i.multiple===!0)return(0,R.jsxDEV)(St,{value:n,onChange:r,renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:B,lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:74,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);if(typeof i.mask==`string`){let t=Tc[i.mask]??i.mask,n=i.maskStore===`unmasked`;return(0,R.jsxDEV)(lc,{id:e,mask:t,value:o,onValueChange:(e,t)=>r(n?t:e)},void 0,!1,{fileName:B,lineNumber:105,columnNumber:7},this)}return(0,R.jsxDEV)(E,{id:e,type:a,value:o,onChange:e=>r(e.target.value),minLength:i.minLength,maxLength:i.maxLength},void 0,!1,{fileName:B,lineNumber:114,columnNumber:5},this)}function Dc({field:e,value:t}){return xt(e,t,e=>(0,R.jsxDEV)(`span`,{children:String(e)},void 0,!1,{fileName:B,lineNumber:126,columnNumber:41},this))}function Oc(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(Dc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:141,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Ec,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:B,lineNumber:143,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:131,columnNumber:5},this)}function kc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(String(e??``))},void 0,!1,{fileName:B,lineNumber:155,columnNumber:10},this)}I({kinds:[`text`,`email`,`slug`],Page:Oc,Inline:kc});function Ac(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>pt(e)?(0,R.jsxDEV)(`span`,{children:String(e)},void 0,!1,{fileName:B,lineNumber:179,columnNumber:35},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:179,columnNumber:62},this),edit:(e,t)=>(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:181,columnNumber:29},this),children:(0,R.jsxDEV)(wc,{value:String(e),onChange:e=>t(e??``)},void 0,!1,{fileName:B,lineNumber:182,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:181,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:168,columnNumber:5},this)}function jc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(String(e??``))},void 0,!1,{fileName:B,lineNumber:193,columnNumber:10},this)}I({kinds:[`tel`],Page:Ac,Inline:jc});var Mc=e=>/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`;function Nc({value:e}){let t=String(e??``);return t?(0,R.jsxDEV)(`a`,{href:Mc(t),target:`_blank`,rel:`noopener noreferrer`,className:`text-primary underline truncate`,children:t},void 0,!1,{fileName:B,lineNumber:210,columnNumber:5},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:208,columnNumber:18},this)}function Pc(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:e=>(0,R.jsxDEV)(Nc,{value:e},void 0,!1,{fileName:B,lineNumber:228,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(E,{type:`url`,value:String(e),onChange:e=>t(e.target.value)},void 0,!1,{fileName:B,lineNumber:230,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:218,columnNumber:5},this)}I({kinds:[`link`],Page:Pc,Inline:({value:e})=>(0,R.jsxDEV)(Nc,{value:e},void 0,!1,{fileName:B,lineNumber:243,columnNumber:44},void 0)});function Fc({name:e,field:t,value:n,onChange:r}){return t.hints.multiple===!0?(0,R.jsxDEV)(St,{value:n,onChange:r,display:()=>`•••`,renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{type:`password`,value:e,autoComplete:`new-password`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:B,lineNumber:256,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:251,columnNumber:7},this):(0,R.jsxDEV)(E,{id:e,type:`password`,value:n,autoComplete:`current-password`,onChange:e=>r(e.target.value)},void 0,!1,{fileName:B,lineNumber:274,columnNumber:5},this)}function Ic({field:e,value:t}){return e.hints.multiple===!0?(0,R.jsxDEV)(Ot,{items:In(t,[]),content:()=>`•••`,reserveEditor:!0},void 0,!1,{fileName:B,lineNumber:286,columnNumber:12},this):(0,R.jsxDEV)(`span`,{className:`text-muted text-sm select-none`,children:`•••`},void 0,!1,{fileName:B,lineNumber:288,columnNumber:10},this)}function Lc(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(Ic,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:303,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Fc,{name:`field-${e.field.label}`,field:e.field,value:String(t),onChange:n},void 0,!1,{fileName:B,lineNumber:305,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:293,columnNumber:5},this)}function Rc(){return(0,R.jsxDEV)(`span`,{children:`•••`},void 0,!1,{fileName:B,lineNumber:317,columnNumber:10},this)}I({kinds:[`password`],Page:Lc,Inline:Rc});function zc(e){let t=e.field.hints.maxLength;return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`textarea`,width:`w-full`,bare:e.bare,view:e=>pt(e)?(0,R.jsxDEV)(`p`,{className:`text-[15px] text-text/90 leading-relaxed whitespace-pre-wrap`,children:String(e)},void 0,!1,{fileName:B,lineNumber:344,columnNumber:16},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:343,columnNumber:34},this),edit:(n,r)=>(0,R.jsxDEV)(A,{id:`field-${e.field.label}`,value:String(n),maxLength:t,onChange:e=>r(e.target.value)},void 0,!1,{fileName:B,lineNumber:347,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:331,columnNumber:5},this)}function Bc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(String(e??``))},void 0,!1,{fileName:B,lineNumber:359,columnNumber:10},this)}I({kinds:[`textarea`],layout:`block`,box:`textarea`,Page:zc,Inline:Bc}),I({kinds:[`smalltext`],Page:zc,Inline:Bc});function Vc(e){let{t}=a(),n=e.field.hints.maxLength;return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`textarea`,width:`w-full`,bare:e.bare,view:e=>{if(!pt(e))return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:394,columnNumber:34},this);let n=String(e);return(0,R.jsxDEV)(`p`,{className:`text-[15px] text-text/90 leading-relaxed whitespace-pre-wrap`,children:t(n,{defaultValue:n})},void 0,!1,{fileName:B,lineNumber:396,columnNumber:16},this)},edit:(t,r)=>(0,R.jsxDEV)(A,{id:`field-${e.field.label}`,value:String(t),maxLength:n,onChange:e=>r(e.target.value)},void 0,!1,{fileName:B,lineNumber:399,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:382,columnNumber:5},this)}function Hc({value:e}){let{t}=a(),n=String(e??``);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(t(n,{defaultValue:n}))},void 0,!1,{fileName:B,lineNumber:413,columnNumber:10},this)}I({kinds:[`i18n`],layout:`block`,box:`textarea`,Page:Vc,Inline:Hc});function Uc({value:e,onChange:t}){let{t:n}=a();return(0,R.jsxDEV)(`div`,{className:`crepe-wrap`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:430,columnNumber:27},this),children:(0,R.jsxDEV)(bc,{value:e,onChange:t,placeholder:n(`form.mdPlaceholder`)},void 0,!1,{fileName:B,lineNumber:431,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:430,columnNumber:7},this)},void 0,!1,{fileName:B,lineNumber:429,columnNumber:5},this)}function Wc({value:e}){return vt(e,e=>(0,R.jsxDEV)(yc,{value:String(e)},void 0,!1,{fileName:B,lineNumber:438,columnNumber:31},this))}function Gc(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,R.jsxDEV)(Wc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:454,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Uc,{name:`field-${e.field.label}`,field:e.field,value:String(t),onChange:n},void 0,!1,{fileName:B,lineNumber:456,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:443,columnNumber:5},this)}function Kc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(gc(String(e??``)))||`—`},void 0,!1,{fileName:B,lineNumber:469,columnNumber:10},this)}I({kinds:[`markdown`],layout:`block`,Page:Gc,Inline:Kc});function qc(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:e=>(0,R.jsxDEV)(`pre`,{className:`min-w-0 min-h-32 text-[13px] leading-normal font-mono border border-transparent rounded-lg p-3 overflow-x-auto whitespace-pre-wrap text-text/90`,children:pt(e)?String(e):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:496,columnNumber:38},this)},void 0,!1,{fileName:B,lineNumber:495,columnNumber:9},this),edit:(t,n)=>(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,className:`json-editor-wrap min-w-0`,children:(0,R.jsxDEV)(`div`,{className:`rounded-xl overflow-hidden border border-border min-w-0`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:502,columnNumber:33},this),children:(0,R.jsxDEV)(xc,{value:String(t),language:e.field.hints.language??`text`,onChange:e=>n(e.target.value),padding:12,style:{fontFamily:`ui-monospace, monospace`,fontSize:13,background:`transparent`,minHeight:`8rem`}},void 0,!1,{fileName:B,lineNumber:503,columnNumber:15},this)},void 0,!1,{fileName:B,lineNumber:502,columnNumber:13},this)},void 0,!1,{fileName:B,lineNumber:501,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:500,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:483,columnNumber:5},this)}function Jc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(String(e??``))},void 0,!1,{fileName:B,lineNumber:524,columnNumber:10},this)}I({kinds:[`snippet`],layout:`block`,Page:qc,Inline:Jc});function Yc(e){return typeof e==`string`?e:e==null?``:JSON.stringify(e,null,2)}function Xc({value:e,onChange:t}){let n=!0;if(e.trim())try{JSON.parse(e)}catch{n=!1}return(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,className:`json-editor-wrap min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`rounded-xl overflow-hidden border min-w-0 ${n?`border-border`:`border-danger/60`}`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:562,columnNumber:29},this),children:(0,R.jsxDEV)(xc,{value:e,language:`json`,placeholder:`{ }`,onChange:e=>t(e.target.value),padding:12,style:{fontFamily:`ui-monospace, monospace`,fontSize:13,background:`transparent`,minHeight:`8rem`}},void 0,!1,{fileName:B,lineNumber:563,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:562,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:561,columnNumber:7},this),!n&&(0,R.jsxDEV)(`p`,{className:`text-xs text-danger mt-1 flex items-center gap-1`,children:[(0,R.jsxDEV)(Te,{name:`lucide:alert-triangle`,size:12,className:`shrink-0`},void 0,!1,{fileName:B,lineNumber:575,columnNumber:11},this),` JSON`]},void 0,!0,{fileName:B,lineNumber:574,columnNumber:9},this)]},void 0,!0,{fileName:B,lineNumber:560,columnNumber:5},this)}function Zc({value:e}){let t;try{t=typeof e==`object`?e:JSON.parse(String(e))}catch{t=void 0}return typeof t!=`object`||!t?(0,R.jsxDEV)(`pre`,{className:`min-w-0 text-xs bg-bg border border-border rounded-lg p-3 overflow-x-auto text-muted`,children:String(e)},void 0,!1,{fileName:B,lineNumber:591,columnNumber:7},this):(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,className:`min-w-0 bg-bg border border-border rounded-lg p-3 overflow-x-auto`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:598,columnNumber:27},this),children:(0,R.jsxDEV)(Sc,{value:t,style:{...Fs,"--w-rjv-background-color":`transparent`},displayDataTypes:!1,enableClipboard:!0,collapsed:2},void 0,!1,{fileName:B,lineNumber:599,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:598,columnNumber:7},this)},void 0,!1,{fileName:B,lineNumber:597,columnNumber:5},this)}function Qc(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,R.jsxDEV)(Zc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:624,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Xc,{name:`field-${e.field.label}`,field:e.field,value:Yc(t),onChange:n},void 0,!1,{fileName:B,lineNumber:626,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:613,columnNumber:5},this)}I({kinds:[`json`],layout:`block`,Page:Qc});function $c(e){let t=String(e);return(0,R.jsxDEV)(R.Fragment,{children:[/^#[0-9a-fA-F]{6}$/.test(t)&&(0,R.jsxDEV)(fc,{icon:{kind:`swatch`,value:t},size:`xs`},void 0,!1,{fileName:B,lineNumber:646,columnNumber:17},this),(0,R.jsxDEV)(`span`,{className:`font-mono`,children:t},void 0,!1,{fileName:B,lineNumber:647,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:645,columnNumber:5},this)}function el({value:e,onChange:t,field:n}){if(n.hints.multiple===!0)return(0,R.jsxDEV)(St,{value:e,onChange:t,validate:e=>/^#[0-9a-fA-F]{6}$/.test(e),display:$c,renderInput:(e,t,n)=>(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),className:`w-10 h-9 rounded cursor-pointer border border-border bg-transparent p-0.5`},void 0,!1,{fileName:B,lineNumber:662,columnNumber:13},this),(0,R.jsxDEV)(E,{value:e,onChange:e=>t(e.target.value),maxLength:7,className:`w-28 font-mono`,placeholder:`#000000`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:B,lineNumber:668,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:661,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:655,columnNumber:7},this);let r=typeof e==`string`&&/^#[0-9a-fA-F]{6}$/.test(e)?e:`#000000`;return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 pl-2 min-h-9`,children:[(0,R.jsxDEV)(P,{children:[(0,R.jsxDEV)(ue,{asChild:!0,children:(0,R.jsxDEV)(`button`,{type:`button`,"aria-label":`pick color`,className:`w-5 h-5 shrink-0 rounded-full border border-border cursor-pointer`,style:{background:r}},void 0,!1,{fileName:B,lineNumber:691,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:690,columnNumber:9},this),(0,R.jsxDEV)(ce,{className:`w-auto p-2`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`w-[200px] h-[200px] text-sm text-muted flex items-center justify-center`,children:`…`},void 0,!1,{fileName:B,lineNumber:699,columnNumber:31},this),children:(0,R.jsxDEV)(Cc,{color:r,onChange:t},void 0,!1,{fileName:B,lineNumber:700,columnNumber:13},this)},void 0,!1,{fileName:B,lineNumber:699,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:698,columnNumber:9},this)]},void 0,!0,{fileName:B,lineNumber:689,columnNumber:7},this),(0,R.jsxDEV)(E,{value:e,onChange:e=>t(e.target.value),pattern:`#[0-9a-fA-F]{6}`,maxLength:7,className:`w-28 h-auto border-0 bg-transparent p-0 shadow-none font-mono text-sm focus-visible:ring-0`,placeholder:`#000000`},void 0,!1,{fileName:B,lineNumber:704,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:688,columnNumber:5},this)}function tl({field:e,value:t}){if(e.hints.multiple===!0)return(0,R.jsxDEV)(Ot,{items:In(t,[]),content:$c,reserveEditor:!0},void 0,!1,{fileName:B,lineNumber:718,columnNumber:12},this);let n=String(t);return!n||!/^#[0-9a-fA-F]{6}$/.test(n)?(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:721,columnNumber:54},this):(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxDEV)(fc,{icon:{kind:`swatch`,value:n},size:`md`},void 0,!1,{fileName:B,lineNumber:724,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`font-mono text-sm`,children:n},void 0,!1,{fileName:B,lineNumber:725,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:723,columnNumber:5},this)}function nl(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:t=>(0,R.jsxDEV)(tl,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:743,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(el,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:B,lineNumber:745,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:732,columnNumber:5},this)}I({kinds:[`color`],Page:nl});function rl({value:e,onChange:t,field:n}){let{t:r}=a(),i=n.hints.suggestions,o=L.useId(),s=e=>i&&i.length>0?(0,R.jsxDEV)(`datalist`,{id:o,children:i.filter(t=>!e.includes(t)).map(e=>(0,R.jsxDEV)(`option`,{value:e},e,!1,{fileName:B,lineNumber:770,columnNumber:13},this))},void 0,!1,{fileName:B,lineNumber:766,columnNumber:7},this):null;if(n.hints.multiple===!0){let n=ht(e);return(0,R.jsxDEV)(St,{value:e,onChange:t,renderInput:(e,t,a)=>(0,R.jsxDEV)(R.Fragment,{children:[s(n),(0,R.jsxDEV)(E,{value:e,list:i?.length?o:void 0,onChange:e=>t(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),a())},placeholder:r(`form.addTag`),className:`flex-1`},void 0,!1,{fileName:B,lineNumber:784,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:782,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:778,columnNumber:7},this)}let c=typeof e==`string`?e:String(e??``);return(0,R.jsxDEV)(R.Fragment,{children:[s(c?[c]:[]),(0,R.jsxDEV)(E,{value:c,list:i?.length?o:void 0,onChange:e=>t(e.target.value)},void 0,!1,{fileName:B,lineNumber:809,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:807,columnNumber:5},this)}function il({field:e,value:t}){return(0,R.jsxDEV)(Ot,{items:e.hints.multiple===!0?In(t,[]):t?[String(t)]:[],content:e=>String(e),reserveEditor:e.hints.multiple===!0},void 0,!1,{fileName:B,lineNumber:820,columnNumber:10},this)}function al(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(il,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:835,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(rl,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:B,lineNumber:837,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:825,columnNumber:5},this)}function ol({field:e,value:t}){if(e.hints.multiple===!0){let e=ht(String(t??``));return(0,R.jsxDEV)(`span`,{className:`truncate`,children:e.length?String(e.length):`—`},void 0,!1,{fileName:B,lineNumber:851,columnNumber:12},this)}return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(String(t??``))},void 0,!1,{fileName:B,lineNumber:853,columnNumber:10},this)}I({kinds:[`tag`],Page:al,Inline:ol});function sl(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`title`,bare:e.bare,view:e=>pt(e)?(0,R.jsxDEV)(`span`,{className:`text-[28px] font-bold text-text leading-tight`,children:String(e)},void 0,!1,{fileName:B,lineNumber:877,columnNumber:23},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:B,lineNumber:877,columnNumber:108},this),edit:(t,n)=>(0,R.jsxDEV)(`input`,{id:`field-${e.field.label}`,value:String(t),onChange:e=>n(e.target.value),style:{fontSize:`28px`,padding:`4px 12px`},className:`w-full rounded-lg border border-input bg-background font-bold text-text leading-tight outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring placeholder:text-muted/40`,placeholder:`…`},void 0,!1,{fileName:B,lineNumber:880,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:866,columnNumber:5},this)}function cl({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Et(String(e??``))},void 0,!1,{fileName:B,lineNumber:894,columnNumber:10},this)}I({kinds:[`title`],Page:sl,Inline:cl});var V=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/localpath.tsx`;function ll(e){let t=e.lastIndexOf(`/`);return t<0?{dirPrefix:``,partial:e}:{dirPrefix:e.slice(0,t),partial:e.slice(t+1)}}function ul(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function dl(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n<0?`~`:t.slice(0,n)||`/`}function fl({dirsOnly:e,exts:t,initialDir:n,onPick:r}){let[i,a]=(0,L.useState)(n||`~`),[o,s]=(0,L.useState)([]),[c,l]=(0,L.useState)(!1);(0,L.useEffect)(()=>{let n=!1,r=new URLSearchParams({path:i});return!e&&t?.length&&r.set(`exts`,t.join(`,`)),fetch(`/api/fs/list?${r.toString()}`).then(e=>e.ok?e.json():{entries:[]}).then(e=>{n||s(e.entries??[])}).catch(()=>{}),()=>{n=!0}},[i,e,t]);let u=o.filter(t=>(!e||t.isDir)&&(c||!t.name.startsWith(`.`)));return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,onClick:()=>a(dl(i)),"aria-label":`up`,disabled:i===`~`||i===`/`,children:(0,R.jsxDEV)(ws,{size:15},void 0,!1,{fileName:V,lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:77,columnNumber:9},this),(0,R.jsxDEV)(`span`,{className:`flex-1 truncate font-mono text-xs text-muted`,title:i,children:i},void 0,!1,{fileName:V,lineNumber:80,columnNumber:9},this),(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,onClick:()=>l(e=>!e),"aria-label":`hidden`,title:c?`Hide dotfiles`:`Show dotfiles`,children:c?(0,R.jsxDEV)(Os,{size:15},void 0,!1,{fileName:V,lineNumber:84,columnNumber:25},this):(0,R.jsxDEV)(Ds,{size:15},void 0,!1,{fileName:V,lineNumber:84,columnNumber:45},this)},void 0,!1,{fileName:V,lineNumber:83,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:76,columnNumber:7},this),(0,R.jsxDEV)(Zn,{className:`h-56 -mx-1 px-1`,children:(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[u.length===0&&(0,R.jsxDEV)(`span`,{className:`px-2 py-3 text-xs text-muted`,children:`—`},void 0,!1,{fileName:V,lineNumber:90,columnNumber:36},this),u.map(t=>(0,R.jsxDEV)(`div`,{className:`group flex items-center rounded-md hover:bg-elevated`,children:[(0,R.jsxDEV)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left text-sm`,onClick:()=>t.isDir?a(ul(i,t.name)):r(ul(i,t.name),!1),children:[t.isDir?(0,R.jsxDEV)(Se,{size:15,className:`shrink-0 text-muted`},void 0,!1,{fileName:V,lineNumber:98,columnNumber:28},this):(0,R.jsxDEV)(Mt,{size:15,className:`shrink-0 text-muted`},void 0,!1,{fileName:V,lineNumber:98,columnNumber:83},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:t.name},void 0,!1,{fileName:V,lineNumber:99,columnNumber:17},this),t.isDir&&(0,R.jsxDEV)(Ss,{size:14,className:`ml-auto shrink-0 text-muted opacity-0 group-hover:opacity-100`},void 0,!1,{fileName:V,lineNumber:100,columnNumber:29},this)]},void 0,!0,{fileName:V,lineNumber:93,columnNumber:15},this),e&&t.isDir&&(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,className:`mr-1`,onClick:()=>r(ul(i,t.name),!0),"aria-label":`select`,title:`Select folder`,children:(0,R.jsxDEV)(et,{size:15},void 0,!1,{fileName:V,lineNumber:105,columnNumber:19},this)},void 0,!1,{fileName:V,lineNumber:104,columnNumber:17},this)]},t.name,!0,{fileName:V,lineNumber:92,columnNumber:13},this))]},void 0,!0,{fileName:V,lineNumber:89,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:88,columnNumber:7},this),e&&(0,R.jsxDEV)(F,{variant:`outline`,size:`sm`,onClick:()=>r(i,!0),children:[(0,R.jsxDEV)(et,{size:14},void 0,!1,{fileName:V,lineNumber:116,columnNumber:11},this),` Choose this directory`]},void 0,!0,{fileName:V,lineNumber:115,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:74,columnNumber:5},this)}function pl({name:e,field:t,value:n,onChange:r}){let i=t.kind===`localDir`,a=t.hints.exts,[o,s]=(0,L.useState)(!1);return(0,R.jsxDEV)(`div`,{className:`flex items-stretch gap-1.5`,children:[(0,R.jsxDEV)(E,{id:e,value:n,onChange:e=>r(e.target.value),placeholder:`~/…`,spellCheck:!1,autoComplete:`off`},void 0,!1,{fileName:V,lineNumber:140,columnNumber:7},this),(0,R.jsxDEV)(P,{open:o,onOpenChange:s,children:[(0,R.jsxDEV)(ue,{asChild:!0,children:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,size:`icon`,"aria-label":`browse`,children:(0,R.jsxDEV)(Se,{size:16},void 0,!1,{fileName:V,lineNumber:151,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:150,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:149,columnNumber:9},this),(0,R.jsxDEV)(ce,{align:`end`,className:`w-80 p-3`,children:o&&(0,R.jsxDEV)(fl,{dirsOnly:i,exts:a,initialDir:ll(n).dirPrefix||`~`,onPick:(e,t)=>{r(t?`${e.replace(/\/+$/,``)}/`:e),t||s(!1)}},void 0,!1,{fileName:V,lineNumber:156,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:154,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:148,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:139,columnNumber:5},this)}function ml(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:e=>pt(e)?(0,R.jsxDEV)(`span`,{className:`font-mono text-sm break-all`,children:String(e)},void 0,!1,{fileName:V,lineNumber:184,columnNumber:35},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:V,lineNumber:184,columnNumber:102},this),edit:(t,n)=>(0,R.jsxDEV)(pl,{name:`field-${e.field.label}`,field:e.field,value:String(t),onChange:n},void 0,!1,{fileName:V,lineNumber:186,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:174,columnNumber:5},this)}function hl({value:e}){return(0,R.jsxDEV)(`span`,{className:`font-mono truncate`,children:Et(String(e??``))},void 0,!1,{fileName:V,lineNumber:198,columnNumber:10},this)}I({kinds:[`localDir`,`localFile`],Page:ml,Inline:hl});function gl(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}var _l;(function(e){e.event=`event`,e.props=`prop`})(_l||={});function vl(){}function yl(e){var t,n=void 0;return function(){for(var r=[],i=arguments.length;i--;)r[i]=arguments[i];return t&&r.length===t.length&&r.every(function(e,n){return e===t[n]})?n:(t=r,n=e.apply(void 0,r),n)}}function bl(e){return!!(e||``).match(/\d/)}function xl(e){return e==null}function Sl(e){return typeof e==`number`&&isNaN(e)}function Cl(e){return xl(e)||Sl(e)||typeof e==`number`&&!isFinite(e)}function wl(e){return e.replace(/[-[\]/{}()*+?.\\^$|]/g,`\\$&`)}function Tl(e){switch(e){case`lakh`:return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case`wan`:return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}function El(e,t,n){var r=Tl(n),i=e.search(/[1-9]/);return i=i===-1?e.length:i,e.substring(0,i)+e.substring(i,e.length).replace(r,`$1`+t)}function Dl(e){var t=(0,L.useRef)(e);return t.current=e,(0,L.useRef)(function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return t.current.apply(t,e)}).current}function Ol(e,t){t===void 0&&(t=!0);var n=e[0]===`-`,r=n&&t;e=e.replace(`-`,``);var i=e.split(`.`);return{beforeDecimal:i[0],afterDecimal:i[1]||``,hasNegation:n,addNegation:r}}function kl(e){if(!e)return e;var t=e[0]===`-`;t&&(e=e.substring(1,e.length));var n=e.split(`.`),r=n[0].replace(/^0+/,``)||`0`,i=n[1]||``;return(t?`-`:``)+r+(i?`.`+i:``)}function Al(e,t,n){for(var r=``,i=n?`0`:``,a=0;a<=t-1;a++)r+=e[a]||i;return r}function jl(e,t){return Array(t+1).join(e)}function Ml(e){var t=e+``,n=t[0]===`-`?`-`:``;n&&(t=t.substring(1));var r=t.split(/[eE]/g),i=r[0],a=r[1];if(a=Number(a),!a)return n+i;i=i.replace(`.`,``);var o=1+a,s=i.length;return o<0?i=`0.`+jl(`0`,Math.abs(o))+i:o>=s?i+=jl(`0`,o-s):i=(i.substring(0,o)||`0`)+`.`+i.substring(o),n+i}function Nl(e,t,n){if([``,`-`].indexOf(e)!==-1)return e;var r=(e.indexOf(`.`)!==-1||n)&&t,i=Ol(e),a=i.beforeDecimal,o=i.afterDecimal,s=i.hasNegation,c=parseFloat(`0.`+(o||`0`)),l=(o.length<=t?`0.`+o:c.toFixed(t)).split(`.`),u=a;a&&Number(l[0])&&(u=a.split(``).reverse().reduce(function(e,t,n){return e.length>n?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e},l[0]));var d=Al(l[1]||``,t,n),f=s?`-`:``,p=r?`.`:``;return``+f+u+p+d}function Pl(e,t){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move(`character`,t),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}var Fl=yl(function(e,t){for(var n=0,r=0,i=e.length,a=t.length;e[n]===t[n]&&n<i;)n++;for(;e[i-1-r]===t[a-1-r]&&a-r>n&&i-r>n;)r++;return{from:{start:n,end:i-r},to:{start:n,end:a-r}}}),Il=function(e,t){var n=Math.min(e.selectionStart,t);return{from:{start:n,end:e.selectionEnd},to:{start:n,end:t}}};function Ll(e,t,n){return Math.min(Math.max(e,t),n)}function Rl(e){return Math.max(e.selectionStart,e.selectionEnd)}function zl(){return typeof navigator<`u`&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Bl(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:``}}function Vl(e){var t=e.currentValue,n=e.formattedValue,r=e.currentValueIndex,i=e.formattedValueIndex;return t[r]===n[i]}function Hl(e,t,n,r,i,a,o){o===void 0&&(o=Vl);var s=i.findIndex(function(e){return e}),c=e.slice(0,s);!t&&!n.startsWith(c)&&(t=c,n=c+n,r+=c.length);for(var l=n.length,u=e.length,d={},f=Array(l),p=0;p<l;p++){f[p]=-1;for(var m=0,h=u;m<h;m++)if(o({currentValue:n,lastValue:t,formattedValue:e,currentValueIndex:p,formattedValueIndex:m})&&d[m]!==!0){f[p]=m,d[m]=!0;break}}for(var g=r;g<l&&(f[g]===-1||!a(n[g]));)g++;var _=g===l||f[g]===-1?u:f[g];for(g=r-1;g>0&&f[g]===-1;)g--;var v=g===-1||f[g]===-1?0:f[g]+1;return v>_?_:r-v<_-r?v:_}function Ul(e,t,n,r){var i=e.length;if(t=Ll(t,0,i),r===`left`){for(;t>=0&&!n[t];)t--;t===-1&&(t=n.indexOf(!0))}else{for(;t<=i&&!n[t];)t++;t>i&&(t=n.lastIndexOf(!0))}return t===-1&&(t=i),t}function Wl(e){for(var t=Array.from({length:e.length+1}).map(function(){return!0}),n=0,r=t.length;n<r;n++)t[n]=!!(bl(e[n])||bl(e[n-1]));return t}function Gl(e,t,n,r,i,a){a===void 0&&(a=vl);var o=Dl(function(e,t){var n,a;return Cl(e)?(a=``,n=``):typeof e==`number`||t?(a=typeof e==`number`?Ml(e):e,n=r(a)):(a=i(e,void 0),n=r(a)),{formattedValue:n,numAsString:a}}),s=(0,L.useState)(function(){return o(xl(e)?t:e,n)}),c=s[0],l=s[1],u=Dl(function(e,t){e.formattedValue!==c.formattedValue&&l({formattedValue:e.formattedValue,numAsString:e.value}),a(e,t)}),d=e,f=n;xl(e)&&(d=c.numAsString,f=!0);var p=o(d,f);return(0,L.useMemo)(function(){l(p)},[p.formattedValue]),(0,L.useEffect)(function(){if(!xl(t)&&xl(e)&&c.formattedValue!==``){var n=parseFloat(c.numAsString);u({formattedValue:c.formattedValue,value:c.numAsString,floatValue:isNaN(n)?void 0:n},{event:void 0,source:_l.props})}},[]),[c,u]}function Kl(e){return e.replace(/[^0-9]/g,``)}function ql(e){return e}function Jl(e){var t=e.type;t===void 0&&(t=`text`);var n=e.displayType;n===void 0&&(n=`input`);var r=e.customInput,i=e.renderText,a=e.getInputRef,o=e.format;o===void 0&&(o=ql);var s=e.removeFormatting;s===void 0&&(s=Kl);var c=e.defaultValue,l=e.valueIsNumericString,u=e.onValueChange,d=e.isAllowed,f=e.onChange;f===void 0&&(f=vl);var p=e.onKeyDown;p===void 0&&(p=vl);var m=e.onMouseUp;m===void 0&&(m=vl);var h=e.onFocus;h===void 0&&(h=vl);var g=e.onBlur;g===void 0&&(g=vl);var _=e.value,v=e.getCaretBoundary;v===void 0&&(v=Wl);var y=e.isValidInputCharacter;y===void 0&&(y=bl);var b=e.isCharacterSame,x=gl(e,[`type`,`displayType`,`customInput`,`renderText`,`getInputRef`,`format`,`removeFormatting`,`defaultValue`,`valueIsNumericString`,`onValueChange`,`isAllowed`,`onChange`,`onKeyDown`,`onMouseUp`,`onFocus`,`onBlur`,`value`,`getCaretBoundary`,`isValidInputCharacter`,`isCharacterSame`]),S=Gl(_,c,!!l,o,s,u),C=S[0],w=C.formattedValue,T=C.numAsString,E=S[1],D=(0,L.useRef)(),O=(0,L.useRef)({formattedValue:w,numAsString:T}),k=function(e,t){O.current={formattedValue:e.formattedValue,numAsString:e.value},E(e,t)},A=(0,L.useState)(!1),ee=A[0],te=A[1],ne=(0,L.useRef)(null),j=(0,L.useRef)({setCaretTimeout:null,focusTimeout:null});(0,L.useEffect)(function(){return te(!0),function(){clearTimeout(j.current.setCaretTimeout),clearTimeout(j.current.focusTimeout)}},[]);var M=o,re=function(e,t){var n=parseFloat(t);return{formattedValue:e,value:t,floatValue:isNaN(n)?void 0:n}},ie=function(e,t,n){e.selectionStart===0&&e.selectionEnd===e.value.length||(Pl(e,t),j.current.setCaretTimeout=setTimeout(function(){e.value===n&&e.selectionStart!==t&&Pl(e,t)},0))},ae=function(e,t,n){return Ul(e,t,v(e),n)},oe=function(e,t,n){var r=v(t),i=Hl(t,w,e,n,r,y,b);return i=Ul(t,i,r),i},se=function(e){var t=e.formattedValue;t===void 0&&(t=``);var n=e.input,r=e.source,i=e.event,a=e.numAsString,o;if(n){var s=e.inputValue||n.value,c=Rl(n);n.value=t,o=oe(s,t,c),o!==void 0&&ie(n,o,t)}t!==w&&k(re(t,a),{event:i,source:r})};(0,L.useEffect)(function(){var e=O.current,t=e.formattedValue,n=e.numAsString;(w!==t||T!==n)&&k(re(w,T),{event:void 0,source:_l.props})},[w,T]);var ce=ne.current?Rl(ne.current):void 0;(typeof window<`u`?L.useLayoutEffect:L.useEffect)(function(){var e=ne.current;if(w!==O.current.formattedValue&&e){var t=oe(O.current.formattedValue,w,ce);e.value=w,ie(e,t,w)}},[w]);var le=function(e,t,n){var r=t.target,i=D.current?Il(D.current,r.selectionEnd):Fl(w,e),a=Object.assign(Object.assign({},i),{lastValue:w}),o=s(e,a),c=M(o);if(o=s(c,void 0),d&&!d(re(c,o))){var l=t.target,u=oe(e,w,Rl(l));return l.value=w,ie(l,u,w),!1}return se({formattedValue:c,numAsString:o,inputValue:e,event:t,source:n,input:t.target}),!0},ue=function(e,t){t===void 0&&(t=0),D.current={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd+t}},N=function(e){var t=e.target.value;le(t,e,_l.event)&&f(e),D.current=void 0},P=function(e){var t=e.target,n=e.key,r=t.selectionStart,i=t.selectionEnd,a=t.value;a===void 0&&(a=``);var o;n===`ArrowLeft`||n===`Backspace`?o=Math.max(r-1,0):n===`ArrowRight`?o=Math.min(r+1,a.length):n===`Delete`&&(o=r);var s=0;n===`Delete`&&r===i&&(s=1);var c=n===`ArrowLeft`||n===`ArrowRight`;if(o===void 0||r!==i&&!c){p(e),ue(t,s);return}var l=o;c?(l=ae(a,o,n===`ArrowLeft`?`left`:`right`),l!==o&&e.preventDefault()):n===`Delete`&&!y(a[o])?l=ae(a,o,`right`):n===`Backspace`&&!y(a[o])&&(l=ae(a,o,`left`)),l!==o&&ie(t,l,a),p(e),ue(t,s)},de=function(e){var t=e.target,n=function(){var e=t.selectionStart,n=t.selectionEnd,r=t.value;if(r===void 0&&(r=``),e===n){var i=ae(r,e);i!==e&&ie(t,i,r)}};n(),requestAnimationFrame(function(){n()}),m(e),ue(t)},fe=function(e){e.persist&&e.persist();var t=e.target,n=e.currentTarget;ne.current=t,j.current.focusTimeout=setTimeout(function(){var r=t.selectionStart,i=t.selectionEnd,a=t.value;a===void 0&&(a=``);var o=ae(a,r);o!==r&&!(r===0&&i===a.length)&&ie(t,o,a),h(Object.assign(Object.assign({},e),{currentTarget:n}))},0)},pe=function(e){ne.current=null,clearTimeout(j.current.focusTimeout),clearTimeout(j.current.setCaretTimeout),g(e)},me=ee&&zl()?`numeric`:void 0,he=Object.assign({inputMode:me},x,{type:t,value:w,onChange:N,onKeyDown:P,onMouseUp:de,onFocus:fe,onBlur:pe});if(n===`text`)return i?L.createElement(L.Fragment,null,i(w,x)||null):L.createElement(`span`,Object.assign({},x,{ref:a}),w);if(r){var ge=r;return L.createElement(ge,Object.assign({},he,{ref:a}))}return L.createElement(`input`,Object.assign({},he,{ref:a}))}function Yl(e,t){var n=t.decimalScale,r=t.fixedDecimalScale,i=t.prefix;i===void 0&&(i=``);var a=t.suffix;a===void 0&&(a=``);var o=t.allowNegative,s=t.thousandsGroupStyle;if(s===void 0&&(s=`thousand`),e===``||e===`-`)return e;var c=Xl(t),l=c.thousandSeparator,u=c.decimalSeparator,d=n!==0&&e.indexOf(`.`)!==-1||n&&r,f=Ol(e,o),p=f.beforeDecimal,m=f.afterDecimal,h=f.addNegation;return n!==void 0&&(m=Al(m,n,!!r)),l&&(p=El(p,l,s)),i&&(p=i+p),a&&(m+=a),h&&(p=`-`+p),e=p+(d&&u||``)+m,e}function Xl(e){var t=e.decimalSeparator;t===void 0&&(t=`.`);var n=e.thousandSeparator,r=e.allowedDecimalSeparators;return n===!0&&(n=`,`),r||=[t,`.`],{decimalSeparator:t,thousandSeparator:n,allowedDecimalSeparators:r}}function Zl(e,t){e===void 0&&(e=``);var n=RegExp(`(-)`),r=RegExp(`(-)(.)*(-)`),i=n.test(e),a=r.test(e);return e=e.replace(/-/g,``),i&&!a&&t&&(e=`-`+e),e}function Ql(e,t){return RegExp(`(^-)|[0-9]|`+wl(e),t?`g`:void 0)}function $l(e,t,n){return e===``||!t?.match(/\d/)&&!n?.match(/\d/)&&typeof e==`string`&&!isNaN(Number(e))}function eu(e,t,n){var r;t===void 0&&(t=Bl(e));var i=n.allowNegative,a=n.prefix;a===void 0&&(a=``);var o=n.suffix;o===void 0&&(o=``);var s=n.decimalScale,c=t.from,l=t.to,u=l.start,d=l.end,f=Xl(n),p=f.allowedDecimalSeparators,m=f.decimalSeparator,h=e[d]===m;if(bl(e)&&(e===a||e===o)&&t.lastValue===``)return e;if(d-u===1&&p.indexOf(e[u])!==-1){var g=s===0?``:m;e=e.substring(0,u)+g+e.substring(u+1,e.length)}var _=function(e,t,n){var r=!1,i=!1;a.startsWith(`-`)?r=!1:e.startsWith(`--`)?(r=!1,i=!0):o.startsWith(`-`)&&e.length===o.length?r=!1:e[0]===`-`&&(r=!0);var s=+!!r;return i&&(s=2),s&&(e=e.substring(s),t-=s,n-=s),{value:e,start:t,end:n,hasNegation:r}},v=_(e,u,d),y=v.hasNegation;r=v,e=r.value,u=r.start,d=r.end;var b=_(t.lastValue,c.start,c.end),x=b.start,S=b.end,C=b.value,w=e.substring(u,d);e.length&&C.length&&(x>C.length-o.length||S<a.length)&&!(w&&o.startsWith(w))&&(e=C);var T=0;e.startsWith(a)?T+=a.length:u<a.length&&(T=u),e=e.substring(T),d-=T;var E=e.length,D=e.length-o.length;e.endsWith(o)?E=D:(d>D||d>e.length-o.length)&&(E=d),e=e.substring(0,E),e=Zl(y?`-`+e:e,i),e=(e.match(Ql(m,!0))||[]).join(``);var O=e.indexOf(m);e=e.replace(new RegExp(wl(m),`g`),function(e,t){return t===O?`.`:``});var k=Ol(e,i),A=k.beforeDecimal,ee=k.afterDecimal,te=k.addNegation;return l.end-l.start<c.end-c.start&&A===``&&h&&!parseFloat(ee)&&(e=te?`-`:``),e}function tu(e,t){var n=t.prefix;n===void 0&&(n=``);var r=t.suffix;r===void 0&&(r=``);var i=Array.from({length:e.length+1}).map(function(){return!0}),a=e[0]===`-`;i.fill(!1,0,Math.min(n.length+ +!!a,e.length));var o=e.length;return i.fill(!1,o-r.length+1,o+1),i}function nu(e){var t=Xl(e),n=t.thousandSeparator,r=t.decimalSeparator,i=e.prefix;i===void 0&&(i=``);var a=e.allowNegative;if(a===void 0&&(a=!0),n===r)throw Error(`
|
|
49
|
+
Кнопки нижче запускають зареєстровані дії. Перша завершується успіхом після короткої затримки; друга навмисно падає, щоб показати обробку помилок.`,run_button:`Запустити демо-дію`,fail_button:`Запустити дію з помилкою`,variants:{default:`Основна`,secondary:`Другорядна`,ghost:`Привид`,link:`Посилання`}},field_demo:{label:`Демо полів`,fields:{image:`Image — одне фото`,avatar:`Аватар — одне (велике коло)`,cover:`Обкладинка — hero (одне)`,text_plain:`Text — звичайний`,text_minmax:`Text — min/max + в таблиці`,text_pattern:`Text — pattern (лише літери)`,text_multiline:`Text — multiline`,text_email:`Text — format: email`,text_emails:`Text — format: email + multiple`,text_url:`Text — format: url`,text_tel:`Text — format: tel`,text_password:`Text — format: password`,imei:`IMEI — pattern (15 цифр)`,mac:`MAC — pattern (XX:XX:XX:XX:XX:XX)`,iban:`IBAN — pattern (рахунок)`,textarea:`Textarea`,small_text:`Малий текст (scalar textarea)`,markdown:`Markdown (WYSIWYG)`,code:`Code — моноширинний редактор (yaml)`,number_int:`Number — ціле (int)`,number_decimal:`Number — дробове`,integer:`Integer (min/max)`,rating_5:`Rating — 5 зірок`,rating_10:`Rating — 10 зірок`,date:`Date`,date_future:`Date — лише майбутнє`,time_field:`Time (HH:MM)`,datetime:`Datetime`,datetimes_multi:`Datetime — multiple`,boolean:`Boolean (checkbox)`,select:`Select`,select_multi:`Select — multiple`,day_period:`Day-period (час прийому)`,day_period_multi:`Day-period — multiple`,country:`Country (з прапором)`,country_multi:`Country — multiple`,tags_field:`Tags (з підказками)`,demo_check:`Check (один)`,demo_check_multi:`Check (кілька)`,demo_check_stages:`Доставка (етапи)`,stage_ordered:`Замовлено`,stage_paid:`Оплачено`,stage_shipped:`Доставлено`,color_hex:`Color — hex (#RRGGBB)`,color_multi:`Color — multiple`,color_name:`ColorName (CSS-назва)`,duration_short:`Duration (хв, крок 5)`,measured_currency:`Measured — валюта`,measured_weight:`Measured — вага`,measured_custom:`Measured — custom одиниці`,demo_reminder:`Нагадування`,demo_weight:`Вага`,demo_dimensions:`Габарити`,demo_datasize:`Обсяг даних`,demo_ram:`Оперативна пам'ять`,demo_disk:`Обсяг диску`,demo_weekday:`День тижня`,demo_weekdays:`Дні тижня — multiple`,ip_addr:`IP-адреса`,ip_addrs:`IP-адреси — multiple`,cidr_subnet:`CIDR (підмережа)`,numbers_multi:`Number — multiple`,dates_multi:`Date — multiple`,row_single:`Row — один рядок`,variants:`Per-row — language (ім'я/прізвище мовами)`,row_ingredients:`Row — інгредієнти (relation+measured+lookup)`,relation_single:`Relation — один запис`,relation_multi:`Relation — кілька записів`,coll_text:`Колекція — text`,coll_integer:`Колекція — integer`,coll_select:`Колекція — select`,pp_person:`Особа`,pp_value:`Значення`,per_weekday:`Per-weekday (7 слотів)`,per_weekday_per_person:`Per-weekday + per-record (по людях)`,image_gallery:`Image — галерея (multiple)`,avatar_row:`Аватар — ряд (кілька)`,cover_carousel:`Обкладинка — карусель (кілька)`,json:`JSON`,key_value:`Key-value — кілька пар`,key_value_secret:`Key-value — секрет (одна пара)`,services_bylist:`Services (колекція над статичним списком)`,type:`Type (класифікатор → extends)`,periods:`Periods (діапазони дат)`,button_demo:`Button — demo дія (lab.demoAction)`,price:`Ціна`,ageRange:`Діапазон віку`,tempRange:`Діапазон температури`,agree:`Згода`,origin:`Країна походження`,birthYear:`Рік народження`,attachment:`Вкладення`,doc:`Документ`,voice:`Голосова нотатка`,clip:`Відеокліп`,gallery:`Медіагалерея`,place:`Місцезнаходження`,compact_note:`Компактна нотатка (без кнопок)`,snippet_struct:`Код (з мовою)`,embed_wide:`Embed — широкий (multiple)`,embed_narrow:`Embed — вузький (multiple)`,perkey_fixed:`Fixed perKey — кількість на розмір`},options:{select:{red:`Червоний`,green:`Зелений`,blue:`Синій`},pp_select:{s:`S`,m:`M`,l:`L`},type:{basic:`Базовий`,advanced:`Розширений`},env:{dev:`Розробка`,prod:`Продакшн`},size:{s:`S`,m:`M`,l:`L`}},per_row:{name:`Ім'я`,surname:`Прізвище`,url:`URL`,token:`Токен`,env:`Середовище`,lang:`Мова`,product:`Продукт`,amount:`Кількість`,stock:`Наявність`,size:`Розмір`,qty:`Кількість`},units:{shot:`шот`,scoop:`мірна ложка`},groups:{demo:`Текстові поля`},validation:{letters_only:`Лише літери`},info:{intro:`Демонстраційна полиця усіх типів полів платформи. Заповніть поля нижче, щоб побачити їх у дії.`},actions:{scan_done:`Знайдено {{count}} пристроїв`,fail_title:`Дію не виконано`,fail_body:`Сервер повернув помилку (код {{code}})`}},field_demo_child:{label:`Дочірній запис`,fields:{demo_id:`UUID батьківського демо`,note:`Нотатка`}},demo_extra:{label:`Розширені поля (extend)`,fields:{extra_text:`Додатковий текст`,extra_number:`Додаткове число`,extra_flag:`Додатковий прапорець`}}},Oa={lab:Da},ka=e({default:()=>ja,media:()=>Aa}),Aa={plugin:{label:`Media`,description:`Movies & series watchlist, synced from Jellyfin.`},library:{label:`Media`},settings:{label:`Media settings`,tmdb_key:`TMDB API key`,omdb_key:`OMDb API key`,jellyfin_url:`Jellyfin URL`,jellyfin_token:`Jellyfin API token`,jellyfin_user_id:`Jellyfin user id`,test_button:`Test Jellyfin`,sync_button:`Sync Jellyfin`},title:{label:`Title`,fields:{kind:`Kind`,poster:`Poster`,year:`Year`,overview:`Overview`,genres:`Genres`,runtime:`Runtime`,tmdb_id:`TMDB ID`,imdb_id:`IMDb ID`,tmdb_rating:`TMDB rating`,imdb_rating:`IMDb rating`,status:`Status`,watched_date:`Watched on`,seasons:`Seasons`,episodes:`Episodes`,in_library:`In library`,jellyfin_id:`Jellyfin ID`,source:`Source`,link:`Link`},options:{kind:{movie:`Movie`,series:`Series`},status:{want:`Want to watch`,unwatched:`Unwatched`,watching:`Watching`,watched:`Watched`,dropped:`Dropped`},source:{manual:`Manual`,jellyfin:`Jellyfin`,agent:`Agent`}}}},ja={media:Aa},Ma=e({default:()=>Pa,media:()=>Na}),Na={plugin:{label:`Медиа`,description:`Список фильмов и сериалов, синхронизируется с Jellyfin.`},library:{label:`Медиа`},settings:{label:`Настройки Медиа`,tmdb_key:`TMDB API ключ`,omdb_key:`OMDb API ключ`,jellyfin_url:`Jellyfin URL`,jellyfin_token:`Jellyfin API токен`,jellyfin_user_id:`Jellyfin user id`,test_button:`Проверить Jellyfin`,sync_button:`Синхронизировать Jellyfin`},title:{label:`Тайтл`,fields:{kind:`Тип`,poster:`Постер`,year:`Год`,overview:`Описание`,genres:`Жанры`,runtime:`Длительность`,tmdb_id:`TMDB ID`,imdb_id:`IMDb ID`,tmdb_rating:`Рейтинг TMDB`,imdb_rating:`Рейтинг IMDb`,status:`Статус`,watched_date:`Просмотрено`,seasons:`Сезоны`,episodes:`Эпизоды`,in_library:`В библиотеке`,jellyfin_id:`Jellyfin ID`,source:`Источник`,link:`Ссылка`},options:{kind:{movie:`Фильм`,series:`Сериал`},status:{want:`Хочу посмотреть`,unwatched:`Не просмотрено`,watching:`Смотрю`,watched:`Просмотрел`,dropped:`Брошено`},source:{manual:`Вручную`,jellyfin:`Jellyfin`,agent:`Агент`}}}},Pa={media:Na},Fa=e({default:()=>La,media:()=>Ia}),Ia={plugin:{label:`Медіа`,description:`Список фільмів і серіалів, синхронізований з Jellyfin.`},library:{label:`Медіа`},settings:{label:`Налаштування Медіа`,tmdb_key:`TMDB API ключ`,omdb_key:`OMDb API ключ`,jellyfin_url:`Jellyfin URL`,jellyfin_token:`Jellyfin API токен`,jellyfin_user_id:`Jellyfin user id`,test_button:`Перевірити Jellyfin`,sync_button:`Синхронізувати Jellyfin`},title:{label:`Тайтл`,fields:{kind:`Тип`,poster:`Постер`,year:`Рік`,overview:`Опис`,genres:`Жанри`,runtime:`Тривалість`,tmdb_id:`TMDB ID`,imdb_id:`IMDb ID`,tmdb_rating:`Рейтинг TMDB`,imdb_rating:`Рейтинг IMDb`,status:`Статус`,watched_date:`Переглянуто`,seasons:`Сезони`,episodes:`Епізоди`,in_library:`У бібліотеці`,jellyfin_id:`Jellyfin ID`,source:`Джерело`,link:`Посилання`},options:{kind:{movie:`Фільм`,series:`Серіал`},status:{want:`Хочу подивитись`,unwatched:`Не переглянуто`,watching:`Дивлюсь`,watched:`Переглянув`,dropped:`Закинув`},source:{manual:`Вручну`,jellyfin:`Jellyfin`,agent:`Агент`}}}},La={media:Ia},Ra=e({default:()=>Ba,orchestrator:()=>za}),za={plugin:{label:`Orchestrator`,description:`Capability-driven agent orchestrator. Routes connector messages to the agent runtime.`},settings:{label:`Orchestrator settings`,agent_id:`Agent`,access_password:`Access password`,trigger_prefix:`Trigger prefix`,reply_window:`Reply window (s)`}},Ba={orchestrator:za},Va=e({default:()=>Ua,orchestrator:()=>Ha}),Ha={plugin:{label:`Оркестратор`,description:`Оркестратор агента на основе возможностей. Маршрутизирует сообщения коннекторов в рантайм агента.`},settings:{label:`Настройки оркестратора`,agent_id:`Агент`,access_password:`Пароль доступа`,trigger_prefix:`Префикс триггера`,reply_window:`Окно ответа (с)`}},Ua={orchestrator:Ha},Wa=e({default:()=>Ka,orchestrator:()=>Ga}),Ga={plugin:{label:`Оркестратор`,description:`Оркестратор агента на основі можливостей. Маршрутизує повідомлення конекторів у рантайм агента.`},settings:{label:`Налаштування оркестратора`,agent_id:`Агент`,access_password:`Пароль доступу`,trigger_prefix:`Префікс тригера`,reply_window:`Вікно відповіді (с)`}},Ka={orchestrator:Ga},qa=e({default:()=>Ya,people:()=>Ja}),Ja={plugin:{label:`People`,description:`Contacts and personal data about people.`},library:{label:`People`},person:{label:`Person`,fields:{logo:`Photo`,fullName:`Name`,birthDate:`Date of birth`,sex:`Sex`,phone:`Phone`,email:`Email`,address:`Address`,occupation:`Occupation`,notes:`Notes`,description:`Comment`,tags:`Tags`}}},Ya={people:Ja},Xa=e({default:()=>Qa,people:()=>Za}),Za={plugin:{label:`Люди`,description:`Контакты и личные данные людей.`},library:{label:`Люди`},person:{label:`Человек`,fields:{logo:`Фото`,fullName:`Имя`,birthDate:`Дата рождения`,sex:`Пол`,phone:`Телефон`,email:`Email`,address:`Адрес`,occupation:`Род занятий`,notes:`Заметки`,description:`Комментарий`,tags:`Теги`}}},Qa={people:Za},$a=e({default:()=>to,people:()=>eo}),eo={plugin:{label:`Люди`,description:`Контакти та особисті дані людей.`},library:{label:`Люди`},person:{label:`Людина`,fields:{logo:`Фото`,fullName:`Ім'я`,birthDate:`Дата народження`,sex:`Стать`,phone:`Телефон`,email:`Email`,address:`Адреса`,occupation:`Рід занять`,notes:`Нотатки`,description:`Коментар`,tags:`Теги`}}},to={people:eo},no=e({default:()=>io,telegram:()=>ro}),ro={plugin:{label:`Telegram bot`,description:`Connects Telegram to the orchestrator via GramJS.`},settings:{label:`Bot settings`,api_id:`API ID`,api_hash:`API Hash`,bot_token:`Bot token`,phone:`Phone number`,reasoning_display:`Reasoning display`,reasoning_display_off:`Hidden`,reasoning_display_collapsible:`Collapsible block`,reasoning_display_separate:`Separate messages`}},io={telegram:ro},ao=e({default:()=>so,telegram:()=>oo}),oo={plugin:{label:`Telegram-бот`,description:`Подключает Telegram к оркестратору через GramJS.`},settings:{label:`Настройки бота`,api_id:`API ID`,api_hash:`API Hash`,bot_token:`Токен бота`,phone:`Номер телефона`,reasoning_display:`Показ рассуждений`,reasoning_display_off:`Не показывать`,reasoning_display_collapsible:`Свёрнутым блоком`,reasoning_display_separate:`Отдельными сообщениями`}},so={telegram:oo},co=e({default:()=>uo,telegram:()=>lo}),lo={plugin:{label:`Telegram-бот`,description:`Підключає Telegram до оркестратора через GramJS.`},settings:{label:`Налаштування бота`,api_id:`API ID`,api_hash:`API Hash`,bot_token:`Токен бота`,phone:`Номер телефону`,reasoning_display:`Показ міркувань`,reasoning_display_off:`Не показувати`,reasoning_display_collapsible:`Згорнутим блоком`,reasoning_display_separate:`Окремими повідомленнями`}},uo={telegram:lo},fo=e({default:()=>mo,things:()=>po}),po={plugin:{label:`Things`,description:`Personal belongings and storage locations.`},library:{label:`Things`},item:{label:`Item`,fields:{logo:`Photo`,description:`Description`,brand:`Brand`,model:`Model`,location:`Storage location`,quantity:`Quantity`,owner:`Owner`,color:`Color`,material:`Material`,madeIn:`Country of origin`,weight:`Weight`,dimensions:`Dimensions`,serialNumber:`Serial number`,purchaseDate:`Purchase date`,purchasePrice:`Purchase price`,condition:`Condition`,warrantyExpires:`Warranty expires`,link:`Link`,photos:`Gallery`,tags:`Tags`,paymentStatus:`Payment`,receipt:`Receipt`,orderNumber:`Order number`,manual:`Manual`,store:`Store`},options:{type:{clothing:`Clothing`,bag:`Bag / backpack`,cable:`Cable / adapter`,tool:`Tool`,furniture:`Furniture`,appliance:`Appliance`,household:`Household`,consumable:`Consumable`,personal_care:`Personal care`,sports:`Sports`,hobby:`Hobby / craft`,hardware:`Hardware / parts`,decor:`Decor / lighting`,stationery:`Stationery`,document:`Document`,other:`Other`},condition:{new:`New`,good:`Good`,fair:`Fair`,poor:`Poor`},paymentStatus:{bought:`Bought`,installment:`Installment`,credit:`Credit`}},groups:{purchase:`Purchase`}},storage_location:{label:`Storage location`,fields:{path:`Hierarchy (levels)`}}},mo={things:po},ho=e({default:()=>_o,things:()=>go}),go={plugin:{label:`Вещи`,description:`Учёт личных вещей и мест хранения.`},library:{label:`Вещи`},item:{label:`Вещь`,fields:{logo:`Фото`,description:`Описание`,brand:`Бренд`,model:`Модель`,location:`Место хранения`,quantity:`Количество`,owner:`Владелец`,color:`Цвет`,material:`Материал`,madeIn:`Страна производства`,weight:`Вес`,dimensions:`Размеры`,serialNumber:`Серийный номер`,purchaseDate:`Дата приобретения`,purchasePrice:`Цена покупки`,condition:`Состояние`,warrantyExpires:`Гарантия до`,link:`Ссылка`,photos:`Галерея`,tags:`Теги`,paymentStatus:`Способ оплаты`,receipt:`Чек / гарантийник`,orderNumber:`Номер заказа`,manual:`Инструкция`,store:`Магазин`},options:{type:{clothing:`Одежда`,bag:`Сумка / рюкзак`,cable:`Кабель / адаптер`,tool:`Инструмент`,furniture:`Мебель`,appliance:`Бытовая техника`,household:`Хозтовары / дом`,consumable:`Расходники`,personal_care:`Гигиена / уход`,sports:`Спорт`,hobby:`Хобби / крафт`,hardware:`Крепёж / детали`,decor:`Декор / освещение`,stationery:`Канцелярия`,document:`Документ`,other:`Другое`},condition:{new:`Новый`,good:`Хороший`,fair:`Удовлетворительный`,poor:`Плохой`},paymentStatus:{bought:`Куплено`,installment:`Рассрочка`,credit:`Кредит`}},groups:{purchase:`Покупка`}},storage_location:{label:`Место хранения`,fields:{path:`Иерархия (уровни)`}}},_o={things:go},vo=e({default:()=>bo,things:()=>yo}),yo={plugin:{label:`Речі`,description:`Облік особистих речей і місць зберігання.`},library:{label:`Речі`},item:{label:`Річ`,fields:{logo:`Фото`,description:`Опис`,brand:`Бренд`,model:`Модель`,location:`Місце зберігання`,quantity:`Кількість`,owner:`Власник`,color:`Колір`,material:`Матеріал`,madeIn:`Країна виробництва`,weight:`Вага`,dimensions:`Розміри`,serialNumber:`Серійний номер`,purchaseDate:`Дата придбання`,purchasePrice:`Ціна покупки`,condition:`Стан`,warrantyExpires:`Гарантія до`,link:`Посилання`,photos:`Галерея`,tags:`Теги`,paymentStatus:`Спосіб оплати`,receipt:`Чек / гарантійник`,orderNumber:`Номер замовлення`,manual:`Інструкція`,store:`Магазин`},options:{type:{clothing:`Одяг`,bag:`Сумка / рюкзак`,cable:`Кабель / адаптер`,tool:`Інструмент`,furniture:`Меблі`,appliance:`Побутова техніка`,household:`Побутове / дім`,consumable:`Розхідники`,personal_care:`Гігієна / догляд`,sports:`Спорт`,hobby:`Хобі / крафт`,hardware:`Кріплення / деталі`,decor:`Декор / освітлення`,stationery:`Канцелярія`,document:`Документ`,other:`Інше`},condition:{new:`Новий`,good:`Добрий`,fair:`Задовільний`,poor:`Поганий`},paymentStatus:{bought:`Куплено`,installment:`Розстрочка`,credit:`Кредит`}},groups:{purchase:`Купівля`}},storage_location:{label:`Місце зберігання`,fields:{path:`Ієрархія (рівні)`}}},bo={things:yo},xo=e({default:()=>Co,transit:()=>So}),So={plugin:{label:`Transit`,description:`Public transport routes and schedules.`},library:{label:`Transit`},settings:{label:`Sync settings`,caldav_calendar:`Calendar URL`,caldav_url:`CalDAV server URL`,caldav_username:`Username`,caldav_password:`Password`},bus_route:{label:`Route`,fields:{route_number:`Route No.`,from:`From`,to:`To`,stop:`Stop`,weekday_times:`Weekdays`,saturday_times:`Saturday`,sunday_times:`Sunday`,notes:`Notes`,tags:`Tags`}}},Co={transit:So},wo=e({default:()=>Eo,transit:()=>To}),To={plugin:{label:`Транспорт`,description:`Маршруты общественного транспорта и расписания.`},library:{label:`Транспорт`},settings:{label:`Настройки синхронизации`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Имя пользователя`,caldav_password:`Пароль`},bus_route:{label:`Маршрут`,fields:{route_number:`Маршрут №`,from:`Откуда`,to:`Куда`,stop:`Остановка`,weekday_times:`Будни`,saturday_times:`Суббота`,sunday_times:`Воскресенье`,notes:`Заметки`,tags:`Теги`}}},Eo={transit:To},Do=e({default:()=>ko,transit:()=>Oo}),Oo={plugin:{label:`Транспорт`,description:`Маршрути громадського транспорту та розклади.`},library:{label:`Транспорт`},settings:{label:`Налаштування синхронізації`,caldav_calendar:`URL календаря`,caldav_url:`URL CalDAV-сервера`,caldav_username:`Ім'я користувача`,caldav_password:`Пароль`},bus_route:{label:`Маршрут`,fields:{route_number:`Маршрут №`,from:`Звідки`,to:`Куди`,stop:`Зупинка`,weekday_times:`Будні`,saturday_times:`Субота`,sunday_times:`Неділя`,notes:`Нотатки`,tags:`Теги`}}},ko={transit:Oo},Ao=e({default:()=>Mo,travel:()=>jo}),jo={plugin:{label:`Travel`,description:`Trips, flights and bookings.`},library:{label:`Travel`},trip:{label:`Trip`,fields:{description:`Notes`,destination:`Destination`,date_from:`Departure date`,date_to:`Return date`,status:`Status`,participants:`Participants`,budget:`Budget`,notes:`Notes`,photos:`Photos`,packing_list:`Packing list`,legs:`Legs`,accommodations:`Accommodations`,insurances:`Insurances`,activities:`Activities`,tags:`Tags`},options:{status:{planned:`Planned`,active:`In progress`,completed:`Completed`,cancelled:`Cancelled`}},packing:{prepared:`Prepared`,packed:`Packed`,packed_back:`Packed back`,item:`Item`},leg:{date:`Date`,leg_type:`Type`,operator:`Carrier`,number:`Flight / trip number`,seat:`Seat`,class:`Class`,booking_ref:`Booking ref`,terminal:`Terminal`,gate:`Gate`,origin_city:`Origin city`,origin_code:`Airport / station code`,departure_time:`Departure time`,destination_city:`Destination city`,destination_code:`Destination airport / station code`,arrival_time:`Arrival time`,duration:`Duration`,checked_in:`Checked in`,notes:`Notes`},leg_opt:{leg_type:{flight:`Flight`,train:`Train`,bus:`Bus`,car:`Car`,ferry:`Ferry`,other:`Other`},class:{economy:`Economy`,business:`Business`,first:`First`}},accom:{accom_type:`Type`,location:`Address`,address:`Address`,rating:`Stars`,breakfast:`Breakfast included`,check_in:`Check-in`,check_out:`Check-out`,booking_ref:`Booking reference`,cost:`Cost`,notes:`Notes`},accom_opt:{accom_type:{hotel:`Hotel`,apartment:`Apartment`,hostel:`Hostel`,other:`Other`},rating:{1:`★`,2:`★★`,3:`★★★`,4:`★★★★`,5:`★★★★★`}},insur:{insurer:`Insurer`,policy_number:`Policy number`,coverage:`Coverage`,cost:`Cost`,valid_from:`Valid from`,valid_until:`Valid until`,emergency_phone:`Emergency phone`,notes:`Notes`},act:{activity_type:`Type`,date:`Date`,time_start:`Start time`,time_end:`End time`,location:`Location`,booking_ref:`Booking ref`,cost:`Cost`,notes:`Notes`},act_opt:{activity_type:{sightseeing:`Sightseeing`,museum:`Museum`,beach:`Beach`,nature:`Nature`,restaurant:`Restaurant`,tour:`Tour`,shopping:`Shopping`,entertainment:`Entertainment`,other:`Other`}}}},Mo={travel:jo},No=e({default:()=>Fo,travel:()=>Po}),Po={plugin:{label:`Путешествия`,description:`Поездки, перелёты и бронирования.`},library:{label:`Путешествия`},trip:{label:`Поездка`,fields:{description:`Заметки`,destination:`Направление`,date_from:`Дата вылета`,date_to:`Дата возвращения`,status:`Статус`,participants:`Участники`,budget:`Бюджет`,notes:`Заметки`,photos:`Фото`,packing_list:`Список вещей`,legs:`Перевозки`,accommodations:`Проживание`,insurances:`Страховки`,activities:`Активности`,tags:`Теги`},options:{status:{planned:`Запланировано`,active:`В пути`,completed:`Завершено`,cancelled:`Отменено`}},packing:{prepared:`Подготовлено`,packed:`Сложено в сумки`,packed_back:`Собрано обратно`,item:`Вещь`},leg:{date:`Дата`,leg_type:`Тип`,operator:`Перевозчик`,number:`Номер рейса`,seat:`Место`,class:`Класс`,booking_ref:`Код бронирования`,terminal:`Терминал`,gate:`Выход`,origin_city:`Город отправления`,origin_code:`Код аэропорта/вокзала`,departure_time:`Время отправления`,destination_city:`Город прибытия`,destination_code:`Код аэропорта/вокзала назначения`,arrival_time:`Время прибытия`,duration:`Продолжительность`,checked_in:`Зарегистрировано`,notes:`Заметки`},leg_opt:{leg_type:{flight:`Рейс`,train:`Поезд`,bus:`Автобус`,car:`Авто`,ferry:`Паром`,other:`Другое`},class:{economy:`Эконом`,business:`Бизнес`,first:`Первый`}},accom:{accom_type:`Тип`,location:`Адрес`,address:`Адрес`,rating:`Звёзды`,breakfast:`Завтрак включён`,check_in:`Заезд`,check_out:`Выезд`,booking_ref:`Номер бронирования`,cost:`Стоимость`,notes:`Заметки`},accom_opt:{accom_type:{hotel:`Отель`,apartment:`Апартаменты`,hostel:`Хостел`,other:`Другое`},rating:{1:`★`,2:`★★`,3:`★★★`,4:`★★★★`,5:`★★★★★`}},insur:{insurer:`Страховщик`,policy_number:`Номер полиса`,coverage:`Покрытие`,cost:`Стоимость`,valid_from:`Действительна с`,valid_until:`Действительна до`,emergency_phone:`Телефон экстренной помощи`,notes:`Заметки`},act:{activity_type:`Тип`,date:`Дата`,time_start:`Время начала`,time_end:`Время завершения`,location:`Локация`,booking_ref:`Код бронирования`,cost:`Стоимость`,notes:`Заметки`},act_opt:{activity_type:{sightseeing:`Осмотр города`,museum:`Музей`,beach:`Пляж`,nature:`Природа`,restaurant:`Ресторан`,tour:`Экскурсия`,shopping:`Шопинг`,entertainment:`Развлечения`,other:`Другое`}}}},Fo={travel:Po},Io=e({default:()=>Ro,travel:()=>Lo}),Lo={plugin:{label:`Подорожі`,description:`Поїздки, перельоти та бронювання.`},library:{label:`Подорожі`},trip:{label:`Поїздка`,fields:{description:`Нотатки`,destination:`Напрямок`,date_from:`Дата вильоту`,date_to:`Дата повернення`,status:`Статус`,participants:`Учасники`,budget:`Бюджет`,notes:`Нотатки`,photos:`Фото`,packing_list:`Список речей`,legs:`Перевезення`,accommodations:`Проживання`,insurances:`Страховки`,activities:`Активності`,tags:`Теги`},options:{status:{planned:`Заплановано`,active:`В дорозі`,completed:`Завершено`,cancelled:`Скасовано`}},packing:{prepared:`Підготовлено`,packed:`Спаковано`,packed_back:`Зібрано назад`,item:`Річ`},leg:{date:`Дата`,leg_type:`Тип`,operator:`Перевізник`,number:`Номер рейсу`,seat:`Місце`,class:`Клас`,booking_ref:`Підтвердження`,terminal:`Термінал`,gate:`Гейт`,origin_city:`Місто відправлення`,origin_code:`Код аеропорту/вокзалу`,departure_time:`Час відправлення`,destination_city:`Місто прибуття`,destination_code:`Код аеропорту/вокзалу призначення`,arrival_time:`Час прибуття`,duration:`Тривалість`,checked_in:`Зареєстровано`,notes:`Нотатки`},leg_opt:{leg_type:{flight:`Рейс`,train:`Потяг`,bus:`Автобус`,car:`Авто`,ferry:`Паром`,other:`Інше`},class:{economy:`Економ`,business:`Бізнес`,first:`Перший`}},accom:{accom_type:`Тип`,location:`Адреса`,address:`Адреса`,rating:`Зірки`,breakfast:`Сніданок включено`,check_in:`Заїзд`,check_out:`Виїзд`,booking_ref:`Номер бронювання`,cost:`Вартість`,notes:`Нотатки`},accom_opt:{accom_type:{hotel:`Готель`,apartment:`Апартаменти`,hostel:`Хостел`,other:`Інше`},rating:{1:`★`,2:`★★`,3:`★★★`,4:`★★★★`,5:`★★★★★`}},insur:{insurer:`Страховик`,policy_number:`Номер полісу`,coverage:`Покриття`,cost:`Вартість`,valid_from:`Дійсна з`,valid_until:`Дійсна до`,emergency_phone:`Телефон екстреної допомоги`,notes:`Нотатки`},act:{activity_type:`Тип`,date:`Дата`,time_start:`Час початку`,time_end:`Час завершення`,location:`Локація`,booking_ref:`Підтвердження`,cost:`Вартість`,notes:`Нотатки`},act_opt:{activity_type:{sightseeing:`Огляд міста`,museum:`Музей`,beach:`Пляж`,nature:`Природа`,restaurant:`Ресторан`,tour:`Екскурсія`,shopping:`Шопінг`,entertainment:`Розваги`,other:`Інше`}}}},Ro={travel:Lo},zo=e({default:()=>Vo,webchat:()=>Bo}),Bo={plugin:{label:`Web chat`,description:`In-browser chat with the agent.`},title:`Agent`,open:`Open chat`,close:`Close`,expand:`Expand`,collapse:`Collapse`,newConversation:`New conversation`,threads:`Conversations`,empty:`No messages yet`,placeholder:`Ask about your data…`,send:`Send`,stop:`Stop`,attach:`Attach file`,removeAttachment:`Remove {{name}}`,uploading:`Uploading…`,uploadProgress:`Upload progress`,uploadTooLarge:`File is too large (maximum 25 MB).`,uploadFailed:`Could not upload the file.`,dropFiles:`Drop files here`,dropFilesHint:`The file will be attached to your next message`,thinking:`Thinking…`,error:`Error: {{message}}`,reasoning:`Reasoning`,settings:{label:`Web chat`,reasoning_display:`Reasoning display`,reasoning_display_live:`Live block`,reasoning_display_off:`Hidden`}},Vo={webchat:Bo},Ho=e({default:()=>Wo,webchat:()=>Uo}),Uo={plugin:{label:`Чат на сайте`,description:`Веб-чат для общения с агентом.`},title:`Агент`,open:`Открыть чат`,close:`Закрыть`,expand:`Развернуть`,collapse:`Свернуть`,newConversation:`Новый разговор`,threads:`Разговоры`,empty:`Пока нет сообщений`,placeholder:`Спроси о своих данных…`,send:`Отправить`,stop:`Стоп`,attach:`Прикрепить файл`,removeAttachment:`Удалить {{name}}`,uploading:`Загрузка…`,uploadProgress:`Прогресс загрузки`,uploadTooLarge:`Файл слишком большой (максимум 25 МБ).`,uploadFailed:`Не удалось загрузить файл.`,dropFiles:`Перетащите файлы сюда`,dropFilesHint:`Файл будет прикреплён к следующему сообщению`,thinking:`Думает…`,error:`Ошибка: {{message}}`,reasoning:`Рассуждения`,settings:{label:`Чат на сайте`,reasoning_display:`Показ рассуждений`,reasoning_display_live:`Живым блоком`,reasoning_display_off:`Не показывать`}},Wo={webchat:Uo},Go=e({default:()=>qo,webchat:()=>Ko}),Ko={plugin:{label:`Чат на сайті`,description:`Вебчат для спілкування з агентом.`},title:`Агент`,open:`Відкрити чат`,close:`Закрити`,expand:`Розгорнути`,collapse:`Згорнути`,newConversation:`Нова розмова`,threads:`Розмови`,empty:`Ще немає повідомлень`,placeholder:`Запитай про свої дані…`,send:`Надіслати`,stop:`Стоп`,attach:`Додати файл`,removeAttachment:`Видалити {{name}}`,uploading:`Завантаження…`,uploadProgress:`Прогрес завантаження`,uploadTooLarge:`Файл завеликий (максимум 25 МБ).`,uploadFailed:`Не вдалося завантажити файл.`,dropFiles:`Перетягніть файли сюди`,dropFilesHint:`Файл буде додано до наступного повідомлення`,thinking:`Думає…`,error:`Помилка: {{message}}`,reasoning:`Міркування`,settings:{label:`Чат на сайті`,reasoning_display:`Показ міркувань`,reasoning_display_live:`Живим блоком`,reasoning_display_off:`Не показувати`}},qo={webchat:Ko},Jo=e({default:()=>Xo,webexport:()=>Yo}),Yo={plugin:{label:`Web export`,description:`Static HTML export host: shared output dir and common css/js assets.`},settings:{label:`Web export settings`,output_dir:`Output directory`}},Xo={webexport:Yo},Zo=e({default:()=>$o,webexport:()=>Qo}),Qo={plugin:{label:`Веб-экспорт`,description:`Хост статического HTML-экспорта: общая папка вывода и общие css/js.`},settings:{label:`Настройки веб-экспорта`,output_dir:`Папка вывода`}},$o={webexport:Qo},es=e({default:()=>ns,webexport:()=>ts}),ts={plugin:{label:`Веб-експорт`,description:`Хост статичного HTML-експорту: спільна тека виводу та спільні css/js.`},settings:{label:`Налаштування веб-експорту`,output_dir:`Тека виводу`}},ns={webexport:ts},rs=Object.assign({"../plugin-claude-agent/locales/en.json":Mr,"../plugin-claude-agent/locales/ru.json":Pr,"../plugin-claude-agent/locales/uk.json":Ir,"../plugin-console/locales/en.json":Rr,"../plugin-console/locales/ru.json":Vr,"../plugin-console/locales/uk.json":Wr,"../plugin-devices/locales/en.json":qr,"../plugin-devices/locales/ru.json":Xr,"../plugin-devices/locales/uk.json":$r,"../plugin-documents/locales/en.json":ni,"../plugin-documents/locales/ru.json":ai,"../plugin-documents/locales/uk.json":ci,"../plugin-drone/locales/en.json":di,"../plugin-drone/locales/ru.json":mi,"../plugin-drone/locales/uk.json":_i,"../plugin-finance/locales/en.json":bi,"../plugin-finance/locales/ru.json":Ci,"../plugin-finance/locales/uk.json":Ei,"../plugin-garden/locales/en.json":ki,"../plugin-garden/locales/ru.json":Mi,"../plugin-garden/locales/uk.json":Fi,"../plugin-health/locales/en.json":Ri,"../plugin-health/locales/ru.json":Vi,"../plugin-health/locales/uk.json":Wi,"../plugin-home/locales/en.json":qi,"../plugin-home/locales/ru.json":Xi,"../plugin-home/locales/uk.json":$i,"../plugin-http/locales/en.json":na,"../plugin-http/locales/ru.json":aa,"../plugin-http/locales/uk.json":ca,"../plugin-kitchen/locales/en.json":da,"../plugin-kitchen/locales/ru.json":ma,"../plugin-kitchen/locales/uk.json":_a,"../plugin-lab/locales/en.json":ba,"../plugin-lab/locales/ru.json":Ca,"../plugin-lab/locales/uk.json":Ea,"../plugin-media/locales/en.json":ka,"../plugin-media/locales/ru.json":Ma,"../plugin-media/locales/uk.json":Fa,"../plugin-orchestrator/locales/en.json":Ra,"../plugin-orchestrator/locales/ru.json":Va,"../plugin-orchestrator/locales/uk.json":Wa,"../plugin-people/locales/en.json":qa,"../plugin-people/locales/ru.json":Xa,"../plugin-people/locales/uk.json":$a,"../plugin-telegram/locales/en.json":no,"../plugin-telegram/locales/ru.json":ao,"../plugin-telegram/locales/uk.json":co,"../plugin-things/locales/en.json":fo,"../plugin-things/locales/ru.json":ho,"../plugin-things/locales/uk.json":vo,"../plugin-transit/locales/en.json":xo,"../plugin-transit/locales/ru.json":wo,"../plugin-transit/locales/uk.json":Do,"../plugin-travel/locales/en.json":Ao,"../plugin-travel/locales/ru.json":No,"../plugin-travel/locales/uk.json":Io,"../plugin-webchat/locales/en.json":zo,"../plugin-webchat/locales/ru.json":Ho,"../plugin-webchat/locales/uk.json":Go,"../plugin-webexport/locales/en.json":Jo,"../plugin-webexport/locales/ru.json":Zo,"../plugin-webexport/locales/uk.json":es});for(let[e,t]of Object.entries(rs)){let n=e.match(/\/([a-z]{2})\.json$/)?.[1];n&&t.default&&jr.addResourceBundle(n,`translation`,t.default,!0,!0)}var is=new Map;function as(e,t){if(is.has(e))throw Error(`[actions] '${e}' already registered`);is.set(e,t)}function os(e){return is.get(e)}var ss=e({});as(`devices.runScan`,async e=>{let t=await fetch(`/api/plugins/devices/scan`,{method:`POST`});if(!t.ok){let e=await t.json(),n=Error(e.error??`Server error ${t.status}`);throw n.ui={kind:`popup`,variant:`error`,title:`devices.scan.failTitle`,message:e.error??`Server error ${t.status}`},n}let{result:n}=await t.json();return n.noMac.length>0?{kind:`popup`,variant:`error`,component:{name:`devices.scan.noMac`,data:{count:n.noMac.length,noMac:n.noMac}}}:{kind:`popup`,variant:`success`,component:{name:`devices.scan.summary`,data:{active:n.active,created:n.created,macChanged:n.macChanged,skipped:n.skipped,hostnameChanged:n.hostnameChanged}}}});var cs=e({});as(`finance.testConnection`,async e=>{let t=await fetch(`/api/plugins/finance/test`,{method:`POST`});if(!t.ok){let e=await t.json();throw Error(e.error??`Server error ${t.status}`)}}),as(`finance.sync`,async e=>{let t=await fetch(`/api/plugins/finance/sync`,{method:`POST`});if(!t.ok){let e=await t.json();throw Error(e.error??`Server error ${t.status}`)}}),as(`finance.importWise`,async e=>{let t=await fetch(`/api/plugins/finance/import-wise`,{method:`POST`}),n=await t.json();if(!t.ok)throw Error(n.error??`Server error ${t.status}`);if(n.errors?.length)throw Error(`Imported ${n.imported}, skipped ${n.skipped}, errors ${n.errors.length}: ${n.errors[0]}`)});var ls=e({}),us=()=>new Date().toISOString().slice(0,10),ds=(e,t)=>{let n=new Date(e);return n.setDate(n.getDate()+t),n.toISOString().slice(0,10)};async function fs(e,t,n,r){let i=await(await fetch(`/api/${e.library}/${e.shelf}/${e.recordId}`)).json(),a=Number(i[n])||0,o=us(),s={[t]:o,[r]:a?ds(o,a):null};if(!(await fetch(`/api/${e.library}/${e.shelf}/${e.recordId}`,{method:`PATCH`,headers:{"content-type":`application/json`},body:JSON.stringify(s)})).ok){let e=Error(`update failed`);throw e.ui={kind:`toast`,variant:`error`,message:`garden.plant.actions.failed`},e}return{kind:`toast`,variant:`success`,message:`garden.plant.actions.done`}}as(`garden.watered`,e=>fs(e,`lastWatered`,`wateringDays`,`nextWatering`)),as(`garden.fertilized`,e=>fs(e,`lastFertilized`,`fertilizerDays`,`nextFertilizing`));var ps=e({});as(`lab.demoAction`,async e=>(await new Promise(e=>setTimeout(e,800)),{kind:`toast`,variant:`success`,message:`lab.field_demo.actions.scan_done`,params:{count:Math.floor(Math.random()*9)+1}})),as(`lab.demoFail`,async()=>{await new Promise(e=>setTimeout(e,400));let e=Error(`Demo error`);throw e.ui={kind:`popup`,variant:`error`,title:`lab.field_demo.actions.fail_title`,message:`lab.field_demo.actions.fail_body`,params:{code:500}},e});var ms=e({});as(`media.testJellyfin`,async e=>{let t=await fetch(`/api/plugins/media/test`,{method:`POST`});if(!t.ok){let e=await t.json();throw Error(e.error??`Server error ${t.status}`)}}),as(`media.syncJellyfin`,async e=>{let t=await fetch(`/api/plugins/media/sync`,{method:`POST`}),n=await t.json();if(!t.ok)throw Error(n.error??`Server error ${t.status}`)}),Object.keys(Object.assign({"../plugin-devices/src/actions.ts":ss,"../plugin-finance/src/actions.ts":cs,"../plugin-garden/src/actions.ts":ls,"../plugin-lab/src/field_demo/actions.ts":ps,"../plugin-media/src/actions.ts":ms}));var hs=S(`chevron-left`,[[`path`,{d:`m15 18-6-6 6-6`,key:`1wnfg3`}]]),gs=S(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]),_s=S(`chevrons-up-down`,[[`path`,{d:`m7 15 5 5 5-5`,key:`1hf1tw`}],[`path`,{d:`m7 9 5-5 5 5`,key:`sgt6xg`}]]),vs=S(`corner-left-up`,[[`path`,{d:`M14 9 9 4 4 9`,key:`1af5af`}],[`path`,{d:`M20 20h-7a4 4 0 0 1-4-4V4`,key:`1blwi3`}]]),ys=S(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),bs=S(`external-link`,[[`path`,{d:`M15 3h6v6`,key:`1q9fwt`}],[`path`,{d:`M10 14 21 3`,key:`gplh6r`}],[`path`,{d:`M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6`,key:`a6xqqp`}]]),xs=S(`eye-off`,[[`path`,{d:`M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49`,key:`ct8e1f`}],[`path`,{d:`M14.084 14.158a3 3 0 0 1-4.242-4.242`,key:`151rxh`}],[`path`,{d:`M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143`,key:`13bj9a`}],[`path`,{d:`m2 2 20 20`,key:`1ooewy`}]]),Ss=S(`eye`,[[`path`,{d:`M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0`,key:`1nclc0`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Cs=S(`film`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]),ws=S(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),Ts=S(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),Es=S(`menu`,[[`path`,{d:`M4 5h16`,key:`1tepv9`}],[`path`,{d:`M4 12h16`,key:`1lakjw`}],[`path`,{d:`M4 19h16`,key:`1djgab`}]]),Ds=S(`music`,[[`path`,{d:`M9 18V5l12-2v13`,key:`1jmyc2`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}],[`circle`,{cx:`18`,cy:`16`,r:`3`,key:`1hluhg`}]]),Os=S(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),ks={"--w-rjv-font-family":`monospace`,"--w-rjv-color":`#0184a6`,"--w-rjv-key-string":`#0184a6`,"--w-rjv-background-color":`#202020`,"--w-rjv-line-color":`#323232`,"--w-rjv-arrow-color":`var(--w-rjv-color)`,"--w-rjv-edit-color":`var(--w-rjv-color)`,"--w-rjv-info-color":`#656565`,"--w-rjv-update-color":`#ebcb8b`,"--w-rjv-copied-color":`#0184a6`,"--w-rjv-copied-success-color":`#28a745`,"--w-rjv-curlybraces-color":`#1896b6`,"--w-rjv-brackets-color":`#1896b6`,"--w-rjv-quotes-color":`var(--w-rjv-key-string)`,"--w-rjv-quotes-string-color":`var(--w-rjv-type-string-color)`,"--w-rjv-type-string-color":`#cb4b16`,"--w-rjv-type-int-color":`#268bd2`,"--w-rjv-type-float-color":`#859900`,"--w-rjv-type-bigint-color":`#268bd2`,"--w-rjv-type-boolean-color":`#2aa198`,"--w-rjv-type-date-color":`#586e75`,"--w-rjv-type-url-color":`#649bd8`,"--w-rjv-type-null-color":`#d33682`,"--w-rjv-type-nan-color":`#076678`,"--w-rjv-type-undefined-color":`#586e75`};function As(e,t){if(typeof e==`function`)return e(t);e!=null&&(e.current=t)}function js(...e){return t=>{let n=!1,r=e.map(e=>{let r=As(e,t);return!n&&typeof r==`function`&&(n=!0),r});if(n)return()=>{for(let t=0;t<r.length;t++){let n=r[t];typeof n==`function`?n():As(e[t],null)}}}}function Ms(...e){return L.useCallback(js(...e),e)}var R=g(),Ns=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/mask-input.tsx`,Ps=120,Fs=10,Is=`USD`,Ls=`en-US`,Rs=/^(phone|zipCode|zipCodeExtended|ssn|ein|time|date|creditCard|creditCardExpiry)$/,zs=/[€$%]/,Bs=new Map,Vs=new Map,Hs=new Map,Us=[31,28,31,30,31,30,31,31,30,31,30,31],z={digitsOnly:/^\d+$/,nonDigits:/\D/g,nonAlphaNumeric:/[^A-Z0-9]/gi,nonNumericDot:/[^0-9.]/g,nonCurrencyChars:/[^\d.,]/g,hashPattern:/#/g,currencyAtEnd:/\d\s*[^\d\s]+$/,percentageChars:/[^\d.]/g,phone:/^\d{10}$/,ssn:/^\d{9}$/,zipCode:/^\d{5}$/,zipCodeExtended:/^\d{9}$/,isbn:/^\d{13}$/,ein:/^\d{9}$/,time:/^\d{4}$/,creditCard:/^\d{13,19}$/,creditCardExpiry:/^\d{4}$/,licensePlate:/^[A-Z0-9]{6}$/,macAddress:/^[A-F0-9]{12}$/,currencyValidation:/^\d+(\.\d{1,2})?$/,ipv4Segment:/^\d{1,3}$/};function Ws(e,t){let{currency:n,minimumFractionDigits:r=0,maximumFractionDigits:i=2}=t,a=`${e}|${n}|${r}|${i}`;if(!Bs.has(a))try{Bs.set(a,new Intl.NumberFormat(e,{style:`currency`,currency:n,...t}))}catch{Bs.set(a,new Intl.NumberFormat(Ls,{style:`currency`,currency:Is,...t}))}let o=Bs.get(a);if(!o)throw Error(`Failed to create formatter for ${a}`);return o}function Gs(e){let{locale:t,currency:n}=e,r=`${t}|${n}`,i=Hs.get(r);if(i)return i;let a=`$`,o=`.`,s=`,`;try{let e=Ws(t,{currency:n,minimumFractionDigits:0,maximumFractionDigits:2}).formatToParts(1234.5),r=e.find(e=>e.type===`currency`),i=e.find(e=>e.type===`decimal`),c=e.find(e=>e.type===`group`);r&&(a=r.value),i&&(o=i.value),c&&(s=c.value)}catch{}let c={currency:a,decimal:o,group:s};return Hs.set(r,c),c}function Ks(e){let{locale:t,currency:n}=e,r=`${t}|${n}`,i=Vs.get(r);if(i!==void 0)return i;try{let e=Ws(t,{currency:n,minimumFractionDigits:0,maximumFractionDigits:0}).format(123),i=z.currencyAtEnd.test(e);return Vs.set(r,i),i}catch{return Vs.set(r,!1),!1}}function qs(e){let{mask:t,pattern:n}=e;return t===`currency`||!!(n&&(n.includes(`$`)||n.includes(`€`)))}var Js={phone:{pattern:`(###) ###-####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.phone.test(e.replace(z.nonDigits,``))},ssn:{pattern:`###-##-####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.ssn.test(e.replace(z.nonDigits,``))},date:{pattern:`##/##/####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(t.length!==8)return!1;let n=parseInt(t.substring(0,2),10),r=parseInt(t.substring(2,4),10),i=parseInt(t.substring(4,8),10),a=new Date().getFullYear(),o=a-Ps,s=a+Fs;return n<1||n>12||r<1||i<o||i>s?!1:r<=(n===2&&(i%4==0&&i%100!=0||i%400==0)?29:Us[n-1]??31)}},time:{pattern:`##:##`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(!z.time.test(t))return!1;let n=parseInt(t.substring(0,2),10),r=parseInt(t.substring(2,4),10);return n<=23&&r<=59}},creditCard:{pattern:`#### #### #### ####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(!z.creditCard.test(t))return!1;let n=0,r=!1;for(let e=t.length-1;e>=0;e--){let i=t[e];if(!i)continue;let a=parseInt(i,10);r&&(a*=2,a>9&&(a-=9)),n+=a,r=!r}return n%10==0}},creditCardExpiry:{pattern:`##/##`,transform:e=>e.replace(z.nonDigits,``),validate:e=>{let t=e.replace(z.nonDigits,``);if(!z.creditCardExpiry.test(t))return!1;let n=parseInt(t.substring(0,2),10),r=parseInt(t.substring(2,4),10);if(n<1||n>12)return!1;let i=new Date,a=i.getFullYear(),o=i.getMonth()+1,s=r<=75?2e3+r:1900+r;return!(s<a||s===a&&n<o||s>a+50)}},zipCode:{pattern:`#####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.zipCode.test(e.replace(z.nonDigits,``))},zipCodeExtended:{pattern:`#####-####`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.zipCodeExtended.test(e.replace(z.nonDigits,``))},currency:{pattern:`$###,###.##`,transform:(e,{currency:t=Is,locale:n=Ls}={})=>{let r=`.`;try{let e=Ws(n,{currency:t,minimumFractionDigits:0,maximumFractionDigits:2}).formatToParts(1234.5).find(e=>e.type===`decimal`);e&&(r=e.value)}catch{}let i=e.replace(z.nonCurrencyChars,``),a=i.indexOf(`.`),o=i.indexOf(`,`),s=!1,c=-1;if(r===`,`){let e=i.lastIndexOf(`,`);if(e!==-1){let t=i.substring(e+1);t.length<=2&&/^\d*$/.test(t)&&(s=!0,c=e)}if(!s&&a!==-1){let e=i.substring(a+1);e.length<=2&&/^\d*$/.test(e)&&(s=!0,c=a)}if(!s&&i.length>=4){let e=i.match(/^(\d+)\.(\d{3})(\d{1,2})$/);if(e){let[,t,n,r]=e;return`${(t??``)+(n??``)}.${r}`}}}else{let e=i.lastIndexOf(`.`);if(e!==-1){let t=i.substring(e+1);t.length<=2&&/^\d*$/.test(t)&&(s=!0,c=e)}if(!s&&o!==-1){let e=i.substring(o+1);!(o<=3&&e.length>=3)&&e.length<=2&&/^\d*$/.test(e)&&(s=!0,c=o)}}if(s&&c!==-1){let e=i.substring(0,c).replace(/[.,]/g,``),t=i.substring(c+1).replace(/[.,]/g,``);return t===``?`${e}.`:`${e}.${t.substring(0,2)}`}return i.replace(/[.,]/g,``)},validate:e=>{if(!z.currencyValidation.test(e))return!1;let t=parseFloat(e);return!Number.isNaN(t)&&t>=0}},percentage:{pattern:`##.##%`,transform:e=>{let t=e.replace(z.percentageChars,``),n=t.split(`.`);return n.length>2?`${n[0]}.${n.slice(1).join(``)}`:n[1]&&n[1].length>2?`${n[0]}.${n[1].substring(0,2)}`:t},validate:(e,t={})=>{let n=parseFloat(e),r=t.min??0,i=t.max??100;return!Number.isNaN(n)&&n>=r&&n<=i}},licensePlate:{pattern:`###-###`,transform:e=>e.replace(z.nonAlphaNumeric,``).toUpperCase(),validate:e=>z.licensePlate.test(e)},ipv4:{pattern:`###.###.###.###`,transform:e=>e.replace(z.nonNumericDot,``),validate:e=>{if(e.includes(`.`)){let t=e.split(`.`);return t.length>4?!1:t.every(e=>e===``?!0:z.ipv4Segment.test(e)?parseInt(e,10)<=255:!1)}else{if(!z.digitsOnly.test(e)||e.length>12)return!1;let t=[];for(let n=0;n<e.length;n+=3)t.push(e.substring(n,n+3));return t.length>4?!1:t.every(e=>{let t=parseInt(e,10);return t>=0&&t<=255})}}},macAddress:{pattern:`##:##:##:##:##:##`,transform:e=>e.replace(z.nonAlphaNumeric,``).toUpperCase(),validate:e=>z.macAddress.test(e)},isbn:{pattern:`###-#-###-#####-#`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.isbn.test(e.replace(z.nonDigits,``))},ein:{pattern:`##-#######`,transform:e=>e.replace(z.nonDigits,``),validate:e=>z.ein.test(e.replace(z.nonDigits,``))}};function Ys(e){let{value:t,pattern:n,currency:r,locale:i,mask:a}=e,o=t;if(n.includes(`$`)||n.includes(`€`)||a===`currency`)return Xs({value:o,currency:r??Is,locale:i??Ls});if(n.includes(`%`))return Zs(o);if(a===`ipv4`)return o;let s=[],c=0;for(let e=0;e<n.length&&c<o.length;e++){let t=n[e],r=o[c];t===`#`&&r?(s.push(r),c++):t&&s.push(t)}return s.join(``)}function Xs(e){let{value:t,currency:n=Is,locale:r=Ls}=e;if(!t)return``;let{currency:i,decimal:a,group:o}=Gs({locale:r,currency:n}),s=t.replace(RegExp(`\\${o.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}`,`g`),``).replace(a,`.`).split(`.`),c=s[0]??``,l=s[1]??``;if(!c&&!l)return``;let u=c??`0`,d=l.slice(0,2),f=Number(`${u}.${d??``}`);if(Number.isNaN(f)){let e=t.replace(/[^\d]/g,``);return e?`${i}${e}`:``}let p=t.includes(`.`)||t.includes(a);try{let e=Ws(r,{currency:n,minimumFractionDigits:d?d.length:0,maximumFractionDigits:2}).format(f);return p&&!d?e.match(/^[^\d\s]+/)?e.replace(/(\d)$/,`$1${a}`):e.replace(/(\d)(\s*)([^\d\s]+)$/,`$1${a}$2$3`):e}catch{let e=`${i}${u.replace(/\B(?=(\d{3})+(?!\d))/g,o)}`;return p&&(e+=`${a}${d}`),e}}function Zs(e){if(!e)return``;let t=e.split(`.`),n=t[0]??`0`;return e.includes(`.`)&&(n+=`.${(t[1]??``).substring(0,2)}`),`${n}%`}function Qs(e){let{value:t,transform:n,currency:r,locale:i}=e;return n?n(t,{currency:r,locale:i}):t.replace(z.nonDigits,``)}function $s(e){let{masked:t,pattern:n,caret:r}=e,i=0;for(let e=0;e<r&&e<t.length&&e<n.length;e++)n[e]===`#`&&i++;return i}function ec(e){let{masked:t,pattern:n,unmaskedIndex:r}=e,i=0;for(let e=0;e<t.length&&e<n.length;e++)if(n[e]===`#`&&(i++,i===r))return e+1;return t.length}function tc(e){let{newValue:t,mask:n,transformOpts:r,oldCursorPosition:i,oldValue:a,previousUnmasked:o}=e;if(i!==void 0&&a&&o!==void 0&&i<a.length){let e=a.substring(0,i).replace(/\D/g,``).length,n=0;for(let r=0;r<t.length;r++)if(/\d/.test(t[r]??``)&&(n++,n===e))return r+1}if(n===`currency`)if(Ks(r)){let e=t.match(/(\d)\s*([^\d\s]+)$/);return e?.[1]?t.lastIndexOf(e[1])+1:t.length}else return t.length;else return t.length}function nc(e){let{newValue:t,maskPattern:n,currentUnmasked:r,oldCursorPosition:i,oldValue:a,previousUnmasked:o}=e,s=0,c=0;if(i!==void 0&&a&&o!==void 0){let e=$s({masked:a,pattern:n.pattern,caret:i});if(i<a.length){let i=Math.min(e,r.length);for(let e=0;e<n.pattern.length&&e<t.length;e++)n.pattern[e]===`#`&&(c++,c<=i&&(s=e+1));return s}}for(let e=0;e<n.pattern.length&&e<t.length;e++)n.pattern[e]===`#`&&(c++,c<=r.length&&(s=e+1));return s}function rc(e){let{value:t,defaultValue:n,onValueChange:r,onValidate:i,onBlur:a,onFocus:o,onKeyDown:s,onPaste:c,onCompositionStart:l,onCompositionEnd:u,validationMode:d=`onChange`,mask:f,maskPlaceholder:p,currency:m=Is,locale:h=Ls,placeholder:g,inputMode:_,min:v,max:y,maxLength:b,asChild:x=!1,disabled:S=!1,invalid:w=!1,readOnly:T=!1,required:E=!1,withoutMask:D=!1,className:O,ref:k,...A}=e,[ee,te]=L.useState(n??``),[ne,j]=L.useState(!1),[M,re]=L.useState(!1),[ae,oe]=L.useState(!1),se=L.useRef(null),ce=Ms(k,se),le=t!==void 0,ue=le?t:ee,N=L.useMemo(()=>typeof f==`string`?Js[f]:f,[f]),P=L.useMemo(()=>({currency:m,locale:h}),[m,h]),de=L.useMemo(()=>D?g:g&&p?ne?p:g:p?ne?p:void 0:g,[g,p,ne,D]),fe=L.useMemo(()=>D||!N||!ue?ue??``:Ys({value:Qs({value:ue,transform:N.transform,...P}),pattern:N.pattern,...P,mask:f}),[ue,N,D,P,f]),pe=L.useMemo(()=>{if(!(!N||zs.test(N.pattern)))return N.pattern.match(z.hashPattern)?.length??0},[N])?N?.pattern.length:b,me=L.useMemo(()=>{if(_)return _;if(N){if(f===`currency`||f===`percentage`||f===`ipv4`)return`decimal`;if(typeof f==`string`&&Rs.test(f))return`numeric`}},[N,f,_]),he=L.useCallback(e=>{if(!i||!N?.validate)return!1;switch(d){case`onChange`:return e===`change`;case`onBlur`:return e===`blur`;case`onSubmit`:return!1;case`onTouched`:return ae?e===`change`:e===`blur`;case`all`:return!0;default:return e===`change`}},[i,N,d,ae]),ge=L.useMemo(()=>({min:typeof v==`string`?parseFloat(v):v,max:typeof y==`string`?parseFloat(y):y}),[v,y]),_e=L.useCallback(e=>{if(i&&N?.validate){let t=N.validate(e,ge);i(t,e)}},[i,N?.validate,ge]),ve=L.useCallback(e=>{let t=e.target.value,n=t,a=t;if(M){le||te(t);return}if(D||!N){le||te(t),he(`change`)&&i?.(!0,t),r?.(t,t);return}if(N&&(a=Qs({value:t,transform:N.transform,...P}),n=Ys({value:a,pattern:N.pattern,...P,mask:f}),se.current&&n!==t)){let e=se.current;if(!(e instanceof HTMLInputElement))return;let r=e.selectionStart??0;e.value=n;let i=Qs({value:n,transform:N.transform,...P}),a,o=Qs({value:ue,transform:N.transform,...P});a=zs.test(N.pattern)?tc({newValue:n,mask:f,transformOpts:P,oldCursorPosition:r,oldValue:t,previousUnmasked:o}):nc({newValue:n,maskPattern:N,currentUnmasked:i,oldCursorPosition:r,oldValue:t,previousUnmasked:o}),qs({mask:f,pattern:N.pattern})?f===`currency`&&Ks(P)||(a=Math.max(1,a)):N.pattern.includes(`%`)&&(a=Math.min(n.length-1,a)),a=Math.min(a,n.length),e.setSelectionRange(a,a)}le||te(n),he(`change`)&&_e(a),r?.(n,a)},[N,le,r,i,_e,M,he,D,P,f,ue]),ye=L.useCallback(e=>{o?.(e),!e.defaultPrevented&&j(!0)},[o]),be=L.useCallback(e=>{if(a?.(e),!e.defaultPrevented&&(j(!1),ae||oe(!0),he(`blur`))){let t=e.target.value,n=N?Qs({value:t,transform:N.transform,...P}):t;_e(n)}},[a,ae,he,_e,N,P]),xe=L.useCallback(e=>{l?.(e),!e.defaultPrevented&&re(!0)},[l]),Se=L.useCallback(e=>{if(u?.(e),e.defaultPrevented)return;re(!1);let t=se.current;if(!t||!(t instanceof HTMLInputElement))return;let n=t.value;if(!N||D){le||te(n),he(`change`)&&i?.(!0,n),r?.(n,n);return}let a=Qs({value:n,transform:N.transform,...P}),o=Ys({value:a,pattern:N.pattern,...P,mask:f});le||te(o),he(`change`)&&_e(a),r?.(o,a)},[u,N,D,le,he,i,r,P,f,_e]),Ce=L.useCallback(e=>{if(c?.(e),e.defaultPrevented||D||!N||f===`ipv4`)return;let t=e.target;if(!(t instanceof HTMLInputElement))return;let n=e.clipboardData.getData(`text`);if(!n)return;e.preventDefault();let i=t.value,a=t.selectionStart??0,o=t.selectionEnd??0,s=i.slice(0,a),l=i.slice(o),u=Qs({value:s+n+l,transform:N.transform,...P}),d=Ys({value:u,pattern:N.pattern,...P,mask:f});if(t.value=d,qs({mask:f,pattern:N.pattern})){let e=Ks(P)?d.search(/\s*[^\d\s]+$/):d.length;t.setSelectionRange(e,e);return}if(N.pattern.includes(`%`)){t.setSelectionRange(d.length-1,d.length-1);return}let p=d.length;try{let e=u.length,t=0,n=0;for(let r=0;r<N.pattern.length&&r<d.length;r++)N.pattern[r]===`#`&&(n++,n<=e&&(t=r+1));p=t}catch{}t.setSelectionRange(p,p),le||te(d),he(`change`)&&_e(u),r?.(d,u)},[c,D,N,f,P,le,he,_e,r]),we=L.useCallback(e=>{if(s?.(e),!e.defaultPrevented&&!(D||!N)&&f!==`ipv4`){if(e.key===`Backspace`){let t=e.target;if(!(t instanceof HTMLInputElement))return;let n=t.selectionStart??0,i=t.selectionEnd??0,a=t.value;if(f===`currency`||f===`percentage`||N.pattern.includes(`$`)||N.pattern.includes(`€`)||N.pattern.includes(`%`)||n!==i)return;if(n>0&&a[n-1]){e.preventDefault();let i=$s({masked:a,pattern:N.pattern,caret:n});if(i>0){let e=Qs({value:a,transform:N.transform,...P}),n=e.slice(0,i-1)+e.slice(i),o=Ys({value:n,pattern:N.pattern,...P,mask:f});t.value=o;let s=ec({masked:o,pattern:N.pattern,unmaskedIndex:i-1});t.setSelectionRange(s,s),r?.(o,n)}return}}if(e.key===`Delete`){let t=e.target;if(!(t instanceof HTMLInputElement))return;let n=t.selectionStart??0,i=t.selectionEnd??0,a=t.value;if(f===`currency`||f===`percentage`||N.pattern.includes(`$`)||N.pattern.includes(`€`)||N.pattern.includes(`%`)||n!==i)return;if(n<a.length&&a[n]){e.preventDefault();let i=$s({masked:a,pattern:N.pattern,caret:n}),o=Qs({value:a,transform:N.transform,...P});if(i<o.length){let e=o.slice(0,i)+o.slice(i+1),n=Ys({value:e,pattern:N.pattern,...P,mask:f});t.value=n;let a=ec({masked:n,pattern:N.pattern,unmaskedIndex:i});t.setSelectionRange(a,a),r?.(n,e)}return}}}},[N,s,r,P,f,D]);return(0,R.jsxDEV)(x?ie:`input`,{"aria-invalid":w,"data-disabled":S?``:void 0,"data-invalid":w?``:void 0,"data-readonly":T?``:void 0,"data-required":E?``:void 0,"data-slot":`mask-input`,...A,className:C(`flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30`,`focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50`,`aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40`,O),placeholder:de,ref:ce,value:fe,disabled:S,maxLength:pe,readOnly:T,required:E,inputMode:me,min:v,max:y,onFocus:ye,onBlur:be,onKeyDown:we,onPaste:Ce,onChange:ve,onCompositionStart:xe,onCompositionEnd:Se},void 0,!1,{fileName:Ns,lineNumber:1468,columnNumber:5},this)}var ic=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/option-icon.tsx`,ac={xs:14,sm:16,md:20,lg:28};function oc({icon:e,size:t=`sm`,framed:n=!1,className:r}){let i=ac[t];if(n){let t={width:i,height:i};return e.kind===`image`?(0,R.jsxDEV)(`img`,{src:e.value,alt:``,loading:`lazy`,className:`shrink-0 rounded-full border border-border object-cover ${r??``}`,style:t},void 0,!1,{fileName:ic,lineNumber:28,columnNumber:9},this):e.kind===`swatch`?(0,R.jsxDEV)(`span`,{className:`shrink-0 rounded-full border border-border ${r??``}`,style:{...t,backgroundColor:e.value}},void 0,!1,{fileName:ic,lineNumber:38,columnNumber:9},this):(0,R.jsxDEV)(`span`,{className:`shrink-0 grid place-items-center rounded-full border border-border bg-elevated text-muted ${r??``}`,style:t,children:(0,R.jsxDEV)(we,{name:e.value,size:Math.round(i*.55)},void 0,!1,{fileName:ic,lineNumber:48,columnNumber:9},this)},void 0,!1,{fileName:ic,lineNumber:44,columnNumber:7},this)}return e.kind===`swatch`?(0,R.jsxDEV)(`span`,{className:`shrink-0 inline-block rounded-full border border-border/60 ${r??``}`,style:{width:i,height:i,backgroundColor:e.value}},void 0,!1,{fileName:ic,lineNumber:54,columnNumber:7},this):e.kind===`image`?(0,R.jsxDEV)(`img`,{src:e.value,alt:``,loading:`lazy`,className:`shrink-0 rounded-full border border-border object-cover ${r??``}`,style:{width:i,height:i}},void 0,!1,{fileName:ic,lineNumber:61,columnNumber:7},this):(0,R.jsxDEV)(we,{name:e.value,size:i,className:`shrink-0 ${r??``}`},void 0,!1,{fileName:ic,lineNumber:69,columnNumber:10},this)}var sc={};function cc(e){if(!e.kind)throw Error(`[list-view] view without kind`);if(sc[e.kind])throw Error(`[list-view] kind '${e.kind}' already registered`);sc[e.kind]=e}function lc(e){return sc[e]}function uc(e){return(e??``).replace(/```[\s\S]*?```/g,` `).replace(/`([^`]+)`/g,`$1`).replace(/!\[[^\]]*\]\([^)]*\)/g,` `).replace(/\[([^\]]+)\]\([^)]*\)/g,`$1`).replace(/^#{1,6}\s+/gm,``).replace(/[*_~>#-]+/g,` `).replace(/\s+/g,` `).trim()}var dc=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/markdown-view.tsx`;In.addHook(`afterSanitizeAttributes`,e=>{e.tagName===`A`&&(e.setAttribute(`target`,`_blank`),e.setAttribute(`rel`,`noopener noreferrer`))});function fc(e){let t=Fn.parse(e,{async:!1});return In.sanitize(t)}function pc({value:e}){return(0,R.jsxDEV)(`div`,{className:`md-static`,dangerouslySetInnerHTML:{__html:fc(e)}},void 0,!1,{fileName:dc,lineNumber:32,columnNumber:10},this)}var B=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/text.tsx`,mc=(0,L.lazy)(()=>c(()=>import(`./MarkdownEditor-CxlMpjDc.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]))),hc=(0,L.lazy)(()=>c(()=>import(`./esm-Dfm1ivm4.js`),__vite__mapDeps([16,1,2,6,8,17,18,12,13,19,20]))),gc=(0,L.lazy)(()=>c(()=>import(`./esm-C5Scej0H.js`),__vite__mapDeps([21,1,2,6]))),_c=(0,L.lazy)(()=>c(()=>import(`./dist-COeDLrWj.js`).then(e=>({default:e.HexColorPicker})),__vite__mapDeps([22,1,2]))),vc=(0,L.lazy)(()=>c(()=>import(`./phone-input-DLmP9Sfd.js`).then(e=>({default:e.PhoneInput})),__vite__mapDeps([23,1,2,3,24,4,25,26,5,6,27]))),yc={iban:{pattern:`#### #### #### #### #### #### #### ##`,transform:e=>e.replace(/[^a-z0-9]/gi,``).toUpperCase()}};function bc({name:e,field:t,value:n,onChange:r}){let i=t.hints,a=i.inputType??`text`;if(i.multiple===!0)return(0,R.jsxDEV)(gt,{value:n,onChange:r,renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:B,lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:74,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);if(typeof i.mask==`string`){let t=yc[i.mask]??i.mask,n=i.maskStore===`unmasked`;return(0,R.jsxDEV)(rc,{id:e,mask:t,value:o,onValueChange:(e,t)=>r(n?t:e)},void 0,!1,{fileName:B,lineNumber:105,columnNumber:7},this)}return(0,R.jsxDEV)(E,{id:e,type:a,value:o,onChange:e=>r(e.target.value),minLength:i.minLength,maxLength:i.maxLength},void 0,!1,{fileName:B,lineNumber:114,columnNumber:5},this)}function xc({field:e,value:t}){return ht(e,t,e=>(0,R.jsxDEV)(`span`,{children:String(e)},void 0,!1,{fileName:B,lineNumber:126,columnNumber:41},this))}function Sc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(xc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:141,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(bc,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:B,lineNumber:143,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:131,columnNumber:5},this)}function Cc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(String(e??``))},void 0,!1,{fileName:B,lineNumber:155,columnNumber:10},this)}I({kinds:[`text`,`email`,`slug`],Page:Sc,Inline:Cc});function wc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>st(e)?(0,R.jsxDEV)(`span`,{children:String(e)},void 0,!1,{fileName:B,lineNumber:179,columnNumber:35},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:179,columnNumber:62},this),edit:(e,t)=>(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:181,columnNumber:29},this),children:(0,R.jsxDEV)(vc,{value:String(e),onChange:e=>t(e??``)},void 0,!1,{fileName:B,lineNumber:182,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:181,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:168,columnNumber:5},this)}function Tc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(String(e??``))},void 0,!1,{fileName:B,lineNumber:193,columnNumber:10},this)}I({kinds:[`tel`],Page:wc,Inline:Tc});var Ec=e=>/^[a-z][a-z0-9+.-]*:\/\//i.test(e)?e:`https://${e}`;function Dc({value:e}){let t=String(e??``);return t?(0,R.jsxDEV)(`a`,{href:Ec(t),target:`_blank`,rel:`noopener noreferrer`,className:`text-primary underline truncate`,children:t},void 0,!1,{fileName:B,lineNumber:210,columnNumber:5},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:208,columnNumber:18},this)}function Oc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:e=>(0,R.jsxDEV)(Dc,{value:e},void 0,!1,{fileName:B,lineNumber:228,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(E,{type:`url`,value:String(e),onChange:e=>t(e.target.value)},void 0,!1,{fileName:B,lineNumber:230,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:218,columnNumber:5},this)}I({kinds:[`link`],Page:Oc,Inline:({value:e})=>(0,R.jsxDEV)(Dc,{value:e},void 0,!1,{fileName:B,lineNumber:243,columnNumber:44},void 0)});function kc({name:e,field:t,value:n,onChange:r}){return t.hints.multiple===!0?(0,R.jsxDEV)(gt,{value:n,onChange:r,display:()=>`•••`,renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{type:`password`,value:e,autoComplete:`new-password`,onChange:e=>t(e.target.value),className:`flex-1`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:B,lineNumber:256,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:251,columnNumber:7},this):(0,R.jsxDEV)(E,{id:e,type:`password`,value:n,autoComplete:`current-password`,onChange:e=>r(e.target.value)},void 0,!1,{fileName:B,lineNumber:274,columnNumber:5},this)}function Ac({field:e,value:t}){return e.hints.multiple===!0?(0,R.jsxDEV)(St,{items:An(t,[]),content:()=>`•••`,reserveEditor:!0},void 0,!1,{fileName:B,lineNumber:286,columnNumber:12},this):(0,R.jsxDEV)(`span`,{className:`text-muted text-sm select-none`,children:`•••`},void 0,!1,{fileName:B,lineNumber:288,columnNumber:10},this)}function jc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(Ac,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:303,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(kc,{name:`field-${e.field.label}`,field:e.field,value:String(t),onChange:n},void 0,!1,{fileName:B,lineNumber:305,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:293,columnNumber:5},this)}function Mc(){return(0,R.jsxDEV)(`span`,{children:`•••`},void 0,!1,{fileName:B,lineNumber:317,columnNumber:10},this)}I({kinds:[`password`],Page:jc,Inline:Mc});function Nc(e){let t=e.field.hints.maxLength;return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`textarea`,width:`w-full`,bare:e.bare,view:e=>st(e)?(0,R.jsxDEV)(`p`,{className:`text-[15px] text-text/90 leading-relaxed whitespace-pre-wrap`,children:String(e)},void 0,!1,{fileName:B,lineNumber:344,columnNumber:16},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:343,columnNumber:34},this),edit:(n,r)=>(0,R.jsxDEV)(A,{id:`field-${e.field.label}`,value:String(n),maxLength:t,onChange:e=>r(e.target.value)},void 0,!1,{fileName:B,lineNumber:347,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:331,columnNumber:5},this)}function Pc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(String(e??``))},void 0,!1,{fileName:B,lineNumber:359,columnNumber:10},this)}I({kinds:[`textarea`],layout:`block`,box:`textarea`,Page:Nc,Inline:Pc}),I({kinds:[`smalltext`],Page:Nc,Inline:Pc});function Fc(e){let{t}=a(),n=e.field.hints.maxLength;return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`textarea`,width:`w-full`,bare:e.bare,view:e=>{if(!st(e))return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:394,columnNumber:34},this);let n=String(e);return(0,R.jsxDEV)(`p`,{className:`text-[15px] text-text/90 leading-relaxed whitespace-pre-wrap`,children:t(n,{defaultValue:n})},void 0,!1,{fileName:B,lineNumber:396,columnNumber:16},this)},edit:(t,r)=>(0,R.jsxDEV)(A,{id:`field-${e.field.label}`,value:String(t),maxLength:n,onChange:e=>r(e.target.value)},void 0,!1,{fileName:B,lineNumber:399,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:382,columnNumber:5},this)}function Ic({value:e}){let{t}=a(),n=String(e??``);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(t(n,{defaultValue:n}))},void 0,!1,{fileName:B,lineNumber:413,columnNumber:10},this)}I({kinds:[`i18n`],layout:`block`,box:`textarea`,Page:Fc,Inline:Ic});function Lc({value:e,onChange:t}){let{t:n}=a();return(0,R.jsxDEV)(`div`,{className:`crepe-wrap`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:430,columnNumber:27},this),children:(0,R.jsxDEV)(mc,{value:e,onChange:t,placeholder:n(`form.mdPlaceholder`)},void 0,!1,{fileName:B,lineNumber:431,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:430,columnNumber:7},this)},void 0,!1,{fileName:B,lineNumber:429,columnNumber:5},this)}function Rc({value:e}){return ft(e,e=>(0,R.jsxDEV)(pc,{value:String(e)},void 0,!1,{fileName:B,lineNumber:438,columnNumber:31},this))}function zc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,R.jsxDEV)(Rc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:454,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Lc,{name:`field-${e.field.label}`,field:e.field,value:String(t),onChange:n},void 0,!1,{fileName:B,lineNumber:456,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:443,columnNumber:5},this)}function Bc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(uc(String(e??``)))||`—`},void 0,!1,{fileName:B,lineNumber:469,columnNumber:10},this)}I({kinds:[`markdown`],layout:`block`,Page:zc,Inline:Bc});function Vc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:e=>(0,R.jsxDEV)(`pre`,{className:`min-w-0 min-h-32 text-[13px] leading-normal font-mono border border-transparent rounded-lg p-3 overflow-x-auto whitespace-pre-wrap text-text/90`,children:st(e)?String(e):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:496,columnNumber:38},this)},void 0,!1,{fileName:B,lineNumber:495,columnNumber:9},this),edit:(t,n)=>(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,className:`json-editor-wrap min-w-0`,children:(0,R.jsxDEV)(`div`,{className:`rounded-xl overflow-hidden border border-border min-w-0`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:502,columnNumber:33},this),children:(0,R.jsxDEV)(hc,{value:String(t),language:e.field.hints.language??`text`,onChange:e=>n(e.target.value),padding:12,style:{fontFamily:`ui-monospace, monospace`,fontSize:13,background:`transparent`,minHeight:`8rem`}},void 0,!1,{fileName:B,lineNumber:503,columnNumber:15},this)},void 0,!1,{fileName:B,lineNumber:502,columnNumber:13},this)},void 0,!1,{fileName:B,lineNumber:501,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:500,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:483,columnNumber:5},this)}function Hc({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(String(e??``))},void 0,!1,{fileName:B,lineNumber:524,columnNumber:10},this)}I({kinds:[`snippet`],layout:`block`,Page:Vc,Inline:Hc});function Uc(e){return typeof e==`string`?e:e==null?``:JSON.stringify(e,null,2)}function Wc({value:e,onChange:t}){let n=!0;if(e.trim())try{JSON.parse(e)}catch{n=!1}return(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,className:`json-editor-wrap min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`rounded-xl overflow-hidden border min-w-0 ${n?`border-border`:`border-danger/60`}`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:562,columnNumber:29},this),children:(0,R.jsxDEV)(hc,{value:e,language:`json`,placeholder:`{ }`,onChange:e=>t(e.target.value),padding:12,style:{fontFamily:`ui-monospace, monospace`,fontSize:13,background:`transparent`,minHeight:`8rem`}},void 0,!1,{fileName:B,lineNumber:563,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:562,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:561,columnNumber:7},this),!n&&(0,R.jsxDEV)(`p`,{className:`text-xs text-danger mt-1 flex items-center gap-1`,children:[(0,R.jsxDEV)(we,{name:`lucide:alert-triangle`,size:12,className:`shrink-0`},void 0,!1,{fileName:B,lineNumber:575,columnNumber:11},this),` JSON`]},void 0,!0,{fileName:B,lineNumber:574,columnNumber:9},this)]},void 0,!0,{fileName:B,lineNumber:560,columnNumber:5},this)}function Gc({value:e}){let t;try{t=typeof e==`object`?e:JSON.parse(String(e))}catch{t=void 0}return typeof t!=`object`||!t?(0,R.jsxDEV)(`pre`,{className:`min-w-0 text-xs bg-bg border border-border rounded-lg p-3 overflow-x-auto text-muted`,children:String(e)},void 0,!1,{fileName:B,lineNumber:591,columnNumber:7},this):(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,className:`min-w-0 bg-bg border border-border rounded-lg p-3 overflow-x-auto`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:B,lineNumber:598,columnNumber:27},this),children:(0,R.jsxDEV)(gc,{value:t,style:{...ks,"--w-rjv-background-color":`transparent`},displayDataTypes:!1,enableClipboard:!0,collapsed:2},void 0,!1,{fileName:B,lineNumber:599,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:598,columnNumber:7},this)},void 0,!1,{fileName:B,lineNumber:597,columnNumber:5},this)}function Kc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:t=>(0,R.jsxDEV)(Gc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:624,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Wc,{name:`field-${e.field.label}`,field:e.field,value:Uc(t),onChange:n},void 0,!1,{fileName:B,lineNumber:626,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:613,columnNumber:5},this)}I({kinds:[`json`],layout:`block`,Page:Kc});function qc(e){let t=String(e);return(0,R.jsxDEV)(R.Fragment,{children:[/^#[0-9a-fA-F]{6}$/.test(t)&&(0,R.jsxDEV)(oc,{icon:{kind:`swatch`,value:t},size:`xs`},void 0,!1,{fileName:B,lineNumber:646,columnNumber:17},this),(0,R.jsxDEV)(`span`,{className:`font-mono`,children:t},void 0,!1,{fileName:B,lineNumber:647,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:645,columnNumber:5},this)}function Jc({value:e,onChange:t,field:n}){if(n.hints.multiple===!0)return(0,R.jsxDEV)(gt,{value:e,onChange:t,validate:e=>/^#[0-9a-fA-F]{6}$/.test(e),display:qc,renderInput:(e,t,n)=>(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(`input`,{type:`color`,value:e||`#000000`,onChange:e=>t(e.target.value),className:`w-10 h-9 rounded cursor-pointer border border-border bg-transparent p-0.5`},void 0,!1,{fileName:B,lineNumber:662,columnNumber:13},this),(0,R.jsxDEV)(E,{value:e,onChange:e=>t(e.target.value),maxLength:7,className:`w-28 font-mono`,placeholder:`#000000`,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),n())}},void 0,!1,{fileName:B,lineNumber:668,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:661,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:655,columnNumber:7},this);let r=typeof e==`string`&&/^#[0-9a-fA-F]{6}$/.test(e)?e:`#000000`;return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 pl-2 min-h-9`,children:[(0,R.jsxDEV)(P,{children:[(0,R.jsxDEV)(ue,{asChild:!0,children:(0,R.jsxDEV)(`button`,{type:`button`,"aria-label":`pick color`,className:`w-5 h-5 shrink-0 rounded-full border border-border cursor-pointer`,style:{background:r}},void 0,!1,{fileName:B,lineNumber:691,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:690,columnNumber:9},this),(0,R.jsxDEV)(ce,{className:`w-auto p-2`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`w-[200px] h-[200px] text-sm text-muted flex items-center justify-center`,children:`…`},void 0,!1,{fileName:B,lineNumber:699,columnNumber:31},this),children:(0,R.jsxDEV)(_c,{color:r,onChange:t},void 0,!1,{fileName:B,lineNumber:700,columnNumber:13},this)},void 0,!1,{fileName:B,lineNumber:699,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:698,columnNumber:9},this)]},void 0,!0,{fileName:B,lineNumber:689,columnNumber:7},this),(0,R.jsxDEV)(E,{value:e,onChange:e=>t(e.target.value),pattern:`#[0-9a-fA-F]{6}`,maxLength:7,className:`w-28 h-auto border-0 bg-transparent p-0 shadow-none font-mono text-sm focus-visible:ring-0`,placeholder:`#000000`},void 0,!1,{fileName:B,lineNumber:704,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:688,columnNumber:5},this)}function Yc({field:e,value:t}){if(e.hints.multiple===!0)return(0,R.jsxDEV)(St,{items:An(t,[]),content:qc,reserveEditor:!0},void 0,!1,{fileName:B,lineNumber:718,columnNumber:12},this);let n=String(t);return!n||!/^#[0-9a-fA-F]{6}$/.test(n)?(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:721,columnNumber:54},this):(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxDEV)(oc,{icon:{kind:`swatch`,value:n},size:`md`},void 0,!1,{fileName:B,lineNumber:724,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`font-mono text-sm`,children:n},void 0,!1,{fileName:B,lineNumber:725,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:723,columnNumber:5},this)}function Xc(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:t=>(0,R.jsxDEV)(Yc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:743,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Jc,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:B,lineNumber:745,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:732,columnNumber:5},this)}I({kinds:[`color`],Page:Xc});function Zc({value:e,onChange:t,field:n}){let{t:r}=a(),i=n.hints.suggestions,o=L.useId(),s=e=>i&&i.length>0?(0,R.jsxDEV)(`datalist`,{id:o,children:i.filter(t=>!e.includes(t)).map(e=>(0,R.jsxDEV)(`option`,{value:e},e,!1,{fileName:B,lineNumber:770,columnNumber:13},this))},void 0,!1,{fileName:B,lineNumber:766,columnNumber:7},this):null;if(n.hints.multiple===!0){let n=lt(e);return(0,R.jsxDEV)(gt,{value:e,onChange:t,renderInput:(e,t,a)=>(0,R.jsxDEV)(R.Fragment,{children:[s(n),(0,R.jsxDEV)(E,{value:e,list:i?.length?o:void 0,onChange:e=>t(e.target.value),onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),a())},placeholder:r(`form.addTag`),className:`flex-1`},void 0,!1,{fileName:B,lineNumber:784,columnNumber:13},this)]},void 0,!0,{fileName:B,lineNumber:782,columnNumber:11},this)},void 0,!1,{fileName:B,lineNumber:778,columnNumber:7},this)}let c=typeof e==`string`?e:String(e??``);return(0,R.jsxDEV)(R.Fragment,{children:[s(c?[c]:[]),(0,R.jsxDEV)(E,{value:c,list:i?.length?o:void 0,onChange:e=>t(e.target.value)},void 0,!1,{fileName:B,lineNumber:809,columnNumber:7},this)]},void 0,!0,{fileName:B,lineNumber:807,columnNumber:5},this)}function Qc({field:e,value:t}){return(0,R.jsxDEV)(St,{items:e.hints.multiple===!0?An(t,[]):t?[String(t)]:[],content:e=>String(e),reserveEditor:e.hints.multiple===!0},void 0,!1,{fileName:B,lineNumber:820,columnNumber:10},this)}function $c(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(Qc,{field:e.field,value:t},void 0,!1,{fileName:B,lineNumber:835,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Zc,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:B,lineNumber:837,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:825,columnNumber:5},this)}function el({field:e,value:t}){if(e.hints.multiple===!0){let e=lt(String(t??``));return(0,R.jsxDEV)(`span`,{className:`truncate`,children:e.length?String(e.length):`—`},void 0,!1,{fileName:B,lineNumber:851,columnNumber:12},this)}return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(String(t??``))},void 0,!1,{fileName:B,lineNumber:853,columnNumber:10},this)}I({kinds:[`tag`],Page:$c,Inline:el});function tl(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`title`,bare:e.bare,view:e=>st(e)?(0,R.jsxDEV)(`span`,{className:`text-[28px] font-bold text-text leading-tight`,children:String(e)},void 0,!1,{fileName:B,lineNumber:877,columnNumber:23},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:B,lineNumber:877,columnNumber:108},this),edit:(t,n)=>(0,R.jsxDEV)(`input`,{id:`field-${e.field.label}`,value:String(t),onChange:e=>n(e.target.value),style:{fontSize:`28px`,padding:`4px 12px`},className:`w-full rounded-lg border border-input bg-background font-bold text-text leading-tight outline-none transition-colors focus-visible:ring-2 focus-visible:ring-ring placeholder:text-muted/40`,placeholder:`…`},void 0,!1,{fileName:B,lineNumber:880,columnNumber:9},this)},void 0,!1,{fileName:B,lineNumber:866,columnNumber:5},this)}function nl({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:bt(String(e??``))},void 0,!1,{fileName:B,lineNumber:894,columnNumber:10},this)}I({kinds:[`title`],Page:tl,Inline:nl});var V=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/localpath.tsx`;function rl(e){let t=e.lastIndexOf(`/`);return t<0?{dirPrefix:``,partial:e}:{dirPrefix:e.slice(0,t),partial:e.slice(t+1)}}function il(e,t){return`${e.replace(/\/+$/,``)}/${t}`}function al(e){let t=e.replace(/\/+$/,``),n=t.lastIndexOf(`/`);return n<0?`~`:t.slice(0,n)||`/`}function ol({dirsOnly:e,exts:t,initialDir:n,onPick:r}){let[i,a]=(0,L.useState)(n||`~`),[o,s]=(0,L.useState)([]),[c,l]=(0,L.useState)(!1);(0,L.useEffect)(()=>{let n=!1,r=new URLSearchParams({path:i});return!e&&t?.length&&r.set(`exts`,t.join(`,`)),fetch(`/api/fs/list?${r.toString()}`).then(e=>e.ok?e.json():{entries:[]}).then(e=>{n||s(e.entries??[])}).catch(()=>{}),()=>{n=!0}},[i,e,t]);let u=o.filter(t=>(!e||t.isDir)&&(c||!t.name.startsWith(`.`)));return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-1.5`,children:[(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,onClick:()=>a(al(i)),"aria-label":`up`,disabled:i===`~`||i===`/`,children:(0,R.jsxDEV)(vs,{size:15},void 0,!1,{fileName:V,lineNumber:78,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:77,columnNumber:9},this),(0,R.jsxDEV)(`span`,{className:`flex-1 truncate font-mono text-xs text-muted`,title:i,children:i},void 0,!1,{fileName:V,lineNumber:80,columnNumber:9},this),(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,onClick:()=>l(e=>!e),"aria-label":`hidden`,title:c?`Hide dotfiles`:`Show dotfiles`,children:c?(0,R.jsxDEV)(Ss,{size:15},void 0,!1,{fileName:V,lineNumber:84,columnNumber:25},this):(0,R.jsxDEV)(xs,{size:15},void 0,!1,{fileName:V,lineNumber:84,columnNumber:45},this)},void 0,!1,{fileName:V,lineNumber:83,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:76,columnNumber:7},this),(0,R.jsxDEV)(Gn,{className:`h-56 -mx-1 px-1`,children:(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[u.length===0&&(0,R.jsxDEV)(`span`,{className:`px-2 py-3 text-xs text-muted`,children:`—`},void 0,!1,{fileName:V,lineNumber:90,columnNumber:36},this),u.map(t=>(0,R.jsxDEV)(`div`,{className:`group flex items-center rounded-md hover:bg-elevated`,children:[(0,R.jsxDEV)(`button`,{type:`button`,className:`flex min-w-0 flex-1 items-center gap-2 px-2 py-1.5 text-left text-sm`,onClick:()=>t.isDir?a(il(i,t.name)):r(il(i,t.name),!1),children:[t.isDir?(0,R.jsxDEV)(ge,{size:15,className:`shrink-0 text-muted`},void 0,!1,{fileName:V,lineNumber:98,columnNumber:28},this):(0,R.jsxDEV)(Et,{size:15,className:`shrink-0 text-muted`},void 0,!1,{fileName:V,lineNumber:98,columnNumber:83},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:t.name},void 0,!1,{fileName:V,lineNumber:99,columnNumber:17},this),t.isDir&&(0,R.jsxDEV)(gs,{size:14,className:`ml-auto shrink-0 text-muted opacity-0 group-hover:opacity-100`},void 0,!1,{fileName:V,lineNumber:100,columnNumber:29},this)]},void 0,!0,{fileName:V,lineNumber:93,columnNumber:15},this),e&&t.isDir&&(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,className:`mr-1`,onClick:()=>r(il(i,t.name),!0),"aria-label":`select`,title:`Select folder`,children:(0,R.jsxDEV)(Je,{size:15},void 0,!1,{fileName:V,lineNumber:105,columnNumber:19},this)},void 0,!1,{fileName:V,lineNumber:104,columnNumber:17},this)]},t.name,!0,{fileName:V,lineNumber:92,columnNumber:13},this))]},void 0,!0,{fileName:V,lineNumber:89,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:88,columnNumber:7},this),e&&(0,R.jsxDEV)(F,{variant:`outline`,size:`sm`,onClick:()=>r(i,!0),children:[(0,R.jsxDEV)(Je,{size:14},void 0,!1,{fileName:V,lineNumber:116,columnNumber:11},this),` Choose this directory`]},void 0,!0,{fileName:V,lineNumber:115,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:74,columnNumber:5},this)}function sl({name:e,field:t,value:n,onChange:r}){let i=t.kind===`localDir`,a=t.hints.exts,[o,s]=(0,L.useState)(!1);return(0,R.jsxDEV)(`div`,{className:`flex items-stretch gap-1.5`,children:[(0,R.jsxDEV)(E,{id:e,value:n,onChange:e=>r(e.target.value),placeholder:`~/…`,spellCheck:!1,autoComplete:`off`},void 0,!1,{fileName:V,lineNumber:140,columnNumber:7},this),(0,R.jsxDEV)(P,{open:o,onOpenChange:s,children:[(0,R.jsxDEV)(ue,{asChild:!0,children:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,size:`icon`,"aria-label":`browse`,children:(0,R.jsxDEV)(ge,{size:16},void 0,!1,{fileName:V,lineNumber:151,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:150,columnNumber:11},this)},void 0,!1,{fileName:V,lineNumber:149,columnNumber:9},this),(0,R.jsxDEV)(ce,{align:`end`,className:`w-80 p-3`,children:o&&(0,R.jsxDEV)(ol,{dirsOnly:i,exts:a,initialDir:rl(n).dirPrefix||`~`,onPick:(e,t)=>{r(t?`${e.replace(/\/+$/,``)}/`:e),t||s(!1)}},void 0,!1,{fileName:V,lineNumber:156,columnNumber:13},this)},void 0,!1,{fileName:V,lineNumber:154,columnNumber:9},this)]},void 0,!0,{fileName:V,lineNumber:148,columnNumber:7},this)]},void 0,!0,{fileName:V,lineNumber:139,columnNumber:5},this)}function cl(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:e=>st(e)?(0,R.jsxDEV)(`span`,{className:`font-mono text-sm break-all`,children:String(e)},void 0,!1,{fileName:V,lineNumber:184,columnNumber:35},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:V,lineNumber:184,columnNumber:102},this),edit:(t,n)=>(0,R.jsxDEV)(sl,{name:`field-${e.field.label}`,field:e.field,value:String(t),onChange:n},void 0,!1,{fileName:V,lineNumber:186,columnNumber:9},this)},void 0,!1,{fileName:V,lineNumber:174,columnNumber:5},this)}function ll({value:e}){return(0,R.jsxDEV)(`span`,{className:`font-mono truncate`,children:bt(String(e??``))},void 0,!1,{fileName:V,lineNumber:198,columnNumber:10},this)}I({kinds:[`localDir`,`localFile`],Page:cl,Inline:ll});function ul(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&typeof Object.getOwnPropertySymbols==`function`)for(var i=0,r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]]);return n}var dl;(function(e){e.event=`event`,e.props=`prop`})(dl||={});function fl(){}function pl(e){var t,n=void 0;return function(){for(var r=[],i=arguments.length;i--;)r[i]=arguments[i];return t&&r.length===t.length&&r.every(function(e,n){return e===t[n]})?n:(t=r,n=e.apply(void 0,r),n)}}function ml(e){return!!(e||``).match(/\d/)}function hl(e){return e==null}function gl(e){return typeof e==`number`&&isNaN(e)}function _l(e){return hl(e)||gl(e)||typeof e==`number`&&!isFinite(e)}function vl(e){return e.replace(/[-[\]/{}()*+?.\\^$|]/g,`\\$&`)}function yl(e){switch(e){case`lakh`:return/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/g;case`wan`:return/(\d)(?=(\d{4})+(?!\d))/g;default:return/(\d)(?=(\d{3})+(?!\d))/g}}function bl(e,t,n){var r=yl(n),i=e.search(/[1-9]/);return i=i===-1?e.length:i,e.substring(0,i)+e.substring(i,e.length).replace(r,`$1`+t)}function xl(e){var t=(0,L.useRef)(e);return t.current=e,(0,L.useRef)(function(){for(var e=[],n=arguments.length;n--;)e[n]=arguments[n];return t.current.apply(t,e)}).current}function Sl(e,t){t===void 0&&(t=!0);var n=e[0]===`-`,r=n&&t;e=e.replace(`-`,``);var i=e.split(`.`);return{beforeDecimal:i[0],afterDecimal:i[1]||``,hasNegation:n,addNegation:r}}function Cl(e){if(!e)return e;var t=e[0]===`-`;t&&(e=e.substring(1,e.length));var n=e.split(`.`),r=n[0].replace(/^0+/,``)||`0`,i=n[1]||``;return(t?`-`:``)+r+(i?`.`+i:``)}function wl(e,t,n){for(var r=``,i=n?`0`:``,a=0;a<=t-1;a++)r+=e[a]||i;return r}function Tl(e,t){return Array(t+1).join(e)}function El(e){var t=e+``,n=t[0]===`-`?`-`:``;n&&(t=t.substring(1));var r=t.split(/[eE]/g),i=r[0],a=r[1];if(a=Number(a),!a)return n+i;i=i.replace(`.`,``);var o=1+a,s=i.length;return o<0?i=`0.`+Tl(`0`,Math.abs(o))+i:o>=s?i+=Tl(`0`,o-s):i=(i.substring(0,o)||`0`)+`.`+i.substring(o),n+i}function Dl(e,t,n){if([``,`-`].indexOf(e)!==-1)return e;var r=(e.indexOf(`.`)!==-1||n)&&t,i=Sl(e),a=i.beforeDecimal,o=i.afterDecimal,s=i.hasNegation,c=parseFloat(`0.`+(o||`0`)),l=(o.length<=t?`0.`+o:c.toFixed(t)).split(`.`),u=a;a&&Number(l[0])&&(u=a.split(``).reverse().reduce(function(e,t,n){return e.length>n?(Number(e[0])+Number(t)).toString()+e.substring(1,e.length):t+e},l[0]));var d=wl(l[1]||``,t,n),f=s?`-`:``,p=r?`.`:``;return``+f+u+p+d}function Ol(e,t){if(e.value=e.value,e!==null){if(e.createTextRange){var n=e.createTextRange();return n.move(`character`,t),n.select(),!0}return e.selectionStart||e.selectionStart===0?(e.focus(),e.setSelectionRange(t,t),!0):(e.focus(),!1)}}var kl=pl(function(e,t){for(var n=0,r=0,i=e.length,a=t.length;e[n]===t[n]&&n<i;)n++;for(;e[i-1-r]===t[a-1-r]&&a-r>n&&i-r>n;)r++;return{from:{start:n,end:i-r},to:{start:n,end:a-r}}}),Al=function(e,t){var n=Math.min(e.selectionStart,t);return{from:{start:n,end:e.selectionEnd},to:{start:n,end:t}}};function jl(e,t,n){return Math.min(Math.max(e,t),n)}function Ml(e){return Math.max(e.selectionStart,e.selectionEnd)}function Nl(){return typeof navigator<`u`&&!(navigator.platform&&/iPhone|iPod/.test(navigator.platform))}function Pl(e){return{from:{start:0,end:0},to:{start:0,end:e.length},lastValue:``}}function Fl(e){var t=e.currentValue,n=e.formattedValue,r=e.currentValueIndex,i=e.formattedValueIndex;return t[r]===n[i]}function Il(e,t,n,r,i,a,o){o===void 0&&(o=Fl);var s=i.findIndex(function(e){return e}),c=e.slice(0,s);!t&&!n.startsWith(c)&&(t=c,n=c+n,r+=c.length);for(var l=n.length,u=e.length,d={},f=Array(l),p=0;p<l;p++){f[p]=-1;for(var m=0,h=u;m<h;m++)if(o({currentValue:n,lastValue:t,formattedValue:e,currentValueIndex:p,formattedValueIndex:m})&&d[m]!==!0){f[p]=m,d[m]=!0;break}}for(var g=r;g<l&&(f[g]===-1||!a(n[g]));)g++;var _=g===l||f[g]===-1?u:f[g];for(g=r-1;g>0&&f[g]===-1;)g--;var v=g===-1||f[g]===-1?0:f[g]+1;return v>_?_:r-v<_-r?v:_}function Ll(e,t,n,r){var i=e.length;if(t=jl(t,0,i),r===`left`){for(;t>=0&&!n[t];)t--;t===-1&&(t=n.indexOf(!0))}else{for(;t<=i&&!n[t];)t++;t>i&&(t=n.lastIndexOf(!0))}return t===-1&&(t=i),t}function Rl(e){for(var t=Array.from({length:e.length+1}).map(function(){return!0}),n=0,r=t.length;n<r;n++)t[n]=!!(ml(e[n])||ml(e[n-1]));return t}function zl(e,t,n,r,i,a){a===void 0&&(a=fl);var o=xl(function(e,t){var n,a;return _l(e)?(a=``,n=``):typeof e==`number`||t?(a=typeof e==`number`?El(e):e,n=r(a)):(a=i(e,void 0),n=r(a)),{formattedValue:n,numAsString:a}}),s=(0,L.useState)(function(){return o(hl(e)?t:e,n)}),c=s[0],l=s[1],u=xl(function(e,t){e.formattedValue!==c.formattedValue&&l({formattedValue:e.formattedValue,numAsString:e.value}),a(e,t)}),d=e,f=n;hl(e)&&(d=c.numAsString,f=!0);var p=o(d,f);return(0,L.useMemo)(function(){l(p)},[p.formattedValue]),(0,L.useEffect)(function(){if(!hl(t)&&hl(e)&&c.formattedValue!==``){var n=parseFloat(c.numAsString);u({formattedValue:c.formattedValue,value:c.numAsString,floatValue:isNaN(n)?void 0:n},{event:void 0,source:dl.props})}},[]),[c,u]}function Bl(e){return e.replace(/[^0-9]/g,``)}function Vl(e){return e}function Hl(e){var t=e.type;t===void 0&&(t=`text`);var n=e.displayType;n===void 0&&(n=`input`);var r=e.customInput,i=e.renderText,a=e.getInputRef,o=e.format;o===void 0&&(o=Vl);var s=e.removeFormatting;s===void 0&&(s=Bl);var c=e.defaultValue,l=e.valueIsNumericString,u=e.onValueChange,d=e.isAllowed,f=e.onChange;f===void 0&&(f=fl);var p=e.onKeyDown;p===void 0&&(p=fl);var m=e.onMouseUp;m===void 0&&(m=fl);var h=e.onFocus;h===void 0&&(h=fl);var g=e.onBlur;g===void 0&&(g=fl);var _=e.value,v=e.getCaretBoundary;v===void 0&&(v=Rl);var y=e.isValidInputCharacter;y===void 0&&(y=ml);var b=e.isCharacterSame,x=ul(e,[`type`,`displayType`,`customInput`,`renderText`,`getInputRef`,`format`,`removeFormatting`,`defaultValue`,`valueIsNumericString`,`onValueChange`,`isAllowed`,`onChange`,`onKeyDown`,`onMouseUp`,`onFocus`,`onBlur`,`value`,`getCaretBoundary`,`isValidInputCharacter`,`isCharacterSame`]),S=zl(_,c,!!l,o,s,u),C=S[0],w=C.formattedValue,T=C.numAsString,E=S[1],D=(0,L.useRef)(),O=(0,L.useRef)({formattedValue:w,numAsString:T}),k=function(e,t){O.current={formattedValue:e.formattedValue,numAsString:e.value},E(e,t)},A=(0,L.useState)(!1),ee=A[0],te=A[1],ne=(0,L.useRef)(null),j=(0,L.useRef)({setCaretTimeout:null,focusTimeout:null});(0,L.useEffect)(function(){return te(!0),function(){clearTimeout(j.current.setCaretTimeout),clearTimeout(j.current.focusTimeout)}},[]);var M=o,re=function(e,t){var n=parseFloat(t);return{formattedValue:e,value:t,floatValue:isNaN(n)?void 0:n}},ie=function(e,t,n){e.selectionStart===0&&e.selectionEnd===e.value.length||(Ol(e,t),j.current.setCaretTimeout=setTimeout(function(){e.value===n&&e.selectionStart!==t&&Ol(e,t)},0))},ae=function(e,t,n){return Ll(e,t,v(e),n)},oe=function(e,t,n){var r=v(t),i=Il(t,w,e,n,r,y,b);return i=Ll(t,i,r),i},se=function(e){var t=e.formattedValue;t===void 0&&(t=``);var n=e.input,r=e.source,i=e.event,a=e.numAsString,o;if(n){var s=e.inputValue||n.value,c=Ml(n);n.value=t,o=oe(s,t,c),o!==void 0&&ie(n,o,t)}t!==w&&k(re(t,a),{event:i,source:r})};(0,L.useEffect)(function(){var e=O.current,t=e.formattedValue,n=e.numAsString;(w!==t||T!==n)&&k(re(w,T),{event:void 0,source:dl.props})},[w,T]);var ce=ne.current?Ml(ne.current):void 0;(typeof window<`u`?L.useLayoutEffect:L.useEffect)(function(){var e=ne.current;if(w!==O.current.formattedValue&&e){var t=oe(O.current.formattedValue,w,ce);e.value=w,ie(e,t,w)}},[w]);var le=function(e,t,n){var r=t.target,i=D.current?Al(D.current,r.selectionEnd):kl(w,e),a=Object.assign(Object.assign({},i),{lastValue:w}),o=s(e,a),c=M(o);if(o=s(c,void 0),d&&!d(re(c,o))){var l=t.target,u=oe(e,w,Ml(l));return l.value=w,ie(l,u,w),!1}return se({formattedValue:c,numAsString:o,inputValue:e,event:t,source:n,input:t.target}),!0},ue=function(e,t){t===void 0&&(t=0),D.current={selectionStart:e.selectionStart,selectionEnd:e.selectionEnd+t}},N=function(e){var t=e.target.value;le(t,e,dl.event)&&f(e),D.current=void 0},P=function(e){var t=e.target,n=e.key,r=t.selectionStart,i=t.selectionEnd,a=t.value;a===void 0&&(a=``);var o;n===`ArrowLeft`||n===`Backspace`?o=Math.max(r-1,0):n===`ArrowRight`?o=Math.min(r+1,a.length):n===`Delete`&&(o=r);var s=0;n===`Delete`&&r===i&&(s=1);var c=n===`ArrowLeft`||n===`ArrowRight`;if(o===void 0||r!==i&&!c){p(e),ue(t,s);return}var l=o;c?(l=ae(a,o,n===`ArrowLeft`?`left`:`right`),l!==o&&e.preventDefault()):n===`Delete`&&!y(a[o])?l=ae(a,o,`right`):n===`Backspace`&&!y(a[o])&&(l=ae(a,o,`left`)),l!==o&&ie(t,l,a),p(e),ue(t,s)},de=function(e){var t=e.target,n=function(){var e=t.selectionStart,n=t.selectionEnd,r=t.value;if(r===void 0&&(r=``),e===n){var i=ae(r,e);i!==e&&ie(t,i,r)}};n(),requestAnimationFrame(function(){n()}),m(e),ue(t)},fe=function(e){e.persist&&e.persist();var t=e.target,n=e.currentTarget;ne.current=t,j.current.focusTimeout=setTimeout(function(){var r=t.selectionStart,i=t.selectionEnd,a=t.value;a===void 0&&(a=``);var o=ae(a,r);o!==r&&!(r===0&&i===a.length)&&ie(t,o,a),h(Object.assign(Object.assign({},e),{currentTarget:n}))},0)},pe=function(e){ne.current=null,clearTimeout(j.current.focusTimeout),clearTimeout(j.current.setCaretTimeout),g(e)},me=ee&&Nl()?`numeric`:void 0,he=Object.assign({inputMode:me},x,{type:t,value:w,onChange:N,onKeyDown:P,onMouseUp:de,onFocus:fe,onBlur:pe});if(n===`text`)return i?L.createElement(L.Fragment,null,i(w,x)||null):L.createElement(`span`,Object.assign({},x,{ref:a}),w);if(r){var ge=r;return L.createElement(ge,Object.assign({},he,{ref:a}))}return L.createElement(`input`,Object.assign({},he,{ref:a}))}function Ul(e,t){var n=t.decimalScale,r=t.fixedDecimalScale,i=t.prefix;i===void 0&&(i=``);var a=t.suffix;a===void 0&&(a=``);var o=t.allowNegative,s=t.thousandsGroupStyle;if(s===void 0&&(s=`thousand`),e===``||e===`-`)return e;var c=Wl(t),l=c.thousandSeparator,u=c.decimalSeparator,d=n!==0&&e.indexOf(`.`)!==-1||n&&r,f=Sl(e,o),p=f.beforeDecimal,m=f.afterDecimal,h=f.addNegation;return n!==void 0&&(m=wl(m,n,!!r)),l&&(p=bl(p,l,s)),i&&(p=i+p),a&&(m+=a),h&&(p=`-`+p),e=p+(d&&u||``)+m,e}function Wl(e){var t=e.decimalSeparator;t===void 0&&(t=`.`);var n=e.thousandSeparator,r=e.allowedDecimalSeparators;return n===!0&&(n=`,`),r||=[t,`.`],{decimalSeparator:t,thousandSeparator:n,allowedDecimalSeparators:r}}function Gl(e,t){e===void 0&&(e=``);var n=RegExp(`(-)`),r=RegExp(`(-)(.)*(-)`),i=n.test(e),a=r.test(e);return e=e.replace(/-/g,``),i&&!a&&t&&(e=`-`+e),e}function Kl(e,t){return RegExp(`(^-)|[0-9]|`+vl(e),t?`g`:void 0)}function ql(e,t,n){return e===``||!t?.match(/\d/)&&!n?.match(/\d/)&&typeof e==`string`&&!isNaN(Number(e))}function Jl(e,t,n){var r;t===void 0&&(t=Pl(e));var i=n.allowNegative,a=n.prefix;a===void 0&&(a=``);var o=n.suffix;o===void 0&&(o=``);var s=n.decimalScale,c=t.from,l=t.to,u=l.start,d=l.end,f=Wl(n),p=f.allowedDecimalSeparators,m=f.decimalSeparator,h=e[d]===m;if(ml(e)&&(e===a||e===o)&&t.lastValue===``)return e;if(d-u===1&&p.indexOf(e[u])!==-1){var g=s===0?``:m;e=e.substring(0,u)+g+e.substring(u+1,e.length)}var _=function(e,t,n){var r=!1,i=!1;a.startsWith(`-`)?r=!1:e.startsWith(`--`)?(r=!1,i=!0):o.startsWith(`-`)&&e.length===o.length?r=!1:e[0]===`-`&&(r=!0);var s=+!!r;return i&&(s=2),s&&(e=e.substring(s),t-=s,n-=s),{value:e,start:t,end:n,hasNegation:r}},v=_(e,u,d),y=v.hasNegation;r=v,e=r.value,u=r.start,d=r.end;var b=_(t.lastValue,c.start,c.end),x=b.start,S=b.end,C=b.value,w=e.substring(u,d);e.length&&C.length&&(x>C.length-o.length||S<a.length)&&!(w&&o.startsWith(w))&&(e=C);var T=0;e.startsWith(a)?T+=a.length:u<a.length&&(T=u),e=e.substring(T),d-=T;var E=e.length,D=e.length-o.length;e.endsWith(o)?E=D:(d>D||d>e.length-o.length)&&(E=d),e=e.substring(0,E),e=Gl(y?`-`+e:e,i),e=(e.match(Kl(m,!0))||[]).join(``);var O=e.indexOf(m);e=e.replace(new RegExp(vl(m),`g`),function(e,t){return t===O?`.`:``});var k=Sl(e,i),A=k.beforeDecimal,ee=k.afterDecimal,te=k.addNegation;return l.end-l.start<c.end-c.start&&A===``&&h&&!parseFloat(ee)&&(e=te?`-`:``),e}function Yl(e,t){var n=t.prefix;n===void 0&&(n=``);var r=t.suffix;r===void 0&&(r=``);var i=Array.from({length:e.length+1}).map(function(){return!0}),a=e[0]===`-`;i.fill(!1,0,Math.min(n.length+ +!!a,e.length));var o=e.length;return i.fill(!1,o-r.length+1,o+1),i}function Xl(e){var t=Wl(e),n=t.thousandSeparator,r=t.decimalSeparator,i=e.prefix;i===void 0&&(i=``);var a=e.allowNegative;if(a===void 0&&(a=!0),n===r)throw Error(`
|
|
50
50
|
Decimal separator can't be same as thousand separator.
|
|
51
51
|
thousandSeparator: `+n+` (thousandSeparator = {true} is same as thousandSeparator = ",")
|
|
52
52
|
decimalSeparator: `+r+` (default value for decimalSeparator is .)
|
|
@@ -54,6 +54,6 @@ Buttons below trigger registered actions. The first succeeds after a short delay
|
|
|
54
54
|
Prefix can't start with '-' when allowNegative is true.
|
|
55
55
|
prefix: `+i+`
|
|
56
56
|
allowNegative: `+a+`
|
|
57
|
-
`),a=!1),Object.assign(Object.assign({},e),{allowNegative:a})}function ru(e){e=nu(e),e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle;var t=e.suffix,n=e.allowNegative,r=e.allowLeadingZeros,i=e.onKeyDown;i===void 0&&(i=vl);var a=e.onBlur;a===void 0&&(a=vl);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=gl(e,[`decimalSeparator`,`allowedDecimalSeparators`,`thousandsGroupStyle`,`suffix`,`allowNegative`,`allowLeadingZeros`,`onKeyDown`,`onBlur`,`thousandSeparator`,`decimalScale`,`fixedDecimalScale`,`prefix`,`defaultValue`,`value`,`valueIsNumericString`,`onValueChange`]),h=Xl(e),g=h.decimalSeparator,_=h.allowedDecimalSeparators,v=function(t){return Yl(t,e)},y=function(t,n){return eu(t,n,e)},b=xl(d)?u:d,x=f??$l(b,l,t);xl(d)?xl(u)||(x||=typeof u==`number`):x||=typeof d==`number`;var S=function(e){return Cl(e)?e:(typeof e==`number`&&(e=Ml(e)),x&&typeof s==`number`?Nl(e,s,!!c):e)},C=Gl(S(d),S(u),!!x,v,y,p),w=C[0],T=w.numAsString,E=w.formattedValue,D=C[1];return Object.assign(Object.assign({},m),{value:E,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===g||bl(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=Fl(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:D,format:v,removeFormatting:y,getCaretBoundary:function(t){return tu(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&&Pl(t,1),s&&c&&(r===`Backspace`&&d[a-1]===g?(Pl(t,a-1),e.preventDefault()):r===`Delete`&&d[a]===g&&e.preventDefault()),_?.includes(r)&&d[a]===g&&Pl(t,a+1);var f=o===!0?`,`:o;r===`Backspace`&&d[a-1]===f&&Pl(t,a-1),r===`Delete`&&d[a]===f&&Pl(t,a+1),i(e)},onBlur:function(t){var n=T;n.match(/\d/g)||(n=``),r||(n=kl(n)),c&&s&&(n=Nl(n,s,c)),n!==T&&D({formattedValue:Yl(n,e),value:n,floatValue:parseFloat(n)},{event:t,source:_l.event}),a(t)}})}function iu(e){var t=ru(e);return L.createElement(Jl,Object.assign({},t))}var au=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/visually-hidden-input.tsx`;function ou(e){let{control:t,value:n,checked:r,bubbles:i=!0,type:a=`hidden`,style:o,...s}=e,c=L.useMemo(()=>a===`checkbox`||a===`radio`||a===`switch`,[a]),l=L.useRef(null),u=L.useRef({value:c?r:n,previous:c?r:n}),d=L.useMemo(()=>{let e=c?r:n;return u.current.value!==e&&(u.current.previous=u.current.value,u.current.value=e),u.current.previous},[c,n,r]),[f,p]=L.useState({});L.useLayoutEffect(()=>{if(!t){p({});return}if(p({width:t.offsetWidth,height:t.offsetHeight}),typeof window>`u`)return;let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let n=e[0];if(!n)return;let r,i;if(`borderBoxSize`in n){let e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,i=t.blockSize}else r=t.offsetWidth,i=t.offsetHeight;p({width:r,height:i})});return e.observe(t,{box:`border-box`}),()=>{e.disconnect()}},[t]),L.useEffect(()=>{let e=l.current;if(!e)return;let t=window.HTMLInputElement.prototype,a=c?`checked`:`value`,o=c?`click`:`input`,s=c?r:n,u=c?r:typeof n==`object`&&n?JSON.stringify(n):n,f=Object.getOwnPropertyDescriptor(t,a)?.set;if(d!==s&&f){let t=new Event(o,{bubbles:i});f.call(e,u),e.dispatchEvent(t)}},[d,n,r,i,c]);let m=L.useMemo(()=>({...o,...f.width!==void 0&&f.height!==void 0?f:{},border:0,clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,whiteSpace:`nowrap`,width:`1px`}),[o,f]);return(0,R.jsxDEV)(`input`,{type:a,...s,ref:l,"aria-hidden":c,tabIndex:-1,defaultChecked:c?r:void 0,style:m},void 0,!1,{fileName:au,lineNumber:148,columnNumber:5},this)}var su=typeof window<`u`?L.useLayoutEffect:L.useEffect;function cu(e){let t=L.useRef(e);return su(()=>{t.current=e}),t}function lu(e){let t=L.useRef(null);return t.current===null&&(t.current=e()),t}var uu=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/rating.tsx`,du=`Rating`,fu=`RatingItem`,pu=`ratingFocusGroup.onEntryFocus`,mu={bubbles:!1,cancelable:!0};function hu(e,t){return`${e}-item-${t}`}function gu(e,t){return`partial-fill-gradient-${e}-${t}`}var _u={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,Home:`first`,End:`last`};function vu(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function yu(e,t,n){let r=vu(e.key,t);if(!(n===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r))&&!(n===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r)))return _u[r]}function bu(e,t=!1){let n=document.activeElement;for(let r of e){let e=r.current;if(e&&(e===n||(e.focus({preventScroll:t}),document.activeElement!==n)))return}}var xu=L.createContext(null);function Su(e){let t=L.useContext(xu);if(!t)throw Error(`\`${e}\` must be used within \`${du}\``);return t}function Cu(e,t){let n=L.useContext(xu),r=t??n;if(!r)throw Error(`\`useStore\` must be used within \`${du}\``);let i=L.useCallback(()=>e(r.getState()),[r,e]);return L.useSyncExternalStore(r.subscribe,i,i)}var wu=L.createContext(null);function Tu(e){let t=L.useContext(wu);if(!t)throw Error(`\`${e}\` must be used within \`${du}\``);return t}var Eu=L.createContext(null);function Du(e){let t=L.useContext(Eu);if(!t)throw Error(`\`${e}\` must be used within \`FocusProvider\``);return t}function Ou(e){let{value:t,defaultValue:n=0,onValueChange:r,onHover:i,onFocus:a,onMouseDown:o,dir:s,orientation:c=`horizontal`,activationMode:l=`automatic`,size:u=`default`,max:d=5,step:f=1,clearable:p=!1,asChild:m,disabled:h=!1,readOnly:g=!1,required:_=!1,className:v,id:y,name:b,ref:x,...S}=e,w=oe(s),T=L.useId(),E=y??T,D=lu(()=>new Set),O=lu(()=>({value:t??n,hoveredValue:null})),k=cu({onValueChange:r,onHover:i,onFocus:a,onMouseDown:o,step:f}),A=L.useMemo(()=>({subscribe:e=>(D.current.add(e),()=>D.current.delete(e)),getState:()=>O.current,setState:(e,t)=>{Object.is(O.current[e],t)||(e===`value`&&typeof t==`number`?(O.current.value=t,k.current.onValueChange?.(t)):e===`hoveredValue`?(O.current.hoveredValue=t,k.current.onHover?.(t)):O.current[e]=t,A.notify())},notify:()=>{for(let e of D.current)e()}}),[D,O,k]);su(()=>{t!==void 0&&A.setState(`value`,t)},[t]);let ee=Cu(e=>e.value,A),[te,ne]=L.useState(null),j=Rs(x,e=>ne(e)),M=!te||!!te.closest(`form`),[re,ae]=L.useState(null),[se,ce]=L.useState(!1),[le,ue]=L.useState(0),N=L.useRef(!1),P=L.useRef(new Map),de=L.useRef(new Map),fe=L.useRef(0),pe=L.useCallback(e=>{let t=de.current.get(e);if(t!==void 0)return t;let n=fe.current++;return de.current.set(e,n),n},[]),me=L.useCallback(e=>{ae(e)},[]),he=L.useCallback(()=>{ce(!0)},[]),ge=L.useCallback(()=>{ue(e=>e+1)},[]),_e=L.useCallback(()=>{ue(e=>e-1)},[]),ve=L.useCallback(e=>{P.current.set(e.id,e)},[]),ye=L.useCallback(e=>{P.current.delete(e)},[]),be=L.useCallback(()=>Array.from(P.current.values()).filter(e=>e.ref.current).sort((e,t)=>{let n=e.ref.current,r=t.ref.current;if(!n||!r)return 0;let i=n.compareDocumentPosition(r);return i&Node.DOCUMENT_POSITION_FOLLOWING?-1:i&Node.DOCUMENT_POSITION_PRECEDING?1:0}),[]),xe=L.useCallback(e=>{S.onBlur?.(e),!e.defaultPrevented&&ce(!1)},[S.onBlur]),Se=L.useCallback(e=>{if(k.current.onFocus?.(e),e.defaultPrevented)return;let t=!N.current;if(e.target===e.currentTarget&&t&&!se){let t=new CustomEvent(pu,mu);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=Array.from(P.current.values()).filter(e=>!e.disabled);bu([k.current.step<1?e.find(e=>e.value===Math.ceil(ee)):e.find(e=>e.value===ee),e.find(e=>e.id===re),...e].filter(Boolean).map(e=>e.ref),!1)}}N.current=!1},[k,se,ee,re]),Ce=L.useCallback(e=>{k.current.onMouseDown?.(e),!e.defaultPrevented&&(N.current=!0)},[k]),we=L.useMemo(()=>({rootId:E,dir:w,orientation:c,activationMode:l,disabled:h,readOnly:g,size:u,max:d,step:f,clearable:p,getAutoIndex:pe}),[E,w,c,l,h,g,u,d,f,p,pe]),Te=L.useMemo(()=>({tabStopId:re,onItemFocus:me,onItemShiftTab:he,onFocusableItemAdd:ge,onFocusableItemRemove:_e,onItemRegister:ve,onItemUnregister:ye,getItems:be}),[re,me,he,ge,_e,ve,ye,be]),Ee=m?ie:`div`;return(0,R.jsxDEV)(xu.Provider,{value:A,children:(0,R.jsxDEV)(wu.Provider,{value:we,children:(0,R.jsxDEV)(Eu.Provider,{value:Te,children:[(0,R.jsxDEV)(Ee,{id:E,role:`radiogroup`,"aria-orientation":c,"data-disabled":h?``:void 0,"data-readonly":g?``:void 0,"data-orientation":c,"data-slot":`rating`,dir:w,tabIndex:se||le===0?-1:0,...S,ref:j,className:C(`flex gap-1 text-primary outline-none`,c===`horizontal`?`flex-row items-center`:`flex-col items-start`,v),onBlur:xe,onFocus:Se,onMouseDown:Ce},void 0,!1,{fileName:uu,lineNumber:466,columnNumber:11},this),(0,R.jsxDEV)(`svg`,{width:`0`,height:`0`,style:{position:`absolute`},children:(0,R.jsxDEV)(`defs`,{children:(0,R.jsxDEV)(`linearGradient`,{id:gu(E,f),children:w===`rtl`?(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`transparent`},void 0,!1,{fileName:uu,lineNumber:494,columnNumber:21},this),(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`currentColor`},void 0,!1,{fileName:uu,lineNumber:495,columnNumber:21},this)]},void 0,!0,{fileName:uu,lineNumber:493,columnNumber:19},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`currentColor`},void 0,!1,{fileName:uu,lineNumber:499,columnNumber:21},this),(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`transparent`},void 0,!1,{fileName:uu,lineNumber:500,columnNumber:21},this)]},void 0,!0,{fileName:uu,lineNumber:498,columnNumber:19},this)},void 0,!1,{fileName:uu,lineNumber:491,columnNumber:15},this)},void 0,!1,{fileName:uu,lineNumber:490,columnNumber:13},this)},void 0,!1,{fileName:uu,lineNumber:489,columnNumber:11},this),M&&(0,R.jsxDEV)(ou,{type:`hidden`,control:te,name:b,value:ee,disabled:h,readOnly:g,required:_},void 0,!1,{fileName:uu,lineNumber:507,columnNumber:13},this)]},void 0,!0,{fileName:uu,lineNumber:465,columnNumber:9},this)},void 0,!1,{fileName:uu,lineNumber:464,columnNumber:7},this)},void 0,!1,{fileName:uu,lineNumber:463,columnNumber:5},this)}function ku(e){let{index:t,asChild:n,onClick:r,onFocus:i,onKeyDown:a,onMouseDown:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,disabled:u,className:d,children:f,ref:p,...m}=e,h=L.useRef(null),g=Rs(p,h),_=Tu(fu),v=L.useId(),y=L.useMemo(()=>t===void 0?_.getAutoIndex(v):t,[t,_,v])+1,b=Su(fu),x=Du(fu),S=Cu(e=>e.value),w=Cu(e=>e.hoveredValue),T=_.clearable,E=_.step,D=_.activationMode,O=hu(_.rootId,y),k=_.disabled||u,A=_.readOnly,ee=x.tabStopId===O,te=w??S,ne=te>=y,j=E<1&&te>=y-E&&te<y,M=w!==null&&w<y,re=L.useRef(!1),ae=cu({onClick:r,onFocus:i,onKeyDown:a,onMouseDown:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l});su(()=>(x.onItemRegister({id:O,ref:h,value:y,disabled:!!k}),k||x.onFocusableItemAdd(),()=>{x.onItemUnregister(O),k||x.onFocusableItemRemove()}),[x,O,y,k]);let oe=L.useCallback(e=>{if(ae.current.onClick?.(e),!e.defaultPrevented&&!k&&!A){let t=y;if(E<1){let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left<n.width/2;_.dir===`rtl`?r||(t=y-E):r&&(t=y-E)}T&&S===t&&(t=0),b.setState(`value`,t)}},[k,A,T,E,S,y,b,_.dir,ae]),se=L.useCallback(e=>{if(ae.current.onFocus?.(e),e.defaultPrevented)return;x.onItemFocus(O);let t=!re.current;if(!k&&!A&&D!==`manual`&&t&&!(E<1&&S===y-E)){let e=T&&S===y?0:y;b.setState(`value`,e)}re.current=!1},[x,O,D,k,A,T,S,y,E,b,ae]),ce=L.useCallback(e=>{if(ae.current.onKeyDown?.(e),e.defaultPrevented)return;if((e.key===`Enter`||e.key===` `)&&D===`manual`){e.preventDefault(),!k&&!A&&h.current&&h.current.click();return}if(e.key===`Tab`&&e.shiftKey){x.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=yu(e,_.dir,_.orientation);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;if(e.preventDefault(),E<1&&(t===`prev`||t===`next`)){if(!k&&!A){let e=S;e=t===`next`?Math.min(S+E,_.max):Math.max(S-E,0),b.setState(`value`,e);let n=x.getItems().filter(e=>!e.disabled).find(t=>t.value===Math.ceil(e));n?.ref.current&&queueMicrotask(()=>n.ref.current?.focus())}return}let n=x.getItems().filter(e=>!e.disabled).map(e=>e.ref);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.findIndex(t=>t.current===e.currentTarget);n=n.slice(r+1)}queueMicrotask(()=>bu(n))}},[x,_.dir,_.orientation,D,k,A,E,S,_.max,b,ae]),le=L.useCallback(e=>{ae.current.onMouseDown?.(e),!e.defaultPrevented&&(re.current=!0,k?e.preventDefault():x.onItemFocus(O))},[x,O,k,ae]),ue=L.useCallback(e=>{if(ae.current.onMouseEnter?.(e),!e.defaultPrevented&&!k&&!A){let t=y;if(E<1){let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left<n.width/2;_.dir===`rtl`?r||(t=y-E):r&&(t=y-E)}b.setState(`hoveredValue`,t)}},[k,A,E,y,b,_.dir,ae]),N=L.useCallback(e=>{ae.current.onMouseLeave?.(e),!e.defaultPrevented&&!k&&!A&&b.setState(`hoveredValue`,null)},[k,A,b,ae]),P=L.useCallback(e=>{if(ae.current.onMouseMove?.(e),!e.defaultPrevented&&!k&&!A&&E<1){let t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.left<t.width/2,r=y;r=_.dir===`rtl`?n?y:y-E:n?y-E:y,b.setState(`hoveredValue`,r)}},[k,A,E,y,b,_.dir,ae]),de=ne?`full`:j?`partial`:`empty`;return(0,R.jsxDEV)(n?ie:`button`,{role:`radio`,type:`button`,id:O,"aria-checked":ne,"aria-posinset":y,"aria-setsize":_.max,"data-disabled":k?``:void 0,"data-readonly":A?``:void 0,"data-state":ne?`full`:j?`partial`:`empty`,"data-hovered":M?``:void 0,"data-slot":`rating-item`,disabled:k,tabIndex:ee?0:-1,...m,ref:g,style:{...m.style,...j&&{"--partial-fill":`url(#${gu(_.rootId,E)})`}},className:C(`inline-flex items-center justify-center rounded transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50`,`[&_svg:not([class*='size-'])]:size-full [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:transition-colors [&_svg]:duration-200 data-[state=empty]:[&_svg]:fill-transparent data-[state=full]:[&_svg]:fill-current data-[state=partial]:[&_svg]:fill-(--partial-fill)`,_.size===`sm`?`size-4`:_.size===`lg`?`size-6`:`size-5`,d),onClick:oe,onFocus:se,onKeyDown:ce,onMouseDown:le,onMouseEnter:ue,onMouseMove:P,onMouseLeave:N,children:typeof f==`function`?f(de):f??(0,R.jsxDEV)(Ce,{},void 0,!1,{fileName:uu,lineNumber:926,columnNumber:24},this)},void 0,!1,{fileName:uu,lineNumber:884,columnNumber:5},this)}function Au(e,t){let n=Math.floor(e/86400),r=Math.floor(e%86400/3600),i=Math.floor(e%3600/60),a=e%60,o=[];return n&&o.push(`${n} ${t(`form.days`)}`),r&&o.push(`${r} ${t(`form.hours`)}`),i&&o.push(`${i} ${t(`form.minutes`)}`),a&&o.push(`${a} ${t(`form.seconds`)}`),o.length?o.join(` `):`0 ${t(`form.seconds`)}`}function ju(e){return e===!0||e===1||e===`1`||e===`true`}function Mu(e,t,n){let r=t.options?.find(e=>e.value===String(n))?.title;return r?e(r):String(n??``)}var H=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/number.tsx`;function Nu(e){return(0,R.jsxDEV)(`span`,{className:`font-mono`,children:String(e)},void 0,!1,{fileName:H,lineNumber:36,columnNumber:10},this)}function Pu({name:e,field:t,value:n,onChange:r}){let i=t.hints;return t.hints.multiple===!0?(0,R.jsxDEV)(St,{value:n,onChange:r,validate:e=>!isNaN(Number(e))&&e!==``,display:Nu,renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:H,lineNumber:49,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:43,columnNumber:7},this):(0,R.jsxDEV)(iu,{customInput:E,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:H,lineNumber:67,columnNumber:5},this)}function Fu({field:e,value:t}){return e.hints.multiple===!0?(0,R.jsxDEV)(Ot,{items:In(t,[]),content:Nu,reserveEditor:!0},void 0,!1,{fileName:H,lineNumber:85,columnNumber:12},this):vt(t,e=>(0,R.jsxDEV)(`span`,{children:String(e)},void 0,!1,{fileName:H,lineNumber:87,columnNumber:31},this))}function Iu(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,R.jsxDEV)(Fu,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:103,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Pu,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:105,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:92,columnNumber:5},this)}I({kinds:[`number`],Page:Iu});var Lu=e=>Array.from({length:e},(e,t)=>(0,R.jsxDEV)(ku,{className:`size-5 text-yellow-400 data-[state=empty]:text-border`},t,!1,{fileName:H,lineNumber:124,columnNumber:5},void 0));function Ru({value:e,onChange:t,field:n}){let r=Number(n.hints.max??5);return(0,R.jsxDEV)(`div`,{className:`flex items-center min-h-9`,children:(0,R.jsxDEV)(Ou,{value:e?Number(e):0,max:r,clearable:!0,readOnly:!t,onValueChange:e=>t?.(e===0?``:e),"aria-label":n.label,children:Lu(r)},void 0,!1,{fileName:H,lineNumber:135,columnNumber:7},this)},void 0,!1,{fileName:H,lineNumber:134,columnNumber:5},this)}function zu(e){let t=(0,R.jsxDEV)(Ru,{field:e.field,value:e.value,onChange:e.onChange},void 0,!1,{fileName:H,lineNumber:152,columnNumber:15},this);return e.bare?t:(0,R.jsxDEV)(`div`,{className:`group/field w-fit`,children:[e.label!==void 0&&(0,R.jsxDEV)(Gt,{label:e.label,required:e.required},void 0,!1,{fileName:H,lineNumber:156,columnNumber:33},this),t,(0,R.jsxDEV)(It,{error:e.error},void 0,!1,{fileName:H,lineNumber:158,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:155,columnNumber:5},this)}function Bu({value:e}){let t=Number(e);return(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 truncate`,children:Number.isNaN(t)||!t?`—`:(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(Te,{name:`lucide:star`,size:12,className:`fill-current text-yellow-400`},void 0,!1,{fileName:H,lineNumber:171,columnNumber:11},this),t]},void 0,!0,{fileName:H,lineNumber:170,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:166,columnNumber:5},this)}I({kinds:[`rating`],Page:zu,Inline:Bu});function Vu({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,R.jsxDEV)(ee,{className:`w-[5.25rem]`,children:[(0,R.jsxDEV)(D,{type:`number`,value:e||``,min:0,placeholder:`0`,...n},void 0,!1,{fileName:H,lineNumber:203,columnNumber:7},this),(0,R.jsxDEV)(O,{align:`inline-end`,children:(0,R.jsxDEV)(T,{children:t},void 0,!1,{fileName:H,lineNumber:205,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:204,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:202,columnNumber:5},this);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 flex-wrap ${Wt}`,children:[(0,R.jsxDEV)(p,{val:s,unit:r(`form.days`),onChange:e=>f(Number(e.target.value)||0,c,l,u)},void 0,!1,{fileName:H,lineNumber:211,columnNumber:7},this),(0,R.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:H,lineNumber:212,columnNumber:7},this),(0,R.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:H,lineNumber:213,columnNumber:7},this),d&&(0,R.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:H,lineNumber:221,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:210,columnNumber:5},this)}function Hu({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:H,lineNumber:236,columnNumber:43},this):(0,R.jsxDEV)(`span`,{className:`text-sm`,children:Au(n,t)},void 0,!1,{fileName:H,lineNumber:237,columnNumber:10},this)}function Uu(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:t=>(0,R.jsxDEV)(Hu,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:253,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Vu,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:255,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:242,columnNumber:5},this)}function Wu({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,R.jsxDEV)(`span`,{children:`—`},void 0,!1,{fileName:H,lineNumber:269,columnNumber:43},this):(0,R.jsxDEV)(`span`,{className:`truncate`,children:Au(n,t)},void 0,!1,{fileName:H,lineNumber:270,columnNumber:10},this)}I({kinds:[`duration`],Page:Uu,Inline:Wu});var Gu=365.2425,Ku=6048e5,qu=864e5,Ju=6e4,Yu=36e5,Xu=1e3,Zu=3600*24;Zu*7,Zu*Gu/12*3;var Qu=Symbol.for(`constructDateFrom`);function $u(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&Qu in e?e[Qu](t):e instanceof Date?new e.constructor(t):new Date(t)}function U(e,t){return $u(t||e,e)}function ed(e,t,n){let r=U(e,n?.in);return isNaN(t)?$u(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function td(e,t,n){let r=U(e,n?.in);if(isNaN(t))return $u(n?.in||e,NaN);if(!t)return r;let i=r.getDate(),a=$u(n?.in||e,r.getTime());return a.setMonth(r.getMonth()+t+1,0),i>=a.getDate()?a:(r.setFullYear(a.getFullYear(),a.getMonth(),i),r)}var nd={};function rd(){return nd}function id(e,t){let n=rd(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=U(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function ad(e,t){return id(e,{...t,weekStartsOn:1})}function od(e,t){let n=U(e,t?.in),r=n.getFullYear(),i=$u(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=ad(i),o=$u(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=ad(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function sd(e){let t=U(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function cd(e,...t){let n=$u.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function ld(e,t){let n=U(e,t?.in);return n.setHours(0,0,0,0),n}function ud(e,t,n){let[r,i]=cd(n?.in,e,t),a=ld(r),o=ld(i),s=+a-sd(a),c=+o-sd(o);return Math.round((s-c)/qu)}function dd(e,t){let n=od(e,t),r=$u(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),ad(r)}function fd(e,t,n){return ed(e,t*7,n)}function pd(e,t,n){return td(e,t*12,n)}function md(e,t){let n,r=t?.in;return e.forEach(e=>{!r&&typeof e==`object`&&(r=$u.bind(null,e));let t=U(e,r);(!n||n<t||isNaN(+t))&&(n=t)}),$u(r,n||NaN)}function hd(e,t){let n,r=t?.in;return e.forEach(e=>{!r&&typeof e==`object`&&(r=$u.bind(null,e));let t=U(e,r);(!n||n>t||isNaN(+t))&&(n=t)}),$u(r,n||NaN)}function gd(e,t,n){let[r,i]=cd(n?.in,e,t);return+ld(r)==+ld(i)}function _d(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function vd(e){return!(!_d(e)&&typeof e!=`number`||isNaN(+U(e)))}function yd(e,t,n){let[r,i]=cd(n?.in,e,t),a=r.getFullYear()-i.getFullYear(),o=r.getMonth()-i.getMonth();return a*12+o}function bd(e,t){let n=U(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function xd(e,t){let[n,r]=cd(e,t.start,t.end);return{start:n,end:r}}function Sd(e,t){let{start:n,end:r}=xd(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0),o.setDate(1);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push($u(n,o)),o.setMonth(o.getMonth()+s);return i?c.reverse():c}function Cd(e,t){let n=U(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function wd(e,t){let n=U(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function Td(e,t){let n=U(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function Ed(e,t){let{start:n,end:r}=xd(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0),o.setMonth(0,1);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push($u(n,o)),o.setFullYear(o.getFullYear()+s);return i?c.reverse():c}function Dd(e,t){let n=rd(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=U(e,t?.in),a=i.getDay(),o=(a<r?-7:0)+6-(a-r);return i.setDate(i.getDate()+o),i.setHours(23,59,59,999),i}function Od(e,t){return Dd(e,{...t,weekStartsOn:1})}var kd={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},Ad=(e,t,n)=>{let r,i=kd[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function jd(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Md={date:jd({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:jd({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:jd({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Nd={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Pd=(e,t,n,r)=>Nd[e];function Fd(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var Id={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:Fd({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:Fd({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:Fd({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:Fd({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:Fd({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function Ld(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?zd(s,e=>e.test(o)):Rd(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function Rd(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function zd(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function Bd(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var Vd={code:`en-US`,formatDistance:Ad,formatLong:Md,formatRelative:Pd,localize:Id,match:{ordinalNumber:Bd({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:Ld({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:Ld({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:Ld({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:Ld({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:Ld({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Hd(e,t){let n=U(e,t?.in);return ud(n,Td(n))+1}function Ud(e,t){let n=U(e,t?.in),r=ad(n)-+dd(n);return Math.round(r/Ku)+1}function Wd(e,t){let n=U(e,t?.in),r=n.getFullYear(),i=rd(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=$u(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=id(o,t),c=$u(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=id(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function Gd(e,t){let n=rd(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Wd(e,t),a=$u(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),id(a,t)}function Kd(e,t){let n=U(e,t?.in),r=id(n,t)-+Gd(n,t);return Math.round(r/Ku)+1}function qd(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var Jd={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return qd(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):qd(n+1,2)},d(e,t){return qd(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return qd(e.getHours()%12||12,t.length)},H(e,t){return qd(e.getHours(),t.length)},m(e,t){return qd(e.getMinutes(),t.length)},s(e,t){return qd(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return qd(Math.trunc(r*10**(n-3)),t.length)}},Yd={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},Xd={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return Jd.y(e,t)},Y:function(e,t,n,r){let i=Wd(e,r),a=i>0?i:1-i;return t===`YY`?qd(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):qd(a,t.length)},R:function(e,t){return qd(od(e),t.length)},u:function(e,t){return qd(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return qd(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return qd(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return Jd.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return qd(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=Kd(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):qd(i,t.length)},I:function(e,t,n){let r=Ud(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):qd(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):Jd.d(e,t)},D:function(e,t,n){let r=Hd(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):qd(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return qd(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return qd(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return qd(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?Yd.noon:r===0?Yd.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?Yd.evening:r>=12?Yd.afternoon:r>=4?Yd.morning:Yd.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return Jd.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):Jd.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):qd(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):qd(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):Jd.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):Jd.s(e,t)},S:function(e,t){return Jd.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return Qd(r);case`XXXX`:case`XX`:return $d(r);default:return $d(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return Qd(r);case`xxxx`:case`xx`:return $d(r);default:return $d(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+Zd(r,`:`);default:return`GMT`+$d(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+Zd(r,`:`);default:return`GMT`+$d(r,`:`)}},t:function(e,t,n){return qd(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return qd(+e,t.length)}};function Zd(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+qd(a,2)}function Qd(e,t){return e%60==0?(e>0?`-`:`+`)+qd(Math.abs(e)/60,2):$d(e,t)}function $d(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=qd(Math.trunc(r/60),2),a=qd(r%60,2);return n+i+t+a}var ef=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},tf=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},nf={p:tf,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return ef(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,ef(r,t)).replace(`{{time}}`,tf(i,t))}},rf=/^D+$/,af=/^Y+$/,of=[`D`,`DD`,`YY`,`YYYY`];function sf(e){return rf.test(e)}function cf(e){return af.test(e)}function lf(e,t,n){let r=uf(e,t,n);if(console.warn(r),of.includes(e))throw RangeError(r)}function uf(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var df=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,ff=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,pf=/^'([^]*?)'?$/,mf=/''/g,hf=/[a-zA-Z]/;function gf(e,t,n){let r=rd(),i=n?.locale??r.locale??Vd,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=U(e,n?.in);if(!vd(s))throw RangeError(`Invalid time value`);let c=t.match(ff).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=nf[t];return n(e,i.formatLong)}return e}).join(``).match(df).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:_f(e)};if(Xd[t])return{isToken:!0,value:e};if(t.match(hf))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&cf(a)||!n?.useAdditionalDayOfYearTokens&&sf(a))&&lf(a,t,String(e));let o=Xd[a[0]];return o(s,a,i.localize,l)}).join(``)}function _f(e){let t=e.match(pf);return t?t[1].replace(mf,`'`):e}function vf(e,t){let n=U(e,t?.in),r=n.getFullYear(),i=n.getMonth(),a=$u(n,0);return a.setFullYear(r,i+1,0),a.setHours(0,0,0,0),a.getDate()}function yf(){return Object.assign({},rd())}function bf(e,t){let n=U(e,t?.in).getDay();return n===0?7:n}function xf(e,t){return U(e,t?.in).getMonth()}function Sf(e,t){return U(e,t?.in).getFullYear()}function Cf(e,t){return+U(e)>+U(t)}function wf(e,t){return+U(e)<+U(t)}function Tf(e,t){let n=Ef(t)?new t(0):$u(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function Ef(e){return typeof e==`function`&&e.prototype?.constructor===e}var Df=10,Of=class{subPriority=0;validate(e,t){return!0}},kf=class extends Of{constructor(e,t,n,r,i){super(),this.value=e,this.validateValue=t,this.setValue=n,this.priority=r,i&&(this.subPriority=i)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,n){return this.setValue(e,t,this.value,n)}},Af=class extends Of{priority=Df;subPriority=-1;constructor(e,t){super(),this.context=e||(e=>$u(t,e))}set(e,t){return t.timestampIsSet?e:$u(e,Tf(e,this.context))}},jf=class{run(e,t,n,r){let i=this.parse(e,t,n,r);return i?{setter:new kf(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(e,t,n){return!0}},Mf=class extends jf{priority=140;parse(e,t,n){switch(t){case`G`:case`GG`:case`GGG`:return n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`});case`GGGGG`:return n.era(e,{width:`narrow`});default:return n.era(e,{width:`wide`})||n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`})}}set(e,t,n){return t.era=n,e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`R`,`u`,`t`,`T`]},Nf={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Pf={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function Ff(e,t){return e&&{value:t(e.value),rest:e.rest}}function If(e,t){let n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function Lf(e,t){let n=t.match(e);if(!n)return null;if(n[0]===`Z`)return{value:0,rest:t.slice(1)};let r=n[1]===`+`?1:-1,i=n[2]?parseInt(n[2],10):0,a=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:r*(i*Yu+a*Ju+o*Xu),rest:t.slice(n[0].length)}}function Rf(e){return If(Nf.anyDigitsSigned,e)}function zf(e,t){switch(e){case 1:return If(Nf.singleDigit,t);case 2:return If(Nf.twoDigits,t);case 3:return If(Nf.threeDigits,t);case 4:return If(Nf.fourDigits,t);default:return If(RegExp(`^\\d{1,`+e+`}`),t)}}function Bf(e,t){switch(e){case 1:return If(Nf.singleDigitSigned,t);case 2:return If(Nf.twoDigitsSigned,t);case 3:return If(Nf.threeDigitsSigned,t);case 4:return If(Nf.fourDigitsSigned,t);default:return If(RegExp(`^-?\\d{1,`+e+`}`),t)}}function Vf(e){switch(e){case`morning`:return 4;case`evening`:return 17;case`pm`:case`noon`:case`afternoon`:return 12;default:return 0}}function Hf(e,t){let n=t>0,r=n?t:1-t,i;if(r<=50)i=e||100;else{let t=r+50,n=Math.trunc(t/100)*100,a=e>=t%100;i=e+n-(a?100:0)}return n?i:1-i}function Uf(e){return e%400==0||e%4==0&&e%100!=0}var Wf=class extends jf{priority=130;incompatibleTokens=[`Y`,`R`,`u`,`w`,`I`,`i`,`e`,`c`,`t`,`T`];parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`yy`});switch(t){case`y`:return Ff(zf(4,e),r);case`yo`:return Ff(n.ordinalNumber(e,{unit:`year`}),r);default:return Ff(zf(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n){let r=e.getFullYear();if(n.isTwoDigitYear){let t=Hf(n.year,r);return e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}let i=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(i,0,1),e.setHours(0,0,0,0),e}},Gf=class extends jf{priority=130;parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`YY`});switch(t){case`Y`:return Ff(zf(4,e),r);case`Yo`:return Ff(n.ordinalNumber(e,{unit:`year`}),r);default:return Ff(zf(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n,r){let i=Wd(e,r);if(n.isTwoDigitYear){let t=Hf(n.year,i);return e.setFullYear(t,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),id(e,r)}let a=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(a,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),id(e,r)}incompatibleTokens=[`y`,`R`,`u`,`Q`,`q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]},Kf=class extends jf{priority=130;parse(e,t){return Bf(t===`R`?4:t.length,e)}set(e,t,n){let r=$u(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),ad(r)}incompatibleTokens=[`G`,`y`,`Y`,`u`,`Q`,`q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},qf=class extends jf{priority=130;parse(e,t){return Bf(t===`u`?4:t.length,e)}set(e,t,n){return e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`G`,`y`,`Y`,`R`,`w`,`I`,`i`,`e`,`c`,`t`,`T`]},Jf=class extends jf{priority=120;parse(e,t,n){switch(t){case`Q`:case`QQ`:return zf(t.length,e);case`Qo`:return n.ordinalNumber(e,{unit:`quarter`});case`QQQ`:return n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`});case`QQQQQ`:return n.quarter(e,{width:`narrow`,context:`formatting`});default:return n.quarter(e,{width:`wide`,context:`formatting`})||n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},Yf=class extends jf{priority=120;parse(e,t,n){switch(t){case`q`:case`qq`:return zf(t.length,e);case`qo`:return n.ordinalNumber(e,{unit:`quarter`});case`qqq`:return n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`});case`qqqqq`:return n.quarter(e,{width:`narrow`,context:`standalone`});default:return n.quarter(e,{width:`wide`,context:`standalone`})||n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`Q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},Xf=class extends jf{incompatibleTokens=[`Y`,`R`,`q`,`Q`,`L`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`];priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`M`:return Ff(If(Nf.month,e),r);case`MM`:return Ff(zf(2,e),r);case`Mo`:return Ff(n.ordinalNumber(e,{unit:`month`}),r);case`MMM`:return n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`});case`MMMMM`:return n.month(e,{width:`narrow`,context:`formatting`});default:return n.month(e,{width:`wide`,context:`formatting`})||n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}},Zf=class extends jf{priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`L`:return Ff(If(Nf.month,e),r);case`LL`:return Ff(zf(2,e),r);case`Lo`:return Ff(n.ordinalNumber(e,{unit:`month`}),r);case`LLL`:return n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`});case`LLLLL`:return n.month(e,{width:`narrow`,context:`standalone`});default:return n.month(e,{width:`wide`,context:`standalone`})||n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]};function Qf(e,t,n){let r=U(e,n?.in),i=Kd(r,n)-t;return r.setDate(r.getDate()-i*7),U(r,n?.in)}var $f=class extends jf{priority=100;parse(e,t,n){switch(t){case`w`:return If(Nf.week,e);case`wo`:return n.ordinalNumber(e,{unit:`week`});default:return zf(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n,r){return id(Qf(e,n,r),r)}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]};function ep(e,t,n){let r=U(e,n?.in),i=Ud(r,n)-t;return r.setDate(r.getDate()-i*7),r}var tp=class extends jf{priority=100;parse(e,t,n){switch(t){case`I`:return If(Nf.week,e);case`Io`:return n.ordinalNumber(e,{unit:`week`});default:return zf(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n){return ad(ep(e,n))}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},np=[31,28,31,30,31,30,31,31,30,31,30,31],rp=[31,29,31,30,31,30,31,31,30,31,30,31],ip=class extends jf{priority=90;subPriority=1;parse(e,t,n){switch(t){case`d`:return If(Nf.date,e);case`do`:return n.ordinalNumber(e,{unit:`date`});default:return zf(t.length,e)}}validate(e,t){let n=Uf(e.getFullYear()),r=e.getMonth();return n?t>=1&&t<=rp[r]:t>=1&&t<=np[r]}set(e,t,n){return e.setDate(n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]},ap=class extends jf{priority=90;subpriority=1;parse(e,t,n){switch(t){case`D`:case`DD`:return If(Nf.dayOfYear,e);case`Do`:return n.ordinalNumber(e,{unit:`date`});default:return zf(t.length,e)}}validate(e,t){return Uf(e.getFullYear())?t>=1&&t<=366:t>=1&&t<=365}set(e,t,n){return e.setMonth(0,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`L`,`w`,`I`,`d`,`E`,`i`,`e`,`c`,`t`,`T`]};function op(e,t,n){let r=rd(),i=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=U(e,n?.in),o=a.getDay(),s=(t%7+7)%7,c=7-i;return ed(a,t<0||t>6?t-(o+c)%7:(s+c)%7-(o+c)%7,n)}var sp=class extends jf{priority=90;parse(e,t,n){switch(t){case`E`:case`EE`:case`EEE`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`EEEEE`:return n.day(e,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=op(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`D`,`i`,`e`,`c`,`t`,`T`]},cp=class extends jf{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`e`:case`ee`:return Ff(zf(t.length,e),i);case`eo`:return Ff(n.ordinalNumber(e,{unit:`day`}),i);case`eee`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`eeeee`:return n.day(e,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=op(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`c`,`t`,`T`]},lp=class extends jf{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`c`:case`cc`:return Ff(zf(t.length,e),i);case`co`:return Ff(n.ordinalNumber(e,{unit:`day`}),i);case`ccc`:return n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});case`ccccc`:return n.day(e,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});default:return n.day(e,{width:`wide`,context:`standalone`})||n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=op(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`e`,`t`,`T`]};function up(e,t,n){let r=U(e,n?.in);return ed(r,t-bf(r,n),n)}var dp=class extends jf{priority=90;parse(e,t,n){let r=e=>e===0?7:e;switch(t){case`i`:case`ii`:return zf(t.length,e);case`io`:return n.ordinalNumber(e,{unit:`day`});case`iii`:return Ff(n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiii`:return Ff(n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiiii`:return Ff(n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);default:return Ff(n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r)}}validate(e,t){return t>=1&&t<=7}set(e,t,n){return e=up(e,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`E`,`e`,`c`,`t`,`T`]},fp=class extends jf{priority=80;parse(e,t,n){switch(t){case`a`:case`aa`:case`aaa`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`aaaaa`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Vf(n),0,0,0),e}incompatibleTokens=[`b`,`B`,`H`,`k`,`t`,`T`]},pp=class extends jf{priority=80;parse(e,t,n){switch(t){case`b`:case`bb`:case`bbb`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`bbbbb`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Vf(n),0,0,0),e}incompatibleTokens=[`a`,`B`,`H`,`k`,`t`,`T`]},mp=class extends jf{priority=80;parse(e,t,n){switch(t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`BBBBB`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Vf(n),0,0,0),e}incompatibleTokens=[`a`,`b`,`t`,`T`]},hp=class extends jf{priority=70;parse(e,t,n){switch(t){case`h`:return If(Nf.hour12h,e);case`ho`:return n.ordinalNumber(e,{unit:`hour`});default:return zf(t.length,e)}}validate(e,t){return t>=1&&t<=12}set(e,t,n){let r=e.getHours()>=12;return r&&n<12?e.setHours(n+12,0,0,0):!r&&n===12?e.setHours(0,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`H`,`K`,`k`,`t`,`T`]},gp=class extends jf{priority=70;parse(e,t,n){switch(t){case`H`:return If(Nf.hour23h,e);case`Ho`:return n.ordinalNumber(e,{unit:`hour`});default:return zf(t.length,e)}}validate(e,t){return t>=0&&t<=23}set(e,t,n){return e.setHours(n,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`K`,`k`,`t`,`T`]},_p=class extends jf{priority=70;parse(e,t,n){switch(t){case`K`:return If(Nf.hour11h,e);case`Ko`:return n.ordinalNumber(e,{unit:`hour`});default:return zf(t.length,e)}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.getHours()>=12&&n<12?e.setHours(n+12,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`h`,`H`,`k`,`t`,`T`]},vp=class extends jf{priority=70;parse(e,t,n){switch(t){case`k`:return If(Nf.hour24h,e);case`ko`:return n.ordinalNumber(e,{unit:`hour`});default:return zf(t.length,e)}}validate(e,t){return t>=1&&t<=24}set(e,t,n){let r=n<=24?n%24:n;return e.setHours(r,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`H`,`K`,`t`,`T`]},yp=class extends jf{priority=60;parse(e,t,n){switch(t){case`m`:return If(Nf.minute,e);case`mo`:return n.ordinalNumber(e,{unit:`minute`});default:return zf(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setMinutes(n,0,0),e}incompatibleTokens=[`t`,`T`]},bp=class extends jf{priority=50;parse(e,t,n){switch(t){case`s`:return If(Nf.second,e);case`so`:return n.ordinalNumber(e,{unit:`second`});default:return zf(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setSeconds(n,0),e}incompatibleTokens=[`t`,`T`]},xp=class extends jf{priority=30;parse(e,t){return Ff(zf(t.length,e),e=>Math.trunc(e*10**(-t.length+3)))}set(e,t,n){return e.setMilliseconds(n),e}incompatibleTokens=[`t`,`T`]},Sp=class extends jf{priority=10;parse(e,t){switch(t){case`X`:return Lf(Pf.basicOptionalMinutes,e);case`XX`:return Lf(Pf.basic,e);case`XXXX`:return Lf(Pf.basicOptionalSeconds,e);case`XXXXX`:return Lf(Pf.extendedOptionalSeconds,e);default:return Lf(Pf.extended,e)}}set(e,t,n){return t.timestampIsSet?e:$u(e,e.getTime()-sd(e)-n)}incompatibleTokens=[`t`,`T`,`x`]},Cp=class extends jf{priority=10;parse(e,t){switch(t){case`x`:return Lf(Pf.basicOptionalMinutes,e);case`xx`:return Lf(Pf.basic,e);case`xxxx`:return Lf(Pf.basicOptionalSeconds,e);case`xxxxx`:return Lf(Pf.extendedOptionalSeconds,e);default:return Lf(Pf.extended,e)}}set(e,t,n){return t.timestampIsSet?e:$u(e,e.getTime()-sd(e)-n)}incompatibleTokens=[`t`,`T`,`X`]},wp=class extends jf{priority=40;parse(e){return Rf(e)}set(e,t,n){return[$u(e,n*1e3),{timestampIsSet:!0}]}incompatibleTokens=`*`},Tp=class extends jf{priority=20;parse(e){return Rf(e)}set(e,t,n){return[$u(e,n),{timestampIsSet:!0}]}incompatibleTokens=`*`},Ep={G:new Mf,y:new Wf,Y:new Gf,R:new Kf,u:new qf,Q:new Jf,q:new Yf,M:new Xf,L:new Zf,w:new $f,I:new tp,d:new ip,D:new ap,E:new sp,e:new cp,c:new lp,i:new dp,a:new fp,b:new pp,B:new mp,h:new hp,H:new gp,K:new _p,k:new vp,m:new yp,s:new bp,S:new xp,X:new Sp,x:new Cp,t:new wp,T:new Tp},Dp=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Op=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,kp=/^'([^]*?)'?$/,Ap=/''/g,jp=/\S/,Mp=/[a-zA-Z]/;function Np(e,t,n,r){let i=()=>$u(r?.in||n,NaN),a=yf(),o=r?.locale??a.locale??Vd,s=r?.firstWeekContainsDate??r?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,c=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(!t)return e?i():U(n,r?.in);let l={firstWeekContainsDate:s,weekStartsOn:c,locale:o},u=[new Af(r?.in,n)],d=t.match(Op).map(e=>{let t=e[0];if(t in nf){let n=nf[t];return n(e,o.formatLong)}return e}).join(``).match(Dp),f=[];for(let n of d){!r?.useAdditionalWeekYearTokens&&cf(n)&&lf(n,t,e),!r?.useAdditionalDayOfYearTokens&&sf(n)&&lf(n,t,e);let a=n[0],s=Ep[a];if(s){let{incompatibleTokens:t}=s;if(Array.isArray(t)){let e=f.find(e=>t.includes(e.token)||e.token===a);if(e)throw RangeError(`The format string mustn't contain \`${e.fullToken}\` and \`${n}\` at the same time`)}else if(s.incompatibleTokens===`*`&&f.length>0)throw RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);f.push({token:a,fullToken:n});let r=s.run(e,n,o.match,l);if(!r)return i();u.push(r.setter),e=r.rest}else{if(a.match(Mp))throw RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");if(n===`''`?n=`'`:a===`'`&&(n=Pp(n)),e.indexOf(n)===0)e=e.slice(n.length);else return i()}}if(e.length>0&&jp.test(e))return i();let p=u.map(e=>e.priority).sort((e,t)=>t-e).filter((e,t,n)=>n.indexOf(e)===t).map(e=>u.filter(t=>t.priority===e).sort((e,t)=>t.subPriority-e.subPriority)).map(e=>e[0]),m=U(n,r?.in);if(isNaN(+m))return i();let h={};for(let e of p){if(!e.validate(m,l))return i();let t=e.set(m,h,l);Array.isArray(t)?(m=t[0],Object.assign(h,t[1])):m=t}return m}function Pp(e){return e.match(kp)[1].replace(Ap,`'`)}function Fp(e,t,n){let[r,i]=cd(n?.in,e,t);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()}function Ip(e,t,n){let[r,i]=cd(n?.in,e,t);return r.getFullYear()===i.getFullYear()}function Lp(e,t,n){let r=U(e,n?.in),i=r.getFullYear(),a=r.getDate(),o=$u(n?.in||e,0);o.setFullYear(i,t,15),o.setHours(0,0,0,0);let s=vf(o);return r.setMonth(t,Math.min(a,s)),r}function Rp(e,t,n){let r=U(e,n?.in);return isNaN(+r)?$u(n?.in||e,NaN):(r.setFullYear(t),r)}function zp(e,t,n=`long`){return new Intl.DateTimeFormat(`en-US`,{hour:`numeric`,timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(` `)}var Bp={},Vp={};function Hp(e,t){try{let n=(Bp[e]||=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`longOffset`}).format)(t).split(`GMT`)[1];return n in Vp?Vp[n]:Wp(n,n.split(`:`))}catch{if(e in Vp)return Vp[e];let t=e?.match(Up);return t?Wp(e,t.slice(1)):NaN}}var Up=/([+-]\d\d):?(\d\d)?/;function Wp(e,t){let n=+(t[0]||0),r=+(t[1]||0),i=(t[2]||0)/60;return Vp[e]=n*60+r>0?n*60+r+i:n*60-r-i}var Gp=class e extends Date{constructor(...e){super(),e.length>1&&typeof e[e.length-1]==`string`&&(this.timeZone=e.pop()),this.internal=new Date,isNaN(Hp(this.timeZone,this))?this.setTime(NaN):e.length?typeof e[0]==`number`&&(e.length===1||e.length===2&&typeof e[1]!=`number`)?this.setTime(e[0]):typeof e[0]==`string`?this.setTime(+new Date(e[0])):e[0]instanceof Date?this.setTime(+e[0]):(this.setTime(+new Date(...e)),Yp(this,e)):this.setTime(Date.now())}static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}withTimeZone(t){return new e(+this,t)}getTimezoneOffset(){let e=-Hp(this.timeZone,this);return e>0?Math.floor(e):Math.ceil(e)}setTime(e){return Date.prototype.setTime.apply(this,arguments),qp(this),+this}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}},Kp=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!Kp.test(e))return;let t=e.replace(Kp,`$1UTC`);Gp.prototype[t]&&(e.startsWith(`get`)?Gp.prototype[e]=function(){return this.internal[t]()}:(Gp.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),Jp(this),+this},Gp.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),qp(this),+this}))});function qp(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Hp(e.timeZone,e)*60))}function Jp(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),Yp(e)}function Yp(e,t){let n=Array.isArray(t)?Xp(t):+e.internal,r=Hp(e.timeZone,e),i=r>0?Math.floor(r):Math.ceil(r),a=new Date(+e);a.setUTCHours(a.getUTCHours()-1);let o=-new Date(+e).getTimezoneOffset(),s=-new Date(+a).getTimezoneOffset(),c=o-s,l=o;if(c&&o!==i&&Date.prototype.getHours.apply(e)!==(Array.isArray(t)?t[3]||0:e.internal.getUTCHours())){let t=new Date(+e),n=o-i;n&&t.setUTCMinutes(t.getUTCMinutes()+n);let r=Hp(e.timeZone,t);(r>0?Math.floor(r):Math.ceil(r))===i&&(l=s)}let u=l-i;u&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+u);let d=new Date(+e);d.setUTCSeconds(0);let f=o>0?d.getSeconds():(d.getSeconds()-60)%60,p=Math.round(-(Hp(e.timeZone,e)*60))%60;(p||f)&&Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+f);let m=Hp(e.timeZone,e),h=m>0?Math.floor(m):Math.ceil(m),g=-new Date(+e).getTimezoneOffset()-h,_=h!==i,v=g-u,y=h-i,b=n-h*60*1e3,x=y>0&&Zp(e)-n===y*60*1e3&&Zp(e,b)!==n;if(_&&v&&!x){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+v);let t=Hp(e.timeZone,e),n=h-(t>0?Math.floor(t):Math.ceil(t));n&&v<0&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+n)}qp(e);let S=(t?n:n+p*1e3)-+e.internal;S&&Math.abs(S)<1800*1e3&&(Date.prototype.setTime.call(e,+e+S),qp(e))}function Xp(e){return Date.UTC(e[0],e.length>1?e[1]:0,e.length>2?e[2]:1,...e.slice(3))}function Zp(e,t){let n=new Date(t??+e);return n.setUTCSeconds(n.getUTCSeconds()-Math.round(-Hp(e.timeZone,n)*60)),+n}var Qp=class e extends Gp{static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}toISOString(){let[e,t,n]=this.tzComponents(),r=`${e}${t}:${n}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[e,t,n,r]=this.internal.toUTCString().split(` `);return`${e?.slice(0,-1)} ${n} ${t} ${r}`}toTimeString(){let e=this.internal.toUTCString().split(` `)[4],[t,n,r]=this.tzComponents();return`${e} GMT${t}${n}${r} (${zp(this.timeZone,this)})`}toLocaleString(e,t){return Date.prototype.toLocaleString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(e,t){return Date.prototype.toLocaleDateString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(e,t){return Date.prototype.toLocaleTimeString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){let e=this.getTimezoneOffset();return[e>0?`-`:`+`,String(Math.floor(Math.abs(e)/60)).padStart(2,`0`),String(Math.abs(e)%60).padStart(2,`0`)]}withTimeZone(t){return new e(+this,t)}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}},$p=5,em=4;function tm(e,t){let n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,i=t.addDays(e,-r+1),a=t.addDays(i,$p*7-1);return t.getMonth(e)===t.getMonth(a)?$p:em}function nm(e,t){let n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function rm(e,t){let n=nm(e,t),r=tm(e,t);return t.addDays(n,r*7-1)}var im={...Vd,labels:{labelDayButton:(e,t,n,r)=>{let i;i=r&&typeof r.format==`function`?r.format.bind(r):(e,t)=>gf(e,t,{locale:Vd,...n});let a=i(e,`PPPP`);return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a},labelMonthDropdown:`Choose the Month`,labelNext:`Go to the Next Month`,labelPrevious:`Go to the Previous Month`,labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:`Choose the Year`,labelGrid:(e,t,n)=>{let r;return r=n&&typeof n.format==`function`?n.format.bind(n):(e,n)=>gf(e,n,{locale:Vd,...t}),r(e,`LLLL yyyy`)},labelGridcell:(e,t,n,r)=>{let i;i=r&&typeof r.format==`function`?r.format.bind(r):(e,t)=>gf(e,t,{locale:Vd,...n});let a=i(e,`PPPP`);return t?.today&&(a=`Today, ${a}`),a},labelNav:`Navigation bar`,labelWeekNumberHeader:`Week Number`,labelWeekday:(e,t,n)=>{let r;return r=n&&typeof n.format==`function`?n.format.bind(n):(e,n)=>gf(e,n,{locale:Vd,...t}),r(e,`cccc`)}}},am=class e{constructor(e,t){this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?Qp.tz(this.options.timeZone):new(this.options.Date??Date),this.newDate=(e,t,n)=>this.overrides?.newDate?this.overrides.newDate(e,t,n):this.options.timeZone?new Qp(e,t,n,this.options.timeZone):new Date(e,t,n),this.addDays=(e,t)=>this.overrides?.addDays?this.overrides.addDays(e,t):ed(e,t),this.addMonths=(e,t)=>this.overrides?.addMonths?this.overrides.addMonths(e,t):td(e,t),this.addWeeks=(e,t)=>this.overrides?.addWeeks?this.overrides.addWeeks(e,t):fd(e,t),this.addYears=(e,t)=>this.overrides?.addYears?this.overrides.addYears(e,t):pd(e,t),this.differenceInCalendarDays=(e,t)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(e,t):ud(e,t),this.differenceInCalendarMonths=(e,t)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(e,t):yd(e,t),this.eachMonthOfInterval=e=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(e):Sd(e),this.eachYearOfInterval=e=>{let t=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(e):Ed(e),n=new Set(t.map(e=>this.getYear(e)));if(n.size===t.length)return t;let r=[];return n.forEach(e=>{r.push(new Date(e,0,1))}),r},this.endOfBroadcastWeek=e=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(e):rm(e,this),this.endOfISOWeek=e=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(e):Od(e),this.endOfMonth=e=>this.overrides?.endOfMonth?this.overrides.endOfMonth(e):bd(e),this.endOfWeek=(e,t)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(e,t):Dd(e,this.options),this.endOfYear=e=>this.overrides?.endOfYear?this.overrides.endOfYear(e):wd(e),this.format=(e,t,n)=>{let r=this.overrides?.format?this.overrides.format(e,t,this.options):gf(e,t,this.options);return this.options.numerals&&this.options.numerals!==`latn`?this.replaceDigits(r):r},this.getISOWeek=e=>this.overrides?.getISOWeek?this.overrides.getISOWeek(e):Ud(e),this.getMonth=(e,t)=>this.overrides?.getMonth?this.overrides.getMonth(e,this.options):xf(e,this.options),this.getYear=(e,t)=>this.overrides?.getYear?this.overrides.getYear(e,this.options):Sf(e,this.options),this.getWeek=(e,t)=>this.overrides?.getWeek?this.overrides.getWeek(e,this.options):Kd(e,this.options),this.isAfter=(e,t)=>this.overrides?.isAfter?this.overrides.isAfter(e,t):Cf(e,t),this.isBefore=(e,t)=>this.overrides?.isBefore?this.overrides.isBefore(e,t):wf(e,t),this.isDate=e=>this.overrides?.isDate?this.overrides.isDate(e):_d(e),this.isSameDay=(e,t)=>this.overrides?.isSameDay?this.overrides.isSameDay(e,t):gd(e,t),this.isSameMonth=(e,t)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(e,t):Fp(e,t),this.isSameYear=(e,t)=>this.overrides?.isSameYear?this.overrides.isSameYear(e,t):Ip(e,t),this.max=e=>this.overrides?.max?this.overrides.max(e):md(e),this.min=e=>this.overrides?.min?this.overrides.min(e):hd(e),this.setMonth=(e,t)=>this.overrides?.setMonth?this.overrides.setMonth(e,t):Lp(e,t),this.setYear=(e,t)=>this.overrides?.setYear?this.overrides.setYear(e,t):Rp(e,t),this.startOfBroadcastWeek=(e,t)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(e,this):nm(e,this),this.startOfDay=e=>this.overrides?.startOfDay?this.overrides.startOfDay(e):ld(e),this.startOfISOWeek=e=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(e):ad(e),this.startOfMonth=e=>this.overrides?.startOfMonth?this.overrides.startOfMonth(e):Cd(e),this.startOfWeek=(e,t)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(e,this.options):id(e,this.options),this.startOfYear=e=>this.overrides?.startOfYear?this.overrides.startOfYear(e):Td(e),this.options={locale:im,...e},this.overrides=t}getDigitMap(){let{numerals:e=`latn`}=this.options,t=new Intl.NumberFormat(`en-US`,{numberingSystem:e}),n={};for(let e=0;e<10;e++)n[e.toString()]=t.format(e);return n}replaceDigits(e){let t=this.getDigitMap();return e.replace(/\d/g,e=>t[e]||e)}formatNumber(e){return this.replaceDigits(e.toString())}getMonthYearOrder(){let t=this.options.locale?.code;return t&&e.yearFirstLocales.has(t)?`year-first`:`month-first`}formatMonthYear(t){let{locale:n,timeZone:r,numerals:i}=this.options,a=n?.code;if(a&&e.yearFirstLocales.has(a))try{return new Intl.DateTimeFormat(a,{month:`long`,year:`numeric`,timeZone:r,numberingSystem:i}).format(t)}catch{}let o=this.getMonthYearOrder()===`year-first`?`y LLLL`:`LLLL y`;return this.format(t,o)}};am.yearFirstLocales=new Set([`eu`,`hu`,`ja`,`ja-Hira`,`ja-JP`,`ko`,`ko-KR`,`lt`,`lt-LT`,`lv`,`lv-LV`,`mn`,`mn-MN`,`zh`,`zh-CN`,`zh-HK`,`zh-TW`]);var om=new am,sm=class{constructor(e,t,n=om){this.date=e,this.displayMonth=t,this.outside=!!(t&&!n.isSameMonth(e,t)),this.dateLib=n,this.isoDate=n.format(e,`yyyy-MM-dd`),this.displayMonthId=n.format(t,`yyyy-MM`),this.dateMonthId=n.format(e,`yyyy-MM`)}isEqualTo(e){return this.dateLib.isSameDay(e.date,this.date)&&this.dateLib.isSameMonth(e.displayMonth,this.displayMonth)}},cm=class{constructor(e,t){this.date=e,this.weeks=t}},lm=class{constructor(e,t){this.days=t,this.weekNumber=e}};function um(e){return L.createElement(`span`,{...e})}function dm(e){let{size:t=24,orientation:n=`left`,className:r,style:i}=e;return L.createElement(`svg`,{className:r,style:i,width:t,height:t,viewBox:`0 0 24 24`},n===`up`&&L.createElement(`polygon`,{points:`6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28`}),n===`down`&&L.createElement(`polygon`,{points:`6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72`}),n===`left`&&L.createElement(`polygon`,{points:`16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20`}),n===`right`&&L.createElement(`polygon`,{points:`8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20`}))}function fm(e){let{day:t,modifiers:n,...r}=e;return L.createElement(`td`,{...r})}function pm(e){let{day:t,modifiers:n,...r}=e,i=L.useRef(null);return L.useEffect(()=>{n.focused&&i.current?.focus()},[n.focused]),L.createElement(`button`,{ref:i,...r})}var W;(function(e){e.Root=`root`,e.Chevron=`chevron`,e.Day=`day`,e.DayButton=`day_button`,e.CaptionLabel=`caption_label`,e.Dropdowns=`dropdowns`,e.Dropdown=`dropdown`,e.DropdownRoot=`dropdown_root`,e.Footer=`footer`,e.MonthGrid=`month_grid`,e.MonthCaption=`month_caption`,e.MonthsDropdown=`months_dropdown`,e.Month=`month`,e.Months=`months`,e.Nav=`nav`,e.NextMonthButton=`button_next`,e.PreviousMonthButton=`button_previous`,e.Week=`week`,e.Weeks=`weeks`,e.Weekday=`weekday`,e.Weekdays=`weekdays`,e.WeekNumber=`week_number`,e.WeekNumberHeader=`week_number_header`,e.YearsDropdown=`years_dropdown`})(W||={});var mm;(function(e){e.disabled=`disabled`,e.hidden=`hidden`,e.outside=`outside`,e.focused=`focused`,e.today=`today`})(mm||={});var hm;(function(e){e.range_end=`range_end`,e.range_middle=`range_middle`,e.range_start=`range_start`,e.selected=`selected`})(hm||={});var gm;(function(e){e.weeks_before_enter=`weeks_before_enter`,e.weeks_before_exit=`weeks_before_exit`,e.weeks_after_enter=`weeks_after_enter`,e.weeks_after_exit=`weeks_after_exit`,e.caption_after_enter=`caption_after_enter`,e.caption_after_exit=`caption_after_exit`,e.caption_before_enter=`caption_before_enter`,e.caption_before_exit=`caption_before_exit`})(gm||={});var _m=(0,L.createContext)(void 0);function vm(){let e=(0,L.useContext)(_m);if(e===void 0)throw Error(`useDayPicker() must be used within a custom component.`);return e}function ym(e){let{options:t,className:n,...r}=e,{classNames:i,components:a,styles:o}=vm(),s=[i[W.Dropdown],n].join(` `),c=t?.find(({value:e})=>e===r.value);return L.createElement(`span`,{"data-disabled":r.disabled,className:i[W.DropdownRoot],style:o?.[W.DropdownRoot]},L.createElement(a.Select,{className:s,...r},t?.map(({value:e,label:t,disabled:n})=>L.createElement(a.Option,{key:e,value:e,disabled:n},t))),L.createElement(`span`,{className:i[W.CaptionLabel],style:o?.[W.CaptionLabel],"aria-hidden":!0},c?.label,L.createElement(a.Chevron,{orientation:`down`,size:18,className:i[W.Chevron],style:o?.[W.Chevron]})))}function bm(e){return L.createElement(`div`,{...e})}function xm(e){return L.createElement(`div`,{...e})}function Sm(e){let{calendarMonth:t,displayIndex:n,...r}=e;return L.createElement(`div`,{...r},e.children)}function Cm(e){let{calendarMonth:t,displayIndex:n,...r}=e;return L.createElement(`div`,{...r})}function wm(e){return L.createElement(`table`,{...e})}function Tm(e){return L.createElement(`div`,{...e})}function Em(e){let{components:t}=vm();return L.createElement(t.Dropdown,{...e})}function Dm(e){let{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:i,...a}=e,{components:o,classNames:s,styles:c,labels:{labelPrevious:l,labelNext:u}}=vm(),d=(0,L.useCallback)(e=>{i&&n?.(e)},[i,n]),f=(0,L.useCallback)(e=>{r&&t?.(e)},[r,t]);return L.createElement(`nav`,{...a},L.createElement(o.PreviousMonthButton,{type:`button`,className:s[W.PreviousMonthButton],style:c?.[W.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":!r||void 0,"aria-label":l(r),onClick:f},L.createElement(o.Chevron,{disabled:!r||void 0,className:s[W.Chevron],style:c?.[W.Chevron],orientation:`left`})),L.createElement(o.NextMonthButton,{type:`button`,className:s[W.NextMonthButton],style:c?.[W.NextMonthButton],tabIndex:i?void 0:-1,"aria-disabled":!i||void 0,"aria-label":u(i),onClick:d},L.createElement(o.Chevron,{disabled:!i||void 0,orientation:`right`,className:s[W.Chevron],style:c?.[W.Chevron]})))}function Om(e){return L.createElement(`button`,{...e})}function km(e){return L.createElement(`option`,{...e})}function Am(e){return L.createElement(`button`,{...e})}function jm(e){let{rootRef:t,...n}=e;return L.createElement(`div`,{...n,ref:t})}function Mm(e){return L.createElement(`select`,{...e})}function Nm(e){let{week:t,...n}=e;return L.createElement(`tr`,{...n})}function Pm(e){return L.createElement(`th`,{...e})}function Fm(e){return L.createElement(`thead`,{"aria-hidden":!0},L.createElement(`tr`,{...e}))}function Im(e){let{week:t,...n}=e;return L.createElement(`th`,{...n})}function Lm(e){return L.createElement(`th`,{...e})}function Rm(e){return L.createElement(`tbody`,{...e})}function zm(e){let{components:t}=vm();return L.createElement(t.Dropdown,{...e})}var Bm=e({CaptionLabel:()=>um,Chevron:()=>dm,Day:()=>fm,DayButton:()=>pm,Dropdown:()=>ym,DropdownNav:()=>bm,Footer:()=>xm,Month:()=>Sm,MonthCaption:()=>Cm,MonthGrid:()=>wm,Months:()=>Tm,MonthsDropdown:()=>Em,Nav:()=>Dm,NextMonthButton:()=>Om,Option:()=>km,PreviousMonthButton:()=>Am,Root:()=>jm,Select:()=>Mm,Week:()=>Nm,WeekNumber:()=>Im,WeekNumberHeader:()=>Lm,Weekday:()=>Pm,Weekdays:()=>Fm,Weeks:()=>Rm,YearsDropdown:()=>zm});function Vm(e,t,n=!1,r=om){let{from:i,to:a}=e,{differenceInCalendarDays:o,isSameDay:s}=r;return i&&a?(o(a,i)<0&&([i,a]=[a,i]),o(t,i)>=+!!n&&o(a,t)>=+!!n):!n&&a?s(a,t):!n&&i?s(i,t):!1}function Hm(e){return!!(e&&typeof e==`object`&&`before`in e&&`after`in e)}function Um(e){return!!(e&&typeof e==`object`&&`from`in e)}function Wm(e){return!!(e&&typeof e==`object`&&`after`in e)}function Gm(e){return!!(e&&typeof e==`object`&&`before`in e)}function Km(e){return!!(e&&typeof e==`object`&&`dayOfWeek`in e)}function qm(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Jm(e,t,n=om){let r=Array.isArray(t)?t:[t],{isSameDay:i,differenceInCalendarDays:a,isAfter:o}=n;return r.some(t=>{if(typeof t==`boolean`)return t;if(n.isDate(t))return i(e,t);if(qm(t,n))return t.some(t=>i(e,t));if(Um(t))return Vm(t,e,!1,n);if(Km(t))return Array.isArray(t.dayOfWeek)?t.dayOfWeek.includes(e.getDay()):t.dayOfWeek===e.getDay();if(Hm(t)){let n=a(t.before,e),r=a(t.after,e),i=n>0,s=r<0;return o(t.before,t.after)?s&&i:i||s}return Wm(t)?a(e,t.after)>0:Gm(t)?a(t.before,e)>0:typeof t==`function`&&t(e)})}function Ym(e,t,n,r,i){let{disabled:a,hidden:o,modifiers:s,showOutsideDays:c,broadcastCalendar:l,today:u=i.today()}=t,{isSameDay:d,isSameMonth:f,startOfMonth:p,isBefore:m,endOfMonth:h,isAfter:g}=i,_=n&&p(n),v=r&&h(r),y={[mm.focused]:[],[mm.outside]:[],[mm.disabled]:[],[mm.hidden]:[],[mm.today]:[]},b={};for(let t of e){let{date:e,displayMonth:n}=t,r=!!(n&&!f(e,n)),p=!!(_&&m(e,_)),h=!!(v&&g(e,v)),x=!!(a&&Jm(e,a,i)),S=!!(o&&Jm(e,o,i))||p||h||!l&&!c&&r||l&&c===!1&&r,C=d(e,u);r&&y.outside.push(t),x&&y.disabled.push(t),S&&y.hidden.push(t),C&&y.today.push(t),s&&Object.keys(s).forEach(n=>{let r=s?.[n];r&&Jm(e,r,i)&&(b[n]?b[n].push(t):b[n]=[t])})}return e=>{let t={[mm.focused]:!1,[mm.disabled]:!1,[mm.hidden]:!1,[mm.outside]:!1,[mm.today]:!1},n={};for(let n in y)t[n]=y[n].some(t=>t===e);for(let t in b)n[t]=b[t].some(t=>t===e);return{...t,...n}}}function Xm(e,t,n={}){return Object.entries(e).filter(([,e])=>e===!0).reduce((e,[r])=>(n[r]?e.push(n[r]):t[mm[r]]?e.push(t[mm[r]]):t[hm[r]]&&e.push(t[hm[r]]),e),[t[W.Day]])}function Zm(e){return{...Bm,...e}}function Qm(e){let t={"data-mode":e.mode??void 0,"data-required":`required`in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([e,n])=>{e.startsWith(`data-`)&&(t[e]=n)}),t}function $m(){let e={};for(let t in W)e[W[t]]=`rdp-${W[t]}`;for(let t in mm)e[mm[t]]=`rdp-${mm[t]}`;for(let t in hm)e[hm[t]]=`rdp-${hm[t]}`;for(let t in gm)e[gm[t]]=`rdp-${gm[t]}`;return e}function eh(e,t,n){return(n??new am(t)).formatMonthYear(e)}function th(e,t,n){return(n??new am(t)).format(e,`d`)}function nh(e,t=om){return t.format(e,`LLLL`)}function rh(e,t,n){return(n??new am(t)).format(e,`cccccc`)}function ih(e,t=om){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function ah(){return``}function oh(e,t=om){return t.format(e,`yyyy`)}var sh=e({formatCaption:()=>eh,formatDay:()=>th,formatMonthDropdown:()=>nh,formatWeekNumber:()=>ih,formatWeekNumberHeader:()=>ah,formatWeekdayName:()=>rh,formatYearDropdown:()=>oh});function ch(e){return{...sh,...e}}function lh(e,t,n,r){let i=(r??new am(n)).format(e,`PPPP`);return t.today&&(i=`Today, ${i}`),t.selected&&(i=`${i}, selected`),i}function uh(e,t,n){return(n??new am(t)).formatMonthYear(e)}function dh(e,t,n,r){let i=(r??new am(n)).format(e,`PPPP`);return t?.today&&(i=`Today, ${i}`),i}function fh(e){return`Choose the Month`}function ph(){return``}var mh=`Go to the Next Month`;function hh(e,t){return mh}function gh(e){return`Go to the Previous Month`}function _h(e,t,n){return(n??new am(t)).format(e,`cccc`)}function vh(e,t){return`Week ${e}`}function yh(e){return`Week Number`}function bh(e){return`Choose the Year`}var xh=e({labelDayButton:()=>lh,labelGrid:()=>uh,labelGridcell:()=>dh,labelMonthDropdown:()=>fh,labelNav:()=>ph,labelNext:()=>hh,labelPrevious:()=>gh,labelWeekNumber:()=>vh,labelWeekNumberHeader:()=>yh,labelWeekday:()=>_h,labelYearDropdown:()=>bh}),Sh=(e,t,n)=>t||(n?typeof n==`function`?n:(...e)=>n:e);function Ch(e,t){let n=t.locale?.labels??{};return{...xh,...e??{},labelDayButton:Sh(lh,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:Sh(fh,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:Sh(hh,e?.labelNext,n.labelNext),labelPrevious:Sh(gh,e?.labelPrevious,n.labelPrevious),labelWeekNumber:Sh(vh,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:Sh(bh,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:Sh(uh,e?.labelGrid,n.labelGrid),labelGridcell:Sh(dh,e?.labelGridcell,n.labelGridcell),labelNav:Sh(ph,e?.labelNav,n.labelNav),labelWeekNumberHeader:Sh(yh,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:Sh(_h,e?.labelWeekday,n.labelWeekday)}}function wh(e,t,n,r,i){let{startOfMonth:a,startOfYear:o,endOfYear:s,eachMonthOfInterval:c,getMonth:l}=i;return c({start:o(e),end:s(e)}).map(e=>{let o=r.formatMonthDropdown(e,i);return{value:l(e),label:o,disabled:t&&e<a(t)||n&&e>a(n)||!1}})}function Th(e,t={},n={}){let r={...t?.[W.Day]};return Object.entries(e).filter(([,e])=>e===!0).forEach(([e])=>{r={...r,...n?.[e]}}),r}function Eh(e,t,n,r){let i=r??e.today(),a=n?e.startOfBroadcastWeek(i,e):t?e.startOfISOWeek(i):e.startOfWeek(i),o=[];for(let t=0;t<7;t++){let n=e.addDays(a,t);o.push(n)}return o}function Dh(e,t,n,r,i=!1){if(!e||!t)return;let{startOfYear:a,endOfYear:o,eachYearOfInterval:s,getYear:c}=r,l=s({start:a(e),end:o(t)});return i&&l.reverse(),l.map(e=>{let t=n.formatYearDropdown(e,r);return{value:c(e),label:t,disabled:!1}})}function Oh(e,t={}){let{weekStartsOn:n,locale:r}=t,i=n??r?.options?.weekStartsOn??0,a=t=>{let n=typeof t==`number`||typeof t==`string`?new Date(t):t;return new Qp(n.getFullYear(),n.getMonth(),n.getDate(),12,0,0,e)},o=e=>{let t=a(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)};return{today:()=>a(Qp.tz(e)),newDate:(t,n,r)=>new Qp(t,n,r,12,0,0,e),startOfDay:e=>a(e),startOfWeek:(e,t)=>{let n=a(e),r=t?.weekStartsOn??i,o=(n.getDay()-r+7)%7;return n.setDate(n.getDate()-o),n},startOfISOWeek:e=>{let t=a(e),n=(t.getDay()-1+7)%7;return t.setDate(t.getDate()-n),t},startOfMonth:e=>{let t=a(e);return t.setDate(1),t},startOfYear:e=>{let t=a(e);return t.setMonth(0,1),t},endOfWeek:(e,t)=>{let n=a(e),r=(((t?.weekStartsOn??i)+6)%7-n.getDay()+7)%7;return n.setDate(n.getDate()+r),n},endOfISOWeek:e=>{let t=a(e),n=(7-t.getDay())%7;return t.setDate(t.getDate()+n),t},endOfMonth:e=>{let t=a(e);return t.setMonth(t.getMonth()+1,0),t},endOfYear:e=>{let t=a(e);return t.setMonth(11,31),t},eachMonthOfInterval:t=>{let n=a(t.start),r=a(t.end),i=[],o=new Qp(n.getFullYear(),n.getMonth(),1,12,0,0,e),s=r.getFullYear()*12+r.getMonth();for(;o.getFullYear()*12+o.getMonth()<=s;)i.push(new Qp(o,e)),o.setMonth(o.getMonth()+1,1);return i},addDays:(e,t)=>{let n=a(e);return n.setDate(n.getDate()+t),n},addWeeks:(e,t)=>{let n=a(e);return n.setDate(n.getDate()+t*7),n},addMonths:(e,t)=>{let n=a(e);return n.setMonth(n.getMonth()+t),n},addYears:(e,t)=>{let n=a(e);return n.setFullYear(n.getFullYear()+t),n},eachYearOfInterval:t=>{let n=a(t.start),r=a(t.end),i=[],o=new Qp(n.getFullYear(),0,1,12,0,0,e);for(;o.getFullYear()<=r.getFullYear();)i.push(new Qp(o,e)),o.setFullYear(o.getFullYear()+1,0,1);return i},getWeek:(e,t)=>Kd(o(e),{weekStartsOn:t?.weekStartsOn??i,firstWeekContainsDate:t?.firstWeekContainsDate??r?.options?.firstWeekContainsDate??1}),getISOWeek:e=>Ud(o(e)),differenceInCalendarDays:(e,t)=>ud(o(e),o(t)),differenceInCalendarMonths:(e,t)=>yd(o(e),o(t))}}var kh=e=>e instanceof HTMLElement?e:null,Ah=e=>[...e.querySelectorAll(`[data-animated-month]`)??[]],jh=e=>kh(e.querySelector(`[data-animated-month]`)),Mh=e=>kh(e.querySelector(`[data-animated-caption]`)),Nh=e=>kh(e.querySelector(`[data-animated-weeks]`)),Ph=e=>kh(e.querySelector(`[data-animated-nav]`)),Fh=e=>kh(e.querySelector(`[data-animated-weekdays]`));function Ih(e,t,{classNames:n,months:r,focused:i,dateLib:a}){let o=(0,L.useRef)(null),s=(0,L.useRef)(r),c=(0,L.useRef)(!1);(0,L.useLayoutEffect)(()=>{let l=s.current;if(s.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||l.length===0||r.length!==l.length)return;let u=a.isSameMonth(r[0].date,l[0].date),d=a.isAfter(r[0].date,l[0].date),f=d?n[gm.caption_after_enter]:n[gm.caption_before_enter],p=d?n[gm.weeks_after_enter]:n[gm.weeks_before_enter],m=o.current,h=e.current.cloneNode(!0);if(h instanceof HTMLElement?(Ah(h).forEach(e=>{if(!(e instanceof HTMLElement))return;let t=jh(e);t&&e.contains(t)&&e.removeChild(t);let n=Mh(e);n&&n.classList.remove(f);let r=Nh(e);r&&r.classList.remove(p)}),o.current=h):o.current=null,c.current||u||i)return;let g=m instanceof HTMLElement?Ah(m):[],_=Ah(e.current);if(_?.every(e=>e instanceof HTMLElement)&&g?.every(e=>e instanceof HTMLElement)){c.current=!0;let t=[];e.current.style.isolation=`isolate`;let r=Ph(e.current);r&&(r.style.zIndex=`1`),_.forEach((i,a)=>{let o=g[a];if(!o)return;i.style.position=`relative`,i.style.overflow=`hidden`;let s=Mh(i);s&&s.classList.add(f);let l=Nh(i);l&&l.classList.add(p);let u=()=>{c.current=!1,e.current&&(e.current.style.isolation=``),r&&(r.style.zIndex=``),s&&s.classList.remove(f),l&&l.classList.remove(p),i.style.position=``,i.style.overflow=``,i.contains(o)&&i.removeChild(o)};t.push(u),o.style.pointerEvents=`none`,o.style.position=`absolute`,o.style.overflow=`hidden`,o.setAttribute(`aria-hidden`,`true`);let m=Fh(o);m&&(m.style.opacity=`0`);let h=Mh(o);h&&(h.classList.add(d?n[gm.caption_before_exit]:n[gm.caption_after_exit]),h.addEventListener(`animationend`,u));let _=Nh(o);_&&_.classList.add(d?n[gm.weeks_before_exit]:n[gm.weeks_after_exit]),i.insertBefore(o,i.firstChild)})}})}function Lh(e,t,n,r){let i=e[0],a=e[e.length-1],{ISOWeek:o,fixedWeeks:s,broadcastCalendar:c}=n??{},{addDays:l,differenceInCalendarDays:u,differenceInCalendarMonths:d,endOfBroadcastWeek:f,endOfISOWeek:p,endOfMonth:m,endOfWeek:h,isAfter:g,startOfBroadcastWeek:_,startOfISOWeek:v,startOfWeek:y}=r,b=c?_(i,r):o?v(i):y(i),x=c?f(a):o?p(m(a)):h(m(a)),S=t&&(c?f(t):o?p(t):h(t)),C=u(S&&g(x,S)?S:x,b),w=d(a,i)+1,T=[];for(let e=0;e<=C;e++){let t=l(b,e);T.push(t)}let E=(c?35:42)*w;if(s&&T.length<E){let e=E-T.length;for(let t=0;t<e;t++){let e=l(T[T.length-1],1);T.push(e)}}return T}function Rh(e){let t=[];return e.reduce((e,n)=>{let r=n.weeks.reduce((e,t)=>e.concat(t.days.slice()),t.slice());return e.concat(r.slice())},t.slice())}function zh(e,t,n,r){let{numberOfMonths:i=1}=n,a=[];for(let n=0;n<i;n++){let i=r.addMonths(e,n);if(t&&i>t)break;a.push(i)}return a}function Bh(e,t,n,r){let{month:i,defaultMonth:a,today:o=r.today(),numberOfMonths:s=1}=e,c=i||a||o,{differenceInCalendarMonths:l,addMonths:u,startOfMonth:d}=r;return n&&l(n,c)<s-1&&(c=u(n,-1*(s-1))),t&&l(c,t)<0&&(c=t),d(c)}function Vh(e,t,n,r){let{addDays:i,endOfBroadcastWeek:a,endOfISOWeek:o,endOfMonth:s,endOfWeek:c,getISOWeek:l,getWeek:u,startOfBroadcastWeek:d,startOfISOWeek:f,startOfWeek:p}=r,m=e.reduce((e,m)=>{let h=n.broadcastCalendar?d(m,r):n.ISOWeek?f(m):p(m),g=n.broadcastCalendar?a(m):n.ISOWeek?o(s(m)):c(s(m)),_=t.filter(e=>e>=h&&e<=g),v=n.broadcastCalendar?35:42;if(n.fixedWeeks&&_.length<v){let e=t.filter(e=>{let t=v-_.length;return e>g&&e<=i(g,t)});_.push(...e)}let y=new cm(m,_.reduce((e,t)=>{let i=n.ISOWeek?l(t):u(t),a=e.find(e=>e.weekNumber===i),o=new sm(t,m,r);return a?a.days.push(o):e.push(new lm(i,[o])),e},[]));return e.push(y),e},[]);return n.reverseMonths?m.reverse():m}function Hh(e,t){let{startMonth:n,endMonth:r}=e,{startOfYear:i,startOfDay:a,startOfMonth:o,endOfMonth:s,addYears:c,endOfYear:l,today:u}=t,d=e.captionLayout===`dropdown`||e.captionLayout===`dropdown-years`;return n?n=o(n):!n&&d&&(n=i(c(e.today??u(),-100))),r?r=s(r):!r&&d&&(r=l(e.today??u())),[n&&a(n),r&&a(r)]}function Uh(e,t,n,r){if(n.disableNavigation)return;let{pagedNavigation:i,numberOfMonths:a=1}=n,{startOfMonth:o,addMonths:s,differenceInCalendarMonths:c}=r,l=i?a:1,u=o(e);if(!t||!(c(t,e)<a))return s(u,l)}function Wh(e,t,n,r){if(n.disableNavigation)return;let{pagedNavigation:i,numberOfMonths:a}=n,{startOfMonth:o,addMonths:s,differenceInCalendarMonths:c}=r,l=i?a??1:1,u=o(e);if(!t||!(c(u,t)<=0))return s(u,-l)}function Gh(e){return e.reduce((e,t)=>e.concat(t.weeks.slice()),[].slice())}function Kh(e,t){let[n,r]=(0,L.useState)(e);return[t===void 0?n:t,r]}function qh(e,t){let[n,r]=Hh(e,t),{startOfMonth:i,endOfMonth:a}=t,o=Bh(e,n,r,t),[s,c]=Kh(o,e.month?o:void 0);(0,L.useEffect)(()=>{let i=Bh(e,n,r,t);c(i)},[e.timeZone]);let{months:l,weeks:u,days:d,previousMonth:f,nextMonth:p}=(0,L.useMemo)(()=>{let i=zh(s,r,{numberOfMonths:e.numberOfMonths},t),o=Vh(i,Lh(i,e.endMonth?a(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t);return{months:o,weeks:Gh(o),days:Rh(o),previousMonth:Wh(s,n,e,t),nextMonth:Uh(s,r,e,t)}},[t,s.getTime(),r?.getTime(),n?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:m,onMonthChange:h}=e,g=e=>u.some(t=>t.days.some(t=>t.isEqualTo(e))),_=e=>{if(m)return;let t=i(e);n&&t<i(n)&&(t=i(n)),r&&t>i(r)&&(t=i(r)),c(t),h?.(t)};return{months:l,weeks:u,days:d,navStart:n,navEnd:r,previousMonth:f,nextMonth:p,goToMonth:_,goToDay:e=>{g(e)||_(e.date)}}}var Jh;(function(e){e[e.Today=0]=`Today`,e[e.Selected=1]=`Selected`,e[e.LastFocused=2]=`LastFocused`,e[e.FocusedModifier=3]=`FocusedModifier`})(Jh||={});function Yh(e){return!e[mm.disabled]&&!e[mm.hidden]&&!e[mm.outside]}function Xh(e,t,n,r){let i,a=-1;for(let o of e){let e=t(o);Yh(e)&&(e[mm.focused]&&a<Jh.FocusedModifier?(i=o,a=Jh.FocusedModifier):r?.isEqualTo(o)&&a<Jh.LastFocused?(i=o,a=Jh.LastFocused):n(o.date)&&a<Jh.Selected?(i=o,a=Jh.Selected):e[mm.today]&&a<Jh.Today&&(i=o,a=Jh.Today))}return i||=e.find(e=>Yh(t(e))),i}function Zh(e,t,n,r,i,a,o){let{ISOWeek:s,broadcastCalendar:c}=a,{addDays:l,addMonths:u,addWeeks:d,addYears:f,endOfBroadcastWeek:p,endOfISOWeek:m,endOfWeek:h,max:g,min:_,startOfBroadcastWeek:v,startOfISOWeek:y,startOfWeek:b}=o,x={day:l,week:d,month:u,year:f,startOfWeek:e=>c?v(e,o):s?y(e):b(e),endOfWeek:e=>c?p(e):s?m(e):h(e)}[e](n,t===`after`?1:-1);return t===`before`&&r?x=g([r,x]):t===`after`&&i&&(x=_([i,x])),x}function Qh(e,t,n,r,i,a,o,s=0){if(s>365)return;let c=Zh(e,t,n.date,r,i,a,o),l=!!(a.disabled&&Jm(c,a.disabled,o)),u=!!(a.hidden&&Jm(c,a.hidden,o)),d=new sm(c,c,o);return!l&&!u?d:Qh(e,t,d,r,i,a,o,s+1)}function $h(e,t,n,r,i){let{autoFocus:a}=e,[o,s]=(0,L.useState)(),c=Xh(t.days,n,r||(()=>!1),o),[l,u]=(0,L.useState)(a?c:void 0);return{isFocusTarget:e=>!!c?.isEqualTo(e),setFocused:u,focused:l,blur:()=>{s(l),u(void 0)},moveFocus:(n,r)=>{if(!l)return;let a=Qh(n,r,l,t.navStart,t.navEnd,e,i);a&&(e.disableNavigation&&!t.days.some(e=>e.isEqualTo(a))||(t.goToDay(a),u(a)))}}}function eg(e,t){let{selected:n,required:r,onSelect:i}=e,[a,o]=Kh(n,i?n:void 0),s=i?n:a,{isSameDay:c}=t,l=e=>s?.some(t=>c(t,e))??!1,{min:u,max:d}=e;return{selected:s,select:(e,t,n)=>{let a=[...s??[]];if(l(e)){if(s?.length===u||r&&s?.length===1)return;a=s?.filter(t=>!c(t,e))}else a=s?.length===d?[e]:[...a,e];return i||o(a),i?.(a,e,t,n),a},isSelected:l}}function tg(e,t,n=0,r=0,i=!1,a=om){let{from:o,to:s}=t||{},{isSameDay:c,isAfter:l,isBefore:u}=a,d;if(!o&&!s)d={from:e,to:n>0?void 0:e};else if(o&&!s)d=c(o,e)?n===0?{from:o,to:e}:i?{from:o,to:void 0}:void 0:u(e,o)?{from:e,to:o}:{from:o,to:e};else if(o&&s)if(c(o,e)&&c(s,e))d=i?{from:o,to:s}:void 0;else if(c(o,e))d={from:o,to:n>0?void 0:e};else if(c(s,e))d={from:e,to:n>0?void 0:e};else if(u(e,o))d={from:e,to:s};else if(l(e,o))d={from:o,to:e};else if(l(e,s))d={from:o,to:e};else throw Error(`Invalid range`);if(d?.from&&d?.to){let t=a.differenceInCalendarDays(d.to,d.from);(r>0&&t>r||n>1&&t<n)&&(d={from:e,to:void 0})}return d}function ng(e,t,n=om){let r=Array.isArray(t)?t:[t],i=e.from,a=n.differenceInCalendarDays(e.to,e.from),o=Math.min(a,6);for(let e=0;e<=o;e++){if(r.includes(i.getDay()))return!0;i=n.addDays(i,1)}return!1}function rg(e,t,n=om){return Vm(e,t.from,!1,n)||Vm(e,t.to,!1,n)||Vm(t,e.from,!1,n)||Vm(t,e.to,!1,n)}function ig(e,t,n=om){let r=Array.isArray(t)?t:[t];if(r.filter(e=>typeof e!=`function`).some(t=>typeof t==`boolean`?t:n.isDate(t)?Vm(e,t,!1,n):qm(t,n)?t.some(t=>Vm(e,t,!1,n)):Um(t)?t.from&&t.to?rg(e,{from:t.from,to:t.to},n):!1:Km(t)?ng(e,t.dayOfWeek,n):Hm(t)?n.isAfter(t.before,t.after)?rg(e,{from:n.addDays(t.after,1),to:n.addDays(t.before,-1)},n):Jm(e.from,t,n)||Jm(e.to,t,n):Wm(t)||Gm(t)?Jm(e.from,t,n)||Jm(e.to,t,n):!1))return!0;let i=r.filter(e=>typeof e==`function`);if(i.length){let t=e.from,r=n.differenceInCalendarDays(e.to,e.from);for(let e=0;e<=r;e++){if(i.some(e=>e(t)))return!0;t=n.addDays(t,1)}}return!1}function ag(e,t){let{disabled:n,excludeDisabled:r,resetOnSelect:i,selected:a,required:o,onSelect:s}=e,[c,l]=Kh(a,s?a:void 0),u=s?a:c;return{selected:u,select:(a,c,d)=>{let{min:f,max:p}=e,m;if(a){let e=u?.from,n=u?.to,r=!!e&&!!n,s=!!e&&!!n&&t.isSameDay(e,n)&&t.isSameDay(a,e);m=i&&(r||!u?.from)?!o&&s?void 0:{from:a,to:void 0}:tg(a,u,f,p,o,t)}return r&&n&&m?.from&&m.to&&ig({from:m.from,to:m.to},n,t)&&(m.from=a,m.to=void 0),s||l(m),s?.(m,a,c,d),m},isSelected:e=>u&&Vm(u,e,!1,t)}}function og(e,t){let{selected:n,required:r,onSelect:i}=e,[a,o]=Kh(n,i?n:void 0),s=i?n:a,{isSameDay:c}=t;return{selected:s,select:(e,t,n)=>{let a=e;return!r&&s&&s&&c(e,s)&&(a=void 0),i||o(a),i?.(a,e,t,n),a},isSelected:e=>s?c(s,e):!1}}function sg(e,t){let n=og(e,t),r=eg(e,t),i=ag(e,t);switch(e.mode){case`single`:return n;case`multiple`:return r;case`range`:return i;default:return}}function cg(e,t){return e instanceof Qp&&e.timeZone===t?e:new Qp(e,t)}function lg(e,t,n){if(!n)return cg(e,t);let r=cg(e,t),i=new Qp(r.getFullYear(),r.getMonth(),r.getDate(),12,0,0,t);return new Date(i.getTime())}function ug(e,t,n){return typeof e==`boolean`||typeof e==`function`?e:e instanceof Date?lg(e,t,n):Array.isArray(e)?e.map(e=>e instanceof Date?lg(e,t,n):e):Um(e)?{...e,from:e.from?cg(e.from,t):e.from,to:e.to?cg(e.to,t):e.to}:Hm(e)?{before:lg(e.before,t,n),after:lg(e.after,t,n)}:Wm(e)?{after:lg(e.after,t,n)}:Gm(e)?{before:lg(e.before,t,n)}:e}function dg(e,t,n){return e&&(Array.isArray(e)?e.map(e=>ug(e,t,n)):ug(e,t,n))}function fg(e){let t=e,n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&=cg(t.today,n),t.month&&=cg(t.month,n),t.defaultMonth&&=cg(t.defaultMonth,n),t.startMonth&&=cg(t.startMonth,n),t.endMonth&&=cg(t.endMonth,n),t.mode===`single`&&t.selected?t.selected=cg(t.selected,n):t.mode===`multiple`&&t.selected?t.selected=t.selected?.map(e=>cg(e,n)):t.mode===`range`&&t.selected&&(t.selected={from:t.selected.from?cg(t.selected.from,n):t.selected.from,to:t.selected.to?cg(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=dg(t.disabled,n)),t.hidden!==void 0&&(t.hidden=dg(t.hidden,n)),t.modifiers)){let e={};Object.keys(t.modifiers).forEach(r=>{e[r]=dg(t.modifiers?.[r],n)}),t.modifiers=e}let{components:r,formatters:i,labels:a,dateLib:o,locale:s,classNames:c}=(0,L.useMemo)(()=>{let e={...im,...t.locale},n=t.broadcastCalendar?1:t.weekStartsOn,r=t.noonSafe&&t.timeZone?Oh(t.timeZone,{weekStartsOn:n,locale:e}):void 0,i=t.dateLib&&r?{...r,...t.dateLib}:t.dateLib??r,a=new am({locale:e,weekStartsOn:n,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},i);return{dateLib:a,components:Zm(t.components),formatters:ch(t.formatters),labels:Ch(t.labels,a.options),locale:e,classNames:{...$m(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.noonSafe,t.components,t.formatters,t.labels,t.classNames]);t.today||(t={...t,today:o.today()});let{captionLayout:l,mode:u,navLayout:d,numberOfMonths:f=1,onDayBlur:p,onDayClick:m,onDayFocus:h,onDayKeyDown:g,onDayMouseEnter:_,onDayMouseLeave:v,onNextClick:y,onPrevClick:b,showWeekNumber:x,styles:S}=t,{formatCaption:C,formatDay:w,formatMonthDropdown:T,formatWeekNumber:E,formatWeekNumberHeader:D,formatWeekdayName:O,formatYearDropdown:k}=i,A=qh(t,o),{days:ee,months:te,navStart:ne,navEnd:j,previousMonth:M,nextMonth:re,goToMonth:ie}=A,ae=Ym(ee,t,ne,j,o),{isSelected:oe,select:se,selected:ce}=sg(t,o)??{},{blur:le,focused:ue,isFocusTarget:N,moveFocus:P,setFocused:de}=$h(t,A,ae,oe??(()=>!1),o),{labelDayButton:fe,labelGridcell:pe,labelGrid:me,labelMonthDropdown:he,labelNav:ge,labelPrevious:_e,labelNext:ve,labelWeekday:ye,labelWeekNumber:be,labelWeekNumberHeader:xe,labelYearDropdown:Se}=a,Ce=(0,L.useMemo)(()=>Eh(o,t.ISOWeek,t.broadcastCalendar,t.today),[o,t.ISOWeek,t.broadcastCalendar,t.today]),we=u!==void 0||m!==void 0,Te=(0,L.useCallback)(()=>{M&&(ie(M),b?.(M))},[M,ie,b]),Ee=(0,L.useCallback)(()=>{re&&(ie(re),y?.(re))},[ie,re,y]),De=(0,L.useCallback)((e,t)=>n=>{n.preventDefault(),n.stopPropagation(),de(e),!t.disabled&&(se?.(e.date,t,n),m?.(e.date,t,n))},[se,m,de]),Oe=(0,L.useCallback)((e,t)=>n=>{de(e),h?.(e.date,t,n)},[h,de]),ke=(0,L.useCallback)((e,t)=>n=>{le(),p?.(e.date,t,n)},[le,p]),Ae=(0,L.useCallback)((e,n)=>r=>{let i={ArrowLeft:[r.shiftKey?`month`:`day`,t.dir===`rtl`?`after`:`before`],ArrowRight:[r.shiftKey?`month`:`day`,t.dir===`rtl`?`before`:`after`],ArrowDown:[r.shiftKey?`year`:`week`,`after`],ArrowUp:[r.shiftKey?`year`:`week`,`before`],PageUp:[r.shiftKey?`year`:`month`,`before`],PageDown:[r.shiftKey?`year`:`month`,`after`],Home:[`startOfWeek`,`before`],End:[`endOfWeek`,`after`]};if(i[r.key]){r.preventDefault(),r.stopPropagation();let[e,t]=i[r.key];P(e,t)}g?.(e.date,n,r)},[P,g,t.dir]),je=(0,L.useCallback)((e,t)=>n=>{_?.(e.date,t,n)},[_]),Me=(0,L.useCallback)((e,t)=>n=>{v?.(e.date,t,n)},[v]),Ne=(0,L.useCallback)((e,t)=>n=>{let r=Number(n.target.value),i=o.setMonth(o.startOfMonth(e),r);ie(o.addMonths(i,-t))},[o,ie]),Pe=(0,L.useCallback)((e,t)=>n=>{let r=Number(n.target.value),i=o.setYear(o.startOfMonth(e),r);ie(o.addMonths(i,-t))},[o,ie]),{className:Fe,style:Ie}=(0,L.useMemo)(()=>({className:[c[W.Root],t.className].filter(Boolean).join(` `),style:{...S?.[W.Root],...t.style}}),[c,t.className,t.style,S]),Le=Qm(t),Re=e=>{let t=S?.[W.Dropdown],n=S?.[e];if(!(!t&&!n))return{...t,...n}},ze=(0,L.useRef)(null);Ih(ze,!!t.animate,{classNames:c,months:te,focused:ue,dateLib:o});let Be={dayPickerProps:t,selected:ce,select:se,isSelected:oe,months:te,nextMonth:re,previousMonth:M,goToMonth:ie,getModifiers:ae,components:r,classNames:c,styles:S,labels:a,formatters:i};return L.createElement(_m.Provider,{value:Be},L.createElement(r.Root,{rootRef:t.animate?ze:void 0,className:Fe,style:Ie,dir:t.dir,id:t.id,lang:t.lang??s.code,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t[`aria-label`],"aria-labelledby":t[`aria-labelledby`],...Le},L.createElement(r.Months,{className:c[W.Months],style:S?.[W.Months]},!t.hideNavigation&&!d&&L.createElement(r.Nav,{"data-animated-nav":t.animate?`true`:void 0,className:c[W.Nav],style:S?.[W.Nav],"aria-label":ge(),onPreviousClick:Te,onNextClick:Ee,previousMonth:M,nextMonth:re}),te.map((e,n)=>{let a=t.reverseMonths?te.length-1-n:n;return L.createElement(r.Month,{"data-animated-month":t.animate?`true`:void 0,className:c[W.Month],style:S?.[W.Month],key:n,displayIndex:n,calendarMonth:e},d===`around`&&!t.hideNavigation&&n===0&&L.createElement(r.PreviousMonthButton,{type:`button`,className:c[W.PreviousMonthButton],style:S?.[W.PreviousMonthButton],tabIndex:M?void 0:-1,"aria-disabled":!M||void 0,"aria-label":_e(M),onClick:Te,"data-animated-button":t.animate?`true`:void 0},L.createElement(r.Chevron,{disabled:!M||void 0,className:c[W.Chevron],style:S?.[W.Chevron],orientation:t.dir===`rtl`?`right`:`left`})),L.createElement(r.MonthCaption,{"data-animated-caption":t.animate?`true`:void 0,className:c[W.MonthCaption],style:S?.[W.MonthCaption],calendarMonth:e,displayIndex:n},l?.startsWith(`dropdown`)?L.createElement(r.DropdownNav,{className:c[W.Dropdowns],style:S?.[W.Dropdowns]},(()=>{let n=l===`dropdown`||l===`dropdown-months`?L.createElement(r.MonthsDropdown,{key:`month`,className:c[W.MonthsDropdown],"aria-label":he(),disabled:!!t.disableNavigation,onChange:Ne(e.date,a),options:wh(e.date,ne,j,i,o),style:Re(W.MonthsDropdown),value:o.getMonth(e.date)}):L.createElement(`span`,{key:`month`},T(e.date,o)),s=l===`dropdown`||l===`dropdown-years`?L.createElement(r.YearsDropdown,{key:`year`,className:c[W.YearsDropdown],"aria-label":Se(o.options),disabled:!!t.disableNavigation,onChange:Pe(e.date,a),options:Dh(ne,j,i,o,!!t.reverseYears),style:Re(W.YearsDropdown),value:o.getYear(e.date)}):L.createElement(`span`,{key:`year`},k(e.date,o));return o.getMonthYearOrder()===`year-first`?[s,n]:[n,s]})(),L.createElement(`span`,{role:`status`,"aria-live":`polite`,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,width:`1px`,whiteSpace:`nowrap`,wordWrap:`normal`}},C(e.date,o.options,o))):L.createElement(r.CaptionLabel,{className:c[W.CaptionLabel],style:S?.[W.CaptionLabel],role:`status`,"aria-live":`polite`},C(e.date,o.options,o))),d===`around`&&!t.hideNavigation&&n===f-1&&L.createElement(r.NextMonthButton,{type:`button`,className:c[W.NextMonthButton],style:S?.[W.NextMonthButton],tabIndex:re?void 0:-1,"aria-disabled":!re||void 0,"aria-label":ve(re),onClick:Ee,"data-animated-button":t.animate?`true`:void 0},L.createElement(r.Chevron,{disabled:!re||void 0,className:c[W.Chevron],style:S?.[W.Chevron],orientation:t.dir===`rtl`?`left`:`right`})),n===f-1&&d===`after`&&!t.hideNavigation&&L.createElement(r.Nav,{"data-animated-nav":t.animate?`true`:void 0,className:c[W.Nav],style:S?.[W.Nav],"aria-label":ge(),onPreviousClick:Te,onNextClick:Ee,previousMonth:M,nextMonth:re}),L.createElement(r.MonthGrid,{role:`grid`,"aria-multiselectable":u===`multiple`||u===`range`,"aria-label":me(e.date,o.options,o)||void 0,className:c[W.MonthGrid],style:S?.[W.MonthGrid]},!t.hideWeekdays&&L.createElement(r.Weekdays,{"data-animated-weekdays":t.animate?`true`:void 0,className:c[W.Weekdays],style:S?.[W.Weekdays]},x&&L.createElement(r.WeekNumberHeader,{"aria-label":xe(o.options),className:c[W.WeekNumberHeader],style:S?.[W.WeekNumberHeader],scope:`col`},D()),Ce.map(e=>L.createElement(r.Weekday,{"aria-label":ye(e,o.options,o),className:c[W.Weekday],key:String(e),style:S?.[W.Weekday],scope:`col`},O(e,o.options,o)))),L.createElement(r.Weeks,{"data-animated-weeks":t.animate?`true`:void 0,className:c[W.Weeks],style:S?.[W.Weeks]},e.weeks.map(e=>L.createElement(r.Week,{className:c[W.Week],key:e.weekNumber,style:S?.[W.Week],week:e},x&&L.createElement(r.WeekNumber,{week:e,style:S?.[W.WeekNumber],"aria-label":be(e.weekNumber,{locale:s}),className:c[W.WeekNumber],scope:`row`,role:`rowheader`},E(e.weekNumber,o)),e.days.map(e=>{let{date:n}=e,i=ae(e);if(i[mm.focused]=!i.hidden&&!!ue?.isEqualTo(e),i[hm.selected]=oe?.(n)||i.selected,Um(ce)){let{from:e,to:t}=ce;i[hm.range_start]=!!(e&&t&&o.isSameDay(n,e)),i[hm.range_end]=!!(e&&t&&o.isSameDay(n,t)),i[hm.range_middle]=Vm(ce,n,!0,o)}let a=Th(i,S,t.modifiersStyles),s=Xm(i,c,t.modifiersClassNames),l=!we&&!i.hidden?pe(n,i,o.options,o):void 0;return L.createElement(r.Day,{key:`${e.isoDate}_${e.displayMonthId}`,day:e,modifiers:i,className:s.join(` `),style:a,role:`gridcell`,"aria-selected":i.selected||void 0,"aria-label":l,"data-day":e.isoDate,"data-month":e.outside?e.dateMonthId:void 0,"data-selected":i.selected||void 0,"data-disabled":i.disabled||void 0,"data-hidden":i.hidden||void 0,"data-outside":e.outside||void 0,"data-focused":i.focused||void 0,"data-today":i.today||void 0},!i.hidden&&we?L.createElement(r.DayButton,{className:c[W.DayButton],style:S?.[W.DayButton],type:`button`,day:e,modifiers:i,disabled:!i.focused&&i.disabled||void 0,"aria-disabled":i.focused&&i.disabled||void 0,tabIndex:N(e)?0:-1,"aria-label":fe(n,i,o.options,o),onClick:De(e,i),onBlur:ke(e,i),onFocus:Oe(e,i),onKeyDown:Ae(e,i),onMouseEnter:je(e,i),onMouseLeave:Me(e,i)},w(n,o.options,o)):!i.hidden&&w(e.date,o.options,o))}))))))})),t.footer&&L.createElement(r.Footer,{className:c[W.Footer],style:S?.[W.Footer],role:`status`,"aria-live":`polite`},t.footer)))}var pg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/calendar.tsx`;function mg({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r=`label`,buttonVariant:i=`ghost`,formatters:a,components:o,...s}){let c=$m();return(0,R.jsxDEV)(fg,{showOutsideDays:n,className:C(`group/calendar bg-background p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...a},classNames:{root:C(`w-fit`,c.root),months:C(`relative flex flex-col gap-4 md:flex-row`,c.months),month:C(`flex w-full flex-col gap-4`,c.month),nav:C(`absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1`,c.nav),button_previous:C(tt({variant:i}),`size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,c.button_previous),button_next:C(tt({variant:i}),`size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,c.button_next),month_caption:C(`flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)`,c.month_caption),dropdowns:C(`flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium`,c.dropdowns),dropdown_root:C(`relative rounded-md border border-input shadow-xs has-focus:border-ring has-focus:ring-[3px] has-focus:ring-ring/50`,c.dropdown_root),dropdown:C(`absolute inset-0 bg-popover opacity-0`,c.dropdown),caption_label:C(`font-medium select-none`,r===`label`?`text-sm`:`flex h-8 items-center gap-1 rounded-md pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground`,c.caption_label),month_grid:`w-full border-collapse`,weekdays:C(`flex`,c.weekdays),weekday:C(`flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none`,c.weekday),week:C(`mt-2 flex w-full`,c.week),week_number_header:C(`w-(--cell-size) select-none`,c.week_number_header),week_number:C(`text-[0.8rem] text-muted-foreground select-none`,c.week_number),day:C(`group/day relative aspect-square h-full w-full p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-md`,s.showWeekNumber?`[&:nth-child(2)[data-selected=true]_button]:rounded-l-md`:`[&:first-child[data-selected=true]_button]:rounded-l-md`,c.day),range_start:C(`rounded-l-md bg-accent`,c.range_start),range_middle:C(`rounded-none`,c.range_middle),range_end:C(`rounded-r-md bg-accent`,c.range_end),today:C(`rounded-md bg-accent text-accent-foreground data-[selected=true]:rounded-none`,c.today),outside:C(`text-muted-foreground aria-selected:text-muted-foreground`,c.outside),disabled:C(`text-muted-foreground opacity-50`,c.disabled),hidden:C(`invisible`,c.hidden),...t},components:{Root:({className:e,rootRef:t,...n})=>(0,R.jsxDEV)(`div`,{"data-slot":`calendar`,ref:t,className:C(e),...n},void 0,!1,{fileName:pg,lineNumber:101,columnNumber:18},this),Chevron:({className:e,orientation:t,...n})=>t===`left`?(0,R.jsxDEV)(xs,{className:C(`size-4`,e),...n},void 0,!1,{fileName:pg,lineNumber:105,columnNumber:20},this):t===`right`?(0,R.jsxDEV)(Ss,{className:C(`size-4`,e),...n},void 0,!1,{fileName:pg,lineNumber:109,columnNumber:20},this):(0,R.jsxDEV)(k,{className:C(`size-4`,e),...n},void 0,!1,{fileName:pg,lineNumber:112,columnNumber:18},this),DayButton:hg,WeekNumber:({children:e,...t})=>(0,R.jsxDEV)(`td`,{...t,children:(0,R.jsxDEV)(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e},void 0,!1,{fileName:pg,lineNumber:118,columnNumber:15},this)},void 0,!1,{fileName:pg,lineNumber:117,columnNumber:13},this),...o},...s},void 0,!1,{fileName:pg,lineNumber:23,columnNumber:5},this)}function hg({className:e,day:t,modifiers:n,...r}){let i=$m(),a=L.useRef(null);return L.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),(0,R.jsxDEV)(F,{ref:a,variant:`ghost`,size:`icon`,"data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:C(`flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:text-xs [&>span]:opacity-70`,i.day,e),...r},void 0,!1,{fileName:pg,lineNumber:138,columnNumber:5},this)}function gg(e){if(!e)return;let t=Np(e.slice(0,10),`yyyy-MM-dd`,new Date);return vd(t)?t:void 0}function _g(e){return gf(e,`yyyy-MM-dd`)}function vg(e){let t=gg(e);return t?gf(t,`dd.MM.yyyy`):``}function yg(e){if(!e)return``;let t=vg(e.slice(0,10));if(!t)return``;let n=e.slice(11,16);return n?`${t} ${n}`:t}function bg(e){return{date:e.slice(0,10),time:e.slice(11,16)}}function xg(e,t){return e?t?`${e}T${t}`:e:``}var Sg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/date-picker.tsx`;function Cg({value:e,onChange:t,placeholder:n=`…`}){let[r,i]=(0,L.useState)(!1),a=gg(e);return(0,R.jsxDEV)(P,{open:r,onOpenChange:i,children:[(0,R.jsxDEV)(ue,{asChild:!0,children:(0,R.jsxDEV)(F,{variant:`outline`,className:`w-full justify-between px-3 font-normal`,children:[a?gf(a,`dd.MM.yyyy`):(0,R.jsxDEV)(`span`,{className:`text-muted-foreground`,children:n},void 0,!1,{fileName:Sg,lineNumber:25,columnNumber:48},this),(0,R.jsxDEV)(k,{className:`size-4 shrink-0 opacity-50`},void 0,!1,{fileName:Sg,lineNumber:26,columnNumber:11},this)]},void 0,!0,{fileName:Sg,lineNumber:24,columnNumber:9},this)},void 0,!1,{fileName:Sg,lineNumber:23,columnNumber:7},this),(0,R.jsxDEV)(ce,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,R.jsxDEV)(mg,{mode:`single`,selected:a,captionLayout:`dropdown`,defaultMonth:a,onSelect:e=>{t(e?_g(e):``),i(!1)}},void 0,!1,{fileName:Sg,lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:Sg,lineNumber:29,columnNumber:7},this)]},void 0,!0,{fileName:Sg,lineNumber:22,columnNumber:5},this)}function wg(e){return Array.isArray(e)?e.map(e=>wg(e)):e instanceof Date?new re(e.getFullYear(),e.getMonth()+1,e.getDate()):ne(e)}var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/month-year-picker.tsx`,Tg=`z-50 w-72 rounded-xl border border-border bg-popover p-3 text-popover-foreground shadow-xl outline-hidden data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,Eg=`w-full table-fixed border-separate border-spacing-1`,Dg=C(tt({variant:`ghost`}),`w-full px-0 font-normal data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:hover:bg-primary`),Og=C(tt({variant:`ghost`,size:`icon`}),`size-7`);function kg({withViewTrigger:e=!1}){return(0,R.jsxDEV)(M.ViewControl,{className:`flex items-center justify-between gap-1 pb-2`,children:[(0,R.jsxDEV)(M.PrevTrigger,{className:Og,children:(0,R.jsxDEV)(xs,{className:`size-4`},void 0,!1,{fileName:G,lineNumber:29,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:28,columnNumber:7},this),e?(0,R.jsxDEV)(M.ViewTrigger,{className:C(tt({variant:`ghost`,size:`sm`}),`h-7 text-sm font-medium`),children:(0,R.jsxDEV)(M.RangeText,{},void 0,!1,{fileName:G,lineNumber:35,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:32,columnNumber:9},this):(0,R.jsxDEV)(`span`,{className:`text-sm font-medium`,children:(0,R.jsxDEV)(M.RangeText,{},void 0,!1,{fileName:G,lineNumber:39,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:38,columnNumber:9},this),(0,R.jsxDEV)(M.NextTrigger,{className:Og,children:(0,R.jsxDEV)(Ss,{className:`size-4`},void 0,!1,{fileName:G,lineNumber:43,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:42,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:27,columnNumber:5},this)}function Ag(){return(0,R.jsxDEV)(M.Context,{children:e=>(0,R.jsxDEV)(M.Table,{className:Eg,children:(0,R.jsxDEV)(M.TableBody,{children:e.getYearsGrid({columns:4}).map((e,t)=>(0,R.jsxDEV)(M.TableRow,{children:e.map((e,t)=>(0,R.jsxDEV)(M.TableCell,{value:e.value,children:(0,R.jsxDEV)(M.TableCellTrigger,{className:Dg,children:e.label},void 0,!1,{fileName:G,lineNumber:59,columnNumber:21},this)},t,!1,{fileName:G,lineNumber:58,columnNumber:19},this))},t,!1,{fileName:G,lineNumber:56,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:54,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:53,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:51,columnNumber:5},this)}function jg(){return(0,R.jsxDEV)(M.Context,{children:e=>(0,R.jsxDEV)(M.Table,{className:Eg,children:(0,R.jsxDEV)(M.TableBody,{children:e.getMonthsGrid({columns:3,format:`short`}).map((e,t)=>(0,R.jsxDEV)(M.TableRow,{children:e.map((e,t)=>(0,R.jsxDEV)(M.TableCell,{value:e.value,children:(0,R.jsxDEV)(M.TableCellTrigger,{className:Dg,children:e.label},void 0,!1,{fileName:G,lineNumber:81,columnNumber:21},this)},t,!1,{fileName:G,lineNumber:80,columnNumber:19},this))},t,!1,{fileName:G,lineNumber:78,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:76,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:75,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:73,columnNumber:5},this)}function Mg({display:e,placeholder:t}){return(0,R.jsxDEV)(M.Control,{className:`w-full`,children:(0,R.jsxDEV)(M.Trigger,{className:C(tt({variant:`outline`}),`w-full justify-between px-3 font-normal`),children:[e||(0,R.jsxDEV)(`span`,{className:`text-muted-foreground`,children:t},void 0,!1,{fileName:G,lineNumber:97,columnNumber:21},this),(0,R.jsxDEV)(k,{className:`size-4 shrink-0 opacity-50`},void 0,!1,{fileName:G,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:G,lineNumber:96,columnNumber:7},this)},void 0,!1,{fileName:G,lineNumber:95,columnNumber:5},this)}function Ng({value:e,onChange:t,placeholder:n=`YYYY`}){let r=/^\d{4}$/.test(e)?[wg(`${e}-01-01`)]:[];return(0,R.jsxDEV)(M.Root,{value:r,onValueChange:e=>t(e.value[0]?String(e.value[0].year):``),defaultView:`year`,minView:`year`,children:[(0,R.jsxDEV)(Mg,{display:e,placeholder:n},void 0,!1,{fileName:G,lineNumber:120,columnNumber:7},this),(0,R.jsxDEV)(j,{children:(0,R.jsxDEV)(M.Positioner,{children:(0,R.jsxDEV)(M.Content,{className:Tg,children:(0,R.jsxDEV)(M.View,{view:`year`,children:[(0,R.jsxDEV)(kg,{},void 0,!1,{fileName:G,lineNumber:125,columnNumber:15},this),(0,R.jsxDEV)(Ag,{},void 0,!1,{fileName:G,lineNumber:126,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:124,columnNumber:13},this)},void 0,!1,{fileName:G,lineNumber:123,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:122,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:121,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:114,columnNumber:5},this)}function Pg({value:e,onChange:t,placeholder:n=`MM.YYYY`}){let r=/^(\d{4})-(\d{2})$/.exec(e),i=r?[wg(`${e}-01`)]:[];return(0,R.jsxDEV)(M.Root,{value:i,onValueChange:e=>{let n=e.value[0];t(n?`${n.year}-${String(n.month).padStart(2,`0`)}`:``)},defaultView:`month`,minView:`month`,children:[(0,R.jsxDEV)(Mg,{display:r?`${r[2]}.${r[1]}`:``,placeholder:n},void 0,!1,{fileName:G,lineNumber:149,columnNumber:7},this),(0,R.jsxDEV)(j,{children:(0,R.jsxDEV)(M.Positioner,{children:(0,R.jsxDEV)(M.Content,{className:Tg,children:[(0,R.jsxDEV)(M.View,{view:`month`,children:[(0,R.jsxDEV)(kg,{withViewTrigger:!0},void 0,!1,{fileName:G,lineNumber:154,columnNumber:15},this),(0,R.jsxDEV)(jg,{},void 0,!1,{fileName:G,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:153,columnNumber:13},this),(0,R.jsxDEV)(M.View,{view:`year`,children:[(0,R.jsxDEV)(kg,{},void 0,!1,{fileName:G,lineNumber:158,columnNumber:15},this),(0,R.jsxDEV)(Ag,{},void 0,!1,{fileName:G,lineNumber:159,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:157,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:152,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:151,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:150,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:140,columnNumber:5},this)}var Fg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/time-picker.tsx`,Ig=`TimePicker`,Lg=`TimePickerInputGroup`,Rg=`TimePickerInput`,zg=`TimePickerTrigger`,Bg=`TimePickerContent`,Vg=`TimePickerColumn`,Hg=`TimePickerColumnItem`,Ug=`TimePickerHour`,Wg=`TimePickerMinute`,Gg=`TimePickerSecond`,Kg=`TimePickerClear`,qg=1,Jg=`--`,Yg=void 0,Xg=[`hour`,`minute`,`second`,`period`];function Zg(e,t=!1){let n=document.activeElement;for(let r of e){let e=r.current;if(e&&(e===n||(e.focus({preventScroll:t}),document.activeElement!==n)))return}}function Qg(e){return e.sort((e,t)=>{let n=e.ref.current,r=t.ref.current;if(!n||!r)return 0;let i=n.compareDocumentPosition(r);return i&Node.DOCUMENT_POSITION_FOLLOWING?-1:i&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function $g(e){let t=new Date(2e3,0,1,13,0,0),n=new Intl.DateTimeFormat(e,{hour:`numeric`}).format(t);return/am|pm/i.test(n)||!n.includes(`13`)}function e_(e){if(!e)return null;let t=e.split(`:`);if(t.length<2)return null;let n={};if(t[0]&&t[0]!==Jg){let e=Number.parseInt(t[0],10);!Number.isNaN(e)&&e>=0&&e<=23&&(n.hour=e)}if(t[1]&&t[1]!==Jg){let e=Number.parseInt(t[1],10);!Number.isNaN(e)&&e>=0&&e<=59&&(n.minute=e)}if(t[2]&&t[2]!==Jg){let e=Number.parseInt(t[2],10);!Number.isNaN(e)&&e>=0&&e<=59&&(n.second=e)}return n.hour===void 0&&n.minute===void 0&&n.second===void 0?null:n}function t_(e,t){let n=e.hour===void 0?Jg:e.hour.toString().padStart(2,`0`),r=e.minute===void 0?Jg:e.minute.toString().padStart(2,`0`),i=e.second===void 0?Jg:e.second.toString().padStart(2,`0`);return t?`${n}:${r}:${i}`:`${n}:${r}`}function n_(e){let t=e>=12?`PM`:`AM`;return{hour:e%12||12,period:t}}function r_(e,t){return e===12?t===`PM`?12:0:t===`PM`?e+12:e}function i_(e,t,n){return Math.min(Math.max(e,t),n)}var a_=L.createContext(null);function o_(e){let t=L.useContext(a_);if(!t)throw Error(`\`${e}\` must be used within \`${Ig}\``);return t}function s_(e,t){let n=L.useContext(a_),r=t??n;if(!r)throw Error(`\`useStore\` must be used within \`${Ig}\``);let i=L.useCallback(()=>e(r.getState()),[r,e]);return L.useSyncExternalStore(r.subscribe,i,i)}var c_=L.createContext(null);function l_(e){let t=L.useContext(c_);if(!t)throw Error(`\`${e}\` must be used within \`${Ig}\``);return t}function u_(e){let{value:t,defaultValue:n,onValueChange:r,open:i,defaultOpen:a,onOpenChange:o,openOnFocus:s=!1,inputGroupClickAction:c=`focus`,min:l,max:u,hourStep:d=qg,minuteStep:f=qg,secondStep:p=qg,segmentPlaceholder:m=Jg,locale:h=Yg,name:g,asChild:_,disabled:v=!1,invalid:y=!1,readOnly:b=!1,required:x=!1,showSeconds:S=!1,className:w,children:T,id:E,...D}=e,O=L.useId(),k=E??O,A=L.useId(),ee=L.useId(),te=L.useId(),ne=L.useRef(null),j=L.useRef(null),[M,re]=L.useState(null),ae=!M||!!M.closest(`form`),oe=lu(()=>new Set),se=lu(()=>({value:t??n??``,open:i??a??!1,openedViaFocus:!1})),ce=cu({onValueChange:r,onOpenChange:o}),le=L.useMemo(()=>({subscribe:e=>(oe.current.add(e),()=>oe.current.delete(e)),getState:()=>se.current,setState:(e,t)=>{Object.is(se.current[e],t)||(e===`value`&&typeof t==`string`?(se.current.value=t,ce.current.onValueChange?.(t)):e===`open`&&typeof t==`boolean`?(se.current.open=t,ce.current.onOpenChange?.(t),t||(se.current.openedViaFocus=!1)):se.current[e]=t,le.notify())},notify:()=>{for(let e of oe.current)e()}}),[oe,se,ce]),ue=s_(e=>e.value,le);su(()=>{t!==void 0&&le.setState(`value`,t)},[t]),su(()=>{i!==void 0&&le.setState(`open`,i)},[i]);let N=s_(e=>e.open,le),de=L.useCallback(e=>le.setState(`open`,e),[le]),fe=L.useMemo(()=>$g(h),[h]),pe=L.useMemo(()=>typeof m==`string`?{hour:m,minute:m,second:m,period:m}:{hour:m.hour??Jg,minute:m.minute??Jg,second:m.second??Jg,period:m.period??Jg},[m]),me=L.useMemo(()=>({id:k,inputGroupId:A,labelId:ee,triggerId:te,inputGroupRef:ne,triggerRef:j,openOnFocus:s,inputGroupClickAction:c,onInputGroupChange:re,disabled:v,readOnly:b,required:x,invalid:y,showSeconds:S,is12Hour:fe,minuteStep:f,secondStep:p,hourStep:d,segmentPlaceholder:pe,min:l,max:u}),[k,A,ee,te,s,c,v,b,x,y,S,fe,f,p,d,pe,l,u]),he=_?ie:`div`;return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(a_.Provider,{value:le,children:(0,R.jsxDEV)(c_.Provider,{value:me,children:(0,R.jsxDEV)(P,{open:N,onOpenChange:de,children:(0,R.jsxDEV)(he,{"data-slot":`time-picker`,"data-disabled":v?``:void 0,"data-invalid":y?``:void 0,...D,className:C(`relative`,w),children:T},void 0,!1,{fileName:Fg,lineNumber:492,columnNumber:13},this)},void 0,!1,{fileName:Fg,lineNumber:491,columnNumber:11},this)},void 0,!1,{fileName:Fg,lineNumber:490,columnNumber:9},this)},void 0,!1,{fileName:Fg,lineNumber:489,columnNumber:7},this),ae&&(0,R.jsxDEV)(ou,{type:`hidden`,control:M,name:g,value:ue,disabled:v,readOnly:b,required:x},void 0,!1,{fileName:Fg,lineNumber:505,columnNumber:9},this)]},void 0,!0,{fileName:Fg,lineNumber:488,columnNumber:5},this)}var d_=L.createContext(null);function f_(e){let t=L.useContext(d_);if(!t)throw Error(`\`${e}\` must be used within \`${Lg}\``);return t}function p_(e){let{onPointerDown:t,onClick:n,asChild:r,className:i,style:a,ref:o,...s}=e,{inputGroupId:c,labelId:l,onInputGroupChange:u,disabled:d,readOnly:f,invalid:p,segmentPlaceholder:m,inputGroupRef:h,triggerRef:g,inputGroupClickAction:_}=l_(Lg),v=o_(Lg),y=Rs(o,h,u),b=L.useRef(new Map),x=L.useCallback((e,t)=>{b.current.set(e,t)},[]),S=L.useCallback(e=>{b.current.delete(e)},[]),w=L.useCallback(e=>{let t=[`hour`,`minute`,`second`,`period`],n=t.indexOf(e);if(n===-1||n===t.length-1)return null;for(let e=n+1;e<t.length;e++){let n=t[e];if(n){let e=b.current.get(n);if(e?.current)return e}}return null},[]),T=L.useCallback(e=>{if(t?.(e),d||f||e.defaultPrevented)return;let n=e.target;n.tagName===`INPUT`||n.closest(`input`)||g.current?.contains(n)||e.preventDefault()},[t,d,f,g]),E=L.useCallback(e=>{if(n?.(e),d||f||e.defaultPrevented)return;let t=e.target;if(!(t.tagName===`INPUT`||t.closest(`input`))&&!g.current?.contains(t))if(_===`open`)v.setState(`open`,!0);else{let e=document.activeElement;if(!(e&&e.tagName===`INPUT`&&h.current?.contains(e)))for(let e of Xg){let t=b.current.get(e);if(t?.current){t.current.focus(),t.current.select();break}}}},[n,d,f,_,v,g,h]),D=L.useMemo(()=>({onInputRegister:x,onInputUnregister:S,getNextInput:w}),[x,S,w]),O=r?ie:`div`;return(0,R.jsxDEV)(d_.Provider,{value:D,children:(0,R.jsxDEV)(fe,{asChild:!0,children:(0,R.jsxDEV)(O,{role:`group`,id:c,"aria-labelledby":l,"data-slot":`time-picker-input-group`,"data-disabled":d?``:void 0,"data-invalid":p?``:void 0,...s,className:C(`flex h-10 w-full cursor-text items-center gap-0.5 rounded-md border border-input bg-background px-3 py-2 shadow-xs outline-none transition-shadow`,`has-[input:focus]:border-ring has-[input:focus]:ring-[3px] has-[input:focus]:ring-ring/50`,p&&`border-destructive ring-destructive/20`,d&&`cursor-not-allowed opacity-50`,i),style:{"--time-picker-hour-input-width":`${m.hour.length}ch`,"--time-picker-minute-input-width":`${m.minute.length}ch`,"--time-picker-second-input-width":`${m.second.length}ch`,"--time-picker-period-input-width":`${Math.max(m.period.length,2)+.5}ch`,...a},ref:y,onPointerDown:T,onClick:E},void 0,!1,{fileName:Fg,lineNumber:716,columnNumber:9},this)},void 0,!1,{fileName:Fg,lineNumber:715,columnNumber:7},this)},void 0,!1,{fileName:Fg,lineNumber:714,columnNumber:5},this)}function m_(e){let{segment:t,onBlur:n,onChange:r,onClick:i,onFocus:a,onKeyDown:o,disabled:s,readOnly:c,className:l,style:u,ref:d,...f}=e,{is12Hour:p,showSeconds:m,disabled:h,readOnly:g,segmentPlaceholder:_,openOnFocus:v}=l_(Rg),y=o_(Rg),b=f_(Rg),x=s||h,S=c||g,w=e_(s_(e=>e.value)),T=L.useRef(null),E=Rs(d,T);su(()=>{if(t)return b.onInputRegister(t,T),()=>b.onInputUnregister(t)},[b,t]);let D=L.useCallback(()=>{if(!w)return t?_[t]:``;switch(t){case`hour`:return w.hour===void 0?_.hour:p?n_(w.hour).hour.toString().padStart(2,`0`):w.hour.toString().padStart(2,`0`);case`minute`:return w.minute===void 0?_.minute:w.minute.toString().padStart(2,`0`);case`second`:return w.second===void 0?_.second:w.second.toString().padStart(2,`0`);case`period`:return!w||w.hour===void 0?_.period:n_(w.hour).period;default:return``}},[w,t,p,_]),[O,k]=L.useState(D()),[A,ee]=L.useState(!1),[te,ne]=L.useState(null);L.useEffect(()=>{A||(k(D()),ne(null))},[D,A]);let j=L.useCallback((e,n=!1)=>{let r=t?_[t]:Jg;if(!e||e===r||!w&&!n)return;let i={...w??{}};switch(t){case`hour`:{let t=Number.parseInt(e,10);if(!Number.isNaN(t))if(p){let e=i_(t,1,12),n;n=w?.period===void 0?w?.hour===void 0?n_(new Date().getHours()).period:n_(w.hour).period:w.period,i.hour=r_(e,n),w?.period!==void 0&&(i.period=w.period)}else i.hour=i_(t,0,23);break}case`minute`:{let t=Number.parseInt(e,10);Number.isNaN(t)||(i.minute=i_(t,0,59));break}case`second`:{let t=Number.parseInt(e,10);Number.isNaN(t)||(i.second=i_(t,0,59));break}case`period`:(e===`AM`||e===`PM`)&&(i.period=e,w&&w.hour!==void 0&&(i.hour=r_(n_(w.hour).hour,e)));break}let a=t_(i,m);y.setState(`value`,a)},[w,t,p,m,y,_]),M=L.useCallback(e=>{if(n?.(e),e.defaultPrevented)return;ee(!1);let r=t?_[t]:Jg;if(O&&O!==r&&O.length>0){let e=O;if(t!==`period`){if(O.length===2)e=O;else if(O.length===1){let t=Number.parseInt(O,10);Number.isNaN(t)||(e=t.toString().padStart(2,`0`))}}j(e,!0),queueMicrotask(()=>{let e=e_(y.getState().value);if(e){let t=new Date,n={...e},r=!1;if(n.hour===void 0&&(n.hour=t.getHours(),r=!0),n.minute===void 0&&(n.minute=t.getMinutes(),r=!0),m&&n.second===void 0&&(n.second=t.getSeconds(),r=!0),r){let e=t_(n,m);y.setState(`value`,e)}}})}k(D()),ne(null)},[n,O,j,D,t,_,m,y]),re=L.useCallback(e=>{if(r?.(e),e.defaultPrevented)return;let n=e.target.value,i=t?_[t]:Jg;if(O===i&&n.length>0&&n!==i&&(n=n.replace(RegExp(`^${i}`),``)),t===`period`){let e=n.charAt(0).toUpperCase(),t=null;e===`A`||e===`1`?t=`AM`:(e===`P`||e===`2`)&&(t=`PM`),t&&(k(t),j(t,!0),queueMicrotask(()=>{T.current?.select()}));return}if((t===`hour`||t===`minute`||t===`second`)&&(n=n.replace(/\D/g,``)),n.length>2&&(n=n.slice(0,2)),t===`hour`||t===`minute`||t===`second`){let e=Number.parseInt(n,10);if(!Number.isNaN(e)&&n.length>0){if(te!==null&&n.length===1){let e=te+n,r=Number.parseInt(e,10);if(!Number.isNaN(r)){let e=r.toString().padStart(2,`0`);k(e),j(e,!0),ne(null),queueMicrotask(()=>{if(t){let e=b.getNextInput(t);e?.current&&(e.current.focus(),e.current.select())}});return}}let r=t===`hour`?p?1:2:5,i=Number.parseInt(n[0]??`0`,10)>r;if(n.length===1)if(i){let n=e.toString().padStart(2,`0`);k(n),j(n,!0),ne(null),queueMicrotask(()=>{if(t){let e=b.getNextInput(t);e?.current&&(e.current.focus(),e.current.select())}})}else{let t=e.toString().padStart(2,`0`);k(t),ne(n),queueMicrotask(()=>{T.current?.select()})}else if(n.length===2){let n=e.toString().padStart(2,`0`);k(n),j(n,!0),ne(null),queueMicrotask(()=>{if(t){let e=b.getNextInput(t);e?.current&&(e.current.focus(),e.current.select())}})}}else n.length===0&&(k(``),ne(null))}},[t,j,r,O,p,b,te,_]),ie=L.useCallback(e=>{i?.(e),!e.defaultPrevented&&e.currentTarget.select()},[i]),ae=L.useCallback(e=>{a?.(e),!e.defaultPrevented&&(ee(!0),ne(null),v&&!y.getState().open&&(y.setState(`openedViaFocus`,!0),y.setState(`open`,!0)),queueMicrotask(()=>e.target.select()))},[a,v,y]),oe=L.useCallback(e=>{if(o?.(e),!e.defaultPrevented){if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`,n=T.current?.closest(`[data-slot="time-picker-input-group"]`);if(n&&T.current){let e=Array.from(n.querySelectorAll(`input[type="text"]`)),r=e.indexOf(T.current);if(r!==-1){let n=e[t?Math.max(0,r-1):Math.min(e.length-1,r+1)];n&&n!==T.current&&(n.focus(),n.select())}}return}if(e.key===`Backspace`||e.key===`Delete`){let n=T.current;if(n&&n.selectionStart===0&&n.selectionEnd===n.value.length){e.preventDefault();let n=t?_[t]:Jg;if(k(n),ne(null),w){let e={...w};switch(t){case`hour`:delete e.hour;break;case`minute`:delete e.minute;break;case`second`:delete e.second;break;case`period`:delete e.period;break}if(e.hour!==void 0||e.minute!==void 0||e.second!==void 0||e.period!==void 0){let t=t_(e,m);y.setState(`value`,t)}else y.setState(`value`,``)}else y.setState(`value`,``);queueMicrotask(()=>{T.current?.select()});return}}if(t===`period`){let t=e.key.toLowerCase();if(t===`a`||t===`p`||t===`1`||t===`2`){e.preventDefault();let n;n=t===`a`||t===`1`?`AM`:`PM`,k(n),j(n,!0),queueMicrotask(()=>{T.current?.select()})}else if(e.key===`ArrowUp`||e.key===`ArrowDown`){e.preventDefault();let t=_.period,n=O===t||O===``?`AM`:O,r=n===`AM`||n===`A`?`PM`:`AM`;k(r),j(r,!0),queueMicrotask(()=>{T.current?.select()})}return}if(e.key===`Tab`){let e=t?_[t]:Jg;if(O&&O.length>0&&O!==e){if(O.length===2)j(O,!0);else if(O.length===1){let e=Number.parseInt(O,10);if(!Number.isNaN(e)){let t=e.toString().padStart(2,`0`);j(t,!0)}}}return}if(e.key===`Enter`){e.preventDefault();let n=t?_[t]:Jg;if(O&&O.length>0&&O!==n){if(O.length===2)j(O,!0);else if(O.length===1){let e=Number.parseInt(O,10);if(!Number.isNaN(e)){let t=e.toString().padStart(2,`0`);j(t,!0)}}}queueMicrotask(()=>{T.current?.select()})}if(e.key===`Escape`&&(e.preventDefault(),k(D()),T.current?.blur()),e.key===`ArrowUp`){e.preventDefault();let n=t?_[t]:Jg;if(O===n||O===``){let e=(t===`hour`&&p?12:0).toString().padStart(2,`0`);k(e),j(e,!0),queueMicrotask(()=>{T.current?.select()});return}let r=Number.parseInt(O,10);if(!Number.isNaN(r)){let e;switch(t){case`hour`:e=p?r===12?1:r+1:r===23?0:r+1;break;case`minute`:case`second`:e=r===59?0:r+1;break;default:return}let n=e.toString().padStart(2,`0`);k(n),j(n,!0),queueMicrotask(()=>{T.current?.select()})}}if(e.key===`ArrowDown`){e.preventDefault();let n=t?_[t]:Jg;if(O===n||O===``){let e=(t===`hour`?p?12:23:59).toString().padStart(2,`0`);k(e),j(e,!0),queueMicrotask(()=>{T.current?.select()});return}let r=Number.parseInt(O,10);if(!Number.isNaN(r)){let e;switch(t){case`hour`:e=p?r===1?12:r-1:r===0?23:r-1;break;case`minute`:case`second`:e=r===0?59:r-1;break;default:return}let n=e.toString().padStart(2,`0`);k(n),j(n,!0),queueMicrotask(()=>{T.current?.select()})}}}},[o,O,t,p,D,j,m,w,y,_]),se=A?O:D(),ce=t?`var(--time-picker-${t}-input-width)`:`2ch`;return(0,R.jsxDEV)(`input`,{type:`text`,inputMode:t===`period`?`text`:`numeric`,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`off`,spellCheck:!1,translate:`no`,...f,disabled:x,readOnly:S,className:C(`inline-flex h-full items-center justify-center border-0 bg-transparent text-center text-sm tabular-nums outline-none transition-colors focus:bg-transparent disabled:cursor-not-allowed disabled:opacity-50`,l),style:{width:ce,...u},ref:E,value:se,onBlur:M,onChange:re,onClick:ie,onFocus:ae,onKeyDown:oe},void 0,!1,{fileName:Fg,lineNumber:1408,columnNumber:5},this)}function h_(e){let{className:t,children:n,disabled:r,ref:i,...a}=e,{triggerId:o,disabled:s,triggerRef:c}=l_(zg);return(0,R.jsxDEV)(ue,{type:`button`,id:o,"data-slot":`time-picker-trigger`,disabled:r||s,ref:Rs(i,c),...a,className:C(`ml-auto flex items-center text-muted-foreground transition-colors hover:text-foreground disabled:pointer-events-none [&>svg:not([class*='size-'])]:size-4`,t),children:n??(0,R.jsxDEV)(ye,{},void 0,!1,{fileName:Fg,lineNumber:1464,columnNumber:20},this)},void 0,!1,{fileName:Fg,lineNumber:1452,columnNumber:5},this)}var g_=L.createContext(null);function __(e){let t=L.useContext(g_);if(!t)throw Error(`\`${e}\` must be used within \`${Ig}\``);return t}function v_(e){let{side:t=`bottom`,align:n=`start`,sideOffset:r=6,className:i,onOpenAutoFocus:a,onInteractOutside:o,...s}=e,c=o_(Bg),{openOnFocus:l,inputGroupRef:u}=l_(Bg),d=L.useRef(new Map),f=L.useCallback(e=>{d.current.set(e.id,e)},[]),p=L.useCallback(e=>{d.current.delete(e)},[]),m=L.useCallback(()=>Qg(Array.from(d.current.entries()).map(([e,{ref:t,getSelectedItemRef:n,getItems:r}])=>({id:e,ref:t,getSelectedItemRef:n,getItems:r})).filter(e=>e.ref.current!==null)),[]),h=L.useMemo(()=>({getColumns:m,onColumnRegister:f,onColumnUnregister:p}),[m,f,p]),g=L.useCallback(e=>{if(a?.(e),e.defaultPrevented)return;e.preventDefault();let{openedViaFocus:t}=c.getState();if(t){c.setState(`openedViaFocus`,!1);return}let n=m()[0];if(!n)return;let r=n.getItems(),i=r.find(e=>e.selected);Zg(i?[i.ref,...r.map(e=>e.ref)]:r.map(e=>e.ref),!1)},[a,m,c]),_=L.useCallback(e=>{if(o?.(e),!e.defaultPrevented&&l&&u.current){let t=e.target;if(!(t instanceof Node))return;u.current.contains(t)&&e.preventDefault()}},[o,l,u]);return(0,R.jsxDEV)(g_.Provider,{value:h,children:(0,R.jsxDEV)(ce,{"data-slot":`time-picker-content`,side:t,align:n,sideOffset:r,...s,className:C(`flex w-auto max-w-(--radix-popover-trigger-width) p-0`,i),onOpenAutoFocus:g,onInteractOutside:_},void 0,!1,{fileName:Fg,lineNumber:1590,columnNumber:7},this)},void 0,!1,{fileName:Fg,lineNumber:1589,columnNumber:5},this)}var y_=L.createContext(null);function b_(e){let t=L.useContext(y_);if(!t)throw Error(`\`${e}\` must be used within a column`);return t}function x_(e){let{children:t,className:n,ref:r,...i}=e,a=L.useId(),o=L.useRef(null),s=Rs(r,o),c=L.useRef(new Map),l=__(Vg),u=L.useCallback((e,t,n)=>{c.current.set(e,{ref:t,selected:n})},[]),d=L.useCallback(e=>{c.current.delete(e)},[]),f=L.useCallback(()=>Qg(Array.from(c.current.entries()).map(([e,{ref:t,selected:n}])=>({value:e,ref:t,selected:n})).filter(e=>e.ref.current)),[]),p=L.useCallback(()=>f().find(e=>e.selected)?.ref??null,[f]);su(()=>(l.onColumnRegister({id:a,ref:o,getSelectedItemRef:p,getItems:f}),()=>l.onColumnUnregister(a)),[l,a,p,f]);let m=L.useMemo(()=>({getItems:f,onItemRegister:u,onItemUnregister:d}),[f,u,d]);return(0,R.jsxDEV)(y_.Provider,{value:m,children:(0,R.jsxDEV)(`div`,{ref:s,"data-slot":`time-picker-column`,...i,className:C(`flex flex-col gap-1 not-last:border-r p-1`,n),children:t},void 0,!1,{fileName:Fg,lineNumber:1701,columnNumber:7},this)},void 0,!1,{fileName:Fg,lineNumber:1700,columnNumber:5},this)}function S_(e){let{value:t,selected:n=!1,format:r=`numeric`,className:i,ref:a,...o}=e,s=L.useRef(null),c=Rs(a,s),l=b_(Hg),u=__(Hg);su(()=>(l.onItemRegister(t,s,n),()=>l.onItemUnregister(t)),[l,t,n]),su(()=>{n&&s.current&&s.current.scrollIntoView({block:`nearest`})},[n]);let d=L.useCallback(e=>{o.onClick?.(e),!e.defaultPrevented&&s.current?.focus()},[o.onClick]),f=L.useCallback(e=>{if(o.onKeyDown?.(e),!e.defaultPrevented)if(e.key===`ArrowUp`||e.key===`ArrowDown`){e.preventDefault();let n=l.getItems().sort((e,t)=>typeof e.value==`number`&&typeof t.value==`number`?e.value-t.value:0),r=n.findIndex(e=>e.value===t),i;i=e.key===`ArrowUp`?r>0?r-1:n.length-1:r<n.length-1?r+1:0;let a=n[i];a?.ref.current?.focus(),a?.ref.current?.click()}else(e.key===`Tab`||e.key===`ArrowLeft`||e.key===`ArrowRight`)&&u&&(e.preventDefault(),queueMicrotask(()=>{let t=u.getColumns();if(t.length===0)return;let n=t.findIndex(e=>e.ref.current?.contains(s.current)??!1);if(n===-1)return;let r=t[e.key===`ArrowLeft`||e.key===`Tab`&&e.shiftKey?n>0?n-1:t.length-1:n<t.length-1?n+1:0];if(r?.ref.current){let e=r.getItems(),t=e.find(e=>e.selected);Zg(t?[t.ref,...e.map(e=>e.ref)]:e.map(e=>e.ref),!1)}}))},[o.onKeyDown,l,u,t]),p=typeof t==`number`&&r===`2-digit`?t.toString().padStart(2,`0`):t.toString();return(0,R.jsxDEV)(`button`,{type:`button`,...o,ref:c,"data-selected":n?``:void 0,className:C(`w-full rounded px-3 py-1.5 text-left text-sm hover:bg-accent hover:text-accent-foreground focus:border-ring focus:outline-none focus:ring-[3px] focus:ring-ring/50`,`data-selected:bg-primary data-selected:text-primary-foreground data-selected:hover:bg-primary data-selected:hover:text-primary-foreground`,i),onClick:d,onKeyDown:f,children:p},void 0,!1,{fileName:Fg,lineNumber:1834,columnNumber:5},this)}function C_(e){let{asChild:t,format:n=`numeric`,className:r,...i}=e,{is12Hour:a,hourStep:o,showSeconds:s}=l_(Ug),c=o_(Ug),l=e_(s_(e=>e.value)),u=Array.from({length:Math.ceil(a?12/o:24/o)},(e,t)=>{if(a){let e=t*o%12;return e===0?12:e}return t*o}),d=L.useCallback(e=>{let t=new Date,n=l??{},r=e;if(a){let n;n=l?.period===void 0?l?.hour===void 0?n_(t.getHours()).period:n_(l.hour).period:l.period,r=r_(e,n)}let i={...n,hour:r};l&&l.period!==void 0&&(i.period=l.period),i.minute===void 0&&(i.minute=t.getMinutes()),s&&i.second===void 0&&(i.second=t.getSeconds());let o=t_(i,s);c.setState(`value`,o)},[l,s,a,c]),f=new Date,p=l?.hour??f.getHours(),m=a?n_(p).hour:p;return(0,R.jsxDEV)(t?ie:x_,{"data-slot":`time-picker-hour`,...i,className:C(`scrollbar-none flex max-h-[200px] flex-col gap-1 overflow-y-auto p-1`,r),children:u.map(e=>(0,R.jsxDEV)(S_,{value:e,selected:m===e,format:n,onClick:()=>d(e)},e,!1,{fileName:Fg,lineNumber:1931,columnNumber:9},this))},void 0,!1,{fileName:Fg,lineNumber:1922,columnNumber:5},this)}function w_(e){let{asChild:t,format:n=`2-digit`,className:r,...i}=e,{minuteStep:a,showSeconds:o}=l_(Wg),s=o_(Wg),c=e_(s_(e=>e.value)),l=Array.from({length:Math.ceil(60/a)},(e,t)=>t*a),u=L.useCallback(e=>{let t=new Date,n={...c??{},minute:e};n.hour===void 0&&(n.hour=t.getHours()),o&&n.second===void 0&&(n.second=t.getSeconds());let r=t_(n,o);s.setState(`value`,r)},[c,o,s]),d=t?ie:x_,f=new Date,p=c?.minute??f.getMinutes();return(0,R.jsxDEV)(d,{"data-slot":`time-picker-minute`,...i,className:C(`scrollbar-none flex max-h-[200px] flex-col gap-1 overflow-y-auto p-1`,r),children:l.map(e=>(0,R.jsxDEV)(S_,{value:e,selected:p===e,format:n,onClick:()=>u(e)},e,!1,{fileName:Fg,lineNumber:1996,columnNumber:9},this))},void 0,!1,{fileName:Fg,lineNumber:1987,columnNumber:5},this)}function T_(e){let{asChild:t,format:n=`2-digit`,className:r,...i}=e,{secondStep:a}=l_(Gg),o=o_(Gg),s=e_(s_(e=>e.value)),c=Array.from({length:Math.ceil(60/a)},(e,t)=>t*a),l=L.useCallback(e=>{let t=new Date,n={...s??{},second:e};n.hour===void 0&&(n.hour=t.getHours()),n.minute===void 0&&(n.minute=t.getMinutes());let r=t_(n,!0);o.setState(`value`,r)},[s,o]),u=t?ie:x_,d=new Date,f=s?.second??d.getSeconds();return(0,R.jsxDEV)(u,{"data-slot":`time-picker-second`,...i,className:C(`scrollbar-none flex max-h-[200px] flex-col gap-1 overflow-y-auto p-1`,r),children:c.map(e=>(0,R.jsxDEV)(S_,{value:e,selected:f===e,format:n,onClick:()=>l(e)},e,!1,{fileName:Fg,lineNumber:2061,columnNumber:9},this))},void 0,!1,{fileName:Fg,lineNumber:2052,columnNumber:5},this)}function E_(e){let{asChild:t,children:n,...r}=e;return(0,R.jsxDEV)(t?ie:`span`,{"aria-hidden":`true`,"data-slot":`time-picker-separator`,...r,children:n??`:`},void 0,!1,{fileName:Fg,lineNumber:2144,columnNumber:5},this)}function D_(e){let{asChild:t,className:n,children:r,disabled:i,...a}=e,{disabled:o,readOnly:s}=l_(Kg),c=o_(Kg),l=i||o,u=L.useCallback(e=>{a.onClick?.(e),!e.defaultPrevented&&(e.preventDefault(),!(o||s)&&c.setState(`value`,``))},[a.onClick,o,s,c]);return(0,R.jsxDEV)(t?ie:`button`,{type:`button`,"data-slot":`time-picker-clear`,disabled:l,...a,className:C(`inline-flex items-center justify-center rounded-sm font-medium text-sm transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50`,n),onClick:u,children:r??`Clear`},void 0,!1,{fileName:Fg,lineNumber:2183,columnNumber:5},this)}var K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/datetime.tsx`;function O_(e,t){return e.granularity??t}function k_(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 A_(e,t){return function(n){return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(Te,{name:e,size:13,className:`shrink-0 text-muted`},void 0,!1,{fileName:K,lineNumber:68,columnNumber:9},this),(0,R.jsxDEV)(`span`,{children:t?t(String(n)):String(n)},void 0,!1,{fileName:K,lineNumber:69,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:67,columnNumber:7},this)}}function j_({value:e,format:t,icon:n}){return(0,R.jsxDEV)(Ot,{items:In(e,[]),content:A_(n,t),reserveEditor:!0},void 0,!1,{fileName:K,lineNumber:78,columnNumber:10},this)}function M_({field:e,value:t}){return e.hints.multiple===!0?(0,R.jsxDEV)(j_,{value:t,icon:`lucide:calendar`},void 0,!1,{fileName:K,lineNumber:84,columnNumber:48},this):vt(t,t=>{let n=O_(e.hints,`day`);return(0,R.jsxDEV)(`span`,{children:n===`month`||n===`year`?String(t):vg(String(t))||String(t)},void 0,!1,{fileName:K,lineNumber:88,columnNumber:12},this)})}function N_({name:e,field:t,value:n,onChange:r}){let i=O_(t.hints,`day`),a=i===`month`?`month`:i===`year`?`number`:`date`;if(t.hints.multiple===!0)return(0,R.jsxDEV)(St,{value:n,onChange:r,display:A_(`lucide:calendar`),renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:K,lineNumber:102,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:97,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);return i===`year`?(0,R.jsxDEV)(Ng,{value:o,onChange:r},void 0,!1,{fileName:K,lineNumber:123,columnNumber:28},this):i===`month`?(0,R.jsxDEV)(Pg,{value:o,onChange:r},void 0,!1,{fileName:K,lineNumber:124,columnNumber:29},this):(0,R.jsxDEV)(Cg,{value:o,onChange:r},void 0,!1,{fileName:K,lineNumber:125,columnNumber:10},this)}function P_(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,R.jsxDEV)(M_,{field:e.field,value:t},void 0,!1,{fileName:K,lineNumber:141,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(N_,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:K,lineNumber:143,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:130,columnNumber:5},this)}function F_(e,t){if(e==null||e===``)return[];let n=O_(t.hints,`day`),r=String(e);return[{value:r,rawValue:e,label:n===`year`||n===`month`?r:vg(r)||r}]}I({kinds:[`date`],Page:P_,keys:F_});var I_={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 L_({field:e,value:t}){return e.hints.multiple!==!0&&(t==null||t===``)?(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:K,lineNumber:177,columnNumber:83},this):e.hints.multiple===!0?(0,R.jsxDEV)(j_,{value:t,icon:`lucide:clock`},void 0,!1,{fileName:K,lineNumber:179,columnNumber:5},this):(0,R.jsxDEV)(`span`,{className:`font-mono text-sm`,children:String(t)},void 0,!1,{fileName:K,lineNumber:181,columnNumber:5},this)}function R_({name:e,field:t,value:n,onChange:r}){let i=O_(t.hints,`second`),a=i===`second`?1:i===`minute`?60:3600;if(t.hints.multiple===!0)return(0,R.jsxDEV)(St,{value:n,onChange:r,validate:e=>I_[i]?.test(e)??!1,display:A_(`lucide:clock`),renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:K,lineNumber:197,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:191,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);if(i===`hour`)return(0,R.jsxDEV)(E,{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:K,lineNumber:222,columnNumber:7},this);let s=i===`second`;return(0,R.jsxDEV)(u_,{value:o,onValueChange:r,showSeconds:s,children:[(0,R.jsxDEV)(p_,{id:e,children:[(0,R.jsxDEV)(m_,{segment:`hour`},void 0,!1,{fileName:K,lineNumber:237,columnNumber:9},this),(0,R.jsxDEV)(E_,{},void 0,!1,{fileName:K,lineNumber:238,columnNumber:9},this),(0,R.jsxDEV)(m_,{segment:`minute`},void 0,!1,{fileName:K,lineNumber:239,columnNumber:9},this),s&&(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(E_,{},void 0,!1,{fileName:K,lineNumber:242,columnNumber:13},this),(0,R.jsxDEV)(m_,{segment:`second`},void 0,!1,{fileName:K,lineNumber:243,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:241,columnNumber:11},this),(0,R.jsxDEV)(h_,{},void 0,!1,{fileName:K,lineNumber:246,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:236,columnNumber:7},this),(0,R.jsxDEV)(v_,{children:[(0,R.jsxDEV)(C_,{},void 0,!1,{fileName:K,lineNumber:249,columnNumber:9},this),(0,R.jsxDEV)(w_,{},void 0,!1,{fileName:K,lineNumber:250,columnNumber:9},this),s&&(0,R.jsxDEV)(T_,{},void 0,!1,{fileName:K,lineNumber:251,columnNumber:25},this),(0,R.jsxDEV)(D_,{},void 0,!1,{fileName:K,lineNumber:252,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:248,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:235,columnNumber:5},this)}function z_(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,R.jsxDEV)(L_,{field:e.field,value:t},void 0,!1,{fileName:K,lineNumber:271,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(R_,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:K,lineNumber:273,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:260,columnNumber:5},this)}I({kinds:[`time`],Page:z_});var B_={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 V_({field:e,value:t}){if(e.hints.multiple!==!0&&(t==null||t===``))return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:K,lineNumber:298,columnNumber:83},this);let n=O_(e.hints,`minute`);return e.hints.multiple===!0?(0,R.jsxDEV)(j_,{value:t,icon:`lucide:calendar-clock`,format:e=>k_(e,n).replace(`T`,` `)},void 0,!1,{fileName:K,lineNumber:301,columnNumber:5},this):(0,R.jsxDEV)(`span`,{children:yg(k_(t,n))},void 0,!1,{fileName:K,lineNumber:303,columnNumber:5},this)}function H_({name:e,field:t,value:n,onChange:r}){let i=O_(t.hints,`minute`),a=i===`second`?1:i===`hour`?3600:60;if(t.hints.multiple===!0)return(0,R.jsxDEV)(St,{value:n,onChange:r,validate:e=>B_[i]?.test(e)??!1,display:A_(`lucide:calendar-clock`,e=>k_(e,i).replace(`T`,` `)),renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:K,lineNumber:319,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:313,columnNumber:7},this);let{date:o,time:s}=bg(k_(n,i));return(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(Cg,{value:o,onChange:e=>r(xg(e,s||`00:00`))},void 0,!1,{fileName:K,lineNumber:340,columnNumber:7},this),(0,R.jsxDEV)(E,{id:e,type:`time`,step:a,value:s,onChange:e=>r(xg(o,e.target.value)),className:`w-32 appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`},void 0,!1,{fileName:K,lineNumber:341,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:339,columnNumber:5},this)}function U_(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,R.jsxDEV)(V_,{field:e.field,value:t},void 0,!1,{fileName:K,lineNumber:366,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(H_,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:K,lineNumber:368,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:355,columnNumber:5},this)}function W_({value:e,field:t}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:yg(k_(e,O_(t.hints,`minute`)))},void 0,!1,{fileName:K,lineNumber:381,columnNumber:10},this)}function G_(e,t){if(e==null||e===``)return[];let n=k_(e,O_(t.hints,`minute`));return[{value:n,rawValue:e,label:yg(n)}]}I({kinds:[`datetime`],Page:U_,Inline:W_,keys:G_});var K_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/checkbox.tsx`,q_=L.forwardRef(({className:e,...t},n)=>(0,R.jsxDEV)(te,{ref:n,className:C(`peer h-4.5 w-4.5 shrink-0 rounded border border-input bg-background ring-offset-background transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,`data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,e),...t,children:(0,R.jsxDEV)(ae,{className:C(`flex items-center justify-center text-current`),children:(0,R.jsxDEV)(et,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:K_,lineNumber:21,columnNumber:7},void 0)},void 0,!1,{fileName:K_,lineNumber:20,columnNumber:5},void 0)},void 0,!1,{fileName:K_,lineNumber:10,columnNumber:3},void 0));q_.displayName=te.displayName;var J_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/select-combobox.tsx`;function Y_({it:e}){return e.node?(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.node},void 0,!1,{fileName:J_,lineNumber:37,columnNumber:23},this):(0,R.jsxDEV)(R.Fragment,{children:[e.icon&&(0,R.jsxDEV)(fc,{icon:e.icon,size:`xs`},void 0,!1,{fileName:J_,lineNumber:40,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`min-w-0 truncate`,children:e.title},void 0,!1,{fileName:J_,lineNumber:41,columnNumber:7},this),e.subtitle&&e.subtitle!==e.title&&(0,R.jsxDEV)(`span`,{className:`text-muted text-xs shrink-0`,children:e.subtitle},void 0,!1,{fileName:J_,lineNumber:42,columnNumber:51},this)]},void 0,!0,{fileName:J_,lineNumber:39,columnNumber:5},this)}function X_({value:e,onChange:t,items:n,placeholder:r}){let i=L.useMemo(()=>new Map(n.map(e=>[e.value,e])),[n]),[a,o]=L.useState(``),s=L.useMemo(()=>{let e=a.trim().toLowerCase();return e?n.filter(t=>t.title.toLowerCase().includes(e)||(t.subtitle?.toLowerCase().includes(e)??!1)):n},[a,n]),c=i.get(e);return(0,R.jsxDEV)(Xn,{items:s.map(e=>e.value),value:e||null,onValueChange:e=>t(e??``),itemToStringLabel:e=>i.get(e)?.title??e,children:[(0,R.jsxDEV)(Wn,{render:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,className:`w-full justify-between gap-2 px-2 font-normal`},void 0,!1,{fileName:J_,lineNumber:79,columnNumber:11},this),children:[c?(0,R.jsxDEV)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:(0,R.jsxDEV)(Y_,{it:c},void 0,!1,{fileName:J_,lineNumber:88,columnNumber:13},this)},void 0,!1,{fileName:J_,lineNumber:87,columnNumber:11},this):(0,R.jsxDEV)(`span`,{className:`truncate text-muted-foreground`,children:r},void 0,!1,{fileName:J_,lineNumber:91,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`sr-only`,children:(0,R.jsxDEV)(Kn,{},void 0,!1,{fileName:J_,lineNumber:94,columnNumber:11},this)},void 0,!1,{fileName:J_,lineNumber:93,columnNumber:9},this)]},void 0,!0,{fileName:J_,lineNumber:77,columnNumber:7},this),(0,R.jsxDEV)(qn,{className:`w-(--anchor-width) min-w-52`,children:[(0,R.jsxDEV)(Gn,{placeholder:r,value:a,onChange:e=>o(e.target.value),showTrigger:!1},void 0,!1,{fileName:J_,lineNumber:98,columnNumber:9},this),(0,R.jsxDEV)(Yn,{children:`—`},void 0,!1,{fileName:J_,lineNumber:104,columnNumber:9},this),(0,R.jsxDEV)(Jn,{children:s.map(e=>(0,R.jsxDEV)(Un,{value:e.value,className:`flex items-center gap-2.5`,children:(0,R.jsxDEV)(Y_,{it:e},void 0,!1,{fileName:J_,lineNumber:108,columnNumber:15},this)},e.value,!1,{fileName:J_,lineNumber:107,columnNumber:13},this))},void 0,!1,{fileName:J_,lineNumber:105,columnNumber:9},this)]},void 0,!0,{fileName:J_,lineNumber:97,columnNumber:7},this)]},void 0,!0,{fileName:J_,lineNumber:71,columnNumber:5},this)}function Z_({selected:e,onChange:t,items:n,placeholder:r,labelOf:i,chipClassName:a,chipStyle:o}){let s=L.useMemo(()=>new Map(n.map(e=>[e.value,e])),[n]),c=n.filter(t=>!e.includes(t.value)),l=e=>i?.(e)??s.get(e)?.title??e;return(0,R.jsxDEV)(Ot,{items:e,content:e=>{let t=s.get(String(e));return(0,R.jsxDEV)(R.Fragment,{children:[t?.icon&&(0,R.jsxDEV)(fc,{icon:t.icon,size:`xs`},void 0,!1,{fileName:J_,lineNumber:148,columnNumber:26},this),l(String(e))]},void 0,!0,{fileName:J_,lineNumber:147,columnNumber:11},this)},chipClassName:a?e=>a(String(e)):void 0,chipStyle:o?e=>o(String(e)):void 0,onRemove:n=>t(e.filter((e,t)=>t!==n)),editor:c.length>0?(0,R.jsxDEV)(X_,{value:``,onChange:n=>n&&t([...e,n]),items:c,placeholder:r},void 0,!1,{fileName:J_,lineNumber:158,columnNumber:11},this):null},void 0,!1,{fileName:J_,lineNumber:142,columnNumber:5},this)}var Q_=8;function $_(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return`var(--cat-${Math.abs(t)%Q_+1})`}var ev=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/record-save-ctx.tsx`,tv=(0,L.createContext)(null);function nv({children:e}){let{t}=a(),[n,r]=(0,L.useState)(0),i=(0,L.useCallback)(async e=>{let n=y.loading(t(`save.saving`));r(e=>e+1);try{let r=await e(),i=typeof r==`string`?r:void 0;return i?y.error(i,{id:n}):y.success(t(`save.done`),{id:n}),i}catch{return y.error(t(`save.failed`),{id:n}),t(`save.failed`)}finally{r(e=>e-1)}},[t]),o=(0,L.useMemo)(()=>({saving:n>0,run:i}),[n,i]);return(0,R.jsxDEV)(tv.Provider,{value:o,children:e},void 0,!1,{fileName:ev,lineNumber:40,columnNumber:10},this)}var rv={saving:!1,run:async e=>{let t=await e();return typeof t==`string`?t:void 0}};function iv(){return(0,L.useContext)(tv)??rv}var av=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/choice.tsx`;function ov(e,t){let n=e.hints.source;return t??(e.options?.length?e.options:n?je(n):[])}function sv({field:e,value:t,onChange:n,selectOptions:r,excludeValues:i}){let{t:o}=a();if(e.hints.multiple===!0){let i=ct(ov(e,r),o);return(0,R.jsxDEV)(Z_,{selected:(Array.isArray(t)?t:In(t,[])).map(String),items:i,onChange:e=>n(e),placeholder:o(`form.search`),chipClassName:()=>`cat-chip`,chipStyle:e=>({"--cat":$_(e)})},void 0,!1,{fileName:av,lineNumber:53,columnNumber:7},this)}let s=ov(e,r);return i?.length&&(s=s.filter(e=>e.value===t||!i.includes(e.value))),(0,R.jsxDEV)(X_,{value:typeof t==`string`?t:``,onChange:n,items:ct(s,o),placeholder:o(`form.search`)},void 0,!1,{fileName:av,lineNumber:65,columnNumber:10},this)}function cv({field:e,value:t}){let{t:n}=a(),r=ov(e);if(e.hints.multiple===!0)return(0,R.jsxDEV)(Ot,{items:In(t,[]),content:e=>{let t=r.find(t=>t.value===String(e));return(0,R.jsxDEV)(R.Fragment,{children:[t?.icon&&(0,R.jsxDEV)(fc,{icon:t.icon,size:`xs`},void 0,!1,{fileName:av,lineNumber:80,columnNumber:29},this),(0,R.jsxDEV)(`span`,{children:t?n(t.title):String(e)},void 0,!1,{fileName:av,lineNumber:81,columnNumber:15},this)]},void 0,!0,{fileName:av,lineNumber:79,columnNumber:13},this)},chipClassName:()=>`cat-chip`,chipStyle:e=>({"--cat":$_(String(e))}),reserveEditor:!0},void 0,!1,{fileName:av,lineNumber:74,columnNumber:7},this);if(t==null||t===``)return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:av,lineNumber:91,columnNumber:45},this);let i=String(t),o=r.find(e=>e.value===i),s=o?n(o.title):i;return(0,R.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-center gap-1.5 pr-6`,children:[o?.icon&&(0,R.jsxDEV)(fc,{icon:o.icon,size:`xs`},void 0,!1,{fileName:av,lineNumber:97,columnNumber:21},this),(0,R.jsxDEV)(`span`,{className:`min-w-0 truncate`,children:s},void 0,!1,{fileName:av,lineNumber:98,columnNumber:7},this),o?.subtitle&&o.subtitle!==s&&(0,R.jsxDEV)(`span`,{className:`text-muted text-xs shrink-0`,children:o.subtitle},void 0,!1,{fileName:av,lineNumber:100,columnNumber:9},this)]},void 0,!0,{fileName:av,lineNumber:96,columnNumber:5},this)}function lv(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,R.jsxDEV)(cv,{field:e.field,value:t},void 0,!1,{fileName:av,lineNumber:119,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(sv,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n,selectOptions:e.selectOptions,excludeValues:e.excludeValues},void 0,!1,{fileName:av,lineNumber:121,columnNumber:9},this)},void 0,!1,{fileName:av,lineNumber:108,columnNumber:5},this)}function uv({value:e,field:t}){let{t:n}=a(),r=t.options??[];if(t.hints.multiple===!0){let t=(Array.isArray(e)?e:In(e,[])).map(String);return t.length?(0,R.jsxDEV)(`span`,{className:`truncate`,children:t.map(e=>Mu(n,{options:r},e)).join(`, `)},void 0,!1,{fileName:av,lineNumber:140,columnNumber:12},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:av,lineNumber:139,columnNumber:31},this)}return(0,R.jsxDEV)(`span`,{className:`truncate`,children:r?.length?Mu(n,{options:r},e):String(e??``)},void 0,!1,{fileName:av,lineNumber:143,columnNumber:5},this)}function dv(e,t,n){if(e==null||e===``)return[];let r=String(e),i=Mu(n.t,{options:t.options},r);return[{value:r,rawValue:e,label:i,sort:i}]}I({kinds:[`select`],Page:lv,Inline:uv,keys:dv});function fv(e){let{saving:t}=iv(),n=Ln(e.value);return e.bare?(0,R.jsxDEV)(q_,{checked:n,disabled:t,onCheckedChange:t=>e.onChange?.(t===!0)},void 0,!1,{fileName:av,lineNumber:167,columnNumber:22},this):(0,R.jsxDEV)(`div`,{className:`group/field`,children:[e.label!==void 0&&(0,R.jsxDEV)(Gt,{label:e.label,required:e.required},void 0,!1,{fileName:av,lineNumber:170,columnNumber:33},this),(0,R.jsxDEV)(q_,{checked:n,disabled:t,onCheckedChange:t=>e.onChange?.(t===!0)},void 0,!1,{fileName:av,lineNumber:171,columnNumber:7},this),(0,R.jsxDEV)(It,{error:e.error},void 0,!1,{fileName:av,lineNumber:172,columnNumber:7},this)]},void 0,!0,{fileName:av,lineNumber:169,columnNumber:5},this)}function pv({value:e}){return(0,R.jsxDEV)(`span`,{children:Ln(e)?(0,R.jsxDEV)(Te,{name:`lucide:check`,size:14,className:`inline text-accent`},void 0,!1,{fileName:av,lineNumber:178,columnNumber:36},this):`—`},void 0,!1,{fileName:av,lineNumber:178,columnNumber:10},this)}function mv(e,t,n){if(e==null||e===``)return[];let r=ju(e);return[{value:r?`true`:`false`,rawValue:r,label:r?n.t(`group.yes`):n.t(`group.no`)}]}I({kinds:[`boolean`],Page:fv,Inline:pv,keys:mv});var hv=new Map,gv=new Map,_v=new Map;function vv(e,t,n){for(let r of n)gv.set(`${e}/${t}/${String(r.id)}`,r)}var yv=new Map;function bv(e,t,n){let r=`${e}/${t}/${n}`,i=yv.get(r);if(i)return i;let a=sr(e,t,{id:n}).then(n=>(vv(e,t,n),n)).finally(()=>yv.delete(r));return yv.set(r,a),a}function xv(e,t){let n=`${e}/${t}`,r=_v.get(n);if(r)return Promise.resolve(r);let i=hv.get(n);if(i)return i;let a=sr(e,t).then(r=>(vv(e,t,r),_v.set(n,r),r)).finally(()=>hv.delete(n));return hv.set(n,a),a}function Sv(e,t,n=`name`){let[r,i]=(0,L.useState)([]),[a,o]=(0,L.useState)(`loading`);(0,L.useEffect)(()=>{if(!e||!t){o(`idle`);return}let n=!0;return o(`loading`),xv(e,t).then(e=>{n&&(i(e),o(`idle`))}).catch(()=>{n&&o(`error`)}),()=>{n=!1}},[e,t]);let s=(0,L.useMemo)(()=>{let i=Ee(e,t);return r.map(e=>({id:String(e.id),label:i?Sn(i,e):String(e[n]??e.name??e.id)}))},[r,e,t,n]);return{rows:s,labelMap:(0,L.useMemo)(()=>new Map(s.map(e=>[e.id,e.label])),[s]),records:r,recordMap:(0,L.useMemo)(()=>new Map(r.map(e=>[String(e.id),e])),[r]),loadState:a}}function Cv(e,t,n){let r=(0,L.useMemo)(()=>[...new Set(n)].sort().join(`,`),[n]),[i,a]=(0,L.useState)(new Map);return(0,L.useEffect)(()=>{if(!e||!t||!r){a(new Map);return}let n=new Map,i=[];for(let a of r.split(`,`)){let r=gv.get(`${e}/${t}/${a}`);r?n.set(a,r):i.push(a)}if(!i.length){a(n);return}let o=!0;return bv(e,t,i.join(`,`)).then(e=>{for(let t of e)n.set(String(t.id),t);o&&a(new Map(n))}).catch(()=>{o&&a(n)}),()=>{o=!1}},[e,t,r]),i}function wv(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 Tv(e,t){for(let[n,r]of vn(e.fields))if(n===t)return r.kind}function Ev(e,t,n){let r=Tv(e,t);if(r&&fn(r)){let e=wv(n[t]);return e?{kind:`image`,value:rr(e)}:void 0}}function Dv(e,t){let n=e.views?.select;if(n){let r=Array.isArray(n.title)?n.title:[n.title];return{icon:n.icon?Ev(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=gn(e),i=r?wv(t[r]):void 0;return{icon:i?{kind:`image`,value:rr(i)}:void 0,title:Sn(e,t)}}var Ov=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/LookupBadge.tsx`;function kv(e){let t=typeof e==`string`?In(e,null):e;return t&&typeof t.value==`number`&&typeof t.unit==`string`?t:null}function Av(e,t,n){let r=n.find(e=>e.value===t);return r?e(r.label):t}function jv({lookupField:e,row:t,subs:n}){let{t:r}=a(),i=String(e.hints.from??``),o=e.hints.pick??[],s=e.hints.compareWith??null,c=n.find(e=>e.key===i),l=c?.relation?.library??``,u=c?.relation?.shelf??``,{recordMap:d,loadState:f}=Sv(l,u),p=t[i]??``,m=p?d.get(p):void 0;if(f===`loading`||!m)return null;let h=Ee(l,u),g=(h&&o[0]?xn(h.fields)[o[0]]:void 0)?.hints.units,_=Zt(g||`cooking`)??[],v=o.map(e=>({key:e,raw:m[e]})).filter(e=>e.raw!=null&&e.raw!==``),y=null,b=v.length?kv(v[0].raw):null;if(s&&b){let e=t[s],n=kv(e),r=n?n.unit===b.unit?n.value:null:e!==``&&e!=null&&!Number.isNaN(Number(e))?Number(e):null;r==null?b.value<=0&&(y=`missing`):y=b.value>=r?`enough`:b.value>0?`partial`:`missing`}let x=v.map(({raw:e})=>{let t=kv(e);return t?`${t.value} ${Av(r,t.unit,_)}`:String(e)}).join(` · `),S=y===`enough`?`bg-success/15 text-success border-success/30`:y===`partial`?`bg-warning/15 text-warning border-warning/30`:y===`missing`?`bg-danger/15 text-danger border-danger/30`:`bg-accent/10 text-muted border-border`,C=y===`enough`?`lucide:check`:y===`partial`?`lucide:minus`:y===`missing`?`lucide:x`:null;return(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-1 text-xs px-2 py-0.5 rounded-full border whitespace-nowrap ${S}`,title:y?r(`core.lookup.${y}`):void 0,children:[C&&(0,R.jsxDEV)(Te,{name:C,size:12},void 0,!1,{fileName:Ov,lineNumber:106,columnNumber:20},this),` `,x||r(`core.lookup.noData`)]},void 0,!0,{fileName:Ov,lineNumber:102,columnNumber:5},this)}var Mv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/RecordInline.tsx`;function Nv(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 Pv({shelf:e,row:t,size:n=`md`,height:r,className:i}){let a=Sn(e,t),o=gn(e),s=o?Nv(t[o]):void 0,c=s?{kind:`image`,value:rr(s)}:{kind:`icon`,value:e.icon??`lucide:square`};return(0,R.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-2 ${i??``}`,style:r?{height:r,minHeight:r}:void 0,children:[o&&(0,R.jsxDEV)(fc,{icon:c,size:n===`sm`?`md`:`lg`,framed:!0},void 0,!1,{fileName:Mv,lineNumber:55,columnNumber:18},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:a},void 0,!1,{fileName:Mv,lineNumber:56,columnNumber:7},this)]},void 0,!0,{fileName:Mv,lineNumber:51,columnNumber:5},this)}var Fv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/display.tsx`;function Iv({checked:e,onToggle:t,disabled:n}){let r=`w-4 h-4 rounded border shrink-0 inline-flex items-center justify-center transition-colors ${e?`bg-accent/20 border-accent/50 text-accent`:`border-border`}`,i=e?(0,R.jsxDEV)(et,{size:11,strokeWidth:3},void 0,!1,{fileName:Fv,lineNumber:76,columnNumber:27},this):null;return t?(0,R.jsxDEV)(`button`,{type:`button`,"aria-pressed":e,disabled:n,onClick:t,className:`${r} cursor-pointer hover:border-accent/40 disabled:opacity-50 disabled:cursor-not-allowed`,children:i},void 0,!1,{fileName:Fv,lineNumber:79,columnNumber:7},this):(0,R.jsxDEV)(`span`,{className:r,children:i},void 0,!1,{fileName:Fv,lineNumber:90,columnNumber:10},this)}function Lv({row:e,slotCount:t,numbered:n,editing:r,onToggle:i,onChange:a,onRemove:o,reserve:s,disabled:c}){let l=Array.from({length:t},(t,n)=>!!(e.checks??[])[n]),u=l.length>0&&l.every(Boolean);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2.5 min-w-0 text-sm`,children:[l.map((t,o)=>(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5`,children:[n&&(0,R.jsxDEV)(`span`,{className:`text-[10px] text-muted tabular-nums`,children:_t(o)},void 0,!1,{fileName:Fv,lineNumber:136,columnNumber:24},this),r?(0,R.jsxDEV)(q_,{checked:t,onCheckedChange:t=>a?.({...e,checks:l.map((e,n)=>n===o?t===!0:e)})},void 0,!1,{fileName:Fv,lineNumber:138,columnNumber:13},this):(0,R.jsxDEV)(Iv,{checked:t,onToggle:i?()=>i(o):void 0,disabled:c},void 0,!1,{fileName:Fv,lineNumber:143,columnNumber:13},this)]},o,!0,{fileName:Fv,lineNumber:135,columnNumber:9},this)),r?(0,R.jsxDEV)(E,{value:e.text,className:`min-w-0 flex-1`,onChange:t=>a?.({...e,text:t.target.value})},void 0,!1,{fileName:Fv,lineNumber:150,columnNumber:9},this):(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 ${u?`line-through text-muted`:`text-text`}`,children:e.text},void 0,!1,{fileName:Fv,lineNumber:156,columnNumber:9},this),(r?!!o:s)&&(0,R.jsxDEV)(gt,{onRemove:r?o:void 0},void 0,!1,{fileName:Fv,lineNumber:158,columnNumber:51},this)]},void 0,!0,{fileName:Fv,lineNumber:133,columnNumber:5},this)}function Rv({value:e,onChange:t,slots:n=[],disabled:r}){let i=Tt(e,n.length);if(!i.text&&!i.checks.some(Boolean))return(0,R.jsxDEV)(`div`,{className:`flex text-sm`,children:(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Fv,lineNumber:178,columnNumber:84},this)},void 0,!1,{fileName:Fv,lineNumber:178,columnNumber:54},this);let a=t?e=>t(dt({...i,checks:i.checks.map((t,n)=>n===e?!t:t)})):void 0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:(0,R.jsxDEV)(Lv,{row:i,slotCount:n.length,numbered:Ct(n.length),onToggle:a,disabled:r},void 0,!1,{fileName:Fv,lineNumber:185,columnNumber:9},this)},void 0,!1,{fileName:Fv,lineNumber:184,columnNumber:7},this),(0,R.jsxDEV)(yt,{slots:n},void 0,!1,{fileName:Fv,lineNumber:187,columnNumber:7},this)]},void 0,!0,{fileName:Fv,lineNumber:183,columnNumber:5},this)}function zv({value:e,onChange:t,slots:n=[],disabled:r}){let i=In(e,[]).filter(e=>e&&(e.text||(e.checks??[]).some(Boolean)));if(!i.length)return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Fv,lineNumber:205,columnNumber:28},this);let a=t?(e,n)=>t(i.map((t,r)=>r===e?{...t,checks:(t.checks??[]).map((e,t)=>t===n?!e:e)}:t)):void 0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:i.map((e,t)=>(0,R.jsxDEV)(Lv,{row:e,slotCount:n.length,numbered:Ct(n.length),onToggle:a?e=>a(t,e):void 0,reserve:!0,disabled:r},t,!1,{fileName:Fv,lineNumber:218,columnNumber:11},this))},void 0,!1,{fileName:Fv,lineNumber:216,columnNumber:7},this),(0,R.jsxDEV)(yt,{slots:n},void 0,!1,{fileName:Fv,lineNumber:229,columnNumber:7},this)]},void 0,!0,{fileName:Fv,lineNumber:215,columnNumber:5},this)}function Bv({field:e,value:t}){let n=e.relation?.library??``,r=e.relation?.shelf??``,i=e.hints.multi?In(t,[]):pt(t)?[String(t)]:[],a=Cv(n,r,i),o=Ee(n,r);return i.length?(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:i.map(e=>{let t=a.get(e);return(0,R.jsxDEV)(m,{to:`/${n}/${r}/${e}`,className:`inline-flex items-center gap-1.5 min-h-9 text-accent border border-transparent rounded-lg px-3 text-sm hover:text-accent2 transition-colors`,children:o&&t?(0,R.jsxDEV)(Pv,{shelf:o,row:t,size:`sm`,height:28},void 0,!1,{fileName:Fv,lineNumber:255,columnNumber:25},this):mt(e)},e,!1,{fileName:Fv,lineNumber:250,columnNumber:11},this)})},void 0,!1,{fileName:Fv,lineNumber:246,columnNumber:5},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Fv,lineNumber:244,columnNumber:27},this)}function Vv(e,t,n){let r=(Zt(e.hints.units)??[]).find(e=>e.value===t);return r?n(r.label):t}function Hv(e,t){return n=>{let r=n&&typeof n==`object`?n:(()=>{try{return JSON.parse(String(n))}catch{return null}})();if(r&&typeof r==`object`&&`value`in r&&`unit`in r){let{value:n,unit:i}=r;return(0,R.jsxDEV)(`span`,{className:`font-mono`,children:`${n} ${Vv(e,String(i),t)}`},void 0,!1,{fileName:Fv,lineNumber:276,columnNumber:14},this)}return(0,R.jsxDEV)(`span`,{className:`font-mono`,children:String(n)},void 0,!1,{fileName:Fv,lineNumber:278,columnNumber:12},this)}}function Uv({field:e,value:t}){let{t:n}=a(),r=In(t,null);return!r||r.value==null?(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Fv,lineNumber:286,columnNumber:41},this):(0,R.jsxDEV)(`span`,{className:`font-mono text-sm`,children:[r.value,` `,(0,R.jsxDEV)(`span`,{className:`text-xs text-muted`,children:Vv(e,r.unit,n)},void 0,!1,{fileName:Fv,lineNumber:289,columnNumber:19},this)]},void 0,!0,{fileName:Fv,lineNumber:288,columnNumber:5},this)}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/edit.tsx`;function Wv({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=o.filter(e=>!e.virtual),l=(0,L.useRef)(0),u=e=>e.map(e=>({id:++l.current,data:e})),d=()=>Object.fromEntries(c.map(e=>[e.key,``])),f=()=>{let t=In(e,a?[]:{});return a?Array.isArray(t)?t:[]:[t&&!Array.isArray(t)&&Object.keys(t).length?t:d()]},[p,m]=(0,L.useState)(()=>u(f()));(0,L.useEffect)(()=>{e||m(a?[]:u([d()]))},[e]);let h=e=>c.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,R.jsxDEV)(`div`,{className:`flex items-start gap-2 flex-wrap border border-border rounded-xl p-3`,children:[o.map(e=>e.virtual?e.prim===`lookup`?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:[e.label?(0,R.jsxDEV)(Gt,{label:r(e.label)},void 0,!1,{fileName:q,lineNumber:111,columnNumber:30},this):null,(0,R.jsxDEV)(`div`,{children:(0,R.jsxDEV)(jv,{lookupField:e,row:t,subs:o},void 0,!1,{fileName:q,lineNumber:113,columnNumber:19},this)},void 0,!1,{fileName:q,lineNumber:112,columnNumber:17},this)]},e.key,!0,{fileName:q,lineNumber:110,columnNumber:15},this):null:(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:(0,R.jsxDEV)(Sr,{field:on(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:q,lineNumber:119,columnNumber:15},this)},e.key,!1,{fileName:q,lineNumber:118,columnNumber:13},this)),a&&(0,R.jsxDEV)(ot,{className:`mt-6`,onClick:()=>g(p.filter((e,t)=>t!==n))},void 0,!1,{fileName:q,lineNumber:131,columnNumber:22},this)]},e,!0,{fileName:q,lineNumber:105,columnNumber:7},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[p.map(y),a&&(0,R.jsxDEV)(wt,{onClick:()=>m(e=>[...e,...u([d()])]),children:r(`form.addRow`)},void 0,!1,{fileName:q,lineNumber:139,columnNumber:20},this)]},void 0,!0,{fileName:q,lineNumber:137,columnNumber:5},this)}function Gv({value:e,onChange:t,field:n}){let{t:r}=a(),i=(0,L.useMemo)(()=>Zt(n.hints.units)??[],[n.hints]),o=(0,L.useMemo)(()=>{if(e&&typeof e==`object`)return e;try{return JSON.parse(String(e))}catch{return{value:``,unit:i[0]?.value??``}}},[e,i]),s=e=>t(e.value===``?``:e);return(0,R.jsxDEV)(ee,{className:`min-w-0`,children:[(0,R.jsxDEV)(D,{type:`number`,className:`min-w-0`,value:o.value===``?``:String(o.value),min:n.hints.min,max:n.hints.max,step:n.hints.step??`any`,onChange:e=>{let t=parseFloat(e.target.value);s({...o,value:isNaN(t)?``:t})},placeholder:`0`},void 0,!1,{fileName:q,lineNumber:175,columnNumber:7},this),(0,R.jsxDEV)(O,{align:`inline-end`,className:`pr-1`,children:(0,R.jsxDEV)(nt,{value:o.unit||void 0,onValueChange:e=>s({...o,unit:e}),children:[(0,R.jsxDEV)(it,{className:`h-7 gap-1 border-0 bg-transparent px-2 text-muted shadow-none focus:ring-0`,children:(0,R.jsxDEV)(rt,{},void 0,!1,{fileName:q,lineNumber:191,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:190,columnNumber:11},this),(0,R.jsxDEV)(Dt,{children:i.map(e=>(0,R.jsxDEV)(st,{value:e.value,children:r(e.label)},e.value,!1,{fileName:q,lineNumber:195,columnNumber:15},this))},void 0,!1,{fileName:q,lineNumber:193,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:189,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:188,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:174,columnNumber:5},this)}function Kv({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}=Sv(o,s,String(e.hints.displayKey??`name`)),f=Ee(o,s),p=(0,L.useMemo)(()=>t?c?Array.isArray(t)?t.map(String):In(t,[]).map(String):[String(t)]:[],[t,c]),m=Cv(o,s,p),h=(0,L.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,L.useMemo)(()=>h.filter(e=>String(e.id)===String(t)||p.includes(String(e.id))||!r?.includes(String(e.id))).map(e=>{let t=f?Dv(f,e):{title:String(e.id)},n=f?(0,R.jsxDEV)(Pv,{shelf:f,row:e,size:`sm`,height:28},void 0,!1,{fileName:q,lineNumber:258,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,R.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.loading`)},void 0,!1,{fileName:q,lineNumber:266,columnNumber:39},this):d===`error`?(0,R.jsxDEV)(`p`,{className:`text-danger text-sm py-1`,children:i(`form.loadError`)},void 0,!1,{fileName:q,lineNumber:267,columnNumber:37},this):g.length?c?(0,R.jsxDEV)(Z_,{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:q,lineNumber:275,columnNumber:5},this):(0,R.jsxDEV)(X_,{value:t==null?``:String(t),onChange:n,items:g},void 0,!1,{fileName:q,lineNumber:272,columnNumber:22},this):(0,R.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.noRecords`)},void 0,!1,{fileName:q,lineNumber:269,columnNumber:29},this)}function qv(e){return{text:``,checks:Array(e).fill(!1)}}function Jv({value:e,onChange:t,field:n}){let r=n.hints.slots??[``],[i,a]=(0,L.useState)(()=>Tt(e,r.length));(0,L.useEffect)(()=>{e||a(qv(r.length))},[e,r.length]);function o(e){a(e),t(e.text.trim()!==``||e.checks.some(Boolean)?dt(e):``)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(Lv,{row:i,slotCount:r.length,editing:!0,onChange:o},void 0,!1,{fileName:q,lineNumber:319,columnNumber:7},this),(0,R.jsxDEV)(yt,{slots:r},void 0,!1,{fileName:q,lineNumber:320,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:318,columnNumber:5},this)}function Yv({value:e,onChange:t,field:n}){let{t:r}=a(),i=n.hints.slots??[``],[o,s]=(0,L.useState)(()=>In(e,[]));(0,L.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,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 py-1`,children:[o.map((e,t)=>(0,R.jsxDEV)(Lv,{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:q,lineNumber:351,columnNumber:9},this)),(0,R.jsxDEV)(yt,{slots:i},void 0,!1,{fileName:q,lineNumber:360,columnNumber:7},this),(0,R.jsxDEV)(wt,{onClick:()=>s(e=>[...e,qv(i.length)]),children:r(`form.addItem`)},void 0,!1,{fileName:q,lineNumber:361,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:349,columnNumber:5},this)}function Xv(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 Zv({field:e,value:t,onChange:n}){let{t:r}=a(),i=(0,L.useMemo)(()=>Xv(t),[t]),[o,s]=(0,L.useState)(``);function c(e){n(e.length?e:``)}function l(){!o||typeof o!=`object`||o.value===``||(c([...i,o]),s(``))}return(0,R.jsxDEV)(Ot,{items:i,content:Hv(e,r),onRemove:e=>c(i.filter((t,n)=>n!==e)),editor:(0,R.jsxDEV)(`div`,{className:`flex gap-2 items-center min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Gv,{value:o,onChange:e=>s(e),field:e},void 0,!1,{fileName:q,lineNumber:506,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:505,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:l,children:(0,R.jsxDEV)(Xt,{size:14},void 0,!1,{fileName:q,lineNumber:513,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:512,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:504,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:499,columnNumber:5},this)}var Qv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/composite.tsx`;function $v(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,R.jsxDEV)(Bv,{field:e.field,value:t},void 0,!1,{fileName:Qv,lineNumber:43,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Kv,{field:e.field,value:t,onChange:n,excludeValues:e.excludeValues},void 0,!1,{fileName:Qv,lineNumber:45,columnNumber:9},this)},void 0,!1,{fileName:Qv,lineNumber:32,columnNumber:5},this)}function ey({value:e}){let t=In(e,null);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Array.isArray(t)?t.length?String(t.length):`—`:e?`1`:`—`},void 0,!1,{fileName:Qv,lineNumber:59,columnNumber:10},this)}function ty(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}]}I({kinds:[`relation`],layout:kn,Page:$v,Inline:ey,keys:ty});function ny({field:e,value:t}){let{t:n}=a();return(0,R.jsxDEV)(Ot,{items:Array.isArray(t)?t:ht(String(t??``)),content:Hv(e,n),reserveEditor:!0},void 0,!1,{fileName:Qv,lineNumber:84,columnNumber:10},this)}function ry(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,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,R.jsxDEV)(ny,{field:e.field,value:t},void 0,!1,{fileName:Qv,lineNumber:102,columnNumber:11},this):(0,R.jsxDEV)(Uv,{field:e.field,value:t},void 0,!1,{fileName:Qv,lineNumber:104,columnNumber:11},this),edit:(t,n)=>e.field.hints.multiple===!0?(0,R.jsxDEV)(Zv,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Qv,lineNumber:109,columnNumber:11},this):(0,R.jsxDEV)(Gv,{value:t,onChange:n,field:e.field},void 0,!1,{fileName:Qv,lineNumber:111,columnNumber:11},this)},void 0,!1,{fileName:Qv,lineNumber:89,columnNumber:5},this)}function iy({field:e,value:t}){let{t:n}=a(),r=In(t,null);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:r?`${r.value} ${Vv(e,String(r.unit),n)}`:`—`},void 0,!1,{fileName:Qv,lineNumber:122,columnNumber:10},this)}I({kinds:[`measured`],Page:ry,Inline:iy});function ay(e){let{saving:t}=iv();return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:(n,r)=>{let i=e.field.hints.slots??[``];return e.field.hints.multiple===!0?(0,R.jsxDEV)(zv,{value:n,onChange:r,slots:i,disabled:t},void 0,!1,{fileName:Qv,lineNumber:151,columnNumber:11},this):(0,R.jsxDEV)(Rv,{value:n,onChange:r,slots:i,disabled:t},void 0,!1,{fileName:Qv,lineNumber:153,columnNumber:11},this)},edit:(t,n)=>e.field.hints.multiple===!0?(0,R.jsxDEV)(Yv,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Qv,lineNumber:158,columnNumber:11},this):(0,R.jsxDEV)(Jv,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Qv,lineNumber:160,columnNumber:11},this)},void 0,!1,{fileName:Qv,lineNumber:137,columnNumber:5},this)}function oy({value:e,field:t}){let n=Tt(e,(t.hints.slots??[``]).length),r=n.checks.length;return!n.text&&!n.checks.some(Boolean)?(0,R.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:Qv,lineNumber:171,columnNumber:54},this):(0,R.jsxDEV)(`span`,{className:`truncate`,children:r?`${n.checks.filter(Boolean).length}/${r}`:n.text||`—`},void 0,!1,{fileName:Qv,lineNumber:173,columnNumber:10},this)}I({kinds:[`check`],layout:`block`,Page:ay,Inline:oy});function sy(){let[e,t]=(0,L.useState)(!1),[n,r]=(0,L.useState)(0),[i,a]=(0,L.useState)(null);async function o(e){if(a(null),e.size>26214400)return a(`upload.tooLarge`),null;t(!0),r(0);let n=await $n(e,r);return t(!1),n||(a(`upload.failed`),r(0),null)}return{busy:e,error:i,progress:n,upload:o}}var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/image.tsx`;function cy(e){return Ge({title:e(`actions.confirmDeletePhoto`),confirmLabel:e(`actions.delete`),variant:`destructive`})}var ly=/\.(mp4|webm|ogg|mov|m4v)$/i;function uy(e){return ly.test(e)}function dy({name:e}){return uy(e)?(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`video`,{src:rr(e),muted:!0,playsInline:!0,preload:`metadata`,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:43,columnNumber:9},this),(0,R.jsxDEV)(`span`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,R.jsxDEV)(we,{size:28,className:`text-white/90 drop-shadow`,fill:`currentColor`},void 0,!1,{fileName:J,lineNumber:45,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:42,columnNumber:7},this):(0,R.jsxDEV)(`img`,{src:rr(e),alt:``,loading:`lazy`,className:`h-full w-full object-cover transition-opacity hover:opacity-90`},void 0,!1,{fileName:J,lineNumber:51,columnNumber:5},this)}function fy(e){let t=e=>!!e&&typeof e==`object`&&typeof e.name==`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:n?[n]:[]).filter(t)}catch{return[]}}function py({images:e,index:t,onClose:n,onIndex:r}){let i=e.length>1,a=()=>r((t-1+e.length)%e.length),o=()=>r((t+1)%e.length);return(0,L.useEffect)(()=>{let e=e=>{e.key===`Escape`?n():e.key===`ArrowLeft`&&i?a():e.key===`ArrowRight`&&i&&o()};return document.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[t,e.length]),(0,R.jsxDEV)(`div`,{className:`fixed inset-0 z-[100] bg-black/85 backdrop-blur-sm flex items-center justify-center`,onClick:n,children:[(0,R.jsxDEV)(`button`,{className:`lightbox-btn absolute top-4 right-4`,onClick:n,children:(0,R.jsxDEV)(w,{size:22},void 0,!1,{fileName:J,lineNumber:113,columnNumber:9},this)},void 0,!1,{fileName:J,lineNumber:112,columnNumber:7},this),i&&(0,R.jsxDEV)(`button`,{className:`lightbox-btn absolute left-3 md:left-6`,onClick:e=>{e.stopPropagation(),a()},children:(0,R.jsxDEV)(xs,{size:26},void 0,!1,{fileName:J,lineNumber:123,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:116,columnNumber:9},this),uy(e[t])?(0,R.jsxDEV)(`video`,{src:rr(e[t]),controls:!0,autoPlay:!0,className:`max-h-[90dvh] max-w-[92vw] rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()},void 0,!1,{fileName:J,lineNumber:127,columnNumber:9},this):(0,R.jsxDEV)(`img`,{src:rr(e[t]),alt:``,className:`max-h-[90dvh] max-w-[92vw] object-contain rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()},void 0,!1,{fileName:J,lineNumber:135,columnNumber:9},this),i&&(0,R.jsxDEV)(`button`,{className:`lightbox-btn absolute right-3 md:right-6`,onClick:e=>{e.stopPropagation(),o()},children:(0,R.jsxDEV)(Ss,{size:26},void 0,!1,{fileName:J,lineNumber:150,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:143,columnNumber:9},this),i&&(0,R.jsxDEV)(`div`,{className:`absolute bottom-5 left-1/2 -translate-x-1/2 text-white/70 text-sm tabular-nums`,children:[t+1,` / `,e.length]},void 0,!0,{fileName:J,lineNumber:154,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:108,columnNumber:5},this)}function my({name:e,className:t}){let[n,r]=(0,L.useState)(!1);return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`img`,{src:rr(e),alt:``,loading:`lazy`,onClick:()=>r(!0),className:t??`max-h-40 rounded-xl border border-border cursor-zoom-in hover:opacity-90 transition-opacity`},void 0,!1,{fileName:J,lineNumber:169,columnNumber:7},this),n&&(0,R.jsxDEV)(py,{images:[e],index:0,onClose:()=>r(!1),onIndex:()=>{}},void 0,!1,{fileName:J,lineNumber:178,columnNumber:16},this)]},void 0,!0,{fileName:J,lineNumber:168,columnNumber:5},this)}function hy({value:e,poster:t}){let n=fy(e),[r,i]=(0,L.useState)(null);if(!n.length)return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:J,lineNumber:188,columnNumber:28},this);let a=n.map(e=>e.name),o=t?`h-96 w-64`:`h-24 w-24`;return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:n.map((e,t)=>(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>i(t),className:`relative ${o} rounded-xl overflow-hidden border border-border hover:border-accent transition-colors cursor-zoom-in`,children:(0,R.jsxDEV)(dy,{name:e.name},void 0,!1,{fileName:J,lineNumber:201,columnNumber:13},this)},`${e.name}-${t}`,!1,{fileName:J,lineNumber:195,columnNumber:11},this))},void 0,!1,{fileName:J,lineNumber:193,columnNumber:7},this),r!==null&&(0,R.jsxDEV)(py,{images:a,index:r,onClose:()=>i(null),onIndex:i},void 0,!1,{fileName:J,lineNumber:205,columnNumber:25},this)]},void 0,!0,{fileName:J,lineNumber:192,columnNumber:5},this)}function gy({value:e}){let t=fy(e),[n,r]=(0,L.useState)(null);if(!t.length)return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:J,lineNumber:215,columnNumber:28},this);let i=t.map(e=>e.name);return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:t.length===1?(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>r(0),className:`relative inline-block rounded-full cursor-zoom-in`,children:(0,R.jsxDEV)(`img`,{src:rr(t[0].name),alt:``,loading:`lazy`,className:`max-h-96 rounded-full border border-border object-cover hover:opacity-90 transition-opacity`},void 0,!1,{fileName:J,lineNumber:229,columnNumber:13},this)},`${t[0].name}-0`,!1,{fileName:J,lineNumber:223,columnNumber:11},this):t.map((e,t)=>(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>r(t),className:`relative h-24 w-24 rounded-full overflow-hidden border border-border hover:border-accent transition-colors cursor-zoom-in`,children:(0,R.jsxDEV)(`img`,{src:rr(e.name),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:243,columnNumber:13},this)},`${e.name}-${t}`,!1,{fileName:J,lineNumber:237,columnNumber:11},this))},void 0,!1,{fileName:J,lineNumber:221,columnNumber:7},this),n!==null&&(0,R.jsxDEV)(py,{images:i,index:n,onClose:()=>r(null),onIndex:r},void 0,!1,{fileName:J,lineNumber:247,columnNumber:25},this)]},void 0,!0,{fileName:J,lineNumber:220,columnNumber:5},this)}function _y({value:e}){let t=fy(e)[0];return t?(0,R.jsxDEV)(`img`,{src:rr(t.name),alt:``,style:{height:28,width:28},className:`rounded-full object-cover`},void 0,!1,{fileName:J,lineNumber:256,columnNumber:5},this):(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:J,lineNumber:254,columnNumber:20},this)}function vy({value:e,banner:t}){let n=fy(e),[r,i]=(0,L.useState)(0),[a,o]=(0,L.useState)(!1);if(!n.length)return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:J,lineNumber:275,columnNumber:28},this);let s=n.map(e=>e.name),c=n.length>1,l=Math.min(r,n.length-1),u=()=>i((l-1+n.length)%n.length),d=()=>i((l+1)%n.length);return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:t?`relative w-full overflow-hidden rounded-none`:`relative w-full overflow-hidden rounded-xl border border-border`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),o(!0)},className:t?`block h-48 w-full cursor-zoom-in md:h-64`:`block aspect-video max-h-96 w-full cursor-zoom-in`,children:(0,R.jsxDEV)(`img`,{src:rr(s[l]),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:297,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:290,columnNumber:9},this),c&&(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`button`,{type:`button`,className:`lightbox-btn absolute left-2 top-1/2 -translate-y-1/2`,onClick:e=>{e.stopPropagation(),u()},children:(0,R.jsxDEV)(xs,{size:22},void 0,!1,{fileName:J,lineNumber:306,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:301,columnNumber:13},this),(0,R.jsxDEV)(`button`,{type:`button`,className:`lightbox-btn absolute right-2 top-1/2 -translate-y-1/2`,onClick:e=>{e.stopPropagation(),d()},children:(0,R.jsxDEV)(Ss,{size:22},void 0,!1,{fileName:J,lineNumber:313,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:308,columnNumber:13},this),(0,R.jsxDEV)(`div`,{className:`absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-2 py-0.5 text-xs text-white tabular-nums`,children:[l+1,` / `,n.length]},void 0,!0,{fileName:J,lineNumber:315,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:300,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:283,columnNumber:7},this),a&&(0,R.jsxDEV)(py,{images:s,index:l,onClose:()=>o(!1),onIndex:i},void 0,!1,{fileName:J,lineNumber:321,columnNumber:16},this)]},void 0,!0,{fileName:J,lineNumber:282,columnNumber:5},this)}function yy({accept:e,busy:t,error:n,progress:r,onPick:i,className:o,round:s=!1}){let{t:c}=a();return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`label`,{className:`flex cursor-pointer flex-col items-center justify-center gap-2 ${s?`rounded-full`:`rounded-xl`} border-2 border-dashed border-border text-muted transition-colors hover:border-accent hover:text-accent ${t?`pointer-events-none opacity-60`:``} ${o??``}`,children:[t?(0,R.jsxDEV)(Pt,{size:24,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:357,columnNumber:17},this):(0,R.jsxDEV)(Ft,{size:24},void 0,!1,{fileName:J,lineNumber:357,columnNumber:66},this),(0,R.jsxDEV)(`span`,{className:`text-sm font-medium`,children:c(`actions.upload`)},void 0,!1,{fileName:J,lineNumber:358,columnNumber:9},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>i(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:359,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:350,columnNumber:7},this),t&&r!=null&&(0,R.jsxDEV)(bt,{progress:r},void 0,!1,{fileName:J,lineNumber:367,columnNumber:36},this),n&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:c(n)},void 0,!1,{fileName:J,lineNumber:368,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:349,columnNumber:5},this)}function by({accept:e,busy:t,error:n,progress:r,onPick:i,className:o}){let{t:s}=a();return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`label`,{className:`flex h-9 cursor-pointer items-center gap-2 rounded-lg border border-dashed border-border px-3 text-sm text-muted transition-colors hover:border-accent hover:text-accent ${t?`pointer-events-none opacity-60`:``} ${o??`w-fit`}`,children:[t?(0,R.jsxDEV)(Pt,{size:15,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:400,columnNumber:17},this):(0,R.jsxDEV)(Ft,{size:15},void 0,!1,{fileName:J,lineNumber:400,columnNumber:66},this),(0,R.jsxDEV)(`span`,{className:`font-medium`,children:s(`actions.upload`)},void 0,!1,{fileName:J,lineNumber:401,columnNumber:9},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>i(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:402,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:395,columnNumber:7},this),t&&r!=null&&(0,R.jsxDEV)(bt,{progress:r},void 0,!1,{fileName:J,lineNumber:410,columnNumber:36},this),n&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:s(n)},void 0,!1,{fileName:J,lineNumber:411,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:394,columnNumber:5},this)}function xy({accept:e,busy:t,onPick:n,title:r,className:i}){return(0,R.jsxDEV)(`label`,{title:r,className:`inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-full bg-bg/70 text-muted opacity-0 backdrop-blur-sm transition-all hover:text-accent group-hover:opacity-100 ${t?`pointer-events-none opacity-60`:``} ${i??``}`,children:[t?(0,R.jsxDEV)(Pt,{size:15,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:437,columnNumber:15},this):(0,R.jsxDEV)(xe,{size:15},void 0,!1,{fileName:J,lineNumber:437,columnNumber:64},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>n(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:438,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:431,columnNumber:5},this)}function Sy({value:e,onChange:t,accept:n=`image/*`,poster:r}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=sy(),u=fy(e)[0];async function d(e){if(!e)return;let n=await l(e);n&&t(n)}return u?(0,R.jsxDEV)(`div`,{className:`group relative inline-block`,children:[(0,R.jsxDEV)(my,{name:u.name,className:r?`h-96 w-64 object-cover rounded-xl border border-border cursor-zoom-in hover:opacity-90 transition-opacity`:void 0},void 0,!1,{fileName:J,lineNumber:473,columnNumber:9},this),(0,R.jsxDEV)(xy,{accept:n,busy:o,onPick:d,title:i(`actions.replace`),className:`absolute right-11 top-2`},void 0,!1,{fileName:J,lineNumber:481,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`icon`,disabled:o,className:`absolute top-2 right-2 h-8 w-8 rounded-full bg-bg/70 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/70 hover:text-danger group-hover:opacity-100`,onClick:async()=>{await cy(i)&&t(``)},title:i(`actions.delete`),children:(0,R.jsxDEV)(be,{size:15},void 0,!1,{fileName:J,lineNumber:493,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:482,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:472,columnNumber:7},this):(0,R.jsxDEV)(by,{accept:n,busy:o,error:s,progress:c,onPick:d},void 0,!1,{fileName:J,lineNumber:498,columnNumber:10},this)}function Cy({value:e,onChange:t,accept:n=`image/*`,poster:r}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=sy(),[u,d]=(0,L.useState)(null),f=fy(e),p=r?`h-96 w-64`:`h-24 w-24`;function m(e){t(e.length?e:``)}async function h(e){if(!e)return;let t=await l(e);t&&m([...f,t])}let g=f.map(e=>e.name);return f.length?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:[f.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`group/img relative ${p} overflow-hidden rounded-xl border border-border`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>d(t),className:`block h-full w-full cursor-zoom-in`,children:(0,R.jsxDEV)(dy,{name:e.name},void 0,!1,{fileName:J,lineNumber:543,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:542,columnNumber:13},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:o,className:`m-0 absolute right-1 top-1 rounded-full bg-bg/80 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/80 hover:text-danger group-hover/img:opacity-100`,onClick:async()=>{await cy(i)&&m(f.filter((e,n)=>n!==t))},title:i(`actions.delete`),children:(0,R.jsxDEV)(be,{size:13},void 0,!1,{fileName:J,lineNumber:556,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:545,columnNumber:13},this)]},`${e.name}-${t}`,!0,{fileName:J,lineNumber:538,columnNumber:11},this)),(0,R.jsxDEV)(yy,{accept:n,busy:o,error:s,progress:c,onPick:h,className:p},void 0,!1,{fileName:J,lineNumber:560,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:536,columnNumber:7},this),u!==null&&(0,R.jsxDEV)(py,{images:g,index:u,onClose:()=>d(null),onIndex:d},void 0,!1,{fileName:J,lineNumber:562,columnNumber:25},this)]},void 0,!0,{fileName:J,lineNumber:535,columnNumber:5},this):(0,R.jsxDEV)(by,{accept:n,busy:o,error:s,progress:c,onPick:h},void 0,!1,{fileName:J,lineNumber:532,columnNumber:12},this)}function wy({value:e,onChange:t,accept:n=`image/*`,multiple:r=!1}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=sy(),u=fy(e),d=e=>t(e.length?e:``);if(r){async function e(e){if(!e)return;let t=await l(e);t&&d([...u,t])}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:(0,R.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[u.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`group/av relative h-24 w-24 shrink-0`,children:[(0,R.jsxDEV)(`img`,{src:rr(e.name),alt:``,className:`h-24 w-24 rounded-full border border-border object-cover`},void 0,!1,{fileName:J,lineNumber:596,columnNumber:15},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:o,className:`m-0 absolute right-1 top-1 h-7 w-7 rounded-full bg-bg/80 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/80 hover:text-danger group-hover/av:opacity-100`,onClick:async()=>{await cy(i)&&d(u.filter((e,n)=>n!==t))},title:i(`actions.delete`),children:(0,R.jsxDEV)(be,{size:11},void 0,!1,{fileName:J,lineNumber:612,columnNumber:17},this)},void 0,!1,{fileName:J,lineNumber:601,columnNumber:15},this)]},`${e.name}-${t}`,!0,{fileName:J,lineNumber:595,columnNumber:13},this)),(0,R.jsxDEV)(yy,{accept:n,busy:o,error:s,progress:c,onPick:e,className:`h-24 w-24`,round:!0},void 0,!1,{fileName:J,lineNumber:616,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:593,columnNumber:9},this)},void 0,!1,{fileName:J,lineNumber:592,columnNumber:7},this)}let f=u[0];async function p(e){if(!e)return;let n=await l(e);n&&t(n)}return f?(0,R.jsxDEV)(`div`,{className:`group relative inline-block`,children:[(0,R.jsxDEV)(`img`,{src:rr(f.name),alt:``,className:`h-40 w-40 rounded-full border border-border object-cover`},void 0,!1,{fileName:J,lineNumber:632,columnNumber:9},this),(0,R.jsxDEV)(xy,{accept:n,busy:o,onPick:p,title:i(`actions.replace`),className:`absolute right-9 top-1`},void 0,!1,{fileName:J,lineNumber:637,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`icon`,disabled:o,className:`absolute right-1 top-1 h-8 w-8 rounded-full bg-bg/70 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/70 hover:text-danger group-hover:opacity-100`,onClick:async()=>{await cy(i)&&t(``)},title:i(`actions.delete`),children:(0,R.jsxDEV)(be,{size:15},void 0,!1,{fileName:J,lineNumber:649,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:638,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:631,columnNumber:7},this):(0,R.jsxDEV)(yy,{accept:n,busy:o,error:s,progress:c,onPick:p,className:`h-40 w-40`,round:!0},void 0,!1,{fileName:J,lineNumber:654,columnNumber:10},this)}function Ty({value:e,onChange:t,accept:n=`image/*`,multiple:r=!1}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=sy(),[u,d]=(0,L.useState)(0),f=fy(e),p=e=>t(e.length?e:``);async function m(e){if(!e)return;let t=await l(e);t&&p(r?[...f,t]:[t])}if(!f.length)return(0,R.jsxDEV)(by,{accept:n,busy:o,error:s,progress:c,onPick:m,className:`w-full`},void 0,!1,{fileName:J,lineNumber:686,columnNumber:12},this);let h=r?f.length+1:f.length,g=h>1,_=Math.min(u,h-1),v=r&&_===f.length;return(0,R.jsxDEV)(`div`,{className:`group/cov relative w-full overflow-hidden rounded-xl border border-border`,children:[v?(0,R.jsxDEV)(`div`,{className:`flex aspect-video max-h-96 w-full flex-col items-center justify-center gap-1 bg-elevated px-20`,children:[(0,R.jsxDEV)(`label`,{className:`flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-3 text-muted transition-colors hover:text-accent ${o?`pointer-events-none opacity-60`:``}`,children:[o?(0,R.jsxDEV)(Pt,{size:40,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:709,columnNumber:21},this):(0,R.jsxDEV)(Ft,{size:40},void 0,!1,{fileName:J,lineNumber:709,columnNumber:70},this),(0,R.jsxDEV)(`span`,{className:`text-base font-medium`,children:i(`actions.upload`)},void 0,!1,{fileName:J,lineNumber:710,columnNumber:13},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:n,className:`hidden`,disabled:o,onChange:e=>m(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:711,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:704,columnNumber:11},this),s&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:i(s)},void 0,!1,{fileName:J,lineNumber:719,columnNumber:21},this)]},void 0,!0,{fileName:J,lineNumber:703,columnNumber:9},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`img`,{src:rr(f[_].name),alt:``,className:`aspect-video max-h-96 w-full object-cover`},void 0,!1,{fileName:J,lineNumber:723,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:o,className:`m-0 absolute right-1 top-1 rounded-full bg-bg/80 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/80 hover:text-danger group-hover/cov:opacity-100`,onClick:async()=>{await cy(i)&&p(f.filter((e,t)=>t!==_))},title:i(`actions.delete`),children:(0,R.jsxDEV)(be,{size:13},void 0,!1,{fileName:J,lineNumber:733,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:724,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:722,columnNumber:9},this),g&&(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`button`,{type:`button`,className:`absolute left-2 top-1/2 z-10 flex h-9 w-9 -translate-y-1/2 items-center justify-center rounded-full bg-black/50 text-white backdrop-blur-sm transition-colors hover:bg-black/70`,onClick:()=>d((_-1+h)%h),children:(0,R.jsxDEV)(xs,{size:22},void 0,!1,{fileName:J,lineNumber:744,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:739,columnNumber:11},this),(0,R.jsxDEV)(`button`,{type:`button`,className:`absolute right-2 top-1/2 z-10 flex h-9 w-9 -translate-y-1/2 items-center justify-center rounded-full bg-black/50 text-white backdrop-blur-sm transition-colors hover:bg-black/70`,onClick:()=>d((_+1)%h),children:(0,R.jsxDEV)(Ss,{size:22},void 0,!1,{fileName:J,lineNumber:751,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:746,columnNumber:11},this),!v&&(0,R.jsxDEV)(`div`,{className:`absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-2 py-0.5 text-xs text-white tabular-nums`,children:[_+1,` / `,f.length]},void 0,!0,{fileName:J,lineNumber:754,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:738,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:701,columnNumber:5},this)}function Ey({value:e,height:t}){let n=fy(e)[0];if(!n)return(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:J,lineNumber:768,columnNumber:20},this);let r=t??32;return uy(n.name)?(0,R.jsxDEV)(`video`,{src:rr(n.name),muted:!0,playsInline:!0,preload:`metadata`,style:{height:r},className:`object-contain rounded`},void 0,!1,{fileName:J,lineNumber:772,columnNumber:7},this):(0,R.jsxDEV)(`img`,{src:rr(n.name),alt:``,style:{height:r},className:`object-contain rounded`},void 0,!1,{fileName:J,lineNumber:781,columnNumber:10},this)}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/file.tsx`;function Dy(e){return Ge({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`})}function Oy(e){return e==null?null:e>=1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${Math.round(e/1024)} KB`}function ky({rec:e}){return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(Mt,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:Y,lineNumber:38,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:e.name},void 0,!1,{fileName:Y,lineNumber:39,columnNumber:7},this),Oy(e.size)&&(0,R.jsxDEV)(`span`,{className:`text-xs text-muted`,children:Oy(e.size)},void 0,!1,{fileName:Y,lineNumber:40,columnNumber:35},this)]},void 0,!0,{fileName:Y,lineNumber:37,columnNumber:5},this)}function Ay({kind:e,rec:t,className:n}){return e===`audio`?(0,R.jsxDEV)(`audio`,{controls:!0,src:rr(t.name),className:n},void 0,!1,{fileName:Y,lineNumber:48,columnNumber:5},this):(0,R.jsxDEV)(`video`,{controls:!0,src:rr(t.name),className:n},void 0,!1,{fileName:Y,lineNumber:50,columnNumber:5},this)}var jy={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 My({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c}=sy(),l=fy(t),u=e=>n(e.length?e:``);async function d(e){if(!e)return;let t=await c(e);t&&u([...l,t])}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[l.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border px-2 py-1.5`,children:[(0,R.jsxDEV)(ky,{rec:e},void 0,!1,{fileName:Y,lineNumber:86,columnNumber:11},this),(0,R.jsxDEV)(`a`,{href:rr(e.name),download:!0,className:`text-muted hover:text-accent`,children:(0,R.jsxDEV)(Ts,{size:15},void 0,!1,{fileName:Y,lineNumber:88,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:87,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`text-muted hover:text-danger`,onClick:async()=>{await Dy(r)&&u(l.filter((e,n)=>n!==t))},children:(0,R.jsxDEV)(be,{size:13},void 0,!1,{fileName:Y,lineNumber:100,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:90,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:Y,lineNumber:85,columnNumber:9},this)),(0,R.jsxDEV)(lt,{accept:jy[e]??`*`,busy:i,error:o,progress:s,onPick:d},void 0,!1,{fileName:Y,lineNumber:104,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:83,columnNumber:5},this)}function Ny({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c}=sy(),l=fy(t),u=e=>n(e.length?e:``);async function d(e){if(!e)return;let t=await c(e);t&&u([...l,t])}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[l.map((t,n)=>(0,R.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsxDEV)(Ay,{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:Y,lineNumber:128,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`shrink-0 text-muted hover:text-danger`,onClick:async()=>{await Dy(r)&&u(l.filter((e,t)=>t!==n))},children:(0,R.jsxDEV)(be,{size:13},void 0,!1,{fileName:Y,lineNumber:139,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:129,columnNumber:11},this)]},`${t.name}-${n}`,!0,{fileName:Y,lineNumber:127,columnNumber:9},this)),(0,R.jsxDEV)(lt,{accept:jy[e]??`*`,busy:i,error:o,progress:s,onPick:d},void 0,!1,{fileName:Y,lineNumber:143,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:125,columnNumber:5},this)}function Py(e,t,n,r){if(e===`avatar`)return(0,R.jsxDEV)(wy,{value:t,onChange:n,accept:jy[e],multiple:r},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:12},this);if(e===`cover`)return(0,R.jsxDEV)(Ty,{value:t,onChange:n,accept:jy[e],multiple:r},void 0,!1,{fileName:Y,lineNumber:155,columnNumber:12},this);if(e===`image`||e===`media`||e===`poster`){let i=e===`poster`;return r?(0,R.jsxDEV)(Cy,{value:t,onChange:n,accept:jy[e],poster:i},void 0,!1,{fileName:Y,lineNumber:160,columnNumber:7},this):(0,R.jsxDEV)(Sy,{value:t,onChange:n,accept:jy[e],poster:i},void 0,!1,{fileName:Y,lineNumber:162,columnNumber:7},this)}return e===`audio`||e===`video`?(0,R.jsxDEV)(Ny,{kind:e,value:t,onChange:n},void 0,!1,{fileName:Y,lineNumber:166,columnNumber:12},this):(0,R.jsxDEV)(My,{kind:e,value:t,onChange:n},void 0,!1,{fileName:Y,lineNumber:168,columnNumber:10},this)}function Fy({kind:e,value:t}){let n=fy(t);return n.length?e===`avatar`?(0,R.jsxDEV)(gy,{value:t},void 0,!1,{fileName:Y,lineNumber:177,columnNumber:33},this):e===`cover`?(0,R.jsxDEV)(vy,{value:t},void 0,!1,{fileName:Y,lineNumber:178,columnNumber:32},this):e===`image`||e===`media`?(0,R.jsxDEV)(hy,{value:t},void 0,!1,{fileName:Y,lineNumber:179,columnNumber:52},this):e===`poster`?(0,R.jsxDEV)(hy,{value:t,poster:!0},void 0,!1,{fileName:Y,lineNumber:180,columnNumber:33},this):e===`audio`||e===`video`?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map((t,n)=>(0,R.jsxDEV)(Ay,{kind:e,rec:t,className:e===`audio`?`w-full`:`max-h-72 rounded-lg`},`${t.name}-${n}`,!1,{fileName:Y,lineNumber:185,columnNumber:11},this))},void 0,!1,{fileName:Y,lineNumber:183,columnNumber:7},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,R.jsxDEV)(`a`,{href:rr(e.name),download:!0,className:`flex items-center gap-2 rounded-lg border border-border px-2 py-1.5 hover:border-accent`,children:[(0,R.jsxDEV)(ky,{rec:e},void 0,!1,{fileName:Y,lineNumber:199,columnNumber:11},this),(0,R.jsxDEV)(Ts,{size:15,className:`text-muted shrink-0`},void 0,!1,{fileName:Y,lineNumber:200,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:Y,lineNumber:193,columnNumber:9},this))},void 0,!1,{fileName:Y,lineNumber:191,columnNumber:5},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Y,lineNumber:176,columnNumber:28},this)}function Iy(e){let t=e.field.kind,n=e.value??``,r=e.field.hints.noEditControl===!0&&e.mode===`view`,i=e.field.hints.multiple===!0,a=r?(0,R.jsxDEV)(Fy,{kind:t,value:n},void 0,!1,{fileName:Y,lineNumber:217,columnNumber:5},this):Py(t,n,t=>e.onChange?.(t),i);return e.bare?a:(0,R.jsxDEV)(`div`,{className:`group/field`,children:[e.label!==void 0&&(0,R.jsxDEV)(Gt,{label:e.label,required:e.required},void 0,!1,{fileName:Y,lineNumber:225,columnNumber:33},this),a,(0,R.jsxDEV)(It,{error:e.error},void 0,!1,{fileName:Y,lineNumber:227,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:224,columnNumber:5},this)}function Ly(e){let t=fy(e.value)[0];if(!t)return(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:Y,lineNumber:236,columnNumber:20},this);let n=e.field?.kind,r=n===`audio`?Ns:n===`video`?ks:Mt,i=Oy(t.size);return(0,R.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 text-sm`,children:[(0,R.jsxDEV)(r,{size:14,className:`text-muted shrink-0`},void 0,!1,{fileName:Y,lineNumber:242,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:t.name},void 0,!1,{fileName:Y,lineNumber:243,columnNumber:7},this),i&&(0,R.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,children:i},void 0,!1,{fileName:Y,lineNumber:244,columnNumber:14},this)]},void 0,!0,{fileName:Y,lineNumber:241,columnNumber:5},this)}I({kinds:[`image`,`media`,`poster`],layout:kn,box:`none`,Page:Iy,Inline:Ey}),I({kinds:[`file`,`document`,`audio`,`video`],layout:kn,box:`none`,Page:Iy,Inline:Ly}),I({kinds:[`avatar`],layout:`scalar`,box:`none`,Page:Iy,Inline:_y}),I({kinds:[`cover`],layout:`block`,Page:Iy,Inline:Ey});var Ry=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/period.tsx`;function zy(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 By(e,t){return e?t===`datetime`?e.replace(`T`,` `):e:`…`}function Vy(e,t){return`${By(e.from,t)}–${By(e.until,t)}`}function Hy({field:e,value:t,onChange:n}){let{t:r}=a();return(0,R.jsxDEV)(Wv,{value:t,onChange:n,field:e,t:r},void 0,!1,{fileName:Ry,lineNumber:66,columnNumber:10},this)}function Uy({field:e,value:t}){let n=e.hints.granularity??`day`;return(0,R.jsxDEV)(Ot,{items:zy(t),content:e=>(0,R.jsxDEV)(`span`,{className:`font-mono`,children:Vy(e,n)},void 0,!1,{fileName:Ry,lineNumber:75,columnNumber:23},this)},void 0,!1,{fileName:Ry,lineNumber:73,columnNumber:5},this)}function Wy(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(Uy,{field:e.field,value:t},void 0,!1,{fileName:Ry,lineNumber:92,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Hy,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:Ry,lineNumber:94,columnNumber:9},this)},void 0,!1,{fileName:Ry,lineNumber:82,columnNumber:5},this)}function Gy({value:e,field:t}){let n=t.hints.granularity??`day`,r=zy(e);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:r.length?r.map(e=>Vy(e,n)).join(`, `):`—`},void 0,!1,{fileName:Ry,lineNumber:109,columnNumber:5},this)}I({kinds:[`period`],Page:Wy,Inline:Gy});var Ky=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group-edit.tsx`;function qy(e,t,n){let r=zn(t,n);return e===`view`?r.editing?{mode:`edit`,value:r.draft,onChange:r.setDraft,actions:(0,R.jsxDEV)(zt,{size:`xs`,busy:r.busy,onSave:()=>r.commit(),onCancel:r.cancel},void 0,!1,{fileName:Ky,lineNumber:56,columnNumber:14},this)}:{mode:`view`,value:t,onChange:e=>n(e),actions:(0,R.jsxDEV)(qt,{scope:`group`,onEdit:r.beginEdit},void 0,!1,{fileName:Ky,lineNumber:49,columnNumber:16},this)}:{mode:e,value:t,onChange:e=>n(e),actions:null}}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group.tsx`,Jy=e=>Dn(e)===`block`;function Yy({onRemove:e}){let{t}=a();return(0,R.jsxDEV)(`div`,{className:`flex shrink-0 flex-col`,children:[(0,R.jsxDEV)(`div`,{className:`min-h-8 mb-1.5`,"aria-hidden":!0},void 0,!1,{fileName:X,lineNumber:47,columnNumber:7},this),(0,R.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,R.jsxDEV)(be,{size:14},void 0,!1,{fileName:X,lineNumber:58,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:46,columnNumber:5},this)}function Xy({group:e,value:t,onChange:n,recordCtx:r}){let{t:i}=a(),o=Ae(),s=Array.isArray(t)?t:[],c=e.unique??[];function l(e,t,r){n(s.map((n,i)=>i===e?{...n,[t]:r}:n))}function u(t,n,a){if(t.type.virtual&&t.type.prim===`lookup`){let r={key:t.key,...t.type},a=Object.fromEntries(Object.entries(n).map(([e,t])=>[e,String(t??``)])),o=e.fields.filter(e=>en(e)).map(e=>({key:e.key,...e.type}));return(0,R.jsxDEV)(`div`,{className:`flex flex-col min-w-0`,children:[t.type.label?(0,R.jsxDEV)(Gt,{label:i(t.type.label)},void 0,!1,{fileName:X,lineNumber:95,columnNumber:29},this):null,(0,R.jsxDEV)(`div`,{children:(0,R.jsxDEV)(jv,{lookupField:r,row:a,subs:o},void 0,!1,{fileName:X,lineNumber:97,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:96,columnNumber:11},this)]},t.key,!0,{fileName:X,lineNumber:94,columnNumber:9},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,R.jsxDEV)(Sr,{field:t.type,value:n[t.key]??``,excludeValues:kt(s,c,t.key,a),onChange:e=>l(a,t.key,e),label:t.type.label?i(t.type.label):void 0,mode:`edit`,recordCtx:r,error:e.key?o([e.key,a,t.key]):void 0},void 0,!1,{fileName:X,lineNumber:107,columnNumber:9},this)},t.key,!1,{fileName:X,lineNumber:106,columnNumber:7},this)}function d(t,i){return(0,R.jsxDEV)(Yt,{children:(0,R.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Rn,{scroll:e.display===`scroll`,items:e.fields.flatMap((e,n)=>an(e)?[{key:`brk-${i}-${n}`,break:!0,node:null}]:tn(e)?e.key==null&&e.display===`scroll`?[{key:e.label??`flow`,full:!0,node:(0,R.jsxDEV)(Rn,{scroll:!0,items:e.fields.flatMap(e=>en(e)?[{key:e.key,node:u(e,t,i)}]:[])},void 0,!1,{fileName:X,lineNumber:140,columnNumber:27},this)}]:[{key:e.key??e.label??`g`,full:e.kind!==`per-weekday`,node:(0,R.jsxDEV)(sb,{group:e,value:t[e.key],onChange:t=>l(i,e.key,t),recordCtx:r,mode:`edit`},void 0,!1,{fileName:X,lineNumber:155,columnNumber:25},this)}]:en(e)?[{key:e.key,full:Jy(e.type),node:u(e,t,i)}]:[])},void 0,!1,{fileName:X,lineNumber:126,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:125,columnNumber:11},this),(0,R.jsxDEV)(Yy,{onRemove:()=>n(s.filter((e,t)=>t!==i))},void 0,!1,{fileName:X,lineNumber:171,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:124,columnNumber:9},this)},i,!1,{fileName:X,lineNumber:123,columnNumber:7},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col ${Rt}`,children:[s.map(d),(0,R.jsxDEV)(wt,{onClick:()=>n([...s,{}]),children:i(`form.addRow`)},void 0,!1,{fileName:X,lineNumber:180,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:178,columnNumber:5},this)}function Zy({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Vt(),c=qy(i,t,e=>n(e));return c.mode===`view`?(0,R.jsxDEV)(tb,{group:e,value:c.value,onChange:e=>c.onChange(e),recordCtx:r,actions:c.actions},void 0,!1,{fileName:X,lineNumber:211,columnNumber:7},this):(0,R.jsxDEV)(`fieldset`,{className:`${Ut(s)} flex flex-col min-w-0 ${Rt}`,children:[(0,R.jsxDEV)(Lt,{as:`legend`,label:o(e.label),icon:Kt(e),actions:c.actions},void 0,!1,{fileName:X,lineNumber:222,columnNumber:7},this),(0,R.jsxDEV)(Xy,{group:e,value:c.value,onChange:e=>c.onChange(e),recordCtx:r},void 0,!1,{fileName:X,lineNumber:223,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:221,columnNumber:5},this)}var Qy=e=>`${Ut(e)} flex flex-col min-w-0 ${Rt}`,$y=new Set([`boolean`,`rating`]);function eb({sub:e,row:t,group:n,recordCtx:r,onChange:i}){let{t:o}=a();if(e.type.virtual&&e.type.prim===`lookup`){let r={key:e.key,...e.type},i=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t??``)])),a=n.fields.filter(e=>en(e)).map(e=>({key:e.key,...e.type}));return(0,R.jsxDEV)(`div`,{className:`flex flex-col min-w-0`,children:[e.type.label?(0,R.jsxDEV)(Gt,{label:o(e.type.label)},void 0,!1,{fileName:X,lineNumber:271,columnNumber:27},this):null,(0,R.jsxDEV)(`div`,{children:(0,R.jsxDEV)(jv,{lookupField:r,row:i,subs:a},void 0,!1,{fileName:X,lineNumber:273,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:272,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:270,columnNumber:7},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[e.type.label?(0,R.jsxDEV)(Gt,{label:o(e.type.label)},void 0,!1,{fileName:X,lineNumber:280,columnNumber:25},this):null,(0,R.jsxDEV)(Sr,{field:e.type,value:t[e.key]??``,mode:`view`,bare:!0,recordCtx:r,onChange:i},void 0,!1,{fileName:X,lineNumber:281,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:279,columnNumber:5},this)}function tb({group:e,value:t,onChange:n,recordCtx:r,actions:i}){let{t:o}=a(),s=Vt(),c=Array.isArray(t)?t:[];function l(e,t,r){n(c.map((n,i)=>i===e?{...n,[t]:r}:n))}return(0,R.jsxDEV)(`fieldset`,{className:Qy(s),children:[(0,R.jsxDEV)(Lt,{as:`legend`,label:o(e.label),icon:Kt(e),actions:i},void 0,!1,{fileName:X,lineNumber:322,columnNumber:7},this),(0,R.jsxDEV)(Jt,{depth:s+1,children:(0,R.jsxDEV)(`div`,{className:`flex flex-col ${Rt}`,children:c.map((t,n)=>(0,R.jsxDEV)(Yt,{children:(0,R.jsxDEV)(Rn,{scroll:e.display===`scroll`,items:e.fields.flatMap((i,a)=>an(i)?[{key:`brk-${n}-${a}`,break:!0,node:null}]:tn(i)?i.key==null&&i.display===`scroll`?[{key:i.label??`flow`,full:!0,node:(0,R.jsxDEV)(Rn,{scroll:!0,items:i.fields.flatMap(i=>en(i)?[{key:i.key,node:(0,R.jsxDEV)(eb,{sub:i,row:t,group:e,recordCtx:r,onChange:$y.has(i.type.kind)?e=>l(n,i.key,e):void 0},void 0,!1,{fileName:X,lineNumber:349,columnNumber:43},this)}]:[])},void 0,!1,{fileName:X,lineNumber:341,columnNumber:29},this)}]:[{key:i.key??i.label??`g`,full:i.kind!==`per-weekday`,node:(0,R.jsxDEV)(sb,{group:i,value:t[i.key],onChange:e=>l(n,i.key,e),recordCtx:r,mode:`view`},void 0,!1,{fileName:X,lineNumber:375,columnNumber:27},this)}]:en(i)?[{key:i.key,full:Jy(i.type),node:(0,R.jsxDEV)(eb,{sub:i,row:t,group:e,recordCtx:r,onChange:$y.has(i.type.kind)?e=>l(n,i.key,e):void 0},void 0,!1,{fileName:X,lineNumber:392,columnNumber:25},this)}]:[])},void 0,!1,{fileName:X,lineNumber:327,columnNumber:15},this)},n,!1,{fileName:X,lineNumber:326,columnNumber:13},this))},void 0,!1,{fileName:X,lineNumber:324,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:323,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:321,columnNumber:5},this)}var nb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/table-group.tsx`;function rb({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Ae(),c=Vt(),l=e.fields.filter(e=>en(e)||tn(e)&&!!e.kind),u=e=>e.key,d=e=>en(e)?e.type.label:e.label,f=e=>en(e)?{field:e.type}:{field:e,el:e},p=e=>en(e)&&e.type.prim===`text`,m=e.unique??[],h=qy(i,t,e=>n(e)),g=h.mode!==`view`,_=Array.isArray(h.value)?h.value:[],v=e=>h.onChange(e),y=(e,t,n)=>v(_.map((r,i)=>i===e?{...r,[t]:n}:r)),b=(0,R.jsxDEV)(`div`,{className:`overflow-x-auto`,children:[(0,R.jsxDEV)(`table`,{className:`w-full border-collapse text-sm`,children:[(0,R.jsxDEV)(`thead`,{children:(0,R.jsxDEV)(`tr`,{children:[l.map(e=>(0,R.jsxDEV)(`th`,{className:`text-left text-[11px] font-semibold text-muted uppercase px-2 py-1 ${p(e)?`w-full`:`whitespace-nowrap`}`,children:d(e)?o(d(e)):``},u(e),!1,{fileName:nb,lineNumber:68,columnNumber:11},this)),g&&(0,R.jsxDEV)(`th`,{className:`w-9`,"aria-hidden":!0},void 0,!1,{fileName:nb,lineNumber:75,columnNumber:20},this)]},void 0,!0,{fileName:nb,lineNumber:66,columnNumber:7},this)},void 0,!1,{fileName:nb,lineNumber:65,columnNumber:5},this),(0,R.jsxDEV)(`tbody`,{children:_.map((t,n)=>(0,R.jsxDEV)(`tr`,{className:`align-top`,children:[l.map(i=>(0,R.jsxDEV)(`td`,{className:`px-2 py-1 min-w-0`,children:(0,R.jsxDEV)(Sr,{...f(i),value:t[u(i)]??(en(i)?``:null),excludeValues:kt(_,m,u(i),n),onChange:e=>y(n,u(i),e),mode:g?`edit`:`view`,bare:!0,recordCtx:r,error:e.key?s([e.key,n,u(i)]):void 0},void 0,!1,{fileName:nb,lineNumber:86,columnNumber:15},this)},u(i),!1,{fileName:nb,lineNumber:85,columnNumber:13},this)),g&&(0,R.jsxDEV)(`td`,{className:`px-1 py-1 w-9`,children:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,size:`iconSm`,onClick:()=>v(_.filter((e,t)=>t!==n)),title:o(`actions.delete`),className:`rounded-lg text-muted hover:border-danger hover:text-danger`,children:(0,R.jsxDEV)(be,{size:14},void 0,!1,{fileName:nb,lineNumber:108,columnNumber:17},this)},void 0,!1,{fileName:nb,lineNumber:100,columnNumber:15},this)},void 0,!1,{fileName:nb,lineNumber:99,columnNumber:13},this)]},n,!0,{fileName:nb,lineNumber:83,columnNumber:9},this))},void 0,!1,{fileName:nb,lineNumber:81,columnNumber:5},this)]},void 0,!0,{fileName:nb,lineNumber:119,columnNumber:7},this),g&&(0,R.jsxDEV)(wt,{onClick:()=>v([..._,{}]),children:o(`form.addRow`)},void 0,!1,{fileName:nb,lineNumber:123,columnNumber:18},this)]},void 0,!0,{fileName:nb,lineNumber:118,columnNumber:5},this);return i===`view`?(0,R.jsxDEV)(`section`,{className:`${Ut(c)} flex flex-col gap-1 min-w-0`,children:[(0,R.jsxDEV)(Lt,{as:`h3`,label:o(e.label),icon:Kt(e),actions:h.actions},void 0,!1,{fileName:nb,lineNumber:134,columnNumber:7},this),(0,R.jsxDEV)(Jt,{depth:c+1,children:b},void 0,!1,{fileName:nb,lineNumber:135,columnNumber:7},this)]},void 0,!0,{fileName:nb,lineNumber:133,columnNumber:5},this):b}var ib=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/fixed-collection.tsx`;function ab({group:e,value:t,onChange:n,recordCtx:r,mode:i=`edit`}){let{t:o}=a(),s=Vt(),c=qy(i,t,e=>n(e)),l=c.mode!==`view`,u=e.fields[0],d=e.fields.slice(1).filter(e=>en(e)),f=u.type.options?.length?u.type.options:je(u.type.hints.source??``),p=Array.isArray(c.value)?c.value:[],m=f.map(e=>p.find(t=>String(t[u.key]??``)===String(e.value))??{[u.key]:e.value});function h(e){c.onChange(e.filter(e=>d.some(t=>e[t.key]!=null&&e[t.key]!==``)))}function g(e,t,n){h(m.map((r,i)=>i===e?{...r,[t]:n}:r))}return(0,R.jsxDEV)(`fieldset`,{className:`${Ut(s)} flex flex-col min-w-0 ${Rt}`,children:[(0,R.jsxDEV)(Lt,{as:`legend`,label:o(e.label),icon:Kt(e),actions:c.actions},void 0,!1,{fileName:ib,lineNumber:68,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col ${Rt}`,children:m.map((e,t)=>(0,R.jsxDEV)(Yt,{children:(0,R.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0 shrink-0`,children:[u.type.label?(0,R.jsxDEV)(Gt,{label:o(u.type.label)},void 0,!1,{fileName:ib,lineNumber:74,columnNumber:34},this):null,(0,R.jsxDEV)(`span`,{className:`text-sm px-1 py-1.5`,children:Mu(o,{options:f},String(e[u.key]??``))},void 0,!1,{fileName:ib,lineNumber:75,columnNumber:17},this)]},void 0,!0,{fileName:ib,lineNumber:73,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Rn,{items:d.map(n=>({key:n.key,full:Jy(n.type),node:l?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,R.jsxDEV)(Sr,{field:n.type,value:e[n.key]??``,onChange:e=>g(t,n.key,e),label:n.type.label?o(n.type.label):void 0,mode:`edit`,recordCtx:r},void 0,!1,{fileName:ib,lineNumber:87,columnNumber:27},this)},void 0,!1,{fileName:ib,lineNumber:86,columnNumber:25},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[n.type.label?(0,R.jsxDEV)(Gt,{label:o(n.type.label)},void 0,!1,{fileName:ib,lineNumber:102,columnNumber:45},this):null,(0,R.jsxDEV)(Sr,{field:n.type,value:e[n.key]??``,mode:`view`,bare:!0,recordCtx:r},void 0,!1,{fileName:ib,lineNumber:103,columnNumber:27},this)]},void 0,!0,{fileName:ib,lineNumber:101,columnNumber:25},this)}))},void 0,!1,{fileName:ib,lineNumber:80,columnNumber:17},this)},void 0,!1,{fileName:ib,lineNumber:79,columnNumber:15},this)]},void 0,!0,{fileName:ib,lineNumber:72,columnNumber:13},this)},String(e[u.key]),!1,{fileName:ib,lineNumber:71,columnNumber:11},this))},void 0,!1,{fileName:ib,lineNumber:69,columnNumber:7},this)]},void 0,!0,{fileName:ib,lineNumber:67,columnNumber:5},this)}var ob=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group-field.tsx`;function sb({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Ae();if($t(e)&&e.fixed)return(0,R.jsxDEV)(ab,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:ob,lineNumber:40,columnNumber:7},this);if($t(e)&&e.display===`table`)return(0,R.jsxDEV)(rb,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:ob,lineNumber:52,columnNumber:7},this);if($t(e))return(0,R.jsxDEV)(Zy,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:ob,lineNumber:65,columnNumber:7},this);if(sn(e)){let a=t??{},c=(e,t)=>n({...a,[e]:t}),l=e.fields.filter(e=>en(e));return(0,R.jsxDEV)(`fieldset`,{className:`flex flex-col min-w-0 ${Rt}`,children:[(0,R.jsxDEV)(Lt,{as:`legend`,label:o(e.label),icon:Kt(e)},void 0,!1,{fileName:ob,lineNumber:78,columnNumber:9},this),(0,R.jsxDEV)(Yt,{children:(0,R.jsxDEV)(Rn,{items:l.map(t=>({key:t.key,full:Jy(t.type),node:(0,R.jsxDEV)(Sr,{field:t.type,value:a[t.key]??``,onChange:e=>c(t.key,e),label:t.type.label?o(t.type.label):void 0,mode:i,recordCtx:r,error:e.key?s([e.key,t.key]):void 0},void 0,!1,{fileName:ob,lineNumber:87,columnNumber:17},this)}))},void 0,!1,{fileName:ob,lineNumber:82,columnNumber:11},this)},void 0,!1,{fileName:ob,lineNumber:81,columnNumber:9},this)]},void 0,!0,{fileName:ob,lineNumber:77,columnNumber:7},this)}return null}var cb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/storage-group.tsx`;function lb({el:e,value:t,onChange:n,recordCtx:r,mode:i}){return(0,R.jsxDEV)(sb,{group:e,value:t,onChange:e=>n?.(e),recordCtx:r,mode:i===`view`?`view`:`edit`},void 0,!1,{fileName:cb,lineNumber:14,columnNumber:5},this)}function ub({el:e,value:t,onChange:n,recordCtx:r,mode:i}){return(0,R.jsxDEV)(sb,{group:e,value:t,onChange:e=>n?.(e),recordCtx:r,mode:i===`view`?`view`:`edit`},void 0,!1,{fileName:cb,lineNumber:26,columnNumber:5},this)}I({kinds:[`collection`],layout:`block`,Page:lb}),I({kinds:[`embedded`],layout:`block`,Page:ub});var db=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/weekday-grid.tsx`,fb=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`];function pb({group:e,value:t,onChange:n,mode:r}){let{t:i}=a(),o=i(`weekdaysShort`,{returnObjects:!0}),s=Array.isArray(t)?t:[],c=new Map(s.map(e=>[e.day,Number(e.value)])),l=r!==`view`,u=e.fields.slice(1).find(e=>en(e)),d=u?.type.hints.min,f=u?.type.hints.max,p=u?.type.hints.step;function m(e,t){n(fb.flatMap(n=>{let r=n===e?t:c.get(n)??0;return r>0?[{day:n,value:r}]:[]}))}return!l&&!s.some(e=>Number(e.value)>0)?(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:db,lineNumber:50,columnNumber:66},this):(0,R.jsxDEV)(`div`,{className:`flex ${Wt}`,children:(0,R.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-1 w-full max-w-64`,children:fb.map((e,t)=>{let n=c.get(e)??0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col items-center gap-1 min-w-0`,children:[(0,R.jsxDEV)(`span`,{className:`text-[10px] text-muted`,children:o[t]},void 0,!1,{fileName:db,lineNumber:61,columnNumber:15},this),l?(0,R.jsxDEV)(E,{type:`number`,className:`w-full text-center px-1 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,min:d,max:f,step:p??`any`,value:c.get(e)||``,onChange:t=>m(e,Number(t.target.value)||0)},void 0,!1,{fileName:db,lineNumber:63,columnNumber:17},this):(0,R.jsxDEV)(`div`,{className:`h-9 w-full rounded-lg flex items-center justify-center text-sm font-semibold border ${n?`bg-accent/20 text-accent border-accent/30`:`bg-bg text-muted/30 border-border`}`,children:n||`·`},void 0,!1,{fileName:db,lineNumber:73,columnNumber:17},this)]},e,!0,{fileName:db,lineNumber:60,columnNumber:13},this)})},void 0,!1,{fileName:db,lineNumber:56,columnNumber:7},this)},void 0,!1,{fileName:db,lineNumber:55,columnNumber:5},this)}var mb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/url-widget.tsx`;function hb({value:e,onChange:t,mode:n}){let r=e??null;if(n===`view`){let e=Tn(r);return e?(0,R.jsxDEV)(`a`,{href:un(r),target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-accent hover:underline text-sm break-all`,children:[e,` `,(0,R.jsxDEV)(Es,{size:12},void 0,!1,{fileName:mb,lineNumber:34,columnNumber:16},this)]},void 0,!0,{fileName:mb,lineNumber:28,columnNumber:7},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:mb,lineNumber:26,columnNumber:23},this)}return(0,R.jsxDEV)(E,{type:`text`,inputMode:`url`,value:Tn(r),onChange:e=>t(wn(e.target.value))},void 0,!1,{fileName:mb,lineNumber:41,columnNumber:5},this)}var gb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/checklist-group.tsx`;function _b({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Ae(),c=Vt(),l=e.fields.filter(e=>en(e)&&e.key!==`text`),u=e.fields.find(e=>en(e)&&e.key===`text`),d=l.map(e=>e.type.label??``),f=Ct(d.length),p=qy(i,t,e=>n(e)),m=Array.isArray(p.value)?p.value:[],h=p.mode!==`view`,g=(e,t,n)=>p.onChange(m.map((r,i)=>i===e?{...r,[t]:n}:r)),_=(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,R.jsxDEV)(`ul`,{className:`flex flex-col gap-1.5`,children:m.map((t,n)=>(0,R.jsxDEV)(`li`,{className:`flex items-center gap-3.5 py-1 text-sm`,children:[l.map((i,a)=>(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 shrink-0`,children:[f&&(0,R.jsxDEV)(`span`,{className:`text-[10px] text-muted tabular-nums`,children:_t(a)},void 0,!1,{fileName:gb,lineNumber:58,columnNumber:30},this),(0,R.jsxDEV)(Sr,{field:i.type,value:t[i.key]??!1,onChange:e=>g(n,i.key,e),mode:h?`edit`:`view`,bare:!0,recordCtx:r,error:e.key?s([e.key,n,i.key]):void 0},void 0,!1,{fileName:gb,lineNumber:59,columnNumber:17},this)]},i.key,!0,{fileName:gb,lineNumber:57,columnNumber:15},this)),u&&(h?(0,R.jsxDEV)(E,{value:String(t[u.key]??``),onChange:e=>g(n,u.key,e.target.value),className:`min-w-0 flex-1`},void 0,!1,{fileName:gb,lineNumber:76,columnNumber:17},this):(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-text`,children:String(t[u.key]??``)||`—`},void 0,!1,{fileName:gb,lineNumber:82,columnNumber:17},this)),h&&(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,onClick:()=>p.onChange(m.filter((e,t)=>t!==n)),title:o(`actions.delete`),className:`h-5 w-5 shrink-0 rounded text-muted hover:text-danger`,children:(0,R.jsxDEV)(be,{size:12},void 0,!1,{fileName:gb,lineNumber:95,columnNumber:17},this)},void 0,!1,{fileName:gb,lineNumber:87,columnNumber:15},this)]},n,!0,{fileName:gb,lineNumber:55,columnNumber:11},this))},void 0,!1,{fileName:gb,lineNumber:53,columnNumber:7},this),h&&(0,R.jsxDEV)(wt,{onClick:()=>p.onChange([...m,{}]),children:o(`form.addRow`)},void 0,!1,{fileName:gb,lineNumber:102,columnNumber:22},this),(0,R.jsxDEV)(yt,{slots:d},void 0,!1,{fileName:gb,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:gb,lineNumber:52,columnNumber:5},this);return i===`view`?(0,R.jsxDEV)(`section`,{className:`${Ut(c)} flex flex-col gap-1 min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxDEV)(`h3`,{className:`text-[13px] font-semibold text-accent`,children:o(e.label)},void 0,!1,{fileName:gb,lineNumber:116,columnNumber:9},this),p.actions&&(0,R.jsxDEV)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:p.actions},void 0,!1,{fileName:gb,lineNumber:117,columnNumber:23},this)]},void 0,!0,{fileName:gb,lineNumber:115,columnNumber:7},this),(0,R.jsxDEV)(Jt,{depth:c+1,children:_},void 0,!1,{fileName:gb,lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:gb,lineNumber:114,columnNumber:5},this):_}var vb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group-widgets.tsx`;function yb({el:e,value:t,onChange:n,mode:r}){return(0,R.jsxDEV)(pb,{group:e,value:t,onChange:e=>n?.(e),mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:vb,lineNumber:17,columnNumber:5},this)}function bb({el:e,value:t,onChange:n,mode:r,bare:i}){let{t:o}=a(),s=e,c=(0,R.jsxDEV)(hb,{value:t,onChange:e=>n?.(e),mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:vb,lineNumber:24,columnNumber:18},this);return i?c:(0,R.jsxDEV)(`div`,{className:`group/field flex flex-col min-w-0 ${Rt}`,children:[s.label&&(0,R.jsxDEV)(Gt,{label:o(s.label)},void 0,!1,{fileName:vb,lineNumber:30,columnNumber:23},this),c]},void 0,!0,{fileName:vb,lineNumber:29,columnNumber:5},this)}function xb({el:e,value:t,onChange:n,recordCtx:r,mode:i}){return(0,R.jsxDEV)(_b,{group:e,value:t,onChange:e=>n?.(e),recordCtx:r,mode:i},void 0,!1,{fileName:vb,lineNumber:38,columnNumber:5},this)}I({kinds:[`per-weekday`],layout:`block`,Page:yb}),I({kinds:[`url`],layout:`block`,Page:bb}),I({kinds:[`checklist`],layout:`block`,Page:xb});var Sb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/actions/TemplateHost.tsx`,Cb=new Map;function wb(e){let t=An(e);if(!t)return null;let n=Cb.get(e);return n||(n=(0,L.lazy)(t),Cb.set(e,n)),n}var Tb=class extends L.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}},Eb=()=>(0,R.jsxDEV)(`span`,{className:`animate-spin inline-block w-4 h-4 border-2 border-current/30 border-t-current rounded-full`},void 0,!1,{fileName:Sb,lineNumber:22,columnNumber:3},void 0);function Db({name:e,data:t}){let{t:n}=a(),r=(0,R.jsxDEV)(R.Fragment,{children:n(`actions.notice`)},void 0,!1,{fileName:Sb,lineNumber:28,columnNumber:20},this),i=wb(e);return i?(0,R.jsxDEV)(Tb,{fallback:r,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(Eb,{},void 0,!1,{fileName:Sb,lineNumber:36,columnNumber:27},this),children:(0,R.jsxDEV)(i,{data:t,t:n},void 0,!1,{fileName:Sb,lineNumber:37,columnNumber:9},this)},void 0,!1,{fileName:Sb,lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:Sb,lineNumber:35,columnNumber:5},this):(console.warn(`[template] unknown '${e}'`),r)}var Ob=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/actions/PopupBody.tsx`;function kb({ui:e}){let{t}=a();return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(Tr,{children:e.title?t(e.title,e.params):t(`actions.notice`)},void 0,!1,{fileName:Ob,lineNumber:11,columnNumber:7},this),e.component?(0,R.jsxDEV)(Db,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Ob,lineNumber:13,columnNumber:9},this):(0,R.jsxDEV)(Or,{children:t(e.message??``,e.params)},void 0,!1,{fileName:Ob,lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:Ob,lineNumber:10,columnNumber:5},this)}var Ab=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/layout-elements.tsx`;function jb(e){return(0,R.jsxDEV)(`hr`,{className:`border-border`},void 0,!1,{fileName:Ab,lineNumber:17,columnNumber:10},this)}function Mb({el:e}){let{t}=a();return(0,R.jsxDEV)(De,{value:t(e.text)},void 0,!1,{fileName:Ab,lineNumber:22,columnNumber:10},this)}function Nb(e){let{t}=a(),n=e.el,r=e.recordCtx,[i,o]=(0,L.useState)(!1),[s,c]=(0,L.useState)(null),l=e=>{if(e.kind===`popup`){c(e);return}let n=e.component?(0,R.jsxDEV)(Db,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Ab,lineNumber:38,columnNumber:9},this):t(e.message??``,e.params);e.variant===`success`?y.success(n):e.variant===`error`?y.error(n):y(n)};return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,R.jsxDEV)(F,{variant:n.variant??`outline`,onClick:async()=>{let e=fs(n.value);if(!e){y.error(t(`actions.actionNotFound`));return}o(!0);try{let n=await e({library:r.library,shelf:r.shelf,recordId:r.recordId??``});n?l(n):y.success(t(`actions.actionSuccess`))}catch(e){let n=e.ui;n?l(n):y.error(e instanceof Error?e.message:t(`actions.actionError`))}finally{o(!1)}},disabled:i,className:`max-w-full min-w-0`,children:[i?(0,R.jsxDEV)(`span`,{className:`animate-spin inline-block w-4 h-4 border-2 border-current/30 border-t-current rounded-full`},void 0,!1,{fileName:Ab,lineNumber:69,columnNumber:11},this):n.icon&&(0,R.jsxDEV)(Te,{name:n.icon,size:16},void 0,!1,{fileName:Ab,lineNumber:71,columnNumber:22},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:t(n.label)},void 0,!1,{fileName:Ab,lineNumber:73,columnNumber:9},this)]},void 0,!0,{fileName:Ab,lineNumber:67,columnNumber:7},this),(0,R.jsxDEV)(kr,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,R.jsxDEV)(Dr,{children:(0,R.jsxDEV)(Er,{children:s&&(0,R.jsxDEV)(kb,{ui:s},void 0,!1,{fileName:Ab,lineNumber:78,columnNumber:23},this)},void 0,!1,{fileName:Ab,lineNumber:77,columnNumber:11},this)},void 0,!1,{fileName:Ab,lineNumber:76,columnNumber:9},this)},void 0,!1,{fileName:Ab,lineNumber:75,columnNumber:7},this)]},void 0,!0,{fileName:Ab,lineNumber:66,columnNumber:5},this)}function Pb({el:e,children:t}){let{t:n}=a(),r=e;return(0,R.jsxDEV)(Me,{label:r.label?n(r.label):void 0,icon:Kt(r),children:t},void 0,!1,{fileName:Ab,lineNumber:93,columnNumber:5},this)}I({kinds:[`divider`],layout:`block`,Page:jb}),I({kinds:[`info`],layout:`block`,Page:Mb}),I({kinds:[`button`],layout:`scalar`,Page:Nb}),I({kinds:[`group`],layout:`block`,Page:Pb});var Fb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/tristate.tsx`,Ib={unknown:`yes`,yes:`no`,no:`unknown`},Lb={yes:!0,no:!1,unknown:`indeterminate`};function Rb({value:e,onChange:t,label:n}){let{saving:r}=iv(),i=e||`unknown`;return(0,R.jsxDEV)(te,{checked:Lb[i],disabled:r,onCheckedChange:()=>t?.(Ib[i]),"aria-label":n,className:C(`peer h-4.5 w-4.5 shrink-0 rounded border border-input bg-background ring-offset-background transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,`data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,`data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground`),children:(0,R.jsxDEV)(ae,{className:`flex items-center justify-center text-current`,children:i===`yes`?(0,R.jsxDEV)(et,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:Fb,lineNumber:37,columnNumber:26},this):(0,R.jsxDEV)(ve,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:Fb,lineNumber:37,columnNumber:78},this)},void 0,!1,{fileName:Fb,lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:Fb,lineNumber:24,columnNumber:5},this)}function zb(e){let t=(0,R.jsxDEV)(Rb,{value:String(e.value??``),onChange:t=>e.onChange?.(t),label:e.label},void 0,!1,{fileName:Fb,lineNumber:44,columnNumber:15},this);return e.bare?t:(0,R.jsxDEV)(`div`,{className:`group/field`,children:[e.label!==void 0&&(0,R.jsxDEV)(Gt,{label:e.label,required:e.required},void 0,!1,{fileName:Fb,lineNumber:48,columnNumber:33},this),t,(0,R.jsxDEV)(It,{error:e.error},void 0,!1,{fileName:Fb,lineNumber:50,columnNumber:7},this)]},void 0,!0,{fileName:Fb,lineNumber:47,columnNumber:5},this)}var Bb={yes:et,unknown:ve,no:w};function Vb({value:e}){let t=String(e??`unknown`);return(0,R.jsxDEV)(Bb[t]??ve,{size:16,className:t===`yes`?`text-accent`:t===`no`?`text-danger`:`text-muted`},void 0,!1,{fileName:Fb,lineNumber:60,columnNumber:10},this)}I({kinds:[`triState`],Page:zb,Inline:Vb});var Hb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/money.tsx`;function Ub(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function Wb(e){if(e.value==null||!e.currency)return``;try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:e.currency}).format(e.value)}catch{return`${e.value} ${rn(e.currency)}`}}function Gb({field:e,value:t,onChange:n}){let r=(0,L.useMemo)(()=>Ub(t),[t]),i=e.hints.defaultCurrency??`USD`,a=r.currency??i,o=e=>n(e.value==null?``:{value:e.value,currency:e.currency});return(0,R.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,R.jsxDEV)(iu,{customInput:E,className:`flex-1 min-w-0`,value:r.value??``,thousandSeparator:!0,decimalScale:2,min:e.hints.min,max:e.hints.max,placeholder:`0.00`,onValueChange:e=>o({value:e.value===``?void 0:e.floatValue,currency:a})},void 0,!1,{fileName:Hb,lineNumber:43,columnNumber:7},this),(0,R.jsxDEV)(nt,{value:a,onValueChange:e=>o({value:r.value,currency:e}),children:[(0,R.jsxDEV)(it,{className:`w-28`,children:(0,R.jsxDEV)(rt,{},void 0,!1,{fileName:Hb,lineNumber:58,columnNumber:11},this)},void 0,!1,{fileName:Hb,lineNumber:57,columnNumber:9},this),(0,R.jsxDEV)(Dt,{children:Qt.map(e=>(0,R.jsxDEV)(st,{value:e,children:[rn(e),` `,e]},e,!0,{fileName:Hb,lineNumber:62,columnNumber:13},this))},void 0,!1,{fileName:Hb,lineNumber:60,columnNumber:9},this)]},void 0,!0,{fileName:Hb,lineNumber:56,columnNumber:7},this)]},void 0,!0,{fileName:Hb,lineNumber:42,columnNumber:5},this)}function Kb({value:e}){let t=Wb(Ub(e));return t?(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:t},void 0,!1,{fileName:Hb,lineNumber:74,columnNumber:14},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Hb,lineNumber:74,columnNumber:58},this)}function qb(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,R.jsxDEV)(Kb,{value:e},void 0,!1,{fileName:Hb,lineNumber:90,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Gb,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Hb,lineNumber:92,columnNumber:9},this)},void 0,!1,{fileName:Hb,lineNumber:79,columnNumber:5},this)}function Jb({value:e}){return(0,R.jsxDEV)(Kb,{value:e},void 0,!1,{fileName:Hb,lineNumber:99,columnNumber:10},this)}function Yb(e){let t=Ub(e);return t.currency?[{value:t.currency,rawValue:t,label:rn(t.currency)}]:[]}I({kinds:[`money`],Page:qb,Inline:Jb,keys:Yb});var Xb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/range.tsx`;function Zb(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function Qb({field:e,value:t,onChange:n}){let r=(0,L.useMemo)(()=>Zb(t),[t]),i=e.hints,a=e=>e===``?void 0:Number(e),o=e=>n(e.from==null&&e.to==null?``:{from:e.from,to:e.to});return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,R.jsxDEV)(E,{type:`number`,className:`flex-1 min-w-0`,placeholder:`від`,value:r.from??``,min:i.min,max:i.max,step:i.step,onChange:e=>o({from:a(e.target.value),to:r.to})},void 0,!1,{fileName:Xb,lineNumber:32,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`–`},void 0,!1,{fileName:Xb,lineNumber:42,columnNumber:7},this),(0,R.jsxDEV)(E,{type:`number`,className:`flex-1 min-w-0`,placeholder:`до`,value:r.to??``,min:i.min,max:i.max,step:i.step,onChange:e=>o({from:r.from,to:a(e.target.value)})},void 0,!1,{fileName:Xb,lineNumber:43,columnNumber:7},this)]},void 0,!0,{fileName:Xb,lineNumber:31,columnNumber:5},this)}function $b({value:e}){let t=Zb(e);return t.from==null&&t.to==null?(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:Xb,lineNumber:59,columnNumber:46},this):(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:[t.from??`…`,`–`,t.to??`…`]},void 0,!0,{fileName:Xb,lineNumber:61,columnNumber:5},this)}function ex(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,R.jsxDEV)($b,{value:e},void 0,!1,{fileName:Xb,lineNumber:80,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Qb,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Xb,lineNumber:82,columnNumber:9},this)},void 0,!1,{fileName:Xb,lineNumber:69,columnNumber:5},this)}function tx({value:e}){return(0,R.jsxDEV)($b,{value:e},void 0,!1,{fileName:Xb,lineNumber:89,columnNumber:10},this)}I({kinds:[`numberRange`,`realRange`],Page:ex,Inline:tx}),nx.displayName=`clike`,nx.aliases=[];function nx(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}rx.displayName=`c`,rx.aliases=[];function rx(e){e.register(nx),e.languages.c=e.languages.extend(`clike`,{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore(`c`,`string`,{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore(`c`,`string`,{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:`property`,inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:`function`}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:`keyword`},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore(`c`,`function`,{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}ix.displayName=`cpp`,ix.aliases=[];function ix(e){e.register(rx),(function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=`\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b`.replace(/<keyword>/g,function(){return t.source});e.languages.cpp=e.languages.extend(`c`,{"class-name":[{pattern:RegExp(`(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+`.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore(`cpp`,`string`,{module:{pattern:RegExp(`(\\b(?:import|module)\\s+)(?:"(?:\\\\(?:\\r\\n|[\\s\\S])|[^"\\\\\\r\\n])*"|<[^<>\\r\\n]*>|`+`<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>`.replace(/<mod-name>/g,function(){return n})+`)`),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:`string`,greedy:!0}}),e.languages.insertBefore(`cpp`,`keyword`,{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:e.languages.cpp}}}}),e.languages.insertBefore(`cpp`,`operator`,{"double-colon":{pattern:/::/,alias:`punctuation`}}),e.languages.insertBefore(`cpp`,`class-name`,{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend(`cpp`,{})}}),e.languages.insertBefore(`inside`,`double-colon`,{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp[`base-clause`])})(e)}ax.displayName=`arduino`,ax.aliases=[`ino`];function ax(e){e.register(ix),e.languages.arduino=e.languages.extend(`cpp`,{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),e.languages.ino=e.languages.arduino}ox.displayName=`bash`,ox.aliases=[`sh`,`shell`];function ox(e){(function(e){var t=`\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b`,n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:`punctuation`,inside:null},r={bash:n,environment:{pattern:RegExp(`\\$`+t),alias:`constant`},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp(`(\\{)`+t),lookbehind:!0,alias:`constant`}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:`important`},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:`function`},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:`function`}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:`variable`,lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp(`(^|[\\s;|&]|[<>]\\()`+t),lookbehind:!0,alias:`constant`}},alias:`variable`,lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:`variable`,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp(`\\$?`+t),alias:`constant`},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:`class-name`},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:`important`},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:`important`}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=[`comment`,`function-name`,`for-or-select`,`assign-left`,`parameter`,`string`,`environment`,`function`,`keyword`,`builtin`,`boolean`,`file-descriptor`,`operator`,`punctuation`,`number`],a=r.variable[1].inside,o=0;o<i.length;o++)a[i[o]]=e.languages.bash[i[o]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash})(e)}sx.displayName=`csharp`,sx.aliases=[`cs`,`dotnet`];function sx(e){e.register(nx),(function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,function(e,n){return`(?:`+t[+n]+`)`})}function n(e,n,r){return RegExp(t(e,n),r||``)}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,function(){return`(?:`+e+`)`});return e.replace(/<<self>>/g,`[^\\s\\S]`)}var i={type:`bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void`,typeDeclaration:`class enum interface record struct`,contextual:`add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)`,other:`abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield`};function a(e){return`\\b(?:`+e.trim().replace(/ /g,`|`)+`)\\b`}var o=a(i.typeDeclaration),s=RegExp(a(i.type+` `+i.typeDeclaration+` `+i.contextual+` `+i.other)),c=a(i.typeDeclaration+` `+i.contextual+` `+i.other),l=a(i.type+` `+i.typeDeclaration+` `+i.other),u=r(`<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>`,2),d=r(`\\((?:[^()]|<<self>>)*\\)`,2),f=`@?\\b[A-Za-z_]\\w*\\b`,p=t(`<<0>>(?:\\s*<<1>>)?`,[f,u]),m=t(`(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*`,[c,p]),h=`\\[\\s*(?:,\\s*)*\\]`,g=t(`<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?`,[m,h]),_=t(`(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?`,[t(`\\(<<0>>+(?:,<<0>>+)+\\)`,[t(`[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>`,[u,d,h])]),m,h]),v={keyword:s,punctuation:/[<>()?,.:[\]]/},y=`'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'`,b=`"(?:\\\\.|[^\\\\"\\r\\n])*"`,x=`@"(?:""|\\\\[\\s\\S]|[^\\\\"])*"(?!")`;e.languages.csharp=e.languages.extend(`clike`,{string:[{pattern:n(`(^|[^$\\\\])<<0>>`,[x]),lookbehind:!0,greedy:!0},{pattern:n(`(^|[^@$\\\\])<<0>>`,[b]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(`(\\busing\\s+static\\s+)<<0>>(?=\\s*;)`,[m]),lookbehind:!0,inside:v},{pattern:n(`(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)`,[f,_]),lookbehind:!0,inside:v},{pattern:n(`(\\busing\\s+)<<0>>(?=\\s*=)`,[f]),lookbehind:!0},{pattern:n(`(\\b<<0>>\\s+)<<1>>`,[o,p]),lookbehind:!0,inside:v},{pattern:n(`(\\bcatch\\s*\\(\\s*)<<0>>`,[m]),lookbehind:!0,inside:v},{pattern:n(`(\\bwhere\\s+)<<0>>`,[f]),lookbehind:!0},{pattern:n(`(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>`,[g]),lookbehind:!0,inside:v},{pattern:n(`\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))`,[_,l,f]),inside:v}],keyword:s,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore(`csharp`,`number`,{range:{pattern:/\.\./,alias:`operator`}}),e.languages.insertBefore(`csharp`,`punctuation`,{"named-parameter":{pattern:n(`([(,]\\s*)<<0>>(?=\\s*:)`,[f]),lookbehind:!0,alias:`punctuation`}}),e.languages.insertBefore(`csharp`,`class-name`,{namespace:{pattern:n(`(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])`,[f]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(`(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))`,[d]),lookbehind:!0,alias:`class-name`,inside:v},"return-type":{pattern:n(`<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))`,[_,m]),inside:v,alias:`class-name`},"constructor-invocation":{pattern:n(`(\\bnew\\s+)<<0>>(?=\\s*[[({])`,[_]),lookbehind:!0,inside:v,alias:`class-name`},"generic-method":{pattern:n(`<<0>>\\s*<<1>>(?=\\s*\\()`,[f,u]),inside:{function:n(`^<<0>>`,[f]),generic:{pattern:RegExp(u),alias:`class-name`,inside:v}}},"type-list":{pattern:n(`\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))`,[o,p,f,_,s.source,d,`\\bnew\\s*\\(\\s*\\)`]),lookbehind:!0,inside:{"record-arguments":{pattern:n(`(^(?!new\\s*\\()<<0>>\\s*)<<1>>`,[p,d]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:s,"class-name":{pattern:RegExp(_),greedy:!0,inside:v},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:`property`,inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:`keyword`}}}});var S=b+`|`+y,C=t(`\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>`,[S]),w=r(t(`[^"'/()]|<<0>>|\\(<<self>>*\\)`,[C]),2),T=`\\b(?:assembly|event|field|method|module|param|property|return|type)\\b`,E=t(`<<0>>(?:\\s*\\(<<1>>*\\))?`,[m,w]);e.languages.insertBefore(`csharp`,`class-name`,{attribute:{pattern:n(`((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])`,[T,E]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(`^<<0>>(?=\\s*:)`,[T]),alias:`keyword`},"attribute-arguments":{pattern:n(`\\(<<0>>*\\)`,[w]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var D=`:[^}\\r\\n]+`,O=r(t(`[^"'/()]|<<0>>|\\(<<self>>*\\)`,[C]),2),k=t(`\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}`,[O,D]),A=r(t(`[^"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)`,[S]),2),ee=t(`\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}`,[A,D]);function te(t,r){return{interpolation:{pattern:n(`((?:^|[^{])(?:\\{\\{)*)<<0>>`,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(`(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)`,[r,D]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:`language-csharp`,inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore(`csharp`,`string`,{"interpolation-string":[{pattern:n(`(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{"])*"`,[k]),lookbehind:!0,greedy:!0,inside:te(k,O)},{pattern:n(`(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"`,[ee]),lookbehind:!0,greedy:!0,inside:te(ee,A)}],char:{pattern:RegExp(y),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp})(e)}cx.displayName=`markup`,cx.aliases=[`atom`,`html`,`mathml`,`rss`,`ssml`,`svg`,`xml`];function cx(e){e.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:`attr-equals`},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:`named-entity`},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside[`attr-value`].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside[`internal-subset`].inside=e.languages.markup,e.hooks.add(`wrap`,function(e){e.type===`entity`&&(e.attributes.title=e.content.value.replace(/&/,`&`))}),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(t,n){var r={};r[`language-`+n]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i[`language-`+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var a={};a[t]={pattern:RegExp(`(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)`.replace(/__/g,function(){return t}),`i`),lookbehind:!0,greedy:!0,inside:i},e.languages.insertBefore(`markup`,`cdata`,a)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,n){e.languages.markup.tag.inside[`special-attr`].push({pattern:RegExp(`(^|["'\\s])(?:`+t+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,`i`),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,`language-`+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend(`markup`,{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}lx.displayName=`css`,lx.aliases=[];function lx(e){(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+t.source+`)*?(?:;|(?=\\s*\\{))`),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:`selector`},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp(`\\burl\\((?:`+t.source+`|(?:[^\\\\\\r\\n()"']|\\\\[\\s\\S])*)\\)`,`i`),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp(`^`+t.source+`$`),alias:`url`}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+`)*(?=\\s*\\{)`),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(`style`,`css`),n.tag.addAttribute(`style`,`css`))})(e)}ux.displayName=`diff`,ux.aliases=[];function ux(e){(function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":`-`,"deleted-arrow":`<`,"inserted-sign":`+`,"inserted-arrow":`>`,unchanged:` `,diff:`!`};Object.keys(t).forEach(function(n){var r=t[n],i=[];/^\w+$/.test(n)||i.push(/\w+/.exec(n)[0]),n===`diff`&&i.push(`bold`),e.languages.diff[n]={pattern:RegExp(`^(?:[`+r+`].*(?:\r
|
|
57
|
+
`),a=!1),Object.assign(Object.assign({},e),{allowNegative:a})}function Zl(e){e=Xl(e),e.decimalSeparator,e.allowedDecimalSeparators,e.thousandsGroupStyle;var t=e.suffix,n=e.allowNegative,r=e.allowLeadingZeros,i=e.onKeyDown;i===void 0&&(i=fl);var a=e.onBlur;a===void 0&&(a=fl);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=ul(e,[`decimalSeparator`,`allowedDecimalSeparators`,`thousandsGroupStyle`,`suffix`,`allowNegative`,`allowLeadingZeros`,`onKeyDown`,`onBlur`,`thousandSeparator`,`decimalScale`,`fixedDecimalScale`,`prefix`,`defaultValue`,`value`,`valueIsNumericString`,`onValueChange`]),h=Wl(e),g=h.decimalSeparator,_=h.allowedDecimalSeparators,v=function(t){return Ul(t,e)},y=function(t,n){return Jl(t,n,e)},b=hl(d)?u:d,x=f??ql(b,l,t);hl(d)?hl(u)||(x||=typeof u==`number`):x||=typeof d==`number`;var S=function(e){return _l(e)?e:(typeof e==`number`&&(e=El(e)),x&&typeof s==`number`?Dl(e,s,!!c):e)},C=zl(S(d),S(u),!!x,v,y,p),w=C[0],T=w.numAsString,E=w.formattedValue,D=C[1];return Object.assign(Object.assign({},m),{value:E,valueIsNumericString:!1,isValidInputCharacter:function(e){return e===g||ml(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=kl(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:D,format:v,removeFormatting:y,getCaretBoundary:function(t){return Yl(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&&Ol(t,1),s&&c&&(r===`Backspace`&&d[a-1]===g?(Ol(t,a-1),e.preventDefault()):r===`Delete`&&d[a]===g&&e.preventDefault()),_?.includes(r)&&d[a]===g&&Ol(t,a+1);var f=o===!0?`,`:o;r===`Backspace`&&d[a-1]===f&&Ol(t,a-1),r===`Delete`&&d[a]===f&&Ol(t,a+1),i(e)},onBlur:function(t){var n=T;n.match(/\d/g)||(n=``),r||(n=Cl(n)),c&&s&&(n=Dl(n,s,c)),n!==T&&D({formattedValue:Ul(n,e),value:n,floatValue:parseFloat(n)},{event:t,source:dl.event}),a(t)}})}function Ql(e){var t=Zl(e);return L.createElement(Hl,Object.assign({},t))}var $l=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/visually-hidden-input.tsx`;function eu(e){let{control:t,value:n,checked:r,bubbles:i=!0,type:a=`hidden`,style:o,...s}=e,c=L.useMemo(()=>a===`checkbox`||a===`radio`||a===`switch`,[a]),l=L.useRef(null),u=L.useRef({value:c?r:n,previous:c?r:n}),d=L.useMemo(()=>{let e=c?r:n;return u.current.value!==e&&(u.current.previous=u.current.value,u.current.value=e),u.current.previous},[c,n,r]),[f,p]=L.useState({});L.useLayoutEffect(()=>{if(!t){p({});return}if(p({width:t.offsetWidth,height:t.offsetHeight}),typeof window>`u`)return;let e=new ResizeObserver(e=>{if(!Array.isArray(e)||!e.length)return;let n=e[0];if(!n)return;let r,i;if(`borderBoxSize`in n){let e=n.borderBoxSize,t=Array.isArray(e)?e[0]:e;r=t.inlineSize,i=t.blockSize}else r=t.offsetWidth,i=t.offsetHeight;p({width:r,height:i})});return e.observe(t,{box:`border-box`}),()=>{e.disconnect()}},[t]),L.useEffect(()=>{let e=l.current;if(!e)return;let t=window.HTMLInputElement.prototype,a=c?`checked`:`value`,o=c?`click`:`input`,s=c?r:n,u=c?r:typeof n==`object`&&n?JSON.stringify(n):n,f=Object.getOwnPropertyDescriptor(t,a)?.set;if(d!==s&&f){let t=new Event(o,{bubbles:i});f.call(e,u),e.dispatchEvent(t)}},[d,n,r,i,c]);let m=L.useMemo(()=>({...o,...f.width!==void 0&&f.height!==void 0?f:{},border:0,clip:`rect(0 0 0 0)`,clipPath:`inset(50%)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,whiteSpace:`nowrap`,width:`1px`}),[o,f]);return(0,R.jsxDEV)(`input`,{type:a,...s,ref:l,"aria-hidden":c,tabIndex:-1,defaultChecked:c?r:void 0,style:m},void 0,!1,{fileName:$l,lineNumber:148,columnNumber:5},this)}var tu=typeof window<`u`?L.useLayoutEffect:L.useEffect;function nu(e){let t=L.useRef(e);return tu(()=>{t.current=e}),t}function ru(e){let t=L.useRef(null);return t.current===null&&(t.current=e()),t}var iu=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/rating.tsx`,au=`Rating`,ou=`RatingItem`,su=`ratingFocusGroup.onEntryFocus`,cu={bubbles:!1,cancelable:!0};function lu(e,t){return`${e}-item-${t}`}function uu(e,t){return`partial-fill-gradient-${e}-${t}`}var du={ArrowLeft:`prev`,ArrowUp:`prev`,ArrowRight:`next`,ArrowDown:`next`,Home:`first`,End:`last`};function fu(e,t){return t===`rtl`?e===`ArrowLeft`?`ArrowRight`:e===`ArrowRight`?`ArrowLeft`:e:e}function pu(e,t,n){let r=fu(e.key,t);if(!(n===`horizontal`&&[`ArrowUp`,`ArrowDown`].includes(r))&&!(n===`vertical`&&[`ArrowLeft`,`ArrowRight`].includes(r)))return du[r]}function mu(e,t=!1){let n=document.activeElement;for(let r of e){let e=r.current;if(e&&(e===n||(e.focus({preventScroll:t}),document.activeElement!==n)))return}}var hu=L.createContext(null);function gu(e){let t=L.useContext(hu);if(!t)throw Error(`\`${e}\` must be used within \`${au}\``);return t}function _u(e,t){let n=L.useContext(hu),r=t??n;if(!r)throw Error(`\`useStore\` must be used within \`${au}\``);let i=L.useCallback(()=>e(r.getState()),[r,e]);return L.useSyncExternalStore(r.subscribe,i,i)}var vu=L.createContext(null);function yu(e){let t=L.useContext(vu);if(!t)throw Error(`\`${e}\` must be used within \`${au}\``);return t}var bu=L.createContext(null);function xu(e){let t=L.useContext(bu);if(!t)throw Error(`\`${e}\` must be used within \`FocusProvider\``);return t}function Su(e){let{value:t,defaultValue:n=0,onValueChange:r,onHover:i,onFocus:a,onMouseDown:o,dir:s,orientation:c=`horizontal`,activationMode:l=`automatic`,size:u=`default`,max:d=5,step:f=1,clearable:p=!1,asChild:m,disabled:h=!1,readOnly:g=!1,required:_=!1,className:v,id:y,name:b,ref:x,...S}=e,w=oe(s),T=L.useId(),E=y??T,D=ru(()=>new Set),O=ru(()=>({value:t??n,hoveredValue:null})),k=nu({onValueChange:r,onHover:i,onFocus:a,onMouseDown:o,step:f}),A=L.useMemo(()=>({subscribe:e=>(D.current.add(e),()=>D.current.delete(e)),getState:()=>O.current,setState:(e,t)=>{Object.is(O.current[e],t)||(e===`value`&&typeof t==`number`?(O.current.value=t,k.current.onValueChange?.(t)):e===`hoveredValue`?(O.current.hoveredValue=t,k.current.onHover?.(t)):O.current[e]=t,A.notify())},notify:()=>{for(let e of D.current)e()}}),[D,O,k]);tu(()=>{t!==void 0&&A.setState(`value`,t)},[t]);let ee=_u(e=>e.value,A),[te,ne]=L.useState(null),j=Ms(x,e=>ne(e)),M=!te||!!te.closest(`form`),[re,ae]=L.useState(null),[se,ce]=L.useState(!1),[le,ue]=L.useState(0),N=L.useRef(!1),P=L.useRef(new Map),de=L.useRef(new Map),fe=L.useRef(0),pe=L.useCallback(e=>{let t=de.current.get(e);if(t!==void 0)return t;let n=fe.current++;return de.current.set(e,n),n},[]),me=L.useCallback(e=>{ae(e)},[]),he=L.useCallback(()=>{ce(!0)},[]),ge=L.useCallback(()=>{ue(e=>e+1)},[]),_e=L.useCallback(()=>{ue(e=>e-1)},[]),ve=L.useCallback(e=>{P.current.set(e.id,e)},[]),ye=L.useCallback(e=>{P.current.delete(e)},[]),be=L.useCallback(()=>Array.from(P.current.values()).filter(e=>e.ref.current).sort((e,t)=>{let n=e.ref.current,r=t.ref.current;if(!n||!r)return 0;let i=n.compareDocumentPosition(r);return i&Node.DOCUMENT_POSITION_FOLLOWING?-1:i&Node.DOCUMENT_POSITION_PRECEDING?1:0}),[]),xe=L.useCallback(e=>{S.onBlur?.(e),!e.defaultPrevented&&ce(!1)},[S.onBlur]),Se=L.useCallback(e=>{if(k.current.onFocus?.(e),e.defaultPrevented)return;let t=!N.current;if(e.target===e.currentTarget&&t&&!se){let t=new CustomEvent(su,cu);if(e.currentTarget.dispatchEvent(t),!t.defaultPrevented){let e=Array.from(P.current.values()).filter(e=>!e.disabled);mu([k.current.step<1?e.find(e=>e.value===Math.ceil(ee)):e.find(e=>e.value===ee),e.find(e=>e.id===re),...e].filter(Boolean).map(e=>e.ref),!1)}}N.current=!1},[k,se,ee,re]),Ce=L.useCallback(e=>{k.current.onMouseDown?.(e),!e.defaultPrevented&&(N.current=!0)},[k]),we=L.useMemo(()=>({rootId:E,dir:w,orientation:c,activationMode:l,disabled:h,readOnly:g,size:u,max:d,step:f,clearable:p,getAutoIndex:pe}),[E,w,c,l,h,g,u,d,f,p,pe]),Te=L.useMemo(()=>({tabStopId:re,onItemFocus:me,onItemShiftTab:he,onFocusableItemAdd:ge,onFocusableItemRemove:_e,onItemRegister:ve,onItemUnregister:ye,getItems:be}),[re,me,he,ge,_e,ve,ye,be]),Ee=m?ie:`div`;return(0,R.jsxDEV)(hu.Provider,{value:A,children:(0,R.jsxDEV)(vu.Provider,{value:we,children:(0,R.jsxDEV)(bu.Provider,{value:Te,children:[(0,R.jsxDEV)(Ee,{id:E,role:`radiogroup`,"aria-orientation":c,"data-disabled":h?``:void 0,"data-readonly":g?``:void 0,"data-orientation":c,"data-slot":`rating`,dir:w,tabIndex:se||le===0?-1:0,...S,ref:j,className:C(`flex gap-1 text-primary outline-none`,c===`horizontal`?`flex-row items-center`:`flex-col items-start`,v),onBlur:xe,onFocus:Se,onMouseDown:Ce},void 0,!1,{fileName:iu,lineNumber:466,columnNumber:11},this),(0,R.jsxDEV)(`svg`,{width:`0`,height:`0`,style:{position:`absolute`},children:(0,R.jsxDEV)(`defs`,{children:(0,R.jsxDEV)(`linearGradient`,{id:uu(E,f),children:w===`rtl`?(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`transparent`},void 0,!1,{fileName:iu,lineNumber:494,columnNumber:21},this),(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`currentColor`},void 0,!1,{fileName:iu,lineNumber:495,columnNumber:21},this)]},void 0,!0,{fileName:iu,lineNumber:493,columnNumber:19},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`currentColor`},void 0,!1,{fileName:iu,lineNumber:499,columnNumber:21},this),(0,R.jsxDEV)(`stop`,{offset:`50%`,stopColor:`transparent`},void 0,!1,{fileName:iu,lineNumber:500,columnNumber:21},this)]},void 0,!0,{fileName:iu,lineNumber:498,columnNumber:19},this)},void 0,!1,{fileName:iu,lineNumber:491,columnNumber:15},this)},void 0,!1,{fileName:iu,lineNumber:490,columnNumber:13},this)},void 0,!1,{fileName:iu,lineNumber:489,columnNumber:11},this),M&&(0,R.jsxDEV)(eu,{type:`hidden`,control:te,name:b,value:ee,disabled:h,readOnly:g,required:_},void 0,!1,{fileName:iu,lineNumber:507,columnNumber:13},this)]},void 0,!0,{fileName:iu,lineNumber:465,columnNumber:9},this)},void 0,!1,{fileName:iu,lineNumber:464,columnNumber:7},this)},void 0,!1,{fileName:iu,lineNumber:463,columnNumber:5},this)}function Cu(e){let{index:t,asChild:n,onClick:r,onFocus:i,onKeyDown:a,onMouseDown:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l,disabled:u,className:d,children:f,ref:p,...m}=e,h=L.useRef(null),g=Ms(p,h),_=yu(ou),v=L.useId(),y=L.useMemo(()=>t===void 0?_.getAutoIndex(v):t,[t,_,v])+1,b=gu(ou),x=xu(ou),S=_u(e=>e.value),w=_u(e=>e.hoveredValue),T=_.clearable,E=_.step,D=_.activationMode,O=lu(_.rootId,y),k=_.disabled||u,A=_.readOnly,ee=x.tabStopId===O,te=w??S,ne=te>=y,j=E<1&&te>=y-E&&te<y,M=w!==null&&w<y,re=L.useRef(!1),ae=nu({onClick:r,onFocus:i,onKeyDown:a,onMouseDown:o,onMouseEnter:s,onMouseMove:c,onMouseLeave:l});tu(()=>(x.onItemRegister({id:O,ref:h,value:y,disabled:!!k}),k||x.onFocusableItemAdd(),()=>{x.onItemUnregister(O),k||x.onFocusableItemRemove()}),[x,O,y,k]);let oe=L.useCallback(e=>{if(ae.current.onClick?.(e),!e.defaultPrevented&&!k&&!A){let t=y;if(E<1){let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left<n.width/2;_.dir===`rtl`?r||(t=y-E):r&&(t=y-E)}T&&S===t&&(t=0),b.setState(`value`,t)}},[k,A,T,E,S,y,b,_.dir,ae]),se=L.useCallback(e=>{if(ae.current.onFocus?.(e),e.defaultPrevented)return;x.onItemFocus(O);let t=!re.current;if(!k&&!A&&D!==`manual`&&t&&!(E<1&&S===y-E)){let e=T&&S===y?0:y;b.setState(`value`,e)}re.current=!1},[x,O,D,k,A,T,S,y,E,b,ae]),ce=L.useCallback(e=>{if(ae.current.onKeyDown?.(e),e.defaultPrevented)return;if((e.key===`Enter`||e.key===` `)&&D===`manual`){e.preventDefault(),!k&&!A&&h.current&&h.current.click();return}if(e.key===`Tab`&&e.shiftKey){x.onItemShiftTab();return}if(e.target!==e.currentTarget)return;let t=pu(e,_.dir,_.orientation);if(t!==void 0){if(e.metaKey||e.ctrlKey||e.altKey||e.shiftKey)return;if(e.preventDefault(),E<1&&(t===`prev`||t===`next`)){if(!k&&!A){let e=S;e=t===`next`?Math.min(S+E,_.max):Math.max(S-E,0),b.setState(`value`,e);let n=x.getItems().filter(e=>!e.disabled).find(t=>t.value===Math.ceil(e));n?.ref.current&&queueMicrotask(()=>n.ref.current?.focus())}return}let n=x.getItems().filter(e=>!e.disabled).map(e=>e.ref);if(t===`last`)n.reverse();else if(t===`prev`||t===`next`){t===`prev`&&n.reverse();let r=n.findIndex(t=>t.current===e.currentTarget);n=n.slice(r+1)}queueMicrotask(()=>mu(n))}},[x,_.dir,_.orientation,D,k,A,E,S,_.max,b,ae]),le=L.useCallback(e=>{ae.current.onMouseDown?.(e),!e.defaultPrevented&&(re.current=!0,k?e.preventDefault():x.onItemFocus(O))},[x,O,k,ae]),ue=L.useCallback(e=>{if(ae.current.onMouseEnter?.(e),!e.defaultPrevented&&!k&&!A){let t=y;if(E<1){let n=e.currentTarget.getBoundingClientRect(),r=e.clientX-n.left<n.width/2;_.dir===`rtl`?r||(t=y-E):r&&(t=y-E)}b.setState(`hoveredValue`,t)}},[k,A,E,y,b,_.dir,ae]),N=L.useCallback(e=>{ae.current.onMouseLeave?.(e),!e.defaultPrevented&&!k&&!A&&b.setState(`hoveredValue`,null)},[k,A,b,ae]),P=L.useCallback(e=>{if(ae.current.onMouseMove?.(e),!e.defaultPrevented&&!k&&!A&&E<1){let t=e.currentTarget.getBoundingClientRect(),n=e.clientX-t.left<t.width/2,r=y;r=_.dir===`rtl`?n?y:y-E:n?y-E:y,b.setState(`hoveredValue`,r)}},[k,A,E,y,b,_.dir,ae]),de=ne?`full`:j?`partial`:`empty`;return(0,R.jsxDEV)(n?ie:`button`,{role:`radio`,type:`button`,id:O,"aria-checked":ne,"aria-posinset":y,"aria-setsize":_.max,"data-disabled":k?``:void 0,"data-readonly":A?``:void 0,"data-state":ne?`full`:j?`partial`:`empty`,"data-hovered":M?``:void 0,"data-slot":`rating-item`,disabled:k,tabIndex:ee?0:-1,...m,ref:g,style:{...m.style,...j&&{"--partial-fill":`url(#${uu(_.rootId,E)})`}},className:C(`inline-flex items-center justify-center rounded transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50`,`[&_svg:not([class*='size-'])]:size-full [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg]:transition-colors [&_svg]:duration-200 data-[state=empty]:[&_svg]:fill-transparent data-[state=full]:[&_svg]:fill-current data-[state=partial]:[&_svg]:fill-(--partial-fill)`,_.size===`sm`?`size-4`:_.size===`lg`?`size-6`:`size-5`,d),onClick:oe,onFocus:se,onKeyDown:ce,onMouseDown:le,onMouseEnter:ue,onMouseMove:P,onMouseLeave:N,children:typeof f==`function`?f(de):f??(0,R.jsxDEV)(Se,{},void 0,!1,{fileName:iu,lineNumber:926,columnNumber:24},this)},void 0,!1,{fileName:iu,lineNumber:884,columnNumber:5},this)}function wu(e,t){let n=Math.floor(e/86400),r=Math.floor(e%86400/3600),i=Math.floor(e%3600/60),a=e%60,o=[];return n&&o.push(`${n} ${t(`form.days`)}`),r&&o.push(`${r} ${t(`form.hours`)}`),i&&o.push(`${i} ${t(`form.minutes`)}`),a&&o.push(`${a} ${t(`form.seconds`)}`),o.length?o.join(` `):`0 ${t(`form.seconds`)}`}function Tu(e){return e===!0||e===1||e===`1`||e===`true`}function Eu(e,t,n){let r=t.options?.find(e=>e.value===String(n))?.title;return r?e(r):String(n??``)}var H=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/number.tsx`;function Du(e){return(0,R.jsxDEV)(`span`,{className:`font-mono`,children:String(e)},void 0,!1,{fileName:H,lineNumber:36,columnNumber:10},this)}function Ou({name:e,field:t,value:n,onChange:r}){let i=t.hints;return t.hints.multiple===!0?(0,R.jsxDEV)(gt,{value:n,onChange:r,validate:e=>!isNaN(Number(e))&&e!==``,display:Du,renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:H,lineNumber:49,columnNumber:11},this)},void 0,!1,{fileName:H,lineNumber:43,columnNumber:7},this):(0,R.jsxDEV)(Ql,{customInput:E,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:H,lineNumber:67,columnNumber:5},this)}function ku({field:e,value:t}){return e.hints.multiple===!0?(0,R.jsxDEV)(St,{items:An(t,[]),content:Du,reserveEditor:!0},void 0,!1,{fileName:H,lineNumber:85,columnNumber:12},this):ft(t,e=>(0,R.jsxDEV)(`span`,{children:String(e)},void 0,!1,{fileName:H,lineNumber:87,columnNumber:31},this))}function Au(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,R.jsxDEV)(ku,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:103,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Ou,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:105,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:92,columnNumber:5},this)}I({kinds:[`number`],Page:Au});var ju=e=>Array.from({length:e},(e,t)=>(0,R.jsxDEV)(Cu,{className:`size-5 text-yellow-400 data-[state=empty]:text-border`},t,!1,{fileName:H,lineNumber:124,columnNumber:5},void 0));function Mu({value:e,onChange:t,field:n}){let r=Number(n.hints.max??5);return(0,R.jsxDEV)(`div`,{className:`flex items-center min-h-9`,children:(0,R.jsxDEV)(Su,{value:e?Number(e):0,max:r,clearable:!0,readOnly:!t,onValueChange:e=>t?.(e===0?``:e),"aria-label":n.label,children:ju(r)},void 0,!1,{fileName:H,lineNumber:135,columnNumber:7},this)},void 0,!1,{fileName:H,lineNumber:134,columnNumber:5},this)}function Nu(e){let t=(0,R.jsxDEV)(Mu,{field:e.field,value:e.value,onChange:e.onChange},void 0,!1,{fileName:H,lineNumber:152,columnNumber:15},this);return e.bare?t:(0,R.jsxDEV)(`div`,{className:`group/field w-fit`,children:[e.label!==void 0&&(0,R.jsxDEV)(zt,{label:e.label,required:e.required},void 0,!1,{fileName:H,lineNumber:156,columnNumber:33},this),t,(0,R.jsxDEV)(At,{error:e.error},void 0,!1,{fileName:H,lineNumber:158,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:155,columnNumber:5},this)}function Pu({value:e}){let t=Number(e);return(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 truncate`,children:Number.isNaN(t)||!t?`—`:(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(we,{name:`lucide:star`,size:12,className:`fill-current text-yellow-400`},void 0,!1,{fileName:H,lineNumber:171,columnNumber:11},this),t]},void 0,!0,{fileName:H,lineNumber:170,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:166,columnNumber:5},this)}I({kinds:[`rating`],Page:Nu,Inline:Pu});function Fu({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,R.jsxDEV)(ee,{className:`w-[5.25rem]`,children:[(0,R.jsxDEV)(D,{type:`number`,value:e||``,min:0,placeholder:`0`,...n},void 0,!1,{fileName:H,lineNumber:203,columnNumber:7},this),(0,R.jsxDEV)(O,{align:`inline-end`,children:(0,R.jsxDEV)(T,{children:t},void 0,!1,{fileName:H,lineNumber:205,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:204,columnNumber:7},this)]},void 0,!0,{fileName:H,lineNumber:202,columnNumber:5},this);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 flex-wrap ${Rt}`,children:[(0,R.jsxDEV)(p,{val:s,unit:r(`form.days`),onChange:e=>f(Number(e.target.value)||0,c,l,u)},void 0,!1,{fileName:H,lineNumber:211,columnNumber:7},this),(0,R.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:H,lineNumber:212,columnNumber:7},this),(0,R.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:H,lineNumber:213,columnNumber:7},this),d&&(0,R.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:H,lineNumber:221,columnNumber:9},this)]},void 0,!0,{fileName:H,lineNumber:210,columnNumber:5},this)}function Iu({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,R.jsxDEV)(it,{},void 0,!1,{fileName:H,lineNumber:236,columnNumber:43},this):(0,R.jsxDEV)(`span`,{className:`text-sm`,children:wu(n,t)},void 0,!1,{fileName:H,lineNumber:237,columnNumber:10},this)}function Lu(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:t=>(0,R.jsxDEV)(Iu,{field:e.field,value:t},void 0,!1,{fileName:H,lineNumber:253,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Fu,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:H,lineNumber:255,columnNumber:9},this)},void 0,!1,{fileName:H,lineNumber:242,columnNumber:5},this)}function Ru({value:e}){let{t}=a(),n=Number(e);return!n||Number.isNaN(n)?(0,R.jsxDEV)(`span`,{children:`—`},void 0,!1,{fileName:H,lineNumber:269,columnNumber:43},this):(0,R.jsxDEV)(`span`,{className:`truncate`,children:wu(n,t)},void 0,!1,{fileName:H,lineNumber:270,columnNumber:10},this)}I({kinds:[`duration`],Page:Lu,Inline:Ru});var zu=365.2425,Bu=6048e5,Vu=864e5,Hu=6e4,Uu=36e5,Wu=1e3,Gu=3600*24;Gu*7,Gu*zu/12*3;var Ku=Symbol.for(`constructDateFrom`);function qu(e,t){return typeof e==`function`?e(t):e&&typeof e==`object`&&Ku in e?e[Ku](t):e instanceof Date?new e.constructor(t):new Date(t)}function U(e,t){return qu(t||e,e)}function Ju(e,t,n){let r=U(e,n?.in);return isNaN(t)?qu(n?.in||e,NaN):(t&&r.setDate(r.getDate()+t),r)}function Yu(e,t,n){let r=U(e,n?.in);if(isNaN(t))return qu(n?.in||e,NaN);if(!t)return r;let i=r.getDate(),a=qu(n?.in||e,r.getTime());return a.setMonth(r.getMonth()+t+1,0),i>=a.getDate()?a:(r.setFullYear(a.getFullYear(),a.getMonth(),i),r)}var Xu={};function Zu(){return Xu}function Qu(e,t){let n=Zu(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=U(e,t?.in),a=i.getDay(),o=(a<r?7:0)+a-r;return i.setDate(i.getDate()-o),i.setHours(0,0,0,0),i}function $u(e,t){return Qu(e,{...t,weekStartsOn:1})}function ed(e,t){let n=U(e,t?.in),r=n.getFullYear(),i=qu(n,0);i.setFullYear(r+1,0,4),i.setHours(0,0,0,0);let a=$u(i),o=qu(n,0);o.setFullYear(r,0,4),o.setHours(0,0,0,0);let s=$u(o);return n.getTime()>=a.getTime()?r+1:n.getTime()>=s.getTime()?r:r-1}function td(e){let t=U(e),n=new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()));return n.setUTCFullYear(t.getFullYear()),e-+n}function nd(e,...t){let n=qu.bind(null,e||t.find(e=>typeof e==`object`));return t.map(n)}function rd(e,t){let n=U(e,t?.in);return n.setHours(0,0,0,0),n}function id(e,t,n){let[r,i]=nd(n?.in,e,t),a=rd(r),o=rd(i),s=+a-td(a),c=+o-td(o);return Math.round((s-c)/Vu)}function ad(e,t){let n=ed(e,t),r=qu(t?.in||e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),$u(r)}function od(e,t,n){return Ju(e,t*7,n)}function sd(e,t,n){return Yu(e,t*12,n)}function cd(e,t){let n,r=t?.in;return e.forEach(e=>{!r&&typeof e==`object`&&(r=qu.bind(null,e));let t=U(e,r);(!n||n<t||isNaN(+t))&&(n=t)}),qu(r,n||NaN)}function ld(e,t){let n,r=t?.in;return e.forEach(e=>{!r&&typeof e==`object`&&(r=qu.bind(null,e));let t=U(e,r);(!n||n>t||isNaN(+t))&&(n=t)}),qu(r,n||NaN)}function ud(e,t,n){let[r,i]=nd(n?.in,e,t);return+rd(r)==+rd(i)}function dd(e){return e instanceof Date||typeof e==`object`&&Object.prototype.toString.call(e)===`[object Date]`}function fd(e){return!(!dd(e)&&typeof e!=`number`||isNaN(+U(e)))}function pd(e,t,n){let[r,i]=nd(n?.in,e,t),a=r.getFullYear()-i.getFullYear(),o=r.getMonth()-i.getMonth();return a*12+o}function md(e,t){let n=U(e,t?.in),r=n.getMonth();return n.setFullYear(n.getFullYear(),r+1,0),n.setHours(23,59,59,999),n}function hd(e,t){let[n,r]=nd(e,t.start,t.end);return{start:n,end:r}}function gd(e,t){let{start:n,end:r}=hd(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0),o.setDate(1);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push(qu(n,o)),o.setMonth(o.getMonth()+s);return i?c.reverse():c}function _d(e,t){let n=U(e,t?.in);return n.setDate(1),n.setHours(0,0,0,0),n}function vd(e,t){let n=U(e,t?.in),r=n.getFullYear();return n.setFullYear(r+1,0,0),n.setHours(23,59,59,999),n}function yd(e,t){let n=U(e,t?.in);return n.setFullYear(n.getFullYear(),0,1),n.setHours(0,0,0,0),n}function bd(e,t){let{start:n,end:r}=hd(t?.in,e),i=+n>+r,a=i?+n:+r,o=i?r:n;o.setHours(0,0,0,0),o.setMonth(0,1);let s=t?.step??1;if(!s)return[];s<0&&(s=-s,i=!i);let c=[];for(;+o<=a;)c.push(qu(n,o)),o.setFullYear(o.getFullYear()+s);return i?c.reverse():c}function xd(e,t){let n=Zu(),r=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??n.weekStartsOn??n.locale?.options?.weekStartsOn??0,i=U(e,t?.in),a=i.getDay(),o=(a<r?-7:0)+6-(a-r);return i.setDate(i.getDate()+o),i.setHours(23,59,59,999),i}function Sd(e,t){return xd(e,{...t,weekStartsOn:1})}var Cd={lessThanXSeconds:{one:`less than a second`,other:`less than {{count}} seconds`},xSeconds:{one:`1 second`,other:`{{count}} seconds`},halfAMinute:`half a minute`,lessThanXMinutes:{one:`less than a minute`,other:`less than {{count}} minutes`},xMinutes:{one:`1 minute`,other:`{{count}} minutes`},aboutXHours:{one:`about 1 hour`,other:`about {{count}} hours`},xHours:{one:`1 hour`,other:`{{count}} hours`},xDays:{one:`1 day`,other:`{{count}} days`},aboutXWeeks:{one:`about 1 week`,other:`about {{count}} weeks`},xWeeks:{one:`1 week`,other:`{{count}} weeks`},aboutXMonths:{one:`about 1 month`,other:`about {{count}} months`},xMonths:{one:`1 month`,other:`{{count}} months`},aboutXYears:{one:`about 1 year`,other:`about {{count}} years`},xYears:{one:`1 year`,other:`{{count}} years`},overXYears:{one:`over 1 year`,other:`over {{count}} years`},almostXYears:{one:`almost 1 year`,other:`almost {{count}} years`}},wd=(e,t,n)=>{let r,i=Cd[e];return r=typeof i==`string`?i:t===1?i.one:i.other.replace(`{{count}}`,t.toString()),n?.addSuffix?n.comparison&&n.comparison>0?`in `+r:r+` ago`:r};function Td(e){return(t={})=>{let n=t.width?String(t.width):e.defaultWidth;return e.formats[n]||e.formats[e.defaultWidth]}}var Ed={date:Td({formats:{full:`EEEE, MMMM do, y`,long:`MMMM do, y`,medium:`MMM d, y`,short:`MM/dd/yyyy`},defaultWidth:`full`}),time:Td({formats:{full:`h:mm:ss a zzzz`,long:`h:mm:ss a z`,medium:`h:mm:ss a`,short:`h:mm a`},defaultWidth:`full`}),dateTime:Td({formats:{full:`{{date}} 'at' {{time}}`,long:`{{date}} 'at' {{time}}`,medium:`{{date}}, {{time}}`,short:`{{date}}, {{time}}`},defaultWidth:`full`})},Dd={lastWeek:`'last' eeee 'at' p`,yesterday:`'yesterday at' p`,today:`'today at' p`,tomorrow:`'tomorrow at' p`,nextWeek:`eeee 'at' p`,other:`P`},Od=(e,t,n,r)=>Dd[e];function kd(e){return(t,n)=>{let r=n?.context?String(n.context):`standalone`,i;if(r===`formatting`&&e.formattingValues){let t=e.defaultFormattingWidth||e.defaultWidth,r=n?.width?String(n.width):t;i=e.formattingValues[r]||e.formattingValues[t]}else{let t=e.defaultWidth,r=n?.width?String(n.width):e.defaultWidth;i=e.values[r]||e.values[t]}let a=e.argumentCallback?e.argumentCallback(t):t;return i[a]}}var Ad={ordinalNumber:(e,t)=>{let n=Number(e),r=n%100;if(r>20||r<10)switch(r%10){case 1:return n+`st`;case 2:return n+`nd`;case 3:return n+`rd`}return n+`th`},era:kd({values:{narrow:[`B`,`A`],abbreviated:[`BC`,`AD`],wide:[`Before Christ`,`Anno Domini`]},defaultWidth:`wide`}),quarter:kd({values:{narrow:[`1`,`2`,`3`,`4`],abbreviated:[`Q1`,`Q2`,`Q3`,`Q4`],wide:[`1st quarter`,`2nd quarter`,`3rd quarter`,`4th quarter`]},defaultWidth:`wide`,argumentCallback:e=>e-1}),month:kd({values:{narrow:[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],abbreviated:[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],wide:[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`]},defaultWidth:`wide`}),day:kd({values:{narrow:[`S`,`M`,`T`,`W`,`T`,`F`,`S`],short:[`Su`,`Mo`,`Tu`,`We`,`Th`,`Fr`,`Sa`],abbreviated:[`Sun`,`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`],wide:[`Sunday`,`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`]},defaultWidth:`wide`}),dayPeriod:kd({values:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`}},defaultWidth:`wide`,formattingValues:{narrow:{am:`a`,pm:`p`,midnight:`mi`,noon:`n`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},abbreviated:{am:`AM`,pm:`PM`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`},wide:{am:`a.m.`,pm:`p.m.`,midnight:`midnight`,noon:`noon`,morning:`in the morning`,afternoon:`in the afternoon`,evening:`in the evening`,night:`at night`}},defaultFormattingWidth:`wide`})};function jd(e){return(t,n={})=>{let r=n.width,i=r&&e.matchPatterns[r]||e.matchPatterns[e.defaultMatchWidth],a=t.match(i);if(!a)return null;let o=a[0],s=r&&e.parsePatterns[r]||e.parsePatterns[e.defaultParseWidth],c=Array.isArray(s)?Nd(s,e=>e.test(o)):Md(s,e=>e.test(o)),l;l=e.valueCallback?e.valueCallback(c):c,l=n.valueCallback?n.valueCallback(l):l;let u=t.slice(o.length);return{value:l,rest:u}}}function Md(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)&&t(e[n]))return n}function Nd(e,t){for(let n=0;n<e.length;n++)if(t(e[n]))return n}function Pd(e){return(t,n={})=>{let r=t.match(e.matchPattern);if(!r)return null;let i=r[0],a=t.match(e.parsePattern);if(!a)return null;let o=e.valueCallback?e.valueCallback(a[0]):a[0];o=n.valueCallback?n.valueCallback(o):o;let s=t.slice(i.length);return{value:o,rest:s}}}var Fd={code:`en-US`,formatDistance:wd,formatLong:Ed,formatRelative:Od,localize:Ad,match:{ordinalNumber:Pd({matchPattern:/^(\d+)(th|st|nd|rd)?/i,parsePattern:/\d+/i,valueCallback:e=>parseInt(e,10)}),era:jd({matchPatterns:{narrow:/^(b|a)/i,abbreviated:/^(b\.?\s?c\.?|b\.?\s?c\.?\s?e\.?|a\.?\s?d\.?|c\.?\s?e\.?)/i,wide:/^(before christ|before common era|anno domini|common era)/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/^b/i,/^(a|c)/i]},defaultParseWidth:`any`}),quarter:jd({matchPatterns:{narrow:/^[1234]/i,abbreviated:/^q[1234]/i,wide:/^[1234](th|st|nd|rd)? quarter/i},defaultMatchWidth:`wide`,parsePatterns:{any:[/1/i,/2/i,/3/i,/4/i]},defaultParseWidth:`any`,valueCallback:e=>e+1}),month:jd({matchPatterns:{narrow:/^[jfmasond]/i,abbreviated:/^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,wide:/^(january|february|march|april|may|june|july|august|september|october|november|december)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^f/i,/^mar/i,/^ap/i,/^may/i,/^jun/i,/^jul/i,/^au/i,/^s/i,/^o/i,/^n/i,/^d/i]},defaultParseWidth:`any`}),day:jd({matchPatterns:{narrow:/^[smtwf]/i,short:/^(su|mo|tu|we|th|fr|sa)/i,abbreviated:/^(sun|mon|tue|wed|thu|fri|sat)/i,wide:/^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i},defaultMatchWidth:`wide`,parsePatterns:{narrow:[/^s/i,/^m/i,/^t/i,/^w/i,/^t/i,/^f/i,/^s/i],any:[/^su/i,/^m/i,/^tu/i,/^w/i,/^th/i,/^f/i,/^sa/i]},defaultParseWidth:`any`}),dayPeriod:jd({matchPatterns:{narrow:/^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,any:/^([ap]\.?\s?m\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i},defaultMatchWidth:`any`,parsePatterns:{any:{am:/^a/i,pm:/^p/i,midnight:/^mi/i,noon:/^no/i,morning:/morning/i,afternoon:/afternoon/i,evening:/evening/i,night:/night/i}},defaultParseWidth:`any`})},options:{weekStartsOn:0,firstWeekContainsDate:1}};function Id(e,t){let n=U(e,t?.in);return id(n,yd(n))+1}function Ld(e,t){let n=U(e,t?.in),r=$u(n)-+ad(n);return Math.round(r/Bu)+1}function Rd(e,t){let n=U(e,t?.in),r=n.getFullYear(),i=Zu(),a=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??i.firstWeekContainsDate??i.locale?.options?.firstWeekContainsDate??1,o=qu(t?.in||e,0);o.setFullYear(r+1,0,a),o.setHours(0,0,0,0);let s=Qu(o,t),c=qu(t?.in||e,0);c.setFullYear(r,0,a),c.setHours(0,0,0,0);let l=Qu(c,t);return+n>=+s?r+1:+n>=+l?r:r-1}function zd(e,t){let n=Zu(),r=t?.firstWeekContainsDate??t?.locale?.options?.firstWeekContainsDate??n.firstWeekContainsDate??n.locale?.options?.firstWeekContainsDate??1,i=Rd(e,t),a=qu(t?.in||e,0);return a.setFullYear(i,0,r),a.setHours(0,0,0,0),Qu(a,t)}function Bd(e,t){let n=U(e,t?.in),r=Qu(n,t)-+zd(n,t);return Math.round(r/Bu)+1}function Vd(e,t){return(e<0?`-`:``)+Math.abs(e).toString().padStart(t,`0`)}var Hd={y(e,t){let n=e.getFullYear(),r=n>0?n:1-n;return Vd(t===`yy`?r%100:r,t.length)},M(e,t){let n=e.getMonth();return t===`M`?String(n+1):Vd(n+1,2)},d(e,t){return Vd(e.getDate(),t.length)},a(e,t){let n=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.toUpperCase();case`aaa`:return n;case`aaaaa`:return n[0];default:return n===`am`?`a.m.`:`p.m.`}},h(e,t){return Vd(e.getHours()%12||12,t.length)},H(e,t){return Vd(e.getHours(),t.length)},m(e,t){return Vd(e.getMinutes(),t.length)},s(e,t){return Vd(e.getSeconds(),t.length)},S(e,t){let n=t.length,r=e.getMilliseconds();return Vd(Math.trunc(r*10**(n-3)),t.length)}},Ud={am:`am`,pm:`pm`,midnight:`midnight`,noon:`noon`,morning:`morning`,afternoon:`afternoon`,evening:`evening`,night:`night`},Wd={G:function(e,t,n){let r=+(e.getFullYear()>0);switch(t){case`G`:case`GG`:case`GGG`:return n.era(r,{width:`abbreviated`});case`GGGGG`:return n.era(r,{width:`narrow`});default:return n.era(r,{width:`wide`})}},y:function(e,t,n){if(t===`yo`){let t=e.getFullYear(),r=t>0?t:1-t;return n.ordinalNumber(r,{unit:`year`})}return Hd.y(e,t)},Y:function(e,t,n,r){let i=Rd(e,r),a=i>0?i:1-i;return t===`YY`?Vd(a%100,2):t===`Yo`?n.ordinalNumber(a,{unit:`year`}):Vd(a,t.length)},R:function(e,t){return Vd(ed(e),t.length)},u:function(e,t){return Vd(e.getFullYear(),t.length)},Q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`Q`:return String(r);case`QQ`:return Vd(r,2);case`Qo`:return n.ordinalNumber(r,{unit:`quarter`});case`QQQ`:return n.quarter(r,{width:`abbreviated`,context:`formatting`});case`QQQQQ`:return n.quarter(r,{width:`narrow`,context:`formatting`});default:return n.quarter(r,{width:`wide`,context:`formatting`})}},q:function(e,t,n){let r=Math.ceil((e.getMonth()+1)/3);switch(t){case`q`:return String(r);case`qq`:return Vd(r,2);case`qo`:return n.ordinalNumber(r,{unit:`quarter`});case`qqq`:return n.quarter(r,{width:`abbreviated`,context:`standalone`});case`qqqqq`:return n.quarter(r,{width:`narrow`,context:`standalone`});default:return n.quarter(r,{width:`wide`,context:`standalone`})}},M:function(e,t,n){let r=e.getMonth();switch(t){case`M`:case`MM`:return Hd.M(e,t);case`Mo`:return n.ordinalNumber(r+1,{unit:`month`});case`MMM`:return n.month(r,{width:`abbreviated`,context:`formatting`});case`MMMMM`:return n.month(r,{width:`narrow`,context:`formatting`});default:return n.month(r,{width:`wide`,context:`formatting`})}},L:function(e,t,n){let r=e.getMonth();switch(t){case`L`:return String(r+1);case`LL`:return Vd(r+1,2);case`Lo`:return n.ordinalNumber(r+1,{unit:`month`});case`LLL`:return n.month(r,{width:`abbreviated`,context:`standalone`});case`LLLLL`:return n.month(r,{width:`narrow`,context:`standalone`});default:return n.month(r,{width:`wide`,context:`standalone`})}},w:function(e,t,n,r){let i=Bd(e,r);return t===`wo`?n.ordinalNumber(i,{unit:`week`}):Vd(i,t.length)},I:function(e,t,n){let r=Ld(e);return t===`Io`?n.ordinalNumber(r,{unit:`week`}):Vd(r,t.length)},d:function(e,t,n){return t===`do`?n.ordinalNumber(e.getDate(),{unit:`date`}):Hd.d(e,t)},D:function(e,t,n){let r=Id(e);return t===`Do`?n.ordinalNumber(r,{unit:`dayOfYear`}):Vd(r,t.length)},E:function(e,t,n){let r=e.getDay();switch(t){case`E`:case`EE`:case`EEE`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`EEEEE`:return n.day(r,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},e:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`e`:return String(a);case`ee`:return Vd(a,2);case`eo`:return n.ordinalNumber(a,{unit:`day`});case`eee`:return n.day(i,{width:`abbreviated`,context:`formatting`});case`eeeee`:return n.day(i,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(i,{width:`short`,context:`formatting`});default:return n.day(i,{width:`wide`,context:`formatting`})}},c:function(e,t,n,r){let i=e.getDay(),a=(i-r.weekStartsOn+8)%7||7;switch(t){case`c`:return String(a);case`cc`:return Vd(a,t.length);case`co`:return n.ordinalNumber(a,{unit:`day`});case`ccc`:return n.day(i,{width:`abbreviated`,context:`standalone`});case`ccccc`:return n.day(i,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(i,{width:`short`,context:`standalone`});default:return n.day(i,{width:`wide`,context:`standalone`})}},i:function(e,t,n){let r=e.getDay(),i=r===0?7:r;switch(t){case`i`:return String(i);case`ii`:return Vd(i,t.length);case`io`:return n.ordinalNumber(i,{unit:`day`});case`iii`:return n.day(r,{width:`abbreviated`,context:`formatting`});case`iiiii`:return n.day(r,{width:`narrow`,context:`formatting`});case`iiiiii`:return n.day(r,{width:`short`,context:`formatting`});default:return n.day(r,{width:`wide`,context:`formatting`})}},a:function(e,t,n){let r=e.getHours()/12>=1?`pm`:`am`;switch(t){case`a`:case`aa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`});case`aaa`:return n.dayPeriod(r,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`aaaaa`:return n.dayPeriod(r,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(r,{width:`wide`,context:`formatting`})}},b:function(e,t,n){let r=e.getHours(),i;switch(i=r===12?Ud.noon:r===0?Ud.midnight:r/12>=1?`pm`:`am`,t){case`b`:case`bb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`bbb`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`}).toLowerCase();case`bbbbb`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},B:function(e,t,n){let r=e.getHours(),i;switch(i=r>=17?Ud.evening:r>=12?Ud.afternoon:r>=4?Ud.morning:Ud.night,t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(i,{width:`abbreviated`,context:`formatting`});case`BBBBB`:return n.dayPeriod(i,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(i,{width:`wide`,context:`formatting`})}},h:function(e,t,n){if(t===`ho`){let t=e.getHours()%12;return t===0&&(t=12),n.ordinalNumber(t,{unit:`hour`})}return Hd.h(e,t)},H:function(e,t,n){return t===`Ho`?n.ordinalNumber(e.getHours(),{unit:`hour`}):Hd.H(e,t)},K:function(e,t,n){let r=e.getHours()%12;return t===`Ko`?n.ordinalNumber(r,{unit:`hour`}):Vd(r,t.length)},k:function(e,t,n){let r=e.getHours();return r===0&&(r=24),t===`ko`?n.ordinalNumber(r,{unit:`hour`}):Vd(r,t.length)},m:function(e,t,n){return t===`mo`?n.ordinalNumber(e.getMinutes(),{unit:`minute`}):Hd.m(e,t)},s:function(e,t,n){return t===`so`?n.ordinalNumber(e.getSeconds(),{unit:`second`}):Hd.s(e,t)},S:function(e,t){return Hd.S(e,t)},X:function(e,t,n){let r=e.getTimezoneOffset();if(r===0)return`Z`;switch(t){case`X`:return Kd(r);case`XXXX`:case`XX`:return qd(r);default:return qd(r,`:`)}},x:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`x`:return Kd(r);case`xxxx`:case`xx`:return qd(r);default:return qd(r,`:`)}},O:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`O`:case`OO`:case`OOO`:return`GMT`+Gd(r,`:`);default:return`GMT`+qd(r,`:`)}},z:function(e,t,n){let r=e.getTimezoneOffset();switch(t){case`z`:case`zz`:case`zzz`:return`GMT`+Gd(r,`:`);default:return`GMT`+qd(r,`:`)}},t:function(e,t,n){return Vd(Math.trunc(e/1e3),t.length)},T:function(e,t,n){return Vd(+e,t.length)}};function Gd(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Math.trunc(r/60),a=r%60;return a===0?n+String(i):n+String(i)+t+Vd(a,2)}function Kd(e,t){return e%60==0?(e>0?`-`:`+`)+Vd(Math.abs(e)/60,2):qd(e,t)}function qd(e,t=``){let n=e>0?`-`:`+`,r=Math.abs(e),i=Vd(Math.trunc(r/60),2),a=Vd(r%60,2);return n+i+t+a}var Jd=(e,t)=>{switch(e){case`P`:return t.date({width:`short`});case`PP`:return t.date({width:`medium`});case`PPP`:return t.date({width:`long`});default:return t.date({width:`full`})}},Yd=(e,t)=>{switch(e){case`p`:return t.time({width:`short`});case`pp`:return t.time({width:`medium`});case`ppp`:return t.time({width:`long`});default:return t.time({width:`full`})}},Xd={p:Yd,P:(e,t)=>{let n=e.match(/(P+)(p+)?/)||[],r=n[1],i=n[2];if(!i)return Jd(e,t);let a;switch(r){case`P`:a=t.dateTime({width:`short`});break;case`PP`:a=t.dateTime({width:`medium`});break;case`PPP`:a=t.dateTime({width:`long`});break;default:a=t.dateTime({width:`full`});break}return a.replace(`{{date}}`,Jd(r,t)).replace(`{{time}}`,Yd(i,t))}},Zd=/^D+$/,Qd=/^Y+$/,$d=[`D`,`DD`,`YY`,`YYYY`];function ef(e){return Zd.test(e)}function tf(e){return Qd.test(e)}function nf(e,t,n){let r=rf(e,t,n);if(console.warn(r),$d.includes(e))throw RangeError(r)}function rf(e,t,n){let r=e[0]===`Y`?`years`:`days of the month`;return`Use \`${e.toLowerCase()}\` instead of \`${e}\` (in \`${t}\`) for formatting ${r} to the input \`${n}\`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md`}var af=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,of=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,sf=/^'([^]*?)'?$/,cf=/''/g,lf=/[a-zA-Z]/;function uf(e,t,n){let r=Zu(),i=n?.locale??r.locale??Fd,a=n?.firstWeekContainsDate??n?.locale?.options?.firstWeekContainsDate??r.firstWeekContainsDate??r.locale?.options?.firstWeekContainsDate??1,o=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,s=U(e,n?.in);if(!fd(s))throw RangeError(`Invalid time value`);let c=t.match(of).map(e=>{let t=e[0];if(t===`p`||t===`P`){let n=Xd[t];return n(e,i.formatLong)}return e}).join(``).match(af).map(e=>{if(e===`''`)return{isToken:!1,value:`'`};let t=e[0];if(t===`'`)return{isToken:!1,value:df(e)};if(Wd[t])return{isToken:!0,value:e};if(t.match(lf))throw RangeError("Format string contains an unescaped latin alphabet character `"+t+"`");return{isToken:!1,value:e}});i.localize.preprocessor&&(c=i.localize.preprocessor(s,c));let l={firstWeekContainsDate:a,weekStartsOn:o,locale:i};return c.map(r=>{if(!r.isToken)return r.value;let a=r.value;(!n?.useAdditionalWeekYearTokens&&tf(a)||!n?.useAdditionalDayOfYearTokens&&ef(a))&&nf(a,t,String(e));let o=Wd[a[0]];return o(s,a,i.localize,l)}).join(``)}function df(e){let t=e.match(sf);return t?t[1].replace(cf,`'`):e}function ff(e,t){let n=U(e,t?.in),r=n.getFullYear(),i=n.getMonth(),a=qu(n,0);return a.setFullYear(r,i+1,0),a.setHours(0,0,0,0),a.getDate()}function pf(){return Object.assign({},Zu())}function mf(e,t){let n=U(e,t?.in).getDay();return n===0?7:n}function hf(e,t){return U(e,t?.in).getMonth()}function gf(e,t){return U(e,t?.in).getFullYear()}function _f(e,t){return+U(e)>+U(t)}function vf(e,t){return+U(e)<+U(t)}function yf(e,t){let n=bf(t)?new t(0):qu(t,0);return n.setFullYear(e.getFullYear(),e.getMonth(),e.getDate()),n.setHours(e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()),n}function bf(e){return typeof e==`function`&&e.prototype?.constructor===e}var xf=10,Sf=class{subPriority=0;validate(e,t){return!0}},Cf=class extends Sf{constructor(e,t,n,r,i){super(),this.value=e,this.validateValue=t,this.setValue=n,this.priority=r,i&&(this.subPriority=i)}validate(e,t){return this.validateValue(e,this.value,t)}set(e,t,n){return this.setValue(e,t,this.value,n)}},wf=class extends Sf{priority=xf;subPriority=-1;constructor(e,t){super(),this.context=e||(e=>qu(t,e))}set(e,t){return t.timestampIsSet?e:qu(e,yf(e,this.context))}},Tf=class{run(e,t,n,r){let i=this.parse(e,t,n,r);return i?{setter:new Cf(i.value,this.validate,this.set,this.priority,this.subPriority),rest:i.rest}:null}validate(e,t,n){return!0}},Ef=class extends Tf{priority=140;parse(e,t,n){switch(t){case`G`:case`GG`:case`GGG`:return n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`});case`GGGGG`:return n.era(e,{width:`narrow`});default:return n.era(e,{width:`wide`})||n.era(e,{width:`abbreviated`})||n.era(e,{width:`narrow`})}}set(e,t,n){return t.era=n,e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`R`,`u`,`t`,`T`]},Df={month:/^(1[0-2]|0?\d)/,date:/^(3[0-1]|[0-2]?\d)/,dayOfYear:/^(36[0-6]|3[0-5]\d|[0-2]?\d?\d)/,week:/^(5[0-3]|[0-4]?\d)/,hour23h:/^(2[0-3]|[0-1]?\d)/,hour24h:/^(2[0-4]|[0-1]?\d)/,hour11h:/^(1[0-1]|0?\d)/,hour12h:/^(1[0-2]|0?\d)/,minute:/^[0-5]?\d/,second:/^[0-5]?\d/,singleDigit:/^\d/,twoDigits:/^\d{1,2}/,threeDigits:/^\d{1,3}/,fourDigits:/^\d{1,4}/,anyDigitsSigned:/^-?\d+/,singleDigitSigned:/^-?\d/,twoDigitsSigned:/^-?\d{1,2}/,threeDigitsSigned:/^-?\d{1,3}/,fourDigitsSigned:/^-?\d{1,4}/},Of={basicOptionalMinutes:/^([+-])(\d{2})(\d{2})?|Z/,basic:/^([+-])(\d{2})(\d{2})|Z/,basicOptionalSeconds:/^([+-])(\d{2})(\d{2})((\d{2}))?|Z/,extended:/^([+-])(\d{2}):(\d{2})|Z/,extendedOptionalSeconds:/^([+-])(\d{2}):(\d{2})(:(\d{2}))?|Z/};function kf(e,t){return e&&{value:t(e.value),rest:e.rest}}function Af(e,t){let n=t.match(e);return n?{value:parseInt(n[0],10),rest:t.slice(n[0].length)}:null}function jf(e,t){let n=t.match(e);if(!n)return null;if(n[0]===`Z`)return{value:0,rest:t.slice(1)};let r=n[1]===`+`?1:-1,i=n[2]?parseInt(n[2],10):0,a=n[3]?parseInt(n[3],10):0,o=n[5]?parseInt(n[5],10):0;return{value:r*(i*Uu+a*Hu+o*Wu),rest:t.slice(n[0].length)}}function Mf(e){return Af(Df.anyDigitsSigned,e)}function Nf(e,t){switch(e){case 1:return Af(Df.singleDigit,t);case 2:return Af(Df.twoDigits,t);case 3:return Af(Df.threeDigits,t);case 4:return Af(Df.fourDigits,t);default:return Af(RegExp(`^\\d{1,`+e+`}`),t)}}function Pf(e,t){switch(e){case 1:return Af(Df.singleDigitSigned,t);case 2:return Af(Df.twoDigitsSigned,t);case 3:return Af(Df.threeDigitsSigned,t);case 4:return Af(Df.fourDigitsSigned,t);default:return Af(RegExp(`^-?\\d{1,`+e+`}`),t)}}function Ff(e){switch(e){case`morning`:return 4;case`evening`:return 17;case`pm`:case`noon`:case`afternoon`:return 12;default:return 0}}function If(e,t){let n=t>0,r=n?t:1-t,i;if(r<=50)i=e||100;else{let t=r+50,n=Math.trunc(t/100)*100,a=e>=t%100;i=e+n-(a?100:0)}return n?i:1-i}function Lf(e){return e%400==0||e%4==0&&e%100!=0}var Rf=class extends Tf{priority=130;incompatibleTokens=[`Y`,`R`,`u`,`w`,`I`,`i`,`e`,`c`,`t`,`T`];parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`yy`});switch(t){case`y`:return kf(Nf(4,e),r);case`yo`:return kf(n.ordinalNumber(e,{unit:`year`}),r);default:return kf(Nf(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n){let r=e.getFullYear();if(n.isTwoDigitYear){let t=If(n.year,r);return e.setFullYear(t,0,1),e.setHours(0,0,0,0),e}let i=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(i,0,1),e.setHours(0,0,0,0),e}},zf=class extends Tf{priority=130;parse(e,t,n){let r=e=>({year:e,isTwoDigitYear:t===`YY`});switch(t){case`Y`:return kf(Nf(4,e),r);case`Yo`:return kf(n.ordinalNumber(e,{unit:`year`}),r);default:return kf(Nf(t.length,e),r)}}validate(e,t){return t.isTwoDigitYear||t.year>0}set(e,t,n,r){let i=Rd(e,r);if(n.isTwoDigitYear){let t=If(n.year,i);return e.setFullYear(t,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),Qu(e,r)}let a=!(`era`in t)||t.era===1?n.year:1-n.year;return e.setFullYear(a,0,r.firstWeekContainsDate),e.setHours(0,0,0,0),Qu(e,r)}incompatibleTokens=[`y`,`R`,`u`,`Q`,`q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]},Bf=class extends Tf{priority=130;parse(e,t){return Pf(t===`R`?4:t.length,e)}set(e,t,n){let r=qu(e,0);return r.setFullYear(n,0,4),r.setHours(0,0,0,0),$u(r)}incompatibleTokens=[`G`,`y`,`Y`,`u`,`Q`,`q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},Vf=class extends Tf{priority=130;parse(e,t){return Pf(t===`u`?4:t.length,e)}set(e,t,n){return e.setFullYear(n,0,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`G`,`y`,`Y`,`R`,`w`,`I`,`i`,`e`,`c`,`t`,`T`]},Hf=class extends Tf{priority=120;parse(e,t,n){switch(t){case`Q`:case`QQ`:return Nf(t.length,e);case`Qo`:return n.ordinalNumber(e,{unit:`quarter`});case`QQQ`:return n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`});case`QQQQQ`:return n.quarter(e,{width:`narrow`,context:`formatting`});default:return n.quarter(e,{width:`wide`,context:`formatting`})||n.quarter(e,{width:`abbreviated`,context:`formatting`})||n.quarter(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},Uf=class extends Tf{priority=120;parse(e,t,n){switch(t){case`q`:case`qq`:return Nf(t.length,e);case`qo`:return n.ordinalNumber(e,{unit:`quarter`});case`qqq`:return n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`});case`qqqqq`:return n.quarter(e,{width:`narrow`,context:`standalone`});default:return n.quarter(e,{width:`wide`,context:`standalone`})||n.quarter(e,{width:`abbreviated`,context:`standalone`})||n.quarter(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=1&&t<=4}set(e,t,n){return e.setMonth((n-1)*3,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`Q`,`M`,`L`,`w`,`I`,`d`,`D`,`i`,`e`,`c`,`t`,`T`]},Wf=class extends Tf{incompatibleTokens=[`Y`,`R`,`q`,`Q`,`L`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`];priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`M`:return kf(Af(Df.month,e),r);case`MM`:return kf(Nf(2,e),r);case`Mo`:return kf(n.ordinalNumber(e,{unit:`month`}),r);case`MMM`:return n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`});case`MMMMM`:return n.month(e,{width:`narrow`,context:`formatting`});default:return n.month(e,{width:`wide`,context:`formatting`})||n.month(e,{width:`abbreviated`,context:`formatting`})||n.month(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}},Gf=class extends Tf{priority=110;parse(e,t,n){let r=e=>e-1;switch(t){case`L`:return kf(Af(Df.month,e),r);case`LL`:return kf(Nf(2,e),r);case`Lo`:return kf(n.ordinalNumber(e,{unit:`month`}),r);case`LLL`:return n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`});case`LLLLL`:return n.month(e,{width:`narrow`,context:`standalone`});default:return n.month(e,{width:`wide`,context:`standalone`})||n.month(e,{width:`abbreviated`,context:`standalone`})||n.month(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.setMonth(n,1),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]};function Kf(e,t,n){let r=U(e,n?.in),i=Bd(r,n)-t;return r.setDate(r.getDate()-i*7),U(r,n?.in)}var qf=class extends Tf{priority=100;parse(e,t,n){switch(t){case`w`:return Af(Df.week,e);case`wo`:return n.ordinalNumber(e,{unit:`week`});default:return Nf(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n,r){return Qu(Kf(e,n,r),r)}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`i`,`t`,`T`]};function Jf(e,t,n){let r=U(e,n?.in),i=Ld(r,n)-t;return r.setDate(r.getDate()-i*7),r}var Yf=class extends Tf{priority=100;parse(e,t,n){switch(t){case`I`:return Af(Df.week,e);case`Io`:return n.ordinalNumber(e,{unit:`week`});default:return Nf(t.length,e)}}validate(e,t){return t>=1&&t<=53}set(e,t,n){return $u(Jf(e,n))}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`e`,`c`,`t`,`T`]},Xf=[31,28,31,30,31,30,31,31,30,31,30,31],Zf=[31,29,31,30,31,30,31,31,30,31,30,31],Qf=class extends Tf{priority=90;subPriority=1;parse(e,t,n){switch(t){case`d`:return Af(Df.date,e);case`do`:return n.ordinalNumber(e,{unit:`date`});default:return Nf(t.length,e)}}validate(e,t){let n=Lf(e.getFullYear()),r=e.getMonth();return n?t>=1&&t<=Zf[r]:t>=1&&t<=Xf[r]}set(e,t,n){return e.setDate(n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`w`,`I`,`D`,`i`,`e`,`c`,`t`,`T`]},$f=class extends Tf{priority=90;subpriority=1;parse(e,t,n){switch(t){case`D`:case`DD`:return Af(Df.dayOfYear,e);case`Do`:return n.ordinalNumber(e,{unit:`date`});default:return Nf(t.length,e)}}validate(e,t){return Lf(e.getFullYear())?t>=1&&t<=366:t>=1&&t<=365}set(e,t,n){return e.setMonth(0,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`Y`,`R`,`q`,`Q`,`M`,`L`,`w`,`I`,`d`,`E`,`i`,`e`,`c`,`t`,`T`]};function ep(e,t,n){let r=Zu(),i=n?.weekStartsOn??n?.locale?.options?.weekStartsOn??r.weekStartsOn??r.locale?.options?.weekStartsOn??0,a=U(e,n?.in),o=a.getDay(),s=(t%7+7)%7,c=7-i;return Ju(a,t<0||t>6?t-(o+c)%7:(s+c)%7-(o+c)%7,n)}var tp=class extends Tf{priority=90;parse(e,t,n){switch(t){case`E`:case`EE`:case`EEE`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`EEEEE`:return n.day(e,{width:`narrow`,context:`formatting`});case`EEEEEE`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=ep(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`D`,`i`,`e`,`c`,`t`,`T`]},np=class extends Tf{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`e`:case`ee`:return kf(Nf(t.length,e),i);case`eo`:return kf(n.ordinalNumber(e,{unit:`day`}),i);case`eee`:return n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});case`eeeee`:return n.day(e,{width:`narrow`,context:`formatting`});case`eeeeee`:return n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`});default:return n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=ep(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`c`,`t`,`T`]},rp=class extends Tf{priority=90;parse(e,t,n,r){let i=e=>{let t=Math.floor((e-1)/7)*7;return(e+r.weekStartsOn+6)%7+t};switch(t){case`c`:case`cc`:return kf(Nf(t.length,e),i);case`co`:return kf(n.ordinalNumber(e,{unit:`day`}),i);case`ccc`:return n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});case`ccccc`:return n.day(e,{width:`narrow`,context:`standalone`});case`cccccc`:return n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`});default:return n.day(e,{width:`wide`,context:`standalone`})||n.day(e,{width:`abbreviated`,context:`standalone`})||n.day(e,{width:`short`,context:`standalone`})||n.day(e,{width:`narrow`,context:`standalone`})}}validate(e,t){return t>=0&&t<=6}set(e,t,n,r){return e=ep(e,n,r),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`R`,`u`,`q`,`Q`,`M`,`L`,`I`,`d`,`D`,`E`,`i`,`e`,`t`,`T`]};function ip(e,t,n){let r=U(e,n?.in);return Ju(r,t-mf(r,n),n)}var ap=class extends Tf{priority=90;parse(e,t,n){let r=e=>e===0?7:e;switch(t){case`i`:case`ii`:return Nf(t.length,e);case`io`:return n.ordinalNumber(e,{unit:`day`});case`iii`:return kf(n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiii`:return kf(n.day(e,{width:`narrow`,context:`formatting`}),r);case`iiiiii`:return kf(n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r);default:return kf(n.day(e,{width:`wide`,context:`formatting`})||n.day(e,{width:`abbreviated`,context:`formatting`})||n.day(e,{width:`short`,context:`formatting`})||n.day(e,{width:`narrow`,context:`formatting`}),r)}}validate(e,t){return t>=1&&t<=7}set(e,t,n){return e=ip(e,n),e.setHours(0,0,0,0),e}incompatibleTokens=[`y`,`Y`,`u`,`q`,`Q`,`M`,`L`,`w`,`d`,`D`,`E`,`e`,`c`,`t`,`T`]},op=class extends Tf{priority=80;parse(e,t,n){switch(t){case`a`:case`aa`:case`aaa`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`aaaaa`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Ff(n),0,0,0),e}incompatibleTokens=[`b`,`B`,`H`,`k`,`t`,`T`]},sp=class extends Tf{priority=80;parse(e,t,n){switch(t){case`b`:case`bb`:case`bbb`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`bbbbb`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Ff(n),0,0,0),e}incompatibleTokens=[`a`,`B`,`H`,`k`,`t`,`T`]},cp=class extends Tf{priority=80;parse(e,t,n){switch(t){case`B`:case`BB`:case`BBB`:return n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`});case`BBBBB`:return n.dayPeriod(e,{width:`narrow`,context:`formatting`});default:return n.dayPeriod(e,{width:`wide`,context:`formatting`})||n.dayPeriod(e,{width:`abbreviated`,context:`formatting`})||n.dayPeriod(e,{width:`narrow`,context:`formatting`})}}set(e,t,n){return e.setHours(Ff(n),0,0,0),e}incompatibleTokens=[`a`,`b`,`t`,`T`]},lp=class extends Tf{priority=70;parse(e,t,n){switch(t){case`h`:return Af(Df.hour12h,e);case`ho`:return n.ordinalNumber(e,{unit:`hour`});default:return Nf(t.length,e)}}validate(e,t){return t>=1&&t<=12}set(e,t,n){let r=e.getHours()>=12;return r&&n<12?e.setHours(n+12,0,0,0):!r&&n===12?e.setHours(0,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`H`,`K`,`k`,`t`,`T`]},up=class extends Tf{priority=70;parse(e,t,n){switch(t){case`H`:return Af(Df.hour23h,e);case`Ho`:return n.ordinalNumber(e,{unit:`hour`});default:return Nf(t.length,e)}}validate(e,t){return t>=0&&t<=23}set(e,t,n){return e.setHours(n,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`K`,`k`,`t`,`T`]},dp=class extends Tf{priority=70;parse(e,t,n){switch(t){case`K`:return Af(Df.hour11h,e);case`Ko`:return n.ordinalNumber(e,{unit:`hour`});default:return Nf(t.length,e)}}validate(e,t){return t>=0&&t<=11}set(e,t,n){return e.getHours()>=12&&n<12?e.setHours(n+12,0,0,0):e.setHours(n,0,0,0),e}incompatibleTokens=[`h`,`H`,`k`,`t`,`T`]},fp=class extends Tf{priority=70;parse(e,t,n){switch(t){case`k`:return Af(Df.hour24h,e);case`ko`:return n.ordinalNumber(e,{unit:`hour`});default:return Nf(t.length,e)}}validate(e,t){return t>=1&&t<=24}set(e,t,n){let r=n<=24?n%24:n;return e.setHours(r,0,0,0),e}incompatibleTokens=[`a`,`b`,`h`,`H`,`K`,`t`,`T`]},pp=class extends Tf{priority=60;parse(e,t,n){switch(t){case`m`:return Af(Df.minute,e);case`mo`:return n.ordinalNumber(e,{unit:`minute`});default:return Nf(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setMinutes(n,0,0),e}incompatibleTokens=[`t`,`T`]},mp=class extends Tf{priority=50;parse(e,t,n){switch(t){case`s`:return Af(Df.second,e);case`so`:return n.ordinalNumber(e,{unit:`second`});default:return Nf(t.length,e)}}validate(e,t){return t>=0&&t<=59}set(e,t,n){return e.setSeconds(n,0),e}incompatibleTokens=[`t`,`T`]},hp=class extends Tf{priority=30;parse(e,t){return kf(Nf(t.length,e),e=>Math.trunc(e*10**(-t.length+3)))}set(e,t,n){return e.setMilliseconds(n),e}incompatibleTokens=[`t`,`T`]},gp=class extends Tf{priority=10;parse(e,t){switch(t){case`X`:return jf(Of.basicOptionalMinutes,e);case`XX`:return jf(Of.basic,e);case`XXXX`:return jf(Of.basicOptionalSeconds,e);case`XXXXX`:return jf(Of.extendedOptionalSeconds,e);default:return jf(Of.extended,e)}}set(e,t,n){return t.timestampIsSet?e:qu(e,e.getTime()-td(e)-n)}incompatibleTokens=[`t`,`T`,`x`]},_p=class extends Tf{priority=10;parse(e,t){switch(t){case`x`:return jf(Of.basicOptionalMinutes,e);case`xx`:return jf(Of.basic,e);case`xxxx`:return jf(Of.basicOptionalSeconds,e);case`xxxxx`:return jf(Of.extendedOptionalSeconds,e);default:return jf(Of.extended,e)}}set(e,t,n){return t.timestampIsSet?e:qu(e,e.getTime()-td(e)-n)}incompatibleTokens=[`t`,`T`,`X`]},vp=class extends Tf{priority=40;parse(e){return Mf(e)}set(e,t,n){return[qu(e,n*1e3),{timestampIsSet:!0}]}incompatibleTokens=`*`},yp=class extends Tf{priority=20;parse(e){return Mf(e)}set(e,t,n){return[qu(e,n),{timestampIsSet:!0}]}incompatibleTokens=`*`},bp={G:new Ef,y:new Rf,Y:new zf,R:new Bf,u:new Vf,Q:new Hf,q:new Uf,M:new Wf,L:new Gf,w:new qf,I:new Yf,d:new Qf,D:new $f,E:new tp,e:new np,c:new rp,i:new ap,a:new op,b:new sp,B:new cp,h:new lp,H:new up,K:new dp,k:new fp,m:new pp,s:new mp,S:new hp,X:new gp,x:new _p,t:new vp,T:new yp},xp=/[yYQqMLwIdDecihHKkms]o|(\w)\1*|''|'(''|[^'])+('|$)|./g,Sp=/P+p+|P+|p+|''|'(''|[^'])+('|$)|./g,Cp=/^'([^]*?)'?$/,wp=/''/g,Tp=/\S/,Ep=/[a-zA-Z]/;function Dp(e,t,n,r){let i=()=>qu(r?.in||n,NaN),a=pf(),o=r?.locale??a.locale??Fd,s=r?.firstWeekContainsDate??r?.locale?.options?.firstWeekContainsDate??a.firstWeekContainsDate??a.locale?.options?.firstWeekContainsDate??1,c=r?.weekStartsOn??r?.locale?.options?.weekStartsOn??a.weekStartsOn??a.locale?.options?.weekStartsOn??0;if(!t)return e?i():U(n,r?.in);let l={firstWeekContainsDate:s,weekStartsOn:c,locale:o},u=[new wf(r?.in,n)],d=t.match(Sp).map(e=>{let t=e[0];if(t in Xd){let n=Xd[t];return n(e,o.formatLong)}return e}).join(``).match(xp),f=[];for(let n of d){!r?.useAdditionalWeekYearTokens&&tf(n)&&nf(n,t,e),!r?.useAdditionalDayOfYearTokens&&ef(n)&&nf(n,t,e);let a=n[0],s=bp[a];if(s){let{incompatibleTokens:t}=s;if(Array.isArray(t)){let e=f.find(e=>t.includes(e.token)||e.token===a);if(e)throw RangeError(`The format string mustn't contain \`${e.fullToken}\` and \`${n}\` at the same time`)}else if(s.incompatibleTokens===`*`&&f.length>0)throw RangeError(`The format string mustn't contain \`${n}\` and any other token at the same time`);f.push({token:a,fullToken:n});let r=s.run(e,n,o.match,l);if(!r)return i();u.push(r.setter),e=r.rest}else{if(a.match(Ep))throw RangeError("Format string contains an unescaped latin alphabet character `"+a+"`");if(n===`''`?n=`'`:a===`'`&&(n=Op(n)),e.indexOf(n)===0)e=e.slice(n.length);else return i()}}if(e.length>0&&Tp.test(e))return i();let p=u.map(e=>e.priority).sort((e,t)=>t-e).filter((e,t,n)=>n.indexOf(e)===t).map(e=>u.filter(t=>t.priority===e).sort((e,t)=>t.subPriority-e.subPriority)).map(e=>e[0]),m=U(n,r?.in);if(isNaN(+m))return i();let h={};for(let e of p){if(!e.validate(m,l))return i();let t=e.set(m,h,l);Array.isArray(t)?(m=t[0],Object.assign(h,t[1])):m=t}return m}function Op(e){return e.match(Cp)[1].replace(wp,`'`)}function kp(e,t,n){let[r,i]=nd(n?.in,e,t);return r.getFullYear()===i.getFullYear()&&r.getMonth()===i.getMonth()}function Ap(e,t,n){let[r,i]=nd(n?.in,e,t);return r.getFullYear()===i.getFullYear()}function jp(e,t,n){let r=U(e,n?.in),i=r.getFullYear(),a=r.getDate(),o=qu(n?.in||e,0);o.setFullYear(i,t,15),o.setHours(0,0,0,0);let s=ff(o);return r.setMonth(t,Math.min(a,s)),r}function Mp(e,t,n){let r=U(e,n?.in);return isNaN(+r)?qu(n?.in||e,NaN):(r.setFullYear(t),r)}function Np(e,t,n=`long`){return new Intl.DateTimeFormat(`en-US`,{hour:`numeric`,timeZone:e,timeZoneName:n}).format(t).split(/\s/g).slice(2).join(` `)}var Pp={},Fp={};function Ip(e,t){try{let n=(Pp[e]||=new Intl.DateTimeFormat(`en-US`,{timeZone:e,timeZoneName:`longOffset`}).format)(t).split(`GMT`)[1];return n in Fp?Fp[n]:Rp(n,n.split(`:`))}catch{if(e in Fp)return Fp[e];let t=e?.match(Lp);return t?Rp(e,t.slice(1)):NaN}}var Lp=/([+-]\d\d):?(\d\d)?/;function Rp(e,t){let n=+(t[0]||0),r=+(t[1]||0),i=(t[2]||0)/60;return Fp[e]=n*60+r>0?n*60+r+i:n*60-r-i}var zp=class e extends Date{constructor(...e){super(),e.length>1&&typeof e[e.length-1]==`string`&&(this.timeZone=e.pop()),this.internal=new Date,isNaN(Ip(this.timeZone,this))?this.setTime(NaN):e.length?typeof e[0]==`number`&&(e.length===1||e.length===2&&typeof e[1]!=`number`)?this.setTime(e[0]):typeof e[0]==`string`?this.setTime(+new Date(e[0])):e[0]instanceof Date?this.setTime(+e[0]):(this.setTime(+new Date(...e)),Up(this,e)):this.setTime(Date.now())}static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}withTimeZone(t){return new e(+this,t)}getTimezoneOffset(){let e=-Ip(this.timeZone,this);return e>0?Math.floor(e):Math.ceil(e)}setTime(e){return Date.prototype.setTime.apply(this,arguments),Vp(this),+this}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}},Bp=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!Bp.test(e))return;let t=e.replace(Bp,`$1UTC`);zp.prototype[t]&&(e.startsWith(`get`)?zp.prototype[e]=function(){return this.internal[t]()}:(zp.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),Hp(this),+this},zp.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),Vp(this),+this}))});function Vp(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-Ip(e.timeZone,e)*60))}function Hp(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),Up(e)}function Up(e,t){let n=Array.isArray(t)?Wp(t):+e.internal,r=Ip(e.timeZone,e),i=r>0?Math.floor(r):Math.ceil(r),a=new Date(+e);a.setUTCHours(a.getUTCHours()-1);let o=-new Date(+e).getTimezoneOffset(),s=-new Date(+a).getTimezoneOffset(),c=o-s,l=o;if(c&&o!==i&&Date.prototype.getHours.apply(e)!==(Array.isArray(t)?t[3]||0:e.internal.getUTCHours())){let t=new Date(+e),n=o-i;n&&t.setUTCMinutes(t.getUTCMinutes()+n);let r=Ip(e.timeZone,t);(r>0?Math.floor(r):Math.ceil(r))===i&&(l=s)}let u=l-i;u&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+u);let d=new Date(+e);d.setUTCSeconds(0);let f=o>0?d.getSeconds():(d.getSeconds()-60)%60,p=Math.round(-(Ip(e.timeZone,e)*60))%60;(p||f)&&Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+p+f);let m=Ip(e.timeZone,e),h=m>0?Math.floor(m):Math.ceil(m),g=-new Date(+e).getTimezoneOffset()-h,_=h!==i,v=g-u,y=h-i,b=n-h*60*1e3,x=y>0&&Gp(e)-n===y*60*1e3&&Gp(e,b)!==n;if(_&&v&&!x){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+v);let t=Ip(e.timeZone,e),n=h-(t>0?Math.floor(t):Math.ceil(t));n&&v<0&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+n)}Vp(e);let S=(t?n:n+p*1e3)-+e.internal;S&&Math.abs(S)<1800*1e3&&(Date.prototype.setTime.call(e,+e+S),Vp(e))}function Wp(e){return Date.UTC(e[0],e.length>1?e[1]:0,e.length>2?e[2]:1,...e.slice(3))}function Gp(e,t){let n=new Date(t??+e);return n.setUTCSeconds(n.getUTCSeconds()-Math.round(-Ip(e.timeZone,n)*60)),+n}var Kp=class e extends zp{static tz(t,...n){return n.length?new e(...n,t):new e(Date.now(),t)}toISOString(){let[e,t,n]=this.tzComponents(),r=`${e}${t}:${n}`;return this.internal.toISOString().slice(0,-1)+r}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){let[e,t,n,r]=this.internal.toUTCString().split(` `);return`${e?.slice(0,-1)} ${n} ${t} ${r}`}toTimeString(){let e=this.internal.toUTCString().split(` `)[4],[t,n,r]=this.tzComponents();return`${e} GMT${t}${n}${r} (${Np(this.timeZone,this)})`}toLocaleString(e,t){return Date.prototype.toLocaleString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleDateString(e,t){return Date.prototype.toLocaleDateString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}toLocaleTimeString(e,t){return Date.prototype.toLocaleTimeString.call(this,e,{...t,timeZone:t?.timeZone||this.timeZone})}tzComponents(){let e=this.getTimezoneOffset();return[e>0?`-`:`+`,String(Math.floor(Math.abs(e)/60)).padStart(2,`0`),String(Math.abs(e)%60).padStart(2,`0`)]}withTimeZone(t){return new e(+this,t)}[Symbol.for(`constructDateFrom`)](t){return new e(+new Date(t),this.timeZone)}},qp=5,Jp=4;function Yp(e,t){let n=t.startOfMonth(e),r=n.getDay()>0?n.getDay():7,i=t.addDays(e,-r+1),a=t.addDays(i,qp*7-1);return t.getMonth(e)===t.getMonth(a)?qp:Jp}function Xp(e,t){let n=t.startOfMonth(e),r=n.getDay();return r===1?n:r===0?t.addDays(n,-6):t.addDays(n,-1*(r-1))}function Zp(e,t){let n=Xp(e,t),r=Yp(e,t);return t.addDays(n,r*7-1)}var Qp={...Fd,labels:{labelDayButton:(e,t,n,r)=>{let i;i=r&&typeof r.format==`function`?r.format.bind(r):(e,t)=>uf(e,t,{locale:Fd,...n});let a=i(e,`PPPP`);return t.today&&(a=`Today, ${a}`),t.selected&&(a=`${a}, selected`),a},labelMonthDropdown:`Choose the Month`,labelNext:`Go to the Next Month`,labelPrevious:`Go to the Previous Month`,labelWeekNumber:e=>`Week ${e}`,labelYearDropdown:`Choose the Year`,labelGrid:(e,t,n)=>{let r;return r=n&&typeof n.format==`function`?n.format.bind(n):(e,n)=>uf(e,n,{locale:Fd,...t}),r(e,`LLLL yyyy`)},labelGridcell:(e,t,n,r)=>{let i;i=r&&typeof r.format==`function`?r.format.bind(r):(e,t)=>uf(e,t,{locale:Fd,...n});let a=i(e,`PPPP`);return t?.today&&(a=`Today, ${a}`),a},labelNav:`Navigation bar`,labelWeekNumberHeader:`Week Number`,labelWeekday:(e,t,n)=>{let r;return r=n&&typeof n.format==`function`?n.format.bind(n):(e,n)=>uf(e,n,{locale:Fd,...t}),r(e,`cccc`)}}},$p=class e{constructor(e,t){this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?Kp.tz(this.options.timeZone):new(this.options.Date??Date),this.newDate=(e,t,n)=>this.overrides?.newDate?this.overrides.newDate(e,t,n):this.options.timeZone?new Kp(e,t,n,this.options.timeZone):new Date(e,t,n),this.addDays=(e,t)=>this.overrides?.addDays?this.overrides.addDays(e,t):Ju(e,t),this.addMonths=(e,t)=>this.overrides?.addMonths?this.overrides.addMonths(e,t):Yu(e,t),this.addWeeks=(e,t)=>this.overrides?.addWeeks?this.overrides.addWeeks(e,t):od(e,t),this.addYears=(e,t)=>this.overrides?.addYears?this.overrides.addYears(e,t):sd(e,t),this.differenceInCalendarDays=(e,t)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(e,t):id(e,t),this.differenceInCalendarMonths=(e,t)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(e,t):pd(e,t),this.eachMonthOfInterval=e=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(e):gd(e),this.eachYearOfInterval=e=>{let t=this.overrides?.eachYearOfInterval?this.overrides.eachYearOfInterval(e):bd(e),n=new Set(t.map(e=>this.getYear(e)));if(n.size===t.length)return t;let r=[];return n.forEach(e=>{r.push(new Date(e,0,1))}),r},this.endOfBroadcastWeek=e=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(e):Zp(e,this),this.endOfISOWeek=e=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(e):Sd(e),this.endOfMonth=e=>this.overrides?.endOfMonth?this.overrides.endOfMonth(e):md(e),this.endOfWeek=(e,t)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(e,t):xd(e,this.options),this.endOfYear=e=>this.overrides?.endOfYear?this.overrides.endOfYear(e):vd(e),this.format=(e,t,n)=>{let r=this.overrides?.format?this.overrides.format(e,t,this.options):uf(e,t,this.options);return this.options.numerals&&this.options.numerals!==`latn`?this.replaceDigits(r):r},this.getISOWeek=e=>this.overrides?.getISOWeek?this.overrides.getISOWeek(e):Ld(e),this.getMonth=(e,t)=>this.overrides?.getMonth?this.overrides.getMonth(e,this.options):hf(e,this.options),this.getYear=(e,t)=>this.overrides?.getYear?this.overrides.getYear(e,this.options):gf(e,this.options),this.getWeek=(e,t)=>this.overrides?.getWeek?this.overrides.getWeek(e,this.options):Bd(e,this.options),this.isAfter=(e,t)=>this.overrides?.isAfter?this.overrides.isAfter(e,t):_f(e,t),this.isBefore=(e,t)=>this.overrides?.isBefore?this.overrides.isBefore(e,t):vf(e,t),this.isDate=e=>this.overrides?.isDate?this.overrides.isDate(e):dd(e),this.isSameDay=(e,t)=>this.overrides?.isSameDay?this.overrides.isSameDay(e,t):ud(e,t),this.isSameMonth=(e,t)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(e,t):kp(e,t),this.isSameYear=(e,t)=>this.overrides?.isSameYear?this.overrides.isSameYear(e,t):Ap(e,t),this.max=e=>this.overrides?.max?this.overrides.max(e):cd(e),this.min=e=>this.overrides?.min?this.overrides.min(e):ld(e),this.setMonth=(e,t)=>this.overrides?.setMonth?this.overrides.setMonth(e,t):jp(e,t),this.setYear=(e,t)=>this.overrides?.setYear?this.overrides.setYear(e,t):Mp(e,t),this.startOfBroadcastWeek=(e,t)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(e,this):Xp(e,this),this.startOfDay=e=>this.overrides?.startOfDay?this.overrides.startOfDay(e):rd(e),this.startOfISOWeek=e=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(e):$u(e),this.startOfMonth=e=>this.overrides?.startOfMonth?this.overrides.startOfMonth(e):_d(e),this.startOfWeek=(e,t)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(e,this.options):Qu(e,this.options),this.startOfYear=e=>this.overrides?.startOfYear?this.overrides.startOfYear(e):yd(e),this.options={locale:Qp,...e},this.overrides=t}getDigitMap(){let{numerals:e=`latn`}=this.options,t=new Intl.NumberFormat(`en-US`,{numberingSystem:e}),n={};for(let e=0;e<10;e++)n[e.toString()]=t.format(e);return n}replaceDigits(e){let t=this.getDigitMap();return e.replace(/\d/g,e=>t[e]||e)}formatNumber(e){return this.replaceDigits(e.toString())}getMonthYearOrder(){let t=this.options.locale?.code;return t&&e.yearFirstLocales.has(t)?`year-first`:`month-first`}formatMonthYear(t){let{locale:n,timeZone:r,numerals:i}=this.options,a=n?.code;if(a&&e.yearFirstLocales.has(a))try{return new Intl.DateTimeFormat(a,{month:`long`,year:`numeric`,timeZone:r,numberingSystem:i}).format(t)}catch{}let o=this.getMonthYearOrder()===`year-first`?`y LLLL`:`LLLL y`;return this.format(t,o)}};$p.yearFirstLocales=new Set([`eu`,`hu`,`ja`,`ja-Hira`,`ja-JP`,`ko`,`ko-KR`,`lt`,`lt-LT`,`lv`,`lv-LV`,`mn`,`mn-MN`,`zh`,`zh-CN`,`zh-HK`,`zh-TW`]);var em=new $p,tm=class{constructor(e,t,n=em){this.date=e,this.displayMonth=t,this.outside=!!(t&&!n.isSameMonth(e,t)),this.dateLib=n,this.isoDate=n.format(e,`yyyy-MM-dd`),this.displayMonthId=n.format(t,`yyyy-MM`),this.dateMonthId=n.format(e,`yyyy-MM`)}isEqualTo(e){return this.dateLib.isSameDay(e.date,this.date)&&this.dateLib.isSameMonth(e.displayMonth,this.displayMonth)}},nm=class{constructor(e,t){this.date=e,this.weeks=t}},rm=class{constructor(e,t){this.days=t,this.weekNumber=e}};function im(e){return L.createElement(`span`,{...e})}function am(e){let{size:t=24,orientation:n=`left`,className:r,style:i}=e;return L.createElement(`svg`,{className:r,style:i,width:t,height:t,viewBox:`0 0 24 24`},n===`up`&&L.createElement(`polygon`,{points:`6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28`}),n===`down`&&L.createElement(`polygon`,{points:`6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72`}),n===`left`&&L.createElement(`polygon`,{points:`16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20`}),n===`right`&&L.createElement(`polygon`,{points:`8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20`}))}function om(e){let{day:t,modifiers:n,...r}=e;return L.createElement(`td`,{...r})}function sm(e){let{day:t,modifiers:n,...r}=e,i=L.useRef(null);return L.useEffect(()=>{n.focused&&i.current?.focus()},[n.focused]),L.createElement(`button`,{ref:i,...r})}var W;(function(e){e.Root=`root`,e.Chevron=`chevron`,e.Day=`day`,e.DayButton=`day_button`,e.CaptionLabel=`caption_label`,e.Dropdowns=`dropdowns`,e.Dropdown=`dropdown`,e.DropdownRoot=`dropdown_root`,e.Footer=`footer`,e.MonthGrid=`month_grid`,e.MonthCaption=`month_caption`,e.MonthsDropdown=`months_dropdown`,e.Month=`month`,e.Months=`months`,e.Nav=`nav`,e.NextMonthButton=`button_next`,e.PreviousMonthButton=`button_previous`,e.Week=`week`,e.Weeks=`weeks`,e.Weekday=`weekday`,e.Weekdays=`weekdays`,e.WeekNumber=`week_number`,e.WeekNumberHeader=`week_number_header`,e.YearsDropdown=`years_dropdown`})(W||={});var cm;(function(e){e.disabled=`disabled`,e.hidden=`hidden`,e.outside=`outside`,e.focused=`focused`,e.today=`today`})(cm||={});var lm;(function(e){e.range_end=`range_end`,e.range_middle=`range_middle`,e.range_start=`range_start`,e.selected=`selected`})(lm||={});var um;(function(e){e.weeks_before_enter=`weeks_before_enter`,e.weeks_before_exit=`weeks_before_exit`,e.weeks_after_enter=`weeks_after_enter`,e.weeks_after_exit=`weeks_after_exit`,e.caption_after_enter=`caption_after_enter`,e.caption_after_exit=`caption_after_exit`,e.caption_before_enter=`caption_before_enter`,e.caption_before_exit=`caption_before_exit`})(um||={});var dm=(0,L.createContext)(void 0);function fm(){let e=(0,L.useContext)(dm);if(e===void 0)throw Error(`useDayPicker() must be used within a custom component.`);return e}function pm(e){let{options:t,className:n,...r}=e,{classNames:i,components:a,styles:o}=fm(),s=[i[W.Dropdown],n].join(` `),c=t?.find(({value:e})=>e===r.value);return L.createElement(`span`,{"data-disabled":r.disabled,className:i[W.DropdownRoot],style:o?.[W.DropdownRoot]},L.createElement(a.Select,{className:s,...r},t?.map(({value:e,label:t,disabled:n})=>L.createElement(a.Option,{key:e,value:e,disabled:n},t))),L.createElement(`span`,{className:i[W.CaptionLabel],style:o?.[W.CaptionLabel],"aria-hidden":!0},c?.label,L.createElement(a.Chevron,{orientation:`down`,size:18,className:i[W.Chevron],style:o?.[W.Chevron]})))}function mm(e){return L.createElement(`div`,{...e})}function hm(e){return L.createElement(`div`,{...e})}function gm(e){let{calendarMonth:t,displayIndex:n,...r}=e;return L.createElement(`div`,{...r},e.children)}function _m(e){let{calendarMonth:t,displayIndex:n,...r}=e;return L.createElement(`div`,{...r})}function vm(e){return L.createElement(`table`,{...e})}function ym(e){return L.createElement(`div`,{...e})}function bm(e){let{components:t}=fm();return L.createElement(t.Dropdown,{...e})}function xm(e){let{onPreviousClick:t,onNextClick:n,previousMonth:r,nextMonth:i,...a}=e,{components:o,classNames:s,styles:c,labels:{labelPrevious:l,labelNext:u}}=fm(),d=(0,L.useCallback)(e=>{i&&n?.(e)},[i,n]),f=(0,L.useCallback)(e=>{r&&t?.(e)},[r,t]);return L.createElement(`nav`,{...a},L.createElement(o.PreviousMonthButton,{type:`button`,className:s[W.PreviousMonthButton],style:c?.[W.PreviousMonthButton],tabIndex:r?void 0:-1,"aria-disabled":!r||void 0,"aria-label":l(r),onClick:f},L.createElement(o.Chevron,{disabled:!r||void 0,className:s[W.Chevron],style:c?.[W.Chevron],orientation:`left`})),L.createElement(o.NextMonthButton,{type:`button`,className:s[W.NextMonthButton],style:c?.[W.NextMonthButton],tabIndex:i?void 0:-1,"aria-disabled":!i||void 0,"aria-label":u(i),onClick:d},L.createElement(o.Chevron,{disabled:!i||void 0,orientation:`right`,className:s[W.Chevron],style:c?.[W.Chevron]})))}function Sm(e){return L.createElement(`button`,{...e})}function Cm(e){return L.createElement(`option`,{...e})}function wm(e){return L.createElement(`button`,{...e})}function Tm(e){let{rootRef:t,...n}=e;return L.createElement(`div`,{...n,ref:t})}function Em(e){return L.createElement(`select`,{...e})}function Dm(e){let{week:t,...n}=e;return L.createElement(`tr`,{...n})}function Om(e){return L.createElement(`th`,{...e})}function km(e){return L.createElement(`thead`,{"aria-hidden":!0},L.createElement(`tr`,{...e}))}function Am(e){let{week:t,...n}=e;return L.createElement(`th`,{...n})}function jm(e){return L.createElement(`th`,{...e})}function Mm(e){return L.createElement(`tbody`,{...e})}function Nm(e){let{components:t}=fm();return L.createElement(t.Dropdown,{...e})}var Pm=e({CaptionLabel:()=>im,Chevron:()=>am,Day:()=>om,DayButton:()=>sm,Dropdown:()=>pm,DropdownNav:()=>mm,Footer:()=>hm,Month:()=>gm,MonthCaption:()=>_m,MonthGrid:()=>vm,Months:()=>ym,MonthsDropdown:()=>bm,Nav:()=>xm,NextMonthButton:()=>Sm,Option:()=>Cm,PreviousMonthButton:()=>wm,Root:()=>Tm,Select:()=>Em,Week:()=>Dm,WeekNumber:()=>Am,WeekNumberHeader:()=>jm,Weekday:()=>Om,Weekdays:()=>km,Weeks:()=>Mm,YearsDropdown:()=>Nm});function Fm(e,t,n=!1,r=em){let{from:i,to:a}=e,{differenceInCalendarDays:o,isSameDay:s}=r;return i&&a?(o(a,i)<0&&([i,a]=[a,i]),o(t,i)>=+!!n&&o(a,t)>=+!!n):!n&&a?s(a,t):!n&&i?s(i,t):!1}function Im(e){return!!(e&&typeof e==`object`&&`before`in e&&`after`in e)}function Lm(e){return!!(e&&typeof e==`object`&&`from`in e)}function Rm(e){return!!(e&&typeof e==`object`&&`after`in e)}function zm(e){return!!(e&&typeof e==`object`&&`before`in e)}function Bm(e){return!!(e&&typeof e==`object`&&`dayOfWeek`in e)}function Vm(e,t){return Array.isArray(e)&&e.every(t.isDate)}function Hm(e,t,n=em){let r=Array.isArray(t)?t:[t],{isSameDay:i,differenceInCalendarDays:a,isAfter:o}=n;return r.some(t=>{if(typeof t==`boolean`)return t;if(n.isDate(t))return i(e,t);if(Vm(t,n))return t.some(t=>i(e,t));if(Lm(t))return Fm(t,e,!1,n);if(Bm(t))return Array.isArray(t.dayOfWeek)?t.dayOfWeek.includes(e.getDay()):t.dayOfWeek===e.getDay();if(Im(t)){let n=a(t.before,e),r=a(t.after,e),i=n>0,s=r<0;return o(t.before,t.after)?s&&i:i||s}return Rm(t)?a(e,t.after)>0:zm(t)?a(t.before,e)>0:typeof t==`function`&&t(e)})}function Um(e,t,n,r,i){let{disabled:a,hidden:o,modifiers:s,showOutsideDays:c,broadcastCalendar:l,today:u=i.today()}=t,{isSameDay:d,isSameMonth:f,startOfMonth:p,isBefore:m,endOfMonth:h,isAfter:g}=i,_=n&&p(n),v=r&&h(r),y={[cm.focused]:[],[cm.outside]:[],[cm.disabled]:[],[cm.hidden]:[],[cm.today]:[]},b={};for(let t of e){let{date:e,displayMonth:n}=t,r=!!(n&&!f(e,n)),p=!!(_&&m(e,_)),h=!!(v&&g(e,v)),x=!!(a&&Hm(e,a,i)),S=!!(o&&Hm(e,o,i))||p||h||!l&&!c&&r||l&&c===!1&&r,C=d(e,u);r&&y.outside.push(t),x&&y.disabled.push(t),S&&y.hidden.push(t),C&&y.today.push(t),s&&Object.keys(s).forEach(n=>{let r=s?.[n];r&&Hm(e,r,i)&&(b[n]?b[n].push(t):b[n]=[t])})}return e=>{let t={[cm.focused]:!1,[cm.disabled]:!1,[cm.hidden]:!1,[cm.outside]:!1,[cm.today]:!1},n={};for(let n in y)t[n]=y[n].some(t=>t===e);for(let t in b)n[t]=b[t].some(t=>t===e);return{...t,...n}}}function Wm(e,t,n={}){return Object.entries(e).filter(([,e])=>e===!0).reduce((e,[r])=>(n[r]?e.push(n[r]):t[cm[r]]?e.push(t[cm[r]]):t[lm[r]]&&e.push(t[lm[r]]),e),[t[W.Day]])}function Gm(e){return{...Pm,...e}}function Km(e){let t={"data-mode":e.mode??void 0,"data-required":`required`in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([e,n])=>{e.startsWith(`data-`)&&(t[e]=n)}),t}function qm(){let e={};for(let t in W)e[W[t]]=`rdp-${W[t]}`;for(let t in cm)e[cm[t]]=`rdp-${cm[t]}`;for(let t in lm)e[lm[t]]=`rdp-${lm[t]}`;for(let t in um)e[um[t]]=`rdp-${um[t]}`;return e}function Jm(e,t,n){return(n??new $p(t)).formatMonthYear(e)}function Ym(e,t,n){return(n??new $p(t)).format(e,`d`)}function Xm(e,t=em){return t.format(e,`LLLL`)}function Zm(e,t,n){return(n??new $p(t)).format(e,`cccccc`)}function Qm(e,t=em){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function $m(){return``}function eh(e,t=em){return t.format(e,`yyyy`)}var th=e({formatCaption:()=>Jm,formatDay:()=>Ym,formatMonthDropdown:()=>Xm,formatWeekNumber:()=>Qm,formatWeekNumberHeader:()=>$m,formatWeekdayName:()=>Zm,formatYearDropdown:()=>eh});function nh(e){return{...th,...e}}function rh(e,t,n,r){let i=(r??new $p(n)).format(e,`PPPP`);return t.today&&(i=`Today, ${i}`),t.selected&&(i=`${i}, selected`),i}function ih(e,t,n){return(n??new $p(t)).formatMonthYear(e)}function ah(e,t,n,r){let i=(r??new $p(n)).format(e,`PPPP`);return t?.today&&(i=`Today, ${i}`),i}function oh(e){return`Choose the Month`}function sh(){return``}var ch=`Go to the Next Month`;function lh(e,t){return ch}function uh(e){return`Go to the Previous Month`}function dh(e,t,n){return(n??new $p(t)).format(e,`cccc`)}function fh(e,t){return`Week ${e}`}function ph(e){return`Week Number`}function mh(e){return`Choose the Year`}var hh=e({labelDayButton:()=>rh,labelGrid:()=>ih,labelGridcell:()=>ah,labelMonthDropdown:()=>oh,labelNav:()=>sh,labelNext:()=>lh,labelPrevious:()=>uh,labelWeekNumber:()=>fh,labelWeekNumberHeader:()=>ph,labelWeekday:()=>dh,labelYearDropdown:()=>mh}),gh=(e,t,n)=>t||(n?typeof n==`function`?n:(...e)=>n:e);function _h(e,t){let n=t.locale?.labels??{};return{...hh,...e??{},labelDayButton:gh(rh,e?.labelDayButton,n.labelDayButton),labelMonthDropdown:gh(oh,e?.labelMonthDropdown,n.labelMonthDropdown),labelNext:gh(lh,e?.labelNext,n.labelNext),labelPrevious:gh(uh,e?.labelPrevious,n.labelPrevious),labelWeekNumber:gh(fh,e?.labelWeekNumber,n.labelWeekNumber),labelYearDropdown:gh(mh,e?.labelYearDropdown,n.labelYearDropdown),labelGrid:gh(ih,e?.labelGrid,n.labelGrid),labelGridcell:gh(ah,e?.labelGridcell,n.labelGridcell),labelNav:gh(sh,e?.labelNav,n.labelNav),labelWeekNumberHeader:gh(ph,e?.labelWeekNumberHeader,n.labelWeekNumberHeader),labelWeekday:gh(dh,e?.labelWeekday,n.labelWeekday)}}function vh(e,t,n,r,i){let{startOfMonth:a,startOfYear:o,endOfYear:s,eachMonthOfInterval:c,getMonth:l}=i;return c({start:o(e),end:s(e)}).map(e=>{let o=r.formatMonthDropdown(e,i);return{value:l(e),label:o,disabled:t&&e<a(t)||n&&e>a(n)||!1}})}function yh(e,t={},n={}){let r={...t?.[W.Day]};return Object.entries(e).filter(([,e])=>e===!0).forEach(([e])=>{r={...r,...n?.[e]}}),r}function bh(e,t,n,r){let i=r??e.today(),a=n?e.startOfBroadcastWeek(i,e):t?e.startOfISOWeek(i):e.startOfWeek(i),o=[];for(let t=0;t<7;t++){let n=e.addDays(a,t);o.push(n)}return o}function xh(e,t,n,r,i=!1){if(!e||!t)return;let{startOfYear:a,endOfYear:o,eachYearOfInterval:s,getYear:c}=r,l=s({start:a(e),end:o(t)});return i&&l.reverse(),l.map(e=>{let t=n.formatYearDropdown(e,r);return{value:c(e),label:t,disabled:!1}})}function Sh(e,t={}){let{weekStartsOn:n,locale:r}=t,i=n??r?.options?.weekStartsOn??0,a=t=>{let n=typeof t==`number`||typeof t==`string`?new Date(t):t;return new Kp(n.getFullYear(),n.getMonth(),n.getDate(),12,0,0,e)},o=e=>{let t=a(e);return new Date(t.getFullYear(),t.getMonth(),t.getDate(),0,0,0,0)};return{today:()=>a(Kp.tz(e)),newDate:(t,n,r)=>new Kp(t,n,r,12,0,0,e),startOfDay:e=>a(e),startOfWeek:(e,t)=>{let n=a(e),r=t?.weekStartsOn??i,o=(n.getDay()-r+7)%7;return n.setDate(n.getDate()-o),n},startOfISOWeek:e=>{let t=a(e),n=(t.getDay()-1+7)%7;return t.setDate(t.getDate()-n),t},startOfMonth:e=>{let t=a(e);return t.setDate(1),t},startOfYear:e=>{let t=a(e);return t.setMonth(0,1),t},endOfWeek:(e,t)=>{let n=a(e),r=(((t?.weekStartsOn??i)+6)%7-n.getDay()+7)%7;return n.setDate(n.getDate()+r),n},endOfISOWeek:e=>{let t=a(e),n=(7-t.getDay())%7;return t.setDate(t.getDate()+n),t},endOfMonth:e=>{let t=a(e);return t.setMonth(t.getMonth()+1,0),t},endOfYear:e=>{let t=a(e);return t.setMonth(11,31),t},eachMonthOfInterval:t=>{let n=a(t.start),r=a(t.end),i=[],o=new Kp(n.getFullYear(),n.getMonth(),1,12,0,0,e),s=r.getFullYear()*12+r.getMonth();for(;o.getFullYear()*12+o.getMonth()<=s;)i.push(new Kp(o,e)),o.setMonth(o.getMonth()+1,1);return i},addDays:(e,t)=>{let n=a(e);return n.setDate(n.getDate()+t),n},addWeeks:(e,t)=>{let n=a(e);return n.setDate(n.getDate()+t*7),n},addMonths:(e,t)=>{let n=a(e);return n.setMonth(n.getMonth()+t),n},addYears:(e,t)=>{let n=a(e);return n.setFullYear(n.getFullYear()+t),n},eachYearOfInterval:t=>{let n=a(t.start),r=a(t.end),i=[],o=new Kp(n.getFullYear(),0,1,12,0,0,e);for(;o.getFullYear()<=r.getFullYear();)i.push(new Kp(o,e)),o.setFullYear(o.getFullYear()+1,0,1);return i},getWeek:(e,t)=>Bd(o(e),{weekStartsOn:t?.weekStartsOn??i,firstWeekContainsDate:t?.firstWeekContainsDate??r?.options?.firstWeekContainsDate??1}),getISOWeek:e=>Ld(o(e)),differenceInCalendarDays:(e,t)=>id(o(e),o(t)),differenceInCalendarMonths:(e,t)=>pd(o(e),o(t))}}var Ch=e=>e instanceof HTMLElement?e:null,wh=e=>[...e.querySelectorAll(`[data-animated-month]`)??[]],Th=e=>Ch(e.querySelector(`[data-animated-month]`)),Eh=e=>Ch(e.querySelector(`[data-animated-caption]`)),Dh=e=>Ch(e.querySelector(`[data-animated-weeks]`)),Oh=e=>Ch(e.querySelector(`[data-animated-nav]`)),kh=e=>Ch(e.querySelector(`[data-animated-weekdays]`));function Ah(e,t,{classNames:n,months:r,focused:i,dateLib:a}){let o=(0,L.useRef)(null),s=(0,L.useRef)(r),c=(0,L.useRef)(!1);(0,L.useLayoutEffect)(()=>{let l=s.current;if(s.current=r,!t||!e.current||!(e.current instanceof HTMLElement)||r.length===0||l.length===0||r.length!==l.length)return;let u=a.isSameMonth(r[0].date,l[0].date),d=a.isAfter(r[0].date,l[0].date),f=d?n[um.caption_after_enter]:n[um.caption_before_enter],p=d?n[um.weeks_after_enter]:n[um.weeks_before_enter],m=o.current,h=e.current.cloneNode(!0);if(h instanceof HTMLElement?(wh(h).forEach(e=>{if(!(e instanceof HTMLElement))return;let t=Th(e);t&&e.contains(t)&&e.removeChild(t);let n=Eh(e);n&&n.classList.remove(f);let r=Dh(e);r&&r.classList.remove(p)}),o.current=h):o.current=null,c.current||u||i)return;let g=m instanceof HTMLElement?wh(m):[],_=wh(e.current);if(_?.every(e=>e instanceof HTMLElement)&&g?.every(e=>e instanceof HTMLElement)){c.current=!0;let t=[];e.current.style.isolation=`isolate`;let r=Oh(e.current);r&&(r.style.zIndex=`1`),_.forEach((i,a)=>{let o=g[a];if(!o)return;i.style.position=`relative`,i.style.overflow=`hidden`;let s=Eh(i);s&&s.classList.add(f);let l=Dh(i);l&&l.classList.add(p);let u=()=>{c.current=!1,e.current&&(e.current.style.isolation=``),r&&(r.style.zIndex=``),s&&s.classList.remove(f),l&&l.classList.remove(p),i.style.position=``,i.style.overflow=``,i.contains(o)&&i.removeChild(o)};t.push(u),o.style.pointerEvents=`none`,o.style.position=`absolute`,o.style.overflow=`hidden`,o.setAttribute(`aria-hidden`,`true`);let m=kh(o);m&&(m.style.opacity=`0`);let h=Eh(o);h&&(h.classList.add(d?n[um.caption_before_exit]:n[um.caption_after_exit]),h.addEventListener(`animationend`,u));let _=Dh(o);_&&_.classList.add(d?n[um.weeks_before_exit]:n[um.weeks_after_exit]),i.insertBefore(o,i.firstChild)})}})}function jh(e,t,n,r){let i=e[0],a=e[e.length-1],{ISOWeek:o,fixedWeeks:s,broadcastCalendar:c}=n??{},{addDays:l,differenceInCalendarDays:u,differenceInCalendarMonths:d,endOfBroadcastWeek:f,endOfISOWeek:p,endOfMonth:m,endOfWeek:h,isAfter:g,startOfBroadcastWeek:_,startOfISOWeek:v,startOfWeek:y}=r,b=c?_(i,r):o?v(i):y(i),x=c?f(a):o?p(m(a)):h(m(a)),S=t&&(c?f(t):o?p(t):h(t)),C=u(S&&g(x,S)?S:x,b),w=d(a,i)+1,T=[];for(let e=0;e<=C;e++){let t=l(b,e);T.push(t)}let E=(c?35:42)*w;if(s&&T.length<E){let e=E-T.length;for(let t=0;t<e;t++){let e=l(T[T.length-1],1);T.push(e)}}return T}function Mh(e){let t=[];return e.reduce((e,n)=>{let r=n.weeks.reduce((e,t)=>e.concat(t.days.slice()),t.slice());return e.concat(r.slice())},t.slice())}function Nh(e,t,n,r){let{numberOfMonths:i=1}=n,a=[];for(let n=0;n<i;n++){let i=r.addMonths(e,n);if(t&&i>t)break;a.push(i)}return a}function Ph(e,t,n,r){let{month:i,defaultMonth:a,today:o=r.today(),numberOfMonths:s=1}=e,c=i||a||o,{differenceInCalendarMonths:l,addMonths:u,startOfMonth:d}=r;return n&&l(n,c)<s-1&&(c=u(n,-1*(s-1))),t&&l(c,t)<0&&(c=t),d(c)}function Fh(e,t,n,r){let{addDays:i,endOfBroadcastWeek:a,endOfISOWeek:o,endOfMonth:s,endOfWeek:c,getISOWeek:l,getWeek:u,startOfBroadcastWeek:d,startOfISOWeek:f,startOfWeek:p}=r,m=e.reduce((e,m)=>{let h=n.broadcastCalendar?d(m,r):n.ISOWeek?f(m):p(m),g=n.broadcastCalendar?a(m):n.ISOWeek?o(s(m)):c(s(m)),_=t.filter(e=>e>=h&&e<=g),v=n.broadcastCalendar?35:42;if(n.fixedWeeks&&_.length<v){let e=t.filter(e=>{let t=v-_.length;return e>g&&e<=i(g,t)});_.push(...e)}let y=new nm(m,_.reduce((e,t)=>{let i=n.ISOWeek?l(t):u(t),a=e.find(e=>e.weekNumber===i),o=new tm(t,m,r);return a?a.days.push(o):e.push(new rm(i,[o])),e},[]));return e.push(y),e},[]);return n.reverseMonths?m.reverse():m}function Ih(e,t){let{startMonth:n,endMonth:r}=e,{startOfYear:i,startOfDay:a,startOfMonth:o,endOfMonth:s,addYears:c,endOfYear:l,today:u}=t,d=e.captionLayout===`dropdown`||e.captionLayout===`dropdown-years`;return n?n=o(n):!n&&d&&(n=i(c(e.today??u(),-100))),r?r=s(r):!r&&d&&(r=l(e.today??u())),[n&&a(n),r&&a(r)]}function Lh(e,t,n,r){if(n.disableNavigation)return;let{pagedNavigation:i,numberOfMonths:a=1}=n,{startOfMonth:o,addMonths:s,differenceInCalendarMonths:c}=r,l=i?a:1,u=o(e);if(!t||!(c(t,e)<a))return s(u,l)}function Rh(e,t,n,r){if(n.disableNavigation)return;let{pagedNavigation:i,numberOfMonths:a}=n,{startOfMonth:o,addMonths:s,differenceInCalendarMonths:c}=r,l=i?a??1:1,u=o(e);if(!t||!(c(u,t)<=0))return s(u,-l)}function zh(e){return e.reduce((e,t)=>e.concat(t.weeks.slice()),[].slice())}function Bh(e,t){let[n,r]=(0,L.useState)(e);return[t===void 0?n:t,r]}function Vh(e,t){let[n,r]=Ih(e,t),{startOfMonth:i,endOfMonth:a}=t,o=Ph(e,n,r,t),[s,c]=Bh(o,e.month?o:void 0);(0,L.useEffect)(()=>{let i=Ph(e,n,r,t);c(i)},[e.timeZone]);let{months:l,weeks:u,days:d,previousMonth:f,nextMonth:p}=(0,L.useMemo)(()=>{let i=Nh(s,r,{numberOfMonths:e.numberOfMonths},t),o=Fh(i,jh(i,e.endMonth?a(e.endMonth):void 0,{ISOWeek:e.ISOWeek,fixedWeeks:e.fixedWeeks,broadcastCalendar:e.broadcastCalendar},t),{broadcastCalendar:e.broadcastCalendar,fixedWeeks:e.fixedWeeks,ISOWeek:e.ISOWeek,reverseMonths:e.reverseMonths},t);return{months:o,weeks:zh(o),days:Mh(o),previousMonth:Rh(s,n,e,t),nextMonth:Lh(s,r,e,t)}},[t,s.getTime(),r?.getTime(),n?.getTime(),e.disableNavigation,e.broadcastCalendar,e.endMonth?.getTime(),e.fixedWeeks,e.ISOWeek,e.numberOfMonths,e.pagedNavigation,e.reverseMonths]),{disableNavigation:m,onMonthChange:h}=e,g=e=>u.some(t=>t.days.some(t=>t.isEqualTo(e))),_=e=>{if(m)return;let t=i(e);n&&t<i(n)&&(t=i(n)),r&&t>i(r)&&(t=i(r)),c(t),h?.(t)};return{months:l,weeks:u,days:d,navStart:n,navEnd:r,previousMonth:f,nextMonth:p,goToMonth:_,goToDay:e=>{g(e)||_(e.date)}}}var Hh;(function(e){e[e.Today=0]=`Today`,e[e.Selected=1]=`Selected`,e[e.LastFocused=2]=`LastFocused`,e[e.FocusedModifier=3]=`FocusedModifier`})(Hh||={});function Uh(e){return!e[cm.disabled]&&!e[cm.hidden]&&!e[cm.outside]}function Wh(e,t,n,r){let i,a=-1;for(let o of e){let e=t(o);Uh(e)&&(e[cm.focused]&&a<Hh.FocusedModifier?(i=o,a=Hh.FocusedModifier):r?.isEqualTo(o)&&a<Hh.LastFocused?(i=o,a=Hh.LastFocused):n(o.date)&&a<Hh.Selected?(i=o,a=Hh.Selected):e[cm.today]&&a<Hh.Today&&(i=o,a=Hh.Today))}return i||=e.find(e=>Uh(t(e))),i}function Gh(e,t,n,r,i,a,o){let{ISOWeek:s,broadcastCalendar:c}=a,{addDays:l,addMonths:u,addWeeks:d,addYears:f,endOfBroadcastWeek:p,endOfISOWeek:m,endOfWeek:h,max:g,min:_,startOfBroadcastWeek:v,startOfISOWeek:y,startOfWeek:b}=o,x={day:l,week:d,month:u,year:f,startOfWeek:e=>c?v(e,o):s?y(e):b(e),endOfWeek:e=>c?p(e):s?m(e):h(e)}[e](n,t===`after`?1:-1);return t===`before`&&r?x=g([r,x]):t===`after`&&i&&(x=_([i,x])),x}function Kh(e,t,n,r,i,a,o,s=0){if(s>365)return;let c=Gh(e,t,n.date,r,i,a,o),l=!!(a.disabled&&Hm(c,a.disabled,o)),u=!!(a.hidden&&Hm(c,a.hidden,o)),d=new tm(c,c,o);return!l&&!u?d:Kh(e,t,d,r,i,a,o,s+1)}function qh(e,t,n,r,i){let{autoFocus:a}=e,[o,s]=(0,L.useState)(),c=Wh(t.days,n,r||(()=>!1),o),[l,u]=(0,L.useState)(a?c:void 0);return{isFocusTarget:e=>!!c?.isEqualTo(e),setFocused:u,focused:l,blur:()=>{s(l),u(void 0)},moveFocus:(n,r)=>{if(!l)return;let a=Kh(n,r,l,t.navStart,t.navEnd,e,i);a&&(e.disableNavigation&&!t.days.some(e=>e.isEqualTo(a))||(t.goToDay(a),u(a)))}}}function Jh(e,t){let{selected:n,required:r,onSelect:i}=e,[a,o]=Bh(n,i?n:void 0),s=i?n:a,{isSameDay:c}=t,l=e=>s?.some(t=>c(t,e))??!1,{min:u,max:d}=e;return{selected:s,select:(e,t,n)=>{let a=[...s??[]];if(l(e)){if(s?.length===u||r&&s?.length===1)return;a=s?.filter(t=>!c(t,e))}else a=s?.length===d?[e]:[...a,e];return i||o(a),i?.(a,e,t,n),a},isSelected:l}}function Yh(e,t,n=0,r=0,i=!1,a=em){let{from:o,to:s}=t||{},{isSameDay:c,isAfter:l,isBefore:u}=a,d;if(!o&&!s)d={from:e,to:n>0?void 0:e};else if(o&&!s)d=c(o,e)?n===0?{from:o,to:e}:i?{from:o,to:void 0}:void 0:u(e,o)?{from:e,to:o}:{from:o,to:e};else if(o&&s)if(c(o,e)&&c(s,e))d=i?{from:o,to:s}:void 0;else if(c(o,e))d={from:o,to:n>0?void 0:e};else if(c(s,e))d={from:e,to:n>0?void 0:e};else if(u(e,o))d={from:e,to:s};else if(l(e,o))d={from:o,to:e};else if(l(e,s))d={from:o,to:e};else throw Error(`Invalid range`);if(d?.from&&d?.to){let t=a.differenceInCalendarDays(d.to,d.from);(r>0&&t>r||n>1&&t<n)&&(d={from:e,to:void 0})}return d}function Xh(e,t,n=em){let r=Array.isArray(t)?t:[t],i=e.from,a=n.differenceInCalendarDays(e.to,e.from),o=Math.min(a,6);for(let e=0;e<=o;e++){if(r.includes(i.getDay()))return!0;i=n.addDays(i,1)}return!1}function Zh(e,t,n=em){return Fm(e,t.from,!1,n)||Fm(e,t.to,!1,n)||Fm(t,e.from,!1,n)||Fm(t,e.to,!1,n)}function Qh(e,t,n=em){let r=Array.isArray(t)?t:[t];if(r.filter(e=>typeof e!=`function`).some(t=>typeof t==`boolean`?t:n.isDate(t)?Fm(e,t,!1,n):Vm(t,n)?t.some(t=>Fm(e,t,!1,n)):Lm(t)?t.from&&t.to?Zh(e,{from:t.from,to:t.to},n):!1:Bm(t)?Xh(e,t.dayOfWeek,n):Im(t)?n.isAfter(t.before,t.after)?Zh(e,{from:n.addDays(t.after,1),to:n.addDays(t.before,-1)},n):Hm(e.from,t,n)||Hm(e.to,t,n):Rm(t)||zm(t)?Hm(e.from,t,n)||Hm(e.to,t,n):!1))return!0;let i=r.filter(e=>typeof e==`function`);if(i.length){let t=e.from,r=n.differenceInCalendarDays(e.to,e.from);for(let e=0;e<=r;e++){if(i.some(e=>e(t)))return!0;t=n.addDays(t,1)}}return!1}function $h(e,t){let{disabled:n,excludeDisabled:r,resetOnSelect:i,selected:a,required:o,onSelect:s}=e,[c,l]=Bh(a,s?a:void 0),u=s?a:c;return{selected:u,select:(a,c,d)=>{let{min:f,max:p}=e,m;if(a){let e=u?.from,n=u?.to,r=!!e&&!!n,s=!!e&&!!n&&t.isSameDay(e,n)&&t.isSameDay(a,e);m=i&&(r||!u?.from)?!o&&s?void 0:{from:a,to:void 0}:Yh(a,u,f,p,o,t)}return r&&n&&m?.from&&m.to&&Qh({from:m.from,to:m.to},n,t)&&(m.from=a,m.to=void 0),s||l(m),s?.(m,a,c,d),m},isSelected:e=>u&&Fm(u,e,!1,t)}}function eg(e,t){let{selected:n,required:r,onSelect:i}=e,[a,o]=Bh(n,i?n:void 0),s=i?n:a,{isSameDay:c}=t;return{selected:s,select:(e,t,n)=>{let a=e;return!r&&s&&s&&c(e,s)&&(a=void 0),i||o(a),i?.(a,e,t,n),a},isSelected:e=>s?c(s,e):!1}}function tg(e,t){let n=eg(e,t),r=Jh(e,t),i=$h(e,t);switch(e.mode){case`single`:return n;case`multiple`:return r;case`range`:return i;default:return}}function ng(e,t){return e instanceof Kp&&e.timeZone===t?e:new Kp(e,t)}function rg(e,t,n){if(!n)return ng(e,t);let r=ng(e,t),i=new Kp(r.getFullYear(),r.getMonth(),r.getDate(),12,0,0,t);return new Date(i.getTime())}function ig(e,t,n){return typeof e==`boolean`||typeof e==`function`?e:e instanceof Date?rg(e,t,n):Array.isArray(e)?e.map(e=>e instanceof Date?rg(e,t,n):e):Lm(e)?{...e,from:e.from?ng(e.from,t):e.from,to:e.to?ng(e.to,t):e.to}:Im(e)?{before:rg(e.before,t,n),after:rg(e.after,t,n)}:Rm(e)?{after:rg(e.after,t,n)}:zm(e)?{before:rg(e.before,t,n)}:e}function ag(e,t,n){return e&&(Array.isArray(e)?e.map(e=>ig(e,t,n)):ig(e,t,n))}function og(e){let t=e,n=t.timeZone;if(n&&(t={...e,timeZone:n},t.today&&=ng(t.today,n),t.month&&=ng(t.month,n),t.defaultMonth&&=ng(t.defaultMonth,n),t.startMonth&&=ng(t.startMonth,n),t.endMonth&&=ng(t.endMonth,n),t.mode===`single`&&t.selected?t.selected=ng(t.selected,n):t.mode===`multiple`&&t.selected?t.selected=t.selected?.map(e=>ng(e,n)):t.mode===`range`&&t.selected&&(t.selected={from:t.selected.from?ng(t.selected.from,n):t.selected.from,to:t.selected.to?ng(t.selected.to,n):t.selected.to}),t.disabled!==void 0&&(t.disabled=ag(t.disabled,n)),t.hidden!==void 0&&(t.hidden=ag(t.hidden,n)),t.modifiers)){let e={};Object.keys(t.modifiers).forEach(r=>{e[r]=ag(t.modifiers?.[r],n)}),t.modifiers=e}let{components:r,formatters:i,labels:a,dateLib:o,locale:s,classNames:c}=(0,L.useMemo)(()=>{let e={...Qp,...t.locale},n=t.broadcastCalendar?1:t.weekStartsOn,r=t.noonSafe&&t.timeZone?Sh(t.timeZone,{weekStartsOn:n,locale:e}):void 0,i=t.dateLib&&r?{...r,...t.dateLib}:t.dateLib??r,a=new $p({locale:e,weekStartsOn:n,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},i);return{dateLib:a,components:Gm(t.components),formatters:nh(t.formatters),labels:_h(t.labels,a.options),locale:e,classNames:{...qm(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.noonSafe,t.components,t.formatters,t.labels,t.classNames]);t.today||(t={...t,today:o.today()});let{captionLayout:l,mode:u,navLayout:d,numberOfMonths:f=1,onDayBlur:p,onDayClick:m,onDayFocus:h,onDayKeyDown:g,onDayMouseEnter:_,onDayMouseLeave:v,onNextClick:y,onPrevClick:b,showWeekNumber:x,styles:S}=t,{formatCaption:C,formatDay:w,formatMonthDropdown:T,formatWeekNumber:E,formatWeekNumberHeader:D,formatWeekdayName:O,formatYearDropdown:k}=i,A=Vh(t,o),{days:ee,months:te,navStart:ne,navEnd:j,previousMonth:M,nextMonth:re,goToMonth:ie}=A,ae=Um(ee,t,ne,j,o),{isSelected:oe,select:se,selected:ce}=tg(t,o)??{},{blur:le,focused:ue,isFocusTarget:N,moveFocus:P,setFocused:de}=qh(t,A,ae,oe??(()=>!1),o),{labelDayButton:fe,labelGridcell:pe,labelGrid:me,labelMonthDropdown:he,labelNav:ge,labelPrevious:_e,labelNext:ve,labelWeekday:ye,labelWeekNumber:be,labelWeekNumberHeader:xe,labelYearDropdown:Se}=a,Ce=(0,L.useMemo)(()=>bh(o,t.ISOWeek,t.broadcastCalendar,t.today),[o,t.ISOWeek,t.broadcastCalendar,t.today]),we=u!==void 0||m!==void 0,Te=(0,L.useCallback)(()=>{M&&(ie(M),b?.(M))},[M,ie,b]),Ee=(0,L.useCallback)(()=>{re&&(ie(re),y?.(re))},[ie,re,y]),De=(0,L.useCallback)((e,t)=>n=>{n.preventDefault(),n.stopPropagation(),de(e),!t.disabled&&(se?.(e.date,t,n),m?.(e.date,t,n))},[se,m,de]),Oe=(0,L.useCallback)((e,t)=>n=>{de(e),h?.(e.date,t,n)},[h,de]),ke=(0,L.useCallback)((e,t)=>n=>{le(),p?.(e.date,t,n)},[le,p]),Ae=(0,L.useCallback)((e,n)=>r=>{let i={ArrowLeft:[r.shiftKey?`month`:`day`,t.dir===`rtl`?`after`:`before`],ArrowRight:[r.shiftKey?`month`:`day`,t.dir===`rtl`?`before`:`after`],ArrowDown:[r.shiftKey?`year`:`week`,`after`],ArrowUp:[r.shiftKey?`year`:`week`,`before`],PageUp:[r.shiftKey?`year`:`month`,`before`],PageDown:[r.shiftKey?`year`:`month`,`after`],Home:[`startOfWeek`,`before`],End:[`endOfWeek`,`after`]};if(i[r.key]){r.preventDefault(),r.stopPropagation();let[e,t]=i[r.key];P(e,t)}g?.(e.date,n,r)},[P,g,t.dir]),je=(0,L.useCallback)((e,t)=>n=>{_?.(e.date,t,n)},[_]),Me=(0,L.useCallback)((e,t)=>n=>{v?.(e.date,t,n)},[v]),Ne=(0,L.useCallback)((e,t)=>n=>{let r=Number(n.target.value),i=o.setMonth(o.startOfMonth(e),r);ie(o.addMonths(i,-t))},[o,ie]),Pe=(0,L.useCallback)((e,t)=>n=>{let r=Number(n.target.value),i=o.setYear(o.startOfMonth(e),r);ie(o.addMonths(i,-t))},[o,ie]),{className:Fe,style:Ie}=(0,L.useMemo)(()=>({className:[c[W.Root],t.className].filter(Boolean).join(` `),style:{...S?.[W.Root],...t.style}}),[c,t.className,t.style,S]),Le=Km(t),Re=e=>{let t=S?.[W.Dropdown],n=S?.[e];if(!(!t&&!n))return{...t,...n}},ze=(0,L.useRef)(null);Ah(ze,!!t.animate,{classNames:c,months:te,focused:ue,dateLib:o});let Be={dayPickerProps:t,selected:ce,select:se,isSelected:oe,months:te,nextMonth:re,previousMonth:M,goToMonth:ie,getModifiers:ae,components:r,classNames:c,styles:S,labels:a,formatters:i};return L.createElement(dm.Provider,{value:Be},L.createElement(r.Root,{rootRef:t.animate?ze:void 0,className:Fe,style:Ie,dir:t.dir,id:t.id,lang:t.lang??s.code,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t[`aria-label`],"aria-labelledby":t[`aria-labelledby`],...Le},L.createElement(r.Months,{className:c[W.Months],style:S?.[W.Months]},!t.hideNavigation&&!d&&L.createElement(r.Nav,{"data-animated-nav":t.animate?`true`:void 0,className:c[W.Nav],style:S?.[W.Nav],"aria-label":ge(),onPreviousClick:Te,onNextClick:Ee,previousMonth:M,nextMonth:re}),te.map((e,n)=>{let a=t.reverseMonths?te.length-1-n:n;return L.createElement(r.Month,{"data-animated-month":t.animate?`true`:void 0,className:c[W.Month],style:S?.[W.Month],key:n,displayIndex:n,calendarMonth:e},d===`around`&&!t.hideNavigation&&n===0&&L.createElement(r.PreviousMonthButton,{type:`button`,className:c[W.PreviousMonthButton],style:S?.[W.PreviousMonthButton],tabIndex:M?void 0:-1,"aria-disabled":!M||void 0,"aria-label":_e(M),onClick:Te,"data-animated-button":t.animate?`true`:void 0},L.createElement(r.Chevron,{disabled:!M||void 0,className:c[W.Chevron],style:S?.[W.Chevron],orientation:t.dir===`rtl`?`right`:`left`})),L.createElement(r.MonthCaption,{"data-animated-caption":t.animate?`true`:void 0,className:c[W.MonthCaption],style:S?.[W.MonthCaption],calendarMonth:e,displayIndex:n},l?.startsWith(`dropdown`)?L.createElement(r.DropdownNav,{className:c[W.Dropdowns],style:S?.[W.Dropdowns]},(()=>{let n=l===`dropdown`||l===`dropdown-months`?L.createElement(r.MonthsDropdown,{key:`month`,className:c[W.MonthsDropdown],"aria-label":he(),disabled:!!t.disableNavigation,onChange:Ne(e.date,a),options:vh(e.date,ne,j,i,o),style:Re(W.MonthsDropdown),value:o.getMonth(e.date)}):L.createElement(`span`,{key:`month`},T(e.date,o)),s=l===`dropdown`||l===`dropdown-years`?L.createElement(r.YearsDropdown,{key:`year`,className:c[W.YearsDropdown],"aria-label":Se(o.options),disabled:!!t.disableNavigation,onChange:Pe(e.date,a),options:xh(ne,j,i,o,!!t.reverseYears),style:Re(W.YearsDropdown),value:o.getYear(e.date)}):L.createElement(`span`,{key:`year`},k(e.date,o));return o.getMonthYearOrder()===`year-first`?[s,n]:[n,s]})(),L.createElement(`span`,{role:`status`,"aria-live":`polite`,style:{border:0,clip:`rect(0 0 0 0)`,height:`1px`,margin:`-1px`,overflow:`hidden`,padding:0,position:`absolute`,width:`1px`,whiteSpace:`nowrap`,wordWrap:`normal`}},C(e.date,o.options,o))):L.createElement(r.CaptionLabel,{className:c[W.CaptionLabel],style:S?.[W.CaptionLabel],role:`status`,"aria-live":`polite`},C(e.date,o.options,o))),d===`around`&&!t.hideNavigation&&n===f-1&&L.createElement(r.NextMonthButton,{type:`button`,className:c[W.NextMonthButton],style:S?.[W.NextMonthButton],tabIndex:re?void 0:-1,"aria-disabled":!re||void 0,"aria-label":ve(re),onClick:Ee,"data-animated-button":t.animate?`true`:void 0},L.createElement(r.Chevron,{disabled:!re||void 0,className:c[W.Chevron],style:S?.[W.Chevron],orientation:t.dir===`rtl`?`left`:`right`})),n===f-1&&d===`after`&&!t.hideNavigation&&L.createElement(r.Nav,{"data-animated-nav":t.animate?`true`:void 0,className:c[W.Nav],style:S?.[W.Nav],"aria-label":ge(),onPreviousClick:Te,onNextClick:Ee,previousMonth:M,nextMonth:re}),L.createElement(r.MonthGrid,{role:`grid`,"aria-multiselectable":u===`multiple`||u===`range`,"aria-label":me(e.date,o.options,o)||void 0,className:c[W.MonthGrid],style:S?.[W.MonthGrid]},!t.hideWeekdays&&L.createElement(r.Weekdays,{"data-animated-weekdays":t.animate?`true`:void 0,className:c[W.Weekdays],style:S?.[W.Weekdays]},x&&L.createElement(r.WeekNumberHeader,{"aria-label":xe(o.options),className:c[W.WeekNumberHeader],style:S?.[W.WeekNumberHeader],scope:`col`},D()),Ce.map(e=>L.createElement(r.Weekday,{"aria-label":ye(e,o.options,o),className:c[W.Weekday],key:String(e),style:S?.[W.Weekday],scope:`col`},O(e,o.options,o)))),L.createElement(r.Weeks,{"data-animated-weeks":t.animate?`true`:void 0,className:c[W.Weeks],style:S?.[W.Weeks]},e.weeks.map(e=>L.createElement(r.Week,{className:c[W.Week],key:e.weekNumber,style:S?.[W.Week],week:e},x&&L.createElement(r.WeekNumber,{week:e,style:S?.[W.WeekNumber],"aria-label":be(e.weekNumber,{locale:s}),className:c[W.WeekNumber],scope:`row`,role:`rowheader`},E(e.weekNumber,o)),e.days.map(e=>{let{date:n}=e,i=ae(e);if(i[cm.focused]=!i.hidden&&!!ue?.isEqualTo(e),i[lm.selected]=oe?.(n)||i.selected,Lm(ce)){let{from:e,to:t}=ce;i[lm.range_start]=!!(e&&t&&o.isSameDay(n,e)),i[lm.range_end]=!!(e&&t&&o.isSameDay(n,t)),i[lm.range_middle]=Fm(ce,n,!0,o)}let a=yh(i,S,t.modifiersStyles),s=Wm(i,c,t.modifiersClassNames),l=!we&&!i.hidden?pe(n,i,o.options,o):void 0;return L.createElement(r.Day,{key:`${e.isoDate}_${e.displayMonthId}`,day:e,modifiers:i,className:s.join(` `),style:a,role:`gridcell`,"aria-selected":i.selected||void 0,"aria-label":l,"data-day":e.isoDate,"data-month":e.outside?e.dateMonthId:void 0,"data-selected":i.selected||void 0,"data-disabled":i.disabled||void 0,"data-hidden":i.hidden||void 0,"data-outside":e.outside||void 0,"data-focused":i.focused||void 0,"data-today":i.today||void 0},!i.hidden&&we?L.createElement(r.DayButton,{className:c[W.DayButton],style:S?.[W.DayButton],type:`button`,day:e,modifiers:i,disabled:!i.focused&&i.disabled||void 0,"aria-disabled":i.focused&&i.disabled||void 0,tabIndex:N(e)?0:-1,"aria-label":fe(n,i,o.options,o),onClick:De(e,i),onBlur:ke(e,i),onFocus:Oe(e,i),onKeyDown:Ae(e,i),onMouseEnter:je(e,i),onMouseLeave:Me(e,i)},w(n,o.options,o)):!i.hidden&&w(e.date,o.options,o))}))))))})),t.footer&&L.createElement(r.Footer,{className:c[W.Footer],style:S?.[W.Footer],role:`status`,"aria-live":`polite`},t.footer)))}var sg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/calendar.tsx`;function cg({className:e,classNames:t,showOutsideDays:n=!0,captionLayout:r=`label`,buttonVariant:i=`ghost`,formatters:a,components:o,...s}){let c=qm();return(0,R.jsxDEV)(og,{showOutsideDays:n,className:C(`group/calendar bg-background p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent`,String.raw`rtl:**:[.rdp-button\_next>svg]:rotate-180`,String.raw`rtl:**:[.rdp-button\_previous>svg]:rotate-180`,e),captionLayout:r,formatters:{formatMonthDropdown:e=>e.toLocaleString(`default`,{month:`short`}),...a},classNames:{root:C(`w-fit`,c.root),months:C(`relative flex flex-col gap-4 md:flex-row`,c.months),month:C(`flex w-full flex-col gap-4`,c.month),nav:C(`absolute inset-x-0 top-0 flex w-full items-center justify-between gap-1`,c.nav),button_previous:C(Ye({variant:i}),`size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,c.button_previous),button_next:C(Ye({variant:i}),`size-(--cell-size) p-0 select-none aria-disabled:opacity-50`,c.button_next),month_caption:C(`flex h-(--cell-size) w-full items-center justify-center px-(--cell-size)`,c.month_caption),dropdowns:C(`flex h-(--cell-size) w-full items-center justify-center gap-1.5 text-sm font-medium`,c.dropdowns),dropdown_root:C(`relative rounded-md border border-input shadow-xs has-focus:border-ring has-focus:ring-[3px] has-focus:ring-ring/50`,c.dropdown_root),dropdown:C(`absolute inset-0 bg-popover opacity-0`,c.dropdown),caption_label:C(`font-medium select-none`,r===`label`?`text-sm`:`flex h-8 items-center gap-1 rounded-md pr-1 pl-2 text-sm [&>svg]:size-3.5 [&>svg]:text-muted-foreground`,c.caption_label),month_grid:`w-full border-collapse`,weekdays:C(`flex`,c.weekdays),weekday:C(`flex-1 rounded-md text-[0.8rem] font-normal text-muted-foreground select-none`,c.weekday),week:C(`mt-2 flex w-full`,c.week),week_number_header:C(`w-(--cell-size) select-none`,c.week_number_header),week_number:C(`text-[0.8rem] text-muted-foreground select-none`,c.week_number),day:C(`group/day relative aspect-square h-full w-full p-0 text-center select-none [&:last-child[data-selected=true]_button]:rounded-r-md`,s.showWeekNumber?`[&:nth-child(2)[data-selected=true]_button]:rounded-l-md`:`[&:first-child[data-selected=true]_button]:rounded-l-md`,c.day),range_start:C(`rounded-l-md bg-accent`,c.range_start),range_middle:C(`rounded-none`,c.range_middle),range_end:C(`rounded-r-md bg-accent`,c.range_end),today:C(`rounded-md bg-accent text-accent-foreground data-[selected=true]:rounded-none`,c.today),outside:C(`text-muted-foreground aria-selected:text-muted-foreground`,c.outside),disabled:C(`text-muted-foreground opacity-50`,c.disabled),hidden:C(`invisible`,c.hidden),...t},components:{Root:({className:e,rootRef:t,...n})=>(0,R.jsxDEV)(`div`,{"data-slot":`calendar`,ref:t,className:C(e),...n},void 0,!1,{fileName:sg,lineNumber:101,columnNumber:18},this),Chevron:({className:e,orientation:t,...n})=>t===`left`?(0,R.jsxDEV)(hs,{className:C(`size-4`,e),...n},void 0,!1,{fileName:sg,lineNumber:105,columnNumber:20},this):t===`right`?(0,R.jsxDEV)(gs,{className:C(`size-4`,e),...n},void 0,!1,{fileName:sg,lineNumber:109,columnNumber:20},this):(0,R.jsxDEV)(k,{className:C(`size-4`,e),...n},void 0,!1,{fileName:sg,lineNumber:112,columnNumber:18},this),DayButton:lg,WeekNumber:({children:e,...t})=>(0,R.jsxDEV)(`td`,{...t,children:(0,R.jsxDEV)(`div`,{className:`flex size-(--cell-size) items-center justify-center text-center`,children:e},void 0,!1,{fileName:sg,lineNumber:118,columnNumber:15},this)},void 0,!1,{fileName:sg,lineNumber:117,columnNumber:13},this),...o},...s},void 0,!1,{fileName:sg,lineNumber:23,columnNumber:5},this)}function lg({className:e,day:t,modifiers:n,...r}){let i=qm(),a=L.useRef(null);return L.useEffect(()=>{n.focused&&a.current?.focus()},[n.focused]),(0,R.jsxDEV)(F,{ref:a,variant:`ghost`,size:`icon`,"data-day":t.date.toLocaleDateString(),"data-selected-single":n.selected&&!n.range_start&&!n.range_end&&!n.range_middle,"data-range-start":n.range_start,"data-range-end":n.range_end,"data-range-middle":n.range_middle,className:C(`flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-[3px] group-data-[focused=true]/day:ring-ring/50 data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground data-[range-middle=true]:rounded-none data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground dark:hover:text-accent-foreground [&>span]:text-xs [&>span]:opacity-70`,i.day,e),...r},void 0,!1,{fileName:sg,lineNumber:138,columnNumber:5},this)}function ug(e){if(!e)return;let t=Dp(e.slice(0,10),`yyyy-MM-dd`,new Date);return fd(t)?t:void 0}function dg(e){return uf(e,`yyyy-MM-dd`)}function fg(e){let t=ug(e);return t?uf(t,`dd.MM.yyyy`):``}function pg(e){if(!e)return``;let t=fg(e.slice(0,10));if(!t)return``;let n=e.slice(11,16);return n?`${t} ${n}`:t}function mg(e){return{date:e.slice(0,10),time:e.slice(11,16)}}function hg(e,t){return e?t?`${e}T${t}`:e:``}var gg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/date-picker.tsx`;function _g({value:e,onChange:t,placeholder:n=`…`}){let[r,i]=(0,L.useState)(!1),a=ug(e);return(0,R.jsxDEV)(P,{open:r,onOpenChange:i,children:[(0,R.jsxDEV)(ue,{asChild:!0,children:(0,R.jsxDEV)(F,{variant:`outline`,className:`w-full justify-between px-3 font-normal`,children:[a?uf(a,`dd.MM.yyyy`):(0,R.jsxDEV)(`span`,{className:`text-muted-foreground`,children:n},void 0,!1,{fileName:gg,lineNumber:25,columnNumber:48},this),(0,R.jsxDEV)(k,{className:`size-4 shrink-0 opacity-50`},void 0,!1,{fileName:gg,lineNumber:26,columnNumber:11},this)]},void 0,!0,{fileName:gg,lineNumber:24,columnNumber:9},this)},void 0,!1,{fileName:gg,lineNumber:23,columnNumber:7},this),(0,R.jsxDEV)(ce,{className:`w-auto overflow-hidden p-0`,align:`start`,children:(0,R.jsxDEV)(cg,{mode:`single`,selected:a,captionLayout:`dropdown`,defaultMonth:a,onSelect:e=>{t(e?dg(e):``),i(!1)}},void 0,!1,{fileName:gg,lineNumber:30,columnNumber:9},this)},void 0,!1,{fileName:gg,lineNumber:29,columnNumber:7},this)]},void 0,!0,{fileName:gg,lineNumber:22,columnNumber:5},this)}function vg(e){return Array.isArray(e)?e.map(e=>vg(e)):e instanceof Date?new re(e.getFullYear(),e.getMonth()+1,e.getDate()):ne(e)}var G=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/month-year-picker.tsx`,yg=`z-50 w-72 rounded-xl border border-border bg-popover p-3 text-popover-foreground shadow-xl outline-hidden data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95`,bg=`w-full table-fixed border-separate border-spacing-1`,xg=C(Ye({variant:`ghost`}),`w-full px-0 font-normal data-[selected]:bg-primary data-[selected]:text-primary-foreground data-[selected]:hover:bg-primary`),Sg=C(Ye({variant:`ghost`,size:`icon`}),`size-7`);function Cg({withViewTrigger:e=!1}){return(0,R.jsxDEV)(M.ViewControl,{className:`flex items-center justify-between gap-1 pb-2`,children:[(0,R.jsxDEV)(M.PrevTrigger,{className:Sg,children:(0,R.jsxDEV)(hs,{className:`size-4`},void 0,!1,{fileName:G,lineNumber:29,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:28,columnNumber:7},this),e?(0,R.jsxDEV)(M.ViewTrigger,{className:C(Ye({variant:`ghost`,size:`sm`}),`h-7 text-sm font-medium`),children:(0,R.jsxDEV)(M.RangeText,{},void 0,!1,{fileName:G,lineNumber:35,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:32,columnNumber:9},this):(0,R.jsxDEV)(`span`,{className:`text-sm font-medium`,children:(0,R.jsxDEV)(M.RangeText,{},void 0,!1,{fileName:G,lineNumber:39,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:38,columnNumber:9},this),(0,R.jsxDEV)(M.NextTrigger,{className:Sg,children:(0,R.jsxDEV)(gs,{className:`size-4`},void 0,!1,{fileName:G,lineNumber:43,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:42,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:27,columnNumber:5},this)}function wg(){return(0,R.jsxDEV)(M.Context,{children:e=>(0,R.jsxDEV)(M.Table,{className:bg,children:(0,R.jsxDEV)(M.TableBody,{children:e.getYearsGrid({columns:4}).map((e,t)=>(0,R.jsxDEV)(M.TableRow,{children:e.map((e,t)=>(0,R.jsxDEV)(M.TableCell,{value:e.value,children:(0,R.jsxDEV)(M.TableCellTrigger,{className:xg,children:e.label},void 0,!1,{fileName:G,lineNumber:59,columnNumber:21},this)},t,!1,{fileName:G,lineNumber:58,columnNumber:19},this))},t,!1,{fileName:G,lineNumber:56,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:54,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:53,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:51,columnNumber:5},this)}function Tg(){return(0,R.jsxDEV)(M.Context,{children:e=>(0,R.jsxDEV)(M.Table,{className:bg,children:(0,R.jsxDEV)(M.TableBody,{children:e.getMonthsGrid({columns:3,format:`short`}).map((e,t)=>(0,R.jsxDEV)(M.TableRow,{children:e.map((e,t)=>(0,R.jsxDEV)(M.TableCell,{value:e.value,children:(0,R.jsxDEV)(M.TableCellTrigger,{className:xg,children:e.label},void 0,!1,{fileName:G,lineNumber:81,columnNumber:21},this)},t,!1,{fileName:G,lineNumber:80,columnNumber:19},this))},t,!1,{fileName:G,lineNumber:78,columnNumber:15},this))},void 0,!1,{fileName:G,lineNumber:76,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:75,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:73,columnNumber:5},this)}function Eg({display:e,placeholder:t}){return(0,R.jsxDEV)(M.Control,{className:`w-full`,children:(0,R.jsxDEV)(M.Trigger,{className:C(Ye({variant:`outline`}),`w-full justify-between px-3 font-normal`),children:[e||(0,R.jsxDEV)(`span`,{className:`text-muted-foreground`,children:t},void 0,!1,{fileName:G,lineNumber:97,columnNumber:21},this),(0,R.jsxDEV)(k,{className:`size-4 shrink-0 opacity-50`},void 0,!1,{fileName:G,lineNumber:98,columnNumber:9},this)]},void 0,!0,{fileName:G,lineNumber:96,columnNumber:7},this)},void 0,!1,{fileName:G,lineNumber:95,columnNumber:5},this)}function Dg({value:e,onChange:t,placeholder:n=`YYYY`}){let r=/^\d{4}$/.test(e)?[vg(`${e}-01-01`)]:[];return(0,R.jsxDEV)(M.Root,{value:r,onValueChange:e=>t(e.value[0]?String(e.value[0].year):``),defaultView:`year`,minView:`year`,children:[(0,R.jsxDEV)(Eg,{display:e,placeholder:n},void 0,!1,{fileName:G,lineNumber:120,columnNumber:7},this),(0,R.jsxDEV)(j,{children:(0,R.jsxDEV)(M.Positioner,{children:(0,R.jsxDEV)(M.Content,{className:yg,children:(0,R.jsxDEV)(M.View,{view:`year`,children:[(0,R.jsxDEV)(Cg,{},void 0,!1,{fileName:G,lineNumber:125,columnNumber:15},this),(0,R.jsxDEV)(wg,{},void 0,!1,{fileName:G,lineNumber:126,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:124,columnNumber:13},this)},void 0,!1,{fileName:G,lineNumber:123,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:122,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:121,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:114,columnNumber:5},this)}function Og({value:e,onChange:t,placeholder:n=`MM.YYYY`}){let r=/^(\d{4})-(\d{2})$/.exec(e),i=r?[vg(`${e}-01`)]:[];return(0,R.jsxDEV)(M.Root,{value:i,onValueChange:e=>{let n=e.value[0];t(n?`${n.year}-${String(n.month).padStart(2,`0`)}`:``)},defaultView:`month`,minView:`month`,children:[(0,R.jsxDEV)(Eg,{display:r?`${r[2]}.${r[1]}`:``,placeholder:n},void 0,!1,{fileName:G,lineNumber:149,columnNumber:7},this),(0,R.jsxDEV)(j,{children:(0,R.jsxDEV)(M.Positioner,{children:(0,R.jsxDEV)(M.Content,{className:yg,children:[(0,R.jsxDEV)(M.View,{view:`month`,children:[(0,R.jsxDEV)(Cg,{withViewTrigger:!0},void 0,!1,{fileName:G,lineNumber:154,columnNumber:15},this),(0,R.jsxDEV)(Tg,{},void 0,!1,{fileName:G,lineNumber:155,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:153,columnNumber:13},this),(0,R.jsxDEV)(M.View,{view:`year`,children:[(0,R.jsxDEV)(Cg,{},void 0,!1,{fileName:G,lineNumber:158,columnNumber:15},this),(0,R.jsxDEV)(wg,{},void 0,!1,{fileName:G,lineNumber:159,columnNumber:15},this)]},void 0,!0,{fileName:G,lineNumber:157,columnNumber:13},this)]},void 0,!0,{fileName:G,lineNumber:152,columnNumber:11},this)},void 0,!1,{fileName:G,lineNumber:151,columnNumber:9},this)},void 0,!1,{fileName:G,lineNumber:150,columnNumber:7},this)]},void 0,!0,{fileName:G,lineNumber:140,columnNumber:5},this)}var kg=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/time-picker.tsx`,Ag=`TimePicker`,jg=`TimePickerInputGroup`,Mg=`TimePickerInput`,Ng=`TimePickerTrigger`,Pg=`TimePickerContent`,Fg=`TimePickerColumn`,Ig=`TimePickerColumnItem`,Lg=`TimePickerHour`,Rg=`TimePickerMinute`,zg=`TimePickerSecond`,Bg=`TimePickerClear`,Vg=1,Hg=`--`,Ug=void 0,Wg=[`hour`,`minute`,`second`,`period`];function Gg(e,t=!1){let n=document.activeElement;for(let r of e){let e=r.current;if(e&&(e===n||(e.focus({preventScroll:t}),document.activeElement!==n)))return}}function Kg(e){return e.sort((e,t)=>{let n=e.ref.current,r=t.ref.current;if(!n||!r)return 0;let i=n.compareDocumentPosition(r);return i&Node.DOCUMENT_POSITION_FOLLOWING?-1:i&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function qg(e){let t=new Date(2e3,0,1,13,0,0),n=new Intl.DateTimeFormat(e,{hour:`numeric`}).format(t);return/am|pm/i.test(n)||!n.includes(`13`)}function Jg(e){if(!e)return null;let t=e.split(`:`);if(t.length<2)return null;let n={};if(t[0]&&t[0]!==Hg){let e=Number.parseInt(t[0],10);!Number.isNaN(e)&&e>=0&&e<=23&&(n.hour=e)}if(t[1]&&t[1]!==Hg){let e=Number.parseInt(t[1],10);!Number.isNaN(e)&&e>=0&&e<=59&&(n.minute=e)}if(t[2]&&t[2]!==Hg){let e=Number.parseInt(t[2],10);!Number.isNaN(e)&&e>=0&&e<=59&&(n.second=e)}return n.hour===void 0&&n.minute===void 0&&n.second===void 0?null:n}function Yg(e,t){let n=e.hour===void 0?Hg:e.hour.toString().padStart(2,`0`),r=e.minute===void 0?Hg:e.minute.toString().padStart(2,`0`),i=e.second===void 0?Hg:e.second.toString().padStart(2,`0`);return t?`${n}:${r}:${i}`:`${n}:${r}`}function Xg(e){let t=e>=12?`PM`:`AM`;return{hour:e%12||12,period:t}}function Zg(e,t){return e===12?t===`PM`?12:0:t===`PM`?e+12:e}function Qg(e,t,n){return Math.min(Math.max(e,t),n)}var $g=L.createContext(null);function e_(e){let t=L.useContext($g);if(!t)throw Error(`\`${e}\` must be used within \`${Ag}\``);return t}function t_(e,t){let n=L.useContext($g),r=t??n;if(!r)throw Error(`\`useStore\` must be used within \`${Ag}\``);let i=L.useCallback(()=>e(r.getState()),[r,e]);return L.useSyncExternalStore(r.subscribe,i,i)}var n_=L.createContext(null);function r_(e){let t=L.useContext(n_);if(!t)throw Error(`\`${e}\` must be used within \`${Ag}\``);return t}function i_(e){let{value:t,defaultValue:n,onValueChange:r,open:i,defaultOpen:a,onOpenChange:o,openOnFocus:s=!1,inputGroupClickAction:c=`focus`,min:l,max:u,hourStep:d=Vg,minuteStep:f=Vg,secondStep:p=Vg,segmentPlaceholder:m=Hg,locale:h=Ug,name:g,asChild:_,disabled:v=!1,invalid:y=!1,readOnly:b=!1,required:x=!1,showSeconds:S=!1,className:w,children:T,id:E,...D}=e,O=L.useId(),k=E??O,A=L.useId(),ee=L.useId(),te=L.useId(),ne=L.useRef(null),j=L.useRef(null),[M,re]=L.useState(null),ae=!M||!!M.closest(`form`),oe=ru(()=>new Set),se=ru(()=>({value:t??n??``,open:i??a??!1,openedViaFocus:!1})),ce=nu({onValueChange:r,onOpenChange:o}),le=L.useMemo(()=>({subscribe:e=>(oe.current.add(e),()=>oe.current.delete(e)),getState:()=>se.current,setState:(e,t)=>{Object.is(se.current[e],t)||(e===`value`&&typeof t==`string`?(se.current.value=t,ce.current.onValueChange?.(t)):e===`open`&&typeof t==`boolean`?(se.current.open=t,ce.current.onOpenChange?.(t),t||(se.current.openedViaFocus=!1)):se.current[e]=t,le.notify())},notify:()=>{for(let e of oe.current)e()}}),[oe,se,ce]),ue=t_(e=>e.value,le);tu(()=>{t!==void 0&&le.setState(`value`,t)},[t]),tu(()=>{i!==void 0&&le.setState(`open`,i)},[i]);let N=t_(e=>e.open,le),de=L.useCallback(e=>le.setState(`open`,e),[le]),fe=L.useMemo(()=>qg(h),[h]),pe=L.useMemo(()=>typeof m==`string`?{hour:m,minute:m,second:m,period:m}:{hour:m.hour??Hg,minute:m.minute??Hg,second:m.second??Hg,period:m.period??Hg},[m]),me=L.useMemo(()=>({id:k,inputGroupId:A,labelId:ee,triggerId:te,inputGroupRef:ne,triggerRef:j,openOnFocus:s,inputGroupClickAction:c,onInputGroupChange:re,disabled:v,readOnly:b,required:x,invalid:y,showSeconds:S,is12Hour:fe,minuteStep:f,secondStep:p,hourStep:d,segmentPlaceholder:pe,min:l,max:u}),[k,A,ee,te,s,c,v,b,x,y,S,fe,f,p,d,pe,l,u]),he=_?ie:`div`;return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)($g.Provider,{value:le,children:(0,R.jsxDEV)(n_.Provider,{value:me,children:(0,R.jsxDEV)(P,{open:N,onOpenChange:de,children:(0,R.jsxDEV)(he,{"data-slot":`time-picker`,"data-disabled":v?``:void 0,"data-invalid":y?``:void 0,...D,className:C(`relative`,w),children:T},void 0,!1,{fileName:kg,lineNumber:492,columnNumber:13},this)},void 0,!1,{fileName:kg,lineNumber:491,columnNumber:11},this)},void 0,!1,{fileName:kg,lineNumber:490,columnNumber:9},this)},void 0,!1,{fileName:kg,lineNumber:489,columnNumber:7},this),ae&&(0,R.jsxDEV)(eu,{type:`hidden`,control:M,name:g,value:ue,disabled:v,readOnly:b,required:x},void 0,!1,{fileName:kg,lineNumber:505,columnNumber:9},this)]},void 0,!0,{fileName:kg,lineNumber:488,columnNumber:5},this)}var a_=L.createContext(null);function o_(e){let t=L.useContext(a_);if(!t)throw Error(`\`${e}\` must be used within \`${jg}\``);return t}function s_(e){let{onPointerDown:t,onClick:n,asChild:r,className:i,style:a,ref:o,...s}=e,{inputGroupId:c,labelId:l,onInputGroupChange:u,disabled:d,readOnly:f,invalid:p,segmentPlaceholder:m,inputGroupRef:h,triggerRef:g,inputGroupClickAction:_}=r_(jg),v=e_(jg),y=Ms(o,h,u),b=L.useRef(new Map),x=L.useCallback((e,t)=>{b.current.set(e,t)},[]),S=L.useCallback(e=>{b.current.delete(e)},[]),w=L.useCallback(e=>{let t=[`hour`,`minute`,`second`,`period`],n=t.indexOf(e);if(n===-1||n===t.length-1)return null;for(let e=n+1;e<t.length;e++){let n=t[e];if(n){let e=b.current.get(n);if(e?.current)return e}}return null},[]),T=L.useCallback(e=>{if(t?.(e),d||f||e.defaultPrevented)return;let n=e.target;n.tagName===`INPUT`||n.closest(`input`)||g.current?.contains(n)||e.preventDefault()},[t,d,f,g]),E=L.useCallback(e=>{if(n?.(e),d||f||e.defaultPrevented)return;let t=e.target;if(!(t.tagName===`INPUT`||t.closest(`input`))&&!g.current?.contains(t))if(_===`open`)v.setState(`open`,!0);else{let e=document.activeElement;if(!(e&&e.tagName===`INPUT`&&h.current?.contains(e)))for(let e of Wg){let t=b.current.get(e);if(t?.current){t.current.focus(),t.current.select();break}}}},[n,d,f,_,v,g,h]),D=L.useMemo(()=>({onInputRegister:x,onInputUnregister:S,getNextInput:w}),[x,S,w]),O=r?ie:`div`;return(0,R.jsxDEV)(a_.Provider,{value:D,children:(0,R.jsxDEV)(fe,{asChild:!0,children:(0,R.jsxDEV)(O,{role:`group`,id:c,"aria-labelledby":l,"data-slot":`time-picker-input-group`,"data-disabled":d?``:void 0,"data-invalid":p?``:void 0,...s,className:C(`flex h-10 w-full cursor-text items-center gap-0.5 rounded-md border border-input bg-background px-3 py-2 shadow-xs outline-none transition-shadow`,`has-[input:focus]:border-ring has-[input:focus]:ring-[3px] has-[input:focus]:ring-ring/50`,p&&`border-destructive ring-destructive/20`,d&&`cursor-not-allowed opacity-50`,i),style:{"--time-picker-hour-input-width":`${m.hour.length}ch`,"--time-picker-minute-input-width":`${m.minute.length}ch`,"--time-picker-second-input-width":`${m.second.length}ch`,"--time-picker-period-input-width":`${Math.max(m.period.length,2)+.5}ch`,...a},ref:y,onPointerDown:T,onClick:E},void 0,!1,{fileName:kg,lineNumber:716,columnNumber:9},this)},void 0,!1,{fileName:kg,lineNumber:715,columnNumber:7},this)},void 0,!1,{fileName:kg,lineNumber:714,columnNumber:5},this)}function c_(e){let{segment:t,onBlur:n,onChange:r,onClick:i,onFocus:a,onKeyDown:o,disabled:s,readOnly:c,className:l,style:u,ref:d,...f}=e,{is12Hour:p,showSeconds:m,disabled:h,readOnly:g,segmentPlaceholder:_,openOnFocus:v}=r_(Mg),y=e_(Mg),b=o_(Mg),x=s||h,S=c||g,w=Jg(t_(e=>e.value)),T=L.useRef(null),E=Ms(d,T);tu(()=>{if(t)return b.onInputRegister(t,T),()=>b.onInputUnregister(t)},[b,t]);let D=L.useCallback(()=>{if(!w)return t?_[t]:``;switch(t){case`hour`:return w.hour===void 0?_.hour:p?Xg(w.hour).hour.toString().padStart(2,`0`):w.hour.toString().padStart(2,`0`);case`minute`:return w.minute===void 0?_.minute:w.minute.toString().padStart(2,`0`);case`second`:return w.second===void 0?_.second:w.second.toString().padStart(2,`0`);case`period`:return!w||w.hour===void 0?_.period:Xg(w.hour).period;default:return``}},[w,t,p,_]),[O,k]=L.useState(D()),[A,ee]=L.useState(!1),[te,ne]=L.useState(null);L.useEffect(()=>{A||(k(D()),ne(null))},[D,A]);let j=L.useCallback((e,n=!1)=>{let r=t?_[t]:Hg;if(!e||e===r||!w&&!n)return;let i={...w??{}};switch(t){case`hour`:{let t=Number.parseInt(e,10);if(!Number.isNaN(t))if(p){let e=Qg(t,1,12),n;n=w?.period===void 0?w?.hour===void 0?Xg(new Date().getHours()).period:Xg(w.hour).period:w.period,i.hour=Zg(e,n),w?.period!==void 0&&(i.period=w.period)}else i.hour=Qg(t,0,23);break}case`minute`:{let t=Number.parseInt(e,10);Number.isNaN(t)||(i.minute=Qg(t,0,59));break}case`second`:{let t=Number.parseInt(e,10);Number.isNaN(t)||(i.second=Qg(t,0,59));break}case`period`:(e===`AM`||e===`PM`)&&(i.period=e,w&&w.hour!==void 0&&(i.hour=Zg(Xg(w.hour).hour,e)));break}let a=Yg(i,m);y.setState(`value`,a)},[w,t,p,m,y,_]),M=L.useCallback(e=>{if(n?.(e),e.defaultPrevented)return;ee(!1);let r=t?_[t]:Hg;if(O&&O!==r&&O.length>0){let e=O;if(t!==`period`){if(O.length===2)e=O;else if(O.length===1){let t=Number.parseInt(O,10);Number.isNaN(t)||(e=t.toString().padStart(2,`0`))}}j(e,!0),queueMicrotask(()=>{let e=Jg(y.getState().value);if(e){let t=new Date,n={...e},r=!1;if(n.hour===void 0&&(n.hour=t.getHours(),r=!0),n.minute===void 0&&(n.minute=t.getMinutes(),r=!0),m&&n.second===void 0&&(n.second=t.getSeconds(),r=!0),r){let e=Yg(n,m);y.setState(`value`,e)}}})}k(D()),ne(null)},[n,O,j,D,t,_,m,y]),re=L.useCallback(e=>{if(r?.(e),e.defaultPrevented)return;let n=e.target.value,i=t?_[t]:Hg;if(O===i&&n.length>0&&n!==i&&(n=n.replace(RegExp(`^${i}`),``)),t===`period`){let e=n.charAt(0).toUpperCase(),t=null;e===`A`||e===`1`?t=`AM`:(e===`P`||e===`2`)&&(t=`PM`),t&&(k(t),j(t,!0),queueMicrotask(()=>{T.current?.select()}));return}if((t===`hour`||t===`minute`||t===`second`)&&(n=n.replace(/\D/g,``)),n.length>2&&(n=n.slice(0,2)),t===`hour`||t===`minute`||t===`second`){let e=Number.parseInt(n,10);if(!Number.isNaN(e)&&n.length>0){if(te!==null&&n.length===1){let e=te+n,r=Number.parseInt(e,10);if(!Number.isNaN(r)){let e=r.toString().padStart(2,`0`);k(e),j(e,!0),ne(null),queueMicrotask(()=>{if(t){let e=b.getNextInput(t);e?.current&&(e.current.focus(),e.current.select())}});return}}let r=t===`hour`?p?1:2:5,i=Number.parseInt(n[0]??`0`,10)>r;if(n.length===1)if(i){let n=e.toString().padStart(2,`0`);k(n),j(n,!0),ne(null),queueMicrotask(()=>{if(t){let e=b.getNextInput(t);e?.current&&(e.current.focus(),e.current.select())}})}else{let t=e.toString().padStart(2,`0`);k(t),ne(n),queueMicrotask(()=>{T.current?.select()})}else if(n.length===2){let n=e.toString().padStart(2,`0`);k(n),j(n,!0),ne(null),queueMicrotask(()=>{if(t){let e=b.getNextInput(t);e?.current&&(e.current.focus(),e.current.select())}})}}else n.length===0&&(k(``),ne(null))}},[t,j,r,O,p,b,te,_]),ie=L.useCallback(e=>{i?.(e),!e.defaultPrevented&&e.currentTarget.select()},[i]),ae=L.useCallback(e=>{a?.(e),!e.defaultPrevented&&(ee(!0),ne(null),v&&!y.getState().open&&(y.setState(`openedViaFocus`,!0),y.setState(`open`,!0)),queueMicrotask(()=>e.target.select()))},[a,v,y]),oe=L.useCallback(e=>{if(o?.(e),!e.defaultPrevented){if(e.key===`ArrowLeft`||e.key===`ArrowRight`){e.preventDefault();let t=e.key===`ArrowLeft`,n=T.current?.closest(`[data-slot="time-picker-input-group"]`);if(n&&T.current){let e=Array.from(n.querySelectorAll(`input[type="text"]`)),r=e.indexOf(T.current);if(r!==-1){let n=e[t?Math.max(0,r-1):Math.min(e.length-1,r+1)];n&&n!==T.current&&(n.focus(),n.select())}}return}if(e.key===`Backspace`||e.key===`Delete`){let n=T.current;if(n&&n.selectionStart===0&&n.selectionEnd===n.value.length){e.preventDefault();let n=t?_[t]:Hg;if(k(n),ne(null),w){let e={...w};switch(t){case`hour`:delete e.hour;break;case`minute`:delete e.minute;break;case`second`:delete e.second;break;case`period`:delete e.period;break}if(e.hour!==void 0||e.minute!==void 0||e.second!==void 0||e.period!==void 0){let t=Yg(e,m);y.setState(`value`,t)}else y.setState(`value`,``)}else y.setState(`value`,``);queueMicrotask(()=>{T.current?.select()});return}}if(t===`period`){let t=e.key.toLowerCase();if(t===`a`||t===`p`||t===`1`||t===`2`){e.preventDefault();let n;n=t===`a`||t===`1`?`AM`:`PM`,k(n),j(n,!0),queueMicrotask(()=>{T.current?.select()})}else if(e.key===`ArrowUp`||e.key===`ArrowDown`){e.preventDefault();let t=_.period,n=O===t||O===``?`AM`:O,r=n===`AM`||n===`A`?`PM`:`AM`;k(r),j(r,!0),queueMicrotask(()=>{T.current?.select()})}return}if(e.key===`Tab`){let e=t?_[t]:Hg;if(O&&O.length>0&&O!==e){if(O.length===2)j(O,!0);else if(O.length===1){let e=Number.parseInt(O,10);if(!Number.isNaN(e)){let t=e.toString().padStart(2,`0`);j(t,!0)}}}return}if(e.key===`Enter`){e.preventDefault();let n=t?_[t]:Hg;if(O&&O.length>0&&O!==n){if(O.length===2)j(O,!0);else if(O.length===1){let e=Number.parseInt(O,10);if(!Number.isNaN(e)){let t=e.toString().padStart(2,`0`);j(t,!0)}}}queueMicrotask(()=>{T.current?.select()})}if(e.key===`Escape`&&(e.preventDefault(),k(D()),T.current?.blur()),e.key===`ArrowUp`){e.preventDefault();let n=t?_[t]:Hg;if(O===n||O===``){let e=(t===`hour`&&p?12:0).toString().padStart(2,`0`);k(e),j(e,!0),queueMicrotask(()=>{T.current?.select()});return}let r=Number.parseInt(O,10);if(!Number.isNaN(r)){let e;switch(t){case`hour`:e=p?r===12?1:r+1:r===23?0:r+1;break;case`minute`:case`second`:e=r===59?0:r+1;break;default:return}let n=e.toString().padStart(2,`0`);k(n),j(n,!0),queueMicrotask(()=>{T.current?.select()})}}if(e.key===`ArrowDown`){e.preventDefault();let n=t?_[t]:Hg;if(O===n||O===``){let e=(t===`hour`?p?12:23:59).toString().padStart(2,`0`);k(e),j(e,!0),queueMicrotask(()=>{T.current?.select()});return}let r=Number.parseInt(O,10);if(!Number.isNaN(r)){let e;switch(t){case`hour`:e=p?r===1?12:r-1:r===0?23:r-1;break;case`minute`:case`second`:e=r===0?59:r-1;break;default:return}let n=e.toString().padStart(2,`0`);k(n),j(n,!0),queueMicrotask(()=>{T.current?.select()})}}}},[o,O,t,p,D,j,m,w,y,_]),se=A?O:D(),ce=t?`var(--time-picker-${t}-input-width)`:`2ch`;return(0,R.jsxDEV)(`input`,{type:`text`,inputMode:t===`period`?`text`:`numeric`,autoComplete:`off`,autoCorrect:`off`,autoCapitalize:`off`,spellCheck:!1,translate:`no`,...f,disabled:x,readOnly:S,className:C(`inline-flex h-full items-center justify-center border-0 bg-transparent text-center text-sm tabular-nums outline-none transition-colors focus:bg-transparent disabled:cursor-not-allowed disabled:opacity-50`,l),style:{width:ce,...u},ref:E,value:se,onBlur:M,onChange:re,onClick:ie,onFocus:ae,onKeyDown:oe},void 0,!1,{fileName:kg,lineNumber:1408,columnNumber:5},this)}function l_(e){let{className:t,children:n,disabled:r,ref:i,...a}=e,{triggerId:o,disabled:s,triggerRef:c}=r_(Ng);return(0,R.jsxDEV)(ue,{type:`button`,id:o,"data-slot":`time-picker-trigger`,disabled:r||s,ref:Ms(i,c),...a,className:C(`ml-auto flex items-center text-muted-foreground transition-colors hover:text-foreground disabled:pointer-events-none [&>svg:not([class*='size-'])]:size-4`,t),children:n??(0,R.jsxDEV)(xe,{},void 0,!1,{fileName:kg,lineNumber:1464,columnNumber:20},this)},void 0,!1,{fileName:kg,lineNumber:1452,columnNumber:5},this)}var u_=L.createContext(null);function d_(e){let t=L.useContext(u_);if(!t)throw Error(`\`${e}\` must be used within \`${Ag}\``);return t}function f_(e){let{side:t=`bottom`,align:n=`start`,sideOffset:r=6,className:i,onOpenAutoFocus:a,onInteractOutside:o,...s}=e,c=e_(Pg),{openOnFocus:l,inputGroupRef:u}=r_(Pg),d=L.useRef(new Map),f=L.useCallback(e=>{d.current.set(e.id,e)},[]),p=L.useCallback(e=>{d.current.delete(e)},[]),m=L.useCallback(()=>Kg(Array.from(d.current.entries()).map(([e,{ref:t,getSelectedItemRef:n,getItems:r}])=>({id:e,ref:t,getSelectedItemRef:n,getItems:r})).filter(e=>e.ref.current!==null)),[]),h=L.useMemo(()=>({getColumns:m,onColumnRegister:f,onColumnUnregister:p}),[m,f,p]),g=L.useCallback(e=>{if(a?.(e),e.defaultPrevented)return;e.preventDefault();let{openedViaFocus:t}=c.getState();if(t){c.setState(`openedViaFocus`,!1);return}let n=m()[0];if(!n)return;let r=n.getItems(),i=r.find(e=>e.selected);Gg(i?[i.ref,...r.map(e=>e.ref)]:r.map(e=>e.ref),!1)},[a,m,c]),_=L.useCallback(e=>{if(o?.(e),!e.defaultPrevented&&l&&u.current){let t=e.target;if(!(t instanceof Node))return;u.current.contains(t)&&e.preventDefault()}},[o,l,u]);return(0,R.jsxDEV)(u_.Provider,{value:h,children:(0,R.jsxDEV)(ce,{"data-slot":`time-picker-content`,side:t,align:n,sideOffset:r,...s,className:C(`flex w-auto max-w-(--radix-popover-trigger-width) p-0`,i),onOpenAutoFocus:g,onInteractOutside:_},void 0,!1,{fileName:kg,lineNumber:1590,columnNumber:7},this)},void 0,!1,{fileName:kg,lineNumber:1589,columnNumber:5},this)}var p_=L.createContext(null);function m_(e){let t=L.useContext(p_);if(!t)throw Error(`\`${e}\` must be used within a column`);return t}function h_(e){let{children:t,className:n,ref:r,...i}=e,a=L.useId(),o=L.useRef(null),s=Ms(r,o),c=L.useRef(new Map),l=d_(Fg),u=L.useCallback((e,t,n)=>{c.current.set(e,{ref:t,selected:n})},[]),d=L.useCallback(e=>{c.current.delete(e)},[]),f=L.useCallback(()=>Kg(Array.from(c.current.entries()).map(([e,{ref:t,selected:n}])=>({value:e,ref:t,selected:n})).filter(e=>e.ref.current)),[]),p=L.useCallback(()=>f().find(e=>e.selected)?.ref??null,[f]);tu(()=>(l.onColumnRegister({id:a,ref:o,getSelectedItemRef:p,getItems:f}),()=>l.onColumnUnregister(a)),[l,a,p,f]);let m=L.useMemo(()=>({getItems:f,onItemRegister:u,onItemUnregister:d}),[f,u,d]);return(0,R.jsxDEV)(p_.Provider,{value:m,children:(0,R.jsxDEV)(`div`,{ref:s,"data-slot":`time-picker-column`,...i,className:C(`flex flex-col gap-1 not-last:border-r p-1`,n),children:t},void 0,!1,{fileName:kg,lineNumber:1701,columnNumber:7},this)},void 0,!1,{fileName:kg,lineNumber:1700,columnNumber:5},this)}function g_(e){let{value:t,selected:n=!1,format:r=`numeric`,className:i,ref:a,...o}=e,s=L.useRef(null),c=Ms(a,s),l=m_(Ig),u=d_(Ig);tu(()=>(l.onItemRegister(t,s,n),()=>l.onItemUnregister(t)),[l,t,n]),tu(()=>{n&&s.current&&s.current.scrollIntoView({block:`nearest`})},[n]);let d=L.useCallback(e=>{o.onClick?.(e),!e.defaultPrevented&&s.current?.focus()},[o.onClick]),f=L.useCallback(e=>{if(o.onKeyDown?.(e),!e.defaultPrevented)if(e.key===`ArrowUp`||e.key===`ArrowDown`){e.preventDefault();let n=l.getItems().sort((e,t)=>typeof e.value==`number`&&typeof t.value==`number`?e.value-t.value:0),r=n.findIndex(e=>e.value===t),i;i=e.key===`ArrowUp`?r>0?r-1:n.length-1:r<n.length-1?r+1:0;let a=n[i];a?.ref.current?.focus(),a?.ref.current?.click()}else(e.key===`Tab`||e.key===`ArrowLeft`||e.key===`ArrowRight`)&&u&&(e.preventDefault(),queueMicrotask(()=>{let t=u.getColumns();if(t.length===0)return;let n=t.findIndex(e=>e.ref.current?.contains(s.current)??!1);if(n===-1)return;let r=t[e.key===`ArrowLeft`||e.key===`Tab`&&e.shiftKey?n>0?n-1:t.length-1:n<t.length-1?n+1:0];if(r?.ref.current){let e=r.getItems(),t=e.find(e=>e.selected);Gg(t?[t.ref,...e.map(e=>e.ref)]:e.map(e=>e.ref),!1)}}))},[o.onKeyDown,l,u,t]),p=typeof t==`number`&&r===`2-digit`?t.toString().padStart(2,`0`):t.toString();return(0,R.jsxDEV)(`button`,{type:`button`,...o,ref:c,"data-selected":n?``:void 0,className:C(`w-full rounded px-3 py-1.5 text-left text-sm hover:bg-accent hover:text-accent-foreground focus:border-ring focus:outline-none focus:ring-[3px] focus:ring-ring/50`,`data-selected:bg-primary data-selected:text-primary-foreground data-selected:hover:bg-primary data-selected:hover:text-primary-foreground`,i),onClick:d,onKeyDown:f,children:p},void 0,!1,{fileName:kg,lineNumber:1834,columnNumber:5},this)}function __(e){let{asChild:t,format:n=`numeric`,className:r,...i}=e,{is12Hour:a,hourStep:o,showSeconds:s}=r_(Lg),c=e_(Lg),l=Jg(t_(e=>e.value)),u=Array.from({length:Math.ceil(a?12/o:24/o)},(e,t)=>{if(a){let e=t*o%12;return e===0?12:e}return t*o}),d=L.useCallback(e=>{let t=new Date,n=l??{},r=e;if(a){let n;n=l?.period===void 0?l?.hour===void 0?Xg(t.getHours()).period:Xg(l.hour).period:l.period,r=Zg(e,n)}let i={...n,hour:r};l&&l.period!==void 0&&(i.period=l.period),i.minute===void 0&&(i.minute=t.getMinutes()),s&&i.second===void 0&&(i.second=t.getSeconds());let o=Yg(i,s);c.setState(`value`,o)},[l,s,a,c]),f=new Date,p=l?.hour??f.getHours(),m=a?Xg(p).hour:p;return(0,R.jsxDEV)(t?ie:h_,{"data-slot":`time-picker-hour`,...i,className:C(`scrollbar-none flex max-h-[200px] flex-col gap-1 overflow-y-auto p-1`,r),children:u.map(e=>(0,R.jsxDEV)(g_,{value:e,selected:m===e,format:n,onClick:()=>d(e)},e,!1,{fileName:kg,lineNumber:1931,columnNumber:9},this))},void 0,!1,{fileName:kg,lineNumber:1922,columnNumber:5},this)}function v_(e){let{asChild:t,format:n=`2-digit`,className:r,...i}=e,{minuteStep:a,showSeconds:o}=r_(Rg),s=e_(Rg),c=Jg(t_(e=>e.value)),l=Array.from({length:Math.ceil(60/a)},(e,t)=>t*a),u=L.useCallback(e=>{let t=new Date,n={...c??{},minute:e};n.hour===void 0&&(n.hour=t.getHours()),o&&n.second===void 0&&(n.second=t.getSeconds());let r=Yg(n,o);s.setState(`value`,r)},[c,o,s]),d=t?ie:h_,f=new Date,p=c?.minute??f.getMinutes();return(0,R.jsxDEV)(d,{"data-slot":`time-picker-minute`,...i,className:C(`scrollbar-none flex max-h-[200px] flex-col gap-1 overflow-y-auto p-1`,r),children:l.map(e=>(0,R.jsxDEV)(g_,{value:e,selected:p===e,format:n,onClick:()=>u(e)},e,!1,{fileName:kg,lineNumber:1996,columnNumber:9},this))},void 0,!1,{fileName:kg,lineNumber:1987,columnNumber:5},this)}function y_(e){let{asChild:t,format:n=`2-digit`,className:r,...i}=e,{secondStep:a}=r_(zg),o=e_(zg),s=Jg(t_(e=>e.value)),c=Array.from({length:Math.ceil(60/a)},(e,t)=>t*a),l=L.useCallback(e=>{let t=new Date,n={...s??{},second:e};n.hour===void 0&&(n.hour=t.getHours()),n.minute===void 0&&(n.minute=t.getMinutes());let r=Yg(n,!0);o.setState(`value`,r)},[s,o]),u=t?ie:h_,d=new Date,f=s?.second??d.getSeconds();return(0,R.jsxDEV)(u,{"data-slot":`time-picker-second`,...i,className:C(`scrollbar-none flex max-h-[200px] flex-col gap-1 overflow-y-auto p-1`,r),children:c.map(e=>(0,R.jsxDEV)(g_,{value:e,selected:f===e,format:n,onClick:()=>l(e)},e,!1,{fileName:kg,lineNumber:2061,columnNumber:9},this))},void 0,!1,{fileName:kg,lineNumber:2052,columnNumber:5},this)}function b_(e){let{asChild:t,children:n,...r}=e;return(0,R.jsxDEV)(t?ie:`span`,{"aria-hidden":`true`,"data-slot":`time-picker-separator`,...r,children:n??`:`},void 0,!1,{fileName:kg,lineNumber:2144,columnNumber:5},this)}function x_(e){let{asChild:t,className:n,children:r,disabled:i,...a}=e,{disabled:o,readOnly:s}=r_(Bg),c=e_(Bg),l=i||o,u=L.useCallback(e=>{a.onClick?.(e),!e.defaultPrevented&&(e.preventDefault(),!(o||s)&&c.setState(`value`,``))},[a.onClick,o,s,c]);return(0,R.jsxDEV)(t?ie:`button`,{type:`button`,"data-slot":`time-picker-clear`,disabled:l,...a,className:C(`inline-flex items-center justify-center rounded-sm font-medium text-sm transition-colors hover:bg-accent hover:text-accent-foreground disabled:pointer-events-none disabled:opacity-50`,n),onClick:u,children:r??`Clear`},void 0,!1,{fileName:kg,lineNumber:2183,columnNumber:5},this)}var K=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/datetime.tsx`;function S_(e,t){return e.granularity??t}function C_(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 w_(e,t){return function(n){return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(we,{name:e,size:13,className:`shrink-0 text-muted`},void 0,!1,{fileName:K,lineNumber:68,columnNumber:9},this),(0,R.jsxDEV)(`span`,{children:t?t(String(n)):String(n)},void 0,!1,{fileName:K,lineNumber:69,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:67,columnNumber:7},this)}}function T_({value:e,format:t,icon:n}){return(0,R.jsxDEV)(St,{items:An(e,[]),content:w_(n,t),reserveEditor:!0},void 0,!1,{fileName:K,lineNumber:78,columnNumber:10},this)}function E_({field:e,value:t}){return e.hints.multiple===!0?(0,R.jsxDEV)(T_,{value:t,icon:`lucide:calendar`},void 0,!1,{fileName:K,lineNumber:84,columnNumber:48},this):ft(t,t=>{let n=S_(e.hints,`day`);return(0,R.jsxDEV)(`span`,{children:n===`month`||n===`year`?String(t):fg(String(t))||String(t)},void 0,!1,{fileName:K,lineNumber:88,columnNumber:12},this)})}function D_({name:e,field:t,value:n,onChange:r}){let i=S_(t.hints,`day`),a=i===`month`?`month`:i===`year`?`number`:`date`;if(t.hints.multiple===!0)return(0,R.jsxDEV)(gt,{value:n,onChange:r,display:w_(`lucide:calendar`),renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:K,lineNumber:102,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:97,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);return i===`year`?(0,R.jsxDEV)(Dg,{value:o,onChange:r},void 0,!1,{fileName:K,lineNumber:123,columnNumber:28},this):i===`month`?(0,R.jsxDEV)(Og,{value:o,onChange:r},void 0,!1,{fileName:K,lineNumber:124,columnNumber:29},this):(0,R.jsxDEV)(_g,{value:o,onChange:r},void 0,!1,{fileName:K,lineNumber:125,columnNumber:10},this)}function O_(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,R.jsxDEV)(E_,{field:e.field,value:t},void 0,!1,{fileName:K,lineNumber:141,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(D_,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:K,lineNumber:143,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:130,columnNumber:5},this)}function k_(e,t){if(e==null||e===``)return[];let n=S_(t.hints,`day`),r=String(e);return[{value:r,rawValue:e,label:n===`year`||n===`month`?r:fg(r)||r}]}I({kinds:[`date`],Page:O_,keys:k_});var A_={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 j_({field:e,value:t}){return e.hints.multiple!==!0&&(t==null||t===``)?(0,R.jsxDEV)(it,{},void 0,!1,{fileName:K,lineNumber:177,columnNumber:83},this):e.hints.multiple===!0?(0,R.jsxDEV)(T_,{value:t,icon:`lucide:clock`},void 0,!1,{fileName:K,lineNumber:179,columnNumber:5},this):(0,R.jsxDEV)(`span`,{className:`font-mono text-sm`,children:String(t)},void 0,!1,{fileName:K,lineNumber:181,columnNumber:5},this)}function M_({name:e,field:t,value:n,onChange:r}){let i=S_(t.hints,`second`),a=i===`second`?1:i===`minute`?60:3600;if(t.hints.multiple===!0)return(0,R.jsxDEV)(gt,{value:n,onChange:r,validate:e=>A_[i]?.test(e)??!1,display:w_(`lucide:clock`),renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:K,lineNumber:197,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:191,columnNumber:7},this);let o=typeof n==`string`?n:String(n??``);if(i===`hour`)return(0,R.jsxDEV)(E,{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:K,lineNumber:222,columnNumber:7},this);let s=i===`second`;return(0,R.jsxDEV)(i_,{value:o,onValueChange:r,showSeconds:s,children:[(0,R.jsxDEV)(s_,{id:e,children:[(0,R.jsxDEV)(c_,{segment:`hour`},void 0,!1,{fileName:K,lineNumber:237,columnNumber:9},this),(0,R.jsxDEV)(b_,{},void 0,!1,{fileName:K,lineNumber:238,columnNumber:9},this),(0,R.jsxDEV)(c_,{segment:`minute`},void 0,!1,{fileName:K,lineNumber:239,columnNumber:9},this),s&&(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(b_,{},void 0,!1,{fileName:K,lineNumber:242,columnNumber:13},this),(0,R.jsxDEV)(c_,{segment:`second`},void 0,!1,{fileName:K,lineNumber:243,columnNumber:13},this)]},void 0,!0,{fileName:K,lineNumber:241,columnNumber:11},this),(0,R.jsxDEV)(l_,{},void 0,!1,{fileName:K,lineNumber:246,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:236,columnNumber:7},this),(0,R.jsxDEV)(f_,{children:[(0,R.jsxDEV)(__,{},void 0,!1,{fileName:K,lineNumber:249,columnNumber:9},this),(0,R.jsxDEV)(v_,{},void 0,!1,{fileName:K,lineNumber:250,columnNumber:9},this),s&&(0,R.jsxDEV)(y_,{},void 0,!1,{fileName:K,lineNumber:251,columnNumber:25},this),(0,R.jsxDEV)(x_,{},void 0,!1,{fileName:K,lineNumber:252,columnNumber:9},this)]},void 0,!0,{fileName:K,lineNumber:248,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:235,columnNumber:5},this)}function N_(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-32`,bare:e.bare,view:t=>(0,R.jsxDEV)(j_,{field:e.field,value:t},void 0,!1,{fileName:K,lineNumber:271,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(M_,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:K,lineNumber:273,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:260,columnNumber:5},this)}I({kinds:[`time`],Page:N_});var P_={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 F_({field:e,value:t}){if(e.hints.multiple!==!0&&(t==null||t===``))return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:K,lineNumber:298,columnNumber:83},this);let n=S_(e.hints,`minute`);return e.hints.multiple===!0?(0,R.jsxDEV)(T_,{value:t,icon:`lucide:calendar-clock`,format:e=>C_(e,n).replace(`T`,` `)},void 0,!1,{fileName:K,lineNumber:301,columnNumber:5},this):(0,R.jsxDEV)(`span`,{children:pg(C_(t,n))},void 0,!1,{fileName:K,lineNumber:303,columnNumber:5},this)}function I_({name:e,field:t,value:n,onChange:r}){let i=S_(t.hints,`minute`),a=i===`second`?1:i===`hour`?3600:60;if(t.hints.multiple===!0)return(0,R.jsxDEV)(gt,{value:n,onChange:r,validate:e=>P_[i]?.test(e)??!1,display:w_(`lucide:calendar-clock`,e=>C_(e,i).replace(`T`,` `)),renderInput:(e,t,n)=>(0,R.jsxDEV)(E,{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:K,lineNumber:319,columnNumber:11},this)},void 0,!1,{fileName:K,lineNumber:313,columnNumber:7},this);let{date:o,time:s}=mg(C_(n,i));return(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(_g,{value:o,onChange:e=>r(hg(e,s||`00:00`))},void 0,!1,{fileName:K,lineNumber:340,columnNumber:7},this),(0,R.jsxDEV)(E,{id:e,type:`time`,step:a,value:s,onChange:e=>r(hg(o,e.target.value)),className:`w-32 appearance-none [&::-webkit-calendar-picker-indicator]:hidden [&::-webkit-calendar-picker-indicator]:appearance-none`},void 0,!1,{fileName:K,lineNumber:341,columnNumber:7},this)]},void 0,!0,{fileName:K,lineNumber:339,columnNumber:5},this)}function L_(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,R.jsxDEV)(F_,{field:e.field,value:t},void 0,!1,{fileName:K,lineNumber:366,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(I_,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:K,lineNumber:368,columnNumber:9},this)},void 0,!1,{fileName:K,lineNumber:355,columnNumber:5},this)}function R_({value:e,field:t}){return(0,R.jsxDEV)(`span`,{className:`truncate`,children:pg(C_(e,S_(t.hints,`minute`)))},void 0,!1,{fileName:K,lineNumber:381,columnNumber:10},this)}function z_(e,t){if(e==null||e===``)return[];let n=C_(e,S_(t.hints,`minute`));return[{value:n,rawValue:e,label:pg(n)}]}I({kinds:[`datetime`],Page:L_,Inline:R_,keys:z_});var B_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/checkbox.tsx`,V_=L.forwardRef(({className:e,...t},n)=>(0,R.jsxDEV)(te,{ref:n,className:C(`peer h-4.5 w-4.5 shrink-0 rounded border border-input bg-background ring-offset-background transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50`,`data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,e),...t,children:(0,R.jsxDEV)(ae,{className:C(`flex items-center justify-center text-current`),children:(0,R.jsxDEV)(Je,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:B_,lineNumber:21,columnNumber:7},void 0)},void 0,!1,{fileName:B_,lineNumber:20,columnNumber:5},void 0)},void 0,!1,{fileName:B_,lineNumber:10,columnNumber:3},void 0));V_.displayName=te.displayName;var H_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/ui/select-combobox.tsx`;function U_({it:e}){return e.node?(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate`,children:e.node},void 0,!1,{fileName:H_,lineNumber:37,columnNumber:23},this):(0,R.jsxDEV)(R.Fragment,{children:[e.icon&&(0,R.jsxDEV)(oc,{icon:e.icon,size:`xs`},void 0,!1,{fileName:H_,lineNumber:40,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`min-w-0 truncate`,children:e.title},void 0,!1,{fileName:H_,lineNumber:41,columnNumber:7},this),e.subtitle&&e.subtitle!==e.title&&(0,R.jsxDEV)(`span`,{className:`text-muted text-xs shrink-0`,children:e.subtitle},void 0,!1,{fileName:H_,lineNumber:42,columnNumber:51},this)]},void 0,!0,{fileName:H_,lineNumber:39,columnNumber:5},this)}function W_({value:e,onChange:t,items:n,placeholder:r}){let i=L.useMemo(()=>new Map(n.map(e=>[e.value,e])),[n]),[a,o]=L.useState(``),s=L.useMemo(()=>{let e=a.trim().toLowerCase();return e?n.filter(t=>t.title.toLowerCase().includes(e)||(t.subtitle?.toLowerCase().includes(e)??!1)):n},[a,n]),c=i.get(e);return(0,R.jsxDEV)(Wn,{items:s.map(e=>e.value),value:e||null,onValueChange:e=>t(e??``),itemToStringLabel:e=>i.get(e)?.title??e,children:[(0,R.jsxDEV)(Rn,{render:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,className:`w-full justify-between gap-2 px-2 font-normal`},void 0,!1,{fileName:H_,lineNumber:79,columnNumber:11},this),children:[c?(0,R.jsxDEV)(`span`,{className:`flex min-w-0 items-center gap-1.5`,children:(0,R.jsxDEV)(U_,{it:c},void 0,!1,{fileName:H_,lineNumber:88,columnNumber:13},this)},void 0,!1,{fileName:H_,lineNumber:87,columnNumber:11},this):(0,R.jsxDEV)(`span`,{className:`truncate text-muted-foreground`,children:r},void 0,!1,{fileName:H_,lineNumber:91,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`sr-only`,children:(0,R.jsxDEV)(Bn,{},void 0,!1,{fileName:H_,lineNumber:94,columnNumber:11},this)},void 0,!1,{fileName:H_,lineNumber:93,columnNumber:9},this)]},void 0,!0,{fileName:H_,lineNumber:77,columnNumber:7},this),(0,R.jsxDEV)(Vn,{className:`w-(--anchor-width) min-w-52`,children:[(0,R.jsxDEV)(zn,{placeholder:r,value:a,onChange:e=>o(e.target.value),showTrigger:!1},void 0,!1,{fileName:H_,lineNumber:98,columnNumber:9},this),(0,R.jsxDEV)(Un,{children:`—`},void 0,!1,{fileName:H_,lineNumber:104,columnNumber:9},this),(0,R.jsxDEV)(Hn,{children:s.map(e=>(0,R.jsxDEV)(Ln,{value:e.value,className:`flex items-center gap-2.5`,children:(0,R.jsxDEV)(U_,{it:e},void 0,!1,{fileName:H_,lineNumber:108,columnNumber:15},this)},e.value,!1,{fileName:H_,lineNumber:107,columnNumber:13},this))},void 0,!1,{fileName:H_,lineNumber:105,columnNumber:9},this)]},void 0,!0,{fileName:H_,lineNumber:97,columnNumber:7},this)]},void 0,!0,{fileName:H_,lineNumber:71,columnNumber:5},this)}function G_({selected:e,onChange:t,items:n,placeholder:r,labelOf:i,chipClassName:a,chipStyle:o}){let s=L.useMemo(()=>new Map(n.map(e=>[e.value,e])),[n]),c=n.filter(t=>!e.includes(t.value)),l=e=>i?.(e)??s.get(e)?.title??e;return(0,R.jsxDEV)(St,{items:e,content:e=>{let t=s.get(String(e));return(0,R.jsxDEV)(R.Fragment,{children:[t?.icon&&(0,R.jsxDEV)(oc,{icon:t.icon,size:`xs`},void 0,!1,{fileName:H_,lineNumber:148,columnNumber:26},this),l(String(e))]},void 0,!0,{fileName:H_,lineNumber:147,columnNumber:11},this)},chipClassName:a?e=>a(String(e)):void 0,chipStyle:o?e=>o(String(e)):void 0,onRemove:n=>t(e.filter((e,t)=>t!==n)),editor:c.length>0?(0,R.jsxDEV)(W_,{value:``,onChange:n=>n&&t([...e,n]),items:c,placeholder:r},void 0,!1,{fileName:H_,lineNumber:158,columnNumber:11},this):null},void 0,!1,{fileName:H_,lineNumber:142,columnNumber:5},this)}var K_=8;function q_(e){let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return`var(--cat-${Math.abs(t)%K_+1})`}var J_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/record-save-ctx.tsx`,Y_=(0,L.createContext)(null);function X_({children:e}){let{t}=a(),[n,r]=(0,L.useState)(0),i=(0,L.useCallback)(async e=>{let n=y.loading(t(`save.saving`));r(e=>e+1);try{let r=await e(),i=typeof r==`string`?r:void 0;return i?y.error(i,{id:n}):y.success(t(`save.done`),{id:n}),i}catch{return y.error(t(`save.failed`),{id:n}),t(`save.failed`)}finally{r(e=>e-1)}},[t]),o=(0,L.useMemo)(()=>({saving:n>0,run:i}),[n,i]);return(0,R.jsxDEV)(Y_.Provider,{value:o,children:e},void 0,!1,{fileName:J_,lineNumber:40,columnNumber:10},this)}var Z_={saving:!1,run:async e=>{let t=await e();return typeof t==`string`?t:void 0}};function Q_(){return(0,L.useContext)(Y_)??Z_}var $_=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/choice.tsx`;function ev(e,t){let n=e.hints.source;return t??(e.options?.length?e.options:n?Ae(n):[])}function tv({field:e,value:t,onChange:n,selectOptions:r,excludeValues:i}){let{t:o}=a();if(e.hints.multiple===!0){let i=nt(ev(e,r),o);return(0,R.jsxDEV)(G_,{selected:(Array.isArray(t)?t:An(t,[])).map(String),items:i,onChange:e=>n(e),placeholder:o(`form.search`),chipClassName:()=>`cat-chip`,chipStyle:e=>({"--cat":q_(e)})},void 0,!1,{fileName:$_,lineNumber:53,columnNumber:7},this)}let s=ev(e,r);return i?.length&&(s=s.filter(e=>e.value===t||!i.includes(e.value))),(0,R.jsxDEV)(W_,{value:typeof t==`string`?t:``,onChange:n,items:nt(s,o),placeholder:o(`form.search`)},void 0,!1,{fileName:$_,lineNumber:65,columnNumber:10},this)}function nv({field:e,value:t}){let{t:n}=a(),r=ev(e);if(e.hints.multiple===!0)return(0,R.jsxDEV)(St,{items:An(t,[]),content:e=>{let t=r.find(t=>t.value===String(e));return(0,R.jsxDEV)(R.Fragment,{children:[t?.icon&&(0,R.jsxDEV)(oc,{icon:t.icon,size:`xs`},void 0,!1,{fileName:$_,lineNumber:80,columnNumber:29},this),(0,R.jsxDEV)(`span`,{children:t?n(t.title):String(e)},void 0,!1,{fileName:$_,lineNumber:81,columnNumber:15},this)]},void 0,!0,{fileName:$_,lineNumber:79,columnNumber:13},this)},chipClassName:()=>`cat-chip`,chipStyle:e=>({"--cat":q_(String(e))}),reserveEditor:!0},void 0,!1,{fileName:$_,lineNumber:74,columnNumber:7},this);if(t==null||t===``)return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:$_,lineNumber:91,columnNumber:45},this);let i=String(t),o=r.find(e=>e.value===i),s=o?n(o.title):i;return(0,R.jsxDEV)(`span`,{className:`flex w-full min-w-0 items-center gap-1.5 pr-6`,children:[o?.icon&&(0,R.jsxDEV)(oc,{icon:o.icon,size:`xs`},void 0,!1,{fileName:$_,lineNumber:97,columnNumber:21},this),(0,R.jsxDEV)(`span`,{className:`min-w-0 truncate`,children:s},void 0,!1,{fileName:$_,lineNumber:98,columnNumber:7},this),o?.subtitle&&o.subtitle!==s&&(0,R.jsxDEV)(`span`,{className:`text-muted text-xs shrink-0`,children:o.subtitle},void 0,!1,{fileName:$_,lineNumber:100,columnNumber:9},this)]},void 0,!0,{fileName:$_,lineNumber:96,columnNumber:5},this)}function rv(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,R.jsxDEV)(nv,{field:e.field,value:t},void 0,!1,{fileName:$_,lineNumber:119,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(tv,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n,selectOptions:e.selectOptions,excludeValues:e.excludeValues},void 0,!1,{fileName:$_,lineNumber:121,columnNumber:9},this)},void 0,!1,{fileName:$_,lineNumber:108,columnNumber:5},this)}function iv({value:e,field:t}){let{t:n}=a(),r=t.options??[];if(t.hints.multiple===!0){let t=(Array.isArray(e)?e:An(e,[])).map(String);return t.length?(0,R.jsxDEV)(`span`,{className:`truncate`,children:t.map(e=>Eu(n,{options:r},e)).join(`, `)},void 0,!1,{fileName:$_,lineNumber:140,columnNumber:12},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:$_,lineNumber:139,columnNumber:31},this)}return(0,R.jsxDEV)(`span`,{className:`truncate`,children:r?.length?Eu(n,{options:r},e):String(e??``)},void 0,!1,{fileName:$_,lineNumber:143,columnNumber:5},this)}function av(e,t,n){if(e==null||e===``)return[];let r=String(e),i=Eu(n.t,{options:t.options},r);return[{value:r,rawValue:e,label:i,sort:i}]}I({kinds:[`select`],Page:rv,Inline:iv,keys:av});function ov(e){let{saving:t}=Q_(),n=jn(e.value);return e.bare?(0,R.jsxDEV)(V_,{checked:n,disabled:t,onCheckedChange:t=>e.onChange?.(t===!0)},void 0,!1,{fileName:$_,lineNumber:167,columnNumber:22},this):(0,R.jsxDEV)(`div`,{className:`group/field`,children:[e.label!==void 0&&(0,R.jsxDEV)(zt,{label:e.label,required:e.required},void 0,!1,{fileName:$_,lineNumber:170,columnNumber:33},this),(0,R.jsxDEV)(V_,{checked:n,disabled:t,onCheckedChange:t=>e.onChange?.(t===!0)},void 0,!1,{fileName:$_,lineNumber:171,columnNumber:7},this),(0,R.jsxDEV)(At,{error:e.error},void 0,!1,{fileName:$_,lineNumber:172,columnNumber:7},this)]},void 0,!0,{fileName:$_,lineNumber:169,columnNumber:5},this)}function sv({value:e}){return(0,R.jsxDEV)(`span`,{children:jn(e)?(0,R.jsxDEV)(we,{name:`lucide:check`,size:14,className:`inline text-accent`},void 0,!1,{fileName:$_,lineNumber:178,columnNumber:36},this):`—`},void 0,!1,{fileName:$_,lineNumber:178,columnNumber:10},this)}function cv(e,t,n){if(e==null||e===``)return[];let r=Tu(e);return[{value:r?`true`:`false`,rawValue:r,label:r?n.t(`group.yes`):n.t(`group.no`)}]}I({kinds:[`boolean`],Page:ov,Inline:sv,keys:cv});var lv=new Map,uv=new Map,dv=new Map;function fv(e,t,n){for(let r of n)uv.set(`${e}/${t}/${String(r.id)}`,r)}var pv=new Map;function mv(e,t,n){let r=`${e}/${t}/${n}`,i=pv.get(r);if(i)return i;let a=tr(e,t,{id:n}).then(n=>(fv(e,t,n),n)).finally(()=>pv.delete(r));return pv.set(r,a),a}function hv(e,t){let n=`${e}/${t}`,r=dv.get(n);if(r)return Promise.resolve(r);let i=lv.get(n);if(i)return i;let a=tr(e,t).then(r=>(fv(e,t,r),dv.set(n,r),r)).finally(()=>lv.delete(n));return lv.set(n,a),a}function gv(e,t,n=`name`){let[r,i]=(0,L.useState)([]),[a,o]=(0,L.useState)(`loading`);(0,L.useEffect)(()=>{if(!e||!t){o(`idle`);return}let n=!0;return o(`loading`),hv(e,t).then(e=>{n&&(i(e),o(`idle`))}).catch(()=>{n&&o(`error`)}),()=>{n=!1}},[e,t]);let s=(0,L.useMemo)(()=>{let i=Te(e,t);return r.map(e=>({id:String(e.id),label:i?gn(i,e):String(e[n]??e.name??e.id)}))},[r,e,t,n]);return{rows:s,labelMap:(0,L.useMemo)(()=>new Map(s.map(e=>[e.id,e.label])),[s]),records:r,recordMap:(0,L.useMemo)(()=>new Map(r.map(e=>[String(e.id),e])),[r]),loadState:a}}function _v(e,t,n){let r=(0,L.useMemo)(()=>[...new Set(n)].sort().join(`,`),[n]),[i,a]=(0,L.useState)(new Map);return(0,L.useEffect)(()=>{if(!e||!t||!r){a(new Map);return}let n=new Map,i=[];for(let a of r.split(`,`)){let r=uv.get(`${e}/${t}/${a}`);r?n.set(a,r):i.push(a)}if(!i.length){a(n);return}let o=!0;return mv(e,t,i.join(`,`)).then(e=>{for(let t of e)n.set(String(t.id),t);o&&a(new Map(n))}).catch(()=>{o&&a(n)}),()=>{o=!1}},[e,t,r]),i}function vv(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 yv(e,t){for(let[n,r]of fn(e.fields))if(n===t)return r.kind}function bv(e,t,n){let r=yv(e,t);if(r&&on(r)){let e=vv(n[t]);return e?{kind:`image`,value:Zn(e)}:void 0}}function xv(e,t){let n=e.views?.select;if(n){let r=Array.isArray(n.title)?n.title:[n.title];return{icon:n.icon?bv(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=un(e),i=r?vv(t[r]):void 0;return{icon:i?{kind:`image`,value:Zn(i)}:void 0,title:gn(e,t)}}var Sv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/LookupBadge.tsx`;function Cv(e){let t=typeof e==`string`?An(e,null):e;return t&&typeof t.value==`number`&&typeof t.unit==`string`?t:null}function wv(e,t,n){let r=n.find(e=>e.value===t);return r?e(r.label):t}function Tv({lookupField:e,row:t,subs:n}){let{t:r}=a(),i=String(e.hints.from??``),o=e.hints.pick??[],s=e.hints.compareWith??null,c=n.find(e=>e.key===i),l=c?.relation?.library??``,u=c?.relation?.shelf??``,{recordMap:d,loadState:f}=gv(l,u),p=t[i]??``,m=p?d.get(p):void 0;if(f===`loading`||!m)return null;let h=Te(l,u),g=(h&&o[0]?hn(h.fields)[o[0]]:void 0)?.hints.units,_=Gt(g||`cooking`)??[],v=o.map(e=>({key:e,raw:m[e]})).filter(e=>e.raw!=null&&e.raw!==``),y=null,b=v.length?Cv(v[0].raw):null;if(s&&b){let e=t[s],n=Cv(e),r=n?n.unit===b.unit?n.value:null:e!==``&&e!=null&&!Number.isNaN(Number(e))?Number(e):null;r==null?b.value<=0&&(y=`missing`):y=b.value>=r?`enough`:b.value>0?`partial`:`missing`}let x=v.map(({raw:e})=>{let t=Cv(e);return t?`${t.value} ${wv(r,t.unit,_)}`:String(e)}).join(` · `),S=y===`enough`?`bg-success/15 text-success border-success/30`:y===`partial`?`bg-warning/15 text-warning border-warning/30`:y===`missing`?`bg-danger/15 text-danger border-danger/30`:`bg-accent/10 text-muted border-border`,C=y===`enough`?`lucide:check`:y===`partial`?`lucide:minus`:y===`missing`?`lucide:x`:null;return(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-1 text-xs px-2 py-0.5 rounded-full border whitespace-nowrap ${S}`,title:y?r(`core.lookup.${y}`):void 0,children:[C&&(0,R.jsxDEV)(we,{name:C,size:12},void 0,!1,{fileName:Sv,lineNumber:106,columnNumber:20},this),` `,x||r(`core.lookup.noData`)]},void 0,!0,{fileName:Sv,lineNumber:102,columnNumber:5},this)}var Ev=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/components/RecordInline.tsx`;function Dv(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 Ov({shelf:e,row:t,size:n=`md`,height:r,className:i}){let a=gn(e,t),o=un(e),s=o?Dv(t[o]):void 0,c=s?{kind:`image`,value:Zn(s)}:{kind:`icon`,value:e.icon??`lucide:square`};return(0,R.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-2 ${i??``}`,style:r?{height:r,minHeight:r}:void 0,children:[o&&(0,R.jsxDEV)(oc,{icon:c,size:n===`sm`?`md`:`lg`,framed:!0},void 0,!1,{fileName:Ev,lineNumber:55,columnNumber:18},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:a},void 0,!1,{fileName:Ev,lineNumber:56,columnNumber:7},this)]},void 0,!0,{fileName:Ev,lineNumber:51,columnNumber:5},this)}var kv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/display.tsx`;function Av({checked:e,onToggle:t,disabled:n}){let r=`w-4 h-4 rounded border shrink-0 inline-flex items-center justify-center transition-colors ${e?`bg-accent/20 border-accent/50 text-accent`:`border-border`}`,i=e?(0,R.jsxDEV)(Je,{size:11,strokeWidth:3},void 0,!1,{fileName:kv,lineNumber:76,columnNumber:27},this):null;return t?(0,R.jsxDEV)(`button`,{type:`button`,"aria-pressed":e,disabled:n,onClick:t,className:`${r} cursor-pointer hover:border-accent/40 disabled:opacity-50 disabled:cursor-not-allowed`,children:i},void 0,!1,{fileName:kv,lineNumber:79,columnNumber:7},this):(0,R.jsxDEV)(`span`,{className:r,children:i},void 0,!1,{fileName:kv,lineNumber:90,columnNumber:10},this)}function jv({row:e,slotCount:t,numbered:n,editing:r,onToggle:i,onChange:a,onRemove:o,reserve:s,disabled:c}){let l=Array.from({length:t},(t,n)=>!!(e.checks??[])[n]),u=l.length>0&&l.every(Boolean);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2.5 min-w-0 text-sm`,children:[l.map((t,o)=>(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5`,children:[n&&(0,R.jsxDEV)(`span`,{className:`text-[10px] text-muted tabular-nums`,children:dt(o)},void 0,!1,{fileName:kv,lineNumber:136,columnNumber:24},this),r?(0,R.jsxDEV)(V_,{checked:t,onCheckedChange:t=>a?.({...e,checks:l.map((e,n)=>n===o?t===!0:e)})},void 0,!1,{fileName:kv,lineNumber:138,columnNumber:13},this):(0,R.jsxDEV)(Av,{checked:t,onToggle:i?()=>i(o):void 0,disabled:c},void 0,!1,{fileName:kv,lineNumber:143,columnNumber:13},this)]},o,!0,{fileName:kv,lineNumber:135,columnNumber:9},this)),r?(0,R.jsxDEV)(E,{value:e.text,className:`min-w-0 flex-1`,onChange:t=>a?.({...e,text:t.target.value})},void 0,!1,{fileName:kv,lineNumber:150,columnNumber:9},this):(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 ${u?`line-through text-muted`:`text-text`}`,children:e.text},void 0,!1,{fileName:kv,lineNumber:156,columnNumber:9},this),(r?!!o:s)&&(0,R.jsxDEV)(ut,{onRemove:r?o:void 0},void 0,!1,{fileName:kv,lineNumber:158,columnNumber:51},this)]},void 0,!0,{fileName:kv,lineNumber:133,columnNumber:5},this)}function Mv({value:e,onChange:t,slots:n=[],disabled:r}){let i=yt(e,n.length);if(!i.text&&!i.checks.some(Boolean))return(0,R.jsxDEV)(`div`,{className:`flex text-sm`,children:(0,R.jsxDEV)(it,{},void 0,!1,{fileName:kv,lineNumber:178,columnNumber:84},this)},void 0,!1,{fileName:kv,lineNumber:178,columnNumber:54},this);let a=t?e=>t(at({...i,checks:i.checks.map((t,n)=>n===e?!t:t)})):void 0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:(0,R.jsxDEV)(jv,{row:i,slotCount:n.length,numbered:_t(n.length),onToggle:a,disabled:r},void 0,!1,{fileName:kv,lineNumber:185,columnNumber:9},this)},void 0,!1,{fileName:kv,lineNumber:184,columnNumber:7},this),(0,R.jsxDEV)(pt,{slots:n},void 0,!1,{fileName:kv,lineNumber:187,columnNumber:7},this)]},void 0,!0,{fileName:kv,lineNumber:183,columnNumber:5},this)}function Nv({value:e,onChange:t,slots:n=[],disabled:r}){let i=An(e,[]).filter(e=>e&&(e.text||(e.checks??[]).some(Boolean)));if(!i.length)return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:kv,lineNumber:205,columnNumber:28},this);let a=t?(e,n)=>t(i.map((t,r)=>r===e?{...t,checks:(t.checks??[]).map((e,t)=>t===n?!e:e)}:t)):void 0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:i.map((e,t)=>(0,R.jsxDEV)(jv,{row:e,slotCount:n.length,numbered:_t(n.length),onToggle:a?e=>a(t,e):void 0,reserve:!0,disabled:r},t,!1,{fileName:kv,lineNumber:218,columnNumber:11},this))},void 0,!1,{fileName:kv,lineNumber:216,columnNumber:7},this),(0,R.jsxDEV)(pt,{slots:n},void 0,!1,{fileName:kv,lineNumber:229,columnNumber:7},this)]},void 0,!0,{fileName:kv,lineNumber:215,columnNumber:5},this)}function Pv({field:e,value:t}){let n=e.relation?.library??``,r=e.relation?.shelf??``,i=e.hints.multi?An(t,[]):st(t)?[String(t)]:[],a=_v(n,r,i),o=Te(n,r);return i.length?(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:i.map(e=>{let t=a.get(e);return(0,R.jsxDEV)(m,{to:`/${n}/${r}/${e}`,className:`inline-flex items-center gap-1.5 min-h-9 text-accent border border-transparent rounded-lg px-3 text-sm hover:text-accent2 transition-colors`,children:o&&t?(0,R.jsxDEV)(Ov,{shelf:o,row:t,size:`sm`,height:28},void 0,!1,{fileName:kv,lineNumber:255,columnNumber:25},this):ct(e)},e,!1,{fileName:kv,lineNumber:250,columnNumber:11},this)})},void 0,!1,{fileName:kv,lineNumber:246,columnNumber:5},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:kv,lineNumber:244,columnNumber:27},this)}function Fv(e,t,n){let r=(Gt(e.hints.units)??[]).find(e=>e.value===t);return r?n(r.label):t}function Iv(e,t){return n=>{let r=n&&typeof n==`object`?n:(()=>{try{return JSON.parse(String(n))}catch{return null}})();if(r&&typeof r==`object`&&`value`in r&&`unit`in r){let{value:n,unit:i}=r;return(0,R.jsxDEV)(`span`,{className:`font-mono`,children:`${n} ${Fv(e,String(i),t)}`},void 0,!1,{fileName:kv,lineNumber:276,columnNumber:14},this)}return(0,R.jsxDEV)(`span`,{className:`font-mono`,children:String(n)},void 0,!1,{fileName:kv,lineNumber:278,columnNumber:12},this)}}function Lv({field:e,value:t}){let{t:n}=a(),r=An(t,null);return!r||r.value==null?(0,R.jsxDEV)(it,{},void 0,!1,{fileName:kv,lineNumber:286,columnNumber:41},this):(0,R.jsxDEV)(`span`,{className:`font-mono text-sm`,children:[r.value,` `,(0,R.jsxDEV)(`span`,{className:`text-xs text-muted`,children:Fv(e,r.unit,n)},void 0,!1,{fileName:kv,lineNumber:289,columnNumber:19},this)]},void 0,!0,{fileName:kv,lineNumber:288,columnNumber:5},this)}var q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/edit.tsx`;function Rv({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=o.filter(e=>!e.virtual),l=(0,L.useRef)(0),u=e=>e.map(e=>({id:++l.current,data:e})),d=()=>Object.fromEntries(c.map(e=>[e.key,``])),f=()=>{let t=An(e,a?[]:{});return a?Array.isArray(t)?t:[]:[t&&!Array.isArray(t)&&Object.keys(t).length?t:d()]},[p,m]=(0,L.useState)(()=>u(f()));(0,L.useEffect)(()=>{e||m(a?[]:u([d()]))},[e]);let h=e=>c.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,R.jsxDEV)(`div`,{className:`flex items-start gap-2 flex-wrap border border-border rounded-xl p-3`,children:[o.map(e=>e.virtual?e.prim===`lookup`?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:[e.label?(0,R.jsxDEV)(zt,{label:r(e.label)},void 0,!1,{fileName:q,lineNumber:111,columnNumber:30},this):null,(0,R.jsxDEV)(`div`,{children:(0,R.jsxDEV)(Tv,{lookupField:e,row:t,subs:o},void 0,!1,{fileName:q,lineNumber:113,columnNumber:19},this)},void 0,!1,{fileName:q,lineNumber:112,columnNumber:17},this)]},e.key,!0,{fileName:q,lineNumber:110,columnNumber:15},this):null:(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 flex-1 min-w-32`,children:(0,R.jsxDEV)(gr,{field:$t(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:q,lineNumber:119,columnNumber:15},this)},e.key,!1,{fileName:q,lineNumber:118,columnNumber:13},this)),a&&(0,R.jsxDEV)(et,{className:`mt-6`,onClick:()=>g(p.filter((e,t)=>t!==n))},void 0,!1,{fileName:q,lineNumber:131,columnNumber:22},this)]},e,!0,{fileName:q,lineNumber:105,columnNumber:7},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2.5`,children:[p.map(y),a&&(0,R.jsxDEV)(vt,{onClick:()=>m(e=>[...e,...u([d()])]),children:r(`form.addRow`)},void 0,!1,{fileName:q,lineNumber:139,columnNumber:20},this)]},void 0,!0,{fileName:q,lineNumber:137,columnNumber:5},this)}function zv({value:e,onChange:t,field:n}){let{t:r}=a(),i=(0,L.useMemo)(()=>Gt(n.hints.units)??[],[n.hints]),o=(0,L.useMemo)(()=>{if(e&&typeof e==`object`)return e;try{return JSON.parse(String(e))}catch{return{value:``,unit:i[0]?.value??``}}},[e,i]),s=e=>t(e.value===``?``:e);return(0,R.jsxDEV)(ee,{className:`min-w-0`,children:[(0,R.jsxDEV)(D,{type:`number`,className:`min-w-0`,value:o.value===``?``:String(o.value),min:n.hints.min,max:n.hints.max,step:n.hints.step??`any`,onChange:e=>{let t=parseFloat(e.target.value);s({...o,value:isNaN(t)?``:t})},placeholder:`0`},void 0,!1,{fileName:q,lineNumber:175,columnNumber:7},this),(0,R.jsxDEV)(O,{align:`inline-end`,className:`pr-1`,children:(0,R.jsxDEV)(Xe,{value:o.unit||void 0,onValueChange:e=>s({...o,unit:e}),children:[(0,R.jsxDEV)(Qe,{className:`h-7 gap-1 border-0 bg-transparent px-2 text-muted shadow-none focus:ring-0`,children:(0,R.jsxDEV)(Ze,{},void 0,!1,{fileName:q,lineNumber:191,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:190,columnNumber:11},this),(0,R.jsxDEV)(xt,{children:i.map(e=>(0,R.jsxDEV)(tt,{value:e.value,children:r(e.label)},e.value,!1,{fileName:q,lineNumber:195,columnNumber:15},this))},void 0,!1,{fileName:q,lineNumber:193,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:189,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:188,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:174,columnNumber:5},this)}function Bv({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}=gv(o,s,String(e.hints.displayKey??`name`)),f=Te(o,s),p=(0,L.useMemo)(()=>t?c?Array.isArray(t)?t.map(String):An(t,[]).map(String):[String(t)]:[],[t,c]),m=_v(o,s,p),h=(0,L.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,L.useMemo)(()=>h.filter(e=>String(e.id)===String(t)||p.includes(String(e.id))||!r?.includes(String(e.id))).map(e=>{let t=f?xv(f,e):{title:String(e.id)},n=f?(0,R.jsxDEV)(Ov,{shelf:f,row:e,size:`sm`,height:28},void 0,!1,{fileName:q,lineNumber:258,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,R.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.loading`)},void 0,!1,{fileName:q,lineNumber:266,columnNumber:39},this):d===`error`?(0,R.jsxDEV)(`p`,{className:`text-danger text-sm py-1`,children:i(`form.loadError`)},void 0,!1,{fileName:q,lineNumber:267,columnNumber:37},this):g.length?c?(0,R.jsxDEV)(G_,{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:q,lineNumber:275,columnNumber:5},this):(0,R.jsxDEV)(W_,{value:t==null?``:String(t),onChange:n,items:g},void 0,!1,{fileName:q,lineNumber:272,columnNumber:22},this):(0,R.jsxDEV)(`p`,{className:`text-muted text-sm py-1`,children:i(`form.noRecords`)},void 0,!1,{fileName:q,lineNumber:269,columnNumber:29},this)}function Vv(e){return{text:``,checks:Array(e).fill(!1)}}function Hv({value:e,onChange:t,field:n}){let r=n.hints.slots??[``],[i,a]=(0,L.useState)(()=>yt(e,r.length));(0,L.useEffect)(()=>{e||a(Vv(r.length))},[e,r.length]);function o(e){a(e),t(e.text.trim()!==``||e.checks.some(Boolean)?at(e):``)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(jv,{row:i,slotCount:r.length,editing:!0,onChange:o},void 0,!1,{fileName:q,lineNumber:319,columnNumber:7},this),(0,R.jsxDEV)(pt,{slots:r},void 0,!1,{fileName:q,lineNumber:320,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:318,columnNumber:5},this)}function Uv({value:e,onChange:t,field:n}){let{t:r}=a(),i=n.hints.slots??[``],[o,s]=(0,L.useState)(()=>An(e,[]));(0,L.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,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5 py-1`,children:[o.map((e,t)=>(0,R.jsxDEV)(jv,{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:q,lineNumber:351,columnNumber:9},this)),(0,R.jsxDEV)(pt,{slots:i},void 0,!1,{fileName:q,lineNumber:360,columnNumber:7},this),(0,R.jsxDEV)(vt,{onClick:()=>s(e=>[...e,Vv(i.length)]),children:r(`form.addItem`)},void 0,!1,{fileName:q,lineNumber:361,columnNumber:7},this)]},void 0,!0,{fileName:q,lineNumber:349,columnNumber:5},this)}function Wv(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 Gv({field:e,value:t,onChange:n}){let{t:r}=a(),i=(0,L.useMemo)(()=>Wv(t),[t]),[o,s]=(0,L.useState)(``);function c(e){n(e.length?e:``)}function l(){!o||typeof o!=`object`||o.value===``||(c([...i,o]),s(``))}return(0,R.jsxDEV)(St,{items:i,content:Iv(e,r),onRemove:e=>c(i.filter((t,n)=>n!==e)),editor:(0,R.jsxDEV)(`div`,{className:`flex gap-2 items-center min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(zv,{value:o,onChange:e=>s(e),field:e},void 0,!1,{fileName:q,lineNumber:506,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:505,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,size:`sm`,onClick:l,children:(0,R.jsxDEV)(Wt,{size:14},void 0,!1,{fileName:q,lineNumber:513,columnNumber:13},this)},void 0,!1,{fileName:q,lineNumber:512,columnNumber:11},this)]},void 0,!0,{fileName:q,lineNumber:504,columnNumber:9},this)},void 0,!1,{fileName:q,lineNumber:499,columnNumber:5},this)}var Kv=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/composite.tsx`;function qv(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-56`,bare:e.bare,view:t=>(0,R.jsxDEV)(Pv,{field:e.field,value:t},void 0,!1,{fileName:Kv,lineNumber:43,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Bv,{field:e.field,value:t,onChange:n,excludeValues:e.excludeValues},void 0,!1,{fileName:Kv,lineNumber:45,columnNumber:9},this)},void 0,!1,{fileName:Kv,lineNumber:32,columnNumber:5},this)}function Jv({value:e}){let t=An(e,null);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:Array.isArray(t)?t.length?String(t.length):`—`:e?`1`:`—`},void 0,!1,{fileName:Kv,lineNumber:59,columnNumber:10},this)}function Yv(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}]}I({kinds:[`relation`],layout:Cn,Page:qv,Inline:Jv,keys:Yv});function Xv({field:e,value:t}){let{t:n}=a();return(0,R.jsxDEV)(St,{items:Array.isArray(t)?t:lt(String(t??``)),content:Iv(e,n),reserveEditor:!0},void 0,!1,{fileName:Kv,lineNumber:84,columnNumber:10},this)}function Zv(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,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,R.jsxDEV)(Xv,{field:e.field,value:t},void 0,!1,{fileName:Kv,lineNumber:102,columnNumber:11},this):(0,R.jsxDEV)(Lv,{field:e.field,value:t},void 0,!1,{fileName:Kv,lineNumber:104,columnNumber:11},this),edit:(t,n)=>e.field.hints.multiple===!0?(0,R.jsxDEV)(Gv,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Kv,lineNumber:109,columnNumber:11},this):(0,R.jsxDEV)(zv,{value:t,onChange:n,field:e.field},void 0,!1,{fileName:Kv,lineNumber:111,columnNumber:11},this)},void 0,!1,{fileName:Kv,lineNumber:89,columnNumber:5},this)}function Qv({field:e,value:t}){let{t:n}=a(),r=An(t,null);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:r?`${r.value} ${Fv(e,String(r.unit),n)}`:`—`},void 0,!1,{fileName:Kv,lineNumber:122,columnNumber:10},this)}I({kinds:[`measured`],Page:Zv,Inline:Qv});function $v(e){let{saving:t}=Q_();return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,width:`w-full`,bare:e.bare,view:(n,r)=>{let i=e.field.hints.slots??[``];return e.field.hints.multiple===!0?(0,R.jsxDEV)(Nv,{value:n,onChange:r,slots:i,disabled:t},void 0,!1,{fileName:Kv,lineNumber:151,columnNumber:11},this):(0,R.jsxDEV)(Mv,{value:n,onChange:r,slots:i,disabled:t},void 0,!1,{fileName:Kv,lineNumber:153,columnNumber:11},this)},edit:(t,n)=>e.field.hints.multiple===!0?(0,R.jsxDEV)(Uv,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Kv,lineNumber:158,columnNumber:11},this):(0,R.jsxDEV)(Hv,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Kv,lineNumber:160,columnNumber:11},this)},void 0,!1,{fileName:Kv,lineNumber:137,columnNumber:5},this)}function ey({value:e,field:t}){let n=yt(e,(t.hints.slots??[``]).length),r=n.checks.length;return!n.text&&!n.checks.some(Boolean)?(0,R.jsxDEV)(`span`,{className:`truncate`,children:`—`},void 0,!1,{fileName:Kv,lineNumber:171,columnNumber:54},this):(0,R.jsxDEV)(`span`,{className:`truncate`,children:r?`${n.checks.filter(Boolean).length}/${r}`:n.text||`—`},void 0,!1,{fileName:Kv,lineNumber:173,columnNumber:10},this)}I({kinds:[`check`],layout:`block`,Page:$v,Inline:ey});function ty(){let[e,t]=(0,L.useState)(!1),[n,r]=(0,L.useState)(0),[i,a]=(0,L.useState)(null);async function o(e){if(a(null),e.size>26214400)return a(`upload.tooLarge`),null;t(!0),r(0);let n=await qn(e,r);return t(!1),n||(a(`upload.failed`),r(0),null)}return{busy:e,error:i,progress:n,upload:o}}var J=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/image.tsx`;function ny(e){return Ke({title:e(`actions.confirmDeletePhoto`),confirmLabel:e(`actions.delete`),variant:`destructive`})}var ry=/\.(mp4|webm|ogg|mov|m4v)$/i;function iy(e){return ry.test(e)}function ay({name:e}){return iy(e)?(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`video`,{src:Zn(e),muted:!0,playsInline:!0,preload:`metadata`,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:43,columnNumber:9},this),(0,R.jsxDEV)(`span`,{className:`pointer-events-none absolute inset-0 flex items-center justify-center`,children:(0,R.jsxDEV)(Ce,{size:28,className:`text-white/90 drop-shadow`,fill:`currentColor`},void 0,!1,{fileName:J,lineNumber:45,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:44,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:42,columnNumber:7},this):(0,R.jsxDEV)(`img`,{src:Zn(e),alt:``,loading:`lazy`,className:`h-full w-full object-cover transition-opacity hover:opacity-90`},void 0,!1,{fileName:J,lineNumber:51,columnNumber:5},this)}function oy(e){let t=e=>!!e&&typeof e==`object`&&typeof e.name==`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:n?[n]:[]).filter(t)}catch{return[]}}function sy({images:e,index:t,onClose:n,onIndex:r}){let i=e.length>1,a=()=>r((t-1+e.length)%e.length),o=()=>r((t+1)%e.length);return(0,L.useEffect)(()=>{let e=e=>{e.key===`Escape`?n():e.key===`ArrowLeft`&&i?a():e.key===`ArrowRight`&&i&&o()};return document.addEventListener(`keydown`,e),document.body.style.overflow=`hidden`,()=>{document.removeEventListener(`keydown`,e),document.body.style.overflow=``}},[t,e.length]),(0,R.jsxDEV)(`div`,{className:`fixed inset-0 z-[100] bg-black/85 backdrop-blur-sm flex items-center justify-center`,onClick:n,children:[(0,R.jsxDEV)(`button`,{className:`lightbox-btn absolute top-4 right-4`,onClick:n,children:(0,R.jsxDEV)(w,{size:22},void 0,!1,{fileName:J,lineNumber:113,columnNumber:9},this)},void 0,!1,{fileName:J,lineNumber:112,columnNumber:7},this),i&&(0,R.jsxDEV)(`button`,{className:`lightbox-btn absolute left-3 md:left-6`,onClick:e=>{e.stopPropagation(),a()},children:(0,R.jsxDEV)(hs,{size:26},void 0,!1,{fileName:J,lineNumber:123,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:116,columnNumber:9},this),iy(e[t])?(0,R.jsxDEV)(`video`,{src:Zn(e[t]),controls:!0,autoPlay:!0,className:`max-h-[90dvh] max-w-[92vw] rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()},void 0,!1,{fileName:J,lineNumber:127,columnNumber:9},this):(0,R.jsxDEV)(`img`,{src:Zn(e[t]),alt:``,className:`max-h-[90dvh] max-w-[92vw] object-contain rounded-lg shadow-2xl`,onClick:e=>e.stopPropagation()},void 0,!1,{fileName:J,lineNumber:135,columnNumber:9},this),i&&(0,R.jsxDEV)(`button`,{className:`lightbox-btn absolute right-3 md:right-6`,onClick:e=>{e.stopPropagation(),o()},children:(0,R.jsxDEV)(gs,{size:26},void 0,!1,{fileName:J,lineNumber:150,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:143,columnNumber:9},this),i&&(0,R.jsxDEV)(`div`,{className:`absolute bottom-5 left-1/2 -translate-x-1/2 text-white/70 text-sm tabular-nums`,children:[t+1,` / `,e.length]},void 0,!0,{fileName:J,lineNumber:154,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:108,columnNumber:5},this)}function cy({name:e,className:t}){let[n,r]=(0,L.useState)(!1);return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`img`,{src:Zn(e),alt:``,loading:`lazy`,onClick:()=>r(!0),className:t??`max-h-40 rounded-xl border border-border cursor-zoom-in hover:opacity-90 transition-opacity`},void 0,!1,{fileName:J,lineNumber:169,columnNumber:7},this),n&&(0,R.jsxDEV)(sy,{images:[e],index:0,onClose:()=>r(!1),onIndex:()=>{}},void 0,!1,{fileName:J,lineNumber:178,columnNumber:16},this)]},void 0,!0,{fileName:J,lineNumber:168,columnNumber:5},this)}function ly({value:e,poster:t}){let n=oy(e),[r,i]=(0,L.useState)(null);if(!n.length)return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:J,lineNumber:188,columnNumber:28},this);let a=n.map(e=>e.name),o=t?`h-96 w-64`:`h-24 w-24`;return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:n.map((e,t)=>(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>i(t),className:`relative ${o} rounded-xl overflow-hidden border border-border hover:border-accent transition-colors cursor-zoom-in`,children:(0,R.jsxDEV)(ay,{name:e.name},void 0,!1,{fileName:J,lineNumber:201,columnNumber:13},this)},`${e.name}-${t}`,!1,{fileName:J,lineNumber:195,columnNumber:11},this))},void 0,!1,{fileName:J,lineNumber:193,columnNumber:7},this),r!==null&&(0,R.jsxDEV)(sy,{images:a,index:r,onClose:()=>i(null),onIndex:i},void 0,!1,{fileName:J,lineNumber:205,columnNumber:25},this)]},void 0,!0,{fileName:J,lineNumber:192,columnNumber:5},this)}function uy({value:e}){let t=oy(e),[n,r]=(0,L.useState)(null);if(!t.length)return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:J,lineNumber:215,columnNumber:28},this);let i=t.map(e=>e.name);return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:t.length===1?(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>r(0),className:`relative inline-block rounded-full cursor-zoom-in`,children:(0,R.jsxDEV)(`img`,{src:Zn(t[0].name),alt:``,loading:`lazy`,className:`max-h-96 rounded-full border border-border object-cover hover:opacity-90 transition-opacity`},void 0,!1,{fileName:J,lineNumber:229,columnNumber:13},this)},`${t[0].name}-0`,!1,{fileName:J,lineNumber:223,columnNumber:11},this):t.map((e,t)=>(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>r(t),className:`relative h-24 w-24 rounded-full overflow-hidden border border-border hover:border-accent transition-colors cursor-zoom-in`,children:(0,R.jsxDEV)(`img`,{src:Zn(e.name),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:243,columnNumber:13},this)},`${e.name}-${t}`,!1,{fileName:J,lineNumber:237,columnNumber:11},this))},void 0,!1,{fileName:J,lineNumber:221,columnNumber:7},this),n!==null&&(0,R.jsxDEV)(sy,{images:i,index:n,onClose:()=>r(null),onIndex:r},void 0,!1,{fileName:J,lineNumber:247,columnNumber:25},this)]},void 0,!0,{fileName:J,lineNumber:220,columnNumber:5},this)}function dy({value:e}){let t=oy(e)[0];return t?(0,R.jsxDEV)(`img`,{src:Zn(t.name),alt:``,style:{height:28,width:28},className:`rounded-full object-cover`},void 0,!1,{fileName:J,lineNumber:256,columnNumber:5},this):(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:J,lineNumber:254,columnNumber:20},this)}function fy({value:e,banner:t}){let n=oy(e),[r,i]=(0,L.useState)(0),[a,o]=(0,L.useState)(!1);if(!n.length)return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:J,lineNumber:275,columnNumber:28},this);let s=n.map(e=>e.name),c=n.length>1,l=Math.min(r,n.length-1),u=()=>i((l-1+n.length)%n.length),d=()=>i((l+1)%n.length);return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:t?`relative w-full overflow-hidden rounded-none`:`relative w-full overflow-hidden rounded-xl border border-border`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),o(!0)},className:t?`block h-48 w-full cursor-zoom-in md:h-64`:`block aspect-video max-h-96 w-full cursor-zoom-in`,children:(0,R.jsxDEV)(`img`,{src:Zn(s[l]),alt:``,loading:`lazy`,className:`h-full w-full object-cover`},void 0,!1,{fileName:J,lineNumber:297,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:290,columnNumber:9},this),c&&(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`button`,{type:`button`,className:`lightbox-btn absolute left-2 top-1/2 -translate-y-1/2`,onClick:e=>{e.stopPropagation(),u()},children:(0,R.jsxDEV)(hs,{size:22},void 0,!1,{fileName:J,lineNumber:306,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:301,columnNumber:13},this),(0,R.jsxDEV)(`button`,{type:`button`,className:`lightbox-btn absolute right-2 top-1/2 -translate-y-1/2`,onClick:e=>{e.stopPropagation(),d()},children:(0,R.jsxDEV)(gs,{size:22},void 0,!1,{fileName:J,lineNumber:313,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:308,columnNumber:13},this),(0,R.jsxDEV)(`div`,{className:`absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-2 py-0.5 text-xs text-white tabular-nums`,children:[l+1,` / `,n.length]},void 0,!0,{fileName:J,lineNumber:315,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:300,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:283,columnNumber:7},this),a&&(0,R.jsxDEV)(sy,{images:s,index:l,onClose:()=>o(!1),onIndex:i},void 0,!1,{fileName:J,lineNumber:321,columnNumber:16},this)]},void 0,!0,{fileName:J,lineNumber:282,columnNumber:5},this)}function py({accept:e,busy:t,error:n,progress:r,onPick:i,className:o,round:s=!1}){let{t:c}=a();return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`label`,{className:`flex cursor-pointer flex-col items-center justify-center gap-2 ${s?`rounded-full`:`rounded-xl`} border-2 border-dashed border-border text-muted transition-colors hover:border-accent hover:text-accent ${t?`pointer-events-none opacity-60`:``} ${o??``}`,children:[t?(0,R.jsxDEV)(Ot,{size:24,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:357,columnNumber:17},this):(0,R.jsxDEV)(kt,{size:24},void 0,!1,{fileName:J,lineNumber:357,columnNumber:66},this),(0,R.jsxDEV)(`span`,{className:`text-sm font-medium`,children:c(`actions.upload`)},void 0,!1,{fileName:J,lineNumber:358,columnNumber:9},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>i(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:359,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:350,columnNumber:7},this),t&&r!=null&&(0,R.jsxDEV)(mt,{progress:r},void 0,!1,{fileName:J,lineNumber:367,columnNumber:36},this),n&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:c(n)},void 0,!1,{fileName:J,lineNumber:368,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:349,columnNumber:5},this)}function my({accept:e,busy:t,error:n,progress:r,onPick:i,className:o}){let{t:s}=a();return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`label`,{className:`flex h-9 cursor-pointer items-center gap-2 rounded-lg border border-dashed border-border px-3 text-sm text-muted transition-colors hover:border-accent hover:text-accent ${t?`pointer-events-none opacity-60`:``} ${o??`w-fit`}`,children:[t?(0,R.jsxDEV)(Ot,{size:15,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:400,columnNumber:17},this):(0,R.jsxDEV)(kt,{size:15},void 0,!1,{fileName:J,lineNumber:400,columnNumber:66},this),(0,R.jsxDEV)(`span`,{className:`font-medium`,children:s(`actions.upload`)},void 0,!1,{fileName:J,lineNumber:401,columnNumber:9},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>i(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:402,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:395,columnNumber:7},this),t&&r!=null&&(0,R.jsxDEV)(mt,{progress:r},void 0,!1,{fileName:J,lineNumber:410,columnNumber:36},this),n&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:s(n)},void 0,!1,{fileName:J,lineNumber:411,columnNumber:17},this)]},void 0,!0,{fileName:J,lineNumber:394,columnNumber:5},this)}function hy({accept:e,busy:t,onPick:n,title:r,className:i}){return(0,R.jsxDEV)(`label`,{title:r,className:`inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-full bg-bg/70 text-muted opacity-0 backdrop-blur-sm transition-all hover:text-accent group-hover:opacity-100 ${t?`pointer-events-none opacity-60`:``} ${i??``}`,children:[t?(0,R.jsxDEV)(Ot,{size:15,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:437,columnNumber:15},this):(0,R.jsxDEV)(be,{size:15},void 0,!1,{fileName:J,lineNumber:437,columnNumber:64},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:e,className:`hidden`,disabled:t,onChange:e=>n(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:438,columnNumber:7},this)]},void 0,!0,{fileName:J,lineNumber:431,columnNumber:5},this)}function gy({value:e,onChange:t,accept:n=`image/*`,poster:r}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=ty(),u=oy(e)[0];async function d(e){if(!e)return;let n=await l(e);n&&t(n)}return u?(0,R.jsxDEV)(`div`,{className:`group relative inline-block`,children:[(0,R.jsxDEV)(cy,{name:u.name,className:r?`h-96 w-64 object-cover rounded-xl border border-border cursor-zoom-in hover:opacity-90 transition-opacity`:void 0},void 0,!1,{fileName:J,lineNumber:473,columnNumber:9},this),(0,R.jsxDEV)(hy,{accept:n,busy:o,onPick:d,title:i(`actions.replace`),className:`absolute right-11 top-2`},void 0,!1,{fileName:J,lineNumber:481,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`icon`,disabled:o,className:`absolute top-2 right-2 h-8 w-8 rounded-full bg-bg/70 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/70 hover:text-danger group-hover:opacity-100`,onClick:async()=>{await ny(i)&&t(``)},title:i(`actions.delete`),children:(0,R.jsxDEV)(ye,{size:15},void 0,!1,{fileName:J,lineNumber:493,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:482,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:472,columnNumber:7},this):(0,R.jsxDEV)(my,{accept:n,busy:o,error:s,progress:c,onPick:d},void 0,!1,{fileName:J,lineNumber:498,columnNumber:10},this)}function _y({value:e,onChange:t,accept:n=`image/*`,poster:r}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=ty(),[u,d]=(0,L.useState)(null),f=oy(e),p=r?`h-96 w-64`:`h-24 w-24`;function m(e){t(e.length?e:``)}async function h(e){if(!e)return;let t=await l(e);t&&m([...f,t])}let g=f.map(e=>e.name);return f.length?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-2`,children:[f.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`group/img relative ${p} overflow-hidden rounded-xl border border-border`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>d(t),className:`block h-full w-full cursor-zoom-in`,children:(0,R.jsxDEV)(ay,{name:e.name},void 0,!1,{fileName:J,lineNumber:543,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:542,columnNumber:13},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:o,className:`m-0 absolute right-1 top-1 rounded-full bg-bg/80 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/80 hover:text-danger group-hover/img:opacity-100`,onClick:async()=>{await ny(i)&&m(f.filter((e,n)=>n!==t))},title:i(`actions.delete`),children:(0,R.jsxDEV)(ye,{size:13},void 0,!1,{fileName:J,lineNumber:556,columnNumber:15},this)},void 0,!1,{fileName:J,lineNumber:545,columnNumber:13},this)]},`${e.name}-${t}`,!0,{fileName:J,lineNumber:538,columnNumber:11},this)),(0,R.jsxDEV)(py,{accept:n,busy:o,error:s,progress:c,onPick:h,className:p},void 0,!1,{fileName:J,lineNumber:560,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:536,columnNumber:7},this),u!==null&&(0,R.jsxDEV)(sy,{images:g,index:u,onClose:()=>d(null),onIndex:d},void 0,!1,{fileName:J,lineNumber:562,columnNumber:25},this)]},void 0,!0,{fileName:J,lineNumber:535,columnNumber:5},this):(0,R.jsxDEV)(my,{accept:n,busy:o,error:s,progress:c,onPick:h},void 0,!1,{fileName:J,lineNumber:532,columnNumber:12},this)}function vy({value:e,onChange:t,accept:n=`image/*`,multiple:r=!1}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=ty(),u=oy(e),d=e=>t(e.length?e:``);if(r){async function e(e){if(!e)return;let t=await l(e);t&&d([...u,t])}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:(0,R.jsxDEV)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[u.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`group/av relative h-24 w-24 shrink-0`,children:[(0,R.jsxDEV)(`img`,{src:Zn(e.name),alt:``,className:`h-24 w-24 rounded-full border border-border object-cover`},void 0,!1,{fileName:J,lineNumber:596,columnNumber:15},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:o,className:`m-0 absolute right-1 top-1 h-7 w-7 rounded-full bg-bg/80 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/80 hover:text-danger group-hover/av:opacity-100`,onClick:async()=>{await ny(i)&&d(u.filter((e,n)=>n!==t))},title:i(`actions.delete`),children:(0,R.jsxDEV)(ye,{size:11},void 0,!1,{fileName:J,lineNumber:612,columnNumber:17},this)},void 0,!1,{fileName:J,lineNumber:601,columnNumber:15},this)]},`${e.name}-${t}`,!0,{fileName:J,lineNumber:595,columnNumber:13},this)),(0,R.jsxDEV)(py,{accept:n,busy:o,error:s,progress:c,onPick:e,className:`h-24 w-24`,round:!0},void 0,!1,{fileName:J,lineNumber:616,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:593,columnNumber:9},this)},void 0,!1,{fileName:J,lineNumber:592,columnNumber:7},this)}let f=u[0];async function p(e){if(!e)return;let n=await l(e);n&&t(n)}return f?(0,R.jsxDEV)(`div`,{className:`group relative inline-block`,children:[(0,R.jsxDEV)(`img`,{src:Zn(f.name),alt:``,className:`h-40 w-40 rounded-full border border-border object-cover`},void 0,!1,{fileName:J,lineNumber:632,columnNumber:9},this),(0,R.jsxDEV)(hy,{accept:n,busy:o,onPick:p,title:i(`actions.replace`),className:`absolute right-9 top-1`},void 0,!1,{fileName:J,lineNumber:637,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`icon`,disabled:o,className:`absolute right-1 top-1 h-8 w-8 rounded-full bg-bg/70 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/70 hover:text-danger group-hover:opacity-100`,onClick:async()=>{await ny(i)&&t(``)},title:i(`actions.delete`),children:(0,R.jsxDEV)(ye,{size:15},void 0,!1,{fileName:J,lineNumber:649,columnNumber:11},this)},void 0,!1,{fileName:J,lineNumber:638,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:631,columnNumber:7},this):(0,R.jsxDEV)(py,{accept:n,busy:o,error:s,progress:c,onPick:p,className:`h-40 w-40`,round:!0},void 0,!1,{fileName:J,lineNumber:654,columnNumber:10},this)}function yy({value:e,onChange:t,accept:n=`image/*`,multiple:r=!1}){let{t:i}=a(),{busy:o,error:s,progress:c,upload:l}=ty(),[u,d]=(0,L.useState)(0),f=oy(e),p=e=>t(e.length?e:``);async function m(e){if(!e)return;let t=await l(e);t&&p(r?[...f,t]:[t])}if(!f.length)return(0,R.jsxDEV)(my,{accept:n,busy:o,error:s,progress:c,onPick:m,className:`w-full`},void 0,!1,{fileName:J,lineNumber:686,columnNumber:12},this);let h=r?f.length+1:f.length,g=h>1,_=Math.min(u,h-1),v=r&&_===f.length;return(0,R.jsxDEV)(`div`,{className:`group/cov relative w-full overflow-hidden rounded-xl border border-border`,children:[v?(0,R.jsxDEV)(`div`,{className:`flex aspect-video max-h-96 w-full flex-col items-center justify-center gap-1 bg-elevated px-20`,children:[(0,R.jsxDEV)(`label`,{className:`flex w-full flex-1 cursor-pointer flex-col items-center justify-center gap-3 text-muted transition-colors hover:text-accent ${o?`pointer-events-none opacity-60`:``}`,children:[o?(0,R.jsxDEV)(Ot,{size:40,className:`animate-spin`},void 0,!1,{fileName:J,lineNumber:709,columnNumber:21},this):(0,R.jsxDEV)(kt,{size:40},void 0,!1,{fileName:J,lineNumber:709,columnNumber:70},this),(0,R.jsxDEV)(`span`,{className:`text-base font-medium`,children:i(`actions.upload`)},void 0,!1,{fileName:J,lineNumber:710,columnNumber:13},this),(0,R.jsxDEV)(`input`,{type:`file`,accept:n,className:`hidden`,disabled:o,onChange:e=>m(e.target.files?.[0]??null)},void 0,!1,{fileName:J,lineNumber:711,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:704,columnNumber:11},this),s&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:i(s)},void 0,!1,{fileName:J,lineNumber:719,columnNumber:21},this)]},void 0,!0,{fileName:J,lineNumber:703,columnNumber:9},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`img`,{src:Zn(f[_].name),alt:``,className:`aspect-video max-h-96 w-full object-cover`},void 0,!1,{fileName:J,lineNumber:723,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:o,className:`m-0 absolute right-1 top-1 rounded-full bg-bg/80 text-muted opacity-0 backdrop-blur-sm transition-all hover:bg-bg/80 hover:text-danger group-hover/cov:opacity-100`,onClick:async()=>{await ny(i)&&p(f.filter((e,t)=>t!==_))},title:i(`actions.delete`),children:(0,R.jsxDEV)(ye,{size:13},void 0,!1,{fileName:J,lineNumber:733,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:724,columnNumber:11},this)]},void 0,!0,{fileName:J,lineNumber:722,columnNumber:9},this),g&&(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`button`,{type:`button`,className:`absolute left-2 top-1/2 z-10 flex h-9 w-9 -translate-y-1/2 items-center justify-center rounded-full bg-black/50 text-white backdrop-blur-sm transition-colors hover:bg-black/70`,onClick:()=>d((_-1+h)%h),children:(0,R.jsxDEV)(hs,{size:22},void 0,!1,{fileName:J,lineNumber:744,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:739,columnNumber:11},this),(0,R.jsxDEV)(`button`,{type:`button`,className:`absolute right-2 top-1/2 z-10 flex h-9 w-9 -translate-y-1/2 items-center justify-center rounded-full bg-black/50 text-white backdrop-blur-sm transition-colors hover:bg-black/70`,onClick:()=>d((_+1)%h),children:(0,R.jsxDEV)(gs,{size:22},void 0,!1,{fileName:J,lineNumber:751,columnNumber:13},this)},void 0,!1,{fileName:J,lineNumber:746,columnNumber:11},this),!v&&(0,R.jsxDEV)(`div`,{className:`absolute bottom-2 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-2 py-0.5 text-xs text-white tabular-nums`,children:[_+1,` / `,f.length]},void 0,!0,{fileName:J,lineNumber:754,columnNumber:13},this)]},void 0,!0,{fileName:J,lineNumber:738,columnNumber:9},this)]},void 0,!0,{fileName:J,lineNumber:701,columnNumber:5},this)}function by({value:e,height:t}){let n=oy(e)[0];if(!n)return(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:J,lineNumber:768,columnNumber:20},this);let r=t??32;return iy(n.name)?(0,R.jsxDEV)(`video`,{src:Zn(n.name),muted:!0,playsInline:!0,preload:`metadata`,style:{height:r},className:`object-contain rounded`},void 0,!1,{fileName:J,lineNumber:772,columnNumber:7},this):(0,R.jsxDEV)(`img`,{src:Zn(n.name),alt:``,style:{height:r},className:`object-contain rounded`},void 0,!1,{fileName:J,lineNumber:781,columnNumber:10},this)}var Y=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/file.tsx`;function xy(e){return Ke({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`})}function Sy(e){return e==null?null:e>=1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${Math.round(e/1024)} KB`}function Cy({rec:e}){return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(Et,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:Y,lineNumber:38,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm`,children:e.name},void 0,!1,{fileName:Y,lineNumber:39,columnNumber:7},this),Sy(e.size)&&(0,R.jsxDEV)(`span`,{className:`text-xs text-muted`,children:Sy(e.size)},void 0,!1,{fileName:Y,lineNumber:40,columnNumber:35},this)]},void 0,!0,{fileName:Y,lineNumber:37,columnNumber:5},this)}function wy({kind:e,rec:t,className:n}){return e===`audio`?(0,R.jsxDEV)(`audio`,{controls:!0,src:Zn(t.name),className:n},void 0,!1,{fileName:Y,lineNumber:48,columnNumber:5},this):(0,R.jsxDEV)(`video`,{controls:!0,src:Zn(t.name),className:n},void 0,!1,{fileName:Y,lineNumber:50,columnNumber:5},this)}var Ty={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 Ey({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c}=ty(),l=oy(t),u=e=>n(e.length?e:``);async function d(e){if(!e)return;let t=await c(e);t&&u([...l,t])}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[l.map((e,t)=>(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 rounded-lg border border-border px-2 py-1.5`,children:[(0,R.jsxDEV)(Cy,{rec:e},void 0,!1,{fileName:Y,lineNumber:86,columnNumber:11},this),(0,R.jsxDEV)(`a`,{href:Zn(e.name),download:!0,className:`text-muted hover:text-accent`,children:(0,R.jsxDEV)(ys,{size:15},void 0,!1,{fileName:Y,lineNumber:88,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:87,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`text-muted hover:text-danger`,onClick:async()=>{await xy(r)&&u(l.filter((e,n)=>n!==t))},children:(0,R.jsxDEV)(ye,{size:13},void 0,!1,{fileName:Y,lineNumber:100,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:90,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:Y,lineNumber:85,columnNumber:9},this)),(0,R.jsxDEV)(rt,{accept:Ty[e]??`*`,busy:i,error:o,progress:s,onPick:d},void 0,!1,{fileName:Y,lineNumber:104,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:83,columnNumber:5},this)}function Dy({kind:e,value:t,onChange:n}){let{t:r}=a(),{busy:i,error:o,progress:s,upload:c}=ty(),l=oy(t),u=e=>n(e.length?e:``);async function d(e){if(!e)return;let t=await c(e);t&&u([...l,t])}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[l.map((t,n)=>(0,R.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsxDEV)(wy,{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:Y,lineNumber:128,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,disabled:i,className:`shrink-0 text-muted hover:text-danger`,onClick:async()=>{await xy(r)&&u(l.filter((e,t)=>t!==n))},children:(0,R.jsxDEV)(ye,{size:13},void 0,!1,{fileName:Y,lineNumber:139,columnNumber:13},this)},void 0,!1,{fileName:Y,lineNumber:129,columnNumber:11},this)]},`${t.name}-${n}`,!0,{fileName:Y,lineNumber:127,columnNumber:9},this)),(0,R.jsxDEV)(rt,{accept:Ty[e]??`*`,busy:i,error:o,progress:s,onPick:d},void 0,!1,{fileName:Y,lineNumber:143,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:125,columnNumber:5},this)}function Oy(e,t,n,r){if(e===`avatar`)return(0,R.jsxDEV)(vy,{value:t,onChange:n,accept:Ty[e],multiple:r},void 0,!1,{fileName:Y,lineNumber:152,columnNumber:12},this);if(e===`cover`)return(0,R.jsxDEV)(yy,{value:t,onChange:n,accept:Ty[e],multiple:r},void 0,!1,{fileName:Y,lineNumber:155,columnNumber:12},this);if(e===`image`||e===`media`||e===`poster`){let i=e===`poster`;return r?(0,R.jsxDEV)(_y,{value:t,onChange:n,accept:Ty[e],poster:i},void 0,!1,{fileName:Y,lineNumber:160,columnNumber:7},this):(0,R.jsxDEV)(gy,{value:t,onChange:n,accept:Ty[e],poster:i},void 0,!1,{fileName:Y,lineNumber:162,columnNumber:7},this)}return e===`audio`||e===`video`?(0,R.jsxDEV)(Dy,{kind:e,value:t,onChange:n},void 0,!1,{fileName:Y,lineNumber:166,columnNumber:12},this):(0,R.jsxDEV)(Ey,{kind:e,value:t,onChange:n},void 0,!1,{fileName:Y,lineNumber:168,columnNumber:10},this)}function ky({kind:e,value:t}){let n=oy(t);return n.length?e===`avatar`?(0,R.jsxDEV)(uy,{value:t},void 0,!1,{fileName:Y,lineNumber:177,columnNumber:33},this):e===`cover`?(0,R.jsxDEV)(fy,{value:t},void 0,!1,{fileName:Y,lineNumber:178,columnNumber:32},this):e===`image`||e===`media`?(0,R.jsxDEV)(ly,{value:t},void 0,!1,{fileName:Y,lineNumber:179,columnNumber:52},this):e===`poster`?(0,R.jsxDEV)(ly,{value:t,poster:!0},void 0,!1,{fileName:Y,lineNumber:180,columnNumber:33},this):e===`audio`||e===`video`?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map((t,n)=>(0,R.jsxDEV)(wy,{kind:e,rec:t,className:e===`audio`?`w-full`:`max-h-72 rounded-lg`},`${t.name}-${n}`,!1,{fileName:Y,lineNumber:185,columnNumber:11},this))},void 0,!1,{fileName:Y,lineNumber:183,columnNumber:7},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map((e,t)=>(0,R.jsxDEV)(`a`,{href:Zn(e.name),download:!0,className:`flex items-center gap-2 rounded-lg border border-border px-2 py-1.5 hover:border-accent`,children:[(0,R.jsxDEV)(Cy,{rec:e},void 0,!1,{fileName:Y,lineNumber:199,columnNumber:11},this),(0,R.jsxDEV)(ys,{size:15,className:`text-muted shrink-0`},void 0,!1,{fileName:Y,lineNumber:200,columnNumber:11},this)]},`${e.name}-${t}`,!0,{fileName:Y,lineNumber:193,columnNumber:9},this))},void 0,!1,{fileName:Y,lineNumber:191,columnNumber:5},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:Y,lineNumber:176,columnNumber:28},this)}function Ay(e){let t=e.field.kind,n=e.value??``,r=e.field.hints.noEditControl===!0&&e.mode===`view`,i=e.field.hints.multiple===!0,a=r?(0,R.jsxDEV)(ky,{kind:t,value:n},void 0,!1,{fileName:Y,lineNumber:217,columnNumber:5},this):Oy(t,n,t=>e.onChange?.(t),i);return e.bare?a:(0,R.jsxDEV)(`div`,{className:`group/field`,children:[e.label!==void 0&&(0,R.jsxDEV)(zt,{label:e.label,required:e.required},void 0,!1,{fileName:Y,lineNumber:225,columnNumber:33},this),a,(0,R.jsxDEV)(At,{error:e.error},void 0,!1,{fileName:Y,lineNumber:227,columnNumber:7},this)]},void 0,!0,{fileName:Y,lineNumber:224,columnNumber:5},this)}function jy(e){let t=oy(e.value)[0];if(!t)return(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`—`},void 0,!1,{fileName:Y,lineNumber:236,columnNumber:20},this);let n=e.field?.kind,r=n===`audio`?Ds:n===`video`?Cs:Et,i=Sy(t.size);return(0,R.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1.5 text-sm`,children:[(0,R.jsxDEV)(r,{size:14,className:`text-muted shrink-0`},void 0,!1,{fileName:Y,lineNumber:242,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:t.name},void 0,!1,{fileName:Y,lineNumber:243,columnNumber:7},this),i&&(0,R.jsxDEV)(`span`,{className:`shrink-0 text-xs text-muted`,children:i},void 0,!1,{fileName:Y,lineNumber:244,columnNumber:14},this)]},void 0,!0,{fileName:Y,lineNumber:241,columnNumber:5},this)}I({kinds:[`image`,`media`,`poster`],layout:Cn,box:`none`,Page:Ay,Inline:by}),I({kinds:[`file`,`document`,`audio`,`video`],layout:Cn,box:`none`,Page:Ay,Inline:jy}),I({kinds:[`avatar`],layout:`scalar`,box:`none`,Page:Ay,Inline:dy}),I({kinds:[`cover`],layout:`block`,Page:Ay,Inline:by});var My=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/period.tsx`;function Ny(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 Py(e,t){return e?t===`datetime`?e.replace(`T`,` `):e:`…`}function Fy(e,t){return`${Py(e.from,t)}–${Py(e.until,t)}`}function Iy({field:e,value:t,onChange:n}){let{t:r}=a();return(0,R.jsxDEV)(Rv,{value:t,onChange:n,field:e,t:r},void 0,!1,{fileName:My,lineNumber:66,columnNumber:10},this)}function Ly({field:e,value:t}){let n=e.hints.granularity??`day`;return(0,R.jsxDEV)(St,{items:Ny(t),content:e=>(0,R.jsxDEV)(`span`,{className:`font-mono`,children:Fy(e,n)},void 0,!1,{fileName:My,lineNumber:75,columnNumber:23},this)},void 0,!1,{fileName:My,lineNumber:73,columnNumber:5},this)}function Ry(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,bare:e.bare,view:t=>(0,R.jsxDEV)(Ly,{field:e.field,value:t},void 0,!1,{fileName:My,lineNumber:92,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Iy,{name:`field-${e.field.label}`,field:e.field,value:t,onChange:n},void 0,!1,{fileName:My,lineNumber:94,columnNumber:9},this)},void 0,!1,{fileName:My,lineNumber:82,columnNumber:5},this)}function zy({value:e,field:t}){let n=t.hints.granularity??`day`,r=Ny(e);return(0,R.jsxDEV)(`span`,{className:`truncate`,children:r.length?r.map(e=>Fy(e,n)).join(`, `):`—`},void 0,!1,{fileName:My,lineNumber:109,columnNumber:5},this)}I({kinds:[`period`],Page:Ry,Inline:zy});var By=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group-edit.tsx`;function Vy(e,t,n){let r=Nn(t,n);return e===`view`?r.editing?{mode:`edit`,value:r.draft,onChange:r.setDraft,actions:(0,R.jsxDEV)(Nt,{size:`xs`,busy:r.busy,onSave:()=>r.commit(),onCancel:r.cancel},void 0,!1,{fileName:By,lineNumber:56,columnNumber:14},this)}:{mode:`view`,value:t,onChange:e=>n(e),actions:(0,R.jsxDEV)(Vt,{scope:`group`,onEdit:r.beginEdit},void 0,!1,{fileName:By,lineNumber:49,columnNumber:16},this)}:{mode:e,value:t,onChange:e=>n(e),actions:null}}var X=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group.tsx`,Hy=e=>xn(e)===`block`;function Uy({onRemove:e}){let{t}=a();return(0,R.jsxDEV)(`div`,{className:`flex shrink-0 flex-col`,children:[(0,R.jsxDEV)(`div`,{className:`min-h-8 mb-1.5`,"aria-hidden":!0},void 0,!1,{fileName:X,lineNumber:47,columnNumber:7},this),(0,R.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,R.jsxDEV)(ye,{size:14},void 0,!1,{fileName:X,lineNumber:58,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:46,columnNumber:5},this)}function Wy({group:e,value:t,onChange:n,recordCtx:r}){let{t:i}=a(),o=ke(),s=Array.isArray(t)?t:[],c=e.unique??[];function l(e,t,r){n(s.map((n,i)=>i===e?{...n,[t]:r}:n))}function u(t,n,a){if(t.type.virtual&&t.type.prim===`lookup`){let r={key:t.key,...t.type},a=Object.fromEntries(Object.entries(n).map(([e,t])=>[e,String(t??``)])),o=e.fields.filter(e=>Jt(e)).map(e=>({key:e.key,...e.type}));return(0,R.jsxDEV)(`div`,{className:`flex flex-col min-w-0`,children:[t.type.label?(0,R.jsxDEV)(zt,{label:i(t.type.label)},void 0,!1,{fileName:X,lineNumber:95,columnNumber:29},this):null,(0,R.jsxDEV)(`div`,{children:(0,R.jsxDEV)(Tv,{lookupField:r,row:a,subs:o},void 0,!1,{fileName:X,lineNumber:97,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:96,columnNumber:11},this)]},t.key,!0,{fileName:X,lineNumber:94,columnNumber:9},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,R.jsxDEV)(gr,{field:t.type,value:n[t.key]??``,excludeValues:Ct(s,c,t.key,a),onChange:e=>l(a,t.key,e),label:t.type.label?i(t.type.label):void 0,mode:`edit`,recordCtx:r,error:e.key?o([e.key,a,t.key]):void 0},void 0,!1,{fileName:X,lineNumber:107,columnNumber:9},this)},t.key,!1,{fileName:X,lineNumber:106,columnNumber:7},this)}function d(t,i){return(0,R.jsxDEV)(Ut,{children:(0,R.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Mn,{scroll:e.display===`scroll`,items:e.fields.flatMap((e,n)=>Qt(e)?[{key:`brk-${i}-${n}`,break:!0,node:null}]:Yt(e)?e.key==null&&e.display===`scroll`?[{key:e.label??`flow`,full:!0,node:(0,R.jsxDEV)(Mn,{scroll:!0,items:e.fields.flatMap(e=>Jt(e)?[{key:e.key,node:u(e,t,i)}]:[])},void 0,!1,{fileName:X,lineNumber:140,columnNumber:27},this)}]:[{key:e.key??e.label??`g`,full:e.kind!==`per-weekday`,node:(0,R.jsxDEV)(tb,{group:e,value:t[e.key],onChange:t=>l(i,e.key,t),recordCtx:r,mode:`edit`},void 0,!1,{fileName:X,lineNumber:155,columnNumber:25},this)}]:Jt(e)?[{key:e.key,full:Hy(e.type),node:u(e,t,i)}]:[])},void 0,!1,{fileName:X,lineNumber:126,columnNumber:13},this)},void 0,!1,{fileName:X,lineNumber:125,columnNumber:11},this),(0,R.jsxDEV)(Uy,{onRemove:()=>n(s.filter((e,t)=>t!==i))},void 0,!1,{fileName:X,lineNumber:171,columnNumber:11},this)]},void 0,!0,{fileName:X,lineNumber:124,columnNumber:9},this)},i,!1,{fileName:X,lineNumber:123,columnNumber:7},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col ${Mt}`,children:[s.map(d),(0,R.jsxDEV)(vt,{onClick:()=>n([...s,{}]),children:i(`form.addRow`)},void 0,!1,{fileName:X,lineNumber:180,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:178,columnNumber:5},this)}function Gy({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=Ft(),c=Vy(i,t,e=>n(e));return c.mode===`view`?(0,R.jsxDEV)(Yy,{group:e,value:c.value,onChange:e=>c.onChange(e),recordCtx:r,actions:c.actions},void 0,!1,{fileName:X,lineNumber:211,columnNumber:7},this):(0,R.jsxDEV)(`fieldset`,{className:`${Lt(s)} flex flex-col min-w-0 ${Mt}`,children:[(0,R.jsxDEV)(jt,{as:`legend`,label:o(e.label),icon:Bt(e),actions:c.actions},void 0,!1,{fileName:X,lineNumber:222,columnNumber:7},this),(0,R.jsxDEV)(Wy,{group:e,value:c.value,onChange:e=>c.onChange(e),recordCtx:r},void 0,!1,{fileName:X,lineNumber:223,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:221,columnNumber:5},this)}var Ky=e=>`${Lt(e)} flex flex-col min-w-0 ${Mt}`,qy=new Set([`boolean`,`rating`]);function Jy({sub:e,row:t,group:n,recordCtx:r,onChange:i}){let{t:o}=a();if(e.type.virtual&&e.type.prim===`lookup`){let r={key:e.key,...e.type},i=Object.fromEntries(Object.entries(t).map(([e,t])=>[e,String(t??``)])),a=n.fields.filter(e=>Jt(e)).map(e=>({key:e.key,...e.type}));return(0,R.jsxDEV)(`div`,{className:`flex flex-col min-w-0`,children:[e.type.label?(0,R.jsxDEV)(zt,{label:o(e.type.label)},void 0,!1,{fileName:X,lineNumber:271,columnNumber:27},this):null,(0,R.jsxDEV)(`div`,{children:(0,R.jsxDEV)(Tv,{lookupField:r,row:i,subs:a},void 0,!1,{fileName:X,lineNumber:273,columnNumber:11},this)},void 0,!1,{fileName:X,lineNumber:272,columnNumber:9},this)]},void 0,!0,{fileName:X,lineNumber:270,columnNumber:7},this)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[e.type.label?(0,R.jsxDEV)(zt,{label:o(e.type.label)},void 0,!1,{fileName:X,lineNumber:280,columnNumber:25},this):null,(0,R.jsxDEV)(gr,{field:e.type,value:t[e.key]??``,mode:`view`,bare:!0,recordCtx:r,onChange:i},void 0,!1,{fileName:X,lineNumber:281,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:279,columnNumber:5},this)}function Yy({group:e,value:t,onChange:n,recordCtx:r,actions:i}){let{t:o}=a(),s=Ft(),c=Array.isArray(t)?t:[];function l(e,t,r){n(c.map((n,i)=>i===e?{...n,[t]:r}:n))}return(0,R.jsxDEV)(`fieldset`,{className:Ky(s),children:[(0,R.jsxDEV)(jt,{as:`legend`,label:o(e.label),icon:Bt(e),actions:i},void 0,!1,{fileName:X,lineNumber:322,columnNumber:7},this),(0,R.jsxDEV)(Ht,{depth:s+1,children:(0,R.jsxDEV)(`div`,{className:`flex flex-col ${Mt}`,children:c.map((t,n)=>(0,R.jsxDEV)(Ut,{children:(0,R.jsxDEV)(Mn,{scroll:e.display===`scroll`,items:e.fields.flatMap((i,a)=>Qt(i)?[{key:`brk-${n}-${a}`,break:!0,node:null}]:Yt(i)?i.key==null&&i.display===`scroll`?[{key:i.label??`flow`,full:!0,node:(0,R.jsxDEV)(Mn,{scroll:!0,items:i.fields.flatMap(i=>Jt(i)?[{key:i.key,node:(0,R.jsxDEV)(Jy,{sub:i,row:t,group:e,recordCtx:r,onChange:qy.has(i.type.kind)?e=>l(n,i.key,e):void 0},void 0,!1,{fileName:X,lineNumber:349,columnNumber:43},this)}]:[])},void 0,!1,{fileName:X,lineNumber:341,columnNumber:29},this)}]:[{key:i.key??i.label??`g`,full:i.kind!==`per-weekday`,node:(0,R.jsxDEV)(tb,{group:i,value:t[i.key],onChange:e=>l(n,i.key,e),recordCtx:r,mode:`view`},void 0,!1,{fileName:X,lineNumber:375,columnNumber:27},this)}]:Jt(i)?[{key:i.key,full:Hy(i.type),node:(0,R.jsxDEV)(Jy,{sub:i,row:t,group:e,recordCtx:r,onChange:qy.has(i.type.kind)?e=>l(n,i.key,e):void 0},void 0,!1,{fileName:X,lineNumber:392,columnNumber:25},this)}]:[])},void 0,!1,{fileName:X,lineNumber:327,columnNumber:15},this)},n,!1,{fileName:X,lineNumber:326,columnNumber:13},this))},void 0,!1,{fileName:X,lineNumber:324,columnNumber:9},this)},void 0,!1,{fileName:X,lineNumber:323,columnNumber:7},this)]},void 0,!0,{fileName:X,lineNumber:321,columnNumber:5},this)}var Xy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/table-group.tsx`;function Zy({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=ke(),c=Ft(),l=e.fields.filter(e=>Jt(e)||Yt(e)&&!!e.kind),u=e=>e.key,d=e=>Jt(e)?e.type.label:e.label,f=e=>Jt(e)?{field:e.type}:{field:e,el:e},p=e=>Jt(e)&&e.type.prim===`text`,m=e.unique??[],h=Vy(i,t,e=>n(e)),g=h.mode!==`view`,_=Array.isArray(h.value)?h.value:[],v=e=>h.onChange(e),y=(e,t,n)=>v(_.map((r,i)=>i===e?{...r,[t]:n}:r)),b=(0,R.jsxDEV)(`div`,{className:`overflow-x-auto`,children:[(0,R.jsxDEV)(`table`,{className:`w-full border-collapse text-sm`,children:[(0,R.jsxDEV)(`thead`,{children:(0,R.jsxDEV)(`tr`,{children:[l.map(e=>(0,R.jsxDEV)(`th`,{className:`text-left text-[11px] font-semibold text-muted uppercase px-2 py-1 ${p(e)?`w-full`:`whitespace-nowrap`}`,children:d(e)?o(d(e)):``},u(e),!1,{fileName:Xy,lineNumber:68,columnNumber:11},this)),g&&(0,R.jsxDEV)(`th`,{className:`w-9`,"aria-hidden":!0},void 0,!1,{fileName:Xy,lineNumber:75,columnNumber:20},this)]},void 0,!0,{fileName:Xy,lineNumber:66,columnNumber:7},this)},void 0,!1,{fileName:Xy,lineNumber:65,columnNumber:5},this),(0,R.jsxDEV)(`tbody`,{children:_.map((t,n)=>(0,R.jsxDEV)(`tr`,{className:`align-top`,children:[l.map(i=>(0,R.jsxDEV)(`td`,{className:`px-2 py-1 min-w-0`,children:(0,R.jsxDEV)(gr,{...f(i),value:t[u(i)]??(Jt(i)?``:null),excludeValues:Ct(_,m,u(i),n),onChange:e=>y(n,u(i),e),mode:g?`edit`:`view`,bare:!0,recordCtx:r,error:e.key?s([e.key,n,u(i)]):void 0},void 0,!1,{fileName:Xy,lineNumber:86,columnNumber:15},this)},u(i),!1,{fileName:Xy,lineNumber:85,columnNumber:13},this)),g&&(0,R.jsxDEV)(`td`,{className:`px-1 py-1 w-9`,children:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,size:`iconSm`,onClick:()=>v(_.filter((e,t)=>t!==n)),title:o(`actions.delete`),className:`rounded-lg text-muted hover:border-danger hover:text-danger`,children:(0,R.jsxDEV)(ye,{size:14},void 0,!1,{fileName:Xy,lineNumber:108,columnNumber:17},this)},void 0,!1,{fileName:Xy,lineNumber:100,columnNumber:15},this)},void 0,!1,{fileName:Xy,lineNumber:99,columnNumber:13},this)]},n,!0,{fileName:Xy,lineNumber:83,columnNumber:9},this))},void 0,!1,{fileName:Xy,lineNumber:81,columnNumber:5},this)]},void 0,!0,{fileName:Xy,lineNumber:119,columnNumber:7},this),g&&(0,R.jsxDEV)(vt,{onClick:()=>v([..._,{}]),children:o(`form.addRow`)},void 0,!1,{fileName:Xy,lineNumber:123,columnNumber:18},this)]},void 0,!0,{fileName:Xy,lineNumber:118,columnNumber:5},this);return i===`view`?(0,R.jsxDEV)(`section`,{className:`${Lt(c)} flex flex-col gap-1 min-w-0`,children:[(0,R.jsxDEV)(jt,{as:`h3`,label:o(e.label),icon:Bt(e),actions:h.actions},void 0,!1,{fileName:Xy,lineNumber:134,columnNumber:7},this),(0,R.jsxDEV)(Ht,{depth:c+1,children:b},void 0,!1,{fileName:Xy,lineNumber:135,columnNumber:7},this)]},void 0,!0,{fileName:Xy,lineNumber:133,columnNumber:5},this):b}var Qy=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/fixed-collection.tsx`;function $y({group:e,value:t,onChange:n,recordCtx:r,mode:i=`edit`}){let{t:o}=a(),s=Ft(),c=Vy(i,t,e=>n(e)),l=c.mode!==`view`,u=e.fields[0],d=e.fields.slice(1).filter(e=>Jt(e)),f=u.type.options?.length?u.type.options:Ae(u.type.hints.source??``),p=Array.isArray(c.value)?c.value:[],m=f.map(e=>p.find(t=>String(t[u.key]??``)===String(e.value))??{[u.key]:e.value});function h(e){c.onChange(e.filter(e=>d.some(t=>e[t.key]!=null&&e[t.key]!==``)))}function g(e,t,n){h(m.map((r,i)=>i===e?{...r,[t]:n}:r))}return(0,R.jsxDEV)(`fieldset`,{className:`${Lt(s)} flex flex-col min-w-0 ${Mt}`,children:[(0,R.jsxDEV)(jt,{as:`legend`,label:o(e.label),icon:Bt(e),actions:c.actions},void 0,!1,{fileName:Qy,lineNumber:68,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col ${Mt}`,children:m.map((e,t)=>(0,R.jsxDEV)(Ut,{children:(0,R.jsxDEV)(`div`,{className:`flex items-start gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0 shrink-0`,children:[u.type.label?(0,R.jsxDEV)(zt,{label:o(u.type.label)},void 0,!1,{fileName:Qy,lineNumber:74,columnNumber:34},this):null,(0,R.jsxDEV)(`span`,{className:`text-sm px-1 py-1.5`,children:Eu(o,{options:f},String(e[u.key]??``))},void 0,!1,{fileName:Qy,lineNumber:75,columnNumber:17},this)]},void 0,!0,{fileName:Qy,lineNumber:73,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Mn,{items:d.map(n=>({key:n.key,full:Hy(n.type),node:l?(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:(0,R.jsxDEV)(gr,{field:n.type,value:e[n.key]??``,onChange:e=>g(t,n.key,e),label:n.type.label?o(n.type.label):void 0,mode:`edit`,recordCtx:r},void 0,!1,{fileName:Qy,lineNumber:87,columnNumber:27},this)},void 0,!1,{fileName:Qy,lineNumber:86,columnNumber:25},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-0.5 min-w-0`,children:[n.type.label?(0,R.jsxDEV)(zt,{label:o(n.type.label)},void 0,!1,{fileName:Qy,lineNumber:102,columnNumber:45},this):null,(0,R.jsxDEV)(gr,{field:n.type,value:e[n.key]??``,mode:`view`,bare:!0,recordCtx:r},void 0,!1,{fileName:Qy,lineNumber:103,columnNumber:27},this)]},void 0,!0,{fileName:Qy,lineNumber:101,columnNumber:25},this)}))},void 0,!1,{fileName:Qy,lineNumber:80,columnNumber:17},this)},void 0,!1,{fileName:Qy,lineNumber:79,columnNumber:15},this)]},void 0,!0,{fileName:Qy,lineNumber:72,columnNumber:13},this)},String(e[u.key]),!1,{fileName:Qy,lineNumber:71,columnNumber:11},this))},void 0,!1,{fileName:Qy,lineNumber:69,columnNumber:7},this)]},void 0,!0,{fileName:Qy,lineNumber:67,columnNumber:5},this)}var eb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group-field.tsx`;function tb({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=ke();if(qt(e)&&e.fixed)return(0,R.jsxDEV)($y,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:eb,lineNumber:40,columnNumber:7},this);if(qt(e)&&e.display===`table`)return(0,R.jsxDEV)(Zy,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:eb,lineNumber:52,columnNumber:7},this);if(qt(e))return(0,R.jsxDEV)(Gy,{group:e,value:t,onChange:e=>n(e),recordCtx:r,mode:i},void 0,!1,{fileName:eb,lineNumber:65,columnNumber:7},this);if(en(e)){let a=t??{},c=(e,t)=>n({...a,[e]:t}),l=e.fields.filter(e=>Jt(e));return(0,R.jsxDEV)(`fieldset`,{className:`flex flex-col min-w-0 ${Mt}`,children:[(0,R.jsxDEV)(jt,{as:`legend`,label:o(e.label),icon:Bt(e)},void 0,!1,{fileName:eb,lineNumber:78,columnNumber:9},this),(0,R.jsxDEV)(Ut,{children:(0,R.jsxDEV)(Mn,{items:l.map(t=>({key:t.key,full:Hy(t.type),node:(0,R.jsxDEV)(gr,{field:t.type,value:a[t.key]??``,onChange:e=>c(t.key,e),label:t.type.label?o(t.type.label):void 0,mode:i,recordCtx:r,error:e.key?s([e.key,t.key]):void 0},void 0,!1,{fileName:eb,lineNumber:87,columnNumber:17},this)}))},void 0,!1,{fileName:eb,lineNumber:82,columnNumber:11},this)},void 0,!1,{fileName:eb,lineNumber:81,columnNumber:9},this)]},void 0,!0,{fileName:eb,lineNumber:77,columnNumber:7},this)}return null}var nb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/storage-group.tsx`;function rb({el:e,value:t,onChange:n,recordCtx:r,mode:i}){return(0,R.jsxDEV)(tb,{group:e,value:t,onChange:e=>n?.(e),recordCtx:r,mode:i===`view`?`view`:`edit`},void 0,!1,{fileName:nb,lineNumber:14,columnNumber:5},this)}function ib({el:e,value:t,onChange:n,recordCtx:r,mode:i}){return(0,R.jsxDEV)(tb,{group:e,value:t,onChange:e=>n?.(e),recordCtx:r,mode:i===`view`?`view`:`edit`},void 0,!1,{fileName:nb,lineNumber:26,columnNumber:5},this)}I({kinds:[`collection`],layout:`block`,Page:rb}),I({kinds:[`embedded`],layout:`block`,Page:ib});var ab=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/weekday-grid.tsx`,ob=[`mon`,`tue`,`wed`,`thu`,`fri`,`sat`,`sun`];function sb({group:e,value:t,onChange:n,mode:r}){let{t:i}=a(),o=i(`weekdaysShort`,{returnObjects:!0}),s=Array.isArray(t)?t:[],c=new Map(s.map(e=>[e.day,Number(e.value)])),l=r!==`view`,u=e.fields.slice(1).find(e=>Jt(e)),d=u?.type.hints.min,f=u?.type.hints.max,p=u?.type.hints.step;function m(e,t){n(ob.flatMap(n=>{let r=n===e?t:c.get(n)??0;return r>0?[{day:n,value:r}]:[]}))}return!l&&!s.some(e=>Number(e.value)>0)?(0,R.jsxDEV)(it,{},void 0,!1,{fileName:ab,lineNumber:50,columnNumber:66},this):(0,R.jsxDEV)(`div`,{className:`flex ${Rt}`,children:(0,R.jsxDEV)(`div`,{className:`grid grid-cols-7 gap-1 w-full max-w-64`,children:ob.map((e,t)=>{let n=c.get(e)??0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col items-center gap-1 min-w-0`,children:[(0,R.jsxDEV)(`span`,{className:`text-[10px] text-muted`,children:o[t]},void 0,!1,{fileName:ab,lineNumber:61,columnNumber:15},this),l?(0,R.jsxDEV)(E,{type:`number`,className:`w-full text-center px-1 [appearance:textfield] [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none`,min:d,max:f,step:p??`any`,value:c.get(e)||``,onChange:t=>m(e,Number(t.target.value)||0)},void 0,!1,{fileName:ab,lineNumber:63,columnNumber:17},this):(0,R.jsxDEV)(`div`,{className:`h-9 w-full rounded-lg flex items-center justify-center text-sm font-semibold border ${n?`bg-accent/20 text-accent border-accent/30`:`bg-bg text-muted/30 border-border`}`,children:n||`·`},void 0,!1,{fileName:ab,lineNumber:73,columnNumber:17},this)]},e,!0,{fileName:ab,lineNumber:60,columnNumber:13},this)})},void 0,!1,{fileName:ab,lineNumber:56,columnNumber:7},this)},void 0,!1,{fileName:ab,lineNumber:55,columnNumber:5},this)}var cb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/url-widget.tsx`;function lb({value:e,onChange:t,mode:n}){let r=e??null;if(n===`view`){let e=yn(r);return e?(0,R.jsxDEV)(`a`,{href:rn(r),target:`_blank`,rel:`noopener noreferrer`,className:`inline-flex items-center gap-1 text-accent hover:underline text-sm break-all`,children:[e,` `,(0,R.jsxDEV)(bs,{size:12},void 0,!1,{fileName:cb,lineNumber:34,columnNumber:16},this)]},void 0,!0,{fileName:cb,lineNumber:28,columnNumber:7},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:cb,lineNumber:26,columnNumber:23},this)}return(0,R.jsxDEV)(E,{type:`text`,inputMode:`url`,value:yn(r),onChange:e=>t(vn(e.target.value))},void 0,!1,{fileName:cb,lineNumber:41,columnNumber:5},this)}var ub=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/checklist-group.tsx`;function db({group:e,value:t,onChange:n,recordCtx:r,mode:i}){let{t:o}=a(),s=ke(),c=Ft(),l=e.fields.filter(e=>Jt(e)&&e.key!==`text`),u=e.fields.find(e=>Jt(e)&&e.key===`text`),d=l.map(e=>e.type.label??``),f=_t(d.length),p=Vy(i,t,e=>n(e)),m=Array.isArray(p.value)?p.value:[],h=p.mode!==`view`,g=(e,t,n)=>p.onChange(m.map((r,i)=>i===e?{...r,[t]:n}:r)),_=(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,R.jsxDEV)(`ul`,{className:`flex flex-col gap-1.5`,children:m.map((t,n)=>(0,R.jsxDEV)(`li`,{className:`flex items-center gap-3.5 py-1 text-sm`,children:[l.map((i,a)=>(0,R.jsxDEV)(`span`,{className:`inline-flex items-center gap-0.5 shrink-0`,children:[f&&(0,R.jsxDEV)(`span`,{className:`text-[10px] text-muted tabular-nums`,children:dt(a)},void 0,!1,{fileName:ub,lineNumber:58,columnNumber:30},this),(0,R.jsxDEV)(gr,{field:i.type,value:t[i.key]??!1,onChange:e=>g(n,i.key,e),mode:h?`edit`:`view`,bare:!0,recordCtx:r,error:e.key?s([e.key,n,i.key]):void 0},void 0,!1,{fileName:ub,lineNumber:59,columnNumber:17},this)]},i.key,!0,{fileName:ub,lineNumber:57,columnNumber:15},this)),u&&(h?(0,R.jsxDEV)(E,{value:String(t[u.key]??``),onChange:e=>g(n,u.key,e.target.value),className:`min-w-0 flex-1`},void 0,!1,{fileName:ub,lineNumber:76,columnNumber:17},this):(0,R.jsxDEV)(`span`,{className:`min-w-0 flex-1 truncate text-sm text-text`,children:String(t[u.key]??``)||`—`},void 0,!1,{fileName:ub,lineNumber:82,columnNumber:17},this)),h&&(0,R.jsxDEV)(F,{type:`button`,variant:`ghost`,size:`iconSm`,onClick:()=>p.onChange(m.filter((e,t)=>t!==n)),title:o(`actions.delete`),className:`h-5 w-5 shrink-0 rounded text-muted hover:text-danger`,children:(0,R.jsxDEV)(ye,{size:12},void 0,!1,{fileName:ub,lineNumber:95,columnNumber:17},this)},void 0,!1,{fileName:ub,lineNumber:87,columnNumber:15},this)]},n,!0,{fileName:ub,lineNumber:55,columnNumber:11},this))},void 0,!1,{fileName:ub,lineNumber:53,columnNumber:7},this),h&&(0,R.jsxDEV)(vt,{onClick:()=>p.onChange([...m,{}]),children:o(`form.addRow`)},void 0,!1,{fileName:ub,lineNumber:102,columnNumber:22},this),(0,R.jsxDEV)(pt,{slots:d},void 0,!1,{fileName:ub,lineNumber:103,columnNumber:7},this)]},void 0,!0,{fileName:ub,lineNumber:52,columnNumber:5},this);return i===`view`?(0,R.jsxDEV)(`section`,{className:`${Lt(c)} flex flex-col gap-1 min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxDEV)(`h3`,{className:`text-[13px] font-semibold text-accent`,children:o(e.label)},void 0,!1,{fileName:ub,lineNumber:116,columnNumber:9},this),p.actions&&(0,R.jsxDEV)(`span`,{className:`ml-auto flex shrink-0 items-center gap-1.5`,children:p.actions},void 0,!1,{fileName:ub,lineNumber:117,columnNumber:23},this)]},void 0,!0,{fileName:ub,lineNumber:115,columnNumber:7},this),(0,R.jsxDEV)(Ht,{depth:c+1,children:_},void 0,!1,{fileName:ub,lineNumber:119,columnNumber:7},this)]},void 0,!0,{fileName:ub,lineNumber:114,columnNumber:5},this):_}var fb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/widgets/group-widgets.tsx`;function pb({el:e,value:t,onChange:n,mode:r}){return(0,R.jsxDEV)(sb,{group:e,value:t,onChange:e=>n?.(e),mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:fb,lineNumber:17,columnNumber:5},this)}function mb({el:e,value:t,onChange:n,mode:r,bare:i}){let{t:o}=a(),s=e,c=(0,R.jsxDEV)(lb,{value:t,onChange:e=>n?.(e),mode:r===`view`?`view`:`edit`},void 0,!1,{fileName:fb,lineNumber:24,columnNumber:18},this);return i?c:(0,R.jsxDEV)(`div`,{className:`group/field flex flex-col min-w-0 ${Mt}`,children:[s.label&&(0,R.jsxDEV)(zt,{label:o(s.label)},void 0,!1,{fileName:fb,lineNumber:30,columnNumber:23},this),c]},void 0,!0,{fileName:fb,lineNumber:29,columnNumber:5},this)}function hb({el:e,value:t,onChange:n,recordCtx:r,mode:i}){return(0,R.jsxDEV)(db,{group:e,value:t,onChange:e=>n?.(e),recordCtx:r,mode:i},void 0,!1,{fileName:fb,lineNumber:38,columnNumber:5},this)}I({kinds:[`per-weekday`],layout:`block`,Page:pb}),I({kinds:[`url`],layout:`block`,Page:mb}),I({kinds:[`checklist`],layout:`block`,Page:hb});var gb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/actions/TemplateHost.tsx`,_b=new Map;function vb(e){let t=wn(e);if(!t)return null;let n=_b.get(e);return n||(n=(0,L.lazy)(t),_b.set(e,n)),n}var yb=class extends L.Component{state={failed:!1};static getDerivedStateFromError(){return{failed:!0}}render(){return this.state.failed?this.props.fallback:this.props.children}},bb=()=>(0,R.jsxDEV)(`span`,{className:`animate-spin inline-block w-4 h-4 border-2 border-current/30 border-t-current rounded-full`},void 0,!1,{fileName:gb,lineNumber:22,columnNumber:3},void 0);function xb({name:e,data:t}){let{t:n}=a(),r=(0,R.jsxDEV)(R.Fragment,{children:n(`actions.notice`)},void 0,!1,{fileName:gb,lineNumber:28,columnNumber:20},this),i=vb(e);return i?(0,R.jsxDEV)(yb,{fallback:r,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(bb,{},void 0,!1,{fileName:gb,lineNumber:36,columnNumber:27},this),children:(0,R.jsxDEV)(i,{data:t,t:n},void 0,!1,{fileName:gb,lineNumber:37,columnNumber:9},this)},void 0,!1,{fileName:gb,lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:gb,lineNumber:35,columnNumber:5},this):(console.warn(`[template] unknown '${e}'`),r)}var Sb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/actions/PopupBody.tsx`;function Cb({ui:e}){let{t}=a();return(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(yr,{children:e.title?t(e.title,e.params):t(`actions.notice`)},void 0,!1,{fileName:Sb,lineNumber:11,columnNumber:7},this),e.component?(0,R.jsxDEV)(xb,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:Sb,lineNumber:13,columnNumber:9},this):(0,R.jsxDEV)(Sr,{children:t(e.message??``,e.params)},void 0,!1,{fileName:Sb,lineNumber:15,columnNumber:9},this)]},void 0,!0,{fileName:Sb,lineNumber:10,columnNumber:5},this)}var wb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/layout-elements.tsx`;function Tb(e){return(0,R.jsxDEV)(`hr`,{className:`border-border`},void 0,!1,{fileName:wb,lineNumber:17,columnNumber:10},this)}function Eb({el:e}){let{t}=a();return(0,R.jsxDEV)(Ee,{value:t(e.text)},void 0,!1,{fileName:wb,lineNumber:22,columnNumber:10},this)}function Db(e){let{t}=a(),n=e.el,r=e.recordCtx,[i,o]=(0,L.useState)(!1),[s,c]=(0,L.useState)(null),l=e=>{if(e.kind===`popup`){c(e);return}let n=e.component?(0,R.jsxDEV)(xb,{name:e.component.name,data:e.component.data},void 0,!1,{fileName:wb,lineNumber:38,columnNumber:9},this):t(e.message??``,e.params);e.variant===`success`?y.success(n):e.variant===`error`?y.error(n):y(n)};return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,R.jsxDEV)(F,{variant:n.variant??`outline`,onClick:async()=>{let e=os(n.value);if(!e){y.error(t(`actions.actionNotFound`));return}o(!0);try{let n=await e({library:r.library,shelf:r.shelf,recordId:r.recordId??``});n?l(n):y.success(t(`actions.actionSuccess`))}catch(e){let n=e.ui;n?l(n):y.error(e instanceof Error?e.message:t(`actions.actionError`))}finally{o(!1)}},disabled:i,className:`max-w-full min-w-0`,children:[i?(0,R.jsxDEV)(`span`,{className:`animate-spin inline-block w-4 h-4 border-2 border-current/30 border-t-current rounded-full`},void 0,!1,{fileName:wb,lineNumber:69,columnNumber:11},this):n.icon&&(0,R.jsxDEV)(we,{name:n.icon,size:16},void 0,!1,{fileName:wb,lineNumber:71,columnNumber:22},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:t(n.label)},void 0,!1,{fileName:wb,lineNumber:73,columnNumber:9},this)]},void 0,!0,{fileName:wb,lineNumber:67,columnNumber:7},this),(0,R.jsxDEV)(Cr,{open:!!s,onOpenChange:e=>!e&&c(null),children:(0,R.jsxDEV)(xr,{children:(0,R.jsxDEV)(br,{children:s&&(0,R.jsxDEV)(Cb,{ui:s},void 0,!1,{fileName:wb,lineNumber:78,columnNumber:23},this)},void 0,!1,{fileName:wb,lineNumber:77,columnNumber:11},this)},void 0,!1,{fileName:wb,lineNumber:76,columnNumber:9},this)},void 0,!1,{fileName:wb,lineNumber:75,columnNumber:7},this)]},void 0,!0,{fileName:wb,lineNumber:66,columnNumber:5},this)}function Ob({el:e,children:t}){let{t:n}=a(),r=e;return(0,R.jsxDEV)(je,{label:r.label?n(r.label):void 0,icon:Bt(r),children:t},void 0,!1,{fileName:wb,lineNumber:93,columnNumber:5},this)}I({kinds:[`divider`],layout:`block`,Page:Tb}),I({kinds:[`info`],layout:`block`,Page:Eb}),I({kinds:[`button`],layout:`scalar`,Page:Db}),I({kinds:[`group`],layout:`block`,Page:Ob});var kb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/tristate.tsx`,Ab={unknown:`yes`,yes:`no`,no:`unknown`},jb={yes:!0,no:!1,unknown:`indeterminate`};function Mb({value:e,onChange:t,label:n}){let{saving:r}=Q_(),i=e||`unknown`;return(0,R.jsxDEV)(te,{checked:jb[i],disabled:r,onCheckedChange:()=>t?.(Ab[i]),"aria-label":n,className:C(`peer h-4.5 w-4.5 shrink-0 rounded border border-input bg-background ring-offset-background transition-colors`,`focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring`,`data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground`,`data-[state=indeterminate]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground`),children:(0,R.jsxDEV)(ae,{className:`flex items-center justify-center text-current`,children:i===`yes`?(0,R.jsxDEV)(Je,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:kb,lineNumber:37,columnNumber:26},this):(0,R.jsxDEV)(ve,{className:`h-3.5 w-3.5`,strokeWidth:3},void 0,!1,{fileName:kb,lineNumber:37,columnNumber:78},this)},void 0,!1,{fileName:kb,lineNumber:36,columnNumber:7},this)},void 0,!1,{fileName:kb,lineNumber:24,columnNumber:5},this)}function Nb(e){let t=(0,R.jsxDEV)(Mb,{value:String(e.value??``),onChange:t=>e.onChange?.(t),label:e.label},void 0,!1,{fileName:kb,lineNumber:44,columnNumber:15},this);return e.bare?t:(0,R.jsxDEV)(`div`,{className:`group/field`,children:[e.label!==void 0&&(0,R.jsxDEV)(zt,{label:e.label,required:e.required},void 0,!1,{fileName:kb,lineNumber:48,columnNumber:33},this),t,(0,R.jsxDEV)(At,{error:e.error},void 0,!1,{fileName:kb,lineNumber:50,columnNumber:7},this)]},void 0,!0,{fileName:kb,lineNumber:47,columnNumber:5},this)}var Pb={yes:Je,unknown:ve,no:w};function Fb({value:e}){let t=String(e??`unknown`);return(0,R.jsxDEV)(Pb[t]??ve,{size:16,className:t===`yes`?`text-accent`:t===`no`?`text-danger`:`text-muted`},void 0,!1,{fileName:kb,lineNumber:60,columnNumber:10},this)}I({kinds:[`triState`],Page:Nb,Inline:Fb});var Ib=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/money.tsx`;function Lb(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function Rb(e){if(e.value==null||!e.currency)return``;try{return new Intl.NumberFormat(void 0,{style:`currency`,currency:e.currency}).format(e.value)}catch{return`${e.value} ${Zt(e.currency)}`}}function zb({field:e,value:t,onChange:n}){let r=(0,L.useMemo)(()=>Lb(t),[t]),i=e.hints.defaultCurrency??`USD`,a=r.currency??i,o=e=>n(e.value==null?``:{value:e.value,currency:e.currency});return(0,R.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,R.jsxDEV)(Ql,{customInput:E,className:`flex-1 min-w-0`,value:r.value??``,thousandSeparator:!0,decimalScale:2,min:e.hints.min,max:e.hints.max,placeholder:`0.00`,onValueChange:e=>o({value:e.value===``?void 0:e.floatValue,currency:a})},void 0,!1,{fileName:Ib,lineNumber:43,columnNumber:7},this),(0,R.jsxDEV)(Xe,{value:a,onValueChange:e=>o({value:r.value,currency:e}),children:[(0,R.jsxDEV)(Qe,{className:`w-28`,children:(0,R.jsxDEV)(Ze,{},void 0,!1,{fileName:Ib,lineNumber:58,columnNumber:11},this)},void 0,!1,{fileName:Ib,lineNumber:57,columnNumber:9},this),(0,R.jsxDEV)(xt,{children:Kt.map(e=>(0,R.jsxDEV)(tt,{value:e,children:[Zt(e),` `,e]},e,!0,{fileName:Ib,lineNumber:62,columnNumber:13},this))},void 0,!1,{fileName:Ib,lineNumber:60,columnNumber:9},this)]},void 0,!0,{fileName:Ib,lineNumber:56,columnNumber:7},this)]},void 0,!0,{fileName:Ib,lineNumber:42,columnNumber:5},this)}function Bb({value:e}){let t=Rb(Lb(e));return t?(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:t},void 0,!1,{fileName:Ib,lineNumber:74,columnNumber:14},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:Ib,lineNumber:74,columnNumber:58},this)}function Vb(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,R.jsxDEV)(Bb,{value:e},void 0,!1,{fileName:Ib,lineNumber:90,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(zb,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Ib,lineNumber:92,columnNumber:9},this)},void 0,!1,{fileName:Ib,lineNumber:79,columnNumber:5},this)}function Hb({value:e}){return(0,R.jsxDEV)(Bb,{value:e},void 0,!1,{fileName:Ib,lineNumber:99,columnNumber:10},this)}function Ub(e){let t=Lb(e);return t.currency?[{value:t.currency,rawValue:t,label:Zt(t.currency)}]:[]}I({kinds:[`money`],Page:Vb,Inline:Hb,keys:Ub});var Wb=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/range.tsx`;function Gb(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function Kb({field:e,value:t,onChange:n}){let r=(0,L.useMemo)(()=>Gb(t),[t]),i=e.hints,a=e=>e===``?void 0:Number(e),o=e=>n(e.from==null&&e.to==null?``:{from:e.from,to:e.to});return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 min-w-0`,children:[(0,R.jsxDEV)(E,{type:`number`,className:`flex-1 min-w-0`,placeholder:`від`,value:r.from??``,min:i.min,max:i.max,step:i.step,onChange:e=>o({from:a(e.target.value),to:r.to})},void 0,!1,{fileName:Wb,lineNumber:32,columnNumber:7},this),(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`–`},void 0,!1,{fileName:Wb,lineNumber:42,columnNumber:7},this),(0,R.jsxDEV)(E,{type:`number`,className:`flex-1 min-w-0`,placeholder:`до`,value:r.to??``,min:i.min,max:i.max,step:i.step,onChange:e=>o({from:r.from,to:a(e.target.value)})},void 0,!1,{fileName:Wb,lineNumber:43,columnNumber:7},this)]},void 0,!0,{fileName:Wb,lineNumber:31,columnNumber:5},this)}function qb({value:e}){let t=Gb(e);return t.from==null&&t.to==null?(0,R.jsxDEV)(it,{},void 0,!1,{fileName:Wb,lineNumber:59,columnNumber:46},this):(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:[t.from??`…`,`–`,t.to??`…`]},void 0,!0,{fileName:Wb,lineNumber:61,columnNumber:5},this)}function Jb(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-48`,bare:e.bare,view:e=>(0,R.jsxDEV)(qb,{value:e},void 0,!1,{fileName:Wb,lineNumber:80,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(Kb,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Wb,lineNumber:82,columnNumber:9},this)},void 0,!1,{fileName:Wb,lineNumber:69,columnNumber:5},this)}function Yb({value:e}){return(0,R.jsxDEV)(qb,{value:e},void 0,!1,{fileName:Wb,lineNumber:89,columnNumber:10},this)}I({kinds:[`numberRange`,`realRange`],Page:Jb,Inline:Yb}),Xb.displayName=`clike`,Xb.aliases=[];function Xb(e){e.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}}Zb.displayName=`c`,Zb.aliases=[];function Zb(e){e.register(Xb),e.languages.c=e.languages.extend(`clike`,{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),e.languages.insertBefore(`c`,`string`,{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),e.languages.insertBefore(`c`,`string`,{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:`property`,inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},e.languages.c.string],char:e.languages.c.char,comment:e.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:`function`}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:`keyword`},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:e.languages.c}}}}),e.languages.insertBefore(`c`,`function`,{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete e.languages.c.boolean}Qb.displayName=`cpp`,Qb.aliases=[];function Qb(e){e.register(Zb),(function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=`\\b(?!<keyword>)\\w+(?:\\s*\\.\\s*\\w+)*\\b`.replace(/<keyword>/g,function(){return t.source});e.languages.cpp=e.languages.extend(`c`,{"class-name":[{pattern:RegExp(`(\\b(?:class|concept|enum|struct|typename)\\s+)(?!<keyword>)\\w+`.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore(`cpp`,`string`,{module:{pattern:RegExp(`(\\b(?:import|module)\\s+)(?:"(?:\\\\(?:\\r\\n|[\\s\\S])|[^"\\\\\\r\\n])*"|<[^<>\\r\\n]*>|`+`<mod-name>(?:\\s*:\\s*<mod-name>)?|:\\s*<mod-name>`.replace(/<mod-name>/g,function(){return n})+`)`),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:`string`,greedy:!0}}),e.languages.insertBefore(`cpp`,`keyword`,{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:e.languages.cpp}}}}),e.languages.insertBefore(`cpp`,`operator`,{"double-colon":{pattern:/::/,alias:`punctuation`}}),e.languages.insertBefore(`cpp`,`class-name`,{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend(`cpp`,{})}}),e.languages.insertBefore(`inside`,`double-colon`,{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp[`base-clause`])})(e)}$b.displayName=`arduino`,$b.aliases=[`ino`];function $b(e){e.register(Qb),e.languages.arduino=e.languages.extend(`cpp`,{keyword:/\b(?:String|array|bool|boolean|break|byte|case|catch|continue|default|do|double|else|finally|for|function|goto|if|in|instanceof|int|integer|long|loop|new|null|return|setup|string|switch|throw|try|void|while|word)\b/,constant:/\b(?:ANALOG_MESSAGE|DEFAULT|DIGITAL_MESSAGE|EXTERNAL|FIRMATA_STRING|HIGH|INPUT|INPUT_PULLUP|INTERNAL|INTERNAL1V1|INTERNAL2V56|LED_BUILTIN|LOW|OUTPUT|REPORT_ANALOG|REPORT_DIGITAL|SET_PIN_MODE|SYSEX_START|SYSTEM_RESET)\b/,builtin:/\b(?:Audio|BSSID|Bridge|Client|Console|EEPROM|Esplora|EsploraTFT|Ethernet|EthernetClient|EthernetServer|EthernetUDP|File|FileIO|FileSystem|Firmata|GPRS|GSM|GSMBand|GSMClient|GSMModem|GSMPIN|GSMScanner|GSMServer|GSMVoiceCall|GSM_SMS|HttpClient|IPAddress|IRread|Keyboard|KeyboardController|LiquidCrystal|LiquidCrystal_I2C|Mailbox|Mouse|MouseController|PImage|Process|RSSI|RobotControl|RobotMotor|SD|SPI|SSID|Scheduler|Serial|Server|Servo|SoftwareSerial|Stepper|Stream|TFT|Task|USBHost|WiFi|WiFiClient|WiFiServer|WiFiUDP|Wire|YunClient|YunServer|abs|addParameter|analogRead|analogReadResolution|analogReference|analogWrite|analogWriteResolution|answerCall|attach|attachGPRS|attachInterrupt|attached|autoscroll|available|background|beep|begin|beginPacket|beginSD|beginSMS|beginSpeaker|beginTFT|beginTransmission|beginWrite|bit|bitClear|bitRead|bitSet|bitWrite|blink|blinkVersion|buffer|changePIN|checkPIN|checkPUK|checkReg|circle|cityNameRead|cityNameWrite|clear|clearScreen|click|close|compassRead|config|connect|connected|constrain|cos|countryNameRead|countryNameWrite|createChar|cursor|debugPrint|delay|delayMicroseconds|detach|detachInterrupt|digitalRead|digitalWrite|disconnect|display|displayLogos|drawBMP|drawCompass|encryptionType|end|endPacket|endSMS|endTransmission|endWrite|exists|exitValue|fill|find|findUntil|flush|gatewayIP|get|getAsynchronously|getBand|getButton|getCurrentCarrier|getIMEI|getKey|getModifiers|getOemKey|getPINUsed|getResult|getSignalStrength|getSocket|getVoiceCallStatus|getXChange|getYChange|hangCall|height|highByte|home|image|interrupts|isActionDone|isDirectory|isListening|isPIN|isPressed|isValid|keyPressed|keyReleased|keyboardRead|knobRead|leftToRight|line|lineFollowConfig|listen|listenOnLocalhost|loadImage|localIP|lowByte|macAddress|maintain|map|max|messageAvailable|micros|millis|min|mkdir|motorsStop|motorsWrite|mouseDragged|mouseMoved|mousePressed|mouseReleased|move|noAutoscroll|noBlink|noBuffer|noCursor|noDisplay|noFill|noInterrupts|noListenOnLocalhost|noStroke|noTone|onReceive|onRequest|open|openNextFile|overflow|parseCommand|parseFloat|parseInt|parsePacket|pauseMode|peek|pinMode|playFile|playMelody|point|pointTo|position|pow|prepare|press|print|printFirmwareVersion|printVersion|println|process|processInput|pulseIn|put|random|randomSeed|read|readAccelerometer|readBlue|readButton|readBytes|readBytesUntil|readGreen|readJoystickButton|readJoystickSwitch|readJoystickX|readJoystickY|readLightSensor|readMessage|readMicrophone|readNetworks|readRed|readSlider|readString|readStringUntil|readTemperature|ready|rect|release|releaseAll|remoteIP|remoteNumber|remotePort|remove|requestFrom|retrieveCallingNumber|rewindDirectory|rightToLeft|rmdir|robotNameRead|robotNameWrite|run|runAsynchronously|runShellCommand|runShellCommandAsynchronously|running|scanNetworks|scrollDisplayLeft|scrollDisplayRight|seek|sendAnalog|sendDigitalPortPair|sendDigitalPorts|sendString|sendSysex|serialEvent|setBand|setBitOrder|setClockDivider|setCursor|setDNS|setDataMode|setFirmwareVersion|setMode|setPINUsed|setSpeed|setTextSize|setTimeout|shiftIn|shiftOut|shutdown|sin|size|sqrt|startLoop|step|stop|stroke|subnetMask|switchPIN|tan|tempoWrite|text|tone|transfer|tuneWrite|turn|updateIR|userNameRead|userNameWrite|voiceCall|waitContinue|width|write|writeBlue|writeGreen|writeJSON|writeMessage|writeMicroseconds|writeRGB|writeRed|yield)\b/}),e.languages.ino=e.languages.arduino}ex.displayName=`bash`,ex.aliases=[`sh`,`shell`];function ex(e){(function(e){var t=`\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b`,n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:`punctuation`,inside:null},r={bash:n,environment:{pattern:RegExp(`\\$`+t),alias:`constant`},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp(`(\\{)`+t),lookbehind:!0,alias:`constant`}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:`important`},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:`function`},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:`function`}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:`variable`,lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?:\.\w+)*(?=\+?=)/,inside:{environment:{pattern:RegExp(`(^|[\\s;|&]|[<>]\\()`+t),lookbehind:!0,alias:`constant`}},alias:`variable`,lookbehind:!0},parameter:{pattern:/(^|\s)-{1,2}(?:\w+:[+-]?)?\w+(?:\.\w+)*(?=[=\s]|$)/,alias:`variable`,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp(`\\$?`+t),alias:`constant`},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cargo|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|java|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|sysctl|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:`class-name`},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:`important`},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:`important`}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var i=[`comment`,`function-name`,`for-or-select`,`assign-left`,`parameter`,`string`,`environment`,`function`,`keyword`,`builtin`,`boolean`,`file-descriptor`,`operator`,`punctuation`,`number`],a=r.variable[1].inside,o=0;o<i.length;o++)a[i[o]]=e.languages.bash[i[o]];e.languages.sh=e.languages.bash,e.languages.shell=e.languages.bash})(e)}tx.displayName=`csharp`,tx.aliases=[`cs`,`dotnet`];function tx(e){e.register(Xb),(function(e){function t(e,t){return e.replace(/<<(\d+)>>/g,function(e,n){return`(?:`+t[+n]+`)`})}function n(e,n,r){return RegExp(t(e,n),r||``)}function r(e,t){for(var n=0;n<t;n++)e=e.replace(/<<self>>/g,function(){return`(?:`+e+`)`});return e.replace(/<<self>>/g,`[^\\s\\S]`)}var i={type:`bool byte char decimal double dynamic float int long object sbyte short string uint ulong ushort var void`,typeDeclaration:`class enum interface record struct`,contextual:`add alias and ascending async await by descending from(?=\\s*(?:\\w|$)) get global group into init(?=\\s*;) join let nameof not notnull on or orderby partial remove select set unmanaged value when where with(?=\\s*{)`,other:`abstract as base break case catch checked const continue default delegate do else event explicit extern finally fixed for foreach goto if implicit in internal is lock namespace new null operator out override params private protected public readonly ref return sealed sizeof stackalloc static switch this throw try typeof unchecked unsafe using virtual volatile while yield`};function a(e){return`\\b(?:`+e.trim().replace(/ /g,`|`)+`)\\b`}var o=a(i.typeDeclaration),s=RegExp(a(i.type+` `+i.typeDeclaration+` `+i.contextual+` `+i.other)),c=a(i.typeDeclaration+` `+i.contextual+` `+i.other),l=a(i.type+` `+i.typeDeclaration+` `+i.other),u=r(`<(?:[^<>;=+\\-*/%&|^]|<<self>>)*>`,2),d=r(`\\((?:[^()]|<<self>>)*\\)`,2),f=`@?\\b[A-Za-z_]\\w*\\b`,p=t(`<<0>>(?:\\s*<<1>>)?`,[f,u]),m=t(`(?!<<0>>)<<1>>(?:\\s*\\.\\s*<<1>>)*`,[c,p]),h=`\\[\\s*(?:,\\s*)*\\]`,g=t(`<<0>>(?:\\s*(?:\\?\\s*)?<<1>>)*(?:\\s*\\?)?`,[m,h]),_=t(`(?:<<0>>|<<1>>)(?:\\s*(?:\\?\\s*)?<<2>>)*(?:\\s*\\?)?`,[t(`\\(<<0>>+(?:,<<0>>+)+\\)`,[t(`[^,()<>[\\];=+\\-*/%&|^]|<<0>>|<<1>>|<<2>>`,[u,d,h])]),m,h]),v={keyword:s,punctuation:/[<>()?,.:[\]]/},y=`'(?:[^\\r\\n'\\\\]|\\\\.|\\\\[Uux][\\da-fA-F]{1,8})'`,b=`"(?:\\\\.|[^\\\\"\\r\\n])*"`,x=`@"(?:""|\\\\[\\s\\S]|[^\\\\"])*"(?!")`;e.languages.csharp=e.languages.extend(`clike`,{string:[{pattern:n(`(^|[^$\\\\])<<0>>`,[x]),lookbehind:!0,greedy:!0},{pattern:n(`(^|[^@$\\\\])<<0>>`,[b]),lookbehind:!0,greedy:!0}],"class-name":[{pattern:n(`(\\busing\\s+static\\s+)<<0>>(?=\\s*;)`,[m]),lookbehind:!0,inside:v},{pattern:n(`(\\busing\\s+<<0>>\\s*=\\s*)<<1>>(?=\\s*;)`,[f,_]),lookbehind:!0,inside:v},{pattern:n(`(\\busing\\s+)<<0>>(?=\\s*=)`,[f]),lookbehind:!0},{pattern:n(`(\\b<<0>>\\s+)<<1>>`,[o,p]),lookbehind:!0,inside:v},{pattern:n(`(\\bcatch\\s*\\(\\s*)<<0>>`,[m]),lookbehind:!0,inside:v},{pattern:n(`(\\bwhere\\s+)<<0>>`,[f]),lookbehind:!0},{pattern:n(`(\\b(?:is(?:\\s+not)?|as)\\s+)<<0>>`,[g]),lookbehind:!0,inside:v},{pattern:n(`\\b<<0>>(?=\\s+(?!<<1>>|with\\s*\\{)<<2>>(?:\\s*[=,;:{)\\]]|\\s+(?:in|when)\\b))`,[_,l,f]),inside:v}],keyword:s,number:/(?:\b0(?:x[\da-f_]*[\da-f]|b[01_]*[01])|(?:\B\.\d+(?:_+\d+)*|\b\d+(?:_+\d+)*(?:\.\d+(?:_+\d+)*)?)(?:e[-+]?\d+(?:_+\d+)*)?)(?:[dflmu]|lu|ul)?\b/i,operator:/>>=?|<<=?|[-=]>|([-+&|])\1|~|\?\?=?|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),e.languages.insertBefore(`csharp`,`number`,{range:{pattern:/\.\./,alias:`operator`}}),e.languages.insertBefore(`csharp`,`punctuation`,{"named-parameter":{pattern:n(`([(,]\\s*)<<0>>(?=\\s*:)`,[f]),lookbehind:!0,alias:`punctuation`}}),e.languages.insertBefore(`csharp`,`class-name`,{namespace:{pattern:n(`(\\b(?:namespace|using)\\s+)<<0>>(?:\\s*\\.\\s*<<0>>)*(?=\\s*[;{])`,[f]),lookbehind:!0,inside:{punctuation:/\./}},"type-expression":{pattern:n(`(\\b(?:default|sizeof|typeof)\\s*\\(\\s*(?!\\s))(?:[^()\\s]|\\s(?!\\s)|<<0>>)*(?=\\s*\\))`,[d]),lookbehind:!0,alias:`class-name`,inside:v},"return-type":{pattern:n(`<<0>>(?=\\s+(?:<<1>>\\s*(?:=>|[({]|\\.\\s*this\\s*\\[)|this\\s*\\[))`,[_,m]),inside:v,alias:`class-name`},"constructor-invocation":{pattern:n(`(\\bnew\\s+)<<0>>(?=\\s*[[({])`,[_]),lookbehind:!0,inside:v,alias:`class-name`},"generic-method":{pattern:n(`<<0>>\\s*<<1>>(?=\\s*\\()`,[f,u]),inside:{function:n(`^<<0>>`,[f]),generic:{pattern:RegExp(u),alias:`class-name`,inside:v}}},"type-list":{pattern:n(`\\b((?:<<0>>\\s+<<1>>|record\\s+<<1>>\\s*<<5>>|where\\s+<<2>>)\\s*:\\s*)(?:<<3>>|<<4>>|<<1>>\\s*<<5>>|<<6>>)(?:\\s*,\\s*(?:<<3>>|<<4>>|<<6>>))*(?=\\s*(?:where|[{;]|=>|$))`,[o,p,f,_,s.source,d,`\\bnew\\s*\\(\\s*\\)`]),lookbehind:!0,inside:{"record-arguments":{pattern:n(`(^(?!new\\s*\\()<<0>>\\s*)<<1>>`,[p,d]),lookbehind:!0,greedy:!0,inside:e.languages.csharp},keyword:s,"class-name":{pattern:RegExp(_),greedy:!0,inside:v},punctuation:/[,()]/}},preprocessor:{pattern:/(^[\t ]*)#.*/m,lookbehind:!0,alias:`property`,inside:{directive:{pattern:/(#)\b(?:define|elif|else|endif|endregion|error|if|line|nullable|pragma|region|undef|warning)\b/,lookbehind:!0,alias:`keyword`}}}});var S=b+`|`+y,C=t(`\\/(?![*/])|\\/\\/[^\\r\\n]*[\\r\\n]|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>`,[S]),w=r(t(`[^"'/()]|<<0>>|\\(<<self>>*\\)`,[C]),2),T=`\\b(?:assembly|event|field|method|module|param|property|return|type)\\b`,E=t(`<<0>>(?:\\s*\\(<<1>>*\\))?`,[m,w]);e.languages.insertBefore(`csharp`,`class-name`,{attribute:{pattern:n(`((?:^|[^\\s\\w>)?])\\s*\\[\\s*)(?:<<0>>\\s*:\\s*)?<<1>>(?:\\s*,\\s*<<1>>)*(?=\\s*\\])`,[T,E]),lookbehind:!0,greedy:!0,inside:{target:{pattern:n(`^<<0>>(?=\\s*:)`,[T]),alias:`keyword`},"attribute-arguments":{pattern:n(`\\(<<0>>*\\)`,[w]),inside:e.languages.csharp},"class-name":{pattern:RegExp(m),inside:{punctuation:/\./}},punctuation:/[:,]/}}});var D=`:[^}\\r\\n]+`,O=r(t(`[^"'/()]|<<0>>|\\(<<self>>*\\)`,[C]),2),k=t(`\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}`,[O,D]),A=r(t(`[^"'/()]|\\/(?!\\*)|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/|<<0>>|\\(<<self>>*\\)`,[S]),2),ee=t(`\\{(?!\\{)(?:(?![}:])<<0>>)*<<1>>?\\}`,[A,D]);function te(t,r){return{interpolation:{pattern:n(`((?:^|[^{])(?:\\{\\{)*)<<0>>`,[t]),lookbehind:!0,inside:{"format-string":{pattern:n(`(^\\{(?:(?![}:])<<0>>)*)<<1>>(?=\\}$)`,[r,D]),lookbehind:!0,inside:{punctuation:/^:/}},punctuation:/^\{|\}$/,expression:{pattern:/[\s\S]+/,alias:`language-csharp`,inside:e.languages.csharp}}},string:/[\s\S]+/}}e.languages.insertBefore(`csharp`,`string`,{"interpolation-string":[{pattern:n(`(^|[^\\\\])(?:\\$@|@\\$)"(?:""|\\\\[\\s\\S]|\\{\\{|<<0>>|[^\\\\{"])*"`,[k]),lookbehind:!0,greedy:!0,inside:te(k,O)},{pattern:n(`(^|[^@\\\\])\\$"(?:\\\\.|\\{\\{|<<0>>|[^\\\\"{])*"`,[ee]),lookbehind:!0,greedy:!0,inside:te(ee,A)}],char:{pattern:RegExp(y),greedy:!0}}),e.languages.dotnet=e.languages.cs=e.languages.csharp})(e)}nx.displayName=`markup`,nx.aliases=[`atom`,`html`,`mathml`,`rss`,`ssml`,`svg`,`xml`];function nx(e){e.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:`attr-equals`},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:`named-entity`},/&#x?[\da-f]{1,8};/i]},e.languages.markup.tag.inside[`attr-value`].inside.entity=e.languages.markup.entity,e.languages.markup.doctype.inside[`internal-subset`].inside=e.languages.markup,e.hooks.add(`wrap`,function(e){e.type===`entity`&&(e.attributes.title=e.content.value.replace(/&/,`&`))}),Object.defineProperty(e.languages.markup.tag,"addInlined",{value:function(t,n){var r={};r[`language-`+n]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:e.languages[n]},r.cdata=/^<!\[CDATA\[|\]\]>$/i;var i={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:r}};i[`language-`+n]={pattern:/[\s\S]+/,inside:e.languages[n]};var a={};a[t]={pattern:RegExp(`(<__[^>]*>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[\\s\\S])*?(?=<\\/__>)`.replace(/__/g,function(){return t}),`i`),lookbehind:!0,greedy:!0,inside:i},e.languages.insertBefore(`markup`,`cdata`,a)}}),Object.defineProperty(e.languages.markup.tag,"addAttribute",{value:function(t,n){e.languages.markup.tag.inside[`special-attr`].push({pattern:RegExp(`(^|["'\\s])(?:`+t+`)\\s*=\\s*(?:"[^"]*"|'[^']*'|[^\\s'">=]+(?=[\\s>]))`,`i`),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[n,`language-`+n],inside:e.languages[n]},punctuation:[{pattern:/^=/,alias:`attr-equals`},/"|'/]}}}})}}),e.languages.html=e.languages.markup,e.languages.mathml=e.languages.markup,e.languages.svg=e.languages.markup,e.languages.xml=e.languages.extend(`markup`,{}),e.languages.ssml=e.languages.xml,e.languages.atom=e.languages.xml,e.languages.rss=e.languages.xml}rx.displayName=`css`,rx.aliases=[];function rx(e){(function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp(`@[\\w-](?:[^;{\\s"']|\\s+(?!\\s)|`+t.source+`)*?(?:;|(?=\\s*\\{))`),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:`selector`},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp(`\\burl\\((?:`+t.source+`|(?:[^\\\\\\r\\n()"']|\\\\[\\s\\S])*)\\)`,`i`),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp(`^`+t.source+`$`),alias:`url`}}},selector:{pattern:RegExp(`(^|[{}\\s])[^{}\\s](?:[^{};"'\\s]|\\s+(?![\\s{])|`+t.source+`)*(?=\\s*\\{)`),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined(`style`,`css`),n.tag.addAttribute(`style`,`css`))})(e)}ix.displayName=`diff`,ix.aliases=[];function ix(e){(function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":`-`,"deleted-arrow":`<`,"inserted-sign":`+`,"inserted-arrow":`>`,unchanged:` `,diff:`!`};Object.keys(t).forEach(function(n){var r=t[n],i=[];/^\w+$/.test(n)||i.push(/\w+/.exec(n)[0]),n===`diff`&&i.push(`bold`),e.languages.diff[n]={pattern:RegExp(`^(?:[`+r+`].*(?:\r
|
|
58
58
|
?|
|
|
59
|
-
|(?![\\s\\S])))+`,`m`),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}}),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})})(e)}dx.displayName=`go`,dx.aliases=[];function dx(e){e.register(nx),e.languages.go=e.languages.extend(`clike`,{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),e.languages.insertBefore(`go`,`string`,{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete e.languages.go[`class-name`]}fx.displayName=`ini`,fx.aliases=[];function fx(e){e.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:`selector`},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:`attr-name`},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:`attr-value`,inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}px.displayName=`java`,px.aliases=[];function px(e){e.register(nx),(function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=`(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*`,r={pattern:RegExp(`(^|[^\\w.])`+n+`[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b`),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend(`clike`,{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(`(^|[^\\w.])`+n+`[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)`),lookbehind:!0,inside:r.inside},{pattern:RegExp(`(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)`+n+`[A-Z]\\w*\\b`),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore(`java`,`string`,{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:`string`},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore(`java`,`class-name`,{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:`punctuation`},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(`(\\bimport\\s+)`+n+`(?:[A-Z]\\w*|\\*)(?=\\s*;)`),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(`(\\bimport\\s+static\\s+)`+n+`(?:\\w+|\\*)(?=\\s*;)`),lookbehind:!0,alias:`static`,inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(`(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?`.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})})(e)}mx.displayName=`regex`,mx.aliases=[];function mx(e){(function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:`escape`},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:`class-name`},i={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:`class-name`},a=`(?:[^\\\\-]|`+n.source+`)`,o=RegExp(a+`-`+a),s={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:`variable`};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:`operator`},"char-class-punctuation":{pattern:/^\[|\]$/,alias:`punctuation`},range:{pattern:o,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:`operator`}}},"special-escape":t,"char-set":i,escape:n}},"special-escape":t,"char-set":r,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:`keyword`},{pattern:/\\k<[^<>']+>/,alias:`keyword`,inside:{"group-name":s}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:`function`},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:`punctuation`,inside:{"group-name":s}},{pattern:/\)/,alias:`punctuation`}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:`number`},alternation:{pattern:/\|/,alias:`keyword`}}})(e)}hx.displayName=`javascript`,hx.aliases=[`js`];function hx(e){e.register(nx),e.languages.javascript=e.languages.extend(`clike`,{"class-name":[e.languages.clike[`class-name`],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(`(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])`),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript[`class-name`][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore(`javascript`,`keyword`,{regex:{pattern:RegExp(`((?:^|[^$\\w\\xA0-\\uFFFF."'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))`),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:`language-regex`,inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:`function`},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore(`javascript`,`string`,{hashbang:{pattern:/^#!.*/,greedy:!0,alias:`comment`},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:`string`},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:`punctuation`},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:`property`}}),e.languages.insertBefore(`javascript`,`operator`,{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:`property`}}),e.languages.markup&&(e.languages.markup.tag.addInlined(`script`,`javascript`),e.languages.markup.tag.addAttribute(`on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)`,`javascript`)),e.languages.js=e.languages.javascript}gx.displayName=`json`,gx.aliases=[`webmanifest`];function gx(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`}},e.languages.webmanifest=e.languages.json}_x.displayName=`kotlin`,_x.aliases=[`kt`,`kts`];function _x(e){e.register(nx),(function(e){e.languages.kotlin=e.languages.extend(`clike`,{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin[`class-name`];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:`punctuation`},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore(`kotlin`,`string`,{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:`multiline`,inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:`singleline`,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore(`kotlin`,`keyword`,{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:`builtin`}}),e.languages.insertBefore(`kotlin`,`function`,{label:{pattern:/\b\w+@|@\w+\b/,alias:`symbol`}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin})(e)}vx.displayName=`less`,vx.aliases=[];function vx(e){e.register(lx),e.languages.less=e.languages.extend(`css`,{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),e.languages.insertBefore(`less`,`property`,{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:`function`}})}yx.displayName=`lua`,yx.aliases=[];function yx(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}bx.displayName=`makefile`,bx.aliases=[];function bx(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:`builtin`},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:`symbol`,inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}xx.displayName=`yaml`,xx.aliases=[`yml`];function xx(e){(function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r=`(?:`+n.source+`(?:[ ]+`+t.source+`)?|`+t.source+`(?:[ ]+`+n.source+`)?)`,i=`(?:[^\\s\\x00-\\x08\\x0e-\\x1f!"#%&'*,\\-:>?@[\\]\`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*`.replace(/<PLAIN>/g,function(){return`[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]`}),a=`"(?:[^"\\\\\\r\\n]|\\\\.)*"|'(?:[^'\\\\\\r\\n]|\\\\.)*'`;function o(e,t){t=(t||``).replace(/m/g,``)+`m`;var n=`([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))`.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e});return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(`([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)`.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:`string`},comment:/#.*/,key:{pattern:RegExp(`((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)`.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return`(?:`+i+`|`+a+`)`})),lookbehind:!0,greedy:!0,alias:`atrule`},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:`important`},datetime:{pattern:o(`\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?`),lookbehind:!0,alias:`number`},boolean:{pattern:o(`false|true`,`i`),lookbehind:!0,alias:`important`},null:{pattern:o(`null|~`,`i`),lookbehind:!0,alias:`important`},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(`[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)`,`i`),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml})(e)}Sx.displayName=`markdown`,Sx.aliases=[`md`];function Sx(e){e.register(cx),(function(e){function t(e){return e=e.replace(/<inner>/g,function(){return`(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))`}),RegExp(`((?:^|[^\\\\])(?:\\\\{2})*)(?:`+e+`)`)}var n="(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+",r=`\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))`.replace(/__/g,function(){return n}),i=`\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)`;e.languages.markdown=e.languages.extend(`markup`,{}),e.languages.insertBefore(`markdown`,`prolog`,{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:[`yaml`,`language-yaml`],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:`punctuation`},table:{pattern:RegExp(`^`+r+i+`(?:`+r+`)*`,`m`),inside:{"table-data-rows":{pattern:RegExp(`^(`+r+i+`)(?:`+r+`)*$`),lookbehind:!0,inside:{"table-data":{pattern:RegExp(n),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp(`^(`+r+`)`+i+`$`),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp(`^`+r+`$`),inside:{"table-header":{pattern:RegExp(n),alias:`important`,inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:`keyword`},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:`important`,inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:`important`,inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:`punctuation`},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:`punctuation`},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:`url`},bold:{pattern:t(`\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:t(`\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:t(`(~~?)(?:(?!~)<inner>)+\\2`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:[`code`,`keyword`]},url:{pattern:t(`!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])`),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),[`url`,`bold`,`italic`,`strike`].forEach(function(t){[`url`,`bold`,`italic`,`strike`,`code-snippet`].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add(`after-tokenize`,function(e){if(e.language!==`markdown`&&e.language!==`md`)return;function t(e){if(!(!e||typeof e==`string`))for(var n=0,r=e.length;n<r;n++){var i=e[n];if(i.type!==`code`){t(i.content);continue}var a=i.content[1],o=i.content[3];if(a&&o&&a.type===`code-language`&&o.type===`code-block`&&typeof a.content==`string`){var s=a.content.replace(/\b#/g,`sharp`).replace(/\b\+\+/g,`pp`);s=(/[a-z][\w-]*/i.exec(s)||[``])[0].toLowerCase();var c=`language-`+s;o.alias?typeof o.alias==`string`?o.alias=[o.alias,c]:o.alias.push(c):o.alias=[c]}}}t(e.tokens)}),e.hooks.add(`wrap`,function(t){if(t.type===`code-block`){for(var n=``,r=0,i=t.classes.length;r<i;r++){var a=t.classes[r],o=/language-(.+)/.exec(a);if(o){n=o[1];break}}var s=e.languages[n];if(s)t.content=e.highlight(t.content.value,s,n);else if(n&&n!==`none`&&e.plugins.autoloader){var c=`md-`+new Date().valueOf()+`-`+Math.floor(Math.random()*0x2386f26fc10000);t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})}}}),RegExp(e.languages.markup.tag.pattern.source,`gi`),String.fromCodePoint||String.fromCharCode,e.languages.md=e.languages.markdown})(e)}Cx.displayName=`objectivec`,Cx.aliases=[`objc`];function Cx(e){e.register(rx),e.languages.objectivec=e.languages.extend(`c`,{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec[`class-name`],e.languages.objc=e.languages.objectivec}wx.displayName=`perl`,wx.aliases=[];function wx(e){(function(e){var t=`(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)`;e.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(`\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*(?:`+[`([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1`,`([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2`,t].join(`|`)+`)`),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(`\\b(?:m|qr)(?![a-zA-Z0-9])\\s*(?:`+[`([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1`,`([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2`,t].join(`|`)+`)[msixpodualngc]*`),greedy:!0},{pattern:RegExp(`(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*(?:`+[`([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2`,`([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3`,t+`\\s*`+t].join(`|`)+`)[msixpodualngcer]*`),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:`symbol`},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:`string`},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}})(e)}Tx.displayName=`markup-templating`,Tx.aliases=[];function Tx(e){e.register(cx),(function(e){function t(e,t){return`___`+e.toUpperCase()+t+`___`}Object.defineProperties(e.languages[`markup-templating`]={},{buildPlaceholders:{value:function(n,r,i,a){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(i,function(e){if(typeof a==`function`&&!a(e))return e;for(var i=o.length,s;n.code.indexOf(s=t(r,i))!==-1;)++i;return o[i]=e,s}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language!==r||!n.tokenStack)return;n.grammar=e.languages[r];var i=0,a=Object.keys(n.tokenStack);function o(s){for(var c=0;c<s.length&&!(i>=a.length);c++){var l=s[c];if(typeof l==`string`||l.content&&typeof l.content==`string`){var u=a[i],d=n.tokenStack[u],f=typeof l==`string`?l:l.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++i;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),`language-`+r,d),_=f.substring(m+p.length),v=[];h&&v.push.apply(v,o([h])),v.push(g),_&&v.push.apply(v,o([_])),typeof l==`string`?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&o(l.content)}return s}o(n.tokens)}}})})(e)}Ex.displayName=`php`,Ex.aliases=[];function Ex(e){e.register(Tx),(function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:`boolean`},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],r=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,i=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,a=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:`important`},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:`class-name`},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:`function`},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:`type-casting`,greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:`type-hint`,greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:`return-type`,greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:`type-declaration`,greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:`type-declaration`,greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:`static-context`,greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:`class-name-fully-qualified`,greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:`class-name-fully-qualified`,greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:`class-name-fully-qualified`,greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:`type-declaration`,greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:[`class-name-fully-qualified`,`type-declaration`],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:`static-context`,greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:[`class-name-fully-qualified`,`static-context`],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:`type-hint`,greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:[`class-name-fully-qualified`,`type-hint`],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:`return-type`,greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:[`class-name-fully-qualified`,`return-type`],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:r,operator:i,punctuation:a};var o={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:`nowdoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:`symbol`,inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:`heredoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:`symbol`,inside:{punctuation:/^<<<"?|[";]$/}},interpolation:o}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:`backtick-quoted-string`,greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:`single-quoted-string`,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:`double-quoted-string`,greedy:!0,inside:{interpolation:o}}];e.languages.insertBefore(`php`,`variable`,{string:s,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:`class-name`,greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:[`class-name`,`class-name-fully-qualified`],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:i,punctuation:a}},delimiter:{pattern:/^#\[|\]$/,alias:`punctuation`}}}}),e.hooks.add(`before-tokenize`,function(t){/<\?/.test(t.code)&&e.languages[`markup-templating`].buildPlaceholders(t,`php`,/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}),e.hooks.add(`after-tokenize`,function(t){e.languages[`markup-templating`].tokenizePlaceholders(t,`php`)})})(e)}Dx.displayName=`python`,Dx.aliases=[`py`];function Dx(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern://,alias:`punctuation`},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:`string`},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:[`annotation`,`punctuation`],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python[`string-interpolation`].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}Ox.displayName=`r`,Ox.aliases=[];function Ox(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:`operator`},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}kx.displayName=`ruby`,kx.aliases=[`rb`];function kx(e){e.register(nx),(function(e){e.languages.ruby=e.languages.extend(`clike`,{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore(`ruby`,`operator`,{"double-colon":{pattern:/::/,alias:`punctuation`}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:`punctuation`}}};delete e.languages.ruby.function;var n=`(?:`+[`([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1`,`\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)`,`\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}`,`\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]`,`<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>`].join(`|`)+`)`,r=`(?:"(?:\\\\.|[^"\\\\\\r\\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)`;e.languages.insertBefore(`ruby`,`keyword`,{"regex-literal":[{pattern:RegExp(`%r`+n+`[egimnosux]{0,6}`),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(`(^|[^:]):`+r),lookbehind:!0,greedy:!0},{pattern:RegExp(`([\\r\\n{(,][ \\t]*)`+r+`(?=:(?!:))`),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore(`ruby`,`string`,{"string-literal":[{pattern:RegExp(`%[qQiIwWs]?`+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:`heredoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:`heredoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(`%x`+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:`string`}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:`string`}}}]}),delete e.languages.ruby.string,e.languages.insertBefore(`ruby`,`number`,{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby})(e)}Ax.displayName=`rust`,Ax.aliases=[];function Ax(e){(function(e){for(var t=`\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/`,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return`[^\\s\\S]`}),e.languages.rust={comment:[{pattern:RegExp(`(^|[^\\\\])`+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:`attr-name`,inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:`punctuation`},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:`symbol`},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:`punctuation`},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:`function`},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:`class-name`},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:`namespace`},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:`namespace`,inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:`property`},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust[`closure-params`].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string})(e)}jx.displayName=`sass`,jx.aliases=[];function jx(e){e.register(lx),(function(e){e.languages.sass=e.languages.extend(`css`,{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore(`sass`,`atrule`,{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore(`sass`,`property`,{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore(`sass`,`punctuation`,{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})})(e)}Mx.displayName=`scss`,Mx.aliases=[];function Mx(e){e.register(lx),e.languages.scss=e.languages.extend(`css`,{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:`important`},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore(`scss`,`atrule`,{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore(`scss`,`important`,{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore(`scss`,`function`,{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:`keyword`},placeholder:{pattern:/%[-\w]+/,alias:`selector`},statement:{pattern:/\B!(?:default|optional)\b/i,alias:`keyword`},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}Nx.displayName=`sql`,Nx.aliases=[];function Nx(e){e.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}Px.displayName=`swift`,Px.aliases=[];function Px(e){e.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(`(^|[^"#])(?:"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n"])*"|"""(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\"]|"(?!""))*""")(?!["#])`),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:`punctuation`},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(`(^|[^"#])(#+)(?:"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?"|"""(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?""")\\2`),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:`punctuation`},string:/[\s\S]+/}}],directive:{pattern:RegExp(`#(?:(?:elseif|if)\\b(?:[ ]*(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?)+|(?:else|endif)\\b)`),alias:`property`,inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:`constant`},"other-directive":{pattern:/#\w+\b/,alias:`property`},attribute:{pattern:/@\w+/,alias:`atrule`},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:`function`},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:`important`},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:`constant`},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:`keyword`},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},e.languages.swift[`string-literal`].forEach(function(t){t.inside.interpolation.inside=e.languages.swift})}Fx.displayName=`typescript`,Fx.aliases=[`ts`];function Fx(e){e.register(hx),(function(e){e.languages.typescript=e.languages.extend(`javascript`,{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript[`literal-property`];var t=e.languages.extend(`typescript`,{});delete t[`class-name`],e.languages.typescript[`class-name`].inside=t,e.languages.insertBefore(`typescript`,`function`,{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:`operator`},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:t}}}}),e.languages.ts=e.languages.typescript})(e)}Ix.displayName=`basic`,Ix.aliases=[];function Ix(e){e.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}Lx.displayName=`vbnet`,Lx.aliases=[];function Lx(e){e.register(Ix),e.languages.vbnet=e.languages.extend(`basic`,{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}var Rx=0,zx={},Bx={util:{type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++Rx}),e.__id},clone:function e(t,n){n||={};var r,i;switch(Bx.util.type(t)){case`Object`:if(i=Bx.util.objId(t),n[i])return n[i];for(var a in r={},n[i]=r,t)t.hasOwnProperty(a)&&(r[a]=e(t[a],n));return r;case`Array`:return i=Bx.util.objId(t),n[i]?n[i]:(r=[],n[i]=r,t.forEach(function(t,i){r[i]=e(t,n)}),r);default:return t}}},languages:{plain:zx,plaintext:zx,text:zx,txt:zx,extend:function(e,t){var n=Bx.util.clone(Bx.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r||=Bx.languages;var i=r[e],a={};for(var o in i)if(i.hasOwnProperty(o)){if(o==t)for(var s in n)n.hasOwnProperty(s)&&(a[s]=n[s]);n.hasOwnProperty(o)||(a[o]=i[o])}var c=r[e];return r[e]=a,Bx.languages.DFS(Bx.languages,function(t,n){n===c&&t!=e&&(this[t]=a)}),a},DFS:function e(t,n,r,i){i||={};var a=Bx.util.objId;for(var o in t)if(t.hasOwnProperty(o)){n.call(t,o,t[o],r||o);var s=t[o],c=Bx.util.type(s);c===`Object`&&!i[a(s)]?(i[a(s)]=!0,e(s,n,null,i)):c===`Array`&&!i[a(s)]&&(i[a(s)]=!0,e(s,n,o,i))}}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(Bx.hooks.run(`before-tokenize`,r),!r.grammar)throw Error(`The language "`+r.language+`" has no grammar.`);return r.tokens=Bx.tokenize(r.code,r.grammar),Bx.hooks.run(`after-tokenize`,r),Vx.stringify(Bx.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var i=new Wx;return Gx(i,i.head,e),Ux(e,i,t,i.head,0),qx(i)},hooks:{all:{},add:function(e,t){var n=Bx.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=Bx.hooks.all[e];if(!(!n||!n.length))for(var r=0,i;i=n[r++];)i(t)}},Token:Vx};function Vx(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||``).length|0}function Hx(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function Ux(e,t,n,r,i,a){for(var o in n)if(!(!n.hasOwnProperty(o)||!n[o])){var s=n[o];s=Array.isArray(s)?s:[s];for(var c=0;c<s.length;++c){if(a&&a.cause==o+`,`+c)return;var l=s[c],u=l.inside,d=!!l.lookbehind,f=!!l.greedy,p=l.alias;if(f&&!l.pattern.global){var m=l.pattern.toString().match(/[imsuy]*$/)[0];l.pattern=RegExp(l.pattern.source,m+`g`)}for(var h=l.pattern||l,g=r.next,_=i;g!==t.tail&&!(a&&_>=a.reach);_+=g.value.length,g=g.next){var v=g.value;if(t.length>e.length)return;if(!(v instanceof Vx)){var y=1,b;if(f){if(b=Hx(h,_,e,d),!b||b.index>=e.length)break;var x=b.index,S=b.index+b[0].length,C=_;for(C+=g.value.length;x>=C;)g=g.next,C+=g.value.length;if(C-=g.value.length,_=C,g.value instanceof Vx)continue;for(var w=g;w!==t.tail&&(C<S||typeof w.value==`string`);w=w.next)y++,C+=w.value.length;y--,v=e.slice(_,C),b.index-=_}else if(b=Hx(h,0,v,d),!b)continue;var x=b.index,T=b[0],E=v.slice(0,x),D=v.slice(x+T.length),O=_+v.length;a&&O>a.reach&&(a.reach=O);var k=g.prev;E&&(k=Gx(t,k,E),_+=E.length),Kx(t,k,y);var A=new Vx(o,u?Bx.tokenize(T,u):T,p,T);if(g=Gx(t,k,A),D&&Gx(t,g,D),y>1){var ee={cause:o+`,`+c,reach:O};Ux(e,t,n,g.prev,_,ee),a&&ee.reach>a.reach&&(a.reach=ee.reach)}}}}}}function Wx(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function Gx(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function Kx(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function qx(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}var Jx=Bx;function Yx(){}Yx.prototype=Jx;var Z=new Yx;Z.highlight=Xx,Z.register=Zx,Z.alias=Qx,Z.registered=$x,Z.listLanguages=eS,Z.util.encode=nS,Z.Token.stringify=tS;function Xx(e,t){if(typeof e!=`string`)throw TypeError("Expected `string` for `value`, got `"+e+"`");let n,r;if(t&&typeof t==`object`)n=t;else{if(r=t,typeof r!=`string`)throw TypeError("Expected `string` for `name`, got `"+r+"`");if(Object.hasOwn(Z.languages,r))n=Z.languages[r];else throw Error("Unknown language: `"+r+"` is not registered")}return{type:`root`,children:Jx.highlight.call(Z,e,n,r)}}function Zx(e){if(typeof e!=`function`||!e.displayName)throw Error("Expected `function` for `syntax`, got `"+e+"`");Object.hasOwn(Z.languages,e.displayName)||e(Z)}function Qx(e,t){let n=Z.languages,r={};typeof e==`string`?t&&(r[e]=t):r=e;let i;for(i in r)if(Object.hasOwn(r,i)){let e=r[i],t=typeof e==`string`?[e]:e,a=-1;for(;++a<t.length;)n[t[a]]=n[i]}}function $x(e){if(typeof e!=`string`)throw TypeError("Expected `string` for `aliasOrLanguage`, got `"+e+"`");return Object.hasOwn(Z.languages,e)}function eS(){let e=Z.languages,t=[],n;for(n in e)Object.hasOwn(e,n)&&typeof e[n]==`object`&&t.push(n);return t}function tS(e,t){if(typeof e==`string`)return{type:`text`,value:e};if(Array.isArray(e)){let n=[],r=-1;for(;++r<e.length;)e[r]!==null&&e[r]!==void 0&&e[r]!==``&&n.push(tS(e[r],t));return n}let n={attributes:{},classes:[`token`,e.type],content:tS(e.content,t),language:t,tag:`span`,type:e.type};return e.alias&&n.classes.push(...typeof e.alias==`string`?[e.alias]:e.alias),Z.hooks.run(`wrap`,n),Ar(n.tag+`.`+n.classes.join(`.`),rS(n.attributes),n.content)}function nS(e){return e}function rS(e){let t;for(t in e)Object.hasOwn(e,t)&&(e[t]=jr(e[t]));return e}Z.register(nx),Z.register(rx),Z.register(ix),Z.register(ax),Z.register(ox),Z.register(sx),Z.register(cx),Z.register(lx),Z.register(ux),Z.register(dx),Z.register(fx),Z.register(px),Z.register(mx),Z.register(hx),Z.register(gx),Z.register(_x),Z.register(vx),Z.register(yx),Z.register(bx),Z.register(xx),Z.register(Sx),Z.register(Cx),Z.register(wx),Z.register(Tx),Z.register(Ex),Z.register(Dx),Z.register(Ox),Z.register(kx),Z.register(Ax),Z.register(jx),Z.register(Mx),Z.register(Nx),Z.register(Px),Z.register(Fx),Z.register(Ix),Z.register(Lx);var iS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/code.tsx`,aS=(0,L.lazy)(()=>c(()=>import(`./esm-Dfm1ivm4.js`),__vite__mapDeps([16,1,2,6,8,17,18,12,13,19,20])));function oS(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}var sS=Z.listLanguages().slice().sort().map(e=>({value:e,title:e}));function cS({field:e,value:t,onChange:n}){let r=(0,L.useMemo)(()=>oS(t),[t]),i=e.hints.defaultLang??`text`,a=r.lang??i,o=e=>n(!e.code&&!e.lang?``:{code:e.code??``,lang:e.lang??i});return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,R.jsxDEV)(X_,{value:a,onChange:e=>o({code:r.code,lang:e}),items:sS,placeholder:`language`},void 0,!1,{fileName:iS,lineNumber:45,columnNumber:7},this),(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,children:(0,R.jsxDEV)(`div`,{className:`rounded-xl overflow-hidden border border-border min-w-0`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:iS,lineNumber:53,columnNumber:31},this),children:(0,R.jsxDEV)(aS,{value:r.code??``,language:a,onChange:e=>o({code:e.target.value,lang:a}),padding:12,style:{fontFamily:`ui-monospace, monospace`,fontSize:13,background:`transparent`,minHeight:`8rem`}},void 0,!1,{fileName:iS,lineNumber:54,columnNumber:13},this)},void 0,!1,{fileName:iS,lineNumber:53,columnNumber:11},this)},void 0,!1,{fileName:iS,lineNumber:52,columnNumber:9},this)},void 0,!1,{fileName:iS,lineNumber:51,columnNumber:7},this)]},void 0,!0,{fileName:iS,lineNumber:44,columnNumber:5},this)}function lS({value:e}){let t=oS(e);return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`flex h-9 w-full items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:t.lang&&(0,R.jsxDEV)(`span`,{className:`uppercase`,children:t.lang},void 0,!1,{fileName:iS,lineNumber:78,columnNumber:20},this)},void 0,!1,{fileName:iS,lineNumber:77,columnNumber:7},this),(0,R.jsxDEV)(`pre`,{className:`min-w-0 min-h-32 overflow-x-auto whitespace-pre-wrap rounded-lg border border-transparent p-3 font-mono text-[13px] leading-normal text-text/90`,children:t.code||(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:iS,lineNumber:81,columnNumber:20},this)},void 0,!1,{fileName:iS,lineNumber:80,columnNumber:7},this)]},void 0,!0,{fileName:iS,lineNumber:76,columnNumber:5},this)}function uS(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,bare:e.bare,view:e=>(0,R.jsxDEV)(lS,{value:e},void 0,!1,{fileName:iS,lineNumber:99,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(cS,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:iS,lineNumber:101,columnNumber:9},this)},void 0,!1,{fileName:iS,lineNumber:89,columnNumber:5},this)}function dS({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate text-muted`,children:oS(e).lang??`code`},void 0,!1,{fileName:iS,lineNumber:109,columnNumber:10},this)}I({kinds:[`code`],layout:`block`,Page:uS,Inline:dS});var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/embed.tsx`;function fS(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 pS=e=>(e.type===`video`||e.type===`rich`)&&!!e.html;function mS(e){try{return new URL(e).hostname}catch{return e}}function hS(e){try{let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return e}catch{}}function gS({rec:e,onOpen:t,onRemove:n}){return(0,R.jsxDEV)(`div`,{className:`group relative @container`,children:[(0,R.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,R.jsxDEV)(`div`,{className:`relative aspect-video w-20 shrink-0 bg-muted/40 @[20rem]:w-full`,children:[e.thumbnail?(0,R.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`h-full w-full object-cover`},void 0,!1,{fileName:Q,lineNumber:67,columnNumber:13},this):(0,R.jsxDEV)(js,{className:`absolute inset-0 m-auto text-muted`,size:20},void 0,!1,{fileName:Q,lineNumber:69,columnNumber:13},this),pS(e)&&(0,R.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,R.jsxDEV)(we,{size:16},void 0,!1,{fileName:Q,lineNumber:73,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:72,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:65,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1 px-2 py-1.5`,children:[(0,R.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:e.title??e.url},void 0,!1,{fileName:Q,lineNumber:78,columnNumber:11},this),e.provider&&(0,R.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.provider},void 0,!1,{fileName:Q,lineNumber:79,columnNumber:28},this)]},void 0,!0,{fileName:Q,lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:60,columnNumber:7},this),n&&(0,R.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,R.jsxDEV)(be,{size:13},void 0,!1,{fileName:Q,lineNumber:90,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:83,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:59,columnNumber:5},this)}function _S({rec:e}){let t=e.title||mS(e.url),n=hS(e.url),r=`group flex items-center gap-2 overflow-hidden rounded-lg border border-border bg-muted/5 px-3 py-2 transition-colors hover:bg-muted/15`,i=(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`shrink-0 text-muted group-hover:text-text`,children:pS(e)?(0,R.jsxDEV)(we,{size:16},void 0,!1,{fileName:Q,lineNumber:105,columnNumber:26},this):(0,R.jsxDEV)(js,{size:16},void 0,!1,{fileName:Q,lineNumber:105,columnNumber:47},this)},void 0,!1,{fileName:Q,lineNumber:104,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:t},void 0,!1,{fileName:Q,lineNumber:108,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.url},void 0,!1,{fileName:Q,lineNumber:109,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:107,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:103,columnNumber:5},this);return n?(0,R.jsxDEV)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:r,children:i},void 0,!1,{fileName:Q,lineNumber:115,columnNumber:5},this):(0,R.jsxDEV)(`div`,{className:r,children:i},void 0,!1,{fileName:Q,lineNumber:119,columnNumber:5},this)}function vS({rec:e,onClose:t}){let{t:n}=a(),r=hS(e.url);return(0,R.jsxDEV)(kr,{open:!0,onOpenChange:e=>!e&&t(),children:(0,R.jsxDEV)(Dr,{className:`max-w-2xl`,children:[(0,R.jsxDEV)(Tr,{className:`truncate`,children:e.title??e.url},void 0,!1,{fileName:Q,lineNumber:132,columnNumber:9},this),pS(e)?(0,R.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:Q,lineNumber:134,columnNumber:11},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[e.thumbnail&&(0,R.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`w-full rounded-md`},void 0,!1,{fileName:Q,lineNumber:143,columnNumber:31},this),e.description&&(0,R.jsxDEV)(`p`,{className:`text-sm text-muted`,children:e.description},void 0,!1,{fileName:Q,lineNumber:144,columnNumber:33},this)]},void 0,!0,{fileName:Q,lineNumber:142,columnNumber:11},this),r&&(0,R.jsxDEV)(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`,children:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,className:`w-full`,children:[(0,R.jsxDEV)(Es,{size:15},void 0,!1,{fileName:Q,lineNumber:150,columnNumber:15},this),` `,n(`embed.open`)]},void 0,!0,{fileName:Q,lineNumber:149,columnNumber:13},this)},void 0,!1,{fileName:Q,lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:131,columnNumber:7},this)},void 0,!1,{fileName:Q,lineNumber:130,columnNumber:5},this)}function yS({value:e,onChange:t,multiple:n}){let{t:r}=a(),i=fS(e),[o,s]=(0,L.useState)(null),[c,l]=(0,L.useState)(``),[u,d]=(0,L.useState)(!1),[f,p]=(0,L.useState)(!1),m=e=>t?.(e.length?e:``);async function h(){if(u||!c.trim())return;d(!0),p(!1);let e=await er(c.trim());if(d(!1),!e)return p(!0);m([...i,e]),l(``)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[t?(0,R.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-2 @md:grid-cols-2 @2xl:grid-cols-3`,children:i.map((e,t)=>(0,R.jsxDEV)(gS,{rec:e,onOpen:()=>s(e),onRemove:()=>m(i.filter((e,n)=>n!==t))},`${e.url}-${t}`,!1,{fileName:Q,lineNumber:188,columnNumber:13},this))},void 0,!1,{fileName:Q,lineNumber:186,columnNumber:9},this):i.length>0&&(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:i.map((e,t)=>(0,R.jsxDEV)(_S,{rec:e},`${e.url}-${t}`,!1,{fileName:Q,lineNumber:201,columnNumber:15},this))},void 0,!1,{fileName:Q,lineNumber:199,columnNumber:11},this),t&&(n||i.length===0)&&(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(E,{value:c,placeholder:r(`embed.pastePlaceholder`),onChange:e=>l(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),h())},void 0,!1,{fileName:Q,lineNumber:209,columnNumber:13},this),(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,disabled:u||!c.trim(),onClick:h,children:u?`…`:`+`},void 0,!1,{fileName:Q,lineNumber:215,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:208,columnNumber:11},this),f&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:r(`embed.resolveFailed`)},void 0,!1,{fileName:Q,lineNumber:219,columnNumber:19},this)]},void 0,!0,{fileName:Q,lineNumber:207,columnNumber:9},this),o&&(0,R.jsxDEV)(vS,{rec:o,onClose:()=>s(null)},void 0,!1,{fileName:Q,lineNumber:222,columnNumber:16},this)]},void 0,!0,{fileName:Q,lineNumber:183,columnNumber:5},this)}function bS(e){let t=e.mode!==`view`,n=e.field.hints.multiple===!0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[e.label&&(0,R.jsxDEV)(Gt,{label:e.label,required:e.required},void 0,!1,{fileName:Q,lineNumber:232,columnNumber:19},this),(0,R.jsxDEV)(yS,{value:e.value,onChange:t?e.onChange:void 0,multiple:n},void 0,!1,{fileName:Q,lineNumber:233,columnNumber:7},this),e.error&&(0,R.jsxDEV)(It,{error:e.error},void 0,!1,{fileName:Q,lineNumber:234,columnNumber:19},this)]},void 0,!0,{fileName:Q,lineNumber:231,columnNumber:5},this)}function xS(e){let t=fS(e.value);if(t.length===0)return null;let n=t[0];return(0,R.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[pS(n)?(0,R.jsxDEV)(we,{size:12},void 0,!1,{fileName:Q,lineNumber:245,columnNumber:26},this):(0,R.jsxDEV)(js,{size:12},void 0,!1,{fileName:Q,lineNumber:245,columnNumber:47},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:n.title??mS(n.url)},void 0,!1,{fileName:Q,lineNumber:246,columnNumber:7},this),t.length>1&&(0,R.jsxDEV)(`span`,{className:`text-muted`,children:[`+`,t.length-1]},void 0,!0,{fileName:Q,lineNumber:247,columnNumber:27},this)]},void 0,!0,{fileName:Q,lineNumber:244,columnNumber:5},this)}I({kinds:[`embed`],layout:`block`,Page:bS,Inline:xS});var SS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/reminder.tsx`;function CS(){return new Date().toISOString().slice(0,10)}function wS(e,t){return Math.round((Date.parse(e)-Date.parse(t))/864e5)}function TS(e,t,n=CS()){if(!e)return`neutral`;let r=wS(e,n);return r<0?`overdue`:r===0?`today`:r<=t?`soon`:`neutral`}var ES={overdue:`text-red-600`,today:`text-primary font-medium`,soon:`text-amber-600`,neutral:``};function DS({field:e,value:t}){let{t:n}=a(),r=String(t??``);if(!r)return(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:SS,lineNumber:40,columnNumber:18},this);let i=TS(r,e.hints.lead??30),o=wS(r,CS()),s=i===`today`?n(`reminder.today`):i===`overdue`?n(`reminder.overdue`,{days:Math.abs(o)}):i===`soon`?n(`reminder.inDays`,{days:o}):null;return(0,R.jsxDEV)(`span`,{className:`tabular-nums ${ES[i]}`,children:[vg(r),s?(0,R.jsxDEV)(`span`,{className:`ml-2 text-xs`,children:s},void 0,!1,{fileName:SS,lineNumber:52,columnNumber:15},this):null]},void 0,!0,{fileName:SS,lineNumber:50,columnNumber:5},this)}function OS(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,R.jsxDEV)(DS,{field:e.field,value:t},void 0,!1,{fileName:SS,lineNumber:62,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(E,{type:`date`,value:String(e??``),onChange:e=>t(e.target.value)},void 0,!1,{fileName:SS,lineNumber:64,columnNumber:9},this)},void 0,!1,{fileName:SS,lineNumber:59,columnNumber:5},this)}function kS({field:e,value:t}){return(0,R.jsxDEV)(DS,{field:e,value:t},void 0,!1,{fileName:SS,lineNumber:71,columnNumber:10},this)}I({kinds:[`reminder`],Page:OS,Inline:kS});var AS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/weight.tsx`;function jS(e){if(e==null||e===``||Number.isNaN(Number(e)))return``;let t=Number(e);return t<1e3?`${t} г`:`${Number((t/1e3).toFixed(2))} кг`}function MS({value:e,onChange:t}){let n=e===``?``:Number(e),[r,i]=(0,L.useState)(n!==``&&Number(n)>=1e3?`kg`:`g`),a=n===``?``:r===`kg`?Number(n)/1e3:n,o=e=>Math.round(r===`kg`?e*1e3:e);return(0,R.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,R.jsxDEV)(E,{type:`number`,className:`flex-1 min-w-0`,min:0,value:a,onChange:e=>t(e.target.value===``?``:String(o(Number(e.target.value))))},void 0,!1,{fileName:AS,lineNumber:23,columnNumber:7},this),(0,R.jsxDEV)(nt,{value:r,onValueChange:e=>i(e),children:[(0,R.jsxDEV)(it,{className:`w-20`,children:(0,R.jsxDEV)(rt,{},void 0,!1,{fileName:AS,lineNumber:32,columnNumber:11},this)},void 0,!1,{fileName:AS,lineNumber:31,columnNumber:9},this),(0,R.jsxDEV)(Dt,{children:[(0,R.jsxDEV)(st,{value:`g`,children:`г`},void 0,!1,{fileName:AS,lineNumber:35,columnNumber:11},this),(0,R.jsxDEV)(st,{value:`kg`,children:`кг`},void 0,!1,{fileName:AS,lineNumber:36,columnNumber:11},this)]},void 0,!0,{fileName:AS,lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:AS,lineNumber:30,columnNumber:7},this)]},void 0,!0,{fileName:AS,lineNumber:22,columnNumber:5},this)}function NS({value:e}){let t=jS(e);return t?(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:t},void 0,!1,{fileName:AS,lineNumber:45,columnNumber:14},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:AS,lineNumber:45,columnNumber:58},this)}function PS(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:e=>(0,R.jsxDEV)(NS,{value:e},void 0,!1,{fileName:AS,lineNumber:61,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(MS,{value:String(e??``),onChange:t},void 0,!1,{fileName:AS,lineNumber:63,columnNumber:9},this)},void 0,!1,{fileName:AS,lineNumber:50,columnNumber:5},this)}function FS({value:e}){return(0,R.jsxDEV)(NS,{value:e},void 0,!1,{fileName:AS,lineNumber:70,columnNumber:10},this)}I({kinds:[`weight`],Page:PS,Inline:FS});var IS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/dimensions.tsx`;function LS(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function RS(e){let t=LS(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 zS({value:e,onChange:t}){let n=LS(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,R.jsxDEV)(E,{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:IS,lineNumber:27,columnNumber:5},this);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-1 min-w-0 ${Wt}`,children:[i(`w`,`Ш`),(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:IS,lineNumber:31,columnNumber:23},this),i(`h`,`В`),(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:IS,lineNumber:31,columnNumber:76},this),i(`d`,`Г`),(0,R.jsxDEV)(`span`,{className:`ml-1 text-xs text-muted`,children:`мм`},void 0,!1,{fileName:IS,lineNumber:32,columnNumber:7},this)]},void 0,!0,{fileName:IS,lineNumber:30,columnNumber:5},this)}function BS({value:e}){let t=RS(e);return t?(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:t},void 0,!1,{fileName:IS,lineNumber:39,columnNumber:14},this):(0,R.jsxDEV)(ut,{},void 0,!1,{fileName:IS,lineNumber:39,columnNumber:58},this)}function VS(e){return(0,R.jsxDEV)(Bn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:e=>(0,R.jsxDEV)(BS,{value:e},void 0,!1,{fileName:IS,lineNumber:45,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(zS,{value:e,onChange:t},void 0,!1,{fileName:IS,lineNumber:46,columnNumber:34},this)},void 0,!1,{fileName:IS,lineNumber:43,columnNumber:5},this)}function HS({value:e}){return(0,R.jsxDEV)(BS,{value:e},void 0,!1,{fileName:IS,lineNumber:49,columnNumber:58},this)}I({kinds:[`dimensions`],Page:VS,Inline:HS});var US=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/internal-api-token-renderer.tsx`;function WS(){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 GS({label:e}){let{t}=a(),[n,r]=(0,L.useState)([]),[i,o]=(0,L.useState)(``),[s,c]=(0,L.useState)(null),[l,u]=(0,L.useState)(!1);function d(){nr().then(e=>e.ok&&r(e.data))}(0,L.useEffect)(d,[]);async function f(){if(!i.trim())return;u(!0);let e=WS(),n=await ir(i.trim(),e);u(!1),n.ok?(c(e),o(``),d()):y.error(t(`auth.genericError`))}async function p(e){await Ge({title:t(`auth.tokenConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await tr(e)).ok?d():y.error(t(`auth.genericError`)))}return(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold uppercase tracking-wide text-muted`,children:t(e||`auth.tokensTitle`)},void 0,!1,{fileName:US,lineNumber:70,columnNumber:7},this),s&&(0,R.jsxDEV)(`div`,{className:`mb-3 rounded-xl border border-accent/40 bg-accent/10 px-4 py-3 text-sm text-accent break-all`,children:[t(`auth.tokenCreatedOnce`),` `,(0,R.jsxDEV)(`code`,{children:s},void 0,!1,{fileName:US,lineNumber:73,columnNumber:40},this)]},void 0,!0,{fileName:US,lineNumber:72,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`mb-3 flex gap-2`,children:[(0,R.jsxDEV)(E,{placeholder:t(`auth.tokenNamePlaceholder`),value:i,onChange:e=>o(e.target.value)},void 0,!1,{fileName:US,lineNumber:77,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`button`,disabled:l||!i.trim(),onClick:f,children:t(`auth.tokenCreate`)},void 0,!1,{fileName:US,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:US,lineNumber:76,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,R.jsxDEV)(qe,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.name},void 0,!1,{fileName:US,lineNumber:86,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:US,lineNumber:87,columnNumber:15},this)]},void 0,!0,{fileName:US,lineNumber:85,columnNumber:13},this),(0,R.jsxDEV)(F,{variant:`ghost`,size:`sm`,type:`button`,onClick:()=>p(e.id),className:`shrink-0 border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:US,lineNumber:91,columnNumber:13},this)]},e.id,!0,{fileName:US,lineNumber:84,columnNumber:11},this))},void 0,!1,{fileName:US,lineNumber:82,columnNumber:7},this)]},void 0,!0,{fileName:US,lineNumber:69,columnNumber:5},this)}I({kinds:[`internalApiToken`],layout:`block`,Page:GS});var KS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/internal-oauth-grants-renderer.tsx`;function qS({label:e}){let{t}=a(),[n,r]=(0,L.useState)([]);function i(){fr().then(e=>e.ok&&r(e.data))}(0,L.useEffect)(i,[]);async function o(e){await Ge({title:t(`auth.grantConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await yr(e)).ok?i():y.error(t(`auth.genericError`)))}return(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold uppercase tracking-wide text-muted`,children:t(e||`auth.grantsTitle`)},void 0,!1,{fileName:KS,lineNumber:44,columnNumber:7},this),n.length===0?(0,R.jsxDEV)(`p`,{className:`text-sm text-muted`,children:t(`auth.grantsEmpty`)},void 0,!1,{fileName:KS,lineNumber:46,columnNumber:9},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,R.jsxDEV)(qe,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.clientName},void 0,!1,{fileName:KS,lineNumber:52,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:KS,lineNumber:53,columnNumber:17},this)]},void 0,!0,{fileName:KS,lineNumber:51,columnNumber:15},this),(0,R.jsxDEV)(F,{variant:`ghost`,size:`sm`,type:`button`,onClick:()=>o(e.clientId),className:`shrink-0 border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:KS,lineNumber:57,columnNumber:15},this)]},e.clientId,!0,{fileName:KS,lineNumber:50,columnNumber:13},this))},void 0,!1,{fileName:KS,lineNumber:48,columnNumber:9},this)]},void 0,!0,{fileName:KS,lineNumber:43,columnNumber:5},this)}I({kinds:[`internalOauthGrants`],layout:`block`,Page:qS});function JS({containerRef:e,count:t,estimateHeight:n=33,overscan:r=12,threshold:i=100}){let a=t>i,[o,s]=(0,L.useState)(n),[c,l]=(0,L.useState)({start:0,end:t}),u=(0,L.useRef)(!1),d=(0,L.useCallback)(e=>{if(!e||u.current)return;let t=e.getBoundingClientRect().height;t>0&&(u.current=!0,s(t))},[]);if((0,L.useEffect)(()=>{u.current=!1},[t]),(0,L.useEffect)(()=>{if(!a){l({start:0,end:t});return}let i=e.current;if(!i)return;let s=()=>{let e=o>0?o:n,a=Math.max(0,Math.floor(i.scrollTop/e)-r),s=Math.ceil(i.clientHeight/e)+r*2;l(e=>{let n={start:a,end:Math.min(t,a+s)};return e.start===n.start&&e.end===n.end?e:n})};s(),i.addEventListener(`scroll`,s,{passive:!0});let c=typeof ResizeObserver==`function`?new ResizeObserver(s):null;return c?.observe(i),()=>{i.removeEventListener(`scroll`,s),c?.disconnect()}},[e,t,a,o,n,r]),!a)return{start:0,end:t,padTop:0,padBottom:0,rowHeight:o,measureRow:d};let f=Math.min(c.start,Math.max(0,t-1)),p=Math.min(c.end,t);return{start:f,end:p,padTop:f*o,padBottom:Math.max(0,(t-p)*o),rowHeight:o,measureRow:d}}var YS=20,XS=new Map;function ZS(e){return XS.get(e)??0}function QS(e,t){for(XS.delete(e),XS.set(e,t);XS.size>YS;){let e=XS.keys().next();if(e.done)break;XS.delete(e.value)}}function $S(e){for(let t of[...XS.keys()])(t===e||t.startsWith(`${e}?`))&&XS.delete(t)}var eC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/RecordCard.tsx`;function tC(e,t,n){return n?e(n.label):t}var nC=(0,L.memo)(function({row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:o}){let{t:s}=a(),c=xn(t.fields),l=`${r}/${e.id}`,[u,...d]=n,f=ft(c),p=f?e[f]:void 0,h=f!=null&&fy(p).length>0,g=f?d.filter(e=>e!==f):d,_=u?c[u]:void 0;return(0,R.jsxDEV)(`div`,{style:{contentVisibility:`auto`,containIntrinsicSize:`auto 120px`},className:`bg-elevated rounded-xl p-4 mb-3 border border-border transition-colors hover:border-border2 hover:bg-surface`,children:[h&&(0,R.jsxDEV)(`div`,{className:`-mx-4 -mt-4 mb-3 overflow-hidden rounded-t-xl [&_img]:rounded-none [&>*]:rounded-none`,children:(0,R.jsxDEV)(vy,{value:p},void 0,!1,{fileName:eC,lineNumber:60,columnNumber:11},this)},void 0,!1,{fileName:eC,lineNumber:59,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,R.jsxDEV)(m,{to:l,className:`mb-2 block min-w-0 truncate text-text`,children:_?(0,R.jsxDEV)(wr,{field:_,value:bn(_,u,e),height:24},void 0,!1,{fileName:eC,lineNumber:69,columnNumber:15},this):String(e[u]??``)},void 0,!1,{fileName:eC,lineNumber:67,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1`,children:g.map(t=>{let n=c[t],r=n?bn(n,t,e):void 0;return!n||!pt(r)?null:(0,R.jsxDEV)(`span`,{className:`text-sm text-muted inline-flex min-w-0 max-w-full items-baseline gap-1 truncate`,children:[(0,R.jsxDEV)(`span`,{className:`text-xs opacity-70 shrink-0`,children:[tC(s,t,n),`:`]},void 0,!0,{fileName:eC,lineNumber:84,columnNumber:19},this),(0,R.jsxDEV)(wr,{field:n,value:r},void 0,!1,{fileName:eC,lineNumber:85,columnNumber:19},this)]},t,!0,{fileName:eC,lineNumber:80,columnNumber:17},this)})},void 0,!1,{fileName:eC,lineNumber:74,columnNumber:11},this)]},void 0,!0,{fileName:eC,lineNumber:64,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex gap-2 shrink-0`,children:(0,R.jsxDEV)(F,{variant:`outline`,size:`icon`,disabled:o,className:`text-muted hover:text-danger hover:border-danger`,onClick:()=>i(String(e.id)),children:(0,R.jsxDEV)(be,{size:15},void 0,!1,{fileName:eC,lineNumber:99,columnNumber:13},this)},void 0,!1,{fileName:eC,lineNumber:92,columnNumber:11},this)},void 0,!1,{fileName:eC,lineNumber:91,columnNumber:9},this)]},void 0,!0,{fileName:eC,lineNumber:63,columnNumber:7},this)]},void 0,!0,{fileName:eC,lineNumber:54,columnNumber:5},this)}),rC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/RecordRow.tsx`,iC=(0,L.memo)(function({row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:a,rowRef:o}){let s=xn(t.fields),c=`${r}/${e.id}`;return(0,R.jsxDEV)(`tr`,{ref:o,className:`group border-b border-border/60 hover:bg-elevated/60 transition-colors`,children:[n.map((t,n)=>n===0?(0,R.jsxDEV)(`td`,{className:`max-w-xs p-0`,children:(0,R.jsxDEV)(m,{to:c,className:`block px-4 py-1.5 text-sm font-medium text-text truncate`,children:s[t]?(0,R.jsxDEV)(wr,{field:s[t],value:bn(s[t],t,e)},void 0,!1,{fileName:rC,lineNumber:45,columnNumber:24},this):String(e[t]??``)},void 0,!1,{fileName:rC,lineNumber:44,columnNumber:13},this)},t,!1,{fileName:rC,lineNumber:43,columnNumber:11},this):(0,R.jsxDEV)(`td`,{className:`px-4 py-1.5 text-sm max-w-xs text-text/80`,children:(0,R.jsxDEV)(`span`,{className:`block truncate`,children:s[t]?(0,R.jsxDEV)(wr,{field:s[t],value:bn(s[t],t,e)},void 0,!1,{fileName:rC,lineNumber:51,columnNumber:24},this):String(e[t]??``)},void 0,!1,{fileName:rC,lineNumber:50,columnNumber:13},this)},t,!1,{fileName:rC,lineNumber:49,columnNumber:11},this)),(0,R.jsxDEV)(`td`,{className:`px-3 py-1 w-14`,children:(0,R.jsxDEV)(`div`,{className:`flex justify-end`,children:(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,disabled:a,className:`m-0 text-muted opacity-0 group-hover:opacity-100 pointer-coarse:opacity-100 hover:text-danger transition-opacity`,onClick:()=>i(String(e.id)),children:(0,R.jsxDEV)(be,{size:14},void 0,!1,{fileName:rC,lineNumber:65,columnNumber:13},this)},void 0,!1,{fileName:rC,lineNumber:58,columnNumber:11},this)},void 0,!1,{fileName:rC,lineNumber:57,columnNumber:9},this)},void 0,!1,{fileName:rC,lineNumber:56,columnNumber:7},this)]},void 0,!0,{fileName:rC,lineNumber:38,columnNumber:5},this)}),aC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/views/table.tsx`;function oC(e,t){e.scrollTop=t}function sC({rows:e,shelf:t,keys:n,hrefBase:r,onDelete:i,deletingId:o,sort:s,onToggleSort:c,scrollKey:l}){let{t:u}=a(),d=xn(t.fields),f=Nt(`list`,640),p=(0,L.useRef)(null),m=JS({containerRef:p,count:e.length}),h=(0,L.useRef)(null);return(0,L.useEffect)(()=>{if(!l)return;let e=f?p.current:null,t=e??window,n=()=>QS(l,e?e.scrollTop:window.scrollY);return t.addEventListener(`scroll`,n,{passive:!0}),()=>t.removeEventListener(`scroll`,n)},[l,f,e.length]),(0,L.useLayoutEffect)(()=>{if(!l||e.length===0)return;let t=ZS(l),n=f?p.current:null,r=h.current,i=r?.key!==l;if(t<=0){h.current={key:l,applied:0};return}let a=n?n.scrollTop:window.scrollY;!i&&r&&Math.abs(a-r.applied)>2||(n?oC(n,t):typeof window.scrollTo==`function`&&window.scrollTo(0,t),h.current={key:l,applied:n?n.scrollTop:t})},[l,e.length,f,m.rowHeight]),f?(0,R.jsxDEV)(`div`,{ref:p,className:`hidden list:block overflow-auto h-[calc(100dvh-52px)]`,children:(0,R.jsxDEV)(`table`,{className:`w-full border-collapse`,children:[(0,R.jsxDEV)(`thead`,{className:`eink-solid sticky top-0 z-10 bg-bg/95 backdrop-blur`,children:(0,R.jsxDEV)(`tr`,{className:`border-b border-border`,children:[n.map(e=>(0,R.jsxDEV)(`th`,{onClick:()=>c(e),className:`px-4 py-2 text-left text-[11px] font-semibold text-muted uppercase tracking-wider cursor-pointer select-none hover:text-text transition-colors`,children:(0,R.jsxDEV)(`span`,{className:`flex items-center gap-1 whitespace-nowrap`,title:tC(u,e,d[e]),children:[tC(u,e,d[e]),s?.key===e?s.dir===`asc`?(0,R.jsxDEV)(at,{size:11},void 0,!1,{fileName:aC,lineNumber:100,columnNumber:23},this):(0,R.jsxDEV)(k,{size:11},void 0,!1,{fileName:aC,lineNumber:102,columnNumber:23},this):(0,R.jsxDEV)(Cs,{size:11,className:`opacity-30`},void 0,!1,{fileName:aC,lineNumber:105,columnNumber:21},this)]},void 0,!0,{fileName:aC,lineNumber:96,columnNumber:17},this)},e,!1,{fileName:aC,lineNumber:91,columnNumber:15},this)),(0,R.jsxDEV)(`th`,{className:`w-12`},void 0,!1,{fileName:aC,lineNumber:110,columnNumber:13},this)]},void 0,!0,{fileName:aC,lineNumber:89,columnNumber:11},this)},void 0,!1,{fileName:aC,lineNumber:88,columnNumber:9},this),(0,R.jsxDEV)(`tbody`,{children:[m.padTop>0&&(0,R.jsxDEV)(`tr`,{"aria-hidden":!0,style:{height:m.padTop},children:(0,R.jsxDEV)(`td`,{colSpan:n.length+1},void 0,!1,{fileName:aC,lineNumber:117,columnNumber:15},this)},void 0,!1,{fileName:aC,lineNumber:116,columnNumber:13},this),e.slice(m.start,m.end).map((e,a)=>(0,R.jsxDEV)(iC,{row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:o===String(e.id),rowRef:a===0?m.measureRow:void 0},String(e.id),!1,{fileName:aC,lineNumber:121,columnNumber:13},this)),m.padBottom>0&&(0,R.jsxDEV)(`tr`,{"aria-hidden":!0,style:{height:m.padBottom},children:(0,R.jsxDEV)(`td`,{colSpan:n.length+1},void 0,!1,{fileName:aC,lineNumber:134,columnNumber:15},this)},void 0,!1,{fileName:aC,lineNumber:133,columnNumber:13},this)]},void 0,!0,{fileName:aC,lineNumber:113,columnNumber:9},this)]},void 0,!0,{fileName:aC,lineNumber:87,columnNumber:7},this)},void 0,!1,{fileName:aC,lineNumber:86,columnNumber:5},this):(0,R.jsxDEV)(`div`,{className:`list:hidden p-4`,children:e.map(e=>(0,R.jsxDEV)(nC,{row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:o===String(e.id)},String(e.id),!1,{fileName:aC,lineNumber:70,columnNumber:11},this))},void 0,!1,{fileName:aC,lineNumber:68,columnNumber:7},this)}mc({kind:`table`,View:sC});var cC=[{pattern:`/`,purpose:`dashboard`},{pattern:`/browse`,purpose:`library browser`},{pattern:`/trash`,purpose:`reversible trash for deleted records`},{pattern:`/settings`,purpose:`settings index`},{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/:pluginId`,purpose:`one plugin's settings`},{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`}],lC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/LoginPage.tsx`,uC=[nn.string({key:`login`,label:`auth.login`,required:!0}),nn.password({key:`password`,label:`auth.password`,required:!0})];function dC(){let{t:e}=a(),{values:t,bridge:n}=Fe({fm:xn(uC),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`login`},initial:{login:``,password:``}}),[r,i]=(0,L.useState)(null),[o,s]=(0,L.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await gr(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,R.jsxDEV)(`main`,{className:`login-page`,children:[(0,R.jsxDEV)(`div`,{className:`login-orb login-orb-one`,"aria-hidden":`true`},void 0,!1,{fileName:lC,lineNumber:45,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`login-orb login-orb-two`,"aria-hidden":`true`},void 0,!1,{fileName:lC,lineNumber:46,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`login-shell`,children:[(0,R.jsxDEV)(`section`,{className:`login-intro`,"aria-label":`Coffer`,children:[(0,R.jsxDEV)(`div`,{className:`login-brand`,children:[(0,R.jsxDEV)(`span`,{className:`login-brand-mark`,"aria-hidden":`true`,children:[(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:lC,lineNumber:52,columnNumber:15},this),(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:lC,lineNumber:53,columnNumber:15},this),(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:lC,lineNumber:54,columnNumber:15},this),(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:lC,lineNumber:55,columnNumber:15},this)]},void 0,!0,{fileName:lC,lineNumber:51,columnNumber:13},this),(0,R.jsxDEV)(`span`,{children:`Coffer`},void 0,!1,{fileName:lC,lineNumber:57,columnNumber:13},this)]},void 0,!0,{fileName:lC,lineNumber:50,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`login-intro-copy`,children:[(0,R.jsxDEV)(`p`,{className:`login-eyebrow`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:lC,lineNumber:60,columnNumber:13},this),(0,R.jsxDEV)(`h2`,{children:e(`auth.welcomeTitle`)},void 0,!1,{fileName:lC,lineNumber:61,columnNumber:13},this),(0,R.jsxDEV)(`p`,{children:e(`auth.welcomeText`)},void 0,!1,{fileName:lC,lineNumber:62,columnNumber:13},this)]},void 0,!0,{fileName:lC,lineNumber:59,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`login-status`,children:[(0,R.jsxDEV)(`span`,{className:`login-status-dot`,"aria-hidden":`true`},void 0,!1,{fileName:lC,lineNumber:65,columnNumber:13},this),(0,R.jsxDEV)(`span`,{children:e(`auth.secureConnection`)},void 0,!1,{fileName:lC,lineNumber:66,columnNumber:13},this)]},void 0,!0,{fileName:lC,lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:lC,lineNumber:49,columnNumber:9},this),(0,R.jsxDEV)(`form`,{onSubmit:c,className:`login-card`,children:[(0,R.jsxDEV)(`div`,{className:`login-card-heading`,children:[(0,R.jsxDEV)(`div`,{className:`login-mobile-brand`,children:`Coffer`},void 0,!1,{fileName:lC,lineNumber:72,columnNumber:13},this),(0,R.jsxDEV)(`p`,{className:`login-card-kicker`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:lC,lineNumber:73,columnNumber:13},this),(0,R.jsxDEV)(`h1`,{children:e(`auth.loginTitle`)},void 0,!1,{fileName:lC,lineNumber:74,columnNumber:13},this),(0,R.jsxDEV)(`p`,{className:`login-card-subtitle`,children:e(`auth.welcomeText`)},void 0,!1,{fileName:lC,lineNumber:75,columnNumber:13},this)]},void 0,!0,{fileName:lC,lineNumber:71,columnNumber:11},this),r&&(0,R.jsxDEV)(`div`,{className:`login-error`,role:`alert`,children:r},void 0,!1,{fileName:lC,lineNumber:77,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`login-fields`,children:(0,R.jsxDEV)(Re,{items:uC,ctx:{bridge:n}},void 0,!1,{fileName:lC,lineNumber:79,columnNumber:13},this)},void 0,!1,{fileName:lC,lineNumber:78,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`submit`,disabled:o,className:`login-submit`,children:[(0,R.jsxDEV)(`span`,{children:o?`…`:e(`auth.signIn`)},void 0,!1,{fileName:lC,lineNumber:82,columnNumber:13},this),!o&&(0,R.jsxDEV)(`span`,{className:`login-submit-arrow`,"aria-hidden":`true`,children:`→`},void 0,!1,{fileName:lC,lineNumber:83,columnNumber:23},this)]},void 0,!0,{fileName:lC,lineNumber:81,columnNumber:11},this),(0,R.jsxDEV)(`p`,{className:`login-footer`,children:e(`auth.secureConnection`)},void 0,!1,{fileName:lC,lineNumber:85,columnNumber:11},this)]},void 0,!0,{fileName:lC,lineNumber:70,columnNumber:9},this)]},void 0,!0,{fileName:lC,lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:lC,lineNumber:44,columnNumber:5},this)}var fC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SetupPage.tsx`,pC=[nn.string({key:`displayName`,label:`auth.displayName`,required:!0}),nn.string({key:`login`,label:`auth.login`,required:!0}),nn.password({key:`password`,label:`auth.password`,required:!0})];function mC(){let{t:e}=a(),{values:t,bridge:n}=Fe({fm:xn(pC),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`setup`},initial:{displayName:``,login:``,password:``}}),[r,i]=(0,L.useState)(null),[o,s]=(0,L.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await cr(t.login,t.password,t.displayName);if(s(!1),!r.ok){i(e(`auth.genericError`));return}window.location.href=`/`}return(0,R.jsxDEV)(`div`,{className:`flex min-h-dvh items-center justify-center bg-bg px-4`,children:(0,R.jsxDEV)(`form`,{onSubmit:c,className:`w-full max-w-sm rounded-2xl border border-border bg-card p-6`,children:[(0,R.jsxDEV)(`h1`,{className:`mb-6 text-xl font-bold text-text`,children:e(`auth.setupTitle`)},void 0,!1,{fileName:fC,lineNumber:47,columnNumber:9},this),r&&(0,R.jsxDEV)(`div`,{className:`mb-4 rounded-lg border border-danger/40 bg-danger/10 px-3 py-2 text-sm text-danger`,children:r},void 0,!1,{fileName:fC,lineNumber:48,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`mb-5 flex flex-col gap-3`,children:(0,R.jsxDEV)(Re,{items:pC,ctx:{bridge:n}},void 0,!1,{fileName:fC,lineNumber:50,columnNumber:11},this)},void 0,!1,{fileName:fC,lineNumber:49,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`submit`,disabled:o,className:`w-full`,children:e(`auth.createAccount`)},void 0,!1,{fileName:fC,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:fC,lineNumber:46,columnNumber:7},this)},void 0,!1,{fileName:fC,lineNumber:45,columnNumber:5},this)}var hC=null,gC=null;function _C(){let[e,t]=(0,L.useState)(hC);return(0,L.useEffect)(()=>{if(hC){t(hC);return}let e=!0;return gC??=fetch(`/api/libraries`).then(e=>e.json()).then(e=>hC=new Set(e.map(e=>e.id))),gC.then(n=>e&&t(n)).catch(()=>e&&t(null)),()=>{e=!1}},[]),e}var vC=`coffer-collapsed-libraries`;function yC(){try{let e=localStorage.getItem(vC);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function bC(){let[e,t]=(0,L.useState)(()=>yC());return{collapsed:e,toggle:(0,L.useCallback)(e=>{t(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{localStorage.setItem(vC,JSON.stringify([...n]))}catch{}return n})},[])}}var xC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/LanguageSwitcher.tsx`,SC=[{code:`uk`,label:`Українська`,short:`UA`},{code:`ru`,label:`Русский`,short:`RU`},{code:`en`,label:`English`,short:`EN`}];function CC({direction:e=`up`,compact:t=!1}){let{i18n:n}=a(),r=SC.find(e=>e.code===n.language)??SC[0];function i(e){n.changeLanguage(e);try{localStorage.setItem(`lang`,e)}catch{}fetch(`/api/plugins/core/settings`,{method:`PUT`,headers:{"Content-Type":`application/json`},body:JSON.stringify({language:e})}).catch(()=>{})}return(0,R.jsxDEV)(Je,{children:[(0,R.jsxDEV)(Ye,{className:`flex items-center rounded-xl text-sm text-muted outline-none transition-colors hover:bg-elevated hover:text-text focus-visible:ring-2 focus-visible:ring-ring ${t?`w-full flex-col gap-0.5 py-2`:`w-full gap-2 px-3 py-2`}`,children:[(0,R.jsxDEV)(ge,{size:t?18:16},void 0,!1,{fileName:xC,lineNumber:49,columnNumber:9},this),t?(0,R.jsxDEV)(`span`,{className:`text-[10px] font-semibold`,children:r.short},void 0,!1,{fileName:xC,lineNumber:51,columnNumber:11},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`span`,{className:`flex-1 text-left`,children:r.label},void 0,!1,{fileName:xC,lineNumber:54,columnNumber:13},this),(0,R.jsxDEV)(`span`,{className:`text-xs font-semibold text-muted`,children:r.short},void 0,!1,{fileName:xC,lineNumber:55,columnNumber:13},this)]},void 0,!0,{fileName:xC,lineNumber:53,columnNumber:11},this)]},void 0,!0,{fileName:xC,lineNumber:44,columnNumber:7},this),(0,R.jsxDEV)(Ke,{align:`end`,side:e===`up`?`top`:`bottom`,children:SC.map(e=>(0,R.jsxDEV)(We,{onSelect:()=>i(e.code),className:e.code===r.code?`text-accent`:``,children:[(0,R.jsxDEV)(`span`,{className:`flex-1 text-left`,children:e.label},void 0,!1,{fileName:xC,lineNumber:66,columnNumber:13},this),(0,R.jsxDEV)(Xe,{active:e.code===r.code},void 0,!1,{fileName:xC,lineNumber:67,columnNumber:13},this)]},e.code,!0,{fileName:xC,lineNumber:61,columnNumber:11},this))},void 0,!1,{fileName:xC,lineNumber:59,columnNumber:7},this)]},void 0,!0,{fileName:xC,lineNumber:43,columnNumber:5},this)}var wC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/SidebarNav.tsx`;function TC({onSearchOpen:e}){let{t}=a(),n=_C(),{collapsed:r,toggle:i}=bC(),o=Pe();return(0,R.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,R.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto px-3 py-4`,children:[(0,R.jsxDEV)(l,{to:`/`,className:`flex items-center gap-2 mb-4 px-2 group`,title:t(`nav.home`),children:[(0,R.jsxDEV)(`div`,{className:`w-7 h-7 bg-accent rounded-lg flex items-center justify-center text-white text-xs font-bold`,children:`S`},void 0,!1,{fileName:wC,lineNumber:25,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`font-bold text-text group-hover:text-accent transition-colors`,children:`Coffer`},void 0,!1,{fileName:wC,lineNumber:28,columnNumber:11},this)]},void 0,!0,{fileName:wC,lineNumber:24,columnNumber:9},this),(0,R.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,R.jsxDEV)(me,{size:14,className:`shrink-0`},void 0,!1,{fileName:wC,lineNumber:37,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`flex-1 text-left truncate`,children:t(`search.title`)},void 0,!1,{fileName:wC,lineNumber:38,columnNumber:11},this),(0,R.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:wC,lineNumber:39,columnNumber:11},this)]},void 0,!0,{fileName:wC,lineNumber:30,columnNumber:9},this),o.filter(e=>!n||n.has(e.meta.id)).map(e=>{let n=r.has(e.meta.id);return(0,R.jsxDEV)(`div`,{className:`mb-0.5`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>i(e.meta.id),className:`flex w-full items-center justify-between px-3 py-1.5 rounded-lg text-[10px] font-semibold text-muted uppercase tracking-widest hover:bg-elevated hover:text-text transition-colors`,children:[(0,R.jsxDEV)(`span`,{className:`truncate`,children:t(e.meta.label)},void 0,!1,{fileName:wC,lineNumber:54,columnNumber:19},this),(0,R.jsxDEV)(k,{size:13,className:`shrink-0 transition-transform ${n?`-rotate-90`:``}`},void 0,!1,{fileName:wC,lineNumber:55,columnNumber:19},this)]},void 0,!0,{fileName:wC,lineNumber:49,columnNumber:17},this),!n&&e.shelves.filter(e=>e.standalone!==!1).map(e=>(0,R.jsxDEV)(l,{to:`/${e.library}/${e.shelf}`,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm mb-px transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(Te,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:wC,lineNumber:74,columnNumber:25},this),t(e.label)]},e.shelf,!0,{fileName:wC,lineNumber:64,columnNumber:23},this))]},e.meta.id,!0,{fileName:wC,lineNumber:48,columnNumber:15},this)}),Pn().map(e=>(0,R.jsxDEV)(l,{to:e.to,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm mb-px transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(Te,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:wC,lineNumber:90,columnNumber:13},this),t(e.labelKey)]},e.to,!0,{fileName:wC,lineNumber:82,columnNumber:11},this)),(0,R.jsxDEV)(l,{to:`/trash`,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm mb-px transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(Te,{name:`lucide:trash-2`,size:17,className:`shrink-0`},void 0,!1,{fileName:wC,lineNumber:101,columnNumber:11},this),` `,t(`nav.trash`)]},void 0,!0,{fileName:wC,lineNumber:94,columnNumber:9},this)]},void 0,!0,{fileName:wC,lineNumber:23,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`border-t border-border p-2 space-y-1`,children:[(0,R.jsxDEV)(CC,{direction:`up`},void 0,!1,{fileName:wC,lineNumber:106,columnNumber:9},this),(0,R.jsxDEV)(Qe,{},void 0,!1,{fileName:wC,lineNumber:107,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/settings`,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(Te,{name:`lucide:settings`,size:17,className:`shrink-0`},void 0,!1,{fileName:wC,lineNumber:115,columnNumber:11},this),` `,t(`nav.settings`)]},void 0,!0,{fileName:wC,lineNumber:108,columnNumber:9},this)]},void 0,!0,{fileName:wC,lineNumber:105,columnNumber:7},this)]},void 0,!0,{fileName:wC,lineNumber:22,columnNumber:5},this)}var EC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/BottomNav.tsx`;function DC({onSearchOpen:e}){let{t}=a();return(0,R.jsxDEV)(`nav`,{className:`nav:hidden fixed bottom-0 left-0 right-0 z-40 border-t border-border bg-surface pb-safe`,children:(0,R.jsxDEV)(`div`,{className:`flex items-stretch`,children:[(0,R.jsxDEV)(l,{to:`/`,end:!0,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(he,{size:20,className:`shrink-0`},void 0,!1,{fileName:EC,lineNumber:22,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.home`)},void 0,!1,{fileName:EC,lineNumber:23,columnNumber:11},this)]},void 0,!0,{fileName:EC,lineNumber:14,columnNumber:9},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:e,className:`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors text-muted hover:text-text`,children:[(0,R.jsxDEV)(me,{size:20,className:`shrink-0`},void 0,!1,{fileName:EC,lineNumber:30,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.search`)},void 0,!1,{fileName:EC,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:EC,lineNumber:25,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/browse`,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(As,{size:20,className:`shrink-0`},void 0,!1,{fileName:EC,lineNumber:40,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.browse`)},void 0,!1,{fileName:EC,lineNumber:41,columnNumber:11},this)]},void 0,!0,{fileName:EC,lineNumber:33,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/settings`,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(_e,{size:20,className:`shrink-0`},void 0,!1,{fileName:EC,lineNumber:50,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.settings`)},void 0,!1,{fileName:EC,lineNumber:51,columnNumber:11},this)]},void 0,!0,{fileName:EC,lineNumber:43,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/trash`,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(be,{size:20,className:`shrink-0`},void 0,!1,{fileName:EC,lineNumber:60,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.trash`)},void 0,!1,{fileName:EC,lineNumber:61,columnNumber:11},this)]},void 0,!0,{fileName:EC,lineNumber:53,columnNumber:9},this)]},void 0,!0,{fileName:EC,lineNumber:13,columnNumber:7},this)},void 0,!1,{fileName:EC,lineNumber:12,columnNumber:5},this)}var OC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/CommandPalette.tsx`;function kC({open:e,onClose:t}){let{t:n}=a(),r=u(),i=_C(),[o,s]=(0,L.useState)(``),[c,l]=(0,L.useState)([]),[d,f]=(0,L.useState)(!1),[p,m]=(0,L.useState)(0),h=(0,L.useRef)(null);(0,L.useEffect)(()=>{e&&(s(``),l([]),m(0),setTimeout(()=>h.current?.focus(),50))},[e]),(0,L.useEffect)(()=>{if(o.length<2){l([]);return}let e=setTimeout(async()=>{f(!0);try{let e=await fetch(`/api/search?q=${encodeURIComponent(o)}&limit=15`);l(e.ok?await e.json():[])}catch{l([])}finally{f(!1)}},250);return()=>clearTimeout(e)},[o]);let g=Pe().filter(e=>!i||i.has(e.meta.id)).flatMap(e=>e.shelves.filter(e=>e.standalone!==!1).map(t=>({v:e,m:t}))),_=g.filter(({m:e})=>!o||n(e.label).toLowerCase().includes(o.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}`})),v=c.map(e=>{let t=g.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}`}}),y=o.length>=2?[...v,..._.slice(0,5)]:_,b=y.length>0?Math.min(p,y.length-1):0;function x(e){r(e.to),t()}function S(e){if(e.key===`Escape`){t();return}e.key===`ArrowDown`&&(e.preventDefault(),m(e=>Math.min(e+1,y.length-1))),e.key===`ArrowUp`&&(e.preventDefault(),m(e=>Math.max(e-1,0))),e.key===`Enter`&&y[b]&&x(y[b])}if(!e)return null;let C=o.length<2,T=o.length>=2&&v.length>0,E=o.length>=2&&_.length>0,D=y.length===0&&!d;return(0,R.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,R.jsxDEV)(`div`,{className:`absolute inset-0 bg-bg/70 backdrop-blur-sm`,onClick:t},void 0,!1,{fileName:OC,lineNumber:141,columnNumber:7},this),(0,R.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,R.jsxDEV)(`div`,{className:`px-4 pt-3 pb-1 text-[10px] font-semibold text-muted uppercase tracking-wider`,children:n(`search.title`)},void 0,!1,{fileName:OC,lineNumber:150,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 px-4 py-3 border-b border-border`,children:[(0,R.jsxDEV)(me,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:OC,lineNumber:155,columnNumber:11},this),(0,R.jsxDEV)(`input`,{ref:h,type:`text`,value:o,onChange:e=>{s(e.target.value),m(0)},onKeyDown:S,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:OC,lineNumber:156,columnNumber:11},this),d&&(0,R.jsxDEV)(`span`,{className:`text-xs text-muted`,children:n(`common.loading`)},void 0,!1,{fileName:OC,lineNumber:169,columnNumber:23},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:t,className:`text-muted hover:text-text transition-colors`,children:(0,R.jsxDEV)(w,{size:16},void 0,!1,{fileName:OC,lineNumber:171,columnNumber:13},this)},void 0,!1,{fileName:OC,lineNumber:170,columnNumber:11},this)]},void 0,!0,{fileName:OC,lineNumber:154,columnNumber:9},this),(0,R.jsxDEV)(`ul`,{className:`max-h-80 overflow-y-auto py-1`,children:[D&&o.length>=2&&(0,R.jsxDEV)(`li`,{className:`px-4 py-6 text-center text-muted text-sm`,children:n(`search.noResults`)},void 0,!1,{fileName:OC,lineNumber:178,columnNumber:13},this),C&&(0,R.jsxDEV)(`li`,{className:`px-4 py-1.5 text-[10px] font-semibold text-muted uppercase tracking-wider`,children:n(`search.allShelves`)},void 0,!1,{fileName:OC,lineNumber:181,columnNumber:13},this),T&&(0,R.jsxDEV)(`li`,{className:`px-4 py-1.5 text-[10px] font-semibold text-muted uppercase tracking-wider`,children:n(`search.results`)},void 0,!1,{fileName:OC,lineNumber:186,columnNumber:13},this),y.map((e,t)=>(0,R.jsxDEV)(`li`,{children:[o.length>=2&&t>=v.length&&t===v.length&&E&&(0,R.jsxDEV)(`div`,{className:`px-4 py-1.5 text-[10px] font-semibold text-muted uppercase tracking-wider border-t border-border mt-1 pt-2`,children:n(`search.allShelves`)},void 0,!1,{fileName:OC,lineNumber:196,columnNumber:19},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>x(e),onMouseEnter:()=>m(t),className:`w-full flex items-center gap-3 px-4 py-2 text-left transition-colors ${t===b?`bg-accent/15 text-text`:`text-text hover:bg-elevated`}`,children:[e.icon&&(0,R.jsxDEV)(Te,{name:e.icon,size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:OC,lineNumber:208,columnNumber:33},this),(0,R.jsxDEV)(`span`,{className:`flex-1 min-w-0`,children:[(0,R.jsxDEV)(`span`,{className:`block text-sm font-medium truncate`,children:e.label},void 0,!1,{fileName:OC,lineNumber:210,columnNumber:21},this),e.sub&&(0,R.jsxDEV)(`span`,{className:`block text-xs text-muted truncate`,children:e.sub},void 0,!1,{fileName:OC,lineNumber:211,columnNumber:34},this)]},void 0,!0,{fileName:OC,lineNumber:209,columnNumber:19},this)]},void 0,!0,{fileName:OC,lineNumber:200,columnNumber:17},this)]},`${e.to}-${t}`,!0,{fileName:OC,lineNumber:194,columnNumber:15},this))]},void 0,!0,{fileName:OC,lineNumber:176,columnNumber:9},this)]},void 0,!0,{fileName:OC,lineNumber:144,columnNumber:7},this)]},void 0,!0,{fileName:OC,lineNumber:132,columnNumber:5},this)}var AC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Dashboard.tsx`;function jC(){let[e,t]=(0,L.useState)({});return(0,L.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 MC(){let{t:e}=a(),t=_C(),n=jC(),r=Pe().filter(e=>!t||t.has(e.meta.id));return(0,R.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,R.jsxDEV)(`div`,{className:`mx-auto max-w-5xl px-5 py-8 md:px-8`,children:[(0,R.jsxDEV)(`h1`,{className:`mb-6 text-[28px] font-bold text-text`,children:e(`dashboard.title`)},void 0,!1,{fileName:AC,lineNumber:31,columnNumber:9},this),r.length===0?(0,R.jsxDEV)(`p`,{className:`text-muted`,children:e(`dashboard.empty`)},void 0,!1,{fileName:AC,lineNumber:33,columnNumber:11},this):(0,R.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:r.map(t=>{let r=t.shelves.filter(e=>e.standalone!==!1);return r.length===0?null:(0,R.jsxDEV)(`section`,{className:`rounded-2xl border border-border bg-surface p-4`,children:[(0,R.jsxDEV)(`h2`,{className:`mb-3 flex items-center gap-2 text-sm font-semibold uppercase tracking-wide text-muted`,children:[t.meta.icon&&(0,R.jsxDEV)(Te,{name:t.meta.icon,size:16,className:`shrink-0`},void 0,!1,{fileName:AC,lineNumber:42,columnNumber:37},this),e(t.meta.label)]},void 0,!0,{fileName:AC,lineNumber:41,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:r.map(t=>(0,R.jsxDEV)(l,{to:`/${t.library}/${t.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,R.jsxDEV)(Te,{name:t.icon,size:17,className:`shrink-0 text-muted`},void 0,!1,{fileName:AC,lineNumber:52,columnNumber:25},this),(0,R.jsxDEV)(`span`,{className:`flex-1 truncate`,children:e(t.label)},void 0,!1,{fileName:AC,lineNumber:53,columnNumber:25},this),(0,R.jsxDEV)(`span`,{className:`shrink-0 rounded-full bg-accent/15 px-2 py-0.5 text-xs font-medium tabular-nums text-accent`,children:n[`${t.library}/${t.shelf}`]??`·`},void 0,!1,{fileName:AC,lineNumber:54,columnNumber:25},this)]},t.shelf,!0,{fileName:AC,lineNumber:47,columnNumber:23},this))},void 0,!1,{fileName:AC,lineNumber:45,columnNumber:19},this)]},t.meta.id,!0,{fileName:AC,lineNumber:40,columnNumber:17},this)})},void 0,!1,{fileName:AC,lineNumber:35,columnNumber:11},this)]},void 0,!0,{fileName:AC,lineNumber:30,columnNumber:7},this)},void 0,!1,{fileName:AC,lineNumber:29,columnNumber:5},this)}var NC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Browse.tsx`;function PC(){let{t:e}=a(),t=_C(),n=Pe().filter(e=>!t||t.has(e.meta.id));return(0,R.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,R.jsxDEV)(`div`,{className:`mx-auto max-w-2xl px-4 py-6`,children:[(0,R.jsxDEV)(`h1`,{className:`mb-5 text-2xl font-bold text-text`,children:e(`nav.browse`)},void 0,!1,{fileName:NC,lineNumber:17,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-6`,children:n.map(t=>{let n=t.shelves.filter(e=>e.standalone!==!1);return n.length===0?null:(0,R.jsxDEV)(`section`,{children:[(0,R.jsxDEV)(`h2`,{className:`mb-2 flex items-center gap-2 px-1 text-[11px] font-semibold uppercase tracking-widest text-muted`,children:[t.meta.icon&&(0,R.jsxDEV)(Te,{name:t.meta.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:NC,lineNumber:25,columnNumber:35},this),e(t.meta.label)]},void 0,!0,{fileName:NC,lineNumber:24,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`overflow-hidden rounded-2xl border border-border bg-surface`,children:n.map((t,n)=>(0,R.jsxDEV)(l,{to:`/${t.library}/${t.shelf}`,className:`flex items-center gap-3 px-4 py-3 text-text transition-colors hover:bg-elevated ${n>0?`border-t border-border`:``}`,children:[(0,R.jsxDEV)(Te,{name:t.icon,size:20,className:`shrink-0 text-muted`},void 0,!1,{fileName:NC,lineNumber:37,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`flex-1 truncate text-sm font-medium`,children:e(t.label)},void 0,!1,{fileName:NC,lineNumber:38,columnNumber:23},this),(0,R.jsxDEV)(Ss,{size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:NC,lineNumber:39,columnNumber:23},this)]},t.shelf,!0,{fileName:NC,lineNumber:30,columnNumber:21},this))},void 0,!1,{fileName:NC,lineNumber:28,columnNumber:17},this)]},t.meta.id,!0,{fileName:NC,lineNumber:23,columnNumber:15},this)})},void 0,!1,{fileName:NC,lineNumber:18,columnNumber:9},this)]},void 0,!0,{fileName:NC,lineNumber:16,columnNumber:7},this)},void 0,!1,{fileName:NC,lineNumber:15,columnNumber:5},this)}var FC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/TrashPage.tsx`;function IC(e){let t=Pe().flatMap(e=>e.shelves).find(t=>t.library===e.library&&t.shelf===e.shelf);return t?yn(t,e.record):String(e.record.name??e.record.id??``)}function LC(){let{t:e}=a(),[t,n]=(0,L.useState)([]),[r,i]=(0,L.useState)(!0),o=(0,L.useCallback)(async()=>{i(!0);try{n(await vr())}catch{y.error(e(`common.error`))}finally{i(!1)}},[e]);(0,L.useEffect)(()=>{o()},[o]);async function s(t){if(!await Qn(t.library,t.shelf,Number(t.record.id))){y.error(e(`common.error`));return}y.success(e(`trash.restored`)),n(e=>e.filter(e=>e!==t))}async function c(t){if(await Ge({title:e(`trash.confirmPurge`),confirmLabel:e(`trash.purge`),variant:`destructive`})){if(!await br(t.library,t.shelf,Number(t.record.id))){y.error(e(`common.error`));return}y.success(e(`trash.purged`)),n(e=>e.filter(e=>e!==t))}}return(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,R.jsxDEV)(Be,{children:(0,R.jsxDEV)(`h1`,{className:`text-2xl font-bold text-text`,children:e(`trash.title`)},void 0,!1,{fileName:FC,lineNumber:66,columnNumber:9},this)},void 0,!1,{fileName:FC,lineNumber:65,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`p-4 sm:p-6 max-w-4xl w-full mx-auto`,children:[(0,R.jsxDEV)(`p`,{className:`text-sm text-muted mb-5`,children:e(`trash.description`)},void 0,!1,{fileName:FC,lineNumber:69,columnNumber:9},this),r?(0,R.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`common.loading`)},void 0,!1,{fileName:FC,lineNumber:71,columnNumber:11},this):t.length===0?(0,R.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`trash.empty`)},void 0,!1,{fileName:FC,lineNumber:73,columnNumber:11},this):(0,R.jsxDEV)(`div`,{className:`space-y-2`,children:t.map(t=>{let n=Number(t.record.id);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-3 rounded-xl border border-border bg-surface px-4 py-3`,children:[(0,R.jsxDEV)(be,{size:18,className:`shrink-0 text-muted`},void 0,!1,{fileName:FC,lineNumber:83,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`truncate font-medium text-text`,children:IC(t)},void 0,!1,{fileName:FC,lineNumber:85,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e(t.label),` · `,t.library,`/`,t.shelf,` · #`,n]},void 0,!0,{fileName:FC,lineNumber:86,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:String(t.record.deleted_at??``)},void 0,!1,{fileName:FC,lineNumber:87,columnNumber:21},this)]},void 0,!0,{fileName:FC,lineNumber:84,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,R.jsxDEV)(F,{variant:`secondary`,size:`sm`,onClick:()=>void s(t),children:[(0,R.jsxDEV)(Ps,{size:15},void 0,!1,{fileName:FC,lineNumber:91,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.restore`)},void 0,!1,{fileName:FC,lineNumber:92,columnNumber:23},this)]},void 0,!0,{fileName:FC,lineNumber:90,columnNumber:21},this),(0,R.jsxDEV)(F,{variant:`destructive`,size:`sm`,onClick:()=>void c(t),children:[(0,R.jsxDEV)(be,{size:15},void 0,!1,{fileName:FC,lineNumber:95,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.purge`)},void 0,!1,{fileName:FC,lineNumber:96,columnNumber:23},this)]},void 0,!0,{fileName:FC,lineNumber:94,columnNumber:21},this)]},void 0,!0,{fileName:FC,lineNumber:89,columnNumber:19},this)]},`${t.library}/${t.shelf}/${n}`,!0,{fileName:FC,lineNumber:79,columnNumber:17},this)})},void 0,!1,{fileName:FC,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:FC,lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:FC,lineNumber:64,columnNumber:5},this)}var RC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/AccountSettingsPage.tsx`,zC=[nn.string({key:`displayName`,label:`auth.fieldDisplayName`}),nn.password({key:`password`,label:`auth.fieldPasswordOptional`}),nn.internalApiToken({key:`apiTokens`,label:`auth.tokensTitle`}),nn.internalOauthGrants({key:`oauthGrants`,label:`auth.grantsTitle`})];function BC(){let{t:e}=a(),[t,n]=(0,L.useState)(!1);async function r(){let e=await hr();return{displayName:e?.displayName??``,password:e?.password??``}}async function i(e){let t=await mr({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 pr()}finally{window.location.href=`/login`}}return(0,R.jsxDEV)(b,{fields:zC,recordCtx:{library:``,shelf:`account`,recordId:`me`},load:r,save:i,title:e(`auth.accountTitle`),backTo:`/settings`,backLabel:e(`settings.title`),footer:(0,R.jsxDEV)(`section`,{className:`mt-10 border-t border-border pt-6`,"aria-labelledby":`account-session-title`,children:[(0,R.jsxDEV)(`h2`,{id:`account-session-title`,className:`mb-1 text-sm font-semibold uppercase tracking-wide text-muted`,children:e(`auth.sessionTitle`)},void 0,!1,{fileName:RC,lineNumber:60,columnNumber:11},this),(0,R.jsxDEV)(qe,{className:`flex items-center justify-between gap-4 px-4 py-3`,children:[(0,R.jsxDEV)(`p`,{className:`min-w-0 text-sm text-muted`,children:e(`auth.logoutDescription`)},void 0,!1,{fileName:RC,lineNumber:64,columnNumber:13},this),(0,R.jsxDEV)(F,{type:`button`,variant:`destructive`,size:`sm`,disabled:t,onClick:o,className:`shrink-0`,children:[(0,R.jsxDEV)(Te,{name:`lucide:log-out`,size:16},void 0,!1,{fileName:RC,lineNumber:73,columnNumber:15},this),e(`auth.logout`)]},void 0,!0,{fileName:RC,lineNumber:65,columnNumber:13},this)]},void 0,!0,{fileName:RC,lineNumber:63,columnNumber:11},this)]},void 0,!0,{fileName:RC,lineNumber:59,columnNumber:9},this)},void 0,!1,{fileName:RC,lineNumber:50,columnNumber:5},this)}var VC=ln({shelf:`users`,library:``,label:`auth.usersTitle`,icon:`lucide:users`,views:{list:{fields:[`login`,`displayName`,`role`,`disabled`]}},fields:[nn.string({key:`login`,label:`auth.fieldLogin`}),nn.string({key:`displayName`,label:`auth.fieldDisplayName`}),nn.select({key:`role`,label:`auth.fieldRole`,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),nn.boolean({key:`disabled`,label:`auth.fieldDisabled`})]});function HC(e){if(!e)return null;let[t,n]=e.split(`:`);return!t||n!==`asc`&&n!==`desc`?null:{key:t,dir:n}}function UC(){let[e,t]=s(),[n,r]=(0,L.useState)(()=>e.get(`q`)??``),[i,a]=(0,L.useState)(n);(0,L.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=HC(e.get(`sort`));function c(e){t(t=>{let n=new URLSearchParams(t),r=HC(n.get(`sort`)),i;return i=!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 l(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:c,setSort:l}}var WC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/shared/Dialog.tsx`;function GC({title:e,onClose:t,children:n}){return(0,R.jsxDEV)(kr,{open:!0,onOpenChange:e=>{e||t()},children:(0,R.jsxDEV)(Dr,{children:[(0,R.jsxDEV)(Er,{children:(0,R.jsxDEV)(Tr,{children:e},void 0,!1,{fileName:WC,lineNumber:24,columnNumber:11},this)},void 0,!1,{fileName:WC,lineNumber:23,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`px-5 pb-5`,children:n},void 0,!1,{fileName:WC,lineNumber:26,columnNumber:9},this)]},void 0,!0,{fileName:WC,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:WC,lineNumber:16,columnNumber:5},this)}var KC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/GroupPanel.tsx`,qC=`__none__`;function JC({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,R.jsxDEV)(`div`,{className:`folder-tree flex flex-col gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`px-1 pt-1`,children:(0,R.jsxDEV)(`div`,{className:`folder-node${l===null?` active`:``}`,onClick:()=>u(null),children:[(0,R.jsxDEV)(`span`,{className:`folder-name`,children:r(`group.all`)},void 0,!1,{fileName:KC,lineNumber:30,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:t},void 0,!1,{fileName:KC,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:KC,lineNumber:29,columnNumber:9},this)},void 0,!1,{fileName:KC,lineNumber:28,columnNumber:7},this),n&&n.keys.length>0&&(0,R.jsxDEV)(`div`,{className:`px-1 list:hidden`,children:[(0,R.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`list.sortBy`)},void 0,!1,{fileName:KC,lineNumber:39,columnNumber:11},this),(0,R.jsxDEV)(nt,{value:n.value?`${n.value.key}:${n.value.dir}`:qC,onValueChange:e=>{if(e===qC)return n.onChange(null);let[t,r]=e.split(`:`);n.onChange({key:t,dir:r})},children:[(0,R.jsxDEV)(it,{className:`h-8 w-full text-sm`,children:(0,R.jsxDEV)(rt,{placeholder:r(`list.sortBy`)},void 0,!1,{fileName:KC,lineNumber:49,columnNumber:15},this)},void 0,!1,{fileName:KC,lineNumber:48,columnNumber:13},this),(0,R.jsxDEV)(Dt,{children:[(0,R.jsxDEV)(st,{value:qC,children:r(`list.sortNone`)},void 0,!1,{fileName:KC,lineNumber:52,columnNumber:15},this),n.keys.flatMap(({key:e,label:t})=>[(0,R.jsxDEV)(st,{value:`${e}:asc`,children:[t,` ↑`]},`${e}:asc`,!0,{fileName:KC,lineNumber:54,columnNumber:17},this),(0,R.jsxDEV)(st,{value:`${e}:desc`,children:[t,` ↓`]},`${e}:desc`,!0,{fileName:KC,lineNumber:57,columnNumber:17},this)])]},void 0,!0,{fileName:KC,lineNumber:51,columnNumber:13},this)]},void 0,!0,{fileName:KC,lineNumber:40,columnNumber:11},this)]},void 0,!0,{fileName:KC,lineNumber:38,columnNumber:9},this),i.length>0&&(0,R.jsxDEV)(`div`,{className:`px-1`,children:[(0,R.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`group.field`)},void 0,!1,{fileName:KC,lineNumber:69,columnNumber:11},this),(0,R.jsxDEV)(nt,{value:o??void 0,onValueChange:s,children:[(0,R.jsxDEV)(it,{className:`h-8 w-full text-sm`,children:(0,R.jsxDEV)(rt,{placeholder:r(`group.field`)},void 0,!1,{fileName:KC,lineNumber:72,columnNumber:15},this)},void 0,!1,{fileName:KC,lineNumber:71,columnNumber:13},this),(0,R.jsxDEV)(Dt,{children:i.map(e=>(0,R.jsxDEV)(st,{value:e.key,children:e.label},e.key,!1,{fileName:KC,lineNumber:76,columnNumber:17},this))},void 0,!1,{fileName:KC,lineNumber:74,columnNumber:13},this)]},void 0,!0,{fileName:KC,lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:KC,lineNumber:68,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`folder-tree-scroll`,children:(0,R.jsxDEV)(`div`,{className:`folder-tree-nodes`,children:c.map(e=>(0,R.jsxDEV)(`div`,{className:`folder-node${l===e.key?` active`:``}`,title:e.label,onClick:()=>u(e.key),children:[(0,R.jsxDEV)(`span`,{className:`folder-name truncate`,children:e.label},void 0,!1,{fileName:KC,lineNumber:95,columnNumber:15},this),(0,R.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:e.count},void 0,!1,{fileName:KC,lineNumber:96,columnNumber:15},this)]},e.key,!0,{fileName:KC,lineNumber:89,columnNumber:13},this))},void 0,!1,{fileName:KC,lineNumber:87,columnNumber:9},this)},void 0,!1,{fileName:KC,lineNumber:86,columnNumber:7},this)]},void 0,!0,{fileName:KC,lineNumber:26,columnNumber:5},this)}function YC(e,t){let{t:n}=a(),r=t?xn(e.fields)[t]:void 0,i=r?.prim===`relation`?r.relation:void 0,o=r?.hints?.displayKey??`name`,{labelMap:s}=Sv(i?.library??``,i?.shelf??``,o);return(0,L.useMemo)(()=>({t:n,labelMap:s}),[n,s])}function XC(e,t,n,r,i){let a=new Map,o=0;for(let i of t){let t=Cr(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=[...a.entries()].map(([e,{label:t,n}])=>({key:e,label:t,count:n})).sort((e,t)=>t.count-e.count||e.label.localeCompare(t.label));return o>0&&s.push({key:ZC,label:i,count:o}),s}var ZC=`\0__none__`;function QC(e,t){let{t:n}=a(),r=xn(e.fields),i=(0,L.useMemo)(()=>dn(e).filter(e=>r[e]),[e,r]),o=(0,L.useMemo)(()=>i.map(e=>({key:e,label:r[e]?n(r[e].label):e})),[i,r,n]),[c,l]=s(),u=c.get(`groupBy`),d=c.get(`groupItem`)??null,f=(0,L.useMemo)(()=>{if(u&&i.includes(u))return u;let t=hn(e);return t&&i.includes(t)?t:i[0]??null},[u,i,e]),p=YC(e,f);return{fields:o,field:f,setField:e=>{l(t=>{let n=new URLSearchParams(t);return n.set(`groupBy`,e),n.delete(`groupItem`),n},{replace:!0})},facets:(0,L.useMemo)(()=>{if(!f)return[];let e=r[f];return e?XC(e,t,f,p,n(`group.noValue`)):[]},[f,r,t,p,n]),selected:d,setSelected:e=>{l(t=>{let n=new URLSearchParams(t);return e===null?n.delete(`groupItem`):n.set(`groupItem`,e),n},{replace:!0})},filtered:(0,L.useMemo)(()=>{if(!f||d===null)return t;let e=r[f];return e?d===`\0__none__`?t.filter(t=>Cr(e,t[f],p).length===0):t.filter(t=>Cr(e,t[f],p).some(e=>e.value===d)):t},[t,f,r,d,p])}}function $C(e,t,n,r,i){let a=e=>{if(!r)return String(e[t]??``);let n=Cr(r,e[t],i)[0];return n?.sort??n?.value??``};return[...e].sort((e,t)=>{let r=a(e).localeCompare(a(t),void 0,{numeric:!0,sensitivity:`base`});return n===`asc`?r:-r})}var ew=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/EntityListView.tsx`;function tw({mod:e,hrefBase:t,fetchRows:n,onDelete:r,resetKey:i,cacheKey:o}){let{t:c}=a(),l=u(),[d,f]=(0,L.useState)(null),[p,m]=(0,L.useState)(!1),[h,g]=(0,L.useState)(0),{q:_,setQ:v,debouncedQ:b,sort:x,toggleSort:S,setSort:C}=UC(),[,w]=s(),T=Nt(`panel`,1e3),E=o?`${o}?${b}`:null,[D,O]=(0,L.useState)(()=>E?le(E)?.rows??[]:[]),[k,A]=(0,L.useState)(D.length===0),ee=(0,L.useRef)(0),te=(0,L.useCallback)(async(e=b)=>{let t=o?`${o}?${e}`:null,r=t?le(t):void 0;r&&O(r.rows),A(!r);let i=++ee.current;try{let r=await n(e);if(i!==ee.current)return;O(r),t&&se(t,r)}catch{i===ee.current&&!r&&O([])}finally{i===ee.current&&A(!1)}},[n,b,o]),ne=(0,L.useRef)(null);(0,L.useEffect)(()=>{i!==void 0&&(ne.current!==null&&ne.current!==i&&(v(``),w({},{replace:!0})),ne.current=i)},[i]),(0,L.useEffect)(()=>{te()},[te,h]);let j=QC(e,D),M=YC(e,x?.key??null),re=(0,L.useMemo)(()=>{if(!x)return j.filtered;let t=xn(e.fields)[x.key];return $C(j.filtered,x.key,x.dir,t,M)},[j.filtered,x,e,M]),ie=(0,L.useMemo)(()=>mn(e),[e]),ae=xn(e.fields),oe=(0,L.useMemo)(()=>{let t=pn(e),n=hc(t);if(!n)return console.error(`[list] unknown view '${t}' for ${e.library}/${e.shelf} — showing table`),hc(`table`);let r=n.check?.(e,ie);return r?(console.error(`[list] view '${t}' is not compatible with ${e.library}/${e.shelf}: ${r} — showing table`),hc(`table`)):n},[e,ie]),ce={keys:ie.map(e=>({key:e,label:tC(c,e,ae[e])})),value:x,onChange:C};function ue(){l(`${t}/new`)}let P=(0,L.useCallback)(async e=>{if(!await Ge({title:c(`actions.confirmDelete`),confirmLabel:c(`actions.delete`),variant:`destructive`}))return;f(e);let t=await r(e);if(f(null),!t.ok){y.error(t.error===`last_admin`?c(`auth.lastAdminError`):c(`common.error`));return}o&&(N(o),$S(o)),g(e=>e+1)},[r,c,o]);return(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,R.jsxDEV)(Be,{actions:(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`relative w-[220px] hidden nav:block`,children:[(0,R.jsxDEV)(me,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:ew,lineNumber:189,columnNumber:15},this),(0,R.jsxDEV)(`input`,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:c(`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:ew,lineNumber:190,columnNumber:15},this)]},void 0,!0,{fileName:ew,lineNumber:188,columnNumber:13},this),(0,R.jsxDEV)(F,{variant:`secondary`,size:`icon`,className:`panel:hidden`,onClick:()=>m(!0),children:(0,R.jsxDEV)(Ms,{size:16},void 0,!1,{fileName:ew,lineNumber:201,columnNumber:15},this)},void 0,!1,{fileName:ew,lineNumber:200,columnNumber:13},this),(0,R.jsxDEV)(F,{onClick:ue,children:[(0,R.jsxDEV)(Xt,{size:16},void 0,!1,{fileName:ew,lineNumber:204,columnNumber:15},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:c(`actions.new`)},void 0,!1,{fileName:ew,lineNumber:205,columnNumber:15},this)]},void 0,!0,{fileName:ew,lineNumber:203,columnNumber:13},this)]},void 0,!0,{fileName:ew,lineNumber:186,columnNumber:11},this),children:[(0,R.jsxDEV)(Te,{name:e.icon,size:20,className:`shrink-0 text-text`},void 0,!1,{fileName:ew,lineNumber:210,columnNumber:9},this),(0,R.jsxDEV)(`h1`,{className:`text-base font-bold text-text truncate`,children:c(e.label)},void 0,!1,{fileName:ew,lineNumber:211,columnNumber:9},this),(0,R.jsxDEV)(`span`,{className:`text-xs font-medium bg-accent/15 text-accent rounded-full px-2 py-0.5 tabular-nums shrink-0`,children:re.length},void 0,!1,{fileName:ew,lineNumber:212,columnNumber:9},this),k&&D.length>0&&(0,R.jsxDEV)(Pt,{size:13,className:`animate-spin text-muted shrink-0`,"aria-hidden":!0},void 0,!1,{fileName:ew,lineNumber:216,columnNumber:40},this)]},void 0,!0,{fileName:ew,lineNumber:184,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`flex items-start`,children:[T&&(0,R.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,R.jsxDEV)(`div`,{className:`pt-2`,children:(0,R.jsxDEV)(JC,{grouping:j,total:D.length,sort:ce},void 0,!1,{fileName:ew,lineNumber:225,columnNumber:15},this)},void 0,!1,{fileName:ew,lineNumber:224,columnNumber:13},this)},void 0,!1,{fileName:ew,lineNumber:223,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:re.length===0?k?(0,R.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted`,children:(0,R.jsxDEV)(Pt,{size:28,className:`animate-spin`},void 0,!1,{fileName:ew,lineNumber:237,columnNumber:17},this)},void 0,!1,{fileName:ew,lineNumber:236,columnNumber:15},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center gap-4 py-20 text-muted`,children:[(0,R.jsxDEV)(Te,{name:e.icon,size:48,className:`text-muted`},void 0,!1,{fileName:ew,lineNumber:241,columnNumber:17},this),(0,R.jsxDEV)(`p`,{className:`text-base`,children:c(`list.empty`)},void 0,!1,{fileName:ew,lineNumber:242,columnNumber:17},this),(0,R.jsxDEV)(F,{onClick:ue,children:[(0,R.jsxDEV)(Xt,{size:16},void 0,!1,{fileName:ew,lineNumber:244,columnNumber:19},this),` `,c(`actions.addFirst`)]},void 0,!0,{fileName:ew,lineNumber:243,columnNumber:17},this)]},void 0,!0,{fileName:ew,lineNumber:240,columnNumber:15},this):(0,R.jsxDEV)(oe.View,{rows:re,shelf:e,keys:ie,hrefBase:t,onDelete:P,deletingId:d,sort:x,onToggleSort:S,scrollKey:E??void 0},void 0,!1,{fileName:ew,lineNumber:249,columnNumber:13},this)},void 0,!1,{fileName:ew,lineNumber:231,columnNumber:9},this)]},void 0,!0,{fileName:ew,lineNumber:220,columnNumber:7},this),p&&(0,R.jsxDEV)(GC,{title:c(`group.title`),onClose:()=>m(!1),children:[(0,R.jsxDEV)(`div`,{className:`relative mb-4 nav:hidden`,children:[(0,R.jsxDEV)(me,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:ew,lineNumber:269,columnNumber:13},this),(0,R.jsxDEV)(`input`,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:c(`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:ew,lineNumber:270,columnNumber:13},this)]},void 0,!0,{fileName:ew,lineNumber:268,columnNumber:11},this),(0,R.jsxDEV)(JC,{grouping:j,total:D.length,sort:ce},void 0,!1,{fileName:ew,lineNumber:279,columnNumber:11},this)]},void 0,!0,{fileName:ew,lineNumber:266,columnNumber:9},this)]},void 0,!0,{fileName:ew,lineNumber:182,columnNumber:5},this)}var nw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UsersListPage.tsx`;function rw(){return(0,R.jsxDEV)(tw,{mod:VC,hrefBase:`/settings/users`,fetchRows:async e=>{let t=await xr(e);return t.ok?t.data:[]},onDelete:async e=>{let t=await ar(Number(e));return t.ok?{ok:!0}:t.status===409?{ok:!1,error:`last_admin`}:{ok:!1}}},void 0,!1,{fileName:nw,lineNumber:7,columnNumber:5},this)}var iw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserCreatePage.tsx`,aw=[nn.string({key:`login`,label:`auth.fieldLogin`,required:!0}),nn.string({key:`displayName`,label:`auth.fieldDisplayName`,required:!0}),nn.password({key:`password`,label:`auth.password`,required:!0}),nn.select({key:`role`,label:`auth.fieldRole`,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]})];function ow(){let{t:e}=a(),t=u();async function n(){return{login:``,displayName:``,password:``,role:`member`}}async function r(e){let n=await dr({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,R.jsxDEV)(b,{fields:aw,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:iw,lineNumber:46,columnNumber:5},this)}var sw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserEditPage.tsx`,cw=[nn.string({key:`displayName`,label:`auth.fieldDisplayName`}),nn.select({key:`role`,label:`auth.fieldRole`,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),nn.boolean({key:`disabled`,label:`auth.fieldDisabled`}),nn.password({key:`password`,label:`auth.fieldPasswordOptional`})];function lw(){let{id:e}=_(),{t}=a(),n=Number(e);async function r(){let e=await xr(),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 lr(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,R.jsxDEV)(b,{fields:cw,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:sw,lineNumber:50,columnNumber:5},this)}var uw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/ShelfView.tsx`;function dw(){let{t:e}=a(),{library:t,shelf:n}=_(),r=Pe().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),i=(0,L.useCallback)(async e=>{let r=e?`?q=${encodeURIComponent(e)}`:``;try{return await or(`/api/${t}/${n}${r}`)}catch{return[]}},[t,n]),o=(0,L.useCallback)(async e=>(await _r(t,n,e),{ok:!0}),[t,n]);return!r||r.standalone===!1?(0,R.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:uw,lineNumber:37,columnNumber:44},this):(0,R.jsxDEV)(tw,{mod:r,hrefBase:`/${t}/${n}`,resetKey:`${t}:${n}`,cacheKey:`${t}/${n}`,fetchRows:i,onDelete:o},void 0,!1,{fileName:uw,lineNumber:40,columnNumber:5},this)}function fw(e,t){let n={muted:[]};for(let[r,i]of vn(e.fields)){if(i.virtual||Cn(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 pw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/display/index.tsx`;function mw(e){return e!=null&&e!==``}function hw(e,t,n,r,i){return e||!n?Promise.resolve(void 0):t(()=>n(r,i))}var gw=new Set([`image`,`media`,`poster`,`cover`]);function _w({field:e,fieldKey:t,label:n,value:r,recordCtx:i,onChange:a,editAll:o}){return o?(0,R.jsxDEV)(Sr,{field:e,fieldKey:t,label:n,value:r,mode:`edit`,recordCtx:i,onChange:a},void 0,!1,{fileName:pw,lineNumber:102,columnNumber:7},this):gw.has(e.kind)?fy(r).length?(0,R.jsxDEV)(`div`,{className:`group/field relative`,children:(0,R.jsxDEV)(vy,{value:r,banner:!0},void 0,!1,{fileName:pw,lineNumber:146,columnNumber:7},this)},void 0,!1,{fileName:pw,lineNumber:145,columnNumber:5},this):(0,R.jsxDEV)(Sr,{field:e,fieldKey:t,label:n,value:r,mode:`view`,recordCtx:i,onChange:a},void 0,!1,{fileName:pw,lineNumber:131,columnNumber:7},this):(0,R.jsxDEV)(Sr,{field:e,fieldKey:t,label:n,value:r,mode:`view`,recordCtx:i,onChange:a},void 0,!1,{fileName:pw,lineNumber:115,columnNumber:7},this)}function vw(e,t,n,r){let{t:i}=a(),[o,s]=(0,L.useState)(!1),[c,l]=(0,L.useState)({}),[u,d]=(0,L.useState)({}),[f,p]=(0,L.useState)(!1),m=t=>t in c?c[t]:e?.[t],h=(e,t)=>l(n=>({...n,[e]:t})),g=(e,t,n)=>u[e]&&t in u[e]?u[e][t]:n?.[t],_=(e,t,n)=>d(r=>({...r,[e]:{...r[e],[t]:n}}));async function v(){if(!t)return;p(!0);let e=y.loading(i(`save.saving`)),a;if(r){let e={...c};for(let[t,n]of Object.entries(u))Object.keys(n).length&&(e[`_extend_${t}`]=n);Object.keys(e).length&&(a=await r(e)??void 0)}else{for(let[e,n]of Object.entries(c))a??=await t(e,n)??void 0;if(n)for(let[e,t]of Object.entries(u))for(let[r,i]of Object.entries(t))a??=await n(e,r,i)??void 0}if(p(!1),a){y.error(a,{id:e});return}y.success(i(`save.done`),{id:e}),s(!1),l({}),d({})}return{editAll:o,savingAll:f,startAll:()=>{l({}),d({}),s(!0)},cancelAll:()=>{s(!1),l({}),d({})},saveAll:v,baseVal:m,setBaseDraft:h,extVal:g,setExtDraft:_}}function yw({shelf:e,record:t,onUpdate:n,onUpdateExtend:r,edit:i,errorAt:o=(()=>void 0)}){let{t:s}=a(),{saving:c,run:l}=iv(),u=xn(e.fields),d=e=>{let t=u[e];return t?.label?s(t.label):e},f=(e,t)=>{let n=u[e]?.options?.find(e=>e.value===String(t));return n?s(n.title):String(t)},p=_n(e),m=(0,L.useMemo)(()=>u[p]??{kind:`text`,label:`core.fields.name`,required:!1,prim:`text`,hints:{},column:`text`,zod:void 0},[u,p]),h=!!n,g={library:e.library,shelf:e.shelf,recordId:String(t.id)},_=(0,L.useMemo)(()=>{let n={...t};if(i?.editAll)for(let[t]of vn(e.fields))n[t]=i.baseVal(t);return n},[t,i?.editAll,i?.baseVal,e.fields]),v=(0,L.useMemo)(()=>fw(e,_),[e,_]),y=(0,L.useMemo)(()=>new Set([v.cover?.key,v.avatar?.key,...v.muted.map(e=>e.key)].filter(Boolean)),[v]),b=i?.editAll?`edit`:`view`,x=e=>i?.editAll?i.baseVal(e):t[e],S=!!(v.cover&&!i?.editAll&&gw.has(v.cover.field.kind)&&fy(x(v.cover.key)).length>0),C=e=>i?.editAll?t=>i.setBaseDraft(e,t):n?t=>hw(c,l,n,e,t):void 0,w={bridge:{mode:i?.editAll?`edit`:`view`,recordCtx:g,values:_,getValue:e=>i?.editAll?i.baseVal(e):t[e],setValue:(e,t)=>{i?.editAll?i.setBaseDraft(e,t):hw(c,l,n,e,t)},isHidden:e=>{if(e===p||y.has(e))return!0;let t=u[e];return!!(t?.virtual||Cn(t?.hidden,_))},requiredOf:e=>Cn(u[e]?.required,_),error:e=>o([e]),touch:()=>{}}},T=(0,L.useMemo)(()=>Le(e.library,e.shelf).map(e=>({ext:e,data:t._extends?.[e.id]})).filter(({ext:e,data:t})=>t!=null&&vn(e.fields).some(([e])=>mw(t[e]))||e.showWhen!=null&&cn(e.showWhen,_)),[e.library,e.shelf,t,_]);return(0,R.jsxDEV)(ze.Provider,{value:o,children:(0,R.jsxDEV)(`article`,{className:`max-w-7xl mx-auto px-5 py-8 md:px-8 md:py-10 flex flex-col ${Ht}`,children:[v.cover&&(0,R.jsxDEV)(`div`,{className:S?`-mx-5 -mt-8 md:-mx-8 md:-mt-10`:``,children:(0,R.jsxDEV)(_w,{field:v.cover.field,fieldKey:v.cover.key,label:d(v.cover.key),value:x(v.cover.key),recordCtx:g,onChange:C(v.cover.key),editAll:i?.editAll},void 0,!1,{fileName:pw,lineNumber:380,columnNumber:11},this)},void 0,!1,{fileName:pw,lineNumber:379,columnNumber:9},this),(0,R.jsxDEV)(`header`,{className:`flex items-center gap-4`,role:`heading`,"aria-level":1,children:[v.avatar&&(0,R.jsxDEV)(`div`,{className:`shrink-0`,children:(0,R.jsxDEV)(Sr,{field:v.avatar.field,fieldKey:v.avatar.key,label:d(v.avatar.key),value:x(v.avatar.key),mode:b,recordCtx:g,onChange:C(v.avatar.key)},void 0,!1,{fileName:pw,lineNumber:397,columnNumber:13},this)},void 0,!1,{fileName:pw,lineNumber:396,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,R.jsxDEV)(Sr,{field:m,fieldKey:p,value:x(p),mode:b,recordCtx:g,onChange:C(p)},void 0,!1,{fileName:pw,lineNumber:409,columnNumber:11},this)},void 0,!1,{fileName:pw,lineNumber:408,columnNumber:9},this)]},void 0,!0,{fileName:pw,lineNumber:394,columnNumber:7},this),(0,R.jsxDEV)(Re,{items:e.fields,ctx:w},void 0,!1,{fileName:pw,lineNumber:421,columnNumber:7},this),T.map(({ext:n,data:a})=>(0,R.jsxDEV)(bw,{ext:n,data:a,m:e,recordId:String(t.id),editable:h,edit:i,onUpdateExtend:r,fieldLabelOf:d,valueLabelOf:f},n.id,!1,{fileName:pw,lineNumber:426,columnNumber:9},this)),v.muted.length>0&&(0,R.jsxDEV)(`div`,{className:`border-t border-border pt-3 flex flex-col gap-1.5`,children:v.muted.map(({key:e,field:t})=>(0,R.jsxDEV)(Sr,{field:t,fieldKey:e,label:d(e),value:x(e),mode:b,recordCtx:g,onChange:C(e)},e,!1,{fileName:pw,lineNumber:444,columnNumber:13},this))},void 0,!1,{fileName:pw,lineNumber:442,columnNumber:9},this)]},void 0,!0,{fileName:pw,lineNumber:374,columnNumber:5},this)},void 0,!1,{fileName:pw,lineNumber:373,columnNumber:5},this)}function bw({ext:e,data:t,m:n,recordId:r,editable:i,edit:o,onUpdateExtend:s,fieldLabelOf:c,valueLabelOf:l}){let{t:u}=a(),{saving:d,run:f}=iv(),p=o?.editAll?`edit`:`view`,m=Re({items:e.fields,ctx:{renderField:(a,c)=>c.virtual||!i&&!mw(t?.[a])?null:(0,R.jsxDEV)(Sr,{field:c,fieldKey:a,extId:e.id,value:o?.editAll?o.extVal(e.id,a,t):t?.[a],label:c.label?u(c.label):void 0,required:c.required===!0,mode:p,recordCtx:{library:n.library,shelf:n.shelf,recordId:r},onChange:o?.editAll?t=>o.setExtDraft(e.id,a,t):s?t=>hw(d,f,(t,n)=>s(e.id,t,n),a,t):void 0},void 0,!1,{fileName:pw,lineNumber:502,columnNumber:9},this),renderGroup:(a,c)=>{let l=o?.editAll?o.extVal(e.id,a,t):t?.[a];if(!i&&!mw(l))return null;let u=On({kind:jn(c)});return u?(0,R.jsxDEV)(u.Page,{el:c,value:l,mode:p,recordCtx:{library:n.library,shelf:n.shelf,recordId:r},onChange:o?.editAll?t=>o.setExtDraft(e.id,a,t):s?t=>hw(d,f,(t,n)=>s(e.id,t,n),a,t):void 0},void 0,!1,{fileName:pw,lineNumber:527,columnNumber:9},this):null}}});return m==null?null:(0,R.jsxDEV)(`div`,{className:`border-t border-border pt-6`,children:(0,R.jsxDEV)(Me,{label:u(e.label),icon:e.icon??`lucide:puzzle`,rail:!1,tone:`section`,labelAfter:(0,R.jsxDEV)(pe,{ext:e,fieldLabel:c,valueLabel:l},void 0,!1,{fileName:pw,lineNumber:556,columnNumber:21},this),children:m},void 0,!1,{fileName:pw,lineNumber:551,columnNumber:7},this)},void 0,!1,{fileName:pw,lineNumber:550,columnNumber:5},this)}function xw(e){return c(()=>import(e),[])}var Sw=Object.assign({"../plugin-claude-agent/src/index.ts":()=>c(()=>import(`./src-CaN2oqQE.js`),__vite__mapDeps([28,29,1,30,31])),"../plugin-console/src/index.ts":()=>c(()=>import(`./src-DtIj8-CE.js`),__vite__mapDeps([32,29,1,30,31])),"../plugin-core/src/index.ts":()=>c(()=>import(`./src-D49LGQ58.js`),__vite__mapDeps([33,34,29,1,35,30,31])),"../plugin-devices/src/index.ts":()=>c(()=>import(`./src-UycGO1Ve.js`),__vite__mapDeps([36,37,29,1,38,39,40,30,31])),"../plugin-documents/src/index.ts":()=>c(()=>import(`./src-CJE27ksq.js`),__vite__mapDeps([41,29,1,39,40,30])),"../plugin-drone/src/index.ts":()=>c(()=>import(`./src-qmUWHIuy.js`),__vite__mapDeps([42,29,1,40,39,30])),"../plugin-finance/src/index.ts":()=>c(()=>import(`./src-BpfdeepB.js`),__vite__mapDeps([43,44,29,1,39,40,30,31])),"../plugin-garden/src/index.ts":()=>c(()=>import(`./src-B_SQm4m2.js`),__vite__mapDeps([45,29,1,39,30])),"../plugin-geo/src/index.ts":()=>c(()=>import(`./src-DNRPYtVW.js`),__vite__mapDeps([46,30])),"../plugin-health/src/index.ts":()=>c(()=>import(`./src-CEzuKpEh.js`),__vite__mapDeps([47,29,1,39,40,30,31])),"../plugin-home/src/index.ts":()=>c(()=>import(`./src-2_pykFU4.js`),__vite__mapDeps([48,29,1,39,30])),"../plugin-http/src/index.ts":()=>c(()=>import(`./src-Ba-jB65j.js`),__vite__mapDeps([49,29,1,30,31])),"../plugin-kitchen/src/index.ts":()=>c(()=>import(`./src-BKiejyjC.js`),__vite__mapDeps([50,29,1,39,30])),"../plugin-lab/src/index.ts":()=>c(()=>import(`./src-D8vyOddU.js`),__vite__mapDeps([51,29,1,39,40,30,31,38,37,44])),"../plugin-media/src/index.ts":()=>c(()=>import(`./src-BS0Fu0Fq.js`),__vite__mapDeps([52,29,1,39,30,31])),"../plugin-orchestrator/src/index.ts":()=>c(()=>import(`./src-DEBwxHUA.js`),__vite__mapDeps([53,29,1,30,31])),"../plugin-people/src/index.ts":()=>c(()=>import(`./src-41AhrwZ4.js`),__vite__mapDeps([54,29,1,39,30])),"../plugin-telegram/src/index.ts":()=>c(()=>import(`./src-B-9OrFPA.js`),__vite__mapDeps([55,29,1,30,31])),"../plugin-things/src/index.ts":()=>c(()=>import(`./src-D2RcwCOa.js`),__vite__mapDeps([56,29,1,39,30])),"../plugin-transit/src/index.ts":()=>c(()=>import(`./src-dtQwwxRD.js`),__vite__mapDeps([57,29,1,39,30,31])),"../plugin-travel/src/index.ts":()=>c(()=>import(`./src-DwfQCgYj.js`),__vite__mapDeps([58,29,1,39,30])),"../plugin-webchat/src/index.ts":()=>c(()=>import(`./src-Dz6ZM88a.js`),__vite__mapDeps([59,29,1,30,31])),"../plugin-webexport/src/index.ts":()=>c(()=>import(`./src-BpJzKzOW.js`),__vite__mapDeps([60,29,1,30,31]))}),Cw=Object.assign({"../plugin-devices/src/fields/ui.tsx":()=>c(()=>import(`./ui-Bjep8RzZ.js`),__vite__mapDeps([61,1,2,3,25,24,4,26,5,6,62,63,34,64,65,66,67,29,68,69,70,37])),"../plugin-geo/src/ui.tsx":()=>c(()=>import(`./ui-D91-SKFW.js`),__vite__mapDeps([71,1,2,3,24,4,25,26,5,6,63,34,64,62,65,66,70,67,29,39,68,72])),"../plugin-webchat/src/ui/ui.tsx":()=>c(()=>import(`./ui-C8hTdKa2.js`),__vite__mapDeps([73,3,1,2,67,29,68]))});[...Object.keys(Sw),...Object.keys(Cw)];async function ww(e,t){let n=Object.entries(Sw).find(([t])=>t.includes(`/plugin-${e}/`));if(!n)return null;let r=(await n[1]()).default??null;for(let[n,r]of Object.entries(Cw)){if(!n.includes(`/plugin-${e}/`))continue;let i=(await r()).default;i&&t(i)}return r}var Tw={};function Ew(e,t){return Tw[`${e}/${t}`]}function Dw(e){Fn(e),e.shelf?.RecordView&&e.shelf.library&&e.shelf.shelf&&(Tw[`${e.shelf.library}/${e.shelf.shelf}`]=e.shelf.RecordView);for(let t of e.renderers??[])I(t);for(let t of e.listViews??[])mc(t);for(let[t,n]of Object.entries(e.templates??{}))En(t,n);for(let[t,n]of Object.entries(e.translations??{}))n&&Lr.addResourceBundle(t,`translation`,n,!0,!0)}function Ow(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 kw(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 Aw(){let e=await fetch(`/api/plugins`);if(!e.ok)throw Error(`[federation] /api/plugins ${e.status}`);let t=kw((await e.json()).filter(e=>e.enabled)),n=await Promise.all(t.map(async e=>{{let t=[],n=await ww(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 xw(e.schema).catch(t=>{console.error(`[federation] ${e.id}: schema failed, skipping plugin —`,t)});return t?{e,schemaMod:t,webMod:e.web?await xw(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??[])Dw(e);continue}let n=a?.default;if(!n)continue;r.push(n),e.css&&Ow(e.css);let s=o?.default;s&&Dw(s)}catch(t){console.error(`[federation] ${e.id}: applying bundle failed —`,t)}return r}var jw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/RecordView.tsx`;function Mw(){let{t:e}=a(),{library:t,shelf:n,id:r}=_(),i=u(),o=Pe().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),[s,c]=(0,L.useState)(null),l=(0,L.useRef)(s);(0,L.useEffect)(()=>{l.current=s},[s]);let[d,f]=(0,L.useState)({}),[p,m]=(0,L.useState)(!1),h=Ne(e),g=e=>d[e.join(`.`)],v=vw(s,b,x,S);if((0,L.useEffect)(()=>{if(!o||o.standalone===!1||!r)return;let e=new AbortController;return fetch(`/api/${o.library}/${o.shelf}/${r}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(c).catch(()=>{}),()=>e.abort()},[o,r]),!o||o.standalone===!1)return(0,R.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:jw,lineNumber:52,columnNumber:44},this);async function b(t,n){if(!o||!r)return;let i=l.current?.[t];f(e=>ke(e,t)),c(e=>e&&{...e,[t]:n});let a=await ur(o.library,o.shelf,r,{[t]:n});if(a.ok){c(a.row??null),de(`${o.library}/${o.shelf}`,a.row??{});return}c(e=>e&&{...e,[t]:i});let s=Ve(a.issues??[],h);f(e=>({...ke(e,t),...s}));let u=(a.issues??[]).find(e=>e.field===t)??a.issues?.[0];return u?h(u.code,u.params):e(`validation.server`)}async function x(t,n,i){if(!o||!r)return;let a=l.current?._extends?.[t]?.[n];f(e=>ke(e,n)),c(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:i}}}});let s=await ur(o.library,o.shelf,r,{[`_extend_${t}`]:{[n]:i}});if(s.ok){c(s.row??null),de(`${o.library}/${o.shelf}`,s.row??{});return}c(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:a}}}}),f(e=>({...ke(e,n),...Ve(s.issues??[],h)}));let u=(s.issues??[]).find(e=>e.field===n)??s.issues?.[0];return u?h(u.code,u.params):e(`validation.server`)}async function S(t){if(!o||!r)return;f(e=>Object.keys(t).reduce((e,t)=>ke(e,t),e));let n=await ur(o.library,o.shelf,r,t);if(n.ok){c(n.row??null),de(`${o.library}/${o.shelf}`,n.row??{});return}f(e=>({...Object.keys(t).reduce((e,t)=>ke(e,t),e),...Ve(n.issues??[],h)}));let i=n.issues?.[0];return i?h(i.code,i.params):e(`validation.server`)}async function C(){if(!o||!r||!await Ge({title:e(`actions.confirmDelete`),confirmLabel:e(`actions.delete`),variant:`destructive`}))return;m(!0);let t=await _r(o.library,o.shelf,r);if(m(!1),!t){y.error(e(`common.error`));return}N(`${o.library}/${o.shelf}`),i(`/${o.library}/${o.shelf}`)}let T=Ew(o.library,o.shelf);return(0,R.jsxDEV)(nv,{children:(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,R.jsxDEV)(Be,{actions:s&&!T&&(v.editAll?(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(F,{disabled:v.savingAll,onClick:v.saveAll,children:[(0,R.jsxDEV)(et,{size:16},void 0,!1,{fileName:jw,lineNumber:152,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`actions.save`)},void 0,!1,{fileName:jw,lineNumber:153,columnNumber:19},this)]},void 0,!0,{fileName:jw,lineNumber:151,columnNumber:17},this),(0,R.jsxDEV)(F,{variant:`secondary`,size:`icon`,disabled:v.savingAll,onClick:v.cancelAll,title:e(`actions.cancel`),children:(0,R.jsxDEV)(w,{size:16},void 0,!1,{fileName:jw,lineNumber:162,columnNumber:19},this)},void 0,!1,{fileName:jw,lineNumber:155,columnNumber:17},this)]},void 0,!0,{fileName:jw,lineNumber:150,columnNumber:15},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(F,{onClick:v.startAll,title:e(`actions.editAll`),children:[(0,R.jsxDEV)(Bt,{size:16},void 0,!1,{fileName:jw,lineNumber:168,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`actions.edit`)},void 0,!1,{fileName:jw,lineNumber:169,columnNumber:19},this)]},void 0,!0,{fileName:jw,lineNumber:167,columnNumber:17},this),(0,R.jsxDEV)(F,{variant:`destructive`,size:`icon`,disabled:p,onClick:C,title:e(`actions.delete`),children:(0,R.jsxDEV)(be,{size:16},void 0,!1,{fileName:jw,lineNumber:178,columnNumber:19},this)},void 0,!1,{fileName:jw,lineNumber:171,columnNumber:17},this)]},void 0,!0,{fileName:jw,lineNumber:166,columnNumber:15},this)),children:(0,R.jsxDEV)(F,{variant:`ghost`,size:`sm`,className:`px-2 bg-bg/60 border border-border/50 shadow-sm backdrop-blur-sm hover:bg-bg/80`,onClick:()=>i(`/${t}/${n}`),children:[(0,R.jsxDEV)(Oe,{size:18},void 0,!1,{fileName:jw,lineNumber:190,columnNumber:13},this),(0,R.jsxDEV)(`span`,{className:`text-sm`,children:e(o.label)},void 0,!1,{fileName:jw,lineNumber:191,columnNumber:13},this)]},void 0,!0,{fileName:jw,lineNumber:184,columnNumber:11},this)},void 0,!1,{fileName:jw,lineNumber:145,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Ie,{library:o.library,shelf:o.shelf,children:s?T?(0,R.jsxDEV)(T,{record:s,onEdit:()=>{}},void 0,!1,{fileName:jw,lineNumber:201,columnNumber:15},this):(0,R.jsxDEV)(yw,{shelf:o,record:s,onUpdate:b,onUpdateExtend:x,edit:v,errorAt:g},void 0,!1,{fileName:jw,lineNumber:203,columnNumber:15},this):(0,R.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted text-sm`,children:e(`common.loading`)},void 0,!1,{fileName:jw,lineNumber:199,columnNumber:15},this)},void 0,!1,{fileName:jw,lineNumber:197,columnNumber:11},this)},void 0,!1,{fileName:jw,lineNumber:196,columnNumber:9},this)]},void 0,!0,{fileName:jw,lineNumber:142,columnNumber:7},this)},void 0,!1,{fileName:jw,lineNumber:141,columnNumber:5},this)}var Nw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/PluginSlot.tsx`,Pw=new WeakMap;function Fw(e){let t=Pw.get(e);return t||(t=(0,L.lazy)(e),Pw.set(e,t)),t}var Iw=class extends L.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 Lw({name:e}){let t=Mn(e);return t.length?(0,R.jsxDEV)(R.Fragment,{children:t.map(e=>{let t=Fw(e.load);return(0,R.jsxDEV)(Iw,{id:e.id,children:(0,R.jsxDEV)(L.Suspense,{fallback:null,children:(0,R.jsxDEV)(t,{},void 0,!1,{fileName:Nw,lineNumber:54,columnNumber:15},this)},void 0,!1,{fileName:Nw,lineNumber:53,columnNumber:13},this)},e.id,!1,{fileName:Nw,lineNumber:52,columnNumber:11},this)})},void 0,!1,{fileName:Nw,lineNumber:48,columnNumber:5},this):null}function Rw({id:e,load:t}){let n=Fw(t);return(0,R.jsxDEV)(Iw,{id:e,children:(0,R.jsxDEV)(L.Suspense,{fallback:null,children:(0,R.jsxDEV)(n,{},void 0,!1,{fileName:Nw,lineNumber:69,columnNumber:9},this)},void 0,!1,{fileName:Nw,lineNumber:68,columnNumber:7},this)},void 0,!1,{fileName:Nw,lineNumber:67,columnNumber:5},this)}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Shell.tsx`,zw=(0,L.lazy)(()=>c(()=>import(`./SettingsPage-qVIURuje.js`).then(e=>({default:e.SettingsPage})),__vite__mapDeps([74,1,2,3,24,4,5,6,63,34,26,64,75,76,77,78]))),Bw=(0,L.lazy)(()=>c(()=>import(`./PluginSettingsPage-BEp95q6I.js`).then(e=>({default:e.PluginSettingsPage})),__vite__mapDeps([79,2,1,3,80,81,24,4,70,63,34,6,26,5,64,67,29,39,69,40,30,8,9,78]))),Vw=(0,L.lazy)(()=>c(()=>import(`./NewRecordView-BHQca6YX.js`).then(e=>({default:e.NewRecordView})),__vite__mapDeps([82,1,2,3,83,24,4,5,6,63,34,26,64,39,29,81,70,67,69,40,30,8,9,66,76,72]))),Hw={"/":(0,R.jsxDEV)(MC,{},void 0,!1,{fileName:$,lineNumber:33,columnNumber:8},void 0),"/browse":(0,R.jsxDEV)(PC,{},void 0,!1,{fileName:$,lineNumber:34,columnNumber:14},void 0),"/trash":(0,R.jsxDEV)(LC,{},void 0,!1,{fileName:$,lineNumber:35,columnNumber:13},void 0),"/settings":(0,R.jsxDEV)(zw,{},void 0,!1,{fileName:$,lineNumber:36,columnNumber:16},void 0),"/settings/account":(0,R.jsxDEV)(BC,{},void 0,!1,{fileName:$,lineNumber:37,columnNumber:24},void 0),"/settings/users":(0,R.jsxDEV)(rw,{},void 0,!1,{fileName:$,lineNumber:38,columnNumber:22},void 0),"/settings/users/new":(0,R.jsxDEV)(ow,{},void 0,!1,{fileName:$,lineNumber:39,columnNumber:26},void 0),"/settings/users/:id":(0,R.jsxDEV)(lw,{},void 0,!1,{fileName:$,lineNumber:40,columnNumber:26},void 0),"/settings/:pluginId":(0,R.jsxDEV)(Bw,{},void 0,!1,{fileName:$,lineNumber:41,columnNumber:26},void 0),"/:library/:shelf":(0,R.jsxDEV)(dw,{},void 0,!1,{fileName:$,lineNumber:42,columnNumber:23},void 0),"/:library/:shelf/new":(0,R.jsxDEV)(Vw,{},void 0,!1,{fileName:$,lineNumber:43,columnNumber:27},void 0),"/:library/:shelf/:id":(0,R.jsxDEV)(Mw,{},void 0,!1,{fileName:$,lineNumber:44,columnNumber:27},void 0)};function Uw(){return(0,R.jsxDEV)(h,{children:[(0,R.jsxDEV)(f,{path:`/login`,element:(0,R.jsxDEV)(dC,{},void 0,!1,{fileName:$,lineNumber:50,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:50,columnNumber:7},this),(0,R.jsxDEV)(f,{path:`/setup`,element:(0,R.jsxDEV)(mC,{},void 0,!1,{fileName:$,lineNumber:51,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:51,columnNumber:7},this),(0,R.jsxDEV)(f,{path:`/*`,element:(0,R.jsxDEV)(Ze,{children:(0,R.jsxDEV)(Ww,{},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 Ww(){let[e,t]=(0,L.useState)(!1);return(0,L.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,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`min-h-dvh bg-bg`,children:[(0,R.jsxDEV)(TC,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:81,columnNumber:9},this),(0,R.jsxDEV)(`main`,{className:`nav:pl-52 pb-16 nav:pb-0`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`flex justify-center py-16`,children:(0,R.jsxDEV)(Pt,{className:`animate-spin text-muted`,size:20},void 0,!1,{fileName:$,lineNumber:86,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:85,columnNumber:15},this),children:(0,R.jsxDEV)(h,{children:[cC.map(e=>(0,R.jsxDEV)(f,{path:e.pattern,element:Hw[e.pattern]},e.pattern,!1,{fileName:$,lineNumber:92,columnNumber:17},this)),(0,R.jsxDEV)(f,{path:`/plugins`,element:(0,R.jsxDEV)(o,{to:`/settings`,replace:!0},void 0,!1,{fileName:$,lineNumber:95,columnNumber:47},this)},void 0,!1,{fileName:$,lineNumber:95,columnNumber:15},this),Nn().map(e=>(0,R.jsxDEV)(f,{path:e.path,element:(0,R.jsxDEV)(Rw,{id:e.path,load:e.load},void 0,!1,{fileName:$,lineNumber:97,columnNumber:60},this)},e.path,!1,{fileName:$,lineNumber:97,columnNumber:17},this))]},void 0,!0,{fileName:$,lineNumber:90,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:83,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:82,columnNumber:9},this),(0,R.jsxDEV)(DC,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:102,columnNumber:9},this),(0,R.jsxDEV)(Lw,{name:`overlay`},void 0,!1,{fileName:$,lineNumber:103,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:80,columnNumber:7},this),(0,R.jsxDEV)(kC,{open:e,onClose:()=>t(!1)},void 0,!1,{fileName:$,lineNumber:105,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:79,columnNumber:5},this)}var Gw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/main.tsx`,Kw=[];try{Kw=await Aw()}catch(e){console.warn(`[federation] failed to load plugins, continuing with none:`,e)}Ue(Kw),jt(cC),At(He().map(e=>({library:e.library,shelf:e.shelf}))),(0,Mr.createRoot)(document.getElementById(`root`)).render((0,R.jsxDEV)(L.StrictMode,{children:(0,R.jsxDEV)(d,{children:[(0,R.jsxDEV)(Uw,{},void 0,!1,{fileName:Gw,lineNumber:48,columnNumber:7},void 0),(0,R.jsxDEV)($e,{},void 0,!1,{fileName:Gw,lineNumber:49,columnNumber:7},void 0),(0,R.jsxDEV)(v,{richColors:!0,position:`bottom-right`},void 0,!1,{fileName:Gw,lineNumber:50,columnNumber:7},void 0)]},void 0,!0,{fileName:Gw,lineNumber:47,columnNumber:5},void 0)},void 0,!1,{fileName:Gw,lineNumber:46,columnNumber:3},void 0));
|
|
59
|
+
|(?![\\s\\S])))+`,`m`),alias:i,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}}),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})})(e)}ax.displayName=`go`,ax.aliases=[];function ax(e){e.register(Xb),e.languages.go=e.languages.extend(`clike`,{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),e.languages.insertBefore(`go`,`string`,{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete e.languages.go[`class-name`]}ox.displayName=`ini`,ox.aliases=[];function ox(e){e.languages.ini={comment:{pattern:/(^[ \f\t\v]*)[#;][^\n\r]*/m,lookbehind:!0},section:{pattern:/(^[ \f\t\v]*)\[[^\n\r\]]*\]?/m,lookbehind:!0,inside:{"section-name":{pattern:/(^\[[ \f\t\v]*)[^ \f\t\v\]]+(?:[ \f\t\v]+[^ \f\t\v\]]+)*/,lookbehind:!0,alias:`selector`},punctuation:/\[|\]/}},key:{pattern:/(^[ \f\t\v]*)[^ \f\n\r\t\v=]+(?:[ \f\t\v]+[^ \f\n\r\t\v=]+)*(?=[ \f\t\v]*=)/m,lookbehind:!0,alias:`attr-name`},value:{pattern:/(=[ \f\t\v]*)[^ \f\n\r\t\v]+(?:[ \f\t\v]+[^ \f\n\r\t\v]+)*/,lookbehind:!0,alias:`attr-value`,inside:{"inner-value":{pattern:/^("|').+(?=\1$)/,lookbehind:!0}}},punctuation:/=/}}sx.displayName=`java`,sx.aliases=[];function sx(e){e.register(Xb),(function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|non-sealed|null|open|opens|package|permits|private|protected|provides|public|record(?!\s*[(){}[\]<>=%~.:,;?+\-*/&|^])|requires|return|sealed|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=`(?:[a-z]\\w*\\s*\\.\\s*)*(?:[A-Z]\\w*\\s*\\.\\s*)*`,r={pattern:RegExp(`(^|[^\\w.])`+n+`[A-Z](?:[\\d_A-Z]*[a-z]\\w*)?\\b`),lookbehind:!0,inside:{namespace:{pattern:/^[a-z]\w*(?:\s*\.\s*[a-z]\w*)*(?:\s*\.)?/,inside:{punctuation:/\./}},punctuation:/\./}};e.languages.java=e.languages.extend(`clike`,{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"/,lookbehind:!0,greedy:!0},"class-name":[r,{pattern:RegExp(`(^|[^\\w.])`+n+`[A-Z]\\w*(?=\\s+\\w+\\s*[;,=()]|\\s*(?:\\[[\\s,]*\\]\\s*)?::\\s*new\\b)`),lookbehind:!0,inside:r.inside},{pattern:RegExp(`(\\b(?:class|enum|extends|implements|instanceof|interface|new|record|throws)\\s+)`+n+`[A-Z]\\w*\\b`),lookbehind:!0,inside:r.inside}],keyword:t,function:[e.languages.clike.function,{pattern:/(::\s*)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x(?:\.[\da-f_p+-]+|[\da-f_]+(?:\.[\da-f_p+-]+)?)\b|(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0},constant:/\b[A-Z][A-Z_\d]+\b/}),e.languages.insertBefore(`java`,`string`,{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:`string`},char:{pattern:/'(?:\\.|[^'\\\r\n]){1,6}'/,greedy:!0}}),e.languages.insertBefore(`java`,`class-name`,{annotation:{pattern:/(^|[^.])@\w+(?:\s*\.\s*\w+)*/,lookbehind:!0,alias:`punctuation`},generics:{pattern:/<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&)|<(?:[\w\s,.?]|&(?!&))*>)*>)*>)*>/,inside:{"class-name":r,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}},import:[{pattern:RegExp(`(\\bimport\\s+)`+n+`(?:[A-Z]\\w*|\\*)(?=\\s*;)`),lookbehind:!0,inside:{namespace:r.inside.namespace,punctuation:/\./,operator:/\*/,"class-name":/\w+/}},{pattern:RegExp(`(\\bimport\\s+static\\s+)`+n+`(?:\\w+|\\*)(?=\\s*;)`),lookbehind:!0,alias:`static`,inside:{namespace:r.inside.namespace,static:/\b\w+$/,punctuation:/\./,operator:/\*/,"class-name":/\w+/}}],namespace:{pattern:RegExp(`(\\b(?:exports|import(?:\\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\\s+)(?!<keyword>)[a-z]\\w*(?:\\.[a-z]\\w*)*\\.?`.replace(/<keyword>/g,function(){return t.source})),lookbehind:!0,inside:{punctuation:/\./}}})})(e)}cx.displayName=`regex`,cx.aliases=[];function cx(e){(function(e){var t={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:`escape`},n=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/,r={pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:`class-name`},i={pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:`class-name`},a=`(?:[^\\\\-]|`+n.source+`)`,o=RegExp(a+`-`+a),s={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:`variable`};e.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:`operator`},"char-class-punctuation":{pattern:/^\[|\]$/,alias:`punctuation`},range:{pattern:o,inside:{escape:n,"range-punctuation":{pattern:/-/,alias:`operator`}}},"special-escape":t,"char-set":i,escape:n}},"special-escape":t,"char-set":r,backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:`keyword`},{pattern:/\\k<[^<>']+>/,alias:`keyword`,inside:{"group-name":s}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:`function`},escape:n,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:`punctuation`,inside:{"group-name":s}},{pattern:/\)/,alias:`punctuation`}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:`number`},alternation:{pattern:/\|/,alias:`keyword`}}})(e)}lx.displayName=`javascript`,lx.aliases=[`js`];function lx(e){e.register(Xb),e.languages.javascript=e.languages.extend(`clike`,{"class-name":[e.languages.clike[`class-name`],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(`(^|[^\\w$])(?:NaN|Infinity|0[bB][01]+(?:_[01]+)*n?|0[oO][0-7]+(?:_[0-7]+)*n?|0[xX][\\dA-Fa-f]+(?:_[\\dA-Fa-f]+)*n?|\\d+(?:_\\d+)*n|(?:\\d+(?:_\\d+)*(?:\\.(?:\\d+(?:_\\d+)*)?)?|\\.\\d+(?:_\\d+)*)(?:[Ee][+-]?\\d+(?:_\\d+)*)?)(?![\\w$])`),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),e.languages.javascript[`class-name`][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,e.languages.insertBefore(`javascript`,`keyword`,{regex:{pattern:RegExp(`((?:^|[^$\\w\\xA0-\\uFFFF."'\\])\\s]|\\b(?:return|yield))\\s*)\\/(?:(?:\\[(?:[^\\]\\\\\\r\\n]|\\\\.)*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}|(?:\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.|\\[(?:[^[\\]\\\\\\r\\n]|\\\\.)*\\])*\\])*\\]|\\\\.|[^/\\\\\\[\\r\\n])+\\/[dgimyus]{0,7}v[dgimyus]{0,7})(?=(?:\\s|\\/\\*(?:[^*]|\\*(?!\\/))*\\*\\/)*(?:$|[\\r\\n,.;:})\\]]|\\/\\/))`),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:`language-regex`,inside:e.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:`function`},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:e.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:e.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:e.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:e.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),e.languages.insertBefore(`javascript`,`string`,{hashbang:{pattern:/^#!.*/,greedy:!0,alias:`comment`},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:`string`},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:`punctuation`},rest:e.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:`property`}}),e.languages.insertBefore(`javascript`,`operator`,{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:`property`}}),e.languages.markup&&(e.languages.markup.tag.addInlined(`script`,`javascript`),e.languages.markup.tag.addAttribute(`on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)`,`javascript`)),e.languages.js=e.languages.javascript}ux.displayName=`json`,ux.aliases=[`webmanifest`];function ux(e){e.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`}},e.languages.webmanifest=e.languages.json}dx.displayName=`kotlin`,dx.aliases=[`kt`,`kts`];function dx(e){e.register(Xb),(function(e){e.languages.kotlin=e.languages.extend(`clike`,{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin[`class-name`];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:`punctuation`},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore(`kotlin`,`string`,{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:`multiline`,inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:`singleline`,inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore(`kotlin`,`keyword`,{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:`builtin`}}),e.languages.insertBefore(`kotlin`,`function`,{label:{pattern:/\b\w+@|@\w+\b/,alias:`symbol`}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin})(e)}fx.displayName=`less`,fx.aliases=[];function fx(e){e.register(rx),e.languages.less=e.languages.extend(`css`,{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),e.languages.insertBefore(`less`,`property`,{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:`function`}})}px.displayName=`lua`,px.aliases=[];function px(e){e.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[^z]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+(?:\.[a-f\d]*)?(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|(?:\.\d*)?(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}}mx.displayName=`makefile`,mx.aliases=[];function mx(e){e.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:`builtin`},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:`symbol`,inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/}}hx.displayName=`yaml`,hx.aliases=[`yml`];function hx(e){(function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r=`(?:`+n.source+`(?:[ ]+`+t.source+`)?|`+t.source+`(?:[ ]+`+n.source+`)?)`,i=`(?:[^\\s\\x00-\\x08\\x0e-\\x1f!"#%&'*,\\-:>?@[\\]\`{|}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]|[?:-]<PLAIN>)(?:[ \\t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*`.replace(/<PLAIN>/g,function(){return`[^\\s\\x00-\\x08\\x0e-\\x1f,[\\]{}\\x7f-\\x84\\x86-\\x9f\\ud800-\\udfff\\ufffe\\uffff]`}),a=`"(?:[^"\\\\\\r\\n]|\\\\.)*"|'(?:[^'\\\\\\r\\n]|\\\\.)*'`;function o(e,t){t=(t||``).replace(/m/g,``)+`m`;var n=`([:\\-,[{]\\s*(?:\\s<<prop>>[ \\t]+)?)(?:<<value>>)(?=[ \\t]*(?:$|,|\\]|\\}|(?:[\\r\\n]\\s*)?#))`.replace(/<<prop>>/g,function(){return r}).replace(/<<value>>/g,function(){return e});return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(`([\\-:]\\s*(?:\\s<<prop>>[ \\t]+)?[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)\\S[^\\r\\n]*(?:\\2[^\\r\\n]+)*)`.replace(/<<prop>>/g,function(){return r})),lookbehind:!0,alias:`string`},comment:/#.*/,key:{pattern:RegExp(`((?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:<<prop>>[ \\t]+)?)<<key>>(?=\\s*:\\s)`.replace(/<<prop>>/g,function(){return r}).replace(/<<key>>/g,function(){return`(?:`+i+`|`+a+`)`})),lookbehind:!0,greedy:!0,alias:`atrule`},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:`important`},datetime:{pattern:o(`\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?(?:[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?))?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?`),lookbehind:!0,alias:`number`},boolean:{pattern:o(`false|true`,`i`),lookbehind:!0,alias:`important`},null:{pattern:o(`null|~`,`i`),lookbehind:!0,alias:`important`},string:{pattern:o(a),lookbehind:!0,greedy:!0},number:{pattern:o(`[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)`,`i`),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml})(e)}gx.displayName=`markdown`,gx.aliases=[`md`];function gx(e){e.register(nx),(function(e){function t(e){return e=e.replace(/<inner>/g,function(){return`(?:\\\\.|[^\\\\\\n\\r]|(?:\\n|\\r\\n?)(?![\\r\\n]))`}),RegExp(`((?:^|[^\\\\])(?:\\\\{2})*)(?:`+e+`)`)}var n="(?:\\\\.|``(?:[^`\\r\\n]|`(?!`))+``|`[^`\\r\\n]+`|[^\\\\|\\r\\n`])+",r=`\\|?__(?:\\|__)+\\|?(?:(?:\\n|\\r\\n?)|(?![\\s\\S]))`.replace(/__/g,function(){return n}),i=`\\|?[ \\t]*:?-{3,}:?[ \\t]*(?:\\|[ \\t]*:?-{3,}:?[ \\t]*)+\\|?(?:\\n|\\r\\n?)`;e.languages.markdown=e.languages.extend(`markup`,{}),e.languages.insertBefore(`markdown`,`prolog`,{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:[`yaml`,`language-yaml`],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:`punctuation`},table:{pattern:RegExp(`^`+r+i+`(?:`+r+`)*`,`m`),inside:{"table-data-rows":{pattern:RegExp(`^(`+r+i+`)(?:`+r+`)*$`),lookbehind:!0,inside:{"table-data":{pattern:RegExp(n),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp(`^(`+r+`)`+i+`$`),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp(`^`+r+`$`),inside:{"table-header":{pattern:RegExp(n),alias:`important`,inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:`keyword`},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:`important`,inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:`important`,inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:`punctuation`},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:`punctuation`},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:`url`},bold:{pattern:t(`\\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\\b|\\*\\*(?:(?!\\*)<inner>|\\*(?:(?!\\*)<inner>)+\\*)+\\*\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:t(`\\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\\b|\\*(?:(?!\\*)<inner>|\\*\\*(?:(?!\\*)<inner>)+\\*\\*)+\\*`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:t(`(~~?)(?:(?!~)<inner>)+\\2`),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:[`code`,`keyword`]},url:{pattern:t(`!?\\[(?:(?!\\])<inner>)+\\](?:\\([^\\s)]+(?:[\\t ]+"(?:\\\\.|[^"\\\\])*")?\\)|[ \\t]?\\[(?:(?!\\])<inner>)+\\])`),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),[`url`,`bold`,`italic`,`strike`].forEach(function(t){[`url`,`bold`,`italic`,`strike`,`code-snippet`].forEach(function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])})}),e.hooks.add(`after-tokenize`,function(e){if(e.language!==`markdown`&&e.language!==`md`)return;function t(e){if(!(!e||typeof e==`string`))for(var n=0,r=e.length;n<r;n++){var i=e[n];if(i.type!==`code`){t(i.content);continue}var a=i.content[1],o=i.content[3];if(a&&o&&a.type===`code-language`&&o.type===`code-block`&&typeof a.content==`string`){var s=a.content.replace(/\b#/g,`sharp`).replace(/\b\+\+/g,`pp`);s=(/[a-z][\w-]*/i.exec(s)||[``])[0].toLowerCase();var c=`language-`+s;o.alias?typeof o.alias==`string`?o.alias=[o.alias,c]:o.alias.push(c):o.alias=[c]}}}t(e.tokens)}),e.hooks.add(`wrap`,function(t){if(t.type===`code-block`){for(var n=``,r=0,i=t.classes.length;r<i;r++){var a=t.classes[r],o=/language-(.+)/.exec(a);if(o){n=o[1];break}}var s=e.languages[n];if(s)t.content=e.highlight(t.content.value,s,n);else if(n&&n!==`none`&&e.plugins.autoloader){var c=`md-`+new Date().valueOf()+`-`+Math.floor(Math.random()*0x2386f26fc10000);t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})}}}),RegExp(e.languages.markup.tag.pattern.source,`gi`),String.fromCodePoint||String.fromCharCode,e.languages.md=e.languages.markdown})(e)}_x.displayName=`objectivec`,_x.aliases=[`objc`];function _x(e){e.register(Zb),e.languages.objectivec=e.languages.extend(`c`,{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete e.languages.objectivec[`class-name`],e.languages.objc=e.languages.objectivec}vx.displayName=`perl`,vx.aliases=[];function vx(e){(function(e){var t=`(?:\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}|\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)`;e.languages.perl={comment:[{pattern:/(^\s*)=\w[\s\S]*?=cut.*/m,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0,greedy:!0}],string:[{pattern:RegExp(`\\b(?:q|qq|qw|qx)(?![a-zA-Z0-9])\\s*(?:`+[`([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1`,`([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2`,t].join(`|`)+`)`),greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:RegExp(`\\b(?:m|qr)(?![a-zA-Z0-9])\\s*(?:`+[`([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1`,`([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2`,t].join(`|`)+`)[msixpodualngc]*`),greedy:!0},{pattern:RegExp(`(^|[^-])\\b(?:s|tr|y)(?![a-zA-Z0-9])\\s*(?:`+[`([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2`,`([a-zA-Z0-9])(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3(?:(?!\\3)[^\\\\]|\\\\[\\s\\S])*\\3`,t+`\\s*`+t].join(`|`)+`)[msixpodualngcer]*`),lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|x|xor)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+(?![\w$]))+(?:::)*/,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*?>|\b_\b/,alias:`symbol`},"v-string":{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:`string`},function:{pattern:/(\bsub[ \t]+)\w+/,lookbehind:!0},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:and|cmp|eq|ge|gt|le|lt|ne|not|or|xor)\b/,punctuation:/[{}[\];(),:]/}})(e)}yx.displayName=`markup-templating`,yx.aliases=[];function yx(e){e.register(nx),(function(e){function t(e,t){return`___`+e.toUpperCase()+t+`___`}Object.defineProperties(e.languages[`markup-templating`]={},{buildPlaceholders:{value:function(n,r,i,a){if(n.language===r){var o=n.tokenStack=[];n.code=n.code.replace(i,function(e){if(typeof a==`function`&&!a(e))return e;for(var i=o.length,s;n.code.indexOf(s=t(r,i))!==-1;)++i;return o[i]=e,s}),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language!==r||!n.tokenStack)return;n.grammar=e.languages[r];var i=0,a=Object.keys(n.tokenStack);function o(s){for(var c=0;c<s.length&&!(i>=a.length);c++){var l=s[c];if(typeof l==`string`||l.content&&typeof l.content==`string`){var u=a[i],d=n.tokenStack[u],f=typeof l==`string`?l:l.content,p=t(r,u),m=f.indexOf(p);if(m>-1){++i;var h=f.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),`language-`+r,d),_=f.substring(m+p.length),v=[];h&&v.push.apply(v,o([h])),v.push(g),_&&v.push.apply(v,o([_])),typeof l==`string`?s.splice.apply(s,[c,1].concat(v)):l.content=v}}else l.content&&o(l.content)}return s}o(n.tokens)}}})})(e)}bx.displayName=`php`,bx.aliases=[];function bx(e){e.register(yx),(function(e){var t=/\/\*[\s\S]*?\*\/|\/\/.*|#(?!\[).*/,n=[{pattern:/\b(?:false|true)\b/i,alias:`boolean`},{pattern:/(::\s*)\b[a-z_]\w*\b(?!\s*\()/i,greedy:!0,lookbehind:!0},{pattern:/(\b(?:case|const)\s+)\b[a-z_]\w*(?=\s*[;=])/i,greedy:!0,lookbehind:!0},/\b(?:null)\b/i,/\b[A-Z_][A-Z0-9_]*\b(?!\s*\()/],r=/\b0b[01]+(?:_[01]+)*\b|\b0o[0-7]+(?:_[0-7]+)*\b|\b0x[\da-f]+(?:_[\da-f]+)*\b|(?:\b\d+(?:_\d+)*\.?(?:\d+(?:_\d+)*)?|\B\.\d+)(?:e[+-]?\d+)?/i,i=/<?=>|\?\?=?|\.{3}|\??->|[!=]=?=?|::|\*\*=?|--|\+\+|&&|\|\||<<|>>|[?~]|[/^|%*&<>.+-]=?/,a=/[{}\[\](),:;]/;e.languages.php={delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:`important`},comment:t,variable:/\$+(?:\w+\b|(?=\{))/,package:{pattern:/(namespace\s+|use\s+(?:function\s+)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,lookbehind:!0,inside:{punctuation:/\\/}},"class-name-definition":{pattern:/(\b(?:class|enum|interface|trait)\s+)\b[a-z_]\w*(?!\\)\b/i,lookbehind:!0,alias:`class-name`},"function-definition":{pattern:/(\bfunction\s+)[a-z_]\w*(?=\s*\()/i,lookbehind:!0,alias:`function`},keyword:[{pattern:/(\(\s*)\b(?:array|bool|boolean|float|int|integer|object|string)\b(?=\s*\))/i,alias:`type-casting`,greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|object|self|static|string)\b(?=\s*\$)/i,alias:`type-hint`,greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b(?:array(?!\s*\()|bool|callable|(?:false|null)(?=\s*\|)|float|int|iterable|mixed|never|object|self|static|string|void)\b/i,alias:`return-type`,greedy:!0,lookbehind:!0},{pattern:/\b(?:array(?!\s*\()|bool|float|int|iterable|mixed|object|string|void)\b/i,alias:`type-declaration`,greedy:!0},{pattern:/(\|\s*)(?:false|null)\b|\b(?:false|null)(?=\s*\|)/i,alias:`type-declaration`,greedy:!0,lookbehind:!0},{pattern:/\b(?:parent|self|static)(?=\s*::)/i,alias:`static-context`,greedy:!0},{pattern:/(\byield\s+)from\b/i,lookbehind:!0},/\bclass\b/i,{pattern:/((?:^|[^\s>:]|(?:^|[^-])>|(?:^|[^:]):)\s*)\b(?:abstract|and|array|as|break|callable|case|catch|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|enum|eval|exit|extends|final|finally|fn|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|match|namespace|never|new|or|parent|print|private|protected|public|readonly|require|require_once|return|self|static|switch|throw|trait|try|unset|use|var|while|xor|yield|__halt_compiler)\b/i,lookbehind:!0}],"argument-name":{pattern:/([(,]\s*)\b[a-z_]\w*(?=\s*:(?!:))/i,lookbehind:!0},"class-name":[{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self|\s+static))\s+|\bcatch\s*\()\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/(\|\s*)\b[a-z_]\w*(?!\\)\b/i,greedy:!0,lookbehind:!0},{pattern:/\b[a-z_]\w*(?!\\)\b(?=\s*\|)/i,greedy:!0},{pattern:/(\|\s*)(?:\\?\b[a-z_]\w*)+\b/i,alias:`class-name-fully-qualified`,greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(?:\\?\b[a-z_]\w*)+\b(?=\s*\|)/i,alias:`class-name-fully-qualified`,greedy:!0,inside:{punctuation:/\\/}},{pattern:/(\b(?:extends|implements|instanceof|new(?!\s+self\b|\s+static\b))\s+|\bcatch\s*\()(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:`class-name-fully-qualified`,greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*\$)/i,alias:`type-declaration`,greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:[`class-name-fully-qualified`,`type-declaration`],greedy:!0,inside:{punctuation:/\\/}},{pattern:/\b[a-z_]\w*(?=\s*::)/i,alias:`static-context`,greedy:!0},{pattern:/(?:\\?\b[a-z_]\w*)+(?=\s*::)/i,alias:[`class-name-fully-qualified`,`static-context`],greedy:!0,inside:{punctuation:/\\/}},{pattern:/([(,?]\s*)[a-z_]\w*(?=\s*\$)/i,alias:`type-hint`,greedy:!0,lookbehind:!0},{pattern:/([(,?]\s*)(?:\\?\b[a-z_]\w*)+(?=\s*\$)/i,alias:[`class-name-fully-qualified`,`type-hint`],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}},{pattern:/(\)\s*:\s*(?:\?\s*)?)\b[a-z_]\w*(?!\\)\b/i,alias:`return-type`,greedy:!0,lookbehind:!0},{pattern:/(\)\s*:\s*(?:\?\s*)?)(?:\\?\b[a-z_]\w*)+\b(?!\\)/i,alias:[`class-name-fully-qualified`,`return-type`],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,function:{pattern:/(^|[^\\\w])\\?[a-z_](?:[\w\\]*\w)?(?=\s*\()/i,lookbehind:!0,inside:{punctuation:/\\/}},property:{pattern:/(->\s*)\w+/,lookbehind:!0},number:r,operator:i,punctuation:a};var o={pattern:/\{\$(?:\{(?:\{[^{}]+\}|[^{}]+)\}|[^{}])+\}|(^|[^\\{])\$+(?:\w+(?:\[[^\r\n\[\]]+\]|->\w+)?)/,lookbehind:!0,inside:e.languages.php},s=[{pattern:/<<<'([^']+)'[\r\n](?:.*[\r\n])*?\1;/,alias:`nowdoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:`symbol`,inside:{punctuation:/^<<<'?|[';]$/}}}},{pattern:/<<<(?:"([^"]+)"[\r\n](?:.*[\r\n])*?\1;|([a-z_]\w*)[\r\n](?:.*[\r\n])*?\2;)/i,alias:`heredoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:`symbol`,inside:{punctuation:/^<<<"?|[";]$/}},interpolation:o}},{pattern:/`(?:\\[\s\S]|[^\\`])*`/,alias:`backtick-quoted-string`,greedy:!0},{pattern:/'(?:\\[\s\S]|[^\\'])*'/,alias:`single-quoted-string`,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,alias:`double-quoted-string`,greedy:!0,inside:{interpolation:o}}];e.languages.insertBefore(`php`,`variable`,{string:s,attribute:{pattern:/#\[(?:[^"'\/#]|\/(?![*/])|\/\/.*$|#(?!\[).*$|\/\*(?:[^*]|\*(?!\/))*\*\/|"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*')+\](?=\s*[a-z$#])/im,greedy:!0,inside:{"attribute-content":{pattern:/^(#\[)[\s\S]+(?=\]$)/,lookbehind:!0,inside:{comment:t,string:s,"attribute-class-name":[{pattern:/([^:]|^)\b[a-z_]\w*(?!\\)\b/i,alias:`class-name`,greedy:!0,lookbehind:!0},{pattern:/([^:]|^)(?:\\?\b[a-z_]\w*)+/i,alias:[`class-name`,`class-name-fully-qualified`],greedy:!0,lookbehind:!0,inside:{punctuation:/\\/}}],constant:n,number:r,operator:i,punctuation:a}},delimiter:{pattern:/^#\[|\]$/,alias:`punctuation`}}}}),e.hooks.add(`before-tokenize`,function(t){/<\?/.test(t.code)&&e.languages[`markup-templating`].buildPlaceholders(t,`php`,/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#(?!\[))(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|#\[|\/\*(?:[^*]|\*(?!\/))*(?:\*\/|$))*?(?:\?>|$)/g)}),e.hooks.add(`after-tokenize`,function(t){e.languages[`markup-templating`].tokenizePlaceholders(t,`php`)})})(e)}xx.displayName=`python`,xx.aliases=[`py`];function xx(e){e.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern://,alias:`punctuation`},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:`string`},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:[`annotation`,`punctuation`],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},e.languages.python[`string-interpolation`].inside.interpolation.inside.rest=e.languages.python,e.languages.py=e.languages.python}Sx.displayName=`r`,Sx.aliases=[];function Sx(e){e.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:`operator`},boolean:/\b(?:FALSE|TRUE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:Inf|NaN)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+(?:\.\d*)?|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:NA|NA_character_|NA_complex_|NA_integer_|NA_real_|NULL|break|else|for|function|if|in|next|repeat|while)\b/,operator:/->?>?|<(?:=|<?-)?|[>=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/}}Cx.displayName=`ruby`,Cx.aliases=[`rb`];function Cx(e){e.register(Xb),(function(e){e.languages.ruby=e.languages.extend(`clike`,{comment:{pattern:/#.*|^=begin\s[\s\S]*?^=end/m,greedy:!0},"class-name":{pattern:/(\b(?:class|module)\s+|\bcatch\s+\()[\w.\\]+|\b[A-Z_]\w*(?=\s*\.\s*new\b)/,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:BEGIN|END|alias|and|begin|break|case|class|def|define_method|defined|do|each|else|elsif|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|private|protected|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/,operator:/\.{2,3}|&\.|===|<?=>|[!=]?~|(?:&&|\|\||<<|>>|\*\*|[+\-*/%<>!^&|=])=?|[?:]/,punctuation:/[(){}[\].,;]/}),e.languages.insertBefore(`ruby`,`operator`,{"double-colon":{pattern:/::/,alias:`punctuation`}});var t={pattern:/((?:^|[^\\])(?:\\{2})*)#\{(?:[^{}]|\{[^{}]*\})*\}/,lookbehind:!0,inside:{content:{pattern:/^(#\{)[\s\S]+(?=\}$)/,lookbehind:!0,inside:e.languages.ruby},delimiter:{pattern:/^#\{|\}$/,alias:`punctuation`}}};delete e.languages.ruby.function;var n=`(?:`+[`([^a-zA-Z0-9\\s{(\\[<=])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1`,`\\((?:[^()\\\\]|\\\\[\\s\\S]|\\((?:[^()\\\\]|\\\\[\\s\\S])*\\))*\\)`,`\\{(?:[^{}\\\\]|\\\\[\\s\\S]|\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\})*\\}`,`\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S]|\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\])*\\]`,`<(?:[^<>\\\\]|\\\\[\\s\\S]|<(?:[^<>\\\\]|\\\\[\\s\\S])*>)*>`].join(`|`)+`)`,r=`(?:"(?:\\\\.|[^"\\\\\\r\\n])*"|(?:\\b[a-zA-Z_]\\w*|[^\\s\\0-\\x7F]+)[?!]?|\\$.)`;e.languages.insertBefore(`ruby`,`keyword`,{"regex-literal":[{pattern:RegExp(`%r`+n+`[egimnosux]{0,6}`),greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}},{pattern:/(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[egimnosux]{0,6}(?=\s*(?:$|[\r\n,.;})#]))/,lookbehind:!0,greedy:!0,inside:{interpolation:t,regex:/[\s\S]+/}}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:[{pattern:RegExp(`(^|[^:]):`+r),lookbehind:!0,greedy:!0},{pattern:RegExp(`([\\r\\n{(,][ \\t]*)`+r+`(?=:(?!:))`),lookbehind:!0,greedy:!0}],"method-definition":{pattern:/(\bdef\s+)\w+(?:\s*\.\s*\w+)?/,lookbehind:!0,inside:{function:/\b\w+$/,keyword:/^self\b/,"class-name":/^\w+/,punctuation:/\./}}}),e.languages.insertBefore(`ruby`,`string`,{"string-literal":[{pattern:RegExp(`%[qQiIwWs]?`+n),greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/("|')(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|(?!\1)[^\\#\r\n])*\1/,greedy:!0,inside:{interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?([a-z_]\w*)[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:`heredoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?[a-z_]\w*|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?/}},interpolation:t,string:/[\s\S]+/}},{pattern:/<<[-~]?'([a-z_]\w*)'[\r\n](?:.*[\r\n])*?[\t ]*\1/i,alias:`heredoc-string`,greedy:!0,inside:{delimiter:{pattern:/^<<[-~]?'[a-z_]\w*'|\b[a-z_]\w*$/i,inside:{symbol:/\b\w+/,punctuation:/^<<[-~]?'|'$/}},string:/[\s\S]+/}}],"command-literal":[{pattern:RegExp(`%x`+n),greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:`string`}}},{pattern:/`(?:#\{[^}]+\}|#(?!\{)|\\(?:\r\n|[\s\S])|[^\\`#\r\n])*`/,greedy:!0,inside:{interpolation:t,command:{pattern:/[\s\S]+/,alias:`string`}}}]}),delete e.languages.ruby.string,e.languages.insertBefore(`ruby`,`number`,{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Fixnum|Float|Hash|IO|Integer|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|Stat|String|Struct|Symbol|TMS|Thread|ThreadGroup|Time|TrueClass)\b/,constant:/\b[A-Z][A-Z0-9_]*(?:[?!]|\b)/}),e.languages.rb=e.languages.ruby})(e)}wx.displayName=`rust`,wx.aliases=[];function wx(e){(function(e){for(var t=`\\/\\*(?:[^*/]|\\*(?!\\/)|\\/(?!\\*)|<self>)*\\*\\/`,n=0;n<2;n++)t=t.replace(/<self>/g,function(){return t});t=t.replace(/<self>/g,function(){return`[^\\s\\S]`}),e.languages.rust={comment:[{pattern:RegExp(`(^|[^\\\\])`+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:`attr-name`,inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:`punctuation`},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:`symbol`},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:`punctuation`},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:`function`},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:`class-name`},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:`namespace`},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:`namespace`,inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:`property`},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust[`closure-params`].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string})(e)}Tx.displayName=`sass`,Tx.aliases=[];function Tx(e){e.register(rx),(function(e){e.languages.sass=e.languages.extend(`css`,{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore(`sass`,`atrule`,{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore(`sass`,`property`,{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore(`sass`,`punctuation`,{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})})(e)}Ex.displayName=`scss`,Ex.aliases=[];function Ex(e){e.register(rx),e.languages.scss=e.languages.extend(`css`,{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:`important`},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),e.languages.insertBefore(`scss`,`atrule`,{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),e.languages.insertBefore(`scss`,`important`,{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),e.languages.insertBefore(`scss`,`function`,{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:`keyword`},placeholder:{pattern:/%[-\w]+/,alias:`selector`},statement:{pattern:/\B!(?:default|optional)\b/i,alias:`keyword`},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:`keyword`},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),e.languages.scss.atrule.inside.rest=e.languages.scss}Dx.displayName=`sql`,Dx.aliases=[];function Dx(e){e.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}}Ox.displayName=`swift`,Ox.aliases=[];function Ox(e){e.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(`(^|[^"#])(?:"(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^(])|[^\\\\\\r\\n"])*"|"""(?:\\\\(?:\\((?:[^()]|\\([^()]*\\))*\\)|[^(])|[^\\\\"]|"(?!""))*""")(?!["#])`),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:`punctuation`},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(`(^|[^"#])(#+)(?:"(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|\\r\\n|[^#])|[^\\\\\\r\\n])*?"|"""(?:\\\\(?:#+\\((?:[^()]|\\([^()]*\\))*\\)|[^#])|[^\\\\])*?""")\\2`),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:`punctuation`},string:/[\s\S]+/}}],directive:{pattern:RegExp(`#(?:(?:elseif|if)\\b(?:[ ]*(?:![ \\t]*)?(?:\\b\\w+\\b(?:[ \\t]*\\((?:[^()]|\\([^()]*\\))*\\))?|\\((?:[^()]|\\([^()]*\\))*\\))(?:[ \\t]*(?:&&|\\|\\|))?)+|(?:else|endif)\\b)`),alias:`property`,inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:`constant`},"other-directive":{pattern:/#\w+\b/,alias:`property`},attribute:{pattern:/@\w+/,alias:`atrule`},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:`function`},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:`important`},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:`constant`},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:`keyword`},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},e.languages.swift[`string-literal`].forEach(function(t){t.inside.interpolation.inside=e.languages.swift})}kx.displayName=`typescript`,kx.aliases=[`ts`];function kx(e){e.register(lx),(function(e){e.languages.typescript=e.languages.extend(`javascript`,{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript[`literal-property`];var t=e.languages.extend(`typescript`,{});delete t[`class-name`],e.languages.typescript[`class-name`].inside=t,e.languages.insertBefore(`typescript`,`function`,{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:`operator`},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:`class-name`,inside:t}}}}),e.languages.ts=e.languages.typescript})(e)}Ax.displayName=`basic`,Ax.aliases=[];function Ax(e){e.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^\w +\-.])*"/,greedy:!0},number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SELECT CASE|SHARED|SHELL|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/}}jx.displayName=`vbnet`,jx.aliases=[];function jx(e){e.register(Ax),e.languages.vbnet=e.languages.extend(`basic`,{comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(^|[^"])"(?:""|[^"])*"(?!")/,lookbehind:!0,greedy:!0},keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDBL|CDEC|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DEFAULT|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LET|LIB|LIKE|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPERATOR|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHELL|SHORT|SINGLE|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SWAP|SYNCLOCK|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,punctuation:/[,;:(){}]/})}var Mx=0,Nx={},Px={util:{type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++Mx}),e.__id},clone:function e(t,n){n||={};var r,i;switch(Px.util.type(t)){case`Object`:if(i=Px.util.objId(t),n[i])return n[i];for(var a in r={},n[i]=r,t)t.hasOwnProperty(a)&&(r[a]=e(t[a],n));return r;case`Array`:return i=Px.util.objId(t),n[i]?n[i]:(r=[],n[i]=r,t.forEach(function(t,i){r[i]=e(t,n)}),r);default:return t}}},languages:{plain:Nx,plaintext:Nx,text:Nx,txt:Nx,extend:function(e,t){var n=Px.util.clone(Px.languages[e]);for(var r in t)n[r]=t[r];return n},insertBefore:function(e,t,n,r){r||=Px.languages;var i=r[e],a={};for(var o in i)if(i.hasOwnProperty(o)){if(o==t)for(var s in n)n.hasOwnProperty(s)&&(a[s]=n[s]);n.hasOwnProperty(o)||(a[o]=i[o])}var c=r[e];return r[e]=a,Px.languages.DFS(Px.languages,function(t,n){n===c&&t!=e&&(this[t]=a)}),a},DFS:function e(t,n,r,i){i||={};var a=Px.util.objId;for(var o in t)if(t.hasOwnProperty(o)){n.call(t,o,t[o],r||o);var s=t[o],c=Px.util.type(s);c===`Object`&&!i[a(s)]?(i[a(s)]=!0,e(s,n,null,i)):c===`Array`&&!i[a(s)]&&(i[a(s)]=!0,e(s,n,o,i))}}},plugins:{},highlight:function(e,t,n){var r={code:e,grammar:t,language:n};if(Px.hooks.run(`before-tokenize`,r),!r.grammar)throw Error(`The language "`+r.language+`" has no grammar.`);return r.tokens=Px.tokenize(r.code,r.grammar),Px.hooks.run(`after-tokenize`,r),Fx.stringify(Px.util.encode(r.tokens),r.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var i=new Rx;return zx(i,i.head,e),Lx(e,i,t,i.head,0),Vx(i)},hooks:{all:{},add:function(e,t){var n=Px.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=Px.hooks.all[e];if(!(!n||!n.length))for(var r=0,i;i=n[r++];)i(t)}},Token:Fx};function Fx(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=(r||``).length|0}function Ix(e,t,n,r){e.lastIndex=t;var i=e.exec(n);if(i&&r&&i[1]){var a=i[1].length;i.index+=a,i[0]=i[0].slice(a)}return i}function Lx(e,t,n,r,i,a){for(var o in n)if(!(!n.hasOwnProperty(o)||!n[o])){var s=n[o];s=Array.isArray(s)?s:[s];for(var c=0;c<s.length;++c){if(a&&a.cause==o+`,`+c)return;var l=s[c],u=l.inside,d=!!l.lookbehind,f=!!l.greedy,p=l.alias;if(f&&!l.pattern.global){var m=l.pattern.toString().match(/[imsuy]*$/)[0];l.pattern=RegExp(l.pattern.source,m+`g`)}for(var h=l.pattern||l,g=r.next,_=i;g!==t.tail&&!(a&&_>=a.reach);_+=g.value.length,g=g.next){var v=g.value;if(t.length>e.length)return;if(!(v instanceof Fx)){var y=1,b;if(f){if(b=Ix(h,_,e,d),!b||b.index>=e.length)break;var x=b.index,S=b.index+b[0].length,C=_;for(C+=g.value.length;x>=C;)g=g.next,C+=g.value.length;if(C-=g.value.length,_=C,g.value instanceof Fx)continue;for(var w=g;w!==t.tail&&(C<S||typeof w.value==`string`);w=w.next)y++,C+=w.value.length;y--,v=e.slice(_,C),b.index-=_}else if(b=Ix(h,0,v,d),!b)continue;var x=b.index,T=b[0],E=v.slice(0,x),D=v.slice(x+T.length),O=_+v.length;a&&O>a.reach&&(a.reach=O);var k=g.prev;E&&(k=zx(t,k,E),_+=E.length),Bx(t,k,y);var A=new Fx(o,u?Px.tokenize(T,u):T,p,T);if(g=zx(t,k,A),D&&zx(t,g,D),y>1){var ee={cause:o+`,`+c,reach:O};Lx(e,t,n,g.prev,_,ee),a&&ee.reach>a.reach&&(a.reach=ee.reach)}}}}}}function Rx(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function zx(e,t,n){var r=t.next,i={value:n,prev:t,next:r};return t.next=i,r.prev=i,e.length++,i}function Bx(e,t,n){for(var r=t.next,i=0;i<n&&r!==e.tail;i++)r=r.next;t.next=r,r.prev=t,e.length-=i}function Vx(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}var Hx=Px;function Ux(){}Ux.prototype=Hx;var Z=new Ux;Z.highlight=Wx,Z.register=Gx,Z.alias=Kx,Z.registered=qx,Z.listLanguages=Jx,Z.util.encode=Xx,Z.Token.stringify=Yx;function Wx(e,t){if(typeof e!=`string`)throw TypeError("Expected `string` for `value`, got `"+e+"`");let n,r;if(t&&typeof t==`object`)n=t;else{if(r=t,typeof r!=`string`)throw TypeError("Expected `string` for `name`, got `"+r+"`");if(Object.hasOwn(Z.languages,r))n=Z.languages[r];else throw Error("Unknown language: `"+r+"` is not registered")}return{type:`root`,children:Hx.highlight.call(Z,e,n,r)}}function Gx(e){if(typeof e!=`function`||!e.displayName)throw Error("Expected `function` for `syntax`, got `"+e+"`");Object.hasOwn(Z.languages,e.displayName)||e(Z)}function Kx(e,t){let n=Z.languages,r={};typeof e==`string`?t&&(r[e]=t):r=e;let i;for(i in r)if(Object.hasOwn(r,i)){let e=r[i],t=typeof e==`string`?[e]:e,a=-1;for(;++a<t.length;)n[t[a]]=n[i]}}function qx(e){if(typeof e!=`string`)throw TypeError("Expected `string` for `aliasOrLanguage`, got `"+e+"`");return Object.hasOwn(Z.languages,e)}function Jx(){let e=Z.languages,t=[],n;for(n in e)Object.hasOwn(e,n)&&typeof e[n]==`object`&&t.push(n);return t}function Yx(e,t){if(typeof e==`string`)return{type:`text`,value:e};if(Array.isArray(e)){let n=[],r=-1;for(;++r<e.length;)e[r]!==null&&e[r]!==void 0&&e[r]!==``&&n.push(Yx(e[r],t));return n}let n={attributes:{},classes:[`token`,e.type],content:Yx(e.content,t),language:t,tag:`span`,type:e.type};return e.alias&&n.classes.push(...typeof e.alias==`string`?[e.alias]:e.alias),Z.hooks.run(`wrap`,n),wr(n.tag+`.`+n.classes.join(`.`),Zx(n.attributes),n.content)}function Xx(e){return e}function Zx(e){let t;for(t in e)Object.hasOwn(e,t)&&(e[t]=Tr(e[t]));return e}Z.register(Xb),Z.register(Zb),Z.register(Qb),Z.register($b),Z.register(ex),Z.register(tx),Z.register(nx),Z.register(rx),Z.register(ix),Z.register(ax),Z.register(ox),Z.register(sx),Z.register(cx),Z.register(lx),Z.register(ux),Z.register(dx),Z.register(fx),Z.register(px),Z.register(mx),Z.register(hx),Z.register(gx),Z.register(_x),Z.register(vx),Z.register(yx),Z.register(bx),Z.register(xx),Z.register(Sx),Z.register(Cx),Z.register(wx),Z.register(Tx),Z.register(Ex),Z.register(Dx),Z.register(Ox),Z.register(kx),Z.register(Ax),Z.register(jx);var Qx=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/code.tsx`,$x=(0,L.lazy)(()=>c(()=>import(`./esm-Dfm1ivm4.js`),__vite__mapDeps([16,1,2,6,8,17,18,12,13,19,20])));function eS(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}var tS=Z.listLanguages().slice().sort().map(e=>({value:e,title:e}));function nS({field:e,value:t,onChange:n}){let r=(0,L.useMemo)(()=>eS(t),[t]),i=e.hints.defaultLang??`text`,a=r.lang??i,o=e=>n(!e.code&&!e.lang?``:{code:e.code??``,lang:e.lang??i});return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,R.jsxDEV)(W_,{value:a,onChange:e=>o({code:r.code,lang:e}),items:tS,placeholder:`language`},void 0,!1,{fileName:Qx,lineNumber:45,columnNumber:7},this),(0,R.jsxDEV)(`div`,{"data-color-mode":`dark`,children:(0,R.jsxDEV)(`div`,{className:`rounded-xl overflow-hidden border border-border min-w-0`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`text-sm text-muted`,children:`…`},void 0,!1,{fileName:Qx,lineNumber:53,columnNumber:31},this),children:(0,R.jsxDEV)($x,{value:r.code??``,language:a,onChange:e=>o({code:e.target.value,lang:a}),padding:12,style:{fontFamily:`ui-monospace, monospace`,fontSize:13,background:`transparent`,minHeight:`8rem`}},void 0,!1,{fileName:Qx,lineNumber:54,columnNumber:13},this)},void 0,!1,{fileName:Qx,lineNumber:53,columnNumber:11},this)},void 0,!1,{fileName:Qx,lineNumber:52,columnNumber:9},this)},void 0,!1,{fileName:Qx,lineNumber:51,columnNumber:7},this)]},void 0,!0,{fileName:Qx,lineNumber:44,columnNumber:5},this)}function rS({value:e}){let t=eS(e);return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2 min-w-0`,children:[(0,R.jsxDEV)(`div`,{className:`flex h-9 w-full items-center rounded-lg border border-transparent px-3 text-sm text-muted`,children:t.lang&&(0,R.jsxDEV)(`span`,{className:`uppercase`,children:t.lang},void 0,!1,{fileName:Qx,lineNumber:78,columnNumber:20},this)},void 0,!1,{fileName:Qx,lineNumber:77,columnNumber:7},this),(0,R.jsxDEV)(`pre`,{className:`min-w-0 min-h-32 overflow-x-auto whitespace-pre-wrap rounded-lg border border-transparent p-3 font-mono text-[13px] leading-normal text-text/90`,children:t.code||(0,R.jsxDEV)(it,{},void 0,!1,{fileName:Qx,lineNumber:81,columnNumber:20},this)},void 0,!1,{fileName:Qx,lineNumber:80,columnNumber:7},this)]},void 0,!0,{fileName:Qx,lineNumber:76,columnNumber:5},this)}function iS(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`none`,bare:e.bare,view:e=>(0,R.jsxDEV)(rS,{value:e},void 0,!1,{fileName:Qx,lineNumber:99,columnNumber:20},this),edit:(t,n)=>(0,R.jsxDEV)(nS,{field:e.field,value:t,onChange:n},void 0,!1,{fileName:Qx,lineNumber:101,columnNumber:9},this)},void 0,!1,{fileName:Qx,lineNumber:89,columnNumber:5},this)}function aS({value:e}){return(0,R.jsxDEV)(`span`,{className:`truncate text-muted`,children:eS(e).lang??`code`},void 0,!1,{fileName:Qx,lineNumber:109,columnNumber:10},this)}I({kinds:[`code`],layout:`block`,Page:iS,Inline:aS});var Q=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/embed.tsx`;function oS(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 sS=e=>(e.type===`video`||e.type===`rich`)&&!!e.html;function cS(e){try{return new URL(e).hostname}catch{return e}}function lS(e){try{let t=new URL(e);if(t.protocol===`http:`||t.protocol===`https:`)return e}catch{}}function uS({rec:e,onOpen:t,onRemove:n}){return(0,R.jsxDEV)(`div`,{className:`group relative @container`,children:[(0,R.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,R.jsxDEV)(`div`,{className:`relative aspect-video w-20 shrink-0 bg-muted/40 @[20rem]:w-full`,children:[e.thumbnail?(0,R.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`h-full w-full object-cover`},void 0,!1,{fileName:Q,lineNumber:67,columnNumber:13},this):(0,R.jsxDEV)(Ts,{className:`absolute inset-0 m-auto text-muted`,size:20},void 0,!1,{fileName:Q,lineNumber:69,columnNumber:13},this),sS(e)&&(0,R.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,R.jsxDEV)(Ce,{size:16},void 0,!1,{fileName:Q,lineNumber:73,columnNumber:15},this)},void 0,!1,{fileName:Q,lineNumber:72,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:65,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1 px-2 py-1.5`,children:[(0,R.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:e.title??e.url},void 0,!1,{fileName:Q,lineNumber:78,columnNumber:11},this),e.provider&&(0,R.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.provider},void 0,!1,{fileName:Q,lineNumber:79,columnNumber:28},this)]},void 0,!0,{fileName:Q,lineNumber:77,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:60,columnNumber:7},this),n&&(0,R.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,R.jsxDEV)(ye,{size:13},void 0,!1,{fileName:Q,lineNumber:90,columnNumber:11},this)},void 0,!1,{fileName:Q,lineNumber:83,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:59,columnNumber:5},this)}function dS({rec:e}){let t=e.title||cS(e.url),n=lS(e.url),r=`group flex items-center gap-2 overflow-hidden rounded-lg border border-border bg-muted/5 px-3 py-2 transition-colors hover:bg-muted/15`,i=(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`shrink-0 text-muted group-hover:text-text`,children:sS(e)?(0,R.jsxDEV)(Ce,{size:16},void 0,!1,{fileName:Q,lineNumber:105,columnNumber:26},this):(0,R.jsxDEV)(Ts,{size:16},void 0,!1,{fileName:Q,lineNumber:105,columnNumber:47},this)},void 0,!1,{fileName:Q,lineNumber:104,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`truncate text-sm font-medium`,children:t},void 0,!1,{fileName:Q,lineNumber:108,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`truncate text-xs text-muted`,children:e.url},void 0,!1,{fileName:Q,lineNumber:109,columnNumber:9},this)]},void 0,!0,{fileName:Q,lineNumber:107,columnNumber:7},this)]},void 0,!0,{fileName:Q,lineNumber:103,columnNumber:5},this);return n?(0,R.jsxDEV)(`a`,{href:n,target:`_blank`,rel:`noopener noreferrer`,className:r,children:i},void 0,!1,{fileName:Q,lineNumber:115,columnNumber:5},this):(0,R.jsxDEV)(`div`,{className:r,children:i},void 0,!1,{fileName:Q,lineNumber:119,columnNumber:5},this)}function fS({rec:e,onClose:t}){let{t:n}=a(),r=lS(e.url);return(0,R.jsxDEV)(Cr,{open:!0,onOpenChange:e=>!e&&t(),children:(0,R.jsxDEV)(xr,{className:`max-w-2xl`,children:[(0,R.jsxDEV)(yr,{className:`truncate`,children:e.title??e.url},void 0,!1,{fileName:Q,lineNumber:132,columnNumber:9},this),sS(e)?(0,R.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:Q,lineNumber:134,columnNumber:11},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-3`,children:[e.thumbnail&&(0,R.jsxDEV)(`img`,{src:e.thumbnail,alt:``,className:`w-full rounded-md`},void 0,!1,{fileName:Q,lineNumber:143,columnNumber:31},this),e.description&&(0,R.jsxDEV)(`p`,{className:`text-sm text-muted`,children:e.description},void 0,!1,{fileName:Q,lineNumber:144,columnNumber:33},this)]},void 0,!0,{fileName:Q,lineNumber:142,columnNumber:11},this),r&&(0,R.jsxDEV)(`a`,{href:r,target:`_blank`,rel:`noopener noreferrer`,children:(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,className:`w-full`,children:[(0,R.jsxDEV)(bs,{size:15},void 0,!1,{fileName:Q,lineNumber:150,columnNumber:15},this),` `,n(`embed.open`)]},void 0,!0,{fileName:Q,lineNumber:149,columnNumber:13},this)},void 0,!1,{fileName:Q,lineNumber:148,columnNumber:11},this)]},void 0,!0,{fileName:Q,lineNumber:131,columnNumber:7},this)},void 0,!1,{fileName:Q,lineNumber:130,columnNumber:5},this)}function pS({value:e,onChange:t,multiple:n}){let{t:r}=a(),i=oS(e),[o,s]=(0,L.useState)(null),[c,l]=(0,L.useState)(``),[u,d]=(0,L.useState)(!1),[f,p]=(0,L.useState)(!1),m=e=>t?.(e.length?e:``);async function h(){if(u||!c.trim())return;d(!0),p(!1);let e=await Jn(c.trim());if(d(!1),!e)return p(!0);m([...i,e]),l(``)}return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:[t?(0,R.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-2 @md:grid-cols-2 @2xl:grid-cols-3`,children:i.map((e,t)=>(0,R.jsxDEV)(uS,{rec:e,onOpen:()=>s(e),onRemove:()=>m(i.filter((e,n)=>n!==t))},`${e.url}-${t}`,!1,{fileName:Q,lineNumber:188,columnNumber:13},this))},void 0,!1,{fileName:Q,lineNumber:186,columnNumber:9},this):i.length>0&&(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:i.map((e,t)=>(0,R.jsxDEV)(dS,{rec:e},`${e.url}-${t}`,!1,{fileName:Q,lineNumber:201,columnNumber:15},this))},void 0,!1,{fileName:Q,lineNumber:199,columnNumber:11},this),t&&(n||i.length===0)&&(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:[(0,R.jsxDEV)(`div`,{className:`flex gap-2`,children:[(0,R.jsxDEV)(E,{value:c,placeholder:r(`embed.pastePlaceholder`),onChange:e=>l(e.target.value),onKeyDown:e=>e.key===`Enter`&&(e.preventDefault(),h())},void 0,!1,{fileName:Q,lineNumber:209,columnNumber:13},this),(0,R.jsxDEV)(F,{type:`button`,variant:`outline`,disabled:u||!c.trim(),onClick:h,children:u?`…`:`+`},void 0,!1,{fileName:Q,lineNumber:215,columnNumber:13},this)]},void 0,!0,{fileName:Q,lineNumber:208,columnNumber:11},this),f&&(0,R.jsxDEV)(`span`,{className:`text-xs text-danger`,children:r(`embed.resolveFailed`)},void 0,!1,{fileName:Q,lineNumber:219,columnNumber:19},this)]},void 0,!0,{fileName:Q,lineNumber:207,columnNumber:9},this),o&&(0,R.jsxDEV)(fS,{rec:o,onClose:()=>s(null)},void 0,!1,{fileName:Q,lineNumber:222,columnNumber:16},this)]},void 0,!0,{fileName:Q,lineNumber:183,columnNumber:5},this)}function mS(e){let t=e.mode!==`view`,n=e.field.hints.multiple===!0;return(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1.5`,children:[e.label&&(0,R.jsxDEV)(zt,{label:e.label,required:e.required},void 0,!1,{fileName:Q,lineNumber:232,columnNumber:19},this),(0,R.jsxDEV)(pS,{value:e.value,onChange:t?e.onChange:void 0,multiple:n},void 0,!1,{fileName:Q,lineNumber:233,columnNumber:7},this),e.error&&(0,R.jsxDEV)(At,{error:e.error},void 0,!1,{fileName:Q,lineNumber:234,columnNumber:19},this)]},void 0,!0,{fileName:Q,lineNumber:231,columnNumber:5},this)}function hS(e){let t=oS(e.value);if(t.length===0)return null;let n=t[0];return(0,R.jsxDEV)(`span`,{className:`inline-flex min-w-0 items-center gap-1`,children:[sS(n)?(0,R.jsxDEV)(Ce,{size:12},void 0,!1,{fileName:Q,lineNumber:245,columnNumber:26},this):(0,R.jsxDEV)(Ts,{size:12},void 0,!1,{fileName:Q,lineNumber:245,columnNumber:47},this),(0,R.jsxDEV)(`span`,{className:`truncate`,children:n.title??cS(n.url)},void 0,!1,{fileName:Q,lineNumber:246,columnNumber:7},this),t.length>1&&(0,R.jsxDEV)(`span`,{className:`text-muted`,children:[`+`,t.length-1]},void 0,!0,{fileName:Q,lineNumber:247,columnNumber:27},this)]},void 0,!0,{fileName:Q,lineNumber:244,columnNumber:5},this)}I({kinds:[`embed`],layout:`block`,Page:mS,Inline:hS});var gS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/reminder.tsx`;function _S(){return new Date().toISOString().slice(0,10)}function vS(e,t){return Math.round((Date.parse(e)-Date.parse(t))/864e5)}function yS(e,t,n=_S()){if(!e)return`neutral`;let r=vS(e,n);return r<0?`overdue`:r===0?`today`:r<=t?`soon`:`neutral`}var bS={overdue:`text-red-600`,today:`text-primary font-medium`,soon:`text-amber-600`,neutral:``};function xS({field:e,value:t}){let{t:n}=a(),r=String(t??``);if(!r)return(0,R.jsxDEV)(it,{},void 0,!1,{fileName:gS,lineNumber:40,columnNumber:18},this);let i=yS(r,e.hints.lead??30),o=vS(r,_S()),s=i===`today`?n(`reminder.today`):i===`overdue`?n(`reminder.overdue`,{days:Math.abs(o)}):i===`soon`?n(`reminder.inDays`,{days:o}):null;return(0,R.jsxDEV)(`span`,{className:`tabular-nums ${bS[i]}`,children:[fg(r),s?(0,R.jsxDEV)(`span`,{className:`ml-2 text-xs`,children:s},void 0,!1,{fileName:gS,lineNumber:52,columnNumber:15},this):null]},void 0,!0,{fileName:gS,lineNumber:50,columnNumber:5},this)}function SS(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:t=>(0,R.jsxDEV)(xS,{field:e.field,value:t},void 0,!1,{fileName:gS,lineNumber:62,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(E,{type:`date`,value:String(e??``),onChange:e=>t(e.target.value)},void 0,!1,{fileName:gS,lineNumber:64,columnNumber:9},this)},void 0,!1,{fileName:gS,lineNumber:59,columnNumber:5},this)}function CS({field:e,value:t}){return(0,R.jsxDEV)(xS,{field:e,value:t},void 0,!1,{fileName:gS,lineNumber:71,columnNumber:10},this)}I({kinds:[`reminder`],Page:SS,Inline:CS});var wS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/weight.tsx`;function TS(e){if(e==null||e===``||Number.isNaN(Number(e)))return``;let t=Number(e);return t<1e3?`${t} г`:`${Number((t/1e3).toFixed(2))} кг`}function ES({value:e,onChange:t}){let n=e===``?``:Number(e),[r,i]=(0,L.useState)(n!==``&&Number(n)>=1e3?`kg`:`g`),a=n===``?``:r===`kg`?Number(n)/1e3:n,o=e=>Math.round(r===`kg`?e*1e3:e);return(0,R.jsxDEV)(`div`,{className:`flex gap-2 min-w-0`,children:[(0,R.jsxDEV)(E,{type:`number`,className:`flex-1 min-w-0`,min:0,value:a,onChange:e=>t(e.target.value===``?``:String(o(Number(e.target.value))))},void 0,!1,{fileName:wS,lineNumber:23,columnNumber:7},this),(0,R.jsxDEV)(Xe,{value:r,onValueChange:e=>i(e),children:[(0,R.jsxDEV)(Qe,{className:`w-20`,children:(0,R.jsxDEV)(Ze,{},void 0,!1,{fileName:wS,lineNumber:32,columnNumber:11},this)},void 0,!1,{fileName:wS,lineNumber:31,columnNumber:9},this),(0,R.jsxDEV)(xt,{children:[(0,R.jsxDEV)(tt,{value:`g`,children:`г`},void 0,!1,{fileName:wS,lineNumber:35,columnNumber:11},this),(0,R.jsxDEV)(tt,{value:`kg`,children:`кг`},void 0,!1,{fileName:wS,lineNumber:36,columnNumber:11},this)]},void 0,!0,{fileName:wS,lineNumber:34,columnNumber:9},this)]},void 0,!0,{fileName:wS,lineNumber:30,columnNumber:7},this)]},void 0,!0,{fileName:wS,lineNumber:22,columnNumber:5},this)}function DS({value:e}){let t=TS(e);return t?(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:t},void 0,!1,{fileName:wS,lineNumber:45,columnNumber:14},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:wS,lineNumber:45,columnNumber:58},this)}function OS(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-40`,bare:e.bare,view:e=>(0,R.jsxDEV)(DS,{value:e},void 0,!1,{fileName:wS,lineNumber:61,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(ES,{value:String(e??``),onChange:t},void 0,!1,{fileName:wS,lineNumber:63,columnNumber:9},this)},void 0,!1,{fileName:wS,lineNumber:50,columnNumber:5},this)}function kS({value:e}){return(0,R.jsxDEV)(DS,{value:e},void 0,!1,{fileName:wS,lineNumber:70,columnNumber:10},this)}I({kinds:[`weight`],Page:OS,Inline:kS});var AS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/dimensions.tsx`;function jS(e){if(e&&typeof e==`object`)return e;try{let t=JSON.parse(String(e??``));return t&&typeof t==`object`?t:{}}catch{return{}}}function MS(e){let t=jS(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 NS({value:e,onChange:t}){let n=jS(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,R.jsxDEV)(E,{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:AS,lineNumber:27,columnNumber:5},this);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-1 min-w-0 ${Rt}`,children:[i(`w`,`Ш`),(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:AS,lineNumber:31,columnNumber:23},this),i(`h`,`В`),(0,R.jsxDEV)(`span`,{className:`text-muted`,children:`×`},void 0,!1,{fileName:AS,lineNumber:31,columnNumber:76},this),i(`d`,`Г`),(0,R.jsxDEV)(`span`,{className:`ml-1 text-xs text-muted`,children:`мм`},void 0,!1,{fileName:AS,lineNumber:32,columnNumber:7},this)]},void 0,!0,{fileName:AS,lineNumber:30,columnNumber:5},this)}function PS({value:e}){let t=MS(e);return t?(0,R.jsxDEV)(`span`,{className:`tabular-nums`,children:t},void 0,!1,{fileName:AS,lineNumber:39,columnNumber:14},this):(0,R.jsxDEV)(it,{},void 0,!1,{fileName:AS,lineNumber:39,columnNumber:58},this)}function FS(e){return(0,R.jsxDEV)(Pn,{field:e.field,value:e.value,onChange:e.onChange,label:e.label,required:e.required,error:e.error,mode:e.mode,geom:`inline`,width:`w-fit`,bare:e.bare,view:e=>(0,R.jsxDEV)(PS,{value:e},void 0,!1,{fileName:AS,lineNumber:45,columnNumber:20},this),edit:(e,t)=>(0,R.jsxDEV)(NS,{value:e,onChange:t},void 0,!1,{fileName:AS,lineNumber:46,columnNumber:34},this)},void 0,!1,{fileName:AS,lineNumber:43,columnNumber:5},this)}function IS({value:e}){return(0,R.jsxDEV)(PS,{value:e},void 0,!1,{fileName:AS,lineNumber:49,columnNumber:58},this)}I({kinds:[`dimensions`],Page:FS,Inline:IS});var LS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/internal-api-token-renderer.tsx`;function RS(){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 zS({label:e}){let{t}=a(),[n,r]=(0,L.useState)([]),[i,o]=(0,L.useState)(``),[s,c]=(0,L.useState)(null),[l,u]=(0,L.useState)(!1);function d(){Xn().then(e=>e.ok&&r(e.data))}(0,L.useEffect)(d,[]);async function f(){if(!i.trim())return;u(!0);let e=RS(),n=await Qn(i.trim(),e);u(!1),n.ok?(c(e),o(``),d()):y.error(t(`auth.genericError`))}async function p(e){await Ke({title:t(`auth.tokenConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await Yn(e)).ok?d():y.error(t(`auth.genericError`)))}return(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold uppercase tracking-wide text-muted`,children:t(e||`auth.tokensTitle`)},void 0,!1,{fileName:LS,lineNumber:70,columnNumber:7},this),s&&(0,R.jsxDEV)(`div`,{className:`mb-3 rounded-xl border border-accent/40 bg-accent/10 px-4 py-3 text-sm text-accent break-all`,children:[t(`auth.tokenCreatedOnce`),` `,(0,R.jsxDEV)(`code`,{children:s},void 0,!1,{fileName:LS,lineNumber:73,columnNumber:40},this)]},void 0,!0,{fileName:LS,lineNumber:72,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`mb-3 flex gap-2`,children:[(0,R.jsxDEV)(E,{placeholder:t(`auth.tokenNamePlaceholder`),value:i,onChange:e=>o(e.target.value)},void 0,!1,{fileName:LS,lineNumber:77,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`button`,disabled:l||!i.trim(),onClick:f,children:t(`auth.tokenCreate`)},void 0,!1,{fileName:LS,lineNumber:78,columnNumber:9},this)]},void 0,!0,{fileName:LS,lineNumber:76,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,R.jsxDEV)(We,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.name},void 0,!1,{fileName:LS,lineNumber:86,columnNumber:15},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:LS,lineNumber:87,columnNumber:15},this)]},void 0,!0,{fileName:LS,lineNumber:85,columnNumber:13},this),(0,R.jsxDEV)(F,{variant:`ghost`,size:`sm`,type:`button`,onClick:()=>p(e.id),className:`shrink-0 border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:LS,lineNumber:91,columnNumber:13},this)]},e.id,!0,{fileName:LS,lineNumber:84,columnNumber:11},this))},void 0,!1,{fileName:LS,lineNumber:82,columnNumber:7},this)]},void 0,!0,{fileName:LS,lineNumber:69,columnNumber:5},this)}I({kinds:[`internalApiToken`],layout:`block`,Page:zS});var BS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/render/core/internal-oauth-grants-renderer.tsx`;function VS({label:e}){let{t}=a(),[n,r]=(0,L.useState)([]);function i(){or().then(e=>e.ok&&r(e.data))}(0,L.useEffect)(i,[]);async function o(e){await Ke({title:t(`auth.grantConfirmRevoke`),confirmLabel:t(`auth.tokenRevoke`),variant:`destructive`})&&((await pr(e)).ok?i():y.error(t(`auth.genericError`)))}return(0,R.jsxDEV)(`div`,{children:[(0,R.jsxDEV)(`h2`,{className:`mb-2 text-sm font-semibold uppercase tracking-wide text-muted`,children:t(e||`auth.grantsTitle`)},void 0,!1,{fileName:BS,lineNumber:44,columnNumber:7},this),n.length===0?(0,R.jsxDEV)(`p`,{className:`text-sm text-muted`,children:t(`auth.grantsEmpty`)},void 0,!1,{fileName:BS,lineNumber:46,columnNumber:9},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-2`,children:n.map(e=>(0,R.jsxDEV)(We,{className:`flex items-center gap-4 px-4 py-3`,children:[(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`font-semibold text-text`,children:e.clientName},void 0,!1,{fileName:BS,lineNumber:52,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e.createdAt,` `,e.lastUsedAt?`· last used ${e.lastUsedAt}`:``]},void 0,!0,{fileName:BS,lineNumber:53,columnNumber:17},this)]},void 0,!0,{fileName:BS,lineNumber:51,columnNumber:15},this),(0,R.jsxDEV)(F,{variant:`ghost`,size:`sm`,type:`button`,onClick:()=>o(e.clientId),className:`shrink-0 border border-danger/40 text-danger hover:bg-danger/10 hover:text-danger`,children:t(`auth.tokenRevoke`)},void 0,!1,{fileName:BS,lineNumber:57,columnNumber:15},this)]},e.clientId,!0,{fileName:BS,lineNumber:50,columnNumber:13},this))},void 0,!1,{fileName:BS,lineNumber:48,columnNumber:9},this)]},void 0,!0,{fileName:BS,lineNumber:43,columnNumber:5},this)}I({kinds:[`internalOauthGrants`],layout:`block`,Page:VS});function HS({containerRef:e,count:t,estimateHeight:n=33,overscan:r=12,threshold:i=100}){let a=t>i,[o,s]=(0,L.useState)(n),[c,l]=(0,L.useState)({start:0,end:t}),u=(0,L.useRef)(!1),d=(0,L.useCallback)(e=>{if(!e||u.current)return;let t=e.getBoundingClientRect().height;t>0&&(u.current=!0,s(t))},[]);if((0,L.useEffect)(()=>{u.current=!1},[t]),(0,L.useEffect)(()=>{if(!a){l({start:0,end:t});return}let i=e.current;if(!i)return;let s=()=>{let e=o>0?o:n,a=Math.max(0,Math.floor(i.scrollTop/e)-r),s=Math.ceil(i.clientHeight/e)+r*2;l(e=>{let n={start:a,end:Math.min(t,a+s)};return e.start===n.start&&e.end===n.end?e:n})};s(),i.addEventListener(`scroll`,s,{passive:!0});let c=typeof ResizeObserver==`function`?new ResizeObserver(s):null;return c?.observe(i),()=>{i.removeEventListener(`scroll`,s),c?.disconnect()}},[e,t,a,o,n,r]),!a)return{start:0,end:t,padTop:0,padBottom:0,rowHeight:o,measureRow:d};let f=Math.min(c.start,Math.max(0,t-1)),p=Math.min(c.end,t);return{start:f,end:p,padTop:f*o,padBottom:Math.max(0,(t-p)*o),rowHeight:o,measureRow:d}}var US=20,WS=new Map;function GS(e){return WS.get(e)??0}function KS(e,t){for(WS.delete(e),WS.set(e,t);WS.size>US;){let e=WS.keys().next();if(e.done)break;WS.delete(e.value)}}function qS(e){for(let t of[...WS.keys()])(t===e||t.startsWith(`${e}?`))&&WS.delete(t)}var JS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/RecordCard.tsx`;function YS(e,t,n){return n?e(n.label):t}var XS=(0,L.memo)(function({row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:o}){let{t:s}=a(),c=hn(t.fields),l=`${r}/${e.id}`,[u,...d]=n,f=ot(c),p=f?e[f]:void 0,h=f!=null&&oy(p).length>0,g=f?d.filter(e=>e!==f):d,_=u?c[u]:void 0;return(0,R.jsxDEV)(`div`,{style:{contentVisibility:`auto`,containIntrinsicSize:`auto 120px`},className:`bg-elevated rounded-xl p-4 mb-3 border border-border transition-colors hover:border-border2 hover:bg-surface`,children:[h&&(0,R.jsxDEV)(`div`,{className:`-mx-4 -mt-4 mb-3 overflow-hidden rounded-t-xl [&_img]:rounded-none [&>*]:rounded-none`,children:(0,R.jsxDEV)(fy,{value:p},void 0,!1,{fileName:JS,lineNumber:60,columnNumber:11},this)},void 0,!1,{fileName:JS,lineNumber:59,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex items-start justify-between gap-3`,children:[(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:[(0,R.jsxDEV)(m,{to:l,className:`mb-2 block min-w-0 truncate text-text`,children:_?(0,R.jsxDEV)(vr,{field:_,value:mn(_,u,e),height:24},void 0,!1,{fileName:JS,lineNumber:69,columnNumber:15},this):String(e[u]??``)},void 0,!1,{fileName:JS,lineNumber:67,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`flex flex-wrap gap-x-4 gap-y-1`,children:g.map(t=>{let n=c[t],r=n?mn(n,t,e):void 0;return!n||!st(r)?null:(0,R.jsxDEV)(`span`,{className:`text-sm text-muted inline-flex min-w-0 max-w-full items-baseline gap-1 truncate`,children:[(0,R.jsxDEV)(`span`,{className:`text-xs opacity-70 shrink-0`,children:[YS(s,t,n),`:`]},void 0,!0,{fileName:JS,lineNumber:84,columnNumber:19},this),(0,R.jsxDEV)(vr,{field:n,value:r},void 0,!1,{fileName:JS,lineNumber:85,columnNumber:19},this)]},t,!0,{fileName:JS,lineNumber:80,columnNumber:17},this)})},void 0,!1,{fileName:JS,lineNumber:74,columnNumber:11},this)]},void 0,!0,{fileName:JS,lineNumber:64,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex gap-2 shrink-0`,children:(0,R.jsxDEV)(F,{variant:`outline`,size:`icon`,disabled:o,className:`text-muted hover:text-danger hover:border-danger`,onClick:()=>i(String(e.id)),children:(0,R.jsxDEV)(ye,{size:15},void 0,!1,{fileName:JS,lineNumber:99,columnNumber:13},this)},void 0,!1,{fileName:JS,lineNumber:92,columnNumber:11},this)},void 0,!1,{fileName:JS,lineNumber:91,columnNumber:9},this)]},void 0,!0,{fileName:JS,lineNumber:63,columnNumber:7},this)]},void 0,!0,{fileName:JS,lineNumber:54,columnNumber:5},this)}),ZS=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/RecordRow.tsx`,QS=(0,L.memo)(function({row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:a,rowRef:o}){let s=hn(t.fields),c=`${r}/${e.id}`;return(0,R.jsxDEV)(`tr`,{ref:o,className:`group border-b border-border/60 hover:bg-elevated/60 transition-colors`,children:[n.map((t,n)=>n===0?(0,R.jsxDEV)(`td`,{className:`max-w-xs p-0`,children:(0,R.jsxDEV)(m,{to:c,className:`block px-4 py-1.5 text-sm font-medium text-text truncate`,children:s[t]?(0,R.jsxDEV)(vr,{field:s[t],value:mn(s[t],t,e)},void 0,!1,{fileName:ZS,lineNumber:45,columnNumber:24},this):String(e[t]??``)},void 0,!1,{fileName:ZS,lineNumber:44,columnNumber:13},this)},t,!1,{fileName:ZS,lineNumber:43,columnNumber:11},this):(0,R.jsxDEV)(`td`,{className:`px-4 py-1.5 text-sm max-w-xs text-text/80`,children:(0,R.jsxDEV)(`span`,{className:`block truncate`,children:s[t]?(0,R.jsxDEV)(vr,{field:s[t],value:mn(s[t],t,e)},void 0,!1,{fileName:ZS,lineNumber:51,columnNumber:24},this):String(e[t]??``)},void 0,!1,{fileName:ZS,lineNumber:50,columnNumber:13},this)},t,!1,{fileName:ZS,lineNumber:49,columnNumber:11},this)),(0,R.jsxDEV)(`td`,{className:`px-3 py-1 w-14`,children:(0,R.jsxDEV)(`div`,{className:`flex justify-end`,children:(0,R.jsxDEV)(F,{variant:`ghost`,size:`iconSm`,disabled:a,className:`m-0 text-muted opacity-0 group-hover:opacity-100 pointer-coarse:opacity-100 hover:text-danger transition-opacity`,onClick:()=>i(String(e.id)),children:(0,R.jsxDEV)(ye,{size:14},void 0,!1,{fileName:ZS,lineNumber:65,columnNumber:13},this)},void 0,!1,{fileName:ZS,lineNumber:58,columnNumber:11},this)},void 0,!1,{fileName:ZS,lineNumber:57,columnNumber:9},this)},void 0,!1,{fileName:ZS,lineNumber:56,columnNumber:7},this)]},void 0,!0,{fileName:ZS,lineNumber:38,columnNumber:5},this)}),$S=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/views/table.tsx`;function eC(e,t){e.scrollTop=t}function tC({rows:e,shelf:t,keys:n,hrefBase:r,onDelete:i,deletingId:o,sort:s,onToggleSort:c,scrollKey:l}){let{t:u}=a(),d=hn(t.fields),f=Dt(`list`,640),p=(0,L.useRef)(null),m=HS({containerRef:p,count:e.length}),h=(0,L.useRef)(null);return(0,L.useEffect)(()=>{if(!l)return;let e=f?p.current:null,t=e??window,n=()=>KS(l,e?e.scrollTop:window.scrollY);return t.addEventListener(`scroll`,n,{passive:!0}),()=>t.removeEventListener(`scroll`,n)},[l,f,e.length]),(0,L.useLayoutEffect)(()=>{if(!l||e.length===0)return;let t=GS(l),n=f?p.current:null,r=h.current,i=r?.key!==l;if(t<=0){h.current={key:l,applied:0};return}let a=n?n.scrollTop:window.scrollY;!i&&r&&Math.abs(a-r.applied)>2||(n?eC(n,t):typeof window.scrollTo==`function`&&window.scrollTo(0,t),h.current={key:l,applied:n?n.scrollTop:t})},[l,e.length,f,m.rowHeight]),f?(0,R.jsxDEV)(`div`,{ref:p,className:`hidden list:block overflow-auto h-[calc(100dvh-52px)]`,children:(0,R.jsxDEV)(`table`,{className:`w-full border-collapse`,children:[(0,R.jsxDEV)(`thead`,{className:`eink-solid sticky top-0 z-10 bg-bg/95 backdrop-blur`,children:(0,R.jsxDEV)(`tr`,{className:`border-b border-border`,children:[n.map(e=>(0,R.jsxDEV)(`th`,{onClick:()=>c(e),className:`px-4 py-2 text-left text-[11px] font-semibold text-muted uppercase tracking-wider cursor-pointer select-none hover:text-text transition-colors`,children:(0,R.jsxDEV)(`span`,{className:`flex items-center gap-1 whitespace-nowrap`,title:YS(u,e,d[e]),children:[YS(u,e,d[e]),s?.key===e?s.dir===`asc`?(0,R.jsxDEV)($e,{size:11},void 0,!1,{fileName:$S,lineNumber:100,columnNumber:23},this):(0,R.jsxDEV)(k,{size:11},void 0,!1,{fileName:$S,lineNumber:102,columnNumber:23},this):(0,R.jsxDEV)(_s,{size:11,className:`opacity-30`},void 0,!1,{fileName:$S,lineNumber:105,columnNumber:21},this)]},void 0,!0,{fileName:$S,lineNumber:96,columnNumber:17},this)},e,!1,{fileName:$S,lineNumber:91,columnNumber:15},this)),(0,R.jsxDEV)(`th`,{className:`w-12`},void 0,!1,{fileName:$S,lineNumber:110,columnNumber:13},this)]},void 0,!0,{fileName:$S,lineNumber:89,columnNumber:11},this)},void 0,!1,{fileName:$S,lineNumber:88,columnNumber:9},this),(0,R.jsxDEV)(`tbody`,{children:[m.padTop>0&&(0,R.jsxDEV)(`tr`,{"aria-hidden":!0,style:{height:m.padTop},children:(0,R.jsxDEV)(`td`,{colSpan:n.length+1},void 0,!1,{fileName:$S,lineNumber:117,columnNumber:15},this)},void 0,!1,{fileName:$S,lineNumber:116,columnNumber:13},this),e.slice(m.start,m.end).map((e,a)=>(0,R.jsxDEV)(QS,{row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:o===String(e.id),rowRef:a===0?m.measureRow:void 0},String(e.id),!1,{fileName:$S,lineNumber:121,columnNumber:13},this)),m.padBottom>0&&(0,R.jsxDEV)(`tr`,{"aria-hidden":!0,style:{height:m.padBottom},children:(0,R.jsxDEV)(`td`,{colSpan:n.length+1},void 0,!1,{fileName:$S,lineNumber:134,columnNumber:15},this)},void 0,!1,{fileName:$S,lineNumber:133,columnNumber:13},this)]},void 0,!0,{fileName:$S,lineNumber:113,columnNumber:9},this)]},void 0,!0,{fileName:$S,lineNumber:87,columnNumber:7},this)},void 0,!1,{fileName:$S,lineNumber:86,columnNumber:5},this):(0,R.jsxDEV)(`div`,{className:`list:hidden p-4`,children:e.map(e=>(0,R.jsxDEV)(XS,{row:e,m:t,keys:n,hrefBase:r,onDelete:i,deleting:o===String(e.id)},String(e.id),!1,{fileName:$S,lineNumber:70,columnNumber:11},this))},void 0,!1,{fileName:$S,lineNumber:68,columnNumber:7},this)}cc({kind:`table`,View:tC});var nC=[{pattern:`/`,purpose:`dashboard`},{pattern:`/browse`,purpose:`library browser`},{pattern:`/trash`,purpose:`reversible trash for deleted records`},{pattern:`/settings`,purpose:`settings index`},{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/:pluginId`,purpose:`one plugin's settings`},{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`}],rC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/LoginPage.tsx`,iC=[Xt.string({key:`login`,label:`auth.login`,required:!0}),Xt.password({key:`password`,label:`auth.password`,required:!0})];function aC(){let{t:e}=a(),{values:t,bridge:n}=Pe({fm:hn(iC),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`login`},initial:{login:``,password:``}}),[r,i]=(0,L.useState)(null),[o,s]=(0,L.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await ur(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,R.jsxDEV)(`main`,{className:`login-page`,children:[(0,R.jsxDEV)(`div`,{className:`login-orb login-orb-one`,"aria-hidden":`true`},void 0,!1,{fileName:rC,lineNumber:45,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`login-orb login-orb-two`,"aria-hidden":`true`},void 0,!1,{fileName:rC,lineNumber:46,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`login-shell`,children:[(0,R.jsxDEV)(`section`,{className:`login-intro`,"aria-label":`Coffer`,children:[(0,R.jsxDEV)(`div`,{className:`login-brand`,children:[(0,R.jsxDEV)(`span`,{className:`login-brand-mark`,"aria-hidden":`true`,children:[(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:rC,lineNumber:52,columnNumber:15},this),(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:rC,lineNumber:53,columnNumber:15},this),(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:rC,lineNumber:54,columnNumber:15},this),(0,R.jsxDEV)(`i`,{},void 0,!1,{fileName:rC,lineNumber:55,columnNumber:15},this)]},void 0,!0,{fileName:rC,lineNumber:51,columnNumber:13},this),(0,R.jsxDEV)(`span`,{children:`Coffer`},void 0,!1,{fileName:rC,lineNumber:57,columnNumber:13},this)]},void 0,!0,{fileName:rC,lineNumber:50,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`login-intro-copy`,children:[(0,R.jsxDEV)(`p`,{className:`login-eyebrow`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:rC,lineNumber:60,columnNumber:13},this),(0,R.jsxDEV)(`h2`,{children:e(`auth.welcomeTitle`)},void 0,!1,{fileName:rC,lineNumber:61,columnNumber:13},this),(0,R.jsxDEV)(`p`,{children:e(`auth.welcomeText`)},void 0,!1,{fileName:rC,lineNumber:62,columnNumber:13},this)]},void 0,!0,{fileName:rC,lineNumber:59,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`login-status`,children:[(0,R.jsxDEV)(`span`,{className:`login-status-dot`,"aria-hidden":`true`},void 0,!1,{fileName:rC,lineNumber:65,columnNumber:13},this),(0,R.jsxDEV)(`span`,{children:e(`auth.secureConnection`)},void 0,!1,{fileName:rC,lineNumber:66,columnNumber:13},this)]},void 0,!0,{fileName:rC,lineNumber:64,columnNumber:11},this)]},void 0,!0,{fileName:rC,lineNumber:49,columnNumber:9},this),(0,R.jsxDEV)(`form`,{onSubmit:c,className:`login-card`,children:[(0,R.jsxDEV)(`div`,{className:`login-card-heading`,children:[(0,R.jsxDEV)(`div`,{className:`login-mobile-brand`,children:`Coffer`},void 0,!1,{fileName:rC,lineNumber:72,columnNumber:13},this),(0,R.jsxDEV)(`p`,{className:`login-card-kicker`,children:e(`auth.welcomeEyebrow`)},void 0,!1,{fileName:rC,lineNumber:73,columnNumber:13},this),(0,R.jsxDEV)(`h1`,{children:e(`auth.loginTitle`)},void 0,!1,{fileName:rC,lineNumber:74,columnNumber:13},this),(0,R.jsxDEV)(`p`,{className:`login-card-subtitle`,children:e(`auth.welcomeText`)},void 0,!1,{fileName:rC,lineNumber:75,columnNumber:13},this)]},void 0,!0,{fileName:rC,lineNumber:71,columnNumber:11},this),r&&(0,R.jsxDEV)(`div`,{className:`login-error`,role:`alert`,children:r},void 0,!1,{fileName:rC,lineNumber:77,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`login-fields`,children:(0,R.jsxDEV)(Le,{items:iC,ctx:{bridge:n}},void 0,!1,{fileName:rC,lineNumber:79,columnNumber:13},this)},void 0,!1,{fileName:rC,lineNumber:78,columnNumber:11},this),(0,R.jsxDEV)(F,{type:`submit`,disabled:o,className:`login-submit`,children:[(0,R.jsxDEV)(`span`,{children:o?`…`:e(`auth.signIn`)},void 0,!1,{fileName:rC,lineNumber:82,columnNumber:13},this),!o&&(0,R.jsxDEV)(`span`,{className:`login-submit-arrow`,"aria-hidden":`true`,children:`→`},void 0,!1,{fileName:rC,lineNumber:83,columnNumber:23},this)]},void 0,!0,{fileName:rC,lineNumber:81,columnNumber:11},this),(0,R.jsxDEV)(`p`,{className:`login-footer`,children:e(`auth.secureConnection`)},void 0,!1,{fileName:rC,lineNumber:85,columnNumber:11},this)]},void 0,!0,{fileName:rC,lineNumber:70,columnNumber:9},this)]},void 0,!0,{fileName:rC,lineNumber:48,columnNumber:7},this)]},void 0,!0,{fileName:rC,lineNumber:44,columnNumber:5},this)}var oC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/SetupPage.tsx`,sC=[Xt.string({key:`displayName`,label:`auth.displayName`,required:!0}),Xt.string({key:`login`,label:`auth.login`,required:!0}),Xt.password({key:`password`,label:`auth.password`,required:!0})];function cC(){let{t:e}=a(),{values:t,bridge:n}=Pe({fm:hn(sC),mode:`edit`,recordCtx:{library:``,shelf:`auth`,recordId:`setup`},initial:{displayName:``,login:``,password:``}}),[r,i]=(0,L.useState)(null),[o,s]=(0,L.useState)(!1);async function c(n){n.preventDefault(),s(!0),i(null);let r=await nr(t.login,t.password,t.displayName);if(s(!1),!r.ok){i(e(`auth.genericError`));return}window.location.href=`/`}return(0,R.jsxDEV)(`div`,{className:`flex min-h-dvh items-center justify-center bg-bg px-4`,children:(0,R.jsxDEV)(`form`,{onSubmit:c,className:`w-full max-w-sm rounded-2xl border border-border bg-card p-6`,children:[(0,R.jsxDEV)(`h1`,{className:`mb-6 text-xl font-bold text-text`,children:e(`auth.setupTitle`)},void 0,!1,{fileName:oC,lineNumber:47,columnNumber:9},this),r&&(0,R.jsxDEV)(`div`,{className:`mb-4 rounded-lg border border-danger/40 bg-danger/10 px-3 py-2 text-sm text-danger`,children:r},void 0,!1,{fileName:oC,lineNumber:48,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`mb-5 flex flex-col gap-3`,children:(0,R.jsxDEV)(Le,{items:sC,ctx:{bridge:n}},void 0,!1,{fileName:oC,lineNumber:50,columnNumber:11},this)},void 0,!1,{fileName:oC,lineNumber:49,columnNumber:9},this),(0,R.jsxDEV)(F,{type:`submit`,disabled:o,className:`w-full`,children:e(`auth.createAccount`)},void 0,!1,{fileName:oC,lineNumber:52,columnNumber:9},this)]},void 0,!0,{fileName:oC,lineNumber:46,columnNumber:7},this)},void 0,!1,{fileName:oC,lineNumber:45,columnNumber:5},this)}var lC=null,uC=null;function dC(){let[e,t]=(0,L.useState)(lC);return(0,L.useEffect)(()=>{if(lC){t(lC);return}let e=!0;return uC??=fetch(`/api/libraries`).then(e=>e.json()).then(e=>lC=new Set(e.map(e=>e.id))),uC.then(n=>e&&t(n)).catch(()=>e&&t(null)),()=>{e=!1}},[]),e}var fC=`coffer-collapsed-libraries`;function pC(){try{let e=localStorage.getItem(fC);return new Set(e?JSON.parse(e):[])}catch{return new Set}}function mC(){let[e,t]=(0,L.useState)(()=>pC());return{collapsed:e,toggle:(0,L.useCallback)(e=>{t(t=>{let n=new Set(t);n.has(e)?n.delete(e):n.add(e);try{localStorage.setItem(fC,JSON.stringify([...n]))}catch{}return n})},[])}}var hC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/SidebarNav.tsx`;function gC({onSearchOpen:e}){let{t}=a(),n=dC(),{collapsed:r,toggle:i}=mC(),o=Ne();return(0,R.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,R.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto px-3 py-4`,children:[(0,R.jsxDEV)(l,{to:`/`,className:`flex items-center gap-2 mb-4 px-2 group`,title:t(`nav.home`),children:[(0,R.jsxDEV)(`div`,{className:`w-7 h-7 bg-accent rounded-lg flex items-center justify-center text-white text-xs font-bold`,children:`S`},void 0,!1,{fileName:hC,lineNumber:24,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`font-bold text-text group-hover:text-accent transition-colors`,children:`Coffer`},void 0,!1,{fileName:hC,lineNumber:27,columnNumber:11},this)]},void 0,!0,{fileName:hC,lineNumber:23,columnNumber:9},this),(0,R.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,R.jsxDEV)(me,{size:14,className:`shrink-0`},void 0,!1,{fileName:hC,lineNumber:36,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`flex-1 text-left truncate`,children:t(`search.title`)},void 0,!1,{fileName:hC,lineNumber:37,columnNumber:11},this),(0,R.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:hC,lineNumber:38,columnNumber:11},this)]},void 0,!0,{fileName:hC,lineNumber:29,columnNumber:9},this),o.filter(e=>!n||n.has(e.meta.id)).map(e=>{let n=r.has(e.meta.id);return(0,R.jsxDEV)(`div`,{className:`mb-0.5`,children:[(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>i(e.meta.id),className:`flex w-full items-center justify-between px-3 py-1.5 rounded-lg text-[10px] font-semibold text-muted uppercase tracking-widest hover:bg-elevated hover:text-text transition-colors`,children:[(0,R.jsxDEV)(`span`,{className:`truncate`,children:t(e.meta.label)},void 0,!1,{fileName:hC,lineNumber:53,columnNumber:19},this),(0,R.jsxDEV)(k,{size:13,className:`shrink-0 transition-transform ${n?`-rotate-90`:``}`},void 0,!1,{fileName:hC,lineNumber:54,columnNumber:19},this)]},void 0,!0,{fileName:hC,lineNumber:48,columnNumber:17},this),!n&&e.shelves.filter(e=>e.standalone!==!1).map(e=>(0,R.jsxDEV)(l,{to:`/${e.library}/${e.shelf}`,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm mb-px transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(we,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:hC,lineNumber:73,columnNumber:25},this),t(e.label)]},e.shelf,!0,{fileName:hC,lineNumber:63,columnNumber:23},this))]},e.meta.id,!0,{fileName:hC,lineNumber:47,columnNumber:15},this)}),On().map(e=>(0,R.jsxDEV)(l,{to:e.to,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm mb-px transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(we,{name:e.icon,size:17,className:`shrink-0`},void 0,!1,{fileName:hC,lineNumber:89,columnNumber:13},this),t(e.labelKey)]},e.to,!0,{fileName:hC,lineNumber:81,columnNumber:11},this)),(0,R.jsxDEV)(l,{to:`/trash`,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm mb-px transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(we,{name:`lucide:trash-2`,size:17,className:`shrink-0`},void 0,!1,{fileName:hC,lineNumber:100,columnNumber:11},this),` `,t(`nav.trash`)]},void 0,!0,{fileName:hC,lineNumber:93,columnNumber:9},this)]},void 0,!0,{fileName:hC,lineNumber:22,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`border-t border-border p-2 space-y-1`,children:[(0,R.jsxDEV)(qe,{},void 0,!1,{fileName:hC,lineNumber:105,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/settings`,className:({isActive:e})=>`flex items-center gap-2.5 px-3 py-2 rounded-lg text-sm transition-colors `+(e?`bg-accent/15 text-accent font-medium`:`text-muted hover:bg-elevated hover:text-text`),children:[(0,R.jsxDEV)(we,{name:`lucide:settings`,size:17,className:`shrink-0`},void 0,!1,{fileName:hC,lineNumber:113,columnNumber:11},this),` `,t(`nav.settings`)]},void 0,!0,{fileName:hC,lineNumber:106,columnNumber:9},this)]},void 0,!0,{fileName:hC,lineNumber:104,columnNumber:7},this)]},void 0,!0,{fileName:hC,lineNumber:21,columnNumber:5},this)}var _C=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/BottomNav.tsx`;function vC({onSearchOpen:e}){let{t}=a();return(0,R.jsxDEV)(`nav`,{className:`nav:hidden fixed bottom-0 left-0 right-0 z-40 border-t border-border bg-surface pb-safe`,children:(0,R.jsxDEV)(`div`,{className:`flex items-stretch`,children:[(0,R.jsxDEV)(l,{to:`/`,end:!0,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(he,{size:20,className:`shrink-0`},void 0,!1,{fileName:_C,lineNumber:22,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.home`)},void 0,!1,{fileName:_C,lineNumber:23,columnNumber:11},this)]},void 0,!0,{fileName:_C,lineNumber:14,columnNumber:9},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:e,className:`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors text-muted hover:text-text`,children:[(0,R.jsxDEV)(me,{size:20,className:`shrink-0`},void 0,!1,{fileName:_C,lineNumber:30,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.search`)},void 0,!1,{fileName:_C,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:_C,lineNumber:25,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/browse`,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(ws,{size:20,className:`shrink-0`},void 0,!1,{fileName:_C,lineNumber:40,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.browse`)},void 0,!1,{fileName:_C,lineNumber:41,columnNumber:11},this)]},void 0,!0,{fileName:_C,lineNumber:33,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/settings`,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(_e,{size:20,className:`shrink-0`},void 0,!1,{fileName:_C,lineNumber:50,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.settings`)},void 0,!1,{fileName:_C,lineNumber:51,columnNumber:11},this)]},void 0,!0,{fileName:_C,lineNumber:43,columnNumber:9},this),(0,R.jsxDEV)(l,{to:`/trash`,className:({isActive:e})=>`flex flex-1 flex-col items-center gap-0.5 py-2 transition-colors `+(e?`text-accent`:`text-muted hover:text-text`),children:[(0,R.jsxDEV)(ye,{size:20,className:`shrink-0`},void 0,!1,{fileName:_C,lineNumber:60,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`text-[10px] font-medium`,children:t(`nav.trash`)},void 0,!1,{fileName:_C,lineNumber:61,columnNumber:11},this)]},void 0,!0,{fileName:_C,lineNumber:53,columnNumber:9},this)]},void 0,!0,{fileName:_C,lineNumber:13,columnNumber:7},this)},void 0,!1,{fileName:_C,lineNumber:12,columnNumber:5},this)}var yC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/nav/CommandPalette.tsx`;function bC({open:e,onClose:t}){let{t:n}=a(),r=u(),i=dC(),[o,s]=(0,L.useState)(``),[c,l]=(0,L.useState)([]),[d,f]=(0,L.useState)(!1),[p,m]=(0,L.useState)(0),h=(0,L.useRef)(null);(0,L.useEffect)(()=>{e&&(s(``),l([]),m(0),setTimeout(()=>h.current?.focus(),50))},[e]),(0,L.useEffect)(()=>{if(o.length<2){l([]);return}let e=setTimeout(async()=>{f(!0);try{let e=await fetch(`/api/search?q=${encodeURIComponent(o)}&limit=15`);l(e.ok?await e.json():[])}catch{l([])}finally{f(!1)}},250);return()=>clearTimeout(e)},[o]);let g=Ne().filter(e=>!i||i.has(e.meta.id)).flatMap(e=>e.shelves.filter(e=>e.standalone!==!1).map(t=>({v:e,m:t}))),_=g.filter(({m:e})=>!o||n(e.label).toLowerCase().includes(o.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}`})),v=c.map(e=>{let t=g.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}`}}),y=o.length>=2?[...v,..._.slice(0,5)]:_,b=y.length>0?Math.min(p,y.length-1):0;function x(e){r(e.to),t()}function S(e){if(e.key===`Escape`){t();return}e.key===`ArrowDown`&&(e.preventDefault(),m(e=>Math.min(e+1,y.length-1))),e.key===`ArrowUp`&&(e.preventDefault(),m(e=>Math.max(e-1,0))),e.key===`Enter`&&y[b]&&x(y[b])}if(!e)return null;let C=o.length<2,T=o.length>=2&&v.length>0,E=o.length>=2&&_.length>0,D=y.length===0&&!d;return(0,R.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,R.jsxDEV)(`div`,{className:`absolute inset-0 bg-bg/70 backdrop-blur-sm`,onClick:t},void 0,!1,{fileName:yC,lineNumber:141,columnNumber:7},this),(0,R.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,R.jsxDEV)(`div`,{className:`px-4 pt-3 pb-1 text-[10px] font-semibold text-muted uppercase tracking-wider`,children:n(`search.title`)},void 0,!1,{fileName:yC,lineNumber:150,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex items-center gap-2 px-4 py-3 border-b border-border`,children:[(0,R.jsxDEV)(me,{size:16,className:`text-muted shrink-0`},void 0,!1,{fileName:yC,lineNumber:155,columnNumber:11},this),(0,R.jsxDEV)(`input`,{ref:h,type:`text`,value:o,onChange:e=>{s(e.target.value),m(0)},onKeyDown:S,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:yC,lineNumber:156,columnNumber:11},this),d&&(0,R.jsxDEV)(`span`,{className:`text-xs text-muted`,children:n(`common.loading`)},void 0,!1,{fileName:yC,lineNumber:169,columnNumber:23},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:t,className:`text-muted hover:text-text transition-colors`,children:(0,R.jsxDEV)(w,{size:16},void 0,!1,{fileName:yC,lineNumber:171,columnNumber:13},this)},void 0,!1,{fileName:yC,lineNumber:170,columnNumber:11},this)]},void 0,!0,{fileName:yC,lineNumber:154,columnNumber:9},this),(0,R.jsxDEV)(`ul`,{className:`max-h-80 overflow-y-auto py-1`,children:[D&&o.length>=2&&(0,R.jsxDEV)(`li`,{className:`px-4 py-6 text-center text-muted text-sm`,children:n(`search.noResults`)},void 0,!1,{fileName:yC,lineNumber:178,columnNumber:13},this),C&&(0,R.jsxDEV)(`li`,{className:`px-4 py-1.5 text-[10px] font-semibold text-muted uppercase tracking-wider`,children:n(`search.allShelves`)},void 0,!1,{fileName:yC,lineNumber:181,columnNumber:13},this),T&&(0,R.jsxDEV)(`li`,{className:`px-4 py-1.5 text-[10px] font-semibold text-muted uppercase tracking-wider`,children:n(`search.results`)},void 0,!1,{fileName:yC,lineNumber:186,columnNumber:13},this),y.map((e,t)=>(0,R.jsxDEV)(`li`,{children:[o.length>=2&&t>=v.length&&t===v.length&&E&&(0,R.jsxDEV)(`div`,{className:`px-4 py-1.5 text-[10px] font-semibold text-muted uppercase tracking-wider border-t border-border mt-1 pt-2`,children:n(`search.allShelves`)},void 0,!1,{fileName:yC,lineNumber:196,columnNumber:19},this),(0,R.jsxDEV)(`button`,{type:`button`,onClick:()=>x(e),onMouseEnter:()=>m(t),className:`w-full flex items-center gap-3 px-4 py-2 text-left transition-colors ${t===b?`bg-accent/15 text-text`:`text-text hover:bg-elevated`}`,children:[e.icon&&(0,R.jsxDEV)(we,{name:e.icon,size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:yC,lineNumber:208,columnNumber:33},this),(0,R.jsxDEV)(`span`,{className:`flex-1 min-w-0`,children:[(0,R.jsxDEV)(`span`,{className:`block text-sm font-medium truncate`,children:e.label},void 0,!1,{fileName:yC,lineNumber:210,columnNumber:21},this),e.sub&&(0,R.jsxDEV)(`span`,{className:`block text-xs text-muted truncate`,children:e.sub},void 0,!1,{fileName:yC,lineNumber:211,columnNumber:34},this)]},void 0,!0,{fileName:yC,lineNumber:209,columnNumber:19},this)]},void 0,!0,{fileName:yC,lineNumber:200,columnNumber:17},this)]},`${e.to}-${t}`,!0,{fileName:yC,lineNumber:194,columnNumber:15},this))]},void 0,!0,{fileName:yC,lineNumber:176,columnNumber:9},this)]},void 0,!0,{fileName:yC,lineNumber:144,columnNumber:7},this)]},void 0,!0,{fileName:yC,lineNumber:132,columnNumber:5},this)}var xC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Dashboard.tsx`;function SC(){let[e,t]=(0,L.useState)({});return(0,L.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 CC(){let{t:e}=a(),t=dC(),n=SC(),r=Ne().filter(e=>!t||t.has(e.meta.id));return(0,R.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,R.jsxDEV)(`div`,{className:`mx-auto max-w-5xl px-5 py-8 md:px-8`,children:[(0,R.jsxDEV)(`h1`,{className:`mb-6 text-[28px] font-bold text-text`,children:e(`dashboard.title`)},void 0,!1,{fileName:xC,lineNumber:31,columnNumber:9},this),r.length===0?(0,R.jsxDEV)(`p`,{className:`text-muted`,children:e(`dashboard.empty`)},void 0,!1,{fileName:xC,lineNumber:33,columnNumber:11},this):(0,R.jsxDEV)(`div`,{className:`grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3`,children:r.map(t=>{let r=t.shelves.filter(e=>e.standalone!==!1);return r.length===0?null:(0,R.jsxDEV)(`section`,{className:`rounded-2xl border border-border bg-surface p-4`,children:[(0,R.jsxDEV)(`h2`,{className:`mb-3 flex items-center gap-2 text-sm font-semibold uppercase tracking-wide text-muted`,children:[t.meta.icon&&(0,R.jsxDEV)(we,{name:t.meta.icon,size:16,className:`shrink-0`},void 0,!1,{fileName:xC,lineNumber:42,columnNumber:37},this),e(t.meta.label)]},void 0,!0,{fileName:xC,lineNumber:41,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-1`,children:r.map(t=>(0,R.jsxDEV)(l,{to:`/${t.library}/${t.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,R.jsxDEV)(we,{name:t.icon,size:17,className:`shrink-0 text-muted`},void 0,!1,{fileName:xC,lineNumber:52,columnNumber:25},this),(0,R.jsxDEV)(`span`,{className:`flex-1 truncate`,children:e(t.label)},void 0,!1,{fileName:xC,lineNumber:53,columnNumber:25},this),(0,R.jsxDEV)(`span`,{className:`shrink-0 rounded-full bg-accent/15 px-2 py-0.5 text-xs font-medium tabular-nums text-accent`,children:n[`${t.library}/${t.shelf}`]??`·`},void 0,!1,{fileName:xC,lineNumber:54,columnNumber:25},this)]},t.shelf,!0,{fileName:xC,lineNumber:47,columnNumber:23},this))},void 0,!1,{fileName:xC,lineNumber:45,columnNumber:19},this)]},t.meta.id,!0,{fileName:xC,lineNumber:40,columnNumber:17},this)})},void 0,!1,{fileName:xC,lineNumber:35,columnNumber:11},this)]},void 0,!0,{fileName:xC,lineNumber:30,columnNumber:7},this)},void 0,!1,{fileName:xC,lineNumber:29,columnNumber:5},this)}var wC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Browse.tsx`;function TC(){let{t:e}=a(),t=dC(),n=Ne().filter(e=>!t||t.has(e.meta.id));return(0,R.jsxDEV)(`div`,{className:`flex-1 overflow-y-auto`,children:(0,R.jsxDEV)(`div`,{className:`mx-auto max-w-2xl px-4 py-6`,children:[(0,R.jsxDEV)(`h1`,{className:`mb-5 text-2xl font-bold text-text`,children:e(`nav.browse`)},void 0,!1,{fileName:wC,lineNumber:17,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex flex-col gap-6`,children:n.map(t=>{let n=t.shelves.filter(e=>e.standalone!==!1);return n.length===0?null:(0,R.jsxDEV)(`section`,{children:[(0,R.jsxDEV)(`h2`,{className:`mb-2 flex items-center gap-2 px-1 text-[11px] font-semibold uppercase tracking-widest text-muted`,children:[t.meta.icon&&(0,R.jsxDEV)(we,{name:t.meta.icon,size:14,className:`shrink-0`},void 0,!1,{fileName:wC,lineNumber:25,columnNumber:35},this),e(t.meta.label)]},void 0,!0,{fileName:wC,lineNumber:24,columnNumber:17},this),(0,R.jsxDEV)(`div`,{className:`overflow-hidden rounded-2xl border border-border bg-surface`,children:n.map((t,n)=>(0,R.jsxDEV)(l,{to:`/${t.library}/${t.shelf}`,className:`flex items-center gap-3 px-4 py-3 text-text transition-colors hover:bg-elevated ${n>0?`border-t border-border`:``}`,children:[(0,R.jsxDEV)(we,{name:t.icon,size:20,className:`shrink-0 text-muted`},void 0,!1,{fileName:wC,lineNumber:37,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`flex-1 truncate text-sm font-medium`,children:e(t.label)},void 0,!1,{fileName:wC,lineNumber:38,columnNumber:23},this),(0,R.jsxDEV)(gs,{size:16,className:`shrink-0 text-muted`},void 0,!1,{fileName:wC,lineNumber:39,columnNumber:23},this)]},t.shelf,!0,{fileName:wC,lineNumber:30,columnNumber:21},this))},void 0,!1,{fileName:wC,lineNumber:28,columnNumber:17},this)]},t.meta.id,!0,{fileName:wC,lineNumber:23,columnNumber:15},this)})},void 0,!1,{fileName:wC,lineNumber:18,columnNumber:9},this)]},void 0,!0,{fileName:wC,lineNumber:16,columnNumber:7},this)},void 0,!1,{fileName:wC,lineNumber:15,columnNumber:5},this)}var EC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/TrashPage.tsx`;function DC(e){let t=Ne().flatMap(e=>e.shelves).find(t=>t.library===e.library&&t.shelf===e.shelf);return t?pn(t,e.record):String(e.record.name??e.record.id??``)}function OC(){let{t:e}=a(),[t,n]=(0,L.useState)([]),[r,i]=(0,L.useState)(!0),o=(0,L.useCallback)(async()=>{i(!0);try{n(await fr())}catch{y.error(e(`common.error`))}finally{i(!1)}},[e]);(0,L.useEffect)(()=>{o()},[o]);async function s(t){if(!await Kn(t.library,t.shelf,Number(t.record.id))){y.error(e(`common.error`));return}y.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 mr(t.library,t.shelf,Number(t.record.id))){y.error(e(`common.error`));return}y.success(e(`trash.purged`)),n(e=>e.filter(e=>e!==t))}}return(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,R.jsxDEV)(ze,{children:(0,R.jsxDEV)(`h1`,{className:`text-2xl font-bold text-text`,children:e(`trash.title`)},void 0,!1,{fileName:EC,lineNumber:66,columnNumber:9},this)},void 0,!1,{fileName:EC,lineNumber:65,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`p-4 sm:p-6 max-w-4xl w-full mx-auto`,children:[(0,R.jsxDEV)(`p`,{className:`text-sm text-muted mb-5`,children:e(`trash.description`)},void 0,!1,{fileName:EC,lineNumber:69,columnNumber:9},this),r?(0,R.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`common.loading`)},void 0,!1,{fileName:EC,lineNumber:71,columnNumber:11},this):t.length===0?(0,R.jsxDEV)(`div`,{className:`py-16 text-center text-muted`,children:e(`trash.empty`)},void 0,!1,{fileName:EC,lineNumber:73,columnNumber:11},this):(0,R.jsxDEV)(`div`,{className:`space-y-2`,children:t.map(t=>{let n=Number(t.record.id);return(0,R.jsxDEV)(`div`,{className:`flex items-center gap-3 rounded-xl border border-border bg-surface px-4 py-3`,children:[(0,R.jsxDEV)(ye,{size:18,className:`shrink-0 text-muted`},void 0,!1,{fileName:EC,lineNumber:83,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsxDEV)(`div`,{className:`truncate font-medium text-text`,children:DC(t)},void 0,!1,{fileName:EC,lineNumber:85,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:[e(t.label),` · `,t.library,`/`,t.shelf,` · #`,n]},void 0,!0,{fileName:EC,lineNumber:86,columnNumber:21},this),(0,R.jsxDEV)(`div`,{className:`text-xs text-muted`,children:String(t.record.deleted_at??``)},void 0,!1,{fileName:EC,lineNumber:87,columnNumber:21},this)]},void 0,!0,{fileName:EC,lineNumber:84,columnNumber:19},this),(0,R.jsxDEV)(`div`,{className:`flex shrink-0 gap-2`,children:[(0,R.jsxDEV)(F,{variant:`secondary`,size:`sm`,onClick:()=>void s(t),children:[(0,R.jsxDEV)(Os,{size:15},void 0,!1,{fileName:EC,lineNumber:91,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.restore`)},void 0,!1,{fileName:EC,lineNumber:92,columnNumber:23},this)]},void 0,!0,{fileName:EC,lineNumber:90,columnNumber:21},this),(0,R.jsxDEV)(F,{variant:`destructive`,size:`sm`,onClick:()=>void c(t),children:[(0,R.jsxDEV)(ye,{size:15},void 0,!1,{fileName:EC,lineNumber:95,columnNumber:23},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`trash.purge`)},void 0,!1,{fileName:EC,lineNumber:96,columnNumber:23},this)]},void 0,!0,{fileName:EC,lineNumber:94,columnNumber:21},this)]},void 0,!0,{fileName:EC,lineNumber:89,columnNumber:19},this)]},`${t.library}/${t.shelf}/${n}`,!0,{fileName:EC,lineNumber:79,columnNumber:17},this)})},void 0,!1,{fileName:EC,lineNumber:75,columnNumber:11},this)]},void 0,!0,{fileName:EC,lineNumber:68,columnNumber:7},this)]},void 0,!0,{fileName:EC,lineNumber:64,columnNumber:5},this)}var kC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/AccountSettingsPage.tsx`,AC=[Xt.string({key:`displayName`,label:`auth.fieldDisplayName`}),Xt.password({key:`password`,label:`auth.fieldPasswordOptional`}),Xt.internalApiToken({key:`apiTokens`,label:`auth.tokensTitle`}),Xt.internalOauthGrants({key:`oauthGrants`,label:`auth.grantsTitle`})];function jC(){let{t:e}=a(),[t,n]=(0,L.useState)(!1);async function r(){let e=await lr();return{displayName:e?.displayName??``,password:e?.password??``}}async function i(e){let t=await cr({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 sr()}finally{window.location.href=`/login`}}return(0,R.jsxDEV)(b,{fields:AC,recordCtx:{library:``,shelf:`account`,recordId:`me`},load:r,save:i,title:e(`auth.accountTitle`),backTo:`/settings`,backLabel:e(`settings.title`),footer:(0,R.jsxDEV)(`section`,{className:`mt-10 border-t border-border pt-6`,"aria-labelledby":`account-session-title`,children:[(0,R.jsxDEV)(`h2`,{id:`account-session-title`,className:`mb-1 text-sm font-semibold uppercase tracking-wide text-muted`,children:e(`auth.sessionTitle`)},void 0,!1,{fileName:kC,lineNumber:60,columnNumber:11},this),(0,R.jsxDEV)(We,{className:`flex items-center justify-between gap-4 px-4 py-3`,children:[(0,R.jsxDEV)(`p`,{className:`min-w-0 text-sm text-muted`,children:e(`auth.logoutDescription`)},void 0,!1,{fileName:kC,lineNumber:64,columnNumber:13},this),(0,R.jsxDEV)(F,{type:`button`,variant:`destructive`,size:`sm`,disabled:t,onClick:o,className:`shrink-0`,children:[(0,R.jsxDEV)(we,{name:`lucide:log-out`,size:16},void 0,!1,{fileName:kC,lineNumber:73,columnNumber:15},this),e(`auth.logout`)]},void 0,!0,{fileName:kC,lineNumber:65,columnNumber:13},this)]},void 0,!0,{fileName:kC,lineNumber:63,columnNumber:11},this)]},void 0,!0,{fileName:kC,lineNumber:59,columnNumber:9},this)},void 0,!1,{fileName:kC,lineNumber:50,columnNumber:5},this)}var MC=nn({shelf:`users`,library:``,label:`auth.usersTitle`,icon:`lucide:users`,views:{list:{fields:[`login`,`displayName`,`role`,`disabled`]}},fields:[Xt.string({key:`login`,label:`auth.fieldLogin`}),Xt.string({key:`displayName`,label:`auth.fieldDisplayName`}),Xt.select({key:`role`,label:`auth.fieldRole`,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),Xt.boolean({key:`disabled`,label:`auth.fieldDisabled`})]});function NC(e){if(!e)return null;let[t,n]=e.split(`:`);return!t||n!==`asc`&&n!==`desc`?null:{key:t,dir:n}}function PC(){let[e,t]=s(),[n,r]=(0,L.useState)(()=>e.get(`q`)??``),[i,a]=(0,L.useState)(n);(0,L.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=NC(e.get(`sort`));function c(e){t(t=>{let n=new URLSearchParams(t),r=NC(n.get(`sort`)),i;return i=!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 l(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:c,setSort:l}}var FC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/shared/Dialog.tsx`;function IC({title:e,onClose:t,children:n}){return(0,R.jsxDEV)(Cr,{open:!0,onOpenChange:e=>{e||t()},children:(0,R.jsxDEV)(xr,{children:[(0,R.jsxDEV)(br,{children:(0,R.jsxDEV)(yr,{children:e},void 0,!1,{fileName:FC,lineNumber:24,columnNumber:11},this)},void 0,!1,{fileName:FC,lineNumber:23,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`px-5 pb-5`,children:n},void 0,!1,{fileName:FC,lineNumber:26,columnNumber:9},this)]},void 0,!0,{fileName:FC,lineNumber:22,columnNumber:7},this)},void 0,!1,{fileName:FC,lineNumber:16,columnNumber:5},this)}var LC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/GroupPanel.tsx`,RC=`__none__`;function zC({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,R.jsxDEV)(`div`,{className:`folder-tree flex flex-col gap-2`,children:[(0,R.jsxDEV)(`div`,{className:`px-1 pt-1`,children:(0,R.jsxDEV)(`div`,{className:`folder-node${l===null?` active`:``}`,onClick:()=>u(null),children:[(0,R.jsxDEV)(`span`,{className:`folder-name`,children:r(`group.all`)},void 0,!1,{fileName:LC,lineNumber:30,columnNumber:11},this),(0,R.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:t},void 0,!1,{fileName:LC,lineNumber:31,columnNumber:11},this)]},void 0,!0,{fileName:LC,lineNumber:29,columnNumber:9},this)},void 0,!1,{fileName:LC,lineNumber:28,columnNumber:7},this),n&&n.keys.length>0&&(0,R.jsxDEV)(`div`,{className:`px-1 list:hidden`,children:[(0,R.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`list.sortBy`)},void 0,!1,{fileName:LC,lineNumber:39,columnNumber:11},this),(0,R.jsxDEV)(Xe,{value:n.value?`${n.value.key}:${n.value.dir}`:RC,onValueChange:e=>{if(e===RC)return n.onChange(null);let[t,r]=e.split(`:`);n.onChange({key:t,dir:r})},children:[(0,R.jsxDEV)(Qe,{className:`h-8 w-full text-sm`,children:(0,R.jsxDEV)(Ze,{placeholder:r(`list.sortBy`)},void 0,!1,{fileName:LC,lineNumber:49,columnNumber:15},this)},void 0,!1,{fileName:LC,lineNumber:48,columnNumber:13},this),(0,R.jsxDEV)(xt,{children:[(0,R.jsxDEV)(tt,{value:RC,children:r(`list.sortNone`)},void 0,!1,{fileName:LC,lineNumber:52,columnNumber:15},this),n.keys.flatMap(({key:e,label:t})=>[(0,R.jsxDEV)(tt,{value:`${e}:asc`,children:[t,` ↑`]},`${e}:asc`,!0,{fileName:LC,lineNumber:54,columnNumber:17},this),(0,R.jsxDEV)(tt,{value:`${e}:desc`,children:[t,` ↓`]},`${e}:desc`,!0,{fileName:LC,lineNumber:57,columnNumber:17},this)])]},void 0,!0,{fileName:LC,lineNumber:51,columnNumber:13},this)]},void 0,!0,{fileName:LC,lineNumber:40,columnNumber:11},this)]},void 0,!0,{fileName:LC,lineNumber:38,columnNumber:9},this),i.length>0&&(0,R.jsxDEV)(`div`,{className:`px-1`,children:[(0,R.jsxDEV)(`div`,{className:`folder-tree-header`,children:r(`group.field`)},void 0,!1,{fileName:LC,lineNumber:69,columnNumber:11},this),(0,R.jsxDEV)(Xe,{value:o??void 0,onValueChange:s,children:[(0,R.jsxDEV)(Qe,{className:`h-8 w-full text-sm`,children:(0,R.jsxDEV)(Ze,{placeholder:r(`group.field`)},void 0,!1,{fileName:LC,lineNumber:72,columnNumber:15},this)},void 0,!1,{fileName:LC,lineNumber:71,columnNumber:13},this),(0,R.jsxDEV)(xt,{children:i.map(e=>(0,R.jsxDEV)(tt,{value:e.key,children:e.label},e.key,!1,{fileName:LC,lineNumber:76,columnNumber:17},this))},void 0,!1,{fileName:LC,lineNumber:74,columnNumber:13},this)]},void 0,!0,{fileName:LC,lineNumber:70,columnNumber:11},this)]},void 0,!0,{fileName:LC,lineNumber:68,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`folder-tree-scroll`,children:(0,R.jsxDEV)(`div`,{className:`folder-tree-nodes`,children:c.map(e=>(0,R.jsxDEV)(`div`,{className:`folder-node${l===e.key?` active`:``}`,title:e.label,onClick:()=>u(e.key),children:[(0,R.jsxDEV)(`span`,{className:`folder-name truncate`,children:e.label},void 0,!1,{fileName:LC,lineNumber:95,columnNumber:15},this),(0,R.jsxDEV)(`span`,{className:`ml-auto shrink-0 tabular-nums text-xs text-muted`,children:e.count},void 0,!1,{fileName:LC,lineNumber:96,columnNumber:15},this)]},e.key,!0,{fileName:LC,lineNumber:89,columnNumber:13},this))},void 0,!1,{fileName:LC,lineNumber:87,columnNumber:9},this)},void 0,!1,{fileName:LC,lineNumber:86,columnNumber:7},this)]},void 0,!0,{fileName:LC,lineNumber:26,columnNumber:5},this)}function BC(e,t){let{t:n}=a(),r=t?hn(e.fields)[t]:void 0,i=r?.prim===`relation`?r.relation:void 0,o=r?.hints?.displayKey??`name`,{labelMap:s}=gv(i?.library??``,i?.shelf??``,o);return(0,L.useMemo)(()=>({t:n,labelMap:s}),[n,s])}function VC(e,t,n,r,i){let a=new Map,o=0;for(let i of t){let t=_r(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=[...a.entries()].map(([e,{label:t,n}])=>({key:e,label:t,count:n})).sort((e,t)=>t.count-e.count||e.label.localeCompare(t.label));return o>0&&s.push({key:HC,label:i,count:o}),s}var HC=`\0__none__`;function UC(e,t){let{t:n}=a(),r=hn(e.fields),i=(0,L.useMemo)(()=>an(e).filter(e=>r[e]),[e,r]),o=(0,L.useMemo)(()=>i.map(e=>({key:e,label:r[e]?n(r[e].label):e})),[i,r,n]),[c,l]=s(),u=c.get(`groupBy`),d=c.get(`groupItem`)??null,f=(0,L.useMemo)(()=>{if(u&&i.includes(u))return u;let t=ln(e);return t&&i.includes(t)?t:i[0]??null},[u,i,e]),p=BC(e,f);return{fields:o,field:f,setField:e=>{l(t=>{let n=new URLSearchParams(t);return n.set(`groupBy`,e),n.delete(`groupItem`),n},{replace:!0})},facets:(0,L.useMemo)(()=>{if(!f)return[];let e=r[f];return e?VC(e,t,f,p,n(`group.noValue`)):[]},[f,r,t,p,n]),selected:d,setSelected:e=>{l(t=>{let n=new URLSearchParams(t);return e===null?n.delete(`groupItem`):n.set(`groupItem`,e),n},{replace:!0})},filtered:(0,L.useMemo)(()=>{if(!f||d===null)return t;let e=r[f];return e?d===`\0__none__`?t.filter(t=>_r(e,t[f],p).length===0):t.filter(t=>_r(e,t[f],p).some(e=>e.value===d)):t},[t,f,r,d,p])}}function WC(e,t,n,r,i){let a=e=>{if(!r)return String(e[t]??``);let n=_r(r,e[t],i)[0];return n?.sort??n?.value??``};return[...e].sort((e,t)=>{let r=a(e).localeCompare(a(t),void 0,{numeric:!0,sensitivity:`base`});return n===`asc`?r:-r})}var GC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/EntityListView.tsx`;function KC({mod:e,hrefBase:t,fetchRows:n,onDelete:r,resetKey:i,cacheKey:o}){let{t:c}=a(),l=u(),[d,f]=(0,L.useState)(null),[p,m]=(0,L.useState)(!1),[h,g]=(0,L.useState)(0),{q:_,setQ:v,debouncedQ:b,sort:x,toggleSort:S,setSort:C}=PC(),[,w]=s(),T=Dt(`panel`,1e3),E=o?`${o}?${b}`:null,[D,O]=(0,L.useState)(()=>E?le(E)?.rows??[]:[]),[k,A]=(0,L.useState)(D.length===0),ee=(0,L.useRef)(0),te=(0,L.useCallback)(async(e=b)=>{let t=o?`${o}?${e}`:null,r=t?le(t):void 0;r&&O(r.rows),A(!r);let i=++ee.current;try{let r=await n(e);if(i!==ee.current)return;O(r),t&&se(t,r)}catch{i===ee.current&&!r&&O([])}finally{i===ee.current&&A(!1)}},[n,b,o]),ne=(0,L.useRef)(null);(0,L.useEffect)(()=>{i!==void 0&&(ne.current!==null&&ne.current!==i&&(v(``),w({},{replace:!0})),ne.current=i)},[i]),(0,L.useEffect)(()=>{te()},[te,h]);let j=UC(e,D),M=BC(e,x?.key??null),re=(0,L.useMemo)(()=>{if(!x)return j.filtered;let t=hn(e.fields)[x.key];return WC(j.filtered,x.key,x.dir,t,M)},[j.filtered,x,e,M]),ie=(0,L.useMemo)(()=>cn(e),[e]),ae=hn(e.fields),oe=(0,L.useMemo)(()=>{let t=sn(e),n=lc(t);if(!n)return console.error(`[list] unknown view '${t}' for ${e.library}/${e.shelf} — showing table`),lc(`table`);let r=n.check?.(e,ie);return r?(console.error(`[list] view '${t}' is not compatible with ${e.library}/${e.shelf}: ${r} — showing table`),lc(`table`)):n},[e,ie]),ce={keys:ie.map(e=>({key:e,label:YS(c,e,ae[e])})),value:x,onChange:C};function ue(){l(`${t}/new`)}let P=(0,L.useCallback)(async e=>{if(!await Ke({title:c(`actions.confirmDelete`),confirmLabel:c(`actions.delete`),variant:`destructive`}))return;f(e);let t=await r(e);if(f(null),!t.ok){y.error(t.error===`last_admin`?c(`auth.lastAdminError`):c(`common.error`));return}o&&(N(o),qS(o)),g(e=>e+1)},[r,c,o]);return(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,R.jsxDEV)(ze,{actions:(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`relative w-[220px] hidden nav:block`,children:[(0,R.jsxDEV)(me,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:GC,lineNumber:189,columnNumber:15},this),(0,R.jsxDEV)(`input`,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:c(`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:GC,lineNumber:190,columnNumber:15},this)]},void 0,!0,{fileName:GC,lineNumber:188,columnNumber:13},this),(0,R.jsxDEV)(F,{variant:`secondary`,size:`icon`,className:`panel:hidden`,onClick:()=>m(!0),children:(0,R.jsxDEV)(Es,{size:16},void 0,!1,{fileName:GC,lineNumber:201,columnNumber:15},this)},void 0,!1,{fileName:GC,lineNumber:200,columnNumber:13},this),(0,R.jsxDEV)(F,{onClick:ue,children:[(0,R.jsxDEV)(Wt,{size:16},void 0,!1,{fileName:GC,lineNumber:204,columnNumber:15},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:c(`actions.new`)},void 0,!1,{fileName:GC,lineNumber:205,columnNumber:15},this)]},void 0,!0,{fileName:GC,lineNumber:203,columnNumber:13},this)]},void 0,!0,{fileName:GC,lineNumber:186,columnNumber:11},this),children:[(0,R.jsxDEV)(we,{name:e.icon,size:20,className:`shrink-0 text-text`},void 0,!1,{fileName:GC,lineNumber:210,columnNumber:9},this),(0,R.jsxDEV)(`h1`,{className:`text-base font-bold text-text truncate`,children:c(e.label)},void 0,!1,{fileName:GC,lineNumber:211,columnNumber:9},this),(0,R.jsxDEV)(`span`,{className:`text-xs font-medium bg-accent/15 text-accent rounded-full px-2 py-0.5 tabular-nums shrink-0`,children:re.length},void 0,!1,{fileName:GC,lineNumber:212,columnNumber:9},this),k&&D.length>0&&(0,R.jsxDEV)(Ot,{size:13,className:`animate-spin text-muted shrink-0`,"aria-hidden":!0},void 0,!1,{fileName:GC,lineNumber:216,columnNumber:40},this)]},void 0,!0,{fileName:GC,lineNumber:184,columnNumber:7},this),(0,R.jsxDEV)(`div`,{className:`flex items-start`,children:[T&&(0,R.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,R.jsxDEV)(`div`,{className:`pt-2`,children:(0,R.jsxDEV)(zC,{grouping:j,total:D.length,sort:ce},void 0,!1,{fileName:GC,lineNumber:225,columnNumber:15},this)},void 0,!1,{fileName:GC,lineNumber:224,columnNumber:13},this)},void 0,!1,{fileName:GC,lineNumber:223,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:re.length===0?k?(0,R.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted`,children:(0,R.jsxDEV)(Ot,{size:28,className:`animate-spin`},void 0,!1,{fileName:GC,lineNumber:237,columnNumber:17},this)},void 0,!1,{fileName:GC,lineNumber:236,columnNumber:15},this):(0,R.jsxDEV)(`div`,{className:`flex flex-col items-center justify-center gap-4 py-20 text-muted`,children:[(0,R.jsxDEV)(we,{name:e.icon,size:48,className:`text-muted`},void 0,!1,{fileName:GC,lineNumber:241,columnNumber:17},this),(0,R.jsxDEV)(`p`,{className:`text-base`,children:c(`list.empty`)},void 0,!1,{fileName:GC,lineNumber:242,columnNumber:17},this),(0,R.jsxDEV)(F,{onClick:ue,children:[(0,R.jsxDEV)(Wt,{size:16},void 0,!1,{fileName:GC,lineNumber:244,columnNumber:19},this),` `,c(`actions.addFirst`)]},void 0,!0,{fileName:GC,lineNumber:243,columnNumber:17},this)]},void 0,!0,{fileName:GC,lineNumber:240,columnNumber:15},this):(0,R.jsxDEV)(oe.View,{rows:re,shelf:e,keys:ie,hrefBase:t,onDelete:P,deletingId:d,sort:x,onToggleSort:S,scrollKey:E??void 0},void 0,!1,{fileName:GC,lineNumber:249,columnNumber:13},this)},void 0,!1,{fileName:GC,lineNumber:231,columnNumber:9},this)]},void 0,!0,{fileName:GC,lineNumber:220,columnNumber:7},this),p&&(0,R.jsxDEV)(IC,{title:c(`group.title`),onClose:()=>m(!1),children:[(0,R.jsxDEV)(`div`,{className:`relative mb-4 nav:hidden`,children:[(0,R.jsxDEV)(me,{size:15,className:`absolute left-2.5 top-1/2 -translate-y-1/2 text-muted pointer-events-none`},void 0,!1,{fileName:GC,lineNumber:269,columnNumber:13},this),(0,R.jsxDEV)(`input`,{type:`search`,value:_,onChange:e=>v(e.target.value),placeholder:c(`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:GC,lineNumber:270,columnNumber:13},this)]},void 0,!0,{fileName:GC,lineNumber:268,columnNumber:11},this),(0,R.jsxDEV)(zC,{grouping:j,total:D.length,sort:ce},void 0,!1,{fileName:GC,lineNumber:279,columnNumber:11},this)]},void 0,!0,{fileName:GC,lineNumber:266,columnNumber:9},this)]},void 0,!0,{fileName:GC,lineNumber:182,columnNumber:5},this)}var qC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UsersListPage.tsx`;function JC(){return(0,R.jsxDEV)(KC,{mod:MC,hrefBase:`/settings/users`,fetchRows:async e=>{let t=await hr(e);return t.ok?t.data:[]},onDelete:async e=>{let t=await $n(Number(e));return t.ok?{ok:!0}:t.status===409?{ok:!1,error:`last_admin`}:{ok:!1}}},void 0,!1,{fileName:qC,lineNumber:7,columnNumber:5},this)}var YC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserCreatePage.tsx`,XC=[Xt.string({key:`login`,label:`auth.fieldLogin`,required:!0}),Xt.string({key:`displayName`,label:`auth.fieldDisplayName`,required:!0}),Xt.password({key:`password`,label:`auth.password`,required:!0}),Xt.select({key:`role`,label:`auth.fieldRole`,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]})];function ZC(){let{t:e}=a(),t=u();async function n(){return{login:``,displayName:``,password:``,role:`member`}}async function r(e){let n=await ar({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,R.jsxDEV)(b,{fields:XC,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:YC,lineNumber:46,columnNumber:5},this)}var QC=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/UserEditPage.tsx`,$C=[Xt.string({key:`displayName`,label:`auth.fieldDisplayName`}),Xt.select({key:`role`,label:`auth.fieldRole`,options:[{value:`admin`,title:`auth.roleAdmin`},{value:`member`,title:`auth.roleMember`}]}),Xt.boolean({key:`disabled`,label:`auth.fieldDisabled`}),Xt.password({key:`password`,label:`auth.fieldPasswordOptional`})];function ew(){let{id:e}=_(),{t}=a(),n=Number(e);async function r(){let e=await hr(),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 rr(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,R.jsxDEV)(b,{fields:$C,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:QC,lineNumber:50,columnNumber:5},this)}var tw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/list/ShelfView.tsx`;function nw(){let{t:e}=a(),{library:t,shelf:n}=_(),r=Ne().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),i=(0,L.useCallback)(async e=>{let r=e?`?q=${encodeURIComponent(e)}`:``;try{return await er(`/api/${t}/${n}${r}`)}catch{return[]}},[t,n]),o=(0,L.useCallback)(async e=>(await dr(t,n,e),{ok:!0}),[t,n]);return!r||r.standalone===!1?(0,R.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:tw,lineNumber:37,columnNumber:44},this):(0,R.jsxDEV)(KC,{mod:r,hrefBase:`/${t}/${n}`,resetKey:`${t}:${n}`,cacheKey:`${t}/${n}`,fetchRows:i,onDelete:o},void 0,!1,{fileName:tw,lineNumber:40,columnNumber:5},this)}function rw(e,t){let n={muted:[]};for(let[r,i]of fn(e.fields)){if(i.virtual||_n(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 iw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/display/index.tsx`;function aw(e){return e!=null&&e!==``}function ow(e,t,n,r,i){return e||!n?Promise.resolve(void 0):t(()=>n(r,i))}var sw=new Set([`image`,`media`,`poster`,`cover`]);function cw({field:e,fieldKey:t,label:n,value:r,recordCtx:i,onChange:a,editAll:o}){return o?(0,R.jsxDEV)(gr,{field:e,fieldKey:t,label:n,value:r,mode:`edit`,recordCtx:i,onChange:a},void 0,!1,{fileName:iw,lineNumber:102,columnNumber:7},this):sw.has(e.kind)?oy(r).length?(0,R.jsxDEV)(`div`,{className:`group/field relative`,children:(0,R.jsxDEV)(fy,{value:r,banner:!0},void 0,!1,{fileName:iw,lineNumber:146,columnNumber:7},this)},void 0,!1,{fileName:iw,lineNumber:145,columnNumber:5},this):(0,R.jsxDEV)(gr,{field:e,fieldKey:t,label:n,value:r,mode:`view`,recordCtx:i,onChange:a},void 0,!1,{fileName:iw,lineNumber:131,columnNumber:7},this):(0,R.jsxDEV)(gr,{field:e,fieldKey:t,label:n,value:r,mode:`view`,recordCtx:i,onChange:a},void 0,!1,{fileName:iw,lineNumber:115,columnNumber:7},this)}function lw(e,t,n,r){let{t:i}=a(),[o,s]=(0,L.useState)(!1),[c,l]=(0,L.useState)({}),[u,d]=(0,L.useState)({}),[f,p]=(0,L.useState)(!1),m=t=>t in c?c[t]:e?.[t],h=(e,t)=>l(n=>({...n,[e]:t})),g=(e,t,n)=>u[e]&&t in u[e]?u[e][t]:n?.[t],_=(e,t,n)=>d(r=>({...r,[e]:{...r[e],[t]:n}}));async function v(){if(!t)return;p(!0);let e=y.loading(i(`save.saving`)),a;if(r){let e={...c};for(let[t,n]of Object.entries(u))Object.keys(n).length&&(e[`_extend_${t}`]=n);Object.keys(e).length&&(a=await r(e)??void 0)}else{for(let[e,n]of Object.entries(c))a??=await t(e,n)??void 0;if(n)for(let[e,t]of Object.entries(u))for(let[r,i]of Object.entries(t))a??=await n(e,r,i)??void 0}if(p(!1),a){y.error(a,{id:e});return}y.success(i(`save.done`),{id:e}),s(!1),l({}),d({})}return{editAll:o,savingAll:f,startAll:()=>{l({}),d({}),s(!0)},cancelAll:()=>{s(!1),l({}),d({})},saveAll:v,baseVal:m,setBaseDraft:h,extVal:g,setExtDraft:_}}function uw({shelf:e,record:t,onUpdate:n,onUpdateExtend:r,edit:i,errorAt:o=(()=>void 0)}){let{t:s}=a(),{saving:c,run:l}=Q_(),u=hn(e.fields),d=e=>{let t=u[e];return t?.label?s(t.label):e},f=(e,t)=>{let n=u[e]?.options?.find(e=>e.value===String(t));return n?s(n.title):String(t)},p=dn(e),m=(0,L.useMemo)(()=>u[p]??{kind:`text`,label:`core.fields.name`,required:!1,prim:`text`,hints:{},column:`text`,zod:void 0},[u,p]),h=!!n,g={library:e.library,shelf:e.shelf,recordId:String(t.id)},_=(0,L.useMemo)(()=>{let n={...t};if(i?.editAll)for(let[t]of fn(e.fields))n[t]=i.baseVal(t);return n},[t,i?.editAll,i?.baseVal,e.fields]),v=(0,L.useMemo)(()=>rw(e,_),[e,_]),y=(0,L.useMemo)(()=>new Set([v.cover?.key,v.avatar?.key,...v.muted.map(e=>e.key)].filter(Boolean)),[v]),b=i?.editAll?`edit`:`view`,x=e=>i?.editAll?i.baseVal(e):t[e],S=!!(v.cover&&!i?.editAll&&sw.has(v.cover.field.kind)&&oy(x(v.cover.key)).length>0),C=e=>i?.editAll?t=>i.setBaseDraft(e,t):n?t=>ow(c,l,n,e,t):void 0,w={bridge:{mode:i?.editAll?`edit`:`view`,recordCtx:g,values:_,getValue:e=>i?.editAll?i.baseVal(e):t[e],setValue:(e,t)=>{i?.editAll?i.setBaseDraft(e,t):ow(c,l,n,e,t)},isHidden:e=>{if(e===p||y.has(e))return!0;let t=u[e];return!!(t?.virtual||_n(t?.hidden,_))},requiredOf:e=>_n(u[e]?.required,_),error:e=>o([e]),touch:()=>{}}},T=(0,L.useMemo)(()=>Ie(e.library,e.shelf).map(e=>({ext:e,data:t._extends?.[e.id]})).filter(({ext:e,data:t})=>t!=null&&fn(e.fields).some(([e])=>aw(t[e]))||e.showWhen!=null&&tn(e.showWhen,_)),[e.library,e.shelf,t,_]);return(0,R.jsxDEV)(Re.Provider,{value:o,children:(0,R.jsxDEV)(`article`,{className:`max-w-7xl mx-auto px-5 py-8 md:px-8 md:py-10 flex flex-col ${It}`,children:[v.cover&&(0,R.jsxDEV)(`div`,{className:S?`-mx-5 -mt-8 md:-mx-8 md:-mt-10`:``,children:(0,R.jsxDEV)(cw,{field:v.cover.field,fieldKey:v.cover.key,label:d(v.cover.key),value:x(v.cover.key),recordCtx:g,onChange:C(v.cover.key),editAll:i?.editAll},void 0,!1,{fileName:iw,lineNumber:380,columnNumber:11},this)},void 0,!1,{fileName:iw,lineNumber:379,columnNumber:9},this),(0,R.jsxDEV)(`header`,{className:`flex items-center gap-4`,role:`heading`,"aria-level":1,children:[v.avatar&&(0,R.jsxDEV)(`div`,{className:`shrink-0`,children:(0,R.jsxDEV)(gr,{field:v.avatar.field,fieldKey:v.avatar.key,label:d(v.avatar.key),value:x(v.avatar.key),mode:b,recordCtx:g,onChange:C(v.avatar.key)},void 0,!1,{fileName:iw,lineNumber:397,columnNumber:13},this)},void 0,!1,{fileName:iw,lineNumber:396,columnNumber:11},this),(0,R.jsxDEV)(`div`,{className:`min-w-0 flex-1`,children:(0,R.jsxDEV)(gr,{field:m,fieldKey:p,value:x(p),mode:b,recordCtx:g,onChange:C(p)},void 0,!1,{fileName:iw,lineNumber:409,columnNumber:11},this)},void 0,!1,{fileName:iw,lineNumber:408,columnNumber:9},this)]},void 0,!0,{fileName:iw,lineNumber:394,columnNumber:7},this),(0,R.jsxDEV)(Le,{items:e.fields,ctx:w},void 0,!1,{fileName:iw,lineNumber:421,columnNumber:7},this),T.map(({ext:n,data:a})=>(0,R.jsxDEV)(dw,{ext:n,data:a,m:e,recordId:String(t.id),editable:h,edit:i,onUpdateExtend:r,fieldLabelOf:d,valueLabelOf:f},n.id,!1,{fileName:iw,lineNumber:426,columnNumber:9},this)),v.muted.length>0&&(0,R.jsxDEV)(`div`,{className:`border-t border-border pt-3 flex flex-col gap-1.5`,children:v.muted.map(({key:e,field:t})=>(0,R.jsxDEV)(gr,{field:t,fieldKey:e,label:d(e),value:x(e),mode:b,recordCtx:g,onChange:C(e)},e,!1,{fileName:iw,lineNumber:444,columnNumber:13},this))},void 0,!1,{fileName:iw,lineNumber:442,columnNumber:9},this)]},void 0,!0,{fileName:iw,lineNumber:374,columnNumber:5},this)},void 0,!1,{fileName:iw,lineNumber:373,columnNumber:5},this)}function dw({ext:e,data:t,m:n,recordId:r,editable:i,edit:o,onUpdateExtend:s,fieldLabelOf:c,valueLabelOf:l}){let{t:u}=a(),{saving:d,run:f}=Q_(),p=o?.editAll?`edit`:`view`,m=Le({items:e.fields,ctx:{renderField:(a,c)=>c.virtual||!i&&!aw(t?.[a])?null:(0,R.jsxDEV)(gr,{field:c,fieldKey:a,extId:e.id,value:o?.editAll?o.extVal(e.id,a,t):t?.[a],label:c.label?u(c.label):void 0,required:c.required===!0,mode:p,recordCtx:{library:n.library,shelf:n.shelf,recordId:r},onChange:o?.editAll?t=>o.setExtDraft(e.id,a,t):s?t=>ow(d,f,(t,n)=>s(e.id,t,n),a,t):void 0},void 0,!1,{fileName:iw,lineNumber:502,columnNumber:9},this),renderGroup:(a,c)=>{let l=o?.editAll?o.extVal(e.id,a,t):t?.[a];if(!i&&!aw(l))return null;let u=Sn({kind:Tn(c)});return u?(0,R.jsxDEV)(u.Page,{el:c,value:l,mode:p,recordCtx:{library:n.library,shelf:n.shelf,recordId:r},onChange:o?.editAll?t=>o.setExtDraft(e.id,a,t):s?t=>ow(d,f,(t,n)=>s(e.id,t,n),a,t):void 0},void 0,!1,{fileName:iw,lineNumber:527,columnNumber:9},this):null}}});return m==null?null:(0,R.jsxDEV)(`div`,{className:`border-t border-border pt-6`,children:(0,R.jsxDEV)(je,{label:u(e.label),icon:e.icon??`lucide:puzzle`,rail:!1,tone:`section`,labelAfter:(0,R.jsxDEV)(pe,{ext:e,fieldLabel:c,valueLabel:l},void 0,!1,{fileName:iw,lineNumber:556,columnNumber:21},this),children:m},void 0,!1,{fileName:iw,lineNumber:551,columnNumber:7},this)},void 0,!1,{fileName:iw,lineNumber:550,columnNumber:5},this)}function fw(e){return c(()=>import(e),[])}var pw=Object.assign({"../plugin-claude-agent/src/index.ts":()=>c(()=>import(`./src-CaN2oqQE.js`),__vite__mapDeps([28,29,1,30,31])),"../plugin-console/src/index.ts":()=>c(()=>import(`./src-DtIj8-CE.js`),__vite__mapDeps([32,29,1,30,31])),"../plugin-core/src/index.ts":()=>c(()=>import(`./src-D49LGQ58.js`),__vite__mapDeps([33,34,29,1,35,30,31])),"../plugin-devices/src/index.ts":()=>c(()=>import(`./src-UycGO1Ve.js`),__vite__mapDeps([36,37,29,1,38,39,40,30,31])),"../plugin-documents/src/index.ts":()=>c(()=>import(`./src-CJE27ksq.js`),__vite__mapDeps([41,29,1,39,40,30])),"../plugin-drone/src/index.ts":()=>c(()=>import(`./src-qmUWHIuy.js`),__vite__mapDeps([42,29,1,40,39,30])),"../plugin-finance/src/index.ts":()=>c(()=>import(`./src-BpfdeepB.js`),__vite__mapDeps([43,44,29,1,39,40,30,31])),"../plugin-garden/src/index.ts":()=>c(()=>import(`./src-B_SQm4m2.js`),__vite__mapDeps([45,29,1,39,30])),"../plugin-geo/src/index.ts":()=>c(()=>import(`./src-DNRPYtVW.js`),__vite__mapDeps([46,30])),"../plugin-health/src/index.ts":()=>c(()=>import(`./src-CEzuKpEh.js`),__vite__mapDeps([47,29,1,39,40,30,31])),"../plugin-home/src/index.ts":()=>c(()=>import(`./src-2_pykFU4.js`),__vite__mapDeps([48,29,1,39,30])),"../plugin-http/src/index.ts":()=>c(()=>import(`./src-Ba-jB65j.js`),__vite__mapDeps([49,29,1,30,31])),"../plugin-kitchen/src/index.ts":()=>c(()=>import(`./src-BKiejyjC.js`),__vite__mapDeps([50,29,1,39,30])),"../plugin-lab/src/index.ts":()=>c(()=>import(`./src-D8vyOddU.js`),__vite__mapDeps([51,29,1,39,40,30,31,38,37,44])),"../plugin-media/src/index.ts":()=>c(()=>import(`./src-BS0Fu0Fq.js`),__vite__mapDeps([52,29,1,39,30,31])),"../plugin-orchestrator/src/index.ts":()=>c(()=>import(`./src-DEBwxHUA.js`),__vite__mapDeps([53,29,1,30,31])),"../plugin-people/src/index.ts":()=>c(()=>import(`./src-41AhrwZ4.js`),__vite__mapDeps([54,29,1,39,30])),"../plugin-telegram/src/index.ts":()=>c(()=>import(`./src-B-9OrFPA.js`),__vite__mapDeps([55,29,1,30,31])),"../plugin-things/src/index.ts":()=>c(()=>import(`./src-D2RcwCOa.js`),__vite__mapDeps([56,29,1,39,30])),"../plugin-transit/src/index.ts":()=>c(()=>import(`./src-dtQwwxRD.js`),__vite__mapDeps([57,29,1,39,30,31])),"../plugin-travel/src/index.ts":()=>c(()=>import(`./src-DwfQCgYj.js`),__vite__mapDeps([58,29,1,39,30])),"../plugin-webchat/src/index.ts":()=>c(()=>import(`./src-Dz6ZM88a.js`),__vite__mapDeps([59,29,1,30,31])),"../plugin-webexport/src/index.ts":()=>c(()=>import(`./src-BpJzKzOW.js`),__vite__mapDeps([60,29,1,30,31]))}),mw=Object.assign({"../plugin-devices/src/fields/ui.tsx":()=>c(()=>import(`./ui-BBV3pDRp.js`),__vite__mapDeps([61,1,2,3,25,24,4,26,5,6,62,63,34,64,65,66,67,29,68,69,70,37])),"../plugin-geo/src/ui.tsx":()=>c(()=>import(`./ui-_GSLTUsI.js`),__vite__mapDeps([71,1,2,3,24,4,25,26,5,6,63,34,64,62,65,66,70,67,29,39,68,72])),"../plugin-webchat/src/ui/ui.tsx":()=>c(()=>import(`./ui-C8hTdKa2.js`),__vite__mapDeps([73,3,1,2,67,29,68]))});[...Object.keys(pw),...Object.keys(mw)];async function hw(e,t){let n=Object.entries(pw).find(([t])=>t.includes(`/plugin-${e}/`));if(!n)return null;let r=(await n[1]()).default??null;for(let[n,r]of Object.entries(mw)){if(!n.includes(`/plugin-${e}/`))continue;let i=(await r()).default;i&&t(i)}return r}var gw={};function _w(e,t){return gw[`${e}/${t}`]}function vw(e){kn(e),e.shelf?.RecordView&&e.shelf.library&&e.shelf.shelf&&(gw[`${e.shelf.library}/${e.shelf.shelf}`]=e.shelf.RecordView);for(let t of e.renderers??[])I(t);for(let t of e.listViews??[])cc(t);for(let[t,n]of Object.entries(e.templates??{}))bn(t,n);for(let[t,n]of Object.entries(e.translations??{}))n&&jr.addResourceBundle(t,`translation`,n,!0,!0)}function yw(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 bw(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 xw(){let e=await fetch(`/api/plugins`);if(!e.ok)throw Error(`[federation] /api/plugins ${e.status}`);let t=bw((await e.json()).filter(e=>e.enabled)),n=await Promise.all(t.map(async e=>{{let t=[],n=await hw(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 fw(e.schema).catch(t=>{console.error(`[federation] ${e.id}: schema failed, skipping plugin —`,t)});return t?{e,schemaMod:t,webMod:e.web?await fw(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??[])vw(e);continue}let n=a?.default;if(!n)continue;r.push(n),e.css&&yw(e.css);let s=o?.default;s&&vw(s)}catch(t){console.error(`[federation] ${e.id}: applying bundle failed —`,t)}return r}var Sw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/record/RecordView.tsx`;function Cw(){let{t:e}=a(),{library:t,shelf:n,id:r}=_(),i=u(),o=Ne().flatMap(e=>e.shelves).find(e=>e.library===t&&e.shelf===n),[s,c]=(0,L.useState)(null),l=(0,L.useRef)(s);(0,L.useEffect)(()=>{l.current=s},[s]);let[d,f]=(0,L.useState)({}),[p,m]=(0,L.useState)(!1),h=Me(e),g=e=>d[e.join(`.`)],v=lw(s,b,x,S);if((0,L.useEffect)(()=>{if(!o||o.standalone===!1||!r)return;let e=new AbortController;return fetch(`/api/${o.library}/${o.shelf}/${r}`,{signal:e.signal}).then(e=>e.ok?e.json():null).then(c).catch(()=>{}),()=>e.abort()},[o,r]),!o||o.standalone===!1)return(0,R.jsxDEV)(`div`,{className:`p-6 text-muted`,children:e(`common.notFound`)},void 0,!1,{fileName:Sw,lineNumber:52,columnNumber:44},this);async function b(t,n){if(!o||!r)return;let i=l.current?.[t];f(e=>Oe(e,t)),c(e=>e&&{...e,[t]:n});let a=await ir(o.library,o.shelf,r,{[t]:n});if(a.ok){c(a.row??null),de(`${o.library}/${o.shelf}`,a.row??{});return}c(e=>e&&{...e,[t]:i});let s=Be(a.issues??[],h);f(e=>({...Oe(e,t),...s}));let u=(a.issues??[]).find(e=>e.field===t)??a.issues?.[0];return u?h(u.code,u.params):e(`validation.server`)}async function x(t,n,i){if(!o||!r)return;let a=l.current?._extends?.[t]?.[n];f(e=>Oe(e,n)),c(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:i}}}});let s=await ir(o.library,o.shelf,r,{[`_extend_${t}`]:{[n]:i}});if(s.ok){c(s.row??null),de(`${o.library}/${o.shelf}`,s.row??{});return}c(e=>{if(!e)return e;let r=e._extends??{};return{...e,_extends:{...r,[t]:{...r[t],[n]:a}}}}),f(e=>({...Oe(e,n),...Be(s.issues??[],h)}));let u=(s.issues??[]).find(e=>e.field===n)??s.issues?.[0];return u?h(u.code,u.params):e(`validation.server`)}async function S(t){if(!o||!r)return;f(e=>Object.keys(t).reduce((e,t)=>Oe(e,t),e));let n=await ir(o.library,o.shelf,r,t);if(n.ok){c(n.row??null),de(`${o.library}/${o.shelf}`,n.row??{});return}f(e=>({...Object.keys(t).reduce((e,t)=>Oe(e,t),e),...Be(n.issues??[],h)}));let i=n.issues?.[0];return i?h(i.code,i.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 dr(o.library,o.shelf,r);if(m(!1),!t){y.error(e(`common.error`));return}N(`${o.library}/${o.shelf}`),i(`/${o.library}/${o.shelf}`)}let T=_w(o.library,o.shelf);return(0,R.jsxDEV)(X_,{children:(0,R.jsxDEV)(`div`,{className:`flex flex-col`,children:[(0,R.jsxDEV)(ze,{actions:s&&!T&&(v.editAll?(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(F,{disabled:v.savingAll,onClick:v.saveAll,children:[(0,R.jsxDEV)(Je,{size:16},void 0,!1,{fileName:Sw,lineNumber:152,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`actions.save`)},void 0,!1,{fileName:Sw,lineNumber:153,columnNumber:19},this)]},void 0,!0,{fileName:Sw,lineNumber:151,columnNumber:17},this),(0,R.jsxDEV)(F,{variant:`secondary`,size:`icon`,disabled:v.savingAll,onClick:v.cancelAll,title:e(`actions.cancel`),children:(0,R.jsxDEV)(w,{size:16},void 0,!1,{fileName:Sw,lineNumber:162,columnNumber:19},this)},void 0,!1,{fileName:Sw,lineNumber:155,columnNumber:17},this)]},void 0,!0,{fileName:Sw,lineNumber:150,columnNumber:15},this):(0,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(F,{onClick:v.startAll,title:e(`actions.editAll`),children:[(0,R.jsxDEV)(Pt,{size:16},void 0,!1,{fileName:Sw,lineNumber:168,columnNumber:19},this),(0,R.jsxDEV)(`span`,{className:`hidden sm:inline`,children:e(`actions.edit`)},void 0,!1,{fileName:Sw,lineNumber:169,columnNumber:19},this)]},void 0,!0,{fileName:Sw,lineNumber:167,columnNumber:17},this),(0,R.jsxDEV)(F,{variant:`destructive`,size:`icon`,disabled:p,onClick:C,title:e(`actions.delete`),children:(0,R.jsxDEV)(ye,{size:16},void 0,!1,{fileName:Sw,lineNumber:178,columnNumber:19},this)},void 0,!1,{fileName:Sw,lineNumber:171,columnNumber:17},this)]},void 0,!0,{fileName:Sw,lineNumber:166,columnNumber:15},this)),children:(0,R.jsxDEV)(F,{variant:`ghost`,size:`sm`,className:`px-2 bg-bg/60 border border-border/50 shadow-sm backdrop-blur-sm hover:bg-bg/80`,onClick:()=>i(`/${t}/${n}`),children:[(0,R.jsxDEV)(De,{size:18},void 0,!1,{fileName:Sw,lineNumber:190,columnNumber:13},this),(0,R.jsxDEV)(`span`,{className:`text-sm`,children:e(o.label)},void 0,!1,{fileName:Sw,lineNumber:191,columnNumber:13},this)]},void 0,!0,{fileName:Sw,lineNumber:184,columnNumber:11},this)},void 0,!1,{fileName:Sw,lineNumber:145,columnNumber:9},this),(0,R.jsxDEV)(`div`,{className:`flex-1 min-w-0`,children:(0,R.jsxDEV)(Fe,{library:o.library,shelf:o.shelf,children:s?T?(0,R.jsxDEV)(T,{record:s,onEdit:()=>{}},void 0,!1,{fileName:Sw,lineNumber:201,columnNumber:15},this):(0,R.jsxDEV)(uw,{shelf:o,record:s,onUpdate:b,onUpdateExtend:x,edit:v,errorAt:g},void 0,!1,{fileName:Sw,lineNumber:203,columnNumber:15},this):(0,R.jsxDEV)(`div`,{className:`flex items-center justify-center py-20 text-muted text-sm`,children:e(`common.loading`)},void 0,!1,{fileName:Sw,lineNumber:199,columnNumber:15},this)},void 0,!1,{fileName:Sw,lineNumber:197,columnNumber:11},this)},void 0,!1,{fileName:Sw,lineNumber:196,columnNumber:9},this)]},void 0,!0,{fileName:Sw,lineNumber:142,columnNumber:7},this)},void 0,!1,{fileName:Sw,lineNumber:141,columnNumber:5},this)}var ww=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/PluginSlot.tsx`,Tw=new WeakMap;function Ew(e){let t=Tw.get(e);return t||(t=(0,L.lazy)(e),Tw.set(e,t)),t}var Dw=class extends L.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 Ow({name:e}){let t=En(e);return t.length?(0,R.jsxDEV)(R.Fragment,{children:t.map(e=>{let t=Ew(e.load);return(0,R.jsxDEV)(Dw,{id:e.id,children:(0,R.jsxDEV)(L.Suspense,{fallback:null,children:(0,R.jsxDEV)(t,{},void 0,!1,{fileName:ww,lineNumber:54,columnNumber:15},this)},void 0,!1,{fileName:ww,lineNumber:53,columnNumber:13},this)},e.id,!1,{fileName:ww,lineNumber:52,columnNumber:11},this)})},void 0,!1,{fileName:ww,lineNumber:48,columnNumber:5},this):null}function kw({id:e,load:t}){let n=Ew(t);return(0,R.jsxDEV)(Dw,{id:e,children:(0,R.jsxDEV)(L.Suspense,{fallback:null,children:(0,R.jsxDEV)(n,{},void 0,!1,{fileName:ww,lineNumber:69,columnNumber:9},this)},void 0,!1,{fileName:ww,lineNumber:68,columnNumber:7},this)},void 0,!1,{fileName:ww,lineNumber:67,columnNumber:5},this)}var $=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/app/Shell.tsx`,Aw=(0,L.lazy)(()=>c(()=>import(`./SettingsPage-gIBSGdWr.js`).then(e=>({default:e.SettingsPage})),__vite__mapDeps([74,1,2,3,24,4,5,6,63,34,26,64,75,76,77,78]))),jw=(0,L.lazy)(()=>c(()=>import(`./PluginSettingsPage-DRIoUrWh.js`).then(e=>({default:e.PluginSettingsPage})),__vite__mapDeps([79,2,1,3,80,81,24,4,70,63,34,6,26,5,64,67,29,39,69,40,30,8,9,78]))),Mw=(0,L.lazy)(()=>c(()=>import(`./NewRecordView-B-kwzTNR.js`).then(e=>({default:e.NewRecordView})),__vite__mapDeps([82,1,2,3,83,24,4,5,6,63,34,26,64,39,29,81,70,67,69,40,30,8,9,66,76,72]))),Nw={"/":(0,R.jsxDEV)(CC,{},void 0,!1,{fileName:$,lineNumber:33,columnNumber:8},void 0),"/browse":(0,R.jsxDEV)(TC,{},void 0,!1,{fileName:$,lineNumber:34,columnNumber:14},void 0),"/trash":(0,R.jsxDEV)(OC,{},void 0,!1,{fileName:$,lineNumber:35,columnNumber:13},void 0),"/settings":(0,R.jsxDEV)(Aw,{},void 0,!1,{fileName:$,lineNumber:36,columnNumber:16},void 0),"/settings/account":(0,R.jsxDEV)(jC,{},void 0,!1,{fileName:$,lineNumber:37,columnNumber:24},void 0),"/settings/users":(0,R.jsxDEV)(JC,{},void 0,!1,{fileName:$,lineNumber:38,columnNumber:22},void 0),"/settings/users/new":(0,R.jsxDEV)(ZC,{},void 0,!1,{fileName:$,lineNumber:39,columnNumber:26},void 0),"/settings/users/:id":(0,R.jsxDEV)(ew,{},void 0,!1,{fileName:$,lineNumber:40,columnNumber:26},void 0),"/settings/:pluginId":(0,R.jsxDEV)(jw,{},void 0,!1,{fileName:$,lineNumber:41,columnNumber:26},void 0),"/:library/:shelf":(0,R.jsxDEV)(nw,{},void 0,!1,{fileName:$,lineNumber:42,columnNumber:23},void 0),"/:library/:shelf/new":(0,R.jsxDEV)(Mw,{},void 0,!1,{fileName:$,lineNumber:43,columnNumber:27},void 0),"/:library/:shelf/:id":(0,R.jsxDEV)(Cw,{},void 0,!1,{fileName:$,lineNumber:44,columnNumber:27},void 0)};function Pw(){return(0,R.jsxDEV)(h,{children:[(0,R.jsxDEV)(f,{path:`/login`,element:(0,R.jsxDEV)(aC,{},void 0,!1,{fileName:$,lineNumber:50,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:50,columnNumber:7},this),(0,R.jsxDEV)(f,{path:`/setup`,element:(0,R.jsxDEV)(cC,{},void 0,!1,{fileName:$,lineNumber:51,columnNumber:37},this)},void 0,!1,{fileName:$,lineNumber:51,columnNumber:7},this),(0,R.jsxDEV)(f,{path:`/*`,element:(0,R.jsxDEV)(Ge,{children:(0,R.jsxDEV)(Fw,{},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 Fw(){let[e,t]=(0,L.useState)(!1);return(0,L.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,R.jsxDEV)(R.Fragment,{children:[(0,R.jsxDEV)(`div`,{className:`min-h-dvh bg-bg`,children:[(0,R.jsxDEV)(gC,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:81,columnNumber:9},this),(0,R.jsxDEV)(`main`,{className:`nav:pl-52 pb-16 nav:pb-0`,children:(0,R.jsxDEV)(L.Suspense,{fallback:(0,R.jsxDEV)(`div`,{className:`flex justify-center py-16`,children:(0,R.jsxDEV)(Ot,{className:`animate-spin text-muted`,size:20},void 0,!1,{fileName:$,lineNumber:86,columnNumber:17},this)},void 0,!1,{fileName:$,lineNumber:85,columnNumber:15},this),children:(0,R.jsxDEV)(h,{children:[nC.map(e=>(0,R.jsxDEV)(f,{path:e.pattern,element:Nw[e.pattern]},e.pattern,!1,{fileName:$,lineNumber:92,columnNumber:17},this)),(0,R.jsxDEV)(f,{path:`/plugins`,element:(0,R.jsxDEV)(o,{to:`/settings`,replace:!0},void 0,!1,{fileName:$,lineNumber:95,columnNumber:47},this)},void 0,!1,{fileName:$,lineNumber:95,columnNumber:15},this),Dn().map(e=>(0,R.jsxDEV)(f,{path:e.path,element:(0,R.jsxDEV)(kw,{id:e.path,load:e.load},void 0,!1,{fileName:$,lineNumber:97,columnNumber:60},this)},e.path,!1,{fileName:$,lineNumber:97,columnNumber:17},this))]},void 0,!0,{fileName:$,lineNumber:90,columnNumber:13},this)},void 0,!1,{fileName:$,lineNumber:83,columnNumber:11},this)},void 0,!1,{fileName:$,lineNumber:82,columnNumber:9},this),(0,R.jsxDEV)(vC,{onSearchOpen:()=>t(!0)},void 0,!1,{fileName:$,lineNumber:102,columnNumber:9},this),(0,R.jsxDEV)(Ow,{name:`overlay`},void 0,!1,{fileName:$,lineNumber:103,columnNumber:9},this)]},void 0,!0,{fileName:$,lineNumber:80,columnNumber:7},this),(0,R.jsxDEV)(bC,{open:e,onClose:()=>t(!1)},void 0,!1,{fileName:$,lineNumber:105,columnNumber:7},this)]},void 0,!0,{fileName:$,lineNumber:79,columnNumber:5},this)}var Iw=`/home/grigorii/Projects/GitHub/grigorii-horos/coffer/packages/web/main.tsx`,Lw=[];try{Lw=await xw()}catch(e){console.warn(`[federation] failed to load plugins, continuing with none:`,e)}He(Lw),Tt(nC),wt(Ve().map(e=>({library:e.library,shelf:e.shelf}))),(0,Er.createRoot)(document.getElementById(`root`)).render((0,R.jsxDEV)(L.StrictMode,{children:(0,R.jsxDEV)(d,{children:[(0,R.jsxDEV)(Pw,{},void 0,!1,{fileName:Iw,lineNumber:48,columnNumber:7},void 0),(0,R.jsxDEV)(Ue,{},void 0,!1,{fileName:Iw,lineNumber:49,columnNumber:7},void 0),(0,R.jsxDEV)(v,{richColors:!0,position:`bottom-right`},void 0,!1,{fileName:Iw,lineNumber:50,columnNumber:7},void 0)]},void 0,!0,{fileName:Iw,lineNumber:47,columnNumber:5},void 0)},void 0,!1,{fileName:Iw,lineNumber:46,columnNumber:3},void 0));
|