@mdzip/editor 1.2.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 (50) hide show
  1. package/README.md +126 -0
  2. package/dist/archive-utils.d.ts +35 -0
  3. package/dist/archive-utils.d.ts.map +1 -0
  4. package/dist/archive-utils.js +148 -0
  5. package/dist/archive-utils.js.map +1 -0
  6. package/dist/browser.d.ts +7 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +108 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/diff.d.ts +36 -0
  11. package/dist/diff.d.ts.map +1 -0
  12. package/dist/diff.js +100 -0
  13. package/dist/diff.js.map +1 -0
  14. package/dist/icons/md-markdown.d.ts +3 -0
  15. package/dist/icons/md-markdown.d.ts.map +1 -0
  16. package/dist/icons/md-markdown.js +35 -0
  17. package/dist/icons/md-markdown.js.map +1 -0
  18. package/dist/index.d.ts +11 -0
  19. package/dist/index.d.ts.map +1 -0
  20. package/dist/index.js +10 -0
  21. package/dist/index.js.map +1 -0
  22. package/dist/metadata.d.ts +9 -0
  23. package/dist/metadata.d.ts.map +1 -0
  24. package/dist/metadata.js +21 -0
  25. package/dist/metadata.js.map +1 -0
  26. package/dist/rendering.d.ts +20 -0
  27. package/dist/rendering.d.ts.map +1 -0
  28. package/dist/rendering.js +83 -0
  29. package/dist/rendering.js.map +1 -0
  30. package/dist/theme.d.ts +14 -0
  31. package/dist/theme.d.ts.map +1 -0
  32. package/dist/theme.js +96 -0
  33. package/dist/theme.js.map +1 -0
  34. package/dist/view-css.d.ts +2 -0
  35. package/dist/view-css.d.ts.map +1 -0
  36. package/dist/view-css.js +1281 -0
  37. package/dist/view-css.js.map +1 -0
  38. package/dist/view.d.ts +237 -0
  39. package/dist/view.d.ts.map +1 -0
  40. package/dist/view.js +1857 -0
  41. package/dist/view.js.map +1 -0
  42. package/dist/workspace-view.d.ts +20 -0
  43. package/dist/workspace-view.d.ts.map +1 -0
  44. package/dist/workspace-view.js +200 -0
  45. package/dist/workspace-view.js.map +1 -0
  46. package/dist/workspace.d.ts +131 -0
  47. package/dist/workspace.d.ts.map +1 -0
  48. package/dist/workspace.js +555 -0
  49. package/dist/workspace.js.map +1 -0
  50. package/package.json +40 -0
