@fde-desktop/fde-core 0.3.8 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/README.md +419 -68
  2. package/dist/CalendarApp-CHLUCAI7.css +744 -0
  3. package/dist/CalendarApp-K7ZOUZ6C.js +2 -0
  4. package/dist/CalendarApp-OTGEERSS.cjs +8 -0
  5. package/dist/CodeServerApp-5KZGO7HL.css +75 -0
  6. package/dist/CodeServerApp-LUZFCQBI.js +3 -0
  7. package/dist/CodeServerApp-P3TMJPLY.cjs +9 -0
  8. package/dist/CreateItemApp-NAZMXOPK.cjs +14 -0
  9. package/dist/CreateItemApp-PQB5GTFG.css +107 -0
  10. package/dist/CreateItemApp-ZHCTSPQE.js +8 -0
  11. package/dist/DeviceInfoApp-R6YNVIGX.cjs +11 -0
  12. package/dist/DeviceInfoApp-YHCYAO6N.js +5 -0
  13. package/dist/DeviceInfoApp-ZSMRSITP.css +7 -0
  14. package/dist/FilesApp-AKCVRTXR.js +8 -0
  15. package/dist/FilesApp-E6L5W3T2.css +1817 -0
  16. package/dist/FilesApp-RW3Y6ILO.cjs +14 -0
  17. package/dist/ImageViewerApp-5UXNSW2O.js +11 -0
  18. package/dist/ImageViewerApp-N2Q7E7WZ.css +215 -0
  19. package/dist/ImageViewerApp-RRRRKSFN.cjs +17 -0
  20. package/dist/ImageViewerMenuBar-I3TFKQPS.cjs +14 -0
  21. package/dist/ImageViewerMenuBar-TV5C6TM2.js +5 -0
  22. package/dist/ImageViewerMenuBar-XLK4LIHW.css +56 -0
  23. package/dist/MenuEditApp-HUZRFEHE.js +9 -0
  24. package/dist/MenuEditApp-MCUHGTKQ.cjs +15 -0
  25. package/dist/MenuEditApp-YA6HSAMJ.css +94 -0
  26. package/dist/MenuEditMenuBar-7VHMZNRM.css +56 -0
  27. package/dist/MenuEditMenuBar-GF6L4PGZ.cjs +15 -0
  28. package/dist/MenuEditMenuBar-IUXFPZE5.js +6 -0
  29. package/dist/NotesApp-37BV33C6.js +10 -0
  30. package/dist/NotesApp-4EVUQEFZ.cjs +16 -0
  31. package/dist/NotesApp-TQ6IHDNX.css +302 -0
  32. package/dist/NotesMenuBar-25LKN3SE.cjs +15 -0
  33. package/dist/NotesMenuBar-MXLOX7OT.css +56 -0
  34. package/dist/NotesMenuBar-SRV3AIAL.js +6 -0
  35. package/dist/PdfApp-5VBDNRMC.cjs +16 -0
  36. package/dist/PdfApp-BUIC5U5H.css +206 -0
  37. package/dist/PdfApp-RH6MZZX5.js +10 -0
  38. package/dist/PdfMenuBar-NLZC6JHS.js +4 -0
  39. package/dist/PdfMenuBar-QUM72EE4.css +56 -0
  40. package/dist/PdfMenuBar-WBRTKMLN.cjs +13 -0
  41. package/dist/SettingsApp-5LDHEHYV.cjs +20 -0
  42. package/dist/SettingsApp-JVOSEFH3.css +283 -0
  43. package/dist/SettingsApp-X6764D7T.js +14 -0
  44. package/dist/SettingsMenuBar-5CBSSMVM.css +56 -0
  45. package/dist/SettingsMenuBar-VLT6TTCM.js +6 -0
  46. package/dist/SettingsMenuBar-Y5QEXDEO.cjs +15 -0
  47. package/dist/StorybookApp-NQ244BER.css +7 -0
  48. package/dist/StorybookApp-NZDV4X3Y.js +1 -0
  49. package/dist/StorybookApp-VF3KIMU3.cjs +7 -0
  50. package/dist/TerminalApp-CDGWRBFJ.cjs +10 -0
  51. package/dist/TerminalApp-EAATMIMX.css +77 -0
  52. package/dist/TerminalApp-GCKJCM55.js +4 -0
  53. package/dist/TerminalMenuBar-3J26O26Q.css +56 -0
  54. package/dist/TerminalMenuBar-7BH7MGNJ.cjs +14 -0
  55. package/dist/TerminalMenuBar-7JAEQUZ4.js +5 -0
  56. package/dist/UploaderApp-2WYRCUQV.js +10 -0
  57. package/dist/UploaderApp-6KV3TGCT.css +1817 -0
  58. package/dist/UploaderApp-EYFC36PM.cjs +16 -0
  59. package/dist/chunk-2FO445RM.cjs +449 -0
  60. package/dist/chunk-2PSTHGTD.cjs +42 -0
  61. package/dist/chunk-2RQX7QBP.cjs +148 -0
  62. package/dist/chunk-3IICBLEA.js +442 -0
  63. package/dist/chunk-43W6UDUZ.cjs +19 -0
  64. package/dist/chunk-4E45FBAH.js +223 -0
  65. package/dist/chunk-4MCFQPKY.js +444 -0
  66. package/dist/chunk-4OH5RPSQ.cjs +38 -0
  67. package/dist/chunk-4XURSNM4.js +43 -0
  68. package/dist/chunk-4ZCRYHL6.js +407 -0
  69. package/dist/chunk-54PYEQLK.js +283 -0
  70. package/dist/chunk-5C6IQE42.cjs +35 -0
  71. package/dist/chunk-5NOHYJNH.js +84 -0
  72. package/dist/chunk-5PYK5ASL.js +162 -0
  73. package/dist/chunk-5YH6AKEO.js +146 -0
  74. package/dist/chunk-657BJOY5.cjs +324 -0
  75. package/dist/chunk-6QOUYSEE.cjs +2303 -0
  76. package/dist/chunk-7SAFECOJ.js +215 -0
  77. package/dist/chunk-7Y7HB7FB.cjs +53 -0
  78. package/dist/chunk-ABIAPZ6S.cjs +45 -0
  79. package/dist/chunk-AQL372JF.cjs +219 -0
  80. package/dist/chunk-AXDUVZVP.cjs +88 -0
  81. package/dist/chunk-AYFNYHMP.js +541 -0
  82. package/dist/chunk-BDO6B7MZ.cjs +451 -0
  83. package/dist/chunk-BKXEA2BK.cjs +286 -0
  84. package/dist/chunk-BLV47DX2.js +47 -0
  85. package/dist/chunk-BQCD5RAF.cjs +48 -0
  86. package/dist/chunk-BQL3YXMV.js +17429 -0
  87. package/dist/chunk-C6BEZNAM.cjs +45 -0
  88. package/dist/chunk-CFWV2JMR.js +234 -0
  89. package/dist/chunk-CV5PUHAE.cjs +86 -0
  90. package/dist/chunk-D5MVFFID.js +42 -0
  91. package/dist/chunk-D7R55WWT.js +1601 -0
  92. package/dist/chunk-DMNF4CNN.cjs +49 -0
  93. package/dist/chunk-DWP2SYF7.js +55 -0
  94. package/dist/chunk-E55VXNLK.cjs +17498 -0
  95. package/dist/chunk-EAELL43F.js +42 -0
  96. package/dist/chunk-EUQLZW6P.js +48 -0
  97. package/dist/chunk-EX5V2ZTU.js +40 -0
  98. package/dist/chunk-FH4ILMKF.js +38 -0
  99. package/dist/chunk-FRHBM2U7.js +33 -0
  100. package/dist/chunk-FX2TPX3L.cjs +45 -0
  101. package/dist/chunk-GCYD6T52.js +32 -0
  102. package/dist/chunk-GRYCUBJZ.js +9 -0
  103. package/dist/chunk-HWHBSAUC.js +40 -0
  104. package/dist/chunk-ICUE6T7J.cjs +50 -0
  105. package/dist/chunk-IDHP3R4I.js +31 -0
  106. package/dist/chunk-IUOQPOEN.js +2293 -0
  107. package/dist/chunk-J7L2S2GT.cjs +34 -0
  108. package/dist/chunk-JEBKLIMU.cjs +123 -0
  109. package/dist/chunk-KQHICFX3.js +121 -0
  110. package/dist/chunk-LMJE6V4N.cjs +42 -0
  111. package/dist/chunk-MVDGM5Y4.js +68 -0
  112. package/dist/chunk-NVEGEK3N.js +31 -0
  113. package/dist/chunk-NWMSWRUD.js +2236 -0
  114. package/dist/chunk-ODXL6BR3.js +77 -0
  115. package/dist/chunk-OJIDKDKF.js +68 -0
  116. package/dist/chunk-PKPQA5NR.js +15 -0
  117. package/dist/chunk-PNDBLFJW.cjs +50 -0
  118. package/dist/chunk-PYTKNRGM.js +280 -0
  119. package/dist/chunk-Q3WA72BF.cjs +70 -0
  120. package/dist/chunk-QB72BLCJ.cjs +237 -0
  121. package/dist/chunk-QHBBLML3.js +86 -0
  122. package/dist/chunk-RDIDAZ3S.cjs +9 -0
  123. package/dist/chunk-RGJPRXYY.js +48 -0
  124. package/dist/chunk-RQ6OZRUW.cjs +41 -0
  125. package/dist/chunk-SBE4SZAN.cjs +226 -0
  126. package/dist/chunk-SYGUWGWK.cjs +2329 -0
  127. package/dist/chunk-TDZ43MUX.cjs +165 -0
  128. package/dist/chunk-TGWMOHAO.js +17 -0
  129. package/dist/chunk-U4RYIS6Z.cjs +548 -0
  130. package/dist/chunk-UIQCTAVM.cjs +59 -0
  131. package/dist/chunk-XVASHRCE.cjs +70 -0
  132. package/dist/chunk-XYSMVQQD.cjs +1608 -0
  133. package/dist/chunk-YAIWI4Z5.js +7 -0
  134. package/dist/chunk-YP2PLNOF.cjs +34 -0
  135. package/dist/chunk-YSOLW4FS.cjs +11 -0
  136. package/dist/chunk-YY6OUR2U.js +44 -0
  137. package/dist/chunk-YZWS7FDT.cjs +409 -0
  138. package/dist/chunk-Z5YGWL65.cjs +39 -0
  139. package/dist/chunk-ZBGWYTCU.cjs +83 -0
  140. package/dist/chunk-ZHB5Q2M6.js +36 -0
  141. package/dist/chunk-ZHNDXNL4.js +45 -0
  142. package/dist/chunk-ZX3EDZ5C.cjs +17 -0
  143. package/dist/index.cjs +4405 -5156
  144. package/dist/index.css +9192 -0
  145. package/dist/index.d.cts +1324 -762
  146. package/dist/index.d.ts +1324 -762
  147. package/dist/index.js +3648 -5038
  148. package/package.json +14 -6
