@fde-desktop/fde-core 0.4.8 → 0.4.10

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/index.js CHANGED
@@ -6,7 +6,7 @@ import { t as A } from "./create-safe-context-XT2cxc14.js";
6
6
  import { n as ee, r as j, t as M } from "./AppMenuBar-CHJy8OF0.js";
7
7
  import { a as te, h as ne, i as re, n as N, p as ie, r as ae } from "./Tooltip-CAOO-qdx.js";
8
8
  import { c as oe, f as se, l as ce, o as le, s as ue, t as de, u as fe } from "./TextInput-C3qfxxWI.js";
9
- import { a as pe, c as me, d as he, f as ge, g as _e, h as P, i as ve, l as ye, m as be, n as xe, o as Se, p as Ce, r as we, s as Te, t as Ee, u as De } from "./SettingsApp-DUMKSA3K.js";
9
+ import { a as pe, c as me, d as he, f as ge, g as _e, h as P, i as ve, l as ye, m as be, n as xe, o as Se, p as Ce, r as we, s as Te, t as Ee, u as De } from "./SettingsApp-d6fmBHxR.js";
10
10
  import { a as Oe } from "./Slider-BNO-vDFn.js";
11
11
  import { i as ke, r as Ae, t as je } from "./CreateItemApp-CtdH1K1g.js";
12
12
  import { a as Me, n as Ne, t as Pe } from "./DownloadProgress-hdupSUBT.js";
@@ -20,11 +20,11 @@ import { t as qe } from "./Button-k7SxX1Xl.js";
20
20
  import { t as Je } from "./AppIcon-DCDuaU-t.js";
21
21
  import { t as Ye } from "./Center-CyryG5zn.js";
22
22
  import { r as Xe, t as Ze } from "./DeviceInfoApp-C306YvtZ.js";
23
- import { n as Qe, t as $e } from "./UploaderApp-C9W_yCT-.js";
23
+ import { n as Qe, t as $e } from "./UploaderApp-C76ydsd8.js";
24
24
  import { t as et } from "./Stack-CuDEaP7e.js";
25
25
  import { $ as tt, A as nt, B as rt, C as it, D as at, E as ot, F as st, G as ct, H as lt, I as ut, J as dt, K as ft, L as pt, M as mt, N as ht, O as gt, P as _t, Q as vt, R as yt, S as bt, T as xt, U as St, V as Ct, W as wt, X as Tt, Y as Et, Z as Dt, _ as Ot, a as kt, at as At, b as jt, c as Mt, ct as Nt, d as Pt, dt as Ft, et as It, f as Lt, g as Rt, h as zt, i as Bt, it as Vt, j as Ht, k as Ut, l as Wt, lt as Gt, m as Kt, n as qt, nt as Jt, o as I, ot as Yt, p as Xt, q as Zt, r as Qt, rt as $t, s as en, st as tn, t as nn, tt as rn, u as an, ut as on, v as L, w as sn, x as cn, y as ln, z as un } from "./desktopStore-B0R1-BeA.js";
26
26
  import { a as dn, c as fn, d as pn, f as mn, i as hn, l as gn, n as _n, o as vn, p as yn, r as bn, s as xn, t as Sn, u as Cn } from "./AppEmptyState-BTujnL_b.js";
27
- import { A as wn, B as Tn, C as En, D as Dn, E as On, F as kn, H as An, I as jn, L as Mn, M as Nn, N as Pn, O as Fn, P as In, R as Ln, S as Rn, T as zn, U as Bn, V as Vn, _ as Hn, a as Un, b as Wn, c as Gn, d as Kn, f as qn, g as Jn, h as Yn, i as Xn, j as Zn, k as Qn, l as $n, m as er, n as tr, o as nr, p as rr, r as ir, s as ar, t as or, u as sr, v as cr, w as lr, x as ur, y as dr, z as fr } from "./useOpenApp-JHCPTBWa.js";
27
+ import { A as wn, B as Tn, C as En, D as Dn, E as On, F as kn, H as An, I as jn, L as Mn, M as Nn, N as Pn, O as Fn, P as In, R as Ln, S as Rn, T as zn, U as Bn, V as Vn, _ as Hn, a as Un, b as Wn, c as Gn, d as Kn, f as qn, g as Jn, h as Yn, i as Xn, j as Zn, k as Qn, l as $n, m as er, n as tr, o as nr, p as rr, r as ir, s as ar, t as or, u as sr, v as cr, w as lr, x as ur, y as dr, z as fr } from "./useOpenApp-BVpSfNrG.js";
28
28
  import { r as pr, t as mr } from "./useTranslation-DMRGdqZi.js";
29
29
  import { a as hr, c as gr, i as _r, n as vr, o as yr, r as br, s as xr, t as Sr } from "./useDynamicIcon-GJg3vWsJ.js";
30
30
  import { t as Cr } from "./useAdaptiveDimensions-CunsU0mn.js";
@@ -32,7 +32,7 @@ import { a as wr, i as Tr, n as Er, o as Dr, r as Or, t as kr } from "./MenuEdit
32
32
  import { a as Ar, i as jr, n as Mr, r as Nr, t as Pr } from "./useCloseInterceptor-CuKAAFnj.js";
33
33
  import { t as R } from "./VscIcon-DueRJVTe.js";
34
34
  import { n as Fr, t as Ir } from "./fc-kd8WzIER.js";
35
- import { r as Lr, t as Rr } from "./FilesApp-VXrmtt63.js";
35
+ import { r as Lr, t as Rr } from "./FilesApp-BQFVHkEn.js";
36
36
  import { t as zr } from "./useResolvedUrl-DFKXq598.js";
37
37
  import { n as Br, t as Vr } from "./NotesApp-C59exz_9.js";
38
38
  import { a as Hr, n as Ur, o as Wr, t as Gr } from "./FilePickerApp-DMGuvahM.js";