@@ -0,0 +1,1281 @@
1
+ import { MDZIP_DARK_THEME_CSS, MDZIP_LIGHT_THEME_CSS, MDZIP_VARIABLES_CSS } from './theme.js';
2
+ const MDZIP_LIGHT_DEFAULTS_CSS = MDZIP_LIGHT_THEME_CSS.replaceAll('--theme-', '--mdzip-default-');
3
+ const MDZIP_DARK_DEFAULTS_CSS = MDZIP_DARK_THEME_CSS.replaceAll('--theme-', '--mdzip-default-');
4
+ export const WORKSPACE_CSS = `
5
+ .mdzip-root {
6
+ /* Layout variables */
7
+ --mdz-zoom: 1;
8
+ --nav-pane-width: 280px;
9
+ --editor-pane-offset: 12px;
10
+ --workspace-pane-offset: 0px;
11
+ --split-edit-ratio: 0.5;
12
+
13
+ /* Theme variable mappings */
14
+ ${MDZIP_VARIABLES_CSS}
15
+
16
+ display: flex;
17
+ flex-direction: column;
18
+ height: 100%;
19
+ min-height: 520px;
20
+ background: var(--mdzip-editor-background-color);
21
+ color: var(--mdzip-editor-foreground-color);
22
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
23
+ font-size: 13px;
24
+ overflow: hidden;
25
+ box-sizing: border-box;
26
+ }
27
+
28
+ .mdzip-root.mdzip-theme-light {
29
+ color-scheme: light;
30
+ ${MDZIP_LIGHT_DEFAULTS_CSS}
31
+ }
32
+
33
+ .mdzip-root.mdzip-theme-dark {
34
+ color-scheme: dark;
35
+ ${MDZIP_DARK_DEFAULTS_CSS}
36
+ }
37
+
38
+ .mdzip-root *,
39
+ .mdzip-root *::before,
40
+ .mdzip-root *::after {
41
+ box-sizing: border-box;
42
+ }
43
+
44
+ .mdzip-root [hidden] {
45
+ display: none !important;
46
+ }
47
+
48
+ .mdzip-root .document-strip {
49
+ display: flex;
50
+ align-items: center;
51
+ gap: 5px;
52
+ min-height: 30px;
53
+ padding: 3px 12px;
54
+ background: var(--mdzip-editor-foreground-color);
55
+ background: rgba(0, 0, 0, 0.05);
56
+ border-bottom: 1px solid var(--mdzip-border-color);
57
+ flex: 0 0 auto;
58
+ }
59
+
60
+ .mdzip-root.mdzip-theme-dark .document-strip {
61
+ background: rgba(255, 255, 255, 0.08);
62
+ }
63
+
64
+ .mdzip-root .toolbar {
65
+ display: grid;
66
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
67
+ align-items: center;
68
+ column-gap: 12px;
69
+ padding: 4px 12px;
70
+ background: var(--mdzip-toolbar-background-color);
71
+ border-bottom: 1px solid var(--mdzip-border-color);
72
+ min-height: 48px;
73
+ flex: 0 0 auto;
74
+ position: relative;
75
+ z-index: 5;
76
+ }
77
+
78
+ .mdzip-root .toolbar-left,
79
+ .mdzip-root .toolbar-controls {
80
+ display: flex;
81
+ align-items: center;
82
+ min-width: 0;
83
+ gap: 10px;
84
+ }
85
+
86
+ .mdzip-root .toolbar-start {
87
+ display: flex;
88
+ align-items: center;
89
+ justify-self: start;
90
+ min-width: 0;
91
+ gap: 12px;
92
+ }
93
+
94
+ .mdzip-root.navigation-pane-visible {
95
+ --editor-pane-offset: calc(var(--nav-pane-width) + 6px);
96
+ --workspace-pane-offset: calc(var(--nav-pane-width) + 6px);
97
+ }
98
+
99
+ .mdzip-root .toolbar-left {
100
+ flex: 0 0 auto;
101
+ overflow: hidden;
102
+ }
103
+
104
+ .mdzip-root .toolbar-controls {
105
+ grid-column: 3;
106
+ justify-self: end;
107
+ position: relative;
108
+ }
109
+
110
+ .mdzip-root .title-button {
111
+ flex: 1 1 auto;
112
+ border: 0;
113
+ background: transparent;
114
+ padding: 0;
115
+ margin: 0;
116
+ color: var(--mdzip-editor-foreground-color);
117
+ font: inherit;
118
+ font-size: 13px;
119
+ font-weight: 500;
120
+ text-decoration: none;
121
+ cursor: pointer;
122
+ min-width: 0;
123
+ overflow: hidden;
124
+ text-overflow: ellipsis;
125
+ white-space: nowrap;
126
+ }
127
+
128
+ .mdzip-root .title-button:hover {
129
+ text-decoration: underline;
130
+ text-underline-offset: 2px;
131
+ }
132
+
133
+ .mdzip-root .title-button:disabled {
134
+ color: var(--mdzip-editor-foreground-color);
135
+ text-decoration: none;
136
+ cursor: default;
137
+ }
138
+
139
+ .mdzip-root .title-filename {
140
+ font-weight: 400;
141
+ opacity: 0.6;
142
+ }
143
+
144
+ .mdzip-root .document-info-button {
145
+ display: inline-flex;
146
+ align-items: center;
147
+ justify-content: center;
148
+ flex: 0 0 24px;
149
+ width: 24px;
150
+ height: 24px;
151
+ padding: 0;
152
+ border: 0;
153
+ border-radius: 4px;
154
+ background: transparent;
155
+ color: var(--mdzip-muted-foreground-color);
156
+ cursor: pointer;
157
+ }
158
+
159
+ .mdzip-root .document-info-button:hover,
160
+ .mdzip-root .document-info-button:focus-visible {
161
+ outline: none;
162
+ background: var(--mdzip-control-hover-background-color);
163
+ color: var(--mdzip-control-foreground-color);
164
+ }
165
+
166
+ .mdzip-root .document-info-icon {
167
+ width: 15px;
168
+ height: 15px;
169
+ }
170
+
171
+ .mdzip-root .toolbar-buttons {
172
+ display: flex;
173
+ align-items: center;
174
+ gap: 4px;
175
+ justify-self: center;
176
+ padding: 3px;
177
+ border: 1px solid var(--mdzip-widget-border-color);
178
+ border-radius: 8px;
179
+ background: var(--mdzip-widget-background-color);
180
+ }
181
+
182
+ .mdzip-root .view-mode-toggle-group {
183
+ position: absolute;
184
+ left: calc((100% + var(--workspace-pane-offset)) / 2);
185
+ top: 50%;
186
+ transform: translate(-50%, -50%);
187
+ gap: 2px;
188
+ }
189
+
190
+ .mdzip-root .icon-toggle {
191
+ width: 42px;
192
+ height: 36px;
193
+ padding: 0;
194
+ cursor: pointer;
195
+ background: transparent;
196
+ color: var(--mdzip-control-foreground-color);
197
+ border: none;
198
+ border-radius: 5px;
199
+ display: inline-flex;
200
+ align-items: center;
201
+ justify-content: center;
202
+ }
203
+
204
+ .mdzip-root .icon-toggle.active {
205
+ background: var(--mdzip-accent-color);
206
+ color: var(--mdzip-accent-foreground-color);
207
+ }
208
+
209
+ .mdzip-root .icon-toggle:hover:not(.active):not(:disabled) {
210
+ background: var(--mdzip-control-hover-background-color);
211
+ }
212
+
213
+ .mdzip-root .icon-toggle:disabled {
214
+ opacity: 0.55;
215
+ cursor: not-allowed;
216
+ }
217
+
218
+ .mdzip-root .toggle-icon {
219
+ width: 17px;
220
+ height: 17px;
221
+ fill: none;
222
+ stroke: currentColor;
223
+ }
224
+
225
+ .mdzip-root .view-mode-toggle {
226
+ position: relative;
227
+ width: 32px;
228
+ height: 32px;
229
+ border-radius: 6px;
230
+ color: var(--mdzip-control-foreground-color);
231
+ }
232
+
233
+ .mdzip-root .view-mode-toggle.active {
234
+ background: var(--mdzip-control-hover-background-color);
235
+ color: var(--mdzip-link-color);
236
+ }
237
+
238
+ .mdzip-root .view-mode-toggle:hover:not(.active):not(:disabled) {
239
+ background: var(--mdzip-control-hover-background-color);
240
+ }
241
+
242
+ .mdzip-root .view-mode-toggle.active:hover:not(:disabled) {
243
+ background: var(--mdzip-control-hover-background-color);
244
+ }
245
+
246
+ .mdzip-root .view-mode-toggle .commandbar-flex-container {
247
+ display: flex;
248
+ align-items: center;
249
+ justify-content: center;
250
+ width: 100%;
251
+ height: 100%;
252
+ }
253
+
254
+ .mdzip-root .view-mode-toggle .toggle-icon {
255
+ width: 1.5em;
256
+ height: 1.5em;
257
+ }
258
+
259
+ .mdzip-root .nav-toggle {
260
+ width: 32px;
261
+ height: 32px;
262
+ border-radius: 6px;
263
+ }
264
+
265
+ .mdzip-root .nav-toggle.active {
266
+ background: var(--mdzip-control-hover-background-color);
267
+ color: var(--mdzip-link-color);
268
+ }
269
+
270
+ .mdzip-root .nav-toggle .toggle-icon {
271
+ width: 1.9em;
272
+ height: 1.9em;
273
+ }
274
+
275
+ .mdzip-root .zoom-toggle .toggle-icon {
276
+ width: 1.5em;
277
+ height: 1.5em;
278
+ }
279
+
280
+ .mdzip-root .zoom-toggle.active {
281
+ background: var(--mdzip-control-hover-background-color);
282
+ color: var(--mdzip-link-color);
283
+ }
284
+
285
+ .mdzip-root .theme-toggle-group {
286
+ display: flex;
287
+ align-items: center;
288
+ gap: 2px;
289
+ padding: 3px;
290
+ border: 1px solid var(--mdzip-widget-border-color);
291
+ border-radius: 8px;
292
+ background: var(--mdzip-widget-background-color);
293
+ }
294
+
295
+ .mdzip-root .theme-toggle {
296
+ width: 32px;
297
+ height: 32px;
298
+ border-radius: 6px;
299
+ }
300
+
301
+ .mdzip-root .theme-toggle.active {
302
+ background: var(--mdzip-control-hover-background-color);
303
+ color: var(--mdzip-link-color);
304
+ }
305
+
306
+ .mdzip-root .theme-toggle .toggle-icon {
307
+ width: 18px;
308
+ height: 18px;
309
+ }
310
+
311
+ .mdzip-root .workspace-shell {
312
+ display: flex;
313
+ flex: 1 1 auto;
314
+ min-height: 0;
315
+ }
316
+
317
+ .mdzip-root.resizing,
318
+ .mdzip-root.resizing * {
319
+ cursor: col-resize !important;
320
+ user-select: none;
321
+ }
322
+
323
+ .mdzip-root .nav-pane {
324
+ flex: 0 0 var(--nav-pane-width);
325
+ width: var(--nav-pane-width);
326
+ min-width: 180px;
327
+ max-width: 60vw;
328
+ border-right: 1px solid var(--mdzip-border-color);
329
+ background: var(--mdzip-sidebar-background-color);
330
+ color: var(--mdzip-sidebar-foreground-color);
331
+ overflow: auto;
332
+ transition:
333
+ flex-basis 0.18s ease,
334
+ width 0.18s ease,
335
+ min-width 0.18s ease,
336
+ opacity 0.14s ease,
337
+ border-color 0.18s ease;
338
+ }
339
+
340
+ .mdzip-root .nav-pane.hidden {
341
+ flex-basis: 0;
342
+ width: 0;
343
+ min-width: 0;
344
+ border-right-color: transparent;
345
+ opacity: 0;
346
+ overflow: hidden;
347
+ pointer-events: none;
348
+ }
349
+
350
+ .mdzip-root .nav-resizer {
351
+ position: relative;
352
+ flex: 0 0 6px;
353
+ background: transparent;
354
+ cursor: col-resize;
355
+ opacity: 1;
356
+ transition:
357
+ flex-basis 0.18s ease,
358
+ opacity 0.14s ease;
359
+ }
360
+
361
+ .mdzip-root .nav-resizer.hidden {
362
+ flex-basis: 0;
363
+ opacity: 0;
364
+ pointer-events: none;
365
+ }
366
+
367
+ .mdzip-root .nav-resizer::before,
368
+ .mdzip-root .split-resizer::before {
369
+ content: '';
370
+ position: absolute;
371
+ top: 0;
372
+ bottom: 0;
373
+ left: 2px;
374
+ width: 2px;
375
+ background: transparent;
376
+ transition: background 0.12s ease;
377
+ }
378
+
379
+ .mdzip-root .nav-resizer:hover::before,
380
+ .mdzip-root .split-resizer:hover::before {
381
+ background: var(--mdzip-focus-outline-color);
382
+ }
383
+
384
+ .mdzip-root .nav-tree {
385
+ padding: 14px 8px 24px;
386
+ }
387
+
388
+ .mdzip-root .nav-directory {
389
+ margin: 0;
390
+ position: relative;
391
+ }
392
+
393
+ .mdzip-root .nav-directory > summary {
394
+ list-style: none;
395
+ cursor: pointer;
396
+ position: relative;
397
+ }
398
+
399
+ .mdzip-root .nav-directory > summary::-webkit-details-marker {
400
+ display: none;
401
+ }
402
+
403
+ .mdzip-root .nav-directory > summary,
404
+ .mdzip-root .nav-file {
405
+ display: flex;
406
+ align-items: center;
407
+ gap: 9px;
408
+ width: 100%;
409
+ min-height: 34px;
410
+ padding: 5px 9px;
411
+ border: none;
412
+ border-radius: 4px;
413
+ background: transparent;
414
+ color: inherit;
415
+ font: inherit;
416
+ font-size: 14px;
417
+ text-align: left;
418
+ }
419
+
420
+ .mdzip-root .nav-file {
421
+ cursor: pointer;
422
+ }
423
+
424
+ .mdzip-root .nav-directory > summary:hover,
425
+ .mdzip-root .nav-file:hover {
426
+ background: var(--mdzip-hover-background-color);
427
+ }
428
+
429
+ .mdzip-root .nav-directory-children {
430
+ position: relative;
431
+ margin-left: 19px;
432
+ padding-left: 14px;
433
+ }
434
+
435
+ .mdzip-root .nav-directory-children > .nav-file,
436
+ .mdzip-root .nav-directory-children > .nav-directory > summary {
437
+ position: relative;
438
+ }
439
+
440
+ .mdzip-root .nav-directory-children > .nav-file::before,
441
+ .mdzip-root .nav-directory-children > .nav-directory > summary::before {
442
+ content: "";
443
+ position: absolute;
444
+ left: 6px;
445
+ top: 0;
446
+ bottom: 0;
447
+ width: 22px;
448
+ background: var(--mdzip-tree-guide-color);
449
+ -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 22 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.5 0 V17.5 H22' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") left top / 22px 100% no-repeat;
450
+ mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 22 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.5 0 V17.5 H22' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") left top / 22px 100% no-repeat;
451
+ }
452
+
453
+ .mdzip-root .nav-directory-children > .nav-file:not(:last-child)::before,
454
+ .mdzip-root .nav-directory-children > .nav-directory:not(:last-child) > summary::before {
455
+ -webkit-mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 22 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.5 0 V34 M0.5 17.5 H22' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") left top / 22px 100% no-repeat;
456
+ mask: url("data:image/svg+xml,%3Csvg viewBox='0 0 22 34' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0.5 0 V34 M0.5 17.5 H22' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E") left top / 22px 100% no-repeat;
457
+ }
458
+
459
+ .mdzip-root .nav-caret {
460
+ position: relative;
461
+ width: 10px;
462
+ flex: 0 0 10px;
463
+ color: var(--mdzip-muted-foreground-color);
464
+ }
465
+
466
+ .mdzip-root .nav-directory > summary .nav-caret::before {
467
+ content: "";
468
+ position: absolute;
469
+ left: 2px;
470
+ top: 50%;
471
+ width: 0;
472
+ height: 0;
473
+ border-top: 4px solid transparent;
474
+ border-bottom: 4px solid transparent;
475
+ border-left: 5px solid currentColor;
476
+ transform: translateY(-50%);
477
+ }
478
+
479
+ .mdzip-root .nav-directory[open] > summary .nav-caret::before {
480
+ transform: translateY(-45%) rotate(90deg);
481
+ }
482
+
483
+ .mdzip-root .nav-folder-icon {
484
+ display: inline-flex;
485
+ align-items: center;
486
+ justify-content: center;
487
+ flex: 0 0 22px;
488
+ width: 22px;
489
+ height: 22px;
490
+ color: var(--mdzip-control-foreground-color);
491
+ }
492
+
493
+ .mdzip-root .nav-folder-icon svg {
494
+ display: block;
495
+ width: 21px;
496
+ height: 21px;
497
+ }
498
+
499
+ .mdzip-root .nav-directory[open] > summary .nav-folder-icon.closed,
500
+ .mdzip-root .nav-directory:not([open]) > summary .nav-folder-icon.open {
501
+ display: none;
502
+ }
503
+
504
+ .mdzip-root .nav-file-icon {
505
+ display: inline-flex;
506
+ align-items: center;
507
+ justify-content: center;
508
+ flex: 0 0 30px;
509
+ width: 30px;
510
+ height: 24px;
511
+ border: 1px solid var(--mdzip-border-color);
512
+ border-radius: 3px;
513
+ background: var(--mdzip-widget-background-color);
514
+ color: var(--mdzip-muted-foreground-color);
515
+ font-size: 10px;
516
+ font-weight: 700;
517
+ line-height: 1;
518
+ }
519
+
520
+ .mdzip-root .nav-file-icon svg {
521
+ display: block;
522
+ }
523
+
524
+ .mdzip-root .nav-file-icon.markdown svg {
525
+ width: 21px;
526
+ height: 21px;
527
+ }
528
+
529
+ .mdzip-root .nav-file-icon.manifest svg {
530
+ width: 21px;
531
+ height: 21px;
532
+ }
533
+
534
+ .mdzip-root .nav-file-icon.markdown {
535
+ border: 0;
536
+ background: transparent;
537
+ }
538
+
539
+ .mdzip-root .nav-file-icon.manifest {
540
+ border: 0;
541
+ background: transparent;
542
+ color: #d18616;
543
+ }
544
+
545
+ .mdzip-root .nav-file-icon.image {
546
+ border: 0 !important;
547
+ background: transparent !important;
548
+ }
549
+
550
+ .mdzip-root .nav-file-icon.image svg {
551
+ width: 21px;
552
+ height: 21px;
553
+ }
554
+
555
+ .mdzip-root .nav-label {
556
+ flex: 1;
557
+ min-width: 0;
558
+ overflow: hidden;
559
+ text-overflow: ellipsis;
560
+ white-space: nowrap;
561
+ }
562
+
563
+ .mdzip-root .nav-file.current-entry {
564
+ background: var(--mdzip-selection-background-color);
565
+ }
566
+
567
+ .mdzip-root .nav-file.current-entry::after {
568
+ content: '';
569
+ width: 10px;
570
+ height: 10px;
571
+ flex: 0 0 10px;
572
+ border-radius: 50%;
573
+ background: var(--mdzip-link-color);
574
+ }
575
+
576
+ .mdzip-root .nav-file.orphaned-asset {
577
+ color: var(--mdzip-muted-foreground-color);
578
+ }
579
+
580
+ .mdzip-root .nav-orphan-button {
581
+ flex: 0 0 22px;
582
+ width: 22px;
583
+ height: 22px;
584
+ display: inline-flex;
585
+ align-items: center;
586
+ justify-content: center;
587
+ border: 0;
588
+ border-radius: 4px;
589
+ background: transparent;
590
+ color: #9a6700;
591
+ cursor: pointer;
592
+ }
593
+
594
+ .mdzip-root .nav-orphan-button:hover {
595
+ background: rgba(154, 103, 0, 0.12);
596
+ }
597
+
598
+ .mdzip-root .nav-orphan-button svg {
599
+ width: 15px;
600
+ height: 15px;
601
+ fill: currentColor;
602
+ }
603
+
604
+ .mdzip-root .orphan-context-menu {
605
+ position: fixed;
606
+ z-index: 200;
607
+ min-width: 190px;
608
+ padding: 4px;
609
+ border: 1px solid var(--mdzip-widget-border-color);
610
+ border-radius: 4px;
611
+ background: var(--mdzip-editor-background-color);
612
+ color: var(--mdzip-editor-foreground-color);
613
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
614
+ }
615
+
616
+ .mdzip-root .orphan-context-menu button {
617
+ display: block;
618
+ width: 100%;
619
+ min-height: 28px;
620
+ padding: 4px 10px;
621
+ border: none;
622
+ border-radius: 3px;
623
+ background: transparent;
624
+ color: inherit;
625
+ font: inherit;
626
+ text-align: left;
627
+ cursor: pointer;
628
+ }
629
+
630
+ .mdzip-root .orphan-context-menu button:hover,
631
+ .mdzip-root .orphan-context-menu button:focus-visible {
632
+ outline: none;
633
+ background: var(--mdzip-hover-background-color);
634
+ }
635
+
636
+ .mdzip-root .mdzip-tooltip {
637
+ position: fixed;
638
+ z-index: 10000;
639
+ max-width: min(320px, calc(100vw - 16px));
640
+ padding: 5px 8px;
641
+ border: 1px solid var(--mdzip-border-color);
642
+ border-radius: 5px;
643
+ background: var(--mdzip-editor-foreground-color);
644
+ color: var(--mdzip-editor-background-color);
645
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
646
+ font-size: 12px;
647
+ line-height: 1.35;
648
+ white-space: nowrap;
649
+ pointer-events: none;
650
+ }
651
+
652
+ .mdzip-root .pane-stack {
653
+ display: block;
654
+ flex: 1;
655
+ min-width: 0;
656
+ height: 100%;
657
+ }
658
+
659
+ .mdzip-root .pane-stack.split-mode {
660
+ display: flex;
661
+ flex-direction: row;
662
+ }
663
+
664
+ .mdzip-root .pane {
665
+ display: none;
666
+ height: 100%;
667
+ overflow: hidden;
668
+ }
669
+
670
+ .mdzip-root .pane.active {
671
+ display: block;
672
+ }
673
+
674
+ .mdzip-root .pane-stack.split-mode .pane {
675
+ display: block !important;
676
+ min-width: 0;
677
+ height: 100%;
678
+ }
679
+
680
+ .mdzip-root .pane-stack.split-mode .edit-pane {
681
+ flex: 0 0 calc((100% - 6px) * var(--split-edit-ratio));
682
+ }
683
+
684
+ .mdzip-root .pane-stack.split-mode .preview-pane {
685
+ flex: 1 1 auto;
686
+ }
687
+
688
+ .mdzip-root .preview-pane {
689
+ overflow: auto;
690
+ }
691
+
692
+ .mdzip-root .edit-pane {
693
+ overflow: hidden;
694
+ flex-direction: column;
695
+ }
696
+
697
+ .mdzip-root .edit-pane.active {
698
+ display: flex;
699
+ }
700
+
701
+ .mdzip-root .pane-stack.split-mode .edit-pane {
702
+ display: flex !important;
703
+ }
704
+
705
+ .mdzip-root .edit-toolbar {
706
+ display: flex;
707
+ align-items: center;
708
+ gap: 7px;
709
+ min-height: 32px;
710
+ padding: 0;
711
+ overflow: visible;
712
+ border: 0;
713
+ background: transparent;
714
+ flex: 0 0 auto;
715
+ position: absolute;
716
+ left: var(--editor-pane-offset);
717
+ top: 50%;
718
+ transform: translateY(-50%);
719
+ z-index: 6;
720
+ }
721
+
722
+ .mdzip-root:not(.navigation-pane-visible) .edit-toolbar {
723
+ position: static;
724
+ transform: none;
725
+ }
726
+
727
+ .mdzip-root .edit-toolbar-group {
728
+ display: flex;
729
+ align-items: center;
730
+ gap: 2px;
731
+ flex: 0 0 auto;
732
+ }
733
+
734
+ .mdzip-root .edit-toolbar button {
735
+ display: inline-flex;
736
+ align-items: center;
737
+ justify-content: center;
738
+ gap: 2px;
739
+ width: 32px;
740
+ height: 32px;
741
+ padding: 0;
742
+ border: 0;
743
+ border-radius: 5px;
744
+ background: transparent;
745
+ color: var(--mdzip-control-foreground-color);
746
+ cursor: pointer;
747
+ }
748
+
749
+ .mdzip-root .edit-toolbar button:hover,
750
+ .mdzip-root .edit-toolbar button:focus-visible {
751
+ outline: none;
752
+ background: var(--mdzip-control-hover-background-color);
753
+ }
754
+
755
+ .mdzip-root .edit-toolbar button:focus-visible {
756
+ box-shadow: inset 0 0 0 1px var(--mdzip-focus-outline-color);
757
+ }
758
+
759
+ .mdzip-root .edit-toolbar .format-menu {
760
+ position: relative;
761
+ flex: 0 0 auto;
762
+ }
763
+
764
+ .mdzip-root .edit-toolbar .format-menu-toggle {
765
+ width: 42px;
766
+ gap: 2px;
767
+ }
768
+
769
+ .mdzip-root .edit-toolbar .format-menu-toggle[aria-expanded="true"] {
770
+ background: var(--mdzip-control-hover-background-color);
771
+ box-shadow: inset 0 0 0 1px var(--mdzip-focus-outline-color);
772
+ }
773
+
774
+ .mdzip-root .edit-toolbar .format-menu-popover {
775
+ position: absolute;
776
+ top: calc(100% + 6px);
777
+ left: 0;
778
+ z-index: 20;
779
+ min-width: 164px;
780
+ padding: 5px;
781
+ border: 1px solid var(--mdzip-widget-border-color);
782
+ border-radius: 7px;
783
+ background: var(--mdzip-widget-background-color);
784
+ color: var(--mdzip-editor-foreground-color);
785
+ box-shadow: 0 10px 28px rgba(0, 0, 0, 0.24);
786
+ }
787
+
788
+ .mdzip-root .edit-toolbar .format-menu-popover button {
789
+ display: flex;
790
+ justify-content: flex-start;
791
+ gap: 10px;
792
+ width: 100%;
793
+ height: 32px;
794
+ padding: 0 10px;
795
+ border-radius: 4px;
796
+ color: inherit;
797
+ font: inherit;
798
+ white-space: nowrap;
799
+ }
800
+
801
+ .mdzip-root .edit-toolbar .format-menu-popover button:hover,
802
+ .mdzip-root .edit-toolbar .format-menu-popover button:focus-visible {
803
+ background: var(--mdzip-control-hover-background-color);
804
+ box-shadow: none;
805
+ }
806
+
807
+ .mdzip-root .edit-toolbar .format-menu-popover strong {
808
+ display: inline-block;
809
+ width: 22px;
810
+ color: var(--mdzip-muted-foreground-color);
811
+ font-size: 11px;
812
+ text-align: center;
813
+ }
814
+
815
+ .mdzip-root .format-icon {
816
+ width: 17px;
817
+ height: 17px;
818
+ fill: none;
819
+ stroke: currentColor;
820
+ }
821
+
822
+ .mdzip-root .format-chevron {
823
+ width: 12px;
824
+ height: 12px;
825
+ fill: none;
826
+ stroke: currentColor;
827
+ }
828
+
829
+ .mdzip-root .edit-toolbar-divider {
830
+ width: 1px;
831
+ height: 22px;
832
+ background: var(--mdzip-border-color);
833
+ flex: 0 0 auto;
834
+ }
835
+
836
+ .mdzip-root .editor-host {
837
+ flex: 1 1 auto;
838
+ min-height: 0;
839
+ overflow: hidden;
840
+ }
841
+
842
+ .mdzip-root .editor-host .cm-editor {
843
+ height: 100%;
844
+ }
845
+
846
+ .mdzip-root .split-resizer {
847
+ display: none;
848
+ position: relative;
849
+ flex: 0 0 6px;
850
+ cursor: col-resize;
851
+ }
852
+
853
+ .mdzip-root .pane-stack.split-mode .split-resizer {
854
+ display: block;
855
+ }
856
+
857
+ .mdzip-root .pane-stack.split-mode .split-resizer::before {
858
+ background: var(--mdzip-border-color);
859
+ }
860
+
861
+ .mdzip-root .pane-stack.split-mode .split-resizer:hover::before {
862
+ background: var(--mdzip-focus-outline-color);
863
+ }
864
+
865
+ .mdzip-root .preview-content {
866
+ max-width: 900px;
867
+ margin: 0 auto;
868
+ padding: 36px 32px 48px;
869
+ line-height: 1.55;
870
+ font-size: calc(16px * var(--mdz-zoom));
871
+ }
872
+
873
+ .mdzip-root .preview-content h1,
874
+ .mdzip-root .preview-content h2,
875
+ .mdzip-root .preview-content h3,
876
+ .mdzip-root .preview-content h4,
877
+ .mdzip-root .preview-content h5,
878
+ .mdzip-root .preview-content h6 {
879
+ color: var(--mdzip-editor-foreground-color);
880
+ margin-top: 1.4em;
881
+ margin-bottom: 0.4em;
882
+ line-height: 1.25;
883
+ }
884
+
885
+ .mdzip-root .preview-content h1 {
886
+ font-size: 2em;
887
+ border-bottom: 1px solid var(--mdzip-border-color);
888
+ padding-bottom: 0.25em;
889
+ }
890
+
891
+ .mdzip-root .preview-content > :first-child {
892
+ margin-top: 0;
893
+ }
894
+
895
+ .mdzip-root .preview-content h2 {
896
+ font-size: 1.5em;
897
+ border-bottom: 1px solid var(--mdzip-border-color);
898
+ padding-bottom: 0.2em;
899
+ }
900
+
901
+ .mdzip-root .preview-content h3 {
902
+ font-size: 1.2em;
903
+ }
904
+
905
+ .mdzip-root .preview-content p {
906
+ margin: 0.8em 0;
907
+ }
908
+
909
+ .mdzip-root .preview-content code {
910
+ font-family: "Cascadia Code", Consolas, monospace;
911
+ font-variant-ligatures: none;
912
+ font-feature-settings: "liga" 0, "calt" 0;
913
+ font-size: 0.9em;
914
+ background: var(--mdzip-code-background-color);
915
+ border: 1px solid var(--mdzip-border-color);
916
+ border-radius: 3px;
917
+ padding: 1px 5px;
918
+ }
919
+
920
+ .mdzip-root .preview-content pre {
921
+ background: var(--mdzip-code-background-color);
922
+ border: 1px solid var(--mdzip-border-color);
923
+ border-radius: 5px;
924
+ padding: 14px 18px;
925
+ overflow-x: auto;
926
+ }
927
+
928
+ .mdzip-root .preview-content pre code {
929
+ background: none;
930
+ border: none;
931
+ padding: 0;
932
+ }
933
+
934
+ .mdzip-root .preview-content blockquote {
935
+ border-left: 4px solid var(--mdzip-link-color);
936
+ margin: 1em 0;
937
+ padding: 0.5em 1em;
938
+ color: var(--mdzip-muted-foreground-color);
939
+ background: var(--mdzip-code-background-color);
940
+ }
941
+
942
+ .mdzip-root .preview-content .mdzip-table-scroll {
943
+ width: 100%;
944
+ margin: 1em 0;
945
+ overflow-x: auto;
946
+ }
947
+
948
+ .mdzip-root .preview-content table {
949
+ width: max-content;
950
+ min-width: 100%;
951
+ border-collapse: collapse;
952
+ border-spacing: 0;
953
+ }
954
+
955
+ .mdzip-root .preview-content th,
956
+ .mdzip-root .preview-content td {
957
+ padding: 8px 12px;
958
+ border: 1px solid var(--mdzip-border-color);
959
+ text-align: left;
960
+ vertical-align: top;
961
+ }
962
+
963
+ .mdzip-root .preview-content th {
964
+ background: var(--mdzip-widget-background-color);
965
+ font-weight: 600;
966
+ white-space: nowrap;
967
+ }
968
+
969
+ .mdzip-root .preview-content td code,
970
+ .mdzip-root .preview-content th code {
971
+ white-space: nowrap;
972
+ }
973
+
974
+ .mdzip-root .preview-content td:last-child {
975
+ min-width: 220px;
976
+ max-width: 320px;
977
+ }
978
+
979
+ .mdzip-root .preview-content tbody tr:nth-child(even) {
980
+ background: var(--mdzip-hover-background-color);
981
+ }
982
+
983
+ .mdzip-root .preview-content img {
984
+ max-width: 100%;
985
+ height: auto;
986
+ border-radius: 4px;
987
+ }
988
+
989
+ .mdzip-root .plain-text-preview {
990
+ margin: 0;
991
+ white-space: pre-wrap;
992
+ word-break: break-word;
993
+ font-family: "Cascadia Code", Consolas, monospace;
994
+ font-variant-ligatures: none;
995
+ font-feature-settings: "liga" 0, "calt" 0;
996
+ font-size: calc(20px * var(--mdz-zoom));
997
+ line-height: 1.5;
998
+ }
999
+
1000
+ .mdzip-root .asset-preview-wrap {
1001
+ display: flex;
1002
+ justify-content: center;
1003
+ align-items: flex-start;
1004
+ min-height: 240px;
1005
+ }
1006
+
1007
+ .mdzip-root .asset-preview-image {
1008
+ max-width: min(100%, 1200px);
1009
+ max-height: calc(100vh - 140px);
1010
+ width: auto;
1011
+ height: auto;
1012
+ border: 1px solid var(--mdzip-border-color);
1013
+ background: var(--mdzip-widget-background-color);
1014
+ }
1015
+
1016
+ .mdzip-root .asset-preview-empty {
1017
+ padding: 14px 16px;
1018
+ border: 1px solid var(--mdzip-border-color);
1019
+ border-radius: 6px;
1020
+ background: var(--mdzip-widget-background-color);
1021
+ color: var(--mdzip-muted-foreground-color);
1022
+ }
1023
+
1024
+ .mdzip-root .md-syntax-heading { color: #c36f00; }
1025
+ .mdzip-root .md-syntax-marker,
1026
+ .mdzip-root .md-syntax-quote { color: #7a5c00; font-weight: 700; }
1027
+ .mdzip-root .md-syntax-code,
1028
+ .mdzip-root .md-syntax-fence { color: #8a8f00; }
1029
+ .mdzip-root .md-syntax-link { color: #0969da; }
1030
+ .mdzip-root .md-syntax-image { color: #d100d1; }
1031
+ .mdzip-root .md-syntax-emphasis { color: #008b8b; }
1032
+ .mdzip-root .md-syntax-rule { color: #6a9955; }
1033
+
1034
+ .mdzip-root .mdzip-empty {
1035
+ padding: 24px;
1036
+ color: var(--mdzip-muted-foreground-color);
1037
+ }
1038
+
1039
+ .mdzip-root .zoom-popover {
1040
+ position: absolute;
1041
+ top: calc(100% + 6px);
1042
+ right: 0;
1043
+ z-index: 20;
1044
+ display: flex;
1045
+ align-items: center;
1046
+ gap: 8px;
1047
+ padding: 4px;
1048
+ border: 1px solid var(--mdzip-widget-border-color);
1049
+ border-radius: 7px;
1050
+ background: var(--mdzip-widget-background-color);
1051
+ box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
1052
+ }
1053
+
1054
+ .mdzip-root .zoom-level {
1055
+ min-width: 44px;
1056
+ padding: 0 6px;
1057
+ font-size: 12px;
1058
+ line-height: 1;
1059
+ font-variant-numeric: tabular-nums;
1060
+ color: var(--mdzip-editor-foreground-color);
1061
+ }
1062
+
1063
+ .mdzip-root .zoom-stepper {
1064
+ display: inline-flex;
1065
+ align-items: center;
1066
+ gap: 2px;
1067
+ padding-left: 8px;
1068
+ border-left: 1px solid var(--mdzip-widget-border-color);
1069
+ }
1070
+
1071
+ .mdzip-root .zoom-popover button {
1072
+ height: 24px;
1073
+ min-width: 24px;
1074
+ border: none;
1075
+ border-radius: 6px;
1076
+ background: transparent;
1077
+ color: var(--mdzip-control-foreground-color);
1078
+ cursor: pointer;
1079
+ }
1080
+
1081
+ .mdzip-root .zoom-popover button:hover {
1082
+ background: var(--mdzip-control-hover-background-color);
1083
+ }
1084
+
1085
+ .mdzip-root .zoom-reset {
1086
+ padding: 0 12px;
1087
+ border-radius: 999px !important;
1088
+ background: var(--mdzip-control-hover-background-color) !important;
1089
+ font-size: 12px;
1090
+ }
1091
+
1092
+ .mdzip-root .title-dialog-backdrop {
1093
+ position: fixed;
1094
+ inset: 0;
1095
+ display: flex;
1096
+ align-items: center;
1097
+ justify-content: center;
1098
+ background: rgba(0, 0, 0, 0.32);
1099
+ z-index: 100;
1100
+ }
1101
+
1102
+ .mdzip-root .title-dialog {
1103
+ width: min(420px, calc(100vw - 32px));
1104
+ background: var(--mdzip-editor-background-color);
1105
+ border: 1px solid var(--mdzip-widget-border-color);
1106
+ border-radius: 6px;
1107
+ padding: 14px;
1108
+ box-shadow: 0 12px 32px rgba(0, 0, 0, 0.22);
1109
+ }
1110
+
1111
+ .mdzip-root .title-dialog h3 {
1112
+ margin: 0;
1113
+ font-size: 14px;
1114
+ }
1115
+
1116
+ .mdzip-root .title-dialog p {
1117
+ margin: 8px 0 10px;
1118
+ font-size: 12px;
1119
+ color: var(--mdzip-muted-foreground-color);
1120
+ }
1121
+
1122
+ .mdzip-root .title-dialog input {
1123
+ width: 100%;
1124
+ border: 1px solid var(--mdzip-widget-border-color);
1125
+ background: var(--mdzip-editor-background-color);
1126
+ color: var(--mdzip-editor-foreground-color);
1127
+ border-radius: 4px;
1128
+ padding: 6px 8px;
1129
+ font-size: 13px;
1130
+ }
1131
+
1132
+ .mdzip-root .title-dialog-validation {
1133
+ color: #cf222e !important;
1134
+ }
1135
+
1136
+ .mdzip-root .title-dialog-actions {
1137
+ display: flex;
1138
+ justify-content: flex-end;
1139
+ gap: 8px;
1140
+ margin-top: 12px;
1141
+ }
1142
+
1143
+ .mdzip-root .title-dialog-actions button {
1144
+ padding: 5px 10px;
1145
+ font-size: 12px;
1146
+ cursor: pointer;
1147
+ border-radius: 3px;
1148
+ border: 1px solid var(--mdzip-border-color);
1149
+ background: var(--mdzip-editor-background-color);
1150
+ color: var(--mdzip-editor-foreground-color);
1151
+ }
1152
+
1153
+ .mdzip-root .title-dialog-actions .reset-title {
1154
+ margin-right: auto;
1155
+ }
1156
+
1157
+ .mdzip-root .title-dialog-actions .save-title {
1158
+ border-color: var(--mdzip-accent-color);
1159
+ background: var(--mdzip-accent-color);
1160
+ color: var(--mdzip-accent-foreground-color);
1161
+ }
1162
+
1163
+ .mdzip-root .metadata-dialog dl {
1164
+ margin: 12px 0 0;
1165
+ }
1166
+
1167
+ .mdzip-root .metadata-row {
1168
+ display: grid;
1169
+ grid-template-columns: 110px minmax(0, 1fr);
1170
+ gap: 12px;
1171
+ padding: 7px 0;
1172
+ border-bottom: 1px solid var(--mdzip-border-color);
1173
+ font-size: 12px;
1174
+ }
1175
+
1176
+ .mdzip-root .metadata-row:last-child {
1177
+ border-bottom: 0;
1178
+ }
1179
+
1180
+ .mdzip-root .metadata-row dt {
1181
+ color: var(--mdzip-muted-foreground-color);
1182
+ font-weight: 600;
1183
+ }
1184
+
1185
+ .mdzip-root .metadata-row dd {
1186
+ min-width: 0;
1187
+ margin: 0;
1188
+ overflow-wrap: anywhere;
1189
+ }
1190
+
1191
+ @media (max-width: 900px) {
1192
+ .mdzip-root { --nav-pane-width: 220px; }
1193
+ .mdzip-root .toolbar {
1194
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
1195
+ row-gap: 4px;
1196
+ }
1197
+ .mdzip-root .toolbar-start {
1198
+ display: contents;
1199
+ }
1200
+ .mdzip-root .toolbar-left {
1201
+ grid-column: 1;
1202
+ grid-row: 1;
1203
+ }
1204
+ .mdzip-root .edit-toolbar {
1205
+ grid-column: 1 / -1;
1206
+ grid-row: 2;
1207
+ justify-self: start;
1208
+ position: static;
1209
+ transform: none;
1210
+ }
1211
+ .mdzip-root .view-mode-toggle-group {
1212
+ position: static;
1213
+ transform: none;
1214
+ }
1215
+ .mdzip-root .toolbar-controls {
1216
+ grid-column: 3;
1217
+ grid-row: 1;
1218
+ }
1219
+ }
1220
+
1221
+ @media (prefers-reduced-motion: reduce) {
1222
+ .mdzip-root .nav-pane,
1223
+ .mdzip-root .nav-resizer {
1224
+ transition: none;
1225
+ }
1226
+ }
1227
+
1228
+ @media (max-width: 640px) {
1229
+ .mdzip-root .toolbar {
1230
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
1231
+ row-gap: 6px;
1232
+ }
1233
+ .mdzip-root .edit-toolbar {
1234
+ overflow-x: auto;
1235
+ }
1236
+ .mdzip-root .toolbar-controls {
1237
+ grid-column: 3;
1238
+ grid-row: 1;
1239
+ justify-self: end;
1240
+ }
1241
+ }
1242
+
1243
+ /* Syntax highlighting for code blocks in preview (highlight.js) */
1244
+ .mdzip-root .preview-content pre code {
1245
+ display: block;
1246
+ overflow-x: auto;
1247
+ padding: 12px;
1248
+ background: var(--mdzip-editor-background-color);
1249
+ border-radius: 4px;
1250
+ font-family: "Courier New", Courier, monospace;
1251
+ font-variant-ligatures: none;
1252
+ font-feature-settings: "liga" 0, "calt" 0;
1253
+ font-size: 12px;
1254
+ color: var(--mdzip-editor-foreground-color);
1255
+ }
1256
+
1257
+ /* Dark theme (Monokai-inspired) - highlight.js classes */
1258
+ .mdzip-root .hljs { color: #f8f8f2; }
1259
+ .mdzip-root .hljs-comment { color: #75715e; }
1260
+ .mdzip-root .hljs-string { color: #a6e22e; }
1261
+ .mdzip-root .hljs-number { color: #ae81ff; }
1262
+ .mdzip-root .hljs-literal { color: #ae81ff; }
1263
+ .mdzip-root .hljs-attr { color: #a6e22e; }
1264
+ .mdzip-root .hljs-keyword { color: #f92672; }
1265
+ .mdzip-root .hljs-title { color: #a6e22e; }
1266
+ .mdzip-root .hljs-punctuation { color: #f8f8f2; }
1267
+ .mdzip-root .hljs-operator { color: #f92672; }
1268
+
1269
+ /* Light theme - highlight.js classes */
1270
+ .mdzip-root.mdzip-theme-light .hljs { color: #383a42; }
1271
+ .mdzip-root.mdzip-theme-light .hljs-comment { color: #a0a1a7; }
1272
+ .mdzip-root.mdzip-theme-light .hljs-string { color: #50a14f; }
1273
+ .mdzip-root.mdzip-theme-light .hljs-number { color: #986801; }
1274
+ .mdzip-root.mdzip-theme-light .hljs-literal { color: #986801; }
1275
+ .mdzip-root.mdzip-theme-light .hljs-attr { color: #50a14f; }
1276
+ .mdzip-root.mdzip-theme-light .hljs-keyword { color: #a626a4; }
1277
+ .mdzip-root.mdzip-theme-light .hljs-title { color: #50a14f; }
1278
+ .mdzip-root.mdzip-theme-light .hljs-punctuation { color: #383a42; }
1279
+ .mdzip-root.mdzip-theme-light .hljs-operator { color: #a626a4; }
1280
+ `;
1281
+ //# sourceMappingURL=view-css.js.map