@fde-desktop/fde-core 0.4.7 → 0.4.8

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.
Files changed (311) hide show
  1. package/dist/AccordionChevron-CJXAq5o5.js +26 -0
  2. package/dist/AccordionChevron-DBXp38Lm.cjs +1 -0
  3. package/dist/ActionIcon-C_SfdBfx.cjs +1 -0
  4. package/dist/ActionIcon-CtVbYlGY.js +145 -0
  5. package/dist/AppEmptyState-BTujnL_b.js +4962 -0
  6. package/dist/AppEmptyState-Dc4GaDfu.cjs +1 -0
  7. package/dist/AppIcon--qzR4sgf.cjs +1 -0
  8. package/dist/AppIcon-DCDuaU-t.js +80 -0
  9. package/dist/AppMenuBar-BiHbNg9V.cjs +9 -0
  10. package/dist/AppMenuBar-CHJy8OF0.js +2639 -0
  11. package/dist/Box-DRm8EabO.js +1593 -0
  12. package/dist/Box-D_64wv6n.cjs +1 -0
  13. package/dist/Button-D0FXpkur.cjs +1 -0
  14. package/dist/Button-k7SxX1Xl.js +178 -0
  15. package/dist/CalendarApp-C1HvuJoa.cjs +1 -0
  16. package/dist/CalendarApp-DBEQqsS_.js +1721 -0
  17. package/dist/Center-CyryG5zn.js +25 -0
  18. package/dist/Center-T4No_FAa.cjs +1 -0
  19. package/dist/CheckIcon-C3WjIR2i.js +25 -0
  20. package/dist/CheckIcon-CBMLR6Gc.cjs +1 -0
  21. package/dist/CodeServerApp-B3l5QPuG.cjs +1 -0
  22. package/dist/CodeServerApp-BpeALSaX.js +2 -0
  23. package/dist/CodeServerApp-CRjCngFv.cjs +1 -0
  24. package/dist/CodeServerApp-DY94cy1a.js +149 -0
  25. package/dist/ColorPicker-BL4UbKCV.cjs +1 -0
  26. package/dist/ColorPicker-DvRR-wlQ.js +997 -0
  27. package/dist/Colors-BxX4G8kX.cjs +1 -0
  28. package/dist/Colors-hca6raEG.js +15 -0
  29. package/dist/CreateItemApp-BU9wmjKM.cjs +1 -0
  30. package/dist/CreateItemApp-CtdH1K1g.js +400 -0
  31. package/dist/CreateItemApp-t9F-a6wD.cjs +1 -0
  32. package/dist/DeviceInfoApp-C306YvtZ.js +223 -0
  33. package/dist/DeviceInfoApp-Cdju_LIB.cjs +1 -0
  34. package/dist/DeviceInfoApp-CyB01v4D.cjs +1 -0
  35. package/dist/DownloadProgress-IRw1dzLX.cjs +1 -0
  36. package/dist/DownloadProgress-hdupSUBT.js +174 -0
  37. package/dist/FileIcon-BCpGMI5U.js +88 -0
  38. package/dist/FileIcon-BCrsxmtt.cjs +1 -0
  39. package/dist/FilePickerApp-DMGuvahM.js +409 -0
  40. package/dist/FilePickerApp-Eu0cr2Cm.cjs +1 -0
  41. package/dist/FilesApp-30OjnOuP.cjs +1 -0
  42. package/dist/FilesApp-BvlzPNuO.cjs +1 -0
  43. package/dist/FilesApp-VXrmtt63.js +225 -0
  44. package/dist/Group-BzwlMeob.js +48 -0
  45. package/dist/Group-DhwePB84.cjs +1 -0
  46. package/dist/ImageViewerApp-BOz59TGc.cjs +1 -0
  47. package/dist/ImageViewerApp-BeqY6voE.cjs +1 -0
  48. package/dist/ImageViewerApp-CWiP6zx-.js +68 -0
  49. package/dist/ImageViewerApp-DBAfJPSo.js +2 -0
  50. package/dist/ImageViewerMenuBar-BULkh_Ku.js +86 -0
  51. package/dist/ImageViewerMenuBar-Cb0Nr5-M.js +2 -0
  52. package/dist/ImageViewerMenuBar-CoEp0RxK.cjs +1 -0
  53. package/dist/ImageViewerMenuBar-zOkJtqKo.cjs +1 -0
  54. package/dist/MenuEditApp-BoKtj2GH.js +2 -0
  55. package/dist/MenuEditApp-D21sEp86.js +2615 -0
  56. package/dist/MenuEditApp-k3cPfTG9.cjs +1 -0
  57. package/dist/MenuEditApp-sz9GlLVH.cjs +5 -0
  58. package/dist/MenuEditMenuBar-6QxlIDpl.cjs +1 -0
  59. package/dist/MenuEditMenuBar-B94z4Umw.js +59 -0
  60. package/dist/MenuEditMenuBar-Bv6R42lf.js +2 -0
  61. package/dist/MenuEditMenuBar-CBsmH_-T.cjs +1 -0
  62. package/dist/NotesApp-BtR55Hva.cjs +207 -0
  63. package/dist/NotesApp-C59exz_9.js +16154 -0
  64. package/dist/NotesApp-D47I5LS_.js +2 -0
  65. package/dist/NotesApp-lOwsi2sg.cjs +1 -0
  66. package/dist/NotesMenuBar-BB4NkKGf.js +61 -0
  67. package/dist/NotesMenuBar-BZITC74y.cjs +1 -0
  68. package/dist/NotesMenuBar-Bp0sPqyR.cjs +1 -0
  69. package/dist/NotesMenuBar-xlfODmMA.js +2 -0
  70. package/dist/Paper-DtUYKmYn.js +30 -0
  71. package/dist/Paper-DwCpwWwH.cjs +1 -0
  72. package/dist/PdfApp-1XbFGfoY.cjs +1 -0
  73. package/dist/PdfApp-BhIoJWeK.cjs +1 -0
  74. package/dist/PdfApp-C5Rt1Zaw.js +2 -0
  75. package/dist/PdfApp-C8Hwxxqh.js +38 -0
  76. package/dist/PdfMenuBar-BA9rKuMP.cjs +1 -0
  77. package/dist/PdfMenuBar-JXHqwxhZ.cjs +1 -0
  78. package/dist/PdfMenuBar-R0fu7oYF.js +2 -0
  79. package/dist/PdfMenuBar-sd-9Vk3h.js +38 -0
  80. package/dist/SettingsApp-BA-5B4RA.cjs +1 -0
  81. package/dist/SettingsApp-B_rev1xh.cjs +1 -0
  82. package/dist/SettingsApp-Ck4aUXs5.js +2 -0
  83. package/dist/SettingsApp-DUMKSA3K.js +2425 -0
  84. package/dist/SettingsMenuBar-BPwv8JQK.js +41 -0
  85. package/dist/SettingsMenuBar-D8R7hOik.js +2 -0
  86. package/dist/SettingsMenuBar-DDrjZLmg.cjs +1 -0
  87. package/dist/SettingsMenuBar-DQjUa8g1.cjs +1 -0
  88. package/dist/Slider-BNO-vDFn.js +1175 -0
  89. package/dist/Slider-Bg_EIBg6.cjs +1 -0
  90. package/dist/Stack-BOaJgV3N.cjs +1 -0
  91. package/dist/Stack-CuDEaP7e.js +34 -0
  92. package/dist/StorybookApp-Bkr-7mXp.cjs +1 -0
  93. package/dist/StorybookApp-WYninkJo.js +10 -0
  94. package/dist/TerminalApp-8XbsKAWa.js +10041 -0
  95. package/dist/TerminalApp-Bq2e7QQu.cjs +1 -0
  96. package/dist/TerminalApp-CVu3Axc9.js +2 -0
  97. package/dist/TerminalApp-b7_d0jRO.cjs +36 -0
  98. package/dist/TerminalMenuBar-Cb8x9laS.js +2 -0
  99. package/dist/TerminalMenuBar-De-FH5AE.cjs +1 -0
  100. package/dist/TerminalMenuBar-iKLydNda.js +112 -0
  101. package/dist/TerminalMenuBar-yOaWd-hn.cjs +1 -0
  102. package/dist/TextInput-C3qfxxWI.js +980 -0
  103. package/dist/TextInput-DcYns3hz.cjs +1 -0
  104. package/dist/Tooltip-CAOO-qdx.js +3185 -0
  105. package/dist/Tooltip-DDh_x-CB.cjs +1 -0
  106. package/dist/UnstyledButton-CI3kyRck.js +25 -0
  107. package/dist/UnstyledButton-Cl5RuIid.cjs +1 -0
  108. package/dist/UploaderApp-BZXW75A0.cjs +1 -0
  109. package/dist/UploaderApp-C9W_yCT-.js +487 -0
  110. package/dist/UploaderApp-CPpStgP5.cjs +1 -0
  111. package/dist/UploaderApp-DHsMQN-f.js +2 -0
  112. package/dist/VscIcon-CxEmqD80.cjs +1 -0
  113. package/dist/VscIcon-DueRJVTe.js +8 -0
  114. package/dist/chunk-BQCxAhux.js +23 -0
  115. package/dist/chunk-CiTBaPhY.cjs +1 -0
  116. package/dist/create-safe-context-95P-Bfg3.cjs +1 -0
  117. package/dist/create-safe-context-XT2cxc14.js +12 -0
  118. package/dist/desktopStore-B0R1-BeA.js +1905 -0
  119. package/dist/desktopStore-Cox-Og1z.cjs +1 -0
  120. package/dist/fc-DejOsQyD.cjs +1 -0
  121. package/dist/fc-kd8WzIER.js +20536 -0
  122. package/dist/fc-xJ_v2ayq.cjs +184 -0
  123. package/dist/fi-BahYsbim.js +9993 -0
  124. package/dist/fi-BkhyTcZo.cjs +1 -0
  125. package/dist/getRuntime-BLXyQZBB.cjs +1 -0
  126. package/dist/getRuntime-CCRXVzJH.js +63 -0
  127. package/dist/iconBase-B4UCuSvv.cjs +1 -0
  128. package/dist/iconBase-D7iPes7B.js +108 -0
  129. package/dist/imageViewerStore-CH1qW6md.cjs +1 -0
  130. package/dist/imageViewerStore-CJMRXaQh.js +50 -0
  131. package/dist/index.cjs +53 -5642
  132. package/dist/index.css +2 -9192
  133. package/dist/index.d.ts +2258 -2019
  134. package/dist/index.js +8983 -4780
  135. package/dist/is-element-BocgicRg.cjs +1 -0
  136. package/dist/is-element-Bu_JY8Qy.js +7 -0
  137. package/dist/menuEditStore-C8S_EedM.js +38 -0
  138. package/dist/menuEditStore-CU7IAg3L.cjs +1 -0
  139. package/dist/notesStore-DKRgTTFn.js +36 -0
  140. package/dist/notesStore-zKmChTfF.cjs +1 -0
  141. package/dist/react-DYmzHD0X.js +27 -0
  142. package/dist/react-Dldg32sN.cjs +1 -0
  143. package/dist/settingsAppStore-BrlImdAH.cjs +1 -0
  144. package/dist/settingsAppStore-KOeWRO6h.js +29 -0
  145. package/dist/terminalStore-LWWjCvCe.js +30 -0
  146. package/dist/terminalStore-fZe5t7Ty.cjs +1 -0
  147. package/dist/use-merged-ref-BI9n1hUK.cjs +1 -0
  148. package/dist/use-merged-ref-BT8_u6vW.js +25 -0
  149. package/dist/use-resolved-styles-api-AVDygMKo.cjs +1 -0
  150. package/dist/use-resolved-styles-api-pEOi2wiK.js +21 -0
  151. package/dist/use-uncontrolled-A4hm9ATM.js +23 -0
  152. package/dist/use-uncontrolled-BPrfGv0W.cjs +1 -0
  153. package/dist/useAdaptiveDimensions-Btp0m5Pm.cjs +1 -0
  154. package/dist/useAdaptiveDimensions-CunsU0mn.js +40 -0
  155. package/dist/useCloseInterceptor-CuKAAFnj.js +51 -0
  156. package/dist/useCloseInterceptor-a_6Lcuqj.cjs +1 -0
  157. package/dist/useDynamicIcon-GJg3vWsJ.js +22 -0
  158. package/dist/useDynamicIcon-SytdL1Tu.cjs +1 -0
  159. package/dist/useMenuBarUtils-Bp5PiztD.cjs +1 -0
  160. package/dist/useMenuBarUtils-ChmpZjwu.js +6 -0
  161. package/dist/useOpenApp-BdarhIgl.cjs +1 -0
  162. package/dist/useOpenApp-JHCPTBWa.js +279 -0
  163. package/dist/useResolvedUrl-Be5ZlCX7.cjs +1 -0
  164. package/dist/useResolvedUrl-DFKXq598.js +30 -0
  165. package/dist/useTranslation-DMRGdqZi.js +279 -0
  166. package/dist/useTranslation-D_O7S4RJ.cjs +1 -0
  167. package/dist/vsc-Ciibqbxo.cjs +1 -0
  168. package/dist/vsc-DGKSpOAR.js +9574 -0
  169. package/package.json +7 -3
  170. package/dist/CalendarApp-CHLUCAI7.css +0 -744
  171. package/dist/CalendarApp-K7ZOUZ6C.js +0 -2
  172. package/dist/CalendarApp-OTGEERSS.cjs +0 -8
  173. package/dist/CodeServerApp-5KZGO7HL.css +0 -75
  174. package/dist/CodeServerApp-LUZFCQBI.js +0 -3
  175. package/dist/CodeServerApp-P3TMJPLY.cjs +0 -9
  176. package/dist/CreateItemApp-ESQ42VHH.js +0 -8
  177. package/dist/CreateItemApp-PQB5GTFG.css +0 -107
  178. package/dist/CreateItemApp-RFE3REWZ.cjs +0 -14
  179. package/dist/DeviceInfoApp-XNIS6ZY6.js +0 -5
  180. package/dist/DeviceInfoApp-ZNLQNOKI.cjs +0 -11
  181. package/dist/DeviceInfoApp-ZSMRSITP.css +0 -7
  182. package/dist/FilesApp-4GEU64QN.js +0 -8
  183. package/dist/FilesApp-E6L5W3T2.css +0 -1817
  184. package/dist/FilesApp-QSLB5IWR.cjs +0 -14
  185. package/dist/ImageViewerApp-N2Q7E7WZ.css +0 -215
  186. package/dist/ImageViewerApp-NCVDKLB3.js +0 -11
  187. package/dist/ImageViewerApp-QB373H5Z.cjs +0 -17
  188. package/dist/ImageViewerMenuBar-I3TFKQPS.cjs +0 -14
  189. package/dist/ImageViewerMenuBar-TV5C6TM2.js +0 -5
  190. package/dist/ImageViewerMenuBar-XLK4LIHW.css +0 -56
  191. package/dist/MenuEditApp-5EFYAPFC.cjs +0 -15
  192. package/dist/MenuEditApp-V5XOPIHX.js +0 -9
  193. package/dist/MenuEditApp-YA6HSAMJ.css +0 -94
  194. package/dist/MenuEditMenuBar-7VHMZNRM.css +0 -56
  195. package/dist/MenuEditMenuBar-GF6L4PGZ.cjs +0 -15
  196. package/dist/MenuEditMenuBar-IUXFPZE5.js +0 -6
  197. package/dist/NotesApp-2YNT7Y3D.js +0 -10
  198. package/dist/NotesApp-IAEE7YHU.cjs +0 -16
  199. package/dist/NotesApp-TQ6IHDNX.css +0 -302
  200. package/dist/NotesMenuBar-25LKN3SE.cjs +0 -15
  201. package/dist/NotesMenuBar-MXLOX7OT.css +0 -56
  202. package/dist/NotesMenuBar-SRV3AIAL.js +0 -6
  203. package/dist/PdfApp-67XIX6AM.js +0 -10
  204. package/dist/PdfApp-BUIC5U5H.css +0 -206
  205. package/dist/PdfApp-GZ6RHTBR.cjs +0 -16
  206. package/dist/PdfMenuBar-NLZC6JHS.js +0 -4
  207. package/dist/PdfMenuBar-QUM72EE4.css +0 -56
  208. package/dist/PdfMenuBar-WBRTKMLN.cjs +0 -13
  209. package/dist/SettingsApp-BPLMGPNK.cjs +0 -20
  210. package/dist/SettingsApp-JVOSEFH3.css +0 -283
  211. package/dist/SettingsApp-LUDIXCYY.js +0 -14
  212. package/dist/SettingsMenuBar-5CBSSMVM.css +0 -56
  213. package/dist/SettingsMenuBar-VLT6TTCM.js +0 -6
  214. package/dist/SettingsMenuBar-Y5QEXDEO.cjs +0 -15
  215. package/dist/StorybookApp-NQ244BER.css +0 -7
  216. package/dist/StorybookApp-NZDV4X3Y.js +0 -1
  217. package/dist/StorybookApp-VF3KIMU3.cjs +0 -7
  218. package/dist/TerminalApp-CDGWRBFJ.cjs +0 -10
  219. package/dist/TerminalApp-EAATMIMX.css +0 -77
  220. package/dist/TerminalApp-GCKJCM55.js +0 -4
  221. package/dist/TerminalMenuBar-3J26O26Q.css +0 -56
  222. package/dist/TerminalMenuBar-7BH7MGNJ.cjs +0 -14
  223. package/dist/TerminalMenuBar-7JAEQUZ4.js +0 -5
  224. package/dist/UploaderApp-6KV3TGCT.css +0 -1817
  225. package/dist/UploaderApp-FJC2J4I5.js +0 -10
  226. package/dist/UploaderApp-HLXJYJZQ.cjs +0 -16
  227. package/dist/chunk-2PSTHGTD.cjs +0 -42
  228. package/dist/chunk-2RQX7QBP.cjs +0 -148
  229. package/dist/chunk-43W6UDUZ.cjs +0 -19
  230. package/dist/chunk-4E45FBAH.js +0 -223
  231. package/dist/chunk-4E4U2A25.cjs +0 -237
  232. package/dist/chunk-4QHX7CMN.cjs +0 -38
  233. package/dist/chunk-4XURSNM4.js +0 -43
  234. package/dist/chunk-4ZCRYHL6.js +0 -407
  235. package/dist/chunk-5C6IQE42.cjs +0 -35
  236. package/dist/chunk-5HUYQDQF.js +0 -36
  237. package/dist/chunk-5NOHYJNH.js +0 -84
  238. package/dist/chunk-5QFZW6HW.js +0 -2241
  239. package/dist/chunk-5YH6AKEO.js +0 -146
  240. package/dist/chunk-756GPSPM.js +0 -283
  241. package/dist/chunk-7WUYUTPN.js +0 -2293
  242. package/dist/chunk-7XCMBW64.js +0 -162
  243. package/dist/chunk-7Y7HB7FB.cjs +0 -53
  244. package/dist/chunk-ABIAPZ6S.cjs +0 -45
  245. package/dist/chunk-ACHGJKCI.cjs +0 -286
  246. package/dist/chunk-BQCD5RAF.cjs +0 -48
  247. package/dist/chunk-BQL3YXMV.js +0 -17429
  248. package/dist/chunk-C3XER4N3.js +0 -442
  249. package/dist/chunk-C6BEZNAM.cjs +0 -45
  250. package/dist/chunk-CILU6BWC.cjs +0 -548
  251. package/dist/chunk-CV5PUHAE.cjs +0 -86
  252. package/dist/chunk-D5MVFFID.js +0 -42
  253. package/dist/chunk-D7R55WWT.js +0 -1601
  254. package/dist/chunk-DFYDUXWP.cjs +0 -34
  255. package/dist/chunk-DWP2SYF7.js +0 -55
  256. package/dist/chunk-E55VXNLK.cjs +0 -17498
  257. package/dist/chunk-E5FW77FG.js +0 -77
  258. package/dist/chunk-EAELL43F.js +0 -42
  259. package/dist/chunk-EX5V2ZTU.js +0 -40
  260. package/dist/chunk-FD7QZCTN.cjs +0 -2329
  261. package/dist/chunk-FH4ILMKF.js +0 -38
  262. package/dist/chunk-FRHBM2U7.js +0 -33
  263. package/dist/chunk-FX2TPX3L.cjs +0 -45
  264. package/dist/chunk-GPXNLTPI.cjs +0 -451
  265. package/dist/chunk-GRYCUBJZ.js +0 -9
  266. package/dist/chunk-HPHHS7FJ.cjs +0 -49
  267. package/dist/chunk-HWHBSAUC.js +0 -40
  268. package/dist/chunk-IDHP3R4I.js +0 -31
  269. package/dist/chunk-IHWGT3DL.js +0 -86
  270. package/dist/chunk-JEBKLIMU.cjs +0 -123
  271. package/dist/chunk-KDZLBI6F.cjs +0 -324
  272. package/dist/chunk-KQHICFX3.js +0 -121
  273. package/dist/chunk-LMJE6V4N.cjs +0 -42
  274. package/dist/chunk-MCHPDWVH.js +0 -444
  275. package/dist/chunk-MVDGM5Y4.js +0 -68
  276. package/dist/chunk-N36HBL53.cjs +0 -165
  277. package/dist/chunk-NV5GNFA3.js +0 -541
  278. package/dist/chunk-NVEGEK3N.js +0 -31
  279. package/dist/chunk-OJIDKDKF.js +0 -68
  280. package/dist/chunk-PGGNSLM7.js +0 -215
  281. package/dist/chunk-PKPQA5NR.js +0 -15
  282. package/dist/chunk-PNDBLFJW.cjs +0 -50
  283. package/dist/chunk-Q3WA72BF.cjs +0 -70
  284. package/dist/chunk-RDIDAZ3S.cjs +0 -9
  285. package/dist/chunk-RGJPRXYY.js +0 -48
  286. package/dist/chunk-RPSYXORB.cjs +0 -219
  287. package/dist/chunk-RQ6OZRUW.cjs +0 -41
  288. package/dist/chunk-SBE4SZAN.cjs +0 -226
  289. package/dist/chunk-TAFNCDUI.js +0 -234
  290. package/dist/chunk-TFIDSENE.cjs +0 -88
  291. package/dist/chunk-TGWMOHAO.js +0 -17
  292. package/dist/chunk-UA6XSTW6.js +0 -48
  293. package/dist/chunk-UIQCTAVM.cjs +0 -59
  294. package/dist/chunk-UKYESVDS.cjs +0 -50
  295. package/dist/chunk-V4N255NL.cjs +0 -2309
  296. package/dist/chunk-VO6KXO2I.js +0 -32
  297. package/dist/chunk-WXSTSC3D.cjs +0 -83
  298. package/dist/chunk-XSK7BWYO.js +0 -47
  299. package/dist/chunk-XVAPJ4PP.cjs +0 -449
  300. package/dist/chunk-XVASHRCE.cjs +0 -70
  301. package/dist/chunk-XYSMVQQD.cjs +0 -1608
  302. package/dist/chunk-YAIWI4Z5.js +0 -7
  303. package/dist/chunk-YGYOLDKR.js +0 -280
  304. package/dist/chunk-YP2PLNOF.cjs +0 -34
  305. package/dist/chunk-YSOLW4FS.cjs +0 -11
  306. package/dist/chunk-YY6OUR2U.js +0 -44
  307. package/dist/chunk-YZWS7FDT.cjs +0 -409
  308. package/dist/chunk-Z5YGWL65.cjs +0 -39
  309. package/dist/chunk-ZHNDXNL4.js +0 -45
  310. package/dist/chunk-ZX3EDZ5C.cjs +0 -17
  311. package/dist/index.d.cts +0 -2019