@@ -3428,7 +3428,7 @@ var wc = ({ app: e, onOpen: t }) => {
3428
3428
  let n = _r(e, {
3429
3429
  size: 22,
3430
3430
  style: { display: "block" }
3431
- }), [r, i] = W(!1), [a, o] = W(""), s = or(), c = P((e) => e.theme.taskbar), l = I((e) => e.launcherFolders), u = I((e) => e.customApps), { panelVariants: d } = mc(), f = U(null), p = U(null), { expanded: m, toggle: h, reset: g } = yc(/* @__PURE__ */ new Set()), _ = H(() => [...it].sort((e, t) => e.name.localeCompare(t.name)), []), v = H(() => new Set(l.flatMap((e) => e.appIds)), [l]), y = vc(H(() => _.filter((e) => !v.has(e.id)), [_, v]), a, (e) => [e.id, e.name]), b = H(() => {
3431
+ }), [r, i] = W(!1), [a, o] = W(""), s = or(), c = P((e) => e.theme.colors.taskbar), l = I((e) => e.launcherFolders), u = I((e) => e.customApps), { panelVariants: d } = mc(), f = U(null), p = U(null), { expanded: m, toggle: h, reset: g } = yc(/* @__PURE__ */ new Set()), _ = H(() => [...it].sort((e, t) => e.name.localeCompare(t.name)), []), v = H(() => new Set(l.flatMap((e) => e.appIds)), [l]), y = vc(H(() => _.filter((e) => !v.has(e.id)), [_, v]), a, (e) => [e.id, e.name]), b = H(() => {
3432
3432
  if (!a.trim()) return [...l].sort((e, t) => e.isPredefined === t.isPredefined ? e.name.localeCompare(t.name) : e.isPredefined ? -1 : 1);
3433
3433
  let e = a.toLowerCase();
3434
3434
  return l.map((t) => ({
@@ -3499,7 +3499,7 @@ var wc = ({ app: e, onOpen: t }) => {
3499
3499
  children: n
3500
3500
  }), /* @__PURE__ */ K(Qo, { children: r && /* @__PURE__ */ q(bn.div, {
3501
3501
  className: Sc.panel,
3502
- style: { background: c.background },
3502
+ style: { background: c },
3503
3503
  role: "menu",
3504
3504
  "aria-label": "App launcher",
3505
3505
  initial: d.initial,
@@ -2,7 +2,7 @@ import { C as e, o as t } from "./desktopStore-B0R1-BeA.js";
2
2
  import { t as n } from "./useAdaptiveDimensions-CunsU0mn.js";
3
3
  import { lazy as r, useCallback as i } from "react";
4
4
  //#region src/components/Window/lazyApps.ts
5
- var a = r(() => import("./FilesApp-VXrmtt63.js").then((e) => e.n)), o = r(() => import("./NotesApp-D47I5LS_.js")), s = r(() => import("./ImageViewerApp-DBAfJPSo.js")), c = r(() => import("./PdfApp-C5Rt1Zaw.js")), l = r(() => import("./MenuEditApp-BoKtj2GH.js")), u = r(() => import("./UploaderApp-DHsMQN-f.js")), d = r(() => import("./SettingsApp-Ck4aUXs5.js")), f = r(() => import("./DeviceInfoApp-C306YvtZ.js").then((e) => e.n)), p = r(() => import("./CalendarApp-DBEQqsS_.js").then((e) => e.n)), m = r(() => import("./CreateItemApp-CtdH1K1g.js").then((e) => e.n)), h = r(() => import("./NotesMenuBar-xlfODmMA.js").then((e) => ({ default: e.NotesMenuBar }))), g = r(() => import("./MenuEditMenuBar-Bv6R42lf.js").then((e) => ({ default: e.MenuEditMenuBar }))), _ = r(() => import("./SettingsMenuBar-D8R7hOik.js").then((e) => ({ default: e.SettingsMenuBar }))), v = r(() => import("./PdfMenuBar-R0fu7oYF.js").then((e) => ({ default: e.PdfMenuBar }))), y = r(() => import("./ImageViewerMenuBar-Cb0Nr5-M.js").then((e) => ({ default: e.ImageViewerMenuBar }))), b = r(() => import("./TerminalApp-CVu3Axc9.js")), x = r(() => import("./TerminalMenuBar-Cb8x9laS.js").then((e) => ({ default: e.TerminalMenuBar }))), S = r(() => import("./CodeServerApp-BpeALSaX.js")), C = r(() => import("./StorybookApp-WYninkJo.js").then((e) => e.n)), w = null, T = (() => null);
5
+ var a = r(() => import("./FilesApp-BQFVHkEn.js").then((e) => e.n)), o = r(() => import("./NotesApp-D47I5LS_.js")), s = r(() => import("./ImageViewerApp-DBAfJPSo.js")), c = r(() => import("./PdfApp-C5Rt1Zaw.js")), l = r(() => import("./MenuEditApp-BoKtj2GH.js")), u = r(() => import("./UploaderApp-CHACW8Yr.js")), d = r(() => import("./SettingsApp-qKJmC0lj.js")), f = r(() => import("./DeviceInfoApp-C306YvtZ.js").then((e) => e.n)), p = r(() => import("./CalendarApp-DBEQqsS_.js").then((e) => e.n)), m = r(() => import("./CreateItemApp-CtdH1K1g.js").then((e) => e.n)), h = r(() => import("./NotesMenuBar-xlfODmMA.js").then((e) => ({ default: e.NotesMenuBar }))), g = r(() => import("./MenuEditMenuBar-Bv6R42lf.js").then((e) => ({ default: e.MenuEditMenuBar }))), _ = r(() => import("./SettingsMenuBar-D8R7hOik.js").then((e) => ({ default: e.SettingsMenuBar }))), v = r(() => import("./PdfMenuBar-R0fu7oYF.js").then((e) => ({ default: e.PdfMenuBar }))), y = r(() => import("./ImageViewerMenuBar-Cb0Nr5-M.js").then((e) => ({ default: e.ImageViewerMenuBar }))), b = r(() => import("./TerminalApp-CVu3Axc9.js")), x = r(() => import("./TerminalMenuBar-Cb8x9laS.js").then((e) => ({ default: e.TerminalMenuBar }))), S = r(() => import("./CodeServerApp-BpeALSaX.js")), C = r(() => import("./StorybookApp-WYninkJo.js").then((e) => e.n)), w = null, T = (() => null);
6
6
  function E(e) {
7
7
  return {
8
8
  ...e,
@@ -1 +1 @@
1
- require(`./chunk-CiTBaPhY.cjs`);const e=require(`./desktopStore-Cox-Og1z.cjs`),t=require(`./useAdaptiveDimensions-Btp0m5Pm.cjs`);let n=require(`react`);var r=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./FilesApp-BvlzPNuO.cjs`))),i=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./NotesApp-lOwsi2sg.cjs`))),a=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./ImageViewerApp-BOz59TGc.cjs`))),o=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./PdfApp-1XbFGfoY.cjs`))),s=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./MenuEditApp-k3cPfTG9.cjs`))),c=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./UploaderApp-BZXW75A0.cjs`))),l=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./SettingsApp-BA-5B4RA.cjs`))),u=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./DeviceInfoApp-CyB01v4D.cjs`))),d=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./CalendarApp-C1HvuJoa.cjs`)).then(e=>e.n)),f=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./CreateItemApp-t9F-a6wD.cjs`))),p=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./NotesMenuBar-BZITC74y.cjs`)).then(e=>({default:e.NotesMenuBar}))),m=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./MenuEditMenuBar-CBsmH_-T.cjs`)).then(e=>({default:e.MenuEditMenuBar}))),h=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./SettingsMenuBar-DDrjZLmg.cjs`)).then(e=>({default:e.SettingsMenuBar}))),g=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./PdfMenuBar-BA9rKuMP.cjs`)).then(e=>({default:e.PdfMenuBar}))),_=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./ImageViewerMenuBar-CoEp0RxK.cjs`)).then(e=>({default:e.ImageViewerMenuBar}))),v=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./TerminalApp-Bq2e7QQu.cjs`))),y=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./TerminalMenuBar-De-FH5AE.cjs`)).then(e=>({default:e.TerminalMenuBar}))),b=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./CodeServerApp-B3l5QPuG.cjs`))),x=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./StorybookApp-Bkr-7mXp.cjs`)).then(e=>e.n)),S=null,C=(()=>null);function w(e){return{...e,component:e.component??(e.loader?(0,n.lazy)(e.loader):void 0),MenuBarComponent:e.MenuBarComponent??(e.menuBarLoader?(0,n.lazy)(e.menuBarLoader):void 0)}}function T(e){S={};for(let[t,n]of Object.entries(e))S[t]=w(n)}function E(e){return S?S[e]?.component||(console.warn(`[AppRegistry] App not found: ${e}`),C):(console.warn(`[AppRegistry] Registry not initialized, requested app: ${e}`),C)}function D(e){return S?.[e]?.buildMenuBar}function O(e){return S?.[e]?.MenuBarComponent}function k(e){return S?.[e]?.isLazy??!1}function A(e){return S?.[e]?.appName}function j(e){return S?.[e]}function M(e){S||={};for(let[t,n]of Object.entries(e))S[t]=w(n)}var N={};function P(){let e={files:{component:r,appName:`Files`,isLazy:!0},settings:{component:l,MenuBarComponent:h,appName:`Settings`,isLazy:!0},pdf:{component:o,MenuBarComponent:g,appName:`PDF`,isLazy:!0},"image-viewer":{component:a,MenuBarComponent:_,appName:`Image Viewer`,isLazy:!0},uploader:{component:c,appName:`Uploader`,isLazy:!0},createItem:{component:f,appName:`Create Item`,isLazy:!0},"device-info":{component:u,appName:`Device Info`,isLazy:!0},menuedit:{component:s,MenuBarComponent:m,appName:`Menu Editor`,isLazy:!0},notepad:{component:i,MenuBarComponent:p,appName:`Notepad`,isLazy:!0},calendar:{component:d,appName:`Calendar`,isLazy:!0},terminal:{component:v,MenuBarComponent:y,appName:`Terminal`,isLazy:!0},"code-server":{component:b,appName:`VS Code`,isLazy:!0},storybook:{component:x,appName:`Storybook`,isLazy:!0}};Object.assign(N,e),M(e)}var F=.3,I=e=>({duration:e,ease:`easeIn`}),L=e=>({duration:e,ease:`easeOut`}),R=e=>({hidden:{opacity:0,scale:.92,y:12},visible:{opacity:1,scale:1,y:0,transition:L(e)},exit:{opacity:0,scale:.92,y:12,transition:I(e)}}),z=e=>({initial:{opacity:0,y:8,scale:.96},animate:{opacity:1,y:0,scale:1,transition:L(e)},exit:{opacity:0,y:8,scale:.96,transition:I(e)}}),B=e=>(t,n)=>({opacity:0,scale:.1,x:t,y:n,transition:{duration:e,ease:[.4,0,1,1]}}),V=e=>(t,n)=>({opacity:[0,1],scale:[.1,1],x:[t,0],y:[n,0],transition:{duration:e,ease:[0,0,.2,1]}}),H=e=>({duration:e,ease:`easeOut`}),U={duration:F,ease:`easeIn`},W={duration:F,ease:`easeOut`},G=R(F),K=z(F),q=B(.3),J=V(.3),Y={scale:{hidden:{opacity:0,scale:.92,y:12},visible:{opacity:1,scale:1,y:0,transition:W}},slide:{hidden:{opacity:0,y:40},visible:{opacity:1,y:0,transition:W}},fade:{hidden:{opacity:0},visible:{opacity:1,transition:W}}},X={duration:.25,ease:`easeOut`},Z=()=>({x:150+Math.random()*200,y:80+Math.random()*100}),Q=(e,t,n,r)=>({x:Math.round((e-n)/2),y:Math.round((t-r)/2)}),$=()=>{let r=e.o(e=>e.openWindow),i=e.o(e=>e.focusWindow),a=e.o(e=>e.windows),o=e.o(e=>e.customApps),s=t.t();return(0,n.useCallback)((t,{contentData:n,position:c}={})=>{let l=e.C.find(e=>e.id===t),u=o.find(e=>e.id===t),d=j(t);if(l?.singleWindow===!0||u?.window?.singleWindow===!0||d?.singleWindow===!0){let e=a.find(e=>e.content===t);if(e){i(e.id);return}}let{x:f,y:p}=c??Z();r({title:l?.name??d?.appName??u?.name??t.charAt(0).toUpperCase()+t.slice(1),content:t,icon:l?.icon??d?.icon??u?.icon,fcIcon:l?.fcIcon??d?.fcIcon,iconUrl:l?.iconUrl??d?.iconUrl,iconColor:l?.iconColor??d?.iconColor,canMaximize:l?.canMaximize??d?.canMaximize??u?.window?.canMaximize,x:f,y:p,width:l?.defaultWidth??d?.defaultWidth??u?.window?.defaultWidth??s.defaultWidth,height:l?.defaultHeight??d?.defaultHeight??u?.window?.defaultHeight??s.defaultHeight,minWidth:l?.minWidth===!1||d?.minWidth===!1||u?.window?.minWidth===!1?void 0:l?.minWidth??d?.minWidth??u?.window?.minWidth??s.minWidth,minHeight:l?.minHeight===!1||d?.minHeight===!1||u?.window?.minHeight===!1?void 0:l?.minHeight??d?.minHeight??u?.window?.minHeight??s.minHeight,contentData:{...n,...l?.autoLoad?{autoLoad:l.autoLoad}:{}},alwaysOnTop:l?.alwaysOnTop??d?.alwaysOnTop})},[r,i,a,o,s])};Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return o}});
1
+ require(`./chunk-CiTBaPhY.cjs`);const e=require(`./desktopStore-Cox-Og1z.cjs`),t=require(`./useAdaptiveDimensions-Btp0m5Pm.cjs`);let n=require(`react`);var r=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./FilesApp-BZ_dzZnF.cjs`))),i=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./NotesApp-lOwsi2sg.cjs`))),a=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./ImageViewerApp-BOz59TGc.cjs`))),o=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./PdfApp-1XbFGfoY.cjs`))),s=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./MenuEditApp-k3cPfTG9.cjs`))),c=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./UploaderApp-htj59ppo.cjs`))),l=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./SettingsApp-7EhpjzUE.cjs`))),u=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./DeviceInfoApp-CyB01v4D.cjs`))),d=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./CalendarApp-C1HvuJoa.cjs`)).then(e=>e.n)),f=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./CreateItemApp-t9F-a6wD.cjs`))),p=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./NotesMenuBar-BZITC74y.cjs`)).then(e=>({default:e.NotesMenuBar}))),m=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./MenuEditMenuBar-CBsmH_-T.cjs`)).then(e=>({default:e.MenuEditMenuBar}))),h=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./SettingsMenuBar-DDrjZLmg.cjs`)).then(e=>({default:e.SettingsMenuBar}))),g=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./PdfMenuBar-BA9rKuMP.cjs`)).then(e=>({default:e.PdfMenuBar}))),_=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./ImageViewerMenuBar-CoEp0RxK.cjs`)).then(e=>({default:e.ImageViewerMenuBar}))),v=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./TerminalApp-Bq2e7QQu.cjs`))),y=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./TerminalMenuBar-De-FH5AE.cjs`)).then(e=>({default:e.TerminalMenuBar}))),b=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./CodeServerApp-B3l5QPuG.cjs`))),x=(0,n.lazy)(()=>Promise.resolve().then(()=>require(`./StorybookApp-Bkr-7mXp.cjs`)).then(e=>e.n)),S=null,C=(()=>null);function w(e){return{...e,component:e.component??(e.loader?(0,n.lazy)(e.loader):void 0),MenuBarComponent:e.MenuBarComponent??(e.menuBarLoader?(0,n.lazy)(e.menuBarLoader):void 0)}}function T(e){S={};for(let[t,n]of Object.entries(e))S[t]=w(n)}function E(e){return S?S[e]?.component||(console.warn(`[AppRegistry] App not found: ${e}`),C):(console.warn(`[AppRegistry] Registry not initialized, requested app: ${e}`),C)}function D(e){return S?.[e]?.buildMenuBar}function O(e){return S?.[e]?.MenuBarComponent}function k(e){return S?.[e]?.isLazy??!1}function A(e){return S?.[e]?.appName}function j(e){return S?.[e]}function M(e){S||={};for(let[t,n]of Object.entries(e))S[t]=w(n)}var N={};function P(){let e={files:{component:r,appName:`Files`,isLazy:!0},settings:{component:l,MenuBarComponent:h,appName:`Settings`,isLazy:!0},pdf:{component:o,MenuBarComponent:g,appName:`PDF`,isLazy:!0},"image-viewer":{component:a,MenuBarComponent:_,appName:`Image Viewer`,isLazy:!0},uploader:{component:c,appName:`Uploader`,isLazy:!0},createItem:{component:f,appName:`Create Item`,isLazy:!0},"device-info":{component:u,appName:`Device Info`,isLazy:!0},menuedit:{component:s,MenuBarComponent:m,appName:`Menu Editor`,isLazy:!0},notepad:{component:i,MenuBarComponent:p,appName:`Notepad`,isLazy:!0},calendar:{component:d,appName:`Calendar`,isLazy:!0},terminal:{component:v,MenuBarComponent:y,appName:`Terminal`,isLazy:!0},"code-server":{component:b,appName:`VS Code`,isLazy:!0},storybook:{component:x,appName:`Storybook`,isLazy:!0}};Object.assign(N,e),M(e)}var F=.3,I=e=>({duration:e,ease:`easeIn`}),L=e=>({duration:e,ease:`easeOut`}),R=e=>({hidden:{opacity:0,scale:.92,y:12},visible:{opacity:1,scale:1,y:0,transition:L(e)},exit:{opacity:0,scale:.92,y:12,transition:I(e)}}),z=e=>({initial:{opacity:0,y:8,scale:.96},animate:{opacity:1,y:0,scale:1,transition:L(e)},exit:{opacity:0,y:8,scale:.96,transition:I(e)}}),B=e=>(t,n)=>({opacity:0,scale:.1,x:t,y:n,transition:{duration:e,ease:[.4,0,1,1]}}),V=e=>(t,n)=>({opacity:[0,1],scale:[.1,1],x:[t,0],y:[n,0],transition:{duration:e,ease:[0,0,.2,1]}}),H=e=>({duration:e,ease:`easeOut`}),U={duration:F,ease:`easeIn`},W={duration:F,ease:`easeOut`},G=R(F),K=z(F),q=B(.3),J=V(.3),Y={scale:{hidden:{opacity:0,scale:.92,y:12},visible:{opacity:1,scale:1,y:0,transition:W}},slide:{hidden:{opacity:0,y:40},visible:{opacity:1,y:0,transition:W}},fade:{hidden:{opacity:0},visible:{opacity:1,transition:W}}},X={duration:.25,ease:`easeOut`},Z=()=>({x:150+Math.random()*200,y:80+Math.random()*100}),Q=(e,t,n,r)=>({x:Math.round((e-n)/2),y:Math.round((t-r)/2)}),$=()=>{let r=e.o(e=>e.openWindow),i=e.o(e=>e.focusWindow),a=e.o(e=>e.windows),o=e.o(e=>e.customApps),s=t.t();return(0,n.useCallback)((t,{contentData:n,position:c}={})=>{let l=e.C.find(e=>e.id===t),u=o.find(e=>e.id===t),d=j(t);if(l?.singleWindow===!0||u?.window?.singleWindow===!0||d?.singleWindow===!0){let e=a.find(e=>e.content===t);if(e){i(e.id);return}}let{x:f,y:p}=c??Z();r({title:l?.name??d?.appName??u?.name??t.charAt(0).toUpperCase()+t.slice(1),content:t,icon:l?.icon??d?.icon??u?.icon,fcIcon:l?.fcIcon??d?.fcIcon,iconUrl:l?.iconUrl??d?.iconUrl,iconColor:l?.iconColor??d?.iconColor,canMaximize:l?.canMaximize??d?.canMaximize??u?.window?.canMaximize,x:f,y:p,width:l?.defaultWidth??d?.defaultWidth??u?.window?.defaultWidth??s.defaultWidth,height:l?.defaultHeight??d?.defaultHeight??u?.window?.defaultHeight??s.defaultHeight,minWidth:l?.minWidth===!1||d?.minWidth===!1||u?.window?.minWidth===!1?void 0:l?.minWidth??d?.minWidth??u?.window?.minWidth??s.minWidth,minHeight:l?.minHeight===!1||d?.minHeight===!1||u?.window?.minHeight===!1?void 0:l?.minHeight??d?.minHeight??u?.window?.minHeight??s.minHeight,contentData:{...n,...l?.autoLoad?{autoLoad:l.autoLoad}:{}},alwaysOnTop:l?.alwaysOnTop??d?.alwaysOnTop})},[r,i,a,o,s])};Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return g}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return h}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return m}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return r}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return a}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return _}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return P}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Q}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return V}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return R}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return K}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return W}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return B}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return z}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return J}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return G}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return o}});
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fde-desktop/fde-core",
3
- "version": "0.4.8",
3
+ "version": "0.4.10",
4
4
  "type": "module",
5
5
  "description": "Core library for building FDE Desktop environments",
6
6
  "author": "Francisco Núñez Palomares (frannunpal@gmail.com)",
@@ -38,7 +38,8 @@
38
38
  },
39
39
  "peerDependencies": {
40
40
  "react": "^19.0.0",
41
- "react-dom": "^19.0.0"
41
+ "react-dom": "^19.0.0",
42
+ "@tanstack/react-query": "^5.0.0"
42
43
  },
43
44
  "dependencies": {
44
45
  "@dnd-kit/core": "^6.3.1",
@@ -66,6 +67,7 @@
66
67
  "zustand": "^5.0.11"
67
68
  },
68
69
  "devDependencies": {
70
+ "@tanstack/react-query": "^5.0.0",
69
71
  "@testing-library/dom": "^10.4.1",
70
72
  "@testing-library/jest-dom": "^6.9.1",
71
73
  "@testing-library/react": "^16.3.2",
@@ -1 +0,0 @@
1
- require(`./chunk-CiTBaPhY.cjs`);const e=require(`./FilesApp-30OjnOuP.cjs`);exports.default=e.t;
@@ -1 +0,0 @@
1
- const e=require(`./chunk-CiTBaPhY.cjs`),t=require(`./Box-D_64wv6n.cjs`),n=require(`./ColorPicker-BL4UbKCV.cjs`),r=require(`./Tooltip-DDh_x-CB.cjs`),i=require(`./use-uncontrolled-BPrfGv0W.cjs`),a=require(`./TextInput-DcYns3hz.cjs`),o=require(`./Slider-Bg_EIBg6.cjs`),s=require(`./use-merged-ref-BI9n1hUK.cjs`),c=require(`./DownloadProgress-IRw1dzLX.cjs`),l=require(`./UnstyledButton-Cl5RuIid.cjs`),u=require(`./Paper-DwCpwWwH.cjs`),d=require(`./Group-DhwePB84.cjs`),f=require(`./getRuntime-BLXyQZBB.cjs`),p=require(`./Button-D0FXpkur.cjs`),m=require(`./AppIcon--qzR4sgf.cjs`),h=require(`./Stack-BOaJgV3N.cjs`),g=require(`./react-Dldg32sN.cjs`),_=require(`./desktopStore-Cox-Og1z.cjs`),v=require(`./useTranslation-D_O7S4RJ.cjs`),y=require(`./useCloseInterceptor-a_6Lcuqj.cjs`),b=require(`./useResolvedUrl-Be5ZlCX7.cjs`),x=require(`./FilePickerApp-Eu0cr2Cm.cjs`),S=require(`./Colors-BxX4G8kX.cjs`),C=require(`./settingsAppStore-BrlImdAH.cjs`);let w=require(`react`);w=e.a(w);let T=require(`react/jsx-runtime`);function E(e,t){if(e===t||Number.isNaN(e)&&Number.isNaN(t))return!0;if(!(e instanceof Object)||!(t instanceof Object))return!1;let n=Object.keys(e),{length:r}=n;if(r!==Object.keys(t).length)return!1;for(let i=0;i<r;i+=1){let r=n[i];if(!(r in t)||e[r]!==t[r]&&!(Number.isNaN(e[r])&&Number.isNaN(t[r])))return!1}return!0}function D(e,t){if(!e||!t)return!1;if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n+=1)if(!E(e[n],t[n]))return!1;return!0}function ee(e){let t=(0,w.useRef)([]),n=(0,w.useRef)(0);return D(t.current,e)||(t.current=e,n.current+=1),[n.current]}function O(e,t){(0,w.useEffect)(e,ee(t))}function k(e,t,n={autoInvoke:!1}){let r=(0,w.useRef)(null),i=(0,w.useCallback)((...n)=>{r.current||=window.setTimeout(()=>{e(n),r.current=null},t)},[t]),a=(0,w.useCallback)(()=>{r.current&&=(window.clearTimeout(r.current),null)},[]);return(0,w.useEffect)(()=>(n.autoInvoke&&i(),a),[a,i]),{start:i,clear:a}}function A(e,t,n){let r=(0,w.useRef)(null);(0,w.useEffect)(()=>{r.current&&=(r.current.disconnect(),null);let i=typeof n==`function`?n():n;return i&&(r.current=new MutationObserver(e),r.current.observe(i,t)),()=>{r.current&&=(r.current.disconnect(),null)}},[e,t,n])}function te(){let[e,t]=(0,w.useState)(!1);return(0,w.useEffect)(()=>t(!0),[]),e}function j(){return typeof process<`u`&&process.env,`development`}function M(e){return typeof e==`string`||typeof e==`number`||typeof e==`boolean`||typeof e==`bigint`}function N(e,t){if(!t||!e)return!1;let n=t.parentNode;for(;n!=null;){if(n===e)return!0;n=n.parentNode}return!1}function P({target:e,parent:t,ref:n,displayAfterTransitionEnd:r,onTransitionStart:i,onTransitionEnd:a}){let s=(0,w.useRef)(-1),c=(0,w.useRef)(e),[l,u]=(0,w.useState)(!1),[d,f]=(0,w.useState)(typeof r==`boolean`?r:!1),p=()=>{if(!e||!t||!n.current)return;let r=e.getBoundingClientRect(),i=t.getBoundingClientRect(),a=window.getComputedStyle(e),s=window.getComputedStyle(t),c=o.o(a.borderTopWidth)+o.o(s.borderTopWidth),l=o.o(a.borderLeftWidth)+o.o(s.borderLeftWidth),u={top:r.top-i.top-c,left:r.left-i.left-l,width:r.width,height:r.height};n.current.style.transform=`translateY(${u.top}px) translateX(${u.left}px)`,n.current.style.width=`${u.width}px`,n.current.style.height=`${u.height}px`},m=()=>{window.clearTimeout(s.current),n.current&&(n.current.style.transitionDuration=`0ms`),p(),s.current=window.setTimeout(()=>{n.current&&(n.current.style.transitionDuration=``)},30)},h=(0,w.useRef)(null),g=(0,w.useRef)(null);return(0,w.useEffect)(()=>{if(l&&c.current!==e&&i&&i(),c.current=e,p(),e)return h.current=new ResizeObserver(m),h.current.observe(e),t&&(g.current=new ResizeObserver(m),g.current.observe(t)),()=>{h.current?.disconnect(),g.current?.disconnect()}},[t,e]),(0,w.useEffect)(()=>{if(t){let e=e=>{N(e.target,t)&&(m(),f(!1))};return t.addEventListener(`transitionend`,e),()=>{t.removeEventListener(`transitionend`,e)}}},[t]),(0,w.useEffect)(()=>{if(n.current&&a){let e=e=>{e.propertyName===`transform`&&a()};return n.current.addEventListener(`transitionend`,e),()=>{n.current?.removeEventListener(`transitionend`,e)}}},[a]),k(()=>{j()!==`test`&&u(!0)},20,{autoInvoke:!0}),A(e=>{e.forEach(e=>{e.type===`attributes`&&e.attributeName===`dir`&&m()})},{attributes:!0,attributeFilter:[`dir`]},()=>document.documentElement),{initialized:l,hidden:d}}var F={root:`m_96b553a6`},I=t.O((e,{transitionDuration:t},{shouldReduceMotion:n})=>{let r=e.respectReducedMotion&&n?`0ms`:typeof t==`number`?`${t}ms`:t||`150ms`;return{root:{"--transition-duration":r}}}),L=t.r(e=>{let n=t.l(`FloatingIndicator`,null,e),{classNames:r,className:i,style:o,styles:c,unstyled:l,vars:u,target:d,parent:f,transitionDuration:p,mod:m,displayAfterTransitionEnd:h,onTransitionStart:g,onTransitionEnd:_,attributes:v,ref:y,...b}=n,x=t.c({name:`FloatingIndicator`,classes:F,props:n,className:i,style:o,classNames:r,styles:c,unstyled:l,attributes:v,vars:u,varsResolver:I,stylesCtx:{shouldReduceMotion:a.l()}}),S=(0,w.useRef)(null),{initialized:C,hidden:E}=P({target:d,parent:f,ref:S,displayAfterTransitionEnd:h,onTransitionStart:g,onTransitionEnd:_}),D=s.r(y,S);return!d||!f?null:(0,T.jsx)(t.t,{ref:D,mod:[{initialized:C,hidden:E},m],...x(`root`),...b})});L.displayName=`@mantine/core/FloatingIndicator`,L.classes=F,L.varsResolver=I;var R={root:`m_347db0ec`,"root--dot":`m_fbd81e3d`,label:`m_5add502a`,section:`m_91fdda9b`},z=t.O((e,{radius:n,color:r,gradient:i,variant:a,size:o,autoContrast:s,circle:c})=>{let l=e.variantColorResolver({color:r||e.primaryColor,theme:e,gradient:i,variant:a||`filled`,autoContrast:s});return{root:{"--badge-height":t.N(o,`badge-height`),"--badge-padding-x":t.N(o,`badge-padding-x`),"--badge-fz":t.N(o,`badge-fz`),"--badge-radius":c||n===void 0?void 0:t.j(n),"--badge-bg":r||a?l.background:void 0,"--badge-color":r||a?l.color:void 0,"--badge-bd":r||a?l.border:void 0,"--badge-dot-color":a===`dot`?t.x(r,e):void 0}}}),B=t.n(e=>{let n=t.l(`Badge`,null,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,radius:l,color:u,gradient:d,leftSection:f,rightSection:p,children:m,variant:h,fullWidth:g,autoContrast:_,circle:v,mod:y,attributes:b,...x}=n,S=t.c({name:`Badge`,props:n,classes:R,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:b,vars:c,varsResolver:z});return(0,T.jsxs)(t.t,{variant:h,mod:[{block:g,circle:v,"with-right-section":!!p,"with-left-section":!!f},y],...S(`root`,{variant:h}),...x,children:[f&&(0,T.jsx)(`span`,{...S(`section`),"data-position":`left`,children:f}),(0,T.jsx)(`span`,{...S(`label`),children:m}),p&&(0,T.jsx)(`span`,{...S(`section`),"data-position":`right`,children:p})]})});B.classes=R,B.varsResolver=z,B.displayName=`@mantine/core/Badge`;var ne=(0,w.createContext)(null),re=t.i((e=>{let{value:n,defaultValue:r,onChange:s,size:c,wrapperProps:l,children:u,name:d,readOnly:f,disabled:p,...m}=t.l(`RadioGroup`,null,e),h=a.u(d),[g,_]=i.t({value:n,defaultValue:r,finalValue:``,onChange:s});return(0,T.jsx)(ne,{value:{value:g,onChange:e=>!f&&_(typeof e==`string`?e:e.currentTarget.value),size:c,name:h,disabled:p},children:(0,T.jsx)(a.i.Wrapper,{size:c,...l,...m,labelElement:`div`,__staticSelector:`RadioGroup`,children:(0,T.jsx)(o.i,{role:`radiogroup`,children:u})})})}));re.classes=a.i.Wrapper.classes,re.displayName=`@mantine/core/RadioGroup`;var ie={card:`m_9dc8ae12`},ae=(0,w.createContext)(null),oe={withBorder:!0},V=t.O((e,{radius:n})=>({card:{"--card-radius":t.j(n)}})),H=t.r(e=>{let n=t.l(`RadioCard`,oe,e),{classNames:i,className:a,style:o,styles:s,unstyled:c,vars:u,checked:d,mod:f,withBorder:p,value:m,onClick:h,name:g,onKeyDown:_,attributes:v,...y}=n,b=t.c({name:`RadioCard`,classes:ie,props:n,className:a,style:o,classNames:i,styles:s,unstyled:c,attributes:v,vars:u,varsResolver:V,rootSelector:`card`}),{dir:x}=r.s(),S=(0,w.use)(ne),C=typeof d==`boolean`?d:S?.value===m||!1,E=g||S?.name,D=e=>{if(_?.(e),E&&[`ArrowDown`,`ArrowUp`,`ArrowLeft`,`ArrowRight`].includes(e.nativeEvent.code)){e.preventDefault();let t=Array.from(document.querySelectorAll(`[role="radio"][name="${E}"]`)),n=t.findIndex(t=>t===e.target),r=n+1>=t.length?0:n+1,i=n-1<0?t.length-1:n-1;e.nativeEvent.code===`ArrowDown`&&(t[r].focus(),t[r].click()),e.nativeEvent.code===`ArrowUp`&&(t[i].focus(),t[i].click()),e.nativeEvent.code===`ArrowLeft`&&(t[x===`ltr`?i:r].focus(),t[x===`ltr`?i:r].click()),e.nativeEvent.code===`ArrowRight`&&(t[x===`ltr`?r:i].focus(),t[x===`ltr`?r:i].click())}};return(0,T.jsx)(ae,{value:{checked:C},children:(0,T.jsx)(l.t,{mod:[{"with-border":p,checked:C},f],...b(`card`),...y,role:`radio`,"aria-checked":C,name:E,onClick:e=>{h?.(e),S?.onChange(m||``)},onKeyDown:D})})});H.displayName=`@mantine/core/RadioCard`,H.classes=ie,H.varsResolver=V;function se({size:e,style:n,...r}){return(0,T.jsx)(`svg`,{xmlns:`http://www.w3.org/2000/svg`,fill:`none`,viewBox:`0 0 5 5`,style:{width:t.L(e),height:t.L(e),...n},"aria-hidden":!0,...r,children:(0,T.jsx)(`circle`,{cx:`2.5`,cy:`2.5`,r:`2.5`,fill:`currentColor`})})}var U={indicator:`m_717d7ff6`,icon:`m_3e4da632`,"indicator--outline":`m_2980836c`},ce={icon:se},W=t.O((e,{radius:n,color:r,size:i,iconColor:a,variant:o,autoContrast:s})=>{let l=t.S({color:r||e.primaryColor,theme:e}),u=l.isThemeColor&&l.shade===void 0?`var(--mantine-color-${l.color}-outline)`:l.color;return{indicator:{"--radio-size":t.N(i,`radio-size`),"--radio-radius":n===void 0?void 0:t.j(n),"--radio-color":o===`outline`?u:t.x(r,e),"--radio-icon-size":t.N(i,`radio-icon-size`),"--radio-icon-color":a?t.x(a,e):c.r(s,e)?c.i({color:r,theme:e,autoContrast:s}):void 0}}}),G=t.r(e=>{let n=t.l(`RadioIndicator`,ce,e),{classNames:r,className:i,style:a,styles:o,unstyled:s,vars:c,icon:l,radius:u,color:d,iconColor:f,autoContrast:p,checked:m,mod:h,variant:g,disabled:_,attributes:v,...y}=n,b=t.c({name:`RadioIndicator`,classes:U,props:n,className:i,style:a,classNames:r,styles:o,unstyled:s,attributes:v,vars:c,varsResolver:W,rootSelector:`indicator`}),x=(0,w.use)(ae),S=typeof m==`boolean`?m:x?.checked||!1;return(0,T.jsx)(t.t,{...b(`indicator`,{variant:g}),variant:g,mod:[{checked:S,disabled:_},h],...y,children:(0,T.jsx)(l,{...b(`icon`)})})});G.displayName=`@mantine/core/RadioIndicator`,G.classes=U,G.varsResolver=W;var le={root:`m_f3f1af94`,inner:`m_89c4f5e4`,icon:`m_f3ed6b2b`,radio:`m_8a3dbb89`,"radio--outline":`m_1bfe9d39`},ue={labelPosition:`right`,withErrorStyles:!0},de=t.O((e,{size:n,radius:r,color:i,iconColor:a,variant:o,autoContrast:s})=>{let l=t.S({color:i||e.primaryColor,theme:e}),u=l.isThemeColor&&l.shade===void 0?`var(--mantine-color-${l.color}-outline)`:l.color;return{root:{"--radio-size":t.N(n,`radio-size`),"--radio-radius":r===void 0?void 0:t.j(r),"--radio-color":o===`outline`?u:t.x(i,e),"--radio-icon-color":a?t.x(a,e):c.r(s,e)?c.i({color:i,theme:e,autoContrast:s}):void 0,"--radio-icon-size":t.N(n,`radio-icon-size`)}}}),K=t.r(e=>{let n=t.l(`Radio`,ue,e),{classNames:r,className:i,style:s,styles:c,unstyled:l,vars:u,id:d,size:f,label:p,labelPosition:m,description:h,error:g,radius:_,color:v,variant:y,disabled:b,wrapperProps:x,icon:S=se,rootRef:C,iconColor:E,onChange:D,mod:ee,attributes:O,withErrorStyles:k,checked:A,...te}=n,j=t.c({name:`Radio`,classes:le,props:n,className:i,style:s,classNames:r,styles:c,unstyled:l,attributes:O,vars:u,varsResolver:de}),M=(0,w.use)(ne),N=M?.size??f,P=n.size?f:N,{styleProps:F,rest:I}=t.o(te),L=a.u(d),R=M?M.value===I.value:void 0,z={checked:R??A,name:I.name??M?.name,onChange:e=>{M?.onChange(e),D?.(e)},disabled:M?.disabled??b};return(0,T.jsx)(o.n,{...j(`root`),__staticSelector:`Radio`,__stylesApiProps:n,id:L,size:P,labelPosition:m,label:p,description:h,error:g,disabled:z.disabled,classNames:r,styles:c,unstyled:l,"data-checked":(R??A)||void 0,variant:y,ref:C,mod:ee,attributes:O,...F,...x,children:(0,T.jsxs)(t.t,{...j(`inner`),mod:{"label-position":m},children:[(0,T.jsx)(t.t,{...j(`radio`,{focusable:!0,variant:y}),...I,...z,component:`input`,mod:{error:!!g,"with-error-styles":k},id:L,type:`radio`}),(0,T.jsx)(S,{...j(`icon`),"aria-hidden":!0})]})})});K.classes=le,K.varsResolver=de,K.displayName=`@mantine/core/Radio`,K.Group=re,K.Card=H,K.Indicator=G;var fe={root:`m_cf365364`,indicator:`m_9e182ccd`,label:`m_1738fcb2`,input:`m_1714d588`,control:`m_69686b9b`,innerLabel:`m_78882f40`},pe={withItemsBorders:!0},me=t.O((e,{radius:n,color:r,transitionDuration:i,size:a,transitionTimingFunction:o})=>({root:{"--sc-radius":n===void 0?void 0:t.j(n),"--sc-color":r?t.x(r,e):void 0,"--sc-shadow":r?void 0:`var(--mantine-shadow-xs)`,"--sc-transition-duration":i===void 0?void 0:`${i}ms`,"--sc-transition-timing-function":o,"--sc-padding":t.N(a,`sc-padding`),"--sc-font-size":t.k(a)}})),q=t.i(e=>{let n=t.l(`SegmentedControl`,pe,e),{classNames:r,className:o,style:l,styles:u,unstyled:d,vars:f,data:p,value:m,defaultValue:h,onChange:g,size:_,name:v,disabled:y,readOnly:b,fullWidth:x,orientation:S,radius:C,color:E,transitionDuration:D,transitionTimingFunction:ee,variant:k,autoContrast:A,withItemsBorders:j,mod:N,attributes:P,ref:F,...I}=n,R=t.c({name:`SegmentedControl`,props:n,classes:fe,className:o,style:l,classNames:r,styles:u,unstyled:d,attributes:P,vars:f,varsResolver:me}),z=t.d(),B=p.map(e=>M(e)?{label:`${e}`,value:e}:e),ne=te(),[re,ie]=(0,w.useState)(a.p()),[ae,oe]=(0,w.useState)(null),[V,H]=(0,w.useState)({}),se=(e,t)=>{V[t]=e,H(V)},[U,ce]=i.t({value:m,defaultValue:h,finalValue:Array.isArray(p)?B.find(e=>!e.disabled)?.value??p[0]?.value??null:null,onChange:g}),W=a.u(v),G=B.map(e=>(0,w.createElement)(t.t,{...R(`control`),mod:{active:U===e.value,orientation:S},key:`${e.value}`},(0,w.createElement)(`input`,{...R(`input`),disabled:y||e.disabled,type:`radio`,name:W,value:`${e.value}`,id:`${W}-${e.value}`,checked:U===e.value,onChange:()=>!b&&ce(e.value),"data-focus-ring":z.focusRing,key:`${e.value}-input`}),(0,w.createElement)(t.t,{component:`label`,...R(`label`),mod:{active:U===e.value&&!(y||e.disabled),disabled:y||e.disabled,"read-only":b},htmlFor:`${W}-${e.value}`,ref:t=>se(t,`${e.value}`),__vars:{"--sc-label-color":E===void 0?void 0:c.i({color:E,theme:z,autoContrast:A})},key:`${e.value}-label`},(0,T.jsx)(`span`,{...R(`innerLabel`),children:e.label})))),le=s.r(F,e=>oe(e));return O(()=>{ie(a.p())},[p.length]),p.length===0?null:(0,T.jsxs)(t.t,{...R(`root`),variant:k,size:_,ref:le,mod:[{"full-width":x,orientation:S,initialized:ne,"with-items-borders":j},N],...I,role:`radiogroup`,"data-disabled":y,children:[U!==void 0&&(0,T.jsx)(L,{target:V[`${U}`],parent:ae,component:`span`,transitionDuration:`var(--sc-transition-duration)`,...R(`indicator`)},re),G]})});q.classes=fe,q.varsResolver=me,q.displayName=`@mantine/core/SegmentedControl`;var he={mode:`light`,colors:{desktop:`#f0f4f8`,taskbar:`rgba(255, 255, 255, 0.9)`,window:`#ffffff`,accent:`#339af0`},window:{borderRadius:`8px`,headerHeight:40,minWidth:400,minHeight:300,defaultWidth:800,defaultHeight:600,shadow:`0 8px 32px rgba(0, 0, 0, 0.2)`},taskbar:{height:48,position:`bottom`,background:`rgba(0, 0, 0, 0.8)`,blur:!0},desktop:{background:`linear-gradient(135deg, #667eea 0%, #764ba2 100%)`,iconSize:64,iconSpacing:16}},ge={mode:`dark`,colors:{desktop:`#1a1b1e`,taskbar:`rgba(26, 27, 30, 0.9)`,window:`#25262b`,accent:`#4dabf7`},window:{borderRadius:`8px`,headerHeight:40,minWidth:400,minHeight:300,defaultWidth:800,defaultHeight:600,shadow:`0 8px 32px rgba(0, 0, 0, 0.2)`},taskbar:{height:48,position:`bottom`,background:`rgba(0, 0, 0, 0.8)`,blur:!0},desktop:{background:`linear-gradient(135deg, #1a1b1e 0%, #2d1f3d 100%)`,iconSize:64,iconSpacing:16}},_e=class{mode;customColors=null;constructor(e=`light`){this.mode=e}getTheme(){let e=this.mode===`light`?he:ge;return this.customColors?{...e,colors:{...e.colors,taskbar:this.customColors.taskbar,window:this.customColors.window,accent:this.customColors.accent}}:e}setMode(e){this.mode=e}setCustomColors(e){this.customColors=e}toggle(){this.mode=this.mode===`light`?`dark`:`light`}},ve=[`en`,`es`],ye=`en`,be=()=>{try{let e=localStorage.getItem(`fde-desktop:settings`),t=localStorage.getItem(`fran-desktop:settings`);return JSON.parse(e??t??`{}`)?.state?.theme?.mode??null}catch{return null}},xe=be(),Se=()=>{if(typeof navigator>`u`||!navigator.language)return ye;let e=navigator.language.split(`-`)[0];return ve.includes(e)?e:ye},Ce=(()=>{try{let e=localStorage.getItem(`fde-desktop:settings`),t=localStorage.getItem(`fran-desktop:settings`),n=JSON.parse(e??t??`{}`)?.state?.language;return n&&ve.includes(n)?n:Se()}catch{return Se()}})(),we=typeof window<`u`&&window.matchMedia?.(`(prefers-color-scheme: dark)`).matches?`dark`:`light`,J=new _e(xe??we),Y=g.t()(_.pt(e=>({wallpaper:null,wallpaperModule:`default`,launcherIcon:`FcElectronics`,font:`system-ui`,downloadedFonts:[],fontSize:14,animationDuration:.3,theme:J.getTheme(),themeSetManually:xe!==null,customThemeColors:null,language:Ce,setWallpaper:t=>e({wallpaper:t}),setWallpaperModule:t=>e({wallpaperModule:t}),setLauncherIcon:t=>e({launcherIcon:t}),setFont:t=>e({font:t}),markFontDownloaded:t=>e(e=>({downloadedFonts:e.downloadedFonts.includes(t)?e.downloadedFonts:[...e.downloadedFonts,t]})),setFontSize:t=>e({fontSize:t}),setAnimationDuration:t=>e({animationDuration:t}),setThemeMode:t=>{J.setMode(t),e({theme:J.getTheme(),themeSetManually:!0})},toggleTheme:()=>{J.toggle(),e({theme:J.getTheme(),themeSetManually:!0})},setThemeAutomatic:()=>e({themeSetManually:!1}),applySystemTheme:t=>{J.setMode(t),e({theme:J.getTheme()})},setCustomThemeColors:t=>{e({customThemeColors:t})},setLanguage:t=>e({language:t})}),{name:`fde-desktop:settings`,storage:_.ft(()=>localStorage)})),Te={container:`_container_a0fjd_1`,flag:`_flag_a0fjd_8`},Ee={en:(0,T.jsxs)(`svg`,{viewBox:`0 0 60 40`,className:Te.flag,children:[(0,T.jsx)(`rect`,{fill:`#012169`,width:`60`,height:`40`}),(0,T.jsx)(`path`,{d:`M0,0 L60,40 M60,0 L0,40`,stroke:`#fff`,strokeWidth:`6`}),(0,T.jsx)(`path`,{d:`M0,0 L60,40 M60,0 L0,40`,stroke:`#C8102E`,strokeWidth:`4`}),(0,T.jsx)(`path`,{d:`M30,0 V40 M0,20 H60`,stroke:`#fff`,strokeWidth:`10`}),(0,T.jsx)(`path`,{d:`M30,0 V40 M0,20 H60`,stroke:`#C8102E`,strokeWidth:`6`})]}),es:(0,T.jsxs)(`svg`,{viewBox:`0 0 60 40`,className:Te.flag,children:[(0,T.jsx)(`rect`,{fill:`#C60B1E`,width:`60`,height:`40`}),(0,T.jsx)(`rect`,{fill:`#FFC400`,y:`10`,width:`60`,height:`20`})]})},De=({lang:e,size:t=20})=>(0,T.jsx)(`div`,{style:{width:t*1.5,height:t},className:Te.container,"aria-label":e===`en`?`English`:`Español`,"data-testid":`flag-${e}`,children:Ee[e]}),Oe=[{value:`system-ui`,label:`System Default`,stack:`system-ui, Avenir, Helvetica, Arial, sans-serif`},{value:`Courier New`,label:`Courier New`,stack:`"Courier New", monospace`},{value:`Source Code Pro`,label:`Source Code Pro`,stack:`"Source Code Pro", monospace`},{value:`Open Sans`,label:`Open Sans`,stack:`"Open Sans", monospace`}],ke=Object.fromEntries(Oe.map(e=>[e.value,e.stack])),X={"Source Code Pro":`https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap`,"Open Sans":`https://fonts.googleapis.com/css2?family=Open+Sans&display=swap`},Ae=[{id:`wallpaper`,label:`Wallpaper`,fcIcon:`FcPicture`,description:`Change the desktop background image.`},{id:`appearance`,label:`Appearance`,fcIcon:`FcBinoculars`,description:`Switch between light and dark mode.`},{id:`launcher`,label:`Launcher`,fcIcon:`FcElectronics`,description:`Choose the launcher button icon.`},{id:`font`,label:`Font`,fcIcon:`FcEditImage`,description:`Select the system font family.`},{id:`language`,label:`Language`,fcIcon:`FcGlobe`,description:`Choose your preferred language.`},{id:`reset`,label:`Reset to Default`,fcIcon:`FcDisclaimer`,description:`Reset all settings and data to defaults.`}],Z=({title:e,description:t,children:n})=>(0,T.jsxs)(h.t,{gap:`md`,p:`md`,children:[(0,T.jsx)(f.o,{fw:600,size:`lg`,children:e}),t&&(0,T.jsx)(f.o,{size:`sm`,c:`dimmed`,children:t}),n]}),je=`/Images/wallpaper.jpg`,Me=()=>{let{t:e}=v.t(`settings`),t=Y(e=>e.wallpaper),n=Y(e=>e.wallpaperModule),r=Y(e=>e.setWallpaper),i=Y(e=>e.setWallpaperModule),[o,s]=(0,w.useState)(``),[c,l]=(0,w.useState)(!1),u=(0,w.useRef)(null),f=b.t(t??void 0)??je,m=(0,w.useCallback)(e=>{let t=e.target.files?.[0];if(!t)return;let n=new FileReader;n.onload=e=>{let t=e.target?.result;typeof t==`string`&&r(t)},n.readAsDataURL(t)},[r]),h=(0,w.useCallback)(()=>{let e=o.trim();e&&r(e)},[o,r]),g=(0,w.useCallback)(()=>{r(null),s(``)},[r]),_=(0,w.useCallback)(e=>{let t=e.url?e.url.startsWith(`idb://`)?e.url:`/${e.url}`:null;t&&r(t),l(!1)},[r]);return(0,T.jsxs)(Z,{title:e(`wallpaper.title`),children:[(0,T.jsx)(`div`,{children:(0,T.jsx)(q,{value:n,onChange:i,data:[{value:`default`,label:e(`wallpaper.staticImage`)}],fullWidth:!0})}),(0,T.jsx)(`img`,{src:f,alt:e(`wallpaper.wallpaperPreview`),style:{width:`100%`,height:180,objectFit:`cover`,borderRadius:8}}),(0,T.jsxs)(d.t,{children:[(0,T.jsx)(`input`,{ref:u,type:`file`,accept:`image/*`,style:{display:`none`},onChange:m,"aria-label":e(`wallpaper.uploadAria`,{defaultValue:`Upload wallpaper file`})}),(0,T.jsx)(p.t,{variant:`light`,onClick:()=>l(!0),children:e(`wallpaper.chooseFromImages`)}),(0,T.jsx)(p.t,{variant:`light`,onClick:()=>u.current?.click(),children:e(`wallpaper.uploadFromDisk`)}),(0,T.jsx)(p.t,{variant:`subtle`,color:`red`,onClick:g,children:e(`wallpaper.resetToDefault`)})]}),(0,T.jsxs)(d.t,{align:`flex-end`,children:[(0,T.jsx)(a.t,{label:e(`wallpaper.orEnterUrl`),placeholder:`https://example.com/image.jpg`,value:o,onChange:e=>s(e.currentTarget.value),style:{flex:1}}),(0,T.jsx)(p.t,{onClick:h,disabled:!o.trim(),children:e(`common:actions.apply`)})]}),(0,T.jsx)(x.n,{opened:c,acceptedMimeTypes:[`image/*`],onConfirm:_,onCancel:()=>l(!1)})]})},Ne=()=>{let{t:e}=v.t(`settings`),r=Y(e=>e.theme.mode),i=Y(e=>e.themeSetManually),a=Y(e=>e.customThemeColors),s=Y(e=>e.animationDuration),c=Y(e=>e.setThemeMode),l=Y(e=>e.setThemeAutomatic),u=Y(e=>e.setCustomThemeColors),p=Y(e=>e.setAnimationDuration),m=a?`custom`:i?r:`system`,g=(0,w.useCallback)(e=>{e===`system`?(l(),u(null)):e===`custom`?u({taskbar:`#339af0`,window:`#ffffff`,accent:`#339af0`}):(c(e),u(null))},[c,l,u]),_=(0,w.useCallback)(e=>t=>{a&&u({...a,[e]:t})},[a,u]),y=(0,w.useCallback)(e=>{p(e)},[p]),b=m===`custom`;return(0,T.jsxs)(h.t,{gap:`md`,p:`md`,children:[(0,T.jsx)(f.o,{fw:600,size:`lg`,children:e(`appearance.title`)}),(0,T.jsx)(f.o,{size:`sm`,c:`dimmed`,children:e(`appearance.description`)}),(0,T.jsx)(q,{value:m,onChange:g,data:[{label:e(`common:theme.light`),value:`light`},{label:e(`common:theme.dark`),value:`dark`},{label:e(`common:theme.system`),value:`system`},{label:e(`common:theme.custom`),value:`custom`}],"aria-label":e(`appearance.themeMode`,{defaultValue:`Theme mode`})}),(0,T.jsxs)(h.t,{gap:`sm`,mt:`md`,children:[(0,T.jsxs)(t.t,{children:[(0,T.jsx)(f.o,{size:`sm`,fw:500,mb:`xs`,c:b?`dark`:void 0,children:e(`appearance.taskbar`)}),(0,T.jsx)(n.t,{value:a?.taskbar??`#339af0`,onChange:_(`taskbar`),disabled:!b})]}),(0,T.jsxs)(t.t,{children:[(0,T.jsx)(f.o,{size:`sm`,fw:500,mb:`xs`,c:b?`dark`:void 0,children:e(`appearance.window`)}),(0,T.jsx)(n.t,{value:a?.window??`#ffffff`,onChange:_(`window`),disabled:!b})]}),(0,T.jsxs)(t.t,{children:[(0,T.jsx)(f.o,{size:`sm`,fw:500,mb:`xs`,c:b?`dark`:void 0,children:e(`appearance.accent`)}),(0,T.jsx)(n.t,{value:a?.accent??`#339af0`,onChange:_(`accent`),disabled:!b})]})]}),(0,T.jsxs)(t.t,{mt:`md`,children:[(0,T.jsx)(f.o,{size:`sm`,fw:500,mb:`xs`,children:e(`appearance.animationDuration`)}),(0,T.jsx)(f.o,{size:`xs`,c:`dimmed`,mb:`sm`,children:e(`appearance.animationDescription`)}),(0,T.jsxs)(d.t,{align:`center`,gap:`md`,children:[(0,T.jsx)(o.t,{value:s,onChange:y,min:.1,max:1,step:.1,style:{flex:1},marks:[{value:.1,label:`0.1s`},{value:.5,label:`0.5s`},{value:1,label:`1.0s`}],"aria-label":e(`appearance.animationDuration`)}),(0,T.jsxs)(f.o,{size:`sm`,fw:500,style:{minWidth:40},children:[s.toFixed(1),`s`]})]})]})]})},Pe=()=>{let e=Y(e=>e.launcherIcon),t=Y(e=>e.setLauncherIcon),[i,s]=(0,w.useState)([]),[c,u]=(0,w.useState)(``),d=(0,w.useDeferredValue)(c);(0,w.useEffect)(()=>{Promise.resolve().then(()=>require(`./fc-DejOsQyD.cjs`)).then(e=>{s(Object.keys(e).filter(e=>e.startsWith(`Fc`)).sort())})},[]);let f=d?i.filter(e=>e.toLowerCase().includes(d.toLowerCase())):i,p=(0,w.useCallback)(e=>{t(e)},[t]);return(0,T.jsxs)(Z,{title:`Launcher Icon`,description:`Selected: ${e}`,children:[(0,T.jsx)(a.t,{placeholder:`Search icons...`,value:c,onChange:e=>u(e.currentTarget.value),"aria-label":`Search icons`}),(0,T.jsx)(o.a,{style:{flex:1,height:300},children:(0,T.jsx)(n.n,{cols:8,spacing:4,children:f.map(t=>(0,T.jsx)(r.t,{label:t,withArrow:!0,openDelay:400,children:(0,T.jsx)(l.t,{onClick:()=>p(t),"aria-label":t,"aria-pressed":t===e,style:{padding:6,borderRadius:6,background:t===e?`var(--mantine-primary-color-light)`:`transparent`,display:`flex`,alignItems:`center`,justifyContent:`center`},children:(0,T.jsx)(m.t,{fcIcon:t,size:24})})},t))})})]})},Fe=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ie=new class extends Fe{#e;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e();return window.addEventListener(`visibilitychange`,t,!1),()=>{window.removeEventListener(`visibilitychange`,t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(e=>{typeof e==`boolean`?this.setFocused(e):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){let e=this.isFocused();this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e==`boolean`?this.#e:globalThis.document?.visibilityState!==`hidden`}},Le={setTimeout:(e,t)=>setTimeout(e,t),clearTimeout:e=>clearTimeout(e),setInterval:(e,t)=>setInterval(e,t),clearInterval:e=>clearInterval(e)},Re=new class{#e=Le;#t=!1;setTimeoutProvider(e){process.env.NODE_ENV!==`production`&&this.#t&&e!==this.#e&&console.error(`[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,{previous:this.#e,provider:e}),this.#e=e,process.env.NODE_ENV!==`production`&&(this.#t=!1)}setTimeout(e,t){return process.env.NODE_ENV!==`production`&&(this.#t=!0),this.#e.setTimeout(e,t)}clearTimeout(e){this.#e.clearTimeout(e)}setInterval(e,t){return process.env.NODE_ENV!==`production`&&(this.#t=!0),this.#e.setInterval(e,t)}clearInterval(e){this.#e.clearInterval(e)}};function ze(e){setTimeout(e,0)}var Be=typeof window>`u`||`Deno`in globalThis;function Ve(){}function He(e){return typeof e==`number`&&e>=0&&e!==1/0}function Ue(e,t){return Math.max(e+(t||0)-Date.now(),0)}function We(e,t){return typeof e==`function`?e(t):e}function Q(e,t){return typeof e==`function`?e(t):e}var Ge=Object.prototype.hasOwnProperty;function Ke(e,t,n=0){if(e===t)return e;if(n>500)return t;let r=Je(e)&&Je(t);if(!r&&!(Ye(e)&&Ye(t)))return t;let i=(r?e:Object.keys(e)).length,a=r?t:Object.keys(t),o=a.length,s=r?Array(o):{},c=0;for(let l=0;l<o;l++){let o=r?l:a[l],u=e[o],d=t[o];if(u===d){s[o]=u,(r?l<i:Ge.call(e,o))&&c++;continue}if(u===null||d===null||typeof u!=`object`||typeof d!=`object`){s[o]=d;continue}let f=Ke(u,d,n+1);s[o]=f,f===u&&c++}return i===o&&c===i?e:s}function qe(e,t){if(!t||Object.keys(e).length!==Object.keys(t).length)return!1;for(let n in e)if(e[n]!==t[n])return!1;return!0}function Je(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Ye(e){if(!Xe(e))return!1;let t=e.constructor;if(t===void 0)return!0;let n=t.prototype;return!(!Xe(n)||!n.hasOwnProperty(`isPrototypeOf`)||Object.getPrototypeOf(e)!==Object.prototype)}function Xe(e){return Object.prototype.toString.call(e)===`[object Object]`}function Ze(e,t,n){if(typeof n.structuralSharing==`function`)return n.structuralSharing(e,t);if(n.structuralSharing!==!1){if(process.env.NODE_ENV!==`production`)try{return Ke(e,t)}catch(e){throw console.error(`Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${n.queryHash}]: ${e}`),e}return Ke(e,t)}return t}function Qe(e,t){return typeof e==`function`?e(...t):!!e}var $e=(()=>{let e=()=>Be;return{isServer(){return e()},setIsServer(t){e=t}}})();function et(){let e,t,n=new Promise((n,r)=>{e=n,t=r});n.status=`pending`,n.catch(()=>{});function r(e){Object.assign(n,e),delete n.resolve,delete n.reject}return n.resolve=t=>{r({status:`fulfilled`,value:t}),e(t)},n.reject=e=>{r({status:`rejected`,reason:e}),t(e)},n}var tt=ze;function nt(){let e=[],t=0,n=e=>{e()},r=e=>{e()},i=tt,a=r=>{t?e.push(r):i(()=>{n(r)})},o=()=>{let t=e;e=[],t.length&&i(()=>{r(()=>{t.forEach(e=>{n(e)})})})};return{batch:e=>{let n;t++;try{n=e()}finally{t--,t||o()}return n},batchCalls:e=>(...t)=>{a(()=>{e(...t)})},schedule:a,setNotifyFunction:e=>{n=e},setBatchNotifyFunction:e=>{r=e},setScheduler:e=>{i=e}}}var rt=nt(),it=new class extends Fe{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(typeof window<`u`&&window.addEventListener){let t=()=>e(!0),n=()=>e(!1);return window.addEventListener(`online`,t,!1),window.addEventListener(`offline`,n,!1),()=>{window.removeEventListener(`online`,t),window.removeEventListener(`offline`,n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(t=>{t(e)}))}isOnline(){return this.#e}};function at(e){return(e??`online`)===`online`?it.isOnline():!0}function ot(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:at(t.networkMode)?`fetching`:`paused`,...e===void 0&&{error:null,status:`pending`}}}var st=class extends Fe{constructor(e,t){super(),this.options=t,this.#e=e,this.#s=null,this.#o=et(),this.bindMethods(),this.setOptions(t)}#e;#t=void 0;#n=void 0;#r=void 0;#i;#a;#o;#s;#c;#l;#u;#d;#f;#p;#m=new Set;bindMethods(){this.refetch=this.refetch.bind(this)}onSubscribe(){this.listeners.size===1&&(this.#t.addObserver(this),lt(this.#t,this.options)?this.#h():this.updateResult(),this.#y())}onUnsubscribe(){this.hasListeners()||this.destroy()}shouldFetchOnReconnect(){return ut(this.#t,this.options,this.options.refetchOnReconnect)}shouldFetchOnWindowFocus(){return ut(this.#t,this.options,this.options.refetchOnWindowFocus)}destroy(){this.listeners=new Set,this.#b(),this.#x(),this.#t.removeObserver(this)}setOptions(e){let t=this.options,n=this.#t;if(this.options=this.#e.defaultQueryOptions(e),this.options.enabled!==void 0&&typeof this.options.enabled!=`boolean`&&typeof this.options.enabled!=`function`&&typeof Q(this.options.enabled,this.#t)!=`boolean`)throw Error(`Expected enabled to be a boolean or a callback that returns a boolean`);this.#S(),this.#t.setOptions(this.options),t._defaulted&&!qe(this.options,t)&&this.#e.getQueryCache().notify({type:`observerOptionsUpdated`,query:this.#t,observer:this});let r=this.hasListeners();r&&dt(this.#t,n,this.options,t)&&this.#h(),this.updateResult(),r&&(this.#t!==n||Q(this.options.enabled,this.#t)!==Q(t.enabled,this.#t)||We(this.options.staleTime,this.#t)!==We(t.staleTime,this.#t))&&this.#g();let i=this.#_();r&&(this.#t!==n||Q(this.options.enabled,this.#t)!==Q(t.enabled,this.#t)||i!==this.#p)&&this.#v(i)}getOptimisticResult(e){let t=this.#e.getQueryCache().build(this.#e,e),n=this.createResult(t,e);return pt(this,n)&&(this.#r=n,this.#a=this.options,this.#i=this.#t.state),n}getCurrentResult(){return this.#r}trackResult(e,t){return new Proxy(e,{get:(e,n)=>(this.trackProp(n),t?.(n),n===`promise`&&(this.trackProp(`data`),!this.options.experimental_prefetchInRender&&this.#o.status===`pending`&&this.#o.reject(Error(`experimental_prefetchInRender feature flag is not enabled`))),Reflect.get(e,n))})}trackProp(e){this.#m.add(e)}getCurrentQuery(){return this.#t}refetch({...e}={}){return this.fetch({...e})}fetchOptimistic(e){let t=this.#e.defaultQueryOptions(e),n=this.#e.getQueryCache().build(this.#e,t);return n.fetch().then(()=>this.createResult(n,t))}fetch(e){return this.#h({...e,cancelRefetch:e.cancelRefetch??!0}).then(()=>(this.updateResult(),this.#r))}#h(e){this.#S();let t=this.#t.fetch(this.options,e);return e?.throwOnError||(t=t.catch(Ve)),t}#g(){this.#b();let e=We(this.options.staleTime,this.#t);if($e.isServer()||this.#r.isStale||!He(e))return;let t=Ue(this.#r.dataUpdatedAt,e)+1;this.#d=Re.setTimeout(()=>{this.#r.isStale||this.updateResult()},t)}#_(){return(typeof this.options.refetchInterval==`function`?this.options.refetchInterval(this.#t):this.options.refetchInterval)??!1}#v(e){this.#x(),this.#p=e,!($e.isServer()||Q(this.options.enabled,this.#t)===!1||!He(this.#p)||this.#p===0)&&(this.#f=Re.setInterval(()=>{(this.options.refetchIntervalInBackground||Ie.isFocused())&&this.#h()},this.#p))}#y(){this.#g(),this.#v(this.#_())}#b(){this.#d&&=(Re.clearTimeout(this.#d),void 0)}#x(){this.#f&&=(Re.clearInterval(this.#f),void 0)}createResult(e,t){let n=this.#t,r=this.options,i=this.#r,a=this.#i,o=this.#a,s=e===n?this.#n:e.state,{state:c}=e,l={...c},u=!1,d;if(t._optimisticResults){let i=this.hasListeners(),a=!i&&lt(e,t),o=i&&dt(e,n,t,r);(a||o)&&(l={...l,...ot(c.data,e.options)}),t._optimisticResults===`isRestoring`&&(l.fetchStatus=`idle`)}let{error:f,errorUpdatedAt:p,status:m}=l;d=l.data;let h=!1;if(t.placeholderData!==void 0&&d===void 0&&m===`pending`){let e;i?.isPlaceholderData&&t.placeholderData===o?.placeholderData?(e=i.data,h=!0):e=typeof t.placeholderData==`function`?t.placeholderData(this.#u?.state.data,this.#u):t.placeholderData,e!==void 0&&(m=`success`,d=Ze(i?.data,e,t),u=!0)}if(t.select&&d!==void 0&&!h)if(i&&d===a?.data&&t.select===this.#c)d=this.#l;else try{this.#c=t.select,d=t.select(d),d=Ze(i?.data,d,t),this.#l=d,this.#s=null}catch(e){this.#s=e}this.#s&&(f=this.#s,d=this.#l,p=Date.now(),m=`error`);let g=l.fetchStatus===`fetching`,_=m===`pending`,v=m===`error`,y=_&&g,b=d!==void 0,x={status:m,fetchStatus:l.fetchStatus,isPending:_,isSuccess:m===`success`,isError:v,isInitialLoading:y,isLoading:y,data:d,dataUpdatedAt:l.dataUpdatedAt,error:f,errorUpdatedAt:p,failureCount:l.fetchFailureCount,failureReason:l.fetchFailureReason,errorUpdateCount:l.errorUpdateCount,isFetched:e.isFetched(),isFetchedAfterMount:l.dataUpdateCount>s.dataUpdateCount||l.errorUpdateCount>s.errorUpdateCount,isFetching:g,isRefetching:g&&!_,isLoadingError:v&&!b,isPaused:l.fetchStatus===`paused`,isPlaceholderData:u,isRefetchError:v&&b,isStale:ft(e,t),refetch:this.refetch,promise:this.#o,isEnabled:Q(t.enabled,e)!==!1};if(this.options.experimental_prefetchInRender){let t=x.data!==void 0,r=x.status===`error`&&!t,i=e=>{r?e.reject(x.error):t&&e.resolve(x.data)},a=()=>{i(this.#o=x.promise=et())},o=this.#o;switch(o.status){case`pending`:e.queryHash===n.queryHash&&i(o);break;case`fulfilled`:(r||x.data!==o.value)&&a();break;case`rejected`:(!r||x.error!==o.reason)&&a();break}}return x}updateResult(){let e=this.#r,t=this.createResult(this.#t,this.options);this.#i=this.#t.state,this.#a=this.options,this.#i.data!==void 0&&(this.#u=this.#t),!qe(t,e)&&(this.#r=t,this.#C({listeners:(()=>{if(!e)return!0;let{notifyOnChangeProps:t}=this.options,n=typeof t==`function`?t():t;if(n===`all`||!n&&!this.#m.size)return!0;let r=new Set(n??this.#m);return this.options.throwOnError&&r.add(`error`),Object.keys(this.#r).some(t=>{let n=t;return this.#r[n]!==e[n]&&r.has(n)})})()}))}#S(){let e=this.#e.getQueryCache().build(this.#e,this.options);if(e===this.#t)return;let t=this.#t;this.#t=e,this.#n=e.state,this.hasListeners()&&(t?.removeObserver(this),e.addObserver(this))}onQueryUpdate(){this.updateResult(),this.hasListeners()&&this.#y()}#C(e){rt.batch(()=>{e.listeners&&this.listeners.forEach(e=>{e(this.#r)}),this.#e.getQueryCache().notify({query:this.#t,type:`observerResultsUpdated`})})}};function ct(e,t){return Q(t.enabled,e)!==!1&&e.state.data===void 0&&!(e.state.status===`error`&&t.retryOnMount===!1)}function lt(e,t){return ct(e,t)||e.state.data!==void 0&&ut(e,t,t.refetchOnMount)}function ut(e,t,n){if(Q(t.enabled,e)!==!1&&We(t.staleTime,e)!==`static`){let r=typeof n==`function`?n(e):n;return r===`always`||r!==!1&&ft(e,t)}return!1}function dt(e,t,n,r){return(e!==t||Q(r.enabled,e)===!1)&&(!n.suspense||e.state.status!==`error`)&&ft(e,n)}function ft(e,t){return Q(t.enabled,e)!==!1&&e.isStaleByTime(We(t.staleTime,e))}function pt(e,t){return!qe(e.getCurrentResult(),t)}var mt=w.createContext(void 0),ht=e=>{let t=w.useContext(mt);if(e)return e;if(!t)throw Error(`No QueryClient set, use QueryClientProvider to set one`);return t},gt=w.createContext(!1),_t=()=>w.useContext(gt);gt.Provider;function vt(){let e=!1;return{clearReset:()=>{e=!1},reset:()=>{e=!0},isReset:()=>e}}var yt=w.createContext(vt()),bt=()=>w.useContext(yt),xt=(e,t,n)=>{let r=n?.state.error&&typeof e.throwOnError==`function`?Qe(e.throwOnError,[n.state.error,n]):e.throwOnError;(e.suspense||e.experimental_prefetchInRender||r)&&(t.isReset()||(e.retryOnMount=!1))},St=e=>{w.useEffect(()=>{e.clearReset()},[e])},Ct=({result:e,errorResetBoundary:t,throwOnError:n,query:r,suspense:i})=>e.isError&&!t.isReset()&&!e.isFetching&&r&&(i&&e.data===void 0||Qe(n,[e.error,r])),wt=e=>{if(e.suspense){let t=1e3,n=e=>e===`static`?e:Math.max(e??t,t),r=e.staleTime;e.staleTime=typeof r==`function`?(...e)=>n(r(...e)):n(r),typeof e.gcTime==`number`&&(e.gcTime=Math.max(e.gcTime,t))}},Tt=(e,t)=>e.isLoading&&e.isFetching&&!t,Et=(e,t)=>e?.suspense&&t.isPending,Dt=(e,t,n)=>t.fetchOptimistic(e).catch(()=>{n.clearReset()});function Ot(e,t,n){if(process.env.NODE_ENV!==`production`&&(typeof e!=`object`||Array.isArray(e)))throw Error(`Bad argument type. Starting with v5, only the "Object" form is allowed when calling query related functions. Please use the error stack to find the culprit call. More info here: https://tanstack.com/query/latest/docs/react/guides/migrating-to-v5#supports-a-single-signature-one-object`);let r=_t(),i=bt(),a=ht(n),o=a.defaultQueryOptions(e);a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);let s=a.getQueryCache().get(o.queryHash);process.env.NODE_ENV!==`production`&&(o.queryFn||console.error(`[${o.queryHash}]: No queryFn was passed as an option, and no default queryFn was found. The queryFn parameter is only optional when using a default queryFn. More info here: https://tanstack.com/query/latest/docs/framework/react/guides/default-query-function`)),o._optimisticResults=r?`isRestoring`:`optimistic`,wt(o),xt(o,i,s),St(i);let c=!a.getQueryCache().get(o.queryHash),[l]=w.useState(()=>new t(a,o)),u=l.getOptimisticResult(o),d=!r&&e.subscribed!==!1;if(w.useSyncExternalStore(w.useCallback(e=>{let t=d?l.subscribe(rt.batchCalls(e)):Ve;return l.updateResult(),t},[l,d]),()=>l.getCurrentResult(),()=>l.getCurrentResult()),w.useEffect(()=>{l.setOptions(o)},[o,l]),Et(o,u))throw Dt(o,l,i);if(Ct({result:u,errorResetBoundary:i,throwOnError:o.throwOnError,query:s,suspense:o.suspense}))throw u.error;return a.getDefaultOptions().queries?._experimental_afterQuery?.(o,u),o.experimental_prefetchInRender&&!$e.isServer()&&Tt(u,r)&&(c?Dt(o,l,i):s?.promise)?.catch(Ve).finally(()=>{l.updateResult()}),o.notifyOnChangeProps?u:l.trackResult(u)}function kt(e,t){return Ot(e,st,t)}var At=e=>{let t=X[e];if(!t||document.head.querySelector(`link[data-font="${e}"]`))return;let n=document.createElement(`link`);n.rel=`stylesheet`,n.href=t,n.setAttribute(`data-font`,e),document.head.appendChild(n)},jt=async e=>{let t=X[e];if(!t)throw Error(`Font "${e}" not found in Google Fonts`);let n=await fetch(t);if(!n.ok)throw Error(`Failed to download font: HTTP ${n.status}`);return await n.text(),At(e),{font:e,success:!0}},Mt=e=>{let t=ht(),n=Y(e=>e.markFontDownloaded),r=Y(e=>e.downloadedFonts),i=e?r.includes(e):!1,a=e&&!i&&X[e],o=kt({queryKey:[`font`,e??``],queryFn:async({queryKey:e})=>{let[,t]=e;if(!t||!X[t])throw Error(`Font "${t}" not available`);let r=await jt(t);return r.success&&n(t),r},enabled:!!a,staleTime:1/0,gcTime:1/0,retry:!1}),s=o.isFetching?{status:`downloading`,loaded:0,total:null,percent:null,error:null}:o.isError?{status:`error`,loaded:0,total:null,percent:null,error:o.error?.message??`Unknown error`}:o.isSuccess?{status:`done`,loaded:0,total:0,percent:100,error:null}:{status:`idle`,loaded:0,total:null,percent:null,error:null},c=()=>{e&&t.removeQueries({queryKey:[`font`,e]})};return{...o,progress:s,isDownloaded:i,reset:c}},Nt=S.t[1],Pt=({status:e,error:t,onDownload:n})=>{let{t:r}=v.t(`settings`);return t?(0,T.jsx)(B,{color:Nt,variant:`filled`,size:`sm`,"aria-label":`Download error: ${t}`,children:r(`common:status.error`)}):(0,T.jsx)(p.t,{size:`xs`,variant:`light`,onClick:n,loading:e===`downloading`,"aria-label":r(`font.download`),children:r(`font.download`)})},Ft=()=>{let{t:e}=v.t(`settings`),t=Y(e=>e.font),n=Y(e=>e.setFont),r=Y(e=>e.fontSize),i=Y(e=>e.setFontSize),a=Y(e=>e.downloadedFonts),s=Y(e=>e.markFontDownloaded),[l,p]=(0,w.useState)(null),m=Mt(l);(0,w.useEffect)(()=>{m.isSuccess&&m.data?.success&&l&&(a.includes(l)||s(l))},[m.isSuccess,m.data,l,a,s]);let g=(0,w.useCallback)(e=>{p(e)},[]),_=e=>a.includes(e)?`done`:l===e?m.progress.status:`idle`,y=e=>l===e?m.progress.error:null,b=(0,w.useCallback)(e=>{let t=e.trim();t&&(X[t]=`https://fonts.googleapis.com/css2?family=${t.replace(/\s+/g,`+`)}&display=swap`,p(t))},[]),x=Oe.map(e=>e.value),S=a.filter(e=>!x.includes(e));return(0,T.jsxs)(h.t,{gap:`md`,p:`md`,children:[(0,T.jsx)(f.o,{fw:600,size:`lg`,children:e(`font.title`)}),(0,T.jsx)(f.o,{size:`sm`,c:`dimmed`,children:e(`font.description`)}),(0,T.jsx)(K.Group,{value:t,onChange:n,"aria-label":e(`font.selectionAria`,{defaultValue:`Font selection`}),children:(0,T.jsxs)(h.t,{gap:`xs`,children:[Oe.map(e=>{let t=!!X[e.value],n=a.includes(e.value),r=_(e.value),i=y(e.value),o=!t||n||r===`done`;return(0,T.jsx)(u.t,{p:`sm`,withBorder:!0,radius:`md`,children:(0,T.jsxs)(h.t,{gap:`xs`,children:[(0,T.jsxs)(d.t,{justify:`space-between`,children:[(0,T.jsx)(K,{value:e.value,label:e.label,"aria-label":e.label,disabled:!o}),(0,T.jsxs)(d.t,{gap:`xs`,align:`center`,children:[o&&(0,T.jsx)(f.o,{size:`sm`,c:`dimmed`,style:{fontFamily:e.stack},children:`AaBbCcDd`}),t&&(0,T.jsx)(Pt,{fontLabel:e.label,status:r,error:i,onDownload:()=>g(e.value),isDownloaded:n})]})]}),t&&r===`downloading`&&(0,T.jsx)(c.t,{state:m.progress})]})},e.value)}),S.map(e=>(0,T.jsx)(u.t,{p:`sm`,withBorder:!0,radius:`md`,children:(0,T.jsxs)(d.t,{justify:`space-between`,children:[(0,T.jsx)(K,{value:e,label:e,"aria-label":e}),(0,T.jsx)(f.o,{size:`sm`,c:`dimmed`,style:{fontFamily:`"${e}"`},children:`AaBbCcDd`})]})},e))]})}),(0,T.jsx)(u.t,{p:`sm`,withBorder:!0,radius:`md`,children:(0,T.jsxs)(h.t,{gap:`xs`,children:[(0,T.jsxs)(d.t,{justify:`space-between`,children:[(0,T.jsx)(f.o,{size:`sm`,fw:500,children:e(`font.fontSize`)}),(0,T.jsxs)(f.o,{size:`sm`,c:`dimmed`,children:[r,`px`]})]}),(0,T.jsx)(o.t,{value:r,onChange:i,min:10,max:24,step:1,marks:[{value:10},{value:14},{value:18},{value:20},{value:24}],"aria-label":e(`font.fontSizeAria`,{defaultValue:`Font size`})})]})}),(0,T.jsx)(It,{onDownload:b,activeDownload:l,fontDownload:m})]})},It=({onDownload:e,activeDownload:t,fontDownload:n})=>{let{t:r}=v.t(`settings`),[i,o]=(0,w.useState)(``),s=t===i.trim(),l=s?n.progress.status:`idle`,m=s&&n.progress.status===`error`,g=(0,w.useCallback)(e=>{o(e),m&&n.reset?.()},[m,n]),_=(0,w.useCallback)(()=>{e(i)},[i,e]),y=s&&l===`done`;return(0,T.jsx)(u.t,{p:`sm`,withBorder:!0,radius:`md`,children:(0,T.jsxs)(h.t,{gap:`xs`,children:[(0,T.jsxs)(f.o,{size:`sm`,fw:500,children:[r(`font.downloadByName`),` `,(0,T.jsx)(`a`,{href:`https://fonts.google.com/`,target:`_blank`,rel:`noreferrer`,children:r(`font.fromGoogleFonts`)})]}),(0,T.jsxs)(d.t,{gap:`xs`,align:`flex-start`,children:[(0,T.jsx)(a.t,{placeholder:r(`font.namePlaceholder`,{defaultValue:`e.g. Open Sans`}),value:i,onChange:e=>g(e.currentTarget.value),style:{flex:1},"aria-label":r(`font.customNameAria`,{defaultValue:`Custom font name`}),error:m?r(`font.downloadError`):void 0}),(0,T.jsx)(p.t,{onClick:_,disabled:!i.trim()||l===`downloading`,loading:l===`downloading`,"aria-label":r(`font.downloadCustomAria`,{defaultValue:`Download custom font`}),style:{marginTop:m?0:void 0},children:r(`font.download`)})]}),l===`downloading`&&(0,T.jsx)(c.t,{state:n.progress}),y&&(0,T.jsx)(f.o,{size:`xs`,c:`dimmed`,children:r(`font.downloadSuccess`)})]})})},Lt=[`en`,`es`],Rt=`en`,zt={en:`English`,es:`Español`},Bt=()=>{let{t:e}=v.t(`settings`),t=Y(e=>e.language),n=Y(e=>e.setLanguage),r=(0,w.useCallback)(e=>{n(e)},[n]);return(0,T.jsx)(Z,{title:e(`language.title`),description:e(`language.description`),children:(0,T.jsx)(h.t,{gap:`xs`,children:Lt.map(e=>(0,T.jsx)(l.t,{onClick:()=>r(e),"aria-label":zt[e],"aria-pressed":e===t,style:{padding:`12px 16px`,borderRadius:8,width:`100%`,background:e===t?`var(--mantine-primary-color-light)`:`transparent`,border:e===t?`1px solid var(--mantine-primary-color-filled)`:`1px solid transparent`,transition:`all 0.15s ease`,cursor:`pointer`},children:(0,T.jsxs)(d.t,{gap:`sm`,children:[(0,T.jsx)(De,{lang:e,size:24}),(0,T.jsx)(f.o,{fw:e===t?600:400,children:zt[e]})]})},e))})})};async function Vt(e){let t=typeof globalThis<`u`?globalThis:typeof window<`u`?window:void 0;if(t){if(!e?.keepServiceWorker&&`serviceWorker`in t.navigator){let e=await t.navigator.serviceWorker.getRegistrations();for(let t of e)await t.unregister()}if(`caches`in t){let e=await t.caches.keys();for(let n of e)await t.caches.delete(n)}if(!e?.keepIndexedDB&&`indexedDB`in t){let e=await t.indexedDB.databases();for(let n of e)n.name&&t.indexedDB.deleteDatabase(n.name)}!e?.keepLocalStorage&&`localStorage`in t&&t.localStorage.clear(),!e?.keepSessionStorage&&`sessionStorage`in t&&t.sessionStorage.clear()}}async function Ht(){f.i()&&(await fetch(`/api/fs/reset`,{method:`POST`}),await fetch(`/api/fs/seed`,{method:`POST`}))}var Ut=()=>{let{t:e}=v.t(`settings`),[n,r]=(0,w.useState)(!1),i=(0,w.useCallback)(()=>{r(!0)},[]),a=(0,w.useCallback)(()=>{r(!1)},[]),o=(0,w.useCallback)(async()=>{await Ht(),await Vt(),window.location.reload()},[]),s=(0,w.useCallback)(async()=>{await Ht(),await Vt({keepIndexedDB:!0}),window.location.reload()},[]);return(0,T.jsxs)(Z,{title:e(`reset.title`),description:e(`reset.description`),children:[(0,T.jsx)(p.t,{color:`red`,onClick:i,style:{alignSelf:`flex-start`},children:e(`reset.resetButton`)}),n&&(0,T.jsx)(t.t,{style:{position:`fixed`,top:0,left:0,right:0,bottom:0,background:`rgba(0,0,0,0.5)`,display:`flex`,alignItems:`center`,justifyContent:`center`,zIndex:1e3},role:`dialog`,"aria-label":`Confirm reset`,children:(0,T.jsx)(t.t,{style:{background:`var(--mantine-color-default)`,borderRadius:8,padding:24,maxWidth:400,width:`100%`},children:(0,T.jsxs)(h.t,{gap:`md`,children:[(0,T.jsx)(f.o,{fw:600,size:`lg`,ta:`center`,children:e(`reset.modalTitle`)}),(0,T.jsx)(f.o,{size:`sm`,c:`dimmed`,ta:`center`,children:e(`reset.modalDescription`)}),(0,T.jsxs)(d.t,{justify:`center`,gap:`xs`,mt:`md`,children:[(0,T.jsx)(p.t,{variant:`default`,onClick:a,children:e(`reset.goBack`)}),(0,T.jsx)(p.t,{color:`blue`,onClick:s,children:e(`reset.keepFiles`)}),(0,T.jsx)(p.t,{color:`red`,onClick:o,children:e(`reset.burnEverything`)})]})]})})})]})},$={root:`_root_77epl_1`,sidebar:`_sidebar_77epl_8`,navItem:`_navItem_77epl_16`,content:`_content_77epl_41`,overviewPadding:`_overviewPadding_77epl_47`,sectionCard:`_sectionCard_77epl_51`,toolbar:`_toolbar_77epl_60`,dirtyIndicator:`_dirtyIndicator_77epl_70`,versionFooter:`_versionFooter_77epl_77`},Wt={name:`Francisco Núñez Palomares`,title:`Fullstack Developer & DevOps`,email:`frannunpal@gmail.com`,phone:`+34 600 275 210`,location:`Spain`,linkedin:`https://www.linkedin.com/in/francisco-núñez-palomares-74a484171/`,github:`https://github.com/frannunpal`,cvUrls:{en:`Desktop/CV_2026_English.pdf`,es:`Desktop/CV 2026.pdf`}},Gt=`0.4.0`,Kt=()=>Gt,qt={wallpaper:Me,appearance:Ne,launcher:Pe,font:Ft,language:Bt,reset:Ut},Jt=({window:e,notifyReady:t})=>{let{t:r}=v.t(`settings`),[i,a]=(0,w.useState)(null),[o,s]=(0,w.useState)(!1),c=_.o(e=>e.windows),l=e?.id??c.find(e=>e.content===`settings`)?.id,u=Y(e=>e.wallpaper),d=Y(e=>e.wallpaperModule),g=Y(e=>e.theme),b=Y(e=>e.font),x=Y(e=>e.fontSize),S=Y(e=>e.launcherIcon),E=Y(e=>e.customThemeColors),D=Y(e=>e.animationDuration),ee=Y(e=>e.setWallpaper),O=Y(e=>e.setWallpaperModule),k=Y(e=>e.setFont),A=Y(e=>e.setFontSize),te=Y(e=>e.setLauncherIcon),j=Y(e=>e.setThemeMode),M=Y(e=>e.setCustomThemeColors),N=Y(e=>e.setThemeAutomatic),P=Y(e=>e.setAnimationDuration),F=(0,w.useRef)(null);(0,w.useEffect)(()=>{F.current===null&&(F.current={wallpaper:u,wallpaperModule:d,themeMode:g.mode,font:b,fontSize:x,launcherIcon:S,customThemeColors:E,animationDuration:D})},[u,d,g.mode,b,x,S,E,D]),(0,w.useEffect)(()=>{if(!F.current)return;let e={wallpaper:u,wallpaperModule:d,themeMode:g.mode,font:b,fontSize:x,launcherIcon:S,customThemeColors:E,animationDuration:D};s(JSON.stringify(e)!==JSON.stringify(F.current))},[u,d,g.mode,b,x,S,E,D]);let I=(0,w.useCallback)(()=>{let e=F.current;e&&(ee(e.wallpaper),O(e.wallpaperModule),k(e.font),A(e.fontSize),te(e.launcherIcon),P(e.animationDuration),e.customThemeColors?M(e.customThemeColors):(M(null),N()),j(e.themeMode),s(!1))},[ee,O,k,A,te,P,j,M,N]);(0,w.useEffect)(()=>{l&&C.n.getState().reset(l)},[l]),(0,w.useEffect)(()=>{l&&C.n.getState().setIsDirty(l,o)},[l,o]),(0,w.useEffect)(()=>{t?.({...e?.contentData??{},discard:I})},[e,t,I]),y.i({isDirtyGetter:(0,w.useCallback)(()=>{if(!F.current)return!1;let e={wallpaper:Y.getState().wallpaper,wallpaperModule:Y.getState().wallpaperModule,themeMode:Y.getState().theme.mode,font:Y.getState().font,fontSize:Y.getState().fontSize,launcherIcon:Y.getState().launcherIcon,customThemeColors:Y.getState().customThemeColors,animationDuration:Y.getState().animationDuration};return JSON.stringify(e)!==JSON.stringify(F.current)},[]),windowId:l,onDiscard:I,onSave:()=>{}});let L=(0,w.useCallback)(e=>{a(e)},[]),R=(0,w.useCallback)(()=>{a(null)},[]),z=(0,w.useCallback)(()=>{globalThis.location.href=`mailto:${Wt.email}`},[]),B=i?qt[i]:null;return(0,T.jsxs)(`div`,{className:$.root,children:[(0,T.jsx)(`aside`,{className:$.sidebar,children:(0,T.jsxs)(`nav`,{"aria-label":`Settings sections`,children:[(0,T.jsxs)(`button`,{className:$.navItem,"data-active":i===null||void 0,onClick:R,"aria-label":`All Settings`,"aria-current":i===null?`page`:void 0,children:[(0,T.jsx)(m.t,{fcIcon:`FcList`,size:16}),(0,T.jsx)(f.o,{size:`xs`,ml:6,truncate:!0,children:r(`all`)})]}),Ae.map(e=>(0,T.jsxs)(`button`,{className:$.navItem,"data-active":i===e.id||void 0,onClick:()=>L(e.id),"aria-label":e.label,"aria-current":i===e.id?`page`:void 0,children:[(0,T.jsx)(m.t,{fcIcon:e.fcIcon,size:16}),(0,T.jsx)(f.o,{size:`xs`,ml:6,truncate:!0,children:r(`sections.${e.id}.label`)})]},e.id))]})}),(0,T.jsx)(`main`,{className:$.content,children:B?(0,T.jsx)(B,{}):(0,T.jsxs)(h.t,{className:$.overviewPadding,h:`100%`,justify:`space-between`,gap:0,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(f.o,{fw:500,mb:`md`,size:`sm`,c:`dimmed`,children:r(`all`)}),(0,T.jsx)(n.n,{cols:2,spacing:`sm`,children:Ae.map(e=>(0,T.jsx)(m.n,{withBorder:!0,padding:`md`,radius:`md`,className:$.sectionCard,onClick:()=>L(e.id),role:`button`,"aria-label":`Open ${e.label} settings`,children:(0,T.jsxs)(h.t,{gap:6,align:`flex-start`,children:[(0,T.jsx)(m.t,{fcIcon:e.fcIcon,size:28}),(0,T.jsx)(f.o,{size:`sm`,fw:500,children:r(`sections.${e.id}.label`)}),(0,T.jsx)(f.o,{size:`xs`,c:`dimmed`,children:r(`sections.${e.id}.description`)})]})},e.id))})]}),(0,T.jsx)(p.t,{gradient:{from:`blue`,to:`cyan`,deg:90},onClick:z,children:`FDE: Fran Desktop Environment`}),(0,T.jsx)(f.o,{size:`xs`,c:`dimmed`,ta:`center`,className:$.versionFooter,children:Kt()})]})})]})};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Lt}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Z}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Rt}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Ae}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return be}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Mt}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Vt}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return At}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Oe}});
@@ -1,2 +0,0 @@
1
- import { t as e } from "./SettingsApp-DUMKSA3K.js";
2
- export { e as default };
@@ -1 +0,0 @@
1
- require(`./chunk-CiTBaPhY.cjs`);const e=require(`./UploaderApp-CPpStgP5.cjs`);exports.default=e.t;
@@ -1,2 +0,0 @@
1
- import { t as e } from "./UploaderApp-C9W_yCT-.js";
2
- export { e as default };