@fde-desktop/fde-core 0.4.7 → 0.4.9

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 (284) hide show
  1. package/dist/AccordionChevron-DxpOyInK.js +26 -0
  2. package/dist/AccordionChevron-kn5kSrEc.cjs +1 -0
  3. package/dist/ActionIcon-Drh4p6Fv.js +145 -0
  4. package/dist/ActionIcon-alk2zZD6.cjs +1 -0
  5. package/dist/AppEmptyState-BWCUbf-B.cjs +1 -0
  6. package/dist/AppEmptyState-Bxpit0JV.js +49 -0
  7. package/dist/AppIcon-BU7a3ZNH.cjs +1 -0
  8. package/dist/AppIcon-XumS3bIG.js +80 -0
  9. package/dist/AppMenuBar-B9U0n1Vv.cjs +1 -0
  10. package/dist/AppMenuBar-CnIEVjr8.js +2049 -0
  11. package/dist/Box-DSKR_qaa.js +1579 -0
  12. package/dist/Box-zW6Twge8.cjs +1 -0
  13. package/dist/Button-DMlnrqyx.cjs +1 -0
  14. package/dist/Button-wTOTQKxF.js +178 -0
  15. package/dist/CalendarApp-B_e1B1Yn.cjs +1 -0
  16. package/dist/CalendarApp-C-l9D6nd.cjs +1 -0
  17. package/dist/CalendarApp-D0ftTCTG.js +1399 -0
  18. package/dist/Center-CmxXB9ql.js +25 -0
  19. package/dist/Center-DKUE2pER.cjs +1 -0
  20. package/dist/CheckIcon-CZhtJD1O.cjs +1 -0
  21. package/dist/CheckIcon-N5qBqXQJ.js +25 -0
  22. package/dist/CodeServerApp-BOoGwZ7r.cjs +1 -0
  23. package/dist/CodeServerApp-Be3I5EGg.cjs +1 -0
  24. package/dist/CodeServerApp-DW18EZxa.js +150 -0
  25. package/dist/ColorPicker-BCNqi02x.js +997 -0
  26. package/dist/ColorPicker-BrDE7tMO.cjs +1 -0
  27. package/dist/Colors-ClnDxnyA.js +15 -0
  28. package/dist/Colors-zP2AFgU3.cjs +1 -0
  29. package/dist/CreateItemApp-B12M1E_1.cjs +1 -0
  30. package/dist/CreateItemApp-TAAprby3.js +400 -0
  31. package/dist/CreateItemApp-ePB6ujNl.cjs +1 -0
  32. package/dist/DeviceInfoApp-BMF18BGo.cjs +1 -0
  33. package/dist/DeviceInfoApp-DRy0H3aT.cjs +1 -0
  34. package/dist/DeviceInfoApp-lgpwkeRR.js +223 -0
  35. package/dist/DownloadProgress-EoyCaD5O.js +174 -0
  36. package/dist/DownloadProgress-VNdj22U8.cjs +1 -0
  37. package/dist/FileIcon-7JaSR3Gn.js +89 -0
  38. package/dist/FileIcon-CIXopWLv.cjs +1 -0
  39. package/dist/FilePickerApp-DaMgEqKh.js +409 -0
  40. package/dist/FilePickerApp-DjmuSFqa.cjs +1 -0
  41. package/dist/FilesApp-Bp7wfrBZ.cjs +1 -0
  42. package/dist/FilesApp-BpJJRKhi.cjs +1 -0
  43. package/dist/FilesApp-Cj94QG5o.js +225 -0
  44. package/dist/Group-CtBJSfCo.js +48 -0
  45. package/dist/Group-Dsrf6lEK.cjs +1 -0
  46. package/dist/ImageViewerApp-BaLP3gkO.js +69 -0
  47. package/dist/ImageViewerApp-DlHGeB3S.cjs +1 -0
  48. package/dist/ImageViewerApp-DoXd_Swu.cjs +1 -0
  49. package/dist/ImageViewerMenuBar-CabGSi9r.js +87 -0
  50. package/dist/ImageViewerMenuBar-SAI7UNz7.cjs +1 -0
  51. package/dist/ImageViewerMenuBar-_Jr29gii.cjs +1 -0
  52. package/dist/MenuEditApp-BJjlPTOa.cjs +1 -0
  53. package/dist/MenuEditApp-BTRppYnD.js +497 -0
  54. package/dist/MenuEditApp-JPsGT-S3.cjs +1 -0
  55. package/dist/MenuEditMenuBar-BydGkqMw.cjs +1 -0
  56. package/dist/MenuEditMenuBar-DptlwVPQ.cjs +1 -0
  57. package/dist/MenuEditMenuBar-x1IQrHP2.js +60 -0
  58. package/dist/NotesApp-BOcRGO7w.cjs +1 -0
  59. package/dist/NotesApp-CQe7UfBC.js +364 -0
  60. package/dist/NotesApp-OL07JXRE.cjs +1 -0
  61. package/dist/NotesMenuBar-BSI_2Y7p.cjs +1 -0
  62. package/dist/NotesMenuBar-Df6aW85J.cjs +1 -0
  63. package/dist/NotesMenuBar-VhpIe68v.js +62 -0
  64. package/dist/Paper-BX_9odR6.js +30 -0
  65. package/dist/Paper-D8-BaBx2.cjs +1 -0
  66. package/dist/PdfApp-CNEbty5v.cjs +1 -0
  67. package/dist/PdfApp-CVv3ZCaM.cjs +1 -0
  68. package/dist/PdfApp-DL_R9-Nc.js +39 -0
  69. package/dist/PdfMenuBar--E6kDyrT.cjs +1 -0
  70. package/dist/PdfMenuBar-DZCLSOpR.js +39 -0
  71. package/dist/PdfMenuBar-Dj5cJUkg.cjs +1 -0
  72. package/dist/SettingsApp-BlmHuAjT.js +1831 -0
  73. package/dist/SettingsApp-CNvIgf5B.cjs +1 -0
  74. package/dist/SettingsApp-DWxanNE4.cjs +1 -0
  75. package/dist/SettingsMenuBar-CBoOBCfx.cjs +1 -0
  76. package/dist/SettingsMenuBar-DQooFkZN.cjs +1 -0
  77. package/dist/SettingsMenuBar-YWiJHaxq.js +42 -0
  78. package/dist/Slider-BUiHxjKO.cjs +1 -0
  79. package/dist/Slider-t-NcD60t.js +1176 -0
  80. package/dist/Stack-Bp1Ek2Gp.js +34 -0
  81. package/dist/Stack-D4jAiRfc.cjs +1 -0
  82. package/dist/StorybookApp-CDLV_kja.cjs +1 -0
  83. package/dist/StorybookApp-DKwlPCmo.js +10 -0
  84. package/dist/TerminalApp-BCB7i1lR.cjs +1 -0
  85. package/dist/TerminalApp-BYc_gHLe.js +326 -0
  86. package/dist/TerminalApp-Dviz6aP2.cjs +1 -0
  87. package/dist/TerminalMenuBar-D5tPmgR_.js +113 -0
  88. package/dist/TerminalMenuBar-DNshPmCa.cjs +1 -0
  89. package/dist/TerminalMenuBar-HzMSR7XP.cjs +1 -0
  90. package/dist/TextInput-C-JtGWn1.js +981 -0
  91. package/dist/TextInput-CrsmcOip.cjs +1 -0
  92. package/dist/Tooltip-D5Cd9wtz.cjs +1 -0
  93. package/dist/Tooltip-DOeIvhrO.js +1142 -0
  94. package/dist/UnstyledButton-DGaG-e_G.js +25 -0
  95. package/dist/UnstyledButton-DX2pTahr.cjs +1 -0
  96. package/dist/UploaderApp-C6xA5Rrf2.cjs +1 -0
  97. package/dist/UploaderApp-DnHIRxB_.cjs +1 -0
  98. package/dist/UploaderApp-qBfpukR_.js +488 -0
  99. package/dist/VscIcon-CcMdrFoJ.cjs +1 -0
  100. package/dist/VscIcon-DBfVnArE.js +8 -0
  101. package/dist/create-safe-context-Bboj0GWC.cjs +1 -0
  102. package/dist/create-safe-context-XT2cxc14.js +12 -0
  103. package/dist/desktopStore-CZoA9VHO.cjs +1 -0
  104. package/dist/desktopStore-F8bgLqFl.js +1768 -0
  105. package/dist/getRuntime-BFK0-8R1.cjs +1 -0
  106. package/dist/getRuntime-DAPqFH2W.js +63 -0
  107. package/dist/imageViewerStore-BB_tssZR.cjs +1 -0
  108. package/dist/imageViewerStore-C5kWz0o7.js +50 -0
  109. package/dist/index.cjs +1 -5642
  110. package/dist/index.css +2 -9192
  111. package/dist/index.d.ts +2258 -2019
  112. package/dist/index.js +4826 -4798
  113. package/dist/is-element-Bu_JY8Qy.js +7 -0
  114. package/dist/is-element-CdV0xajp.cjs +1 -0
  115. package/dist/menuEditStore-CTeM_dns.cjs +1 -0
  116. package/dist/menuEditStore-Cj1zAwxQ.js +38 -0
  117. package/dist/notesStore-BCEl1D_v.cjs +1 -0
  118. package/dist/notesStore-BPyRTHEc.js +36 -0
  119. package/dist/rolldown-runtime-CAFD8bLK.js +11 -0
  120. package/dist/settingsAppStore-BDQ3ts1y.js +29 -0
  121. package/dist/settingsAppStore-CMBc13VU.cjs +1 -0
  122. package/dist/terminalStore-IWdf4Mm6.js +30 -0
  123. package/dist/terminalStore-iIuyodfK.cjs +1 -0
  124. package/dist/use-merged-ref-BT8_u6vW.js +25 -0
  125. package/dist/use-merged-ref-n9Gw9LNn.cjs +1 -0
  126. package/dist/use-resolved-styles-api-8OXE2oRq.cjs +1 -0
  127. package/dist/use-resolved-styles-api-DNUlJJZf.js +21 -0
  128. package/dist/use-uncontrolled-A4hm9ATM.js +23 -0
  129. package/dist/use-uncontrolled-DDJVQiM_.cjs +1 -0
  130. package/dist/useAdaptiveDimensions-AVDc_qPa.js +40 -0
  131. package/dist/useAdaptiveDimensions-CfITBJ_m.cjs +1 -0
  132. package/dist/useCloseInterceptor-BZd3VILp.js +51 -0
  133. package/dist/useCloseInterceptor-yntBEzNc.cjs +1 -0
  134. package/dist/useDynamicIcon-Bf0t2foA.js +22 -0
  135. package/dist/useDynamicIcon-DJ_il30E.cjs +1 -0
  136. package/dist/useMenuBarUtils-nJIPJGIQ.cjs +1 -0
  137. package/dist/useMenuBarUtils-nmu9yehT.js +6 -0
  138. package/dist/useOpenApp-CBIm7Gzl.js +279 -0
  139. package/dist/useOpenApp-DW4x79Zg.cjs +1 -0
  140. package/dist/useResolvedUrl-BkMPM1fM.cjs +1 -0
  141. package/dist/useResolvedUrl-DQpLqOoL.js +30 -0
  142. package/package.json +7 -3
  143. package/dist/CalendarApp-CHLUCAI7.css +0 -744
  144. package/dist/CalendarApp-K7ZOUZ6C.js +0 -2
  145. package/dist/CalendarApp-OTGEERSS.cjs +0 -8
  146. package/dist/CodeServerApp-5KZGO7HL.css +0 -75
  147. package/dist/CodeServerApp-LUZFCQBI.js +0 -3
  148. package/dist/CodeServerApp-P3TMJPLY.cjs +0 -9
  149. package/dist/CreateItemApp-ESQ42VHH.js +0 -8
  150. package/dist/CreateItemApp-PQB5GTFG.css +0 -107
  151. package/dist/CreateItemApp-RFE3REWZ.cjs +0 -14
  152. package/dist/DeviceInfoApp-XNIS6ZY6.js +0 -5
  153. package/dist/DeviceInfoApp-ZNLQNOKI.cjs +0 -11
  154. package/dist/DeviceInfoApp-ZSMRSITP.css +0 -7
  155. package/dist/FilesApp-4GEU64QN.js +0 -8
  156. package/dist/FilesApp-E6L5W3T2.css +0 -1817
  157. package/dist/FilesApp-QSLB5IWR.cjs +0 -14
  158. package/dist/ImageViewerApp-N2Q7E7WZ.css +0 -215
  159. package/dist/ImageViewerApp-NCVDKLB3.js +0 -11
  160. package/dist/ImageViewerApp-QB373H5Z.cjs +0 -17
  161. package/dist/ImageViewerMenuBar-I3TFKQPS.cjs +0 -14
  162. package/dist/ImageViewerMenuBar-TV5C6TM2.js +0 -5
  163. package/dist/ImageViewerMenuBar-XLK4LIHW.css +0 -56
  164. package/dist/MenuEditApp-5EFYAPFC.cjs +0 -15
  165. package/dist/MenuEditApp-V5XOPIHX.js +0 -9
  166. package/dist/MenuEditApp-YA6HSAMJ.css +0 -94
  167. package/dist/MenuEditMenuBar-7VHMZNRM.css +0 -56
  168. package/dist/MenuEditMenuBar-GF6L4PGZ.cjs +0 -15
  169. package/dist/MenuEditMenuBar-IUXFPZE5.js +0 -6
  170. package/dist/NotesApp-2YNT7Y3D.js +0 -10
  171. package/dist/NotesApp-IAEE7YHU.cjs +0 -16
  172. package/dist/NotesApp-TQ6IHDNX.css +0 -302
  173. package/dist/NotesMenuBar-25LKN3SE.cjs +0 -15
  174. package/dist/NotesMenuBar-MXLOX7OT.css +0 -56
  175. package/dist/NotesMenuBar-SRV3AIAL.js +0 -6
  176. package/dist/PdfApp-67XIX6AM.js +0 -10
  177. package/dist/PdfApp-BUIC5U5H.css +0 -206
  178. package/dist/PdfApp-GZ6RHTBR.cjs +0 -16
  179. package/dist/PdfMenuBar-NLZC6JHS.js +0 -4
  180. package/dist/PdfMenuBar-QUM72EE4.css +0 -56
  181. package/dist/PdfMenuBar-WBRTKMLN.cjs +0 -13
  182. package/dist/SettingsApp-BPLMGPNK.cjs +0 -20
  183. package/dist/SettingsApp-JVOSEFH3.css +0 -283
  184. package/dist/SettingsApp-LUDIXCYY.js +0 -14
  185. package/dist/SettingsMenuBar-5CBSSMVM.css +0 -56
  186. package/dist/SettingsMenuBar-VLT6TTCM.js +0 -6
  187. package/dist/SettingsMenuBar-Y5QEXDEO.cjs +0 -15
  188. package/dist/StorybookApp-NQ244BER.css +0 -7
  189. package/dist/StorybookApp-NZDV4X3Y.js +0 -1
  190. package/dist/StorybookApp-VF3KIMU3.cjs +0 -7
  191. package/dist/TerminalApp-CDGWRBFJ.cjs +0 -10
  192. package/dist/TerminalApp-EAATMIMX.css +0 -77
  193. package/dist/TerminalApp-GCKJCM55.js +0 -4
  194. package/dist/TerminalMenuBar-3J26O26Q.css +0 -56
  195. package/dist/TerminalMenuBar-7BH7MGNJ.cjs +0 -14
  196. package/dist/TerminalMenuBar-7JAEQUZ4.js +0 -5
  197. package/dist/UploaderApp-6KV3TGCT.css +0 -1817
  198. package/dist/UploaderApp-FJC2J4I5.js +0 -10
  199. package/dist/UploaderApp-HLXJYJZQ.cjs +0 -16
  200. package/dist/chunk-2PSTHGTD.cjs +0 -42
  201. package/dist/chunk-2RQX7QBP.cjs +0 -148
  202. package/dist/chunk-43W6UDUZ.cjs +0 -19
  203. package/dist/chunk-4E45FBAH.js +0 -223
  204. package/dist/chunk-4E4U2A25.cjs +0 -237
  205. package/dist/chunk-4QHX7CMN.cjs +0 -38
  206. package/dist/chunk-4XURSNM4.js +0 -43
  207. package/dist/chunk-4ZCRYHL6.js +0 -407
  208. package/dist/chunk-5C6IQE42.cjs +0 -35
  209. package/dist/chunk-5HUYQDQF.js +0 -36
  210. package/dist/chunk-5NOHYJNH.js +0 -84
  211. package/dist/chunk-5QFZW6HW.js +0 -2241
  212. package/dist/chunk-5YH6AKEO.js +0 -146
  213. package/dist/chunk-756GPSPM.js +0 -283
  214. package/dist/chunk-7WUYUTPN.js +0 -2293
  215. package/dist/chunk-7XCMBW64.js +0 -162
  216. package/dist/chunk-7Y7HB7FB.cjs +0 -53
  217. package/dist/chunk-ABIAPZ6S.cjs +0 -45
  218. package/dist/chunk-ACHGJKCI.cjs +0 -286
  219. package/dist/chunk-BQCD5RAF.cjs +0 -48
  220. package/dist/chunk-BQL3YXMV.js +0 -17429
  221. package/dist/chunk-C3XER4N3.js +0 -442
  222. package/dist/chunk-C6BEZNAM.cjs +0 -45
  223. package/dist/chunk-CILU6BWC.cjs +0 -548
  224. package/dist/chunk-CV5PUHAE.cjs +0 -86
  225. package/dist/chunk-D5MVFFID.js +0 -42
  226. package/dist/chunk-D7R55WWT.js +0 -1601
  227. package/dist/chunk-DFYDUXWP.cjs +0 -34
  228. package/dist/chunk-DWP2SYF7.js +0 -55
  229. package/dist/chunk-E55VXNLK.cjs +0 -17498
  230. package/dist/chunk-E5FW77FG.js +0 -77
  231. package/dist/chunk-EAELL43F.js +0 -42
  232. package/dist/chunk-EX5V2ZTU.js +0 -40
  233. package/dist/chunk-FD7QZCTN.cjs +0 -2329
  234. package/dist/chunk-FH4ILMKF.js +0 -38
  235. package/dist/chunk-FRHBM2U7.js +0 -33
  236. package/dist/chunk-FX2TPX3L.cjs +0 -45
  237. package/dist/chunk-GPXNLTPI.cjs +0 -451
  238. package/dist/chunk-GRYCUBJZ.js +0 -9
  239. package/dist/chunk-HPHHS7FJ.cjs +0 -49
  240. package/dist/chunk-HWHBSAUC.js +0 -40
  241. package/dist/chunk-IDHP3R4I.js +0 -31
  242. package/dist/chunk-IHWGT3DL.js +0 -86
  243. package/dist/chunk-JEBKLIMU.cjs +0 -123
  244. package/dist/chunk-KDZLBI6F.cjs +0 -324
  245. package/dist/chunk-KQHICFX3.js +0 -121
  246. package/dist/chunk-LMJE6V4N.cjs +0 -42
  247. package/dist/chunk-MCHPDWVH.js +0 -444
  248. package/dist/chunk-MVDGM5Y4.js +0 -68
  249. package/dist/chunk-N36HBL53.cjs +0 -165
  250. package/dist/chunk-NV5GNFA3.js +0 -541
  251. package/dist/chunk-NVEGEK3N.js +0 -31
  252. package/dist/chunk-OJIDKDKF.js +0 -68
  253. package/dist/chunk-PGGNSLM7.js +0 -215
  254. package/dist/chunk-PKPQA5NR.js +0 -15
  255. package/dist/chunk-PNDBLFJW.cjs +0 -50
  256. package/dist/chunk-Q3WA72BF.cjs +0 -70
  257. package/dist/chunk-RDIDAZ3S.cjs +0 -9
  258. package/dist/chunk-RGJPRXYY.js +0 -48
  259. package/dist/chunk-RPSYXORB.cjs +0 -219
  260. package/dist/chunk-RQ6OZRUW.cjs +0 -41
  261. package/dist/chunk-SBE4SZAN.cjs +0 -226
  262. package/dist/chunk-TAFNCDUI.js +0 -234
  263. package/dist/chunk-TFIDSENE.cjs +0 -88
  264. package/dist/chunk-TGWMOHAO.js +0 -17
  265. package/dist/chunk-UA6XSTW6.js +0 -48
  266. package/dist/chunk-UIQCTAVM.cjs +0 -59
  267. package/dist/chunk-UKYESVDS.cjs +0 -50
  268. package/dist/chunk-V4N255NL.cjs +0 -2309
  269. package/dist/chunk-VO6KXO2I.js +0 -32
  270. package/dist/chunk-WXSTSC3D.cjs +0 -83
  271. package/dist/chunk-XSK7BWYO.js +0 -47
  272. package/dist/chunk-XVAPJ4PP.cjs +0 -449
  273. package/dist/chunk-XVASHRCE.cjs +0 -70
  274. package/dist/chunk-XYSMVQQD.cjs +0 -1608
  275. package/dist/chunk-YAIWI4Z5.js +0 -7
  276. package/dist/chunk-YGYOLDKR.js +0 -280
  277. package/dist/chunk-YP2PLNOF.cjs +0 -34
  278. package/dist/chunk-YSOLW4FS.cjs +0 -11
  279. package/dist/chunk-YY6OUR2U.js +0 -44
  280. package/dist/chunk-YZWS7FDT.cjs +0 -409
  281. package/dist/chunk-Z5YGWL65.cjs +0 -39
  282. package/dist/chunk-ZHNDXNL4.js +0 -45
  283. package/dist/chunk-ZX3EDZ5C.cjs +0 -17
  284. package/dist/index.d.cts +0 -2019