@@ -0,0 +1,2425 @@
1
+ import { L as e, N as t, O as n, S as r, c as i, d as a, i as o, j as s, k as c, l, n as u, o as d, r as f, t as p, x as m } from "./Box-DRm8EabO.js";
2
+ import { n as h, t as g } from "./ColorPicker-DvRR-wlQ.js";
3
+ import { s as _, t as v } from "./Tooltip-CAOO-qdx.js";
4
+ import { t as y } from "./use-uncontrolled-A4hm9ATM.js";
5
+ import { i as b, l as x, p as S, t as C, u as w } from "./TextInput-C3qfxxWI.js";
6
+ import { a as T, i as E, n as D, o as O, t as k } from "./Slider-BNO-vDFn.js";
7
+ import { r as A } from "./use-merged-ref-BT8_u6vW.js";
8
+ import { i as ee, r as j, t as te } from "./DownloadProgress-hdupSUBT.js";
9
+ import { t as M } from "./UnstyledButton-CI3kyRck.js";
10
+ import { t as N } from "./Paper-DtUYKmYn.js";
11
+ import { t as P } from "./Group-BzwlMeob.js";
12
+ import { i as ne, o as F } from "./getRuntime-CCRXVzJH.js";
13
+ import { t as I } from "./Button-k7SxX1Xl.js";
14
+ import { n as re, t as L } from "./AppIcon-DCDuaU-t.js";
15
+ import { t as R } from "./Stack-CuDEaP7e.js";
16
+ import { t as ie } from "./react-DYmzHD0X.js";
17
+ import { ft as ae, o as oe, pt as se } from "./desktopStore-B0R1-BeA.js";
18
+ import { t as z } from "./useTranslation-DMRGdqZi.js";
19
+ import { i as ce } from "./useCloseInterceptor-CuKAAFnj.js";
20
+ import { t as B } from "./useResolvedUrl-DFKXq598.js";
21
+ import { n as le } from "./FilePickerApp-DMGuvahM.js";
22
+ import { t as ue } from "./Colors-hca6raEG.js";
23
+ import { n as de } from "./settingsAppStore-KOeWRO6h.js";
24
+ import * as V from "react";
25
+ import { createContext as fe, createElement as pe, use as me, useCallback as H, useDeferredValue as he, useEffect as U, useRef as W, useState as G } from "react";
26
+ import { jsx as K, jsxs as q } from "react/jsx-runtime";
27
+ //#region ../../node_modules/.bun/@mantine+hooks@9.0.0+b1ab299f0a400331/node_modules/@mantine/hooks/esm/utils/shallow-equal/shallow-equal.mjs
28
+ function ge(e, t) {
29
+ if (e === t || Number.isNaN(e) && Number.isNaN(t)) return !0;
30
+ if (!(e instanceof Object) || !(t instanceof Object)) return !1;
31
+ let n = Object.keys(e), { length: r } = n;
32
+ if (r !== Object.keys(t).length) return !1;
33
+ for (let i = 0; i < r; i += 1) {
34
+ let r = n[i];
35
+ if (!(r in t) || e[r] !== t[r] && !(Number.isNaN(e[r]) && Number.isNaN(t[r]))) return !1;
36
+ }
37
+ return !0;
38
+ }
39
+ //#endregion
40
+ //#region ../../node_modules/.bun/@mantine+hooks@9.0.0+b1ab299f0a400331/node_modules/@mantine/hooks/esm/use-shallow-effect/use-shallow-effect.mjs
41
+ function _e(e, t) {
42
+ if (!e || !t) return !1;
43
+ if (e === t) return !0;
44
+ if (e.length !== t.length) return !1;
45
+ for (let n = 0; n < e.length; n += 1) if (!ge(e[n], t[n])) return !1;
46
+ return !0;
47
+ }
48
+ function ve(e) {
49
+ let t = W([]), n = W(0);
50
+ return _e(t.current, e) || (t.current = e, n.current += 1), [n.current];
51
+ }
52
+ function ye(e, t) {
53
+ U(e, ve(t));
54
+ }
55
+ //#endregion
56
+ //#region ../../node_modules/.bun/@mantine+hooks@9.0.0+b1ab299f0a400331/node_modules/@mantine/hooks/esm/use-timeout/use-timeout.mjs
57
+ function be(e, t, n = { autoInvoke: !1 }) {
58
+ let r = W(null), i = H((...n) => {
59
+ r.current ||= window.setTimeout(() => {
60
+ e(n), r.current = null;
61
+ }, t);
62
+ }, [t]), a = H(() => {
63
+ r.current &&= (window.clearTimeout(r.current), null);
64
+ }, []);
65
+ return U(() => (n.autoInvoke && i(), a), [a, i]), {
66
+ start: i,
67
+ clear: a
68
+ };
69
+ }
70
+ //#endregion
71
+ //#region ../../node_modules/.bun/@mantine+hooks@9.0.0+b1ab299f0a400331/node_modules/@mantine/hooks/esm/use-mutation-observer/use-mutation-observer.mjs
72
+ function xe(e, t, n) {
73
+ let r = W(null);
74
+ U(() => {
75
+ r.current &&= (r.current.disconnect(), null);
76
+ let i = typeof n == "function" ? n() : n;
77
+ return i && (r.current = new MutationObserver(e), r.current.observe(i, t)), () => {
78
+ r.current &&= (r.current.disconnect(), null);
79
+ };
80
+ }, [
81
+ e,
82
+ t,
83
+ n
84
+ ]);
85
+ }
86
+ //#endregion
87
+ //#region ../../node_modules/.bun/@mantine+hooks@9.0.0+b1ab299f0a400331/node_modules/@mantine/hooks/esm/use-mounted/use-mounted.mjs
88
+ function Se() {
89
+ let [e, t] = G(!1);
90
+ return U(() => t(!0), []), e;
91
+ }
92
+ //#endregion
93
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/core/utils/get-env/get-env.mjs
94
+ function Ce() {
95
+ return typeof process < "u" && process.env, "development";
96
+ }
97
+ //#endregion
98
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/core/utils/primitive/primitive.mjs
99
+ function we(e) {
100
+ return typeof e == "string" || typeof e == "number" || typeof e == "boolean" || typeof e == "bigint";
101
+ }
102
+ //#endregion
103
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/FloatingIndicator/use-floating-indicator.mjs
104
+ function Te(e, t) {
105
+ if (!t || !e) return !1;
106
+ let n = t.parentNode;
107
+ for (; n != null;) {
108
+ if (n === e) return !0;
109
+ n = n.parentNode;
110
+ }
111
+ return !1;
112
+ }
113
+ function Ee({ target: e, parent: t, ref: n, displayAfterTransitionEnd: r, onTransitionStart: i, onTransitionEnd: a }) {
114
+ let o = W(-1), s = W(e), [c, l] = G(!1), [u, d] = G(typeof r == "boolean" ? r : !1), f = () => {
115
+ if (!e || !t || !n.current) return;
116
+ let r = e.getBoundingClientRect(), i = t.getBoundingClientRect(), a = window.getComputedStyle(e), o = window.getComputedStyle(t), s = O(a.borderTopWidth) + O(o.borderTopWidth), c = O(a.borderLeftWidth) + O(o.borderLeftWidth), l = {
117
+ top: r.top - i.top - s,
118
+ left: r.left - i.left - c,
119
+ width: r.width,
120
+ height: r.height
121
+ };
122
+ n.current.style.transform = `translateY(${l.top}px) translateX(${l.left}px)`, n.current.style.width = `${l.width}px`, n.current.style.height = `${l.height}px`;
123
+ }, p = () => {
124
+ window.clearTimeout(o.current), n.current && (n.current.style.transitionDuration = "0ms"), f(), o.current = window.setTimeout(() => {
125
+ n.current && (n.current.style.transitionDuration = "");
126
+ }, 30);
127
+ }, m = W(null), h = W(null);
128
+ return U(() => {
129
+ if (c && s.current !== e && i && i(), s.current = e, f(), e) return m.current = new ResizeObserver(p), m.current.observe(e), t && (h.current = new ResizeObserver(p), h.current.observe(t)), () => {
130
+ m.current?.disconnect(), h.current?.disconnect();
131
+ };
132
+ }, [t, e]), U(() => {
133
+ if (t) {
134
+ let e = (e) => {
135
+ Te(e.target, t) && (p(), d(!1));
136
+ };
137
+ return t.addEventListener("transitionend", e), () => {
138
+ t.removeEventListener("transitionend", e);
139
+ };
140
+ }
141
+ }, [t]), U(() => {
142
+ if (n.current && a) {
143
+ let e = (e) => {
144
+ e.propertyName === "transform" && a();
145
+ };
146
+ return n.current.addEventListener("transitionend", e), () => {
147
+ n.current?.removeEventListener("transitionend", e);
148
+ };
149
+ }
150
+ }, [a]), be(() => {
151
+ Ce() !== "test" && l(!0);
152
+ }, 20, { autoInvoke: !0 }), xe((e) => {
153
+ e.forEach((e) => {
154
+ e.type === "attributes" && e.attributeName === "dir" && p();
155
+ });
156
+ }, {
157
+ attributes: !0,
158
+ attributeFilter: ["dir"]
159
+ }, () => document.documentElement), {
160
+ initialized: c,
161
+ hidden: u
162
+ };
163
+ }
164
+ //#endregion
165
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/FloatingIndicator/FloatingIndicator.module.mjs
166
+ var De = { root: "m_96b553a6" }, Oe = n((e, { transitionDuration: t }, { shouldReduceMotion: n }) => {
167
+ let r = e.respectReducedMotion && n ? "0ms" : typeof t == "number" ? `${t}ms` : t || "150ms";
168
+ return { root: { "--transition-duration": r } };
169
+ }), ke = f((e) => {
170
+ let t = l("FloatingIndicator", null, e), { classNames: n, className: r, style: a, styles: o, unstyled: s, vars: c, target: u, parent: d, transitionDuration: f, mod: m, displayAfterTransitionEnd: h, onTransitionStart: g, onTransitionEnd: _, attributes: v, ref: y, ...b } = t, S = i({
171
+ name: "FloatingIndicator",
172
+ classes: De,
173
+ props: t,
174
+ className: r,
175
+ style: a,
176
+ classNames: n,
177
+ styles: o,
178
+ unstyled: s,
179
+ attributes: v,
180
+ vars: c,
181
+ varsResolver: Oe,
182
+ stylesCtx: { shouldReduceMotion: x() }
183
+ }), C = W(null), { initialized: w, hidden: T } = Ee({
184
+ target: u,
185
+ parent: d,
186
+ ref: C,
187
+ displayAfterTransitionEnd: h,
188
+ onTransitionStart: g,
189
+ onTransitionEnd: _
190
+ }), E = A(y, C);
191
+ return !u || !d ? null : /* @__PURE__ */ K(p, {
192
+ ref: E,
193
+ mod: [{
194
+ initialized: w,
195
+ hidden: T
196
+ }, m],
197
+ ...S("root"),
198
+ ...b
199
+ });
200
+ });
201
+ ke.displayName = "@mantine/core/FloatingIndicator", ke.classes = De, ke.varsResolver = Oe;
202
+ //#endregion
203
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Badge/Badge.module.mjs
204
+ var Ae = {
205
+ root: "m_347db0ec",
206
+ "root--dot": "m_fbd81e3d",
207
+ label: "m_5add502a",
208
+ section: "m_91fdda9b"
209
+ }, je = n((e, { radius: n, color: r, gradient: i, variant: a, size: o, autoContrast: c, circle: l }) => {
210
+ let u = e.variantColorResolver({
211
+ color: r || e.primaryColor,
212
+ theme: e,
213
+ gradient: i,
214
+ variant: a || "filled",
215
+ autoContrast: c
216
+ });
217
+ return { root: {
218
+ "--badge-height": t(o, "badge-height"),
219
+ "--badge-padding-x": t(o, "badge-padding-x"),
220
+ "--badge-fz": t(o, "badge-fz"),
221
+ "--badge-radius": l || n === void 0 ? void 0 : s(n),
222
+ "--badge-bg": r || a ? u.background : void 0,
223
+ "--badge-color": r || a ? u.color : void 0,
224
+ "--badge-bd": r || a ? u.border : void 0,
225
+ "--badge-dot-color": a === "dot" ? m(r, e) : void 0
226
+ } };
227
+ }), Me = u((e) => {
228
+ let t = l("Badge", null, e), { classNames: n, className: r, style: a, styles: o, unstyled: s, vars: c, radius: u, color: d, gradient: f, leftSection: m, rightSection: h, children: g, variant: _, fullWidth: v, autoContrast: y, circle: b, mod: x, attributes: S, ...C } = t, w = i({
229
+ name: "Badge",
230
+ props: t,
231
+ classes: Ae,
232
+ className: r,
233
+ style: a,
234
+ classNames: n,
235
+ styles: o,
236
+ unstyled: s,
237
+ attributes: S,
238
+ vars: c,
239
+ varsResolver: je
240
+ });
241
+ return /* @__PURE__ */ q(p, {
242
+ variant: _,
243
+ mod: [{
244
+ block: v,
245
+ circle: b,
246
+ "with-right-section": !!h,
247
+ "with-left-section": !!m
248
+ }, x],
249
+ ...w("root", { variant: _ }),
250
+ ...C,
251
+ children: [
252
+ m && /* @__PURE__ */ K("span", {
253
+ ...w("section"),
254
+ "data-position": "left",
255
+ children: m
256
+ }),
257
+ /* @__PURE__ */ K("span", {
258
+ ...w("label"),
259
+ children: g
260
+ }),
261
+ h && /* @__PURE__ */ K("span", {
262
+ ...w("section"),
263
+ "data-position": "right",
264
+ children: h
265
+ })
266
+ ]
267
+ });
268
+ });
269
+ Me.classes = Ae, Me.varsResolver = je, Me.displayName = "@mantine/core/Badge";
270
+ //#endregion
271
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Radio/RadioGroup/RadioGroup.mjs
272
+ var Ne = fe(null), Pe = o(((e) => {
273
+ let { value: t, defaultValue: n, onChange: r, size: i, wrapperProps: a, children: o, name: s, readOnly: c, disabled: u, ...d } = l("RadioGroup", null, e), f = w(s), [p, m] = y({
274
+ value: t,
275
+ defaultValue: n,
276
+ finalValue: "",
277
+ onChange: r
278
+ });
279
+ return /* @__PURE__ */ K(Ne, {
280
+ value: {
281
+ value: p,
282
+ onChange: (e) => !c && m(typeof e == "string" ? e : e.currentTarget.value),
283
+ size: i,
284
+ name: f,
285
+ disabled: u
286
+ },
287
+ children: /* @__PURE__ */ K(b.Wrapper, {
288
+ size: i,
289
+ ...a,
290
+ ...d,
291
+ labelElement: "div",
292
+ __staticSelector: "RadioGroup",
293
+ children: /* @__PURE__ */ K(E, {
294
+ role: "radiogroup",
295
+ children: o
296
+ })
297
+ })
298
+ });
299
+ }));
300
+ Pe.classes = b.Wrapper.classes, Pe.displayName = "@mantine/core/RadioGroup";
301
+ //#endregion
302
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Radio/RadioCard/RadioCard.module.mjs
303
+ var Fe = { card: "m_9dc8ae12" }, Ie = fe(null), Le = { withBorder: !0 }, Re = n((e, { radius: t }) => ({ card: { "--card-radius": s(t) } })), ze = f((e) => {
304
+ let t = l("RadioCard", Le, e), { classNames: n, className: r, style: a, styles: o, unstyled: s, vars: c, checked: u, mod: d, withBorder: f, value: p, onClick: m, name: h, onKeyDown: g, attributes: v, ...y } = t, b = i({
305
+ name: "RadioCard",
306
+ classes: Fe,
307
+ props: t,
308
+ className: r,
309
+ style: a,
310
+ classNames: n,
311
+ styles: o,
312
+ unstyled: s,
313
+ attributes: v,
314
+ vars: c,
315
+ varsResolver: Re,
316
+ rootSelector: "card"
317
+ }), { dir: x } = _(), S = me(Ne), C = typeof u == "boolean" ? u : S?.value === p || !1, w = h || S?.name, T = (e) => {
318
+ if (g?.(e), w && [
319
+ "ArrowDown",
320
+ "ArrowUp",
321
+ "ArrowLeft",
322
+ "ArrowRight"
323
+ ].includes(e.nativeEvent.code)) {
324
+ e.preventDefault();
325
+ let t = Array.from(document.querySelectorAll(`[role="radio"][name="${w}"]`)), n = t.findIndex((t) => t === e.target), r = n + 1 >= t.length ? 0 : n + 1, i = n - 1 < 0 ? t.length - 1 : n - 1;
326
+ 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());
327
+ }
328
+ };
329
+ return /* @__PURE__ */ K(Ie, {
330
+ value: { checked: C },
331
+ children: /* @__PURE__ */ K(M, {
332
+ mod: [{
333
+ "with-border": f,
334
+ checked: C
335
+ }, d],
336
+ ...b("card"),
337
+ ...y,
338
+ role: "radio",
339
+ "aria-checked": C,
340
+ name: w,
341
+ onClick: (e) => {
342
+ m?.(e), S?.onChange(p || "");
343
+ },
344
+ onKeyDown: T
345
+ })
346
+ });
347
+ });
348
+ ze.displayName = "@mantine/core/RadioCard", ze.classes = Fe, ze.varsResolver = Re;
349
+ //#endregion
350
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Radio/RadioIcon.mjs
351
+ function Be({ size: t, style: n, ...r }) {
352
+ return /* @__PURE__ */ K("svg", {
353
+ xmlns: "http://www.w3.org/2000/svg",
354
+ fill: "none",
355
+ viewBox: "0 0 5 5",
356
+ style: {
357
+ width: e(t),
358
+ height: e(t),
359
+ ...n
360
+ },
361
+ "aria-hidden": !0,
362
+ ...r,
363
+ children: /* @__PURE__ */ K("circle", {
364
+ cx: "2.5",
365
+ cy: "2.5",
366
+ r: "2.5",
367
+ fill: "currentColor"
368
+ })
369
+ });
370
+ }
371
+ //#endregion
372
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Radio/RadioIndicator/RadioIndicator.module.mjs
373
+ var Ve = {
374
+ indicator: "m_717d7ff6",
375
+ icon: "m_3e4da632",
376
+ "indicator--outline": "m_2980836c"
377
+ }, He = { icon: Be }, Ue = n((e, { radius: n, color: i, size: a, iconColor: o, variant: c, autoContrast: l }) => {
378
+ let u = r({
379
+ color: i || e.primaryColor,
380
+ theme: e
381
+ }), d = u.isThemeColor && u.shade === void 0 ? `var(--mantine-color-${u.color}-outline)` : u.color;
382
+ return { indicator: {
383
+ "--radio-size": t(a, "radio-size"),
384
+ "--radio-radius": n === void 0 ? void 0 : s(n),
385
+ "--radio-color": c === "outline" ? d : m(i, e),
386
+ "--radio-icon-size": t(a, "radio-icon-size"),
387
+ "--radio-icon-color": o ? m(o, e) : j(l, e) ? ee({
388
+ color: i,
389
+ theme: e,
390
+ autoContrast: l
391
+ }) : void 0
392
+ } };
393
+ }), We = f((e) => {
394
+ let t = l("RadioIndicator", He, e), { classNames: n, className: r, style: a, styles: o, unstyled: s, vars: c, icon: u, radius: d, color: f, iconColor: m, autoContrast: h, checked: g, mod: _, variant: v, disabled: y, attributes: b, ...x } = t, S = i({
395
+ name: "RadioIndicator",
396
+ classes: Ve,
397
+ props: t,
398
+ className: r,
399
+ style: a,
400
+ classNames: n,
401
+ styles: o,
402
+ unstyled: s,
403
+ attributes: b,
404
+ vars: c,
405
+ varsResolver: Ue,
406
+ rootSelector: "indicator"
407
+ }), C = me(Ie), w = typeof g == "boolean" ? g : C?.checked || !1;
408
+ return /* @__PURE__ */ K(p, {
409
+ ...S("indicator", { variant: v }),
410
+ variant: v,
411
+ mod: [{
412
+ checked: w,
413
+ disabled: y
414
+ }, _],
415
+ ...x,
416
+ children: /* @__PURE__ */ K(u, { ...S("icon") })
417
+ });
418
+ });
419
+ We.displayName = "@mantine/core/RadioIndicator", We.classes = Ve, We.varsResolver = Ue;
420
+ //#endregion
421
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/Radio/Radio.module.mjs
422
+ var Ge = {
423
+ root: "m_f3f1af94",
424
+ inner: "m_89c4f5e4",
425
+ icon: "m_f3ed6b2b",
426
+ radio: "m_8a3dbb89",
427
+ "radio--outline": "m_1bfe9d39"
428
+ }, Ke = {
429
+ labelPosition: "right",
430
+ withErrorStyles: !0
431
+ }, qe = n((e, { size: n, radius: i, color: a, iconColor: o, variant: c, autoContrast: l }) => {
432
+ let u = r({
433
+ color: a || e.primaryColor,
434
+ theme: e
435
+ }), d = u.isThemeColor && u.shade === void 0 ? `var(--mantine-color-${u.color}-outline)` : u.color;
436
+ return { root: {
437
+ "--radio-size": t(n, "radio-size"),
438
+ "--radio-radius": i === void 0 ? void 0 : s(i),
439
+ "--radio-color": c === "outline" ? d : m(a, e),
440
+ "--radio-icon-color": o ? m(o, e) : j(l, e) ? ee({
441
+ color: a,
442
+ theme: e,
443
+ autoContrast: l
444
+ }) : void 0,
445
+ "--radio-icon-size": t(n, "radio-icon-size")
446
+ } };
447
+ }), J = f((e) => {
448
+ let t = l("Radio", Ke, e), { classNames: n, className: r, style: a, styles: o, unstyled: s, vars: c, id: u, size: f, label: m, labelPosition: h, description: g, error: _, radius: v, color: y, variant: b, disabled: x, wrapperProps: S, icon: C = Be, rootRef: T, iconColor: E, onChange: O, mod: k, attributes: A, withErrorStyles: ee, checked: j, ...te } = t, M = i({
449
+ name: "Radio",
450
+ classes: Ge,
451
+ props: t,
452
+ className: r,
453
+ style: a,
454
+ classNames: n,
455
+ styles: o,
456
+ unstyled: s,
457
+ attributes: A,
458
+ vars: c,
459
+ varsResolver: qe
460
+ }), N = me(Ne), P = N?.size ?? f, ne = t.size ? f : P, { styleProps: F, rest: I } = d(te), re = w(u), L = N ? N.value === I.value : void 0, R = {
461
+ checked: L ?? j,
462
+ name: I.name ?? N?.name,
463
+ onChange: (e) => {
464
+ N?.onChange(e), O?.(e);
465
+ },
466
+ disabled: N?.disabled ?? x
467
+ };
468
+ return /* @__PURE__ */ K(D, {
469
+ ...M("root"),
470
+ __staticSelector: "Radio",
471
+ __stylesApiProps: t,
472
+ id: re,
473
+ size: ne,
474
+ labelPosition: h,
475
+ label: m,
476
+ description: g,
477
+ error: _,
478
+ disabled: R.disabled,
479
+ classNames: n,
480
+ styles: o,
481
+ unstyled: s,
482
+ "data-checked": (L ?? j) || void 0,
483
+ variant: b,
484
+ ref: T,
485
+ mod: k,
486
+ attributes: A,
487
+ ...F,
488
+ ...S,
489
+ children: /* @__PURE__ */ q(p, {
490
+ ...M("inner"),
491
+ mod: { "label-position": h },
492
+ children: [/* @__PURE__ */ K(p, {
493
+ ...M("radio", {
494
+ focusable: !0,
495
+ variant: b
496
+ }),
497
+ ...I,
498
+ ...R,
499
+ component: "input",
500
+ mod: {
501
+ error: !!_,
502
+ "with-error-styles": ee
503
+ },
504
+ id: re,
505
+ type: "radio"
506
+ }), /* @__PURE__ */ K(C, {
507
+ ...M("icon"),
508
+ "aria-hidden": !0
509
+ })]
510
+ })
511
+ });
512
+ });
513
+ J.classes = Ge, J.varsResolver = qe, J.displayName = "@mantine/core/Radio", J.Group = Pe, J.Card = ze, J.Indicator = We;
514
+ //#endregion
515
+ //#region ../../node_modules/.bun/@mantine+core@9.0.0+9dd69a0af178a974/node_modules/@mantine/core/esm/components/SegmentedControl/SegmentedControl.module.mjs
516
+ var Je = {
517
+ root: "m_cf365364",
518
+ indicator: "m_9e182ccd",
519
+ label: "m_1738fcb2",
520
+ input: "m_1714d588",
521
+ control: "m_69686b9b",
522
+ innerLabel: "m_78882f40"
523
+ }, Ye = { withItemsBorders: !0 }, Xe = n((e, { radius: n, color: r, transitionDuration: i, size: a, transitionTimingFunction: o }) => ({ root: {
524
+ "--sc-radius": n === void 0 ? void 0 : s(n),
525
+ "--sc-color": r ? m(r, e) : void 0,
526
+ "--sc-shadow": r ? void 0 : "var(--mantine-shadow-xs)",
527
+ "--sc-transition-duration": i === void 0 ? void 0 : `${i}ms`,
528
+ "--sc-transition-timing-function": o,
529
+ "--sc-padding": t(a, "sc-padding"),
530
+ "--sc-font-size": c(a)
531
+ } })), Ze = o((e) => {
532
+ let t = l("SegmentedControl", Ye, e), { classNames: n, className: r, style: o, styles: s, unstyled: c, vars: u, data: d, value: f, defaultValue: m, onChange: h, size: g, name: _, disabled: v, readOnly: b, fullWidth: x, orientation: C, radius: T, color: E, transitionDuration: D, transitionTimingFunction: O, variant: k, autoContrast: j, withItemsBorders: te, mod: M, attributes: N, ref: P, ...ne } = t, F = i({
533
+ name: "SegmentedControl",
534
+ props: t,
535
+ classes: Je,
536
+ className: r,
537
+ style: o,
538
+ classNames: n,
539
+ styles: s,
540
+ unstyled: c,
541
+ attributes: N,
542
+ vars: u,
543
+ varsResolver: Xe
544
+ }), I = a(), re = d.map((e) => we(e) ? {
545
+ label: `${e}`,
546
+ value: e
547
+ } : e), L = Se(), [R, ie] = G(S()), [ae, oe] = G(null), [se, z] = G({}), ce = (e, t) => {
548
+ se[t] = e, z(se);
549
+ }, [B, le] = y({
550
+ value: f,
551
+ defaultValue: m,
552
+ finalValue: Array.isArray(d) ? re.find((e) => !e.disabled)?.value ?? d[0]?.value ?? null : null,
553
+ onChange: h
554
+ }), ue = w(_), de = re.map((e) => /* @__PURE__ */ pe(p, {
555
+ ...F("control"),
556
+ mod: {
557
+ active: B === e.value,
558
+ orientation: C
559
+ },
560
+ key: `${e.value}`
561
+ }, /* @__PURE__ */ pe("input", {
562
+ ...F("input"),
563
+ disabled: v || e.disabled,
564
+ type: "radio",
565
+ name: ue,
566
+ value: `${e.value}`,
567
+ id: `${ue}-${e.value}`,
568
+ checked: B === e.value,
569
+ onChange: () => !b && le(e.value),
570
+ "data-focus-ring": I.focusRing,
571
+ key: `${e.value}-input`
572
+ }), /* @__PURE__ */ pe(p, {
573
+ component: "label",
574
+ ...F("label"),
575
+ mod: {
576
+ active: B === e.value && !(v || e.disabled),
577
+ disabled: v || e.disabled,
578
+ "read-only": b
579
+ },
580
+ htmlFor: `${ue}-${e.value}`,
581
+ ref: (t) => ce(t, `${e.value}`),
582
+ __vars: { "--sc-label-color": E === void 0 ? void 0 : ee({
583
+ color: E,
584
+ theme: I,
585
+ autoContrast: j
586
+ }) },
587
+ key: `${e.value}-label`
588
+ }, /* @__PURE__ */ K("span", {
589
+ ...F("innerLabel"),
590
+ children: e.label
591
+ })))), V = A(P, (e) => oe(e));
592
+ return ye(() => {
593
+ ie(S());
594
+ }, [d.length]), d.length === 0 ? null : /* @__PURE__ */ q(p, {
595
+ ...F("root"),
596
+ variant: k,
597
+ size: g,
598
+ ref: V,
599
+ mod: [{
600
+ "full-width": x,
601
+ orientation: C,
602
+ initialized: L,
603
+ "with-items-borders": te
604
+ }, M],
605
+ ...ne,
606
+ role: "radiogroup",
607
+ "data-disabled": v,
608
+ children: [B !== void 0 && /* @__PURE__ */ K(ke, {
609
+ target: se[`${B}`],
610
+ parent: ae,
611
+ component: "span",
612
+ transitionDuration: "var(--sc-transition-duration)",
613
+ ...F("indicator")
614
+ }, R), de]
615
+ });
616
+ });
617
+ Ze.classes = Je, Ze.varsResolver = Xe, Ze.displayName = "@mantine/core/SegmentedControl";
618
+ //#endregion
619
+ //#region src/infrastructure/adapters/DefaultThemeProvider.ts
620
+ var Qe = {
621
+ mode: "light",
622
+ colors: {
623
+ desktop: "#f0f4f8",
624
+ taskbar: "rgba(255, 255, 255, 0.9)",
625
+ window: "#ffffff",
626
+ accent: "#339af0"
627
+ },
628
+ window: {
629
+ borderRadius: "8px",
630
+ headerHeight: 40,
631
+ minWidth: 400,
632
+ minHeight: 300,
633
+ defaultWidth: 800,
634
+ defaultHeight: 600,
635
+ shadow: "0 8px 32px rgba(0, 0, 0, 0.2)"
636
+ },
637
+ taskbar: {
638
+ height: 48,
639
+ position: "bottom",
640
+ background: "rgba(0, 0, 0, 0.8)",
641
+ blur: !0
642
+ },
643
+ desktop: {
644
+ background: "linear-gradient(135deg, #667eea 0%, #764ba2 100%)",
645
+ iconSize: 64,
646
+ iconSpacing: 16
647
+ }
648
+ }, $e = {
649
+ mode: "dark",
650
+ colors: {
651
+ desktop: "#1a1b1e",
652
+ taskbar: "rgba(26, 27, 30, 0.9)",
653
+ window: "#25262b",
654
+ accent: "#4dabf7"
655
+ },
656
+ window: {
657
+ borderRadius: "8px",
658
+ headerHeight: 40,
659
+ minWidth: 400,
660
+ minHeight: 300,
661
+ defaultWidth: 800,
662
+ defaultHeight: 600,
663
+ shadow: "0 8px 32px rgba(0, 0, 0, 0.2)"
664
+ },
665
+ taskbar: {
666
+ height: 48,
667
+ position: "bottom",
668
+ background: "rgba(0, 0, 0, 0.8)",
669
+ blur: !0
670
+ },
671
+ desktop: {
672
+ background: "linear-gradient(135deg, #1a1b1e 0%, #2d1f3d 100%)",
673
+ iconSize: 64,
674
+ iconSpacing: 16
675
+ }
676
+ }, et = class {
677
+ mode;
678
+ customColors = null;
679
+ constructor(e = "light") {
680
+ this.mode = e;
681
+ }
682
+ getTheme() {
683
+ let e = this.mode === "light" ? Qe : $e;
684
+ return this.customColors ? {
685
+ ...e,
686
+ colors: {
687
+ ...e.colors,
688
+ taskbar: this.customColors.taskbar,
689
+ window: this.customColors.window,
690
+ accent: this.customColors.accent
691
+ }
692
+ } : e;
693
+ }
694
+ setMode(e) {
695
+ this.mode = e;
696
+ }
697
+ setCustomColors(e) {
698
+ this.customColors = e;
699
+ }
700
+ toggle() {
701
+ this.mode = this.mode === "light" ? "dark" : "light";
702
+ }
703
+ }, tt = ["en", "es"], nt = "en", rt = () => {
704
+ try {
705
+ let e = localStorage.getItem("fde-desktop:settings"), t = localStorage.getItem("fran-desktop:settings");
706
+ return JSON.parse(e ?? t ?? "{}")?.state?.theme?.mode ?? null;
707
+ } catch {
708
+ return null;
709
+ }
710
+ }, it = rt(), at = () => {
711
+ if (typeof navigator > "u" || !navigator.language) return nt;
712
+ let e = navigator.language.split("-")[0];
713
+ return tt.includes(e) ? e : nt;
714
+ }, ot = (() => {
715
+ try {
716
+ let e = localStorage.getItem("fde-desktop:settings"), t = localStorage.getItem("fran-desktop:settings"), n = JSON.parse(e ?? t ?? "{}")?.state?.language;
717
+ return n && tt.includes(n) ? n : at();
718
+ } catch {
719
+ return at();
720
+ }
721
+ })(), st = typeof window < "u" && window.matchMedia?.("(prefers-color-scheme: dark)").matches ? "dark" : "light", Y = new et(it ?? st), X = ie()(se((e) => ({
722
+ wallpaper: null,
723
+ wallpaperModule: "default",
724
+ launcherIcon: "FcElectronics",
725
+ font: "system-ui",
726
+ downloadedFonts: [],
727
+ fontSize: 14,
728
+ animationDuration: .3,
729
+ theme: Y.getTheme(),
730
+ themeSetManually: it !== null,
731
+ customThemeColors: null,
732
+ language: ot,
733
+ setWallpaper: (t) => e({ wallpaper: t }),
734
+ setWallpaperModule: (t) => e({ wallpaperModule: t }),
735
+ setLauncherIcon: (t) => e({ launcherIcon: t }),
736
+ setFont: (t) => e({ font: t }),
737
+ markFontDownloaded: (t) => e((e) => ({ downloadedFonts: e.downloadedFonts.includes(t) ? e.downloadedFonts : [...e.downloadedFonts, t] })),
738
+ setFontSize: (t) => e({ fontSize: t }),
739
+ setAnimationDuration: (t) => e({ animationDuration: t }),
740
+ setThemeMode: (t) => {
741
+ Y.setMode(t), e({
742
+ theme: Y.getTheme(),
743
+ themeSetManually: !0
744
+ });
745
+ },
746
+ toggleTheme: () => {
747
+ Y.toggle(), e({
748
+ theme: Y.getTheme(),
749
+ themeSetManually: !0
750
+ });
751
+ },
752
+ setThemeAutomatic: () => e({ themeSetManually: !1 }),
753
+ applySystemTheme: (t) => {
754
+ Y.setMode(t), e({ theme: Y.getTheme() });
755
+ },
756
+ setCustomThemeColors: (t) => {
757
+ e({ customThemeColors: t });
758
+ },
759
+ setLanguage: (t) => e({ language: t })
760
+ }), {
761
+ name: "fde-desktop:settings",
762
+ storage: ae(() => localStorage)
763
+ })), ct = {
764
+ container: "_container_a0fjd_1",
765
+ flag: "_flag_a0fjd_8"
766
+ }, lt = {
767
+ en: /* @__PURE__ */ q("svg", {
768
+ viewBox: "0 0 60 40",
769
+ className: ct.flag,
770
+ children: [
771
+ /* @__PURE__ */ K("rect", {
772
+ fill: "#012169",
773
+ width: "60",
774
+ height: "40"
775
+ }),
776
+ /* @__PURE__ */ K("path", {
777
+ d: "M0,0 L60,40 M60,0 L0,40",
778
+ stroke: "#fff",
779
+ strokeWidth: "6"
780
+ }),
781
+ /* @__PURE__ */ K("path", {
782
+ d: "M0,0 L60,40 M60,0 L0,40",
783
+ stroke: "#C8102E",
784
+ strokeWidth: "4"
785
+ }),
786
+ /* @__PURE__ */ K("path", {
787
+ d: "M30,0 V40 M0,20 H60",
788
+ stroke: "#fff",
789
+ strokeWidth: "10"
790
+ }),
791
+ /* @__PURE__ */ K("path", {
792
+ d: "M30,0 V40 M0,20 H60",
793
+ stroke: "#C8102E",
794
+ strokeWidth: "6"
795
+ })
796
+ ]
797
+ }),
798
+ es: /* @__PURE__ */ q("svg", {
799
+ viewBox: "0 0 60 40",
800
+ className: ct.flag,
801
+ children: [/* @__PURE__ */ K("rect", {
802
+ fill: "#C60B1E",
803
+ width: "60",
804
+ height: "40"
805
+ }), /* @__PURE__ */ K("rect", {
806
+ fill: "#FFC400",
807
+ y: "10",
808
+ width: "60",
809
+ height: "20"
810
+ })]
811
+ })
812
+ }, ut = ({ lang: e, size: t = 20 }) => /* @__PURE__ */ K("div", {
813
+ style: {
814
+ width: t * 1.5,
815
+ height: t
816
+ },
817
+ className: ct.container,
818
+ "aria-label": e === "en" ? "English" : "Español",
819
+ "data-testid": `flag-${e}`,
820
+ children: lt[e]
821
+ }), dt = [
822
+ {
823
+ value: "system-ui",
824
+ label: "System Default",
825
+ stack: "system-ui, Avenir, Helvetica, Arial, sans-serif"
826
+ },
827
+ {
828
+ value: "Courier New",
829
+ label: "Courier New",
830
+ stack: "\"Courier New\", monospace"
831
+ },
832
+ {
833
+ value: "Source Code Pro",
834
+ label: "Source Code Pro",
835
+ stack: "\"Source Code Pro\", monospace"
836
+ },
837
+ {
838
+ value: "Open Sans",
839
+ label: "Open Sans",
840
+ stack: "\"Open Sans\", monospace"
841
+ }
842
+ ], ft = Object.fromEntries(dt.map((e) => [e.value, e.stack])), Z = {
843
+ "Source Code Pro": "https://fonts.googleapis.com/css2?family=Source+Code+Pro&display=swap",
844
+ "Open Sans": "https://fonts.googleapis.com/css2?family=Open+Sans&display=swap"
845
+ }, pt = [
846
+ {
847
+ id: "wallpaper",
848
+ label: "Wallpaper",
849
+ fcIcon: "FcPicture",
850
+ description: "Change the desktop background image."
851
+ },
852
+ {
853
+ id: "appearance",
854
+ label: "Appearance",
855
+ fcIcon: "FcBinoculars",
856
+ description: "Switch between light and dark mode."
857
+ },
858
+ {
859
+ id: "launcher",
860
+ label: "Launcher",
861
+ fcIcon: "FcElectronics",
862
+ description: "Choose the launcher button icon."
863
+ },
864
+ {
865
+ id: "font",
866
+ label: "Font",
867
+ fcIcon: "FcEditImage",
868
+ description: "Select the system font family."
869
+ },
870
+ {
871
+ id: "language",
872
+ label: "Language",
873
+ fcIcon: "FcGlobe",
874
+ description: "Choose your preferred language."
875
+ },
876
+ {
877
+ id: "reset",
878
+ label: "Reset to Default",
879
+ fcIcon: "FcDisclaimer",
880
+ description: "Reset all settings and data to defaults."
881
+ }
882
+ ], mt = ({ title: e, description: t, children: n }) => /* @__PURE__ */ q(R, {
883
+ gap: "md",
884
+ p: "md",
885
+ children: [
886
+ /* @__PURE__ */ K(F, {
887
+ fw: 600,
888
+ size: "lg",
889
+ children: e
890
+ }),
891
+ t && /* @__PURE__ */ K(F, {
892
+ size: "sm",
893
+ c: "dimmed",
894
+ children: t
895
+ }),
896
+ n
897
+ ]
898
+ }), ht = "/Images/wallpaper.jpg", gt = () => {
899
+ let { t: e } = z("settings"), t = X((e) => e.wallpaper), n = X((e) => e.wallpaperModule), r = X((e) => e.setWallpaper), i = X((e) => e.setWallpaperModule), [a, o] = G(""), [s, c] = G(!1), l = W(null), u = B(t ?? void 0) ?? ht, d = H((e) => {
900
+ let t = e.target.files?.[0];
901
+ if (!t) return;
902
+ let n = new FileReader();
903
+ n.onload = (e) => {
904
+ let t = e.target?.result;
905
+ typeof t == "string" && r(t);
906
+ }, n.readAsDataURL(t);
907
+ }, [r]), f = H(() => {
908
+ let e = a.trim();
909
+ e && r(e);
910
+ }, [a, r]), p = H(() => {
911
+ r(null), o("");
912
+ }, [r]), m = H((e) => {
913
+ let t = e.url ? e.url.startsWith("idb://") ? e.url : `/${e.url}` : null;
914
+ t && r(t), c(!1);
915
+ }, [r]);
916
+ return /* @__PURE__ */ q(mt, {
917
+ title: e("wallpaper.title"),
918
+ children: [
919
+ /* @__PURE__ */ K("div", { children: /* @__PURE__ */ K(Ze, {
920
+ value: n,
921
+ onChange: i,
922
+ data: [{
923
+ value: "default",
924
+ label: e("wallpaper.staticImage")
925
+ }],
926
+ fullWidth: !0
927
+ }) }),
928
+ /* @__PURE__ */ K("img", {
929
+ src: u,
930
+ alt: e("wallpaper.wallpaperPreview"),
931
+ style: {
932
+ width: "100%",
933
+ height: 180,
934
+ objectFit: "cover",
935
+ borderRadius: 8
936
+ }
937
+ }),
938
+ /* @__PURE__ */ q(P, { children: [
939
+ /* @__PURE__ */ K("input", {
940
+ ref: l,
941
+ type: "file",
942
+ accept: "image/*",
943
+ style: { display: "none" },
944
+ onChange: d,
945
+ "aria-label": e("wallpaper.uploadAria", { defaultValue: "Upload wallpaper file" })
946
+ }),
947
+ /* @__PURE__ */ K(I, {
948
+ variant: "light",
949
+ onClick: () => c(!0),
950
+ children: e("wallpaper.chooseFromImages")
951
+ }),
952
+ /* @__PURE__ */ K(I, {
953
+ variant: "light",
954
+ onClick: () => l.current?.click(),
955
+ children: e("wallpaper.uploadFromDisk")
956
+ }),
957
+ /* @__PURE__ */ K(I, {
958
+ variant: "subtle",
959
+ color: "red",
960
+ onClick: p,
961
+ children: e("wallpaper.resetToDefault")
962
+ })
963
+ ] }),
964
+ /* @__PURE__ */ q(P, {
965
+ align: "flex-end",
966
+ children: [/* @__PURE__ */ K(C, {
967
+ label: e("wallpaper.orEnterUrl"),
968
+ placeholder: "https://example.com/image.jpg",
969
+ value: a,
970
+ onChange: (e) => o(e.currentTarget.value),
971
+ style: { flex: 1 }
972
+ }), /* @__PURE__ */ K(I, {
973
+ onClick: f,
974
+ disabled: !a.trim(),
975
+ children: e("common:actions.apply")
976
+ })]
977
+ }),
978
+ /* @__PURE__ */ K(le, {
979
+ opened: s,
980
+ acceptedMimeTypes: ["image/*"],
981
+ onConfirm: m,
982
+ onCancel: () => c(!1)
983
+ })
984
+ ]
985
+ });
986
+ }, _t = () => {
987
+ let { t: e } = z("settings"), t = X((e) => e.theme.mode), n = X((e) => e.themeSetManually), r = X((e) => e.customThemeColors), i = X((e) => e.animationDuration), a = X((e) => e.setThemeMode), o = X((e) => e.setThemeAutomatic), s = X((e) => e.setCustomThemeColors), c = X((e) => e.setAnimationDuration), l = r ? "custom" : n ? t : "system", u = H((e) => {
988
+ e === "system" ? (o(), s(null)) : e === "custom" ? s({
989
+ taskbar: "#339af0",
990
+ window: "#ffffff",
991
+ accent: "#339af0"
992
+ }) : (a(e), s(null));
993
+ }, [
994
+ a,
995
+ o,
996
+ s
997
+ ]), d = H((e) => (t) => {
998
+ r && s({
999
+ ...r,
1000
+ [e]: t
1001
+ });
1002
+ }, [r, s]), f = H((e) => {
1003
+ c(e);
1004
+ }, [c]), m = l === "custom";
1005
+ return /* @__PURE__ */ q(R, {
1006
+ gap: "md",
1007
+ p: "md",
1008
+ children: [
1009
+ /* @__PURE__ */ K(F, {
1010
+ fw: 600,
1011
+ size: "lg",
1012
+ children: e("appearance.title")
1013
+ }),
1014
+ /* @__PURE__ */ K(F, {
1015
+ size: "sm",
1016
+ c: "dimmed",
1017
+ children: e("appearance.description")
1018
+ }),
1019
+ /* @__PURE__ */ K(Ze, {
1020
+ value: l,
1021
+ onChange: u,
1022
+ data: [
1023
+ {
1024
+ label: e("common:theme.light"),
1025
+ value: "light"
1026
+ },
1027
+ {
1028
+ label: e("common:theme.dark"),
1029
+ value: "dark"
1030
+ },
1031
+ {
1032
+ label: e("common:theme.system"),
1033
+ value: "system"
1034
+ },
1035
+ {
1036
+ label: e("common:theme.custom"),
1037
+ value: "custom"
1038
+ }
1039
+ ],
1040
+ "aria-label": e("appearance.themeMode", { defaultValue: "Theme mode" })
1041
+ }),
1042
+ /* @__PURE__ */ q(R, {
1043
+ gap: "sm",
1044
+ mt: "md",
1045
+ children: [
1046
+ /* @__PURE__ */ q(p, { children: [/* @__PURE__ */ K(F, {
1047
+ size: "sm",
1048
+ fw: 500,
1049
+ mb: "xs",
1050
+ c: m ? "dark" : void 0,
1051
+ children: e("appearance.taskbar")
1052
+ }), /* @__PURE__ */ K(g, {
1053
+ value: r?.taskbar ?? "#339af0",
1054
+ onChange: d("taskbar"),
1055
+ disabled: !m
1056
+ })] }),
1057
+ /* @__PURE__ */ q(p, { children: [/* @__PURE__ */ K(F, {
1058
+ size: "sm",
1059
+ fw: 500,
1060
+ mb: "xs",
1061
+ c: m ? "dark" : void 0,
1062
+ children: e("appearance.window")
1063
+ }), /* @__PURE__ */ K(g, {
1064
+ value: r?.window ?? "#ffffff",
1065
+ onChange: d("window"),
1066
+ disabled: !m
1067
+ })] }),
1068
+ /* @__PURE__ */ q(p, { children: [/* @__PURE__ */ K(F, {
1069
+ size: "sm",
1070
+ fw: 500,
1071
+ mb: "xs",
1072
+ c: m ? "dark" : void 0,
1073
+ children: e("appearance.accent")
1074
+ }), /* @__PURE__ */ K(g, {
1075
+ value: r?.accent ?? "#339af0",
1076
+ onChange: d("accent"),
1077
+ disabled: !m
1078
+ })] })
1079
+ ]
1080
+ }),
1081
+ /* @__PURE__ */ q(p, {
1082
+ mt: "md",
1083
+ children: [
1084
+ /* @__PURE__ */ K(F, {
1085
+ size: "sm",
1086
+ fw: 500,
1087
+ mb: "xs",
1088
+ children: e("appearance.animationDuration")
1089
+ }),
1090
+ /* @__PURE__ */ K(F, {
1091
+ size: "xs",
1092
+ c: "dimmed",
1093
+ mb: "sm",
1094
+ children: e("appearance.animationDescription")
1095
+ }),
1096
+ /* @__PURE__ */ q(P, {
1097
+ align: "center",
1098
+ gap: "md",
1099
+ children: [/* @__PURE__ */ K(k, {
1100
+ value: i,
1101
+ onChange: f,
1102
+ min: .1,
1103
+ max: 1,
1104
+ step: .1,
1105
+ style: { flex: 1 },
1106
+ marks: [
1107
+ {
1108
+ value: .1,
1109
+ label: "0.1s"
1110
+ },
1111
+ {
1112
+ value: .5,
1113
+ label: "0.5s"
1114
+ },
1115
+ {
1116
+ value: 1,
1117
+ label: "1.0s"
1118
+ }
1119
+ ],
1120
+ "aria-label": e("appearance.animationDuration")
1121
+ }), /* @__PURE__ */ q(F, {
1122
+ size: "sm",
1123
+ fw: 500,
1124
+ style: { minWidth: 40 },
1125
+ children: [i.toFixed(1), "s"]
1126
+ })]
1127
+ })
1128
+ ]
1129
+ })
1130
+ ]
1131
+ });
1132
+ }, vt = () => {
1133
+ let e = X((e) => e.launcherIcon), t = X((e) => e.setLauncherIcon), [n, r] = G([]), [i, a] = G(""), o = he(i);
1134
+ U(() => {
1135
+ import("./fc-kd8WzIER.js").then((e) => e.r).then((e) => {
1136
+ r(Object.keys(e).filter((e) => e.startsWith("Fc")).sort());
1137
+ });
1138
+ }, []);
1139
+ let s = o ? n.filter((e) => e.toLowerCase().includes(o.toLowerCase())) : n, c = H((e) => {
1140
+ t(e);
1141
+ }, [t]);
1142
+ return /* @__PURE__ */ q(mt, {
1143
+ title: "Launcher Icon",
1144
+ description: `Selected: ${e}`,
1145
+ children: [/* @__PURE__ */ K(C, {
1146
+ placeholder: "Search icons...",
1147
+ value: i,
1148
+ onChange: (e) => a(e.currentTarget.value),
1149
+ "aria-label": "Search icons"
1150
+ }), /* @__PURE__ */ K(T, {
1151
+ style: {
1152
+ flex: 1,
1153
+ height: 300
1154
+ },
1155
+ children: /* @__PURE__ */ K(h, {
1156
+ cols: 8,
1157
+ spacing: 4,
1158
+ children: s.map((t) => /* @__PURE__ */ K(v, {
1159
+ label: t,
1160
+ withArrow: !0,
1161
+ openDelay: 400,
1162
+ children: /* @__PURE__ */ K(M, {
1163
+ onClick: () => c(t),
1164
+ "aria-label": t,
1165
+ "aria-pressed": t === e,
1166
+ style: {
1167
+ padding: 6,
1168
+ borderRadius: 6,
1169
+ background: t === e ? "var(--mantine-primary-color-light)" : "transparent",
1170
+ display: "flex",
1171
+ alignItems: "center",
1172
+ justifyContent: "center"
1173
+ },
1174
+ children: /* @__PURE__ */ K(L, {
1175
+ fcIcon: t,
1176
+ size: 24
1177
+ })
1178
+ })
1179
+ }, t))
1180
+ })
1181
+ })]
1182
+ });
1183
+ }, yt = class {
1184
+ constructor() {
1185
+ this.listeners = /* @__PURE__ */ new Set(), this.subscribe = this.subscribe.bind(this);
1186
+ }
1187
+ subscribe(e) {
1188
+ return this.listeners.add(e), this.onSubscribe(), () => {
1189
+ this.listeners.delete(e), this.onUnsubscribe();
1190
+ };
1191
+ }
1192
+ hasListeners() {
1193
+ return this.listeners.size > 0;
1194
+ }
1195
+ onSubscribe() {}
1196
+ onUnsubscribe() {}
1197
+ }, bt = new class extends yt {
1198
+ #e;
1199
+ #t;
1200
+ #n;
1201
+ constructor() {
1202
+ super(), this.#n = (e) => {
1203
+ if (typeof window < "u" && window.addEventListener) {
1204
+ let t = () => e();
1205
+ return window.addEventListener("visibilitychange", t, !1), () => {
1206
+ window.removeEventListener("visibilitychange", t);
1207
+ };
1208
+ }
1209
+ };
1210
+ }
1211
+ onSubscribe() {
1212
+ this.#t || this.setEventListener(this.#n);
1213
+ }
1214
+ onUnsubscribe() {
1215
+ this.hasListeners() || (this.#t?.(), this.#t = void 0);
1216
+ }
1217
+ setEventListener(e) {
1218
+ this.#n = e, this.#t?.(), this.#t = e((e) => {
1219
+ typeof e == "boolean" ? this.setFocused(e) : this.onFocus();
1220
+ });
1221
+ }
1222
+ setFocused(e) {
1223
+ this.#e !== e && (this.#e = e, this.onFocus());
1224
+ }
1225
+ onFocus() {
1226
+ let e = this.isFocused();
1227
+ this.listeners.forEach((t) => {
1228
+ t(e);
1229
+ });
1230
+ }
1231
+ isFocused() {
1232
+ return typeof this.#e == "boolean" ? this.#e : globalThis.document?.visibilityState !== "hidden";
1233
+ }
1234
+ }(), xt = {
1235
+ setTimeout: (e, t) => setTimeout(e, t),
1236
+ clearTimeout: (e) => clearTimeout(e),
1237
+ setInterval: (e, t) => setInterval(e, t),
1238
+ clearInterval: (e) => clearInterval(e)
1239
+ }, St = new class {
1240
+ #e = xt;
1241
+ #t = !1;
1242
+ setTimeoutProvider(e) {
1243
+ 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.", {
1244
+ previous: this.#e,
1245
+ provider: e
1246
+ }), this.#e = e, process.env.NODE_ENV !== "production" && (this.#t = !1);
1247
+ }
1248
+ setTimeout(e, t) {
1249
+ return process.env.NODE_ENV !== "production" && (this.#t = !0), this.#e.setTimeout(e, t);
1250
+ }
1251
+ clearTimeout(e) {
1252
+ this.#e.clearTimeout(e);
1253
+ }
1254
+ setInterval(e, t) {
1255
+ return process.env.NODE_ENV !== "production" && (this.#t = !0), this.#e.setInterval(e, t);
1256
+ }
1257
+ clearInterval(e) {
1258
+ this.#e.clearInterval(e);
1259
+ }
1260
+ }();
1261
+ function Ct(e) {
1262
+ setTimeout(e, 0);
1263
+ }
1264
+ //#endregion
1265
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/utils.js
1266
+ var wt = typeof window > "u" || "Deno" in globalThis;
1267
+ function Tt() {}
1268
+ function Et(e) {
1269
+ return typeof e == "number" && e >= 0 && e !== Infinity;
1270
+ }
1271
+ function Dt(e, t) {
1272
+ return Math.max(e + (t || 0) - Date.now(), 0);
1273
+ }
1274
+ function Ot(e, t) {
1275
+ return typeof e == "function" ? e(t) : e;
1276
+ }
1277
+ function Q(e, t) {
1278
+ return typeof e == "function" ? e(t) : e;
1279
+ }
1280
+ var kt = Object.prototype.hasOwnProperty;
1281
+ function At(e, t, n = 0) {
1282
+ if (e === t) return e;
1283
+ if (n > 500) return t;
1284
+ let r = Mt(e) && Mt(t);
1285
+ if (!r && !(Nt(e) && Nt(t))) return t;
1286
+ let i = (r ? e : Object.keys(e)).length, a = r ? t : Object.keys(t), o = a.length, s = r ? Array(o) : {}, c = 0;
1287
+ for (let l = 0; l < o; l++) {
1288
+ let o = r ? l : a[l], u = e[o], d = t[o];
1289
+ if (u === d) {
1290
+ s[o] = u, (r ? l < i : kt.call(e, o)) && c++;
1291
+ continue;
1292
+ }
1293
+ if (u === null || d === null || typeof u != "object" || typeof d != "object") {
1294
+ s[o] = d;
1295
+ continue;
1296
+ }
1297
+ let f = At(u, d, n + 1);
1298
+ s[o] = f, f === u && c++;
1299
+ }
1300
+ return i === o && c === i ? e : s;
1301
+ }
1302
+ function jt(e, t) {
1303
+ if (!t || Object.keys(e).length !== Object.keys(t).length) return !1;
1304
+ for (let n in e) if (e[n] !== t[n]) return !1;
1305
+ return !0;
1306
+ }
1307
+ function Mt(e) {
1308
+ return Array.isArray(e) && e.length === Object.keys(e).length;
1309
+ }
1310
+ function Nt(e) {
1311
+ if (!Pt(e)) return !1;
1312
+ let t = e.constructor;
1313
+ if (t === void 0) return !0;
1314
+ let n = t.prototype;
1315
+ return !(!Pt(n) || !n.hasOwnProperty("isPrototypeOf") || Object.getPrototypeOf(e) !== Object.prototype);
1316
+ }
1317
+ function Pt(e) {
1318
+ return Object.prototype.toString.call(e) === "[object Object]";
1319
+ }
1320
+ function Ft(e, t, n) {
1321
+ if (typeof n.structuralSharing == "function") return n.structuralSharing(e, t);
1322
+ if (n.structuralSharing !== !1) {
1323
+ if (process.env.NODE_ENV !== "production") try {
1324
+ return At(e, t);
1325
+ } catch (e) {
1326
+ 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;
1327
+ }
1328
+ return At(e, t);
1329
+ }
1330
+ return t;
1331
+ }
1332
+ function It(e, t) {
1333
+ return typeof e == "function" ? e(...t) : !!e;
1334
+ }
1335
+ //#endregion
1336
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/environmentManager.js
1337
+ var Lt = /* @__PURE__ */ (() => {
1338
+ let e = () => wt;
1339
+ return {
1340
+ isServer() {
1341
+ return e();
1342
+ },
1343
+ setIsServer(t) {
1344
+ e = t;
1345
+ }
1346
+ };
1347
+ })();
1348
+ //#endregion
1349
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/thenable.js
1350
+ function Rt() {
1351
+ let e, t, n = new Promise((n, r) => {
1352
+ e = n, t = r;
1353
+ });
1354
+ n.status = "pending", n.catch(() => {});
1355
+ function r(e) {
1356
+ Object.assign(n, e), delete n.resolve, delete n.reject;
1357
+ }
1358
+ return n.resolve = (t) => {
1359
+ r({
1360
+ status: "fulfilled",
1361
+ value: t
1362
+ }), e(t);
1363
+ }, n.reject = (e) => {
1364
+ r({
1365
+ status: "rejected",
1366
+ reason: e
1367
+ }), t(e);
1368
+ }, n;
1369
+ }
1370
+ //#endregion
1371
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/notifyManager.js
1372
+ var zt = Ct;
1373
+ function Bt() {
1374
+ let e = [], t = 0, n = (e) => {
1375
+ e();
1376
+ }, r = (e) => {
1377
+ e();
1378
+ }, i = zt, a = (r) => {
1379
+ t ? e.push(r) : i(() => {
1380
+ n(r);
1381
+ });
1382
+ }, o = () => {
1383
+ let t = e;
1384
+ e = [], t.length && i(() => {
1385
+ r(() => {
1386
+ t.forEach((e) => {
1387
+ n(e);
1388
+ });
1389
+ });
1390
+ });
1391
+ };
1392
+ return {
1393
+ batch: (e) => {
1394
+ let n;
1395
+ t++;
1396
+ try {
1397
+ n = e();
1398
+ } finally {
1399
+ t--, t || o();
1400
+ }
1401
+ return n;
1402
+ },
1403
+ batchCalls: (e) => (...t) => {
1404
+ a(() => {
1405
+ e(...t);
1406
+ });
1407
+ },
1408
+ schedule: a,
1409
+ setNotifyFunction: (e) => {
1410
+ n = e;
1411
+ },
1412
+ setBatchNotifyFunction: (e) => {
1413
+ r = e;
1414
+ },
1415
+ setScheduler: (e) => {
1416
+ i = e;
1417
+ }
1418
+ };
1419
+ }
1420
+ var Vt = Bt(), Ht = new class extends yt {
1421
+ #e = !0;
1422
+ #t;
1423
+ #n;
1424
+ constructor() {
1425
+ super(), this.#n = (e) => {
1426
+ if (typeof window < "u" && window.addEventListener) {
1427
+ let t = () => e(!0), n = () => e(!1);
1428
+ return window.addEventListener("online", t, !1), window.addEventListener("offline", n, !1), () => {
1429
+ window.removeEventListener("online", t), window.removeEventListener("offline", n);
1430
+ };
1431
+ }
1432
+ };
1433
+ }
1434
+ onSubscribe() {
1435
+ this.#t || this.setEventListener(this.#n);
1436
+ }
1437
+ onUnsubscribe() {
1438
+ this.hasListeners() || (this.#t?.(), this.#t = void 0);
1439
+ }
1440
+ setEventListener(e) {
1441
+ this.#n = e, this.#t?.(), this.#t = e(this.setOnline.bind(this));
1442
+ }
1443
+ setOnline(e) {
1444
+ this.#e !== e && (this.#e = e, this.listeners.forEach((t) => {
1445
+ t(e);
1446
+ }));
1447
+ }
1448
+ isOnline() {
1449
+ return this.#e;
1450
+ }
1451
+ }();
1452
+ //#endregion
1453
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/retryer.js
1454
+ function Ut(e) {
1455
+ return (e ?? "online") === "online" ? Ht.isOnline() : !0;
1456
+ }
1457
+ //#endregion
1458
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/query.js
1459
+ function Wt(e, t) {
1460
+ return {
1461
+ fetchFailureCount: 0,
1462
+ fetchFailureReason: null,
1463
+ fetchStatus: Ut(t.networkMode) ? "fetching" : "paused",
1464
+ ...e === void 0 && {
1465
+ error: null,
1466
+ status: "pending"
1467
+ }
1468
+ };
1469
+ }
1470
+ //#endregion
1471
+ //#region ../../node_modules/.bun/@tanstack+query-core@5.96.1/node_modules/@tanstack/query-core/build/modern/queryObserver.js
1472
+ var Gt = class extends yt {
1473
+ constructor(e, t) {
1474
+ super(), this.options = t, this.#e = e, this.#s = null, this.#o = Rt(), this.bindMethods(), this.setOptions(t);
1475
+ }
1476
+ #e;
1477
+ #t = void 0;
1478
+ #n = void 0;
1479
+ #r = void 0;
1480
+ #i;
1481
+ #a;
1482
+ #o;
1483
+ #s;
1484
+ #c;
1485
+ #l;
1486
+ #u;
1487
+ #d;
1488
+ #f;
1489
+ #p;
1490
+ #m = /* @__PURE__ */ new Set();
1491
+ bindMethods() {
1492
+ this.refetch = this.refetch.bind(this);
1493
+ }
1494
+ onSubscribe() {
1495
+ this.listeners.size === 1 && (this.#t.addObserver(this), qt(this.#t, this.options) ? this.#h() : this.updateResult(), this.#y());
1496
+ }
1497
+ onUnsubscribe() {
1498
+ this.hasListeners() || this.destroy();
1499
+ }
1500
+ shouldFetchOnReconnect() {
1501
+ return Jt(this.#t, this.options, this.options.refetchOnReconnect);
1502
+ }
1503
+ shouldFetchOnWindowFocus() {
1504
+ return Jt(this.#t, this.options, this.options.refetchOnWindowFocus);
1505
+ }
1506
+ destroy() {
1507
+ this.listeners = /* @__PURE__ */ new Set(), this.#b(), this.#x(), this.#t.removeObserver(this);
1508
+ }
1509
+ setOptions(e) {
1510
+ let t = this.options, n = this.#t;
1511
+ 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");
1512
+ this.#S(), this.#t.setOptions(this.options), t._defaulted && !jt(this.options, t) && this.#e.getQueryCache().notify({
1513
+ type: "observerOptionsUpdated",
1514
+ query: this.#t,
1515
+ observer: this
1516
+ });
1517
+ let r = this.hasListeners();
1518
+ r && Yt(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) || Ot(this.options.staleTime, this.#t) !== Ot(t.staleTime, this.#t)) && this.#g();
1519
+ let i = this.#_();
1520
+ r && (this.#t !== n || Q(this.options.enabled, this.#t) !== Q(t.enabled, this.#t) || i !== this.#p) && this.#v(i);
1521
+ }
1522
+ getOptimisticResult(e) {
1523
+ let t = this.#e.getQueryCache().build(this.#e, e), n = this.createResult(t, e);
1524
+ return Zt(this, n) && (this.#r = n, this.#a = this.options, this.#i = this.#t.state), n;
1525
+ }
1526
+ getCurrentResult() {
1527
+ return this.#r;
1528
+ }
1529
+ trackResult(e, t) {
1530
+ 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(/* @__PURE__ */ Error("experimental_prefetchInRender feature flag is not enabled"))), Reflect.get(e, n)) });
1531
+ }
1532
+ trackProp(e) {
1533
+ this.#m.add(e);
1534
+ }
1535
+ getCurrentQuery() {
1536
+ return this.#t;
1537
+ }
1538
+ refetch({ ...e } = {}) {
1539
+ return this.fetch({ ...e });
1540
+ }
1541
+ fetchOptimistic(e) {
1542
+ let t = this.#e.defaultQueryOptions(e), n = this.#e.getQueryCache().build(this.#e, t);
1543
+ return n.fetch().then(() => this.createResult(n, t));
1544
+ }
1545
+ fetch(e) {
1546
+ return this.#h({
1547
+ ...e,
1548
+ cancelRefetch: e.cancelRefetch ?? !0
1549
+ }).then(() => (this.updateResult(), this.#r));
1550
+ }
1551
+ #h(e) {
1552
+ this.#S();
1553
+ let t = this.#t.fetch(this.options, e);
1554
+ return e?.throwOnError || (t = t.catch(Tt)), t;
1555
+ }
1556
+ #g() {
1557
+ this.#b();
1558
+ let e = Ot(this.options.staleTime, this.#t);
1559
+ if (Lt.isServer() || this.#r.isStale || !Et(e)) return;
1560
+ let t = Dt(this.#r.dataUpdatedAt, e) + 1;
1561
+ this.#d = St.setTimeout(() => {
1562
+ this.#r.isStale || this.updateResult();
1563
+ }, t);
1564
+ }
1565
+ #_() {
1566
+ return (typeof this.options.refetchInterval == "function" ? this.options.refetchInterval(this.#t) : this.options.refetchInterval) ?? !1;
1567
+ }
1568
+ #v(e) {
1569
+ this.#x(), this.#p = e, !(Lt.isServer() || Q(this.options.enabled, this.#t) === !1 || !Et(this.#p) || this.#p === 0) && (this.#f = St.setInterval(() => {
1570
+ (this.options.refetchIntervalInBackground || bt.isFocused()) && this.#h();
1571
+ }, this.#p));
1572
+ }
1573
+ #y() {
1574
+ this.#g(), this.#v(this.#_());
1575
+ }
1576
+ #b() {
1577
+ this.#d &&= (St.clearTimeout(this.#d), void 0);
1578
+ }
1579
+ #x() {
1580
+ this.#f &&= (St.clearInterval(this.#f), void 0);
1581
+ }
1582
+ createResult(e, t) {
1583
+ 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;
1584
+ if (t._optimisticResults) {
1585
+ let i = this.hasListeners(), a = !i && qt(e, t), o = i && Yt(e, n, t, r);
1586
+ (a || o) && (l = {
1587
+ ...l,
1588
+ ...Wt(c.data, e.options)
1589
+ }), t._optimisticResults === "isRestoring" && (l.fetchStatus = "idle");
1590
+ }
1591
+ let { error: f, errorUpdatedAt: p, status: m } = l;
1592
+ d = l.data;
1593
+ let h = !1;
1594
+ if (t.placeholderData !== void 0 && d === void 0 && m === "pending") {
1595
+ let e;
1596
+ 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 = Ft(i?.data, e, t), u = !0);
1597
+ }
1598
+ if (t.select && d !== void 0 && !h) if (i && d === a?.data && t.select === this.#c) d = this.#l;
1599
+ else try {
1600
+ this.#c = t.select, d = t.select(d), d = Ft(i?.data, d, t), this.#l = d, this.#s = null;
1601
+ } catch (e) {
1602
+ this.#s = e;
1603
+ }
1604
+ this.#s && (f = this.#s, d = this.#l, p = Date.now(), m = "error");
1605
+ let g = l.fetchStatus === "fetching", _ = m === "pending", v = m === "error", y = _ && g, b = d !== void 0, x = {
1606
+ status: m,
1607
+ fetchStatus: l.fetchStatus,
1608
+ isPending: _,
1609
+ isSuccess: m === "success",
1610
+ isError: v,
1611
+ isInitialLoading: y,
1612
+ isLoading: y,
1613
+ data: d,
1614
+ dataUpdatedAt: l.dataUpdatedAt,
1615
+ error: f,
1616
+ errorUpdatedAt: p,
1617
+ failureCount: l.fetchFailureCount,
1618
+ failureReason: l.fetchFailureReason,
1619
+ errorUpdateCount: l.errorUpdateCount,
1620
+ isFetched: e.isFetched(),
1621
+ isFetchedAfterMount: l.dataUpdateCount > s.dataUpdateCount || l.errorUpdateCount > s.errorUpdateCount,
1622
+ isFetching: g,
1623
+ isRefetching: g && !_,
1624
+ isLoadingError: v && !b,
1625
+ isPaused: l.fetchStatus === "paused",
1626
+ isPlaceholderData: u,
1627
+ isRefetchError: v && b,
1628
+ isStale: Xt(e, t),
1629
+ refetch: this.refetch,
1630
+ promise: this.#o,
1631
+ isEnabled: Q(t.enabled, e) !== !1
1632
+ };
1633
+ if (this.options.experimental_prefetchInRender) {
1634
+ let t = x.data !== void 0, r = x.status === "error" && !t, i = (e) => {
1635
+ r ? e.reject(x.error) : t && e.resolve(x.data);
1636
+ }, a = () => {
1637
+ i(this.#o = x.promise = Rt());
1638
+ }, o = this.#o;
1639
+ switch (o.status) {
1640
+ case "pending":
1641
+ e.queryHash === n.queryHash && i(o);
1642
+ break;
1643
+ case "fulfilled":
1644
+ (r || x.data !== o.value) && a();
1645
+ break;
1646
+ case "rejected":
1647
+ (!r || x.error !== o.reason) && a();
1648
+ break;
1649
+ }
1650
+ }
1651
+ return x;
1652
+ }
1653
+ updateResult() {
1654
+ let e = this.#r, t = this.createResult(this.#t, this.options);
1655
+ this.#i = this.#t.state, this.#a = this.options, this.#i.data !== void 0 && (this.#u = this.#t), !jt(t, e) && (this.#r = t, this.#C({ listeners: (() => {
1656
+ if (!e) return !0;
1657
+ let { notifyOnChangeProps: t } = this.options, n = typeof t == "function" ? t() : t;
1658
+ if (n === "all" || !n && !this.#m.size) return !0;
1659
+ let r = new Set(n ?? this.#m);
1660
+ return this.options.throwOnError && r.add("error"), Object.keys(this.#r).some((t) => {
1661
+ let n = t;
1662
+ return this.#r[n] !== e[n] && r.has(n);
1663
+ });
1664
+ })() }));
1665
+ }
1666
+ #S() {
1667
+ let e = this.#e.getQueryCache().build(this.#e, this.options);
1668
+ if (e === this.#t) return;
1669
+ let t = this.#t;
1670
+ this.#t = e, this.#n = e.state, this.hasListeners() && (t?.removeObserver(this), e.addObserver(this));
1671
+ }
1672
+ onQueryUpdate() {
1673
+ this.updateResult(), this.hasListeners() && this.#y();
1674
+ }
1675
+ #C(e) {
1676
+ Vt.batch(() => {
1677
+ e.listeners && this.listeners.forEach((e) => {
1678
+ e(this.#r);
1679
+ }), this.#e.getQueryCache().notify({
1680
+ query: this.#t,
1681
+ type: "observerResultsUpdated"
1682
+ });
1683
+ });
1684
+ }
1685
+ };
1686
+ function Kt(e, t) {
1687
+ return Q(t.enabled, e) !== !1 && e.state.data === void 0 && !(e.state.status === "error" && t.retryOnMount === !1);
1688
+ }
1689
+ function qt(e, t) {
1690
+ return Kt(e, t) || e.state.data !== void 0 && Jt(e, t, t.refetchOnMount);
1691
+ }
1692
+ function Jt(e, t, n) {
1693
+ if (Q(t.enabled, e) !== !1 && Ot(t.staleTime, e) !== "static") {
1694
+ let r = typeof n == "function" ? n(e) : n;
1695
+ return r === "always" || r !== !1 && Xt(e, t);
1696
+ }
1697
+ return !1;
1698
+ }
1699
+ function Yt(e, t, n, r) {
1700
+ return (e !== t || Q(r.enabled, e) === !1) && (!n.suspense || e.state.status !== "error") && Xt(e, n);
1701
+ }
1702
+ function Xt(e, t) {
1703
+ return Q(t.enabled, e) !== !1 && e.isStaleByTime(Ot(t.staleTime, e));
1704
+ }
1705
+ function Zt(e, t) {
1706
+ return !jt(e.getCurrentResult(), t);
1707
+ }
1708
+ //#endregion
1709
+ //#region ../../node_modules/.bun/@tanstack+react-query@5.96.1+b1ab299f0a400331/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js
1710
+ var Qt = V.createContext(void 0), $t = (e) => {
1711
+ let t = V.useContext(Qt);
1712
+ if (e) return e;
1713
+ if (!t) throw Error("No QueryClient set, use QueryClientProvider to set one");
1714
+ return t;
1715
+ }, en = V.createContext(!1), tn = () => V.useContext(en);
1716
+ en.Provider;
1717
+ //#endregion
1718
+ //#region ../../node_modules/.bun/@tanstack+react-query@5.96.1+b1ab299f0a400331/node_modules/@tanstack/react-query/build/modern/QueryErrorResetBoundary.js
1719
+ function nn() {
1720
+ let e = !1;
1721
+ return {
1722
+ clearReset: () => {
1723
+ e = !1;
1724
+ },
1725
+ reset: () => {
1726
+ e = !0;
1727
+ },
1728
+ isReset: () => e
1729
+ };
1730
+ }
1731
+ var rn = V.createContext(nn()), an = () => V.useContext(rn), on = (e, t, n) => {
1732
+ let r = n?.state.error && typeof e.throwOnError == "function" ? It(e.throwOnError, [n.state.error, n]) : e.throwOnError;
1733
+ (e.suspense || e.experimental_prefetchInRender || r) && (t.isReset() || (e.retryOnMount = !1));
1734
+ }, sn = (e) => {
1735
+ V.useEffect(() => {
1736
+ e.clearReset();
1737
+ }, [e]);
1738
+ }, cn = ({ result: e, errorResetBoundary: t, throwOnError: n, query: r, suspense: i }) => e.isError && !t.isReset() && !e.isFetching && r && (i && e.data === void 0 || It(n, [e.error, r])), ln = (e) => {
1739
+ if (e.suspense) {
1740
+ let t = 1e3, n = (e) => e === "static" ? e : Math.max(e ?? t, t), r = e.staleTime;
1741
+ e.staleTime = typeof r == "function" ? (...e) => n(r(...e)) : n(r), typeof e.gcTime == "number" && (e.gcTime = Math.max(e.gcTime, t));
1742
+ }
1743
+ }, un = (e, t) => e.isLoading && e.isFetching && !t, dn = (e, t) => e?.suspense && t.isPending, fn = (e, t, n) => t.fetchOptimistic(e).catch(() => {
1744
+ n.clearReset();
1745
+ });
1746
+ //#endregion
1747
+ //#region ../../node_modules/.bun/@tanstack+react-query@5.96.1+b1ab299f0a400331/node_modules/@tanstack/react-query/build/modern/useBaseQuery.js
1748
+ function pn(e, t, n) {
1749
+ 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");
1750
+ let r = tn(), i = an(), a = $t(n), o = a.defaultQueryOptions(e);
1751
+ a.getDefaultOptions().queries?._experimental_beforeQuery?.(o);
1752
+ let s = a.getQueryCache().get(o.queryHash);
1753
+ 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", ln(o), on(o, i, s), sn(i);
1754
+ let c = !a.getQueryCache().get(o.queryHash), [l] = V.useState(() => new t(a, o)), u = l.getOptimisticResult(o), d = !r && e.subscribed !== !1;
1755
+ if (V.useSyncExternalStore(V.useCallback((e) => {
1756
+ let t = d ? l.subscribe(Vt.batchCalls(e)) : Tt;
1757
+ return l.updateResult(), t;
1758
+ }, [l, d]), () => l.getCurrentResult(), () => l.getCurrentResult()), V.useEffect(() => {
1759
+ l.setOptions(o);
1760
+ }, [o, l]), dn(o, u)) throw fn(o, l, i);
1761
+ if (cn({
1762
+ result: u,
1763
+ errorResetBoundary: i,
1764
+ throwOnError: o.throwOnError,
1765
+ query: s,
1766
+ suspense: o.suspense
1767
+ })) throw u.error;
1768
+ return a.getDefaultOptions().queries?._experimental_afterQuery?.(o, u), o.experimental_prefetchInRender && !Lt.isServer() && un(u, r) && (c ? fn(o, l, i) : s?.promise)?.catch(Tt).finally(() => {
1769
+ l.updateResult();
1770
+ }), o.notifyOnChangeProps ? u : l.trackResult(u);
1771
+ }
1772
+ //#endregion
1773
+ //#region ../../node_modules/.bun/@tanstack+react-query@5.96.1+b1ab299f0a400331/node_modules/@tanstack/react-query/build/modern/useQuery.js
1774
+ function mn(e, t) {
1775
+ return pn(e, Gt, t);
1776
+ }
1777
+ //#endregion
1778
+ //#region src/hooks/injectFontLink.ts
1779
+ var hn = (e) => {
1780
+ let t = Z[e];
1781
+ if (!t || document.head.querySelector(`link[data-font="${e}"]`)) return;
1782
+ let n = document.createElement("link");
1783
+ n.rel = "stylesheet", n.href = t, n.setAttribute("data-font", e), document.head.appendChild(n);
1784
+ }, gn = async (e) => {
1785
+ let t = Z[e];
1786
+ if (!t) throw Error(`Font "${e}" not found in Google Fonts`);
1787
+ let n = await fetch(t);
1788
+ if (!n.ok) throw Error(`Failed to download font: HTTP ${n.status}`);
1789
+ return await n.text(), hn(e), {
1790
+ font: e,
1791
+ success: !0
1792
+ };
1793
+ }, _n = (e) => {
1794
+ let t = $t(), n = X((e) => e.markFontDownloaded), r = X((e) => e.downloadedFonts), i = e ? r.includes(e) : !1, a = e && !i && Z[e], o = mn({
1795
+ queryKey: ["font", e ?? ""],
1796
+ queryFn: async ({ queryKey: e }) => {
1797
+ let [, t] = e;
1798
+ if (!t || !Z[t]) throw Error(`Font "${t}" not available`);
1799
+ let r = await gn(t);
1800
+ return r.success && n(t), r;
1801
+ },
1802
+ enabled: !!a,
1803
+ staleTime: Infinity,
1804
+ gcTime: Infinity,
1805
+ retry: !1
1806
+ }), s = o.isFetching ? {
1807
+ status: "downloading",
1808
+ loaded: 0,
1809
+ total: null,
1810
+ percent: null,
1811
+ error: null
1812
+ } : o.isError ? {
1813
+ status: "error",
1814
+ loaded: 0,
1815
+ total: null,
1816
+ percent: null,
1817
+ error: o.error?.message ?? "Unknown error"
1818
+ } : o.isSuccess ? {
1819
+ status: "done",
1820
+ loaded: 0,
1821
+ total: 0,
1822
+ percent: 100,
1823
+ error: null
1824
+ } : {
1825
+ status: "idle",
1826
+ loaded: 0,
1827
+ total: null,
1828
+ percent: null,
1829
+ error: null
1830
+ }, c = () => {
1831
+ e && t.removeQueries({ queryKey: ["font", e] });
1832
+ };
1833
+ return {
1834
+ ...o,
1835
+ progress: s,
1836
+ isDownloaded: i,
1837
+ reset: c
1838
+ };
1839
+ }, vn = ue[1], yn = ({ status: e, error: t, onDownload: n }) => {
1840
+ let { t: r } = z("settings");
1841
+ return t ? /* @__PURE__ */ K(Me, {
1842
+ color: vn,
1843
+ variant: "filled",
1844
+ size: "sm",
1845
+ "aria-label": `Download error: ${t}`,
1846
+ children: r("common:status.error")
1847
+ }) : /* @__PURE__ */ K(I, {
1848
+ size: "xs",
1849
+ variant: "light",
1850
+ onClick: n,
1851
+ loading: e === "downloading",
1852
+ "aria-label": r("font.download"),
1853
+ children: r("font.download")
1854
+ });
1855
+ }, bn = () => {
1856
+ let { t: e } = z("settings"), t = X((e) => e.font), n = X((e) => e.setFont), r = X((e) => e.fontSize), i = X((e) => e.setFontSize), a = X((e) => e.downloadedFonts), o = X((e) => e.markFontDownloaded), [s, c] = G(null), l = _n(s);
1857
+ U(() => {
1858
+ l.isSuccess && l.data?.success && s && (a.includes(s) || o(s));
1859
+ }, [
1860
+ l.isSuccess,
1861
+ l.data,
1862
+ s,
1863
+ a,
1864
+ o
1865
+ ]);
1866
+ let u = H((e) => {
1867
+ c(e);
1868
+ }, []), d = (e) => a.includes(e) ? "done" : s === e ? l.progress.status : "idle", f = (e) => s === e ? l.progress.error : null, p = H((e) => {
1869
+ let t = e.trim();
1870
+ t && (Z[t] = `https://fonts.googleapis.com/css2?family=${t.replace(/\s+/g, "+")}&display=swap`, c(t));
1871
+ }, []), m = dt.map((e) => e.value), h = a.filter((e) => !m.includes(e));
1872
+ return /* @__PURE__ */ q(R, {
1873
+ gap: "md",
1874
+ p: "md",
1875
+ children: [
1876
+ /* @__PURE__ */ K(F, {
1877
+ fw: 600,
1878
+ size: "lg",
1879
+ children: e("font.title")
1880
+ }),
1881
+ /* @__PURE__ */ K(F, {
1882
+ size: "sm",
1883
+ c: "dimmed",
1884
+ children: e("font.description")
1885
+ }),
1886
+ /* @__PURE__ */ K(J.Group, {
1887
+ value: t,
1888
+ onChange: n,
1889
+ "aria-label": e("font.selectionAria", { defaultValue: "Font selection" }),
1890
+ children: /* @__PURE__ */ q(R, {
1891
+ gap: "xs",
1892
+ children: [dt.map((e) => {
1893
+ let t = !!Z[e.value], n = a.includes(e.value), r = d(e.value), i = f(e.value), o = !t || n || r === "done";
1894
+ return /* @__PURE__ */ K(N, {
1895
+ p: "sm",
1896
+ withBorder: !0,
1897
+ radius: "md",
1898
+ children: /* @__PURE__ */ q(R, {
1899
+ gap: "xs",
1900
+ children: [/* @__PURE__ */ q(P, {
1901
+ justify: "space-between",
1902
+ children: [/* @__PURE__ */ K(J, {
1903
+ value: e.value,
1904
+ label: e.label,
1905
+ "aria-label": e.label,
1906
+ disabled: !o
1907
+ }), /* @__PURE__ */ q(P, {
1908
+ gap: "xs",
1909
+ align: "center",
1910
+ children: [o && /* @__PURE__ */ K(F, {
1911
+ size: "sm",
1912
+ c: "dimmed",
1913
+ style: { fontFamily: e.stack },
1914
+ children: "AaBbCcDd"
1915
+ }), t && /* @__PURE__ */ K(yn, {
1916
+ fontLabel: e.label,
1917
+ status: r,
1918
+ error: i,
1919
+ onDownload: () => u(e.value),
1920
+ isDownloaded: n
1921
+ })]
1922
+ })]
1923
+ }), t && r === "downloading" && /* @__PURE__ */ K(te, { state: l.progress })]
1924
+ })
1925
+ }, e.value);
1926
+ }), h.map((e) => /* @__PURE__ */ K(N, {
1927
+ p: "sm",
1928
+ withBorder: !0,
1929
+ radius: "md",
1930
+ children: /* @__PURE__ */ q(P, {
1931
+ justify: "space-between",
1932
+ children: [/* @__PURE__ */ K(J, {
1933
+ value: e,
1934
+ label: e,
1935
+ "aria-label": e
1936
+ }), /* @__PURE__ */ K(F, {
1937
+ size: "sm",
1938
+ c: "dimmed",
1939
+ style: { fontFamily: `"${e}"` },
1940
+ children: "AaBbCcDd"
1941
+ })]
1942
+ })
1943
+ }, e))]
1944
+ })
1945
+ }),
1946
+ /* @__PURE__ */ K(N, {
1947
+ p: "sm",
1948
+ withBorder: !0,
1949
+ radius: "md",
1950
+ children: /* @__PURE__ */ q(R, {
1951
+ gap: "xs",
1952
+ children: [/* @__PURE__ */ q(P, {
1953
+ justify: "space-between",
1954
+ children: [/* @__PURE__ */ K(F, {
1955
+ size: "sm",
1956
+ fw: 500,
1957
+ children: e("font.fontSize")
1958
+ }), /* @__PURE__ */ q(F, {
1959
+ size: "sm",
1960
+ c: "dimmed",
1961
+ children: [r, "px"]
1962
+ })]
1963
+ }), /* @__PURE__ */ K(k, {
1964
+ value: r,
1965
+ onChange: i,
1966
+ min: 10,
1967
+ max: 24,
1968
+ step: 1,
1969
+ marks: [
1970
+ { value: 10 },
1971
+ { value: 14 },
1972
+ { value: 18 },
1973
+ { value: 20 },
1974
+ { value: 24 }
1975
+ ],
1976
+ "aria-label": e("font.fontSizeAria", { defaultValue: "Font size" })
1977
+ })]
1978
+ })
1979
+ }),
1980
+ /* @__PURE__ */ K(xn, {
1981
+ onDownload: p,
1982
+ activeDownload: s,
1983
+ fontDownload: l
1984
+ })
1985
+ ]
1986
+ });
1987
+ }, xn = ({ onDownload: e, activeDownload: t, fontDownload: n }) => {
1988
+ let { t: r } = z("settings"), [i, a] = G(""), o = t === i.trim(), s = o ? n.progress.status : "idle", c = o && n.progress.status === "error", l = H((e) => {
1989
+ a(e), c && n.reset?.();
1990
+ }, [c, n]), u = H(() => {
1991
+ e(i);
1992
+ }, [i, e]), d = o && s === "done";
1993
+ return /* @__PURE__ */ K(N, {
1994
+ p: "sm",
1995
+ withBorder: !0,
1996
+ radius: "md",
1997
+ children: /* @__PURE__ */ q(R, {
1998
+ gap: "xs",
1999
+ children: [
2000
+ /* @__PURE__ */ q(F, {
2001
+ size: "sm",
2002
+ fw: 500,
2003
+ children: [
2004
+ r("font.downloadByName"),
2005
+ " ",
2006
+ /* @__PURE__ */ K("a", {
2007
+ href: "https://fonts.google.com/",
2008
+ target: "_blank",
2009
+ rel: "noreferrer",
2010
+ children: r("font.fromGoogleFonts")
2011
+ })
2012
+ ]
2013
+ }),
2014
+ /* @__PURE__ */ q(P, {
2015
+ gap: "xs",
2016
+ align: "flex-start",
2017
+ children: [/* @__PURE__ */ K(C, {
2018
+ placeholder: r("font.namePlaceholder", { defaultValue: "e.g. Open Sans" }),
2019
+ value: i,
2020
+ onChange: (e) => l(e.currentTarget.value),
2021
+ style: { flex: 1 },
2022
+ "aria-label": r("font.customNameAria", { defaultValue: "Custom font name" }),
2023
+ error: c ? r("font.downloadError") : void 0
2024
+ }), /* @__PURE__ */ K(I, {
2025
+ onClick: u,
2026
+ disabled: !i.trim() || s === "downloading",
2027
+ loading: s === "downloading",
2028
+ "aria-label": r("font.downloadCustomAria", { defaultValue: "Download custom font" }),
2029
+ style: { marginTop: c ? 0 : void 0 },
2030
+ children: r("font.download")
2031
+ })]
2032
+ }),
2033
+ s === "downloading" && /* @__PURE__ */ K(te, { state: n.progress }),
2034
+ d && /* @__PURE__ */ K(F, {
2035
+ size: "xs",
2036
+ c: "dimmed",
2037
+ children: r("font.downloadSuccess")
2038
+ })
2039
+ ]
2040
+ })
2041
+ });
2042
+ }, Sn = ["en", "es"], Cn = "en", wn = {
2043
+ en: "English",
2044
+ es: "Español"
2045
+ }, Tn = () => {
2046
+ let { t: e } = z("settings"), t = X((e) => e.language), n = X((e) => e.setLanguage), r = H((e) => {
2047
+ n(e);
2048
+ }, [n]);
2049
+ return /* @__PURE__ */ K(mt, {
2050
+ title: e("language.title"),
2051
+ description: e("language.description"),
2052
+ children: /* @__PURE__ */ K(R, {
2053
+ gap: "xs",
2054
+ children: Sn.map((e) => /* @__PURE__ */ K(M, {
2055
+ onClick: () => r(e),
2056
+ "aria-label": wn[e],
2057
+ "aria-pressed": e === t,
2058
+ style: {
2059
+ padding: "12px 16px",
2060
+ borderRadius: 8,
2061
+ width: "100%",
2062
+ background: e === t ? "var(--mantine-primary-color-light)" : "transparent",
2063
+ border: e === t ? "1px solid var(--mantine-primary-color-filled)" : "1px solid transparent",
2064
+ transition: "all 0.15s ease",
2065
+ cursor: "pointer"
2066
+ },
2067
+ children: /* @__PURE__ */ q(P, {
2068
+ gap: "sm",
2069
+ children: [/* @__PURE__ */ K(ut, {
2070
+ lang: e,
2071
+ size: 24
2072
+ }), /* @__PURE__ */ K(F, {
2073
+ fw: e === t ? 600 : 400,
2074
+ children: wn[e]
2075
+ })]
2076
+ })
2077
+ }, e))
2078
+ })
2079
+ });
2080
+ };
2081
+ //#endregion
2082
+ //#region src/utils/clearBrowserData.ts
2083
+ async function En(e) {
2084
+ let t = typeof globalThis < "u" ? globalThis : typeof window < "u" ? window : void 0;
2085
+ if (t) {
2086
+ if (!e?.keepServiceWorker && "serviceWorker" in t.navigator) {
2087
+ let e = await t.navigator.serviceWorker.getRegistrations();
2088
+ for (let t of e) await t.unregister();
2089
+ }
2090
+ if ("caches" in t) {
2091
+ let e = await t.caches.keys();
2092
+ for (let n of e) await t.caches.delete(n);
2093
+ }
2094
+ if (!e?.keepIndexedDB && "indexedDB" in t) {
2095
+ let e = await t.indexedDB.databases();
2096
+ for (let n of e) n.name && t.indexedDB.deleteDatabase(n.name);
2097
+ }
2098
+ !e?.keepLocalStorage && "localStorage" in t && t.localStorage.clear(), !e?.keepSessionStorage && "sessionStorage" in t && t.sessionStorage.clear();
2099
+ }
2100
+ }
2101
+ //#endregion
2102
+ //#region src/utils/resetDockerWorkspace.ts
2103
+ async function Dn() {
2104
+ ne() && (await fetch("/api/fs/reset", { method: "POST" }), await fetch("/api/fs/seed", { method: "POST" }));
2105
+ }
2106
+ //#endregion
2107
+ //#region src/components/Apps/SettingsApp/sections/ResetSettings.tsx
2108
+ var On = () => {
2109
+ let { t: e } = z("settings"), [t, n] = G(!1), r = H(() => {
2110
+ n(!0);
2111
+ }, []), i = H(() => {
2112
+ n(!1);
2113
+ }, []), a = H(async () => {
2114
+ await Dn(), await En(), window.location.reload();
2115
+ }, []), o = H(async () => {
2116
+ await Dn(), await En({ keepIndexedDB: !0 }), window.location.reload();
2117
+ }, []);
2118
+ return /* @__PURE__ */ q(mt, {
2119
+ title: e("reset.title"),
2120
+ description: e("reset.description"),
2121
+ children: [/* @__PURE__ */ K(I, {
2122
+ color: "red",
2123
+ onClick: r,
2124
+ style: { alignSelf: "flex-start" },
2125
+ children: e("reset.resetButton")
2126
+ }), t && /* @__PURE__ */ K(p, {
2127
+ style: {
2128
+ position: "fixed",
2129
+ top: 0,
2130
+ left: 0,
2131
+ right: 0,
2132
+ bottom: 0,
2133
+ background: "rgba(0,0,0,0.5)",
2134
+ display: "flex",
2135
+ alignItems: "center",
2136
+ justifyContent: "center",
2137
+ zIndex: 1e3
2138
+ },
2139
+ role: "dialog",
2140
+ "aria-label": "Confirm reset",
2141
+ children: /* @__PURE__ */ K(p, {
2142
+ style: {
2143
+ background: "var(--mantine-color-default)",
2144
+ borderRadius: 8,
2145
+ padding: 24,
2146
+ maxWidth: 400,
2147
+ width: "100%"
2148
+ },
2149
+ children: /* @__PURE__ */ q(R, {
2150
+ gap: "md",
2151
+ children: [
2152
+ /* @__PURE__ */ K(F, {
2153
+ fw: 600,
2154
+ size: "lg",
2155
+ ta: "center",
2156
+ children: e("reset.modalTitle")
2157
+ }),
2158
+ /* @__PURE__ */ K(F, {
2159
+ size: "sm",
2160
+ c: "dimmed",
2161
+ ta: "center",
2162
+ children: e("reset.modalDescription")
2163
+ }),
2164
+ /* @__PURE__ */ q(P, {
2165
+ justify: "center",
2166
+ gap: "xs",
2167
+ mt: "md",
2168
+ children: [
2169
+ /* @__PURE__ */ K(I, {
2170
+ variant: "default",
2171
+ onClick: i,
2172
+ children: e("reset.goBack")
2173
+ }),
2174
+ /* @__PURE__ */ K(I, {
2175
+ color: "blue",
2176
+ onClick: o,
2177
+ children: e("reset.keepFiles")
2178
+ }),
2179
+ /* @__PURE__ */ K(I, {
2180
+ color: "red",
2181
+ onClick: a,
2182
+ children: e("reset.burnEverything")
2183
+ })
2184
+ ]
2185
+ })
2186
+ ]
2187
+ })
2188
+ })
2189
+ })]
2190
+ });
2191
+ }, $ = {
2192
+ root: "_root_77epl_1",
2193
+ sidebar: "_sidebar_77epl_8",
2194
+ navItem: "_navItem_77epl_16",
2195
+ content: "_content_77epl_41",
2196
+ overviewPadding: "_overviewPadding_77epl_47",
2197
+ sectionCard: "_sectionCard_77epl_51",
2198
+ toolbar: "_toolbar_77epl_60",
2199
+ dirtyIndicator: "_dirtyIndicator_77epl_70",
2200
+ versionFooter: "_versionFooter_77epl_77"
2201
+ }, kn = {
2202
+ name: "Francisco Núñez Palomares",
2203
+ title: "Fullstack Developer & DevOps",
2204
+ email: "frannunpal@gmail.com",
2205
+ phone: "+34 600 275 210",
2206
+ location: "Spain",
2207
+ linkedin: "https://www.linkedin.com/in/francisco-núñez-palomares-74a484171/",
2208
+ github: "https://github.com/frannunpal",
2209
+ cvUrls: {
2210
+ en: "Desktop/CV_2026_English.pdf",
2211
+ es: "Desktop/CV 2026.pdf"
2212
+ }
2213
+ }, An = "0.4.0", jn = () => An, Mn = {
2214
+ wallpaper: gt,
2215
+ appearance: _t,
2216
+ launcher: vt,
2217
+ font: bn,
2218
+ language: Tn,
2219
+ reset: On
2220
+ }, Nn = ({ window: e, notifyReady: t }) => {
2221
+ let { t: n } = z("settings"), [r, i] = G(null), [a, o] = G(!1), s = oe((e) => e.windows), c = e?.id ?? s.find((e) => e.content === "settings")?.id, l = X((e) => e.wallpaper), u = X((e) => e.wallpaperModule), d = X((e) => e.theme), f = X((e) => e.font), p = X((e) => e.fontSize), m = X((e) => e.launcherIcon), g = X((e) => e.customThemeColors), _ = X((e) => e.animationDuration), v = X((e) => e.setWallpaper), y = X((e) => e.setWallpaperModule), b = X((e) => e.setFont), x = X((e) => e.setFontSize), S = X((e) => e.setLauncherIcon), C = X((e) => e.setThemeMode), w = X((e) => e.setCustomThemeColors), T = X((e) => e.setThemeAutomatic), E = X((e) => e.setAnimationDuration), D = W(null);
2222
+ U(() => {
2223
+ D.current === null && (D.current = {
2224
+ wallpaper: l,
2225
+ wallpaperModule: u,
2226
+ themeMode: d.mode,
2227
+ font: f,
2228
+ fontSize: p,
2229
+ launcherIcon: m,
2230
+ customThemeColors: g,
2231
+ animationDuration: _
2232
+ });
2233
+ }, [
2234
+ l,
2235
+ u,
2236
+ d.mode,
2237
+ f,
2238
+ p,
2239
+ m,
2240
+ g,
2241
+ _
2242
+ ]), U(() => {
2243
+ if (!D.current) return;
2244
+ let e = {
2245
+ wallpaper: l,
2246
+ wallpaperModule: u,
2247
+ themeMode: d.mode,
2248
+ font: f,
2249
+ fontSize: p,
2250
+ launcherIcon: m,
2251
+ customThemeColors: g,
2252
+ animationDuration: _
2253
+ };
2254
+ o(JSON.stringify(e) !== JSON.stringify(D.current));
2255
+ }, [
2256
+ l,
2257
+ u,
2258
+ d.mode,
2259
+ f,
2260
+ p,
2261
+ m,
2262
+ g,
2263
+ _
2264
+ ]);
2265
+ let O = H(() => {
2266
+ let e = D.current;
2267
+ e && (v(e.wallpaper), y(e.wallpaperModule), b(e.font), x(e.fontSize), S(e.launcherIcon), E(e.animationDuration), e.customThemeColors ? w(e.customThemeColors) : (w(null), T()), C(e.themeMode), o(!1));
2268
+ }, [
2269
+ v,
2270
+ y,
2271
+ b,
2272
+ x,
2273
+ S,
2274
+ E,
2275
+ C,
2276
+ w,
2277
+ T
2278
+ ]);
2279
+ U(() => {
2280
+ c && de.getState().reset(c);
2281
+ }, [c]), U(() => {
2282
+ c && de.getState().setIsDirty(c, a);
2283
+ }, [c, a]), U(() => {
2284
+ t?.({
2285
+ ...e?.contentData ?? {},
2286
+ discard: O
2287
+ });
2288
+ }, [
2289
+ e,
2290
+ t,
2291
+ O
2292
+ ]), ce({
2293
+ isDirtyGetter: H(() => {
2294
+ if (!D.current) return !1;
2295
+ let e = {
2296
+ wallpaper: X.getState().wallpaper,
2297
+ wallpaperModule: X.getState().wallpaperModule,
2298
+ themeMode: X.getState().theme.mode,
2299
+ font: X.getState().font,
2300
+ fontSize: X.getState().fontSize,
2301
+ launcherIcon: X.getState().launcherIcon,
2302
+ customThemeColors: X.getState().customThemeColors,
2303
+ animationDuration: X.getState().animationDuration
2304
+ };
2305
+ return JSON.stringify(e) !== JSON.stringify(D.current);
2306
+ }, []),
2307
+ windowId: c,
2308
+ onDiscard: O,
2309
+ onSave: () => {}
2310
+ });
2311
+ let k = H((e) => {
2312
+ i(e);
2313
+ }, []), A = H(() => {
2314
+ i(null);
2315
+ }, []), ee = H(() => {
2316
+ globalThis.location.href = `mailto:${kn.email}`;
2317
+ }, []), j = r ? Mn[r] : null;
2318
+ return /* @__PURE__ */ q("div", {
2319
+ className: $.root,
2320
+ children: [/* @__PURE__ */ K("aside", {
2321
+ className: $.sidebar,
2322
+ children: /* @__PURE__ */ q("nav", {
2323
+ "aria-label": "Settings sections",
2324
+ children: [/* @__PURE__ */ q("button", {
2325
+ className: $.navItem,
2326
+ "data-active": r === null || void 0,
2327
+ onClick: A,
2328
+ "aria-label": "All Settings",
2329
+ "aria-current": r === null ? "page" : void 0,
2330
+ children: [/* @__PURE__ */ K(L, {
2331
+ fcIcon: "FcList",
2332
+ size: 16
2333
+ }), /* @__PURE__ */ K(F, {
2334
+ size: "xs",
2335
+ ml: 6,
2336
+ truncate: !0,
2337
+ children: n("all")
2338
+ })]
2339
+ }), pt.map((e) => /* @__PURE__ */ q("button", {
2340
+ className: $.navItem,
2341
+ "data-active": r === e.id || void 0,
2342
+ onClick: () => k(e.id),
2343
+ "aria-label": e.label,
2344
+ "aria-current": r === e.id ? "page" : void 0,
2345
+ children: [/* @__PURE__ */ K(L, {
2346
+ fcIcon: e.fcIcon,
2347
+ size: 16
2348
+ }), /* @__PURE__ */ K(F, {
2349
+ size: "xs",
2350
+ ml: 6,
2351
+ truncate: !0,
2352
+ children: n(`sections.${e.id}.label`)
2353
+ })]
2354
+ }, e.id))]
2355
+ })
2356
+ }), /* @__PURE__ */ K("main", {
2357
+ className: $.content,
2358
+ children: j ? /* @__PURE__ */ K(j, {}) : /* @__PURE__ */ q(R, {
2359
+ className: $.overviewPadding,
2360
+ h: "100%",
2361
+ justify: "space-between",
2362
+ gap: 0,
2363
+ children: [
2364
+ /* @__PURE__ */ q("div", { children: [/* @__PURE__ */ K(F, {
2365
+ fw: 500,
2366
+ mb: "md",
2367
+ size: "sm",
2368
+ c: "dimmed",
2369
+ children: n("all")
2370
+ }), /* @__PURE__ */ K(h, {
2371
+ cols: 2,
2372
+ spacing: "sm",
2373
+ children: pt.map((e) => /* @__PURE__ */ K(re, {
2374
+ withBorder: !0,
2375
+ padding: "md",
2376
+ radius: "md",
2377
+ className: $.sectionCard,
2378
+ onClick: () => k(e.id),
2379
+ role: "button",
2380
+ "aria-label": `Open ${e.label} settings`,
2381
+ children: /* @__PURE__ */ q(R, {
2382
+ gap: 6,
2383
+ align: "flex-start",
2384
+ children: [
2385
+ /* @__PURE__ */ K(L, {
2386
+ fcIcon: e.fcIcon,
2387
+ size: 28
2388
+ }),
2389
+ /* @__PURE__ */ K(F, {
2390
+ size: "sm",
2391
+ fw: 500,
2392
+ children: n(`sections.${e.id}.label`)
2393
+ }),
2394
+ /* @__PURE__ */ K(F, {
2395
+ size: "xs",
2396
+ c: "dimmed",
2397
+ children: n(`sections.${e.id}.description`)
2398
+ })
2399
+ ]
2400
+ })
2401
+ }, e.id))
2402
+ })] }),
2403
+ /* @__PURE__ */ K(I, {
2404
+ gradient: {
2405
+ from: "blue",
2406
+ to: "cyan",
2407
+ deg: 90
2408
+ },
2409
+ onClick: ee,
2410
+ children: "FDE: Fran Desktop Environment"
2411
+ }),
2412
+ /* @__PURE__ */ K(F, {
2413
+ size: "xs",
2414
+ c: "dimmed",
2415
+ ta: "center",
2416
+ className: $.versionFooter,
2417
+ children: jn()
2418
+ })
2419
+ ]
2420
+ })
2421
+ })]
2422
+ });
2423
+ };
2424
+ //#endregion
2425
+ export { Sn as a, mt as c, ft as d, Z as f, et as g, X as h, Cn as i, pt as l, rt as m, kn as n, _n as o, ut as p, En as r, hn as s, Nn as t, dt as u };