@@ -0,0 +1,1817 @@
1
+ /* src/components/Shared/FilePickerApp/FilePickerApp.module.css */
2
+ .root {
3
+ display: flex;
4
+ flex-direction: column;
5
+ height: 100%;
6
+ overflow: hidden;
7
+ }
8
+ .breadcrumbBar {
9
+ flex-shrink: 0;
10
+ padding: 6px 10px;
11
+ border-bottom: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
12
+ background: light-dark(rgba(0, 0, 0, 0.02), rgba(255, 255, 255, 0.02));
13
+ }
14
+ .breadcrumbSep {
15
+ font-size: 12px;
16
+ color: var(--mantine-color-dimmed);
17
+ }
18
+ .body {
19
+ display: flex;
20
+ flex: 1;
21
+ min-height: 0;
22
+ overflow: hidden;
23
+ }
24
+ .sidebar {
25
+ width: 140px;
26
+ flex-shrink: 0;
27
+ border-right: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
28
+ overflow-y: auto;
29
+ }
30
+ .folderTree {
31
+ display: flex;
32
+ flex-direction: column;
33
+ gap: 1px;
34
+ padding: 4px 0;
35
+ }
36
+ .treeItem {
37
+ display: flex;
38
+ align-items: center;
39
+ padding: 5px 8px;
40
+ border-radius: 4px;
41
+ cursor: pointer;
42
+ user-select: none;
43
+ width: 100%;
44
+ transition: background 0.1s;
45
+ }
46
+ .treeItem:hover {
47
+ background: light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.07));
48
+ }
49
+ .treeItem[data-active] {
50
+ background: var(--mantine-primary-color-light);
51
+ color: var(--mantine-primary-color-filled);
52
+ }
53
+ .content {
54
+ flex: 1;
55
+ overflow-y: auto;
56
+ min-width: 0;
57
+ }
58
+ .grid {
59
+ display: flex;
60
+ flex-wrap: wrap;
61
+ align-content: flex-start;
62
+ gap: 4px;
63
+ padding: 8px;
64
+ }
65
+ .item {
66
+ display: flex;
67
+ flex-direction: column;
68
+ align-items: center;
69
+ gap: 4px;
70
+ padding: 8px 6px;
71
+ border-radius: 6px;
72
+ width: 80px;
73
+ cursor: default;
74
+ user-select: none;
75
+ transition: background 0.1s;
76
+ }
77
+ .item:hover {
78
+ background: light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.08));
79
+ }
80
+ .item[data-selected] {
81
+ background: var(--mantine-primary-color-light);
82
+ outline: 1px solid var(--mantine-primary-color-filled);
83
+ }
84
+ .icon {
85
+ display: flex;
86
+ align-items: center;
87
+ justify-content: center;
88
+ width: 40px;
89
+ height: 40px;
90
+ }
91
+ .name {
92
+ text-align: center;
93
+ width: 100%;
94
+ max-width: 72px;
95
+ word-break: break-word;
96
+ display: -webkit-box;
97
+ line-clamp: 2;
98
+ -webkit-line-clamp: 2;
99
+ -webkit-box-orient: vertical;
100
+ overflow: hidden;
101
+ }
102
+ .empty {
103
+ display: flex;
104
+ align-items: center;
105
+ justify-content: center;
106
+ height: 100%;
107
+ padding: 24px;
108
+ }
109
+ .actionBar {
110
+ flex-shrink: 0;
111
+ display: flex;
112
+ align-items: center;
113
+ justify-content: space-between;
114
+ gap: 12px;
115
+ padding: 8px 12px;
116
+ border-top: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
117
+ background: light-dark(rgba(0, 0, 0, 0.02), rgba(255, 255, 255, 0.02));
118
+ }
119
+ .selectedLabel {
120
+ flex: 1;
121
+ min-width: 0;
122
+ }
123
+ .saveActionBar {
124
+ flex-shrink: 0;
125
+ display: flex;
126
+ align-items: center;
127
+ gap: 8px;
128
+ padding: 8px 12px;
129
+ border-top: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
130
+ background: light-dark(rgba(0, 0, 0, 0.02), rgba(255, 255, 255, 0.02));
131
+ }
132
+ .fileNameInput {
133
+ flex: 1;
134
+ min-width: 0;
135
+ }
136
+ .overlay {
137
+ position: absolute;
138
+ inset: 0;
139
+ background: rgba(0, 0, 0, 0.55);
140
+ display: flex;
141
+ align-items: center;
142
+ justify-content: center;
143
+ z-index: 10;
144
+ }
145
+ .panel {
146
+ width: 580px;
147
+ height: 400px;
148
+ background: var(--mantine-color-body);
149
+ border-radius: 8px;
150
+ overflow: hidden;
151
+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
152
+ }
153
+
154
+ /* src/components/Apps/NotesApp/NotesApp.module.css */
155
+ .container {
156
+ position: relative;
157
+ display: flex;
158
+ flex-direction: column;
159
+ width: 100%;
160
+ height: 100%;
161
+ overflow: hidden;
162
+ background-color: var(--mantine-color-body);
163
+ }
164
+ .toolbar {
165
+ display: flex;
166
+ flex-wrap: wrap;
167
+ align-items: center;
168
+ gap: 2px;
169
+ padding: 4px 8px;
170
+ border-bottom: 1px solid var(--mantine-color-default-border);
171
+ background-color: var(--mantine-color-default);
172
+ flex-shrink: 0;
173
+ }
174
+ .toolbarBtn {
175
+ display: flex;
176
+ align-items: center;
177
+ justify-content: center;
178
+ width: 28px;
179
+ height: 28px;
180
+ border: 1px solid transparent;
181
+ border-radius: var(--mantine-radius-sm);
182
+ background: transparent;
183
+ color: var(--mantine-color-text);
184
+ cursor: pointer;
185
+ font-size: 16px;
186
+ line-height: 1;
187
+ flex-shrink: 0;
188
+ transition: background-color 80ms ease, border-color 80ms ease;
189
+ }
190
+ .toolbarBtn svg {
191
+ width: 1em;
192
+ height: 1em;
193
+ flex-shrink: 0;
194
+ }
195
+ .toolbarBtn:hover:not(:disabled) {
196
+ background-color: var(--mantine-color-default-hover);
197
+ border-color: var(--mantine-color-default-border);
198
+ }
199
+ .toolbarBtn:disabled {
200
+ opacity: 0.4;
201
+ cursor: not-allowed;
202
+ }
203
+ .toolbarBtn.active {
204
+ background-color: var(--mantine-color-blue-light);
205
+ border-color: var(--mantine-color-blue-light-hover);
206
+ color: var(--mantine-color-blue-light-color);
207
+ }
208
+ .separator {
209
+ width: 1px;
210
+ height: 18px;
211
+ background-color: var(--mantine-color-default-border);
212
+ margin: 0 4px;
213
+ flex-shrink: 0;
214
+ }
215
+ .editorContent {
216
+ flex: 1;
217
+ overflow-y: auto;
218
+ padding: 16px 20px;
219
+ }
220
+ .editorContent :global(.ProseMirror) {
221
+ outline: none;
222
+ min-height: 100%;
223
+ font-size: 14px;
224
+ line-height: 1.6;
225
+ color: var(--mantine-color-text);
226
+ }
227
+ .editorContent :global(.ProseMirror p) {
228
+ margin: 0 0 8px;
229
+ }
230
+ .editorContent :global(.ProseMirror h1) {
231
+ font-size: 1.8em;
232
+ font-weight: 700;
233
+ margin: 0 0 12px;
234
+ line-height: 1.2;
235
+ }
236
+ .editorContent :global(.ProseMirror h2) {
237
+ font-size: 1.4em;
238
+ font-weight: 600;
239
+ margin: 0 0 10px;
240
+ line-height: 1.3;
241
+ }
242
+ .editorContent :global(.ProseMirror h3) {
243
+ font-size: 1.2em;
244
+ font-weight: 600;
245
+ margin: 0 0 8px;
246
+ }
247
+ .editorContent :global(.ProseMirror ul),
248
+ .editorContent :global(.ProseMirror ol) {
249
+ padding-left: 24px;
250
+ margin: 0 0 8px;
251
+ }
252
+ .editorContent :global(.ProseMirror li) {
253
+ margin-bottom: 2px;
254
+ }
255
+ .editorContent :global(.ProseMirror blockquote) {
256
+ border-left: 3px solid var(--mantine-color-blue-4);
257
+ padding-left: 12px;
258
+ margin: 0 0 8px;
259
+ color: var(--mantine-color-dimmed);
260
+ font-style: italic;
261
+ }
262
+ .editorContent :global(.ProseMirror code) {
263
+ font-family: "Courier New", monospace;
264
+ font-size: 0.9em;
265
+ background-color: var(--mantine-color-default-hover);
266
+ border-radius: 3px;
267
+ padding: 1px 4px;
268
+ }
269
+ .editorContent :global(.ProseMirror pre) {
270
+ background-color: var(--mantine-color-dark-7, #1a1a2e);
271
+ color: var(--mantine-color-gray-1, #f0f0f0);
272
+ border-radius: var(--mantine-radius-sm);
273
+ padding: 12px 16px;
274
+ margin: 0 0 12px;
275
+ overflow-x: auto;
276
+ }
277
+ .editorContent :global(.ProseMirror pre code) {
278
+ background: none;
279
+ padding: 0;
280
+ font-size: 0.875em;
281
+ }
282
+ .editorContent :global(.ProseMirror hr) {
283
+ border: none;
284
+ border-top: 2px solid var(--mantine-color-default-border);
285
+ margin: 16px 0;
286
+ }
287
+ .editorContent :global(.ProseMirror strong) {
288
+ font-weight: 700;
289
+ }
290
+ .editorContent :global(.ProseMirror em) {
291
+ font-style: italic;
292
+ }
293
+ .editorContent :global(.ProseMirror s) {
294
+ text-decoration: line-through;
295
+ }
296
+ .editorContent :global(.ProseMirror p.is-editor-empty:first-child::before) {
297
+ content: attr(data-placeholder);
298
+ color: var(--mantine-color-dimmed);
299
+ pointer-events: none;
300
+ float: left;
301
+ height: 0;
302
+ }
303
+
304
+ /* src/components/Shared/AppEmptyState/AppEmptyState.module.css */
305
+ .root {
306
+ position: relative;
307
+ width: 100%;
308
+ height: 100%;
309
+ display: flex;
310
+ justify-content: center;
311
+ align-items: center;
312
+ }
313
+ .container {
314
+ list-style: none;
315
+ padding: 0;
316
+ margin: 0;
317
+ display: flex;
318
+ flex-wrap: wrap;
319
+ gap: 10px;
320
+ width: 300px;
321
+ flex-direction: row;
322
+ justify-content: center;
323
+ align-items: center;
324
+ }
325
+ .item {
326
+ width: 100px;
327
+ height: 100px;
328
+ border-radius: 10px;
329
+ }
330
+ .label {
331
+ position: absolute;
332
+ inset: 0;
333
+ display: flex;
334
+ justify-content: center;
335
+ align-items: center;
336
+ margin: 0;
337
+ font-size: 0.9rem;
338
+ font-weight: 600;
339
+ color: #fff;
340
+ text-shadow: 0 1px 8px rgba(0, 0, 0, 0.5);
341
+ letter-spacing: 0.04em;
342
+ pointer-events: none;
343
+ }
344
+
345
+ /* src/components/Apps/ImageViewerApp/ImageViewerApp.module.css */
346
+ .container {
347
+ position: relative;
348
+ width: 100%;
349
+ height: 100%;
350
+ display: flex;
351
+ align-items: center;
352
+ justify-content: center;
353
+ background-color: var(--mantine-color-dark-9, #1a1a1a);
354
+ overflow: hidden;
355
+ }
356
+ .image {
357
+ max-width: 100%;
358
+ max-height: 100%;
359
+ object-fit: contain;
360
+ display: block;
361
+ }
362
+ .placeholder {
363
+ color: var(--mantine-color-dimmed);
364
+ text-align: center;
365
+ }
366
+
367
+ /* src/components/Apps/PdfApp/PdfApp.module.css */
368
+ .container {
369
+ position: relative;
370
+ width: 100%;
371
+ height: 100%;
372
+ }
373
+ .frame {
374
+ width: 100%;
375
+ height: 100%;
376
+ border: none;
377
+ display: block;
378
+ }
379
+
380
+ /* src/hooks/useDragDrop/DragOverlay.module.css */
381
+ .dragOverlay {
382
+ display: flex;
383
+ flex-direction: column;
384
+ align-items: center;
385
+ gap: 4px;
386
+ padding: 8px 12px;
387
+ border-radius: 4px;
388
+ background: var(--mantine-color-gray-1);
389
+ box-shadow: var(--mantine-shadow-md);
390
+ pointer-events: none;
391
+ }
392
+ [data-mantine-color-scheme=dark] .dragOverlay {
393
+ background: var(--mantine-color-dark-5);
394
+ }
395
+
396
+ /* src/components/Apps/MenuEditApp/MenuEditApp.module.css */
397
+ .container {
398
+ padding: 16px;
399
+ height: 100%;
400
+ overflow-y: auto;
401
+ }
402
+ .content {
403
+ display: flex;
404
+ flex-direction: column;
405
+ gap: 8px;
406
+ }
407
+ .folderList {
408
+ display: flex;
409
+ flex-direction: column;
410
+ gap: 12px;
411
+ }
412
+ .folderCard {
413
+ transition: box-shadow 0.15s ease;
414
+ }
415
+ .folderCard[data-is-over=true] {
416
+ box-shadow: var(--mantine-shadow-md);
417
+ outline: 2px solid var(--mantine-color-blue-5);
418
+ }
419
+ .folderHeader {
420
+ display: flex;
421
+ align-items: center;
422
+ justify-content: space-between;
423
+ padding: 8px 12px;
424
+ border-bottom: 1px solid var(--mantine-color-gray-2);
425
+ }
426
+ [data-mantine-color-scheme=dark] .folderHeader {
427
+ border-bottom-color: var(--mantine-color-dark-4);
428
+ }
429
+ .appList {
430
+ display: flex;
431
+ flex-direction: row;
432
+ flex-wrap: wrap;
433
+ gap: 4px;
434
+ padding: 8px 12px;
435
+ min-height: 40px;
436
+ }
437
+ .availableApps {
438
+ margin-top: 16px;
439
+ }
440
+ .availableApps[data-is-over=true] {
441
+ box-shadow: var(--mantine-shadow-md);
442
+ outline: 2px solid var(--mantine-color-blue-5);
443
+ }
444
+ .appGrid {
445
+ display: flex;
446
+ flex-wrap: wrap;
447
+ gap: 8px;
448
+ }
449
+ .appItem {
450
+ display: flex;
451
+ flex-direction: column;
452
+ align-items: center;
453
+ gap: 4px;
454
+ padding: 8px;
455
+ border-radius: 4px;
456
+ cursor: grab;
457
+ transition: background-color 0.15s ease, opacity 0.15s ease;
458
+ min-width: 60px;
459
+ user-select: none;
460
+ }
461
+ .appItem:hover {
462
+ background-color: var(--mantine-color-gray-1);
463
+ }
464
+ [data-mantine-color-scheme=dark] .appItem:hover {
465
+ background-color: var(--mantine-color-dark-5);
466
+ }
467
+ .appItem:active {
468
+ cursor: grabbing;
469
+ opacity: 0.7;
470
+ }
471
+ .appItem[data-dragging=true] {
472
+ opacity: 0.5;
473
+ }
474
+
475
+ /* src/components/Shared/DownloadProgress/DownloadProgress.module.css */
476
+ .spinner {
477
+ animation: spin 1s linear infinite;
478
+ }
479
+ @keyframes spin {
480
+ from {
481
+ transform: rotate(0deg);
482
+ }
483
+ to {
484
+ transform: rotate(360deg);
485
+ }
486
+ }
487
+
488
+ /* src/components/Apps/UploaderApp/UploaderApp.module.css */
489
+ .container {
490
+ position: relative;
491
+ width: 100%;
492
+ height: 100%;
493
+ display: flex;
494
+ flex-direction: column;
495
+ align-items: center;
496
+ justify-content: center;
497
+ padding: 16px;
498
+ overflow: hidden;
499
+ }
500
+ .backgroundIcon {
501
+ position: absolute;
502
+ top: 50%;
503
+ left: 50%;
504
+ transform: translate(-50%, -50%);
505
+ opacity: 0.1;
506
+ filter: blur(1px);
507
+ pointer-events: none;
508
+ }
509
+ .stepper {
510
+ position: relative;
511
+ z-index: 1;
512
+ max-width: 500px;
513
+ width: 100%;
514
+ }
515
+ .fileInfo {
516
+ padding: 8px 12px;
517
+ background: light-dark(rgba(0, 0, 0, 0.02), rgba(255, 255, 255, 0.02));
518
+ border-radius: 4px;
519
+ margin-top: 8px;
520
+ }
521
+ .resultPaper {
522
+ width: 100%;
523
+ height: 100%;
524
+ display: flex;
525
+ flex-direction: column;
526
+ align-items: center;
527
+ justify-content: center;
528
+ text-align: center;
529
+ padding: 24px;
530
+ border-radius: 8px;
531
+ }
532
+ .resultIcon {
533
+ margin-bottom: 16px;
534
+ }
535
+ .readyContainer {
536
+ display: flex;
537
+ flex-direction: column;
538
+ align-items: center;
539
+ justify-content: center;
540
+ gap: 16px;
541
+ padding: 16px 0;
542
+ }
543
+
544
+ /* src/components/Shared/ColorPicker/ColorPicker.module.css */
545
+ .root {
546
+ display: flex;
547
+ flex-direction: column;
548
+ gap: 8px;
549
+ }
550
+ .colorRow {
551
+ display: flex;
552
+ flex-wrap: wrap;
553
+ gap: 6px;
554
+ }
555
+ .colorSwatch {
556
+ width: 24px;
557
+ height: 24px;
558
+ border-radius: 50%;
559
+ border: 2px solid transparent;
560
+ cursor: pointer;
561
+ transition: transform 0.1s, border-color 0.1s;
562
+ }
563
+ .colorSwatch:hover:not([data-disabled]) {
564
+ transform: scale(1.15);
565
+ }
566
+ .colorSwatch[data-selected] {
567
+ border-color: var(--mantine-color-text);
568
+ transform: scale(1.15);
569
+ }
570
+ .colorSwatch[data-disabled] {
571
+ cursor: not-allowed;
572
+ opacity: 0.5;
573
+ }
574
+ .colorInput {
575
+ margin-top: 2px;
576
+ }
577
+
578
+ /* src/components/Shared/LanguageFlag/LanguageFlag.module.css */
579
+ .container {
580
+ display: inline-flex;
581
+ border-radius: 2px;
582
+ overflow: hidden;
583
+ flex-shrink: 0;
584
+ }
585
+ .flag {
586
+ width: 100%;
587
+ height: 100%;
588
+ display: block;
589
+ }
590
+
591
+ /* src/components/Apps/SettingsApp/SettingsApp.module.css */
592
+ .root {
593
+ display: flex;
594
+ height: 100%;
595
+ overflow: hidden;
596
+ position: relative;
597
+ }
598
+ .sidebar {
599
+ width: 160px;
600
+ flex-shrink: 0;
601
+ border-right: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
602
+ overflow-y: auto;
603
+ padding: 4px 0;
604
+ }
605
+ .navItem {
606
+ display: flex;
607
+ align-items: center;
608
+ padding: 5px 8px;
609
+ border-radius: 4px;
610
+ cursor: pointer;
611
+ user-select: none;
612
+ width: 100%;
613
+ transition: background 0.1s;
614
+ background: transparent;
615
+ border: none;
616
+ color: inherit;
617
+ font: inherit;
618
+ text-align: left;
619
+ }
620
+ .navItem:hover {
621
+ background: light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.07));
622
+ }
623
+ .navItem[data-active] {
624
+ background: var(--mantine-primary-color-light);
625
+ color: var(--mantine-primary-color-filled);
626
+ }
627
+ .content {
628
+ flex: 1;
629
+ overflow-y: auto;
630
+ min-width: 0;
631
+ }
632
+ .overviewPadding {
633
+ padding: 16px;
634
+ }
635
+ .sectionCard {
636
+ cursor: pointer;
637
+ transition: background 0.15s;
638
+ }
639
+ .sectionCard:hover {
640
+ background: light-dark(rgba(0, 0, 0, 0.03), rgba(255, 255, 255, 0.04));
641
+ }
642
+ .toolbar {
643
+ display: flex;
644
+ align-items: center;
645
+ justify-content: flex-end;
646
+ padding: 6px 12px;
647
+ border-bottom: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
648
+ background-color: light-dark(#f8f9fa, #1a1b1e);
649
+ flex-shrink: 0;
650
+ }
651
+ .dirtyIndicator {
652
+ color: var(--mantine-color-orange-6);
653
+ font-size: 10px;
654
+ line-height: 1;
655
+ margin-left: auto;
656
+ }
657
+ .versionFooter {
658
+ padding-top: 12px;
659
+ opacity: 0.6;
660
+ }
661
+
662
+ /* src/components/Apps/DeviceInfoApp/DeviceInfoApp.module.css */
663
+ .container {
664
+ padding: 16px;
665
+ height: 100%;
666
+ overflow: auto;
667
+ background: var(--mantine-color-body);
668
+ }
669
+
670
+ /* ../../node_modules/.bun/@mantine+dates@9.0.0+7c0e6e23d8f8fc3c/node_modules/@mantine/dates/styles.css */
671
+ .m_468e7eda {
672
+ padding-top: 0;
673
+ padding-bottom: 0;
674
+ appearance: none;
675
+ }
676
+ .m_468e7eda::-webkit-calendar-picker-indicator {
677
+ display: none;
678
+ }
679
+ .m_468e7eda::-webkit-clear-button {
680
+ display: none;
681
+ }
682
+ .m_468e7eda::-webkit-datetime-edit-hour-field,
683
+ .m_468e7eda::-webkit-datetime-edit-minute-field,
684
+ .m_468e7eda::-webkit-datetime-edit-second-field,
685
+ .m_468e7eda::-webkit-datetime-edit-ampm-field {
686
+ padding-top: 0;
687
+ max-height: calc(1.875rem * var(--mantine-scale));
688
+ display: inline;
689
+ }
690
+ .m_468e7eda::-webkit-datetime-edit-hour-field:focus,
691
+ .m_468e7eda::-webkit-datetime-edit-minute-field:focus,
692
+ .m_468e7eda::-webkit-datetime-edit-second-field:focus,
693
+ .m_468e7eda::-webkit-datetime-edit-ampm-field:focus {
694
+ background-color: var(--mantine-primary-color-filled);
695
+ color: var(--mantine-color-white);
696
+ }
697
+ .m_7a8f1e6d {
698
+ display: flex;
699
+ align-items: center;
700
+ height: 100%;
701
+ overflow: hidden;
702
+ }
703
+ :where([dir=rtl]) .m_7a8f1e6d {
704
+ flex-direction: row-reverse;
705
+ }
706
+ .m_d6bb0a54 {
707
+ display: flex;
708
+ align-items: center;
709
+ height: calc(var(--input-height) - 15px);
710
+ }
711
+ .m_b97ecb26 {
712
+ display: flex;
713
+ flex-direction: column;
714
+ }
715
+ .m_31fe42f9 {
716
+ display: flex;
717
+ gap: calc(0.25rem * var(--mantine-scale));
718
+ }
719
+ .m_9c4817c3 {
720
+ padding: calc(0.25rem * var(--mantine-scale));
721
+ }
722
+ .m_154c536b {
723
+ text-align: center;
724
+ min-width: 2.5em;
725
+ width: max-content;
726
+ height: 2em;
727
+ border-radius: var(--mantine-radius-default);
728
+ font-size: var(--control-font-size, var(--mantine-font-size-sm));
729
+ }
730
+ .m_154c536b:where([data-active]) {
731
+ background-color: var(--mantine-primary-color-filled);
732
+ color: var(--mantine-color-white);
733
+ }
734
+ @media (hover: hover) {
735
+ .m_154c536b:hover:where(:not([data-active])) {
736
+ color: var(--mantine-color-bright);
737
+ }
738
+ :where([data-mantine-color-scheme=dark]) .m_154c536b:hover:where(:not([data-active])) {
739
+ background-color: var(--mantine-color-dark-5);
740
+ }
741
+ :where([data-mantine-color-scheme=light]) .m_154c536b:hover:where(:not([data-active])) {
742
+ background-color: var(--mantine-color-gray-1);
743
+ }
744
+ }
745
+ @media (hover: none) {
746
+ .m_154c536b:active:where(:not([data-active])) {
747
+ color: var(--mantine-color-bright);
748
+ }
749
+ :where([data-mantine-color-scheme=dark]) .m_154c536b:active:where(:not([data-active])) {
750
+ background-color: var(--mantine-color-dark-5);
751
+ }
752
+ :where([data-mantine-color-scheme=light]) .m_154c536b:active:where(:not([data-active])) {
753
+ background-color: var(--mantine-color-gray-1);
754
+ }
755
+ }
756
+ .m_7be09d0c {
757
+ text-align: center;
758
+ height: 2em;
759
+ padding-inline: 0.5em;
760
+ border-radius: var(--mantine-radius-default);
761
+ font-size: var(--control-font-size, var(--mantine-font-size-sm));
762
+ }
763
+ .m_7be09d0c:where([data-active]) {
764
+ background-color: var(--mantine-primary-color-filled);
765
+ color: var(--mantine-color-white);
766
+ }
767
+ @media (hover: hover) {
768
+ .m_7be09d0c:hover:where(:not([data-active])) {
769
+ color: var(--mantine-color-bright);
770
+ }
771
+ :where([data-mantine-color-scheme=dark]) .m_7be09d0c:hover:where(:not([data-active])) {
772
+ background-color: var(--mantine-color-dark-5);
773
+ }
774
+ :where([data-mantine-color-scheme=light]) .m_7be09d0c:hover:where(:not([data-active])) {
775
+ background-color: var(--mantine-color-gray-1);
776
+ }
777
+ }
778
+ @media (hover: none) {
779
+ .m_7be09d0c:active:where(:not([data-active])) {
780
+ color: var(--mantine-color-bright);
781
+ }
782
+ :where([data-mantine-color-scheme=dark]) .m_7be09d0c:active:where(:not([data-active])) {
783
+ background-color: var(--mantine-color-dark-5);
784
+ }
785
+ :where([data-mantine-color-scheme=light]) .m_7be09d0c:active:where(:not([data-active])) {
786
+ background-color: var(--mantine-color-gray-1);
787
+ }
788
+ }
789
+ .m_7d00001d + .m_7d00001d {
790
+ margin-top: var(--mantine-spacing-sm);
791
+ }
792
+ .m_d8d918d7 {
793
+ margin-bottom: calc(0.25rem * var(--mantine-scale));
794
+ color: var(--mantine-color-dimmed);
795
+ font-size: calc(var(--control-font-size, var(--mantine-font-size-sm)) - 2px);
796
+ font-weight: var(--mantine-font-weight-medium);
797
+ display: flex;
798
+ align-items: center;
799
+ padding-inline-start: calc(0.4375rem * var(--mantine-scale));
800
+ }
801
+ .m_d8d918d7::after {
802
+ content: "";
803
+ width: 100%;
804
+ height: calc(0.0625rem * var(--mantine-scale));
805
+ flex: 1;
806
+ margin-inline-start: var(--mantine-spacing-xs);
807
+ }
808
+ :where([data-mantine-color-scheme=light]) .m_d8d918d7::after {
809
+ background-color: var(--mantine-color-gray-2);
810
+ }
811
+ :where([data-mantine-color-scheme=dark]) .m_d8d918d7::after {
812
+ background-color: var(--mantine-color-dark-4);
813
+ }
814
+ .m_6b43ba88 {
815
+ width: calc(2ch + 0.3em);
816
+ caret-color: transparent;
817
+ font-variant-numeric: tabular-nums;
818
+ position: relative;
819
+ height: 100%;
820
+ line-height: 1;
821
+ padding-inline: 0.15em;
822
+ border: 0;
823
+ text-align: center;
824
+ text-align-last: center;
825
+ background-color: transparent;
826
+ color: var(--input-color);
827
+ border-radius: calc(0.125rem * var(--mantine-scale));
828
+ appearance: none;
829
+ }
830
+ .m_6b43ba88:where([data-am-pm]) {
831
+ width: auto;
832
+ }
833
+ .m_6b43ba88:where(:disabled) {
834
+ cursor: not-allowed;
835
+ }
836
+ .m_6b43ba88::selection {
837
+ background-color: transparent;
838
+ }
839
+ .m_6b43ba88::placeholder {
840
+ opacity: 1;
841
+ color: inherit;
842
+ }
843
+ .m_6b43ba88:focus {
844
+ background-color: var(--mantine-primary-color-filled);
845
+ color: var(--mantine-color-white);
846
+ outline: 0;
847
+ }
848
+ .m_6b43ba88:focus::placeholder {
849
+ color: var(--mantine-color-white);
850
+ }
851
+ .m_396ce5cb {
852
+ --day-size-xs: calc(1.875rem * var(--mantine-scale));
853
+ --day-size-sm: calc(2.25rem * var(--mantine-scale));
854
+ --day-size-md: calc(2.625rem * var(--mantine-scale));
855
+ --day-size-lg: calc(3rem * var(--mantine-scale));
856
+ --day-size-xl: calc(3.375rem * var(--mantine-scale));
857
+ --day-size: var(--day-size-sm);
858
+ width: var(--day-size, var(--day-size-sm));
859
+ height: var(--day-size, var(--day-size-sm));
860
+ font-size: calc(var(--day-size) / 2.8);
861
+ display: inline-flex;
862
+ justify-content: center;
863
+ align-items: center;
864
+ user-select: none;
865
+ cursor: pointer;
866
+ background-color: transparent;
867
+ border-radius: var(--mantine-radius-default);
868
+ color: var(--mantine-color-text);
869
+ opacity: 1;
870
+ }
871
+ @media (hover: hover) {
872
+ [data-mantine-color-scheme=light] .m_396ce5cb:hover:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
873
+ background-color: var(--mantine-color-gray-0);
874
+ }
875
+ [data-mantine-color-scheme=dark] .m_396ce5cb:hover:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
876
+ background-color: var(--mantine-color-dark-5);
877
+ }
878
+ }
879
+ @media (hover: none) {
880
+ [data-mantine-color-scheme=light] .m_396ce5cb:active:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
881
+ background-color: var(--mantine-color-gray-0);
882
+ }
883
+ [data-mantine-color-scheme=dark] .m_396ce5cb:active:where(:not([data-static], [data-disabled], [data-selected], [data-in-range])) {
884
+ background-color: var(--mantine-color-dark-5);
885
+ }
886
+ }
887
+ .m_396ce5cb:where([data-static]) {
888
+ user-select: auto;
889
+ cursor: default;
890
+ }
891
+ .m_396ce5cb:where([data-weekend]) {
892
+ color: var(--mantine-color-red-6);
893
+ }
894
+ .m_396ce5cb:where([data-outside]) {
895
+ color: var(--mantine-color-dimmed);
896
+ opacity: 0.5;
897
+ }
898
+ .m_396ce5cb:where(:disabled, [data-disabled]) {
899
+ color: var(--mantine-color-disabled-color);
900
+ cursor: not-allowed;
901
+ opacity: 0.5;
902
+ }
903
+ .m_396ce5cb:where([data-hidden]) {
904
+ display: none;
905
+ }
906
+ :where([data-mantine-color-scheme=light]) .m_396ce5cb:where([data-today][data-highlight-today]:not([data-selected], [data-in-range])) {
907
+ border: 1px solid var(--mantine-color-gray-4);
908
+ }
909
+ :where([data-mantine-color-scheme=dark]) .m_396ce5cb:where([data-today][data-highlight-today]:not([data-selected], [data-in-range])) {
910
+ border: 1px solid var(--mantine-color-dark-4);
911
+ }
912
+ .m_396ce5cb:where([data-in-range]) {
913
+ background-color: var(--mantine-primary-color-light);
914
+ border-radius: 0;
915
+ }
916
+ @media (hover: hover) {
917
+ .m_396ce5cb:where([data-in-range]):hover:where(:not([data-disabled], [data-static])) {
918
+ background-color: var(--mantine-primary-color-light);
919
+ }
920
+ }
921
+ @media (hover: none) {
922
+ .m_396ce5cb:where([data-in-range]):active:where(:not([data-disabled], [data-static])) {
923
+ background-color: var(--mantine-primary-color-light);
924
+ }
925
+ }
926
+ .m_396ce5cb:where([data-first-in-range]) {
927
+ border-radius: 0;
928
+ border-start-start-radius: var(--mantine-radius-default);
929
+ border-end-start-radius: var(--mantine-radius-default);
930
+ }
931
+ .m_396ce5cb:where([data-last-in-range]) {
932
+ border-radius: 0;
933
+ border-end-end-radius: var(--mantine-radius-default);
934
+ border-start-end-radius: var(--mantine-radius-default);
935
+ }
936
+ .m_396ce5cb:where([data-last-in-range][data-first-in-range]) {
937
+ border-radius: var(--mantine-radius-default);
938
+ }
939
+ .m_396ce5cb:where([data-full-width]) {
940
+ width: 100%;
941
+ height: auto;
942
+ min-height: var(--day-size);
943
+ aspect-ratio: 1;
944
+ }
945
+ .m_396ce5cb:where([data-selected]) {
946
+ background-color: var(--mantine-primary-color-filled);
947
+ color: var(--mantine-primary-color-contrast);
948
+ }
949
+ @media (hover: hover) {
950
+ .m_396ce5cb:where([data-selected]):hover:where(:not([data-disabled], [data-static])) {
951
+ background-color: var(--mantine-primary-color-filled-hover);
952
+ }
953
+ }
954
+ @media (hover: none) {
955
+ .m_396ce5cb:where([data-selected]):active:where(:not([data-disabled], [data-static])) {
956
+ background-color: var(--mantine-primary-color-filled-hover);
957
+ }
958
+ }
959
+ .m_18a3eca {
960
+ color: var(--mantine-color-dimmed);
961
+ font-weight: var(--mantine-font-weight-regular);
962
+ font-size: var(--wr-fz, var(--mantine-font-size-sm));
963
+ text-transform: capitalize;
964
+ padding-bottom: calc(var(--wr-spacing, var(--mantine-spacing-sm)) / 2);
965
+ }
966
+ .m_cc9820d3 {
967
+ border-collapse: collapse;
968
+ table-layout: fixed;
969
+ }
970
+ .m_cc9820d3[data-full-width] {
971
+ width: 100%;
972
+ }
973
+ .m_8f457cd5 {
974
+ padding: 0;
975
+ }
976
+ .m_8f457cd5:where([data-with-spacing]) {
977
+ padding: calc(0.03125rem * var(--mantine-scale));
978
+ }
979
+ .m_6cff9dea {
980
+ --wn-size-xs: calc(1.875rem * var(--mantine-scale));
981
+ --wn-size-sm: calc(2.25rem * var(--mantine-scale));
982
+ --wn-size-md: calc(2.625rem * var(--mantine-scale));
983
+ --wn-size-lg: calc(3rem * var(--mantine-scale));
984
+ --wn-size-xl: calc(3.375rem * var(--mantine-scale));
985
+ color: var(--mantine-color-dimmed);
986
+ font-weight: var(--mantine-font-weight-regular);
987
+ font-size: calc(var(--wn-size, var(--wn-size-sm)) / 2.8);
988
+ text-align: center;
989
+ width: var(--wn-size, var(--wn-size-sm));
990
+ }
991
+ .m_dc6a3c71 {
992
+ --dpc-size-xs: calc(1.875rem * var(--mantine-scale));
993
+ --dpc-size-sm: calc(2.25rem * var(--mantine-scale));
994
+ --dpc-size-md: calc(2.625rem * var(--mantine-scale));
995
+ --dpc-size-lg: calc(3rem * var(--mantine-scale));
996
+ --dpc-size-xl: calc(3.375rem * var(--mantine-scale));
997
+ --dpc-size: var(--dpc-size-sm);
998
+ font-size: var(--dpc-fz, var(--mantine-font-size-sm));
999
+ height: var(--dpc-size);
1000
+ width: calc((var(--dpc-size) * 7) / 3 + calc(0.09375rem * var(--mantine-scale)));
1001
+ display: flex;
1002
+ justify-content: center;
1003
+ align-items: center;
1004
+ user-select: none;
1005
+ cursor: pointer;
1006
+ background-color: transparent;
1007
+ color: var(--mantine-color-text);
1008
+ opacity: 1;
1009
+ border-radius: var(--mantine-radius-default);
1010
+ }
1011
+ @media (hover: hover) {
1012
+ :where([data-mantine-color-scheme=light]) .m_dc6a3c71:hover:where(:not([data-disabled], :disabled)) {
1013
+ background-color: var(--mantine-color-gray-0);
1014
+ }
1015
+ :where([data-mantine-color-scheme=dark]) .m_dc6a3c71:hover:where(:not([data-disabled], :disabled)) {
1016
+ background-color: var(--mantine-color-dark-5);
1017
+ }
1018
+ }
1019
+ @media (hover: none) {
1020
+ :where([data-mantine-color-scheme=light]) .m_dc6a3c71:active:where(:not([data-disabled], :disabled)) {
1021
+ background-color: var(--mantine-color-gray-0);
1022
+ }
1023
+ :where([data-mantine-color-scheme=dark]) .m_dc6a3c71:active:where(:not([data-disabled], :disabled)) {
1024
+ background-color: var(--mantine-color-dark-5);
1025
+ }
1026
+ }
1027
+ .m_dc6a3c71:where(:disabled, [data-disabled]) {
1028
+ color: var(--mantine-color-disabled-color);
1029
+ cursor: not-allowed;
1030
+ opacity: 0.5;
1031
+ }
1032
+ .m_dc6a3c71:where([data-selected]) {
1033
+ background-color: var(--mantine-primary-color-filled);
1034
+ color: var(--mantine-primary-color-contrast, var(--mantine-color-white));
1035
+ }
1036
+ @media (hover: hover) {
1037
+ .m_dc6a3c71:where([data-selected]):hover {
1038
+ background-color: var(--mantine-primary-color-filled-hover);
1039
+ }
1040
+ }
1041
+ @media (hover: none) {
1042
+ .m_dc6a3c71:where([data-selected]):active {
1043
+ background-color: var(--mantine-primary-color-filled-hover);
1044
+ }
1045
+ }
1046
+ .m_dc6a3c71:where([data-in-range]) {
1047
+ background-color: var(--mantine-primary-color-light-hover);
1048
+ border-radius: 0;
1049
+ }
1050
+ @media (hover: hover) {
1051
+ .m_dc6a3c71:where([data-in-range]):hover {
1052
+ background-color: var(--mantine-primary-color-light);
1053
+ }
1054
+ }
1055
+ @media (hover: none) {
1056
+ .m_dc6a3c71:where([data-in-range]):active {
1057
+ background-color: var(--mantine-primary-color-light);
1058
+ }
1059
+ }
1060
+ .m_dc6a3c71:where([data-first-in-range]) {
1061
+ border-radius: 0;
1062
+ border-start-start-radius: var(--mantine-radius-default);
1063
+ border-end-start-radius: var(--mantine-radius-default);
1064
+ }
1065
+ .m_dc6a3c71:where([data-last-in-range]) {
1066
+ border-radius: 0;
1067
+ border-end-end-radius: var(--mantine-radius-default);
1068
+ border-start-end-radius: var(--mantine-radius-default);
1069
+ }
1070
+ .m_dc6a3c71:where([data-first-in-range][data-last-in-range]) {
1071
+ border-radius: var(--mantine-radius-default);
1072
+ }
1073
+ .m_dc6a3c71:where([data-full-width]) {
1074
+ width: 100%;
1075
+ }
1076
+ .m_9206547b {
1077
+ border-collapse: collapse;
1078
+ border-width: 0;
1079
+ }
1080
+ .m_9206547b[data-full-width] {
1081
+ width: 100%;
1082
+ }
1083
+ .m_c5a19c7d {
1084
+ padding: 0;
1085
+ }
1086
+ .m_c5a19c7d:where([data-with-spacing]) {
1087
+ padding: calc(0.03125rem * var(--mantine-scale));
1088
+ }
1089
+ .m_2a6c32d {
1090
+ border-collapse: collapse;
1091
+ border-width: 0;
1092
+ cursor: pointer;
1093
+ }
1094
+ .m_2a6c32d[data-full-width] {
1095
+ width: 100%;
1096
+ }
1097
+ .m_fe27622f {
1098
+ padding: 0;
1099
+ }
1100
+ .m_fe27622f:where([data-with-spacing]) {
1101
+ padding: calc(0.03125rem * var(--mantine-scale));
1102
+ }
1103
+ .m_730a79ed {
1104
+ --dch-control-size-xs: calc(1.875rem * var(--mantine-scale));
1105
+ --dch-control-size-sm: calc(2.25rem * var(--mantine-scale));
1106
+ --dch-control-size-md: calc(2.625rem * var(--mantine-scale));
1107
+ --dch-control-size-lg: calc(3rem * var(--mantine-scale));
1108
+ --dch-control-size-xl: calc(3.375rem * var(--mantine-scale));
1109
+ --dch-control-size: var(--dch-control-size-sm);
1110
+ display: flex;
1111
+ max-width: calc(var(--dch-control-size) * 8 + calc(0.4375rem * var(--mantine-scale)));
1112
+ margin-bottom: var(--mantine-spacing-xs);
1113
+ }
1114
+ .m_730a79ed[data-full-width] {
1115
+ max-width: none;
1116
+ width: 100%;
1117
+ }
1118
+ .m_f6645d97,
1119
+ .m_2351eeb0 {
1120
+ height: var(--dch-control-size);
1121
+ border-radius: var(--mantine-radius-default);
1122
+ display: flex;
1123
+ justify-content: center;
1124
+ align-items: center;
1125
+ user-select: none;
1126
+ opacity: 1;
1127
+ cursor: pointer;
1128
+ }
1129
+ .m_f6645d97:where([data-static]),
1130
+ .m_2351eeb0:where([data-static]) {
1131
+ cursor: default;
1132
+ }
1133
+ @media (hover: hover) {
1134
+ [data-mantine-color-scheme=light] .m_f6645d97:hover:where(:not([data-disabled], [data-static], :disabled)),
1135
+ [data-mantine-color-scheme=light] .m_2351eeb0:hover:where(:not([data-disabled], [data-static], :disabled)) {
1136
+ background-color: var(--mantine-color-gray-0);
1137
+ }
1138
+ [data-mantine-color-scheme=dark] .m_f6645d97:hover:where(:not([data-disabled], [data-static], :disabled)),
1139
+ [data-mantine-color-scheme=dark] .m_2351eeb0:hover:where(:not([data-disabled], [data-static], :disabled)) {
1140
+ background-color: var(--mantine-color-dark-5);
1141
+ }
1142
+ }
1143
+ @media (hover: none) {
1144
+ [data-mantine-color-scheme=light] .m_f6645d97:active:where(:not([data-disabled], [data-static], :disabled)),
1145
+ [data-mantine-color-scheme=light] .m_2351eeb0:active:where(:not([data-disabled], [data-static], :disabled)) {
1146
+ background-color: var(--mantine-color-gray-0);
1147
+ }
1148
+ [data-mantine-color-scheme=dark] .m_f6645d97:active:where(:not([data-disabled], [data-static], :disabled)),
1149
+ [data-mantine-color-scheme=dark] .m_2351eeb0:active:where(:not([data-disabled], [data-static], :disabled)) {
1150
+ background-color: var(--mantine-color-dark-5);
1151
+ }
1152
+ }
1153
+ .m_f6645d97:where(:disabled, [data-disabled]),
1154
+ .m_2351eeb0:where(:disabled, [data-disabled]) {
1155
+ opacity: 0.2;
1156
+ cursor: not-allowed;
1157
+ }
1158
+ .m_2351eeb0 {
1159
+ width: var(--dch-control-size);
1160
+ }
1161
+ .m_f6645d97 {
1162
+ flex: 1;
1163
+ font-size: var(--dch-fz, var(--mantine-font-size-sm));
1164
+ font-weight: var(--mantine-font-weight-medium);
1165
+ text-transform: capitalize;
1166
+ }
1167
+ .m_367dc749 {
1168
+ width: 60%;
1169
+ height: 60%;
1170
+ }
1171
+ .m_367dc749:where([data-direction=next]) {
1172
+ transform: rotate(270deg);
1173
+ }
1174
+ :where([dir=rtl]) .m_367dc749:where([data-direction=next]) {
1175
+ transform: rotate(90deg);
1176
+ }
1177
+ .m_367dc749:where([data-direction=previous]) {
1178
+ transform: rotate(90deg);
1179
+ }
1180
+ :where([dir=rtl]) .m_367dc749:where([data-direction=previous]) {
1181
+ transform: rotate(270deg);
1182
+ }
1183
+ .m_30b26e33 {
1184
+ display: flex;
1185
+ gap: var(--mantine-spacing-md);
1186
+ }
1187
+ .m_30b26e33[data-full-width] {
1188
+ width: 100%;
1189
+ }
1190
+ .m_30b26e33[data-full-width] > * {
1191
+ flex: 1;
1192
+ }
1193
+ .m_6fa5e2aa {
1194
+ cursor: pointer;
1195
+ line-height: unset;
1196
+ }
1197
+ .m_6fa5e2aa:where([data-read-only]) {
1198
+ cursor: default;
1199
+ }
1200
+ .m_765a40cf {
1201
+ display: flex;
1202
+ font-size: var(--preset-font-size);
1203
+ }
1204
+ .m_d6a681e1 {
1205
+ display: flex;
1206
+ flex-direction: column;
1207
+ border-inline-end: calc(0.0625rem * var(--mantine-scale)) solid;
1208
+ padding-inline-end: 0.5em;
1209
+ margin-inline-end: 0.5em;
1210
+ }
1211
+ :where([data-mantine-color-scheme=light]) .m_d6a681e1 {
1212
+ border-color: var(--mantine-color-gray-2);
1213
+ }
1214
+ :where([data-mantine-color-scheme=dark]) .m_d6a681e1 {
1215
+ border-color: var(--mantine-color-dark-5);
1216
+ }
1217
+ .m_acd30b22 {
1218
+ padding: 0.52em 0.8em;
1219
+ border-radius: var(--mantine-radius-default);
1220
+ font-size: var(--preset-font-size);
1221
+ white-space: nowrap;
1222
+ }
1223
+ @media (hover: hover) {
1224
+ :where([data-mantine-color-scheme=light]) .m_acd30b22:hover {
1225
+ background-color: var(--mantine-color-gray-0);
1226
+ }
1227
+ :where([data-mantine-color-scheme=dark]) .m_acd30b22:hover {
1228
+ background-color: var(--mantine-color-dark-5);
1229
+ }
1230
+ }
1231
+ @media (hover: none) {
1232
+ :where([data-mantine-color-scheme=light]) .m_acd30b22:active {
1233
+ background-color: var(--mantine-color-gray-0);
1234
+ }
1235
+ :where([data-mantine-color-scheme=dark]) .m_acd30b22:active {
1236
+ background-color: var(--mantine-color-dark-5);
1237
+ }
1238
+ }
1239
+ .m_208d2562 {
1240
+ display: flex;
1241
+ align-items: stretch;
1242
+ margin-top: var(--mantine-spacing-md);
1243
+ }
1244
+ .m_62ee059 {
1245
+ flex: 1;
1246
+ margin-inline-end: var(--mantine-spacing-md);
1247
+ }
1248
+ .m_ac3f4d63 {
1249
+ text-align: center;
1250
+ padding-inline: 1em;
1251
+ padding-block: 0.25em;
1252
+ border: 1px solid var(--mantine-color-default-border);
1253
+ background-color: var(--mantine-color-default);
1254
+ color: var(--mantine-color-default-color);
1255
+ border-radius: var(--time-grid-radius, var(--mantine-radius-default));
1256
+ font-size: var(--time-grid-fz, var(--mantine-font-size-sm));
1257
+ }
1258
+ @media (hover: hover) {
1259
+ .m_ac3f4d63:hover:where(:not([data-disabled])) {
1260
+ background-color: var(--mantine-color-default-hover);
1261
+ }
1262
+ }
1263
+ @media (hover: none) {
1264
+ .m_ac3f4d63:active:where(:not([data-disabled])) {
1265
+ background-color: var(--mantine-color-default-hover);
1266
+ }
1267
+ }
1268
+ .m_ac3f4d63:where([data-active]) {
1269
+ background-color: var(--mantine-primary-color-filled);
1270
+ color: var(--mantine-color-white);
1271
+ border-color: transparent;
1272
+ }
1273
+ @media (hover: hover) {
1274
+ .m_ac3f4d63:where([data-active]):hover:where(:not([data-disabled])) {
1275
+ background-color: var(--mantine-primary-color-filled-hover);
1276
+ }
1277
+ }
1278
+ @media (hover: none) {
1279
+ .m_ac3f4d63:where([data-active]):active:where(:not([data-disabled])) {
1280
+ background-color: var(--mantine-primary-color-filled-hover);
1281
+ }
1282
+ }
1283
+ .m_ac3f4d63:where(:disabled, [data-disabled]) {
1284
+ opacity: 0.5;
1285
+ cursor: not-allowed;
1286
+ }
1287
+ .m_2a0c4eda {
1288
+ width: fit-content;
1289
+ display: flex;
1290
+ align-items: center;
1291
+ font-size: var(--mini-calendar-font-size);
1292
+ }
1293
+ .m_2a05be4f {
1294
+ display: flex;
1295
+ font-size: inherit;
1296
+ }
1297
+ .m_99d16a4 {
1298
+ display: flex;
1299
+ min-width: 3em;
1300
+ gap: 0.5em;
1301
+ font-size: inherit;
1302
+ flex-direction: column;
1303
+ align-items: center;
1304
+ line-height: 1;
1305
+ padding: 0.75em;
1306
+ border-radius: var(--mantine-radius-default);
1307
+ }
1308
+ .m_99d16a4:where([data-selected]) {
1309
+ color: var(--mantine-primary-color-contrast);
1310
+ background-color: var(--mantine-primary-color-filled);
1311
+ }
1312
+ @media (hover: hover) {
1313
+ .m_99d16a4:where([data-selected]):hover:where(:not([data-disabled], [data-static])) {
1314
+ background-color: var(--mantine-primary-color-filled-hover);
1315
+ }
1316
+ }
1317
+ @media (hover: none) {
1318
+ .m_99d16a4:where([data-selected]):active:where(:not([data-disabled], [data-static])) {
1319
+ background-color: var(--mantine-primary-color-filled-hover);
1320
+ }
1321
+ }
1322
+ .m_99d16a4:where([data-disabled]) {
1323
+ opacity: 0.3;
1324
+ cursor: not-allowed;
1325
+ }
1326
+ @media (hover: hover) {
1327
+ :where([data-mantine-color-scheme=light]) .m_99d16a4:hover:where(:not([data-disabled], [data-selected])) {
1328
+ background-color: var(--mantine-color-gray-1);
1329
+ }
1330
+ }
1331
+ @media (hover: none) {
1332
+ :where([data-mantine-color-scheme=light]) .m_99d16a4:active:where(:not([data-disabled], [data-selected])) {
1333
+ background-color: var(--mantine-color-gray-1);
1334
+ }
1335
+ }
1336
+ @media (hover: hover) {
1337
+ :where([data-mantine-color-scheme=dark]) .m_99d16a4:hover:where(:not([data-disabled], [data-selected])) {
1338
+ background-color: var(--mantine-color-dark-5);
1339
+ }
1340
+ }
1341
+ @media (hover: none) {
1342
+ :where([data-mantine-color-scheme=dark]) .m_99d16a4:active:where(:not([data-disabled], [data-selected])) {
1343
+ background-color: var(--mantine-color-dark-5);
1344
+ }
1345
+ }
1346
+ .m_176ca23c {
1347
+ font-size: 0.75em;
1348
+ font-weight: var(--mantine-font-weight-medium);
1349
+ opacity: 0.65;
1350
+ }
1351
+ .m_d830530d {
1352
+ font-size: 0.9em;
1353
+ font-weight: var(--mantine-font-weight-medium);
1354
+ }
1355
+ .m_14c23465 {
1356
+ align-self: stretch;
1357
+ font-size: inherit;
1358
+ width: 2em;
1359
+ border-radius: var(--mantine-radius-default);
1360
+ display: flex;
1361
+ align-items: center;
1362
+ justify-content: center;
1363
+ color: var(--mantine-color-bright);
1364
+ }
1365
+ .m_14c23465:where([data-disabled]) {
1366
+ opacity: 0.3;
1367
+ cursor: not-allowed;
1368
+ }
1369
+ .m_14c23465 [data-chevron] {
1370
+ font-size: inherit;
1371
+ width: 60%;
1372
+ }
1373
+ .m_14c23465[data-direction=previous] [data-chevron] {
1374
+ transform: rotate(90deg);
1375
+ }
1376
+ [dir=rtl] .m_14c23465[data-direction=previous] [data-chevron] {
1377
+ transform: rotate(-90deg);
1378
+ }
1379
+ .m_14c23465[data-direction=next] [data-chevron] {
1380
+ transform: rotate(-90deg);
1381
+ }
1382
+ [dir=rtl] .m_14c23465[data-direction=next] [data-chevron] {
1383
+ transform: rotate(90deg);
1384
+ }
1385
+ @media (hover: hover) {
1386
+ :where([data-mantine-color-scheme=light]) .m_14c23465:hover:where(:not([data-disabled])) {
1387
+ background-color: var(--mantine-color-gray-1);
1388
+ }
1389
+ }
1390
+ @media (hover: none) {
1391
+ :where([data-mantine-color-scheme=light]) .m_14c23465:active:where(:not([data-disabled])) {
1392
+ background-color: var(--mantine-color-gray-1);
1393
+ }
1394
+ }
1395
+ @media (hover: hover) {
1396
+ :where([data-mantine-color-scheme=dark]) .m_14c23465:hover:where(:not([data-disabled])) {
1397
+ background-color: var(--mantine-color-dark-5);
1398
+ }
1399
+ }
1400
+ @media (hover: none) {
1401
+ :where([data-mantine-color-scheme=dark]) .m_14c23465:active:where(:not([data-disabled])) {
1402
+ background-color: var(--mantine-color-dark-5);
1403
+ }
1404
+ }
1405
+
1406
+ /* src/components/Apps/CalendarApp/CalendarApp.module.css */
1407
+ .root {
1408
+ display: flex;
1409
+ justify-content: center;
1410
+ align-items: flex-start;
1411
+ padding: 12px;
1412
+ height: 100%;
1413
+ }
1414
+
1415
+ /* src/components/Shared/IconColorPicker/IconColorPicker.module.css */
1416
+ .root {
1417
+ display: flex;
1418
+ flex-direction: column;
1419
+ gap: 8px;
1420
+ }
1421
+ .iconGrid {
1422
+ padding: 4px;
1423
+ }
1424
+ .iconButton {
1425
+ display: flex;
1426
+ align-items: center;
1427
+ justify-content: center;
1428
+ width: 36px;
1429
+ height: 36px;
1430
+ border-radius: 6px;
1431
+ border: 2px solid transparent;
1432
+ transition: background 0.1s, border-color 0.1s;
1433
+ cursor: pointer;
1434
+ }
1435
+ .iconButton:hover {
1436
+ background: light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.08));
1437
+ }
1438
+ .iconButton[data-selected] {
1439
+ border-color: var(--mantine-primary-color-filled);
1440
+ background: light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.12));
1441
+ }
1442
+
1443
+ /* src/components/Shared/CreateItemApp/CreateItemApp.module.css */
1444
+ .content {
1445
+ display: flex;
1446
+ flex-direction: column;
1447
+ gap: 12px;
1448
+ padding: 16px;
1449
+ }
1450
+ .header {
1451
+ padding: 12px 16px;
1452
+ border-bottom: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
1453
+ }
1454
+ .nameRow {
1455
+ display: flex;
1456
+ align-items: center;
1457
+ gap: 12px;
1458
+ }
1459
+ .iconPreview {
1460
+ flex-shrink: 0;
1461
+ display: flex;
1462
+ align-items: center;
1463
+ justify-content: center;
1464
+ width: 56px;
1465
+ height: 56px;
1466
+ border-radius: 8px;
1467
+ background: light-dark(rgba(0, 0, 0, 0.04), rgba(255, 255, 255, 0.06));
1468
+ }
1469
+ .nameInput {
1470
+ flex: 1;
1471
+ }
1472
+ .collapseToggle {
1473
+ display: flex;
1474
+ align-items: center;
1475
+ padding: 4px 0;
1476
+ cursor: pointer;
1477
+ user-select: none;
1478
+ }
1479
+ .collapseToggle:hover {
1480
+ opacity: 0.8;
1481
+ }
1482
+ .pickerWrapper {
1483
+ padding: 8px;
1484
+ border-radius: 8px;
1485
+ background: light-dark(rgba(0, 0, 0, 0.03), rgba(255, 255, 255, 0.04));
1486
+ border: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
1487
+ }
1488
+
1489
+ /* src/components/AppMenuBar/AppMenuBar.module.css */
1490
+ .root {
1491
+ display: flex;
1492
+ flex-direction: row;
1493
+ align-items: center;
1494
+ gap: 4px;
1495
+ padding: 0 6px;
1496
+ height: 50px;
1497
+ flex-shrink: 0;
1498
+ background: var(--color-surface-subtle);
1499
+ border-bottom: 1px solid var(--color-surface-border);
1500
+ overflow-x: auto;
1501
+ overflow-y: hidden;
1502
+ }
1503
+ .root::-webkit-scrollbar {
1504
+ display: none;
1505
+ }
1506
+ .menuTrigger {
1507
+ all: unset;
1508
+ display: flex;
1509
+ align-items: center;
1510
+ gap: 6px;
1511
+ padding: 8px 12px;
1512
+ border-radius: var(--radius-sm);
1513
+ font-size: var(--mantine-font-size-sm);
1514
+ cursor: pointer;
1515
+ white-space: nowrap;
1516
+ line-height: 1;
1517
+ min-height: 36px;
1518
+ }
1519
+ .menuTrigger:hover {
1520
+ background: light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.06));
1521
+ }
1522
+ .element {
1523
+ display: flex;
1524
+ align-items: center;
1525
+ gap: 6px;
1526
+ padding: 0 4px;
1527
+ }
1528
+ .sliderLabel {
1529
+ font-size: var(--mantine-font-size-sm);
1530
+ color: var(--mantine-color-dimmed);
1531
+ white-space: nowrap;
1532
+ }
1533
+ .select,
1534
+ .textInput,
1535
+ .numberInput {
1536
+ min-width: 100px;
1537
+ max-width: 200px;
1538
+ }
1539
+ .numberInput {
1540
+ width: 120px;
1541
+ }
1542
+ .slider {
1543
+ width: 300px;
1544
+ }
1545
+
1546
+ /* src/components/Apps/TerminalApp/Terminal.module.css */
1547
+ .terminalContainer {
1548
+ width: 100%;
1549
+ height: 100%;
1550
+ display: flex;
1551
+ flex-direction: column;
1552
+ background-color: #1e1e1e;
1553
+ }
1554
+ .terminalWrapper {
1555
+ flex: 1;
1556
+ min-height: 0;
1557
+ padding: 8px;
1558
+ }
1559
+ .terminal {
1560
+ width: 100%;
1561
+ height: 100%;
1562
+ }
1563
+ .terminal :global(.xterm) {
1564
+ height: 100%;
1565
+ padding: 4px;
1566
+ }
1567
+ .terminal :global(.xterm-viewport) {
1568
+ overflow-y: auto;
1569
+ }
1570
+ .terminal :global(.xterm-screen) {
1571
+ background-color: #1e1e1e;
1572
+ }
1573
+ .statusBar {
1574
+ height: 24px;
1575
+ display: flex;
1576
+ align-items: center;
1577
+ gap: 8px;
1578
+ padding: 0 8px;
1579
+ background-color: #2d2d2d;
1580
+ border-top: 1px solid #3d3d3d;
1581
+ font-size: 12px;
1582
+ color: #888;
1583
+ }
1584
+ .statusIndicator {
1585
+ display: flex;
1586
+ align-items: center;
1587
+ }
1588
+ .statusIndicator[data-status=idle] {
1589
+ color: #888;
1590
+ }
1591
+ .statusIndicator[data-status=connecting] {
1592
+ color: #f5a623;
1593
+ }
1594
+ .statusIndicator[data-status=connected] {
1595
+ color: #4caf50;
1596
+ }
1597
+ .statusIndicator[data-status=disconnected] {
1598
+ color: #888;
1599
+ }
1600
+ .statusIndicator[data-status=error] {
1601
+ color: #f44336;
1602
+ }
1603
+ .statusText {
1604
+ font-size: 11px;
1605
+ }
1606
+ .reconnectButton {
1607
+ margin-left: auto;
1608
+ padding: 2px 8px;
1609
+ font-size: 11px;
1610
+ background-color: #0078d4;
1611
+ color: white;
1612
+ border: none;
1613
+ border-radius: 3px;
1614
+ cursor: pointer;
1615
+ transition: background-color 0.2s;
1616
+ }
1617
+ .reconnectButton:hover {
1618
+ background-color: #106ebe;
1619
+ }
1620
+ .reconnectButton:active {
1621
+ background-color: #005a9e;
1622
+ }
1623
+
1624
+ /* src/components/Apps/CodeServerApp/CodeServerApp.module.css */
1625
+ .container {
1626
+ width: 100%;
1627
+ height: 100%;
1628
+ display: flex;
1629
+ flex-direction: column;
1630
+ background-color: #1e1e1e;
1631
+ }
1632
+ .loading {
1633
+ display: flex;
1634
+ flex-direction: column;
1635
+ align-items: center;
1636
+ justify-content: center;
1637
+ height: 100%;
1638
+ color: #d4d4d4;
1639
+ gap: 16px;
1640
+ }
1641
+ .spinner {
1642
+ width: 40px;
1643
+ height: 40px;
1644
+ border: 3px solid #333;
1645
+ border-top-color: #0078d4;
1646
+ border-radius: 50%;
1647
+ animation: spin 1s linear infinite;
1648
+ }
1649
+ @keyframes spin {
1650
+ to {
1651
+ transform: rotate(360deg);
1652
+ }
1653
+ }
1654
+ .loading p {
1655
+ margin: 0;
1656
+ font-size: 14px;
1657
+ }
1658
+ .error {
1659
+ display: flex;
1660
+ flex-direction: column;
1661
+ align-items: center;
1662
+ justify-content: center;
1663
+ height: 100%;
1664
+ color: #d4d4d4;
1665
+ gap: 12px;
1666
+ padding: 24px;
1667
+ text-align: center;
1668
+ }
1669
+ .error h3 {
1670
+ margin: 0;
1671
+ color: #f44336;
1672
+ font-size: 18px;
1673
+ }
1674
+ .error p {
1675
+ margin: 0;
1676
+ font-size: 14px;
1677
+ color: #888;
1678
+ }
1679
+ .retryButton {
1680
+ margin-top: 12px;
1681
+ padding: 8px 16px;
1682
+ background-color: #0078d4;
1683
+ color: white;
1684
+ border: none;
1685
+ border-radius: 4px;
1686
+ cursor: pointer;
1687
+ font-size: 14px;
1688
+ transition: background-color 0.2s;
1689
+ }
1690
+ .retryButton:hover {
1691
+ background-color: #106ebe;
1692
+ }
1693
+ .iframe {
1694
+ width: 100%;
1695
+ height: 100%;
1696
+ border: none;
1697
+ background-color: #1e1e1e;
1698
+ }
1699
+
1700
+ /* src/components/Apps/StorybookApp/StorybookApp.module.css */
1701
+ .frame {
1702
+ width: 100%;
1703
+ height: 100%;
1704
+ border: none;
1705
+ display: block;
1706
+ }
1707
+
1708
+ /* src/components/Apps/FilesApp/components/FolderTree.module.css */
1709
+ .root {
1710
+ display: flex;
1711
+ flex-direction: column;
1712
+ gap: 1px;
1713
+ overflow-y: auto;
1714
+ padding: 4px 0;
1715
+ }
1716
+ .item {
1717
+ display: flex;
1718
+ align-items: center;
1719
+ padding: 5px 8px;
1720
+ border-radius: 4px;
1721
+ cursor: pointer;
1722
+ user-select: none;
1723
+ width: 100%;
1724
+ transition: background 0.1s;
1725
+ }
1726
+ .item:hover {
1727
+ background: light-dark(rgba(0, 0, 0, 0.05), rgba(255, 255, 255, 0.07));
1728
+ }
1729
+ .item[data-active] {
1730
+ background: var(--mantine-primary-color-light);
1731
+ color: var(--mantine-primary-color-filled);
1732
+ }
1733
+
1734
+ /* src/components/Apps/FilesApp/components/FileList.module.css */
1735
+ .grid {
1736
+ display: flex;
1737
+ flex-wrap: wrap;
1738
+ align-content: flex-start;
1739
+ gap: 4px;
1740
+ padding: 8px;
1741
+ }
1742
+ .item {
1743
+ display: flex;
1744
+ flex-direction: column;
1745
+ align-items: center;
1746
+ gap: 4px;
1747
+ padding: 8px 6px;
1748
+ border-radius: 6px;
1749
+ width: 80px;
1750
+ cursor: default;
1751
+ user-select: none;
1752
+ transition: background 0.1s;
1753
+ }
1754
+ .item:hover {
1755
+ background: light-dark(rgba(0, 0, 0, 0.06), rgba(255, 255, 255, 0.08));
1756
+ }
1757
+ .icon {
1758
+ display: flex;
1759
+ align-items: center;
1760
+ justify-content: center;
1761
+ width: 40px;
1762
+ height: 40px;
1763
+ }
1764
+ .name {
1765
+ text-align: center;
1766
+ width: 100%;
1767
+ max-width: 72px;
1768
+ word-break: break-word;
1769
+ display: -webkit-box;
1770
+ line-clamp: 2;
1771
+ -webkit-line-clamp: 2;
1772
+ -webkit-box-orient: vertical;
1773
+ overflow: hidden;
1774
+ }
1775
+ .empty {
1776
+ display: flex;
1777
+ align-items: center;
1778
+ justify-content: center;
1779
+ height: 100%;
1780
+ padding: 24px;
1781
+ }
1782
+
1783
+ /* src/components/Apps/FilesApp/FilesApp.module.css */
1784
+ .root {
1785
+ display: flex;
1786
+ flex-direction: column;
1787
+ height: 100%;
1788
+ overflow: hidden;
1789
+ position: relative;
1790
+ }
1791
+ .breadcrumbBar {
1792
+ flex-shrink: 0;
1793
+ padding: 6px 10px;
1794
+ border-bottom: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
1795
+ background: light-dark(rgba(0, 0, 0, 0.02), rgba(255, 255, 255, 0.02));
1796
+ }
1797
+ .breadcrumbSep {
1798
+ font-size: 12px;
1799
+ color: var(--mantine-color-dimmed);
1800
+ }
1801
+ .body {
1802
+ display: flex;
1803
+ flex: 1;
1804
+ min-height: 0;
1805
+ overflow: hidden;
1806
+ }
1807
+ .sidebar {
1808
+ width: 160px;
1809
+ flex-shrink: 0;
1810
+ border-right: 1px solid light-dark(rgba(0, 0, 0, 0.08), rgba(255, 255, 255, 0.08));
1811
+ overflow-y: auto;
1812
+ }
1813
+ .content {
1814
+ flex: 1;
1815
+ overflow-y: auto;
1816
+ min-width: 0;
1817
+ }