@@ -1,215 +0,0 @@
1
- import { VscIcon_default } from './chunk-GRYCUBJZ.js';
2
- import { ColorPicker_default } from './chunk-EX5V2ZTU.js';
3
- import { useDesktopStore } from './chunk-5QFZW6HW.js';
4
- import { useVscIconElement, useFcIconElement } from './chunk-YY6OUR2U.js';
5
- import { SimpleGrid, Tooltip, UnstyledButton, Text, TextInput, ActionIcon, Collapse, Group, Button } from './chunk-BQL3YXMV.js';
6
- import { useState, useRef, useEffect } from 'react';
7
- import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
8
-
9
- // src/components/Shared/IconColorPicker/IconColorPicker.module.css
10
- var IconColorPicker_default = {};
11
-
12
- // src/constants/Icons.ts
13
- var PRESET_ICONS = [
14
- "VscFolder",
15
- "VscFolderOpened",
16
- "VscHome",
17
- "VscServer",
18
- "VscDatabase",
19
- "VscBook",
20
- "VscMail",
21
- "VscGithub",
22
- "VscCloud",
23
- "VscLock",
24
- "VscSettingsGear",
25
- "VscStar",
26
- "VscHeart",
27
- "VscMusic",
28
- "VscCamera",
29
- "VscArchive"
30
- ];
31
- var IconColorPicker = ({
32
- selectedIcon,
33
- selectedColor,
34
- onIconChange,
35
- onColorChange,
36
- colorError
37
- }) => {
38
- return /* @__PURE__ */ jsxs("div", { className: IconColorPicker_default.root, children: [
39
- /* @__PURE__ */ jsx(SimpleGrid, { cols: 8, spacing: 4, className: IconColorPicker_default.iconGrid, children: PRESET_ICONS.map((name) => {
40
- const isSelected = selectedIcon === name;
41
- return /* @__PURE__ */ jsx(Tooltip, { label: name, openDelay: 500, children: /* @__PURE__ */ jsx(
42
- UnstyledButton,
43
- {
44
- className: IconColorPicker_default.iconButton,
45
- "data-selected": isSelected || void 0,
46
- onClick: () => onIconChange(name),
47
- "aria-label": name,
48
- "aria-pressed": isSelected,
49
- children: /* @__PURE__ */ jsx(VscIcon_default, { name, size: 20, color: selectedColor })
50
- }
51
- ) }, name);
52
- }) }),
53
- /* @__PURE__ */ jsx(ColorPicker_default, { value: selectedColor, onChange: onColorChange, error: colorError })
54
- ] });
55
- };
56
- var IconColorPicker_default2 = IconColorPicker;
57
-
58
- // src/components/Shared/CreateItemApp/CreateItemApp.module.css
59
- var CreateItemApp_default = {};
60
- var CSS_COLOR_RE = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
61
- var isValidColor = (color) => CSS_COLOR_RE.test(color);
62
- var ICON_PROPS = { size: 14, style: { display: "block" } };
63
- var CollapseToggleIcon = ({ open }) => useFcIconElement(open ? "FcCollapse" : "FcExpand", ICON_PROPS);
64
- var CancelIcon = () => useFcIconElement("FcCancel", ICON_PROPS);
65
- var CheckIcon = () => useFcIconElement("FcCheckmark", ICON_PROPS);
66
- var DEFAULT_ICON = "VscFolder";
67
- var DEFAULT_COLOR = "#228be6";
68
- var DEFAULT_FILE_NAME = "New File";
69
- var DEFAULT_FOLDER_NAME = "New Folder";
70
- var TITLE_BAR_HEIGHT = 36;
71
- var CreateItemApp = ({ window }) => {
72
- const win = window;
73
- const mode = win?.contentData?.mode ?? "folder";
74
- const parentId = win?.contentData?.parentId ?? null;
75
- const currentPath = win?.contentData?.currentPath ?? "/home";
76
- const [name, setName] = useState(mode === "folder" ? DEFAULT_FOLDER_NAME : DEFAULT_FILE_NAME);
77
- const [iconName, setIconName] = useState(DEFAULT_ICON);
78
- const [iconColor, setIconColor] = useState(DEFAULT_COLOR);
79
- const [iconPickerOpen, setIconPickerOpen] = useState(
80
- win?.contentData?.iconPickerOpen ?? false
81
- );
82
- const rootRef = useRef(null);
83
- const closeWindow = useDesktopStore((state) => state.closeWindow);
84
- const resizeWindow = useDesktopStore((state) => state.resizeWindow);
85
- const createFile = useDesktopStore((state) => state.createFile);
86
- const createFolder = useDesktopStore((state) => state.createFolder);
87
- const addNotification = useDesktopStore((state) => state.addNotification);
88
- const fsNodes = useDesktopStore((state) => state.fsNodes);
89
- const windowWidth = useDesktopStore(
90
- (state) => state.windows.find((w) => w.id === win?.id)?.width ?? 400
91
- );
92
- const duplicateName = fsNodes.some(
93
- (n) => n.parentId === parentId && n.type === mode && n.name === name.trim()
94
- );
95
- const colorError = mode === "folder" && iconPickerOpen && !isValidColor(iconColor);
96
- const canConfirm = name.trim().length > 0 && !duplicateName && !colorError;
97
- useEffect(() => {
98
- if (!win?.id || !rootRef.current) return;
99
- const el = rootRef.current;
100
- const observer = new ResizeObserver(() => {
101
- resizeWindow(win.id, windowWidth, el.scrollHeight + TITLE_BAR_HEIGHT);
102
- });
103
- observer.observe(el);
104
- return () => observer.disconnect();
105
- }, [win, windowWidth, resizeWindow]);
106
- const handleConfirm = () => {
107
- if (!canConfirm) return;
108
- const itemName = name.trim();
109
- const itemParentId = parentId ?? null;
110
- const itemIconName = iconName;
111
- const itemIconColor = iconColor;
112
- closeWindow(win.id);
113
- if (mode === "folder") {
114
- createFolder(itemName, itemParentId, itemIconName, itemIconColor).catch((error) => {
115
- console.error("Failed to create folder:", error);
116
- addNotification({
117
- id: `create-folder-error-${Date.now()}`,
118
- title: "Error",
119
- message: `Failed to create folder: ${error instanceof Error ? error.message : "Unknown error"}`,
120
- fcIcon: "FcHighPriority"
121
- });
122
- });
123
- } else {
124
- createFile(itemName, "", itemParentId).catch((error) => {
125
- console.error("Failed to create file:", error);
126
- addNotification({
127
- id: `create-file-error-${Date.now()}`,
128
- title: "Error",
129
- message: `Failed to create file: ${error instanceof Error ? error.message : "Unknown error"}`,
130
- fcIcon: "FcHighPriority"
131
- });
132
- });
133
- }
134
- };
135
- const handleCancel = () => {
136
- closeWindow(win.id);
137
- };
138
- const previewIconElement = useVscIconElement(iconName, { size: 40, color: iconColor });
139
- return /* @__PURE__ */ jsxs("div", { ref: rootRef, className: CreateItemApp_default.root, children: [
140
- /* @__PURE__ */ jsx("div", { className: CreateItemApp_default.header, children: /* @__PURE__ */ jsxs(Text, { fw: 600, size: "sm", children: [
141
- mode === "folder" ? "Create new folder" : "Create new file",
142
- " in ",
143
- currentPath,
144
- ":"
145
- ] }) }),
146
- /* @__PURE__ */ jsxs("div", { className: CreateItemApp_default.content, children: [
147
- /* @__PURE__ */ jsxs("div", { className: CreateItemApp_default.nameRow, children: [
148
- mode === "folder" && previewIconElement && /* @__PURE__ */ jsx("div", { className: CreateItemApp_default.iconPreview, "aria-hidden": "true", children: previewIconElement }),
149
- /* @__PURE__ */ jsx(
150
- TextInput,
151
- {
152
- value: name,
153
- onChange: (e) => setName(e.currentTarget.value),
154
- onKeyDown: (e) => e.key === "Enter" && handleConfirm(),
155
- error: duplicateName ? `There is already a ${mode} with that name` : void 0,
156
- rightSection: name ? /* @__PURE__ */ jsx(
157
- ActionIcon,
158
- {
159
- variant: "transparent",
160
- size: "sm",
161
- onClick: () => setName(""),
162
- "aria-label": "Clear name",
163
- children: /* @__PURE__ */ jsx(CancelIcon, {})
164
- }
165
- ) : null,
166
- autoFocus: true,
167
- className: CreateItemApp_default.nameInput,
168
- "aria-label": "Item name"
169
- }
170
- )
171
- ] }),
172
- mode === "folder" && /* @__PURE__ */ jsxs(Fragment, { children: [
173
- /* @__PURE__ */ jsxs(
174
- UnstyledButton,
175
- {
176
- className: CreateItemApp_default.collapseToggle,
177
- onClick: () => setIconPickerOpen((o) => !o),
178
- "aria-expanded": iconPickerOpen,
179
- children: [
180
- /* @__PURE__ */ jsx(CollapseToggleIcon, { open: iconPickerOpen }),
181
- /* @__PURE__ */ jsx(Text, { size: "sm", ml: 6, children: "Choose custom icon or color" })
182
- ]
183
- }
184
- ),
185
- /* @__PURE__ */ jsx(Collapse, { expanded: iconPickerOpen, children: /* @__PURE__ */ jsx("div", { className: CreateItemApp_default.pickerWrapper, children: /* @__PURE__ */ jsx(
186
- IconColorPicker_default2,
187
- {
188
- selectedIcon: iconName,
189
- selectedColor: iconColor,
190
- onIconChange: setIconName,
191
- onColorChange: setIconColor,
192
- colorError: colorError ? "Enter a valid hex color (e.g. #ff0000)" : void 0
193
- }
194
- ) }) }),
195
- /* @__PURE__ */ jsx(Text, { size: "xs", c: "dimmed", mt: 4, children: "You can change the icon later in folder properties." })
196
- ] }),
197
- /* @__PURE__ */ jsxs(Group, { justify: "flex-end", mt: "md", children: [
198
- /* @__PURE__ */ jsx(Button, { variant: "default", size: "sm", onClick: handleCancel, leftSection: /* @__PURE__ */ jsx(CancelIcon, {}), children: "Cancel" }),
199
- /* @__PURE__ */ jsx(
200
- Button,
201
- {
202
- size: "sm",
203
- onClick: handleConfirm,
204
- leftSection: /* @__PURE__ */ jsx(CheckIcon, {}),
205
- disabled: !canConfirm,
206
- children: "OK"
207
- }
208
- )
209
- ] })
210
- ] })
211
- ] });
212
- };
213
- var CreateItemApp_default2 = CreateItemApp;
214
-
215
- export { CreateItemApp_default2 as CreateItemApp_default, IconColorPicker_default2 as IconColorPicker_default, PRESET_ICONS };
@@ -1,15 +0,0 @@
1
- // src/constants/Colors.ts
2
- var PRESET_COLORS = [
3
- "#868e96",
4
- "#fa5252",
5
- "#fd7e14",
6
- "#fab005",
7
- "#82c91e",
8
- "#40c057",
9
- "#15aabf",
10
- "#228be6",
11
- "#7950f2",
12
- "#e64980"
13
- ];
14
-
15
- export { PRESET_COLORS };
@@ -1,50 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkRDIDAZ3S_cjs = require('./chunk-RDIDAZ3S.cjs');
4
- var chunkSBE4SZAN_cjs = require('./chunk-SBE4SZAN.cjs');
5
- var chunkYP2PLNOF_cjs = require('./chunk-YP2PLNOF.cjs');
6
- var react = require('react');
7
- var reactI18next = require('react-i18next');
8
- var jsxRuntime = require('react/jsx-runtime');
9
-
10
- var useSettingsMenuBarElements = (options) => {
11
- const { windowId, contentData, onExit } = options;
12
- const { t } = reactI18next.useTranslation("common");
13
- const isDirty = chunkYP2PLNOF_cjs.useIsDirty(windowId);
14
- const discard = contentData?.discard;
15
- return react.useMemo(() => {
16
- const items = [
17
- {
18
- type: "menu",
19
- label: t("menu.file"),
20
- items: [
21
- {
22
- type: "item",
23
- label: t("actions.discard"),
24
- icon: "FcCancel",
25
- onClick: () => discard?.(),
26
- disabled: !isDirty
27
- },
28
- { type: "divider" },
29
- {
30
- type: "item",
31
- label: t("actions.exit"),
32
- icon: "FcLeft",
33
- onClick: onExit
34
- }
35
- ]
36
- }
37
- ];
38
- return chunkRDIDAZ3S_cjs.appendDirtyIndicator(items, isDirty);
39
- }, [t, isDirty, discard, onExit]);
40
- };
41
- var SettingsMenuBar = ({ windowId, contentData, onExit }) => {
42
- const elements = useSettingsMenuBarElements({
43
- windowId,
44
- contentData,
45
- onExit
46
- });
47
- return /* @__PURE__ */ jsxRuntime.jsx(chunkSBE4SZAN_cjs.AppMenuBar_default, { elements });
48
- };
49
-
50
- exports.SettingsMenuBar = SettingsMenuBar;
@@ -1,70 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkRDIDAZ3S_cjs = require('./chunk-RDIDAZ3S.cjs');
4
- var chunkSBE4SZAN_cjs = require('./chunk-SBE4SZAN.cjs');
5
- var chunkRQ6OZRUW_cjs = require('./chunk-RQ6OZRUW.cjs');
6
- var react = require('react');
7
- var reactI18next = require('react-i18next');
8
- var jsxRuntime = require('react/jsx-runtime');
9
-
10
- var useNotesMenuBarElements = (options) => {
11
- const { windowId, contentData, onExit } = options;
12
- const { t } = reactI18next.useTranslation("common");
13
- const isDirty = chunkRQ6OZRUW_cjs.useIsDirty(windowId);
14
- const actions = contentData?.actions;
15
- const setPickerOpen = contentData?.setPickerOpen;
16
- return react.useMemo(() => {
17
- const items = [
18
- {
19
- type: "menu",
20
- label: t("menu.file"),
21
- items: [
22
- {
23
- type: "item",
24
- label: t("actions.new"),
25
- icon: "FcEditImage",
26
- onClick: () => actions?.new?.()
27
- },
28
- {
29
- type: "item",
30
- label: t("actions.open"),
31
- icon: "FcOpenedFolder",
32
- onClick: () => setPickerOpen?.()
33
- },
34
- { type: "divider" },
35
- {
36
- type: "item",
37
- label: t("actions.save"),
38
- icon: "FcInspection",
39
- onClick: () => actions?.save?.(),
40
- disabled: !isDirty
41
- },
42
- {
43
- type: "item",
44
- label: t("actions.saveAs"),
45
- icon: "FcDeployment",
46
- onClick: () => actions?.saveAs?.()
47
- },
48
- { type: "divider" },
49
- {
50
- type: "item",
51
- label: t("actions.exit"),
52
- icon: "FcLeft",
53
- onClick: onExit
54
- }
55
- ]
56
- }
57
- ];
58
- return chunkRDIDAZ3S_cjs.appendDirtyIndicator(items, isDirty);
59
- }, [t, actions, setPickerOpen, isDirty, onExit]);
60
- };
61
- var NotesMenuBar = ({ windowId, contentData, onExit }) => {
62
- const elements = useNotesMenuBarElements({
63
- windowId,
64
- contentData,
65
- onExit
66
- });
67
- return /* @__PURE__ */ jsxRuntime.jsx(chunkSBE4SZAN_cjs.AppMenuBar_default, { elements });
68
- };
69
-
70
- exports.NotesMenuBar = NotesMenuBar;
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- // src/hooks/useMenuBarUtils.ts
4
- function appendDirtyIndicator(items, isDirty) {
5
- if (!isDirty) return items;
6
- return [...items, { type: "dirty-indicator" }];
7
- }
8
-
9
- exports.appendDirtyIndicator = appendDirtyIndicator;
@@ -1,48 +0,0 @@
1
- import { appendDirtyIndicator } from './chunk-YAIWI4Z5.js';
2
- import { AppMenuBar_default } from './chunk-4E45FBAH.js';
3
- import { useIsDirty } from './chunk-IDHP3R4I.js';
4
- import { useMemo } from 'react';
5
- import { useTranslation } from 'react-i18next';
6
- import { jsx } from 'react/jsx-runtime';
7
-
8
- var useSettingsMenuBarElements = (options) => {
9
- const { windowId, contentData, onExit } = options;
10
- const { t } = useTranslation("common");
11
- const isDirty = useIsDirty(windowId);
12
- const discard = contentData?.discard;
13
- return useMemo(() => {
14
- const items = [
15
- {
16
- type: "menu",
17
- label: t("menu.file"),
18
- items: [
19
- {
20
- type: "item",
21
- label: t("actions.discard"),
22
- icon: "FcCancel",
23
- onClick: () => discard?.(),
24
- disabled: !isDirty
25
- },
26
- { type: "divider" },
27
- {
28
- type: "item",
29
- label: t("actions.exit"),
30
- icon: "FcLeft",
31
- onClick: onExit
32
- }
33
- ]
34
- }
35
- ];
36
- return appendDirtyIndicator(items, isDirty);
37
- }, [t, isDirty, discard, onExit]);
38
- };
39
- var SettingsMenuBar = ({ windowId, contentData, onExit }) => {
40
- const elements = useSettingsMenuBarElements({
41
- windowId,
42
- contentData,
43
- onExit
44
- });
45
- return /* @__PURE__ */ jsx(AppMenuBar_default, { elements });
46
- };
47
-
48
- export { SettingsMenuBar };
@@ -1,219 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkYSOLW4FS_cjs = require('./chunk-YSOLW4FS.cjs');
4
- var chunkLMJE6V4N_cjs = require('./chunk-LMJE6V4N.cjs');
5
- var chunkV4N255NL_cjs = require('./chunk-V4N255NL.cjs');
6
- var chunk7Y7HB7FB_cjs = require('./chunk-7Y7HB7FB.cjs');
7
- var chunkE55VXNLK_cjs = require('./chunk-E55VXNLK.cjs');
8
- var react = require('react');
9
- var jsxRuntime = require('react/jsx-runtime');
10
-
11
- // src/components/Shared/IconColorPicker/IconColorPicker.module.css
12
- var IconColorPicker_default = {};
13
-
14
- // src/constants/Icons.ts
15
- var PRESET_ICONS = [
16
- "VscFolder",
17
- "VscFolderOpened",
18
- "VscHome",
19
- "VscServer",
20
- "VscDatabase",
21
- "VscBook",
22
- "VscMail",
23
- "VscGithub",
24
- "VscCloud",
25
- "VscLock",
26
- "VscSettingsGear",
27
- "VscStar",
28
- "VscHeart",
29
- "VscMusic",
30
- "VscCamera",
31
- "VscArchive"
32
- ];
33
- var IconColorPicker = ({
34
- selectedIcon,
35
- selectedColor,
36
- onIconChange,
37
- onColorChange,
38
- colorError
39
- }) => {
40
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: IconColorPicker_default.root, children: [
41
- /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.SimpleGrid, { cols: 8, spacing: 4, className: IconColorPicker_default.iconGrid, children: PRESET_ICONS.map((name) => {
42
- const isSelected = selectedIcon === name;
43
- return /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Tooltip, { label: name, openDelay: 500, children: /* @__PURE__ */ jsxRuntime.jsx(
44
- chunkE55VXNLK_cjs.UnstyledButton,
45
- {
46
- className: IconColorPicker_default.iconButton,
47
- "data-selected": isSelected || void 0,
48
- onClick: () => onIconChange(name),
49
- "aria-label": name,
50
- "aria-pressed": isSelected,
51
- children: /* @__PURE__ */ jsxRuntime.jsx(chunkYSOLW4FS_cjs.VscIcon_default, { name, size: 20, color: selectedColor })
52
- }
53
- ) }, name);
54
- }) }),
55
- /* @__PURE__ */ jsxRuntime.jsx(chunkLMJE6V4N_cjs.ColorPicker_default, { value: selectedColor, onChange: onColorChange, error: colorError })
56
- ] });
57
- };
58
- var IconColorPicker_default2 = IconColorPicker;
59
-
60
- // src/components/Shared/CreateItemApp/CreateItemApp.module.css
61
- var CreateItemApp_default = {};
62
- var CSS_COLOR_RE = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/;
63
- var isValidColor = (color) => CSS_COLOR_RE.test(color);
64
- var ICON_PROPS = { size: 14, style: { display: "block" } };
65
- var CollapseToggleIcon = ({ open }) => chunk7Y7HB7FB_cjs.useFcIconElement(open ? "FcCollapse" : "FcExpand", ICON_PROPS);
66
- var CancelIcon = () => chunk7Y7HB7FB_cjs.useFcIconElement("FcCancel", ICON_PROPS);
67
- var CheckIcon = () => chunk7Y7HB7FB_cjs.useFcIconElement("FcCheckmark", ICON_PROPS);
68
- var DEFAULT_ICON = "VscFolder";
69
- var DEFAULT_COLOR = "#228be6";
70
- var DEFAULT_FILE_NAME = "New File";
71
- var DEFAULT_FOLDER_NAME = "New Folder";
72
- var TITLE_BAR_HEIGHT = 36;
73
- var CreateItemApp = ({ window }) => {
74
- const win = window;
75
- const mode = win?.contentData?.mode ?? "folder";
76
- const parentId = win?.contentData?.parentId ?? null;
77
- const currentPath = win?.contentData?.currentPath ?? "/home";
78
- const [name, setName] = react.useState(mode === "folder" ? DEFAULT_FOLDER_NAME : DEFAULT_FILE_NAME);
79
- const [iconName, setIconName] = react.useState(DEFAULT_ICON);
80
- const [iconColor, setIconColor] = react.useState(DEFAULT_COLOR);
81
- const [iconPickerOpen, setIconPickerOpen] = react.useState(
82
- win?.contentData?.iconPickerOpen ?? false
83
- );
84
- const rootRef = react.useRef(null);
85
- const closeWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.closeWindow);
86
- const resizeWindow = chunkV4N255NL_cjs.useDesktopStore((state) => state.resizeWindow);
87
- const createFile = chunkV4N255NL_cjs.useDesktopStore((state) => state.createFile);
88
- const createFolder = chunkV4N255NL_cjs.useDesktopStore((state) => state.createFolder);
89
- const addNotification = chunkV4N255NL_cjs.useDesktopStore((state) => state.addNotification);
90
- const fsNodes = chunkV4N255NL_cjs.useDesktopStore((state) => state.fsNodes);
91
- const windowWidth = chunkV4N255NL_cjs.useDesktopStore(
92
- (state) => state.windows.find((w) => w.id === win?.id)?.width ?? 400
93
- );
94
- const duplicateName = fsNodes.some(
95
- (n) => n.parentId === parentId && n.type === mode && n.name === name.trim()
96
- );
97
- const colorError = mode === "folder" && iconPickerOpen && !isValidColor(iconColor);
98
- const canConfirm = name.trim().length > 0 && !duplicateName && !colorError;
99
- react.useEffect(() => {
100
- if (!win?.id || !rootRef.current) return;
101
- const el = rootRef.current;
102
- const observer = new ResizeObserver(() => {
103
- resizeWindow(win.id, windowWidth, el.scrollHeight + TITLE_BAR_HEIGHT);
104
- });
105
- observer.observe(el);
106
- return () => observer.disconnect();
107
- }, [win, windowWidth, resizeWindow]);
108
- const handleConfirm = () => {
109
- if (!canConfirm) return;
110
- const itemName = name.trim();
111
- const itemParentId = parentId ?? null;
112
- const itemIconName = iconName;
113
- const itemIconColor = iconColor;
114
- closeWindow(win.id);
115
- if (mode === "folder") {
116
- createFolder(itemName, itemParentId, itemIconName, itemIconColor).catch((error) => {
117
- console.error("Failed to create folder:", error);
118
- addNotification({
119
- id: `create-folder-error-${Date.now()}`,
120
- title: "Error",
121
- message: `Failed to create folder: ${error instanceof Error ? error.message : "Unknown error"}`,
122
- fcIcon: "FcHighPriority"
123
- });
124
- });
125
- } else {
126
- createFile(itemName, "", itemParentId).catch((error) => {
127
- console.error("Failed to create file:", error);
128
- addNotification({
129
- id: `create-file-error-${Date.now()}`,
130
- title: "Error",
131
- message: `Failed to create file: ${error instanceof Error ? error.message : "Unknown error"}`,
132
- fcIcon: "FcHighPriority"
133
- });
134
- });
135
- }
136
- };
137
- const handleCancel = () => {
138
- closeWindow(win.id);
139
- };
140
- const previewIconElement = chunk7Y7HB7FB_cjs.useVscIconElement(iconName, { size: 40, color: iconColor });
141
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref: rootRef, className: CreateItemApp_default.root, children: [
142
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: CreateItemApp_default.header, children: /* @__PURE__ */ jsxRuntime.jsxs(chunkE55VXNLK_cjs.Text, { fw: 600, size: "sm", children: [
143
- mode === "folder" ? "Create new folder" : "Create new file",
144
- " in ",
145
- currentPath,
146
- ":"
147
- ] }) }),
148
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CreateItemApp_default.content, children: [
149
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: CreateItemApp_default.nameRow, children: [
150
- mode === "folder" && previewIconElement && /* @__PURE__ */ jsxRuntime.jsx("div", { className: CreateItemApp_default.iconPreview, "aria-hidden": "true", children: previewIconElement }),
151
- /* @__PURE__ */ jsxRuntime.jsx(
152
- chunkE55VXNLK_cjs.TextInput,
153
- {
154
- value: name,
155
- onChange: (e) => setName(e.currentTarget.value),
156
- onKeyDown: (e) => e.key === "Enter" && handleConfirm(),
157
- error: duplicateName ? `There is already a ${mode} with that name` : void 0,
158
- rightSection: name ? /* @__PURE__ */ jsxRuntime.jsx(
159
- chunkE55VXNLK_cjs.ActionIcon,
160
- {
161
- variant: "transparent",
162
- size: "sm",
163
- onClick: () => setName(""),
164
- "aria-label": "Clear name",
165
- children: /* @__PURE__ */ jsxRuntime.jsx(CancelIcon, {})
166
- }
167
- ) : null,
168
- autoFocus: true,
169
- className: CreateItemApp_default.nameInput,
170
- "aria-label": "Item name"
171
- }
172
- )
173
- ] }),
174
- mode === "folder" && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
175
- /* @__PURE__ */ jsxRuntime.jsxs(
176
- chunkE55VXNLK_cjs.UnstyledButton,
177
- {
178
- className: CreateItemApp_default.collapseToggle,
179
- onClick: () => setIconPickerOpen((o) => !o),
180
- "aria-expanded": iconPickerOpen,
181
- children: [
182
- /* @__PURE__ */ jsxRuntime.jsx(CollapseToggleIcon, { open: iconPickerOpen }),
183
- /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "sm", ml: 6, children: "Choose custom icon or color" })
184
- ]
185
- }
186
- ),
187
- /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Collapse, { expanded: iconPickerOpen, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: CreateItemApp_default.pickerWrapper, children: /* @__PURE__ */ jsxRuntime.jsx(
188
- IconColorPicker_default2,
189
- {
190
- selectedIcon: iconName,
191
- selectedColor: iconColor,
192
- onIconChange: setIconName,
193
- onColorChange: setIconColor,
194
- colorError: colorError ? "Enter a valid hex color (e.g. #ff0000)" : void 0
195
- }
196
- ) }) }),
197
- /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Text, { size: "xs", c: "dimmed", mt: 4, children: "You can change the icon later in folder properties." })
198
- ] }),
199
- /* @__PURE__ */ jsxRuntime.jsxs(chunkE55VXNLK_cjs.Group, { justify: "flex-end", mt: "md", children: [
200
- /* @__PURE__ */ jsxRuntime.jsx(chunkE55VXNLK_cjs.Button, { variant: "default", size: "sm", onClick: handleCancel, leftSection: /* @__PURE__ */ jsxRuntime.jsx(CancelIcon, {}), children: "Cancel" }),
201
- /* @__PURE__ */ jsxRuntime.jsx(
202
- chunkE55VXNLK_cjs.Button,
203
- {
204
- size: "sm",
205
- onClick: handleConfirm,
206
- leftSection: /* @__PURE__ */ jsxRuntime.jsx(CheckIcon, {}),
207
- disabled: !canConfirm,
208
- children: "OK"
209
- }
210
- )
211
- ] })
212
- ] })
213
- ] });
214
- };
215
- var CreateItemApp_default2 = CreateItemApp;
216
-
217
- exports.CreateItemApp_default = CreateItemApp_default2;
218
- exports.IconColorPicker_default = IconColorPicker_default2;
219
- exports.PRESET_ICONS = PRESET_ICONS;
@@ -1,41 +0,0 @@
1
- 'use strict';
2
-
3
- var zustand = require('zustand');
4
-
5
- // src/components/Apps/NotesApp/notesStore.ts
6
- var DEFAULT_STATE = {
7
- isDirty: false,
8
- contentLoaded: false
9
- };
10
- var useNotesStore = zustand.create((set, get) => ({
11
- states: {},
12
- getIsDirty: (windowId) => get().states[windowId]?.isDirty ?? false,
13
- setIsDirty: (windowId, isDirty) => {
14
- const currentIsDirty = get().states[windowId]?.isDirty ?? false;
15
- if (currentIsDirty === isDirty) return;
16
- set((s) => ({
17
- states: {
18
- ...s.states,
19
- [windowId]: { ...s.states[windowId] ?? DEFAULT_STATE, isDirty }
20
- }
21
- }));
22
- },
23
- getContentLoaded: (windowId) => get().states[windowId]?.contentLoaded ?? false,
24
- setContentLoaded: (windowId, loaded) => {
25
- set((s) => ({
26
- states: {
27
- ...s.states,
28
- [windowId]: { ...s.states[windowId] ?? DEFAULT_STATE, contentLoaded: loaded }
29
- }
30
- }));
31
- },
32
- reset: (windowId) => {
33
- set((s) => ({
34
- states: { ...s.states, [windowId]: DEFAULT_STATE }
35
- }));
36
- }
37
- }));
38
- var useIsDirty = (windowId) => useNotesStore((s) => s.states[windowId]?.isDirty ?? false);
39
-
40
- exports.useIsDirty = useIsDirty;
41
- exports.useNotesStore = useNotesStore;